diff --git a/Makefile b/Makefile index 8573127f..543db5f0 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,10 @@ endif O_FILES := $(INIT_O_FILES) $(EXTAB_O_FILES) $(EXTABINDEX_O_FILES) $(KYOTO_CWD) \ $(CTORS_O_FILES) $(DTORS_O_FILES) $(RODATA_O_FILES) $(DATA_O_FILES) \ $(BSS_O_FILES) $(SDATA_O_FILES) $(SBSS_O_FILES) $(SDATA2_O_FILES) \ - $(SBSS2_O_FILES) $(TEXT_O_FILES) + $(SBSS2_O_FILES) $(TEXT_O_FILES) $(MSL_PPCEABI_BARE_H) $(MUSYX_FILES) \ + $(DTK_FILES) $(CARD_FILES) $(SI_FILES) $(EXI_FILES) $(THP_FILES) \ + $(GBA_FILES) + ifeq ($(EPILOGUE_PROCESS),1) E_FILES := $(EPILOGUE_UNSCHEDULED) endif diff --git a/asm/Dolphin/CARD/CARDBios.s b/asm/Dolphin/CARD/CARDBios.s new file mode 100644 index 00000000..ca9d064e --- /dev/null +++ b/asm/Dolphin/CARD/CARDBios.s @@ -0,0 +1,1331 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __CARDDefaultApiCallback +__CARDDefaultApiCallback: +/* 803B7E74 003B4DD4 4E 80 00 20 */ blr + +.global __CARDExtHandler +__CARDExtHandler: +/* 803B7E78 003B4DD8 7C 08 02 A6 */ mflr r0 +/* 803B7E7C 003B4DDC 90 01 00 04 */ stw r0, 4(r1) +/* 803B7E80 003B4DE0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B7E84 003B4DE4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B7E88 003B4DE8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B7E8C 003B4DEC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B7E90 003B4DF0 3B A3 00 00 */ addi r29, r3, 0 +/* 803B7E94 003B4DF4 1C 9D 01 10 */ mulli r4, r29, 0x110 +/* 803B7E98 003B4DF8 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B7E9C 003B4DFC 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B7EA0 003B4E00 7F C0 22 14 */ add r30, r0, r4 +/* 803B7EA4 003B4E04 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B7EA8 003B4E08 2C 00 00 00 */ cmpwi r0, 0 +/* 803B7EAC 003B4E0C 41 82 00 88 */ beq lbl_803B7F34 +/* 803B7EB0 003B4E10 3B E0 00 00 */ li r31, 0 +/* 803B7EB4 003B4E14 93 FE 00 00 */ stw r31, 0(r30) +/* 803B7EB8 003B4E18 38 7D 00 00 */ addi r3, r29, 0 +/* 803B7EBC 003B4E1C 38 80 00 00 */ li r4, 0 +/* 803B7EC0 003B4E20 48 00 88 B1 */ bl EXISetExiCallback +/* 803B7EC4 003B4E24 38 7E 00 E0 */ addi r3, r30, 0xe0 +/* 803B7EC8 003B4E28 4B FC 65 2D */ bl OSCancelAlarm +/* 803B7ECC 003B4E2C 80 1E 00 CC */ lwz r0, 0xcc(r30) +/* 803B7ED0 003B4E30 28 00 00 00 */ cmplwi r0, 0 +/* 803B7ED4 003B4E34 7C 0C 03 78 */ mr r12, r0 +/* 803B7ED8 003B4E38 41 82 00 18 */ beq lbl_803B7EF0 +/* 803B7EDC 003B4E3C 93 FE 00 CC */ stw r31, 0xcc(r30) +/* 803B7EE0 003B4E40 7D 88 03 A6 */ mtlr r12 +/* 803B7EE4 003B4E44 38 7D 00 00 */ addi r3, r29, 0 +/* 803B7EE8 003B4E48 38 80 FF FD */ li r4, -3 +/* 803B7EEC 003B4E4C 4E 80 00 21 */ blrl +lbl_803B7EF0: +/* 803B7EF0 003B4E50 80 1E 00 04 */ lwz r0, 4(r30) +/* 803B7EF4 003B4E54 2C 00 FF FF */ cmpwi r0, -1 +/* 803B7EF8 003B4E58 41 82 00 0C */ beq lbl_803B7F04 +/* 803B7EFC 003B4E5C 38 00 FF FD */ li r0, -3 +/* 803B7F00 003B4E60 90 1E 00 04 */ stw r0, 4(r30) +lbl_803B7F04: +/* 803B7F04 003B4E64 81 9E 00 C4 */ lwz r12, 0xc4(r30) +/* 803B7F08 003B4E68 28 0C 00 00 */ cmplwi r12, 0 +/* 803B7F0C 003B4E6C 41 82 00 28 */ beq lbl_803B7F34 +/* 803B7F10 003B4E70 80 1E 00 24 */ lwz r0, 0x24(r30) +/* 803B7F14 003B4E74 2C 00 00 07 */ cmpwi r0, 7 +/* 803B7F18 003B4E78 41 80 00 1C */ blt lbl_803B7F34 +/* 803B7F1C 003B4E7C 38 00 00 00 */ li r0, 0 +/* 803B7F20 003B4E80 7D 88 03 A6 */ mtlr r12 +/* 803B7F24 003B4E84 90 1E 00 C4 */ stw r0, 0xc4(r30) +/* 803B7F28 003B4E88 38 7D 00 00 */ addi r3, r29, 0 +/* 803B7F2C 003B4E8C 38 80 FF FD */ li r4, -3 +/* 803B7F30 003B4E90 4E 80 00 21 */ blrl +lbl_803B7F34: +/* 803B7F34 003B4E94 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B7F38 003B4E98 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B7F3C 003B4E9C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B7F40 003B4EA0 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B7F44 003B4EA4 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B7F48 003B4EA8 7C 08 03 A6 */ mtlr r0 +/* 803B7F4C 003B4EAC 4E 80 00 20 */ blr + +.global __CARDExiHandler +__CARDExiHandler: +/* 803B7F50 003B4EB0 7C 08 02 A6 */ mflr r0 +/* 803B7F54 003B4EB4 90 01 00 04 */ stw r0, 4(r1) +/* 803B7F58 003B4EB8 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803B7F5C 003B4EBC 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803B7F60 003B4EC0 3B E3 00 00 */ addi r31, r3, 0 +/* 803B7F64 003B4EC4 1C 9F 01 10 */ mulli r4, r31, 0x110 +/* 803B7F68 003B4EC8 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803B7F6C 003B4ECC 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B7F70 003B4ED0 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803B7F74 003B4ED4 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B7F78 003B4ED8 7F C0 22 14 */ add r30, r0, r4 +/* 803B7F7C 003B4EDC 38 7E 00 E0 */ addi r3, r30, 0xe0 +/* 803B7F80 003B4EE0 4B FC 64 75 */ bl OSCancelAlarm +/* 803B7F84 003B4EE4 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B7F88 003B4EE8 2C 00 00 00 */ cmpwi r0, 0 +/* 803B7F8C 003B4EEC 41 82 00 C0 */ beq lbl_803B804C +/* 803B7F90 003B4EF0 38 7F 00 00 */ addi r3, r31, 0 +/* 803B7F94 003B4EF4 38 80 00 00 */ li r4, 0 +/* 803B7F98 003B4EF8 38 A0 00 00 */ li r5, 0 +/* 803B7F9C 003B4EFC 48 00 93 C9 */ bl EXILock +/* 803B7FA0 003B4F00 2C 03 00 00 */ cmpwi r3, 0 +/* 803B7FA4 003B4F04 40 82 00 0C */ bne lbl_803B7FB0 +/* 803B7FA8 003B4F08 3B A0 FF 80 */ li r29, -128 +/* 803B7FAC 003B4F0C 48 00 00 78 */ b lbl_803B8024 +lbl_803B7FB0: +/* 803B7FB0 003B4F10 38 7F 00 00 */ addi r3, r31, 0 +/* 803B7FB4 003B4F14 38 81 00 10 */ addi r4, r1, 0x10 +/* 803B7FB8 003B4F18 48 00 02 9D */ bl __CARDReadStatus +/* 803B7FBC 003B4F1C 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803B7FC0 003B4F20 41 80 00 5C */ blt lbl_803B801C +/* 803B7FC4 003B4F24 7F E3 FB 78 */ mr r3, r31 +/* 803B7FC8 003B4F28 48 00 03 7D */ bl __CARDClearStatus +/* 803B7FCC 003B4F2C 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803B7FD0 003B4F30 41 80 00 4C */ blt lbl_803B801C +/* 803B7FD4 003B4F34 88 01 00 10 */ lbz r0, 0x10(r1) +/* 803B7FD8 003B4F38 54 00 06 F9 */ rlwinm. r0, r0, 0, 0x1b, 0x1c +/* 803B7FDC 003B4F3C 41 82 00 0C */ beq lbl_803B7FE8 +/* 803B7FE0 003B4F40 38 00 FF FB */ li r0, -5 +/* 803B7FE4 003B4F44 48 00 00 08 */ b lbl_803B7FEC +lbl_803B7FE8: +/* 803B7FE8 003B4F48 38 00 00 00 */ li r0, 0 +lbl_803B7FEC: +/* 803B7FEC 003B4F4C 7C 1D 03 78 */ mr r29, r0 +/* 803B7FF0 003B4F50 2C 1D FF FB */ cmpwi r29, -5 +/* 803B7FF4 003B4F54 40 82 00 28 */ bne lbl_803B801C +/* 803B7FF8 003B4F58 80 7E 00 A8 */ lwz r3, 0xa8(r30) +/* 803B7FFC 003B4F5C 34 03 FF FF */ addic. r0, r3, -1 +/* 803B8000 003B4F60 90 1E 00 A8 */ stw r0, 0xa8(r30) +/* 803B8004 003B4F64 40 81 00 18 */ ble lbl_803B801C +/* 803B8008 003B4F68 7F E3 FB 78 */ mr r3, r31 +/* 803B800C 003B4F6C 48 00 04 89 */ bl Retry +/* 803B8010 003B4F70 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803B8014 003B4F74 41 80 00 10 */ blt lbl_803B8024 +/* 803B8018 003B4F78 48 00 00 34 */ b lbl_803B804C +lbl_803B801C: +/* 803B801C 003B4F7C 7F E3 FB 78 */ mr r3, r31 +/* 803B8020 003B4F80 48 00 94 39 */ bl EXIUnlock +lbl_803B8024: +/* 803B8024 003B4F84 80 1E 00 CC */ lwz r0, 0xcc(r30) +/* 803B8028 003B4F88 28 00 00 00 */ cmplwi r0, 0 +/* 803B802C 003B4F8C 7C 0C 03 78 */ mr r12, r0 +/* 803B8030 003B4F90 41 82 00 1C */ beq lbl_803B804C +/* 803B8034 003B4F94 38 00 00 00 */ li r0, 0 +/* 803B8038 003B4F98 7D 88 03 A6 */ mtlr r12 +/* 803B803C 003B4F9C 90 1E 00 CC */ stw r0, 0xcc(r30) +/* 803B8040 003B4FA0 38 7F 00 00 */ addi r3, r31, 0 +/* 803B8044 003B4FA4 38 9D 00 00 */ addi r4, r29, 0 +/* 803B8048 003B4FA8 4E 80 00 21 */ blrl +lbl_803B804C: +/* 803B804C 003B4FAC 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803B8050 003B4FB0 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803B8054 003B4FB4 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803B8058 003B4FB8 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803B805C 003B4FBC 38 21 00 28 */ addi r1, r1, 0x28 +/* 803B8060 003B4FC0 7C 08 03 A6 */ mtlr r0 +/* 803B8064 003B4FC4 4E 80 00 20 */ blr + +.global __CARDTxHandler +__CARDTxHandler: +/* 803B8068 003B4FC8 7C 08 02 A6 */ mflr r0 +/* 803B806C 003B4FCC 90 01 00 04 */ stw r0, 4(r1) +/* 803B8070 003B4FD0 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803B8074 003B4FD4 BF 61 00 14 */ stmw r27, 0x14(r1) +/* 803B8078 003B4FD8 3B 63 00 00 */ addi r27, r3, 0 +/* 803B807C 003B4FDC 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B8080 003B4FE0 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B8084 003B4FE4 1C 9B 01 10 */ mulli r4, r27, 0x110 +/* 803B8088 003B4FE8 38 7B 00 00 */ addi r3, r27, 0 +/* 803B808C 003B4FEC 7F A0 22 14 */ add r29, r0, r4 +/* 803B8090 003B4FF0 48 00 8C F9 */ bl EXIDeselect +/* 803B8094 003B4FF4 7C 60 00 34 */ cntlzw r0, r3 +/* 803B8098 003B4FF8 38 7B 00 00 */ addi r3, r27, 0 +/* 803B809C 003B4FFC 54 1F D9 7E */ srwi r31, r0, 5 +/* 803B80A0 003B5000 48 00 93 B9 */ bl EXIUnlock +/* 803B80A4 003B5004 80 1D 00 C8 */ lwz r0, 0xc8(r29) +/* 803B80A8 003B5008 28 00 00 00 */ cmplwi r0, 0 +/* 803B80AC 003B500C 7C 1C 03 78 */ mr r28, r0 +/* 803B80B0 003B5010 41 82 00 4C */ beq lbl_803B80FC +/* 803B80B4 003B5014 3B C0 00 00 */ li r30, 0 +/* 803B80B8 003B5018 2C 1F 00 00 */ cmpwi r31, 0 +/* 803B80BC 003B501C 93 DD 00 C8 */ stw r30, 0xc8(r29) +/* 803B80C0 003B5020 40 82 00 18 */ bne lbl_803B80D8 +/* 803B80C4 003B5024 7F 63 DB 78 */ mr r3, r27 +/* 803B80C8 003B5028 48 00 88 99 */ bl EXIProbe +/* 803B80CC 003B502C 2C 03 00 00 */ cmpwi r3, 0 +/* 803B80D0 003B5030 41 82 00 08 */ beq lbl_803B80D8 +/* 803B80D4 003B5034 3B C0 00 01 */ li r30, 1 +lbl_803B80D8: +/* 803B80D8 003B5038 2C 1E 00 00 */ cmpwi r30, 0 +/* 803B80DC 003B503C 41 82 00 0C */ beq lbl_803B80E8 +/* 803B80E0 003B5040 38 80 00 00 */ li r4, 0 +/* 803B80E4 003B5044 48 00 00 08 */ b lbl_803B80EC +lbl_803B80E8: +/* 803B80E8 003B5048 38 80 FF FD */ li r4, -3 +lbl_803B80EC: +/* 803B80EC 003B504C 39 9C 00 00 */ addi r12, r28, 0 +/* 803B80F0 003B5050 7D 88 03 A6 */ mtlr r12 +/* 803B80F4 003B5054 38 7B 00 00 */ addi r3, r27, 0 +/* 803B80F8 003B5058 4E 80 00 21 */ blrl +lbl_803B80FC: +/* 803B80FC 003B505C BB 61 00 14 */ lmw r27, 0x14(r1) +/* 803B8100 003B5060 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803B8104 003B5064 38 21 00 28 */ addi r1, r1, 0x28 +/* 803B8108 003B5068 7C 08 03 A6 */ mtlr r0 +/* 803B810C 003B506C 4E 80 00 20 */ blr + +.global __CARDUnlockedHandler +__CARDUnlockedHandler: +/* 803B8110 003B5070 7C 08 02 A6 */ mflr r0 +/* 803B8114 003B5074 90 01 00 04 */ stw r0, 4(r1) +/* 803B8118 003B5078 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B811C 003B507C 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B8120 003B5080 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B8124 003B5084 3B C3 00 00 */ addi r30, r3, 0 +/* 803B8128 003B5088 1C 9E 01 10 */ mulli r4, r30, 0x110 +/* 803B812C 003B508C 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B8130 003B5090 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B8134 003B5094 7C 60 22 14 */ add r3, r0, r4 +/* 803B8138 003B5098 80 03 00 DC */ lwz r0, 0xdc(r3) +/* 803B813C 003B509C 28 00 00 00 */ cmplwi r0, 0 +/* 803B8140 003B50A0 7C 1F 03 78 */ mr r31, r0 +/* 803B8144 003B50A4 41 82 00 38 */ beq lbl_803B817C +/* 803B8148 003B50A8 38 00 00 00 */ li r0, 0 +/* 803B814C 003B50AC 90 03 00 DC */ stw r0, 0xdc(r3) +/* 803B8150 003B50B0 7F C3 F3 78 */ mr r3, r30 +/* 803B8154 003B50B4 48 00 88 0D */ bl EXIProbe +/* 803B8158 003B50B8 2C 03 00 00 */ cmpwi r3, 0 +/* 803B815C 003B50BC 41 82 00 0C */ beq lbl_803B8168 +/* 803B8160 003B50C0 38 80 00 01 */ li r4, 1 +/* 803B8164 003B50C4 48 00 00 08 */ b lbl_803B816C +lbl_803B8168: +/* 803B8168 003B50C8 38 80 FF FD */ li r4, -3 +lbl_803B816C: +/* 803B816C 003B50CC 39 9F 00 00 */ addi r12, r31, 0 +/* 803B8170 003B50D0 7D 88 03 A6 */ mtlr r12 +/* 803B8174 003B50D4 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8178 003B50D8 4E 80 00 21 */ blrl +lbl_803B817C: +/* 803B817C 003B50DC 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B8180 003B50E0 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B8184 003B50E4 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B8188 003B50E8 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B818C 003B50EC 7C 08 03 A6 */ mtlr r0 +/* 803B8190 003B50F0 4E 80 00 20 */ blr + +.global __CARDEnableInterrupt +__CARDEnableInterrupt: +/* 803B8194 003B50F4 7C 08 02 A6 */ mflr r0 +/* 803B8198 003B50F8 38 A0 00 04 */ li r5, 4 +/* 803B819C 003B50FC 90 01 00 04 */ stw r0, 4(r1) +/* 803B81A0 003B5100 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B81A4 003B5104 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B81A8 003B5108 3B E4 00 00 */ addi r31, r4, 0 +/* 803B81AC 003B510C 38 80 00 00 */ li r4, 0 +/* 803B81B0 003B5110 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B81B4 003B5114 3B C3 00 00 */ addi r30, r3, 0 +/* 803B81B8 003B5118 48 00 8A A5 */ bl EXISelect +/* 803B81BC 003B511C 2C 03 00 00 */ cmpwi r3, 0 +/* 803B81C0 003B5120 40 82 00 0C */ bne lbl_803B81CC +/* 803B81C4 003B5124 38 60 FF FD */ li r3, -3 +/* 803B81C8 003B5128 48 00 00 74 */ b lbl_803B823C +lbl_803B81CC: +/* 803B81CC 003B512C 2C 1F 00 00 */ cmpwi r31, 0 +/* 803B81D0 003B5130 41 82 00 0C */ beq lbl_803B81DC +/* 803B81D4 003B5134 3C 00 81 01 */ lis r0, 0x8101 +/* 803B81D8 003B5138 48 00 00 08 */ b lbl_803B81E0 +lbl_803B81DC: +/* 803B81DC 003B513C 3C 00 81 00 */ lis r0, 0x8100 +lbl_803B81E0: +/* 803B81E0 003B5140 90 01 00 10 */ stw r0, 0x10(r1) +/* 803B81E4 003B5144 38 7E 00 00 */ addi r3, r30, 0 +/* 803B81E8 003B5148 38 81 00 10 */ addi r4, r1, 0x10 +/* 803B81EC 003B514C 38 A0 00 02 */ li r5, 2 +/* 803B81F0 003B5150 38 C0 00 01 */ li r6, 1 +/* 803B81F4 003B5154 38 E0 00 00 */ li r7, 0 +/* 803B81F8 003B5158 48 00 7F 11 */ bl EXIImm +/* 803B81FC 003B515C 7C 60 00 34 */ cntlzw r0, r3 +/* 803B8200 003B5160 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8204 003B5164 54 1F D9 7E */ srwi r31, r0, 5 +/* 803B8208 003B5168 48 00 82 E9 */ bl sub_803c04f0 +/* 803B820C 003B516C 7C 60 00 34 */ cntlzw r0, r3 +/* 803B8210 003B5170 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B8214 003B5174 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8218 003B5178 7F FF 03 78 */ or r31, r31, r0 +/* 803B821C 003B517C 48 00 8B 6D */ bl EXIDeselect +/* 803B8220 003B5180 7C 60 00 34 */ cntlzw r0, r3 +/* 803B8224 003B5184 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B8228 003B5188 7F FF 03 79 */ or. r31, r31, r0 +/* 803B822C 003B518C 41 82 00 0C */ beq lbl_803B8238 +/* 803B8230 003B5190 38 60 FF FD */ li r3, -3 +/* 803B8234 003B5194 48 00 00 08 */ b lbl_803B823C +lbl_803B8238: +/* 803B8238 003B5198 38 60 00 00 */ li r3, 0 +lbl_803B823C: +/* 803B823C 003B519C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B8240 003B51A0 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B8244 003B51A4 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B8248 003B51A8 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B824C 003B51AC 7C 08 03 A6 */ mtlr r0 +/* 803B8250 003B51B0 4E 80 00 20 */ blr + +.global __CARDReadStatus +__CARDReadStatus: +/* 803B8254 003B51B4 7C 08 02 A6 */ mflr r0 +/* 803B8258 003B51B8 38 A0 00 04 */ li r5, 4 +/* 803B825C 003B51BC 90 01 00 04 */ stw r0, 4(r1) +/* 803B8260 003B51C0 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803B8264 003B51C4 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803B8268 003B51C8 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803B826C 003B51CC 3B C4 00 00 */ addi r30, r4, 0 +/* 803B8270 003B51D0 38 80 00 00 */ li r4, 0 +/* 803B8274 003B51D4 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803B8278 003B51D8 3B A3 00 00 */ addi r29, r3, 0 +/* 803B827C 003B51DC 48 00 89 E1 */ bl EXISelect +/* 803B8280 003B51E0 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8284 003B51E4 40 82 00 0C */ bne lbl_803B8290 +/* 803B8288 003B51E8 38 60 FF FD */ li r3, -3 +/* 803B828C 003B51EC 48 00 00 9C */ b lbl_803B8328 +lbl_803B8290: +/* 803B8290 003B51F0 3C 00 83 00 */ lis r0, 0x8300 +/* 803B8294 003B51F4 90 01 00 10 */ stw r0, 0x10(r1) +/* 803B8298 003B51F8 38 7D 00 00 */ addi r3, r29, 0 +/* 803B829C 003B51FC 38 81 00 10 */ addi r4, r1, 0x10 +/* 803B82A0 003B5200 38 A0 00 02 */ li r5, 2 +/* 803B82A4 003B5204 38 C0 00 01 */ li r6, 1 +/* 803B82A8 003B5208 38 E0 00 00 */ li r7, 0 +/* 803B82AC 003B520C 48 00 7E 5D */ bl EXIImm +/* 803B82B0 003B5210 7C 60 00 34 */ cntlzw r0, r3 +/* 803B82B4 003B5214 38 7D 00 00 */ addi r3, r29, 0 +/* 803B82B8 003B5218 54 1F D9 7E */ srwi r31, r0, 5 +/* 803B82BC 003B521C 48 00 82 35 */ bl sub_803c04f0 +/* 803B82C0 003B5220 7C 60 00 34 */ cntlzw r0, r3 +/* 803B82C4 003B5224 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B82C8 003B5228 38 7D 00 00 */ addi r3, r29, 0 +/* 803B82CC 003B522C 38 9E 00 00 */ addi r4, r30, 0 +/* 803B82D0 003B5230 7F FF 03 78 */ or r31, r31, r0 +/* 803B82D4 003B5234 38 A0 00 01 */ li r5, 1 +/* 803B82D8 003B5238 38 C0 00 00 */ li r6, 0 +/* 803B82DC 003B523C 38 E0 00 00 */ li r7, 0 +/* 803B82E0 003B5240 48 00 7E 29 */ bl EXIImm +/* 803B82E4 003B5244 7C 60 00 34 */ cntlzw r0, r3 +/* 803B82E8 003B5248 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B82EC 003B524C 38 7D 00 00 */ addi r3, r29, 0 +/* 803B82F0 003B5250 7F FF 03 78 */ or r31, r31, r0 +/* 803B82F4 003B5254 48 00 81 FD */ bl sub_803c04f0 +/* 803B82F8 003B5258 7C 60 00 34 */ cntlzw r0, r3 +/* 803B82FC 003B525C 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B8300 003B5260 38 7D 00 00 */ addi r3, r29, 0 +/* 803B8304 003B5264 7F FF 03 78 */ or r31, r31, r0 +/* 803B8308 003B5268 48 00 8A 81 */ bl EXIDeselect +/* 803B830C 003B526C 7C 60 00 34 */ cntlzw r0, r3 +/* 803B8310 003B5270 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B8314 003B5274 7F FF 03 79 */ or. r31, r31, r0 +/* 803B8318 003B5278 41 82 00 0C */ beq lbl_803B8324 +/* 803B831C 003B527C 38 60 FF FD */ li r3, -3 +/* 803B8320 003B5280 48 00 00 08 */ b lbl_803B8328 +lbl_803B8324: +/* 803B8324 003B5284 38 60 00 00 */ li r3, 0 +lbl_803B8328: +/* 803B8328 003B5288 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803B832C 003B528C 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803B8330 003B5290 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803B8334 003B5294 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803B8338 003B5298 38 21 00 28 */ addi r1, r1, 0x28 +/* 803B833C 003B529C 7C 08 03 A6 */ mtlr r0 +/* 803B8340 003B52A0 4E 80 00 20 */ blr + +.global __CARDClearStatus +__CARDClearStatus: +/* 803B8344 003B52A4 7C 08 02 A6 */ mflr r0 +/* 803B8348 003B52A8 38 80 00 00 */ li r4, 0 +/* 803B834C 003B52AC 90 01 00 04 */ stw r0, 4(r1) +/* 803B8350 003B52B0 38 A0 00 04 */ li r5, 4 +/* 803B8354 003B52B4 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B8358 003B52B8 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B835C 003B52BC 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B8360 003B52C0 3B C3 00 00 */ addi r30, r3, 0 +/* 803B8364 003B52C4 48 00 88 F9 */ bl EXISelect +/* 803B8368 003B52C8 2C 03 00 00 */ cmpwi r3, 0 +/* 803B836C 003B52CC 40 82 00 0C */ bne lbl_803B8378 +/* 803B8370 003B52D0 38 60 FF FD */ li r3, -3 +/* 803B8374 003B52D4 48 00 00 64 */ b lbl_803B83D8 +lbl_803B8378: +/* 803B8378 003B52D8 3C 00 89 00 */ lis r0, 0x8900 +/* 803B837C 003B52DC 90 01 00 0C */ stw r0, 0xc(r1) +/* 803B8380 003B52E0 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8384 003B52E4 38 81 00 0C */ addi r4, r1, 0xc +/* 803B8388 003B52E8 38 A0 00 01 */ li r5, 1 +/* 803B838C 003B52EC 38 C0 00 01 */ li r6, 1 +/* 803B8390 003B52F0 38 E0 00 00 */ li r7, 0 +/* 803B8394 003B52F4 48 00 7D 75 */ bl EXIImm +/* 803B8398 003B52F8 7C 60 00 34 */ cntlzw r0, r3 +/* 803B839C 003B52FC 38 7E 00 00 */ addi r3, r30, 0 +/* 803B83A0 003B5300 54 1F D9 7E */ srwi r31, r0, 5 +/* 803B83A4 003B5304 48 00 81 4D */ bl sub_803c04f0 +/* 803B83A8 003B5308 7C 60 00 34 */ cntlzw r0, r3 +/* 803B83AC 003B530C 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B83B0 003B5310 38 7E 00 00 */ addi r3, r30, 0 +/* 803B83B4 003B5314 7F FF 03 78 */ or r31, r31, r0 +/* 803B83B8 003B5318 48 00 89 D1 */ bl EXIDeselect +/* 803B83BC 003B531C 7C 60 00 34 */ cntlzw r0, r3 +/* 803B83C0 003B5320 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B83C4 003B5324 7F FF 03 79 */ or. r31, r31, r0 +/* 803B83C8 003B5328 41 82 00 0C */ beq lbl_803B83D4 +/* 803B83CC 003B532C 38 60 FF FD */ li r3, -3 +/* 803B83D0 003B5330 48 00 00 08 */ b lbl_803B83D8 +lbl_803B83D4: +/* 803B83D4 003B5334 38 60 00 00 */ li r3, 0 +lbl_803B83D8: +/* 803B83D8 003B5338 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B83DC 003B533C 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B83E0 003B5340 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B83E4 003B5344 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B83E8 003B5348 7C 08 03 A6 */ mtlr r0 +/* 803B83EC 003B534C 4E 80 00 20 */ blr + +.global TimeoutHandler +TimeoutHandler: +/* 803B83F0 003B5350 7C 08 02 A6 */ mflr r0 +/* 803B83F4 003B5354 3C 80 80 57 */ lis r4, lbl_80569A58@ha +/* 803B83F8 003B5358 90 01 00 04 */ stw r0, 4(r1) +/* 803B83FC 003B535C 38 84 9A 58 */ addi r4, r4, lbl_80569A58@l +/* 803B8400 003B5360 38 04 00 E0 */ addi r0, r4, 0xe0 +/* 803B8404 003B5364 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B8408 003B5368 7C 03 00 40 */ cmplw r3, r0 +/* 803B840C 003B536C 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B8410 003B5370 3B E0 00 00 */ li r31, 0 +/* 803B8414 003B5374 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B8418 003B5378 3B C4 00 00 */ addi r30, r4, 0 +/* 803B841C 003B537C 41 82 00 20 */ beq lbl_803B843C +/* 803B8420 003B5380 38 04 01 F0 */ addi r0, r4, 0x1f0 +/* 803B8424 003B5384 7C 03 00 40 */ cmplw r3, r0 +/* 803B8428 003B5388 38 84 01 10 */ addi r4, r4, 0x110 +/* 803B842C 003B538C 3B C4 00 00 */ addi r30, r4, 0 +/* 803B8430 003B5390 3B E0 00 01 */ li r31, 1 +/* 803B8434 003B5394 41 82 00 08 */ beq lbl_803B843C +/* 803B8438 003B5398 3B E0 00 02 */ li r31, 2 +lbl_803B843C: +/* 803B843C 003B539C 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B8440 003B53A0 2C 00 00 00 */ cmpwi r0, 0 +/* 803B8444 003B53A4 41 82 00 38 */ beq lbl_803B847C +/* 803B8448 003B53A8 38 7F 00 00 */ addi r3, r31, 0 +/* 803B844C 003B53AC 38 80 00 00 */ li r4, 0 +/* 803B8450 003B53B0 48 00 83 21 */ bl EXISetExiCallback +/* 803B8454 003B53B4 80 1E 00 CC */ lwz r0, 0xcc(r30) +/* 803B8458 003B53B8 28 00 00 00 */ cmplwi r0, 0 +/* 803B845C 003B53BC 7C 0C 03 78 */ mr r12, r0 +/* 803B8460 003B53C0 41 82 00 1C */ beq lbl_803B847C +/* 803B8464 003B53C4 38 00 00 00 */ li r0, 0 +/* 803B8468 003B53C8 7D 88 03 A6 */ mtlr r12 +/* 803B846C 003B53CC 90 1E 00 CC */ stw r0, 0xcc(r30) +/* 803B8470 003B53D0 38 7F 00 00 */ addi r3, r31, 0 +/* 803B8474 003B53D4 38 80 FF FB */ li r4, -5 +/* 803B8478 003B53D8 4E 80 00 21 */ blrl +lbl_803B847C: +/* 803B847C 003B53DC 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B8480 003B53E0 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B8484 003B53E4 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B8488 003B53E8 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B848C 003B53EC 7C 08 03 A6 */ mtlr r0 +/* 803B8490 003B53F0 4E 80 00 20 */ blr + +.global Retry +Retry: +/* 803B8494 003B53F4 7C 08 02 A6 */ mflr r0 +/* 803B8498 003B53F8 38 A0 00 04 */ li r5, 4 +/* 803B849C 003B53FC 90 01 00 04 */ stw r0, 4(r1) +/* 803B84A0 003B5400 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B84A4 003B5404 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B84A8 003B5408 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B84AC 003B540C 3B C3 00 00 */ addi r30, r3, 0 +/* 803B84B0 003B5410 1C 9E 01 10 */ mulli r4, r30, 0x110 +/* 803B84B4 003B5414 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B84B8 003B5418 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B84BC 003B541C 7F E0 22 14 */ add r31, r0, r4 +/* 803B84C0 003B5420 38 7E 00 00 */ addi r3, r30, 0 +/* 803B84C4 003B5424 38 80 00 00 */ li r4, 0 +/* 803B84C8 003B5428 48 00 87 95 */ bl EXISelect +/* 803B84CC 003B542C 2C 03 00 00 */ cmpwi r3, 0 +/* 803B84D0 003B5430 40 82 00 14 */ bne lbl_803B84E4 +/* 803B84D4 003B5434 7F C3 F3 78 */ mr r3, r30 +/* 803B84D8 003B5438 48 00 8F 81 */ bl EXIUnlock +/* 803B84DC 003B543C 38 60 FF FD */ li r3, -3 +/* 803B84E0 003B5440 48 00 01 C8 */ b lbl_803B86A8 +lbl_803B84E4: +/* 803B84E4 003B5444 38 7F 00 E0 */ addi r3, r31, 0xe0 +/* 803B84E8 003B5448 4B FC 5F 0D */ bl OSCancelAlarm +/* 803B84EC 003B544C 88 1F 00 94 */ lbz r0, 0x94(r31) +/* 803B84F0 003B5450 2C 00 00 F3 */ cmpwi r0, 0xf3 +/* 803B84F4 003B5454 41 82 00 C0 */ beq lbl_803B85B4 +/* 803B84F8 003B5458 40 80 00 14 */ bge lbl_803B850C +/* 803B84FC 003B545C 2C 00 00 F1 */ cmpwi r0, 0xf1 +/* 803B8500 003B5460 41 82 00 50 */ beq lbl_803B8550 +/* 803B8504 003B5464 40 80 00 14 */ bge lbl_803B8518 +/* 803B8508 003B5468 48 00 00 AC */ b lbl_803B85B4 +lbl_803B850C: +/* 803B850C 003B546C 2C 00 00 F5 */ cmpwi r0, 0xf5 +/* 803B8510 003B5470 40 80 00 A4 */ bge lbl_803B85B4 +/* 803B8514 003B5474 48 00 00 3C */ b lbl_803B8550 +lbl_803B8518: +/* 803B8518 003B5478 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803B851C 003B547C 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803B8520 003B5480 3C 80 10 62 */ lis r4, 0x10624DD3@ha +/* 803B8524 003B5484 3C 60 80 3C */ lis r3, TimeoutHandler@ha +/* 803B8528 003B5488 54 00 F0 BE */ srwi r0, r0, 2 +/* 803B852C 003B548C 38 84 4D D3 */ addi r4, r4, 0x10624DD3@l +/* 803B8530 003B5490 7C 04 00 16 */ mulhwu r0, r4, r0 +/* 803B8534 003B5494 54 00 D1 BE */ srwi r0, r0, 6 +/* 803B8538 003B5498 1C C0 00 64 */ mulli r6, r0, 0x64 +/* 803B853C 003B549C 38 E3 83 F0 */ addi r7, r3, TimeoutHandler@l +/* 803B8540 003B54A0 38 7F 00 E0 */ addi r3, r31, 0xe0 +/* 803B8544 003B54A4 38 A0 00 00 */ li r5, 0 +/* 803B8548 003B54A8 4B FC 5D C9 */ bl OSSetAlarm +/* 803B854C 003B54AC 48 00 00 68 */ b lbl_803B85B4 +lbl_803B8550: +/* 803B8550 003B54B0 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803B8554 003B54B4 80 9F 00 0C */ lwz r4, 0xc(r31) +/* 803B8558 003B54B8 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803B855C 003B54BC 3C 60 80 3C */ lis r3, TimeoutHandler@ha +/* 803B8560 003B54C0 7C 89 6E 70 */ srawi r9, r4, 0xd +/* 803B8564 003B54C4 54 07 F0 BE */ srwi r7, r0, 2 +/* 803B8568 003B54C8 38 00 00 02 */ li r0, 2 +/* 803B856C 003B54CC 38 80 00 00 */ li r4, 0 +/* 803B8570 003B54D0 7D 04 01 D6 */ mullw r8, r4, r0 +/* 803B8574 003B54D4 7C C7 00 16 */ mulhwu r6, r7, r0 +/* 803B8578 003B54D8 7D 08 32 14 */ add r8, r8, r6 +/* 803B857C 003B54DC 7C A7 01 D6 */ mullw r5, r7, r0 +/* 803B8580 003B54E0 7D 29 01 94 */ addze r9, r9 +/* 803B8584 003B54E4 7C C7 21 D6 */ mullw r6, r7, r4 +/* 803B8588 003B54E8 7D 20 FE 70 */ srawi r0, r9, 0x1f +/* 803B858C 003B54EC 7C 80 29 D6 */ mullw r4, r0, r5 +/* 803B8590 003B54F0 7C 09 28 16 */ mulhwu r0, r9, r5 +/* 803B8594 003B54F4 38 E3 83 F0 */ addi r7, r3, TimeoutHandler@l +/* 803B8598 003B54F8 7C 68 32 14 */ add r3, r8, r6 +/* 803B859C 003B54FC 7C 84 02 14 */ add r4, r4, r0 +/* 803B85A0 003B5500 7C 09 19 D6 */ mullw r0, r9, r3 +/* 803B85A4 003B5504 7C C9 29 D6 */ mullw r6, r9, r5 +/* 803B85A8 003B5508 38 7F 00 E0 */ addi r3, r31, 0xe0 +/* 803B85AC 003B550C 7C A4 02 14 */ add r5, r4, r0 +/* 803B85B0 003B5510 4B FC 5D 61 */ bl OSSetAlarm +lbl_803B85B4: +/* 803B85B4 003B5514 80 BF 00 A0 */ lwz r5, 0xa0(r31) +/* 803B85B8 003B5518 38 7E 00 00 */ addi r3, r30, 0 +/* 803B85BC 003B551C 38 9F 00 94 */ addi r4, r31, 0x94 +/* 803B85C0 003B5520 38 C0 00 01 */ li r6, 1 +/* 803B85C4 003B5524 48 00 7D A1 */ bl EXIImmEx +/* 803B85C8 003B5528 2C 03 00 00 */ cmpwi r3, 0 +/* 803B85CC 003B552C 40 82 00 1C */ bne lbl_803B85E8 +/* 803B85D0 003B5530 7F C3 F3 78 */ mr r3, r30 +/* 803B85D4 003B5534 48 00 87 B5 */ bl EXIDeselect +/* 803B85D8 003B5538 7F C3 F3 78 */ mr r3, r30 +/* 803B85DC 003B553C 48 00 8E 7D */ bl EXIUnlock +/* 803B85E0 003B5540 38 60 FF FD */ li r3, -3 +/* 803B85E4 003B5544 48 00 00 C4 */ b lbl_803B86A8 +lbl_803B85E8: +/* 803B85E8 003B5548 88 1F 00 94 */ lbz r0, 0x94(r31) +/* 803B85EC 003B554C 28 00 00 52 */ cmplwi r0, 0x52 +/* 803B85F0 003B5550 40 82 00 3C */ bne lbl_803B862C +/* 803B85F4 003B5554 80 9F 00 80 */ lwz r4, 0x80(r31) +/* 803B85F8 003B5558 7F C3 F3 78 */ mr r3, r30 +/* 803B85FC 003B555C 80 BF 00 14 */ lwz r5, 0x14(r31) +/* 803B8600 003B5560 38 C0 00 01 */ li r6, 1 +/* 803B8604 003B5564 38 84 02 00 */ addi r4, r4, 0x200 +/* 803B8608 003B5568 48 00 7D 5D */ bl EXIImmEx +/* 803B860C 003B556C 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8610 003B5570 40 82 00 1C */ bne lbl_803B862C +/* 803B8614 003B5574 7F C3 F3 78 */ mr r3, r30 +/* 803B8618 003B5578 48 00 87 71 */ bl EXIDeselect +/* 803B861C 003B557C 7F C3 F3 78 */ mr r3, r30 +/* 803B8620 003B5580 48 00 8E 39 */ bl EXIUnlock +/* 803B8624 003B5584 38 60 FF FD */ li r3, -3 +/* 803B8628 003B5588 48 00 00 80 */ b lbl_803B86A8 +lbl_803B862C: +/* 803B862C 003B558C 80 7F 00 A4 */ lwz r3, 0xa4(r31) +/* 803B8630 003B5590 3C 03 00 01 */ addis r0, r3, 1 +/* 803B8634 003B5594 28 00 FF FF */ cmplwi r0, 0xffff +/* 803B8638 003B5598 40 82 00 1C */ bne lbl_803B8654 +/* 803B863C 003B559C 7F C3 F3 78 */ mr r3, r30 +/* 803B8640 003B55A0 48 00 87 49 */ bl EXIDeselect +/* 803B8644 003B55A4 7F C3 F3 78 */ mr r3, r30 +/* 803B8648 003B55A8 48 00 8E 11 */ bl EXIUnlock +/* 803B864C 003B55AC 38 60 00 00 */ li r3, 0 +/* 803B8650 003B55B0 48 00 00 58 */ b lbl_803B86A8 +lbl_803B8654: +/* 803B8654 003B55B4 88 1F 00 94 */ lbz r0, 0x94(r31) +/* 803B8658 003B55B8 28 00 00 52 */ cmplwi r0, 0x52 +/* 803B865C 003B55BC 40 82 00 0C */ bne lbl_803B8668 +/* 803B8660 003B55C0 38 A0 02 00 */ li r5, 0x200 +/* 803B8664 003B55C4 48 00 00 08 */ b lbl_803B866C +lbl_803B8668: +/* 803B8668 003B55C8 38 A0 00 80 */ li r5, 0x80 +lbl_803B866C: +/* 803B866C 003B55CC 3C 60 80 3C */ lis r3, __CARDTxHandler@ha +/* 803B8670 003B55D0 80 9F 00 B4 */ lwz r4, 0xb4(r31) +/* 803B8674 003B55D4 38 E3 80 68 */ addi r7, r3, __CARDTxHandler@l +/* 803B8678 003B55D8 80 DF 00 A4 */ lwz r6, 0xa4(r31) +/* 803B867C 003B55DC 7F C3 F3 78 */ mr r3, r30 +/* 803B8680 003B55E0 48 00 7D 85 */ bl EXIDma +/* 803B8684 003B55E4 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8688 003B55E8 40 82 00 1C */ bne lbl_803B86A4 +/* 803B868C 003B55EC 7F C3 F3 78 */ mr r3, r30 +/* 803B8690 003B55F0 48 00 86 F9 */ bl EXIDeselect +/* 803B8694 003B55F4 7F C3 F3 78 */ mr r3, r30 +/* 803B8698 003B55F8 48 00 8D C1 */ bl EXIUnlock +/* 803B869C 003B55FC 38 60 FF FD */ li r3, -3 +/* 803B86A0 003B5600 48 00 00 08 */ b lbl_803B86A8 +lbl_803B86A4: +/* 803B86A4 003B5604 38 60 00 00 */ li r3, 0 +lbl_803B86A8: +/* 803B86A8 003B5608 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B86AC 003B560C 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B86B0 003B5610 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B86B4 003B5614 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B86B8 003B5618 7C 08 03 A6 */ mtlr r0 +/* 803B86BC 003B561C 4E 80 00 20 */ blr + +.global UnlockedCallback +UnlockedCallback: +/* 803B86C0 003B5620 7C 08 02 A6 */ mflr r0 +/* 803B86C4 003B5624 2C 04 00 00 */ cmpwi r4, 0 +/* 803B86C8 003B5628 90 01 00 04 */ stw r0, 4(r1) +/* 803B86CC 003B562C 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B86D0 003B5630 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B86D4 003B5634 3B E3 00 00 */ addi r31, r3, 0 +/* 803B86D8 003B5638 1C BF 01 10 */ mulli r5, r31, 0x110 +/* 803B86DC 003B563C 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B86E0 003B5640 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B86E4 003B5644 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B86E8 003B5648 7F C0 2A 14 */ add r30, r0, r5 +/* 803B86EC 003B564C 41 80 00 48 */ blt lbl_803B8734 +/* 803B86F0 003B5650 3C 60 80 3C */ lis r3, UnlockedCallback@ha +/* 803B86F4 003B5654 38 03 86 C0 */ addi r0, r3, UnlockedCallback@l +/* 803B86F8 003B5658 3C 60 80 3C */ lis r3, __CARDUnlockedHandler@ha +/* 803B86FC 003B565C 90 1E 00 DC */ stw r0, 0xdc(r30) +/* 803B8700 003B5660 38 A3 81 10 */ addi r5, r3, __CARDUnlockedHandler@l +/* 803B8704 003B5664 38 7F 00 00 */ addi r3, r31, 0 +/* 803B8708 003B5668 38 80 00 00 */ li r4, 0 +/* 803B870C 003B566C 48 00 8C 59 */ bl EXILock +/* 803B8710 003B5670 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8714 003B5674 40 82 00 0C */ bne lbl_803B8720 +/* 803B8718 003B5678 38 80 00 00 */ li r4, 0 +/* 803B871C 003B567C 48 00 00 18 */ b lbl_803B8734 +lbl_803B8720: +/* 803B8720 003B5680 38 00 00 00 */ li r0, 0 +/* 803B8724 003B5684 90 1E 00 DC */ stw r0, 0xdc(r30) +/* 803B8728 003B5688 7F E3 FB 78 */ mr r3, r31 +/* 803B872C 003B568C 4B FF FD 69 */ bl Retry +/* 803B8730 003B5690 7C 64 1B 78 */ mr r4, r3 +lbl_803B8734: +/* 803B8734 003B5694 2C 04 00 00 */ cmpwi r4, 0 +/* 803B8738 003B5698 40 80 00 80 */ bge lbl_803B87B8 +/* 803B873C 003B569C 88 1E 00 94 */ lbz r0, 0x94(r30) +/* 803B8740 003B56A0 2C 00 00 F3 */ cmpwi r0, 0xf3 +/* 803B8744 003B56A4 41 82 00 74 */ beq lbl_803B87B8 +/* 803B8748 003B56A8 40 80 00 1C */ bge lbl_803B8764 +/* 803B874C 003B56AC 2C 00 00 52 */ cmpwi r0, 0x52 +/* 803B8750 003B56B0 41 82 00 20 */ beq lbl_803B8770 +/* 803B8754 003B56B4 41 80 00 64 */ blt lbl_803B87B8 +/* 803B8758 003B56B8 2C 00 00 F1 */ cmpwi r0, 0xf1 +/* 803B875C 003B56BC 40 80 00 3C */ bge lbl_803B8798 +/* 803B8760 003B56C0 48 00 00 58 */ b lbl_803B87B8 +lbl_803B8764: +/* 803B8764 003B56C4 2C 00 00 F5 */ cmpwi r0, 0xf5 +/* 803B8768 003B56C8 40 80 00 50 */ bge lbl_803B87B8 +/* 803B876C 003B56CC 48 00 00 2C */ b lbl_803B8798 +lbl_803B8770: +/* 803B8770 003B56D0 80 1E 00 C8 */ lwz r0, 0xc8(r30) +/* 803B8774 003B56D4 28 00 00 00 */ cmplwi r0, 0 +/* 803B8778 003B56D8 7C 0C 03 78 */ mr r12, r0 +/* 803B877C 003B56DC 41 82 00 3C */ beq lbl_803B87B8 +/* 803B8780 003B56E0 38 00 00 00 */ li r0, 0 +/* 803B8784 003B56E4 7D 88 03 A6 */ mtlr r12 +/* 803B8788 003B56E8 90 1E 00 C8 */ stw r0, 0xc8(r30) +/* 803B878C 003B56EC 7F E3 FB 78 */ mr r3, r31 +/* 803B8790 003B56F0 4E 80 00 21 */ blrl +/* 803B8794 003B56F4 48 00 00 24 */ b lbl_803B87B8 +lbl_803B8798: +/* 803B8798 003B56F8 81 9E 00 CC */ lwz r12, 0xcc(r30) +/* 803B879C 003B56FC 28 0C 00 00 */ cmplwi r12, 0 +/* 803B87A0 003B5700 41 82 00 18 */ beq lbl_803B87B8 +/* 803B87A4 003B5704 38 00 00 00 */ li r0, 0 +/* 803B87A8 003B5708 7D 88 03 A6 */ mtlr r12 +/* 803B87AC 003B570C 90 1E 00 CC */ stw r0, 0xcc(r30) +/* 803B87B0 003B5710 7F E3 FB 78 */ mr r3, r31 +/* 803B87B4 003B5714 4E 80 00 21 */ blrl +lbl_803B87B8: +/* 803B87B8 003B5718 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B87BC 003B571C 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B87C0 003B5720 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B87C4 003B5724 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B87C8 003B5728 7C 08 03 A6 */ mtlr r0 +/* 803B87CC 003B572C 4E 80 00 20 */ blr + +.global __CARDStart +__CARDStart: +/* 803B87D0 003B5730 7C 08 02 A6 */ mflr r0 +/* 803B87D4 003B5734 90 01 00 04 */ stw r0, 4(r1) +/* 803B87D8 003B5738 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B87DC 003B573C BF 61 00 1C */ stmw r27, 0x1c(r1) +/* 803B87E0 003B5740 3B 63 00 00 */ addi r27, r3, 0 +/* 803B87E4 003B5744 3B 84 00 00 */ addi r28, r4, 0 +/* 803B87E8 003B5748 3B A5 00 00 */ addi r29, r5, 0 +/* 803B87EC 003B574C 4B FC 8E 75 */ bl OSDisableInterrupts +/* 803B87F0 003B5750 1C BB 01 10 */ mulli r5, r27, 0x110 +/* 803B87F4 003B5754 3C 80 80 57 */ lis r4, lbl_80569A58@ha +/* 803B87F8 003B5758 38 04 9A 58 */ addi r0, r4, lbl_80569A58@l +/* 803B87FC 003B575C 7F E0 2A 14 */ add r31, r0, r5 +/* 803B8800 003B5760 80 1F 00 00 */ lwz r0, 0(r31) +/* 803B8804 003B5764 3B C3 00 00 */ addi r30, r3, 0 +/* 803B8808 003B5768 2C 00 00 00 */ cmpwi r0, 0 +/* 803B880C 003B576C 40 82 00 0C */ bne lbl_803B8818 +/* 803B8810 003B5770 3B E0 FF FD */ li r31, -3 +/* 803B8814 003B5774 48 00 01 50 */ b lbl_803B8964 +lbl_803B8818: +/* 803B8818 003B5778 28 1C 00 00 */ cmplwi r28, 0 +/* 803B881C 003B577C 41 82 00 08 */ beq lbl_803B8824 +/* 803B8820 003B5780 93 9F 00 C8 */ stw r28, 0xc8(r31) +lbl_803B8824: +/* 803B8824 003B5784 28 1D 00 00 */ cmplwi r29, 0 +/* 803B8828 003B5788 41 82 00 08 */ beq lbl_803B8830 +/* 803B882C 003B578C 93 BF 00 CC */ stw r29, 0xcc(r31) +lbl_803B8830: +/* 803B8830 003B5790 3C 60 80 3C */ lis r3, UnlockedCallback@ha +/* 803B8834 003B5794 38 03 86 C0 */ addi r0, r3, UnlockedCallback@l +/* 803B8838 003B5798 3C 60 80 3C */ lis r3, __CARDUnlockedHandler@ha +/* 803B883C 003B579C 90 1F 00 DC */ stw r0, 0xdc(r31) +/* 803B8840 003B57A0 38 A3 81 10 */ addi r5, r3, __CARDUnlockedHandler@l +/* 803B8844 003B57A4 38 7B 00 00 */ addi r3, r27, 0 +/* 803B8848 003B57A8 38 80 00 00 */ li r4, 0 +/* 803B884C 003B57AC 48 00 8B 19 */ bl EXILock +/* 803B8850 003B57B0 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8854 003B57B4 40 82 00 0C */ bne lbl_803B8860 +/* 803B8858 003B57B8 3B E0 FF FF */ li r31, -1 +/* 803B885C 003B57BC 48 00 01 08 */ b lbl_803B8964 +lbl_803B8860: +/* 803B8860 003B57C0 38 00 00 00 */ li r0, 0 +/* 803B8864 003B57C4 90 1F 00 DC */ stw r0, 0xdc(r31) +/* 803B8868 003B57C8 38 7B 00 00 */ addi r3, r27, 0 +/* 803B886C 003B57CC 38 80 00 00 */ li r4, 0 +/* 803B8870 003B57D0 38 A0 00 04 */ li r5, 4 +/* 803B8874 003B57D4 48 00 83 E9 */ bl EXISelect +/* 803B8878 003B57D8 2C 03 00 00 */ cmpwi r3, 0 +/* 803B887C 003B57DC 40 82 00 14 */ bne lbl_803B8890 +/* 803B8880 003B57E0 7F 63 DB 78 */ mr r3, r27 +/* 803B8884 003B57E4 48 00 8B D5 */ bl EXIUnlock +/* 803B8888 003B57E8 3B E0 FF FD */ li r31, -3 +/* 803B888C 003B57EC 48 00 00 D8 */ b lbl_803B8964 +lbl_803B8890: +/* 803B8890 003B57F0 38 7F 00 E0 */ addi r3, r31, 0xe0 +/* 803B8894 003B57F4 4B FC 5B 61 */ bl OSCancelAlarm +/* 803B8898 003B57F8 88 1F 00 94 */ lbz r0, 0x94(r31) +/* 803B889C 003B57FC 2C 00 00 F3 */ cmpwi r0, 0xf3 +/* 803B88A0 003B5800 41 82 00 C0 */ beq lbl_803B8960 +/* 803B88A4 003B5804 40 80 00 14 */ bge lbl_803B88B8 +/* 803B88A8 003B5808 2C 00 00 F1 */ cmpwi r0, 0xf1 +/* 803B88AC 003B580C 41 82 00 50 */ beq lbl_803B88FC +/* 803B88B0 003B5810 40 80 00 14 */ bge lbl_803B88C4 +/* 803B88B4 003B5814 48 00 00 AC */ b lbl_803B8960 +lbl_803B88B8: +/* 803B88B8 003B5818 2C 00 00 F5 */ cmpwi r0, 0xf5 +/* 803B88BC 003B581C 40 80 00 A4 */ bge lbl_803B8960 +/* 803B88C0 003B5820 48 00 00 3C */ b lbl_803B88FC +lbl_803B88C4: +/* 803B88C4 003B5824 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803B88C8 003B5828 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803B88CC 003B582C 3C 80 10 62 */ lis r4, 0x10624DD3@ha +/* 803B88D0 003B5830 3C 60 80 3C */ lis r3, TimeoutHandler@ha +/* 803B88D4 003B5834 54 00 F0 BE */ srwi r0, r0, 2 +/* 803B88D8 003B5838 38 84 4D D3 */ addi r4, r4, 0x10624DD3@l +/* 803B88DC 003B583C 7C 04 00 16 */ mulhwu r0, r4, r0 +/* 803B88E0 003B5840 54 00 D1 BE */ srwi r0, r0, 6 +/* 803B88E4 003B5844 1C C0 00 64 */ mulli r6, r0, 0x64 +/* 803B88E8 003B5848 38 E3 83 F0 */ addi r7, r3, TimeoutHandler@l +/* 803B88EC 003B584C 38 7F 00 E0 */ addi r3, r31, 0xe0 +/* 803B88F0 003B5850 38 A0 00 00 */ li r5, 0 +/* 803B88F4 003B5854 4B FC 5A 1D */ bl OSSetAlarm +/* 803B88F8 003B5858 48 00 00 68 */ b lbl_803B8960 +lbl_803B88FC: +/* 803B88FC 003B585C 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803B8900 003B5860 80 9F 00 0C */ lwz r4, 0xc(r31) +/* 803B8904 003B5864 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803B8908 003B5868 3C 60 80 3C */ lis r3, TimeoutHandler@ha +/* 803B890C 003B586C 7C 89 6E 70 */ srawi r9, r4, 0xd +/* 803B8910 003B5870 54 07 F0 BE */ srwi r7, r0, 2 +/* 803B8914 003B5874 38 00 00 02 */ li r0, 2 +/* 803B8918 003B5878 38 80 00 00 */ li r4, 0 +/* 803B891C 003B587C 7D 04 01 D6 */ mullw r8, r4, r0 +/* 803B8920 003B5880 7C C7 00 16 */ mulhwu r6, r7, r0 +/* 803B8924 003B5884 7D 08 32 14 */ add r8, r8, r6 +/* 803B8928 003B5888 7C A7 01 D6 */ mullw r5, r7, r0 +/* 803B892C 003B588C 7D 29 01 94 */ addze r9, r9 +/* 803B8930 003B5890 7C C7 21 D6 */ mullw r6, r7, r4 +/* 803B8934 003B5894 7D 20 FE 70 */ srawi r0, r9, 0x1f +/* 803B8938 003B5898 7C 80 29 D6 */ mullw r4, r0, r5 +/* 803B893C 003B589C 7C 09 28 16 */ mulhwu r0, r9, r5 +/* 803B8940 003B58A0 38 E3 83 F0 */ addi r7, r3, TimeoutHandler@l +/* 803B8944 003B58A4 7C 68 32 14 */ add r3, r8, r6 +/* 803B8948 003B58A8 7C 84 02 14 */ add r4, r4, r0 +/* 803B894C 003B58AC 7C 09 19 D6 */ mullw r0, r9, r3 +/* 803B8950 003B58B0 7C C9 29 D6 */ mullw r6, r9, r5 +/* 803B8954 003B58B4 38 7F 00 E0 */ addi r3, r31, 0xe0 +/* 803B8958 003B58B8 7C A4 02 14 */ add r5, r4, r0 +/* 803B895C 003B58BC 4B FC 59 B5 */ bl OSSetAlarm +lbl_803B8960: +/* 803B8960 003B58C0 3B E0 00 00 */ li r31, 0 +lbl_803B8964: +/* 803B8964 003B58C4 7F C3 F3 78 */ mr r3, r30 +/* 803B8968 003B58C8 4B FC 8D 21 */ bl OSRestoreInterrupts +/* 803B896C 003B58CC 7F E3 FB 78 */ mr r3, r31 +/* 803B8970 003B58D0 BB 61 00 1C */ lmw r27, 0x1c(r1) +/* 803B8974 003B58D4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B8978 003B58D8 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B897C 003B58DC 7C 08 03 A6 */ mtlr r0 +/* 803B8980 003B58E0 4E 80 00 20 */ blr + +.global __CARDReadSegment +__CARDReadSegment: +/* 803B8984 003B58E4 7C 08 02 A6 */ mflr r0 +/* 803B8988 003B58E8 38 C0 00 05 */ li r6, 5 +/* 803B898C 003B58EC 90 01 00 04 */ stw r0, 4(r1) +/* 803B8990 003B58F0 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B8994 003B58F4 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B8998 003B58F8 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B899C 003B58FC 3B C3 00 00 */ addi r30, r3, 0 +/* 803B89A0 003B5900 1C BE 01 10 */ mulli r5, r30, 0x110 +/* 803B89A4 003B5904 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B89A8 003B5908 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B89AC 003B590C 7F E0 2A 14 */ add r31, r0, r5 +/* 803B89B0 003B5910 38 00 00 52 */ li r0, 0x52 +/* 803B89B4 003B5914 98 1F 00 94 */ stb r0, 0x94(r31) +/* 803B89B8 003B5918 38 00 00 00 */ li r0, 0 +/* 803B89BC 003B591C 38 7E 00 00 */ addi r3, r30, 0 +/* 803B89C0 003B5920 80 BF 00 B0 */ lwz r5, 0xb0(r31) +/* 803B89C4 003B5924 54 A5 7E 7E */ rlwinm r5, r5, 0xf, 0x19, 0x1f +/* 803B89C8 003B5928 98 BF 00 95 */ stb r5, 0x95(r31) +/* 803B89CC 003B592C 38 A0 00 00 */ li r5, 0 +/* 803B89D0 003B5930 80 FF 00 B0 */ lwz r7, 0xb0(r31) +/* 803B89D4 003B5934 54 E7 BE 3E */ rlwinm r7, r7, 0x17, 0x18, 0x1f +/* 803B89D8 003B5938 98 FF 00 96 */ stb r7, 0x96(r31) +/* 803B89DC 003B593C 80 FF 00 B0 */ lwz r7, 0xb0(r31) +/* 803B89E0 003B5940 54 E7 CF BE */ rlwinm r7, r7, 0x19, 0x1e, 0x1f +/* 803B89E4 003B5944 98 FF 00 97 */ stb r7, 0x97(r31) +/* 803B89E8 003B5948 80 FF 00 B0 */ lwz r7, 0xb0(r31) +/* 803B89EC 003B594C 54 E7 06 7E */ clrlwi r7, r7, 0x19 +/* 803B89F0 003B5950 98 FF 00 98 */ stb r7, 0x98(r31) +/* 803B89F4 003B5954 90 DF 00 A0 */ stw r6, 0xa0(r31) +/* 803B89F8 003B5958 90 1F 00 A4 */ stw r0, 0xa4(r31) +/* 803B89FC 003B595C 90 1F 00 A8 */ stw r0, 0xa8(r31) +/* 803B8A00 003B5960 4B FF FD D1 */ bl __CARDStart +/* 803B8A04 003B5964 2C 03 FF FF */ cmpwi r3, -1 +/* 803B8A08 003B5968 40 82 00 0C */ bne lbl_803B8A14 +/* 803B8A0C 003B596C 38 60 00 00 */ li r3, 0 +/* 803B8A10 003B5970 48 00 00 90 */ b lbl_803B8AA0 +lbl_803B8A14: +/* 803B8A14 003B5974 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8A18 003B5978 41 80 00 88 */ blt lbl_803B8AA0 +/* 803B8A1C 003B597C 80 BF 00 A0 */ lwz r5, 0xa0(r31) +/* 803B8A20 003B5980 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8A24 003B5984 38 9F 00 94 */ addi r4, r31, 0x94 +/* 803B8A28 003B5988 38 C0 00 01 */ li r6, 1 +/* 803B8A2C 003B598C 48 00 79 39 */ bl EXIImmEx +/* 803B8A30 003B5990 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8A34 003B5994 41 82 00 48 */ beq lbl_803B8A7C +/* 803B8A38 003B5998 80 9F 00 80 */ lwz r4, 0x80(r31) +/* 803B8A3C 003B599C 7F C3 F3 78 */ mr r3, r30 +/* 803B8A40 003B59A0 80 BF 00 14 */ lwz r5, 0x14(r31) +/* 803B8A44 003B59A4 38 C0 00 01 */ li r6, 1 +/* 803B8A48 003B59A8 38 84 02 00 */ addi r4, r4, 0x200 +/* 803B8A4C 003B59AC 48 00 79 19 */ bl EXIImmEx +/* 803B8A50 003B59B0 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8A54 003B59B4 41 82 00 28 */ beq lbl_803B8A7C +/* 803B8A58 003B59B8 3C 60 80 3C */ lis r3, __CARDTxHandler@ha +/* 803B8A5C 003B59BC 80 9F 00 B4 */ lwz r4, 0xb4(r31) +/* 803B8A60 003B59C0 38 E3 80 68 */ addi r7, r3, __CARDTxHandler@l +/* 803B8A64 003B59C4 80 DF 00 A4 */ lwz r6, 0xa4(r31) +/* 803B8A68 003B59C8 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8A6C 003B59CC 38 A0 02 00 */ li r5, 0x200 +/* 803B8A70 003B59D0 48 00 79 95 */ bl EXIDma +/* 803B8A74 003B59D4 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8A78 003B59D8 40 82 00 24 */ bne lbl_803B8A9C +lbl_803B8A7C: +/* 803B8A7C 003B59DC 38 00 00 00 */ li r0, 0 +/* 803B8A80 003B59E0 90 1F 00 C8 */ stw r0, 0xc8(r31) +/* 803B8A84 003B59E4 7F C3 F3 78 */ mr r3, r30 +/* 803B8A88 003B59E8 48 00 83 01 */ bl EXIDeselect +/* 803B8A8C 003B59EC 7F C3 F3 78 */ mr r3, r30 +/* 803B8A90 003B59F0 48 00 89 C9 */ bl EXIUnlock +/* 803B8A94 003B59F4 38 60 FF FD */ li r3, -3 +/* 803B8A98 003B59F8 48 00 00 08 */ b lbl_803B8AA0 +lbl_803B8A9C: +/* 803B8A9C 003B59FC 38 60 00 00 */ li r3, 0 +lbl_803B8AA0: +/* 803B8AA0 003B5A00 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B8AA4 003B5A04 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B8AA8 003B5A08 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B8AAC 003B5A0C 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B8AB0 003B5A10 7C 08 03 A6 */ mtlr r0 +/* 803B8AB4 003B5A14 4E 80 00 20 */ blr + +.global __CARDWritePage +__CARDWritePage: +/* 803B8AB8 003B5A18 7C 08 02 A6 */ mflr r0 +/* 803B8ABC 003B5A1C 38 E0 00 05 */ li r7, 5 +/* 803B8AC0 003B5A20 90 01 00 04 */ stw r0, 4(r1) +/* 803B8AC4 003B5A24 38 C0 00 01 */ li r6, 1 +/* 803B8AC8 003B5A28 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B8ACC 003B5A2C 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B8AD0 003B5A30 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B8AD4 003B5A34 3B C3 00 00 */ addi r30, r3, 0 +/* 803B8AD8 003B5A38 1C BE 01 10 */ mulli r5, r30, 0x110 +/* 803B8ADC 003B5A3C 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B8AE0 003B5A40 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B8AE4 003B5A44 7F E0 2A 14 */ add r31, r0, r5 +/* 803B8AE8 003B5A48 38 00 00 F2 */ li r0, 0xf2 +/* 803B8AEC 003B5A4C 98 1F 00 94 */ stb r0, 0x94(r31) +/* 803B8AF0 003B5A50 38 A4 00 00 */ addi r5, r4, 0 +/* 803B8AF4 003B5A54 38 00 00 03 */ li r0, 3 +/* 803B8AF8 003B5A58 80 7F 00 B0 */ lwz r3, 0xb0(r31) +/* 803B8AFC 003B5A5C 38 80 00 00 */ li r4, 0 +/* 803B8B00 003B5A60 54 63 7E 7E */ rlwinm r3, r3, 0xf, 0x19, 0x1f +/* 803B8B04 003B5A64 98 7F 00 95 */ stb r3, 0x95(r31) +/* 803B8B08 003B5A68 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8B0C 003B5A6C 81 1F 00 B0 */ lwz r8, 0xb0(r31) +/* 803B8B10 003B5A70 55 08 BE 3E */ rlwinm r8, r8, 0x17, 0x18, 0x1f +/* 803B8B14 003B5A74 99 1F 00 96 */ stb r8, 0x96(r31) +/* 803B8B18 003B5A78 81 1F 00 B0 */ lwz r8, 0xb0(r31) +/* 803B8B1C 003B5A7C 55 08 CF BE */ rlwinm r8, r8, 0x19, 0x1e, 0x1f +/* 803B8B20 003B5A80 99 1F 00 97 */ stb r8, 0x97(r31) +/* 803B8B24 003B5A84 81 1F 00 B0 */ lwz r8, 0xb0(r31) +/* 803B8B28 003B5A88 55 08 06 7E */ clrlwi r8, r8, 0x19 +/* 803B8B2C 003B5A8C 99 1F 00 98 */ stb r8, 0x98(r31) +/* 803B8B30 003B5A90 90 FF 00 A0 */ stw r7, 0xa0(r31) +/* 803B8B34 003B5A94 90 DF 00 A4 */ stw r6, 0xa4(r31) +/* 803B8B38 003B5A98 90 1F 00 A8 */ stw r0, 0xa8(r31) +/* 803B8B3C 003B5A9C 4B FF FC 95 */ bl __CARDStart +/* 803B8B40 003B5AA0 2C 03 FF FF */ cmpwi r3, -1 +/* 803B8B44 003B5AA4 40 82 00 0C */ bne lbl_803B8B50 +/* 803B8B48 003B5AA8 38 60 00 00 */ li r3, 0 +/* 803B8B4C 003B5AAC 48 00 00 70 */ b lbl_803B8BBC +lbl_803B8B50: +/* 803B8B50 003B5AB0 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8B54 003B5AB4 41 80 00 68 */ blt lbl_803B8BBC +/* 803B8B58 003B5AB8 80 BF 00 A0 */ lwz r5, 0xa0(r31) +/* 803B8B5C 003B5ABC 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8B60 003B5AC0 38 9F 00 94 */ addi r4, r31, 0x94 +/* 803B8B64 003B5AC4 38 C0 00 01 */ li r6, 1 +/* 803B8B68 003B5AC8 48 00 77 FD */ bl EXIImmEx +/* 803B8B6C 003B5ACC 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8B70 003B5AD0 41 82 00 28 */ beq lbl_803B8B98 +/* 803B8B74 003B5AD4 3C 60 80 3C */ lis r3, __CARDTxHandler@ha +/* 803B8B78 003B5AD8 80 9F 00 B4 */ lwz r4, 0xb4(r31) +/* 803B8B7C 003B5ADC 38 E3 80 68 */ addi r7, r3, __CARDTxHandler@l +/* 803B8B80 003B5AE0 80 DF 00 A4 */ lwz r6, 0xa4(r31) +/* 803B8B84 003B5AE4 38 7E 00 00 */ addi r3, r30, 0 +/* 803B8B88 003B5AE8 38 A0 00 80 */ li r5, 0x80 +/* 803B8B8C 003B5AEC 48 00 78 79 */ bl EXIDma +/* 803B8B90 003B5AF0 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8B94 003B5AF4 40 82 00 24 */ bne lbl_803B8BB8 +lbl_803B8B98: +/* 803B8B98 003B5AF8 38 00 00 00 */ li r0, 0 +/* 803B8B9C 003B5AFC 90 1F 00 CC */ stw r0, 0xcc(r31) +/* 803B8BA0 003B5B00 7F C3 F3 78 */ mr r3, r30 +/* 803B8BA4 003B5B04 48 00 81 E5 */ bl EXIDeselect +/* 803B8BA8 003B5B08 7F C3 F3 78 */ mr r3, r30 +/* 803B8BAC 003B5B0C 48 00 88 AD */ bl EXIUnlock +/* 803B8BB0 003B5B10 38 60 FF FD */ li r3, -3 +/* 803B8BB4 003B5B14 48 00 00 08 */ b lbl_803B8BBC +lbl_803B8BB8: +/* 803B8BB8 003B5B18 38 60 00 00 */ li r3, 0 +lbl_803B8BBC: +/* 803B8BBC 003B5B1C 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B8BC0 003B5B20 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B8BC4 003B5B24 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B8BC8 003B5B28 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B8BCC 003B5B2C 7C 08 03 A6 */ mtlr r0 +/* 803B8BD0 003B5B30 4E 80 00 20 */ blr + +.global __CARDEraseSector +__CARDEraseSector: +/* 803B8BD4 003B5B34 7C 08 02 A6 */ mflr r0 +/* 803B8BD8 003B5B38 90 01 00 04 */ stw r0, 4(r1) +/* 803B8BDC 003B5B3C 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803B8BE0 003B5B40 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803B8BE4 003B5B44 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803B8BE8 003B5B48 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803B8BEC 003B5B4C 3B A3 00 00 */ addi r29, r3, 0 +/* 803B8BF0 003B5B50 1C DD 01 10 */ mulli r6, r29, 0x110 +/* 803B8BF4 003B5B54 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B8BF8 003B5B58 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B8BFC 003B5B5C 7F E0 32 14 */ add r31, r0, r6 +/* 803B8C00 003B5B60 38 00 00 F1 */ li r0, 0xf1 +/* 803B8C04 003B5B64 98 1F 00 94 */ stb r0, 0x94(r31) +/* 803B8C08 003B5B68 54 83 7E 7E */ rlwinm r3, r4, 0xf, 0x19, 0x1f +/* 803B8C0C 003B5B6C 54 80 BE 3E */ rlwinm r0, r4, 0x17, 0x18, 0x1f +/* 803B8C10 003B5B70 98 7F 00 95 */ stb r3, 0x95(r31) +/* 803B8C14 003B5B74 38 C0 00 03 */ li r6, 3 +/* 803B8C18 003B5B78 38 7D 00 00 */ addi r3, r29, 0 +/* 803B8C1C 003B5B7C 98 1F 00 96 */ stb r0, 0x96(r31) +/* 803B8C20 003B5B80 38 00 FF FF */ li r0, -1 +/* 803B8C24 003B5B84 38 80 00 00 */ li r4, 0 +/* 803B8C28 003B5B88 90 DF 00 A0 */ stw r6, 0xa0(r31) +/* 803B8C2C 003B5B8C 90 1F 00 A4 */ stw r0, 0xa4(r31) +/* 803B8C30 003B5B90 90 DF 00 A8 */ stw r6, 0xa8(r31) +/* 803B8C34 003B5B94 4B FF FB 9D */ bl __CARDStart +/* 803B8C38 003B5B98 3B C3 00 00 */ addi r30, r3, 0 +/* 803B8C3C 003B5B9C 2C 1E FF FF */ cmpwi r30, -1 +/* 803B8C40 003B5BA0 40 82 00 0C */ bne lbl_803B8C4C +/* 803B8C44 003B5BA4 3B C0 00 00 */ li r30, 0 +/* 803B8C48 003B5BA8 48 00 00 4C */ b lbl_803B8C94 +lbl_803B8C4C: +/* 803B8C4C 003B5BAC 2C 1E 00 00 */ cmpwi r30, 0 +/* 803B8C50 003B5BB0 41 80 00 44 */ blt lbl_803B8C94 +/* 803B8C54 003B5BB4 80 BF 00 A0 */ lwz r5, 0xa0(r31) +/* 803B8C58 003B5BB8 38 7D 00 00 */ addi r3, r29, 0 +/* 803B8C5C 003B5BBC 38 9F 00 94 */ addi r4, r31, 0x94 +/* 803B8C60 003B5BC0 38 C0 00 01 */ li r6, 1 +/* 803B8C64 003B5BC4 48 00 77 01 */ bl EXIImmEx +/* 803B8C68 003B5BC8 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8C6C 003B5BCC 40 82 00 14 */ bne lbl_803B8C80 +/* 803B8C70 003B5BD0 38 00 00 00 */ li r0, 0 +/* 803B8C74 003B5BD4 90 1F 00 CC */ stw r0, 0xcc(r31) +/* 803B8C78 003B5BD8 3B C0 FF FD */ li r30, -3 +/* 803B8C7C 003B5BDC 48 00 00 08 */ b lbl_803B8C84 +lbl_803B8C80: +/* 803B8C80 003B5BE0 3B C0 00 00 */ li r30, 0 +lbl_803B8C84: +/* 803B8C84 003B5BE4 7F A3 EB 78 */ mr r3, r29 +/* 803B8C88 003B5BE8 48 00 81 01 */ bl EXIDeselect +/* 803B8C8C 003B5BEC 7F A3 EB 78 */ mr r3, r29 +/* 803B8C90 003B5BF0 48 00 87 C9 */ bl EXIUnlock +lbl_803B8C94: +/* 803B8C94 003B5BF4 7F C3 F3 78 */ mr r3, r30 +/* 803B8C98 003B5BF8 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803B8C9C 003B5BFC 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803B8CA0 003B5C00 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803B8CA4 003B5C04 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803B8CA8 003B5C08 38 21 00 28 */ addi r1, r1, 0x28 +/* 803B8CAC 003B5C0C 7C 08 03 A6 */ mtlr r0 +/* 803B8CB0 003B5C10 4E 80 00 20 */ blr + +.global CARDInit +CARDInit: +/* 803B8CB4 003B5C14 7C 08 02 A6 */ mflr r0 +/* 803B8CB8 003B5C18 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B8CBC 003B5C1C 90 01 00 04 */ stw r0, 4(r1) +/* 803B8CC0 003B5C20 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B8CC4 003B5C24 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B8CC8 003B5C28 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B8CCC 003B5C2C 3B C3 9A 58 */ addi r30, r3, lbl_80569A58@l +/* 803B8CD0 003B5C30 93 A1 00 0C */ stw r29, 0xc(r1) +/* 803B8CD4 003B5C34 80 1E 01 0C */ lwz r0, 0x10c(r30) +/* 803B8CD8 003B5C38 28 00 00 00 */ cmplwi r0, 0 +/* 803B8CDC 003B5C3C 41 82 00 10 */ beq lbl_803B8CEC +/* 803B8CE0 003B5C40 80 1E 02 1C */ lwz r0, 0x21c(r30) +/* 803B8CE4 003B5C44 28 00 00 00 */ cmplwi r0, 0 +/* 803B8CE8 003B5C48 40 82 00 5C */ bne lbl_803B8D44 +lbl_803B8CEC: +/* 803B8CEC 003B5C4C 4B FC 82 59 */ bl OSGetFontEncode +/* 803B8CF0 003B5C50 B0 6D B0 08 */ sth r3, lbl_805A9BC8@sda21(r13) +/* 803B8CF4 003B5C54 80 6D A0 30 */ lwz r3, lbl_805A8BF0@sda21(r13) +/* 803B8CF8 003B5C58 4B FC 53 41 */ bl OSRegisterVersion +/* 803B8CFC 003B5C5C 4B FB 6D 09 */ bl DSPInit +/* 803B8D00 003B5C60 4B FC 53 65 */ bl OSInitAlarm +/* 803B8D04 003B5C64 3B A0 00 00 */ li r29, 0 +/* 803B8D08 003B5C68 3B E0 FF FD */ li r31, -3 +lbl_803B8D0C: +/* 803B8D0C 003B5C6C 93 FE 00 04 */ stw r31, 4(r30) +/* 803B8D10 003B5C70 38 7E 00 8C */ addi r3, r30, 0x8c +/* 803B8D14 003B5C74 4B FC B8 B1 */ bl OSInitThreadQueue +/* 803B8D18 003B5C78 38 7E 00 E0 */ addi r3, r30, 0xe0 +/* 803B8D1C 003B5C7C 4B FC 53 95 */ bl OSCreateAlarm +/* 803B8D20 003B5C80 3B BD 00 01 */ addi r29, r29, 1 +/* 803B8D24 003B5C84 2C 1D 00 02 */ cmpwi r29, 2 +/* 803B8D28 003B5C88 3B DE 01 10 */ addi r30, r30, 0x110 +/* 803B8D2C 003B5C8C 41 80 FF E0 */ blt lbl_803B8D0C +/* 803B8D30 003B5C90 3C 60 80 00 */ lis r3, 0x8000 +/* 803B8D34 003B5C94 48 00 00 35 */ bl __CARDSetDiskID +/* 803B8D38 003B5C98 3C 60 80 3F */ lis r3, lbl_803F6CD8@ha +/* 803B8D3C 003B5C9C 38 63 6C D8 */ addi r3, r3, lbl_803F6CD8@l +/* 803B8D40 003B5CA0 4B FC A2 ED */ bl OSRegisterResetFunction +lbl_803B8D44: +/* 803B8D44 003B5CA4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B8D48 003B5CA8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B8D4C 003B5CAC 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B8D50 003B5CB0 83 A1 00 0C */ lwz r29, 0xc(r1) +/* 803B8D54 003B5CB4 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B8D58 003B5CB8 7C 08 03 A6 */ mtlr r0 +/* 803B8D5C 003B5CBC 4E 80 00 20 */ blr + +.global __CARDGetFontEncode +__CARDGetFontEncode: +/* 803B8D60 003B5CC0 A0 6D B0 08 */ lhz r3, lbl_805A9BC8@sda21(r13) +/* 803B8D64 003B5CC4 4E 80 00 20 */ blr + +.global __CARDSetDiskID +__CARDSetDiskID: +/* 803B8D68 003B5CC8 28 03 00 00 */ cmplwi r3, 0 +/* 803B8D6C 003B5CCC 3C 80 80 57 */ lis r4, lbl_80569A58@ha +/* 803B8D70 003B5CD0 38 84 9A 58 */ addi r4, r4, lbl_80569A58@l +/* 803B8D74 003B5CD4 41 82 00 0C */ beq lbl_803B8D80 +/* 803B8D78 003B5CD8 7C 60 1B 78 */ mr r0, r3 +/* 803B8D7C 003B5CDC 48 00 00 08 */ b lbl_803B8D84 +lbl_803B8D80: +/* 803B8D80 003B5CE0 38 04 02 20 */ addi r0, r4, 0x220 +lbl_803B8D84: +/* 803B8D84 003B5CE4 28 03 00 00 */ cmplwi r3, 0 +/* 803B8D88 003B5CE8 90 04 01 0C */ stw r0, 0x10c(r4) +/* 803B8D8C 003B5CEC 41 82 00 08 */ beq lbl_803B8D94 +/* 803B8D90 003B5CF0 48 00 00 08 */ b lbl_803B8D98 +lbl_803B8D94: +/* 803B8D94 003B5CF4 38 64 02 20 */ addi r3, r4, 0x220 +lbl_803B8D98: +/* 803B8D98 003B5CF8 90 64 02 1C */ stw r3, 0x21c(r4) +/* 803B8D9C 003B5CFC 4E 80 00 20 */ blr + +.global __CARDGetControlBlock +__CARDGetControlBlock: +/* 803B8DA0 003B5D00 7C 08 02 A6 */ mflr r0 +/* 803B8DA4 003B5D04 1C C3 01 10 */ mulli r6, r3, 0x110 +/* 803B8DA8 003B5D08 90 01 00 04 */ stw r0, 4(r1) +/* 803B8DAC 003B5D0C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B8DB0 003B5D10 3C A0 80 57 */ lis r5, lbl_80569A58@ha +/* 803B8DB4 003B5D14 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8DB8 003B5D18 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B8DBC 003B5D1C 38 05 9A 58 */ addi r0, r5, lbl_80569A58@l +/* 803B8DC0 003B5D20 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B8DC4 003B5D24 7F C0 32 14 */ add r30, r0, r6 +/* 803B8DC8 003B5D28 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B8DCC 003B5D2C 3B A4 00 00 */ addi r29, r4, 0 +/* 803B8DD0 003B5D30 41 80 00 18 */ blt lbl_803B8DE8 +/* 803B8DD4 003B5D34 2C 03 00 02 */ cmpwi r3, 2 +/* 803B8DD8 003B5D38 40 80 00 10 */ bge lbl_803B8DE8 +/* 803B8DDC 003B5D3C 80 1E 01 0C */ lwz r0, 0x10c(r30) +/* 803B8DE0 003B5D40 28 00 00 00 */ cmplwi r0, 0 +/* 803B8DE4 003B5D44 40 82 00 0C */ bne lbl_803B8DF0 +lbl_803B8DE8: +/* 803B8DE8 003B5D48 38 60 FF 80 */ li r3, -128 +/* 803B8DEC 003B5D4C 48 00 00 50 */ b lbl_803B8E3C +lbl_803B8DF0: +/* 803B8DF0 003B5D50 4B FC 88 71 */ bl OSDisableInterrupts +/* 803B8DF4 003B5D54 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B8DF8 003B5D58 2C 00 00 00 */ cmpwi r0, 0 +/* 803B8DFC 003B5D5C 40 82 00 0C */ bne lbl_803B8E08 +/* 803B8E00 003B5D60 3B E0 FF FD */ li r31, -3 +/* 803B8E04 003B5D64 48 00 00 30 */ b lbl_803B8E34 +lbl_803B8E08: +/* 803B8E08 003B5D68 80 1E 00 04 */ lwz r0, 4(r30) +/* 803B8E0C 003B5D6C 2C 00 FF FF */ cmpwi r0, -1 +/* 803B8E10 003B5D70 40 82 00 0C */ bne lbl_803B8E1C +/* 803B8E14 003B5D74 3B E0 FF FF */ li r31, -1 +/* 803B8E18 003B5D78 48 00 00 1C */ b lbl_803B8E34 +lbl_803B8E1C: +/* 803B8E1C 003B5D7C 38 00 FF FF */ li r0, -1 +/* 803B8E20 003B5D80 90 1E 00 04 */ stw r0, 4(r30) +/* 803B8E24 003B5D84 38 00 00 00 */ li r0, 0 +/* 803B8E28 003B5D88 3B E0 00 00 */ li r31, 0 +/* 803B8E2C 003B5D8C 90 1E 00 D0 */ stw r0, 0xd0(r30) +/* 803B8E30 003B5D90 93 DD 00 00 */ stw r30, 0(r29) +lbl_803B8E34: +/* 803B8E34 003B5D94 4B FC 88 55 */ bl OSRestoreInterrupts +/* 803B8E38 003B5D98 7F E3 FB 78 */ mr r3, r31 +lbl_803B8E3C: +/* 803B8E3C 003B5D9C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B8E40 003B5DA0 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B8E44 003B5DA4 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B8E48 003B5DA8 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B8E4C 003B5DAC 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B8E50 003B5DB0 7C 08 03 A6 */ mtlr r0 +/* 803B8E54 003B5DB4 4E 80 00 20 */ blr + +.global __CARDPutControlBlock +__CARDPutControlBlock: +/* 803B8E58 003B5DB8 7C 08 02 A6 */ mflr r0 +/* 803B8E5C 003B5DBC 90 01 00 04 */ stw r0, 4(r1) +/* 803B8E60 003B5DC0 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B8E64 003B5DC4 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B8E68 003B5DC8 3B E4 00 00 */ addi r31, r4, 0 +/* 803B8E6C 003B5DCC 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803B8E70 003B5DD0 3B C3 00 00 */ addi r30, r3, 0 +/* 803B8E74 003B5DD4 4B FC 87 ED */ bl OSDisableInterrupts +/* 803B8E78 003B5DD8 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B8E7C 003B5DDC 2C 00 00 00 */ cmpwi r0, 0 +/* 803B8E80 003B5DE0 41 82 00 0C */ beq lbl_803B8E8C +/* 803B8E84 003B5DE4 93 FE 00 04 */ stw r31, 4(r30) +/* 803B8E88 003B5DE8 48 00 00 14 */ b lbl_803B8E9C +lbl_803B8E8C: +/* 803B8E8C 003B5DEC 80 1E 00 04 */ lwz r0, 4(r30) +/* 803B8E90 003B5DF0 2C 00 FF FF */ cmpwi r0, -1 +/* 803B8E94 003B5DF4 40 82 00 08 */ bne lbl_803B8E9C +/* 803B8E98 003B5DF8 93 FE 00 04 */ stw r31, 4(r30) +lbl_803B8E9C: +/* 803B8E9C 003B5DFC 4B FC 87 ED */ bl OSRestoreInterrupts +/* 803B8EA0 003B5E00 7F E3 FB 78 */ mr r3, r31 +/* 803B8EA4 003B5E04 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B8EA8 003B5E08 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B8EAC 003B5E0C 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803B8EB0 003B5E10 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B8EB4 003B5E14 7C 08 03 A6 */ mtlr r0 +/* 803B8EB8 003B5E18 4E 80 00 20 */ blr + +.global CARDGetResultCode +CARDGetResultCode: +/* 803B8EBC 003B5E1C 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8EC0 003B5E20 41 80 00 0C */ blt lbl_803B8ECC +/* 803B8EC4 003B5E24 2C 03 00 02 */ cmpwi r3, 2 +/* 803B8EC8 003B5E28 41 80 00 0C */ blt lbl_803B8ED4 +lbl_803B8ECC: +/* 803B8ECC 003B5E2C 38 60 FF 80 */ li r3, -128 +/* 803B8ED0 003B5E30 4E 80 00 20 */ blr +lbl_803B8ED4: +/* 803B8ED4 003B5E34 1C 83 01 10 */ mulli r4, r3, 0x110 +/* 803B8ED8 003B5E38 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B8EDC 003B5E3C 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B8EE0 003B5E40 7C 60 22 14 */ add r3, r0, r4 +/* 803B8EE4 003B5E44 80 63 00 04 */ lwz r3, 4(r3) +/* 803B8EE8 003B5E48 4E 80 00 20 */ blr + +.global CARDFreeBlocks +CARDFreeBlocks: +/* 803B8EEC 003B5E4C 7C 08 02 A6 */ mflr r0 +/* 803B8EF0 003B5E50 90 01 00 04 */ stw r0, 4(r1) +/* 803B8EF4 003B5E54 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B8EF8 003B5E58 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803B8EFC 003B5E5C 3B E5 00 00 */ addi r31, r5, 0 +/* 803B8F00 003B5E60 93 C1 00 28 */ stw r30, 0x28(r1) +/* 803B8F04 003B5E64 93 A1 00 24 */ stw r29, 0x24(r1) +/* 803B8F08 003B5E68 3B A4 00 00 */ addi r29, r4, 0 +/* 803B8F0C 003B5E6C 38 81 00 18 */ addi r4, r1, 0x18 +/* 803B8F10 003B5E70 4B FF FE 91 */ bl __CARDGetControlBlock +/* 803B8F14 003B5E74 2C 03 00 00 */ cmpwi r3, 0 +/* 803B8F18 003B5E78 40 80 00 08 */ bge lbl_803B8F20 +/* 803B8F1C 003B5E7C 48 00 01 04 */ b lbl_803B9020 +lbl_803B8F20: +/* 803B8F20 003B5E80 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803B8F24 003B5E84 48 00 16 49 */ bl __CARDGetFatBlock +/* 803B8F28 003B5E88 7C 7E 1B 78 */ mr r30, r3 +/* 803B8F2C 003B5E8C 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803B8F30 003B5E90 48 00 1A 41 */ bl __CARDGetDirBlock +/* 803B8F34 003B5E94 28 1E 00 00 */ cmplwi r30, 0 +/* 803B8F38 003B5E98 41 82 00 0C */ beq lbl_803B8F44 +/* 803B8F3C 003B5E9C 28 03 00 00 */ cmplwi r3, 0 +/* 803B8F40 003B5EA0 40 82 00 44 */ bne lbl_803B8F84 +lbl_803B8F44: +/* 803B8F44 003B5EA4 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B8F48 003B5EA8 4B FC 87 19 */ bl OSDisableInterrupts +/* 803B8F4C 003B5EAC 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B8F50 003B5EB0 2C 00 00 00 */ cmpwi r0, 0 +/* 803B8F54 003B5EB4 41 82 00 10 */ beq lbl_803B8F64 +/* 803B8F58 003B5EB8 38 00 FF FA */ li r0, -6 +/* 803B8F5C 003B5EBC 90 1E 00 04 */ stw r0, 4(r30) +/* 803B8F60 003B5EC0 48 00 00 18 */ b lbl_803B8F78 +lbl_803B8F64: +/* 803B8F64 003B5EC4 80 1E 00 04 */ lwz r0, 4(r30) +/* 803B8F68 003B5EC8 2C 00 FF FF */ cmpwi r0, -1 +/* 803B8F6C 003B5ECC 40 82 00 0C */ bne lbl_803B8F78 +/* 803B8F70 003B5ED0 38 00 FF FA */ li r0, -6 +/* 803B8F74 003B5ED4 90 1E 00 04 */ stw r0, 4(r30) +lbl_803B8F78: +/* 803B8F78 003B5ED8 4B FC 87 11 */ bl OSRestoreInterrupts +/* 803B8F7C 003B5EDC 38 60 FF FA */ li r3, -6 +/* 803B8F80 003B5EE0 48 00 00 A0 */ b lbl_803B9020 +lbl_803B8F84: +/* 803B8F84 003B5EE4 28 1D 00 00 */ cmplwi r29, 0 +/* 803B8F88 003B5EE8 41 82 00 18 */ beq lbl_803B8FA0 +/* 803B8F8C 003B5EEC 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803B8F90 003B5EF0 A0 1E 00 06 */ lhz r0, 6(r30) +/* 803B8F94 003B5EF4 80 84 00 0C */ lwz r4, 0xc(r4) +/* 803B8F98 003B5EF8 7C 04 01 D6 */ mullw r0, r4, r0 +/* 803B8F9C 003B5EFC 90 1D 00 00 */ stw r0, 0(r29) +lbl_803B8FA0: +/* 803B8FA0 003B5F00 28 1F 00 00 */ cmplwi r31, 0 +/* 803B8FA4 003B5F04 41 82 00 40 */ beq lbl_803B8FE4 +/* 803B8FA8 003B5F08 38 00 00 00 */ li r0, 0 +/* 803B8FAC 003B5F0C 90 1F 00 00 */ stw r0, 0(r31) +/* 803B8FB0 003B5F10 38 A0 00 00 */ li r5, 0 +/* 803B8FB4 003B5F14 48 00 00 24 */ b lbl_803B8FD8 +lbl_803B8FB8: +/* 803B8FB8 003B5F18 88 03 00 08 */ lbz r0, 8(r3) +/* 803B8FBC 003B5F1C 28 00 00 FF */ cmplwi r0, 0xff +/* 803B8FC0 003B5F20 40 82 00 10 */ bne lbl_803B8FD0 +/* 803B8FC4 003B5F24 80 9F 00 00 */ lwz r4, 0(r31) +/* 803B8FC8 003B5F28 38 04 00 01 */ addi r0, r4, 1 +/* 803B8FCC 003B5F2C 90 1F 00 00 */ stw r0, 0(r31) +lbl_803B8FD0: +/* 803B8FD0 003B5F30 38 63 00 40 */ addi r3, r3, 0x40 +/* 803B8FD4 003B5F34 38 A5 00 01 */ addi r5, r5, 1 +lbl_803B8FD8: +/* 803B8FD8 003B5F38 54 A0 04 3E */ clrlwi r0, r5, 0x10 +/* 803B8FDC 003B5F3C 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B8FE0 003B5F40 41 80 FF D8 */ blt lbl_803B8FB8 +lbl_803B8FE4: +/* 803B8FE4 003B5F44 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B8FE8 003B5F48 4B FC 86 79 */ bl OSDisableInterrupts +/* 803B8FEC 003B5F4C 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B8FF0 003B5F50 2C 00 00 00 */ cmpwi r0, 0 +/* 803B8FF4 003B5F54 41 82 00 10 */ beq lbl_803B9004 +/* 803B8FF8 003B5F58 38 00 00 00 */ li r0, 0 +/* 803B8FFC 003B5F5C 90 1E 00 04 */ stw r0, 4(r30) +/* 803B9000 003B5F60 48 00 00 18 */ b lbl_803B9018 +lbl_803B9004: +/* 803B9004 003B5F64 80 1E 00 04 */ lwz r0, 4(r30) +/* 803B9008 003B5F68 2C 00 FF FF */ cmpwi r0, -1 +/* 803B900C 003B5F6C 40 82 00 0C */ bne lbl_803B9018 +/* 803B9010 003B5F70 38 00 00 00 */ li r0, 0 +/* 803B9014 003B5F74 90 1E 00 04 */ stw r0, 4(r30) +lbl_803B9018: +/* 803B9018 003B5F78 4B FC 86 71 */ bl OSRestoreInterrupts +/* 803B901C 003B5F7C 38 60 00 00 */ li r3, 0 +lbl_803B9020: +/* 803B9020 003B5F80 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B9024 003B5F84 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803B9028 003B5F88 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 803B902C 003B5F8C 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 803B9030 003B5F90 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B9034 003B5F94 7C 08 03 A6 */ mtlr r0 +/* 803B9038 003B5F98 4E 80 00 20 */ blr + +OnReset: +/* 803B903C 003B5F9C 7C 08 02 A6 */ mflr r0 +/* 803B9040 003B5FA0 2C 03 00 00 */ cmpwi r3, 0 +/* 803B9044 003B5FA4 90 01 00 04 */ stw r0, 4(r1) +/* 803B9048 003B5FA8 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B904C 003B5FAC 40 82 00 2C */ bne lbl_803B9078 +/* 803B9050 003B5FB0 38 60 00 00 */ li r3, 0 +/* 803B9054 003B5FB4 48 00 34 89 */ bl CARDUnmount +/* 803B9058 003B5FB8 2C 03 FF FF */ cmpwi r3, -1 +/* 803B905C 003B5FBC 41 82 00 14 */ beq lbl_803B9070 +/* 803B9060 003B5FC0 38 60 00 01 */ li r3, 1 +/* 803B9064 003B5FC4 48 00 34 79 */ bl CARDUnmount +/* 803B9068 003B5FC8 2C 03 FF FF */ cmpwi r3, -1 +/* 803B906C 003B5FCC 40 82 00 0C */ bne lbl_803B9078 +lbl_803B9070: +/* 803B9070 003B5FD0 38 60 00 00 */ li r3, 0 +/* 803B9074 003B5FD4 48 00 00 08 */ b lbl_803B907C +lbl_803B9078: +/* 803B9078 003B5FD8 38 60 00 01 */ li r3, 1 +lbl_803B907C: +/* 803B907C 003B5FDC 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B9080 003B5FE0 38 21 00 08 */ addi r1, r1, 8 +/* 803B9084 003B5FE4 7C 08 03 A6 */ mtlr r0 +/* 803B9088 003B5FE8 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDBlock.s b/asm/Dolphin/CARD/CARDBlock.s new file mode 100644 index 00000000..496a41a8 --- /dev/null +++ b/asm/Dolphin/CARD/CARDBlock.s @@ -0,0 +1,299 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __CARDGetFatBlock +__CARDGetFatBlock: +/* 803BA56C 003B74CC 80 63 00 88 */ lwz r3, 0x88(r3) +/* 803BA570 003B74D0 4E 80 00 20 */ blr + +WriteCallback: +/* 803BA574 003B74D4 7C 08 02 A6 */ mflr r0 +/* 803BA578 003B74D8 90 01 00 04 */ stw r0, 4(r1) +/* 803BA57C 003B74DC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BA580 003B74E0 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BA584 003B74E4 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BA588 003B74E8 7C 9E 23 79 */ or. r30, r4, r4 +/* 803BA58C 003B74EC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BA590 003B74F0 3B A3 00 00 */ addi r29, r3, 0 +/* 803BA594 003B74F4 1C BD 01 10 */ mulli r5, r29, 0x110 +/* 803BA598 003B74F8 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BA59C 003B74FC 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BA5A0 003B7500 7F E0 2A 14 */ add r31, r0, r5 +/* 803BA5A4 003B7504 41 80 00 48 */ blt lbl_803BA5EC +/* 803BA5A8 003B7508 80 7F 00 80 */ lwz r3, 0x80(r31) +/* 803BA5AC 003B750C 80 1F 00 88 */ lwz r0, 0x88(r31) +/* 803BA5B0 003B7510 38 83 60 00 */ addi r4, r3, 0x6000 +/* 803BA5B4 003B7514 7C 00 20 40 */ cmplw r0, r4 +/* 803BA5B8 003B7518 3C A3 00 01 */ addis r5, r3, 1 +/* 803BA5BC 003B751C 38 A5 80 00 */ addi r5, r5, -32768 +/* 803BA5C0 003B7520 40 82 00 18 */ bne lbl_803BA5D8 +/* 803BA5C4 003B7524 90 BF 00 88 */ stw r5, 0x88(r31) +/* 803BA5C8 003B7528 38 65 00 00 */ addi r3, r5, 0 +/* 803BA5CC 003B752C 38 A0 20 00 */ li r5, 0x2000 +/* 803BA5D0 003B7530 4B C4 8E C1 */ bl memcpy +/* 803BA5D4 003B7534 48 00 00 18 */ b lbl_803BA5EC +lbl_803BA5D8: +/* 803BA5D8 003B7538 90 9F 00 88 */ stw r4, 0x88(r31) +/* 803BA5DC 003B753C 38 64 00 00 */ addi r3, r4, 0 +/* 803BA5E0 003B7540 38 85 00 00 */ addi r4, r5, 0 +/* 803BA5E4 003B7544 38 A0 20 00 */ li r5, 0x2000 +/* 803BA5E8 003B7548 4B C4 8E A9 */ bl memcpy +lbl_803BA5EC: +/* 803BA5EC 003B754C 80 1F 00 D0 */ lwz r0, 0xd0(r31) +/* 803BA5F0 003B7550 28 00 00 00 */ cmplwi r0, 0 +/* 803BA5F4 003B7554 40 82 00 10 */ bne lbl_803BA604 +/* 803BA5F8 003B7558 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA5FC 003B755C 38 9E 00 00 */ addi r4, r30, 0 +/* 803BA600 003B7560 4B FF E8 59 */ bl __CARDPutControlBlock +lbl_803BA604: +/* 803BA604 003B7564 80 1F 00 D8 */ lwz r0, 0xd8(r31) +/* 803BA608 003B7568 28 00 00 00 */ cmplwi r0, 0 +/* 803BA60C 003B756C 7C 0C 03 78 */ mr r12, r0 +/* 803BA610 003B7570 41 82 00 1C */ beq lbl_803BA62C +/* 803BA614 003B7574 38 00 00 00 */ li r0, 0 +/* 803BA618 003B7578 7D 88 03 A6 */ mtlr r12 +/* 803BA61C 003B757C 90 1F 00 D8 */ stw r0, 0xd8(r31) +/* 803BA620 003B7580 38 7D 00 00 */ addi r3, r29, 0 +/* 803BA624 003B7584 38 9E 00 00 */ addi r4, r30, 0 +/* 803BA628 003B7588 4E 80 00 21 */ blrl +lbl_803BA62C: +/* 803BA62C 003B758C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BA630 003B7590 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BA634 003B7594 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BA638 003B7598 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BA63C 003B759C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BA640 003B75A0 7C 08 03 A6 */ mtlr r0 +/* 803BA644 003B75A4 4E 80 00 20 */ blr + +EraseCallback: +/* 803BA648 003B75A8 7C 08 02 A6 */ mflr r0 +/* 803BA64C 003B75AC 90 01 00 04 */ stw r0, 4(r1) +/* 803BA650 003B75B0 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BA654 003B75B4 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803BA658 003B75B8 3B E3 00 00 */ addi r31, r3, 0 +/* 803BA65C 003B75BC 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BA660 003B75C0 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803BA664 003B75C4 1C BF 01 10 */ mulli r5, r31, 0x110 +/* 803BA668 003B75C8 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803BA66C 003B75CC 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BA670 003B75D0 7C 9D 23 79 */ or. r29, r4, r4 +/* 803BA674 003B75D4 7F C0 2A 14 */ add r30, r0, r5 +/* 803BA678 003B75D8 41 80 00 3C */ blt lbl_803BA6B4 +/* 803BA67C 003B75DC 80 BE 00 88 */ lwz r5, 0x88(r30) +/* 803BA680 003B75E0 3C 60 80 3C */ lis r3, WriteCallback@ha +/* 803BA684 003B75E4 80 1E 00 80 */ lwz r0, 0x80(r30) +/* 803BA688 003B75E8 38 E3 A5 74 */ addi r7, r3, WriteCallback@l +/* 803BA68C 003B75EC 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 803BA690 003B75F0 7C 00 28 50 */ subf r0, r0, r5 +/* 803BA694 003B75F4 54 00 9B 7E */ srwi r0, r0, 0xd +/* 803BA698 003B75F8 7C 83 01 D6 */ mullw r4, r3, r0 +/* 803BA69C 003B75FC 38 C5 00 00 */ addi r6, r5, 0 +/* 803BA6A0 003B7600 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA6A4 003B7604 38 A0 20 00 */ li r5, 0x2000 +/* 803BA6A8 003B7608 4B FF FE 61 */ bl __CARDWrite +/* 803BA6AC 003B760C 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BA6B0 003B7610 40 80 00 44 */ bge lbl_803BA6F4 +lbl_803BA6B4: +/* 803BA6B4 003B7614 80 1E 00 D0 */ lwz r0, 0xd0(r30) +/* 803BA6B8 003B7618 28 00 00 00 */ cmplwi r0, 0 +/* 803BA6BC 003B761C 40 82 00 10 */ bne lbl_803BA6CC +/* 803BA6C0 003B7620 38 7E 00 00 */ addi r3, r30, 0 +/* 803BA6C4 003B7624 38 9D 00 00 */ addi r4, r29, 0 +/* 803BA6C8 003B7628 4B FF E7 91 */ bl __CARDPutControlBlock +lbl_803BA6CC: +/* 803BA6CC 003B762C 80 1E 00 D8 */ lwz r0, 0xd8(r30) +/* 803BA6D0 003B7630 28 00 00 00 */ cmplwi r0, 0 +/* 803BA6D4 003B7634 7C 0C 03 78 */ mr r12, r0 +/* 803BA6D8 003B7638 41 82 00 1C */ beq lbl_803BA6F4 +/* 803BA6DC 003B763C 38 00 00 00 */ li r0, 0 +/* 803BA6E0 003B7640 7D 88 03 A6 */ mtlr r12 +/* 803BA6E4 003B7644 90 1E 00 D8 */ stw r0, 0xd8(r30) +/* 803BA6E8 003B7648 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA6EC 003B764C 38 9D 00 00 */ addi r4, r29, 0 +/* 803BA6F0 003B7650 4E 80 00 21 */ blrl +lbl_803BA6F4: +/* 803BA6F4 003B7654 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BA6F8 003B7658 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803BA6FC 003B765C 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803BA700 003B7660 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803BA704 003B7664 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BA708 003B7668 7C 08 03 A6 */ mtlr r0 +/* 803BA70C 003B766C 4E 80 00 20 */ blr + +.global __CARDAllocBlock +__CARDAllocBlock: +/* 803BA710 003B7670 7C 08 02 A6 */ mflr r0 +/* 803BA714 003B7674 1C E3 01 10 */ mulli r7, r3, 0x110 +/* 803BA718 003B7678 90 01 00 04 */ stw r0, 4(r1) +/* 803BA71C 003B767C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BA720 003B7680 3C C0 80 57 */ lis r6, lbl_80569A58@ha +/* 803BA724 003B7684 38 06 9A 58 */ addi r0, r6, lbl_80569A58@l +/* 803BA728 003B7688 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BA72C 003B768C 7D 20 3A 14 */ add r9, r0, r7 +/* 803BA730 003B7690 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BA734 003B7694 80 09 00 00 */ lwz r0, 0(r9) +/* 803BA738 003B7698 2C 00 00 00 */ cmpwi r0, 0 +/* 803BA73C 003B769C 40 82 00 0C */ bne lbl_803BA748 +/* 803BA740 003B76A0 38 60 FF FD */ li r3, -3 +/* 803BA744 003B76A4 48 00 00 CC */ b lbl_803BA810 +lbl_803BA748: +/* 803BA748 003B76A8 81 09 00 88 */ lwz r8, 0x88(r9) +/* 803BA74C 003B76AC A0 08 00 06 */ lhz r0, 6(r8) +/* 803BA750 003B76B0 7C 00 20 40 */ cmplw r0, r4 +/* 803BA754 003B76B4 40 80 00 0C */ bge lbl_803BA760 +/* 803BA758 003B76B8 38 60 FF F7 */ li r3, -9 +/* 803BA75C 003B76BC 48 00 00 B4 */ b lbl_803BA810 +lbl_803BA760: +/* 803BA760 003B76C0 7C 04 00 50 */ subf r0, r4, r0 +/* 803BA764 003B76C4 B0 08 00 06 */ sth r0, 6(r8) +/* 803BA768 003B76C8 3C C0 00 01 */ lis r6, 0x0000FFFF@ha +/* 803BA76C 003B76CC 39 86 FF FF */ addi r12, r6, 0x0000FFFF@l +/* 803BA770 003B76D0 A1 68 00 08 */ lhz r11, 8(r8) +/* 803BA774 003B76D4 38 0C 00 00 */ addi r0, r12, 0 +/* 803BA778 003B76D8 3B C0 00 00 */ li r30, 0 +/* 803BA77C 003B76DC 48 00 00 7C */ b lbl_803BA7F8 +lbl_803BA780: +/* 803BA780 003B76E0 A1 49 00 10 */ lhz r10, 0x10(r9) +/* 803BA784 003B76E4 3B DE 00 01 */ addi r30, r30, 1 +/* 803BA788 003B76E8 57 C6 04 3E */ clrlwi r6, r30, 0x10 +/* 803BA78C 003B76EC 38 EA FF FB */ addi r7, r10, -5 +/* 803BA790 003B76F0 7C 07 30 00 */ cmpw r7, r6 +/* 803BA794 003B76F4 40 80 00 0C */ bge lbl_803BA7A0 +/* 803BA798 003B76F8 38 60 FF FA */ li r3, -6 +/* 803BA79C 003B76FC 48 00 00 74 */ b lbl_803BA810 +lbl_803BA7A0: +/* 803BA7A0 003B7700 39 6B 00 01 */ addi r11, r11, 1 +/* 803BA7A4 003B7704 55 66 04 3E */ clrlwi r6, r11, 0x10 +/* 803BA7A8 003B7708 28 06 00 05 */ cmplwi r6, 5 +/* 803BA7AC 003B770C 41 80 00 0C */ blt lbl_803BA7B8 +/* 803BA7B0 003B7710 7C 06 50 40 */ cmplw r6, r10 +/* 803BA7B4 003B7714 41 80 00 08 */ blt lbl_803BA7BC +lbl_803BA7B8: +/* 803BA7B8 003B7718 39 60 00 05 */ li r11, 5 +lbl_803BA7BC: +/* 803BA7BC 003B771C 55 66 0B FC */ rlwinm r6, r11, 1, 0xf, 0x1e +/* 803BA7C0 003B7720 7C E8 32 14 */ add r7, r8, r6 +/* 803BA7C4 003B7724 A0 C7 00 00 */ lhz r6, 0(r7) +/* 803BA7C8 003B7728 28 06 00 00 */ cmplwi r6, 0 +/* 803BA7CC 003B772C 40 82 00 2C */ bne lbl_803BA7F8 +/* 803BA7D0 003B7730 55 86 04 3E */ clrlwi r6, r12, 0x10 +/* 803BA7D4 003B7734 28 06 FF FF */ cmplwi r6, 0xffff +/* 803BA7D8 003B7738 40 82 00 0C */ bne lbl_803BA7E4 +/* 803BA7DC 003B773C 7D 6C 5B 78 */ mr r12, r11 +/* 803BA7E0 003B7740 48 00 00 0C */ b lbl_803BA7EC +lbl_803BA7E4: +/* 803BA7E4 003B7744 57 E6 0B FC */ rlwinm r6, r31, 1, 0xf, 0x1e +/* 803BA7E8 003B7748 7D 68 33 2E */ sthx r11, r8, r6 +lbl_803BA7EC: +/* 803BA7EC 003B774C B0 07 00 00 */ sth r0, 0(r7) +/* 803BA7F0 003B7750 3B EB 00 00 */ addi r31, r11, 0 +/* 803BA7F4 003B7754 38 84 FF FF */ addi r4, r4, -1 +lbl_803BA7F8: +/* 803BA7F8 003B7758 28 04 00 00 */ cmplwi r4, 0 +/* 803BA7FC 003B775C 40 82 FF 84 */ bne lbl_803BA780 +/* 803BA800 003B7760 B1 68 00 08 */ sth r11, 8(r8) +/* 803BA804 003B7764 7D 04 43 78 */ mr r4, r8 +/* 803BA808 003B7768 B1 89 00 BE */ sth r12, 0xbe(r9) +/* 803BA80C 003B776C 48 00 00 B9 */ bl __CARDUpdateFatBlock +lbl_803BA810: +/* 803BA810 003B7770 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BA814 003B7774 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BA818 003B7778 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BA81C 003B777C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BA820 003B7780 7C 08 03 A6 */ mtlr r0 +/* 803BA824 003B7784 4E 80 00 20 */ blr + +.global __CARDFreeBlock +__CARDFreeBlock: +/* 803BA828 003B7788 7C 08 02 A6 */ mflr r0 +/* 803BA82C 003B778C 1C E3 01 10 */ mulli r7, r3, 0x110 +/* 803BA830 003B7790 90 01 00 04 */ stw r0, 4(r1) +/* 803BA834 003B7794 3C C0 80 57 */ lis r6, lbl_80569A58@ha +/* 803BA838 003B7798 94 21 FF F8 */ stwu r1, -8(r1) +/* 803BA83C 003B779C 38 06 9A 58 */ addi r0, r6, lbl_80569A58@l +/* 803BA840 003B77A0 7D 20 3A 14 */ add r9, r0, r7 +/* 803BA844 003B77A4 80 09 00 00 */ lwz r0, 0(r9) +/* 803BA848 003B77A8 2C 00 00 00 */ cmpwi r0, 0 +/* 803BA84C 003B77AC 40 82 00 0C */ bne lbl_803BA858 +/* 803BA850 003B77B0 38 60 FF FD */ li r3, -3 +/* 803BA854 003B77B4 48 00 00 60 */ b lbl_803BA8B4 +lbl_803BA858: +/* 803BA858 003B77B8 81 09 00 88 */ lwz r8, 0x88(r9) +/* 803BA85C 003B77BC 38 E0 00 00 */ li r7, 0 +/* 803BA860 003B77C0 48 00 00 40 */ b lbl_803BA8A0 +lbl_803BA864: +/* 803BA864 003B77C4 54 84 04 3E */ clrlwi r4, r4, 0x10 +/* 803BA868 003B77C8 28 04 00 05 */ cmplwi r4, 5 +/* 803BA86C 003B77CC 41 80 00 10 */ blt lbl_803BA87C +/* 803BA870 003B77D0 A0 09 00 10 */ lhz r0, 0x10(r9) +/* 803BA874 003B77D4 7C 04 00 40 */ cmplw r4, r0 +/* 803BA878 003B77D8 41 80 00 0C */ blt lbl_803BA884 +lbl_803BA87C: +/* 803BA87C 003B77DC 38 60 FF FA */ li r3, -6 +/* 803BA880 003B77E0 48 00 00 34 */ b lbl_803BA8B4 +lbl_803BA884: +/* 803BA884 003B77E4 54 80 08 3C */ slwi r0, r4, 1 +/* 803BA888 003B77E8 7C C8 02 14 */ add r6, r8, r0 +/* 803BA88C 003B77EC A0 86 00 00 */ lhz r4, 0(r6) +/* 803BA890 003B77F0 B0 E6 00 00 */ sth r7, 0(r6) +/* 803BA894 003B77F4 A0 C8 00 06 */ lhz r6, 6(r8) +/* 803BA898 003B77F8 38 06 00 01 */ addi r0, r6, 1 +/* 803BA89C 003B77FC B0 08 00 06 */ sth r0, 6(r8) +lbl_803BA8A0: +/* 803BA8A0 003B7800 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803BA8A4 003B7804 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BA8A8 003B7808 40 82 FF BC */ bne lbl_803BA864 +/* 803BA8AC 003B780C 7D 04 43 78 */ mr r4, r8 +/* 803BA8B0 003B7810 48 00 00 15 */ bl __CARDUpdateFatBlock +lbl_803BA8B4: +/* 803BA8B4 003B7814 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803BA8B8 003B7818 38 21 00 08 */ addi r1, r1, 8 +/* 803BA8BC 003B781C 7C 08 03 A6 */ mtlr r0 +/* 803BA8C0 003B7820 4E 80 00 20 */ blr + +.global __CARDUpdateFatBlock +__CARDUpdateFatBlock: +/* 803BA8C4 003B7824 7C 08 02 A6 */ mflr r0 +/* 803BA8C8 003B7828 90 01 00 04 */ stw r0, 4(r1) +/* 803BA8CC 003B782C 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BA8D0 003B7830 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803BA8D4 003B7834 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803BA8D8 003B7838 3B C5 00 00 */ addi r30, r5, 0 +/* 803BA8DC 003B783C 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803BA8E0 003B7840 3B A4 00 00 */ addi r29, r4, 0 +/* 803BA8E4 003B7844 38 BD 00 00 */ addi r5, r29, 0 +/* 803BA8E8 003B7848 93 81 00 18 */ stw r28, 0x18(r1) +/* 803BA8EC 003B784C 3B 83 00 00 */ addi r28, r3, 0 +/* 803BA8F0 003B7850 38 DD 00 02 */ addi r6, r29, 2 +/* 803BA8F4 003B7854 A0 64 00 04 */ lhz r3, 4(r4) +/* 803BA8F8 003B7858 1C 9C 01 10 */ mulli r4, r28, 0x110 +/* 803BA8FC 003B785C 38 03 00 01 */ addi r0, r3, 1 +/* 803BA900 003B7860 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BA904 003B7864 B0 1D 00 04 */ sth r0, 4(r29) +/* 803BA908 003B7868 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BA90C 003B786C 7F E0 22 14 */ add r31, r0, r4 +/* 803BA910 003B7870 38 7D 00 04 */ addi r3, r29, 4 +/* 803BA914 003B7874 38 80 1F FC */ li r4, 0x1ffc +/* 803BA918 003B7878 48 00 02 BD */ bl __CARDCheckSum +/* 803BA91C 003B787C 38 7D 00 00 */ addi r3, r29, 0 +/* 803BA920 003B7880 38 80 20 00 */ li r4, 0x2000 +/* 803BA924 003B7884 4B FC 41 BD */ bl DCStoreRange +/* 803BA928 003B7888 93 DF 00 D8 */ stw r30, 0xd8(r31) +/* 803BA92C 003B788C 3C 60 80 3C */ lis r3, EraseCallback@ha +/* 803BA930 003B7890 38 A3 A6 48 */ addi r5, r3, EraseCallback@l +/* 803BA934 003B7894 80 1F 00 80 */ lwz r0, 0x80(r31) +/* 803BA938 003B7898 7F 83 E3 78 */ mr r3, r28 +/* 803BA93C 003B789C 80 9F 00 0C */ lwz r4, 0xc(r31) +/* 803BA940 003B78A0 7C 00 E8 50 */ subf r0, r0, r29 +/* 803BA944 003B78A4 54 00 9B 7E */ srwi r0, r0, 0xd +/* 803BA948 003B78A8 7C 84 01 D6 */ mullw r4, r4, r0 +/* 803BA94C 003B78AC 4B FF E2 89 */ bl __CARDEraseSector +/* 803BA950 003B78B0 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BA954 003B78B4 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803BA958 003B78B8 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803BA95C 003B78BC 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803BA960 003B78C0 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803BA964 003B78C4 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BA968 003B78C8 7C 08 03 A6 */ mtlr r0 +/* 803BA96C 003B78CC 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDCheck.s b/asm/Dolphin/CARD/CARDCheck.s new file mode 100644 index 00000000..b9cb6d9b --- /dev/null +++ b/asm/Dolphin/CARD/CARDCheck.s @@ -0,0 +1,1093 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __CARDCheckSum +__CARDCheckSum: +/* 803BABD4 003B7B34 38 00 00 00 */ li r0, 0 +/* 803BABD8 003B7B38 7C 84 0E 70 */ srawi r4, r4, 1 +/* 803BABDC 003B7B3C B0 06 00 00 */ sth r0, 0(r6) +/* 803BABE0 003B7B40 7C 84 01 95 */ addze. r4, r4 +/* 803BABE4 003B7B44 B0 05 00 00 */ sth r0, 0(r5) +/* 803BABE8 003B7B48 40 81 01 70 */ ble lbl_803BAD58 +/* 803BABEC 003B7B4C 54 80 E8 FF */ rlwinm. r0, r4, 0x1d, 3, 0x1f +/* 803BABF0 003B7B50 7C 09 03 A6 */ mtctr r0 +/* 803BABF4 003B7B54 41 82 01 34 */ beq lbl_803BAD28 +lbl_803BABF8: +/* 803BABF8 003B7B58 A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BABFC 003B7B5C A0 03 00 00 */ lhz r0, 0(r3) +/* 803BAC00 003B7B60 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC04 003B7B64 B0 05 00 00 */ sth r0, 0(r5) +/* 803BAC08 003B7B68 A0 03 00 00 */ lhz r0, 0(r3) +/* 803BAC0C 003B7B6C A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BAC10 003B7B70 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BAC14 003B7B74 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC18 003B7B78 B0 06 00 00 */ sth r0, 0(r6) +/* 803BAC1C 003B7B7C A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BAC20 003B7B80 A0 03 00 02 */ lhz r0, 2(r3) +/* 803BAC24 003B7B84 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC28 003B7B88 B0 05 00 00 */ sth r0, 0(r5) +/* 803BAC2C 003B7B8C A0 03 00 02 */ lhz r0, 2(r3) +/* 803BAC30 003B7B90 A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BAC34 003B7B94 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BAC38 003B7B98 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC3C 003B7B9C B0 06 00 00 */ sth r0, 0(r6) +/* 803BAC40 003B7BA0 A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BAC44 003B7BA4 A0 03 00 04 */ lhz r0, 4(r3) +/* 803BAC48 003B7BA8 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC4C 003B7BAC B0 05 00 00 */ sth r0, 0(r5) +/* 803BAC50 003B7BB0 A0 03 00 04 */ lhz r0, 4(r3) +/* 803BAC54 003B7BB4 A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BAC58 003B7BB8 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BAC5C 003B7BBC 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC60 003B7BC0 B0 06 00 00 */ sth r0, 0(r6) +/* 803BAC64 003B7BC4 A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BAC68 003B7BC8 A0 03 00 06 */ lhz r0, 6(r3) +/* 803BAC6C 003B7BCC 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC70 003B7BD0 B0 05 00 00 */ sth r0, 0(r5) +/* 803BAC74 003B7BD4 A0 03 00 06 */ lhz r0, 6(r3) +/* 803BAC78 003B7BD8 A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BAC7C 003B7BDC 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BAC80 003B7BE0 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC84 003B7BE4 B0 06 00 00 */ sth r0, 0(r6) +/* 803BAC88 003B7BE8 A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BAC8C 003B7BEC A0 03 00 08 */ lhz r0, 8(r3) +/* 803BAC90 003B7BF0 7C 07 02 14 */ add r0, r7, r0 +/* 803BAC94 003B7BF4 B0 05 00 00 */ sth r0, 0(r5) +/* 803BAC98 003B7BF8 A0 03 00 08 */ lhz r0, 8(r3) +/* 803BAC9C 003B7BFC A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BACA0 003B7C00 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BACA4 003B7C04 7C 07 02 14 */ add r0, r7, r0 +/* 803BACA8 003B7C08 B0 06 00 00 */ sth r0, 0(r6) +/* 803BACAC 003B7C0C A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BACB0 003B7C10 A0 03 00 0A */ lhz r0, 0xa(r3) +/* 803BACB4 003B7C14 7C 07 02 14 */ add r0, r7, r0 +/* 803BACB8 003B7C18 B0 05 00 00 */ sth r0, 0(r5) +/* 803BACBC 003B7C1C A0 03 00 0A */ lhz r0, 0xa(r3) +/* 803BACC0 003B7C20 A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BACC4 003B7C24 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BACC8 003B7C28 7C 07 02 14 */ add r0, r7, r0 +/* 803BACCC 003B7C2C B0 06 00 00 */ sth r0, 0(r6) +/* 803BACD0 003B7C30 A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BACD4 003B7C34 A0 03 00 0C */ lhz r0, 0xc(r3) +/* 803BACD8 003B7C38 7C 07 02 14 */ add r0, r7, r0 +/* 803BACDC 003B7C3C B0 05 00 00 */ sth r0, 0(r5) +/* 803BACE0 003B7C40 A0 03 00 0C */ lhz r0, 0xc(r3) +/* 803BACE4 003B7C44 A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BACE8 003B7C48 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BACEC 003B7C4C 7C 07 02 14 */ add r0, r7, r0 +/* 803BACF0 003B7C50 B0 06 00 00 */ sth r0, 0(r6) +/* 803BACF4 003B7C54 A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BACF8 003B7C58 A0 03 00 0E */ lhz r0, 0xe(r3) +/* 803BACFC 003B7C5C 7C 07 02 14 */ add r0, r7, r0 +/* 803BAD00 003B7C60 B0 05 00 00 */ sth r0, 0(r5) +/* 803BAD04 003B7C64 A0 03 00 0E */ lhz r0, 0xe(r3) +/* 803BAD08 003B7C68 38 63 00 10 */ addi r3, r3, 0x10 +/* 803BAD0C 003B7C6C A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BAD10 003B7C70 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BAD14 003B7C74 7C 07 02 14 */ add r0, r7, r0 +/* 803BAD18 003B7C78 B0 06 00 00 */ sth r0, 0(r6) +/* 803BAD1C 003B7C7C 42 00 FE DC */ bdnz lbl_803BABF8 +/* 803BAD20 003B7C80 70 84 00 07 */ andi. r4, r4, 7 +/* 803BAD24 003B7C84 41 82 00 34 */ beq lbl_803BAD58 +lbl_803BAD28: +/* 803BAD28 003B7C88 7C 89 03 A6 */ mtctr r4 +lbl_803BAD2C: +/* 803BAD2C 003B7C8C A0 E5 00 00 */ lhz r7, 0(r5) +/* 803BAD30 003B7C90 A0 03 00 00 */ lhz r0, 0(r3) +/* 803BAD34 003B7C94 7C 07 02 14 */ add r0, r7, r0 +/* 803BAD38 003B7C98 B0 05 00 00 */ sth r0, 0(r5) +/* 803BAD3C 003B7C9C A0 03 00 00 */ lhz r0, 0(r3) +/* 803BAD40 003B7CA0 38 63 00 02 */ addi r3, r3, 2 +/* 803BAD44 003B7CA4 A0 E6 00 00 */ lhz r7, 0(r6) +/* 803BAD48 003B7CA8 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BAD4C 003B7CAC 7C 07 02 14 */ add r0, r7, r0 +/* 803BAD50 003B7CB0 B0 06 00 00 */ sth r0, 0(r6) +/* 803BAD54 003B7CB4 42 00 FF D8 */ bdnz lbl_803BAD2C +lbl_803BAD58: +/* 803BAD58 003B7CB8 A0 05 00 00 */ lhz r0, 0(r5) +/* 803BAD5C 003B7CBC 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BAD60 003B7CC0 40 82 00 0C */ bne lbl_803BAD6C +/* 803BAD64 003B7CC4 38 00 00 00 */ li r0, 0 +/* 803BAD68 003B7CC8 B0 05 00 00 */ sth r0, 0(r5) +lbl_803BAD6C: +/* 803BAD6C 003B7CCC A0 06 00 00 */ lhz r0, 0(r6) +/* 803BAD70 003B7CD0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BAD74 003B7CD4 4C 82 00 20 */ bnelr +/* 803BAD78 003B7CD8 38 00 00 00 */ li r0, 0 +/* 803BAD7C 003B7CDC B0 06 00 00 */ sth r0, 0(r6) +/* 803BAD80 003B7CE0 4E 80 00 20 */ blr + +.global VerifyID +VerifyID: +/* 803BAD84 003B7CE4 7C 08 02 A6 */ mflr r0 +/* 803BAD88 003B7CE8 90 01 00 04 */ stw r0, 4(r1) +/* 803BAD8C 003B7CEC 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BAD90 003B7CF0 BF 21 00 14 */ stmw r25, 0x14(r1) +/* 803BAD94 003B7CF4 7C 7A 1B 78 */ mr r26, r3 +/* 803BAD98 003B7CF8 80 63 00 80 */ lwz r3, 0x80(r3) +/* 803BAD9C 003B7CFC A0 03 00 20 */ lhz r0, 0x20(r3) +/* 803BADA0 003B7D00 3B 63 00 00 */ addi r27, r3, 0 +/* 803BADA4 003B7D04 28 00 00 00 */ cmplwi r0, 0 +/* 803BADA8 003B7D08 40 82 00 14 */ bne lbl_803BADBC +/* 803BADAC 003B7D0C A0 7B 00 22 */ lhz r3, 0x22(r27) +/* 803BADB0 003B7D10 A0 1A 00 08 */ lhz r0, 8(r26) +/* 803BADB4 003B7D14 7C 03 00 40 */ cmplw r3, r0 +/* 803BADB8 003B7D18 41 82 00 0C */ beq lbl_803BADC4 +lbl_803BADBC: +/* 803BADBC 003B7D1C 38 60 FF FA */ li r3, -6 +/* 803BADC0 003B7D20 48 00 02 34 */ b lbl_803BAFF4 +lbl_803BADC4: +/* 803BADC4 003B7D24 38 00 01 FC */ li r0, 0x1fc +/* 803BADC8 003B7D28 7C 00 0E 70 */ srawi r0, r0, 1 +/* 803BADCC 003B7D2C 7C 00 01 95 */ addze. r0, r0 +/* 803BADD0 003B7D30 38 9B 00 00 */ addi r4, r27, 0 +/* 803BADD4 003B7D34 38 E0 00 00 */ li r7, 0 +/* 803BADD8 003B7D38 7C 03 03 78 */ mr r3, r0 +/* 803BADDC 003B7D3C 38 C0 00 00 */ li r6, 0 +/* 803BADE0 003B7D40 40 81 00 BC */ ble lbl_803BAE9C +/* 803BADE4 003B7D44 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803BADE8 003B7D48 7C 09 03 A6 */ mtctr r0 +/* 803BADEC 003B7D4C 41 82 00 94 */ beq lbl_803BAE80 +lbl_803BADF0: +/* 803BADF0 003B7D50 A0 A4 00 00 */ lhz r5, 0(r4) +/* 803BADF4 003B7D54 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BADF8 003B7D58 7C C6 2A 14 */ add r6, r6, r5 +/* 803BADFC 003B7D5C A0 A4 00 02 */ lhz r5, 2(r4) +/* 803BAE00 003B7D60 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE04 003B7D64 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BAE08 003B7D68 7C C6 2A 14 */ add r6, r6, r5 +/* 803BAE0C 003B7D6C A0 A4 00 04 */ lhz r5, 4(r4) +/* 803BAE10 003B7D70 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE14 003B7D74 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BAE18 003B7D78 7C C6 2A 14 */ add r6, r6, r5 +/* 803BAE1C 003B7D7C A0 A4 00 06 */ lhz r5, 6(r4) +/* 803BAE20 003B7D80 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE24 003B7D84 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BAE28 003B7D88 7C C6 2A 14 */ add r6, r6, r5 +/* 803BAE2C 003B7D8C A0 A4 00 08 */ lhz r5, 8(r4) +/* 803BAE30 003B7D90 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE34 003B7D94 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BAE38 003B7D98 7C C6 2A 14 */ add r6, r6, r5 +/* 803BAE3C 003B7D9C A0 A4 00 0A */ lhz r5, 0xa(r4) +/* 803BAE40 003B7DA0 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE44 003B7DA4 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BAE48 003B7DA8 7C C6 2A 14 */ add r6, r6, r5 +/* 803BAE4C 003B7DAC A0 A4 00 0C */ lhz r5, 0xc(r4) +/* 803BAE50 003B7DB0 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE54 003B7DB4 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BAE58 003B7DB8 7C C6 2A 14 */ add r6, r6, r5 +/* 803BAE5C 003B7DBC A0 A4 00 0E */ lhz r5, 0xe(r4) +/* 803BAE60 003B7DC0 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE64 003B7DC4 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BAE68 003B7DC8 7C C6 2A 14 */ add r6, r6, r5 +/* 803BAE6C 003B7DCC 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE70 003B7DD0 38 84 00 10 */ addi r4, r4, 0x10 +/* 803BAE74 003B7DD4 42 00 FF 7C */ bdnz lbl_803BADF0 +/* 803BAE78 003B7DD8 70 63 00 07 */ andi. r3, r3, 7 +/* 803BAE7C 003B7DDC 41 82 00 20 */ beq lbl_803BAE9C +lbl_803BAE80: +/* 803BAE80 003B7DE0 7C 69 03 A6 */ mtctr r3 +lbl_803BAE84: +/* 803BAE84 003B7DE4 A0 A4 00 00 */ lhz r5, 0(r4) +/* 803BAE88 003B7DE8 38 84 00 02 */ addi r4, r4, 2 +/* 803BAE8C 003B7DEC 7C A0 28 F8 */ nor r0, r5, r5 +/* 803BAE90 003B7DF0 7C C6 2A 14 */ add r6, r6, r5 +/* 803BAE94 003B7DF4 7C E7 02 14 */ add r7, r7, r0 +/* 803BAE98 003B7DF8 42 00 FF EC */ bdnz lbl_803BAE84 +lbl_803BAE9C: +/* 803BAE9C 003B7DFC 54 C0 04 3E */ clrlwi r0, r6, 0x10 +/* 803BAEA0 003B7E00 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BAEA4 003B7E04 40 82 00 08 */ bne lbl_803BAEAC +/* 803BAEA8 003B7E08 38 C0 00 00 */ li r6, 0 +lbl_803BAEAC: +/* 803BAEAC 003B7E0C 54 E0 04 3E */ clrlwi r0, r7, 0x10 +/* 803BAEB0 003B7E10 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BAEB4 003B7E14 40 82 00 08 */ bne lbl_803BAEBC +/* 803BAEB8 003B7E18 38 E0 00 00 */ li r7, 0 +lbl_803BAEBC: +/* 803BAEBC 003B7E1C A0 7B 01 FC */ lhz r3, 0x1fc(r27) +/* 803BAEC0 003B7E20 54 C0 04 3E */ clrlwi r0, r6, 0x10 +/* 803BAEC4 003B7E24 7C 03 00 40 */ cmplw r3, r0 +/* 803BAEC8 003B7E28 40 82 00 14 */ bne lbl_803BAEDC +/* 803BAECC 003B7E2C A0 7B 01 FE */ lhz r3, 0x1fe(r27) +/* 803BAED0 003B7E30 54 E0 04 3E */ clrlwi r0, r7, 0x10 +/* 803BAED4 003B7E34 7C 03 00 40 */ cmplw r3, r0 +/* 803BAED8 003B7E38 41 82 00 0C */ beq lbl_803BAEE4 +lbl_803BAEDC: +/* 803BAEDC 003B7E3C 38 60 FF FA */ li r3, -6 +/* 803BAEE0 003B7E40 48 00 01 14 */ b lbl_803BAFF4 +lbl_803BAEE4: +/* 803BAEE4 003B7E44 83 FB 00 0C */ lwz r31, 0xc(r27) +/* 803BAEE8 003B7E48 83 9B 00 10 */ lwz r28, 0x10(r27) +/* 803BAEEC 003B7E4C 4B FC 8C 45 */ bl __OSLockSramEx +/* 803BAEF0 003B7E50 3C 80 80 57 */ lis r4, lbl_80569A58@ha +/* 803BAEF4 003B7E54 38 04 9A 58 */ addi r0, r4, lbl_80569A58@l +/* 803BAEF8 003B7E58 3C 80 78 78 */ lis r4, 0x78787879@ha +/* 803BAEFC 003B7E5C 7C 00 D0 50 */ subf r0, r0, r26 +/* 803BAF00 003B7E60 38 84 78 79 */ addi r4, r4, 0x78787879@l +/* 803BAF04 003B7E64 7C 04 00 96 */ mulhw r0, r4, r0 +/* 803BAF08 003B7E68 7C 00 3E 70 */ srawi r0, r0, 7 +/* 803BAF0C 003B7E6C 54 04 0F FE */ srwi r4, r0, 0x1f +/* 803BAF10 003B7E70 7C 00 22 14 */ add r0, r0, r4 +/* 803BAF14 003B7E74 1C 00 00 0C */ mulli r0, r0, 0xc +/* 803BAF18 003B7E78 3C 80 41 C6 */ lis r4, 0x41C64E6D@ha +/* 803BAF1C 003B7E7C 3B 3B 00 00 */ addi r25, r27, 0 +/* 803BAF20 003B7E80 7F A3 02 14 */ add r29, r3, r0 +/* 803BAF24 003B7E84 3B C4 4E 6D */ addi r30, r4, 0x41C64E6D@l +/* 803BAF28 003B7E88 3B 40 00 00 */ li r26, 0 +lbl_803BAF2C: +/* 803BAF2C 003B7E8C 7C BF F1 D6 */ mullw r5, r31, r30 +/* 803BAF30 003B7E90 7C 7C F0 16 */ mulhwu r3, r28, r30 +/* 803BAF34 003B7E94 3B E0 00 00 */ li r31, 0 +/* 803BAF38 003B7E98 7C A5 1A 14 */ add r5, r5, r3 +/* 803BAF3C 003B7E9C 7C 7C F9 D6 */ mullw r3, r28, r31 +/* 803BAF40 003B7EA0 7C 1C F1 D6 */ mullw r0, r28, r30 +/* 803BAF44 003B7EA4 3B 80 30 39 */ li r28, 0x3039 +/* 803BAF48 003B7EA8 7C 80 E0 14 */ addc r4, r0, r28 +/* 803BAF4C 003B7EAC 7C 05 1A 14 */ add r0, r5, r3 +/* 803BAF50 003B7EB0 7C 60 F9 14 */ adde r3, r0, r31 +/* 803BAF54 003B7EB4 38 A0 00 10 */ li r5, 0x10 +/* 803BAF58 003B7EB8 4B FC EF E5 */ bl __shr2i +/* 803BAF5C 003B7EBC 88 1D 00 00 */ lbz r0, 0(r29) +/* 803BAF60 003B7EC0 88 D9 00 00 */ lbz r6, 0(r25) +/* 803BAF64 003B7EC4 7C 04 00 14 */ addc r0, r4, r0 +/* 803BAF68 003B7EC8 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803BAF6C 003B7ECC 7C 06 00 40 */ cmplw r6, r0 +/* 803BAF70 003B7ED0 41 82 00 14 */ beq lbl_803BAF84 +/* 803BAF74 003B7ED4 38 60 00 00 */ li r3, 0 +/* 803BAF78 003B7ED8 4B FC 8F 41 */ bl __OSUnlockSramEx +/* 803BAF7C 003B7EDC 38 60 FF FA */ li r3, -6 +/* 803BAF80 003B7EE0 48 00 00 74 */ b lbl_803BAFF4 +lbl_803BAF84: +/* 803BAF84 003B7EE4 7C A3 F1 D6 */ mullw r5, r3, r30 +/* 803BAF88 003B7EE8 7C 64 F0 16 */ mulhwu r3, r4, r30 +/* 803BAF8C 003B7EEC 7C A5 1A 14 */ add r5, r5, r3 +/* 803BAF90 003B7EF0 7C 64 F9 D6 */ mullw r3, r4, r31 +/* 803BAF94 003B7EF4 7C 04 F1 D6 */ mullw r0, r4, r30 +/* 803BAF98 003B7EF8 7C 80 E0 14 */ addc r4, r0, r28 +/* 803BAF9C 003B7EFC 7C 05 1A 14 */ add r0, r5, r3 +/* 803BAFA0 003B7F00 7C 60 F9 14 */ adde r3, r0, r31 +/* 803BAFA4 003B7F04 38 A0 00 10 */ li r5, 0x10 +/* 803BAFA8 003B7F08 4B FC EF 95 */ bl __shr2i +/* 803BAFAC 003B7F0C 3B 5A 00 01 */ addi r26, r26, 1 +/* 803BAFB0 003B7F10 2C 1A 00 0C */ cmpwi r26, 0xc +/* 803BAFB4 003B7F14 38 00 7F FF */ li r0, 0x7fff +/* 803BAFB8 003B7F18 7C 9C 00 38 */ and r28, r4, r0 +/* 803BAFBC 003B7F1C 7C 7F F8 38 */ and r31, r3, r31 +/* 803BAFC0 003B7F20 3B BD 00 01 */ addi r29, r29, 1 +/* 803BAFC4 003B7F24 3B 39 00 01 */ addi r25, r25, 1 +/* 803BAFC8 003B7F28 41 80 FF 64 */ blt lbl_803BAF2C +/* 803BAFCC 003B7F2C 38 60 00 00 */ li r3, 0 +/* 803BAFD0 003B7F30 4B FC 8E E9 */ bl __OSUnlockSramEx +/* 803BAFD4 003B7F34 4B FF DD 8D */ bl __CARDGetFontEncode +/* 803BAFD8 003B7F38 A0 1B 00 24 */ lhz r0, 0x24(r27) +/* 803BAFDC 003B7F3C 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803BAFE0 003B7F40 7C 00 18 40 */ cmplw r0, r3 +/* 803BAFE4 003B7F44 41 82 00 0C */ beq lbl_803BAFF0 +/* 803BAFE8 003B7F48 38 60 FF F3 */ li r3, -13 +/* 803BAFEC 003B7F4C 48 00 00 08 */ b lbl_803BAFF4 +lbl_803BAFF0: +/* 803BAFF0 003B7F50 38 60 00 00 */ li r3, 0 +lbl_803BAFF4: +/* 803BAFF4 003B7F54 BB 21 00 14 */ lmw r25, 0x14(r1) +/* 803BAFF8 003B7F58 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BAFFC 003B7F5C 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BB000 003B7F60 7C 08 03 A6 */ mtlr r0 +/* 803BB004 003B7F64 4E 80 00 20 */ blr + +.global VerifyDir +VerifyDir: +/* 803BB008 003B7F68 7C 08 02 A6 */ mflr r0 +/* 803BB00C 003B7F6C 90 01 00 04 */ stw r0, 4(r1) +/* 803BB010 003B7F70 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 803BB014 003B7F74 93 E1 00 34 */ stw r31, 0x34(r1) +/* 803BB018 003B7F78 38 E1 00 1C */ addi r7, r1, 0x1c +/* 803BB01C 003B7F7C 39 01 00 14 */ addi r8, r1, 0x14 +/* 803BB020 003B7F80 93 C1 00 30 */ stw r30, 0x30(r1) +/* 803BB024 003B7F84 3B E0 00 00 */ li r31, 0 +/* 803BB028 003B7F88 3B C0 00 00 */ li r30, 0 +/* 803BB02C 003B7F8C 93 A1 00 2C */ stw r29, 0x2c(r1) +/* 803BB030 003B7F90 3B A4 00 00 */ addi r29, r4, 0 +/* 803BB034 003B7F94 38 80 00 00 */ li r4, 0 +lbl_803BB038: +/* 803BB038 003B7F98 38 04 00 01 */ addi r0, r4, 1 +/* 803BB03C 003B7F9C 80 A3 00 80 */ lwz r5, 0x80(r3) +/* 803BB040 003B7FA0 54 00 68 24 */ slwi r0, r0, 0xd +/* 803BB044 003B7FA4 7C 05 02 14 */ add r0, r5, r0 +/* 803BB048 003B7FA8 90 07 00 00 */ stw r0, 0(r7) +/* 803BB04C 003B7FAC 38 C0 1F FC */ li r6, 0x1ffc +/* 803BB050 003B7FB0 7C C6 0E 70 */ srawi r6, r6, 1 +/* 803BB054 003B7FB4 80 A7 00 00 */ lwz r5, 0(r7) +/* 803BB058 003B7FB8 7C C6 01 95 */ addze. r6, r6 +/* 803BB05C 003B7FBC 39 60 00 00 */ li r11, 0 +/* 803BB060 003B7FC0 38 05 1F C0 */ addi r0, r5, 0x1fc0 +/* 803BB064 003B7FC4 90 08 00 00 */ stw r0, 0(r8) +/* 803BB068 003B7FC8 39 40 00 00 */ li r10, 0 +/* 803BB06C 003B7FCC 80 A7 00 00 */ lwz r5, 0(r7) +/* 803BB070 003B7FD0 40 81 00 BC */ ble lbl_803BB12C +/* 803BB074 003B7FD4 54 C0 E8 FF */ rlwinm. r0, r6, 0x1d, 3, 0x1f +/* 803BB078 003B7FD8 7C 09 03 A6 */ mtctr r0 +/* 803BB07C 003B7FDC 41 82 00 94 */ beq lbl_803BB110 +lbl_803BB080: +/* 803BB080 003B7FE0 A1 25 00 00 */ lhz r9, 0(r5) +/* 803BB084 003B7FE4 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB088 003B7FE8 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB08C 003B7FEC A1 25 00 02 */ lhz r9, 2(r5) +/* 803BB090 003B7FF0 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB094 003B7FF4 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB098 003B7FF8 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB09C 003B7FFC A1 25 00 04 */ lhz r9, 4(r5) +/* 803BB0A0 003B8000 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB0A4 003B8004 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB0A8 003B8008 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB0AC 003B800C A1 25 00 06 */ lhz r9, 6(r5) +/* 803BB0B0 003B8010 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB0B4 003B8014 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB0B8 003B8018 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB0BC 003B801C A1 25 00 08 */ lhz r9, 8(r5) +/* 803BB0C0 003B8020 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB0C4 003B8024 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB0C8 003B8028 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB0CC 003B802C A1 25 00 0A */ lhz r9, 0xa(r5) +/* 803BB0D0 003B8030 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB0D4 003B8034 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB0D8 003B8038 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB0DC 003B803C A1 25 00 0C */ lhz r9, 0xc(r5) +/* 803BB0E0 003B8040 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB0E4 003B8044 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB0E8 003B8048 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB0EC 003B804C A1 25 00 0E */ lhz r9, 0xe(r5) +/* 803BB0F0 003B8050 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB0F4 003B8054 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB0F8 003B8058 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB0FC 003B805C 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB100 003B8060 38 A5 00 10 */ addi r5, r5, 0x10 +/* 803BB104 003B8064 42 00 FF 7C */ bdnz lbl_803BB080 +/* 803BB108 003B8068 70 C6 00 07 */ andi. r6, r6, 7 +/* 803BB10C 003B806C 41 82 00 20 */ beq lbl_803BB12C +lbl_803BB110: +/* 803BB110 003B8070 7C C9 03 A6 */ mtctr r6 +lbl_803BB114: +/* 803BB114 003B8074 A1 25 00 00 */ lhz r9, 0(r5) +/* 803BB118 003B8078 38 A5 00 02 */ addi r5, r5, 2 +/* 803BB11C 003B807C 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB120 003B8080 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB124 003B8084 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB128 003B8088 42 00 FF EC */ bdnz lbl_803BB114 +lbl_803BB12C: +/* 803BB12C 003B808C 55 40 04 3E */ clrlwi r0, r10, 0x10 +/* 803BB130 003B8090 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BB134 003B8094 40 82 00 08 */ bne lbl_803BB13C +/* 803BB138 003B8098 39 40 00 00 */ li r10, 0 +lbl_803BB13C: +/* 803BB13C 003B809C 55 60 04 3E */ clrlwi r0, r11, 0x10 +/* 803BB140 003B80A0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BB144 003B80A4 40 82 00 08 */ bne lbl_803BB14C +/* 803BB148 003B80A8 39 60 00 00 */ li r11, 0 +lbl_803BB14C: +/* 803BB14C 003B80AC 80 C8 00 00 */ lwz r6, 0(r8) +/* 803BB150 003B80B0 55 45 04 3E */ clrlwi r5, r10, 0x10 +/* 803BB154 003B80B4 A0 06 00 3C */ lhz r0, 0x3c(r6) +/* 803BB158 003B80B8 7C 05 00 40 */ cmplw r5, r0 +/* 803BB15C 003B80BC 40 82 00 14 */ bne lbl_803BB170 +/* 803BB160 003B80C0 A0 06 00 3E */ lhz r0, 0x3e(r6) +/* 803BB164 003B80C4 55 65 04 3E */ clrlwi r5, r11, 0x10 +/* 803BB168 003B80C8 7C 05 00 40 */ cmplw r5, r0 +/* 803BB16C 003B80CC 41 82 00 14 */ beq lbl_803BB180 +lbl_803BB170: +/* 803BB170 003B80D0 38 00 00 00 */ li r0, 0 +/* 803BB174 003B80D4 90 03 00 84 */ stw r0, 0x84(r3) +/* 803BB178 003B80D8 3B C4 00 00 */ addi r30, r4, 0 +/* 803BB17C 003B80DC 3B FF 00 01 */ addi r31, r31, 1 +lbl_803BB180: +/* 803BB180 003B80E0 38 84 00 01 */ addi r4, r4, 1 +/* 803BB184 003B80E4 2C 04 00 02 */ cmpwi r4, 2 +/* 803BB188 003B80E8 38 E7 00 04 */ addi r7, r7, 4 +/* 803BB18C 003B80EC 39 08 00 04 */ addi r8, r8, 4 +/* 803BB190 003B80F0 41 80 FE A8 */ blt lbl_803BB038 +/* 803BB194 003B80F4 2C 1F 00 00 */ cmpwi r31, 0 +/* 803BB198 003B80F8 40 82 00 84 */ bne lbl_803BB21C +/* 803BB19C 003B80FC 80 83 00 84 */ lwz r4, 0x84(r3) +/* 803BB1A0 003B8100 28 04 00 00 */ cmplwi r4, 0 +/* 803BB1A4 003B8104 40 82 00 5C */ bne lbl_803BB200 +/* 803BB1A8 003B8108 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 803BB1AC 003B810C 80 81 00 14 */ lwz r4, 0x14(r1) +/* 803BB1B0 003B8110 A8 A5 00 3A */ lha r5, 0x3a(r5) +/* 803BB1B4 003B8114 A8 04 00 3A */ lha r0, 0x3a(r4) +/* 803BB1B8 003B8118 7C 05 00 51 */ subf. r0, r5, r0 +/* 803BB1BC 003B811C 40 80 00 0C */ bge lbl_803BB1C8 +/* 803BB1C0 003B8120 3B C0 00 00 */ li r30, 0 +/* 803BB1C4 003B8124 48 00 00 08 */ b lbl_803BB1CC +lbl_803BB1C8: +/* 803BB1C8 003B8128 3B C0 00 01 */ li r30, 1 +lbl_803BB1CC: +/* 803BB1CC 003B812C 57 C0 10 3A */ slwi r0, r30, 2 +/* 803BB1D0 003B8130 38 C1 00 1C */ addi r6, r1, 0x1c +/* 803BB1D4 003B8134 7C C6 02 14 */ add r6, r6, r0 +/* 803BB1D8 003B8138 80 86 00 00 */ lwz r4, 0(r6) +/* 803BB1DC 003B813C 6B C0 00 01 */ xori r0, r30, 1 +/* 803BB1E0 003B8140 54 00 10 3A */ slwi r0, r0, 2 +/* 803BB1E4 003B8144 90 83 00 84 */ stw r4, 0x84(r3) +/* 803BB1E8 003B8148 38 81 00 1C */ addi r4, r1, 0x1c +/* 803BB1EC 003B814C 38 A0 20 00 */ li r5, 0x2000 +/* 803BB1F0 003B8150 80 66 00 00 */ lwz r3, 0(r6) +/* 803BB1F4 003B8154 7C 84 00 2E */ lwzx r4, r4, r0 +/* 803BB1F8 003B8158 4B C4 82 99 */ bl memcpy +/* 803BB1FC 003B815C 48 00 00 20 */ b lbl_803BB21C +lbl_803BB200: +/* 803BB200 003B8160 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BB204 003B8164 7C 04 00 40 */ cmplw r4, r0 +/* 803BB208 003B8168 40 82 00 0C */ bne lbl_803BB214 +/* 803BB20C 003B816C 38 00 00 00 */ li r0, 0 +/* 803BB210 003B8170 48 00 00 08 */ b lbl_803BB218 +lbl_803BB214: +/* 803BB214 003B8174 38 00 00 01 */ li r0, 1 +lbl_803BB218: +/* 803BB218 003B8178 7C 1E 03 78 */ mr r30, r0 +lbl_803BB21C: +/* 803BB21C 003B817C 28 1D 00 00 */ cmplwi r29, 0 +/* 803BB220 003B8180 41 82 00 08 */ beq lbl_803BB228 +/* 803BB224 003B8184 93 DD 00 00 */ stw r30, 0(r29) +lbl_803BB228: +/* 803BB228 003B8188 7F E3 FB 78 */ mr r3, r31 +/* 803BB22C 003B818C 80 01 00 3C */ lwz r0, 0x3c(r1) +/* 803BB230 003B8190 83 E1 00 34 */ lwz r31, 0x34(r1) +/* 803BB234 003B8194 83 C1 00 30 */ lwz r30, 0x30(r1) +/* 803BB238 003B8198 83 A1 00 2C */ lwz r29, 0x2c(r1) +/* 803BB23C 003B819C 38 21 00 38 */ addi r1, r1, 0x38 +/* 803BB240 003B81A0 7C 08 03 A6 */ mtlr r0 +/* 803BB244 003B81A4 4E 80 00 20 */ blr + +.global VerifyFAT +VerifyFAT: +/* 803BB248 003B81A8 7C 08 02 A6 */ mflr r0 +/* 803BB24C 003B81AC 38 A0 00 00 */ li r5, 0 +/* 803BB250 003B81B0 90 01 00 04 */ stw r0, 4(r1) +/* 803BB254 003B81B4 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BB258 003B81B8 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803BB25C 003B81BC 3B E0 00 00 */ li r31, 0 +/* 803BB260 003B81C0 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803BB264 003B81C4 3B C0 00 00 */ li r30, 0 +/* 803BB268 003B81C8 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803BB26C 003B81CC 3B A4 00 00 */ addi r29, r4, 0 +/* 803BB270 003B81D0 38 81 00 10 */ addi r4, r1, 0x10 +lbl_803BB274: +/* 803BB274 003B81D4 39 00 1F FC */ li r8, 0x1ffc +/* 803BB278 003B81D8 80 C3 00 80 */ lwz r6, 0x80(r3) +/* 803BB27C 003B81DC 38 05 00 03 */ addi r0, r5, 3 +/* 803BB280 003B81E0 7D 08 0E 70 */ srawi r8, r8, 1 +/* 803BB284 003B81E4 54 00 68 24 */ slwi r0, r0, 0xd +/* 803BB288 003B81E8 7C E6 02 14 */ add r7, r6, r0 +/* 803BB28C 003B81EC 7D 08 01 95 */ addze. r8, r8 +/* 803BB290 003B81F0 90 E4 00 00 */ stw r7, 0(r4) +/* 803BB294 003B81F4 38 C7 00 04 */ addi r6, r7, 4 +/* 803BB298 003B81F8 39 60 00 00 */ li r11, 0 +/* 803BB29C 003B81FC 39 40 00 00 */ li r10, 0 +/* 803BB2A0 003B8200 40 81 00 BC */ ble lbl_803BB35C +/* 803BB2A4 003B8204 55 00 E8 FF */ rlwinm. r0, r8, 0x1d, 3, 0x1f +/* 803BB2A8 003B8208 7C 09 03 A6 */ mtctr r0 +/* 803BB2AC 003B820C 41 82 00 94 */ beq lbl_803BB340 +lbl_803BB2B0: +/* 803BB2B0 003B8210 A1 26 00 00 */ lhz r9, 0(r6) +/* 803BB2B4 003B8214 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB2B8 003B8218 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB2BC 003B821C A1 26 00 02 */ lhz r9, 2(r6) +/* 803BB2C0 003B8220 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB2C4 003B8224 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB2C8 003B8228 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB2CC 003B822C A1 26 00 04 */ lhz r9, 4(r6) +/* 803BB2D0 003B8230 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB2D4 003B8234 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB2D8 003B8238 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB2DC 003B823C A1 26 00 06 */ lhz r9, 6(r6) +/* 803BB2E0 003B8240 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB2E4 003B8244 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB2E8 003B8248 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB2EC 003B824C A1 26 00 08 */ lhz r9, 8(r6) +/* 803BB2F0 003B8250 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB2F4 003B8254 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB2F8 003B8258 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB2FC 003B825C A1 26 00 0A */ lhz r9, 0xa(r6) +/* 803BB300 003B8260 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB304 003B8264 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB308 003B8268 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB30C 003B826C A1 26 00 0C */ lhz r9, 0xc(r6) +/* 803BB310 003B8270 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB314 003B8274 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB318 003B8278 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB31C 003B827C A1 26 00 0E */ lhz r9, 0xe(r6) +/* 803BB320 003B8280 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB324 003B8284 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB328 003B8288 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB32C 003B828C 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB330 003B8290 38 C6 00 10 */ addi r6, r6, 0x10 +/* 803BB334 003B8294 42 00 FF 7C */ bdnz lbl_803BB2B0 +/* 803BB338 003B8298 71 08 00 07 */ andi. r8, r8, 7 +/* 803BB33C 003B829C 41 82 00 20 */ beq lbl_803BB35C +lbl_803BB340: +/* 803BB340 003B82A0 7D 09 03 A6 */ mtctr r8 +lbl_803BB344: +/* 803BB344 003B82A4 A1 26 00 00 */ lhz r9, 0(r6) +/* 803BB348 003B82A8 38 C6 00 02 */ addi r6, r6, 2 +/* 803BB34C 003B82AC 7D 20 48 F8 */ nor r0, r9, r9 +/* 803BB350 003B82B0 7D 4A 4A 14 */ add r10, r10, r9 +/* 803BB354 003B82B4 7D 6B 02 14 */ add r11, r11, r0 +/* 803BB358 003B82B8 42 00 FF EC */ bdnz lbl_803BB344 +lbl_803BB35C: +/* 803BB35C 003B82BC 55 40 04 3E */ clrlwi r0, r10, 0x10 +/* 803BB360 003B82C0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BB364 003B82C4 40 82 00 08 */ bne lbl_803BB36C +/* 803BB368 003B82C8 39 40 00 00 */ li r10, 0 +lbl_803BB36C: +/* 803BB36C 003B82CC 55 60 04 3E */ clrlwi r0, r11, 0x10 +/* 803BB370 003B82D0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BB374 003B82D4 40 82 00 08 */ bne lbl_803BB37C +/* 803BB378 003B82D8 39 60 00 00 */ li r11, 0 +lbl_803BB37C: +/* 803BB37C 003B82DC A0 C7 00 00 */ lhz r6, 0(r7) +/* 803BB380 003B82E0 55 40 04 3E */ clrlwi r0, r10, 0x10 +/* 803BB384 003B82E4 7C 06 00 40 */ cmplw r6, r0 +/* 803BB388 003B82E8 40 82 00 14 */ bne lbl_803BB39C +/* 803BB38C 003B82EC A0 C7 00 02 */ lhz r6, 2(r7) +/* 803BB390 003B82F0 55 60 04 3E */ clrlwi r0, r11, 0x10 +/* 803BB394 003B82F4 7C 06 00 40 */ cmplw r6, r0 +/* 803BB398 003B82F8 41 82 00 18 */ beq lbl_803BB3B0 +lbl_803BB39C: +/* 803BB39C 003B82FC 38 00 00 00 */ li r0, 0 +/* 803BB3A0 003B8300 90 03 00 88 */ stw r0, 0x88(r3) +/* 803BB3A4 003B8304 3B C5 00 00 */ addi r30, r5, 0 +/* 803BB3A8 003B8308 3B FF 00 01 */ addi r31, r31, 1 +/* 803BB3AC 003B830C 48 00 00 5C */ b lbl_803BB408 +lbl_803BB3B0: +/* 803BB3B0 003B8310 A1 03 00 10 */ lhz r8, 0x10(r3) +/* 803BB3B4 003B8314 38 C7 00 0A */ addi r6, r7, 0xa +/* 803BB3B8 003B8318 39 40 00 00 */ li r10, 0 +/* 803BB3BC 003B831C 39 20 00 05 */ li r9, 5 +/* 803BB3C0 003B8320 48 00 00 1C */ b lbl_803BB3DC +lbl_803BB3C4: +/* 803BB3C4 003B8324 A0 06 00 00 */ lhz r0, 0(r6) +/* 803BB3C8 003B8328 28 00 00 00 */ cmplwi r0, 0 +/* 803BB3CC 003B832C 40 82 00 08 */ bne lbl_803BB3D4 +/* 803BB3D0 003B8330 39 4A 00 01 */ addi r10, r10, 1 +lbl_803BB3D4: +/* 803BB3D4 003B8334 38 C6 00 02 */ addi r6, r6, 2 +/* 803BB3D8 003B8338 39 29 00 01 */ addi r9, r9, 1 +lbl_803BB3DC: +/* 803BB3DC 003B833C 55 20 04 3E */ clrlwi r0, r9, 0x10 +/* 803BB3E0 003B8340 7C 00 40 40 */ cmplw r0, r8 +/* 803BB3E4 003B8344 41 80 FF E0 */ blt lbl_803BB3C4 +/* 803BB3E8 003B8348 A0 07 00 06 */ lhz r0, 6(r7) +/* 803BB3EC 003B834C 55 46 04 3E */ clrlwi r6, r10, 0x10 +/* 803BB3F0 003B8350 7C 06 00 40 */ cmplw r6, r0 +/* 803BB3F4 003B8354 41 82 00 14 */ beq lbl_803BB408 +/* 803BB3F8 003B8358 38 00 00 00 */ li r0, 0 +/* 803BB3FC 003B835C 90 03 00 88 */ stw r0, 0x88(r3) +/* 803BB400 003B8360 3B C5 00 00 */ addi r30, r5, 0 +/* 803BB404 003B8364 3B FF 00 01 */ addi r31, r31, 1 +lbl_803BB408: +/* 803BB408 003B8368 38 A5 00 01 */ addi r5, r5, 1 +/* 803BB40C 003B836C 2C 05 00 02 */ cmpwi r5, 2 +/* 803BB410 003B8370 38 84 00 04 */ addi r4, r4, 4 +/* 803BB414 003B8374 41 80 FE 60 */ blt lbl_803BB274 +/* 803BB418 003B8378 2C 1F 00 00 */ cmpwi r31, 0 +/* 803BB41C 003B837C 40 82 00 84 */ bne lbl_803BB4A0 +/* 803BB420 003B8380 80 83 00 88 */ lwz r4, 0x88(r3) +/* 803BB424 003B8384 28 04 00 00 */ cmplwi r4, 0 +/* 803BB428 003B8388 40 82 00 5C */ bne lbl_803BB484 +/* 803BB42C 003B838C 80 A1 00 14 */ lwz r5, 0x14(r1) +/* 803BB430 003B8390 80 81 00 10 */ lwz r4, 0x10(r1) +/* 803BB434 003B8394 A8 A5 00 04 */ lha r5, 4(r5) +/* 803BB438 003B8398 A8 04 00 04 */ lha r0, 4(r4) +/* 803BB43C 003B839C 7C 05 00 51 */ subf. r0, r5, r0 +/* 803BB440 003B83A0 40 80 00 0C */ bge lbl_803BB44C +/* 803BB444 003B83A4 3B C0 00 00 */ li r30, 0 +/* 803BB448 003B83A8 48 00 00 08 */ b lbl_803BB450 +lbl_803BB44C: +/* 803BB44C 003B83AC 3B C0 00 01 */ li r30, 1 +lbl_803BB450: +/* 803BB450 003B83B0 57 C0 10 3A */ slwi r0, r30, 2 +/* 803BB454 003B83B4 38 C1 00 10 */ addi r6, r1, 0x10 +/* 803BB458 003B83B8 7C C6 02 14 */ add r6, r6, r0 +/* 803BB45C 003B83BC 80 86 00 00 */ lwz r4, 0(r6) +/* 803BB460 003B83C0 6B C0 00 01 */ xori r0, r30, 1 +/* 803BB464 003B83C4 54 00 10 3A */ slwi r0, r0, 2 +/* 803BB468 003B83C8 90 83 00 88 */ stw r4, 0x88(r3) +/* 803BB46C 003B83CC 38 81 00 10 */ addi r4, r1, 0x10 +/* 803BB470 003B83D0 38 A0 20 00 */ li r5, 0x2000 +/* 803BB474 003B83D4 80 66 00 00 */ lwz r3, 0(r6) +/* 803BB478 003B83D8 7C 84 00 2E */ lwzx r4, r4, r0 +/* 803BB47C 003B83DC 4B C4 80 15 */ bl memcpy +/* 803BB480 003B83E0 48 00 00 20 */ b lbl_803BB4A0 +lbl_803BB484: +/* 803BB484 003B83E4 80 01 00 10 */ lwz r0, 0x10(r1) +/* 803BB488 003B83E8 7C 04 00 40 */ cmplw r4, r0 +/* 803BB48C 003B83EC 40 82 00 0C */ bne lbl_803BB498 +/* 803BB490 003B83F0 38 00 00 00 */ li r0, 0 +/* 803BB494 003B83F4 48 00 00 08 */ b lbl_803BB49C +lbl_803BB498: +/* 803BB498 003B83F8 38 00 00 01 */ li r0, 1 +lbl_803BB49C: +/* 803BB49C 003B83FC 7C 1E 03 78 */ mr r30, r0 +lbl_803BB4A0: +/* 803BB4A0 003B8400 28 1D 00 00 */ cmplwi r29, 0 +/* 803BB4A4 003B8404 41 82 00 08 */ beq lbl_803BB4AC +/* 803BB4A8 003B8408 93 DD 00 00 */ stw r30, 0(r29) +lbl_803BB4AC: +/* 803BB4AC 003B840C 7F E3 FB 78 */ mr r3, r31 +/* 803BB4B0 003B8410 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BB4B4 003B8414 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803BB4B8 003B8418 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803BB4BC 003B841C 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803BB4C0 003B8420 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BB4C4 003B8424 7C 08 03 A6 */ mtlr r0 +/* 803BB4C8 003B8428 4E 80 00 20 */ blr + +.global __CARDVerify +__CARDVerify: +/* 803BB4CC 003B842C 7C 08 02 A6 */ mflr r0 +/* 803BB4D0 003B8430 90 01 00 04 */ stw r0, 4(r1) +/* 803BB4D4 003B8434 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BB4D8 003B8438 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BB4DC 003B843C 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803BB4E0 003B8440 7C 7E 1B 78 */ mr r30, r3 +/* 803BB4E4 003B8444 4B FF F8 A1 */ bl VerifyID +/* 803BB4E8 003B8448 2C 03 00 00 */ cmpwi r3, 0 +/* 803BB4EC 003B844C 40 80 00 08 */ bge lbl_803BB4F4 +/* 803BB4F0 003B8450 48 00 00 50 */ b lbl_803BB540 +lbl_803BB4F4: +/* 803BB4F4 003B8454 38 7E 00 00 */ addi r3, r30, 0 +/* 803BB4F8 003B8458 38 80 00 00 */ li r4, 0 +/* 803BB4FC 003B845C 4B FF FB 0D */ bl VerifyDir +/* 803BB500 003B8460 3B E3 00 00 */ addi r31, r3, 0 +/* 803BB504 003B8464 38 7E 00 00 */ addi r3, r30, 0 +/* 803BB508 003B8468 38 80 00 00 */ li r4, 0 +/* 803BB50C 003B846C 4B FF FD 3D */ bl VerifyFAT +/* 803BB510 003B8470 7C 1F 1A 14 */ add r0, r31, r3 +/* 803BB514 003B8474 2C 00 00 01 */ cmpwi r0, 1 +/* 803BB518 003B8478 41 82 00 1C */ beq lbl_803BB534 +/* 803BB51C 003B847C 40 80 00 20 */ bge lbl_803BB53C +/* 803BB520 003B8480 2C 00 00 00 */ cmpwi r0, 0 +/* 803BB524 003B8484 40 80 00 08 */ bge lbl_803BB52C +/* 803BB528 003B8488 48 00 00 14 */ b lbl_803BB53C +lbl_803BB52C: +/* 803BB52C 003B848C 38 60 00 00 */ li r3, 0 +/* 803BB530 003B8490 48 00 00 10 */ b lbl_803BB540 +lbl_803BB534: +/* 803BB534 003B8494 38 60 FF FA */ li r3, -6 +/* 803BB538 003B8498 48 00 00 08 */ b lbl_803BB540 +lbl_803BB53C: +/* 803BB53C 003B849C 38 60 FF FA */ li r3, -6 +lbl_803BB540: +/* 803BB540 003B84A0 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BB544 003B84A4 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BB548 003B84A8 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803BB54C 003B84AC 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BB550 003B84B0 7C 08 03 A6 */ mtlr r0 +/* 803BB554 003B84B4 4E 80 00 20 */ blr + +.global CARDCheckExAsync +CARDCheckExAsync: +/* 803BB558 003B84B8 7C 08 02 A6 */ mflr r0 +/* 803BB55C 003B84BC 90 01 00 04 */ stw r0, 4(r1) +/* 803BB560 003B84C0 94 21 FF A8 */ stwu r1, -0x58(r1) +/* 803BB564 003B84C4 BF 21 00 3C */ stmw r25, 0x3c(r1) +/* 803BB568 003B84C8 7C 9A 23 79 */ or. r26, r4, r4 +/* 803BB56C 003B84CC 3B 23 00 00 */ addi r25, r3, 0 +/* 803BB570 003B84D0 3B 65 00 00 */ addi r27, r5, 0 +/* 803BB574 003B84D4 3B C0 00 00 */ li r30, 0 +/* 803BB578 003B84D8 3B A0 00 00 */ li r29, 0 +/* 803BB57C 003B84DC 3B 80 00 00 */ li r28, 0 +/* 803BB580 003B84E0 41 82 00 0C */ beq lbl_803BB58C +/* 803BB584 003B84E4 38 00 00 00 */ li r0, 0 +/* 803BB588 003B84E8 90 1A 00 00 */ stw r0, 0(r26) +lbl_803BB58C: +/* 803BB58C 003B84EC 38 79 00 00 */ addi r3, r25, 0 +/* 803BB590 003B84F0 38 81 00 30 */ addi r4, r1, 0x30 +/* 803BB594 003B84F4 4B FF D8 0D */ bl __CARDGetControlBlock +/* 803BB598 003B84F8 2C 03 00 00 */ cmpwi r3, 0 +/* 803BB59C 003B84FC 40 80 00 08 */ bge lbl_803BB5A4 +/* 803BB5A0 003B8500 48 00 05 34 */ b lbl_803BBAD4 +lbl_803BB5A4: +/* 803BB5A4 003B8504 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB5A8 003B8508 4B FF F7 DD */ bl VerifyID +/* 803BB5AC 003B850C 7C 64 1B 79 */ or. r4, r3, r3 +/* 803BB5B0 003B8510 40 80 00 10 */ bge lbl_803BB5C0 +/* 803BB5B4 003B8514 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB5B8 003B8518 4B FF D8 A1 */ bl __CARDPutControlBlock +/* 803BB5BC 003B851C 48 00 05 18 */ b lbl_803BBAD4 +lbl_803BB5C0: +/* 803BB5C0 003B8520 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB5C4 003B8524 38 81 00 18 */ addi r4, r1, 0x18 +/* 803BB5C8 003B8528 4B FF FA 41 */ bl VerifyDir +/* 803BB5CC 003B852C 7C 7F 1B 78 */ mr r31, r3 +/* 803BB5D0 003B8530 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB5D4 003B8534 38 81 00 1C */ addi r4, r1, 0x1c +/* 803BB5D8 003B8538 4B FF FC 71 */ bl VerifyFAT +/* 803BB5DC 003B853C 7C BF 1A 14 */ add r5, r31, r3 +/* 803BB5E0 003B8540 2C 05 00 01 */ cmpwi r5, 1 +/* 803BB5E4 003B8544 40 81 00 14 */ ble lbl_803BB5F8 +/* 803BB5E8 003B8548 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB5EC 003B854C 38 80 FF FA */ li r4, -6 +/* 803BB5F0 003B8550 4B FF D8 69 */ bl __CARDPutControlBlock +/* 803BB5F4 003B8554 48 00 04 E0 */ b lbl_803BBAD4 +lbl_803BB5F8: +/* 803BB5F8 003B8558 80 C1 00 30 */ lwz r6, 0x30(r1) +/* 803BB5FC 003B855C 80 86 00 80 */ lwz r4, 0x80(r6) +/* 803BB600 003B8560 38 64 20 00 */ addi r3, r4, 0x2000 +/* 803BB604 003B8564 38 04 60 00 */ addi r0, r4, 0x6000 +/* 803BB608 003B8568 90 61 00 28 */ stw r3, 0x28(r1) +/* 803BB60C 003B856C 3C 64 00 01 */ addis r3, r4, 1 +/* 803BB610 003B8570 38 84 40 00 */ addi r4, r4, 0x4000 +/* 803BB614 003B8574 90 01 00 20 */ stw r0, 0x20(r1) +/* 803BB618 003B8578 38 03 80 00 */ addi r0, r3, -32768 +/* 803BB61C 003B857C 90 81 00 2C */ stw r4, 0x2c(r1) +/* 803BB620 003B8580 90 01 00 24 */ stw r0, 0x24(r1) +/* 803BB624 003B8584 41 82 00 0C */ beq lbl_803BB630 +/* 803BB628 003B8588 40 80 00 8C */ bge lbl_803BB6B4 +/* 803BB62C 003B858C 48 00 00 88 */ b lbl_803BB6B4 +lbl_803BB630: +/* 803BB630 003B8590 38 66 00 84 */ addi r3, r6, 0x84 +/* 803BB634 003B8594 80 06 00 84 */ lwz r0, 0x84(r6) +/* 803BB638 003B8598 28 00 00 00 */ cmplwi r0, 0 +/* 803BB63C 003B859C 40 82 00 40 */ bne lbl_803BB67C +/* 803BB640 003B85A0 80 01 00 18 */ lwz r0, 0x18(r1) +/* 803BB644 003B85A4 38 81 00 28 */ addi r4, r1, 0x28 +/* 803BB648 003B85A8 38 A0 20 00 */ li r5, 0x2000 +/* 803BB64C 003B85AC 54 00 10 3A */ slwi r0, r0, 2 +/* 803BB650 003B85B0 7C 04 00 2E */ lwzx r0, r4, r0 +/* 803BB654 003B85B4 90 03 00 00 */ stw r0, 0(r3) +/* 803BB658 003B85B8 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BB65C 003B85BC 68 60 00 01 */ xori r0, r3, 1 +/* 803BB660 003B85C0 54 63 10 3A */ slwi r3, r3, 2 +/* 803BB664 003B85C4 54 00 10 3A */ slwi r0, r0, 2 +/* 803BB668 003B85C8 7C 64 18 2E */ lwzx r3, r4, r3 +/* 803BB66C 003B85CC 7C 84 00 2E */ lwzx r4, r4, r0 +/* 803BB670 003B85D0 4B C4 7E 21 */ bl memcpy +/* 803BB674 003B85D4 3B A0 00 01 */ li r29, 1 +/* 803BB678 003B85D8 48 00 00 3C */ b lbl_803BB6B4 +lbl_803BB67C: +/* 803BB67C 003B85DC 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BB680 003B85E0 38 81 00 20 */ addi r4, r1, 0x20 +/* 803BB684 003B85E4 38 A0 20 00 */ li r5, 0x2000 +/* 803BB688 003B85E8 54 00 10 3A */ slwi r0, r0, 2 +/* 803BB68C 003B85EC 7C 04 00 2E */ lwzx r0, r4, r0 +/* 803BB690 003B85F0 90 06 00 88 */ stw r0, 0x88(r6) +/* 803BB694 003B85F4 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BB698 003B85F8 68 60 00 01 */ xori r0, r3, 1 +/* 803BB69C 003B85FC 54 63 10 3A */ slwi r3, r3, 2 +/* 803BB6A0 003B8600 54 00 10 3A */ slwi r0, r0, 2 +/* 803BB6A4 003B8604 7C 64 18 2E */ lwzx r3, r4, r3 +/* 803BB6A8 003B8608 7C 84 00 2E */ lwzx r4, r4, r0 +/* 803BB6AC 003B860C 4B C4 7D E5 */ bl memcpy +/* 803BB6B0 003B8610 3B C0 00 01 */ li r30, 1 +lbl_803BB6B4: +/* 803BB6B4 003B8614 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BB6B8 003B8618 38 61 00 20 */ addi r3, r1, 0x20 +/* 803BB6BC 003B861C 38 80 00 00 */ li r4, 0 +/* 803BB6C0 003B8620 68 00 00 01 */ xori r0, r0, 1 +/* 803BB6C4 003B8624 54 00 10 3A */ slwi r0, r0, 2 +/* 803BB6C8 003B8628 7F E3 00 2E */ lwzx r31, r3, r0 +/* 803BB6CC 003B862C 38 A0 20 00 */ li r5, 0x2000 +/* 803BB6D0 003B8630 38 7F 00 00 */ addi r3, r31, 0 +/* 803BB6D4 003B8634 4B C4 7C D5 */ bl memset +/* 803BB6D8 003B8638 38 00 00 7F */ li r0, 0x7f +/* 803BB6DC 003B863C 80 A1 00 30 */ lwz r5, 0x30(r1) +/* 803BB6E0 003B8640 7C 09 03 A6 */ mtctr r0 +/* 803BB6E4 003B8644 38 C0 00 00 */ li r6, 0 +lbl_803BB6E8: +/* 803BB6E8 003B8648 80 05 00 84 */ lwz r0, 0x84(r5) +/* 803BB6EC 003B864C 7C E0 32 14 */ add r7, r0, r6 +/* 803BB6F0 003B8650 88 07 00 00 */ lbz r0, 0(r7) +/* 803BB6F4 003B8654 28 00 00 FF */ cmplwi r0, 0xff +/* 803BB6F8 003B8658 41 82 00 A8 */ beq lbl_803BB7A0 +/* 803BB6FC 003B865C A0 87 00 36 */ lhz r4, 0x36(r7) +/* 803BB700 003B8660 39 00 00 00 */ li r8, 0 +/* 803BB704 003B8664 48 00 00 54 */ b lbl_803BB758 +lbl_803BB708: +/* 803BB708 003B8668 54 83 04 3E */ clrlwi r3, r4, 0x10 +/* 803BB70C 003B866C 28 03 00 05 */ cmplwi r3, 5 +/* 803BB710 003B8670 41 80 00 2C */ blt lbl_803BB73C +/* 803BB714 003B8674 A0 05 00 10 */ lhz r0, 0x10(r5) +/* 803BB718 003B8678 7C 03 00 40 */ cmplw r3, r0 +/* 803BB71C 003B867C 40 80 00 20 */ bge lbl_803BB73C +/* 803BB720 003B8680 54 64 08 3C */ slwi r4, r3, 1 +/* 803BB724 003B8684 7C 7F 22 2E */ lhzx r3, r31, r4 +/* 803BB728 003B8688 38 63 00 01 */ addi r3, r3, 1 +/* 803BB72C 003B868C 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803BB730 003B8690 7C 7F 23 2E */ sthx r3, r31, r4 +/* 803BB734 003B8694 28 00 00 01 */ cmplwi r0, 1 +/* 803BB738 003B8698 40 81 00 14 */ ble lbl_803BB74C +lbl_803BB73C: +/* 803BB73C 003B869C 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB740 003B86A0 38 80 FF FA */ li r4, -6 +/* 803BB744 003B86A4 4B FF D7 15 */ bl __CARDPutControlBlock +/* 803BB748 003B86A8 48 00 03 8C */ b lbl_803BBAD4 +lbl_803BB74C: +/* 803BB74C 003B86AC 80 65 00 88 */ lwz r3, 0x88(r5) +/* 803BB750 003B86B0 39 08 00 01 */ addi r8, r8, 1 +/* 803BB754 003B86B4 7C 83 22 2E */ lhzx r4, r3, r4 +lbl_803BB758: +/* 803BB758 003B86B8 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803BB75C 003B86BC 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BB760 003B86C0 41 82 00 14 */ beq lbl_803BB774 +/* 803BB764 003B86C4 A0 07 00 38 */ lhz r0, 0x38(r7) +/* 803BB768 003B86C8 55 03 04 3E */ clrlwi r3, r8, 0x10 +/* 803BB76C 003B86CC 7C 03 00 40 */ cmplw r3, r0 +/* 803BB770 003B86D0 41 80 FF 98 */ blt lbl_803BB708 +lbl_803BB774: +/* 803BB774 003B86D4 A0 07 00 38 */ lhz r0, 0x38(r7) +/* 803BB778 003B86D8 55 03 04 3E */ clrlwi r3, r8, 0x10 +/* 803BB77C 003B86DC 7C 03 00 40 */ cmplw r3, r0 +/* 803BB780 003B86E0 40 82 00 10 */ bne lbl_803BB790 +/* 803BB784 003B86E4 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803BB788 003B86E8 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BB78C 003B86EC 41 82 00 14 */ beq lbl_803BB7A0 +lbl_803BB790: +/* 803BB790 003B86F0 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB794 003B86F4 38 80 FF FA */ li r4, -6 +/* 803BB798 003B86F8 4B FF D6 C1 */ bl __CARDPutControlBlock +/* 803BB79C 003B86FC 48 00 03 38 */ b lbl_803BBAD4 +lbl_803BB7A0: +/* 803BB7A0 003B8700 38 C6 00 40 */ addi r6, r6, 0x40 +/* 803BB7A4 003B8704 42 00 FF 44 */ bdnz lbl_803BB6E8 +/* 803BB7A8 003B8708 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB7AC 003B870C 38 DF 00 0A */ addi r6, r31, 0xa +/* 803BB7B0 003B8710 39 20 00 00 */ li r9, 0 +/* 803BB7B4 003B8714 39 00 00 05 */ li r8, 5 +/* 803BB7B8 003B8718 38 A0 00 0A */ li r5, 0xa +/* 803BB7BC 003B871C 48 00 00 68 */ b lbl_803BB824 +lbl_803BB7C0: +/* 803BB7C0 003B8720 80 83 00 88 */ lwz r4, 0x88(r3) +/* 803BB7C4 003B8724 A0 06 00 00 */ lhz r0, 0(r6) +/* 803BB7C8 003B8728 7C 84 2A 14 */ add r4, r4, r5 +/* 803BB7CC 003B872C 28 00 00 00 */ cmplwi r0, 0 +/* 803BB7D0 003B8730 A0 04 00 00 */ lhz r0, 0(r4) +/* 803BB7D4 003B8734 40 82 00 20 */ bne lbl_803BB7F4 +/* 803BB7D8 003B8738 28 00 00 00 */ cmplwi r0, 0 +/* 803BB7DC 003B873C 41 82 00 10 */ beq lbl_803BB7EC +/* 803BB7E0 003B8740 38 00 00 00 */ li r0, 0 +/* 803BB7E4 003B8744 B0 04 00 00 */ sth r0, 0(r4) +/* 803BB7E8 003B8748 3B 80 00 01 */ li r28, 1 +lbl_803BB7EC: +/* 803BB7EC 003B874C 39 29 00 01 */ addi r9, r9, 1 +/* 803BB7F0 003B8750 48 00 00 28 */ b lbl_803BB818 +lbl_803BB7F4: +/* 803BB7F4 003B8754 28 00 00 05 */ cmplwi r0, 5 +/* 803BB7F8 003B8758 41 80 00 0C */ blt lbl_803BB804 +/* 803BB7FC 003B875C 7C 00 38 40 */ cmplw r0, r7 +/* 803BB800 003B8760 41 80 00 18 */ blt lbl_803BB818 +lbl_803BB804: +/* 803BB804 003B8764 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BB808 003B8768 41 82 00 10 */ beq lbl_803BB818 +/* 803BB80C 003B876C 38 80 FF FA */ li r4, -6 +/* 803BB810 003B8770 4B FF D6 49 */ bl __CARDPutControlBlock +/* 803BB814 003B8774 48 00 02 C0 */ b lbl_803BBAD4 +lbl_803BB818: +/* 803BB818 003B8778 38 A5 00 02 */ addi r5, r5, 2 +/* 803BB81C 003B877C 38 C6 00 02 */ addi r6, r6, 2 +/* 803BB820 003B8780 39 08 00 01 */ addi r8, r8, 1 +lbl_803BB824: +/* 803BB824 003B8784 A0 E3 00 10 */ lhz r7, 0x10(r3) +/* 803BB828 003B8788 55 00 04 3E */ clrlwi r0, r8, 0x10 +/* 803BB82C 003B878C 7C 00 38 40 */ cmplw r0, r7 +/* 803BB830 003B8790 41 80 FF 90 */ blt lbl_803BB7C0 +/* 803BB834 003B8794 80 63 00 88 */ lwz r3, 0x88(r3) +/* 803BB838 003B8798 55 24 04 3E */ clrlwi r4, r9, 0x10 +/* 803BB83C 003B879C A4 03 00 06 */ lhzu r0, 6(r3) +/* 803BB840 003B87A0 7C 04 00 40 */ cmplw r4, r0 +/* 803BB844 003B87A4 41 82 00 0C */ beq lbl_803BB850 +/* 803BB848 003B87A8 B1 23 00 00 */ sth r9, 0(r3) +/* 803BB84C 003B87AC 3B 80 00 01 */ li r28, 1 +lbl_803BB850: +/* 803BB850 003B87B0 2C 1C 00 00 */ cmpwi r28, 0 +/* 803BB854 003B87B4 41 82 01 C8 */ beq lbl_803BBA1C +/* 803BB858 003B87B8 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BB85C 003B87BC 38 80 1F FC */ li r4, 0x1ffc +/* 803BB860 003B87C0 7C 84 0E 70 */ srawi r4, r4, 1 +/* 803BB864 003B87C4 80 C3 00 88 */ lwz r6, 0x88(r3) +/* 803BB868 003B87C8 38 00 00 00 */ li r0, 0 +/* 803BB86C 003B87CC 7C 84 01 95 */ addze. r4, r4 +/* 803BB870 003B87D0 B0 06 00 02 */ sth r0, 2(r6) +/* 803BB874 003B87D4 38 E6 00 02 */ addi r7, r6, 2 +/* 803BB878 003B87D8 38 A6 00 04 */ addi r5, r6, 4 +/* 803BB87C 003B87DC B0 06 00 00 */ sth r0, 0(r6) +/* 803BB880 003B87E0 38 64 00 00 */ addi r3, r4, 0 +/* 803BB884 003B87E4 40 81 01 70 */ ble lbl_803BB9F4 +/* 803BB888 003B87E8 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803BB88C 003B87EC 7C 09 03 A6 */ mtctr r0 +/* 803BB890 003B87F0 41 82 01 34 */ beq lbl_803BB9C4 +lbl_803BB894: +/* 803BB894 003B87F4 A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB898 003B87F8 A0 05 00 00 */ lhz r0, 0(r5) +/* 803BB89C 003B87FC 7C 04 02 14 */ add r0, r4, r0 +/* 803BB8A0 003B8800 B0 06 00 00 */ sth r0, 0(r6) +/* 803BB8A4 003B8804 A0 05 00 00 */ lhz r0, 0(r5) +/* 803BB8A8 003B8808 A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB8AC 003B880C 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB8B0 003B8810 7C 04 02 14 */ add r0, r4, r0 +/* 803BB8B4 003B8814 B0 07 00 00 */ sth r0, 0(r7) +/* 803BB8B8 003B8818 A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB8BC 003B881C A0 05 00 02 */ lhz r0, 2(r5) +/* 803BB8C0 003B8820 7C 04 02 14 */ add r0, r4, r0 +/* 803BB8C4 003B8824 B0 06 00 00 */ sth r0, 0(r6) +/* 803BB8C8 003B8828 A0 05 00 02 */ lhz r0, 2(r5) +/* 803BB8CC 003B882C A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB8D0 003B8830 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB8D4 003B8834 7C 04 02 14 */ add r0, r4, r0 +/* 803BB8D8 003B8838 B0 07 00 00 */ sth r0, 0(r7) +/* 803BB8DC 003B883C A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB8E0 003B8840 A0 05 00 04 */ lhz r0, 4(r5) +/* 803BB8E4 003B8844 7C 04 02 14 */ add r0, r4, r0 +/* 803BB8E8 003B8848 B0 06 00 00 */ sth r0, 0(r6) +/* 803BB8EC 003B884C A0 05 00 04 */ lhz r0, 4(r5) +/* 803BB8F0 003B8850 A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB8F4 003B8854 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB8F8 003B8858 7C 04 02 14 */ add r0, r4, r0 +/* 803BB8FC 003B885C B0 07 00 00 */ sth r0, 0(r7) +/* 803BB900 003B8860 A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB904 003B8864 A0 05 00 06 */ lhz r0, 6(r5) +/* 803BB908 003B8868 7C 04 02 14 */ add r0, r4, r0 +/* 803BB90C 003B886C B0 06 00 00 */ sth r0, 0(r6) +/* 803BB910 003B8870 A0 05 00 06 */ lhz r0, 6(r5) +/* 803BB914 003B8874 A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB918 003B8878 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB91C 003B887C 7C 04 02 14 */ add r0, r4, r0 +/* 803BB920 003B8880 B0 07 00 00 */ sth r0, 0(r7) +/* 803BB924 003B8884 A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB928 003B8888 A0 05 00 08 */ lhz r0, 8(r5) +/* 803BB92C 003B888C 7C 04 02 14 */ add r0, r4, r0 +/* 803BB930 003B8890 B0 06 00 00 */ sth r0, 0(r6) +/* 803BB934 003B8894 A0 05 00 08 */ lhz r0, 8(r5) +/* 803BB938 003B8898 A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB93C 003B889C 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB940 003B88A0 7C 04 02 14 */ add r0, r4, r0 +/* 803BB944 003B88A4 B0 07 00 00 */ sth r0, 0(r7) +/* 803BB948 003B88A8 A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB94C 003B88AC A0 05 00 0A */ lhz r0, 0xa(r5) +/* 803BB950 003B88B0 7C 04 02 14 */ add r0, r4, r0 +/* 803BB954 003B88B4 B0 06 00 00 */ sth r0, 0(r6) +/* 803BB958 003B88B8 A0 05 00 0A */ lhz r0, 0xa(r5) +/* 803BB95C 003B88BC A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB960 003B88C0 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB964 003B88C4 7C 04 02 14 */ add r0, r4, r0 +/* 803BB968 003B88C8 B0 07 00 00 */ sth r0, 0(r7) +/* 803BB96C 003B88CC A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB970 003B88D0 A0 05 00 0C */ lhz r0, 0xc(r5) +/* 803BB974 003B88D4 7C 04 02 14 */ add r0, r4, r0 +/* 803BB978 003B88D8 B0 06 00 00 */ sth r0, 0(r6) +/* 803BB97C 003B88DC A0 05 00 0C */ lhz r0, 0xc(r5) +/* 803BB980 003B88E0 A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB984 003B88E4 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB988 003B88E8 7C 04 02 14 */ add r0, r4, r0 +/* 803BB98C 003B88EC B0 07 00 00 */ sth r0, 0(r7) +/* 803BB990 003B88F0 A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB994 003B88F4 A0 05 00 0E */ lhz r0, 0xe(r5) +/* 803BB998 003B88F8 7C 04 02 14 */ add r0, r4, r0 +/* 803BB99C 003B88FC B0 06 00 00 */ sth r0, 0(r6) +/* 803BB9A0 003B8900 A0 05 00 0E */ lhz r0, 0xe(r5) +/* 803BB9A4 003B8904 38 A5 00 10 */ addi r5, r5, 0x10 +/* 803BB9A8 003B8908 A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB9AC 003B890C 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB9B0 003B8910 7C 04 02 14 */ add r0, r4, r0 +/* 803BB9B4 003B8914 B0 07 00 00 */ sth r0, 0(r7) +/* 803BB9B8 003B8918 42 00 FE DC */ bdnz lbl_803BB894 +/* 803BB9BC 003B891C 70 63 00 07 */ andi. r3, r3, 7 +/* 803BB9C0 003B8920 41 82 00 34 */ beq lbl_803BB9F4 +lbl_803BB9C4: +/* 803BB9C4 003B8924 7C 69 03 A6 */ mtctr r3 +lbl_803BB9C8: +/* 803BB9C8 003B8928 A0 86 00 00 */ lhz r4, 0(r6) +/* 803BB9CC 003B892C A0 05 00 00 */ lhz r0, 0(r5) +/* 803BB9D0 003B8930 7C 04 02 14 */ add r0, r4, r0 +/* 803BB9D4 003B8934 B0 06 00 00 */ sth r0, 0(r6) +/* 803BB9D8 003B8938 A0 05 00 00 */ lhz r0, 0(r5) +/* 803BB9DC 003B893C 38 A5 00 02 */ addi r5, r5, 2 +/* 803BB9E0 003B8940 A0 87 00 00 */ lhz r4, 0(r7) +/* 803BB9E4 003B8944 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BB9E8 003B8948 7C 04 02 14 */ add r0, r4, r0 +/* 803BB9EC 003B894C B0 07 00 00 */ sth r0, 0(r7) +/* 803BB9F0 003B8950 42 00 FF D8 */ bdnz lbl_803BB9C8 +lbl_803BB9F4: +/* 803BB9F4 003B8954 A0 06 00 00 */ lhz r0, 0(r6) +/* 803BB9F8 003B8958 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BB9FC 003B895C 40 82 00 0C */ bne lbl_803BBA08 +/* 803BBA00 003B8960 38 00 00 00 */ li r0, 0 +/* 803BBA04 003B8964 B0 06 00 00 */ sth r0, 0(r6) +lbl_803BBA08: +/* 803BBA08 003B8968 A0 07 00 00 */ lhz r0, 0(r7) +/* 803BBA0C 003B896C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BBA10 003B8970 40 82 00 0C */ bne lbl_803BBA1C +/* 803BBA14 003B8974 38 00 00 00 */ li r0, 0 +/* 803BBA18 003B8978 B0 07 00 00 */ sth r0, 0(r7) +lbl_803BBA1C: +/* 803BBA1C 003B897C 80 C1 00 1C */ lwz r6, 0x1c(r1) +/* 803BBA20 003B8980 38 81 00 20 */ addi r4, r1, 0x20 +/* 803BBA24 003B8984 38 A0 20 00 */ li r5, 0x2000 +/* 803BBA28 003B8988 68 C0 00 01 */ xori r0, r6, 1 +/* 803BBA2C 003B898C 54 03 10 3A */ slwi r3, r0, 2 +/* 803BBA30 003B8990 54 C0 10 3A */ slwi r0, r6, 2 +/* 803BBA34 003B8994 7C 64 18 2E */ lwzx r3, r4, r3 +/* 803BBA38 003B8998 7C 84 00 2E */ lwzx r4, r4, r0 +/* 803BBA3C 003B899C 4B C4 7A 55 */ bl memcpy +/* 803BBA40 003B89A0 2C 1D 00 00 */ cmpwi r29, 0 +/* 803BBA44 003B89A4 41 82 00 24 */ beq lbl_803BBA68 +/* 803BBA48 003B89A8 28 1A 00 00 */ cmplwi r26, 0 +/* 803BBA4C 003B89AC 41 82 00 0C */ beq lbl_803BBA58 +/* 803BBA50 003B89B0 38 00 20 00 */ li r0, 0x2000 +/* 803BBA54 003B89B4 90 1A 00 00 */ stw r0, 0(r26) +lbl_803BBA58: +/* 803BBA58 003B89B8 38 79 00 00 */ addi r3, r25, 0 +/* 803BBA5C 003B89BC 38 9B 00 00 */ addi r4, r27, 0 +/* 803BBA60 003B89C0 4B FF F0 B1 */ bl __CARDUpdateDir +/* 803BBA64 003B89C4 48 00 00 70 */ b lbl_803BBAD4 +lbl_803BBA68: +/* 803BBA68 003B89C8 7F C0 E3 79 */ or. r0, r30, r28 +/* 803BBA6C 003B89CC 41 82 00 2C */ beq lbl_803BBA98 +/* 803BBA70 003B89D0 28 1A 00 00 */ cmplwi r26, 0 +/* 803BBA74 003B89D4 41 82 00 0C */ beq lbl_803BBA80 +/* 803BBA78 003B89D8 38 00 20 00 */ li r0, 0x2000 +/* 803BBA7C 003B89DC 90 1A 00 00 */ stw r0, 0(r26) +lbl_803BBA80: +/* 803BBA80 003B89E0 80 81 00 30 */ lwz r4, 0x30(r1) +/* 803BBA84 003B89E4 38 79 00 00 */ addi r3, r25, 0 +/* 803BBA88 003B89E8 38 BB 00 00 */ addi r5, r27, 0 +/* 803BBA8C 003B89EC 80 84 00 88 */ lwz r4, 0x88(r4) +/* 803BBA90 003B89F0 4B FF EE 35 */ bl __CARDUpdateFatBlock +/* 803BBA94 003B89F4 48 00 00 40 */ b lbl_803BBAD4 +lbl_803BBA98: +/* 803BBA98 003B89F8 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803BBA9C 003B89FC 38 80 00 00 */ li r4, 0 +/* 803BBAA0 003B8A00 4B FF D3 B9 */ bl __CARDPutControlBlock +/* 803BBAA4 003B8A04 28 1B 00 00 */ cmplwi r27, 0 +/* 803BBAA8 003B8A08 41 82 00 28 */ beq lbl_803BBAD0 +/* 803BBAAC 003B8A0C 4B FC 5B B5 */ bl OSDisableInterrupts +/* 803BBAB0 003B8A10 39 9B 00 00 */ addi r12, r27, 0 +/* 803BBAB4 003B8A14 7D 88 03 A6 */ mtlr r12 +/* 803BBAB8 003B8A18 3B 43 00 00 */ addi r26, r3, 0 +/* 803BBABC 003B8A1C 38 79 00 00 */ addi r3, r25, 0 +/* 803BBAC0 003B8A20 38 80 00 00 */ li r4, 0 +/* 803BBAC4 003B8A24 4E 80 00 21 */ blrl +/* 803BBAC8 003B8A28 7F 43 D3 78 */ mr r3, r26 +/* 803BBACC 003B8A2C 4B FC 5B BD */ bl OSRestoreInterrupts +lbl_803BBAD0: +/* 803BBAD0 003B8A30 38 60 00 00 */ li r3, 0 +lbl_803BBAD4: +/* 803BBAD4 003B8A34 BB 21 00 3C */ lmw r25, 0x3c(r1) +/* 803BBAD8 003B8A38 80 01 00 5C */ lwz r0, 0x5c(r1) +/* 803BBADC 003B8A3C 38 21 00 58 */ addi r1, r1, 0x58 +/* 803BBAE0 003B8A40 7C 08 03 A6 */ mtlr r0 +/* 803BBAE4 003B8A44 4E 80 00 20 */ blr + +.global CARDCheckAsync +CARDCheckAsync: +/* 803BBAE8 003B8A48 7C 08 02 A6 */ mflr r0 +/* 803BBAEC 003B8A4C 38 A4 00 00 */ addi r5, r4, 0 +/* 803BBAF0 003B8A50 90 01 00 04 */ stw r0, 4(r1) +/* 803BBAF4 003B8A54 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BBAF8 003B8A58 38 81 00 10 */ addi r4, r1, 0x10 +/* 803BBAFC 003B8A5C 4B FF FA 5D */ bl CARDCheckExAsync +/* 803BBB00 003B8A60 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BBB04 003B8A64 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BBB08 003B8A68 7C 08 03 A6 */ mtlr r0 +/* 803BBB0C 003B8A6C 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDCreate.s b/asm/Dolphin/CARD/CARDCreate.s new file mode 100644 index 00000000..79025185 --- /dev/null +++ b/asm/Dolphin/CARD/CARDCreate.s @@ -0,0 +1,236 @@ +.include "macros.inc" + +.section .text, "ax" + +CreateCallbackFat: +/* 803BD1C0 003BA120 7C 08 02 A6 */ mflr r0 +/* 803BD1C4 003BA124 90 01 00 04 */ stw r0, 4(r1) +/* 803BD1C8 003BA128 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BD1CC 003BA12C BF 61 00 14 */ stmw r27, 0x14(r1) +/* 803BD1D0 003BA130 3B 83 00 00 */ addi r28, r3, 0 +/* 803BD1D4 003BA134 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BD1D8 003BA138 1C BC 01 10 */ mulli r5, r28, 0x110 +/* 803BD1DC 003BA13C 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BD1E0 003BA140 7F E0 2A 14 */ add r31, r0, r5 +/* 803BD1E4 003BA144 83 BF 00 D0 */ lwz r29, 0xd0(r31) +/* 803BD1E8 003BA148 3B 60 00 00 */ li r27, 0 +/* 803BD1EC 003BA14C 7C 9E 23 79 */ or. r30, r4, r4 +/* 803BD1F0 003BA150 93 7F 00 D0 */ stw r27, 0xd0(r31) +/* 803BD1F4 003BA154 41 80 00 C0 */ blt lbl_803BD2B4 +/* 803BD1F8 003BA158 7F E3 FB 78 */ mr r3, r31 +/* 803BD1FC 003BA15C 4B FF D7 75 */ bl __CARDGetDirBlock +/* 803BD200 003BA160 A0 1F 00 BC */ lhz r0, 0xbc(r31) +/* 803BD204 003BA164 38 A0 00 04 */ li r5, 4 +/* 803BD208 003BA168 80 9F 01 0C */ lwz r4, 0x10c(r31) +/* 803BD20C 003BA16C 54 00 30 32 */ slwi r0, r0, 6 +/* 803BD210 003BA170 7F C3 02 14 */ add r30, r3, r0 +/* 803BD214 003BA174 38 7E 00 00 */ addi r3, r30, 0 +/* 803BD218 003BA178 4B C4 62 79 */ bl memcpy +/* 803BD21C 003BA17C 80 9F 01 0C */ lwz r4, 0x10c(r31) +/* 803BD220 003BA180 38 7E 00 04 */ addi r3, r30, 4 +/* 803BD224 003BA184 38 A0 00 02 */ li r5, 2 +/* 803BD228 003BA188 38 84 00 04 */ addi r4, r4, 4 +/* 803BD22C 003BA18C 4B C4 62 65 */ bl memcpy +/* 803BD230 003BA190 38 00 00 04 */ li r0, 4 +/* 803BD234 003BA194 98 1E 00 34 */ stb r0, 0x34(r30) +/* 803BD238 003BA198 38 00 FF FF */ li r0, -1 +/* 803BD23C 003BA19C 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803BD240 003BA1A0 9B 7E 00 35 */ stb r27, 0x35(r30) +/* 803BD244 003BA1A4 A0 9F 00 BE */ lhz r4, 0xbe(r31) +/* 803BD248 003BA1A8 B0 9E 00 36 */ sth r4, 0x36(r30) +/* 803BD24C 003BA1AC 9B 7E 00 07 */ stb r27, 7(r30) +/* 803BD250 003BA1B0 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803BD254 003BA1B4 B3 7E 00 30 */ sth r27, 0x30(r30) +/* 803BD258 003BA1B8 B3 7E 00 32 */ sth r27, 0x32(r30) +/* 803BD25C 003BA1BC 90 1E 00 3C */ stw r0, 0x3c(r30) +/* 803BD260 003BA1C0 A0 1E 00 32 */ lhz r0, 0x32(r30) +/* 803BD264 003BA1C4 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d +/* 803BD268 003BA1C8 60 00 00 01 */ ori r0, r0, 1 +/* 803BD26C 003BA1CC B0 1E 00 32 */ sth r0, 0x32(r30) +/* 803BD270 003BA1D0 80 9F 00 C0 */ lwz r4, 0xc0(r31) +/* 803BD274 003BA1D4 93 64 00 08 */ stw r27, 8(r4) +/* 803BD278 003BA1D8 A0 1E 00 36 */ lhz r0, 0x36(r30) +/* 803BD27C 003BA1DC 80 9F 00 C0 */ lwz r4, 0xc0(r31) +/* 803BD280 003BA1E0 B0 04 00 10 */ sth r0, 0x10(r4) +/* 803BD284 003BA1E4 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803BD288 003BA1E8 54 1B F0 BE */ srwi r27, r0, 2 +/* 803BD28C 003BA1EC 4B FC 81 1D */ bl OSGetTime +/* 803BD290 003BA1F0 38 DB 00 00 */ addi r6, r27, 0 +/* 803BD294 003BA1F4 38 A0 00 00 */ li r5, 0 +/* 803BD298 003BA1F8 4B FC C9 35 */ bl __div2i +/* 803BD29C 003BA1FC 90 9E 00 28 */ stw r4, 0x28(r30) +/* 803BD2A0 003BA200 38 7C 00 00 */ addi r3, r28, 0 +/* 803BD2A4 003BA204 38 9D 00 00 */ addi r4, r29, 0 +/* 803BD2A8 003BA208 4B FF D8 69 */ bl __CARDUpdateDir +/* 803BD2AC 003BA20C 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803BD2B0 003BA210 40 80 00 2C */ bge lbl_803BD2DC +lbl_803BD2B4: +/* 803BD2B4 003BA214 38 7F 00 00 */ addi r3, r31, 0 +/* 803BD2B8 003BA218 38 9E 00 00 */ addi r4, r30, 0 +/* 803BD2BC 003BA21C 4B FF BB 9D */ bl __CARDPutControlBlock +/* 803BD2C0 003BA220 28 1D 00 00 */ cmplwi r29, 0 +/* 803BD2C4 003BA224 41 82 00 18 */ beq lbl_803BD2DC +/* 803BD2C8 003BA228 39 9D 00 00 */ addi r12, r29, 0 +/* 803BD2CC 003BA22C 7D 88 03 A6 */ mtlr r12 +/* 803BD2D0 003BA230 38 7C 00 00 */ addi r3, r28, 0 +/* 803BD2D4 003BA234 38 9E 00 00 */ addi r4, r30, 0 +/* 803BD2D8 003BA238 4E 80 00 21 */ blrl +lbl_803BD2DC: +/* 803BD2DC 003BA23C BB 61 00 14 */ lmw r27, 0x14(r1) +/* 803BD2E0 003BA240 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BD2E4 003BA244 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BD2E8 003BA248 7C 08 03 A6 */ mtlr r0 +/* 803BD2EC 003BA24C 4E 80 00 20 */ blr + +.global CARDCreateAsync +CARDCreateAsync: +/* 803BD2F0 003BA250 7C 08 02 A6 */ mflr r0 +/* 803BD2F4 003BA254 90 01 00 04 */ stw r0, 4(r1) +/* 803BD2F8 003BA258 94 21 FF B8 */ stwu r1, -0x48(r1) +/* 803BD2FC 003BA25C BE E1 00 24 */ stmw r23, 0x24(r1) +/* 803BD300 003BA260 3B 44 00 00 */ addi r26, r4, 0 +/* 803BD304 003BA264 3B 23 00 00 */ addi r25, r3, 0 +/* 803BD308 003BA268 3B 65 00 00 */ addi r27, r5, 0 +/* 803BD30C 003BA26C 3B 86 00 00 */ addi r28, r6, 0 +/* 803BD310 003BA270 3B A7 00 00 */ addi r29, r7, 0 +/* 803BD314 003BA274 38 7A 00 00 */ addi r3, r26, 0 +/* 803BD318 003BA278 4B FD 2E A9 */ bl strlen +/* 803BD31C 003BA27C 28 03 00 20 */ cmplwi r3, 0x20 +/* 803BD320 003BA280 40 81 00 0C */ ble lbl_803BD32C +/* 803BD324 003BA284 38 60 FF F4 */ li r3, -12 +/* 803BD328 003BA288 48 00 01 D4 */ b lbl_803BD4FC +lbl_803BD32C: +/* 803BD32C 003BA28C 38 79 00 00 */ addi r3, r25, 0 +/* 803BD330 003BA290 38 81 00 1C */ addi r4, r1, 0x1c +/* 803BD334 003BA294 4B FF BA 6D */ bl __CARDGetControlBlock +/* 803BD338 003BA298 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD33C 003BA29C 40 80 00 08 */ bge lbl_803BD344 +/* 803BD340 003BA2A0 48 00 01 BC */ b lbl_803BD4FC +lbl_803BD344: +/* 803BD344 003BA2A4 28 1B 00 00 */ cmplwi r27, 0 +/* 803BD348 003BA2A8 41 82 00 1C */ beq lbl_803BD364 +/* 803BD34C 003BA2AC 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD350 003BA2B0 80 83 00 0C */ lwz r4, 0xc(r3) +/* 803BD354 003BA2B4 7C 1B 23 96 */ divwu r0, r27, r4 +/* 803BD358 003BA2B8 7C 00 21 D6 */ mullw r0, r0, r4 +/* 803BD35C 003BA2BC 7C 00 D8 51 */ subf. r0, r0, r27 +/* 803BD360 003BA2C0 41 82 00 0C */ beq lbl_803BD36C +lbl_803BD364: +/* 803BD364 003BA2C4 38 60 FF 80 */ li r3, -128 +/* 803BD368 003BA2C8 48 00 01 94 */ b lbl_803BD4FC +lbl_803BD36C: +/* 803BD36C 003BA2CC 3C 80 00 01 */ lis r4, 0x0000FFFF@ha +/* 803BD370 003BA2D0 3B C4 FF FF */ addi r30, r4, 0x0000FFFF@l +/* 803BD374 003BA2D4 4B FF D5 FD */ bl __CARDGetDirBlock +/* 803BD378 003BA2D8 3B E3 00 00 */ addi r31, r3, 0 +/* 803BD37C 003BA2DC 3B 1F 00 00 */ addi r24, r31, 0 +/* 803BD380 003BA2E0 3A E0 00 00 */ li r23, 0 +/* 803BD384 003BA2E4 48 00 00 8C */ b lbl_803BD410 +lbl_803BD388: +/* 803BD388 003BA2E8 88 18 00 00 */ lbz r0, 0(r24) +/* 803BD38C 003BA2EC 28 00 00 FF */ cmplwi r0, 0xff +/* 803BD390 003BA2F0 40 82 00 18 */ bne lbl_803BD3A8 +/* 803BD394 003BA2F4 57 C0 04 3E */ clrlwi r0, r30, 0x10 +/* 803BD398 003BA2F8 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BD39C 003BA2FC 40 82 00 6C */ bne lbl_803BD408 +/* 803BD3A0 003BA300 7E FE BB 78 */ mr r30, r23 +/* 803BD3A4 003BA304 48 00 00 64 */ b lbl_803BD408 +lbl_803BD3A8: +/* 803BD3A8 003BA308 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 803BD3AC 003BA30C 38 78 00 00 */ addi r3, r24, 0 +/* 803BD3B0 003BA310 38 A0 00 04 */ li r5, 4 +/* 803BD3B4 003BA314 80 84 01 0C */ lwz r4, 0x10c(r4) +/* 803BD3B8 003BA318 4B FD 04 C5 */ bl memcmp +/* 803BD3BC 003BA31C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD3C0 003BA320 40 82 00 48 */ bne lbl_803BD408 +/* 803BD3C4 003BA324 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 803BD3C8 003BA328 38 78 00 04 */ addi r3, r24, 4 +/* 803BD3CC 003BA32C 38 A0 00 02 */ li r5, 2 +/* 803BD3D0 003BA330 80 84 01 0C */ lwz r4, 0x10c(r4) +/* 803BD3D4 003BA334 38 84 00 04 */ addi r4, r4, 4 +/* 803BD3D8 003BA338 4B FD 04 A5 */ bl memcmp +/* 803BD3DC 003BA33C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD3E0 003BA340 40 82 00 28 */ bne lbl_803BD408 +/* 803BD3E4 003BA344 38 78 00 00 */ addi r3, r24, 0 +/* 803BD3E8 003BA348 38 9A 00 00 */ addi r4, r26, 0 +/* 803BD3EC 003BA34C 4B FF F9 81 */ bl __CARDCompareFileName +/* 803BD3F0 003BA350 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD3F4 003BA354 41 82 00 14 */ beq lbl_803BD408 +/* 803BD3F8 003BA358 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD3FC 003BA35C 38 80 FF F9 */ li r4, -7 +/* 803BD400 003BA360 4B FF BA 59 */ bl __CARDPutControlBlock +/* 803BD404 003BA364 48 00 00 F8 */ b lbl_803BD4FC +lbl_803BD408: +/* 803BD408 003BA368 3B 18 00 40 */ addi r24, r24, 0x40 +/* 803BD40C 003BA36C 3A F7 00 01 */ addi r23, r23, 1 +lbl_803BD410: +/* 803BD410 003BA370 56 E0 04 3E */ clrlwi r0, r23, 0x10 +/* 803BD414 003BA374 28 00 00 7F */ cmplwi r0, 0x7f +/* 803BD418 003BA378 41 80 FF 70 */ blt lbl_803BD388 +/* 803BD41C 003BA37C 57 C0 04 3E */ clrlwi r0, r30, 0x10 +/* 803BD420 003BA380 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BD424 003BA384 40 82 00 14 */ bne lbl_803BD438 +/* 803BD428 003BA388 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD42C 003BA38C 38 80 FF F8 */ li r4, -8 +/* 803BD430 003BA390 4B FF BA 29 */ bl __CARDPutControlBlock +/* 803BD434 003BA394 48 00 00 C8 */ b lbl_803BD4FC +lbl_803BD438: +/* 803BD438 003BA398 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD43C 003BA39C 4B FF D1 31 */ bl __CARDGetFatBlock +/* 803BD440 003BA3A0 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 803BD444 003BA3A4 A0 03 00 06 */ lhz r0, 6(r3) +/* 803BD448 003BA3A8 80 64 00 0C */ lwz r3, 0xc(r4) +/* 803BD44C 003BA3AC 7C 03 01 D6 */ mullw r0, r3, r0 +/* 803BD450 003BA3B0 7C 00 D8 40 */ cmplw r0, r27 +/* 803BD454 003BA3B4 40 80 00 14 */ bge lbl_803BD468 +/* 803BD458 003BA3B8 38 64 00 00 */ addi r3, r4, 0 +/* 803BD45C 003BA3BC 38 80 FF F7 */ li r4, -9 +/* 803BD460 003BA3C0 4B FF B9 F9 */ bl __CARDPutControlBlock +/* 803BD464 003BA3C4 48 00 00 98 */ b lbl_803BD4FC +lbl_803BD468: +/* 803BD468 003BA3C8 28 1D 00 00 */ cmplwi r29, 0 +/* 803BD46C 003BA3CC 41 82 00 0C */ beq lbl_803BD478 +/* 803BD470 003BA3D0 7F A0 EB 78 */ mr r0, r29 +/* 803BD474 003BA3D4 48 00 00 0C */ b lbl_803BD480 +lbl_803BD478: +/* 803BD478 003BA3D8 3C 60 80 3B */ lis r3, __CARDDefaultApiCallback@ha +/* 803BD47C 003BA3DC 38 03 7E 74 */ addi r0, r3, __CARDDefaultApiCallback@l +lbl_803BD480: +/* 803BD480 003BA3E0 90 04 00 D0 */ stw r0, 0xd0(r4) +/* 803BD484 003BA3E4 57 C0 32 B2 */ rlwinm r0, r30, 6, 0xa, 0x19 +/* 803BD488 003BA3E8 7C FF 02 14 */ add r7, r31, r0 +/* 803BD48C 003BA3EC 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD490 003BA3F0 57 DD 04 3E */ clrlwi r29, r30, 0x10 +/* 803BD494 003BA3F4 38 9A 00 00 */ addi r4, r26, 0 +/* 803BD498 003BA3F8 B3 C3 00 BC */ sth r30, 0xbc(r3) +/* 803BD49C 003BA3FC 38 67 00 08 */ addi r3, r7, 8 +/* 803BD4A0 003BA400 38 A0 00 20 */ li r5, 0x20 +/* 803BD4A4 003BA404 80 C1 00 1C */ lwz r6, 0x1c(r1) +/* 803BD4A8 003BA408 80 06 00 0C */ lwz r0, 0xc(r6) +/* 803BD4AC 003BA40C 7C 1B 03 96 */ divwu r0, r27, r0 +/* 803BD4B0 003BA410 B0 07 00 38 */ sth r0, 0x38(r7) +/* 803BD4B4 003BA414 4B FD 2C 11 */ bl strncpy +/* 803BD4B8 003BA418 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 803BD4BC 003BA41C 3C 60 80 3C */ lis r3, CreateCallbackFat@ha +/* 803BD4C0 003BA420 38 A3 D1 C0 */ addi r5, r3, CreateCallbackFat@l +/* 803BD4C4 003BA424 93 84 00 C0 */ stw r28, 0xc0(r4) +/* 803BD4C8 003BA428 7F 23 CB 78 */ mr r3, r25 +/* 803BD4CC 003BA42C 93 3C 00 00 */ stw r25, 0(r28) +/* 803BD4D0 003BA430 93 BC 00 04 */ stw r29, 4(r28) +/* 803BD4D4 003BA434 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 803BD4D8 003BA438 80 04 00 0C */ lwz r0, 0xc(r4) +/* 803BD4DC 003BA43C 7C 9B 03 96 */ divwu r4, r27, r0 +/* 803BD4E0 003BA440 4B FF D2 31 */ bl __CARDAllocBlock +/* 803BD4E4 003BA444 7C 64 1B 79 */ or. r4, r3, r3 +/* 803BD4E8 003BA448 40 80 00 10 */ bge lbl_803BD4F8 +/* 803BD4EC 003BA44C 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD4F0 003BA450 4B FF B9 69 */ bl __CARDPutControlBlock +/* 803BD4F4 003BA454 48 00 00 08 */ b lbl_803BD4FC +lbl_803BD4F8: +/* 803BD4F8 003BA458 7C 83 23 78 */ mr r3, r4 +lbl_803BD4FC: +/* 803BD4FC 003BA45C BA E1 00 24 */ lmw r23, 0x24(r1) +/* 803BD500 003BA460 80 01 00 4C */ lwz r0, 0x4c(r1) +/* 803BD504 003BA464 38 21 00 48 */ addi r1, r1, 0x48 +/* 803BD508 003BA468 7C 08 03 A6 */ mtlr r0 +/* 803BD50C 003BA46C 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDDelete.s b/asm/Dolphin/CARD/CARDDelete.s new file mode 100644 index 00000000..a029041f --- /dev/null +++ b/asm/Dolphin/CARD/CARDDelete.s @@ -0,0 +1,214 @@ +.include "macros.inc" + +.section .text, "ax" + +.global DeleteCallback +DeleteCallback: +/* 803BDC74 003BABD4 7C 08 02 A6 */ mflr r0 +/* 803BDC78 003BABD8 90 01 00 04 */ stw r0, 4(r1) +/* 803BDC7C 003BABDC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BDC80 003BABE0 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BDC84 003BABE4 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BDC88 003BABE8 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BDC8C 003BABEC 7C 9D 23 79 */ or. r29, r4, r4 +/* 803BDC90 003BABF0 93 81 00 10 */ stw r28, 0x10(r1) +/* 803BDC94 003BABF4 3B 83 00 00 */ addi r28, r3, 0 +/* 803BDC98 003BABF8 1C BC 01 10 */ mulli r5, r28, 0x110 +/* 803BDC9C 003BABFC 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BDCA0 003BAC00 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BDCA4 003BAC04 7F E0 2A 14 */ add r31, r0, r5 +/* 803BDCA8 003BAC08 83 DF 00 D0 */ lwz r30, 0xd0(r31) +/* 803BDCAC 003BAC0C 38 00 00 00 */ li r0, 0 +/* 803BDCB0 003BAC10 90 1F 00 D0 */ stw r0, 0xd0(r31) +/* 803BDCB4 003BAC14 41 80 00 1C */ blt lbl_803BDCD0 +/* 803BDCB8 003BAC18 A0 9F 00 BE */ lhz r4, 0xbe(r31) +/* 803BDCBC 003BAC1C 38 7C 00 00 */ addi r3, r28, 0 +/* 803BDCC0 003BAC20 38 BE 00 00 */ addi r5, r30, 0 +/* 803BDCC4 003BAC24 4B FF CB 65 */ bl __CARDFreeBlock +/* 803BDCC8 003BAC28 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BDCCC 003BAC2C 40 80 00 2C */ bge lbl_803BDCF8 +lbl_803BDCD0: +/* 803BDCD0 003BAC30 38 7F 00 00 */ addi r3, r31, 0 +/* 803BDCD4 003BAC34 38 9D 00 00 */ addi r4, r29, 0 +/* 803BDCD8 003BAC38 4B FF B1 81 */ bl __CARDPutControlBlock +/* 803BDCDC 003BAC3C 28 1E 00 00 */ cmplwi r30, 0 +/* 803BDCE0 003BAC40 41 82 00 18 */ beq lbl_803BDCF8 +/* 803BDCE4 003BAC44 39 9E 00 00 */ addi r12, r30, 0 +/* 803BDCE8 003BAC48 7D 88 03 A6 */ mtlr r12 +/* 803BDCEC 003BAC4C 38 7C 00 00 */ addi r3, r28, 0 +/* 803BDCF0 003BAC50 38 9D 00 00 */ addi r4, r29, 0 +/* 803BDCF4 003BAC54 4E 80 00 21 */ blrl +lbl_803BDCF8: +/* 803BDCF8 003BAC58 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BDCFC 003BAC5C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BDD00 003BAC60 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BDD04 003BAC64 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BDD08 003BAC68 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803BDD0C 003BAC6C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BDD10 003BAC70 7C 08 03 A6 */ mtlr r0 +/* 803BDD14 003BAC74 4E 80 00 20 */ blr + +.global CARDFastDeleteAsync +CARDFastDeleteAsync: +/* 803BDD18 003BAC78 7C 08 02 A6 */ mflr r0 +/* 803BDD1C 003BAC7C 90 01 00 04 */ stw r0, 4(r1) +/* 803BDD20 003BAC80 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BDD24 003BAC84 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803BDD28 003BAC88 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803BDD2C 003BAC8C 3B C5 00 00 */ addi r30, r5, 0 +/* 803BDD30 003BAC90 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803BDD34 003BAC94 7C 9D 23 79 */ or. r29, r4, r4 +/* 803BDD38 003BAC98 93 81 00 18 */ stw r28, 0x18(r1) +/* 803BDD3C 003BAC9C 3B 83 00 00 */ addi r28, r3, 0 +/* 803BDD40 003BACA0 41 80 00 0C */ blt lbl_803BDD4C +/* 803BDD44 003BACA4 2C 1D 00 7F */ cmpwi r29, 0x7f +/* 803BDD48 003BACA8 41 80 00 0C */ blt lbl_803BDD54 +lbl_803BDD4C: +/* 803BDD4C 003BACAC 38 60 FF 80 */ li r3, -128 +/* 803BDD50 003BACB0 48 00 00 D4 */ b lbl_803BDE24 +lbl_803BDD54: +/* 803BDD54 003BACB4 38 7C 00 00 */ addi r3, r28, 0 +/* 803BDD58 003BACB8 38 81 00 14 */ addi r4, r1, 0x14 +/* 803BDD5C 003BACBC 4B FF B0 45 */ bl __CARDGetControlBlock +/* 803BDD60 003BACC0 2C 03 00 00 */ cmpwi r3, 0 +/* 803BDD64 003BACC4 40 80 00 08 */ bge lbl_803BDD6C +/* 803BDD68 003BACC8 48 00 00 BC */ b lbl_803BDE24 +lbl_803BDD6C: +/* 803BDD6C 003BACCC 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BDD70 003BACD0 4B FF CC 01 */ bl __CARDGetDirBlock +/* 803BDD74 003BACD4 57 A0 30 32 */ slwi r0, r29, 6 +/* 803BDD78 003BACD8 7F E3 02 14 */ add r31, r3, r0 +/* 803BDD7C 003BACDC 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BDD80 003BACE0 7F E4 FB 78 */ mr r4, r31 +/* 803BDD84 003BACE4 4B FF F0 51 */ bl __CARDAccess +/* 803BDD88 003BACE8 7C 64 1B 79 */ or. r4, r3, r3 +/* 803BDD8C 003BACEC 40 80 00 10 */ bge lbl_803BDD9C +/* 803BDD90 003BACF0 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BDD94 003BACF4 4B FF B0 C5 */ bl __CARDPutControlBlock +/* 803BDD98 003BACF8 48 00 00 8C */ b lbl_803BDE24 +lbl_803BDD9C: +/* 803BDD9C 003BACFC 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BDDA0 003BAD00 7F A4 EB 78 */ mr r4, r29 +/* 803BDDA4 003BAD04 4B FF F4 15 */ bl __CARDIsOpened +/* 803BDDA8 003BAD08 2C 03 00 00 */ cmpwi r3, 0 +/* 803BDDAC 003BAD0C 41 82 00 14 */ beq lbl_803BDDC0 +/* 803BDDB0 003BAD10 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BDDB4 003BAD14 38 80 FF FF */ li r4, -1 +/* 803BDDB8 003BAD18 4B FF B0 A1 */ bl __CARDPutControlBlock +/* 803BDDBC 003BAD1C 48 00 00 68 */ b lbl_803BDE24 +lbl_803BDDC0: +/* 803BDDC0 003BAD20 A0 1F 00 36 */ lhz r0, 0x36(r31) +/* 803BDDC4 003BAD24 7F E3 FB 78 */ mr r3, r31 +/* 803BDDC8 003BAD28 80 C1 00 14 */ lwz r6, 0x14(r1) +/* 803BDDCC 003BAD2C 38 80 00 FF */ li r4, 0xff +/* 803BDDD0 003BAD30 38 A0 00 40 */ li r5, 0x40 +/* 803BDDD4 003BAD34 B0 06 00 BE */ sth r0, 0xbe(r6) +/* 803BDDD8 003BAD38 4B C4 55 D1 */ bl memset +/* 803BDDDC 003BAD3C 28 1E 00 00 */ cmplwi r30, 0 +/* 803BDDE0 003BAD40 41 82 00 0C */ beq lbl_803BDDEC +/* 803BDDE4 003BAD44 7F C0 F3 78 */ mr r0, r30 +/* 803BDDE8 003BAD48 48 00 00 0C */ b lbl_803BDDF4 +lbl_803BDDEC: +/* 803BDDEC 003BAD4C 3C 60 80 3B */ lis r3, __CARDDefaultApiCallback@ha +/* 803BDDF0 003BAD50 38 03 7E 74 */ addi r0, r3, __CARDDefaultApiCallback@l +lbl_803BDDF4: +/* 803BDDF4 003BAD54 80 A1 00 14 */ lwz r5, 0x14(r1) +/* 803BDDF8 003BAD58 3C 60 80 3C */ lis r3, DeleteCallback@ha +/* 803BDDFC 003BAD5C 38 83 DC 74 */ addi r4, r3, DeleteCallback@l +/* 803BDE00 003BAD60 90 05 00 D0 */ stw r0, 0xd0(r5) +/* 803BDE04 003BAD64 7F 83 E3 78 */ mr r3, r28 +/* 803BDE08 003BAD68 4B FF CD 09 */ bl __CARDUpdateDir +/* 803BDE0C 003BAD6C 7C 7F 1B 79 */ or. r31, r3, r3 +/* 803BDE10 003BAD70 40 80 00 10 */ bge lbl_803BDE20 +/* 803BDE14 003BAD74 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BDE18 003BAD78 7F E4 FB 78 */ mr r4, r31 +/* 803BDE1C 003BAD7C 4B FF B0 3D */ bl __CARDPutControlBlock +lbl_803BDE20: +/* 803BDE20 003BAD80 7F E3 FB 78 */ mr r3, r31 +lbl_803BDE24: +/* 803BDE24 003BAD84 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BDE28 003BAD88 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803BDE2C 003BAD8C 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803BDE30 003BAD90 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803BDE34 003BAD94 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803BDE38 003BAD98 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BDE3C 003BAD9C 7C 08 03 A6 */ mtlr r0 +/* 803BDE40 003BADA0 4E 80 00 20 */ blr + +.global CARDDeleteAsync +CARDDeleteAsync: +/* 803BDE44 003BADA4 7C 08 02 A6 */ mflr r0 +/* 803BDE48 003BADA8 90 01 00 04 */ stw r0, 4(r1) +/* 803BDE4C 003BADAC 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BDE50 003BADB0 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803BDE54 003BADB4 3B E3 00 00 */ addi r31, r3, 0 +/* 803BDE58 003BADB8 93 C1 00 28 */ stw r30, 0x28(r1) +/* 803BDE5C 003BADBC 3B C5 00 00 */ addi r30, r5, 0 +/* 803BDE60 003BADC0 93 A1 00 24 */ stw r29, 0x24(r1) +/* 803BDE64 003BADC4 3B A4 00 00 */ addi r29, r4, 0 +/* 803BDE68 003BADC8 38 81 00 18 */ addi r4, r1, 0x18 +/* 803BDE6C 003BADCC 4B FF AF 35 */ bl __CARDGetControlBlock +/* 803BDE70 003BADD0 2C 03 00 00 */ cmpwi r3, 0 +/* 803BDE74 003BADD4 40 80 00 08 */ bge lbl_803BDE7C +/* 803BDE78 003BADD8 48 00 00 C0 */ b lbl_803BDF38 +lbl_803BDE7C: +/* 803BDE7C 003BADDC 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BDE80 003BADE0 38 9D 00 00 */ addi r4, r29, 0 +/* 803BDE84 003BADE4 38 A1 00 14 */ addi r5, r1, 0x14 +/* 803BDE88 003BADE8 4B FF F0 15 */ bl sub_803bce9c +/* 803BDE8C 003BADEC 7C 64 1B 79 */ or. r4, r3, r3 +/* 803BDE90 003BADF0 40 80 00 10 */ bge lbl_803BDEA0 +/* 803BDE94 003BADF4 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BDE98 003BADF8 4B FF AF C1 */ bl __CARDPutControlBlock +/* 803BDE9C 003BADFC 48 00 00 9C */ b lbl_803BDF38 +lbl_803BDEA0: +/* 803BDEA0 003BAE00 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BDEA4 003BAE04 80 81 00 14 */ lwz r4, 0x14(r1) +/* 803BDEA8 003BAE08 4B FF F3 11 */ bl __CARDIsOpened +/* 803BDEAC 003BAE0C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BDEB0 003BAE10 41 82 00 14 */ beq lbl_803BDEC4 +/* 803BDEB4 003BAE14 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BDEB8 003BAE18 38 80 FF FF */ li r4, -1 +/* 803BDEBC 003BAE1C 4B FF AF 9D */ bl __CARDPutControlBlock +/* 803BDEC0 003BAE20 48 00 00 78 */ b lbl_803BDF38 +lbl_803BDEC4: +/* 803BDEC4 003BAE24 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BDEC8 003BAE28 4B FF CA A9 */ bl __CARDGetDirBlock +/* 803BDECC 003BAE2C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803BDED0 003BAE30 38 80 00 FF */ li r4, 0xff +/* 803BDED4 003BAE34 80 C1 00 18 */ lwz r6, 0x18(r1) +/* 803BDED8 003BAE38 38 A0 00 40 */ li r5, 0x40 +/* 803BDEDC 003BAE3C 54 00 30 32 */ slwi r0, r0, 6 +/* 803BDEE0 003BAE40 7C 63 02 14 */ add r3, r3, r0 +/* 803BDEE4 003BAE44 A0 03 00 36 */ lhz r0, 0x36(r3) +/* 803BDEE8 003BAE48 B0 06 00 BE */ sth r0, 0xbe(r6) +/* 803BDEEC 003BAE4C 4B C4 54 BD */ bl memset +/* 803BDEF0 003BAE50 28 1E 00 00 */ cmplwi r30, 0 +/* 803BDEF4 003BAE54 41 82 00 0C */ beq lbl_803BDF00 +/* 803BDEF8 003BAE58 7F C0 F3 78 */ mr r0, r30 +/* 803BDEFC 003BAE5C 48 00 00 0C */ b lbl_803BDF08 +lbl_803BDF00: +/* 803BDF00 003BAE60 3C 60 80 3B */ lis r3, __CARDDefaultApiCallback@ha +/* 803BDF04 003BAE64 38 03 7E 74 */ addi r0, r3, __CARDDefaultApiCallback@l +lbl_803BDF08: +/* 803BDF08 003BAE68 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 803BDF0C 003BAE6C 3C 60 80 3C */ lis r3, DeleteCallback@ha +/* 803BDF10 003BAE70 38 83 DC 74 */ addi r4, r3, DeleteCallback@l +/* 803BDF14 003BAE74 90 05 00 D0 */ stw r0, 0xd0(r5) +/* 803BDF18 003BAE78 7F E3 FB 78 */ mr r3, r31 +/* 803BDF1C 003BAE7C 4B FF CB F5 */ bl __CARDUpdateDir +/* 803BDF20 003BAE80 7C 7F 1B 79 */ or. r31, r3, r3 +/* 803BDF24 003BAE84 40 80 00 10 */ bge lbl_803BDF34 +/* 803BDF28 003BAE88 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BDF2C 003BAE8C 7F E4 FB 78 */ mr r4, r31 +/* 803BDF30 003BAE90 4B FF AF 29 */ bl __CARDPutControlBlock +lbl_803BDF34: +/* 803BDF34 003BAE94 7F E3 FB 78 */ mr r3, r31 +lbl_803BDF38: +/* 803BDF38 003BAE98 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BDF3C 003BAE9C 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803BDF40 003BAEA0 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 803BDF44 003BAEA4 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 803BDF48 003BAEA8 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BDF4C 003BAEAC 7C 08 03 A6 */ mtlr r0 +/* 803BDF50 003BAEB0 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDDir.s b/asm/Dolphin/CARD/CARDDir.s new file mode 100644 index 00000000..426a9ad4 --- /dev/null +++ b/asm/Dolphin/CARD/CARDDir.s @@ -0,0 +1,176 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __CARDGetDirBlock +__CARDGetDirBlock: +/* 803BA970 003B78D0 80 63 00 84 */ lwz r3, 0x84(r3) +/* 803BA974 003B78D4 4E 80 00 20 */ blr + +WriteCallback: +/* 803BA978 003B78D8 7C 08 02 A6 */ mflr r0 +/* 803BA97C 003B78DC 90 01 00 04 */ stw r0, 4(r1) +/* 803BA980 003B78E0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BA984 003B78E4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BA988 003B78E8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BA98C 003B78EC 7C 9E 23 79 */ or. r30, r4, r4 +/* 803BA990 003B78F0 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BA994 003B78F4 3B A3 00 00 */ addi r29, r3, 0 +/* 803BA998 003B78F8 1C BD 01 10 */ mulli r5, r29, 0x110 +/* 803BA99C 003B78FC 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BA9A0 003B7900 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BA9A4 003B7904 7F E0 2A 14 */ add r31, r0, r5 +/* 803BA9A8 003B7908 41 80 00 44 */ blt lbl_803BA9EC +/* 803BA9AC 003B790C 80 7F 00 80 */ lwz r3, 0x80(r31) +/* 803BA9B0 003B7910 80 1F 00 84 */ lwz r0, 0x84(r31) +/* 803BA9B4 003B7914 38 83 20 00 */ addi r4, r3, 0x2000 +/* 803BA9B8 003B7918 7C 00 20 40 */ cmplw r0, r4 +/* 803BA9BC 003B791C 38 03 40 00 */ addi r0, r3, 0x4000 +/* 803BA9C0 003B7920 40 82 00 18 */ bne lbl_803BA9D8 +/* 803BA9C4 003B7924 90 1F 00 84 */ stw r0, 0x84(r31) +/* 803BA9C8 003B7928 7C 03 03 78 */ mr r3, r0 +/* 803BA9CC 003B792C 38 A0 20 00 */ li r5, 0x2000 +/* 803BA9D0 003B7930 4B C4 8A C1 */ bl memcpy +/* 803BA9D4 003B7934 48 00 00 18 */ b lbl_803BA9EC +lbl_803BA9D8: +/* 803BA9D8 003B7938 90 9F 00 84 */ stw r4, 0x84(r31) +/* 803BA9DC 003B793C 38 64 00 00 */ addi r3, r4, 0 +/* 803BA9E0 003B7940 7C 04 03 78 */ mr r4, r0 +/* 803BA9E4 003B7944 38 A0 20 00 */ li r5, 0x2000 +/* 803BA9E8 003B7948 4B C4 8A A9 */ bl memcpy +lbl_803BA9EC: +/* 803BA9EC 003B794C 80 1F 00 D0 */ lwz r0, 0xd0(r31) +/* 803BA9F0 003B7950 28 00 00 00 */ cmplwi r0, 0 +/* 803BA9F4 003B7954 40 82 00 10 */ bne lbl_803BAA04 +/* 803BA9F8 003B7958 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA9FC 003B795C 38 9E 00 00 */ addi r4, r30, 0 +/* 803BAA00 003B7960 4B FF E4 59 */ bl __CARDPutControlBlock +lbl_803BAA04: +/* 803BAA04 003B7964 80 1F 00 D8 */ lwz r0, 0xd8(r31) +/* 803BAA08 003B7968 28 00 00 00 */ cmplwi r0, 0 +/* 803BAA0C 003B796C 7C 0C 03 78 */ mr r12, r0 +/* 803BAA10 003B7970 41 82 00 1C */ beq lbl_803BAA2C +/* 803BAA14 003B7974 38 00 00 00 */ li r0, 0 +/* 803BAA18 003B7978 7D 88 03 A6 */ mtlr r12 +/* 803BAA1C 003B797C 90 1F 00 D8 */ stw r0, 0xd8(r31) +/* 803BAA20 003B7980 38 7D 00 00 */ addi r3, r29, 0 +/* 803BAA24 003B7984 38 9E 00 00 */ addi r4, r30, 0 +/* 803BAA28 003B7988 4E 80 00 21 */ blrl +lbl_803BAA2C: +/* 803BAA2C 003B798C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BAA30 003B7990 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BAA34 003B7994 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BAA38 003B7998 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BAA3C 003B799C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BAA40 003B79A0 7C 08 03 A6 */ mtlr r0 +/* 803BAA44 003B79A4 4E 80 00 20 */ blr + +.global EraseCallback +EraseCallback: +/* 803BAA48 003B79A8 7C 08 02 A6 */ mflr r0 +/* 803BAA4C 003B79AC 90 01 00 04 */ stw r0, 4(r1) +/* 803BAA50 003B79B0 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BAA54 003B79B4 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803BAA58 003B79B8 3B E3 00 00 */ addi r31, r3, 0 +/* 803BAA5C 003B79BC 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BAA60 003B79C0 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803BAA64 003B79C4 1C BF 01 10 */ mulli r5, r31, 0x110 +/* 803BAA68 003B79C8 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803BAA6C 003B79CC 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BAA70 003B79D0 7C 9D 23 79 */ or. r29, r4, r4 +/* 803BAA74 003B79D4 7F C0 2A 14 */ add r30, r0, r5 +/* 803BAA78 003B79D8 41 80 00 3C */ blt lbl_803BAAB4 +/* 803BAA7C 003B79DC 80 BE 00 84 */ lwz r5, 0x84(r30) +/* 803BAA80 003B79E0 3C 60 80 3C */ lis r3, WriteCallback@ha +/* 803BAA84 003B79E4 80 1E 00 80 */ lwz r0, 0x80(r30) +/* 803BAA88 003B79E8 38 E3 A9 78 */ addi r7, r3, WriteCallback@l +/* 803BAA8C 003B79EC 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 803BAA90 003B79F0 7C 00 28 50 */ subf r0, r0, r5 +/* 803BAA94 003B79F4 54 00 9B 7E */ srwi r0, r0, 0xd +/* 803BAA98 003B79F8 7C 83 01 D6 */ mullw r4, r3, r0 +/* 803BAA9C 003B79FC 38 C5 00 00 */ addi r6, r5, 0 +/* 803BAAA0 003B7A00 38 7F 00 00 */ addi r3, r31, 0 +/* 803BAAA4 003B7A04 38 A0 20 00 */ li r5, 0x2000 +/* 803BAAA8 003B7A08 4B FF FA 61 */ bl __CARDWrite +/* 803BAAAC 003B7A0C 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BAAB0 003B7A10 40 80 00 44 */ bge lbl_803BAAF4 +lbl_803BAAB4: +/* 803BAAB4 003B7A14 80 1E 00 D0 */ lwz r0, 0xd0(r30) +/* 803BAAB8 003B7A18 28 00 00 00 */ cmplwi r0, 0 +/* 803BAABC 003B7A1C 40 82 00 10 */ bne lbl_803BAACC +/* 803BAAC0 003B7A20 38 7E 00 00 */ addi r3, r30, 0 +/* 803BAAC4 003B7A24 38 9D 00 00 */ addi r4, r29, 0 +/* 803BAAC8 003B7A28 4B FF E3 91 */ bl __CARDPutControlBlock +lbl_803BAACC: +/* 803BAACC 003B7A2C 80 1E 00 D8 */ lwz r0, 0xd8(r30) +/* 803BAAD0 003B7A30 28 00 00 00 */ cmplwi r0, 0 +/* 803BAAD4 003B7A34 7C 0C 03 78 */ mr r12, r0 +/* 803BAAD8 003B7A38 41 82 00 1C */ beq lbl_803BAAF4 +/* 803BAADC 003B7A3C 38 00 00 00 */ li r0, 0 +/* 803BAAE0 003B7A40 7D 88 03 A6 */ mtlr r12 +/* 803BAAE4 003B7A44 90 1E 00 D8 */ stw r0, 0xd8(r30) +/* 803BAAE8 003B7A48 38 7F 00 00 */ addi r3, r31, 0 +/* 803BAAEC 003B7A4C 38 9D 00 00 */ addi r4, r29, 0 +/* 803BAAF0 003B7A50 4E 80 00 21 */ blrl +lbl_803BAAF4: +/* 803BAAF4 003B7A54 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BAAF8 003B7A58 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803BAAFC 003B7A5C 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803BAB00 003B7A60 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803BAB04 003B7A64 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BAB08 003B7A68 7C 08 03 A6 */ mtlr r0 +/* 803BAB0C 003B7A6C 4E 80 00 20 */ blr + +.global __CARDUpdateDir +__CARDUpdateDir: +/* 803BAB10 003B7A70 7C 08 02 A6 */ mflr r0 +/* 803BAB14 003B7A74 90 01 00 04 */ stw r0, 4(r1) +/* 803BAB18 003B7A78 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BAB1C 003B7A7C 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803BAB20 003B7A80 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803BAB24 003B7A84 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803BAB28 003B7A88 3B A4 00 00 */ addi r29, r4, 0 +/* 803BAB2C 003B7A8C 93 81 00 18 */ stw r28, 0x18(r1) +/* 803BAB30 003B7A90 3B 83 00 00 */ addi r28, r3, 0 +/* 803BAB34 003B7A94 1C BC 01 10 */ mulli r5, r28, 0x110 +/* 803BAB38 003B7A98 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BAB3C 003B7A9C 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BAB40 003B7AA0 7F C0 2A 14 */ add r30, r0, r5 +/* 803BAB44 003B7AA4 80 1E 00 00 */ lwz r0, 0(r30) +/* 803BAB48 003B7AA8 2C 00 00 00 */ cmpwi r0, 0 +/* 803BAB4C 003B7AAC 40 82 00 0C */ bne lbl_803BAB58 +/* 803BAB50 003B7AB0 38 60 FF FD */ li r3, -3 +/* 803BAB54 003B7AB4 48 00 00 60 */ b lbl_803BABB4 +lbl_803BAB58: +/* 803BAB58 003B7AB8 83 FE 00 84 */ lwz r31, 0x84(r30) +/* 803BAB5C 003B7ABC 38 80 1F FC */ li r4, 0x1ffc +/* 803BAB60 003B7AC0 A8 BF 1F FA */ lha r5, 0x1ffa(r31) +/* 803BAB64 003B7AC4 38 DF 1F C0 */ addi r6, r31, 0x1fc0 +/* 803BAB68 003B7AC8 38 7F 00 00 */ addi r3, r31, 0 +/* 803BAB6C 003B7ACC 38 05 00 01 */ addi r0, r5, 1 +/* 803BAB70 003B7AD0 B0 1F 1F FA */ sth r0, 0x1ffa(r31) +/* 803BAB74 003B7AD4 38 A6 00 3C */ addi r5, r6, 0x3c +/* 803BAB78 003B7AD8 38 C6 00 3E */ addi r6, r6, 0x3e +/* 803BAB7C 003B7ADC 48 00 00 59 */ bl __CARDCheckSum +/* 803BAB80 003B7AE0 38 7F 00 00 */ addi r3, r31, 0 +/* 803BAB84 003B7AE4 38 80 20 00 */ li r4, 0x2000 +/* 803BAB88 003B7AE8 4B FC 3F 59 */ bl DCStoreRange +/* 803BAB8C 003B7AEC 93 BE 00 D8 */ stw r29, 0xd8(r30) +/* 803BAB90 003B7AF0 3C 60 80 3C */ lis r3, EraseCallback@ha +/* 803BAB94 003B7AF4 38 A3 AA 48 */ addi r5, r3, EraseCallback@l +/* 803BAB98 003B7AF8 80 1E 00 80 */ lwz r0, 0x80(r30) +/* 803BAB9C 003B7AFC 7F 83 E3 78 */ mr r3, r28 +/* 803BABA0 003B7B00 80 9E 00 0C */ lwz r4, 0xc(r30) +/* 803BABA4 003B7B04 7C 00 F8 50 */ subf r0, r0, r31 +/* 803BABA8 003B7B08 54 00 9B 7E */ srwi r0, r0, 0xd +/* 803BABAC 003B7B0C 7C 84 01 D6 */ mullw r4, r4, r0 +/* 803BABB0 003B7B10 4B FF E0 25 */ bl __CARDEraseSector +lbl_803BABB4: +/* 803BABB4 003B7B14 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BABB8 003B7B18 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803BABBC 003B7B1C 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803BABC0 003B7B20 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803BABC4 003B7B24 83 81 00 18 */ lwz r28, 0x18(r1) +/* 803BABC8 003B7B28 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BABCC 003B7B2C 7C 08 03 A6 */ mtlr r0 +/* 803BABD0 003B7B30 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDFormat.s b/asm/Dolphin/CARD/CARDFormat.s new file mode 100644 index 00000000..32b9d48d --- /dev/null +++ b/asm/Dolphin/CARD/CARDFormat.s @@ -0,0 +1,535 @@ +.include "macros.inc" + +.section .text, "ax" + +FormatCallback: +/* 803BC588 003B94E8 7C 08 02 A6 */ mflr r0 +/* 803BC58C 003B94EC 90 01 00 04 */ stw r0, 4(r1) +/* 803BC590 003B94F0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BC594 003B94F4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BC598 003B94F8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BC59C 003B94FC 3B C3 00 00 */ addi r30, r3, 0 +/* 803BC5A0 003B9500 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BC5A4 003B9504 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BC5A8 003B9508 1C BE 01 10 */ mulli r5, r30, 0x110 +/* 803BC5AC 003B950C 93 81 00 10 */ stw r28, 0x10(r1) +/* 803BC5B0 003B9510 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BC5B4 003B9514 7C 9C 23 79 */ or. r28, r4, r4 +/* 803BC5B8 003B9518 7F E0 2A 14 */ add r31, r0, r5 +/* 803BC5BC 003B951C 41 80 00 C4 */ blt lbl_803BC680 +/* 803BC5C0 003B9520 80 7F 00 28 */ lwz r3, 0x28(r31) +/* 803BC5C4 003B9524 38 03 00 01 */ addi r0, r3, 1 +/* 803BC5C8 003B9528 90 1F 00 28 */ stw r0, 0x28(r31) +/* 803BC5CC 003B952C 80 9F 00 28 */ lwz r4, 0x28(r31) +/* 803BC5D0 003B9530 2C 04 00 05 */ cmpwi r4, 5 +/* 803BC5D4 003B9534 40 80 00 28 */ bge lbl_803BC5FC +/* 803BC5D8 003B9538 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803BC5DC 003B953C 3C 60 80 3C */ lis r3, FormatCallback@ha +/* 803BC5E0 003B9540 38 A3 C5 88 */ addi r5, r3, FormatCallback@l +/* 803BC5E4 003B9544 7C 80 21 D6 */ mullw r4, r0, r4 +/* 803BC5E8 003B9548 38 7E 00 00 */ addi r3, r30, 0 +/* 803BC5EC 003B954C 4B FF C5 E9 */ bl __CARDEraseSector +/* 803BC5F0 003B9550 7C 7C 1B 79 */ or. r28, r3, r3 +/* 803BC5F4 003B9554 41 80 00 8C */ blt lbl_803BC680 +/* 803BC5F8 003B9558 48 00 00 B4 */ b lbl_803BC6AC +lbl_803BC5FC: +/* 803BC5FC 003B955C 2C 04 00 0A */ cmpwi r4, 0xa +/* 803BC600 003B9560 40 80 00 3C */ bge lbl_803BC63C +/* 803BC604 003B9564 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803BC608 003B9568 38 C4 FF FB */ addi r6, r4, -5 +/* 803BC60C 003B956C 3C 60 80 3C */ lis r3, FormatCallback@ha +/* 803BC610 003B9570 80 BF 00 80 */ lwz r5, 0x80(r31) +/* 803BC614 003B9574 7C 80 31 D6 */ mullw r4, r0, r6 +/* 803BC618 003B9578 54 C0 68 24 */ slwi r0, r6, 0xd +/* 803BC61C 003B957C 38 E3 C5 88 */ addi r7, r3, FormatCallback@l +/* 803BC620 003B9580 7C C5 02 14 */ add r6, r5, r0 +/* 803BC624 003B9584 38 7E 00 00 */ addi r3, r30, 0 +/* 803BC628 003B9588 38 A0 20 00 */ li r5, 0x2000 +/* 803BC62C 003B958C 4B FF DE DD */ bl __CARDWrite +/* 803BC630 003B9590 7C 7C 1B 79 */ or. r28, r3, r3 +/* 803BC634 003B9594 41 80 00 4C */ blt lbl_803BC680 +/* 803BC638 003B9598 48 00 00 74 */ b lbl_803BC6AC +lbl_803BC63C: +/* 803BC63C 003B959C 80 7F 00 80 */ lwz r3, 0x80(r31) +/* 803BC640 003B95A0 38 A0 20 00 */ li r5, 0x2000 +/* 803BC644 003B95A4 38 03 20 00 */ addi r0, r3, 0x2000 +/* 803BC648 003B95A8 90 1F 00 84 */ stw r0, 0x84(r31) +/* 803BC64C 003B95AC 80 9F 00 80 */ lwz r4, 0x80(r31) +/* 803BC650 003B95B0 80 7F 00 84 */ lwz r3, 0x84(r31) +/* 803BC654 003B95B4 38 84 40 00 */ addi r4, r4, 0x4000 +/* 803BC658 003B95B8 4B C4 6E 39 */ bl memcpy +/* 803BC65C 003B95BC 80 7F 00 80 */ lwz r3, 0x80(r31) +/* 803BC660 003B95C0 38 A0 20 00 */ li r5, 0x2000 +/* 803BC664 003B95C4 38 03 60 00 */ addi r0, r3, 0x6000 +/* 803BC668 003B95C8 90 1F 00 88 */ stw r0, 0x88(r31) +/* 803BC66C 003B95CC 80 9F 00 80 */ lwz r4, 0x80(r31) +/* 803BC670 003B95D0 80 7F 00 88 */ lwz r3, 0x88(r31) +/* 803BC674 003B95D4 3C 84 00 01 */ addis r4, r4, 1 +/* 803BC678 003B95D8 38 84 80 00 */ addi r4, r4, -32768 +/* 803BC67C 003B95DC 4B C4 6E 15 */ bl memcpy +lbl_803BC680: +/* 803BC680 003B95E0 83 BF 00 D0 */ lwz r29, 0xd0(r31) +/* 803BC684 003B95E4 38 00 00 00 */ li r0, 0 +/* 803BC688 003B95E8 38 7F 00 00 */ addi r3, r31, 0 +/* 803BC68C 003B95EC 90 1F 00 D0 */ stw r0, 0xd0(r31) +/* 803BC690 003B95F0 7F 84 E3 78 */ mr r4, r28 +/* 803BC694 003B95F4 4B FF C7 C5 */ bl __CARDPutControlBlock +/* 803BC698 003B95F8 39 9D 00 00 */ addi r12, r29, 0 +/* 803BC69C 003B95FC 7D 88 03 A6 */ mtlr r12 +/* 803BC6A0 003B9600 38 7E 00 00 */ addi r3, r30, 0 +/* 803BC6A4 003B9604 38 9C 00 00 */ addi r4, r28, 0 +/* 803BC6A8 003B9608 4E 80 00 21 */ blrl +lbl_803BC6AC: +/* 803BC6AC 003B960C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BC6B0 003B9610 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BC6B4 003B9614 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BC6B8 003B9618 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BC6BC 003B961C 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803BC6C0 003B9620 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BC6C4 003B9624 7C 08 03 A6 */ mtlr r0 +/* 803BC6C8 003B9628 4E 80 00 20 */ blr + +.global __CARDFormatRegionAsync +__CARDFormatRegionAsync: +/* 803BC6CC 003B962C 7C 08 02 A6 */ mflr r0 +/* 803BC6D0 003B9630 90 01 00 04 */ stw r0, 4(r1) +/* 803BC6D4 003B9634 94 21 FF A8 */ stwu r1, -0x58(r1) +/* 803BC6D8 003B9638 BE 41 00 20 */ stmw r18, 0x20(r1) +/* 803BC6DC 003B963C 3A 84 00 00 */ addi r20, r4, 0 +/* 803BC6E0 003B9640 3A C3 00 00 */ addi r22, r3, 0 +/* 803BC6E4 003B9644 3A 65 00 00 */ addi r19, r5, 0 +/* 803BC6E8 003B9648 38 81 00 18 */ addi r4, r1, 0x18 +/* 803BC6EC 003B964C 4B FF C6 B5 */ bl __CARDGetControlBlock +/* 803BC6F0 003B9650 2C 03 00 00 */ cmpwi r3, 0 +/* 803BC6F4 003B9654 40 80 00 08 */ bge lbl_803BC6FC +/* 803BC6F8 003B9658 48 00 06 18 */ b lbl_803BCD10 +lbl_803BC6FC: +/* 803BC6FC 003B965C 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BC700 003B9660 38 80 00 FF */ li r4, 0xff +/* 803BC704 003B9664 38 A0 20 00 */ li r5, 0x2000 +/* 803BC708 003B9668 83 63 00 80 */ lwz r27, 0x80(r3) +/* 803BC70C 003B966C 7F 63 DB 78 */ mr r3, r27 +/* 803BC710 003B9670 4B C4 6C 99 */ bl memset +/* 803BC714 003B9674 3C 60 CC 00 */ lis r3, 0xCC00206E@ha +/* 803BC718 003B9678 A2 43 20 6E */ lhz r18, 0xCC00206E@l(r3) +/* 803BC71C 003B967C B2 9B 00 24 */ sth r20, 0x24(r27) +/* 803BC720 003B9680 4B FC 73 B5 */ bl __OSLockSram +/* 803BC724 003B9684 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803BC728 003B9688 90 1B 00 14 */ stw r0, 0x14(r27) +/* 803BC72C 003B968C 88 03 00 12 */ lbz r0, 0x12(r3) +/* 803BC730 003B9690 38 60 00 00 */ li r3, 0 +/* 803BC734 003B9694 90 1B 00 18 */ stw r0, 0x18(r27) +/* 803BC738 003B9698 4B FC 77 5D */ bl __OSUnlockSram +/* 803BC73C 003B969C 4B FC 8C 6D */ bl OSGetTime +/* 803BC740 003B96A0 3A A4 00 00 */ addi r21, r4, 0 +/* 803BC744 003B96A4 3A 83 00 00 */ addi r20, r3, 0 +/* 803BC748 003B96A8 3B 55 00 00 */ addi r26, r21, 0 +/* 803BC74C 003B96AC 3B D4 00 00 */ addi r30, r20, 0 +/* 803BC750 003B96B0 4B FC 73 E1 */ bl __OSLockSramEx +/* 803BC754 003B96B4 1C 16 00 0C */ mulli r0, r22, 0xc +/* 803BC758 003B96B8 7F 23 02 14 */ add r25, r3, r0 +/* 803BC75C 003B96BC 3C 60 41 C6 */ lis r3, 0x41C64E6D@ha +/* 803BC760 003B96C0 3B 19 00 00 */ addi r24, r25, 0 +/* 803BC764 003B96C4 3B E3 4E 6D */ addi r31, r3, 0x41C64E6D@l +/* 803BC768 003B96C8 3B 80 00 00 */ li r28, 0 +/* 803BC76C 003B96CC 3A E0 00 04 */ li r23, 4 +/* 803BC770 003B96D0 48 00 03 74 */ b lbl_803BCAE4 +lbl_803BC774: +/* 803BC774 003B96D4 7C BE F9 D6 */ mullw r5, r30, r31 +/* 803BC778 003B96D8 7C 7A F8 16 */ mulhwu r3, r26, r31 +/* 803BC77C 003B96DC 3B C0 00 00 */ li r30, 0 +/* 803BC780 003B96E0 7C A5 1A 14 */ add r5, r5, r3 +/* 803BC784 003B96E4 7C 7A F1 D6 */ mullw r3, r26, r30 +/* 803BC788 003B96E8 7C 1A F9 D6 */ mullw r0, r26, r31 +/* 803BC78C 003B96EC 3B A0 30 39 */ li r29, 0x3039 +/* 803BC790 003B96F0 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC794 003B96F4 7C 05 1A 14 */ add r0, r5, r3 +/* 803BC798 003B96F8 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC79C 003B96FC 38 A0 00 10 */ li r5, 0x10 +/* 803BC7A0 003B9700 4B FC D7 9D */ bl __shr2i +/* 803BC7A4 003B9704 7C C3 F9 D6 */ mullw r6, r3, r31 +/* 803BC7A8 003B9708 88 18 00 00 */ lbz r0, 0(r24) +/* 803BC7AC 003B970C 7C A4 F8 16 */ mulhwu r5, r4, r31 +/* 803BC7B0 003B9710 7C C6 2A 14 */ add r6, r6, r5 +/* 803BC7B4 003B9714 7D 04 00 14 */ addc r8, r4, r0 +/* 803BC7B8 003B9718 7F 87 07 34 */ extsh r7, r28 +/* 803BC7BC 003B971C 7C A4 F1 D6 */ mullw r5, r4, r30 +/* 803BC7C0 003B9720 7D 1B 39 AE */ stbx r8, r27, r7 +/* 803BC7C4 003B9724 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC7C8 003B9728 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC7CC 003B972C 7C 06 2A 14 */ add r0, r6, r5 +/* 803BC7D0 003B9730 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC7D4 003B9734 38 A0 00 10 */ li r5, 0x10 +/* 803BC7D8 003B9738 4B FC D7 65 */ bl __shr2i +/* 803BC7DC 003B973C 3B 40 7F FF */ li r26, 0x7fff +/* 803BC7E0 003B9740 7C 60 F0 38 */ and r0, r3, r30 +/* 803BC7E4 003B9744 7C 84 D0 38 */ and r4, r4, r26 +/* 803BC7E8 003B9748 7C A0 F9 D6 */ mullw r5, r0, r31 +/* 803BC7EC 003B974C 7C 64 F8 16 */ mulhwu r3, r4, r31 +/* 803BC7F0 003B9750 7C A5 1A 14 */ add r5, r5, r3 +/* 803BC7F4 003B9754 7C 64 F1 D6 */ mullw r3, r4, r30 +/* 803BC7F8 003B9758 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC7FC 003B975C 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC800 003B9760 7C 05 1A 14 */ add r0, r5, r3 +/* 803BC804 003B9764 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC808 003B9768 38 A0 00 10 */ li r5, 0x10 +/* 803BC80C 003B976C 4B FC D7 31 */ bl __shr2i +/* 803BC810 003B9770 7C C3 F9 D6 */ mullw r6, r3, r31 +/* 803BC814 003B9774 7C A4 F8 16 */ mulhwu r5, r4, r31 +/* 803BC818 003B9778 39 3C 00 01 */ addi r9, r28, 1 +/* 803BC81C 003B977C 7D 29 07 34 */ extsh r9, r9 +/* 803BC820 003B9780 7C 19 48 AE */ lbzx r0, r25, r9 +/* 803BC824 003B9784 7C C6 2A 14 */ add r6, r6, r5 +/* 803BC828 003B9788 7C A4 F1 D6 */ mullw r5, r4, r30 +/* 803BC82C 003B978C 7C E4 00 14 */ addc r7, r4, r0 +/* 803BC830 003B9790 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC834 003B9794 7C FB 49 AE */ stbx r7, r27, r9 +/* 803BC838 003B9798 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC83C 003B979C 7C 06 2A 14 */ add r0, r6, r5 +/* 803BC840 003B97A0 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC844 003B97A4 38 A0 00 10 */ li r5, 0x10 +/* 803BC848 003B97A8 4B FC D6 F5 */ bl __shr2i +/* 803BC84C 003B97AC 7C 60 F0 38 */ and r0, r3, r30 +/* 803BC850 003B97B0 7C 84 D0 38 */ and r4, r4, r26 +/* 803BC854 003B97B4 7C A0 F9 D6 */ mullw r5, r0, r31 +/* 803BC858 003B97B8 7C 64 F8 16 */ mulhwu r3, r4, r31 +/* 803BC85C 003B97BC 7C A5 1A 14 */ add r5, r5, r3 +/* 803BC860 003B97C0 7C 64 F1 D6 */ mullw r3, r4, r30 +/* 803BC864 003B97C4 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC868 003B97C8 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC86C 003B97CC 7C 05 1A 14 */ add r0, r5, r3 +/* 803BC870 003B97D0 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC874 003B97D4 38 A0 00 10 */ li r5, 0x10 +/* 803BC878 003B97D8 4B FC D6 C5 */ bl __shr2i +/* 803BC87C 003B97DC 7C C3 F9 D6 */ mullw r6, r3, r31 +/* 803BC880 003B97E0 7C A4 F8 16 */ mulhwu r5, r4, r31 +/* 803BC884 003B97E4 39 3C 00 02 */ addi r9, r28, 2 +/* 803BC888 003B97E8 7D 29 07 34 */ extsh r9, r9 +/* 803BC88C 003B97EC 7C 19 48 AE */ lbzx r0, r25, r9 +/* 803BC890 003B97F0 7C C6 2A 14 */ add r6, r6, r5 +/* 803BC894 003B97F4 7C A4 F1 D6 */ mullw r5, r4, r30 +/* 803BC898 003B97F8 7C E4 00 14 */ addc r7, r4, r0 +/* 803BC89C 003B97FC 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC8A0 003B9800 7C FB 49 AE */ stbx r7, r27, r9 +/* 803BC8A4 003B9804 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC8A8 003B9808 7C 06 2A 14 */ add r0, r6, r5 +/* 803BC8AC 003B980C 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC8B0 003B9810 38 A0 00 10 */ li r5, 0x10 +/* 803BC8B4 003B9814 4B FC D6 89 */ bl __shr2i +/* 803BC8B8 003B9818 7C 60 F0 38 */ and r0, r3, r30 +/* 803BC8BC 003B981C 7C 84 D0 38 */ and r4, r4, r26 +/* 803BC8C0 003B9820 7C A0 F9 D6 */ mullw r5, r0, r31 +/* 803BC8C4 003B9824 7C 64 F8 16 */ mulhwu r3, r4, r31 +/* 803BC8C8 003B9828 7C A5 1A 14 */ add r5, r5, r3 +/* 803BC8CC 003B982C 7C 64 F1 D6 */ mullw r3, r4, r30 +/* 803BC8D0 003B9830 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC8D4 003B9834 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC8D8 003B9838 7C 05 1A 14 */ add r0, r5, r3 +/* 803BC8DC 003B983C 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC8E0 003B9840 38 A0 00 10 */ li r5, 0x10 +/* 803BC8E4 003B9844 4B FC D6 59 */ bl __shr2i +/* 803BC8E8 003B9848 7C C3 F9 D6 */ mullw r6, r3, r31 +/* 803BC8EC 003B984C 7C A4 F8 16 */ mulhwu r5, r4, r31 +/* 803BC8F0 003B9850 39 3C 00 03 */ addi r9, r28, 3 +/* 803BC8F4 003B9854 7D 29 07 34 */ extsh r9, r9 +/* 803BC8F8 003B9858 7C 19 48 AE */ lbzx r0, r25, r9 +/* 803BC8FC 003B985C 7C C6 2A 14 */ add r6, r6, r5 +/* 803BC900 003B9860 7C A4 F1 D6 */ mullw r5, r4, r30 +/* 803BC904 003B9864 7C E4 00 14 */ addc r7, r4, r0 +/* 803BC908 003B9868 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC90C 003B986C 7C FB 49 AE */ stbx r7, r27, r9 +/* 803BC910 003B9870 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC914 003B9874 7C 06 2A 14 */ add r0, r6, r5 +/* 803BC918 003B9878 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC91C 003B987C 38 A0 00 10 */ li r5, 0x10 +/* 803BC920 003B9880 4B FC D6 1D */ bl __shr2i +/* 803BC924 003B9884 7C 60 F0 38 */ and r0, r3, r30 +/* 803BC928 003B9888 7C 84 D0 38 */ and r4, r4, r26 +/* 803BC92C 003B988C 7C A0 F9 D6 */ mullw r5, r0, r31 +/* 803BC930 003B9890 7C 64 F8 16 */ mulhwu r3, r4, r31 +/* 803BC934 003B9894 7C A5 1A 14 */ add r5, r5, r3 +/* 803BC938 003B9898 7C 64 F1 D6 */ mullw r3, r4, r30 +/* 803BC93C 003B989C 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC940 003B98A0 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC944 003B98A4 7C 05 1A 14 */ add r0, r5, r3 +/* 803BC948 003B98A8 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC94C 003B98AC 38 A0 00 10 */ li r5, 0x10 +/* 803BC950 003B98B0 4B FC D5 ED */ bl __shr2i +/* 803BC954 003B98B4 7C C3 F9 D6 */ mullw r6, r3, r31 +/* 803BC958 003B98B8 7C A4 F8 16 */ mulhwu r5, r4, r31 +/* 803BC95C 003B98BC 39 3C 00 04 */ addi r9, r28, 4 +/* 803BC960 003B98C0 7D 29 07 34 */ extsh r9, r9 +/* 803BC964 003B98C4 7C 19 48 AE */ lbzx r0, r25, r9 +/* 803BC968 003B98C8 7C C6 2A 14 */ add r6, r6, r5 +/* 803BC96C 003B98CC 7C A4 F1 D6 */ mullw r5, r4, r30 +/* 803BC970 003B98D0 7C E4 00 14 */ addc r7, r4, r0 +/* 803BC974 003B98D4 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC978 003B98D8 7C FB 49 AE */ stbx r7, r27, r9 +/* 803BC97C 003B98DC 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC980 003B98E0 7C 06 2A 14 */ add r0, r6, r5 +/* 803BC984 003B98E4 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC988 003B98E8 38 A0 00 10 */ li r5, 0x10 +/* 803BC98C 003B98EC 4B FC D5 B1 */ bl __shr2i +/* 803BC990 003B98F0 7C 60 F0 38 */ and r0, r3, r30 +/* 803BC994 003B98F4 7C 84 D0 38 */ and r4, r4, r26 +/* 803BC998 003B98F8 7C A0 F9 D6 */ mullw r5, r0, r31 +/* 803BC99C 003B98FC 7C 64 F8 16 */ mulhwu r3, r4, r31 +/* 803BC9A0 003B9900 7C A5 1A 14 */ add r5, r5, r3 +/* 803BC9A4 003B9904 7C 64 F1 D6 */ mullw r3, r4, r30 +/* 803BC9A8 003B9908 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC9AC 003B990C 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC9B0 003B9910 7C 05 1A 14 */ add r0, r5, r3 +/* 803BC9B4 003B9914 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC9B8 003B9918 38 A0 00 10 */ li r5, 0x10 +/* 803BC9BC 003B991C 4B FC D5 81 */ bl __shr2i +/* 803BC9C0 003B9920 7C C3 F9 D6 */ mullw r6, r3, r31 +/* 803BC9C4 003B9924 7C A4 F8 16 */ mulhwu r5, r4, r31 +/* 803BC9C8 003B9928 39 3C 00 05 */ addi r9, r28, 5 +/* 803BC9CC 003B992C 7D 29 07 34 */ extsh r9, r9 +/* 803BC9D0 003B9930 7C 19 48 AE */ lbzx r0, r25, r9 +/* 803BC9D4 003B9934 7C C6 2A 14 */ add r6, r6, r5 +/* 803BC9D8 003B9938 7C A4 F1 D6 */ mullw r5, r4, r30 +/* 803BC9DC 003B993C 7C E4 00 14 */ addc r7, r4, r0 +/* 803BC9E0 003B9940 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BC9E4 003B9944 7C FB 49 AE */ stbx r7, r27, r9 +/* 803BC9E8 003B9948 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BC9EC 003B994C 7C 06 2A 14 */ add r0, r6, r5 +/* 803BC9F0 003B9950 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BC9F4 003B9954 38 A0 00 10 */ li r5, 0x10 +/* 803BC9F8 003B9958 4B FC D5 45 */ bl __shr2i +/* 803BC9FC 003B995C 7C 60 F0 38 */ and r0, r3, r30 +/* 803BCA00 003B9960 7C 84 D0 38 */ and r4, r4, r26 +/* 803BCA04 003B9964 7C A0 F9 D6 */ mullw r5, r0, r31 +/* 803BCA08 003B9968 7C 64 F8 16 */ mulhwu r3, r4, r31 +/* 803BCA0C 003B996C 7C A5 1A 14 */ add r5, r5, r3 +/* 803BCA10 003B9970 7C 64 F1 D6 */ mullw r3, r4, r30 +/* 803BCA14 003B9974 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BCA18 003B9978 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BCA1C 003B997C 7C 05 1A 14 */ add r0, r5, r3 +/* 803BCA20 003B9980 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BCA24 003B9984 38 A0 00 10 */ li r5, 0x10 +/* 803BCA28 003B9988 4B FC D5 15 */ bl __shr2i +/* 803BCA2C 003B998C 7C C3 F9 D6 */ mullw r6, r3, r31 +/* 803BCA30 003B9990 7C A4 F8 16 */ mulhwu r5, r4, r31 +/* 803BCA34 003B9994 39 3C 00 06 */ addi r9, r28, 6 +/* 803BCA38 003B9998 7D 29 07 34 */ extsh r9, r9 +/* 803BCA3C 003B999C 7C 19 48 AE */ lbzx r0, r25, r9 +/* 803BCA40 003B99A0 7C C6 2A 14 */ add r6, r6, r5 +/* 803BCA44 003B99A4 7C A4 F1 D6 */ mullw r5, r4, r30 +/* 803BCA48 003B99A8 7C E4 00 14 */ addc r7, r4, r0 +/* 803BCA4C 003B99AC 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BCA50 003B99B0 7C FB 49 AE */ stbx r7, r27, r9 +/* 803BCA54 003B99B4 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BCA58 003B99B8 7C 06 2A 14 */ add r0, r6, r5 +/* 803BCA5C 003B99BC 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BCA60 003B99C0 38 A0 00 10 */ li r5, 0x10 +/* 803BCA64 003B99C4 4B FC D4 D9 */ bl __shr2i +/* 803BCA68 003B99C8 7C 60 F0 38 */ and r0, r3, r30 +/* 803BCA6C 003B99CC 7C 84 D0 38 */ and r4, r4, r26 +/* 803BCA70 003B99D0 7C A0 F9 D6 */ mullw r5, r0, r31 +/* 803BCA74 003B99D4 7C 64 F8 16 */ mulhwu r3, r4, r31 +/* 803BCA78 003B99D8 7C A5 1A 14 */ add r5, r5, r3 +/* 803BCA7C 003B99DC 7C 64 F1 D6 */ mullw r3, r4, r30 +/* 803BCA80 003B99E0 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BCA84 003B99E4 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BCA88 003B99E8 7C 05 1A 14 */ add r0, r5, r3 +/* 803BCA8C 003B99EC 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BCA90 003B99F0 38 A0 00 10 */ li r5, 0x10 +/* 803BCA94 003B99F4 4B FC D4 A9 */ bl __shr2i +/* 803BCA98 003B99F8 7C C3 F9 D6 */ mullw r6, r3, r31 +/* 803BCA9C 003B99FC 7C A4 F8 16 */ mulhwu r5, r4, r31 +/* 803BCAA0 003B9A00 39 3C 00 07 */ addi r9, r28, 7 +/* 803BCAA4 003B9A04 7D 29 07 34 */ extsh r9, r9 +/* 803BCAA8 003B9A08 7C 19 48 AE */ lbzx r0, r25, r9 +/* 803BCAAC 003B9A0C 7C C6 2A 14 */ add r6, r6, r5 +/* 803BCAB0 003B9A10 7C A4 F1 D6 */ mullw r5, r4, r30 +/* 803BCAB4 003B9A14 7C E4 00 14 */ addc r7, r4, r0 +/* 803BCAB8 003B9A18 7C 04 F9 D6 */ mullw r0, r4, r31 +/* 803BCABC 003B9A1C 7C FB 49 AE */ stbx r7, r27, r9 +/* 803BCAC0 003B9A20 7C 80 E8 14 */ addc r4, r0, r29 +/* 803BCAC4 003B9A24 7C 06 2A 14 */ add r0, r6, r5 +/* 803BCAC8 003B9A28 7C 60 F1 14 */ adde r3, r0, r30 +/* 803BCACC 003B9A2C 38 A0 00 10 */ li r5, 0x10 +/* 803BCAD0 003B9A30 4B FC D4 6D */ bl __shr2i +/* 803BCAD4 003B9A34 7C 9A D0 38 */ and r26, r4, r26 +/* 803BCAD8 003B9A38 7C 7E F0 38 */ and r30, r3, r30 +/* 803BCADC 003B9A3C 3B 18 00 08 */ addi r24, r24, 8 +/* 803BCAE0 003B9A40 3B 9C 00 08 */ addi r28, r28, 8 +lbl_803BCAE4: +/* 803BCAE4 003B9A44 7F 80 07 34 */ extsh r0, r28 +/* 803BCAE8 003B9A48 7C 00 B8 00 */ cmpw r0, r23 +/* 803BCAEC 003B9A4C 41 80 FC 88 */ blt lbl_803BC774 +/* 803BCAF0 003B9A50 48 00 02 18 */ b lbl_803BCD08 +lbl_803BCAF4: +/* 803BCAF4 003B9A54 3C 60 41 C6 */ lis r3, 0x41C64E6D@ha +/* 803BCAF8 003B9A58 3B 23 4E 6D */ addi r25, r3, 0x41C64E6D@l +/* 803BCAFC 003B9A5C 48 00 00 80 */ b lbl_803BCB7C +lbl_803BCB00: +/* 803BCB00 003B9A60 7C BE C9 D6 */ mullw r5, r30, r25 +/* 803BCB04 003B9A64 7C 7A C8 16 */ mulhwu r3, r26, r25 +/* 803BCB08 003B9A68 3B 00 00 00 */ li r24, 0 +/* 803BCB0C 003B9A6C 7C A5 1A 14 */ add r5, r5, r3 +/* 803BCB10 003B9A70 7C 7A C1 D6 */ mullw r3, r26, r24 +/* 803BCB14 003B9A74 7C 1A C9 D6 */ mullw r0, r26, r25 +/* 803BCB18 003B9A78 3A E0 30 39 */ li r23, 0x3039 +/* 803BCB1C 003B9A7C 7C 80 B8 14 */ addc r4, r0, r23 +/* 803BCB20 003B9A80 7C 05 1A 14 */ add r0, r5, r3 +/* 803BCB24 003B9A84 7C 60 C1 14 */ adde r3, r0, r24 +/* 803BCB28 003B9A88 38 A0 00 10 */ li r5, 0x10 +/* 803BCB2C 003B9A8C 4B FC D4 11 */ bl __shr2i +/* 803BCB30 003B9A90 7C C3 C9 D6 */ mullw r6, r3, r25 +/* 803BCB34 003B9A94 88 1D 00 00 */ lbz r0, 0(r29) +/* 803BCB38 003B9A98 7C A4 C8 16 */ mulhwu r5, r4, r25 +/* 803BCB3C 003B9A9C 7C C6 2A 14 */ add r6, r6, r5 +/* 803BCB40 003B9AA0 7D 04 00 14 */ addc r8, r4, r0 +/* 803BCB44 003B9AA4 7F 87 07 34 */ extsh r7, r28 +/* 803BCB48 003B9AA8 7C A4 C1 D6 */ mullw r5, r4, r24 +/* 803BCB4C 003B9AAC 7D 1B 39 AE */ stbx r8, r27, r7 +/* 803BCB50 003B9AB0 7C 04 C9 D6 */ mullw r0, r4, r25 +/* 803BCB54 003B9AB4 7C 80 B8 14 */ addc r4, r0, r23 +/* 803BCB58 003B9AB8 7C 06 2A 14 */ add r0, r6, r5 +/* 803BCB5C 003B9ABC 7C 60 C1 14 */ adde r3, r0, r24 +/* 803BCB60 003B9AC0 38 A0 00 10 */ li r5, 0x10 +/* 803BCB64 003B9AC4 4B FC D3 D9 */ bl __shr2i +/* 803BCB68 003B9AC8 38 00 7F FF */ li r0, 0x7fff +/* 803BCB6C 003B9ACC 7C 9A 00 38 */ and r26, r4, r0 +/* 803BCB70 003B9AD0 7C 7E C0 38 */ and r30, r3, r24 +/* 803BCB74 003B9AD4 3B BD 00 01 */ addi r29, r29, 1 +/* 803BCB78 003B9AD8 3B 9C 00 01 */ addi r28, r28, 1 +lbl_803BCB7C: +/* 803BCB7C 003B9ADC 7F 80 07 34 */ extsh r0, r28 +/* 803BCB80 003B9AE0 2C 00 00 0C */ cmpwi r0, 0xc +/* 803BCB84 003B9AE4 41 80 FF 7C */ blt lbl_803BCB00 +/* 803BCB88 003B9AE8 38 60 00 00 */ li r3, 0 +/* 803BCB8C 003B9AEC 4B FC 73 2D */ bl __OSUnlockSramEx +/* 803BCB90 003B9AF0 92 5B 00 1C */ stw r18, 0x1c(r27) +/* 803BCB94 003B9AF4 3A 40 00 00 */ li r18, 0 +/* 803BCB98 003B9AF8 38 7B 00 00 */ addi r3, r27, 0 +/* 803BCB9C 003B9AFC 92 BB 00 10 */ stw r21, 0x10(r27) +/* 803BCBA0 003B9B00 38 BB 01 FC */ addi r5, r27, 0x1fc +/* 803BCBA4 003B9B04 38 DB 01 FE */ addi r6, r27, 0x1fe +/* 803BCBA8 003B9B08 92 9B 00 0C */ stw r20, 0xc(r27) +/* 803BCBAC 003B9B0C 38 80 01 FC */ li r4, 0x1fc +/* 803BCBB0 003B9B10 B2 5B 00 20 */ sth r18, 0x20(r27) +/* 803BCBB4 003B9B14 80 E1 00 18 */ lwz r7, 0x18(r1) +/* 803BCBB8 003B9B18 A0 07 00 08 */ lhz r0, 8(r7) +/* 803BCBBC 003B9B1C B0 1B 00 22 */ sth r0, 0x22(r27) +/* 803BCBC0 003B9B20 4B FF E0 15 */ bl __CARDCheckSum +/* 803BCBC4 003B9B24 48 00 00 4C */ b lbl_803BCC10 +lbl_803BCBC8: +/* 803BCBC8 003B9B28 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BCBCC 003B9B2C 7E 43 07 34 */ extsh r3, r18 +/* 803BCBD0 003B9B30 38 03 00 01 */ addi r0, r3, 1 +/* 803BCBD4 003B9B34 80 64 00 80 */ lwz r3, 0x80(r4) +/* 803BCBD8 003B9B38 54 00 68 24 */ slwi r0, r0, 0xd +/* 803BCBDC 003B9B3C 38 80 00 FF */ li r4, 0xff +/* 803BCBE0 003B9B40 7E 83 02 14 */ add r20, r3, r0 +/* 803BCBE4 003B9B44 38 74 00 00 */ addi r3, r20, 0 +/* 803BCBE8 003B9B48 38 A0 20 00 */ li r5, 0x2000 +/* 803BCBEC 003B9B4C 4B C4 67 BD */ bl memset +/* 803BCBF0 003B9B50 38 94 1F C0 */ addi r4, r20, 0x1fc0 +/* 803BCBF4 003B9B54 B2 54 1F FA */ sth r18, 0x1ffa(r20) +/* 803BCBF8 003B9B58 38 74 00 00 */ addi r3, r20, 0 +/* 803BCBFC 003B9B5C 38 A4 00 3C */ addi r5, r4, 0x3c +/* 803BCC00 003B9B60 38 C4 00 3E */ addi r6, r4, 0x3e +/* 803BCC04 003B9B64 38 80 1F FC */ li r4, 0x1ffc +/* 803BCC08 003B9B68 4B FF DF CD */ bl __CARDCheckSum +/* 803BCC0C 003B9B6C 3A 52 00 01 */ addi r18, r18, 1 +lbl_803BCC10: +/* 803BCC10 003B9B70 7E 40 07 34 */ extsh r0, r18 +/* 803BCC14 003B9B74 2C 00 00 02 */ cmpwi r0, 2 +/* 803BCC18 003B9B78 41 80 FF B0 */ blt lbl_803BCBC8 +/* 803BCC1C 003B9B7C 3A 40 00 00 */ li r18, 0 +/* 803BCC20 003B9B80 48 00 00 60 */ b lbl_803BCC80 +lbl_803BCC24: +/* 803BCC24 003B9B84 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BCC28 003B9B88 7E 43 07 34 */ extsh r3, r18 +/* 803BCC2C 003B9B8C 38 03 00 03 */ addi r0, r3, 3 +/* 803BCC30 003B9B90 80 64 00 80 */ lwz r3, 0x80(r4) +/* 803BCC34 003B9B94 54 00 68 24 */ slwi r0, r0, 0xd +/* 803BCC38 003B9B98 38 80 00 00 */ li r4, 0 +/* 803BCC3C 003B9B9C 7E 83 02 14 */ add r20, r3, r0 +/* 803BCC40 003B9BA0 38 74 00 00 */ addi r3, r20, 0 +/* 803BCC44 003B9BA4 38 A0 20 00 */ li r5, 0x2000 +/* 803BCC48 003B9BA8 4B C4 67 61 */ bl memset +/* 803BCC4C 003B9BAC B2 54 00 04 */ sth r18, 4(r20) +/* 803BCC50 003B9BB0 38 00 00 04 */ li r0, 4 +/* 803BCC54 003B9BB4 38 B4 00 00 */ addi r5, r20, 0 +/* 803BCC58 003B9BB8 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BCC5C 003B9BBC 38 74 00 04 */ addi r3, r20, 4 +/* 803BCC60 003B9BC0 38 D4 00 02 */ addi r6, r20, 2 +/* 803BCC64 003B9BC4 A0 E4 00 10 */ lhz r7, 0x10(r4) +/* 803BCC68 003B9BC8 38 80 1F FC */ li r4, 0x1ffc +/* 803BCC6C 003B9BCC 38 E7 FF FB */ addi r7, r7, -5 +/* 803BCC70 003B9BD0 B0 F4 00 06 */ sth r7, 6(r20) +/* 803BCC74 003B9BD4 B0 14 00 08 */ sth r0, 8(r20) +/* 803BCC78 003B9BD8 4B FF DF 5D */ bl __CARDCheckSum +/* 803BCC7C 003B9BDC 3A 52 00 01 */ addi r18, r18, 1 +lbl_803BCC80: +/* 803BCC80 003B9BE0 7E 40 07 34 */ extsh r0, r18 +/* 803BCC84 003B9BE4 2C 00 00 02 */ cmpwi r0, 2 +/* 803BCC88 003B9BE8 41 80 FF 9C */ blt lbl_803BCC24 +/* 803BCC8C 003B9BEC 28 13 00 00 */ cmplwi r19, 0 +/* 803BCC90 003B9BF0 41 82 00 0C */ beq lbl_803BCC9C +/* 803BCC94 003B9BF4 7E 60 9B 78 */ mr r0, r19 +/* 803BCC98 003B9BF8 48 00 00 0C */ b lbl_803BCCA4 +lbl_803BCC9C: +/* 803BCC9C 003B9BFC 3C 60 80 3B */ lis r3, __CARDDefaultApiCallback@ha +/* 803BCCA0 003B9C00 38 03 7E 74 */ addi r0, r3, __CARDDefaultApiCallback@l +lbl_803BCCA4: +/* 803BCCA4 003B9C04 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 803BCCA8 003B9C08 3C 60 00 01 */ lis r3, 0x0000A000@ha +/* 803BCCAC 003B9C0C 38 83 A0 00 */ addi r4, r3, 0x0000A000@l +/* 803BCCB0 003B9C10 90 05 00 D0 */ stw r0, 0xd0(r5) +/* 803BCCB4 003B9C14 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BCCB8 003B9C18 80 63 00 80 */ lwz r3, 0x80(r3) +/* 803BCCBC 003B9C1C 4B FC 1E 25 */ bl DCStoreRange +/* 803BCCC0 003B9C20 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BCCC4 003B9C24 38 00 00 00 */ li r0, 0 +/* 803BCCC8 003B9C28 3C 60 80 3C */ lis r3, FormatCallback@ha +/* 803BCCCC 003B9C2C 90 04 00 28 */ stw r0, 0x28(r4) +/* 803BCCD0 003B9C30 38 A3 C5 88 */ addi r5, r3, FormatCallback@l +/* 803BCCD4 003B9C34 38 76 00 00 */ addi r3, r22, 0 +/* 803BCCD8 003B9C38 80 C1 00 18 */ lwz r6, 0x18(r1) +/* 803BCCDC 003B9C3C 80 86 00 0C */ lwz r4, 0xc(r6) +/* 803BCCE0 003B9C40 80 06 00 28 */ lwz r0, 0x28(r6) +/* 803BCCE4 003B9C44 7C 84 01 D6 */ mullw r4, r4, r0 +/* 803BCCE8 003B9C48 4B FF BE ED */ bl __CARDEraseSector +/* 803BCCEC 003B9C4C 7C 72 1B 79 */ or. r18, r3, r3 +/* 803BCCF0 003B9C50 40 80 00 10 */ bge lbl_803BCD00 +/* 803BCCF4 003B9C54 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BCCF8 003B9C58 7E 44 93 78 */ mr r4, r18 +/* 803BCCFC 003B9C5C 4B FF C1 5D */ bl __CARDPutControlBlock +lbl_803BCD00: +/* 803BCD00 003B9C60 7E 43 93 78 */ mr r3, r18 +/* 803BCD04 003B9C64 48 00 00 0C */ b lbl_803BCD10 +lbl_803BCD08: +/* 803BCD08 003B9C68 7F B9 02 14 */ add r29, r25, r0 +/* 803BCD0C 003B9C6C 4B FF FD E8 */ b lbl_803BCAF4 +lbl_803BCD10: +/* 803BCD10 003B9C70 BA 41 00 20 */ lmw r18, 0x20(r1) +/* 803BCD14 003B9C74 80 01 00 5C */ lwz r0, 0x5c(r1) +/* 803BCD18 003B9C78 38 21 00 58 */ addi r1, r1, 0x58 +/* 803BCD1C 003B9C7C 7C 08 03 A6 */ mtlr r0 +/* 803BCD20 003B9C80 4E 80 00 20 */ blr + +.global CARDFormatAsync +CARDFormatAsync: +/* 803BCD24 003B9C84 7C 08 02 A6 */ mflr r0 +/* 803BCD28 003B9C88 90 01 00 04 */ stw r0, 4(r1) +/* 803BCD2C 003B9C8C 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BCD30 003B9C90 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BCD34 003B9C94 3B E4 00 00 */ addi r31, r4, 0 +/* 803BCD38 003B9C98 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803BCD3C 003B9C9C 3B C3 00 00 */ addi r30, r3, 0 +/* 803BCD40 003B9CA0 4B FF C0 21 */ bl __CARDGetFontEncode +/* 803BCD44 003B9CA4 38 83 00 00 */ addi r4, r3, 0 +/* 803BCD48 003B9CA8 38 7E 00 00 */ addi r3, r30, 0 +/* 803BCD4C 003B9CAC 38 BF 00 00 */ addi r5, r31, 0 +/* 803BCD50 003B9CB0 4B FF F9 7D */ bl __CARDFormatRegionAsync +/* 803BCD54 003B9CB4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BCD58 003B9CB8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BCD5C 003B9CBC 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803BCD60 003B9CC0 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BCD64 003B9CC4 7C 08 03 A6 */ mtlr r0 +/* 803BCD68 003B9CC8 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDMount.s b/asm/Dolphin/CARD/CARDMount.s new file mode 100644 index 00000000..02108e6f --- /dev/null +++ b/asm/Dolphin/CARD/CARDMount.s @@ -0,0 +1,760 @@ +.include "macros.inc" + +.section .text, "ax" + +.global IsCard +IsCard: +/* 803BBB10 003B8A70 54 60 00 1F */ rlwinm. r0, r3, 0, 0, 0xf +/* 803BBB14 003B8A74 41 82 00 24 */ beq lbl_803BBB38 +/* 803BBB18 003B8A78 3C 03 80 00 */ addis r0, r3, 0x8000 +/* 803BBB1C 003B8A7C 28 00 00 04 */ cmplwi r0, 4 +/* 803BBB20 003B8A80 40 82 00 10 */ bne lbl_803BBB30 +/* 803BBB24 003B8A84 A0 0D A0 40 */ lhz r0, lbl_805A8C00@sda21(r13) +/* 803BBB28 003B8A88 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BBB2C 003B8A8C 40 82 00 0C */ bne lbl_803BBB38 +lbl_803BBB30: +/* 803BBB30 003B8A90 38 60 00 00 */ li r3, 0 +/* 803BBB34 003B8A94 4E 80 00 20 */ blr +lbl_803BBB38: +/* 803BBB38 003B8A98 54 60 07 BF */ clrlwi. r0, r3, 0x1e +/* 803BBB3C 003B8A9C 41 82 00 0C */ beq lbl_803BBB48 +/* 803BBB40 003B8AA0 38 60 00 00 */ li r3, 0 +/* 803BBB44 003B8AA4 4E 80 00 20 */ blr +lbl_803BBB48: +/* 803BBB48 003B8AA8 54 65 06 3A */ rlwinm r5, r3, 0, 0x18, 0x1d +/* 803BBB4C 003B8AAC 2C 05 00 20 */ cmpwi r5, 0x20 +/* 803BBB50 003B8AB0 41 82 00 48 */ beq lbl_803BBB98 +/* 803BBB54 003B8AB4 40 80 00 28 */ bge lbl_803BBB7C +/* 803BBB58 003B8AB8 2C 05 00 08 */ cmpwi r5, 8 +/* 803BBB5C 003B8ABC 41 82 00 3C */ beq lbl_803BBB98 +/* 803BBB60 003B8AC0 40 80 00 10 */ bge lbl_803BBB70 +/* 803BBB64 003B8AC4 2C 05 00 04 */ cmpwi r5, 4 +/* 803BBB68 003B8AC8 41 82 00 30 */ beq lbl_803BBB98 +/* 803BBB6C 003B8ACC 48 00 00 24 */ b lbl_803BBB90 +lbl_803BBB70: +/* 803BBB70 003B8AD0 2C 05 00 10 */ cmpwi r5, 0x10 +/* 803BBB74 003B8AD4 41 82 00 24 */ beq lbl_803BBB98 +/* 803BBB78 003B8AD8 48 00 00 18 */ b lbl_803BBB90 +lbl_803BBB7C: +/* 803BBB7C 003B8ADC 2C 05 00 80 */ cmpwi r5, 0x80 +/* 803BBB80 003B8AE0 41 82 00 18 */ beq lbl_803BBB98 +/* 803BBB84 003B8AE4 40 80 00 0C */ bge lbl_803BBB90 +/* 803BBB88 003B8AE8 2C 05 00 40 */ cmpwi r5, 0x40 +/* 803BBB8C 003B8AEC 41 82 00 0C */ beq lbl_803BBB98 +lbl_803BBB90: +/* 803BBB90 003B8AF0 38 60 00 00 */ li r3, 0 +/* 803BBB94 003B8AF4 4E 80 00 20 */ blr +lbl_803BBB98: +/* 803BBB98 003B8AF8 3C 80 80 3F */ lis r4, lbl_803F6E60@ha +/* 803BBB9C 003B8AFC 54 63 BE FA */ rlwinm r3, r3, 0x17, 0x1b, 0x1d +/* 803BBBA0 003B8B00 38 04 6E 60 */ addi r0, r4, lbl_803F6E60@l +/* 803BBBA4 003B8B04 7C 60 1A 14 */ add r3, r0, r3 +/* 803BBBA8 003B8B08 80 63 00 00 */ lwz r3, 0(r3) +/* 803BBBAC 003B8B0C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BBBB0 003B8B10 40 82 00 0C */ bne lbl_803BBBBC +/* 803BBBB4 003B8B14 38 60 00 00 */ li r3, 0 +/* 803BBBB8 003B8B18 4E 80 00 20 */ blr +lbl_803BBBBC: +/* 803BBBBC 003B8B1C 54 A0 88 DC */ rlwinm r0, r5, 0x11, 3, 0xe +/* 803BBBC0 003B8B20 7C 00 1B 96 */ divwu r0, r0, r3 +/* 803BBBC4 003B8B24 28 00 00 08 */ cmplwi r0, 8 +/* 803BBBC8 003B8B28 40 80 00 0C */ bge lbl_803BBBD4 +/* 803BBBCC 003B8B2C 38 60 00 00 */ li r3, 0 +/* 803BBBD0 003B8B30 4E 80 00 20 */ blr +lbl_803BBBD4: +/* 803BBBD4 003B8B34 38 60 00 01 */ li r3, 1 +/* 803BBBD8 003B8B38 4E 80 00 20 */ blr + +.global CARDProbeEx +CARDProbeEx: +/* 803BBBDC 003B8B3C 7C 08 02 A6 */ mflr r0 +/* 803BBBE0 003B8B40 90 01 00 04 */ stw r0, 4(r1) +/* 803BBBE4 003B8B44 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BBBE8 003B8B48 BF 61 00 1C */ stmw r27, 0x1c(r1) +/* 803BBBEC 003B8B4C 7C 7B 1B 79 */ or. r27, r3, r3 +/* 803BBBF0 003B8B50 3B 84 00 00 */ addi r28, r4, 0 +/* 803BBBF4 003B8B54 3B E5 00 00 */ addi r31, r5, 0 +/* 803BBBF8 003B8B58 41 80 00 0C */ blt lbl_803BBC04 +/* 803BBBFC 003B8B5C 2C 1B 00 02 */ cmpwi r27, 2 +/* 803BBC00 003B8B60 41 80 00 0C */ blt lbl_803BBC0C +lbl_803BBC04: +/* 803BBC04 003B8B64 38 60 FF 80 */ li r3, -128 +/* 803BBC08 003B8B68 48 00 01 3C */ b lbl_803BBD44 +lbl_803BBC0C: +/* 803BBC0C 003B8B6C 3C 60 80 00 */ lis r3, 0x800030E3@ha +/* 803BBC10 003B8B70 88 03 30 E3 */ lbz r0, 0x800030E3@l(r3) +/* 803BBC14 003B8B74 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 803BBC18 003B8B78 41 82 00 0C */ beq lbl_803BBC24 +/* 803BBC1C 003B8B7C 38 60 FF FD */ li r3, -3 +/* 803BBC20 003B8B80 48 00 01 24 */ b lbl_803BBD44 +lbl_803BBC24: +/* 803BBC24 003B8B84 1C 9B 01 10 */ mulli r4, r27, 0x110 +/* 803BBC28 003B8B88 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BBC2C 003B8B8C 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BBC30 003B8B90 7F C0 22 14 */ add r30, r0, r4 +/* 803BBC34 003B8B94 4B FC 5A 2D */ bl OSDisableInterrupts +/* 803BBC38 003B8B98 3B A3 00 00 */ addi r29, r3, 0 +/* 803BBC3C 003B8B9C 38 7B 00 00 */ addi r3, r27, 0 +/* 803BBC40 003B8BA0 48 00 4D A1 */ bl EXIProbeEx +/* 803BBC44 003B8BA4 2C 03 FF FF */ cmpwi r3, -1 +/* 803BBC48 003B8BA8 40 82 00 0C */ bne lbl_803BBC54 +/* 803BBC4C 003B8BAC 3B C0 FF FD */ li r30, -3 +/* 803BBC50 003B8BB0 48 00 00 E8 */ b lbl_803BBD38 +lbl_803BBC54: +/* 803BBC54 003B8BB4 2C 03 00 00 */ cmpwi r3, 0 +/* 803BBC58 003B8BB8 40 82 00 0C */ bne lbl_803BBC64 +/* 803BBC5C 003B8BBC 3B C0 FF FF */ li r30, -1 +/* 803BBC60 003B8BC0 48 00 00 D8 */ b lbl_803BBD38 +lbl_803BBC64: +/* 803BBC64 003B8BC4 80 1E 00 00 */ lwz r0, 0(r30) +/* 803BBC68 003B8BC8 2C 00 00 00 */ cmpwi r0, 0 +/* 803BBC6C 003B8BCC 41 82 00 40 */ beq lbl_803BBCAC +/* 803BBC70 003B8BD0 80 1E 00 24 */ lwz r0, 0x24(r30) +/* 803BBC74 003B8BD4 2C 00 00 01 */ cmpwi r0, 1 +/* 803BBC78 003B8BD8 40 80 00 0C */ bge lbl_803BBC84 +/* 803BBC7C 003B8BDC 3B C0 FF FF */ li r30, -1 +/* 803BBC80 003B8BE0 48 00 00 B8 */ b lbl_803BBD38 +lbl_803BBC84: +/* 803BBC84 003B8BE4 28 1C 00 00 */ cmplwi r28, 0 +/* 803BBC88 003B8BE8 41 82 00 0C */ beq lbl_803BBC94 +/* 803BBC8C 003B8BEC A0 1E 00 08 */ lhz r0, 8(r30) +/* 803BBC90 003B8BF0 90 1C 00 00 */ stw r0, 0(r28) +lbl_803BBC94: +/* 803BBC94 003B8BF4 28 1F 00 00 */ cmplwi r31, 0 +/* 803BBC98 003B8BF8 41 82 00 0C */ beq lbl_803BBCA4 +/* 803BBC9C 003B8BFC 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 803BBCA0 003B8C00 90 1F 00 00 */ stw r0, 0(r31) +lbl_803BBCA4: +/* 803BBCA4 003B8C04 3B C0 00 00 */ li r30, 0 +/* 803BBCA8 003B8C08 48 00 00 90 */ b lbl_803BBD38 +lbl_803BBCAC: +/* 803BBCAC 003B8C0C 7F 63 DB 78 */ mr r3, r27 +/* 803BBCB0 003B8C10 48 00 58 85 */ bl EXIGetState +/* 803BBCB4 003B8C14 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c +/* 803BBCB8 003B8C18 41 82 00 0C */ beq lbl_803BBCC4 +/* 803BBCBC 003B8C1C 3B C0 FF FE */ li r30, -2 +/* 803BBCC0 003B8C20 48 00 00 78 */ b lbl_803BBD38 +lbl_803BBCC4: +/* 803BBCC4 003B8C24 38 7B 00 00 */ addi r3, r27, 0 +/* 803BBCC8 003B8C28 38 A1 00 14 */ addi r5, r1, 0x14 +/* 803BBCCC 003B8C2C 38 80 00 00 */ li r4, 0 +/* 803BBCD0 003B8C30 48 00 58 A5 */ bl EXIGetID +/* 803BBCD4 003B8C34 2C 03 00 00 */ cmpwi r3, 0 +/* 803BBCD8 003B8C38 40 82 00 0C */ bne lbl_803BBCE4 +/* 803BBCDC 003B8C3C 3B C0 FF FF */ li r30, -1 +/* 803BBCE0 003B8C40 48 00 00 58 */ b lbl_803BBD38 +lbl_803BBCE4: +/* 803BBCE4 003B8C44 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BBCE8 003B8C48 4B FF FE 29 */ bl IsCard +/* 803BBCEC 003B8C4C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BBCF0 003B8C50 41 82 00 44 */ beq lbl_803BBD34 +/* 803BBCF4 003B8C54 28 1C 00 00 */ cmplwi r28, 0 +/* 803BBCF8 003B8C58 41 82 00 10 */ beq lbl_803BBD08 +/* 803BBCFC 003B8C5C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803BBD00 003B8C60 54 00 06 3A */ rlwinm r0, r0, 0, 0x18, 0x1d +/* 803BBD04 003B8C64 90 1C 00 00 */ stw r0, 0(r28) +lbl_803BBD08: +/* 803BBD08 003B8C68 28 1F 00 00 */ cmplwi r31, 0 +/* 803BBD0C 003B8C6C 41 82 00 20 */ beq lbl_803BBD2C +/* 803BBD10 003B8C70 80 81 00 14 */ lwz r4, 0x14(r1) +/* 803BBD14 003B8C74 3C 60 80 3F */ lis r3, lbl_803F6E60@ha +/* 803BBD18 003B8C78 38 03 6E 60 */ addi r0, r3, lbl_803F6E60@l +/* 803BBD1C 003B8C7C 54 83 BE FA */ rlwinm r3, r4, 0x17, 0x1b, 0x1d +/* 803BBD20 003B8C80 7C 60 1A 14 */ add r3, r0, r3 +/* 803BBD24 003B8C84 80 03 00 00 */ lwz r0, 0(r3) +/* 803BBD28 003B8C88 90 1F 00 00 */ stw r0, 0(r31) +lbl_803BBD2C: +/* 803BBD2C 003B8C8C 3B C0 00 00 */ li r30, 0 +/* 803BBD30 003B8C90 48 00 00 08 */ b lbl_803BBD38 +lbl_803BBD34: +/* 803BBD34 003B8C94 3B C0 FF FE */ li r30, -2 +lbl_803BBD38: +/* 803BBD38 003B8C98 7F A3 EB 78 */ mr r3, r29 +/* 803BBD3C 003B8C9C 4B FC 59 4D */ bl OSRestoreInterrupts +/* 803BBD40 003B8CA0 7F C3 F3 78 */ mr r3, r30 +lbl_803BBD44: +/* 803BBD44 003B8CA4 BB 61 00 1C */ lmw r27, 0x1c(r1) +/* 803BBD48 003B8CA8 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BBD4C 003B8CAC 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BBD50 003B8CB0 7C 08 03 A6 */ mtlr r0 +/* 803BBD54 003B8CB4 4E 80 00 20 */ blr + +.global DoMount +DoMount: +/* 803BBD58 003B8CB8 7C 08 02 A6 */ mflr r0 +/* 803BBD5C 003B8CBC 90 01 00 04 */ stw r0, 4(r1) +/* 803BBD60 003B8CC0 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BBD64 003B8CC4 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803BBD68 003B8CC8 93 C1 00 28 */ stw r30, 0x28(r1) +/* 803BBD6C 003B8CCC 93 A1 00 24 */ stw r29, 0x24(r1) +/* 803BBD70 003B8CD0 3B A3 00 00 */ addi r29, r3, 0 +/* 803BBD74 003B8CD4 1C 9D 01 10 */ mulli r4, r29, 0x110 +/* 803BBD78 003B8CD8 93 81 00 20 */ stw r28, 0x20(r1) +/* 803BBD7C 003B8CDC 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BBD80 003B8CE0 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BBD84 003B8CE4 7C 60 22 14 */ add r3, r0, r4 +/* 803BBD88 003B8CE8 80 03 00 24 */ lwz r0, 0x24(r3) +/* 803BBD8C 003B8CEC 3B E3 00 00 */ addi r31, r3, 0 +/* 803BBD90 003B8CF0 2C 00 00 00 */ cmpwi r0, 0 +/* 803BBD94 003B8CF4 40 82 02 AC */ bne lbl_803BC040 +/* 803BBD98 003B8CF8 38 7D 00 00 */ addi r3, r29, 0 +/* 803BBD9C 003B8CFC 38 A1 00 18 */ addi r5, r1, 0x18 +/* 803BBDA0 003B8D00 38 80 00 00 */ li r4, 0 +/* 803BBDA4 003B8D04 48 00 57 D1 */ bl EXIGetID +/* 803BBDA8 003B8D08 2C 03 00 00 */ cmpwi r3, 0 +/* 803BBDAC 003B8D0C 40 82 00 0C */ bne lbl_803BBDB8 +/* 803BBDB0 003B8D10 3B C0 FF FD */ li r30, -3 +/* 803BBDB4 003B8D14 48 00 00 20 */ b lbl_803BBDD4 +lbl_803BBDB8: +/* 803BBDB8 003B8D18 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BBDBC 003B8D1C 4B FF FD 55 */ bl IsCard +/* 803BBDC0 003B8D20 2C 03 00 00 */ cmpwi r3, 0 +/* 803BBDC4 003B8D24 41 82 00 0C */ beq lbl_803BBDD0 +/* 803BBDC8 003B8D28 3B C0 00 00 */ li r30, 0 +/* 803BBDCC 003B8D2C 48 00 00 08 */ b lbl_803BBDD4 +lbl_803BBDD0: +/* 803BBDD0 003B8D30 3B C0 FF FE */ li r30, -2 +lbl_803BBDD4: +/* 803BBDD4 003B8D34 2C 1E 00 00 */ cmpwi r30, 0 +/* 803BBDD8 003B8D38 41 80 03 44 */ blt lbl_803BC11C +/* 803BBDDC 003B8D3C 80 01 00 18 */ lwz r0, 0x18(r1) +/* 803BBDE0 003B8D40 3C 80 80 3F */ lis r4, lbl_803F6E60@ha +/* 803BBDE4 003B8D44 38 84 6E 60 */ addi r4, r4, lbl_803F6E60@l +/* 803BBDE8 003B8D48 90 1F 01 08 */ stw r0, 0x108(r31) +/* 803BBDEC 003B8D4C 3C 60 80 3F */ lis r3, lbl_803F6E80@ha +/* 803BBDF0 003B8D50 38 03 6E 80 */ addi r0, r3, lbl_803F6E80@l +/* 803BBDF4 003B8D54 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 803BBDF8 003B8D58 38 7D 00 00 */ addi r3, r29, 0 +/* 803BBDFC 003B8D5C 54 A5 06 3A */ rlwinm r5, r5, 0, 0x18, 0x1d +/* 803BBE00 003B8D60 B0 BF 00 08 */ sth r5, 8(r31) +/* 803BBE04 003B8D64 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 803BBE08 003B8D68 54 A5 BE FA */ rlwinm r5, r5, 0x17, 0x1b, 0x1d +/* 803BBE0C 003B8D6C 7C 84 2A 14 */ add r4, r4, r5 +/* 803BBE10 003B8D70 80 84 00 00 */ lwz r4, 0(r4) +/* 803BBE14 003B8D74 90 9F 00 0C */ stw r4, 0xc(r31) +/* 803BBE18 003B8D78 A0 BF 00 08 */ lhz r5, 8(r31) +/* 803BBE1C 003B8D7C 80 9F 00 0C */ lwz r4, 0xc(r31) +/* 803BBE20 003B8D80 54 A5 A0 16 */ slwi r5, r5, 0x14 +/* 803BBE24 003B8D84 7C A5 1E 70 */ srawi r5, r5, 3 +/* 803BBE28 003B8D88 7C A5 01 94 */ addze r5, r5 +/* 803BBE2C 003B8D8C 7C 85 23 D6 */ divw r4, r5, r4 +/* 803BBE30 003B8D90 B0 9F 00 10 */ sth r4, 0x10(r31) +/* 803BBE34 003B8D94 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BBE38 003B8D98 54 84 D6 FA */ rlwinm r4, r4, 0x1a, 0x1b, 0x1d +/* 803BBE3C 003B8D9C 7C 80 22 14 */ add r4, r0, r4 +/* 803BBE40 003B8DA0 80 04 00 00 */ lwz r0, 0(r4) +/* 803BBE44 003B8DA4 90 1F 00 14 */ stw r0, 0x14(r31) +/* 803BBE48 003B8DA8 4B FF C4 FD */ bl __CARDClearStatus +/* 803BBE4C 003B8DAC 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803BBE50 003B8DB0 41 80 02 CC */ blt lbl_803BC11C +/* 803BBE54 003B8DB4 38 7D 00 00 */ addi r3, r29, 0 +/* 803BBE58 003B8DB8 38 81 00 14 */ addi r4, r1, 0x14 +/* 803BBE5C 003B8DBC 4B FF C3 F9 */ bl __CARDReadStatus +/* 803BBE60 003B8DC0 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803BBE64 003B8DC4 41 80 02 B8 */ blt lbl_803BC11C +/* 803BBE68 003B8DC8 7F A3 EB 78 */ mr r3, r29 +/* 803BBE6C 003B8DCC 48 00 4A F5 */ bl EXIProbe +/* 803BBE70 003B8DD0 2C 03 00 00 */ cmpwi r3, 0 +/* 803BBE74 003B8DD4 40 82 00 0C */ bne lbl_803BBE80 +/* 803BBE78 003B8DD8 3B C0 FF FD */ li r30, -3 +/* 803BBE7C 003B8DDC 48 00 02 A0 */ b lbl_803BC11C +lbl_803BBE80: +/* 803BBE80 003B8DE0 88 01 00 14 */ lbz r0, 0x14(r1) +/* 803BBE84 003B8DE4 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 +/* 803BBE88 003B8DE8 40 82 01 14 */ bne lbl_803BBF9C +/* 803BBE8C 003B8DEC 38 7D 00 00 */ addi r3, r29, 0 +/* 803BBE90 003B8DF0 38 9F 00 18 */ addi r4, r31, 0x18 +/* 803BBE94 003B8DF4 4B FF D5 6D */ bl __CARDUnlock +/* 803BBE98 003B8DF8 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803BBE9C 003B8DFC 41 80 02 80 */ blt lbl_803BC11C +/* 803BBEA0 003B8E00 4B FC 7C 91 */ bl __OSLockSramEx +/* 803BBEA4 003B8E04 1C 1D 00 0C */ mulli r0, r29, 0xc +/* 803BBEA8 003B8E08 7C 83 02 14 */ add r4, r3, r0 +/* 803BBEAC 003B8E0C 88 1F 00 18 */ lbz r0, 0x18(r31) +/* 803BBEB0 003B8E10 38 BF 00 18 */ addi r5, r31, 0x18 +/* 803BBEB4 003B8E14 98 04 00 00 */ stb r0, 0(r4) +/* 803BBEB8 003B8E18 39 05 00 02 */ addi r8, r5, 2 +/* 803BBEBC 003B8E1C 39 25 00 03 */ addi r9, r5, 3 +/* 803BBEC0 003B8E20 88 FF 00 18 */ lbz r7, 0x18(r31) +/* 803BBEC4 003B8E24 39 45 00 04 */ addi r10, r5, 4 +/* 803BBEC8 003B8E28 88 1F 00 19 */ lbz r0, 0x19(r31) +/* 803BBECC 003B8E2C 39 65 00 05 */ addi r11, r5, 5 +/* 803BBED0 003B8E30 39 85 00 06 */ addi r12, r5, 6 +/* 803BBED4 003B8E34 98 04 00 01 */ stb r0, 1(r4) +/* 803BBED8 003B8E38 3B 85 00 07 */ addi r28, r5, 7 +/* 803BBEDC 003B8E3C 38 A0 00 08 */ li r5, 8 +/* 803BBEE0 003B8E40 88 1F 00 19 */ lbz r0, 0x19(r31) +/* 803BBEE4 003B8E44 88 C8 00 00 */ lbz r6, 0(r8) +/* 803BBEE8 003B8E48 7C 07 02 14 */ add r0, r7, r0 +/* 803BBEEC 003B8E4C 98 C4 00 02 */ stb r6, 2(r4) +/* 803BBEF0 003B8E50 88 E8 00 00 */ lbz r7, 0(r8) +/* 803BBEF4 003B8E54 88 C9 00 00 */ lbz r6, 0(r9) +/* 803BBEF8 003B8E58 7C 00 3A 14 */ add r0, r0, r7 +/* 803BBEFC 003B8E5C 98 C4 00 03 */ stb r6, 3(r4) +/* 803BBF00 003B8E60 88 E9 00 00 */ lbz r7, 0(r9) +/* 803BBF04 003B8E64 88 CA 00 00 */ lbz r6, 0(r10) +/* 803BBF08 003B8E68 7C 00 3A 14 */ add r0, r0, r7 +/* 803BBF0C 003B8E6C 98 C4 00 04 */ stb r6, 4(r4) +/* 803BBF10 003B8E70 88 EA 00 00 */ lbz r7, 0(r10) +/* 803BBF14 003B8E74 88 CB 00 00 */ lbz r6, 0(r11) +/* 803BBF18 003B8E78 7C 00 3A 14 */ add r0, r0, r7 +/* 803BBF1C 003B8E7C 98 C4 00 05 */ stb r6, 5(r4) +/* 803BBF20 003B8E80 88 EB 00 00 */ lbz r7, 0(r11) +/* 803BBF24 003B8E84 88 CC 00 00 */ lbz r6, 0(r12) +/* 803BBF28 003B8E88 7C 00 3A 14 */ add r0, r0, r7 +/* 803BBF2C 003B8E8C 98 C4 00 06 */ stb r6, 6(r4) +/* 803BBF30 003B8E90 88 EC 00 00 */ lbz r7, 0(r12) +/* 803BBF34 003B8E94 88 DC 00 00 */ lbz r6, 0(r28) +/* 803BBF38 003B8E98 7C 00 3A 14 */ add r0, r0, r7 +/* 803BBF3C 003B8E9C 98 C4 00 07 */ stb r6, 7(r4) +/* 803BBF40 003B8EA0 88 DC 00 00 */ lbz r6, 0(r28) +/* 803BBF44 003B8EA4 7C 00 32 14 */ add r0, r0, r6 +/* 803BBF48 003B8EA8 48 00 01 F0 */ b lbl_803BC138 +lbl_803BBF4C: +/* 803BBF4C 003B8EAC 20 85 00 0C */ subfic r4, r5, 0xc +/* 803BBF50 003B8EB0 2C 05 00 0C */ cmpwi r5, 0xc +/* 803BBF54 003B8EB4 7C 89 03 A6 */ mtctr r4 +/* 803BBF58 003B8EB8 40 80 00 28 */ bge lbl_803BBF80 +lbl_803BBF5C: +/* 803BBF5C 003B8EBC 38 E5 00 18 */ addi r7, r5, 0x18 +/* 803BBF60 003B8EC0 7C FF 3A 14 */ add r7, r31, r7 +/* 803BBF64 003B8EC4 88 87 00 00 */ lbz r4, 0(r7) +/* 803BBF68 003B8EC8 38 A5 00 01 */ addi r5, r5, 1 +/* 803BBF6C 003B8ECC 98 86 00 00 */ stb r4, 0(r6) +/* 803BBF70 003B8ED0 38 C6 00 01 */ addi r6, r6, 1 +/* 803BBF74 003B8ED4 88 87 00 00 */ lbz r4, 0(r7) +/* 803BBF78 003B8ED8 7C 00 22 14 */ add r0, r0, r4 +/* 803BBF7C 003B8EDC 42 00 FF E0 */ bdnz lbl_803BBF5C +lbl_803BBF80: +/* 803BBF80 003B8EE0 7C 63 EA 14 */ add r3, r3, r29 +/* 803BBF84 003B8EE4 7C 00 00 F8 */ nor r0, r0, r0 +/* 803BBF88 003B8EE8 98 03 00 26 */ stb r0, 0x26(r3) +/* 803BBF8C 003B8EEC 38 60 00 01 */ li r3, 1 +/* 803BBF90 003B8EF0 4B FC 7F 29 */ bl __OSUnlockSramEx +/* 803BBF94 003B8EF4 7F C3 F3 78 */ mr r3, r30 +/* 803BBF98 003B8EF8 48 00 01 B0 */ b lbl_803BC148 +lbl_803BBF9C: +/* 803BBF9C 003B8EFC 38 00 00 01 */ li r0, 1 +/* 803BBFA0 003B8F00 90 1F 00 24 */ stw r0, 0x24(r31) +/* 803BBFA4 003B8F04 4B FC 7B 8D */ bl __OSLockSramEx +/* 803BBFA8 003B8F08 1C 1D 00 0C */ mulli r0, r29, 0xc +/* 803BBFAC 003B8F0C 3B C3 00 00 */ addi r30, r3, 0 +/* 803BBFB0 003B8F10 7C BE 02 14 */ add r5, r30, r0 +/* 803BBFB4 003B8F14 88 85 00 00 */ lbz r4, 0(r5) +/* 803BBFB8 003B8F18 38 C0 00 08 */ li r6, 8 +/* 803BBFBC 003B8F1C 88 05 00 01 */ lbz r0, 1(r5) +/* 803BBFC0 003B8F20 88 65 00 02 */ lbz r3, 2(r5) +/* 803BBFC4 003B8F24 7F 84 02 14 */ add r28, r4, r0 +/* 803BBFC8 003B8F28 88 05 00 03 */ lbz r0, 3(r5) +/* 803BBFCC 003B8F2C 7F 9C 1A 14 */ add r28, r28, r3 +/* 803BBFD0 003B8F30 88 65 00 04 */ lbz r3, 4(r5) +/* 803BBFD4 003B8F34 7F 9C 02 14 */ add r28, r28, r0 +/* 803BBFD8 003B8F38 88 05 00 05 */ lbz r0, 5(r5) +/* 803BBFDC 003B8F3C 7F 9C 1A 14 */ add r28, r28, r3 +/* 803BBFE0 003B8F40 88 65 00 06 */ lbz r3, 6(r5) +/* 803BBFE4 003B8F44 7F 9C 02 14 */ add r28, r28, r0 +/* 803BBFE8 003B8F48 88 05 00 07 */ lbz r0, 7(r5) +/* 803BBFEC 003B8F4C 7F 9C 1A 14 */ add r28, r28, r3 +/* 803BBFF0 003B8F50 7F 9C 02 14 */ add r28, r28, r0 +/* 803BBFF4 003B8F54 48 00 01 4C */ b lbl_803BC140 +lbl_803BBFF8: +/* 803BBFF8 003B8F58 20 06 00 0C */ subfic r0, r6, 0xc +/* 803BBFFC 003B8F5C 2C 06 00 0C */ cmpwi r6, 0xc +/* 803BC000 003B8F60 7C 09 03 A6 */ mtctr r0 +/* 803BC004 003B8F64 40 80 00 14 */ bge lbl_803BC018 +lbl_803BC008: +/* 803BC008 003B8F68 88 03 00 00 */ lbz r0, 0(r3) +/* 803BC00C 003B8F6C 38 63 00 01 */ addi r3, r3, 1 +/* 803BC010 003B8F70 7F 9C 02 14 */ add r28, r28, r0 +/* 803BC014 003B8F74 42 00 FF F4 */ bdnz lbl_803BC008 +lbl_803BC018: +/* 803BC018 003B8F78 38 60 00 00 */ li r3, 0 +/* 803BC01C 003B8F7C 4B FC 7E 9D */ bl __OSUnlockSramEx +/* 803BC020 003B8F80 7C 7E EA 14 */ add r3, r30, r29 +/* 803BC024 003B8F84 7F 80 E0 F8 */ nor r0, r28, r28 +/* 803BC028 003B8F88 88 63 00 26 */ lbz r3, 0x26(r3) +/* 803BC02C 003B8F8C 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803BC030 003B8F90 7C 03 00 40 */ cmplw r3, r0 +/* 803BC034 003B8F94 41 82 00 0C */ beq lbl_803BC040 +/* 803BC038 003B8F98 3B C0 FF FB */ li r30, -5 +/* 803BC03C 003B8F9C 48 00 00 E0 */ b lbl_803BC11C +lbl_803BC040: +/* 803BC040 003B8FA0 80 1F 00 24 */ lwz r0, 0x24(r31) +/* 803BC044 003B8FA4 2C 00 00 01 */ cmpwi r0, 1 +/* 803BC048 003B8FA8 40 82 00 88 */ bne lbl_803BC0D0 +/* 803BC04C 003B8FAC 80 7F 01 08 */ lwz r3, 0x108(r31) +/* 803BC050 003B8FB0 3C 03 80 00 */ addis r0, r3, 0x8000 +/* 803BC054 003B8FB4 28 00 00 04 */ cmplwi r0, 4 +/* 803BC058 003B8FB8 40 82 00 34 */ bne lbl_803BC08C +/* 803BC05C 003B8FBC 4B FC 7A D5 */ bl __OSLockSramEx +/* 803BC060 003B8FC0 1C 1D 00 0C */ mulli r0, r29, 0xc +/* 803BC064 003B8FC4 7F 83 02 2E */ lhzx r28, r3, r0 +/* 803BC068 003B8FC8 38 60 00 00 */ li r3, 0 +/* 803BC06C 003B8FCC 4B FC 7E 4D */ bl __OSUnlockSramEx +/* 803BC070 003B8FD0 A0 0D A0 40 */ lhz r0, lbl_805A8C00@sda21(r13) +/* 803BC074 003B8FD4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BC078 003B8FD8 41 82 00 0C */ beq lbl_803BC084 +/* 803BC07C 003B8FDC 7C 1C 00 40 */ cmplw r28, r0 +/* 803BC080 003B8FE0 41 82 00 0C */ beq lbl_803BC08C +lbl_803BC084: +/* 803BC084 003B8FE4 3B C0 FF FE */ li r30, -2 +/* 803BC088 003B8FE8 48 00 00 94 */ b lbl_803BC11C +lbl_803BC08C: +/* 803BC08C 003B8FEC 38 00 00 02 */ li r0, 2 +/* 803BC090 003B8FF0 90 1F 00 24 */ stw r0, 0x24(r31) +/* 803BC094 003B8FF4 38 7D 00 00 */ addi r3, r29, 0 +/* 803BC098 003B8FF8 38 80 00 01 */ li r4, 1 +/* 803BC09C 003B8FFC 4B FF C0 F9 */ bl __CARDEnableInterrupt +/* 803BC0A0 003B9000 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803BC0A4 003B9004 41 80 00 78 */ blt lbl_803BC11C +/* 803BC0A8 003B9008 3C 60 80 3B */ lis r3, __CARDExiHandler@ha +/* 803BC0AC 003B900C 38 83 7F 50 */ addi r4, r3, __CARDExiHandler@l +/* 803BC0B0 003B9010 38 7D 00 00 */ addi r3, r29, 0 +/* 803BC0B4 003B9014 48 00 46 BD */ bl EXISetExiCallback +/* 803BC0B8 003B9018 7F A3 EB 78 */ mr r3, r29 +/* 803BC0BC 003B901C 48 00 53 9D */ bl EXIUnlock +/* 803BC0C0 003B9020 3C 80 00 01 */ lis r4, 0x0000A000@ha +/* 803BC0C4 003B9024 80 7F 00 80 */ lwz r3, 0x80(r31) +/* 803BC0C8 003B9028 38 84 A0 00 */ addi r4, r4, 0x0000A000@l +/* 803BC0CC 003B902C 4B FC 29 B9 */ bl DCInvalidateRange +lbl_803BC0D0: +/* 803BC0D0 003B9030 80 9F 00 24 */ lwz r4, 0x24(r31) +/* 803BC0D4 003B9034 3C 60 80 3C */ lis r3, __CARDMountCallback@ha +/* 803BC0D8 003B9038 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803BC0DC 003B903C 38 E3 C1 68 */ addi r7, r3, __CARDMountCallback@l +/* 803BC0E0 003B9040 38 64 FF FE */ addi r3, r4, -2 +/* 803BC0E4 003B9044 7C 80 19 D6 */ mullw r4, r0, r3 +/* 803BC0E8 003B9048 80 BF 00 80 */ lwz r5, 0x80(r31) +/* 803BC0EC 003B904C 54 60 68 24 */ slwi r0, r3, 0xd +/* 803BC0F0 003B9050 7C C5 02 14 */ add r6, r5, r0 +/* 803BC0F4 003B9054 38 7D 00 00 */ addi r3, r29, 0 +/* 803BC0F8 003B9058 38 A0 20 00 */ li r5, 0x2000 +/* 803BC0FC 003B905C 4B FF E2 CD */ bl __CARDRead +/* 803BC100 003B9060 7C 7C 1B 79 */ or. r28, r3, r3 +/* 803BC104 003B9064 40 80 00 10 */ bge lbl_803BC114 +/* 803BC108 003B9068 38 7F 00 00 */ addi r3, r31, 0 +/* 803BC10C 003B906C 38 9C 00 00 */ addi r4, r28, 0 +/* 803BC110 003B9070 4B FF CD 49 */ bl __CARDPutControlBlock +lbl_803BC114: +/* 803BC114 003B9074 7F 83 E3 78 */ mr r3, r28 +/* 803BC118 003B9078 48 00 00 30 */ b lbl_803BC148 +lbl_803BC11C: +/* 803BC11C 003B907C 7F A3 EB 78 */ mr r3, r29 +/* 803BC120 003B9080 48 00 53 39 */ bl EXIUnlock +/* 803BC124 003B9084 38 7D 00 00 */ addi r3, r29, 0 +/* 803BC128 003B9088 38 9E 00 00 */ addi r4, r30, 0 +/* 803BC12C 003B908C 48 00 03 15 */ bl DoUnmount +/* 803BC130 003B9090 7F C3 F3 78 */ mr r3, r30 +/* 803BC134 003B9094 48 00 00 14 */ b lbl_803BC148 +lbl_803BC138: +/* 803BC138 003B9098 38 C4 00 08 */ addi r6, r4, 8 +/* 803BC13C 003B909C 4B FF FE 10 */ b lbl_803BBF4C +lbl_803BC140: +/* 803BC140 003B90A0 38 65 00 08 */ addi r3, r5, 8 +/* 803BC144 003B90A4 4B FF FE B4 */ b lbl_803BBFF8 +lbl_803BC148: +/* 803BC148 003B90A8 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BC14C 003B90AC 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803BC150 003B90B0 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 803BC154 003B90B4 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 803BC158 003B90B8 83 81 00 20 */ lwz r28, 0x20(r1) +/* 803BC15C 003B90BC 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BC160 003B90C0 7C 08 03 A6 */ mtlr r0 +/* 803BC164 003B90C4 4E 80 00 20 */ blr + +.global __CARDMountCallback +__CARDMountCallback: +/* 803BC168 003B90C8 7C 08 02 A6 */ mflr r0 +/* 803BC16C 003B90CC 90 01 00 04 */ stw r0, 4(r1) +/* 803BC170 003B90D0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BC174 003B90D4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BC178 003B90D8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BC17C 003B90DC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BC180 003B90E0 3B A4 00 00 */ addi r29, r4, 0 +/* 803BC184 003B90E4 2C 1D FF FD */ cmpwi r29, -3 +/* 803BC188 003B90E8 93 81 00 10 */ stw r28, 0x10(r1) +/* 803BC18C 003B90EC 3B 83 00 00 */ addi r28, r3, 0 +/* 803BC190 003B90F0 1C BC 01 10 */ mulli r5, r28, 0x110 +/* 803BC194 003B90F4 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BC198 003B90F8 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BC19C 003B90FC 7F E0 2A 14 */ add r31, r0, r5 +/* 803BC1A0 003B9100 41 82 00 A8 */ beq lbl_803BC248 +/* 803BC1A4 003B9104 40 80 00 10 */ bge lbl_803BC1B4 +/* 803BC1A8 003B9108 2C 1D FF FB */ cmpwi r29, -5 +/* 803BC1AC 003B910C 41 82 00 9C */ beq lbl_803BC248 +/* 803BC1B0 003B9110 48 00 00 A4 */ b lbl_803BC254 +lbl_803BC1B4: +/* 803BC1B4 003B9114 2C 1D 00 01 */ cmpwi r29, 1 +/* 803BC1B8 003B9118 41 82 00 4C */ beq lbl_803BC204 +/* 803BC1BC 003B911C 40 80 00 98 */ bge lbl_803BC254 +/* 803BC1C0 003B9120 2C 1D 00 00 */ cmpwi r29, 0 +/* 803BC1C4 003B9124 40 80 00 08 */ bge lbl_803BC1CC +/* 803BC1C8 003B9128 48 00 00 8C */ b lbl_803BC254 +lbl_803BC1CC: +/* 803BC1CC 003B912C 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803BC1D0 003B9130 38 03 00 01 */ addi r0, r3, 1 +/* 803BC1D4 003B9134 2C 00 00 07 */ cmpwi r0, 7 +/* 803BC1D8 003B9138 90 1F 00 24 */ stw r0, 0x24(r31) +/* 803BC1DC 003B913C 40 80 00 18 */ bge lbl_803BC1F4 +/* 803BC1E0 003B9140 7F 83 E3 78 */ mr r3, r28 +/* 803BC1E4 003B9144 4B FF FB 75 */ bl DoMount +/* 803BC1E8 003B9148 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BC1EC 003B914C 41 80 00 68 */ blt lbl_803BC254 +/* 803BC1F0 003B9150 48 00 00 90 */ b lbl_803BC280 +lbl_803BC1F4: +/* 803BC1F4 003B9154 7F E3 FB 78 */ mr r3, r31 +/* 803BC1F8 003B9158 4B FF F2 D5 */ bl __CARDVerify +/* 803BC1FC 003B915C 7C 7D 1B 78 */ mr r29, r3 +/* 803BC200 003B9160 48 00 00 54 */ b lbl_803BC254 +lbl_803BC204: +/* 803BC204 003B9164 3C 60 80 3C */ lis r3, __CARDMountCallback@ha +/* 803BC208 003B9168 38 03 C1 68 */ addi r0, r3, __CARDMountCallback@l +/* 803BC20C 003B916C 3C 60 80 3C */ lis r3, __CARDUnlockedHandler@ha +/* 803BC210 003B9170 90 1F 00 DC */ stw r0, 0xdc(r31) +/* 803BC214 003B9174 38 A3 81 10 */ addi r5, r3, __CARDUnlockedHandler@l +/* 803BC218 003B9178 38 7C 00 00 */ addi r3, r28, 0 +/* 803BC21C 003B917C 38 80 00 00 */ li r4, 0 +/* 803BC220 003B9180 48 00 51 45 */ bl EXILock +/* 803BC224 003B9184 2C 03 00 00 */ cmpwi r3, 0 +/* 803BC228 003B9188 41 82 00 58 */ beq lbl_803BC280 +/* 803BC22C 003B918C 38 00 00 00 */ li r0, 0 +/* 803BC230 003B9190 90 1F 00 DC */ stw r0, 0xdc(r31) +/* 803BC234 003B9194 7F 83 E3 78 */ mr r3, r28 +/* 803BC238 003B9198 4B FF FB 21 */ bl DoMount +/* 803BC23C 003B919C 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BC240 003B91A0 41 80 00 14 */ blt lbl_803BC254 +/* 803BC244 003B91A4 48 00 00 3C */ b lbl_803BC280 +lbl_803BC248: +/* 803BC248 003B91A8 38 7C 00 00 */ addi r3, r28, 0 +/* 803BC24C 003B91AC 38 9D 00 00 */ addi r4, r29, 0 +/* 803BC250 003B91B0 48 00 01 F1 */ bl DoUnmount +lbl_803BC254: +/* 803BC254 003B91B4 83 DF 00 D0 */ lwz r30, 0xd0(r31) +/* 803BC258 003B91B8 38 00 00 00 */ li r0, 0 +/* 803BC25C 003B91BC 38 7F 00 00 */ addi r3, r31, 0 +/* 803BC260 003B91C0 90 1F 00 D0 */ stw r0, 0xd0(r31) +/* 803BC264 003B91C4 7F A4 EB 78 */ mr r4, r29 +/* 803BC268 003B91C8 4B FF CB F1 */ bl __CARDPutControlBlock +/* 803BC26C 003B91CC 39 9E 00 00 */ addi r12, r30, 0 +/* 803BC270 003B91D0 7D 88 03 A6 */ mtlr r12 +/* 803BC274 003B91D4 38 7C 00 00 */ addi r3, r28, 0 +/* 803BC278 003B91D8 38 9D 00 00 */ addi r4, r29, 0 +/* 803BC27C 003B91DC 4E 80 00 21 */ blrl +lbl_803BC280: +/* 803BC280 003B91E0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BC284 003B91E4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BC288 003B91E8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BC28C 003B91EC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BC290 003B91F0 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803BC294 003B91F4 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BC298 003B91F8 7C 08 03 A6 */ mtlr r0 +/* 803BC29C 003B91FC 4E 80 00 20 */ blr + +.global CARDMountAsync +CARDMountAsync: +/* 803BC2A0 003B9200 7C 08 02 A6 */ mflr r0 +/* 803BC2A4 003B9204 90 01 00 04 */ stw r0, 4(r1) +/* 803BC2A8 003B9208 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BC2AC 003B920C BF 41 00 18 */ stmw r26, 0x18(r1) +/* 803BC2B0 003B9210 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803BC2B4 003B9214 3B 44 00 00 */ addi r26, r4, 0 +/* 803BC2B8 003B9218 3B 65 00 00 */ addi r27, r5, 0 +/* 803BC2BC 003B921C 3B A6 00 00 */ addi r29, r6, 0 +/* 803BC2C0 003B9220 41 80 00 0C */ blt lbl_803BC2CC +/* 803BC2C4 003B9224 2C 1E 00 02 */ cmpwi r30, 2 +/* 803BC2C8 003B9228 41 80 00 0C */ blt lbl_803BC2D4 +lbl_803BC2CC: +/* 803BC2CC 003B922C 38 60 FF 80 */ li r3, -128 +/* 803BC2D0 003B9230 48 00 01 5C */ b lbl_803BC42C +lbl_803BC2D4: +/* 803BC2D4 003B9234 3C 60 80 00 */ lis r3, 0x800030E3@ha +/* 803BC2D8 003B9238 88 03 30 E3 */ lbz r0, 0x800030E3@l(r3) +/* 803BC2DC 003B923C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 803BC2E0 003B9240 41 82 00 0C */ beq lbl_803BC2EC +/* 803BC2E4 003B9244 38 60 FF FD */ li r3, -3 +/* 803BC2E8 003B9248 48 00 01 44 */ b lbl_803BC42C +lbl_803BC2EC: +/* 803BC2EC 003B924C 1C 9E 01 10 */ mulli r4, r30, 0x110 +/* 803BC2F0 003B9250 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BC2F4 003B9254 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BC2F8 003B9258 7F E0 22 14 */ add r31, r0, r4 +/* 803BC2FC 003B925C 4B FC 53 65 */ bl OSDisableInterrupts +/* 803BC300 003B9260 80 1F 00 04 */ lwz r0, 4(r31) +/* 803BC304 003B9264 3B 83 00 00 */ addi r28, r3, 0 +/* 803BC308 003B9268 2C 00 FF FF */ cmpwi r0, -1 +/* 803BC30C 003B926C 40 82 00 14 */ bne lbl_803BC320 +/* 803BC310 003B9270 7F 83 E3 78 */ mr r3, r28 +/* 803BC314 003B9274 4B FC 53 75 */ bl OSRestoreInterrupts +/* 803BC318 003B9278 38 60 FF FF */ li r3, -1 +/* 803BC31C 003B927C 48 00 01 10 */ b lbl_803BC42C +lbl_803BC320: +/* 803BC320 003B9280 80 1F 00 00 */ lwz r0, 0(r31) +/* 803BC324 003B9284 2C 00 00 00 */ cmpwi r0, 0 +/* 803BC328 003B9288 40 82 00 24 */ bne lbl_803BC34C +/* 803BC32C 003B928C 7F C3 F3 78 */ mr r3, r30 +/* 803BC330 003B9290 48 00 52 05 */ bl EXIGetState +/* 803BC334 003B9294 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c +/* 803BC338 003B9298 41 82 00 14 */ beq lbl_803BC34C +/* 803BC33C 003B929C 7F 83 E3 78 */ mr r3, r28 +/* 803BC340 003B92A0 4B FC 53 49 */ bl OSRestoreInterrupts +/* 803BC344 003B92A4 38 60 FF FE */ li r3, -2 +/* 803BC348 003B92A8 48 00 00 E4 */ b lbl_803BC42C +lbl_803BC34C: +/* 803BC34C 003B92AC 38 00 FF FF */ li r0, -1 +/* 803BC350 003B92B0 90 1F 00 04 */ stw r0, 4(r31) +/* 803BC354 003B92B4 28 1D 00 00 */ cmplwi r29, 0 +/* 803BC358 003B92B8 93 5F 00 80 */ stw r26, 0x80(r31) +/* 803BC35C 003B92BC 93 7F 00 C4 */ stw r27, 0xc4(r31) +/* 803BC360 003B92C0 41 82 00 0C */ beq lbl_803BC36C +/* 803BC364 003B92C4 7F A0 EB 78 */ mr r0, r29 +/* 803BC368 003B92C8 48 00 00 0C */ b lbl_803BC374 +lbl_803BC36C: +/* 803BC36C 003B92CC 3C 60 80 3B */ lis r3, __CARDDefaultApiCallback@ha +/* 803BC370 003B92D0 38 03 7E 74 */ addi r0, r3, __CARDDefaultApiCallback@l +lbl_803BC374: +/* 803BC374 003B92D4 90 1F 00 D0 */ stw r0, 0xd0(r31) +/* 803BC378 003B92D8 38 00 00 00 */ li r0, 0 +/* 803BC37C 003B92DC 90 1F 00 CC */ stw r0, 0xcc(r31) +/* 803BC380 003B92E0 80 1F 00 00 */ lwz r0, 0(r31) +/* 803BC384 003B92E4 2C 00 00 00 */ cmpwi r0, 0 +/* 803BC388 003B92E8 40 82 00 34 */ bne lbl_803BC3BC +/* 803BC38C 003B92EC 3C 60 80 3B */ lis r3, __CARDExtHandler@ha +/* 803BC390 003B92F0 38 83 7E 78 */ addi r4, r3, __CARDExtHandler@l +/* 803BC394 003B92F4 38 7E 00 00 */ addi r3, r30, 0 +/* 803BC398 003B92F8 48 00 46 FD */ bl EXIAttach +/* 803BC39C 003B92FC 2C 03 00 00 */ cmpwi r3, 0 +/* 803BC3A0 003B9300 40 82 00 1C */ bne lbl_803BC3BC +/* 803BC3A4 003B9304 38 00 FF FD */ li r0, -3 +/* 803BC3A8 003B9308 90 1F 00 04 */ stw r0, 4(r31) +/* 803BC3AC 003B930C 7F 83 E3 78 */ mr r3, r28 +/* 803BC3B0 003B9310 4B FC 52 D9 */ bl OSRestoreInterrupts +/* 803BC3B4 003B9314 38 60 FF FD */ li r3, -3 +/* 803BC3B8 003B9318 48 00 00 74 */ b lbl_803BC42C +lbl_803BC3BC: +/* 803BC3BC 003B931C 3B A0 00 00 */ li r29, 0 +/* 803BC3C0 003B9320 93 BF 00 24 */ stw r29, 0x24(r31) +/* 803BC3C4 003B9324 38 00 00 01 */ li r0, 1 +/* 803BC3C8 003B9328 38 7E 00 00 */ addi r3, r30, 0 +/* 803BC3CC 003B932C 90 1F 00 00 */ stw r0, 0(r31) +/* 803BC3D0 003B9330 38 80 00 00 */ li r4, 0 +/* 803BC3D4 003B9334 48 00 43 9D */ bl EXISetExiCallback +/* 803BC3D8 003B9338 38 7F 00 E0 */ addi r3, r31, 0xe0 +/* 803BC3DC 003B933C 4B FC 20 19 */ bl OSCancelAlarm +/* 803BC3E0 003B9340 93 BF 00 84 */ stw r29, 0x84(r31) +/* 803BC3E4 003B9344 7F 83 E3 78 */ mr r3, r28 +/* 803BC3E8 003B9348 93 BF 00 88 */ stw r29, 0x88(r31) +/* 803BC3EC 003B934C 4B FC 52 9D */ bl OSRestoreInterrupts +/* 803BC3F0 003B9350 3C 60 80 3C */ lis r3, __CARDMountCallback@ha +/* 803BC3F4 003B9354 38 03 C1 68 */ addi r0, r3, __CARDMountCallback@l +/* 803BC3F8 003B9358 3C 60 80 3C */ lis r3, __CARDUnlockedHandler@ha +/* 803BC3FC 003B935C 90 1F 00 DC */ stw r0, 0xdc(r31) +/* 803BC400 003B9360 38 A3 81 10 */ addi r5, r3, __CARDUnlockedHandler@l +/* 803BC404 003B9364 38 7E 00 00 */ addi r3, r30, 0 +/* 803BC408 003B9368 38 80 00 00 */ li r4, 0 +/* 803BC40C 003B936C 48 00 4F 59 */ bl EXILock +/* 803BC410 003B9370 2C 03 00 00 */ cmpwi r3, 0 +/* 803BC414 003B9374 40 82 00 0C */ bne lbl_803BC420 +/* 803BC418 003B9378 38 60 00 00 */ li r3, 0 +/* 803BC41C 003B937C 48 00 00 10 */ b lbl_803BC42C +lbl_803BC420: +/* 803BC420 003B9380 93 BF 00 DC */ stw r29, 0xdc(r31) +/* 803BC424 003B9384 7F C3 F3 78 */ mr r3, r30 +/* 803BC428 003B9388 4B FF F9 31 */ bl DoMount +lbl_803BC42C: +/* 803BC42C 003B938C BB 41 00 18 */ lmw r26, 0x18(r1) +/* 803BC430 003B9390 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BC434 003B9394 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BC438 003B9398 7C 08 03 A6 */ mtlr r0 +/* 803BC43C 003B939C 4E 80 00 20 */ blr + +.global DoUnmount +DoUnmount: +/* 803BC440 003B93A0 7C 08 02 A6 */ mflr r0 +/* 803BC444 003B93A4 90 01 00 04 */ stw r0, 4(r1) +/* 803BC448 003B93A8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BC44C 003B93AC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BC450 003B93B0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BC454 003B93B4 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BC458 003B93B8 3B A4 00 00 */ addi r29, r4, 0 +/* 803BC45C 003B93BC 93 81 00 10 */ stw r28, 0x10(r1) +/* 803BC460 003B93C0 3B 83 00 00 */ addi r28, r3, 0 +/* 803BC464 003B93C4 1C BC 01 10 */ mulli r5, r28, 0x110 +/* 803BC468 003B93C8 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BC46C 003B93CC 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BC470 003B93D0 7F E0 2A 14 */ add r31, r0, r5 +/* 803BC474 003B93D4 4B FC 51 ED */ bl OSDisableInterrupts +/* 803BC478 003B93D8 80 1F 00 00 */ lwz r0, 0(r31) +/* 803BC47C 003B93DC 3B C3 00 00 */ addi r30, r3, 0 +/* 803BC480 003B93E0 2C 00 00 00 */ cmpwi r0, 0 +/* 803BC484 003B93E4 41 82 00 30 */ beq lbl_803BC4B4 +/* 803BC488 003B93E8 38 7C 00 00 */ addi r3, r28, 0 +/* 803BC48C 003B93EC 38 80 00 00 */ li r4, 0 +/* 803BC490 003B93F0 48 00 42 E1 */ bl EXISetExiCallback +/* 803BC494 003B93F4 7F 83 E3 78 */ mr r3, r28 +/* 803BC498 003B93F8 48 00 47 09 */ bl EXIDetach +/* 803BC49C 003B93FC 38 7F 00 E0 */ addi r3, r31, 0xe0 +/* 803BC4A0 003B9400 4B FC 1F 55 */ bl OSCancelAlarm +/* 803BC4A4 003B9404 38 00 00 00 */ li r0, 0 +/* 803BC4A8 003B9408 90 1F 00 00 */ stw r0, 0(r31) +/* 803BC4AC 003B940C 93 BF 00 04 */ stw r29, 4(r31) +/* 803BC4B0 003B9410 90 1F 00 24 */ stw r0, 0x24(r31) +lbl_803BC4B4: +/* 803BC4B4 003B9414 7F C3 F3 78 */ mr r3, r30 +/* 803BC4B8 003B9418 4B FC 51 D1 */ bl OSRestoreInterrupts +/* 803BC4BC 003B941C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BC4C0 003B9420 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BC4C4 003B9424 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BC4C8 003B9428 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BC4CC 003B942C 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803BC4D0 003B9430 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BC4D4 003B9434 7C 08 03 A6 */ mtlr r0 +/* 803BC4D8 003B9438 4E 80 00 20 */ blr + +.global CARDUnmount +CARDUnmount: +/* 803BC4DC 003B943C 7C 08 02 A6 */ mflr r0 +/* 803BC4E0 003B9440 90 01 00 04 */ stw r0, 4(r1) +/* 803BC4E4 003B9444 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BC4E8 003B9448 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BC4EC 003B944C 38 81 00 0C */ addi r4, r1, 0xc +/* 803BC4F0 003B9450 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BC4F4 003B9454 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BC4F8 003B9458 3B A3 00 00 */ addi r29, r3, 0 +/* 803BC4FC 003B945C 4B FF C8 A5 */ bl __CARDGetControlBlock +/* 803BC500 003B9460 2C 03 00 00 */ cmpwi r3, 0 +/* 803BC504 003B9464 40 80 00 08 */ bge lbl_803BC50C +/* 803BC508 003B9468 48 00 00 64 */ b lbl_803BC56C +lbl_803BC50C: +/* 803BC50C 003B946C 1C 9D 01 10 */ mulli r4, r29, 0x110 +/* 803BC510 003B9470 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BC514 003B9474 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BC518 003B9478 7F C0 22 14 */ add r30, r0, r4 +/* 803BC51C 003B947C 4B FC 51 45 */ bl OSDisableInterrupts +/* 803BC520 003B9480 80 1E 00 00 */ lwz r0, 0(r30) +/* 803BC524 003B9484 3B E3 00 00 */ addi r31, r3, 0 +/* 803BC528 003B9488 2C 00 00 00 */ cmpwi r0, 0 +/* 803BC52C 003B948C 41 82 00 34 */ beq lbl_803BC560 +/* 803BC530 003B9490 38 7D 00 00 */ addi r3, r29, 0 +/* 803BC534 003B9494 38 80 00 00 */ li r4, 0 +/* 803BC538 003B9498 48 00 42 39 */ bl EXISetExiCallback +/* 803BC53C 003B949C 7F A3 EB 78 */ mr r3, r29 +/* 803BC540 003B94A0 48 00 46 61 */ bl EXIDetach +/* 803BC544 003B94A4 38 7E 00 E0 */ addi r3, r30, 0xe0 +/* 803BC548 003B94A8 4B FC 1E AD */ bl OSCancelAlarm +/* 803BC54C 003B94AC 38 60 00 00 */ li r3, 0 +/* 803BC550 003B94B0 90 7E 00 00 */ stw r3, 0(r30) +/* 803BC554 003B94B4 38 00 FF FD */ li r0, -3 +/* 803BC558 003B94B8 90 1E 00 04 */ stw r0, 4(r30) +/* 803BC55C 003B94BC 90 7E 00 24 */ stw r3, 0x24(r30) +lbl_803BC560: +/* 803BC560 003B94C0 7F E3 FB 78 */ mr r3, r31 +/* 803BC564 003B94C4 4B FC 51 25 */ bl OSRestoreInterrupts +/* 803BC568 003B94C8 38 60 00 00 */ li r3, 0 +lbl_803BC56C: +/* 803BC56C 003B94CC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BC570 003B94D0 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BC574 003B94D4 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BC578 003B94D8 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BC57C 003B94DC 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BC580 003B94E0 7C 08 03 A6 */ mtlr r0 +/* 803BC584 003B94E4 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDNet.s b/asm/Dolphin/CARD/CARDNet.s new file mode 100644 index 00000000..b68ac544 --- /dev/null +++ b/asm/Dolphin/CARD/CARDNet.s @@ -0,0 +1,59 @@ +.include "macros.inc" + +.section .text, "ax" + +.global CARDGetSerialNo +CARDGetSerialNo: +/* 803BE5E8 003BB548 7C 08 02 A6 */ mflr r0 +/* 803BE5EC 003BB54C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE5F0 003BB550 90 01 00 04 */ stw r0, 4(r1) +/* 803BE5F4 003BB554 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BE5F8 003BB558 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BE5FC 003BB55C 3B E4 00 00 */ addi r31, r4, 0 +/* 803BE600 003BB560 41 80 00 0C */ blt lbl_803BE60C +/* 803BE604 003BB564 2C 03 00 02 */ cmpwi r3, 2 +/* 803BE608 003BB568 41 80 00 0C */ blt lbl_803BE614 +lbl_803BE60C: +/* 803BE60C 003BB56C 38 60 FF 80 */ li r3, -128 +/* 803BE610 003BB570 48 00 00 88 */ b lbl_803BE698 +lbl_803BE614: +/* 803BE614 003BB574 38 81 00 10 */ addi r4, r1, 0x10 +/* 803BE618 003BB578 4B FF A7 89 */ bl __CARDGetControlBlock +/* 803BE61C 003BB57C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE620 003BB580 40 80 00 08 */ bge lbl_803BE628 +/* 803BE624 003BB584 48 00 00 74 */ b lbl_803BE698 +lbl_803BE628: +/* 803BE628 003BB588 80 61 00 10 */ lwz r3, 0x10(r1) +/* 803BE62C 003BB58C 38 E0 00 00 */ li r7, 0 +/* 803BE630 003BB590 38 C0 00 00 */ li r6, 0 +/* 803BE634 003BB594 80 A3 00 80 */ lwz r5, 0x80(r3) +/* 803BE638 003BB598 38 80 00 00 */ li r4, 0 +/* 803BE63C 003BB59C 80 65 00 04 */ lwz r3, 4(r5) +/* 803BE640 003BB5A0 80 05 00 00 */ lwz r0, 0(r5) +/* 803BE644 003BB5A4 7C E7 1A 78 */ xor r7, r7, r3 +/* 803BE648 003BB5A8 38 65 00 08 */ addi r3, r5, 8 +/* 803BE64C 003BB5AC 7C C6 02 78 */ xor r6, r6, r0 +/* 803BE650 003BB5B0 80 05 00 08 */ lwz r0, 8(r5) +/* 803BE654 003BB5B4 80 63 00 04 */ lwz r3, 4(r3) +/* 803BE658 003BB5B8 7C C6 02 78 */ xor r6, r6, r0 +/* 803BE65C 003BB5BC 7C E7 1A 78 */ xor r7, r7, r3 +/* 803BE660 003BB5C0 38 65 00 10 */ addi r3, r5, 0x10 +/* 803BE664 003BB5C4 80 05 00 10 */ lwz r0, 0x10(r5) +/* 803BE668 003BB5C8 80 63 00 04 */ lwz r3, 4(r3) +/* 803BE66C 003BB5CC 7C C6 02 78 */ xor r6, r6, r0 +/* 803BE670 003BB5D0 7C E7 1A 78 */ xor r7, r7, r3 +/* 803BE674 003BB5D4 38 65 00 18 */ addi r3, r5, 0x18 +/* 803BE678 003BB5D8 80 05 00 18 */ lwz r0, 0x18(r5) +/* 803BE67C 003BB5DC 80 63 00 04 */ lwz r3, 4(r3) +/* 803BE680 003BB5E0 7C C6 02 78 */ xor r6, r6, r0 +/* 803BE684 003BB5E4 7C E7 1A 78 */ xor r7, r7, r3 +/* 803BE688 003BB5E8 90 FF 00 04 */ stw r7, 4(r31) +/* 803BE68C 003BB5EC 90 DF 00 00 */ stw r6, 0(r31) +/* 803BE690 003BB5F0 80 61 00 10 */ lwz r3, 0x10(r1) +/* 803BE694 003BB5F4 4B FF A7 C5 */ bl __CARDPutControlBlock +lbl_803BE698: +/* 803BE698 003BB5F8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BE69C 003BB5FC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BE6A0 003BB600 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BE6A4 003BB604 7C 08 03 A6 */ mtlr r0 +/* 803BE6A8 003BB608 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDOpen.s b/asm/Dolphin/CARD/CARDOpen.s new file mode 100644 index 00000000..729473da --- /dev/null +++ b/asm/Dolphin/CARD/CARDOpen.s @@ -0,0 +1,339 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __CARDCompareFileName +__CARDCompareFileName: +/* 803BCD6C 003B9CCC 38 A3 00 08 */ addi r5, r3, 8 +/* 803BCD70 003B9CD0 38 E0 00 20 */ li r7, 0x20 +/* 803BCD74 003B9CD4 48 00 00 3C */ b lbl_803BCDB0 +lbl_803BCD78: +/* 803BCD78 003B9CD8 88 05 00 00 */ lbz r0, 0(r5) +/* 803BCD7C 003B9CDC 38 A5 00 01 */ addi r5, r5, 1 +/* 803BCD80 003B9CE0 88 C4 00 00 */ lbz r6, 0(r4) +/* 803BCD84 003B9CE4 38 84 00 01 */ addi r4, r4, 1 +/* 803BCD88 003B9CE8 7C 03 07 74 */ extsb r3, r0 +/* 803BCD8C 003B9CEC 7C C0 07 74 */ extsb r0, r6 +/* 803BCD90 003B9CF0 7C 03 00 00 */ cmpw r3, r0 +/* 803BCD94 003B9CF4 41 82 00 0C */ beq lbl_803BCDA0 +/* 803BCD98 003B9CF8 38 60 00 00 */ li r3, 0 +/* 803BCD9C 003B9CFC 4E 80 00 20 */ blr +lbl_803BCDA0: +/* 803BCDA0 003B9D00 7C C0 07 75 */ extsb. r0, r6 +/* 803BCDA4 003B9D04 40 82 00 0C */ bne lbl_803BCDB0 +/* 803BCDA8 003B9D08 38 60 00 01 */ li r3, 1 +/* 803BCDAC 003B9D0C 4E 80 00 20 */ blr +lbl_803BCDB0: +/* 803BCDB0 003B9D10 34 E7 FF FF */ addic. r7, r7, -1 +/* 803BCDB4 003B9D14 40 80 FF C4 */ bge lbl_803BCD78 +/* 803BCDB8 003B9D18 88 04 00 00 */ lbz r0, 0(r4) +/* 803BCDBC 003B9D1C 7C 00 07 75 */ extsb. r0, r0 +/* 803BCDC0 003B9D20 40 82 00 0C */ bne lbl_803BCDCC +/* 803BCDC4 003B9D24 38 60 00 01 */ li r3, 1 +/* 803BCDC8 003B9D28 4E 80 00 20 */ blr +lbl_803BCDCC: +/* 803BCDCC 003B9D2C 38 60 00 00 */ li r3, 0 +/* 803BCDD0 003B9D30 4E 80 00 20 */ blr + +.global __CARDAccess +__CARDAccess: +/* 803BCDD4 003B9D34 7C 08 02 A6 */ mflr r0 +/* 803BCDD8 003B9D38 90 01 00 04 */ stw r0, 4(r1) +/* 803BCDDC 003B9D3C 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BCDE0 003B9D40 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BCDE4 003B9D44 7C 9F 23 78 */ mr r31, r4 +/* 803BCDE8 003B9D48 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803BCDEC 003B9D4C 3B C3 00 00 */ addi r30, r3, 0 +/* 803BCDF0 003B9D50 88 04 00 00 */ lbz r0, 0(r4) +/* 803BCDF4 003B9D54 28 00 00 FF */ cmplwi r0, 0xff +/* 803BCDF8 003B9D58 40 82 00 0C */ bne lbl_803BCE04 +/* 803BCDFC 003B9D5C 38 60 FF FC */ li r3, -4 +/* 803BCE00 003B9D60 48 00 00 54 */ b lbl_803BCE54 +lbl_803BCE04: +/* 803BCE04 003B9D64 3C 60 80 57 */ lis r3, lbl_80569C78@ha +/* 803BCE08 003B9D68 80 9E 01 0C */ lwz r4, 0x10c(r30) +/* 803BCE0C 003B9D6C 38 03 9C 78 */ addi r0, r3, lbl_80569C78@l +/* 803BCE10 003B9D70 7C 04 00 40 */ cmplw r4, r0 +/* 803BCE14 003B9D74 41 82 00 34 */ beq lbl_803BCE48 +/* 803BCE18 003B9D78 38 7F 00 00 */ addi r3, r31, 0 +/* 803BCE1C 003B9D7C 38 A0 00 04 */ li r5, 4 +/* 803BCE20 003B9D80 4B FD 0A 5D */ bl memcmp +/* 803BCE24 003B9D84 2C 03 00 00 */ cmpwi r3, 0 +/* 803BCE28 003B9D88 40 82 00 28 */ bne lbl_803BCE50 +/* 803BCE2C 003B9D8C 80 9E 01 0C */ lwz r4, 0x10c(r30) +/* 803BCE30 003B9D90 38 7F 00 04 */ addi r3, r31, 4 +/* 803BCE34 003B9D94 38 A0 00 02 */ li r5, 2 +/* 803BCE38 003B9D98 38 84 00 04 */ addi r4, r4, 4 +/* 803BCE3C 003B9D9C 4B FD 0A 41 */ bl memcmp +/* 803BCE40 003B9DA0 2C 03 00 00 */ cmpwi r3, 0 +/* 803BCE44 003B9DA4 40 82 00 0C */ bne lbl_803BCE50 +lbl_803BCE48: +/* 803BCE48 003B9DA8 38 60 00 00 */ li r3, 0 +/* 803BCE4C 003B9DAC 48 00 00 08 */ b lbl_803BCE54 +lbl_803BCE50: +/* 803BCE50 003B9DB0 38 60 FF F6 */ li r3, -10 +lbl_803BCE54: +/* 803BCE54 003B9DB4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BCE58 003B9DB8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BCE5C 003B9DBC 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803BCE60 003B9DC0 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BCE64 003B9DC4 7C 08 03 A6 */ mtlr r0 +/* 803BCE68 003B9DC8 4E 80 00 20 */ blr + +.global sub_803bce6c +sub_803bce6c: +/* 803BCE6C 003B9DCC 88 03 00 00 */ lbz r0, 0(r3) +/* 803BCE70 003B9DD0 28 00 00 FF */ cmplwi r0, 0xff +/* 803BCE74 003B9DD4 40 82 00 0C */ bne lbl_803BCE80 +/* 803BCE78 003B9DD8 38 60 FF FC */ li r3, -4 +/* 803BCE7C 003B9DDC 4E 80 00 20 */ blr +lbl_803BCE80: +/* 803BCE80 003B9DE0 88 03 00 34 */ lbz r0, 0x34(r3) +/* 803BCE84 003B9DE4 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803BCE88 003B9DE8 41 82 00 0C */ beq lbl_803BCE94 +/* 803BCE8C 003B9DEC 38 60 00 00 */ li r3, 0 +/* 803BCE90 003B9DF0 4E 80 00 20 */ blr +lbl_803BCE94: +/* 803BCE94 003B9DF4 38 60 FF F6 */ li r3, -10 +/* 803BCE98 003B9DF8 4E 80 00 20 */ blr + +.global sub_803bce9c +sub_803bce9c: +/* 803BCE9C 003B9DFC 7C 08 02 A6 */ mflr r0 +/* 803BCEA0 003B9E00 90 01 00 04 */ stw r0, 4(r1) +/* 803BCEA4 003B9E04 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BCEA8 003B9E08 BF 41 00 18 */ stmw r26, 0x18(r1) +/* 803BCEAC 003B9E0C 7C 7B 1B 78 */ mr r27, r3 +/* 803BCEB0 003B9E10 3B 84 00 00 */ addi r28, r4, 0 +/* 803BCEB4 003B9E14 3B A5 00 00 */ addi r29, r5, 0 +/* 803BCEB8 003B9E18 80 03 00 00 */ lwz r0, 0(r3) +/* 803BCEBC 003B9E1C 2C 00 00 00 */ cmpwi r0, 0 +/* 803BCEC0 003B9E20 40 82 00 0C */ bne lbl_803BCECC +/* 803BCEC4 003B9E24 38 60 FF FD */ li r3, -3 +/* 803BCEC8 003B9E28 48 00 01 10 */ b lbl_803BCFD8 +lbl_803BCECC: +/* 803BCECC 003B9E2C 7F 63 DB 78 */ mr r3, r27 +/* 803BCED0 003B9E30 4B FF DA A1 */ bl __CARDGetDirBlock +/* 803BCED4 003B9E34 3C 80 80 57 */ lis r4, lbl_80569C78@ha +/* 803BCED8 003B9E38 3B E3 00 00 */ addi r31, r3, 0 +/* 803BCEDC 003B9E3C 3B 44 9C 78 */ addi r26, r4, lbl_80569C78@l +/* 803BCEE0 003B9E40 3B C0 00 00 */ li r30, 0 +lbl_803BCEE4: +/* 803BCEE4 003B9E44 88 1F 00 00 */ lbz r0, 0(r31) +/* 803BCEE8 003B9E48 28 00 00 FF */ cmplwi r0, 0xff +/* 803BCEEC 003B9E4C 40 82 00 0C */ bne lbl_803BCEF8 +/* 803BCEF0 003B9E50 38 00 FF FC */ li r0, -4 +/* 803BCEF4 003B9E54 48 00 00 4C */ b lbl_803BCF40 +lbl_803BCEF8: +/* 803BCEF8 003B9E58 80 9B 01 0C */ lwz r4, 0x10c(r27) +/* 803BCEFC 003B9E5C 7C 04 D0 40 */ cmplw r4, r26 +/* 803BCF00 003B9E60 41 82 00 34 */ beq lbl_803BCF34 +/* 803BCF04 003B9E64 38 7F 00 00 */ addi r3, r31, 0 +/* 803BCF08 003B9E68 38 A0 00 04 */ li r5, 4 +/* 803BCF0C 003B9E6C 4B FD 09 71 */ bl memcmp +/* 803BCF10 003B9E70 2C 03 00 00 */ cmpwi r3, 0 +/* 803BCF14 003B9E74 40 82 00 28 */ bne lbl_803BCF3C +/* 803BCF18 003B9E78 80 9B 01 0C */ lwz r4, 0x10c(r27) +/* 803BCF1C 003B9E7C 38 7F 00 04 */ addi r3, r31, 4 +/* 803BCF20 003B9E80 38 A0 00 02 */ li r5, 2 +/* 803BCF24 003B9E84 38 84 00 04 */ addi r4, r4, 4 +/* 803BCF28 003B9E88 4B FD 09 55 */ bl memcmp +/* 803BCF2C 003B9E8C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BCF30 003B9E90 40 82 00 0C */ bne lbl_803BCF3C +lbl_803BCF34: +/* 803BCF34 003B9E94 38 00 00 00 */ li r0, 0 +/* 803BCF38 003B9E98 48 00 00 08 */ b lbl_803BCF40 +lbl_803BCF3C: +/* 803BCF3C 003B9E9C 38 00 FF F6 */ li r0, -10 +lbl_803BCF40: +/* 803BCF40 003B9EA0 2C 00 00 00 */ cmpwi r0, 0 +/* 803BCF44 003B9EA4 41 80 00 80 */ blt lbl_803BCFC4 +/* 803BCF48 003B9EA8 38 FC 00 00 */ addi r7, r28, 0 +/* 803BCF4C 003B9EAC 38 DF 00 08 */ addi r6, r31, 8 +/* 803BCF50 003B9EB0 38 80 00 20 */ li r4, 0x20 +/* 803BCF54 003B9EB4 48 00 00 3C */ b lbl_803BCF90 +lbl_803BCF58: +/* 803BCF58 003B9EB8 88 06 00 00 */ lbz r0, 0(r6) +/* 803BCF5C 003B9EBC 38 C6 00 01 */ addi r6, r6, 1 +/* 803BCF60 003B9EC0 88 A7 00 00 */ lbz r5, 0(r7) +/* 803BCF64 003B9EC4 38 E7 00 01 */ addi r7, r7, 1 +/* 803BCF68 003B9EC8 7C 03 07 74 */ extsb r3, r0 +/* 803BCF6C 003B9ECC 7C A0 07 74 */ extsb r0, r5 +/* 803BCF70 003B9ED0 7C 03 00 00 */ cmpw r3, r0 +/* 803BCF74 003B9ED4 41 82 00 0C */ beq lbl_803BCF80 +/* 803BCF78 003B9ED8 38 00 00 00 */ li r0, 0 +/* 803BCF7C 003B9EDC 48 00 00 34 */ b lbl_803BCFB0 +lbl_803BCF80: +/* 803BCF80 003B9EE0 7C A0 07 75 */ extsb. r0, r5 +/* 803BCF84 003B9EE4 40 82 00 0C */ bne lbl_803BCF90 +/* 803BCF88 003B9EE8 38 00 00 01 */ li r0, 1 +/* 803BCF8C 003B9EEC 48 00 00 24 */ b lbl_803BCFB0 +lbl_803BCF90: +/* 803BCF90 003B9EF0 34 84 FF FF */ addic. r4, r4, -1 +/* 803BCF94 003B9EF4 40 80 FF C4 */ bge lbl_803BCF58 +/* 803BCF98 003B9EF8 88 07 00 00 */ lbz r0, 0(r7) +/* 803BCF9C 003B9EFC 7C 00 07 75 */ extsb. r0, r0 +/* 803BCFA0 003B9F00 40 82 00 0C */ bne lbl_803BCFAC +/* 803BCFA4 003B9F04 38 00 00 01 */ li r0, 1 +/* 803BCFA8 003B9F08 48 00 00 08 */ b lbl_803BCFB0 +lbl_803BCFAC: +/* 803BCFAC 003B9F0C 38 00 00 00 */ li r0, 0 +lbl_803BCFB0: +/* 803BCFB0 003B9F10 2C 00 00 00 */ cmpwi r0, 0 +/* 803BCFB4 003B9F14 41 82 00 10 */ beq lbl_803BCFC4 +/* 803BCFB8 003B9F18 93 DD 00 00 */ stw r30, 0(r29) +/* 803BCFBC 003B9F1C 38 60 00 00 */ li r3, 0 +/* 803BCFC0 003B9F20 48 00 00 18 */ b lbl_803BCFD8 +lbl_803BCFC4: +/* 803BCFC4 003B9F24 3B DE 00 01 */ addi r30, r30, 1 +/* 803BCFC8 003B9F28 2C 1E 00 7F */ cmpwi r30, 0x7f +/* 803BCFCC 003B9F2C 3B FF 00 40 */ addi r31, r31, 0x40 +/* 803BCFD0 003B9F30 41 80 FF 14 */ blt lbl_803BCEE4 +/* 803BCFD4 003B9F34 38 60 FF FC */ li r3, -4 +lbl_803BCFD8: +/* 803BCFD8 003B9F38 BB 41 00 18 */ lmw r26, 0x18(r1) +/* 803BCFDC 003B9F3C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BCFE0 003B9F40 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BCFE4 003B9F44 7C 08 03 A6 */ mtlr r0 +/* 803BCFE8 003B9F48 4E 80 00 20 */ blr + +.global CARDOpen +CARDOpen: +/* 803BCFEC 003B9F4C 7C 08 02 A6 */ mflr r0 +/* 803BCFF0 003B9F50 90 01 00 04 */ stw r0, 4(r1) +/* 803BCFF4 003B9F54 38 00 FF FF */ li r0, -1 +/* 803BCFF8 003B9F58 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803BCFFC 003B9F5C BE E1 00 1C */ stmw r23, 0x1c(r1) +/* 803BD000 003B9F60 3B 84 00 00 */ addi r28, r4, 0 +/* 803BD004 003B9F64 3B A5 00 00 */ addi r29, r5, 0 +/* 803BD008 003B9F68 3B 63 00 00 */ addi r27, r3, 0 +/* 803BD00C 003B9F6C 38 81 00 14 */ addi r4, r1, 0x14 +/* 803BD010 003B9F70 90 05 00 00 */ stw r0, 0(r5) +/* 803BD014 003B9F74 4B FF BD 8D */ bl __CARDGetControlBlock +/* 803BD018 003B9F78 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD01C 003B9F7C 40 80 00 08 */ bge lbl_803BD024 +/* 803BD020 003B9F80 48 00 01 30 */ b lbl_803BD150 +lbl_803BD024: +/* 803BD024 003B9F84 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BD028 003B9F88 80 1F 00 00 */ lwz r0, 0(r31) +/* 803BD02C 003B9F8C 2C 00 00 00 */ cmpwi r0, 0 +/* 803BD030 003B9F90 40 82 00 0C */ bne lbl_803BD03C +/* 803BD034 003B9F94 3A E0 FF FD */ li r23, -3 +/* 803BD038 003B9F98 48 00 00 B8 */ b lbl_803BD0F0 +lbl_803BD03C: +/* 803BD03C 003B9F9C 7F E3 FB 78 */ mr r3, r31 +/* 803BD040 003B9FA0 4B FF D9 31 */ bl __CARDGetDirBlock +/* 803BD044 003B9FA4 3C 80 80 57 */ lis r4, lbl_80569C78@ha +/* 803BD048 003B9FA8 3A E3 00 00 */ addi r23, r3, 0 +/* 803BD04C 003B9FAC 3B 44 9C 78 */ addi r26, r4, lbl_80569C78@l +/* 803BD050 003B9FB0 3B 20 00 00 */ li r25, 0 +lbl_803BD054: +/* 803BD054 003B9FB4 88 17 00 00 */ lbz r0, 0(r23) +/* 803BD058 003B9FB8 3B 17 00 00 */ addi r24, r23, 0 +/* 803BD05C 003B9FBC 28 00 00 FF */ cmplwi r0, 0xff +/* 803BD060 003B9FC0 40 82 00 0C */ bne lbl_803BD06C +/* 803BD064 003B9FC4 38 00 FF FC */ li r0, -4 +/* 803BD068 003B9FC8 48 00 00 4C */ b lbl_803BD0B4 +lbl_803BD06C: +/* 803BD06C 003B9FCC 80 9F 01 0C */ lwz r4, 0x10c(r31) +/* 803BD070 003B9FD0 7C 04 D0 40 */ cmplw r4, r26 +/* 803BD074 003B9FD4 41 82 00 34 */ beq lbl_803BD0A8 +/* 803BD078 003B9FD8 38 78 00 00 */ addi r3, r24, 0 +/* 803BD07C 003B9FDC 38 A0 00 04 */ li r5, 4 +/* 803BD080 003B9FE0 4B FD 07 FD */ bl memcmp +/* 803BD084 003B9FE4 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD088 003B9FE8 40 82 00 28 */ bne lbl_803BD0B0 +/* 803BD08C 003B9FEC 80 9F 01 0C */ lwz r4, 0x10c(r31) +/* 803BD090 003B9FF0 38 78 00 04 */ addi r3, r24, 4 +/* 803BD094 003B9FF4 38 A0 00 02 */ li r5, 2 +/* 803BD098 003B9FF8 38 84 00 04 */ addi r4, r4, 4 +/* 803BD09C 003B9FFC 4B FD 07 E1 */ bl memcmp +/* 803BD0A0 003BA000 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD0A4 003BA004 40 82 00 0C */ bne lbl_803BD0B0 +lbl_803BD0A8: +/* 803BD0A8 003BA008 38 00 00 00 */ li r0, 0 +/* 803BD0AC 003BA00C 48 00 00 08 */ b lbl_803BD0B4 +lbl_803BD0B0: +/* 803BD0B0 003BA010 38 00 FF F6 */ li r0, -10 +lbl_803BD0B4: +/* 803BD0B4 003BA014 2C 00 00 00 */ cmpwi r0, 0 +/* 803BD0B8 003BA018 41 80 00 24 */ blt lbl_803BD0DC +/* 803BD0BC 003BA01C 38 77 00 00 */ addi r3, r23, 0 +/* 803BD0C0 003BA020 38 9C 00 00 */ addi r4, r28, 0 +/* 803BD0C4 003BA024 4B FF FC A9 */ bl __CARDCompareFileName +/* 803BD0C8 003BA028 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD0CC 003BA02C 41 82 00 10 */ beq lbl_803BD0DC +/* 803BD0D0 003BA030 3B D9 00 00 */ addi r30, r25, 0 +/* 803BD0D4 003BA034 3A E0 00 00 */ li r23, 0 +/* 803BD0D8 003BA038 48 00 00 18 */ b lbl_803BD0F0 +lbl_803BD0DC: +/* 803BD0DC 003BA03C 3B 39 00 01 */ addi r25, r25, 1 +/* 803BD0E0 003BA040 2C 19 00 7F */ cmpwi r25, 0x7f +/* 803BD0E4 003BA044 3A F7 00 40 */ addi r23, r23, 0x40 +/* 803BD0E8 003BA048 41 80 FF 6C */ blt lbl_803BD054 +/* 803BD0EC 003BA04C 3A E0 FF FC */ li r23, -4 +lbl_803BD0F0: +/* 803BD0F0 003BA050 2C 17 00 00 */ cmpwi r23, 0 +/* 803BD0F4 003BA054 41 80 00 50 */ blt lbl_803BD144 +/* 803BD0F8 003BA058 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BD0FC 003BA05C 4B FF D8 75 */ bl __CARDGetDirBlock +/* 803BD100 003BA060 57 C0 30 32 */ slwi r0, r30, 6 +/* 803BD104 003BA064 7C A3 02 14 */ add r5, r3, r0 +/* 803BD108 003BA068 A0 85 00 36 */ lhz r4, 0x36(r5) +/* 803BD10C 003BA06C 28 04 00 05 */ cmplwi r4, 5 +/* 803BD110 003BA070 41 80 00 14 */ blt lbl_803BD124 +/* 803BD114 003BA074 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BD118 003BA078 A0 03 00 10 */ lhz r0, 0x10(r3) +/* 803BD11C 003BA07C 7C 04 00 40 */ cmplw r4, r0 +/* 803BD120 003BA080 41 80 00 0C */ blt lbl_803BD12C +lbl_803BD124: +/* 803BD124 003BA084 3A E0 FF FA */ li r23, -6 +/* 803BD128 003BA088 48 00 00 1C */ b lbl_803BD144 +lbl_803BD12C: +/* 803BD12C 003BA08C 93 7D 00 00 */ stw r27, 0(r29) +/* 803BD130 003BA090 38 00 00 00 */ li r0, 0 +/* 803BD134 003BA094 93 DD 00 04 */ stw r30, 4(r29) +/* 803BD138 003BA098 90 1D 00 08 */ stw r0, 8(r29) +/* 803BD13C 003BA09C A0 05 00 36 */ lhz r0, 0x36(r5) +/* 803BD140 003BA0A0 B0 1D 00 10 */ sth r0, 0x10(r29) +lbl_803BD144: +/* 803BD144 003BA0A4 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BD148 003BA0A8 7E E4 BB 78 */ mr r4, r23 +/* 803BD14C 003BA0AC 4B FF BD 0D */ bl __CARDPutControlBlock +lbl_803BD150: +/* 803BD150 003BA0B0 BA E1 00 1C */ lmw r23, 0x1c(r1) +/* 803BD154 003BA0B4 80 01 00 44 */ lwz r0, 0x44(r1) +/* 803BD158 003BA0B8 38 21 00 40 */ addi r1, r1, 0x40 +/* 803BD15C 003BA0BC 7C 08 03 A6 */ mtlr r0 +/* 803BD160 003BA0C0 4E 80 00 20 */ blr + +.global CARDClose +CARDClose: +/* 803BD164 003BA0C4 7C 08 02 A6 */ mflr r0 +/* 803BD168 003BA0C8 90 01 00 04 */ stw r0, 4(r1) +/* 803BD16C 003BA0CC 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BD170 003BA0D0 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BD174 003BA0D4 7C 7F 1B 78 */ mr r31, r3 +/* 803BD178 003BA0D8 38 81 00 0C */ addi r4, r1, 0xc +/* 803BD17C 003BA0DC 80 63 00 00 */ lwz r3, 0(r3) +/* 803BD180 003BA0E0 4B FF BC 21 */ bl __CARDGetControlBlock +/* 803BD184 003BA0E4 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD188 003BA0E8 40 80 00 08 */ bge lbl_803BD190 +/* 803BD18C 003BA0EC 48 00 00 18 */ b lbl_803BD1A4 +lbl_803BD190: +/* 803BD190 003BA0F0 38 00 FF FF */ li r0, -1 +/* 803BD194 003BA0F4 90 1F 00 00 */ stw r0, 0(r31) +/* 803BD198 003BA0F8 38 80 00 00 */ li r4, 0 +/* 803BD19C 003BA0FC 80 61 00 0C */ lwz r3, 0xc(r1) +/* 803BD1A0 003BA100 4B FF BC B9 */ bl __CARDPutControlBlock +lbl_803BD1A4: +/* 803BD1A4 003BA104 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BD1A8 003BA108 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BD1AC 003BA10C 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BD1B0 003BA110 7C 08 03 A6 */ mtlr r0 +/* 803BD1B4 003BA114 4E 80 00 20 */ blr + +.global __CARDIsOpened +__CARDIsOpened: +/* 803BD1B8 003BA118 38 60 00 00 */ li r3, 0 +/* 803BD1BC 003BA11C 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDRdwr.s b/asm/Dolphin/CARD/CARDRdwr.s new file mode 100644 index 00000000..70fdc0a2 --- /dev/null +++ b/asm/Dolphin/CARD/CARDRdwr.s @@ -0,0 +1,185 @@ +.include "macros.inc" + +.section .text, "ax" + +.global BlockReadCallback +BlockReadCallback: +/* 803BA2EC 003B724C 7C 08 02 A6 */ mflr r0 +/* 803BA2F0 003B7250 90 01 00 04 */ stw r0, 4(r1) +/* 803BA2F4 003B7254 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BA2F8 003B7258 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BA2FC 003B725C 3B E3 00 00 */ addi r31, r3, 0 +/* 803BA300 003B7260 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BA304 003B7264 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BA308 003B7268 1C BF 01 10 */ mulli r5, r31, 0x110 +/* 803BA30C 003B726C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BA310 003B7270 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BA314 003B7274 7C 9D 23 79 */ or. r29, r4, r4 +/* 803BA318 003B7278 7F C0 2A 14 */ add r30, r0, r5 +/* 803BA31C 003B727C 41 80 00 50 */ blt lbl_803BA36C +/* 803BA320 003B7280 80 7E 00 B8 */ lwz r3, 0xb8(r30) +/* 803BA324 003B7284 38 03 02 00 */ addi r0, r3, 0x200 +/* 803BA328 003B7288 90 1E 00 B8 */ stw r0, 0xb8(r30) +/* 803BA32C 003B728C 80 7E 00 B0 */ lwz r3, 0xb0(r30) +/* 803BA330 003B7290 38 03 02 00 */ addi r0, r3, 0x200 +/* 803BA334 003B7294 90 1E 00 B0 */ stw r0, 0xb0(r30) +/* 803BA338 003B7298 80 7E 00 B4 */ lwz r3, 0xb4(r30) +/* 803BA33C 003B729C 38 03 02 00 */ addi r0, r3, 0x200 +/* 803BA340 003B72A0 90 1E 00 B4 */ stw r0, 0xb4(r30) +/* 803BA344 003B72A4 80 7E 00 AC */ lwz r3, 0xac(r30) +/* 803BA348 003B72A8 34 03 FF FF */ addic. r0, r3, -1 +/* 803BA34C 003B72AC 90 1E 00 AC */ stw r0, 0xac(r30) +/* 803BA350 003B72B0 40 81 00 1C */ ble lbl_803BA36C +/* 803BA354 003B72B4 3C 60 80 3C */ lis r3, BlockReadCallback@ha +/* 803BA358 003B72B8 38 83 A2 EC */ addi r4, r3, BlockReadCallback@l +/* 803BA35C 003B72BC 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA360 003B72C0 4B FF E6 25 */ bl __CARDReadSegment +/* 803BA364 003B72C4 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BA368 003B72C8 40 80 00 44 */ bge lbl_803BA3AC +lbl_803BA36C: +/* 803BA36C 003B72CC 80 1E 00 D0 */ lwz r0, 0xd0(r30) +/* 803BA370 003B72D0 28 00 00 00 */ cmplwi r0, 0 +/* 803BA374 003B72D4 40 82 00 10 */ bne lbl_803BA384 +/* 803BA378 003B72D8 38 7E 00 00 */ addi r3, r30, 0 +/* 803BA37C 003B72DC 38 9D 00 00 */ addi r4, r29, 0 +/* 803BA380 003B72E0 4B FF EA D9 */ bl __CARDPutControlBlock +lbl_803BA384: +/* 803BA384 003B72E4 80 1E 00 D4 */ lwz r0, 0xd4(r30) +/* 803BA388 003B72E8 28 00 00 00 */ cmplwi r0, 0 +/* 803BA38C 003B72EC 7C 0C 03 78 */ mr r12, r0 +/* 803BA390 003B72F0 41 82 00 1C */ beq lbl_803BA3AC +/* 803BA394 003B72F4 38 00 00 00 */ li r0, 0 +/* 803BA398 003B72F8 7D 88 03 A6 */ mtlr r12 +/* 803BA39C 003B72FC 90 1E 00 D4 */ stw r0, 0xd4(r30) +/* 803BA3A0 003B7300 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA3A4 003B7304 38 9D 00 00 */ addi r4, r29, 0 +/* 803BA3A8 003B7308 4E 80 00 21 */ blrl +lbl_803BA3AC: +/* 803BA3AC 003B730C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BA3B0 003B7310 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BA3B4 003B7314 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BA3B8 003B7318 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BA3BC 003B731C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BA3C0 003B7320 7C 08 03 A6 */ mtlr r0 +/* 803BA3C4 003B7324 4E 80 00 20 */ blr + +.global __CARDRead +__CARDRead: +/* 803BA3C8 003B7328 7C 08 02 A6 */ mflr r0 +/* 803BA3CC 003B732C 1D 23 01 10 */ mulli r9, r3, 0x110 +/* 803BA3D0 003B7330 90 01 00 04 */ stw r0, 4(r1) +/* 803BA3D4 003B7334 3D 00 80 57 */ lis r8, lbl_80569A58@ha +/* 803BA3D8 003B7338 94 21 FF F8 */ stwu r1, -8(r1) +/* 803BA3DC 003B733C 38 08 9A 58 */ addi r0, r8, lbl_80569A58@l +/* 803BA3E0 003B7340 7D 00 4A 14 */ add r8, r0, r9 +/* 803BA3E4 003B7344 80 08 00 00 */ lwz r0, 0(r8) +/* 803BA3E8 003B7348 2C 00 00 00 */ cmpwi r0, 0 +/* 803BA3EC 003B734C 40 82 00 0C */ bne lbl_803BA3F8 +/* 803BA3F0 003B7350 38 60 FF FD */ li r3, -3 +/* 803BA3F4 003B7354 48 00 00 28 */ b lbl_803BA41C +lbl_803BA3F8: +/* 803BA3F8 003B7358 90 E8 00 D4 */ stw r7, 0xd4(r8) +/* 803BA3FC 003B735C 54 A0 BA 7E */ srwi r0, r5, 9 +/* 803BA400 003B7360 3C A0 80 3C */ lis r5, BlockReadCallback@ha +/* 803BA404 003B7364 90 08 00 AC */ stw r0, 0xac(r8) +/* 803BA408 003B7368 38 05 A2 EC */ addi r0, r5, BlockReadCallback@l +/* 803BA40C 003B736C 90 88 00 B0 */ stw r4, 0xb0(r8) +/* 803BA410 003B7370 7C 04 03 78 */ mr r4, r0 +/* 803BA414 003B7374 90 C8 00 B4 */ stw r6, 0xb4(r8) +/* 803BA418 003B7378 4B FF E5 6D */ bl __CARDReadSegment +lbl_803BA41C: +/* 803BA41C 003B737C 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803BA420 003B7380 38 21 00 08 */ addi r1, r1, 8 +/* 803BA424 003B7384 7C 08 03 A6 */ mtlr r0 +/* 803BA428 003B7388 4E 80 00 20 */ blr + +.global BlockWriteCallback +BlockWriteCallback: +/* 803BA42C 003B738C 7C 08 02 A6 */ mflr r0 +/* 803BA430 003B7390 90 01 00 04 */ stw r0, 4(r1) +/* 803BA434 003B7394 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BA438 003B7398 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BA43C 003B739C 3B E3 00 00 */ addi r31, r3, 0 +/* 803BA440 003B73A0 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BA444 003B73A4 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BA448 003B73A8 1C BF 01 10 */ mulli r5, r31, 0x110 +/* 803BA44C 003B73AC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BA450 003B73B0 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BA454 003B73B4 7C 9D 23 79 */ or. r29, r4, r4 +/* 803BA458 003B73B8 7F C0 2A 14 */ add r30, r0, r5 +/* 803BA45C 003B73BC 41 80 00 50 */ blt lbl_803BA4AC +/* 803BA460 003B73C0 80 7E 00 B8 */ lwz r3, 0xb8(r30) +/* 803BA464 003B73C4 38 03 00 80 */ addi r0, r3, 0x80 +/* 803BA468 003B73C8 90 1E 00 B8 */ stw r0, 0xb8(r30) +/* 803BA46C 003B73CC 80 7E 00 B0 */ lwz r3, 0xb0(r30) +/* 803BA470 003B73D0 38 03 00 80 */ addi r0, r3, 0x80 +/* 803BA474 003B73D4 90 1E 00 B0 */ stw r0, 0xb0(r30) +/* 803BA478 003B73D8 80 7E 00 B4 */ lwz r3, 0xb4(r30) +/* 803BA47C 003B73DC 38 03 00 80 */ addi r0, r3, 0x80 +/* 803BA480 003B73E0 90 1E 00 B4 */ stw r0, 0xb4(r30) +/* 803BA484 003B73E4 80 7E 00 AC */ lwz r3, 0xac(r30) +/* 803BA488 003B73E8 34 03 FF FF */ addic. r0, r3, -1 +/* 803BA48C 003B73EC 90 1E 00 AC */ stw r0, 0xac(r30) +/* 803BA490 003B73F0 40 81 00 1C */ ble lbl_803BA4AC +/* 803BA494 003B73F4 3C 60 80 3C */ lis r3, BlockWriteCallback@ha +/* 803BA498 003B73F8 38 83 A4 2C */ addi r4, r3, BlockWriteCallback@l +/* 803BA49C 003B73FC 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA4A0 003B7400 4B FF E6 19 */ bl __CARDWritePage +/* 803BA4A4 003B7404 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BA4A8 003B7408 40 80 00 44 */ bge lbl_803BA4EC +lbl_803BA4AC: +/* 803BA4AC 003B740C 80 1E 00 D0 */ lwz r0, 0xd0(r30) +/* 803BA4B0 003B7410 28 00 00 00 */ cmplwi r0, 0 +/* 803BA4B4 003B7414 40 82 00 10 */ bne lbl_803BA4C4 +/* 803BA4B8 003B7418 38 7E 00 00 */ addi r3, r30, 0 +/* 803BA4BC 003B741C 38 9D 00 00 */ addi r4, r29, 0 +/* 803BA4C0 003B7420 4B FF E9 99 */ bl __CARDPutControlBlock +lbl_803BA4C4: +/* 803BA4C4 003B7424 80 1E 00 D4 */ lwz r0, 0xd4(r30) +/* 803BA4C8 003B7428 28 00 00 00 */ cmplwi r0, 0 +/* 803BA4CC 003B742C 7C 0C 03 78 */ mr r12, r0 +/* 803BA4D0 003B7430 41 82 00 1C */ beq lbl_803BA4EC +/* 803BA4D4 003B7434 38 00 00 00 */ li r0, 0 +/* 803BA4D8 003B7438 7D 88 03 A6 */ mtlr r12 +/* 803BA4DC 003B743C 90 1E 00 D4 */ stw r0, 0xd4(r30) +/* 803BA4E0 003B7440 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA4E4 003B7444 38 9D 00 00 */ addi r4, r29, 0 +/* 803BA4E8 003B7448 4E 80 00 21 */ blrl +lbl_803BA4EC: +/* 803BA4EC 003B744C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BA4F0 003B7450 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BA4F4 003B7454 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BA4F8 003B7458 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BA4FC 003B745C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BA500 003B7460 7C 08 03 A6 */ mtlr r0 +/* 803BA504 003B7464 4E 80 00 20 */ blr + +.global __CARDWrite +__CARDWrite: +/* 803BA508 003B7468 7C 08 02 A6 */ mflr r0 +/* 803BA50C 003B746C 1D 23 01 10 */ mulli r9, r3, 0x110 +/* 803BA510 003B7470 90 01 00 04 */ stw r0, 4(r1) +/* 803BA514 003B7474 3D 00 80 57 */ lis r8, lbl_80569A58@ha +/* 803BA518 003B7478 94 21 FF F8 */ stwu r1, -8(r1) +/* 803BA51C 003B747C 38 08 9A 58 */ addi r0, r8, lbl_80569A58@l +/* 803BA520 003B7480 7D 00 4A 14 */ add r8, r0, r9 +/* 803BA524 003B7484 80 08 00 00 */ lwz r0, 0(r8) +/* 803BA528 003B7488 2C 00 00 00 */ cmpwi r0, 0 +/* 803BA52C 003B748C 40 82 00 0C */ bne lbl_803BA538 +/* 803BA530 003B7490 38 60 FF FD */ li r3, -3 +/* 803BA534 003B7494 48 00 00 28 */ b lbl_803BA55C +lbl_803BA538: +/* 803BA538 003B7498 90 E8 00 D4 */ stw r7, 0xd4(r8) +/* 803BA53C 003B749C 54 A0 C9 FE */ srwi r0, r5, 7 +/* 803BA540 003B74A0 3C A0 80 3C */ lis r5, BlockWriteCallback@ha +/* 803BA544 003B74A4 90 08 00 AC */ stw r0, 0xac(r8) +/* 803BA548 003B74A8 38 05 A4 2C */ addi r0, r5, BlockWriteCallback@l +/* 803BA54C 003B74AC 90 88 00 B0 */ stw r4, 0xb0(r8) +/* 803BA550 003B74B0 7C 04 03 78 */ mr r4, r0 +/* 803BA554 003B74B4 90 C8 00 B4 */ stw r6, 0xb4(r8) +/* 803BA558 003B74B8 4B FF E5 61 */ bl __CARDWritePage +lbl_803BA55C: +/* 803BA55C 003B74BC 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803BA560 003B74C0 38 21 00 08 */ addi r1, r1, 8 +/* 803BA564 003B74C4 7C 08 03 A6 */ mtlr r0 +/* 803BA568 003B74C8 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDRead.s b/asm/Dolphin/CARD/CARDRead.s new file mode 100644 index 00000000..8c24ef47 --- /dev/null +++ b/asm/Dolphin/CARD/CARDRead.s @@ -0,0 +1,307 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __CARDSeek +__CARDSeek: +/* 803BD510 003BA470 7C 08 02 A6 */ mflr r0 +/* 803BD514 003BA474 90 01 00 04 */ stw r0, 4(r1) +/* 803BD518 003BA478 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BD51C 003BA47C 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803BD520 003BA480 3B E6 00 00 */ addi r31, r6, 0 +/* 803BD524 003BA484 93 C1 00 28 */ stw r30, 0x28(r1) +/* 803BD528 003BA488 3B C5 00 00 */ addi r30, r5, 0 +/* 803BD52C 003BA48C 93 A1 00 24 */ stw r29, 0x24(r1) +/* 803BD530 003BA490 3B A4 00 00 */ addi r29, r4, 0 +/* 803BD534 003BA494 38 81 00 18 */ addi r4, r1, 0x18 +/* 803BD538 003BA498 93 81 00 20 */ stw r28, 0x20(r1) +/* 803BD53C 003BA49C 7C 7C 1B 78 */ mr r28, r3 +/* 803BD540 003BA4A0 80 63 00 00 */ lwz r3, 0(r3) +/* 803BD544 003BA4A4 4B FF B8 5D */ bl __CARDGetControlBlock +/* 803BD548 003BA4A8 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD54C 003BA4AC 40 80 00 08 */ bge lbl_803BD554 +/* 803BD550 003BA4B0 48 00 01 58 */ b lbl_803BD6A8 +lbl_803BD554: +/* 803BD554 003BA4B4 A0 1C 00 10 */ lhz r0, 0x10(r28) +/* 803BD558 003BA4B8 28 00 00 05 */ cmplwi r0, 5 +/* 803BD55C 003BA4BC 41 80 00 28 */ blt lbl_803BD584 +/* 803BD560 003BA4C0 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BD564 003BA4C4 A0 A3 00 10 */ lhz r5, 0x10(r3) +/* 803BD568 003BA4C8 7C 00 28 40 */ cmplw r0, r5 +/* 803BD56C 003BA4CC 40 80 00 18 */ bge lbl_803BD584 +/* 803BD570 003BA4D0 80 83 00 0C */ lwz r4, 0xc(r3) +/* 803BD574 003BA4D4 80 1C 00 08 */ lwz r0, 8(r28) +/* 803BD578 003BA4D8 7C 85 21 D6 */ mullw r4, r5, r4 +/* 803BD57C 003BA4DC 7C 04 00 00 */ cmpw r4, r0 +/* 803BD580 003BA4E0 41 81 00 14 */ bgt lbl_803BD594 +lbl_803BD584: +/* 803BD584 003BA4E4 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BD588 003BA4E8 38 80 FF 80 */ li r4, -128 +/* 803BD58C 003BA4EC 4B FF B8 CD */ bl __CARDPutControlBlock +/* 803BD590 003BA4F0 48 00 01 18 */ b lbl_803BD6A8 +lbl_803BD594: +/* 803BD594 003BA4F4 4B FF D3 DD */ bl __CARDGetDirBlock +/* 803BD598 003BA4F8 80 1C 00 04 */ lwz r0, 4(r28) +/* 803BD59C 003BA4FC 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 803BD5A0 003BA500 54 00 30 32 */ slwi r0, r0, 6 +/* 803BD5A4 003BA504 7C 83 02 14 */ add r4, r3, r0 +/* 803BD5A8 003BA508 80 65 00 0C */ lwz r3, 0xc(r5) +/* 803BD5AC 003BA50C A0 04 00 38 */ lhz r0, 0x38(r4) +/* 803BD5B0 003BA510 7C 60 19 D6 */ mullw r3, r0, r3 +/* 803BD5B4 003BA514 7C 03 F0 00 */ cmpw r3, r30 +/* 803BD5B8 003BA518 40 81 00 10 */ ble lbl_803BD5C8 +/* 803BD5BC 003BA51C 7C 1E EA 14 */ add r0, r30, r29 +/* 803BD5C0 003BA520 7C 03 00 00 */ cmpw r3, r0 +/* 803BD5C4 003BA524 40 80 00 14 */ bge lbl_803BD5D8 +lbl_803BD5C8: +/* 803BD5C8 003BA528 38 65 00 00 */ addi r3, r5, 0 +/* 803BD5CC 003BA52C 38 80 FF F5 */ li r4, -11 +/* 803BD5D0 003BA530 4B FF B8 89 */ bl __CARDPutControlBlock +/* 803BD5D4 003BA534 48 00 00 D4 */ b lbl_803BD6A8 +lbl_803BD5D8: +/* 803BD5D8 003BA538 93 85 00 C0 */ stw r28, 0xc0(r5) +/* 803BD5DC 003BA53C 93 BC 00 0C */ stw r29, 0xc(r28) +/* 803BD5E0 003BA540 80 1C 00 08 */ lwz r0, 8(r28) +/* 803BD5E4 003BA544 7C 1E 00 00 */ cmpw r30, r0 +/* 803BD5E8 003BA548 40 80 00 40 */ bge lbl_803BD628 +/* 803BD5EC 003BA54C 38 00 00 00 */ li r0, 0 +/* 803BD5F0 003BA550 90 1C 00 08 */ stw r0, 8(r28) +/* 803BD5F4 003BA554 A0 04 00 36 */ lhz r0, 0x36(r4) +/* 803BD5F8 003BA558 B0 1C 00 10 */ sth r0, 0x10(r28) +/* 803BD5FC 003BA55C A0 9C 00 10 */ lhz r4, 0x10(r28) +/* 803BD600 003BA560 28 04 00 05 */ cmplwi r4, 5 +/* 803BD604 003BA564 41 80 00 14 */ blt lbl_803BD618 +/* 803BD608 003BA568 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BD60C 003BA56C A0 03 00 10 */ lhz r0, 0x10(r3) +/* 803BD610 003BA570 7C 04 00 40 */ cmplw r4, r0 +/* 803BD614 003BA574 41 80 00 14 */ blt lbl_803BD628 +lbl_803BD618: +/* 803BD618 003BA578 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BD61C 003BA57C 38 80 FF FA */ li r4, -6 +/* 803BD620 003BA580 4B FF B8 39 */ bl __CARDPutControlBlock +/* 803BD624 003BA584 48 00 00 84 */ b lbl_803BD6A8 +lbl_803BD628: +/* 803BD628 003BA588 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BD62C 003BA58C 4B FF CF 41 */ bl __CARDGetFatBlock +/* 803BD630 003BA590 48 00 00 4C */ b lbl_803BD67C +lbl_803BD634: +/* 803BD634 003BA594 80 1C 00 08 */ lwz r0, 8(r28) +/* 803BD638 003BA598 7C 00 22 14 */ add r0, r0, r4 +/* 803BD63C 003BA59C 90 1C 00 08 */ stw r0, 8(r28) +/* 803BD640 003BA5A0 A0 1C 00 10 */ lhz r0, 0x10(r28) +/* 803BD644 003BA5A4 54 00 08 3C */ slwi r0, r0, 1 +/* 803BD648 003BA5A8 7C 03 02 2E */ lhzx r0, r3, r0 +/* 803BD64C 003BA5AC B0 1C 00 10 */ sth r0, 0x10(r28) +/* 803BD650 003BA5B0 A0 BC 00 10 */ lhz r5, 0x10(r28) +/* 803BD654 003BA5B4 28 05 00 05 */ cmplwi r5, 5 +/* 803BD658 003BA5B8 41 80 00 14 */ blt lbl_803BD66C +/* 803BD65C 003BA5BC 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BD660 003BA5C0 A0 04 00 10 */ lhz r0, 0x10(r4) +/* 803BD664 003BA5C4 7C 05 00 40 */ cmplw r5, r0 +/* 803BD668 003BA5C8 41 80 00 14 */ blt lbl_803BD67C +lbl_803BD66C: +/* 803BD66C 003BA5CC 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BD670 003BA5D0 38 80 FF FA */ li r4, -6 +/* 803BD674 003BA5D4 4B FF B7 E5 */ bl __CARDPutControlBlock +/* 803BD678 003BA5D8 48 00 00 30 */ b lbl_803BD6A8 +lbl_803BD67C: +/* 803BD67C 003BA5DC 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BD680 003BA5E0 80 BC 00 08 */ lwz r5, 8(r28) +/* 803BD684 003BA5E4 80 84 00 0C */ lwz r4, 0xc(r4) +/* 803BD688 003BA5E8 38 04 FF FF */ addi r0, r4, -1 +/* 803BD68C 003BA5EC 7F C0 00 78 */ andc r0, r30, r0 +/* 803BD690 003BA5F0 7C 05 00 40 */ cmplw r5, r0 +/* 803BD694 003BA5F4 41 80 FF A0 */ blt lbl_803BD634 +/* 803BD698 003BA5F8 93 DC 00 08 */ stw r30, 8(r28) +/* 803BD69C 003BA5FC 38 60 00 00 */ li r3, 0 +/* 803BD6A0 003BA600 80 01 00 18 */ lwz r0, 0x18(r1) +/* 803BD6A4 003BA604 90 1F 00 00 */ stw r0, 0(r31) +lbl_803BD6A8: +/* 803BD6A8 003BA608 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BD6AC 003BA60C 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803BD6B0 003BA610 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 803BD6B4 003BA614 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 803BD6B8 003BA618 83 81 00 20 */ lwz r28, 0x20(r1) +/* 803BD6BC 003BA61C 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BD6C0 003BA620 7C 08 03 A6 */ mtlr r0 +/* 803BD6C4 003BA624 4E 80 00 20 */ blr + +ReadCallback: +/* 803BD6C8 003BA628 7C 08 02 A6 */ mflr r0 +/* 803BD6CC 003BA62C 90 01 00 04 */ stw r0, 4(r1) +/* 803BD6D0 003BA630 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BD6D4 003BA634 BF 61 00 14 */ stmw r27, 0x14(r1) +/* 803BD6D8 003BA638 3B A3 00 00 */ addi r29, r3, 0 +/* 803BD6DC 003BA63C 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BD6E0 003BA640 1C BD 01 10 */ mulli r5, r29, 0x110 +/* 803BD6E4 003BA644 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BD6E8 003BA648 7C 9E 23 79 */ or. r30, r4, r4 +/* 803BD6EC 003BA64C 7F E0 2A 14 */ add r31, r0, r5 +/* 803BD6F0 003BA650 41 80 00 C8 */ blt lbl_803BD7B8 +/* 803BD6F4 003BA654 83 9F 00 C0 */ lwz r28, 0xc0(r31) +/* 803BD6F8 003BA658 80 9C 00 0C */ lwz r4, 0xc(r28) +/* 803BD6FC 003BA65C 2C 04 00 00 */ cmpwi r4, 0 +/* 803BD700 003BA660 40 80 00 0C */ bge lbl_803BD70C +/* 803BD704 003BA664 3B C0 FF F2 */ li r30, -14 +/* 803BD708 003BA668 48 00 00 B0 */ b lbl_803BD7B8 +lbl_803BD70C: +/* 803BD70C 003BA66C 80 BF 00 0C */ lwz r5, 0xc(r31) +/* 803BD710 003BA670 80 DC 00 08 */ lwz r6, 8(r28) +/* 803BD714 003BA674 38 05 FF FF */ addi r0, r5, -1 +/* 803BD718 003BA678 7C 03 00 F8 */ nor r3, r0, r0 +/* 803BD71C 003BA67C 7C 06 2A 14 */ add r0, r6, r5 +/* 803BD720 003BA680 7C 60 00 38 */ and r0, r3, r0 +/* 803BD724 003BA684 7F 66 00 50 */ subf r27, r6, r0 +/* 803BD728 003BA688 7C 1B 20 50 */ subf r0, r27, r4 +/* 803BD72C 003BA68C 90 1C 00 0C */ stw r0, 0xc(r28) +/* 803BD730 003BA690 80 1C 00 0C */ lwz r0, 0xc(r28) +/* 803BD734 003BA694 2C 00 00 00 */ cmpwi r0, 0 +/* 803BD738 003BA698 40 81 00 80 */ ble lbl_803BD7B8 +/* 803BD73C 003BA69C 7F E3 FB 78 */ mr r3, r31 +/* 803BD740 003BA6A0 4B FF CE 2D */ bl __CARDGetFatBlock +/* 803BD744 003BA6A4 80 1C 00 08 */ lwz r0, 8(r28) +/* 803BD748 003BA6A8 7C 00 DA 14 */ add r0, r0, r27 +/* 803BD74C 003BA6AC 90 1C 00 08 */ stw r0, 8(r28) +/* 803BD750 003BA6B0 A0 1C 00 10 */ lhz r0, 0x10(r28) +/* 803BD754 003BA6B4 54 00 08 3C */ slwi r0, r0, 1 +/* 803BD758 003BA6B8 7C 03 02 2E */ lhzx r0, r3, r0 +/* 803BD75C 003BA6BC B0 1C 00 10 */ sth r0, 0x10(r28) +/* 803BD760 003BA6C0 A0 7C 00 10 */ lhz r3, 0x10(r28) +/* 803BD764 003BA6C4 28 03 00 05 */ cmplwi r3, 5 +/* 803BD768 003BA6C8 41 80 00 10 */ blt lbl_803BD778 +/* 803BD76C 003BA6CC A0 1F 00 10 */ lhz r0, 0x10(r31) +/* 803BD770 003BA6D0 7C 03 00 40 */ cmplw r3, r0 +/* 803BD774 003BA6D4 41 80 00 0C */ blt lbl_803BD780 +lbl_803BD778: +/* 803BD778 003BA6D8 3B C0 FF FA */ li r30, -6 +/* 803BD77C 003BA6DC 48 00 00 3C */ b lbl_803BD7B8 +lbl_803BD780: +/* 803BD780 003BA6E0 80 BC 00 0C */ lwz r5, 0xc(r28) +/* 803BD784 003BA6E4 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803BD788 003BA6E8 7C 05 00 00 */ cmpw r5, r0 +/* 803BD78C 003BA6EC 40 80 00 08 */ bge lbl_803BD794 +/* 803BD790 003BA6F0 48 00 00 08 */ b lbl_803BD798 +lbl_803BD794: +/* 803BD794 003BA6F4 7C 05 03 78 */ mr r5, r0 +lbl_803BD798: +/* 803BD798 003BA6F8 7C 80 19 D6 */ mullw r4, r0, r3 +/* 803BD79C 003BA6FC 80 DF 00 B4 */ lwz r6, 0xb4(r31) +/* 803BD7A0 003BA700 3C 60 80 3C */ lis r3, ReadCallback@ha +/* 803BD7A4 003BA704 38 E3 D6 C8 */ addi r7, r3, ReadCallback@l +/* 803BD7A8 003BA708 38 7D 00 00 */ addi r3, r29, 0 +/* 803BD7AC 003BA70C 4B FF CC 1D */ bl __CARDRead +/* 803BD7B0 003BA710 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803BD7B4 003BA714 40 80 00 30 */ bge lbl_803BD7E4 +lbl_803BD7B8: +/* 803BD7B8 003BA718 83 7F 00 D0 */ lwz r27, 0xd0(r31) +/* 803BD7BC 003BA71C 38 00 00 00 */ li r0, 0 +/* 803BD7C0 003BA720 38 7F 00 00 */ addi r3, r31, 0 +/* 803BD7C4 003BA724 90 1F 00 D0 */ stw r0, 0xd0(r31) +/* 803BD7C8 003BA728 7F C4 F3 78 */ mr r4, r30 +/* 803BD7CC 003BA72C 4B FF B6 8D */ bl __CARDPutControlBlock +/* 803BD7D0 003BA730 39 9B 00 00 */ addi r12, r27, 0 +/* 803BD7D4 003BA734 7D 88 03 A6 */ mtlr r12 +/* 803BD7D8 003BA738 38 7D 00 00 */ addi r3, r29, 0 +/* 803BD7DC 003BA73C 38 9E 00 00 */ addi r4, r30, 0 +/* 803BD7E0 003BA740 4E 80 00 21 */ blrl +lbl_803BD7E4: +/* 803BD7E4 003BA744 BB 61 00 14 */ lmw r27, 0x14(r1) +/* 803BD7E8 003BA748 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BD7EC 003BA74C 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BD7F0 003BA750 7C 08 03 A6 */ mtlr r0 +/* 803BD7F4 003BA754 4E 80 00 20 */ blr + +.global CARDReadAsync +CARDReadAsync: +/* 803BD7F8 003BA758 7C 08 02 A6 */ mflr r0 +/* 803BD7FC 003BA75C 90 01 00 04 */ stw r0, 4(r1) +/* 803BD800 003BA760 54 C0 05 FF */ clrlwi. r0, r6, 0x17 +/* 803BD804 003BA764 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 803BD808 003BA768 BF 61 00 24 */ stmw r27, 0x24(r1) +/* 803BD80C 003BA76C 3B A3 00 00 */ addi r29, r3, 0 +/* 803BD810 003BA770 3B C4 00 00 */ addi r30, r4, 0 +/* 803BD814 003BA774 3B E5 00 00 */ addi r31, r5, 0 +/* 803BD818 003BA778 3B 67 00 00 */ addi r27, r7, 0 +/* 803BD81C 003BA77C 40 82 00 0C */ bne lbl_803BD828 +/* 803BD820 003BA780 57 E0 05 FF */ clrlwi. r0, r31, 0x17 +/* 803BD824 003BA784 41 82 00 0C */ beq lbl_803BD830 +lbl_803BD828: +/* 803BD828 003BA788 38 60 FF 80 */ li r3, -128 +/* 803BD82C 003BA78C 48 00 01 00 */ b lbl_803BD92C +lbl_803BD830: +/* 803BD830 003BA790 38 7D 00 00 */ addi r3, r29, 0 +/* 803BD834 003BA794 38 9F 00 00 */ addi r4, r31, 0 +/* 803BD838 003BA798 38 A6 00 00 */ addi r5, r6, 0 +/* 803BD83C 003BA79C 38 C1 00 1C */ addi r6, r1, 0x1c +/* 803BD840 003BA7A0 4B FF FC D1 */ bl __CARDSeek +/* 803BD844 003BA7A4 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD848 003BA7A8 40 80 00 08 */ bge lbl_803BD850 +/* 803BD84C 003BA7AC 48 00 00 E0 */ b lbl_803BD92C +lbl_803BD850: +/* 803BD850 003BA7B0 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD854 003BA7B4 4B FF D1 1D */ bl __CARDGetDirBlock +/* 803BD858 003BA7B8 80 1D 00 04 */ lwz r0, 4(r29) +/* 803BD85C 003BA7BC 54 00 30 32 */ slwi r0, r0, 6 +/* 803BD860 003BA7C0 7F 83 02 14 */ add r28, r3, r0 +/* 803BD864 003BA7C4 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD868 003BA7C8 7F 84 E3 78 */ mr r4, r28 +/* 803BD86C 003BA7CC 4B FF F5 69 */ bl __CARDAccess +/* 803BD870 003BA7D0 38 83 00 00 */ addi r4, r3, 0 +/* 803BD874 003BA7D4 2C 04 FF F6 */ cmpwi r4, -10 +/* 803BD878 003BA7D8 40 82 00 10 */ bne lbl_803BD888 +/* 803BD87C 003BA7DC 7F 83 E3 78 */ mr r3, r28 +/* 803BD880 003BA7E0 4B FF F5 ED */ bl sub_803bce6c +/* 803BD884 003BA7E4 7C 64 1B 78 */ mr r4, r3 +lbl_803BD888: +/* 803BD888 003BA7E8 2C 04 00 00 */ cmpwi r4, 0 +/* 803BD88C 003BA7EC 40 80 00 10 */ bge lbl_803BD89C +/* 803BD890 003BA7F0 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD894 003BA7F4 4B FF B5 C5 */ bl __CARDPutControlBlock +/* 803BD898 003BA7F8 48 00 00 94 */ b lbl_803BD92C +lbl_803BD89C: +/* 803BD89C 003BA7FC 38 7E 00 00 */ addi r3, r30, 0 +/* 803BD8A0 003BA800 38 9F 00 00 */ addi r4, r31, 0 +/* 803BD8A4 003BA804 4B FC 11 E1 */ bl DCInvalidateRange +/* 803BD8A8 003BA808 28 1B 00 00 */ cmplwi r27, 0 +/* 803BD8AC 003BA80C 41 82 00 0C */ beq lbl_803BD8B8 +/* 803BD8B0 003BA810 7F 60 DB 78 */ mr r0, r27 +/* 803BD8B4 003BA814 48 00 00 0C */ b lbl_803BD8C0 +lbl_803BD8B8: +/* 803BD8B8 003BA818 3C 60 80 3B */ lis r3, __CARDDefaultApiCallback@ha +/* 803BD8BC 003BA81C 38 03 7E 74 */ addi r0, r3, __CARDDefaultApiCallback@l +lbl_803BD8C0: +/* 803BD8C0 003BA820 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD8C4 003BA824 90 03 00 D0 */ stw r0, 0xd0(r3) +/* 803BD8C8 003BA828 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD8CC 003BA82C 80 9D 00 08 */ lwz r4, 8(r29) +/* 803BD8D0 003BA830 80 A3 00 0C */ lwz r5, 0xc(r3) +/* 803BD8D4 003BA834 38 05 FF FF */ addi r0, r5, -1 +/* 803BD8D8 003BA838 7C 88 00 38 */ and r8, r4, r0 +/* 803BD8DC 003BA83C 7C 68 28 50 */ subf r3, r8, r5 +/* 803BD8E0 003BA840 7C 1F 18 00 */ cmpw r31, r3 +/* 803BD8E4 003BA844 40 80 00 08 */ bge lbl_803BD8EC +/* 803BD8E8 003BA848 7F E3 FB 78 */ mr r3, r31 +lbl_803BD8EC: +/* 803BD8EC 003BA84C A0 1D 00 10 */ lhz r0, 0x10(r29) +/* 803BD8F0 003BA850 3C 80 80 3C */ lis r4, ReadCallback@ha +/* 803BD8F4 003BA854 3B E3 00 00 */ addi r31, r3, 0 +/* 803BD8F8 003BA858 80 7D 00 00 */ lwz r3, 0(r29) +/* 803BD8FC 003BA85C 7C 05 01 D6 */ mullw r0, r5, r0 +/* 803BD900 003BA860 38 E4 D6 C8 */ addi r7, r4, ReadCallback@l +/* 803BD904 003BA864 38 BF 00 00 */ addi r5, r31, 0 +/* 803BD908 003BA868 38 DE 00 00 */ addi r6, r30, 0 +/* 803BD90C 003BA86C 7C 88 02 14 */ add r4, r8, r0 +/* 803BD910 003BA870 4B FF CA B9 */ bl __CARDRead +/* 803BD914 003BA874 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BD918 003BA878 40 80 00 10 */ bge lbl_803BD928 +/* 803BD91C 003BA87C 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BD920 003BA880 7F A4 EB 78 */ mr r4, r29 +/* 803BD924 003BA884 4B FF B5 35 */ bl __CARDPutControlBlock +lbl_803BD928: +/* 803BD928 003BA888 7F A3 EB 78 */ mr r3, r29 +lbl_803BD92C: +/* 803BD92C 003BA88C BB 61 00 24 */ lmw r27, 0x24(r1) +/* 803BD930 003BA890 80 01 00 3C */ lwz r0, 0x3c(r1) +/* 803BD934 003BA894 38 21 00 38 */ addi r1, r1, 0x38 +/* 803BD938 003BA898 7C 08 03 A6 */ mtlr r0 +/* 803BD93C 003BA89C 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDRename.s b/asm/Dolphin/CARD/CARDRename.s new file mode 100644 index 00000000..61629d2c --- /dev/null +++ b/asm/Dolphin/CARD/CARDRename.s @@ -0,0 +1,146 @@ +.include "macros.inc" + +.section .text, "ax" + +.global CARDRenameAsync +CARDRenameAsync: +/* 803BE3EC 003BB34C 7C 08 02 A6 */ mflr r0 +/* 803BE3F0 003BB350 90 01 00 04 */ stw r0, 4(r1) +/* 803BE3F4 003BB354 94 21 FF B8 */ stwu r1, -0x48(r1) +/* 803BE3F8 003BB358 BE E1 00 24 */ stmw r23, 0x24(r1) +/* 803BE3FC 003BB35C 7C 9D 23 78 */ mr r29, r4 +/* 803BE400 003BB360 3B 83 00 00 */ addi r28, r3, 0 +/* 803BE404 003BB364 3B C5 00 00 */ addi r30, r5, 0 +/* 803BE408 003BB368 3B E6 00 00 */ addi r31, r6, 0 +/* 803BE40C 003BB36C 88 84 00 00 */ lbz r4, 0(r4) +/* 803BE410 003BB370 7C 80 07 74 */ extsb r0, r4 +/* 803BE414 003BB374 2C 00 00 FF */ cmpwi r0, 0xff +/* 803BE418 003BB378 41 82 00 24 */ beq lbl_803BE43C +/* 803BE41C 003BB37C 88 7E 00 00 */ lbz r3, 0(r30) +/* 803BE420 003BB380 7C 60 07 74 */ extsb r0, r3 +/* 803BE424 003BB384 2C 00 00 FF */ cmpwi r0, 0xff +/* 803BE428 003BB388 41 82 00 14 */ beq lbl_803BE43C +/* 803BE42C 003BB38C 7C 80 07 75 */ extsb. r0, r4 +/* 803BE430 003BB390 41 82 00 0C */ beq lbl_803BE43C +/* 803BE434 003BB394 7C 60 07 75 */ extsb. r0, r3 +/* 803BE438 003BB398 40 82 00 0C */ bne lbl_803BE444 +lbl_803BE43C: +/* 803BE43C 003BB39C 38 60 FF 80 */ li r3, -128 +/* 803BE440 003BB3A0 48 00 01 94 */ b lbl_803BE5D4 +lbl_803BE444: +/* 803BE444 003BB3A4 7F A3 EB 78 */ mr r3, r29 +/* 803BE448 003BB3A8 4B FD 1D 79 */ bl strlen +/* 803BE44C 003BB3AC 28 03 00 20 */ cmplwi r3, 0x20 +/* 803BE450 003BB3B0 41 81 00 14 */ bgt lbl_803BE464 +/* 803BE454 003BB3B4 7F C3 F3 78 */ mr r3, r30 +/* 803BE458 003BB3B8 4B FD 1D 69 */ bl strlen +/* 803BE45C 003BB3BC 28 03 00 20 */ cmplwi r3, 0x20 +/* 803BE460 003BB3C0 40 81 00 0C */ ble lbl_803BE46C +lbl_803BE464: +/* 803BE464 003BB3C4 38 60 FF F4 */ li r3, -12 +/* 803BE468 003BB3C8 48 00 01 6C */ b lbl_803BE5D4 +lbl_803BE46C: +/* 803BE46C 003BB3CC 38 7C 00 00 */ addi r3, r28, 0 +/* 803BE470 003BB3D0 38 81 00 18 */ addi r4, r1, 0x18 +/* 803BE474 003BB3D4 4B FF A9 2D */ bl __CARDGetControlBlock +/* 803BE478 003BB3D8 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE47C 003BB3DC 40 80 00 08 */ bge lbl_803BE484 +/* 803BE480 003BB3E0 48 00 01 54 */ b lbl_803BE5D4 +lbl_803BE484: +/* 803BE484 003BB3E4 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE488 003BB3E8 3A E0 FF FF */ li r23, -1 +/* 803BE48C 003BB3EC 3B 00 FF FF */ li r24, -1 +/* 803BE490 003BB3F0 4B FF C4 E1 */ bl __CARDGetDirBlock +/* 803BE494 003BB3F4 3B 43 00 00 */ addi r26, r3, 0 +/* 803BE498 003BB3F8 3B 7A 00 00 */ addi r27, r26, 0 +/* 803BE49C 003BB3FC 3B 20 00 00 */ li r25, 0 +lbl_803BE4A0: +/* 803BE4A0 003BB400 88 1B 00 00 */ lbz r0, 0(r27) +/* 803BE4A4 003BB404 28 00 00 FF */ cmplwi r0, 0xff +/* 803BE4A8 003BB408 41 82 00 70 */ beq lbl_803BE518 +/* 803BE4AC 003BB40C 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BE4B0 003BB410 38 7B 00 00 */ addi r3, r27, 0 +/* 803BE4B4 003BB414 38 A0 00 04 */ li r5, 4 +/* 803BE4B8 003BB418 80 84 01 0C */ lwz r4, 0x10c(r4) +/* 803BE4BC 003BB41C 4B FC F3 C1 */ bl memcmp +/* 803BE4C0 003BB420 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE4C4 003BB424 40 82 00 54 */ bne lbl_803BE518 +/* 803BE4C8 003BB428 80 81 00 18 */ lwz r4, 0x18(r1) +/* 803BE4CC 003BB42C 38 7B 00 04 */ addi r3, r27, 4 +/* 803BE4D0 003BB430 38 A0 00 02 */ li r5, 2 +/* 803BE4D4 003BB434 80 84 01 0C */ lwz r4, 0x10c(r4) +/* 803BE4D8 003BB438 38 84 00 04 */ addi r4, r4, 4 +/* 803BE4DC 003BB43C 4B FC F3 A1 */ bl memcmp +/* 803BE4E0 003BB440 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE4E4 003BB444 40 82 00 34 */ bne lbl_803BE518 +/* 803BE4E8 003BB448 38 7B 00 00 */ addi r3, r27, 0 +/* 803BE4EC 003BB44C 38 9D 00 00 */ addi r4, r29, 0 +/* 803BE4F0 003BB450 4B FF E8 7D */ bl __CARDCompareFileName +/* 803BE4F4 003BB454 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE4F8 003BB458 41 82 00 08 */ beq lbl_803BE500 +/* 803BE4FC 003BB45C 7F 37 CB 78 */ mr r23, r25 +lbl_803BE500: +/* 803BE500 003BB460 38 7B 00 00 */ addi r3, r27, 0 +/* 803BE504 003BB464 38 9E 00 00 */ addi r4, r30, 0 +/* 803BE508 003BB468 4B FF E8 65 */ bl __CARDCompareFileName +/* 803BE50C 003BB46C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE510 003BB470 41 82 00 08 */ beq lbl_803BE518 +/* 803BE514 003BB474 7F 38 CB 78 */ mr r24, r25 +lbl_803BE518: +/* 803BE518 003BB478 3B 39 00 01 */ addi r25, r25, 1 +/* 803BE51C 003BB47C 2C 19 00 7F */ cmpwi r25, 0x7f +/* 803BE520 003BB480 3B 7B 00 40 */ addi r27, r27, 0x40 +/* 803BE524 003BB484 41 80 FF 7C */ blt lbl_803BE4A0 +/* 803BE528 003BB488 2C 17 FF FF */ cmpwi r23, -1 +/* 803BE52C 003BB48C 40 82 00 14 */ bne lbl_803BE540 +/* 803BE530 003BB490 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE534 003BB494 38 80 FF FC */ li r4, -4 +/* 803BE538 003BB498 4B FF A9 21 */ bl __CARDPutControlBlock +/* 803BE53C 003BB49C 48 00 00 98 */ b lbl_803BE5D4 +lbl_803BE540: +/* 803BE540 003BB4A0 2C 18 FF FF */ cmpwi r24, -1 +/* 803BE544 003BB4A4 41 82 00 14 */ beq lbl_803BE558 +/* 803BE548 003BB4A8 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE54C 003BB4AC 38 80 FF F9 */ li r4, -7 +/* 803BE550 003BB4B0 4B FF A9 09 */ bl __CARDPutControlBlock +/* 803BE554 003BB4B4 48 00 00 80 */ b lbl_803BE5D4 +lbl_803BE558: +/* 803BE558 003BB4B8 56 E0 30 32 */ slwi r0, r23, 6 +/* 803BE55C 003BB4BC 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE560 003BB4C0 7F 7A 02 14 */ add r27, r26, r0 +/* 803BE564 003BB4C4 38 9B 00 00 */ addi r4, r27, 0 +/* 803BE568 003BB4C8 4B FF E8 6D */ bl __CARDAccess +/* 803BE56C 003BB4CC 7C 64 1B 79 */ or. r4, r3, r3 +/* 803BE570 003BB4D0 40 80 00 10 */ bge lbl_803BE580 +/* 803BE574 003BB4D4 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE578 003BB4D8 4B FF A8 E1 */ bl __CARDPutControlBlock +/* 803BE57C 003BB4DC 48 00 00 58 */ b lbl_803BE5D4 +lbl_803BE580: +/* 803BE580 003BB4E0 38 9E 00 00 */ addi r4, r30, 0 +/* 803BE584 003BB4E4 38 7B 00 08 */ addi r3, r27, 8 +/* 803BE588 003BB4E8 38 A0 00 20 */ li r5, 0x20 +/* 803BE58C 003BB4EC 4B FD 1B 39 */ bl strncpy +/* 803BE590 003BB4F0 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803BE594 003BB4F4 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803BE598 003BB4F8 54 1D F0 BE */ srwi r29, r0, 2 +/* 803BE59C 003BB4FC 4B FC 6E 0D */ bl OSGetTime +/* 803BE5A0 003BB500 38 DD 00 00 */ addi r6, r29, 0 +/* 803BE5A4 003BB504 38 A0 00 00 */ li r5, 0 +/* 803BE5A8 003BB508 4B FC B6 25 */ bl __div2i +/* 803BE5AC 003BB50C 90 9B 00 28 */ stw r4, 0x28(r27) +/* 803BE5B0 003BB510 38 7C 00 00 */ addi r3, r28, 0 +/* 803BE5B4 003BB514 38 9F 00 00 */ addi r4, r31, 0 +/* 803BE5B8 003BB518 4B FF C5 59 */ bl __CARDUpdateDir +/* 803BE5BC 003BB51C 7C 7B 1B 79 */ or. r27, r3, r3 +/* 803BE5C0 003BB520 40 80 00 10 */ bge lbl_803BE5D0 +/* 803BE5C4 003BB524 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE5C8 003BB528 7F 64 DB 78 */ mr r4, r27 +/* 803BE5CC 003BB52C 4B FF A8 8D */ bl __CARDPutControlBlock +lbl_803BE5D0: +/* 803BE5D0 003BB530 7F 63 DB 78 */ mr r3, r27 +lbl_803BE5D4: +/* 803BE5D4 003BB534 BA E1 00 24 */ lmw r23, 0x24(r1) +/* 803BE5D8 003BB538 80 01 00 4C */ lwz r0, 0x4c(r1) +/* 803BE5DC 003BB53C 38 21 00 48 */ addi r1, r1, 0x48 +/* 803BE5E0 003BB540 7C 08 03 A6 */ mtlr r0 +/* 803BE5E4 003BB544 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDStat.s b/asm/Dolphin/CARD/CARDStat.s new file mode 100644 index 00000000..9cc57224 --- /dev/null +++ b/asm/Dolphin/CARD/CARDStat.s @@ -0,0 +1,345 @@ +.include "macros.inc" + +.section .text, "ax" + +.global UpdateIconOffsets +UpdateIconOffsets: +/* 803BDF54 003BAEB4 81 03 00 2C */ lwz r8, 0x2c(r3) +/* 803BDF58 003BAEB8 3C 08 00 01 */ addis r0, r8, 1 +/* 803BDF5C 003BAEBC 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BDF60 003BAEC0 40 82 00 18 */ bne lbl_803BDF78 +/* 803BDF64 003BAEC4 38 00 00 00 */ li r0, 0 +/* 803BDF68 003BAEC8 98 04 00 2E */ stb r0, 0x2e(r4) +/* 803BDF6C 003BAECC 39 00 00 00 */ li r8, 0 +/* 803BDF70 003BAED0 B0 04 00 34 */ sth r0, 0x34(r4) +/* 803BDF74 003BAED4 B0 04 00 36 */ sth r0, 0x36(r4) +lbl_803BDF78: +/* 803BDF78 003BAED8 88 03 00 07 */ lbz r0, 7(r3) +/* 803BDF7C 003BAEDC 39 20 00 00 */ li r9, 0 +/* 803BDF80 003BAEE0 54 00 07 BE */ clrlwi r0, r0, 0x1e +/* 803BDF84 003BAEE4 2C 00 00 02 */ cmpwi r0, 2 +/* 803BDF88 003BAEE8 41 82 00 28 */ beq lbl_803BDFB0 +/* 803BDF8C 003BAEEC 40 80 00 38 */ bge lbl_803BDFC4 +/* 803BDF90 003BAEF0 2C 00 00 01 */ cmpwi r0, 1 +/* 803BDF94 003BAEF4 40 80 00 08 */ bge lbl_803BDF9C +/* 803BDF98 003BAEF8 48 00 00 2C */ b lbl_803BDFC4 +lbl_803BDF9C: +/* 803BDF9C 003BAEFC 91 04 00 3C */ stw r8, 0x3c(r4) +/* 803BDFA0 003BAF00 38 08 0C 00 */ addi r0, r8, 0xc00 +/* 803BDFA4 003BAF04 39 08 0E 00 */ addi r8, r8, 0xe00 +/* 803BDFA8 003BAF08 90 04 00 40 */ stw r0, 0x40(r4) +/* 803BDFAC 003BAF0C 48 00 00 24 */ b lbl_803BDFD0 +lbl_803BDFB0: +/* 803BDFB0 003BAF10 91 04 00 3C */ stw r8, 0x3c(r4) +/* 803BDFB4 003BAF14 38 00 FF FF */ li r0, -1 +/* 803BDFB8 003BAF18 39 08 18 00 */ addi r8, r8, 0x1800 +/* 803BDFBC 003BAF1C 90 04 00 40 */ stw r0, 0x40(r4) +/* 803BDFC0 003BAF20 48 00 00 10 */ b lbl_803BDFD0 +lbl_803BDFC4: +/* 803BDFC4 003BAF24 38 00 FF FF */ li r0, -1 +/* 803BDFC8 003BAF28 90 04 00 3C */ stw r0, 0x3c(r4) +/* 803BDFCC 003BAF2C 90 04 00 40 */ stw r0, 0x40(r4) +lbl_803BDFD0: +/* 803BDFD0 003BAF30 38 00 00 02 */ li r0, 2 +/* 803BDFD4 003BAF34 7C 09 03 A6 */ mtctr r0 +/* 803BDFD8 003BAF38 38 E4 00 00 */ addi r7, r4, 0 +/* 803BDFDC 003BAF3C 39 40 00 00 */ li r10, 0 +/* 803BDFE0 003BAF40 38 C0 00 00 */ li r6, 0 +/* 803BDFE4 003BAF44 38 00 FF FF */ li r0, -1 +lbl_803BDFE8: +/* 803BDFE8 003BAF48 A0 A3 00 30 */ lhz r5, 0x30(r3) +/* 803BDFEC 003BAF4C 7C A5 36 30 */ sraw r5, r5, r6 +/* 803BDFF0 003BAF50 54 A5 07 BE */ clrlwi r5, r5, 0x1e +/* 803BDFF4 003BAF54 2C 05 00 02 */ cmpwi r5, 2 +/* 803BDFF8 003BAF58 41 82 00 24 */ beq lbl_803BE01C +/* 803BDFFC 003BAF5C 40 80 00 2C */ bge lbl_803BE028 +/* 803BE000 003BAF60 2C 05 00 01 */ cmpwi r5, 1 +/* 803BE004 003BAF64 40 80 00 08 */ bge lbl_803BE00C +/* 803BE008 003BAF68 48 00 00 20 */ b lbl_803BE028 +lbl_803BE00C: +/* 803BE00C 003BAF6C 91 07 00 44 */ stw r8, 0x44(r7) +/* 803BE010 003BAF70 39 20 00 01 */ li r9, 1 +/* 803BE014 003BAF74 39 08 04 00 */ addi r8, r8, 0x400 +/* 803BE018 003BAF78 48 00 00 14 */ b lbl_803BE02C +lbl_803BE01C: +/* 803BE01C 003BAF7C 91 07 00 44 */ stw r8, 0x44(r7) +/* 803BE020 003BAF80 39 08 08 00 */ addi r8, r8, 0x800 +/* 803BE024 003BAF84 48 00 00 08 */ b lbl_803BE02C +lbl_803BE028: +/* 803BE028 003BAF88 90 07 00 44 */ stw r0, 0x44(r7) +lbl_803BE02C: +/* 803BE02C 003BAF8C A0 A3 00 30 */ lhz r5, 0x30(r3) +/* 803BE030 003BAF90 38 C6 00 02 */ addi r6, r6, 2 +/* 803BE034 003BAF94 38 E7 00 04 */ addi r7, r7, 4 +/* 803BE038 003BAF98 7C A5 36 30 */ sraw r5, r5, r6 +/* 803BE03C 003BAF9C 54 A5 07 BE */ clrlwi r5, r5, 0x1e +/* 803BE040 003BAFA0 2C 05 00 02 */ cmpwi r5, 2 +/* 803BE044 003BAFA4 41 82 00 24 */ beq lbl_803BE068 +/* 803BE048 003BAFA8 40 80 00 2C */ bge lbl_803BE074 +/* 803BE04C 003BAFAC 2C 05 00 01 */ cmpwi r5, 1 +/* 803BE050 003BAFB0 40 80 00 08 */ bge lbl_803BE058 +/* 803BE054 003BAFB4 48 00 00 20 */ b lbl_803BE074 +lbl_803BE058: +/* 803BE058 003BAFB8 91 07 00 44 */ stw r8, 0x44(r7) +/* 803BE05C 003BAFBC 39 20 00 01 */ li r9, 1 +/* 803BE060 003BAFC0 39 08 04 00 */ addi r8, r8, 0x400 +/* 803BE064 003BAFC4 48 00 00 14 */ b lbl_803BE078 +lbl_803BE068: +/* 803BE068 003BAFC8 91 07 00 44 */ stw r8, 0x44(r7) +/* 803BE06C 003BAFCC 39 08 08 00 */ addi r8, r8, 0x800 +/* 803BE070 003BAFD0 48 00 00 08 */ b lbl_803BE078 +lbl_803BE074: +/* 803BE074 003BAFD4 90 07 00 44 */ stw r0, 0x44(r7) +lbl_803BE078: +/* 803BE078 003BAFD8 A0 A3 00 30 */ lhz r5, 0x30(r3) +/* 803BE07C 003BAFDC 38 C6 00 02 */ addi r6, r6, 2 +/* 803BE080 003BAFE0 39 4A 00 01 */ addi r10, r10, 1 +/* 803BE084 003BAFE4 7C A5 36 30 */ sraw r5, r5, r6 +/* 803BE088 003BAFE8 54 A5 07 BE */ clrlwi r5, r5, 0x1e +/* 803BE08C 003BAFEC 2C 05 00 02 */ cmpwi r5, 2 +/* 803BE090 003BAFF0 38 E7 00 04 */ addi r7, r7, 4 +/* 803BE094 003BAFF4 41 82 00 24 */ beq lbl_803BE0B8 +/* 803BE098 003BAFF8 40 80 00 2C */ bge lbl_803BE0C4 +/* 803BE09C 003BAFFC 2C 05 00 01 */ cmpwi r5, 1 +/* 803BE0A0 003BB000 40 80 00 08 */ bge lbl_803BE0A8 +/* 803BE0A4 003BB004 48 00 00 20 */ b lbl_803BE0C4 +lbl_803BE0A8: +/* 803BE0A8 003BB008 91 07 00 44 */ stw r8, 0x44(r7) +/* 803BE0AC 003BB00C 39 20 00 01 */ li r9, 1 +/* 803BE0B0 003BB010 39 08 04 00 */ addi r8, r8, 0x400 +/* 803BE0B4 003BB014 48 00 00 14 */ b lbl_803BE0C8 +lbl_803BE0B8: +/* 803BE0B8 003BB018 91 07 00 44 */ stw r8, 0x44(r7) +/* 803BE0BC 003BB01C 39 08 08 00 */ addi r8, r8, 0x800 +/* 803BE0C0 003BB020 48 00 00 08 */ b lbl_803BE0C8 +lbl_803BE0C4: +/* 803BE0C4 003BB024 90 07 00 44 */ stw r0, 0x44(r7) +lbl_803BE0C8: +/* 803BE0C8 003BB028 A0 A3 00 30 */ lhz r5, 0x30(r3) +/* 803BE0CC 003BB02C 38 C6 00 02 */ addi r6, r6, 2 +/* 803BE0D0 003BB030 39 4A 00 01 */ addi r10, r10, 1 +/* 803BE0D4 003BB034 7C A5 36 30 */ sraw r5, r5, r6 +/* 803BE0D8 003BB038 54 A5 07 BE */ clrlwi r5, r5, 0x1e +/* 803BE0DC 003BB03C 2C 05 00 02 */ cmpwi r5, 2 +/* 803BE0E0 003BB040 38 E7 00 04 */ addi r7, r7, 4 +/* 803BE0E4 003BB044 41 82 00 24 */ beq lbl_803BE108 +/* 803BE0E8 003BB048 40 80 00 2C */ bge lbl_803BE114 +/* 803BE0EC 003BB04C 2C 05 00 01 */ cmpwi r5, 1 +/* 803BE0F0 003BB050 40 80 00 08 */ bge lbl_803BE0F8 +/* 803BE0F4 003BB054 48 00 00 20 */ b lbl_803BE114 +lbl_803BE0F8: +/* 803BE0F8 003BB058 91 07 00 44 */ stw r8, 0x44(r7) +/* 803BE0FC 003BB05C 39 20 00 01 */ li r9, 1 +/* 803BE100 003BB060 39 08 04 00 */ addi r8, r8, 0x400 +/* 803BE104 003BB064 48 00 00 14 */ b lbl_803BE118 +lbl_803BE108: +/* 803BE108 003BB068 91 07 00 44 */ stw r8, 0x44(r7) +/* 803BE10C 003BB06C 39 08 08 00 */ addi r8, r8, 0x800 +/* 803BE110 003BB070 48 00 00 08 */ b lbl_803BE118 +lbl_803BE114: +/* 803BE114 003BB074 90 07 00 44 */ stw r0, 0x44(r7) +lbl_803BE118: +/* 803BE118 003BB078 38 C6 00 02 */ addi r6, r6, 2 +/* 803BE11C 003BB07C 38 E7 00 04 */ addi r7, r7, 4 +/* 803BE120 003BB080 39 4A 00 01 */ addi r10, r10, 1 +/* 803BE124 003BB084 42 00 FE C4 */ bdnz lbl_803BDFE8 +/* 803BE128 003BB088 2C 09 00 00 */ cmpwi r9, 0 +/* 803BE12C 003BB08C 41 82 00 10 */ beq lbl_803BE13C +/* 803BE130 003BB090 91 04 00 64 */ stw r8, 0x64(r4) +/* 803BE134 003BB094 39 08 02 00 */ addi r8, r8, 0x200 +/* 803BE138 003BB098 48 00 00 0C */ b lbl_803BE144 +lbl_803BE13C: +/* 803BE13C 003BB09C 38 00 FF FF */ li r0, -1 +/* 803BE140 003BB0A0 90 04 00 64 */ stw r0, 0x64(r4) +lbl_803BE144: +/* 803BE144 003BB0A4 91 04 00 68 */ stw r8, 0x68(r4) +/* 803BE148 003BB0A8 4E 80 00 20 */ blr + +.global CARDGetStatus +CARDGetStatus: +/* 803BE14C 003BB0AC 7C 08 02 A6 */ mflr r0 +/* 803BE150 003BB0B0 90 01 00 04 */ stw r0, 4(r1) +/* 803BE154 003BB0B4 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BE158 003BB0B8 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803BE15C 003BB0BC 3B E5 00 00 */ addi r31, r5, 0 +/* 803BE160 003BB0C0 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803BE164 003BB0C4 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803BE168 003BB0C8 7C 9D 23 79 */ or. r29, r4, r4 +/* 803BE16C 003BB0CC 41 80 00 0C */ blt lbl_803BE178 +/* 803BE170 003BB0D0 2C 1D 00 7F */ cmpwi r29, 0x7f +/* 803BE174 003BB0D4 41 80 00 0C */ blt lbl_803BE180 +lbl_803BE178: +/* 803BE178 003BB0D8 38 60 FF 80 */ li r3, -128 +/* 803BE17C 003BB0DC 48 00 00 E0 */ b lbl_803BE25C +lbl_803BE180: +/* 803BE180 003BB0E0 38 81 00 14 */ addi r4, r1, 0x14 +/* 803BE184 003BB0E4 4B FF AC 1D */ bl __CARDGetControlBlock +/* 803BE188 003BB0E8 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE18C 003BB0EC 40 80 00 08 */ bge lbl_803BE194 +/* 803BE190 003BB0F0 48 00 00 CC */ b lbl_803BE25C +lbl_803BE194: +/* 803BE194 003BB0F4 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BE198 003BB0F8 4B FF C7 D9 */ bl __CARDGetDirBlock +/* 803BE19C 003BB0FC 57 A0 30 32 */ slwi r0, r29, 6 +/* 803BE1A0 003BB100 7F A3 02 14 */ add r29, r3, r0 +/* 803BE1A4 003BB104 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BE1A8 003BB108 7F A4 EB 78 */ mr r4, r29 +/* 803BE1AC 003BB10C 4B FF EC 29 */ bl __CARDAccess +/* 803BE1B0 003BB110 3B C3 00 00 */ addi r30, r3, 0 +/* 803BE1B4 003BB114 2C 1E FF F6 */ cmpwi r30, -10 +/* 803BE1B8 003BB118 40 82 00 10 */ bne lbl_803BE1C8 +/* 803BE1BC 003BB11C 7F A3 EB 78 */ mr r3, r29 +/* 803BE1C0 003BB120 4B FF EC AD */ bl sub_803bce6c +/* 803BE1C4 003BB124 7C 7E 1B 78 */ mr r30, r3 +lbl_803BE1C8: +/* 803BE1C8 003BB128 2C 1E 00 00 */ cmpwi r30, 0 +/* 803BE1CC 003BB12C 41 80 00 84 */ blt lbl_803BE250 +/* 803BE1D0 003BB130 38 9D 00 00 */ addi r4, r29, 0 +/* 803BE1D4 003BB134 38 7F 00 28 */ addi r3, r31, 0x28 +/* 803BE1D8 003BB138 38 A0 00 04 */ li r5, 4 +/* 803BE1DC 003BB13C 4B C4 52 B5 */ bl memcpy +/* 803BE1E0 003BB140 38 7F 00 2C */ addi r3, r31, 0x2c +/* 803BE1E4 003BB144 38 9D 00 04 */ addi r4, r29, 4 +/* 803BE1E8 003BB148 38 A0 00 02 */ li r5, 2 +/* 803BE1EC 003BB14C 4B C4 52 A5 */ bl memcpy +/* 803BE1F0 003BB150 80 A1 00 14 */ lwz r5, 0x14(r1) +/* 803BE1F4 003BB154 7F E3 FB 78 */ mr r3, r31 +/* 803BE1F8 003BB158 A0 DD 00 38 */ lhz r6, 0x38(r29) +/* 803BE1FC 003BB15C 38 9D 00 08 */ addi r4, r29, 8 +/* 803BE200 003BB160 80 05 00 0C */ lwz r0, 0xc(r5) +/* 803BE204 003BB164 38 A0 00 20 */ li r5, 0x20 +/* 803BE208 003BB168 7C 06 01 D6 */ mullw r0, r6, r0 +/* 803BE20C 003BB16C 90 1F 00 20 */ stw r0, 0x20(r31) +/* 803BE210 003BB170 4B C4 52 81 */ bl memcpy +/* 803BE214 003BB174 80 1D 00 28 */ lwz r0, 0x28(r29) +/* 803BE218 003BB178 38 7D 00 00 */ addi r3, r29, 0 +/* 803BE21C 003BB17C 38 9F 00 00 */ addi r4, r31, 0 +/* 803BE220 003BB180 90 1F 00 24 */ stw r0, 0x24(r31) +/* 803BE224 003BB184 88 1D 00 07 */ lbz r0, 7(r29) +/* 803BE228 003BB188 98 1F 00 2E */ stb r0, 0x2e(r31) +/* 803BE22C 003BB18C 80 1D 00 2C */ lwz r0, 0x2c(r29) +/* 803BE230 003BB190 90 1F 00 30 */ stw r0, 0x30(r31) +/* 803BE234 003BB194 A0 1D 00 30 */ lhz r0, 0x30(r29) +/* 803BE238 003BB198 B0 1F 00 34 */ sth r0, 0x34(r31) +/* 803BE23C 003BB19C A0 1D 00 32 */ lhz r0, 0x32(r29) +/* 803BE240 003BB1A0 B0 1F 00 36 */ sth r0, 0x36(r31) +/* 803BE244 003BB1A4 80 1D 00 3C */ lwz r0, 0x3c(r29) +/* 803BE248 003BB1A8 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803BE24C 003BB1AC 4B FF FD 09 */ bl UpdateIconOffsets +lbl_803BE250: +/* 803BE250 003BB1B0 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803BE254 003BB1B4 7F C4 F3 78 */ mr r4, r30 +/* 803BE258 003BB1B8 4B FF AC 01 */ bl __CARDPutControlBlock +lbl_803BE25C: +/* 803BE25C 003BB1BC 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BE260 003BB1C0 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803BE264 003BB1C4 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803BE268 003BB1C8 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803BE26C 003BB1CC 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BE270 003BB1D0 7C 08 03 A6 */ mtlr r0 +/* 803BE274 003BB1D4 4E 80 00 20 */ blr + +.global CARDSetStatusAsync +CARDSetStatusAsync: +/* 803BE278 003BB1D8 7C 08 02 A6 */ mflr r0 +/* 803BE27C 003BB1DC 90 01 00 04 */ stw r0, 4(r1) +/* 803BE280 003BB1E0 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BE284 003BB1E4 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803BE288 003BB1E8 7C 9F 23 79 */ or. r31, r4, r4 +/* 803BE28C 003BB1EC 93 C1 00 28 */ stw r30, 0x28(r1) +/* 803BE290 003BB1F0 3B C6 00 00 */ addi r30, r6, 0 +/* 803BE294 003BB1F4 93 A1 00 24 */ stw r29, 0x24(r1) +/* 803BE298 003BB1F8 3B A5 00 00 */ addi r29, r5, 0 +/* 803BE29C 003BB1FC 93 81 00 20 */ stw r28, 0x20(r1) +/* 803BE2A0 003BB200 3B 83 00 00 */ addi r28, r3, 0 +/* 803BE2A4 003BB204 41 80 00 40 */ blt lbl_803BE2E4 +/* 803BE2A8 003BB208 2C 1F 00 7F */ cmpwi r31, 0x7f +/* 803BE2AC 003BB20C 40 80 00 38 */ bge lbl_803BE2E4 +/* 803BE2B0 003BB210 80 7D 00 30 */ lwz r3, 0x30(r29) +/* 803BE2B4 003BB214 3C 03 00 01 */ addis r0, r3, 1 +/* 803BE2B8 003BB218 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BE2BC 003BB21C 41 82 00 0C */ beq lbl_803BE2C8 +/* 803BE2C0 003BB220 28 03 02 00 */ cmplwi r3, 0x200 +/* 803BE2C4 003BB224 40 80 00 20 */ bge lbl_803BE2E4 +lbl_803BE2C8: +/* 803BE2C8 003BB228 80 7D 00 38 */ lwz r3, 0x38(r29) +/* 803BE2CC 003BB22C 3C 03 00 01 */ addis r0, r3, 1 +/* 803BE2D0 003BB230 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BE2D4 003BB234 41 82 00 18 */ beq lbl_803BE2EC +/* 803BE2D8 003BB238 54 60 04 FE */ clrlwi r0, r3, 0x13 +/* 803BE2DC 003BB23C 28 00 1F C0 */ cmplwi r0, 0x1fc0 +/* 803BE2E0 003BB240 40 81 00 0C */ ble lbl_803BE2EC +lbl_803BE2E4: +/* 803BE2E4 003BB244 38 60 FF 80 */ li r3, -128 +/* 803BE2E8 003BB248 48 00 00 E4 */ b lbl_803BE3CC +lbl_803BE2EC: +/* 803BE2EC 003BB24C 38 7C 00 00 */ addi r3, r28, 0 +/* 803BE2F0 003BB250 38 81 00 18 */ addi r4, r1, 0x18 +/* 803BE2F4 003BB254 4B FF AA AD */ bl __CARDGetControlBlock +/* 803BE2F8 003BB258 2C 03 00 00 */ cmpwi r3, 0 +/* 803BE2FC 003BB25C 40 80 00 08 */ bge lbl_803BE304 +/* 803BE300 003BB260 48 00 00 CC */ b lbl_803BE3CC +lbl_803BE304: +/* 803BE304 003BB264 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE308 003BB268 4B FF C6 69 */ bl __CARDGetDirBlock +/* 803BE30C 003BB26C 57 E0 30 32 */ slwi r0, r31, 6 +/* 803BE310 003BB270 7F E3 02 14 */ add r31, r3, r0 +/* 803BE314 003BB274 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE318 003BB278 7F E4 FB 78 */ mr r4, r31 +/* 803BE31C 003BB27C 4B FF EA B9 */ bl __CARDAccess +/* 803BE320 003BB280 7C 64 1B 79 */ or. r4, r3, r3 +/* 803BE324 003BB284 40 80 00 10 */ bge lbl_803BE334 +/* 803BE328 003BB288 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE32C 003BB28C 4B FF AB 2D */ bl __CARDPutControlBlock +/* 803BE330 003BB290 48 00 00 9C */ b lbl_803BE3CC +lbl_803BE334: +/* 803BE334 003BB294 88 1D 00 2E */ lbz r0, 0x2e(r29) +/* 803BE338 003BB298 38 7F 00 00 */ addi r3, r31, 0 +/* 803BE33C 003BB29C 38 9D 00 00 */ addi r4, r29, 0 +/* 803BE340 003BB2A0 98 1F 00 07 */ stb r0, 7(r31) +/* 803BE344 003BB2A4 80 1D 00 30 */ lwz r0, 0x30(r29) +/* 803BE348 003BB2A8 90 1F 00 2C */ stw r0, 0x2c(r31) +/* 803BE34C 003BB2AC A0 1D 00 34 */ lhz r0, 0x34(r29) +/* 803BE350 003BB2B0 B0 1F 00 30 */ sth r0, 0x30(r31) +/* 803BE354 003BB2B4 A0 1D 00 36 */ lhz r0, 0x36(r29) +/* 803BE358 003BB2B8 B0 1F 00 32 */ sth r0, 0x32(r31) +/* 803BE35C 003BB2BC 80 1D 00 38 */ lwz r0, 0x38(r29) +/* 803BE360 003BB2C0 90 1F 00 3C */ stw r0, 0x3c(r31) +/* 803BE364 003BB2C4 4B FF FB F1 */ bl UpdateIconOffsets +/* 803BE368 003BB2C8 80 7F 00 2C */ lwz r3, 0x2c(r31) +/* 803BE36C 003BB2CC 3C 03 00 01 */ addis r0, r3, 1 +/* 803BE370 003BB2D0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803BE374 003BB2D4 40 82 00 14 */ bne lbl_803BE388 +/* 803BE378 003BB2D8 A0 1F 00 32 */ lhz r0, 0x32(r31) +/* 803BE37C 003BB2DC 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d +/* 803BE380 003BB2E0 60 00 00 01 */ ori r0, r0, 1 +/* 803BE384 003BB2E4 B0 1F 00 32 */ sth r0, 0x32(r31) +lbl_803BE388: +/* 803BE388 003BB2E8 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803BE38C 003BB2EC 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803BE390 003BB2F0 54 1D F0 BE */ srwi r29, r0, 2 +/* 803BE394 003BB2F4 4B FC 70 15 */ bl OSGetTime +/* 803BE398 003BB2F8 38 DD 00 00 */ addi r6, r29, 0 +/* 803BE39C 003BB2FC 38 A0 00 00 */ li r5, 0 +/* 803BE3A0 003BB300 4B FC B8 2D */ bl __div2i +/* 803BE3A4 003BB304 90 9F 00 28 */ stw r4, 0x28(r31) +/* 803BE3A8 003BB308 38 7C 00 00 */ addi r3, r28, 0 +/* 803BE3AC 003BB30C 38 9E 00 00 */ addi r4, r30, 0 +/* 803BE3B0 003BB310 4B FF C7 61 */ bl __CARDUpdateDir +/* 803BE3B4 003BB314 7C 7C 1B 79 */ or. r28, r3, r3 +/* 803BE3B8 003BB318 40 80 00 10 */ bge lbl_803BE3C8 +/* 803BE3BC 003BB31C 80 61 00 18 */ lwz r3, 0x18(r1) +/* 803BE3C0 003BB320 7F 84 E3 78 */ mr r4, r28 +/* 803BE3C4 003BB324 4B FF AA 95 */ bl __CARDPutControlBlock +lbl_803BE3C8: +/* 803BE3C8 003BB328 7F 83 E3 78 */ mr r3, r28 +lbl_803BE3CC: +/* 803BE3CC 003BB32C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BE3D0 003BB330 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803BE3D4 003BB334 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 803BE3D8 003BB338 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 803BE3DC 003BB33C 83 81 00 20 */ lwz r28, 0x20(r1) +/* 803BE3E0 003BB340 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BE3E4 003BB344 7C 08 03 A6 */ mtlr r0 +/* 803BE3E8 003BB348 4E 80 00 20 */ blr + diff --git a/asm/Dolphin/CARD/CARDUnlock.s b/asm/Dolphin/CARD/CARDUnlock.s new file mode 100644 index 00000000..c294d967 --- /dev/null +++ b/asm/Dolphin/CARD/CARDUnlock.s @@ -0,0 +1,1250 @@ +.include "macros.inc" + +.section .text, "ax" + +bitrev: +/* 803B908C 003B5FEC 38 00 00 08 */ li r0, 8 +/* 803B9090 003B5FF0 7C 09 03 A6 */ mtctr r0 +/* 803B9094 003B5FF4 54 66 0F FE */ srwi r6, r3, 0x1f +/* 803B9098 003B5FF8 39 20 00 00 */ li r9, 0 +/* 803B909C 003B5FFC 39 40 00 01 */ li r10, 1 +/* 803B90A0 003B6000 38 E0 00 00 */ li r7, 0 +/* 803B90A4 003B6004 39 00 00 00 */ li r8, 0 +/* 803B90A8 003B6008 38 A0 00 01 */ li r5, 1 +lbl_803B90AC: +/* 803B90AC 003B600C 28 08 00 0F */ cmplwi r8, 0xf +/* 803B90B0 003B6010 40 81 00 2C */ ble lbl_803B90DC +/* 803B90B4 003B6014 28 08 00 1F */ cmplwi r8, 0x1f +/* 803B90B8 003B6018 40 82 00 0C */ bne lbl_803B90C4 +/* 803B90BC 003B601C 7C E7 33 78 */ or r7, r7, r6 +/* 803B90C0 003B6020 48 00 00 38 */ b lbl_803B90F8 +lbl_803B90C4: +/* 803B90C4 003B6024 7C A0 40 30 */ slw r0, r5, r8 +/* 803B90C8 003B6028 7C 60 00 38 */ and r0, r3, r0 +/* 803B90CC 003B602C 7C 00 54 30 */ srw r0, r0, r10 +/* 803B90D0 003B6030 7C E7 03 78 */ or r7, r7, r0 +/* 803B90D4 003B6034 39 4A 00 02 */ addi r10, r10, 2 +/* 803B90D8 003B6038 48 00 00 20 */ b lbl_803B90F8 +lbl_803B90DC: +/* 803B90DC 003B603C 7C A4 40 30 */ slw r4, r5, r8 +/* 803B90E0 003B6040 20 08 00 1F */ subfic r0, r8, 0x1f +/* 803B90E4 003B6044 7C 09 00 50 */ subf r0, r9, r0 +/* 803B90E8 003B6048 7C 64 20 38 */ and r4, r3, r4 +/* 803B90EC 003B604C 7C 80 00 30 */ slw r0, r4, r0 +/* 803B90F0 003B6050 7C E7 03 78 */ or r7, r7, r0 +/* 803B90F4 003B6054 39 29 00 01 */ addi r9, r9, 1 +lbl_803B90F8: +/* 803B90F8 003B6058 39 08 00 01 */ addi r8, r8, 1 +/* 803B90FC 003B605C 28 08 00 0F */ cmplwi r8, 0xf +/* 803B9100 003B6060 40 81 00 2C */ ble lbl_803B912C +/* 803B9104 003B6064 28 08 00 1F */ cmplwi r8, 0x1f +/* 803B9108 003B6068 40 82 00 0C */ bne lbl_803B9114 +/* 803B910C 003B606C 7C E7 33 78 */ or r7, r7, r6 +/* 803B9110 003B6070 48 00 00 38 */ b lbl_803B9148 +lbl_803B9114: +/* 803B9114 003B6074 7C A0 40 30 */ slw r0, r5, r8 +/* 803B9118 003B6078 7C 60 00 38 */ and r0, r3, r0 +/* 803B911C 003B607C 7C 00 54 30 */ srw r0, r0, r10 +/* 803B9120 003B6080 7C E7 03 78 */ or r7, r7, r0 +/* 803B9124 003B6084 39 4A 00 02 */ addi r10, r10, 2 +/* 803B9128 003B6088 48 00 00 20 */ b lbl_803B9148 +lbl_803B912C: +/* 803B912C 003B608C 7C A4 40 30 */ slw r4, r5, r8 +/* 803B9130 003B6090 20 08 00 1F */ subfic r0, r8, 0x1f +/* 803B9134 003B6094 7C 09 00 50 */ subf r0, r9, r0 +/* 803B9138 003B6098 7C 64 20 38 */ and r4, r3, r4 +/* 803B913C 003B609C 7C 80 00 30 */ slw r0, r4, r0 +/* 803B9140 003B60A0 7C E7 03 78 */ or r7, r7, r0 +/* 803B9144 003B60A4 39 29 00 01 */ addi r9, r9, 1 +lbl_803B9148: +/* 803B9148 003B60A8 39 08 00 01 */ addi r8, r8, 1 +/* 803B914C 003B60AC 28 08 00 0F */ cmplwi r8, 0xf +/* 803B9150 003B60B0 40 81 00 2C */ ble lbl_803B917C +/* 803B9154 003B60B4 28 08 00 1F */ cmplwi r8, 0x1f +/* 803B9158 003B60B8 40 82 00 0C */ bne lbl_803B9164 +/* 803B915C 003B60BC 7C E7 33 78 */ or r7, r7, r6 +/* 803B9160 003B60C0 48 00 00 38 */ b lbl_803B9198 +lbl_803B9164: +/* 803B9164 003B60C4 7C A0 40 30 */ slw r0, r5, r8 +/* 803B9168 003B60C8 7C 60 00 38 */ and r0, r3, r0 +/* 803B916C 003B60CC 7C 00 54 30 */ srw r0, r0, r10 +/* 803B9170 003B60D0 7C E7 03 78 */ or r7, r7, r0 +/* 803B9174 003B60D4 39 4A 00 02 */ addi r10, r10, 2 +/* 803B9178 003B60D8 48 00 00 20 */ b lbl_803B9198 +lbl_803B917C: +/* 803B917C 003B60DC 7C A4 40 30 */ slw r4, r5, r8 +/* 803B9180 003B60E0 20 08 00 1F */ subfic r0, r8, 0x1f +/* 803B9184 003B60E4 7C 09 00 50 */ subf r0, r9, r0 +/* 803B9188 003B60E8 7C 64 20 38 */ and r4, r3, r4 +/* 803B918C 003B60EC 7C 80 00 30 */ slw r0, r4, r0 +/* 803B9190 003B60F0 7C E7 03 78 */ or r7, r7, r0 +/* 803B9194 003B60F4 39 29 00 01 */ addi r9, r9, 1 +lbl_803B9198: +/* 803B9198 003B60F8 39 08 00 01 */ addi r8, r8, 1 +/* 803B919C 003B60FC 28 08 00 0F */ cmplwi r8, 0xf +/* 803B91A0 003B6100 40 81 00 2C */ ble lbl_803B91CC +/* 803B91A4 003B6104 28 08 00 1F */ cmplwi r8, 0x1f +/* 803B91A8 003B6108 40 82 00 0C */ bne lbl_803B91B4 +/* 803B91AC 003B610C 7C E7 33 78 */ or r7, r7, r6 +/* 803B91B0 003B6110 48 00 00 38 */ b lbl_803B91E8 +lbl_803B91B4: +/* 803B91B4 003B6114 7C A0 40 30 */ slw r0, r5, r8 +/* 803B91B8 003B6118 7C 60 00 38 */ and r0, r3, r0 +/* 803B91BC 003B611C 7C 00 54 30 */ srw r0, r0, r10 +/* 803B91C0 003B6120 7C E7 03 78 */ or r7, r7, r0 +/* 803B91C4 003B6124 39 4A 00 02 */ addi r10, r10, 2 +/* 803B91C8 003B6128 48 00 00 20 */ b lbl_803B91E8 +lbl_803B91CC: +/* 803B91CC 003B612C 7C A4 40 30 */ slw r4, r5, r8 +/* 803B91D0 003B6130 20 08 00 1F */ subfic r0, r8, 0x1f +/* 803B91D4 003B6134 7C 09 00 50 */ subf r0, r9, r0 +/* 803B91D8 003B6138 7C 64 20 38 */ and r4, r3, r4 +/* 803B91DC 003B613C 7C 80 00 30 */ slw r0, r4, r0 +/* 803B91E0 003B6140 7C E7 03 78 */ or r7, r7, r0 +/* 803B91E4 003B6144 39 29 00 01 */ addi r9, r9, 1 +lbl_803B91E8: +/* 803B91E8 003B6148 39 08 00 01 */ addi r8, r8, 1 +/* 803B91EC 003B614C 42 00 FE C0 */ bdnz lbl_803B90AC +/* 803B91F0 003B6150 7C E3 3B 78 */ mr r3, r7 +/* 803B91F4 003B6154 4E 80 00 20 */ blr + +.global ReadArrayUnlock +ReadArrayUnlock: +/* 803B91F8 003B6158 7C 08 02 A6 */ mflr r0 +/* 803B91FC 003B615C 90 01 00 04 */ stw r0, 4(r1) +/* 803B9200 003B6160 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803B9204 003B6164 BF 41 00 28 */ stmw r26, 0x28(r1) +/* 803B9208 003B6168 3B A3 00 00 */ addi r29, r3, 0 +/* 803B920C 003B616C 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B9210 003B6170 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B9214 003B6174 1D 1D 01 10 */ mulli r8, r29, 0x110 +/* 803B9218 003B6178 3B 44 00 00 */ addi r26, r4, 0 +/* 803B921C 003B617C 3B C5 00 00 */ addi r30, r5, 0 +/* 803B9220 003B6180 3B E6 00 00 */ addi r31, r6, 0 +/* 803B9224 003B6184 3B 67 00 00 */ addi r27, r7, 0 +/* 803B9228 003B6188 38 7D 00 00 */ addi r3, r29, 0 +/* 803B922C 003B618C 7F 80 42 14 */ add r28, r0, r8 +/* 803B9230 003B6190 38 80 00 00 */ li r4, 0 +/* 803B9234 003B6194 38 A0 00 04 */ li r5, 4 +/* 803B9238 003B6198 48 00 7A 25 */ bl EXISelect +/* 803B923C 003B619C 2C 03 00 00 */ cmpwi r3, 0 +/* 803B9240 003B61A0 40 82 00 0C */ bne lbl_803B924C +/* 803B9244 003B61A4 38 60 FF FD */ li r3, -3 +/* 803B9248 003B61A8 48 00 00 E0 */ b lbl_803B9328 +lbl_803B924C: +/* 803B924C 003B61AC 57 5A 00 26 */ rlwinm r26, r26, 0, 0, 0x13 +/* 803B9250 003B61B0 38 61 00 1C */ addi r3, r1, 0x1c +/* 803B9254 003B61B4 38 80 00 00 */ li r4, 0 +/* 803B9258 003B61B8 38 A0 00 05 */ li r5, 5 +/* 803B925C 003B61BC 4B C4 A1 4D */ bl memset +/* 803B9260 003B61C0 38 00 00 52 */ li r0, 0x52 +/* 803B9264 003B61C4 2C 1B 00 00 */ cmpwi r27, 0 +/* 803B9268 003B61C8 98 01 00 1C */ stb r0, 0x1c(r1) +/* 803B926C 003B61CC 40 82 00 28 */ bne lbl_803B9294 +/* 803B9270 003B61D0 57 40 1F BE */ rlwinm r0, r26, 3, 0x1e, 0x1f +/* 803B9274 003B61D4 98 01 00 1D */ stb r0, 0x1d(r1) +/* 803B9278 003B61D8 57 40 5E 3E */ rlwinm r0, r26, 0xb, 0x18, 0x1f +/* 803B927C 003B61DC 57 43 6F BE */ rlwinm r3, r26, 0xd, 0x1e, 0x1f +/* 803B9280 003B61E0 98 01 00 1E */ stb r0, 0x1e(r1) +/* 803B9284 003B61E4 57 40 A6 7E */ rlwinm r0, r26, 0x14, 0x19, 0x1f +/* 803B9288 003B61E8 98 61 00 1F */ stb r3, 0x1f(r1) +/* 803B928C 003B61EC 98 01 00 20 */ stb r0, 0x20(r1) +/* 803B9290 003B61F0 48 00 00 14 */ b lbl_803B92A4 +lbl_803B9294: +/* 803B9294 003B61F4 57 40 46 3E */ srwi r0, r26, 0x18 +/* 803B9298 003B61F8 98 01 00 1D */ stb r0, 0x1d(r1) +/* 803B929C 003B61FC 57 40 86 3E */ rlwinm r0, r26, 0x10, 0x18, 0x1f +/* 803B92A0 003B6200 98 01 00 1E */ stb r0, 0x1e(r1) +lbl_803B92A4: +/* 803B92A4 003B6204 38 7D 00 00 */ addi r3, r29, 0 +/* 803B92A8 003B6208 38 81 00 1C */ addi r4, r1, 0x1c +/* 803B92AC 003B620C 38 A0 00 05 */ li r5, 5 +/* 803B92B0 003B6210 38 C0 00 01 */ li r6, 1 +/* 803B92B4 003B6214 48 00 70 B1 */ bl EXIImmEx +/* 803B92B8 003B6218 80 9C 00 80 */ lwz r4, 0x80(r28) +/* 803B92BC 003B621C 7C 60 00 34 */ cntlzw r0, r3 +/* 803B92C0 003B6220 80 BC 00 14 */ lwz r5, 0x14(r28) +/* 803B92C4 003B6224 38 7D 00 00 */ addi r3, r29, 0 +/* 803B92C8 003B6228 54 1C D9 7E */ srwi r28, r0, 5 +/* 803B92CC 003B622C 38 84 02 00 */ addi r4, r4, 0x200 +/* 803B92D0 003B6230 38 C0 00 01 */ li r6, 1 +/* 803B92D4 003B6234 48 00 70 91 */ bl EXIImmEx +/* 803B92D8 003B6238 7C 60 00 34 */ cntlzw r0, r3 +/* 803B92DC 003B623C 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B92E0 003B6240 38 7D 00 00 */ addi r3, r29, 0 +/* 803B92E4 003B6244 38 9E 00 00 */ addi r4, r30, 0 +/* 803B92E8 003B6248 38 BF 00 00 */ addi r5, r31, 0 +/* 803B92EC 003B624C 7F 9C 03 78 */ or r28, r28, r0 +/* 803B92F0 003B6250 38 C0 00 00 */ li r6, 0 +/* 803B92F4 003B6254 48 00 70 71 */ bl EXIImmEx +/* 803B92F8 003B6258 7C 60 00 34 */ cntlzw r0, r3 +/* 803B92FC 003B625C 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B9300 003B6260 38 7D 00 00 */ addi r3, r29, 0 +/* 803B9304 003B6264 7F 9C 03 78 */ or r28, r28, r0 +/* 803B9308 003B6268 48 00 7A 81 */ bl EXIDeselect +/* 803B930C 003B626C 7C 60 00 34 */ cntlzw r0, r3 +/* 803B9310 003B6270 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B9314 003B6274 7F 9C 03 79 */ or. r28, r28, r0 +/* 803B9318 003B6278 41 82 00 0C */ beq lbl_803B9324 +/* 803B931C 003B627C 38 60 FF FD */ li r3, -3 +/* 803B9320 003B6280 48 00 00 08 */ b lbl_803B9328 +lbl_803B9324: +/* 803B9324 003B6284 38 60 00 00 */ li r3, 0 +lbl_803B9328: +/* 803B9328 003B6288 BB 41 00 28 */ lmw r26, 0x28(r1) +/* 803B932C 003B628C 80 01 00 44 */ lwz r0, 0x44(r1) +/* 803B9330 003B6290 38 21 00 40 */ addi r1, r1, 0x40 +/* 803B9334 003B6294 7C 08 03 A6 */ mtlr r0 +/* 803B9338 003B6298 4E 80 00 20 */ blr + +.global DummyLen +DummyLen: +/* 803B933C 003B629C 7C 08 02 A6 */ mflr r0 +/* 803B9340 003B62A0 90 01 00 04 */ stw r0, 4(r1) +/* 803B9344 003B62A4 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803B9348 003B62A8 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803B934C 003B62AC 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803B9350 003B62B0 3B C0 00 01 */ li r30, 1 +/* 803B9354 003B62B4 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803B9358 003B62B8 3B A0 00 00 */ li r29, 0 +/* 803B935C 003B62BC 4B FC C0 65 */ bl OSGetTick +/* 803B9360 003B62C0 90 6D A0 38 */ stw r3, lbl_805A8BF8@sda21(r13) +/* 803B9364 003B62C4 3C 60 41 C6 */ lis r3, 0x41C64E6D@ha +/* 803B9368 003B62C8 3B E3 4E 6D */ addi r31, r3, 0x41C64E6D@l +/* 803B936C 003B62CC 80 0D A0 38 */ lwz r0, lbl_805A8BF8@sda21(r13) +/* 803B9370 003B62D0 7C 60 F9 D6 */ mullw r3, r0, r31 +/* 803B9374 003B62D4 38 03 30 39 */ addi r0, r3, 0x3039 +/* 803B9378 003B62D8 90 0D A0 38 */ stw r0, lbl_805A8BF8@sda21(r13) +/* 803B937C 003B62DC 80 0D A0 38 */ lwz r0, lbl_805A8BF8@sda21(r13) +/* 803B9380 003B62E0 54 03 86 FE */ rlwinm r3, r0, 0x10, 0x1b, 0x1f +/* 803B9384 003B62E4 38 63 00 01 */ addi r3, r3, 1 +/* 803B9388 003B62E8 48 00 00 40 */ b lbl_803B93C8 +lbl_803B938C: +/* 803B938C 003B62EC 4B FC C0 35 */ bl OSGetTick +/* 803B9390 003B62F0 7C 60 F0 30 */ slw r0, r3, r30 +/* 803B9394 003B62F4 3B DE 00 01 */ addi r30, r30, 1 +/* 803B9398 003B62F8 28 1E 00 10 */ cmplwi r30, 0x10 +/* 803B939C 003B62FC 40 81 00 08 */ ble lbl_803B93A4 +/* 803B93A0 003B6300 3B C0 00 01 */ li r30, 1 +lbl_803B93A4: +/* 803B93A4 003B6304 90 0D A0 38 */ stw r0, lbl_805A8BF8@sda21(r13) +/* 803B93A8 003B6308 3B BD 00 01 */ addi r29, r29, 1 +/* 803B93AC 003B630C 80 0D A0 38 */ lwz r0, lbl_805A8BF8@sda21(r13) +/* 803B93B0 003B6310 7C 60 F9 D6 */ mullw r3, r0, r31 +/* 803B93B4 003B6314 38 03 30 39 */ addi r0, r3, 0x3039 +/* 803B93B8 003B6318 90 0D A0 38 */ stw r0, lbl_805A8BF8@sda21(r13) +/* 803B93BC 003B631C 80 0D A0 38 */ lwz r0, lbl_805A8BF8@sda21(r13) +/* 803B93C0 003B6320 54 03 86 FE */ rlwinm r3, r0, 0x10, 0x1b, 0x1f +/* 803B93C4 003B6324 38 63 00 01 */ addi r3, r3, 1 +lbl_803B93C8: +/* 803B93C8 003B6328 2C 03 00 04 */ cmpwi r3, 4 +/* 803B93CC 003B632C 40 80 00 0C */ bge lbl_803B93D8 +/* 803B93D0 003B6330 28 1D 00 0A */ cmplwi r29, 0xa +/* 803B93D4 003B6334 41 80 FF B8 */ blt lbl_803B938C +lbl_803B93D8: +/* 803B93D8 003B6338 2C 03 00 04 */ cmpwi r3, 4 +/* 803B93DC 003B633C 40 80 00 08 */ bge lbl_803B93E4 +/* 803B93E0 003B6340 38 60 00 04 */ li r3, 4 +lbl_803B93E4: +/* 803B93E4 003B6344 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803B93E8 003B6348 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803B93EC 003B634C 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803B93F0 003B6350 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803B93F4 003B6354 38 21 00 28 */ addi r1, r1, 0x28 +/* 803B93F8 003B6358 7C 08 03 A6 */ mtlr r0 +/* 803B93FC 003B635C 4E 80 00 20 */ blr + +.global __CARDUnlock +__CARDUnlock: +/* 803B9400 003B6360 7C 08 02 A6 */ mflr r0 +/* 803B9404 003B6364 90 01 00 04 */ stw r0, 4(r1) +/* 803B9408 003B6368 94 21 FE E0 */ stwu r1, -0x120(r1) +/* 803B940C 003B636C BE C1 00 F8 */ stmw r22, 0xf8(r1) +/* 803B9410 003B6370 3B 03 00 00 */ addi r24, r3, 0 +/* 803B9414 003B6374 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803B9418 003B6378 1C B8 01 10 */ mulli r5, r24, 0x110 +/* 803B941C 003B637C 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803B9420 003B6380 7F E0 2A 14 */ add r31, r0, r5 +/* 803B9424 003B6384 3A E4 00 00 */ addi r23, r4, 0 +/* 803B9428 003B6388 3B DF 00 30 */ addi r30, r31, 0x30 +/* 803B942C 003B638C 80 7F 00 80 */ lwz r3, 0x80(r31) +/* 803B9430 003B6390 38 03 00 2F */ addi r0, r3, 0x2f +/* 803B9434 003B6394 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a +/* 803B9438 003B6398 3B A3 00 00 */ addi r29, r3, 0 +/* 803B943C 003B639C 3A DC 00 20 */ addi r22, r28, 0x20 +/* 803B9440 003B63A0 4B FC BF 81 */ bl OSGetTick +/* 803B9444 003B63A4 90 6D A0 38 */ stw r3, lbl_805A8BF8@sda21(r13) +/* 803B9448 003B63A8 3C 60 41 C6 */ lis r3, 0x41C64E6D@ha +/* 803B944C 003B63AC 3C A0 7F ED */ lis r5, 0x7FEC8000@ha +/* 803B9450 003B63B0 80 8D A0 38 */ lwz r4, lbl_805A8BF8@sda21(r13) +/* 803B9454 003B63B4 38 03 4E 6D */ addi r0, r3, 0x41C64E6D@l +/* 803B9458 003B63B8 3B 25 80 00 */ addi r25, r5, 0x7FEC8000@l +/* 803B945C 003B63BC 7C 64 01 D6 */ mullw r3, r4, r0 +/* 803B9460 003B63C0 38 03 30 39 */ addi r0, r3, 0x3039 +/* 803B9464 003B63C4 90 0D A0 38 */ stw r0, lbl_805A8BF8@sda21(r13) +/* 803B9468 003B63C8 80 0D A0 38 */ lwz r0, lbl_805A8BF8@sda21(r13) +/* 803B946C 003B63CC 54 00 84 7E */ rlwinm r0, r0, 0x10, 0x11, 0x1f +/* 803B9470 003B63D0 7F 39 03 78 */ or r25, r25, r0 +/* 803B9474 003B63D4 57 39 00 26 */ rlwinm r25, r25, 0, 0, 0x13 +/* 803B9478 003B63D8 4B FF FE C5 */ bl DummyLen +/* 803B947C 003B63DC 3B 43 00 00 */ addi r26, r3, 0 +/* 803B9480 003B63E0 38 DA 00 00 */ addi r6, r26, 0 +/* 803B9484 003B63E4 38 78 00 00 */ addi r3, r24, 0 +/* 803B9488 003B63E8 38 99 00 00 */ addi r4, r25, 0 +/* 803B948C 003B63EC 38 A1 00 A4 */ addi r5, r1, 0xa4 +/* 803B9490 003B63F0 38 E0 00 00 */ li r7, 0 +/* 803B9494 003B63F4 4B FF FD 65 */ bl ReadArrayUnlock +/* 803B9498 003B63F8 2C 03 00 00 */ cmpwi r3, 0 +/* 803B949C 003B63FC 40 80 00 0C */ bge lbl_803B94A8 +/* 803B94A0 003B6400 38 60 FF FD */ li r3, -3 +/* 803B94A4 003B6404 48 00 0A A0 */ b lbl_803B9F44 +lbl_803B94A8: +/* 803B94A8 003B6408 57 43 18 38 */ slwi r3, r26, 3 +/* 803B94AC 003B640C 38 83 00 01 */ addi r4, r3, 1 +/* 803B94B0 003B6410 28 04 00 00 */ cmplwi r4, 0 +/* 803B94B4 003B6414 38 60 00 00 */ li r3, 0 +/* 803B94B8 003B6418 40 81 01 68 */ ble lbl_803B9620 +/* 803B94BC 003B641C 28 04 00 08 */ cmplwi r4, 8 +/* 803B94C0 003B6420 38 A4 FF F8 */ addi r5, r4, -8 +/* 803B94C4 003B6424 40 81 01 24 */ ble lbl_803B95E8 +/* 803B94C8 003B6428 38 05 00 07 */ addi r0, r5, 7 +/* 803B94CC 003B642C 54 00 E8 FE */ srwi r0, r0, 3 +/* 803B94D0 003B6430 28 05 00 00 */ cmplwi r5, 0 +/* 803B94D4 003B6434 7C 09 03 A6 */ mtctr r0 +/* 803B94D8 003B6438 40 81 01 10 */ ble lbl_803B95E8 +lbl_803B94DC: +/* 803B94DC 003B643C 57 20 C9 FE */ srwi r0, r25, 7 +/* 803B94E0 003B6440 57 25 8B FE */ srwi r5, r25, 0xf +/* 803B94E4 003B6444 7F 20 02 78 */ xor r0, r25, r0 +/* 803B94E8 003B6448 7C A0 02 78 */ xor r0, r5, r0 +/* 803B94EC 003B644C 57 26 4D FE */ srwi r6, r25, 0x17 +/* 803B94F0 003B6450 7C C0 02 38 */ eqv r0, r6, r0 +/* 803B94F4 003B6454 57 25 F8 7E */ srwi r5, r25, 1 +/* 803B94F8 003B6458 54 00 F0 42 */ rlwinm r0, r0, 0x1e, 1, 1 +/* 803B94FC 003B645C 7C A7 03 78 */ or r7, r5, r0 +/* 803B9500 003B6460 54 E0 C9 FE */ srwi r0, r7, 7 +/* 803B9504 003B6464 54 E5 8B FE */ srwi r5, r7, 0xf +/* 803B9508 003B6468 7C E0 02 78 */ xor r0, r7, r0 +/* 803B950C 003B646C 54 E6 4D FE */ srwi r6, r7, 0x17 +/* 803B9510 003B6470 7C A0 02 78 */ xor r0, r5, r0 +/* 803B9514 003B6474 7C C0 02 38 */ eqv r0, r6, r0 +/* 803B9518 003B6478 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1 +/* 803B951C 003B647C 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f +/* 803B9520 003B6480 55 00 C9 FE */ srwi r0, r8, 7 +/* 803B9524 003B6484 55 05 8B FE */ srwi r5, r8, 0xf +/* 803B9528 003B6488 7D 00 02 78 */ xor r0, r8, r0 +/* 803B952C 003B648C 55 06 4D FE */ srwi r6, r8, 0x17 +/* 803B9530 003B6490 7C A0 02 78 */ xor r0, r5, r0 +/* 803B9534 003B6494 7C C0 02 38 */ eqv r0, r6, r0 +/* 803B9538 003B6498 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1 +/* 803B953C 003B649C 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f +/* 803B9540 003B64A0 54 E0 C9 FE */ srwi r0, r7, 7 +/* 803B9544 003B64A4 54 E5 8B FE */ srwi r5, r7, 0xf +/* 803B9548 003B64A8 7C E0 02 78 */ xor r0, r7, r0 +/* 803B954C 003B64AC 54 E6 4D FE */ srwi r6, r7, 0x17 +/* 803B9550 003B64B0 7C A0 02 78 */ xor r0, r5, r0 +/* 803B9554 003B64B4 7C C0 02 38 */ eqv r0, r6, r0 +/* 803B9558 003B64B8 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1 +/* 803B955C 003B64BC 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f +/* 803B9560 003B64C0 55 00 C9 FE */ srwi r0, r8, 7 +/* 803B9564 003B64C4 55 05 8B FE */ srwi r5, r8, 0xf +/* 803B9568 003B64C8 7D 00 02 78 */ xor r0, r8, r0 +/* 803B956C 003B64CC 55 06 4D FE */ srwi r6, r8, 0x17 +/* 803B9570 003B64D0 7C A0 02 78 */ xor r0, r5, r0 +/* 803B9574 003B64D4 7C C0 02 38 */ eqv r0, r6, r0 +/* 803B9578 003B64D8 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1 +/* 803B957C 003B64DC 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f +/* 803B9580 003B64E0 54 E0 C9 FE */ srwi r0, r7, 7 +/* 803B9584 003B64E4 54 E5 8B FE */ srwi r5, r7, 0xf +/* 803B9588 003B64E8 7C E0 02 78 */ xor r0, r7, r0 +/* 803B958C 003B64EC 54 E6 4D FE */ srwi r6, r7, 0x17 +/* 803B9590 003B64F0 7C A0 02 78 */ xor r0, r5, r0 +/* 803B9594 003B64F4 7C C0 02 38 */ eqv r0, r6, r0 +/* 803B9598 003B64F8 54 08 F0 42 */ rlwinm r8, r0, 0x1e, 1, 1 +/* 803B959C 003B64FC 50 E8 F8 BE */ rlwimi r8, r7, 0x1f, 2, 0x1f +/* 803B95A0 003B6500 55 00 C9 FE */ srwi r0, r8, 7 +/* 803B95A4 003B6504 55 05 8B FE */ srwi r5, r8, 0xf +/* 803B95A8 003B6508 7D 00 02 78 */ xor r0, r8, r0 +/* 803B95AC 003B650C 55 06 4D FE */ srwi r6, r8, 0x17 +/* 803B95B0 003B6510 7C A0 02 78 */ xor r0, r5, r0 +/* 803B95B4 003B6514 7C C0 02 38 */ eqv r0, r6, r0 +/* 803B95B8 003B6518 54 07 F0 42 */ rlwinm r7, r0, 0x1e, 1, 1 +/* 803B95BC 003B651C 51 07 F8 BE */ rlwimi r7, r8, 0x1f, 2, 0x1f +/* 803B95C0 003B6520 54 E0 C9 FE */ srwi r0, r7, 7 +/* 803B95C4 003B6524 54 E5 8B FE */ srwi r5, r7, 0xf +/* 803B95C8 003B6528 7C E0 02 78 */ xor r0, r7, r0 +/* 803B95CC 003B652C 54 E6 4D FE */ srwi r6, r7, 0x17 +/* 803B95D0 003B6530 7C A0 02 78 */ xor r0, r5, r0 +/* 803B95D4 003B6534 7C C0 02 38 */ eqv r0, r6, r0 +/* 803B95D8 003B6538 54 19 F0 42 */ rlwinm r25, r0, 0x1e, 1, 1 +/* 803B95DC 003B653C 50 F9 F8 BE */ rlwimi r25, r7, 0x1f, 2, 0x1f +/* 803B95E0 003B6540 38 63 00 08 */ addi r3, r3, 8 +/* 803B95E4 003B6544 42 00 FE F8 */ bdnz lbl_803B94DC +lbl_803B95E8: +/* 803B95E8 003B6548 7C 03 20 50 */ subf r0, r3, r4 +/* 803B95EC 003B654C 7C 03 20 40 */ cmplw r3, r4 +/* 803B95F0 003B6550 7C 09 03 A6 */ mtctr r0 +/* 803B95F4 003B6554 40 80 00 2C */ bge lbl_803B9620 +lbl_803B95F8: +/* 803B95F8 003B6558 57 20 C9 FE */ srwi r0, r25, 7 +/* 803B95FC 003B655C 57 23 8B FE */ srwi r3, r25, 0xf +/* 803B9600 003B6560 7F 20 02 78 */ xor r0, r25, r0 +/* 803B9604 003B6564 57 24 4D FE */ srwi r4, r25, 0x17 +/* 803B9608 003B6568 7C 60 02 78 */ xor r0, r3, r0 +/* 803B960C 003B656C 7C 80 02 38 */ eqv r0, r4, r0 +/* 803B9610 003B6570 57 23 F8 7E */ srwi r3, r25, 1 +/* 803B9614 003B6574 54 00 F0 42 */ rlwinm r0, r0, 0x1e, 1, 1 +/* 803B9618 003B6578 7C 79 03 78 */ or r25, r3, r0 +/* 803B961C 003B657C 42 00 FF DC */ bdnz lbl_803B95F8 +lbl_803B9620: +/* 803B9620 003B6580 57 20 C9 FE */ srwi r0, r25, 7 +/* 803B9624 003B6584 57 23 8B FE */ srwi r3, r25, 0xf +/* 803B9628 003B6588 7F 20 02 78 */ xor r0, r25, r0 +/* 803B962C 003B658C 57 24 4D FE */ srwi r4, r25, 0x17 +/* 803B9630 003B6590 7C 60 02 78 */ xor r0, r3, r0 +/* 803B9634 003B6594 7C 80 02 38 */ eqv r0, r4, r0 +/* 803B9638 003B6598 54 00 F8 00 */ slwi r0, r0, 0x1f +/* 803B963C 003B659C 7F 20 03 78 */ or r0, r25, r0 +/* 803B9640 003B65A0 90 1F 00 2C */ stw r0, 0x2c(r31) +/* 803B9644 003B65A4 80 7F 00 2C */ lwz r3, 0x2c(r31) +/* 803B9648 003B65A8 4B FF FA 45 */ bl bitrev +/* 803B964C 003B65AC 90 7F 00 2C */ stw r3, 0x2c(r31) +/* 803B9650 003B65B0 4B FF FC ED */ bl DummyLen +/* 803B9654 003B65B4 3B 63 00 00 */ addi r27, r3, 0 +/* 803B9658 003B65B8 38 DB 00 14 */ addi r6, r27, 0x14 +/* 803B965C 003B65BC 38 78 00 00 */ addi r3, r24, 0 +/* 803B9660 003B65C0 38 A1 00 A4 */ addi r5, r1, 0xa4 +/* 803B9664 003B65C4 38 80 00 00 */ li r4, 0 +/* 803B9668 003B65C8 38 E0 00 01 */ li r7, 1 +/* 803B966C 003B65CC 4B FF FB 8D */ bl ReadArrayUnlock +/* 803B9670 003B65D0 2C 03 00 00 */ cmpwi r3, 0 +/* 803B9674 003B65D4 40 80 00 0C */ bge lbl_803B9680 +/* 803B9678 003B65D8 38 60 FF FD */ li r3, -3 +/* 803B967C 003B65DC 48 00 08 C8 */ b lbl_803B9F44 +lbl_803B9680: +/* 803B9680 003B65E0 38 60 00 04 */ li r3, 4 +/* 803B9684 003B65E4 80 FF 00 2C */ lwz r7, 0x2c(r31) +/* 803B9688 003B65E8 83 21 00 A4 */ lwz r25, 0xa4(r1) +/* 803B968C 003B65EC 7C 69 03 A6 */ mtctr r3 +/* 803B9690 003B65F0 83 41 00 A8 */ lwz r26, 0xa8(r1) +/* 803B9694 003B65F4 83 01 00 AC */ lwz r24, 0xac(r1) +/* 803B9698 003B65F8 7F 39 3A 78 */ xor r25, r25, r7 +/* 803B969C 003B65FC 80 01 00 B0 */ lwz r0, 0xb0(r1) +/* 803B96A0 003B6600 80 A1 00 B4 */ lwz r5, 0xb4(r1) +lbl_803B96A4: +/* 803B96A4 003B6604 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B96A8 003B6608 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B96AC 003B660C 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B96B0 003B6610 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B96B4 003B6614 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B96B8 003B6618 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B96BC 003B661C 54 E4 08 3C */ slwi r4, r7, 1 +/* 803B96C0 003B6620 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e +/* 803B96C4 003B6624 7C 87 1B 78 */ or r7, r4, r3 +/* 803B96C8 003B6628 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B96CC 003B662C 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B96D0 003B6630 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B96D4 003B6634 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B96D8 003B6638 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B96DC 003B663C 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B96E0 003B6640 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e +/* 803B96E4 003B6644 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d +/* 803B96E8 003B6648 55 23 38 30 */ slwi r3, r9, 7 +/* 803B96EC 003B664C 55 24 78 20 */ slwi r4, r9, 0xf +/* 803B96F0 003B6650 7D 23 1A 78 */ xor r3, r9, r3 +/* 803B96F4 003B6654 55 26 B8 10 */ slwi r6, r9, 0x17 +/* 803B96F8 003B6658 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B96FC 003B665C 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9700 003B6660 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B9704 003B6664 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d +/* 803B9708 003B6668 55 03 38 30 */ slwi r3, r8, 7 +/* 803B970C 003B666C 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B9710 003B6670 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9714 003B6674 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9718 003B6678 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B971C 003B667C 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9720 003B6680 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B9724 003B6684 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B9728 003B6688 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B972C 003B668C 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9730 003B6690 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9734 003B6694 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9738 003B6698 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B973C 003B669C 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9740 003B66A0 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B9744 003B66A4 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803B9748 003B66A8 55 03 38 30 */ slwi r3, r8, 7 +/* 803B974C 003B66AC 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B9750 003B66B0 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9754 003B66B4 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9758 003B66B8 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B975C 003B66BC 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9760 003B66C0 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B9764 003B66C4 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B9768 003B66C8 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B976C 003B66CC 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9770 003B66D0 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9774 003B66D4 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9778 003B66D8 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B977C 003B66DC 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9780 003B66E0 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B9784 003B66E4 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803B9788 003B66E8 55 03 38 30 */ slwi r3, r8, 7 +/* 803B978C 003B66EC 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B9790 003B66F0 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9794 003B66F4 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9798 003B66F8 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B979C 003B66FC 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B97A0 003B6700 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B97A4 003B6704 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B97A8 003B6708 42 00 FE FC */ bdnz lbl_803B96A4 +/* 803B97AC 003B670C 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B97B0 003B6710 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B97B4 003B6714 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B97B8 003B6718 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B97BC 003B671C 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B97C0 003B6720 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B97C4 003B6724 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803B97C8 003B6728 7C E3 1B 78 */ or r3, r7, r3 +/* 803B97CC 003B672C 90 7F 00 2C */ stw r3, 0x2c(r31) +/* 803B97D0 003B6730 38 60 00 04 */ li r3, 4 +/* 803B97D4 003B6734 7C 69 03 A6 */ mtctr r3 +/* 803B97D8 003B6738 80 FF 00 2C */ lwz r7, 0x2c(r31) +/* 803B97DC 003B673C 7F 5A 3A 78 */ xor r26, r26, r7 +lbl_803B97E0: +/* 803B97E0 003B6740 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B97E4 003B6744 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B97E8 003B6748 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B97EC 003B674C 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B97F0 003B6750 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B97F4 003B6754 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B97F8 003B6758 54 E4 08 3C */ slwi r4, r7, 1 +/* 803B97FC 003B675C 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e +/* 803B9800 003B6760 7C 87 1B 78 */ or r7, r4, r3 +/* 803B9804 003B6764 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9808 003B6768 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B980C 003B676C 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9810 003B6770 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9814 003B6774 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9818 003B6778 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B981C 003B677C 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e +/* 803B9820 003B6780 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d +/* 803B9824 003B6784 55 23 38 30 */ slwi r3, r9, 7 +/* 803B9828 003B6788 55 24 78 20 */ slwi r4, r9, 0xf +/* 803B982C 003B678C 7D 23 1A 78 */ xor r3, r9, r3 +/* 803B9830 003B6790 55 26 B8 10 */ slwi r6, r9, 0x17 +/* 803B9834 003B6794 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9838 003B6798 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B983C 003B679C 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B9840 003B67A0 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d +/* 803B9844 003B67A4 55 03 38 30 */ slwi r3, r8, 7 +/* 803B9848 003B67A8 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B984C 003B67AC 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9850 003B67B0 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9854 003B67B4 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9858 003B67B8 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B985C 003B67BC 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B9860 003B67C0 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B9864 003B67C4 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9868 003B67C8 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B986C 003B67CC 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9870 003B67D0 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9874 003B67D4 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9878 003B67D8 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B987C 003B67DC 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B9880 003B67E0 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803B9884 003B67E4 55 03 38 30 */ slwi r3, r8, 7 +/* 803B9888 003B67E8 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B988C 003B67EC 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9890 003B67F0 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9894 003B67F4 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9898 003B67F8 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B989C 003B67FC 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B98A0 003B6800 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B98A4 003B6804 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B98A8 003B6808 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B98AC 003B680C 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B98B0 003B6810 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B98B4 003B6814 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B98B8 003B6818 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B98BC 003B681C 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B98C0 003B6820 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803B98C4 003B6824 55 03 38 30 */ slwi r3, r8, 7 +/* 803B98C8 003B6828 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B98CC 003B682C 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B98D0 003B6830 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B98D4 003B6834 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B98D8 003B6838 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B98DC 003B683C 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B98E0 003B6840 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B98E4 003B6844 42 00 FE FC */ bdnz lbl_803B97E0 +/* 803B98E8 003B6848 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B98EC 003B684C 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B98F0 003B6850 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B98F4 003B6854 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B98F8 003B6858 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B98FC 003B685C 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9900 003B6860 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803B9904 003B6864 7C E3 1B 78 */ or r3, r7, r3 +/* 803B9908 003B6868 90 7F 00 2C */ stw r3, 0x2c(r31) +/* 803B990C 003B686C 38 60 00 04 */ li r3, 4 +/* 803B9910 003B6870 7C 69 03 A6 */ mtctr r3 +/* 803B9914 003B6874 80 FF 00 2C */ lwz r7, 0x2c(r31) +/* 803B9918 003B6878 7F 18 3A 78 */ xor r24, r24, r7 +lbl_803B991C: +/* 803B991C 003B687C 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9920 003B6880 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9924 003B6884 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9928 003B6888 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B992C 003B688C 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9930 003B6890 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9934 003B6894 54 E4 08 3C */ slwi r4, r7, 1 +/* 803B9938 003B6898 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e +/* 803B993C 003B689C 7C 87 1B 78 */ or r7, r4, r3 +/* 803B9940 003B68A0 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9944 003B68A4 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9948 003B68A8 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B994C 003B68AC 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9950 003B68B0 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9954 003B68B4 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9958 003B68B8 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e +/* 803B995C 003B68BC 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d +/* 803B9960 003B68C0 55 23 38 30 */ slwi r3, r9, 7 +/* 803B9964 003B68C4 55 24 78 20 */ slwi r4, r9, 0xf +/* 803B9968 003B68C8 7D 23 1A 78 */ xor r3, r9, r3 +/* 803B996C 003B68CC 55 26 B8 10 */ slwi r6, r9, 0x17 +/* 803B9970 003B68D0 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9974 003B68D4 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9978 003B68D8 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B997C 003B68DC 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d +/* 803B9980 003B68E0 55 03 38 30 */ slwi r3, r8, 7 +/* 803B9984 003B68E4 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B9988 003B68E8 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B998C 003B68EC 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9990 003B68F0 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9994 003B68F4 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9998 003B68F8 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B999C 003B68FC 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B99A0 003B6900 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B99A4 003B6904 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B99A8 003B6908 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B99AC 003B690C 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B99B0 003B6910 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B99B4 003B6914 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B99B8 003B6918 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B99BC 003B691C 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803B99C0 003B6920 55 03 38 30 */ slwi r3, r8, 7 +/* 803B99C4 003B6924 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B99C8 003B6928 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B99CC 003B692C 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B99D0 003B6930 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B99D4 003B6934 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B99D8 003B6938 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B99DC 003B693C 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B99E0 003B6940 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B99E4 003B6944 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B99E8 003B6948 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B99EC 003B694C 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B99F0 003B6950 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B99F4 003B6954 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B99F8 003B6958 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B99FC 003B695C 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803B9A00 003B6960 55 03 38 30 */ slwi r3, r8, 7 +/* 803B9A04 003B6964 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B9A08 003B6968 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9A0C 003B696C 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9A10 003B6970 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9A14 003B6974 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9A18 003B6978 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B9A1C 003B697C 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B9A20 003B6980 42 00 FE FC */ bdnz lbl_803B991C +/* 803B9A24 003B6984 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9A28 003B6988 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9A2C 003B698C 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9A30 003B6990 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9A34 003B6994 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9A38 003B6998 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9A3C 003B699C 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803B9A40 003B69A0 7C E3 1B 78 */ or r3, r7, r3 +/* 803B9A44 003B69A4 90 7F 00 2C */ stw r3, 0x2c(r31) +/* 803B9A48 003B69A8 38 60 00 04 */ li r3, 4 +/* 803B9A4C 003B69AC 7C 69 03 A6 */ mtctr r3 +/* 803B9A50 003B69B0 80 FF 00 2C */ lwz r7, 0x2c(r31) +/* 803B9A54 003B69B4 7C 00 3A 78 */ xor r0, r0, r7 +lbl_803B9A58: +/* 803B9A58 003B69B8 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9A5C 003B69BC 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9A60 003B69C0 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9A64 003B69C4 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9A68 003B69C8 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9A6C 003B69CC 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9A70 003B69D0 54 E4 08 3C */ slwi r4, r7, 1 +/* 803B9A74 003B69D4 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e +/* 803B9A78 003B69D8 7C 87 1B 78 */ or r7, r4, r3 +/* 803B9A7C 003B69DC 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9A80 003B69E0 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9A84 003B69E4 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9A88 003B69E8 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9A8C 003B69EC 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9A90 003B69F0 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9A94 003B69F4 54 69 17 BC */ rlwinm r9, r3, 2, 0x1e, 0x1e +/* 803B9A98 003B69F8 50 E9 08 3A */ rlwimi r9, r7, 1, 0, 0x1d +/* 803B9A9C 003B69FC 55 23 38 30 */ slwi r3, r9, 7 +/* 803B9AA0 003B6A00 55 24 78 20 */ slwi r4, r9, 0xf +/* 803B9AA4 003B6A04 7D 23 1A 78 */ xor r3, r9, r3 +/* 803B9AA8 003B6A08 55 26 B8 10 */ slwi r6, r9, 0x17 +/* 803B9AAC 003B6A0C 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9AB0 003B6A10 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9AB4 003B6A14 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B9AB8 003B6A18 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d +/* 803B9ABC 003B6A1C 55 03 38 30 */ slwi r3, r8, 7 +/* 803B9AC0 003B6A20 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B9AC4 003B6A24 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9AC8 003B6A28 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9ACC 003B6A2C 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9AD0 003B6A30 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9AD4 003B6A34 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B9AD8 003B6A38 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B9ADC 003B6A3C 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9AE0 003B6A40 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9AE4 003B6A44 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9AE8 003B6A48 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9AEC 003B6A4C 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9AF0 003B6A50 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9AF4 003B6A54 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B9AF8 003B6A58 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803B9AFC 003B6A5C 55 03 38 30 */ slwi r3, r8, 7 +/* 803B9B00 003B6A60 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B9B04 003B6A64 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9B08 003B6A68 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9B0C 003B6A6C 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9B10 003B6A70 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9B14 003B6A74 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B9B18 003B6A78 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B9B1C 003B6A7C 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9B20 003B6A80 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9B24 003B6A84 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9B28 003B6A88 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9B2C 003B6A8C 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9B30 003B6A90 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9B34 003B6A94 54 68 17 BC */ rlwinm r8, r3, 2, 0x1e, 0x1e +/* 803B9B38 003B6A98 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803B9B3C 003B6A9C 55 03 38 30 */ slwi r3, r8, 7 +/* 803B9B40 003B6AA0 55 04 78 20 */ slwi r4, r8, 0xf +/* 803B9B44 003B6AA4 7D 03 1A 78 */ xor r3, r8, r3 +/* 803B9B48 003B6AA8 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803B9B4C 003B6AAC 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9B50 003B6AB0 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9B54 003B6AB4 54 67 17 BC */ rlwinm r7, r3, 2, 0x1e, 0x1e +/* 803B9B58 003B6AB8 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803B9B5C 003B6ABC 42 00 FE FC */ bdnz lbl_803B9A58 +/* 803B9B60 003B6AC0 54 E3 38 30 */ slwi r3, r7, 7 +/* 803B9B64 003B6AC4 54 E4 78 20 */ slwi r4, r7, 0xf +/* 803B9B68 003B6AC8 7C E3 1A 78 */ xor r3, r7, r3 +/* 803B9B6C 003B6ACC 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9B70 003B6AD0 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803B9B74 003B6AD4 7C C3 1A 38 */ eqv r3, r6, r3 +/* 803B9B78 003B6AD8 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803B9B7C 003B6ADC 7C E3 1B 78 */ or r3, r7, r3 +/* 803B9B80 003B6AE0 90 7F 00 2C */ stw r3, 0x2c(r31) +/* 803B9B84 003B6AE4 57 64 18 38 */ slwi r4, r27, 3 +/* 803B9B88 003B6AE8 28 04 00 00 */ cmplwi r4, 0 +/* 803B9B8C 003B6AEC 80 DF 00 2C */ lwz r6, 0x2c(r31) +/* 803B9B90 003B6AF0 38 60 00 00 */ li r3, 0 +/* 803B9B94 003B6AF4 7C A5 32 78 */ xor r5, r5, r6 +/* 803B9B98 003B6AF8 40 81 01 68 */ ble lbl_803B9D00 +/* 803B9B9C 003B6AFC 28 04 00 08 */ cmplwi r4, 8 +/* 803B9BA0 003B6B00 39 04 FF F8 */ addi r8, r4, -8 +/* 803B9BA4 003B6B04 40 81 01 24 */ ble lbl_803B9CC8 +/* 803B9BA8 003B6B08 38 E8 00 07 */ addi r7, r8, 7 +/* 803B9BAC 003B6B0C 54 E7 E8 FE */ srwi r7, r7, 3 +/* 803B9BB0 003B6B10 28 08 00 00 */ cmplwi r8, 0 +/* 803B9BB4 003B6B14 7C E9 03 A6 */ mtctr r7 +/* 803B9BB8 003B6B18 40 81 01 10 */ ble lbl_803B9CC8 +lbl_803B9BBC: +/* 803B9BBC 003B6B1C 54 C7 38 30 */ slwi r7, r6, 7 +/* 803B9BC0 003B6B20 54 C8 78 20 */ slwi r8, r6, 0xf +/* 803B9BC4 003B6B24 7C C7 3A 78 */ xor r7, r6, r7 +/* 803B9BC8 003B6B28 7D 07 3A 78 */ xor r7, r8, r7 +/* 803B9BCC 003B6B2C 54 C9 B8 10 */ slwi r9, r6, 0x17 +/* 803B9BD0 003B6B30 7D 27 3A 38 */ eqv r7, r9, r7 +/* 803B9BD4 003B6B34 54 C8 08 3C */ slwi r8, r6, 1 +/* 803B9BD8 003B6B38 54 E6 17 BC */ rlwinm r6, r7, 2, 0x1e, 0x1e +/* 803B9BDC 003B6B3C 7D 09 33 78 */ or r9, r8, r6 +/* 803B9BE0 003B6B40 55 26 38 30 */ slwi r6, r9, 7 +/* 803B9BE4 003B6B44 55 27 78 20 */ slwi r7, r9, 0xf +/* 803B9BE8 003B6B48 7D 26 32 78 */ xor r6, r9, r6 +/* 803B9BEC 003B6B4C 55 28 B8 10 */ slwi r8, r9, 0x17 +/* 803B9BF0 003B6B50 7C E6 32 78 */ xor r6, r7, r6 +/* 803B9BF4 003B6B54 7D 06 32 38 */ eqv r6, r8, r6 +/* 803B9BF8 003B6B58 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e +/* 803B9BFC 003B6B5C 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d +/* 803B9C00 003B6B60 55 46 38 30 */ slwi r6, r10, 7 +/* 803B9C04 003B6B64 55 47 78 20 */ slwi r7, r10, 0xf +/* 803B9C08 003B6B68 7D 46 32 78 */ xor r6, r10, r6 +/* 803B9C0C 003B6B6C 55 48 B8 10 */ slwi r8, r10, 0x17 +/* 803B9C10 003B6B70 7C E6 32 78 */ xor r6, r7, r6 +/* 803B9C14 003B6B74 7D 06 32 38 */ eqv r6, r8, r6 +/* 803B9C18 003B6B78 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e +/* 803B9C1C 003B6B7C 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d +/* 803B9C20 003B6B80 55 26 38 30 */ slwi r6, r9, 7 +/* 803B9C24 003B6B84 55 27 78 20 */ slwi r7, r9, 0xf +/* 803B9C28 003B6B88 7D 26 32 78 */ xor r6, r9, r6 +/* 803B9C2C 003B6B8C 55 28 B8 10 */ slwi r8, r9, 0x17 +/* 803B9C30 003B6B90 7C E6 32 78 */ xor r6, r7, r6 +/* 803B9C34 003B6B94 7D 06 32 38 */ eqv r6, r8, r6 +/* 803B9C38 003B6B98 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e +/* 803B9C3C 003B6B9C 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d +/* 803B9C40 003B6BA0 55 46 38 30 */ slwi r6, r10, 7 +/* 803B9C44 003B6BA4 55 47 78 20 */ slwi r7, r10, 0xf +/* 803B9C48 003B6BA8 7D 46 32 78 */ xor r6, r10, r6 +/* 803B9C4C 003B6BAC 55 48 B8 10 */ slwi r8, r10, 0x17 +/* 803B9C50 003B6BB0 7C E6 32 78 */ xor r6, r7, r6 +/* 803B9C54 003B6BB4 7D 06 32 38 */ eqv r6, r8, r6 +/* 803B9C58 003B6BB8 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e +/* 803B9C5C 003B6BBC 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d +/* 803B9C60 003B6BC0 55 26 38 30 */ slwi r6, r9, 7 +/* 803B9C64 003B6BC4 55 27 78 20 */ slwi r7, r9, 0xf +/* 803B9C68 003B6BC8 7D 26 32 78 */ xor r6, r9, r6 +/* 803B9C6C 003B6BCC 55 28 B8 10 */ slwi r8, r9, 0x17 +/* 803B9C70 003B6BD0 7C E6 32 78 */ xor r6, r7, r6 +/* 803B9C74 003B6BD4 7D 06 32 38 */ eqv r6, r8, r6 +/* 803B9C78 003B6BD8 54 CA 17 BC */ rlwinm r10, r6, 2, 0x1e, 0x1e +/* 803B9C7C 003B6BDC 51 2A 08 3A */ rlwimi r10, r9, 1, 0, 0x1d +/* 803B9C80 003B6BE0 55 46 38 30 */ slwi r6, r10, 7 +/* 803B9C84 003B6BE4 55 47 78 20 */ slwi r7, r10, 0xf +/* 803B9C88 003B6BE8 7D 46 32 78 */ xor r6, r10, r6 +/* 803B9C8C 003B6BEC 55 48 B8 10 */ slwi r8, r10, 0x17 +/* 803B9C90 003B6BF0 7C E6 32 78 */ xor r6, r7, r6 +/* 803B9C94 003B6BF4 7D 06 32 38 */ eqv r6, r8, r6 +/* 803B9C98 003B6BF8 54 C9 17 BC */ rlwinm r9, r6, 2, 0x1e, 0x1e +/* 803B9C9C 003B6BFC 51 49 08 3A */ rlwimi r9, r10, 1, 0, 0x1d +/* 803B9CA0 003B6C00 55 26 38 30 */ slwi r6, r9, 7 +/* 803B9CA4 003B6C04 55 27 78 20 */ slwi r7, r9, 0xf +/* 803B9CA8 003B6C08 7D 26 32 78 */ xor r6, r9, r6 +/* 803B9CAC 003B6C0C 55 28 B8 10 */ slwi r8, r9, 0x17 +/* 803B9CB0 003B6C10 7C E6 32 78 */ xor r6, r7, r6 +/* 803B9CB4 003B6C14 7D 06 32 38 */ eqv r6, r8, r6 +/* 803B9CB8 003B6C18 54 C6 17 BC */ rlwinm r6, r6, 2, 0x1e, 0x1e +/* 803B9CBC 003B6C1C 51 26 08 3A */ rlwimi r6, r9, 1, 0, 0x1d +/* 803B9CC0 003B6C20 38 63 00 08 */ addi r3, r3, 8 +/* 803B9CC4 003B6C24 42 00 FE F8 */ bdnz lbl_803B9BBC +lbl_803B9CC8: +/* 803B9CC8 003B6C28 7C E3 20 50 */ subf r7, r3, r4 +/* 803B9CCC 003B6C2C 7C 03 20 40 */ cmplw r3, r4 +/* 803B9CD0 003B6C30 7C E9 03 A6 */ mtctr r7 +/* 803B9CD4 003B6C34 40 80 00 2C */ bge lbl_803B9D00 +lbl_803B9CD8: +/* 803B9CD8 003B6C38 54 C3 38 30 */ slwi r3, r6, 7 +/* 803B9CDC 003B6C3C 54 C4 78 20 */ slwi r4, r6, 0xf +/* 803B9CE0 003B6C40 7C C3 1A 78 */ xor r3, r6, r3 +/* 803B9CE4 003B6C44 54 C7 B8 10 */ slwi r7, r6, 0x17 +/* 803B9CE8 003B6C48 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9CEC 003B6C4C 7C E3 1A 38 */ eqv r3, r7, r3 +/* 803B9CF0 003B6C50 54 C4 08 3C */ slwi r4, r6, 1 +/* 803B9CF4 003B6C54 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e +/* 803B9CF8 003B6C58 7C 86 1B 78 */ or r6, r4, r3 +/* 803B9CFC 003B6C5C 42 00 FF DC */ bdnz lbl_803B9CD8 +lbl_803B9D00: +/* 803B9D00 003B6C60 54 C3 38 30 */ slwi r3, r6, 7 +/* 803B9D04 003B6C64 54 C4 78 20 */ slwi r4, r6, 0xf +/* 803B9D08 003B6C68 7C C3 1A 78 */ xor r3, r6, r3 +/* 803B9D0C 003B6C6C 54 C7 B8 10 */ slwi r7, r6, 0x17 +/* 803B9D10 003B6C70 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9D14 003B6C74 7C E3 1A 38 */ eqv r3, r7, r3 +/* 803B9D18 003B6C78 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803B9D1C 003B6C7C 7C C3 1B 78 */ or r3, r6, r3 +/* 803B9D20 003B6C80 90 7F 00 2C */ stw r3, 0x2c(r31) +/* 803B9D24 003B6C84 38 60 00 04 */ li r3, 4 +/* 803B9D28 003B6C88 7C 69 03 A6 */ mtctr r3 +/* 803B9D2C 003B6C8C 38 60 00 00 */ li r3, 0 +/* 803B9D30 003B6C90 80 9F 00 2C */ lwz r4, 0x2c(r31) +lbl_803B9D34: +/* 803B9D34 003B6C94 54 86 38 30 */ slwi r6, r4, 7 +/* 803B9D38 003B6C98 54 87 78 20 */ slwi r7, r4, 0xf +/* 803B9D3C 003B6C9C 7C 86 32 78 */ xor r6, r4, r6 +/* 803B9D40 003B6CA0 7C E6 32 78 */ xor r6, r7, r6 +/* 803B9D44 003B6CA4 54 88 B8 10 */ slwi r8, r4, 0x17 +/* 803B9D48 003B6CA8 7D 06 32 38 */ eqv r6, r8, r6 +/* 803B9D4C 003B6CAC 54 87 08 3C */ slwi r7, r4, 1 +/* 803B9D50 003B6CB0 54 C4 17 BC */ rlwinm r4, r6, 2, 0x1e, 0x1e +/* 803B9D54 003B6CB4 7C E8 23 78 */ or r8, r7, r4 +/* 803B9D58 003B6CB8 55 04 38 30 */ slwi r4, r8, 7 +/* 803B9D5C 003B6CBC 55 06 78 20 */ slwi r6, r8, 0xf +/* 803B9D60 003B6CC0 7D 04 22 78 */ xor r4, r8, r4 +/* 803B9D64 003B6CC4 55 07 B8 10 */ slwi r7, r8, 0x17 +/* 803B9D68 003B6CC8 7C C4 22 78 */ xor r4, r6, r4 +/* 803B9D6C 003B6CCC 7C E4 22 38 */ eqv r4, r7, r4 +/* 803B9D70 003B6CD0 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e +/* 803B9D74 003B6CD4 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d +/* 803B9D78 003B6CD8 55 24 38 30 */ slwi r4, r9, 7 +/* 803B9D7C 003B6CDC 55 26 78 20 */ slwi r6, r9, 0xf +/* 803B9D80 003B6CE0 7D 24 22 78 */ xor r4, r9, r4 +/* 803B9D84 003B6CE4 55 27 B8 10 */ slwi r7, r9, 0x17 +/* 803B9D88 003B6CE8 7C C4 22 78 */ xor r4, r6, r4 +/* 803B9D8C 003B6CEC 7C E4 22 38 */ eqv r4, r7, r4 +/* 803B9D90 003B6CF0 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e +/* 803B9D94 003B6CF4 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d +/* 803B9D98 003B6CF8 55 04 38 30 */ slwi r4, r8, 7 +/* 803B9D9C 003B6CFC 55 06 78 20 */ slwi r6, r8, 0xf +/* 803B9DA0 003B6D00 7D 04 22 78 */ xor r4, r8, r4 +/* 803B9DA4 003B6D04 55 07 B8 10 */ slwi r7, r8, 0x17 +/* 803B9DA8 003B6D08 7C C4 22 78 */ xor r4, r6, r4 +/* 803B9DAC 003B6D0C 7C E4 22 38 */ eqv r4, r7, r4 +/* 803B9DB0 003B6D10 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e +/* 803B9DB4 003B6D14 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d +/* 803B9DB8 003B6D18 55 24 38 30 */ slwi r4, r9, 7 +/* 803B9DBC 003B6D1C 55 26 78 20 */ slwi r6, r9, 0xf +/* 803B9DC0 003B6D20 7D 24 22 78 */ xor r4, r9, r4 +/* 803B9DC4 003B6D24 55 27 B8 10 */ slwi r7, r9, 0x17 +/* 803B9DC8 003B6D28 7C C4 22 78 */ xor r4, r6, r4 +/* 803B9DCC 003B6D2C 7C E4 22 38 */ eqv r4, r7, r4 +/* 803B9DD0 003B6D30 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e +/* 803B9DD4 003B6D34 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d +/* 803B9DD8 003B6D38 55 04 38 30 */ slwi r4, r8, 7 +/* 803B9DDC 003B6D3C 55 06 78 20 */ slwi r6, r8, 0xf +/* 803B9DE0 003B6D40 7D 04 22 78 */ xor r4, r8, r4 +/* 803B9DE4 003B6D44 55 07 B8 10 */ slwi r7, r8, 0x17 +/* 803B9DE8 003B6D48 7C C4 22 78 */ xor r4, r6, r4 +/* 803B9DEC 003B6D4C 7C E4 22 38 */ eqv r4, r7, r4 +/* 803B9DF0 003B6D50 54 89 17 BC */ rlwinm r9, r4, 2, 0x1e, 0x1e +/* 803B9DF4 003B6D54 51 09 08 3A */ rlwimi r9, r8, 1, 0, 0x1d +/* 803B9DF8 003B6D58 55 24 38 30 */ slwi r4, r9, 7 +/* 803B9DFC 003B6D5C 55 26 78 20 */ slwi r6, r9, 0xf +/* 803B9E00 003B6D60 7D 24 22 78 */ xor r4, r9, r4 +/* 803B9E04 003B6D64 55 27 B8 10 */ slwi r7, r9, 0x17 +/* 803B9E08 003B6D68 7C C4 22 78 */ xor r4, r6, r4 +/* 803B9E0C 003B6D6C 7C E4 22 38 */ eqv r4, r7, r4 +/* 803B9E10 003B6D70 54 88 17 BC */ rlwinm r8, r4, 2, 0x1e, 0x1e +/* 803B9E14 003B6D74 51 28 08 3A */ rlwimi r8, r9, 1, 0, 0x1d +/* 803B9E18 003B6D78 55 04 38 30 */ slwi r4, r8, 7 +/* 803B9E1C 003B6D7C 55 06 78 20 */ slwi r6, r8, 0xf +/* 803B9E20 003B6D80 7D 04 22 78 */ xor r4, r8, r4 +/* 803B9E24 003B6D84 55 07 B8 10 */ slwi r7, r8, 0x17 +/* 803B9E28 003B6D88 7C C4 22 78 */ xor r4, r6, r4 +/* 803B9E2C 003B6D8C 7C E4 22 38 */ eqv r4, r7, r4 +/* 803B9E30 003B6D90 54 84 17 BC */ rlwinm r4, r4, 2, 0x1e, 0x1e +/* 803B9E34 003B6D94 51 04 08 3A */ rlwimi r4, r8, 1, 0, 0x1d +/* 803B9E38 003B6D98 38 63 00 08 */ addi r3, r3, 8 +/* 803B9E3C 003B6D9C 42 00 FE F8 */ bdnz lbl_803B9D34 +/* 803B9E40 003B6DA0 20 C3 00 21 */ subfic r6, r3, 0x21 +/* 803B9E44 003B6DA4 28 03 00 21 */ cmplwi r3, 0x21 +/* 803B9E48 003B6DA8 7C C9 03 A6 */ mtctr r6 +/* 803B9E4C 003B6DAC 40 80 00 2C */ bge lbl_803B9E78 +lbl_803B9E50: +/* 803B9E50 003B6DB0 54 83 38 30 */ slwi r3, r4, 7 +/* 803B9E54 003B6DB4 54 86 78 20 */ slwi r6, r4, 0xf +/* 803B9E58 003B6DB8 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9E5C 003B6DBC 54 87 B8 10 */ slwi r7, r4, 0x17 +/* 803B9E60 003B6DC0 7C C3 1A 78 */ xor r3, r6, r3 +/* 803B9E64 003B6DC4 7C E3 1A 38 */ eqv r3, r7, r3 +/* 803B9E68 003B6DC8 54 84 08 3C */ slwi r4, r4, 1 +/* 803B9E6C 003B6DCC 54 63 17 BC */ rlwinm r3, r3, 2, 0x1e, 0x1e +/* 803B9E70 003B6DD0 7C 84 1B 78 */ or r4, r4, r3 +/* 803B9E74 003B6DD4 42 00 FF DC */ bdnz lbl_803B9E50 +lbl_803B9E78: +/* 803B9E78 003B6DD8 54 83 38 30 */ slwi r3, r4, 7 +/* 803B9E7C 003B6DDC 54 86 78 20 */ slwi r6, r4, 0xf +/* 803B9E80 003B6DE0 7C 83 1A 78 */ xor r3, r4, r3 +/* 803B9E84 003B6DE4 54 87 B8 10 */ slwi r7, r4, 0x17 +/* 803B9E88 003B6DE8 7C C3 1A 78 */ xor r3, r6, r3 +/* 803B9E8C 003B6DEC 7C E3 1A 38 */ eqv r3, r7, r3 +/* 803B9E90 003B6DF0 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803B9E94 003B6DF4 7C 83 1B 78 */ or r3, r4, r3 +/* 803B9E98 003B6DF8 90 7F 00 2C */ stw r3, 0x2c(r31) +/* 803B9E9C 003B6DFC 38 C0 00 08 */ li r6, 8 +/* 803B9EA0 003B6E00 3B 60 00 00 */ li r27, 0 +/* 803B9EA4 003B6E04 90 1C 00 00 */ stw r0, 0(r28) +/* 803B9EA8 003B6E08 38 7C 00 00 */ addi r3, r28, 0 +/* 803B9EAC 003B6E0C 38 80 00 08 */ li r4, 8 +/* 803B9EB0 003B6E10 90 BC 00 04 */ stw r5, 4(r28) +/* 803B9EB4 003B6E14 93 9D 00 00 */ stw r28, 0(r29) +/* 803B9EB8 003B6E18 90 DD 00 04 */ stw r6, 4(r29) +/* 803B9EBC 003B6E1C 92 DD 00 0C */ stw r22, 0xc(r29) +/* 803B9EC0 003B6E20 93 7D 00 08 */ stw r27, 8(r29) +/* 803B9EC4 003B6E24 4B FC 4B ED */ bl DCFlushRange +/* 803B9EC8 003B6E28 38 76 00 00 */ addi r3, r22, 0 +/* 803B9ECC 003B6E2C 38 80 00 04 */ li r4, 4 +/* 803B9ED0 003B6E30 4B FC 4B B5 */ bl DCInvalidateRange +/* 803B9ED4 003B6E34 38 7D 00 00 */ addi r3, r29, 0 +/* 803B9ED8 003B6E38 38 80 00 10 */ li r4, 0x10 +/* 803B9EDC 003B6E3C 4B FC 4B D5 */ bl DCFlushRange +/* 803B9EE0 003B6E40 38 00 00 FF */ li r0, 0xff +/* 803B9EE4 003B6E44 3C 60 80 3F */ lis r3, lbl_803F6D00@ha +/* 803B9EE8 003B6E48 90 1E 00 04 */ stw r0, 4(r30) +/* 803B9EEC 003B6E4C 38 63 6D 00 */ addi r3, r3, lbl_803F6D00@l +/* 803B9EF0 003B6E50 3C 03 80 00 */ addis r0, r3, 0x8000 +/* 803B9EF4 003B6E54 90 1E 00 0C */ stw r0, 0xc(r30) +/* 803B9EF8 003B6E58 38 00 01 60 */ li r0, 0x160 +/* 803B9EFC 003B6E5C 3C 80 80 3C */ lis r4, InitCallback@ha +/* 803B9F00 003B6E60 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B9F04 003B6E64 3C 60 80 3C */ lis r3, DoneCallback@ha +/* 803B9F08 003B6E68 38 A0 00 10 */ li r5, 0x10 +/* 803B9F0C 003B6E6C 93 7E 00 14 */ stw r27, 0x14(r30) +/* 803B9F10 003B6E70 38 84 9F 58 */ addi r4, r4, InitCallback@l +/* 803B9F14 003B6E74 38 03 9F C8 */ addi r0, r3, DoneCallback@l +/* 803B9F18 003B6E78 B0 BE 00 24 */ sth r5, 0x24(r30) +/* 803B9F1C 003B6E7C 7F C3 F3 78 */ mr r3, r30 +/* 803B9F20 003B6E80 90 9E 00 28 */ stw r4, 0x28(r30) +/* 803B9F24 003B6E84 93 7E 00 2C */ stw r27, 0x2c(r30) +/* 803B9F28 003B6E88 90 1E 00 30 */ stw r0, 0x30(r30) +/* 803B9F2C 003B6E8C 93 7E 00 34 */ stw r27, 0x34(r30) +/* 803B9F30 003B6E90 4B FB 5C 31 */ bl DSPAddTask +/* 803B9F34 003B6E94 93 37 00 00 */ stw r25, 0(r23) +/* 803B9F38 003B6E98 38 60 00 00 */ li r3, 0 +/* 803B9F3C 003B6E9C 93 57 00 04 */ stw r26, 4(r23) +/* 803B9F40 003B6EA0 93 17 00 08 */ stw r24, 8(r23) +lbl_803B9F44: +/* 803B9F44 003B6EA4 BA C1 00 F8 */ lmw r22, 0xf8(r1) +/* 803B9F48 003B6EA8 80 01 01 24 */ lwz r0, 0x124(r1) +/* 803B9F4C 003B6EAC 38 21 01 20 */ addi r1, r1, 0x120 +/* 803B9F50 003B6EB0 7C 08 03 A6 */ mtlr r0 +/* 803B9F54 003B6EB4 4E 80 00 20 */ blr + +.global InitCallback +InitCallback: +/* 803B9F58 003B6EB8 7C 08 02 A6 */ mflr r0 +/* 803B9F5C 003B6EBC 3C 80 80 57 */ lis r4, lbl_80569A58@ha +/* 803B9F60 003B6EC0 90 01 00 04 */ stw r0, 4(r1) +/* 803B9F64 003B6EC4 38 84 9A 58 */ addi r4, r4, lbl_80569A58@l +/* 803B9F68 003B6EC8 38 04 00 30 */ addi r0, r4, 0x30 +/* 803B9F6C 003B6ECC 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B9F70 003B6ED0 7C 00 18 40 */ cmplw r0, r3 +/* 803B9F74 003B6ED4 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B9F78 003B6ED8 41 82 00 10 */ beq lbl_803B9F88 +/* 803B9F7C 003B6EDC 38 04 01 40 */ addi r0, r4, 0x140 +/* 803B9F80 003B6EE0 7C 00 18 40 */ cmplw r0, r3 +/* 803B9F84 003B6EE4 38 84 01 10 */ addi r4, r4, 0x110 +lbl_803B9F88: +/* 803B9F88 003B6EE8 83 E4 00 80 */ lwz r31, 0x80(r4) +/* 803B9F8C 003B6EEC 3C 60 FF 00 */ lis r3, 0xff00 +/* 803B9F90 003B6EF0 4B FB 5A 61 */ bl DSPSendMailToDSP +lbl_803B9F94: +/* 803B9F94 003B6EF4 4B FB 5A 25 */ bl DSPCheckMailToDSP +/* 803B9F98 003B6EF8 28 03 00 00 */ cmplwi r3, 0 +/* 803B9F9C 003B6EFC 40 82 FF F8 */ bne lbl_803B9F94 +/* 803B9FA0 003B6F00 7F E3 FB 78 */ mr r3, r31 +/* 803B9FA4 003B6F04 4B FB 5A 4D */ bl DSPSendMailToDSP +lbl_803B9FA8: +/* 803B9FA8 003B6F08 4B FB 5A 11 */ bl DSPCheckMailToDSP +/* 803B9FAC 003B6F0C 28 03 00 00 */ cmplwi r3, 0 +/* 803B9FB0 003B6F10 40 82 FF F8 */ bne lbl_803B9FA8 +/* 803B9FB4 003B6F14 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B9FB8 003B6F18 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B9FBC 003B6F1C 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B9FC0 003B6F20 7C 08 03 A6 */ mtlr r0 +/* 803B9FC4 003B6F24 4E 80 00 20 */ blr + +.global DoneCallback +DoneCallback: +/* 803B9FC8 003B6F28 7C 08 02 A6 */ mflr r0 +/* 803B9FCC 003B6F2C 3C 80 80 57 */ lis r4, lbl_80569A58@ha +/* 803B9FD0 003B6F30 90 01 00 04 */ stw r0, 4(r1) +/* 803B9FD4 003B6F34 38 84 9A 58 */ addi r4, r4, lbl_80569A58@l +/* 803B9FD8 003B6F38 38 04 00 30 */ addi r0, r4, 0x30 +/* 803B9FDC 003B6F3C 94 21 FF 78 */ stwu r1, -0x88(r1) +/* 803B9FE0 003B6F40 7C 00 18 40 */ cmplw r0, r3 +/* 803B9FE4 003B6F44 93 E1 00 84 */ stw r31, 0x84(r1) +/* 803B9FE8 003B6F48 3B E0 00 00 */ li r31, 0 +/* 803B9FEC 003B6F4C 93 C1 00 80 */ stw r30, 0x80(r1) +/* 803B9FF0 003B6F50 93 A1 00 7C */ stw r29, 0x7c(r1) +/* 803B9FF4 003B6F54 3B A4 00 00 */ addi r29, r4, 0 +/* 803B9FF8 003B6F58 93 81 00 78 */ stw r28, 0x78(r1) +/* 803B9FFC 003B6F5C 41 82 00 20 */ beq lbl_803BA01C +/* 803BA000 003B6F60 38 04 01 40 */ addi r0, r4, 0x140 +/* 803BA004 003B6F64 7C 00 18 40 */ cmplw r0, r3 +/* 803BA008 003B6F68 38 84 01 10 */ addi r4, r4, 0x110 +/* 803BA00C 003B6F6C 3B A4 00 00 */ addi r29, r4, 0 +/* 803BA010 003B6F70 3B E0 00 01 */ li r31, 1 +/* 803BA014 003B6F74 41 82 00 08 */ beq lbl_803BA01C +/* 803BA018 003B6F78 3B E0 00 02 */ li r31, 2 +lbl_803BA01C: +/* 803BA01C 003B6F7C 80 7D 00 80 */ lwz r3, 0x80(r29) +/* 803BA020 003B6F80 38 03 00 2F */ addi r0, r3, 0x2f +/* 803BA024 003B6F84 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a +/* 803BA028 003B6F88 83 C3 00 20 */ lwz r30, 0x20(r3) +/* 803BA02C 003B6F8C 4B FF F3 11 */ bl DummyLen +/* 803BA030 003B6F90 80 1D 00 2C */ lwz r0, 0x2c(r29) +/* 803BA034 003B6F94 3B 83 00 00 */ addi r28, r3, 0 +/* 803BA038 003B6F98 38 DC 00 00 */ addi r6, r28, 0 +/* 803BA03C 003B6F9C 7F C0 02 78 */ xor r0, r30, r0 +/* 803BA040 003B6FA0 54 04 00 1E */ rlwinm r4, r0, 0, 0, 0xf +/* 803BA044 003B6FA4 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA048 003B6FA8 38 A1 00 34 */ addi r5, r1, 0x34 +/* 803BA04C 003B6FAC 38 E0 00 01 */ li r7, 1 +/* 803BA050 003B6FB0 4B FF F1 A9 */ bl ReadArrayUnlock +/* 803BA054 003B6FB4 2C 03 00 00 */ cmpwi r3, 0 +/* 803BA058 003B6FB8 40 80 00 1C */ bge lbl_803BA074 +/* 803BA05C 003B6FBC 7F E3 FB 78 */ mr r3, r31 +/* 803BA060 003B6FC0 48 00 73 F9 */ bl EXIUnlock +/* 803BA064 003B6FC4 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA068 003B6FC8 38 80 FF FD */ li r4, -3 +/* 803BA06C 003B6FCC 48 00 20 FD */ bl __CARDMountCallback +/* 803BA070 003B6FD0 48 00 02 5C */ b lbl_803BA2CC +lbl_803BA074: +/* 803BA074 003B6FD4 80 9D 00 14 */ lwz r4, 0x14(r29) +/* 803BA078 003B6FD8 38 60 00 00 */ li r3, 0 +/* 803BA07C 003B6FDC 80 1D 00 2C */ lwz r0, 0x2c(r29) +/* 803BA080 003B6FE0 7C 9C 22 14 */ add r4, r28, r4 +/* 803BA084 003B6FE4 38 84 00 04 */ addi r4, r4, 4 +/* 803BA088 003B6FE8 54 84 18 38 */ slwi r4, r4, 3 +/* 803BA08C 003B6FEC 38 84 00 01 */ addi r4, r4, 1 +/* 803BA090 003B6FF0 28 04 00 00 */ cmplwi r4, 0 +/* 803BA094 003B6FF4 40 81 01 68 */ ble lbl_803BA1FC +/* 803BA098 003B6FF8 28 04 00 08 */ cmplwi r4, 8 +/* 803BA09C 003B6FFC 38 C4 FF F8 */ addi r6, r4, -8 +/* 803BA0A0 003B7000 40 81 01 24 */ ble lbl_803BA1C4 +/* 803BA0A4 003B7004 38 A6 00 07 */ addi r5, r6, 7 +/* 803BA0A8 003B7008 54 A5 E8 FE */ srwi r5, r5, 3 +/* 803BA0AC 003B700C 28 06 00 00 */ cmplwi r6, 0 +/* 803BA0B0 003B7010 7C A9 03 A6 */ mtctr r5 +/* 803BA0B4 003B7014 40 81 01 10 */ ble lbl_803BA1C4 +lbl_803BA0B8: +/* 803BA0B8 003B7018 54 05 38 30 */ slwi r5, r0, 7 +/* 803BA0BC 003B701C 54 06 78 20 */ slwi r6, r0, 0xf +/* 803BA0C0 003B7020 7C 05 2A 78 */ xor r5, r0, r5 +/* 803BA0C4 003B7024 7C C5 2A 78 */ xor r5, r6, r5 +/* 803BA0C8 003B7028 54 07 B8 10 */ slwi r7, r0, 0x17 +/* 803BA0CC 003B702C 7C E5 2A 38 */ eqv r5, r7, r5 +/* 803BA0D0 003B7030 54 06 08 3C */ slwi r6, r0, 1 +/* 803BA0D4 003B7034 54 A0 17 BC */ rlwinm r0, r5, 2, 0x1e, 0x1e +/* 803BA0D8 003B7038 7C C7 03 78 */ or r7, r6, r0 +/* 803BA0DC 003B703C 54 E0 38 30 */ slwi r0, r7, 7 +/* 803BA0E0 003B7040 54 E5 78 20 */ slwi r5, r7, 0xf +/* 803BA0E4 003B7044 7C E0 02 78 */ xor r0, r7, r0 +/* 803BA0E8 003B7048 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803BA0EC 003B704C 7C A0 02 78 */ xor r0, r5, r0 +/* 803BA0F0 003B7050 7C C0 02 38 */ eqv r0, r6, r0 +/* 803BA0F4 003B7054 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e +/* 803BA0F8 003B7058 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803BA0FC 003B705C 55 00 38 30 */ slwi r0, r8, 7 +/* 803BA100 003B7060 55 05 78 20 */ slwi r5, r8, 0xf +/* 803BA104 003B7064 7D 00 02 78 */ xor r0, r8, r0 +/* 803BA108 003B7068 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803BA10C 003B706C 7C A0 02 78 */ xor r0, r5, r0 +/* 803BA110 003B7070 7C C0 02 38 */ eqv r0, r6, r0 +/* 803BA114 003B7074 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e +/* 803BA118 003B7078 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803BA11C 003B707C 54 E0 38 30 */ slwi r0, r7, 7 +/* 803BA120 003B7080 54 E5 78 20 */ slwi r5, r7, 0xf +/* 803BA124 003B7084 7C E0 02 78 */ xor r0, r7, r0 +/* 803BA128 003B7088 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803BA12C 003B708C 7C A0 02 78 */ xor r0, r5, r0 +/* 803BA130 003B7090 7C C0 02 38 */ eqv r0, r6, r0 +/* 803BA134 003B7094 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e +/* 803BA138 003B7098 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803BA13C 003B709C 55 00 38 30 */ slwi r0, r8, 7 +/* 803BA140 003B70A0 55 05 78 20 */ slwi r5, r8, 0xf +/* 803BA144 003B70A4 7D 00 02 78 */ xor r0, r8, r0 +/* 803BA148 003B70A8 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803BA14C 003B70AC 7C A0 02 78 */ xor r0, r5, r0 +/* 803BA150 003B70B0 7C C0 02 38 */ eqv r0, r6, r0 +/* 803BA154 003B70B4 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e +/* 803BA158 003B70B8 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803BA15C 003B70BC 54 E0 38 30 */ slwi r0, r7, 7 +/* 803BA160 003B70C0 54 E5 78 20 */ slwi r5, r7, 0xf +/* 803BA164 003B70C4 7C E0 02 78 */ xor r0, r7, r0 +/* 803BA168 003B70C8 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803BA16C 003B70CC 7C A0 02 78 */ xor r0, r5, r0 +/* 803BA170 003B70D0 7C C0 02 38 */ eqv r0, r6, r0 +/* 803BA174 003B70D4 54 08 17 BC */ rlwinm r8, r0, 2, 0x1e, 0x1e +/* 803BA178 003B70D8 50 E8 08 3A */ rlwimi r8, r7, 1, 0, 0x1d +/* 803BA17C 003B70DC 55 00 38 30 */ slwi r0, r8, 7 +/* 803BA180 003B70E0 55 05 78 20 */ slwi r5, r8, 0xf +/* 803BA184 003B70E4 7D 00 02 78 */ xor r0, r8, r0 +/* 803BA188 003B70E8 55 06 B8 10 */ slwi r6, r8, 0x17 +/* 803BA18C 003B70EC 7C A0 02 78 */ xor r0, r5, r0 +/* 803BA190 003B70F0 7C C0 02 38 */ eqv r0, r6, r0 +/* 803BA194 003B70F4 54 07 17 BC */ rlwinm r7, r0, 2, 0x1e, 0x1e +/* 803BA198 003B70F8 51 07 08 3A */ rlwimi r7, r8, 1, 0, 0x1d +/* 803BA19C 003B70FC 54 E0 38 30 */ slwi r0, r7, 7 +/* 803BA1A0 003B7100 54 E5 78 20 */ slwi r5, r7, 0xf +/* 803BA1A4 003B7104 7C E0 02 78 */ xor r0, r7, r0 +/* 803BA1A8 003B7108 54 E6 B8 10 */ slwi r6, r7, 0x17 +/* 803BA1AC 003B710C 7C A0 02 78 */ xor r0, r5, r0 +/* 803BA1B0 003B7110 7C C0 02 38 */ eqv r0, r6, r0 +/* 803BA1B4 003B7114 54 00 17 BC */ rlwinm r0, r0, 2, 0x1e, 0x1e +/* 803BA1B8 003B7118 50 E0 08 3A */ rlwimi r0, r7, 1, 0, 0x1d +/* 803BA1BC 003B711C 38 63 00 08 */ addi r3, r3, 8 +/* 803BA1C0 003B7120 42 00 FE F8 */ bdnz lbl_803BA0B8 +lbl_803BA1C4: +/* 803BA1C4 003B7124 7C A3 20 50 */ subf r5, r3, r4 +/* 803BA1C8 003B7128 7C 03 20 40 */ cmplw r3, r4 +/* 803BA1CC 003B712C 7C A9 03 A6 */ mtctr r5 +/* 803BA1D0 003B7130 40 80 00 2C */ bge lbl_803BA1FC +lbl_803BA1D4: +/* 803BA1D4 003B7134 54 03 38 30 */ slwi r3, r0, 7 +/* 803BA1D8 003B7138 54 04 78 20 */ slwi r4, r0, 0xf +/* 803BA1DC 003B713C 7C 03 1A 78 */ xor r3, r0, r3 +/* 803BA1E0 003B7140 54 05 B8 10 */ slwi r5, r0, 0x17 +/* 803BA1E4 003B7144 7C 83 1A 78 */ xor r3, r4, r3 +/* 803BA1E8 003B7148 7C A3 1A 38 */ eqv r3, r5, r3 +/* 803BA1EC 003B714C 54 04 08 3C */ slwi r4, r0, 1 +/* 803BA1F0 003B7150 54 60 17 BC */ rlwinm r0, r3, 2, 0x1e, 0x1e +/* 803BA1F4 003B7154 7C 80 03 78 */ or r0, r4, r0 +/* 803BA1F8 003B7158 42 00 FF DC */ bdnz lbl_803BA1D4 +lbl_803BA1FC: +/* 803BA1FC 003B715C 54 03 38 30 */ slwi r3, r0, 7 +/* 803BA200 003B7160 54 04 78 20 */ slwi r4, r0, 0xf +/* 803BA204 003B7164 7C 03 1A 78 */ xor r3, r0, r3 +/* 803BA208 003B7168 54 05 B8 10 */ slwi r5, r0, 0x17 +/* 803BA20C 003B716C 7C 83 1A 78 */ xor r3, r4, r3 +/* 803BA210 003B7170 7C A3 1A 38 */ eqv r3, r5, r3 +/* 803BA214 003B7174 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803BA218 003B7178 7C 00 1B 78 */ or r0, r0, r3 +/* 803BA21C 003B717C 90 1D 00 2C */ stw r0, 0x2c(r29) +/* 803BA220 003B7180 4B FF F1 1D */ bl DummyLen +/* 803BA224 003B7184 80 1D 00 2C */ lwz r0, 0x2c(r29) +/* 803BA228 003B7188 57 C4 80 1E */ slwi r4, r30, 0x10 +/* 803BA22C 003B718C 38 C3 00 00 */ addi r6, r3, 0 +/* 803BA230 003B7190 7C 80 02 78 */ xor r0, r4, r0 +/* 803BA234 003B7194 54 04 00 1E */ rlwinm r4, r0, 0, 0, 0xf +/* 803BA238 003B7198 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA23C 003B719C 38 A1 00 34 */ addi r5, r1, 0x34 +/* 803BA240 003B71A0 38 E0 00 01 */ li r7, 1 +/* 803BA244 003B71A4 4B FF EF B5 */ bl ReadArrayUnlock +/* 803BA248 003B71A8 2C 03 00 00 */ cmpwi r3, 0 +/* 803BA24C 003B71AC 40 80 00 1C */ bge lbl_803BA268 +/* 803BA250 003B71B0 7F E3 FB 78 */ mr r3, r31 +/* 803BA254 003B71B4 48 00 72 05 */ bl EXIUnlock +/* 803BA258 003B71B8 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA25C 003B71BC 38 80 FF FD */ li r4, -3 +/* 803BA260 003B71C0 48 00 1F 09 */ bl __CARDMountCallback +/* 803BA264 003B71C4 48 00 00 68 */ b lbl_803BA2CC +lbl_803BA268: +/* 803BA268 003B71C8 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA26C 003B71CC 38 81 00 30 */ addi r4, r1, 0x30 +/* 803BA270 003B71D0 4B FF DF E5 */ bl __CARDReadStatus +/* 803BA274 003B71D4 3B 83 00 00 */ addi r28, r3, 0 +/* 803BA278 003B71D8 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA27C 003B71DC 48 00 66 E5 */ bl EXIProbe +/* 803BA280 003B71E0 2C 03 00 00 */ cmpwi r3, 0 +/* 803BA284 003B71E4 40 82 00 1C */ bne lbl_803BA2A0 +/* 803BA288 003B71E8 7F E3 FB 78 */ mr r3, r31 +/* 803BA28C 003B71EC 48 00 71 CD */ bl EXIUnlock +/* 803BA290 003B71F0 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA294 003B71F4 38 80 FF FD */ li r4, -3 +/* 803BA298 003B71F8 48 00 1E D1 */ bl __CARDMountCallback +/* 803BA29C 003B71FC 48 00 00 30 */ b lbl_803BA2CC +lbl_803BA2A0: +/* 803BA2A0 003B7200 2C 1C 00 00 */ cmpwi r28, 0 +/* 803BA2A4 003B7204 40 82 00 1C */ bne lbl_803BA2C0 +/* 803BA2A8 003B7208 88 01 00 30 */ lbz r0, 0x30(r1) +/* 803BA2AC 003B720C 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 +/* 803BA2B0 003B7210 40 82 00 10 */ bne lbl_803BA2C0 +/* 803BA2B4 003B7214 7F E3 FB 78 */ mr r3, r31 +/* 803BA2B8 003B7218 48 00 71 A1 */ bl EXIUnlock +/* 803BA2BC 003B721C 3B 80 FF FB */ li r28, -5 +lbl_803BA2C0: +/* 803BA2C0 003B7220 38 7F 00 00 */ addi r3, r31, 0 +/* 803BA2C4 003B7224 38 9C 00 00 */ addi r4, r28, 0 +/* 803BA2C8 003B7228 48 00 1E A1 */ bl __CARDMountCallback +lbl_803BA2CC: +/* 803BA2CC 003B722C 80 01 00 8C */ lwz r0, 0x8c(r1) +/* 803BA2D0 003B7230 83 E1 00 84 */ lwz r31, 0x84(r1) +/* 803BA2D4 003B7234 83 C1 00 80 */ lwz r30, 0x80(r1) +/* 803BA2D8 003B7238 83 A1 00 7C */ lwz r29, 0x7c(r1) +/* 803BA2DC 003B723C 83 81 00 78 */ lwz r28, 0x78(r1) +/* 803BA2E0 003B7240 38 21 00 88 */ addi r1, r1, 0x88 +/* 803BA2E4 003B7244 7C 08 03 A6 */ mtlr r0 +/* 803BA2E8 003B7248 4E 80 00 20 */ blr diff --git a/asm/Dolphin/CARD/CARDWrite.s b/asm/Dolphin/CARD/CARDWrite.s new file mode 100644 index 00000000..401b697f --- /dev/null +++ b/asm/Dolphin/CARD/CARDWrite.s @@ -0,0 +1,232 @@ +.include "macros.inc" + +.section .text, "ax" + +WriteCallback: +/* 803BD940 003BA8A0 7C 08 02 A6 */ mflr r0 +/* 803BD944 003BA8A4 90 01 00 04 */ stw r0, 4(r1) +/* 803BD948 003BA8A8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BD94C 003BA8AC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BD950 003BA8B0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BD954 003BA8B4 3B C3 00 00 */ addi r30, r3, 0 +/* 803BD958 003BA8B8 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BD95C 003BA8BC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BD960 003BA8C0 1C BE 01 10 */ mulli r5, r30, 0x110 +/* 803BD964 003BA8C4 93 81 00 10 */ stw r28, 0x10(r1) +/* 803BD968 003BA8C8 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BD96C 003BA8CC 7C 9C 23 79 */ or. r28, r4, r4 +/* 803BD970 003BA8D0 7F E0 2A 14 */ add r31, r0, r5 +/* 803BD974 003BA8D4 41 80 00 F0 */ blt lbl_803BDA64 +/* 803BD978 003BA8D8 83 BF 00 C0 */ lwz r29, 0xc0(r31) +/* 803BD97C 003BA8DC 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 803BD980 003BA8E0 2C 03 00 00 */ cmpwi r3, 0 +/* 803BD984 003BA8E4 40 80 00 0C */ bge lbl_803BD990 +/* 803BD988 003BA8E8 3B 80 FF F2 */ li r28, -14 +/* 803BD98C 003BA8EC 48 00 00 D8 */ b lbl_803BDA64 +lbl_803BD990: +/* 803BD990 003BA8F0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803BD994 003BA8F4 7C 00 18 50 */ subf r0, r0, r3 +/* 803BD998 003BA8F8 90 1D 00 0C */ stw r0, 0xc(r29) +/* 803BD99C 003BA8FC 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 803BD9A0 003BA900 2C 00 00 00 */ cmpwi r0, 0 +/* 803BD9A4 003BA904 41 81 00 54 */ bgt lbl_803BD9F8 +/* 803BD9A8 003BA908 7F E3 FB 78 */ mr r3, r31 +/* 803BD9AC 003BA90C 4B FF CF C5 */ bl __CARDGetDirBlock +/* 803BD9B0 003BA910 80 BD 00 04 */ lwz r5, 4(r29) +/* 803BD9B4 003BA914 3C 80 80 00 */ lis r4, 0x800000F8@ha +/* 803BD9B8 003BA918 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4) +/* 803BD9BC 003BA91C 54 A4 30 32 */ slwi r4, r5, 6 +/* 803BD9C0 003BA920 7F 83 22 14 */ add r28, r3, r4 +/* 803BD9C4 003BA924 54 1D F0 BE */ srwi r29, r0, 2 +/* 803BD9C8 003BA928 4B FC 79 E1 */ bl OSGetTime +/* 803BD9CC 003BA92C 38 DD 00 00 */ addi r6, r29, 0 +/* 803BD9D0 003BA930 38 A0 00 00 */ li r5, 0 +/* 803BD9D4 003BA934 4B FC C1 F9 */ bl __div2i +/* 803BD9D8 003BA938 90 9C 00 28 */ stw r4, 0x28(r28) +/* 803BD9DC 003BA93C 38 00 00 00 */ li r0, 0 +/* 803BD9E0 003BA940 38 7E 00 00 */ addi r3, r30, 0 +/* 803BD9E4 003BA944 80 9F 00 D0 */ lwz r4, 0xd0(r31) +/* 803BD9E8 003BA948 90 1F 00 D0 */ stw r0, 0xd0(r31) +/* 803BD9EC 003BA94C 4B FF D1 25 */ bl __CARDUpdateDir +/* 803BD9F0 003BA950 7C 7C 1B 78 */ mr r28, r3 +/* 803BD9F4 003BA954 48 00 00 68 */ b lbl_803BDA5C +lbl_803BD9F8: +/* 803BD9F8 003BA958 7F E3 FB 78 */ mr r3, r31 +/* 803BD9FC 003BA95C 4B FF CB 71 */ bl __CARDGetFatBlock +/* 803BDA00 003BA960 80 9D 00 08 */ lwz r4, 8(r29) +/* 803BDA04 003BA964 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803BDA08 003BA968 7C 04 02 14 */ add r0, r4, r0 +/* 803BDA0C 003BA96C 90 1D 00 08 */ stw r0, 8(r29) +/* 803BDA10 003BA970 A0 1D 00 10 */ lhz r0, 0x10(r29) +/* 803BDA14 003BA974 54 00 08 3C */ slwi r0, r0, 1 +/* 803BDA18 003BA978 7C 03 02 2E */ lhzx r0, r3, r0 +/* 803BDA1C 003BA97C B0 1D 00 10 */ sth r0, 0x10(r29) +/* 803BDA20 003BA980 A0 9D 00 10 */ lhz r4, 0x10(r29) +/* 803BDA24 003BA984 28 04 00 05 */ cmplwi r4, 5 +/* 803BDA28 003BA988 41 80 00 10 */ blt lbl_803BDA38 +/* 803BDA2C 003BA98C A0 1F 00 10 */ lhz r0, 0x10(r31) +/* 803BDA30 003BA990 7C 04 00 40 */ cmplw r4, r0 +/* 803BDA34 003BA994 41 80 00 0C */ blt lbl_803BDA40 +lbl_803BDA38: +/* 803BDA38 003BA998 3B 80 FF FA */ li r28, -6 +/* 803BDA3C 003BA99C 48 00 00 28 */ b lbl_803BDA64 +lbl_803BDA40: +/* 803BDA40 003BA9A0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803BDA44 003BA9A4 3C 60 80 3C */ lis r3, EraseCallback@ha +/* 803BDA48 003BA9A8 38 A3 DA B0 */ addi r5, r3, EraseCallback@l +/* 803BDA4C 003BA9AC 7C 80 21 D6 */ mullw r4, r0, r4 +/* 803BDA50 003BA9B0 38 7E 00 00 */ addi r3, r30, 0 +/* 803BDA54 003BA9B4 4B FF B1 81 */ bl __CARDEraseSector +/* 803BDA58 003BA9B8 7C 7C 1B 78 */ mr r28, r3 +lbl_803BDA5C: +/* 803BDA5C 003BA9BC 2C 1C 00 00 */ cmpwi r28, 0 +/* 803BDA60 003BA9C0 40 80 00 30 */ bge lbl_803BDA90 +lbl_803BDA64: +/* 803BDA64 003BA9C4 83 BF 00 D0 */ lwz r29, 0xd0(r31) +/* 803BDA68 003BA9C8 38 00 00 00 */ li r0, 0 +/* 803BDA6C 003BA9CC 38 7F 00 00 */ addi r3, r31, 0 +/* 803BDA70 003BA9D0 90 1F 00 D0 */ stw r0, 0xd0(r31) +/* 803BDA74 003BA9D4 7F 84 E3 78 */ mr r4, r28 +/* 803BDA78 003BA9D8 4B FF B3 E1 */ bl __CARDPutControlBlock +/* 803BDA7C 003BA9DC 39 9D 00 00 */ addi r12, r29, 0 +/* 803BDA80 003BA9E0 7D 88 03 A6 */ mtlr r12 +/* 803BDA84 003BA9E4 38 7E 00 00 */ addi r3, r30, 0 +/* 803BDA88 003BA9E8 38 9C 00 00 */ addi r4, r28, 0 +/* 803BDA8C 003BA9EC 4E 80 00 21 */ blrl +lbl_803BDA90: +/* 803BDA90 003BA9F0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BDA94 003BA9F4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BDA98 003BA9F8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BDA9C 003BA9FC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BDAA0 003BAA00 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803BDAA4 003BAA04 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BDAA8 003BAA08 7C 08 03 A6 */ mtlr r0 +/* 803BDAAC 003BAA0C 4E 80 00 20 */ blr + +EraseCallback: +/* 803BDAB0 003BAA10 7C 08 02 A6 */ mflr r0 +/* 803BDAB4 003BAA14 90 01 00 04 */ stw r0, 4(r1) +/* 803BDAB8 003BAA18 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BDABC 003BAA1C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BDAC0 003BAA20 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BDAC4 003BAA24 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BDAC8 003BAA28 7C 9D 23 79 */ or. r29, r4, r4 +/* 803BDACC 003BAA2C 93 81 00 10 */ stw r28, 0x10(r1) +/* 803BDAD0 003BAA30 3B 83 00 00 */ addi r28, r3, 0 +/* 803BDAD4 003BAA34 1C BC 01 10 */ mulli r5, r28, 0x110 +/* 803BDAD8 003BAA38 3C 60 80 57 */ lis r3, lbl_80569A58@ha +/* 803BDADC 003BAA3C 38 03 9A 58 */ addi r0, r3, lbl_80569A58@l +/* 803BDAE0 003BAA40 7F E0 2A 14 */ add r31, r0, r5 +/* 803BDAE4 003BAA44 41 80 00 30 */ blt lbl_803BDB14 +/* 803BDAE8 003BAA48 80 9F 00 C0 */ lwz r4, 0xc0(r31) +/* 803BDAEC 003BAA4C 3C 60 80 3C */ lis r3, WriteCallback@ha +/* 803BDAF0 003BAA50 38 E3 D9 40 */ addi r7, r3, WriteCallback@l +/* 803BDAF4 003BAA54 80 BF 00 0C */ lwz r5, 0xc(r31) +/* 803BDAF8 003BAA58 A0 04 00 10 */ lhz r0, 0x10(r4) +/* 803BDAFC 003BAA5C 80 DF 00 B4 */ lwz r6, 0xb4(r31) +/* 803BDB00 003BAA60 38 7C 00 00 */ addi r3, r28, 0 +/* 803BDB04 003BAA64 7C 85 01 D6 */ mullw r4, r5, r0 +/* 803BDB08 003BAA68 4B FF CA 01 */ bl __CARDWrite +/* 803BDB0C 003BAA6C 7C 7D 1B 79 */ or. r29, r3, r3 +/* 803BDB10 003BAA70 40 80 00 30 */ bge lbl_803BDB40 +lbl_803BDB14: +/* 803BDB14 003BAA74 83 DF 00 D0 */ lwz r30, 0xd0(r31) +/* 803BDB18 003BAA78 38 00 00 00 */ li r0, 0 +/* 803BDB1C 003BAA7C 38 7F 00 00 */ addi r3, r31, 0 +/* 803BDB20 003BAA80 90 1F 00 D0 */ stw r0, 0xd0(r31) +/* 803BDB24 003BAA84 7F A4 EB 78 */ mr r4, r29 +/* 803BDB28 003BAA88 4B FF B3 31 */ bl __CARDPutControlBlock +/* 803BDB2C 003BAA8C 39 9E 00 00 */ addi r12, r30, 0 +/* 803BDB30 003BAA90 7D 88 03 A6 */ mtlr r12 +/* 803BDB34 003BAA94 38 7C 00 00 */ addi r3, r28, 0 +/* 803BDB38 003BAA98 38 9D 00 00 */ addi r4, r29, 0 +/* 803BDB3C 003BAA9C 4E 80 00 21 */ blrl +lbl_803BDB40: +/* 803BDB40 003BAAA0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BDB44 003BAAA4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BDB48 003BAAA8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BDB4C 003BAAAC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BDB50 003BAAB0 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803BDB54 003BAAB4 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BDB58 003BAAB8 7C 08 03 A6 */ mtlr r0 +/* 803BDB5C 003BAABC 4E 80 00 20 */ blr + +.global CARDWriteAsync +CARDWriteAsync: +/* 803BDB60 003BAAC0 7C 08 02 A6 */ mflr r0 +/* 803BDB64 003BAAC4 90 01 00 04 */ stw r0, 4(r1) +/* 803BDB68 003BAAC8 94 21 FF C8 */ stwu r1, -0x38(r1) +/* 803BDB6C 003BAACC BF 61 00 24 */ stmw r27, 0x24(r1) +/* 803BDB70 003BAAD0 3B 86 00 00 */ addi r28, r6, 0 +/* 803BDB74 003BAAD4 3B 65 00 00 */ addi r27, r5, 0 +/* 803BDB78 003BAAD8 3B E4 00 00 */ addi r31, r4, 0 +/* 803BDB7C 003BAADC 3B C3 00 00 */ addi r30, r3, 0 +/* 803BDB80 003BAAE0 3B A7 00 00 */ addi r29, r7, 0 +/* 803BDB84 003BAAE4 38 9B 00 00 */ addi r4, r27, 0 +/* 803BDB88 003BAAE8 38 BC 00 00 */ addi r5, r28, 0 +/* 803BDB8C 003BAAEC 38 C1 00 1C */ addi r6, r1, 0x1c +/* 803BDB90 003BAAF0 4B FF F9 81 */ bl __CARDSeek +/* 803BDB94 003BAAF4 2C 03 00 00 */ cmpwi r3, 0 +/* 803BDB98 003BAAF8 40 80 00 08 */ bge lbl_803BDBA0 +/* 803BDB9C 003BAAFC 48 00 00 C4 */ b lbl_803BDC60 +lbl_803BDBA0: +/* 803BDBA0 003BAB00 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BDBA4 003BAB04 80 83 00 0C */ lwz r4, 0xc(r3) +/* 803BDBA8 003BAB08 38 84 FF FF */ addi r4, r4, -1 +/* 803BDBAC 003BAB0C 7F 80 20 39 */ and. r0, r28, r4 +/* 803BDBB0 003BAB10 40 82 00 0C */ bne lbl_803BDBBC +/* 803BDBB4 003BAB14 7F 60 20 39 */ and. r0, r27, r4 +/* 803BDBB8 003BAB18 41 82 00 10 */ beq lbl_803BDBC8 +lbl_803BDBBC: +/* 803BDBBC 003BAB1C 38 80 FF 80 */ li r4, -128 +/* 803BDBC0 003BAB20 4B FF B2 99 */ bl __CARDPutControlBlock +/* 803BDBC4 003BAB24 48 00 00 9C */ b lbl_803BDC60 +lbl_803BDBC8: +/* 803BDBC8 003BAB28 4B FF CD A9 */ bl __CARDGetDirBlock +/* 803BDBCC 003BAB2C 80 1E 00 04 */ lwz r0, 4(r30) +/* 803BDBD0 003BAB30 54 00 30 32 */ slwi r0, r0, 6 +/* 803BDBD4 003BAB34 7C 83 02 14 */ add r4, r3, r0 +/* 803BDBD8 003BAB38 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BDBDC 003BAB3C 4B FF F1 F9 */ bl __CARDAccess +/* 803BDBE0 003BAB40 7C 64 1B 79 */ or. r4, r3, r3 +/* 803BDBE4 003BAB44 40 80 00 10 */ bge lbl_803BDBF4 +/* 803BDBE8 003BAB48 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BDBEC 003BAB4C 4B FF B2 6D */ bl __CARDPutControlBlock +/* 803BDBF0 003BAB50 48 00 00 70 */ b lbl_803BDC60 +lbl_803BDBF4: +/* 803BDBF4 003BAB54 38 7F 00 00 */ addi r3, r31, 0 +/* 803BDBF8 003BAB58 38 9B 00 00 */ addi r4, r27, 0 +/* 803BDBFC 003BAB5C 4B FC 0E E5 */ bl DCStoreRange +/* 803BDC00 003BAB60 28 1D 00 00 */ cmplwi r29, 0 +/* 803BDC04 003BAB64 41 82 00 0C */ beq lbl_803BDC10 +/* 803BDC08 003BAB68 7F A0 EB 78 */ mr r0, r29 +/* 803BDC0C 003BAB6C 48 00 00 0C */ b lbl_803BDC18 +lbl_803BDC10: +/* 803BDC10 003BAB70 3C 60 80 3B */ lis r3, __CARDDefaultApiCallback@ha +/* 803BDC14 003BAB74 38 03 7E 74 */ addi r0, r3, __CARDDefaultApiCallback@l +lbl_803BDC18: +/* 803BDC18 003BAB78 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 803BDC1C 003BAB7C 3C 60 80 3C */ lis r3, EraseCallback@ha +/* 803BDC20 003BAB80 38 A3 DA B0 */ addi r5, r3, EraseCallback@l +/* 803BDC24 003BAB84 90 04 00 D0 */ stw r0, 0xd0(r4) +/* 803BDC28 003BAB88 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BDC2C 003BAB8C 93 E3 00 B4 */ stw r31, 0xb4(r3) +/* 803BDC30 003BAB90 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BDC34 003BAB94 A0 1E 00 10 */ lhz r0, 0x10(r30) +/* 803BDC38 003BAB98 80 83 00 0C */ lwz r4, 0xc(r3) +/* 803BDC3C 003BAB9C 80 7E 00 00 */ lwz r3, 0(r30) +/* 803BDC40 003BABA0 7C 84 01 D6 */ mullw r4, r4, r0 +/* 803BDC44 003BABA4 4B FF AF 91 */ bl __CARDEraseSector +/* 803BDC48 003BABA8 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803BDC4C 003BABAC 40 80 00 10 */ bge lbl_803BDC5C +/* 803BDC50 003BABB0 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 803BDC54 003BABB4 7F C4 F3 78 */ mr r4, r30 +/* 803BDC58 003BABB8 4B FF B2 01 */ bl __CARDPutControlBlock +lbl_803BDC5C: +/* 803BDC5C 003BABBC 7F C3 F3 78 */ mr r3, r30 +lbl_803BDC60: +/* 803BDC60 003BABC0 BB 61 00 24 */ lmw r27, 0x24(r1) +/* 803BDC64 003BABC4 80 01 00 3C */ lwz r0, 0x3c(r1) +/* 803BDC68 003BABC8 38 21 00 38 */ addi r1, r1, 0x38 +/* 803BDC6C 003BABCC 7C 08 03 A6 */ mtlr r0 +/* 803BDC70 003BABD0 4E 80 00 20 */ blr diff --git a/asm/Dolphin/EXIBios.s b/asm/Dolphin/EXIBios.s new file mode 100644 index 00000000..77baf5b7 --- /dev/null +++ b/asm/Dolphin/EXIBios.s @@ -0,0 +1,1794 @@ +.include "macros.inc" + +.section .text, "ax" + +.global SetExiInterruptMask +SetExiInterruptMask: +/* 803C0014 003BCF74 7C 08 02 A6 */ mflr r0 +/* 803C0018 003BCF78 90 01 00 04 */ stw r0, 4(r1) +/* 803C001C 003BCF7C 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803C0020 003BCF80 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803C0024 003BCF84 3B E4 00 00 */ addi r31, r4, 0 +/* 803C0028 003BCF88 3C 80 80 57 */ lis r4, lbl_80569E98@ha +/* 803C002C 003BCF8C 38 84 9E 98 */ addi r4, r4, lbl_80569E98@l +/* 803C0030 003BCF90 38 84 00 80 */ addi r4, r4, 0x80 +/* 803C0034 003BCF94 2C 03 00 01 */ cmpwi r3, 1 +/* 803C0038 003BCF98 41 82 00 5C */ beq lbl_803C0094 +/* 803C003C 003BCF9C 40 80 00 10 */ bge lbl_803C004C +/* 803C0040 003BCFA0 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0044 003BCFA4 40 80 00 14 */ bge lbl_803C0058 +/* 803C0048 003BCFA8 48 00 00 AC */ b lbl_803C00F4 +lbl_803C004C: +/* 803C004C 003BCFAC 2C 03 00 03 */ cmpwi r3, 3 +/* 803C0050 003BCFB0 40 80 00 A4 */ bge lbl_803C00F4 +/* 803C0054 003BCFB4 48 00 00 70 */ b lbl_803C00C4 +lbl_803C0058: +/* 803C0058 003BCFB8 80 1F 00 00 */ lwz r0, 0(r31) +/* 803C005C 003BCFBC 28 00 00 00 */ cmplwi r0, 0 +/* 803C0060 003BCFC0 40 82 00 10 */ bne lbl_803C0070 +/* 803C0064 003BCFC4 80 04 00 00 */ lwz r0, 0(r4) +/* 803C0068 003BCFC8 28 00 00 00 */ cmplwi r0, 0 +/* 803C006C 003BCFCC 41 82 00 10 */ beq lbl_803C007C +lbl_803C0070: +/* 803C0070 003BCFD0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0074 003BCFD4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C0078 003BCFD8 41 82 00 10 */ beq lbl_803C0088 +lbl_803C007C: +/* 803C007C 003BCFDC 3C 60 00 41 */ lis r3, 0x41 +/* 803C0080 003BCFE0 4B FC 19 A9 */ bl __OSMaskInterrupts +/* 803C0084 003BCFE4 48 00 00 70 */ b lbl_803C00F4 +lbl_803C0088: +/* 803C0088 003BCFE8 3C 60 00 41 */ lis r3, 0x41 +/* 803C008C 003BCFEC 4B FC 1A 25 */ bl __OSUnmaskInterrupts +/* 803C0090 003BCFF0 48 00 00 64 */ b lbl_803C00F4 +lbl_803C0094: +/* 803C0094 003BCFF4 80 1F 00 00 */ lwz r0, 0(r31) +/* 803C0098 003BCFF8 28 00 00 00 */ cmplwi r0, 0 +/* 803C009C 003BCFFC 41 82 00 10 */ beq lbl_803C00AC +/* 803C00A0 003BD000 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C00A4 003BD004 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C00A8 003BD008 41 82 00 10 */ beq lbl_803C00B8 +lbl_803C00AC: +/* 803C00AC 003BD00C 3C 60 00 08 */ lis r3, 8 +/* 803C00B0 003BD010 4B FC 19 79 */ bl __OSMaskInterrupts +/* 803C00B4 003BD014 48 00 00 40 */ b lbl_803C00F4 +lbl_803C00B8: +/* 803C00B8 003BD018 3C 60 00 08 */ lis r3, 8 +/* 803C00BC 003BD01C 4B FC 19 F5 */ bl __OSUnmaskInterrupts +/* 803C00C0 003BD020 48 00 00 34 */ b lbl_803C00F4 +lbl_803C00C4: +/* 803C00C4 003BD024 38 60 00 19 */ li r3, 0x19 +/* 803C00C8 003BD028 4B FC 16 01 */ bl __OSGetInterruptHandler +/* 803C00CC 003BD02C 28 03 00 00 */ cmplwi r3, 0 +/* 803C00D0 003BD030 41 82 00 10 */ beq lbl_803C00E0 +/* 803C00D4 003BD034 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C00D8 003BD038 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C00DC 003BD03C 41 82 00 10 */ beq lbl_803C00EC +lbl_803C00E0: +/* 803C00E0 003BD040 38 60 00 40 */ li r3, 0x40 +/* 803C00E4 003BD044 4B FC 19 45 */ bl __OSMaskInterrupts +/* 803C00E8 003BD048 48 00 00 0C */ b lbl_803C00F4 +lbl_803C00EC: +/* 803C00EC 003BD04C 38 60 00 40 */ li r3, 0x40 +/* 803C00F0 003BD050 4B FC 19 C1 */ bl __OSUnmaskInterrupts +lbl_803C00F4: +/* 803C00F4 003BD054 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803C00F8 003BD058 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803C00FC 003BD05C 38 21 00 18 */ addi r1, r1, 0x18 +/* 803C0100 003BD060 7C 08 03 A6 */ mtlr r0 +/* 803C0104 003BD064 4E 80 00 20 */ blr + +.global EXIImm +EXIImm: +/* 803C0108 003BD068 7C 08 02 A6 */ mflr r0 +/* 803C010C 003BD06C 90 01 00 04 */ stw r0, 4(r1) +/* 803C0110 003BD070 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803C0114 003BD074 BF 21 00 24 */ stmw r25, 0x24(r1) +/* 803C0118 003BD078 3B 43 00 00 */ addi r26, r3, 0 +/* 803C011C 003BD07C 3B 64 00 00 */ addi r27, r4, 0 +/* 803C0120 003BD080 3B 85 00 00 */ addi r28, r5, 0 +/* 803C0124 003BD084 3B A6 00 00 */ addi r29, r6, 0 +/* 803C0128 003BD088 3B 27 00 00 */ addi r25, r7, 0 +/* 803C012C 003BD08C 54 64 30 32 */ slwi r4, r3, 6 +/* 803C0130 003BD090 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0134 003BD094 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0138 003BD098 7F E0 22 14 */ add r31, r0, r4 +/* 803C013C 003BD09C 4B FC 15 25 */ bl OSDisableInterrupts +/* 803C0140 003BD0A0 7C 7E 1B 78 */ mr r30, r3 +/* 803C0144 003BD0A4 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0148 003BD0A8 54 00 07 BF */ clrlwi. r0, r0, 0x1e +/* 803C014C 003BD0AC 40 82 00 10 */ bne lbl_803C015C +/* 803C0150 003BD0B0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0154 003BD0B4 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803C0158 003BD0B8 40 82 00 14 */ bne lbl_803C016C +lbl_803C015C: +/* 803C015C 003BD0BC 7F C3 F3 78 */ mr r3, r30 +/* 803C0160 003BD0C0 4B FC 15 29 */ bl OSRestoreInterrupts +/* 803C0164 003BD0C4 38 60 00 00 */ li r3, 0 +/* 803C0168 003BD0C8 48 00 01 E8 */ b lbl_803C0350 +lbl_803C016C: +/* 803C016C 003BD0CC 93 3F 00 04 */ stw r25, 4(r31) +/* 803C0170 003BD0D0 80 1F 00 04 */ lwz r0, 4(r31) +/* 803C0174 003BD0D4 28 00 00 00 */ cmplwi r0, 0 +/* 803C0178 003BD0D8 41 82 00 28 */ beq lbl_803C01A0 +/* 803C017C 003BD0DC 38 7A 00 00 */ addi r3, r26, 0 +/* 803C0180 003BD0E0 38 80 00 00 */ li r4, 0 +/* 803C0184 003BD0E4 38 A0 00 01 */ li r5, 1 +/* 803C0188 003BD0E8 38 C0 00 00 */ li r6, 0 +/* 803C018C 003BD0EC 48 00 05 9D */ bl EXIClearInterrupts +/* 803C0190 003BD0F0 3C 60 00 20 */ lis r3, 0x20 +/* 803C0194 003BD0F4 1C 1A 00 03 */ mulli r0, r26, 3 +/* 803C0198 003BD0F8 7C 63 04 30 */ srw r3, r3, r0 +/* 803C019C 003BD0FC 4B FC 19 15 */ bl __OSUnmaskInterrupts +lbl_803C01A0: +/* 803C01A0 003BD100 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C01A4 003BD104 60 00 00 02 */ ori r0, r0, 2 +/* 803C01A8 003BD108 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803C01AC 003BD10C 28 1D 00 00 */ cmplwi r29, 0 +/* 803C01B0 003BD110 41 82 01 44 */ beq lbl_803C02F4 +/* 803C01B4 003BD114 38 00 00 00 */ li r0, 0 +/* 803C01B8 003BD118 38 80 00 00 */ li r4, 0 +/* 803C01BC 003BD11C 7C 04 E0 00 */ cmpw r4, r28 +/* 803C01C0 003BD120 40 80 01 20 */ bge lbl_803C02E0 +/* 803C01C4 003BD124 38 DC FF F8 */ addi r6, r28, -8 +/* 803C01C8 003BD128 2C 1C 00 08 */ cmpwi r28, 8 +/* 803C01CC 003BD12C 40 81 01 7C */ ble lbl_803C0348 +/* 803C01D0 003BD130 38 7B 00 00 */ addi r3, r27, 0 +/* 803C01D4 003BD134 38 A6 00 07 */ addi r5, r6, 7 +/* 803C01D8 003BD138 54 A5 E8 FE */ srwi r5, r5, 3 +/* 803C01DC 003BD13C 7C A9 03 A6 */ mtctr r5 +/* 803C01E0 003BD140 2C 06 00 00 */ cmpwi r6, 0 +/* 803C01E4 003BD144 40 81 01 64 */ ble lbl_803C0348 +lbl_803C01E8: +/* 803C01E8 003BD148 88 C3 00 00 */ lbz r6, 0(r3) +/* 803C01EC 003BD14C 20 A4 00 03 */ subfic r5, r4, 3 +/* 803C01F0 003BD150 54 A5 18 38 */ slwi r5, r5, 3 +/* 803C01F4 003BD154 7C C5 28 30 */ slw r5, r6, r5 +/* 803C01F8 003BD158 7C 00 2B 78 */ or r0, r0, r5 +/* 803C01FC 003BD15C 88 C3 00 01 */ lbz r6, 1(r3) +/* 803C0200 003BD160 38 A4 00 01 */ addi r5, r4, 1 +/* 803C0204 003BD164 20 A5 00 03 */ subfic r5, r5, 3 +/* 803C0208 003BD168 54 A5 18 38 */ slwi r5, r5, 3 +/* 803C020C 003BD16C 7C C5 28 30 */ slw r5, r6, r5 +/* 803C0210 003BD170 7C 00 2B 78 */ or r0, r0, r5 +/* 803C0214 003BD174 88 C3 00 02 */ lbz r6, 2(r3) +/* 803C0218 003BD178 38 A4 00 02 */ addi r5, r4, 2 +/* 803C021C 003BD17C 20 A5 00 03 */ subfic r5, r5, 3 +/* 803C0220 003BD180 54 A5 18 38 */ slwi r5, r5, 3 +/* 803C0224 003BD184 7C C5 28 30 */ slw r5, r6, r5 +/* 803C0228 003BD188 7C 00 2B 78 */ or r0, r0, r5 +/* 803C022C 003BD18C 88 C3 00 03 */ lbz r6, 3(r3) +/* 803C0230 003BD190 7C A4 00 D0 */ neg r5, r4 +/* 803C0234 003BD194 54 A5 18 38 */ slwi r5, r5, 3 +/* 803C0238 003BD198 7C C5 28 30 */ slw r5, r6, r5 +/* 803C023C 003BD19C 7C 00 2B 78 */ or r0, r0, r5 +/* 803C0240 003BD1A0 88 C3 00 04 */ lbz r6, 4(r3) +/* 803C0244 003BD1A4 38 A4 00 04 */ addi r5, r4, 4 +/* 803C0248 003BD1A8 20 A5 00 03 */ subfic r5, r5, 3 +/* 803C024C 003BD1AC 54 A5 18 38 */ slwi r5, r5, 3 +/* 803C0250 003BD1B0 7C C5 28 30 */ slw r5, r6, r5 +/* 803C0254 003BD1B4 7C 00 2B 78 */ or r0, r0, r5 +/* 803C0258 003BD1B8 88 C3 00 05 */ lbz r6, 5(r3) +/* 803C025C 003BD1BC 38 A4 00 05 */ addi r5, r4, 5 +/* 803C0260 003BD1C0 20 A5 00 03 */ subfic r5, r5, 3 +/* 803C0264 003BD1C4 54 A5 18 38 */ slwi r5, r5, 3 +/* 803C0268 003BD1C8 7C C5 28 30 */ slw r5, r6, r5 +/* 803C026C 003BD1CC 7C 00 2B 78 */ or r0, r0, r5 +/* 803C0270 003BD1D0 88 C3 00 06 */ lbz r6, 6(r3) +/* 803C0274 003BD1D4 38 A4 00 06 */ addi r5, r4, 6 +/* 803C0278 003BD1D8 20 A5 00 03 */ subfic r5, r5, 3 +/* 803C027C 003BD1DC 54 A5 18 38 */ slwi r5, r5, 3 +/* 803C0280 003BD1E0 7C C5 28 30 */ slw r5, r6, r5 +/* 803C0284 003BD1E4 7C 00 2B 78 */ or r0, r0, r5 +/* 803C0288 003BD1E8 88 C3 00 07 */ lbz r6, 7(r3) +/* 803C028C 003BD1EC 38 A4 00 07 */ addi r5, r4, 7 +/* 803C0290 003BD1F0 20 A5 00 03 */ subfic r5, r5, 3 +/* 803C0294 003BD1F4 54 A5 18 38 */ slwi r5, r5, 3 +/* 803C0298 003BD1F8 7C C5 28 30 */ slw r5, r6, r5 +/* 803C029C 003BD1FC 7C 00 2B 78 */ or r0, r0, r5 +/* 803C02A0 003BD200 38 63 00 08 */ addi r3, r3, 8 +/* 803C02A4 003BD204 38 84 00 08 */ addi r4, r4, 8 +/* 803C02A8 003BD208 42 00 FF 40 */ bdnz lbl_803C01E8 +/* 803C02AC 003BD20C 48 00 00 9C */ b lbl_803C0348 +lbl_803C02B0: +/* 803C02B0 003BD210 7C 64 E0 50 */ subf r3, r4, r28 +/* 803C02B4 003BD214 7C 69 03 A6 */ mtctr r3 +/* 803C02B8 003BD218 7C 04 E0 00 */ cmpw r4, r28 +/* 803C02BC 003BD21C 40 80 00 24 */ bge lbl_803C02E0 +lbl_803C02C0: +/* 803C02C0 003BD220 88 A6 00 00 */ lbz r5, 0(r6) +/* 803C02C4 003BD224 20 64 00 03 */ subfic r3, r4, 3 +/* 803C02C8 003BD228 54 63 18 38 */ slwi r3, r3, 3 +/* 803C02CC 003BD22C 7C A3 18 30 */ slw r3, r5, r3 +/* 803C02D0 003BD230 7C 00 1B 78 */ or r0, r0, r3 +/* 803C02D4 003BD234 38 C6 00 01 */ addi r6, r6, 1 +/* 803C02D8 003BD238 38 84 00 01 */ addi r4, r4, 1 +/* 803C02DC 003BD23C 42 00 FF E4 */ bdnz lbl_803C02C0 +lbl_803C02E0: +/* 803C02E0 003BD240 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C02E4 003BD244 38 83 68 00 */ addi r4, r3, 0xCC006800@l +/* 803C02E8 003BD248 1C 7A 00 14 */ mulli r3, r26, 0x14 +/* 803C02EC 003BD24C 7C 64 1A 14 */ add r3, r4, r3 +/* 803C02F0 003BD250 90 03 00 10 */ stw r0, 0x10(r3) +lbl_803C02F4: +/* 803C02F4 003BD254 93 7F 00 14 */ stw r27, 0x14(r31) +/* 803C02F8 003BD258 28 1D 00 01 */ cmplwi r29, 1 +/* 803C02FC 003BD25C 41 82 00 0C */ beq lbl_803C0308 +/* 803C0300 003BD260 7F 80 E3 78 */ mr r0, r28 +/* 803C0304 003BD264 48 00 00 08 */ b lbl_803C030C +lbl_803C0308: +/* 803C0308 003BD268 38 00 00 00 */ li r0, 0 +lbl_803C030C: +/* 803C030C 003BD26C 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803C0310 003BD270 57 A0 10 3A */ slwi r0, r29, 2 +/* 803C0314 003BD274 60 03 00 01 */ ori r3, r0, 1 +/* 803C0318 003BD278 38 1C FF FF */ addi r0, r28, -1 +/* 803C031C 003BD27C 54 00 20 36 */ slwi r0, r0, 4 +/* 803C0320 003BD280 7C 64 03 78 */ or r4, r3, r0 +/* 803C0324 003BD284 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C0328 003BD288 38 63 68 00 */ addi r3, r3, 0xCC006800@l +/* 803C032C 003BD28C 1C 1A 00 14 */ mulli r0, r26, 0x14 +/* 803C0330 003BD290 7C 63 02 14 */ add r3, r3, r0 +/* 803C0334 003BD294 90 83 00 0C */ stw r4, 0xc(r3) +/* 803C0338 003BD298 7F C3 F3 78 */ mr r3, r30 +/* 803C033C 003BD29C 4B FC 13 4D */ bl OSRestoreInterrupts +/* 803C0340 003BD2A0 38 60 00 01 */ li r3, 1 +/* 803C0344 003BD2A4 48 00 00 0C */ b lbl_803C0350 +lbl_803C0348: +/* 803C0348 003BD2A8 7C DB 22 14 */ add r6, r27, r4 +/* 803C034C 003BD2AC 4B FF FF 64 */ b lbl_803C02B0 +lbl_803C0350: +/* 803C0350 003BD2B0 80 01 00 44 */ lwz r0, 0x44(r1) +/* 803C0354 003BD2B4 BB 21 00 24 */ lmw r25, 0x24(r1) +/* 803C0358 003BD2B8 38 21 00 40 */ addi r1, r1, 0x40 +/* 803C035C 003BD2BC 7C 08 03 A6 */ mtlr r0 +/* 803C0360 003BD2C0 4E 80 00 20 */ blr + +.global EXIImmEx +EXIImmEx: +/* 803C0364 003BD2C4 7C 08 02 A6 */ mflr r0 +/* 803C0368 003BD2C8 90 01 00 04 */ stw r0, 4(r1) +/* 803C036C 003BD2CC 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803C0370 003BD2D0 BF 61 00 1C */ stmw r27, 0x1c(r1) +/* 803C0374 003BD2D4 3B 63 00 00 */ addi r27, r3, 0 +/* 803C0378 003BD2D8 3B 84 00 00 */ addi r28, r4, 0 +/* 803C037C 003BD2DC 3B A5 00 00 */ addi r29, r5, 0 +/* 803C0380 003BD2E0 3B C6 00 00 */ addi r30, r6, 0 +/* 803C0384 003BD2E4 48 00 00 60 */ b lbl_803C03E4 +lbl_803C0388: +/* 803C0388 003BD2E8 2C 1D 00 04 */ cmpwi r29, 4 +/* 803C038C 003BD2EC 40 80 00 0C */ bge lbl_803C0398 +/* 803C0390 003BD2F0 7F BF EB 78 */ mr r31, r29 +/* 803C0394 003BD2F4 48 00 00 08 */ b lbl_803C039C +lbl_803C0398: +/* 803C0398 003BD2F8 3B E0 00 04 */ li r31, 4 +lbl_803C039C: +/* 803C039C 003BD2FC 38 BF 00 00 */ addi r5, r31, 0 +/* 803C03A0 003BD300 38 7B 00 00 */ addi r3, r27, 0 +/* 803C03A4 003BD304 38 9C 00 00 */ addi r4, r28, 0 +/* 803C03A8 003BD308 38 DE 00 00 */ addi r6, r30, 0 +/* 803C03AC 003BD30C 38 E0 00 00 */ li r7, 0 +/* 803C03B0 003BD310 4B FF FD 59 */ bl EXIImm +/* 803C03B4 003BD314 2C 03 00 00 */ cmpwi r3, 0 +/* 803C03B8 003BD318 40 82 00 0C */ bne lbl_803C03C4 +/* 803C03BC 003BD31C 38 60 00 00 */ li r3, 0 +/* 803C03C0 003BD320 48 00 00 30 */ b lbl_803C03F0 +lbl_803C03C4: +/* 803C03C4 003BD324 7F 63 DB 78 */ mr r3, r27 +/* 803C03C8 003BD328 48 00 01 29 */ bl sub_803c04f0 +/* 803C03CC 003BD32C 2C 03 00 00 */ cmpwi r3, 0 +/* 803C03D0 003BD330 40 82 00 0C */ bne lbl_803C03DC +/* 803C03D4 003BD334 38 60 00 00 */ li r3, 0 +/* 803C03D8 003BD338 48 00 00 18 */ b lbl_803C03F0 +lbl_803C03DC: +/* 803C03DC 003BD33C 7F 9C FA 14 */ add r28, r28, r31 +/* 803C03E0 003BD340 7F BF E8 50 */ subf r29, r31, r29 +lbl_803C03E4: +/* 803C03E4 003BD344 2C 1D 00 00 */ cmpwi r29, 0 +/* 803C03E8 003BD348 40 82 FF A0 */ bne lbl_803C0388 +/* 803C03EC 003BD34C 38 60 00 01 */ li r3, 1 +lbl_803C03F0: +/* 803C03F0 003BD350 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803C03F4 003BD354 BB 61 00 1C */ lmw r27, 0x1c(r1) +/* 803C03F8 003BD358 38 21 00 30 */ addi r1, r1, 0x30 +/* 803C03FC 003BD35C 7C 08 03 A6 */ mtlr r0 +/* 803C0400 003BD360 4E 80 00 20 */ blr + +.global EXIDma +EXIDma: +/* 803C0404 003BD364 7C 08 02 A6 */ mflr r0 +/* 803C0408 003BD368 90 01 00 04 */ stw r0, 4(r1) +/* 803C040C 003BD36C 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803C0410 003BD370 BF 21 00 24 */ stmw r25, 0x24(r1) +/* 803C0414 003BD374 3B 63 00 00 */ addi r27, r3, 0 +/* 803C0418 003BD378 3B 84 00 00 */ addi r28, r4, 0 +/* 803C041C 003BD37C 3B A5 00 00 */ addi r29, r5, 0 +/* 803C0420 003BD380 3B C6 00 00 */ addi r30, r6, 0 +/* 803C0424 003BD384 3B 27 00 00 */ addi r25, r7, 0 +/* 803C0428 003BD388 54 64 30 32 */ slwi r4, r3, 6 +/* 803C042C 003BD38C 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0430 003BD390 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0434 003BD394 7F 40 22 14 */ add r26, r0, r4 +/* 803C0438 003BD398 4B FC 12 29 */ bl OSDisableInterrupts +/* 803C043C 003BD39C 7C 7F 1B 78 */ mr r31, r3 +/* 803C0440 003BD3A0 80 1A 00 0C */ lwz r0, 0xc(r26) +/* 803C0444 003BD3A4 54 00 07 BF */ clrlwi. r0, r0, 0x1e +/* 803C0448 003BD3A8 40 82 00 10 */ bne lbl_803C0458 +/* 803C044C 003BD3AC 80 1A 00 0C */ lwz r0, 0xc(r26) +/* 803C0450 003BD3B0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803C0454 003BD3B4 40 82 00 14 */ bne lbl_803C0468 +lbl_803C0458: +/* 803C0458 003BD3B8 7F E3 FB 78 */ mr r3, r31 +/* 803C045C 003BD3BC 4B FC 12 2D */ bl OSRestoreInterrupts +/* 803C0460 003BD3C0 38 60 00 00 */ li r3, 0 +/* 803C0464 003BD3C4 48 00 00 78 */ b lbl_803C04DC +lbl_803C0468: +/* 803C0468 003BD3C8 93 3A 00 04 */ stw r25, 4(r26) +/* 803C046C 003BD3CC 80 1A 00 04 */ lwz r0, 4(r26) +/* 803C0470 003BD3D0 28 00 00 00 */ cmplwi r0, 0 +/* 803C0474 003BD3D4 41 82 00 28 */ beq lbl_803C049C +/* 803C0478 003BD3D8 38 7B 00 00 */ addi r3, r27, 0 +/* 803C047C 003BD3DC 38 80 00 00 */ li r4, 0 +/* 803C0480 003BD3E0 38 A0 00 01 */ li r5, 1 +/* 803C0484 003BD3E4 38 C0 00 00 */ li r6, 0 +/* 803C0488 003BD3E8 48 00 02 A1 */ bl EXIClearInterrupts +/* 803C048C 003BD3EC 3C 60 00 20 */ lis r3, 0x20 +/* 803C0490 003BD3F0 1C 1B 00 03 */ mulli r0, r27, 3 +/* 803C0494 003BD3F4 7C 63 04 30 */ srw r3, r3, r0 +/* 803C0498 003BD3F8 4B FC 16 19 */ bl __OSUnmaskInterrupts +lbl_803C049C: +/* 803C049C 003BD3FC 80 1A 00 0C */ lwz r0, 0xc(r26) +/* 803C04A0 003BD400 60 00 00 01 */ ori r0, r0, 1 +/* 803C04A4 003BD404 90 1A 00 0C */ stw r0, 0xc(r26) +/* 803C04A8 003BD408 57 84 01 B4 */ rlwinm r4, r28, 0, 6, 0x1a +/* 803C04AC 003BD40C 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C04B0 003BD410 38 03 68 00 */ addi r0, r3, 0xCC006800@l +/* 803C04B4 003BD414 1C 7B 00 14 */ mulli r3, r27, 0x14 +/* 803C04B8 003BD418 7C 60 1A 14 */ add r3, r0, r3 +/* 803C04BC 003BD41C 90 83 00 04 */ stw r4, 4(r3) +/* 803C04C0 003BD420 93 A3 00 08 */ stw r29, 8(r3) +/* 803C04C4 003BD424 57 C0 10 3A */ slwi r0, r30, 2 +/* 803C04C8 003BD428 60 00 00 03 */ ori r0, r0, 3 +/* 803C04CC 003BD42C 90 03 00 0C */ stw r0, 0xc(r3) +/* 803C04D0 003BD430 7F E3 FB 78 */ mr r3, r31 +/* 803C04D4 003BD434 4B FC 11 B5 */ bl OSRestoreInterrupts +/* 803C04D8 003BD438 38 60 00 01 */ li r3, 1 +lbl_803C04DC: +/* 803C04DC 003BD43C 80 01 00 44 */ lwz r0, 0x44(r1) +/* 803C04E0 003BD440 BB 21 00 24 */ lmw r25, 0x24(r1) +/* 803C04E4 003BD444 38 21 00 40 */ addi r1, r1, 0x40 +/* 803C04E8 003BD448 7C 08 03 A6 */ mtlr r0 +/* 803C04EC 003BD44C 4E 80 00 20 */ blr + +.global sub_803c04f0 +sub_803c04f0: +/* 803C04F0 003BD450 7C 08 02 A6 */ mflr r0 +/* 803C04F4 003BD454 90 01 00 04 */ stw r0, 4(r1) +/* 803C04F8 003BD458 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803C04FC 003BD45C BF 61 00 1C */ stmw r27, 0x1c(r1) +/* 803C0500 003BD460 54 65 30 32 */ slwi r5, r3, 6 +/* 803C0504 003BD464 3C 80 80 57 */ lis r4, lbl_80569E98@ha +/* 803C0508 003BD468 38 04 9E 98 */ addi r0, r4, lbl_80569E98@l +/* 803C050C 003BD46C 7F E0 2A 14 */ add r31, r0, r5 +/* 803C0510 003BD470 3B 80 00 00 */ li r28, 0 +/* 803C0514 003BD474 1F C3 00 14 */ mulli r30, r3, 0x14 +/* 803C0518 003BD478 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C051C 003BD47C 3B A3 68 00 */ addi r29, r3, 0xCC006800@l +/* 803C0520 003BD480 7F BD F2 14 */ add r29, r29, r30 +/* 803C0524 003BD484 48 00 01 E0 */ b lbl_803C0704 +lbl_803C0528: +/* 803C0528 003BD488 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 803C052C 003BD48C 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803C0530 003BD490 40 82 01 D4 */ bne lbl_803C0704 +/* 803C0534 003BD494 4B FC 11 2D */ bl OSDisableInterrupts +/* 803C0538 003BD498 7C 7B 1B 78 */ mr r27, r3 +/* 803C053C 003BD49C 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0540 003BD4A0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803C0544 003BD4A4 41 82 01 B4 */ beq lbl_803C06F8 +/* 803C0548 003BD4A8 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C054C 003BD4AC 54 00 07 BF */ clrlwi. r0, r0, 0x1e +/* 803C0550 003BD4B0 41 82 01 34 */ beq lbl_803C0684 +/* 803C0554 003BD4B4 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0558 003BD4B8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 803C055C 003BD4BC 41 82 01 1C */ beq lbl_803C0678 +/* 803C0560 003BD4C0 80 7F 00 10 */ lwz r3, 0x10(r31) +/* 803C0564 003BD4C4 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0568 003BD4C8 41 82 01 10 */ beq lbl_803C0678 +/* 803C056C 003BD4CC 80 BF 00 14 */ lwz r5, 0x14(r31) +/* 803C0570 003BD4D0 3C 80 CC 00 */ lis r4, 0xCC006800@ha +/* 803C0574 003BD4D4 38 04 68 00 */ addi r0, r4, 0xCC006800@l +/* 803C0578 003BD4D8 7C 80 F2 14 */ add r4, r0, r30 +/* 803C057C 003BD4DC 80 04 00 10 */ lwz r0, 0x10(r4) +/* 803C0580 003BD4E0 38 80 00 00 */ li r4, 0 +/* 803C0584 003BD4E4 40 81 00 F4 */ ble lbl_803C0678 +/* 803C0588 003BD4E8 38 E3 FF F8 */ addi r7, r3, -8 +/* 803C058C 003BD4EC 2C 03 00 08 */ cmpwi r3, 8 +/* 803C0590 003BD4F0 40 81 00 BC */ ble lbl_803C064C +/* 803C0594 003BD4F4 38 C7 00 07 */ addi r6, r7, 7 +/* 803C0598 003BD4F8 54 C6 E8 FE */ srwi r6, r6, 3 +/* 803C059C 003BD4FC 7C C9 03 A6 */ mtctr r6 +/* 803C05A0 003BD500 2C 07 00 00 */ cmpwi r7, 0 +/* 803C05A4 003BD504 40 81 00 A8 */ ble lbl_803C064C +lbl_803C05A8: +/* 803C05A8 003BD508 20 C4 00 03 */ subfic r6, r4, 3 +/* 803C05AC 003BD50C 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C05B0 003BD510 7C 06 34 30 */ srw r6, r0, r6 +/* 803C05B4 003BD514 98 C5 00 00 */ stb r6, 0(r5) +/* 803C05B8 003BD518 38 C4 00 01 */ addi r6, r4, 1 +/* 803C05BC 003BD51C 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C05C0 003BD520 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C05C4 003BD524 7C 06 34 30 */ srw r6, r0, r6 +/* 803C05C8 003BD528 98 C5 00 01 */ stb r6, 1(r5) +/* 803C05CC 003BD52C 38 C4 00 02 */ addi r6, r4, 2 +/* 803C05D0 003BD530 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C05D4 003BD534 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C05D8 003BD538 7C 06 34 30 */ srw r6, r0, r6 +/* 803C05DC 003BD53C 98 C5 00 02 */ stb r6, 2(r5) +/* 803C05E0 003BD540 7C C4 00 D0 */ neg r6, r4 +/* 803C05E4 003BD544 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C05E8 003BD548 7C 06 34 30 */ srw r6, r0, r6 +/* 803C05EC 003BD54C 98 C5 00 03 */ stb r6, 3(r5) +/* 803C05F0 003BD550 38 C4 00 04 */ addi r6, r4, 4 +/* 803C05F4 003BD554 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C05F8 003BD558 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C05FC 003BD55C 7C 06 34 30 */ srw r6, r0, r6 +/* 803C0600 003BD560 98 C5 00 04 */ stb r6, 4(r5) +/* 803C0604 003BD564 38 C4 00 05 */ addi r6, r4, 5 +/* 803C0608 003BD568 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C060C 003BD56C 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C0610 003BD570 7C 06 34 30 */ srw r6, r0, r6 +/* 803C0614 003BD574 98 C5 00 05 */ stb r6, 5(r5) +/* 803C0618 003BD578 38 C4 00 06 */ addi r6, r4, 6 +/* 803C061C 003BD57C 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C0620 003BD580 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C0624 003BD584 7C 06 34 30 */ srw r6, r0, r6 +/* 803C0628 003BD588 98 C5 00 06 */ stb r6, 6(r5) +/* 803C062C 003BD58C 38 C4 00 07 */ addi r6, r4, 7 +/* 803C0630 003BD590 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C0634 003BD594 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C0638 003BD598 7C 06 34 30 */ srw r6, r0, r6 +/* 803C063C 003BD59C 98 C5 00 07 */ stb r6, 7(r5) +/* 803C0640 003BD5A0 38 A5 00 08 */ addi r5, r5, 8 +/* 803C0644 003BD5A4 38 84 00 08 */ addi r4, r4, 8 +/* 803C0648 003BD5A8 42 00 FF 60 */ bdnz lbl_803C05A8 +lbl_803C064C: +/* 803C064C 003BD5AC 7C C4 18 50 */ subf r6, r4, r3 +/* 803C0650 003BD5B0 7C C9 03 A6 */ mtctr r6 +/* 803C0654 003BD5B4 7C 04 18 00 */ cmpw r4, r3 +/* 803C0658 003BD5B8 40 80 00 20 */ bge lbl_803C0678 +lbl_803C065C: +/* 803C065C 003BD5BC 20 64 00 03 */ subfic r3, r4, 3 +/* 803C0660 003BD5C0 54 63 18 38 */ slwi r3, r3, 3 +/* 803C0664 003BD5C4 7C 03 1C 30 */ srw r3, r0, r3 +/* 803C0668 003BD5C8 98 65 00 00 */ stb r3, 0(r5) +/* 803C066C 003BD5CC 38 A5 00 01 */ addi r5, r5, 1 +/* 803C0670 003BD5D0 38 84 00 01 */ addi r4, r4, 1 +/* 803C0674 003BD5D4 42 00 FF E8 */ bdnz lbl_803C065C +lbl_803C0678: +/* 803C0678 003BD5D8 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C067C 003BD5DC 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d +/* 803C0680 003BD5E0 90 1F 00 0C */ stw r0, 0xc(r31) +lbl_803C0684: +/* 803C0684 003BD5E4 4B FB D9 A1 */ bl __OSGetDIConfig +/* 803C0688 003BD5E8 28 03 00 FF */ cmplwi r3, 0xff +/* 803C068C 003BD5EC 40 82 00 68 */ bne lbl_803C06F4 +/* 803C0690 003BD5F0 80 1F 00 10 */ lwz r0, 0x10(r31) +/* 803C0694 003BD5F4 2C 00 00 04 */ cmpwi r0, 4 +/* 803C0698 003BD5F8 40 82 00 5C */ bne lbl_803C06F4 +/* 803C069C 003BD5FC 80 1D 00 00 */ lwz r0, 0(r29) +/* 803C06A0 003BD600 54 00 06 77 */ rlwinm. r0, r0, 0, 0x19, 0x1b +/* 803C06A4 003BD604 40 82 00 50 */ bne lbl_803C06F4 +/* 803C06A8 003BD608 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C06AC 003BD60C 38 03 68 00 */ addi r0, r3, 0xCC006800@l +/* 803C06B0 003BD610 7C 80 F2 14 */ add r4, r0, r30 +/* 803C06B4 003BD614 84 64 00 10 */ lwzu r3, 0x10(r4) +/* 803C06B8 003BD618 3C 03 FE FF */ addis r0, r3, 0xfeff +/* 803C06BC 003BD61C 28 00 00 00 */ cmplwi r0, 0 +/* 803C06C0 003BD620 41 82 00 24 */ beq lbl_803C06E4 +/* 803C06C4 003BD624 80 64 00 00 */ lwz r3, 0(r4) +/* 803C06C8 003BD628 3C 03 FA F9 */ addis r0, r3, 0xfaf9 +/* 803C06CC 003BD62C 28 00 00 00 */ cmplwi r0, 0 +/* 803C06D0 003BD630 41 82 00 14 */ beq lbl_803C06E4 +/* 803C06D4 003BD634 80 64 00 00 */ lwz r3, 0(r4) +/* 803C06D8 003BD638 3C 03 FB DE */ addis r0, r3, 0xfbde +/* 803C06DC 003BD63C 28 00 00 01 */ cmplwi r0, 1 +/* 803C06E0 003BD640 40 82 00 14 */ bne lbl_803C06F4 +lbl_803C06E4: +/* 803C06E4 003BD644 3C 60 80 00 */ lis r3, 0x800030E6@ha +/* 803C06E8 003BD648 A0 03 30 E6 */ lhz r0, 0x800030E6@l(r3) +/* 803C06EC 003BD64C 28 00 82 00 */ cmplwi r0, 0x8200 +/* 803C06F0 003BD650 40 82 00 08 */ bne lbl_803C06F8 +lbl_803C06F4: +/* 803C06F4 003BD654 3B 80 00 01 */ li r28, 1 +lbl_803C06F8: +/* 803C06F8 003BD658 7F 63 DB 78 */ mr r3, r27 +/* 803C06FC 003BD65C 4B FC 0F 8D */ bl OSRestoreInterrupts +/* 803C0700 003BD660 48 00 00 10 */ b lbl_803C0710 +lbl_803C0704: +/* 803C0704 003BD664 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0708 003BD668 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803C070C 003BD66C 40 82 FE 1C */ bne lbl_803C0528 +lbl_803C0710: +/* 803C0710 003BD670 7F 83 E3 78 */ mr r3, r28 +/* 803C0714 003BD674 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803C0718 003BD678 BB 61 00 1C */ lmw r27, 0x1c(r1) +/* 803C071C 003BD67C 38 21 00 30 */ addi r1, r1, 0x30 +/* 803C0720 003BD680 7C 08 03 A6 */ mtlr r0 +/* 803C0724 003BD684 4E 80 00 20 */ blr + +.global EXIClearInterrupts +EXIClearInterrupts: +/* 803C0728 003BD688 1C 03 00 14 */ mulli r0, r3, 0x14 +/* 803C072C 003BD68C 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C0730 003BD690 38 E3 68 00 */ addi r7, r3, 0xCC006800@l +/* 803C0734 003BD694 7C E7 02 14 */ add r7, r7, r0 +/* 803C0738 003BD698 80 07 00 00 */ lwz r0, 0(r7) +/* 803C073C 003BD69C 7C 03 03 78 */ mr r3, r0 +/* 803C0740 003BD6A0 70 00 07 F5 */ andi. r0, r0, 0x7f5 +/* 803C0744 003BD6A4 2C 04 00 00 */ cmpwi r4, 0 +/* 803C0748 003BD6A8 41 82 00 08 */ beq lbl_803C0750 +/* 803C074C 003BD6AC 60 00 00 02 */ ori r0, r0, 2 +lbl_803C0750: +/* 803C0750 003BD6B0 2C 05 00 00 */ cmpwi r5, 0 +/* 803C0754 003BD6B4 41 82 00 08 */ beq lbl_803C075C +/* 803C0758 003BD6B8 60 00 00 08 */ ori r0, r0, 8 +lbl_803C075C: +/* 803C075C 003BD6BC 2C 06 00 00 */ cmpwi r6, 0 +/* 803C0760 003BD6C0 41 82 00 08 */ beq lbl_803C0768 +/* 803C0764 003BD6C4 60 00 08 00 */ ori r0, r0, 0x800 +lbl_803C0768: +/* 803C0768 003BD6C8 90 07 00 00 */ stw r0, 0(r7) +/* 803C076C 003BD6CC 4E 80 00 20 */ blr + +.global EXISetExiCallback +EXISetExiCallback: +/* 803C0770 003BD6D0 7C 08 02 A6 */ mflr r0 +/* 803C0774 003BD6D4 90 01 00 04 */ stw r0, 4(r1) +/* 803C0778 003BD6D8 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803C077C 003BD6DC BF 41 00 10 */ stmw r26, 0x10(r1) +/* 803C0780 003BD6E0 3B 43 00 00 */ addi r26, r3, 0 +/* 803C0784 003BD6E4 3B 64 00 00 */ addi r27, r4, 0 +/* 803C0788 003BD6E8 54 60 30 32 */ slwi r0, r3, 6 +/* 803C078C 003BD6EC 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0790 003BD6F0 3B E3 9E 98 */ addi r31, r3, lbl_80569E98@l +/* 803C0794 003BD6F4 7F DF 02 14 */ add r30, r31, r0 +/* 803C0798 003BD6F8 4B FC 0E C9 */ bl OSDisableInterrupts +/* 803C079C 003BD6FC 7C 7C 1B 78 */ mr r28, r3 +/* 803C07A0 003BD700 83 BE 00 00 */ lwz r29, 0(r30) +/* 803C07A4 003BD704 93 7E 00 00 */ stw r27, 0(r30) +/* 803C07A8 003BD708 2C 1A 00 02 */ cmpwi r26, 2 +/* 803C07AC 003BD70C 41 82 00 14 */ beq lbl_803C07C0 +/* 803C07B0 003BD710 38 7A 00 00 */ addi r3, r26, 0 +/* 803C07B4 003BD714 38 9E 00 00 */ addi r4, r30, 0 +/* 803C07B8 003BD718 4B FF F8 5D */ bl SetExiInterruptMask +/* 803C07BC 003BD71C 48 00 00 10 */ b lbl_803C07CC +lbl_803C07C0: +/* 803C07C0 003BD720 38 60 00 00 */ li r3, 0 +/* 803C07C4 003BD724 38 9F 00 00 */ addi r4, r31, 0 +/* 803C07C8 003BD728 4B FF F8 4D */ bl SetExiInterruptMask +lbl_803C07CC: +/* 803C07CC 003BD72C 7F 83 E3 78 */ mr r3, r28 +/* 803C07D0 003BD730 4B FC 0E B9 */ bl OSRestoreInterrupts +/* 803C07D4 003BD734 7F A3 EB 78 */ mr r3, r29 +/* 803C07D8 003BD738 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803C07DC 003BD73C BB 41 00 10 */ lmw r26, 0x10(r1) +/* 803C07E0 003BD740 38 21 00 28 */ addi r1, r1, 0x28 +/* 803C07E4 003BD744 7C 08 03 A6 */ mtlr r0 +/* 803C07E8 003BD748 4E 80 00 20 */ blr + +.global __EXIProbe +__EXIProbe: +/* 803C07EC 003BD74C 7C 08 02 A6 */ mflr r0 +/* 803C07F0 003BD750 90 01 00 04 */ stw r0, 4(r1) +/* 803C07F4 003BD754 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803C07F8 003BD758 BF 61 00 14 */ stmw r27, 0x14(r1) +/* 803C07FC 003BD75C 3B 83 00 00 */ addi r28, r3, 0 +/* 803C0800 003BD760 54 64 30 32 */ slwi r4, r3, 6 +/* 803C0804 003BD764 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0808 003BD768 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C080C 003BD76C 7F E0 22 14 */ add r31, r0, r4 +/* 803C0810 003BD770 2C 1C 00 02 */ cmpwi r28, 2 +/* 803C0814 003BD774 40 82 00 0C */ bne lbl_803C0820 +/* 803C0818 003BD778 38 60 00 01 */ li r3, 1 +/* 803C081C 003BD77C 48 00 01 30 */ b lbl_803C094C +lbl_803C0820: +/* 803C0820 003BD780 3B A0 00 01 */ li r29, 1 +/* 803C0824 003BD784 4B FC 0E 3D */ bl OSDisableInterrupts +/* 803C0828 003BD788 3B C3 00 00 */ addi r30, r3, 0 +/* 803C082C 003BD78C 1C 1C 00 14 */ mulli r0, r28, 0x14 +/* 803C0830 003BD790 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C0834 003BD794 38 63 68 00 */ addi r3, r3, 0xCC006800@l +/* 803C0838 003BD798 7C 63 02 14 */ add r3, r3, r0 +/* 803C083C 003BD79C 80 A3 00 00 */ lwz r5, 0(r3) +/* 803C0840 003BD7A0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0844 003BD7A4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803C0848 003BD7A8 40 82 00 CC */ bne lbl_803C0914 +/* 803C084C 003BD7AC 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14 +/* 803C0850 003BD7B0 41 82 00 2C */ beq lbl_803C087C +/* 803C0854 003BD7B4 80 03 00 00 */ lwz r0, 0(r3) +/* 803C0858 003BD7B8 70 00 07 F5 */ andi. r0, r0, 0x7f5 +/* 803C085C 003BD7BC 60 00 08 00 */ ori r0, r0, 0x800 +/* 803C0860 003BD7C0 90 03 00 00 */ stw r0, 0(r3) +/* 803C0864 003BD7C4 38 80 00 00 */ li r4, 0 +/* 803C0868 003BD7C8 90 9F 00 20 */ stw r4, 0x20(r31) +/* 803C086C 003BD7CC 57 80 10 3A */ slwi r0, r28, 2 +/* 803C0870 003BD7D0 3C 60 80 00 */ lis r3, 0x800030C0@ha +/* 803C0874 003BD7D4 38 63 30 C0 */ addi r3, r3, 0x800030C0@l +/* 803C0878 003BD7D8 7C 83 01 2E */ stwx r4, r3, r0 +lbl_803C087C: +/* 803C087C 003BD7DC 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13 +/* 803C0880 003BD7E0 41 82 00 74 */ beq lbl_803C08F4 +/* 803C0884 003BD7E4 3F E0 80 00 */ lis r31, 0x800000F8@ha +/* 803C0888 003BD7E8 80 1F 00 F8 */ lwz r0, 0x800000F8@l(r31) +/* 803C088C 003BD7EC 54 00 F0 BE */ srwi r0, r0, 2 +/* 803C0890 003BD7F0 3C 60 10 62 */ lis r3, 0x10624DD3@ha +/* 803C0894 003BD7F4 38 63 4D D3 */ addi r3, r3, 0x10624DD3@l +/* 803C0898 003BD7F8 7C 03 00 16 */ mulhwu r0, r3, r0 +/* 803C089C 003BD7FC 54 1B D1 BE */ srwi r27, r0, 6 +/* 803C08A0 003BD800 4B FC 4B 09 */ bl OSGetTime +/* 803C08A4 003BD804 38 A0 00 00 */ li r5, 0 +/* 803C08A8 003BD808 38 DB 00 00 */ addi r6, r27, 0 +/* 803C08AC 003BD80C 4B FC 93 21 */ bl __div2i +/* 803C08B0 003BD810 38 A0 00 00 */ li r5, 0 +/* 803C08B4 003BD814 38 C0 00 64 */ li r6, 0x64 +/* 803C08B8 003BD818 4B FC 93 15 */ bl __div2i +/* 803C08BC 003BD81C 38 84 00 01 */ addi r4, r4, 1 +/* 803C08C0 003BD820 57 80 10 3A */ slwi r0, r28, 2 +/* 803C08C4 003BD824 38 7F 30 C0 */ addi r3, r31, 0x30c0 +/* 803C08C8 003BD828 7C 63 02 14 */ add r3, r3, r0 +/* 803C08CC 003BD82C 80 03 00 00 */ lwz r0, 0(r3) +/* 803C08D0 003BD830 2C 00 00 00 */ cmpwi r0, 0 +/* 803C08D4 003BD834 40 82 00 08 */ bne lbl_803C08DC +/* 803C08D8 003BD838 90 83 00 00 */ stw r4, 0(r3) +lbl_803C08DC: +/* 803C08DC 003BD83C 80 03 00 00 */ lwz r0, 0(r3) +/* 803C08E0 003BD840 7C 00 20 50 */ subf r0, r0, r4 +/* 803C08E4 003BD844 2C 00 00 03 */ cmpwi r0, 3 +/* 803C08E8 003BD848 40 80 00 58 */ bge lbl_803C0940 +/* 803C08EC 003BD84C 3B A0 00 00 */ li r29, 0 +/* 803C08F0 003BD850 48 00 00 50 */ b lbl_803C0940 +lbl_803C08F4: +/* 803C08F4 003BD854 38 80 00 00 */ li r4, 0 +/* 803C08F8 003BD858 90 9F 00 20 */ stw r4, 0x20(r31) +/* 803C08FC 003BD85C 57 80 10 3A */ slwi r0, r28, 2 +/* 803C0900 003BD860 3C 60 80 00 */ lis r3, 0x800030C0@ha +/* 803C0904 003BD864 38 63 30 C0 */ addi r3, r3, 0x800030C0@l +/* 803C0908 003BD868 7C 83 01 2E */ stwx r4, r3, r0 +/* 803C090C 003BD86C 3B A0 00 00 */ li r29, 0 +/* 803C0910 003BD870 48 00 00 30 */ b lbl_803C0940 +lbl_803C0914: +/* 803C0914 003BD874 54 A0 04 E7 */ rlwinm. r0, r5, 0, 0x13, 0x13 +/* 803C0918 003BD878 41 82 00 0C */ beq lbl_803C0924 +/* 803C091C 003BD87C 54 A0 05 29 */ rlwinm. r0, r5, 0, 0x14, 0x14 +/* 803C0920 003BD880 41 82 00 20 */ beq lbl_803C0940 +lbl_803C0924: +/* 803C0924 003BD884 38 80 00 00 */ li r4, 0 +/* 803C0928 003BD888 90 9F 00 20 */ stw r4, 0x20(r31) +/* 803C092C 003BD88C 57 80 10 3A */ slwi r0, r28, 2 +/* 803C0930 003BD890 3C 60 80 00 */ lis r3, 0x800030C0@ha +/* 803C0934 003BD894 38 63 30 C0 */ addi r3, r3, 0x800030C0@l +/* 803C0938 003BD898 7C 83 01 2E */ stwx r4, r3, r0 +/* 803C093C 003BD89C 3B A0 00 00 */ li r29, 0 +lbl_803C0940: +/* 803C0940 003BD8A0 7F C3 F3 78 */ mr r3, r30 +/* 803C0944 003BD8A4 4B FC 0D 45 */ bl OSRestoreInterrupts +/* 803C0948 003BD8A8 7F A3 EB 78 */ mr r3, r29 +lbl_803C094C: +/* 803C094C 003BD8AC 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803C0950 003BD8B0 BB 61 00 14 */ lmw r27, 0x14(r1) +/* 803C0954 003BD8B4 38 21 00 28 */ addi r1, r1, 0x28 +/* 803C0958 003BD8B8 7C 08 03 A6 */ mtlr r0 +/* 803C095C 003BD8BC 4E 80 00 20 */ blr + +.global EXIProbe +EXIProbe: +/* 803C0960 003BD8C0 7C 08 02 A6 */ mflr r0 +/* 803C0964 003BD8C4 90 01 00 04 */ stw r0, 4(r1) +/* 803C0968 003BD8C8 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803C096C 003BD8CC 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803C0970 003BD8D0 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803C0974 003BD8D4 3B C3 00 00 */ addi r30, r3, 0 +/* 803C0978 003BD8D8 54 64 30 32 */ slwi r4, r3, 6 +/* 803C097C 003BD8DC 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0980 003BD8E0 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0984 003BD8E4 7F E0 22 14 */ add r31, r0, r4 +/* 803C0988 003BD8E8 38 7E 00 00 */ addi r3, r30, 0 +/* 803C098C 003BD8EC 4B FF FE 61 */ bl __EXIProbe +/* 803C0990 003BD8F0 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0994 003BD8F4 41 82 00 34 */ beq lbl_803C09C8 +/* 803C0998 003BD8F8 80 1F 00 20 */ lwz r0, 0x20(r31) +/* 803C099C 003BD8FC 2C 00 00 00 */ cmpwi r0, 0 +/* 803C09A0 003BD900 40 82 00 28 */ bne lbl_803C09C8 +/* 803C09A4 003BD904 38 7E 00 00 */ addi r3, r30, 0 +/* 803C09A8 003BD908 38 80 00 00 */ li r4, 0 +/* 803C09AC 003BD90C 38 A1 00 0C */ addi r5, r1, 0xc +/* 803C09B0 003BD910 48 00 0B C5 */ bl EXIGetID +/* 803C09B4 003BD914 2C 03 00 00 */ cmpwi r3, 0 +/* 803C09B8 003BD918 41 82 00 0C */ beq lbl_803C09C4 +/* 803C09BC 003BD91C 38 60 00 01 */ li r3, 1 +/* 803C09C0 003BD920 48 00 00 08 */ b lbl_803C09C8 +lbl_803C09C4: +/* 803C09C4 003BD924 38 60 00 00 */ li r3, 0 +lbl_803C09C8: +/* 803C09C8 003BD928 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803C09CC 003BD92C 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803C09D0 003BD930 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803C09D4 003BD934 38 21 00 18 */ addi r1, r1, 0x18 +/* 803C09D8 003BD938 7C 08 03 A6 */ mtlr r0 +/* 803C09DC 003BD93C 4E 80 00 20 */ blr + +.global EXIProbeEx +EXIProbeEx: +/* 803C09E0 003BD940 7C 08 02 A6 */ mflr r0 +/* 803C09E4 003BD944 90 01 00 04 */ stw r0, 4(r1) +/* 803C09E8 003BD948 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803C09EC 003BD94C 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803C09F0 003BD950 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803C09F4 003BD954 3B C3 00 00 */ addi r30, r3, 0 +/* 803C09F8 003BD958 54 64 30 32 */ slwi r4, r3, 6 +/* 803C09FC 003BD95C 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0A00 003BD960 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0A04 003BD964 7F E0 22 14 */ add r31, r0, r4 +/* 803C0A08 003BD968 38 7E 00 00 */ addi r3, r30, 0 +/* 803C0A0C 003BD96C 4B FF FD E1 */ bl __EXIProbe +/* 803C0A10 003BD970 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0A14 003BD974 41 82 00 34 */ beq lbl_803C0A48 +/* 803C0A18 003BD978 80 1F 00 20 */ lwz r0, 0x20(r31) +/* 803C0A1C 003BD97C 2C 00 00 00 */ cmpwi r0, 0 +/* 803C0A20 003BD980 40 82 00 28 */ bne lbl_803C0A48 +/* 803C0A24 003BD984 38 7E 00 00 */ addi r3, r30, 0 +/* 803C0A28 003BD988 38 80 00 00 */ li r4, 0 +/* 803C0A2C 003BD98C 38 A1 00 0C */ addi r5, r1, 0xc +/* 803C0A30 003BD990 48 00 0B 45 */ bl EXIGetID +/* 803C0A34 003BD994 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0A38 003BD998 41 82 00 0C */ beq lbl_803C0A44 +/* 803C0A3C 003BD99C 38 60 00 01 */ li r3, 1 +/* 803C0A40 003BD9A0 48 00 00 08 */ b lbl_803C0A48 +lbl_803C0A44: +/* 803C0A44 003BD9A4 38 60 00 00 */ li r3, 0 +lbl_803C0A48: +/* 803C0A48 003BD9A8 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0A4C 003BD9AC 41 82 00 0C */ beq lbl_803C0A58 +/* 803C0A50 003BD9B0 38 60 00 01 */ li r3, 1 +/* 803C0A54 003BD9B4 48 00 00 28 */ b lbl_803C0A7C +lbl_803C0A58: +/* 803C0A58 003BD9B8 57 C0 10 3A */ slwi r0, r30, 2 +/* 803C0A5C 003BD9BC 3C 60 80 00 */ lis r3, 0x800030C0@ha +/* 803C0A60 003BD9C0 38 63 30 C0 */ addi r3, r3, 0x800030C0@l +/* 803C0A64 003BD9C4 7C 03 00 2E */ lwzx r0, r3, r0 +/* 803C0A68 003BD9C8 2C 00 00 00 */ cmpwi r0, 0 +/* 803C0A6C 003BD9CC 41 82 00 0C */ beq lbl_803C0A78 +/* 803C0A70 003BD9D0 38 60 00 00 */ li r3, 0 +/* 803C0A74 003BD9D4 48 00 00 08 */ b lbl_803C0A7C +lbl_803C0A78: +/* 803C0A78 003BD9D8 38 60 FF FF */ li r3, -1 +lbl_803C0A7C: +/* 803C0A7C 003BD9DC 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803C0A80 003BD9E0 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803C0A84 003BD9E4 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803C0A88 003BD9E8 38 21 00 18 */ addi r1, r1, 0x18 +/* 803C0A8C 003BD9EC 7C 08 03 A6 */ mtlr r0 +/* 803C0A90 003BD9F0 4E 80 00 20 */ blr + +.global EXIAttach +EXIAttach: +/* 803C0A94 003BD9F4 7C 08 02 A6 */ mflr r0 +/* 803C0A98 003BD9F8 90 01 00 04 */ stw r0, 4(r1) +/* 803C0A9C 003BD9FC 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803C0AA0 003BDA00 BF 61 00 2C */ stmw r27, 0x2c(r1) +/* 803C0AA4 003BDA04 3B 63 00 00 */ addi r27, r3, 0 +/* 803C0AA8 003BDA08 3B 84 00 00 */ addi r28, r4, 0 +/* 803C0AAC 003BDA0C 54 64 30 32 */ slwi r4, r3, 6 +/* 803C0AB0 003BDA10 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0AB4 003BDA14 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0AB8 003BDA18 7F C0 22 14 */ add r30, r0, r4 +/* 803C0ABC 003BDA1C 38 7B 00 00 */ addi r3, r27, 0 +/* 803C0AC0 003BDA20 4B FF FD 2D */ bl __EXIProbe +/* 803C0AC4 003BDA24 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0AC8 003BDA28 41 82 00 20 */ beq lbl_803C0AE8 +/* 803C0ACC 003BDA2C 80 1E 00 20 */ lwz r0, 0x20(r30) +/* 803C0AD0 003BDA30 2C 00 00 00 */ cmpwi r0, 0 +/* 803C0AD4 003BDA34 40 82 00 14 */ bne lbl_803C0AE8 +/* 803C0AD8 003BDA38 38 7B 00 00 */ addi r3, r27, 0 +/* 803C0ADC 003BDA3C 38 80 00 00 */ li r4, 0 +/* 803C0AE0 003BDA40 38 A1 00 1C */ addi r5, r1, 0x1c +/* 803C0AE4 003BDA44 48 00 0A 91 */ bl EXIGetID +lbl_803C0AE8: +/* 803C0AE8 003BDA48 4B FC 0B 79 */ bl OSDisableInterrupts +/* 803C0AEC 003BDA4C 7C 7D 1B 78 */ mr r29, r3 +/* 803C0AF0 003BDA50 80 1E 00 20 */ lwz r0, 0x20(r30) +/* 803C0AF4 003BDA54 2C 00 00 00 */ cmpwi r0, 0 +/* 803C0AF8 003BDA58 40 82 00 14 */ bne lbl_803C0B0C +/* 803C0AFC 003BDA5C 7F A3 EB 78 */ mr r3, r29 +/* 803C0B00 003BDA60 4B FC 0B 89 */ bl OSRestoreInterrupts +/* 803C0B04 003BDA64 38 60 00 00 */ li r3, 0 +/* 803C0B08 003BDA68 48 00 00 84 */ b lbl_803C0B8C +lbl_803C0B0C: +/* 803C0B0C 003BDA6C 4B FC 0B 55 */ bl OSDisableInterrupts +/* 803C0B10 003BDA70 7C 7F 1B 78 */ mr r31, r3 +/* 803C0B14 003BDA74 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 803C0B18 003BDA78 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803C0B1C 003BDA7C 40 82 00 14 */ bne lbl_803C0B30 +/* 803C0B20 003BDA80 7F 63 DB 78 */ mr r3, r27 +/* 803C0B24 003BDA84 4B FF FC C9 */ bl __EXIProbe +/* 803C0B28 003BDA88 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0B2C 003BDA8C 40 82 00 14 */ bne lbl_803C0B40 +lbl_803C0B30: +/* 803C0B30 003BDA90 7F E3 FB 78 */ mr r3, r31 +/* 803C0B34 003BDA94 4B FC 0B 55 */ bl OSRestoreInterrupts +/* 803C0B38 003BDA98 3B E0 00 00 */ li r31, 0 +/* 803C0B3C 003BDA9C 48 00 00 44 */ b lbl_803C0B80 +lbl_803C0B40: +/* 803C0B40 003BDAA0 38 7B 00 00 */ addi r3, r27, 0 +/* 803C0B44 003BDAA4 38 80 00 01 */ li r4, 1 +/* 803C0B48 003BDAA8 38 A0 00 00 */ li r5, 0 +/* 803C0B4C 003BDAAC 38 C0 00 00 */ li r6, 0 +/* 803C0B50 003BDAB0 4B FF FB D9 */ bl EXIClearInterrupts +/* 803C0B54 003BDAB4 93 9E 00 08 */ stw r28, 8(r30) +/* 803C0B58 003BDAB8 3C 60 00 10 */ lis r3, 0x10 +/* 803C0B5C 003BDABC 1C 1B 00 03 */ mulli r0, r27, 3 +/* 803C0B60 003BDAC0 7C 63 04 30 */ srw r3, r3, r0 +/* 803C0B64 003BDAC4 4B FC 0F 4D */ bl __OSUnmaskInterrupts +/* 803C0B68 003BDAC8 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 803C0B6C 003BDACC 60 00 00 08 */ ori r0, r0, 8 +/* 803C0B70 003BDAD0 90 1E 00 0C */ stw r0, 0xc(r30) +/* 803C0B74 003BDAD4 7F E3 FB 78 */ mr r3, r31 +/* 803C0B78 003BDAD8 4B FC 0B 11 */ bl OSRestoreInterrupts +/* 803C0B7C 003BDADC 3B E0 00 01 */ li r31, 1 +lbl_803C0B80: +/* 803C0B80 003BDAE0 7F A3 EB 78 */ mr r3, r29 +/* 803C0B84 003BDAE4 4B FC 0B 05 */ bl OSRestoreInterrupts +/* 803C0B88 003BDAE8 7F E3 FB 78 */ mr r3, r31 +lbl_803C0B8C: +/* 803C0B8C 003BDAEC 80 01 00 44 */ lwz r0, 0x44(r1) +/* 803C0B90 003BDAF0 BB 61 00 2C */ lmw r27, 0x2c(r1) +/* 803C0B94 003BDAF4 38 21 00 40 */ addi r1, r1, 0x40 +/* 803C0B98 003BDAF8 7C 08 03 A6 */ mtlr r0 +/* 803C0B9C 003BDAFC 4E 80 00 20 */ blr + +.global EXIDetach +EXIDetach: +/* 803C0BA0 003BDB00 7C 08 02 A6 */ mflr r0 +/* 803C0BA4 003BDB04 90 01 00 04 */ stw r0, 4(r1) +/* 803C0BA8 003BDB08 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803C0BAC 003BDB0C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803C0BB0 003BDB10 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803C0BB4 003BDB14 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803C0BB8 003BDB18 3B A3 00 00 */ addi r29, r3, 0 +/* 803C0BBC 003BDB1C 54 64 30 32 */ slwi r4, r3, 6 +/* 803C0BC0 003BDB20 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0BC4 003BDB24 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0BC8 003BDB28 7F E0 22 14 */ add r31, r0, r4 +/* 803C0BCC 003BDB2C 4B FC 0A 95 */ bl OSDisableInterrupts +/* 803C0BD0 003BDB30 7C 7E 1B 78 */ mr r30, r3 +/* 803C0BD4 003BDB34 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0BD8 003BDB38 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803C0BDC 003BDB3C 40 82 00 14 */ bne lbl_803C0BF0 +/* 803C0BE0 003BDB40 7F C3 F3 78 */ mr r3, r30 +/* 803C0BE4 003BDB44 4B FC 0A A5 */ bl OSRestoreInterrupts +/* 803C0BE8 003BDB48 38 60 00 01 */ li r3, 1 +/* 803C0BEC 003BDB4C 48 00 00 54 */ b lbl_803C0C40 +lbl_803C0BF0: +/* 803C0BF0 003BDB50 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0BF4 003BDB54 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C0BF8 003BDB58 41 82 00 20 */ beq lbl_803C0C18 +/* 803C0BFC 003BDB5C 80 1F 00 18 */ lwz r0, 0x18(r31) +/* 803C0C00 003BDB60 28 00 00 00 */ cmplwi r0, 0 +/* 803C0C04 003BDB64 40 82 00 14 */ bne lbl_803C0C18 +/* 803C0C08 003BDB68 7F C3 F3 78 */ mr r3, r30 +/* 803C0C0C 003BDB6C 4B FC 0A 7D */ bl OSRestoreInterrupts +/* 803C0C10 003BDB70 38 60 00 00 */ li r3, 0 +/* 803C0C14 003BDB74 48 00 00 2C */ b lbl_803C0C40 +lbl_803C0C18: +/* 803C0C18 003BDB78 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0C1C 003BDB7C 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 803C0C20 003BDB80 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803C0C24 003BDB84 3C 60 00 50 */ lis r3, 0x50 +/* 803C0C28 003BDB88 1C 1D 00 03 */ mulli r0, r29, 3 +/* 803C0C2C 003BDB8C 7C 63 04 30 */ srw r3, r3, r0 +/* 803C0C30 003BDB90 4B FC 0D F9 */ bl __OSMaskInterrupts +/* 803C0C34 003BDB94 7F C3 F3 78 */ mr r3, r30 +/* 803C0C38 003BDB98 4B FC 0A 51 */ bl OSRestoreInterrupts +/* 803C0C3C 003BDB9C 38 60 00 01 */ li r3, 1 +lbl_803C0C40: +/* 803C0C40 003BDBA0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803C0C44 003BDBA4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803C0C48 003BDBA8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803C0C4C 003BDBAC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803C0C50 003BDBB0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803C0C54 003BDBB4 7C 08 03 A6 */ mtlr r0 +/* 803C0C58 003BDBB8 4E 80 00 20 */ blr + +.global EXISelect +EXISelect: +/* 803C0C5C 003BDBBC 7C 08 02 A6 */ mflr r0 +/* 803C0C60 003BDBC0 90 01 00 04 */ stw r0, 4(r1) +/* 803C0C64 003BDBC4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803C0C68 003BDBC8 BF 61 00 1C */ stmw r27, 0x1c(r1) +/* 803C0C6C 003BDBCC 3B 63 00 00 */ addi r27, r3, 0 +/* 803C0C70 003BDBD0 3B 84 00 00 */ addi r28, r4, 0 +/* 803C0C74 003BDBD4 3B A5 00 00 */ addi r29, r5, 0 +/* 803C0C78 003BDBD8 54 64 30 32 */ slwi r4, r3, 6 +/* 803C0C7C 003BDBDC 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0C80 003BDBE0 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0C84 003BDBE4 7F E0 22 14 */ add r31, r0, r4 +/* 803C0C88 003BDBE8 4B FC 09 D9 */ bl OSDisableInterrupts +/* 803C0C8C 003BDBEC 7C 7E 1B 78 */ mr r30, r3 +/* 803C0C90 003BDBF0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0C94 003BDBF4 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803C0C98 003BDBF8 40 82 00 48 */ bne lbl_803C0CE0 +/* 803C0C9C 003BDBFC 2C 1B 00 02 */ cmpwi r27, 2 +/* 803C0CA0 003BDC00 41 82 00 50 */ beq lbl_803C0CF0 +/* 803C0CA4 003BDC04 28 1C 00 00 */ cmplwi r28, 0 +/* 803C0CA8 003BDC08 40 82 00 20 */ bne lbl_803C0CC8 +/* 803C0CAC 003BDC0C 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0CB0 003BDC10 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803C0CB4 003BDC14 40 82 00 14 */ bne lbl_803C0CC8 +/* 803C0CB8 003BDC18 7F 63 DB 78 */ mr r3, r27 +/* 803C0CBC 003BDC1C 4B FF FB 31 */ bl __EXIProbe +/* 803C0CC0 003BDC20 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0CC4 003BDC24 41 82 00 1C */ beq lbl_803C0CE0 +lbl_803C0CC8: +/* 803C0CC8 003BDC28 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0CCC 003BDC2C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C0CD0 003BDC30 41 82 00 10 */ beq lbl_803C0CE0 +/* 803C0CD4 003BDC34 80 1F 00 18 */ lwz r0, 0x18(r31) +/* 803C0CD8 003BDC38 7C 00 E0 40 */ cmplw r0, r28 +/* 803C0CDC 003BDC3C 41 82 00 14 */ beq lbl_803C0CF0 +lbl_803C0CE0: +/* 803C0CE0 003BDC40 7F C3 F3 78 */ mr r3, r30 +/* 803C0CE4 003BDC44 4B FC 09 A5 */ bl OSRestoreInterrupts +/* 803C0CE8 003BDC48 38 60 00 00 */ li r3, 0 +/* 803C0CEC 003BDC4C 48 00 00 88 */ b lbl_803C0D74 +lbl_803C0CF0: +/* 803C0CF0 003BDC50 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0CF4 003BDC54 60 00 00 04 */ ori r0, r0, 4 +/* 803C0CF8 003BDC58 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803C0CFC 003BDC5C 1C 1B 00 14 */ mulli r0, r27, 0x14 +/* 803C0D00 003BDC60 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C0D04 003BDC64 38 83 68 00 */ addi r4, r3, 0xCC006800@l +/* 803C0D08 003BDC68 7C 84 02 14 */ add r4, r4, r0 +/* 803C0D0C 003BDC6C 80 A4 00 00 */ lwz r5, 0(r4) +/* 803C0D10 003BDC70 70 A5 04 05 */ andi. r5, r5, 0x405 +/* 803C0D14 003BDC74 38 00 00 01 */ li r0, 1 +/* 803C0D18 003BDC78 7C 00 E0 30 */ slw r0, r0, r28 +/* 803C0D1C 003BDC7C 54 03 38 30 */ slwi r3, r0, 7 +/* 803C0D20 003BDC80 57 A0 20 36 */ slwi r0, r29, 4 +/* 803C0D24 003BDC84 7C 60 03 78 */ or r0, r3, r0 +/* 803C0D28 003BDC88 7C A5 03 78 */ or r5, r5, r0 +/* 803C0D2C 003BDC8C 90 A4 00 00 */ stw r5, 0(r4) +/* 803C0D30 003BDC90 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0D34 003BDC94 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803C0D38 003BDC98 41 82 00 30 */ beq lbl_803C0D68 +/* 803C0D3C 003BDC9C 2C 1B 00 01 */ cmpwi r27, 1 +/* 803C0D40 003BDCA0 41 82 00 20 */ beq lbl_803C0D60 +/* 803C0D44 003BDCA4 40 80 00 24 */ bge lbl_803C0D68 +/* 803C0D48 003BDCA8 2C 1B 00 00 */ cmpwi r27, 0 +/* 803C0D4C 003BDCAC 40 80 00 08 */ bge lbl_803C0D54 +/* 803C0D50 003BDCB0 48 00 00 18 */ b lbl_803C0D68 +lbl_803C0D54: +/* 803C0D54 003BDCB4 3C 60 00 10 */ lis r3, 0x10 +/* 803C0D58 003BDCB8 4B FC 0C D1 */ bl __OSMaskInterrupts +/* 803C0D5C 003BDCBC 48 00 00 0C */ b lbl_803C0D68 +lbl_803C0D60: +/* 803C0D60 003BDCC0 3C 60 00 02 */ lis r3, 2 +/* 803C0D64 003BDCC4 4B FC 0C C5 */ bl __OSMaskInterrupts +lbl_803C0D68: +/* 803C0D68 003BDCC8 7F C3 F3 78 */ mr r3, r30 +/* 803C0D6C 003BDCCC 4B FC 09 1D */ bl OSRestoreInterrupts +/* 803C0D70 003BDCD0 38 60 00 01 */ li r3, 1 +lbl_803C0D74: +/* 803C0D74 003BDCD4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803C0D78 003BDCD8 BB 61 00 1C */ lmw r27, 0x1c(r1) +/* 803C0D7C 003BDCDC 38 21 00 30 */ addi r1, r1, 0x30 +/* 803C0D80 003BDCE0 7C 08 03 A6 */ mtlr r0 +/* 803C0D84 003BDCE4 4E 80 00 20 */ blr + +.global EXIDeselect +EXIDeselect: +/* 803C0D88 003BDCE8 7C 08 02 A6 */ mflr r0 +/* 803C0D8C 003BDCEC 90 01 00 04 */ stw r0, 4(r1) +/* 803C0D90 003BDCF0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803C0D94 003BDCF4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803C0D98 003BDCF8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803C0D9C 003BDCFC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803C0DA0 003BDD00 93 81 00 10 */ stw r28, 0x10(r1) +/* 803C0DA4 003BDD04 3B E3 00 00 */ addi r31, r3, 0 +/* 803C0DA8 003BDD08 54 64 30 32 */ slwi r4, r3, 6 +/* 803C0DAC 003BDD0C 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0DB0 003BDD10 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0DB4 003BDD14 7F C0 22 14 */ add r30, r0, r4 +/* 803C0DB8 003BDD18 4B FC 08 A9 */ bl OSDisableInterrupts +/* 803C0DBC 003BDD1C 7C 7C 1B 78 */ mr r28, r3 +/* 803C0DC0 003BDD20 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 803C0DC4 003BDD24 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803C0DC8 003BDD28 40 82 00 14 */ bne lbl_803C0DDC +/* 803C0DCC 003BDD2C 7F 83 E3 78 */ mr r3, r28 +/* 803C0DD0 003BDD30 4B FC 08 B9 */ bl OSRestoreInterrupts +/* 803C0DD4 003BDD34 38 60 00 00 */ li r3, 0 +/* 803C0DD8 003BDD38 48 00 00 A0 */ b lbl_803C0E78 +lbl_803C0DDC: +/* 803C0DDC 003BDD3C 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 803C0DE0 003BDD40 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c +/* 803C0DE4 003BDD44 90 1E 00 0C */ stw r0, 0xc(r30) +/* 803C0DE8 003BDD48 1C 1F 00 14 */ mulli r0, r31, 0x14 +/* 803C0DEC 003BDD4C 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C0DF0 003BDD50 38 63 68 00 */ addi r3, r3, 0xCC006800@l +/* 803C0DF4 003BDD54 7C 63 02 14 */ add r3, r3, r0 +/* 803C0DF8 003BDD58 83 A3 00 00 */ lwz r29, 0(r3) +/* 803C0DFC 003BDD5C 73 A0 04 05 */ andi. r0, r29, 0x405 +/* 803C0E00 003BDD60 90 03 00 00 */ stw r0, 0(r3) +/* 803C0E04 003BDD64 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 803C0E08 003BDD68 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803C0E0C 003BDD6C 41 82 00 30 */ beq lbl_803C0E3C +/* 803C0E10 003BDD70 2C 1F 00 01 */ cmpwi r31, 1 +/* 803C0E14 003BDD74 41 82 00 20 */ beq lbl_803C0E34 +/* 803C0E18 003BDD78 40 80 00 24 */ bge lbl_803C0E3C +/* 803C0E1C 003BDD7C 2C 1F 00 00 */ cmpwi r31, 0 +/* 803C0E20 003BDD80 40 80 00 08 */ bge lbl_803C0E28 +/* 803C0E24 003BDD84 48 00 00 18 */ b lbl_803C0E3C +lbl_803C0E28: +/* 803C0E28 003BDD88 3C 60 00 10 */ lis r3, 0x10 +/* 803C0E2C 003BDD8C 4B FC 0C 85 */ bl __OSUnmaskInterrupts +/* 803C0E30 003BDD90 48 00 00 0C */ b lbl_803C0E3C +lbl_803C0E34: +/* 803C0E34 003BDD94 3C 60 00 02 */ lis r3, 2 +/* 803C0E38 003BDD98 4B FC 0C 79 */ bl __OSUnmaskInterrupts +lbl_803C0E3C: +/* 803C0E3C 003BDD9C 7F 83 E3 78 */ mr r3, r28 +/* 803C0E40 003BDDA0 4B FC 08 49 */ bl OSRestoreInterrupts +/* 803C0E44 003BDDA4 2C 1F 00 02 */ cmpwi r31, 2 +/* 803C0E48 003BDDA8 41 82 00 2C */ beq lbl_803C0E74 +/* 803C0E4C 003BDDAC 57 A0 06 31 */ rlwinm. r0, r29, 0, 0x18, 0x18 +/* 803C0E50 003BDDB0 41 82 00 24 */ beq lbl_803C0E74 +/* 803C0E54 003BDDB4 7F E3 FB 78 */ mr r3, r31 +/* 803C0E58 003BDDB8 4B FF F9 95 */ bl __EXIProbe +/* 803C0E5C 003BDDBC 2C 03 00 00 */ cmpwi r3, 0 +/* 803C0E60 003BDDC0 41 82 00 0C */ beq lbl_803C0E6C +/* 803C0E64 003BDDC4 38 60 00 01 */ li r3, 1 +/* 803C0E68 003BDDC8 48 00 00 10 */ b lbl_803C0E78 +lbl_803C0E6C: +/* 803C0E6C 003BDDCC 38 60 00 00 */ li r3, 0 +/* 803C0E70 003BDDD0 48 00 00 08 */ b lbl_803C0E78 +lbl_803C0E74: +/* 803C0E74 003BDDD4 38 60 00 01 */ li r3, 1 +lbl_803C0E78: +/* 803C0E78 003BDDD8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803C0E7C 003BDDDC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803C0E80 003BDDE0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803C0E84 003BDDE4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803C0E88 003BDDE8 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803C0E8C 003BDDEC 38 21 00 20 */ addi r1, r1, 0x20 +/* 803C0E90 003BDDF0 7C 08 03 A6 */ mtlr r0 +/* 803C0E94 003BDDF4 4E 80 00 20 */ blr + +.global EXIIntrruptHandler +EXIIntrruptHandler: +/* 803C0E98 003BDDF8 7C 08 02 A6 */ mflr r0 +/* 803C0E9C 003BDDFC 90 01 00 04 */ stw r0, 4(r1) +/* 803C0EA0 003BDE00 94 21 FD 08 */ stwu r1, -0x2f8(r1) +/* 803C0EA4 003BDE04 93 E1 02 F4 */ stw r31, 0x2f4(r1) +/* 803C0EA8 003BDE08 93 C1 02 F0 */ stw r30, 0x2f0(r1) +/* 803C0EAC 003BDE0C 93 A1 02 EC */ stw r29, 0x2ec(r1) +/* 803C0EB0 003BDE10 3B E4 00 00 */ addi r31, r4, 0 +/* 803C0EB4 003BDE14 7C 63 07 34 */ extsh r3, r3 +/* 803C0EB8 003BDE18 38 03 FF F7 */ addi r0, r3, -9 +/* 803C0EBC 003BDE1C 3C 60 55 55 */ lis r3, 0x55555556@ha +/* 803C0EC0 003BDE20 38 63 55 56 */ addi r3, r3, 0x55555556@l +/* 803C0EC4 003BDE24 7C 63 00 96 */ mulhw r3, r3, r0 +/* 803C0EC8 003BDE28 54 60 0F FE */ srwi r0, r3, 0x1f +/* 803C0ECC 003BDE2C 7F C3 02 14 */ add r30, r3, r0 +/* 803C0ED0 003BDE30 1C 1E 00 14 */ mulli r0, r30, 0x14 +/* 803C0ED4 003BDE34 3C 60 CC 00 */ lis r3, 0xCC006800@ha +/* 803C0ED8 003BDE38 38 63 68 00 */ addi r3, r3, 0xCC006800@l +/* 803C0EDC 003BDE3C 7C 63 02 14 */ add r3, r3, r0 +/* 803C0EE0 003BDE40 80 03 00 00 */ lwz r0, 0(r3) +/* 803C0EE4 003BDE44 70 00 07 F5 */ andi. r0, r0, 0x7f5 +/* 803C0EE8 003BDE48 60 00 00 02 */ ori r0, r0, 2 +/* 803C0EEC 003BDE4C 90 03 00 00 */ stw r0, 0(r3) +/* 803C0EF0 003BDE50 57 C4 30 32 */ slwi r4, r30, 6 +/* 803C0EF4 003BDE54 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0EF8 003BDE58 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0EFC 003BDE5C 7C 60 22 14 */ add r3, r0, r4 +/* 803C0F00 003BDE60 80 03 00 00 */ lwz r0, 0(r3) +/* 803C0F04 003BDE64 7C 1D 03 78 */ mr r29, r0 +/* 803C0F08 003BDE68 28 00 00 00 */ cmplwi r0, 0 +/* 803C0F0C 003BDE6C 41 82 00 38 */ beq lbl_803C0F44 +/* 803C0F10 003BDE70 38 61 00 18 */ addi r3, r1, 0x18 +/* 803C0F14 003BDE74 4B FB E7 01 */ bl OSClearContext +/* 803C0F18 003BDE78 38 61 00 18 */ addi r3, r1, 0x18 +/* 803C0F1C 003BDE7C 4B FB E5 01 */ bl OSSetCurrentContext +/* 803C0F20 003BDE80 38 7E 00 00 */ addi r3, r30, 0 +/* 803C0F24 003BDE84 38 9F 00 00 */ addi r4, r31, 0 +/* 803C0F28 003BDE88 39 9D 00 00 */ addi r12, r29, 0 +/* 803C0F2C 003BDE8C 7D 88 03 A6 */ mtlr r12 +/* 803C0F30 003BDE90 4E 80 00 21 */ blrl +/* 803C0F34 003BDE94 38 61 00 18 */ addi r3, r1, 0x18 +/* 803C0F38 003BDE98 4B FB E6 DD */ bl OSClearContext +/* 803C0F3C 003BDE9C 7F E3 FB 78 */ mr r3, r31 +/* 803C0F40 003BDEA0 4B FB E4 DD */ bl OSSetCurrentContext +lbl_803C0F44: +/* 803C0F44 003BDEA4 80 01 02 FC */ lwz r0, 0x2fc(r1) +/* 803C0F48 003BDEA8 83 E1 02 F4 */ lwz r31, 0x2f4(r1) +/* 803C0F4C 003BDEAC 83 C1 02 F0 */ lwz r30, 0x2f0(r1) +/* 803C0F50 003BDEB0 83 A1 02 EC */ lwz r29, 0x2ec(r1) +/* 803C0F54 003BDEB4 38 21 02 F8 */ addi r1, r1, 0x2f8 +/* 803C0F58 003BDEB8 7C 08 03 A6 */ mtlr r0 +/* 803C0F5C 003BDEBC 4E 80 00 20 */ blr + +.global TCIntrruptHandler +TCIntrruptHandler: +/* 803C0F60 003BDEC0 7C 08 02 A6 */ mflr r0 +/* 803C0F64 003BDEC4 90 01 00 04 */ stw r0, 4(r1) +/* 803C0F68 003BDEC8 94 21 FD 08 */ stwu r1, -0x2f8(r1) +/* 803C0F6C 003BDECC 93 E1 02 F4 */ stw r31, 0x2f4(r1) +/* 803C0F70 003BDED0 93 C1 02 F0 */ stw r30, 0x2f0(r1) +/* 803C0F74 003BDED4 93 A1 02 EC */ stw r29, 0x2ec(r1) +/* 803C0F78 003BDED8 93 81 02 E8 */ stw r28, 0x2e8(r1) +/* 803C0F7C 003BDEDC 3B 84 00 00 */ addi r28, r4, 0 +/* 803C0F80 003BDEE0 7C 65 07 34 */ extsh r5, r3 +/* 803C0F84 003BDEE4 38 05 FF F6 */ addi r0, r5, -10 +/* 803C0F88 003BDEE8 3C 60 55 55 */ lis r3, 0x55555556@ha +/* 803C0F8C 003BDEEC 38 63 55 56 */ addi r3, r3, 0x55555556@l +/* 803C0F90 003BDEF0 7C 63 00 96 */ mulhw r3, r3, r0 +/* 803C0F94 003BDEF4 54 60 0F FE */ srwi r0, r3, 0x1f +/* 803C0F98 003BDEF8 7F C3 02 14 */ add r30, r3, r0 +/* 803C0F9C 003BDEFC 57 C4 30 32 */ slwi r4, r30, 6 +/* 803C0FA0 003BDF00 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C0FA4 003BDF04 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C0FA8 003BDF08 7F E0 22 14 */ add r31, r0, r4 +/* 803C0FAC 003BDF0C 3C 00 80 00 */ lis r0, 0x8000 +/* 803C0FB0 003BDF10 7C 03 2C 30 */ srw r3, r0, r5 +/* 803C0FB4 003BDF14 4B FC 0A 75 */ bl __OSMaskInterrupts +/* 803C0FB8 003BDF18 1C FE 00 14 */ mulli r7, r30, 0x14 +/* 803C0FBC 003BDF1C 3C C0 CC 00 */ lis r6, 0xCC006800@ha +/* 803C0FC0 003BDF20 38 66 68 00 */ addi r3, r6, 0xCC006800@l +/* 803C0FC4 003BDF24 7C 63 3A 14 */ add r3, r3, r7 +/* 803C0FC8 003BDF28 80 03 00 00 */ lwz r0, 0(r3) +/* 803C0FCC 003BDF2C 70 00 07 F5 */ andi. r0, r0, 0x7f5 +/* 803C0FD0 003BDF30 60 00 00 08 */ ori r0, r0, 8 +/* 803C0FD4 003BDF34 90 03 00 00 */ stw r0, 0(r3) +/* 803C0FD8 003BDF38 80 1F 00 04 */ lwz r0, 4(r31) +/* 803C0FDC 003BDF3C 7C 1D 03 78 */ mr r29, r0 +/* 803C0FE0 003BDF40 28 00 00 00 */ cmplwi r0, 0 +/* 803C0FE4 003BDF44 41 82 01 74 */ beq lbl_803C1158 +/* 803C0FE8 003BDF48 38 80 00 00 */ li r4, 0 +/* 803C0FEC 003BDF4C 90 9F 00 04 */ stw r4, 4(r31) +/* 803C0FF0 003BDF50 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C0FF4 003BDF54 54 00 07 BF */ clrlwi. r0, r0, 0x1e +/* 803C0FF8 003BDF58 41 82 01 2C */ beq lbl_803C1124 +/* 803C0FFC 003BDF5C 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C1000 003BDF60 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 803C1004 003BDF64 41 82 01 14 */ beq lbl_803C1118 +/* 803C1008 003BDF68 80 7F 00 10 */ lwz r3, 0x10(r31) +/* 803C100C 003BDF6C 2C 03 00 00 */ cmpwi r3, 0 +/* 803C1010 003BDF70 41 82 01 08 */ beq lbl_803C1118 +/* 803C1014 003BDF74 80 BF 00 14 */ lwz r5, 0x14(r31) +/* 803C1018 003BDF78 38 06 68 00 */ addi r0, r6, 0x6800 +/* 803C101C 003BDF7C 7C C0 3A 14 */ add r6, r0, r7 +/* 803C1020 003BDF80 80 06 00 10 */ lwz r0, 0x10(r6) +/* 803C1024 003BDF84 40 81 00 F4 */ ble lbl_803C1118 +/* 803C1028 003BDF88 38 E3 FF F8 */ addi r7, r3, -8 +/* 803C102C 003BDF8C 2C 03 00 08 */ cmpwi r3, 8 +/* 803C1030 003BDF90 40 81 00 BC */ ble lbl_803C10EC +/* 803C1034 003BDF94 38 C7 00 07 */ addi r6, r7, 7 +/* 803C1038 003BDF98 54 C6 E8 FE */ srwi r6, r6, 3 +/* 803C103C 003BDF9C 7C C9 03 A6 */ mtctr r6 +/* 803C1040 003BDFA0 2C 07 00 00 */ cmpwi r7, 0 +/* 803C1044 003BDFA4 40 81 00 A8 */ ble lbl_803C10EC +lbl_803C1048: +/* 803C1048 003BDFA8 20 C4 00 03 */ subfic r6, r4, 3 +/* 803C104C 003BDFAC 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C1050 003BDFB0 7C 06 34 30 */ srw r6, r0, r6 +/* 803C1054 003BDFB4 98 C5 00 00 */ stb r6, 0(r5) +/* 803C1058 003BDFB8 38 C4 00 01 */ addi r6, r4, 1 +/* 803C105C 003BDFBC 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C1060 003BDFC0 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C1064 003BDFC4 7C 06 34 30 */ srw r6, r0, r6 +/* 803C1068 003BDFC8 98 C5 00 01 */ stb r6, 1(r5) +/* 803C106C 003BDFCC 38 C4 00 02 */ addi r6, r4, 2 +/* 803C1070 003BDFD0 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C1074 003BDFD4 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C1078 003BDFD8 7C 06 34 30 */ srw r6, r0, r6 +/* 803C107C 003BDFDC 98 C5 00 02 */ stb r6, 2(r5) +/* 803C1080 003BDFE0 7C C4 00 D0 */ neg r6, r4 +/* 803C1084 003BDFE4 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C1088 003BDFE8 7C 06 34 30 */ srw r6, r0, r6 +/* 803C108C 003BDFEC 98 C5 00 03 */ stb r6, 3(r5) +/* 803C1090 003BDFF0 38 C4 00 04 */ addi r6, r4, 4 +/* 803C1094 003BDFF4 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C1098 003BDFF8 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C109C 003BDFFC 7C 06 34 30 */ srw r6, r0, r6 +/* 803C10A0 003BE000 98 C5 00 04 */ stb r6, 4(r5) +/* 803C10A4 003BE004 38 C4 00 05 */ addi r6, r4, 5 +/* 803C10A8 003BE008 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C10AC 003BE00C 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C10B0 003BE010 7C 06 34 30 */ srw r6, r0, r6 +/* 803C10B4 003BE014 98 C5 00 05 */ stb r6, 5(r5) +/* 803C10B8 003BE018 38 C4 00 06 */ addi r6, r4, 6 +/* 803C10BC 003BE01C 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C10C0 003BE020 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C10C4 003BE024 7C 06 34 30 */ srw r6, r0, r6 +/* 803C10C8 003BE028 98 C5 00 06 */ stb r6, 6(r5) +/* 803C10CC 003BE02C 38 C4 00 07 */ addi r6, r4, 7 +/* 803C10D0 003BE030 20 C6 00 03 */ subfic r6, r6, 3 +/* 803C10D4 003BE034 54 C6 18 38 */ slwi r6, r6, 3 +/* 803C10D8 003BE038 7C 06 34 30 */ srw r6, r0, r6 +/* 803C10DC 003BE03C 98 C5 00 07 */ stb r6, 7(r5) +/* 803C10E0 003BE040 38 A5 00 08 */ addi r5, r5, 8 +/* 803C10E4 003BE044 38 84 00 08 */ addi r4, r4, 8 +/* 803C10E8 003BE048 42 00 FF 60 */ bdnz lbl_803C1048 +lbl_803C10EC: +/* 803C10EC 003BE04C 7C C4 18 50 */ subf r6, r4, r3 +/* 803C10F0 003BE050 7C C9 03 A6 */ mtctr r6 +/* 803C10F4 003BE054 7C 04 18 00 */ cmpw r4, r3 +/* 803C10F8 003BE058 40 80 00 20 */ bge lbl_803C1118 +lbl_803C10FC: +/* 803C10FC 003BE05C 20 64 00 03 */ subfic r3, r4, 3 +/* 803C1100 003BE060 54 63 18 38 */ slwi r3, r3, 3 +/* 803C1104 003BE064 7C 03 1C 30 */ srw r3, r0, r3 +/* 803C1108 003BE068 98 65 00 00 */ stb r3, 0(r5) +/* 803C110C 003BE06C 38 A5 00 01 */ addi r5, r5, 1 +/* 803C1110 003BE070 38 84 00 01 */ addi r4, r4, 1 +/* 803C1114 003BE074 42 00 FF E8 */ bdnz lbl_803C10FC +lbl_803C1118: +/* 803C1118 003BE078 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C111C 003BE07C 54 00 00 3A */ rlwinm r0, r0, 0, 0, 0x1d +/* 803C1120 003BE080 90 1F 00 0C */ stw r0, 0xc(r31) +lbl_803C1124: +/* 803C1124 003BE084 38 61 00 20 */ addi r3, r1, 0x20 +/* 803C1128 003BE088 4B FB E4 ED */ bl OSClearContext +/* 803C112C 003BE08C 38 61 00 20 */ addi r3, r1, 0x20 +/* 803C1130 003BE090 4B FB E2 ED */ bl OSSetCurrentContext +/* 803C1134 003BE094 38 7E 00 00 */ addi r3, r30, 0 +/* 803C1138 003BE098 38 9C 00 00 */ addi r4, r28, 0 +/* 803C113C 003BE09C 39 9D 00 00 */ addi r12, r29, 0 +/* 803C1140 003BE0A0 7D 88 03 A6 */ mtlr r12 +/* 803C1144 003BE0A4 4E 80 00 21 */ blrl +/* 803C1148 003BE0A8 38 61 00 20 */ addi r3, r1, 0x20 +/* 803C114C 003BE0AC 4B FB E4 C9 */ bl OSClearContext +/* 803C1150 003BE0B0 7F 83 E3 78 */ mr r3, r28 +/* 803C1154 003BE0B4 4B FB E2 C9 */ bl OSSetCurrentContext +lbl_803C1158: +/* 803C1158 003BE0B8 80 01 02 FC */ lwz r0, 0x2fc(r1) +/* 803C115C 003BE0BC 83 E1 02 F4 */ lwz r31, 0x2f4(r1) +/* 803C1160 003BE0C0 83 C1 02 F0 */ lwz r30, 0x2f0(r1) +/* 803C1164 003BE0C4 83 A1 02 EC */ lwz r29, 0x2ec(r1) +/* 803C1168 003BE0C8 83 81 02 E8 */ lwz r28, 0x2e8(r1) +/* 803C116C 003BE0CC 38 21 02 F8 */ addi r1, r1, 0x2f8 +/* 803C1170 003BE0D0 7C 08 03 A6 */ mtlr r0 +/* 803C1174 003BE0D4 4E 80 00 20 */ blr + +.global EXTIntrruptHandler +EXTIntrruptHandler: +/* 803C1178 003BE0D8 7C 08 02 A6 */ mflr r0 +/* 803C117C 003BE0DC 90 01 00 04 */ stw r0, 4(r1) +/* 803C1180 003BE0E0 94 21 FD 18 */ stwu r1, -0x2e8(r1) +/* 803C1184 003BE0E4 93 E1 02 E4 */ stw r31, 0x2e4(r1) +/* 803C1188 003BE0E8 93 C1 02 E0 */ stw r30, 0x2e0(r1) +/* 803C118C 003BE0EC 93 A1 02 DC */ stw r29, 0x2dc(r1) +/* 803C1190 003BE0F0 93 81 02 D8 */ stw r28, 0x2d8(r1) +/* 803C1194 003BE0F4 3B E4 00 00 */ addi r31, r4, 0 +/* 803C1198 003BE0F8 7C 63 07 34 */ extsh r3, r3 +/* 803C119C 003BE0FC 38 03 FF F5 */ addi r0, r3, -11 +/* 803C11A0 003BE100 3C 60 55 55 */ lis r3, 0x55555556@ha +/* 803C11A4 003BE104 38 63 55 56 */ addi r3, r3, 0x55555556@l +/* 803C11A8 003BE108 7C 63 00 96 */ mulhw r3, r3, r0 +/* 803C11AC 003BE10C 54 60 0F FE */ srwi r0, r3, 0x1f +/* 803C11B0 003BE110 7F C3 02 14 */ add r30, r3, r0 +/* 803C11B4 003BE114 3C 60 00 50 */ lis r3, 0x50 +/* 803C11B8 003BE118 1C 1E 00 03 */ mulli r0, r30, 3 +/* 803C11BC 003BE11C 7C 63 04 30 */ srw r3, r3, r0 +/* 803C11C0 003BE120 4B FC 08 69 */ bl __OSMaskInterrupts +/* 803C11C4 003BE124 57 C4 30 32 */ slwi r4, r30, 6 +/* 803C11C8 003BE128 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C11CC 003BE12C 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C11D0 003BE130 7F A0 22 14 */ add r29, r0, r4 +/* 803C11D4 003BE134 83 9D 00 08 */ lwz r28, 8(r29) +/* 803C11D8 003BE138 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 803C11DC 003BE13C 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 803C11E0 003BE140 90 1D 00 0C */ stw r0, 0xc(r29) +/* 803C11E4 003BE144 28 1C 00 00 */ cmplwi r28, 0 +/* 803C11E8 003BE148 41 82 00 40 */ beq lbl_803C1228 +/* 803C11EC 003BE14C 38 61 00 10 */ addi r3, r1, 0x10 +/* 803C11F0 003BE150 4B FB E4 25 */ bl OSClearContext +/* 803C11F4 003BE154 38 61 00 10 */ addi r3, r1, 0x10 +/* 803C11F8 003BE158 4B FB E2 25 */ bl OSSetCurrentContext +/* 803C11FC 003BE15C 38 00 00 00 */ li r0, 0 +/* 803C1200 003BE160 90 1D 00 08 */ stw r0, 8(r29) +/* 803C1204 003BE164 38 7E 00 00 */ addi r3, r30, 0 +/* 803C1208 003BE168 38 9F 00 00 */ addi r4, r31, 0 +/* 803C120C 003BE16C 39 9C 00 00 */ addi r12, r28, 0 +/* 803C1210 003BE170 7D 88 03 A6 */ mtlr r12 +/* 803C1214 003BE174 4E 80 00 21 */ blrl +/* 803C1218 003BE178 38 61 00 10 */ addi r3, r1, 0x10 +/* 803C121C 003BE17C 4B FB E3 F9 */ bl OSClearContext +/* 803C1220 003BE180 7F E3 FB 78 */ mr r3, r31 +/* 803C1224 003BE184 4B FB E1 F9 */ bl OSSetCurrentContext +lbl_803C1228: +/* 803C1228 003BE188 80 01 02 EC */ lwz r0, 0x2ec(r1) +/* 803C122C 003BE18C 83 E1 02 E4 */ lwz r31, 0x2e4(r1) +/* 803C1230 003BE190 83 C1 02 E0 */ lwz r30, 0x2e0(r1) +/* 803C1234 003BE194 83 A1 02 DC */ lwz r29, 0x2dc(r1) +/* 803C1238 003BE198 83 81 02 D8 */ lwz r28, 0x2d8(r1) +/* 803C123C 003BE19C 38 21 02 E8 */ addi r1, r1, 0x2e8 +/* 803C1240 003BE1A0 7C 08 03 A6 */ mtlr r0 +/* 803C1244 003BE1A4 4E 80 00 20 */ blr + +.global sub_803c1248 +sub_803c1248: +/* 803C1248 003BE1A8 7C 08 02 A6 */ mflr r0 +/* 803C124C 003BE1AC 90 01 00 04 */ stw r0, 4(r1) +/* 803C1250 003BE1B0 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803C1254 003BE1B4 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803C1258 003BE1B8 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803C125C 003BE1BC 93 A1 00 0C */ stw r29, 0xc(r1) +/* 803C1260 003BE1C0 93 81 00 08 */ stw r28, 8(r1) +/* 803C1264 003BE1C4 80 6D A0 50 */ lwz r3, lbl_805A8C10@sda21(r13) +/* 803C1268 003BE1C8 4B FB CD D1 */ bl OSRegisterVersion +/* 803C126C 003BE1CC 3C 60 00 80 */ lis r3, 0x007F8000@ha +/* 803C1270 003BE1D0 38 63 80 00 */ addi r3, r3, 0x007F8000@l +/* 803C1274 003BE1D4 4B FC 07 B5 */ bl __OSMaskInterrupts +/* 803C1278 003BE1D8 3B E0 00 00 */ li r31, 0 +/* 803C127C 003BE1DC 3C 80 CC 00 */ lis r4, 0xCC006800@ha +/* 803C1280 003BE1E0 93 E4 68 00 */ stw r31, 0xCC006800@l(r4) +/* 803C1284 003BE1E4 93 E4 68 14 */ stw r31, 0x6814(r4) +/* 803C1288 003BE1E8 93 E4 68 28 */ stw r31, 0x6828(r4) +/* 803C128C 003BE1EC 38 00 20 00 */ li r0, 0x2000 +/* 803C1290 003BE1F0 90 04 68 00 */ stw r0, 0x6800(r4) +/* 803C1294 003BE1F4 38 60 00 09 */ li r3, 9 +/* 803C1298 003BE1F8 3C 80 80 3C */ lis r4, EXIIntrruptHandler@ha +/* 803C129C 003BE1FC 3B 84 0E 98 */ addi r28, r4, EXIIntrruptHandler@l +/* 803C12A0 003BE200 38 9C 00 00 */ addi r4, r28, 0 +/* 803C12A4 003BE204 4B FC 04 09 */ bl __OSSetInterruptHandler +/* 803C12A8 003BE208 38 60 00 0A */ li r3, 0xa +/* 803C12AC 003BE20C 3C 80 80 3C */ lis r4, TCIntrruptHandler@ha +/* 803C12B0 003BE210 3B A4 0F 60 */ addi r29, r4, TCIntrruptHandler@l +/* 803C12B4 003BE214 38 9D 00 00 */ addi r4, r29, 0 +/* 803C12B8 003BE218 4B FC 03 F5 */ bl __OSSetInterruptHandler +/* 803C12BC 003BE21C 38 60 00 0B */ li r3, 0xb +/* 803C12C0 003BE220 3C 80 80 3C */ lis r4, EXTIntrruptHandler@ha +/* 803C12C4 003BE224 3B C4 11 78 */ addi r30, r4, EXTIntrruptHandler@l +/* 803C12C8 003BE228 38 9E 00 00 */ addi r4, r30, 0 +/* 803C12CC 003BE22C 4B FC 03 E1 */ bl __OSSetInterruptHandler +/* 803C12D0 003BE230 38 60 00 0C */ li r3, 0xc +/* 803C12D4 003BE234 38 9C 00 00 */ addi r4, r28, 0 +/* 803C12D8 003BE238 4B FC 03 D5 */ bl __OSSetInterruptHandler +/* 803C12DC 003BE23C 38 60 00 0D */ li r3, 0xd +/* 803C12E0 003BE240 38 9D 00 00 */ addi r4, r29, 0 +/* 803C12E4 003BE244 4B FC 03 C9 */ bl __OSSetInterruptHandler +/* 803C12E8 003BE248 38 60 00 0E */ li r3, 0xe +/* 803C12EC 003BE24C 38 9E 00 00 */ addi r4, r30, 0 +/* 803C12F0 003BE250 4B FC 03 BD */ bl __OSSetInterruptHandler +/* 803C12F4 003BE254 38 60 00 0F */ li r3, 0xf +/* 803C12F8 003BE258 38 9C 00 00 */ addi r4, r28, 0 +/* 803C12FC 003BE25C 4B FC 03 B1 */ bl __OSSetInterruptHandler +/* 803C1300 003BE260 38 60 00 10 */ li r3, 0x10 +/* 803C1304 003BE264 38 9D 00 00 */ addi r4, r29, 0 +/* 803C1308 003BE268 4B FC 03 A5 */ bl __OSSetInterruptHandler +/* 803C130C 003BE26C 4B FB C4 11 */ bl OSGetConsoleType +/* 803C1310 003BE270 54 60 00 C7 */ rlwinm. r0, r3, 0, 3, 3 +/* 803C1314 003BE274 41 82 00 30 */ beq lbl_803C1344 +/* 803C1318 003BE278 3C 80 80 00 */ lis r4, 0x800030C4@ha +/* 803C131C 003BE27C 93 E4 30 C4 */ stw r31, 0x800030C4@l(r4) +/* 803C1320 003BE280 93 E4 30 C0 */ stw r31, 0x30c0(r4) +/* 803C1324 003BE284 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C1328 003BE288 38 63 9E 98 */ addi r3, r3, lbl_80569E98@l +/* 803C132C 003BE28C 93 E3 00 60 */ stw r31, 0x60(r3) +/* 803C1330 003BE290 93 E3 00 20 */ stw r31, 0x20(r3) +/* 803C1334 003BE294 38 60 00 00 */ li r3, 0 +/* 803C1338 003BE298 4B FF F4 B5 */ bl __EXIProbe +/* 803C133C 003BE29C 38 60 00 01 */ li r3, 1 +/* 803C1340 003BE2A0 4B FF F4 AD */ bl __EXIProbe +lbl_803C1344: +/* 803C1344 003BE2A4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803C1348 003BE2A8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803C134C 003BE2AC 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803C1350 003BE2B0 83 A1 00 0C */ lwz r29, 0xc(r1) +/* 803C1354 003BE2B4 83 81 00 08 */ lwz r28, 8(r1) +/* 803C1358 003BE2B8 38 21 00 18 */ addi r1, r1, 0x18 +/* 803C135C 003BE2BC 7C 08 03 A6 */ mtlr r0 +/* 803C1360 003BE2C0 4E 80 00 20 */ blr + +.global EXILock +EXILock: +/* 803C1364 003BE2C4 7C 08 02 A6 */ mflr r0 +/* 803C1368 003BE2C8 90 01 00 04 */ stw r0, 4(r1) +/* 803C136C 003BE2CC 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803C1370 003BE2D0 BF 61 00 1C */ stmw r27, 0x1c(r1) +/* 803C1374 003BE2D4 3B 63 00 00 */ addi r27, r3, 0 +/* 803C1378 003BE2D8 3B E4 00 00 */ addi r31, r4, 0 +/* 803C137C 003BE2DC 3B 85 00 00 */ addi r28, r5, 0 +/* 803C1380 003BE2E0 54 64 30 32 */ slwi r4, r3, 6 +/* 803C1384 003BE2E4 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C1388 003BE2E8 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C138C 003BE2EC 7F C0 22 14 */ add r30, r0, r4 +/* 803C1390 003BE2F0 4B FC 02 D1 */ bl OSDisableInterrupts +/* 803C1394 003BE2F4 7C 7D 1B 78 */ mr r29, r3 +/* 803C1398 003BE2F8 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 803C139C 003BE2FC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C13A0 003BE300 41 82 00 7C */ beq lbl_803C141C +/* 803C13A4 003BE304 28 1C 00 00 */ cmplwi r28, 0 +/* 803C13A8 003BE308 41 82 00 64 */ beq lbl_803C140C +/* 803C13AC 003BE30C 7F C3 F3 78 */ mr r3, r30 +/* 803C13B0 003BE310 80 9E 00 24 */ lwz r4, 0x24(r30) +/* 803C13B4 003BE314 7C 89 03 A6 */ mtctr r4 +/* 803C13B8 003BE318 2C 04 00 00 */ cmpwi r4, 0 +/* 803C13BC 003BE31C 40 81 00 28 */ ble lbl_803C13E4 +lbl_803C13C0: +/* 803C13C0 003BE320 80 03 00 28 */ lwz r0, 0x28(r3) +/* 803C13C4 003BE324 7C 00 F8 40 */ cmplw r0, r31 +/* 803C13C8 003BE328 40 82 00 14 */ bne lbl_803C13DC +/* 803C13CC 003BE32C 7F A3 EB 78 */ mr r3, r29 +/* 803C13D0 003BE330 4B FC 02 B9 */ bl OSRestoreInterrupts +/* 803C13D4 003BE334 38 60 00 00 */ li r3, 0 +/* 803C13D8 003BE338 48 00 00 6C */ b lbl_803C1444 +lbl_803C13DC: +/* 803C13DC 003BE33C 38 63 00 08 */ addi r3, r3, 8 +/* 803C13E0 003BE340 42 00 FF E0 */ bdnz lbl_803C13C0 +lbl_803C13E4: +/* 803C13E4 003BE344 54 80 18 38 */ slwi r0, r4, 3 +/* 803C13E8 003BE348 7C 7E 02 14 */ add r3, r30, r0 +/* 803C13EC 003BE34C 93 83 00 2C */ stw r28, 0x2c(r3) +/* 803C13F0 003BE350 80 1E 00 24 */ lwz r0, 0x24(r30) +/* 803C13F4 003BE354 54 00 18 38 */ slwi r0, r0, 3 +/* 803C13F8 003BE358 7C 7E 02 14 */ add r3, r30, r0 +/* 803C13FC 003BE35C 93 E3 00 28 */ stw r31, 0x28(r3) +/* 803C1400 003BE360 80 7E 00 24 */ lwz r3, 0x24(r30) +/* 803C1404 003BE364 38 03 00 01 */ addi r0, r3, 1 +/* 803C1408 003BE368 90 1E 00 24 */ stw r0, 0x24(r30) +lbl_803C140C: +/* 803C140C 003BE36C 7F A3 EB 78 */ mr r3, r29 +/* 803C1410 003BE370 4B FC 02 79 */ bl OSRestoreInterrupts +/* 803C1414 003BE374 38 60 00 00 */ li r3, 0 +/* 803C1418 003BE378 48 00 00 2C */ b lbl_803C1444 +lbl_803C141C: +/* 803C141C 003BE37C 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 803C1420 003BE380 60 00 00 10 */ ori r0, r0, 0x10 +/* 803C1424 003BE384 90 1E 00 0C */ stw r0, 0xc(r30) +/* 803C1428 003BE388 93 FE 00 18 */ stw r31, 0x18(r30) +/* 803C142C 003BE38C 38 7B 00 00 */ addi r3, r27, 0 +/* 803C1430 003BE390 38 9E 00 00 */ addi r4, r30, 0 +/* 803C1434 003BE394 4B FF EB E1 */ bl SetExiInterruptMask +/* 803C1438 003BE398 7F A3 EB 78 */ mr r3, r29 +/* 803C143C 003BE39C 4B FC 02 4D */ bl OSRestoreInterrupts +/* 803C1440 003BE3A0 38 60 00 01 */ li r3, 1 +lbl_803C1444: +/* 803C1444 003BE3A4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803C1448 003BE3A8 BB 61 00 1C */ lmw r27, 0x1c(r1) +/* 803C144C 003BE3AC 38 21 00 30 */ addi r1, r1, 0x30 +/* 803C1450 003BE3B0 7C 08 03 A6 */ mtlr r0 +/* 803C1454 003BE3B4 4E 80 00 20 */ blr + +.global EXIUnlock +EXIUnlock: +/* 803C1458 003BE3B8 7C 08 02 A6 */ mflr r0 +/* 803C145C 003BE3BC 90 01 00 04 */ stw r0, 4(r1) +/* 803C1460 003BE3C0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803C1464 003BE3C4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803C1468 003BE3C8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803C146C 003BE3CC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803C1470 003BE3D0 93 81 00 10 */ stw r28, 0x10(r1) +/* 803C1474 003BE3D4 3B 83 00 00 */ addi r28, r3, 0 +/* 803C1478 003BE3D8 54 64 30 32 */ slwi r4, r3, 6 +/* 803C147C 003BE3DC 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C1480 003BE3E0 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C1484 003BE3E4 7F E0 22 14 */ add r31, r0, r4 +/* 803C1488 003BE3E8 4B FC 01 D9 */ bl OSDisableInterrupts +/* 803C148C 003BE3EC 7C 7E 1B 78 */ mr r30, r3 +/* 803C1490 003BE3F0 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C1494 003BE3F4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C1498 003BE3F8 40 82 00 14 */ bne lbl_803C14AC +/* 803C149C 003BE3FC 7F C3 F3 78 */ mr r3, r30 +/* 803C14A0 003BE400 4B FC 01 E9 */ bl OSRestoreInterrupts +/* 803C14A4 003BE404 38 60 00 00 */ li r3, 0 +/* 803C14A8 003BE408 48 00 00 6C */ b lbl_803C1514 +lbl_803C14AC: +/* 803C14AC 003BE40C 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C14B0 003BE410 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a +/* 803C14B4 003BE414 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803C14B8 003BE418 38 7C 00 00 */ addi r3, r28, 0 +/* 803C14BC 003BE41C 38 9F 00 00 */ addi r4, r31, 0 +/* 803C14C0 003BE420 4B FF EB 55 */ bl SetExiInterruptMask +/* 803C14C4 003BE424 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803C14C8 003BE428 2C 03 00 00 */ cmpwi r3, 0 +/* 803C14CC 003BE42C 40 81 00 3C */ ble lbl_803C1508 +/* 803C14D0 003BE430 83 BF 00 2C */ lwz r29, 0x2c(r31) +/* 803C14D4 003BE434 34 03 FF FF */ addic. r0, r3, -1 +/* 803C14D8 003BE438 90 1F 00 24 */ stw r0, 0x24(r31) +/* 803C14DC 003BE43C 40 81 00 18 */ ble lbl_803C14F4 +/* 803C14E0 003BE440 38 7F 00 28 */ addi r3, r31, 0x28 +/* 803C14E4 003BE444 38 9F 00 30 */ addi r4, r31, 0x30 +/* 803C14E8 003BE448 80 1F 00 24 */ lwz r0, 0x24(r31) +/* 803C14EC 003BE44C 54 05 18 38 */ slwi r5, r0, 3 +/* 803C14F0 003BE450 4B FC C4 31 */ bl memmove +lbl_803C14F4: +/* 803C14F4 003BE454 38 7C 00 00 */ addi r3, r28, 0 +/* 803C14F8 003BE458 38 80 00 00 */ li r4, 0 +/* 803C14FC 003BE45C 39 9D 00 00 */ addi r12, r29, 0 +/* 803C1500 003BE460 7D 88 03 A6 */ mtlr r12 +/* 803C1504 003BE464 4E 80 00 21 */ blrl +lbl_803C1508: +/* 803C1508 003BE468 7F C3 F3 78 */ mr r3, r30 +/* 803C150C 003BE46C 4B FC 01 7D */ bl OSRestoreInterrupts +/* 803C1510 003BE470 38 60 00 01 */ li r3, 1 +lbl_803C1514: +/* 803C1514 003BE474 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803C1518 003BE478 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803C151C 003BE47C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803C1520 003BE480 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803C1524 003BE484 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803C1528 003BE488 38 21 00 20 */ addi r1, r1, 0x20 +/* 803C152C 003BE48C 7C 08 03 A6 */ mtlr r0 +/* 803C1530 003BE490 4E 80 00 20 */ blr + +.global EXIGetState +EXIGetState: +/* 803C1534 003BE494 54 64 30 32 */ slwi r4, r3, 6 +/* 803C1538 003BE498 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C153C 003BE49C 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C1540 003BE4A0 7C 60 22 14 */ add r3, r0, r4 +/* 803C1544 003BE4A4 80 63 00 0C */ lwz r3, 0xc(r3) +/* 803C1548 003BE4A8 4E 80 00 20 */ blr + +.global UnlockedHandler +UnlockedHandler: +/* 803C154C 003BE4AC 7C 08 02 A6 */ mflr r0 +/* 803C1550 003BE4B0 90 01 00 04 */ stw r0, 4(r1) +/* 803C1554 003BE4B4 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803C1558 003BE4B8 38 80 00 00 */ li r4, 0 +/* 803C155C 003BE4BC 38 A1 00 10 */ addi r5, r1, 0x10 +/* 803C1560 003BE4C0 48 00 00 15 */ bl EXIGetID +/* 803C1564 003BE4C4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803C1568 003BE4C8 38 21 00 18 */ addi r1, r1, 0x18 +/* 803C156C 003BE4CC 7C 08 03 A6 */ mtlr r0 +/* 803C1570 003BE4D0 4E 80 00 20 */ blr + +.global EXIGetID +EXIGetID: +/* 803C1574 003BE4D4 7C 08 02 A6 */ mflr r0 +/* 803C1578 003BE4D8 90 01 00 04 */ stw r0, 4(r1) +/* 803C157C 003BE4DC 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803C1580 003BE4E0 BF 01 00 20 */ stmw r24, 0x20(r1) +/* 803C1584 003BE4E4 3B 43 00 00 */ addi r26, r3, 0 +/* 803C1588 003BE4E8 3B 64 00 00 */ addi r27, r4, 0 +/* 803C158C 003BE4EC 3B 85 00 00 */ addi r28, r5, 0 +/* 803C1590 003BE4F0 54 64 30 32 */ slwi r4, r3, 6 +/* 803C1594 003BE4F4 3C 60 80 57 */ lis r3, lbl_80569E98@ha +/* 803C1598 003BE4F8 38 03 9E 98 */ addi r0, r3, lbl_80569E98@l +/* 803C159C 003BE4FC 7F E0 22 14 */ add r31, r0, r4 +/* 803C15A0 003BE500 2C 1A 00 02 */ cmpwi r26, 2 +/* 803C15A4 003BE504 40 80 00 E0 */ bge lbl_803C1684 +/* 803C15A8 003BE508 28 1B 00 00 */ cmplwi r27, 0 +/* 803C15AC 003BE50C 40 82 00 D8 */ bne lbl_803C1684 +/* 803C15B0 003BE510 7F 43 D3 78 */ mr r3, r26 +/* 803C15B4 003BE514 4B FF F2 39 */ bl __EXIProbe +/* 803C15B8 003BE518 2C 03 00 00 */ cmpwi r3, 0 +/* 803C15BC 003BE51C 40 82 00 0C */ bne lbl_803C15C8 +/* 803C15C0 003BE520 38 60 00 00 */ li r3, 0 +/* 803C15C4 003BE524 48 00 03 18 */ b lbl_803C18DC +lbl_803C15C8: +/* 803C15C8 003BE528 80 9F 00 20 */ lwz r4, 0x20(r31) +/* 803C15CC 003BE52C 57 40 10 3A */ slwi r0, r26, 2 +/* 803C15D0 003BE530 3C 60 80 00 */ lis r3, 0x800030C0@ha +/* 803C15D4 003BE534 3B C3 30 C0 */ addi r30, r3, 0x800030C0@l +/* 803C15D8 003BE538 7F DE 02 14 */ add r30, r30, r0 +/* 803C15DC 003BE53C 80 1E 00 00 */ lwz r0, 0(r30) +/* 803C15E0 003BE540 7C 04 00 00 */ cmpw r4, r0 +/* 803C15E4 003BE544 40 82 00 14 */ bne lbl_803C15F8 +/* 803C15E8 003BE548 80 1F 00 1C */ lwz r0, 0x1c(r31) +/* 803C15EC 003BE54C 90 1C 00 00 */ stw r0, 0(r28) +/* 803C15F0 003BE550 80 7F 00 20 */ lwz r3, 0x20(r31) +/* 803C15F4 003BE554 48 00 02 E8 */ b lbl_803C18DC +lbl_803C15F8: +/* 803C15F8 003BE558 4B FC 00 69 */ bl OSDisableInterrupts +/* 803C15FC 003BE55C 7C 7D 1B 78 */ mr r29, r3 +/* 803C1600 003BE560 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C1604 003BE564 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803C1608 003BE568 40 82 00 14 */ bne lbl_803C161C +/* 803C160C 003BE56C 7F 43 D3 78 */ mr r3, r26 +/* 803C1610 003BE570 4B FF F1 DD */ bl __EXIProbe +/* 803C1614 003BE574 2C 03 00 00 */ cmpwi r3, 0 +/* 803C1618 003BE578 40 82 00 14 */ bne lbl_803C162C +lbl_803C161C: +/* 803C161C 003BE57C 7F A3 EB 78 */ mr r3, r29 +/* 803C1620 003BE580 4B FC 00 69 */ bl OSRestoreInterrupts +/* 803C1624 003BE584 38 00 00 00 */ li r0, 0 +/* 803C1628 003BE588 48 00 00 48 */ b lbl_803C1670 +lbl_803C162C: +/* 803C162C 003BE58C 38 7A 00 00 */ addi r3, r26, 0 +/* 803C1630 003BE590 38 80 00 01 */ li r4, 1 +/* 803C1634 003BE594 38 A0 00 00 */ li r5, 0 +/* 803C1638 003BE598 38 C0 00 00 */ li r6, 0 +/* 803C163C 003BE59C 4B FF F0 ED */ bl EXIClearInterrupts +/* 803C1640 003BE5A0 38 00 00 00 */ li r0, 0 +/* 803C1644 003BE5A4 90 1F 00 08 */ stw r0, 8(r31) +/* 803C1648 003BE5A8 3C 60 00 10 */ lis r3, 0x10 +/* 803C164C 003BE5AC 1C 1A 00 03 */ mulli r0, r26, 3 +/* 803C1650 003BE5B0 7C 63 04 30 */ srw r3, r3, r0 +/* 803C1654 003BE5B4 4B FC 04 5D */ bl __OSUnmaskInterrupts +/* 803C1658 003BE5B8 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C165C 003BE5BC 60 00 00 08 */ ori r0, r0, 8 +/* 803C1660 003BE5C0 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803C1664 003BE5C4 7F A3 EB 78 */ mr r3, r29 +/* 803C1668 003BE5C8 4B FC 00 21 */ bl OSRestoreInterrupts +/* 803C166C 003BE5CC 38 00 00 01 */ li r0, 1 +lbl_803C1670: +/* 803C1670 003BE5D0 2C 00 00 00 */ cmpwi r0, 0 +/* 803C1674 003BE5D4 40 82 00 0C */ bne lbl_803C1680 +/* 803C1678 003BE5D8 38 60 00 00 */ li r3, 0 +/* 803C167C 003BE5DC 48 00 02 60 */ b lbl_803C18DC +lbl_803C1680: +/* 803C1680 003BE5E0 83 BE 00 00 */ lwz r29, 0(r30) +lbl_803C1684: +/* 803C1684 003BE5E4 38 00 00 00 */ li r0, 0 +/* 803C1688 003BE5E8 2C 1A 00 02 */ cmpwi r26, 2 +/* 803C168C 003BE5EC 40 80 00 10 */ bge lbl_803C169C +/* 803C1690 003BE5F0 28 1B 00 00 */ cmplwi r27, 0 +/* 803C1694 003BE5F4 40 82 00 08 */ bne lbl_803C169C +/* 803C1698 003BE5F8 38 00 00 01 */ li r0, 1 +lbl_803C169C: +/* 803C169C 003BE5FC 2C 00 00 00 */ cmpwi r0, 0 +/* 803C16A0 003BE600 41 82 00 10 */ beq lbl_803C16B0 +/* 803C16A4 003BE604 3C 60 80 3C */ lis r3, UnlockedHandler@ha +/* 803C16A8 003BE608 38 A3 15 4C */ addi r5, r3, UnlockedHandler@l +/* 803C16AC 003BE60C 48 00 00 08 */ b lbl_803C16B4 +lbl_803C16B0: +/* 803C16B0 003BE610 38 A0 00 00 */ li r5, 0 +lbl_803C16B4: +/* 803C16B4 003BE614 38 7A 00 00 */ addi r3, r26, 0 +/* 803C16B8 003BE618 38 9B 00 00 */ addi r4, r27, 0 +/* 803C16BC 003BE61C 4B FF FC A9 */ bl EXILock +/* 803C16C0 003BE620 7C 60 00 34 */ cntlzw r0, r3 +/* 803C16C4 003BE624 54 00 D9 7E */ srwi r0, r0, 5 +/* 803C16C8 003BE628 7C 1E 03 79 */ or. r30, r0, r0 +/* 803C16CC 003BE62C 40 82 01 34 */ bne lbl_803C1800 +/* 803C16D0 003BE630 38 7A 00 00 */ addi r3, r26, 0 +/* 803C16D4 003BE634 38 9B 00 00 */ addi r4, r27, 0 +/* 803C16D8 003BE638 38 A0 00 00 */ li r5, 0 +/* 803C16DC 003BE63C 4B FF F5 81 */ bl EXISelect +/* 803C16E0 003BE640 7C 60 00 34 */ cntlzw r0, r3 +/* 803C16E4 003BE644 54 00 D9 7E */ srwi r0, r0, 5 +/* 803C16E8 003BE648 7C 1E 03 79 */ or. r30, r0, r0 +/* 803C16EC 003BE64C 40 82 00 90 */ bne lbl_803C177C +/* 803C16F0 003BE650 38 00 00 00 */ li r0, 0 +/* 803C16F4 003BE654 90 01 00 1C */ stw r0, 0x1c(r1) +/* 803C16F8 003BE658 38 7A 00 00 */ addi r3, r26, 0 +/* 803C16FC 003BE65C 38 81 00 1C */ addi r4, r1, 0x1c +/* 803C1700 003BE660 38 A0 00 02 */ li r5, 2 +/* 803C1704 003BE664 38 C0 00 01 */ li r6, 1 +/* 803C1708 003BE668 38 E0 00 00 */ li r7, 0 +/* 803C170C 003BE66C 4B FF E9 FD */ bl EXIImm +/* 803C1710 003BE670 7C 60 00 34 */ cntlzw r0, r3 +/* 803C1714 003BE674 54 00 D9 7E */ srwi r0, r0, 5 +/* 803C1718 003BE678 7F DE 03 78 */ or r30, r30, r0 +/* 803C171C 003BE67C 38 7A 00 00 */ addi r3, r26, 0 +/* 803C1720 003BE680 4B FF ED D1 */ bl sub_803c04f0 +/* 803C1724 003BE684 7C 60 00 34 */ cntlzw r0, r3 +/* 803C1728 003BE688 54 00 D9 7E */ srwi r0, r0, 5 +/* 803C172C 003BE68C 7F DE 03 78 */ or r30, r30, r0 +/* 803C1730 003BE690 38 7A 00 00 */ addi r3, r26, 0 +/* 803C1734 003BE694 38 9C 00 00 */ addi r4, r28, 0 +/* 803C1738 003BE698 38 A0 00 04 */ li r5, 4 +/* 803C173C 003BE69C 38 C0 00 00 */ li r6, 0 +/* 803C1740 003BE6A0 38 E0 00 00 */ li r7, 0 +/* 803C1744 003BE6A4 4B FF E9 C5 */ bl EXIImm +/* 803C1748 003BE6A8 7C 60 00 34 */ cntlzw r0, r3 +/* 803C174C 003BE6AC 54 00 D9 7E */ srwi r0, r0, 5 +/* 803C1750 003BE6B0 7F DE 03 78 */ or r30, r30, r0 +/* 803C1754 003BE6B4 38 7A 00 00 */ addi r3, r26, 0 +/* 803C1758 003BE6B8 4B FF ED 99 */ bl sub_803c04f0 +/* 803C175C 003BE6BC 7C 60 00 34 */ cntlzw r0, r3 +/* 803C1760 003BE6C0 54 00 D9 7E */ srwi r0, r0, 5 +/* 803C1764 003BE6C4 7F DE 03 78 */ or r30, r30, r0 +/* 803C1768 003BE6C8 38 7A 00 00 */ addi r3, r26, 0 +/* 803C176C 003BE6CC 4B FF F6 1D */ bl EXIDeselect +/* 803C1770 003BE6D0 7C 60 00 34 */ cntlzw r0, r3 +/* 803C1774 003BE6D4 54 00 D9 7E */ srwi r0, r0, 5 +/* 803C1778 003BE6D8 7F DE 03 78 */ or r30, r30, r0 +lbl_803C177C: +/* 803C177C 003BE6DC 4B FB FE E5 */ bl OSDisableInterrupts +/* 803C1780 003BE6E0 7C 78 1B 78 */ mr r24, r3 +/* 803C1784 003BE6E4 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C1788 003BE6E8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C178C 003BE6EC 40 82 00 10 */ bne lbl_803C179C +/* 803C1790 003BE6F0 7F 03 C3 78 */ mr r3, r24 +/* 803C1794 003BE6F4 4B FB FE F5 */ bl OSRestoreInterrupts +/* 803C1798 003BE6F8 48 00 00 68 */ b lbl_803C1800 +lbl_803C179C: +/* 803C179C 003BE6FC 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C17A0 003BE700 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a +/* 803C17A4 003BE704 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803C17A8 003BE708 38 7A 00 00 */ addi r3, r26, 0 +/* 803C17AC 003BE70C 38 9F 00 00 */ addi r4, r31, 0 +/* 803C17B0 003BE710 4B FF E8 65 */ bl SetExiInterruptMask +/* 803C17B4 003BE714 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803C17B8 003BE718 2C 03 00 00 */ cmpwi r3, 0 +/* 803C17BC 003BE71C 40 81 00 3C */ ble lbl_803C17F8 +/* 803C17C0 003BE720 83 3F 00 2C */ lwz r25, 0x2c(r31) +/* 803C17C4 003BE724 34 03 FF FF */ addic. r0, r3, -1 +/* 803C17C8 003BE728 90 1F 00 24 */ stw r0, 0x24(r31) +/* 803C17CC 003BE72C 40 81 00 18 */ ble lbl_803C17E4 +/* 803C17D0 003BE730 38 7F 00 28 */ addi r3, r31, 0x28 +/* 803C17D4 003BE734 38 9F 00 30 */ addi r4, r31, 0x30 +/* 803C17D8 003BE738 80 1F 00 24 */ lwz r0, 0x24(r31) +/* 803C17DC 003BE73C 54 05 18 38 */ slwi r5, r0, 3 +/* 803C17E0 003BE740 4B FC C1 41 */ bl memmove +lbl_803C17E4: +/* 803C17E4 003BE744 38 7A 00 00 */ addi r3, r26, 0 +/* 803C17E8 003BE748 38 80 00 00 */ li r4, 0 +/* 803C17EC 003BE74C 39 99 00 00 */ addi r12, r25, 0 +/* 803C17F0 003BE750 7D 88 03 A6 */ mtlr r12 +/* 803C17F4 003BE754 4E 80 00 21 */ blrl +lbl_803C17F8: +/* 803C17F8 003BE758 7F 03 C3 78 */ mr r3, r24 +/* 803C17FC 003BE75C 4B FB FE 8D */ bl OSRestoreInterrupts +lbl_803C1800: +/* 803C1800 003BE760 2C 1A 00 02 */ cmpwi r26, 2 +/* 803C1804 003BE764 40 80 00 C4 */ bge lbl_803C18C8 +/* 803C1808 003BE768 28 1B 00 00 */ cmplwi r27, 0 +/* 803C180C 003BE76C 40 82 00 BC */ bne lbl_803C18C8 +/* 803C1810 003BE770 4B FB FE 51 */ bl OSDisableInterrupts +/* 803C1814 003BE774 7C 78 1B 78 */ mr r24, r3 +/* 803C1818 003BE778 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C181C 003BE77C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803C1820 003BE780 40 82 00 10 */ bne lbl_803C1830 +/* 803C1824 003BE784 7F 03 C3 78 */ mr r3, r24 +/* 803C1828 003BE788 4B FB FE 61 */ bl OSRestoreInterrupts +/* 803C182C 003BE78C 48 00 00 4C */ b lbl_803C1878 +lbl_803C1830: +/* 803C1830 003BE790 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C1834 003BE794 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803C1838 003BE798 41 82 00 1C */ beq lbl_803C1854 +/* 803C183C 003BE79C 80 1F 00 18 */ lwz r0, 0x18(r31) +/* 803C1840 003BE7A0 28 00 00 00 */ cmplwi r0, 0 +/* 803C1844 003BE7A4 40 82 00 10 */ bne lbl_803C1854 +/* 803C1848 003BE7A8 7F 03 C3 78 */ mr r3, r24 +/* 803C184C 003BE7AC 4B FB FE 3D */ bl OSRestoreInterrupts +/* 803C1850 003BE7B0 48 00 00 28 */ b lbl_803C1878 +lbl_803C1854: +/* 803C1854 003BE7B4 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803C1858 003BE7B8 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 803C185C 003BE7BC 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803C1860 003BE7C0 3C 60 00 50 */ lis r3, 0x50 +/* 803C1864 003BE7C4 1C 1A 00 03 */ mulli r0, r26, 3 +/* 803C1868 003BE7C8 7C 63 04 30 */ srw r3, r3, r0 +/* 803C186C 003BE7CC 4B FC 01 BD */ bl __OSMaskInterrupts +/* 803C1870 003BE7D0 7F 03 C3 78 */ mr r3, r24 +/* 803C1874 003BE7D4 4B FB FE 15 */ bl OSRestoreInterrupts +lbl_803C1878: +/* 803C1878 003BE7D8 4B FB FD E9 */ bl OSDisableInterrupts +/* 803C187C 003BE7DC 57 40 10 3A */ slwi r0, r26, 2 +/* 803C1880 003BE7E0 3C 80 80 00 */ lis r4, 0x800030C0@ha +/* 803C1884 003BE7E4 38 84 30 C0 */ addi r4, r4, 0x800030C0@l +/* 803C1888 003BE7E8 7C 04 00 2E */ lwzx r0, r4, r0 +/* 803C188C 003BE7EC 7C 9D 00 50 */ subf r4, r29, r0 +/* 803C1890 003BE7F0 30 04 FF FF */ addic r0, r4, -1 +/* 803C1894 003BE7F4 7C 00 21 10 */ subfe r0, r0, r4 +/* 803C1898 003BE7F8 7F DE 03 79 */ or. r30, r30, r0 +/* 803C189C 003BE7FC 40 82 00 10 */ bne lbl_803C18AC +/* 803C18A0 003BE800 80 1C 00 00 */ lwz r0, 0(r28) +/* 803C18A4 003BE804 90 1F 00 1C */ stw r0, 0x1c(r31) +/* 803C18A8 003BE808 93 BF 00 20 */ stw r29, 0x20(r31) +lbl_803C18AC: +/* 803C18AC 003BE80C 4B FB FD DD */ bl OSRestoreInterrupts +/* 803C18B0 003BE810 2C 1E 00 00 */ cmpwi r30, 0 +/* 803C18B4 003BE814 41 82 00 0C */ beq lbl_803C18C0 +/* 803C18B8 003BE818 38 60 00 00 */ li r3, 0 +/* 803C18BC 003BE81C 48 00 00 20 */ b lbl_803C18DC +lbl_803C18C0: +/* 803C18C0 003BE820 80 7F 00 20 */ lwz r3, 0x20(r31) +/* 803C18C4 003BE824 48 00 00 18 */ b lbl_803C18DC +lbl_803C18C8: +/* 803C18C8 003BE828 2C 1E 00 00 */ cmpwi r30, 0 +/* 803C18CC 003BE82C 41 82 00 0C */ beq lbl_803C18D8 +/* 803C18D0 003BE830 38 60 00 00 */ li r3, 0 +/* 803C18D4 003BE834 48 00 00 08 */ b lbl_803C18DC +lbl_803C18D8: +/* 803C18D8 003BE838 38 60 00 01 */ li r3, 1 +lbl_803C18DC: +/* 803C18DC 003BE83C 80 01 00 44 */ lwz r0, 0x44(r1) +/* 803C18E0 003BE840 BB 01 00 20 */ lmw r24, 0x20(r1) +/* 803C18E4 003BE844 38 21 00 40 */ addi r1, r1, 0x40 +/* 803C18E8 003BE848 7C 08 03 A6 */ mtlr r0 +/* 803C18EC 003BE84C 4E 80 00 20 */ blr diff --git a/asm/Dolphin/EXIUart.s b/asm/Dolphin/EXIUart.s new file mode 100644 index 00000000..1374567a --- /dev/null +++ b/asm/Dolphin/EXIUart.s @@ -0,0 +1,189 @@ +.include "macros.inc" + +.section .text, "ax" + +.global InitializeUART +InitializeUART: +/* 803C18F0 003BE850 7C 08 02 A6 */ mflr r0 +/* 803C18F4 003BE854 90 01 00 04 */ stw r0, 4(r1) +/* 803C18F8 003BE858 94 21 FF F8 */ stwu r1, -8(r1) +/* 803C18FC 003BE85C 80 6D B0 34 */ lwz r3, lbl_805A9BF4@sda21(r13) +/* 803C1900 003BE860 3C 03 5A 01 */ addis r0, r3, 0x5a01 +/* 803C1904 003BE864 28 00 00 5A */ cmplwi r0, 0x5a +/* 803C1908 003BE868 40 82 00 0C */ bne lbl_803C1914 +/* 803C190C 003BE86C 38 60 00 00 */ li r3, 0 +/* 803C1910 003BE870 48 00 00 40 */ b lbl_803C1950 +lbl_803C1914: +/* 803C1914 003BE874 4B FB BE 09 */ bl OSGetConsoleType +/* 803C1918 003BE878 54 60 00 C7 */ rlwinm. r0, r3, 0, 3, 3 +/* 803C191C 003BE87C 40 82 00 14 */ bne lbl_803C1930 +/* 803C1920 003BE880 38 00 00 00 */ li r0, 0 +/* 803C1924 003BE884 90 0D B0 30 */ stw r0, lbl_805A9BF0@sda21(r13) +/* 803C1928 003BE888 38 60 00 02 */ li r3, 2 +/* 803C192C 003BE88C 48 00 00 24 */ b lbl_803C1950 +lbl_803C1930: +/* 803C1930 003BE890 3C 60 A5 FF */ lis r3, 0xA5FF005A@ha +/* 803C1934 003BE894 38 03 00 5A */ addi r0, r3, 0xA5FF005A@l +/* 803C1938 003BE898 38 60 00 00 */ li r3, 0 +/* 803C193C 003BE89C 90 0D B0 30 */ stw r0, lbl_805A9BF0@sda21(r13) +/* 803C1940 003BE8A0 38 00 00 01 */ li r0, 1 +/* 803C1944 003BE8A4 90 6D B0 28 */ stw r3, lbl_805A9BE8@sda21(r13) +/* 803C1948 003BE8A8 38 60 00 00 */ li r3, 0 +/* 803C194C 003BE8AC 90 0D B0 2C */ stw r0, lbl_805A9BEC@sda21(r13) +lbl_803C1950: +/* 803C1950 003BE8B0 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803C1954 003BE8B4 38 21 00 08 */ addi r1, r1, 8 +/* 803C1958 003BE8B8 7C 08 03 A6 */ mtlr r0 +/* 803C195C 003BE8BC 4E 80 00 20 */ blr + +.global WriteUARTN +WriteUARTN: +/* 803C1960 003BE8C0 7C 08 02 A6 */ mflr r0 +/* 803C1964 003BE8C4 90 01 00 04 */ stw r0, 4(r1) +/* 803C1968 003BE8C8 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803C196C 003BE8CC BF 41 00 18 */ stmw r26, 0x18(r1) +/* 803C1970 003BE8D0 3B C3 00 00 */ addi r30, r3, 0 +/* 803C1974 003BE8D4 3B E4 00 00 */ addi r31, r4, 0 +/* 803C1978 003BE8D8 80 AD B0 30 */ lwz r5, lbl_805A9BF0@sda21(r13) +/* 803C197C 003BE8DC 3C 05 5A 01 */ addis r0, r5, 0x5a01 +/* 803C1980 003BE8E0 28 00 00 5A */ cmplwi r0, 0x5a +/* 803C1984 003BE8E4 41 82 00 0C */ beq lbl_803C1990 +/* 803C1988 003BE8E8 38 60 00 02 */ li r3, 2 +/* 803C198C 003BE8EC 48 00 01 C0 */ b lbl_803C1B4C +lbl_803C1990: +/* 803C1990 003BE8F0 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1994 003BE8F4 38 A0 00 00 */ li r5, 0 +/* 803C1998 003BE8F8 80 8D B0 2C */ lwz r4, lbl_805A9BEC@sda21(r13) +/* 803C199C 003BE8FC 4B FF F9 C9 */ bl EXILock +/* 803C19A0 003BE900 2C 03 00 00 */ cmpwi r3, 0 +/* 803C19A4 003BE904 40 82 00 0C */ bne lbl_803C19B0 +/* 803C19A8 003BE908 38 60 00 00 */ li r3, 0 +/* 803C19AC 003BE90C 48 00 01 A0 */ b lbl_803C1B4C +lbl_803C19B0: +/* 803C19B0 003BE910 38 9E 00 00 */ addi r4, r30, 0 +/* 803C19B4 003BE914 38 60 00 0D */ li r3, 0xd +/* 803C19B8 003BE918 48 00 00 18 */ b lbl_803C19D0 +lbl_803C19BC: +/* 803C19BC 003BE91C 88 04 00 00 */ lbz r0, 0(r4) +/* 803C19C0 003BE920 2C 00 00 0A */ cmpwi r0, 0xa +/* 803C19C4 003BE924 40 82 00 08 */ bne lbl_803C19CC +/* 803C19C8 003BE928 98 64 00 00 */ stb r3, 0(r4) +lbl_803C19CC: +/* 803C19CC 003BE92C 38 84 00 01 */ addi r4, r4, 1 +lbl_803C19D0: +/* 803C19D0 003BE930 7C 1E 20 50 */ subf r0, r30, r4 +/* 803C19D4 003BE934 7C 00 F8 40 */ cmplw r0, r31 +/* 803C19D8 003BE938 41 80 FF E4 */ blt lbl_803C19BC +/* 803C19DC 003BE93C 3C 00 A0 01 */ lis r0, 0xa001 +/* 803C19E0 003BE940 90 01 00 14 */ stw r0, 0x14(r1) +/* 803C19E4 003BE944 3B 40 00 00 */ li r26, 0 +/* 803C19E8 003BE948 3F A0 20 01 */ lis r29, 0x2001 +/* 803C19EC 003BE94C 48 00 01 4C */ b lbl_803C1B38 +lbl_803C19F0: +/* 803C19F0 003BE950 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C19F4 003BE954 38 A0 00 03 */ li r5, 3 +/* 803C19F8 003BE958 80 8D B0 2C */ lwz r4, lbl_805A9BEC@sda21(r13) +/* 803C19FC 003BE95C 4B FF F2 61 */ bl EXISelect +/* 803C1A00 003BE960 2C 03 00 00 */ cmpwi r3, 0 +/* 803C1A04 003BE964 40 82 00 0C */ bne lbl_803C1A10 +/* 803C1A08 003BE968 38 00 FF FF */ li r0, -1 +/* 803C1A0C 003BE96C 48 00 00 5C */ b lbl_803C1A68 +lbl_803C1A10: +/* 803C1A10 003BE970 93 A1 00 10 */ stw r29, 0x10(r1) +/* 803C1A14 003BE974 38 81 00 10 */ addi r4, r1, 0x10 +/* 803C1A18 003BE978 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1A1C 003BE97C 38 A0 00 04 */ li r5, 4 +/* 803C1A20 003BE980 38 C0 00 01 */ li r6, 1 +/* 803C1A24 003BE984 38 E0 00 00 */ li r7, 0 +/* 803C1A28 003BE988 4B FF E6 E1 */ bl EXIImm +/* 803C1A2C 003BE98C 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1A30 003BE990 4B FF EA C1 */ bl sub_803c04f0 +/* 803C1A34 003BE994 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1A38 003BE998 38 81 00 10 */ addi r4, r1, 0x10 +/* 803C1A3C 003BE99C 38 A0 00 01 */ li r5, 1 +/* 803C1A40 003BE9A0 38 C0 00 00 */ li r6, 0 +/* 803C1A44 003BE9A4 38 E0 00 00 */ li r7, 0 +/* 803C1A48 003BE9A8 4B FF E6 C1 */ bl EXIImm +/* 803C1A4C 003BE9AC 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1A50 003BE9B0 4B FF EA A1 */ bl sub_803c04f0 +/* 803C1A54 003BE9B4 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1A58 003BE9B8 4B FF F3 31 */ bl EXIDeselect +/* 803C1A5C 003BE9BC 80 01 00 10 */ lwz r0, 0x10(r1) +/* 803C1A60 003BE9C0 54 00 46 3E */ srwi r0, r0, 0x18 +/* 803C1A64 003BE9C4 20 00 00 10 */ subfic r0, r0, 0x10 +lbl_803C1A68: +/* 803C1A68 003BE9C8 2C 00 00 00 */ cmpwi r0, 0 +/* 803C1A6C 003BE9CC 7C 1B 03 78 */ mr r27, r0 +/* 803C1A70 003BE9D0 40 80 00 0C */ bge lbl_803C1A7C +/* 803C1A74 003BE9D4 3B 40 00 03 */ li r26, 3 +/* 803C1A78 003BE9D8 48 00 00 C8 */ b lbl_803C1B40 +lbl_803C1A7C: +/* 803C1A7C 003BE9DC 2C 00 00 0C */ cmpwi r0, 0xc +/* 803C1A80 003BE9E0 40 80 00 0C */ bge lbl_803C1A8C +/* 803C1A84 003BE9E4 7C 00 F8 40 */ cmplw r0, r31 +/* 803C1A88 003BE9E8 41 80 00 B0 */ blt lbl_803C1B38 +lbl_803C1A8C: +/* 803C1A8C 003BE9EC 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1A90 003BE9F0 38 A0 00 03 */ li r5, 3 +/* 803C1A94 003BE9F4 80 8D B0 2C */ lwz r4, lbl_805A9BEC@sda21(r13) +/* 803C1A98 003BE9F8 4B FF F1 C5 */ bl EXISelect +/* 803C1A9C 003BE9FC 2C 03 00 00 */ cmpwi r3, 0 +/* 803C1AA0 003BEA00 40 82 00 0C */ bne lbl_803C1AAC +/* 803C1AA4 003BEA04 3B 40 00 03 */ li r26, 3 +/* 803C1AA8 003BEA08 48 00 00 98 */ b lbl_803C1B40 +lbl_803C1AAC: +/* 803C1AAC 003BEA0C 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1AB0 003BEA10 38 81 00 14 */ addi r4, r1, 0x14 +/* 803C1AB4 003BEA14 38 A0 00 04 */ li r5, 4 +/* 803C1AB8 003BEA18 38 C0 00 01 */ li r6, 1 +/* 803C1ABC 003BEA1C 38 E0 00 00 */ li r7, 0 +/* 803C1AC0 003BEA20 4B FF E6 49 */ bl EXIImm +/* 803C1AC4 003BEA24 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1AC8 003BEA28 4B FF EA 29 */ bl sub_803c04f0 +/* 803C1ACC 003BEA2C 48 00 00 54 */ b lbl_803C1B20 +lbl_803C1AD0: +/* 803C1AD0 003BEA30 2C 1B 00 04 */ cmpwi r27, 4 +/* 803C1AD4 003BEA34 40 80 00 0C */ bge lbl_803C1AE0 +/* 803C1AD8 003BEA38 7C 1B F8 40 */ cmplw r27, r31 +/* 803C1ADC 003BEA3C 41 80 00 54 */ blt lbl_803C1B30 +lbl_803C1AE0: +/* 803C1AE0 003BEA40 28 1F 00 04 */ cmplwi r31, 4 +/* 803C1AE4 003BEA44 40 80 00 0C */ bge lbl_803C1AF0 +/* 803C1AE8 003BEA48 7F FC FB 78 */ mr r28, r31 +/* 803C1AEC 003BEA4C 48 00 00 08 */ b lbl_803C1AF4 +lbl_803C1AF0: +/* 803C1AF0 003BEA50 3B 80 00 04 */ li r28, 4 +lbl_803C1AF4: +/* 803C1AF4 003BEA54 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1AF8 003BEA58 7F 85 E3 78 */ mr r5, r28 +/* 803C1AFC 003BEA5C 38 9E 00 00 */ addi r4, r30, 0 +/* 803C1B00 003BEA60 38 C0 00 01 */ li r6, 1 +/* 803C1B04 003BEA64 38 E0 00 00 */ li r7, 0 +/* 803C1B08 003BEA68 4B FF E6 01 */ bl EXIImm +/* 803C1B0C 003BEA6C 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1B10 003BEA70 7F DE E2 14 */ add r30, r30, r28 +/* 803C1B14 003BEA74 7F FC F8 50 */ subf r31, r28, r31 +/* 803C1B18 003BEA78 7F 7C D8 50 */ subf r27, r28, r27 +/* 803C1B1C 003BEA7C 4B FF E9 D5 */ bl sub_803c04f0 +lbl_803C1B20: +/* 803C1B20 003BEA80 2C 1B 00 00 */ cmpwi r27, 0 +/* 803C1B24 003BEA84 41 82 00 0C */ beq lbl_803C1B30 +/* 803C1B28 003BEA88 28 1F 00 00 */ cmplwi r31, 0 +/* 803C1B2C 003BEA8C 40 82 FF A4 */ bne lbl_803C1AD0 +lbl_803C1B30: +/* 803C1B30 003BEA90 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1B34 003BEA94 4B FF F2 55 */ bl EXIDeselect +lbl_803C1B38: +/* 803C1B38 003BEA98 28 1F 00 00 */ cmplwi r31, 0 +/* 803C1B3C 003BEA9C 40 82 FE B4 */ bne lbl_803C19F0 +lbl_803C1B40: +/* 803C1B40 003BEAA0 80 6D B0 28 */ lwz r3, lbl_805A9BE8@sda21(r13) +/* 803C1B44 003BEAA4 4B FF F9 15 */ bl EXIUnlock +/* 803C1B48 003BEAA8 7F 43 D3 78 */ mr r3, r26 +lbl_803C1B4C: +/* 803C1B4C 003BEAAC BB 41 00 18 */ lmw r26, 0x18(r1) +/* 803C1B50 003BEAB0 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803C1B54 003BEAB4 38 21 00 30 */ addi r1, r1, 0x30 +/* 803C1B58 003BEAB8 7C 08 03 A6 */ mtlr r0 +/* 803C1B5C 003BEABC 4E 80 00 20 */ blr + diff --git a/asm/Dolphin/SIBios.s b/asm/Dolphin/SIBios.s new file mode 100644 index 00000000..58d335c2 --- /dev/null +++ b/asm/Dolphin/SIBios.s @@ -0,0 +1,1753 @@ +.include "macros.inc" + +.section .text, "ax" + +.global SIBusy +SIBusy: +/* 803BE6AC 003BB60C 3C 60 80 3F */ lis r3, lbl_803F6EE4@ha +/* 803BE6B0 003BB610 80 03 6E E4 */ lwz r0, lbl_803F6EE4@l(r3) +/* 803BE6B4 003BB614 2C 00 FF FF */ cmpwi r0, -1 +/* 803BE6B8 003BB618 41 82 00 0C */ beq lbl_803BE6C4 +/* 803BE6BC 003BB61C 38 60 00 01 */ li r3, 1 +/* 803BE6C0 003BB620 4E 80 00 20 */ blr +lbl_803BE6C4: +/* 803BE6C4 003BB624 38 60 00 00 */ li r3, 0 +/* 803BE6C8 003BB628 4E 80 00 20 */ blr + +.global SIIsChanBusy +SIIsChanBusy: +/* 803BE6CC 003BB62C 3C 80 80 57 */ lis r4, lbl_80569C98@ha +/* 803BE6D0 003BB630 54 65 28 34 */ slwi r5, r3, 5 +/* 803BE6D4 003BB634 38 04 9C 98 */ addi r0, r4, lbl_80569C98@l +/* 803BE6D8 003BB638 7C 80 2A 14 */ add r4, r0, r5 +/* 803BE6DC 003BB63C 80 04 00 00 */ lwz r0, 0(r4) +/* 803BE6E0 003BB640 38 A0 00 01 */ li r5, 1 +/* 803BE6E4 003BB644 2C 00 FF FF */ cmpwi r0, -1 +/* 803BE6E8 003BB648 40 82 00 18 */ bne lbl_803BE700 +/* 803BE6EC 003BB64C 3C 80 80 3F */ lis r4, lbl_803F6EE4@ha +/* 803BE6F0 003BB650 80 04 6E E4 */ lwz r0, lbl_803F6EE4@l(r4) +/* 803BE6F4 003BB654 7C 00 18 00 */ cmpw r0, r3 +/* 803BE6F8 003BB658 41 82 00 08 */ beq lbl_803BE700 +/* 803BE6FC 003BB65C 38 A0 00 00 */ li r5, 0 +lbl_803BE700: +/* 803BE700 003BB660 7C A3 2B 78 */ mr r3, r5 +/* 803BE704 003BB664 4E 80 00 20 */ blr + +.global CompleteTransfer +CompleteTransfer: +/* 803BE708 003BB668 7C 08 02 A6 */ mflr r0 +/* 803BE70C 003BB66C 3C 60 CC 00 */ lis r3, 0xCC006400@ha +/* 803BE710 003BB670 90 01 00 04 */ stw r0, 4(r1) +/* 803BE714 003BB674 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BE718 003BB678 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BE71C 003BB67C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BE720 003BB680 3B C3 64 00 */ addi r30, r3, 0xCC006400@l +/* 803BE724 003BB684 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BE728 003BB688 3B BE 00 34 */ addi r29, r30, 0x34 +/* 803BE72C 003BB68C 93 81 00 10 */ stw r28, 0x10(r1) +/* 803BE730 003BB690 80 03 64 34 */ lwz r0, 0x6434(r3) +/* 803BE734 003BB694 83 83 64 38 */ lwz r28, 0x6438(r3) +/* 803BE738 003BB698 3C 60 80 3F */ lis r3, lbl_803F6EA0@ha +/* 803BE73C 003BB69C 64 00 80 00 */ oris r0, r0, 0x8000 +/* 803BE740 003BB6A0 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 803BE744 003BB6A4 90 1E 00 34 */ stw r0, 0x34(r30) +/* 803BE748 003BB6A8 3B E3 6E A0 */ addi r31, r3, lbl_803F6EA0@l +/* 803BE74C 003BB6AC 80 1F 00 44 */ lwz r0, 0x44(r31) +/* 803BE750 003BB6B0 2C 00 FF FF */ cmpwi r0, -1 +/* 803BE754 003BB6B4 41 82 02 74 */ beq lbl_803BE9C8 +/* 803BE758 003BB6B8 4B FC 6C 71 */ bl __OSGetSystemTime +/* 803BE75C 003BB6BC 80 DF 00 44 */ lwz r6, 0x44(r31) +/* 803BE760 003BB6C0 3C A0 80 57 */ lis r5, lbl_80569DD8@ha +/* 803BE764 003BB6C4 38 05 9D D8 */ addi r0, r5, lbl_80569DD8@l +/* 803BE768 003BB6C8 54 C5 18 38 */ slwi r5, r6, 3 +/* 803BE76C 003BB6CC 7C A0 2A 14 */ add r5, r0, r5 +/* 803BE770 003BB6D0 90 85 00 04 */ stw r4, 4(r5) +/* 803BE774 003BB6D4 38 DF 00 4C */ addi r6, r31, 0x4c +/* 803BE778 003BB6D8 38 80 00 00 */ li r4, 0 +/* 803BE77C 003BB6DC 90 65 00 00 */ stw r3, 0(r5) +/* 803BE780 003BB6E0 80 1F 00 4C */ lwz r0, 0x4c(r31) +/* 803BE784 003BB6E4 80 BF 00 50 */ lwz r5, 0x50(r31) +/* 803BE788 003BB6E8 54 07 F0 BE */ srwi r7, r0, 2 +/* 803BE78C 003BB6EC 28 07 00 00 */ cmplwi r7, 0 +/* 803BE790 003BB6F0 40 81 00 A0 */ ble lbl_803BE830 +/* 803BE794 003BB6F4 28 07 00 08 */ cmplwi r7, 8 +/* 803BE798 003BB6F8 38 67 FF F8 */ addi r3, r7, -8 +/* 803BE79C 003BB6FC 40 81 02 34 */ ble lbl_803BE9D0 +/* 803BE7A0 003BB700 38 03 00 07 */ addi r0, r3, 7 +/* 803BE7A4 003BB704 54 00 E8 FE */ srwi r0, r0, 3 +/* 803BE7A8 003BB708 28 03 00 00 */ cmplwi r3, 0 +/* 803BE7AC 003BB70C 7C 09 03 A6 */ mtctr r0 +/* 803BE7B0 003BB710 40 81 02 20 */ ble lbl_803BE9D0 +lbl_803BE7B4: +/* 803BE7B4 003BB714 80 1E 00 80 */ lwz r0, 0x80(r30) +/* 803BE7B8 003BB718 38 84 00 08 */ addi r4, r4, 8 +/* 803BE7BC 003BB71C 90 05 00 00 */ stw r0, 0(r5) +/* 803BE7C0 003BB720 80 1E 00 84 */ lwz r0, 0x84(r30) +/* 803BE7C4 003BB724 90 05 00 04 */ stw r0, 4(r5) +/* 803BE7C8 003BB728 80 1E 00 88 */ lwz r0, 0x88(r30) +/* 803BE7CC 003BB72C 90 05 00 08 */ stw r0, 8(r5) +/* 803BE7D0 003BB730 80 1E 00 8C */ lwz r0, 0x8c(r30) +/* 803BE7D4 003BB734 90 05 00 0C */ stw r0, 0xc(r5) +/* 803BE7D8 003BB738 80 1E 00 90 */ lwz r0, 0x90(r30) +/* 803BE7DC 003BB73C 90 05 00 10 */ stw r0, 0x10(r5) +/* 803BE7E0 003BB740 80 1E 00 94 */ lwz r0, 0x94(r30) +/* 803BE7E4 003BB744 90 05 00 14 */ stw r0, 0x14(r5) +/* 803BE7E8 003BB748 80 1E 00 98 */ lwz r0, 0x98(r30) +/* 803BE7EC 003BB74C 90 05 00 18 */ stw r0, 0x18(r5) +/* 803BE7F0 003BB750 80 1E 00 9C */ lwz r0, 0x9c(r30) +/* 803BE7F4 003BB754 3B DE 00 20 */ addi r30, r30, 0x20 +/* 803BE7F8 003BB758 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803BE7FC 003BB75C 38 A5 00 20 */ addi r5, r5, 0x20 +/* 803BE800 003BB760 42 00 FF B4 */ bdnz lbl_803BE7B4 +/* 803BE804 003BB764 48 00 01 CC */ b lbl_803BE9D0 +lbl_803BE808: +/* 803BE808 003BB768 7C 04 38 50 */ subf r0, r4, r7 +/* 803BE80C 003BB76C 7C 04 38 40 */ cmplw r4, r7 +/* 803BE810 003BB770 7C 09 03 A6 */ mtctr r0 +/* 803BE814 003BB774 40 80 00 1C */ bge lbl_803BE830 +lbl_803BE818: +/* 803BE818 003BB778 80 03 00 80 */ lwz r0, 0x80(r3) +/* 803BE81C 003BB77C 38 63 00 04 */ addi r3, r3, 4 +/* 803BE820 003BB780 38 84 00 01 */ addi r4, r4, 1 +/* 803BE824 003BB784 90 05 00 00 */ stw r0, 0(r5) +/* 803BE828 003BB788 38 A5 00 04 */ addi r5, r5, 4 +/* 803BE82C 003BB78C 42 00 FF EC */ bdnz lbl_803BE818 +lbl_803BE830: +/* 803BE830 003BB790 80 06 00 00 */ lwz r0, 0(r6) +/* 803BE834 003BB794 54 03 07 BF */ clrlwi. r3, r0, 0x1e +/* 803BE838 003BB798 41 82 01 10 */ beq lbl_803BE948 +/* 803BE83C 003BB79C 3C C0 CC 00 */ lis r6, 0xCC006400@ha +/* 803BE840 003BB7A0 38 C6 64 00 */ addi r6, r6, 0xCC006400@l +/* 803BE844 003BB7A4 54 80 10 3A */ slwi r0, r4, 2 +/* 803BE848 003BB7A8 7C 86 02 14 */ add r4, r6, r0 +/* 803BE84C 003BB7AC 80 C4 00 80 */ lwz r6, 0x80(r4) +/* 803BE850 003BB7B0 38 80 00 00 */ li r4, 0 +/* 803BE854 003BB7B4 40 81 00 F4 */ ble lbl_803BE948 +/* 803BE858 003BB7B8 28 03 00 08 */ cmplwi r3, 8 +/* 803BE85C 003BB7BC 38 E3 FF F8 */ addi r7, r3, -8 +/* 803BE860 003BB7C0 40 81 00 BC */ ble lbl_803BE91C +/* 803BE864 003BB7C4 38 07 00 07 */ addi r0, r7, 7 +/* 803BE868 003BB7C8 54 00 E8 FE */ srwi r0, r0, 3 +/* 803BE86C 003BB7CC 28 07 00 00 */ cmplwi r7, 0 +/* 803BE870 003BB7D0 7C 09 03 A6 */ mtctr r0 +/* 803BE874 003BB7D4 40 81 00 A8 */ ble lbl_803BE91C +lbl_803BE878: +/* 803BE878 003BB7D8 20 04 00 03 */ subfic r0, r4, 3 +/* 803BE87C 003BB7DC 54 07 18 38 */ slwi r7, r0, 3 +/* 803BE880 003BB7E0 38 04 00 01 */ addi r0, r4, 1 +/* 803BE884 003BB7E4 7C C7 3C 30 */ srw r7, r6, r7 +/* 803BE888 003BB7E8 20 00 00 03 */ subfic r0, r0, 3 +/* 803BE88C 003BB7EC 98 E5 00 00 */ stb r7, 0(r5) +/* 803BE890 003BB7F0 54 00 18 38 */ slwi r0, r0, 3 +/* 803BE894 003BB7F4 38 E4 00 02 */ addi r7, r4, 2 +/* 803BE898 003BB7F8 7C C0 04 30 */ srw r0, r6, r0 +/* 803BE89C 003BB7FC 20 E7 00 03 */ subfic r7, r7, 3 +/* 803BE8A0 003BB800 98 05 00 01 */ stb r0, 1(r5) +/* 803BE8A4 003BB804 54 E7 18 38 */ slwi r7, r7, 3 +/* 803BE8A8 003BB808 7C CC 3C 30 */ srw r12, r6, r7 +/* 803BE8AC 003BB80C 7C E4 00 D0 */ neg r7, r4 +/* 803BE8B0 003BB810 99 85 00 02 */ stb r12, 2(r5) +/* 803BE8B4 003BB814 54 E8 18 38 */ slwi r8, r7, 3 +/* 803BE8B8 003BB818 38 E4 00 04 */ addi r7, r4, 4 +/* 803BE8BC 003BB81C 7C CB 44 30 */ srw r11, r6, r8 +/* 803BE8C0 003BB820 20 E7 00 03 */ subfic r7, r7, 3 +/* 803BE8C4 003BB824 99 65 00 03 */ stb r11, 3(r5) +/* 803BE8C8 003BB828 54 E8 18 38 */ slwi r8, r7, 3 +/* 803BE8CC 003BB82C 38 E4 00 05 */ addi r7, r4, 5 +/* 803BE8D0 003BB830 7C CA 44 30 */ srw r10, r6, r8 +/* 803BE8D4 003BB834 20 E7 00 03 */ subfic r7, r7, 3 +/* 803BE8D8 003BB838 99 45 00 04 */ stb r10, 4(r5) +/* 803BE8DC 003BB83C 54 E8 18 38 */ slwi r8, r7, 3 +/* 803BE8E0 003BB840 7C C9 44 30 */ srw r9, r6, r8 +/* 803BE8E4 003BB844 38 E4 00 06 */ addi r7, r4, 6 +/* 803BE8E8 003BB848 99 25 00 05 */ stb r9, 5(r5) +/* 803BE8EC 003BB84C 21 07 00 03 */ subfic r8, r7, 3 +/* 803BE8F0 003BB850 38 E4 00 07 */ addi r7, r4, 7 +/* 803BE8F4 003BB854 55 08 18 38 */ slwi r8, r8, 3 +/* 803BE8F8 003BB858 7C C8 44 30 */ srw r8, r6, r8 +/* 803BE8FC 003BB85C 20 E7 00 03 */ subfic r7, r7, 3 +/* 803BE900 003BB860 99 05 00 06 */ stb r8, 6(r5) +/* 803BE904 003BB864 54 E7 18 38 */ slwi r7, r7, 3 +/* 803BE908 003BB868 7C C7 3C 30 */ srw r7, r6, r7 +/* 803BE90C 003BB86C 98 E5 00 07 */ stb r7, 7(r5) +/* 803BE910 003BB870 38 A5 00 08 */ addi r5, r5, 8 +/* 803BE914 003BB874 38 84 00 08 */ addi r4, r4, 8 +/* 803BE918 003BB878 42 00 FF 60 */ bdnz lbl_803BE878 +lbl_803BE91C: +/* 803BE91C 003BB87C 7C 04 18 50 */ subf r0, r4, r3 +/* 803BE920 003BB880 7C 04 18 40 */ cmplw r4, r3 +/* 803BE924 003BB884 7C 09 03 A6 */ mtctr r0 +/* 803BE928 003BB888 40 80 00 20 */ bge lbl_803BE948 +lbl_803BE92C: +/* 803BE92C 003BB88C 20 04 00 03 */ subfic r0, r4, 3 +/* 803BE930 003BB890 54 00 18 38 */ slwi r0, r0, 3 +/* 803BE934 003BB894 7C C0 04 30 */ srw r0, r6, r0 +/* 803BE938 003BB898 98 05 00 00 */ stb r0, 0(r5) +/* 803BE93C 003BB89C 38 A5 00 01 */ addi r5, r5, 1 +/* 803BE940 003BB8A0 38 84 00 01 */ addi r4, r4, 1 +/* 803BE944 003BB8A4 42 00 FF E8 */ bdnz lbl_803BE92C +lbl_803BE948: +/* 803BE948 003BB8A8 80 1D 00 00 */ lwz r0, 0(r29) +/* 803BE94C 003BB8AC 54 00 00 85 */ rlwinm. r0, r0, 0, 2, 2 +/* 803BE950 003BB8B0 41 82 00 4C */ beq lbl_803BE99C +/* 803BE954 003BB8B4 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 803BE958 003BB8B8 20 03 00 03 */ subfic r0, r3, 3 +/* 803BE95C 003BB8BC 54 00 18 38 */ slwi r0, r0, 3 +/* 803BE960 003BB8C0 7F 9C 04 30 */ srw r28, r28, r0 +/* 803BE964 003BB8C4 57 9C 07 3E */ clrlwi r28, r28, 0x1c +/* 803BE968 003BB8C8 57 80 07 39 */ rlwinm. r0, r28, 0, 0x1c, 0x1c +/* 803BE96C 003BB8CC 41 82 00 20 */ beq lbl_803BE98C +/* 803BE970 003BB8D0 54 60 10 3A */ slwi r0, r3, 2 +/* 803BE974 003BB8D4 7C 7F 02 14 */ add r3, r31, r0 +/* 803BE978 003BB8D8 84 03 00 58 */ lwzu r0, 0x58(r3) +/* 803BE97C 003BB8DC 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 803BE980 003BB8E0 40 82 00 0C */ bne lbl_803BE98C +/* 803BE984 003BB8E4 38 00 00 08 */ li r0, 8 +/* 803BE988 003BB8E8 90 03 00 00 */ stw r0, 0(r3) +lbl_803BE98C: +/* 803BE98C 003BB8EC 28 1C 00 00 */ cmplwi r28, 0 +/* 803BE990 003BB8F0 40 82 00 30 */ bne lbl_803BE9C0 +/* 803BE994 003BB8F4 3B 80 00 04 */ li r28, 4 +/* 803BE998 003BB8F8 48 00 00 28 */ b lbl_803BE9C0 +lbl_803BE99C: +/* 803BE99C 003BB8FC 4B FC 6A 2D */ bl __OSGetSystemTime +/* 803BE9A0 003BB900 80 DF 00 44 */ lwz r6, 0x44(r31) +/* 803BE9A4 003BB904 3C A0 80 57 */ lis r5, lbl_80569DB8@ha +/* 803BE9A8 003BB908 38 05 9D B8 */ addi r0, r5, lbl_80569DB8@l +/* 803BE9AC 003BB90C 54 C5 18 38 */ slwi r5, r6, 3 +/* 803BE9B0 003BB910 7C A0 2A 14 */ add r5, r0, r5 +/* 803BE9B4 003BB914 90 85 00 04 */ stw r4, 4(r5) +/* 803BE9B8 003BB918 3B 80 00 00 */ li r28, 0 +/* 803BE9BC 003BB91C 90 65 00 00 */ stw r3, 0(r5) +lbl_803BE9C0: +/* 803BE9C0 003BB920 38 00 FF FF */ li r0, -1 +/* 803BE9C4 003BB924 90 1F 00 44 */ stw r0, 0x44(r31) +lbl_803BE9C8: +/* 803BE9C8 003BB928 7F 83 E3 78 */ mr r3, r28 +/* 803BE9CC 003BB92C 48 00 00 18 */ b lbl_803BE9E4 +lbl_803BE9D0: +/* 803BE9D0 003BB930 3C 60 CC 00 */ lis r3, 0xCC006400@ha +/* 803BE9D4 003BB934 54 80 10 3A */ slwi r0, r4, 2 +/* 803BE9D8 003BB938 38 63 64 00 */ addi r3, r3, 0xCC006400@l +/* 803BE9DC 003BB93C 7C 63 02 14 */ add r3, r3, r0 +/* 803BE9E0 003BB940 4B FF FE 28 */ b lbl_803BE808 +lbl_803BE9E4: +/* 803BE9E4 003BB944 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BE9E8 003BB948 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BE9EC 003BB94C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BE9F0 003BB950 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BE9F4 003BB954 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803BE9F8 003BB958 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BE9FC 003BB95C 7C 08 03 A6 */ mtlr r0 +/* 803BEA00 003BB960 4E 80 00 20 */ blr + +.global SIInterruptHandler +SIInterruptHandler: +/* 803BEA04 003BB964 7C 08 02 A6 */ mflr r0 +/* 803BEA08 003BB968 3C A0 CC 00 */ lis r5, 0xCC006434@ha +/* 803BEA0C 003BB96C 90 01 00 04 */ stw r0, 4(r1) +/* 803BEA10 003BB970 3C E0 80 57 */ lis r7, lbl_80569C98@ha +/* 803BEA14 003BB974 3C C0 80 3F */ lis r6, lbl_803F6EA0@ha +/* 803BEA18 003BB978 94 21 FF B8 */ stwu r1, -0x48(r1) +/* 803BEA1C 003BB97C BE A1 00 1C */ stmw r21, 0x1c(r1) +/* 803BEA20 003BB980 3B C3 00 00 */ addi r30, r3, 0 +/* 803BEA24 003BB984 3B E4 00 00 */ addi r31, r4, 0 +/* 803BEA28 003BB988 3B 87 9C 98 */ addi r28, r7, lbl_80569C98@l +/* 803BEA2C 003BB98C 3B A6 6E A0 */ addi r29, r6, lbl_803F6EA0@l +/* 803BEA30 003BB990 83 05 64 34 */ lwz r24, 0xCC006434@l(r5) +/* 803BEA34 003BB994 57 05 00 02 */ rlwinm r5, r24, 0, 0, 1 +/* 803BEA38 003BB998 3C 05 40 00 */ addis r0, r5, 0x4000 +/* 803BEA3C 003BB99C 28 00 00 00 */ cmplwi r0, 0 +/* 803BEA40 003BB9A0 40 82 01 84 */ bne lbl_803BEBC4 +/* 803BEA44 003BB9A4 82 FD 00 44 */ lwz r23, 0x44(r29) +/* 803BEA48 003BB9A8 4B FF FC C1 */ bl CompleteTransfer +/* 803BEA4C 003BB9AC 82 BD 00 54 */ lwz r21, 0x54(r29) +/* 803BEA50 003BB9B0 3B 60 00 00 */ li r27, 0 +/* 803BEA54 003BB9B4 3A C3 00 00 */ addi r22, r3, 0 +/* 803BEA58 003BB9B8 93 7D 00 54 */ stw r27, 0x54(r29) +/* 803BEA5C 003BB9BC 3B 57 00 00 */ addi r26, r23, 0 +lbl_803BEA60: +/* 803BEA60 003BB9C0 3B 5A 00 01 */ addi r26, r26, 1 +/* 803BEA64 003BB9C4 7F 40 16 70 */ srawi r0, r26, 2 +/* 803BEA68 003BB9C8 7C 00 01 94 */ addze r0, r0 +/* 803BEA6C 003BB9CC 54 00 10 3A */ slwi r0, r0, 2 +/* 803BEA70 003BB9D0 7C 00 D0 10 */ subfc r0, r0, r26 +/* 803BEA74 003BB9D4 7C 1A 03 78 */ mr r26, r0 +/* 803BEA78 003BB9D8 54 00 28 34 */ slwi r0, r0, 5 +/* 803BEA7C 003BB9DC 7F 3C 02 14 */ add r25, r28, r0 +/* 803BEA80 003BB9E0 80 19 00 00 */ lwz r0, 0(r25) +/* 803BEA84 003BB9E4 2C 00 FF FF */ cmpwi r0, -1 +/* 803BEA88 003BB9E8 41 82 00 6C */ beq lbl_803BEAF4 +/* 803BEA8C 003BB9EC 4B FC 69 3D */ bl __OSGetSystemTime +/* 803BEA90 003BB9F0 80 19 00 18 */ lwz r0, 0x18(r25) +/* 803BEA94 003BB9F4 6C 65 80 00 */ xoris r5, r3, 0x8000 +/* 803BEA98 003BB9F8 80 D9 00 1C */ lwz r6, 0x1c(r25) +/* 803BEA9C 003BB9FC 6C 03 80 00 */ xoris r3, r0, 0x8000 +/* 803BEAA0 003BBA00 7C 06 20 10 */ subfc r0, r6, r4 +/* 803BEAA4 003BBA04 7C 63 29 10 */ subfe r3, r3, r5 +/* 803BEAA8 003BBA08 7C 65 29 10 */ subfe r3, r5, r5 +/* 803BEAAC 003BBA0C 7C 63 00 D1 */ neg. r3, r3 +/* 803BEAB0 003BBA10 40 82 00 44 */ bne lbl_803BEAF4 +/* 803BEAB4 003BBA14 80 79 00 00 */ lwz r3, 0(r25) +/* 803BEAB8 003BBA18 80 99 00 04 */ lwz r4, 4(r25) +/* 803BEABC 003BBA1C 80 B9 00 08 */ lwz r5, 8(r25) +/* 803BEAC0 003BBA20 80 D9 00 0C */ lwz r6, 0xc(r25) +/* 803BEAC4 003BBA24 80 F9 00 10 */ lwz r7, 0x10(r25) +/* 803BEAC8 003BBA28 81 19 00 14 */ lwz r8, 0x14(r25) +/* 803BEACC 003BBA2C 48 00 05 89 */ bl __SITransfer +/* 803BEAD0 003BBA30 2C 03 00 00 */ cmpwi r3, 0 +/* 803BEAD4 003BBA34 41 82 00 2C */ beq lbl_803BEB00 +/* 803BEAD8 003BBA38 1C 1A 00 28 */ mulli r0, r26, 0x28 +/* 803BEADC 003BBA3C 7C 7C 02 14 */ add r3, r28, r0 +/* 803BEAE0 003BBA40 38 63 00 80 */ addi r3, r3, 0x80 +/* 803BEAE4 003BBA44 4B FB F9 11 */ bl OSCancelAlarm +/* 803BEAE8 003BBA48 38 00 FF FF */ li r0, -1 +/* 803BEAEC 003BBA4C 90 19 00 00 */ stw r0, 0(r25) +/* 803BEAF0 003BBA50 48 00 00 10 */ b lbl_803BEB00 +lbl_803BEAF4: +/* 803BEAF4 003BBA54 3B 7B 00 01 */ addi r27, r27, 1 +/* 803BEAF8 003BBA58 2C 1B 00 04 */ cmpwi r27, 4 +/* 803BEAFC 003BBA5C 41 80 FF 64 */ blt lbl_803BEA60 +lbl_803BEB00: +/* 803BEB00 003BBA60 28 15 00 00 */ cmplwi r21, 0 +/* 803BEB04 003BBA64 41 82 00 1C */ beq lbl_803BEB20 +/* 803BEB08 003BBA68 39 95 00 00 */ addi r12, r21, 0 +/* 803BEB0C 003BBA6C 7D 88 03 A6 */ mtlr r12 +/* 803BEB10 003BBA70 38 77 00 00 */ addi r3, r23, 0 +/* 803BEB14 003BBA74 38 96 00 00 */ addi r4, r22, 0 +/* 803BEB18 003BBA78 38 BF 00 00 */ addi r5, r31, 0 +/* 803BEB1C 003BBA7C 4E 80 00 21 */ blrl +lbl_803BEB20: +/* 803BEB20 003BBA80 3C 60 CC 00 */ lis r3, 0xCC006400@ha +/* 803BEB24 003BBA84 38 83 64 00 */ addi r4, r3, 0xCC006400@l +/* 803BEB28 003BBA88 80 A3 64 38 */ lwz r5, 0x6438(r3) +/* 803BEB2C 003BBA8C 56 E0 18 38 */ slwi r0, r23, 3 +/* 803BEB30 003BBA90 3C 60 0F 00 */ lis r3, 0xf00 +/* 803BEB34 003BBA94 7C 60 06 30 */ sraw r0, r3, r0 +/* 803BEB38 003BBA98 7C A5 00 38 */ and r5, r5, r0 +/* 803BEB3C 003BBA9C 56 E0 10 3A */ slwi r0, r23, 2 +/* 803BEB40 003BBAA0 90 A4 00 38 */ stw r5, 0x38(r4) +/* 803BEB44 003BBAA4 7C DD 02 14 */ add r6, r29, r0 +/* 803BEB48 003BBAA8 84 06 00 58 */ lwzu r0, 0x58(r6) +/* 803BEB4C 003BBAAC 28 00 00 80 */ cmplwi r0, 0x80 +/* 803BEB50 003BBAB0 40 82 00 74 */ bne lbl_803BEBC4 +/* 803BEB54 003BBAB4 56 E0 28 34 */ slwi r0, r23, 5 +/* 803BEB58 003BBAB8 7C 1C 00 2E */ lwzx r0, r28, r0 +/* 803BEB5C 003BBABC 38 60 00 01 */ li r3, 1 +/* 803BEB60 003BBAC0 2C 00 FF FF */ cmpwi r0, -1 +/* 803BEB64 003BBAC4 40 82 00 14 */ bne lbl_803BEB78 +/* 803BEB68 003BBAC8 80 1D 00 44 */ lwz r0, 0x44(r29) +/* 803BEB6C 003BBACC 7C 00 B8 00 */ cmpw r0, r23 +/* 803BEB70 003BBAD0 41 82 00 08 */ beq lbl_803BEB78 +/* 803BEB74 003BBAD4 38 60 00 00 */ li r3, 0 +lbl_803BEB78: +/* 803BEB78 003BBAD8 2C 03 00 00 */ cmpwi r3, 0 +/* 803BEB7C 003BBADC 40 82 00 48 */ bne lbl_803BEBC4 +/* 803BEB80 003BBAE0 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803BEB84 003BBAE4 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803BEB88 003BBAE8 3C 60 43 1C */ lis r3, 0x431BDE83@ha +/* 803BEB8C 003BBAEC 3C 80 80 3C */ lis r4, GetTypeCallback@ha +/* 803BEB90 003BBAF0 54 00 F0 BE */ srwi r0, r0, 2 +/* 803BEB94 003BBAF4 38 63 DE 83 */ addi r3, r3, 0x431BDE83@l +/* 803BEB98 003BBAF8 7C 03 00 16 */ mulhwu r0, r3, r0 +/* 803BEB9C 003BBAFC 54 00 8B FE */ srwi r0, r0, 0xf +/* 803BEBA0 003BBB00 1C 00 00 41 */ mulli r0, r0, 0x41 +/* 803BEBA4 003BBB04 39 04 F8 04 */ addi r8, r4, GetTypeCallback@l +/* 803BEBA8 003BBB08 54 0A E8 FE */ srwi r10, r0, 3 +/* 803BEBAC 003BBB0C 38 77 00 00 */ addi r3, r23, 0 +/* 803BEBB0 003BBB10 38 8D B0 10 */ addi r4, r13, lbl_805A9BD0@sda21 +/* 803BEBB4 003BBB14 38 A0 00 01 */ li r5, 1 +/* 803BEBB8 003BBB18 38 E0 00 03 */ li r7, 3 +/* 803BEBBC 003BBB1C 39 20 00 00 */ li r9, 0 +/* 803BEBC0 003BBB20 48 00 0A D9 */ bl SITransfer +lbl_803BEBC4: +/* 803BEBC4 003BBB24 57 03 00 C8 */ rlwinm r3, r24, 0, 3, 4 +/* 803BEBC8 003BBB28 3C 03 E8 00 */ addis r0, r3, 0xe800 +/* 803BEBCC 003BBB2C 28 00 00 00 */ cmplwi r0, 0 +/* 803BEBD0 003BBB30 40 82 01 64 */ bne lbl_803BED34 +/* 803BEBD4 003BBB34 4B FC A8 6D */ bl VIGetCurrentLine +/* 803BEBD8 003BBB38 80 1D 00 48 */ lwz r0, 0x48(r29) +/* 803BEBDC 003BBB3C 3A FC 01 E0 */ addi r23, r28, 0x1e0 +/* 803BEBE0 003BBB40 3B 1D 00 48 */ addi r24, r29, 0x48 +/* 803BEBE4 003BBB44 3A D7 00 00 */ addi r22, r23, 0 +/* 803BEBE8 003BBB48 3A A3 00 01 */ addi r21, r3, 1 +/* 803BEBEC 003BBB4C 54 1A 85 BE */ rlwinm r26, r0, 0x10, 0x16, 0x1f +/* 803BEBF0 003BBB50 3B 20 00 00 */ li r25, 0 +lbl_803BEBF4: +/* 803BEBF4 003BBB54 7F 23 CB 78 */ mr r3, r25 +/* 803BEBF8 003BBB58 48 00 08 7D */ bl SIGetResponseRaw +/* 803BEBFC 003BBB5C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BEC00 003BBB60 41 82 00 08 */ beq lbl_803BEC08 +/* 803BEC04 003BBB64 92 B6 00 00 */ stw r21, 0(r22) +lbl_803BEC08: +/* 803BEC08 003BBB68 3B 39 00 01 */ addi r25, r25, 1 +/* 803BEC0C 003BBB6C 2C 19 00 04 */ cmpwi r25, 4 +/* 803BEC10 003BBB70 3A D6 00 04 */ addi r22, r22, 4 +/* 803BEC14 003BBB74 41 80 FF E0 */ blt lbl_803BEBF4 +/* 803BEC18 003BBB78 80 B8 00 00 */ lwz r5, 0(r24) +/* 803BEC1C 003BBB7C 3C 60 80 00 */ lis r3, 0x8000 +/* 803BEC20 003BBB80 38 00 00 18 */ li r0, 0x18 +/* 803BEC24 003BBB84 7C 60 04 30 */ srw r0, r3, r0 +/* 803BEC28 003BBB88 7C A0 00 39 */ and. r0, r5, r0 +/* 803BEC2C 003BBB8C 57 46 F8 7E */ srwi r6, r26, 1 +/* 803BEC30 003BBB90 41 82 00 24 */ beq lbl_803BEC54 +/* 803BEC34 003BBB94 80 17 00 00 */ lwz r0, 0(r23) +/* 803BEC38 003BBB98 28 00 00 00 */ cmplwi r0, 0 +/* 803BEC3C 003BBB9C 41 82 00 F8 */ beq lbl_803BED34 +/* 803BEC40 003BBBA0 80 17 00 00 */ lwz r0, 0(r23) +/* 803BEC44 003BBBA4 7C 06 02 14 */ add r0, r6, r0 +/* 803BEC48 003BBBA8 7C 00 A8 40 */ cmplw r0, r21 +/* 803BEC4C 003BBBAC 40 80 00 08 */ bge lbl_803BEC54 +/* 803BEC50 003BBBB0 48 00 00 E4 */ b lbl_803BED34 +lbl_803BEC54: +/* 803BEC54 003BBBB4 38 00 00 19 */ li r0, 0x19 +/* 803BEC58 003BBBB8 7C 60 04 30 */ srw r0, r3, r0 +/* 803BEC5C 003BBBBC 7C A0 00 39 */ and. r0, r5, r0 +/* 803BEC60 003BBBC0 38 97 00 04 */ addi r4, r23, 4 +/* 803BEC64 003BBBC4 41 82 00 24 */ beq lbl_803BEC88 +/* 803BEC68 003BBBC8 80 04 00 00 */ lwz r0, 0(r4) +/* 803BEC6C 003BBBCC 28 00 00 00 */ cmplwi r0, 0 +/* 803BEC70 003BBBD0 41 82 00 C4 */ beq lbl_803BED34 +/* 803BEC74 003BBBD4 80 04 00 00 */ lwz r0, 0(r4) +/* 803BEC78 003BBBD8 7C 06 02 14 */ add r0, r6, r0 +/* 803BEC7C 003BBBDC 7C 00 A8 40 */ cmplw r0, r21 +/* 803BEC80 003BBBE0 40 80 00 08 */ bge lbl_803BEC88 +/* 803BEC84 003BBBE4 48 00 00 B0 */ b lbl_803BED34 +lbl_803BEC88: +/* 803BEC88 003BBBE8 38 00 00 1A */ li r0, 0x1a +/* 803BEC8C 003BBBEC 7C 60 04 30 */ srw r0, r3, r0 +/* 803BEC90 003BBBF0 7C A0 00 39 */ and. r0, r5, r0 +/* 803BEC94 003BBBF4 38 84 00 04 */ addi r4, r4, 4 +/* 803BEC98 003BBBF8 41 82 00 24 */ beq lbl_803BECBC +/* 803BEC9C 003BBBFC 80 04 00 00 */ lwz r0, 0(r4) +/* 803BECA0 003BBC00 28 00 00 00 */ cmplwi r0, 0 +/* 803BECA4 003BBC04 41 82 00 90 */ beq lbl_803BED34 +/* 803BECA8 003BBC08 80 04 00 00 */ lwz r0, 0(r4) +/* 803BECAC 003BBC0C 7C 06 02 14 */ add r0, r6, r0 +/* 803BECB0 003BBC10 7C 00 A8 40 */ cmplw r0, r21 +/* 803BECB4 003BBC14 40 80 00 08 */ bge lbl_803BECBC +/* 803BECB8 003BBC18 48 00 00 7C */ b lbl_803BED34 +lbl_803BECBC: +/* 803BECBC 003BBC1C 38 00 00 1B */ li r0, 0x1b +/* 803BECC0 003BBC20 7C 60 04 30 */ srw r0, r3, r0 +/* 803BECC4 003BBC24 7C A0 00 39 */ and. r0, r5, r0 +/* 803BECC8 003BBC28 38 84 00 04 */ addi r4, r4, 4 +/* 803BECCC 003BBC2C 41 82 00 24 */ beq lbl_803BECF0 +/* 803BECD0 003BBC30 80 04 00 00 */ lwz r0, 0(r4) +/* 803BECD4 003BBC34 28 00 00 00 */ cmplwi r0, 0 +/* 803BECD8 003BBC38 41 82 00 5C */ beq lbl_803BED34 +/* 803BECDC 003BBC3C 80 04 00 00 */ lwz r0, 0(r4) +/* 803BECE0 003BBC40 7C 06 02 14 */ add r0, r6, r0 +/* 803BECE4 003BBC44 7C 00 A8 40 */ cmplw r0, r21 +/* 803BECE8 003BBC48 40 80 00 08 */ bge lbl_803BECF0 +/* 803BECEC 003BBC4C 48 00 00 48 */ b lbl_803BED34 +lbl_803BECF0: +/* 803BECF0 003BBC50 3A C0 00 00 */ li r22, 0 +/* 803BECF4 003BBC54 92 D7 00 00 */ stw r22, 0(r23) +/* 803BECF8 003BBC58 3A BC 01 A0 */ addi r21, r28, 0x1a0 +/* 803BECFC 003BBC5C 92 DC 01 E4 */ stw r22, 0x1e4(r28) +/* 803BED00 003BBC60 92 DC 01 E8 */ stw r22, 0x1e8(r28) +/* 803BED04 003BBC64 92 DC 01 EC */ stw r22, 0x1ec(r28) +lbl_803BED08: +/* 803BED08 003BBC68 81 95 00 00 */ lwz r12, 0(r21) +/* 803BED0C 003BBC6C 28 0C 00 00 */ cmplwi r12, 0 +/* 803BED10 003BBC70 41 82 00 14 */ beq lbl_803BED24 +/* 803BED14 003BBC74 7D 88 03 A6 */ mtlr r12 +/* 803BED18 003BBC78 38 7E 00 00 */ addi r3, r30, 0 +/* 803BED1C 003BBC7C 38 9F 00 00 */ addi r4, r31, 0 +/* 803BED20 003BBC80 4E 80 00 21 */ blrl +lbl_803BED24: +/* 803BED24 003BBC84 3A D6 00 01 */ addi r22, r22, 1 +/* 803BED28 003BBC88 2C 16 00 04 */ cmpwi r22, 4 +/* 803BED2C 003BBC8C 3A B5 00 04 */ addi r21, r21, 4 +/* 803BED30 003BBC90 41 80 FF D8 */ blt lbl_803BED08 +lbl_803BED34: +/* 803BED34 003BBC94 BA A1 00 1C */ lmw r21, 0x1c(r1) +/* 803BED38 003BBC98 80 01 00 4C */ lwz r0, 0x4c(r1) +/* 803BED3C 003BBC9C 38 21 00 48 */ addi r1, r1, 0x48 +/* 803BED40 003BBCA0 7C 08 03 A6 */ mtlr r0 +/* 803BED44 003BBCA4 4E 80 00 20 */ blr + +.global SIEnablePollingInterrupt +SIEnablePollingInterrupt: +/* 803BED48 003BBCA8 7C 08 02 A6 */ mflr r0 +/* 803BED4C 003BBCAC 3C 80 80 57 */ lis r4, lbl_80569C98@ha +/* 803BED50 003BBCB0 90 01 00 04 */ stw r0, 4(r1) +/* 803BED54 003BBCB4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BED58 003BBCB8 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803BED5C 003BBCBC 3B E4 9C 98 */ addi r31, r4, lbl_80569C98@l +/* 803BED60 003BBCC0 93 C1 00 28 */ stw r30, 0x28(r1) +/* 803BED64 003BBCC4 93 A1 00 24 */ stw r29, 0x24(r1) +/* 803BED68 003BBCC8 3B A3 00 00 */ addi r29, r3, 0 +/* 803BED6C 003BBCCC 4B FC 28 F5 */ bl OSDisableInterrupts +/* 803BED70 003BBCD0 3C 80 CC 00 */ lis r4, 0xcc00 +/* 803BED74 003BBCD4 84 A4 64 34 */ lwzu r5, 0x6434(r4) +/* 803BED78 003BBCD8 54 A0 01 09 */ rlwinm. r0, r5, 0, 4, 4 +/* 803BED7C 003BBCDC 41 82 00 0C */ beq lbl_803BED88 +/* 803BED80 003BBCE0 3B C0 00 01 */ li r30, 1 +/* 803BED84 003BBCE4 48 00 00 08 */ b lbl_803BED8C +lbl_803BED88: +/* 803BED88 003BBCE8 3B C0 00 00 */ li r30, 0 +lbl_803BED8C: +/* 803BED8C 003BBCEC 2C 1D 00 00 */ cmpwi r29, 0 +/* 803BED90 003BBCF0 41 82 00 20 */ beq lbl_803BEDB0 +/* 803BED94 003BBCF4 38 00 00 00 */ li r0, 0 +/* 803BED98 003BBCF8 90 1F 01 E0 */ stw r0, 0x1e0(r31) +/* 803BED9C 003BBCFC 64 A5 08 00 */ oris r5, r5, 0x800 +/* 803BEDA0 003BBD00 90 1F 01 E4 */ stw r0, 0x1e4(r31) +/* 803BEDA4 003BBD04 90 1F 01 E8 */ stw r0, 0x1e8(r31) +/* 803BEDA8 003BBD08 90 1F 01 EC */ stw r0, 0x1ec(r31) +/* 803BEDAC 003BBD0C 48 00 00 08 */ b lbl_803BEDB4 +lbl_803BEDB0: +/* 803BEDB0 003BBD10 54 A5 01 46 */ rlwinm r5, r5, 0, 5, 3 +lbl_803BEDB4: +/* 803BEDB4 003BBD14 54 A5 00 7C */ rlwinm r5, r5, 0, 1, 0x1e +/* 803BEDB8 003BBD18 90 A4 00 00 */ stw r5, 0(r4) +/* 803BEDBC 003BBD1C 4B FC 28 CD */ bl OSRestoreInterrupts +/* 803BEDC0 003BBD20 7F C3 F3 78 */ mr r3, r30 +/* 803BEDC4 003BBD24 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BEDC8 003BBD28 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803BEDCC 003BBD2C 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 803BEDD0 003BBD30 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 803BEDD4 003BBD34 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BEDD8 003BBD38 7C 08 03 A6 */ mtlr r0 +/* 803BEDDC 003BBD3C 4E 80 00 20 */ blr + +.global SIRegisterPollingHandler +SIRegisterPollingHandler: +/* 803BEDE0 003BBD40 7C 08 02 A6 */ mflr r0 +/* 803BEDE4 003BBD44 90 01 00 04 */ stw r0, 4(r1) +/* 803BEDE8 003BBD48 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BEDEC 003BBD4C 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BEDF0 003BBD50 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803BEDF4 003BBD54 7C 7E 1B 78 */ mr r30, r3 +/* 803BEDF8 003BBD58 4B FC 28 69 */ bl OSDisableInterrupts +/* 803BEDFC 003BBD5C 3C 80 80 57 */ lis r4, lbl_80569E38@ha +/* 803BEE00 003BBD60 38 00 00 04 */ li r0, 4 +/* 803BEE04 003BBD64 38 84 9E 38 */ addi r4, r4, lbl_80569E38@l +/* 803BEE08 003BBD68 7C 09 03 A6 */ mtctr r0 +/* 803BEE0C 003BBD6C 3B E3 00 00 */ addi r31, r3, 0 +/* 803BEE10 003BBD70 38 64 00 00 */ addi r3, r4, 0 +lbl_803BEE14: +/* 803BEE14 003BBD74 80 03 00 00 */ lwz r0, 0(r3) +/* 803BEE18 003BBD78 7C 00 F0 40 */ cmplw r0, r30 +/* 803BEE1C 003BBD7C 40 82 00 14 */ bne lbl_803BEE30 +/* 803BEE20 003BBD80 7F E3 FB 78 */ mr r3, r31 +/* 803BEE24 003BBD84 4B FC 28 65 */ bl OSRestoreInterrupts +/* 803BEE28 003BBD88 38 60 00 01 */ li r3, 1 +/* 803BEE2C 003BBD8C 48 00 00 68 */ b lbl_803BEE94 +lbl_803BEE30: +/* 803BEE30 003BBD90 38 63 00 04 */ addi r3, r3, 4 +/* 803BEE34 003BBD94 42 00 FF E0 */ bdnz lbl_803BEE14 +/* 803BEE38 003BBD98 38 00 00 04 */ li r0, 4 +/* 803BEE3C 003BBD9C 7C 09 03 A6 */ mtctr r0 +/* 803BEE40 003BBDA0 38 A0 00 00 */ li r5, 0 +lbl_803BEE44: +/* 803BEE44 003BBDA4 80 04 00 00 */ lwz r0, 0(r4) +/* 803BEE48 003BBDA8 28 00 00 00 */ cmplwi r0, 0 +/* 803BEE4C 003BBDAC 40 82 00 30 */ bne lbl_803BEE7C +/* 803BEE50 003BBDB0 3C 60 80 57 */ lis r3, lbl_80569E38@ha +/* 803BEE54 003BBDB4 54 A4 10 3A */ slwi r4, r5, 2 +/* 803BEE58 003BBDB8 38 03 9E 38 */ addi r0, r3, lbl_80569E38@l +/* 803BEE5C 003BBDBC 7C 60 22 14 */ add r3, r0, r4 +/* 803BEE60 003BBDC0 93 C3 00 00 */ stw r30, 0(r3) +/* 803BEE64 003BBDC4 38 60 00 01 */ li r3, 1 +/* 803BEE68 003BBDC8 4B FF FE E1 */ bl SIEnablePollingInterrupt +/* 803BEE6C 003BBDCC 7F E3 FB 78 */ mr r3, r31 +/* 803BEE70 003BBDD0 4B FC 28 19 */ bl OSRestoreInterrupts +/* 803BEE74 003BBDD4 38 60 00 01 */ li r3, 1 +/* 803BEE78 003BBDD8 48 00 00 1C */ b lbl_803BEE94 +lbl_803BEE7C: +/* 803BEE7C 003BBDDC 38 84 00 04 */ addi r4, r4, 4 +/* 803BEE80 003BBDE0 38 A5 00 01 */ addi r5, r5, 1 +/* 803BEE84 003BBDE4 42 00 FF C0 */ bdnz lbl_803BEE44 +/* 803BEE88 003BBDE8 7F E3 FB 78 */ mr r3, r31 +/* 803BEE8C 003BBDEC 4B FC 27 FD */ bl OSRestoreInterrupts +/* 803BEE90 003BBDF0 38 60 00 00 */ li r3, 0 +lbl_803BEE94: +/* 803BEE94 003BBDF4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BEE98 003BBDF8 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BEE9C 003BBDFC 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803BEEA0 003BBE00 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BEEA4 003BBE04 7C 08 03 A6 */ mtlr r0 +/* 803BEEA8 003BBE08 4E 80 00 20 */ blr + +.global SIUnregisterPollingHandler +SIUnregisterPollingHandler: +/* 803BEEAC 003BBE0C 7C 08 02 A6 */ mflr r0 +/* 803BEEB0 003BBE10 90 01 00 04 */ stw r0, 4(r1) +/* 803BEEB4 003BBE14 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BEEB8 003BBE18 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BEEBC 003BBE1C 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803BEEC0 003BBE20 7C 7E 1B 78 */ mr r30, r3 +/* 803BEEC4 003BBE24 4B FC 27 9D */ bl OSDisableInterrupts +/* 803BEEC8 003BBE28 3C 80 80 57 */ lis r4, lbl_80569E38@ha +/* 803BEECC 003BBE2C 38 00 00 04 */ li r0, 4 +/* 803BEED0 003BBE30 38 A4 9E 38 */ addi r5, r4, lbl_80569E38@l +/* 803BEED4 003BBE34 7C 09 03 A6 */ mtctr r0 +/* 803BEED8 003BBE38 3B E3 00 00 */ addi r31, r3, 0 +/* 803BEEDC 003BBE3C 38 65 00 00 */ addi r3, r5, 0 +/* 803BEEE0 003BBE40 38 80 00 00 */ li r4, 0 +lbl_803BEEE4: +/* 803BEEE4 003BBE44 80 03 00 00 */ lwz r0, 0(r3) +/* 803BEEE8 003BBE48 7C 00 F0 40 */ cmplw r0, r30 +/* 803BEEEC 003BBE4C 40 82 00 84 */ bne lbl_803BEF70 +/* 803BEEF0 003BBE50 3C 60 80 57 */ lis r3, lbl_80569E38@ha +/* 803BEEF4 003BBE54 54 84 10 3A */ slwi r4, r4, 2 +/* 803BEEF8 003BBE58 38 03 9E 38 */ addi r0, r3, lbl_80569E38@l +/* 803BEEFC 003BBE5C 7C 60 22 14 */ add r3, r0, r4 +/* 803BEF00 003BBE60 38 00 00 00 */ li r0, 0 +/* 803BEF04 003BBE64 90 03 00 00 */ stw r0, 0(r3) +/* 803BEF08 003BBE68 38 80 00 00 */ li r4, 0 +/* 803BEF0C 003BBE6C 80 05 00 00 */ lwz r0, 0(r5) +/* 803BEF10 003BBE70 28 00 00 00 */ cmplwi r0, 0 +/* 803BEF14 003BBE74 40 82 00 3C */ bne lbl_803BEF50 +/* 803BEF18 003BBE78 38 65 00 04 */ addi r3, r5, 4 +/* 803BEF1C 003BBE7C 80 05 00 04 */ lwz r0, 4(r5) +/* 803BEF20 003BBE80 38 80 00 01 */ li r4, 1 +/* 803BEF24 003BBE84 28 00 00 00 */ cmplwi r0, 0 +/* 803BEF28 003BBE88 40 82 00 28 */ bne lbl_803BEF50 +/* 803BEF2C 003BBE8C 84 03 00 04 */ lwzu r0, 4(r3) +/* 803BEF30 003BBE90 38 80 00 02 */ li r4, 2 +/* 803BEF34 003BBE94 28 00 00 00 */ cmplwi r0, 0 +/* 803BEF38 003BBE98 40 82 00 18 */ bne lbl_803BEF50 +/* 803BEF3C 003BBE9C 80 03 00 04 */ lwz r0, 4(r3) +/* 803BEF40 003BBEA0 38 80 00 03 */ li r4, 3 +/* 803BEF44 003BBEA4 28 00 00 00 */ cmplwi r0, 0 +/* 803BEF48 003BBEA8 40 82 00 08 */ bne lbl_803BEF50 +/* 803BEF4C 003BBEAC 38 80 00 04 */ li r4, 4 +lbl_803BEF50: +/* 803BEF50 003BBEB0 2C 04 00 04 */ cmpwi r4, 4 +/* 803BEF54 003BBEB4 40 82 00 0C */ bne lbl_803BEF60 +/* 803BEF58 003BBEB8 38 60 00 00 */ li r3, 0 +/* 803BEF5C 003BBEBC 4B FF FD ED */ bl SIEnablePollingInterrupt +lbl_803BEF60: +/* 803BEF60 003BBEC0 7F E3 FB 78 */ mr r3, r31 +/* 803BEF64 003BBEC4 4B FC 27 25 */ bl OSRestoreInterrupts +/* 803BEF68 003BBEC8 38 60 00 01 */ li r3, 1 +/* 803BEF6C 003BBECC 48 00 00 1C */ b lbl_803BEF88 +lbl_803BEF70: +/* 803BEF70 003BBED0 38 63 00 04 */ addi r3, r3, 4 +/* 803BEF74 003BBED4 38 84 00 01 */ addi r4, r4, 1 +/* 803BEF78 003BBED8 42 00 FF 6C */ bdnz lbl_803BEEE4 +/* 803BEF7C 003BBEDC 7F E3 FB 78 */ mr r3, r31 +/* 803BEF80 003BBEE0 4B FC 27 09 */ bl OSRestoreInterrupts +/* 803BEF84 003BBEE4 38 60 00 00 */ li r3, 0 +lbl_803BEF88: +/* 803BEF88 003BBEE8 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BEF8C 003BBEEC 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BEF90 003BBEF0 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803BEF94 003BBEF4 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BEF98 003BBEF8 7C 08 03 A6 */ mtlr r0 +/* 803BEF9C 003BBEFC 4E 80 00 20 */ blr + +.global SIInit +SIInit: +/* 803BEFA0 003BBF00 7C 08 02 A6 */ mflr r0 +/* 803BEFA4 003BBF04 3C 80 80 57 */ lis r4, lbl_80569C98@ha +/* 803BEFA8 003BBF08 90 01 00 04 */ stw r0, 4(r1) +/* 803BEFAC 003BBF0C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803BEFB0 003BBF10 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803BEFB4 003BBF14 3B E4 9C 98 */ addi r31, r4, lbl_80569C98@l +/* 803BEFB8 003BBF18 80 6D A0 48 */ lwz r3, lbl_805A8C08@sda21(r13) +/* 803BEFBC 003BBF1C 4B FB F0 7D */ bl OSRegisterVersion +/* 803BEFC0 003BBF20 38 A0 FF FF */ li r5, -1 +/* 803BEFC4 003BBF24 90 BF 00 60 */ stw r5, 0x60(r31) +/* 803BEFC8 003BBF28 3C 60 80 3F */ lis r3, lbl_803F6EE4@ha +/* 803BEFCC 003BBF2C 38 83 6E E4 */ addi r4, r3, lbl_803F6EE4@l +/* 803BEFD0 003BBF30 90 BF 00 40 */ stw r5, 0x40(r31) +/* 803BEFD4 003BBF34 38 00 00 00 */ li r0, 0 +/* 803BEFD8 003BBF38 38 60 00 00 */ li r3, 0 +/* 803BEFDC 003BBF3C 90 BF 00 20 */ stw r5, 0x20(r31) +/* 803BEFE0 003BBF40 90 BF 00 00 */ stw r5, 0(r31) +/* 803BEFE4 003BBF44 90 04 00 04 */ stw r0, 4(r4) +/* 803BEFE8 003BBF48 48 00 0F 25 */ bl SISetSamplingRate +/* 803BEFEC 003BBF4C 3C 60 CC 00 */ lis r3, 0xCC006400@ha +lbl_803BEFF0: +/* 803BEFF0 003BBF50 38 83 64 00 */ addi r4, r3, 0xCC006400@l +/* 803BEFF4 003BBF54 84 04 00 34 */ lwzu r0, 0x34(r4) +/* 803BEFF8 003BBF58 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803BEFFC 003BBF5C 40 82 FF F4 */ bne lbl_803BEFF0 +/* 803BF000 003BBF60 3C 00 80 00 */ lis r0, 0x8000 +/* 803BF004 003BBF64 3C 60 80 3C */ lis r3, SIInterruptHandler@ha +/* 803BF008 003BBF68 90 04 00 00 */ stw r0, 0(r4) +/* 803BF00C 003BBF6C 38 83 EA 04 */ addi r4, r3, SIInterruptHandler@l +/* 803BF010 003BBF70 38 60 00 14 */ li r3, 0x14 +/* 803BF014 003BBF74 4B FC 26 99 */ bl __OSSetInterruptHandler +/* 803BF018 003BBF78 38 60 08 00 */ li r3, 0x800 +/* 803BF01C 003BBF7C 4B FC 2A 95 */ bl __OSUnmaskInterrupts +/* 803BF020 003BBF80 38 60 00 00 */ li r3, 0 +/* 803BF024 003BBF84 48 00 0A 79 */ bl SIGetType +/* 803BF028 003BBF88 38 60 00 01 */ li r3, 1 +/* 803BF02C 003BBF8C 48 00 0A 71 */ bl SIGetType +/* 803BF030 003BBF90 38 60 00 02 */ li r3, 2 +/* 803BF034 003BBF94 48 00 0A 69 */ bl SIGetType +/* 803BF038 003BBF98 38 60 00 03 */ li r3, 3 +/* 803BF03C 003BBF9C 48 00 0A 61 */ bl SIGetType +/* 803BF040 003BBFA0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803BF044 003BBFA4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803BF048 003BBFA8 38 21 00 10 */ addi r1, r1, 0x10 +/* 803BF04C 003BBFAC 7C 08 03 A6 */ mtlr r0 +/* 803BF050 003BBFB0 4E 80 00 20 */ blr + +.global __SITransfer +__SITransfer: +/* 803BF054 003BBFB4 7C 08 02 A6 */ mflr r0 +/* 803BF058 003BBFB8 3D 20 80 3F */ lis r9, lbl_803F6EA0@ha +/* 803BF05C 003BBFBC 90 01 00 04 */ stw r0, 4(r1) +/* 803BF060 003BBFC0 94 21 FF B8 */ stwu r1, -0x48(r1) +/* 803BF064 003BBFC4 BF 21 00 2C */ stmw r25, 0x2c(r1) +/* 803BF068 003BBFC8 3B 43 00 00 */ addi r26, r3, 0 +/* 803BF06C 003BBFCC 3B 64 00 00 */ addi r27, r4, 0 +/* 803BF070 003BBFD0 3B 85 00 00 */ addi r28, r5, 0 +/* 803BF074 003BBFD4 3B A6 00 00 */ addi r29, r6, 0 +/* 803BF078 003BBFD8 3B C7 00 00 */ addi r30, r7, 0 +/* 803BF07C 003BBFDC 3B E8 00 00 */ addi r31, r8, 0 +/* 803BF080 003BBFE0 3B 29 6E A0 */ addi r25, r9, lbl_803F6EA0@l +/* 803BF084 003BBFE4 4B FC 25 DD */ bl OSDisableInterrupts +/* 803BF088 003BBFE8 80 19 00 44 */ lwz r0, 0x44(r25) +/* 803BF08C 003BBFEC 2C 00 FF FF */ cmpwi r0, -1 +/* 803BF090 003BBFF0 41 82 00 10 */ beq lbl_803BF0A0 +/* 803BF094 003BBFF4 4B FC 25 F5 */ bl OSRestoreInterrupts +/* 803BF098 003BBFF8 38 60 00 00 */ li r3, 0 +/* 803BF09C 003BBFFC 48 00 01 B0 */ b lbl_803BF24C +lbl_803BF0A0: +/* 803BF0A0 003BC000 3C C0 CC 00 */ lis r6, 0xCC006438@ha +/* 803BF0A4 003BC004 57 40 18 38 */ slwi r0, r26, 3 +/* 803BF0A8 003BC008 80 E6 64 38 */ lwz r7, 0xCC006438@l(r6) +/* 803BF0AC 003BC00C 3C 80 0F 00 */ lis r4, 0xf00 +/* 803BF0B0 003BC010 7C 80 06 30 */ sraw r0, r4, r0 +/* 803BF0B4 003BC014 7C E7 00 38 */ and r7, r7, r0 +/* 803BF0B8 003BC018 90 E6 64 38 */ stw r7, 0x6438(r6) +/* 803BF0BC 003BC01C 38 1C 00 03 */ addi r0, r28, 3 +/* 803BF0C0 003BC020 54 04 F0 BE */ srwi r4, r0, 2 +/* 803BF0C4 003BC024 93 59 00 44 */ stw r26, 0x44(r25) +/* 803BF0C8 003BC028 28 04 00 00 */ cmplwi r4, 0 +/* 803BF0CC 003BC02C 38 A0 00 00 */ li r5, 0 +/* 803BF0D0 003BC030 93 F9 00 54 */ stw r31, 0x54(r25) +/* 803BF0D4 003BC034 93 D9 00 4C */ stw r30, 0x4c(r25) +/* 803BF0D8 003BC038 93 B9 00 50 */ stw r29, 0x50(r25) +/* 803BF0DC 003BC03C 40 81 00 A4 */ ble lbl_803BF180 +/* 803BF0E0 003BC040 28 04 00 08 */ cmplwi r4, 8 +/* 803BF0E4 003BC044 38 E4 FF F8 */ addi r7, r4, -8 +/* 803BF0E8 003BC048 40 81 01 4C */ ble lbl_803BF234 +/* 803BF0EC 003BC04C 38 07 00 07 */ addi r0, r7, 7 +/* 803BF0F0 003BC050 54 00 E8 FE */ srwi r0, r0, 3 +/* 803BF0F4 003BC054 28 07 00 00 */ cmplwi r7, 0 +/* 803BF0F8 003BC058 7C 09 03 A6 */ mtctr r0 +/* 803BF0FC 003BC05C 38 FB 00 00 */ addi r7, r27, 0 +/* 803BF100 003BC060 38 C6 64 00 */ addi r6, r6, 0x6400 +/* 803BF104 003BC064 40 81 01 30 */ ble lbl_803BF234 +lbl_803BF108: +/* 803BF108 003BC068 80 07 00 00 */ lwz r0, 0(r7) +/* 803BF10C 003BC06C 38 A5 00 08 */ addi r5, r5, 8 +/* 803BF110 003BC070 90 06 00 80 */ stw r0, 0x80(r6) +/* 803BF114 003BC074 80 07 00 04 */ lwz r0, 4(r7) +/* 803BF118 003BC078 90 06 00 84 */ stw r0, 0x84(r6) +/* 803BF11C 003BC07C 80 07 00 08 */ lwz r0, 8(r7) +/* 803BF120 003BC080 90 06 00 88 */ stw r0, 0x88(r6) +/* 803BF124 003BC084 80 07 00 0C */ lwz r0, 0xc(r7) +/* 803BF128 003BC088 90 06 00 8C */ stw r0, 0x8c(r6) +/* 803BF12C 003BC08C 80 07 00 10 */ lwz r0, 0x10(r7) +/* 803BF130 003BC090 90 06 00 90 */ stw r0, 0x90(r6) +/* 803BF134 003BC094 80 07 00 14 */ lwz r0, 0x14(r7) +/* 803BF138 003BC098 90 06 00 94 */ stw r0, 0x94(r6) +/* 803BF13C 003BC09C 80 07 00 18 */ lwz r0, 0x18(r7) +/* 803BF140 003BC0A0 90 06 00 98 */ stw r0, 0x98(r6) +/* 803BF144 003BC0A4 80 07 00 1C */ lwz r0, 0x1c(r7) +/* 803BF148 003BC0A8 38 E7 00 20 */ addi r7, r7, 0x20 +/* 803BF14C 003BC0AC 90 06 00 9C */ stw r0, 0x9c(r6) +/* 803BF150 003BC0B0 38 C6 00 20 */ addi r6, r6, 0x20 +/* 803BF154 003BC0B4 42 00 FF B4 */ bdnz lbl_803BF108 +/* 803BF158 003BC0B8 48 00 00 DC */ b lbl_803BF234 +lbl_803BF15C: +/* 803BF15C 003BC0BC 7C 05 20 50 */ subf r0, r5, r4 +/* 803BF160 003BC0C0 7C 05 20 40 */ cmplw r5, r4 +/* 803BF164 003BC0C4 7C 09 03 A6 */ mtctr r0 +/* 803BF168 003BC0C8 40 80 00 18 */ bge lbl_803BF180 +lbl_803BF16C: +/* 803BF16C 003BC0CC 80 06 00 00 */ lwz r0, 0(r6) +/* 803BF170 003BC0D0 38 C6 00 04 */ addi r6, r6, 4 +/* 803BF174 003BC0D4 90 07 00 80 */ stw r0, 0x80(r7) +/* 803BF178 003BC0D8 38 E7 00 04 */ addi r7, r7, 4 +/* 803BF17C 003BC0DC 42 00 FF F0 */ bdnz lbl_803BF16C +lbl_803BF180: +/* 803BF180 003BC0E0 3C 80 CC 00 */ lis r4, 0xCC006400@ha +/* 803BF184 003BC0E4 38 C4 64 00 */ addi r6, r4, 0xCC006400@l +/* 803BF188 003BC0E8 84 06 00 34 */ lwzu r0, 0x34(r6) +/* 803BF18C 003BC0EC 38 80 00 01 */ li r4, 1 +/* 803BF190 003BC0F0 90 01 00 24 */ stw r0, 0x24(r1) +/* 803BF194 003BC0F4 28 1F 00 00 */ cmplwi r31, 0 +/* 803BF198 003BC0F8 88 01 00 24 */ lbz r0, 0x24(r1) +/* 803BF19C 003BC0FC 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18 +/* 803BF1A0 003BC100 98 01 00 24 */ stb r0, 0x24(r1) +/* 803BF1A4 003BC104 41 82 00 08 */ beq lbl_803BF1AC +/* 803BF1A8 003BC108 48 00 00 08 */ b lbl_803BF1B0 +lbl_803BF1AC: +/* 803BF1AC 003BC10C 38 80 00 00 */ li r4, 0 +lbl_803BF1B0: +/* 803BF1B0 003BC110 88 01 00 24 */ lbz r0, 0x24(r1) +/* 803BF1B4 003BC114 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19 +/* 803BF1B8 003BC118 28 1C 00 80 */ cmplwi r28, 0x80 +/* 803BF1BC 003BC11C 98 01 00 24 */ stb r0, 0x24(r1) +/* 803BF1C0 003BC120 40 82 00 0C */ bne lbl_803BF1CC +/* 803BF1C4 003BC124 38 00 00 00 */ li r0, 0 +/* 803BF1C8 003BC128 48 00 00 08 */ b lbl_803BF1D0 +lbl_803BF1CC: +/* 803BF1CC 003BC12C 7F 80 E3 78 */ mr r0, r28 +lbl_803BF1D0: +/* 803BF1D0 003BC130 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 803BF1D4 003BC134 88 01 00 25 */ lbz r0, 0x25(r1) +/* 803BF1D8 003BC138 50 80 06 7E */ rlwimi r0, r4, 0, 0x19, 0x1f +/* 803BF1DC 003BC13C 28 1E 00 80 */ cmplwi r30, 0x80 +/* 803BF1E0 003BC140 98 01 00 25 */ stb r0, 0x25(r1) +/* 803BF1E4 003BC144 40 82 00 0C */ bne lbl_803BF1F0 +/* 803BF1E8 003BC148 38 00 00 00 */ li r0, 0 +/* 803BF1EC 003BC14C 48 00 00 08 */ b lbl_803BF1F4 +lbl_803BF1F0: +/* 803BF1F0 003BC150 7F C0 F3 78 */ mr r0, r30 +lbl_803BF1F4: +/* 803BF1F4 003BC154 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 803BF1F8 003BC158 88 01 00 26 */ lbz r0, 0x26(r1) +/* 803BF1FC 003BC15C 50 80 06 7E */ rlwimi r0, r4, 0, 0x19, 0x1f +/* 803BF200 003BC160 98 01 00 26 */ stb r0, 0x26(r1) +/* 803BF204 003BC164 38 80 00 01 */ li r4, 1 +/* 803BF208 003BC168 88 01 00 27 */ lbz r0, 0x27(r1) +/* 803BF20C 003BC16C 53 40 0F 7C */ rlwimi r0, r26, 1, 0x1d, 0x1e +/* 803BF210 003BC170 98 01 00 27 */ stb r0, 0x27(r1) +/* 803BF214 003BC174 88 01 00 27 */ lbz r0, 0x27(r1) +/* 803BF218 003BC178 50 80 07 FE */ rlwimi r0, r4, 0, 0x1f, 0x1f +/* 803BF21C 003BC17C 98 01 00 27 */ stb r0, 0x27(r1) +/* 803BF220 003BC180 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BF224 003BC184 90 06 00 00 */ stw r0, 0(r6) +/* 803BF228 003BC188 4B FC 24 61 */ bl OSRestoreInterrupts +/* 803BF22C 003BC18C 38 60 00 01 */ li r3, 1 +/* 803BF230 003BC190 48 00 00 1C */ b lbl_803BF24C +lbl_803BF234: +/* 803BF234 003BC194 3C C0 CC 00 */ lis r6, 0xCC006400@ha +/* 803BF238 003BC198 54 A0 10 3A */ slwi r0, r5, 2 +/* 803BF23C 003BC19C 38 E6 64 00 */ addi r7, r6, 0xCC006400@l +/* 803BF240 003BC1A0 7C DB 02 14 */ add r6, r27, r0 +/* 803BF244 003BC1A4 7C E7 02 14 */ add r7, r7, r0 +/* 803BF248 003BC1A8 4B FF FF 14 */ b lbl_803BF15C +lbl_803BF24C: +/* 803BF24C 003BC1AC BB 21 00 2C */ lmw r25, 0x2c(r1) +/* 803BF250 003BC1B0 80 01 00 4C */ lwz r0, 0x4c(r1) +/* 803BF254 003BC1B4 38 21 00 48 */ addi r1, r1, 0x48 +/* 803BF258 003BC1B8 7C 08 03 A6 */ mtlr r0 +/* 803BF25C 003BC1BC 4E 80 00 20 */ blr + +.global SIGetStatus +SIGetStatus: +/* 803BF260 003BC1C0 7C 08 02 A6 */ mflr r0 +/* 803BF264 003BC1C4 90 01 00 04 */ stw r0, 4(r1) +/* 803BF268 003BC1C8 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BF26C 003BC1CC 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BF270 003BC1D0 93 C1 00 10 */ stw r30, 0x10(r1) +/* 803BF274 003BC1D4 7C 7E 1B 78 */ mr r30, r3 +/* 803BF278 003BC1D8 4B FC 23 E9 */ bl OSDisableInterrupts +/* 803BF27C 003BC1DC 3C 80 CC 00 */ lis r4, 0xCC006438@ha +/* 803BF280 003BC1E0 20 1E 00 03 */ subfic r0, r30, 3 +/* 803BF284 003BC1E4 83 E4 64 38 */ lwz r31, 0xCC006438@l(r4) +/* 803BF288 003BC1E8 54 00 18 38 */ slwi r0, r0, 3 +/* 803BF28C 003BC1EC 7F FF 04 30 */ srw r31, r31, r0 +/* 803BF290 003BC1F0 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c +/* 803BF294 003BC1F4 41 82 00 28 */ beq lbl_803BF2BC +/* 803BF298 003BC1F8 3C 80 80 3F */ lis r4, lbl_803F6EF8@ha +/* 803BF29C 003BC1FC 57 C5 10 3A */ slwi r5, r30, 2 +/* 803BF2A0 003BC200 38 04 6E F8 */ addi r0, r4, lbl_803F6EF8@l +/* 803BF2A4 003BC204 7C 80 2A 14 */ add r4, r0, r5 +/* 803BF2A8 003BC208 80 04 00 00 */ lwz r0, 0(r4) +/* 803BF2AC 003BC20C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 803BF2B0 003BC210 40 82 00 0C */ bne lbl_803BF2BC +/* 803BF2B4 003BC214 38 00 00 08 */ li r0, 8 +/* 803BF2B8 003BC218 90 04 00 00 */ stw r0, 0(r4) +lbl_803BF2BC: +/* 803BF2BC 003BC21C 4B FC 23 CD */ bl OSRestoreInterrupts +/* 803BF2C0 003BC220 7F E3 FB 78 */ mr r3, r31 +/* 803BF2C4 003BC224 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BF2C8 003BC228 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BF2CC 003BC22C 83 C1 00 10 */ lwz r30, 0x10(r1) +/* 803BF2D0 003BC230 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BF2D4 003BC234 7C 08 03 A6 */ mtlr r0 +/* 803BF2D8 003BC238 4E 80 00 20 */ blr + +.global SISetCommand +SISetCommand: +/* 803BF2DC 003BC23C 1C 03 00 0C */ mulli r0, r3, 0xc +/* 803BF2E0 003BC240 3C 60 CC 00 */ lis r3, 0xCC006400@ha +/* 803BF2E4 003BC244 38 63 64 00 */ addi r3, r3, 0xCC006400@l +/* 803BF2E8 003BC248 7C 83 01 2E */ stwx r4, r3, r0 +/* 803BF2EC 003BC24C 4E 80 00 20 */ blr + +.global SITransferCommands +SITransferCommands: +/* 803BF2F0 003BC250 3C 60 CC 00 */ lis r3, 0xCC006438@ha +/* 803BF2F4 003BC254 3C 00 80 00 */ lis r0, 0x8000 +/* 803BF2F8 003BC258 90 03 64 38 */ stw r0, 0xCC006438@l(r3) +/* 803BF2FC 003BC25C 4E 80 00 20 */ blr + +.global SISetXY +SISetXY: +/* 803BF300 003BC260 7C 08 02 A6 */ mflr r0 +/* 803BF304 003BC264 90 01 00 04 */ stw r0, 4(r1) +/* 803BF308 003BC268 54 80 40 2E */ slwi r0, r4, 8 +/* 803BF30C 003BC26C 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BF310 003BC270 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BF314 003BC274 54 7F 80 1E */ slwi r31, r3, 0x10 +/* 803BF318 003BC278 7F FF 03 78 */ or r31, r31, r0 +/* 803BF31C 003BC27C 4B FC 23 45 */ bl OSDisableInterrupts +/* 803BF320 003BC280 3C 80 80 3F */ lis r4, lbl_803F6EE4@ha +/* 803BF324 003BC284 38 84 6E E4 */ addi r4, r4, lbl_803F6EE4@l +/* 803BF328 003BC288 80 04 00 04 */ lwz r0, 4(r4) +/* 803BF32C 003BC28C 38 A4 00 04 */ addi r5, r4, 4 +/* 803BF330 003BC290 3C 80 CC 00 */ lis r4, 0xCC006430@ha +/* 803BF334 003BC294 54 00 06 0A */ rlwinm r0, r0, 0, 0x18, 5 +/* 803BF338 003BC298 90 05 00 00 */ stw r0, 0(r5) +/* 803BF33C 003BC29C 80 05 00 00 */ lwz r0, 0(r5) +/* 803BF340 003BC2A0 7C 00 FB 78 */ or r0, r0, r31 +/* 803BF344 003BC2A4 90 05 00 00 */ stw r0, 0(r5) +/* 803BF348 003BC2A8 83 E5 00 00 */ lwz r31, 0(r5) +/* 803BF34C 003BC2AC 93 E4 64 30 */ stw r31, 0xCC006430@l(r4) +/* 803BF350 003BC2B0 4B FC 23 39 */ bl OSRestoreInterrupts +/* 803BF354 003BC2B4 7F E3 FB 78 */ mr r3, r31 +/* 803BF358 003BC2B8 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BF35C 003BC2BC 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BF360 003BC2C0 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BF364 003BC2C4 7C 08 03 A6 */ mtlr r0 +/* 803BF368 003BC2C8 4E 80 00 20 */ blr + +.global SIEnablePolling +SIEnablePolling: +/* 803BF36C 003BC2CC 7C 08 02 A6 */ mflr r0 +/* 803BF370 003BC2D0 90 01 00 04 */ stw r0, 4(r1) +/* 803BF374 003BC2D4 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BF378 003BC2D8 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BF37C 003BC2DC 7C 7F 1B 79 */ or. r31, r3, r3 +/* 803BF380 003BC2E0 40 82 00 14 */ bne lbl_803BF394 +/* 803BF384 003BC2E4 3C 60 80 3F */ lis r3, lbl_803F6EE4@ha +/* 803BF388 003BC2E8 38 63 6E E4 */ addi r3, r3, lbl_803F6EE4@l +/* 803BF38C 003BC2EC 80 63 00 04 */ lwz r3, 4(r3) +/* 803BF390 003BC2F0 48 00 00 64 */ b lbl_803BF3F4 +lbl_803BF394: +/* 803BF394 003BC2F4 4B FC 22 CD */ bl OSDisableInterrupts +/* 803BF398 003BC2F8 3C 80 80 3F */ lis r4, lbl_803F6EE4@ha +/* 803BF39C 003BC2FC 38 84 6E E4 */ addi r4, r4, lbl_803F6EE4@l +/* 803BF3A0 003BC300 57 FF 46 3E */ srwi r31, r31, 0x18 +/* 803BF3A4 003BC304 80 04 00 04 */ lwz r0, 4(r4) +/* 803BF3A8 003BC308 38 A4 00 04 */ addi r5, r4, 4 +/* 803BF3AC 003BC30C 57 E4 E7 3E */ rlwinm r4, r31, 0x1c, 0x1c, 0x1f +/* 803BF3B0 003BC310 7C 00 20 78 */ andc r0, r0, r4 +/* 803BF3B4 003BC314 90 05 00 00 */ stw r0, 0(r5) +/* 803BF3B8 003BC318 64 80 03 FF */ oris r0, r4, 0x3ff +/* 803BF3BC 003BC31C 60 00 FF F0 */ ori r0, r0, 0xfff0 +/* 803BF3C0 003BC320 7F FF 00 38 */ and r31, r31, r0 +/* 803BF3C4 003BC324 80 05 00 00 */ lwz r0, 0(r5) +/* 803BF3C8 003BC328 57 FF 06 0A */ rlwinm r31, r31, 0, 0x18, 5 +/* 803BF3CC 003BC32C 7C 00 FB 78 */ or r0, r0, r31 +/* 803BF3D0 003BC330 90 05 00 00 */ stw r0, 0(r5) +/* 803BF3D4 003BC334 3C 80 CC 00 */ lis r4, 0xCC006400@ha +/* 803BF3D8 003BC338 38 84 64 00 */ addi r4, r4, 0xCC006400@l +/* 803BF3DC 003BC33C 83 E5 00 00 */ lwz r31, 0(r5) +/* 803BF3E0 003BC340 3C 00 80 00 */ lis r0, 0x8000 +/* 803BF3E4 003BC344 90 04 00 38 */ stw r0, 0x38(r4) +/* 803BF3E8 003BC348 93 E4 00 30 */ stw r31, 0x30(r4) +/* 803BF3EC 003BC34C 4B FC 22 9D */ bl OSRestoreInterrupts +/* 803BF3F0 003BC350 7F E3 FB 78 */ mr r3, r31 +lbl_803BF3F4: +/* 803BF3F4 003BC354 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BF3F8 003BC358 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BF3FC 003BC35C 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BF400 003BC360 7C 08 03 A6 */ mtlr r0 +/* 803BF404 003BC364 4E 80 00 20 */ blr + +.global SIDisablePolling +SIDisablePolling: +/* 803BF408 003BC368 7C 08 02 A6 */ mflr r0 +/* 803BF40C 003BC36C 90 01 00 04 */ stw r0, 4(r1) +/* 803BF410 003BC370 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803BF414 003BC374 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803BF418 003BC378 7C 7F 1B 79 */ or. r31, r3, r3 +/* 803BF41C 003BC37C 40 82 00 14 */ bne lbl_803BF430 +/* 803BF420 003BC380 3C 60 80 3F */ lis r3, lbl_803F6EE4@ha +/* 803BF424 003BC384 38 63 6E E4 */ addi r3, r3, lbl_803F6EE4@l +/* 803BF428 003BC388 80 63 00 04 */ lwz r3, 4(r3) +/* 803BF42C 003BC38C 48 00 00 34 */ b lbl_803BF460 +lbl_803BF430: +/* 803BF430 003BC390 4B FC 22 31 */ bl OSDisableInterrupts +/* 803BF434 003BC394 3C 80 80 3F */ lis r4, lbl_803F6EE4@ha +/* 803BF438 003BC398 38 84 6E E4 */ addi r4, r4, lbl_803F6EE4@l +/* 803BF43C 003BC39C 80 04 00 04 */ lwz r0, 4(r4) +/* 803BF440 003BC3A0 57 FF 46 36 */ rlwinm r31, r31, 8, 0x18, 0x1b +/* 803BF444 003BC3A4 38 A4 00 04 */ addi r5, r4, 4 +/* 803BF448 003BC3A8 3C 80 CC 00 */ lis r4, 0xCC006430@ha +/* 803BF44C 003BC3AC 7C 1F F8 78 */ andc r31, r0, r31 +/* 803BF450 003BC3B0 93 E4 64 30 */ stw r31, 0xCC006430@l(r4) +/* 803BF454 003BC3B4 93 E5 00 00 */ stw r31, 0(r5) +/* 803BF458 003BC3B8 4B FC 22 31 */ bl OSRestoreInterrupts +/* 803BF45C 003BC3BC 7F E3 FB 78 */ mr r3, r31 +lbl_803BF460: +/* 803BF460 003BC3C0 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803BF464 003BC3C4 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803BF468 003BC3C8 38 21 00 18 */ addi r1, r1, 0x18 +/* 803BF46C 003BC3CC 7C 08 03 A6 */ mtlr r0 +/* 803BF470 003BC3D0 4E 80 00 20 */ blr + +.global SIGetResponseRaw +SIGetResponseRaw: +/* 803BF474 003BC3D4 7C 08 02 A6 */ mflr r0 +/* 803BF478 003BC3D8 3C 80 80 57 */ lis r4, lbl_80569C98@ha +/* 803BF47C 003BC3DC 90 01 00 04 */ stw r0, 4(r1) +/* 803BF480 003BC3E0 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BF484 003BC3E4 93 E1 00 24 */ stw r31, 0x24(r1) +/* 803BF488 003BC3E8 3B E4 9C 98 */ addi r31, r4, lbl_80569C98@l +/* 803BF48C 003BC3EC 93 C1 00 20 */ stw r30, 0x20(r1) +/* 803BF490 003BC3F0 3B C3 00 00 */ addi r30, r3, 0 +/* 803BF494 003BC3F4 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 803BF498 003BC3F8 4B FC 21 C9 */ bl OSDisableInterrupts +/* 803BF49C 003BC3FC 3C 80 CC 00 */ lis r4, 0xCC006438@ha +/* 803BF4A0 003BC400 20 1E 00 03 */ subfic r0, r30, 3 +/* 803BF4A4 003BC404 83 A4 64 38 */ lwz r29, 0xCC006438@l(r4) +/* 803BF4A8 003BC408 54 00 18 38 */ slwi r0, r0, 3 +/* 803BF4AC 003BC40C 7F BD 04 30 */ srw r29, r29, r0 +/* 803BF4B0 003BC410 57 A0 07 39 */ rlwinm. r0, r29, 0, 0x1c, 0x1c +/* 803BF4B4 003BC414 41 82 00 28 */ beq lbl_803BF4DC +/* 803BF4B8 003BC418 3C 80 80 3F */ lis r4, lbl_803F6EF8@ha +/* 803BF4BC 003BC41C 57 C5 10 3A */ slwi r5, r30, 2 +/* 803BF4C0 003BC420 38 04 6E F8 */ addi r0, r4, lbl_803F6EF8@l +/* 803BF4C4 003BC424 7C 80 2A 14 */ add r4, r0, r5 +/* 803BF4C8 003BC428 80 04 00 00 */ lwz r0, 0(r4) +/* 803BF4CC 003BC42C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 803BF4D0 003BC430 40 82 00 0C */ bne lbl_803BF4DC +/* 803BF4D4 003BC434 38 00 00 08 */ li r0, 8 +/* 803BF4D8 003BC438 90 04 00 00 */ stw r0, 0(r4) +lbl_803BF4DC: +/* 803BF4DC 003BC43C 4B FC 21 AD */ bl OSRestoreInterrupts +/* 803BF4E0 003BC440 57 A0 06 B5 */ rlwinm. r0, r29, 0, 0x1a, 0x1a +/* 803BF4E4 003BC444 41 82 00 44 */ beq lbl_803BF528 +/* 803BF4E8 003BC448 1C 9E 00 0C */ mulli r4, r30, 0xc +/* 803BF4EC 003BC44C 3C 60 CC 00 */ lis r3, 0xCC006400@ha +/* 803BF4F0 003BC450 38 03 64 00 */ addi r0, r3, 0xCC006400@l +/* 803BF4F4 003BC454 7C 60 22 14 */ add r3, r0, r4 +/* 803BF4F8 003BC458 57 C4 18 38 */ slwi r4, r30, 3 +/* 803BF4FC 003BC45C 80 03 00 04 */ lwz r0, 4(r3) +/* 803BF500 003BC460 7C DF 22 14 */ add r6, r31, r4 +/* 803BF504 003BC464 90 06 01 C0 */ stw r0, 0x1c0(r6) +/* 803BF508 003BC468 57 C0 10 3A */ slwi r0, r30, 2 +/* 803BF50C 003BC46C 7C 9F 02 14 */ add r4, r31, r0 +/* 803BF510 003BC470 80 A3 00 08 */ lwz r5, 8(r3) +/* 803BF514 003BC474 38 00 00 01 */ li r0, 1 +/* 803BF518 003BC478 38 60 00 01 */ li r3, 1 +/* 803BF51C 003BC47C 90 A6 01 C4 */ stw r5, 0x1c4(r6) +/* 803BF520 003BC480 90 04 01 B0 */ stw r0, 0x1b0(r4) +/* 803BF524 003BC484 48 00 00 08 */ b lbl_803BF52C +lbl_803BF528: +/* 803BF528 003BC488 38 60 00 00 */ li r3, 0 +lbl_803BF52C: +/* 803BF52C 003BC48C 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BF530 003BC490 83 E1 00 24 */ lwz r31, 0x24(r1) +/* 803BF534 003BC494 83 C1 00 20 */ lwz r30, 0x20(r1) +/* 803BF538 003BC498 83 A1 00 1C */ lwz r29, 0x1c(r1) +/* 803BF53C 003BC49C 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BF540 003BC4A0 7C 08 03 A6 */ mtlr r0 +/* 803BF544 003BC4A4 4E 80 00 20 */ blr + +.global SIGetResponse +SIGetResponse: +/* 803BF548 003BC4A8 7C 08 02 A6 */ mflr r0 +/* 803BF54C 003BC4AC 3C A0 80 57 */ lis r5, lbl_80569C98@ha +/* 803BF550 003BC4B0 90 01 00 04 */ stw r0, 4(r1) +/* 803BF554 003BC4B4 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BF558 003BC4B8 BF 61 00 14 */ stmw r27, 0x14(r1) +/* 803BF55C 003BC4BC 3B A3 00 00 */ addi r29, r3, 0 +/* 803BF560 003BC4C0 3B C4 00 00 */ addi r30, r4, 0 +/* 803BF564 003BC4C4 3B 85 9C 98 */ addi r28, r5, lbl_80569C98@l +/* 803BF568 003BC4C8 4B FC 20 F9 */ bl OSDisableInterrupts +/* 803BF56C 003BC4CC 3B E3 00 00 */ addi r31, r3, 0 +/* 803BF570 003BC4D0 38 7D 00 00 */ addi r3, r29, 0 +/* 803BF574 003BC4D4 4B FF FC ED */ bl SIGetStatus +/* 803BF578 003BC4D8 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a +/* 803BF57C 003BC4DC 41 82 00 3C */ beq lbl_803BF5B8 +/* 803BF580 003BC4E0 1C 9D 00 0C */ mulli r4, r29, 0xc +/* 803BF584 003BC4E4 3C 60 CC 00 */ lis r3, 0xCC006400@ha +/* 803BF588 003BC4E8 38 03 64 00 */ addi r0, r3, 0xCC006400@l +/* 803BF58C 003BC4EC 7C 80 22 14 */ add r4, r0, r4 +/* 803BF590 003BC4F0 57 A3 18 38 */ slwi r3, r29, 3 +/* 803BF594 003BC4F4 80 04 00 04 */ lwz r0, 4(r4) +/* 803BF598 003BC4F8 7C BC 1A 14 */ add r5, r28, r3 +/* 803BF59C 003BC4FC 90 05 01 C0 */ stw r0, 0x1c0(r5) +/* 803BF5A0 003BC500 57 A0 10 3A */ slwi r0, r29, 2 +/* 803BF5A4 003BC504 7C 7C 02 14 */ add r3, r28, r0 +/* 803BF5A8 003BC508 80 84 00 08 */ lwz r4, 8(r4) +/* 803BF5AC 003BC50C 38 00 00 01 */ li r0, 1 +/* 803BF5B0 003BC510 90 85 01 C4 */ stw r4, 0x1c4(r5) +/* 803BF5B4 003BC514 90 03 01 B0 */ stw r0, 0x1b0(r3) +lbl_803BF5B8: +/* 803BF5B8 003BC518 57 A0 10 3A */ slwi r0, r29, 2 +/* 803BF5BC 003BC51C 7C 7C 02 14 */ add r3, r28, r0 +/* 803BF5C0 003BC520 83 63 01 B0 */ lwz r27, 0x1b0(r3) +/* 803BF5C4 003BC524 38 00 00 00 */ li r0, 0 +/* 803BF5C8 003BC528 2C 1B 00 00 */ cmpwi r27, 0 +/* 803BF5CC 003BC52C 90 03 01 B0 */ stw r0, 0x1b0(r3) +/* 803BF5D0 003BC530 41 82 00 1C */ beq lbl_803BF5EC +/* 803BF5D4 003BC534 57 A0 18 38 */ slwi r0, r29, 3 +/* 803BF5D8 003BC538 7C 7C 02 14 */ add r3, r28, r0 +/* 803BF5DC 003BC53C 80 03 01 C0 */ lwz r0, 0x1c0(r3) +/* 803BF5E0 003BC540 90 1E 00 00 */ stw r0, 0(r30) +/* 803BF5E4 003BC544 80 03 01 C4 */ lwz r0, 0x1c4(r3) +/* 803BF5E8 003BC548 90 1E 00 04 */ stw r0, 4(r30) +lbl_803BF5EC: +/* 803BF5EC 003BC54C 7F E3 FB 78 */ mr r3, r31 +/* 803BF5F0 003BC550 4B FC 20 99 */ bl OSRestoreInterrupts +/* 803BF5F4 003BC554 7F 63 DB 78 */ mr r3, r27 +/* 803BF5F8 003BC558 BB 61 00 14 */ lmw r27, 0x14(r1) +/* 803BF5FC 003BC55C 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BF600 003BC560 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BF604 003BC564 7C 08 03 A6 */ mtlr r0 +/* 803BF608 003BC568 4E 80 00 20 */ blr + +.global AlarmHandler_SI +AlarmHandler_SI: +/* 803BF60C 003BC56C 7C 08 02 A6 */ mflr r0 +/* 803BF610 003BC570 3C 80 80 57 */ lis r4, lbl_80569D18@ha +/* 803BF614 003BC574 90 01 00 04 */ stw r0, 4(r1) +/* 803BF618 003BC578 38 04 9D 18 */ addi r0, r4, lbl_80569D18@l +/* 803BF61C 003BC57C 3C 80 66 66 */ lis r4, 0x66666667@ha +/* 803BF620 003BC580 7C 00 18 50 */ subf r0, r0, r3 +/* 803BF624 003BC584 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BF628 003BC588 38 64 66 67 */ addi r3, r4, 0x66666667@l +/* 803BF62C 003BC58C 7C 03 00 96 */ mulhw r0, r3, r0 +/* 803BF630 003BC590 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BF634 003BC594 7C 00 26 70 */ srawi r0, r0, 4 +/* 803BF638 003BC598 54 03 0F FE */ srwi r3, r0, 0x1f +/* 803BF63C 003BC59C 7C 00 1A 14 */ add r0, r0, r3 +/* 803BF640 003BC5A0 3C 60 80 57 */ lis r3, lbl_80569C98@ha +/* 803BF644 003BC5A4 54 04 28 34 */ slwi r4, r0, 5 +/* 803BF648 003BC5A8 38 03 9C 98 */ addi r0, r3, lbl_80569C98@l +/* 803BF64C 003BC5AC 7F E0 22 14 */ add r31, r0, r4 +/* 803BF650 003BC5B0 80 7F 00 00 */ lwz r3, 0(r31) +/* 803BF654 003BC5B4 2C 03 FF FF */ cmpwi r3, -1 +/* 803BF658 003BC5B8 41 82 00 2C */ beq lbl_803BF684 +/* 803BF65C 003BC5BC 80 9F 00 04 */ lwz r4, 4(r31) +/* 803BF660 003BC5C0 80 BF 00 08 */ lwz r5, 8(r31) +/* 803BF664 003BC5C4 80 DF 00 0C */ lwz r6, 0xc(r31) +/* 803BF668 003BC5C8 80 FF 00 10 */ lwz r7, 0x10(r31) +/* 803BF66C 003BC5CC 81 1F 00 14 */ lwz r8, 0x14(r31) +/* 803BF670 003BC5D0 4B FF F9 E5 */ bl __SITransfer +/* 803BF674 003BC5D4 2C 03 00 00 */ cmpwi r3, 0 +/* 803BF678 003BC5D8 41 82 00 0C */ beq lbl_803BF684 +/* 803BF67C 003BC5DC 38 00 FF FF */ li r0, -1 +/* 803BF680 003BC5E0 90 1F 00 00 */ stw r0, 0(r31) +lbl_803BF684: +/* 803BF684 003BC5E4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BF688 003BC5E8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BF68C 003BC5EC 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BF690 003BC5F0 7C 08 03 A6 */ mtlr r0 +/* 803BF694 003BC5F4 4E 80 00 20 */ blr + +.global SITransfer +SITransfer: +/* 803BF698 003BC5F8 7C 08 02 A6 */ mflr r0 +/* 803BF69C 003BC5FC 90 01 00 04 */ stw r0, 4(r1) +/* 803BF6A0 003BC600 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 803BF6A4 003BC604 BE 61 00 2C */ stmw r19, 0x2c(r1) +/* 803BF6A8 003BC608 3B 03 00 00 */ addi r24, r3, 0 +/* 803BF6AC 003BC60C 3C 60 80 57 */ lis r3, lbl_80569C98@ha +/* 803BF6B0 003BC610 3A E3 9C 98 */ addi r23, r3, lbl_80569C98@l +/* 803BF6B4 003BC614 57 00 28 34 */ slwi r0, r24, 5 +/* 803BF6B8 003BC618 3B 24 00 00 */ addi r25, r4, 0 +/* 803BF6BC 003BC61C 3B 45 00 00 */ addi r26, r5, 0 +/* 803BF6C0 003BC620 3B 66 00 00 */ addi r27, r6, 0 +/* 803BF6C4 003BC624 3B 87 00 00 */ addi r28, r7, 0 +/* 803BF6C8 003BC628 3B A8 00 00 */ addi r29, r8, 0 +/* 803BF6CC 003BC62C 3B E9 00 00 */ addi r31, r9, 0 +/* 803BF6D0 003BC630 3B CA 00 00 */ addi r30, r10, 0 +/* 803BF6D4 003BC634 7E D7 02 14 */ add r22, r23, r0 +/* 803BF6D8 003BC638 4B FC 1F 89 */ bl OSDisableInterrupts +/* 803BF6DC 003BC63C 80 16 00 00 */ lwz r0, 0(r22) +/* 803BF6E0 003BC640 3A A3 00 00 */ addi r21, r3, 0 +/* 803BF6E4 003BC644 2C 00 FF FF */ cmpwi r0, -1 +/* 803BF6E8 003BC648 40 82 00 14 */ bne lbl_803BF6FC +/* 803BF6EC 003BC64C 3C 60 80 3F */ lis r3, lbl_803F6EE4@ha +/* 803BF6F0 003BC650 80 03 6E E4 */ lwz r0, lbl_803F6EE4@l(r3) +/* 803BF6F4 003BC654 7C 00 C0 00 */ cmpw r0, r24 +/* 803BF6F8 003BC658 40 82 00 14 */ bne lbl_803BF70C +lbl_803BF6FC: +/* 803BF6FC 003BC65C 7E A3 AB 78 */ mr r3, r21 +/* 803BF700 003BC660 4B FC 1F 89 */ bl OSRestoreInterrupts +/* 803BF704 003BC664 38 60 00 00 */ li r3, 0 +/* 803BF708 003BC668 48 00 00 E8 */ b lbl_803BF7F0 +lbl_803BF70C: +/* 803BF70C 003BC66C 4B FC 5C BD */ bl __OSGetSystemTime +/* 803BF710 003BC670 38 00 00 00 */ li r0, 0 +/* 803BF714 003BC674 7F C5 02 78 */ xor r5, r30, r0 +/* 803BF718 003BC678 7F E0 02 78 */ xor r0, r31, r0 +/* 803BF71C 003BC67C 7C A0 03 79 */ or. r0, r5, r0 +/* 803BF720 003BC680 40 82 00 10 */ bne lbl_803BF730 +/* 803BF724 003BC684 3A 64 00 00 */ addi r19, r4, 0 +/* 803BF728 003BC688 3A 83 00 00 */ addi r20, r3, 0 +/* 803BF72C 003BC68C 48 00 00 1C */ b lbl_803BF748 +lbl_803BF730: +/* 803BF730 003BC690 57 00 18 38 */ slwi r0, r24, 3 +/* 803BF734 003BC694 7C D7 02 14 */ add r6, r23, r0 +/* 803BF738 003BC698 80 A6 01 44 */ lwz r5, 0x144(r6) +/* 803BF73C 003BC69C 80 06 01 40 */ lwz r0, 0x140(r6) +/* 803BF740 003BC6A0 7E 7E 28 14 */ addc r19, r30, r5 +/* 803BF744 003BC6A4 7E 9F 01 14 */ adde r20, r31, r0 +lbl_803BF748: +/* 803BF748 003BC6A8 6C 66 80 00 */ xoris r6, r3, 0x8000 +/* 803BF74C 003BC6AC 6E 85 80 00 */ xoris r5, r20, 0x8000 +/* 803BF750 003BC6B0 7C 13 20 10 */ subfc r0, r19, r4 +/* 803BF754 003BC6B4 7C A5 31 10 */ subfe r5, r5, r6 +/* 803BF758 003BC6B8 7C A6 31 10 */ subfe r5, r6, r6 +/* 803BF75C 003BC6BC 7C A5 00 D1 */ neg. r5, r5 +/* 803BF760 003BC6C0 41 82 00 30 */ beq lbl_803BF790 +/* 803BF764 003BC6C4 1C 18 00 28 */ mulli r0, r24, 0x28 +/* 803BF768 003BC6C8 7F C4 98 10 */ subfc r30, r4, r19 +/* 803BF76C 003BC6CC 7F E3 A1 10 */ subfe r31, r3, r20 +/* 803BF770 003BC6D0 3C 80 80 3C */ lis r4, AlarmHandler_SI@ha +/* 803BF774 003BC6D4 7C 77 02 14 */ add r3, r23, r0 +/* 803BF778 003BC6D8 38 E4 F6 0C */ addi r7, r4, AlarmHandler_SI@l +/* 803BF77C 003BC6DC 38 DE 00 00 */ addi r6, r30, 0 +/* 803BF780 003BC6E0 38 BF 00 00 */ addi r5, r31, 0 +/* 803BF784 003BC6E4 38 63 00 80 */ addi r3, r3, 0x80 +/* 803BF788 003BC6E8 4B FB EB 89 */ bl OSSetAlarm +/* 803BF78C 003BC6EC 48 00 00 38 */ b lbl_803BF7C4 +lbl_803BF790: +/* 803BF790 003BC6F0 38 78 00 00 */ addi r3, r24, 0 +/* 803BF794 003BC6F4 38 99 00 00 */ addi r4, r25, 0 +/* 803BF798 003BC6F8 38 BA 00 00 */ addi r5, r26, 0 +/* 803BF79C 003BC6FC 38 DB 00 00 */ addi r6, r27, 0 +/* 803BF7A0 003BC700 38 FC 00 00 */ addi r7, r28, 0 +/* 803BF7A4 003BC704 39 1D 00 00 */ addi r8, r29, 0 +/* 803BF7A8 003BC708 4B FF F8 AD */ bl __SITransfer +/* 803BF7AC 003BC70C 2C 03 00 00 */ cmpwi r3, 0 +/* 803BF7B0 003BC710 41 82 00 14 */ beq lbl_803BF7C4 +/* 803BF7B4 003BC714 7E A3 AB 78 */ mr r3, r21 +/* 803BF7B8 003BC718 4B FC 1E D1 */ bl OSRestoreInterrupts +/* 803BF7BC 003BC71C 38 60 00 01 */ li r3, 1 +/* 803BF7C0 003BC720 48 00 00 30 */ b lbl_803BF7F0 +lbl_803BF7C4: +/* 803BF7C4 003BC724 93 16 00 00 */ stw r24, 0(r22) +/* 803BF7C8 003BC728 7E A3 AB 78 */ mr r3, r21 +/* 803BF7CC 003BC72C 93 36 00 04 */ stw r25, 4(r22) +/* 803BF7D0 003BC730 93 56 00 08 */ stw r26, 8(r22) +/* 803BF7D4 003BC734 93 76 00 0C */ stw r27, 0xc(r22) +/* 803BF7D8 003BC738 93 96 00 10 */ stw r28, 0x10(r22) +/* 803BF7DC 003BC73C 93 B6 00 14 */ stw r29, 0x14(r22) +/* 803BF7E0 003BC740 92 76 00 1C */ stw r19, 0x1c(r22) +/* 803BF7E4 003BC744 92 96 00 18 */ stw r20, 0x18(r22) +/* 803BF7E8 003BC748 4B FC 1E A1 */ bl OSRestoreInterrupts +/* 803BF7EC 003BC74C 38 60 00 01 */ li r3, 1 +lbl_803BF7F0: +/* 803BF7F0 003BC750 BA 61 00 2C */ lmw r19, 0x2c(r1) +/* 803BF7F4 003BC754 80 01 00 64 */ lwz r0, 0x64(r1) +/* 803BF7F8 003BC758 38 21 00 60 */ addi r1, r1, 0x60 +/* 803BF7FC 003BC75C 7C 08 03 A6 */ mtlr r0 +/* 803BF800 003BC760 4E 80 00 20 */ blr + +.global GetTypeCallback +GetTypeCallback: +/* 803BF804 003BC764 7C 08 02 A6 */ mflr r0 +/* 803BF808 003BC768 90 01 00 04 */ stw r0, 4(r1) +/* 803BF80C 003BC76C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803BF810 003BC770 BF 41 00 18 */ stmw r26, 0x18(r1) +/* 803BF814 003BC774 3B 63 00 00 */ addi r27, r3, 0 +/* 803BF818 003BC778 3C 60 80 3F */ lis r3, lbl_803F6EF8@ha +/* 803BF81C 003BC77C 38 03 6E F8 */ addi r0, r3, lbl_803F6EF8@l +/* 803BF820 003BC780 57 7D 10 3A */ slwi r29, r27, 2 +/* 803BF824 003BC784 7F C0 EA 14 */ add r30, r0, r29 +/* 803BF828 003BC788 3C 60 80 57 */ lis r3, lbl_80569C98@ha +/* 803BF82C 003BC78C 3B 44 00 00 */ addi r26, r4, 0 +/* 803BF830 003BC790 3B E3 9C 98 */ addi r31, r3, lbl_80569C98@l +/* 803BF834 003BC794 80 1E 00 00 */ lwz r0, 0(r30) +/* 803BF838 003BC798 54 00 06 6E */ rlwinm r0, r0, 0, 0x19, 0x17 +/* 803BF83C 003BC79C 90 1E 00 00 */ stw r0, 0(r30) +/* 803BF840 003BC7A0 80 1E 00 00 */ lwz r0, 0(r30) +/* 803BF844 003BC7A4 7C 00 D3 78 */ or r0, r0, r26 +/* 803BF848 003BC7A8 90 1E 00 00 */ stw r0, 0(r30) +/* 803BF84C 003BC7AC 4B FC 5B 7D */ bl __OSGetSystemTime +/* 803BF850 003BC7B0 57 60 18 38 */ slwi r0, r27, 3 +/* 803BF854 003BC7B4 7C BF 02 14 */ add r5, r31, r0 +/* 803BF858 003BC7B8 90 85 01 24 */ stw r4, 0x124(r5) +/* 803BF85C 003BC7BC 3C 80 80 00 */ lis r4, 0x8000 +/* 803BF860 003BC7C0 57 40 07 3F */ clrlwi. r0, r26, 0x1c +/* 803BF864 003BC7C4 90 65 01 20 */ stw r3, 0x120(r5) +/* 803BF868 003BC7C8 7C 84 DC 30 */ srw r4, r4, r27 +/* 803BF86C 003BC7CC 80 6D B0 18 */ lwz r3, lbl_805A9BD8@sda21(r13) +/* 803BF870 003BC7D0 83 9E 00 00 */ lwz r28, 0(r30) +/* 803BF874 003BC7D4 7C 60 20 78 */ andc r0, r3, r4 +/* 803BF878 003BC7D8 90 0D B0 18 */ stw r0, lbl_805A9BD8@sda21(r13) +/* 803BF87C 003BC7DC 7C 7A 20 38 */ and r26, r3, r4 +/* 803BF880 003BC7E0 40 82 00 24 */ bne lbl_803BF8A4 +/* 803BF884 003BC7E4 57 83 00 C8 */ rlwinm r3, r28, 0, 3, 4 +/* 803BF888 003BC7E8 3C 03 F8 00 */ addis r0, r3, 0xf800 +/* 803BF88C 003BC7EC 28 00 00 00 */ cmplwi r0, 0 +/* 803BF890 003BC7F0 40 82 00 14 */ bne lbl_803BF8A4 +/* 803BF894 003BC7F4 57 80 00 01 */ rlwinm. r0, r28, 0, 0, 0 +/* 803BF898 003BC7F8 41 82 00 0C */ beq lbl_803BF8A4 +/* 803BF89C 003BC7FC 57 80 01 4B */ rlwinm. r0, r28, 0, 5, 5 +/* 803BF8A0 003BC800 41 82 00 5C */ beq lbl_803BF8FC +lbl_803BF8A4: +/* 803BF8A4 003BC804 38 7B 00 00 */ addi r3, r27, 0 +/* 803BF8A8 003BC808 38 80 00 00 */ li r4, 0 +/* 803BF8AC 003BC80C 4B FC 4A 8D */ bl OSSetWirelessID +/* 803BF8B0 003BC810 57 60 20 36 */ slwi r0, r27, 4 +/* 803BF8B4 003BC814 83 DE 00 00 */ lwz r30, 0(r30) +/* 803BF8B8 003BC818 7F FF 02 14 */ add r31, r31, r0 +/* 803BF8BC 003BC81C 3B A0 00 00 */ li r29, 0 +/* 803BF8C0 003BC820 3B 9D 00 00 */ addi r28, r29, 0 +/* 803BF8C4 003BC824 3B FF 01 60 */ addi r31, r31, 0x160 +lbl_803BF8C8: +/* 803BF8C8 003BC828 81 9F 00 00 */ lwz r12, 0(r31) +/* 803BF8CC 003BC82C 28 0C 00 00 */ cmplwi r12, 0 +/* 803BF8D0 003BC830 41 82 00 18 */ beq lbl_803BF8E8 +/* 803BF8D4 003BC834 93 9F 00 00 */ stw r28, 0(r31) +/* 803BF8D8 003BC838 7D 88 03 A6 */ mtlr r12 +/* 803BF8DC 003BC83C 38 7B 00 00 */ addi r3, r27, 0 +/* 803BF8E0 003BC840 38 9E 00 00 */ addi r4, r30, 0 +/* 803BF8E4 003BC844 4E 80 00 21 */ blrl +lbl_803BF8E8: +/* 803BF8E8 003BC848 3B BD 00 01 */ addi r29, r29, 1 +/* 803BF8EC 003BC84C 2C 1D 00 04 */ cmpwi r29, 4 +/* 803BF8F0 003BC850 3B FF 00 04 */ addi r31, r31, 4 +/* 803BF8F4 003BC854 41 80 FF D4 */ blt lbl_803BF8C8 +/* 803BF8F8 003BC858 48 00 01 90 */ b lbl_803BFA88 +lbl_803BF8FC: +/* 803BF8FC 003BC85C 7F 63 DB 78 */ mr r3, r27 +/* 803BF900 003BC860 4B FC 49 B5 */ bl OSGetWirelessID +/* 803BF904 003BC864 2C 1A 00 00 */ cmpwi r26, 0 +/* 803BF908 003BC868 54 7A 42 2E */ rlwinm r26, r3, 8, 8, 0x17 +/* 803BF90C 003BC86C 41 82 00 54 */ beq lbl_803BF960 +/* 803BF910 003BC870 57 40 02 D7 */ rlwinm. r0, r26, 0, 0xb, 0xb +/* 803BF914 003BC874 41 82 00 4C */ beq lbl_803BF960 +/* 803BF918 003BC878 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha +/* 803BF91C 003BC87C 38 03 FF 00 */ addi r0, r3, 0x00CFFF00@l +/* 803BF920 003BC880 7F 40 00 38 */ and r0, r26, r0 +/* 803BF924 003BC884 64 00 4E 10 */ oris r0, r0, 0x4e10 +/* 803BF928 003BC888 7C 9F EA 14 */ add r4, r31, r29 +/* 803BF92C 003BC88C 94 04 01 F0 */ stwu r0, 0x1f0(r4) +/* 803BF930 003BC890 38 00 00 80 */ li r0, 0x80 +/* 803BF934 003BC894 3C 60 80 3C */ lis r3, GetTypeCallback@ha +/* 803BF938 003BC898 90 1E 00 00 */ stw r0, 0(r30) +/* 803BF93C 003BC89C 39 03 F8 04 */ addi r8, r3, GetTypeCallback@l +/* 803BF940 003BC8A0 38 7B 00 00 */ addi r3, r27, 0 +/* 803BF944 003BC8A4 38 DE 00 00 */ addi r6, r30, 0 +/* 803BF948 003BC8A8 38 A0 00 03 */ li r5, 3 +/* 803BF94C 003BC8AC 38 E0 00 03 */ li r7, 3 +/* 803BF950 003BC8B0 39 40 00 00 */ li r10, 0 +/* 803BF954 003BC8B4 39 20 00 00 */ li r9, 0 +/* 803BF958 003BC8B8 4B FF FD 41 */ bl SITransfer +/* 803BF95C 003BC8BC 48 00 01 2C */ b lbl_803BFA88 +lbl_803BF960: +/* 803BF960 003BC8C0 57 80 02 D7 */ rlwinm. r0, r28, 0, 0xb, 0xb +/* 803BF964 003BC8C4 41 82 00 70 */ beq lbl_803BF9D4 +/* 803BF968 003BC8C8 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha +/* 803BF96C 003BC8CC 38 63 FF 00 */ addi r3, r3, 0x00CFFF00@l +/* 803BF970 003BC8D0 7F 40 18 38 */ and r0, r26, r3 +/* 803BF974 003BC8D4 7F 83 18 38 */ and r3, r28, r3 +/* 803BF978 003BC8D8 7C 00 18 40 */ cmplw r0, r3 +/* 803BF97C 003BC8DC 41 82 00 C4 */ beq lbl_803BFA40 +/* 803BF980 003BC8E0 57 40 02 D7 */ rlwinm. r0, r26, 0, 0xb, 0xb +/* 803BF984 003BC8E4 40 82 00 14 */ bne lbl_803BF998 +/* 803BF988 003BC8E8 64 7A 00 10 */ oris r26, r3, 0x10 +/* 803BF98C 003BC8EC 38 7B 00 00 */ addi r3, r27, 0 +/* 803BF990 003BC8F0 57 44 C4 3E */ rlwinm r4, r26, 0x18, 0x10, 0x1f +/* 803BF994 003BC8F4 4B FC 49 A5 */ bl OSSetWirelessID +lbl_803BF998: +/* 803BF998 003BC8F8 67 40 4E 00 */ oris r0, r26, 0x4e00 +/* 803BF99C 003BC8FC 7C 9F EA 14 */ add r4, r31, r29 +/* 803BF9A0 003BC900 94 04 01 F0 */ stwu r0, 0x1f0(r4) +/* 803BF9A4 003BC904 38 00 00 80 */ li r0, 0x80 +/* 803BF9A8 003BC908 3C 60 80 3C */ lis r3, GetTypeCallback@ha +/* 803BF9AC 003BC90C 90 1E 00 00 */ stw r0, 0(r30) +/* 803BF9B0 003BC910 39 03 F8 04 */ addi r8, r3, GetTypeCallback@l +/* 803BF9B4 003BC914 38 7B 00 00 */ addi r3, r27, 0 +/* 803BF9B8 003BC918 38 DE 00 00 */ addi r6, r30, 0 +/* 803BF9BC 003BC91C 38 A0 00 03 */ li r5, 3 +/* 803BF9C0 003BC920 38 E0 00 03 */ li r7, 3 +/* 803BF9C4 003BC924 39 40 00 00 */ li r10, 0 +/* 803BF9C8 003BC928 39 20 00 00 */ li r9, 0 +/* 803BF9CC 003BC92C 4B FF FC CD */ bl SITransfer +/* 803BF9D0 003BC930 48 00 00 B8 */ b lbl_803BFA88 +lbl_803BF9D4: +/* 803BF9D4 003BC934 57 80 00 43 */ rlwinm. r0, r28, 0, 1, 1 +/* 803BF9D8 003BC938 41 82 00 5C */ beq lbl_803BFA34 +/* 803BF9DC 003BC93C 3C 60 00 D0 */ lis r3, 0x00CFFF00@ha +/* 803BF9E0 003BC940 38 03 FF 00 */ addi r0, r3, 0x00CFFF00@l +/* 803BF9E4 003BC944 7F 9C 00 38 */ and r28, r28, r0 +/* 803BF9E8 003BC948 67 9C 00 10 */ oris r28, r28, 0x10 +/* 803BF9EC 003BC94C 38 7B 00 00 */ addi r3, r27, 0 +/* 803BF9F0 003BC950 57 84 C4 3E */ rlwinm r4, r28, 0x18, 0x10, 0x1f +/* 803BF9F4 003BC954 4B FC 49 45 */ bl OSSetWirelessID +/* 803BF9F8 003BC958 67 80 4E 00 */ oris r0, r28, 0x4e00 +/* 803BF9FC 003BC95C 7C 9F EA 14 */ add r4, r31, r29 +/* 803BFA00 003BC960 94 04 01 F0 */ stwu r0, 0x1f0(r4) +/* 803BFA04 003BC964 38 00 00 80 */ li r0, 0x80 +/* 803BFA08 003BC968 3C 60 80 3C */ lis r3, GetTypeCallback@ha +/* 803BFA0C 003BC96C 90 1E 00 00 */ stw r0, 0(r30) +/* 803BFA10 003BC970 39 03 F8 04 */ addi r8, r3, GetTypeCallback@l +/* 803BFA14 003BC974 38 7B 00 00 */ addi r3, r27, 0 +/* 803BFA18 003BC978 38 DE 00 00 */ addi r6, r30, 0 +/* 803BFA1C 003BC97C 38 A0 00 03 */ li r5, 3 +/* 803BFA20 003BC980 38 E0 00 03 */ li r7, 3 +/* 803BFA24 003BC984 39 40 00 00 */ li r10, 0 +/* 803BFA28 003BC988 39 20 00 00 */ li r9, 0 +/* 803BFA2C 003BC98C 4B FF FC 6D */ bl SITransfer +/* 803BFA30 003BC990 48 00 00 58 */ b lbl_803BFA88 +lbl_803BFA34: +/* 803BFA34 003BC994 38 7B 00 00 */ addi r3, r27, 0 +/* 803BFA38 003BC998 38 80 00 00 */ li r4, 0 +/* 803BFA3C 003BC99C 4B FC 48 FD */ bl OSSetWirelessID +lbl_803BFA40: +/* 803BFA40 003BC9A0 57 60 20 36 */ slwi r0, r27, 4 +/* 803BFA44 003BC9A4 83 DE 00 00 */ lwz r30, 0(r30) +/* 803BFA48 003BC9A8 7F FF 02 14 */ add r31, r31, r0 +/* 803BFA4C 003BC9AC 3B A0 00 00 */ li r29, 0 +/* 803BFA50 003BC9B0 3B 9D 00 00 */ addi r28, r29, 0 +/* 803BFA54 003BC9B4 3B FF 01 60 */ addi r31, r31, 0x160 +lbl_803BFA58: +/* 803BFA58 003BC9B8 81 9F 00 00 */ lwz r12, 0(r31) +/* 803BFA5C 003BC9BC 28 0C 00 00 */ cmplwi r12, 0 +/* 803BFA60 003BC9C0 41 82 00 18 */ beq lbl_803BFA78 +/* 803BFA64 003BC9C4 93 9F 00 00 */ stw r28, 0(r31) +/* 803BFA68 003BC9C8 7D 88 03 A6 */ mtlr r12 +/* 803BFA6C 003BC9CC 38 7B 00 00 */ addi r3, r27, 0 +/* 803BFA70 003BC9D0 38 9E 00 00 */ addi r4, r30, 0 +/* 803BFA74 003BC9D4 4E 80 00 21 */ blrl +lbl_803BFA78: +/* 803BFA78 003BC9D8 3B BD 00 01 */ addi r29, r29, 1 +/* 803BFA7C 003BC9DC 2C 1D 00 04 */ cmpwi r29, 4 +/* 803BFA80 003BC9E0 3B FF 00 04 */ addi r31, r31, 4 +/* 803BFA84 003BC9E4 41 80 FF D4 */ blt lbl_803BFA58 +lbl_803BFA88: +/* 803BFA88 003BC9E8 BB 41 00 18 */ lmw r26, 0x18(r1) +/* 803BFA8C 003BC9EC 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803BFA90 003BC9F0 38 21 00 30 */ addi r1, r1, 0x30 +/* 803BFA94 003BC9F4 7C 08 03 A6 */ mtlr r0 +/* 803BFA98 003BC9F8 4E 80 00 20 */ blr + +.global SIGetType +SIGetType: +/* 803BFA9C 003BC9FC 7C 08 02 A6 */ mflr r0 +/* 803BFAA0 003BCA00 90 01 00 04 */ stw r0, 4(r1) +/* 803BFAA4 003BCA04 94 21 FF D8 */ stwu r1, -0x28(r1) +/* 803BFAA8 003BCA08 BF 61 00 14 */ stmw r27, 0x14(r1) +/* 803BFAAC 003BCA0C 7C 7B 1B 78 */ mr r27, r3 +/* 803BFAB0 003BCA10 4B FC 1B B1 */ bl OSDisableInterrupts +/* 803BFAB4 003BCA14 3C 80 80 3F */ lis r4, lbl_803F6EF8@ha +/* 803BFAB8 003BCA18 57 65 10 3A */ slwi r5, r27, 2 +/* 803BFABC 003BCA1C 38 04 6E F8 */ addi r0, r4, lbl_803F6EF8@l +/* 803BFAC0 003BCA20 7F C0 2A 14 */ add r30, r0, r5 +/* 803BFAC4 003BCA24 83 9E 00 00 */ lwz r28, 0(r30) +/* 803BFAC8 003BCA28 7C 7D 1B 78 */ mr r29, r3 +/* 803BFACC 003BCA2C 4B FC 58 FD */ bl __OSGetSystemTime +/* 803BFAD0 003BCA30 3C A0 80 57 */ lis r5, lbl_80569DB8@ha +/* 803BFAD4 003BCA34 57 66 18 38 */ slwi r6, r27, 3 +/* 803BFAD8 003BCA38 38 05 9D B8 */ addi r0, r5, lbl_80569DB8@l +/* 803BFADC 003BCA3C 7F E0 32 14 */ add r31, r0, r6 +/* 803BFAE0 003BCA40 80 DF 00 04 */ lwz r6, 4(r31) +/* 803BFAE4 003BCA44 3C A0 80 3F */ lis r5, lbl_803F6EE4@ha +/* 803BFAE8 003BCA48 38 A5 6E E4 */ addi r5, r5, lbl_803F6EE4@l +/* 803BFAEC 003BCA4C 80 1F 00 00 */ lwz r0, 0(r31) +/* 803BFAF0 003BCA50 7C 86 20 10 */ subfc r4, r6, r4 +/* 803BFAF4 003BCA54 7C 00 19 10 */ subfe r0, r0, r3 +/* 803BFAF8 003BCA58 80 C5 00 04 */ lwz r6, 4(r5) +/* 803BFAFC 003BCA5C 38 A0 00 80 */ li r5, 0x80 +/* 803BFB00 003BCA60 7C A3 DE 30 */ sraw r3, r5, r27 +/* 803BFB04 003BCA64 7C C3 18 39 */ and. r3, r6, r3 +/* 803BFB08 003BCA68 41 82 00 34 */ beq lbl_803BFB3C +/* 803BFB0C 003BCA6C 28 1C 00 08 */ cmplwi r28, 8 +/* 803BFB10 003BCA70 41 82 00 20 */ beq lbl_803BFB30 +/* 803BFB14 003BCA74 4B FC 58 B5 */ bl __OSGetSystemTime +/* 803BFB18 003BCA78 90 9F 00 04 */ stw r4, 4(r31) +/* 803BFB1C 003BCA7C 90 7F 00 00 */ stw r3, 0(r31) +/* 803BFB20 003BCA80 7F A3 EB 78 */ mr r3, r29 +/* 803BFB24 003BCA84 4B FC 1B 65 */ bl OSRestoreInterrupts +/* 803BFB28 003BCA88 7F 83 E3 78 */ mr r3, r28 +/* 803BFB2C 003BCA8C 48 00 01 20 */ b lbl_803BFC4C +lbl_803BFB30: +/* 803BFB30 003BCA90 90 BE 00 00 */ stw r5, 0(r30) +/* 803BFB34 003BCA94 3B 80 00 80 */ li r28, 0x80 +/* 803BFB38 003BCA98 48 00 00 B4 */ b lbl_803BFBEC +lbl_803BFB3C: +/* 803BFB3C 003BCA9C 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803BFB40 003BCAA0 80 C3 00 F8 */ lwz r6, 0x800000F8@l(r3) +/* 803BFB44 003BCAA4 3C A0 10 62 */ lis r5, 0x10624DD3@ha +/* 803BFB48 003BCAA8 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l +/* 803BFB4C 003BCAAC 54 C6 F0 BE */ srwi r6, r6, 2 +/* 803BFB50 003BCAB0 7C A5 30 16 */ mulhwu r5, r5, r6 +/* 803BFB54 003BCAB4 54 A5 D1 BE */ srwi r5, r5, 6 +/* 803BFB58 003BCAB8 1C E5 00 32 */ mulli r7, r5, 0x32 +/* 803BFB5C 003BCABC 38 60 00 00 */ li r3, 0 +/* 803BFB60 003BCAC0 6C 66 80 00 */ xoris r6, r3, 0x8000 +/* 803BFB64 003BCAC4 6C 05 80 00 */ xoris r5, r0, 0x8000 +/* 803BFB68 003BCAC8 7C 64 38 10 */ subfc r3, r4, r7 +/* 803BFB6C 003BCACC 7C A5 31 10 */ subfe r5, r5, r6 +/* 803BFB70 003BCAD0 7C A6 31 10 */ subfe r5, r6, r6 +/* 803BFB74 003BCAD4 7C A5 00 D1 */ neg. r5, r5 +/* 803BFB78 003BCAD8 40 82 00 1C */ bne lbl_803BFB94 +/* 803BFB7C 003BCADC 28 1C 00 08 */ cmplwi r28, 8 +/* 803BFB80 003BCAE0 41 82 00 14 */ beq lbl_803BFB94 +/* 803BFB84 003BCAE4 7F A3 EB 78 */ mr r3, r29 +/* 803BFB88 003BCAE8 4B FC 1B 01 */ bl OSRestoreInterrupts +/* 803BFB8C 003BCAEC 7F 83 E3 78 */ mr r3, r28 +/* 803BFB90 003BCAF0 48 00 00 BC */ b lbl_803BFC4C +lbl_803BFB94: +/* 803BFB94 003BCAF4 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803BFB98 003BCAF8 80 C3 00 F8 */ lwz r6, 0x800000F8@l(r3) +/* 803BFB9C 003BCAFC 3C A0 10 62 */ lis r5, 0x10624DD3@ha +/* 803BFBA0 003BCB00 38 A5 4D D3 */ addi r5, r5, 0x10624DD3@l +/* 803BFBA4 003BCB04 54 C6 F0 BE */ srwi r6, r6, 2 +/* 803BFBA8 003BCB08 7C A5 30 16 */ mulhwu r5, r5, r6 +/* 803BFBAC 003BCB0C 54 A5 D1 BE */ srwi r5, r5, 6 +/* 803BFBB0 003BCB10 1C C5 00 4B */ mulli r6, r5, 0x4b +/* 803BFBB4 003BCB14 38 60 00 00 */ li r3, 0 +/* 803BFBB8 003BCB18 6C 65 80 00 */ xoris r5, r3, 0x8000 +/* 803BFBBC 003BCB1C 6C 03 80 00 */ xoris r3, r0, 0x8000 +/* 803BFBC0 003BCB20 7C 04 30 10 */ subfc r0, r4, r6 +/* 803BFBC4 003BCB24 7C 63 29 10 */ subfe r3, r3, r5 +/* 803BFBC8 003BCB28 7C 65 29 10 */ subfe r3, r5, r5 +/* 803BFBCC 003BCB2C 7C 63 00 D1 */ neg. r3, r3 +/* 803BFBD0 003BCB30 40 82 00 10 */ bne lbl_803BFBE0 +/* 803BFBD4 003BCB34 38 00 00 80 */ li r0, 0x80 +/* 803BFBD8 003BCB38 90 1E 00 00 */ stw r0, 0(r30) +/* 803BFBDC 003BCB3C 48 00 00 10 */ b lbl_803BFBEC +lbl_803BFBE0: +/* 803BFBE0 003BCB40 38 00 00 80 */ li r0, 0x80 +/* 803BFBE4 003BCB44 90 1E 00 00 */ stw r0, 0(r30) +/* 803BFBE8 003BCB48 3B 80 00 80 */ li r28, 0x80 +lbl_803BFBEC: +/* 803BFBEC 003BCB4C 4B FC 57 DD */ bl __OSGetSystemTime +/* 803BFBF0 003BCB50 90 9F 00 04 */ stw r4, 4(r31) +/* 803BFBF4 003BCB54 3C 80 43 1C */ lis r4, 0x431BDE83@ha +/* 803BFBF8 003BCB58 3C A0 80 3C */ lis r5, GetTypeCallback@ha +/* 803BFBFC 003BCB5C 90 7F 00 00 */ stw r3, 0(r31) +/* 803BFC00 003BCB60 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 803BFC04 003BCB64 39 05 F8 04 */ addi r8, r5, GetTypeCallback@l +/* 803BFC08 003BCB68 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3) +/* 803BFC0C 003BCB6C 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l +/* 803BFC10 003BCB70 38 7B 00 00 */ addi r3, r27, 0 +/* 803BFC14 003BCB74 54 00 F0 BE */ srwi r0, r0, 2 +/* 803BFC18 003BCB78 7C 04 00 16 */ mulhwu r0, r4, r0 +/* 803BFC1C 003BCB7C 54 00 8B FE */ srwi r0, r0, 0xf +/* 803BFC20 003BCB80 1C 00 00 41 */ mulli r0, r0, 0x41 +/* 803BFC24 003BCB84 54 0A E8 FE */ srwi r10, r0, 3 +/* 803BFC28 003BCB88 38 DE 00 00 */ addi r6, r30, 0 +/* 803BFC2C 003BCB8C 38 8D B0 14 */ addi r4, r13, lbl_805A9BD4@sda21 +/* 803BFC30 003BCB90 38 A0 00 01 */ li r5, 1 +/* 803BFC34 003BCB94 38 E0 00 03 */ li r7, 3 +/* 803BFC38 003BCB98 39 20 00 00 */ li r9, 0 +/* 803BFC3C 003BCB9C 4B FF FA 5D */ bl SITransfer +/* 803BFC40 003BCBA0 7F A3 EB 78 */ mr r3, r29 +/* 803BFC44 003BCBA4 4B FC 1A 45 */ bl OSRestoreInterrupts +/* 803BFC48 003BCBA8 7F 83 E3 78 */ mr r3, r28 +lbl_803BFC4C: +/* 803BFC4C 003BCBAC BB 61 00 14 */ lmw r27, 0x14(r1) +/* 803BFC50 003BCBB0 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803BFC54 003BCBB4 38 21 00 28 */ addi r1, r1, 0x28 +/* 803BFC58 003BCBB8 7C 08 03 A6 */ mtlr r0 +/* 803BFC5C 003BCBBC 4E 80 00 20 */ blr + +.global SIGetTypeAsync +SIGetTypeAsync: +/* 803BFC60 003BCBC0 7C 08 02 A6 */ mflr r0 +/* 803BFC64 003BCBC4 90 01 00 04 */ stw r0, 4(r1) +/* 803BFC68 003BCBC8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BFC6C 003BCBCC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BFC70 003BCBD0 3B E4 00 00 */ addi r31, r4, 0 +/* 803BFC74 003BCBD4 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BFC78 003BCBD8 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BFC7C 003BCBDC 93 81 00 10 */ stw r28, 0x10(r1) +/* 803BFC80 003BCBE0 3B 83 00 00 */ addi r28, r3, 0 +/* 803BFC84 003BCBE4 4B FC 19 DD */ bl OSDisableInterrupts +/* 803BFC88 003BCBE8 3B C3 00 00 */ addi r30, r3, 0 +/* 803BFC8C 003BCBEC 38 7C 00 00 */ addi r3, r28, 0 +/* 803BFC90 003BCBF0 4B FF FE 0D */ bl SIGetType +/* 803BFC94 003BCBF4 3C 80 80 3F */ lis r4, lbl_803F6EF8@ha +/* 803BFC98 003BCBF8 57 85 10 3A */ slwi r5, r28, 2 +/* 803BFC9C 003BCBFC 38 04 6E F8 */ addi r0, r4, lbl_803F6EF8@l +/* 803BFCA0 003BCC00 7C 80 2A 14 */ add r4, r0, r5 +/* 803BFCA4 003BCC04 80 04 00 00 */ lwz r0, 0(r4) +/* 803BFCA8 003BCC08 3B A3 00 00 */ addi r29, r3, 0 +/* 803BFCAC 003BCC0C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 803BFCB0 003BCC10 41 82 00 AC */ beq lbl_803BFD5C +/* 803BFCB4 003BCC14 3C 60 80 57 */ lis r3, lbl_80569DF8@ha +/* 803BFCB8 003BCC18 57 84 20 36 */ slwi r4, r28, 4 +/* 803BFCBC 003BCC1C 38 03 9D F8 */ addi r0, r3, lbl_80569DF8@l +/* 803BFCC0 003BCC20 7C 80 22 14 */ add r4, r0, r4 +/* 803BFCC4 003BCC24 80 04 00 00 */ lwz r0, 0(r4) +/* 803BFCC8 003BCC28 38 A0 00 00 */ li r5, 0 +/* 803BFCCC 003BCC2C 7C 00 F8 40 */ cmplw r0, r31 +/* 803BFCD0 003BCC30 41 82 00 A0 */ beq lbl_803BFD70 +/* 803BFCD4 003BCC34 28 00 00 00 */ cmplwi r0, 0 +/* 803BFCD8 003BCC38 40 82 00 10 */ bne lbl_803BFCE8 +/* 803BFCDC 003BCC3C 54 A0 10 3A */ slwi r0, r5, 2 +/* 803BFCE0 003BCC40 7F E4 01 2E */ stwx r31, r4, r0 +/* 803BFCE4 003BCC44 48 00 00 8C */ b lbl_803BFD70 +lbl_803BFCE8: +/* 803BFCE8 003BCC48 38 64 00 04 */ addi r3, r4, 4 +/* 803BFCEC 003BCC4C 80 04 00 04 */ lwz r0, 4(r4) +/* 803BFCF0 003BCC50 38 A0 00 01 */ li r5, 1 +/* 803BFCF4 003BCC54 7C 00 F8 40 */ cmplw r0, r31 +/* 803BFCF8 003BCC58 41 82 00 78 */ beq lbl_803BFD70 +/* 803BFCFC 003BCC5C 28 00 00 00 */ cmplwi r0, 0 +/* 803BFD00 003BCC60 40 82 00 10 */ bne lbl_803BFD10 +/* 803BFD04 003BCC64 54 A0 10 3A */ slwi r0, r5, 2 +/* 803BFD08 003BCC68 7F E4 01 2E */ stwx r31, r4, r0 +/* 803BFD0C 003BCC6C 48 00 00 64 */ b lbl_803BFD70 +lbl_803BFD10: +/* 803BFD10 003BCC70 84 03 00 04 */ lwzu r0, 4(r3) +/* 803BFD14 003BCC74 38 A0 00 02 */ li r5, 2 +/* 803BFD18 003BCC78 7C 00 F8 40 */ cmplw r0, r31 +/* 803BFD1C 003BCC7C 41 82 00 54 */ beq lbl_803BFD70 +/* 803BFD20 003BCC80 28 00 00 00 */ cmplwi r0, 0 +/* 803BFD24 003BCC84 40 82 00 10 */ bne lbl_803BFD34 +/* 803BFD28 003BCC88 54 A0 10 3A */ slwi r0, r5, 2 +/* 803BFD2C 003BCC8C 7F E4 01 2E */ stwx r31, r4, r0 +/* 803BFD30 003BCC90 48 00 00 40 */ b lbl_803BFD70 +lbl_803BFD34: +/* 803BFD34 003BCC94 80 03 00 04 */ lwz r0, 4(r3) +/* 803BFD38 003BCC98 38 A0 00 03 */ li r5, 3 +/* 803BFD3C 003BCC9C 7C 00 F8 40 */ cmplw r0, r31 +/* 803BFD40 003BCCA0 41 82 00 30 */ beq lbl_803BFD70 +/* 803BFD44 003BCCA4 28 00 00 00 */ cmplwi r0, 0 +/* 803BFD48 003BCCA8 40 82 00 28 */ bne lbl_803BFD70 +/* 803BFD4C 003BCCAC 54 A0 10 3A */ slwi r0, r5, 2 +/* 803BFD50 003BCCB0 7F E4 01 2E */ stwx r31, r4, r0 +/* 803BFD54 003BCCB4 48 00 00 1C */ b lbl_803BFD70 +/* 803BFD58 003BCCB8 48 00 00 18 */ b lbl_803BFD70 +lbl_803BFD5C: +/* 803BFD5C 003BCCBC 39 9F 00 00 */ addi r12, r31, 0 +/* 803BFD60 003BCCC0 7D 88 03 A6 */ mtlr r12 +/* 803BFD64 003BCCC4 38 7C 00 00 */ addi r3, r28, 0 +/* 803BFD68 003BCCC8 38 9D 00 00 */ addi r4, r29, 0 +/* 803BFD6C 003BCCCC 4E 80 00 21 */ blrl +lbl_803BFD70: +/* 803BFD70 003BCCD0 7F C3 F3 78 */ mr r3, r30 +/* 803BFD74 003BCCD4 4B FC 19 15 */ bl OSRestoreInterrupts +/* 803BFD78 003BCCD8 7F A3 EB 78 */ mr r3, r29 +/* 803BFD7C 003BCCDC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BFD80 003BCCE0 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BFD84 003BCCE4 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BFD88 003BCCE8 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BFD8C 003BCCEC 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803BFD90 003BCCF0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BFD94 003BCCF4 7C 08 03 A6 */ mtlr r0 +/* 803BFD98 003BCCF8 4E 80 00 20 */ blr + +.global SIDecodeType +SIDecodeType: +/* 803BFD9C 003BCCFC 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c +/* 803BFDA0 003BCD00 54 64 06 3E */ clrlwi r4, r3, 0x18 +/* 803BFDA4 003BCD04 54 65 00 2E */ rlwinm r5, r3, 0, 0, 0x17 +/* 803BFDA8 003BCD08 41 82 00 0C */ beq lbl_803BFDB4 +/* 803BFDAC 003BCD0C 38 60 00 08 */ li r3, 8 +/* 803BFDB0 003BCD10 4E 80 00 20 */ blr +lbl_803BFDB4: +/* 803BFDB4 003BCD14 70 80 00 47 */ andi. r0, r4, 0x47 +/* 803BFDB8 003BCD18 41 82 00 0C */ beq lbl_803BFDC4 +/* 803BFDBC 003BCD1C 38 60 00 40 */ li r3, 0x40 +/* 803BFDC0 003BCD20 4E 80 00 20 */ blr +lbl_803BFDC4: +/* 803BFDC4 003BCD24 28 04 00 00 */ cmplwi r4, 0 +/* 803BFDC8 003BCD28 41 82 00 0C */ beq lbl_803BFDD4 +/* 803BFDCC 003BCD2C 38 60 00 80 */ li r3, 0x80 +/* 803BFDD0 003BCD30 4E 80 00 20 */ blr +lbl_803BFDD4: +/* 803BFDD4 003BCD34 54 A3 00 C9 */ rlwinm. r3, r5, 0, 3, 4 +/* 803BFDD8 003BCD38 40 82 00 64 */ bne lbl_803BFE3C +/* 803BFDDC 003BCD3C 54 A3 00 1E */ rlwinm r3, r5, 0, 0, 0xf +/* 803BFDE0 003BCD40 3C 00 00 04 */ lis r0, 4 +/* 803BFDE4 003BCD44 7C 03 00 00 */ cmpw r3, r0 +/* 803BFDE8 003BCD48 4D 82 00 20 */ beqlr +/* 803BFDEC 003BCD4C 40 80 00 24 */ bge lbl_803BFE10 +/* 803BFDF0 003BCD50 3C 00 00 02 */ lis r0, 2 +/* 803BFDF4 003BCD54 7C 03 00 00 */ cmpw r3, r0 +/* 803BFDF8 003BCD58 4D 82 00 20 */ beqlr +/* 803BFDFC 003BCD5C 40 80 00 38 */ bge lbl_803BFE34 +/* 803BFE00 003BCD60 3C 00 00 01 */ lis r0, 1 +/* 803BFE04 003BCD64 7C 03 00 00 */ cmpw r3, r0 +/* 803BFE08 003BCD68 4D 82 00 20 */ beqlr +/* 803BFE0C 003BCD6C 48 00 00 28 */ b lbl_803BFE34 +lbl_803BFE10: +/* 803BFE10 003BCD70 3C 00 05 00 */ lis r0, 0x500 +/* 803BFE14 003BCD74 7C 03 00 00 */ cmpw r3, r0 +/* 803BFE18 003BCD78 4D 82 00 20 */ beqlr +/* 803BFE1C 003BCD7C 40 80 00 18 */ bge lbl_803BFE34 +/* 803BFE20 003BCD80 3C 00 02 00 */ lis r0, 0x200 +/* 803BFE24 003BCD84 7C 03 00 00 */ cmpw r3, r0 +/* 803BFE28 003BCD88 4D 82 00 20 */ beqlr +/* 803BFE2C 003BCD8C 48 00 00 08 */ b lbl_803BFE34 + +.global sub_803bfe30 +sub_803bfe30: +/* 803BFE30 003BCD90 4E 80 00 20 */ blr +lbl_803BFE34: +/* 803BFE34 003BCD94 38 60 00 40 */ li r3, 0x40 +/* 803BFE38 003BCD98 4E 80 00 20 */ blr +lbl_803BFE3C: +/* 803BFE3C 003BCD9C 3C 03 F8 00 */ addis r0, r3, 0xf800 +/* 803BFE40 003BCDA0 28 00 00 00 */ cmplwi r0, 0 +/* 803BFE44 003BCDA4 41 82 00 0C */ beq lbl_803BFE50 +/* 803BFE48 003BCDA8 38 60 00 40 */ li r3, 0x40 +/* 803BFE4C 003BCDAC 4E 80 00 20 */ blr +lbl_803BFE50: +/* 803BFE50 003BCDB0 54 A3 00 1E */ rlwinm r3, r5, 0, 0, 0xf +/* 803BFE54 003BCDB4 3C 00 09 00 */ lis r0, 0x900 +/* 803BFE58 003BCDB8 7C 03 00 00 */ cmpw r3, r0 +/* 803BFE5C 003BCDBC 4D 82 00 20 */ beqlr +/* 803BFE60 003BCDC0 40 80 00 18 */ bge lbl_803BFE78 +/* 803BFE64 003BCDC4 3C 00 08 00 */ lis r0, 0x800 +/* 803BFE68 003BCDC8 7C 03 00 00 */ cmpw r3, r0 +/* 803BFE6C 003BCDCC 4D 82 00 20 */ beqlr +/* 803BFE70 003BCDD0 48 00 00 08 */ b lbl_803BFE78 + +.global sub_803bfe74 +sub_803bfe74: +/* 803BFE74 003BCDD4 4E 80 00 20 */ blr +lbl_803BFE78: +/* 803BFE78 003BCDD8 54 A3 00 14 */ rlwinm r3, r5, 0, 0, 0xa +/* 803BFE7C 003BCDDC 3C 03 F7 E0 */ addis r0, r3, 0xf7e0 +/* 803BFE80 003BCDE0 28 00 00 00 */ cmplwi r0, 0 +/* 803BFE84 003BCDE4 40 82 00 0C */ bne lbl_803BFE90 +/* 803BFE88 003BCDE8 3C 60 08 20 */ lis r3, 0x820 +/* 803BFE8C 003BCDEC 4E 80 00 20 */ blr +lbl_803BFE90: +/* 803BFE90 003BCDF0 54 A0 00 01 */ rlwinm. r0, r5, 0, 0, 0 +/* 803BFE94 003BCDF4 41 82 00 34 */ beq lbl_803BFEC8 +/* 803BFE98 003BCDF8 54 A0 01 4B */ rlwinm. r0, r5, 0, 5, 5 +/* 803BFE9C 003BCDFC 40 82 00 2C */ bne lbl_803BFEC8 +/* 803BFEA0 003BCE00 74 A3 8B 10 */ andis. r3, r5, 0x8b10 +/* 803BFEA4 003BCE04 3C 03 74 F0 */ addis r0, r3, 0x74f0 +/* 803BFEA8 003BCE08 28 00 00 00 */ cmplwi r0, 0 +/* 803BFEAC 003BCE0C 40 82 00 0C */ bne lbl_803BFEB8 +/* 803BFEB0 003BCE10 3C 60 8B 10 */ lis r3, 0x8b10 +/* 803BFEB4 003BCE14 4E 80 00 20 */ blr +lbl_803BFEB8: +/* 803BFEB8 003BCE18 54 A0 01 8D */ rlwinm. r0, r5, 0, 6, 6 +/* 803BFEBC 003BCE1C 40 82 00 0C */ bne lbl_803BFEC8 +/* 803BFEC0 003BCE20 3C 60 88 00 */ lis r3, 0x8800 +/* 803BFEC4 003BCE24 4E 80 00 20 */ blr +lbl_803BFEC8: +/* 803BFEC8 003BCE28 74 A3 09 00 */ andis. r3, r5, 0x900 +/* 803BFECC 003BCE2C 3C 03 F7 00 */ addis r0, r3, 0xf700 +/* 803BFED0 003BCE30 28 00 00 00 */ cmplwi r0, 0 +/* 803BFED4 003BCE34 40 82 00 0C */ bne lbl_803BFEE0 +/* 803BFED8 003BCE38 3C 60 09 00 */ lis r3, 0x900 +/* 803BFEDC 003BCE3C 4E 80 00 20 */ blr +lbl_803BFEE0: +/* 803BFEE0 003BCE40 38 60 00 40 */ li r3, 0x40 +/* 803BFEE4 003BCE44 4E 80 00 20 */ blr + +.global SIProbe +SIProbe: +/* 803BFEE8 003BCE48 7C 08 02 A6 */ mflr r0 +/* 803BFEEC 003BCE4C 90 01 00 04 */ stw r0, 4(r1) +/* 803BFEF0 003BCE50 94 21 FF F8 */ stwu r1, -8(r1) +/* 803BFEF4 003BCE54 4B FF FB A9 */ bl SIGetType +/* 803BFEF8 003BCE58 4B FF FE A5 */ bl SIDecodeType +/* 803BFEFC 003BCE5C 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803BFF00 003BCE60 38 21 00 08 */ addi r1, r1, 8 +/* 803BFF04 003BCE64 7C 08 03 A6 */ mtlr r0 +/* 803BFF08 003BCE68 4E 80 00 20 */ blr diff --git a/asm/Dolphin/SISamplingRate.s b/asm/Dolphin/SISamplingRate.s new file mode 100644 index 00000000..07b39f46 --- /dev/null +++ b/asm/Dolphin/SISamplingRate.s @@ -0,0 +1,83 @@ +.include "macros.inc" + +.section .text, "ax" + +.global SISetSamplingRate +SISetSamplingRate: +/* 803BFF0C 003BCE6C 7C 08 02 A6 */ mflr r0 +/* 803BFF10 003BCE70 90 01 00 04 */ stw r0, 4(r1) +/* 803BFF14 003BCE74 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803BFF18 003BCE78 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803BFF1C 003BCE7C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803BFF20 003BCE80 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803BFF24 003BCE84 3B A3 00 00 */ addi r29, r3, 0 +/* 803BFF28 003BCE88 28 1D 00 0B */ cmplwi r29, 0xb +/* 803BFF2C 003BCE8C 3C 60 80 3F */ lis r3, lbl_803F6FB8@ha +/* 803BFF30 003BCE90 3B E3 6F B8 */ addi r31, r3, lbl_803F6FB8@l +/* 803BFF34 003BCE94 40 81 00 08 */ ble lbl_803BFF3C +/* 803BFF38 003BCE98 3B A0 00 0B */ li r29, 0xb +lbl_803BFF3C: +/* 803BFF3C 003BCE9C 4B FC 17 25 */ bl OSDisableInterrupts +/* 803BFF40 003BCEA0 93 AD B0 20 */ stw r29, lbl_805A9BE0@sda21(r13) +/* 803BFF44 003BCEA4 7C 7E 1B 78 */ mr r30, r3 +/* 803BFF48 003BCEA8 4B FC 95 91 */ bl VIGetTvFormat +/* 803BFF4C 003BCEAC 2C 03 00 02 */ cmpwi r3, 2 +/* 803BFF50 003BCEB0 41 82 00 24 */ beq lbl_803BFF74 +/* 803BFF54 003BCEB4 40 80 00 14 */ bge lbl_803BFF68 +/* 803BFF58 003BCEB8 2C 03 00 00 */ cmpwi r3, 0 +/* 803BFF5C 003BCEBC 41 82 00 18 */ beq lbl_803BFF74 +/* 803BFF60 003BCEC0 40 80 00 1C */ bge lbl_803BFF7C +/* 803BFF64 003BCEC4 48 00 00 20 */ b lbl_803BFF84 +lbl_803BFF68: +/* 803BFF68 003BCEC8 2C 03 00 05 */ cmpwi r3, 5 +/* 803BFF6C 003BCECC 41 82 00 08 */ beq lbl_803BFF74 +/* 803BFF70 003BCED0 48 00 00 14 */ b lbl_803BFF84 +lbl_803BFF74: +/* 803BFF74 003BCED4 7F E4 FB 78 */ mr r4, r31 +/* 803BFF78 003BCED8 48 00 00 20 */ b lbl_803BFF98 +lbl_803BFF7C: +/* 803BFF7C 003BCEDC 38 9F 00 30 */ addi r4, r31, 0x30 +/* 803BFF80 003BCEE0 48 00 00 18 */ b lbl_803BFF98 +lbl_803BFF84: +/* 803BFF84 003BCEE4 38 7F 00 60 */ addi r3, r31, 0x60 +/* 803BFF88 003BCEE8 4C C6 31 82 */ crclr 6 +/* 803BFF8C 003BCEEC 4B FB FA 21 */ bl OSReport +/* 803BFF90 003BCEF0 3B A0 00 00 */ li r29, 0 +/* 803BFF94 003BCEF4 38 9F 00 00 */ addi r4, r31, 0 +lbl_803BFF98: +/* 803BFF98 003BCEF8 3C 60 CC 00 */ lis r3, 0xCC00206C@ha +/* 803BFF9C 003BCEFC A0 03 20 6C */ lhz r0, 0xCC00206C@l(r3) +/* 803BFFA0 003BCF00 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803BFFA4 003BCF04 41 82 00 0C */ beq lbl_803BFFB0 +/* 803BFFA8 003BCF08 38 A0 00 02 */ li r5, 2 +/* 803BFFAC 003BCF0C 48 00 00 08 */ b lbl_803BFFB4 +lbl_803BFFB0: +/* 803BFFB0 003BCF10 38 A0 00 01 */ li r5, 1 +lbl_803BFFB4: +/* 803BFFB4 003BCF14 57 A3 10 3A */ slwi r3, r29, 2 +/* 803BFFB8 003BCF18 7C 04 1A 2E */ lhzx r0, r4, r3 +/* 803BFFBC 003BCF1C 7C 64 1A 14 */ add r3, r4, r3 +/* 803BFFC0 003BCF20 88 83 00 02 */ lbz r4, 2(r3) +/* 803BFFC4 003BCF24 7C 65 01 D6 */ mullw r3, r5, r0 +/* 803BFFC8 003BCF28 4B FF F3 39 */ bl SISetXY +/* 803BFFCC 003BCF2C 7F C3 F3 78 */ mr r3, r30 +/* 803BFFD0 003BCF30 4B FC 16 B9 */ bl OSRestoreInterrupts +/* 803BFFD4 003BCF34 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803BFFD8 003BCF38 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803BFFDC 003BCF3C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803BFFE0 003BCF40 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803BFFE4 003BCF44 38 21 00 20 */ addi r1, r1, 0x20 +/* 803BFFE8 003BCF48 7C 08 03 A6 */ mtlr r0 +/* 803BFFEC 003BCF4C 4E 80 00 20 */ blr + +.global SIRefreshSamplingRate +SIRefreshSamplingRate: +/* 803BFFF0 003BCF50 7C 08 02 A6 */ mflr r0 +/* 803BFFF4 003BCF54 90 01 00 04 */ stw r0, 4(r1) +/* 803BFFF8 003BCF58 94 21 FF F8 */ stwu r1, -8(r1) +/* 803BFFFC 003BCF5C 80 6D B0 20 */ lwz r3, lbl_805A9BE0@sda21(r13) +/* 803C0000 003BCF60 4B FF FF 0D */ bl SISetSamplingRate +/* 803C0004 003BCF64 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803C0008 003BCF68 38 21 00 08 */ addi r1, r1, 8 +/* 803C000C 003BCF6C 7C 08 03 A6 */ mtlr r0 +/* 803C0010 003BCF70 4E 80 00 20 */ blr diff --git a/asm/Dolphin/dtk.s b/asm/Dolphin/dtk.s new file mode 100644 index 00000000..bb7d2c48 --- /dev/null +++ b/asm/Dolphin/dtk.s @@ -0,0 +1,695 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sub_803b7518 +sub_803b7518: +/* 803B7518 003B4478 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 803B751C 003B447C 4C 82 00 20 */ bnelr +/* 803B7520 003B4480 38 00 00 01 */ li r0, 1 +/* 803B7524 003B4484 90 0D B0 00 */ stw r0, lbl_805A9BC0@sda21(r13) +/* 803B7528 003B4488 38 00 00 00 */ li r0, 0 +/* 803B752C 003B448C 90 0D AF F0 */ stw r0, lbl_805A9BB0@sda21(r13) +/* 803B7530 003B4490 4E 80 00 20 */ blr + +.global sub_803b7534 +sub_803b7534: +/* 803B7534 003B4494 7C 08 02 A6 */ mflr r0 +/* 803B7538 003B4498 90 01 00 04 */ stw r0, 4(r1) +/* 803B753C 003B449C 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B7540 003B44A0 88 6D AF F8 */ lbz r3, lbl_805A9BB8@sda21(r13) +/* 803B7544 003B44A4 4B FB 5E 39 */ bl AISetStreamVolLeft +/* 803B7548 003B44A8 88 6D AF F9 */ lbz r3, lbl_805A9BB9@sda21(r13) +/* 803B754C 003B44AC 4B FB 5E 5D */ bl AISetStreamVolRight +/* 803B7550 003B44B0 4B FB 5B 49 */ bl sub_8036d098 +/* 803B7554 003B44B4 80 6D AF F4 */ lwz r3, lbl_805A9BB4@sda21(r13) +/* 803B7558 003B44B8 4B FB 5B 59 */ bl SetTRKConnected +/* 803B755C 003B44BC 38 60 00 01 */ li r3, 1 +/* 803B7560 003B44C0 4B FB 5B 5D */ bl AISetStreamPlayState +/* 803B7564 003B44C4 3C 60 80 57 */ lis r3, lbl_80569908@ha +/* 803B7568 003B44C8 38 63 99 08 */ addi r3, r3, lbl_80569908@l +/* 803B756C 003B44CC 38 80 00 00 */ li r4, 0 +/* 803B7570 003B44D0 4B FB C8 4D */ bl sub_80373dbc +/* 803B7574 003B44D4 80 6D AF D8 */ lwz r3, lbl_805A9B98@sda21(r13) +/* 803B7578 003B44D8 38 00 00 01 */ li r0, 1 +/* 803B757C 003B44DC 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7580 003B44E0 28 03 00 00 */ cmplwi r3, 0 +/* 803B7584 003B44E4 41 82 00 24 */ beq lbl_803B75A8 +/* 803B7588 003B44E8 81 83 00 10 */ lwz r12, 0x10(r3) +/* 803B758C 003B44EC 28 0C 00 00 */ cmplwi r12, 0 +/* 803B7590 003B44F0 41 82 00 18 */ beq lbl_803B75A8 +/* 803B7594 003B44F4 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803B7598 003B44F8 54 03 07 FF */ clrlwi. r3, r0, 0x1f +/* 803B759C 003B44FC 41 82 00 0C */ beq lbl_803B75A8 +/* 803B75A0 003B4500 7D 88 03 A6 */ mtlr r12 +/* 803B75A4 003B4504 4E 80 00 21 */ blrl +lbl_803B75A8: +/* 803B75A8 003B4508 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B75AC 003B450C 38 21 00 08 */ addi r1, r1, 8 +/* 803B75B0 003B4510 7C 08 03 A6 */ mtlr r0 +/* 803B75B4 003B4514 4E 80 00 20 */ blr + +.global sub_803b75b8 +sub_803b75b8: +/* 803B75B8 003B4518 7C 08 02 A6 */ mflr r0 +/* 803B75BC 003B451C 38 60 00 00 */ li r3, 0 +/* 803B75C0 003B4520 90 01 00 04 */ stw r0, 4(r1) +/* 803B75C4 003B4524 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B75C8 003B4528 4B FB 5D B5 */ bl AISetStreamVolLeft +/* 803B75CC 003B452C 38 60 00 00 */ li r3, 0 +/* 803B75D0 003B4530 4B FB 5D D9 */ bl AISetStreamVolRight +/* 803B75D4 003B4534 38 60 00 00 */ li r3, 0 +/* 803B75D8 003B4538 4B FB 5A E5 */ bl AISetStreamPlayState +/* 803B75DC 003B453C 3C 60 80 57 */ lis r3, lbl_80569938@ha +/* 803B75E0 003B4540 38 63 99 38 */ addi r3, r3, lbl_80569938@l +/* 803B75E4 003B4544 38 80 00 00 */ li r4, 0 +/* 803B75E8 003B4548 4B FB C7 D5 */ bl sub_80373dbc +/* 803B75EC 003B454C 80 6D AF D8 */ lwz r3, lbl_805A9B98@sda21(r13) +/* 803B75F0 003B4550 38 00 00 02 */ li r0, 2 +/* 803B75F4 003B4554 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B75F8 003B4558 28 03 00 00 */ cmplwi r3, 0 +/* 803B75FC 003B455C 41 82 00 24 */ beq lbl_803B7620 +/* 803B7600 003B4560 81 83 00 10 */ lwz r12, 0x10(r3) +/* 803B7604 003B4564 28 0C 00 00 */ cmplwi r12, 0 +/* 803B7608 003B4568 41 82 00 18 */ beq lbl_803B7620 +/* 803B760C 003B456C 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803B7610 003B4570 54 03 06 B5 */ rlwinm. r3, r0, 0, 0x1a, 0x1a +/* 803B7614 003B4574 41 82 00 0C */ beq lbl_803B7620 +/* 803B7618 003B4578 7D 88 03 A6 */ mtlr r12 +/* 803B761C 003B457C 4E 80 00 21 */ blrl +lbl_803B7620: +/* 803B7620 003B4580 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7624 003B4584 38 21 00 08 */ addi r1, r1, 8 +/* 803B7628 003B4588 7C 08 03 A6 */ mtlr r0 +/* 803B762C 003B458C 4E 80 00 20 */ blr + +.global sub_803b7630 +sub_803b7630: +/* 803B7630 003B4590 7C 08 02 A6 */ mflr r0 +/* 803B7634 003B4594 90 01 00 04 */ stw r0, 4(r1) +/* 803B7638 003B4598 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B763C 003B459C 90 6D AF F0 */ stw r3, lbl_805A9BB0@sda21(r13) +/* 803B7640 003B45A0 80 0D B0 00 */ lwz r0, lbl_805A9BC0@sda21(r13) +/* 803B7644 003B45A4 28 00 00 00 */ cmplwi r0, 0 +/* 803B7648 003B45A8 41 82 01 C0 */ beq lbl_803B7808 +/* 803B764C 003B45AC 80 6D AF D8 */ lwz r3, lbl_805A9B98@sda21(r13) +/* 803B7650 003B45B0 38 00 00 00 */ li r0, 0 +/* 803B7654 003B45B4 90 0D B0 00 */ stw r0, lbl_805A9BC0@sda21(r13) +/* 803B7658 003B45B8 28 03 00 00 */ cmplwi r3, 0 +/* 803B765C 003B45BC 41 82 00 24 */ beq lbl_803B7680 +/* 803B7660 003B45C0 81 83 00 10 */ lwz r12, 0x10(r3) +/* 803B7664 003B45C4 28 0C 00 00 */ cmplwi r12, 0 +/* 803B7668 003B45C8 41 82 00 18 */ beq lbl_803B7680 +/* 803B766C 003B45CC 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803B7670 003B45D0 54 03 06 F7 */ rlwinm. r3, r0, 0, 0x1b, 0x1b +/* 803B7674 003B45D4 41 82 00 0C */ beq lbl_803B7680 +/* 803B7678 003B45D8 7D 88 03 A6 */ mtlr r12 +/* 803B767C 003B45DC 4E 80 00 21 */ blrl +lbl_803B7680: +/* 803B7680 003B45E0 38 00 00 03 */ li r0, 3 +/* 803B7684 003B45E4 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7688 003B45E8 80 0D AF EC */ lwz r0, lbl_805A9BAC@sda21(r13) +/* 803B768C 003B45EC 2C 00 00 01 */ cmpwi r0, 1 +/* 803B7690 003B45F0 41 82 00 A0 */ beq lbl_803B7730 +/* 803B7694 003B45F4 40 80 00 10 */ bge lbl_803B76A4 +/* 803B7698 003B45F8 2C 00 00 00 */ cmpwi r0, 0 +/* 803B769C 003B45FC 40 80 00 14 */ bge lbl_803B76B0 +/* 803B76A0 003B4600 48 00 01 7C */ b lbl_803B781C +lbl_803B76A4: +/* 803B76A4 003B4604 2C 00 00 03 */ cmpwi r0, 3 +/* 803B76A8 003B4608 40 80 01 74 */ bge lbl_803B781C +/* 803B76AC 003B460C 48 00 01 18 */ b lbl_803B77C4 +lbl_803B76B0: +/* 803B76B0 003B4610 80 6D AF D8 */ lwz r3, lbl_805A9B98@sda21(r13) +/* 803B76B4 003B4614 28 03 00 00 */ cmplwi r3, 0 +/* 803B76B8 003B4618 41 82 01 64 */ beq lbl_803B781C +/* 803B76BC 003B461C 80 03 00 04 */ lwz r0, 4(r3) +/* 803B76C0 003B4620 28 00 00 00 */ cmplwi r0, 0 +/* 803B76C4 003B4624 41 82 00 40 */ beq lbl_803B7704 +/* 803B76C8 003B4628 90 0D AF D8 */ stw r0, lbl_805A9B98@sda21(r13) +/* 803B76CC 003B462C 38 60 00 00 */ li r3, 0 +/* 803B76D0 003B4630 4B FB 5C AD */ bl AISetStreamVolLeft +/* 803B76D4 003B4634 38 60 00 00 */ li r3, 0 +/* 803B76D8 003B4638 4B FB 5C D1 */ bl AISetStreamVolRight +/* 803B76DC 003B463C 38 60 00 00 */ li r3, 0 +/* 803B76E0 003B4640 4B FB 59 DD */ bl AISetStreamPlayState +/* 803B76E4 003B4644 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B76E8 003B4648 3C 60 80 3B */ lis r3, sub_803b7534@ha +/* 803B76EC 003B464C 38 C3 75 34 */ addi r6, r3, sub_803b7534@l +/* 803B76F0 003B4650 38 64 00 14 */ addi r3, r4, 0x14 +/* 803B76F4 003B4654 38 80 00 00 */ li r4, 0 +/* 803B76F8 003B4658 38 A0 00 00 */ li r5, 0 +/* 803B76FC 003B465C 4B FB A3 89 */ bl DVDPrepareStreamAsync +/* 803B7700 003B4660 48 00 01 1C */ b lbl_803B781C +lbl_803B7704: +/* 803B7704 003B4664 80 0D AF DC */ lwz r0, lbl_805A9B9C@sda21(r13) +/* 803B7708 003B4668 38 60 00 00 */ li r3, 0 +/* 803B770C 003B466C 90 0D AF D8 */ stw r0, lbl_805A9B98@sda21(r13) +/* 803B7710 003B4670 4B FB 5C 6D */ bl AISetStreamVolLeft +/* 803B7714 003B4674 38 60 00 00 */ li r3, 0 +/* 803B7718 003B4678 4B FB 5C 91 */ bl AISetStreamVolRight +/* 803B771C 003B467C 38 60 00 00 */ li r3, 0 +/* 803B7720 003B4680 4B FB 59 9D */ bl AISetStreamPlayState +/* 803B7724 003B4684 38 00 00 00 */ li r0, 0 +/* 803B7728 003B4688 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B772C 003B468C 48 00 00 F0 */ b lbl_803B781C +lbl_803B7730: +/* 803B7730 003B4690 80 6D AF D8 */ lwz r3, lbl_805A9B98@sda21(r13) +/* 803B7734 003B4694 28 03 00 00 */ cmplwi r3, 0 +/* 803B7738 003B4698 41 82 00 E4 */ beq lbl_803B781C +/* 803B773C 003B469C 80 03 00 04 */ lwz r0, 4(r3) +/* 803B7740 003B46A0 28 00 00 00 */ cmplwi r0, 0 +/* 803B7744 003B46A4 41 82 00 40 */ beq lbl_803B7784 +/* 803B7748 003B46A8 90 0D AF D8 */ stw r0, lbl_805A9B98@sda21(r13) +/* 803B774C 003B46AC 38 60 00 00 */ li r3, 0 +/* 803B7750 003B46B0 4B FB 5C 2D */ bl AISetStreamVolLeft +/* 803B7754 003B46B4 38 60 00 00 */ li r3, 0 +/* 803B7758 003B46B8 4B FB 5C 51 */ bl AISetStreamVolRight +/* 803B775C 003B46BC 38 60 00 00 */ li r3, 0 +/* 803B7760 003B46C0 4B FB 59 5D */ bl AISetStreamPlayState +/* 803B7764 003B46C4 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B7768 003B46C8 3C 60 80 3B */ lis r3, sub_803b7534@ha +/* 803B776C 003B46CC 38 C3 75 34 */ addi r6, r3, sub_803b7534@l +/* 803B7770 003B46D0 38 64 00 14 */ addi r3, r4, 0x14 +/* 803B7774 003B46D4 38 80 00 00 */ li r4, 0 +/* 803B7778 003B46D8 38 A0 00 00 */ li r5, 0 +/* 803B777C 003B46DC 4B FB A3 09 */ bl DVDPrepareStreamAsync +/* 803B7780 003B46E0 48 00 00 9C */ b lbl_803B781C +lbl_803B7784: +/* 803B7784 003B46E4 80 0D AF DC */ lwz r0, lbl_805A9B9C@sda21(r13) +/* 803B7788 003B46E8 38 60 00 00 */ li r3, 0 +/* 803B778C 003B46EC 90 0D AF D8 */ stw r0, lbl_805A9B98@sda21(r13) +/* 803B7790 003B46F0 4B FB 5B ED */ bl AISetStreamVolLeft +/* 803B7794 003B46F4 38 60 00 00 */ li r3, 0 +/* 803B7798 003B46F8 4B FB 5C 11 */ bl AISetStreamVolRight +/* 803B779C 003B46FC 38 60 00 00 */ li r3, 0 +/* 803B77A0 003B4700 4B FB 59 1D */ bl AISetStreamPlayState +/* 803B77A4 003B4704 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B77A8 003B4708 3C 60 80 3B */ lis r3, sub_803b7534@ha +/* 803B77AC 003B470C 38 C3 75 34 */ addi r6, r3, sub_803b7534@l +/* 803B77B0 003B4710 38 64 00 14 */ addi r3, r4, 0x14 +/* 803B77B4 003B4714 38 80 00 00 */ li r4, 0 +/* 803B77B8 003B4718 38 A0 00 00 */ li r5, 0 +/* 803B77BC 003B471C 4B FB A2 C9 */ bl DVDPrepareStreamAsync +/* 803B77C0 003B4720 48 00 00 5C */ b lbl_803B781C +lbl_803B77C4: +/* 803B77C4 003B4724 80 0D AF D8 */ lwz r0, lbl_805A9B98@sda21(r13) +/* 803B77C8 003B4728 28 00 00 00 */ cmplwi r0, 0 +/* 803B77CC 003B472C 41 82 00 50 */ beq lbl_803B781C +/* 803B77D0 003B4730 38 60 00 00 */ li r3, 0 +/* 803B77D4 003B4734 4B FB 5B A9 */ bl AISetStreamVolLeft +/* 803B77D8 003B4738 38 60 00 00 */ li r3, 0 +/* 803B77DC 003B473C 4B FB 5B CD */ bl AISetStreamVolRight +/* 803B77E0 003B4740 38 60 00 00 */ li r3, 0 +/* 803B77E4 003B4744 4B FB 58 D9 */ bl AISetStreamPlayState +/* 803B77E8 003B4748 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B77EC 003B474C 3C 60 80 3B */ lis r3, sub_803b7534@ha +/* 803B77F0 003B4750 38 C3 75 34 */ addi r6, r3, sub_803b7534@l +/* 803B77F4 003B4754 38 64 00 14 */ addi r3, r4, 0x14 +/* 803B77F8 003B4758 38 80 00 00 */ li r4, 0 +/* 803B77FC 003B475C 38 A0 00 00 */ li r5, 0 +/* 803B7800 003B4760 4B FB A2 85 */ bl DVDPrepareStreamAsync +/* 803B7804 003B4764 48 00 00 18 */ b lbl_803B781C +lbl_803B7808: +/* 803B7808 003B4768 3C 60 80 57 */ lis r3, lbl_80569968@ha +/* 803B780C 003B476C 3C 80 80 3B */ lis r4, sub_803b7518@ha +/* 803B7810 003B4770 38 63 99 68 */ addi r3, r3, lbl_80569968@l +/* 803B7814 003B4774 38 84 75 18 */ addi r4, r4, sub_803b7518@l +/* 803B7818 003B4778 4B FB C6 61 */ bl sub_80373e78 +lbl_803B781C: +/* 803B781C 003B477C 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7820 003B4780 38 21 00 08 */ addi r1, r1, 8 +/* 803B7824 003B4784 7C 08 03 A6 */ mtlr r0 +/* 803B7828 003B4788 4E 80 00 20 */ blr + +.global sub_803b782c +sub_803b782c: +/* 803B782C 003B478C 7C 08 02 A6 */ mflr r0 +/* 803B7830 003B4790 90 01 00 04 */ stw r0, 4(r1) +/* 803B7834 003B4794 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B7838 003B4798 80 0D AF F4 */ lwz r0, lbl_805A9BB4@sda21(r13) +/* 803B783C 003B479C 7C 63 02 14 */ add r3, r3, r0 +/* 803B7840 003B47A0 4B FB 58 71 */ bl SetTRKConnected +/* 803B7844 003B47A4 80 0D AF D8 */ lwz r0, lbl_805A9B98@sda21(r13) +/* 803B7848 003B47A8 28 00 00 00 */ cmplwi r0, 0 +/* 803B784C 003B47AC 41 82 00 18 */ beq lbl_803B7864 +/* 803B7850 003B47B0 3C 60 80 57 */ lis r3, lbl_80569998@ha +/* 803B7854 003B47B4 3C 80 80 3B */ lis r4, sub_803b7630@ha +/* 803B7858 003B47B8 38 63 99 98 */ addi r3, r3, lbl_80569998@l +/* 803B785C 003B47BC 38 84 76 30 */ addi r4, r4, sub_803b7630@l +/* 803B7860 003B47C0 4B FB C6 D5 */ bl sub_80373f34 +lbl_803B7864: +/* 803B7864 003B47C4 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7868 003B47C8 38 21 00 08 */ addi r1, r1, 8 +/* 803B786C 003B47CC 7C 08 03 A6 */ mtlr r0 +/* 803B7870 003B47D0 4E 80 00 20 */ blr + +.global sub_803b7874 +sub_803b7874: +/* 803B7874 003B47D4 7C 08 02 A6 */ mflr r0 +/* 803B7878 003B47D8 38 60 00 00 */ li r3, 0 +/* 803B787C 003B47DC 90 01 00 04 */ stw r0, 4(r1) +/* 803B7880 003B47E0 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B7884 003B47E4 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B7888 003B47E8 4B FB 58 35 */ bl AISetStreamPlayState +/* 803B788C 003B47EC 83 ED AF DC */ lwz r31, lbl_805A9B9C@sda21(r13) +/* 803B7890 003B47F0 48 00 00 10 */ b lbl_803B78A0 +lbl_803B7894: +/* 803B7894 003B47F4 38 7F 00 14 */ addi r3, r31, 0x14 +/* 803B7898 003B47F8 4B FB 9E B5 */ bl DVDClose +/* 803B789C 003B47FC 83 FF 00 04 */ lwz r31, 4(r31) +lbl_803B78A0: +/* 803B78A0 003B4800 28 1F 00 00 */ cmplwi r31, 0 +/* 803B78A4 003B4804 40 82 FF F0 */ bne lbl_803B7894 +/* 803B78A8 003B4808 81 8D B0 04 */ lwz r12, lbl_805A9BC4@sda21(r13) +/* 803B78AC 003B480C 3B E0 00 00 */ li r31, 0 +/* 803B78B0 003B4810 93 ED AF DC */ stw r31, lbl_805A9B9C@sda21(r13) +/* 803B78B4 003B4814 28 0C 00 00 */ cmplwi r12, 0 +/* 803B78B8 003B4818 93 ED AF E0 */ stw r31, lbl_805A9BA0@sda21(r13) +/* 803B78BC 003B481C 93 ED AF D8 */ stw r31, lbl_805A9B98@sda21(r13) +/* 803B78C0 003B4820 93 ED AF E4 */ stw r31, lbl_805A9BA4@sda21(r13) +/* 803B78C4 003B4824 41 82 00 10 */ beq lbl_803B78D4 +/* 803B78C8 003B4828 7D 88 03 A6 */ mtlr r12 +/* 803B78CC 003B482C 4E 80 00 21 */ blrl +/* 803B78D0 003B4830 93 ED B0 04 */ stw r31, lbl_805A9BC4@sda21(r13) +lbl_803B78D4: +/* 803B78D4 003B4834 38 00 00 00 */ li r0, 0 +/* 803B78D8 003B4838 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B78DC 003B483C 90 0D AF FC */ stw r0, lbl_805A9BBC@sda21(r13) +/* 803B78E0 003B4840 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B78E4 003B4844 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B78E8 003B4848 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B78EC 003B484C 7C 08 03 A6 */ mtlr r0 +/* 803B78F0 003B4850 4E 80 00 20 */ blr + +.global sub_803b78f4 +sub_803b78f4: +/* 803B78F4 003B4854 7C 08 02 A6 */ mflr r0 +/* 803B78F8 003B4858 90 01 00 04 */ stw r0, 4(r1) +/* 803B78FC 003B485C 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B7900 003B4860 80 6D AF D8 */ lwz r3, lbl_805A9B98@sda21(r13) +/* 803B7904 003B4864 28 03 00 00 */ cmplwi r3, 0 +/* 803B7908 003B4868 41 82 00 24 */ beq lbl_803B792C +/* 803B790C 003B486C 81 83 00 10 */ lwz r12, 0x10(r3) +/* 803B7910 003B4870 28 0C 00 00 */ cmplwi r12, 0 +/* 803B7914 003B4874 41 82 00 18 */ beq lbl_803B792C +/* 803B7918 003B4878 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803B791C 003B487C 54 03 07 BD */ rlwinm. r3, r0, 0, 0x1e, 0x1e +/* 803B7920 003B4880 41 82 00 0C */ beq lbl_803B792C +/* 803B7924 003B4884 7D 88 03 A6 */ mtlr r12 +/* 803B7928 003B4888 4E 80 00 21 */ blrl +lbl_803B792C: +/* 803B792C 003B488C 38 00 00 00 */ li r0, 0 +/* 803B7930 003B4890 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7934 003B4894 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7938 003B4898 38 21 00 08 */ addi r1, r1, 8 +/* 803B793C 003B489C 7C 08 03 A6 */ mtlr r0 +/* 803B7940 003B48A0 4E 80 00 20 */ blr + +.global sub_803b7944 +sub_803b7944: +/* 803B7944 003B48A4 7C 08 02 A6 */ mflr r0 +/* 803B7948 003B48A8 38 60 00 00 */ li r3, 0 +/* 803B794C 003B48AC 90 01 00 04 */ stw r0, 4(r1) +/* 803B7950 003B48B0 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B7954 003B48B4 4B FB 57 69 */ bl AISetStreamPlayState +/* 803B7958 003B48B8 4B FC 9D 09 */ bl OSDisableInterrupts +/* 803B795C 003B48BC 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B7960 003B48C0 28 04 00 00 */ cmplwi r4, 0 +/* 803B7964 003B48C4 41 82 00 14 */ beq lbl_803B7978 +/* 803B7968 003B48C8 80 04 00 04 */ lwz r0, 4(r4) +/* 803B796C 003B48CC 28 00 00 00 */ cmplwi r0, 0 +/* 803B7970 003B48D0 41 82 00 08 */ beq lbl_803B7978 +/* 803B7974 003B48D4 90 0D AF D8 */ stw r0, lbl_805A9B98@sda21(r13) +lbl_803B7978: +/* 803B7978 003B48D8 4B FC 9D 11 */ bl OSRestoreInterrupts +/* 803B797C 003B48DC 38 00 00 00 */ li r0, 0 +/* 803B7980 003B48E0 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7984 003B48E4 80 6D AF E8 */ lwz r3, lbl_805A9BA8@sda21(r13) +/* 803B7988 003B48E8 48 00 02 19 */ bl DTKSetState +/* 803B798C 003B48EC 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7990 003B48F0 38 21 00 08 */ addi r1, r1, 8 +/* 803B7994 003B48F4 7C 08 03 A6 */ mtlr r0 +/* 803B7998 003B48F8 4E 80 00 20 */ blr + +.global DTKInit +DTKInit: +/* 803B799C 003B48FC 7C 08 02 A6 */ mflr r0 +/* 803B79A0 003B4900 3C 60 00 01 */ lis r3, 0x0000BB80@ha +/* 803B79A4 003B4904 90 01 00 04 */ stw r0, 4(r1) +/* 803B79A8 003B4908 38 83 BB 80 */ addi r4, r3, 0x0000BB80@l +/* 803B79AC 003B490C 38 A0 00 00 */ li r5, 0 +/* 803B79B0 003B4910 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B79B4 003B4914 38 00 00 FF */ li r0, 0xff +/* 803B79B8 003B4918 38 60 00 00 */ li r3, 0 +/* 803B79BC 003B491C 90 AD AF E4 */ stw r5, lbl_805A9BA4@sda21(r13) +/* 803B79C0 003B4920 90 AD AF EC */ stw r5, lbl_805A9BAC@sda21(r13) +/* 803B79C4 003B4924 90 AD AF F0 */ stw r5, lbl_805A9BB0@sda21(r13) +/* 803B79C8 003B4928 90 8D AF F4 */ stw r4, lbl_805A9BB4@sda21(r13) +/* 803B79CC 003B492C 98 0D AF F8 */ stb r0, lbl_805A9BB8@sda21(r13) +/* 803B79D0 003B4930 90 AD AF D8 */ stw r5, lbl_805A9B98@sda21(r13) +/* 803B79D4 003B4934 90 AD AF DC */ stw r5, lbl_805A9B9C@sda21(r13) +/* 803B79D8 003B4938 90 AD AF E0 */ stw r5, lbl_805A9BA0@sda21(r13) +/* 803B79DC 003B493C 98 0D AF F9 */ stb r0, lbl_805A9BB9@sda21(r13) +/* 803B79E0 003B4940 4B FB 59 9D */ bl AISetStreamVolLeft +/* 803B79E4 003B4944 38 60 00 00 */ li r3, 0 +/* 803B79E8 003B4948 4B FB 59 C1 */ bl AISetStreamVolRight +/* 803B79EC 003B494C 3C 60 80 3B */ lis r3, sub_803b782c@ha +/* 803B79F0 003B4950 38 63 78 2C */ addi r3, r3, sub_803b782c@l +/* 803B79F4 003B4954 4B FB 56 61 */ bl AIRegisterDMACallback +/* 803B79F8 003B4958 4B FB 56 A1 */ bl sub_8036d098 +/* 803B79FC 003B495C 38 60 00 00 */ li r3, 0 +/* 803B7A00 003B4960 4B FB 56 BD */ bl AISetStreamPlayState +/* 803B7A04 003B4964 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7A08 003B4968 38 21 00 08 */ addi r1, r1, 8 +/* 803B7A0C 003B496C 7C 08 03 A6 */ mtlr r0 +/* 803B7A10 003B4970 4E 80 00 20 */ blr + +.global sub_803b7a14 +sub_803b7a14: +/* 803B7A14 003B4974 7C 08 02 A6 */ mflr r0 +/* 803B7A18 003B4978 90 01 00 04 */ stw r0, 4(r1) +/* 803B7A1C 003B497C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B7A20 003B4980 BF 61 00 1C */ stmw r27, 0x1c(r1) +/* 803B7A24 003B4984 3B 84 00 00 */ addi r28, r4, 0 +/* 803B7A28 003B4988 3B 63 00 00 */ addi r27, r3, 0 +/* 803B7A2C 003B498C 3B A5 00 00 */ addi r29, r5, 0 +/* 803B7A30 003B4990 3B C6 00 00 */ addi r30, r6, 0 +/* 803B7A34 003B4994 38 9C 00 14 */ addi r4, r28, 0x14 +/* 803B7A38 003B4998 3B E0 00 00 */ li r31, 0 +/* 803B7A3C 003B499C 4B FB 9C 49 */ bl DVDOpen +/* 803B7A40 003B49A0 2C 03 00 00 */ cmpwi r3, 0 +/* 803B7A44 003B49A4 40 82 00 0C */ bne lbl_803B7A50 +/* 803B7A48 003B49A8 38 60 00 01 */ li r3, 1 +/* 803B7A4C 003B49AC 48 00 00 D0 */ b lbl_803B7B1C +lbl_803B7A50: +/* 803B7A50 003B49B0 4B FC 9C 11 */ bl OSDisableInterrupts +/* 803B7A54 003B49B4 93 7C 00 08 */ stw r27, 8(r28) +/* 803B7A58 003B49B8 93 BC 00 0C */ stw r29, 0xc(r28) +/* 803B7A5C 003B49BC 93 DC 00 10 */ stw r30, 0x10(r28) +/* 803B7A60 003B49C0 80 0D AF DC */ lwz r0, lbl_805A9B9C@sda21(r13) +/* 803B7A64 003B49C4 28 00 00 00 */ cmplwi r0, 0 +/* 803B7A68 003B49C8 40 82 00 2C */ bne lbl_803B7A94 +/* 803B7A6C 003B49CC 93 8D AF DC */ stw r28, lbl_805A9B9C@sda21(r13) +/* 803B7A70 003B49D0 38 00 00 00 */ li r0, 0 +/* 803B7A74 003B49D4 93 8D AF E0 */ stw r28, lbl_805A9BA0@sda21(r13) +/* 803B7A78 003B49D8 90 1C 00 00 */ stw r0, 0(r28) +/* 803B7A7C 003B49DC 90 1C 00 04 */ stw r0, 4(r28) +/* 803B7A80 003B49E0 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7A84 003B49E4 28 00 00 01 */ cmplwi r0, 1 +/* 803B7A88 003B49E8 40 82 00 28 */ bne lbl_803B7AB0 +/* 803B7A8C 003B49EC 3B E0 00 01 */ li r31, 1 +/* 803B7A90 003B49F0 48 00 00 20 */ b lbl_803B7AB0 +lbl_803B7A94: +/* 803B7A94 003B49F4 80 8D AF E0 */ lwz r4, lbl_805A9BA0@sda21(r13) +/* 803B7A98 003B49F8 38 00 00 00 */ li r0, 0 +/* 803B7A9C 003B49FC 93 84 00 04 */ stw r28, 4(r4) +/* 803B7AA0 003B4A00 80 8D AF E0 */ lwz r4, lbl_805A9BA0@sda21(r13) +/* 803B7AA4 003B4A04 90 9C 00 00 */ stw r4, 0(r28) +/* 803B7AA8 003B4A08 93 8D AF E0 */ stw r28, lbl_805A9BA0@sda21(r13) +/* 803B7AAC 003B4A0C 90 1C 00 04 */ stw r0, 4(r28) +lbl_803B7AB0: +/* 803B7AB0 003B4A10 80 0D AF D8 */ lwz r0, lbl_805A9B98@sda21(r13) +/* 803B7AB4 003B4A14 28 00 00 00 */ cmplwi r0, 0 +/* 803B7AB8 003B4A18 40 82 00 08 */ bne lbl_803B7AC0 +/* 803B7ABC 003B4A1C 93 8D AF D8 */ stw r28, lbl_805A9B98@sda21(r13) +lbl_803B7AC0: +/* 803B7AC0 003B4A20 4B FC 9B C9 */ bl OSRestoreInterrupts +/* 803B7AC4 003B4A24 28 1C 00 00 */ cmplwi r28, 0 +/* 803B7AC8 003B4A28 41 82 00 24 */ beq lbl_803B7AEC +/* 803B7ACC 003B4A2C 81 9C 00 10 */ lwz r12, 0x10(r28) +/* 803B7AD0 003B4A30 28 0C 00 00 */ cmplwi r12, 0 +/* 803B7AD4 003B4A34 41 82 00 18 */ beq lbl_803B7AEC +/* 803B7AD8 003B4A38 80 1C 00 0C */ lwz r0, 0xc(r28) +/* 803B7ADC 003B4A3C 54 03 07 39 */ rlwinm. r3, r0, 0, 0x1c, 0x1c +/* 803B7AE0 003B4A40 41 82 00 0C */ beq lbl_803B7AEC +/* 803B7AE4 003B4A44 7D 88 03 A6 */ mtlr r12 +/* 803B7AE8 003B4A48 4E 80 00 21 */ blrl +lbl_803B7AEC: +/* 803B7AEC 003B4A4C 28 1F 00 00 */ cmplwi r31, 0 +/* 803B7AF0 003B4A50 41 82 00 28 */ beq lbl_803B7B18 +/* 803B7AF4 003B4A54 38 00 00 03 */ li r0, 3 +/* 803B7AF8 003B4A58 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B7AFC 003B4A5C 3C 60 80 3B */ lis r3, sub_803b7534@ha +/* 803B7B00 003B4A60 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7B04 003B4A64 38 C3 75 34 */ addi r6, r3, sub_803b7534@l +/* 803B7B08 003B4A68 38 64 00 14 */ addi r3, r4, 0x14 +/* 803B7B0C 003B4A6C 38 80 00 00 */ li r4, 0 +/* 803B7B10 003B4A70 38 A0 00 00 */ li r5, 0 +/* 803B7B14 003B4A74 4B FB 9F 71 */ bl DVDPrepareStreamAsync +lbl_803B7B18: +/* 803B7B18 003B4A78 38 60 00 00 */ li r3, 0 +lbl_803B7B1C: +/* 803B7B1C 003B4A7C BB 61 00 1C */ lmw r27, 0x1c(r1) +/* 803B7B20 003B4A80 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B7B24 003B4A84 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B7B28 003B4A88 7C 08 03 A6 */ mtlr r0 +/* 803B7B2C 003B4A8C 4E 80 00 20 */ blr + +.global DTKFlushTracks +DTKFlushTracks: +/* 803B7B30 003B4A90 7C 08 02 A6 */ mflr r0 +/* 803B7B34 003B4A94 90 01 00 04 */ stw r0, 4(r1) +/* 803B7B38 003B4A98 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B7B3C 003B4A9C 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7B40 003B4AA0 28 00 00 03 */ cmplwi r0, 3 +/* 803B7B44 003B4AA4 41 82 00 40 */ beq lbl_803B7B84 +/* 803B7B48 003B4AA8 80 8D AF E4 */ lwz r4, lbl_805A9BA4@sda21(r13) +/* 803B7B4C 003B4AAC 38 00 00 03 */ li r0, 3 +/* 803B7B50 003B4AB0 90 6D B0 04 */ stw r3, lbl_805A9BC4@sda21(r13) +/* 803B7B54 003B4AB4 28 04 00 01 */ cmplwi r4, 1 +/* 803B7B58 003B4AB8 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7B5C 003B4ABC 40 82 00 1C */ bne lbl_803B7B78 +/* 803B7B60 003B4AC0 3C 60 80 57 */ lis r3, lbl_805699C8@ha +/* 803B7B64 003B4AC4 3C 80 80 3B */ lis r4, sub_803b7874@ha +/* 803B7B68 003B4AC8 38 63 99 C8 */ addi r3, r3, lbl_805699C8@l +/* 803B7B6C 003B4ACC 38 84 78 74 */ addi r4, r4, sub_803b7874@l +/* 803B7B70 003B4AD0 4B FB C0 C9 */ bl DVDCancelStreamAsync +/* 803B7B74 003B4AD4 48 00 00 10 */ b lbl_803B7B84 +lbl_803B7B78: +/* 803B7B78 003B4AD8 38 60 00 00 */ li r3, 0 +/* 803B7B7C 003B4ADC 38 80 00 00 */ li r4, 0 +/* 803B7B80 003B4AE0 4B FF FC F5 */ bl sub_803b7874 +lbl_803B7B84: +/* 803B7B84 003B4AE4 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7B88 003B4AE8 38 21 00 08 */ addi r1, r1, 8 +/* 803B7B8C 003B4AEC 7C 08 03 A6 */ mtlr r0 +/* 803B7B90 003B4AF0 4E 80 00 20 */ blr + +.global DTKSetSampleRate +DTKSetSampleRate: +/* 803B7B94 003B4AF4 4E 80 00 20 */ blr + +.global DTKSetRepeatMode +DTKSetRepeatMode: +/* 803B7B98 003B4AF8 90 6D AF EC */ stw r3, lbl_805A9BAC@sda21(r13) +/* 803B7B9C 003B4AFC 4E 80 00 20 */ blr + +.global DTKSetState +DTKSetState: +/* 803B7BA0 003B4B00 7C 08 02 A6 */ mflr r0 +/* 803B7BA4 003B4B04 90 01 00 04 */ stw r0, 4(r1) +/* 803B7BA8 003B4B08 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B7BAC 003B4B0C 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7BB0 003B4B10 7C 00 18 40 */ cmplw r0, r3 +/* 803B7BB4 003B4B14 41 82 01 BC */ beq lbl_803B7D70 +/* 803B7BB8 003B4B18 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7BBC 003B4B1C 28 00 00 03 */ cmplwi r0, 3 +/* 803B7BC0 003B4B20 40 82 00 08 */ bne lbl_803B7BC8 +/* 803B7BC4 003B4B24 48 00 01 AC */ b lbl_803B7D70 +lbl_803B7BC8: +/* 803B7BC8 003B4B28 2C 03 00 02 */ cmpwi r3, 2 +/* 803B7BCC 003B4B2C 41 82 01 5C */ beq lbl_803B7D28 +/* 803B7BD0 003B4B30 40 80 00 14 */ bge lbl_803B7BE4 +/* 803B7BD4 003B4B34 2C 03 00 00 */ cmpwi r3, 0 +/* 803B7BD8 003B4B38 41 82 00 18 */ beq lbl_803B7BF0 +/* 803B7BDC 003B4B3C 40 80 00 58 */ bge lbl_803B7C34 +/* 803B7BE0 003B4B40 48 00 01 90 */ b lbl_803B7D70 +lbl_803B7BE4: +/* 803B7BE4 003B4B44 2C 03 00 04 */ cmpwi r3, 4 +/* 803B7BE8 003B4B48 41 82 00 FC */ beq lbl_803B7CE4 +/* 803B7BEC 003B4B4C 48 00 01 84 */ b lbl_803B7D70 +lbl_803B7BF0: +/* 803B7BF0 003B4B50 80 0D AF D8 */ lwz r0, lbl_805A9B98@sda21(r13) +/* 803B7BF4 003B4B54 28 00 00 00 */ cmplwi r0, 0 +/* 803B7BF8 003B4B58 41 82 01 78 */ beq lbl_803B7D70 +/* 803B7BFC 003B4B5C 38 00 00 03 */ li r0, 3 +/* 803B7C00 003B4B60 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7C04 003B4B64 38 60 00 00 */ li r3, 0 +/* 803B7C08 003B4B68 4B FB 57 75 */ bl AISetStreamVolLeft +/* 803B7C0C 003B4B6C 38 60 00 00 */ li r3, 0 +/* 803B7C10 003B4B70 4B FB 57 99 */ bl AISetStreamVolRight +/* 803B7C14 003B4B74 38 60 00 00 */ li r3, 0 +/* 803B7C18 003B4B78 4B FB 54 A5 */ bl AISetStreamPlayState +/* 803B7C1C 003B4B7C 3C 60 80 57 */ lis r3, lbl_805699F8@ha +/* 803B7C20 003B4B80 3C 80 80 3B */ lis r4, sub_803b78f4@ha +/* 803B7C24 003B4B84 38 63 99 F8 */ addi r3, r3, lbl_805699F8@l +/* 803B7C28 003B4B88 38 84 78 F4 */ addi r4, r4, sub_803b78f4@l +/* 803B7C2C 003B4B8C 4B FB C0 0D */ bl DVDCancelStreamAsync +/* 803B7C30 003B4B90 48 00 01 40 */ b lbl_803B7D70 +lbl_803B7C34: +/* 803B7C34 003B4B94 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7C38 003B4B98 28 00 00 02 */ cmplwi r0, 2 +/* 803B7C3C 003B4B9C 40 82 00 64 */ bne lbl_803B7CA0 +/* 803B7C40 003B4BA0 88 6D AF F8 */ lbz r3, lbl_805A9BB8@sda21(r13) +/* 803B7C44 003B4BA4 4B FB 57 39 */ bl AISetStreamVolLeft +/* 803B7C48 003B4BA8 88 6D AF F9 */ lbz r3, lbl_805A9BB9@sda21(r13) +/* 803B7C4C 003B4BAC 4B FB 57 5D */ bl AISetStreamVolRight +/* 803B7C50 003B4BB0 4B FB 54 49 */ bl sub_8036d098 +/* 803B7C54 003B4BB4 80 6D AF F4 */ lwz r3, lbl_805A9BB4@sda21(r13) +/* 803B7C58 003B4BB8 4B FB 54 59 */ bl SetTRKConnected +/* 803B7C5C 003B4BBC 38 60 00 01 */ li r3, 1 +/* 803B7C60 003B4BC0 4B FB 54 5D */ bl AISetStreamPlayState +/* 803B7C64 003B4BC4 80 6D AF D8 */ lwz r3, lbl_805A9B98@sda21(r13) +/* 803B7C68 003B4BC8 38 00 00 01 */ li r0, 1 +/* 803B7C6C 003B4BCC 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7C70 003B4BD0 28 03 00 00 */ cmplwi r3, 0 +/* 803B7C74 003B4BD4 41 82 00 64 */ beq lbl_803B7CD8 +/* 803B7C78 003B4BD8 41 82 00 60 */ beq lbl_803B7CD8 +/* 803B7C7C 003B4BDC 81 83 00 10 */ lwz r12, 0x10(r3) +/* 803B7C80 003B4BE0 28 0C 00 00 */ cmplwi r12, 0 +/* 803B7C84 003B4BE4 41 82 00 54 */ beq lbl_803B7CD8 +/* 803B7C88 003B4BE8 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803B7C8C 003B4BEC 54 03 07 FF */ clrlwi. r3, r0, 0x1f +/* 803B7C90 003B4BF0 41 82 00 48 */ beq lbl_803B7CD8 +/* 803B7C94 003B4BF4 7D 88 03 A6 */ mtlr r12 +/* 803B7C98 003B4BF8 4E 80 00 21 */ blrl +/* 803B7C9C 003B4BFC 48 00 00 3C */ b lbl_803B7CD8 +lbl_803B7CA0: +/* 803B7CA0 003B4C00 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B7CA4 003B4C04 28 04 00 00 */ cmplwi r4, 0 +/* 803B7CA8 003B4C08 41 82 00 28 */ beq lbl_803B7CD0 +/* 803B7CAC 003B4C0C 38 00 00 03 */ li r0, 3 +/* 803B7CB0 003B4C10 3C 60 80 3B */ lis r3, sub_803b7534@ha +/* 803B7CB4 003B4C14 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7CB8 003B4C18 38 C3 75 34 */ addi r6, r3, sub_803b7534@l +/* 803B7CBC 003B4C1C 38 64 00 14 */ addi r3, r4, 0x14 +/* 803B7CC0 003B4C20 38 80 00 00 */ li r4, 0 +/* 803B7CC4 003B4C24 38 A0 00 00 */ li r5, 0 +/* 803B7CC8 003B4C28 4B FB 9D BD */ bl DVDPrepareStreamAsync +/* 803B7CCC 003B4C2C 48 00 00 0C */ b lbl_803B7CD8 +lbl_803B7CD0: +/* 803B7CD0 003B4C30 38 00 00 01 */ li r0, 1 +/* 803B7CD4 003B4C34 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +lbl_803B7CD8: +/* 803B7CD8 003B4C38 38 00 00 00 */ li r0, 0 +/* 803B7CDC 003B4C3C 90 0D B0 00 */ stw r0, lbl_805A9BC0@sda21(r13) +/* 803B7CE0 003B4C40 48 00 00 90 */ b lbl_803B7D70 +lbl_803B7CE4: +/* 803B7CE4 003B4C44 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7CE8 003B4C48 28 00 00 00 */ cmplwi r0, 0 +/* 803B7CEC 003B4C4C 40 82 00 84 */ bne lbl_803B7D70 +/* 803B7CF0 003B4C50 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B7CF4 003B4C54 28 04 00 00 */ cmplwi r4, 0 +/* 803B7CF8 003B4C58 41 82 00 24 */ beq lbl_803B7D1C +/* 803B7CFC 003B4C5C 38 00 00 03 */ li r0, 3 +/* 803B7D00 003B4C60 3C 60 80 3B */ lis r3, sub_803b75b8@ha +/* 803B7D04 003B4C64 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7D08 003B4C68 38 C3 75 B8 */ addi r6, r3, sub_803b75b8@l +/* 803B7D0C 003B4C6C 38 64 00 14 */ addi r3, r4, 0x14 +/* 803B7D10 003B4C70 38 80 00 00 */ li r4, 0 +/* 803B7D14 003B4C74 38 A0 00 00 */ li r5, 0 +/* 803B7D18 003B4C78 4B FB 9D 6D */ bl DVDPrepareStreamAsync +lbl_803B7D1C: +/* 803B7D1C 003B4C7C 38 00 00 00 */ li r0, 0 +/* 803B7D20 003B4C80 90 0D B0 00 */ stw r0, lbl_805A9BC0@sda21(r13) +/* 803B7D24 003B4C84 48 00 00 4C */ b lbl_803B7D70 +lbl_803B7D28: +/* 803B7D28 003B4C88 38 60 00 00 */ li r3, 0 +/* 803B7D2C 003B4C8C 4B FB 53 91 */ bl AISetStreamPlayState +/* 803B7D30 003B4C90 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7D34 003B4C94 28 00 00 01 */ cmplwi r0, 1 +/* 803B7D38 003B4C98 40 82 00 0C */ bne lbl_803B7D44 +/* 803B7D3C 003B4C9C 38 00 00 02 */ li r0, 2 +/* 803B7D40 003B4CA0 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +lbl_803B7D44: +/* 803B7D44 003B4CA4 80 6D AF D8 */ lwz r3, lbl_805A9B98@sda21(r13) +/* 803B7D48 003B4CA8 28 03 00 00 */ cmplwi r3, 0 +/* 803B7D4C 003B4CAC 41 82 00 24 */ beq lbl_803B7D70 +/* 803B7D50 003B4CB0 81 83 00 10 */ lwz r12, 0x10(r3) +/* 803B7D54 003B4CB4 28 0C 00 00 */ cmplwi r12, 0 +/* 803B7D58 003B4CB8 41 82 00 18 */ beq lbl_803B7D70 +/* 803B7D5C 003B4CBC 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803B7D60 003B4CC0 54 03 07 7B */ rlwinm. r3, r0, 0, 0x1d, 0x1d +/* 803B7D64 003B4CC4 41 82 00 0C */ beq lbl_803B7D70 +/* 803B7D68 003B4CC8 7D 88 03 A6 */ mtlr r12 +/* 803B7D6C 003B4CCC 4E 80 00 21 */ blrl +lbl_803B7D70: +/* 803B7D70 003B4CD0 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7D74 003B4CD4 38 21 00 08 */ addi r1, r1, 8 +/* 803B7D78 003B4CD8 7C 08 03 A6 */ mtlr r0 +/* 803B7D7C 003B4CDC 4E 80 00 20 */ blr + +.global DTKNextTrack +DTKNextTrack: +/* 803B7D80 003B4CE0 7C 08 02 A6 */ mflr r0 +/* 803B7D84 003B4CE4 90 01 00 04 */ stw r0, 4(r1) +/* 803B7D88 003B4CE8 94 21 FF F8 */ stwu r1, -8(r1) +/* 803B7D8C 003B4CEC 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7D90 003B4CF0 28 00 00 03 */ cmplwi r0, 3 +/* 803B7D94 003B4CF4 41 82 00 80 */ beq lbl_803B7E14 +/* 803B7D98 003B4CF8 80 0D AF D8 */ lwz r0, lbl_805A9B98@sda21(r13) +/* 803B7D9C 003B4CFC 28 00 00 00 */ cmplwi r0, 0 +/* 803B7DA0 003B4D00 41 82 00 74 */ beq lbl_803B7E14 +/* 803B7DA4 003B4D04 80 6D AF E4 */ lwz r3, lbl_805A9BA4@sda21(r13) +/* 803B7DA8 003B4D08 38 00 00 03 */ li r0, 3 +/* 803B7DAC 003B4D0C 90 6D AF E8 */ stw r3, lbl_805A9BA8@sda21(r13) +/* 803B7DB0 003B4D10 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +/* 803B7DB4 003B4D14 80 0D AF E8 */ lwz r0, lbl_805A9BA8@sda21(r13) +/* 803B7DB8 003B4D18 28 00 00 01 */ cmplwi r0, 1 +/* 803B7DBC 003B4D1C 40 82 00 2C */ bne lbl_803B7DE8 +/* 803B7DC0 003B4D20 38 60 00 00 */ li r3, 0 +/* 803B7DC4 003B4D24 4B FB 55 B9 */ bl AISetStreamVolLeft +/* 803B7DC8 003B4D28 38 60 00 00 */ li r3, 0 +/* 803B7DCC 003B4D2C 4B FB 55 DD */ bl AISetStreamVolRight +/* 803B7DD0 003B4D30 3C 60 80 57 */ lis r3, lbl_80569A28@ha +/* 803B7DD4 003B4D34 3C 80 80 3B */ lis r4, sub_803b7944@ha +/* 803B7DD8 003B4D38 38 63 9A 28 */ addi r3, r3, lbl_80569A28@l +/* 803B7DDC 003B4D3C 38 84 79 44 */ addi r4, r4, sub_803b7944@l +/* 803B7DE0 003B4D40 4B FB BE 59 */ bl DVDCancelStreamAsync +/* 803B7DE4 003B4D44 48 00 00 30 */ b lbl_803B7E14 +lbl_803B7DE8: +/* 803B7DE8 003B4D48 4B FC 98 79 */ bl OSDisableInterrupts +/* 803B7DEC 003B4D4C 80 8D AF D8 */ lwz r4, lbl_805A9B98@sda21(r13) +/* 803B7DF0 003B4D50 28 04 00 00 */ cmplwi r4, 0 +/* 803B7DF4 003B4D54 41 82 00 14 */ beq lbl_803B7E08 +/* 803B7DF8 003B4D58 80 04 00 04 */ lwz r0, 4(r4) +/* 803B7DFC 003B4D5C 28 00 00 00 */ cmplwi r0, 0 +/* 803B7E00 003B4D60 41 82 00 08 */ beq lbl_803B7E08 +/* 803B7E04 003B4D64 90 0D AF D8 */ stw r0, lbl_805A9B98@sda21(r13) +lbl_803B7E08: +/* 803B7E08 003B4D68 4B FC 98 81 */ bl OSRestoreInterrupts +/* 803B7E0C 003B4D6C 80 0D AF E8 */ lwz r0, lbl_805A9BA8@sda21(r13) +/* 803B7E10 003B4D70 90 0D AF E4 */ stw r0, lbl_805A9BA4@sda21(r13) +lbl_803B7E14: +/* 803B7E14 003B4D74 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B7E18 003B4D78 38 21 00 08 */ addi r1, r1, 8 +/* 803B7E1C 003B4D7C 7C 08 03 A6 */ mtlr r0 +/* 803B7E20 003B4D80 4E 80 00 20 */ blr + +.global DTKGetState +DTKGetState: +/* 803B7E24 003B4D84 80 6D AF E4 */ lwz r3, lbl_805A9BA4@sda21(r13) +/* 803B7E28 003B4D88 4E 80 00 20 */ blr + +.global DTKSetVolume +DTKSetVolume: +/* 803B7E2C 003B4D8C 7C 08 02 A6 */ mflr r0 +/* 803B7E30 003B4D90 90 01 00 04 */ stw r0, 4(r1) +/* 803B7E34 003B4D94 94 21 FF E8 */ stwu r1, -0x18(r1) +/* 803B7E38 003B4D98 93 E1 00 14 */ stw r31, 0x14(r1) +/* 803B7E3C 003B4D9C 7C 9F 23 78 */ mr r31, r4 +/* 803B7E40 003B4DA0 98 6D AF F8 */ stb r3, lbl_805A9BB8@sda21(r13) +/* 803B7E44 003B4DA4 9B ED AF F9 */ stb r31, lbl_805A9BB9@sda21(r13) +/* 803B7E48 003B4DA8 80 0D AF E4 */ lwz r0, lbl_805A9BA4@sda21(r13) +/* 803B7E4C 003B4DAC 28 00 00 01 */ cmplwi r0, 1 +/* 803B7E50 003B4DB0 40 82 00 10 */ bne lbl_803B7E60 +/* 803B7E54 003B4DB4 4B FB 55 29 */ bl AISetStreamVolLeft +/* 803B7E58 003B4DB8 7F E3 FB 78 */ mr r3, r31 +/* 803B7E5C 003B4DBC 4B FB 55 4D */ bl AISetStreamVolRight +lbl_803B7E60: +/* 803B7E60 003B4DC0 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B7E64 003B4DC4 83 E1 00 14 */ lwz r31, 0x14(r1) +/* 803B7E68 003B4DC8 38 21 00 18 */ addi r1, r1, 0x18 +/* 803B7E6C 003B4DCC 7C 08 03 A6 */ mtlr r0 +/* 803B7E70 003B4DD0 4E 80 00 20 */ blr diff --git a/asm/Kyoto_CWD/CSWDataDolphin.s b/asm/Kyoto_CWD/CSWDataDolphin.s new file mode 100644 index 00000000..9de7417d --- /dev/null +++ b/asm/Kyoto_CWD/CSWDataDolphin.s @@ -0,0 +1,90 @@ +.include "macros.inc" + +.section .sdata2, "a" + +.global lbl_805AE290 +lbl_805AE290: + # ROM: 0x3FAB30 + .float 1.0 + .4byte 0 + +.global lbl_805AE298 +lbl_805AE298: + # ROM: 0x3FAB38 + .double 4.503599627370496E15 + +.section .text, "ax" +.global Initialize__Q210CStopwatch7CSWDataFv +Initialize__Q210CStopwatch7CSWDataFv: +/* 802D671C 002D367C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D6720 002D3680 7C 08 02 A6 */ mflr r0 +/* 802D6724 002D3684 3C 80 00 0F */ lis r4, 0x000F4240@ha +/* 802D6728 002D3688 3C A0 80 00 */ lis r5, 0x800000F8@ha +/* 802D672C 002D368C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D6730 002D3690 38 00 00 00 */ li r0, 0 +/* 802D6734 002D3694 38 C4 42 40 */ addi r6, r4, 0x000F4240@l +/* 802D6738 002D3698 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D673C 002D369C 7C 7F 1B 78 */ mr r31, r3 +/* 802D6740 002D36A0 80 A5 00 F8 */ lwz r5, 0x800000F8@l(r5) +/* 802D6744 002D36A4 54 A3 F0 BE */ srwi r3, r5, 2 +/* 802D6748 002D36A8 38 A0 00 00 */ li r5, 0 +/* 802D674C 002D36AC 90 7F 00 04 */ stw r3, 4(r31) +/* 802D6750 002D36B0 90 1F 00 00 */ stw r0, 0(r31) +/* 802D6754 002D36B4 80 7F 00 00 */ lwz r3, 0(r31) +/* 802D6758 002D36B8 80 9F 00 04 */ lwz r4, 4(r31) +/* 802D675C 002D36BC 48 0B 34 71 */ bl __div2i +/* 802D6760 002D36C0 90 9F 00 0C */ stw r4, 0xc(r31) +/* 802D6764 002D36C4 90 7F 00 08 */ stw r3, 8(r31) +/* 802D6768 002D36C8 80 7F 00 00 */ lwz r3, 0(r31) +/* 802D676C 002D36CC 80 9F 00 04 */ lwz r4, 4(r31) +/* 802D6770 002D36D0 48 0B 37 F5 */ bl __cvt_sll_flt +/* 802D6774 002D36D4 C0 02 C5 70 */ lfs f0, lbl_805AE290@sda21(r2) +/* 802D6778 002D36D8 38 60 00 01 */ li r3, 1 +/* 802D677C 002D36DC EC 00 08 24 */ fdivs f0, f0, f1 +/* 802D6780 002D36E0 D0 1F 00 10 */ stfs f0, 0x10(r31) +/* 802D6784 002D36E4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D6788 002D36E8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D678C 002D36EC 7C 08 03 A6 */ mtlr r0 +/* 802D6790 002D36F0 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D6794 002D36F4 4E 80 00 20 */ blr + +.global Wait__Q210CStopwatch7CSWDataCFf +Wait__Q210CStopwatch7CSWDataCFf: +/* 802D6798 002D36F8 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802D679C 002D36FC 7C 08 02 A6 */ mflr r0 +/* 802D67A0 002D3700 3C 60 80 00 */ lis r3, 0x800000F8@ha +/* 802D67A4 002D3704 C8 42 C5 78 */ lfd f2, lbl_805AE298@sda21(r2) +/* 802D67A8 002D3708 90 01 00 34 */ stw r0, 0x34(r1) +/* 802D67AC 002D370C 3C 00 43 30 */ lis r0, 0x4330 +/* 802D67B0 002D3710 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 802D67B4 002D3714 93 C1 00 28 */ stw r30, 0x28(r1) +/* 802D67B8 002D3718 80 63 00 F8 */ lwz r3, 0x800000F8@l(r3) +/* 802D67BC 002D371C 90 01 00 18 */ stw r0, 0x18(r1) +/* 802D67C0 002D3720 54 60 F0 BE */ srwi r0, r3, 2 +/* 802D67C4 002D3724 90 01 00 1C */ stw r0, 0x1c(r1) +/* 802D67C8 002D3728 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 802D67CC 002D372C EC 00 10 28 */ fsubs f0, f0, f2 +/* 802D67D0 002D3730 EC 21 00 32 */ fmuls f1, f1, f0 +/* 802D67D4 002D3734 48 0B 38 45 */ bl __cvt_dbl_usll +/* 802D67D8 002D3738 7C 9E 23 78 */ mr r30, r4 +/* 802D67DC 002D373C 7C 7F 1B 78 */ mr r31, r3 +/* 802D67E0 002D3740 48 0A EB C9 */ bl OSGetTime +/* 802D67E4 002D3744 7F DE 20 14 */ addc r30, r30, r4 +/* 802D67E8 002D3748 7F FF 19 14 */ adde r31, r31, r3 +lbl_802D67EC: +/* 802D67EC 002D374C 48 0A EB BD */ bl OSGetTime +/* 802D67F0 002D3750 90 81 00 14 */ stw r4, 0x14(r1) +/* 802D67F4 002D3754 90 61 00 10 */ stw r3, 0x10(r1) +/* 802D67F8 002D3758 80 61 00 10 */ lwz r3, 0x10(r1) +/* 802D67FC 002D375C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D6800 002D3760 7C 1E 00 10 */ subfc r0, r30, r0 +/* 802D6804 002D3764 90 01 00 08 */ stw r0, 8(r1) +/* 802D6808 002D3768 80 01 00 08 */ lwz r0, 8(r1) +/* 802D680C 002D376C 2C 00 00 00 */ cmpwi r0, 0 +/* 802D6810 002D3770 41 80 FF DC */ blt lbl_802D67EC +/* 802D6814 002D3774 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802D6818 002D3778 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 802D681C 002D377C 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 802D6820 002D3780 7C 08 03 A6 */ mtlr r0 +/* 802D6824 002D3784 38 21 00 30 */ addi r1, r1, 0x30 +/* 802D6828 002D3788 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/e_acos.s b/asm/Runtime/PPCEABI/H/e_acos.s new file mode 100644 index 00000000..58c325c3 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/e_acos.s @@ -0,0 +1,217 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __ieee754_acos +__ieee754_acos: +/* 803913C8 0038E328 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803913CC 0038E32C 3C 00 3F F0 */ lis r0, 0x3ff0 +/* 803913D0 0038E330 D8 21 00 08 */ stfd f1, 8(r1) +/* 803913D4 0038E334 80 81 00 08 */ lwz r4, 8(r1) +/* 803913D8 0038E338 54 83 00 7E */ clrlwi r3, r4, 1 +/* 803913DC 0038E33C 7C 03 00 00 */ cmpw r3, r0 +/* 803913E0 0038E340 41 80 00 38 */ blt lbl_80391418 +/* 803913E4 0038E344 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803913E8 0038E348 3C 63 C0 10 */ addis r3, r3, 0xc010 +/* 803913EC 0038E34C 7C 60 03 79 */ or. r0, r3, r0 +/* 803913F0 0038E350 40 82 00 1C */ bne lbl_8039140C +/* 803913F4 0038E354 2C 04 00 00 */ cmpwi r4, 0 +/* 803913F8 0038E358 40 81 00 0C */ ble lbl_80391404 +/* 803913FC 0038E35C C8 22 CF 98 */ lfd f1, lbl_805AECB8@sda21(r2) +/* 80391400 0038E360 48 00 02 D0 */ b lbl_803916D0 +lbl_80391404: +/* 80391404 0038E364 C8 22 CF A0 */ lfd f1, lbl_805AECC0@sda21(r2) +/* 80391408 0038E368 48 00 02 C8 */ b lbl_803916D0 +lbl_8039140C: +/* 8039140C 0038E36C 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 80391410 0038E370 C0 23 8B A0 */ lfs f1, lbl_805A8BA0@l(r3) +/* 80391414 0038E374 48 00 02 BC */ b lbl_803916D0 +lbl_80391418: +/* 80391418 0038E378 3C 00 3F E0 */ lis r0, 0x3fe0 +/* 8039141C 0038E37C 7C 03 00 00 */ cmpw r3, r0 +/* 80391420 0038E380 40 80 00 8C */ bge lbl_803914AC +/* 80391424 0038E384 3C 00 3C 60 */ lis r0, 0x3c60 +/* 80391428 0038E388 7C 03 00 00 */ cmpw r3, r0 +/* 8039142C 0038E38C 41 81 00 0C */ bgt lbl_80391438 +/* 80391430 0038E390 C8 22 CF A8 */ lfd f1, lbl_805AECC8@sda21(r2) +/* 80391434 0038E394 48 00 02 9C */ b lbl_803916D0 +lbl_80391438: +/* 80391438 0038E398 FD 41 00 72 */ fmul f10, f1, f1 +/* 8039143C 0038E39C C8 42 CF E0 */ lfd f2, lbl_805AED00@sda21(r2) +/* 80391440 0038E3A0 C8 02 CF D8 */ lfd f0, lbl_805AECF8@sda21(r2) +/* 80391444 0038E3A4 C8 62 CF D0 */ lfd f3, lbl_805AECF0@sda21(r2) +/* 80391448 0038E3A8 C9 02 CF C8 */ lfd f8, lbl_805AECE8@sda21(r2) +/* 8039144C 0038E3AC FC 82 02 BA */ fmadd f4, f2, f10, f0 +/* 80391450 0038E3B0 C8 42 D0 08 */ lfd f2, lbl_805AED28@sda21(r2) +/* 80391454 0038E3B4 C8 02 D0 00 */ lfd f0, lbl_805AED20@sda21(r2) +/* 80391458 0038E3B8 C8 E2 CF C0 */ lfd f7, lbl_805AECE0@sda21(r2) +/* 8039145C 0038E3BC FD 2A 19 3A */ fmadd f9, f10, f4, f3 +/* 80391460 0038E3C0 C8 82 CF F8 */ lfd f4, lbl_805AED18@sda21(r2) +/* 80391464 0038E3C4 C8 C2 CF B8 */ lfd f6, lbl_805AECD8@sda21(r2) +/* 80391468 0038E3C8 FC A2 02 BA */ fmadd f5, f2, f10, f0 +/* 8039146C 0038E3CC C8 62 CF F0 */ lfd f3, lbl_805AED10@sda21(r2) +/* 80391470 0038E3D0 C8 42 CF E8 */ lfd f2, lbl_805AED08@sda21(r2) +/* 80391474 0038E3D4 FD 0A 42 7A */ fmadd f8, f10, f9, f8 +/* 80391478 0038E3D8 C8 02 CF B0 */ lfd f0, lbl_805AECD0@sda21(r2) +/* 8039147C 0038E3DC C9 22 CF A8 */ lfd f9, lbl_805AECC8@sda21(r2) +/* 80391480 0038E3E0 FC 8A 21 7A */ fmadd f4, f10, f5, f4 +/* 80391484 0038E3E4 FC AA 3A 3A */ fmadd f5, f10, f8, f7 +/* 80391488 0038E3E8 FC 6A 19 3A */ fmadd f3, f10, f4, f3 +/* 8039148C 0038E3EC FC 8A 31 7A */ fmadd f4, f10, f5, f6 +/* 80391490 0038E3F0 FC 4A 10 FA */ fmadd f2, f10, f3, f2 +/* 80391494 0038E3F4 FC 6A 01 32 */ fmul f3, f10, f4 +/* 80391498 0038E3F8 FC 43 10 24 */ fdiv f2, f3, f2 +/* 8039149C 0038E3FC FC 01 00 BC */ fnmsub f0, f1, f2, f0 +/* 803914A0 0038E400 FC 01 00 28 */ fsub f0, f1, f0 +/* 803914A4 0038E404 FC 29 00 28 */ fsub f1, f9, f0 +/* 803914A8 0038E408 48 00 02 28 */ b lbl_803916D0 +lbl_803914AC: +/* 803914AC 0038E40C 2C 04 00 00 */ cmpwi r4, 0 +/* 803914B0 0038E410 40 80 01 08 */ bge lbl_803915B8 +/* 803914B4 0038E414 C9 42 CF E8 */ lfd f10, lbl_805AED08@sda21(r2) +/* 803914B8 0038E418 C8 02 D0 10 */ lfd f0, lbl_805AED30@sda21(r2) +/* 803914BC 0038E41C FC 2A 08 2A */ fadd f1, f10, f1 +/* 803914C0 0038E420 C8 A2 CF E0 */ lfd f5, lbl_805AED00@sda21(r2) +/* 803914C4 0038E424 C8 82 CF D8 */ lfd f4, lbl_805AECF8@sda21(r2) +/* 803914C8 0038E428 C9 02 CF D0 */ lfd f8, lbl_805AECF0@sda21(r2) +/* 803914CC 0038E42C FC 20 00 72 */ fmul f1, f0, f1 +/* 803914D0 0038E430 C9 62 CF 98 */ lfd f11, lbl_805AECB8@sda21(r2) +/* 803914D4 0038E434 C8 E2 CF C8 */ lfd f7, lbl_805AECE8@sda21(r2) +/* 803914D8 0038E438 C8 62 D0 08 */ lfd f3, lbl_805AED28@sda21(r2) +/* 803914DC 0038E43C C8 42 D0 00 */ lfd f2, lbl_805AED20@sda21(r2) +/* 803914E0 0038E440 FD 25 20 7A */ fmadd f9, f5, f1, f4 +/* 803914E4 0038E444 C8 C2 CF C0 */ lfd f6, lbl_805AECE0@sda21(r2) +/* 803914E8 0038E448 FC 83 10 7A */ fmadd f4, f3, f1, f2 +/* 803914EC 0038E44C C8 62 CF F8 */ lfd f3, lbl_805AED18@sda21(r2) +/* 803914F0 0038E450 C8 A2 CF B8 */ lfd f5, lbl_805AECD8@sda21(r2) +/* 803914F4 0038E454 FD 01 42 7A */ fmadd f8, f1, f9, f8 +/* 803914F8 0038E458 C8 42 CF F0 */ lfd f2, lbl_805AED10@sda21(r2) +/* 803914FC 0038E45C FC 61 19 3A */ fmadd f3, f1, f4, f3 +/* 80391500 0038E460 FC 81 3A 3A */ fmadd f4, f1, f8, f7 +/* 80391504 0038E464 FC 41 10 FA */ fmadd f2, f1, f3, f2 +/* 80391508 0038E468 FC 61 31 3A */ fmadd f3, f1, f4, f6 +/* 8039150C 0038E46C FC C1 50 BA */ fmadd f6, f1, f2, f10 +/* 80391510 0038E470 FC 41 28 FA */ fmadd f2, f1, f3, f5 +/* 80391514 0038E474 FC 01 58 40 */ fcmpo cr0, f1, f11 +/* 80391518 0038E478 FC A1 00 B2 */ fmul f5, f1, f2 +/* 8039151C 0038E47C 40 81 00 54 */ ble lbl_80391570 +/* 80391520 0038E480 FC 60 08 34 */ frsqrte f3, f1 +/* 80391524 0038E484 C8 82 D0 18 */ lfd f4, lbl_805AED38@sda21(r2) +/* 80391528 0038E488 FC 43 00 F2 */ fmul f2, f3, f3 +/* 8039152C 0038E48C FC 60 00 F2 */ fmul f3, f0, f3 +/* 80391530 0038E490 FC 41 20 BC */ fnmsub f2, f1, f2, f4 +/* 80391534 0038E494 FC 63 00 B2 */ fmul f3, f3, f2 +/* 80391538 0038E498 FC 43 00 F2 */ fmul f2, f3, f3 +/* 8039153C 0038E49C FC 60 00 F2 */ fmul f3, f0, f3 +/* 80391540 0038E4A0 FC 41 20 BC */ fnmsub f2, f1, f2, f4 +/* 80391544 0038E4A4 FC 63 00 B2 */ fmul f3, f3, f2 +/* 80391548 0038E4A8 FC 43 00 F2 */ fmul f2, f3, f3 +/* 8039154C 0038E4AC FC 60 00 F2 */ fmul f3, f0, f3 +/* 80391550 0038E4B0 FC 41 20 BC */ fnmsub f2, f1, f2, f4 +/* 80391554 0038E4B4 FC 63 00 B2 */ fmul f3, f3, f2 +/* 80391558 0038E4B8 FC 43 00 F2 */ fmul f2, f3, f3 +/* 8039155C 0038E4BC FC 60 00 F2 */ fmul f3, f0, f3 +/* 80391560 0038E4C0 FC 01 20 BC */ fnmsub f0, f1, f2, f4 +/* 80391564 0038E4C4 FC 03 00 32 */ fmul f0, f3, f0 +/* 80391568 0038E4C8 FD 61 00 32 */ fmul f11, f1, f0 +/* 8039156C 0038E4CC 48 00 00 2C */ b lbl_80391598 +lbl_80391570: +/* 80391570 0038E4D0 FC 0B 08 00 */ fcmpu cr0, f11, f1 +/* 80391574 0038E4D4 40 82 00 08 */ bne lbl_8039157C +/* 80391578 0038E4D8 48 00 00 20 */ b lbl_80391598 +lbl_8039157C: +/* 8039157C 0038E4DC FC 01 58 00 */ fcmpu cr0, f1, f11 +/* 80391580 0038E4E0 41 82 00 10 */ beq lbl_80391590 +/* 80391584 0038E4E4 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 80391588 0038E4E8 C1 63 8B A0 */ lfs f11, lbl_805A8BA0@l(r3) +/* 8039158C 0038E4EC 48 00 00 0C */ b lbl_80391598 +lbl_80391590: +/* 80391590 0038E4F0 3C 60 80 5B */ lis r3, lbl_805A8BA4@ha +/* 80391594 0038E4F4 C1 63 8B A4 */ lfs f11, lbl_805A8BA4@l(r3) +lbl_80391598: +/* 80391598 0038E4F8 FC 45 30 24 */ fdiv f2, f5, f6 +/* 8039159C 0038E4FC C8 22 CF B0 */ lfd f1, lbl_805AECD0@sda21(r2) +/* 803915A0 0038E500 C8 62 D0 20 */ lfd f3, lbl_805AED40@sda21(r2) +/* 803915A4 0038E504 C8 02 CF A0 */ lfd f0, lbl_805AECC0@sda21(r2) +/* 803915A8 0038E508 FC 22 0A F8 */ fmsub f1, f2, f11, f1 +/* 803915AC 0038E50C FC 2B 08 2A */ fadd f1, f11, f1 +/* 803915B0 0038E510 FC 23 00 7C */ fnmsub f1, f3, f1, f0 +/* 803915B4 0038E514 48 00 01 1C */ b lbl_803916D0 +lbl_803915B8: +/* 803915B8 0038E518 C8 02 CF E8 */ lfd f0, lbl_805AED08@sda21(r2) +/* 803915BC 0038E51C C8 82 D0 10 */ lfd f4, lbl_805AED30@sda21(r2) +/* 803915C0 0038E520 FC 00 08 28 */ fsub f0, f0, f1 +/* 803915C4 0038E524 C9 22 CF 98 */ lfd f9, lbl_805AECB8@sda21(r2) +/* 803915C8 0038E528 FC 04 00 32 */ fmul f0, f4, f0 +/* 803915CC 0038E52C FC 00 48 40 */ fcmpo cr0, f0, f9 +/* 803915D0 0038E530 40 81 00 54 */ ble lbl_80391624 +/* 803915D4 0038E534 FC 40 00 34 */ frsqrte f2, f0 +/* 803915D8 0038E538 C8 62 D0 18 */ lfd f3, lbl_805AED38@sda21(r2) +/* 803915DC 0038E53C FC 22 00 B2 */ fmul f1, f2, f2 +/* 803915E0 0038E540 FC 44 00 B2 */ fmul f2, f4, f2 +/* 803915E4 0038E544 FC 20 18 7C */ fnmsub f1, f0, f1, f3 +/* 803915E8 0038E548 FC 42 00 72 */ fmul f2, f2, f1 +/* 803915EC 0038E54C FC 22 00 B2 */ fmul f1, f2, f2 +/* 803915F0 0038E550 FC 44 00 B2 */ fmul f2, f4, f2 +/* 803915F4 0038E554 FC 20 18 7C */ fnmsub f1, f0, f1, f3 +/* 803915F8 0038E558 FC 42 00 72 */ fmul f2, f2, f1 +/* 803915FC 0038E55C FC 22 00 B2 */ fmul f1, f2, f2 +/* 80391600 0038E560 FC 44 00 B2 */ fmul f2, f4, f2 +/* 80391604 0038E564 FC 20 18 7C */ fnmsub f1, f0, f1, f3 +/* 80391608 0038E568 FC 42 00 72 */ fmul f2, f2, f1 +/* 8039160C 0038E56C FC 22 00 B2 */ fmul f1, f2, f2 +/* 80391610 0038E570 FC 44 00 B2 */ fmul f2, f4, f2 +/* 80391614 0038E574 FC 20 18 7C */ fnmsub f1, f0, f1, f3 +/* 80391618 0038E578 FC 22 00 72 */ fmul f1, f2, f1 +/* 8039161C 0038E57C FD 20 00 72 */ fmul f9, f0, f1 +/* 80391620 0038E580 48 00 00 2C */ b lbl_8039164C +lbl_80391624: +/* 80391624 0038E584 FC 09 00 00 */ fcmpu cr0, f9, f0 +/* 80391628 0038E588 40 82 00 08 */ bne lbl_80391630 +/* 8039162C 0038E58C 48 00 00 20 */ b lbl_8039164C +lbl_80391630: +/* 80391630 0038E590 FC 00 48 00 */ fcmpu cr0, f0, f9 +/* 80391634 0038E594 41 82 00 10 */ beq lbl_80391644 +/* 80391638 0038E598 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 8039163C 0038E59C C1 23 8B A0 */ lfs f9, lbl_805A8BA0@l(r3) +/* 80391640 0038E5A0 48 00 00 0C */ b lbl_8039164C +lbl_80391644: +/* 80391644 0038E5A4 3C 60 80 5B */ lis r3, lbl_805A8BA4@ha +/* 80391648 0038E5A8 C1 23 8B A4 */ lfs f9, lbl_805A8BA4@l(r3) +lbl_8039164C: +/* 8039164C 0038E5AC C8 42 CF E0 */ lfd f2, lbl_805AED00@sda21(r2) +/* 80391650 0038E5B0 38 00 00 00 */ li r0, 0 +/* 80391654 0038E5B4 C8 22 CF D8 */ lfd f1, lbl_805AECF8@sda21(r2) +/* 80391658 0038E5B8 D9 21 00 10 */ stfd f9, 0x10(r1) +/* 8039165C 0038E5BC FC 62 08 3A */ fmadd f3, f2, f0, f1 +/* 80391660 0038E5C0 C8 42 CF D0 */ lfd f2, lbl_805AECF0@sda21(r2) +/* 80391664 0038E5C4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80391668 0038E5C8 C8 22 CF C8 */ lfd f1, lbl_805AECE8@sda21(r2) +/* 8039166C 0038E5CC C9 41 00 10 */ lfd f10, 0x10(r1) +/* 80391670 0038E5D0 FC A0 10 FA */ fmadd f5, f0, f3, f2 +/* 80391674 0038E5D4 C8 82 D0 08 */ lfd f4, lbl_805AED28@sda21(r2) +/* 80391678 0038E5D8 C8 42 D0 00 */ lfd f2, lbl_805AED20@sda21(r2) +/* 8039167C 0038E5DC FC 6A 02 BC */ fnmsub f3, f10, f10, f0 +/* 80391680 0038E5E0 C8 E2 CF C0 */ lfd f7, lbl_805AECE0@sda21(r2) +/* 80391684 0038E5E4 FD 00 09 7A */ fmadd f8, f0, f5, f1 +/* 80391688 0038E5E8 C8 22 CF F8 */ lfd f1, lbl_805AED18@sda21(r2) +/* 8039168C 0038E5EC FC A4 10 3A */ fmadd f5, f4, f0, f2 +/* 80391690 0038E5F0 C8 C2 CF B8 */ lfd f6, lbl_805AECD8@sda21(r2) +/* 80391694 0038E5F4 C8 42 CF F0 */ lfd f2, lbl_805AED10@sda21(r2) +/* 80391698 0038E5F8 FC E0 3A 3A */ fmadd f7, f0, f8, f7 +/* 8039169C 0038E5FC C8 82 CF E8 */ lfd f4, lbl_805AED08@sda21(r2) +/* 803916A0 0038E600 FC A0 09 7A */ fmadd f5, f0, f5, f1 +/* 803916A4 0038E604 C8 22 D0 20 */ lfd f1, lbl_805AED40@sda21(r2) +/* 803916A8 0038E608 FC C0 31 FA */ fmadd f6, f0, f7, f6 +/* 803916AC 0038E60C FC A0 11 7A */ fmadd f5, f0, f5, f2 +/* 803916B0 0038E610 FC 49 50 2A */ fadd f2, f9, f10 +/* 803916B4 0038E614 FC C0 01 B2 */ fmul f6, f0, f6 +/* 803916B8 0038E618 FC 80 21 7A */ fmadd f4, f0, f5, f4 +/* 803916BC 0038E61C FC 03 10 24 */ fdiv f0, f3, f2 +/* 803916C0 0038E620 FC 46 20 24 */ fdiv f2, f6, f4 +/* 803916C4 0038E624 FC 02 02 7A */ fmadd f0, f2, f9, f0 +/* 803916C8 0038E628 FC 0A 00 2A */ fadd f0, f10, f0 +/* 803916CC 0038E62C FC 21 00 32 */ fmul f1, f1, f0 +lbl_803916D0: +/* 803916D0 0038E630 38 21 00 20 */ addi r1, r1, 0x20 +/* 803916D4 0038E634 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/e_asin.s b/asm/Runtime/PPCEABI/H/e_asin.s new file mode 100644 index 00000000..9002d12a --- /dev/null +++ b/asm/Runtime/PPCEABI/H/e_asin.s @@ -0,0 +1,172 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __ieee754_asin +__ieee754_asin: +/* 803916D8 0038E638 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803916DC 0038E63C 3C 00 3F F0 */ lis r0, 0x3ff0 +/* 803916E0 0038E640 D8 21 00 08 */ stfd f1, 8(r1) +/* 803916E4 0038E644 80 81 00 08 */ lwz r4, 8(r1) +/* 803916E8 0038E648 54 85 00 7E */ clrlwi r5, r4, 1 +/* 803916EC 0038E64C 7C 05 00 00 */ cmpw r5, r0 +/* 803916F0 0038E650 41 80 00 34 */ blt lbl_80391724 +/* 803916F4 0038E654 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803916F8 0038E658 3C 65 C0 10 */ addis r3, r5, 0xc010 +/* 803916FC 0038E65C 7C 60 03 79 */ or. r0, r3, r0 +/* 80391700 0038E660 40 82 00 18 */ bne lbl_80391718 +/* 80391704 0038E664 C8 02 D0 30 */ lfd f0, lbl_805AED50@sda21(r2) +/* 80391708 0038E668 C8 42 D0 28 */ lfd f2, lbl_805AED48@sda21(r2) +/* 8039170C 0038E66C FC 00 00 72 */ fmul f0, f0, f1 +/* 80391710 0038E670 FC 22 00 7A */ fmadd f1, f2, f1, f0 +/* 80391714 0038E674 48 00 02 20 */ b lbl_80391934 +lbl_80391718: +/* 80391718 0038E678 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 8039171C 0038E67C C0 23 8B A0 */ lfs f1, lbl_805A8BA0@l(r3) +/* 80391720 0038E680 48 00 02 14 */ b lbl_80391934 +lbl_80391724: +/* 80391724 0038E684 3C 00 3F E0 */ lis r0, 0x3fe0 +/* 80391728 0038E688 7C 05 00 00 */ cmpw r5, r0 +/* 8039172C 0038E68C 40 80 00 94 */ bge lbl_803917C0 +/* 80391730 0038E690 3C 00 3E 40 */ lis r0, 0x3e40 +/* 80391734 0038E694 7C 05 00 00 */ cmpw r5, r0 +/* 80391738 0038E698 40 80 00 1C */ bge lbl_80391754 +/* 8039173C 0038E69C C8 62 D0 38 */ lfd f3, lbl_805AED58@sda21(r2) +/* 80391740 0038E6A0 C8 02 D0 40 */ lfd f0, lbl_805AED60@sda21(r2) +/* 80391744 0038E6A4 FC 63 08 2A */ fadd f3, f3, f1 +/* 80391748 0038E6A8 FC 03 00 40 */ fcmpo cr0, f3, f0 +/* 8039174C 0038E6AC 40 81 00 0C */ ble lbl_80391758 +/* 80391750 0038E6B0 48 00 01 E4 */ b lbl_80391934 +lbl_80391754: +/* 80391754 0038E6B4 FC 41 00 72 */ fmul f2, f1, f1 +lbl_80391758: +/* 80391758 0038E6B8 C8 22 D0 70 */ lfd f1, lbl_805AED90@sda21(r2) +/* 8039175C 0038E6BC C8 02 D0 68 */ lfd f0, lbl_805AED88@sda21(r2) +/* 80391760 0038E6C0 C8 62 D0 60 */ lfd f3, lbl_805AED80@sda21(r2) +/* 80391764 0038E6C4 FC 81 00 BA */ fmadd f4, f1, f2, f0 +/* 80391768 0038E6C8 C8 E2 D0 58 */ lfd f7, lbl_805AED78@sda21(r2) +/* 8039176C 0038E6CC C8 22 D0 90 */ lfd f1, lbl_805AEDB0@sda21(r2) +/* 80391770 0038E6D0 C8 02 D0 88 */ lfd f0, lbl_805AEDA8@sda21(r2) +/* 80391774 0038E6D4 C8 C2 D0 50 */ lfd f6, lbl_805AED70@sda21(r2) +/* 80391778 0038E6D8 FD 02 19 3A */ fmadd f8, f2, f4, f3 +/* 8039177C 0038E6DC C8 62 D0 80 */ lfd f3, lbl_805AEDA0@sda21(r2) +/* 80391780 0038E6E0 FC 81 00 BA */ fmadd f4, f1, f2, f0 +/* 80391784 0038E6E4 C8 A2 D0 48 */ lfd f5, lbl_805AED68@sda21(r2) +/* 80391788 0038E6E8 C8 22 D0 78 */ lfd f1, lbl_805AED98@sda21(r2) +/* 8039178C 0038E6EC FC E2 3A 3A */ fmadd f7, f2, f8, f7 +/* 80391790 0038E6F0 C8 02 D0 40 */ lfd f0, lbl_805AED60@sda21(r2) +/* 80391794 0038E6F4 FC 62 19 3A */ fmadd f3, f2, f4, f3 +/* 80391798 0038E6F8 C9 01 00 08 */ lfd f8, 8(r1) +/* 8039179C 0038E6FC FC 82 31 FA */ fmadd f4, f2, f7, f6 +/* 803917A0 0038E700 FC 22 08 FA */ fmadd f1, f2, f3, f1 +/* 803917A4 0038E704 FC 62 29 3A */ fmadd f3, f2, f4, f5 +/* 803917A8 0038E708 FC 02 00 7A */ fmadd f0, f2, f1, f0 +/* 803917AC 0038E70C FC 22 00 F2 */ fmul f1, f2, f3 +/* 803917B0 0038E710 FC 01 00 24 */ fdiv f0, f1, f0 +/* 803917B4 0038E714 FC 28 40 3A */ fmadd f1, f8, f0, f8 +/* 803917B8 0038E718 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 803917BC 0038E71C 48 00 01 78 */ b lbl_80391934 +lbl_803917C0: +/* 803917C0 0038E720 FC 20 0A 10 */ fabs f1, f1 +/* 803917C4 0038E724 C9 82 D0 40 */ lfd f12, lbl_805AED60@sda21(r2) +/* 803917C8 0038E728 C8 02 D0 98 */ lfd f0, lbl_805AEDB8@sda21(r2) +/* 803917CC 0038E72C C8 C2 D0 70 */ lfd f6, lbl_805AED90@sda21(r2) +/* 803917D0 0038E730 FD 6C 08 28 */ fsub f11, f12, f1 +/* 803917D4 0038E734 C8 82 D0 68 */ lfd f4, lbl_805AED88@sda21(r2) +/* 803917D8 0038E738 C9 22 D0 60 */ lfd f9, lbl_805AED80@sda21(r2) +/* 803917DC 0038E73C C9 02 D0 58 */ lfd f8, lbl_805AED78@sda21(r2) +/* 803917E0 0038E740 FC 40 02 F2 */ fmul f2, f0, f11 +/* 803917E4 0038E744 C8 22 D0 A0 */ lfd f1, lbl_805AEDC0@sda21(r2) +/* 803917E8 0038E748 C8 A2 D0 90 */ lfd f5, lbl_805AEDB0@sda21(r2) +/* 803917EC 0038E74C C8 62 D0 88 */ lfd f3, lbl_805AEDA8@sda21(r2) +/* 803917F0 0038E750 C8 E2 D0 50 */ lfd f7, lbl_805AED70@sda21(r2) +/* 803917F4 0038E754 FD 46 20 BA */ fmadd f10, f6, f2, f4 +/* 803917F8 0038E758 C8 82 D0 80 */ lfd f4, lbl_805AEDA0@sda21(r2) +/* 803917FC 0038E75C FC A5 18 BA */ fmadd f5, f5, f2, f3 +/* 80391800 0038E760 C8 C2 D0 48 */ lfd f6, lbl_805AED68@sda21(r2) +/* 80391804 0038E764 C8 62 D0 78 */ lfd f3, lbl_805AED98@sda21(r2) +/* 80391808 0038E768 FD 22 4A BA */ fmadd f9, f2, f10, f9 +/* 8039180C 0038E76C D9 61 00 10 */ stfd f11, 0x10(r1) +/* 80391810 0038E770 FC 82 21 7A */ fmadd f4, f2, f5, f4 +/* 80391814 0038E774 FC A2 42 7A */ fmadd f5, f2, f9, f8 +/* 80391818 0038E778 FC 62 19 3A */ fmadd f3, f2, f4, f3 +/* 8039181C 0038E77C FC 82 39 7A */ fmadd f4, f2, f5, f7 +/* 80391820 0038E780 FD 02 60 FA */ fmadd f8, f2, f3, f12 +/* 80391824 0038E784 FC 62 31 3A */ fmadd f3, f2, f4, f6 +/* 80391828 0038E788 FC 02 08 40 */ fcmpo cr0, f2, f1 +/* 8039182C 0038E78C FC A2 00 F2 */ fmul f5, f2, f3 +/* 80391830 0038E790 40 81 00 54 */ ble lbl_80391884 +/* 80391834 0038E794 FC 60 10 34 */ frsqrte f3, f2 +/* 80391838 0038E798 C8 82 D0 A8 */ lfd f4, lbl_805AEDC8@sda21(r2) +/* 8039183C 0038E79C FC 23 00 F2 */ fmul f1, f3, f3 +/* 80391840 0038E7A0 FC 60 00 F2 */ fmul f3, f0, f3 +/* 80391844 0038E7A4 FC 22 20 7C */ fnmsub f1, f2, f1, f4 +/* 80391848 0038E7A8 FC 63 00 72 */ fmul f3, f3, f1 +/* 8039184C 0038E7AC FC 23 00 F2 */ fmul f1, f3, f3 +/* 80391850 0038E7B0 FC 60 00 F2 */ fmul f3, f0, f3 +/* 80391854 0038E7B4 FC 22 20 7C */ fnmsub f1, f2, f1, f4 +/* 80391858 0038E7B8 FC 63 00 72 */ fmul f3, f3, f1 +/* 8039185C 0038E7BC FC 23 00 F2 */ fmul f1, f3, f3 +/* 80391860 0038E7C0 FC 60 00 F2 */ fmul f3, f0, f3 +/* 80391864 0038E7C4 FC 22 20 7C */ fnmsub f1, f2, f1, f4 +/* 80391868 0038E7C8 FC 63 00 72 */ fmul f3, f3, f1 +/* 8039186C 0038E7CC FC 23 00 F2 */ fmul f1, f3, f3 +/* 80391870 0038E7D0 FC 60 00 F2 */ fmul f3, f0, f3 +/* 80391874 0038E7D4 FC 02 20 7C */ fnmsub f0, f2, f1, f4 +/* 80391878 0038E7D8 FC 03 00 32 */ fmul f0, f3, f0 +/* 8039187C 0038E7DC FC 22 00 32 */ fmul f1, f2, f0 +/* 80391880 0038E7E0 48 00 00 2C */ b lbl_803918AC +lbl_80391884: +/* 80391884 0038E7E4 FC 01 10 00 */ fcmpu cr0, f1, f2 +/* 80391888 0038E7E8 40 82 00 08 */ bne lbl_80391890 +/* 8039188C 0038E7EC 48 00 00 20 */ b lbl_803918AC +lbl_80391890: +/* 80391890 0038E7F0 FC 02 08 00 */ fcmpu cr0, f2, f1 +/* 80391894 0038E7F4 41 82 00 10 */ beq lbl_803918A4 +/* 80391898 0038E7F8 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 8039189C 0038E7FC C0 23 8B A0 */ lfs f1, lbl_805A8BA0@l(r3) +/* 803918A0 0038E800 48 00 00 0C */ b lbl_803918AC +lbl_803918A4: +/* 803918A4 0038E804 3C 60 80 5B */ lis r3, lbl_805A8BA4@ha +/* 803918A8 0038E808 C0 23 8B A4 */ lfs f1, lbl_805A8BA4@l(r3) +lbl_803918AC: +/* 803918AC 0038E80C 3C 60 3F EF */ lis r3, 0x3FEF3333@ha +/* 803918B0 0038E810 38 03 33 33 */ addi r0, r3, 0x3FEF3333@l +/* 803918B4 0038E814 7C 05 00 00 */ cmpw r5, r0 +/* 803918B8 0038E818 41 80 00 28 */ blt lbl_803918E0 +/* 803918BC 0038E81C FC 85 40 24 */ fdiv f4, f5, f8 +/* 803918C0 0038E820 C8 42 D0 B0 */ lfd f2, lbl_805AEDD0@sda21(r2) +/* 803918C4 0038E824 C8 02 D0 30 */ lfd f0, lbl_805AED50@sda21(r2) +/* 803918C8 0038E828 C8 62 D0 28 */ lfd f3, lbl_805AED48@sda21(r2) +/* 803918CC 0038E82C FC 21 09 3A */ fmadd f1, f1, f4, f1 +/* 803918D0 0038E830 D8 81 00 10 */ stfd f4, 0x10(r1) +/* 803918D4 0038E834 FC 02 00 78 */ fmsub f0, f2, f1, f0 +/* 803918D8 0038E838 FC 23 00 28 */ fsub f1, f3, f0 +/* 803918DC 0038E83C 48 00 00 48 */ b lbl_80391924 +lbl_803918E0: +/* 803918E0 0038E840 D8 21 00 10 */ stfd f1, 0x10(r1) +/* 803918E4 0038E844 38 00 00 00 */ li r0, 0 +/* 803918E8 0038E848 C8 E2 D0 B0 */ lfd f7, lbl_805AEDD0@sda21(r2) +/* 803918EC 0038E84C FC A5 40 24 */ fdiv f5, f5, f8 +/* 803918F0 0038E850 90 01 00 14 */ stw r0, 0x14(r1) +/* 803918F4 0038E854 C8 02 D0 30 */ lfd f0, lbl_805AED50@sda21(r2) +/* 803918F8 0038E858 C9 01 00 10 */ lfd f8, 0x10(r1) +/* 803918FC 0038E85C C8 62 D0 B8 */ lfd f3, lbl_805AEDD8@sda21(r2) +/* 80391900 0038E860 FC 88 12 3C */ fnmsub f4, f8, f8, f2 +/* 80391904 0038E864 FC 41 40 2A */ fadd f2, f1, f8 +/* 80391908 0038E868 FC C7 00 72 */ fmul f6, f7, f1 +/* 8039190C 0038E86C FC 24 10 24 */ fdiv f1, f4, f2 +/* 80391910 0038E870 FC 27 00 7C */ fnmsub f1, f7, f1, f0 +/* 80391914 0038E874 FC 07 1A 3C */ fnmsub f0, f7, f8, f3 +/* 80391918 0038E878 FC 26 09 78 */ fmsub f1, f6, f5, f1 +/* 8039191C 0038E87C FC 01 00 28 */ fsub f0, f1, f0 +/* 80391920 0038E880 FC 23 00 28 */ fsub f1, f3, f0 +lbl_80391924: +/* 80391924 0038E884 2C 04 00 00 */ cmpwi r4, 0 +/* 80391928 0038E888 40 81 00 08 */ ble lbl_80391930 +/* 8039192C 0038E88C 48 00 00 08 */ b lbl_80391934 +lbl_80391930: +/* 80391930 0038E890 FC 20 08 50 */ fneg f1, f1 +lbl_80391934: +/* 80391934 0038E894 38 21 00 20 */ addi r1, r1, 0x20 +/* 80391938 0038E898 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/e_atan2.s b/asm/Runtime/PPCEABI/H/e_atan2.s new file mode 100644 index 00000000..f3d952f5 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/e_atan2.s @@ -0,0 +1,202 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __ieee754_atan2 +__ieee754_atan2: +/* 8039193C 0038E89C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80391940 0038E8A0 7C 08 02 A6 */ mflr r0 +/* 80391944 0038E8A4 3C 60 7F F0 */ lis r3, 0x7ff0 +/* 80391948 0038E8A8 D8 41 00 10 */ stfd f2, 0x10(r1) +/* 8039194C 0038E8AC 81 01 00 14 */ lwz r8, 0x14(r1) +/* 80391950 0038E8B0 90 01 00 34 */ stw r0, 0x34(r1) +/* 80391954 0038E8B4 7C 08 00 D0 */ neg r0, r8 +/* 80391958 0038E8B8 80 81 00 10 */ lwz r4, 0x10(r1) +/* 8039195C 0038E8BC 7D 00 03 78 */ or r0, r8, r0 +/* 80391960 0038E8C0 D8 21 00 08 */ stfd f1, 8(r1) +/* 80391964 0038E8C4 54 86 00 7E */ clrlwi r6, r4, 1 +/* 80391968 0038E8C8 54 00 0F FE */ srwi r0, r0, 0x1f +/* 8039196C 0038E8CC 80 A1 00 08 */ lwz r5, 8(r1) +/* 80391970 0038E8D0 7C C0 03 78 */ or r0, r6, r0 +/* 80391974 0038E8D4 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 80391978 0038E8D8 7C 00 18 40 */ cmplw r0, r3 +/* 8039197C 0038E8DC 81 21 00 0C */ lwz r9, 0xc(r1) +/* 80391980 0038E8E0 54 A7 00 7E */ clrlwi r7, r5, 1 +/* 80391984 0038E8E4 41 81 00 1C */ bgt lbl_803919A0 +/* 80391988 0038E8E8 7C 09 00 D0 */ neg r0, r9 +/* 8039198C 0038E8EC 7D 20 03 78 */ or r0, r9, r0 +/* 80391990 0038E8F0 54 00 0F FE */ srwi r0, r0, 0x1f +/* 80391994 0038E8F4 7C E0 03 78 */ or r0, r7, r0 +/* 80391998 0038E8F8 7C 00 18 40 */ cmplw r0, r3 +/* 8039199C 0038E8FC 40 81 00 14 */ ble lbl_803919B0 +lbl_803919A0: +/* 803919A0 0038E900 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 803919A4 0038E904 C8 01 00 08 */ lfd f0, 8(r1) +/* 803919A8 0038E908 FC 21 00 2A */ fadd f1, f1, f0 +/* 803919AC 0038E90C 48 00 02 0C */ b lbl_80391BB8 +lbl_803919B0: +/* 803919B0 0038E910 3C 04 C0 10 */ addis r0, r4, 0xc010 +/* 803919B4 0038E914 7C 00 43 79 */ or. r0, r0, r8 +/* 803919B8 0038E918 40 82 00 0C */ bne lbl_803919C4 +/* 803919BC 0038E91C 48 00 28 0D */ bl atan +/* 803919C0 0038E920 48 00 01 F8 */ b lbl_80391BB8 +lbl_803919C4: +/* 803919C4 0038E924 7C E0 4B 79 */ or. r0, r7, r9 +/* 803919C8 0038E928 54 80 17 BC */ rlwinm r0, r4, 2, 0x1e, 0x1e +/* 803919CC 0038E92C 7C 1F 03 78 */ mr r31, r0 +/* 803919D0 0038E930 50 BF 0F FE */ rlwimi r31, r5, 1, 0x1f, 0x1f +/* 803919D4 0038E934 40 82 00 3C */ bne lbl_80391A10 +/* 803919D8 0038E938 2C 1F 00 02 */ cmpwi r31, 2 +/* 803919DC 0038E93C 41 82 00 24 */ beq lbl_80391A00 +/* 803919E0 0038E940 40 80 00 10 */ bge lbl_803919F0 +/* 803919E4 0038E944 2C 1F 00 00 */ cmpwi r31, 0 +/* 803919E8 0038E948 40 80 01 D0 */ bge lbl_80391BB8 +/* 803919EC 0038E94C 48 00 00 24 */ b lbl_80391A10 +lbl_803919F0: +/* 803919F0 0038E950 2C 1F 00 04 */ cmpwi r31, 4 +/* 803919F4 0038E954 40 80 00 1C */ bge lbl_80391A10 +/* 803919F8 0038E958 48 00 00 10 */ b lbl_80391A08 +/* 803919FC 0038E95C 48 00 01 BC */ b lbl_80391BB8 +lbl_80391A00: +/* 80391A00 0038E960 C8 22 D0 C0 */ lfd f1, lbl_805AEDE0@sda21(r2) +/* 80391A04 0038E964 48 00 01 B4 */ b lbl_80391BB8 +lbl_80391A08: +/* 80391A08 0038E968 C8 22 D0 C8 */ lfd f1, lbl_805AEDE8@sda21(r2) +/* 80391A0C 0038E96C 48 00 01 AC */ b lbl_80391BB8 +lbl_80391A10: +/* 80391A10 0038E970 7C C0 43 79 */ or. r0, r6, r8 +/* 80391A14 0038E974 40 82 00 1C */ bne lbl_80391A30 +/* 80391A18 0038E978 2C 05 00 00 */ cmpwi r5, 0 +/* 80391A1C 0038E97C 40 80 00 0C */ bge lbl_80391A28 +/* 80391A20 0038E980 C8 22 D0 D0 */ lfd f1, lbl_805AEDF0@sda21(r2) +/* 80391A24 0038E984 48 00 01 94 */ b lbl_80391BB8 +lbl_80391A28: +/* 80391A28 0038E988 C8 22 D0 D8 */ lfd f1, lbl_805AEDF8@sda21(r2) +/* 80391A2C 0038E98C 48 00 01 8C */ b lbl_80391BB8 +lbl_80391A30: +/* 80391A30 0038E990 3C 06 80 10 */ addis r0, r6, 0x8010 +/* 80391A34 0038E994 28 00 00 00 */ cmplwi r0, 0 +/* 80391A38 0038E998 40 82 00 A0 */ bne lbl_80391AD8 +/* 80391A3C 0038E99C 3C 07 80 10 */ addis r0, r7, 0x8010 +/* 80391A40 0038E9A0 28 00 00 00 */ cmplwi r0, 0 +/* 80391A44 0038E9A4 40 82 00 4C */ bne lbl_80391A90 +/* 80391A48 0038E9A8 2C 1F 00 02 */ cmpwi r31, 2 +/* 80391A4C 0038E9AC 41 82 00 34 */ beq lbl_80391A80 +/* 80391A50 0038E9B0 40 80 00 14 */ bge lbl_80391A64 +/* 80391A54 0038E9B4 2C 1F 00 00 */ cmpwi r31, 0 +/* 80391A58 0038E9B8 41 82 00 18 */ beq lbl_80391A70 +/* 80391A5C 0038E9BC 40 80 00 1C */ bge lbl_80391A78 +/* 80391A60 0038E9C0 48 00 00 78 */ b lbl_80391AD8 +lbl_80391A64: +/* 80391A64 0038E9C4 2C 1F 00 04 */ cmpwi r31, 4 +/* 80391A68 0038E9C8 40 80 00 70 */ bge lbl_80391AD8 +/* 80391A6C 0038E9CC 48 00 00 1C */ b lbl_80391A88 +lbl_80391A70: +/* 80391A70 0038E9D0 C8 22 D0 E0 */ lfd f1, lbl_805AEE00@sda21(r2) +/* 80391A74 0038E9D4 48 00 01 44 */ b lbl_80391BB8 +lbl_80391A78: +/* 80391A78 0038E9D8 C8 22 D0 E8 */ lfd f1, lbl_805AEE08@sda21(r2) +/* 80391A7C 0038E9DC 48 00 01 3C */ b lbl_80391BB8 +lbl_80391A80: +/* 80391A80 0038E9E0 C8 22 D0 F0 */ lfd f1, lbl_805AEE10@sda21(r2) +/* 80391A84 0038E9E4 48 00 01 34 */ b lbl_80391BB8 +lbl_80391A88: +/* 80391A88 0038E9E8 C8 22 D0 F8 */ lfd f1, lbl_805AEE18@sda21(r2) +/* 80391A8C 0038E9EC 48 00 01 2C */ b lbl_80391BB8 +lbl_80391A90: +/* 80391A90 0038E9F0 2C 1F 00 02 */ cmpwi r31, 2 +/* 80391A94 0038E9F4 41 82 00 34 */ beq lbl_80391AC8 +/* 80391A98 0038E9F8 40 80 00 14 */ bge lbl_80391AAC +/* 80391A9C 0038E9FC 2C 1F 00 00 */ cmpwi r31, 0 +/* 80391AA0 0038EA00 41 82 00 18 */ beq lbl_80391AB8 +/* 80391AA4 0038EA04 40 80 00 1C */ bge lbl_80391AC0 +/* 80391AA8 0038EA08 48 00 00 30 */ b lbl_80391AD8 +lbl_80391AAC: +/* 80391AAC 0038EA0C 2C 1F 00 04 */ cmpwi r31, 4 +/* 80391AB0 0038EA10 40 80 00 28 */ bge lbl_80391AD8 +/* 80391AB4 0038EA14 48 00 00 1C */ b lbl_80391AD0 +lbl_80391AB8: +/* 80391AB8 0038EA18 C8 22 D1 00 */ lfd f1, lbl_805AEE20@sda21(r2) +/* 80391ABC 0038EA1C 48 00 00 FC */ b lbl_80391BB8 +lbl_80391AC0: +/* 80391AC0 0038EA20 C8 22 D1 08 */ lfd f1, lbl_805AEE28@sda21(r2) +/* 80391AC4 0038EA24 48 00 00 F4 */ b lbl_80391BB8 +lbl_80391AC8: +/* 80391AC8 0038EA28 C8 22 D0 C0 */ lfd f1, lbl_805AEDE0@sda21(r2) +/* 80391ACC 0038EA2C 48 00 00 EC */ b lbl_80391BB8 +lbl_80391AD0: +/* 80391AD0 0038EA30 C8 22 D0 C8 */ lfd f1, lbl_805AEDE8@sda21(r2) +/* 80391AD4 0038EA34 48 00 00 E4 */ b lbl_80391BB8 +lbl_80391AD8: +/* 80391AD8 0038EA38 3C 07 80 10 */ addis r0, r7, 0x8010 +/* 80391ADC 0038EA3C 28 00 00 00 */ cmplwi r0, 0 +/* 80391AE0 0038EA40 40 82 00 1C */ bne lbl_80391AFC +/* 80391AE4 0038EA44 2C 05 00 00 */ cmpwi r5, 0 +/* 80391AE8 0038EA48 40 80 00 0C */ bge lbl_80391AF4 +/* 80391AEC 0038EA4C C8 22 D0 D0 */ lfd f1, lbl_805AEDF0@sda21(r2) +/* 80391AF0 0038EA50 48 00 00 C8 */ b lbl_80391BB8 +lbl_80391AF4: +/* 80391AF4 0038EA54 C8 22 D0 D8 */ lfd f1, lbl_805AEDF8@sda21(r2) +/* 80391AF8 0038EA58 48 00 00 C0 */ b lbl_80391BB8 +lbl_80391AFC: +/* 80391AFC 0038EA5C 7C 06 38 50 */ subf r0, r6, r7 +/* 80391B00 0038EA60 7C 00 A6 70 */ srawi r0, r0, 0x14 +/* 80391B04 0038EA64 2C 00 00 3C */ cmpwi r0, 0x3c +/* 80391B08 0038EA68 40 81 00 10 */ ble lbl_80391B18 +/* 80391B0C 0038EA6C C8 02 D0 D8 */ lfd f0, lbl_805AEDF8@sda21(r2) +/* 80391B10 0038EA70 D8 01 00 18 */ stfd f0, 0x18(r1) +/* 80391B14 0038EA74 48 00 00 38 */ b lbl_80391B4C +lbl_80391B18: +/* 80391B18 0038EA78 2C 04 00 00 */ cmpwi r4, 0 +/* 80391B1C 0038EA7C 40 80 00 18 */ bge lbl_80391B34 +/* 80391B20 0038EA80 2C 00 FF C4 */ cmpwi r0, -60 +/* 80391B24 0038EA84 40 80 00 10 */ bge lbl_80391B34 +/* 80391B28 0038EA88 C8 02 D1 00 */ lfd f0, lbl_805AEE20@sda21(r2) +/* 80391B2C 0038EA8C D8 01 00 18 */ stfd f0, 0x18(r1) +/* 80391B30 0038EA90 48 00 00 1C */ b lbl_80391B4C +lbl_80391B34: +/* 80391B34 0038EA94 C8 21 00 08 */ lfd f1, 8(r1) +/* 80391B38 0038EA98 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80391B3C 0038EA9C FC 01 00 24 */ fdiv f0, f1, f0 +/* 80391B40 0038EAA0 FC 20 02 10 */ fabs f1, f0 +/* 80391B44 0038EAA4 48 00 26 85 */ bl atan +/* 80391B48 0038EAA8 D8 21 00 18 */ stfd f1, 0x18(r1) +lbl_80391B4C: +/* 80391B4C 0038EAAC 2C 1F 00 01 */ cmpwi r31, 1 +/* 80391B50 0038EAB0 41 82 00 28 */ beq lbl_80391B78 +/* 80391B54 0038EAB4 40 80 00 10 */ bge lbl_80391B64 +/* 80391B58 0038EAB8 2C 1F 00 00 */ cmpwi r31, 0 +/* 80391B5C 0038EABC 40 80 00 14 */ bge lbl_80391B70 +/* 80391B60 0038EAC0 48 00 00 44 */ b lbl_80391BA4 +lbl_80391B64: +/* 80391B64 0038EAC4 2C 1F 00 03 */ cmpwi r31, 3 +/* 80391B68 0038EAC8 40 80 00 3C */ bge lbl_80391BA4 +/* 80391B6C 0038EACC 48 00 00 20 */ b lbl_80391B8C +lbl_80391B70: +/* 80391B70 0038EAD0 C8 21 00 18 */ lfd f1, 0x18(r1) +/* 80391B74 0038EAD4 48 00 00 44 */ b lbl_80391BB8 +lbl_80391B78: +/* 80391B78 0038EAD8 80 01 00 18 */ lwz r0, 0x18(r1) +/* 80391B7C 0038EADC 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80391B80 0038EAE0 90 01 00 18 */ stw r0, 0x18(r1) +/* 80391B84 0038EAE4 C8 21 00 18 */ lfd f1, 0x18(r1) +/* 80391B88 0038EAE8 48 00 00 30 */ b lbl_80391BB8 +lbl_80391B8C: +/* 80391B8C 0038EAEC C8 21 00 18 */ lfd f1, 0x18(r1) +/* 80391B90 0038EAF0 C8 02 D1 10 */ lfd f0, lbl_805AEE30@sda21(r2) +/* 80391B94 0038EAF4 C8 42 D0 C0 */ lfd f2, lbl_805AEDE0@sda21(r2) +/* 80391B98 0038EAF8 FC 01 00 28 */ fsub f0, f1, f0 +/* 80391B9C 0038EAFC FC 22 00 28 */ fsub f1, f2, f0 +/* 80391BA0 0038EB00 48 00 00 18 */ b lbl_80391BB8 +lbl_80391BA4: +/* 80391BA4 0038EB04 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80391BA8 0038EB08 C8 22 D1 10 */ lfd f1, lbl_805AEE30@sda21(r2) +/* 80391BAC 0038EB0C C8 02 D0 C0 */ lfd f0, lbl_805AEDE0@sda21(r2) +/* 80391BB0 0038EB10 FC 22 08 28 */ fsub f1, f2, f1 +/* 80391BB4 0038EB14 FC 21 00 28 */ fsub f1, f1, f0 +lbl_80391BB8: +/* 80391BB8 0038EB18 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80391BBC 0038EB1C 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 80391BC0 0038EB20 7C 08 03 A6 */ mtlr r0 +/* 80391BC4 0038EB24 38 21 00 30 */ addi r1, r1, 0x30 +/* 80391BC8 0038EB28 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/e_exp.s b/asm/Runtime/PPCEABI/H/e_exp.s new file mode 100644 index 00000000..4808f6dc --- /dev/null +++ b/asm/Runtime/PPCEABI/H/e_exp.s @@ -0,0 +1,154 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __ieee754_exp +__ieee754_exp: +/* 80391BCC 0038EB2C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80391BD0 0038EB30 3C 60 40 86 */ lis r3, 0x40862E42@ha +/* 80391BD4 0038EB34 3C 80 80 3E */ lis r4, lbl_803D8720@ha +/* 80391BD8 0038EB38 D8 21 00 08 */ stfd f1, 8(r1) +/* 80391BDC 0038EB3C 38 03 2E 42 */ addi r0, r3, 0x40862E42@l +/* 80391BE0 0038EB40 38 84 87 20 */ addi r4, r4, lbl_803D8720@l +/* 80391BE4 0038EB44 81 01 00 08 */ lwz r8, 8(r1) +/* 80391BE8 0038EB48 55 05 00 7E */ clrlwi r5, r8, 1 +/* 80391BEC 0038EB4C 55 07 0F FE */ srwi r7, r8, 0x1f +/* 80391BF0 0038EB50 7C 05 00 40 */ cmplw r5, r0 +/* 80391BF4 0038EB54 41 80 00 64 */ blt lbl_80391C58 +/* 80391BF8 0038EB58 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80391BFC 0038EB5C 7C 05 00 40 */ cmplw r5, r0 +/* 80391C00 0038EB60 41 80 00 30 */ blt lbl_80391C30 +/* 80391C04 0038EB64 80 01 00 0C */ lwz r0, 0xc(r1) +/* 80391C08 0038EB68 55 03 03 3E */ clrlwi r3, r8, 0xc +/* 80391C0C 0038EB6C 7C 60 03 79 */ or. r0, r3, r0 +/* 80391C10 0038EB70 41 82 00 0C */ beq lbl_80391C1C +/* 80391C14 0038EB74 FC 21 08 2A */ fadd f1, f1, f1 +/* 80391C18 0038EB78 48 00 01 C8 */ b lbl_80391DE0 +lbl_80391C1C: +/* 80391C1C 0038EB7C 2C 07 00 00 */ cmpwi r7, 0 +/* 80391C20 0038EB80 40 82 00 08 */ bne lbl_80391C28 +/* 80391C24 0038EB84 48 00 01 BC */ b lbl_80391DE0 +lbl_80391C28: +/* 80391C28 0038EB88 C8 22 D1 18 */ lfd f1, lbl_805AEE38@sda21(r2) +/* 80391C2C 0038EB8C 48 00 01 B4 */ b lbl_80391DE0 +lbl_80391C30: +/* 80391C30 0038EB90 C8 02 D1 20 */ lfd f0, lbl_805AEE40@sda21(r2) +/* 80391C34 0038EB94 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80391C38 0038EB98 40 81 00 0C */ ble lbl_80391C44 +/* 80391C3C 0038EB9C C8 22 D1 28 */ lfd f1, lbl_805AEE48@sda21(r2) +/* 80391C40 0038EBA0 48 00 01 A0 */ b lbl_80391DE0 +lbl_80391C44: +/* 80391C44 0038EBA4 C8 02 D1 30 */ lfd f0, lbl_805AEE50@sda21(r2) +/* 80391C48 0038EBA8 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80391C4C 0038EBAC 40 80 00 0C */ bge lbl_80391C58 +/* 80391C50 0038EBB0 C8 22 D1 18 */ lfd f1, lbl_805AEE38@sda21(r2) +/* 80391C54 0038EBB4 48 00 01 8C */ b lbl_80391DE0 +lbl_80391C58: +/* 80391C58 0038EBB8 3C 60 3F D6 */ lis r3, 0x3FD62E42@ha +/* 80391C5C 0038EBBC 38 03 2E 42 */ addi r0, r3, 0x3FD62E42@l +/* 80391C60 0038EBC0 7C 05 00 40 */ cmplw r5, r0 +/* 80391C64 0038EBC4 40 81 00 90 */ ble lbl_80391CF4 +/* 80391C68 0038EBC8 3C 60 3F F1 */ lis r3, 0x3FF0A2B2@ha +/* 80391C6C 0038EBCC 38 03 A2 B2 */ addi r0, r3, 0x3FF0A2B2@l +/* 80391C70 0038EBD0 7C 05 00 40 */ cmplw r5, r0 +/* 80391C74 0038EBD4 40 80 00 28 */ bge lbl_80391C9C +/* 80391C78 0038EBD8 54 E3 18 38 */ slwi r3, r7, 3 +/* 80391C7C 0038EBDC 20 07 00 01 */ subfic r0, r7, 1 +/* 80391C80 0038EBE0 7C 64 1A 14 */ add r3, r4, r3 +/* 80391C84 0038EBE4 C8 21 00 08 */ lfd f1, 8(r1) +/* 80391C88 0038EBE8 C8 03 00 10 */ lfd f0, 0x10(r3) +/* 80391C8C 0038EBEC 7C C7 00 50 */ subf r6, r7, r0 +/* 80391C90 0038EBF0 C9 03 00 20 */ lfd f8, 0x20(r3) +/* 80391C94 0038EBF4 FC E1 00 28 */ fsub f7, f1, f0 +/* 80391C98 0038EBF8 48 00 00 50 */ b lbl_80391CE8 +lbl_80391C9C: +/* 80391C9C 0038EBFC 54 E3 18 38 */ slwi r3, r7, 3 +/* 80391CA0 0038EC00 3C 00 43 30 */ lis r0, 0x4330 +/* 80391CA4 0038EC04 C8 22 D1 38 */ lfd f1, lbl_805AEE58@sda21(r2) +/* 80391CA8 0038EC08 C8 81 00 08 */ lfd f4, 8(r1) +/* 80391CAC 0038EC0C 7C 04 1C AE */ lfdx f0, r4, r3 +/* 80391CB0 0038EC10 90 01 00 20 */ stw r0, 0x20(r1) +/* 80391CB4 0038EC14 FC 41 01 3A */ fmadd f2, f1, f4, f0 +/* 80391CB8 0038EC18 C8 62 D1 88 */ lfd f3, lbl_805AEEA8@sda21(r2) +/* 80391CBC 0038EC1C C8 24 00 10 */ lfd f1, 0x10(r4) +/* 80391CC0 0038EC20 C8 04 00 20 */ lfd f0, 0x20(r4) +/* 80391CC4 0038EC24 FC 40 10 1E */ fctiwz f2, f2 +/* 80391CC8 0038EC28 D8 41 00 18 */ stfd f2, 0x18(r1) +/* 80391CCC 0038EC2C 80 C1 00 1C */ lwz r6, 0x1c(r1) +/* 80391CD0 0038EC30 6C C0 80 00 */ xoris r0, r6, 0x8000 +/* 80391CD4 0038EC34 90 01 00 24 */ stw r0, 0x24(r1) +/* 80391CD8 0038EC38 C8 41 00 20 */ lfd f2, 0x20(r1) +/* 80391CDC 0038EC3C FC 42 18 28 */ fsub f2, f2, f3 +/* 80391CE0 0038EC40 FC E2 20 7C */ fnmsub f7, f2, f1, f4 +/* 80391CE4 0038EC44 FD 02 00 32 */ fmul f8, f2, f0 +lbl_80391CE8: +/* 80391CE8 0038EC48 FC 07 40 28 */ fsub f0, f7, f8 +/* 80391CEC 0038EC4C D8 01 00 08 */ stfd f0, 8(r1) +/* 80391CF0 0038EC50 48 00 00 34 */ b lbl_80391D24 +lbl_80391CF4: +/* 80391CF4 0038EC54 3C 00 3E 30 */ lis r0, 0x3e30 +/* 80391CF8 0038EC58 7C 05 00 40 */ cmplw r5, r0 +/* 80391CFC 0038EC5C 40 80 00 24 */ bge lbl_80391D20 +/* 80391D00 0038EC60 C8 22 D1 40 */ lfd f1, lbl_805AEE60@sda21(r2) +/* 80391D04 0038EC64 C8 41 00 08 */ lfd f2, 8(r1) +/* 80391D08 0038EC68 C8 02 D1 48 */ lfd f0, lbl_805AEE68@sda21(r2) +/* 80391D0C 0038EC6C FC 21 10 2A */ fadd f1, f1, f2 +/* 80391D10 0038EC70 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80391D14 0038EC74 40 81 00 10 */ ble lbl_80391D24 +/* 80391D18 0038EC78 FC 20 10 2A */ fadd f1, f0, f2 +/* 80391D1C 0038EC7C 48 00 00 C4 */ b lbl_80391DE0 +lbl_80391D20: +/* 80391D20 0038EC80 38 C0 00 00 */ li r6, 0 +lbl_80391D24: +/* 80391D24 0038EC84 C8 A1 00 08 */ lfd f5, 8(r1) +/* 80391D28 0038EC88 2C 06 00 00 */ cmpwi r6, 0 +/* 80391D2C 0038EC8C C8 82 D1 70 */ lfd f4, lbl_805AEE90@sda21(r2) +/* 80391D30 0038EC90 FC C5 01 72 */ fmul f6, f5, f5 +/* 80391D34 0038EC94 C8 62 D1 68 */ lfd f3, lbl_805AEE88@sda21(r2) +/* 80391D38 0038EC98 C8 42 D1 60 */ lfd f2, lbl_805AEE80@sda21(r2) +/* 80391D3C 0038EC9C C8 22 D1 58 */ lfd f1, lbl_805AEE78@sda21(r2) +/* 80391D40 0038ECA0 C8 02 D1 50 */ lfd f0, lbl_805AEE70@sda21(r2) +/* 80391D44 0038ECA4 FC 64 19 BA */ fmadd f3, f4, f6, f3 +/* 80391D48 0038ECA8 FC 46 10 FA */ fmadd f2, f6, f3, f2 +/* 80391D4C 0038ECAC FC 26 08 BA */ fmadd f1, f6, f2, f1 +/* 80391D50 0038ECB0 FC 06 00 7A */ fmadd f0, f6, f1, f0 +/* 80391D54 0038ECB4 FC 66 28 3C */ fnmsub f3, f6, f0, f5 +/* 80391D58 0038ECB8 40 82 00 24 */ bne lbl_80391D7C +/* 80391D5C 0038ECBC C8 02 D1 78 */ lfd f0, lbl_805AEE98@sda21(r2) +/* 80391D60 0038ECC0 FC 25 00 F2 */ fmul f1, f5, f3 +/* 80391D64 0038ECC4 C8 42 D1 48 */ lfd f2, lbl_805AEE68@sda21(r2) +/* 80391D68 0038ECC8 FC 03 00 28 */ fsub f0, f3, f0 +/* 80391D6C 0038ECCC FC 01 00 24 */ fdiv f0, f1, f0 +/* 80391D70 0038ECD0 FC 00 28 28 */ fsub f0, f0, f5 +/* 80391D74 0038ECD4 FC 22 00 28 */ fsub f1, f2, f0 +/* 80391D78 0038ECD8 48 00 00 68 */ b lbl_80391DE0 +lbl_80391D7C: +/* 80391D7C 0038ECDC C8 02 D1 78 */ lfd f0, lbl_805AEE98@sda21(r2) +/* 80391D80 0038ECE0 FC 25 00 F2 */ fmul f1, f5, f3 +/* 80391D84 0038ECE4 C8 42 D1 48 */ lfd f2, lbl_805AEE68@sda21(r2) +/* 80391D88 0038ECE8 2C 06 FC 03 */ cmpwi r6, -1021 +/* 80391D8C 0038ECEC FC 00 18 28 */ fsub f0, f0, f3 +/* 80391D90 0038ECF0 FC 01 00 24 */ fdiv f0, f1, f0 +/* 80391D94 0038ECF4 FC 08 00 28 */ fsub f0, f8, f0 +/* 80391D98 0038ECF8 FC 00 38 28 */ fsub f0, f0, f7 +/* 80391D9C 0038ECFC FC 02 00 28 */ fsub f0, f2, f0 +/* 80391DA0 0038ED00 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 80391DA4 0038ED04 41 80 00 1C */ blt lbl_80391DC0 +/* 80391DA8 0038ED08 80 61 00 10 */ lwz r3, 0x10(r1) +/* 80391DAC 0038ED0C 54 C0 A0 16 */ slwi r0, r6, 0x14 +/* 80391DB0 0038ED10 7C 03 02 14 */ add r0, r3, r0 +/* 80391DB4 0038ED14 90 01 00 10 */ stw r0, 0x10(r1) +/* 80391DB8 0038ED18 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80391DBC 0038ED1C 48 00 00 24 */ b lbl_80391DE0 +lbl_80391DC0: +/* 80391DC0 0038ED20 38 06 03 E8 */ addi r0, r6, 0x3e8 +/* 80391DC4 0038ED24 80 61 00 10 */ lwz r3, 0x10(r1) +/* 80391DC8 0038ED28 54 00 A0 16 */ slwi r0, r0, 0x14 +/* 80391DCC 0038ED2C C8 22 D1 80 */ lfd f1, lbl_805AEEA0@sda21(r2) +/* 80391DD0 0038ED30 7C 03 02 14 */ add r0, r3, r0 +/* 80391DD4 0038ED34 90 01 00 10 */ stw r0, 0x10(r1) +/* 80391DD8 0038ED38 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80391DDC 0038ED3C FC 21 00 32 */ fmul f1, f1, f0 +lbl_80391DE0: +/* 80391DE0 0038ED40 38 21 00 30 */ addi r1, r1, 0x30 +/* 80391DE4 0038ED44 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/e_fmod.s b/asm/Runtime/PPCEABI/H/e_fmod.s new file mode 100644 index 00000000..94416b44 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/e_fmod.s @@ -0,0 +1,255 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __ieee754_fmod +__ieee754_fmod: +/* 80391DE8 0038ED48 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80391DEC 0038ED4C D8 41 00 10 */ stfd f2, 0x10(r1) +/* 80391DF0 0038ED50 D8 21 00 08 */ stfd f1, 8(r1) +/* 80391DF4 0038ED54 81 41 00 10 */ lwz r10, 0x10(r1) +/* 80391DF8 0038ED58 80 C1 00 08 */ lwz r6, 8(r1) +/* 80391DFC 0038ED5C 80 A1 00 14 */ lwz r5, 0x14(r1) +/* 80391E00 0038ED60 55 48 00 7E */ clrlwi r8, r10, 1 +/* 80391E04 0038ED64 54 C0 00 00 */ rlwinm r0, r6, 0, 0, 0 +/* 80391E08 0038ED68 80 81 00 0C */ lwz r4, 0xc(r1) +/* 80391E0C 0038ED6C 7D 03 2B 79 */ or. r3, r8, r5 +/* 80391E10 0038ED70 7C C7 02 78 */ xor r7, r6, r0 +/* 80391E14 0038ED74 41 82 00 28 */ beq lbl_80391E3C +/* 80391E18 0038ED78 3C C0 7F F0 */ lis r6, 0x7ff0 +/* 80391E1C 0038ED7C 7C 07 30 00 */ cmpw r7, r6 +/* 80391E20 0038ED80 40 80 00 1C */ bge lbl_80391E3C +/* 80391E24 0038ED84 7C 65 00 D0 */ neg r3, r5 +/* 80391E28 0038ED88 7C A3 1B 78 */ or r3, r5, r3 +/* 80391E2C 0038ED8C 54 63 0F FE */ srwi r3, r3, 0x1f +/* 80391E30 0038ED90 7D 03 1B 78 */ or r3, r8, r3 +/* 80391E34 0038ED94 7C 03 30 40 */ cmplw r3, r6 +/* 80391E38 0038ED98 40 81 00 18 */ ble lbl_80391E50 +lbl_80391E3C: +/* 80391E3C 0038ED9C C8 21 00 08 */ lfd f1, 8(r1) +/* 80391E40 0038EDA0 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80391E44 0038EDA4 FC 01 00 32 */ fmul f0, f1, f0 +/* 80391E48 0038EDA8 FC 20 00 24 */ fdiv f1, f0, f0 +/* 80391E4C 0038EDAC 48 00 02 D0 */ b lbl_8039211C +lbl_80391E50: +/* 80391E50 0038EDB0 7C 07 40 00 */ cmpw r7, r8 +/* 80391E54 0038EDB4 41 81 00 30 */ bgt lbl_80391E84 +/* 80391E58 0038EDB8 41 80 00 0C */ blt lbl_80391E64 +/* 80391E5C 0038EDBC 7C 04 28 40 */ cmplw r4, r5 +/* 80391E60 0038EDC0 40 80 00 0C */ bge lbl_80391E6C +lbl_80391E64: +/* 80391E64 0038EDC4 C8 21 00 08 */ lfd f1, 8(r1) +/* 80391E68 0038EDC8 48 00 02 B4 */ b lbl_8039211C +lbl_80391E6C: +/* 80391E6C 0038EDCC 40 82 00 18 */ bne lbl_80391E84 +/* 80391E70 0038EDD0 3C 60 80 3E */ lis r3, lbl_803D8750@ha +/* 80391E74 0038EDD4 54 00 27 38 */ rlwinm r0, r0, 4, 0x1c, 0x1c +/* 80391E78 0038EDD8 38 63 87 50 */ addi r3, r3, lbl_803D8750@l +/* 80391E7C 0038EDDC 7C 23 04 AE */ lfdx f1, r3, r0 +/* 80391E80 0038EDE0 48 00 02 9C */ b lbl_8039211C +lbl_80391E84: +/* 80391E84 0038EDE4 3C 60 00 10 */ lis r3, 0x10 +/* 80391E88 0038EDE8 7C 07 18 00 */ cmpw r7, r3 +/* 80391E8C 0038EDEC 40 80 00 4C */ bge lbl_80391ED8 +/* 80391E90 0038EDF0 2C 07 00 00 */ cmpwi r7, 0 +/* 80391E94 0038EDF4 40 82 00 24 */ bne lbl_80391EB8 +/* 80391E98 0038EDF8 7C 83 23 78 */ mr r3, r4 +/* 80391E9C 0038EDFC 39 60 FB ED */ li r11, -1043 +/* 80391EA0 0038EE00 48 00 00 0C */ b lbl_80391EAC +lbl_80391EA4: +/* 80391EA4 0038EE04 54 63 08 3C */ slwi r3, r3, 1 +/* 80391EA8 0038EE08 39 6B FF FF */ addi r11, r11, -1 +lbl_80391EAC: +/* 80391EAC 0038EE0C 2C 03 00 00 */ cmpwi r3, 0 +/* 80391EB0 0038EE10 41 81 FF F4 */ bgt lbl_80391EA4 +/* 80391EB4 0038EE14 48 00 00 2C */ b lbl_80391EE0 +lbl_80391EB8: +/* 80391EB8 0038EE18 54 E3 58 28 */ slwi r3, r7, 0xb +/* 80391EBC 0038EE1C 39 60 FC 02 */ li r11, -1022 +/* 80391EC0 0038EE20 48 00 00 0C */ b lbl_80391ECC +lbl_80391EC4: +/* 80391EC4 0038EE24 54 63 08 3C */ slwi r3, r3, 1 +/* 80391EC8 0038EE28 39 6B FF FF */ addi r11, r11, -1 +lbl_80391ECC: +/* 80391ECC 0038EE2C 2C 03 00 00 */ cmpwi r3, 0 +/* 80391ED0 0038EE30 41 81 FF F4 */ bgt lbl_80391EC4 +/* 80391ED4 0038EE34 48 00 00 0C */ b lbl_80391EE0 +lbl_80391ED8: +/* 80391ED8 0038EE38 7C E3 A6 70 */ srawi r3, r7, 0x14 +/* 80391EDC 0038EE3C 39 63 FC 01 */ addi r11, r3, -1023 +lbl_80391EE0: +/* 80391EE0 0038EE40 3C 60 00 10 */ lis r3, 0x10 +/* 80391EE4 0038EE44 7C 08 18 00 */ cmpw r8, r3 +/* 80391EE8 0038EE48 40 80 00 4C */ bge lbl_80391F34 +/* 80391EEC 0038EE4C 2C 08 00 00 */ cmpwi r8, 0 +/* 80391EF0 0038EE50 40 82 00 24 */ bne lbl_80391F14 +/* 80391EF4 0038EE54 7C A6 2B 78 */ mr r6, r5 +/* 80391EF8 0038EE58 38 60 FB ED */ li r3, -1043 +/* 80391EFC 0038EE5C 48 00 00 0C */ b lbl_80391F08 +lbl_80391F00: +/* 80391F00 0038EE60 54 C6 08 3C */ slwi r6, r6, 1 +/* 80391F04 0038EE64 38 63 FF FF */ addi r3, r3, -1 +lbl_80391F08: +/* 80391F08 0038EE68 2C 06 00 00 */ cmpwi r6, 0 +/* 80391F0C 0038EE6C 41 81 FF F4 */ bgt lbl_80391F00 +/* 80391F10 0038EE70 48 00 00 2C */ b lbl_80391F3C +lbl_80391F14: +/* 80391F14 0038EE74 55 06 58 28 */ slwi r6, r8, 0xb +/* 80391F18 0038EE78 38 60 FC 02 */ li r3, -1022 +/* 80391F1C 0038EE7C 48 00 00 0C */ b lbl_80391F28 +lbl_80391F20: +/* 80391F20 0038EE80 54 C6 08 3C */ slwi r6, r6, 1 +/* 80391F24 0038EE84 38 63 FF FF */ addi r3, r3, -1 +lbl_80391F28: +/* 80391F28 0038EE88 2C 06 00 00 */ cmpwi r6, 0 +/* 80391F2C 0038EE8C 41 81 FF F4 */ bgt lbl_80391F20 +/* 80391F30 0038EE90 48 00 00 0C */ b lbl_80391F3C +lbl_80391F34: +/* 80391F34 0038EE94 7D 03 A6 70 */ srawi r3, r8, 0x14 +/* 80391F38 0038EE98 38 63 FC 01 */ addi r3, r3, -1023 +lbl_80391F3C: +/* 80391F3C 0038EE9C 2C 0B FC 02 */ cmpwi r11, -1022 +/* 80391F40 0038EEA0 41 80 00 10 */ blt lbl_80391F50 +/* 80391F44 0038EEA4 54 E6 03 3E */ clrlwi r6, r7, 0xc +/* 80391F48 0038EEA8 64 C9 00 10 */ oris r9, r6, 0x10 +/* 80391F4C 0038EEAC 48 00 00 34 */ b lbl_80391F80 +lbl_80391F50: +/* 80391F50 0038EEB0 21 2B FC 02 */ subfic r9, r11, -1022 +/* 80391F54 0038EEB4 2C 09 00 1F */ cmpwi r9, 0x1f +/* 80391F58 0038EEB8 41 81 00 1C */ bgt lbl_80391F74 +/* 80391F5C 0038EEBC 20 C9 00 20 */ subfic r6, r9, 0x20 +/* 80391F60 0038EEC0 7C E7 48 30 */ slw r7, r7, r9 +/* 80391F64 0038EEC4 7C 86 34 30 */ srw r6, r4, r6 +/* 80391F68 0038EEC8 7C 84 48 30 */ slw r4, r4, r9 +/* 80391F6C 0038EECC 7C E9 33 78 */ or r9, r7, r6 +/* 80391F70 0038EED0 48 00 00 10 */ b lbl_80391F80 +lbl_80391F74: +/* 80391F74 0038EED4 38 C9 FF E0 */ addi r6, r9, -32 +/* 80391F78 0038EED8 7C 89 30 30 */ slw r9, r4, r6 +/* 80391F7C 0038EEDC 38 80 00 00 */ li r4, 0 +lbl_80391F80: +/* 80391F80 0038EEE0 2C 03 FC 02 */ cmpwi r3, -1022 +/* 80391F84 0038EEE4 41 80 00 10 */ blt lbl_80391F94 +/* 80391F88 0038EEE8 55 46 03 3E */ clrlwi r6, r10, 0xc +/* 80391F8C 0038EEEC 64 C7 00 10 */ oris r7, r6, 0x10 +/* 80391F90 0038EEF0 48 00 00 34 */ b lbl_80391FC4 +lbl_80391F94: +/* 80391F94 0038EEF4 21 43 FC 02 */ subfic r10, r3, -1022 +/* 80391F98 0038EEF8 2C 0A 00 1F */ cmpwi r10, 0x1f +/* 80391F9C 0038EEFC 41 81 00 1C */ bgt lbl_80391FB8 +/* 80391FA0 0038EF00 20 CA 00 20 */ subfic r6, r10, 0x20 +/* 80391FA4 0038EF04 7D 07 50 30 */ slw r7, r8, r10 +/* 80391FA8 0038EF08 7C A6 34 30 */ srw r6, r5, r6 +/* 80391FAC 0038EF0C 7C A5 50 30 */ slw r5, r5, r10 +/* 80391FB0 0038EF10 7C E7 33 78 */ or r7, r7, r6 +/* 80391FB4 0038EF14 48 00 00 10 */ b lbl_80391FC4 +lbl_80391FB8: +/* 80391FB8 0038EF18 38 CA FF E0 */ addi r6, r10, -32 +/* 80391FBC 0038EF1C 7C A7 30 30 */ slw r7, r5, r6 +/* 80391FC0 0038EF20 38 A0 00 00 */ li r5, 0 +lbl_80391FC4: +/* 80391FC4 0038EF24 7C C3 58 51 */ subf. r6, r3, r11 +/* 80391FC8 0038EF28 7C C9 03 A6 */ mtctr r6 +/* 80391FCC 0038EF2C 41 82 00 64 */ beq lbl_80392030 +lbl_80391FD0: +/* 80391FD0 0038EF30 7C 04 28 40 */ cmplw r4, r5 +/* 80391FD4 0038EF34 7D 07 48 50 */ subf r8, r7, r9 +/* 80391FD8 0038EF38 7D 45 20 50 */ subf r10, r5, r4 +/* 80391FDC 0038EF3C 40 80 00 08 */ bge lbl_80391FE4 +/* 80391FE0 0038EF40 39 08 FF FF */ addi r8, r8, -1 +lbl_80391FE4: +/* 80391FE4 0038EF44 2C 08 00 00 */ cmpwi r8, 0 +/* 80391FE8 0038EF48 40 80 00 18 */ bge lbl_80392000 +/* 80391FEC 0038EF4C 54 86 0F FE */ srwi r6, r4, 0x1f +/* 80391FF0 0038EF50 7C 84 22 14 */ add r4, r4, r4 +/* 80391FF4 0038EF54 7C C9 32 14 */ add r6, r9, r6 +/* 80391FF8 0038EF58 7D 29 32 14 */ add r9, r9, r6 +/* 80391FFC 0038EF5C 48 00 00 30 */ b lbl_8039202C +lbl_80392000: +/* 80392000 0038EF60 7D 04 53 79 */ or. r4, r8, r10 +/* 80392004 0038EF64 40 82 00 18 */ bne lbl_8039201C +/* 80392008 0038EF68 3C 60 80 3E */ lis r3, lbl_803D8750@ha +/* 8039200C 0038EF6C 54 00 27 38 */ rlwinm r0, r0, 4, 0x1c, 0x1c +/* 80392010 0038EF70 38 63 87 50 */ addi r3, r3, lbl_803D8750@l +/* 80392014 0038EF74 7C 23 04 AE */ lfdx f1, r3, r0 +/* 80392018 0038EF78 48 00 01 04 */ b lbl_8039211C +lbl_8039201C: +/* 8039201C 0038EF7C 55 46 0F FE */ srwi r6, r10, 0x1f +/* 80392020 0038EF80 7C 8A 52 14 */ add r4, r10, r10 +/* 80392024 0038EF84 7D 28 32 14 */ add r9, r8, r6 +/* 80392028 0038EF88 7D 28 4A 14 */ add r9, r8, r9 +lbl_8039202C: +/* 8039202C 0038EF8C 42 00 FF A4 */ bdnz lbl_80391FD0 +lbl_80392030: +/* 80392030 0038EF90 7C 04 28 40 */ cmplw r4, r5 +/* 80392034 0038EF94 7C C7 48 50 */ subf r6, r7, r9 +/* 80392038 0038EF98 7C A5 20 50 */ subf r5, r5, r4 +/* 8039203C 0038EF9C 40 80 00 08 */ bge lbl_80392044 +/* 80392040 0038EFA0 38 C6 FF FF */ addi r6, r6, -1 +lbl_80392044: +/* 80392044 0038EFA4 2C 06 00 00 */ cmpwi r6, 0 +/* 80392048 0038EFA8 41 80 00 0C */ blt lbl_80392054 +/* 8039204C 0038EFAC 7C C9 33 78 */ mr r9, r6 +/* 80392050 0038EFB0 7C A4 2B 78 */ mr r4, r5 +lbl_80392054: +/* 80392054 0038EFB4 7D 25 23 79 */ or. r5, r9, r4 +/* 80392058 0038EFB8 40 82 00 18 */ bne lbl_80392070 +/* 8039205C 0038EFBC 3C 60 80 3E */ lis r3, lbl_803D8750@ha +/* 80392060 0038EFC0 54 00 27 38 */ rlwinm r0, r0, 4, 0x1c, 0x1c +/* 80392064 0038EFC4 38 63 87 50 */ addi r3, r3, lbl_803D8750@l +/* 80392068 0038EFC8 7C 23 04 AE */ lfdx f1, r3, r0 +/* 8039206C 0038EFCC 48 00 00 B0 */ b lbl_8039211C +lbl_80392070: +/* 80392070 0038EFD0 3C A0 00 10 */ lis r5, 0x10 +/* 80392074 0038EFD4 48 00 00 18 */ b lbl_8039208C +lbl_80392078: +/* 80392078 0038EFD8 54 86 0F FE */ srwi r6, r4, 0x1f +/* 8039207C 0038EFDC 7C 84 22 14 */ add r4, r4, r4 +/* 80392080 0038EFE0 7C C9 32 14 */ add r6, r9, r6 +/* 80392084 0038EFE4 38 63 FF FF */ addi r3, r3, -1 +/* 80392088 0038EFE8 7D 29 32 14 */ add r9, r9, r6 +lbl_8039208C: +/* 8039208C 0038EFEC 7C 09 28 00 */ cmpw r9, r5 +/* 80392090 0038EFF0 41 80 FF E8 */ blt lbl_80392078 +/* 80392094 0038EFF4 2C 03 FC 02 */ cmpwi r3, -1022 +/* 80392098 0038EFF8 41 80 00 24 */ blt lbl_803920BC +/* 8039209C 0038EFFC 38 63 03 FF */ addi r3, r3, 0x3ff +/* 803920A0 0038F000 3C A9 FF F0 */ addis r5, r9, 0xfff0 +/* 803920A4 0038F004 54 63 A0 16 */ slwi r3, r3, 0x14 +/* 803920A8 0038F008 90 81 00 0C */ stw r4, 0xc(r1) +/* 803920AC 0038F00C 7C A3 1B 78 */ or r3, r5, r3 +/* 803920B0 0038F010 7C 60 03 78 */ or r0, r3, r0 +/* 803920B4 0038F014 90 01 00 08 */ stw r0, 8(r1) +/* 803920B8 0038F018 48 00 00 60 */ b lbl_80392118 +lbl_803920BC: +/* 803920BC 0038F01C 20 C3 FC 02 */ subfic r6, r3, -1022 +/* 803920C0 0038F020 2C 06 00 14 */ cmpwi r6, 0x14 +/* 803920C4 0038F024 41 81 00 1C */ bgt lbl_803920E0 +/* 803920C8 0038F028 20 66 00 20 */ subfic r3, r6, 0x20 +/* 803920CC 0038F02C 7C 84 34 30 */ srw r4, r4, r6 +/* 803920D0 0038F030 7D 23 18 30 */ slw r3, r9, r3 +/* 803920D4 0038F034 7D 29 36 30 */ sraw r9, r9, r6 +/* 803920D8 0038F038 7C 83 1B 78 */ or r3, r4, r3 +/* 803920DC 0038F03C 48 00 00 30 */ b lbl_8039210C +lbl_803920E0: +/* 803920E0 0038F040 2C 06 00 1F */ cmpwi r6, 0x1f +/* 803920E4 0038F044 41 81 00 1C */ bgt lbl_80392100 +/* 803920E8 0038F048 20 A6 00 20 */ subfic r5, r6, 0x20 +/* 803920EC 0038F04C 7C 83 34 30 */ srw r3, r4, r6 +/* 803920F0 0038F050 7D 24 28 30 */ slw r4, r9, r5 +/* 803920F4 0038F054 7C 09 03 78 */ mr r9, r0 +/* 803920F8 0038F058 7C 83 1B 78 */ or r3, r4, r3 +/* 803920FC 0038F05C 48 00 00 10 */ b lbl_8039210C +lbl_80392100: +/* 80392100 0038F060 38 66 FF E0 */ addi r3, r6, -32 +/* 80392104 0038F064 7D 23 1E 30 */ sraw r3, r9, r3 +/* 80392108 0038F068 7C 09 03 78 */ mr r9, r0 +lbl_8039210C: +/* 8039210C 0038F06C 7D 20 03 78 */ or r0, r9, r0 +/* 80392110 0038F070 90 61 00 0C */ stw r3, 0xc(r1) +/* 80392114 0038F074 90 01 00 08 */ stw r0, 8(r1) +lbl_80392118: +/* 80392118 0038F078 C8 21 00 08 */ lfd f1, 8(r1) +lbl_8039211C: +/* 8039211C 0038F07C 38 21 00 20 */ addi r1, r1, 0x20 +/* 80392120 0038F080 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/e_log.s b/asm/Runtime/PPCEABI/H/e_log.s new file mode 100644 index 00000000..8797fc37 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/e_log.s @@ -0,0 +1,177 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __ieee754_log +__ieee754_log: +/* 80392124 0038F084 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80392128 0038F088 3C 00 00 10 */ lis r0, 0x10 +/* 8039212C 0038F08C 39 00 00 00 */ li r8, 0 +/* 80392130 0038F090 D8 21 00 08 */ stfd f1, 8(r1) +/* 80392134 0038F094 80 61 00 08 */ lwz r3, 8(r1) +/* 80392138 0038F098 80 81 00 0C */ lwz r4, 0xc(r1) +/* 8039213C 0038F09C 7C 03 00 00 */ cmpw r3, r0 +/* 80392140 0038F0A0 40 80 00 54 */ bge lbl_80392194 +/* 80392144 0038F0A4 54 60 00 7E */ clrlwi r0, r3, 1 +/* 80392148 0038F0A8 7C 00 23 79 */ or. r0, r0, r4 +/* 8039214C 0038F0AC 40 82 00 14 */ bne lbl_80392160 +/* 80392150 0038F0B0 C8 22 D1 90 */ lfd f1, lbl_805AEEB0@sda21(r2) +/* 80392154 0038F0B4 C8 0D AE 20 */ lfd f0, lbl_805A99E0@sda21(r13) +/* 80392158 0038F0B8 FC 21 00 24 */ fdiv f1, f1, f0 +/* 8039215C 0038F0BC 48 00 02 3C */ b lbl_80392398 +lbl_80392160: +/* 80392160 0038F0C0 2C 03 00 00 */ cmpwi r3, 0 +/* 80392164 0038F0C4 40 80 00 1C */ bge lbl_80392180 +/* 80392168 0038F0C8 FC 21 08 28 */ fsub f1, f1, f1 +/* 8039216C 0038F0CC C8 0D AE 20 */ lfd f0, lbl_805A99E0@sda21(r13) +/* 80392170 0038F0D0 38 00 00 21 */ li r0, 0x21 +/* 80392174 0038F0D4 90 0D AE 10 */ stw r0, lbl_805A99D0@sda21(r13) +/* 80392178 0038F0D8 FC 21 00 24 */ fdiv f1, f1, f0 +/* 8039217C 0038F0DC 48 00 02 1C */ b lbl_80392398 +lbl_80392180: +/* 80392180 0038F0E0 C8 02 D1 98 */ lfd f0, lbl_805AEEB8@sda21(r2) +/* 80392184 0038F0E4 39 00 FF CA */ li r8, -54 +/* 80392188 0038F0E8 FC 01 00 32 */ fmul f0, f1, f0 +/* 8039218C 0038F0EC D8 01 00 08 */ stfd f0, 8(r1) +/* 80392190 0038F0F0 80 61 00 08 */ lwz r3, 8(r1) +lbl_80392194: +/* 80392194 0038F0F4 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80392198 0038F0F8 7C 03 00 00 */ cmpw r3, r0 +/* 8039219C 0038F0FC 41 80 00 10 */ blt lbl_803921AC +/* 803921A0 0038F100 C8 01 00 08 */ lfd f0, 8(r1) +/* 803921A4 0038F104 FC 20 00 2A */ fadd f1, f0, f0 +/* 803921A8 0038F108 48 00 01 F0 */ b lbl_80392398 +lbl_803921AC: +/* 803921AC 0038F10C 54 66 03 3E */ clrlwi r6, r3, 0xc +/* 803921B0 0038F110 7C 64 A6 70 */ srawi r4, r3, 0x14 +/* 803921B4 0038F114 3C 66 00 09 */ addis r3, r6, 9 +/* 803921B8 0038F118 C8 02 D1 A0 */ lfd f0, lbl_805AEEC0@sda21(r2) +/* 803921BC 0038F11C 38 A3 5F 64 */ addi r5, r3, 0x5f64 +/* 803921C0 0038F120 7D 04 42 14 */ add r8, r4, r8 +/* 803921C4 0038F124 54 A3 02 D6 */ rlwinm r3, r5, 0, 0xb, 0xb +/* 803921C8 0038F128 38 06 00 02 */ addi r0, r6, 2 +/* 803921CC 0038F12C 6C 63 3F F0 */ xoris r3, r3, 0x3ff0 +/* 803921D0 0038F130 39 08 FC 01 */ addi r8, r8, -1023 +/* 803921D4 0038F134 7C C4 1B 78 */ or r4, r6, r3 +/* 803921D8 0038F138 54 00 03 3E */ clrlwi r0, r0, 0xc +/* 803921DC 0038F13C 90 81 00 08 */ stw r4, 8(r1) +/* 803921E0 0038F140 54 A3 67 FE */ rlwinm r3, r5, 0xc, 0x1f, 0x1f +/* 803921E4 0038F144 2C 00 00 03 */ cmpwi r0, 3 +/* 803921E8 0038F148 C8 21 00 08 */ lfd f1, 8(r1) +/* 803921EC 0038F14C 7D 08 1A 14 */ add r8, r8, r3 +/* 803921F0 0038F150 FC 01 00 28 */ fsub f0, f1, f0 +/* 803921F4 0038F154 40 80 00 A4 */ bge lbl_80392298 +/* 803921F8 0038F158 C8 2D AE 20 */ lfd f1, lbl_805A99E0@sda21(r13) +/* 803921FC 0038F15C FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 80392200 0038F160 40 82 00 40 */ bne lbl_80392240 +/* 80392204 0038F164 2C 08 00 00 */ cmpwi r8, 0 +/* 80392208 0038F168 40 82 00 08 */ bne lbl_80392210 +/* 8039220C 0038F16C 48 00 01 8C */ b lbl_80392398 +lbl_80392210: +/* 80392210 0038F170 6D 03 80 00 */ xoris r3, r8, 0x8000 +/* 80392214 0038F174 3C 00 43 30 */ lis r0, 0x4330 +/* 80392218 0038F178 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039221C 0038F17C C8 62 D2 08 */ lfd f3, lbl_805AEF28@sda21(r2) +/* 80392220 0038F180 90 01 00 10 */ stw r0, 0x10(r1) +/* 80392224 0038F184 C8 02 D1 B0 */ lfd f0, lbl_805AEED0@sda21(r2) +/* 80392228 0038F188 C8 41 00 10 */ lfd f2, 0x10(r1) +/* 8039222C 0038F18C C8 22 D1 A8 */ lfd f1, lbl_805AEEC8@sda21(r2) +/* 80392230 0038F190 FC 42 18 28 */ fsub f2, f2, f3 +/* 80392234 0038F194 FC 00 00 B2 */ fmul f0, f0, f2 +/* 80392238 0038F198 FC 21 00 BA */ fmadd f1, f1, f2, f0 +/* 8039223C 0038F19C 48 00 01 5C */ b lbl_80392398 +lbl_80392240: +/* 80392240 0038F1A0 C8 62 D1 C0 */ lfd f3, lbl_805AEEE0@sda21(r2) +/* 80392244 0038F1A4 FC 20 00 32 */ fmul f1, f0, f0 +/* 80392248 0038F1A8 C8 42 D1 B8 */ lfd f2, lbl_805AEED8@sda21(r2) +/* 8039224C 0038F1AC 2C 08 00 00 */ cmpwi r8, 0 +/* 80392250 0038F1B0 FC 43 10 3C */ fnmsub f2, f3, f0, f2 +/* 80392254 0038F1B4 FC A2 00 72 */ fmul f5, f2, f1 +/* 80392258 0038F1B8 40 82 00 0C */ bne lbl_80392264 +/* 8039225C 0038F1BC FC 20 28 28 */ fsub f1, f0, f5 +/* 80392260 0038F1C0 48 00 01 38 */ b lbl_80392398 +lbl_80392264: +/* 80392264 0038F1C4 6D 03 80 00 */ xoris r3, r8, 0x8000 +/* 80392268 0038F1C8 3C 00 43 30 */ lis r0, 0x4330 +/* 8039226C 0038F1CC 90 61 00 14 */ stw r3, 0x14(r1) +/* 80392270 0038F1D0 C8 82 D2 08 */ lfd f4, lbl_805AEF28@sda21(r2) +/* 80392274 0038F1D4 90 01 00 10 */ stw r0, 0x10(r1) +/* 80392278 0038F1D8 C8 22 D1 B0 */ lfd f1, lbl_805AEED0@sda21(r2) +/* 8039227C 0038F1DC C8 61 00 10 */ lfd f3, 0x10(r1) +/* 80392280 0038F1E0 C8 42 D1 A8 */ lfd f2, lbl_805AEEC8@sda21(r2) +/* 80392284 0038F1E4 FC 63 20 28 */ fsub f3, f3, f4 +/* 80392288 0038F1E8 FC 21 28 FC */ fnmsub f1, f1, f3, f5 +/* 8039228C 0038F1EC FC 01 00 28 */ fsub f0, f1, f0 +/* 80392290 0038F1F0 FC 22 00 F8 */ fmsub f1, f2, f3, f0 +/* 80392294 0038F1F4 48 00 01 04 */ b lbl_80392398 +lbl_80392298: +/* 80392298 0038F1F8 C8 22 D1 C8 */ lfd f1, lbl_805AEEE8@sda21(r2) +/* 8039229C 0038F1FC 6D 05 80 00 */ xoris r5, r8, 0x8000 +/* 803922A0 0038F200 3C 80 43 30 */ lis r4, 0x4330 +/* 803922A4 0038F204 3C 60 00 07 */ lis r3, 0x0006B851@ha +/* 803922A8 0038F208 FC 21 00 2A */ fadd f1, f1, f0 +/* 803922AC 0038F20C 3C E6 FF FA */ addis r7, r6, 0xfffa +/* 803922B0 0038F210 38 03 B8 51 */ addi r0, r3, 0x0006B851@l +/* 803922B4 0038F214 C9 02 D1 E8 */ lfd f8, lbl_805AEF08@sda21(r2) +/* 803922B8 0038F218 C8 E2 D1 E0 */ lfd f7, lbl_805AEF00@sda21(r2) +/* 803922BC 0038F21C 7C 06 00 50 */ subf r0, r6, r0 +/* 803922C0 0038F220 FC 20 08 24 */ fdiv f1, f0, f1 +/* 803922C4 0038F224 38 E7 EB 86 */ addi r7, r7, -5242 +/* 803922C8 0038F228 C8 C2 D1 D8 */ lfd f6, lbl_805AEEF8@sda21(r2) +/* 803922CC 0038F22C 7C E7 03 79 */ or. r7, r7, r0 +/* 803922D0 0038F230 C8 82 D2 00 */ lfd f4, lbl_805AEF20@sda21(r2) +/* 803922D4 0038F234 C8 62 D1 F8 */ lfd f3, lbl_805AEF18@sda21(r2) +/* 803922D8 0038F238 FD 61 00 72 */ fmul f11, f1, f1 +/* 803922DC 0038F23C C8 A2 D1 D0 */ lfd f5, lbl_805AEEF0@sda21(r2) +/* 803922E0 0038F240 C8 42 D1 F0 */ lfd f2, lbl_805AEF10@sda21(r2) +/* 803922E4 0038F244 90 A1 00 14 */ stw r5, 0x14(r1) +/* 803922E8 0038F248 C9 42 D2 08 */ lfd f10, lbl_805AEF28@sda21(r2) +/* 803922EC 0038F24C FD 8B 02 F2 */ fmul f12, f11, f11 +/* 803922F0 0038F250 90 81 00 10 */ stw r4, 0x10(r1) +/* 803922F4 0038F254 C9 21 00 10 */ lfd f9, 0x10(r1) +/* 803922F8 0038F258 FC E8 3B 3A */ fmadd f7, f8, f12, f7 +/* 803922FC 0038F25C FC 64 1B 3A */ fmadd f3, f4, f12, f3 +/* 80392300 0038F260 FC 8C 31 FA */ fmadd f4, f12, f7, f6 +/* 80392304 0038F264 FC 4C 10 FA */ fmadd f2, f12, f3, f2 +/* 80392308 0038F268 FC 6C 29 3A */ fmadd f3, f12, f4, f5 +/* 8039230C 0038F26C FC 4C 00 B2 */ fmul f2, f12, f2 +/* 80392310 0038F270 FC 6B 00 F2 */ fmul f3, f11, f3 +/* 80392314 0038F274 FC A9 50 28 */ fsub f5, f9, f10 +/* 80392318 0038F278 FC 63 10 2A */ fadd f3, f3, f2 +/* 8039231C 0038F27C 40 81 00 4C */ ble lbl_80392368 +/* 80392320 0038F280 C8 42 D1 B8 */ lfd f2, lbl_805AEED8@sda21(r2) +/* 80392324 0038F284 2C 08 00 00 */ cmpwi r8, 0 +/* 80392328 0038F288 FC 42 00 32 */ fmul f2, f2, f0 +/* 8039232C 0038F28C FC C2 00 32 */ fmul f6, f2, f0 +/* 80392330 0038F290 40 82 00 14 */ bne lbl_80392344 +/* 80392334 0038F294 FC 46 18 2A */ fadd f2, f6, f3 +/* 80392338 0038F298 FC 21 30 BC */ fnmsub f1, f1, f2, f6 +/* 8039233C 0038F29C FC 20 08 28 */ fsub f1, f0, f1 +/* 80392340 0038F2A0 48 00 00 58 */ b lbl_80392398 +lbl_80392344: +/* 80392344 0038F2A4 C8 42 D1 B0 */ lfd f2, lbl_805AEED0@sda21(r2) +/* 80392348 0038F2A8 FC 66 18 2A */ fadd f3, f6, f3 +/* 8039234C 0038F2AC C8 82 D1 A8 */ lfd f4, lbl_805AEEC8@sda21(r2) +/* 80392350 0038F2B0 FC 42 01 72 */ fmul f2, f2, f5 +/* 80392354 0038F2B4 FC 21 10 FA */ fmadd f1, f1, f3, f2 +/* 80392358 0038F2B8 FC 26 08 28 */ fsub f1, f6, f1 +/* 8039235C 0038F2BC FC 01 00 28 */ fsub f0, f1, f0 +/* 80392360 0038F2C0 FC 24 01 78 */ fmsub f1, f4, f5, f0 +/* 80392364 0038F2C4 48 00 00 34 */ b lbl_80392398 +lbl_80392368: +/* 80392368 0038F2C8 2C 08 00 00 */ cmpwi r8, 0 +/* 8039236C 0038F2CC 40 82 00 10 */ bne lbl_8039237C +/* 80392370 0038F2D0 FC 40 18 28 */ fsub f2, f0, f3 +/* 80392374 0038F2D4 FC 21 00 BC */ fnmsub f1, f1, f2, f0 +/* 80392378 0038F2D8 48 00 00 20 */ b lbl_80392398 +lbl_8039237C: +/* 8039237C 0038F2DC C8 42 D1 B0 */ lfd f2, lbl_805AEED0@sda21(r2) +/* 80392380 0038F2E0 FC 60 18 28 */ fsub f3, f0, f3 +/* 80392384 0038F2E4 C8 82 D1 A8 */ lfd f4, lbl_805AEEC8@sda21(r2) +/* 80392388 0038F2E8 FC 42 01 72 */ fmul f2, f2, f5 +/* 8039238C 0038F2EC FC 21 10 F8 */ fmsub f1, f1, f3, f2 +/* 80392390 0038F2F0 FC 01 00 28 */ fsub f0, f1, f0 +/* 80392394 0038F2F4 FC 24 01 78 */ fmsub f1, f4, f5, f0 +lbl_80392398: +/* 80392398 0038F2F8 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039239C 0038F2FC 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/e_pow.s b/asm/Runtime/PPCEABI/H/e_pow.s new file mode 100644 index 00000000..557e68a0 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/e_pow.s @@ -0,0 +1,602 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __ieee754_pow +__ieee754_pow: +/* 803923A0 0038F300 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 803923A4 0038F304 7C 08 02 A6 */ mflr r0 +/* 803923A8 0038F308 90 01 00 94 */ stw r0, 0x94(r1) +/* 803923AC 0038F30C DB E1 00 80 */ stfd f31, 0x80(r1) +/* 803923B0 0038F310 F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0 +/* 803923B4 0038F314 DB C1 00 70 */ stfd f30, 0x70(r1) +/* 803923B8 0038F318 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0 +/* 803923BC 0038F31C DB A1 00 60 */ stfd f29, 0x60(r1) +/* 803923C0 0038F320 F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0 +/* 803923C4 0038F324 D8 41 00 10 */ stfd f2, 0x10(r1) +/* 803923C8 0038F328 3C 60 80 3E */ lis r3, lbl_803D8760@ha +/* 803923CC 0038F32C 38 03 87 60 */ addi r0, r3, lbl_803D8760@l +/* 803923D0 0038F330 80 A1 00 10 */ lwz r5, 0x10(r1) +/* 803923D4 0038F334 D8 21 00 08 */ stfd f1, 8(r1) +/* 803923D8 0038F338 81 61 00 14 */ lwz r11, 0x14(r1) +/* 803923DC 0038F33C 54 A7 00 7E */ clrlwi r7, r5, 1 +/* 803923E0 0038F340 80 61 00 08 */ lwz r3, 8(r1) +/* 803923E4 0038F344 7C E4 5B 79 */ or. r4, r7, r11 +/* 803923E8 0038F348 81 41 00 0C */ lwz r10, 0xc(r1) +/* 803923EC 0038F34C 54 66 00 7E */ clrlwi r6, r3, 1 +/* 803923F0 0038F350 40 82 00 0C */ bne lbl_803923FC +/* 803923F4 0038F354 C8 22 D2 10 */ lfd f1, lbl_805AEF30@sda21(r2) +/* 803923F8 0038F358 48 00 08 0C */ b lbl_80392C04 +lbl_803923FC: +/* 803923FC 0038F35C 3C 80 7F F0 */ lis r4, 0x7ff0 +/* 80392400 0038F360 7C 06 20 00 */ cmpw r6, r4 +/* 80392404 0038F364 41 81 00 38 */ bgt lbl_8039243C +/* 80392408 0038F368 3C 86 80 10 */ addis r4, r6, 0x8010 +/* 8039240C 0038F36C 28 04 00 00 */ cmplwi r4, 0 +/* 80392410 0038F370 40 82 00 0C */ bne lbl_8039241C +/* 80392414 0038F374 28 0A 00 00 */ cmplwi r10, 0 +/* 80392418 0038F378 40 82 00 24 */ bne lbl_8039243C +lbl_8039241C: +/* 8039241C 0038F37C 3C 80 7F F0 */ lis r4, 0x7ff0 +/* 80392420 0038F380 7C 07 20 00 */ cmpw r7, r4 +/* 80392424 0038F384 41 81 00 18 */ bgt lbl_8039243C +/* 80392428 0038F388 3C 87 80 10 */ addis r4, r7, 0x8010 +/* 8039242C 0038F38C 28 04 00 00 */ cmplwi r4, 0 +/* 80392430 0038F390 40 82 00 1C */ bne lbl_8039244C +/* 80392434 0038F394 28 0B 00 00 */ cmplwi r11, 0 +/* 80392438 0038F398 41 82 00 14 */ beq lbl_8039244C +lbl_8039243C: +/* 8039243C 0038F39C C8 21 00 08 */ lfd f1, 8(r1) +/* 80392440 0038F3A0 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80392444 0038F3A4 FC 21 00 2A */ fadd f1, f1, f0 +/* 80392448 0038F3A8 48 00 07 BC */ b lbl_80392C04 +lbl_8039244C: +/* 8039244C 0038F3AC 2C 03 00 00 */ cmpwi r3, 0 +/* 80392450 0038F3B0 38 80 00 00 */ li r4, 0 +/* 80392454 0038F3B4 40 80 00 78 */ bge lbl_803924CC +/* 80392458 0038F3B8 3D 00 43 40 */ lis r8, 0x4340 +/* 8039245C 0038F3BC 7C 07 40 00 */ cmpw r7, r8 +/* 80392460 0038F3C0 41 80 00 0C */ blt lbl_8039246C +/* 80392464 0038F3C4 38 80 00 02 */ li r4, 2 +/* 80392468 0038F3C8 48 00 00 64 */ b lbl_803924CC +lbl_8039246C: +/* 8039246C 0038F3CC 3D 00 3F F0 */ lis r8, 0x3ff0 +/* 80392470 0038F3D0 7C 07 40 00 */ cmpw r7, r8 +/* 80392474 0038F3D4 41 80 00 58 */ blt lbl_803924CC +/* 80392478 0038F3D8 7C E8 A6 70 */ srawi r8, r7, 0x14 +/* 8039247C 0038F3DC 39 08 FC 01 */ addi r8, r8, -1023 +/* 80392480 0038F3E0 2C 08 00 14 */ cmpwi r8, 0x14 +/* 80392484 0038F3E4 40 81 00 24 */ ble lbl_803924A8 +/* 80392488 0038F3E8 21 08 00 34 */ subfic r8, r8, 0x34 +/* 8039248C 0038F3EC 7D 69 44 30 */ srw r9, r11, r8 +/* 80392490 0038F3F0 7D 28 40 30 */ slw r8, r9, r8 +/* 80392494 0038F3F4 7C 0B 40 40 */ cmplw r11, r8 +/* 80392498 0038F3F8 40 82 00 34 */ bne lbl_803924CC +/* 8039249C 0038F3FC 55 24 07 FE */ clrlwi r4, r9, 0x1f +/* 803924A0 0038F400 20 84 00 02 */ subfic r4, r4, 2 +/* 803924A4 0038F404 48 00 00 28 */ b lbl_803924CC +lbl_803924A8: +/* 803924A8 0038F408 28 0B 00 00 */ cmplwi r11, 0 +/* 803924AC 0038F40C 40 82 00 20 */ bne lbl_803924CC +/* 803924B0 0038F410 21 08 00 14 */ subfic r8, r8, 0x14 +/* 803924B4 0038F414 7C E9 46 30 */ sraw r9, r7, r8 +/* 803924B8 0038F418 7D 28 40 30 */ slw r8, r9, r8 +/* 803924BC 0038F41C 7C 07 40 00 */ cmpw r7, r8 +/* 803924C0 0038F420 40 82 00 0C */ bne lbl_803924CC +/* 803924C4 0038F424 55 24 07 FE */ clrlwi r4, r9, 0x1f +/* 803924C8 0038F428 20 84 00 02 */ subfic r4, r4, 2 +lbl_803924CC: +/* 803924CC 0038F42C 28 0B 00 00 */ cmplwi r11, 0 +/* 803924D0 0038F430 40 82 01 50 */ bne lbl_80392620 +/* 803924D4 0038F434 3D 07 80 10 */ addis r8, r7, 0x8010 +/* 803924D8 0038F438 28 08 00 00 */ cmplwi r8, 0 +/* 803924DC 0038F43C 40 82 00 5C */ bne lbl_80392538 +/* 803924E0 0038F440 3C 06 C0 10 */ addis r0, r6, 0xc010 +/* 803924E4 0038F444 7C 00 53 79 */ or. r0, r0, r10 +/* 803924E8 0038F448 40 82 00 10 */ bne lbl_803924F8 +/* 803924EC 0038F44C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803924F0 0038F450 FC 20 00 28 */ fsub f1, f0, f0 +/* 803924F4 0038F454 48 00 07 10 */ b lbl_80392C04 +lbl_803924F8: +/* 803924F8 0038F458 3C 00 3F F0 */ lis r0, 0x3ff0 +/* 803924FC 0038F45C 7C 06 00 00 */ cmpw r6, r0 +/* 80392500 0038F460 41 80 00 1C */ blt lbl_8039251C +/* 80392504 0038F464 2C 05 00 00 */ cmpwi r5, 0 +/* 80392508 0038F468 41 80 00 0C */ blt lbl_80392514 +/* 8039250C 0038F46C C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80392510 0038F470 48 00 06 F4 */ b lbl_80392C04 +lbl_80392514: +/* 80392514 0038F474 C8 22 D2 18 */ lfd f1, lbl_805AEF38@sda21(r2) +/* 80392518 0038F478 48 00 06 EC */ b lbl_80392C04 +lbl_8039251C: +/* 8039251C 0038F47C 2C 05 00 00 */ cmpwi r5, 0 +/* 80392520 0038F480 40 80 00 10 */ bge lbl_80392530 +/* 80392524 0038F484 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80392528 0038F488 FC 20 00 50 */ fneg f1, f0 +/* 8039252C 0038F48C 48 00 06 D8 */ b lbl_80392C04 +lbl_80392530: +/* 80392530 0038F490 C8 22 D2 18 */ lfd f1, lbl_805AEF38@sda21(r2) +/* 80392534 0038F494 48 00 06 D0 */ b lbl_80392C04 +lbl_80392538: +/* 80392538 0038F498 3D 07 C0 10 */ addis r8, r7, 0xc010 +/* 8039253C 0038F49C 28 08 00 00 */ cmplwi r8, 0 +/* 80392540 0038F4A0 40 82 00 24 */ bne lbl_80392564 +/* 80392544 0038F4A4 2C 05 00 00 */ cmpwi r5, 0 +/* 80392548 0038F4A8 40 80 00 14 */ bge lbl_8039255C +/* 8039254C 0038F4AC C8 22 D2 10 */ lfd f1, lbl_805AEF30@sda21(r2) +/* 80392550 0038F4B0 C8 01 00 08 */ lfd f0, 8(r1) +/* 80392554 0038F4B4 FC 21 00 24 */ fdiv f1, f1, f0 +/* 80392558 0038F4B8 48 00 06 AC */ b lbl_80392C04 +lbl_8039255C: +/* 8039255C 0038F4BC C8 21 00 08 */ lfd f1, 8(r1) +/* 80392560 0038F4C0 48 00 06 A4 */ b lbl_80392C04 +lbl_80392564: +/* 80392564 0038F4C4 3D 05 C0 00 */ addis r8, r5, 0xc000 +/* 80392568 0038F4C8 28 08 00 00 */ cmplwi r8, 0 +/* 8039256C 0038F4CC 40 82 00 10 */ bne lbl_8039257C +/* 80392570 0038F4D0 C8 01 00 08 */ lfd f0, 8(r1) +/* 80392574 0038F4D4 FC 20 00 32 */ fmul f1, f0, f0 +/* 80392578 0038F4D8 48 00 06 8C */ b lbl_80392C04 +lbl_8039257C: +/* 8039257C 0038F4DC 3D 05 C0 20 */ addis r8, r5, 0xc020 +/* 80392580 0038F4E0 28 08 00 00 */ cmplwi r8, 0 +/* 80392584 0038F4E4 40 82 00 9C */ bne lbl_80392620 +/* 80392588 0038F4E8 2C 03 00 00 */ cmpwi r3, 0 +/* 8039258C 0038F4EC 41 80 00 94 */ blt lbl_80392620 +/* 80392590 0038F4F0 C8 81 00 08 */ lfd f4, 8(r1) +/* 80392594 0038F4F4 C8 22 D2 18 */ lfd f1, lbl_805AEF38@sda21(r2) +/* 80392598 0038F4F8 FC 04 08 40 */ fcmpo cr0, f4, f1 +/* 8039259C 0038F4FC 40 81 00 58 */ ble lbl_803925F4 +/* 803925A0 0038F500 FC 20 20 34 */ frsqrte f1, f4 +/* 803925A4 0038F504 C8 62 D2 20 */ lfd f3, lbl_805AEF40@sda21(r2) +/* 803925A8 0038F508 C8 42 D2 28 */ lfd f2, lbl_805AEF48@sda21(r2) +/* 803925AC 0038F50C FC 01 00 72 */ fmul f0, f1, f1 +/* 803925B0 0038F510 FC 23 00 72 */ fmul f1, f3, f1 +/* 803925B4 0038F514 FC 04 10 3C */ fnmsub f0, f4, f0, f2 +/* 803925B8 0038F518 FC 21 00 32 */ fmul f1, f1, f0 +/* 803925BC 0038F51C FC 01 00 72 */ fmul f0, f1, f1 +/* 803925C0 0038F520 FC 23 00 72 */ fmul f1, f3, f1 +/* 803925C4 0038F524 FC 04 10 3C */ fnmsub f0, f4, f0, f2 +/* 803925C8 0038F528 FC 21 00 32 */ fmul f1, f1, f0 +/* 803925CC 0038F52C FC 01 00 72 */ fmul f0, f1, f1 +/* 803925D0 0038F530 FC 23 00 72 */ fmul f1, f3, f1 +/* 803925D4 0038F534 FC 04 10 3C */ fnmsub f0, f4, f0, f2 +/* 803925D8 0038F538 FC 21 00 32 */ fmul f1, f1, f0 +/* 803925DC 0038F53C FC 01 00 72 */ fmul f0, f1, f1 +/* 803925E0 0038F540 FC 23 00 72 */ fmul f1, f3, f1 +/* 803925E4 0038F544 FC 04 10 3C */ fnmsub f0, f4, f0, f2 +/* 803925E8 0038F548 FC 01 00 32 */ fmul f0, f1, f0 +/* 803925EC 0038F54C FC 24 00 32 */ fmul f1, f4, f0 +/* 803925F0 0038F550 48 00 06 14 */ b lbl_80392C04 +lbl_803925F4: +/* 803925F4 0038F554 FC 01 20 00 */ fcmpu cr0, f1, f4 +/* 803925F8 0038F558 40 82 00 08 */ bne lbl_80392600 +/* 803925FC 0038F55C 48 00 06 08 */ b lbl_80392C04 +lbl_80392600: +/* 80392600 0038F560 FC 04 08 00 */ fcmpu cr0, f4, f1 +/* 80392604 0038F564 41 82 00 10 */ beq lbl_80392614 +/* 80392608 0038F568 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 8039260C 0038F56C C0 23 8B A0 */ lfs f1, lbl_805A8BA0@l(r3) +/* 80392610 0038F570 48 00 05 F4 */ b lbl_80392C04 +lbl_80392614: +/* 80392614 0038F574 3C 60 80 5B */ lis r3, lbl_805A8BA4@ha +/* 80392618 0038F578 C0 23 8B A4 */ lfs f1, lbl_805A8BA4@l(r3) +/* 8039261C 0038F57C 48 00 05 E8 */ b lbl_80392C04 +lbl_80392620: +/* 80392620 0038F580 C8 01 00 08 */ lfd f0, 8(r1) +/* 80392624 0038F584 28 0A 00 00 */ cmplwi r10, 0 +/* 80392628 0038F588 FC 20 02 10 */ fabs f1, f0 +/* 8039262C 0038F58C D8 21 00 48 */ stfd f1, 0x48(r1) +/* 80392630 0038F590 40 82 00 80 */ bne lbl_803926B0 +/* 80392634 0038F594 3D 06 80 10 */ addis r8, r6, 0x8010 +/* 80392638 0038F598 28 08 00 00 */ cmplwi r8, 0 +/* 8039263C 0038F59C 41 82 00 18 */ beq lbl_80392654 +/* 80392640 0038F5A0 2C 06 00 00 */ cmpwi r6, 0 +/* 80392644 0038F5A4 41 82 00 10 */ beq lbl_80392654 +/* 80392648 0038F5A8 3D 06 C0 10 */ addis r8, r6, 0xc010 +/* 8039264C 0038F5AC 28 08 00 00 */ cmplwi r8, 0 +/* 80392650 0038F5B0 40 82 00 60 */ bne lbl_803926B0 +lbl_80392654: +/* 80392654 0038F5B4 2C 05 00 00 */ cmpwi r5, 0 +/* 80392658 0038F5B8 D8 21 00 50 */ stfd f1, 0x50(r1) +/* 8039265C 0038F5BC 40 80 00 10 */ bge lbl_8039266C +/* 80392660 0038F5C0 C8 02 D2 10 */ lfd f0, lbl_805AEF30@sda21(r2) +/* 80392664 0038F5C4 FC 00 08 24 */ fdiv f0, f0, f1 +/* 80392668 0038F5C8 D8 01 00 50 */ stfd f0, 0x50(r1) +lbl_8039266C: +/* 8039266C 0038F5CC 2C 03 00 00 */ cmpwi r3, 0 +/* 80392670 0038F5D0 40 80 00 38 */ bge lbl_803926A8 +/* 80392674 0038F5D4 3C 06 C0 10 */ addis r0, r6, 0xc010 +/* 80392678 0038F5D8 7C 00 23 79 */ or. r0, r0, r4 +/* 8039267C 0038F5DC 40 82 00 18 */ bne lbl_80392694 +/* 80392680 0038F5E0 C8 01 00 50 */ lfd f0, 0x50(r1) +/* 80392684 0038F5E4 FC 00 00 28 */ fsub f0, f0, f0 +/* 80392688 0038F5E8 FC 00 00 24 */ fdiv f0, f0, f0 +/* 8039268C 0038F5EC D8 01 00 50 */ stfd f0, 0x50(r1) +/* 80392690 0038F5F0 48 00 00 18 */ b lbl_803926A8 +lbl_80392694: +/* 80392694 0038F5F4 2C 04 00 01 */ cmpwi r4, 1 +/* 80392698 0038F5F8 40 82 00 10 */ bne lbl_803926A8 +/* 8039269C 0038F5FC C8 01 00 50 */ lfd f0, 0x50(r1) +/* 803926A0 0038F600 FC 00 00 50 */ fneg f0, f0 +/* 803926A4 0038F604 D8 01 00 50 */ stfd f0, 0x50(r1) +lbl_803926A8: +/* 803926A8 0038F608 C8 21 00 50 */ lfd f1, 0x50(r1) +/* 803926AC 0038F60C 48 00 05 58 */ b lbl_80392C04 +lbl_803926B0: +/* 803926B0 0038F610 7C 63 FE 70 */ srawi r3, r3, 0x1f +/* 803926B4 0038F614 38 63 00 01 */ addi r3, r3, 1 +/* 803926B8 0038F618 7C 68 23 79 */ or. r8, r3, r4 +/* 803926BC 0038F61C 40 82 00 18 */ bne lbl_803926D4 +/* 803926C0 0038F620 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 803926C4 0038F624 38 00 00 21 */ li r0, 0x21 +/* 803926C8 0038F628 90 0D AE 10 */ stw r0, lbl_805A99D0@sda21(r13) +/* 803926CC 0038F62C C0 23 8B A0 */ lfs f1, lbl_805A8BA0@l(r3) +/* 803926D0 0038F630 48 00 05 34 */ b lbl_80392C04 +lbl_803926D4: +/* 803926D4 0038F634 3D 00 41 E0 */ lis r8, 0x41e0 +/* 803926D8 0038F638 7C 07 40 00 */ cmpw r7, r8 +/* 803926DC 0038F63C 40 81 01 04 */ ble lbl_803927E0 +/* 803926E0 0038F640 3C 00 43 F0 */ lis r0, 0x43f0 +/* 803926E4 0038F644 7C 07 00 00 */ cmpw r7, r0 +/* 803926E8 0038F648 40 81 00 4C */ ble lbl_80392734 +/* 803926EC 0038F64C 3C E0 3F F0 */ lis r7, 0x3FEFFFFF@ha +/* 803926F0 0038F650 38 07 FF FF */ addi r0, r7, 0x3FEFFFFF@l +/* 803926F4 0038F654 7C 06 00 00 */ cmpw r6, r0 +/* 803926F8 0038F658 41 81 00 1C */ bgt lbl_80392714 +/* 803926FC 0038F65C 2C 05 00 00 */ cmpwi r5, 0 +/* 80392700 0038F660 40 80 00 0C */ bge lbl_8039270C +/* 80392704 0038F664 C8 22 D2 30 */ lfd f1, lbl_805AEF50@sda21(r2) +/* 80392708 0038F668 48 00 04 FC */ b lbl_80392C04 +lbl_8039270C: +/* 8039270C 0038F66C C8 22 D2 18 */ lfd f1, lbl_805AEF38@sda21(r2) +/* 80392710 0038F670 48 00 04 F4 */ b lbl_80392C04 +lbl_80392714: +/* 80392714 0038F674 7C 06 38 00 */ cmpw r6, r7 +/* 80392718 0038F678 41 80 00 1C */ blt lbl_80392734 +/* 8039271C 0038F67C 2C 05 00 00 */ cmpwi r5, 0 +/* 80392720 0038F680 40 81 00 0C */ ble lbl_8039272C +/* 80392724 0038F684 C8 22 D2 30 */ lfd f1, lbl_805AEF50@sda21(r2) +/* 80392728 0038F688 48 00 04 DC */ b lbl_80392C04 +lbl_8039272C: +/* 8039272C 0038F68C C8 22 D2 18 */ lfd f1, lbl_805AEF38@sda21(r2) +/* 80392730 0038F690 48 00 04 D4 */ b lbl_80392C04 +lbl_80392734: +/* 80392734 0038F694 3C E0 3F F0 */ lis r7, 0x3FEFFFFF@ha +/* 80392738 0038F698 38 07 FF FF */ addi r0, r7, 0x3FEFFFFF@l +/* 8039273C 0038F69C 7C 06 00 00 */ cmpw r6, r0 +/* 80392740 0038F6A0 40 80 00 1C */ bge lbl_8039275C +/* 80392744 0038F6A4 2C 05 00 00 */ cmpwi r5, 0 +/* 80392748 0038F6A8 40 80 00 0C */ bge lbl_80392754 +/* 8039274C 0038F6AC C8 22 D2 30 */ lfd f1, lbl_805AEF50@sda21(r2) +/* 80392750 0038F6B0 48 00 04 B4 */ b lbl_80392C04 +lbl_80392754: +/* 80392754 0038F6B4 C8 22 D2 18 */ lfd f1, lbl_805AEF38@sda21(r2) +/* 80392758 0038F6B8 48 00 04 AC */ b lbl_80392C04 +lbl_8039275C: +/* 8039275C 0038F6BC 7C 06 38 00 */ cmpw r6, r7 +/* 80392760 0038F6C0 40 81 00 1C */ ble lbl_8039277C +/* 80392764 0038F6C4 2C 05 00 00 */ cmpwi r5, 0 +/* 80392768 0038F6C8 40 81 00 0C */ ble lbl_80392774 +/* 8039276C 0038F6CC C8 22 D2 30 */ lfd f1, lbl_805AEF50@sda21(r2) +/* 80392770 0038F6D0 48 00 04 94 */ b lbl_80392C04 +lbl_80392774: +/* 80392774 0038F6D4 C8 22 D2 18 */ lfd f1, lbl_805AEF38@sda21(r2) +/* 80392778 0038F6D8 48 00 04 8C */ b lbl_80392C04 +lbl_8039277C: +/* 8039277C 0038F6DC C8 41 00 08 */ lfd f2, 8(r1) +/* 80392780 0038F6E0 38 00 00 00 */ li r0, 0 +/* 80392784 0038F6E4 C8 02 D2 10 */ lfd f0, lbl_805AEF30@sda21(r2) +/* 80392788 0038F6E8 C8 22 D2 40 */ lfd f1, lbl_805AEF60@sda21(r2) +/* 8039278C 0038F6EC FC C2 00 28 */ fsub f6, f2, f0 +/* 80392790 0038F6F0 C8 02 D2 38 */ lfd f0, lbl_805AEF58@sda21(r2) +/* 80392794 0038F6F4 C8 42 D2 48 */ lfd f2, lbl_805AEF68@sda21(r2) +/* 80392798 0038F6F8 C8 62 D2 20 */ lfd f3, lbl_805AEF40@sda21(r2) +/* 8039279C 0038F6FC FC 81 01 BC */ fnmsub f4, f1, f6, f0 +/* 803927A0 0038F700 C8 02 D2 58 */ lfd f0, lbl_805AEF78@sda21(r2) +/* 803927A4 0038F704 C8 22 D2 50 */ lfd f1, lbl_805AEF70@sda21(r2) +/* 803927A8 0038F708 FC A6 01 B2 */ fmul f5, f6, f6 +/* 803927AC 0038F70C D8 C1 00 28 */ stfd f6, 0x28(r1) +/* 803927B0 0038F710 FC 66 19 3C */ fnmsub f3, f6, f4, f3 +/* 803927B4 0038F714 FC 42 01 B2 */ fmul f2, f2, f6 +/* 803927B8 0038F718 FC 65 00 F2 */ fmul f3, f5, f3 +/* 803927BC 0038F71C FC 00 00 F2 */ fmul f0, f0, f3 +/* 803927C0 0038F720 FC 21 01 B8 */ fmsub f1, f1, f6, f0 +/* 803927C4 0038F724 FC 02 08 2A */ fadd f0, f2, f1 +/* 803927C8 0038F728 D8 01 00 30 */ stfd f0, 0x30(r1) +/* 803927CC 0038F72C 90 01 00 34 */ stw r0, 0x34(r1) +/* 803927D0 0038F730 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 803927D4 0038F734 FC 00 10 28 */ fsub f0, f0, f2 +/* 803927D8 0038F738 FC 01 00 28 */ fsub f0, f1, f0 +/* 803927DC 0038F73C 48 00 01 E4 */ b lbl_803929C0 +lbl_803927E0: +/* 803927E0 0038F740 3C A0 00 10 */ lis r5, 0x10 +/* 803927E4 0038F744 39 40 00 00 */ li r10, 0 +/* 803927E8 0038F748 7C 06 28 00 */ cmpw r6, r5 +/* 803927EC 0038F74C 40 80 00 1C */ bge lbl_80392808 +/* 803927F0 0038F750 C8 21 00 48 */ lfd f1, 0x48(r1) +/* 803927F4 0038F754 39 40 FF CB */ li r10, -53 +/* 803927F8 0038F758 C8 02 D2 60 */ lfd f0, lbl_805AEF80@sda21(r2) +/* 803927FC 0038F75C FC 01 00 32 */ fmul f0, f1, f0 +/* 80392800 0038F760 D8 01 00 48 */ stfd f0, 0x48(r1) +/* 80392804 0038F764 80 C1 00 48 */ lwz r6, 0x48(r1) +lbl_80392808: +/* 80392808 0038F768 3C A0 00 04 */ lis r5, 0x0003988E@ha +/* 8039280C 0038F76C 54 C8 03 3E */ clrlwi r8, r6, 0xc +/* 80392810 0038F770 38 A5 98 8E */ addi r5, r5, 0x0003988E@l +/* 80392814 0038F774 7C C6 A6 70 */ srawi r6, r6, 0x14 +/* 80392818 0038F778 7C 08 28 00 */ cmpw r8, r5 +/* 8039281C 0038F77C 65 07 3F F0 */ oris r7, r8, 0x3ff0 +/* 80392820 0038F780 7D 46 52 14 */ add r10, r6, r10 +/* 80392824 0038F784 39 4A FC 01 */ addi r10, r10, -1023 +/* 80392828 0038F788 41 81 00 0C */ bgt lbl_80392834 +/* 8039282C 0038F78C 39 20 00 00 */ li r9, 0 +/* 80392830 0038F790 48 00 00 28 */ b lbl_80392858 +lbl_80392834: +/* 80392834 0038F794 3C A0 00 0C */ lis r5, 0x000BB67A@ha +/* 80392838 0038F798 38 A5 B6 7A */ addi r5, r5, 0x000BB67A@l +/* 8039283C 0038F79C 7C 08 28 00 */ cmpw r8, r5 +/* 80392840 0038F7A0 40 80 00 0C */ bge lbl_8039284C +/* 80392844 0038F7A4 39 20 00 01 */ li r9, 1 +/* 80392848 0038F7A8 48 00 00 10 */ b lbl_80392858 +lbl_8039284C: +/* 8039284C 0038F7AC 3C E7 FF F0 */ addis r7, r7, 0xfff0 +/* 80392850 0038F7B0 39 20 00 00 */ li r9, 0 +/* 80392854 0038F7B4 39 4A 00 01 */ addi r10, r10, 1 +lbl_80392858: +/* 80392858 0038F7B8 90 E1 00 48 */ stw r7, 0x48(r1) +/* 8039285C 0038F7BC 55 25 18 38 */ slwi r5, r9, 3 +/* 80392860 0038F7C0 7D 00 2A 14 */ add r8, r0, r5 +/* 80392864 0038F7C4 7C E0 0E 70 */ srawi r0, r7, 1 +/* 80392868 0038F7C8 C8 E1 00 48 */ lfd f7, 0x48(r1) +/* 8039286C 0038F7CC 64 06 20 00 */ oris r6, r0, 0x2000 +/* 80392870 0038F7D0 C8 C8 00 00 */ lfd f6, 0(r8) +/* 80392874 0038F7D4 6D 45 80 00 */ xoris r5, r10, 0x8000 +/* 80392878 0038F7D8 C8 02 D2 18 */ lfd f0, lbl_805AEF38@sda21(r2) +/* 8039287C 0038F7DC 3C 00 43 30 */ lis r0, 0x4330 +/* 80392880 0038F7E0 FC 27 30 2A */ fadd f1, f7, f6 +/* 80392884 0038F7E4 C8 42 D2 10 */ lfd f2, lbl_805AEF30@sda21(r2) +/* 80392888 0038F7E8 FD 67 30 28 */ fsub f11, f7, f6 +/* 8039288C 0038F7EC C8 A2 D2 90 */ lfd f5, lbl_805AEFB0@sda21(r2) +/* 80392890 0038F7F0 C8 82 D2 88 */ lfd f4, lbl_805AEFA8@sda21(r2) +/* 80392894 0038F7F4 3C E6 00 08 */ addis r7, r6, 8 +/* 80392898 0038F7F8 FF E2 08 24 */ fdiv f31, f2, f1 +/* 8039289C 0038F7FC 55 26 90 1A */ slwi r6, r9, 0x12 +/* 803928A0 0038F800 C8 62 D2 80 */ lfd f3, lbl_805AEFA0@sda21(r2) +/* 803928A4 0038F804 7C C7 32 14 */ add r6, r7, r6 +/* 803928A8 0038F808 D8 01 00 18 */ stfd f0, 0x18(r1) +/* 803928AC 0038F80C 38 E0 00 00 */ li r7, 0 +/* 803928B0 0038F810 FC 0B 07 F2 */ fmul f0, f11, f31 +/* 803928B4 0038F814 90 C1 00 18 */ stw r6, 0x18(r1) +/* 803928B8 0038F818 C8 42 D2 78 */ lfd f2, lbl_805AEF98@sda21(r2) +/* 803928BC 0038F81C C9 41 00 18 */ lfd f10, 0x18(r1) +/* 803928C0 0038F820 C8 22 D2 70 */ lfd f1, lbl_805AEF90@sda21(r2) +/* 803928C4 0038F824 FF A0 00 32 */ fmul f29, f0, f0 +/* 803928C8 0038F828 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803928CC 0038F82C FC CA 30 28 */ fsub f6, f10, f6 +/* 803928D0 0038F830 C9 02 D2 68 */ lfd f8, lbl_805AEF88@sda21(r2) +/* 803928D4 0038F834 90 E1 00 24 */ stw r7, 0x24(r1) +/* 803928D8 0038F838 FC A5 27 7A */ fmadd f5, f5, f29, f4 +/* 803928DC 0038F83C C9 A1 00 20 */ lfd f13, 0x20(r1) +/* 803928E0 0038F840 FD 87 30 28 */ fsub f12, f7, f6 +/* 803928E4 0038F844 C9 22 D2 28 */ lfd f9, lbl_805AEF48@sda21(r2) +/* 803928E8 0038F848 FC CD 5A BC */ fnmsub f6, f13, f10, f11 +/* 803928EC 0038F84C C8 82 D2 A8 */ lfd f4, lbl_805AEFC8@sda21(r2) +/* 803928F0 0038F850 FC 7D 19 7A */ fmadd f3, f29, f5, f3 +/* 803928F4 0038F854 C8 A2 D2 A0 */ lfd f5, lbl_805AEFC0@sda21(r2) +/* 803928F8 0038F858 C8 E2 D2 98 */ lfd f7, lbl_805AEFB8@sda21(r2) +/* 803928FC 0038F85C FD 8D 33 3C */ fnmsub f12, f13, f12, f6 +/* 80392900 0038F860 C8 C8 00 20 */ lfd f6, 0x20(r8) +/* 80392904 0038F864 FC 5D 10 FA */ fmadd f2, f29, f3, f2 +/* 80392908 0038F868 90 A1 00 5C */ stw r5, 0x5c(r1) +/* 8039290C 0038F86C FF CD 03 72 */ fmul f30, f13, f13 +/* 80392910 0038F870 C8 62 D3 18 */ lfd f3, lbl_805AF038@sda21(r2) +/* 80392914 0038F874 90 01 00 58 */ stw r0, 0x58(r1) +/* 80392918 0038F878 FD 5D 08 BA */ fmadd f10, f29, f2, f1 +/* 8039291C 0038F87C C8 41 00 58 */ lfd f2, 0x58(r1) +/* 80392920 0038F880 FD 7D 07 72 */ fmul f11, f29, f29 +/* 80392924 0038F884 C8 28 00 10 */ lfd f1, 0x10(r8) +/* 80392928 0038F888 FD 1D 42 BA */ fmadd f8, f29, f10, f8 +/* 8039292C 0038F88C FD 9F 03 32 */ fmul f12, f31, f12 +/* 80392930 0038F890 FD 6B 02 32 */ fmul f11, f11, f8 +/* 80392934 0038F894 FD 4D 00 2A */ fadd f10, f13, f0 +/* 80392938 0038F898 FD 09 F0 2A */ fadd f8, f9, f30 +/* 8039293C 0038F89C FC 42 18 28 */ fsub f2, f2, f3 +/* 80392940 0038F8A0 FD 6C 5A BA */ fmadd f11, f12, f10, f11 +/* 80392944 0038F8A4 D8 41 00 28 */ stfd f2, 0x28(r1) +/* 80392948 0038F8A8 FC 68 58 2A */ fadd f3, f8, f11 +/* 8039294C 0038F8AC D8 61 00 18 */ stfd f3, 0x18(r1) +/* 80392950 0038F8B0 90 E1 00 1C */ stw r7, 0x1c(r1) +/* 80392954 0038F8B4 C9 01 00 18 */ lfd f8, 0x18(r1) +/* 80392958 0038F8B8 FC 68 48 28 */ fsub f3, f8, f9 +/* 8039295C 0038F8BC FD 2D 02 32 */ fmul f9, f13, f8 +/* 80392960 0038F8C0 FC 63 F0 28 */ fsub f3, f3, f30 +/* 80392964 0038F8C4 FC 6B 18 28 */ fsub f3, f11, f3 +/* 80392968 0038F8C8 FC 03 00 32 */ fmul f0, f3, f0 +/* 8039296C 0038F8CC FD 0C 02 3A */ fmadd f8, f12, f8, f0 +/* 80392970 0038F8D0 FC 09 40 2A */ fadd f0, f9, f8 +/* 80392974 0038F8D4 D8 01 00 40 */ stfd f0, 0x40(r1) +/* 80392978 0038F8D8 90 E1 00 44 */ stw r7, 0x44(r1) +/* 8039297C 0038F8DC C8 61 00 40 */ lfd f3, 0x40(r1) +/* 80392980 0038F8E0 FC 03 48 28 */ fsub f0, f3, f9 +/* 80392984 0038F8E4 FC E7 00 F2 */ fmul f7, f7, f3 +/* 80392988 0038F8E8 FC 08 00 28 */ fsub f0, f8, f0 +/* 8039298C 0038F8EC FC 04 00 32 */ fmul f0, f4, f0 +/* 80392990 0038F8F0 FC 05 00 FA */ fmadd f0, f5, f3, f0 +/* 80392994 0038F8F4 FC 66 00 2A */ fadd f3, f6, f0 +/* 80392998 0038F8F8 FC 07 18 2A */ fadd f0, f7, f3 +/* 8039299C 0038F8FC FC 00 08 2A */ fadd f0, f0, f1 +/* 803929A0 0038F900 FC 02 00 2A */ fadd f0, f2, f0 +/* 803929A4 0038F904 D8 01 00 30 */ stfd f0, 0x30(r1) +/* 803929A8 0038F908 90 E1 00 34 */ stw r7, 0x34(r1) +/* 803929AC 0038F90C C8 01 00 30 */ lfd f0, 0x30(r1) +/* 803929B0 0038F910 FC 00 10 28 */ fsub f0, f0, f2 +/* 803929B4 0038F914 FC 00 08 28 */ fsub f0, f0, f1 +/* 803929B8 0038F918 FC 00 38 28 */ fsub f0, f0, f7 +/* 803929BC 0038F91C FC 03 00 28 */ fsub f0, f3, f0 +lbl_803929C0: +/* 803929C0 0038F920 38 04 FF FF */ addi r0, r4, -1 +/* 803929C4 0038F924 CB E2 D2 10 */ lfd f31, lbl_805AEF30@sda21(r2) +/* 803929C8 0038F928 7C 60 03 79 */ or. r0, r3, r0 +/* 803929CC 0038F92C 40 82 00 08 */ bne lbl_803929D4 +/* 803929D0 0038F930 CB E2 D2 B0 */ lfd f31, lbl_805AEFD0@sda21(r2) +lbl_803929D4: +/* 803929D4 0038F934 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 803929D8 0038F938 38 60 00 00 */ li r3, 0 +/* 803929DC 0038F93C C8 61 00 30 */ lfd f3, 0x30(r1) +/* 803929E0 0038F940 3C 00 40 90 */ lis r0, 0x4090 +/* 803929E4 0038F944 D8 21 00 38 */ stfd f1, 0x38(r1) +/* 803929E8 0038F948 FC 01 00 32 */ fmul f0, f1, f0 +/* 803929EC 0038F94C 90 61 00 3C */ stw r3, 0x3c(r1) +/* 803929F0 0038F950 C8 41 00 38 */ lfd f2, 0x38(r1) +/* 803929F4 0038F954 FC 21 10 28 */ fsub f1, f1, f2 +/* 803929F8 0038F958 FC 42 00 F2 */ fmul f2, f2, f3 +/* 803929FC 0038F95C FD 83 00 7A */ fmadd f12, f3, f1, f0 +/* 80392A00 0038F960 D8 41 00 40 */ stfd f2, 0x40(r1) +/* 80392A04 0038F964 FC 0C 10 2A */ fadd f0, f12, f2 +/* 80392A08 0038F968 D8 01 00 50 */ stfd f0, 0x50(r1) +/* 80392A0C 0038F96C 80 C1 00 50 */ lwz r6, 0x50(r1) +/* 80392A10 0038F970 80 A1 00 54 */ lwz r5, 0x54(r1) +/* 80392A14 0038F974 7C 06 00 00 */ cmpw r6, r0 +/* 80392A18 0038F978 41 80 00 44 */ blt lbl_80392A5C +/* 80392A1C 0038F97C 3C 06 BF 70 */ addis r0, r6, 0xbf70 +/* 80392A20 0038F980 7C 00 2B 79 */ or. r0, r0, r5 +/* 80392A24 0038F984 41 82 00 14 */ beq lbl_80392A38 +/* 80392A28 0038F988 C8 22 D2 B8 */ lfd f1, lbl_805AEFD8@sda21(r2) +/* 80392A2C 0038F98C FC 01 07 F2 */ fmul f0, f1, f31 +/* 80392A30 0038F990 FC 21 00 32 */ fmul f1, f1, f0 +/* 80392A34 0038F994 48 00 01 D0 */ b lbl_80392C04 +lbl_80392A38: +/* 80392A38 0038F998 C8 22 D2 C0 */ lfd f1, lbl_805AEFE0@sda21(r2) +/* 80392A3C 0038F99C FC 00 10 28 */ fsub f0, f0, f2 +/* 80392A40 0038F9A0 FC 21 60 2A */ fadd f1, f1, f12 +/* 80392A44 0038F9A4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80392A48 0038F9A8 40 81 00 68 */ ble lbl_80392AB0 +/* 80392A4C 0038F9AC C8 22 D2 B8 */ lfd f1, lbl_805AEFD8@sda21(r2) +/* 80392A50 0038F9B0 FC 01 07 F2 */ fmul f0, f1, f31 +/* 80392A54 0038F9B4 FC 21 00 32 */ fmul f1, f1, f0 +/* 80392A58 0038F9B8 48 00 01 AC */ b lbl_80392C04 +lbl_80392A5C: +/* 80392A5C 0038F9BC 3C 60 40 91 */ lis r3, 0x4090CC00@ha +/* 80392A60 0038F9C0 54 C4 00 7E */ clrlwi r4, r6, 1 +/* 80392A64 0038F9C4 38 03 CC 00 */ addi r0, r3, 0x4090CC00@l +/* 80392A68 0038F9C8 7C 04 00 00 */ cmpw r4, r0 +/* 80392A6C 0038F9CC 41 80 00 44 */ blt lbl_80392AB0 +/* 80392A70 0038F9D0 3C 66 3F 6F */ addis r3, r6, 0x3f6f +/* 80392A74 0038F9D4 38 03 34 00 */ addi r0, r3, 0x3400 +/* 80392A78 0038F9D8 7C 00 2B 79 */ or. r0, r0, r5 +/* 80392A7C 0038F9DC 41 82 00 14 */ beq lbl_80392A90 +/* 80392A80 0038F9E0 C8 22 D2 C8 */ lfd f1, lbl_805AEFE8@sda21(r2) +/* 80392A84 0038F9E4 FC 01 07 F2 */ fmul f0, f1, f31 +/* 80392A88 0038F9E8 FC 21 00 32 */ fmul f1, f1, f0 +/* 80392A8C 0038F9EC 48 00 01 78 */ b lbl_80392C04 +lbl_80392A90: +/* 80392A90 0038F9F0 FC 00 10 28 */ fsub f0, f0, f2 +/* 80392A94 0038F9F4 FC 0C 00 40 */ fcmpo cr0, f12, f0 +/* 80392A98 0038F9F8 4C 40 13 82 */ cror 2, 0, 2 +/* 80392A9C 0038F9FC 40 82 00 14 */ bne lbl_80392AB0 +/* 80392AA0 0038FA00 C8 22 D2 C8 */ lfd f1, lbl_805AEFE8@sda21(r2) +/* 80392AA4 0038FA04 FC 01 07 F2 */ fmul f0, f1, f31 +/* 80392AA8 0038FA08 FC 21 00 32 */ fmul f1, f1, f0 +/* 80392AAC 0038FA0C 48 00 01 58 */ b lbl_80392C04 +lbl_80392AB0: +/* 80392AB0 0038FA10 54 C3 00 7E */ clrlwi r3, r6, 1 +/* 80392AB4 0038FA14 3C 00 3F E0 */ lis r0, 0x3fe0 +/* 80392AB8 0038FA18 7C 03 00 00 */ cmpw r3, r0 +/* 80392ABC 0038FA1C 54 C4 65 7E */ rlwinm r4, r6, 0xc, 0x15, 0x1f +/* 80392AC0 0038FA20 38 60 00 00 */ li r3, 0 +/* 80392AC4 0038FA24 40 81 00 64 */ ble lbl_80392B28 +/* 80392AC8 0038FA28 3C 60 00 10 */ lis r3, 0x000FFFFF@ha +/* 80392ACC 0038FA2C 38 04 FC 02 */ addi r0, r4, -1022 +/* 80392AD0 0038FA30 7C 60 06 30 */ sraw r0, r3, r0 +/* 80392AD4 0038FA34 C8 02 D2 18 */ lfd f0, lbl_805AEF38@sda21(r2) +/* 80392AD8 0038FA38 7C E6 02 14 */ add r7, r6, r0 +/* 80392ADC 0038FA3C 38 63 FF FF */ addi r3, r3, 0x000FFFFF@l +/* 80392AE0 0038FA40 54 E0 00 7E */ clrlwi r0, r7, 1 +/* 80392AE4 0038FA44 D8 01 00 28 */ stfd f0, 0x28(r1) +/* 80392AE8 0038FA48 7C 04 A6 70 */ srawi r4, r0, 0x14 +/* 80392AEC 0038FA4C 54 E0 03 3E */ clrlwi r0, r7, 0xc +/* 80392AF0 0038FA50 38 A4 FC 01 */ addi r5, r4, -1023 +/* 80392AF4 0038FA54 2C 06 00 00 */ cmpwi r6, 0 +/* 80392AF8 0038FA58 7C 64 2E 30 */ sraw r4, r3, r5 +/* 80392AFC 0038FA5C 64 03 00 10 */ oris r3, r0, 0x10 +/* 80392B00 0038FA60 7C E4 20 78 */ andc r4, r7, r4 +/* 80392B04 0038FA64 20 05 00 14 */ subfic r0, r5, 0x14 +/* 80392B08 0038FA68 90 81 00 28 */ stw r4, 0x28(r1) +/* 80392B0C 0038FA6C 7C 63 06 30 */ sraw r3, r3, r0 +/* 80392B10 0038FA70 40 80 00 08 */ bge lbl_80392B18 +/* 80392B14 0038FA74 7C 63 00 D0 */ neg r3, r3 +lbl_80392B18: +/* 80392B18 0038FA78 C8 21 00 40 */ lfd f1, 0x40(r1) +/* 80392B1C 0038FA7C C8 01 00 28 */ lfd f0, 0x28(r1) +/* 80392B20 0038FA80 FC 01 00 28 */ fsub f0, f1, f0 +/* 80392B24 0038FA84 D8 01 00 40 */ stfd f0, 0x40(r1) +lbl_80392B28: +/* 80392B28 0038FA88 C8 41 00 40 */ lfd f2, 0x40(r1) +/* 80392B2C 0038FA8C 38 00 00 00 */ li r0, 0 +/* 80392B30 0038FA90 C8 22 D2 E0 */ lfd f1, lbl_805AF000@sda21(r2) +/* 80392B34 0038FA94 54 64 A0 16 */ slwi r4, r3, 0x14 +/* 80392B38 0038FA98 FC 0C 10 2A */ fadd f0, f12, f2 +/* 80392B3C 0038FA9C C9 42 D2 D0 */ lfd f10, lbl_805AEFF0@sda21(r2) +/* 80392B40 0038FAA0 C9 22 D2 D8 */ lfd f9, lbl_805AEFF8@sda21(r2) +/* 80392B44 0038FAA4 C8 C2 D3 08 */ lfd f6, lbl_805AF028@sda21(r2) +/* 80392B48 0038FAA8 D8 01 00 28 */ stfd f0, 0x28(r1) +/* 80392B4C 0038FAAC C8 A2 D3 00 */ lfd f5, lbl_805AF020@sda21(r2) +/* 80392B50 0038FAB0 90 01 00 2C */ stw r0, 0x2c(r1) +/* 80392B54 0038FAB4 C8 02 D2 F8 */ lfd f0, lbl_805AF018@sda21(r2) +/* 80392B58 0038FAB8 C9 61 00 28 */ lfd f11, 0x28(r1) +/* 80392B5C 0038FABC C8 82 D2 F0 */ lfd f4, lbl_805AF010@sda21(r2) +/* 80392B60 0038FAC0 FD 0B 10 28 */ fsub f8, f11, f2 +/* 80392B64 0038FAC4 C8 62 D2 E8 */ lfd f3, lbl_805AF008@sda21(r2) +/* 80392B68 0038FAC8 FC E1 02 F2 */ fmul f7, f1, f11 +/* 80392B6C 0038FACC C8 42 D3 10 */ lfd f2, lbl_805AF030@sda21(r2) +/* 80392B70 0038FAD0 C8 22 D2 10 */ lfd f1, lbl_805AEF30@sda21(r2) +/* 80392B74 0038FAD4 FD 0C 40 28 */ fsub f8, f12, f8 +/* 80392B78 0038FAD8 FD 4A 02 F2 */ fmul f10, f10, f11 +/* 80392B7C 0038FADC FD 69 3A 3A */ fmadd f11, f9, f8, f7 +/* 80392B80 0038FAE0 FD 2A 58 2A */ fadd f9, f10, f11 +/* 80392B84 0038FAE4 FC E9 02 72 */ fmul f7, f9, f9 +/* 80392B88 0038FAE8 D9 21 00 50 */ stfd f9, 0x50(r1) +/* 80392B8C 0038FAEC FD 09 50 28 */ fsub f8, f9, f10 +/* 80392B90 0038FAF0 FC A6 29 FA */ fmadd f5, f6, f7, f5 +/* 80392B94 0038FAF4 D8 E1 00 28 */ stfd f7, 0x28(r1) +/* 80392B98 0038FAF8 FC CB 40 28 */ fsub f6, f11, f8 +/* 80392B9C 0038FAFC FC A7 01 7A */ fmadd f5, f7, f5, f0 +/* 80392BA0 0038FB00 FC 09 31 BA */ fmadd f0, f9, f6, f6 +/* 80392BA4 0038FB04 FC 87 21 7A */ fmadd f4, f7, f5, f4 +/* 80392BA8 0038FB08 FC 67 19 3A */ fmadd f3, f7, f4, f3 +/* 80392BAC 0038FB0C FC 67 00 F2 */ fmul f3, f7, f3 +/* 80392BB0 0038FB10 FC 89 18 28 */ fsub f4, f9, f3 +/* 80392BB4 0038FB14 FC 69 01 32 */ fmul f3, f9, f4 +/* 80392BB8 0038FB18 D8 81 00 30 */ stfd f4, 0x30(r1) +/* 80392BBC 0038FB1C FC 44 10 28 */ fsub f2, f4, f2 +/* 80392BC0 0038FB20 FC 43 10 24 */ fdiv f2, f3, f2 +/* 80392BC4 0038FB24 FC 02 00 28 */ fsub f0, f2, f0 +/* 80392BC8 0038FB28 FC 00 48 28 */ fsub f0, f0, f9 +/* 80392BCC 0038FB2C FC 21 00 28 */ fsub f1, f1, f0 +/* 80392BD0 0038FB30 D8 21 00 50 */ stfd f1, 0x50(r1) +/* 80392BD4 0038FB34 80 01 00 50 */ lwz r0, 0x50(r1) +/* 80392BD8 0038FB38 7C 00 22 14 */ add r0, r0, r4 +/* 80392BDC 0038FB3C 7C 00 A6 71 */ srawi. r0, r0, 0x14 +/* 80392BE0 0038FB40 41 81 00 10 */ bgt lbl_80392BF0 +/* 80392BE4 0038FB44 48 00 1A B5 */ bl ldexp +/* 80392BE8 0038FB48 D8 21 00 50 */ stfd f1, 0x50(r1) +/* 80392BEC 0038FB4C 48 00 00 10 */ b lbl_80392BFC +lbl_80392BF0: +/* 80392BF0 0038FB50 80 01 00 50 */ lwz r0, 0x50(r1) +/* 80392BF4 0038FB54 7C 00 22 14 */ add r0, r0, r4 +/* 80392BF8 0038FB58 90 01 00 50 */ stw r0, 0x50(r1) +lbl_80392BFC: +/* 80392BFC 0038FB5C C8 01 00 50 */ lfd f0, 0x50(r1) +/* 80392C00 0038FB60 FC 3F 00 32 */ fmul f1, f31, f0 +lbl_80392C04: +/* 80392C04 0038FB64 E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0 +/* 80392C08 0038FB68 CB E1 00 80 */ lfd f31, 0x80(r1) +/* 80392C0C 0038FB6C E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0 +/* 80392C10 0038FB70 CB C1 00 70 */ lfd f30, 0x70(r1) +/* 80392C14 0038FB74 E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0 +/* 80392C18 0038FB78 80 01 00 94 */ lwz r0, 0x94(r1) +/* 80392C1C 0038FB7C CB A1 00 60 */ lfd f29, 0x60(r1) +/* 80392C20 0038FB80 7C 08 03 A6 */ mtlr r0 +/* 80392C24 0038FB84 38 21 00 90 */ addi r1, r1, 0x90 +/* 80392C28 0038FB88 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/e_rem_pio2.s b/asm/Runtime/PPCEABI/H/e_rem_pio2.s new file mode 100644 index 00000000..136e76ba --- /dev/null +++ b/asm/Runtime/PPCEABI/H/e_rem_pio2.s @@ -0,0 +1,252 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __ieee754_rem_pio2 +__ieee754_rem_pio2: +/* 80392C2C 0038FB8C 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 80392C30 0038FB90 7C 08 02 A6 */ mflr r0 +/* 80392C34 0038FB94 3C 80 3F E9 */ lis r4, 0x3FE921FB@ha +/* 80392C38 0038FB98 90 01 00 64 */ stw r0, 0x64(r1) +/* 80392C3C 0038FB9C 38 04 21 FB */ addi r0, r4, 0x3FE921FB@l +/* 80392C40 0038FBA0 93 E1 00 5C */ stw r31, 0x5c(r1) +/* 80392C44 0038FBA4 D8 21 00 08 */ stfd f1, 8(r1) +/* 80392C48 0038FBA8 83 E1 00 08 */ lwz r31, 8(r1) +/* 80392C4C 0038FBAC 93 C1 00 58 */ stw r30, 0x58(r1) +/* 80392C50 0038FBB0 7C 7E 1B 78 */ mr r30, r3 +/* 80392C54 0038FBB4 57 E6 00 7E */ clrlwi r6, r31, 1 +/* 80392C58 0038FBB8 7C 06 00 00 */ cmpw r6, r0 +/* 80392C5C 0038FBBC 41 81 00 18 */ bgt lbl_80392C74 +/* 80392C60 0038FBC0 D8 3E 00 00 */ stfd f1, 0(r30) +/* 80392C64 0038FBC4 38 60 00 00 */ li r3, 0 +/* 80392C68 0038FBC8 C8 02 D3 20 */ lfd f0, lbl_805AF040@sda21(r2) +/* 80392C6C 0038FBCC D8 1E 00 08 */ stfd f0, 8(r30) +/* 80392C70 0038FBD0 48 00 03 44 */ b lbl_80392FB4 +lbl_80392C74: +/* 80392C74 0038FBD4 3C 60 40 03 */ lis r3, 0x4002D97C@ha +/* 80392C78 0038FBD8 38 03 D9 7C */ addi r0, r3, 0x4002D97C@l +/* 80392C7C 0038FBDC 7C 06 00 00 */ cmpw r6, r0 +/* 80392C80 0038FBE0 40 80 00 DC */ bge lbl_80392D5C +/* 80392C84 0038FBE4 2C 1F 00 00 */ cmpwi r31, 0 +/* 80392C88 0038FBE8 40 81 00 6C */ ble lbl_80392CF4 +/* 80392C8C 0038FBEC C8 02 D3 28 */ lfd f0, lbl_805AF048@sda21(r2) +/* 80392C90 0038FBF0 3C 06 C0 07 */ addis r0, r6, 0xc007 +/* 80392C94 0038FBF4 28 00 21 FB */ cmplwi r0, 0x21fb +/* 80392C98 0038FBF8 FC 41 00 28 */ fsub f2, f1, f0 +/* 80392C9C 0038FBFC D8 41 00 10 */ stfd f2, 0x10(r1) +/* 80392CA0 0038FC00 41 82 00 24 */ beq lbl_80392CC4 +/* 80392CA4 0038FC04 C8 22 D3 30 */ lfd f1, lbl_805AF050@sda21(r2) +/* 80392CA8 0038FC08 FC 02 08 28 */ fsub f0, f2, f1 +/* 80392CAC 0038FC0C D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392CB0 0038FC10 C8 1E 00 00 */ lfd f0, 0(r30) +/* 80392CB4 0038FC14 FC 02 00 28 */ fsub f0, f2, f0 +/* 80392CB8 0038FC18 FC 00 08 28 */ fsub f0, f0, f1 +/* 80392CBC 0038FC1C D8 1E 00 08 */ stfd f0, 8(r30) +/* 80392CC0 0038FC20 48 00 00 2C */ b lbl_80392CEC +lbl_80392CC4: +/* 80392CC4 0038FC24 C8 02 D3 38 */ lfd f0, lbl_805AF058@sda21(r2) +/* 80392CC8 0038FC28 C8 22 D3 40 */ lfd f1, lbl_805AF060@sda21(r2) +/* 80392CCC 0038FC2C FC 42 00 28 */ fsub f2, f2, f0 +/* 80392CD0 0038FC30 FC 02 08 28 */ fsub f0, f2, f1 +/* 80392CD4 0038FC34 D8 41 00 10 */ stfd f2, 0x10(r1) +/* 80392CD8 0038FC38 D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392CDC 0038FC3C C8 1E 00 00 */ lfd f0, 0(r30) +/* 80392CE0 0038FC40 FC 02 00 28 */ fsub f0, f2, f0 +/* 80392CE4 0038FC44 FC 00 08 28 */ fsub f0, f0, f1 +/* 80392CE8 0038FC48 D8 1E 00 08 */ stfd f0, 8(r30) +lbl_80392CEC: +/* 80392CEC 0038FC4C 38 60 00 01 */ li r3, 1 +/* 80392CF0 0038FC50 48 00 02 C4 */ b lbl_80392FB4 +lbl_80392CF4: +/* 80392CF4 0038FC54 C8 02 D3 28 */ lfd f0, lbl_805AF048@sda21(r2) +/* 80392CF8 0038FC58 3C 06 C0 07 */ addis r0, r6, 0xc007 +/* 80392CFC 0038FC5C 28 00 21 FB */ cmplwi r0, 0x21fb +/* 80392D00 0038FC60 FC 40 08 2A */ fadd f2, f0, f1 +/* 80392D04 0038FC64 D8 41 00 10 */ stfd f2, 0x10(r1) +/* 80392D08 0038FC68 41 82 00 24 */ beq lbl_80392D2C +/* 80392D0C 0038FC6C C8 22 D3 30 */ lfd f1, lbl_805AF050@sda21(r2) +/* 80392D10 0038FC70 FC 01 10 2A */ fadd f0, f1, f2 +/* 80392D14 0038FC74 D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392D18 0038FC78 C8 1E 00 00 */ lfd f0, 0(r30) +/* 80392D1C 0038FC7C FC 02 00 28 */ fsub f0, f2, f0 +/* 80392D20 0038FC80 FC 01 00 2A */ fadd f0, f1, f0 +/* 80392D24 0038FC84 D8 1E 00 08 */ stfd f0, 8(r30) +/* 80392D28 0038FC88 48 00 00 2C */ b lbl_80392D54 +lbl_80392D2C: +/* 80392D2C 0038FC8C C8 02 D3 38 */ lfd f0, lbl_805AF058@sda21(r2) +/* 80392D30 0038FC90 C8 22 D3 40 */ lfd f1, lbl_805AF060@sda21(r2) +/* 80392D34 0038FC94 FC 42 00 2A */ fadd f2, f2, f0 +/* 80392D38 0038FC98 FC 01 10 2A */ fadd f0, f1, f2 +/* 80392D3C 0038FC9C D8 41 00 10 */ stfd f2, 0x10(r1) +/* 80392D40 0038FCA0 D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392D44 0038FCA4 C8 1E 00 00 */ lfd f0, 0(r30) +/* 80392D48 0038FCA8 FC 02 00 28 */ fsub f0, f2, f0 +/* 80392D4C 0038FCAC FC 01 00 2A */ fadd f0, f1, f0 +/* 80392D50 0038FCB0 D8 1E 00 08 */ stfd f0, 8(r30) +lbl_80392D54: +/* 80392D54 0038FCB4 38 60 FF FF */ li r3, -1 +/* 80392D58 0038FCB8 48 00 02 5C */ b lbl_80392FB4 +lbl_80392D5C: +/* 80392D5C 0038FCBC 3C 60 41 39 */ lis r3, 0x413921FB@ha +/* 80392D60 0038FCC0 38 03 21 FB */ addi r0, r3, 0x413921FB@l +/* 80392D64 0038FCC4 7C 06 00 00 */ cmpw r6, r0 +/* 80392D68 0038FCC8 41 81 01 3C */ bgt lbl_80392EA4 +/* 80392D6C 0038FCCC FC 80 0A 10 */ fabs f4, f1 +/* 80392D70 0038FCD0 3C 00 43 30 */ lis r0, 0x4330 +/* 80392D74 0038FCD4 C8 22 D3 50 */ lfd f1, lbl_805AF070@sda21(r2) +/* 80392D78 0038FCD8 C8 02 D3 48 */ lfd f0, lbl_805AF068@sda21(r2) +/* 80392D7C 0038FCDC 90 01 00 38 */ stw r0, 0x38(r1) +/* 80392D80 0038FCE0 FC 41 01 3A */ fmadd f2, f1, f4, f0 +/* 80392D84 0038FCE4 C8 62 D3 70 */ lfd f3, lbl_805AF090@sda21(r2) +/* 80392D88 0038FCE8 C8 22 D3 28 */ lfd f1, lbl_805AF048@sda21(r2) +/* 80392D8C 0038FCEC C8 02 D3 30 */ lfd f0, lbl_805AF050@sda21(r2) +/* 80392D90 0038FCF0 FC 40 10 1E */ fctiwz f2, f2 +/* 80392D94 0038FCF4 D8 41 00 30 */ stfd f2, 0x30(r1) +/* 80392D98 0038FCF8 80 61 00 34 */ lwz r3, 0x34(r1) +/* 80392D9C 0038FCFC 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 80392DA0 0038FD00 2C 03 00 20 */ cmpwi r3, 0x20 +/* 80392DA4 0038FD04 90 01 00 3C */ stw r0, 0x3c(r1) +/* 80392DA8 0038FD08 C8 41 00 38 */ lfd f2, 0x38(r1) +/* 80392DAC 0038FD0C FC A2 18 28 */ fsub f5, f2, f3 +/* 80392DB0 0038FD10 FC 81 21 7C */ fnmsub f4, f1, f5, f4 +/* 80392DB4 0038FD14 FC 20 01 72 */ fmul f1, f0, f5 +/* 80392DB8 0038FD18 40 80 00 2C */ bge lbl_80392DE4 +/* 80392DBC 0038FD1C 3C 80 80 3E */ lis r4, lbl_803D8898@ha +/* 80392DC0 0038FD20 54 60 10 3A */ slwi r0, r3, 2 +/* 80392DC4 0038FD24 38 84 88 98 */ addi r4, r4, lbl_803D8898@l +/* 80392DC8 0038FD28 7C 84 02 14 */ add r4, r4, r0 +/* 80392DCC 0038FD2C 80 04 FF FC */ lwz r0, -4(r4) +/* 80392DD0 0038FD30 7C 06 00 00 */ cmpw r6, r0 +/* 80392DD4 0038FD34 41 82 00 10 */ beq lbl_80392DE4 +/* 80392DD8 0038FD38 FC 04 08 28 */ fsub f0, f4, f1 +/* 80392DDC 0038FD3C D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392DE0 0038FD40 48 00 00 88 */ b lbl_80392E68 +lbl_80392DE4: +/* 80392DE4 0038FD44 FC 04 08 28 */ fsub f0, f4, f1 +/* 80392DE8 0038FD48 7C C4 A6 70 */ srawi r4, r6, 0x14 +/* 80392DEC 0038FD4C D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392DF0 0038FD50 80 1E 00 00 */ lwz r0, 0(r30) +/* 80392DF4 0038FD54 54 00 65 7E */ rlwinm r0, r0, 0xc, 0x15, 0x1f +/* 80392DF8 0038FD58 7C 00 20 50 */ subf r0, r0, r4 +/* 80392DFC 0038FD5C 2C 00 00 10 */ cmpwi r0, 0x10 +/* 80392E00 0038FD60 40 81 00 68 */ ble lbl_80392E68 +/* 80392E04 0038FD64 C8 02 D3 38 */ lfd f0, lbl_805AF058@sda21(r2) +/* 80392E08 0038FD68 FC 60 20 90 */ fmr f3, f4 +/* 80392E0C 0038FD6C C8 22 D3 40 */ lfd f1, lbl_805AF060@sda21(r2) +/* 80392E10 0038FD70 FC 40 01 72 */ fmul f2, f0, f5 +/* 80392E14 0038FD74 FC 84 10 28 */ fsub f4, f4, f2 +/* 80392E18 0038FD78 FC 03 20 28 */ fsub f0, f3, f4 +/* 80392E1C 0038FD7C FC 00 10 28 */ fsub f0, f0, f2 +/* 80392E20 0038FD80 FC 21 01 78 */ fmsub f1, f1, f5, f0 +/* 80392E24 0038FD84 FC 04 08 28 */ fsub f0, f4, f1 +/* 80392E28 0038FD88 D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392E2C 0038FD8C 80 1E 00 00 */ lwz r0, 0(r30) +/* 80392E30 0038FD90 54 00 65 7E */ rlwinm r0, r0, 0xc, 0x15, 0x1f +/* 80392E34 0038FD94 7C 00 20 50 */ subf r0, r0, r4 +/* 80392E38 0038FD98 2C 00 00 31 */ cmpwi r0, 0x31 +/* 80392E3C 0038FD9C 40 81 00 2C */ ble lbl_80392E68 +/* 80392E40 0038FDA0 C8 02 D3 58 */ lfd f0, lbl_805AF078@sda21(r2) +/* 80392E44 0038FDA4 FC 40 20 90 */ fmr f2, f4 +/* 80392E48 0038FDA8 C8 22 D3 60 */ lfd f1, lbl_805AF080@sda21(r2) +/* 80392E4C 0038FDAC FC 60 01 72 */ fmul f3, f0, f5 +/* 80392E50 0038FDB0 FC 84 18 28 */ fsub f4, f4, f3 +/* 80392E54 0038FDB4 FC 02 20 28 */ fsub f0, f2, f4 +/* 80392E58 0038FDB8 FC 00 18 28 */ fsub f0, f0, f3 +/* 80392E5C 0038FDBC FC 21 01 78 */ fmsub f1, f1, f5, f0 +/* 80392E60 0038FDC0 FC 04 08 28 */ fsub f0, f4, f1 +/* 80392E64 0038FDC4 D8 1E 00 00 */ stfd f0, 0(r30) +lbl_80392E68: +/* 80392E68 0038FDC8 C8 1E 00 00 */ lfd f0, 0(r30) +/* 80392E6C 0038FDCC 2C 1F 00 00 */ cmpwi r31, 0 +/* 80392E70 0038FDD0 FC 04 00 28 */ fsub f0, f4, f0 +/* 80392E74 0038FDD4 FC 00 08 28 */ fsub f0, f0, f1 +/* 80392E78 0038FDD8 D8 1E 00 08 */ stfd f0, 8(r30) +/* 80392E7C 0038FDDC 40 80 01 38 */ bge lbl_80392FB4 +/* 80392E80 0038FDE0 C8 1E 00 00 */ lfd f0, 0(r30) +/* 80392E84 0038FDE4 7C 63 00 D0 */ neg r3, r3 +/* 80392E88 0038FDE8 FC 00 00 50 */ fneg f0, f0 +/* 80392E8C 0038FDEC D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392E90 0038FDF0 C8 1E 00 08 */ lfd f0, 8(r30) +/* 80392E94 0038FDF4 FC 00 00 50 */ fneg f0, f0 +/* 80392E98 0038FDF8 D8 1E 00 08 */ stfd f0, 8(r30) +/* 80392E9C 0038FDFC 48 00 01 18 */ b lbl_80392FB4 +/* 80392EA0 0038FE00 48 00 01 14 */ b lbl_80392FB4 +lbl_80392EA4: +/* 80392EA4 0038FE04 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80392EA8 0038FE08 7C 06 00 00 */ cmpw r6, r0 +/* 80392EAC 0038FE0C 41 80 00 18 */ blt lbl_80392EC4 +/* 80392EB0 0038FE10 FC 01 08 28 */ fsub f0, f1, f1 +/* 80392EB4 0038FE14 38 60 00 00 */ li r3, 0 +/* 80392EB8 0038FE18 D8 1E 00 08 */ stfd f0, 8(r30) +/* 80392EBC 0038FE1C D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392EC0 0038FE20 48 00 00 F4 */ b lbl_80392FB4 +lbl_80392EC4: +/* 80392EC4 0038FE24 7C C3 A6 70 */ srawi r3, r6, 0x14 +/* 80392EC8 0038FE28 3C 00 43 30 */ lis r0, 0x4330 +/* 80392ECC 0038FE2C 38 A3 FB EA */ addi r5, r3, -1046 +/* 80392ED0 0038FE30 80 81 00 0C */ lwz r4, 0xc(r1) +/* 80392ED4 0038FE34 54 A3 A0 16 */ slwi r3, r5, 0x14 +/* 80392ED8 0038FE38 90 01 00 30 */ stw r0, 0x30(r1) +/* 80392EDC 0038FE3C 7C 63 30 50 */ subf r3, r3, r6 +/* 80392EE0 0038FE40 C8 A2 D3 70 */ lfd f5, lbl_805AF090@sda21(r2) +/* 80392EE4 0038FE44 90 81 00 14 */ stw r4, 0x14(r1) +/* 80392EE8 0038FE48 38 81 00 30 */ addi r4, r1, 0x30 +/* 80392EEC 0038FE4C C8 82 D3 68 */ lfd f4, lbl_805AF088@sda21(r2) +/* 80392EF0 0038FE50 38 C0 00 03 */ li r6, 3 +/* 80392EF4 0038FE54 90 61 00 10 */ stw r3, 0x10(r1) +/* 80392EF8 0038FE58 C8 22 D3 20 */ lfd f1, lbl_805AF040@sda21(r2) +/* 80392EFC 0038FE5C C8 61 00 10 */ lfd f3, 0x10(r1) +/* 80392F00 0038FE60 90 01 00 48 */ stw r0, 0x48(r1) +/* 80392F04 0038FE64 FC 00 18 1E */ fctiwz f0, f3 +/* 80392F08 0038FE68 D8 01 00 38 */ stfd f0, 0x38(r1) +/* 80392F0C 0038FE6C 80 01 00 3C */ lwz r0, 0x3c(r1) +/* 80392F10 0038FE70 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80392F14 0038FE74 90 01 00 34 */ stw r0, 0x34(r1) +/* 80392F18 0038FE78 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 80392F1C 0038FE7C FC 40 28 28 */ fsub f2, f0, f5 +/* 80392F20 0038FE80 FC 03 10 28 */ fsub f0, f3, f2 +/* 80392F24 0038FE84 D8 41 00 18 */ stfd f2, 0x18(r1) +/* 80392F28 0038FE88 FC 64 00 32 */ fmul f3, f4, f0 +/* 80392F2C 0038FE8C FC 00 18 1E */ fctiwz f0, f3 +/* 80392F30 0038FE90 D8 61 00 10 */ stfd f3, 0x10(r1) +/* 80392F34 0038FE94 D8 01 00 40 */ stfd f0, 0x40(r1) +/* 80392F38 0038FE98 80 01 00 44 */ lwz r0, 0x44(r1) +/* 80392F3C 0038FE9C 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80392F40 0038FEA0 90 01 00 4C */ stw r0, 0x4c(r1) +/* 80392F44 0038FEA4 C8 01 00 48 */ lfd f0, 0x48(r1) +/* 80392F48 0038FEA8 FC 40 28 28 */ fsub f2, f0, f5 +/* 80392F4C 0038FEAC FC 03 10 28 */ fsub f0, f3, f2 +/* 80392F50 0038FEB0 D8 41 00 20 */ stfd f2, 0x20(r1) +/* 80392F54 0038FEB4 FC 04 00 32 */ fmul f0, f4, f0 +/* 80392F58 0038FEB8 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 80392F5C 0038FEBC D8 01 00 28 */ stfd f0, 0x28(r1) +/* 80392F60 0038FEC0 48 00 00 0C */ b lbl_80392F6C +lbl_80392F64: +/* 80392F64 0038FEC4 38 84 FF F8 */ addi r4, r4, -8 +/* 80392F68 0038FEC8 38 C6 FF FF */ addi r6, r6, -1 +lbl_80392F6C: +/* 80392F6C 0038FECC C8 04 FF F8 */ lfd f0, -8(r4) +/* 80392F70 0038FED0 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 80392F74 0038FED4 41 82 FF F0 */ beq lbl_80392F64 +/* 80392F78 0038FED8 3C 60 80 3E */ lis r3, lbl_803D8790@ha +/* 80392F7C 0038FEDC 7F C4 F3 78 */ mr r4, r30 +/* 80392F80 0038FEE0 39 03 87 90 */ addi r8, r3, lbl_803D8790@l +/* 80392F84 0038FEE4 38 E0 00 02 */ li r7, 2 +/* 80392F88 0038FEE8 38 61 00 18 */ addi r3, r1, 0x18 +/* 80392F8C 0038FEEC 48 00 01 35 */ bl __kernel_rem_pio2 +/* 80392F90 0038FEF0 2C 1F 00 00 */ cmpwi r31, 0 +/* 80392F94 0038FEF4 40 80 00 20 */ bge lbl_80392FB4 +/* 80392F98 0038FEF8 C8 1E 00 00 */ lfd f0, 0(r30) +/* 80392F9C 0038FEFC 7C 63 00 D0 */ neg r3, r3 +/* 80392FA0 0038FF00 FC 00 00 50 */ fneg f0, f0 +/* 80392FA4 0038FF04 D8 1E 00 00 */ stfd f0, 0(r30) +/* 80392FA8 0038FF08 C8 1E 00 08 */ lfd f0, 8(r30) +/* 80392FAC 0038FF0C FC 00 00 50 */ fneg f0, f0 +/* 80392FB0 0038FF10 D8 1E 00 08 */ stfd f0, 8(r30) +lbl_80392FB4: +/* 80392FB4 0038FF14 80 01 00 64 */ lwz r0, 0x64(r1) +/* 80392FB8 0038FF18 83 E1 00 5C */ lwz r31, 0x5c(r1) +/* 80392FBC 0038FF1C 83 C1 00 58 */ lwz r30, 0x58(r1) +/* 80392FC0 0038FF20 7C 08 03 A6 */ mtlr r0 +/* 80392FC4 0038FF24 38 21 00 60 */ addi r1, r1, 0x60 +/* 80392FC8 0038FF28 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/k_cos.s b/asm/Runtime/PPCEABI/H/k_cos.s new file mode 100644 index 00000000..a6ee9aae --- /dev/null +++ b/asm/Runtime/PPCEABI/H/k_cos.s @@ -0,0 +1,72 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __kernel_cos +__kernel_cos: +/* 80392FCC 0038FF2C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80392FD0 0038FF30 3C 00 3E 40 */ lis r0, 0x3e40 +/* 80392FD4 0038FF34 D8 21 00 08 */ stfd f1, 8(r1) +/* 80392FD8 0038FF38 80 61 00 08 */ lwz r3, 8(r1) +/* 80392FDC 0038FF3C 54 64 00 7E */ clrlwi r4, r3, 1 +/* 80392FE0 0038FF40 7C 04 00 00 */ cmpw r4, r0 +/* 80392FE4 0038FF44 40 80 00 20 */ bge lbl_80393004 +/* 80392FE8 0038FF48 FC 00 08 1E */ fctiwz f0, f1 +/* 80392FEC 0038FF4C D8 01 00 18 */ stfd f0, 0x18(r1) +/* 80392FF0 0038FF50 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 80392FF4 0038FF54 2C 00 00 00 */ cmpwi r0, 0 +/* 80392FF8 0038FF58 40 82 00 0C */ bne lbl_80393004 +/* 80392FFC 0038FF5C C8 22 D3 78 */ lfd f1, lbl_805AF098@sda21(r2) +/* 80393000 0038FF60 48 00 00 B8 */ b lbl_803930B8 +lbl_80393004: +/* 80393004 0038FF64 C8 C1 00 08 */ lfd f6, 8(r1) +/* 80393008 0038FF68 3C 60 3F D3 */ lis r3, 0x3FD33333@ha +/* 8039300C 0038FF6C 38 03 33 33 */ addi r0, r3, 0x3FD33333@l +/* 80393010 0038FF70 C8 A2 D3 A8 */ lfd f5, lbl_805AF0C8@sda21(r2) +/* 80393014 0038FF74 FC E6 01 B2 */ fmul f7, f6, f6 +/* 80393018 0038FF78 C8 02 D3 A0 */ lfd f0, lbl_805AF0C0@sda21(r2) +/* 8039301C 0038FF7C C8 82 D3 98 */ lfd f4, lbl_805AF0B8@sda21(r2) +/* 80393020 0038FF80 7C 04 00 00 */ cmpw r4, r0 +/* 80393024 0038FF84 C8 62 D3 90 */ lfd f3, lbl_805AF0B0@sda21(r2) +/* 80393028 0038FF88 C8 22 D3 88 */ lfd f1, lbl_805AF0A8@sda21(r2) +/* 8039302C 0038FF8C FC A5 01 FA */ fmadd f5, f5, f7, f0 +/* 80393030 0038FF90 C8 02 D3 80 */ lfd f0, lbl_805AF0A0@sda21(r2) +/* 80393034 0038FF94 FC 87 21 7A */ fmadd f4, f7, f5, f4 +/* 80393038 0038FF98 FC 67 19 3A */ fmadd f3, f7, f4, f3 +/* 8039303C 0038FF9C FC 27 08 FA */ fmadd f1, f7, f3, f1 +/* 80393040 0038FFA0 FC 07 00 7A */ fmadd f0, f7, f1, f0 +/* 80393044 0038FFA4 FC 87 00 32 */ fmul f4, f7, f0 +/* 80393048 0038FFA8 40 80 00 20 */ bge lbl_80393068 +/* 8039304C 0038FFAC FC 06 00 B2 */ fmul f0, f6, f2 +/* 80393050 0038FFB0 C8 22 D3 B0 */ lfd f1, lbl_805AF0D0@sda21(r2) +/* 80393054 0038FFB4 C8 42 D3 78 */ lfd f2, lbl_805AF098@sda21(r2) +/* 80393058 0038FFB8 FC 07 01 38 */ fmsub f0, f7, f4, f0 +/* 8039305C 0038FFBC FC 01 01 F8 */ fmsub f0, f1, f7, f0 +/* 80393060 0038FFC0 FC 22 00 28 */ fsub f1, f2, f0 +/* 80393064 0038FFC4 48 00 00 54 */ b lbl_803930B8 +lbl_80393068: +/* 80393068 0038FFC8 3C 00 3F E9 */ lis r0, 0x3fe9 +/* 8039306C 0038FFCC 7C 04 00 00 */ cmpw r4, r0 +/* 80393070 0038FFD0 40 81 00 10 */ ble lbl_80393080 +/* 80393074 0038FFD4 C8 02 D3 B8 */ lfd f0, lbl_805AF0D8@sda21(r2) +/* 80393078 0038FFD8 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 8039307C 0038FFDC 48 00 00 14 */ b lbl_80393090 +lbl_80393080: +/* 80393080 0038FFE0 3C 64 FF E0 */ addis r3, r4, 0xffe0 +/* 80393084 0038FFE4 38 00 00 00 */ li r0, 0 +/* 80393088 0038FFE8 90 61 00 10 */ stw r3, 0x10(r1) +/* 8039308C 0038FFEC 90 01 00 14 */ stw r0, 0x14(r1) +lbl_80393090: +/* 80393090 0038FFF0 C8 01 00 08 */ lfd f0, 8(r1) +/* 80393094 0038FFF4 C8 61 00 10 */ lfd f3, 0x10(r1) +/* 80393098 0038FFF8 FC 00 00 B2 */ fmul f0, f0, f2 +/* 8039309C 0038FFFC C8 22 D3 B0 */ lfd f1, lbl_805AF0D0@sda21(r2) +/* 803930A0 00390000 C8 42 D3 78 */ lfd f2, lbl_805AF098@sda21(r2) +/* 803930A4 00390004 FC 21 19 F8 */ fmsub f1, f1, f7, f3 +/* 803930A8 00390008 FC 07 01 38 */ fmsub f0, f7, f4, f0 +/* 803930AC 0039000C FC 42 18 28 */ fsub f2, f2, f3 +/* 803930B0 00390010 FC 01 00 28 */ fsub f0, f1, f0 +/* 803930B4 00390014 FC 22 00 28 */ fsub f1, f2, f0 +lbl_803930B8: +/* 803930B8 00390018 38 21 00 20 */ addi r1, r1, 0x20 +/* 803930BC 0039001C 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/k_rem_pio2.s b/asm/Runtime/PPCEABI/H/k_rem_pio2.s new file mode 100644 index 00000000..71deaca4 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/k_rem_pio2.s @@ -0,0 +1,1012 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __kernel_rem_pio2 +__kernel_rem_pio2: +/* 803930C0 00390020 94 21 FD 30 */ stwu r1, -0x2d0(r1) +/* 803930C4 00390024 7C 08 02 A6 */ mflr r0 +/* 803930C8 00390028 90 01 02 D4 */ stw r0, 0x2d4(r1) +/* 803930CC 0039002C 39 61 02 D0 */ addi r11, r1, 0x2d0 +/* 803930D0 00390030 4B FF 69 0D */ bl sub_803899dc +/* 803930D4 00390034 BE 01 02 58 */ stmw r16, 0x258(r1) +/* 803930D8 00390038 3D 20 2A AB */ lis r9, 0x2AAAAAAB@ha +/* 803930DC 0039003C 7C F7 3B 78 */ mr r23, r7 +/* 803930E0 00390040 38 05 FF FD */ addi r0, r5, -3 +/* 803930E4 00390044 3D 40 80 3E */ lis r10, lbl_803D8918@ha +/* 803930E8 00390048 38 E9 AA AB */ addi r7, r9, 0x2AAAAAAB@l +/* 803930EC 0039004C 56 E9 10 3A */ slwi r9, r23, 2 +/* 803930F0 00390050 7C 07 00 96 */ mulhw r0, r7, r0 +/* 803930F4 00390054 38 EA 89 18 */ addi r7, r10, lbl_803D8918@l +/* 803930F8 00390058 7F 87 48 2E */ lwzx r28, r7, r9 +/* 803930FC 0039005C 7C 75 1B 78 */ mr r21, r3 +/* 80393100 00390060 7C 96 23 78 */ mr r22, r4 +/* 80393104 00390064 7D 18 43 78 */ mr r24, r8 +/* 80393108 00390068 7C 00 16 70 */ srawi r0, r0, 2 +/* 8039310C 0039006C 3B C6 FF FF */ addi r30, r6, -1 +/* 80393110 00390070 54 03 0F FE */ srwi r3, r0, 0x1f +/* 80393114 00390074 7F A0 1A 15 */ add. r29, r0, r3 +/* 80393118 00390078 40 80 00 08 */ bge lbl_80393120 +/* 8039311C 0039007C 3B A0 00 00 */ li r29, 0 +lbl_80393120: +/* 80393120 00390080 38 1D 00 01 */ addi r0, r29, 1 +/* 80393124 00390084 7C FE E2 15 */ add. r7, r30, r28 +/* 80393128 00390088 1C 80 00 18 */ mulli r4, r0, 0x18 +/* 8039312C 0039008C 7C DE E8 50 */ subf r6, r30, r29 +/* 80393130 00390090 C8 22 D3 F8 */ lfd f1, lbl_805AF118@sda21(r2) +/* 80393134 00390094 54 C3 10 3A */ slwi r3, r6, 2 +/* 80393138 00390098 7F 44 28 50 */ subf r26, r4, r5 +/* 8039313C 0039009C 38 07 00 01 */ addi r0, r7, 1 +/* 80393140 003900A0 7C 98 1A 14 */ add r4, r24, r3 +/* 80393144 003900A4 38 A1 01 98 */ addi r5, r1, 0x198 +/* 80393148 003900A8 3C 60 43 30 */ lis r3, 0x4330 +/* 8039314C 003900AC 7C 09 03 A6 */ mtctr r0 +/* 80393150 003900B0 41 80 00 40 */ blt lbl_80393190 +lbl_80393154: +/* 80393154 003900B4 2C 06 00 00 */ cmpwi r6, 0 +/* 80393158 003900B8 40 80 00 0C */ bge lbl_80393164 +/* 8039315C 003900BC C8 02 D3 C0 */ lfd f0, lbl_805AF0E0@sda21(r2) +/* 80393160 003900C0 48 00 00 1C */ b lbl_8039317C +lbl_80393164: +/* 80393164 003900C4 80 04 00 00 */ lwz r0, 0(r4) +/* 80393168 003900C8 90 61 02 38 */ stw r3, 0x238(r1) +/* 8039316C 003900CC 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80393170 003900D0 90 01 02 3C */ stw r0, 0x23c(r1) +/* 80393174 003900D4 C8 01 02 38 */ lfd f0, 0x238(r1) +/* 80393178 003900D8 FC 00 08 28 */ fsub f0, f0, f1 +lbl_8039317C: +/* 8039317C 003900DC D8 05 00 00 */ stfd f0, 0(r5) +/* 80393180 003900E0 38 A5 00 08 */ addi r5, r5, 8 +/* 80393184 003900E4 38 84 00 04 */ addi r4, r4, 4 +/* 80393188 003900E8 38 C6 00 01 */ addi r6, r6, 1 +/* 8039318C 003900EC 42 00 FF C8 */ bdnz lbl_80393154 +lbl_80393190: +/* 80393190 003900F0 38 A1 00 58 */ addi r5, r1, 0x58 +/* 80393194 003900F4 38 E0 00 00 */ li r7, 0 +/* 80393198 003900F8 48 00 01 5C */ b lbl_803932F4 +lbl_8039319C: +/* 8039319C 003900FC 2C 1E 00 00 */ cmpwi r30, 0 +/* 803931A0 00390100 C8 82 D3 C0 */ lfd f4, lbl_805AF0E0@sda21(r2) +/* 803931A4 00390104 38 C0 00 00 */ li r6, 0 +/* 803931A8 00390108 41 80 01 40 */ blt lbl_803932E8 +/* 803931AC 0039010C 38 1E 00 01 */ addi r0, r30, 1 +/* 803931B0 00390110 39 3E FF F8 */ addi r9, r30, -8 +/* 803931B4 00390114 2C 00 00 08 */ cmpwi r0, 8 +/* 803931B8 00390118 40 81 00 EC */ ble lbl_803932A4 +/* 803931BC 0039011C 39 09 00 08 */ addi r8, r9, 8 +/* 803931C0 00390120 7E A4 AB 78 */ mr r4, r21 +/* 803931C4 00390124 55 08 E8 FE */ srwi r8, r8, 3 +/* 803931C8 00390128 7C 1E 3A 14 */ add r0, r30, r7 +/* 803931CC 0039012C 38 61 01 98 */ addi r3, r1, 0x198 +/* 803931D0 00390130 7D 09 03 A6 */ mtctr r8 +/* 803931D4 00390134 2C 09 00 00 */ cmpwi r9, 0 +/* 803931D8 00390138 41 80 00 CC */ blt lbl_803932A4 +lbl_803931DC: +/* 803931DC 0039013C 7D 06 00 50 */ subf r8, r6, r0 +/* 803931E0 00390140 39 26 00 01 */ addi r9, r6, 1 +/* 803931E4 00390144 55 0A 18 38 */ slwi r10, r8, 3 +/* 803931E8 00390148 C8 24 00 00 */ lfd f1, 0(r4) +/* 803931EC 0039014C 7C 03 54 AE */ lfdx f0, r3, r10 +/* 803931F0 00390150 7D 29 00 50 */ subf r9, r9, r0 +/* 803931F4 00390154 55 2A 18 38 */ slwi r10, r9, 3 +/* 803931F8 00390158 39 06 00 02 */ addi r8, r6, 2 +/* 803931FC 0039015C FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393200 00390160 7D 28 00 50 */ subf r9, r8, r0 +/* 80393204 00390164 39 06 00 03 */ addi r8, r6, 3 +/* 80393208 00390168 C8 24 00 08 */ lfd f1, 8(r4) +/* 8039320C 0039016C 7C 03 54 AE */ lfdx f0, r3, r10 +/* 80393210 00390170 7D 08 00 50 */ subf r8, r8, r0 +/* 80393214 00390174 FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393218 00390178 55 29 18 38 */ slwi r9, r9, 3 +/* 8039321C 0039017C C8 24 00 10 */ lfd f1, 0x10(r4) +/* 80393220 00390180 55 0A 18 38 */ slwi r10, r8, 3 +/* 80393224 00390184 7C 03 4C AE */ lfdx f0, r3, r9 +/* 80393228 00390188 39 06 00 04 */ addi r8, r6, 4 +/* 8039322C 0039018C FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393230 00390190 C8 24 00 18 */ lfd f1, 0x18(r4) +/* 80393234 00390194 7C 03 54 AE */ lfdx f0, r3, r10 +/* 80393238 00390198 7D 28 00 50 */ subf r9, r8, r0 +/* 8039323C 0039019C 55 2A 18 38 */ slwi r10, r9, 3 +/* 80393240 003901A0 39 06 00 05 */ addi r8, r6, 5 +/* 80393244 003901A4 FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393248 003901A8 C8 44 00 20 */ lfd f2, 0x20(r4) +/* 8039324C 003901AC 7C 03 54 AE */ lfdx f0, r3, r10 +/* 80393250 003901B0 7D 08 00 50 */ subf r8, r8, r0 +/* 80393254 003901B4 55 0A 18 38 */ slwi r10, r8, 3 +/* 80393258 003901B8 39 26 00 06 */ addi r9, r6, 6 +/* 8039325C 003901BC FC 82 20 3A */ fmadd f4, f2, f0, f4 +/* 80393260 003901C0 7D 29 00 50 */ subf r9, r9, r0 +/* 80393264 003901C4 55 29 18 38 */ slwi r9, r9, 3 +/* 80393268 003901C8 C8 24 00 28 */ lfd f1, 0x28(r4) +/* 8039326C 003901CC 7C 03 54 AE */ lfdx f0, r3, r10 +/* 80393270 003901D0 39 06 00 07 */ addi r8, r6, 7 +/* 80393274 003901D4 FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393278 003901D8 7D 08 00 50 */ subf r8, r8, r0 +/* 8039327C 003901DC 55 08 18 38 */ slwi r8, r8, 3 +/* 80393280 003901E0 C8 64 00 30 */ lfd f3, 0x30(r4) +/* 80393284 003901E4 7C 43 4C AE */ lfdx f2, r3, r9 +/* 80393288 003901E8 38 C6 00 08 */ addi r6, r6, 8 +/* 8039328C 003901EC C8 24 00 38 */ lfd f1, 0x38(r4) +/* 80393290 003901F0 FC 83 20 BA */ fmadd f4, f3, f2, f4 +/* 80393294 003901F4 7C 03 44 AE */ lfdx f0, r3, r8 +/* 80393298 003901F8 38 84 00 40 */ addi r4, r4, 0x40 +/* 8039329C 003901FC FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 803932A0 00390200 42 00 FF 3C */ bdnz lbl_803931DC +lbl_803932A4: +/* 803932A4 00390204 38 1E 00 01 */ addi r0, r30, 1 +/* 803932A8 00390208 54 C3 18 38 */ slwi r3, r6, 3 +/* 803932AC 0039020C 7C 06 00 50 */ subf r0, r6, r0 +/* 803932B0 00390210 7D 1E 3A 14 */ add r8, r30, r7 +/* 803932B4 00390214 7C 95 1A 14 */ add r4, r21, r3 +/* 803932B8 00390218 38 61 01 98 */ addi r3, r1, 0x198 +/* 803932BC 0039021C 7C 09 03 A6 */ mtctr r0 +/* 803932C0 00390220 7C 06 F0 00 */ cmpw r6, r30 +/* 803932C4 00390224 41 81 00 24 */ bgt lbl_803932E8 +lbl_803932C8: +/* 803932C8 00390228 7C 06 40 50 */ subf r0, r6, r8 +/* 803932CC 0039022C C8 24 00 00 */ lfd f1, 0(r4) +/* 803932D0 00390230 54 00 18 38 */ slwi r0, r0, 3 +/* 803932D4 00390234 38 84 00 08 */ addi r4, r4, 8 +/* 803932D8 00390238 7C 03 04 AE */ lfdx f0, r3, r0 +/* 803932DC 0039023C 38 C6 00 01 */ addi r6, r6, 1 +/* 803932E0 00390240 FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 803932E4 00390244 42 00 FF E4 */ bdnz lbl_803932C8 +lbl_803932E8: +/* 803932E8 00390248 D8 85 00 00 */ stfd f4, 0(r5) +/* 803932EC 0039024C 38 A5 00 08 */ addi r5, r5, 8 +/* 803932F0 00390250 38 E7 00 01 */ addi r7, r7, 1 +lbl_803932F4: +/* 803932F4 00390254 7C 07 E0 00 */ cmpw r7, r28 +/* 803932F8 00390258 40 81 FE A4 */ ble lbl_8039319C +/* 803932FC 0039025C 22 5A 00 18 */ subfic r18, r26, 0x18 +/* 80393300 00390260 CB 42 D3 C8 */ lfd f26, lbl_805AF0E8@sda21(r2) +/* 80393304 00390264 CB 62 D3 F8 */ lfd f27, lbl_805AF118@sda21(r2) +/* 80393308 00390268 3A 01 00 08 */ addi r16, r1, 8 +/* 8039330C 0039026C CB 82 D3 D0 */ lfd f28, lbl_805AF0F0@sda21(r2) +/* 80393310 00390270 7F 9F E3 78 */ mr r31, r28 +/* 80393314 00390274 CB A2 D3 E0 */ lfd f29, lbl_805AF100@sda21(r2) +/* 80393318 00390278 22 3A 00 17 */ subfic r17, r26, 0x17 +/* 8039331C 0039027C CB C2 D3 D8 */ lfd f30, lbl_805AF0F8@sda21(r2) +/* 80393320 00390280 3A 81 01 98 */ addi r20, r1, 0x198 +/* 80393324 00390284 CB E2 D3 C0 */ lfd f31, lbl_805AF0E0@sda21(r2) +/* 80393328 00390288 3E 60 43 30 */ lis r19, 0x4330 +lbl_8039332C: +/* 8039332C 0039028C 57 E0 18 38 */ slwi r0, r31, 3 +/* 80393330 00390290 38 A1 00 58 */ addi r5, r1, 0x58 +/* 80393334 00390294 7C A5 02 14 */ add r5, r5, r0 +/* 80393338 00390298 2C 1F 00 00 */ cmpwi r31, 0 +/* 8039333C 0039029C C8 25 00 00 */ lfd f1, 0(r5) +/* 80393340 003902A0 7E 04 83 78 */ mr r4, r16 +/* 80393344 003902A4 7F E3 FB 78 */ mr r3, r31 +/* 80393348 003902A8 40 81 00 EC */ ble lbl_80393434 +/* 8039334C 003902AC 57 E0 F8 7F */ rlwinm. r0, r31, 0x1f, 1, 0x1f +/* 80393350 003902B0 7C 09 03 A6 */ mtctr r0 +/* 80393354 003902B4 41 82 00 94 */ beq lbl_803933E8 +lbl_80393358: +/* 80393358 003902B8 FC 7A 00 72 */ fmul f3, f26, f1 +/* 8039335C 003902BC 92 61 02 40 */ stw r19, 0x240(r1) +/* 80393360 003902C0 C8 05 FF F8 */ lfd f0, -8(r5) +/* 80393364 003902C4 FC 40 18 1E */ fctiwz f2, f3 +/* 80393368 003902C8 D8 41 02 38 */ stfd f2, 0x238(r1) +/* 8039336C 003902CC 80 01 02 3C */ lwz r0, 0x23c(r1) +/* 80393370 003902D0 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80393374 003902D4 90 01 02 44 */ stw r0, 0x244(r1) +/* 80393378 003902D8 C8 41 02 40 */ lfd f2, 0x240(r1) +/* 8039337C 003902DC FC 62 D8 28 */ fsub f3, f2, f27 +/* 80393380 003902E0 92 61 02 40 */ stw r19, 0x240(r1) +/* 80393384 003902E4 FC 5C 08 FC */ fnmsub f2, f28, f3, f1 +/* 80393388 003902E8 FC 23 00 2A */ fadd f1, f3, f0 +/* 8039338C 003902EC CC 05 FF F0 */ lfdu f0, -0x10(r5) +/* 80393390 003902F0 FC 40 10 1E */ fctiwz f2, f2 +/* 80393394 003902F4 FC 7A 00 72 */ fmul f3, f26, f1 +/* 80393398 003902F8 D8 41 02 48 */ stfd f2, 0x248(r1) +/* 8039339C 003902FC FC 40 18 1E */ fctiwz f2, f3 +/* 803933A0 00390300 80 01 02 4C */ lwz r0, 0x24c(r1) +/* 803933A4 00390304 90 04 00 00 */ stw r0, 0(r4) +/* 803933A8 00390308 D8 41 02 38 */ stfd f2, 0x238(r1) +/* 803933AC 0039030C 80 01 02 3C */ lwz r0, 0x23c(r1) +/* 803933B0 00390310 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 803933B4 00390314 90 01 02 44 */ stw r0, 0x244(r1) +/* 803933B8 00390318 C8 41 02 40 */ lfd f2, 0x240(r1) +/* 803933BC 0039031C FC 62 D8 28 */ fsub f3, f2, f27 +/* 803933C0 00390320 FC 5C 08 FC */ fnmsub f2, f28, f3, f1 +/* 803933C4 00390324 FC 23 00 2A */ fadd f1, f3, f0 +/* 803933C8 00390328 FC 40 10 1E */ fctiwz f2, f2 +/* 803933CC 0039032C D8 41 02 48 */ stfd f2, 0x248(r1) +/* 803933D0 00390330 80 01 02 4C */ lwz r0, 0x24c(r1) +/* 803933D4 00390334 90 04 00 04 */ stw r0, 4(r4) +/* 803933D8 00390338 38 84 00 08 */ addi r4, r4, 8 +/* 803933DC 0039033C 42 00 FF 7C */ bdnz lbl_80393358 +/* 803933E0 00390340 70 63 00 01 */ andi. r3, r3, 1 +/* 803933E4 00390344 41 82 00 50 */ beq lbl_80393434 +lbl_803933E8: +/* 803933E8 00390348 7C 69 03 A6 */ mtctr r3 +lbl_803933EC: +/* 803933EC 0039034C FC 7A 00 72 */ fmul f3, f26, f1 +/* 803933F0 00390350 92 61 02 40 */ stw r19, 0x240(r1) +/* 803933F4 00390354 CC 05 FF F8 */ lfdu f0, -8(r5) +/* 803933F8 00390358 FC 40 18 1E */ fctiwz f2, f3 +/* 803933FC 0039035C D8 41 02 38 */ stfd f2, 0x238(r1) +/* 80393400 00390360 80 01 02 3C */ lwz r0, 0x23c(r1) +/* 80393404 00390364 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80393408 00390368 90 01 02 44 */ stw r0, 0x244(r1) +/* 8039340C 0039036C C8 41 02 40 */ lfd f2, 0x240(r1) +/* 80393410 00390370 FC 62 D8 28 */ fsub f3, f2, f27 +/* 80393414 00390374 FC 5C 08 FC */ fnmsub f2, f28, f3, f1 +/* 80393418 00390378 FC 23 00 2A */ fadd f1, f3, f0 +/* 8039341C 0039037C FC 40 10 1E */ fctiwz f2, f2 +/* 80393420 00390380 D8 41 02 48 */ stfd f2, 0x248(r1) +/* 80393424 00390384 80 01 02 4C */ lwz r0, 0x24c(r1) +/* 80393428 00390388 90 04 00 00 */ stw r0, 0(r4) +/* 8039342C 0039038C 38 84 00 04 */ addi r4, r4, 4 +/* 80393430 00390390 42 00 FF BC */ bdnz lbl_803933EC +lbl_80393434: +/* 80393434 00390394 7F 43 D3 78 */ mr r3, r26 +/* 80393438 00390398 48 00 12 61 */ bl ldexp +/* 8039343C 0039039C FF 20 08 90 */ fmr f25, f1 +/* 80393440 003903A0 FC 3D 06 72 */ fmul f1, f29, f25 +/* 80393444 003903A4 48 00 10 81 */ bl floor +/* 80393448 003903A8 FF 3E C8 7C */ fnmsub f25, f30, f1, f25 +/* 8039344C 003903AC 92 61 02 40 */ stw r19, 0x240(r1) +/* 80393450 003903B0 2C 1A 00 00 */ cmpwi r26, 0 +/* 80393454 003903B4 3B 20 00 00 */ li r25, 0 +/* 80393458 003903B8 FC 00 C8 1E */ fctiwz f0, f25 +/* 8039345C 003903BC D8 01 02 48 */ stfd f0, 0x248(r1) +/* 80393460 003903C0 83 61 02 4C */ lwz r27, 0x24c(r1) +/* 80393464 003903C4 6F 60 80 00 */ xoris r0, r27, 0x8000 +/* 80393468 003903C8 90 01 02 44 */ stw r0, 0x244(r1) +/* 8039346C 003903CC C8 01 02 40 */ lfd f0, 0x240(r1) +/* 80393470 003903D0 FC 00 D8 28 */ fsub f0, f0, f27 +/* 80393474 003903D4 FF 39 00 28 */ fsub f25, f25, f0 +/* 80393478 003903D8 40 81 00 34 */ ble lbl_803934AC +/* 8039347C 003903DC 57 E3 10 3A */ slwi r3, r31, 2 +/* 80393480 003903E0 38 81 00 08 */ addi r4, r1, 8 +/* 80393484 003903E4 38 A3 FF FC */ addi r5, r3, -4 +/* 80393488 003903E8 7C 64 28 2E */ lwzx r3, r4, r5 +/* 8039348C 003903EC 7C 66 96 30 */ sraw r6, r3, r18 +/* 80393490 003903F0 7C C0 90 30 */ slw r0, r6, r18 +/* 80393494 003903F4 7C 00 18 50 */ subf r0, r0, r3 +/* 80393498 003903F8 7F 7B 32 14 */ add r27, r27, r6 +/* 8039349C 003903FC 7C 04 29 2E */ stwx r0, r4, r5 +/* 803934A0 00390400 7C 04 28 2E */ lwzx r0, r4, r5 +/* 803934A4 00390404 7C 19 8E 30 */ sraw r25, r0, r17 +/* 803934A8 00390408 48 00 00 34 */ b lbl_803934DC +lbl_803934AC: +/* 803934AC 0039040C 40 82 00 1C */ bne lbl_803934C8 +/* 803934B0 00390410 57 E4 10 3A */ slwi r4, r31, 2 +/* 803934B4 00390414 38 61 00 08 */ addi r3, r1, 8 +/* 803934B8 00390418 38 04 FF FC */ addi r0, r4, -4 +/* 803934BC 0039041C 7C 03 00 2E */ lwzx r0, r3, r0 +/* 803934C0 00390420 7C 19 BE 70 */ srawi r25, r0, 0x17 +/* 803934C4 00390424 48 00 00 18 */ b lbl_803934DC +lbl_803934C8: +/* 803934C8 00390428 C8 02 D3 E8 */ lfd f0, lbl_805AF108@sda21(r2) +/* 803934CC 0039042C FC 19 00 40 */ fcmpo cr0, f25, f0 +/* 803934D0 00390430 4C 41 13 82 */ cror 2, 1, 2 +/* 803934D4 00390434 40 82 00 08 */ bne lbl_803934DC +/* 803934D8 00390438 3B 20 00 02 */ li r25, 2 +lbl_803934DC: +/* 803934DC 0039043C 2C 19 00 00 */ cmpwi r25, 0 +/* 803934E0 00390440 40 81 00 D0 */ ble lbl_803935B0 +/* 803934E4 00390444 3C A0 01 00 */ lis r5, 0x00FFFFFF@ha +/* 803934E8 00390448 7E 06 83 78 */ mr r6, r16 +/* 803934EC 0039044C 38 00 00 00 */ li r0, 0 +/* 803934F0 00390450 38 85 FF FF */ addi r4, r5, 0x00FFFFFF@l +/* 803934F4 00390454 7F E9 03 A6 */ mtctr r31 +/* 803934F8 00390458 2C 1F 00 00 */ cmpwi r31, 0 +/* 803934FC 0039045C 3B 7B 00 01 */ addi r27, r27, 1 +/* 80393500 00390460 40 81 00 38 */ ble lbl_80393538 +lbl_80393504: +/* 80393504 00390464 2C 00 00 00 */ cmpwi r0, 0 +/* 80393508 00390468 80 66 00 00 */ lwz r3, 0(r6) +/* 8039350C 0039046C 40 82 00 1C */ bne lbl_80393528 +/* 80393510 00390470 2C 03 00 00 */ cmpwi r3, 0 +/* 80393514 00390474 41 82 00 1C */ beq lbl_80393530 +/* 80393518 00390478 7C 63 28 50 */ subf r3, r3, r5 +/* 8039351C 0039047C 38 00 00 01 */ li r0, 1 +/* 80393520 00390480 90 66 00 00 */ stw r3, 0(r6) +/* 80393524 00390484 48 00 00 0C */ b lbl_80393530 +lbl_80393528: +/* 80393528 00390488 7C 63 20 50 */ subf r3, r3, r4 +/* 8039352C 0039048C 90 66 00 00 */ stw r3, 0(r6) +lbl_80393530: +/* 80393530 00390490 38 C6 00 04 */ addi r6, r6, 4 +/* 80393534 00390494 42 00 FF D0 */ bdnz lbl_80393504 +lbl_80393538: +/* 80393538 00390498 2C 1A 00 00 */ cmpwi r26, 0 +/* 8039353C 0039049C 40 81 00 50 */ ble lbl_8039358C +/* 80393540 003904A0 2C 1A 00 02 */ cmpwi r26, 2 +/* 80393544 003904A4 41 82 00 30 */ beq lbl_80393574 +/* 80393548 003904A8 40 80 00 44 */ bge lbl_8039358C +/* 8039354C 003904AC 2C 1A 00 01 */ cmpwi r26, 1 +/* 80393550 003904B0 40 80 00 08 */ bge lbl_80393558 +/* 80393554 003904B4 48 00 00 38 */ b lbl_8039358C +lbl_80393558: +/* 80393558 003904B8 57 E3 10 3A */ slwi r3, r31, 2 +/* 8039355C 003904BC 38 A1 00 08 */ addi r5, r1, 8 +/* 80393560 003904C0 38 83 FF FC */ addi r4, r3, -4 +/* 80393564 003904C4 7C 65 20 2E */ lwzx r3, r5, r4 +/* 80393568 003904C8 54 63 02 7E */ clrlwi r3, r3, 9 +/* 8039356C 003904CC 7C 65 21 2E */ stwx r3, r5, r4 +/* 80393570 003904D0 48 00 00 1C */ b lbl_8039358C +lbl_80393574: +/* 80393574 003904D4 57 E3 10 3A */ slwi r3, r31, 2 +/* 80393578 003904D8 38 A1 00 08 */ addi r5, r1, 8 +/* 8039357C 003904DC 38 83 FF FC */ addi r4, r3, -4 +/* 80393580 003904E0 7C 65 20 2E */ lwzx r3, r5, r4 +/* 80393584 003904E4 54 63 02 BE */ clrlwi r3, r3, 0xa +/* 80393588 003904E8 7C 65 21 2E */ stwx r3, r5, r4 +lbl_8039358C: +/* 8039358C 003904EC 2C 19 00 02 */ cmpwi r25, 2 +/* 80393590 003904F0 40 82 00 20 */ bne lbl_803935B0 +/* 80393594 003904F4 C8 22 D3 F0 */ lfd f1, lbl_805AF110@sda21(r2) +/* 80393598 003904F8 2C 00 00 00 */ cmpwi r0, 0 +/* 8039359C 003904FC FF 21 C8 28 */ fsub f25, f1, f25 +/* 803935A0 00390500 41 82 00 10 */ beq lbl_803935B0 +/* 803935A4 00390504 7F 43 D3 78 */ mr r3, r26 +/* 803935A8 00390508 48 00 10 F1 */ bl ldexp +/* 803935AC 0039050C FF 39 08 28 */ fsub f25, f25, f1 +lbl_803935B0: +/* 803935B0 00390510 FC 1F C8 00 */ fcmpu cr0, f31, f25 +/* 803935B4 00390514 40 82 02 64 */ bne lbl_80393818 +/* 803935B8 00390518 38 7F FF FF */ addi r3, r31, -1 +/* 803935BC 0039051C 38 81 00 08 */ addi r4, r1, 8 +/* 803935C0 00390520 7C 03 E0 00 */ cmpw r3, r28 +/* 803935C4 00390524 38 A0 00 00 */ li r5, 0 +/* 803935C8 00390528 54 60 10 3A */ slwi r0, r3, 2 +/* 803935CC 0039052C 38 63 00 01 */ addi r3, r3, 1 +/* 803935D0 00390530 7C 84 02 14 */ add r4, r4, r0 +/* 803935D4 00390534 7C 7C 18 50 */ subf r3, r28, r3 +/* 803935D8 00390538 41 80 00 74 */ blt lbl_8039364C +/* 803935DC 0039053C 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803935E0 00390540 7C 09 03 A6 */ mtctr r0 +/* 803935E4 00390544 41 82 00 54 */ beq lbl_80393638 +lbl_803935E8: +/* 803935E8 00390548 80 04 00 00 */ lwz r0, 0(r4) +/* 803935EC 0039054C 7C A5 03 78 */ or r5, r5, r0 +/* 803935F0 00390550 80 04 FF FC */ lwz r0, -4(r4) +/* 803935F4 00390554 7C A5 03 78 */ or r5, r5, r0 +/* 803935F8 00390558 80 04 FF F8 */ lwz r0, -8(r4) +/* 803935FC 0039055C 7C A5 03 78 */ or r5, r5, r0 +/* 80393600 00390560 80 04 FF F4 */ lwz r0, -0xc(r4) +/* 80393604 00390564 7C A5 03 78 */ or r5, r5, r0 +/* 80393608 00390568 80 04 FF F0 */ lwz r0, -0x10(r4) +/* 8039360C 0039056C 7C A5 03 78 */ or r5, r5, r0 +/* 80393610 00390570 80 04 FF EC */ lwz r0, -0x14(r4) +/* 80393614 00390574 7C A5 03 78 */ or r5, r5, r0 +/* 80393618 00390578 80 04 FF E8 */ lwz r0, -0x18(r4) +/* 8039361C 0039057C 7C A5 03 78 */ or r5, r5, r0 +/* 80393620 00390580 80 04 FF E4 */ lwz r0, -0x1c(r4) +/* 80393624 00390584 38 84 FF E0 */ addi r4, r4, -32 +/* 80393628 00390588 7C A5 03 78 */ or r5, r5, r0 +/* 8039362C 0039058C 42 00 FF BC */ bdnz lbl_803935E8 +/* 80393630 00390590 70 63 00 07 */ andi. r3, r3, 7 +/* 80393634 00390594 41 82 00 18 */ beq lbl_8039364C +lbl_80393638: +/* 80393638 00390598 7C 69 03 A6 */ mtctr r3 +lbl_8039363C: +/* 8039363C 0039059C 80 04 00 00 */ lwz r0, 0(r4) +/* 80393640 003905A0 38 84 FF FC */ addi r4, r4, -4 +/* 80393644 003905A4 7C A5 03 78 */ or r5, r5, r0 +/* 80393648 003905A8 42 00 FF F4 */ bdnz lbl_8039363C +lbl_8039364C: +/* 8039364C 003905AC 2C 05 00 00 */ cmpwi r5, 0 +/* 80393650 003905B0 40 82 01 C8 */ bne lbl_80393818 +/* 80393654 003905B4 39 40 00 01 */ li r10, 1 +/* 80393658 003905B8 48 00 00 08 */ b lbl_80393660 +lbl_8039365C: +/* 8039365C 003905BC 39 4A 00 01 */ addi r10, r10, 1 +lbl_80393660: +/* 80393660 003905C0 7C 0A E0 50 */ subf r0, r10, r28 +/* 80393664 003905C4 54 00 10 3A */ slwi r0, r0, 2 +/* 80393668 003905C8 7C 10 00 2E */ lwzx r0, r16, r0 +/* 8039366C 003905CC 2C 00 00 00 */ cmpwi r0, 0 +/* 80393670 003905D0 41 82 FF EC */ beq lbl_8039365C +/* 80393674 003905D4 39 3F 00 01 */ addi r9, r31, 1 +/* 80393678 003905D8 38 A1 00 58 */ addi r5, r1, 0x58 +/* 8039367C 003905DC 55 20 18 38 */ slwi r0, r9, 3 +/* 80393680 003905E0 7C DF 52 14 */ add r6, r31, r10 +/* 80393684 003905E4 7C A5 02 14 */ add r5, r5, r0 +/* 80393688 003905E8 48 00 01 80 */ b lbl_80393808 +lbl_8039368C: +/* 8039368C 003905EC 7C 1D 4A 14 */ add r0, r29, r9 +/* 80393690 003905F0 7C FE 4A 14 */ add r7, r30, r9 +/* 80393694 003905F4 54 00 10 3A */ slwi r0, r0, 2 +/* 80393698 003905F8 92 61 02 48 */ stw r19, 0x248(r1) +/* 8039369C 003905FC 7C 78 00 2E */ lwzx r3, r24, r0 +/* 803936A0 00390600 2C 1E 00 00 */ cmpwi r30, 0 +/* 803936A4 00390604 54 E0 18 38 */ slwi r0, r7, 3 +/* 803936A8 00390608 C8 82 D3 C0 */ lfd f4, lbl_805AF0E0@sda21(r2) +/* 803936AC 0039060C 6C 63 80 00 */ xoris r3, r3, 0x8000 +/* 803936B0 00390610 39 00 00 00 */ li r8, 0 +/* 803936B4 00390614 90 61 02 4C */ stw r3, 0x24c(r1) +/* 803936B8 00390618 C8 01 02 48 */ lfd f0, 0x248(r1) +/* 803936BC 0039061C FC 00 D8 28 */ fsub f0, f0, f27 +/* 803936C0 00390620 7C 14 05 AE */ stfdx f0, r20, r0 +/* 803936C4 00390624 41 80 01 38 */ blt lbl_803937FC +/* 803936C8 00390628 38 1E 00 01 */ addi r0, r30, 1 +/* 803936CC 0039062C 39 7E FF F8 */ addi r11, r30, -8 +/* 803936D0 00390630 2C 00 00 08 */ cmpwi r0, 8 +/* 803936D4 00390634 40 81 00 E8 */ ble lbl_803937BC +/* 803936D8 00390638 38 0B 00 08 */ addi r0, r11, 8 +/* 803936DC 0039063C 7E A4 AB 78 */ mr r4, r21 +/* 803936E0 00390640 54 00 E8 FE */ srwi r0, r0, 3 +/* 803936E4 00390644 38 61 01 98 */ addi r3, r1, 0x198 +/* 803936E8 00390648 7C 09 03 A6 */ mtctr r0 +/* 803936EC 0039064C 2C 0B 00 00 */ cmpwi r11, 0 +/* 803936F0 00390650 41 80 00 CC */ blt lbl_803937BC +lbl_803936F4: +/* 803936F4 00390654 7D 68 38 50 */ subf r11, r8, r7 +/* 803936F8 00390658 38 08 00 01 */ addi r0, r8, 1 +/* 803936FC 0039065C 55 6C 18 38 */ slwi r12, r11, 3 +/* 80393700 00390660 C8 24 00 00 */ lfd f1, 0(r4) +/* 80393704 00390664 7C 03 64 AE */ lfdx f0, r3, r12 +/* 80393708 00390668 7C 00 38 50 */ subf r0, r0, r7 +/* 8039370C 0039066C 39 68 00 02 */ addi r11, r8, 2 +/* 80393710 00390670 C8 44 00 20 */ lfd f2, 0x20(r4) +/* 80393714 00390674 FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393718 00390678 7D 8B 38 50 */ subf r12, r11, r7 +/* 8039371C 0039067C 54 00 18 38 */ slwi r0, r0, 3 +/* 80393720 00390680 39 68 00 03 */ addi r11, r8, 3 +/* 80393724 00390684 7C 03 04 AE */ lfdx f0, r3, r0 +/* 80393728 00390688 55 99 18 38 */ slwi r25, r12, 3 +/* 8039372C 0039068C C8 24 00 08 */ lfd f1, 8(r4) +/* 80393730 00390690 7D 6B 38 50 */ subf r11, r11, r7 +/* 80393734 00390694 55 6C 18 38 */ slwi r12, r11, 3 +/* 80393738 00390698 38 08 00 04 */ addi r0, r8, 4 +/* 8039373C 0039069C FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393740 003906A0 C8 24 00 10 */ lfd f1, 0x10(r4) +/* 80393744 003906A4 7C 03 CC AE */ lfdx f0, r3, r25 +/* 80393748 003906A8 7D 60 38 50 */ subf r11, r0, r7 +/* 8039374C 003906AC 38 08 00 05 */ addi r0, r8, 5 +/* 80393750 003906B0 C8 64 00 30 */ lfd f3, 0x30(r4) +/* 80393754 003906B4 FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393758 003906B8 7C 03 64 AE */ lfdx f0, r3, r12 +/* 8039375C 003906BC C8 24 00 18 */ lfd f1, 0x18(r4) +/* 80393760 003906C0 55 6C 18 38 */ slwi r12, r11, 3 +/* 80393764 003906C4 39 68 00 06 */ addi r11, r8, 6 +/* 80393768 003906C8 7C 00 38 50 */ subf r0, r0, r7 +/* 8039376C 003906CC FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 80393770 003906D0 7C 03 64 AE */ lfdx f0, r3, r12 +/* 80393774 003906D4 54 0C 18 38 */ slwi r12, r0, 3 +/* 80393778 003906D8 C8 24 00 28 */ lfd f1, 0x28(r4) +/* 8039377C 003906DC 38 08 00 07 */ addi r0, r8, 7 +/* 80393780 003906E0 7D 6B 38 50 */ subf r11, r11, r7 +/* 80393784 003906E4 FC 82 20 3A */ fmadd f4, f2, f0, f4 +/* 80393788 003906E8 7C 03 64 AE */ lfdx f0, r3, r12 +/* 8039378C 003906EC 55 6B 18 38 */ slwi r11, r11, 3 +/* 80393790 003906F0 7C 00 38 50 */ subf r0, r0, r7 +/* 80393794 003906F4 7C 43 5C AE */ lfdx f2, r3, r11 +/* 80393798 003906F8 54 00 18 38 */ slwi r0, r0, 3 +/* 8039379C 003906FC FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 803937A0 00390700 C8 24 00 38 */ lfd f1, 0x38(r4) +/* 803937A4 00390704 7C 03 04 AE */ lfdx f0, r3, r0 +/* 803937A8 00390708 38 84 00 40 */ addi r4, r4, 0x40 +/* 803937AC 0039070C 39 08 00 08 */ addi r8, r8, 8 +/* 803937B0 00390710 FC 83 20 BA */ fmadd f4, f3, f2, f4 +/* 803937B4 00390714 FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 803937B8 00390718 42 00 FF 3C */ bdnz lbl_803936F4 +lbl_803937BC: +/* 803937BC 0039071C 38 1E 00 01 */ addi r0, r30, 1 +/* 803937C0 00390720 55 04 18 38 */ slwi r4, r8, 3 +/* 803937C4 00390724 7C 08 00 50 */ subf r0, r8, r0 +/* 803937C8 00390728 38 61 01 98 */ addi r3, r1, 0x198 +/* 803937CC 0039072C 7C 95 22 14 */ add r4, r21, r4 +/* 803937D0 00390730 7C 09 03 A6 */ mtctr r0 +/* 803937D4 00390734 7C 08 F0 00 */ cmpw r8, r30 +/* 803937D8 00390738 41 81 00 24 */ bgt lbl_803937FC +lbl_803937DC: +/* 803937DC 0039073C 7C 08 38 50 */ subf r0, r8, r7 +/* 803937E0 00390740 C8 24 00 00 */ lfd f1, 0(r4) +/* 803937E4 00390744 54 00 18 38 */ slwi r0, r0, 3 +/* 803937E8 00390748 38 84 00 08 */ addi r4, r4, 8 +/* 803937EC 0039074C 7C 03 04 AE */ lfdx f0, r3, r0 +/* 803937F0 00390750 39 08 00 01 */ addi r8, r8, 1 +/* 803937F4 00390754 FC 81 20 3A */ fmadd f4, f1, f0, f4 +/* 803937F8 00390758 42 00 FF E4 */ bdnz lbl_803937DC +lbl_803937FC: +/* 803937FC 0039075C D8 85 00 00 */ stfd f4, 0(r5) +/* 80393800 00390760 38 A5 00 08 */ addi r5, r5, 8 +/* 80393804 00390764 39 29 00 01 */ addi r9, r9, 1 +lbl_80393808: +/* 80393808 00390768 7C 09 30 00 */ cmpw r9, r6 +/* 8039380C 0039076C 40 81 FE 80 */ ble lbl_8039368C +/* 80393810 00390770 7F FF 52 14 */ add r31, r31, r10 +/* 80393814 00390774 4B FF FB 18 */ b lbl_8039332C +lbl_80393818: +/* 80393818 00390778 C8 02 D3 C0 */ lfd f0, lbl_805AF0E0@sda21(r2) +/* 8039381C 0039077C FC 00 C8 00 */ fcmpu cr0, f0, f25 +/* 80393820 00390780 40 82 00 38 */ bne lbl_80393858 +/* 80393824 00390784 3B FF FF FF */ addi r31, r31, -1 +/* 80393828 00390788 38 61 00 08 */ addi r3, r1, 8 +/* 8039382C 0039078C 57 E0 10 3A */ slwi r0, r31, 2 +/* 80393830 00390790 3B 5A FF E8 */ addi r26, r26, -24 +/* 80393834 00390794 7C 63 02 14 */ add r3, r3, r0 +/* 80393838 00390798 48 00 00 10 */ b lbl_80393848 +lbl_8039383C: +/* 8039383C 0039079C 38 63 FF FC */ addi r3, r3, -4 +/* 80393840 003907A0 3B FF FF FF */ addi r31, r31, -1 +/* 80393844 003907A4 3B 5A FF E8 */ addi r26, r26, -24 +lbl_80393848: +/* 80393848 003907A8 80 03 00 00 */ lwz r0, 0(r3) +/* 8039384C 003907AC 2C 00 00 00 */ cmpwi r0, 0 +/* 80393850 003907B0 41 82 FF EC */ beq lbl_8039383C +/* 80393854 003907B4 48 00 00 A4 */ b lbl_803938F8 +lbl_80393858: +/* 80393858 003907B8 FC 20 C8 90 */ fmr f1, f25 +/* 8039385C 003907BC 7C 7A 00 D0 */ neg r3, r26 +/* 80393860 003907C0 48 00 0E 39 */ bl ldexp +/* 80393864 003907C4 C8 62 D3 D0 */ lfd f3, lbl_805AF0F0@sda21(r2) +/* 80393868 003907C8 FC 01 18 40 */ fcmpo cr0, f1, f3 +/* 8039386C 003907CC 4C 41 13 82 */ cror 2, 1, 2 +/* 80393870 003907D0 40 82 00 70 */ bne lbl_803938E0 +/* 80393874 003907D4 C8 02 D3 C8 */ lfd f0, lbl_805AF0E8@sda21(r2) +/* 80393878 003907D8 3C 00 43 30 */ lis r0, 0x4330 +/* 8039387C 003907DC 57 E5 10 3A */ slwi r5, r31, 2 +/* 80393880 003907E0 90 01 02 40 */ stw r0, 0x240(r1) +/* 80393884 003907E4 FC 00 00 72 */ fmul f0, f0, f1 +/* 80393888 003907E8 3B FF 00 01 */ addi r31, r31, 1 +/* 8039388C 003907EC C8 42 D3 F8 */ lfd f2, lbl_805AF118@sda21(r2) +/* 80393890 003907F0 38 81 00 08 */ addi r4, r1, 8 +/* 80393894 003907F4 57 E0 10 3A */ slwi r0, r31, 2 +/* 80393898 003907F8 3B 5A 00 18 */ addi r26, r26, 0x18 +/* 8039389C 003907FC FC 00 00 1E */ fctiwz f0, f0 +/* 803938A0 00390800 D8 01 02 48 */ stfd f0, 0x248(r1) +/* 803938A4 00390804 80 61 02 4C */ lwz r3, 0x24c(r1) +/* 803938A8 00390808 6C 63 80 00 */ xoris r3, r3, 0x8000 +/* 803938AC 0039080C 90 61 02 44 */ stw r3, 0x244(r1) +/* 803938B0 00390810 C8 01 02 40 */ lfd f0, 0x240(r1) +/* 803938B4 00390814 FC 00 10 28 */ fsub f0, f0, f2 +/* 803938B8 00390818 FC 23 08 3C */ fnmsub f1, f3, f0, f1 +/* 803938BC 0039081C FC 00 00 1E */ fctiwz f0, f0 +/* 803938C0 00390820 FC 20 08 1E */ fctiwz f1, f1 +/* 803938C4 00390824 D8 01 02 50 */ stfd f0, 0x250(r1) +/* 803938C8 00390828 D8 21 02 38 */ stfd f1, 0x238(r1) +/* 803938CC 0039082C 80 61 02 54 */ lwz r3, 0x254(r1) +/* 803938D0 00390830 80 C1 02 3C */ lwz r6, 0x23c(r1) +/* 803938D4 00390834 7C C4 29 2E */ stwx r6, r4, r5 +/* 803938D8 00390838 7C 64 01 2E */ stwx r3, r4, r0 +/* 803938DC 0039083C 48 00 00 1C */ b lbl_803938F8 +lbl_803938E0: +/* 803938E0 00390840 FC 00 08 1E */ fctiwz f0, f1 +/* 803938E4 00390844 57 E0 10 3A */ slwi r0, r31, 2 +/* 803938E8 00390848 38 61 00 08 */ addi r3, r1, 8 +/* 803938EC 0039084C D8 01 02 50 */ stfd f0, 0x250(r1) +/* 803938F0 00390850 80 81 02 54 */ lwz r4, 0x254(r1) +/* 803938F4 00390854 7C 83 01 2E */ stwx r4, r3, r0 +lbl_803938F8: +/* 803938F8 00390858 C8 22 D3 F0 */ lfd f1, lbl_805AF110@sda21(r2) +/* 803938FC 0039085C 7F 43 D3 78 */ mr r3, r26 +/* 80393900 00390860 48 00 0D 99 */ bl ldexp +/* 80393904 00390864 2C 1F 00 00 */ cmpwi r31, 0 +/* 80393908 00390868 57 E0 10 3A */ slwi r0, r31, 2 +/* 8039390C 0039086C 38 C1 00 08 */ addi r6, r1, 8 +/* 80393910 00390870 57 E8 18 38 */ slwi r8, r31, 3 +/* 80393914 00390874 38 E1 00 58 */ addi r7, r1, 0x58 +/* 80393918 00390878 C8 A2 D3 F8 */ lfd f5, lbl_805AF118@sda21(r2) +/* 8039391C 0039087C C8 02 D3 C8 */ lfd f0, lbl_805AF0E8@sda21(r2) +/* 80393920 00390880 7C C6 02 14 */ add r6, r6, r0 +/* 80393924 00390884 7C E7 42 14 */ add r7, r7, r8 +/* 80393928 00390888 38 7F 00 01 */ addi r3, r31, 1 +/* 8039392C 0039088C 3C 80 43 30 */ lis r4, 0x4330 +/* 80393930 00390890 41 80 00 E8 */ blt lbl_80393A18 +/* 80393934 00390894 54 60 F0 BF */ rlwinm. r0, r3, 0x1e, 2, 0x1f +/* 80393938 00390898 7C 09 03 A6 */ mtctr r0 +/* 8039393C 0039089C 41 82 00 A8 */ beq lbl_803939E4 +lbl_80393940: +/* 80393940 003908A0 80 A6 00 00 */ lwz r5, 0(r6) +/* 80393944 003908A4 90 81 02 50 */ stw r4, 0x250(r1) +/* 80393948 003908A8 6C A0 80 00 */ xoris r0, r5, 0x8000 +/* 8039394C 003908AC 80 A6 FF FC */ lwz r5, -4(r6) +/* 80393950 003908B0 90 01 02 54 */ stw r0, 0x254(r1) +/* 80393954 003908B4 6C A0 80 00 */ xoris r0, r5, 0x8000 +/* 80393958 003908B8 80 A6 FF F8 */ lwz r5, -8(r6) +/* 8039395C 003908BC C8 81 02 50 */ lfd f4, 0x250(r1) +/* 80393960 003908C0 90 01 02 54 */ stw r0, 0x254(r1) +/* 80393964 003908C4 FC 64 28 28 */ fsub f3, f4, f5 +/* 80393968 003908C8 6C A0 80 00 */ xoris r0, r5, 0x8000 +/* 8039396C 003908CC 80 A6 FF F4 */ lwz r5, -0xc(r6) +/* 80393970 003908D0 90 81 02 50 */ stw r4, 0x250(r1) +/* 80393974 003908D4 38 C6 FF F0 */ addi r6, r6, -16 +/* 80393978 003908D8 FC 41 00 F2 */ fmul f2, f1, f3 +/* 8039397C 003908DC C8 81 02 50 */ lfd f4, 0x250(r1) +/* 80393980 003908E0 FC 21 00 32 */ fmul f1, f1, f0 +/* 80393984 003908E4 90 01 02 54 */ stw r0, 0x254(r1) +/* 80393988 003908E8 6C A0 80 00 */ xoris r0, r5, 0x8000 +/* 8039398C 003908EC FC 64 28 28 */ fsub f3, f4, f5 +/* 80393990 003908F0 90 81 02 50 */ stw r4, 0x250(r1) +/* 80393994 003908F4 C8 81 02 50 */ lfd f4, 0x250(r1) +/* 80393998 003908F8 D8 47 00 00 */ stfd f2, 0(r7) +/* 8039399C 003908FC FC 41 00 F2 */ fmul f2, f1, f3 +/* 803939A0 00390900 FC 21 00 32 */ fmul f1, f1, f0 +/* 803939A4 00390904 90 01 02 54 */ stw r0, 0x254(r1) +/* 803939A8 00390908 90 81 02 50 */ stw r4, 0x250(r1) +/* 803939AC 0039090C FC 64 28 28 */ fsub f3, f4, f5 +/* 803939B0 00390910 D8 47 FF F8 */ stfd f2, -8(r7) +/* 803939B4 00390914 FC 41 00 F2 */ fmul f2, f1, f3 +/* 803939B8 00390918 C8 81 02 50 */ lfd f4, 0x250(r1) +/* 803939BC 0039091C FC 21 00 32 */ fmul f1, f1, f0 +/* 803939C0 00390920 FC 64 28 28 */ fsub f3, f4, f5 +/* 803939C4 00390924 D8 47 FF F0 */ stfd f2, -0x10(r7) +/* 803939C8 00390928 FC 41 00 F2 */ fmul f2, f1, f3 +/* 803939CC 0039092C FC 21 00 32 */ fmul f1, f1, f0 +/* 803939D0 00390930 D8 47 FF E8 */ stfd f2, -0x18(r7) +/* 803939D4 00390934 38 E7 FF E0 */ addi r7, r7, -32 +/* 803939D8 00390938 42 00 FF 68 */ bdnz lbl_80393940 +/* 803939DC 0039093C 70 63 00 03 */ andi. r3, r3, 3 +/* 803939E0 00390940 41 82 00 38 */ beq lbl_80393A18 +lbl_803939E4: +/* 803939E4 00390944 7C 69 03 A6 */ mtctr r3 +lbl_803939E8: +/* 803939E8 00390948 80 A6 00 00 */ lwz r5, 0(r6) +/* 803939EC 0039094C 38 C6 FF FC */ addi r6, r6, -4 +/* 803939F0 00390950 90 81 02 50 */ stw r4, 0x250(r1) +/* 803939F4 00390954 6C A0 80 00 */ xoris r0, r5, 0x8000 +/* 803939F8 00390958 90 01 02 54 */ stw r0, 0x254(r1) +/* 803939FC 0039095C C8 81 02 50 */ lfd f4, 0x250(r1) +/* 80393A00 00390960 FC 64 28 28 */ fsub f3, f4, f5 +/* 80393A04 00390964 FC 41 00 F2 */ fmul f2, f1, f3 +/* 80393A08 00390968 FC 21 00 32 */ fmul f1, f1, f0 +/* 80393A0C 0039096C D8 47 00 00 */ stfd f2, 0(r7) +/* 80393A10 00390970 38 E7 FF F8 */ addi r7, r7, -8 +/* 80393A14 00390974 42 00 FF D4 */ bdnz lbl_803939E8 +lbl_80393A18: +/* 80393A18 00390978 3C 60 80 3E */ lis r3, lbl_803D8928@ha +/* 80393A1C 0039097C 38 1F 00 01 */ addi r0, r31, 1 +/* 80393A20 00390980 7F E9 FB 78 */ mr r9, r31 +/* 80393A24 00390984 38 81 00 58 */ addi r4, r1, 0x58 +/* 80393A28 00390988 38 A3 89 28 */ addi r5, r3, lbl_803D8928@l +/* 80393A2C 0039098C 38 61 00 F8 */ addi r3, r1, 0xf8 +/* 80393A30 00390990 7C 09 03 A6 */ mtctr r0 +/* 80393A34 00390994 2C 1F 00 00 */ cmpwi r31, 0 +/* 80393A38 00390998 41 80 00 54 */ blt lbl_80393A8C +lbl_80393A3C: +/* 80393A3C 0039099C C8 42 D3 C0 */ lfd f2, lbl_805AF0E0@sda21(r2) +/* 80393A40 003909A0 7C A6 2B 78 */ mr r6, r5 +/* 80393A44 003909A4 7C E9 F8 50 */ subf r7, r9, r31 +/* 80393A48 003909A8 39 40 00 00 */ li r10, 0 +/* 80393A4C 003909AC 48 00 00 20 */ b lbl_80393A6C +lbl_80393A50: +/* 80393A50 003909B0 7C 09 52 14 */ add r0, r9, r10 +/* 80393A54 003909B4 C8 26 00 00 */ lfd f1, 0(r6) +/* 80393A58 003909B8 54 00 18 38 */ slwi r0, r0, 3 +/* 80393A5C 003909BC 38 C6 00 08 */ addi r6, r6, 8 +/* 80393A60 003909C0 7C 04 04 AE */ lfdx f0, r4, r0 +/* 80393A64 003909C4 39 4A 00 01 */ addi r10, r10, 1 +/* 80393A68 003909C8 FC 41 10 3A */ fmadd f2, f1, f0, f2 +lbl_80393A6C: +/* 80393A6C 003909CC 7C 0A E0 00 */ cmpw r10, r28 +/* 80393A70 003909D0 41 81 00 0C */ bgt lbl_80393A7C +/* 80393A74 003909D4 7C 0A 38 00 */ cmpw r10, r7 +/* 80393A78 003909D8 40 81 FF D8 */ ble lbl_80393A50 +lbl_80393A7C: +/* 80393A7C 003909DC 54 E0 18 38 */ slwi r0, r7, 3 +/* 80393A80 003909E0 39 29 FF FF */ addi r9, r9, -1 +/* 80393A84 003909E4 7C 43 05 AE */ stfdx f2, r3, r0 +/* 80393A88 003909E8 42 00 FF B4 */ bdnz lbl_80393A3C +lbl_80393A8C: +/* 80393A8C 003909EC 2C 17 00 03 */ cmpwi r23, 3 +/* 80393A90 003909F0 41 82 02 24 */ beq lbl_80393CB4 +/* 80393A94 003909F4 40 80 04 60 */ bge lbl_80393EF4 +/* 80393A98 003909F8 2C 17 00 00 */ cmpwi r23, 0 +/* 80393A9C 003909FC 41 82 00 0C */ beq lbl_80393AA8 +/* 80393AA0 00390A00 40 80 00 A8 */ bge lbl_80393B48 +/* 80393AA4 00390A04 48 00 04 50 */ b lbl_80393EF4 +lbl_80393AA8: +/* 80393AA8 00390A08 2C 1F 00 00 */ cmpwi r31, 0 +/* 80393AAC 00390A0C 38 81 00 F8 */ addi r4, r1, 0xf8 +/* 80393AB0 00390A10 C8 22 D3 C0 */ lfd f1, lbl_805AF0E0@sda21(r2) +/* 80393AB4 00390A14 7C 84 42 14 */ add r4, r4, r8 +/* 80393AB8 00390A18 38 7F 00 01 */ addi r3, r31, 1 +/* 80393ABC 00390A1C 41 80 00 74 */ blt lbl_80393B30 +/* 80393AC0 00390A20 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 80393AC4 00390A24 7C 09 03 A6 */ mtctr r0 +/* 80393AC8 00390A28 41 82 00 54 */ beq lbl_80393B1C +lbl_80393ACC: +/* 80393ACC 00390A2C C8 04 00 00 */ lfd f0, 0(r4) +/* 80393AD0 00390A30 FC 21 00 2A */ fadd f1, f1, f0 +/* 80393AD4 00390A34 C8 04 FF F8 */ lfd f0, -8(r4) +/* 80393AD8 00390A38 FC 21 00 2A */ fadd f1, f1, f0 +/* 80393ADC 00390A3C C8 04 FF F0 */ lfd f0, -0x10(r4) +/* 80393AE0 00390A40 FC 21 00 2A */ fadd f1, f1, f0 +/* 80393AE4 00390A44 C8 04 FF E8 */ lfd f0, -0x18(r4) +/* 80393AE8 00390A48 FC 21 00 2A */ fadd f1, f1, f0 +/* 80393AEC 00390A4C C8 04 FF E0 */ lfd f0, -0x20(r4) +/* 80393AF0 00390A50 FC 21 00 2A */ fadd f1, f1, f0 +/* 80393AF4 00390A54 C8 04 FF D8 */ lfd f0, -0x28(r4) +/* 80393AF8 00390A58 FC 21 00 2A */ fadd f1, f1, f0 +/* 80393AFC 00390A5C C8 04 FF D0 */ lfd f0, -0x30(r4) +/* 80393B00 00390A60 FC 21 00 2A */ fadd f1, f1, f0 +/* 80393B04 00390A64 C8 04 FF C8 */ lfd f0, -0x38(r4) +/* 80393B08 00390A68 38 84 FF C0 */ addi r4, r4, -64 +/* 80393B0C 00390A6C FC 21 00 2A */ fadd f1, f1, f0 +/* 80393B10 00390A70 42 00 FF BC */ bdnz lbl_80393ACC +/* 80393B14 00390A74 70 63 00 07 */ andi. r3, r3, 7 +/* 80393B18 00390A78 41 82 00 18 */ beq lbl_80393B30 +lbl_80393B1C: +/* 80393B1C 00390A7C 7C 69 03 A6 */ mtctr r3 +lbl_80393B20: +/* 80393B20 00390A80 C8 04 00 00 */ lfd f0, 0(r4) +/* 80393B24 00390A84 38 84 FF F8 */ addi r4, r4, -8 +/* 80393B28 00390A88 FC 21 00 2A */ fadd f1, f1, f0 +/* 80393B2C 00390A8C 42 00 FF F4 */ bdnz lbl_80393B20 +lbl_80393B30: +/* 80393B30 00390A90 2C 19 00 00 */ cmpwi r25, 0 +/* 80393B34 00390A94 40 82 00 08 */ bne lbl_80393B3C +/* 80393B38 00390A98 48 00 00 08 */ b lbl_80393B40 +lbl_80393B3C: +/* 80393B3C 00390A9C FC 20 08 50 */ fneg f1, f1 +lbl_80393B40: +/* 80393B40 00390AA0 D8 36 00 00 */ stfd f1, 0(r22) +/* 80393B44 00390AA4 48 00 03 B0 */ b lbl_80393EF4 +lbl_80393B48: +/* 80393B48 00390AA8 2C 1F 00 00 */ cmpwi r31, 0 +/* 80393B4C 00390AAC 38 81 00 F8 */ addi r4, r1, 0xf8 +/* 80393B50 00390AB0 C8 42 D3 C0 */ lfd f2, lbl_805AF0E0@sda21(r2) +/* 80393B54 00390AB4 7C 84 42 14 */ add r4, r4, r8 +/* 80393B58 00390AB8 38 7F 00 01 */ addi r3, r31, 1 +/* 80393B5C 00390ABC 41 80 00 74 */ blt lbl_80393BD0 +/* 80393B60 00390AC0 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 80393B64 00390AC4 7C 09 03 A6 */ mtctr r0 +/* 80393B68 00390AC8 41 82 00 54 */ beq lbl_80393BBC +lbl_80393B6C: +/* 80393B6C 00390ACC C8 04 00 00 */ lfd f0, 0(r4) +/* 80393B70 00390AD0 FC 42 00 2A */ fadd f2, f2, f0 +/* 80393B74 00390AD4 C8 04 FF F8 */ lfd f0, -8(r4) +/* 80393B78 00390AD8 FC 42 00 2A */ fadd f2, f2, f0 +/* 80393B7C 00390ADC C8 04 FF F0 */ lfd f0, -0x10(r4) +/* 80393B80 00390AE0 FC 42 00 2A */ fadd f2, f2, f0 +/* 80393B84 00390AE4 C8 04 FF E8 */ lfd f0, -0x18(r4) +/* 80393B88 00390AE8 FC 42 00 2A */ fadd f2, f2, f0 +/* 80393B8C 00390AEC C8 04 FF E0 */ lfd f0, -0x20(r4) +/* 80393B90 00390AF0 FC 42 00 2A */ fadd f2, f2, f0 +/* 80393B94 00390AF4 C8 04 FF D8 */ lfd f0, -0x28(r4) +/* 80393B98 00390AF8 FC 42 00 2A */ fadd f2, f2, f0 +/* 80393B9C 00390AFC C8 04 FF D0 */ lfd f0, -0x30(r4) +/* 80393BA0 00390B00 FC 42 00 2A */ fadd f2, f2, f0 +/* 80393BA4 00390B04 C8 04 FF C8 */ lfd f0, -0x38(r4) +/* 80393BA8 00390B08 38 84 FF C0 */ addi r4, r4, -64 +/* 80393BAC 00390B0C FC 42 00 2A */ fadd f2, f2, f0 +/* 80393BB0 00390B10 42 00 FF BC */ bdnz lbl_80393B6C +/* 80393BB4 00390B14 70 63 00 07 */ andi. r3, r3, 7 +/* 80393BB8 00390B18 41 82 00 18 */ beq lbl_80393BD0 +lbl_80393BBC: +/* 80393BBC 00390B1C 7C 69 03 A6 */ mtctr r3 +lbl_80393BC0: +/* 80393BC0 00390B20 C8 04 00 00 */ lfd f0, 0(r4) +/* 80393BC4 00390B24 38 84 FF F8 */ addi r4, r4, -8 +/* 80393BC8 00390B28 FC 42 00 2A */ fadd f2, f2, f0 +/* 80393BCC 00390B2C 42 00 FF F4 */ bdnz lbl_80393BC0 +lbl_80393BD0: +/* 80393BD0 00390B30 2C 19 00 00 */ cmpwi r25, 0 +/* 80393BD4 00390B34 40 82 00 0C */ bne lbl_80393BE0 +/* 80393BD8 00390B38 FC 20 10 90 */ fmr f1, f2 +/* 80393BDC 00390B3C 48 00 00 08 */ b lbl_80393BE4 +lbl_80393BE0: +/* 80393BE0 00390B40 FC 20 10 50 */ fneg f1, f2 +lbl_80393BE4: +/* 80393BE4 00390B44 C8 01 00 F8 */ lfd f0, 0xf8(r1) +/* 80393BE8 00390B48 2C 1F 00 01 */ cmpwi r31, 1 +/* 80393BEC 00390B4C D8 36 00 00 */ stfd f1, 0(r22) +/* 80393BF0 00390B50 38 A0 00 01 */ li r5, 1 +/* 80393BF4 00390B54 FC C0 10 28 */ fsub f6, f0, f2 +/* 80393BF8 00390B58 41 80 00 A4 */ blt lbl_80393C9C +/* 80393BFC 00390B5C 2C 1F 00 08 */ cmpwi r31, 8 +/* 80393C00 00390B60 38 7F FF F8 */ addi r3, r31, -8 +/* 80393C04 00390B64 40 81 00 68 */ ble lbl_80393C6C +/* 80393C08 00390B68 38 03 00 07 */ addi r0, r3, 7 +/* 80393C0C 00390B6C 38 81 01 00 */ addi r4, r1, 0x100 +/* 80393C10 00390B70 54 00 E8 FE */ srwi r0, r0, 3 +/* 80393C14 00390B74 7C 09 03 A6 */ mtctr r0 +/* 80393C18 00390B78 2C 03 00 01 */ cmpwi r3, 1 +/* 80393C1C 00390B7C 41 80 00 50 */ blt lbl_80393C6C +lbl_80393C20: +/* 80393C20 00390B80 C8 24 00 00 */ lfd f1, 0(r4) +/* 80393C24 00390B84 38 A5 00 08 */ addi r5, r5, 8 +/* 80393C28 00390B88 C8 04 00 08 */ lfd f0, 8(r4) +/* 80393C2C 00390B8C FC C6 08 2A */ fadd f6, f6, f1 +/* 80393C30 00390B90 C8 A4 00 10 */ lfd f5, 0x10(r4) +/* 80393C34 00390B94 C8 84 00 18 */ lfd f4, 0x18(r4) +/* 80393C38 00390B98 C8 64 00 20 */ lfd f3, 0x20(r4) +/* 80393C3C 00390B9C FC C6 00 2A */ fadd f6, f6, f0 +/* 80393C40 00390BA0 C8 44 00 28 */ lfd f2, 0x28(r4) +/* 80393C44 00390BA4 C8 24 00 30 */ lfd f1, 0x30(r4) +/* 80393C48 00390BA8 C8 04 00 38 */ lfd f0, 0x38(r4) +/* 80393C4C 00390BAC 38 84 00 40 */ addi r4, r4, 0x40 +/* 80393C50 00390BB0 FC C6 28 2A */ fadd f6, f6, f5 +/* 80393C54 00390BB4 FC C6 20 2A */ fadd f6, f6, f4 +/* 80393C58 00390BB8 FC C6 18 2A */ fadd f6, f6, f3 +/* 80393C5C 00390BBC FC C6 10 2A */ fadd f6, f6, f2 +/* 80393C60 00390BC0 FC C6 08 2A */ fadd f6, f6, f1 +/* 80393C64 00390BC4 FC C6 00 2A */ fadd f6, f6, f0 +/* 80393C68 00390BC8 42 00 FF B8 */ bdnz lbl_80393C20 +lbl_80393C6C: +/* 80393C6C 00390BCC 38 1F 00 01 */ addi r0, r31, 1 +/* 80393C70 00390BD0 54 A3 18 38 */ slwi r3, r5, 3 +/* 80393C74 00390BD4 38 81 00 F8 */ addi r4, r1, 0xf8 +/* 80393C78 00390BD8 7C 05 00 50 */ subf r0, r5, r0 +/* 80393C7C 00390BDC 7C 84 1A 14 */ add r4, r4, r3 +/* 80393C80 00390BE0 7C 09 03 A6 */ mtctr r0 +/* 80393C84 00390BE4 7C 05 F8 00 */ cmpw r5, r31 +/* 80393C88 00390BE8 41 81 00 14 */ bgt lbl_80393C9C +lbl_80393C8C: +/* 80393C8C 00390BEC C8 04 00 00 */ lfd f0, 0(r4) +/* 80393C90 00390BF0 38 84 00 08 */ addi r4, r4, 8 +/* 80393C94 00390BF4 FC C6 00 2A */ fadd f6, f6, f0 +/* 80393C98 00390BF8 42 00 FF F4 */ bdnz lbl_80393C8C +lbl_80393C9C: +/* 80393C9C 00390BFC 2C 19 00 00 */ cmpwi r25, 0 +/* 80393CA0 00390C00 40 82 00 08 */ bne lbl_80393CA8 +/* 80393CA4 00390C04 48 00 00 08 */ b lbl_80393CAC +lbl_80393CA8: +/* 80393CA8 00390C08 FC C0 30 50 */ fneg f6, f6 +lbl_80393CAC: +/* 80393CAC 00390C0C D8 D6 00 08 */ stfd f6, 8(r22) +/* 80393CB0 00390C10 48 00 02 44 */ b lbl_80393EF4 +lbl_80393CB4: +/* 80393CB4 00390C14 38 A1 00 F8 */ addi r5, r1, 0xf8 +/* 80393CB8 00390C18 2C 1F 00 00 */ cmpwi r31, 0 +/* 80393CBC 00390C1C 7C A5 42 14 */ add r5, r5, r8 +/* 80393CC0 00390C20 7F E3 FB 78 */ mr r3, r31 +/* 80393CC4 00390C24 7C A4 2B 78 */ mr r4, r5 +/* 80393CC8 00390C28 40 81 00 B0 */ ble lbl_80393D78 +/* 80393CCC 00390C2C 57 E0 F0 BF */ rlwinm. r0, r31, 0x1e, 2, 0x1f +/* 80393CD0 00390C30 7C 09 03 A6 */ mtctr r0 +/* 80393CD4 00390C34 41 82 00 80 */ beq lbl_80393D54 +lbl_80393CD8: +/* 80393CD8 00390C38 C8 04 FF F8 */ lfd f0, -8(r4) +/* 80393CDC 00390C3C C8 24 00 00 */ lfd f1, 0(r4) +/* 80393CE0 00390C40 FC 40 08 2A */ fadd f2, f0, f1 +/* 80393CE4 00390C44 FC 00 10 28 */ fsub f0, f0, f2 +/* 80393CE8 00390C48 FC 01 00 2A */ fadd f0, f1, f0 +/* 80393CEC 00390C4C D8 04 00 00 */ stfd f0, 0(r4) +/* 80393CF0 00390C50 D8 44 FF F8 */ stfd f2, -8(r4) +/* 80393CF4 00390C54 C8 04 FF F0 */ lfd f0, -0x10(r4) +/* 80393CF8 00390C58 C8 24 FF F8 */ lfd f1, -8(r4) +/* 80393CFC 00390C5C FC 40 08 2A */ fadd f2, f0, f1 +/* 80393D00 00390C60 FC 00 10 28 */ fsub f0, f0, f2 +/* 80393D04 00390C64 FC 01 00 2A */ fadd f0, f1, f0 +/* 80393D08 00390C68 D8 04 FF F8 */ stfd f0, -8(r4) +/* 80393D0C 00390C6C D8 44 FF F0 */ stfd f2, -0x10(r4) +/* 80393D10 00390C70 C8 04 FF E8 */ lfd f0, -0x18(r4) +/* 80393D14 00390C74 C8 24 FF F0 */ lfd f1, -0x10(r4) +/* 80393D18 00390C78 FC 40 08 2A */ fadd f2, f0, f1 +/* 80393D1C 00390C7C FC 00 10 28 */ fsub f0, f0, f2 +/* 80393D20 00390C80 FC 01 00 2A */ fadd f0, f1, f0 +/* 80393D24 00390C84 D8 04 FF F0 */ stfd f0, -0x10(r4) +/* 80393D28 00390C88 D8 44 FF E8 */ stfd f2, -0x18(r4) +/* 80393D2C 00390C8C C8 04 FF E0 */ lfd f0, -0x20(r4) +/* 80393D30 00390C90 C8 24 FF E8 */ lfd f1, -0x18(r4) +/* 80393D34 00390C94 FC 40 08 2A */ fadd f2, f0, f1 +/* 80393D38 00390C98 FC 00 10 28 */ fsub f0, f0, f2 +/* 80393D3C 00390C9C FC 01 00 2A */ fadd f0, f1, f0 +/* 80393D40 00390CA0 D8 04 FF E8 */ stfd f0, -0x18(r4) +/* 80393D44 00390CA4 DC 44 FF E0 */ stfdu f2, -0x20(r4) +/* 80393D48 00390CA8 42 00 FF 90 */ bdnz lbl_80393CD8 +/* 80393D4C 00390CAC 70 63 00 03 */ andi. r3, r3, 3 +/* 80393D50 00390CB0 41 82 00 28 */ beq lbl_80393D78 +lbl_80393D54: +/* 80393D54 00390CB4 7C 69 03 A6 */ mtctr r3 +lbl_80393D58: +/* 80393D58 00390CB8 C8 04 FF F8 */ lfd f0, -8(r4) +/* 80393D5C 00390CBC C8 24 00 00 */ lfd f1, 0(r4) +/* 80393D60 00390CC0 FC 40 08 2A */ fadd f2, f0, f1 +/* 80393D64 00390CC4 FC 00 10 28 */ fsub f0, f0, f2 +/* 80393D68 00390CC8 FC 01 00 2A */ fadd f0, f1, f0 +/* 80393D6C 00390CCC D8 04 00 00 */ stfd f0, 0(r4) +/* 80393D70 00390CD0 DC 44 FF F8 */ stfdu f2, -8(r4) +/* 80393D74 00390CD4 42 00 FF E4 */ bdnz lbl_80393D58 +lbl_80393D78: +/* 80393D78 00390CD8 2C 1F 00 01 */ cmpwi r31, 1 +/* 80393D7C 00390CDC 7C A4 2B 78 */ mr r4, r5 +/* 80393D80 00390CE0 38 7F FF FF */ addi r3, r31, -1 +/* 80393D84 00390CE4 40 81 00 B0 */ ble lbl_80393E34 +/* 80393D88 00390CE8 54 60 F0 BF */ rlwinm. r0, r3, 0x1e, 2, 0x1f +/* 80393D8C 00390CEC 7C 09 03 A6 */ mtctr r0 +/* 80393D90 00390CF0 41 82 00 80 */ beq lbl_80393E10 +lbl_80393D94: +/* 80393D94 00390CF4 C8 04 FF F8 */ lfd f0, -8(r4) +/* 80393D98 00390CF8 C8 24 00 00 */ lfd f1, 0(r4) +/* 80393D9C 00390CFC FC 40 08 2A */ fadd f2, f0, f1 +/* 80393DA0 00390D00 FC 00 10 28 */ fsub f0, f0, f2 +/* 80393DA4 00390D04 FC 01 00 2A */ fadd f0, f1, f0 +/* 80393DA8 00390D08 D8 04 00 00 */ stfd f0, 0(r4) +/* 80393DAC 00390D0C D8 44 FF F8 */ stfd f2, -8(r4) +/* 80393DB0 00390D10 C8 04 FF F0 */ lfd f0, -0x10(r4) +/* 80393DB4 00390D14 C8 24 FF F8 */ lfd f1, -8(r4) +/* 80393DB8 00390D18 FC 40 08 2A */ fadd f2, f0, f1 +/* 80393DBC 00390D1C FC 00 10 28 */ fsub f0, f0, f2 +/* 80393DC0 00390D20 FC 01 00 2A */ fadd f0, f1, f0 +/* 80393DC4 00390D24 D8 04 FF F8 */ stfd f0, -8(r4) +/* 80393DC8 00390D28 D8 44 FF F0 */ stfd f2, -0x10(r4) +/* 80393DCC 00390D2C C8 04 FF E8 */ lfd f0, -0x18(r4) +/* 80393DD0 00390D30 C8 24 FF F0 */ lfd f1, -0x10(r4) +/* 80393DD4 00390D34 FC 40 08 2A */ fadd f2, f0, f1 +/* 80393DD8 00390D38 FC 00 10 28 */ fsub f0, f0, f2 +/* 80393DDC 00390D3C FC 01 00 2A */ fadd f0, f1, f0 +/* 80393DE0 00390D40 D8 04 FF F0 */ stfd f0, -0x10(r4) +/* 80393DE4 00390D44 D8 44 FF E8 */ stfd f2, -0x18(r4) +/* 80393DE8 00390D48 C8 04 FF E0 */ lfd f0, -0x20(r4) +/* 80393DEC 00390D4C C8 24 FF E8 */ lfd f1, -0x18(r4) +/* 80393DF0 00390D50 FC 40 08 2A */ fadd f2, f0, f1 +/* 80393DF4 00390D54 FC 00 10 28 */ fsub f0, f0, f2 +/* 80393DF8 00390D58 FC 01 00 2A */ fadd f0, f1, f0 +/* 80393DFC 00390D5C D8 04 FF E8 */ stfd f0, -0x18(r4) +/* 80393E00 00390D60 DC 44 FF E0 */ stfdu f2, -0x20(r4) +/* 80393E04 00390D64 42 00 FF 90 */ bdnz lbl_80393D94 +/* 80393E08 00390D68 70 63 00 03 */ andi. r3, r3, 3 +/* 80393E0C 00390D6C 41 82 00 28 */ beq lbl_80393E34 +lbl_80393E10: +/* 80393E10 00390D70 7C 69 03 A6 */ mtctr r3 +lbl_80393E14: +/* 80393E14 00390D74 C8 04 FF F8 */ lfd f0, -8(r4) +/* 80393E18 00390D78 C8 24 00 00 */ lfd f1, 0(r4) +/* 80393E1C 00390D7C FC 40 08 2A */ fadd f2, f0, f1 +/* 80393E20 00390D80 FC 00 10 28 */ fsub f0, f0, f2 +/* 80393E24 00390D84 FC 01 00 2A */ fadd f0, f1, f0 +/* 80393E28 00390D88 D8 04 00 00 */ stfd f0, 0(r4) +/* 80393E2C 00390D8C DC 44 FF F8 */ stfdu f2, -8(r4) +/* 80393E30 00390D90 42 00 FF E4 */ bdnz lbl_80393E14 +lbl_80393E34: +/* 80393E34 00390D94 2C 1F 00 02 */ cmpwi r31, 2 +/* 80393E38 00390D98 C8 62 D3 C0 */ lfd f3, lbl_805AF0E0@sda21(r2) +/* 80393E3C 00390D9C 38 7F FF FF */ addi r3, r31, -1 +/* 80393E40 00390DA0 41 80 00 74 */ blt lbl_80393EB4 +/* 80393E44 00390DA4 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 80393E48 00390DA8 7C 09 03 A6 */ mtctr r0 +/* 80393E4C 00390DAC 41 82 00 54 */ beq lbl_80393EA0 +lbl_80393E50: +/* 80393E50 00390DB0 C8 05 00 00 */ lfd f0, 0(r5) +/* 80393E54 00390DB4 FC 63 00 2A */ fadd f3, f3, f0 +/* 80393E58 00390DB8 C8 05 FF F8 */ lfd f0, -8(r5) +/* 80393E5C 00390DBC FC 63 00 2A */ fadd f3, f3, f0 +/* 80393E60 00390DC0 C8 05 FF F0 */ lfd f0, -0x10(r5) +/* 80393E64 00390DC4 FC 63 00 2A */ fadd f3, f3, f0 +/* 80393E68 00390DC8 C8 05 FF E8 */ lfd f0, -0x18(r5) +/* 80393E6C 00390DCC FC 63 00 2A */ fadd f3, f3, f0 +/* 80393E70 00390DD0 C8 05 FF E0 */ lfd f0, -0x20(r5) +/* 80393E74 00390DD4 FC 63 00 2A */ fadd f3, f3, f0 +/* 80393E78 00390DD8 C8 05 FF D8 */ lfd f0, -0x28(r5) +/* 80393E7C 00390DDC FC 63 00 2A */ fadd f3, f3, f0 +/* 80393E80 00390DE0 C8 05 FF D0 */ lfd f0, -0x30(r5) +/* 80393E84 00390DE4 FC 63 00 2A */ fadd f3, f3, f0 +/* 80393E88 00390DE8 C8 05 FF C8 */ lfd f0, -0x38(r5) +/* 80393E8C 00390DEC 38 A5 FF C0 */ addi r5, r5, -64 +/* 80393E90 00390DF0 FC 63 00 2A */ fadd f3, f3, f0 +/* 80393E94 00390DF4 42 00 FF BC */ bdnz lbl_80393E50 +/* 80393E98 00390DF8 70 63 00 07 */ andi. r3, r3, 7 +/* 80393E9C 00390DFC 41 82 00 18 */ beq lbl_80393EB4 +lbl_80393EA0: +/* 80393EA0 00390E00 7C 69 03 A6 */ mtctr r3 +lbl_80393EA4: +/* 80393EA4 00390E04 C8 05 00 00 */ lfd f0, 0(r5) +/* 80393EA8 00390E08 38 A5 FF F8 */ addi r5, r5, -8 +/* 80393EAC 00390E0C FC 63 00 2A */ fadd f3, f3, f0 +/* 80393EB0 00390E10 42 00 FF F4 */ bdnz lbl_80393EA4 +lbl_80393EB4: +/* 80393EB4 00390E14 2C 19 00 00 */ cmpwi r25, 0 +/* 80393EB8 00390E18 40 82 00 1C */ bne lbl_80393ED4 +/* 80393EBC 00390E1C C8 21 00 F8 */ lfd f1, 0xf8(r1) +/* 80393EC0 00390E20 C8 01 01 00 */ lfd f0, 0x100(r1) +/* 80393EC4 00390E24 D8 36 00 00 */ stfd f1, 0(r22) +/* 80393EC8 00390E28 D8 16 00 08 */ stfd f0, 8(r22) +/* 80393ECC 00390E2C D8 76 00 10 */ stfd f3, 0x10(r22) +/* 80393ED0 00390E30 48 00 00 24 */ b lbl_80393EF4 +lbl_80393ED4: +/* 80393ED4 00390E34 C8 41 00 F8 */ lfd f2, 0xf8(r1) +/* 80393ED8 00390E38 FC 00 18 50 */ fneg f0, f3 +/* 80393EDC 00390E3C C8 21 01 00 */ lfd f1, 0x100(r1) +/* 80393EE0 00390E40 FC 40 10 50 */ fneg f2, f2 +/* 80393EE4 00390E44 FC 20 08 50 */ fneg f1, f1 +/* 80393EE8 00390E48 D8 56 00 00 */ stfd f2, 0(r22) +/* 80393EEC 00390E4C D8 36 00 08 */ stfd f1, 8(r22) +/* 80393EF0 00390E50 D8 16 00 10 */ stfd f0, 0x10(r22) +lbl_80393EF4: +/* 80393EF4 00390E54 57 63 07 7E */ clrlwi r3, r27, 0x1d +/* 80393EF8 00390E58 39 61 02 D0 */ addi r11, r1, 0x2d0 +/* 80393EFC 00390E5C 4B FF 5B 2D */ bl sub_80389a28 +/* 80393F00 00390E60 BA 01 02 58 */ lmw r16, 0x258(r1) +/* 80393F04 00390E64 80 01 02 D4 */ lwz r0, 0x2d4(r1) +/* 80393F08 00390E68 7C 08 03 A6 */ mtlr r0 +/* 80393F0C 00390E6C 38 21 02 D0 */ addi r1, r1, 0x2d0 +/* 80393F10 00390E70 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/k_sin.s b/asm/Runtime/PPCEABI/H/k_sin.s new file mode 100644 index 00000000..83a00700 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/k_sin.s @@ -0,0 +1,49 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __kernel_sin +__kernel_sin: +/* 80393F14 00390E74 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80393F18 00390E78 3C 00 3E 40 */ lis r0, 0x3e40 +/* 80393F1C 00390E7C D8 21 00 08 */ stfd f1, 8(r1) +/* 80393F20 00390E80 80 81 00 08 */ lwz r4, 8(r1) +/* 80393F24 00390E84 54 84 00 7E */ clrlwi r4, r4, 1 +/* 80393F28 00390E88 7C 04 00 00 */ cmpw r4, r0 +/* 80393F2C 00390E8C 40 80 00 1C */ bge lbl_80393F48 +/* 80393F30 00390E90 FC 00 08 1E */ fctiwz f0, f1 +/* 80393F34 00390E94 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 80393F38 00390E98 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80393F3C 00390E9C 2C 00 00 00 */ cmpwi r0, 0 +/* 80393F40 00390EA0 40 82 00 08 */ bne lbl_80393F48 +/* 80393F44 00390EA4 48 00 00 68 */ b lbl_80393FAC +lbl_80393F48: +/* 80393F48 00390EA8 C8 C1 00 08 */ lfd f6, 8(r1) +/* 80393F4C 00390EAC 2C 03 00 00 */ cmpwi r3, 0 +/* 80393F50 00390EB0 C8 A2 D4 20 */ lfd f5, lbl_805AF140@sda21(r2) +/* 80393F54 00390EB4 FC E6 01 B2 */ fmul f7, f6, f6 +/* 80393F58 00390EB8 C8 82 D4 18 */ lfd f4, lbl_805AF138@sda21(r2) +/* 80393F5C 00390EBC C8 62 D4 10 */ lfd f3, lbl_805AF130@sda21(r2) +/* 80393F60 00390EC0 C8 22 D4 08 */ lfd f1, lbl_805AF128@sda21(r2) +/* 80393F64 00390EC4 C8 02 D4 00 */ lfd f0, lbl_805AF120@sda21(r2) +/* 80393F68 00390EC8 FC 85 21 FA */ fmadd f4, f5, f7, f4 +/* 80393F6C 00390ECC FC A7 01 B2 */ fmul f5, f7, f6 +/* 80393F70 00390ED0 FC 67 19 3A */ fmadd f3, f7, f4, f3 +/* 80393F74 00390ED4 FC 27 08 FA */ fmadd f1, f7, f3, f1 +/* 80393F78 00390ED8 FC 27 00 7A */ fmadd f1, f7, f1, f0 +/* 80393F7C 00390EDC 40 82 00 14 */ bne lbl_80393F90 +/* 80393F80 00390EE0 C8 02 D4 28 */ lfd f0, lbl_805AF148@sda21(r2) +/* 80393F84 00390EE4 FC 07 00 7A */ fmadd f0, f7, f1, f0 +/* 80393F88 00390EE8 FC 25 30 3A */ fmadd f1, f5, f0, f6 +/* 80393F8C 00390EEC 48 00 00 20 */ b lbl_80393FAC +lbl_80393F90: +/* 80393F90 00390EF0 FC 05 00 72 */ fmul f0, f5, f1 +/* 80393F94 00390EF4 C8 22 D4 30 */ lfd f1, lbl_805AF150@sda21(r2) +/* 80393F98 00390EF8 C8 62 D4 28 */ lfd f3, lbl_805AF148@sda21(r2) +/* 80393F9C 00390EFC FC 01 00 B8 */ fmsub f0, f1, f2, f0 +/* 80393FA0 00390F00 FC 07 10 38 */ fmsub f0, f7, f0, f2 +/* 80393FA4 00390F04 FC 03 01 7C */ fnmsub f0, f3, f5, f0 +/* 80393FA8 00390F08 FC 26 00 28 */ fsub f1, f6, f0 +lbl_80393FAC: +/* 80393FAC 00390F0C 38 21 00 20 */ addi r1, r1, 0x20 +/* 80393FB0 00390F10 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/k_tan.s b/asm/Runtime/PPCEABI/H/k_tan.s new file mode 100644 index 00000000..918db14c --- /dev/null +++ b/asm/Runtime/PPCEABI/H/k_tan.s @@ -0,0 +1,147 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __kernel_tan +__kernel_tan: +/* 80393FB4 00390F14 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 80393FB8 00390F18 DB E1 00 30 */ stfd f31, 0x30(r1) +/* 80393FBC 00390F1C F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0 +/* 80393FC0 00390F20 D8 21 00 08 */ stfd f1, 8(r1) +/* 80393FC4 00390F24 3C 00 3E 30 */ lis r0, 0x3e30 +/* 80393FC8 00390F28 80 E1 00 08 */ lwz r7, 8(r1) +/* 80393FCC 00390F2C 54 E6 00 7E */ clrlwi r6, r7, 1 +/* 80393FD0 00390F30 7C 06 00 00 */ cmpw r6, r0 +/* 80393FD4 00390F34 40 80 00 54 */ bge lbl_80394028 +/* 80393FD8 00390F38 FC 00 08 1E */ fctiwz f0, f1 +/* 80393FDC 00390F3C D8 01 00 20 */ stfd f0, 0x20(r1) +/* 80393FE0 00390F40 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80393FE4 00390F44 2C 00 00 00 */ cmpwi r0, 0 +/* 80393FE8 00390F48 40 82 00 40 */ bne lbl_80394028 +/* 80393FEC 00390F4C 80 01 00 0C */ lwz r0, 0xc(r1) +/* 80393FF0 00390F50 38 83 00 01 */ addi r4, r3, 1 +/* 80393FF4 00390F54 7C C0 03 78 */ or r0, r6, r0 +/* 80393FF8 00390F58 7C 80 03 79 */ or. r0, r4, r0 +/* 80393FFC 00390F5C 40 82 00 14 */ bne lbl_80394010 +/* 80394000 00390F60 FC 20 0A 10 */ fabs f1, f1 +/* 80394004 00390F64 C8 02 D4 38 */ lfd f0, lbl_805AF158@sda21(r2) +/* 80394008 00390F68 FC 20 08 24 */ fdiv f1, f0, f1 +/* 8039400C 00390F6C 48 00 01 AC */ b lbl_803941B8 +lbl_80394010: +/* 80394010 00390F70 2C 03 00 01 */ cmpwi r3, 1 +/* 80394014 00390F74 40 82 00 08 */ bne lbl_8039401C +/* 80394018 00390F78 48 00 01 A0 */ b lbl_803941B8 +lbl_8039401C: +/* 8039401C 00390F7C C8 02 D4 40 */ lfd f0, lbl_805AF160@sda21(r2) +/* 80394020 00390F80 FC 20 08 24 */ fdiv f1, f0, f1 +/* 80394024 00390F84 48 00 01 94 */ b lbl_803941B8 +lbl_80394028: +/* 80394028 00390F88 3C 80 3F E6 */ lis r4, 0x3FE59428@ha +/* 8039402C 00390F8C 38 04 94 28 */ addi r0, r4, 0x3FE59428@l +/* 80394030 00390F90 7C 06 00 00 */ cmpw r6, r0 +/* 80394034 00390F94 41 80 00 40 */ blt lbl_80394074 +/* 80394038 00390F98 2C 07 00 00 */ cmpwi r7, 0 +/* 8039403C 00390F9C 40 80 00 14 */ bge lbl_80394050 +/* 80394040 00390FA0 C8 01 00 08 */ lfd f0, 8(r1) +/* 80394044 00390FA4 FC 40 10 50 */ fneg f2, f2 +/* 80394048 00390FA8 FC 00 00 50 */ fneg f0, f0 +/* 8039404C 00390FAC D8 01 00 08 */ stfd f0, 8(r1) +lbl_80394050: +/* 80394050 00390FB0 C8 02 D4 50 */ lfd f0, lbl_805AF170@sda21(r2) +/* 80394054 00390FB4 C8 62 D4 48 */ lfd f3, lbl_805AF168@sda21(r2) +/* 80394058 00390FB8 C8 21 00 08 */ lfd f1, 8(r1) +/* 8039405C 00390FBC FC 00 10 28 */ fsub f0, f0, f2 +/* 80394060 00390FC0 C8 42 D4 58 */ lfd f2, lbl_805AF178@sda21(r2) +/* 80394064 00390FC4 FC 23 08 28 */ fsub f1, f3, f1 +/* 80394068 00390FC8 FC 01 00 2A */ fadd f0, f1, f0 +/* 8039406C 00390FCC D8 21 00 18 */ stfd f1, 0x18(r1) +/* 80394070 00390FD0 D8 01 00 08 */ stfd f0, 8(r1) +lbl_80394074: +/* 80394074 00390FD4 C8 01 00 08 */ lfd f0, 8(r1) +/* 80394078 00390FD8 3C 80 80 3E */ lis r4, lbl_803D8968@ha +/* 8039407C 00390FDC 38 A4 89 68 */ addi r5, r4, lbl_803D8968@l +/* 80394080 00390FE0 3C 80 3F E6 */ lis r4, 0x3FE59428@ha +/* 80394084 00390FE4 FD A0 00 32 */ fmul f13, f0, f0 +/* 80394088 00390FE8 38 04 94 28 */ addi r0, r4, 0x3FE59428@l +/* 8039408C 00390FEC C8 A5 00 60 */ lfd f5, 0x60(r5) +/* 80394090 00390FF0 7C 06 00 00 */ cmpw r6, r0 +/* 80394094 00390FF4 C8 85 00 50 */ lfd f4, 0x50(r5) +/* 80394098 00390FF8 C9 25 00 58 */ lfd f9, 0x58(r5) +/* 8039409C 00390FFC FF ED 03 72 */ fmul f31, f13, f13 +/* 803940A0 00391000 C9 05 00 48 */ lfd f8, 0x48(r5) +/* 803940A4 00391004 C8 65 00 40 */ lfd f3, 0x40(r5) +/* 803940A8 00391008 C9 65 00 38 */ lfd f11, 0x38(r5) +/* 803940AC 0039100C FC 2D 00 32 */ fmul f1, f13, f0 +/* 803940B0 00391010 C8 C5 00 30 */ lfd f6, 0x30(r5) +/* 803940B4 00391014 FC FF 21 7A */ fmadd f7, f31, f5, f4 +/* 803940B8 00391018 C9 45 00 28 */ lfd f10, 0x28(r5) +/* 803940BC 0039101C C8 A5 00 20 */ lfd f5, 0x20(r5) +/* 803940C0 00391020 FD 9F 42 7A */ fmadd f12, f31, f9, f8 +/* 803940C4 00391024 C9 25 00 18 */ lfd f9, 0x18(r5) +/* 803940C8 00391028 C8 85 00 10 */ lfd f4, 0x10(r5) +/* 803940CC 0039102C FC FF 19 FA */ fmadd f7, f31, f7, f3 +/* 803940D0 00391030 C9 05 00 08 */ lfd f8, 8(r5) +/* 803940D4 00391034 C8 65 00 00 */ lfd f3, 0(r5) +/* 803940D8 00391038 FD 7F 5B 3A */ fmadd f11, f31, f12, f11 +/* 803940DC 0039103C D9 A1 00 18 */ stfd f13, 0x18(r1) +/* 803940E0 00391040 FC DF 31 FA */ fmadd f6, f31, f7, f6 +/* 803940E4 00391044 FC FF 52 FA */ fmadd f7, f31, f11, f10 +/* 803940E8 00391048 FC BF 29 BA */ fmadd f5, f31, f6, f5 +/* 803940EC 0039104C FC DF 49 FA */ fmadd f6, f31, f7, f9 +/* 803940F0 00391050 FC 9F 21 7A */ fmadd f4, f31, f5, f4 +/* 803940F4 00391054 FC BF 41 BA */ fmadd f5, f31, f6, f8 +/* 803940F8 00391058 FC 8D 01 32 */ fmul f4, f13, f4 +/* 803940FC 0039105C FC 85 20 2A */ fadd f4, f5, f4 +/* 80394100 00391060 FC 81 11 3A */ fmadd f4, f1, f4, f2 +/* 80394104 00391064 FC CD 11 3A */ fmadd f6, f13, f4, f2 +/* 80394108 00391068 FC C3 30 7A */ fmadd f6, f3, f1, f6 +/* 8039410C 0039106C FC 20 30 2A */ fadd f1, f0, f6 +/* 80394110 00391070 41 80 00 60 */ blt lbl_80394170 +/* 80394114 00391074 3C 80 43 30 */ lis r4, 0x4330 +/* 80394118 00391078 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 8039411C 0039107C 90 01 00 24 */ stw r0, 0x24(r1) +/* 80394120 00391080 54 E0 17 BC */ rlwinm r0, r7, 2, 0x1e, 0x1e +/* 80394124 00391084 20 00 00 01 */ subfic r0, r0, 1 +/* 80394128 00391088 C8 A2 D4 68 */ lfd f5, lbl_805AF188@sda21(r2) +/* 8039412C 0039108C 90 81 00 20 */ stw r4, 0x20(r1) +/* 80394130 00391090 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 80394134 00391094 FC 41 00 72 */ fmul f2, f1, f1 +/* 80394138 00391098 C8 62 D4 60 */ lfd f3, lbl_805AF180@sda21(r2) +/* 8039413C 0039109C C8 81 00 20 */ lfd f4, 0x20(r1) +/* 80394140 003910A0 90 01 00 2C */ stw r0, 0x2c(r1) +/* 80394144 003910A4 FC E4 28 28 */ fsub f7, f4, f5 +/* 80394148 003910A8 90 81 00 28 */ stw r4, 0x28(r1) +/* 8039414C 003910AC FC 21 38 2A */ fadd f1, f1, f7 +/* 80394150 003910B0 C8 81 00 28 */ lfd f4, 0x28(r1) +/* 80394154 003910B4 FC 84 28 28 */ fsub f4, f4, f5 +/* 80394158 003910B8 FC 22 08 24 */ fdiv f1, f2, f1 +/* 8039415C 003910BC FC 21 30 28 */ fsub f1, f1, f6 +/* 80394160 003910C0 FC 00 08 28 */ fsub f0, f0, f1 +/* 80394164 003910C4 FC 03 38 3C */ fnmsub f0, f3, f0, f7 +/* 80394168 003910C8 FC 24 00 32 */ fmul f1, f4, f0 +/* 8039416C 003910CC 48 00 00 4C */ b lbl_803941B8 +lbl_80394170: +/* 80394170 003910D0 2C 03 00 01 */ cmpwi r3, 1 +/* 80394174 003910D4 40 82 00 08 */ bne lbl_8039417C +/* 80394178 003910D8 48 00 00 40 */ b lbl_803941B8 +lbl_8039417C: +/* 8039417C 003910DC C8 42 D4 40 */ lfd f2, lbl_805AF160@sda21(r2) +/* 80394180 003910E0 38 00 00 00 */ li r0, 0 +/* 80394184 003910E4 D8 21 00 18 */ stfd f1, 0x18(r1) +/* 80394188 003910E8 FC 82 08 24 */ fdiv f4, f2, f1 +/* 8039418C 003910EC C8 22 D4 38 */ lfd f1, lbl_805AF158@sda21(r2) +/* 80394190 003910F0 90 01 00 1C */ stw r0, 0x1c(r1) +/* 80394194 003910F4 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394198 003910F8 D8 81 00 10 */ stfd f4, 0x10(r1) +/* 8039419C 003910FC FC 02 00 28 */ fsub f0, f2, f0 +/* 803941A0 00391100 90 01 00 14 */ stw r0, 0x14(r1) +/* 803941A4 00391104 FC 06 00 28 */ fsub f0, f6, f0 +/* 803941A8 00391108 C8 61 00 10 */ lfd f3, 0x10(r1) +/* 803941AC 0039110C FC 23 08 BA */ fmadd f1, f3, f2, f1 +/* 803941B0 00391110 FC 03 08 3A */ fmadd f0, f3, f0, f1 +/* 803941B4 00391114 FC 24 18 3A */ fmadd f1, f4, f0, f3 +lbl_803941B8: +/* 803941B8 00391118 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0 +/* 803941BC 0039111C CB E1 00 30 */ lfd f31, 0x30(r1) +/* 803941C0 00391120 38 21 00 40 */ addi r1, r1, 0x40 +/* 803941C4 00391124 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/mem.s b/asm/Runtime/PPCEABI/H/mem.s new file mode 100644 index 00000000..54e8aaca --- /dev/null +++ b/asm/Runtime/PPCEABI/H/mem.s @@ -0,0 +1,125 @@ +.include "macros.inc" + +.section .text, "ax" + +.global memcmp +memcmp: +/* 8038D87C 0038A7DC 38 C3 FF FF */ addi r6, r3, -1 +/* 8038D880 0038A7E0 38 E4 FF FF */ addi r7, r4, -1 +/* 8038D884 0038A7E4 38 85 00 01 */ addi r4, r5, 1 +/* 8038D888 0038A7E8 48 00 00 30 */ b lbl_8038D8B8 +lbl_8038D88C: +/* 8038D88C 0038A7EC 8C 66 00 01 */ lbzu r3, 1(r6) +/* 8038D890 0038A7F0 8C 07 00 01 */ lbzu r0, 1(r7) +/* 8038D894 0038A7F4 7C 03 00 40 */ cmplw r3, r0 +/* 8038D898 0038A7F8 41 82 00 20 */ beq lbl_8038D8B8 +/* 8038D89C 0038A7FC 88 86 00 00 */ lbz r4, 0(r6) +/* 8038D8A0 0038A800 38 60 00 01 */ li r3, 1 +/* 8038D8A4 0038A804 88 07 00 00 */ lbz r0, 0(r7) +/* 8038D8A8 0038A808 7C 04 00 40 */ cmplw r4, r0 +/* 8038D8AC 0038A80C 4C 80 00 20 */ bgelr +/* 8038D8B0 0038A810 38 60 FF FF */ li r3, -1 +/* 8038D8B4 0038A814 4E 80 00 20 */ blr +lbl_8038D8B8: +/* 8038D8B8 0038A818 34 84 FF FF */ addic. r4, r4, -1 +/* 8038D8BC 0038A81C 40 82 FF D0 */ bne lbl_8038D88C +/* 8038D8C0 0038A820 38 60 00 00 */ li r3, 0 +/* 8038D8C4 0038A824 4E 80 00 20 */ blr + +.global __memrchr +__memrchr: +/* 8038D8C8 0038A828 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 8038D8CC 0038A82C 7C 63 2A 14 */ add r3, r3, r5 +/* 8038D8D0 0038A830 38 A5 00 01 */ addi r5, r5, 1 +/* 8038D8D4 0038A834 48 00 00 10 */ b lbl_8038D8E4 +lbl_8038D8D8: +/* 8038D8D8 0038A838 8C 03 FF FF */ lbzu r0, -1(r3) +/* 8038D8DC 0038A83C 7C 00 20 40 */ cmplw r0, r4 +/* 8038D8E0 0038A840 4D 82 00 20 */ beqlr +lbl_8038D8E4: +/* 8038D8E4 0038A844 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038D8E8 0038A848 40 82 FF F0 */ bne lbl_8038D8D8 +/* 8038D8EC 0038A84C 38 60 00 00 */ li r3, 0 +/* 8038D8F0 0038A850 4E 80 00 20 */ blr + +.global memchr +memchr: +/* 8038D8F4 0038A854 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 8038D8F8 0038A858 38 63 FF FF */ addi r3, r3, -1 +/* 8038D8FC 0038A85C 38 A5 00 01 */ addi r5, r5, 1 +/* 8038D900 0038A860 48 00 00 10 */ b lbl_8038D910 +lbl_8038D904: +/* 8038D904 0038A864 8C 03 00 01 */ lbzu r0, 1(r3) +/* 8038D908 0038A868 7C 00 20 40 */ cmplw r0, r4 +/* 8038D90C 0038A86C 4D 82 00 20 */ beqlr +lbl_8038D910: +/* 8038D910 0038A870 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038D914 0038A874 40 82 FF F0 */ bne lbl_8038D904 +/* 8038D918 0038A878 38 60 00 00 */ li r3, 0 +/* 8038D91C 0038A87C 4E 80 00 20 */ blr + +.global memmove +memmove: +/* 8038D920 0038A880 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8038D924 0038A884 7C 08 02 A6 */ mflr r0 +/* 8038D928 0038A888 28 05 00 20 */ cmplwi r5, 0x20 +/* 8038D92C 0038A88C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038D930 0038A890 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8038D934 0038A894 7C 7F 1B 78 */ mr r31, r3 +/* 8038D938 0038A898 7F E6 22 78 */ xor r6, r31, r4 +/* 8038D93C 0038A89C 7C C0 00 34 */ cntlzw r0, r6 +/* 8038D940 0038A8A0 7F E0 00 30 */ slw r0, r31, r0 +/* 8038D944 0038A8A4 54 07 0F FE */ srwi r7, r0, 0x1f +/* 8038D948 0038A8A8 41 80 00 40 */ blt lbl_8038D988 +/* 8038D94C 0038A8AC 54 C0 07 BF */ clrlwi. r0, r6, 0x1e +/* 8038D950 0038A8B0 41 82 00 1C */ beq lbl_8038D96C +/* 8038D954 0038A8B4 2C 07 00 00 */ cmpwi r7, 0 +/* 8038D958 0038A8B8 40 82 00 0C */ bne lbl_8038D964 +/* 8038D95C 0038A8BC 48 00 01 41 */ bl __copy_longs_unaligned +/* 8038D960 0038A8C0 48 00 00 20 */ b lbl_8038D980 +lbl_8038D964: +/* 8038D964 0038A8C4 48 00 00 89 */ bl __copy_longs_rev_unaligned +/* 8038D968 0038A8C8 48 00 00 18 */ b lbl_8038D980 +lbl_8038D96C: +/* 8038D96C 0038A8CC 2C 07 00 00 */ cmpwi r7, 0 +/* 8038D970 0038A8D0 40 82 00 0C */ bne lbl_8038D97C +/* 8038D974 0038A8D4 48 00 02 99 */ bl __copy_longs_aligned +/* 8038D978 0038A8D8 48 00 00 08 */ b lbl_8038D980 +lbl_8038D97C: +/* 8038D97C 0038A8DC 48 00 01 E5 */ bl __copy_longs_rev_aligned +lbl_8038D980: +/* 8038D980 0038A8E0 7F E3 FB 78 */ mr r3, r31 +/* 8038D984 0038A8E4 48 00 00 54 */ b lbl_8038D9D8 +lbl_8038D988: +/* 8038D988 0038A8E8 2C 07 00 00 */ cmpwi r7, 0 +/* 8038D98C 0038A8EC 40 82 00 28 */ bne lbl_8038D9B4 +/* 8038D990 0038A8F0 38 64 FF FF */ addi r3, r4, -1 +/* 8038D994 0038A8F4 38 9F FF FF */ addi r4, r31, -1 +/* 8038D998 0038A8F8 38 A5 00 01 */ addi r5, r5, 1 +/* 8038D99C 0038A8FC 48 00 00 0C */ b lbl_8038D9A8 +lbl_8038D9A0: +/* 8038D9A0 0038A900 8C 03 00 01 */ lbzu r0, 1(r3) +/* 8038D9A4 0038A904 9C 04 00 01 */ stbu r0, 1(r4) +lbl_8038D9A8: +/* 8038D9A8 0038A908 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038D9AC 0038A90C 40 82 FF F4 */ bne lbl_8038D9A0 +/* 8038D9B0 0038A910 48 00 00 24 */ b lbl_8038D9D4 +lbl_8038D9B4: +/* 8038D9B4 0038A914 7C 64 2A 14 */ add r3, r4, r5 +/* 8038D9B8 0038A918 7C 9F 2A 14 */ add r4, r31, r5 +/* 8038D9BC 0038A91C 38 A5 00 01 */ addi r5, r5, 1 +/* 8038D9C0 0038A920 48 00 00 0C */ b lbl_8038D9CC +lbl_8038D9C4: +/* 8038D9C4 0038A924 8C 03 FF FF */ lbzu r0, -1(r3) +/* 8038D9C8 0038A928 9C 04 FF FF */ stbu r0, -1(r4) +lbl_8038D9CC: +/* 8038D9CC 0038A92C 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038D9D0 0038A930 40 82 FF F4 */ bne lbl_8038D9C4 +lbl_8038D9D4: +/* 8038D9D4 0038A934 7F E3 FB 78 */ mr r3, r31 +lbl_8038D9D8: +/* 8038D9D8 0038A938 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8038D9DC 0038A93C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8038D9E0 0038A940 7C 08 03 A6 */ mtlr r0 +/* 8038D9E4 0038A944 38 21 00 10 */ addi r1, r1, 0x10 +/* 8038D9E8 0038A948 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/mem_funcs.s b/asm/Runtime/PPCEABI/H/mem_funcs.s new file mode 100644 index 00000000..c6c37ef6 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/mem_funcs.s @@ -0,0 +1,223 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __copy_longs_rev_unaligned +__copy_longs_rev_unaligned: +/* 8038D9EC 0038A94C 7D 63 2A 14 */ add r11, r3, r5 +/* 8038D9F0 0038A950 7D 44 2A 14 */ add r10, r4, r5 +/* 8038D9F4 0038A954 55 63 07 BF */ clrlwi. r3, r11, 0x1e +/* 8038D9F8 0038A958 41 82 00 18 */ beq lbl_8038DA10 +/* 8038D9FC 0038A95C 7C A3 28 50 */ subf r5, r3, r5 +lbl_8038DA00: +/* 8038DA00 0038A960 8C 0A FF FF */ lbzu r0, -1(r10) +/* 8038DA04 0038A964 34 63 FF FF */ addic. r3, r3, -1 +/* 8038DA08 0038A968 9C 0B FF FF */ stbu r0, -1(r11) +/* 8038DA0C 0038A96C 40 82 FF F4 */ bne lbl_8038DA00 +lbl_8038DA10: +/* 8038DA10 0038A970 55 48 1E F8 */ rlwinm r8, r10, 3, 0x1b, 0x1c +/* 8038DA14 0038A974 55 47 07 BE */ clrlwi r7, r10, 0x1e +/* 8038DA18 0038A978 21 28 00 20 */ subfic r9, r8, 0x20 +/* 8038DA1C 0038A97C 54 A6 E8 FE */ srwi r6, r5, 3 +/* 8038DA20 0038A980 20 07 00 04 */ subfic r0, r7, 4 +/* 8038DA24 0038A984 7D 4A 02 14 */ add r10, r10, r0 +/* 8038DA28 0038A988 84 8A FF FC */ lwzu r4, -4(r10) +lbl_8038DA2C: +/* 8038DA2C 0038A98C 80 0A FF FC */ lwz r0, -4(r10) +/* 8038DA30 0038A990 7C 83 4C 30 */ srw r3, r4, r9 +/* 8038DA34 0038A994 34 C6 FF FF */ addic. r6, r6, -1 +/* 8038DA38 0038A998 7C 04 40 30 */ slw r4, r0, r8 +/* 8038DA3C 0038A99C 7C 00 4C 30 */ srw r0, r0, r9 +/* 8038DA40 0038A9A0 7C 83 1B 78 */ or r3, r4, r3 +/* 8038DA44 0038A9A4 90 6B FF FC */ stw r3, -4(r11) +/* 8038DA48 0038A9A8 84 8A FF F8 */ lwzu r4, -8(r10) +/* 8038DA4C 0038A9AC 7C 83 40 30 */ slw r3, r4, r8 +/* 8038DA50 0038A9B0 7C 60 03 78 */ or r0, r3, r0 +/* 8038DA54 0038A9B4 94 0B FF F8 */ stwu r0, -8(r11) +/* 8038DA58 0038A9B8 40 82 FF D4 */ bne lbl_8038DA2C +/* 8038DA5C 0038A9BC 54 A0 07 7B */ rlwinm. r0, r5, 0, 0x1d, 0x1d +/* 8038DA60 0038A9C0 41 82 00 18 */ beq lbl_8038DA78 +/* 8038DA64 0038A9C4 84 6A FF FC */ lwzu r3, -4(r10) +/* 8038DA68 0038A9C8 7C 80 4C 30 */ srw r0, r4, r9 +/* 8038DA6C 0038A9CC 7C 63 40 30 */ slw r3, r3, r8 +/* 8038DA70 0038A9D0 7C 60 03 78 */ or r0, r3, r0 +/* 8038DA74 0038A9D4 94 0B FF FC */ stwu r0, -4(r11) +lbl_8038DA78: +/* 8038DA78 0038A9D8 38 00 00 03 */ li r0, 3 +/* 8038DA7C 0038A9DC 7C A5 00 39 */ and. r5, r5, r0 +/* 8038DA80 0038A9E0 4D 82 00 20 */ beqlr +/* 8038DA84 0038A9E4 7D 4A 3A 14 */ add r10, r10, r7 +lbl_8038DA88: +/* 8038DA88 0038A9E8 8C 0A FF FF */ lbzu r0, -1(r10) +/* 8038DA8C 0038A9EC 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038DA90 0038A9F0 9C 0B FF FF */ stbu r0, -1(r11) +/* 8038DA94 0038A9F4 40 82 FF F4 */ bne lbl_8038DA88 +/* 8038DA98 0038A9F8 4E 80 00 20 */ blr + +.global __copy_longs_unaligned +__copy_longs_unaligned: +/* 8038DA9C 0038A9FC 7C 03 00 D0 */ neg r0, r3 +/* 8038DAA0 0038AA00 39 04 FF FF */ addi r8, r4, -1 +/* 8038DAA4 0038AA04 54 06 07 BF */ clrlwi. r6, r0, 0x1e +/* 8038DAA8 0038AA08 38 63 FF FF */ addi r3, r3, -1 +/* 8038DAAC 0038AA0C 41 82 00 18 */ beq lbl_8038DAC4 +/* 8038DAB0 0038AA10 7C A6 28 50 */ subf r5, r6, r5 +lbl_8038DAB4: +/* 8038DAB4 0038AA14 8C 08 00 01 */ lbzu r0, 1(r8) +/* 8038DAB8 0038AA18 34 C6 FF FF */ addic. r6, r6, -1 +/* 8038DABC 0038AA1C 9C 03 00 01 */ stbu r0, 1(r3) +/* 8038DAC0 0038AA20 40 82 FF F4 */ bne lbl_8038DAB4 +lbl_8038DAC4: +/* 8038DAC4 0038AA24 38 08 00 01 */ addi r0, r8, 1 +/* 8038DAC8 0038AA28 38 C3 FF FD */ addi r6, r3, -3 +/* 8038DACC 0038AA2C 54 09 07 BE */ clrlwi r9, r0, 0x1e +/* 8038DAD0 0038AA30 54 A7 E8 FE */ srwi r7, r5, 3 +/* 8038DAD4 0038AA34 7D 09 40 50 */ subf r8, r9, r8 +/* 8038DAD8 0038AA38 54 0A 1E F8 */ rlwinm r10, r0, 3, 0x1b, 0x1c +/* 8038DADC 0038AA3C 84 88 00 01 */ lwzu r4, 1(r8) +/* 8038DAE0 0038AA40 21 6A 00 20 */ subfic r11, r10, 0x20 +lbl_8038DAE4: +/* 8038DAE4 0038AA44 80 68 00 04 */ lwz r3, 4(r8) +/* 8038DAE8 0038AA48 7C 84 50 30 */ slw r4, r4, r10 +/* 8038DAEC 0038AA4C 34 E7 FF FF */ addic. r7, r7, -1 +/* 8038DAF0 0038AA50 7C 60 5C 30 */ srw r0, r3, r11 +/* 8038DAF4 0038AA54 7C 63 50 30 */ slw r3, r3, r10 +/* 8038DAF8 0038AA58 7C 80 03 78 */ or r0, r4, r0 +/* 8038DAFC 0038AA5C 90 06 00 04 */ stw r0, 4(r6) +/* 8038DB00 0038AA60 84 88 00 08 */ lwzu r4, 8(r8) +/* 8038DB04 0038AA64 7C 80 5C 30 */ srw r0, r4, r11 +/* 8038DB08 0038AA68 7C 60 03 78 */ or r0, r3, r0 +/* 8038DB0C 0038AA6C 94 06 00 08 */ stwu r0, 8(r6) +/* 8038DB10 0038AA70 40 82 FF D4 */ bne lbl_8038DAE4 +/* 8038DB14 0038AA74 54 A0 07 7B */ rlwinm. r0, r5, 0, 0x1d, 0x1d +/* 8038DB18 0038AA78 41 82 00 18 */ beq lbl_8038DB30 +/* 8038DB1C 0038AA7C 84 08 00 04 */ lwzu r0, 4(r8) +/* 8038DB20 0038AA80 7C 83 50 30 */ slw r3, r4, r10 +/* 8038DB24 0038AA84 7C 00 5C 30 */ srw r0, r0, r11 +/* 8038DB28 0038AA88 7C 60 03 78 */ or r0, r3, r0 +/* 8038DB2C 0038AA8C 94 06 00 04 */ stwu r0, 4(r6) +lbl_8038DB30: +/* 8038DB30 0038AA90 38 00 00 03 */ li r0, 3 +/* 8038DB34 0038AA94 38 88 00 03 */ addi r4, r8, 3 +/* 8038DB38 0038AA98 7C A5 00 39 */ and. r5, r5, r0 +/* 8038DB3C 0038AA9C 38 66 00 03 */ addi r3, r6, 3 +/* 8038DB40 0038AAA0 4D 82 00 20 */ beqlr +/* 8038DB44 0038AAA4 20 09 00 04 */ subfic r0, r9, 4 +/* 8038DB48 0038AAA8 7C 80 20 50 */ subf r4, r0, r4 +lbl_8038DB4C: +/* 8038DB4C 0038AAAC 8C 04 00 01 */ lbzu r0, 1(r4) +/* 8038DB50 0038AAB0 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038DB54 0038AAB4 9C 03 00 01 */ stbu r0, 1(r3) +/* 8038DB58 0038AAB8 40 82 FF F4 */ bne lbl_8038DB4C +/* 8038DB5C 0038AABC 4E 80 00 20 */ blr + +.global __copy_longs_rev_aligned +__copy_longs_rev_aligned: +/* 8038DB60 0038AAC0 7C C3 2A 14 */ add r6, r3, r5 +/* 8038DB64 0038AAC4 7C 84 2A 14 */ add r4, r4, r5 +/* 8038DB68 0038AAC8 54 C3 07 BF */ clrlwi. r3, r6, 0x1e +/* 8038DB6C 0038AACC 41 82 00 18 */ beq lbl_8038DB84 +/* 8038DB70 0038AAD0 7C A3 28 50 */ subf r5, r3, r5 +lbl_8038DB74: +/* 8038DB74 0038AAD4 8C 04 FF FF */ lbzu r0, -1(r4) +/* 8038DB78 0038AAD8 34 63 FF FF */ addic. r3, r3, -1 +/* 8038DB7C 0038AADC 9C 06 FF FF */ stbu r0, -1(r6) +/* 8038DB80 0038AAE0 40 82 FF F4 */ bne lbl_8038DB74 +lbl_8038DB84: +/* 8038DB84 0038AAE4 54 A3 D9 7F */ rlwinm. r3, r5, 0x1b, 5, 0x1f +/* 8038DB88 0038AAE8 41 82 00 4C */ beq lbl_8038DBD4 +lbl_8038DB8C: +/* 8038DB8C 0038AAEC 80 04 FF FC */ lwz r0, -4(r4) +/* 8038DB90 0038AAF0 34 63 FF FF */ addic. r3, r3, -1 +/* 8038DB94 0038AAF4 90 06 FF FC */ stw r0, -4(r6) +/* 8038DB98 0038AAF8 80 04 FF F8 */ lwz r0, -8(r4) +/* 8038DB9C 0038AAFC 90 06 FF F8 */ stw r0, -8(r6) +/* 8038DBA0 0038AB00 80 04 FF F4 */ lwz r0, -0xc(r4) +/* 8038DBA4 0038AB04 90 06 FF F4 */ stw r0, -0xc(r6) +/* 8038DBA8 0038AB08 80 04 FF F0 */ lwz r0, -0x10(r4) +/* 8038DBAC 0038AB0C 90 06 FF F0 */ stw r0, -0x10(r6) +/* 8038DBB0 0038AB10 80 04 FF EC */ lwz r0, -0x14(r4) +/* 8038DBB4 0038AB14 90 06 FF EC */ stw r0, -0x14(r6) +/* 8038DBB8 0038AB18 80 04 FF E8 */ lwz r0, -0x18(r4) +/* 8038DBBC 0038AB1C 90 06 FF E8 */ stw r0, -0x18(r6) +/* 8038DBC0 0038AB20 80 04 FF E4 */ lwz r0, -0x1c(r4) +/* 8038DBC4 0038AB24 90 06 FF E4 */ stw r0, -0x1c(r6) +/* 8038DBC8 0038AB28 84 04 FF E0 */ lwzu r0, -0x20(r4) +/* 8038DBCC 0038AB2C 94 06 FF E0 */ stwu r0, -0x20(r6) +/* 8038DBD0 0038AB30 40 82 FF BC */ bne lbl_8038DB8C +lbl_8038DBD4: +/* 8038DBD4 0038AB34 54 A3 F7 7F */ rlwinm. r3, r5, 0x1e, 0x1d, 0x1f +/* 8038DBD8 0038AB38 41 82 00 14 */ beq lbl_8038DBEC +lbl_8038DBDC: +/* 8038DBDC 0038AB3C 84 04 FF FC */ lwzu r0, -4(r4) +/* 8038DBE0 0038AB40 34 63 FF FF */ addic. r3, r3, -1 +/* 8038DBE4 0038AB44 94 06 FF FC */ stwu r0, -4(r6) +/* 8038DBE8 0038AB48 40 82 FF F4 */ bne lbl_8038DBDC +lbl_8038DBEC: +/* 8038DBEC 0038AB4C 38 00 00 03 */ li r0, 3 +/* 8038DBF0 0038AB50 7C A5 00 39 */ and. r5, r5, r0 +/* 8038DBF4 0038AB54 4D 82 00 20 */ beqlr +lbl_8038DBF8: +/* 8038DBF8 0038AB58 8C 04 FF FF */ lbzu r0, -1(r4) +/* 8038DBFC 0038AB5C 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038DC00 0038AB60 9C 06 FF FF */ stbu r0, -1(r6) +/* 8038DC04 0038AB64 40 82 FF F4 */ bne lbl_8038DBF8 +/* 8038DC08 0038AB68 4E 80 00 20 */ blr + +.global __copy_longs_aligned +__copy_longs_aligned: +/* 8038DC0C 0038AB6C 7C 03 00 D0 */ neg r0, r3 +/* 8038DC10 0038AB70 38 E4 FF FF */ addi r7, r4, -1 +/* 8038DC14 0038AB74 54 06 07 BF */ clrlwi. r6, r0, 0x1e +/* 8038DC18 0038AB78 38 63 FF FF */ addi r3, r3, -1 +/* 8038DC1C 0038AB7C 41 82 00 18 */ beq lbl_8038DC34 +/* 8038DC20 0038AB80 7C A6 28 50 */ subf r5, r6, r5 +lbl_8038DC24: +/* 8038DC24 0038AB84 8C 07 00 01 */ lbzu r0, 1(r7) +/* 8038DC28 0038AB88 34 C6 FF FF */ addic. r6, r6, -1 +/* 8038DC2C 0038AB8C 9C 03 00 01 */ stbu r0, 1(r3) +/* 8038DC30 0038AB90 40 82 FF F4 */ bne lbl_8038DC24 +lbl_8038DC34: +/* 8038DC34 0038AB94 54 A4 D9 7F */ rlwinm. r4, r5, 0x1b, 5, 0x1f +/* 8038DC38 0038AB98 38 C7 FF FD */ addi r6, r7, -3 +/* 8038DC3C 0038AB9C 38 63 FF FD */ addi r3, r3, -3 +/* 8038DC40 0038ABA0 41 82 00 4C */ beq lbl_8038DC8C +lbl_8038DC44: +/* 8038DC44 0038ABA4 80 06 00 04 */ lwz r0, 4(r6) +/* 8038DC48 0038ABA8 34 84 FF FF */ addic. r4, r4, -1 +/* 8038DC4C 0038ABAC 90 03 00 04 */ stw r0, 4(r3) +/* 8038DC50 0038ABB0 80 06 00 08 */ lwz r0, 8(r6) +/* 8038DC54 0038ABB4 90 03 00 08 */ stw r0, 8(r3) +/* 8038DC58 0038ABB8 80 06 00 0C */ lwz r0, 0xc(r6) +/* 8038DC5C 0038ABBC 90 03 00 0C */ stw r0, 0xc(r3) +/* 8038DC60 0038ABC0 80 06 00 10 */ lwz r0, 0x10(r6) +/* 8038DC64 0038ABC4 90 03 00 10 */ stw r0, 0x10(r3) +/* 8038DC68 0038ABC8 80 06 00 14 */ lwz r0, 0x14(r6) +/* 8038DC6C 0038ABCC 90 03 00 14 */ stw r0, 0x14(r3) +/* 8038DC70 0038ABD0 80 06 00 18 */ lwz r0, 0x18(r6) +/* 8038DC74 0038ABD4 90 03 00 18 */ stw r0, 0x18(r3) +/* 8038DC78 0038ABD8 80 06 00 1C */ lwz r0, 0x1c(r6) +/* 8038DC7C 0038ABDC 90 03 00 1C */ stw r0, 0x1c(r3) +/* 8038DC80 0038ABE0 84 06 00 20 */ lwzu r0, 0x20(r6) +/* 8038DC84 0038ABE4 94 03 00 20 */ stwu r0, 0x20(r3) +/* 8038DC88 0038ABE8 40 82 FF BC */ bne lbl_8038DC44 +lbl_8038DC8C: +/* 8038DC8C 0038ABEC 54 A4 F7 7F */ rlwinm. r4, r5, 0x1e, 0x1d, 0x1f +/* 8038DC90 0038ABF0 41 82 00 14 */ beq lbl_8038DCA4 +lbl_8038DC94: +/* 8038DC94 0038ABF4 84 06 00 04 */ lwzu r0, 4(r6) +/* 8038DC98 0038ABF8 34 84 FF FF */ addic. r4, r4, -1 +/* 8038DC9C 0038ABFC 94 03 00 04 */ stwu r0, 4(r3) +/* 8038DCA0 0038AC00 40 82 FF F4 */ bne lbl_8038DC94 +lbl_8038DCA4: +/* 8038DCA4 0038AC04 38 00 00 03 */ li r0, 3 +/* 8038DCA8 0038AC08 38 86 00 03 */ addi r4, r6, 3 +/* 8038DCAC 0038AC0C 7C A5 00 39 */ and. r5, r5, r0 +/* 8038DCB0 0038AC10 38 63 00 03 */ addi r3, r3, 3 +/* 8038DCB4 0038AC14 4D 82 00 20 */ beqlr +lbl_8038DCB8: +/* 8038DCB8 0038AC18 8C 04 00 01 */ lbzu r0, 1(r4) +/* 8038DCBC 0038AC1C 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038DCC0 0038AC20 9C 03 00 01 */ stbu r0, 1(r3) +/* 8038DCC4 0038AC24 40 82 FF F4 */ bne lbl_8038DCB8 +/* 8038DCC8 0038AC28 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/misc_io.s b/asm/Runtime/PPCEABI/H/misc_io.s new file mode 100644 index 00000000..e0197ab1 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/misc_io.s @@ -0,0 +1,12 @@ +.include "macros.inc" + +.section .text, "ax" +.if 0 +/* THIS DOESN'T WORK???? */ +.global __stdio_atexit +__stdio_atexit: +/* 8038DCCC 0038AC2C 3C 60 80 39 */ lis r3, __close_all@ha +/* 8038DCD0 0038AC30 38 03 B1 18 */ addi r0, r3, __close_all@l +/* 8038DCD4 0038AC34 90 0D AE 00 */ stw r0, lbl_805A99C0@sda21(r13) +/* 8038DCD8 0038AC38 4E 80 00 20 */ blr +.endif diff --git a/asm/Runtime/PPCEABI/H/printf.s b/asm/Runtime/PPCEABI/H/printf.s new file mode 100644 index 00000000..2df12cb1 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/printf.s @@ -0,0 +1,2370 @@ +.include "macros.inc" + +.section .text, "ax" +.if 1 +/* TODO: Move __stdio_atexit to its own file (misc_io), + * it's here to work around a bug with CW + */ +.global __stdio_atexit +__stdio_atexit: +/* 8038DCCC 0038AC2C 3C 60 80 39 */ lis r3, __close_all@ha +/* 8038DCD0 0038AC30 38 03 B1 18 */ addi r0, r3, __close_all@l +/* 8038DCD4 0038AC34 90 0D AE 00 */ stw r0, lbl_805A99C0@sda21(r13) +/* 8038DCD8 0038AC38 4E 80 00 20 */ blr +.endif + +.global sprintf +sprintf: +/* 8038DCDC 0038AC3C 94 21 FF 60 */ stwu r1, -0xa0(r1) +/* 8038DCE0 0038AC40 7C 08 02 A6 */ mflr r0 +/* 8038DCE4 0038AC44 90 01 00 A4 */ stw r0, 0xa4(r1) +/* 8038DCE8 0038AC48 BF 21 00 84 */ stmw r25, 0x84(r1) +/* 8038DCEC 0038AC4C 7C 79 1B 78 */ mr r25, r3 +/* 8038DCF0 0038AC50 7C 9A 23 78 */ mr r26, r4 +/* 8038DCF4 0038AC54 40 86 00 24 */ bne cr1, lbl_8038DD18 +/* 8038DCF8 0038AC58 D8 21 00 28 */ stfd f1, 0x28(r1) +/* 8038DCFC 0038AC5C D8 41 00 30 */ stfd f2, 0x30(r1) +/* 8038DD00 0038AC60 D8 61 00 38 */ stfd f3, 0x38(r1) +/* 8038DD04 0038AC64 D8 81 00 40 */ stfd f4, 0x40(r1) +/* 8038DD08 0038AC68 D8 A1 00 48 */ stfd f5, 0x48(r1) +/* 8038DD0C 0038AC6C D8 C1 00 50 */ stfd f6, 0x50(r1) +/* 8038DD10 0038AC70 D8 E1 00 58 */ stfd f7, 0x58(r1) +/* 8038DD14 0038AC74 D9 01 00 60 */ stfd f8, 0x60(r1) +lbl_8038DD18: +/* 8038DD18 0038AC78 3B A1 00 A8 */ addi r29, r1, 0xa8 +/* 8038DD1C 0038AC7C 3B C1 00 08 */ addi r30, r1, 8 +/* 8038DD20 0038AC80 3F 80 02 00 */ lis r28, 0x200 +/* 8038DD24 0038AC84 3B E0 FF FF */ li r31, -1 +/* 8038DD28 0038AC88 39 80 00 00 */ li r12, 0 +/* 8038DD2C 0038AC8C 3D 60 80 39 */ lis r11, __StringWrite@ha +/* 8038DD30 0038AC90 90 81 00 0C */ stw r4, 0xc(r1) +/* 8038DD34 0038AC94 3B 61 00 74 */ addi r27, r1, 0x74 +/* 8038DD38 0038AC98 38 0B DF 7C */ addi r0, r11, __StringWrite@l +/* 8038DD3C 0038AC9C 38 81 00 68 */ addi r4, r1, 0x68 +/* 8038DD40 0038ACA0 90 61 00 08 */ stw r3, 8(r1) +/* 8038DD44 0038ACA4 7C 03 03 78 */ mr r3, r0 +/* 8038DD48 0038ACA8 90 A1 00 10 */ stw r5, 0x10(r1) +/* 8038DD4C 0038ACAC 7F 45 D3 78 */ mr r5, r26 +/* 8038DD50 0038ACB0 90 C1 00 14 */ stw r6, 0x14(r1) +/* 8038DD54 0038ACB4 7F 66 DB 78 */ mr r6, r27 +/* 8038DD58 0038ACB8 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8038DD5C 0038ACBC 91 01 00 1C */ stw r8, 0x1c(r1) +/* 8038DD60 0038ACC0 91 21 00 20 */ stw r9, 0x20(r1) +/* 8038DD64 0038ACC4 91 41 00 24 */ stw r10, 0x24(r1) +/* 8038DD68 0038ACC8 93 81 00 74 */ stw r28, 0x74(r1) +/* 8038DD6C 0038ACCC 93 A1 00 78 */ stw r29, 0x78(r1) +/* 8038DD70 0038ACD0 93 C1 00 7C */ stw r30, 0x7c(r1) +/* 8038DD74 0038ACD4 93 21 00 68 */ stw r25, 0x68(r1) +/* 8038DD78 0038ACD8 93 E1 00 6C */ stw r31, 0x6c(r1) +/* 8038DD7C 0038ACDC 91 81 00 70 */ stw r12, 0x70(r1) +/* 8038DD80 0038ACE0 48 00 02 C1 */ bl __pformatter +/* 8038DD84 0038ACE4 28 19 00 00 */ cmplwi r25, 0 +/* 8038DD88 0038ACE8 41 82 00 20 */ beq lbl_8038DDA8 +/* 8038DD8C 0038ACEC 38 00 FF FF */ li r0, -1 +/* 8038DD90 0038ACF0 38 80 FF FE */ li r4, -2 +/* 8038DD94 0038ACF4 7C 03 00 40 */ cmplw r3, r0 +/* 8038DD98 0038ACF8 40 80 00 08 */ bge lbl_8038DDA0 +/* 8038DD9C 0038ACFC 7C 64 1B 78 */ mr r4, r3 +lbl_8038DDA0: +/* 8038DDA0 0038AD00 38 00 00 00 */ li r0, 0 +/* 8038DDA4 0038AD04 7C 19 21 AE */ stbx r0, r25, r4 +lbl_8038DDA8: +/* 8038DDA8 0038AD08 BB 21 00 84 */ lmw r25, 0x84(r1) +/* 8038DDAC 0038AD0C 80 01 00 A4 */ lwz r0, 0xa4(r1) +/* 8038DDB0 0038AD10 7C 08 03 A6 */ mtlr r0 +/* 8038DDB4 0038AD14 38 21 00 A0 */ addi r1, r1, 0xa0 +/* 8038DDB8 0038AD18 4E 80 00 20 */ blr + +.global vsprintf +vsprintf: +/* 8038DDBC 0038AD1C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8038DDC0 0038AD20 7C 08 02 A6 */ mflr r0 +/* 8038DDC4 0038AD24 7C A6 2B 78 */ mr r6, r5 +/* 8038DDC8 0038AD28 7C 85 23 78 */ mr r5, r4 +/* 8038DDCC 0038AD2C 90 01 00 24 */ stw r0, 0x24(r1) +/* 8038DDD0 0038AD30 38 E0 FF FF */ li r7, -1 +/* 8038DDD4 0038AD34 38 00 00 00 */ li r0, 0 +/* 8038DDD8 0038AD38 38 81 00 08 */ addi r4, r1, 8 +/* 8038DDDC 0038AD3C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8038DDE0 0038AD40 7C 7F 1B 78 */ mr r31, r3 +/* 8038DDE4 0038AD44 3C 60 80 39 */ lis r3, __StringWrite@ha +/* 8038DDE8 0038AD48 93 E1 00 08 */ stw r31, 8(r1) +/* 8038DDEC 0038AD4C 38 63 DF 7C */ addi r3, r3, __StringWrite@l +/* 8038DDF0 0038AD50 90 E1 00 0C */ stw r7, 0xc(r1) +/* 8038DDF4 0038AD54 90 01 00 10 */ stw r0, 0x10(r1) +/* 8038DDF8 0038AD58 48 00 02 49 */ bl __pformatter +/* 8038DDFC 0038AD5C 28 1F 00 00 */ cmplwi r31, 0 +/* 8038DE00 0038AD60 41 82 00 20 */ beq lbl_8038DE20 +/* 8038DE04 0038AD64 38 00 FF FF */ li r0, -1 +/* 8038DE08 0038AD68 38 80 FF FE */ li r4, -2 +/* 8038DE0C 0038AD6C 7C 03 00 40 */ cmplw r3, r0 +/* 8038DE10 0038AD70 40 80 00 08 */ bge lbl_8038DE18 +/* 8038DE14 0038AD74 7C 64 1B 78 */ mr r4, r3 +lbl_8038DE18: +/* 8038DE18 0038AD78 38 00 00 00 */ li r0, 0 +/* 8038DE1C 0038AD7C 7C 1F 21 AE */ stbx r0, r31, r4 +lbl_8038DE20: +/* 8038DE20 0038AD80 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8038DE24 0038AD84 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8038DE28 0038AD88 7C 08 03 A6 */ mtlr r0 +/* 8038DE2C 0038AD8C 38 21 00 20 */ addi r1, r1, 0x20 +/* 8038DE30 0038AD90 4E 80 00 20 */ blr + +.global vprintf +vprintf: +/* 8038DE34 0038AD94 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8038DE38 0038AD98 7C 08 02 A6 */ mflr r0 +/* 8038DE3C 0038AD9C 3C A0 80 3F */ lis r5, lbl_803F2778@ha +/* 8038DE40 0038ADA0 90 01 00 24 */ stw r0, 0x24(r1) +/* 8038DE44 0038ADA4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8038DE48 0038ADA8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8038DE4C 0038ADAC 7C 9E 23 78 */ mr r30, r4 +/* 8038DE50 0038ADB0 38 85 27 78 */ addi r4, r5, lbl_803F2778@l +/* 8038DE54 0038ADB4 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8038DE58 0038ADB8 3B E4 00 50 */ addi r31, r4, 0x50 +/* 8038DE5C 0038ADBC 7C 7D 1B 78 */ mr r29, r3 +/* 8038DE60 0038ADC0 38 80 FF FF */ li r4, -1 +/* 8038DE64 0038ADC4 7F E3 FB 78 */ mr r3, r31 +/* 8038DE68 0038ADC8 48 00 34 D9 */ bl fwide +/* 8038DE6C 0038ADCC 2C 03 00 00 */ cmpwi r3, 0 +/* 8038DE70 0038ADD0 41 80 00 0C */ blt lbl_8038DE7C +/* 8038DE74 0038ADD4 38 60 FF FF */ li r3, -1 +/* 8038DE78 0038ADD8 48 00 00 1C */ b lbl_8038DE94 +lbl_8038DE7C: +/* 8038DE7C 0038ADDC 3C 60 80 39 */ lis r3, __FileWrite@ha +/* 8038DE80 0038ADE0 7F E4 FB 78 */ mr r4, r31 +/* 8038DE84 0038ADE4 38 63 DF E8 */ addi r3, r3, __FileWrite@l +/* 8038DE88 0038ADE8 7F A5 EB 78 */ mr r5, r29 +/* 8038DE8C 0038ADEC 7F C6 F3 78 */ mr r6, r30 +/* 8038DE90 0038ADF0 48 00 01 B1 */ bl __pformatter +lbl_8038DE94: +/* 8038DE94 0038ADF4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8038DE98 0038ADF8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8038DE9C 0038ADFC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8038DEA0 0038AE00 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8038DEA4 0038AE04 7C 08 03 A6 */ mtlr r0 +/* 8038DEA8 0038AE08 38 21 00 20 */ addi r1, r1, 0x20 +/* 8038DEAC 0038AE0C 4E 80 00 20 */ blr + +.global printf +printf: +/* 8038DEB0 0038AE10 94 21 FF 80 */ stwu r1, -0x80(r1) +/* 8038DEB4 0038AE14 7C 08 02 A6 */ mflr r0 +/* 8038DEB8 0038AE18 90 01 00 84 */ stw r0, 0x84(r1) +/* 8038DEBC 0038AE1C 93 E1 00 7C */ stw r31, 0x7c(r1) +/* 8038DEC0 0038AE20 93 C1 00 78 */ stw r30, 0x78(r1) +/* 8038DEC4 0038AE24 7C 7E 1B 78 */ mr r30, r3 +/* 8038DEC8 0038AE28 40 86 00 24 */ bne cr1, lbl_8038DEEC +/* 8038DECC 0038AE2C D8 21 00 28 */ stfd f1, 0x28(r1) +/* 8038DED0 0038AE30 D8 41 00 30 */ stfd f2, 0x30(r1) +/* 8038DED4 0038AE34 D8 61 00 38 */ stfd f3, 0x38(r1) +/* 8038DED8 0038AE38 D8 81 00 40 */ stfd f4, 0x40(r1) +/* 8038DEDC 0038AE3C D8 A1 00 48 */ stfd f5, 0x48(r1) +/* 8038DEE0 0038AE40 D8 C1 00 50 */ stfd f6, 0x50(r1) +/* 8038DEE4 0038AE44 D8 E1 00 58 */ stfd f7, 0x58(r1) +/* 8038DEE8 0038AE48 D9 01 00 60 */ stfd f8, 0x60(r1) +lbl_8038DEEC: +/* 8038DEEC 0038AE4C 3D 60 80 3F */ lis r11, lbl_803F2778@ha +/* 8038DEF0 0038AE50 90 81 00 0C */ stw r4, 0xc(r1) +/* 8038DEF4 0038AE54 39 6B 27 78 */ addi r11, r11, lbl_803F2778@l +/* 8038DEF8 0038AE58 38 80 FF FF */ li r4, -1 +/* 8038DEFC 0038AE5C 90 61 00 08 */ stw r3, 8(r1) +/* 8038DF00 0038AE60 3B EB 00 50 */ addi r31, r11, 0x50 +/* 8038DF04 0038AE64 7F E3 FB 78 */ mr r3, r31 +/* 8038DF08 0038AE68 90 A1 00 10 */ stw r5, 0x10(r1) +/* 8038DF0C 0038AE6C 90 C1 00 14 */ stw r6, 0x14(r1) +/* 8038DF10 0038AE70 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8038DF14 0038AE74 91 01 00 1C */ stw r8, 0x1c(r1) +/* 8038DF18 0038AE78 91 21 00 20 */ stw r9, 0x20(r1) +/* 8038DF1C 0038AE7C 91 41 00 24 */ stw r10, 0x24(r1) +/* 8038DF20 0038AE80 48 00 34 21 */ bl fwide +/* 8038DF24 0038AE84 2C 03 00 00 */ cmpwi r3, 0 +/* 8038DF28 0038AE88 41 80 00 0C */ blt lbl_8038DF34 +/* 8038DF2C 0038AE8C 38 60 FF FF */ li r3, -1 +/* 8038DF30 0038AE90 48 00 00 34 */ b lbl_8038DF64 +lbl_8038DF34: +/* 8038DF34 0038AE94 38 A1 00 88 */ addi r5, r1, 0x88 +/* 8038DF38 0038AE98 38 01 00 08 */ addi r0, r1, 8 +/* 8038DF3C 0038AE9C 3C 80 01 00 */ lis r4, 0x100 +/* 8038DF40 0038AEA0 3C 60 80 39 */ lis r3, __FileWrite@ha +/* 8038DF44 0038AEA4 90 81 00 68 */ stw r4, 0x68(r1) +/* 8038DF48 0038AEA8 38 C1 00 68 */ addi r6, r1, 0x68 +/* 8038DF4C 0038AEAC 38 63 DF E8 */ addi r3, r3, __FileWrite@l +/* 8038DF50 0038AEB0 7F E4 FB 78 */ mr r4, r31 +/* 8038DF54 0038AEB4 90 A1 00 6C */ stw r5, 0x6c(r1) +/* 8038DF58 0038AEB8 7F C5 F3 78 */ mr r5, r30 +/* 8038DF5C 0038AEBC 90 01 00 70 */ stw r0, 0x70(r1) +/* 8038DF60 0038AEC0 48 00 00 E1 */ bl __pformatter +lbl_8038DF64: +/* 8038DF64 0038AEC4 80 01 00 84 */ lwz r0, 0x84(r1) +/* 8038DF68 0038AEC8 83 E1 00 7C */ lwz r31, 0x7c(r1) +/* 8038DF6C 0038AECC 83 C1 00 78 */ lwz r30, 0x78(r1) +/* 8038DF70 0038AED0 7C 08 03 A6 */ mtlr r0 +/* 8038DF74 0038AED4 38 21 00 80 */ addi r1, r1, 0x80 +/* 8038DF78 0038AED8 4E 80 00 20 */ blr + +.global __StringWrite +__StringWrite: +/* 8038DF7C 0038AEDC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8038DF80 0038AEE0 7C 08 02 A6 */ mflr r0 +/* 8038DF84 0038AEE4 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038DF88 0038AEE8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8038DF8C 0038AEEC 93 C1 00 08 */ stw r30, 8(r1) +/* 8038DF90 0038AEF0 7C 7E 1B 78 */ mr r30, r3 +/* 8038DF94 0038AEF4 80 63 00 08 */ lwz r3, 8(r3) +/* 8038DF98 0038AEF8 80 DE 00 04 */ lwz r6, 4(r30) +/* 8038DF9C 0038AEFC 7C 03 2A 14 */ add r0, r3, r5 +/* 8038DFA0 0038AF00 7C 00 30 40 */ cmplw r0, r6 +/* 8038DFA4 0038AF04 7F E3 30 50 */ subf r31, r3, r6 +/* 8038DFA8 0038AF08 41 81 00 08 */ bgt lbl_8038DFB0 +/* 8038DFAC 0038AF0C 7C BF 2B 78 */ mr r31, r5 +lbl_8038DFB0: +/* 8038DFB0 0038AF10 80 1E 00 00 */ lwz r0, 0(r30) +/* 8038DFB4 0038AF14 7F E5 FB 78 */ mr r5, r31 +/* 8038DFB8 0038AF18 7C 60 1A 14 */ add r3, r0, r3 +/* 8038DFBC 0038AF1C 4B C7 54 D5 */ bl memcpy +/* 8038DFC0 0038AF20 80 1E 00 08 */ lwz r0, 8(r30) +/* 8038DFC4 0038AF24 38 60 00 01 */ li r3, 1 +/* 8038DFC8 0038AF28 7C 00 FA 14 */ add r0, r0, r31 +/* 8038DFCC 0038AF2C 90 1E 00 08 */ stw r0, 8(r30) +/* 8038DFD0 0038AF30 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8038DFD4 0038AF34 83 C1 00 08 */ lwz r30, 8(r1) +/* 8038DFD8 0038AF38 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8038DFDC 0038AF3C 7C 08 03 A6 */ mtlr r0 +/* 8038DFE0 0038AF40 38 21 00 10 */ addi r1, r1, 0x10 +/* 8038DFE4 0038AF44 4E 80 00 20 */ blr + +.global __FileWrite +__FileWrite: +/* 8038DFE8 0038AF48 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8038DFEC 0038AF4C 7C 08 02 A6 */ mflr r0 +/* 8038DFF0 0038AF50 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038DFF4 0038AF54 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8038DFF8 0038AF58 7C BF 2B 78 */ mr r31, r5 +/* 8038DFFC 0038AF5C 93 C1 00 08 */ stw r30, 8(r1) +/* 8038E000 0038AF60 7C 7E 1B 78 */ mr r30, r3 +/* 8038E004 0038AF64 7C 83 23 78 */ mr r3, r4 +/* 8038E008 0038AF68 38 80 00 01 */ li r4, 1 +/* 8038E00C 0038AF6C 7F C6 F3 78 */ mr r6, r30 +/* 8038E010 0038AF70 4B FF F2 45 */ bl fwrite +/* 8038E014 0038AF74 7C 1F 18 40 */ cmplw r31, r3 +/* 8038E018 0038AF78 40 82 00 0C */ bne lbl_8038E024 +/* 8038E01C 0038AF7C 7F C3 F3 78 */ mr r3, r30 +/* 8038E020 0038AF80 48 00 00 08 */ b lbl_8038E028 +lbl_8038E024: +/* 8038E024 0038AF84 38 60 00 00 */ li r3, 0 +lbl_8038E028: +/* 8038E028 0038AF88 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8038E02C 0038AF8C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8038E030 0038AF90 83 C1 00 08 */ lwz r30, 8(r1) +/* 8038E034 0038AF94 7C 08 03 A6 */ mtlr r0 +/* 8038E038 0038AF98 38 21 00 10 */ addi r1, r1, 0x10 +/* 8038E03C 0038AF9C 4E 80 00 20 */ blr + +.global __pformatter +__pformatter: +/* 8038E040 0038AFA0 94 21 FD 40 */ stwu r1, -0x2c0(r1) +/* 8038E044 0038AFA4 7C 08 02 A6 */ mflr r0 +/* 8038E048 0038AFA8 90 01 02 C4 */ stw r0, 0x2c4(r1) +/* 8038E04C 0038AFAC 38 00 00 20 */ li r0, 0x20 +/* 8038E050 0038AFB0 BE 61 02 8C */ stmw r19, 0x28c(r1) +/* 8038E054 0038AFB4 7C 7F 1B 78 */ mr r31, r3 +/* 8038E058 0038AFB8 7C 9E 23 78 */ mr r30, r4 +/* 8038E05C 0038AFBC 7C DD 33 78 */ mr r29, r6 +/* 8038E060 0038AFC0 7C BA 2B 78 */ mr r26, r5 +/* 8038E064 0038AFC4 3B 01 02 7C */ addi r24, r1, 0x27c +/* 8038E068 0038AFC8 3A A1 02 7B */ addi r21, r1, 0x27b +/* 8038E06C 0038AFCC 3B 60 00 00 */ li r27, 0 +/* 8038E070 0038AFD0 98 01 00 09 */ stb r0, 9(r1) +/* 8038E074 0038AFD4 48 00 07 1C */ b lbl_8038E790 +lbl_8038E078: +/* 8038E078 0038AFD8 7F 43 D3 78 */ mr r3, r26 +/* 8038E07C 0038AFDC 38 80 00 25 */ li r4, 0x25 +/* 8038E080 0038AFE0 48 00 1E AD */ bl strchr +/* 8038E084 0038AFE4 7C 79 1B 79 */ or. r25, r3, r3 +/* 8038E088 0038AFE8 40 82 00 3C */ bne lbl_8038E0C4 +/* 8038E08C 0038AFEC 7F 43 D3 78 */ mr r3, r26 +/* 8038E090 0038AFF0 48 00 21 31 */ bl strlen +/* 8038E094 0038AFF4 7C 65 1B 79 */ or. r5, r3, r3 +/* 8038E098 0038AFF8 7F 7B 2A 14 */ add r27, r27, r5 +/* 8038E09C 0038AFFC 41 82 07 00 */ beq lbl_8038E79C +/* 8038E0A0 0038B000 7F EC FB 78 */ mr r12, r31 +/* 8038E0A4 0038B004 7F C3 F3 78 */ mr r3, r30 +/* 8038E0A8 0038B008 7F 44 D3 78 */ mr r4, r26 +/* 8038E0AC 0038B00C 7D 89 03 A6 */ mtctr r12 +/* 8038E0B0 0038B010 4E 80 04 21 */ bctrl +/* 8038E0B4 0038B014 28 03 00 00 */ cmplwi r3, 0 +/* 8038E0B8 0038B018 40 82 06 E4 */ bne lbl_8038E79C +/* 8038E0BC 0038B01C 38 60 FF FF */ li r3, -1 +/* 8038E0C0 0038B020 48 00 06 E0 */ b lbl_8038E7A0 +lbl_8038E0C4: +/* 8038E0C4 0038B024 7C BA C8 51 */ subf. r5, r26, r25 +/* 8038E0C8 0038B028 7F 7B 2A 14 */ add r27, r27, r5 +/* 8038E0CC 0038B02C 41 82 00 28 */ beq lbl_8038E0F4 +/* 8038E0D0 0038B030 7F EC FB 78 */ mr r12, r31 +/* 8038E0D4 0038B034 7F C3 F3 78 */ mr r3, r30 +/* 8038E0D8 0038B038 7F 44 D3 78 */ mr r4, r26 +/* 8038E0DC 0038B03C 7D 89 03 A6 */ mtctr r12 +/* 8038E0E0 0038B040 4E 80 04 21 */ bctrl +/* 8038E0E4 0038B044 28 03 00 00 */ cmplwi r3, 0 +/* 8038E0E8 0038B048 40 82 00 0C */ bne lbl_8038E0F4 +/* 8038E0EC 0038B04C 38 60 FF FF */ li r3, -1 +/* 8038E0F0 0038B050 48 00 06 B0 */ b lbl_8038E7A0 +lbl_8038E0F4: +/* 8038E0F4 0038B054 7F 23 CB 78 */ mr r3, r25 +/* 8038E0F8 0038B058 7F A4 EB 78 */ mr r4, r29 +/* 8038E0FC 0038B05C 38 A1 00 6C */ addi r5, r1, 0x6c +/* 8038E100 0038B060 48 00 17 01 */ bl parse_format +/* 8038E104 0038B064 88 01 00 71 */ lbz r0, 0x71(r1) +/* 8038E108 0038B068 7C 7A 1B 78 */ mr r26, r3 +/* 8038E10C 0038B06C 2C 00 00 68 */ cmpwi r0, 0x68 +/* 8038E110 0038B070 41 82 05 00 */ beq lbl_8038E610 +/* 8038E114 0038B074 40 80 00 60 */ bge lbl_8038E174 +/* 8038E118 0038B078 2C 00 00 58 */ cmpwi r0, 0x58 +/* 8038E11C 0038B07C 41 82 01 B0 */ beq lbl_8038E2CC +/* 8038E120 0038B080 40 80 00 30 */ bge lbl_8038E150 +/* 8038E124 0038B084 2C 00 00 41 */ cmpwi r0, 0x41 +/* 8038E128 0038B088 41 82 03 0C */ beq lbl_8038E434 +/* 8038E12C 0038B08C 40 80 00 10 */ bge lbl_8038E13C +/* 8038E130 0038B090 2C 00 00 25 */ cmpwi r0, 0x25 +/* 8038E134 0038B094 41 82 04 C8 */ beq lbl_8038E5FC +/* 8038E138 0038B098 48 00 04 D8 */ b lbl_8038E610 +lbl_8038E13C: +/* 8038E13C 0038B09C 2C 00 00 48 */ cmpwi r0, 0x48 +/* 8038E140 0038B0A0 40 80 04 D0 */ bge lbl_8038E610 +/* 8038E144 0038B0A4 2C 00 00 45 */ cmpwi r0, 0x45 +/* 8038E148 0038B0A8 40 80 02 80 */ bge lbl_8038E3C8 +/* 8038E14C 0038B0AC 48 00 04 C4 */ b lbl_8038E610 +lbl_8038E150: +/* 8038E150 0038B0B0 2C 00 00 63 */ cmpwi r0, 0x63 +/* 8038E154 0038B0B4 41 82 04 88 */ beq lbl_8038E5DC +/* 8038E158 0038B0B8 40 80 00 10 */ bge lbl_8038E168 +/* 8038E15C 0038B0BC 2C 00 00 61 */ cmpwi r0, 0x61 +/* 8038E160 0038B0C0 41 82 02 D4 */ beq lbl_8038E434 +/* 8038E164 0038B0C4 48 00 04 AC */ b lbl_8038E610 +lbl_8038E168: +/* 8038E168 0038B0C8 2C 00 00 65 */ cmpwi r0, 0x65 +/* 8038E16C 0038B0CC 40 80 02 5C */ bge lbl_8038E3C8 +/* 8038E170 0038B0D0 48 00 00 60 */ b lbl_8038E1D0 +lbl_8038E174: +/* 8038E174 0038B0D4 2C 00 00 74 */ cmpwi r0, 0x74 +/* 8038E178 0038B0D8 41 82 04 98 */ beq lbl_8038E610 +/* 8038E17C 0038B0DC 40 80 00 30 */ bge lbl_8038E1AC +/* 8038E180 0038B0E0 2C 00 00 6F */ cmpwi r0, 0x6f +/* 8038E184 0038B0E4 41 82 01 48 */ beq lbl_8038E2CC +/* 8038E188 0038B0E8 40 80 00 18 */ bge lbl_8038E1A0 +/* 8038E18C 0038B0EC 2C 00 00 6E */ cmpwi r0, 0x6e +/* 8038E190 0038B0F0 40 80 03 E8 */ bge lbl_8038E578 +/* 8038E194 0038B0F4 2C 00 00 6A */ cmpwi r0, 0x6a +/* 8038E198 0038B0F8 40 80 04 78 */ bge lbl_8038E610 +/* 8038E19C 0038B0FC 48 00 00 34 */ b lbl_8038E1D0 +lbl_8038E1A0: +/* 8038E1A0 0038B100 2C 00 00 73 */ cmpwi r0, 0x73 +/* 8038E1A4 0038B104 40 80 02 FC */ bge lbl_8038E4A0 +/* 8038E1A8 0038B108 48 00 04 68 */ b lbl_8038E610 +lbl_8038E1AC: +/* 8038E1AC 0038B10C 2C 00 00 78 */ cmpwi r0, 0x78 +/* 8038E1B0 0038B110 41 82 01 1C */ beq lbl_8038E2CC +/* 8038E1B4 0038B114 40 80 00 10 */ bge lbl_8038E1C4 +/* 8038E1B8 0038B118 2C 00 00 76 */ cmpwi r0, 0x76 +/* 8038E1BC 0038B11C 40 80 04 54 */ bge lbl_8038E610 +/* 8038E1C0 0038B120 48 00 01 0C */ b lbl_8038E2CC +lbl_8038E1C4: +/* 8038E1C4 0038B124 2C 00 00 FF */ cmpwi r0, 0xff +/* 8038E1C8 0038B128 41 82 04 48 */ beq lbl_8038E610 +/* 8038E1CC 0038B12C 48 00 04 44 */ b lbl_8038E610 +lbl_8038E1D0: +/* 8038E1D0 0038B130 88 01 00 70 */ lbz r0, 0x70(r1) +/* 8038E1D4 0038B134 28 00 00 03 */ cmplwi r0, 3 +/* 8038E1D8 0038B138 40 82 00 18 */ bne lbl_8038E1F0 +/* 8038E1DC 0038B13C 7F A3 EB 78 */ mr r3, r29 +/* 8038E1E0 0038B140 38 80 00 01 */ li r4, 1 +/* 8038E1E4 0038B144 4B FF B3 99 */ bl __va_arg +/* 8038E1E8 0038B148 83 83 00 00 */ lwz r28, 0(r3) +/* 8038E1EC 0038B14C 48 00 00 34 */ b lbl_8038E220 +lbl_8038E1F0: +/* 8038E1F0 0038B150 28 00 00 04 */ cmplwi r0, 4 +/* 8038E1F4 0038B154 40 82 00 1C */ bne lbl_8038E210 +/* 8038E1F8 0038B158 7F A3 EB 78 */ mr r3, r29 +/* 8038E1FC 0038B15C 38 80 00 02 */ li r4, 2 +/* 8038E200 0038B160 4B FF B3 7D */ bl __va_arg +/* 8038E204 0038B164 82 C3 00 00 */ lwz r22, 0(r3) +/* 8038E208 0038B168 82 E3 00 04 */ lwz r23, 4(r3) +/* 8038E20C 0038B16C 48 00 00 14 */ b lbl_8038E220 +lbl_8038E210: +/* 8038E210 0038B170 7F A3 EB 78 */ mr r3, r29 +/* 8038E214 0038B174 38 80 00 01 */ li r4, 1 +/* 8038E218 0038B178 4B FF B3 65 */ bl __va_arg +/* 8038E21C 0038B17C 83 83 00 00 */ lwz r28, 0(r3) +lbl_8038E220: +/* 8038E220 0038B180 88 61 00 70 */ lbz r3, 0x70(r1) +/* 8038E224 0038B184 28 03 00 02 */ cmplwi r3, 2 +/* 8038E228 0038B188 40 82 00 0C */ bne lbl_8038E234 +/* 8038E22C 0038B18C 7F 80 07 34 */ extsh r0, r28 +/* 8038E230 0038B190 7C 1C 03 78 */ mr r28, r0 +lbl_8038E234: +/* 8038E234 0038B194 28 03 00 01 */ cmplwi r3, 1 +/* 8038E238 0038B198 40 82 00 0C */ bne lbl_8038E244 +/* 8038E23C 0038B19C 7F 80 07 74 */ extsb r0, r28 +/* 8038E240 0038B1A0 7C 1C 03 78 */ mr r28, r0 +lbl_8038E244: +/* 8038E244 0038B1A4 28 03 00 04 */ cmplwi r3, 4 +/* 8038E248 0038B1A8 40 82 00 44 */ bne lbl_8038E28C +/* 8038E24C 0038B1AC 81 21 00 6C */ lwz r9, 0x6c(r1) +/* 8038E250 0038B1B0 7E E4 BB 78 */ mr r4, r23 +/* 8038E254 0038B1B4 81 01 00 70 */ lwz r8, 0x70(r1) +/* 8038E258 0038B1B8 7E C3 B3 78 */ mr r3, r22 +/* 8038E25C 0038B1BC 80 E1 00 74 */ lwz r7, 0x74(r1) +/* 8038E260 0038B1C0 7F 05 C3 78 */ mr r5, r24 +/* 8038E264 0038B1C4 80 01 00 78 */ lwz r0, 0x78(r1) +/* 8038E268 0038B1C8 38 C1 00 5C */ addi r6, r1, 0x5c +/* 8038E26C 0038B1CC 91 21 00 5C */ stw r9, 0x5c(r1) +/* 8038E270 0038B1D0 91 01 00 60 */ stw r8, 0x60(r1) +/* 8038E274 0038B1D4 90 E1 00 64 */ stw r7, 0x64(r1) +/* 8038E278 0038B1D8 90 01 00 68 */ stw r0, 0x68(r1) +/* 8038E27C 0038B1DC 48 00 10 89 */ bl longlong2str +/* 8038E280 0038B1E0 7C 74 1B 79 */ or. r20, r3, r3 +/* 8038E284 0038B1E4 41 82 03 8C */ beq lbl_8038E610 +/* 8038E288 0038B1E8 48 00 00 3C */ b lbl_8038E2C4 +lbl_8038E28C: +/* 8038E28C 0038B1EC 81 01 00 6C */ lwz r8, 0x6c(r1) +/* 8038E290 0038B1F0 7F 83 E3 78 */ mr r3, r28 +/* 8038E294 0038B1F4 80 E1 00 70 */ lwz r7, 0x70(r1) +/* 8038E298 0038B1F8 7F 04 C3 78 */ mr r4, r24 +/* 8038E29C 0038B1FC 80 C1 00 74 */ lwz r6, 0x74(r1) +/* 8038E2A0 0038B200 38 A1 00 4C */ addi r5, r1, 0x4c +/* 8038E2A4 0038B204 80 01 00 78 */ lwz r0, 0x78(r1) +/* 8038E2A8 0038B208 91 01 00 4C */ stw r8, 0x4c(r1) +/* 8038E2AC 0038B20C 90 E1 00 50 */ stw r7, 0x50(r1) +/* 8038E2B0 0038B210 90 C1 00 54 */ stw r6, 0x54(r1) +/* 8038E2B4 0038B214 90 01 00 58 */ stw r0, 0x58(r1) +/* 8038E2B8 0038B218 48 00 13 29 */ bl long2str +/* 8038E2BC 0038B21C 7C 74 1B 79 */ or. r20, r3, r3 +/* 8038E2C0 0038B220 41 82 03 50 */ beq lbl_8038E610 +lbl_8038E2C4: +/* 8038E2C4 0038B224 7F 34 A8 50 */ subf r25, r20, r21 +/* 8038E2C8 0038B228 48 00 03 88 */ b lbl_8038E650 +lbl_8038E2CC: +/* 8038E2CC 0038B22C 88 01 00 70 */ lbz r0, 0x70(r1) +/* 8038E2D0 0038B230 28 00 00 03 */ cmplwi r0, 3 +/* 8038E2D4 0038B234 40 82 00 18 */ bne lbl_8038E2EC +/* 8038E2D8 0038B238 7F A3 EB 78 */ mr r3, r29 +/* 8038E2DC 0038B23C 38 80 00 01 */ li r4, 1 +/* 8038E2E0 0038B240 4B FF B2 9D */ bl __va_arg +/* 8038E2E4 0038B244 83 83 00 00 */ lwz r28, 0(r3) +/* 8038E2E8 0038B248 48 00 00 34 */ b lbl_8038E31C +lbl_8038E2EC: +/* 8038E2EC 0038B24C 28 00 00 04 */ cmplwi r0, 4 +/* 8038E2F0 0038B250 40 82 00 1C */ bne lbl_8038E30C +/* 8038E2F4 0038B254 7F A3 EB 78 */ mr r3, r29 +/* 8038E2F8 0038B258 38 80 00 02 */ li r4, 2 +/* 8038E2FC 0038B25C 4B FF B2 81 */ bl __va_arg +/* 8038E300 0038B260 82 C3 00 00 */ lwz r22, 0(r3) +/* 8038E304 0038B264 82 E3 00 04 */ lwz r23, 4(r3) +/* 8038E308 0038B268 48 00 00 14 */ b lbl_8038E31C +lbl_8038E30C: +/* 8038E30C 0038B26C 7F A3 EB 78 */ mr r3, r29 +/* 8038E310 0038B270 38 80 00 01 */ li r4, 1 +/* 8038E314 0038B274 4B FF B2 69 */ bl __va_arg +/* 8038E318 0038B278 83 83 00 00 */ lwz r28, 0(r3) +lbl_8038E31C: +/* 8038E31C 0038B27C 88 61 00 70 */ lbz r3, 0x70(r1) +/* 8038E320 0038B280 28 03 00 02 */ cmplwi r3, 2 +/* 8038E324 0038B284 40 82 00 0C */ bne lbl_8038E330 +/* 8038E328 0038B288 57 80 04 3E */ clrlwi r0, r28, 0x10 +/* 8038E32C 0038B28C 7C 1C 03 78 */ mr r28, r0 +lbl_8038E330: +/* 8038E330 0038B290 28 03 00 01 */ cmplwi r3, 1 +/* 8038E334 0038B294 40 82 00 0C */ bne lbl_8038E340 +/* 8038E338 0038B298 57 80 06 3E */ clrlwi r0, r28, 0x18 +/* 8038E33C 0038B29C 7C 1C 03 78 */ mr r28, r0 +lbl_8038E340: +/* 8038E340 0038B2A0 28 03 00 04 */ cmplwi r3, 4 +/* 8038E344 0038B2A4 40 82 00 44 */ bne lbl_8038E388 +/* 8038E348 0038B2A8 81 21 00 6C */ lwz r9, 0x6c(r1) +/* 8038E34C 0038B2AC 7E E4 BB 78 */ mr r4, r23 +/* 8038E350 0038B2B0 81 01 00 70 */ lwz r8, 0x70(r1) +/* 8038E354 0038B2B4 7E C3 B3 78 */ mr r3, r22 +/* 8038E358 0038B2B8 80 E1 00 74 */ lwz r7, 0x74(r1) +/* 8038E35C 0038B2BC 7F 05 C3 78 */ mr r5, r24 +/* 8038E360 0038B2C0 80 01 00 78 */ lwz r0, 0x78(r1) +/* 8038E364 0038B2C4 38 C1 00 3C */ addi r6, r1, 0x3c +/* 8038E368 0038B2C8 91 21 00 3C */ stw r9, 0x3c(r1) +/* 8038E36C 0038B2CC 91 01 00 40 */ stw r8, 0x40(r1) +/* 8038E370 0038B2D0 90 E1 00 44 */ stw r7, 0x44(r1) +/* 8038E374 0038B2D4 90 01 00 48 */ stw r0, 0x48(r1) +/* 8038E378 0038B2D8 48 00 0F 8D */ bl longlong2str +/* 8038E37C 0038B2DC 7C 74 1B 79 */ or. r20, r3, r3 +/* 8038E380 0038B2E0 41 82 02 90 */ beq lbl_8038E610 +/* 8038E384 0038B2E4 48 00 00 3C */ b lbl_8038E3C0 +lbl_8038E388: +/* 8038E388 0038B2E8 81 01 00 6C */ lwz r8, 0x6c(r1) +/* 8038E38C 0038B2EC 7F 83 E3 78 */ mr r3, r28 +/* 8038E390 0038B2F0 80 E1 00 70 */ lwz r7, 0x70(r1) +/* 8038E394 0038B2F4 7F 04 C3 78 */ mr r4, r24 +/* 8038E398 0038B2F8 80 C1 00 74 */ lwz r6, 0x74(r1) +/* 8038E39C 0038B2FC 38 A1 00 2C */ addi r5, r1, 0x2c +/* 8038E3A0 0038B300 80 01 00 78 */ lwz r0, 0x78(r1) +/* 8038E3A4 0038B304 91 01 00 2C */ stw r8, 0x2c(r1) +/* 8038E3A8 0038B308 90 E1 00 30 */ stw r7, 0x30(r1) +/* 8038E3AC 0038B30C 90 C1 00 34 */ stw r6, 0x34(r1) +/* 8038E3B0 0038B310 90 01 00 38 */ stw r0, 0x38(r1) +/* 8038E3B4 0038B314 48 00 12 2D */ bl long2str +/* 8038E3B8 0038B318 7C 74 1B 79 */ or. r20, r3, r3 +/* 8038E3BC 0038B31C 41 82 02 54 */ beq lbl_8038E610 +lbl_8038E3C0: +/* 8038E3C0 0038B320 7F 34 A8 50 */ subf r25, r20, r21 +/* 8038E3C4 0038B324 48 00 02 8C */ b lbl_8038E650 +lbl_8038E3C8: +/* 8038E3C8 0038B328 88 01 00 70 */ lbz r0, 0x70(r1) +/* 8038E3CC 0038B32C 28 00 00 05 */ cmplwi r0, 5 +/* 8038E3D0 0038B330 40 82 00 18 */ bne lbl_8038E3E8 +/* 8038E3D4 0038B334 7F A3 EB 78 */ mr r3, r29 +/* 8038E3D8 0038B338 38 80 00 03 */ li r4, 3 +/* 8038E3DC 0038B33C 4B FF B1 A1 */ bl __va_arg +/* 8038E3E0 0038B340 C8 23 00 00 */ lfd f1, 0(r3) +/* 8038E3E4 0038B344 48 00 00 14 */ b lbl_8038E3F8 +lbl_8038E3E8: +/* 8038E3E8 0038B348 7F A3 EB 78 */ mr r3, r29 +/* 8038E3EC 0038B34C 38 80 00 03 */ li r4, 3 +/* 8038E3F0 0038B350 4B FF B1 8D */ bl __va_arg +/* 8038E3F4 0038B354 C8 23 00 00 */ lfd f1, 0(r3) +lbl_8038E3F8: +/* 8038E3F8 0038B358 80 E1 00 6C */ lwz r7, 0x6c(r1) +/* 8038E3FC 0038B35C 7F 03 C3 78 */ mr r3, r24 +/* 8038E400 0038B360 80 C1 00 70 */ lwz r6, 0x70(r1) +/* 8038E404 0038B364 38 81 00 1C */ addi r4, r1, 0x1c +/* 8038E408 0038B368 80 A1 00 74 */ lwz r5, 0x74(r1) +/* 8038E40C 0038B36C 80 01 00 78 */ lwz r0, 0x78(r1) +/* 8038E410 0038B370 90 E1 00 1C */ stw r7, 0x1c(r1) +/* 8038E414 0038B374 90 C1 00 20 */ stw r6, 0x20(r1) +/* 8038E418 0038B378 90 A1 00 24 */ stw r5, 0x24(r1) +/* 8038E41C 0038B37C 90 01 00 28 */ stw r0, 0x28(r1) +/* 8038E420 0038B380 48 00 03 95 */ bl float2str +/* 8038E424 0038B384 7C 74 1B 79 */ or. r20, r3, r3 +/* 8038E428 0038B388 41 82 01 E8 */ beq lbl_8038E610 +/* 8038E42C 0038B38C 7F 34 A8 50 */ subf r25, r20, r21 +/* 8038E430 0038B390 48 00 02 20 */ b lbl_8038E650 +lbl_8038E434: +/* 8038E434 0038B394 88 01 00 70 */ lbz r0, 0x70(r1) +/* 8038E438 0038B398 28 00 00 05 */ cmplwi r0, 5 +/* 8038E43C 0038B39C 40 82 00 18 */ bne lbl_8038E454 +/* 8038E440 0038B3A0 7F A3 EB 78 */ mr r3, r29 +/* 8038E444 0038B3A4 38 80 00 03 */ li r4, 3 +/* 8038E448 0038B3A8 4B FF B1 35 */ bl __va_arg +/* 8038E44C 0038B3AC C8 23 00 00 */ lfd f1, 0(r3) +/* 8038E450 0038B3B0 48 00 00 14 */ b lbl_8038E464 +lbl_8038E454: +/* 8038E454 0038B3B4 7F A3 EB 78 */ mr r3, r29 +/* 8038E458 0038B3B8 38 80 00 03 */ li r4, 3 +/* 8038E45C 0038B3BC 4B FF B1 21 */ bl __va_arg +/* 8038E460 0038B3C0 C8 23 00 00 */ lfd f1, 0(r3) +lbl_8038E464: +/* 8038E464 0038B3C4 80 E1 00 6C */ lwz r7, 0x6c(r1) +/* 8038E468 0038B3C8 7F 03 C3 78 */ mr r3, r24 +/* 8038E46C 0038B3CC 80 C1 00 70 */ lwz r6, 0x70(r1) +/* 8038E470 0038B3D0 38 81 00 0C */ addi r4, r1, 0xc +/* 8038E474 0038B3D4 80 A1 00 74 */ lwz r5, 0x74(r1) +/* 8038E478 0038B3D8 80 01 00 78 */ lwz r0, 0x78(r1) +/* 8038E47C 0038B3DC 90 E1 00 0C */ stw r7, 0xc(r1) +/* 8038E480 0038B3E0 90 C1 00 10 */ stw r6, 0x10(r1) +/* 8038E484 0038B3E4 90 A1 00 14 */ stw r5, 0x14(r1) +/* 8038E488 0038B3E8 90 01 00 18 */ stw r0, 0x18(r1) +/* 8038E48C 0038B3EC 48 00 0B 41 */ bl double2hex +/* 8038E490 0038B3F0 7C 74 1B 79 */ or. r20, r3, r3 +/* 8038E494 0038B3F4 41 82 01 7C */ beq lbl_8038E610 +/* 8038E498 0038B3F8 7F 34 A8 50 */ subf r25, r20, r21 +/* 8038E49C 0038B3FC 48 00 01 B4 */ b lbl_8038E650 +lbl_8038E4A0: +/* 8038E4A0 0038B400 88 01 00 70 */ lbz r0, 0x70(r1) +/* 8038E4A4 0038B404 28 00 00 06 */ cmplwi r0, 6 +/* 8038E4A8 0038B408 40 82 00 3C */ bne lbl_8038E4E4 +/* 8038E4AC 0038B40C 7F A3 EB 78 */ mr r3, r29 +/* 8038E4B0 0038B410 38 80 00 01 */ li r4, 1 +/* 8038E4B4 0038B414 4B FF B0 C9 */ bl __va_arg +/* 8038E4B8 0038B418 80 83 00 00 */ lwz r4, 0(r3) +/* 8038E4BC 0038B41C 28 04 00 00 */ cmplwi r4, 0 +/* 8038E4C0 0038B420 40 82 00 08 */ bne lbl_8038E4C8 +/* 8038E4C4 0038B424 38 8D 9F D0 */ addi r4, r13, lbl_805A8B90@sda21 +lbl_8038E4C8: +/* 8038E4C8 0038B428 38 61 00 7C */ addi r3, r1, 0x7c +/* 8038E4CC 0038B42C 38 A0 02 00 */ li r5, 0x200 +/* 8038E4D0 0038B430 4B FF F2 69 */ bl wcstombs +/* 8038E4D4 0038B434 2C 03 00 00 */ cmpwi r3, 0 +/* 8038E4D8 0038B438 41 80 01 38 */ blt lbl_8038E610 +/* 8038E4DC 0038B43C 3A 81 00 7C */ addi r20, r1, 0x7c +/* 8038E4E0 0038B440 48 00 00 14 */ b lbl_8038E4F4 +lbl_8038E4E4: +/* 8038E4E4 0038B444 7F A3 EB 78 */ mr r3, r29 +/* 8038E4E8 0038B448 38 80 00 01 */ li r4, 1 +/* 8038E4EC 0038B44C 4B FF B0 91 */ bl __va_arg +/* 8038E4F0 0038B450 82 83 00 00 */ lwz r20, 0(r3) +lbl_8038E4F4: +/* 8038E4F4 0038B454 28 14 00 00 */ cmplwi r20, 0 +/* 8038E4F8 0038B458 40 82 00 0C */ bne lbl_8038E504 +/* 8038E4FC 0038B45C 3C 60 80 3E */ lis r3, lbl_803D86C0@ha +/* 8038E500 0038B460 3A 83 86 C0 */ addi r20, r3, lbl_803D86C0@l +lbl_8038E504: +/* 8038E504 0038B464 88 01 00 6F */ lbz r0, 0x6f(r1) +/* 8038E508 0038B468 28 00 00 00 */ cmplwi r0, 0 +/* 8038E50C 0038B46C 41 82 00 2C */ beq lbl_8038E538 +/* 8038E510 0038B470 88 01 00 6E */ lbz r0, 0x6e(r1) +/* 8038E514 0038B474 8B 34 00 00 */ lbz r25, 0(r20) +/* 8038E518 0038B478 3A 94 00 01 */ addi r20, r20, 1 +/* 8038E51C 0038B47C 28 00 00 00 */ cmplwi r0, 0 +/* 8038E520 0038B480 41 82 01 30 */ beq lbl_8038E650 +/* 8038E524 0038B484 80 01 00 78 */ lwz r0, 0x78(r1) +/* 8038E528 0038B488 7C 19 00 00 */ cmpw r25, r0 +/* 8038E52C 0038B48C 40 81 01 24 */ ble lbl_8038E650 +/* 8038E530 0038B490 7C 19 03 78 */ mr r25, r0 +/* 8038E534 0038B494 48 00 01 1C */ b lbl_8038E650 +lbl_8038E538: +/* 8038E538 0038B498 88 01 00 6E */ lbz r0, 0x6e(r1) +/* 8038E53C 0038B49C 28 00 00 00 */ cmplwi r0, 0 +/* 8038E540 0038B4A0 41 82 00 28 */ beq lbl_8038E568 +/* 8038E544 0038B4A4 83 21 00 78 */ lwz r25, 0x78(r1) +/* 8038E548 0038B4A8 7E 83 A3 78 */ mr r3, r20 +/* 8038E54C 0038B4AC 38 80 00 00 */ li r4, 0 +/* 8038E550 0038B4B0 7F 25 CB 78 */ mr r5, r25 +/* 8038E554 0038B4B4 4B FF F3 A1 */ bl memchr +/* 8038E558 0038B4B8 28 03 00 00 */ cmplwi r3, 0 +/* 8038E55C 0038B4BC 41 82 00 F4 */ beq lbl_8038E650 +/* 8038E560 0038B4C0 7F 34 18 50 */ subf r25, r20, r3 +/* 8038E564 0038B4C4 48 00 00 EC */ b lbl_8038E650 +lbl_8038E568: +/* 8038E568 0038B4C8 7E 83 A3 78 */ mr r3, r20 +/* 8038E56C 0038B4CC 48 00 1C 55 */ bl strlen +/* 8038E570 0038B4D0 7C 79 1B 78 */ mr r25, r3 +/* 8038E574 0038B4D4 48 00 00 DC */ b lbl_8038E650 +lbl_8038E578: +/* 8038E578 0038B4D8 7F A3 EB 78 */ mr r3, r29 +/* 8038E57C 0038B4DC 38 80 00 01 */ li r4, 1 +/* 8038E580 0038B4E0 4B FF AF FD */ bl __va_arg +/* 8038E584 0038B4E4 88 01 00 70 */ lbz r0, 0x70(r1) +/* 8038E588 0038B4E8 80 63 00 00 */ lwz r3, 0(r3) +/* 8038E58C 0038B4EC 2C 00 00 02 */ cmpwi r0, 2 +/* 8038E590 0038B4F0 41 82 00 2C */ beq lbl_8038E5BC +/* 8038E594 0038B4F4 40 80 00 10 */ bge lbl_8038E5A4 +/* 8038E598 0038B4F8 2C 00 00 00 */ cmpwi r0, 0 +/* 8038E59C 0038B4FC 41 82 00 18 */ beq lbl_8038E5B4 +/* 8038E5A0 0038B500 48 00 01 F0 */ b lbl_8038E790 +lbl_8038E5A4: +/* 8038E5A4 0038B504 2C 00 00 04 */ cmpwi r0, 4 +/* 8038E5A8 0038B508 41 82 00 24 */ beq lbl_8038E5CC +/* 8038E5AC 0038B50C 40 80 01 E4 */ bge lbl_8038E790 +/* 8038E5B0 0038B510 48 00 00 14 */ b lbl_8038E5C4 +lbl_8038E5B4: +/* 8038E5B4 0038B514 93 63 00 00 */ stw r27, 0(r3) +/* 8038E5B8 0038B518 48 00 01 D8 */ b lbl_8038E790 +lbl_8038E5BC: +/* 8038E5BC 0038B51C B3 63 00 00 */ sth r27, 0(r3) +/* 8038E5C0 0038B520 48 00 01 D0 */ b lbl_8038E790 +lbl_8038E5C4: +/* 8038E5C4 0038B524 93 63 00 00 */ stw r27, 0(r3) +/* 8038E5C8 0038B528 48 00 01 C8 */ b lbl_8038E790 +lbl_8038E5CC: +/* 8038E5CC 0038B52C 93 63 00 04 */ stw r27, 4(r3) +/* 8038E5D0 0038B530 7F 60 FE 70 */ srawi r0, r27, 0x1f +/* 8038E5D4 0038B534 90 03 00 00 */ stw r0, 0(r3) +/* 8038E5D8 0038B538 48 00 01 B8 */ b lbl_8038E790 +lbl_8038E5DC: +/* 8038E5DC 0038B53C 7F A3 EB 78 */ mr r3, r29 +/* 8038E5E0 0038B540 3A 81 00 7C */ addi r20, r1, 0x7c +/* 8038E5E4 0038B544 38 80 00 01 */ li r4, 1 +/* 8038E5E8 0038B548 4B FF AF 95 */ bl __va_arg +/* 8038E5EC 0038B54C 80 03 00 00 */ lwz r0, 0(r3) +/* 8038E5F0 0038B550 3B 20 00 01 */ li r25, 1 +/* 8038E5F4 0038B554 98 01 00 7C */ stb r0, 0x7c(r1) +/* 8038E5F8 0038B558 48 00 00 58 */ b lbl_8038E650 +lbl_8038E5FC: +/* 8038E5FC 0038B55C 38 00 00 25 */ li r0, 0x25 +/* 8038E600 0038B560 3A 81 00 7C */ addi r20, r1, 0x7c +/* 8038E604 0038B564 98 01 00 7C */ stb r0, 0x7c(r1) +/* 8038E608 0038B568 3B 20 00 01 */ li r25, 1 +/* 8038E60C 0038B56C 48 00 00 44 */ b lbl_8038E650 +lbl_8038E610: +/* 8038E610 0038B570 7F 23 CB 78 */ mr r3, r25 +/* 8038E614 0038B574 48 00 1B AD */ bl strlen +/* 8038E618 0038B578 7C 65 1B 79 */ or. r5, r3, r3 +/* 8038E61C 0038B57C 7F 7B 2A 14 */ add r27, r27, r5 +/* 8038E620 0038B580 41 82 00 28 */ beq lbl_8038E648 +/* 8038E624 0038B584 7F EC FB 78 */ mr r12, r31 +/* 8038E628 0038B588 7F C3 F3 78 */ mr r3, r30 +/* 8038E62C 0038B58C 7F 24 CB 78 */ mr r4, r25 +/* 8038E630 0038B590 7D 89 03 A6 */ mtctr r12 +/* 8038E634 0038B594 4E 80 04 21 */ bctrl +/* 8038E638 0038B598 28 03 00 00 */ cmplwi r3, 0 +/* 8038E63C 0038B59C 40 82 00 0C */ bne lbl_8038E648 +/* 8038E640 0038B5A0 38 60 FF FF */ li r3, -1 +/* 8038E644 0038B5A4 48 00 01 5C */ b lbl_8038E7A0 +lbl_8038E648: +/* 8038E648 0038B5A8 7F 63 DB 78 */ mr r3, r27 +/* 8038E64C 0038B5AC 48 00 01 54 */ b lbl_8038E7A0 +lbl_8038E650: +/* 8038E650 0038B5B0 88 01 00 6C */ lbz r0, 0x6c(r1) +/* 8038E654 0038B5B4 7F 33 CB 78 */ mr r19, r25 +/* 8038E658 0038B5B8 28 00 00 00 */ cmplwi r0, 0 +/* 8038E65C 0038B5BC 41 82 00 B0 */ beq lbl_8038E70C +/* 8038E660 0038B5C0 28 00 00 02 */ cmplwi r0, 2 +/* 8038E664 0038B5C4 38 00 00 20 */ li r0, 0x20 +/* 8038E668 0038B5C8 40 82 00 08 */ bne lbl_8038E670 +/* 8038E66C 0038B5CC 38 00 00 30 */ li r0, 0x30 +lbl_8038E670: +/* 8038E670 0038B5D0 98 01 00 09 */ stb r0, 9(r1) +/* 8038E674 0038B5D4 88 14 00 00 */ lbz r0, 0(r20) +/* 8038E678 0038B5D8 7C 00 07 74 */ extsb r0, r0 +/* 8038E67C 0038B5DC 2C 00 00 2B */ cmpwi r0, 0x2b +/* 8038E680 0038B5E0 41 82 00 14 */ beq lbl_8038E694 +/* 8038E684 0038B5E4 2C 00 00 2D */ cmpwi r0, 0x2d +/* 8038E688 0038B5E8 41 82 00 0C */ beq lbl_8038E694 +/* 8038E68C 0038B5EC 2C 00 00 20 */ cmpwi r0, 0x20 +/* 8038E690 0038B5F0 40 82 00 70 */ bne lbl_8038E700 +lbl_8038E694: +/* 8038E694 0038B5F4 88 01 00 09 */ lbz r0, 9(r1) +/* 8038E698 0038B5F8 2C 00 00 30 */ cmpwi r0, 0x30 +/* 8038E69C 0038B5FC 40 82 00 64 */ bne lbl_8038E700 +/* 8038E6A0 0038B600 7F EC FB 78 */ mr r12, r31 +/* 8038E6A4 0038B604 7F C3 F3 78 */ mr r3, r30 +/* 8038E6A8 0038B608 7E 84 A3 78 */ mr r4, r20 +/* 8038E6AC 0038B60C 38 A0 00 01 */ li r5, 1 +/* 8038E6B0 0038B610 7D 89 03 A6 */ mtctr r12 +/* 8038E6B4 0038B614 4E 80 04 21 */ bctrl +/* 8038E6B8 0038B618 28 03 00 00 */ cmplwi r3, 0 +/* 8038E6BC 0038B61C 40 82 00 0C */ bne lbl_8038E6C8 +/* 8038E6C0 0038B620 38 60 FF FF */ li r3, -1 +/* 8038E6C4 0038B624 48 00 00 DC */ b lbl_8038E7A0 +lbl_8038E6C8: +/* 8038E6C8 0038B628 3A 94 00 01 */ addi r20, r20, 1 +/* 8038E6CC 0038B62C 3B 39 FF FF */ addi r25, r25, -1 +/* 8038E6D0 0038B630 48 00 00 30 */ b lbl_8038E700 +lbl_8038E6D4: +/* 8038E6D4 0038B634 7F EC FB 78 */ mr r12, r31 +/* 8038E6D8 0038B638 7F C3 F3 78 */ mr r3, r30 +/* 8038E6DC 0038B63C 38 81 00 09 */ addi r4, r1, 9 +/* 8038E6E0 0038B640 38 A0 00 01 */ li r5, 1 +/* 8038E6E4 0038B644 7D 89 03 A6 */ mtctr r12 +/* 8038E6E8 0038B648 4E 80 04 21 */ bctrl +/* 8038E6EC 0038B64C 28 03 00 00 */ cmplwi r3, 0 +/* 8038E6F0 0038B650 40 82 00 0C */ bne lbl_8038E6FC +/* 8038E6F4 0038B654 38 60 FF FF */ li r3, -1 +/* 8038E6F8 0038B658 48 00 00 A8 */ b lbl_8038E7A0 +lbl_8038E6FC: +/* 8038E6FC 0038B65C 3A 73 00 01 */ addi r19, r19, 1 +lbl_8038E700: +/* 8038E700 0038B660 80 01 00 74 */ lwz r0, 0x74(r1) +/* 8038E704 0038B664 7C 13 00 00 */ cmpw r19, r0 +/* 8038E708 0038B668 41 80 FF CC */ blt lbl_8038E6D4 +lbl_8038E70C: +/* 8038E70C 0038B66C 2C 19 00 00 */ cmpwi r25, 0 +/* 8038E710 0038B670 41 82 00 2C */ beq lbl_8038E73C +/* 8038E714 0038B674 7F EC FB 78 */ mr r12, r31 +/* 8038E718 0038B678 7F C3 F3 78 */ mr r3, r30 +/* 8038E71C 0038B67C 7E 84 A3 78 */ mr r4, r20 +/* 8038E720 0038B680 7F 25 CB 78 */ mr r5, r25 +/* 8038E724 0038B684 7D 89 03 A6 */ mtctr r12 +/* 8038E728 0038B688 4E 80 04 21 */ bctrl +/* 8038E72C 0038B68C 28 03 00 00 */ cmplwi r3, 0 +/* 8038E730 0038B690 40 82 00 0C */ bne lbl_8038E73C +/* 8038E734 0038B694 38 60 FF FF */ li r3, -1 +/* 8038E738 0038B698 48 00 00 68 */ b lbl_8038E7A0 +lbl_8038E73C: +/* 8038E73C 0038B69C 88 01 00 6C */ lbz r0, 0x6c(r1) +/* 8038E740 0038B6A0 28 00 00 00 */ cmplwi r0, 0 +/* 8038E744 0038B6A4 40 82 00 48 */ bne lbl_8038E78C +/* 8038E748 0038B6A8 3A 80 00 20 */ li r20, 0x20 +/* 8038E74C 0038B6AC 48 00 00 34 */ b lbl_8038E780 +lbl_8038E750: +/* 8038E750 0038B6B0 7F EC FB 78 */ mr r12, r31 +/* 8038E754 0038B6B4 7F C3 F3 78 */ mr r3, r30 +/* 8038E758 0038B6B8 9A 81 00 08 */ stb r20, 8(r1) +/* 8038E75C 0038B6BC 38 81 00 08 */ addi r4, r1, 8 +/* 8038E760 0038B6C0 38 A0 00 01 */ li r5, 1 +/* 8038E764 0038B6C4 7D 89 03 A6 */ mtctr r12 +/* 8038E768 0038B6C8 4E 80 04 21 */ bctrl +/* 8038E76C 0038B6CC 28 03 00 00 */ cmplwi r3, 0 +/* 8038E770 0038B6D0 40 82 00 0C */ bne lbl_8038E77C +/* 8038E774 0038B6D4 38 60 FF FF */ li r3, -1 +/* 8038E778 0038B6D8 48 00 00 28 */ b lbl_8038E7A0 +lbl_8038E77C: +/* 8038E77C 0038B6DC 3A 73 00 01 */ addi r19, r19, 1 +lbl_8038E780: +/* 8038E780 0038B6E0 80 01 00 74 */ lwz r0, 0x74(r1) +/* 8038E784 0038B6E4 7C 13 00 00 */ cmpw r19, r0 +/* 8038E788 0038B6E8 41 80 FF C8 */ blt lbl_8038E750 +lbl_8038E78C: +/* 8038E78C 0038B6EC 7F 7B 9A 14 */ add r27, r27, r19 +lbl_8038E790: +/* 8038E790 0038B6F0 88 1A 00 00 */ lbz r0, 0(r26) +/* 8038E794 0038B6F4 7C 00 07 75 */ extsb. r0, r0 +/* 8038E798 0038B6F8 40 82 F8 E0 */ bne lbl_8038E078 +lbl_8038E79C: +/* 8038E79C 0038B6FC 7F 63 DB 78 */ mr r3, r27 +lbl_8038E7A0: +/* 8038E7A0 0038B700 BA 61 02 8C */ lmw r19, 0x28c(r1) +/* 8038E7A4 0038B704 80 01 02 C4 */ lwz r0, 0x2c4(r1) +/* 8038E7A8 0038B708 7C 08 03 A6 */ mtlr r0 +/* 8038E7AC 0038B70C 38 21 02 C0 */ addi r1, r1, 0x2c0 +/* 8038E7B0 0038B710 4E 80 00 20 */ blr + +.global float2str +float2str: +/* 8038E7B4 0038B714 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 8038E7B8 0038B718 7C 08 02 A6 */ mflr r0 +/* 8038E7BC 0038B71C 90 01 00 54 */ stw r0, 0x54(r1) +/* 8038E7C0 0038B720 DB E1 00 48 */ stfd f31, 0x48(r1) +/* 8038E7C4 0038B724 FF E0 08 90 */ fmr f31, f1 +/* 8038E7C8 0038B728 93 E1 00 44 */ stw r31, 0x44(r1) +/* 8038E7CC 0038B72C 93 C1 00 40 */ stw r30, 0x40(r1) +/* 8038E7D0 0038B730 93 A1 00 3C */ stw r29, 0x3c(r1) +/* 8038E7D4 0038B734 7C 9D 23 78 */ mr r29, r4 +/* 8038E7D8 0038B738 93 81 00 38 */ stw r28, 0x38(r1) +/* 8038E7DC 0038B73C 7C 7C 1B 78 */ mr r28, r3 +/* 8038E7E0 0038B740 80 04 00 0C */ lwz r0, 0xc(r4) +/* 8038E7E4 0038B744 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 8038E7E8 0038B748 40 81 00 0C */ ble lbl_8038E7F4 +/* 8038E7EC 0038B74C 38 60 00 00 */ li r3, 0 +/* 8038E7F0 0038B750 48 00 06 8C */ b lbl_8038EE7C +lbl_8038E7F4: +/* 8038E7F4 0038B754 38 60 00 00 */ li r3, 0 +/* 8038E7F8 0038B758 38 00 00 20 */ li r0, 0x20 +/* 8038E7FC 0038B75C 98 61 00 08 */ stb r3, 8(r1) +/* 8038E800 0038B760 38 61 00 08 */ addi r3, r1, 8 +/* 8038E804 0038B764 38 81 00 0C */ addi r4, r1, 0xc +/* 8038E808 0038B768 B0 01 00 0A */ sth r0, 0xa(r1) +/* 8038E80C 0038B76C 4B FF D2 F9 */ bl __num2dec +/* 8038E810 0038B770 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038E814 0038B774 3B E1 00 11 */ addi r31, r1, 0x11 +/* 8038E818 0038B778 7C BF 02 14 */ add r5, r31, r0 +/* 8038E81C 0038B77C 48 00 00 1C */ b lbl_8038E838 +lbl_8038E820: +/* 8038E820 0038B780 88 81 00 10 */ lbz r4, 0x10(r1) +/* 8038E824 0038B784 A8 61 00 0E */ lha r3, 0xe(r1) +/* 8038E828 0038B788 38 84 FF FF */ addi r4, r4, -1 +/* 8038E82C 0038B78C 38 03 00 01 */ addi r0, r3, 1 +/* 8038E830 0038B790 98 81 00 10 */ stb r4, 0x10(r1) +/* 8038E834 0038B794 B0 01 00 0E */ sth r0, 0xe(r1) +lbl_8038E838: +/* 8038E838 0038B798 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038E83C 0038B79C 28 00 00 01 */ cmplwi r0, 1 +/* 8038E840 0038B7A0 40 81 00 10 */ ble lbl_8038E850 +/* 8038E844 0038B7A4 8C 05 FF FF */ lbzu r0, -1(r5) +/* 8038E848 0038B7A8 2C 00 00 30 */ cmpwi r0, 0x30 +/* 8038E84C 0038B7AC 41 82 FF D4 */ beq lbl_8038E820 +lbl_8038E850: +/* 8038E850 0038B7B0 88 01 00 11 */ lbz r0, 0x11(r1) +/* 8038E854 0038B7B4 2C 00 00 49 */ cmpwi r0, 0x49 +/* 8038E858 0038B7B8 41 82 00 2C */ beq lbl_8038E884 +/* 8038E85C 0038B7BC 40 80 00 10 */ bge lbl_8038E86C +/* 8038E860 0038B7C0 2C 00 00 30 */ cmpwi r0, 0x30 +/* 8038E864 0038B7C4 41 82 00 14 */ beq lbl_8038E878 +/* 8038E868 0038B7C8 48 00 01 6C */ b lbl_8038E9D4 +lbl_8038E86C: +/* 8038E86C 0038B7CC 2C 00 00 4E */ cmpwi r0, 0x4e +/* 8038E870 0038B7D0 41 82 00 BC */ beq lbl_8038E92C +/* 8038E874 0038B7D4 48 00 01 60 */ b lbl_8038E9D4 +lbl_8038E878: +/* 8038E878 0038B7D8 38 00 00 00 */ li r0, 0 +/* 8038E87C 0038B7DC B0 01 00 0E */ sth r0, 0xe(r1) +/* 8038E880 0038B7E0 48 00 01 54 */ b lbl_8038E9D4 +lbl_8038E884: +/* 8038E884 0038B7E4 C8 02 CF 78 */ lfd f0, lbl_805AEC98@sda21(r2) +/* 8038E888 0038B7E8 FC 1F 00 40 */ fcmpo cr0, f31, f0 +/* 8038E88C 0038B7EC 40 80 00 50 */ bge lbl_8038E8DC +/* 8038E890 0038B7F0 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 8038E894 0038B7F4 88 1D 00 05 */ lbz r0, 5(r29) +/* 8038E898 0038B7F8 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 8038E89C 0038B7FC 3B 9C FF FB */ addi r28, r28, -5 +/* 8038E8A0 0038B800 7C 03 00 AE */ lbzx r0, r3, r0 +/* 8038E8A4 0038B804 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 8038E8A8 0038B808 41 82 00 1C */ beq lbl_8038E8C4 +/* 8038E8AC 0038B80C 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038E8B0 0038B810 7F 83 E3 78 */ mr r3, r28 +/* 8038E8B4 0038B814 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038E8B8 0038B818 38 84 00 01 */ addi r4, r4, 1 +/* 8038E8BC 0038B81C 48 00 18 4D */ bl strcpy +/* 8038E8C0 0038B820 48 00 00 64 */ b lbl_8038E924 +lbl_8038E8C4: +/* 8038E8C4 0038B824 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038E8C8 0038B828 7F 83 E3 78 */ mr r3, r28 +/* 8038E8CC 0038B82C 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038E8D0 0038B830 38 84 00 06 */ addi r4, r4, 6 +/* 8038E8D4 0038B834 48 00 18 35 */ bl strcpy +/* 8038E8D8 0038B838 48 00 00 4C */ b lbl_8038E924 +lbl_8038E8DC: +/* 8038E8DC 0038B83C 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 8038E8E0 0038B840 88 1D 00 05 */ lbz r0, 5(r29) +/* 8038E8E4 0038B844 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 8038E8E8 0038B848 3B 9C FF FC */ addi r28, r28, -4 +/* 8038E8EC 0038B84C 7C 03 00 AE */ lbzx r0, r3, r0 +/* 8038E8F0 0038B850 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 8038E8F4 0038B854 41 82 00 1C */ beq lbl_8038E910 +/* 8038E8F8 0038B858 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038E8FC 0038B85C 7F 83 E3 78 */ mr r3, r28 +/* 8038E900 0038B860 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038E904 0038B864 38 84 00 0B */ addi r4, r4, 0xb +/* 8038E908 0038B868 48 00 18 01 */ bl strcpy +/* 8038E90C 0038B86C 48 00 00 18 */ b lbl_8038E924 +lbl_8038E910: +/* 8038E910 0038B870 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038E914 0038B874 7F 83 E3 78 */ mr r3, r28 +/* 8038E918 0038B878 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038E91C 0038B87C 38 84 00 0F */ addi r4, r4, 0xf +/* 8038E920 0038B880 48 00 17 E9 */ bl strcpy +lbl_8038E924: +/* 8038E924 0038B884 7F 83 E3 78 */ mr r3, r28 +/* 8038E928 0038B888 48 00 05 54 */ b lbl_8038EE7C +lbl_8038E92C: +/* 8038E92C 0038B88C 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038E930 0038B890 7C 00 07 75 */ extsb. r0, r0 +/* 8038E934 0038B894 41 82 00 50 */ beq lbl_8038E984 +/* 8038E938 0038B898 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 8038E93C 0038B89C 88 1D 00 05 */ lbz r0, 5(r29) +/* 8038E940 0038B8A0 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 8038E944 0038B8A4 3B 9C FF FB */ addi r28, r28, -5 +/* 8038E948 0038B8A8 7C 03 00 AE */ lbzx r0, r3, r0 +/* 8038E94C 0038B8AC 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 8038E950 0038B8B0 41 82 00 1C */ beq lbl_8038E96C +/* 8038E954 0038B8B4 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038E958 0038B8B8 7F 83 E3 78 */ mr r3, r28 +/* 8038E95C 0038B8BC 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038E960 0038B8C0 38 84 00 13 */ addi r4, r4, 0x13 +/* 8038E964 0038B8C4 48 00 17 A5 */ bl strcpy +/* 8038E968 0038B8C8 48 00 00 64 */ b lbl_8038E9CC +lbl_8038E96C: +/* 8038E96C 0038B8CC 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038E970 0038B8D0 7F 83 E3 78 */ mr r3, r28 +/* 8038E974 0038B8D4 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038E978 0038B8D8 38 84 00 18 */ addi r4, r4, 0x18 +/* 8038E97C 0038B8DC 48 00 17 8D */ bl strcpy +/* 8038E980 0038B8E0 48 00 00 4C */ b lbl_8038E9CC +lbl_8038E984: +/* 8038E984 0038B8E4 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 8038E988 0038B8E8 88 1D 00 05 */ lbz r0, 5(r29) +/* 8038E98C 0038B8EC 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 8038E990 0038B8F0 3B 9C FF FC */ addi r28, r28, -4 +/* 8038E994 0038B8F4 7C 03 00 AE */ lbzx r0, r3, r0 +/* 8038E998 0038B8F8 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 8038E99C 0038B8FC 41 82 00 1C */ beq lbl_8038E9B8 +/* 8038E9A0 0038B900 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038E9A4 0038B904 7F 83 E3 78 */ mr r3, r28 +/* 8038E9A8 0038B908 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038E9AC 0038B90C 38 84 00 1D */ addi r4, r4, 0x1d +/* 8038E9B0 0038B910 48 00 17 59 */ bl strcpy +/* 8038E9B4 0038B914 48 00 00 18 */ b lbl_8038E9CC +lbl_8038E9B8: +/* 8038E9B8 0038B918 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038E9BC 0038B91C 7F 83 E3 78 */ mr r3, r28 +/* 8038E9C0 0038B920 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038E9C4 0038B924 38 84 00 21 */ addi r4, r4, 0x21 +/* 8038E9C8 0038B928 48 00 17 41 */ bl strcpy +lbl_8038E9CC: +/* 8038E9CC 0038B92C 7F 83 E3 78 */ mr r3, r28 +/* 8038E9D0 0038B930 48 00 04 AC */ b lbl_8038EE7C +lbl_8038E9D4: +/* 8038E9D4 0038B934 A8 81 00 0E */ lha r4, 0xe(r1) +/* 8038E9D8 0038B938 38 00 00 00 */ li r0, 0 +/* 8038E9DC 0038B93C 88 61 00 10 */ lbz r3, 0x10(r1) +/* 8038E9E0 0038B940 3B DC FF FF */ addi r30, r28, -1 +/* 8038E9E4 0038B944 7C 63 22 14 */ add r3, r3, r4 +/* 8038E9E8 0038B948 38 63 FF FF */ addi r3, r3, -1 +/* 8038E9EC 0038B94C B0 61 00 0E */ sth r3, 0xe(r1) +/* 8038E9F0 0038B950 98 1C FF FF */ stb r0, -1(r28) +/* 8038E9F4 0038B954 88 1D 00 05 */ lbz r0, 5(r29) +/* 8038E9F8 0038B958 2C 00 00 65 */ cmpwi r0, 0x65 +/* 8038E9FC 0038B95C 41 82 00 F4 */ beq lbl_8038EAF0 +/* 8038EA00 0038B960 40 80 00 28 */ bge lbl_8038EA28 +/* 8038EA04 0038B964 2C 00 00 46 */ cmpwi r0, 0x46 +/* 8038EA08 0038B968 41 82 02 4C */ beq lbl_8038EC54 +/* 8038EA0C 0038B96C 40 80 00 10 */ bge lbl_8038EA1C +/* 8038EA10 0038B970 2C 00 00 45 */ cmpwi r0, 0x45 +/* 8038EA14 0038B974 40 80 00 DC */ bge lbl_8038EAF0 +/* 8038EA18 0038B978 48 00 04 60 */ b lbl_8038EE78 +lbl_8038EA1C: +/* 8038EA1C 0038B97C 2C 00 00 48 */ cmpwi r0, 0x48 +/* 8038EA20 0038B980 40 80 04 58 */ bge lbl_8038EE78 +/* 8038EA24 0038B984 48 00 00 14 */ b lbl_8038EA38 +lbl_8038EA28: +/* 8038EA28 0038B988 2C 00 00 67 */ cmpwi r0, 0x67 +/* 8038EA2C 0038B98C 41 82 00 0C */ beq lbl_8038EA38 +/* 8038EA30 0038B990 40 80 04 48 */ bge lbl_8038EE78 +/* 8038EA34 0038B994 48 00 02 20 */ b lbl_8038EC54 +lbl_8038EA38: +/* 8038EA38 0038B998 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038EA3C 0038B99C 80 9D 00 0C */ lwz r4, 0xc(r29) +/* 8038EA40 0038B9A0 7C 00 20 00 */ cmpw r0, r4 +/* 8038EA44 0038B9A4 40 81 00 0C */ ble lbl_8038EA50 +/* 8038EA48 0038B9A8 38 61 00 0C */ addi r3, r1, 0xc +/* 8038EA4C 0038B9AC 48 00 04 55 */ bl round_decimal +lbl_8038EA50: +/* 8038EA50 0038B9B0 A8 81 00 0E */ lha r4, 0xe(r1) +/* 8038EA54 0038B9B4 2C 04 FF FC */ cmpwi r4, -4 +/* 8038EA58 0038B9B8 41 80 00 10 */ blt lbl_8038EA68 +/* 8038EA5C 0038B9BC 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 8038EA60 0038B9C0 7C 04 18 00 */ cmpw r4, r3 +/* 8038EA64 0038B9C4 41 80 00 50 */ blt lbl_8038EAB4 +lbl_8038EA68: +/* 8038EA68 0038B9C8 88 1D 00 03 */ lbz r0, 3(r29) +/* 8038EA6C 0038B9CC 28 00 00 00 */ cmplwi r0, 0 +/* 8038EA70 0038B9D0 41 82 00 14 */ beq lbl_8038EA84 +/* 8038EA74 0038B9D4 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 8038EA78 0038B9D8 38 03 FF FF */ addi r0, r3, -1 +/* 8038EA7C 0038B9DC 90 1D 00 0C */ stw r0, 0xc(r29) +/* 8038EA80 0038B9E0 48 00 00 10 */ b lbl_8038EA90 +lbl_8038EA84: +/* 8038EA84 0038B9E4 88 61 00 10 */ lbz r3, 0x10(r1) +/* 8038EA88 0038B9E8 38 03 FF FF */ addi r0, r3, -1 +/* 8038EA8C 0038B9EC 90 1D 00 0C */ stw r0, 0xc(r29) +lbl_8038EA90: +/* 8038EA90 0038B9F0 88 1D 00 05 */ lbz r0, 5(r29) +/* 8038EA94 0038B9F4 28 00 00 67 */ cmplwi r0, 0x67 +/* 8038EA98 0038B9F8 40 82 00 10 */ bne lbl_8038EAA8 +/* 8038EA9C 0038B9FC 38 00 00 65 */ li r0, 0x65 +/* 8038EAA0 0038BA00 98 1D 00 05 */ stb r0, 5(r29) +/* 8038EAA4 0038BA04 48 00 00 4C */ b lbl_8038EAF0 +lbl_8038EAA8: +/* 8038EAA8 0038BA08 38 00 00 45 */ li r0, 0x45 +/* 8038EAAC 0038BA0C 98 1D 00 05 */ stb r0, 5(r29) +/* 8038EAB0 0038BA10 48 00 00 40 */ b lbl_8038EAF0 +lbl_8038EAB4: +/* 8038EAB4 0038BA14 88 1D 00 03 */ lbz r0, 3(r29) +/* 8038EAB8 0038BA18 28 00 00 00 */ cmplwi r0, 0 +/* 8038EABC 0038BA1C 41 82 00 14 */ beq lbl_8038EAD0 +/* 8038EAC0 0038BA20 38 04 00 01 */ addi r0, r4, 1 +/* 8038EAC4 0038BA24 7C 00 18 50 */ subf r0, r0, r3 +/* 8038EAC8 0038BA28 90 1D 00 0C */ stw r0, 0xc(r29) +/* 8038EACC 0038BA2C 48 00 01 88 */ b lbl_8038EC54 +lbl_8038EAD0: +/* 8038EAD0 0038BA30 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038EAD4 0038BA34 38 64 00 01 */ addi r3, r4, 1 +/* 8038EAD8 0038BA38 7C 03 00 51 */ subf. r0, r3, r0 +/* 8038EADC 0038BA3C 90 1D 00 0C */ stw r0, 0xc(r29) +/* 8038EAE0 0038BA40 40 80 01 74 */ bge lbl_8038EC54 +/* 8038EAE4 0038BA44 38 00 00 00 */ li r0, 0 +/* 8038EAE8 0038BA48 90 1D 00 0C */ stw r0, 0xc(r29) +/* 8038EAEC 0038BA4C 48 00 01 68 */ b lbl_8038EC54 +lbl_8038EAF0: +/* 8038EAF0 0038BA50 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 8038EAF4 0038BA54 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038EAF8 0038BA58 38 83 00 01 */ addi r4, r3, 1 +/* 8038EAFC 0038BA5C 7C 00 20 00 */ cmpw r0, r4 +/* 8038EB00 0038BA60 40 81 00 0C */ ble lbl_8038EB0C +/* 8038EB04 0038BA64 38 61 00 0C */ addi r3, r1, 0xc +/* 8038EB08 0038BA68 48 00 03 99 */ bl round_decimal +lbl_8038EB0C: +/* 8038EB0C 0038BA6C A8 C1 00 0E */ lha r6, 0xe(r1) +/* 8038EB10 0038BA70 39 00 00 2B */ li r8, 0x2b +/* 8038EB14 0038BA74 2C 06 00 00 */ cmpwi r6, 0 +/* 8038EB18 0038BA78 40 80 00 0C */ bge lbl_8038EB24 +/* 8038EB1C 0038BA7C 7C C6 00 D0 */ neg r6, r6 +/* 8038EB20 0038BA80 39 00 00 2D */ li r8, 0x2d +lbl_8038EB24: +/* 8038EB24 0038BA84 3C 60 66 66 */ lis r3, 0x66666667@ha +/* 8038EB28 0038BA88 38 E0 00 00 */ li r7, 0 +/* 8038EB2C 0038BA8C 38 A3 66 67 */ addi r5, r3, 0x66666667@l +/* 8038EB30 0038BA90 48 00 00 38 */ b lbl_8038EB68 +lbl_8038EB34: +/* 8038EB34 0038BA94 7C 05 30 96 */ mulhw r0, r5, r6 +/* 8038EB38 0038BA98 38 E7 00 01 */ addi r7, r7, 1 +/* 8038EB3C 0038BA9C 7C 03 16 70 */ srawi r3, r0, 2 +/* 8038EB40 0038BAA0 54 64 0F FE */ srwi r4, r3, 0x1f +/* 8038EB44 0038BAA4 7C 00 16 70 */ srawi r0, r0, 2 +/* 8038EB48 0038BAA8 7C 63 22 14 */ add r3, r3, r4 +/* 8038EB4C 0038BAAC 1C 83 00 0A */ mulli r4, r3, 0xa +/* 8038EB50 0038BAB0 54 03 0F FE */ srwi r3, r0, 0x1f +/* 8038EB54 0038BAB4 7C 84 30 50 */ subf r4, r4, r6 +/* 8038EB58 0038BAB8 7C C0 1A 14 */ add r6, r0, r3 +/* 8038EB5C 0038BABC 38 04 00 30 */ addi r0, r4, 0x30 +/* 8038EB60 0038BAC0 98 1E FF FF */ stb r0, -1(r30) +/* 8038EB64 0038BAC4 3B DE FF FF */ addi r30, r30, -1 +lbl_8038EB68: +/* 8038EB68 0038BAC8 2C 06 00 00 */ cmpwi r6, 0 +/* 8038EB6C 0038BACC 40 82 FF C8 */ bne lbl_8038EB34 +/* 8038EB70 0038BAD0 2C 07 00 02 */ cmpwi r7, 2 +/* 8038EB74 0038BAD4 41 80 FF C0 */ blt lbl_8038EB34 +/* 8038EB78 0038BAD8 99 1E FF FF */ stb r8, -1(r30) +/* 8038EB7C 0038BADC 88 1D 00 05 */ lbz r0, 5(r29) +/* 8038EB80 0038BAE0 9C 1E FF FE */ stbu r0, -2(r30) +/* 8038EB84 0038BAE4 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 8038EB88 0038BAE8 7C 1E E0 50 */ subf r0, r30, r28 +/* 8038EB8C 0038BAEC 7C 03 02 14 */ add r0, r3, r0 +/* 8038EB90 0038BAF0 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 8038EB94 0038BAF4 40 81 00 0C */ ble lbl_8038EBA0 +/* 8038EB98 0038BAF8 38 60 00 00 */ li r3, 0 +/* 8038EB9C 0038BAFC 48 00 02 E0 */ b lbl_8038EE7C +lbl_8038EBA0: +/* 8038EBA0 0038BB00 88 81 00 10 */ lbz r4, 0x10(r1) +/* 8038EBA4 0038BB04 38 03 00 01 */ addi r0, r3, 1 +/* 8038EBA8 0038BB08 7C 04 00 00 */ cmpw r4, r0 +/* 8038EBAC 0038BB0C 40 80 00 20 */ bge lbl_8038EBCC +/* 8038EBB0 0038BB10 38 63 00 02 */ addi r3, r3, 2 +/* 8038EBB4 0038BB14 38 00 00 30 */ li r0, 0x30 +/* 8038EBB8 0038BB18 7C 64 18 50 */ subf r3, r4, r3 +/* 8038EBBC 0038BB1C 48 00 00 08 */ b lbl_8038EBC4 +lbl_8038EBC0: +/* 8038EBC0 0038BB20 9C 1E FF FF */ stbu r0, -1(r30) +lbl_8038EBC4: +/* 8038EBC4 0038BB24 34 63 FF FF */ addic. r3, r3, -1 +/* 8038EBC8 0038BB28 40 82 FF F8 */ bne lbl_8038EBC0 +lbl_8038EBCC: +/* 8038EBCC 0038BB2C 88 61 00 10 */ lbz r3, 0x10(r1) +/* 8038EBD0 0038BB30 7C 9F 1A 14 */ add r4, r31, r3 +/* 8038EBD4 0038BB34 48 00 00 0C */ b lbl_8038EBE0 +lbl_8038EBD8: +/* 8038EBD8 0038BB38 8C 04 FF FF */ lbzu r0, -1(r4) +/* 8038EBDC 0038BB3C 9C 1E FF FF */ stbu r0, -1(r30) +lbl_8038EBE0: +/* 8038EBE0 0038BB40 34 63 FF FF */ addic. r3, r3, -1 +/* 8038EBE4 0038BB44 40 82 FF F4 */ bne lbl_8038EBD8 +/* 8038EBE8 0038BB48 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 8038EBEC 0038BB4C 2C 00 00 00 */ cmpwi r0, 0 +/* 8038EBF0 0038BB50 40 82 00 10 */ bne lbl_8038EC00 +/* 8038EBF4 0038BB54 88 1D 00 03 */ lbz r0, 3(r29) +/* 8038EBF8 0038BB58 28 00 00 00 */ cmplwi r0, 0 +/* 8038EBFC 0038BB5C 41 82 00 0C */ beq lbl_8038EC08 +lbl_8038EC00: +/* 8038EC00 0038BB60 38 00 00 2E */ li r0, 0x2e +/* 8038EC04 0038BB64 9C 1E FF FF */ stbu r0, -1(r30) +lbl_8038EC08: +/* 8038EC08 0038BB68 88 01 00 11 */ lbz r0, 0x11(r1) +/* 8038EC0C 0038BB6C 9C 1E FF FF */ stbu r0, -1(r30) +/* 8038EC10 0038BB70 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038EC14 0038BB74 7C 00 07 75 */ extsb. r0, r0 +/* 8038EC18 0038BB78 41 82 00 10 */ beq lbl_8038EC28 +/* 8038EC1C 0038BB7C 38 00 00 2D */ li r0, 0x2d +/* 8038EC20 0038BB80 9C 1E FF FF */ stbu r0, -1(r30) +/* 8038EC24 0038BB84 48 00 02 54 */ b lbl_8038EE78 +lbl_8038EC28: +/* 8038EC28 0038BB88 88 1D 00 01 */ lbz r0, 1(r29) +/* 8038EC2C 0038BB8C 28 00 00 01 */ cmplwi r0, 1 +/* 8038EC30 0038BB90 40 82 00 10 */ bne lbl_8038EC40 +/* 8038EC34 0038BB94 38 00 00 2B */ li r0, 0x2b +/* 8038EC38 0038BB98 9C 1E FF FF */ stbu r0, -1(r30) +/* 8038EC3C 0038BB9C 48 00 02 3C */ b lbl_8038EE78 +lbl_8038EC40: +/* 8038EC40 0038BBA0 28 00 00 02 */ cmplwi r0, 2 +/* 8038EC44 0038BBA4 40 82 02 34 */ bne lbl_8038EE78 +/* 8038EC48 0038BBA8 38 00 00 20 */ li r0, 0x20 +/* 8038EC4C 0038BBAC 9C 1E FF FF */ stbu r0, -1(r30) +/* 8038EC50 0038BBB0 48 00 02 28 */ b lbl_8038EE78 +lbl_8038EC54: +/* 8038EC54 0038BBB4 A8 01 00 0E */ lha r0, 0xe(r1) +/* 8038EC58 0038BBB8 88 81 00 10 */ lbz r4, 0x10(r1) +/* 8038EC5C 0038BBBC 7C 60 20 50 */ subf r3, r0, r4 +/* 8038EC60 0038BBC0 34 E3 FF FF */ addic. r7, r3, -1 +/* 8038EC64 0038BBC4 40 80 00 08 */ bge lbl_8038EC6C +/* 8038EC68 0038BBC8 38 E0 00 00 */ li r7, 0 +lbl_8038EC6C: +/* 8038EC6C 0038BBCC 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 8038EC70 0038BBD0 7C 07 00 00 */ cmpw r7, r0 +/* 8038EC74 0038BBD4 40 81 00 2C */ ble lbl_8038ECA0 +/* 8038EC78 0038BBD8 7C 00 38 50 */ subf r0, r0, r7 +/* 8038EC7C 0038BBDC 38 61 00 0C */ addi r3, r1, 0xc +/* 8038EC80 0038BBE0 7C 80 20 50 */ subf r4, r0, r4 +/* 8038EC84 0038BBE4 48 00 02 1D */ bl round_decimal +/* 8038EC88 0038BBE8 A8 61 00 0E */ lha r3, 0xe(r1) +/* 8038EC8C 0038BBEC 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038EC90 0038BBF0 7C 63 00 50 */ subf r3, r3, r0 +/* 8038EC94 0038BBF4 34 E3 FF FF */ addic. r7, r3, -1 +/* 8038EC98 0038BBF8 40 80 00 08 */ bge lbl_8038ECA0 +/* 8038EC9C 0038BBFC 38 E0 00 00 */ li r7, 0 +lbl_8038ECA0: +/* 8038ECA0 0038BC00 A8 61 00 0E */ lha r3, 0xe(r1) +/* 8038ECA4 0038BC04 34 C3 00 01 */ addic. r6, r3, 1 +/* 8038ECA8 0038BC08 40 80 00 08 */ bge lbl_8038ECB0 +/* 8038ECAC 0038BC0C 38 C0 00 00 */ li r6, 0 +lbl_8038ECB0: +/* 8038ECB0 0038BC10 7C 06 3A 14 */ add r0, r6, r7 +/* 8038ECB4 0038BC14 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 8038ECB8 0038BC18 40 81 00 0C */ ble lbl_8038ECC4 +/* 8038ECBC 0038BC1C 38 60 00 00 */ li r3, 0 +/* 8038ECC0 0038BC20 48 00 01 BC */ b lbl_8038EE7C +lbl_8038ECC4: +/* 8038ECC4 0038BC24 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038ECC8 0038BC28 38 80 00 00 */ li r4, 0 +/* 8038ECCC 0038BC2C 38 60 00 30 */ li r3, 0x30 +/* 8038ECD0 0038BC30 7C BF 02 14 */ add r5, r31, r0 +/* 8038ECD4 0038BC34 48 00 00 0C */ b lbl_8038ECE0 +lbl_8038ECD8: +/* 8038ECD8 0038BC38 9C 7E FF FF */ stbu r3, -1(r30) +/* 8038ECDC 0038BC3C 38 84 00 01 */ addi r4, r4, 1 +lbl_8038ECE0: +/* 8038ECE0 0038BC40 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 8038ECE4 0038BC44 7C 07 00 50 */ subf r0, r7, r0 +/* 8038ECE8 0038BC48 7C 04 00 00 */ cmpw r4, r0 +/* 8038ECEC 0038BC4C 41 80 FF EC */ blt lbl_8038ECD8 +/* 8038ECF0 0038BC50 38 60 00 00 */ li r3, 0 +/* 8038ECF4 0038BC54 48 00 00 10 */ b lbl_8038ED04 +lbl_8038ECF8: +/* 8038ECF8 0038BC58 8C 05 FF FF */ lbzu r0, -1(r5) +/* 8038ECFC 0038BC5C 38 63 00 01 */ addi r3, r3, 1 +/* 8038ED00 0038BC60 9C 1E FF FF */ stbu r0, -1(r30) +lbl_8038ED04: +/* 8038ED04 0038BC64 7C 03 38 00 */ cmpw r3, r7 +/* 8038ED08 0038BC68 40 80 00 10 */ bge lbl_8038ED18 +/* 8038ED0C 0038BC6C 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038ED10 0038BC70 7C 03 00 00 */ cmpw r3, r0 +/* 8038ED14 0038BC74 41 80 FF E4 */ blt lbl_8038ECF8 +lbl_8038ED18: +/* 8038ED18 0038BC78 7C 03 38 00 */ cmpw r3, r7 +/* 8038ED1C 0038BC7C 7C 63 38 50 */ subf r3, r3, r7 +/* 8038ED20 0038BC80 38 80 00 30 */ li r4, 0x30 +/* 8038ED24 0038BC84 40 80 00 48 */ bge lbl_8038ED6C +/* 8038ED28 0038BC88 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 8038ED2C 0038BC8C 7C 09 03 A6 */ mtctr r0 +/* 8038ED30 0038BC90 41 82 00 30 */ beq lbl_8038ED60 +lbl_8038ED34: +/* 8038ED34 0038BC94 98 9E FF FF */ stb r4, -1(r30) +/* 8038ED38 0038BC98 98 9E FF FE */ stb r4, -2(r30) +/* 8038ED3C 0038BC9C 98 9E FF FD */ stb r4, -3(r30) +/* 8038ED40 0038BCA0 98 9E FF FC */ stb r4, -4(r30) +/* 8038ED44 0038BCA4 98 9E FF FB */ stb r4, -5(r30) +/* 8038ED48 0038BCA8 98 9E FF FA */ stb r4, -6(r30) +/* 8038ED4C 0038BCAC 98 9E FF F9 */ stb r4, -7(r30) +/* 8038ED50 0038BCB0 9C 9E FF F8 */ stbu r4, -8(r30) +/* 8038ED54 0038BCB4 42 00 FF E0 */ bdnz lbl_8038ED34 +/* 8038ED58 0038BCB8 70 63 00 07 */ andi. r3, r3, 7 +/* 8038ED5C 0038BCBC 41 82 00 10 */ beq lbl_8038ED6C +lbl_8038ED60: +/* 8038ED60 0038BCC0 7C 69 03 A6 */ mtctr r3 +lbl_8038ED64: +/* 8038ED64 0038BCC4 9C 9E FF FF */ stbu r4, -1(r30) +/* 8038ED68 0038BCC8 42 00 FF FC */ bdnz lbl_8038ED64 +lbl_8038ED6C: +/* 8038ED6C 0038BCCC 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 8038ED70 0038BCD0 2C 00 00 00 */ cmpwi r0, 0 +/* 8038ED74 0038BCD4 40 82 00 10 */ bne lbl_8038ED84 +/* 8038ED78 0038BCD8 88 1D 00 03 */ lbz r0, 3(r29) +/* 8038ED7C 0038BCDC 28 00 00 00 */ cmplwi r0, 0 +/* 8038ED80 0038BCE0 41 82 00 0C */ beq lbl_8038ED8C +lbl_8038ED84: +/* 8038ED84 0038BCE4 38 00 00 2E */ li r0, 0x2e +/* 8038ED88 0038BCE8 9C 1E FF FF */ stbu r0, -1(r30) +lbl_8038ED8C: +/* 8038ED8C 0038BCEC 2C 06 00 00 */ cmpwi r6, 0 +/* 8038ED90 0038BCF0 41 82 00 A0 */ beq lbl_8038EE30 +/* 8038ED94 0038BCF4 38 80 00 00 */ li r4, 0 +/* 8038ED98 0038BCF8 38 60 00 30 */ li r3, 0x30 +/* 8038ED9C 0038BCFC 48 00 00 0C */ b lbl_8038EDA8 +lbl_8038EDA0: +/* 8038EDA0 0038BD00 9C 7E FF FF */ stbu r3, -1(r30) +/* 8038EDA4 0038BD04 38 84 00 01 */ addi r4, r4, 1 +lbl_8038EDA8: +/* 8038EDA8 0038BD08 88 01 00 10 */ lbz r0, 0x10(r1) +/* 8038EDAC 0038BD0C 7C 00 30 50 */ subf r0, r0, r6 +/* 8038EDB0 0038BD10 7C 04 00 00 */ cmpw r4, r0 +/* 8038EDB4 0038BD14 41 80 FF EC */ blt lbl_8038EDA0 +/* 8038EDB8 0038BD18 7C 04 30 00 */ cmpw r4, r6 +/* 8038EDBC 0038BD1C 7C 64 30 50 */ subf r3, r4, r6 +/* 8038EDC0 0038BD20 40 80 00 78 */ bge lbl_8038EE38 +/* 8038EDC4 0038BD24 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 8038EDC8 0038BD28 7C 09 03 A6 */ mtctr r0 +/* 8038EDCC 0038BD2C 41 82 00 50 */ beq lbl_8038EE1C +lbl_8038EDD0: +/* 8038EDD0 0038BD30 88 05 FF FF */ lbz r0, -1(r5) +/* 8038EDD4 0038BD34 98 1E FF FF */ stb r0, -1(r30) +/* 8038EDD8 0038BD38 88 05 FF FE */ lbz r0, -2(r5) +/* 8038EDDC 0038BD3C 98 1E FF FE */ stb r0, -2(r30) +/* 8038EDE0 0038BD40 88 05 FF FD */ lbz r0, -3(r5) +/* 8038EDE4 0038BD44 98 1E FF FD */ stb r0, -3(r30) +/* 8038EDE8 0038BD48 88 05 FF FC */ lbz r0, -4(r5) +/* 8038EDEC 0038BD4C 98 1E FF FC */ stb r0, -4(r30) +/* 8038EDF0 0038BD50 88 05 FF FB */ lbz r0, -5(r5) +/* 8038EDF4 0038BD54 98 1E FF FB */ stb r0, -5(r30) +/* 8038EDF8 0038BD58 88 05 FF FA */ lbz r0, -6(r5) +/* 8038EDFC 0038BD5C 98 1E FF FA */ stb r0, -6(r30) +/* 8038EE00 0038BD60 88 05 FF F9 */ lbz r0, -7(r5) +/* 8038EE04 0038BD64 98 1E FF F9 */ stb r0, -7(r30) +/* 8038EE08 0038BD68 8C 05 FF F8 */ lbzu r0, -8(r5) +/* 8038EE0C 0038BD6C 9C 1E FF F8 */ stbu r0, -8(r30) +/* 8038EE10 0038BD70 42 00 FF C0 */ bdnz lbl_8038EDD0 +/* 8038EE14 0038BD74 70 63 00 07 */ andi. r3, r3, 7 +/* 8038EE18 0038BD78 41 82 00 20 */ beq lbl_8038EE38 +lbl_8038EE1C: +/* 8038EE1C 0038BD7C 7C 69 03 A6 */ mtctr r3 +lbl_8038EE20: +/* 8038EE20 0038BD80 8C 05 FF FF */ lbzu r0, -1(r5) +/* 8038EE24 0038BD84 9C 1E FF FF */ stbu r0, -1(r30) +/* 8038EE28 0038BD88 42 00 FF F8 */ bdnz lbl_8038EE20 +/* 8038EE2C 0038BD8C 48 00 00 0C */ b lbl_8038EE38 +lbl_8038EE30: +/* 8038EE30 0038BD90 38 00 00 30 */ li r0, 0x30 +/* 8038EE34 0038BD94 9C 1E FF FF */ stbu r0, -1(r30) +lbl_8038EE38: +/* 8038EE38 0038BD98 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038EE3C 0038BD9C 7C 00 07 75 */ extsb. r0, r0 +/* 8038EE40 0038BDA0 41 82 00 10 */ beq lbl_8038EE50 +/* 8038EE44 0038BDA4 38 00 00 2D */ li r0, 0x2d +/* 8038EE48 0038BDA8 9C 1E FF FF */ stbu r0, -1(r30) +/* 8038EE4C 0038BDAC 48 00 00 2C */ b lbl_8038EE78 +lbl_8038EE50: +/* 8038EE50 0038BDB0 88 1D 00 01 */ lbz r0, 1(r29) +/* 8038EE54 0038BDB4 28 00 00 01 */ cmplwi r0, 1 +/* 8038EE58 0038BDB8 40 82 00 10 */ bne lbl_8038EE68 +/* 8038EE5C 0038BDBC 38 00 00 2B */ li r0, 0x2b +/* 8038EE60 0038BDC0 9C 1E FF FF */ stbu r0, -1(r30) +/* 8038EE64 0038BDC4 48 00 00 14 */ b lbl_8038EE78 +lbl_8038EE68: +/* 8038EE68 0038BDC8 28 00 00 02 */ cmplwi r0, 2 +/* 8038EE6C 0038BDCC 40 82 00 0C */ bne lbl_8038EE78 +/* 8038EE70 0038BDD0 38 00 00 20 */ li r0, 0x20 +/* 8038EE74 0038BDD4 9C 1E FF FF */ stbu r0, -1(r30) +lbl_8038EE78: +/* 8038EE78 0038BDD8 7F C3 F3 78 */ mr r3, r30 +lbl_8038EE7C: +/* 8038EE7C 0038BDDC 80 01 00 54 */ lwz r0, 0x54(r1) +/* 8038EE80 0038BDE0 CB E1 00 48 */ lfd f31, 0x48(r1) +/* 8038EE84 0038BDE4 83 E1 00 44 */ lwz r31, 0x44(r1) +/* 8038EE88 0038BDE8 83 C1 00 40 */ lwz r30, 0x40(r1) +/* 8038EE8C 0038BDEC 83 A1 00 3C */ lwz r29, 0x3c(r1) +/* 8038EE90 0038BDF0 83 81 00 38 */ lwz r28, 0x38(r1) +/* 8038EE94 0038BDF4 7C 08 03 A6 */ mtlr r0 +/* 8038EE98 0038BDF8 38 21 00 50 */ addi r1, r1, 0x50 +/* 8038EE9C 0038BDFC 4E 80 00 20 */ blr + +.global round_decimal +round_decimal: +/* 8038EEA0 0038BE00 2C 04 00 00 */ cmpwi r4, 0 +/* 8038EEA4 0038BE04 40 80 00 20 */ bge lbl_8038EEC4 +lbl_8038EEA8: +/* 8038EEA8 0038BE08 38 00 00 00 */ li r0, 0 +/* 8038EEAC 0038BE0C 38 80 00 01 */ li r4, 1 +/* 8038EEB0 0038BE10 B0 03 00 02 */ sth r0, 2(r3) +/* 8038EEB4 0038BE14 38 00 00 30 */ li r0, 0x30 +/* 8038EEB8 0038BE18 98 83 00 04 */ stb r4, 4(r3) +/* 8038EEBC 0038BE1C 98 03 00 05 */ stb r0, 5(r3) +/* 8038EEC0 0038BE20 4E 80 00 20 */ blr +lbl_8038EEC4: +/* 8038EEC4 0038BE24 88 E3 00 04 */ lbz r7, 4(r3) +/* 8038EEC8 0038BE28 7C 04 38 00 */ cmpw r4, r7 +/* 8038EECC 0038BE2C 4C 80 00 20 */ bgelr +/* 8038EED0 0038BE30 7C C3 22 14 */ add r6, r3, r4 +/* 8038EED4 0038BE34 88 A6 00 05 */ lbz r5, 5(r6) +/* 8038EED8 0038BE38 39 06 00 05 */ addi r8, r6, 5 +/* 8038EEDC 0038BE3C 38 05 FF D0 */ addi r0, r5, -48 +/* 8038EEE0 0038BE40 7C 06 07 74 */ extsb r6, r0 +/* 8038EEE4 0038BE44 2C 06 00 05 */ cmpwi r6, 5 +/* 8038EEE8 0038BE48 40 82 00 40 */ bne lbl_8038EF28 +/* 8038EEEC 0038BE4C 7C A3 3A 14 */ add r5, r3, r7 +/* 8038EEF0 0038BE50 38 A5 00 05 */ addi r5, r5, 5 +lbl_8038EEF4: +/* 8038EEF4 0038BE54 38 A5 FF FF */ addi r5, r5, -1 +/* 8038EEF8 0038BE58 7C 05 40 40 */ cmplw r5, r8 +/* 8038EEFC 0038BE5C 40 81 00 10 */ ble lbl_8038EF0C +/* 8038EF00 0038BE60 88 05 00 00 */ lbz r0, 0(r5) +/* 8038EF04 0038BE64 2C 00 00 30 */ cmpwi r0, 0x30 +/* 8038EF08 0038BE68 41 82 FF EC */ beq lbl_8038EEF4 +lbl_8038EF0C: +/* 8038EF0C 0038BE6C 7C 05 40 40 */ cmplw r5, r8 +/* 8038EF10 0038BE70 40 82 00 10 */ bne lbl_8038EF20 +/* 8038EF14 0038BE74 88 08 FF FF */ lbz r0, -1(r8) +/* 8038EF18 0038BE78 54 05 07 FE */ clrlwi r5, r0, 0x1f +/* 8038EF1C 0038BE7C 48 00 00 6C */ b lbl_8038EF88 +lbl_8038EF20: +/* 8038EF20 0038BE80 38 A0 00 01 */ li r5, 1 +/* 8038EF24 0038BE84 48 00 00 64 */ b lbl_8038EF88 +lbl_8038EF28: +/* 8038EF28 0038BE88 38 00 00 05 */ li r0, 5 +/* 8038EF2C 0038BE8C 7C C0 02 78 */ xor r0, r6, r0 +/* 8038EF30 0038BE90 7C 05 0E 70 */ srawi r5, r0, 1 +/* 8038EF34 0038BE94 7C 00 30 38 */ and r0, r0, r6 +/* 8038EF38 0038BE98 7C 00 28 50 */ subf r0, r0, r5 +/* 8038EF3C 0038BE9C 54 05 0F FE */ srwi r5, r0, 0x1f +/* 8038EF40 0038BEA0 48 00 00 48 */ b lbl_8038EF88 +lbl_8038EF44: +/* 8038EF44 0038BEA4 8C 08 FF FF */ lbzu r0, -1(r8) +/* 8038EF48 0038BEA8 7C A0 2A 14 */ add r5, r0, r5 +/* 8038EF4C 0038BEAC 38 05 FF D0 */ addi r0, r5, -48 +/* 8038EF50 0038BEB0 7C 07 07 74 */ extsb r7, r0 +/* 8038EF54 0038BEB4 7C E0 32 78 */ xor r0, r7, r6 +/* 8038EF58 0038BEB8 7C 05 0E 70 */ srawi r5, r0, 1 +/* 8038EF5C 0038BEBC 7C 00 38 38 */ and r0, r0, r7 +/* 8038EF60 0038BEC0 7C 00 28 50 */ subf r0, r0, r5 +/* 8038EF64 0038BEC4 54 05 0F FF */ rlwinm. r5, r0, 1, 0x1f, 0x1f +/* 8038EF68 0038BEC8 40 82 00 0C */ bne lbl_8038EF74 +/* 8038EF6C 0038BECC 7C E0 07 75 */ extsb. r0, r7 +/* 8038EF70 0038BED0 40 82 00 0C */ bne lbl_8038EF7C +lbl_8038EF74: +/* 8038EF74 0038BED4 38 84 FF FF */ addi r4, r4, -1 +/* 8038EF78 0038BED8 48 00 00 14 */ b lbl_8038EF8C +lbl_8038EF7C: +/* 8038EF7C 0038BEDC 38 07 00 30 */ addi r0, r7, 0x30 +/* 8038EF80 0038BEE0 98 08 00 00 */ stb r0, 0(r8) +/* 8038EF84 0038BEE4 48 00 00 10 */ b lbl_8038EF94 +lbl_8038EF88: +/* 8038EF88 0038BEE8 38 C0 00 09 */ li r6, 9 +lbl_8038EF8C: +/* 8038EF8C 0038BEEC 2C 04 00 00 */ cmpwi r4, 0 +/* 8038EF90 0038BEF0 40 82 FF B4 */ bne lbl_8038EF44 +lbl_8038EF94: +/* 8038EF94 0038BEF4 2C 05 00 00 */ cmpwi r5, 0 +/* 8038EF98 0038BEF8 41 82 00 24 */ beq lbl_8038EFBC +/* 8038EF9C 0038BEFC A8 A3 00 02 */ lha r5, 2(r3) +/* 8038EFA0 0038BF00 38 80 00 01 */ li r4, 1 +/* 8038EFA4 0038BF04 38 00 00 31 */ li r0, 0x31 +/* 8038EFA8 0038BF08 38 A5 00 01 */ addi r5, r5, 1 +/* 8038EFAC 0038BF0C B0 A3 00 02 */ sth r5, 2(r3) +/* 8038EFB0 0038BF10 98 83 00 04 */ stb r4, 4(r3) +/* 8038EFB4 0038BF14 98 03 00 05 */ stb r0, 5(r3) +/* 8038EFB8 0038BF18 4E 80 00 20 */ blr +lbl_8038EFBC: +/* 8038EFBC 0038BF1C 2C 04 00 00 */ cmpwi r4, 0 +/* 8038EFC0 0038BF20 41 82 FE E8 */ beq lbl_8038EEA8 +/* 8038EFC4 0038BF24 98 83 00 04 */ stb r4, 4(r3) +/* 8038EFC8 0038BF28 4E 80 00 20 */ blr + +.global double2hex +double2hex: +/* 8038EFCC 0038BF2C 94 21 FF 80 */ stwu r1, -0x80(r1) +/* 8038EFD0 0038BF30 7C 08 02 A6 */ mflr r0 +/* 8038EFD4 0038BF34 90 01 00 84 */ stw r0, 0x84(r1) +/* 8038EFD8 0038BF38 93 E1 00 7C */ stw r31, 0x7c(r1) +/* 8038EFDC 0038BF3C 7C 9F 23 78 */ mr r31, r4 +/* 8038EFE0 0038BF40 93 C1 00 78 */ stw r30, 0x78(r1) +/* 8038EFE4 0038BF44 7C 7E 1B 78 */ mr r30, r3 +/* 8038EFE8 0038BF48 80 04 00 0C */ lwz r0, 0xc(r4) +/* 8038EFEC 0038BF4C D8 21 00 08 */ stfd f1, 8(r1) +/* 8038EFF0 0038BF50 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 8038EFF4 0038BF54 D8 21 00 18 */ stfd f1, 0x18(r1) +/* 8038EFF8 0038BF58 40 81 00 0C */ ble lbl_8038F004 +/* 8038EFFC 0038BF5C 38 60 00 00 */ li r3, 0 +/* 8038F000 0038BF60 48 00 02 EC */ b lbl_8038F2EC +lbl_8038F004: +/* 8038F004 0038BF64 38 60 00 00 */ li r3, 0 +/* 8038F008 0038BF68 38 00 00 20 */ li r0, 0x20 +/* 8038F00C 0038BF6C 98 61 00 10 */ stb r3, 0x10(r1) +/* 8038F010 0038BF70 38 61 00 10 */ addi r3, r1, 0x10 +/* 8038F014 0038BF74 38 81 00 40 */ addi r4, r1, 0x40 +/* 8038F018 0038BF78 B0 01 00 12 */ sth r0, 0x12(r1) +/* 8038F01C 0038BF7C 4B FF CA E9 */ bl __num2dec +/* 8038F020 0038BF80 88 01 00 45 */ lbz r0, 0x45(r1) +/* 8038F024 0038BF84 28 00 00 49 */ cmplwi r0, 0x49 +/* 8038F028 0038BF88 40 82 00 94 */ bne lbl_8038F0BC +/* 8038F02C 0038BF8C A8 01 00 18 */ lha r0, 0x18(r1) +/* 8038F030 0038BF90 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10 +/* 8038F034 0038BF94 41 82 00 44 */ beq lbl_8038F078 +/* 8038F038 0038BF98 88 1F 00 05 */ lbz r0, 5(r31) +/* 8038F03C 0038BF9C 3B DE FF FB */ addi r30, r30, -5 +/* 8038F040 0038BFA0 28 00 00 41 */ cmplwi r0, 0x41 +/* 8038F044 0038BFA4 40 82 00 1C */ bne lbl_8038F060 +/* 8038F048 0038BFA8 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038F04C 0038BFAC 7F C3 F3 78 */ mr r3, r30 +/* 8038F050 0038BFB0 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038F054 0038BFB4 38 84 00 01 */ addi r4, r4, 1 +/* 8038F058 0038BFB8 48 00 10 B1 */ bl strcpy +/* 8038F05C 0038BFBC 48 00 00 58 */ b lbl_8038F0B4 +lbl_8038F060: +/* 8038F060 0038BFC0 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038F064 0038BFC4 7F C3 F3 78 */ mr r3, r30 +/* 8038F068 0038BFC8 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038F06C 0038BFCC 38 84 00 06 */ addi r4, r4, 6 +/* 8038F070 0038BFD0 48 00 10 99 */ bl strcpy +/* 8038F074 0038BFD4 48 00 00 40 */ b lbl_8038F0B4 +lbl_8038F078: +/* 8038F078 0038BFD8 88 1F 00 05 */ lbz r0, 5(r31) +/* 8038F07C 0038BFDC 3B DE FF FC */ addi r30, r30, -4 +/* 8038F080 0038BFE0 28 00 00 41 */ cmplwi r0, 0x41 +/* 8038F084 0038BFE4 40 82 00 1C */ bne lbl_8038F0A0 +/* 8038F088 0038BFE8 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038F08C 0038BFEC 7F C3 F3 78 */ mr r3, r30 +/* 8038F090 0038BFF0 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038F094 0038BFF4 38 84 00 0B */ addi r4, r4, 0xb +/* 8038F098 0038BFF8 48 00 10 71 */ bl strcpy +/* 8038F09C 0038BFFC 48 00 00 18 */ b lbl_8038F0B4 +lbl_8038F0A0: +/* 8038F0A0 0038C000 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038F0A4 0038C004 7F C3 F3 78 */ mr r3, r30 +/* 8038F0A8 0038C008 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038F0AC 0038C00C 38 84 00 0F */ addi r4, r4, 0xf +/* 8038F0B0 0038C010 48 00 10 59 */ bl strcpy +lbl_8038F0B4: +/* 8038F0B4 0038C014 7F C3 F3 78 */ mr r3, r30 +/* 8038F0B8 0038C018 48 00 02 34 */ b lbl_8038F2EC +lbl_8038F0BC: +/* 8038F0BC 0038C01C 28 00 00 4E */ cmplwi r0, 0x4e +/* 8038F0C0 0038C020 40 82 00 94 */ bne lbl_8038F154 +/* 8038F0C4 0038C024 88 01 00 08 */ lbz r0, 8(r1) +/* 8038F0C8 0038C028 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 8038F0CC 0038C02C 41 82 00 44 */ beq lbl_8038F110 +/* 8038F0D0 0038C030 88 1F 00 05 */ lbz r0, 5(r31) +/* 8038F0D4 0038C034 3B DE FF FB */ addi r30, r30, -5 +/* 8038F0D8 0038C038 28 00 00 41 */ cmplwi r0, 0x41 +/* 8038F0DC 0038C03C 40 82 00 1C */ bne lbl_8038F0F8 +/* 8038F0E0 0038C040 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038F0E4 0038C044 7F C3 F3 78 */ mr r3, r30 +/* 8038F0E8 0038C048 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038F0EC 0038C04C 38 84 00 13 */ addi r4, r4, 0x13 +/* 8038F0F0 0038C050 48 00 10 19 */ bl strcpy +/* 8038F0F4 0038C054 48 00 00 58 */ b lbl_8038F14C +lbl_8038F0F8: +/* 8038F0F8 0038C058 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038F0FC 0038C05C 7F C3 F3 78 */ mr r3, r30 +/* 8038F100 0038C060 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038F104 0038C064 38 84 00 18 */ addi r4, r4, 0x18 +/* 8038F108 0038C068 48 00 10 01 */ bl strcpy +/* 8038F10C 0038C06C 48 00 00 40 */ b lbl_8038F14C +lbl_8038F110: +/* 8038F110 0038C070 88 1F 00 05 */ lbz r0, 5(r31) +/* 8038F114 0038C074 3B DE FF FC */ addi r30, r30, -4 +/* 8038F118 0038C078 28 00 00 41 */ cmplwi r0, 0x41 +/* 8038F11C 0038C07C 40 82 00 1C */ bne lbl_8038F138 +/* 8038F120 0038C080 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038F124 0038C084 7F C3 F3 78 */ mr r3, r30 +/* 8038F128 0038C088 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038F12C 0038C08C 38 84 00 1D */ addi r4, r4, 0x1d +/* 8038F130 0038C090 48 00 0F D9 */ bl strcpy +/* 8038F134 0038C094 48 00 00 18 */ b lbl_8038F14C +lbl_8038F138: +/* 8038F138 0038C098 3C 80 80 3E */ lis r4, lbl_803D86C0@ha +/* 8038F13C 0038C09C 7F C3 F3 78 */ mr r3, r30 +/* 8038F140 0038C0A0 38 84 86 C0 */ addi r4, r4, lbl_803D86C0@l +/* 8038F144 0038C0A4 38 84 00 21 */ addi r4, r4, 0x21 +/* 8038F148 0038C0A8 48 00 0F C1 */ bl strcpy +lbl_8038F14C: +/* 8038F14C 0038C0AC 7F C3 F3 78 */ mr r3, r30 +/* 8038F150 0038C0B0 48 00 01 9C */ b lbl_8038F2EC +lbl_8038F154: +/* 8038F154 0038C0B4 39 00 00 00 */ li r8, 0 +/* 8038F158 0038C0B8 39 20 00 01 */ li r9, 1 +/* 8038F15C 0038C0BC A8 01 00 18 */ lha r0, 0x18(r1) +/* 8038F160 0038C0C0 38 E0 00 64 */ li r7, 0x64 +/* 8038F164 0038C0C4 99 21 00 30 */ stb r9, 0x30(r1) +/* 8038F168 0038C0C8 7F C4 F3 78 */ mr r4, r30 +/* 8038F16C 0038C0CC 54 00 E5 7E */ rlwinm r0, r0, 0x1c, 0x15, 0x1f +/* 8038F170 0038C0D0 38 A1 00 20 */ addi r5, r1, 0x20 +/* 8038F174 0038C0D4 7C 03 07 34 */ extsh r3, r0 +/* 8038F178 0038C0D8 99 21 00 31 */ stb r9, 0x31(r1) +/* 8038F17C 0038C0DC 38 63 FC 01 */ addi r3, r3, -1023 +/* 8038F180 0038C0E0 99 01 00 32 */ stb r8, 0x32(r1) +/* 8038F184 0038C0E4 99 01 00 33 */ stb r8, 0x33(r1) +/* 8038F188 0038C0E8 80 C1 00 30 */ lwz r6, 0x30(r1) +/* 8038F18C 0038C0EC 99 01 00 34 */ stb r8, 0x34(r1) +/* 8038F190 0038C0F0 98 E1 00 35 */ stb r7, 0x35(r1) +/* 8038F194 0038C0F4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8038F198 0038C0F8 91 01 00 38 */ stw r8, 0x38(r1) +/* 8038F19C 0038C0FC 91 21 00 3C */ stw r9, 0x3c(r1) +/* 8038F1A0 0038C100 90 C1 00 20 */ stw r6, 0x20(r1) +/* 8038F1A4 0038C104 90 01 00 24 */ stw r0, 0x24(r1) +/* 8038F1A8 0038C108 91 01 00 28 */ stw r8, 0x28(r1) +/* 8038F1AC 0038C10C 91 21 00 2C */ stw r9, 0x2c(r1) +/* 8038F1B0 0038C110 48 00 04 31 */ bl long2str +/* 8038F1B4 0038C114 88 1F 00 05 */ lbz r0, 5(r31) +/* 8038F1B8 0038C118 28 00 00 61 */ cmplwi r0, 0x61 +/* 8038F1BC 0038C11C 40 82 00 14 */ bne lbl_8038F1D0 +/* 8038F1C0 0038C120 38 00 00 70 */ li r0, 0x70 +/* 8038F1C4 0038C124 38 83 FF FF */ addi r4, r3, -1 +/* 8038F1C8 0038C128 98 03 FF FF */ stb r0, -1(r3) +/* 8038F1CC 0038C12C 48 00 00 10 */ b lbl_8038F1DC +lbl_8038F1D0: +/* 8038F1D0 0038C130 38 00 00 50 */ li r0, 0x50 +/* 8038F1D4 0038C134 38 83 FF FF */ addi r4, r3, -1 +/* 8038F1D8 0038C138 98 03 FF FF */ stb r0, -1(r3) +lbl_8038F1DC: +/* 8038F1DC 0038C13C 81 1F 00 0C */ lwz r8, 0xc(r31) +/* 8038F1E0 0038C140 38 C1 00 08 */ addi r6, r1, 8 +/* 8038F1E4 0038C144 7D 09 03 A6 */ mtctr r8 +/* 8038F1E8 0038C148 2C 08 00 01 */ cmpwi r8, 1 +/* 8038F1EC 0038C14C 41 80 00 6C */ blt lbl_8038F258 +lbl_8038F1F0: +/* 8038F1F0 0038C150 55 05 0F FE */ srwi r5, r8, 0x1f +/* 8038F1F4 0038C154 55 00 07 FE */ clrlwi r0, r8, 0x1f +/* 8038F1F8 0038C158 7C 65 42 14 */ add r3, r5, r8 +/* 8038F1FC 0038C15C 7C 63 0E 70 */ srawi r3, r3, 1 +/* 8038F200 0038C160 7C 00 2A 78 */ xor r0, r0, r5 +/* 8038F204 0038C164 38 63 00 01 */ addi r3, r3, 1 +/* 8038F208 0038C168 7C E6 18 AE */ lbzx r7, r6, r3 +/* 8038F20C 0038C16C 7C 05 00 51 */ subf. r0, r5, r0 +/* 8038F210 0038C170 54 E0 E7 3E */ rlwinm r0, r7, 0x1c, 0x1c, 0x1f +/* 8038F214 0038C174 7C 03 07 74 */ extsb r3, r0 +/* 8038F218 0038C178 41 82 00 08 */ beq lbl_8038F220 +/* 8038F21C 0038C17C 54 E3 07 3E */ clrlwi r3, r7, 0x1c +lbl_8038F220: +/* 8038F220 0038C180 7C 60 07 74 */ extsb r0, r3 +/* 8038F224 0038C184 2C 00 00 0A */ cmpwi r0, 0xa +/* 8038F228 0038C188 40 80 00 0C */ bge lbl_8038F234 +/* 8038F22C 0038C18C 38 03 00 30 */ addi r0, r3, 0x30 +/* 8038F230 0038C190 48 00 00 1C */ b lbl_8038F24C +lbl_8038F234: +/* 8038F234 0038C194 88 1F 00 05 */ lbz r0, 5(r31) +/* 8038F238 0038C198 28 00 00 61 */ cmplwi r0, 0x61 +/* 8038F23C 0038C19C 40 82 00 0C */ bne lbl_8038F248 +/* 8038F240 0038C1A0 38 03 00 57 */ addi r0, r3, 0x57 +/* 8038F244 0038C1A4 48 00 00 08 */ b lbl_8038F24C +lbl_8038F248: +/* 8038F248 0038C1A8 38 03 00 37 */ addi r0, r3, 0x37 +lbl_8038F24C: +/* 8038F24C 0038C1AC 9C 04 FF FF */ stbu r0, -1(r4) +/* 8038F250 0038C1B0 39 08 FF FF */ addi r8, r8, -1 +/* 8038F254 0038C1B4 42 00 FF 9C */ bdnz lbl_8038F1F0 +lbl_8038F258: +/* 8038F258 0038C1B8 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 8038F25C 0038C1BC 2C 00 00 00 */ cmpwi r0, 0 +/* 8038F260 0038C1C0 40 82 00 10 */ bne lbl_8038F270 +/* 8038F264 0038C1C4 88 1F 00 03 */ lbz r0, 3(r31) +/* 8038F268 0038C1C8 28 00 00 00 */ cmplwi r0, 0 +/* 8038F26C 0038C1CC 41 82 00 0C */ beq lbl_8038F278 +lbl_8038F270: +/* 8038F270 0038C1D0 38 00 00 2E */ li r0, 0x2e +/* 8038F274 0038C1D4 9C 04 FF FF */ stbu r0, -1(r4) +lbl_8038F278: +/* 8038F278 0038C1D8 38 00 00 31 */ li r0, 0x31 +/* 8038F27C 0038C1DC 98 04 FF FF */ stb r0, -1(r4) +/* 8038F280 0038C1E0 88 1F 00 05 */ lbz r0, 5(r31) +/* 8038F284 0038C1E4 28 00 00 61 */ cmplwi r0, 0x61 +/* 8038F288 0038C1E8 40 82 00 10 */ bne lbl_8038F298 +/* 8038F28C 0038C1EC 38 00 00 78 */ li r0, 0x78 +/* 8038F290 0038C1F0 9C 04 FF FE */ stbu r0, -2(r4) +/* 8038F294 0038C1F4 48 00 00 0C */ b lbl_8038F2A0 +lbl_8038F298: +/* 8038F298 0038C1F8 38 00 00 58 */ li r0, 0x58 +/* 8038F29C 0038C1FC 9C 04 FF FE */ stbu r0, -2(r4) +lbl_8038F2A0: +/* 8038F2A0 0038C200 A8 01 00 18 */ lha r0, 0x18(r1) +/* 8038F2A4 0038C204 38 60 00 30 */ li r3, 0x30 +/* 8038F2A8 0038C208 9C 64 FF FF */ stbu r3, -1(r4) +/* 8038F2AC 0038C20C 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10 +/* 8038F2B0 0038C210 41 82 00 10 */ beq lbl_8038F2C0 +/* 8038F2B4 0038C214 38 00 00 2D */ li r0, 0x2d +/* 8038F2B8 0038C218 9C 04 FF FF */ stbu r0, -1(r4) +/* 8038F2BC 0038C21C 48 00 00 2C */ b lbl_8038F2E8 +lbl_8038F2C0: +/* 8038F2C0 0038C220 88 1F 00 01 */ lbz r0, 1(r31) +/* 8038F2C4 0038C224 28 00 00 01 */ cmplwi r0, 1 +/* 8038F2C8 0038C228 40 82 00 10 */ bne lbl_8038F2D8 +/* 8038F2CC 0038C22C 38 00 00 2B */ li r0, 0x2b +/* 8038F2D0 0038C230 9C 04 FF FF */ stbu r0, -1(r4) +/* 8038F2D4 0038C234 48 00 00 14 */ b lbl_8038F2E8 +lbl_8038F2D8: +/* 8038F2D8 0038C238 28 00 00 02 */ cmplwi r0, 2 +/* 8038F2DC 0038C23C 40 82 00 0C */ bne lbl_8038F2E8 +/* 8038F2E0 0038C240 38 00 00 20 */ li r0, 0x20 +/* 8038F2E4 0038C244 9C 04 FF FF */ stbu r0, -1(r4) +lbl_8038F2E8: +/* 8038F2E8 0038C248 7C 83 23 78 */ mr r3, r4 +lbl_8038F2EC: +/* 8038F2EC 0038C24C 80 01 00 84 */ lwz r0, 0x84(r1) +/* 8038F2F0 0038C250 83 E1 00 7C */ lwz r31, 0x7c(r1) +/* 8038F2F4 0038C254 83 C1 00 78 */ lwz r30, 0x78(r1) +/* 8038F2F8 0038C258 7C 08 03 A6 */ mtlr r0 +/* 8038F2FC 0038C25C 38 21 00 80 */ addi r1, r1, 0x80 +/* 8038F300 0038C260 4E 80 00 20 */ blr + +.global longlong2str +longlong2str: +/* 8038F304 0038C264 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8038F308 0038C268 7C 08 02 A6 */ mflr r0 +/* 8038F30C 0038C26C 90 01 00 34 */ stw r0, 0x34(r1) +/* 8038F310 0038C270 38 00 00 00 */ li r0, 0 +/* 8038F314 0038C274 BE C1 00 08 */ stmw r22, 8(r1) +/* 8038F318 0038C278 7C B7 2B 78 */ mr r23, r5 +/* 8038F31C 0038C27C 7C 85 02 78 */ xor r5, r4, r0 +/* 8038F320 0038C280 7C D8 33 78 */ mr r24, r6 +/* 8038F324 0038C284 7C 9E 23 78 */ mr r30, r4 +/* 8038F328 0038C288 7C 7F 1B 78 */ mr r31, r3 +/* 8038F32C 0038C28C 3B 77 FF FF */ addi r27, r23, -1 +/* 8038F330 0038C290 3B 20 00 00 */ li r25, 0 +/* 8038F334 0038C294 3B 40 00 00 */ li r26, 0 +/* 8038F338 0038C298 98 17 FF FF */ stb r0, -1(r23) +/* 8038F33C 0038C29C 7C 60 02 78 */ xor r0, r3, r0 +/* 8038F340 0038C2A0 7C A0 03 79 */ or. r0, r5, r0 +/* 8038F344 0038C2A4 40 82 00 30 */ bne lbl_8038F374 +/* 8038F348 0038C2A8 80 18 00 0C */ lwz r0, 0xc(r24) +/* 8038F34C 0038C2AC 2C 00 00 00 */ cmpwi r0, 0 +/* 8038F350 0038C2B0 40 82 00 24 */ bne lbl_8038F374 +/* 8038F354 0038C2B4 88 18 00 03 */ lbz r0, 3(r24) +/* 8038F358 0038C2B8 28 00 00 00 */ cmplwi r0, 0 +/* 8038F35C 0038C2BC 41 82 00 10 */ beq lbl_8038F36C +/* 8038F360 0038C2C0 88 18 00 05 */ lbz r0, 5(r24) +/* 8038F364 0038C2C4 28 00 00 6F */ cmplwi r0, 0x6f +/* 8038F368 0038C2C8 41 82 00 0C */ beq lbl_8038F374 +lbl_8038F36C: +/* 8038F36C 0038C2CC 7F 63 DB 78 */ mr r3, r27 +/* 8038F370 0038C2D0 48 00 02 5C */ b lbl_8038F5CC +lbl_8038F374: +/* 8038F374 0038C2D4 88 B8 00 05 */ lbz r5, 5(r24) +/* 8038F378 0038C2D8 38 05 FF A8 */ addi r0, r5, -88 +/* 8038F37C 0038C2DC 28 00 00 20 */ cmplwi r0, 0x20 +/* 8038F380 0038C2E0 41 81 00 8C */ bgt lbl_8038F40C +/* 8038F384 0038C2E4 3C A0 80 3F */ lis r5, lbl_803F2D58@ha +/* 8038F388 0038C2E8 54 00 10 3A */ slwi r0, r0, 2 +/* 8038F38C 0038C2EC 38 A5 2D 58 */ addi r5, r5, lbl_803F2D58@l +/* 8038F390 0038C2F0 7C 05 00 2E */ lwzx r0, r5, r0 +/* 8038F394 0038C2F4 7C 09 03 A6 */ mtctr r0 +/* 8038F398 0038C2F8 4E 80 04 20 */ bctr +/* 8038F39C 0038C2FC 38 00 00 00 */ li r0, 0 +/* 8038F3A0 0038C300 6C 65 80 00 */ xoris r5, r3, 0x8000 +/* 8038F3A4 0038C304 6C 03 80 00 */ xoris r3, r0, 0x8000 +/* 8038F3A8 0038C308 3B 80 00 0A */ li r28, 0xa +/* 8038F3AC 0038C30C 7C 00 20 10 */ subfc r0, r0, r4 +/* 8038F3B0 0038C310 3B A0 00 00 */ li r29, 0 +/* 8038F3B4 0038C314 7C 63 29 10 */ subfe r3, r3, r5 +/* 8038F3B8 0038C318 7C 65 29 10 */ subfe r3, r5, r5 +/* 8038F3BC 0038C31C 7C 63 00 D1 */ neg. r3, r3 +/* 8038F3C0 0038C320 41 82 00 4C */ beq lbl_8038F40C +/* 8038F3C4 0038C324 23 DE 00 00 */ subfic r30, r30, 0 +/* 8038F3C8 0038C328 3B 20 00 01 */ li r25, 1 +/* 8038F3CC 0038C32C 7F FF 01 90 */ subfze r31, r31 +/* 8038F3D0 0038C330 48 00 00 3C */ b lbl_8038F40C +/* 8038F3D4 0038C334 38 00 00 00 */ li r0, 0 +/* 8038F3D8 0038C338 3B 80 00 08 */ li r28, 8 +/* 8038F3DC 0038C33C 98 18 00 01 */ stb r0, 1(r24) +/* 8038F3E0 0038C340 3B A0 00 00 */ li r29, 0 +/* 8038F3E4 0038C344 48 00 00 28 */ b lbl_8038F40C +/* 8038F3E8 0038C348 38 00 00 00 */ li r0, 0 +/* 8038F3EC 0038C34C 3B 80 00 0A */ li r28, 0xa +/* 8038F3F0 0038C350 98 18 00 01 */ stb r0, 1(r24) +/* 8038F3F4 0038C354 3B A0 00 00 */ li r29, 0 +/* 8038F3F8 0038C358 48 00 00 14 */ b lbl_8038F40C +/* 8038F3FC 0038C35C 38 00 00 00 */ li r0, 0 +/* 8038F400 0038C360 3B 80 00 10 */ li r28, 0x10 +/* 8038F404 0038C364 98 18 00 01 */ stb r0, 1(r24) +/* 8038F408 0038C368 3B A0 00 00 */ li r29, 0 +lbl_8038F40C: +/* 8038F40C 0038C36C 7F E3 FB 78 */ mr r3, r31 +/* 8038F410 0038C370 7F C4 F3 78 */ mr r4, r30 +/* 8038F414 0038C374 7F A5 EB 78 */ mr r5, r29 +/* 8038F418 0038C378 7F 86 E3 78 */ mr r6, r28 +/* 8038F41C 0038C37C 4B FF A8 E9 */ bl __mod2u +/* 8038F420 0038C380 7C 96 23 78 */ mr r22, r4 +/* 8038F424 0038C384 7F E3 FB 78 */ mr r3, r31 +/* 8038F428 0038C388 7F C4 F3 78 */ mr r4, r30 +/* 8038F42C 0038C38C 7F A5 EB 78 */ mr r5, r29 +/* 8038F430 0038C390 7F 86 E3 78 */ mr r6, r28 +/* 8038F434 0038C394 4B FF A6 AD */ bl __div2u +/* 8038F438 0038C398 2C 16 00 0A */ cmpwi r22, 0xa +/* 8038F43C 0038C39C 7C 9E 23 78 */ mr r30, r4 +/* 8038F440 0038C3A0 7C 7F 1B 78 */ mr r31, r3 +/* 8038F444 0038C3A4 40 80 00 0C */ bge lbl_8038F450 +/* 8038F448 0038C3A8 38 16 00 30 */ addi r0, r22, 0x30 +/* 8038F44C 0038C3AC 48 00 00 1C */ b lbl_8038F468 +lbl_8038F450: +/* 8038F450 0038C3B0 88 18 00 05 */ lbz r0, 5(r24) +/* 8038F454 0038C3B4 28 00 00 78 */ cmplwi r0, 0x78 +/* 8038F458 0038C3B8 40 82 00 0C */ bne lbl_8038F464 +/* 8038F45C 0038C3BC 38 16 00 57 */ addi r0, r22, 0x57 +/* 8038F460 0038C3C0 48 00 00 08 */ b lbl_8038F468 +lbl_8038F464: +/* 8038F464 0038C3C4 38 16 00 37 */ addi r0, r22, 0x37 +lbl_8038F468: +/* 8038F468 0038C3C8 38 80 00 00 */ li r4, 0 +/* 8038F46C 0038C3CC 9C 1B FF FF */ stbu r0, -1(r27) +/* 8038F470 0038C3D0 7F C3 22 78 */ xor r3, r30, r4 +/* 8038F474 0038C3D4 3B 5A 00 01 */ addi r26, r26, 1 +/* 8038F478 0038C3D8 7F E0 22 78 */ xor r0, r31, r4 +/* 8038F47C 0038C3DC 7C 60 03 79 */ or. r0, r3, r0 +/* 8038F480 0038C3E0 40 82 FF 8C */ bne lbl_8038F40C +/* 8038F484 0038C3E4 38 60 00 08 */ li r3, 8 +/* 8038F488 0038C3E8 7F A0 22 78 */ xor r0, r29, r4 +/* 8038F48C 0038C3EC 7F 83 1A 78 */ xor r3, r28, r3 +/* 8038F490 0038C3F0 7C 60 03 79 */ or. r0, r3, r0 +/* 8038F494 0038C3F4 40 82 00 28 */ bne lbl_8038F4BC +/* 8038F498 0038C3F8 88 18 00 03 */ lbz r0, 3(r24) +/* 8038F49C 0038C3FC 28 00 00 00 */ cmplwi r0, 0 +/* 8038F4A0 0038C400 41 82 00 1C */ beq lbl_8038F4BC +/* 8038F4A4 0038C404 88 1B 00 00 */ lbz r0, 0(r27) +/* 8038F4A8 0038C408 2C 00 00 30 */ cmpwi r0, 0x30 +/* 8038F4AC 0038C40C 41 82 00 10 */ beq lbl_8038F4BC +/* 8038F4B0 0038C410 38 00 00 30 */ li r0, 0x30 +/* 8038F4B4 0038C414 3B 5A 00 01 */ addi r26, r26, 1 +/* 8038F4B8 0038C418 9C 1B FF FF */ stbu r0, -1(r27) +lbl_8038F4BC: +/* 8038F4BC 0038C41C 88 18 00 00 */ lbz r0, 0(r24) +/* 8038F4C0 0038C420 28 00 00 02 */ cmplwi r0, 2 +/* 8038F4C4 0038C424 40 82 00 5C */ bne lbl_8038F520 +/* 8038F4C8 0038C428 80 18 00 08 */ lwz r0, 8(r24) +/* 8038F4CC 0038C42C 2C 19 00 00 */ cmpwi r25, 0 +/* 8038F4D0 0038C430 90 18 00 0C */ stw r0, 0xc(r24) +/* 8038F4D4 0038C434 40 82 00 10 */ bne lbl_8038F4E4 +/* 8038F4D8 0038C438 88 18 00 01 */ lbz r0, 1(r24) +/* 8038F4DC 0038C43C 28 00 00 00 */ cmplwi r0, 0 +/* 8038F4E0 0038C440 41 82 00 10 */ beq lbl_8038F4F0 +lbl_8038F4E4: +/* 8038F4E4 0038C444 80 78 00 0C */ lwz r3, 0xc(r24) +/* 8038F4E8 0038C448 38 03 FF FF */ addi r0, r3, -1 +/* 8038F4EC 0038C44C 90 18 00 0C */ stw r0, 0xc(r24) +lbl_8038F4F0: +/* 8038F4F0 0038C450 38 60 00 10 */ li r3, 0x10 +/* 8038F4F4 0038C454 38 00 00 00 */ li r0, 0 +/* 8038F4F8 0038C458 7F 83 1A 78 */ xor r3, r28, r3 +/* 8038F4FC 0038C45C 7F A0 02 78 */ xor r0, r29, r0 +/* 8038F500 0038C460 7C 60 03 79 */ or. r0, r3, r0 +/* 8038F504 0038C464 40 82 00 1C */ bne lbl_8038F520 +/* 8038F508 0038C468 88 18 00 03 */ lbz r0, 3(r24) +/* 8038F50C 0038C46C 28 00 00 00 */ cmplwi r0, 0 +/* 8038F510 0038C470 41 82 00 10 */ beq lbl_8038F520 +/* 8038F514 0038C474 80 78 00 0C */ lwz r3, 0xc(r24) +/* 8038F518 0038C478 38 03 FF FE */ addi r0, r3, -2 +/* 8038F51C 0038C47C 90 18 00 0C */ stw r0, 0xc(r24) +lbl_8038F520: +/* 8038F520 0038C480 80 78 00 0C */ lwz r3, 0xc(r24) +/* 8038F524 0038C484 7C 1B B8 50 */ subf r0, r27, r23 +/* 8038F528 0038C488 7C 03 02 14 */ add r0, r3, r0 +/* 8038F52C 0038C48C 2C 00 01 FD */ cmpwi r0, 0x1fd +/* 8038F530 0038C490 40 81 00 0C */ ble lbl_8038F53C +/* 8038F534 0038C494 38 60 00 00 */ li r3, 0 +/* 8038F538 0038C498 48 00 00 94 */ b lbl_8038F5CC +lbl_8038F53C: +/* 8038F53C 0038C49C 38 60 00 30 */ li r3, 0x30 +/* 8038F540 0038C4A0 48 00 00 0C */ b lbl_8038F54C +lbl_8038F544: +/* 8038F544 0038C4A4 9C 7B FF FF */ stbu r3, -1(r27) +/* 8038F548 0038C4A8 3B 5A 00 01 */ addi r26, r26, 1 +lbl_8038F54C: +/* 8038F54C 0038C4AC 80 18 00 0C */ lwz r0, 0xc(r24) +/* 8038F550 0038C4B0 7C 1A 00 00 */ cmpw r26, r0 +/* 8038F554 0038C4B4 41 80 FF F0 */ blt lbl_8038F544 +/* 8038F558 0038C4B8 38 60 00 10 */ li r3, 0x10 +/* 8038F55C 0038C4BC 38 00 00 00 */ li r0, 0 +/* 8038F560 0038C4C0 7F 83 1A 78 */ xor r3, r28, r3 +/* 8038F564 0038C4C4 7F A0 02 78 */ xor r0, r29, r0 +/* 8038F568 0038C4C8 7C 60 03 79 */ or. r0, r3, r0 +/* 8038F56C 0038C4CC 40 82 00 20 */ bne lbl_8038F58C +/* 8038F570 0038C4D0 88 18 00 03 */ lbz r0, 3(r24) +/* 8038F574 0038C4D4 28 00 00 00 */ cmplwi r0, 0 +/* 8038F578 0038C4D8 41 82 00 14 */ beq lbl_8038F58C +/* 8038F57C 0038C4DC 88 78 00 05 */ lbz r3, 5(r24) +/* 8038F580 0038C4E0 38 00 00 30 */ li r0, 0x30 +/* 8038F584 0038C4E4 98 7B FF FF */ stb r3, -1(r27) +/* 8038F588 0038C4E8 9C 1B FF FE */ stbu r0, -2(r27) +lbl_8038F58C: +/* 8038F58C 0038C4EC 2C 19 00 00 */ cmpwi r25, 0 +/* 8038F590 0038C4F0 41 82 00 10 */ beq lbl_8038F5A0 +/* 8038F594 0038C4F4 38 00 00 2D */ li r0, 0x2d +/* 8038F598 0038C4F8 9C 1B FF FF */ stbu r0, -1(r27) +/* 8038F59C 0038C4FC 48 00 00 2C */ b lbl_8038F5C8 +lbl_8038F5A0: +/* 8038F5A0 0038C500 88 18 00 01 */ lbz r0, 1(r24) +/* 8038F5A4 0038C504 28 00 00 01 */ cmplwi r0, 1 +/* 8038F5A8 0038C508 40 82 00 10 */ bne lbl_8038F5B8 +/* 8038F5AC 0038C50C 38 00 00 2B */ li r0, 0x2b +/* 8038F5B0 0038C510 9C 1B FF FF */ stbu r0, -1(r27) +/* 8038F5B4 0038C514 48 00 00 14 */ b lbl_8038F5C8 +lbl_8038F5B8: +/* 8038F5B8 0038C518 28 00 00 02 */ cmplwi r0, 2 +/* 8038F5BC 0038C51C 40 82 00 0C */ bne lbl_8038F5C8 +/* 8038F5C0 0038C520 38 00 00 20 */ li r0, 0x20 +/* 8038F5C4 0038C524 9C 1B FF FF */ stbu r0, -1(r27) +lbl_8038F5C8: +/* 8038F5C8 0038C528 7F 63 DB 78 */ mr r3, r27 +lbl_8038F5CC: +/* 8038F5CC 0038C52C BA C1 00 08 */ lmw r22, 8(r1) +/* 8038F5D0 0038C530 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8038F5D4 0038C534 7C 08 03 A6 */ mtlr r0 +/* 8038F5D8 0038C538 38 21 00 30 */ addi r1, r1, 0x30 +/* 8038F5DC 0038C53C 4E 80 00 20 */ blr + +.global long2str +long2str: +/* 8038F5E0 0038C540 38 C0 00 00 */ li r6, 0 +/* 8038F5E4 0038C544 2C 03 00 00 */ cmpwi r3, 0 +/* 8038F5E8 0038C548 98 C4 FF FF */ stb r6, -1(r4) +/* 8038F5EC 0038C54C 38 C4 FF FF */ addi r6, r4, -1 +/* 8038F5F0 0038C550 39 00 00 00 */ li r8, 0 +/* 8038F5F4 0038C554 38 E0 00 00 */ li r7, 0 +/* 8038F5F8 0038C558 40 82 00 30 */ bne lbl_8038F628 +/* 8038F5FC 0038C55C 81 25 00 0C */ lwz r9, 0xc(r5) +/* 8038F600 0038C560 2C 09 00 00 */ cmpwi r9, 0 +/* 8038F604 0038C564 40 82 00 24 */ bne lbl_8038F628 +/* 8038F608 0038C568 89 25 00 03 */ lbz r9, 3(r5) +/* 8038F60C 0038C56C 28 09 00 00 */ cmplwi r9, 0 +/* 8038F610 0038C570 41 82 00 10 */ beq lbl_8038F620 +/* 8038F614 0038C574 89 25 00 05 */ lbz r9, 5(r5) +/* 8038F618 0038C578 28 09 00 6F */ cmplwi r9, 0x6f +/* 8038F61C 0038C57C 41 82 00 0C */ beq lbl_8038F628 +lbl_8038F620: +/* 8038F620 0038C580 7C C3 33 78 */ mr r3, r6 +/* 8038F624 0038C584 4E 80 00 20 */ blr +lbl_8038F628: +/* 8038F628 0038C588 89 25 00 05 */ lbz r9, 5(r5) +/* 8038F62C 0038C58C 39 49 FF A8 */ addi r10, r9, -88 +/* 8038F630 0038C590 28 0A 00 20 */ cmplwi r10, 0x20 +/* 8038F634 0038C594 41 81 00 60 */ bgt lbl_8038F694 +/* 8038F638 0038C598 3D 20 80 3F */ lis r9, lbl_803F2DDC@ha +/* 8038F63C 0038C59C 55 4A 10 3A */ slwi r10, r10, 2 +/* 8038F640 0038C5A0 39 29 2D DC */ addi r9, r9, lbl_803F2DDC@l +/* 8038F644 0038C5A4 7D 29 50 2E */ lwzx r9, r9, r10 +/* 8038F648 0038C5A8 7D 29 03 A6 */ mtctr r9 +/* 8038F64C 0038C5AC 4E 80 04 20 */ bctr +/* 8038F650 0038C5B0 2C 03 00 00 */ cmpwi r3, 0 +/* 8038F654 0038C5B4 38 00 00 0A */ li r0, 0xa +/* 8038F658 0038C5B8 40 80 00 3C */ bge lbl_8038F694 +/* 8038F65C 0038C5BC 7C 63 00 D0 */ neg r3, r3 +/* 8038F660 0038C5C0 39 00 00 01 */ li r8, 1 +/* 8038F664 0038C5C4 48 00 00 30 */ b lbl_8038F694 +/* 8038F668 0038C5C8 39 20 00 00 */ li r9, 0 +/* 8038F66C 0038C5CC 38 00 00 08 */ li r0, 8 +/* 8038F670 0038C5D0 99 25 00 01 */ stb r9, 1(r5) +/* 8038F674 0038C5D4 48 00 00 20 */ b lbl_8038F694 +/* 8038F678 0038C5D8 39 20 00 00 */ li r9, 0 +/* 8038F67C 0038C5DC 38 00 00 0A */ li r0, 0xa +/* 8038F680 0038C5E0 99 25 00 01 */ stb r9, 1(r5) +/* 8038F684 0038C5E4 48 00 00 10 */ b lbl_8038F694 +/* 8038F688 0038C5E8 39 20 00 00 */ li r9, 0 +/* 8038F68C 0038C5EC 38 00 00 10 */ li r0, 0x10 +/* 8038F690 0038C5F0 99 25 00 01 */ stb r9, 1(r5) +lbl_8038F694: +/* 8038F694 0038C5F4 7D 23 03 96 */ divwu r9, r3, r0 +/* 8038F698 0038C5F8 7D 29 01 D6 */ mullw r9, r9, r0 +/* 8038F69C 0038C5FC 7D 49 18 50 */ subf r10, r9, r3 +/* 8038F6A0 0038C600 7C 63 03 96 */ divwu r3, r3, r0 +/* 8038F6A4 0038C604 2C 0A 00 0A */ cmpwi r10, 0xa +/* 8038F6A8 0038C608 40 80 00 0C */ bge lbl_8038F6B4 +/* 8038F6AC 0038C60C 39 4A 00 30 */ addi r10, r10, 0x30 +/* 8038F6B0 0038C610 48 00 00 1C */ b lbl_8038F6CC +lbl_8038F6B4: +/* 8038F6B4 0038C614 89 25 00 05 */ lbz r9, 5(r5) +/* 8038F6B8 0038C618 28 09 00 78 */ cmplwi r9, 0x78 +/* 8038F6BC 0038C61C 40 82 00 0C */ bne lbl_8038F6C8 +/* 8038F6C0 0038C620 39 4A 00 57 */ addi r10, r10, 0x57 +/* 8038F6C4 0038C624 48 00 00 08 */ b lbl_8038F6CC +lbl_8038F6C8: +/* 8038F6C8 0038C628 39 4A 00 37 */ addi r10, r10, 0x37 +lbl_8038F6CC: +/* 8038F6CC 0038C62C 28 03 00 00 */ cmplwi r3, 0 +/* 8038F6D0 0038C630 99 46 FF FF */ stb r10, -1(r6) +/* 8038F6D4 0038C634 38 C6 FF FF */ addi r6, r6, -1 +/* 8038F6D8 0038C638 38 E7 00 01 */ addi r7, r7, 1 +/* 8038F6DC 0038C63C 40 82 FF B8 */ bne lbl_8038F694 +/* 8038F6E0 0038C640 28 00 00 08 */ cmplwi r0, 8 +/* 8038F6E4 0038C644 40 82 00 28 */ bne lbl_8038F70C +/* 8038F6E8 0038C648 88 65 00 03 */ lbz r3, 3(r5) +/* 8038F6EC 0038C64C 28 03 00 00 */ cmplwi r3, 0 +/* 8038F6F0 0038C650 41 82 00 1C */ beq lbl_8038F70C +/* 8038F6F4 0038C654 88 66 00 00 */ lbz r3, 0(r6) +/* 8038F6F8 0038C658 2C 03 00 30 */ cmpwi r3, 0x30 +/* 8038F6FC 0038C65C 41 82 00 10 */ beq lbl_8038F70C +/* 8038F700 0038C660 38 60 00 30 */ li r3, 0x30 +/* 8038F704 0038C664 38 E7 00 01 */ addi r7, r7, 1 +/* 8038F708 0038C668 9C 66 FF FF */ stbu r3, -1(r6) +lbl_8038F70C: +/* 8038F70C 0038C66C 88 65 00 00 */ lbz r3, 0(r5) +/* 8038F710 0038C670 28 03 00 02 */ cmplwi r3, 2 +/* 8038F714 0038C674 40 82 00 4C */ bne lbl_8038F760 +/* 8038F718 0038C678 80 65 00 08 */ lwz r3, 8(r5) +/* 8038F71C 0038C67C 2C 08 00 00 */ cmpwi r8, 0 +/* 8038F720 0038C680 90 65 00 0C */ stw r3, 0xc(r5) +/* 8038F724 0038C684 40 82 00 10 */ bne lbl_8038F734 +/* 8038F728 0038C688 88 65 00 01 */ lbz r3, 1(r5) +/* 8038F72C 0038C68C 28 03 00 00 */ cmplwi r3, 0 +/* 8038F730 0038C690 41 82 00 10 */ beq lbl_8038F740 +lbl_8038F734: +/* 8038F734 0038C694 80 65 00 0C */ lwz r3, 0xc(r5) +/* 8038F738 0038C698 38 63 FF FF */ addi r3, r3, -1 +/* 8038F73C 0038C69C 90 65 00 0C */ stw r3, 0xc(r5) +lbl_8038F740: +/* 8038F740 0038C6A0 28 00 00 10 */ cmplwi r0, 0x10 +/* 8038F744 0038C6A4 40 82 00 1C */ bne lbl_8038F760 +/* 8038F748 0038C6A8 88 65 00 03 */ lbz r3, 3(r5) +/* 8038F74C 0038C6AC 28 03 00 00 */ cmplwi r3, 0 +/* 8038F750 0038C6B0 41 82 00 10 */ beq lbl_8038F760 +/* 8038F754 0038C6B4 80 65 00 0C */ lwz r3, 0xc(r5) +/* 8038F758 0038C6B8 38 63 FF FE */ addi r3, r3, -2 +/* 8038F75C 0038C6BC 90 65 00 0C */ stw r3, 0xc(r5) +lbl_8038F760: +/* 8038F760 0038C6C0 81 25 00 0C */ lwz r9, 0xc(r5) +/* 8038F764 0038C6C4 7C 66 20 50 */ subf r3, r6, r4 +/* 8038F768 0038C6C8 7C 69 1A 14 */ add r3, r9, r3 +/* 8038F76C 0038C6CC 2C 03 01 FD */ cmpwi r3, 0x1fd +/* 8038F770 0038C6D0 40 81 00 0C */ ble lbl_8038F77C +/* 8038F774 0038C6D4 38 60 00 00 */ li r3, 0 +/* 8038F778 0038C6D8 4E 80 00 20 */ blr +lbl_8038F77C: +/* 8038F77C 0038C6DC 38 80 00 30 */ li r4, 0x30 +/* 8038F780 0038C6E0 48 00 00 0C */ b lbl_8038F78C +lbl_8038F784: +/* 8038F784 0038C6E4 9C 86 FF FF */ stbu r4, -1(r6) +/* 8038F788 0038C6E8 38 E7 00 01 */ addi r7, r7, 1 +lbl_8038F78C: +/* 8038F78C 0038C6EC 80 65 00 0C */ lwz r3, 0xc(r5) +/* 8038F790 0038C6F0 7C 07 18 00 */ cmpw r7, r3 +/* 8038F794 0038C6F4 41 80 FF F0 */ blt lbl_8038F784 +/* 8038F798 0038C6F8 28 00 00 10 */ cmplwi r0, 0x10 +/* 8038F79C 0038C6FC 40 82 00 20 */ bne lbl_8038F7BC +/* 8038F7A0 0038C700 88 05 00 03 */ lbz r0, 3(r5) +/* 8038F7A4 0038C704 28 00 00 00 */ cmplwi r0, 0 +/* 8038F7A8 0038C708 41 82 00 14 */ beq lbl_8038F7BC +/* 8038F7AC 0038C70C 88 65 00 05 */ lbz r3, 5(r5) +/* 8038F7B0 0038C710 38 00 00 30 */ li r0, 0x30 +/* 8038F7B4 0038C714 98 66 FF FF */ stb r3, -1(r6) +/* 8038F7B8 0038C718 9C 06 FF FE */ stbu r0, -2(r6) +lbl_8038F7BC: +/* 8038F7BC 0038C71C 2C 08 00 00 */ cmpwi r8, 0 +/* 8038F7C0 0038C720 41 82 00 10 */ beq lbl_8038F7D0 +/* 8038F7C4 0038C724 38 00 00 2D */ li r0, 0x2d +/* 8038F7C8 0038C728 9C 06 FF FF */ stbu r0, -1(r6) +/* 8038F7CC 0038C72C 48 00 00 2C */ b lbl_8038F7F8 +lbl_8038F7D0: +/* 8038F7D0 0038C730 88 05 00 01 */ lbz r0, 1(r5) +/* 8038F7D4 0038C734 28 00 00 01 */ cmplwi r0, 1 +/* 8038F7D8 0038C738 40 82 00 10 */ bne lbl_8038F7E8 +/* 8038F7DC 0038C73C 38 00 00 2B */ li r0, 0x2b +/* 8038F7E0 0038C740 9C 06 FF FF */ stbu r0, -1(r6) +/* 8038F7E4 0038C744 48 00 00 14 */ b lbl_8038F7F8 +lbl_8038F7E8: +/* 8038F7E8 0038C748 28 00 00 02 */ cmplwi r0, 2 +/* 8038F7EC 0038C74C 40 82 00 0C */ bne lbl_8038F7F8 +/* 8038F7F0 0038C750 38 00 00 20 */ li r0, 0x20 +/* 8038F7F4 0038C754 9C 06 FF FF */ stbu r0, -1(r6) +lbl_8038F7F8: +/* 8038F7F8 0038C758 7C C3 33 78 */ mr r3, r6 +/* 8038F7FC 0038C75C 4E 80 00 20 */ blr + +.global parse_format +parse_format: +/* 8038F800 0038C760 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8038F804 0038C764 7C 08 02 A6 */ mflr r0 +/* 8038F808 0038C768 38 E0 00 00 */ li r7, 0 +/* 8038F80C 0038C76C 90 01 00 34 */ stw r0, 0x34(r1) +/* 8038F810 0038C770 38 00 00 01 */ li r0, 1 +/* 8038F814 0038C774 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 8038F818 0038C778 3B E3 00 01 */ addi r31, r3, 1 +/* 8038F81C 0038C77C 93 C1 00 28 */ stw r30, 0x28(r1) +/* 8038F820 0038C780 7C BE 2B 78 */ mr r30, r5 +/* 8038F824 0038C784 93 A1 00 24 */ stw r29, 0x24(r1) +/* 8038F828 0038C788 7C 9D 23 78 */ mr r29, r4 +/* 8038F82C 0038C78C 88 C3 00 01 */ lbz r6, 1(r3) +/* 8038F830 0038C790 98 E1 00 09 */ stb r7, 9(r1) +/* 8038F834 0038C794 7C C6 07 74 */ extsb r6, r6 +/* 8038F838 0038C798 2C 06 00 25 */ cmpwi r6, 0x25 +/* 8038F83C 0038C79C 98 01 00 08 */ stb r0, 8(r1) +/* 8038F840 0038C7A0 98 E1 00 0A */ stb r7, 0xa(r1) +/* 8038F844 0038C7A4 98 E1 00 0B */ stb r7, 0xb(r1) +/* 8038F848 0038C7A8 98 E1 00 0C */ stb r7, 0xc(r1) +/* 8038F84C 0038C7AC 90 E1 00 10 */ stw r7, 0x10(r1) +/* 8038F850 0038C7B0 90 E1 00 14 */ stw r7, 0x14(r1) +/* 8038F854 0038C7B4 40 82 00 28 */ bne lbl_8038F87C +/* 8038F858 0038C7B8 98 C1 00 0D */ stb r6, 0xd(r1) +/* 8038F85C 0038C7BC 38 7F 00 01 */ addi r3, r31, 1 +/* 8038F860 0038C7C0 80 81 00 08 */ lwz r4, 8(r1) +/* 8038F864 0038C7C4 80 01 00 0C */ lwz r0, 0xc(r1) +/* 8038F868 0038C7C8 90 9E 00 00 */ stw r4, 0(r30) +/* 8038F86C 0038C7CC 90 1E 00 04 */ stw r0, 4(r30) +/* 8038F870 0038C7D0 90 FE 00 08 */ stw r7, 8(r30) +/* 8038F874 0038C7D4 90 FE 00 0C */ stw r7, 0xc(r30) +/* 8038F878 0038C7D8 48 00 04 70 */ b lbl_8038FCE8 +lbl_8038F87C: +/* 8038F87C 0038C7DC 38 06 FF E0 */ addi r0, r6, -32 +/* 8038F880 0038C7E0 38 80 00 01 */ li r4, 1 +/* 8038F884 0038C7E4 28 00 00 10 */ cmplwi r0, 0x10 +/* 8038F888 0038C7E8 41 81 00 70 */ bgt lbl_8038F8F8 +/* 8038F88C 0038C7EC 3C 60 80 3F */ lis r3, lbl_803F2F40@ha +/* 8038F890 0038C7F0 54 00 10 3A */ slwi r0, r0, 2 +/* 8038F894 0038C7F4 38 63 2F 40 */ addi r3, r3, lbl_803F2F40@l +/* 8038F898 0038C7F8 7C 03 00 2E */ lwzx r0, r3, r0 +/* 8038F89C 0038C7FC 7C 09 03 A6 */ mtctr r0 +/* 8038F8A0 0038C800 4E 80 04 20 */ bctr +/* 8038F8A4 0038C804 38 00 00 00 */ li r0, 0 +/* 8038F8A8 0038C808 98 01 00 08 */ stb r0, 8(r1) +/* 8038F8AC 0038C80C 48 00 00 50 */ b lbl_8038F8FC +/* 8038F8B0 0038C810 38 00 00 01 */ li r0, 1 +/* 8038F8B4 0038C814 98 01 00 09 */ stb r0, 9(r1) +/* 8038F8B8 0038C818 48 00 00 44 */ b lbl_8038F8FC +/* 8038F8BC 0038C81C 88 01 00 09 */ lbz r0, 9(r1) +/* 8038F8C0 0038C820 28 00 00 01 */ cmplwi r0, 1 +/* 8038F8C4 0038C824 41 82 00 38 */ beq lbl_8038F8FC +/* 8038F8C8 0038C828 38 00 00 02 */ li r0, 2 +/* 8038F8CC 0038C82C 98 01 00 09 */ stb r0, 9(r1) +/* 8038F8D0 0038C830 48 00 00 2C */ b lbl_8038F8FC +/* 8038F8D4 0038C834 38 00 00 01 */ li r0, 1 +/* 8038F8D8 0038C838 98 01 00 0B */ stb r0, 0xb(r1) +/* 8038F8DC 0038C83C 48 00 00 20 */ b lbl_8038F8FC +/* 8038F8E0 0038C840 88 01 00 08 */ lbz r0, 8(r1) +/* 8038F8E4 0038C844 28 00 00 00 */ cmplwi r0, 0 +/* 8038F8E8 0038C848 41 82 00 14 */ beq lbl_8038F8FC +/* 8038F8EC 0038C84C 38 00 00 02 */ li r0, 2 +/* 8038F8F0 0038C850 98 01 00 08 */ stb r0, 8(r1) +/* 8038F8F4 0038C854 48 00 00 08 */ b lbl_8038F8FC +lbl_8038F8F8: +/* 8038F8F8 0038C858 38 80 00 00 */ li r4, 0 +lbl_8038F8FC: +/* 8038F8FC 0038C85C 2C 04 00 00 */ cmpwi r4, 0 +/* 8038F900 0038C860 41 82 00 10 */ beq lbl_8038F910 +/* 8038F904 0038C864 8C DF 00 01 */ lbzu r6, 1(r31) +/* 8038F908 0038C868 7C C6 07 74 */ extsb r6, r6 +/* 8038F90C 0038C86C 4B FF FF 70 */ b lbl_8038F87C +lbl_8038F910: +/* 8038F910 0038C870 2C 06 00 2A */ cmpwi r6, 0x2a +/* 8038F914 0038C874 40 82 00 3C */ bne lbl_8038F950 +/* 8038F918 0038C878 7F A3 EB 78 */ mr r3, r29 +/* 8038F91C 0038C87C 38 80 00 01 */ li r4, 1 +/* 8038F920 0038C880 4B FF 9C 5D */ bl __va_arg +/* 8038F924 0038C884 80 03 00 00 */ lwz r0, 0(r3) +/* 8038F928 0038C888 2C 00 00 00 */ cmpwi r0, 0 +/* 8038F92C 0038C88C 90 01 00 10 */ stw r0, 0x10(r1) +/* 8038F930 0038C890 40 80 00 14 */ bge lbl_8038F944 +/* 8038F934 0038C894 7C 00 00 D0 */ neg r0, r0 +/* 8038F938 0038C898 38 60 00 00 */ li r3, 0 +/* 8038F93C 0038C89C 98 61 00 08 */ stb r3, 8(r1) +/* 8038F940 0038C8A0 90 01 00 10 */ stw r0, 0x10(r1) +lbl_8038F944: +/* 8038F944 0038C8A4 8C DF 00 01 */ lbzu r6, 1(r31) +/* 8038F948 0038C8A8 7C C6 07 74 */ extsb r6, r6 +/* 8038F94C 0038C8AC 48 00 00 3C */ b lbl_8038F988 +lbl_8038F950: +/* 8038F950 0038C8B0 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 8038F954 0038C8B4 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 8038F958 0038C8B8 48 00 00 20 */ b lbl_8038F978 +lbl_8038F95C: +/* 8038F95C 0038C8BC 80 01 00 10 */ lwz r0, 0x10(r1) +/* 8038F960 0038C8C0 1C 00 00 0A */ mulli r0, r0, 0xa +/* 8038F964 0038C8C4 7C 86 02 14 */ add r4, r6, r0 +/* 8038F968 0038C8C8 8C DF 00 01 */ lbzu r6, 1(r31) +/* 8038F96C 0038C8CC 38 04 FF D0 */ addi r0, r4, -48 +/* 8038F970 0038C8D0 90 01 00 10 */ stw r0, 0x10(r1) +/* 8038F974 0038C8D4 7C C6 07 74 */ extsb r6, r6 +lbl_8038F978: +/* 8038F978 0038C8D8 54 C0 06 3E */ clrlwi r0, r6, 0x18 +/* 8038F97C 0038C8DC 7C 03 00 AE */ lbzx r0, r3, r0 +/* 8038F980 0038C8E0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 8038F984 0038C8E4 40 82 FF D8 */ bne lbl_8038F95C +lbl_8038F988: +/* 8038F988 0038C8E8 80 A1 00 10 */ lwz r5, 0x10(r1) +/* 8038F98C 0038C8EC 2C 05 01 FD */ cmpwi r5, 0x1fd +/* 8038F990 0038C8F0 40 81 00 30 */ ble lbl_8038F9C0 +/* 8038F994 0038C8F4 38 00 00 FF */ li r0, 0xff +/* 8038F998 0038C8F8 80 81 00 08 */ lwz r4, 8(r1) +/* 8038F99C 0038C8FC 98 01 00 0D */ stb r0, 0xd(r1) +/* 8038F9A0 0038C900 38 7F 00 01 */ addi r3, r31, 1 +/* 8038F9A4 0038C904 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8038F9A8 0038C908 90 9E 00 00 */ stw r4, 0(r30) +/* 8038F9AC 0038C90C 80 81 00 0C */ lwz r4, 0xc(r1) +/* 8038F9B0 0038C910 90 9E 00 04 */ stw r4, 4(r30) +/* 8038F9B4 0038C914 90 BE 00 08 */ stw r5, 8(r30) +/* 8038F9B8 0038C918 90 1E 00 0C */ stw r0, 0xc(r30) +/* 8038F9BC 0038C91C 48 00 03 2C */ b lbl_8038FCE8 +lbl_8038F9C0: +/* 8038F9C0 0038C920 2C 06 00 2E */ cmpwi r6, 0x2e +/* 8038F9C4 0038C924 40 82 00 84 */ bne lbl_8038FA48 +/* 8038F9C8 0038C928 8C DF 00 01 */ lbzu r6, 1(r31) +/* 8038F9CC 0038C92C 38 00 00 01 */ li r0, 1 +/* 8038F9D0 0038C930 98 01 00 0A */ stb r0, 0xa(r1) +/* 8038F9D4 0038C934 7C C6 07 74 */ extsb r6, r6 +/* 8038F9D8 0038C938 2C 06 00 2A */ cmpwi r6, 0x2a +/* 8038F9DC 0038C93C 40 82 00 34 */ bne lbl_8038FA10 +/* 8038F9E0 0038C940 7F A3 EB 78 */ mr r3, r29 +/* 8038F9E4 0038C944 38 80 00 01 */ li r4, 1 +/* 8038F9E8 0038C948 4B FF 9B 95 */ bl __va_arg +/* 8038F9EC 0038C94C 80 03 00 00 */ lwz r0, 0(r3) +/* 8038F9F0 0038C950 2C 00 00 00 */ cmpwi r0, 0 +/* 8038F9F4 0038C954 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038F9F8 0038C958 40 80 00 0C */ bge lbl_8038FA04 +/* 8038F9FC 0038C95C 38 00 00 00 */ li r0, 0 +/* 8038FA00 0038C960 98 01 00 0A */ stb r0, 0xa(r1) +lbl_8038FA04: +/* 8038FA04 0038C964 8C DF 00 01 */ lbzu r6, 1(r31) +/* 8038FA08 0038C968 7C C6 07 74 */ extsb r6, r6 +/* 8038FA0C 0038C96C 48 00 00 3C */ b lbl_8038FA48 +lbl_8038FA10: +/* 8038FA10 0038C970 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 8038FA14 0038C974 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 8038FA18 0038C978 48 00 00 20 */ b lbl_8038FA38 +lbl_8038FA1C: +/* 8038FA1C 0038C97C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8038FA20 0038C980 1C 00 00 0A */ mulli r0, r0, 0xa +/* 8038FA24 0038C984 7C 86 02 14 */ add r4, r6, r0 +/* 8038FA28 0038C988 8C DF 00 01 */ lbzu r6, 1(r31) +/* 8038FA2C 0038C98C 38 04 FF D0 */ addi r0, r4, -48 +/* 8038FA30 0038C990 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038FA34 0038C994 7C C6 07 74 */ extsb r6, r6 +lbl_8038FA38: +/* 8038FA38 0038C998 54 C0 06 3E */ clrlwi r0, r6, 0x18 +/* 8038FA3C 0038C99C 7C 03 00 AE */ lbzx r0, r3, r0 +/* 8038FA40 0038C9A0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 8038FA44 0038C9A4 40 82 FF D8 */ bne lbl_8038FA1C +lbl_8038FA48: +/* 8038FA48 0038C9A8 2C 06 00 68 */ cmpwi r6, 0x68 +/* 8038FA4C 0038C9AC 38 80 00 01 */ li r4, 1 +/* 8038FA50 0038C9B0 41 82 00 20 */ beq lbl_8038FA70 +/* 8038FA54 0038C9B4 40 80 00 10 */ bge lbl_8038FA64 +/* 8038FA58 0038C9B8 2C 06 00 4C */ cmpwi r6, 0x4c +/* 8038FA5C 0038C9BC 41 82 00 68 */ beq lbl_8038FAC4 +/* 8038FA60 0038C9C0 48 00 00 70 */ b lbl_8038FAD0 +lbl_8038FA64: +/* 8038FA64 0038C9C4 2C 06 00 6C */ cmpwi r6, 0x6c +/* 8038FA68 0038C9C8 41 82 00 30 */ beq lbl_8038FA98 +/* 8038FA6C 0038C9CC 48 00 00 64 */ b lbl_8038FAD0 +lbl_8038FA70: +/* 8038FA70 0038C9D0 88 1F 00 01 */ lbz r0, 1(r31) +/* 8038FA74 0038C9D4 38 60 00 02 */ li r3, 2 +/* 8038FA78 0038C9D8 98 61 00 0C */ stb r3, 0xc(r1) +/* 8038FA7C 0038C9DC 7C 00 07 74 */ extsb r0, r0 +/* 8038FA80 0038C9E0 2C 00 00 68 */ cmpwi r0, 0x68 +/* 8038FA84 0038C9E4 40 82 00 50 */ bne lbl_8038FAD4 +/* 8038FA88 0038C9E8 98 81 00 0C */ stb r4, 0xc(r1) +/* 8038FA8C 0038C9EC 7C 06 03 78 */ mr r6, r0 +/* 8038FA90 0038C9F0 3B FF 00 01 */ addi r31, r31, 1 +/* 8038FA94 0038C9F4 48 00 00 40 */ b lbl_8038FAD4 +lbl_8038FA98: +/* 8038FA98 0038C9F8 88 1F 00 01 */ lbz r0, 1(r31) +/* 8038FA9C 0038C9FC 38 60 00 03 */ li r3, 3 +/* 8038FAA0 0038CA00 98 61 00 0C */ stb r3, 0xc(r1) +/* 8038FAA4 0038CA04 7C 03 07 74 */ extsb r3, r0 +/* 8038FAA8 0038CA08 2C 03 00 6C */ cmpwi r3, 0x6c +/* 8038FAAC 0038CA0C 40 82 00 28 */ bne lbl_8038FAD4 +/* 8038FAB0 0038CA10 38 00 00 04 */ li r0, 4 +/* 8038FAB4 0038CA14 7C 66 1B 78 */ mr r6, r3 +/* 8038FAB8 0038CA18 98 01 00 0C */ stb r0, 0xc(r1) +/* 8038FABC 0038CA1C 3B FF 00 01 */ addi r31, r31, 1 +/* 8038FAC0 0038CA20 48 00 00 14 */ b lbl_8038FAD4 +lbl_8038FAC4: +/* 8038FAC4 0038CA24 38 00 00 05 */ li r0, 5 +/* 8038FAC8 0038CA28 98 01 00 0C */ stb r0, 0xc(r1) +/* 8038FACC 0038CA2C 48 00 00 08 */ b lbl_8038FAD4 +lbl_8038FAD0: +/* 8038FAD0 0038CA30 38 80 00 00 */ li r4, 0 +lbl_8038FAD4: +/* 8038FAD4 0038CA34 2C 04 00 00 */ cmpwi r4, 0 +/* 8038FAD8 0038CA38 41 82 00 0C */ beq lbl_8038FAE4 +/* 8038FADC 0038CA3C 8C DF 00 01 */ lbzu r6, 1(r31) +/* 8038FAE0 0038CA40 7C C6 07 74 */ extsb r6, r6 +lbl_8038FAE4: +/* 8038FAE4 0038CA44 38 06 FF BF */ addi r0, r6, -65 +/* 8038FAE8 0038CA48 98 C1 00 0D */ stb r6, 0xd(r1) +/* 8038FAEC 0038CA4C 28 00 00 37 */ cmplwi r0, 0x37 +/* 8038FAF0 0038CA50 41 81 01 CC */ bgt lbl_8038FCBC +/* 8038FAF4 0038CA54 3C 60 80 3F */ lis r3, lbl_803F2E60@ha +/* 8038FAF8 0038CA58 54 00 10 3A */ slwi r0, r0, 2 +/* 8038FAFC 0038CA5C 38 63 2E 60 */ addi r3, r3, lbl_803F2E60@l +/* 8038FB00 0038CA60 7C 03 00 2E */ lwzx r0, r3, r0 +/* 8038FB04 0038CA64 7C 09 03 A6 */ mtctr r0 +/* 8038FB08 0038CA68 4E 80 04 20 */ bctr +/* 8038FB0C 0038CA6C 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038FB10 0038CA70 28 00 00 05 */ cmplwi r0, 5 +/* 8038FB14 0038CA74 40 82 00 10 */ bne lbl_8038FB24 +/* 8038FB18 0038CA78 38 00 00 FF */ li r0, 0xff +/* 8038FB1C 0038CA7C 98 01 00 0D */ stb r0, 0xd(r1) +/* 8038FB20 0038CA80 48 00 01 A4 */ b lbl_8038FCC4 +lbl_8038FB24: +/* 8038FB24 0038CA84 88 01 00 0A */ lbz r0, 0xa(r1) +/* 8038FB28 0038CA88 28 00 00 00 */ cmplwi r0, 0 +/* 8038FB2C 0038CA8C 40 82 00 10 */ bne lbl_8038FB3C +/* 8038FB30 0038CA90 38 00 00 01 */ li r0, 1 +/* 8038FB34 0038CA94 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038FB38 0038CA98 48 00 01 8C */ b lbl_8038FCC4 +lbl_8038FB3C: +/* 8038FB3C 0038CA9C 88 01 00 08 */ lbz r0, 8(r1) +/* 8038FB40 0038CAA0 28 00 00 02 */ cmplwi r0, 2 +/* 8038FB44 0038CAA4 40 82 01 80 */ bne lbl_8038FCC4 +/* 8038FB48 0038CAA8 38 00 00 01 */ li r0, 1 +/* 8038FB4C 0038CAAC 98 01 00 08 */ stb r0, 8(r1) +/* 8038FB50 0038CAB0 48 00 01 74 */ b lbl_8038FCC4 +/* 8038FB54 0038CAB4 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038FB58 0038CAB8 28 00 00 02 */ cmplwi r0, 2 +/* 8038FB5C 0038CABC 41 82 00 0C */ beq lbl_8038FB68 +/* 8038FB60 0038CAC0 28 00 00 04 */ cmplwi r0, 4 +/* 8038FB64 0038CAC4 40 82 00 10 */ bne lbl_8038FB74 +lbl_8038FB68: +/* 8038FB68 0038CAC8 38 00 00 FF */ li r0, 0xff +/* 8038FB6C 0038CACC 98 01 00 0D */ stb r0, 0xd(r1) +/* 8038FB70 0038CAD0 48 00 01 54 */ b lbl_8038FCC4 +lbl_8038FB74: +/* 8038FB74 0038CAD4 88 01 00 0A */ lbz r0, 0xa(r1) +/* 8038FB78 0038CAD8 28 00 00 00 */ cmplwi r0, 0 +/* 8038FB7C 0038CADC 40 82 01 48 */ bne lbl_8038FCC4 +/* 8038FB80 0038CAE0 38 00 00 06 */ li r0, 6 +/* 8038FB84 0038CAE4 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038FB88 0038CAE8 48 00 01 3C */ b lbl_8038FCC4 +/* 8038FB8C 0038CAEC 88 01 00 0A */ lbz r0, 0xa(r1) +/* 8038FB90 0038CAF0 28 00 00 00 */ cmplwi r0, 0 +/* 8038FB94 0038CAF4 40 82 00 0C */ bne lbl_8038FBA0 +/* 8038FB98 0038CAF8 38 00 00 0D */ li r0, 0xd +/* 8038FB9C 0038CAFC 90 01 00 14 */ stw r0, 0x14(r1) +lbl_8038FBA0: +/* 8038FBA0 0038CB00 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038FBA4 0038CB04 28 00 00 02 */ cmplwi r0, 2 +/* 8038FBA8 0038CB08 41 82 00 14 */ beq lbl_8038FBBC +/* 8038FBAC 0038CB0C 28 00 00 04 */ cmplwi r0, 4 +/* 8038FBB0 0038CB10 41 82 00 0C */ beq lbl_8038FBBC +/* 8038FBB4 0038CB14 28 00 00 01 */ cmplwi r0, 1 +/* 8038FBB8 0038CB18 40 82 01 0C */ bne lbl_8038FCC4 +lbl_8038FBBC: +/* 8038FBBC 0038CB1C 38 00 00 FF */ li r0, 0xff +/* 8038FBC0 0038CB20 98 01 00 0D */ stb r0, 0xd(r1) +/* 8038FBC4 0038CB24 48 00 01 00 */ b lbl_8038FCC4 +/* 8038FBC8 0038CB28 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8038FBCC 0038CB2C 2C 00 00 00 */ cmpwi r0, 0 +/* 8038FBD0 0038CB30 40 82 00 0C */ bne lbl_8038FBDC +/* 8038FBD4 0038CB34 38 00 00 01 */ li r0, 1 +/* 8038FBD8 0038CB38 90 01 00 14 */ stw r0, 0x14(r1) +lbl_8038FBDC: +/* 8038FBDC 0038CB3C 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038FBE0 0038CB40 28 00 00 02 */ cmplwi r0, 2 +/* 8038FBE4 0038CB44 41 82 00 14 */ beq lbl_8038FBF8 +/* 8038FBE8 0038CB48 28 00 00 04 */ cmplwi r0, 4 +/* 8038FBEC 0038CB4C 41 82 00 0C */ beq lbl_8038FBF8 +/* 8038FBF0 0038CB50 28 00 00 01 */ cmplwi r0, 1 +/* 8038FBF4 0038CB54 40 82 00 10 */ bne lbl_8038FC04 +lbl_8038FBF8: +/* 8038FBF8 0038CB58 38 00 00 FF */ li r0, 0xff +/* 8038FBFC 0038CB5C 98 01 00 0D */ stb r0, 0xd(r1) +/* 8038FC00 0038CB60 48 00 00 C4 */ b lbl_8038FCC4 +lbl_8038FC04: +/* 8038FC04 0038CB64 88 01 00 0A */ lbz r0, 0xa(r1) +/* 8038FC08 0038CB68 28 00 00 00 */ cmplwi r0, 0 +/* 8038FC0C 0038CB6C 40 82 00 B8 */ bne lbl_8038FCC4 +/* 8038FC10 0038CB70 38 00 00 06 */ li r0, 6 +/* 8038FC14 0038CB74 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038FC18 0038CB78 48 00 00 AC */ b lbl_8038FCC4 +/* 8038FC1C 0038CB7C 38 A0 00 78 */ li r5, 0x78 +/* 8038FC20 0038CB80 38 80 00 01 */ li r4, 1 +/* 8038FC24 0038CB84 38 60 00 03 */ li r3, 3 +/* 8038FC28 0038CB88 38 00 00 08 */ li r0, 8 +/* 8038FC2C 0038CB8C 98 A1 00 0D */ stb r5, 0xd(r1) +/* 8038FC30 0038CB90 98 81 00 0B */ stb r4, 0xb(r1) +/* 8038FC34 0038CB94 98 61 00 0C */ stb r3, 0xc(r1) +/* 8038FC38 0038CB98 90 01 00 14 */ stw r0, 0x14(r1) +/* 8038FC3C 0038CB9C 48 00 00 88 */ b lbl_8038FCC4 +/* 8038FC40 0038CBA0 88 61 00 0C */ lbz r3, 0xc(r1) +/* 8038FC44 0038CBA4 28 03 00 03 */ cmplwi r3, 3 +/* 8038FC48 0038CBA8 40 82 00 10 */ bne lbl_8038FC58 +/* 8038FC4C 0038CBAC 38 00 00 06 */ li r0, 6 +/* 8038FC50 0038CBB0 98 01 00 0C */ stb r0, 0xc(r1) +/* 8038FC54 0038CBB4 48 00 00 70 */ b lbl_8038FCC4 +lbl_8038FC58: +/* 8038FC58 0038CBB8 88 01 00 0A */ lbz r0, 0xa(r1) +/* 8038FC5C 0038CBBC 28 00 00 00 */ cmplwi r0, 0 +/* 8038FC60 0038CBC0 40 82 00 0C */ bne lbl_8038FC6C +/* 8038FC64 0038CBC4 28 03 00 00 */ cmplwi r3, 0 +/* 8038FC68 0038CBC8 41 82 00 5C */ beq lbl_8038FCC4 +lbl_8038FC6C: +/* 8038FC6C 0038CBCC 38 00 00 FF */ li r0, 0xff +/* 8038FC70 0038CBD0 98 01 00 0D */ stb r0, 0xd(r1) +/* 8038FC74 0038CBD4 48 00 00 50 */ b lbl_8038FCC4 +/* 8038FC78 0038CBD8 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038FC7C 0038CBDC 28 00 00 03 */ cmplwi r0, 3 +/* 8038FC80 0038CBE0 40 82 00 10 */ bne lbl_8038FC90 +/* 8038FC84 0038CBE4 38 00 00 06 */ li r0, 6 +/* 8038FC88 0038CBE8 98 01 00 0C */ stb r0, 0xc(r1) +/* 8038FC8C 0038CBEC 48 00 00 38 */ b lbl_8038FCC4 +lbl_8038FC90: +/* 8038FC90 0038CBF0 28 00 00 00 */ cmplwi r0, 0 +/* 8038FC94 0038CBF4 41 82 00 30 */ beq lbl_8038FCC4 +/* 8038FC98 0038CBF8 38 00 00 FF */ li r0, 0xff +/* 8038FC9C 0038CBFC 98 01 00 0D */ stb r0, 0xd(r1) +/* 8038FCA0 0038CC00 48 00 00 24 */ b lbl_8038FCC4 +/* 8038FCA4 0038CC04 88 01 00 0C */ lbz r0, 0xc(r1) +/* 8038FCA8 0038CC08 28 00 00 05 */ cmplwi r0, 5 +/* 8038FCAC 0038CC0C 40 82 00 18 */ bne lbl_8038FCC4 +/* 8038FCB0 0038CC10 38 00 00 FF */ li r0, 0xff +/* 8038FCB4 0038CC14 98 01 00 0D */ stb r0, 0xd(r1) +/* 8038FCB8 0038CC18 48 00 00 0C */ b lbl_8038FCC4 +lbl_8038FCBC: +/* 8038FCBC 0038CC1C 38 00 00 FF */ li r0, 0xff +/* 8038FCC0 0038CC20 98 01 00 0D */ stb r0, 0xd(r1) +lbl_8038FCC4: +/* 8038FCC4 0038CC24 80 81 00 08 */ lwz r4, 8(r1) +/* 8038FCC8 0038CC28 38 7F 00 01 */ addi r3, r31, 1 +/* 8038FCCC 0038CC2C 80 01 00 0C */ lwz r0, 0xc(r1) +/* 8038FCD0 0038CC30 90 9E 00 00 */ stw r4, 0(r30) +/* 8038FCD4 0038CC34 80 81 00 10 */ lwz r4, 0x10(r1) +/* 8038FCD8 0038CC38 90 1E 00 04 */ stw r0, 4(r30) +/* 8038FCDC 0038CC3C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8038FCE0 0038CC40 90 9E 00 08 */ stw r4, 8(r30) +/* 8038FCE4 0038CC44 90 1E 00 0C */ stw r0, 0xc(r30) +lbl_8038FCE8: +/* 8038FCE8 0038CC48 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8038FCEC 0038CC4C 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 8038FCF0 0038CC50 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 8038FCF4 0038CC54 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 8038FCF8 0038CC58 7C 08 03 A6 */ mtlr r0 +/* 8038FCFC 0038CC5C 38 21 00 30 */ addi r1, r1, 0x30 +/* 8038FD00 0038CC60 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/qsort.s b/asm/Runtime/PPCEABI/H/qsort.s new file mode 100644 index 00000000..51e02968 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/qsort.s @@ -0,0 +1,109 @@ +.include "macros.inc" + +.section .text, "ax" + +.global qsort +qsort: +/* 8038FD04 0038CC64 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 8038FD08 0038CC68 7C 08 02 A6 */ mflr r0 +/* 8038FD0C 0038CC6C 28 04 00 02 */ cmplwi r4, 2 +/* 8038FD10 0038CC70 90 01 00 44 */ stw r0, 0x44(r1) +/* 8038FD14 0038CC74 BE A1 00 14 */ stmw r21, 0x14(r1) +/* 8038FD18 0038CC78 7C 7D 1B 78 */ mr r29, r3 +/* 8038FD1C 0038CC7C 7C BE 2B 78 */ mr r30, r5 +/* 8038FD20 0038CC80 7C DF 33 78 */ mr r31, r6 +/* 8038FD24 0038CC84 41 80 01 3C */ blt lbl_8038FE60 +/* 8038FD28 0038CC88 54 83 F8 7E */ srwi r3, r4, 1 +/* 8038FD2C 0038CC8C 38 04 FF FF */ addi r0, r4, -1 +/* 8038FD30 0038CC90 3B 83 00 01 */ addi r28, r3, 1 +/* 8038FD34 0038CC94 7C 9B 23 78 */ mr r27, r4 +/* 8038FD38 0038CC98 38 7C FF FF */ addi r3, r28, -1 +/* 8038FD3C 0038CC9C 7C 7E 19 D6 */ mullw r3, r30, r3 +/* 8038FD40 0038CCA0 7C 1E 01 D6 */ mullw r0, r30, r0 +/* 8038FD44 0038CCA4 7F 3D 1A 14 */ add r25, r29, r3 +/* 8038FD48 0038CCA8 7F 1D 02 14 */ add r24, r29, r0 +lbl_8038FD4C: +/* 8038FD4C 0038CCAC 28 1C 00 01 */ cmplwi r28, 1 +/* 8038FD50 0038CCB0 40 81 00 10 */ ble lbl_8038FD60 +/* 8038FD54 0038CCB4 7F 3E C8 50 */ subf r25, r30, r25 +/* 8038FD58 0038CCB8 3B 9C FF FF */ addi r28, r28, -1 +/* 8038FD5C 0038CCBC 48 00 00 48 */ b lbl_8038FDA4 +lbl_8038FD60: +/* 8038FD60 0038CCC0 38 78 FF FF */ addi r3, r24, -1 +/* 8038FD64 0038CCC4 38 99 FF FF */ addi r4, r25, -1 +/* 8038FD68 0038CCC8 38 BE 00 01 */ addi r5, r30, 1 +/* 8038FD6C 0038CCCC 48 00 00 20 */ b lbl_8038FD8C +lbl_8038FD70: +/* 8038FD70 0038CCD0 88 C4 00 01 */ lbz r6, 1(r4) +/* 8038FD74 0038CCD4 88 03 00 01 */ lbz r0, 1(r3) +/* 8038FD78 0038CCD8 7C C6 07 74 */ extsb r6, r6 +/* 8038FD7C 0038CCDC 98 04 00 01 */ stb r0, 1(r4) +/* 8038FD80 0038CCE0 38 84 00 01 */ addi r4, r4, 1 +/* 8038FD84 0038CCE4 98 C3 00 01 */ stb r6, 1(r3) +/* 8038FD88 0038CCE8 38 63 00 01 */ addi r3, r3, 1 +lbl_8038FD8C: +/* 8038FD8C 0038CCEC 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038FD90 0038CCF0 40 82 FF E0 */ bne lbl_8038FD70 +/* 8038FD94 0038CCF4 3B 7B FF FF */ addi r27, r27, -1 +/* 8038FD98 0038CCF8 28 1B 00 01 */ cmplwi r27, 1 +/* 8038FD9C 0038CCFC 41 82 00 C4 */ beq lbl_8038FE60 +/* 8038FDA0 0038CD00 7F 1E C0 50 */ subf r24, r30, r24 +lbl_8038FDA4: +/* 8038FDA4 0038CD04 38 1C FF FF */ addi r0, r28, -1 +/* 8038FDA8 0038CD08 7F 9A E3 78 */ mr r26, r28 +/* 8038FDAC 0038CD0C 7C 1E 01 D6 */ mullw r0, r30, r0 +/* 8038FDB0 0038CD10 7E DD 02 14 */ add r22, r29, r0 +/* 8038FDB4 0038CD14 48 00 00 9C */ b lbl_8038FE50 +lbl_8038FDB8: +/* 8038FDB8 0038CD18 38 00 00 02 */ li r0, 2 +/* 8038FDBC 0038CD1C 7E D7 B3 78 */ mr r23, r22 +/* 8038FDC0 0038CD20 7F 5A 01 D6 */ mullw r26, r26, r0 +/* 8038FDC4 0038CD24 38 1A FF FF */ addi r0, r26, -1 +/* 8038FDC8 0038CD28 7C 1E 01 D6 */ mullw r0, r30, r0 +/* 8038FDCC 0038CD2C 7C 1A D8 40 */ cmplw r26, r27 +/* 8038FDD0 0038CD30 7E DD 02 14 */ add r22, r29, r0 +/* 8038FDD4 0038CD34 40 80 00 2C */ bge lbl_8038FE00 +/* 8038FDD8 0038CD38 7E B6 F2 14 */ add r21, r22, r30 +/* 8038FDDC 0038CD3C 7F EC FB 78 */ mr r12, r31 +/* 8038FDE0 0038CD40 7E C3 B3 78 */ mr r3, r22 +/* 8038FDE4 0038CD44 7E A4 AB 78 */ mr r4, r21 +/* 8038FDE8 0038CD48 7D 89 03 A6 */ mtctr r12 +/* 8038FDEC 0038CD4C 4E 80 04 21 */ bctrl +/* 8038FDF0 0038CD50 2C 03 00 00 */ cmpwi r3, 0 +/* 8038FDF4 0038CD54 40 80 00 0C */ bge lbl_8038FE00 +/* 8038FDF8 0038CD58 7E B6 AB 78 */ mr r22, r21 +/* 8038FDFC 0038CD5C 3B 5A 00 01 */ addi r26, r26, 1 +lbl_8038FE00: +/* 8038FE00 0038CD60 7F EC FB 78 */ mr r12, r31 +/* 8038FE04 0038CD64 7E E3 BB 78 */ mr r3, r23 +/* 8038FE08 0038CD68 7E C4 B3 78 */ mr r4, r22 +/* 8038FE0C 0038CD6C 7D 89 03 A6 */ mtctr r12 +/* 8038FE10 0038CD70 4E 80 04 21 */ bctrl +/* 8038FE14 0038CD74 2C 03 00 00 */ cmpwi r3, 0 +/* 8038FE18 0038CD78 40 80 FF 34 */ bge lbl_8038FD4C +/* 8038FE1C 0038CD7C 38 76 FF FF */ addi r3, r22, -1 +/* 8038FE20 0038CD80 38 97 FF FF */ addi r4, r23, -1 +/* 8038FE24 0038CD84 38 BE 00 01 */ addi r5, r30, 1 +/* 8038FE28 0038CD88 48 00 00 20 */ b lbl_8038FE48 +lbl_8038FE2C: +/* 8038FE2C 0038CD8C 88 C4 00 01 */ lbz r6, 1(r4) +/* 8038FE30 0038CD90 88 03 00 01 */ lbz r0, 1(r3) +/* 8038FE34 0038CD94 7C C6 07 74 */ extsb r6, r6 +/* 8038FE38 0038CD98 98 04 00 01 */ stb r0, 1(r4) +/* 8038FE3C 0038CD9C 38 84 00 01 */ addi r4, r4, 1 +/* 8038FE40 0038CDA0 98 C3 00 01 */ stb r6, 1(r3) +/* 8038FE44 0038CDA4 38 63 00 01 */ addi r3, r3, 1 +lbl_8038FE48: +/* 8038FE48 0038CDA8 34 A5 FF FF */ addic. r5, r5, -1 +/* 8038FE4C 0038CDAC 40 82 FF E0 */ bne lbl_8038FE2C +lbl_8038FE50: +/* 8038FE50 0038CDB0 57 40 08 3C */ slwi r0, r26, 1 +/* 8038FE54 0038CDB4 7C 00 D8 40 */ cmplw r0, r27 +/* 8038FE58 0038CDB8 40 81 FF 60 */ ble lbl_8038FDB8 +/* 8038FE5C 0038CDBC 4B FF FE F0 */ b lbl_8038FD4C +lbl_8038FE60: +/* 8038FE60 0038CDC0 BA A1 00 14 */ lmw r21, 0x14(r1) +/* 8038FE64 0038CDC4 80 01 00 44 */ lwz r0, 0x44(r1) +/* 8038FE68 0038CDC8 7C 08 03 A6 */ mtlr r0 +/* 8038FE6C 0038CDCC 38 21 00 40 */ addi r1, r1, 0x40 +/* 8038FE70 0038CDD0 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/rand.s b/asm/Runtime/PPCEABI/H/rand.s new file mode 100644 index 00000000..c80a0c3c --- /dev/null +++ b/asm/Runtime/PPCEABI/H/rand.s @@ -0,0 +1,19 @@ +.include "macros.inc" + +.section .text, "ax" + +.global srand +srand: +/* 8038FE74 0038CDD4 90 6D 9F D8 */ stw r3, lbl_805A8B98@sda21(r13) +/* 8038FE78 0038CDD8 4E 80 00 20 */ blr + +.global rand +rand: +/* 8038FE7C 0038CDDC 3C 60 41 C6 */ lis r3, 0x41C64E6D@ha +/* 8038FE80 0038CDE0 80 8D 9F D8 */ lwz r4, lbl_805A8B98@sda21(r13) +/* 8038FE84 0038CDE4 38 03 4E 6D */ addi r0, r3, 0x41C64E6D@l +/* 8038FE88 0038CDE8 7C 64 01 D6 */ mullw r3, r4, r0 +/* 8038FE8C 0038CDEC 38 03 30 39 */ addi r0, r3, 0x3039 +/* 8038FE90 0038CDF0 90 0D 9F D8 */ stw r0, lbl_805A8B98@sda21(r13) +/* 8038FE94 0038CDF4 54 03 84 7E */ rlwinm r3, r0, 0x10, 0x11, 0x1f +/* 8038FE98 0038CDF8 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_acos.s b/asm/Runtime/PPCEABI/H/s_acos.s new file mode 100644 index 00000000..9091b401 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_acos.s @@ -0,0 +1,14 @@ +.include "macros.inc" + +.section .text, "ax" + +.global acos +acos: +/* 80394C2C 00391B8C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394C30 00391B90 7C 08 02 A6 */ mflr r0 +/* 80394C34 00391B94 90 01 00 14 */ stw r0, 0x14(r1) +/* 80394C38 00391B98 4B FF C7 91 */ bl __ieee754_acos +/* 80394C3C 00391B9C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394C40 00391BA0 7C 08 03 A6 */ mtlr r0 +/* 80394C44 00391BA4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394C48 00391BA8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_asin.s b/asm/Runtime/PPCEABI/H/s_asin.s new file mode 100644 index 00000000..0792f28e --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_asin.s @@ -0,0 +1,14 @@ +.include "macros.inc" + +.section .text, "ax" + +.global asin +asin: +/* 80394C4C 00391BAC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394C50 00391BB0 7C 08 02 A6 */ mflr r0 +/* 80394C54 00391BB4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80394C58 00391BB8 4B FF CA 81 */ bl __ieee754_asin +/* 80394C5C 00391BBC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394C60 00391BC0 7C 08 03 A6 */ mtlr r0 +/* 80394C64 00391BC4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394C68 00391BC8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_atan.s b/asm/Runtime/PPCEABI/H/s_atan.s new file mode 100644 index 00000000..59ee4aa3 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_atan.s @@ -0,0 +1,146 @@ +.include "macros.inc" + +.section .text, "ax" + +.global atan +atan: +/* 803941C8 00391128 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803941CC 0039112C 3C 60 80 3E */ lis r3, lbl_803D89D0@ha +/* 803941D0 00391130 3C 00 44 10 */ lis r0, 0x4410 +/* 803941D4 00391134 D8 21 00 08 */ stfd f1, 8(r1) +/* 803941D8 00391138 38 83 89 D0 */ addi r4, r3, lbl_803D89D0@l +/* 803941DC 0039113C 80 C1 00 08 */ lwz r6, 8(r1) +/* 803941E0 00391140 54 C5 00 7E */ clrlwi r5, r6, 1 +/* 803941E4 00391144 7C 05 00 00 */ cmpw r5, r0 +/* 803941E8 00391148 41 80 00 60 */ blt lbl_80394248 +/* 803941EC 0039114C 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 803941F0 00391150 7C 05 00 00 */ cmpw r5, r0 +/* 803941F4 00391154 41 81 00 1C */ bgt lbl_80394210 +/* 803941F8 00391158 3C 05 80 10 */ addis r0, r5, 0x8010 +/* 803941FC 0039115C 28 00 00 00 */ cmplwi r0, 0 +/* 80394200 00391160 40 82 00 1C */ bne lbl_8039421C +/* 80394204 00391164 80 01 00 0C */ lwz r0, 0xc(r1) +/* 80394208 00391168 2C 00 00 00 */ cmpwi r0, 0 +/* 8039420C 0039116C 41 82 00 10 */ beq lbl_8039421C +lbl_80394210: +/* 80394210 00391170 C8 01 00 08 */ lfd f0, 8(r1) +/* 80394214 00391174 FC 20 00 2A */ fadd f1, f0, f0 +/* 80394218 00391178 48 00 01 A8 */ b lbl_803943C0 +lbl_8039421C: +/* 8039421C 0039117C 2C 06 00 00 */ cmpwi r6, 0 +/* 80394220 00391180 40 81 00 14 */ ble lbl_80394234 +/* 80394224 00391184 C8 24 00 18 */ lfd f1, 0x18(r4) +/* 80394228 00391188 C8 04 00 38 */ lfd f0, 0x38(r4) +/* 8039422C 0039118C FC 21 00 2A */ fadd f1, f1, f0 +/* 80394230 00391190 48 00 01 90 */ b lbl_803943C0 +lbl_80394234: +/* 80394234 00391194 C8 24 00 18 */ lfd f1, 0x18(r4) +/* 80394238 00391198 C8 04 00 38 */ lfd f0, 0x38(r4) +/* 8039423C 0039119C FC 20 08 50 */ fneg f1, f1 +/* 80394240 003911A0 FC 21 00 28 */ fsub f1, f1, f0 +/* 80394244 003911A4 48 00 01 7C */ b lbl_803943C0 +lbl_80394248: +/* 80394248 003911A8 3C 00 3F DC */ lis r0, 0x3fdc +/* 8039424C 003911AC 7C 05 00 00 */ cmpw r5, r0 +/* 80394250 003911B0 40 80 00 30 */ bge lbl_80394280 +/* 80394254 003911B4 3C 00 3E 20 */ lis r0, 0x3e20 +/* 80394258 003911B8 7C 05 00 00 */ cmpw r5, r0 +/* 8039425C 003911BC 40 80 00 1C */ bge lbl_80394278 +/* 80394260 003911C0 C8 42 D4 70 */ lfd f2, lbl_805AF190@sda21(r2) +/* 80394264 003911C4 C8 02 D4 78 */ lfd f0, lbl_805AF198@sda21(r2) +/* 80394268 003911C8 FC 42 08 2A */ fadd f2, f2, f1 +/* 8039426C 003911CC FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 80394270 003911D0 40 81 00 08 */ ble lbl_80394278 +/* 80394274 003911D4 48 00 01 4C */ b lbl_803943C0 +lbl_80394278: +/* 80394278 003911D8 38 00 FF FF */ li r0, -1 +/* 8039427C 003911DC 48 00 00 A0 */ b lbl_8039431C +lbl_80394280: +/* 80394280 003911E0 FC 60 0A 10 */ fabs f3, f1 +/* 80394284 003911E4 3C 00 3F F3 */ lis r0, 0x3ff3 +/* 80394288 003911E8 7C 05 00 00 */ cmpw r5, r0 +/* 8039428C 003911EC D8 61 00 08 */ stfd f3, 8(r1) +/* 80394290 003911F0 40 80 00 4C */ bge lbl_803942DC +/* 80394294 003911F4 3C 00 3F E6 */ lis r0, 0x3fe6 +/* 80394298 003911F8 7C 05 00 00 */ cmpw r5, r0 +/* 8039429C 003911FC 40 80 00 24 */ bge lbl_803942C0 +/* 803942A0 00391200 C8 42 D4 80 */ lfd f2, lbl_805AF1A0@sda21(r2) +/* 803942A4 00391204 38 00 00 00 */ li r0, 0 +/* 803942A8 00391208 C8 22 D4 78 */ lfd f1, lbl_805AF198@sda21(r2) +/* 803942AC 0039120C FC 02 18 2A */ fadd f0, f2, f3 +/* 803942B0 00391210 FC 22 08 F8 */ fmsub f1, f2, f3, f1 +/* 803942B4 00391214 FC 01 00 24 */ fdiv f0, f1, f0 +/* 803942B8 00391218 D8 01 00 08 */ stfd f0, 8(r1) +/* 803942BC 0039121C 48 00 00 60 */ b lbl_8039431C +lbl_803942C0: +/* 803942C0 00391220 C8 02 D4 78 */ lfd f0, lbl_805AF198@sda21(r2) +/* 803942C4 00391224 38 00 00 01 */ li r0, 1 +/* 803942C8 00391228 FC 23 00 28 */ fsub f1, f3, f0 +/* 803942CC 0039122C FC 00 18 2A */ fadd f0, f0, f3 +/* 803942D0 00391230 FC 01 00 24 */ fdiv f0, f1, f0 +/* 803942D4 00391234 D8 01 00 08 */ stfd f0, 8(r1) +/* 803942D8 00391238 48 00 00 44 */ b lbl_8039431C +lbl_803942DC: +/* 803942DC 0039123C 3C 60 40 04 */ lis r3, 0x40038000@ha +/* 803942E0 00391240 38 03 80 00 */ addi r0, r3, 0x40038000@l +/* 803942E4 00391244 7C 05 00 00 */ cmpw r5, r0 +/* 803942E8 00391248 40 80 00 24 */ bge lbl_8039430C +/* 803942EC 0039124C C8 42 D4 88 */ lfd f2, lbl_805AF1A8@sda21(r2) +/* 803942F0 00391250 38 00 00 02 */ li r0, 2 +/* 803942F4 00391254 C8 02 D4 78 */ lfd f0, lbl_805AF198@sda21(r2) +/* 803942F8 00391258 FC 23 10 28 */ fsub f1, f3, f2 +/* 803942FC 0039125C FC 02 00 FA */ fmadd f0, f2, f3, f0 +/* 80394300 00391260 FC 01 00 24 */ fdiv f0, f1, f0 +/* 80394304 00391264 D8 01 00 08 */ stfd f0, 8(r1) +/* 80394308 00391268 48 00 00 14 */ b lbl_8039431C +lbl_8039430C: +/* 8039430C 0039126C C8 02 D4 90 */ lfd f0, lbl_805AF1B0@sda21(r2) +/* 80394310 00391270 38 00 00 03 */ li r0, 3 +/* 80394314 00391274 FC 00 18 24 */ fdiv f0, f0, f3 +/* 80394318 00391278 D8 01 00 08 */ stfd f0, 8(r1) +lbl_8039431C: +/* 8039431C 0039127C C9 21 00 08 */ lfd f9, 8(r1) +/* 80394320 00391280 2C 00 00 00 */ cmpwi r0, 0 +/* 80394324 00391284 C8 84 00 90 */ lfd f4, 0x90(r4) +/* 80394328 00391288 FD 69 02 72 */ fmul f11, f9, f9 +/* 8039432C 0039128C C8 24 00 80 */ lfd f1, 0x80(r4) +/* 80394330 00391290 C8 E4 00 70 */ lfd f7, 0x70(r4) +/* 80394334 00391294 C8 64 00 88 */ lfd f3, 0x88(r4) +/* 80394338 00391298 C8 04 00 78 */ lfd f0, 0x78(r4) +/* 8039433C 0039129C FD 4B 02 F2 */ fmul f10, f11, f11 +/* 80394340 003912A0 C8 C4 00 60 */ lfd f6, 0x60(r4) +/* 80394344 003912A4 C8 44 00 68 */ lfd f2, 0x68(r4) +/* 80394348 003912A8 C8 A4 00 50 */ lfd f5, 0x50(r4) +/* 8039434C 003912AC FD 0A 09 3A */ fmadd f8, f10, f4, f1 +/* 80394350 003912B0 C8 24 00 58 */ lfd f1, 0x58(r4) +/* 80394354 003912B4 C8 84 00 40 */ lfd f4, 0x40(r4) +/* 80394358 003912B8 FC 6A 00 FA */ fmadd f3, f10, f3, f0 +/* 8039435C 003912BC C8 04 00 48 */ lfd f0, 0x48(r4) +/* 80394360 003912C0 FC EA 3A 3A */ fmadd f7, f10, f8, f7 +/* 80394364 003912C4 FC 4A 10 FA */ fmadd f2, f10, f3, f2 +/* 80394368 003912C8 FC 6A 31 FA */ fmadd f3, f10, f7, f6 +/* 8039436C 003912CC FC 2A 08 BA */ fmadd f1, f10, f2, f1 +/* 80394370 003912D0 FC 4A 28 FA */ fmadd f2, f10, f3, f5 +/* 80394374 003912D4 FC 0A 00 7A */ fmadd f0, f10, f1, f0 +/* 80394378 003912D8 FC 2A 20 BA */ fmadd f1, f10, f2, f4 +/* 8039437C 003912DC FC 4A 00 32 */ fmul f2, f10, f0 +/* 80394380 003912E0 FC 0B 00 72 */ fmul f0, f11, f1 +/* 80394384 003912E4 40 80 00 10 */ bge lbl_80394394 +/* 80394388 003912E8 FC 00 10 2A */ fadd f0, f0, f2 +/* 8039438C 003912EC FC 29 48 3C */ fnmsub f1, f9, f0, f9 +/* 80394390 003912F0 48 00 00 30 */ b lbl_803943C0 +lbl_80394394: +/* 80394394 003912F4 54 00 18 38 */ slwi r0, r0, 3 +/* 80394398 003912F8 FC 20 10 2A */ fadd f1, f0, f2 +/* 8039439C 003912FC 7C 64 02 14 */ add r3, r4, r0 +/* 803943A0 00391300 2C 06 00 00 */ cmpwi r6, 0 +/* 803943A4 00391304 C8 03 00 20 */ lfd f0, 0x20(r3) +/* 803943A8 00391308 C8 43 00 00 */ lfd f2, 0(r3) +/* 803943AC 0039130C FC 09 00 78 */ fmsub f0, f9, f1, f0 +/* 803943B0 00391310 FC 00 48 28 */ fsub f0, f0, f9 +/* 803943B4 00391314 FC 22 00 28 */ fsub f1, f2, f0 +/* 803943B8 00391318 40 80 00 08 */ bge lbl_803943C0 +/* 803943BC 0039131C FC 20 08 50 */ fneg f1, f1 +lbl_803943C0: +/* 803943C0 00391320 38 21 00 10 */ addi r1, r1, 0x10 +/* 803943C4 00391324 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_atan2.s b/asm/Runtime/PPCEABI/H/s_atan2.s new file mode 100644 index 00000000..b33360ef --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_atan2.s @@ -0,0 +1,14 @@ +.include "macros.inc" + +.section .text, "ax" + +.global atan2 +atan2: +/* 80394C6C 00391BCC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394C70 00391BD0 7C 08 02 A6 */ mflr r0 +/* 80394C74 00391BD4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80394C78 00391BD8 4B FF CC C5 */ bl __ieee754_atan2 +/* 80394C7C 00391BDC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394C80 00391BE0 7C 08 03 A6 */ mtlr r0 +/* 80394C84 00391BE4 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394C88 00391BE8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_copysign.s b/asm/Runtime/PPCEABI/H/s_copysign.s new file mode 100644 index 00000000..e53087e2 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_copysign.s @@ -0,0 +1,16 @@ +.include "macros.inc" + +.section .text, "ax" + +.global copysign +copysign: +/* 803943C8 00391328 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803943CC 0039132C D8 21 00 08 */ stfd f1, 8(r1) +/* 803943D0 00391330 D8 41 00 10 */ stfd f2, 0x10(r1) +/* 803943D4 00391334 80 61 00 08 */ lwz r3, 8(r1) +/* 803943D8 00391338 80 01 00 10 */ lwz r0, 0x10(r1) +/* 803943DC 0039133C 50 60 00 7E */ rlwimi r0, r3, 0, 1, 0x1f +/* 803943E0 00391340 90 01 00 08 */ stw r0, 8(r1) +/* 803943E4 00391344 C8 21 00 08 */ lfd f1, 8(r1) +/* 803943E8 00391348 38 21 00 20 */ addi r1, r1, 0x20 +/* 803943EC 0039134C 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_cos.s b/asm/Runtime/PPCEABI/H/s_cos.s new file mode 100644 index 00000000..ec7b5c8e --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_cos.s @@ -0,0 +1,67 @@ +.include "macros.inc" + +.section .text, "ax" + +.global cos +cos: +/* 803943F0 00391350 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803943F4 00391354 7C 08 02 A6 */ mflr r0 +/* 803943F8 00391358 3C 60 3F E9 */ lis r3, 0x3FE921FB@ha +/* 803943FC 0039135C D8 21 00 08 */ stfd f1, 8(r1) +/* 80394400 00391360 90 01 00 24 */ stw r0, 0x24(r1) +/* 80394404 00391364 38 03 21 FB */ addi r0, r3, 0x3FE921FB@l +/* 80394408 00391368 80 61 00 08 */ lwz r3, 8(r1) +/* 8039440C 0039136C 54 63 00 7E */ clrlwi r3, r3, 1 +/* 80394410 00391370 7C 03 00 00 */ cmpw r3, r0 +/* 80394414 00391374 41 81 00 10 */ bgt lbl_80394424 +/* 80394418 00391378 C8 42 D4 98 */ lfd f2, lbl_805AF1B8@sda21(r2) +/* 8039441C 0039137C 4B FF EB B1 */ bl __kernel_cos +/* 80394420 00391380 48 00 00 94 */ b lbl_803944B4 +lbl_80394424: +/* 80394424 00391384 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80394428 00391388 7C 03 00 00 */ cmpw r3, r0 +/* 8039442C 0039138C 41 80 00 0C */ blt lbl_80394438 +/* 80394430 00391390 FC 21 08 28 */ fsub f1, f1, f1 +/* 80394434 00391394 48 00 00 80 */ b lbl_803944B4 +lbl_80394438: +/* 80394438 00391398 38 61 00 10 */ addi r3, r1, 0x10 +/* 8039443C 0039139C 4B FF E7 F1 */ bl __ieee754_rem_pio2 +/* 80394440 003913A0 54 60 07 BE */ clrlwi r0, r3, 0x1e +/* 80394444 003913A4 2C 00 00 01 */ cmpwi r0, 1 +/* 80394448 003913A8 41 82 00 30 */ beq lbl_80394478 +/* 8039444C 003913AC 40 80 00 10 */ bge lbl_8039445C +/* 80394450 003913B0 2C 00 00 00 */ cmpwi r0, 0 +/* 80394454 003913B4 40 80 00 14 */ bge lbl_80394468 +/* 80394458 003913B8 48 00 00 4C */ b lbl_803944A4 +lbl_8039445C: +/* 8039445C 003913BC 2C 00 00 03 */ cmpwi r0, 3 +/* 80394460 003913C0 40 80 00 44 */ bge lbl_803944A4 +/* 80394464 003913C4 48 00 00 2C */ b lbl_80394490 +lbl_80394468: +/* 80394468 003913C8 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 8039446C 003913CC C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394470 003913D0 4B FF EB 5D */ bl __kernel_cos +/* 80394474 003913D4 48 00 00 40 */ b lbl_803944B4 +lbl_80394478: +/* 80394478 003913D8 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 8039447C 003913DC 38 60 00 01 */ li r3, 1 +/* 80394480 003913E0 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394484 003913E4 4B FF FA 91 */ bl __kernel_sin +/* 80394488 003913E8 FC 20 08 50 */ fneg f1, f1 +/* 8039448C 003913EC 48 00 00 28 */ b lbl_803944B4 +lbl_80394490: +/* 80394490 003913F0 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80394494 003913F4 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394498 003913F8 4B FF EB 35 */ bl __kernel_cos +/* 8039449C 003913FC FC 20 08 50 */ fneg f1, f1 +/* 803944A0 00391400 48 00 00 14 */ b lbl_803944B4 +lbl_803944A4: +/* 803944A4 00391404 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 803944A8 00391408 38 60 00 01 */ li r3, 1 +/* 803944AC 0039140C C8 41 00 18 */ lfd f2, 0x18(r1) +/* 803944B0 00391410 4B FF FA 65 */ bl __kernel_sin +lbl_803944B4: +/* 803944B4 00391414 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803944B8 00391418 7C 08 03 A6 */ mtlr r0 +/* 803944BC 0039141C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803944C0 00391420 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_cosf.s b/asm/Runtime/PPCEABI/H/s_cosf.s new file mode 100644 index 00000000..7189d65b --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_cosf.s @@ -0,0 +1,15 @@ +.include "macros.inc" + +.section .text, "ax" + +.global cosf +cosf: +/* 80394D0C 00391C6C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394D10 00391C70 7C 08 02 A6 */ mflr r0 +/* 80394D14 00391C74 90 01 00 14 */ stw r0, 0x14(r1) +/* 80394D18 00391C78 4B FF F6 D9 */ bl cos +/* 80394D1C 00391C7C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394D20 00391C80 FC 20 08 18 */ frsp f1, f1 +/* 80394D24 00391C84 7C 08 03 A6 */ mtlr r0 +/* 80394D28 00391C88 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394D2C 00391C8C 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_exp.s b/asm/Runtime/PPCEABI/H/s_exp.s new file mode 100644 index 00000000..9ae4edb6 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_exp.s @@ -0,0 +1,14 @@ +.include "macros.inc" + +.section .text, "ax" + +.global exp +exp: +/* 80394C8C 00391BEC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394C90 00391BF0 7C 08 02 A6 */ mflr r0 +/* 80394C94 00391BF4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80394C98 00391BF8 4B FF CF 35 */ bl __ieee754_exp +/* 80394C9C 00391BFC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394CA0 00391C00 7C 08 03 A6 */ mtlr r0 +/* 80394CA4 00391C04 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394CA8 00391C08 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_floor.s b/asm/Runtime/PPCEABI/H/s_floor.s new file mode 100644 index 00000000..39f7ce0f --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_floor.s @@ -0,0 +1,100 @@ +.include "macros.inc" + +.section .text, "ax" + +.global floor +floor: +/* 803944C4 00391424 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803944C8 00391428 D8 21 00 08 */ stfd f1, 8(r1) +/* 803944CC 0039142C 80 A1 00 08 */ lwz r5, 8(r1) +/* 803944D0 00391430 80 C1 00 0C */ lwz r6, 0xc(r1) +/* 803944D4 00391434 54 A3 65 7E */ rlwinm r3, r5, 0xc, 0x15, 0x1f +/* 803944D8 00391438 38 E3 FC 01 */ addi r7, r3, -1023 +/* 803944DC 0039143C 2C 07 00 14 */ cmpwi r7, 0x14 +/* 803944E0 00391440 40 80 00 98 */ bge lbl_80394578 +/* 803944E4 00391444 2C 07 00 00 */ cmpwi r7, 0 +/* 803944E8 00391448 40 80 00 44 */ bge lbl_8039452C +/* 803944EC 0039144C C8 42 D4 A0 */ lfd f2, lbl_805AF1C0@sda21(r2) +/* 803944F0 00391450 C8 02 D4 A8 */ lfd f0, lbl_805AF1C8@sda21(r2) +/* 803944F4 00391454 FC 22 08 2A */ fadd f1, f2, f1 +/* 803944F8 00391458 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803944FC 0039145C 40 81 00 FC */ ble lbl_803945F8 +/* 80394500 00391460 2C 05 00 00 */ cmpwi r5, 0 +/* 80394504 00391464 41 80 00 10 */ blt lbl_80394514 +/* 80394508 00391468 38 C0 00 00 */ li r6, 0 +/* 8039450C 0039146C 38 A0 00 00 */ li r5, 0 +/* 80394510 00391470 48 00 00 E8 */ b lbl_803945F8 +lbl_80394514: +/* 80394514 00391474 54 A0 00 7E */ clrlwi r0, r5, 1 +/* 80394518 00391478 7C 00 33 79 */ or. r0, r0, r6 +/* 8039451C 0039147C 41 82 00 DC */ beq lbl_803945F8 +/* 80394520 00391480 3C A0 BF F0 */ lis r5, 0xbff0 +/* 80394524 00391484 38 C0 00 00 */ li r6, 0 +/* 80394528 00391488 48 00 00 D0 */ b lbl_803945F8 +lbl_8039452C: +/* 8039452C 0039148C 3C 60 00 10 */ lis r3, 0x000FFFFF@ha +/* 80394530 00391490 38 03 FF FF */ addi r0, r3, 0x000FFFFF@l +/* 80394534 00391494 7C 04 3E 30 */ sraw r4, r0, r7 +/* 80394538 00391498 7C A0 20 38 */ and r0, r5, r4 +/* 8039453C 0039149C 7C C0 03 79 */ or. r0, r6, r0 +/* 80394540 003914A0 40 82 00 08 */ bne lbl_80394548 +/* 80394544 003914A4 48 00 00 C0 */ b lbl_80394604 +lbl_80394548: +/* 80394548 003914A8 C8 42 D4 A0 */ lfd f2, lbl_805AF1C0@sda21(r2) +/* 8039454C 003914AC C8 02 D4 A8 */ lfd f0, lbl_805AF1C8@sda21(r2) +/* 80394550 003914B0 FC 22 08 2A */ fadd f1, f2, f1 +/* 80394554 003914B4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80394558 003914B8 40 81 00 A0 */ ble lbl_803945F8 +/* 8039455C 003914BC 2C 05 00 00 */ cmpwi r5, 0 +/* 80394560 003914C0 40 80 00 0C */ bge lbl_8039456C +/* 80394564 003914C4 7C 60 3E 30 */ sraw r0, r3, r7 +/* 80394568 003914C8 7C A5 02 14 */ add r5, r5, r0 +lbl_8039456C: +/* 8039456C 003914CC 7C A5 20 78 */ andc r5, r5, r4 +/* 80394570 003914D0 38 C0 00 00 */ li r6, 0 +/* 80394574 003914D4 48 00 00 84 */ b lbl_803945F8 +lbl_80394578: +/* 80394578 003914D8 2C 07 00 33 */ cmpwi r7, 0x33 +/* 8039457C 003914DC 40 81 00 14 */ ble lbl_80394590 +/* 80394580 003914E0 2C 07 04 00 */ cmpwi r7, 0x400 +/* 80394584 003914E4 40 82 00 80 */ bne lbl_80394604 +/* 80394588 003914E8 FC 21 08 2A */ fadd f1, f1, f1 +/* 8039458C 003914EC 48 00 00 78 */ b lbl_80394604 +lbl_80394590: +/* 80394590 003914F0 38 07 FF EC */ addi r0, r7, -20 +/* 80394594 003914F4 38 60 FF FF */ li r3, -1 +/* 80394598 003914F8 7C 64 04 30 */ srw r4, r3, r0 +/* 8039459C 003914FC 7C C0 20 39 */ and. r0, r6, r4 +/* 803945A0 00391500 40 82 00 08 */ bne lbl_803945A8 +/* 803945A4 00391504 48 00 00 60 */ b lbl_80394604 +lbl_803945A8: +/* 803945A8 00391508 C8 42 D4 A0 */ lfd f2, lbl_805AF1C0@sda21(r2) +/* 803945AC 0039150C C8 02 D4 A8 */ lfd f0, lbl_805AF1C8@sda21(r2) +/* 803945B0 00391510 FC 22 08 2A */ fadd f1, f2, f1 +/* 803945B4 00391514 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803945B8 00391518 40 81 00 40 */ ble lbl_803945F8 +/* 803945BC 0039151C 2C 05 00 00 */ cmpwi r5, 0 +/* 803945C0 00391520 40 80 00 34 */ bge lbl_803945F4 +/* 803945C4 00391524 2C 07 00 14 */ cmpwi r7, 0x14 +/* 803945C8 00391528 40 82 00 0C */ bne lbl_803945D4 +/* 803945CC 0039152C 38 A5 00 01 */ addi r5, r5, 1 +/* 803945D0 00391530 48 00 00 24 */ b lbl_803945F4 +lbl_803945D4: +/* 803945D4 00391534 20 07 00 34 */ subfic r0, r7, 0x34 +/* 803945D8 00391538 38 60 00 01 */ li r3, 1 +/* 803945DC 0039153C 7C 60 00 30 */ slw r0, r3, r0 +/* 803945E0 00391540 7C 06 02 14 */ add r0, r6, r0 +/* 803945E4 00391544 7C 00 30 40 */ cmplw r0, r6 +/* 803945E8 00391548 40 80 00 08 */ bge lbl_803945F0 +/* 803945EC 0039154C 38 A5 00 01 */ addi r5, r5, 1 +lbl_803945F0: +/* 803945F0 00391550 7C 06 03 78 */ mr r6, r0 +lbl_803945F4: +/* 803945F4 00391554 7C C6 20 78 */ andc r6, r6, r4 +lbl_803945F8: +/* 803945F8 00391558 90 A1 00 08 */ stw r5, 8(r1) +/* 803945FC 0039155C 90 C1 00 0C */ stw r6, 0xc(r1) +/* 80394600 00391560 C8 21 00 08 */ lfd f1, 8(r1) +lbl_80394604: +/* 80394604 00391564 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394608 00391568 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_fmod.s b/asm/Runtime/PPCEABI/H/s_fmod.s new file mode 100644 index 00000000..19a69d5b --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_fmod.s @@ -0,0 +1,14 @@ +.include "macros.inc" + +.section .text, "ax" + +.global fmod +fmod: +/* 80394CAC 00391C0C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394CB0 00391C10 7C 08 02 A6 */ mflr r0 +/* 80394CB4 00391C14 90 01 00 14 */ stw r0, 0x14(r1) +/* 80394CB8 00391C18 4B FF D1 31 */ bl __ieee754_fmod +/* 80394CBC 00391C1C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394CC0 00391C20 7C 08 03 A6 */ mtlr r0 +/* 80394CC4 00391C24 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394CC8 00391C28 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_frexp.s b/asm/Runtime/PPCEABI/H/s_frexp.s new file mode 100644 index 00000000..fddf0c95 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_frexp.s @@ -0,0 +1,45 @@ +.include "macros.inc" + +.section .text, "ax" + +.global frexp +frexp: +/* 8039460C 0039156C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394610 00391570 38 80 00 00 */ li r4, 0 +/* 80394614 00391574 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80394618 00391578 D8 21 00 08 */ stfd f1, 8(r1) +/* 8039461C 0039157C 80 A1 00 08 */ lwz r5, 8(r1) +/* 80394620 00391580 90 83 00 00 */ stw r4, 0(r3) +/* 80394624 00391584 54 A4 00 7E */ clrlwi r4, r5, 1 +/* 80394628 00391588 80 C1 00 0C */ lwz r6, 0xc(r1) +/* 8039462C 0039158C 7C 04 00 00 */ cmpw r4, r0 +/* 80394630 00391590 40 80 00 0C */ bge lbl_8039463C +/* 80394634 00391594 7C 80 33 79 */ or. r0, r4, r6 +/* 80394638 00391598 40 82 00 0C */ bne lbl_80394644 +lbl_8039463C: +/* 8039463C 0039159C C8 21 00 08 */ lfd f1, 8(r1) +/* 80394640 003915A0 48 00 00 50 */ b lbl_80394690 +lbl_80394644: +/* 80394644 003915A4 3C 00 00 10 */ lis r0, 0x10 +/* 80394648 003915A8 7C 04 00 00 */ cmpw r4, r0 +/* 8039464C 003915AC 40 80 00 20 */ bge lbl_8039466C +/* 80394650 003915B0 C8 02 D4 B0 */ lfd f0, lbl_805AF1D0@sda21(r2) +/* 80394654 003915B4 38 00 FF CA */ li r0, -54 +/* 80394658 003915B8 90 03 00 00 */ stw r0, 0(r3) +/* 8039465C 003915BC FC 01 00 32 */ fmul f0, f1, f0 +/* 80394660 003915C0 D8 01 00 08 */ stfd f0, 8(r1) +/* 80394664 003915C4 80 A1 00 08 */ lwz r5, 8(r1) +/* 80394668 003915C8 54 A4 00 7E */ clrlwi r4, r5, 1 +lbl_8039466C: +/* 8039466C 003915CC 54 A0 03 00 */ rlwinm r0, r5, 0, 0xc, 0 +/* 80394670 003915D0 80 A3 00 00 */ lwz r5, 0(r3) +/* 80394674 003915D4 7C 84 A6 70 */ srawi r4, r4, 0x14 +/* 80394678 003915D8 64 00 3F E0 */ oris r0, r0, 0x3fe0 +/* 8039467C 003915DC 90 01 00 08 */ stw r0, 8(r1) +/* 80394680 003915E0 7C 84 2A 14 */ add r4, r4, r5 +/* 80394684 003915E4 38 04 FC 02 */ addi r0, r4, -1022 +/* 80394688 003915E8 90 03 00 00 */ stw r0, 0(r3) +/* 8039468C 003915EC C8 21 00 08 */ lfd f1, 8(r1) +lbl_80394690: +/* 80394690 003915F0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394694 003915F4 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_ldexp.s b/asm/Runtime/PPCEABI/H/s_ldexp.s new file mode 100644 index 00000000..80d88dd5 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_ldexp.s @@ -0,0 +1,136 @@ +.include "macros.inc" + +.section .text, "ax" + +.global ldexp +ldexp: +/* 80394698 003915F8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039469C 003915FC 7C 08 02 A6 */ mflr r0 +/* 803946A0 00391600 D8 21 00 10 */ stfd f1, 0x10(r1) +/* 803946A4 00391604 80 A1 00 10 */ lwz r5, 0x10(r1) +/* 803946A8 00391608 90 01 00 24 */ stw r0, 0x24(r1) +/* 803946AC 0039160C 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 803946B0 00391610 54 A4 00 56 */ rlwinm r4, r5, 0, 1, 0xb +/* 803946B4 00391614 7C 04 00 00 */ cmpw r4, r0 +/* 803946B8 00391618 D8 21 00 08 */ stfd f1, 8(r1) +/* 803946BC 0039161C 41 82 00 14 */ beq lbl_803946D0 +/* 803946C0 00391620 40 80 00 58 */ bge lbl_80394718 +/* 803946C4 00391624 2C 04 00 00 */ cmpwi r4, 0 +/* 803946C8 00391628 41 82 00 2C */ beq lbl_803946F4 +/* 803946CC 0039162C 48 00 00 4C */ b lbl_80394718 +lbl_803946D0: +/* 803946D0 00391630 54 A0 03 3F */ clrlwi. r0, r5, 0xc +/* 803946D4 00391634 40 82 00 10 */ bne lbl_803946E4 +/* 803946D8 00391638 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803946DC 0039163C 2C 00 00 00 */ cmpwi r0, 0 +/* 803946E0 00391640 41 82 00 0C */ beq lbl_803946EC +lbl_803946E4: +/* 803946E4 00391644 38 00 00 01 */ li r0, 1 +/* 803946E8 00391648 48 00 00 34 */ b lbl_8039471C +lbl_803946EC: +/* 803946EC 0039164C 38 00 00 02 */ li r0, 2 +/* 803946F0 00391650 48 00 00 2C */ b lbl_8039471C +lbl_803946F4: +/* 803946F4 00391654 54 A0 03 3F */ clrlwi. r0, r5, 0xc +/* 803946F8 00391658 40 82 00 10 */ bne lbl_80394708 +/* 803946FC 0039165C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394700 00391660 2C 00 00 00 */ cmpwi r0, 0 +/* 80394704 00391664 41 82 00 0C */ beq lbl_80394710 +lbl_80394708: +/* 80394708 00391668 38 00 00 05 */ li r0, 5 +/* 8039470C 0039166C 48 00 00 10 */ b lbl_8039471C +lbl_80394710: +/* 80394710 00391670 38 00 00 03 */ li r0, 3 +/* 80394714 00391674 48 00 00 08 */ b lbl_8039471C +lbl_80394718: +/* 80394718 00391678 38 00 00 04 */ li r0, 4 +lbl_8039471C: +/* 8039471C 0039167C 2C 00 00 02 */ cmpwi r0, 2 +/* 80394720 00391680 40 81 01 2C */ ble lbl_8039484C +/* 80394724 00391684 C8 02 D4 B8 */ lfd f0, lbl_805AF1D8@sda21(r2) +/* 80394728 00391688 FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 8039472C 0039168C 40 82 00 08 */ bne lbl_80394734 +/* 80394730 00391690 48 00 01 1C */ b lbl_8039484C +lbl_80394734: +/* 80394734 00391694 80 A1 00 08 */ lwz r5, 8(r1) +/* 80394738 00391698 80 C1 00 0C */ lwz r6, 0xc(r1) +/* 8039473C 0039169C 54 A4 65 7F */ rlwinm. r4, r5, 0xc, 0x15, 0x1f +/* 80394740 003916A0 40 82 00 4C */ bne lbl_8039478C +/* 80394744 003916A4 54 A0 00 7E */ clrlwi r0, r5, 1 +/* 80394748 003916A8 7C C0 03 79 */ or. r0, r6, r0 +/* 8039474C 003916AC 40 82 00 08 */ bne lbl_80394754 +/* 80394750 003916B0 48 00 00 FC */ b lbl_8039484C +lbl_80394754: +/* 80394754 003916B4 C8 21 00 08 */ lfd f1, 8(r1) +/* 80394758 003916B8 3C 80 FF FF */ lis r4, 0xFFFF3CB0@ha +/* 8039475C 003916BC C8 02 D4 C0 */ lfd f0, lbl_805AF1E0@sda21(r2) +/* 80394760 003916C0 38 04 3C B0 */ addi r0, r4, 0xFFFF3CB0@l +/* 80394764 003916C4 7C 03 00 00 */ cmpw r3, r0 +/* 80394768 003916C8 FC 21 00 32 */ fmul f1, f1, f0 +/* 8039476C 003916CC D8 21 00 08 */ stfd f1, 8(r1) +/* 80394770 003916D0 80 A1 00 08 */ lwz r5, 8(r1) +/* 80394774 003916D4 54 A4 65 7E */ rlwinm r4, r5, 0xc, 0x15, 0x1f +/* 80394778 003916D8 38 84 FF CA */ addi r4, r4, -54 +/* 8039477C 003916DC 40 80 00 10 */ bge lbl_8039478C +/* 80394780 003916E0 C8 02 D4 C8 */ lfd f0, lbl_805AF1E8@sda21(r2) +/* 80394784 003916E4 FC 20 00 72 */ fmul f1, f0, f1 +/* 80394788 003916E8 48 00 00 C4 */ b lbl_8039484C +lbl_8039478C: +/* 8039478C 003916EC 2C 04 07 FF */ cmpwi r4, 0x7ff +/* 80394790 003916F0 40 82 00 10 */ bne lbl_803947A0 +/* 80394794 003916F4 C8 01 00 08 */ lfd f0, 8(r1) +/* 80394798 003916F8 FC 20 00 2A */ fadd f1, f0, f0 +/* 8039479C 003916FC 48 00 00 B0 */ b lbl_8039484C +lbl_803947A0: +/* 803947A0 00391700 7C 84 1A 14 */ add r4, r4, r3 +/* 803947A4 00391704 2C 04 07 FE */ cmpwi r4, 0x7fe +/* 803947A8 00391708 40 81 00 1C */ ble lbl_803947C4 +/* 803947AC 0039170C C8 22 D4 D0 */ lfd f1, lbl_805AF1F0@sda21(r2) +/* 803947B0 00391710 C8 41 00 08 */ lfd f2, 8(r1) +/* 803947B4 00391714 4B FF FC 15 */ bl copysign +/* 803947B8 00391718 C8 02 D4 D0 */ lfd f0, lbl_805AF1F0@sda21(r2) +/* 803947BC 0039171C FC 20 00 72 */ fmul f1, f0, f1 +/* 803947C0 00391720 48 00 00 8C */ b lbl_8039484C +lbl_803947C4: +/* 803947C4 00391724 2C 04 00 00 */ cmpwi r4, 0 +/* 803947C8 00391728 40 81 00 1C */ ble lbl_803947E4 +/* 803947CC 0039172C 54 A3 03 00 */ rlwinm r3, r5, 0, 0xc, 0 +/* 803947D0 00391730 54 80 A0 16 */ slwi r0, r4, 0x14 +/* 803947D4 00391734 7C 60 03 78 */ or r0, r3, r0 +/* 803947D8 00391738 90 01 00 08 */ stw r0, 8(r1) +/* 803947DC 0039173C C8 21 00 08 */ lfd f1, 8(r1) +/* 803947E0 00391740 48 00 00 6C */ b lbl_8039484C +lbl_803947E4: +/* 803947E4 00391744 2C 04 FF CA */ cmpwi r4, -54 +/* 803947E8 00391748 41 81 00 44 */ bgt lbl_8039482C +/* 803947EC 0039174C 3C 80 00 01 */ lis r4, 0x0000C350@ha +/* 803947F0 00391750 38 04 C3 50 */ addi r0, r4, 0x0000C350@l +/* 803947F4 00391754 7C 03 00 00 */ cmpw r3, r0 +/* 803947F8 00391758 40 81 00 1C */ ble lbl_80394814 +/* 803947FC 0039175C C8 22 D4 D0 */ lfd f1, lbl_805AF1F0@sda21(r2) +/* 80394800 00391760 C8 41 00 08 */ lfd f2, 8(r1) +/* 80394804 00391764 4B FF FB C5 */ bl copysign +/* 80394808 00391768 C8 02 D4 D0 */ lfd f0, lbl_805AF1F0@sda21(r2) +/* 8039480C 0039176C FC 20 00 72 */ fmul f1, f0, f1 +/* 80394810 00391770 48 00 00 3C */ b lbl_8039484C +lbl_80394814: +/* 80394814 00391774 C8 22 D4 C8 */ lfd f1, lbl_805AF1E8@sda21(r2) +/* 80394818 00391778 C8 41 00 08 */ lfd f2, 8(r1) +/* 8039481C 0039177C 4B FF FB AD */ bl copysign +/* 80394820 00391780 C8 02 D4 C8 */ lfd f0, lbl_805AF1E8@sda21(r2) +/* 80394824 00391784 FC 20 00 72 */ fmul f1, f0, f1 +/* 80394828 00391788 48 00 00 24 */ b lbl_8039484C +lbl_8039482C: +/* 8039482C 0039178C 38 04 00 36 */ addi r0, r4, 0x36 +/* 80394830 00391790 54 A3 03 00 */ rlwinm r3, r5, 0, 0xc, 0 +/* 80394834 00391794 54 00 A0 16 */ slwi r0, r0, 0x14 +/* 80394838 00391798 C8 22 D4 D8 */ lfd f1, lbl_805AF1F8@sda21(r2) +/* 8039483C 0039179C 7C 60 03 78 */ or r0, r3, r0 +/* 80394840 003917A0 90 01 00 08 */ stw r0, 8(r1) +/* 80394844 003917A4 C8 01 00 08 */ lfd f0, 8(r1) +/* 80394848 003917A8 FC 21 00 32 */ fmul f1, f1, f0 +lbl_8039484C: +/* 8039484C 003917AC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80394850 003917B0 7C 08 03 A6 */ mtlr r0 +/* 80394854 003917B4 38 21 00 20 */ addi r1, r1, 0x20 +/* 80394858 003917B8 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_log.s b/asm/Runtime/PPCEABI/H/s_log.s new file mode 100644 index 00000000..11ee4207 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_log.s @@ -0,0 +1,14 @@ +.include "macros.inc" + +.section .text, "ax" + +.global log +log: +/* 80394CCC 00391C2C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394CD0 00391C30 7C 08 02 A6 */ mflr r0 +/* 80394CD4 00391C34 90 01 00 14 */ stw r0, 0x14(r1) +/* 80394CD8 00391C38 4B FF D4 4D */ bl __ieee754_log +/* 80394CDC 00391C3C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394CE0 00391C40 7C 08 03 A6 */ mtlr r0 +/* 80394CE4 00391C44 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394CE8 00391C48 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_modf.s b/asm/Runtime/PPCEABI/H/s_modf.s new file mode 100644 index 00000000..3543c6c2 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_modf.s @@ -0,0 +1,75 @@ +.include "macros.inc" + +.section .text, "ax" + +.global modf +modf: +/* 8039485C 003917BC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394860 003917C0 D8 21 00 08 */ stfd f1, 8(r1) +/* 80394864 003917C4 80 A1 00 08 */ lwz r5, 8(r1) +/* 80394868 003917C8 80 C1 00 0C */ lwz r6, 0xc(r1) +/* 8039486C 003917CC 54 A4 65 7E */ rlwinm r4, r5, 0xc, 0x15, 0x1f +/* 80394870 003917D0 38 E4 FC 01 */ addi r7, r4, -1023 +/* 80394874 003917D4 2C 07 00 14 */ cmpwi r7, 0x14 +/* 80394878 003917D8 40 80 00 70 */ bge lbl_803948E8 +/* 8039487C 003917DC 2C 07 00 00 */ cmpwi r7, 0 +/* 80394880 003917E0 40 80 00 18 */ bge lbl_80394898 +/* 80394884 003917E4 54 A4 00 00 */ rlwinm r4, r5, 0, 0, 0 +/* 80394888 003917E8 38 00 00 00 */ li r0, 0 +/* 8039488C 003917EC 90 83 00 00 */ stw r4, 0(r3) +/* 80394890 003917F0 90 03 00 04 */ stw r0, 4(r3) +/* 80394894 003917F4 48 00 00 BC */ b lbl_80394950 +lbl_80394898: +/* 80394898 003917F8 3C 80 00 10 */ lis r4, 0x000FFFFF@ha +/* 8039489C 003917FC 38 04 FF FF */ addi r0, r4, 0x000FFFFF@l +/* 803948A0 00391800 7C 04 3E 30 */ sraw r4, r0, r7 +/* 803948A4 00391804 7C A0 20 38 */ and r0, r5, r4 +/* 803948A8 00391808 7C C0 03 79 */ or. r0, r6, r0 +/* 803948AC 0039180C 40 82 00 20 */ bne lbl_803948CC +/* 803948B0 00391810 54 A4 00 00 */ rlwinm r4, r5, 0, 0, 0 +/* 803948B4 00391814 38 00 00 00 */ li r0, 0 +/* 803948B8 00391818 90 81 00 08 */ stw r4, 8(r1) +/* 803948BC 0039181C 90 01 00 0C */ stw r0, 0xc(r1) +/* 803948C0 00391820 D8 23 00 00 */ stfd f1, 0(r3) +/* 803948C4 00391824 C8 21 00 08 */ lfd f1, 8(r1) +/* 803948C8 00391828 48 00 00 88 */ b lbl_80394950 +lbl_803948CC: +/* 803948CC 0039182C 7C A4 20 78 */ andc r4, r5, r4 +/* 803948D0 00391830 38 00 00 00 */ li r0, 0 +/* 803948D4 00391834 90 83 00 00 */ stw r4, 0(r3) +/* 803948D8 00391838 90 03 00 04 */ stw r0, 4(r3) +/* 803948DC 0039183C C8 03 00 00 */ lfd f0, 0(r3) +/* 803948E0 00391840 FC 21 00 28 */ fsub f1, f1, f0 +/* 803948E4 00391844 48 00 00 6C */ b lbl_80394950 +lbl_803948E8: +/* 803948E8 00391848 2C 07 00 33 */ cmpwi r7, 0x33 +/* 803948EC 0039184C 40 81 00 20 */ ble lbl_8039490C +/* 803948F0 00391850 54 A4 00 00 */ rlwinm r4, r5, 0, 0, 0 +/* 803948F4 00391854 38 00 00 00 */ li r0, 0 +/* 803948F8 00391858 90 81 00 08 */ stw r4, 8(r1) +/* 803948FC 0039185C 90 01 00 0C */ stw r0, 0xc(r1) +/* 80394900 00391860 D8 23 00 00 */ stfd f1, 0(r3) +/* 80394904 00391864 C8 21 00 08 */ lfd f1, 8(r1) +/* 80394908 00391868 48 00 00 48 */ b lbl_80394950 +lbl_8039490C: +/* 8039490C 0039186C 38 07 FF EC */ addi r0, r7, -20 +/* 80394910 00391870 38 80 FF FF */ li r4, -1 +/* 80394914 00391874 7C 84 04 30 */ srw r4, r4, r0 +/* 80394918 00391878 7C C0 20 39 */ and. r0, r6, r4 +/* 8039491C 0039187C 40 82 00 20 */ bne lbl_8039493C +/* 80394920 00391880 54 A4 00 00 */ rlwinm r4, r5, 0, 0, 0 +/* 80394924 00391884 38 00 00 00 */ li r0, 0 +/* 80394928 00391888 90 81 00 08 */ stw r4, 8(r1) +/* 8039492C 0039188C 90 01 00 0C */ stw r0, 0xc(r1) +/* 80394930 00391890 D8 23 00 00 */ stfd f1, 0(r3) +/* 80394934 00391894 C8 21 00 08 */ lfd f1, 8(r1) +/* 80394938 00391898 48 00 00 18 */ b lbl_80394950 +lbl_8039493C: +/* 8039493C 0039189C 90 A3 00 00 */ stw r5, 0(r3) +/* 80394940 003918A0 7C C0 20 78 */ andc r0, r6, r4 +/* 80394944 003918A4 90 03 00 04 */ stw r0, 4(r3) +/* 80394948 003918A8 C8 03 00 00 */ lfd f0, 0(r3) +/* 8039494C 003918AC FC 21 00 28 */ fsub f1, f1, f0 +lbl_80394950: +/* 80394950 003918B0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394954 003918B4 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_nextafter.s b/asm/Runtime/PPCEABI/H/s_nextafter.s new file mode 100644 index 00000000..0aae013f --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_nextafter.s @@ -0,0 +1,120 @@ +.include "macros.inc" + +.section .text, "ax" + +.global nextafter +nextafter: +/* 80394958 003918B8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039495C 003918BC 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80394960 003918C0 D8 21 00 08 */ stfd f1, 8(r1) +/* 80394964 003918C4 80 81 00 08 */ lwz r4, 8(r1) +/* 80394968 003918C8 D8 41 00 10 */ stfd f2, 0x10(r1) +/* 8039496C 003918CC 54 85 00 7E */ clrlwi r5, r4, 1 +/* 80394970 003918D0 80 E1 00 0C */ lwz r7, 0xc(r1) +/* 80394974 003918D4 80 61 00 10 */ lwz r3, 0x10(r1) +/* 80394978 003918D8 7C 05 00 00 */ cmpw r5, r0 +/* 8039497C 003918DC 81 01 00 14 */ lwz r8, 0x14(r1) +/* 80394980 003918E0 54 66 00 7E */ clrlwi r6, r3, 1 +/* 80394984 003918E4 41 80 00 10 */ blt lbl_80394994 +/* 80394988 003918E8 3C 05 80 10 */ addis r0, r5, 0x8010 +/* 8039498C 003918EC 7C 00 3B 79 */ or. r0, r0, r7 +/* 80394990 003918F0 40 82 00 1C */ bne lbl_803949AC +lbl_80394994: +/* 80394994 003918F4 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80394998 003918F8 7C 06 00 00 */ cmpw r6, r0 +/* 8039499C 003918FC 41 80 00 20 */ blt lbl_803949BC +/* 803949A0 00391900 3C 06 80 10 */ addis r0, r6, 0x8010 +/* 803949A4 00391904 7C 00 43 79 */ or. r0, r0, r8 +/* 803949A8 00391908 41 82 00 14 */ beq lbl_803949BC +lbl_803949AC: +/* 803949AC 0039190C C8 21 00 08 */ lfd f1, 8(r1) +/* 803949B0 00391910 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803949B4 00391914 FC 21 00 2A */ fadd f1, f1, f0 +/* 803949B8 00391918 48 00 01 1C */ b lbl_80394AD4 +lbl_803949BC: +/* 803949BC 0039191C C8 21 00 08 */ lfd f1, 8(r1) +/* 803949C0 00391920 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803949C4 00391924 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 803949C8 00391928 40 82 00 08 */ bne lbl_803949D0 +/* 803949CC 0039192C 48 00 01 08 */ b lbl_80394AD4 +lbl_803949D0: +/* 803949D0 00391930 7C A0 3B 79 */ or. r0, r5, r7 +/* 803949D4 00391934 40 82 00 34 */ bne lbl_80394A08 +/* 803949D8 00391938 54 63 00 00 */ rlwinm r3, r3, 0, 0, 0 +/* 803949DC 0039193C 38 00 00 01 */ li r0, 1 +/* 803949E0 00391940 90 61 00 08 */ stw r3, 8(r1) +/* 803949E4 00391944 90 01 00 0C */ stw r0, 0xc(r1) +/* 803949E8 00391948 C8 01 00 08 */ lfd f0, 8(r1) +/* 803949EC 0039194C FC 20 00 32 */ fmul f1, f0, f0 +/* 803949F0 00391950 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 803949F4 00391954 D8 21 00 10 */ stfd f1, 0x10(r1) +/* 803949F8 00391958 40 82 00 08 */ bne lbl_80394A00 +/* 803949FC 0039195C 48 00 00 D8 */ b lbl_80394AD4 +lbl_80394A00: +/* 80394A00 00391960 FC 20 00 90 */ fmr f1, f0 +/* 80394A04 00391964 48 00 00 D0 */ b lbl_80394AD4 +lbl_80394A08: +/* 80394A08 00391968 2C 04 00 00 */ cmpwi r4, 0 +/* 80394A0C 0039196C 41 80 00 3C */ blt lbl_80394A48 +/* 80394A10 00391970 7C 04 18 00 */ cmpw r4, r3 +/* 80394A14 00391974 41 81 00 10 */ bgt lbl_80394A24 +/* 80394A18 00391978 40 82 00 20 */ bne lbl_80394A38 +/* 80394A1C 0039197C 7C 07 40 40 */ cmplw r7, r8 +/* 80394A20 00391980 40 81 00 18 */ ble lbl_80394A38 +lbl_80394A24: +/* 80394A24 00391984 28 07 00 00 */ cmplwi r7, 0 +/* 80394A28 00391988 40 82 00 08 */ bne lbl_80394A30 +/* 80394A2C 0039198C 38 84 FF FF */ addi r4, r4, -1 +lbl_80394A30: +/* 80394A30 00391990 38 E7 FF FF */ addi r7, r7, -1 +/* 80394A34 00391994 48 00 00 50 */ b lbl_80394A84 +lbl_80394A38: +/* 80394A38 00391998 34 E7 00 01 */ addic. r7, r7, 1 +/* 80394A3C 0039199C 40 82 00 48 */ bne lbl_80394A84 +/* 80394A40 003919A0 38 84 00 01 */ addi r4, r4, 1 +/* 80394A44 003919A4 48 00 00 40 */ b lbl_80394A84 +lbl_80394A48: +/* 80394A48 003919A8 2C 03 00 00 */ cmpwi r3, 0 +/* 80394A4C 003919AC 40 80 00 18 */ bge lbl_80394A64 +/* 80394A50 003919B0 7C 04 18 00 */ cmpw r4, r3 +/* 80394A54 003919B4 41 81 00 10 */ bgt lbl_80394A64 +/* 80394A58 003919B8 40 82 00 20 */ bne lbl_80394A78 +/* 80394A5C 003919BC 7C 07 40 40 */ cmplw r7, r8 +/* 80394A60 003919C0 40 81 00 18 */ ble lbl_80394A78 +lbl_80394A64: +/* 80394A64 003919C4 28 07 00 00 */ cmplwi r7, 0 +/* 80394A68 003919C8 40 82 00 08 */ bne lbl_80394A70 +/* 80394A6C 003919CC 38 84 FF FF */ addi r4, r4, -1 +lbl_80394A70: +/* 80394A70 003919D0 38 E7 FF FF */ addi r7, r7, -1 +/* 80394A74 003919D4 48 00 00 10 */ b lbl_80394A84 +lbl_80394A78: +/* 80394A78 003919D8 34 E7 00 01 */ addic. r7, r7, 1 +/* 80394A7C 003919DC 40 82 00 08 */ bne lbl_80394A84 +/* 80394A80 003919E0 38 84 00 01 */ addi r4, r4, 1 +lbl_80394A84: +/* 80394A84 003919E4 54 83 00 56 */ rlwinm r3, r4, 0, 1, 0xb +/* 80394A88 003919E8 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80394A8C 003919EC 7C 03 00 00 */ cmpw r3, r0 +/* 80394A90 003919F0 41 80 00 0C */ blt lbl_80394A9C +/* 80394A94 003919F4 FC 21 08 2A */ fadd f1, f1, f1 +/* 80394A98 003919F8 48 00 00 3C */ b lbl_80394AD4 +lbl_80394A9C: +/* 80394A9C 003919FC 3C 00 00 10 */ lis r0, 0x10 +/* 80394AA0 00391A00 7C 03 00 00 */ cmpw r3, r0 +/* 80394AA4 00391A04 40 80 00 24 */ bge lbl_80394AC8 +/* 80394AA8 00391A08 FC 01 00 72 */ fmul f0, f1, f1 +/* 80394AAC 00391A0C FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 80394AB0 00391A10 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 80394AB4 00391A14 41 82 00 14 */ beq lbl_80394AC8 +/* 80394AB8 00391A18 90 81 00 10 */ stw r4, 0x10(r1) +/* 80394ABC 00391A1C 90 E1 00 14 */ stw r7, 0x14(r1) +/* 80394AC0 00391A20 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80394AC4 00391A24 48 00 00 10 */ b lbl_80394AD4 +lbl_80394AC8: +/* 80394AC8 00391A28 90 81 00 08 */ stw r4, 8(r1) +/* 80394ACC 00391A2C 90 E1 00 0C */ stw r7, 0xc(r1) +/* 80394AD0 00391A30 C8 21 00 08 */ lfd f1, 8(r1) +lbl_80394AD4: +/* 80394AD4 00391A34 38 21 00 20 */ addi r1, r1, 0x20 +/* 80394AD8 00391A38 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_pow.s b/asm/Runtime/PPCEABI/H/s_pow.s new file mode 100644 index 00000000..3223f3c4 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_pow.s @@ -0,0 +1,14 @@ +.include "macros.inc" + +.section .text, "ax" + +.global pow +pow: +/* 80394CEC 00391C4C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80394CF0 00391C50 7C 08 02 A6 */ mflr r0 +/* 80394CF4 00391C54 90 01 00 14 */ stw r0, 0x14(r1) +/* 80394CF8 00391C58 4B FF D6 A9 */ bl __ieee754_pow +/* 80394CFC 00391C5C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80394D00 00391C60 7C 08 03 A6 */ mtlr r0 +/* 80394D04 00391C64 38 21 00 10 */ addi r1, r1, 0x10 +/* 80394D08 00391C68 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/s_sin.s b/asm/Runtime/PPCEABI/H/s_sin.s new file mode 100644 index 00000000..59518e28 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_sin.s @@ -0,0 +1,68 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sin +sin: +/* 80394ADC 00391A3C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80394AE0 00391A40 7C 08 02 A6 */ mflr r0 +/* 80394AE4 00391A44 3C 60 3F E9 */ lis r3, 0x3FE921FB@ha +/* 80394AE8 00391A48 D8 21 00 08 */ stfd f1, 8(r1) +/* 80394AEC 00391A4C 90 01 00 24 */ stw r0, 0x24(r1) +/* 80394AF0 00391A50 38 03 21 FB */ addi r0, r3, 0x3FE921FB@l +/* 80394AF4 00391A54 80 61 00 08 */ lwz r3, 8(r1) +/* 80394AF8 00391A58 54 63 00 7E */ clrlwi r3, r3, 1 +/* 80394AFC 00391A5C 7C 03 00 00 */ cmpw r3, r0 +/* 80394B00 00391A60 41 81 00 14 */ bgt lbl_80394B14 +/* 80394B04 00391A64 C8 42 D4 E0 */ lfd f2, lbl_805AF200@sda21(r2) +/* 80394B08 00391A68 38 60 00 00 */ li r3, 0 +/* 80394B0C 00391A6C 4B FF F4 09 */ bl __kernel_sin +/* 80394B10 00391A70 48 00 00 94 */ b lbl_80394BA4 +lbl_80394B14: +/* 80394B14 00391A74 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80394B18 00391A78 7C 03 00 00 */ cmpw r3, r0 +/* 80394B1C 00391A7C 41 80 00 0C */ blt lbl_80394B28 +/* 80394B20 00391A80 FC 21 08 28 */ fsub f1, f1, f1 +/* 80394B24 00391A84 48 00 00 80 */ b lbl_80394BA4 +lbl_80394B28: +/* 80394B28 00391A88 38 61 00 10 */ addi r3, r1, 0x10 +/* 80394B2C 00391A8C 4B FF E1 01 */ bl __ieee754_rem_pio2 +/* 80394B30 00391A90 54 60 07 BE */ clrlwi r0, r3, 0x1e +/* 80394B34 00391A94 2C 00 00 01 */ cmpwi r0, 1 +/* 80394B38 00391A98 41 82 00 34 */ beq lbl_80394B6C +/* 80394B3C 00391A9C 40 80 00 10 */ bge lbl_80394B4C +/* 80394B40 00391AA0 2C 00 00 00 */ cmpwi r0, 0 +/* 80394B44 00391AA4 40 80 00 14 */ bge lbl_80394B58 +/* 80394B48 00391AA8 48 00 00 4C */ b lbl_80394B94 +lbl_80394B4C: +/* 80394B4C 00391AAC 2C 00 00 03 */ cmpwi r0, 3 +/* 80394B50 00391AB0 40 80 00 44 */ bge lbl_80394B94 +/* 80394B54 00391AB4 48 00 00 28 */ b lbl_80394B7C +lbl_80394B58: +/* 80394B58 00391AB8 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80394B5C 00391ABC 38 60 00 01 */ li r3, 1 +/* 80394B60 00391AC0 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394B64 00391AC4 4B FF F3 B1 */ bl __kernel_sin +/* 80394B68 00391AC8 48 00 00 3C */ b lbl_80394BA4 +lbl_80394B6C: +/* 80394B6C 00391ACC C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80394B70 00391AD0 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394B74 00391AD4 4B FF E4 59 */ bl __kernel_cos +/* 80394B78 00391AD8 48 00 00 2C */ b lbl_80394BA4 +lbl_80394B7C: +/* 80394B7C 00391ADC C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80394B80 00391AE0 38 60 00 01 */ li r3, 1 +/* 80394B84 00391AE4 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394B88 00391AE8 4B FF F3 8D */ bl __kernel_sin +/* 80394B8C 00391AEC FC 20 08 50 */ fneg f1, f1 +/* 80394B90 00391AF0 48 00 00 14 */ b lbl_80394BA4 +lbl_80394B94: +/* 80394B94 00391AF4 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80394B98 00391AF8 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394B9C 00391AFC 4B FF E4 31 */ bl __kernel_cos +/* 80394BA0 00391B00 FC 20 08 50 */ fneg f1, f1 +lbl_80394BA4: +/* 80394BA4 00391B04 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80394BA8 00391B08 7C 08 03 A6 */ mtlr r0 +/* 80394BAC 00391B0C 38 21 00 20 */ addi r1, r1, 0x20 +/* 80394BB0 00391B10 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/s_tan.s b/asm/Runtime/PPCEABI/H/s_tan.s new file mode 100644 index 00000000..5ad315aa --- /dev/null +++ b/asm/Runtime/PPCEABI/H/s_tan.s @@ -0,0 +1,39 @@ +.include "macros.inc" + +.section .text, "ax" + +.global tan +tan: +/* 80394BB4 00391B14 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80394BB8 00391B18 7C 08 02 A6 */ mflr r0 +/* 80394BBC 00391B1C 3C 60 3F E9 */ lis r3, 0x3FE921FB@ha +/* 80394BC0 00391B20 D8 21 00 08 */ stfd f1, 8(r1) +/* 80394BC4 00391B24 90 01 00 24 */ stw r0, 0x24(r1) +/* 80394BC8 00391B28 38 03 21 FB */ addi r0, r3, 0x3FE921FB@l +/* 80394BCC 00391B2C 80 61 00 08 */ lwz r3, 8(r1) +/* 80394BD0 00391B30 54 63 00 7E */ clrlwi r3, r3, 1 +/* 80394BD4 00391B34 7C 03 00 00 */ cmpw r3, r0 +/* 80394BD8 00391B38 41 81 00 14 */ bgt lbl_80394BEC +/* 80394BDC 00391B3C C8 42 D4 E8 */ lfd f2, lbl_805AF208@sda21(r2) +/* 80394BE0 00391B40 38 60 00 01 */ li r3, 1 +/* 80394BE4 00391B44 4B FF F3 D1 */ bl __kernel_tan +/* 80394BE8 00391B48 48 00 00 34 */ b lbl_80394C1C +lbl_80394BEC: +/* 80394BEC 00391B4C 3C 00 7F F0 */ lis r0, 0x7ff0 +/* 80394BF0 00391B50 7C 03 00 00 */ cmpw r3, r0 +/* 80394BF4 00391B54 41 80 00 0C */ blt lbl_80394C00 +/* 80394BF8 00391B58 FC 21 08 28 */ fsub f1, f1, f1 +/* 80394BFC 00391B5C 48 00 00 20 */ b lbl_80394C1C +lbl_80394C00: +/* 80394C00 00391B60 38 61 00 10 */ addi r3, r1, 0x10 +/* 80394C04 00391B64 4B FF E0 29 */ bl __ieee754_rem_pio2 +/* 80394C08 00391B68 54 60 0F BC */ rlwinm r0, r3, 1, 0x1e, 0x1e +/* 80394C0C 00391B6C C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80394C10 00391B70 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 80394C14 00391B74 20 60 00 01 */ subfic r3, r0, 1 +/* 80394C18 00391B78 4B FF F3 9D */ bl __kernel_tan +lbl_80394C1C: +/* 80394C1C 00391B7C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80394C20 00391B80 7C 08 03 A6 */ mtlr r0 +/* 80394C24 00391B84 38 21 00 20 */ addi r1, r1, 0x20 +/* 80394C28 00391B88 4E 80 00 20 */ blr \ No newline at end of file diff --git a/asm/Runtime/PPCEABI/H/sscanf.s b/asm/Runtime/PPCEABI/H/sscanf.s new file mode 100644 index 00000000..93f80c25 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/sscanf.s @@ -0,0 +1,50 @@ +.include "macros.inc" + +.section .text, "ax" + +.global __StringRead +__StringRead: +/* 8038FE9C 0038CDFC 2C 05 00 01 */ cmpwi r5, 1 +/* 8038FEA0 0038CE00 7C 66 1B 78 */ mr r6, r3 +/* 8038FEA4 0038CE04 41 82 00 4C */ beq lbl_8038FEF0 +/* 8038FEA8 0038CE08 40 80 00 10 */ bge lbl_8038FEB8 +/* 8038FEAC 0038CE0C 2C 05 00 00 */ cmpwi r5, 0 +/* 8038FEB0 0038CE10 40 80 00 14 */ bge lbl_8038FEC4 +/* 8038FEB4 0038CE14 48 00 00 70 */ b lbl_8038FF24 +lbl_8038FEB8: +/* 8038FEB8 0038CE18 2C 05 00 03 */ cmpwi r5, 3 +/* 8038FEBC 0038CE1C 40 80 00 68 */ bge lbl_8038FF24 +/* 8038FEC0 0038CE20 48 00 00 5C */ b lbl_8038FF1C +lbl_8038FEC4: +/* 8038FEC4 0038CE24 80 86 00 00 */ lwz r4, 0(r6) +/* 8038FEC8 0038CE28 88 64 00 00 */ lbz r3, 0(r4) +/* 8038FECC 0038CE2C 7C 60 07 75 */ extsb. r0, r3 +/* 8038FED0 0038CE30 40 82 00 14 */ bne lbl_8038FEE4 +/* 8038FED4 0038CE34 38 00 00 01 */ li r0, 1 +/* 8038FED8 0038CE38 38 60 FF FF */ li r3, -1 +/* 8038FEDC 0038CE3C 90 06 00 04 */ stw r0, 4(r6) +/* 8038FEE0 0038CE40 4E 80 00 20 */ blr +lbl_8038FEE4: +/* 8038FEE4 0038CE44 38 04 00 01 */ addi r0, r4, 1 +/* 8038FEE8 0038CE48 90 06 00 00 */ stw r0, 0(r6) +/* 8038FEEC 0038CE4C 4E 80 00 20 */ blr +lbl_8038FEF0: +/* 8038FEF0 0038CE50 80 06 00 04 */ lwz r0, 4(r6) +/* 8038FEF4 0038CE54 2C 00 00 00 */ cmpwi r0, 0 +/* 8038FEF8 0038CE58 40 82 00 14 */ bne lbl_8038FF0C +/* 8038FEFC 0038CE5C 80 66 00 00 */ lwz r3, 0(r6) +/* 8038FF00 0038CE60 38 03 FF FF */ addi r0, r3, -1 +/* 8038FF04 0038CE64 90 06 00 00 */ stw r0, 0(r6) +/* 8038FF08 0038CE68 48 00 00 0C */ b lbl_8038FF14 +lbl_8038FF0C: +/* 8038FF0C 0038CE6C 38 00 00 00 */ li r0, 0 +/* 8038FF10 0038CE70 90 06 00 04 */ stw r0, 4(r6) +lbl_8038FF14: +/* 8038FF14 0038CE74 7C 83 23 78 */ mr r3, r4 +/* 8038FF18 0038CE78 4E 80 00 20 */ blr +lbl_8038FF1C: +/* 8038FF1C 0038CE7C 80 66 00 04 */ lwz r3, 4(r6) +/* 8038FF20 0038CE80 4E 80 00 20 */ blr +lbl_8038FF24: +/* 8038FF24 0038CE84 38 60 00 00 */ li r3, 0 +/* 8038FF28 0038CE88 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/string.s b/asm/Runtime/PPCEABI/H/string.s new file mode 100644 index 00000000..8acffcd0 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/string.s @@ -0,0 +1,223 @@ +.include "macros.inc" + +.section .text, "ax" + +.global strchr +strchr: +/* 8038FF2C 0038CE8C 38 63 FF FF */ addi r3, r3, -1 +/* 8038FF30 0038CE90 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 8038FF34 0038CE94 48 00 00 0C */ b lbl_8038FF40 +lbl_8038FF38: +/* 8038FF38 0038CE98 7C 04 00 40 */ cmplw r4, r0 +/* 8038FF3C 0038CE9C 4D 82 00 20 */ beqlr +lbl_8038FF40: +/* 8038FF40 0038CEA0 8C 83 00 01 */ lbzu r4, 1(r3) +/* 8038FF44 0038CEA4 28 04 00 00 */ cmplwi r4, 0 +/* 8038FF48 0038CEA8 40 82 FF F0 */ bne lbl_8038FF38 +/* 8038FF4C 0038CEAC 28 00 00 00 */ cmplwi r0, 0 +/* 8038FF50 0038CEB0 4D 82 00 20 */ beqlr +/* 8038FF54 0038CEB4 38 60 00 00 */ li r3, 0 +/* 8038FF58 0038CEB8 4E 80 00 20 */ blr + +.global strncmp +strncmp: +/* 8038FF5C 0038CEBC 38 63 FF FF */ addi r3, r3, -1 +/* 8038FF60 0038CEC0 38 84 FF FF */ addi r4, r4, -1 +/* 8038FF64 0038CEC4 38 C5 00 01 */ addi r6, r5, 1 +/* 8038FF68 0038CEC8 48 00 00 24 */ b lbl_8038FF8C +lbl_8038FF6C: +/* 8038FF6C 0038CECC 8C 03 00 01 */ lbzu r0, 1(r3) +/* 8038FF70 0038CED0 8C A4 00 01 */ lbzu r5, 1(r4) +/* 8038FF74 0038CED4 7C 00 28 40 */ cmplw r0, r5 +/* 8038FF78 0038CED8 41 82 00 0C */ beq lbl_8038FF84 +/* 8038FF7C 0038CEDC 7C 65 00 50 */ subf r3, r5, r0 +/* 8038FF80 0038CEE0 4E 80 00 20 */ blr +lbl_8038FF84: +/* 8038FF84 0038CEE4 28 00 00 00 */ cmplwi r0, 0 +/* 8038FF88 0038CEE8 41 82 00 0C */ beq lbl_8038FF94 +lbl_8038FF8C: +/* 8038FF8C 0038CEEC 34 C6 FF FF */ addic. r6, r6, -1 +/* 8038FF90 0038CEF0 40 82 FF DC */ bne lbl_8038FF6C +lbl_8038FF94: +/* 8038FF94 0038CEF4 38 60 00 00 */ li r3, 0 +/* 8038FF98 0038CEF8 4E 80 00 20 */ blr + +.global strcmp +strcmp: +/* 8038FF9C 0038CEFC 88 A3 00 00 */ lbz r5, 0(r3) +/* 8038FFA0 0038CF00 88 04 00 00 */ lbz r0, 0(r4) +/* 8038FFA4 0038CF04 7C 00 28 51 */ subf. r0, r0, r5 +/* 8038FFA8 0038CF08 41 82 00 0C */ beq lbl_8038FFB4 +/* 8038FFAC 0038CF0C 7C 03 03 78 */ mr r3, r0 +/* 8038FFB0 0038CF10 4E 80 00 20 */ blr +lbl_8038FFB4: +/* 8038FFB4 0038CF14 54 80 07 BE */ clrlwi r0, r4, 0x1e +/* 8038FFB8 0038CF18 54 66 07 BE */ clrlwi r6, r3, 0x1e +/* 8038FFBC 0038CF1C 7C 00 30 40 */ cmplw r0, r6 +/* 8038FFC0 0038CF20 40 82 00 CC */ bne lbl_8039008C +/* 8038FFC4 0038CF24 28 06 00 00 */ cmplwi r6, 0 +/* 8038FFC8 0038CF28 41 82 00 58 */ beq lbl_80390020 +/* 8038FFCC 0038CF2C 28 05 00 00 */ cmplwi r5, 0 +/* 8038FFD0 0038CF30 40 82 00 0C */ bne lbl_8038FFDC +/* 8038FFD4 0038CF34 38 60 00 00 */ li r3, 0 +/* 8038FFD8 0038CF38 4E 80 00 20 */ blr +lbl_8038FFDC: +/* 8038FFDC 0038CF3C 20 06 00 03 */ subfic r0, r6, 3 +/* 8038FFE0 0038CF40 7C 09 03 A6 */ mtctr r0 +/* 8038FFE4 0038CF44 28 00 00 00 */ cmplwi r0, 0 +/* 8038FFE8 0038CF48 41 82 00 30 */ beq lbl_80390018 +lbl_8038FFEC: +/* 8038FFEC 0038CF4C 8C A3 00 01 */ lbzu r5, 1(r3) +/* 8038FFF0 0038CF50 8C 04 00 01 */ lbzu r0, 1(r4) +/* 8038FFF4 0038CF54 7C 00 28 51 */ subf. r0, r0, r5 +/* 8038FFF8 0038CF58 41 82 00 0C */ beq lbl_80390004 +/* 8038FFFC 0038CF5C 7C 03 03 78 */ mr r3, r0 +/* 80390000 0038CF60 4E 80 00 20 */ blr +lbl_80390004: +/* 80390004 0038CF64 28 05 00 00 */ cmplwi r5, 0 +/* 80390008 0038CF68 40 82 00 0C */ bne lbl_80390014 +/* 8039000C 0038CF6C 38 60 00 00 */ li r3, 0 +/* 80390010 0038CF70 4E 80 00 20 */ blr +lbl_80390014: +/* 80390014 0038CF74 42 00 FF D8 */ bdnz lbl_8038FFEC +lbl_80390018: +/* 80390018 0038CF78 38 63 00 01 */ addi r3, r3, 1 +/* 8039001C 0038CF7C 38 84 00 01 */ addi r4, r4, 1 +lbl_80390020: +/* 80390020 0038CF80 80 E3 00 00 */ lwz r7, 0(r3) +/* 80390024 0038CF84 3C A0 80 81 */ lis r5, 0x80808080@ha +/* 80390028 0038CF88 38 C5 80 80 */ addi r6, r5, 0x80808080@l +/* 8039002C 0038CF8C 81 04 00 00 */ lwz r8, 0(r4) +/* 80390030 0038CF90 3C A7 FE FF */ addis r5, r7, 0xfeff +/* 80390034 0038CF94 38 05 FE FF */ addi r0, r5, -257 +/* 80390038 0038CF98 7C 00 30 39 */ and. r0, r0, r6 +/* 8039003C 0038CF9C 40 82 00 38 */ bne lbl_80390074 +/* 80390040 0038CFA0 48 00 00 1C */ b lbl_8039005C +lbl_80390044: +/* 80390044 0038CFA4 84 E3 00 04 */ lwzu r7, 4(r3) +/* 80390048 0038CFA8 85 04 00 04 */ lwzu r8, 4(r4) +/* 8039004C 0038CFAC 3C A7 FE FF */ addis r5, r7, 0xfeff +/* 80390050 0038CFB0 38 05 FE FF */ addi r0, r5, -257 +/* 80390054 0038CFB4 7C 00 30 39 */ and. r0, r0, r6 +/* 80390058 0038CFB8 40 82 00 1C */ bne lbl_80390074 +lbl_8039005C: +/* 8039005C 0038CFBC 7C 07 40 40 */ cmplw r7, r8 +/* 80390060 0038CFC0 41 82 FF E4 */ beq lbl_80390044 +/* 80390064 0038CFC4 38 60 FF FF */ li r3, -1 +/* 80390068 0038CFC8 4C 81 00 20 */ blelr +/* 8039006C 0038CFCC 38 60 00 01 */ li r3, 1 +/* 80390070 0038CFD0 4E 80 00 20 */ blr +lbl_80390074: +/* 80390074 0038CFD4 88 A3 00 00 */ lbz r5, 0(r3) +/* 80390078 0038CFD8 88 04 00 00 */ lbz r0, 0(r4) +/* 8039007C 0038CFDC 7C 00 28 51 */ subf. r0, r0, r5 +/* 80390080 0038CFE0 41 82 00 0C */ beq lbl_8039008C +/* 80390084 0038CFE4 7C 03 03 78 */ mr r3, r0 +/* 80390088 0038CFE8 4E 80 00 20 */ blr +lbl_8039008C: +/* 8039008C 0038CFEC 28 05 00 00 */ cmplwi r5, 0 +/* 80390090 0038CFF0 40 82 00 0C */ bne lbl_8039009C +/* 80390094 0038CFF4 38 60 00 00 */ li r3, 0 +/* 80390098 0038CFF8 4E 80 00 20 */ blr +lbl_8039009C: +/* 8039009C 0038CFFC 8C A3 00 01 */ lbzu r5, 1(r3) +/* 803900A0 0038D000 8C 04 00 01 */ lbzu r0, 1(r4) +/* 803900A4 0038D004 7C 00 28 51 */ subf. r0, r0, r5 +/* 803900A8 0038D008 41 82 00 0C */ beq lbl_803900B4 +/* 803900AC 0038D00C 7C 03 03 78 */ mr r3, r0 +/* 803900B0 0038D010 4E 80 00 20 */ blr +lbl_803900B4: +/* 803900B4 0038D014 28 05 00 00 */ cmplwi r5, 0 +/* 803900B8 0038D018 40 82 FF E4 */ bne lbl_8039009C +/* 803900BC 0038D01C 38 60 00 00 */ li r3, 0 +/* 803900C0 0038D020 4E 80 00 20 */ blr + +.global strncpy +strncpy: +/* 803900C4 0038D024 38 84 FF FF */ addi r4, r4, -1 +/* 803900C8 0038D028 38 C3 FF FF */ addi r6, r3, -1 +/* 803900CC 0038D02C 38 A5 00 01 */ addi r5, r5, 1 +/* 803900D0 0038D030 48 00 00 2C */ b lbl_803900FC +lbl_803900D4: +/* 803900D4 0038D034 8C 04 00 01 */ lbzu r0, 1(r4) +/* 803900D8 0038D038 28 00 00 00 */ cmplwi r0, 0 +/* 803900DC 0038D03C 9C 06 00 01 */ stbu r0, 1(r6) +/* 803900E0 0038D040 40 82 00 1C */ bne lbl_803900FC +/* 803900E4 0038D044 38 00 00 00 */ li r0, 0 +/* 803900E8 0038D048 48 00 00 08 */ b lbl_803900F0 +lbl_803900EC: +/* 803900EC 0038D04C 9C 06 00 01 */ stbu r0, 1(r6) +lbl_803900F0: +/* 803900F0 0038D050 34 A5 FF FF */ addic. r5, r5, -1 +/* 803900F4 0038D054 40 82 FF F8 */ bne lbl_803900EC +/* 803900F8 0038D058 4E 80 00 20 */ blr +lbl_803900FC: +/* 803900FC 0038D05C 34 A5 FF FF */ addic. r5, r5, -1 +/* 80390100 0038D060 40 82 FF D4 */ bne lbl_803900D4 +/* 80390104 0038D064 4E 80 00 20 */ blr + +.global strcpy +strcpy: +/* 80390108 0038D068 54 60 07 BE */ clrlwi r0, r3, 0x1e +/* 8039010C 0038D06C 54 85 07 BE */ clrlwi r5, r4, 0x1e +/* 80390110 0038D070 7C 00 28 40 */ cmplw r0, r5 +/* 80390114 0038D074 7C 67 1B 78 */ mr r7, r3 +/* 80390118 0038D078 40 82 00 84 */ bne lbl_8039019C +/* 8039011C 0038D07C 28 05 00 00 */ cmplwi r5, 0 +/* 80390120 0038D080 41 82 00 40 */ beq lbl_80390160 +/* 80390124 0038D084 88 04 00 00 */ lbz r0, 0(r4) +/* 80390128 0038D088 28 00 00 00 */ cmplwi r0, 0 +/* 8039012C 0038D08C 98 07 00 00 */ stb r0, 0(r7) +/* 80390130 0038D090 4D 82 00 20 */ beqlr +/* 80390134 0038D094 20 05 00 03 */ subfic r0, r5, 3 +/* 80390138 0038D098 7C 09 03 A6 */ mtctr r0 +/* 8039013C 0038D09C 28 00 00 00 */ cmplwi r0, 0 +/* 80390140 0038D0A0 41 82 00 18 */ beq lbl_80390158 +lbl_80390144: +/* 80390144 0038D0A4 8C 04 00 01 */ lbzu r0, 1(r4) +/* 80390148 0038D0A8 28 00 00 00 */ cmplwi r0, 0 +/* 8039014C 0038D0AC 9C 07 00 01 */ stbu r0, 1(r7) +/* 80390150 0038D0B0 4D 82 00 20 */ beqlr +/* 80390154 0038D0B4 42 00 FF F0 */ bdnz lbl_80390144 +lbl_80390158: +/* 80390158 0038D0B8 38 E7 00 01 */ addi r7, r7, 1 +/* 8039015C 0038D0BC 38 84 00 01 */ addi r4, r4, 1 +lbl_80390160: +/* 80390160 0038D0C0 81 04 00 00 */ lwz r8, 0(r4) +/* 80390164 0038D0C4 3C A0 80 81 */ lis r5, 0x80808080@ha +/* 80390168 0038D0C8 38 C5 80 80 */ addi r6, r5, 0x80808080@l +/* 8039016C 0038D0CC 3C A8 FE FF */ addis r5, r8, 0xfeff +/* 80390170 0038D0D0 38 05 FE FF */ addi r0, r5, -257 +/* 80390174 0038D0D4 7C 00 30 39 */ and. r0, r0, r6 +/* 80390178 0038D0D8 40 82 00 24 */ bne lbl_8039019C +/* 8039017C 0038D0DC 38 E7 FF FC */ addi r7, r7, -4 +lbl_80390180: +/* 80390180 0038D0E0 95 07 00 04 */ stwu r8, 4(r7) +/* 80390184 0038D0E4 85 04 00 04 */ lwzu r8, 4(r4) +/* 80390188 0038D0E8 3C A8 FE FF */ addis r5, r8, 0xfeff +/* 8039018C 0038D0EC 38 05 FE FF */ addi r0, r5, -257 +/* 80390190 0038D0F0 7C 00 30 39 */ and. r0, r0, r6 +/* 80390194 0038D0F4 41 82 FF EC */ beq lbl_80390180 +/* 80390198 0038D0F8 38 E7 00 04 */ addi r7, r7, 4 +lbl_8039019C: +/* 8039019C 0038D0FC 88 04 00 00 */ lbz r0, 0(r4) +/* 803901A0 0038D100 28 00 00 00 */ cmplwi r0, 0 +/* 803901A4 0038D104 98 07 00 00 */ stb r0, 0(r7) +/* 803901A8 0038D108 4D 82 00 20 */ beqlr +lbl_803901AC: +/* 803901AC 0038D10C 8C 04 00 01 */ lbzu r0, 1(r4) +/* 803901B0 0038D110 28 00 00 00 */ cmplwi r0, 0 +/* 803901B4 0038D114 9C 07 00 01 */ stbu r0, 1(r7) +/* 803901B8 0038D118 40 82 FF F4 */ bne lbl_803901AC +/* 803901BC 0038D11C 4E 80 00 20 */ blr + +.global strlen +strlen: +/* 803901C0 0038D120 38 83 FF FF */ addi r4, r3, -1 +/* 803901C4 0038D124 38 60 FF FF */ li r3, -1 +lbl_803901C8: +/* 803901C8 0038D128 8C 04 00 01 */ lbzu r0, 1(r4) +/* 803901CC 0038D12C 38 63 00 01 */ addi r3, r3, 1 +/* 803901D0 0038D130 28 00 00 00 */ cmplwi r0, 0 +/* 803901D4 0038D134 40 82 FF F4 */ bne lbl_803901C8 +/* 803901D8 0038D138 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/strtold.s b/asm/Runtime/PPCEABI/H/strtold.s new file mode 100644 index 00000000..7a5f57b3 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/strtold.s @@ -0,0 +1,1214 @@ +.include "macros.inc" + +.section .text, "ax" + +.global atof +atof: +/* 803901DC 0038D13C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803901E0 0038D140 7C 08 02 A6 */ mflr r0 +/* 803901E4 0038D144 3C 80 80 39 */ lis r4, __StringRead@ha +/* 803901E8 0038D148 90 01 00 24 */ stw r0, 0x24(r1) +/* 803901EC 0038D14C 38 00 00 00 */ li r0, 0 +/* 803901F0 0038D150 38 84 FE 9C */ addi r4, r4, __StringRead@l +/* 803901F4 0038D154 38 A1 00 10 */ addi r5, r1, 0x10 +/* 803901F8 0038D158 90 61 00 10 */ stw r3, 0x10(r1) +/* 803901FC 0038D15C 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha +/* 80390200 0038D160 38 63 FF FF */ addi r3, r3, 0x7FFFFFFF@l +/* 80390204 0038D164 38 C1 00 08 */ addi r6, r1, 8 +/* 80390208 0038D168 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039020C 0038D16C 38 E1 00 0C */ addi r7, r1, 0xc +/* 80390210 0038D170 48 00 00 59 */ bl __strtold +/* 80390214 0038D174 80 01 00 0C */ lwz r0, 0xc(r1) +/* 80390218 0038D178 FC 40 0A 10 */ fabs f2, f1 +/* 8039021C 0038D17C 2C 00 00 00 */ cmpwi r0, 0 +/* 80390220 0038D180 40 82 00 30 */ bne lbl_80390250 +/* 80390224 0038D184 C8 02 CF 88 */ lfd f0, lbl_805AECA8@sda21(r2) +/* 80390228 0038D188 FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 8039022C 0038D18C 41 82 00 2C */ beq lbl_80390258 +/* 80390230 0038D190 3C 60 80 5B */ lis r3, lbl_805A8BA8@ha +/* 80390234 0038D194 C8 03 8B A8 */ lfd f0, lbl_805A8BA8@l(r3) +/* 80390238 0038D198 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 8039023C 0038D19C 41 80 00 14 */ blt lbl_80390250 +/* 80390240 0038D1A0 3C 60 80 5B */ lis r3, lbl_805A8BB0@ha +/* 80390244 0038D1A4 C8 03 8B B0 */ lfd f0, lbl_805A8BB0@l(r3) +/* 80390248 0038D1A8 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 8039024C 0038D1AC 40 81 00 0C */ ble lbl_80390258 +lbl_80390250: +/* 80390250 0038D1B0 38 00 00 22 */ li r0, 0x22 +/* 80390254 0038D1B4 90 0D AE 10 */ stw r0, lbl_805A99D0@sda21(r13) +lbl_80390258: +/* 80390258 0038D1B8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039025C 0038D1BC 7C 08 03 A6 */ mtlr r0 +/* 80390260 0038D1C0 38 21 00 20 */ addi r1, r1, 0x20 +/* 80390264 0038D1C4 4E 80 00 20 */ blr + +.global __strtold +__strtold: +/* 80390268 0038D1C8 94 21 FF 50 */ stwu r1, -0xb0(r1) +/* 8039026C 0038D1CC 7C 08 02 A6 */ mflr r0 +/* 80390270 0038D1D0 3D 00 80 3E */ lis r8, lbl_803D86E8@ha +/* 80390274 0038D1D4 90 01 00 B4 */ stw r0, 0xb4(r1) +/* 80390278 0038D1D8 38 00 00 00 */ li r0, 0 +/* 8039027C 0038D1DC BD C1 00 68 */ stmw r14, 0x68(r1) +/* 80390280 0038D1E0 3A E8 86 E8 */ addi r23, r8, lbl_803D86E8@l +/* 80390284 0038D1E4 7C 90 23 78 */ mr r16, r4 +/* 80390288 0038D1E8 3C 80 80 3F */ lis r4, lbl_803F2D20@ha +/* 8039028C 0038D1EC 39 C4 2D 20 */ addi r14, r4, lbl_803F2D20@l +/* 80390290 0038D1F0 7C B1 2B 78 */ mr r17, r5 +/* 80390294 0038D1F4 7C F2 3B 78 */ mr r18, r7 +/* 80390298 0038D1F8 90 C1 00 0C */ stw r6, 0xc(r1) +/* 8039029C 0038D1FC 7E 0C 83 78 */ mr r12, r16 +/* 803902A0 0038D200 3B 41 00 18 */ addi r26, r1, 0x18 +/* 803902A4 0038D204 90 61 00 08 */ stw r3, 8(r1) +/* 803902A8 0038D208 7E 23 8B 78 */ mr r3, r17 +/* 803902AC 0038D20C 39 E0 00 01 */ li r15, 1 +/* 803902B0 0038D210 3B E0 00 00 */ li r31, 0 +/* 803902B4 0038D214 3B A0 00 00 */ li r29, 0 +/* 803902B8 0038D218 3B 80 00 00 */ li r28, 0 +/* 803902BC 0038D21C 3B 60 00 00 */ li r27, 0 +/* 803902C0 0038D220 3B 00 00 00 */ li r24, 0 +/* 803902C4 0038D224 82 D7 00 00 */ lwz r22, 0(r23) +/* 803902C8 0038D228 82 97 00 04 */ lwz r20, 4(r23) +/* 803902CC 0038D22C 82 B7 00 08 */ lwz r21, 8(r23) +/* 803902D0 0038D230 80 97 00 0C */ lwz r4, 0xc(r23) +/* 803902D4 0038D234 80 B7 00 10 */ lwz r5, 0x10(r23) +/* 803902D8 0038D238 82 77 00 14 */ lwz r19, 0x14(r23) +/* 803902DC 0038D23C 81 77 00 18 */ lwz r11, 0x18(r23) +/* 803902E0 0038D240 81 57 00 1C */ lwz r10, 0x1c(r23) +/* 803902E4 0038D244 81 37 00 20 */ lwz r9, 0x20(r23) +/* 803902E8 0038D248 81 17 00 24 */ lwz r8, 0x24(r23) +/* 803902EC 0038D24C A0 F7 00 28 */ lhz r7, 0x28(r23) +/* 803902F0 0038D250 3A E0 00 00 */ li r23, 0 +/* 803902F4 0038D254 92 C1 00 2C */ stw r22, 0x2c(r1) +/* 803902F8 0038D258 3A C0 00 00 */ li r22, 0 +/* 803902FC 0038D25C 80 CE 00 00 */ lwz r6, 0(r14) +/* 80390300 0038D260 39 C0 00 00 */ li r14, 0 +/* 80390304 0038D264 92 81 00 30 */ stw r20, 0x30(r1) +/* 80390308 0038D268 3A 80 00 00 */ li r20, 0 +/* 8039030C 0038D26C 90 81 00 38 */ stw r4, 0x38(r1) +/* 80390310 0038D270 38 80 00 00 */ li r4, 0 +/* 80390314 0038D274 90 A1 00 3C */ stw r5, 0x3c(r1) +/* 80390318 0038D278 38 A0 00 00 */ li r5, 0 +/* 8039031C 0038D27C 92 81 00 60 */ stw r20, 0x60(r1) +/* 80390320 0038D280 3A 80 00 00 */ li r20, 0 +/* 80390324 0038D284 92 81 00 5C */ stw r20, 0x5c(r1) +/* 80390328 0038D288 3A 80 00 00 */ li r20, 0 +/* 8039032C 0038D28C 92 A1 00 34 */ stw r21, 0x34(r1) +/* 80390330 0038D290 92 61 00 40 */ stw r19, 0x40(r1) +/* 80390334 0038D294 91 61 00 44 */ stw r11, 0x44(r1) +/* 80390338 0038D298 91 41 00 48 */ stw r10, 0x48(r1) +/* 8039033C 0038D29C 91 21 00 4C */ stw r9, 0x4c(r1) +/* 80390340 0038D2A0 91 01 00 50 */ stw r8, 0x50(r1) +/* 80390344 0038D2A4 B0 E1 00 54 */ sth r7, 0x54(r1) +/* 80390348 0038D2A8 8A A6 00 00 */ lbz r21, 0(r6) +/* 8039034C 0038D2AC 92 81 00 58 */ stw r20, 0x58(r1) +/* 80390350 0038D2B0 90 12 00 00 */ stw r0, 0(r18) +/* 80390354 0038D2B4 7D 89 03 A6 */ mtctr r12 +/* 80390358 0038D2B8 3B C0 00 01 */ li r30, 1 +/* 8039035C 0038D2BC 4E 80 04 21 */ bctrl +/* 80390360 0038D2C0 7C 64 1B 78 */ mr r4, r3 +/* 80390364 0038D2C4 48 00 0C 48 */ b lbl_80390FAC +lbl_80390368: +/* 80390368 0038D2C8 2C 0F 00 80 */ cmpwi r15, 0x80 +/* 8039036C 0038D2CC 41 82 06 7C */ beq lbl_803909E8 +/* 80390370 0038D2D0 40 80 00 5C */ bge lbl_803903CC +/* 80390374 0038D2D4 2C 0F 00 08 */ cmpwi r15, 8 +/* 80390378 0038D2D8 41 82 04 D8 */ beq lbl_80390850 +/* 8039037C 0038D2DC 40 80 00 2C */ bge lbl_803903A8 +/* 80390380 0038D2E0 2C 0F 00 03 */ cmpwi r15, 3 +/* 80390384 0038D2E4 41 82 0C 28 */ beq lbl_80390FAC +/* 80390388 0038D2E8 40 80 00 14 */ bge lbl_8039039C +/* 8039038C 0038D2EC 2C 0F 00 01 */ cmpwi r15, 1 +/* 80390390 0038D2F0 41 82 00 8C */ beq lbl_8039041C +/* 80390394 0038D2F4 40 80 03 C8 */ bge lbl_8039075C +/* 80390398 0038D2F8 48 00 0C 14 */ b lbl_80390FAC +lbl_8039039C: +/* 8039039C 0038D2FC 2C 0F 00 05 */ cmpwi r15, 5 +/* 803903A0 0038D300 40 80 0C 0C */ bge lbl_80390FAC +/* 803903A4 0038D304 48 00 04 78 */ b lbl_8039081C +lbl_803903A8: +/* 803903A8 0038D308 2C 0F 00 20 */ cmpwi r15, 0x20 +/* 803903AC 0038D30C 41 82 05 68 */ beq lbl_80390914 +/* 803903B0 0038D310 40 80 00 10 */ bge lbl_803903C0 +/* 803903B4 0038D314 2C 0F 00 10 */ cmpwi r15, 0x10 +/* 803903B8 0038D318 41 82 05 34 */ beq lbl_803908EC +/* 803903BC 0038D31C 48 00 0B F0 */ b lbl_80390FAC +lbl_803903C0: +/* 803903C0 0038D320 2C 0F 00 40 */ cmpwi r15, 0x40 +/* 803903C4 0038D324 41 82 05 CC */ beq lbl_80390990 +/* 803903C8 0038D328 48 00 0B E4 */ b lbl_80390FAC +lbl_803903CC: +/* 803903CC 0038D32C 2C 0F 20 00 */ cmpwi r15, 0x2000 +/* 803903D0 0038D330 41 82 02 48 */ beq lbl_80390618 +/* 803903D4 0038D334 40 80 00 28 */ bge lbl_803903FC +/* 803903D8 0038D338 2C 0F 02 00 */ cmpwi r15, 0x200 +/* 803903DC 0038D33C 41 82 06 C8 */ beq lbl_80390AA4 +/* 803903E0 0038D340 40 80 00 10 */ bge lbl_803903F0 +/* 803903E4 0038D344 2C 0F 01 00 */ cmpwi r15, 0x100 +/* 803903E8 0038D348 41 82 06 64 */ beq lbl_80390A4C +/* 803903EC 0038D34C 48 00 0B C0 */ b lbl_80390FAC +lbl_803903F0: +/* 803903F0 0038D350 2C 0F 04 00 */ cmpwi r15, 0x400 +/* 803903F4 0038D354 41 82 06 E4 */ beq lbl_80390AD8 +/* 803903F8 0038D358 48 00 0B B4 */ b lbl_80390FAC +lbl_803903FC: +/* 803903FC 0038D35C 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 80390400 0038D360 38 03 80 00 */ addi r0, r3, 0x00008000@l +/* 80390404 0038D364 7C 0F 00 00 */ cmpw r15, r0 +/* 80390408 0038D368 41 82 07 30 */ beq lbl_80390B38 +/* 8039040C 0038D36C 40 80 0B A0 */ bge lbl_80390FAC +/* 80390410 0038D370 2C 0F 40 00 */ cmpwi r15, 0x4000 +/* 80390414 0038D374 41 82 01 24 */ beq lbl_80390538 +/* 80390418 0038D378 48 00 0B 94 */ b lbl_80390FAC +lbl_8039041C: +/* 8039041C 0038D37C 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390420 0038D380 54 85 06 3E */ clrlwi r5, r4, 0x18 +/* 80390424 0038D384 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390428 0038D388 7C 03 28 AE */ lbzx r0, r3, r5 +/* 8039042C 0038D38C 54 00 07 7D */ rlwinm. r0, r0, 0, 0x1d, 0x1e +/* 80390430 0038D390 41 82 00 28 */ beq lbl_80390458 +/* 80390434 0038D394 7E 0C 83 78 */ mr r12, r16 +/* 80390438 0038D398 7E 23 8B 78 */ mr r3, r17 +/* 8039043C 0038D39C 38 80 00 00 */ li r4, 0 +/* 80390440 0038D3A0 38 A0 00 00 */ li r5, 0 +/* 80390444 0038D3A4 7D 89 03 A6 */ mtctr r12 +/* 80390448 0038D3A8 4E 80 04 21 */ bctrl +/* 8039044C 0038D3AC 7C 64 1B 78 */ mr r4, r3 +/* 80390450 0038D3B0 3B BD 00 01 */ addi r29, r29, 1 +/* 80390454 0038D3B4 48 00 0B 58 */ b lbl_80390FAC +lbl_80390458: +/* 80390458 0038D3B8 2C 04 FF FF */ cmpwi r4, -1 +/* 8039045C 0038D3BC 40 82 00 0C */ bne lbl_80390468 +/* 80390460 0038D3C0 38 00 FF FF */ li r0, -1 +/* 80390464 0038D3C4 48 00 00 10 */ b lbl_80390474 +lbl_80390468: +/* 80390468 0038D3C8 3C 60 80 3F */ lis r3, lbl_803F2C20@ha +/* 8039046C 0038D3CC 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l +/* 80390470 0038D3D0 7C 03 28 AE */ lbzx r0, r3, r5 +lbl_80390474: +/* 80390474 0038D3D4 2C 00 00 49 */ cmpwi r0, 0x49 +/* 80390478 0038D3D8 41 82 00 68 */ beq lbl_803904E0 +/* 8039047C 0038D3DC 40 80 00 28 */ bge lbl_803904A4 +/* 80390480 0038D3E0 2C 00 00 2C */ cmpwi r0, 0x2c +/* 80390484 0038D3E4 41 82 00 AC */ beq lbl_80390530 +/* 80390488 0038D3E8 40 80 00 10 */ bge lbl_80390498 +/* 8039048C 0038D3EC 2C 00 00 2B */ cmpwi r0, 0x2b +/* 80390490 0038D3F0 40 80 00 24 */ bge lbl_803904B4 +/* 80390494 0038D3F4 48 00 00 9C */ b lbl_80390530 +lbl_80390498: +/* 80390498 0038D3F8 2C 00 00 2E */ cmpwi r0, 0x2e +/* 8039049C 0038D3FC 40 80 00 94 */ bge lbl_80390530 +/* 803904A0 0038D400 48 00 00 10 */ b lbl_803904B0 +lbl_803904A4: +/* 803904A4 0038D404 2C 00 00 4E */ cmpwi r0, 0x4e +/* 803904A8 0038D408 41 82 00 60 */ beq lbl_80390508 +/* 803904AC 0038D40C 48 00 00 84 */ b lbl_80390530 +lbl_803904B0: +/* 803904B0 0038D410 39 C0 00 01 */ li r14, 1 +lbl_803904B4: +/* 803904B4 0038D414 7E 0C 83 78 */ mr r12, r16 +/* 803904B8 0038D418 7E 23 8B 78 */ mr r3, r17 +/* 803904BC 0038D41C 38 80 00 00 */ li r4, 0 +/* 803904C0 0038D420 38 A0 00 00 */ li r5, 0 +/* 803904C4 0038D424 7D 89 03 A6 */ mtctr r12 +/* 803904C8 0038D428 3B DE 00 01 */ addi r30, r30, 1 +/* 803904CC 0038D42C 4E 80 04 21 */ bctrl +/* 803904D0 0038D430 38 00 00 01 */ li r0, 1 +/* 803904D4 0038D434 7C 64 1B 78 */ mr r4, r3 +/* 803904D8 0038D438 90 01 00 5C */ stw r0, 0x5c(r1) +/* 803904DC 0038D43C 48 00 0A D0 */ b lbl_80390FAC +lbl_803904E0: +/* 803904E0 0038D440 7E 0C 83 78 */ mr r12, r16 +/* 803904E4 0038D444 7E 23 8B 78 */ mr r3, r17 +/* 803904E8 0038D448 38 80 00 00 */ li r4, 0 +/* 803904EC 0038D44C 38 A0 00 00 */ li r5, 0 +/* 803904F0 0038D450 7D 89 03 A6 */ mtctr r12 +/* 803904F4 0038D454 3B DE 00 01 */ addi r30, r30, 1 +/* 803904F8 0038D458 4E 80 04 21 */ bctrl +/* 803904FC 0038D45C 39 E0 40 00 */ li r15, 0x4000 +/* 80390500 0038D460 7C 64 1B 78 */ mr r4, r3 +/* 80390504 0038D464 48 00 0A A8 */ b lbl_80390FAC +lbl_80390508: +/* 80390508 0038D468 7E 0C 83 78 */ mr r12, r16 +/* 8039050C 0038D46C 7E 23 8B 78 */ mr r3, r17 +/* 80390510 0038D470 38 80 00 00 */ li r4, 0 +/* 80390514 0038D474 38 A0 00 00 */ li r5, 0 +/* 80390518 0038D478 7D 89 03 A6 */ mtctr r12 +/* 8039051C 0038D47C 3B DE 00 01 */ addi r30, r30, 1 +/* 80390520 0038D480 4E 80 04 21 */ bctrl +/* 80390524 0038D484 39 E0 20 00 */ li r15, 0x2000 +/* 80390528 0038D488 7C 64 1B 78 */ mr r4, r3 +/* 8039052C 0038D48C 48 00 0A 80 */ b lbl_80390FAC +lbl_80390530: +/* 80390530 0038D490 39 E0 00 02 */ li r15, 2 +/* 80390534 0038D494 48 00 0A 78 */ b lbl_80390FAC +lbl_80390538: +/* 80390538 0038D498 3C 60 80 3E */ lis r3, lbl_803D8714@ha +/* 8039053C 0038D49C 39 E1 00 21 */ addi r15, r1, 0x21 +/* 80390540 0038D4A0 38 C3 87 14 */ addi r6, r3, lbl_803D8714@l +/* 80390544 0038D4A4 3A 60 00 01 */ li r19, 1 +/* 80390548 0038D4A8 80 A6 00 00 */ lwz r5, 0(r6) +/* 8039054C 0038D4AC 80 66 00 04 */ lwz r3, 4(r6) +/* 80390550 0038D4B0 88 06 00 08 */ lbz r0, 8(r6) +/* 80390554 0038D4B4 90 A1 00 20 */ stw r5, 0x20(r1) +/* 80390558 0038D4B8 90 61 00 24 */ stw r3, 0x24(r1) +/* 8039055C 0038D4BC 98 01 00 28 */ stb r0, 0x28(r1) +/* 80390560 0038D4C0 48 00 00 2C */ b lbl_8039058C +lbl_80390564: +/* 80390564 0038D4C4 7E 0C 83 78 */ mr r12, r16 +/* 80390568 0038D4C8 7E 23 8B 78 */ mr r3, r17 +/* 8039056C 0038D4CC 38 80 00 00 */ li r4, 0 +/* 80390570 0038D4D0 38 A0 00 00 */ li r5, 0 +/* 80390574 0038D4D4 7D 89 03 A6 */ mtctr r12 +/* 80390578 0038D4D8 39 EF 00 01 */ addi r15, r15, 1 +/* 8039057C 0038D4DC 3A 73 00 01 */ addi r19, r19, 1 +/* 80390580 0038D4E0 3B DE 00 01 */ addi r30, r30, 1 +/* 80390584 0038D4E4 4E 80 04 21 */ bctrl +/* 80390588 0038D4E8 7C 64 1B 78 */ mr r4, r3 +lbl_8039058C: +/* 8039058C 0038D4EC 2C 13 00 08 */ cmpwi r19, 8 +/* 80390590 0038D4F0 40 80 00 34 */ bge lbl_803905C4 +/* 80390594 0038D4F4 88 0F 00 00 */ lbz r0, 0(r15) +/* 80390598 0038D4F8 2C 04 FF FF */ cmpwi r4, -1 +/* 8039059C 0038D4FC 7C 05 07 74 */ extsb r5, r0 +/* 803905A0 0038D500 40 82 00 0C */ bne lbl_803905AC +/* 803905A4 0038D504 38 00 FF FF */ li r0, -1 +/* 803905A8 0038D508 48 00 00 14 */ b lbl_803905BC +lbl_803905AC: +/* 803905AC 0038D50C 3C 60 80 3F */ lis r3, lbl_803F2C20@ha +/* 803905B0 0038D510 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803905B4 0038D514 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l +/* 803905B8 0038D518 7C 03 00 AE */ lbzx r0, r3, r0 +lbl_803905BC: +/* 803905BC 0038D51C 7C 05 00 00 */ cmpw r5, r0 +/* 803905C0 0038D520 41 82 FF A4 */ beq lbl_80390564 +lbl_803905C4: +/* 803905C4 0038D524 2C 13 00 03 */ cmpwi r19, 3 +/* 803905C8 0038D528 41 82 00 0C */ beq lbl_803905D4 +/* 803905CC 0038D52C 2C 13 00 08 */ cmpwi r19, 8 +/* 803905D0 0038D530 40 82 00 40 */ bne lbl_80390610 +lbl_803905D4: +/* 803905D4 0038D534 2C 0E 00 00 */ cmpwi r14, 0 +/* 803905D8 0038D538 41 82 00 14 */ beq lbl_803905EC +/* 803905DC 0038D53C 3C 60 80 5B */ lis r3, lbl_805A8BA4@ha +/* 803905E0 0038D540 C0 03 8B A4 */ lfs f0, lbl_805A8BA4@l(r3) +/* 803905E4 0038D544 FC 20 00 50 */ fneg f1, f0 +/* 803905E8 0038D548 48 00 00 0C */ b lbl_803905F4 +lbl_803905EC: +/* 803905EC 0038D54C 3C 60 80 5B */ lis r3, lbl_805A8BA4@ha +/* 803905F0 0038D550 C0 23 8B A4 */ lfs f1, lbl_805A8BA4@l(r3) +lbl_803905F4: +/* 803905F4 0038D554 80 01 00 5C */ lwz r0, 0x5c(r1) +/* 803905F8 0038D558 80 61 00 0C */ lwz r3, 0xc(r1) +/* 803905FC 0038D55C 7C 13 02 14 */ add r0, r19, r0 +/* 80390600 0038D560 D8 21 00 18 */ stfd f1, 0x18(r1) +/* 80390604 0038D564 7C 1D 02 14 */ add r0, r29, r0 +/* 80390608 0038D568 90 03 00 00 */ stw r0, 0(r3) +/* 8039060C 0038D56C 48 00 0C 54 */ b lbl_80391260 +lbl_80390610: +/* 80390610 0038D570 39 E0 10 00 */ li r15, 0x1000 +/* 80390614 0038D574 48 00 09 98 */ b lbl_80390FAC +lbl_80390618: +/* 80390618 0038D578 80 62 CF 80 */ lwz r3, lbl_805AECA0@sda21(r2) +/* 8039061C 0038D57C 39 E1 00 11 */ addi r15, r1, 0x11 +/* 80390620 0038D580 88 02 CF 84 */ lbz r0, lbl_805AECA4@sda21(r2) +/* 80390624 0038D584 3A 80 00 01 */ li r20, 1 +/* 80390628 0038D588 90 61 00 10 */ stw r3, 0x10(r1) +/* 8039062C 0038D58C 3A 60 00 00 */ li r19, 0 +/* 80390630 0038D590 98 01 00 14 */ stb r0, 0x14(r1) +/* 80390634 0038D594 48 00 00 2C */ b lbl_80390660 +lbl_80390638: +/* 80390638 0038D598 7E 0C 83 78 */ mr r12, r16 +/* 8039063C 0038D59C 7E 23 8B 78 */ mr r3, r17 +/* 80390640 0038D5A0 38 80 00 00 */ li r4, 0 +/* 80390644 0038D5A4 38 A0 00 00 */ li r5, 0 +/* 80390648 0038D5A8 7D 89 03 A6 */ mtctr r12 +/* 8039064C 0038D5AC 39 EF 00 01 */ addi r15, r15, 1 +/* 80390650 0038D5B0 3A 94 00 01 */ addi r20, r20, 1 +/* 80390654 0038D5B4 3B DE 00 01 */ addi r30, r30, 1 +/* 80390658 0038D5B8 4E 80 04 21 */ bctrl +/* 8039065C 0038D5BC 7C 64 1B 78 */ mr r4, r3 +lbl_80390660: +/* 80390660 0038D5C0 2C 14 00 04 */ cmpwi r20, 4 +/* 80390664 0038D5C4 40 80 00 34 */ bge lbl_80390698 +/* 80390668 0038D5C8 88 0F 00 00 */ lbz r0, 0(r15) +/* 8039066C 0038D5CC 2C 04 FF FF */ cmpwi r4, -1 +/* 80390670 0038D5D0 7C 05 07 74 */ extsb r5, r0 +/* 80390674 0038D5D4 40 82 00 0C */ bne lbl_80390680 +/* 80390678 0038D5D8 38 00 FF FF */ li r0, -1 +/* 8039067C 0038D5DC 48 00 00 14 */ b lbl_80390690 +lbl_80390680: +/* 80390680 0038D5E0 3C 60 80 3F */ lis r3, lbl_803F2C20@ha +/* 80390684 0038D5E4 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80390688 0038D5E8 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l +/* 8039068C 0038D5EC 7C 03 00 AE */ lbzx r0, r3, r0 +lbl_80390690: +/* 80390690 0038D5F0 7C 05 00 00 */ cmpw r5, r0 +/* 80390694 0038D5F4 41 82 FF A4 */ beq lbl_80390638 +lbl_80390698: +/* 80390698 0038D5F8 2C 14 00 03 */ cmpwi r20, 3 +/* 8039069C 0038D5FC 41 82 00 0C */ beq lbl_803906A8 +/* 803906A0 0038D600 2C 14 00 04 */ cmpwi r20, 4 +/* 803906A4 0038D604 40 82 00 B0 */ bne lbl_80390754 +lbl_803906A8: +/* 803906A8 0038D608 2C 14 00 04 */ cmpwi r20, 4 +/* 803906AC 0038D60C 40 82 00 68 */ bne lbl_80390714 +/* 803906B0 0038D610 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 803906B4 0038D614 39 E3 2A 20 */ addi r15, r3, lbl_803F2A20@l +/* 803906B8 0038D618 48 00 00 28 */ b lbl_803906E0 +lbl_803906BC: +/* 803906BC 0038D61C 7E 0C 83 78 */ mr r12, r16 +/* 803906C0 0038D620 7E 23 8B 78 */ mr r3, r17 +/* 803906C4 0038D624 38 80 00 00 */ li r4, 0 +/* 803906C8 0038D628 38 A0 00 00 */ li r5, 0 +/* 803906CC 0038D62C 7D 89 03 A6 */ mtctr r12 +/* 803906D0 0038D630 3A 73 00 01 */ addi r19, r19, 1 +/* 803906D4 0038D634 3B DE 00 01 */ addi r30, r30, 1 +/* 803906D8 0038D638 4E 80 04 21 */ bctrl +/* 803906DC 0038D63C 7C 64 1B 78 */ mr r4, r3 +lbl_803906E0: +/* 803906E0 0038D640 2C 13 00 20 */ cmpwi r19, 0x20 +/* 803906E4 0038D644 40 80 00 1C */ bge lbl_80390700 +/* 803906E8 0038D648 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803906EC 0038D64C 7C 6F 00 AE */ lbzx r3, r15, r0 +/* 803906F0 0038D650 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b +/* 803906F4 0038D654 40 82 FF C8 */ bne lbl_803906BC +/* 803906F8 0038D658 54 60 06 33 */ rlwinm. r0, r3, 0, 0x18, 0x19 +/* 803906FC 0038D65C 40 82 FF C0 */ bne lbl_803906BC +lbl_80390700: +/* 80390700 0038D660 2C 04 00 29 */ cmpwi r4, 0x29 +/* 80390704 0038D664 41 82 00 0C */ beq lbl_80390710 +/* 80390708 0038D668 39 E0 10 00 */ li r15, 0x1000 +/* 8039070C 0038D66C 48 00 08 A0 */ b lbl_80390FAC +lbl_80390710: +/* 80390710 0038D670 3A 73 00 01 */ addi r19, r19, 1 +lbl_80390714: +/* 80390714 0038D674 2C 0E 00 00 */ cmpwi r14, 0 +/* 80390718 0038D678 41 82 00 14 */ beq lbl_8039072C +/* 8039071C 0038D67C 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 80390720 0038D680 C0 03 8B A0 */ lfs f0, lbl_805A8BA0@l(r3) +/* 80390724 0038D684 FC 20 00 50 */ fneg f1, f0 +/* 80390728 0038D688 48 00 00 0C */ b lbl_80390734 +lbl_8039072C: +/* 8039072C 0038D68C 3C 60 80 5B */ lis r3, lbl_805A8BA0@ha +/* 80390730 0038D690 C0 23 8B A0 */ lfs f1, lbl_805A8BA0@l(r3) +lbl_80390734: +/* 80390734 0038D694 80 01 00 5C */ lwz r0, 0x5c(r1) +/* 80390738 0038D698 7C 74 9A 14 */ add r3, r20, r19 +/* 8039073C 0038D69C D8 21 00 18 */ stfd f1, 0x18(r1) +/* 80390740 0038D6A0 7C 03 02 14 */ add r0, r3, r0 +/* 80390744 0038D6A4 80 61 00 0C */ lwz r3, 0xc(r1) +/* 80390748 0038D6A8 7C 1D 02 14 */ add r0, r29, r0 +/* 8039074C 0038D6AC 90 03 00 00 */ stw r0, 0(r3) +/* 80390750 0038D6B0 48 00 0B 10 */ b lbl_80391260 +lbl_80390754: +/* 80390754 0038D6B4 39 E0 10 00 */ li r15, 0x1000 +/* 80390758 0038D6B8 48 00 08 54 */ b lbl_80390FAC +lbl_8039075C: +/* 8039075C 0038D6BC 7C 04 A8 00 */ cmpw r4, r21 +/* 80390760 0038D6C0 40 82 00 2C */ bne lbl_8039078C +/* 80390764 0038D6C4 7E 0C 83 78 */ mr r12, r16 +/* 80390768 0038D6C8 7E 23 8B 78 */ mr r3, r17 +/* 8039076C 0038D6CC 39 E0 00 10 */ li r15, 0x10 +/* 80390770 0038D6D0 38 80 00 00 */ li r4, 0 +/* 80390774 0038D6D4 38 A0 00 00 */ li r5, 0 +/* 80390778 0038D6D8 7D 89 03 A6 */ mtctr r12 +/* 8039077C 0038D6DC 3B DE 00 01 */ addi r30, r30, 1 +/* 80390780 0038D6E0 4E 80 04 21 */ bctrl +/* 80390784 0038D6E4 7C 64 1B 78 */ mr r4, r3 +/* 80390788 0038D6E8 48 00 08 24 */ b lbl_80390FAC +lbl_8039078C: +/* 8039078C 0038D6EC 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390790 0038D6F0 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80390794 0038D6F4 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390798 0038D6F8 7C 03 00 AE */ lbzx r0, r3, r0 +/* 8039079C 0038D6FC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803907A0 0038D700 40 82 00 0C */ bne lbl_803907AC +/* 803907A4 0038D704 39 E0 10 00 */ li r15, 0x1000 +/* 803907A8 0038D708 48 00 08 04 */ b lbl_80390FAC +lbl_803907AC: +/* 803907AC 0038D70C 2C 04 00 30 */ cmpwi r4, 0x30 +/* 803907B0 0038D710 40 82 00 64 */ bne lbl_80390814 +/* 803907B4 0038D714 7E 0C 83 78 */ mr r12, r16 +/* 803907B8 0038D718 7E 23 8B 78 */ mr r3, r17 +/* 803907BC 0038D71C 38 80 00 00 */ li r4, 0 +/* 803907C0 0038D720 38 A0 00 00 */ li r5, 0 +/* 803907C4 0038D724 7D 89 03 A6 */ mtctr r12 +/* 803907C8 0038D728 3B DE 00 01 */ addi r30, r30, 1 +/* 803907CC 0038D72C 4E 80 04 21 */ bctrl +/* 803907D0 0038D730 2C 03 FF FF */ cmpwi r3, -1 +/* 803907D4 0038D734 7C 64 1B 78 */ mr r4, r3 +/* 803907D8 0038D738 40 82 00 0C */ bne lbl_803907E4 +/* 803907DC 0038D73C 38 00 FF FF */ li r0, -1 +/* 803907E0 0038D740 48 00 00 14 */ b lbl_803907F4 +lbl_803907E4: +/* 803907E4 0038D744 3C A0 80 3F */ lis r5, lbl_803F2C20@ha +/* 803907E8 0038D748 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803907EC 0038D74C 38 65 2C 20 */ addi r3, r5, lbl_803F2C20@l +/* 803907F0 0038D750 7C 03 00 AE */ lbzx r0, r3, r0 +lbl_803907F4: +/* 803907F4 0038D754 2C 00 00 58 */ cmpwi r0, 0x58 +/* 803907F8 0038D758 40 82 00 14 */ bne lbl_8039080C +/* 803907FC 0038D75C 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 80390800 0038D760 3B E0 00 01 */ li r31, 1 +/* 80390804 0038D764 39 E3 80 00 */ addi r15, r3, 0x00008000@l +/* 80390808 0038D768 48 00 07 A4 */ b lbl_80390FAC +lbl_8039080C: +/* 8039080C 0038D76C 39 E0 00 04 */ li r15, 4 +/* 80390810 0038D770 48 00 07 9C */ b lbl_80390FAC +lbl_80390814: +/* 80390814 0038D774 39 E0 00 08 */ li r15, 8 +/* 80390818 0038D778 48 00 07 94 */ b lbl_80390FAC +lbl_8039081C: +/* 8039081C 0038D77C 2C 04 00 30 */ cmpwi r4, 0x30 +/* 80390820 0038D780 40 82 00 28 */ bne lbl_80390848 +/* 80390824 0038D784 7E 0C 83 78 */ mr r12, r16 +/* 80390828 0038D788 7E 23 8B 78 */ mr r3, r17 +/* 8039082C 0038D78C 38 80 00 00 */ li r4, 0 +/* 80390830 0038D790 38 A0 00 00 */ li r5, 0 +/* 80390834 0038D794 7D 89 03 A6 */ mtctr r12 +/* 80390838 0038D798 3B DE 00 01 */ addi r30, r30, 1 +/* 8039083C 0038D79C 4E 80 04 21 */ bctrl +/* 80390840 0038D7A0 7C 64 1B 78 */ mr r4, r3 +/* 80390844 0038D7A4 48 00 07 68 */ b lbl_80390FAC +lbl_80390848: +/* 80390848 0038D7A8 39 E0 00 08 */ li r15, 8 +/* 8039084C 0038D7AC 48 00 07 60 */ b lbl_80390FAC +lbl_80390850: +/* 80390850 0038D7B0 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390854 0038D7B4 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80390858 0038D7B8 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 8039085C 0038D7BC 7C 03 00 AE */ lbzx r0, r3, r0 +/* 80390860 0038D7C0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80390864 0038D7C4 40 82 00 3C */ bne lbl_803908A0 +/* 80390868 0038D7C8 7C 04 A8 00 */ cmpw r4, r21 +/* 8039086C 0038D7CC 40 82 00 2C */ bne lbl_80390898 +/* 80390870 0038D7D0 7E 0C 83 78 */ mr r12, r16 +/* 80390874 0038D7D4 7E 23 8B 78 */ mr r3, r17 +/* 80390878 0038D7D8 39 E0 00 20 */ li r15, 0x20 +/* 8039087C 0038D7DC 38 80 00 00 */ li r4, 0 +/* 80390880 0038D7E0 38 A0 00 00 */ li r5, 0 +/* 80390884 0038D7E4 7D 89 03 A6 */ mtctr r12 +/* 80390888 0038D7E8 3B DE 00 01 */ addi r30, r30, 1 +/* 8039088C 0038D7EC 4E 80 04 21 */ bctrl +/* 80390890 0038D7F0 7C 64 1B 78 */ mr r4, r3 +/* 80390894 0038D7F4 48 00 07 18 */ b lbl_80390FAC +lbl_80390898: +/* 80390898 0038D7F8 39 E0 00 40 */ li r15, 0x40 +/* 8039089C 0038D7FC 48 00 07 10 */ b lbl_80390FAC +lbl_803908A0: +/* 803908A0 0038D800 88 A1 00 30 */ lbz r5, 0x30(r1) +/* 803908A4 0038D804 28 05 00 14 */ cmplwi r5, 0x14 +/* 803908A8 0038D808 40 80 00 1C */ bge lbl_803908C4 +/* 803908AC 0038D80C 38 05 00 01 */ addi r0, r5, 1 +/* 803908B0 0038D810 38 61 00 2C */ addi r3, r1, 0x2c +/* 803908B4 0038D814 98 01 00 30 */ stb r0, 0x30(r1) +/* 803908B8 0038D818 38 05 00 05 */ addi r0, r5, 5 +/* 803908BC 0038D81C 7C 83 01 AE */ stbx r4, r3, r0 +/* 803908C0 0038D820 48 00 00 08 */ b lbl_803908C8 +lbl_803908C4: +/* 803908C4 0038D824 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803908C8: +/* 803908C8 0038D828 7E 0C 83 78 */ mr r12, r16 +/* 803908CC 0038D82C 7E 23 8B 78 */ mr r3, r17 +/* 803908D0 0038D830 38 80 00 00 */ li r4, 0 +/* 803908D4 0038D834 38 A0 00 00 */ li r5, 0 +/* 803908D8 0038D838 7D 89 03 A6 */ mtctr r12 +/* 803908DC 0038D83C 3B DE 00 01 */ addi r30, r30, 1 +/* 803908E0 0038D840 4E 80 04 21 */ bctrl +/* 803908E4 0038D844 7C 64 1B 78 */ mr r4, r3 +/* 803908E8 0038D848 48 00 06 C4 */ b lbl_80390FAC +lbl_803908EC: +/* 803908EC 0038D84C 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 803908F0 0038D850 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803908F4 0038D854 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 803908F8 0038D858 7C 03 00 AE */ lbzx r0, r3, r0 +/* 803908FC 0038D85C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80390900 0038D860 40 82 00 0C */ bne lbl_8039090C +/* 80390904 0038D864 39 E0 10 00 */ li r15, 0x1000 +/* 80390908 0038D868 48 00 06 A4 */ b lbl_80390FAC +lbl_8039090C: +/* 8039090C 0038D86C 39 E0 00 20 */ li r15, 0x20 +/* 80390910 0038D870 48 00 06 9C */ b lbl_80390FAC +lbl_80390914: +/* 80390914 0038D874 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390918 0038D878 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 8039091C 0038D87C 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390920 0038D880 7C 03 00 AE */ lbzx r0, r3, r0 +/* 80390924 0038D884 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80390928 0038D888 40 82 00 0C */ bne lbl_80390934 +/* 8039092C 0038D88C 39 E0 00 40 */ li r15, 0x40 +/* 80390930 0038D890 48 00 06 7C */ b lbl_80390FAC +lbl_80390934: +/* 80390934 0038D894 88 01 00 30 */ lbz r0, 0x30(r1) +/* 80390938 0038D898 28 00 00 14 */ cmplwi r0, 0x14 +/* 8039093C 0038D89C 40 80 00 30 */ bge lbl_8039096C +/* 80390940 0038D8A0 2C 04 00 30 */ cmpwi r4, 0x30 +/* 80390944 0038D8A4 40 82 00 0C */ bne lbl_80390950 +/* 80390948 0038D8A8 28 00 00 00 */ cmplwi r0, 0 +/* 8039094C 0038D8AC 41 82 00 1C */ beq lbl_80390968 +lbl_80390950: +/* 80390950 0038D8B0 88 C1 00 30 */ lbz r6, 0x30(r1) +/* 80390954 0038D8B4 38 61 00 2C */ addi r3, r1, 0x2c +/* 80390958 0038D8B8 38 A6 00 01 */ addi r5, r6, 1 +/* 8039095C 0038D8BC 38 06 00 05 */ addi r0, r6, 5 +/* 80390960 0038D8C0 98 A1 00 30 */ stb r5, 0x30(r1) +/* 80390964 0038D8C4 7C 83 01 AE */ stbx r4, r3, r0 +lbl_80390968: +/* 80390968 0038D8C8 3B 7B FF FF */ addi r27, r27, -1 +lbl_8039096C: +/* 8039096C 0038D8CC 7E 0C 83 78 */ mr r12, r16 +/* 80390970 0038D8D0 7E 23 8B 78 */ mr r3, r17 +/* 80390974 0038D8D4 38 80 00 00 */ li r4, 0 +/* 80390978 0038D8D8 38 A0 00 00 */ li r5, 0 +/* 8039097C 0038D8DC 7D 89 03 A6 */ mtctr r12 +/* 80390980 0038D8E0 3B DE 00 01 */ addi r30, r30, 1 +/* 80390984 0038D8E4 4E 80 04 21 */ bctrl +/* 80390988 0038D8E8 7C 64 1B 78 */ mr r4, r3 +/* 8039098C 0038D8EC 48 00 06 20 */ b lbl_80390FAC +lbl_80390990: +/* 80390990 0038D8F0 2C 04 FF FF */ cmpwi r4, -1 +/* 80390994 0038D8F4 40 82 00 0C */ bne lbl_803909A0 +/* 80390998 0038D8F8 38 00 FF FF */ li r0, -1 +/* 8039099C 0038D8FC 48 00 00 14 */ b lbl_803909B0 +lbl_803909A0: +/* 803909A0 0038D900 3C 60 80 3F */ lis r3, lbl_803F2C20@ha +/* 803909A4 0038D904 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803909A8 0038D908 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l +/* 803909AC 0038D90C 7C 03 00 AE */ lbzx r0, r3, r0 +lbl_803909B0: +/* 803909B0 0038D910 2C 00 00 45 */ cmpwi r0, 0x45 +/* 803909B4 0038D914 40 82 00 2C */ bne lbl_803909E0 +/* 803909B8 0038D918 7E 0C 83 78 */ mr r12, r16 +/* 803909BC 0038D91C 7E 23 8B 78 */ mr r3, r17 +/* 803909C0 0038D920 39 E0 00 80 */ li r15, 0x80 +/* 803909C4 0038D924 38 80 00 00 */ li r4, 0 +/* 803909C8 0038D928 38 A0 00 00 */ li r5, 0 +/* 803909CC 0038D92C 7D 89 03 A6 */ mtctr r12 +/* 803909D0 0038D930 3B DE 00 01 */ addi r30, r30, 1 +/* 803909D4 0038D934 4E 80 04 21 */ bctrl +/* 803909D8 0038D938 7C 64 1B 78 */ mr r4, r3 +/* 803909DC 0038D93C 48 00 05 D0 */ b lbl_80390FAC +lbl_803909E0: +/* 803909E0 0038D940 39 E0 08 00 */ li r15, 0x800 +/* 803909E4 0038D944 48 00 05 C8 */ b lbl_80390FAC +lbl_803909E8: +/* 803909E8 0038D948 2C 04 00 2B */ cmpwi r4, 0x2b +/* 803909EC 0038D94C 40 82 00 28 */ bne lbl_80390A14 +/* 803909F0 0038D950 7E 0C 83 78 */ mr r12, r16 +/* 803909F4 0038D954 7E 23 8B 78 */ mr r3, r17 +/* 803909F8 0038D958 38 80 00 00 */ li r4, 0 +/* 803909FC 0038D95C 38 A0 00 00 */ li r5, 0 +/* 80390A00 0038D960 7D 89 03 A6 */ mtctr r12 +/* 80390A04 0038D964 3B DE 00 01 */ addi r30, r30, 1 +/* 80390A08 0038D968 4E 80 04 21 */ bctrl +/* 80390A0C 0038D96C 7C 64 1B 78 */ mr r4, r3 +/* 80390A10 0038D970 48 00 00 34 */ b lbl_80390A44 +lbl_80390A14: +/* 80390A14 0038D974 2C 04 00 2D */ cmpwi r4, 0x2d +/* 80390A18 0038D978 40 82 00 2C */ bne lbl_80390A44 +/* 80390A1C 0038D97C 7E 0C 83 78 */ mr r12, r16 +/* 80390A20 0038D980 7E 23 8B 78 */ mr r3, r17 +/* 80390A24 0038D984 38 80 00 00 */ li r4, 0 +/* 80390A28 0038D988 38 A0 00 00 */ li r5, 0 +/* 80390A2C 0038D98C 7D 89 03 A6 */ mtctr r12 +/* 80390A30 0038D990 3B DE 00 01 */ addi r30, r30, 1 +/* 80390A34 0038D994 4E 80 04 21 */ bctrl +/* 80390A38 0038D998 38 00 00 01 */ li r0, 1 +/* 80390A3C 0038D99C 7C 64 1B 78 */ mr r4, r3 +/* 80390A40 0038D9A0 90 01 00 60 */ stw r0, 0x60(r1) +lbl_80390A44: +/* 80390A44 0038D9A4 39 E0 01 00 */ li r15, 0x100 +/* 80390A48 0038D9A8 48 00 05 64 */ b lbl_80390FAC +lbl_80390A4C: +/* 80390A4C 0038D9AC 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390A50 0038D9B0 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80390A54 0038D9B4 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390A58 0038D9B8 7C 03 00 AE */ lbzx r0, r3, r0 +/* 80390A5C 0038D9BC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80390A60 0038D9C0 40 82 00 0C */ bne lbl_80390A6C +/* 80390A64 0038D9C4 39 E0 10 00 */ li r15, 0x1000 +/* 80390A68 0038D9C8 48 00 05 44 */ b lbl_80390FAC +lbl_80390A6C: +/* 80390A6C 0038D9CC 2C 04 00 30 */ cmpwi r4, 0x30 +/* 80390A70 0038D9D0 40 82 00 2C */ bne lbl_80390A9C +/* 80390A74 0038D9D4 7E 0C 83 78 */ mr r12, r16 +/* 80390A78 0038D9D8 7E 23 8B 78 */ mr r3, r17 +/* 80390A7C 0038D9DC 39 E0 02 00 */ li r15, 0x200 +/* 80390A80 0038D9E0 38 80 00 00 */ li r4, 0 +/* 80390A84 0038D9E4 38 A0 00 00 */ li r5, 0 +/* 80390A88 0038D9E8 7D 89 03 A6 */ mtctr r12 +/* 80390A8C 0038D9EC 3B DE 00 01 */ addi r30, r30, 1 +/* 80390A90 0038D9F0 4E 80 04 21 */ bctrl +/* 80390A94 0038D9F4 7C 64 1B 78 */ mr r4, r3 +/* 80390A98 0038D9F8 48 00 05 14 */ b lbl_80390FAC +lbl_80390A9C: +/* 80390A9C 0038D9FC 39 E0 04 00 */ li r15, 0x400 +/* 80390AA0 0038DA00 48 00 05 0C */ b lbl_80390FAC +lbl_80390AA4: +/* 80390AA4 0038DA04 2C 04 00 30 */ cmpwi r4, 0x30 +/* 80390AA8 0038DA08 40 82 00 28 */ bne lbl_80390AD0 +/* 80390AAC 0038DA0C 7E 0C 83 78 */ mr r12, r16 +/* 80390AB0 0038DA10 7E 23 8B 78 */ mr r3, r17 +/* 80390AB4 0038DA14 38 80 00 00 */ li r4, 0 +/* 80390AB8 0038DA18 38 A0 00 00 */ li r5, 0 +/* 80390ABC 0038DA1C 7D 89 03 A6 */ mtctr r12 +/* 80390AC0 0038DA20 3B DE 00 01 */ addi r30, r30, 1 +/* 80390AC4 0038DA24 4E 80 04 21 */ bctrl +/* 80390AC8 0038DA28 7C 64 1B 78 */ mr r4, r3 +/* 80390ACC 0038DA2C 48 00 04 E0 */ b lbl_80390FAC +lbl_80390AD0: +/* 80390AD0 0038DA30 39 E0 04 00 */ li r15, 0x400 +/* 80390AD4 0038DA34 48 00 04 D8 */ b lbl_80390FAC +lbl_80390AD8: +/* 80390AD8 0038DA38 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390ADC 0038DA3C 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80390AE0 0038DA40 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390AE4 0038DA44 7C 03 00 AE */ lbzx r0, r3, r0 +/* 80390AE8 0038DA48 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80390AEC 0038DA4C 40 82 00 0C */ bne lbl_80390AF8 +/* 80390AF0 0038DA50 39 E0 08 00 */ li r15, 0x800 +/* 80390AF4 0038DA54 48 00 04 B8 */ b lbl_80390FAC +lbl_80390AF8: +/* 80390AF8 0038DA58 1C 1C 00 0A */ mulli r0, r28, 0xa +/* 80390AFC 0038DA5C 7F 84 02 14 */ add r28, r4, r0 +/* 80390B00 0038DA60 3B 9C FF D0 */ addi r28, r28, -48 +/* 80390B04 0038DA64 2C 1C 7F FF */ cmpwi r28, 0x7fff +/* 80390B08 0038DA68 40 81 00 0C */ ble lbl_80390B14 +/* 80390B0C 0038DA6C 38 00 00 01 */ li r0, 1 +/* 80390B10 0038DA70 90 12 00 00 */ stw r0, 0(r18) +lbl_80390B14: +/* 80390B14 0038DA74 7E 0C 83 78 */ mr r12, r16 +/* 80390B18 0038DA78 7E 23 8B 78 */ mr r3, r17 +/* 80390B1C 0038DA7C 38 80 00 00 */ li r4, 0 +/* 80390B20 0038DA80 38 A0 00 00 */ li r5, 0 +/* 80390B24 0038DA84 7D 89 03 A6 */ mtctr r12 +/* 80390B28 0038DA88 3B DE 00 01 */ addi r30, r30, 1 +/* 80390B2C 0038DA8C 4E 80 04 21 */ bctrl +/* 80390B30 0038DA90 7C 64 1B 78 */ mr r4, r3 +/* 80390B34 0038DA94 48 00 04 78 */ b lbl_80390FAC +lbl_80390B38: +/* 80390B38 0038DA98 2C 1F 00 10 */ cmpwi r31, 0x10 +/* 80390B3C 0038DA9C 41 82 02 F4 */ beq lbl_80390E30 +/* 80390B40 0038DAA0 40 80 00 34 */ bge lbl_80390B74 +/* 80390B44 0038DAA4 2C 1F 00 04 */ cmpwi r31, 4 +/* 80390B48 0038DAA8 41 82 00 D4 */ beq lbl_80390C1C +/* 80390B4C 0038DAAC 40 80 00 1C */ bge lbl_80390B68 +/* 80390B50 0038DAB0 2C 1F 00 02 */ cmpwi r31, 2 +/* 80390B54 0038DAB4 41 82 00 94 */ beq lbl_80390BE8 +/* 80390B58 0038DAB8 40 80 04 54 */ bge lbl_80390FAC +/* 80390B5C 0038DABC 2C 1F 00 01 */ cmpwi r31, 1 +/* 80390B60 0038DAC0 40 80 00 38 */ bge lbl_80390B98 +/* 80390B64 0038DAC4 48 00 04 48 */ b lbl_80390FAC +lbl_80390B68: +/* 80390B68 0038DAC8 2C 1F 00 08 */ cmpwi r31, 8 +/* 80390B6C 0038DACC 41 82 01 D4 */ beq lbl_80390D40 +/* 80390B70 0038DAD0 48 00 04 3C */ b lbl_80390FAC +lbl_80390B74: +/* 80390B74 0038DAD4 2C 1F 00 40 */ cmpwi r31, 0x40 +/* 80390B78 0038DAD8 41 82 03 74 */ beq lbl_80390EEC +/* 80390B7C 0038DADC 40 80 00 10 */ bge lbl_80390B8C +/* 80390B80 0038DAE0 2C 1F 00 20 */ cmpwi r31, 0x20 +/* 80390B84 0038DAE4 41 82 03 08 */ beq lbl_80390E8C +/* 80390B88 0038DAE8 48 00 04 24 */ b lbl_80390FAC +lbl_80390B8C: +/* 80390B8C 0038DAEC 2C 1F 01 00 */ cmpwi r31, 0x100 +/* 80390B90 0038DAF0 41 82 03 B8 */ beq lbl_80390F48 +/* 80390B94 0038DAF4 48 00 04 18 */ b lbl_80390FAC +lbl_80390B98: +/* 80390B98 0038DAF8 38 00 00 00 */ li r0, 0 +/* 80390B9C 0038DAFC 7E 0C 83 78 */ mr r12, r16 +/* 80390BA0 0038DB00 7E 23 8B 78 */ mr r3, r17 +/* 80390BA4 0038DB04 98 01 00 18 */ stb r0, 0x18(r1) +/* 80390BA8 0038DB08 3B 20 00 02 */ li r25, 2 +/* 80390BAC 0038DB0C 3B E0 00 02 */ li r31, 2 +/* 80390BB0 0038DB10 98 01 00 19 */ stb r0, 0x19(r1) +/* 80390BB4 0038DB14 38 80 00 00 */ li r4, 0 +/* 80390BB8 0038DB18 38 A0 00 00 */ li r5, 0 +/* 80390BBC 0038DB1C 98 01 00 1A */ stb r0, 0x1a(r1) +/* 80390BC0 0038DB20 98 01 00 1B */ stb r0, 0x1b(r1) +/* 80390BC4 0038DB24 98 01 00 1C */ stb r0, 0x1c(r1) +/* 80390BC8 0038DB28 98 01 00 1D */ stb r0, 0x1d(r1) +/* 80390BCC 0038DB2C 98 01 00 1E */ stb r0, 0x1e(r1) +/* 80390BD0 0038DB30 98 01 00 1F */ stb r0, 0x1f(r1) +/* 80390BD4 0038DB34 7D 89 03 A6 */ mtctr r12 +/* 80390BD8 0038DB38 3B DE 00 01 */ addi r30, r30, 1 +/* 80390BDC 0038DB3C 4E 80 04 21 */ bctrl +/* 80390BE0 0038DB40 7C 64 1B 78 */ mr r4, r3 +/* 80390BE4 0038DB44 48 00 03 C8 */ b lbl_80390FAC +lbl_80390BE8: +/* 80390BE8 0038DB48 2C 04 00 30 */ cmpwi r4, 0x30 +/* 80390BEC 0038DB4C 40 82 00 28 */ bne lbl_80390C14 +/* 80390BF0 0038DB50 7E 0C 83 78 */ mr r12, r16 +/* 80390BF4 0038DB54 7E 23 8B 78 */ mr r3, r17 +/* 80390BF8 0038DB58 38 80 00 00 */ li r4, 0 +/* 80390BFC 0038DB5C 38 A0 00 00 */ li r5, 0 +/* 80390C00 0038DB60 7D 89 03 A6 */ mtctr r12 +/* 80390C04 0038DB64 3B DE 00 01 */ addi r30, r30, 1 +/* 80390C08 0038DB68 4E 80 04 21 */ bctrl +/* 80390C0C 0038DB6C 7C 64 1B 78 */ mr r4, r3 +/* 80390C10 0038DB70 48 00 03 9C */ b lbl_80390FAC +lbl_80390C14: +/* 80390C14 0038DB74 3B E0 00 04 */ li r31, 4 +/* 80390C18 0038DB78 48 00 03 94 */ b lbl_80390FAC +lbl_80390C1C: +/* 80390C1C 0038DB7C 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390C20 0038DB80 54 85 06 3E */ clrlwi r5, r4, 0x18 +/* 80390C24 0038DB84 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390C28 0038DB88 7C 03 28 AE */ lbzx r0, r3, r5 +/* 80390C2C 0038DB8C 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a +/* 80390C30 0038DB90 40 82 00 3C */ bne lbl_80390C6C +/* 80390C34 0038DB94 7C 04 A8 00 */ cmpw r4, r21 +/* 80390C38 0038DB98 40 82 00 2C */ bne lbl_80390C64 +/* 80390C3C 0038DB9C 7E 0C 83 78 */ mr r12, r16 +/* 80390C40 0038DBA0 7E 23 8B 78 */ mr r3, r17 +/* 80390C44 0038DBA4 3B E0 00 08 */ li r31, 8 +/* 80390C48 0038DBA8 38 80 00 00 */ li r4, 0 +/* 80390C4C 0038DBAC 38 A0 00 00 */ li r5, 0 +/* 80390C50 0038DBB0 7D 89 03 A6 */ mtctr r12 +/* 80390C54 0038DBB4 3B DE 00 01 */ addi r30, r30, 1 +/* 80390C58 0038DBB8 4E 80 04 21 */ bctrl +/* 80390C5C 0038DBBC 7C 64 1B 78 */ mr r4, r3 +/* 80390C60 0038DBC0 48 00 03 4C */ b lbl_80390FAC +lbl_80390C64: +/* 80390C64 0038DBC4 3B E0 00 10 */ li r31, 0x10 +/* 80390C68 0038DBC8 48 00 03 44 */ b lbl_80390FAC +lbl_80390C6C: +/* 80390C6C 0038DBCC 2C 19 00 11 */ cmpwi r25, 0x11 +/* 80390C70 0038DBD0 40 80 00 AC */ bge lbl_80390D1C +/* 80390C74 0038DBD4 57 20 0F FE */ srwi r0, r25, 0x1f +/* 80390C78 0038DBD8 2C 04 FF FF */ cmpwi r4, -1 +/* 80390C7C 0038DBDC 7C 00 CA 14 */ add r0, r0, r25 +/* 80390C80 0038DBE0 3A F7 00 01 */ addi r23, r23, 1 +/* 80390C84 0038DBE4 7C 00 0E 70 */ srawi r0, r0, 1 +/* 80390C88 0038DBE8 7C DA 00 AE */ lbzx r6, r26, r0 +/* 80390C8C 0038DBEC 40 82 00 0C */ bne lbl_80390C98 +/* 80390C90 0038DBF0 38 60 FF FF */ li r3, -1 +/* 80390C94 0038DBF4 48 00 00 10 */ b lbl_80390CA4 +lbl_80390C98: +/* 80390C98 0038DBF8 3C 60 80 3F */ lis r3, lbl_803F2C20@ha +/* 80390C9C 0038DBFC 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l +/* 80390CA0 0038DC00 7C 63 28 AE */ lbzx r3, r3, r5 +lbl_80390CA4: +/* 80390CA4 0038DC04 2C 03 00 41 */ cmpwi r3, 0x41 +/* 80390CA8 0038DC08 41 80 00 0C */ blt lbl_80390CB4 +/* 80390CAC 0038DC0C 38 A3 FF C9 */ addi r5, r3, -55 +/* 80390CB0 0038DC10 48 00 00 08 */ b lbl_80390CB8 +lbl_80390CB4: +/* 80390CB4 0038DC14 38 A3 FF D0 */ addi r5, r3, -48 +lbl_80390CB8: +/* 80390CB8 0038DC18 57 24 0F FE */ srwi r4, r25, 0x1f +/* 80390CBC 0038DC1C 57 20 07 FE */ clrlwi r0, r25, 0x1f +/* 80390CC0 0038DC20 7C 03 22 78 */ xor r3, r0, r4 +/* 80390CC4 0038DC24 54 A0 25 36 */ rlwinm r0, r5, 4, 0x14, 0x1b +/* 80390CC8 0038DC28 7C 64 18 51 */ subf. r3, r4, r3 +/* 80390CCC 0038DC2C 54 A3 06 3E */ clrlwi r3, r5, 0x18 +/* 80390CD0 0038DC30 7C C0 03 78 */ or r0, r6, r0 +/* 80390CD4 0038DC34 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 80390CD8 0038DC38 41 82 00 0C */ beq lbl_80390CE4 +/* 80390CDC 0038DC3C 7C C0 1B 78 */ or r0, r6, r3 +/* 80390CE0 0038DC40 54 05 06 3E */ clrlwi r5, r0, 0x18 +lbl_80390CE4: +/* 80390CE4 0038DC44 57 20 0F FE */ srwi r0, r25, 0x1f +/* 80390CE8 0038DC48 7E 0C 83 78 */ mr r12, r16 +/* 80390CEC 0038DC4C 7C 00 CA 14 */ add r0, r0, r25 +/* 80390CF0 0038DC50 7E 23 8B 78 */ mr r3, r17 +/* 80390CF4 0038DC54 7C 00 0E 70 */ srawi r0, r0, 1 +/* 80390CF8 0038DC58 38 80 00 00 */ li r4, 0 +/* 80390CFC 0038DC5C 7C BA 01 AE */ stbx r5, r26, r0 +/* 80390D00 0038DC60 38 A0 00 00 */ li r5, 0 +/* 80390D04 0038DC64 7D 89 03 A6 */ mtctr r12 +/* 80390D08 0038DC68 3B 39 00 01 */ addi r25, r25, 1 +/* 80390D0C 0038DC6C 3B DE 00 01 */ addi r30, r30, 1 +/* 80390D10 0038DC70 4E 80 04 21 */ bctrl +/* 80390D14 0038DC74 7C 64 1B 78 */ mr r4, r3 +/* 80390D18 0038DC78 48 00 02 94 */ b lbl_80390FAC +lbl_80390D1C: +/* 80390D1C 0038DC7C 7E 0C 83 78 */ mr r12, r16 +/* 80390D20 0038DC80 7E 23 8B 78 */ mr r3, r17 +/* 80390D24 0038DC84 38 80 00 00 */ li r4, 0 +/* 80390D28 0038DC88 38 A0 00 00 */ li r5, 0 +/* 80390D2C 0038DC8C 7D 89 03 A6 */ mtctr r12 +/* 80390D30 0038DC90 3B DE 00 01 */ addi r30, r30, 1 +/* 80390D34 0038DC94 4E 80 04 21 */ bctrl +/* 80390D38 0038DC98 7C 64 1B 78 */ mr r4, r3 +/* 80390D3C 0038DC9C 48 00 02 70 */ b lbl_80390FAC +lbl_80390D40: +/* 80390D40 0038DCA0 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390D44 0038DCA4 54 85 06 3E */ clrlwi r5, r4, 0x18 +/* 80390D48 0038DCA8 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390D4C 0038DCAC 7C 03 28 AE */ lbzx r0, r3, r5 +/* 80390D50 0038DCB0 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a +/* 80390D54 0038DCB4 40 82 00 0C */ bne lbl_80390D60 +/* 80390D58 0038DCB8 3B E0 00 10 */ li r31, 0x10 +/* 80390D5C 0038DCBC 48 00 02 50 */ b lbl_80390FAC +lbl_80390D60: +/* 80390D60 0038DCC0 2C 19 00 11 */ cmpwi r25, 0x11 +/* 80390D64 0038DCC4 40 80 00 A8 */ bge lbl_80390E0C +/* 80390D68 0038DCC8 57 20 0F FE */ srwi r0, r25, 0x1f +/* 80390D6C 0038DCCC 2C 04 FF FF */ cmpwi r4, -1 +/* 80390D70 0038DCD0 7C 00 CA 14 */ add r0, r0, r25 +/* 80390D74 0038DCD4 7C 00 0E 70 */ srawi r0, r0, 1 +/* 80390D78 0038DCD8 7C DA 00 AE */ lbzx r6, r26, r0 +/* 80390D7C 0038DCDC 40 82 00 0C */ bne lbl_80390D88 +/* 80390D80 0038DCE0 38 60 FF FF */ li r3, -1 +/* 80390D84 0038DCE4 48 00 00 10 */ b lbl_80390D94 +lbl_80390D88: +/* 80390D88 0038DCE8 3C 60 80 3F */ lis r3, lbl_803F2C20@ha +/* 80390D8C 0038DCEC 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l +/* 80390D90 0038DCF0 7C 63 28 AE */ lbzx r3, r3, r5 +lbl_80390D94: +/* 80390D94 0038DCF4 2C 03 00 41 */ cmpwi r3, 0x41 +/* 80390D98 0038DCF8 41 80 00 0C */ blt lbl_80390DA4 +/* 80390D9C 0038DCFC 38 A3 FF C9 */ addi r5, r3, -55 +/* 80390DA0 0038DD00 48 00 00 08 */ b lbl_80390DA8 +lbl_80390DA4: +/* 80390DA4 0038DD04 38 A3 FF D0 */ addi r5, r3, -48 +lbl_80390DA8: +/* 80390DA8 0038DD08 57 24 0F FE */ srwi r4, r25, 0x1f +/* 80390DAC 0038DD0C 57 20 07 FE */ clrlwi r0, r25, 0x1f +/* 80390DB0 0038DD10 7C 03 22 78 */ xor r3, r0, r4 +/* 80390DB4 0038DD14 54 A0 25 36 */ rlwinm r0, r5, 4, 0x14, 0x1b +/* 80390DB8 0038DD18 7C 64 18 51 */ subf. r3, r4, r3 +/* 80390DBC 0038DD1C 54 A3 06 3E */ clrlwi r3, r5, 0x18 +/* 80390DC0 0038DD20 7C C0 03 78 */ or r0, r6, r0 +/* 80390DC4 0038DD24 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 80390DC8 0038DD28 41 82 00 0C */ beq lbl_80390DD4 +/* 80390DCC 0038DD2C 7C C0 1B 78 */ or r0, r6, r3 +/* 80390DD0 0038DD30 54 05 06 3E */ clrlwi r5, r0, 0x18 +lbl_80390DD4: +/* 80390DD4 0038DD34 57 20 0F FE */ srwi r0, r25, 0x1f +/* 80390DD8 0038DD38 7E 0C 83 78 */ mr r12, r16 +/* 80390DDC 0038DD3C 7C 00 CA 14 */ add r0, r0, r25 +/* 80390DE0 0038DD40 7E 23 8B 78 */ mr r3, r17 +/* 80390DE4 0038DD44 7C 00 0E 70 */ srawi r0, r0, 1 +/* 80390DE8 0038DD48 38 80 00 00 */ li r4, 0 +/* 80390DEC 0038DD4C 7C BA 01 AE */ stbx r5, r26, r0 +/* 80390DF0 0038DD50 38 A0 00 00 */ li r5, 0 +/* 80390DF4 0038DD54 7D 89 03 A6 */ mtctr r12 +/* 80390DF8 0038DD58 3B 39 00 01 */ addi r25, r25, 1 +/* 80390DFC 0038DD5C 3B DE 00 01 */ addi r30, r30, 1 +/* 80390E00 0038DD60 4E 80 04 21 */ bctrl +/* 80390E04 0038DD64 7C 64 1B 78 */ mr r4, r3 +/* 80390E08 0038DD68 48 00 01 A4 */ b lbl_80390FAC +lbl_80390E0C: +/* 80390E0C 0038DD6C 7E 0C 83 78 */ mr r12, r16 +/* 80390E10 0038DD70 7E 23 8B 78 */ mr r3, r17 +/* 80390E14 0038DD74 38 80 00 00 */ li r4, 0 +/* 80390E18 0038DD78 38 A0 00 00 */ li r5, 0 +/* 80390E1C 0038DD7C 7D 89 03 A6 */ mtctr r12 +/* 80390E20 0038DD80 3B DE 00 01 */ addi r30, r30, 1 +/* 80390E24 0038DD84 4E 80 04 21 */ bctrl +/* 80390E28 0038DD88 7C 64 1B 78 */ mr r4, r3 +/* 80390E2C 0038DD8C 48 00 01 80 */ b lbl_80390FAC +lbl_80390E30: +/* 80390E30 0038DD90 2C 04 FF FF */ cmpwi r4, -1 +/* 80390E34 0038DD94 40 82 00 0C */ bne lbl_80390E40 +/* 80390E38 0038DD98 38 00 FF FF */ li r0, -1 +/* 80390E3C 0038DD9C 48 00 00 14 */ b lbl_80390E50 +lbl_80390E40: +/* 80390E40 0038DDA0 3C 60 80 3F */ lis r3, lbl_803F2C20@ha +/* 80390E44 0038DDA4 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80390E48 0038DDA8 38 63 2C 20 */ addi r3, r3, lbl_803F2C20@l +/* 80390E4C 0038DDAC 7C 03 00 AE */ lbzx r0, r3, r0 +lbl_80390E50: +/* 80390E50 0038DDB0 2C 00 00 50 */ cmpwi r0, 0x50 +/* 80390E54 0038DDB4 40 82 00 30 */ bne lbl_80390E84 +/* 80390E58 0038DDB8 7E 0C 83 78 */ mr r12, r16 +/* 80390E5C 0038DDBC 7E 23 8B 78 */ mr r3, r17 +/* 80390E60 0038DDC0 3B E0 00 20 */ li r31, 0x20 +/* 80390E64 0038DDC4 38 80 00 00 */ li r4, 0 +/* 80390E68 0038DDC8 38 A0 00 00 */ li r5, 0 +/* 80390E6C 0038DDCC 7D 89 03 A6 */ mtctr r12 +/* 80390E70 0038DDD0 3B 18 00 01 */ addi r24, r24, 1 +/* 80390E74 0038DDD4 3B DE 00 01 */ addi r30, r30, 1 +/* 80390E78 0038DDD8 4E 80 04 21 */ bctrl +/* 80390E7C 0038DDDC 7C 64 1B 78 */ mr r4, r3 +/* 80390E80 0038DDE0 48 00 01 2C */ b lbl_80390FAC +lbl_80390E84: +/* 80390E84 0038DDE4 39 E0 08 00 */ li r15, 0x800 +/* 80390E88 0038DDE8 48 00 01 24 */ b lbl_80390FAC +lbl_80390E8C: +/* 80390E8C 0038DDEC 2C 04 00 2D */ cmpwi r4, 0x2d +/* 80390E90 0038DDF0 3B 18 00 01 */ addi r24, r24, 1 +/* 80390E94 0038DDF4 40 82 00 10 */ bne lbl_80390EA4 +/* 80390E98 0038DDF8 38 00 00 01 */ li r0, 1 +/* 80390E9C 0038DDFC 90 01 00 58 */ stw r0, 0x58(r1) +/* 80390EA0 0038DE00 48 00 00 24 */ b lbl_80390EC4 +lbl_80390EA4: +/* 80390EA4 0038DE04 2C 04 00 2B */ cmpwi r4, 0x2b +/* 80390EA8 0038DE08 41 82 00 1C */ beq lbl_80390EC4 +/* 80390EAC 0038DE0C 7E 0C 83 78 */ mr r12, r16 +/* 80390EB0 0038DE10 7E 23 8B 78 */ mr r3, r17 +/* 80390EB4 0038DE14 38 A0 00 01 */ li r5, 1 +/* 80390EB8 0038DE18 7D 89 03 A6 */ mtctr r12 +/* 80390EBC 0038DE1C 4E 80 04 21 */ bctrl +/* 80390EC0 0038DE20 3B 18 FF FF */ addi r24, r24, -1 +lbl_80390EC4: +/* 80390EC4 0038DE24 7E 0C 83 78 */ mr r12, r16 +/* 80390EC8 0038DE28 7E 23 8B 78 */ mr r3, r17 +/* 80390ECC 0038DE2C 3B E0 00 40 */ li r31, 0x40 +/* 80390ED0 0038DE30 38 80 00 00 */ li r4, 0 +/* 80390ED4 0038DE34 38 A0 00 00 */ li r5, 0 +/* 80390ED8 0038DE38 7D 89 03 A6 */ mtctr r12 +/* 80390EDC 0038DE3C 3B DE 00 01 */ addi r30, r30, 1 +/* 80390EE0 0038DE40 4E 80 04 21 */ bctrl +/* 80390EE4 0038DE44 7C 64 1B 78 */ mr r4, r3 +/* 80390EE8 0038DE48 48 00 00 C4 */ b lbl_80390FAC +lbl_80390EEC: +/* 80390EEC 0038DE4C 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390EF0 0038DE50 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80390EF4 0038DE54 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390EF8 0038DE58 7C 03 00 AE */ lbzx r0, r3, r0 +/* 80390EFC 0038DE5C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80390F00 0038DE60 40 82 00 0C */ bne lbl_80390F0C +/* 80390F04 0038DE64 39 E0 10 00 */ li r15, 0x1000 +/* 80390F08 0038DE68 48 00 00 A4 */ b lbl_80390FAC +lbl_80390F0C: +/* 80390F0C 0038DE6C 2C 04 00 30 */ cmpwi r4, 0x30 +/* 80390F10 0038DE70 40 82 00 30 */ bne lbl_80390F40 +/* 80390F14 0038DE74 7E 0C 83 78 */ mr r12, r16 +/* 80390F18 0038DE78 7E 23 8B 78 */ mr r3, r17 +/* 80390F1C 0038DE7C 3B E0 00 80 */ li r31, 0x80 +/* 80390F20 0038DE80 38 80 00 00 */ li r4, 0 +/* 80390F24 0038DE84 38 A0 00 00 */ li r5, 0 +/* 80390F28 0038DE88 7D 89 03 A6 */ mtctr r12 +/* 80390F2C 0038DE8C 3B 18 00 01 */ addi r24, r24, 1 +/* 80390F30 0038DE90 3B DE 00 01 */ addi r30, r30, 1 +/* 80390F34 0038DE94 4E 80 04 21 */ bctrl +/* 80390F38 0038DE98 7C 64 1B 78 */ mr r4, r3 +/* 80390F3C 0038DE9C 48 00 00 70 */ b lbl_80390FAC +lbl_80390F40: +/* 80390F40 0038DEA0 3B E0 01 00 */ li r31, 0x100 +/* 80390F44 0038DEA4 48 00 00 68 */ b lbl_80390FAC +lbl_80390F48: +/* 80390F48 0038DEA8 3C 60 80 3F */ lis r3, lbl_803F2A20@ha +/* 80390F4C 0038DEAC 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80390F50 0038DEB0 38 63 2A 20 */ addi r3, r3, lbl_803F2A20@l +/* 80390F54 0038DEB4 7C 03 00 AE */ lbzx r0, r3, r0 +/* 80390F58 0038DEB8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80390F5C 0038DEBC 40 82 00 0C */ bne lbl_80390F68 +/* 80390F60 0038DEC0 39 E0 08 00 */ li r15, 0x800 +/* 80390F64 0038DEC4 48 00 00 48 */ b lbl_80390FAC +lbl_80390F68: +/* 80390F68 0038DEC8 1C 16 00 0A */ mulli r0, r22, 0xa +/* 80390F6C 0038DECC 2C 1C 7F FF */ cmpwi r28, 0x7fff +/* 80390F70 0038DED0 7C 64 02 14 */ add r3, r4, r0 +/* 80390F74 0038DED4 38 03 FF D0 */ addi r0, r3, -48 +/* 80390F78 0038DED8 7C 16 07 34 */ extsh r22, r0 +/* 80390F7C 0038DEDC 40 81 00 0C */ ble lbl_80390F88 +/* 80390F80 0038DEE0 38 00 00 01 */ li r0, 1 +/* 80390F84 0038DEE4 90 12 00 00 */ stw r0, 0(r18) +lbl_80390F88: +/* 80390F88 0038DEE8 7E 0C 83 78 */ mr r12, r16 +/* 80390F8C 0038DEEC 7E 23 8B 78 */ mr r3, r17 +/* 80390F90 0038DEF0 38 80 00 00 */ li r4, 0 +/* 80390F94 0038DEF4 38 A0 00 00 */ li r5, 0 +/* 80390F98 0038DEF8 7D 89 03 A6 */ mtctr r12 +/* 80390F9C 0038DEFC 3B 18 00 01 */ addi r24, r24, 1 +/* 80390FA0 0038DF00 3B DE 00 01 */ addi r30, r30, 1 +/* 80390FA4 0038DF04 4E 80 04 21 */ bctrl +/* 80390FA8 0038DF08 7C 64 1B 78 */ mr r4, r3 +lbl_80390FAC: +/* 80390FAC 0038DF0C 80 01 00 08 */ lwz r0, 8(r1) +/* 80390FB0 0038DF10 7C 1E 00 00 */ cmpw r30, r0 +/* 80390FB4 0038DF14 41 81 00 14 */ bgt lbl_80390FC8 +/* 80390FB8 0038DF18 2C 04 FF FF */ cmpwi r4, -1 +/* 80390FBC 0038DF1C 41 82 00 0C */ beq lbl_80390FC8 +/* 80390FC0 0038DF20 55 E0 04 E9 */ rlwinm. r0, r15, 0, 0x13, 0x14 +/* 80390FC4 0038DF24 41 82 F3 A4 */ beq lbl_80390368 +lbl_80390FC8: +/* 80390FC8 0038DF28 71 EF 0E 2C */ andi. r15, r15, 0xe2c +/* 80390FCC 0038DF2C 40 82 00 14 */ bne lbl_80390FE0 +/* 80390FD0 0038DF30 80 61 00 0C */ lwz r3, 0xc(r1) +/* 80390FD4 0038DF34 38 00 00 00 */ li r0, 0 +/* 80390FD8 0038DF38 90 03 00 00 */ stw r0, 0(r3) +/* 80390FDC 0038DF3C 48 00 00 14 */ b lbl_80390FF0 +lbl_80390FE0: +/* 80390FE0 0038DF40 7C 7E EA 14 */ add r3, r30, r29 +/* 80390FE4 0038DF44 38 03 FF FF */ addi r0, r3, -1 +/* 80390FE8 0038DF48 80 61 00 0C */ lwz r3, 0xc(r1) +/* 80390FEC 0038DF4C 90 03 00 00 */ stw r0, 0(r3) +lbl_80390FF0: +/* 80390FF0 0038DF50 7E 0C 83 78 */ mr r12, r16 +/* 80390FF4 0038DF54 7E 23 8B 78 */ mr r3, r17 +/* 80390FF8 0038DF58 38 A0 00 01 */ li r5, 1 +/* 80390FFC 0038DF5C 7D 89 03 A6 */ mtctr r12 +/* 80391000 0038DF60 4E 80 04 21 */ bctrl +/* 80391004 0038DF64 2C 1F 00 00 */ cmpwi r31, 0 +/* 80391008 0038DF68 40 82 01 48 */ bne lbl_80391150 +/* 8039100C 0038DF6C 80 01 00 60 */ lwz r0, 0x60(r1) +/* 80391010 0038DF70 2C 00 00 00 */ cmpwi r0, 0 +/* 80391014 0038DF74 41 82 00 08 */ beq lbl_8039101C +/* 80391018 0038DF78 7F 9C 00 D0 */ neg r28, r28 +lbl_8039101C: +/* 8039101C 0038DF7C 88 61 00 30 */ lbz r3, 0x30(r1) +/* 80391020 0038DF80 38 01 00 2C */ addi r0, r1, 0x2c +/* 80391024 0038DF84 38 83 00 05 */ addi r4, r3, 5 +/* 80391028 0038DF88 7C 80 22 14 */ add r4, r0, r4 +/* 8039102C 0038DF8C 48 00 00 08 */ b lbl_80391034 +lbl_80391030: +/* 80391030 0038DF90 3B 7B 00 01 */ addi r27, r27, 1 +lbl_80391034: +/* 80391034 0038DF94 2C 03 00 00 */ cmpwi r3, 0 +/* 80391038 0038DF98 38 63 FF FF */ addi r3, r3, -1 +/* 8039103C 0038DF9C 41 82 00 10 */ beq lbl_8039104C +/* 80391040 0038DFA0 8C 04 FF FF */ lbzu r0, -1(r4) +/* 80391044 0038DFA4 28 00 00 30 */ cmplwi r0, 0x30 +/* 80391048 0038DFA8 41 82 FF E8 */ beq lbl_80391030 +lbl_8039104C: +/* 8039104C 0038DFAC 38 03 00 01 */ addi r0, r3, 1 +/* 80391050 0038DFB0 54 05 06 3F */ clrlwi. r5, r0, 0x18 +/* 80391054 0038DFB4 98 01 00 30 */ stb r0, 0x30(r1) +/* 80391058 0038DFB8 40 82 00 18 */ bne lbl_80391070 +/* 8039105C 0038DFBC 38 05 00 01 */ addi r0, r5, 1 +/* 80391060 0038DFC0 38 61 00 31 */ addi r3, r1, 0x31 +/* 80391064 0038DFC4 38 80 00 30 */ li r4, 0x30 +/* 80391068 0038DFC8 98 01 00 30 */ stb r0, 0x30(r1) +/* 8039106C 0038DFCC 7C 83 29 AE */ stbx r4, r3, r5 +lbl_80391070: +/* 80391070 0038DFD0 7F 9C DA 14 */ add r28, r28, r27 +/* 80391074 0038DFD4 2C 1C 80 00 */ cmpwi r28, -32768 +/* 80391078 0038DFD8 41 80 00 0C */ blt lbl_80391084 +/* 8039107C 0038DFDC 2C 1C 7F FF */ cmpwi r28, 0x7fff +/* 80391080 0038DFE0 40 81 00 0C */ ble lbl_8039108C +lbl_80391084: +/* 80391084 0038DFE4 38 00 00 01 */ li r0, 1 +/* 80391088 0038DFE8 90 12 00 00 */ stw r0, 0(r18) +lbl_8039108C: +/* 8039108C 0038DFEC 80 12 00 00 */ lwz r0, 0(r18) +/* 80391090 0038DFF0 2C 00 00 00 */ cmpwi r0, 0 +/* 80391094 0038DFF4 41 82 00 3C */ beq lbl_803910D0 +/* 80391098 0038DFF8 80 01 00 60 */ lwz r0, 0x60(r1) +/* 8039109C 0038DFFC 2C 00 00 00 */ cmpwi r0, 0 +/* 803910A0 0038E000 41 82 00 0C */ beq lbl_803910AC +/* 803910A4 0038E004 C8 22 CF 88 */ lfd f1, lbl_805AECA8@sda21(r2) +/* 803910A8 0038E008 48 00 01 B8 */ b lbl_80391260 +lbl_803910AC: +/* 803910AC 0038E00C 2C 0E 00 00 */ cmpwi r14, 0 +/* 803910B0 0038E010 41 82 00 14 */ beq lbl_803910C4 +/* 803910B4 0038E014 3C 60 80 5B */ lis r3, lbl_805A8BB8@ha +/* 803910B8 0038E018 C8 03 8B B8 */ lfd f0, lbl_805A8BB8@l(r3) +/* 803910BC 0038E01C FC 20 00 50 */ fneg f1, f0 +/* 803910C0 0038E020 48 00 01 A0 */ b lbl_80391260 +lbl_803910C4: +/* 803910C4 0038E024 3C 60 80 5B */ lis r3, lbl_805A8BB8@ha +/* 803910C8 0038E028 C8 23 8B B8 */ lfd f1, lbl_805A8BB8@l(r3) +/* 803910CC 0038E02C 48 00 01 94 */ b lbl_80391260 +lbl_803910D0: +/* 803910D0 0038E030 B3 81 00 2E */ sth r28, 0x2e(r1) +/* 803910D4 0038E034 38 61 00 2C */ addi r3, r1, 0x2c +/* 803910D8 0038E038 4B FF A0 D9 */ bl sub_8038b1b0 +/* 803910DC 0038E03C C8 02 CF 88 */ lfd f0, lbl_805AECA8@sda21(r2) +/* 803910E0 0038E040 D8 21 00 18 */ stfd f1, 0x18(r1) +/* 803910E4 0038E044 FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 803910E8 0038E048 41 82 00 20 */ beq lbl_80391108 +/* 803910EC 0038E04C 3C 60 80 5B */ lis r3, lbl_805A8BC0@ha +/* 803910F0 0038E050 C8 03 8B C0 */ lfd f0, lbl_805A8BC0@l(r3) +/* 803910F4 0038E054 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803910F8 0038E058 40 80 00 10 */ bge lbl_80391108 +/* 803910FC 0038E05C 38 00 00 01 */ li r0, 1 +/* 80391100 0038E060 90 12 00 00 */ stw r0, 0(r18) +/* 80391104 0038E064 48 00 00 28 */ b lbl_8039112C +lbl_80391108: +/* 80391108 0038E068 3C 60 80 5B */ lis r3, lbl_805A8BC8@ha +/* 8039110C 0038E06C C8 03 8B C8 */ lfd f0, lbl_805A8BC8@l(r3) +/* 80391110 0038E070 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 80391114 0038E074 40 81 00 18 */ ble lbl_8039112C +/* 80391118 0038E078 38 00 00 01 */ li r0, 1 +/* 8039111C 0038E07C 3C 60 80 5B */ lis r3, lbl_805A8BB8@ha +/* 80391120 0038E080 90 12 00 00 */ stw r0, 0(r18) +/* 80391124 0038E084 C8 03 8B B8 */ lfd f0, lbl_805A8BB8@l(r3) +/* 80391128 0038E088 D8 01 00 18 */ stfd f0, 0x18(r1) +lbl_8039112C: +/* 8039112C 0038E08C 2C 0E 00 00 */ cmpwi r14, 0 +/* 80391130 0038E090 41 82 00 18 */ beq lbl_80391148 +/* 80391134 0038E094 2C 0F 00 00 */ cmpwi r15, 0 +/* 80391138 0038E098 41 82 00 10 */ beq lbl_80391148 +/* 8039113C 0038E09C C8 01 00 18 */ lfd f0, 0x18(r1) +/* 80391140 0038E0A0 FC 00 00 50 */ fneg f0, f0 +/* 80391144 0038E0A4 D8 01 00 18 */ stfd f0, 0x18(r1) +lbl_80391148: +/* 80391148 0038E0A8 C8 21 00 18 */ lfd f1, 0x18(r1) +/* 8039114C 0038E0AC 48 00 01 14 */ b lbl_80391260 +lbl_80391150: +/* 80391150 0038E0B0 C8 21 00 18 */ lfd f1, 0x18(r1) +/* 80391154 0038E0B4 C8 02 CF 90 */ lfd f0, lbl_805AECB0@sda21(r2) +/* 80391158 0038E0B8 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 8039115C 0038E0BC 41 82 00 F8 */ beq lbl_80391254 +/* 80391160 0038E0C0 80 01 00 58 */ lwz r0, 0x58(r1) +/* 80391164 0038E0C4 2C 00 00 00 */ cmpwi r0, 0 +/* 80391168 0038E0C8 41 82 00 30 */ beq lbl_80391198 +/* 8039116C 0038E0CC 7C 16 00 D0 */ neg r0, r22 +/* 80391170 0038E0D0 7C 16 07 34 */ extsh r22, r0 +/* 80391174 0038E0D4 48 00 00 24 */ b lbl_80391198 +lbl_80391178: +/* 80391178 0038E0D8 80 81 00 18 */ lwz r4, 0x18(r1) +/* 8039117C 0038E0DC 3A D6 00 01 */ addi r22, r22, 1 +/* 80391180 0038E0E0 80 61 00 1C */ lwz r3, 0x1c(r1) +/* 80391184 0038E0E4 54 80 F8 7E */ srwi r0, r4, 1 +/* 80391188 0038E0E8 54 63 F8 3E */ rotlwi r3, r3, 0x1f +/* 8039118C 0038E0EC 90 01 00 18 */ stw r0, 0x18(r1) +/* 80391190 0038E0F0 50 83 F8 00 */ rlwimi r3, r4, 0x1f, 0, 0 +/* 80391194 0038E0F4 90 61 00 1C */ stw r3, 0x1c(r1) +lbl_80391198: +/* 80391198 0038E0F8 A8 61 00 18 */ lha r3, 0x18(r1) +/* 8039119C 0038E0FC 54 60 06 36 */ rlwinm r0, r3, 0, 0x18, 0x1b +/* 803911A0 0038E100 2C 00 00 10 */ cmpwi r0, 0x10 +/* 803911A4 0038E104 40 82 FF D4 */ bne lbl_80391178 +/* 803911A8 0038E108 38 17 FF FF */ addi r0, r23, -1 +/* 803911AC 0038E10C 54 64 07 3E */ clrlwi r4, r3, 0x1c +/* 803911B0 0038E110 54 05 10 3A */ slwi r5, r0, 2 +/* 803911B4 0038E114 80 01 00 5C */ lwz r0, 0x5c(r1) +/* 803911B8 0038E118 B0 81 00 18 */ sth r4, 0x18(r1) +/* 803911BC 0038E11C 7C 60 CA 14 */ add r3, r0, r25 +/* 803911C0 0038E120 7C 16 2A 14 */ add r0, r22, r5 +/* 803911C4 0038E124 7C 16 07 34 */ extsh r22, r0 +/* 803911C8 0038E128 C8 22 CF 88 */ lfd f1, lbl_805AECA8@sda21(r2) +/* 803911CC 0038E12C 38 03 00 01 */ addi r0, r3, 1 +/* 803911D0 0038E130 38 76 03 FF */ addi r3, r22, 0x3ff +/* 803911D4 0038E134 50 64 20 36 */ rlwimi r4, r3, 4, 0, 0x1b +/* 803911D8 0038E138 7C 00 C2 14 */ add r0, r0, r24 +/* 803911DC 0038E13C B0 81 00 18 */ sth r4, 0x18(r1) +/* 803911E0 0038E140 7C 1D 02 14 */ add r0, r29, r0 +/* 803911E4 0038E144 80 61 00 0C */ lwz r3, 0xc(r1) +/* 803911E8 0038E148 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 803911EC 0038E14C 90 03 00 00 */ stw r0, 0(r3) +/* 803911F0 0038E150 FC 01 10 00 */ fcmpu cr0, f1, f2 +/* 803911F4 0038E154 41 82 00 24 */ beq lbl_80391218 +/* 803911F8 0038E158 3C 60 80 5B */ lis r3, lbl_805A8BC0@ha +/* 803911FC 0038E15C C8 03 8B C0 */ lfd f0, lbl_805A8BC0@l(r3) +/* 80391200 0038E160 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 80391204 0038E164 40 80 00 14 */ bge lbl_80391218 +/* 80391208 0038E168 38 00 00 01 */ li r0, 1 +/* 8039120C 0038E16C D8 21 00 18 */ stfd f1, 0x18(r1) +/* 80391210 0038E170 90 12 00 00 */ stw r0, 0(r18) +/* 80391214 0038E174 48 00 00 28 */ b lbl_8039123C +lbl_80391218: +/* 80391218 0038E178 3C 60 80 5B */ lis r3, lbl_805A8BC8@ha +/* 8039121C 0038E17C C8 03 8B C8 */ lfd f0, lbl_805A8BC8@l(r3) +/* 80391220 0038E180 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 80391224 0038E184 40 81 00 18 */ ble lbl_8039123C +/* 80391228 0038E188 38 00 00 01 */ li r0, 1 +/* 8039122C 0038E18C 3C 60 80 5B */ lis r3, lbl_805A8BB8@ha +/* 80391230 0038E190 90 12 00 00 */ stw r0, 0(r18) +/* 80391234 0038E194 C8 03 8B B8 */ lfd f0, lbl_805A8BB8@l(r3) +/* 80391238 0038E198 D8 01 00 18 */ stfd f0, 0x18(r1) +lbl_8039123C: +/* 8039123C 0038E19C 2C 0E 00 00 */ cmpwi r14, 0 +/* 80391240 0038E1A0 41 82 00 1C */ beq lbl_8039125C +/* 80391244 0038E1A4 A8 01 00 18 */ lha r0, 0x18(r1) +/* 80391248 0038E1A8 60 00 80 00 */ ori r0, r0, 0x8000 +/* 8039124C 0038E1AC B0 01 00 18 */ sth r0, 0x18(r1) +/* 80391250 0038E1B0 48 00 00 0C */ b lbl_8039125C +lbl_80391254: +/* 80391254 0038E1B4 C8 02 CF 88 */ lfd f0, lbl_805AECA8@sda21(r2) +/* 80391258 0038E1B8 D8 01 00 18 */ stfd f0, 0x18(r1) +lbl_8039125C: +/* 8039125C 0038E1BC C8 21 00 18 */ lfd f1, 0x18(r1) +lbl_80391260: +/* 80391260 0038E1C0 B9 C1 00 68 */ lmw r14, 0x68(r1) +/* 80391264 0038E1C4 80 01 00 B4 */ lwz r0, 0xb4(r1) +/* 80391268 0038E1C8 7C 08 03 A6 */ mtlr r0 +/* 8039126C 0038E1CC 38 21 00 B0 */ addi r1, r1, 0xb0 +/* 80391270 0038E1D0 4E 80 00 20 */ blr diff --git a/asm/Runtime/PPCEABI/H/uart_console_io.s b/asm/Runtime/PPCEABI/H/uart_console_io.s new file mode 100644 index 00000000..588105e7 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/uart_console_io.s @@ -0,0 +1,68 @@ +.include "macros.inc" + +.section .text, "ax" + +.if 0 +/* THIS DOESN'T WORK???? */ + +.global __close_console +__close_console: +/* 80391274 0038E1D4 38 60 00 00 */ li r3, 0 +/* 80391278 0038E1D8 4E 80 00 20 */ blr + +.global __write_console +__write_console: +/* 8039127C 0038E1DC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80391280 0038E1E0 7C 08 02 A6 */ mflr r0 +/* 80391284 0038E1E4 90 01 00 24 */ stw r0, 0x24(r1) +/* 80391288 0038E1E8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039128C 0038E1EC 7C DF 33 78 */ mr r31, r6 +/* 80391290 0038E1F0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80391294 0038E1F4 7C BE 2B 78 */ mr r30, r5 +/* 80391298 0038E1F8 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039129C 0038E1FC 7C 9D 23 78 */ mr r29, r4 +/* 803912A0 0038E200 93 81 00 10 */ stw r28, 0x10(r1) +/* 803912A4 0038E204 7C 7C 1B 78 */ mr r28, r3 +/* 803912A8 0038E208 38 60 00 00 */ li r3, 0 +/* 803912AC 0038E20C 80 0D AE 18 */ lwz r0, lbl_805A99D8@sda21(r13) +/* 803912B0 0038E210 2C 00 00 00 */ cmpwi r0, 0 +/* 803912B4 0038E214 40 82 00 20 */ bne lbl_803912D4 +/* 803912B8 0038E218 3C 60 00 01 */ lis r3, 0x0000E100@ha +/* 803912BC 0038E21C 38 63 E1 00 */ addi r3, r3, 0x0000E100@l +/* 803912C0 0038E220 48 03 06 31 */ bl InitializeUART +/* 803912C4 0038E224 2C 03 00 00 */ cmpwi r3, 0 +/* 803912C8 0038E228 40 82 00 0C */ bne lbl_803912D4 +/* 803912CC 0038E22C 38 00 00 01 */ li r0, 1 +/* 803912D0 0038E230 90 0D AE 18 */ stw r0, lbl_805A99D8@sda21(r13) +lbl_803912D4: +/* 803912D4 0038E234 2C 03 00 00 */ cmpwi r3, 0 +/* 803912D8 0038E238 41 82 00 0C */ beq lbl_803912E4 +/* 803912DC 0038E23C 38 60 00 01 */ li r3, 1 +/* 803912E0 0038E240 48 00 00 40 */ b lbl_80391320 +lbl_803912E4: +/* 803912E4 0038E244 80 9E 00 00 */ lwz r4, 0(r30) +/* 803912E8 0038E248 7F A3 EB 78 */ mr r3, r29 +/* 803912EC 0038E24C 48 03 06 75 */ bl WriteUARTN +/* 803912F0 0038E250 2C 03 00 00 */ cmpwi r3, 0 +/* 803912F4 0038E254 41 82 00 14 */ beq lbl_80391308 +/* 803912F8 0038E258 38 00 00 00 */ li r0, 0 +/* 803912FC 0038E25C 38 60 00 01 */ li r3, 1 +/* 80391300 0038E260 90 1E 00 00 */ stw r0, 0(r30) +/* 80391304 0038E264 48 00 00 1C */ b lbl_80391320 +lbl_80391308: +/* 80391308 0038E268 7F 83 E3 78 */ mr r3, r28 +/* 8039130C 0038E26C 7F A4 EB 78 */ mr r4, r29 +/* 80391310 0038E270 7F C5 F3 78 */ mr r5, r30 +/* 80391314 0038E274 7F E6 FB 78 */ mr r6, r31 +/* 80391318 0038E278 4B C7 23 39 */ bl sub_80003650 +/* 8039131C 0038E27C 38 60 00 00 */ li r3, 0 +lbl_80391320: +/* 80391320 0038E280 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80391324 0038E284 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80391328 0038E288 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039132C 0038E28C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 80391330 0038E290 83 81 00 10 */ lwz r28, 0x10(r1) +/* 80391334 0038E294 7C 08 03 A6 */ mtlr r0 +/* 80391338 0038E298 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039133C 0038E29C 4E 80 00 20 */ blr +.endif diff --git a/asm/Runtime/PPCEABI/H/widechar_io.s b/asm/Runtime/PPCEABI/H/widechar_io.s new file mode 100644 index 00000000..b5ce43d5 --- /dev/null +++ b/asm/Runtime/PPCEABI/H/widechar_io.s @@ -0,0 +1,113 @@ +.include "macros.inc" + +.section .text, "ax" +.if 1 +/* TODO: Move __close_console and __write_console to their own file (uart_console_io), + * they're here to work around a bug with CW + */ + +.global __close_console +__close_console: +/* 80391274 0038E1D4 38 60 00 00 */ li r3, 0 +/* 80391278 0038E1D8 4E 80 00 20 */ blr + +.global __write_console +__write_console: +/* 8039127C 0038E1DC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80391280 0038E1E0 7C 08 02 A6 */ mflr r0 +/* 80391284 0038E1E4 90 01 00 24 */ stw r0, 0x24(r1) +/* 80391288 0038E1E8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039128C 0038E1EC 7C DF 33 78 */ mr r31, r6 +/* 80391290 0038E1F0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80391294 0038E1F4 7C BE 2B 78 */ mr r30, r5 +/* 80391298 0038E1F8 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039129C 0038E1FC 7C 9D 23 78 */ mr r29, r4 +/* 803912A0 0038E200 93 81 00 10 */ stw r28, 0x10(r1) +/* 803912A4 0038E204 7C 7C 1B 78 */ mr r28, r3 +/* 803912A8 0038E208 38 60 00 00 */ li r3, 0 +/* 803912AC 0038E20C 80 0D AE 18 */ lwz r0, lbl_805A99D8@sda21(r13) +/* 803912B0 0038E210 2C 00 00 00 */ cmpwi r0, 0 +/* 803912B4 0038E214 40 82 00 20 */ bne lbl_803912D4 +/* 803912B8 0038E218 3C 60 00 01 */ lis r3, 0x0000E100@ha +/* 803912BC 0038E21C 38 63 E1 00 */ addi r3, r3, 0x0000E100@l +/* 803912C0 0038E220 48 03 06 31 */ bl InitializeUART +/* 803912C4 0038E224 2C 03 00 00 */ cmpwi r3, 0 +/* 803912C8 0038E228 40 82 00 0C */ bne lbl_803912D4 +/* 803912CC 0038E22C 38 00 00 01 */ li r0, 1 +/* 803912D0 0038E230 90 0D AE 18 */ stw r0, lbl_805A99D8@sda21(r13) +lbl_803912D4: +/* 803912D4 0038E234 2C 03 00 00 */ cmpwi r3, 0 +/* 803912D8 0038E238 41 82 00 0C */ beq lbl_803912E4 +/* 803912DC 0038E23C 38 60 00 01 */ li r3, 1 +/* 803912E0 0038E240 48 00 00 40 */ b lbl_80391320 +lbl_803912E4: +/* 803912E4 0038E244 80 9E 00 00 */ lwz r4, 0(r30) +/* 803912E8 0038E248 7F A3 EB 78 */ mr r3, r29 +/* 803912EC 0038E24C 48 03 06 75 */ bl WriteUARTN +/* 803912F0 0038E250 2C 03 00 00 */ cmpwi r3, 0 +/* 803912F4 0038E254 41 82 00 14 */ beq lbl_80391308 +/* 803912F8 0038E258 38 00 00 00 */ li r0, 0 +/* 803912FC 0038E25C 38 60 00 01 */ li r3, 1 +/* 80391300 0038E260 90 1E 00 00 */ stw r0, 0(r30) +/* 80391304 0038E264 48 00 00 1C */ b lbl_80391320 +lbl_80391308: +/* 80391308 0038E268 7F 83 E3 78 */ mr r3, r28 +/* 8039130C 0038E26C 7F A4 EB 78 */ mr r4, r29 +/* 80391310 0038E270 7F C5 F3 78 */ mr r5, r30 +/* 80391314 0038E274 7F E6 FB 78 */ mr r6, r31 +/* 80391318 0038E278 4B C7 23 39 */ bl sub_80003650 +/* 8039131C 0038E27C 38 60 00 00 */ li r3, 0 +lbl_80391320: +/* 80391320 0038E280 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80391324 0038E284 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80391328 0038E288 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039132C 0038E28C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 80391330 0038E290 83 81 00 10 */ lwz r28, 0x10(r1) +/* 80391334 0038E294 7C 08 03 A6 */ mtlr r0 +/* 80391338 0038E298 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039133C 0038E29C 4E 80 00 20 */ blr +.endif +.global fwide +fwide: +/* 80391340 0038E2A0 28 03 00 00 */ cmplwi r3, 0 +/* 80391344 0038E2A4 41 82 00 10 */ beq lbl_80391354 +/* 80391348 0038E2A8 A0 03 00 04 */ lhz r0, 4(r3) +/* 8039134C 0038E2AC 54 00 D7 7F */ rlwinm. r0, r0, 0x1a, 0x1d, 0x1f +/* 80391350 0038E2B0 40 82 00 0C */ bne lbl_8039135C +lbl_80391354: +/* 80391354 0038E2B4 38 60 00 00 */ li r3, 0 +/* 80391358 0038E2B8 4E 80 00 20 */ blr +lbl_8039135C: +/* 8039135C 0038E2BC 88 A3 00 05 */ lbz r5, 5(r3) +/* 80391360 0038E2C0 54 A0 E7 BE */ rlwinm r0, r5, 0x1c, 0x1e, 0x1f +/* 80391364 0038E2C4 2C 00 00 01 */ cmpwi r0, 1 +/* 80391368 0038E2C8 41 82 00 58 */ beq lbl_803913C0 +/* 8039136C 0038E2CC 40 80 00 10 */ bge lbl_8039137C +/* 80391370 0038E2D0 2C 00 00 00 */ cmpwi r0, 0 +/* 80391374 0038E2D4 40 80 00 14 */ bge lbl_80391388 +/* 80391378 0038E2D8 4E 80 00 20 */ blr +lbl_8039137C: +/* 8039137C 0038E2DC 2C 00 00 03 */ cmpwi r0, 3 +/* 80391380 0038E2E0 4C 80 00 20 */ bgelr +/* 80391384 0038E2E4 48 00 00 34 */ b lbl_803913B8 +lbl_80391388: +/* 80391388 0038E2E8 2C 04 00 00 */ cmpwi r4, 0 +/* 8039138C 0038E2EC 40 81 00 14 */ ble lbl_803913A0 +/* 80391390 0038E2F0 38 00 00 02 */ li r0, 2 +/* 80391394 0038E2F4 50 05 26 B6 */ rlwimi r5, r0, 4, 0x1a, 0x1b +/* 80391398 0038E2F8 98 A3 00 05 */ stb r5, 5(r3) +/* 8039139C 0038E2FC 48 00 00 14 */ b lbl_803913B0 +lbl_803913A0: +/* 803913A0 0038E300 40 80 00 10 */ bge lbl_803913B0 +/* 803913A4 0038E304 38 00 00 01 */ li r0, 1 +/* 803913A8 0038E308 50 05 26 B6 */ rlwimi r5, r0, 4, 0x1a, 0x1b +/* 803913AC 0038E30C 98 A3 00 05 */ stb r5, 5(r3) +lbl_803913B0: +/* 803913B0 0038E310 7C 83 23 78 */ mr r3, r4 +/* 803913B4 0038E314 4E 80 00 20 */ blr +lbl_803913B8: +/* 803913B8 0038E318 38 60 00 01 */ li r3, 1 +/* 803913BC 0038E31C 4E 80 00 20 */ blr +lbl_803913C0: +/* 803913C0 0038E320 38 60 FF FF */ li r3, -1 +/* 803913C4 0038E324 4E 80 00 20 */ blr diff --git a/asm/musyx/chorus_fx.s b/asm/musyx/chorus_fx.s new file mode 100644 index 00000000..493c7041 --- /dev/null +++ b/asm/musyx/chorus_fx.s @@ -0,0 +1,583 @@ +.include "macros.inc" + +.section .text, "ax" + +.global do_src1 +do_src1: +/* 803B6CB0 003B3C10 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803B6CB4 003B3C14 BF 41 00 28 */ stmw r26, 0x28(r1) +/* 803B6CB8 003B3C18 80 83 00 0C */ lwz r4, 0xc(r3) +/* 803B6CBC 003B3C1C 80 A3 00 10 */ lwz r5, 0x10(r3) +/* 803B6CC0 003B3C20 80 C3 00 14 */ lwz r6, 0x14(r3) +/* 803B6CC4 003B3C24 81 03 00 1C */ lwz r8, 0x1c(r3) +/* 803B6CC8 003B3C28 80 E3 00 20 */ lwz r7, 0x20(r3) +/* 803B6CCC 003B3C2C 83 E3 00 04 */ lwz r31, 4(r3) +/* 803B6CD0 003B3C30 83 C3 00 00 */ lwz r30, 0(r3) +/* 803B6CD4 003B3C34 81 23 00 08 */ lwz r9, 8(r3) +/* 803B6CD8 003B3C38 3D 40 43 30 */ lis r10, 0x4330 +/* 803B6CDC 003B3C3C 91 41 00 08 */ stw r10, 8(r1) +/* 803B6CE0 003B3C40 91 41 00 10 */ stw r10, 0x10(r1) +/* 803B6CE4 003B3C44 91 41 00 18 */ stw r10, 0x18(r1) +/* 803B6CE8 003B3C48 91 41 00 20 */ stw r10, 0x20(r1) +/* 803B6CEC 003B3C4C 3D 40 80 5B */ lis r10, lbl_805AF438@ha +/* 803B6CF0 003B3C50 C9 2A F4 38 */ lfd f9, lbl_805AF438@l(r10) +/* 803B6CF4 003B3C54 54 AA 10 3A */ slwi r10, r5, 2 +/* 803B6CF8 003B3C58 81 69 00 00 */ lwz r11, 0(r9) +/* 803B6CFC 003B3C5C 83 A9 00 04 */ lwz r29, 4(r9) +/* 803B6D00 003B3C60 83 89 00 08 */ lwz r28, 8(r9) +/* 803B6D04 003B3C64 7F 7F 50 2E */ lwzx r27, r31, r10 +/* 803B6D08 003B3C68 6D 6B 80 00 */ xoris r11, r11, 0x8000 +/* 803B6D0C 003B3C6C 6F BD 80 00 */ xoris r29, r29, 0x8000 +/* 803B6D10 003B3C70 91 61 00 0C */ stw r11, 0xc(r1) +/* 803B6D14 003B3C74 6F 9C 80 00 */ xoris r28, r28, 0x8000 +/* 803B6D18 003B3C78 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B6D1C 003B3C7C 6F 7B 80 00 */ xoris r27, r27, 0x8000 +/* 803B6D20 003B3C80 93 81 00 1C */ stw r28, 0x1c(r1) +/* 803B6D24 003B3C84 C8 21 00 08 */ lfd f1, 8(r1) +/* 803B6D28 003B3C88 93 61 00 24 */ stw r27, 0x24(r1) +/* 803B6D2C 003B3C8C C8 41 00 10 */ lfd f2, 0x10(r1) +/* 803B6D30 003B3C90 EC 21 48 28 */ fsubs f1, f1, f9 +/* 803B6D34 003B3C94 C8 61 00 18 */ lfd f3, 0x18(r1) +/* 803B6D38 003B3C98 EC 42 48 28 */ fsubs f2, f2, f9 +/* 803B6D3C 003B3C9C C8 81 00 20 */ lfd f4, 0x20(r1) +/* 803B6D40 003B3CA0 EC 63 48 28 */ fsubs f3, f3, f9 +/* 803B6D44 003B3CA4 EC 84 48 28 */ fsubs f4, f4, f9 +/* 803B6D48 003B3CA8 3B 40 FF FC */ li r26, -4 +/* 803B6D4C 003B3CAC 3D 80 80 3F */ lis r12, lbl_803F6490@ha +/* 803B6D50 003B3CB0 39 8C 64 90 */ addi r12, r12, lbl_803F6490@l +/* 803B6D54 003B3CB4 39 20 00 A0 */ li r9, 0xa0 +/* 803B6D58 003B3CB8 7D 29 03 A6 */ mtctr r9 +lbl_803B6D5C: +/* 803B6D5C 003B3CBC 54 8A 3D 76 */ rlwinm r10, r4, 7, 0x15, 0x1b +/* 803B6D60 003B3CC0 7C 84 30 14 */ addc r4, r4, r6 +/* 803B6D64 003B3CC4 7D 4A 62 14 */ add r10, r10, r12 +/* 803B6D68 003B3CC8 7C 00 04 00 */ mcrxr cr0 +/* 803B6D6C 003B3CCC C0 AA 00 00 */ lfs f5, 0(r10) +/* 803B6D70 003B3CD0 41 82 00 34 */ beq lbl_803B6DA4 +/* 803B6D74 003B3CD4 C0 CA 00 04 */ lfs f6, 4(r10) +/* 803B6D78 003B3CD8 ED 41 01 72 */ fmuls f10, f1, f5 +/* 803B6D7C 003B3CDC C0 EA 00 08 */ lfs f7, 8(r10) +/* 803B6D80 003B3CE0 ED 42 51 BA */ fmadds f10, f2, f6, f10 +/* 803B6D84 003B3CE4 C1 0A 00 0C */ lfs f8, 0xc(r10) +/* 803B6D88 003B3CE8 ED 43 51 FA */ fmadds f10, f3, f7, f10 +/* 803B6D8C 003B3CEC 3B DE 00 04 */ addi r30, r30, 4 +/* 803B6D90 003B3CF0 ED 44 52 3A */ fmadds f10, f4, f8, f10 +/* 803B6D94 003B3CF4 FD 40 50 1E */ fctiwz f10, f10 +/* 803B6D98 003B3CF8 7D 5A F7 AE */ stfiwx f10, r26, r30 +/* 803B6D9C 003B3CFC 42 00 FF C0 */ bdnz lbl_803B6D5C +/* 803B6DA0 003B3D00 48 00 00 70 */ b lbl_803B6E10 +lbl_803B6DA4: +/* 803B6DA4 003B3D04 38 A5 00 01 */ addi r5, r5, 1 +/* 803B6DA8 003B3D08 C0 CA 00 04 */ lfs f6, 4(r10) +/* 803B6DAC 003B3D0C ED 41 01 72 */ fmuls f10, f1, f5 +/* 803B6DB0 003B3D10 7C 05 40 00 */ cmpw r5, r8 +/* 803B6DB4 003B3D14 FC 20 10 90 */ fmr f1, f2 +/* 803B6DB8 003B3D18 C0 EA 00 08 */ lfs f7, 8(r10) +/* 803B6DBC 003B3D1C ED 42 51 BA */ fmadds f10, f2, f6, f10 +/* 803B6DC0 003B3D20 FC 40 18 90 */ fmr f2, f3 +/* 803B6DC4 003B3D24 C1 0A 00 0C */ lfs f8, 0xc(r10) +/* 803B6DC8 003B3D28 ED 43 51 FA */ fmadds f10, f3, f7, f10 +/* 803B6DCC 003B3D2C 3B DE 00 04 */ addi r30, r30, 4 +/* 803B6DD0 003B3D30 FC 60 20 90 */ fmr f3, f4 +/* 803B6DD4 003B3D34 40 A2 00 08 */ bne+ lbl_803B6DDC +/* 803B6DD8 003B3D38 7C E5 3B 78 */ mr r5, r7 +lbl_803B6DDC: +/* 803B6DDC 003B3D3C ED 44 52 3A */ fmadds f10, f4, f8, f10 +/* 803B6DE0 003B3D40 54 A9 10 3A */ slwi r9, r5, 2 +/* 803B6DE4 003B3D44 42 40 00 24 */ bdz lbl_803B6E08 +/* 803B6DE8 003B3D48 7D 49 F8 2E */ lwzx r10, r9, r31 +/* 803B6DEC 003B3D4C FD 40 50 1E */ fctiwz f10, f10 +/* 803B6DF0 003B3D50 6D 4A 80 00 */ xoris r10, r10, 0x8000 +/* 803B6DF4 003B3D54 91 41 00 0C */ stw r10, 0xc(r1) +/* 803B6DF8 003B3D58 7D 5A F7 AE */ stfiwx f10, r26, r30 +/* 803B6DFC 003B3D5C C8 81 00 08 */ lfd f4, 8(r1) +/* 803B6E00 003B3D60 EC 84 48 28 */ fsubs f4, f4, f9 +/* 803B6E04 003B3D64 4B FF FF 58 */ b lbl_803B6D5C +lbl_803B6E08: +/* 803B6E08 003B3D68 FD 40 50 1E */ fctiwz f10, f10 +/* 803B6E0C 003B3D6C 7D 5A F7 AE */ stfiwx f10, r26, r30 +lbl_803B6E10: +/* 803B6E10 003B3D70 81 23 00 08 */ lwz r9, 8(r3) +/* 803B6E14 003B3D74 FC 20 08 1E */ fctiwz f1, f1 +/* 803B6E18 003B3D78 FC 40 10 1E */ fctiwz f2, f2 +/* 803B6E1C 003B3D7C FC 60 18 1E */ fctiwz f3, f3 +/* 803B6E20 003B3D80 7C 20 4F AE */ stfiwx f1, 0, r9 +/* 803B6E24 003B3D84 39 49 00 04 */ addi r10, r9, 4 +/* 803B6E28 003B3D88 7C 40 57 AE */ stfiwx f2, 0, r10 +/* 803B6E2C 003B3D8C 39 49 00 08 */ addi r10, r9, 8 +/* 803B6E30 003B3D90 7C 60 57 AE */ stfiwx f3, 0, r10 +/* 803B6E34 003B3D94 90 83 00 0C */ stw r4, 0xc(r3) +/* 803B6E38 003B3D98 90 A3 00 10 */ stw r5, 0x10(r3) +/* 803B6E3C 003B3D9C BB 41 00 28 */ lmw r26, 0x28(r1) +/* 803B6E40 003B3DA0 38 21 00 40 */ addi r1, r1, 0x40 +/* 803B6E44 003B3DA4 4E 80 00 20 */ blr + +.global do_src2 +do_src2: +/* 803B6E48 003B3DA8 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803B6E4C 003B3DAC BF 41 00 28 */ stmw r26, 0x28(r1) +/* 803B6E50 003B3DB0 80 83 00 0C */ lwz r4, 0xc(r3) +/* 803B6E54 003B3DB4 80 A3 00 10 */ lwz r5, 0x10(r3) +/* 803B6E58 003B3DB8 80 C3 00 14 */ lwz r6, 0x14(r3) +/* 803B6E5C 003B3DBC 81 03 00 1C */ lwz r8, 0x1c(r3) +/* 803B6E60 003B3DC0 80 E3 00 20 */ lwz r7, 0x20(r3) +/* 803B6E64 003B3DC4 83 E3 00 04 */ lwz r31, 4(r3) +/* 803B6E68 003B3DC8 83 C3 00 00 */ lwz r30, 0(r3) +/* 803B6E6C 003B3DCC 81 23 00 08 */ lwz r9, 8(r3) +/* 803B6E70 003B3DD0 3D 40 43 30 */ lis r10, 0x4330 +/* 803B6E74 003B3DD4 91 41 00 08 */ stw r10, 8(r1) +/* 803B6E78 003B3DD8 91 41 00 10 */ stw r10, 0x10(r1) +/* 803B6E7C 003B3DDC 91 41 00 18 */ stw r10, 0x18(r1) +/* 803B6E80 003B3DE0 91 41 00 20 */ stw r10, 0x20(r1) +/* 803B6E84 003B3DE4 3D 40 80 5B */ lis r10, lbl_805AF438@ha +/* 803B6E88 003B3DE8 C9 2A F4 38 */ lfd f9, lbl_805AF438@l(r10) +/* 803B6E8C 003B3DEC 54 AA 10 3A */ slwi r10, r5, 2 +/* 803B6E90 003B3DF0 81 69 00 00 */ lwz r11, 0(r9) +/* 803B6E94 003B3DF4 83 A9 00 04 */ lwz r29, 4(r9) +/* 803B6E98 003B3DF8 83 89 00 08 */ lwz r28, 8(r9) +/* 803B6E9C 003B3DFC 7F 7F 50 2E */ lwzx r27, r31, r10 +/* 803B6EA0 003B3E00 6D 6B 80 00 */ xoris r11, r11, 0x8000 +/* 803B6EA4 003B3E04 6F BD 80 00 */ xoris r29, r29, 0x8000 +/* 803B6EA8 003B3E08 91 61 00 0C */ stw r11, 0xc(r1) +/* 803B6EAC 003B3E0C 6F 9C 80 00 */ xoris r28, r28, 0x8000 +/* 803B6EB0 003B3E10 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B6EB4 003B3E14 6F 7B 80 00 */ xoris r27, r27, 0x8000 +/* 803B6EB8 003B3E18 93 81 00 1C */ stw r28, 0x1c(r1) +/* 803B6EBC 003B3E1C C8 21 00 08 */ lfd f1, 8(r1) +/* 803B6EC0 003B3E20 93 61 00 24 */ stw r27, 0x24(r1) +/* 803B6EC4 003B3E24 C8 41 00 10 */ lfd f2, 0x10(r1) +/* 803B6EC8 003B3E28 EC 21 48 28 */ fsubs f1, f1, f9 +/* 803B6ECC 003B3E2C C8 61 00 18 */ lfd f3, 0x18(r1) +/* 803B6ED0 003B3E30 EC 42 48 28 */ fsubs f2, f2, f9 +/* 803B6ED4 003B3E34 C8 81 00 20 */ lfd f4, 0x20(r1) +/* 803B6ED8 003B3E38 EC 63 48 28 */ fsubs f3, f3, f9 +/* 803B6EDC 003B3E3C EC 84 48 28 */ fsubs f4, f4, f9 +/* 803B6EE0 003B3E40 3B 40 FF FC */ li r26, -4 +/* 803B6EE4 003B3E44 3D 80 80 3F */ lis r12, lbl_803F6490@ha +/* 803B6EE8 003B3E48 39 8C 64 90 */ addi r12, r12, lbl_803F6490@l +/* 803B6EEC 003B3E4C 39 20 00 A0 */ li r9, 0xa0 +/* 803B6EF0 003B3E50 7D 29 03 A6 */ mtctr r9 +lbl_803B6EF4: +/* 803B6EF4 003B3E54 54 8A 3D 76 */ rlwinm r10, r4, 7, 0x15, 0x1b +/* 803B6EF8 003B3E58 7C 84 30 14 */ addc r4, r4, r6 +/* 803B6EFC 003B3E5C 7D 4A 62 14 */ add r10, r10, r12 +/* 803B6F00 003B3E60 7C 00 04 00 */ mcrxr cr0 +/* 803B6F04 003B3E64 38 A5 00 01 */ addi r5, r5, 1 +/* 803B6F08 003B3E68 C0 AA 00 00 */ lfs f5, 0(r10) +/* 803B6F0C 003B3E6C 41 82 00 64 */ beq lbl_803B6F70 +/* 803B6F10 003B3E70 C0 CA 00 04 */ lfs f6, 4(r10) +/* 803B6F14 003B3E74 ED 41 01 72 */ fmuls f10, f1, f5 +/* 803B6F18 003B3E78 7C 05 40 00 */ cmpw r5, r8 +/* 803B6F1C 003B3E7C FC 20 10 90 */ fmr f1, f2 +/* 803B6F20 003B3E80 C0 EA 00 08 */ lfs f7, 8(r10) +/* 803B6F24 003B3E84 ED 42 51 BA */ fmadds f10, f2, f6, f10 +/* 803B6F28 003B3E88 FC 40 18 90 */ fmr f2, f3 +/* 803B6F2C 003B3E8C C1 0A 00 0C */ lfs f8, 0xc(r10) +/* 803B6F30 003B3E90 ED 43 51 FA */ fmadds f10, f3, f7, f10 +/* 803B6F34 003B3E94 3B DE 00 04 */ addi r30, r30, 4 +/* 803B6F38 003B3E98 FC 60 20 90 */ fmr f3, f4 +/* 803B6F3C 003B3E9C 40 A2 00 08 */ bne+ lbl_803B6F44 +/* 803B6F40 003B3EA0 7C E5 3B 78 */ mr r5, r7 +lbl_803B6F44: +/* 803B6F44 003B3EA4 ED 44 52 3A */ fmadds f10, f4, f8, f10 +/* 803B6F48 003B3EA8 54 A9 10 3A */ slwi r9, r5, 2 +/* 803B6F4C 003B3EAC 42 40 00 A8 */ bdz lbl_803B6FF4 +/* 803B6F50 003B3EB0 7D 49 F8 2E */ lwzx r10, r9, r31 +/* 803B6F54 003B3EB4 FD 40 50 1E */ fctiwz f10, f10 +/* 803B6F58 003B3EB8 6D 4A 80 00 */ xoris r10, r10, 0x8000 +/* 803B6F5C 003B3EBC 91 41 00 0C */ stw r10, 0xc(r1) +/* 803B6F60 003B3EC0 7D 5A F7 AE */ stfiwx f10, r26, r30 +/* 803B6F64 003B3EC4 C8 81 00 08 */ lfd f4, 8(r1) +/* 803B6F68 003B3EC8 EC 84 48 28 */ fsubs f4, f4, f9 +/* 803B6F6C 003B3ECC 4B FF FF 88 */ b lbl_803B6EF4 +lbl_803B6F70: +/* 803B6F70 003B3ED0 7C 05 40 00 */ cmpw r5, r8 +/* 803B6F74 003B3ED4 C0 CA 00 04 */ lfs f6, 4(r10) +/* 803B6F78 003B3ED8 40 A2 00 08 */ bne+ lbl_803B6F80 +/* 803B6F7C 003B3EDC 7C E5 3B 78 */ mr r5, r7 +lbl_803B6F80: +/* 803B6F80 003B3EE0 54 AB 10 3A */ slwi r11, r5, 2 +/* 803B6F84 003B3EE4 38 A5 00 01 */ addi r5, r5, 1 +/* 803B6F88 003B3EE8 7F AB F8 2E */ lwzx r29, r11, r31 +/* 803B6F8C 003B3EEC ED 41 01 72 */ fmuls f10, f1, f5 +/* 803B6F90 003B3EF0 7C 05 40 00 */ cmpw r5, r8 +/* 803B6F94 003B3EF4 6F BD 80 00 */ xoris r29, r29, 0x8000 +/* 803B6F98 003B3EF8 FC 20 18 90 */ fmr f1, f3 +/* 803B6F9C 003B3EFC C0 EA 00 08 */ lfs f7, 8(r10) +/* 803B6FA0 003B3F00 93 A1 00 0C */ stw r29, 0xc(r1) +/* 803B6FA4 003B3F04 ED 42 51 BA */ fmadds f10, f2, f6, f10 +/* 803B6FA8 003B3F08 C1 0A 00 0C */ lfs f8, 0xc(r10) +/* 803B6FAC 003B3F0C ED 43 51 FA */ fmadds f10, f3, f7, f10 +/* 803B6FB0 003B3F10 C8 61 00 08 */ lfd f3, 8(r1) +/* 803B6FB4 003B3F14 FC 40 20 90 */ fmr f2, f4 +/* 803B6FB8 003B3F18 3B DE 00 04 */ addi r30, r30, 4 +/* 803B6FBC 003B3F1C EC 63 48 28 */ fsubs f3, f3, f9 +/* 803B6FC0 003B3F20 40 A2 00 08 */ bne+ lbl_803B6FC8 +/* 803B6FC4 003B3F24 7C E5 3B 78 */ mr r5, r7 +lbl_803B6FC8: +/* 803B6FC8 003B3F28 ED 44 52 3A */ fmadds f10, f4, f8, f10 +/* 803B6FCC 003B3F2C 54 A9 10 3A */ slwi r9, r5, 2 +/* 803B6FD0 003B3F30 42 40 00 24 */ bdz lbl_803B6FF4 +/* 803B6FD4 003B3F34 7D 49 F8 2E */ lwzx r10, r9, r31 +/* 803B6FD8 003B3F38 FD 40 50 1E */ fctiwz f10, f10 +/* 803B6FDC 003B3F3C 6D 4A 80 00 */ xoris r10, r10, 0x8000 +/* 803B6FE0 003B3F40 91 41 00 0C */ stw r10, 0xc(r1) +/* 803B6FE4 003B3F44 7D 5A F7 AE */ stfiwx f10, r26, r30 +/* 803B6FE8 003B3F48 C8 81 00 08 */ lfd f4, 8(r1) +/* 803B6FEC 003B3F4C EC 84 48 28 */ fsubs f4, f4, f9 +/* 803B6FF0 003B3F50 4B FF FF 04 */ b lbl_803B6EF4 +lbl_803B6FF4: +/* 803B6FF4 003B3F54 FD 40 50 1E */ fctiwz f10, f10 +/* 803B6FF8 003B3F58 7D 5A F7 AE */ stfiwx f10, r26, r30 +/* 803B6FFC 003B3F5C 81 23 00 08 */ lwz r9, 8(r3) +/* 803B7000 003B3F60 FC 20 08 1E */ fctiwz f1, f1 +/* 803B7004 003B3F64 FC 40 10 1E */ fctiwz f2, f2 +/* 803B7008 003B3F68 FC 60 18 1E */ fctiwz f3, f3 +/* 803B700C 003B3F6C 7C 20 4F AE */ stfiwx f1, 0, r9 +/* 803B7010 003B3F70 39 49 00 04 */ addi r10, r9, 4 +/* 803B7014 003B3F74 7C 40 57 AE */ stfiwx f2, 0, r10 +/* 803B7018 003B3F78 39 49 00 08 */ addi r10, r9, 8 +/* 803B701C 003B3F7C 7C 60 57 AE */ stfiwx f3, 0, r10 +/* 803B7020 003B3F80 90 83 00 0C */ stw r4, 0xc(r3) +/* 803B7024 003B3F84 90 A3 00 10 */ stw r5, 0x10(r3) +/* 803B7028 003B3F88 BB 41 00 28 */ lmw r26, 0x28(r1) +/* 803B702C 003B3F8C 38 21 00 40 */ addi r1, r1, 0x40 +/* 803B7030 003B3F90 4E 80 00 20 */ blr + +.global sndAuxCallbackChorus +sndAuxCallbackChorus: +/* 803B7034 003B3F94 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B7038 003B3F98 7C 08 02 A6 */ mflr r0 +/* 803B703C 003B3F9C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B7040 003B3FA0 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B7044 003B3FA4 2C 00 00 01 */ cmpwi r0, 1 +/* 803B7048 003B3FA8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B704C 003B3FAC 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B7050 003B3FB0 7C BE 2B 78 */ mr r30, r5 +/* 803B7054 003B3FB4 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B7058 003B3FB8 7C 9D 23 78 */ mr r29, r4 +/* 803B705C 003B3FBC 93 81 00 10 */ stw r28, 0x10(r1) +/* 803B7060 003B3FC0 41 82 02 70 */ beq lbl_803B72D0 +/* 803B7064 003B3FC4 40 80 02 6C */ bge lbl_803B72D0 +/* 803B7068 003B3FC8 2C 00 00 00 */ cmpwi r0, 0 +/* 803B706C 003B3FCC 40 80 00 08 */ bge lbl_803B7074 +/* 803B7070 003B3FD0 48 00 02 60 */ b lbl_803B72D0 +lbl_803B7074: +/* 803B7074 003B3FD4 88 9E 00 24 */ lbz r4, 0x24(r30) +/* 803B7078 003B3FD8 3C 60 55 55 */ lis r3, 0x55555556@ha +/* 803B707C 003B3FDC 38 63 55 56 */ addi r3, r3, 0x55555556@l +/* 803B7080 003B3FE0 38 00 00 14 */ li r0, 0x14 +/* 803B7084 003B3FE4 38 A4 00 01 */ addi r5, r4, 1 +/* 803B7088 003B3FE8 80 DD 00 00 */ lwz r6, 0(r29) +/* 803B708C 003B3FEC 7C 83 28 96 */ mulhw r4, r3, r5 +/* 803B7090 003B3FF0 80 FD 00 04 */ lwz r7, 4(r29) +/* 803B7094 003B3FF4 81 1D 00 08 */ lwz r8, 8(r29) +/* 803B7098 003B3FF8 54 83 0F FE */ srwi r3, r4, 0x1f +/* 803B709C 003B3FFC 7C 64 1A 14 */ add r3, r4, r3 +/* 803B70A0 003B4000 1C 63 00 03 */ mulli r3, r3, 3 +/* 803B70A4 003B4004 7C 63 28 50 */ subf r3, r3, r5 +/* 803B70A8 003B4008 54 64 15 BA */ rlwinm r4, r3, 2, 0x16, 0x1d +/* 803B70AC 003B400C 7C BE 22 14 */ add r5, r30, r4 +/* 803B70B0 003B4010 54 7F 06 3E */ clrlwi r31, r3, 0x18 +/* 803B70B4 003B4014 7C 7E 20 2E */ lwzx r3, r30, r4 +/* 803B70B8 003B4018 80 85 00 0C */ lwz r4, 0xc(r5) +/* 803B70BC 003B401C 80 A5 00 18 */ lwz r5, 0x18(r5) +/* 803B70C0 003B4020 7C 09 03 A6 */ mtctr r0 +lbl_803B70C4: +/* 803B70C4 003B4024 80 06 00 00 */ lwz r0, 0(r6) +/* 803B70C8 003B4028 90 03 00 00 */ stw r0, 0(r3) +/* 803B70CC 003B402C 80 07 00 00 */ lwz r0, 0(r7) +/* 803B70D0 003B4030 90 04 00 00 */ stw r0, 0(r4) +/* 803B70D4 003B4034 80 08 00 00 */ lwz r0, 0(r8) +/* 803B70D8 003B4038 90 05 00 00 */ stw r0, 0(r5) +/* 803B70DC 003B403C 80 06 00 04 */ lwz r0, 4(r6) +/* 803B70E0 003B4040 90 03 00 04 */ stw r0, 4(r3) +/* 803B70E4 003B4044 80 07 00 04 */ lwz r0, 4(r7) +/* 803B70E8 003B4048 90 04 00 04 */ stw r0, 4(r4) +/* 803B70EC 003B404C 80 08 00 04 */ lwz r0, 4(r8) +/* 803B70F0 003B4050 90 05 00 04 */ stw r0, 4(r5) +/* 803B70F4 003B4054 80 06 00 08 */ lwz r0, 8(r6) +/* 803B70F8 003B4058 90 03 00 08 */ stw r0, 8(r3) +/* 803B70FC 003B405C 80 07 00 08 */ lwz r0, 8(r7) +/* 803B7100 003B4060 90 04 00 08 */ stw r0, 8(r4) +/* 803B7104 003B4064 80 08 00 08 */ lwz r0, 8(r8) +/* 803B7108 003B4068 90 05 00 08 */ stw r0, 8(r5) +/* 803B710C 003B406C 80 06 00 0C */ lwz r0, 0xc(r6) +/* 803B7110 003B4070 90 03 00 0C */ stw r0, 0xc(r3) +/* 803B7114 003B4074 80 07 00 0C */ lwz r0, 0xc(r7) +/* 803B7118 003B4078 90 04 00 0C */ stw r0, 0xc(r4) +/* 803B711C 003B407C 80 08 00 0C */ lwz r0, 0xc(r8) +/* 803B7120 003B4080 90 05 00 0C */ stw r0, 0xc(r5) +/* 803B7124 003B4084 80 06 00 10 */ lwz r0, 0x10(r6) +/* 803B7128 003B4088 90 03 00 10 */ stw r0, 0x10(r3) +/* 803B712C 003B408C 80 07 00 10 */ lwz r0, 0x10(r7) +/* 803B7130 003B4090 90 04 00 10 */ stw r0, 0x10(r4) +/* 803B7134 003B4094 80 08 00 10 */ lwz r0, 0x10(r8) +/* 803B7138 003B4098 90 05 00 10 */ stw r0, 0x10(r5) +/* 803B713C 003B409C 80 06 00 14 */ lwz r0, 0x14(r6) +/* 803B7140 003B40A0 90 03 00 14 */ stw r0, 0x14(r3) +/* 803B7144 003B40A4 80 07 00 14 */ lwz r0, 0x14(r7) +/* 803B7148 003B40A8 90 04 00 14 */ stw r0, 0x14(r4) +/* 803B714C 003B40AC 80 08 00 14 */ lwz r0, 0x14(r8) +/* 803B7150 003B40B0 90 05 00 14 */ stw r0, 0x14(r5) +/* 803B7154 003B40B4 80 06 00 18 */ lwz r0, 0x18(r6) +/* 803B7158 003B40B8 90 03 00 18 */ stw r0, 0x18(r3) +/* 803B715C 003B40BC 80 07 00 18 */ lwz r0, 0x18(r7) +/* 803B7160 003B40C0 90 04 00 18 */ stw r0, 0x18(r4) +/* 803B7164 003B40C4 80 08 00 18 */ lwz r0, 0x18(r8) +/* 803B7168 003B40C8 90 05 00 18 */ stw r0, 0x18(r5) +/* 803B716C 003B40CC 80 06 00 1C */ lwz r0, 0x1c(r6) +/* 803B7170 003B40D0 38 C6 00 20 */ addi r6, r6, 0x20 +/* 803B7174 003B40D4 90 03 00 1C */ stw r0, 0x1c(r3) +/* 803B7178 003B40D8 38 63 00 20 */ addi r3, r3, 0x20 +/* 803B717C 003B40DC 80 07 00 1C */ lwz r0, 0x1c(r7) +/* 803B7180 003B40E0 38 E7 00 20 */ addi r7, r7, 0x20 +/* 803B7184 003B40E4 90 04 00 1C */ stw r0, 0x1c(r4) +/* 803B7188 003B40E8 38 84 00 20 */ addi r4, r4, 0x20 +/* 803B718C 003B40EC 80 08 00 1C */ lwz r0, 0x1c(r8) +/* 803B7190 003B40F0 39 08 00 20 */ addi r8, r8, 0x20 +/* 803B7194 003B40F4 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803B7198 003B40F8 38 A5 00 20 */ addi r5, r5, 0x20 +/* 803B719C 003B40FC 42 00 FF 28 */ bdnz lbl_803B70C4 +/* 803B71A0 003B4100 80 1E 00 60 */ lwz r0, 0x60(r30) +/* 803B71A4 003B4104 7C 03 86 70 */ srawi r3, r0, 0x10 +/* 803B71A8 003B4108 38 03 00 01 */ addi r0, r3, 1 +/* 803B71AC 003B410C 90 1E 00 84 */ stw r0, 0x84(r30) +/* 803B71B0 003B4110 80 1E 00 60 */ lwz r0, 0x60(r30) +/* 803B71B4 003B4114 54 00 80 1E */ slwi r0, r0, 0x10 +/* 803B71B8 003B4118 90 1E 00 80 */ stw r0, 0x80(r30) +/* 803B71BC 003B411C 80 7E 00 64 */ lwz r3, 0x64(r30) +/* 803B71C0 003B4120 34 03 FF FF */ addic. r0, r3, -1 +/* 803B71C4 003B4124 90 1E 00 64 */ stw r0, 0x64(r30) +/* 803B71C8 003B4128 40 82 00 18 */ bne lbl_803B71E0 +/* 803B71CC 003B412C 80 1E 00 68 */ lwz r0, 0x68(r30) +/* 803B71D0 003B4130 90 1E 00 64 */ stw r0, 0x64(r30) +/* 803B71D4 003B4134 80 1E 00 60 */ lwz r0, 0x60(r30) +/* 803B71D8 003B4138 7C 00 00 D0 */ neg r0, r0 +/* 803B71DC 003B413C 90 1E 00 60 */ stw r0, 0x60(r30) +lbl_803B71E0: +/* 803B71E0 003B4140 3B 80 00 00 */ li r28, 0 +lbl_803B71E4: +/* 803B71E4 003B4144 80 1E 00 5C */ lwz r0, 0x5c(r30) +/* 803B71E8 003B4148 2C 1C 00 01 */ cmpwi r28, 1 +/* 803B71EC 003B414C 90 1E 00 7C */ stw r0, 0x7c(r30) +/* 803B71F0 003B4150 80 1E 00 58 */ lwz r0, 0x58(r30) +/* 803B71F4 003B4154 90 1E 00 78 */ stw r0, 0x78(r30) +/* 803B71F8 003B4158 41 82 00 3C */ beq lbl_803B7234 +/* 803B71FC 003B415C 40 80 00 10 */ bge lbl_803B720C +/* 803B7200 003B4160 2C 1C 00 00 */ cmpwi r28, 0 +/* 803B7204 003B4164 40 80 00 14 */ bge lbl_803B7218 +/* 803B7208 003B4168 48 00 00 60 */ b lbl_803B7268 +lbl_803B720C: +/* 803B720C 003B416C 2C 1C 00 03 */ cmpwi r28, 3 +/* 803B7210 003B4170 40 80 00 58 */ bge lbl_803B7268 +/* 803B7214 003B4174 48 00 00 3C */ b lbl_803B7250 +lbl_803B7218: +/* 803B7218 003B4178 80 7E 00 00 */ lwz r3, 0(r30) +/* 803B721C 003B417C 38 1E 00 28 */ addi r0, r30, 0x28 +/* 803B7220 003B4180 90 7E 00 70 */ stw r3, 0x70(r30) +/* 803B7224 003B4184 80 7D 00 00 */ lwz r3, 0(r29) +/* 803B7228 003B4188 90 7E 00 6C */ stw r3, 0x6c(r30) +/* 803B722C 003B418C 90 1E 00 74 */ stw r0, 0x74(r30) +/* 803B7230 003B4190 48 00 00 38 */ b lbl_803B7268 +lbl_803B7234: +/* 803B7234 003B4194 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 803B7238 003B4198 38 1E 00 38 */ addi r0, r30, 0x38 +/* 803B723C 003B419C 90 7E 00 70 */ stw r3, 0x70(r30) +/* 803B7240 003B41A0 80 7D 00 04 */ lwz r3, 4(r29) +/* 803B7244 003B41A4 90 7E 00 6C */ stw r3, 0x6c(r30) +/* 803B7248 003B41A8 90 1E 00 74 */ stw r0, 0x74(r30) +/* 803B724C 003B41AC 48 00 00 1C */ b lbl_803B7268 +lbl_803B7250: +/* 803B7250 003B41B0 80 7E 00 18 */ lwz r3, 0x18(r30) +/* 803B7254 003B41B4 38 1E 00 48 */ addi r0, r30, 0x48 +/* 803B7258 003B41B8 90 7E 00 70 */ stw r3, 0x70(r30) +/* 803B725C 003B41BC 80 7D 00 08 */ lwz r3, 8(r29) +/* 803B7260 003B41C0 90 7E 00 6C */ stw r3, 0x6c(r30) +/* 803B7264 003B41C4 90 1E 00 74 */ stw r0, 0x74(r30) +lbl_803B7268: +/* 803B7268 003B41C8 80 1E 00 84 */ lwz r0, 0x84(r30) +/* 803B726C 003B41CC 2C 00 00 01 */ cmpwi r0, 1 +/* 803B7270 003B41D0 41 82 00 20 */ beq lbl_803B7290 +/* 803B7274 003B41D4 40 80 00 24 */ bge lbl_803B7298 +/* 803B7278 003B41D8 2C 00 00 00 */ cmpwi r0, 0 +/* 803B727C 003B41DC 40 80 00 08 */ bge lbl_803B7284 +/* 803B7280 003B41E0 48 00 00 18 */ b lbl_803B7298 +lbl_803B7284: +/* 803B7284 003B41E4 38 7E 00 6C */ addi r3, r30, 0x6c +/* 803B7288 003B41E8 4B FF FA 29 */ bl do_src1 +/* 803B728C 003B41EC 48 00 00 0C */ b lbl_803B7298 +lbl_803B7290: +/* 803B7290 003B41F0 38 7E 00 6C */ addi r3, r30, 0x6c +/* 803B7294 003B41F4 4B FF FB B5 */ bl do_src2 +lbl_803B7298: +/* 803B7298 003B41F8 3B 9C 00 01 */ addi r28, r28, 1 +/* 803B729C 003B41FC 28 1C 00 03 */ cmplwi r28, 3 +/* 803B72A0 003B4200 41 80 FF 44 */ blt lbl_803B71E4 +/* 803B72A4 003B4204 3C 60 88 89 */ lis r3, 0x88888889@ha +/* 803B72A8 003B4208 80 9E 00 7C */ lwz r4, 0x7c(r30) +/* 803B72AC 003B420C 38 03 88 89 */ addi r0, r3, 0x88888889@l +/* 803B72B0 003B4210 7C 00 20 16 */ mulhwu r0, r0, r4 +/* 803B72B4 003B4214 54 00 C2 3E */ srwi r0, r0, 8 +/* 803B72B8 003B4218 1C 00 01 E0 */ mulli r0, r0, 0x1e0 +/* 803B72BC 003B421C 7C 00 20 50 */ subf r0, r0, r4 +/* 803B72C0 003B4220 90 1E 00 5C */ stw r0, 0x5c(r30) +/* 803B72C4 003B4224 80 1E 00 78 */ lwz r0, 0x78(r30) +/* 803B72C8 003B4228 90 1E 00 58 */ stw r0, 0x58(r30) +/* 803B72CC 003B422C 9B FE 00 24 */ stb r31, 0x24(r30) +lbl_803B72D0: +/* 803B72D0 003B4230 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B72D4 003B4234 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B72D8 003B4238 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B72DC 003B423C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B72E0 003B4240 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803B72E4 003B4244 7C 08 03 A6 */ mtlr r0 +/* 803B72E8 003B4248 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B72EC 003B424C 4E 80 00 20 */ blr + +.global sndAuxCallbackPrepareChorus +sndAuxCallbackPrepareChorus: +/* 803B72F0 003B4250 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B72F4 003B4254 7C 08 02 A6 */ mflr r0 +/* 803B72F8 003B4258 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B72FC 003B425C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B7300 003B4260 7C 7F 1B 78 */ mr r31, r3 +/* 803B7304 003B4264 38 60 16 80 */ li r3, 0x1680 +/* 803B7308 003B4268 4B FF DE 2D */ bl salMalloc +/* 803B730C 003B426C 90 7F 00 00 */ stw r3, 0(r31) +/* 803B7310 003B4270 80 7F 00 00 */ lwz r3, 0(r31) +/* 803B7314 003B4274 28 03 00 00 */ cmplwi r3, 0 +/* 803B7318 003B4278 41 82 01 C0 */ beq lbl_803B74D8 +/* 803B731C 003B427C 38 63 07 80 */ addi r3, r3, 0x780 +/* 803B7320 003B4280 38 00 00 28 */ li r0, 0x28 +/* 803B7324 003B4284 90 7F 00 0C */ stw r3, 0xc(r31) +/* 803B7328 003B4288 80 7F 00 0C */ lwz r3, 0xc(r31) +/* 803B732C 003B428C 38 63 07 80 */ addi r3, r3, 0x780 +/* 803B7330 003B4290 90 7F 00 18 */ stw r3, 0x18(r31) +/* 803B7334 003B4294 80 7F 00 00 */ lwz r3, 0(r31) +/* 803B7338 003B4298 38 63 02 80 */ addi r3, r3, 0x280 +/* 803B733C 003B429C 90 7F 00 04 */ stw r3, 4(r31) +/* 803B7340 003B42A0 80 7F 00 0C */ lwz r3, 0xc(r31) +/* 803B7344 003B42A4 38 63 02 80 */ addi r3, r3, 0x280 +/* 803B7348 003B42A8 90 7F 00 10 */ stw r3, 0x10(r31) +/* 803B734C 003B42AC 80 7F 00 18 */ lwz r3, 0x18(r31) +/* 803B7350 003B42B0 38 63 02 80 */ addi r3, r3, 0x280 +/* 803B7354 003B42B4 90 7F 00 1C */ stw r3, 0x1c(r31) +/* 803B7358 003B42B8 80 7F 00 00 */ lwz r3, 0(r31) +/* 803B735C 003B42BC 38 63 05 00 */ addi r3, r3, 0x500 +/* 803B7360 003B42C0 90 7F 00 08 */ stw r3, 8(r31) +/* 803B7364 003B42C4 80 7F 00 0C */ lwz r3, 0xc(r31) +/* 803B7368 003B42C8 38 63 05 00 */ addi r3, r3, 0x500 +/* 803B736C 003B42CC 90 7F 00 14 */ stw r3, 0x14(r31) +/* 803B7370 003B42D0 80 7F 00 18 */ lwz r3, 0x18(r31) +/* 803B7374 003B42D4 38 63 05 00 */ addi r3, r3, 0x500 +/* 803B7378 003B42D8 90 7F 00 20 */ stw r3, 0x20(r31) +/* 803B737C 003B42DC 80 7F 00 00 */ lwz r3, 0(r31) +/* 803B7380 003B42E0 80 9F 00 0C */ lwz r4, 0xc(r31) +/* 803B7384 003B42E4 80 BF 00 18 */ lwz r5, 0x18(r31) +/* 803B7388 003B42E8 7C 09 03 A6 */ mtctr r0 +lbl_803B738C: +/* 803B738C 003B42EC 38 C0 00 00 */ li r6, 0 +/* 803B7390 003B42F0 90 C3 00 00 */ stw r6, 0(r3) +/* 803B7394 003B42F4 90 C4 00 00 */ stw r6, 0(r4) +/* 803B7398 003B42F8 90 C5 00 00 */ stw r6, 0(r5) +/* 803B739C 003B42FC 90 C3 00 04 */ stw r6, 4(r3) +/* 803B73A0 003B4300 90 C4 00 04 */ stw r6, 4(r4) +/* 803B73A4 003B4304 90 C5 00 04 */ stw r6, 4(r5) +/* 803B73A8 003B4308 90 C3 00 08 */ stw r6, 8(r3) +/* 803B73AC 003B430C 90 C4 00 08 */ stw r6, 8(r4) +/* 803B73B0 003B4310 90 C5 00 08 */ stw r6, 8(r5) +/* 803B73B4 003B4314 90 C3 00 0C */ stw r6, 0xc(r3) +/* 803B73B8 003B4318 90 C4 00 0C */ stw r6, 0xc(r4) +/* 803B73BC 003B431C 90 C5 00 0C */ stw r6, 0xc(r5) +/* 803B73C0 003B4320 90 C3 00 10 */ stw r6, 0x10(r3) +/* 803B73C4 003B4324 90 C4 00 10 */ stw r6, 0x10(r4) +/* 803B73C8 003B4328 90 C5 00 10 */ stw r6, 0x10(r5) +/* 803B73CC 003B432C 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803B73D0 003B4330 90 C4 00 14 */ stw r6, 0x14(r4) +/* 803B73D4 003B4334 90 C5 00 14 */ stw r6, 0x14(r5) +/* 803B73D8 003B4338 90 C3 00 18 */ stw r6, 0x18(r3) +/* 803B73DC 003B433C 90 C4 00 18 */ stw r6, 0x18(r4) +/* 803B73E0 003B4340 90 C5 00 18 */ stw r6, 0x18(r5) +/* 803B73E4 003B4344 90 C3 00 1C */ stw r6, 0x1c(r3) +/* 803B73E8 003B4348 38 63 00 20 */ addi r3, r3, 0x20 +/* 803B73EC 003B434C 90 C4 00 1C */ stw r6, 0x1c(r4) +/* 803B73F0 003B4350 38 84 00 20 */ addi r4, r4, 0x20 +/* 803B73F4 003B4354 90 C5 00 1C */ stw r6, 0x1c(r5) +/* 803B73F8 003B4358 38 A5 00 20 */ addi r5, r5, 0x20 +/* 803B73FC 003B435C 42 00 FF 90 */ bdnz lbl_803B738C +/* 803B7400 003B4360 38 00 00 01 */ li r0, 1 +/* 803B7404 003B4364 3C 80 88 89 */ lis r4, 0x88888889@ha +/* 803B7408 003B4368 98 1F 00 24 */ stb r0, 0x24(r31) +/* 803B740C 003B436C 3C 60 CC CD */ lis r3, 0xCCCCCCCD@ha +/* 803B7410 003B4370 38 A0 01 E0 */ li r5, 0x1e0 +/* 803B7414 003B4374 38 04 88 89 */ addi r0, r4, 0x88888889@l +/* 803B7418 003B4378 90 DF 00 34 */ stw r6, 0x34(r31) +/* 803B741C 003B437C 38 83 CC CD */ addi r4, r3, 0xCCCCCCCD@l +/* 803B7420 003B4380 38 60 00 01 */ li r3, 1 +/* 803B7424 003B4384 90 DF 00 30 */ stw r6, 0x30(r31) +/* 803B7428 003B4388 90 DF 00 2C */ stw r6, 0x2c(r31) +/* 803B742C 003B438C 90 DF 00 28 */ stw r6, 0x28(r31) +/* 803B7430 003B4390 90 DF 00 44 */ stw r6, 0x44(r31) +/* 803B7434 003B4394 90 DF 00 40 */ stw r6, 0x40(r31) +/* 803B7438 003B4398 90 DF 00 3C */ stw r6, 0x3c(r31) +/* 803B743C 003B439C 90 DF 00 38 */ stw r6, 0x38(r31) +/* 803B7440 003B43A0 90 DF 00 54 */ stw r6, 0x54(r31) +/* 803B7444 003B43A4 90 DF 00 50 */ stw r6, 0x50(r31) +/* 803B7448 003B43A8 90 DF 00 4C */ stw r6, 0x4c(r31) +/* 803B744C 003B43AC 90 DF 00 48 */ stw r6, 0x48(r31) +/* 803B7450 003B43B0 90 BF 00 88 */ stw r5, 0x88(r31) +/* 803B7454 003B43B4 90 DF 00 8C */ stw r6, 0x8c(r31) +/* 803B7458 003B43B8 80 BF 00 90 */ lwz r5, 0x90(r31) +/* 803B745C 003B43BC 38 A5 FF FB */ addi r5, r5, -5 +/* 803B7460 003B43C0 54 A5 28 34 */ slwi r5, r5, 5 +/* 803B7464 003B43C4 20 A5 01 40 */ subfic r5, r5, 0x140 +/* 803B7468 003B43C8 90 BF 00 5C */ stw r5, 0x5c(r31) +/* 803B746C 003B43CC 90 DF 00 58 */ stw r6, 0x58(r31) +/* 803B7470 003B43D0 88 BF 00 24 */ lbz r5, 0x24(r31) +/* 803B7474 003B43D4 80 DF 00 5C */ lwz r6, 0x5c(r31) +/* 803B7478 003B43D8 38 A5 FF FF */ addi r5, r5, -1 +/* 803B747C 003B43DC 1C A5 00 A0 */ mulli r5, r5, 0xa0 +/* 803B7480 003B43E0 7C A6 2A 14 */ add r5, r6, r5 +/* 803B7484 003B43E4 7C 00 28 16 */ mulhwu r0, r0, r5 +/* 803B7488 003B43E8 54 00 C2 3E */ srwi r0, r0, 8 +/* 803B748C 003B43EC 1C 00 01 E0 */ mulli r0, r0, 0x1e0 +/* 803B7490 003B43F0 7C 00 28 50 */ subf r0, r0, r5 +/* 803B7494 003B43F4 90 1F 00 5C */ stw r0, 0x5c(r31) +/* 803B7498 003B43F8 80 1F 00 98 */ lwz r0, 0x98(r31) +/* 803B749C 003B43FC 7C 04 00 16 */ mulhwu r0, r4, r0 +/* 803B74A0 003B4400 54 04 F0 BE */ srwi r4, r0, 2 +/* 803B74A4 003B4404 38 04 00 01 */ addi r0, r4, 1 +/* 803B74A8 003B4408 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 803B74AC 003B440C 90 1F 00 68 */ stw r0, 0x68(r31) +/* 803B74B0 003B4410 80 1F 00 68 */ lwz r0, 0x68(r31) +/* 803B74B4 003B4414 54 00 F8 7E */ srwi r0, r0, 1 +/* 803B74B8 003B4418 90 1F 00 64 */ stw r0, 0x64(r31) +/* 803B74BC 003B441C 80 1F 00 68 */ lwz r0, 0x68(r31) +/* 803B74C0 003B4420 80 9F 00 94 */ lwz r4, 0x94(r31) +/* 803B74C4 003B4424 1C 00 00 05 */ mulli r0, r0, 5 +/* 803B74C8 003B4428 54 84 80 1E */ slwi r4, r4, 0x10 +/* 803B74CC 003B442C 7C 04 03 96 */ divwu r0, r4, r0 +/* 803B74D0 003B4430 90 1F 00 60 */ stw r0, 0x60(r31) +/* 803B74D4 003B4434 48 00 00 08 */ b lbl_803B74DC +lbl_803B74D8: +/* 803B74D8 003B4438 38 60 00 00 */ li r3, 0 +lbl_803B74DC: +/* 803B74DC 003B443C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B74E0 003B4440 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B74E4 003B4444 7C 08 03 A6 */ mtlr r0 +/* 803B74E8 003B4448 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B74EC 003B444C 4E 80 00 20 */ blr + +.global sndAuxCallbackShutdownChorus +sndAuxCallbackShutdownChorus: +/* 803B74F0 003B4450 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B74F4 003B4454 7C 08 02 A6 */ mflr r0 +/* 803B74F8 003B4458 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B74FC 003B445C 80 63 00 00 */ lwz r3, 0(r3) +/* 803B7500 003B4460 4B FF DC 5D */ bl salFree +/* 803B7504 003B4464 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B7508 003B4468 38 60 00 01 */ li r3, 1 +/* 803B750C 003B446C 7C 08 03 A6 */ mtlr r0 +/* 803B7510 003B4470 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B7514 003B4474 4E 80 00 20 */ blr diff --git a/asm/musyx/creverb.s b/asm/musyx/creverb.s new file mode 100644 index 00000000..f044c09a --- /dev/null +++ b/asm/musyx/creverb.s @@ -0,0 +1,623 @@ +.include "macros.inc" + +.section .text, "ax" + +.global ReverbSTDCreate +ReverbSTDCreate: +/* 803B5244 003B21A4 94 21 FF 50 */ stwu r1, -0xb0(r1) +/* 803B5248 003B21A8 7C 08 02 A6 */ mflr r0 +/* 803B524C 003B21AC 90 01 00 B4 */ stw r0, 0xb4(r1) +/* 803B5250 003B21B0 DB E1 00 A0 */ stfd f31, 0xa0(r1) +/* 803B5254 003B21B4 F3 E1 00 A8 */ psq_st f31, 168(r1), 0, qr0 +/* 803B5258 003B21B8 DB C1 00 90 */ stfd f30, 0x90(r1) +/* 803B525C 003B21BC F3 C1 00 98 */ psq_st f30, 152(r1), 0, qr0 +/* 803B5260 003B21C0 DB A1 00 80 */ stfd f29, 0x80(r1) +/* 803B5264 003B21C4 F3 A1 00 88 */ psq_st f29, 136(r1), 0, qr0 +/* 803B5268 003B21C8 DB 81 00 70 */ stfd f28, 0x70(r1) +/* 803B526C 003B21CC F3 81 00 78 */ psq_st f28, 120(r1), 0, qr0 +/* 803B5270 003B21D0 DB 61 00 60 */ stfd f27, 0x60(r1) +/* 803B5274 003B21D4 F3 61 00 68 */ psq_st f27, 104(r1), 0, qr0 +/* 803B5278 003B21D8 DB 41 00 50 */ stfd f26, 0x50(r1) +/* 803B527C 003B21DC F3 41 00 58 */ psq_st f26, 88(r1), 0, qr0 +/* 803B5280 003B21E0 DB 21 00 40 */ stfd f25, 0x40(r1) +/* 803B5284 003B21E4 F3 21 00 48 */ psq_st f25, 72(r1), 0, qr0 +/* 803B5288 003B21E8 39 61 00 40 */ addi r11, r1, 0x40 +/* 803B528C 003B21EC 4B FD 47 D9 */ bl func_80389A64 +/* 803B5290 003B21F0 FF 20 08 90 */ fmr f25, f1 +/* 803B5294 003B21F4 C0 C2 D6 90 */ lfs f6, lbl_805AF3B0@sda21(r2) +/* 803B5298 003B21F8 FF 80 10 90 */ fmr f28, f2 +/* 803B529C 003B21FC 7C 77 1B 78 */ mr r23, r3 +/* 803B52A0 003B2200 FF 40 18 90 */ fmr f26, f3 +/* 803B52A4 003B2204 FF 60 20 90 */ fmr f27, f4 +/* 803B52A8 003B2208 FF E0 28 90 */ fmr f31, f5 +/* 803B52AC 003B220C FC 19 30 40 */ fcmpo cr0, f25, f6 +/* 803B52B0 003B2210 41 80 00 5C */ blt lbl_803B530C +/* 803B52B4 003B2214 C0 22 D6 94 */ lfs f1, lbl_805AF3B4@sda21(r2) +/* 803B52B8 003B2218 FC 19 08 40 */ fcmpo cr0, f25, f1 +/* 803B52BC 003B221C 41 81 00 50 */ bgt lbl_803B530C +/* 803B52C0 003B2220 C0 02 D6 98 */ lfs f0, lbl_805AF3B8@sda21(r2) +/* 803B52C4 003B2224 FC 1C 00 40 */ fcmpo cr0, f28, f0 +/* 803B52C8 003B2228 41 80 00 44 */ blt lbl_803B530C +/* 803B52CC 003B222C C0 02 D6 9C */ lfs f0, lbl_805AF3BC@sda21(r2) +/* 803B52D0 003B2230 FC 1C 00 40 */ fcmpo cr0, f28, f0 +/* 803B52D4 003B2234 41 81 00 38 */ bgt lbl_803B530C +/* 803B52D8 003B2238 FC 1A 30 40 */ fcmpo cr0, f26, f6 +/* 803B52DC 003B223C 41 80 00 30 */ blt lbl_803B530C +/* 803B52E0 003B2240 FC 1A 08 40 */ fcmpo cr0, f26, f1 +/* 803B52E4 003B2244 41 81 00 28 */ bgt lbl_803B530C +/* 803B52E8 003B2248 FC 1B 30 40 */ fcmpo cr0, f27, f6 +/* 803B52EC 003B224C 41 80 00 20 */ blt lbl_803B530C +/* 803B52F0 003B2250 FC 1B 08 40 */ fcmpo cr0, f27, f1 +/* 803B52F4 003B2254 41 81 00 18 */ bgt lbl_803B530C +/* 803B52F8 003B2258 FC 1F 30 40 */ fcmpo cr0, f31, f6 +/* 803B52FC 003B225C 41 80 00 10 */ blt lbl_803B530C +/* 803B5300 003B2260 C0 02 D6 A0 */ lfs f0, lbl_805AF3C0@sda21(r2) +/* 803B5304 003B2264 FC 1F 00 40 */ fcmpo cr0, f31, f0 +/* 803B5308 003B2268 40 81 00 0C */ ble lbl_803B5314 +lbl_803B530C: +/* 803B530C 003B226C 38 60 00 00 */ li r3, 0 +/* 803B5310 003B2270 48 00 03 0C */ b lbl_803B561C +lbl_803B5314: +/* 803B5314 003B2274 38 80 00 00 */ li r4, 0 +/* 803B5318 003B2278 38 A0 01 3C */ li r5, 0x13c +/* 803B531C 003B227C 4B C4 E0 8D */ bl memset +/* 803B5320 003B2280 C0 02 D6 A4 */ lfs f0, lbl_805AF3C4@sda21(r2) +/* 803B5324 003B2284 3C 60 80 3F */ lis r3, lbl_803F6460@ha +/* 803B5328 003B2288 C3 C2 D6 90 */ lfs f30, lbl_805AF3B0@sda21(r2) +/* 803B532C 003B228C 3B E3 64 60 */ addi r31, r3, lbl_803F6460@l +/* 803B5330 003B2290 EF 80 07 32 */ fmuls f28, f0, f28 +/* 803B5334 003B2294 CB A2 D6 B8 */ lfd f29, lbl_805AF3D8@sda21(r2) +/* 803B5338 003B2298 3B 00 00 00 */ li r24, 0 +/* 803B533C 003B229C 3F C0 43 30 */ lis r30, 0x4330 +/* 803B5340 003B22A0 48 00 01 F8 */ b lbl_803B5538 +lbl_803B5344: +/* 803B5344 003B22A4 57 1A 0D FC */ rlwinm r26, r24, 1, 0x17, 0x1e +/* 803B5348 003B22A8 3B 20 00 00 */ li r25, 0 +/* 803B534C 003B22AC 48 00 00 F8 */ b lbl_803B5444 +lbl_803B5350: +/* 803B5350 003B22B0 57 20 06 3E */ clrlwi r0, r25, 0x18 +/* 803B5354 003B22B4 57 3D 15 BA */ rlwinm r29, r25, 2, 0x16, 0x1d +/* 803B5358 003B22B8 7F 60 D2 14 */ add r27, r0, r26 +/* 803B535C 003B22BC 7C 7F E8 2E */ lwzx r3, r31, r29 +/* 803B5360 003B22C0 1C 1B 00 14 */ mulli r0, r27, 0x14 +/* 803B5364 003B22C4 3A C3 00 02 */ addi r22, r3, 2 +/* 803B5368 003B22C8 56 D5 10 3A */ slwi r21, r22, 2 +/* 803B536C 003B22CC 7F 97 02 14 */ add r28, r23, r0 +/* 803B5370 003B22D0 92 BC 00 80 */ stw r21, 0x80(r28) +/* 803B5374 003B22D4 7E A3 AB 78 */ mr r3, r21 +/* 803B5378 003B22D8 4B FF FD BD */ bl salMalloc +/* 803B537C 003B22DC 90 7C 00 84 */ stw r3, 0x84(r28) +/* 803B5380 003B22E0 7E A5 AB 78 */ mr r5, r21 +/* 803B5384 003B22E4 38 80 00 00 */ li r4, 0 +/* 803B5388 003B22E8 80 7C 00 84 */ lwz r3, 0x84(r28) +/* 803B538C 003B22EC 4B C4 E0 1D */ bl memset +/* 803B5390 003B22F0 D3 DC 00 88 */ stfs f30, 0x88(r28) +/* 803B5394 003B22F4 7E C0 0E 70 */ srawi r0, r22, 1 +/* 803B5398 003B22F8 54 03 10 3A */ slwi r3, r0, 2 +/* 803B539C 003B22FC 80 1C 00 78 */ lwz r0, 0x78(r28) +/* 803B53A0 003B2300 7C 03 00 50 */ subf r0, r3, r0 +/* 803B53A4 003B2304 90 1C 00 7C */ stw r0, 0x7c(r28) +/* 803B53A8 003B2308 48 00 00 14 */ b lbl_803B53BC +lbl_803B53AC: +/* 803B53AC 003B230C 80 7C 00 7C */ lwz r3, 0x7c(r28) +/* 803B53B0 003B2310 80 1C 00 80 */ lwz r0, 0x80(r28) +/* 803B53B4 003B2314 7C 03 02 14 */ add r0, r3, r0 +/* 803B53B8 003B2318 90 1C 00 7C */ stw r0, 0x7c(r28) +lbl_803B53BC: +/* 803B53BC 003B231C 80 1C 00 7C */ lwz r0, 0x7c(r28) +/* 803B53C0 003B2320 2C 00 00 00 */ cmpwi r0, 0 +/* 803B53C4 003B2324 41 80 FF E8 */ blt lbl_803B53AC +/* 803B53C8 003B2328 38 00 00 00 */ li r0, 0 +/* 803B53CC 003B232C 90 1C 00 78 */ stw r0, 0x78(r28) +/* 803B53D0 003B2330 90 1C 00 7C */ stw r0, 0x7c(r28) +/* 803B53D4 003B2334 7C 7F E8 2E */ lwzx r3, r31, r29 +/* 803B53D8 003B2338 80 1C 00 78 */ lwz r0, 0x78(r28) +/* 803B53DC 003B233C 54 63 10 3A */ slwi r3, r3, 2 +/* 803B53E0 003B2340 7C 03 00 50 */ subf r0, r3, r0 +/* 803B53E4 003B2344 90 1C 00 7C */ stw r0, 0x7c(r28) +/* 803B53E8 003B2348 48 00 00 14 */ b lbl_803B53FC +lbl_803B53EC: +/* 803B53EC 003B234C 80 7C 00 7C */ lwz r3, 0x7c(r28) +/* 803B53F0 003B2350 80 1C 00 80 */ lwz r0, 0x80(r28) +/* 803B53F4 003B2354 7C 03 02 14 */ add r0, r3, r0 +/* 803B53F8 003B2358 90 1C 00 7C */ stw r0, 0x7c(r28) +lbl_803B53FC: +/* 803B53FC 003B235C 80 1C 00 7C */ lwz r0, 0x7c(r28) +/* 803B5400 003B2360 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5404 003B2364 41 80 FF E8 */ blt lbl_803B53EC +/* 803B5408 003B2368 7C 1F E8 2E */ lwzx r0, r31, r29 +/* 803B540C 003B236C 93 C1 00 08 */ stw r30, 8(r1) +/* 803B5410 003B2370 1C 00 FF FD */ mulli r0, r0, -3 +/* 803B5414 003B2374 C8 22 D6 A8 */ lfd f1, lbl_805AF3C8@sda21(r2) +/* 803B5418 003B2378 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 803B541C 003B237C 90 01 00 0C */ stw r0, 0xc(r1) +/* 803B5420 003B2380 C8 01 00 08 */ lfd f0, 8(r1) +/* 803B5424 003B2384 EC 00 E8 28 */ fsubs f0, f0, f29 +/* 803B5428 003B2388 EC 40 E0 24 */ fdivs f2, f0, f28 +/* 803B542C 003B238C 4B FD F8 C1 */ bl pow +/* 803B5430 003B2390 FC 00 08 18 */ frsp f0, f1 +/* 803B5434 003B2394 57 63 10 3A */ slwi r3, r27, 2 +/* 803B5438 003B2398 38 03 00 F4 */ addi r0, r3, 0xf4 +/* 803B543C 003B239C 3B 39 00 01 */ addi r25, r25, 1 +/* 803B5440 003B23A0 7C 17 05 2E */ stfsx f0, r23, r0 +lbl_803B5444: +/* 803B5444 003B23A4 57 20 06 3E */ clrlwi r0, r25, 0x18 +/* 803B5448 003B23A8 28 00 00 02 */ cmplwi r0, 2 +/* 803B544C 003B23AC 41 80 FF 04 */ blt lbl_803B5350 +/* 803B5450 003B23B0 3B A0 00 00 */ li r29, 0 +/* 803B5454 003B23B4 48 00 00 C8 */ b lbl_803B551C +lbl_803B5458: +/* 803B5458 003B23B8 57 A0 15 BA */ rlwinm r0, r29, 2, 0x16, 0x1d +/* 803B545C 003B23BC 57 A4 06 3E */ clrlwi r4, r29, 0x18 +/* 803B5460 003B23C0 7C 7F 02 14 */ add r3, r31, r0 +/* 803B5464 003B23C4 7C 04 D2 14 */ add r0, r4, r26 +/* 803B5468 003B23C8 3B 83 00 08 */ addi r28, r3, 8 +/* 803B546C 003B23CC 80 63 00 08 */ lwz r3, 8(r3) +/* 803B5470 003B23D0 1C 00 00 14 */ mulli r0, r0, 0x14 +/* 803B5474 003B23D4 3A C3 00 02 */ addi r22, r3, 2 +/* 803B5478 003B23D8 56 D5 10 3A */ slwi r21, r22, 2 +/* 803B547C 003B23DC 7F 77 02 14 */ add r27, r23, r0 +/* 803B5480 003B23E0 92 BB 00 08 */ stw r21, 8(r27) +/* 803B5484 003B23E4 7E A3 AB 78 */ mr r3, r21 +/* 803B5488 003B23E8 4B FF FC AD */ bl salMalloc +/* 803B548C 003B23EC 90 7B 00 0C */ stw r3, 0xc(r27) +/* 803B5490 003B23F0 7E A5 AB 78 */ mr r5, r21 +/* 803B5494 003B23F4 38 80 00 00 */ li r4, 0 +/* 803B5498 003B23F8 80 7B 00 0C */ lwz r3, 0xc(r27) +/* 803B549C 003B23FC 4B C4 DF 0D */ bl memset +/* 803B54A0 003B2400 D3 DB 00 10 */ stfs f30, 0x10(r27) +/* 803B54A4 003B2404 7E C0 0E 70 */ srawi r0, r22, 1 +/* 803B54A8 003B2408 54 03 10 3A */ slwi r3, r0, 2 +/* 803B54AC 003B240C 80 1B 00 00 */ lwz r0, 0(r27) +/* 803B54B0 003B2410 7C 03 00 50 */ subf r0, r3, r0 +/* 803B54B4 003B2414 90 1B 00 04 */ stw r0, 4(r27) +/* 803B54B8 003B2418 48 00 00 14 */ b lbl_803B54CC +lbl_803B54BC: +/* 803B54BC 003B241C 80 7B 00 04 */ lwz r3, 4(r27) +/* 803B54C0 003B2420 80 1B 00 08 */ lwz r0, 8(r27) +/* 803B54C4 003B2424 7C 03 02 14 */ add r0, r3, r0 +/* 803B54C8 003B2428 90 1B 00 04 */ stw r0, 4(r27) +lbl_803B54CC: +/* 803B54CC 003B242C 80 1B 00 04 */ lwz r0, 4(r27) +/* 803B54D0 003B2430 2C 00 00 00 */ cmpwi r0, 0 +/* 803B54D4 003B2434 41 80 FF E8 */ blt lbl_803B54BC +/* 803B54D8 003B2438 38 00 00 00 */ li r0, 0 +/* 803B54DC 003B243C 90 1B 00 00 */ stw r0, 0(r27) +/* 803B54E0 003B2440 90 1B 00 04 */ stw r0, 4(r27) +/* 803B54E4 003B2444 80 7C 00 00 */ lwz r3, 0(r28) +/* 803B54E8 003B2448 80 1B 00 00 */ lwz r0, 0(r27) +/* 803B54EC 003B244C 54 63 10 3A */ slwi r3, r3, 2 +/* 803B54F0 003B2450 7C 03 00 50 */ subf r0, r3, r0 +/* 803B54F4 003B2454 90 1B 00 04 */ stw r0, 4(r27) +/* 803B54F8 003B2458 48 00 00 14 */ b lbl_803B550C +lbl_803B54FC: +/* 803B54FC 003B245C 80 7B 00 04 */ lwz r3, 4(r27) +/* 803B5500 003B2460 80 1B 00 08 */ lwz r0, 8(r27) +/* 803B5504 003B2464 7C 03 02 14 */ add r0, r3, r0 +/* 803B5508 003B2468 90 1B 00 04 */ stw r0, 4(r27) +lbl_803B550C: +/* 803B550C 003B246C 80 1B 00 04 */ lwz r0, 4(r27) +/* 803B5510 003B2470 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5514 003B2474 41 80 FF E8 */ blt lbl_803B54FC +/* 803B5518 003B2478 3B BD 00 01 */ addi r29, r29, 1 +lbl_803B551C: +/* 803B551C 003B247C 57 A0 06 3E */ clrlwi r0, r29, 0x18 +/* 803B5520 003B2480 28 00 00 02 */ cmplwi r0, 2 +/* 803B5524 003B2484 41 80 FF 34 */ blt lbl_803B5458 +/* 803B5528 003B2488 57 03 15 BA */ rlwinm r3, r24, 2, 0x16, 0x1d +/* 803B552C 003B248C 3B 18 00 01 */ addi r24, r24, 1 +/* 803B5530 003B2490 38 03 01 0C */ addi r0, r3, 0x10c +/* 803B5534 003B2494 7F D7 05 2E */ stfsx f30, r23, r0 +lbl_803B5538: +/* 803B5538 003B2498 57 00 06 3E */ clrlwi r0, r24, 0x18 +/* 803B553C 003B249C 28 00 00 03 */ cmplwi r0, 3 +/* 803B5540 003B24A0 41 80 FE 04 */ blt lbl_803B5344 +/* 803B5544 003B24A4 D3 37 00 F0 */ stfs f25, 0xf0(r23) +/* 803B5548 003B24A8 C0 02 D6 B0 */ lfs f0, lbl_805AF3D0@sda21(r2) +/* 803B554C 003B24AC D3 57 01 18 */ stfs f26, 0x118(r23) +/* 803B5550 003B24B0 D3 77 01 1C */ stfs f27, 0x11c(r23) +/* 803B5554 003B24B4 C0 37 01 1C */ lfs f1, 0x11c(r23) +/* 803B5558 003B24B8 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803B555C 003B24BC 40 80 00 08 */ bge lbl_803B5564 +/* 803B5560 003B24C0 D0 17 01 1C */ stfs f0, 0x11c(r23) +lbl_803B5564: +/* 803B5564 003B24C4 C0 42 D6 B4 */ lfs f2, lbl_805AF3D4@sda21(r2) +/* 803B5568 003B24C8 C0 37 01 1C */ lfs f1, 0x11c(r23) +/* 803B556C 003B24CC C0 02 D6 90 */ lfs f0, lbl_805AF3B0@sda21(r2) +/* 803B5570 003B24D0 EC 22 00 72 */ fmuls f1, f2, f1 +/* 803B5574 003B24D4 C0 42 D6 B0 */ lfs f2, lbl_805AF3D0@sda21(r2) +/* 803B5578 003B24D8 C0 62 D6 94 */ lfs f3, lbl_805AF3B4@sda21(r2) +/* 803B557C 003B24DC FC 00 F8 00 */ fcmpu cr0, f0, f31 +/* 803B5580 003B24E0 EC 02 08 2A */ fadds f0, f2, f1 +/* 803B5584 003B24E4 EC 03 00 28 */ fsubs f0, f3, f0 +/* 803B5588 003B24E8 D0 17 01 1C */ stfs f0, 0x11c(r23) +/* 803B558C 003B24EC 41 82 00 6C */ beq lbl_803B55F8 +/* 803B5590 003B24F0 C0 02 D6 A4 */ lfs f0, lbl_805AF3C4@sda21(r2) +/* 803B5594 003B24F4 3A C0 00 00 */ li r22, 0 +/* 803B5598 003B24F8 EC 00 07 F2 */ fmuls f0, f0, f31 +/* 803B559C 003B24FC FC 00 00 1E */ fctiwz f0, f0 +/* 803B55A0 003B2500 D8 01 00 08 */ stfd f0, 8(r1) +/* 803B55A4 003B2504 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B55A8 003B2508 90 17 01 20 */ stw r0, 0x120(r23) +/* 803B55AC 003B250C 48 00 00 3C */ b lbl_803B55E8 +lbl_803B55B0: +/* 803B55B0 003B2510 80 17 01 20 */ lwz r0, 0x120(r23) +/* 803B55B4 003B2514 54 03 10 3A */ slwi r3, r0, 2 +/* 803B55B8 003B2518 4B FF FB 7D */ bl salMalloc +/* 803B55BC 003B251C 56 C0 15 BA */ rlwinm r0, r22, 2, 0x16, 0x1d +/* 803B55C0 003B2520 38 80 00 00 */ li r4, 0 +/* 803B55C4 003B2524 7E B7 02 14 */ add r21, r23, r0 +/* 803B55C8 003B2528 90 75 01 24 */ stw r3, 0x124(r21) +/* 803B55CC 003B252C 80 17 01 20 */ lwz r0, 0x120(r23) +/* 803B55D0 003B2530 80 75 01 24 */ lwz r3, 0x124(r21) +/* 803B55D4 003B2534 54 05 10 3A */ slwi r5, r0, 2 +/* 803B55D8 003B2538 4B C4 DD D1 */ bl memset +/* 803B55DC 003B253C 80 15 01 24 */ lwz r0, 0x124(r21) +/* 803B55E0 003B2540 3A D6 00 01 */ addi r22, r22, 1 +/* 803B55E4 003B2544 90 15 01 30 */ stw r0, 0x130(r21) +lbl_803B55E8: +/* 803B55E8 003B2548 56 C0 06 3E */ clrlwi r0, r22, 0x18 +/* 803B55EC 003B254C 28 00 00 03 */ cmplwi r0, 3 +/* 803B55F0 003B2550 41 80 FF C0 */ blt lbl_803B55B0 +/* 803B55F4 003B2554 48 00 00 24 */ b lbl_803B5618 +lbl_803B55F8: +/* 803B55F8 003B2558 38 00 00 00 */ li r0, 0 +/* 803B55FC 003B255C 90 17 01 20 */ stw r0, 0x120(r23) +/* 803B5600 003B2560 90 17 01 30 */ stw r0, 0x130(r23) +/* 803B5604 003B2564 90 17 01 24 */ stw r0, 0x124(r23) +/* 803B5608 003B2568 90 17 01 34 */ stw r0, 0x134(r23) +/* 803B560C 003B256C 90 17 01 28 */ stw r0, 0x128(r23) +/* 803B5610 003B2570 90 17 01 38 */ stw r0, 0x138(r23) +/* 803B5614 003B2574 90 17 01 2C */ stw r0, 0x12c(r23) +lbl_803B5618: +/* 803B5618 003B2578 38 60 00 01 */ li r3, 1 +lbl_803B561C: +/* 803B561C 003B257C E3 E1 00 A8 */ psq_l f31, 168(r1), 0, qr0 +/* 803B5620 003B2580 CB E1 00 A0 */ lfd f31, 0xa0(r1) +/* 803B5624 003B2584 E3 C1 00 98 */ psq_l f30, 152(r1), 0, qr0 +/* 803B5628 003B2588 CB C1 00 90 */ lfd f30, 0x90(r1) +/* 803B562C 003B258C E3 A1 00 88 */ psq_l f29, 136(r1), 0, qr0 +/* 803B5630 003B2590 CB A1 00 80 */ lfd f29, 0x80(r1) +/* 803B5634 003B2594 E3 81 00 78 */ psq_l f28, 120(r1), 0, qr0 +/* 803B5638 003B2598 CB 81 00 70 */ lfd f28, 0x70(r1) +/* 803B563C 003B259C E3 61 00 68 */ psq_l f27, 104(r1), 0, qr0 +/* 803B5640 003B25A0 CB 61 00 60 */ lfd f27, 0x60(r1) +/* 803B5644 003B25A4 E3 41 00 58 */ psq_l f26, 88(r1), 0, qr0 +/* 803B5648 003B25A8 CB 41 00 50 */ lfd f26, 0x50(r1) +/* 803B564C 003B25AC E3 21 00 48 */ psq_l f25, 72(r1), 0, qr0 +/* 803B5650 003B25B0 39 61 00 40 */ addi r11, r1, 0x40 +/* 803B5654 003B25B4 CB 21 00 40 */ lfd f25, 0x40(r1) +/* 803B5658 003B25B8 4B FD 44 59 */ bl _restgpr_21 +/* 803B565C 003B25BC 80 01 00 B4 */ lwz r0, 0xb4(r1) +/* 803B5660 003B25C0 7C 08 03 A6 */ mtlr r0 +/* 803B5664 003B25C4 38 21 00 B0 */ addi r1, r1, 0xb0 +/* 803B5668 003B25C8 4E 80 00 20 */ blr + +.global HandleReverb +HandleReverb: +/* 803B566C 003B25CC 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 803B5670 003B25D0 BE 21 00 08 */ stmw r17, 8(r1) +/* 803B5674 003B25D4 D9 C1 00 58 */ stfd f14, 0x58(r1) +/* 803B5678 003B25D8 D9 E1 00 60 */ stfd f15, 0x60(r1) +/* 803B567C 003B25DC DA 01 00 68 */ stfd f16, 0x68(r1) +/* 803B5680 003B25E0 DA 21 00 70 */ stfd f17, 0x70(r1) +/* 803B5684 003B25E4 DA 41 00 78 */ stfd f18, 0x78(r1) +/* 803B5688 003B25E8 DA 61 00 80 */ stfd f19, 0x80(r1) +/* 803B568C 003B25EC DA 81 00 88 */ stfd f20, 0x88(r1) +/* 803B5690 003B25F0 3F E0 80 5B */ lis r31, lbl_805AF3E0@ha +/* 803B5694 003B25F4 C0 DF F3 E0 */ lfs f6, lbl_805AF3E0@l(r31) +/* 803B5698 003B25F8 3F E0 80 5B */ lis r31, lbl_805AF3E4@ha +/* 803B569C 003B25FC C1 3F F3 E4 */ lfs f9, lbl_805AF3E4@l(r31) +/* 803B56A0 003B2600 3F E0 80 5B */ lis r31, lbl_805AF3E8@ha +/* 803B56A4 003B2604 C8 BF F3 E8 */ lfd f5, lbl_805AF3E8@l(r31) +/* 803B56A8 003B2608 C0 44 00 F0 */ lfs f2, 0xf0(r4) +/* 803B56AC 003B260C C1 64 01 1C */ lfs f11, 0x11c(r4) +/* 803B56B0 003B2610 C1 04 01 18 */ lfs f8, 0x118(r4) +/* 803B56B4 003B2614 EC 68 02 72 */ fmuls f3, f8, f9 +/* 803B56B8 003B2618 EC 89 18 28 */ fsubs f4, f9, f3 +/* 803B56BC 003B261C 3F C0 43 30 */ lis r30, 0x4330 +/* 803B56C0 003B2620 93 C1 00 50 */ stw r30, 0x50(r1) +/* 803B56C4 003B2624 38 A0 00 00 */ li r5, 0 +lbl_803B56C8: +/* 803B56C8 003B2628 54 BF 18 38 */ slwi r31, r5, 3 +/* 803B56CC 003B262C 7F FF 22 14 */ add r31, r31, r4 +/* 803B56D0 003B2630 C2 7F 00 F4 */ lfs f19, 0xf4(r31) +/* 803B56D4 003B2634 C2 9F 00 F8 */ lfs f20, 0xf8(r31) +/* 803B56D8 003B2638 54 BF 10 3A */ slwi r31, r5, 2 +/* 803B56DC 003B263C 7F FF 22 14 */ add r31, r31, r4 +/* 803B56E0 003B2640 C0 FF 01 0C */ lfs f7, 0x10c(r31) +/* 803B56E4 003B2644 83 7F 01 24 */ lwz r27, 0x124(r31) +/* 803B56E8 003B2648 83 9F 01 30 */ lwz r28, 0x130(r31) +/* 803B56EC 003B264C 83 E4 01 20 */ lwz r31, 0x120(r4) +/* 803B56F0 003B2650 3A DF FF FF */ addi r22, r31, -1 +/* 803B56F4 003B2654 56 D6 10 3A */ slwi r22, r22, 2 +/* 803B56F8 003B2658 7E D6 DA 14 */ add r22, r22, r27 +/* 803B56FC 003B265C 2F 9F 00 00 */ cmpwi cr7, r31, 0 +/* 803B5700 003B2660 1F E5 00 28 */ mulli r31, r5, 0x28 +/* 803B5704 003B2664 3B A4 00 78 */ addi r29, r4, 0x78 +/* 803B5708 003B2668 7F BD FA 14 */ add r29, r29, r31 +/* 803B570C 003B266C 3B C4 00 00 */ addi r30, r4, 0 +/* 803B5710 003B2670 7F DE FA 14 */ add r30, r30, r31 +/* 803B5714 003B2674 82 BD 00 00 */ lwz r21, 0(r29) +/* 803B5718 003B2678 82 9D 00 04 */ lwz r20, 4(r29) +/* 803B571C 003B267C 82 7D 00 14 */ lwz r19, 0x14(r29) +/* 803B5720 003B2680 82 5D 00 18 */ lwz r18, 0x18(r29) +/* 803B5724 003B2684 C1 FD 00 10 */ lfs f15, 0x10(r29) +/* 803B5728 003B2688 C2 1D 00 24 */ lfs f16, 0x24(r29) +/* 803B572C 003B268C 83 5D 00 08 */ lwz r26, 8(r29) +/* 803B5730 003B2690 83 3D 00 1C */ lwz r25, 0x1c(r29) +/* 803B5734 003B2694 80 FD 00 0C */ lwz r7, 0xc(r29) +/* 803B5738 003B2698 81 1D 00 20 */ lwz r8, 0x20(r29) +/* 803B573C 003B269C 81 9E 00 00 */ lwz r12, 0(r30) +/* 803B5740 003B26A0 81 7E 00 04 */ lwz r11, 4(r30) +/* 803B5744 003B26A4 81 5E 00 14 */ lwz r10, 0x14(r30) +/* 803B5748 003B26A8 81 3E 00 18 */ lwz r9, 0x18(r30) +/* 803B574C 003B26AC C2 3E 00 10 */ lfs f17, 0x10(r30) +/* 803B5750 003B26B0 C2 5E 00 24 */ lfs f18, 0x24(r30) +/* 803B5754 003B26B4 83 1E 00 08 */ lwz r24, 8(r30) +/* 803B5758 003B26B8 82 FE 00 1C */ lwz r23, 0x1c(r30) +/* 803B575C 003B26BC 82 3E 00 0C */ lwz r17, 0xc(r30) +/* 803B5760 003B26C0 80 DE 00 20 */ lwz r6, 0x20(r30) +/* 803B5764 003B26C4 83 C3 00 00 */ lwz r30, 0(r3) +/* 803B5768 003B26C8 6F DE 80 00 */ xoris r30, r30, 0x8000 +/* 803B576C 003B26CC 93 C1 00 54 */ stw r30, 0x54(r1) +/* 803B5770 003B26D0 C9 81 00 50 */ lfd f12, 0x50(r1) +/* 803B5774 003B26D4 ED 8C 28 28 */ fsubs f12, f12, f5 +/* 803B5778 003B26D8 3B E0 00 9F */ li r31, 0x9f +/* 803B577C 003B26DC 7F E9 03 A6 */ mtctr r31 +lbl_803B5780: +/* 803B5780 003B26E0 FD A0 60 90 */ fmr f13, f12 +/* 803B5784 003B26E4 41 9E 00 1C */ beq cr7, lbl_803B57A0 +/* 803B5788 003B26E8 C1 BC 00 00 */ lfs f13, 0(r28) +/* 803B578C 003B26EC 3B 9C 00 04 */ addi r28, r28, 4 +/* 803B5790 003B26F0 7C 1C B0 00 */ cmpw r28, r22 +/* 803B5794 003B26F4 D1 9C FF FC */ stfs f12, -4(r28) +/* 803B5798 003B26F8 40 A2 00 08 */ bne+ lbl_803B57A0 +/* 803B579C 003B26FC 7F 7C DB 78 */ mr r28, r27 +lbl_803B57A0: +/* 803B57A0 003B2700 ED 13 6B FA */ fmadds f8, f19, f15, f13 +/* 803B57A4 003B2704 87 A3 00 04 */ lwzu r29, 4(r3) +/* 803B57A8 003B2708 ED 34 6C 3A */ fmadds f9, f20, f16, f13 +/* 803B57AC 003B270C 7D 07 AD 2E */ stfsx f8, r7, r21 +/* 803B57B0 003B2710 3A B5 00 04 */ addi r21, r21, 4 +/* 803B57B4 003B2714 7D 28 9D 2E */ stfsx f9, r8, r19 +/* 803B57B8 003B2718 7D C7 A4 2E */ lfsx f14, r7, r20 +/* 803B57BC 003B271C 3A 94 00 04 */ addi r20, r20, 4 +/* 803B57C0 003B2720 7E 08 94 2E */ lfsx f16, r8, r18 +/* 803B57C4 003B2724 7C 15 D0 00 */ cmpw r21, r26 +/* 803B57C8 003B2728 7C 94 D0 00 */ cmpw cr1, r20, r26 +/* 803B57CC 003B272C 3A 73 00 04 */ addi r19, r19, 4 +/* 803B57D0 003B2730 3A 52 00 04 */ addi r18, r18, 4 +/* 803B57D4 003B2734 FD E0 70 90 */ fmr f15, f14 +/* 803B57D8 003B2738 7E 93 C8 00 */ cmpw cr5, r19, r25 +/* 803B57DC 003B273C ED CE 80 2A */ fadds f14, f14, f16 +/* 803B57E0 003B2740 7F 12 C8 00 */ cmpw cr6, r18, r25 +/* 803B57E4 003B2744 40 A2 00 08 */ bne+ lbl_803B57EC +/* 803B57E8 003B2748 3A A0 00 00 */ li r21, 0 +lbl_803B57EC: +/* 803B57EC 003B274C 6F BD 80 00 */ xoris r29, r29, 0x8000 +/* 803B57F0 003B2750 ED 22 74 7A */ fmadds f9, f2, f17, f14 +/* 803B57F4 003B2754 40 A6 00 08 */ bne+ cr1, lbl_803B57FC +/* 803B57F8 003B2758 3A 80 00 00 */ li r20, 0 +lbl_803B57FC: +/* 803B57FC 003B275C 93 A1 00 54 */ stw r29, 0x54(r1) +/* 803B5800 003B2760 40 B6 00 08 */ bne+ cr5, lbl_803B5808 +/* 803B5804 003B2764 3A 60 00 00 */ li r19, 0 +lbl_803B5808: +/* 803B5808 003B2768 7D 31 65 2E */ stfsx f9, r17, r12 +/* 803B580C 003B276C ED C2 8A 7C */ fnmsubs f14, f2, f9, f17 +/* 803B5810 003B2770 39 8C 00 04 */ addi r12, r12, 4 +/* 803B5814 003B2774 40 BA 00 08 */ bne+ cr6, lbl_803B581C +/* 803B5818 003B2778 3A 40 00 00 */ li r18, 0 +lbl_803B581C: +/* 803B581C 003B277C 7E 31 5C 2E */ lfsx f17, r17, r11 +/* 803B5820 003B2780 7E 8C C0 00 */ cmpw cr5, r12, r24 +/* 803B5824 003B2784 39 6B 00 04 */ addi r11, r11, 4 +/* 803B5828 003B2788 7F 0B C0 00 */ cmpw cr6, r11, r24 +/* 803B582C 003B278C 40 B6 00 08 */ bne+ cr5, lbl_803B5834 +/* 803B5830 003B2790 39 80 00 00 */ li r12, 0 +lbl_803B5834: +/* 803B5834 003B2794 40 BA 00 08 */ bne+ cr6, lbl_803B583C +/* 803B5838 003B2798 39 60 00 00 */ li r11, 0 +lbl_803B583C: +/* 803B583C 003B279C ED CE 01 B2 */ fmuls f14, f14, f6 +/* 803B5840 003B27A0 C9 41 00 50 */ lfd f10, 0x50(r1) +/* 803B5844 003B27A4 ED CB 71 FA */ fmadds f14, f11, f7, f14 +/* 803B5848 003B27A8 ED 22 74 BA */ fmadds f9, f2, f18, f14 +/* 803B584C 003B27AC FC E0 70 90 */ fmr f7, f14 +/* 803B5850 003B27B0 7D 26 55 2E */ stfsx f9, r6, r10 +/* 803B5854 003B27B4 ED C2 92 7C */ fnmsubs f14, f2, f9, f18 +/* 803B5858 003B27B8 ED 04 03 32 */ fmuls f8, f4, f12 +/* 803B585C 003B27BC 7E 46 4C 2E */ lfsx f18, r6, r9 +/* 803B5860 003B27C0 39 4A 00 04 */ addi r10, r10, 4 +/* 803B5864 003B27C4 39 29 00 04 */ addi r9, r9, 4 +/* 803B5868 003B27C8 ED C3 43 BA */ fmadds f14, f3, f14, f8 +/* 803B586C 003B27CC 7E 8A B8 00 */ cmpw cr5, r10, r23 +/* 803B5870 003B27D0 7F 09 B8 00 */ cmpw cr6, r9, r23 +/* 803B5874 003B27D4 FD C0 70 1E */ fctiwz f14, f14 +/* 803B5878 003B27D8 40 B6 00 08 */ bne+ cr5, lbl_803B5880 +/* 803B587C 003B27DC 39 40 00 00 */ li r10, 0 +lbl_803B5880: +/* 803B5880 003B27E0 40 BA 00 08 */ bne+ cr6, lbl_803B5888 +/* 803B5884 003B27E4 39 20 00 00 */ li r9, 0 +lbl_803B5888: +/* 803B5888 003B27E8 3B E0 FF FC */ li r31, -4 +/* 803B588C 003B27EC ED 8A 28 28 */ fsubs f12, f10, f5 +/* 803B5890 003B27F0 7D C3 FF AE */ stfiwx f14, r3, r31 +/* 803B5894 003B27F4 42 00 FE EC */ bdnz lbl_803B5780 +/* 803B5898 003B27F8 FD A0 60 90 */ fmr f13, f12 +/* 803B589C 003B27FC 41 9E 00 1C */ beq cr7, lbl_803B58B8 +/* 803B58A0 003B2800 C1 BC 00 00 */ lfs f13, 0(r28) +/* 803B58A4 003B2804 3B 9C 00 04 */ addi r28, r28, 4 +/* 803B58A8 003B2808 7C 1C B0 00 */ cmpw r28, r22 +/* 803B58AC 003B280C D1 9C FF FC */ stfs f12, -4(r28) +/* 803B58B0 003B2810 40 A2 00 08 */ bne+ lbl_803B58B8 +/* 803B58B4 003B2814 7F 7C DB 78 */ mr r28, r27 +lbl_803B58B8: +/* 803B58B8 003B2818 ED 13 6B FA */ fmadds f8, f19, f15, f13 +/* 803B58BC 003B281C ED 34 6C 3A */ fmadds f9, f20, f16, f13 +/* 803B58C0 003B2820 7D 07 AD 2E */ stfsx f8, r7, r21 +/* 803B58C4 003B2824 3A B5 00 04 */ addi r21, r21, 4 +/* 803B58C8 003B2828 7D 28 9D 2E */ stfsx f9, r8, r19 +/* 803B58CC 003B282C 7D C7 A4 2E */ lfsx f14, r7, r20 +/* 803B58D0 003B2830 3A 94 00 04 */ addi r20, r20, 4 +/* 803B58D4 003B2834 7E 08 94 2E */ lfsx f16, r8, r18 +/* 803B58D8 003B2838 7C 15 D0 00 */ cmpw r21, r26 +/* 803B58DC 003B283C 7C 94 D0 00 */ cmpw cr1, r20, r26 +/* 803B58E0 003B2840 3A 73 00 04 */ addi r19, r19, 4 +/* 803B58E4 003B2844 3A 52 00 04 */ addi r18, r18, 4 +/* 803B58E8 003B2848 FD E0 70 90 */ fmr f15, f14 +/* 803B58EC 003B284C 7E 93 C8 00 */ cmpw cr5, r19, r25 +/* 803B58F0 003B2850 ED CE 80 2A */ fadds f14, f14, f16 +/* 803B58F4 003B2854 7F 12 C8 00 */ cmpw cr6, r18, r25 +/* 803B58F8 003B2858 40 A2 00 08 */ bne+ lbl_803B5900 +/* 803B58FC 003B285C 3A A0 00 00 */ li r21, 0 +lbl_803B5900: +/* 803B5900 003B2860 ED 22 74 7A */ fmadds f9, f2, f17, f14 +/* 803B5904 003B2864 40 A6 00 08 */ bne+ cr1, lbl_803B590C +/* 803B5908 003B2868 3A 80 00 00 */ li r20, 0 +lbl_803B590C: +/* 803B590C 003B286C 40 B6 00 08 */ bne+ cr5, lbl_803B5914 +/* 803B5910 003B2870 3A 60 00 00 */ li r19, 0 +lbl_803B5914: +/* 803B5914 003B2874 7D 31 65 2E */ stfsx f9, r17, r12 +/* 803B5918 003B2878 ED C2 8A 7C */ fnmsubs f14, f2, f9, f17 +/* 803B591C 003B287C 39 8C 00 04 */ addi r12, r12, 4 +/* 803B5920 003B2880 40 BA 00 08 */ bne+ cr6, lbl_803B5928 +/* 803B5924 003B2884 3A 40 00 00 */ li r18, 0 +lbl_803B5928: +/* 803B5928 003B2888 7E 31 5C 2E */ lfsx f17, r17, r11 +/* 803B592C 003B288C 7E 8C C0 00 */ cmpw cr5, r12, r24 +/* 803B5930 003B2890 39 6B 00 04 */ addi r11, r11, 4 +/* 803B5934 003B2894 7F 0B C0 00 */ cmpw cr6, r11, r24 +/* 803B5938 003B2898 40 B6 00 08 */ bne+ cr5, lbl_803B5940 +/* 803B593C 003B289C 39 80 00 00 */ li r12, 0 +lbl_803B5940: +/* 803B5940 003B28A0 40 BA 00 08 */ bne+ cr6, lbl_803B5948 +/* 803B5944 003B28A4 39 60 00 00 */ li r11, 0 +lbl_803B5948: +/* 803B5948 003B28A8 ED CE 01 B2 */ fmuls f14, f14, f6 +/* 803B594C 003B28AC ED CB 71 FA */ fmadds f14, f11, f7, f14 +/* 803B5950 003B28B0 1F E5 00 28 */ mulli r31, r5, 0x28 +/* 803B5954 003B28B4 ED 22 74 BA */ fmadds f9, f2, f18, f14 +/* 803B5958 003B28B8 FC E0 70 90 */ fmr f7, f14 +/* 803B595C 003B28BC 3B A4 00 78 */ addi r29, r4, 0x78 +/* 803B5960 003B28C0 7F BD FA 14 */ add r29, r29, r31 +/* 803B5964 003B28C4 7D 26 55 2E */ stfsx f9, r6, r10 +/* 803B5968 003B28C8 ED C2 92 7C */ fnmsubs f14, f2, f9, f18 +/* 803B596C 003B28CC ED 04 03 32 */ fmuls f8, f4, f12 +/* 803B5970 003B28D0 7E 46 4C 2E */ lfsx f18, r6, r9 +/* 803B5974 003B28D4 39 4A 00 04 */ addi r10, r10, 4 +/* 803B5978 003B28D8 39 29 00 04 */ addi r9, r9, 4 +/* 803B597C 003B28DC ED C3 43 BA */ fmadds f14, f3, f14, f8 +/* 803B5980 003B28E0 7E 8A B8 00 */ cmpw cr5, r10, r23 +/* 803B5984 003B28E4 7F 09 B8 00 */ cmpw cr6, r9, r23 +/* 803B5988 003B28E8 FD C0 70 1E */ fctiwz f14, f14 +/* 803B598C 003B28EC 40 B6 00 08 */ bne+ cr5, lbl_803B5994 +/* 803B5990 003B28F0 39 40 00 00 */ li r10, 0 +lbl_803B5994: +/* 803B5994 003B28F4 40 BA 00 08 */ bne+ cr6, lbl_803B599C +/* 803B5998 003B28F8 39 20 00 00 */ li r9, 0 +lbl_803B599C: +/* 803B599C 003B28FC 3B C4 00 00 */ addi r30, r4, 0 +/* 803B59A0 003B2900 7F DE FA 14 */ add r30, r30, r31 +/* 803B59A4 003B2904 7D C0 1F AE */ stfiwx f14, 0, r3 +/* 803B59A8 003B2908 92 BD 00 00 */ stw r21, 0(r29) +/* 803B59AC 003B290C 92 9D 00 04 */ stw r20, 4(r29) +/* 803B59B0 003B2910 92 7D 00 14 */ stw r19, 0x14(r29) +/* 803B59B4 003B2914 92 5D 00 18 */ stw r18, 0x18(r29) +/* 803B59B8 003B2918 38 63 00 04 */ addi r3, r3, 4 +/* 803B59BC 003B291C D1 FD 00 10 */ stfs f15, 0x10(r29) +/* 803B59C0 003B2920 D2 1D 00 24 */ stfs f16, 0x24(r29) +/* 803B59C4 003B2924 54 BF 10 3A */ slwi r31, r5, 2 +/* 803B59C8 003B2928 7F FF 22 14 */ add r31, r31, r4 +/* 803B59CC 003B292C 38 A5 00 01 */ addi r5, r5, 1 +/* 803B59D0 003B2930 91 9E 00 00 */ stw r12, 0(r30) +/* 803B59D4 003B2934 91 7E 00 04 */ stw r11, 4(r30) +/* 803B59D8 003B2938 91 5E 00 14 */ stw r10, 0x14(r30) +/* 803B59DC 003B293C 91 3E 00 18 */ stw r9, 0x18(r30) +/* 803B59E0 003B2940 2C 05 00 03 */ cmpwi r5, 3 +/* 803B59E4 003B2944 D2 3E 00 10 */ stfs f17, 0x10(r30) +/* 803B59E8 003B2948 D2 5E 00 24 */ stfs f18, 0x24(r30) +/* 803B59EC 003B294C D0 FF 01 0C */ stfs f7, 0x10c(r31) +/* 803B59F0 003B2950 93 9F 01 30 */ stw r28, 0x130(r31) +/* 803B59F4 003B2954 40 82 FC D4 */ bne lbl_803B56C8 +/* 803B59F8 003B2958 C9 C1 00 58 */ lfd f14, 0x58(r1) +/* 803B59FC 003B295C C9 E1 00 60 */ lfd f15, 0x60(r1) +/* 803B5A00 003B2960 CA 01 00 68 */ lfd f16, 0x68(r1) +/* 803B5A04 003B2964 CA 21 00 70 */ lfd f17, 0x70(r1) +/* 803B5A08 003B2968 CA 41 00 78 */ lfd f18, 0x78(r1) +/* 803B5A0C 003B296C CA 61 00 80 */ lfd f19, 0x80(r1) +/* 803B5A10 003B2970 CA 81 00 88 */ lfd f20, 0x88(r1) +/* 803B5A14 003B2974 BA 21 00 08 */ lmw r17, 8(r1) +/* 803B5A18 003B2978 38 21 00 90 */ addi r1, r1, 0x90 +/* 803B5A1C 003B297C 4E 80 00 20 */ blr + +.global ReverbSTDCallback +ReverbSTDCallback: +/* 803B5A20 003B2980 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5A24 003B2984 7C 08 02 A6 */ mflr r0 +/* 803B5A28 003B2988 7C C4 33 78 */ mr r4, r6 +/* 803B5A2C 003B298C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5A30 003B2990 4B FF FC 3D */ bl HandleReverb +/* 803B5A34 003B2994 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5A38 003B2998 7C 08 03 A6 */ mtlr r0 +/* 803B5A3C 003B299C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5A40 003B29A0 4E 80 00 20 */ blr + +.global ReverbSTDFree +ReverbSTDFree: +/* 803B5A44 003B29A4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5A48 003B29A8 7C 08 02 A6 */ mflr r0 +/* 803B5A4C 003B29AC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5A50 003B29B0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B5A54 003B29B4 3B E0 00 00 */ li r31, 0 +/* 803B5A58 003B29B8 93 C1 00 08 */ stw r30, 8(r1) +/* 803B5A5C 003B29BC 7C 7E 1B 78 */ mr r30, r3 +/* 803B5A60 003B29C0 48 00 00 1C */ b lbl_803B5A7C +lbl_803B5A64: +/* 803B5A64 003B29C4 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B5A68 003B29C8 1C 60 00 14 */ mulli r3, r0, 0x14 +/* 803B5A6C 003B29CC 38 03 00 0C */ addi r0, r3, 0xc +/* 803B5A70 003B29D0 7C 7E 00 2E */ lwzx r3, r30, r0 +/* 803B5A74 003B29D4 4B FF F6 E9 */ bl salFree +/* 803B5A78 003B29D8 3B FF 00 01 */ addi r31, r31, 1 +lbl_803B5A7C: +/* 803B5A7C 003B29DC 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B5A80 003B29E0 28 00 00 06 */ cmplwi r0, 6 +/* 803B5A84 003B29E4 41 80 FF E0 */ blt lbl_803B5A64 +/* 803B5A88 003B29E8 3B E0 00 00 */ li r31, 0 +/* 803B5A8C 003B29EC 48 00 00 1C */ b lbl_803B5AA8 +lbl_803B5A90: +/* 803B5A90 003B29F0 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B5A94 003B29F4 1C 60 00 14 */ mulli r3, r0, 0x14 +/* 803B5A98 003B29F8 38 03 00 84 */ addi r0, r3, 0x84 +/* 803B5A9C 003B29FC 7C 7E 00 2E */ lwzx r3, r30, r0 +/* 803B5AA0 003B2A00 4B FF F6 BD */ bl salFree +/* 803B5AA4 003B2A04 3B FF 00 01 */ addi r31, r31, 1 +lbl_803B5AA8: +/* 803B5AA8 003B2A08 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B5AAC 003B2A0C 28 00 00 06 */ cmplwi r0, 6 +/* 803B5AB0 003B2A10 41 80 FF E0 */ blt lbl_803B5A90 +/* 803B5AB4 003B2A14 80 1E 01 20 */ lwz r0, 0x120(r30) +/* 803B5AB8 003B2A18 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5ABC 003B2A1C 41 82 00 2C */ beq lbl_803B5AE8 +/* 803B5AC0 003B2A20 3B E0 00 00 */ li r31, 0 +/* 803B5AC4 003B2A24 48 00 00 18 */ b lbl_803B5ADC +lbl_803B5AC8: +/* 803B5AC8 003B2A28 57 E3 15 BA */ rlwinm r3, r31, 2, 0x16, 0x1d +/* 803B5ACC 003B2A2C 38 03 01 24 */ addi r0, r3, 0x124 +/* 803B5AD0 003B2A30 7C 7E 00 2E */ lwzx r3, r30, r0 +/* 803B5AD4 003B2A34 4B FF F6 89 */ bl salFree +/* 803B5AD8 003B2A38 3B FF 00 01 */ addi r31, r31, 1 +lbl_803B5ADC: +/* 803B5ADC 003B2A3C 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B5AE0 003B2A40 28 00 00 03 */ cmplwi r0, 3 +/* 803B5AE4 003B2A44 41 80 FF E4 */ blt lbl_803B5AC8 +lbl_803B5AE8: +/* 803B5AE8 003B2A48 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5AEC 003B2A4C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B5AF0 003B2A50 83 C1 00 08 */ lwz r30, 8(r1) +/* 803B5AF4 003B2A54 7C 08 03 A6 */ mtlr r0 +/* 803B5AF8 003B2A58 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5AFC 003B2A5C 4E 80 00 20 */ blr diff --git a/asm/musyx/creverb_fx.s b/asm/musyx/creverb_fx.s new file mode 100644 index 00000000..6590b82c --- /dev/null +++ b/asm/musyx/creverb_fx.s @@ -0,0 +1,61 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sub_803b5188 +sub_803b5188: +/* 803B5188 003B20E8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B518C 003B20EC 7C 08 02 A6 */ mflr r0 +/* 803B5190 003B20F0 7C 87 23 78 */ mr r7, r4 +/* 803B5194 003B20F4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5198 003B20F8 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B519C 003B20FC 2C 00 00 01 */ cmpwi r0, 1 +/* 803B51A0 003B2100 41 82 00 34 */ beq lbl_803B51D4 +/* 803B51A4 003B2104 40 80 00 30 */ bge lbl_803B51D4 +/* 803B51A8 003B2108 2C 00 00 00 */ cmpwi r0, 0 +/* 803B51AC 003B210C 40 80 00 08 */ bge lbl_803B51B4 +/* 803B51B0 003B2110 48 00 00 24 */ b lbl_803B51D4 +lbl_803B51B4: +/* 803B51B4 003B2114 88 05 01 3C */ lbz r0, 0x13c(r5) +/* 803B51B8 003B2118 28 00 00 00 */ cmplwi r0, 0 +/* 803B51BC 003B211C 40 82 00 18 */ bne lbl_803B51D4 +/* 803B51C0 003B2120 80 67 00 00 */ lwz r3, 0(r7) +/* 803B51C4 003B2124 7C A6 2B 78 */ mr r6, r5 +/* 803B51C8 003B2128 80 87 00 04 */ lwz r4, 4(r7) +/* 803B51CC 003B212C 80 A7 00 08 */ lwz r5, 8(r7) +/* 803B51D0 003B2130 48 00 08 51 */ bl ReverbSTDCallback +lbl_803B51D4: +/* 803B51D4 003B2134 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B51D8 003B2138 7C 08 03 A6 */ mtlr r0 +/* 803B51DC 003B213C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B51E0 003B2140 4E 80 00 20 */ blr + +.global sndAuxCallbackPrepareReverbSTD +sndAuxCallbackPrepareReverbSTD: +/* 803B51E4 003B2144 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B51E8 003B2148 7C 08 02 A6 */ mflr r0 +/* 803B51EC 003B214C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B51F0 003B2150 38 00 00 00 */ li r0, 0 +/* 803B51F4 003B2154 98 03 01 3C */ stb r0, 0x13c(r3) +/* 803B51F8 003B2158 C0 23 01 40 */ lfs f1, 0x140(r3) +/* 803B51FC 003B215C C0 43 01 48 */ lfs f2, 0x148(r3) +/* 803B5200 003B2160 C0 63 01 44 */ lfs f3, 0x144(r3) +/* 803B5204 003B2164 C0 83 01 4C */ lfs f4, 0x14c(r3) +/* 803B5208 003B2168 C0 A3 01 50 */ lfs f5, 0x150(r3) +/* 803B520C 003B216C 48 00 00 39 */ bl ReverbSTDCreate +/* 803B5210 003B2170 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5214 003B2174 7C 08 03 A6 */ mtlr r0 +/* 803B5218 003B2178 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B521C 003B217C 4E 80 00 20 */ blr + +.global sndAuxCallbackShutdownReverbSTD +sndAuxCallbackShutdownReverbSTD: +/* 803B5220 003B2180 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5224 003B2184 7C 08 02 A6 */ mflr r0 +/* 803B5228 003B2188 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B522C 003B218C 48 00 08 19 */ bl ReverbSTDFree +/* 803B5230 003B2190 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5234 003B2194 38 60 00 01 */ li r3, 1 +/* 803B5238 003B2198 7C 08 03 A6 */ mtlr r0 +/* 803B523C 003B219C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5240 003B21A0 4E 80 00 20 */ blr diff --git a/asm/musyx/delay_fx.s b/asm/musyx/delay_fx.s new file mode 100644 index 00000000..196154ea --- /dev/null +++ b/asm/musyx/delay_fx.s @@ -0,0 +1,260 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sndAuxCallbackDelay +sndAuxCallbackDelay: +/* 803B6904 003B3864 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B6908 003B3868 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B690C 003B386C 2C 00 00 01 */ cmpwi r0, 1 +/* 803B6910 003B3870 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B6914 003B3874 41 82 01 4C */ beq lbl_803B6A60 +/* 803B6918 003B3878 40 80 01 48 */ bge lbl_803B6A60 +/* 803B691C 003B387C 2C 00 00 00 */ cmpwi r0, 0 +/* 803B6920 003B3880 40 80 00 08 */ bge lbl_803B6928 +/* 803B6924 003B3884 48 00 01 3C */ b lbl_803B6A60 +lbl_803B6928: +/* 803B6928 003B3888 80 E5 00 0C */ lwz r7, 0xc(r5) +/* 803B692C 003B388C 38 00 00 A0 */ li r0, 0xa0 +/* 803B6930 003B3890 80 65 00 10 */ lwz r3, 0x10(r5) +/* 803B6934 003B3894 80 C5 00 14 */ lwz r6, 0x14(r5) +/* 803B6938 003B3898 1C E7 02 80 */ mulli r7, r7, 0x280 +/* 803B693C 003B389C 81 05 00 30 */ lwz r8, 0x30(r5) +/* 803B6940 003B38A0 81 85 00 34 */ lwz r12, 0x34(r5) +/* 803B6944 003B38A4 1D 23 02 80 */ mulli r9, r3, 0x280 +/* 803B6948 003B38A8 81 65 00 38 */ lwz r11, 0x38(r5) +/* 803B694C 003B38AC 7C 68 3A 14 */ add r3, r8, r7 +/* 803B6950 003B38B0 80 E4 00 00 */ lwz r7, 0(r4) +/* 803B6954 003B38B4 81 04 00 04 */ lwz r8, 4(r4) +/* 803B6958 003B38B8 1D 46 02 80 */ mulli r10, r6, 0x280 +/* 803B695C 003B38BC 7C CC 4A 14 */ add r6, r12, r9 +/* 803B6960 003B38C0 81 24 00 08 */ lwz r9, 8(r4) +/* 803B6964 003B38C4 7C 8B 52 14 */ add r4, r11, r10 +/* 803B6968 003B38C8 7C 09 03 A6 */ mtctr r0 +lbl_803B696C: +/* 803B696C 003B38CC 81 83 00 00 */ lwz r12, 0(r3) +/* 803B6970 003B38D0 80 05 00 18 */ lwz r0, 0x18(r5) +/* 803B6974 003B38D4 81 67 00 00 */ lwz r11, 0(r7) +/* 803B6978 003B38D8 7D 4C 01 D6 */ mullw r10, r12, r0 +/* 803B697C 003B38DC 83 E6 00 00 */ lwz r31, 0(r6) +/* 803B6980 003B38E0 80 04 00 00 */ lwz r0, 0(r4) +/* 803B6984 003B38E4 7D 4A 3E 70 */ srawi r10, r10, 7 +/* 803B6988 003B38E8 7D 4B 52 14 */ add r10, r11, r10 +/* 803B698C 003B38EC 91 43 00 00 */ stw r10, 0(r3) +/* 803B6990 003B38F0 38 63 00 04 */ addi r3, r3, 4 +/* 803B6994 003B38F4 81 45 00 1C */ lwz r10, 0x1c(r5) +/* 803B6998 003B38F8 81 68 00 00 */ lwz r11, 0(r8) +/* 803B699C 003B38FC 7D 5F 51 D6 */ mullw r10, r31, r10 +/* 803B69A0 003B3900 7D 4A 3E 70 */ srawi r10, r10, 7 +/* 803B69A4 003B3904 7D 4B 52 14 */ add r10, r11, r10 +/* 803B69A8 003B3908 91 46 00 00 */ stw r10, 0(r6) +/* 803B69AC 003B390C 38 C6 00 04 */ addi r6, r6, 4 +/* 803B69B0 003B3910 81 45 00 20 */ lwz r10, 0x20(r5) +/* 803B69B4 003B3914 81 69 00 00 */ lwz r11, 0(r9) +/* 803B69B8 003B3918 7D 40 51 D6 */ mullw r10, r0, r10 +/* 803B69BC 003B391C 7D 4A 3E 70 */ srawi r10, r10, 7 +/* 803B69C0 003B3920 7D 4B 52 14 */ add r10, r11, r10 +/* 803B69C4 003B3924 91 44 00 00 */ stw r10, 0(r4) +/* 803B69C8 003B3928 38 84 00 04 */ addi r4, r4, 4 +/* 803B69CC 003B392C 81 45 00 24 */ lwz r10, 0x24(r5) +/* 803B69D0 003B3930 7D 4C 51 D6 */ mullw r10, r12, r10 +/* 803B69D4 003B3934 7D 4A 3E 70 */ srawi r10, r10, 7 +/* 803B69D8 003B3938 91 47 00 00 */ stw r10, 0(r7) +/* 803B69DC 003B393C 38 E7 00 04 */ addi r7, r7, 4 +/* 803B69E0 003B3940 81 45 00 28 */ lwz r10, 0x28(r5) +/* 803B69E4 003B3944 7D 5F 51 D6 */ mullw r10, r31, r10 +/* 803B69E8 003B3948 7D 4A 3E 70 */ srawi r10, r10, 7 +/* 803B69EC 003B394C 91 48 00 00 */ stw r10, 0(r8) +/* 803B69F0 003B3950 39 08 00 04 */ addi r8, r8, 4 +/* 803B69F4 003B3954 81 45 00 2C */ lwz r10, 0x2c(r5) +/* 803B69F8 003B3958 7C 00 51 D6 */ mullw r0, r0, r10 +/* 803B69FC 003B395C 7C 00 3E 70 */ srawi r0, r0, 7 +/* 803B6A00 003B3960 90 09 00 00 */ stw r0, 0(r9) +/* 803B6A04 003B3964 39 29 00 04 */ addi r9, r9, 4 +/* 803B6A08 003B3968 42 00 FF 64 */ bdnz lbl_803B696C +/* 803B6A0C 003B396C 80 85 00 0C */ lwz r4, 0xc(r5) +/* 803B6A10 003B3970 80 65 00 00 */ lwz r3, 0(r5) +/* 803B6A14 003B3974 38 84 00 01 */ addi r4, r4, 1 +/* 803B6A18 003B3978 7C 04 1B 96 */ divwu r0, r4, r3 +/* 803B6A1C 003B397C 7C 00 19 D6 */ mullw r0, r0, r3 +/* 803B6A20 003B3980 7C 00 20 50 */ subf r0, r0, r4 +/* 803B6A24 003B3984 90 05 00 0C */ stw r0, 0xc(r5) +/* 803B6A28 003B3988 80 85 00 10 */ lwz r4, 0x10(r5) +/* 803B6A2C 003B398C 80 65 00 04 */ lwz r3, 4(r5) +/* 803B6A30 003B3990 38 84 00 01 */ addi r4, r4, 1 +/* 803B6A34 003B3994 7C 04 1B 96 */ divwu r0, r4, r3 +/* 803B6A38 003B3998 7C 00 19 D6 */ mullw r0, r0, r3 +/* 803B6A3C 003B399C 7C 00 20 50 */ subf r0, r0, r4 +/* 803B6A40 003B39A0 90 05 00 10 */ stw r0, 0x10(r5) +/* 803B6A44 003B39A4 80 85 00 14 */ lwz r4, 0x14(r5) +/* 803B6A48 003B39A8 80 65 00 08 */ lwz r3, 8(r5) +/* 803B6A4C 003B39AC 38 84 00 01 */ addi r4, r4, 1 +/* 803B6A50 003B39B0 7C 04 1B 96 */ divwu r0, r4, r3 +/* 803B6A54 003B39B4 7C 00 19 D6 */ mullw r0, r0, r3 +/* 803B6A58 003B39B8 7C 00 20 50 */ subf r0, r0, r4 +/* 803B6A5C 003B39BC 90 05 00 14 */ stw r0, 0x14(r5) +lbl_803B6A60: +/* 803B6A60 003B39C0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B6A64 003B39C4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B6A68 003B39C8 4E 80 00 20 */ blr + +.global sndAuxCallbackUpdateSettingsDelay +sndAuxCallbackUpdateSettingsDelay: +/* 803B6A6C 003B39CC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B6A70 003B39D0 7C 08 02 A6 */ mflr r0 +/* 803B6A74 003B39D4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B6A78 003B39D8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B6A7C 003B39DC 7C 7F 1B 78 */ mr r31, r3 +/* 803B6A80 003B39E0 48 00 01 E5 */ bl sndAuxCallbackShutdownDelay +/* 803B6A84 003B39E4 80 DF 00 3C */ lwz r6, 0x3c(r31) +/* 803B6A88 003B39E8 3C 80 CC CD */ lis r4, 0xCCCCCCCD@ha +/* 803B6A8C 003B39EC 3C A0 51 EC */ lis r5, 0x51EB851F@ha +/* 803B6A90 003B39F0 38 60 00 00 */ li r3, 0 +/* 803B6A94 003B39F4 38 06 FF FB */ addi r0, r6, -5 +/* 803B6A98 003B39F8 38 84 CC CD */ addi r4, r4, 0xCCCCCCCD@l +/* 803B6A9C 003B39FC 54 06 28 34 */ slwi r6, r0, 5 +/* 803B6AA0 003B3A00 38 05 85 1F */ addi r0, r5, 0x51EB851F@l +/* 803B6AA4 003B3A04 38 A6 00 9F */ addi r5, r6, 0x9f +/* 803B6AA8 003B3A08 7C A4 28 16 */ mulhwu r5, r4, r5 +/* 803B6AAC 003B3A0C 54 A5 C9 FE */ srwi r5, r5, 7 +/* 803B6AB0 003B3A10 90 BF 00 00 */ stw r5, 0(r31) +/* 803B6AB4 003B3A14 90 7F 00 0C */ stw r3, 0xc(r31) +/* 803B6AB8 003B3A18 80 BF 00 48 */ lwz r5, 0x48(r31) +/* 803B6ABC 003B3A1C 54 A5 38 30 */ slwi r5, r5, 7 +/* 803B6AC0 003B3A20 7C A0 28 16 */ mulhwu r5, r0, r5 +/* 803B6AC4 003B3A24 54 A5 D9 7E */ srwi r5, r5, 5 +/* 803B6AC8 003B3A28 90 BF 00 18 */ stw r5, 0x18(r31) +/* 803B6ACC 003B3A2C 80 BF 00 54 */ lwz r5, 0x54(r31) +/* 803B6AD0 003B3A30 54 A5 38 30 */ slwi r5, r5, 7 +/* 803B6AD4 003B3A34 7C A0 28 16 */ mulhwu r5, r0, r5 +/* 803B6AD8 003B3A38 54 A5 D9 7E */ srwi r5, r5, 5 +/* 803B6ADC 003B3A3C 90 BF 00 24 */ stw r5, 0x24(r31) +/* 803B6AE0 003B3A40 80 BF 00 40 */ lwz r5, 0x40(r31) +/* 803B6AE4 003B3A44 38 A5 FF FB */ addi r5, r5, -5 +/* 803B6AE8 003B3A48 54 A5 28 34 */ slwi r5, r5, 5 +/* 803B6AEC 003B3A4C 38 A5 00 9F */ addi r5, r5, 0x9f +/* 803B6AF0 003B3A50 7C A4 28 16 */ mulhwu r5, r4, r5 +/* 803B6AF4 003B3A54 54 A5 C9 FE */ srwi r5, r5, 7 +/* 803B6AF8 003B3A58 90 BF 00 04 */ stw r5, 4(r31) +/* 803B6AFC 003B3A5C 90 7F 00 10 */ stw r3, 0x10(r31) +/* 803B6B00 003B3A60 80 BF 00 4C */ lwz r5, 0x4c(r31) +/* 803B6B04 003B3A64 54 A5 38 30 */ slwi r5, r5, 7 +/* 803B6B08 003B3A68 7C A0 28 16 */ mulhwu r5, r0, r5 +/* 803B6B0C 003B3A6C 54 A5 D9 7E */ srwi r5, r5, 5 +/* 803B6B10 003B3A70 90 BF 00 1C */ stw r5, 0x1c(r31) +/* 803B6B14 003B3A74 80 BF 00 58 */ lwz r5, 0x58(r31) +/* 803B6B18 003B3A78 54 A5 38 30 */ slwi r5, r5, 7 +/* 803B6B1C 003B3A7C 7C A0 28 16 */ mulhwu r5, r0, r5 +/* 803B6B20 003B3A80 54 A5 D9 7E */ srwi r5, r5, 5 +/* 803B6B24 003B3A84 90 BF 00 28 */ stw r5, 0x28(r31) +/* 803B6B28 003B3A88 80 BF 00 44 */ lwz r5, 0x44(r31) +/* 803B6B2C 003B3A8C 38 A5 FF FB */ addi r5, r5, -5 +/* 803B6B30 003B3A90 54 A5 28 34 */ slwi r5, r5, 5 +/* 803B6B34 003B3A94 38 A5 00 9F */ addi r5, r5, 0x9f +/* 803B6B38 003B3A98 7C 84 28 16 */ mulhwu r4, r4, r5 +/* 803B6B3C 003B3A9C 54 84 C9 FE */ srwi r4, r4, 7 +/* 803B6B40 003B3AA0 90 9F 00 08 */ stw r4, 8(r31) +/* 803B6B44 003B3AA4 90 7F 00 14 */ stw r3, 0x14(r31) +/* 803B6B48 003B3AA8 80 7F 00 50 */ lwz r3, 0x50(r31) +/* 803B6B4C 003B3AAC 54 63 38 30 */ slwi r3, r3, 7 +/* 803B6B50 003B3AB0 7C 60 18 16 */ mulhwu r3, r0, r3 +/* 803B6B54 003B3AB4 54 63 D9 7E */ srwi r3, r3, 5 +/* 803B6B58 003B3AB8 90 7F 00 20 */ stw r3, 0x20(r31) +/* 803B6B5C 003B3ABC 80 7F 00 5C */ lwz r3, 0x5c(r31) +/* 803B6B60 003B3AC0 54 63 38 30 */ slwi r3, r3, 7 +/* 803B6B64 003B3AC4 7C 00 18 16 */ mulhwu r0, r0, r3 +/* 803B6B68 003B3AC8 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B6B6C 003B3ACC 90 1F 00 2C */ stw r0, 0x2c(r31) +/* 803B6B70 003B3AD0 80 1F 00 00 */ lwz r0, 0(r31) +/* 803B6B74 003B3AD4 1C 60 02 80 */ mulli r3, r0, 0x280 +/* 803B6B78 003B3AD8 4B FF E5 BD */ bl salMalloc +/* 803B6B7C 003B3ADC 90 7F 00 30 */ stw r3, 0x30(r31) +/* 803B6B80 003B3AE0 80 1F 00 04 */ lwz r0, 4(r31) +/* 803B6B84 003B3AE4 1C 60 02 80 */ mulli r3, r0, 0x280 +/* 803B6B88 003B3AE8 4B FF E5 AD */ bl salMalloc +/* 803B6B8C 003B3AEC 90 7F 00 34 */ stw r3, 0x34(r31) +/* 803B6B90 003B3AF0 80 1F 00 08 */ lwz r0, 8(r31) +/* 803B6B94 003B3AF4 1C 60 02 80 */ mulli r3, r0, 0x280 +/* 803B6B98 003B3AF8 4B FF E5 9D */ bl salMalloc +/* 803B6B9C 003B3AFC 90 7F 00 38 */ stw r3, 0x38(r31) +/* 803B6BA0 003B3B00 38 80 00 00 */ li r4, 0 +/* 803B6BA4 003B3B04 38 60 00 00 */ li r3, 0 +/* 803B6BA8 003B3B08 80 BF 00 30 */ lwz r5, 0x30(r31) +/* 803B6BAC 003B3B0C 80 DF 00 34 */ lwz r6, 0x34(r31) +/* 803B6BB0 003B3B10 80 FF 00 38 */ lwz r7, 0x38(r31) +/* 803B6BB4 003B3B14 48 00 00 10 */ b lbl_803B6BC4 +lbl_803B6BB8: +/* 803B6BB8 003B3B18 90 65 00 00 */ stw r3, 0(r5) +/* 803B6BBC 003B3B1C 38 A5 00 04 */ addi r5, r5, 4 +/* 803B6BC0 003B3B20 38 84 00 01 */ addi r4, r4, 1 +lbl_803B6BC4: +/* 803B6BC4 003B3B24 80 1F 00 00 */ lwz r0, 0(r31) +/* 803B6BC8 003B3B28 1C 00 00 A0 */ mulli r0, r0, 0xa0 +/* 803B6BCC 003B3B2C 7C 04 00 40 */ cmplw r4, r0 +/* 803B6BD0 003B3B30 41 80 FF E8 */ blt lbl_803B6BB8 +/* 803B6BD4 003B3B34 38 80 00 00 */ li r4, 0 +/* 803B6BD8 003B3B38 7C 83 23 78 */ mr r3, r4 +/* 803B6BDC 003B3B3C 48 00 00 10 */ b lbl_803B6BEC +lbl_803B6BE0: +/* 803B6BE0 003B3B40 90 66 00 00 */ stw r3, 0(r6) +/* 803B6BE4 003B3B44 38 C6 00 04 */ addi r6, r6, 4 +/* 803B6BE8 003B3B48 38 84 00 01 */ addi r4, r4, 1 +lbl_803B6BEC: +/* 803B6BEC 003B3B4C 80 1F 00 04 */ lwz r0, 4(r31) +/* 803B6BF0 003B3B50 1C 00 00 A0 */ mulli r0, r0, 0xa0 +/* 803B6BF4 003B3B54 7C 04 00 40 */ cmplw r4, r0 +/* 803B6BF8 003B3B58 41 80 FF E8 */ blt lbl_803B6BE0 +/* 803B6BFC 003B3B5C 38 80 00 00 */ li r4, 0 +/* 803B6C00 003B3B60 7C 83 23 78 */ mr r3, r4 +/* 803B6C04 003B3B64 48 00 00 10 */ b lbl_803B6C14 +lbl_803B6C08: +/* 803B6C08 003B3B68 90 67 00 00 */ stw r3, 0(r7) +/* 803B6C0C 003B3B6C 38 E7 00 04 */ addi r7, r7, 4 +/* 803B6C10 003B3B70 38 84 00 01 */ addi r4, r4, 1 +lbl_803B6C14: +/* 803B6C14 003B3B74 80 1F 00 08 */ lwz r0, 8(r31) +/* 803B6C18 003B3B78 1C 00 00 A0 */ mulli r0, r0, 0xa0 +/* 803B6C1C 003B3B7C 7C 04 00 40 */ cmplw r4, r0 +/* 803B6C20 003B3B80 41 80 FF E8 */ blt lbl_803B6C08 +/* 803B6C24 003B3B84 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B6C28 003B3B88 38 60 00 01 */ li r3, 1 +/* 803B6C2C 003B3B8C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B6C30 003B3B90 7C 08 03 A6 */ mtlr r0 +/* 803B6C34 003B3B94 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B6C38 003B3B98 4E 80 00 20 */ blr + +.global sndAuxCallbackPrepareDelay +sndAuxCallbackPrepareDelay: +/* 803B6C3C 003B3B9C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B6C40 003B3BA0 7C 08 02 A6 */ mflr r0 +/* 803B6C44 003B3BA4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B6C48 003B3BA8 38 00 00 00 */ li r0, 0 +/* 803B6C4C 003B3BAC 90 03 00 30 */ stw r0, 0x30(r3) +/* 803B6C50 003B3BB0 4B FF FE 1D */ bl sndAuxCallbackUpdateSettingsDelay +/* 803B6C54 003B3BB4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B6C58 003B3BB8 7C 08 03 A6 */ mtlr r0 +/* 803B6C5C 003B3BBC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B6C60 003B3BC0 4E 80 00 20 */ blr + +.global sndAuxCallbackShutdownDelay +sndAuxCallbackShutdownDelay: +/* 803B6C64 003B3BC4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B6C68 003B3BC8 7C 08 02 A6 */ mflr r0 +/* 803B6C6C 003B3BCC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B6C70 003B3BD0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B6C74 003B3BD4 7C 7F 1B 78 */ mr r31, r3 +/* 803B6C78 003B3BD8 80 63 00 30 */ lwz r3, 0x30(r3) +/* 803B6C7C 003B3BDC 28 03 00 00 */ cmplwi r3, 0 +/* 803B6C80 003B3BE0 41 82 00 18 */ beq lbl_803B6C98 +/* 803B6C84 003B3BE4 4B FF E4 D9 */ bl salFree +/* 803B6C88 003B3BE8 80 7F 00 34 */ lwz r3, 0x34(r31) +/* 803B6C8C 003B3BEC 4B FF E4 D1 */ bl salFree +/* 803B6C90 003B3BF0 80 7F 00 38 */ lwz r3, 0x38(r31) +/* 803B6C94 003B3BF4 4B FF E4 C9 */ bl salFree +lbl_803B6C98: +/* 803B6C98 003B3BF8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B6C9C 003B3BFC 38 60 00 01 */ li r3, 1 +/* 803B6CA0 003B3C00 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B6CA4 003B3C04 7C 08 03 A6 */ mtlr r0 +/* 803B6CA8 003B3C08 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B6CAC 003B3C0C 4E 80 00 20 */ blr diff --git a/asm/musyx/hardware.s b/asm/musyx/hardware.s new file mode 100644 index 00000000..6d346c65 --- /dev/null +++ b/asm/musyx/hardware.s @@ -0,0 +1,1229 @@ +.include "macros.inc" + +.section .text, "ax" + +.global snd_handle_irq +snd_handle_irq: +/* 803B2F4C 003AFEAC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2F50 003AFEB0 7C 08 02 A6 */ mflr r0 +/* 803B2F54 003AFEB4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2F58 003AFEB8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B2F5C 003AFEBC 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803B2F60 003AFEC0 28 00 00 00 */ cmplwi r0, 0 +/* 803B2F64 003AFEC4 41 82 01 28 */ beq lbl_803B308C +/* 803B2F68 003AFEC8 4B FE A2 F1 */ bl nullsub_60 +/* 803B2F6C 003AFECC 48 00 21 89 */ bl sub_803b50f4 +/* 803B2F70 003AFED0 48 00 1F 05 */ bl salAiGetDest +/* 803B2F74 003AFED4 48 00 20 21 */ bl salCtrlDsp +/* 803B2F78 003AFED8 48 00 21 9D */ bl sub_803b5114 +/* 803B2F7C 003AFEDC 48 00 21 79 */ bl sub_803b50f4 +/* 803B2F80 003AFEE0 4B FF B0 39 */ bl salHandleAuxProcessing +/* 803B2F84 003AFEE4 48 00 21 91 */ bl sub_803b5114 +/* 803B2F88 003AFEE8 48 00 21 6D */ bl sub_803b50f4 +/* 803B2F8C 003AFEEC 88 8D AF 8E */ lbz r4, lbl_805A9B4E@sda21(r13) +/* 803B2F90 003AFEF0 3C 60 55 55 */ lis r3, 0x55555556@ha +/* 803B2F94 003AFEF4 38 03 55 56 */ addi r0, r3, 0x55555556@l +/* 803B2F98 003AFEF8 88 AD AF 8F */ lbz r5, lbl_805A9B4F@sda21(r13) +/* 803B2F9C 003AFEFC 38 84 00 01 */ addi r4, r4, 1 +/* 803B2FA0 003AFF00 39 20 00 00 */ li r9, 0 +/* 803B2FA4 003AFF04 7C 60 20 96 */ mulhw r3, r0, r4 +/* 803B2FA8 003AFF08 68 A0 00 01 */ xori r0, r5, 1 +/* 803B2FAC 003AFF0C 98 0D AF 8F */ stb r0, lbl_805A9B4F@sda21(r13) +/* 803B2FB0 003AFF10 39 00 00 00 */ li r8, 0 +/* 803B2FB4 003AFF14 54 60 0F FE */ srwi r0, r3, 0x1f +/* 803B2FB8 003AFF18 7C 03 02 14 */ add r0, r3, r0 +/* 803B2FBC 003AFF1C 1C 00 00 03 */ mulli r0, r0, 3 +/* 803B2FC0 003AFF20 7C 00 20 50 */ subf r0, r0, r4 +/* 803B2FC4 003AFF24 98 0D AF 8E */ stb r0, lbl_805A9B4E@sda21(r13) +/* 803B2FC8 003AFF28 48 00 00 4C */ b lbl_803B3014 +lbl_803B2FCC: +/* 803B2FCC 003AFF2C 55 20 06 3E */ clrlwi r0, r9, 0x18 +/* 803B2FD0 003AFF30 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B2FD4 003AFF34 1C 80 00 F4 */ mulli r4, r0, 0xf4 +/* 803B2FD8 003AFF38 39 29 00 01 */ addi r9, r9, 1 +/* 803B2FDC 003AFF3C 38 E4 00 24 */ addi r7, r4, 0x24 +/* 803B2FE0 003AFF40 7D 03 39 2E */ stwx r8, r3, r7 +/* 803B2FE4 003AFF44 38 A7 00 04 */ addi r5, r7, 4 +/* 803B2FE8 003AFF48 38 87 00 08 */ addi r4, r7, 8 +/* 803B2FEC 003AFF4C 38 67 00 0C */ addi r3, r7, 0xc +/* 803B2FF0 003AFF50 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803B2FF4 003AFF54 38 07 00 10 */ addi r0, r7, 0x10 +/* 803B2FF8 003AFF58 7D 06 29 2E */ stwx r8, r6, r5 +/* 803B2FFC 003AFF5C 80 AD AF 54 */ lwz r5, lbl_805A9B14@sda21(r13) +/* 803B3000 003AFF60 7D 05 21 2E */ stwx r8, r5, r4 +/* 803B3004 003AFF64 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803B3008 003AFF68 7D 04 19 2E */ stwx r8, r4, r3 +/* 803B300C 003AFF6C 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B3010 003AFF70 7D 03 01 2E */ stwx r8, r3, r0 +lbl_803B3014: +/* 803B3014 003AFF74 88 0D AF 8D */ lbz r0, lbl_805A9B4D@sda21(r13) +/* 803B3018 003AFF78 55 23 06 3E */ clrlwi r3, r9, 0x18 +/* 803B301C 003AFF7C 7C 03 00 40 */ cmplw r3, r0 +/* 803B3020 003AFF80 41 80 FF AC */ blt lbl_803B2FCC +/* 803B3024 003AFF84 48 00 20 F1 */ bl sub_803b5114 +/* 803B3028 003AFF88 3B E0 00 00 */ li r31, 0 +/* 803B302C 003AFF8C 48 00 00 28 */ b lbl_803B3054 +lbl_803B3030: +/* 803B3030 003AFF90 48 00 20 C5 */ bl sub_803b50f4 +/* 803B3034 003AFF94 7F E3 FB 78 */ mr r3, r31 +/* 803B3038 003AFF98 48 00 01 55 */ bl sub_803b318c +/* 803B303C 003AFF9C 38 60 01 00 */ li r3, 0x100 +/* 803B3040 003AFFA0 4B FE 50 C5 */ bl sub_80398104 +/* 803B3044 003AFFA4 38 60 01 00 */ li r3, 0x100 +/* 803B3048 003AFFA8 4B FE 7A C1 */ bl synthHandle +/* 803B304C 003AFFAC 48 00 20 C9 */ bl sub_803b5114 +/* 803B3050 003AFFB0 3B FF 00 01 */ addi r31, r31, 1 +lbl_803B3054: +/* 803B3054 003AFFB4 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B3058 003AFFB8 28 00 00 05 */ cmplwi r0, 5 +/* 803B305C 003AFFBC 41 80 FF D4 */ blt lbl_803B3030 +/* 803B3060 003AFFC0 48 00 20 95 */ bl sub_803b50f4 +/* 803B3064 003AFFC4 38 60 00 00 */ li r3, 0 +/* 803B3068 003AFFC8 48 00 01 25 */ bl sub_803b318c +/* 803B306C 003AFFCC 4B FF D2 ED */ bl sub_803b0358 +/* 803B3070 003AFFD0 48 00 20 A5 */ bl sub_803b5114 +/* 803B3074 003AFFD4 48 00 20 81 */ bl sub_803b50f4 +/* 803B3078 003AFFD8 4B FE 99 35 */ bl sub_8039c9ac +/* 803B307C 003AFFDC 48 00 20 99 */ bl sub_803b5114 +/* 803B3080 003AFFE0 48 00 20 75 */ bl sub_803b50f4 +/* 803B3084 003AFFE4 4B FF 6E F1 */ bl vsSampleUpdates +/* 803B3088 003AFFE8 48 00 20 8D */ bl sub_803b5114 +lbl_803B308C: +/* 803B308C 003AFFEC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3090 003AFFF0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B3094 003AFFF4 7C 08 03 A6 */ mtlr r0 +/* 803B3098 003AFFF8 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B309C 003AFFFC 4E 80 00 20 */ blr + +.global sub_803b30a0 +sub_803b30a0: +/* 803B30A0 003B0000 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B30A4 003B0004 7C 08 02 A6 */ mflr r0 +/* 803B30A8 003B0008 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B30AC 003B000C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B30B0 003B0010 7C DF 33 78 */ mr r31, r6 +/* 803B30B4 003B0014 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B30B8 003B0018 7C BE 2B 78 */ mr r30, r5 +/* 803B30BC 003B001C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B30C0 003B0020 7C 9D 23 78 */ mr r29, r4 +/* 803B30C4 003B0024 93 81 00 10 */ stw r28, 0x10(r1) +/* 803B30C8 003B0028 7C 7C 1B 78 */ mr r28, r3 +/* 803B30CC 003B002C 48 00 1F 89 */ bl hwInitIrq +/* 803B30D0 003B0030 38 00 00 00 */ li r0, 0 +/* 803B30D4 003B0034 3C 60 80 3B */ lis r3, snd_handle_irq@ha +/* 803B30D8 003B0038 98 0D AF 8F */ stb r0, lbl_805A9B4F@sda21(r13) +/* 803B30DC 003B003C 38 63 2F 4C */ addi r3, r3, snd_handle_irq@l +/* 803B30E0 003B0040 7F E4 FB 78 */ mr r4, r31 +/* 803B30E4 003B0044 7F 85 E3 78 */ mr r5, r28 +/* 803B30E8 003B0048 98 0D AF 8E */ stb r0, lbl_805A9B4E@sda21(r13) +/* 803B30EC 003B004C 90 0D AF 58 */ stw r0, lbl_805A9B18@sda21(r13) +/* 803B30F0 003B0050 48 00 1C 69 */ bl salInitAi +/* 803B30F4 003B0054 28 03 00 00 */ cmplwi r3, 0 +/* 803B30F8 003B0058 41 82 00 3C */ beq lbl_803B3134 +/* 803B30FC 003B005C 57 E5 07 FE */ clrlwi r5, r31, 0x1f +/* 803B3100 003B0060 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 803B3104 003B0064 57 C4 06 3E */ clrlwi r4, r30, 0x18 +/* 803B3108 003B0068 4B FF 7B F5 */ bl salInitDspCtrl +/* 803B310C 003B006C 28 03 00 00 */ cmplwi r3, 0 +/* 803B3110 003B0070 41 82 00 24 */ beq lbl_803B3134 +/* 803B3114 003B0074 7F E3 FB 78 */ mr r3, r31 +/* 803B3118 003B0078 48 00 1D 8D */ bl sub_803b4ea4 +/* 803B311C 003B007C 28 03 00 00 */ cmplwi r3, 0 +/* 803B3120 003B0080 41 82 00 14 */ beq lbl_803B3134 +/* 803B3124 003B0084 48 00 1F 61 */ bl hwEnableIrq +/* 803B3128 003B0088 48 00 1C F9 */ bl sub_803b4e20 +/* 803B312C 003B008C 38 60 00 00 */ li r3, 0 +/* 803B3130 003B0090 48 00 00 08 */ b lbl_803B3138 +lbl_803B3134: +/* 803B3134 003B0094 38 60 FF FF */ li r3, -1 +lbl_803B3138: +/* 803B3138 003B0098 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B313C 003B009C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B3140 003B00A0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B3144 003B00A4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B3148 003B00A8 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803B314C 003B00AC 7C 08 03 A6 */ mtlr r0 +/* 803B3150 003B00B0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B3154 003B00B4 4E 80 00 20 */ blr + +.global hwExit +hwExit: +/* 803B3158 003B00B8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B315C 003B00BC 7C 08 02 A6 */ mflr r0 +/* 803B3160 003B00C0 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3164 003B00C4 48 00 1F 59 */ bl hwDisableIrq +/* 803B3168 003B00C8 48 00 1D F9 */ bl sub_803b4f60 +/* 803B316C 003B00CC 4B FF 7F 7D */ bl salExitDspCtrl +/* 803B3170 003B00D0 48 00 1C D1 */ bl salExitAi +/* 803B3174 003B00D4 48 00 1F 11 */ bl hwEnableIrq +/* 803B3178 003B00D8 48 00 1F 09 */ bl nullsub_13 +/* 803B317C 003B00DC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3180 003B00E0 7C 08 03 A6 */ mtlr r0 +/* 803B3184 003B00E4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3188 003B00E8 4E 80 00 20 */ blr + +.global sub_803b318c +sub_803b318c: +/* 803B318C 003B00EC 98 6D AF 80 */ stb r3, lbl_805A9B40@sda21(r13) +/* 803B3190 003B00F0 4E 80 00 20 */ blr + +.global sub_803b3194 +sub_803b3194: +/* 803B3194 003B00F4 88 6D AF 80 */ lbz r3, lbl_805A9B40@sda21(r13) +/* 803B3198 003B00F8 4E 80 00 20 */ blr + +.global hwIsActive +hwIsActive: +/* 803B319C 003B00FC 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B31A0 003B0100 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B31A4 003B0104 7C 63 02 14 */ add r3, r3, r0 +/* 803B31A8 003B0108 88 63 00 EC */ lbz r3, 0xec(r3) +/* 803B31AC 003B010C 7C 03 00 D0 */ neg r0, r3 +/* 803B31B0 003B0110 7C 00 1B 78 */ or r0, r0, r3 +/* 803B31B4 003B0114 54 03 0F FE */ srwi r3, r0, 0x1f +/* 803B31B8 003B0118 4E 80 00 20 */ blr + +.global sub_803b31bc +sub_803b31bc: +/* 803B31BC 003B011C 90 6D AF 58 */ stw r3, lbl_805A9B18@sda21(r13) +/* 803B31C0 003B0120 4E 80 00 20 */ blr + +.global hwSetPriority +hwSetPriority: +/* 803B31C4 003B0124 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B31C8 003B0128 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B31CC 003B012C 7C 63 02 14 */ add r3, r3, r0 +/* 803B31D0 003B0130 90 83 00 1C */ stw r4, 0x1c(r3) +/* 803B31D4 003B0134 4E 80 00 20 */ blr + +.global hwInitSamplePlayback +hwInitSamplePlayback: +/* 803B31D8 003B0138 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B31DC 003B013C 7C 08 02 A6 */ mflr r0 +/* 803B31E0 003B0140 39 80 00 00 */ li r12, 0 +/* 803B31E4 003B0144 39 60 00 00 */ li r11, 0 +/* 803B31E8 003B0148 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B31EC 003B014C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B31F0 003B0150 7D 5F 53 78 */ mr r31, r10 +/* 803B31F4 003B0154 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B31F8 003B0158 7C 7E 1B 78 */ mr r30, r3 +/* 803B31FC 003B015C 1C 7E 00 F4 */ mulli r3, r30, 0xf4 +/* 803B3200 003B0160 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B3204 003B0164 3B A0 00 00 */ li r29, 0 +/* 803B3208 003B0168 48 00 00 28 */ b lbl_803B3230 +lbl_803B320C: +/* 803B320C 003B016C 81 4D AF 54 */ lwz r10, lbl_805A9B14@sda21(r13) +/* 803B3210 003B0170 55 80 15 BA */ rlwinm r0, r12, 2, 0x16, 0x1d +/* 803B3214 003B0174 39 8C 00 01 */ addi r12, r12, 1 +/* 803B3218 003B0178 7D 4A 02 14 */ add r10, r10, r0 +/* 803B321C 003B017C 39 4A 00 24 */ addi r10, r10, 0x24 +/* 803B3220 003B0180 7C 03 50 2E */ lwzx r0, r3, r10 +/* 803B3224 003B0184 54 00 06 B4 */ rlwinm r0, r0, 0, 0x1a, 0x1a +/* 803B3228 003B0188 7D 63 51 2E */ stwx r11, r3, r10 +/* 803B322C 003B018C 7F BD 03 78 */ or r29, r29, r0 +lbl_803B3230: +/* 803B3230 003B0190 88 0D AF 80 */ lbz r0, lbl_805A9B40@sda21(r13) +/* 803B3234 003B0194 55 8A 06 3E */ clrlwi r10, r12, 0x18 +/* 803B3238 003B0198 7C 0A 00 40 */ cmplw r10, r0 +/* 803B323C 003B019C 40 81 FF D0 */ ble lbl_803B320C +/* 803B3240 003B01A0 81 4D AF 54 */ lwz r10, lbl_805A9B14@sda21(r13) +/* 803B3244 003B01A4 38 00 00 00 */ li r0, 0 +/* 803B3248 003B01A8 28 06 00 00 */ cmplwi r6, 0 +/* 803B324C 003B01AC 7C CA 1A 14 */ add r6, r10, r3 +/* 803B3250 003B01B0 93 A6 00 24 */ stw r29, 0x24(r6) +/* 803B3254 003B01B4 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803B3258 003B01B8 7C C6 1A 14 */ add r6, r6, r3 +/* 803B325C 003B01BC 90 E6 00 1C */ stw r7, 0x1c(r6) +/* 803B3260 003B01C0 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803B3264 003B01C4 7C C6 1A 14 */ add r6, r6, r3 +/* 803B3268 003B01C8 91 06 00 18 */ stw r8, 0x18(r6) +/* 803B326C 003B01CC 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803B3270 003B01D0 7C C6 1A 14 */ add r6, r6, r3 +/* 803B3274 003B01D4 90 06 00 F0 */ stw r0, 0xf0(r6) +/* 803B3278 003B01D8 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803B327C 003B01DC 7C C6 1A 14 */ add r6, r6, r3 +/* 803B3280 003B01E0 B0 86 00 70 */ sth r4, 0x70(r6) +/* 803B3284 003B01E4 80 ED AF 54 */ lwz r7, lbl_805A9B14@sda21(r13) +/* 803B3288 003B01E8 80 C5 00 00 */ lwz r6, 0(r5) +/* 803B328C 003B01EC 80 85 00 04 */ lwz r4, 4(r5) +/* 803B3290 003B01F0 7C E7 1A 14 */ add r7, r7, r3 +/* 803B3294 003B01F4 90 C7 00 74 */ stw r6, 0x74(r7) +/* 803B3298 003B01F8 90 87 00 78 */ stw r4, 0x78(r7) +/* 803B329C 003B01FC 80 C5 00 08 */ lwz r6, 8(r5) +/* 803B32A0 003B0200 80 85 00 0C */ lwz r4, 0xc(r5) +/* 803B32A4 003B0204 90 C7 00 7C */ stw r6, 0x7c(r7) +/* 803B32A8 003B0208 90 87 00 80 */ stw r4, 0x80(r7) +/* 803B32AC 003B020C 80 C5 00 10 */ lwz r6, 0x10(r5) +/* 803B32B0 003B0210 80 85 00 14 */ lwz r4, 0x14(r5) +/* 803B32B4 003B0214 90 C7 00 84 */ stw r6, 0x84(r7) +/* 803B32B8 003B0218 90 87 00 88 */ stw r4, 0x88(r7) +/* 803B32BC 003B021C 80 C5 00 18 */ lwz r6, 0x18(r5) +/* 803B32C0 003B0220 80 85 00 1C */ lwz r4, 0x1c(r5) +/* 803B32C4 003B0224 90 C7 00 8C */ stw r6, 0x8c(r7) +/* 803B32C8 003B0228 90 87 00 90 */ stw r4, 0x90(r7) +/* 803B32CC 003B022C 41 82 00 44 */ beq lbl_803B3310 +/* 803B32D0 003B0230 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803B32D4 003B0234 38 A0 7F FF */ li r5, 0x7fff +/* 803B32D8 003B0238 7C 84 1A 14 */ add r4, r4, r3 +/* 803B32DC 003B023C 98 04 00 A4 */ stb r0, 0xa4(r4) +/* 803B32E0 003B0240 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803B32E4 003B0244 7C 84 1A 14 */ add r4, r4, r3 +/* 803B32E8 003B0248 90 04 00 B8 */ stw r0, 0xb8(r4) +/* 803B32EC 003B024C 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803B32F0 003B0250 7C 84 1A 14 */ add r4, r4, r3 +/* 803B32F4 003B0254 90 04 00 BC */ stw r0, 0xbc(r4) +/* 803B32F8 003B0258 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803B32FC 003B025C 7C 84 1A 14 */ add r4, r4, r3 +/* 803B3300 003B0260 B0 A4 00 C0 */ sth r5, 0xc0(r4) +/* 803B3304 003B0264 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803B3308 003B0268 7C 84 1A 14 */ add r4, r4, r3 +/* 803B330C 003B026C 90 04 00 C4 */ stw r0, 0xc4(r4) +lbl_803B3310: +/* 803B3310 003B0270 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3314 003B0274 38 A0 00 FF */ li r5, 0xff +/* 803B3318 003B0278 28 09 00 00 */ cmplwi r9, 0 +/* 803B331C 003B027C 7C 80 1A 14 */ add r4, r0, r3 +/* 803B3320 003B0280 98 A4 00 E4 */ stb r5, 0xe4(r4) +/* 803B3324 003B0284 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3328 003B0288 7C 80 1A 14 */ add r4, r0, r3 +/* 803B332C 003B028C 98 A4 00 E5 */ stb r5, 0xe5(r4) +/* 803B3330 003B0290 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3334 003B0294 7C 80 1A 14 */ add r4, r0, r3 +/* 803B3338 003B0298 98 A4 00 E6 */ stb r5, 0xe6(r4) +/* 803B333C 003B029C 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3340 003B02A0 7C 60 1A 14 */ add r3, r0, r3 +/* 803B3344 003B02A4 98 A3 00 E7 */ stb r5, 0xe7(r3) +/* 803B3348 003B02A8 41 82 00 1C */ beq lbl_803B3364 +/* 803B334C 003B02AC 7F C3 F3 78 */ mr r3, r30 +/* 803B3350 003B02B0 38 80 00 00 */ li r4, 0 +/* 803B3354 003B02B4 48 00 03 81 */ bl sub_803b36d4 +/* 803B3358 003B02B8 7F C3 F3 78 */ mr r3, r30 +/* 803B335C 003B02BC 38 80 00 01 */ li r4, 1 +/* 803B3360 003B02C0 48 00 03 A1 */ bl hwSetSRCType +lbl_803B3364: +/* 803B3364 003B02C4 7F C3 F3 78 */ mr r3, r30 +/* 803B3368 003B02C8 7F E4 FB 78 */ mr r4, r31 +/* 803B336C 003B02CC 48 00 03 C1 */ bl hwSetITDMode +/* 803B3370 003B02D0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B3374 003B02D4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B3378 003B02D8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B337C 003B02DC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B3380 003B02E0 7C 08 03 A6 */ mtlr r0 +/* 803B3384 003B02E4 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B3388 003B02E8 4E 80 00 20 */ blr + +.global hwBreak +hwBreak: +/* 803B338C 003B02EC 1C 83 00 F4 */ mulli r4, r3, 0xf4 +/* 803B3390 003B02F0 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3394 003B02F4 7C 60 22 14 */ add r3, r0, r4 +/* 803B3398 003B02F8 88 03 00 EC */ lbz r0, 0xec(r3) +/* 803B339C 003B02FC 28 00 00 01 */ cmplwi r0, 1 +/* 803B33A0 003B0300 40 82 00 18 */ bne lbl_803B33B8 +/* 803B33A4 003B0304 88 0D AF 80 */ lbz r0, lbl_805A9B40@sda21(r13) +/* 803B33A8 003B0308 28 00 00 00 */ cmplwi r0, 0 +/* 803B33AC 003B030C 40 82 00 0C */ bne lbl_803B33B8 +/* 803B33B0 003B0310 38 00 00 01 */ li r0, 1 +/* 803B33B4 003B0314 98 03 00 EE */ stb r0, 0xee(r3) +lbl_803B33B8: +/* 803B33B8 003B0318 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B33BC 003B031C 88 0D AF 80 */ lbz r0, lbl_805A9B40@sda21(r13) +/* 803B33C0 003B0320 7C 63 22 14 */ add r3, r3, r4 +/* 803B33C4 003B0324 54 00 10 3A */ slwi r0, r0, 2 +/* 803B33C8 003B0328 7C 63 02 14 */ add r3, r3, r0 +/* 803B33CC 003B032C 80 03 00 24 */ lwz r0, 0x24(r3) +/* 803B33D0 003B0330 60 00 00 20 */ ori r0, r0, 0x20 +/* 803B33D4 003B0334 90 03 00 24 */ stw r0, 0x24(r3) +/* 803B33D8 003B0338 4E 80 00 20 */ blr + +.global hwSetADSR +hwSetADSR: +/* 803B33DC 003B033C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B33E0 003B0340 7C 08 02 A6 */ mflr r0 +/* 803B33E4 003B0344 54 A6 06 3F */ clrlwi. r6, r5, 0x18 +/* 803B33E8 003B0348 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B33EC 003B034C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B33F0 003B0350 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B33F4 003B0354 7C 9E 23 78 */ mr r30, r4 +/* 803B33F8 003B0358 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B33FC 003B035C 7C 7D 1B 78 */ mr r29, r3 +/* 803B3400 003B0360 41 82 00 14 */ beq lbl_803B3414 +/* 803B3404 003B0364 41 80 01 50 */ blt lbl_803B3554 +/* 803B3408 003B0368 2C 06 00 03 */ cmpwi r6, 3 +/* 803B340C 003B036C 40 80 01 48 */ bge lbl_803B3554 +/* 803B3410 003B0370 48 00 00 6C */ b lbl_803B347C +lbl_803B3414: +/* 803B3414 003B0374 1C BD 00 F4 */ mulli r5, r29, 0xf4 +/* 803B3418 003B0378 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B341C 003B037C 38 80 00 00 */ li r4, 0 +/* 803B3420 003B0380 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3424 003B0384 98 83 00 A4 */ stb r4, 0xa4(r3) +/* 803B3428 003B0388 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B342C 003B038C A0 9E 00 00 */ lhz r4, 0(r30) +/* 803B3430 003B0390 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3434 003B0394 90 83 00 B8 */ stw r4, 0xb8(r3) +/* 803B3438 003B0398 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B343C 003B039C A0 9E 00 02 */ lhz r4, 2(r30) +/* 803B3440 003B03A0 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3444 003B03A4 90 83 00 BC */ stw r4, 0xbc(r3) +/* 803B3448 003B03A8 A0 1E 00 04 */ lhz r0, 4(r30) +/* 803B344C 003B03AC 54 04 18 38 */ slwi r4, r0, 3 +/* 803B3450 003B03B0 28 04 7F FF */ cmplwi r4, 0x7fff +/* 803B3454 003B03B4 40 81 00 08 */ ble lbl_803B345C +/* 803B3458 003B03B8 38 80 7F FF */ li r4, 0x7fff +lbl_803B345C: +/* 803B345C 003B03BC 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3460 003B03C0 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3464 003B03C4 B0 83 00 C0 */ sth r4, 0xc0(r3) +/* 803B3468 003B03C8 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B346C 003B03CC A0 9E 00 06 */ lhz r4, 6(r30) +/* 803B3470 003B03D0 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3474 003B03D4 90 83 00 C4 */ stw r4, 0xc4(r3) +/* 803B3478 003B03D8 48 00 00 DC */ b lbl_803B3554 +lbl_803B347C: +/* 803B347C 003B03DC 1F FD 00 F4 */ mulli r31, r29, 0xf4 +/* 803B3480 003B03E0 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3484 003B03E4 38 A0 00 01 */ li r5, 1 +/* 803B3488 003B03E8 28 06 00 01 */ cmplwi r6, 1 +/* 803B348C 003B03EC 7C 60 FA 14 */ add r3, r0, r31 +/* 803B3490 003B03F0 38 80 00 00 */ li r4, 0 +/* 803B3494 003B03F4 98 A3 00 A4 */ stb r5, 0xa4(r3) +/* 803B3498 003B03F8 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B349C 003B03FC 7C 60 FA 14 */ add r3, r0, r31 +/* 803B34A0 003B0400 98 83 00 CA */ stb r4, 0xca(r3) +/* 803B34A4 003B0404 40 82 00 68 */ bne lbl_803B350C +/* 803B34A8 003B0408 80 7E 00 00 */ lwz r3, 0(r30) +/* 803B34AC 003B040C 4B FF 5D 65 */ bl adsrConvertTimeCents +/* 803B34B0 003B0410 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B34B4 003B0414 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 803B34B8 003B0418 7C 60 FA 14 */ add r3, r0, r31 +/* 803B34BC 003B041C 90 83 00 B8 */ stw r4, 0xb8(r3) +/* 803B34C0 003B0420 80 7E 00 04 */ lwz r3, 4(r30) +/* 803B34C4 003B0424 4B FF 5D 4D */ bl adsrConvertTimeCents +/* 803B34C8 003B0428 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B34CC 003B042C 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 803B34D0 003B0430 7C 60 FA 14 */ add r3, r0, r31 +/* 803B34D4 003B0434 90 83 00 BC */ stw r4, 0xbc(r3) +/* 803B34D8 003B0438 A0 1E 00 08 */ lhz r0, 8(r30) +/* 803B34DC 003B043C 7C 04 16 70 */ srawi r4, r0, 2 +/* 803B34E0 003B0440 28 04 03 FF */ cmplwi r4, 0x3ff +/* 803B34E4 003B0444 40 81 00 08 */ ble lbl_803B34EC +/* 803B34E8 003B0448 38 80 03 FF */ li r4, 0x3ff +lbl_803B34EC: +/* 803B34EC 003B044C 3C 60 80 3F */ lis r3, lbl_803F39A4@ha +/* 803B34F0 003B0450 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B34F4 003B0454 38 63 39 A4 */ addi r3, r3, lbl_803F39A4@l +/* 803B34F8 003B0458 7C 83 20 AE */ lbzx r4, r3, r4 +/* 803B34FC 003B045C 7C 60 FA 14 */ add r3, r0, r31 +/* 803B3500 003B0460 20 04 00 C1 */ subfic r0, r4, 0xc1 +/* 803B3504 003B0464 B0 03 00 C0 */ sth r0, 0xc0(r3) +/* 803B3508 003B0468 48 00 00 3C */ b lbl_803B3544 +lbl_803B350C: +/* 803B350C 003B046C 80 7E 00 00 */ lwz r3, 0(r30) +/* 803B3510 003B0470 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3514 003B0474 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 803B3518 003B0478 7C 60 FA 14 */ add r3, r0, r31 +/* 803B351C 003B047C 90 83 00 B8 */ stw r4, 0xb8(r3) +/* 803B3520 003B0480 80 7E 00 04 */ lwz r3, 4(r30) +/* 803B3524 003B0484 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3528 003B0488 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 803B352C 003B048C 7C 60 FA 14 */ add r3, r0, r31 +/* 803B3530 003B0490 90 83 00 BC */ stw r4, 0xbc(r3) +/* 803B3534 003B0494 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3538 003B0498 A0 9E 00 08 */ lhz r4, 8(r30) +/* 803B353C 003B049C 7C 60 FA 14 */ add r3, r0, r31 +/* 803B3540 003B04A0 B0 83 00 C0 */ sth r4, 0xc0(r3) +lbl_803B3544: +/* 803B3544 003B04A4 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3548 003B04A8 A0 9E 00 0A */ lhz r4, 0xa(r30) +/* 803B354C 003B04AC 7C 60 FA 14 */ add r3, r0, r31 +/* 803B3550 003B04B0 90 83 00 C4 */ stw r4, 0xc4(r3) +lbl_803B3554: +/* 803B3554 003B04B4 1C 1D 00 F4 */ mulli r0, r29, 0xf4 +/* 803B3558 003B04B8 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B355C 003B04BC 7C 63 02 14 */ add r3, r3, r0 +/* 803B3560 003B04C0 80 03 00 24 */ lwz r0, 0x24(r3) +/* 803B3564 003B04C4 60 00 00 10 */ ori r0, r0, 0x10 +/* 803B3568 003B04C8 90 03 00 24 */ stw r0, 0x24(r3) +/* 803B356C 003B04CC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B3570 003B04D0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B3574 003B04D4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B3578 003B04D8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B357C 003B04DC 7C 08 03 A6 */ mtlr r0 +/* 803B3580 003B04E0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B3584 003B04E4 4E 80 00 20 */ blr + +.global hwSetVirtualSampleLoopBuffer +hwSetVirtualSampleLoopBuffer: +/* 803B3588 003B04E8 1C C3 00 F4 */ mulli r6, r3, 0xf4 +/* 803B358C 003B04EC 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3590 003B04F0 7C 60 32 14 */ add r3, r0, r6 +/* 803B3594 003B04F4 90 83 00 94 */ stw r4, 0x94(r3) +/* 803B3598 003B04F8 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B359C 003B04FC 7C 60 32 14 */ add r3, r0, r6 +/* 803B35A0 003B0500 90 A3 00 98 */ stw r5, 0x98(r3) +/* 803B35A4 003B0504 4E 80 00 20 */ blr + +.global hwGetVirtualSampleState +hwGetVirtualSampleState: +/* 803B35A8 003B0508 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B35AC 003B050C 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B35B0 003B0510 7C 63 02 14 */ add r3, r3, r0 +/* 803B35B4 003B0514 88 63 00 9C */ lbz r3, 0x9c(r3) +/* 803B35B8 003B0518 4E 80 00 20 */ blr + +.global sub_803b35bc +sub_803b35bc: +/* 803B35BC 003B051C 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B35C0 003B0520 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B35C4 003B0524 7C 63 02 14 */ add r3, r3, r0 +/* 803B35C8 003B0528 88 63 00 90 */ lbz r3, 0x90(r3) +/* 803B35CC 003B052C 4E 80 00 20 */ blr + +.global hwGetSampleID +hwGetSampleID: +/* 803B35D0 003B0530 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B35D4 003B0534 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B35D8 003B0538 7C 63 02 14 */ add r3, r3, r0 +/* 803B35DC 003B053C A0 63 00 70 */ lhz r3, 0x70(r3) +/* 803B35E0 003B0540 4E 80 00 20 */ blr + +.global hwSetStreamLoopPS +hwSetStreamLoopPS: +/* 803B35E4 003B0544 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B35E8 003B0548 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B35EC 003B054C 7C 63 02 14 */ add r3, r3, r0 +/* 803B35F0 003B0550 98 83 00 A0 */ stb r4, 0xa0(r3) +/* 803B35F4 003B0554 4E 80 00 20 */ blr + +.global hwStart +hwStart: +/* 803B35F8 003B0558 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B35FC 003B055C 7C 08 02 A6 */ mflr r0 +/* 803B3600 003B0560 1C C3 00 F4 */ mulli r6, r3, 0xf4 +/* 803B3604 003B0564 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3608 003B0568 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B360C 003B056C 88 AD AF 80 */ lbz r5, lbl_805A9B40@sda21(r13) +/* 803B3610 003B0570 7C 60 32 14 */ add r3, r0, r6 +/* 803B3614 003B0574 98 A3 00 D4 */ stb r5, 0xd4(r3) +/* 803B3618 003B0578 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B361C 003B057C 7C 60 32 14 */ add r3, r0, r6 +/* 803B3620 003B0580 4B FF A6 A5 */ bl salActivateVoice +/* 803B3624 003B0584 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3628 003B0588 7C 08 03 A6 */ mtlr r0 +/* 803B362C 003B058C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3630 003B0590 4E 80 00 20 */ blr + +.global hwKeyOff +hwKeyOff: +/* 803B3634 003B0594 1C 63 00 F4 */ mulli r3, r3, 0xf4 +/* 803B3638 003B0598 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803B363C 003B059C 88 0D AF 80 */ lbz r0, lbl_805A9B40@sda21(r13) +/* 803B3640 003B05A0 7C 64 1A 14 */ add r3, r4, r3 +/* 803B3644 003B05A4 54 00 10 3A */ slwi r0, r0, 2 +/* 803B3648 003B05A8 7C 63 02 14 */ add r3, r3, r0 +/* 803B364C 003B05AC 80 03 00 24 */ lwz r0, 0x24(r3) +/* 803B3650 003B05B0 60 00 00 40 */ ori r0, r0, 0x40 +/* 803B3654 003B05B4 90 03 00 24 */ stw r0, 0x24(r3) +/* 803B3658 003B05B8 4E 80 00 20 */ blr + +.global hwSetPitch +hwSetPitch: +/* 803B365C 003B05BC 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803B3660 003B05C0 80 AD AF 54 */ lwz r5, lbl_805A9B14@sda21(r13) +/* 803B3664 003B05C4 1C 63 00 F4 */ mulli r3, r3, 0xf4 +/* 803B3668 003B05C8 28 00 40 00 */ cmplwi r0, 0x4000 +/* 803B366C 003B05CC 7C A5 1A 14 */ add r5, r5, r3 +/* 803B3670 003B05D0 41 80 00 08 */ blt lbl_803B3678 +/* 803B3674 003B05D4 38 80 3F FF */ li r4, 0x3fff +lbl_803B3678: +/* 803B3678 003B05D8 88 05 00 E4 */ lbz r0, 0xe4(r5) +/* 803B367C 003B05DC 28 00 00 FF */ cmplwi r0, 0xff +/* 803B3680 003B05E0 41 82 00 1C */ beq lbl_803B369C +/* 803B3684 003B05E4 54 03 15 BA */ rlwinm r3, r0, 2, 0x16, 0x1d +/* 803B3688 003B05E8 54 80 23 36 */ rlwinm r0, r4, 4, 0xc, 0x1b +/* 803B368C 003B05EC 7C 65 1A 14 */ add r3, r5, r3 +/* 803B3690 003B05F0 80 63 00 38 */ lwz r3, 0x38(r3) +/* 803B3694 003B05F4 7C 03 00 40 */ cmplw r3, r0 +/* 803B3698 003B05F8 4D 82 00 20 */ beqlr +lbl_803B369C: +/* 803B369C 003B05FC 88 0D AF 80 */ lbz r0, lbl_805A9B40@sda21(r13) +/* 803B36A0 003B0600 54 84 23 36 */ rlwinm r4, r4, 4, 0xc, 0x1b +/* 803B36A4 003B0604 54 00 10 3A */ slwi r0, r0, 2 +/* 803B36A8 003B0608 7C 65 02 14 */ add r3, r5, r0 +/* 803B36AC 003B060C 90 83 00 38 */ stw r4, 0x38(r3) +/* 803B36B0 003B0610 88 0D AF 80 */ lbz r0, lbl_805A9B40@sda21(r13) +/* 803B36B4 003B0614 54 00 10 3A */ slwi r0, r0, 2 +/* 803B36B8 003B0618 7C 65 02 14 */ add r3, r5, r0 +/* 803B36BC 003B061C 80 03 00 24 */ lwz r0, 0x24(r3) +/* 803B36C0 003B0620 60 00 00 08 */ ori r0, r0, 8 +/* 803B36C4 003B0624 90 03 00 24 */ stw r0, 0x24(r3) +/* 803B36C8 003B0628 88 0D AF 80 */ lbz r0, lbl_805A9B40@sda21(r13) +/* 803B36CC 003B062C 98 05 00 E4 */ stb r0, 0xe4(r5) +/* 803B36D0 003B0630 4E 80 00 20 */ blr + +.global sub_803b36d4 +sub_803b36d4: +/* 803B36D4 003B0634 1C A3 00 F4 */ mulli r5, r3, 0xf4 +/* 803B36D8 003B0638 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803B36DC 003B063C 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e +/* 803B36E0 003B0640 38 6D A0 18 */ addi r3, r13, lbl_805A8BD8@sda21 +/* 803B36E4 003B0644 7C 03 02 2E */ lhzx r0, r3, r0 +/* 803B36E8 003B0648 7C 66 2A 14 */ add r3, r6, r5 +/* 803B36EC 003B064C B0 03 00 CC */ sth r0, 0xcc(r3) +/* 803B36F0 003B0650 80 03 00 24 */ lwz r0, 0x24(r3) +/* 803B36F4 003B0654 60 00 01 00 */ ori r0, r0, 0x100 +/* 803B36F8 003B0658 90 03 00 24 */ stw r0, 0x24(r3) +/* 803B36FC 003B065C 4E 80 00 20 */ blr + +.global hwSetSRCType +hwSetSRCType: +/* 803B3700 003B0660 1C A3 00 F4 */ mulli r5, r3, 0xf4 +/* 803B3704 003B0664 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803B3708 003B0668 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e +/* 803B370C 003B066C 38 6D A0 20 */ addi r3, r13, lbl_805A8BE0@sda21 +/* 803B3710 003B0670 7C 03 02 2E */ lhzx r0, r3, r0 +/* 803B3714 003B0674 7C 66 2A 14 */ add r3, r6, r5 +/* 803B3718 003B0678 B0 03 00 CE */ sth r0, 0xce(r3) +/* 803B371C 003B067C 80 03 00 24 */ lwz r0, 0x24(r3) +/* 803B3720 003B0680 60 00 00 80 */ ori r0, r0, 0x80 +/* 803B3724 003B0684 90 03 00 24 */ stw r0, 0x24(r3) +/* 803B3728 003B0688 4E 80 00 20 */ blr + +.global hwSetITDMode +hwSetITDMode: +/* 803B372C 003B068C 54 80 06 3F */ clrlwi. r0, r4, 0x18 +/* 803B3730 003B0690 40 82 00 3C */ bne lbl_803B376C +/* 803B3734 003B0694 1C A3 00 F4 */ mulli r5, r3, 0xf4 +/* 803B3738 003B0698 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B373C 003B069C 38 80 00 10 */ li r4, 0x10 +/* 803B3740 003B06A0 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3744 003B06A4 80 03 00 F0 */ lwz r0, 0xf0(r3) +/* 803B3748 003B06A8 64 00 80 00 */ oris r0, r0, 0x8000 +/* 803B374C 003B06AC 90 03 00 F0 */ stw r0, 0xf0(r3) +/* 803B3750 003B06B0 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3754 003B06B4 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3758 003B06B8 B0 83 00 D0 */ sth r4, 0xd0(r3) +/* 803B375C 003B06BC 80 0D AF 54 */ lwz r0, lbl_805A9B14@sda21(r13) +/* 803B3760 003B06C0 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3764 003B06C4 B0 83 00 D2 */ sth r4, 0xd2(r3) +/* 803B3768 003B06C8 4E 80 00 20 */ blr +lbl_803B376C: +/* 803B376C 003B06CC 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B3770 003B06D0 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B3774 003B06D4 7C 63 02 14 */ add r3, r3, r0 +/* 803B3778 003B06D8 80 03 00 F0 */ lwz r0, 0xf0(r3) +/* 803B377C 003B06DC 54 00 00 7E */ clrlwi r0, r0, 1 +/* 803B3780 003B06E0 90 03 00 F0 */ stw r0, 0xf0(r3) +/* 803B3784 003B06E4 4E 80 00 20 */ blr + +.global hwSetVolume +hwSetVolume: +/* 803B3788 003B06E8 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 803B378C 003B06EC 7C 08 02 A6 */ mflr r0 +/* 803B3790 003B06F0 C0 02 D6 78 */ lfs f0, lbl_805AF398@sda21(r2) +/* 803B3794 003B06F4 90 01 00 54 */ stw r0, 0x54(r1) +/* 803B3798 003B06F8 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B379C 003B06FC FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803B37A0 003B0700 93 E1 00 4C */ stw r31, 0x4c(r1) +/* 803B37A4 003B0704 93 C1 00 48 */ stw r30, 0x48(r1) +/* 803B37A8 003B0708 7C BE 2B 78 */ mr r30, r5 +/* 803B37AC 003B070C 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B37B0 003B0710 7F E3 02 14 */ add r31, r3, r0 +/* 803B37B4 003B0714 4C 41 13 82 */ cror 2, 1, 2 +/* 803B37B8 003B0718 40 82 00 08 */ bne lbl_803B37C0 +/* 803B37BC 003B071C FC 20 00 90 */ fmr f1, f0 +lbl_803B37C0: +/* 803B37C0 003B0720 C0 02 D6 78 */ lfs f0, lbl_805AF398@sda21(r2) +/* 803B37C4 003B0724 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 803B37C8 003B0728 4C 41 13 82 */ cror 2, 1, 2 +/* 803B37CC 003B072C 40 82 00 08 */ bne lbl_803B37D4 +/* 803B37D0 003B0730 FC 40 00 90 */ fmr f2, f0 +lbl_803B37D4: +/* 803B37D4 003B0734 C0 02 D6 78 */ lfs f0, lbl_805AF398@sda21(r2) +/* 803B37D8 003B0738 FC 03 00 40 */ fcmpo cr0, f3, f0 +/* 803B37DC 003B073C 4C 41 13 82 */ cror 2, 1, 2 +/* 803B37E0 003B0740 40 82 00 08 */ bne lbl_803B37E8 +/* 803B37E4 003B0744 FC 60 00 90 */ fmr f3, f0 +lbl_803B37E8: +/* 803B37E8 003B0748 88 1F 00 EF */ lbz r0, 0xef(r31) +/* 803B37EC 003B074C 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803B37F0 003B0750 38 E3 F2 60 */ addi r7, r3, lbl_8055F260@l +/* 803B37F4 003B0754 81 1F 00 F0 */ lwz r8, 0xf0(r31) +/* 803B37F8 003B0758 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803B37FC 003B075C 7C 83 23 78 */ mr r3, r4 +/* 803B3800 003B0760 7F C5 F3 78 */ mr r5, r30 +/* 803B3804 003B0764 7C 87 02 14 */ add r4, r7, r0 +/* 803B3808 003B0768 55 07 0F FE */ srwi r7, r8, 0x1f +/* 803B380C 003B076C 80 04 00 54 */ lwz r0, 0x54(r4) +/* 803B3810 003B0770 38 81 00 08 */ addi r4, r1, 8 +/* 803B3814 003B0774 20 00 00 01 */ subfic r0, r0, 1 +/* 803B3818 003B0778 7C 00 00 34 */ cntlzw r0, r0 +/* 803B381C 003B077C 54 08 D9 7E */ srwi r8, r0, 5 +/* 803B3820 003B0780 4B FF A8 F1 */ bl salCalcVolume +/* 803B3824 003B0784 C0 62 D6 7C */ lfs f3, lbl_805AF39C@sda21(r2) +/* 803B3828 003B0788 C0 41 00 08 */ lfs f2, 8(r1) +/* 803B382C 003B078C C0 21 00 0C */ lfs f1, 0xc(r1) +/* 803B3830 003B0790 C0 01 00 10 */ lfs f0, 0x10(r1) +/* 803B3834 003B0794 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B3838 003B0798 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803B383C 003B079C 88 1F 00 E5 */ lbz r0, 0xe5(r31) +/* 803B3840 003B07A0 EC 03 00 32 */ fmuls f0, f3, f0 +/* 803B3844 003B07A4 FC 40 10 1E */ fctiwz f2, f2 +/* 803B3848 003B07A8 28 00 00 FF */ cmplwi r0, 0xff +/* 803B384C 003B07AC FC 20 08 1E */ fctiwz f1, f1 +/* 803B3850 003B07B0 FC 00 00 1E */ fctiwz f0, f0 +/* 803B3854 003B07B4 D8 41 00 30 */ stfd f2, 0x30(r1) +/* 803B3858 003B07B8 D8 21 00 38 */ stfd f1, 0x38(r1) +/* 803B385C 003B07BC 80 81 00 34 */ lwz r4, 0x34(r1) +/* 803B3860 003B07C0 D8 01 00 40 */ stfd f0, 0x40(r1) +/* 803B3864 003B07C4 80 A1 00 3C */ lwz r5, 0x3c(r1) +/* 803B3868 003B07C8 80 C1 00 44 */ lwz r6, 0x44(r1) +/* 803B386C 003B07CC 41 82 00 34 */ beq lbl_803B38A0 +/* 803B3870 003B07D0 A0 7F 00 4C */ lhz r3, 0x4c(r31) +/* 803B3874 003B07D4 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803B3878 003B07D8 7C 03 00 40 */ cmplw r3, r0 +/* 803B387C 003B07DC 40 82 00 24 */ bne lbl_803B38A0 +/* 803B3880 003B07E0 A0 7F 00 4E */ lhz r3, 0x4e(r31) +/* 803B3884 003B07E4 54 A0 04 3E */ clrlwi r0, r5, 0x10 +/* 803B3888 003B07E8 7C 03 00 40 */ cmplw r3, r0 +/* 803B388C 003B07EC 40 82 00 14 */ bne lbl_803B38A0 +/* 803B3890 003B07F0 A0 7F 00 50 */ lhz r3, 0x50(r31) +/* 803B3894 003B07F4 54 C0 04 3E */ clrlwi r0, r6, 0x10 +/* 803B3898 003B07F8 7C 03 00 40 */ cmplw r3, r0 +/* 803B389C 003B07FC 41 82 00 24 */ beq lbl_803B38C0 +lbl_803B38A0: +/* 803B38A0 003B0800 B0 9F 00 4C */ sth r4, 0x4c(r31) +/* 803B38A4 003B0804 38 00 00 00 */ li r0, 0 +/* 803B38A8 003B0808 B0 BF 00 4E */ sth r5, 0x4e(r31) +/* 803B38AC 003B080C B0 DF 00 50 */ sth r6, 0x50(r31) +/* 803B38B0 003B0810 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803B38B4 003B0814 60 63 00 01 */ ori r3, r3, 1 +/* 803B38B8 003B0818 90 7F 00 24 */ stw r3, 0x24(r31) +/* 803B38BC 003B081C 98 1F 00 E5 */ stb r0, 0xe5(r31) +lbl_803B38C0: +/* 803B38C0 003B0820 C0 62 D6 7C */ lfs f3, lbl_805AF39C@sda21(r2) +/* 803B38C4 003B0824 C0 41 00 14 */ lfs f2, 0x14(r1) +/* 803B38C8 003B0828 C0 21 00 18 */ lfs f1, 0x18(r1) +/* 803B38CC 003B082C C0 01 00 1C */ lfs f0, 0x1c(r1) +/* 803B38D0 003B0830 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B38D4 003B0834 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803B38D8 003B0838 88 1F 00 E6 */ lbz r0, 0xe6(r31) +/* 803B38DC 003B083C EC 03 00 32 */ fmuls f0, f3, f0 +/* 803B38E0 003B0840 FC 40 10 1E */ fctiwz f2, f2 +/* 803B38E4 003B0844 28 00 00 FF */ cmplwi r0, 0xff +/* 803B38E8 003B0848 FC 20 08 1E */ fctiwz f1, f1 +/* 803B38EC 003B084C FC 00 00 1E */ fctiwz f0, f0 +/* 803B38F0 003B0850 D8 41 00 40 */ stfd f2, 0x40(r1) +/* 803B38F4 003B0854 D8 21 00 38 */ stfd f1, 0x38(r1) +/* 803B38F8 003B0858 80 81 00 44 */ lwz r4, 0x44(r1) +/* 803B38FC 003B085C D8 01 00 30 */ stfd f0, 0x30(r1) +/* 803B3900 003B0860 80 A1 00 3C */ lwz r5, 0x3c(r1) +/* 803B3904 003B0864 80 C1 00 34 */ lwz r6, 0x34(r1) +/* 803B3908 003B0868 41 82 00 34 */ beq lbl_803B393C +/* 803B390C 003B086C A0 7F 00 52 */ lhz r3, 0x52(r31) +/* 803B3910 003B0870 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803B3914 003B0874 7C 03 00 40 */ cmplw r3, r0 +/* 803B3918 003B0878 40 82 00 24 */ bne lbl_803B393C +/* 803B391C 003B087C A0 7F 00 54 */ lhz r3, 0x54(r31) +/* 803B3920 003B0880 54 A0 04 3E */ clrlwi r0, r5, 0x10 +/* 803B3924 003B0884 7C 03 00 40 */ cmplw r3, r0 +/* 803B3928 003B0888 40 82 00 14 */ bne lbl_803B393C +/* 803B392C 003B088C A0 7F 00 56 */ lhz r3, 0x56(r31) +/* 803B3930 003B0890 54 C0 04 3E */ clrlwi r0, r6, 0x10 +/* 803B3934 003B0894 7C 03 00 40 */ cmplw r3, r0 +/* 803B3938 003B0898 41 82 00 24 */ beq lbl_803B395C +lbl_803B393C: +/* 803B393C 003B089C B0 9F 00 52 */ sth r4, 0x52(r31) +/* 803B3940 003B08A0 38 00 00 00 */ li r0, 0 +/* 803B3944 003B08A4 B0 BF 00 54 */ sth r5, 0x54(r31) +/* 803B3948 003B08A8 B0 DF 00 56 */ sth r6, 0x56(r31) +/* 803B394C 003B08AC 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803B3950 003B08B0 60 63 00 02 */ ori r3, r3, 2 +/* 803B3954 003B08B4 90 7F 00 24 */ stw r3, 0x24(r31) +/* 803B3958 003B08B8 98 1F 00 E6 */ stb r0, 0xe6(r31) +lbl_803B395C: +/* 803B395C 003B08BC C0 62 D6 7C */ lfs f3, lbl_805AF39C@sda21(r2) +/* 803B3960 003B08C0 C0 41 00 20 */ lfs f2, 0x20(r1) +/* 803B3964 003B08C4 C0 21 00 24 */ lfs f1, 0x24(r1) +/* 803B3968 003B08C8 C0 01 00 28 */ lfs f0, 0x28(r1) +/* 803B396C 003B08CC EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B3970 003B08D0 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803B3974 003B08D4 88 1F 00 E7 */ lbz r0, 0xe7(r31) +/* 803B3978 003B08D8 EC 03 00 32 */ fmuls f0, f3, f0 +/* 803B397C 003B08DC FC 40 10 1E */ fctiwz f2, f2 +/* 803B3980 003B08E0 28 00 00 FF */ cmplwi r0, 0xff +/* 803B3984 003B08E4 FC 20 08 1E */ fctiwz f1, f1 +/* 803B3988 003B08E8 FC 00 00 1E */ fctiwz f0, f0 +/* 803B398C 003B08EC D8 41 00 40 */ stfd f2, 0x40(r1) +/* 803B3990 003B08F0 D8 21 00 38 */ stfd f1, 0x38(r1) +/* 803B3994 003B08F4 80 81 00 44 */ lwz r4, 0x44(r1) +/* 803B3998 003B08F8 D8 01 00 30 */ stfd f0, 0x30(r1) +/* 803B399C 003B08FC 80 A1 00 3C */ lwz r5, 0x3c(r1) +/* 803B39A0 003B0900 80 C1 00 34 */ lwz r6, 0x34(r1) +/* 803B39A4 003B0904 41 82 00 34 */ beq lbl_803B39D8 +/* 803B39A8 003B0908 A0 7F 00 58 */ lhz r3, 0x58(r31) +/* 803B39AC 003B090C 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803B39B0 003B0910 7C 03 00 40 */ cmplw r3, r0 +/* 803B39B4 003B0914 40 82 00 24 */ bne lbl_803B39D8 +/* 803B39B8 003B0918 A0 7F 00 5A */ lhz r3, 0x5a(r31) +/* 803B39BC 003B091C 54 A0 04 3E */ clrlwi r0, r5, 0x10 +/* 803B39C0 003B0920 7C 03 00 40 */ cmplw r3, r0 +/* 803B39C4 003B0924 40 82 00 14 */ bne lbl_803B39D8 +/* 803B39C8 003B0928 A0 7F 00 5C */ lhz r3, 0x5c(r31) +/* 803B39CC 003B092C 54 C0 04 3E */ clrlwi r0, r6, 0x10 +/* 803B39D0 003B0930 7C 03 00 40 */ cmplw r3, r0 +/* 803B39D4 003B0934 41 82 00 24 */ beq lbl_803B39F8 +lbl_803B39D8: +/* 803B39D8 003B0938 B0 9F 00 58 */ sth r4, 0x58(r31) +/* 803B39DC 003B093C 38 00 00 00 */ li r0, 0 +/* 803B39E0 003B0940 B0 BF 00 5A */ sth r5, 0x5a(r31) +/* 803B39E4 003B0944 B0 DF 00 5C */ sth r6, 0x5c(r31) +/* 803B39E8 003B0948 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803B39EC 003B094C 60 63 00 04 */ ori r3, r3, 4 +/* 803B39F0 003B0950 90 7F 00 24 */ stw r3, 0x24(r31) +/* 803B39F4 003B0954 98 1F 00 E7 */ stb r0, 0xe7(r31) +lbl_803B39F8: +/* 803B39F8 003B0958 80 1F 00 F0 */ lwz r0, 0xf0(r31) +/* 803B39FC 003B095C 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 +/* 803B3A00 003B0960 41 82 00 30 */ beq lbl_803B3A30 +/* 803B3A04 003B0964 3C 60 80 3E */ lis r3, lbl_803D8BD0@ha +/* 803B3A08 003B0968 57 C0 8D FC */ rlwinm r0, r30, 0x11, 0x17, 0x1e +/* 803B3A0C 003B096C 38 83 8B D0 */ addi r4, r3, lbl_803D8BD0@l +/* 803B3A10 003B0970 7C 64 02 2E */ lhzx r3, r4, r0 +/* 803B3A14 003B0974 7C 04 02 2E */ lhzx r0, r4, r0 +/* 803B3A18 003B0978 B0 7F 00 D0 */ sth r3, 0xd0(r31) +/* 803B3A1C 003B097C 20 00 00 20 */ subfic r0, r0, 0x20 +/* 803B3A20 003B0980 B0 1F 00 D2 */ sth r0, 0xd2(r31) +/* 803B3A24 003B0984 80 1F 00 24 */ lwz r0, 0x24(r31) +/* 803B3A28 003B0988 60 00 02 00 */ ori r0, r0, 0x200 +/* 803B3A2C 003B098C 90 1F 00 24 */ stw r0, 0x24(r31) +lbl_803B3A30: +/* 803B3A30 003B0990 80 01 00 54 */ lwz r0, 0x54(r1) +/* 803B3A34 003B0994 83 E1 00 4C */ lwz r31, 0x4c(r1) +/* 803B3A38 003B0998 83 C1 00 48 */ lwz r30, 0x48(r1) +/* 803B3A3C 003B099C 7C 08 03 A6 */ mtlr r0 +/* 803B3A40 003B09A0 38 21 00 50 */ addi r1, r1, 0x50 +/* 803B3A44 003B09A4 4E 80 00 20 */ blr + +.global sub_803b3a48 +sub_803b3a48: +/* 803B3A48 003B09A8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3A4C 003B09AC 7C 08 02 A6 */ mflr r0 +/* 803B3A50 003B09B0 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3A54 003B09B4 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B3A58 003B09B8 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B3A5C 003B09BC 7C 63 02 14 */ add r3, r3, r0 +/* 803B3A60 003B09C0 4B FF A3 05 */ bl salDeactivateVoice +/* 803B3A64 003B09C4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3A68 003B09C8 7C 08 03 A6 */ mtlr r0 +/* 803B3A6C 003B09CC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3A70 003B09D0 4E 80 00 20 */ blr + +.global hwSetAUXProcessingCallbacks +hwSetAUXProcessingCallbacks: +/* 803B3A74 003B09D4 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B3A78 003B09D8 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803B3A7C 003B09DC 1D 00 00 BC */ mulli r8, r0, 0xbc +/* 803B3A80 003B09E0 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803B3A84 003B09E4 7C 60 42 14 */ add r3, r0, r8 +/* 803B3A88 003B09E8 90 83 00 AC */ stw r4, 0xac(r3) +/* 803B3A8C 003B09EC 90 A3 00 B4 */ stw r5, 0xb4(r3) +/* 803B3A90 003B09F0 90 C3 00 B0 */ stw r6, 0xb0(r3) +/* 803B3A94 003B09F4 90 E3 00 B8 */ stw r7, 0xb8(r3) +/* 803B3A98 003B09F8 4E 80 00 20 */ blr + +.global sub_803b3a9c +sub_803b3a9c: +/* 803B3A9C 003B09FC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3AA0 003B0A00 7C 08 02 A6 */ mflr r0 +/* 803B3AA4 003B0A04 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3AA8 003B0A08 4B FF 77 21 */ bl salActivateStudio +/* 803B3AAC 003B0A0C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3AB0 003B0A10 7C 08 03 A6 */ mtlr r0 +/* 803B3AB4 003B0A14 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3AB8 003B0A18 4E 80 00 20 */ blr + +.global sub_803b3abc +sub_803b3abc: +/* 803B3ABC 003B0A1C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3AC0 003B0A20 7C 08 02 A6 */ mflr r0 +/* 803B3AC4 003B0A24 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3AC8 003B0A28 4B FF 78 51 */ bl sub_803ab318 +/* 803B3ACC 003B0A2C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3AD0 003B0A30 7C 08 03 A6 */ mtlr r0 +/* 803B3AD4 003B0A34 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3AD8 003B0A38 4E 80 00 20 */ blr + +.global sub_803b3adc +sub_803b3adc: +/* 803B3ADC 003B0A3C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3AE0 003B0A40 7C 08 02 A6 */ mflr r0 +/* 803B3AE4 003B0A44 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3AE8 003B0A48 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B3AEC 003B0A4C 1C A0 00 BC */ mulli r5, r0, 0xbc +/* 803B3AF0 003B0A50 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803B3AF4 003B0A54 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803B3AF8 003B0A58 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3AFC 003B0A5C 4B FF A3 91 */ bl sub_803ade8c +/* 803B3B00 003B0A60 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3B04 003B0A64 7C 08 03 A6 */ mtlr r0 +/* 803B3B08 003B0A68 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3B0C 003B0A6C 4E 80 00 20 */ blr + +.global sub_803b3b10 +sub_803b3b10: +/* 803B3B10 003B0A70 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3B14 003B0A74 7C 08 02 A6 */ mflr r0 +/* 803B3B18 003B0A78 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3B1C 003B0A7C 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B3B20 003B0A80 1C A0 00 BC */ mulli r5, r0, 0xbc +/* 803B3B24 003B0A84 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803B3B28 003B0A88 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803B3B2C 003B0A8C 7C 60 2A 14 */ add r3, r0, r5 +/* 803B3B30 003B0A90 4B FF A4 05 */ bl sub_803adf34 +/* 803B3B34 003B0A94 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3B38 003B0A98 7C 08 03 A6 */ mtlr r0 +/* 803B3B3C 003B0A9C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3B40 003B0AA0 4E 80 00 20 */ blr + +.global sub_803b3b44 +sub_803b3b44: +/* 803B3B44 003B0AA4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3B48 003B0AA8 7C 08 02 A6 */ mflr r0 +/* 803B3B4C 003B0AAC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3B50 003B0AB0 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B3B54 003B0AB4 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B3B58 003B0AB8 7C 63 02 14 */ add r3, r3, r0 +/* 803B3B5C 003B0ABC 4B FF A2 69 */ bl sub_803addc4 +/* 803B3B60 003B0AC0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3B64 003B0AC4 7C 08 03 A6 */ mtlr r0 +/* 803B3B68 003B0AC8 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3B6C 003B0ACC 4E 80 00 20 */ blr + +.global sub_803b3b70 +sub_803b3b70: +/* 803B3B70 003B0AD0 1C A3 00 F4 */ mulli r5, r3, 0xf4 +/* 803B3B74 003B0AD4 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803B3B78 003B0AD8 7C 86 2A 14 */ add r4, r6, r5 +/* 803B3B7C 003B0ADC 88 04 00 EC */ lbz r0, 0xec(r4) +/* 803B3B80 003B0AE0 28 00 00 02 */ cmplwi r0, 2 +/* 803B3B84 003B0AE4 41 82 00 0C */ beq lbl_803B3B90 +/* 803B3B88 003B0AE8 38 60 00 00 */ li r3, 0 +/* 803B3B8C 003B0AEC 4E 80 00 20 */ blr +lbl_803B3B90: +/* 803B3B90 003B0AF0 88 04 00 90 */ lbz r0, 0x90(r4) +/* 803B3B94 003B0AF4 2C 00 00 03 */ cmpwi r0, 3 +/* 803B3B98 003B0AF8 41 82 00 58 */ beq lbl_803B3BF0 +/* 803B3B9C 003B0AFC 40 80 00 18 */ bge lbl_803B3BB4 +/* 803B3BA0 003B0B00 2C 00 00 02 */ cmpwi r0, 2 +/* 803B3BA4 003B0B04 40 80 00 5C */ bge lbl_803B3C00 +/* 803B3BA8 003B0B08 2C 00 00 00 */ cmpwi r0, 0 +/* 803B3BAC 003B0B0C 40 80 00 10 */ bge lbl_803B3BBC + +.global sub_803b3bb0 +sub_803b3bb0: +/* 803B3BB0 003B0B10 4E 80 00 20 */ blr +lbl_803B3BB4: +/* 803B3BB4 003B0B14 2C 00 00 06 */ cmpwi r0, 6 +/* 803B3BB8 003B0B18 4C 80 00 20 */ bgelr +lbl_803B3BBC: +/* 803B3BBC 003B0B1C 7C 66 2A 14 */ add r3, r6, r5 +/* 803B3BC0 003B0B20 80 03 00 78 */ lwz r0, 0x78(r3) +/* 803B3BC4 003B0B24 80 63 00 20 */ lwz r3, 0x20(r3) +/* 803B3BC8 003B0B28 54 00 08 3C */ slwi r0, r0, 1 +/* 803B3BCC 003B0B2C 7C 00 18 50 */ subf r0, r0, r3 +/* 803B3BD0 003B0B30 54 64 07 3E */ clrlwi r4, r3, 0x1c +/* 803B3BD4 003B0B34 54 00 E1 3E */ srwi r0, r0, 4 +/* 803B3BD8 003B0B38 28 04 00 02 */ cmplwi r4, 2 +/* 803B3BDC 003B0B3C 1C 60 00 0E */ mulli r3, r0, 0xe +/* 803B3BE0 003B0B40 4D 80 00 20 */ bltlr +/* 803B3BE4 003B0B44 7C 64 1A 14 */ add r3, r4, r3 +/* 803B3BE8 003B0B48 38 63 FF FE */ addi r3, r3, -2 +/* 803B3BEC 003B0B4C 4E 80 00 20 */ blr +lbl_803B3BF0: +/* 803B3BF0 003B0B50 80 64 00 78 */ lwz r3, 0x78(r4) +/* 803B3BF4 003B0B54 80 04 00 20 */ lwz r0, 0x20(r4) +/* 803B3BF8 003B0B58 7C 63 00 50 */ subf r3, r3, r0 +/* 803B3BFC 003B0B5C 4E 80 00 20 */ blr +lbl_803B3C00: +/* 803B3C00 003B0B60 80 64 00 78 */ lwz r3, 0x78(r4) +/* 803B3C04 003B0B64 80 04 00 20 */ lwz r0, 0x20(r4) +/* 803B3C08 003B0B68 54 63 F8 7E */ srwi r3, r3, 1 +/* 803B3C0C 003B0B6C 7C 63 00 50 */ subf r3, r3, r0 +/* 803B3C10 003B0B70 4E 80 00 20 */ blr + +.global hwFlushStream +hwFlushStream: +/* 803B3C14 003B0B74 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B3C18 003B0B78 7C 08 02 A6 */ mflr r0 +/* 803B3C1C 003B0B7C 90 01 00 34 */ stw r0, 0x34(r1) +/* 803B3C20 003B0B80 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B3C24 003B0B84 4B FD 5E 51 */ bl func_80389A74 +/* 803B3C28 003B0B88 7C 79 1B 78 */ mr r25, r3 +/* 803B3C2C 003B0B8C 7C 9D 23 78 */ mr r29, r4 +/* 803B3C30 003B0B90 7C BA 2B 78 */ mr r26, r5 +/* 803B3C34 003B0B94 7C FB 3B 78 */ mr r27, r7 +/* 803B3C38 003B0B98 7D 1C 43 78 */ mr r28, r8 +/* 803B3C3C 003B0B9C 7C C3 33 78 */ mr r3, r6 +/* 803B3C40 003B0BA0 38 81 00 08 */ addi r4, r1, 8 +/* 803B3C44 003B0BA4 48 00 0E C9 */ bl aramGetStreamBufferAddress +/* 803B3C48 003B0BA8 57 A0 06 FE */ clrlwi r0, r29, 0x1b +/* 803B3C4C 003B0BAC 57 BE 00 34 */ rlwinm r30, r29, 0, 0, 0x1a +/* 803B3C50 003B0BB0 7F 5A 02 14 */ add r26, r26, r0 +/* 803B3C54 003B0BB4 7C 7F 1B 78 */ mr r31, r3 +/* 803B3C58 003B0BB8 38 1A 00 1F */ addi r0, r26, 0x1f +/* 803B3C5C 003B0BBC 7F B9 F2 14 */ add r29, r25, r30 +/* 803B3C60 003B0BC0 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a +/* 803B3C64 003B0BC4 7F A3 EB 78 */ mr r3, r29 +/* 803B3C68 003B0BC8 7F 44 D3 78 */ mr r4, r26 +/* 803B3C6C 003B0BCC 4B FC AE 75 */ bl DCStoreRange +/* 803B3C70 003B0BD0 7F A3 EB 78 */ mr r3, r29 +/* 803B3C74 003B0BD4 7F 45 D3 78 */ mr r5, r26 +/* 803B3C78 003B0BD8 7F 67 DB 78 */ mr r7, r27 +/* 803B3C7C 003B0BDC 7F 88 E3 78 */ mr r8, r28 +/* 803B3C80 003B0BE0 7C 9F F2 14 */ add r4, r31, r30 +/* 803B3C84 003B0BE4 38 C0 00 01 */ li r6, 1 +/* 803B3C88 003B0BE8 48 00 03 89 */ bl aramUploadData +/* 803B3C8C 003B0BEC 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B3C90 003B0BF0 4B FD 5E 31 */ bl _restgpr_25 +/* 803B3C94 003B0BF4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B3C98 003B0BF8 7C 08 03 A6 */ mtlr r0 +/* 803B3C9C 003B0BFC 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B3CA0 003B0C00 4E 80 00 20 */ blr + +.global sub_803b3ca4 +sub_803b3ca4: +/* 803B3CA4 003B0C04 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3CA8 003B0C08 7C 08 02 A6 */ mflr r0 +/* 803B3CAC 003B0C0C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3CB0 003B0C10 48 00 0D 55 */ bl sub_803b4a04 +/* 803B3CB4 003B0C14 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3CB8 003B0C18 7C 08 03 A6 */ mtlr r0 +/* 803B3CBC 003B0C1C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3CC0 003B0C20 4E 80 00 20 */ blr + +.global sub_803b3cc4 +sub_803b3cc4: +/* 803B3CC4 003B0C24 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3CC8 003B0C28 7C 08 02 A6 */ mflr r0 +/* 803B3CCC 003B0C2C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3CD0 003B0C30 48 00 0E 75 */ bl aramFreeStreamBuffer +/* 803B3CD4 003B0C34 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3CD8 003B0C38 7C 08 03 A6 */ mtlr r0 +/* 803B3CDC 003B0C3C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3CE0 003B0C40 4E 80 00 20 */ blr + +.global sub_803b3ce4 +sub_803b3ce4: +/* 803B3CE4 003B0C44 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3CE8 003B0C48 7C 08 02 A6 */ mflr r0 +/* 803B3CEC 003B0C4C 38 80 00 00 */ li r4, 0 +/* 803B3CF0 003B0C50 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3CF4 003B0C54 48 00 0E 19 */ bl aramGetStreamBufferAddress +/* 803B3CF8 003B0C58 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3CFC 003B0C5C 7C 08 03 A6 */ mtlr r0 +/* 803B3D00 003B0C60 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3D04 003B0C64 4E 80 00 20 */ blr + +.global hwTransAddr +hwTransAddr: +/* 803B3D08 003B0C68 4E 80 00 20 */ blr + +.global hwFrq2Pitch +hwFrq2Pitch: +/* 803B3D0C 003B0C6C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B3D10 003B0C70 7C 08 02 A6 */ mflr r0 +/* 803B3D14 003B0C74 3C A0 43 30 */ lis r5, 0x4330 +/* 803B3D18 003B0C78 3C 80 80 55 */ lis r4, lbl_80550050@ha +/* 803B3D1C 003B0C7C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B3D20 003B0C80 C8 42 D6 88 */ lfd f2, lbl_805AF3A8@sda21(r2) +/* 803B3D24 003B0C84 80 04 00 50 */ lwz r0, lbl_80550050@l(r4) +/* 803B3D28 003B0C88 90 61 00 0C */ stw r3, 0xc(r1) +/* 803B3D2C 003B0C8C C0 62 D6 80 */ lfs f3, lbl_805AF3A0@sda21(r2) +/* 803B3D30 003B0C90 90 A1 00 08 */ stw r5, 8(r1) +/* 803B3D34 003B0C94 C8 01 00 08 */ lfd f0, 8(r1) +/* 803B3D38 003B0C98 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3D3C 003B0C9C EC 20 10 28 */ fsubs f1, f0, f2 +/* 803B3D40 003B0CA0 90 A1 00 10 */ stw r5, 0x10(r1) +/* 803B3D44 003B0CA4 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803B3D48 003B0CA8 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803B3D4C 003B0CAC EC 00 10 28 */ fsubs f0, f0, f2 +/* 803B3D50 003B0CB0 EC 21 00 24 */ fdivs f1, f1, f0 +/* 803B3D54 003B0CB4 4B FD 5C 01 */ bl __cvt_fp2unsigned +/* 803B3D58 003B0CB8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B3D5C 003B0CBC 7C 08 03 A6 */ mtlr r0 +/* 803B3D60 003B0CC0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B3D64 003B0CC4 4E 80 00 20 */ blr + +.global sub_803b3d68 +sub_803b3d68: +/* 803B3D68 003B0CC8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3D6C 003B0CCC 7C 08 02 A6 */ mflr r0 +/* 803B3D70 003B0CD0 7C 83 23 78 */ mr r3, r4 +/* 803B3D74 003B0CD4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3D78 003B0CD8 48 00 04 8D */ bl aramInit +/* 803B3D7C 003B0CDC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3D80 003B0CE0 7C 08 03 A6 */ mtlr r0 +/* 803B3D84 003B0CE4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3D88 003B0CE8 4E 80 00 20 */ blr + +.global sub_803b3d8c +sub_803b3d8c: +/* 803B3D8C 003B0CEC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3D90 003B0CF0 7C 08 02 A6 */ mflr r0 +/* 803B3D94 003B0CF4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3D98 003B0CF8 48 00 07 59 */ bl aramExit +/* 803B3D9C 003B0CFC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3DA0 003B0D00 7C 08 03 A6 */ mtlr r0 +/* 803B3DA4 003B0D04 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3DA8 003B0D08 4E 80 00 20 */ blr + +.global sub_803b3dac +sub_803b3dac: +/* 803B3DAC 003B0D0C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3DB0 003B0D10 7C 08 02 A6 */ mflr r0 +/* 803B3DB4 003B0D14 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3DB8 003B0D18 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B3DBC 003B0D1C 7C 9F 23 78 */ mr r31, r4 +/* 803B3DC0 003B0D20 80 63 00 00 */ lwz r3, 0(r3) +/* 803B3DC4 003B0D24 80 63 00 04 */ lwz r3, 4(r3) +/* 803B3DC8 003B0D28 54 60 46 3E */ srwi r0, r3, 0x18 +/* 803B3DCC 003B0D2C 54 64 02 3E */ clrlwi r4, r3, 8 +/* 803B3DD0 003B0D30 2C 00 00 03 */ cmpwi r0, 3 +/* 803B3DD4 003B0D34 41 82 00 4C */ beq lbl_803B3E20 +/* 803B3DD8 003B0D38 40 80 00 18 */ bge lbl_803B3DF0 +/* 803B3DDC 003B0D3C 2C 00 00 02 */ cmpwi r0, 2 +/* 803B3DE0 003B0D40 40 80 00 3C */ bge lbl_803B3E1C +/* 803B3DE4 003B0D44 2C 00 00 00 */ cmpwi r0, 0 +/* 803B3DE8 003B0D48 40 80 00 10 */ bge lbl_803B3DF8 +/* 803B3DEC 003B0D4C 48 00 00 34 */ b lbl_803B3E20 +lbl_803B3DF0: +/* 803B3DF0 003B0D50 2C 00 00 06 */ cmpwi r0, 6 +/* 803B3DF4 003B0D54 40 80 00 2C */ bge lbl_803B3E20 +lbl_803B3DF8: +/* 803B3DF8 003B0D58 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 803B3DFC 003B0D5C 38 04 00 0D */ addi r0, r4, 0xd +/* 803B3E00 003B0D60 38 63 49 25 */ addi r3, r3, 0x24924925@l +/* 803B3E04 003B0D64 7C 63 00 16 */ mulhwu r3, r3, r0 +/* 803B3E08 003B0D68 7C 03 00 50 */ subf r0, r3, r0 +/* 803B3E0C 003B0D6C 54 00 F8 7E */ srwi r0, r0, 1 +/* 803B3E10 003B0D70 7C 00 1A 14 */ add r0, r0, r3 +/* 803B3E14 003B0D74 54 04 00 38 */ rlwinm r4, r0, 0, 0, 0x1c +/* 803B3E18 003B0D78 48 00 00 08 */ b lbl_803B3E20 +lbl_803B3E1C: +/* 803B3E1C 003B0D7C 54 84 08 3C */ slwi r4, r4, 1 +lbl_803B3E20: +/* 803B3E20 003B0D80 80 7F 00 00 */ lwz r3, 0(r31) +/* 803B3E24 003B0D84 48 00 07 49 */ bl sub_803b456c +/* 803B3E28 003B0D88 90 7F 00 00 */ stw r3, 0(r31) +/* 803B3E2C 003B0D8C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3E30 003B0D90 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B3E34 003B0D94 7C 08 03 A6 */ mtlr r0 +/* 803B3E38 003B0D98 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3E3C 003B0D9C 4E 80 00 20 */ blr + +.global sub_803b3e40 +sub_803b3e40: +/* 803B3E40 003B0DA0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3E44 003B0DA4 7C 08 02 A6 */ mflr r0 +/* 803B3E48 003B0DA8 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3E4C 003B0DAC 48 00 06 C9 */ bl aramSetUploadCallback +/* 803B3E50 003B0DB0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3E54 003B0DB4 7C 08 03 A6 */ mtlr r0 +/* 803B3E58 003B0DB8 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3E5C 003B0DBC 4E 80 00 20 */ blr + +.global sub_803b3e60 +sub_803b3e60: +/* 803B3E60 003B0DC0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3E64 003B0DC4 7C 08 02 A6 */ mflr r0 +/* 803B3E68 003B0DC8 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3E6C 003B0DCC 80 63 00 04 */ lwz r3, 4(r3) +/* 803B3E70 003B0DD0 54 60 46 3E */ srwi r0, r3, 0x18 +/* 803B3E74 003B0DD4 54 65 02 3E */ clrlwi r5, r3, 8 +/* 803B3E78 003B0DD8 2C 00 00 03 */ cmpwi r0, 3 +/* 803B3E7C 003B0DDC 41 82 00 4C */ beq lbl_803B3EC8 +/* 803B3E80 003B0DE0 40 80 00 18 */ bge lbl_803B3E98 +/* 803B3E84 003B0DE4 2C 00 00 02 */ cmpwi r0, 2 +/* 803B3E88 003B0DE8 40 80 00 3C */ bge lbl_803B3EC4 +/* 803B3E8C 003B0DEC 2C 00 00 00 */ cmpwi r0, 0 +/* 803B3E90 003B0DF0 40 80 00 10 */ bge lbl_803B3EA0 +/* 803B3E94 003B0DF4 48 00 00 34 */ b lbl_803B3EC8 +lbl_803B3E98: +/* 803B3E98 003B0DF8 2C 00 00 06 */ cmpwi r0, 6 +/* 803B3E9C 003B0DFC 40 80 00 2C */ bge lbl_803B3EC8 +lbl_803B3EA0: +/* 803B3EA0 003B0E00 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 803B3EA4 003B0E04 38 05 00 0D */ addi r0, r5, 0xd +/* 803B3EA8 003B0E08 38 63 49 25 */ addi r3, r3, 0x24924925@l +/* 803B3EAC 003B0E0C 7C 63 00 16 */ mulhwu r3, r3, r0 +/* 803B3EB0 003B0E10 7C 03 00 50 */ subf r0, r3, r0 +/* 803B3EB4 003B0E14 54 00 F8 7E */ srwi r0, r0, 1 +/* 803B3EB8 003B0E18 7C 00 1A 14 */ add r0, r0, r3 +/* 803B3EBC 003B0E1C 54 05 00 38 */ rlwinm r5, r0, 0, 0, 0x1c +/* 803B3EC0 003B0E20 48 00 00 08 */ b lbl_803B3EC8 +lbl_803B3EC4: +/* 803B3EC4 003B0E24 54 A5 08 3C */ slwi r5, r5, 1 +lbl_803B3EC8: +/* 803B3EC8 003B0E28 7C 83 23 78 */ mr r3, r4 +/* 803B3ECC 003B0E2C 7C A4 2B 78 */ mr r4, r5 +/* 803B3ED0 003B0E30 48 00 0A 59 */ bl sub_803b4928 +/* 803B3ED4 003B0E34 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3ED8 003B0E38 7C 08 03 A6 */ mtlr r0 +/* 803B3EDC 003B0E3C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3EE0 003B0E40 4E 80 00 20 */ blr + +.global hwSyncSampleMem +hwSyncSampleMem: +/* 803B3EE4 003B0E44 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B3EE8 003B0E48 7C 08 02 A6 */ mflr r0 +/* 803B3EEC 003B0E4C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B3EF0 003B0E50 48 00 02 FD */ bl aramSyncTransferQueue +/* 803B3EF4 003B0E54 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B3EF8 003B0E58 7C 08 03 A6 */ mtlr r0 +/* 803B3EFC 003B0E5C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B3F00 003B0E60 4E 80 00 20 */ blr + +.global nullsub_59 +nullsub_59: +/* 803B3F04 003B0E64 4E 80 00 20 */ blr + +.global sndSetHooks +sndSetHooks: +/* 803B3F08 003B0E68 80 83 00 00 */ lwz r4, 0(r3) +/* 803B3F0C 003B0E6C 80 03 00 04 */ lwz r0, 4(r3) +/* 803B3F10 003B0E70 90 8D AF 84 */ stw r4, lbl_805A9B44@sda21(r13) +/* 803B3F14 003B0E74 90 0D AF 88 */ stw r0, lbl_805A9B48@sda21(r13) +/* 803B3F18 003B0E78 4E 80 00 20 */ blr + +.global sub_803b3f1c +sub_803b3f1c: +/* 803B3F1C 003B0E7C 38 00 00 00 */ li r0, 0 +/* 803B3F20 003B0E80 90 0D AF 44 */ stw r0, lbl_805A9B04@sda21(r13) +/* 803B3F24 003B0E84 4E 80 00 20 */ blr + +.global hwGetVirtualSampleID +hwGetVirtualSampleID: +/* 803B3F28 003B0E88 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B3F2C 003B0E8C 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B3F30 003B0E90 7C 63 02 14 */ add r3, r3, r0 +/* 803B3F34 003B0E94 88 03 00 EC */ lbz r0, 0xec(r3) +/* 803B3F38 003B0E98 28 00 00 00 */ cmplwi r0, 0 +/* 803B3F3C 003B0E9C 40 82 00 0C */ bne lbl_803B3F48 +/* 803B3F40 003B0EA0 38 60 FF FF */ li r3, -1 +/* 803B3F44 003B0EA4 4E 80 00 20 */ blr +lbl_803B3F48: +/* 803B3F48 003B0EA8 80 63 00 E8 */ lwz r3, 0xe8(r3) +/* 803B3F4C 003B0EAC 4E 80 00 20 */ blr + +.global hwVoiceInStartup +hwVoiceInStartup: +/* 803B3F50 003B0EB0 1C 03 00 F4 */ mulli r0, r3, 0xf4 +/* 803B3F54 003B0EB4 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803B3F58 003B0EB8 7C 63 02 14 */ add r3, r3, r0 +/* 803B3F5C 003B0EBC 88 03 00 EC */ lbz r0, 0xec(r3) +/* 803B3F60 003B0EC0 20 00 00 01 */ subfic r0, r0, 1 +/* 803B3F64 003B0EC4 7C 00 00 34 */ cntlzw r0, r0 +/* 803B3F68 003B0EC8 54 03 D9 7E */ srwi r3, r0, 5 +/* 803B3F6C 003B0ECC 4E 80 00 20 */ blr diff --git a/asm/musyx/hw_aramdma.s b/asm/musyx/hw_aramdma.s new file mode 100644 index 00000000..ba80973a --- /dev/null +++ b/asm/musyx/hw_aramdma.s @@ -0,0 +1,917 @@ +.include "macros.inc" + +.section .text, "ax" + +.global aramQueueCallback +aramQueueCallback: +/* 803B3F70 003B0ED0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B3F74 003B0ED4 7C 08 02 A6 */ mflr r0 +/* 803B3F78 003B0ED8 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B3F7C 003B0EDC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B3F80 003B0EE0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B3F84 003B0EE4 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B3F88 003B0EE8 93 81 00 10 */ stw r28, 0x10(r1) +/* 803B3F8C 003B0EEC 7C 7C 1B 78 */ mr r28, r3 +/* 803B3F90 003B0EF0 3C 60 80 56 */ lis r3, lbl_80566F90@ha +/* 803B3F94 003B0EF4 80 1C 00 0C */ lwz r0, 0xc(r28) +/* 803B3F98 003B0EF8 3B E3 6F 90 */ addi r31, r3, lbl_80566F90@l +/* 803B3F9C 003B0EFC 28 00 00 01 */ cmplwi r0, 1 +/* 803B3FA0 003B0F00 40 82 00 0C */ bne lbl_803B3FAC +/* 803B3FA4 003B0F04 3C 60 80 56 */ lis r3, lbl_80567214@ha +/* 803B3FA8 003B0F08 3B E3 72 14 */ addi r31, r3, lbl_80567214@l +lbl_803B3FAC: +/* 803B3FAC 003B0F0C 3B A0 00 00 */ li r29, 0 +/* 803B3FB0 003B0F10 7F FE FB 78 */ mr r30, r31 +lbl_803B3FB4: +/* 803B3FB4 003B0F14 7C 1C F0 40 */ cmplw r28, r30 +/* 803B3FB8 003B0F18 40 82 00 1C */ bne lbl_803B3FD4 +/* 803B3FBC 003B0F1C 81 9E 00 20 */ lwz r12, 0x20(r30) +/* 803B3FC0 003B0F20 28 0C 00 00 */ cmplwi r12, 0 +/* 803B3FC4 003B0F24 41 82 00 10 */ beq lbl_803B3FD4 +/* 803B3FC8 003B0F28 80 7E 00 24 */ lwz r3, 0x24(r30) +/* 803B3FCC 003B0F2C 7D 89 03 A6 */ mtctr r12 +/* 803B3FD0 003B0F30 4E 80 04 21 */ bctrl +lbl_803B3FD4: +/* 803B3FD4 003B0F34 3B BD 00 01 */ addi r29, r29, 1 +/* 803B3FD8 003B0F38 3B DE 00 28 */ addi r30, r30, 0x28 +/* 803B3FDC 003B0F3C 28 1D 00 10 */ cmplwi r29, 0x10 +/* 803B3FE0 003B0F40 41 80 FF D4 */ blt lbl_803B3FB4 +/* 803B3FE4 003B0F44 88 7F 02 81 */ lbz r3, 0x281(r31) +/* 803B3FE8 003B0F48 38 03 FF FF */ addi r0, r3, -1 +/* 803B3FEC 003B0F4C 98 1F 02 81 */ stb r0, 0x281(r31) +/* 803B3FF0 003B0F50 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B3FF4 003B0F54 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B3FF8 003B0F58 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B3FFC 003B0F5C 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803B4000 003B0F60 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B4004 003B0F64 7C 08 03 A6 */ mtlr r0 +/* 803B4008 003B0F68 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B400C 003B0F6C 4E 80 00 20 */ blr + +.global aramUploadData +aramUploadData: +/* 803B4010 003B0F70 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B4014 003B0F74 7C 08 02 A6 */ mflr r0 +/* 803B4018 003B0F78 90 01 00 34 */ stw r0, 0x34(r1) +/* 803B401C 003B0F7C 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B4020 003B0F80 4B FD 5A 51 */ bl func_80389A70 +/* 803B4024 003B0F84 7C D8 33 79 */ or. r24, r6, r6 +/* 803B4028 003B0F88 7C 79 1B 78 */ mr r25, r3 +/* 803B402C 003B0F8C 7C 9A 23 78 */ mr r26, r4 +/* 803B4030 003B0F90 7C BB 2B 78 */ mr r27, r5 +/* 803B4034 003B0F94 7C FC 3B 78 */ mr r28, r7 +/* 803B4038 003B0F98 7D 1D 43 78 */ mr r29, r8 +/* 803B403C 003B0F9C 41 82 00 10 */ beq lbl_803B404C +/* 803B4040 003B0FA0 3C 60 80 56 */ lis r3, lbl_80567214@ha +/* 803B4044 003B0FA4 3B E3 72 14 */ addi r31, r3, lbl_80567214@l +/* 803B4048 003B0FA8 48 00 00 0C */ b lbl_803B4054 +lbl_803B404C: +/* 803B404C 003B0FAC 3C 60 80 56 */ lis r3, lbl_80566F90@ha +/* 803B4050 003B0FB0 3B E3 6F 90 */ addi r31, r3, lbl_80566F90@l +lbl_803B4054: +/* 803B4054 003B0FB4 4B FC D6 0D */ bl OSDisableInterrupts +/* 803B4058 003B0FB8 88 1F 02 81 */ lbz r0, 0x281(r31) +/* 803B405C 003B0FBC 7C 7E 1B 78 */ mr r30, r3 +/* 803B4060 003B0FC0 28 00 00 10 */ cmplwi r0, 0x10 +/* 803B4064 003B0FC4 40 80 01 68 */ bge lbl_803B41CC +/* 803B4068 003B0FC8 88 9F 02 80 */ lbz r4, 0x280(r31) +/* 803B406C 003B0FCC 7C 18 00 D0 */ neg r0, r24 +/* 803B4070 003B0FD0 7C 00 C3 78 */ or r0, r0, r24 +/* 803B4074 003B0FD4 3C 60 80 3B */ lis r3, aramQueueCallback@ha +/* 803B4078 003B0FD8 1C 84 00 28 */ mulli r4, r4, 0x28 +/* 803B407C 003B0FDC 38 E0 00 2A */ li r7, 0x2a +/* 803B4080 003B0FE0 38 A0 00 00 */ li r5, 0 +/* 803B4084 003B0FE4 54 08 0F FE */ srwi r8, r0, 0x1f +/* 803B4088 003B0FE8 7C DF 22 14 */ add r6, r31, r4 +/* 803B408C 003B0FEC 38 83 3F 70 */ addi r4, r3, aramQueueCallback@l +/* 803B4090 003B0FF0 90 E6 00 04 */ stw r7, 4(r6) +/* 803B4094 003B0FF4 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B4098 003B0FF8 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B409C 003B0FFC 7C 7F 02 14 */ add r3, r31, r0 +/* 803B40A0 003B1000 90 A3 00 08 */ stw r5, 8(r3) +/* 803B40A4 003B1004 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B40A8 003B1008 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B40AC 003B100C 7C 7F 02 14 */ add r3, r31, r0 +/* 803B40B0 003B1010 91 03 00 0C */ stw r8, 0xc(r3) +/* 803B40B4 003B1014 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B40B8 003B1018 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B40BC 003B101C 7C 7F 02 14 */ add r3, r31, r0 +/* 803B40C0 003B1020 93 23 00 10 */ stw r25, 0x10(r3) +/* 803B40C4 003B1024 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B40C8 003B1028 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B40CC 003B102C 7C 7F 02 14 */ add r3, r31, r0 +/* 803B40D0 003B1030 93 43 00 14 */ stw r26, 0x14(r3) +/* 803B40D4 003B1034 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B40D8 003B1038 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B40DC 003B103C 7C 7F 02 14 */ add r3, r31, r0 +/* 803B40E0 003B1040 93 63 00 18 */ stw r27, 0x18(r3) +/* 803B40E4 003B1044 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B40E8 003B1048 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B40EC 003B104C 7C 7F 02 14 */ add r3, r31, r0 +/* 803B40F0 003B1050 90 83 00 1C */ stw r4, 0x1c(r3) +/* 803B40F4 003B1054 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B40F8 003B1058 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B40FC 003B105C 7C 7F 02 14 */ add r3, r31, r0 +/* 803B4100 003B1060 93 83 00 20 */ stw r28, 0x20(r3) +/* 803B4104 003B1064 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B4108 003B1068 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B410C 003B106C 7C 7F 02 14 */ add r3, r31, r0 +/* 803B4110 003B1070 93 A3 00 24 */ stw r29, 0x24(r3) +/* 803B4114 003B1074 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B4118 003B1078 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B411C 003B107C 88 9F 02 80 */ lbz r4, 0x280(r31) +/* 803B4120 003B1080 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4124 003B1084 88 BF 02 80 */ lbz r5, 0x280(r31) +/* 803B4128 003B1088 88 DF 02 80 */ lbz r6, 0x280(r31) +/* 803B412C 003B108C 88 FF 02 80 */ lbz r7, 0x280(r31) +/* 803B4130 003B1090 1D 40 00 28 */ mulli r10, r0, 0x28 +/* 803B4134 003B1094 89 1F 02 80 */ lbz r8, 0x280(r31) +/* 803B4138 003B1098 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B413C 003B109C 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B4140 003B10A0 1D 24 00 28 */ mulli r9, r4, 0x28 +/* 803B4144 003B10A4 7C 9F 52 14 */ add r4, r31, r10 +/* 803B4148 003B10A8 80 84 00 04 */ lwz r4, 4(r4) +/* 803B414C 003B10AC 1D 45 00 28 */ mulli r10, r5, 0x28 +/* 803B4150 003B10B0 7C BF 4A 14 */ add r5, r31, r9 +/* 803B4154 003B10B4 80 A5 00 08 */ lwz r5, 8(r5) +/* 803B4158 003B10B8 1D 26 00 28 */ mulli r9, r6, 0x28 +/* 803B415C 003B10BC 7C DF 52 14 */ add r6, r31, r10 +/* 803B4160 003B10C0 80 C6 00 0C */ lwz r6, 0xc(r6) +/* 803B4164 003B10C4 1D 47 00 28 */ mulli r10, r7, 0x28 +/* 803B4168 003B10C8 7C FF 4A 14 */ add r7, r31, r9 +/* 803B416C 003B10CC 80 E7 00 10 */ lwz r7, 0x10(r7) +/* 803B4170 003B10D0 1D 28 00 28 */ mulli r9, r8, 0x28 +/* 803B4174 003B10D4 7D 1F 52 14 */ add r8, r31, r10 +/* 803B4178 003B10D8 81 08 00 14 */ lwz r8, 0x14(r8) +/* 803B417C 003B10DC 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B4180 003B10E0 7D 3F 4A 14 */ add r9, r31, r9 +/* 803B4184 003B10E4 81 29 00 18 */ lwz r9, 0x18(r9) +/* 803B4188 003B10E8 7D 5F 02 14 */ add r10, r31, r0 +/* 803B418C 003B10EC 81 4A 00 1C */ lwz r10, 0x1c(r10) +/* 803B4190 003B10F0 4B FB B4 E1 */ bl ARQPostRequest +/* 803B4194 003B10F4 88 9F 02 81 */ lbz r4, 0x281(r31) +/* 803B4198 003B10F8 7F C3 F3 78 */ mr r3, r30 +/* 803B419C 003B10FC 38 04 00 01 */ addi r0, r4, 1 +/* 803B41A0 003B1100 98 1F 02 81 */ stb r0, 0x281(r31) +/* 803B41A4 003B1104 88 9F 02 80 */ lbz r4, 0x280(r31) +/* 803B41A8 003B1108 38 84 00 01 */ addi r4, r4, 1 +/* 803B41AC 003B110C 54 80 E0 06 */ slwi r0, r4, 0x1c +/* 803B41B0 003B1110 54 84 0F FE */ srwi r4, r4, 0x1f +/* 803B41B4 003B1114 7C 04 00 50 */ subf r0, r4, r0 +/* 803B41B8 003B1118 54 00 20 3E */ rotlwi r0, r0, 4 +/* 803B41BC 003B111C 7C 00 22 14 */ add r0, r0, r4 +/* 803B41C0 003B1120 98 1F 02 80 */ stb r0, 0x280(r31) +/* 803B41C4 003B1124 4B FC D4 C5 */ bl OSRestoreInterrupts +/* 803B41C8 003B1128 48 00 00 0C */ b lbl_803B41D4 +lbl_803B41CC: +/* 803B41CC 003B112C 4B FC D4 BD */ bl OSRestoreInterrupts +/* 803B41D0 003B1130 4B FF FE 84 */ b lbl_803B4054 +lbl_803B41D4: +/* 803B41D4 003B1134 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B41D8 003B1138 4B FD 58 E5 */ bl _restgpr_24 +/* 803B41DC 003B113C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B41E0 003B1140 7C 08 03 A6 */ mtlr r0 +/* 803B41E4 003B1144 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B41E8 003B1148 4E 80 00 20 */ blr + +.global aramSyncTransferQueue +aramSyncTransferQueue: +/* 803B41EC 003B114C 3C 60 80 56 */ lis r3, lbl_80566F90@ha +/* 803B41F0 003B1150 38 63 6F 90 */ addi r3, r3, lbl_80566F90@l +lbl_803B41F4: +/* 803B41F4 003B1154 88 03 02 81 */ lbz r0, 0x281(r3) +/* 803B41F8 003B1158 28 00 00 00 */ cmplwi r0, 0 +/* 803B41FC 003B115C 40 82 FF F8 */ bne lbl_803B41F4 + +.global sub_803b4200 +sub_803b4200: +/* 803B4200 003B1160 4E 80 00 20 */ blr + +.global aramInit +aramInit: +/* 803B4204 003B1164 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B4208 003B1168 7C 08 02 A6 */ mflr r0 +/* 803B420C 003B116C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B4210 003B1170 39 61 00 20 */ addi r11, r1, 0x20 +/* 803B4214 003B1174 4B FD 58 69 */ bl sub_80389a7c +/* 803B4218 003B1178 7C 7B 1B 78 */ mr r27, r3 +/* 803B421C 003B117C 4B FB 99 99 */ bl ARGetBaseAddress +/* 803B4220 003B1180 7C 7E 1B 78 */ mr r30, r3 +/* 803B4224 003B1184 38 60 05 00 */ li r3, 0x500 +/* 803B4228 003B1188 48 00 0F 0D */ bl salMalloc +/* 803B422C 003B118C 7C 7C 1B 78 */ mr r28, r3 +/* 803B4230 003B1190 38 00 00 10 */ li r0, 0x10 +/* 803B4234 003B1194 7F 84 E3 78 */ mr r4, r28 +/* 803B4238 003B1198 38 60 00 00 */ li r3, 0 +/* 803B423C 003B119C 7C 09 03 A6 */ mtctr r0 +lbl_803B4240: +/* 803B4240 003B11A0 B0 64 00 00 */ sth r3, 0(r4) +/* 803B4244 003B11A4 B0 64 00 02 */ sth r3, 2(r4) +/* 803B4248 003B11A8 B0 64 00 04 */ sth r3, 4(r4) +/* 803B424C 003B11AC B0 64 00 06 */ sth r3, 6(r4) +/* 803B4250 003B11B0 B0 64 00 08 */ sth r3, 8(r4) +/* 803B4254 003B11B4 B0 64 00 0A */ sth r3, 0xa(r4) +/* 803B4258 003B11B8 B0 64 00 0C */ sth r3, 0xc(r4) +/* 803B425C 003B11BC B0 64 00 0E */ sth r3, 0xe(r4) +/* 803B4260 003B11C0 B0 64 00 10 */ sth r3, 0x10(r4) +/* 803B4264 003B11C4 B0 64 00 12 */ sth r3, 0x12(r4) +/* 803B4268 003B11C8 B0 64 00 14 */ sth r3, 0x14(r4) +/* 803B426C 003B11CC B0 64 00 16 */ sth r3, 0x16(r4) +/* 803B4270 003B11D0 B0 64 00 18 */ sth r3, 0x18(r4) +/* 803B4274 003B11D4 B0 64 00 1A */ sth r3, 0x1a(r4) +/* 803B4278 003B11D8 B0 64 00 1C */ sth r3, 0x1c(r4) +/* 803B427C 003B11DC B0 64 00 1E */ sth r3, 0x1e(r4) +/* 803B4280 003B11E0 B0 64 00 20 */ sth r3, 0x20(r4) +/* 803B4284 003B11E4 B0 64 00 22 */ sth r3, 0x22(r4) +/* 803B4288 003B11E8 B0 64 00 24 */ sth r3, 0x24(r4) +/* 803B428C 003B11EC B0 64 00 26 */ sth r3, 0x26(r4) +/* 803B4290 003B11F0 B0 64 00 28 */ sth r3, 0x28(r4) +/* 803B4294 003B11F4 B0 64 00 2A */ sth r3, 0x2a(r4) +/* 803B4298 003B11F8 B0 64 00 2C */ sth r3, 0x2c(r4) +/* 803B429C 003B11FC B0 64 00 2E */ sth r3, 0x2e(r4) +/* 803B42A0 003B1200 B0 64 00 30 */ sth r3, 0x30(r4) +/* 803B42A4 003B1204 B0 64 00 32 */ sth r3, 0x32(r4) +/* 803B42A8 003B1208 B0 64 00 34 */ sth r3, 0x34(r4) +/* 803B42AC 003B120C B0 64 00 36 */ sth r3, 0x36(r4) +/* 803B42B0 003B1210 B0 64 00 38 */ sth r3, 0x38(r4) +/* 803B42B4 003B1214 B0 64 00 3A */ sth r3, 0x3a(r4) +/* 803B42B8 003B1218 B0 64 00 3C */ sth r3, 0x3c(r4) +/* 803B42BC 003B121C B0 64 00 3E */ sth r3, 0x3e(r4) +/* 803B42C0 003B1220 B0 64 00 40 */ sth r3, 0x40(r4) +/* 803B42C4 003B1224 B0 64 00 42 */ sth r3, 0x42(r4) +/* 803B42C8 003B1228 B0 64 00 44 */ sth r3, 0x44(r4) +/* 803B42CC 003B122C B0 64 00 46 */ sth r3, 0x46(r4) +/* 803B42D0 003B1230 B0 64 00 48 */ sth r3, 0x48(r4) +/* 803B42D4 003B1234 B0 64 00 4A */ sth r3, 0x4a(r4) +/* 803B42D8 003B1238 B0 64 00 4C */ sth r3, 0x4c(r4) +/* 803B42DC 003B123C B0 64 00 4E */ sth r3, 0x4e(r4) +/* 803B42E0 003B1240 38 84 00 50 */ addi r4, r4, 0x50 +/* 803B42E4 003B1244 42 00 FF 5C */ bdnz lbl_803B4240 +/* 803B42E8 003B1248 7F 83 E3 78 */ mr r3, r28 +/* 803B42EC 003B124C 38 80 05 00 */ li r4, 0x500 +/* 803B42F0 003B1250 4B FC A7 C1 */ bl DCFlushRange +/* 803B42F4 003B1254 3C 80 80 56 */ lis r4, lbl_80566F90@ha +/* 803B42F8 003B1258 3C 60 80 56 */ lis r3, lbl_80567214@ha +/* 803B42FC 003B125C 3B E4 6F 90 */ addi r31, r4, lbl_80566F90@l +/* 803B4300 003B1260 38 00 00 00 */ li r0, 0 +/* 803B4304 003B1264 98 1F 02 81 */ stb r0, 0x281(r31) +/* 803B4308 003B1268 38 63 72 14 */ addi r3, r3, lbl_80567214@l +/* 803B430C 003B126C 98 1F 02 80 */ stb r0, 0x280(r31) +/* 803B4310 003B1270 98 03 02 81 */ stb r0, 0x281(r3) +/* 803B4314 003B1274 98 03 02 80 */ stb r0, 0x280(r3) +lbl_803B4318: +/* 803B4318 003B1278 4B FC D3 49 */ bl OSDisableInterrupts +/* 803B431C 003B127C 88 1F 02 81 */ lbz r0, 0x281(r31) +/* 803B4320 003B1280 7C 7D 1B 78 */ mr r29, r3 +/* 803B4324 003B1284 28 00 00 10 */ cmplwi r0, 0x10 +/* 803B4328 003B1288 40 80 01 60 */ bge lbl_803B4488 +/* 803B432C 003B128C 88 9F 02 80 */ lbz r4, 0x280(r31) +/* 803B4330 003B1290 3C 60 80 3B */ lis r3, aramQueueCallback@ha +/* 803B4334 003B1294 38 E0 00 2A */ li r7, 0x2a +/* 803B4338 003B1298 38 00 00 00 */ li r0, 0 +/* 803B433C 003B129C 1C C4 00 28 */ mulli r6, r4, 0x28 +/* 803B4340 003B12A0 38 A0 05 00 */ li r5, 0x500 +/* 803B4344 003B12A4 38 83 3F 70 */ addi r4, r3, aramQueueCallback@l +/* 803B4348 003B12A8 7C 7F 32 14 */ add r3, r31, r6 +/* 803B434C 003B12AC 90 E3 00 04 */ stw r7, 4(r3) +/* 803B4350 003B12B0 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B4354 003B12B4 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4358 003B12B8 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B435C 003B12BC 90 03 00 08 */ stw r0, 8(r3) +/* 803B4360 003B12C0 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B4364 003B12C4 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4368 003B12C8 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B436C 003B12CC 90 03 00 0C */ stw r0, 0xc(r3) +/* 803B4370 003B12D0 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B4374 003B12D4 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4378 003B12D8 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B437C 003B12DC 93 83 00 10 */ stw r28, 0x10(r3) +/* 803B4380 003B12E0 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B4384 003B12E4 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4388 003B12E8 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B438C 003B12EC 93 C3 00 14 */ stw r30, 0x14(r3) +/* 803B4390 003B12F0 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B4394 003B12F4 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4398 003B12F8 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B439C 003B12FC 90 A3 00 18 */ stw r5, 0x18(r3) +/* 803B43A0 003B1300 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B43A4 003B1304 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B43A8 003B1308 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B43AC 003B130C 90 83 00 1C */ stw r4, 0x1c(r3) +/* 803B43B0 003B1310 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B43B4 003B1314 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B43B8 003B1318 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B43BC 003B131C 90 03 00 20 */ stw r0, 0x20(r3) +/* 803B43C0 003B1320 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B43C4 003B1324 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B43C8 003B1328 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B43CC 003B132C 90 03 00 24 */ stw r0, 0x24(r3) +/* 803B43D0 003B1330 88 7F 02 80 */ lbz r3, 0x280(r31) +/* 803B43D4 003B1334 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B43D8 003B1338 88 9F 02 80 */ lbz r4, 0x280(r31) +/* 803B43DC 003B133C 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B43E0 003B1340 88 BF 02 80 */ lbz r5, 0x280(r31) +/* 803B43E4 003B1344 88 DF 02 80 */ lbz r6, 0x280(r31) +/* 803B43E8 003B1348 88 FF 02 80 */ lbz r7, 0x280(r31) +/* 803B43EC 003B134C 1D 40 00 28 */ mulli r10, r0, 0x28 +/* 803B43F0 003B1350 89 1F 02 80 */ lbz r8, 0x280(r31) +/* 803B43F4 003B1354 7C 7F 1A 14 */ add r3, r31, r3 +/* 803B43F8 003B1358 88 1F 02 80 */ lbz r0, 0x280(r31) +/* 803B43FC 003B135C 1D 24 00 28 */ mulli r9, r4, 0x28 +/* 803B4400 003B1360 7C 9F 52 14 */ add r4, r31, r10 +/* 803B4404 003B1364 80 84 00 04 */ lwz r4, 4(r4) +/* 803B4408 003B1368 1D 45 00 28 */ mulli r10, r5, 0x28 +/* 803B440C 003B136C 7C BF 4A 14 */ add r5, r31, r9 +/* 803B4410 003B1370 80 A5 00 08 */ lwz r5, 8(r5) +/* 803B4414 003B1374 1D 26 00 28 */ mulli r9, r6, 0x28 +/* 803B4418 003B1378 7C DF 52 14 */ add r6, r31, r10 +/* 803B441C 003B137C 80 C6 00 0C */ lwz r6, 0xc(r6) +/* 803B4420 003B1380 1D 47 00 28 */ mulli r10, r7, 0x28 +/* 803B4424 003B1384 7C FF 4A 14 */ add r7, r31, r9 +/* 803B4428 003B1388 80 E7 00 10 */ lwz r7, 0x10(r7) +/* 803B442C 003B138C 1D 28 00 28 */ mulli r9, r8, 0x28 +/* 803B4430 003B1390 7D 1F 52 14 */ add r8, r31, r10 +/* 803B4434 003B1394 81 08 00 14 */ lwz r8, 0x14(r8) +/* 803B4438 003B1398 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B443C 003B139C 7D 3F 4A 14 */ add r9, r31, r9 +/* 803B4440 003B13A0 81 29 00 18 */ lwz r9, 0x18(r9) +/* 803B4444 003B13A4 7D 5F 02 14 */ add r10, r31, r0 +/* 803B4448 003B13A8 81 4A 00 1C */ lwz r10, 0x1c(r10) +/* 803B444C 003B13AC 4B FB B2 25 */ bl ARQPostRequest +/* 803B4450 003B13B0 88 9F 02 81 */ lbz r4, 0x281(r31) +/* 803B4454 003B13B4 7F A3 EB 78 */ mr r3, r29 +/* 803B4458 003B13B8 38 04 00 01 */ addi r0, r4, 1 +/* 803B445C 003B13BC 98 1F 02 81 */ stb r0, 0x281(r31) +/* 803B4460 003B13C0 88 9F 02 80 */ lbz r4, 0x280(r31) +/* 803B4464 003B13C4 38 84 00 01 */ addi r4, r4, 1 +/* 803B4468 003B13C8 54 80 E0 06 */ slwi r0, r4, 0x1c +/* 803B446C 003B13CC 54 84 0F FE */ srwi r4, r4, 0x1f +/* 803B4470 003B13D0 7C 04 00 50 */ subf r0, r4, r0 +/* 803B4474 003B13D4 54 00 20 3E */ rotlwi r0, r0, 4 +/* 803B4478 003B13D8 7C 00 22 14 */ add r0, r0, r4 +/* 803B447C 003B13DC 98 1F 02 80 */ stb r0, 0x280(r31) +/* 803B4480 003B13E0 4B FC D2 09 */ bl OSRestoreInterrupts +/* 803B4484 003B13E4 48 00 00 0C */ b lbl_803B4490 +lbl_803B4488: +/* 803B4488 003B13E8 4B FC D2 01 */ bl OSRestoreInterrupts +/* 803B448C 003B13EC 4B FF FE 8C */ b lbl_803B4318 +lbl_803B4490: +/* 803B4490 003B13F0 88 1F 02 81 */ lbz r0, 0x281(r31) +/* 803B4494 003B13F4 28 00 00 00 */ cmplwi r0, 0 +/* 803B4498 003B13F8 40 82 FF F8 */ bne lbl_803B4490 +/* 803B449C 003B13FC 7F 83 E3 78 */ mr r3, r28 +/* 803B44A0 003B1400 48 00 0C BD */ bl salFree +/* 803B44A4 003B1404 7C 1E DA 14 */ add r0, r30, r27 +/* 803B44A8 003B1408 90 0D AF AC */ stw r0, lbl_805A9B6C@sda21(r13) +/* 803B44AC 003B140C 4B FB 97 11 */ bl ARGetSize +/* 803B44B0 003B1410 80 0D AF AC */ lwz r0, lbl_805A9B6C@sda21(r13) +/* 803B44B4 003B1414 7C 00 18 40 */ cmplw r0, r3 +/* 803B44B8 003B1418 40 81 00 0C */ ble lbl_803B44C4 +/* 803B44BC 003B141C 4B FB 97 01 */ bl ARGetSize +/* 803B44C0 003B1420 90 6D AF AC */ stw r3, lbl_805A9B6C@sda21(r13) +lbl_803B44C4: +/* 803B44C4 003B1424 38 7E 05 00 */ addi r3, r30, 0x500 +/* 803B44C8 003B1428 38 00 00 00 */ li r0, 0 +/* 803B44CC 003B142C 90 6D AF A8 */ stw r3, lbl_805A9B68@sda21(r13) +/* 803B44D0 003B1430 90 0D AF A0 */ stw r0, lbl_805A9B60@sda21(r13) +/* 803B44D4 003B1434 48 00 04 6D */ bl InitStreamBuffers +/* 803B44D8 003B1438 39 61 00 20 */ addi r11, r1, 0x20 +/* 803B44DC 003B143C 4B FD 55 ED */ bl _restgpr_27 +/* 803B44E0 003B1440 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B44E4 003B1444 7C 08 03 A6 */ mtlr r0 +/* 803B44E8 003B1448 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B44EC 003B144C 4E 80 00 20 */ blr + +.global aramExit +aramExit: +/* 803B44F0 003B1450 4E 80 00 20 */ blr + +.global aramGetZeroBuffer +aramGetZeroBuffer: +/* 803B44F4 003B1454 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B44F8 003B1458 7C 08 02 A6 */ mflr r0 +/* 803B44FC 003B145C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4500 003B1460 4B FB 96 B5 */ bl ARGetBaseAddress +/* 803B4504 003B1464 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4508 003B1468 7C 08 03 A6 */ mtlr r0 +/* 803B450C 003B146C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4510 003B1470 4E 80 00 20 */ blr + +.global aramSetUploadCallback +aramSetUploadCallback: +/* 803B4514 003B1474 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4518 003B1478 7C 08 02 A6 */ mflr r0 +/* 803B451C 003B147C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4520 003B1480 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B4524 003B1484 93 C1 00 08 */ stw r30, 8(r1) +/* 803B4528 003B1488 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803B452C 003B148C 41 82 00 24 */ beq lbl_803B4550 +/* 803B4530 003B1490 38 04 00 1F */ addi r0, r4, 0x1f +/* 803B4534 003B1494 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a +/* 803B4538 003B1498 4B FB B2 95 */ bl sub_8036f7cc +/* 803B453C 003B149C 7C 1F 18 40 */ cmplw r31, r3 +/* 803B4540 003B14A0 7F E0 FB 78 */ mr r0, r31 +/* 803B4544 003B14A4 40 80 00 08 */ bge lbl_803B454C +/* 803B4548 003B14A8 7C 60 1B 78 */ mr r0, r3 +lbl_803B454C: +/* 803B454C 003B14AC 90 0D AF 9C */ stw r0, lbl_805A9B5C@sda21(r13) +lbl_803B4550: +/* 803B4550 003B14B0 93 CD AF A0 */ stw r30, lbl_805A9B60@sda21(r13) +/* 803B4554 003B14B4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4558 003B14B8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B455C 003B14BC 83 C1 00 08 */ lwz r30, 8(r1) +/* 803B4560 003B14C0 7C 08 03 A6 */ mtlr r0 +/* 803B4564 003B14C4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4568 003B14C8 4E 80 00 20 */ blr + +.global sub_803b456c +sub_803b456c: +/* 803B456C 003B14CC 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B4570 003B14D0 7C 08 02 A6 */ mflr r0 +/* 803B4574 003B14D4 90 01 00 34 */ stw r0, 0x34(r1) +/* 803B4578 003B14D8 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B457C 003B14DC 4B FD 54 F1 */ bl func_80389A6C +/* 803B4580 003B14E0 80 0D AF A0 */ lwz r0, lbl_805A9B60@sda21(r13) +/* 803B4584 003B14E4 38 84 00 1F */ addi r4, r4, 0x1f +/* 803B4588 003B14E8 83 0D AF A8 */ lwz r24, lbl_805A9B68@sda21(r13) +/* 803B458C 003B14EC 7C 79 1B 78 */ mr r25, r3 +/* 803B4590 003B14F0 28 00 00 00 */ cmplwi r0, 0 +/* 803B4594 003B14F4 54 97 00 34 */ rlwinm r23, r4, 0, 0, 0x1a +/* 803B4598 003B14F8 40 82 01 A0 */ bne lbl_803B4738 +/* 803B459C 003B14FC 7E E4 BB 78 */ mr r4, r23 +/* 803B45A0 003B1500 4B FC A5 11 */ bl DCFlushRange +/* 803B45A4 003B1504 3C 60 80 56 */ lis r3, lbl_80566F90@ha +/* 803B45A8 003B1508 83 CD AF A8 */ lwz r30, lbl_805A9B68@sda21(r13) +/* 803B45AC 003B150C 3B 83 6F 90 */ addi r28, r3, lbl_80566F90@l +lbl_803B45B0: +/* 803B45B0 003B1510 4B FC D0 B1 */ bl OSDisableInterrupts +/* 803B45B4 003B1514 88 1C 02 81 */ lbz r0, 0x281(r28) +/* 803B45B8 003B1518 7C 7D 1B 78 */ mr r29, r3 +/* 803B45BC 003B151C 28 00 00 10 */ cmplwi r0, 0x10 +/* 803B45C0 003B1520 40 80 01 5C */ bge lbl_803B471C +/* 803B45C4 003B1524 88 9C 02 80 */ lbz r4, 0x280(r28) +/* 803B45C8 003B1528 3C 60 80 3B */ lis r3, aramQueueCallback@ha +/* 803B45CC 003B152C 38 C0 00 2A */ li r6, 0x2a +/* 803B45D0 003B1530 38 00 00 00 */ li r0, 0 +/* 803B45D4 003B1534 1C A4 00 28 */ mulli r5, r4, 0x28 +/* 803B45D8 003B1538 38 83 3F 70 */ addi r4, r3, aramQueueCallback@l +/* 803B45DC 003B153C 7C 7C 2A 14 */ add r3, r28, r5 +/* 803B45E0 003B1540 90 C3 00 04 */ stw r6, 4(r3) +/* 803B45E4 003B1544 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B45E8 003B1548 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B45EC 003B154C 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B45F0 003B1550 90 03 00 08 */ stw r0, 8(r3) +/* 803B45F4 003B1554 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B45F8 003B1558 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B45FC 003B155C 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B4600 003B1560 90 03 00 0C */ stw r0, 0xc(r3) +/* 803B4604 003B1564 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B4608 003B1568 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B460C 003B156C 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B4610 003B1570 93 23 00 10 */ stw r25, 0x10(r3) +/* 803B4614 003B1574 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B4618 003B1578 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B461C 003B157C 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B4620 003B1580 93 C3 00 14 */ stw r30, 0x14(r3) +/* 803B4624 003B1584 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B4628 003B1588 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B462C 003B158C 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B4630 003B1590 92 E3 00 18 */ stw r23, 0x18(r3) +/* 803B4634 003B1594 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B4638 003B1598 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B463C 003B159C 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B4640 003B15A0 90 83 00 1C */ stw r4, 0x1c(r3) +/* 803B4644 003B15A4 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B4648 003B15A8 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B464C 003B15AC 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B4650 003B15B0 90 03 00 20 */ stw r0, 0x20(r3) +/* 803B4654 003B15B4 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B4658 003B15B8 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B465C 003B15BC 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B4660 003B15C0 90 03 00 24 */ stw r0, 0x24(r3) +/* 803B4664 003B15C4 88 7C 02 80 */ lbz r3, 0x280(r28) +/* 803B4668 003B15C8 88 1C 02 80 */ lbz r0, 0x280(r28) +/* 803B466C 003B15CC 88 9C 02 80 */ lbz r4, 0x280(r28) +/* 803B4670 003B15D0 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4674 003B15D4 88 BC 02 80 */ lbz r5, 0x280(r28) +/* 803B4678 003B15D8 88 DC 02 80 */ lbz r6, 0x280(r28) +/* 803B467C 003B15DC 88 FC 02 80 */ lbz r7, 0x280(r28) +/* 803B4680 003B15E0 1D 40 00 28 */ mulli r10, r0, 0x28 +/* 803B4684 003B15E4 89 1C 02 80 */ lbz r8, 0x280(r28) +/* 803B4688 003B15E8 7C 7C 1A 14 */ add r3, r28, r3 +/* 803B468C 003B15EC 88 1C 02 80 */ lbz r0, 0x280(r28) +/* 803B4690 003B15F0 1D 24 00 28 */ mulli r9, r4, 0x28 +/* 803B4694 003B15F4 7C 9C 52 14 */ add r4, r28, r10 +/* 803B4698 003B15F8 80 84 00 04 */ lwz r4, 4(r4) +/* 803B469C 003B15FC 1D 45 00 28 */ mulli r10, r5, 0x28 +/* 803B46A0 003B1600 7C BC 4A 14 */ add r5, r28, r9 +/* 803B46A4 003B1604 80 A5 00 08 */ lwz r5, 8(r5) +/* 803B46A8 003B1608 1D 26 00 28 */ mulli r9, r6, 0x28 +/* 803B46AC 003B160C 7C DC 52 14 */ add r6, r28, r10 +/* 803B46B0 003B1610 80 C6 00 0C */ lwz r6, 0xc(r6) +/* 803B46B4 003B1614 1D 47 00 28 */ mulli r10, r7, 0x28 +/* 803B46B8 003B1618 7C FC 4A 14 */ add r7, r28, r9 +/* 803B46BC 003B161C 80 E7 00 10 */ lwz r7, 0x10(r7) +/* 803B46C0 003B1620 1D 28 00 28 */ mulli r9, r8, 0x28 +/* 803B46C4 003B1624 7D 1C 52 14 */ add r8, r28, r10 +/* 803B46C8 003B1628 81 08 00 14 */ lwz r8, 0x14(r8) +/* 803B46CC 003B162C 1C 00 00 28 */ mulli r0, r0, 0x28 +/* 803B46D0 003B1630 7D 3C 4A 14 */ add r9, r28, r9 +/* 803B46D4 003B1634 81 29 00 18 */ lwz r9, 0x18(r9) +/* 803B46D8 003B1638 7D 5C 02 14 */ add r10, r28, r0 +/* 803B46DC 003B163C 81 4A 00 1C */ lwz r10, 0x1c(r10) +/* 803B46E0 003B1640 4B FB AF 91 */ bl ARQPostRequest +/* 803B46E4 003B1644 88 9C 02 81 */ lbz r4, 0x281(r28) +/* 803B46E8 003B1648 7F A3 EB 78 */ mr r3, r29 +/* 803B46EC 003B164C 38 04 00 01 */ addi r0, r4, 1 +/* 803B46F0 003B1650 98 1C 02 81 */ stb r0, 0x281(r28) +/* 803B46F4 003B1654 88 9C 02 80 */ lbz r4, 0x280(r28) +/* 803B46F8 003B1658 38 84 00 01 */ addi r4, r4, 1 +/* 803B46FC 003B165C 54 80 E0 06 */ slwi r0, r4, 0x1c +/* 803B4700 003B1660 54 84 0F FE */ srwi r4, r4, 0x1f +/* 803B4704 003B1664 7C 04 00 50 */ subf r0, r4, r0 +/* 803B4708 003B1668 54 00 20 3E */ rotlwi r0, r0, 4 +/* 803B470C 003B166C 7C 00 22 14 */ add r0, r0, r4 +/* 803B4710 003B1670 98 1C 02 80 */ stb r0, 0x280(r28) +/* 803B4714 003B1674 4B FC CF 75 */ bl OSRestoreInterrupts +/* 803B4718 003B1678 48 00 00 0C */ b lbl_803B4724 +lbl_803B471C: +/* 803B471C 003B167C 4B FC CF 6D */ bl OSRestoreInterrupts +/* 803B4720 003B1680 4B FF FE 90 */ b lbl_803B45B0 +lbl_803B4724: +/* 803B4724 003B1684 80 0D AF A8 */ lwz r0, lbl_805A9B68@sda21(r13) +/* 803B4728 003B1688 7F 03 C3 78 */ mr r3, r24 +/* 803B472C 003B168C 7C 00 BA 14 */ add r0, r0, r23 +/* 803B4730 003B1690 90 0D AF A8 */ stw r0, lbl_805A9B68@sda21(r13) +/* 803B4734 003B1694 48 00 01 DC */ b lbl_803B4910 +lbl_803B4738: +/* 803B4738 003B1698 3C 80 80 56 */ lis r4, lbl_80566F90@ha +/* 803B473C 003B169C 3C 60 80 3B */ lis r3, aramQueueCallback@ha +/* 803B4740 003B16A0 3B C4 6F 90 */ addi r30, r4, lbl_80566F90@l +/* 803B4744 003B16A4 3B E3 3F 70 */ addi r31, r3, aramQueueCallback@l +/* 803B4748 003B16A8 48 00 01 BC */ b lbl_803B4904 +lbl_803B474C: +/* 803B474C 003B16AC 80 0D AF 9C */ lwz r0, lbl_805A9B5C@sda21(r13) +/* 803B4750 003B16B0 7E FC BB 78 */ mr r28, r23 +/* 803B4754 003B16B4 7C 17 00 40 */ cmplw r23, r0 +/* 803B4758 003B16B8 41 80 00 08 */ blt lbl_803B4760 +/* 803B475C 003B16BC 7C 1C 03 78 */ mr r28, r0 +lbl_803B4760: +/* 803B4760 003B16C0 81 8D AF A0 */ lwz r12, lbl_805A9B60@sda21(r13) +/* 803B4764 003B16C4 7F 23 CB 78 */ mr r3, r25 +/* 803B4768 003B16C8 7F 84 E3 78 */ mr r4, r28 +/* 803B476C 003B16CC 7D 89 03 A6 */ mtctr r12 +/* 803B4770 003B16D0 4E 80 04 21 */ bctrl +/* 803B4774 003B16D4 7C 7D 1B 78 */ mr r29, r3 +/* 803B4778 003B16D8 7F 84 E3 78 */ mr r4, r28 +/* 803B477C 003B16DC 4B FC A3 35 */ bl DCFlushRange +/* 803B4780 003B16E0 83 4D AF A8 */ lwz r26, lbl_805A9B68@sda21(r13) +lbl_803B4784: +/* 803B4784 003B16E4 4B FC CE DD */ bl OSDisableInterrupts +/* 803B4788 003B16E8 88 1E 02 81 */ lbz r0, 0x281(r30) +/* 803B478C 003B16EC 7C 7B 1B 78 */ mr r27, r3 +/* 803B4790 003B16F0 28 00 00 10 */ cmplwi r0, 0x10 +/* 803B4794 003B16F4 40 80 01 54 */ bge lbl_803B48E8 +/* 803B4798 003B16F8 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B479C 003B16FC 38 80 00 2A */ li r4, 0x2a +/* 803B47A0 003B1700 38 00 00 00 */ li r0, 0 +/* 803B47A4 003B1704 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B47A8 003B1708 38 63 00 04 */ addi r3, r3, 4 +/* 803B47AC 003B170C 7C 9E 19 2E */ stwx r4, r30, r3 +/* 803B47B0 003B1710 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B47B4 003B1714 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B47B8 003B1718 38 63 00 08 */ addi r3, r3, 8 +/* 803B47BC 003B171C 7C 1E 19 2E */ stwx r0, r30, r3 +/* 803B47C0 003B1720 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B47C4 003B1724 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B47C8 003B1728 38 63 00 0C */ addi r3, r3, 0xc +/* 803B47CC 003B172C 7C 1E 19 2E */ stwx r0, r30, r3 +/* 803B47D0 003B1730 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B47D4 003B1734 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B47D8 003B1738 38 63 00 10 */ addi r3, r3, 0x10 +/* 803B47DC 003B173C 7F BE 19 2E */ stwx r29, r30, r3 +/* 803B47E0 003B1740 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B47E4 003B1744 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B47E8 003B1748 38 63 00 14 */ addi r3, r3, 0x14 +/* 803B47EC 003B174C 7F 5E 19 2E */ stwx r26, r30, r3 +/* 803B47F0 003B1750 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B47F4 003B1754 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B47F8 003B1758 38 63 00 18 */ addi r3, r3, 0x18 +/* 803B47FC 003B175C 7F 9E 19 2E */ stwx r28, r30, r3 +/* 803B4800 003B1760 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B4804 003B1764 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4808 003B1768 38 63 00 1C */ addi r3, r3, 0x1c +/* 803B480C 003B176C 7F FE 19 2E */ stwx r31, r30, r3 +/* 803B4810 003B1770 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B4814 003B1774 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4818 003B1778 38 63 00 20 */ addi r3, r3, 0x20 +/* 803B481C 003B177C 7C 1E 19 2E */ stwx r0, r30, r3 +/* 803B4820 003B1780 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B4824 003B1784 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4828 003B1788 38 63 00 24 */ addi r3, r3, 0x24 +/* 803B482C 003B178C 7C 1E 19 2E */ stwx r0, r30, r3 +/* 803B4830 003B1790 88 7E 02 80 */ lbz r3, 0x280(r30) +/* 803B4834 003B1794 88 1E 02 80 */ lbz r0, 0x280(r30) +/* 803B4838 003B1798 88 9E 02 80 */ lbz r4, 0x280(r30) +/* 803B483C 003B179C 1C 63 00 28 */ mulli r3, r3, 0x28 +/* 803B4840 003B17A0 88 BE 02 80 */ lbz r5, 0x280(r30) +/* 803B4844 003B17A4 88 DE 02 80 */ lbz r6, 0x280(r30) +/* 803B4848 003B17A8 88 FE 02 80 */ lbz r7, 0x280(r30) +/* 803B484C 003B17AC 1D 40 00 28 */ mulli r10, r0, 0x28 +/* 803B4850 003B17B0 89 1E 02 80 */ lbz r8, 0x280(r30) +/* 803B4854 003B17B4 7C 7E 1A 14 */ add r3, r30, r3 +/* 803B4858 003B17B8 88 1E 02 80 */ lbz r0, 0x280(r30) +/* 803B485C 003B17BC 1D 24 00 28 */ mulli r9, r4, 0x28 +/* 803B4860 003B17C0 38 8A 00 04 */ addi r4, r10, 4 +/* 803B4864 003B17C4 7C 9E 20 2E */ lwzx r4, r30, r4 +/* 803B4868 003B17C8 1D 45 00 28 */ mulli r10, r5, 0x28 +/* 803B486C 003B17CC 38 A9 00 08 */ addi r5, r9, 8 +/* 803B4870 003B17D0 7C BE 28 2E */ lwzx r5, r30, r5 +/* 803B4874 003B17D4 1D 26 00 28 */ mulli r9, r6, 0x28 +/* 803B4878 003B17D8 38 CA 00 0C */ addi r6, r10, 0xc +/* 803B487C 003B17DC 7C DE 30 2E */ lwzx r6, r30, r6 +/* 803B4880 003B17E0 1D 47 00 28 */ mulli r10, r7, 0x28 +/* 803B4884 003B17E4 38 E9 00 10 */ addi r7, r9, 0x10 +/* 803B4888 003B17E8 7C FE 38 2E */ lwzx r7, r30, r7 +/* 803B488C 003B17EC 1D 28 00 28 */ mulli r9, r8, 0x28 +/* 803B4890 003B17F0 39 0A 00 14 */ addi r8, r10, 0x14 +/* 803B4894 003B17F4 7D 1E 40 2E */ lwzx r8, r30, r8 +/* 803B4898 003B17F8 1D 40 00 28 */ mulli r10, r0, 0x28 +/* 803B489C 003B17FC 38 09 00 18 */ addi r0, r9, 0x18 +/* 803B48A0 003B1800 7D 3E 00 2E */ lwzx r9, r30, r0 +/* 803B48A4 003B1804 38 0A 00 1C */ addi r0, r10, 0x1c +/* 803B48A8 003B1808 7D 5E 00 2E */ lwzx r10, r30, r0 +/* 803B48AC 003B180C 4B FB AD C5 */ bl ARQPostRequest +/* 803B48B0 003B1810 88 9E 02 81 */ lbz r4, 0x281(r30) +/* 803B48B4 003B1814 7F 63 DB 78 */ mr r3, r27 +/* 803B48B8 003B1818 38 04 00 01 */ addi r0, r4, 1 +/* 803B48BC 003B181C 98 1E 02 81 */ stb r0, 0x281(r30) +/* 803B48C0 003B1820 88 9E 02 80 */ lbz r4, 0x280(r30) +/* 803B48C4 003B1824 38 84 00 01 */ addi r4, r4, 1 +/* 803B48C8 003B1828 54 80 E0 06 */ slwi r0, r4, 0x1c +/* 803B48CC 003B182C 54 84 0F FE */ srwi r4, r4, 0x1f +/* 803B48D0 003B1830 7C 04 00 50 */ subf r0, r4, r0 +/* 803B48D4 003B1834 54 00 20 3E */ rotlwi r0, r0, 4 +/* 803B48D8 003B1838 7C 00 22 14 */ add r0, r0, r4 +/* 803B48DC 003B183C 98 1E 02 80 */ stb r0, 0x280(r30) +/* 803B48E0 003B1840 4B FC CD A9 */ bl OSRestoreInterrupts +/* 803B48E4 003B1844 48 00 00 0C */ b lbl_803B48F0 +lbl_803B48E8: +/* 803B48E8 003B1848 4B FC CD A1 */ bl OSRestoreInterrupts +/* 803B48EC 003B184C 4B FF FE 98 */ b lbl_803B4784 +lbl_803B48F0: +/* 803B48F0 003B1850 80 0D AF A8 */ lwz r0, lbl_805A9B68@sda21(r13) +/* 803B48F4 003B1854 7E FC B8 50 */ subf r23, r28, r23 +/* 803B48F8 003B1858 7F 39 E2 14 */ add r25, r25, r28 +/* 803B48FC 003B185C 7C 00 E2 14 */ add r0, r0, r28 +/* 803B4900 003B1860 90 0D AF A8 */ stw r0, lbl_805A9B68@sda21(r13) +lbl_803B4904: +/* 803B4904 003B1864 28 17 00 00 */ cmplwi r23, 0 +/* 803B4908 003B1868 40 82 FE 44 */ bne lbl_803B474C +/* 803B490C 003B186C 7F 03 C3 78 */ mr r3, r24 +lbl_803B4910: +/* 803B4910 003B1870 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B4914 003B1874 4B FD 51 A5 */ bl _restgpr_23 +/* 803B4918 003B1878 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B491C 003B187C 7C 08 03 A6 */ mtlr r0 +/* 803B4920 003B1880 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B4924 003B1884 4E 80 00 20 */ blr + +.global sub_803b4928 +sub_803b4928: +/* 803B4928 003B1888 38 64 00 1F */ addi r3, r4, 0x1f +/* 803B492C 003B188C 80 0D AF A8 */ lwz r0, lbl_805A9B68@sda21(r13) +/* 803B4930 003B1890 54 63 00 34 */ rlwinm r3, r3, 0, 0, 0x1a +/* 803B4934 003B1894 7C 03 00 50 */ subf r0, r3, r0 +/* 803B4938 003B1898 90 0D AF A8 */ stw r0, lbl_805A9B68@sda21(r13) +/* 803B493C 003B189C 4E 80 00 20 */ blr + +.global InitStreamBuffers +InitStreamBuffers: +/* 803B4940 003B18A0 3C 60 80 56 */ lis r3, lbl_80567498@ha +/* 803B4944 003B18A4 38 80 00 00 */ li r4, 0 +/* 803B4948 003B18A8 38 63 74 98 */ addi r3, r3, lbl_80567498@l +/* 803B494C 003B18AC 38 00 00 07 */ li r0, 7 +/* 803B4950 003B18B0 90 8D AF 98 */ stw r4, lbl_805A9B58@sda21(r13) +/* 803B4954 003B18B4 38 E3 00 10 */ addi r7, r3, 0x10 +/* 803B4958 003B18B8 39 00 00 01 */ li r8, 1 +/* 803B495C 003B18BC 90 8D AF 94 */ stw r4, lbl_805A9B54@sda21(r13) +/* 803B4960 003B18C0 90 6D AF 90 */ stw r3, lbl_805A9B50@sda21(r13) +/* 803B4964 003B18C4 7C 09 03 A6 */ mtctr r0 +lbl_803B4968: +/* 803B4968 003B18C8 90 E7 FF F0 */ stw r7, -0x10(r7) +/* 803B496C 003B18CC 38 67 00 10 */ addi r3, r7, 0x10 +/* 803B4970 003B18D0 38 07 00 20 */ addi r0, r7, 0x20 +/* 803B4974 003B18D4 38 C7 00 30 */ addi r6, r7, 0x30 +/* 803B4978 003B18D8 90 67 00 00 */ stw r3, 0(r7) +/* 803B497C 003B18DC 38 A7 00 40 */ addi r5, r7, 0x40 +/* 803B4980 003B18E0 38 87 00 50 */ addi r4, r7, 0x50 +/* 803B4984 003B18E4 38 67 00 60 */ addi r3, r7, 0x60 +/* 803B4988 003B18E8 90 07 00 10 */ stw r0, 0x10(r7) +/* 803B498C 003B18EC 38 07 00 70 */ addi r0, r7, 0x70 +/* 803B4990 003B18F0 39 08 00 08 */ addi r8, r8, 8 +/* 803B4994 003B18F4 90 C7 00 20 */ stw r6, 0x20(r7) +/* 803B4998 003B18F8 90 A7 00 30 */ stw r5, 0x30(r7) +/* 803B499C 003B18FC 90 87 00 40 */ stw r4, 0x40(r7) +/* 803B49A0 003B1900 90 67 00 50 */ stw r3, 0x50(r7) +/* 803B49A4 003B1904 90 07 00 60 */ stw r0, 0x60(r7) +/* 803B49A8 003B1908 38 E7 00 80 */ addi r7, r7, 0x80 +/* 803B49AC 003B190C 42 00 FF BC */ bdnz lbl_803B4968 +/* 803B49B0 003B1910 3C 60 80 56 */ lis r3, lbl_80567498@ha +/* 803B49B4 003B1914 55 04 20 36 */ slwi r4, r8, 4 +/* 803B49B8 003B1918 38 63 74 98 */ addi r3, r3, lbl_80567498@l +/* 803B49BC 003B191C 20 08 00 40 */ subfic r0, r8, 0x40 +/* 803B49C0 003B1920 7C 63 22 14 */ add r3, r3, r4 +/* 803B49C4 003B1924 7C 09 03 A6 */ mtctr r0 +/* 803B49C8 003B1928 28 08 00 40 */ cmplwi r8, 0x40 +/* 803B49CC 003B192C 40 80 00 14 */ bge lbl_803B49E0 +lbl_803B49D0: +/* 803B49D0 003B1930 90 63 FF F0 */ stw r3, -0x10(r3) +/* 803B49D4 003B1934 38 63 00 10 */ addi r3, r3, 0x10 +/* 803B49D8 003B1938 39 08 00 01 */ addi r8, r8, 1 +/* 803B49DC 003B193C 42 00 FF F4 */ bdnz lbl_803B49D0 +lbl_803B49E0: +/* 803B49E0 003B1940 3C 60 80 56 */ lis r3, lbl_80567498@ha +/* 803B49E4 003B1944 80 0D AF AC */ lwz r0, lbl_805A9B6C@sda21(r13) +/* 803B49E8 003B1948 38 83 74 98 */ addi r4, r3, lbl_80567498@l +/* 803B49EC 003B194C 55 03 20 36 */ slwi r3, r8, 4 +/* 803B49F0 003B1950 7C 64 1A 14 */ add r3, r4, r3 +/* 803B49F4 003B1954 38 80 00 00 */ li r4, 0 +/* 803B49F8 003B1958 90 83 FF F0 */ stw r4, -0x10(r3) +/* 803B49FC 003B195C 90 0D AF A4 */ stw r0, lbl_805A9B64@sda21(r13) +/* 803B4A00 003B1960 4E 80 00 20 */ blr + +.global sub_803b4a04 +sub_803b4a04: +/* 803B4A04 003B1964 38 03 00 1F */ addi r0, r3, 0x1f +/* 803B4A08 003B1968 80 6D AF 94 */ lwz r3, lbl_805A9B54@sda21(r13) +/* 803B4A0C 003B196C 54 07 00 34 */ rlwinm r7, r0, 0, 0, 0x1a +/* 803B4A10 003B1970 38 A0 00 00 */ li r5, 0 +/* 803B4A14 003B1974 38 80 00 00 */ li r4, 0 +/* 803B4A18 003B1978 38 C0 FF FF */ li r6, -1 +/* 803B4A1C 003B197C 48 00 00 34 */ b lbl_803B4A50 +lbl_803B4A20: +/* 803B4A20 003B1980 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803B4A24 003B1984 7C 00 38 40 */ cmplw r0, r7 +/* 803B4A28 003B1988 40 82 00 0C */ bne lbl_803B4A34 +/* 803B4A2C 003B198C 7C 65 1B 78 */ mr r5, r3 +/* 803B4A30 003B1990 48 00 00 28 */ b lbl_803B4A58 +lbl_803B4A34: +/* 803B4A34 003B1994 40 81 00 14 */ ble lbl_803B4A48 +/* 803B4A38 003B1998 7C 06 00 40 */ cmplw r6, r0 +/* 803B4A3C 003B199C 40 81 00 0C */ ble lbl_803B4A48 +/* 803B4A40 003B19A0 7C 65 1B 78 */ mr r5, r3 +/* 803B4A44 003B19A4 7C 06 03 78 */ mr r6, r0 +lbl_803B4A48: +/* 803B4A48 003B19A8 7C 64 1B 78 */ mr r4, r3 +/* 803B4A4C 003B19AC 80 63 00 00 */ lwz r3, 0(r3) +lbl_803B4A50: +/* 803B4A50 003B19B0 28 03 00 00 */ cmplwi r3, 0 +/* 803B4A54 003B19B4 40 82 FF CC */ bne lbl_803B4A20 +lbl_803B4A58: +/* 803B4A58 003B19B8 28 05 00 00 */ cmplwi r5, 0 +/* 803B4A5C 003B19BC 40 82 00 58 */ bne lbl_803B4AB4 +/* 803B4A60 003B19C0 80 8D AF 90 */ lwz r4, lbl_805A9B50@sda21(r13) +/* 803B4A64 003B19C4 28 04 00 00 */ cmplwi r4, 0 +/* 803B4A68 003B19C8 41 82 00 78 */ beq lbl_803B4AE0 +/* 803B4A6C 003B19CC 80 6D AF A4 */ lwz r3, lbl_805A9B64@sda21(r13) +/* 803B4A70 003B19D0 80 0D AF A8 */ lwz r0, lbl_805A9B68@sda21(r13) +/* 803B4A74 003B19D4 7C 67 18 50 */ subf r3, r7, r3 +/* 803B4A78 003B19D8 7C 03 00 40 */ cmplw r3, r0 +/* 803B4A7C 003B19DC 41 80 00 64 */ blt lbl_803B4AE0 +/* 803B4A80 003B19E0 80 04 00 00 */ lwz r0, 0(r4) +/* 803B4A84 003B19E4 7C 85 23 78 */ mr r5, r4 +/* 803B4A88 003B19E8 90 0D AF 90 */ stw r0, lbl_805A9B50@sda21(r13) +/* 803B4A8C 003B19EC 90 E4 00 0C */ stw r7, 0xc(r4) +/* 803B4A90 003B19F0 90 E4 00 08 */ stw r7, 8(r4) +/* 803B4A94 003B19F4 80 0D AF A4 */ lwz r0, lbl_805A9B64@sda21(r13) +/* 803B4A98 003B19F8 7C 07 00 50 */ subf r0, r7, r0 +/* 803B4A9C 003B19FC 90 0D AF A4 */ stw r0, lbl_805A9B64@sda21(r13) +/* 803B4AA0 003B1A00 90 04 00 04 */ stw r0, 4(r4) +/* 803B4AA4 003B1A04 80 0D AF 98 */ lwz r0, lbl_805A9B58@sda21(r13) +/* 803B4AA8 003B1A08 90 04 00 00 */ stw r0, 0(r4) +/* 803B4AAC 003B1A0C 90 8D AF 98 */ stw r4, lbl_805A9B58@sda21(r13) +/* 803B4AB0 003B1A10 48 00 00 30 */ b lbl_803B4AE0 +lbl_803B4AB4: +/* 803B4AB4 003B1A14 28 04 00 00 */ cmplwi r4, 0 +/* 803B4AB8 003B1A18 41 82 00 10 */ beq lbl_803B4AC8 +/* 803B4ABC 003B1A1C 80 05 00 00 */ lwz r0, 0(r5) +/* 803B4AC0 003B1A20 90 04 00 00 */ stw r0, 0(r4) +/* 803B4AC4 003B1A24 48 00 00 0C */ b lbl_803B4AD0 +lbl_803B4AC8: +/* 803B4AC8 003B1A28 80 05 00 00 */ lwz r0, 0(r5) +/* 803B4ACC 003B1A2C 90 0D AF 94 */ stw r0, lbl_805A9B54@sda21(r13) +lbl_803B4AD0: +/* 803B4AD0 003B1A30 90 E5 00 08 */ stw r7, 8(r5) +/* 803B4AD4 003B1A34 80 0D AF 98 */ lwz r0, lbl_805A9B58@sda21(r13) +/* 803B4AD8 003B1A38 90 05 00 00 */ stw r0, 0(r5) +/* 803B4ADC 003B1A3C 90 AD AF 98 */ stw r5, lbl_805A9B58@sda21(r13) +lbl_803B4AE0: +/* 803B4AE0 003B1A40 28 05 00 00 */ cmplwi r5, 0 +/* 803B4AE4 003B1A44 40 82 00 0C */ bne lbl_803B4AF0 +/* 803B4AE8 003B1A48 38 60 00 FF */ li r3, 0xff +/* 803B4AEC 003B1A4C 4E 80 00 20 */ blr +lbl_803B4AF0: +/* 803B4AF0 003B1A50 3C 60 80 56 */ lis r3, lbl_80567498@ha +/* 803B4AF4 003B1A54 38 03 74 98 */ addi r0, r3, lbl_80567498@l +/* 803B4AF8 003B1A58 7C 00 28 50 */ subf r0, r0, r5 +/* 803B4AFC 003B1A5C 7C 00 26 70 */ srawi r0, r0, 4 +/* 803B4B00 003B1A60 7C 00 01 94 */ addze r0, r0 +/* 803B4B04 003B1A64 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803B4B08 003B1A68 4E 80 00 20 */ blr + +.global aramGetStreamBufferAddress +aramGetStreamBufferAddress: +/* 803B4B0C 003B1A6C 28 04 00 00 */ cmplwi r4, 0 +/* 803B4B10 003B1A70 41 82 00 1C */ beq lbl_803B4B2C +/* 803B4B14 003B1A74 3C A0 80 56 */ lis r5, lbl_80567498@ha +/* 803B4B18 003B1A78 54 60 25 36 */ rlwinm r0, r3, 4, 0x14, 0x1b +/* 803B4B1C 003B1A7C 38 A5 74 98 */ addi r5, r5, lbl_80567498@l +/* 803B4B20 003B1A80 7C A5 02 14 */ add r5, r5, r0 +/* 803B4B24 003B1A84 80 05 00 08 */ lwz r0, 8(r5) +/* 803B4B28 003B1A88 90 04 00 00 */ stw r0, 0(r4) +lbl_803B4B2C: +/* 803B4B2C 003B1A8C 3C 80 80 56 */ lis r4, lbl_80567498@ha +/* 803B4B30 003B1A90 54 60 25 36 */ rlwinm r0, r3, 4, 0x14, 0x1b +/* 803B4B34 003B1A94 38 64 74 98 */ addi r3, r4, lbl_80567498@l +/* 803B4B38 003B1A98 7C 63 02 14 */ add r3, r3, r0 +/* 803B4B3C 003B1A9C 80 63 00 04 */ lwz r3, 4(r3) +/* 803B4B40 003B1AA0 4E 80 00 20 */ blr + +.global aramFreeStreamBuffer +aramFreeStreamBuffer: +/* 803B4B44 003B1AA4 3C 80 80 56 */ lis r4, lbl_80567498@ha +/* 803B4B48 003B1AA8 54 63 25 36 */ rlwinm r3, r3, 4, 0x14, 0x1b +/* 803B4B4C 003B1AAC 38 04 74 98 */ addi r0, r4, lbl_80567498@l +/* 803B4B50 003B1AB0 80 AD AF 98 */ lwz r5, lbl_805A9B58@sda21(r13) +/* 803B4B54 003B1AB4 38 C0 00 00 */ li r6, 0 +/* 803B4B58 003B1AB8 7C 80 1A 14 */ add r4, r0, r3 +/* 803B4B5C 003B1ABC 48 00 00 34 */ b lbl_803B4B90 +lbl_803B4B60: +/* 803B4B60 003B1AC0 7C 05 20 40 */ cmplw r5, r4 +/* 803B4B64 003B1AC4 40 82 00 24 */ bne lbl_803B4B88 +/* 803B4B68 003B1AC8 28 06 00 00 */ cmplwi r6, 0 +/* 803B4B6C 003B1ACC 41 82 00 10 */ beq lbl_803B4B7C +/* 803B4B70 003B1AD0 80 04 00 00 */ lwz r0, 0(r4) +/* 803B4B74 003B1AD4 90 06 00 00 */ stw r0, 0(r6) +/* 803B4B78 003B1AD8 48 00 00 20 */ b lbl_803B4B98 +lbl_803B4B7C: +/* 803B4B7C 003B1ADC 80 04 00 00 */ lwz r0, 0(r4) +/* 803B4B80 003B1AE0 90 0D AF 98 */ stw r0, lbl_805A9B58@sda21(r13) +/* 803B4B84 003B1AE4 48 00 00 14 */ b lbl_803B4B98 +lbl_803B4B88: +/* 803B4B88 003B1AE8 7C A6 2B 78 */ mr r6, r5 +/* 803B4B8C 003B1AEC 80 A5 00 00 */ lwz r5, 0(r5) +lbl_803B4B90: +/* 803B4B90 003B1AF0 28 05 00 00 */ cmplwi r5, 0 +/* 803B4B94 003B1AF4 40 82 FF CC */ bne lbl_803B4B60 +lbl_803B4B98: +/* 803B4B98 003B1AF8 80 64 00 04 */ lwz r3, 4(r4) +/* 803B4B9C 003B1AFC 80 0D AF A4 */ lwz r0, lbl_805A9B64@sda21(r13) +/* 803B4BA0 003B1B00 7C 03 00 40 */ cmplw r3, r0 +/* 803B4BA4 003B1B04 40 82 00 88 */ bne lbl_803B4C2C +/* 803B4BA8 003B1B08 80 0D AF 90 */ lwz r0, lbl_805A9B50@sda21(r13) +/* 803B4BAC 003B1B0C 38 A0 FF FF */ li r5, -1 +/* 803B4BB0 003B1B10 80 6D AF 98 */ lwz r3, lbl_805A9B58@sda21(r13) +/* 803B4BB4 003B1B14 90 04 00 00 */ stw r0, 0(r4) +/* 803B4BB8 003B1B18 90 8D AF 90 */ stw r4, lbl_805A9B50@sda21(r13) +/* 803B4BBC 003B1B1C 48 00 00 18 */ b lbl_803B4BD4 +lbl_803B4BC0: +/* 803B4BC0 003B1B20 80 03 00 04 */ lwz r0, 4(r3) +/* 803B4BC4 003B1B24 7C 00 28 40 */ cmplw r0, r5 +/* 803B4BC8 003B1B28 41 81 00 08 */ bgt lbl_803B4BD0 +/* 803B4BCC 003B1B2C 7C 05 03 78 */ mr r5, r0 +lbl_803B4BD0: +/* 803B4BD0 003B1B30 80 63 00 00 */ lwz r3, 0(r3) +lbl_803B4BD4: +/* 803B4BD4 003B1B34 28 03 00 00 */ cmplwi r3, 0 +/* 803B4BD8 003B1B38 40 82 FF E8 */ bne lbl_803B4BC0 +/* 803B4BDC 003B1B3C 80 8D AF 94 */ lwz r4, lbl_805A9B54@sda21(r13) +/* 803B4BE0 003B1B40 48 00 00 28 */ b lbl_803B4C08 +lbl_803B4BE4: +/* 803B4BE4 003B1B44 80 04 00 04 */ lwz r0, 4(r4) +/* 803B4BE8 003B1B48 80 64 00 00 */ lwz r3, 0(r4) +/* 803B4BEC 003B1B4C 7C 00 28 40 */ cmplw r0, r5 +/* 803B4BF0 003B1B50 40 80 00 14 */ bge lbl_803B4C04 +/* 803B4BF4 003B1B54 90 6D AF 94 */ stw r3, lbl_805A9B54@sda21(r13) +/* 803B4BF8 003B1B58 80 0D AF 90 */ lwz r0, lbl_805A9B50@sda21(r13) +/* 803B4BFC 003B1B5C 90 04 00 00 */ stw r0, 0(r4) +/* 803B4C00 003B1B60 90 8D AF 90 */ stw r4, lbl_805A9B50@sda21(r13) +lbl_803B4C04: +/* 803B4C04 003B1B64 7C 64 1B 78 */ mr r4, r3 +lbl_803B4C08: +/* 803B4C08 003B1B68 28 04 00 00 */ cmplwi r4, 0 +/* 803B4C0C 003B1B6C 40 82 FF D8 */ bne lbl_803B4BE4 +/* 803B4C10 003B1B70 3C 05 00 01 */ addis r0, r5, 1 +/* 803B4C14 003B1B74 80 6D AF AC */ lwz r3, lbl_805A9B6C@sda21(r13) +/* 803B4C18 003B1B78 28 00 FF FF */ cmplwi r0, 0xffff +/* 803B4C1C 003B1B7C 41 82 00 08 */ beq lbl_803B4C24 +/* 803B4C20 003B1B80 7C A3 2B 78 */ mr r3, r5 +lbl_803B4C24: +/* 803B4C24 003B1B84 90 6D AF A4 */ stw r3, lbl_805A9B64@sda21(r13) +/* 803B4C28 003B1B88 4E 80 00 20 */ blr +lbl_803B4C2C: +/* 803B4C2C 003B1B8C 80 0D AF 94 */ lwz r0, lbl_805A9B54@sda21(r13) +/* 803B4C30 003B1B90 90 04 00 00 */ stw r0, 0(r4) +/* 803B4C34 003B1B94 90 8D AF 94 */ stw r4, lbl_805A9B54@sda21(r13) +/* 803B4C38 003B1B98 4E 80 00 20 */ blr diff --git a/asm/musyx/hw_dolphin.s b/asm/musyx/hw_dolphin.s new file mode 100644 index 00000000..717c1225 --- /dev/null +++ b/asm/musyx/hw_dolphin.s @@ -0,0 +1,383 @@ +.include "macros.inc" + +.section .text, "ax" + +.global salCallback +salCallback: +/* 803B4C3C 003B1B9C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4C40 003B1BA0 7C 08 02 A6 */ mflr r0 +/* 803B4C44 003B1BA4 38 80 02 80 */ li r4, 0x280 +/* 803B4C48 003B1BA8 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4C4C 003B1BAC 88 AD AF D0 */ lbz r5, lbl_805A9B90@sda21(r13) +/* 803B4C50 003B1BB0 80 6D AF CC */ lwz r3, lbl_805A9B8C@sda21(r13) +/* 803B4C54 003B1BB4 38 A5 00 01 */ addi r5, r5, 1 +/* 803B4C58 003B1BB8 54 A0 F0 02 */ slwi r0, r5, 0x1e +/* 803B4C5C 003B1BBC 3C 63 80 00 */ addis r3, r3, 0x8000 +/* 803B4C60 003B1BC0 54 A5 0F FE */ srwi r5, r5, 0x1f +/* 803B4C64 003B1BC4 7C 05 00 50 */ subf r0, r5, r0 +/* 803B4C68 003B1BC8 54 00 10 3E */ rotlwi r0, r0, 2 +/* 803B4C6C 003B1BCC 7C A0 2A 14 */ add r5, r0, r5 +/* 803B4C70 003B1BD0 54 A0 06 3E */ clrlwi r0, r5, 0x18 +/* 803B4C74 003B1BD4 98 AD AF D0 */ stb r5, lbl_805A9B90@sda21(r13) +/* 803B4C78 003B1BD8 1C 00 02 80 */ mulli r0, r0, 0x280 +/* 803B4C7C 003B1BDC 7C 63 02 14 */ add r3, r3, r0 +/* 803B4C80 003B1BE0 4B FB 83 01 */ bl AIInitDMA +/* 803B4C84 003B1BE4 4B FD 07 3D */ bl OSGetTick +/* 803B4C88 003B1BE8 90 6D AF BC */ stw r3, lbl_805A9B7C@sda21(r13) +/* 803B4C8C 003B1BEC 80 0D AF C8 */ lwz r0, lbl_805A9B88@sda21(r13) +/* 803B4C90 003B1BF0 28 00 00 00 */ cmplwi r0, 0 +/* 803B4C94 003B1BF4 41 82 00 38 */ beq lbl_803B4CCC +/* 803B4C98 003B1BF8 80 0D AF C0 */ lwz r0, lbl_805A9B80@sda21(r13) +/* 803B4C9C 003B1BFC 28 00 00 00 */ cmplwi r0, 0 +/* 803B4CA0 003B1C00 40 82 00 34 */ bne lbl_803B4CD4 +/* 803B4CA4 003B1C04 38 00 00 01 */ li r0, 1 +/* 803B4CA8 003B1C08 90 0D AF C0 */ stw r0, lbl_805A9B80@sda21(r13) +/* 803B4CAC 003B1C0C 4B FC C9 C9 */ bl OSEnableInterrupts +/* 803B4CB0 003B1C10 81 8D AF D4 */ lwz r12, lbl_805A9B94@sda21(r13) +/* 803B4CB4 003B1C14 7D 89 03 A6 */ mtctr r12 +/* 803B4CB8 003B1C18 4E 80 04 21 */ bctrl +/* 803B4CBC 003B1C1C 4B FC C9 A5 */ bl OSDisableInterrupts +/* 803B4CC0 003B1C20 38 00 00 00 */ li r0, 0 +/* 803B4CC4 003B1C24 90 0D AF C0 */ stw r0, lbl_805A9B80@sda21(r13) +/* 803B4CC8 003B1C28 48 00 00 0C */ b lbl_803B4CD4 +lbl_803B4CCC: +/* 803B4CCC 003B1C2C 38 00 00 01 */ li r0, 1 +/* 803B4CD0 003B1C30 90 0D AF C4 */ stw r0, lbl_805A9B84@sda21(r13) +lbl_803B4CD4: +/* 803B4CD4 003B1C34 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4CD8 003B1C38 7C 08 03 A6 */ mtlr r0 +/* 803B4CDC 003B1C3C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4CE0 003B1C40 4E 80 00 20 */ blr + +.global sub_803b4ce4 +sub_803b4ce4: +/* 803B4CE4 003B1C44 38 00 00 01 */ li r0, 1 +/* 803B4CE8 003B1C48 90 0D AF C8 */ stw r0, lbl_805A9B88@sda21(r13) +/* 803B4CEC 003B1C4C 90 0D AF B8 */ stw r0, lbl_805A9B78@sda21(r13) +/* 803B4CF0 003B1C50 4E 80 00 20 */ blr + +.global dspResumeCallback +dspResumeCallback: +/* 803B4CF4 003B1C54 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4CF8 003B1C58 7C 08 02 A6 */ mflr r0 +/* 803B4CFC 003B1C5C 38 60 00 01 */ li r3, 1 +/* 803B4D00 003B1C60 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4D04 003B1C64 90 6D AF C8 */ stw r3, lbl_805A9B88@sda21(r13) +/* 803B4D08 003B1C68 80 0D AF C4 */ lwz r0, lbl_805A9B84@sda21(r13) +/* 803B4D0C 003B1C6C 28 00 00 00 */ cmplwi r0, 0 +/* 803B4D10 003B1C70 41 82 00 38 */ beq lbl_803B4D48 +/* 803B4D14 003B1C74 38 00 00 00 */ li r0, 0 +/* 803B4D18 003B1C78 90 0D AF C4 */ stw r0, lbl_805A9B84@sda21(r13) +/* 803B4D1C 003B1C7C 80 0D AF C0 */ lwz r0, lbl_805A9B80@sda21(r13) +/* 803B4D20 003B1C80 28 00 00 00 */ cmplwi r0, 0 +/* 803B4D24 003B1C84 40 82 00 24 */ bne lbl_803B4D48 +/* 803B4D28 003B1C88 90 6D AF C0 */ stw r3, lbl_805A9B80@sda21(r13) +/* 803B4D2C 003B1C8C 4B FC C9 49 */ bl OSEnableInterrupts +/* 803B4D30 003B1C90 81 8D AF D4 */ lwz r12, lbl_805A9B94@sda21(r13) +/* 803B4D34 003B1C94 7D 89 03 A6 */ mtctr r12 +/* 803B4D38 003B1C98 4E 80 04 21 */ bctrl +/* 803B4D3C 003B1C9C 4B FC C9 25 */ bl OSDisableInterrupts +/* 803B4D40 003B1CA0 38 00 00 00 */ li r0, 0 +/* 803B4D44 003B1CA4 90 0D AF C0 */ stw r0, lbl_805A9B80@sda21(r13) +lbl_803B4D48: +/* 803B4D48 003B1CA8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4D4C 003B1CAC 7C 08 03 A6 */ mtlr r0 +/* 803B4D50 003B1CB0 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4D54 003B1CB4 4E 80 00 20 */ blr + +.global salInitAi +salInitAi: +/* 803B4D58 003B1CB8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4D5C 003B1CBC 7C 08 02 A6 */ mflr r0 +/* 803B4D60 003B1CC0 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4D64 003B1CC4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B4D68 003B1CC8 7C BF 2B 78 */ mr r31, r5 +/* 803B4D6C 003B1CCC 93 C1 00 08 */ stw r30, 8(r1) +/* 803B4D70 003B1CD0 7C 7E 1B 78 */ mr r30, r3 +/* 803B4D74 003B1CD4 38 60 0A 00 */ li r3, 0xa00 +/* 803B4D78 003B1CD8 48 00 03 BD */ bl salMalloc +/* 803B4D7C 003B1CDC 28 03 00 00 */ cmplwi r3, 0 +/* 803B4D80 003B1CE0 90 6D AF CC */ stw r3, lbl_805A9B8C@sda21(r13) +/* 803B4D84 003B1CE4 41 82 00 80 */ beq lbl_803B4E04 +/* 803B4D88 003B1CE8 38 80 00 00 */ li r4, 0 +/* 803B4D8C 003B1CEC 38 A0 0A 00 */ li r5, 0xa00 +/* 803B4D90 003B1CF0 4B C4 E6 19 */ bl memset +/* 803B4D94 003B1CF4 80 6D AF CC */ lwz r3, lbl_805A9B8C@sda21(r13) +/* 803B4D98 003B1CF8 38 80 0A 00 */ li r4, 0xa00 +/* 803B4D9C 003B1CFC 4B FC 9D 15 */ bl DCFlushRange +/* 803B4DA0 003B1D00 38 80 00 01 */ li r4, 1 +/* 803B4DA4 003B1D04 38 00 00 00 */ li r0, 0 +/* 803B4DA8 003B1D08 3C 60 80 3B */ lis r3, salCallback@ha +/* 803B4DAC 003B1D0C 90 0D AF C4 */ stw r0, lbl_805A9B84@sda21(r13) +/* 803B4DB0 003B1D10 38 63 4C 3C */ addi r3, r3, salCallback@l +/* 803B4DB4 003B1D14 90 8D AF C8 */ stw r4, lbl_805A9B88@sda21(r13) +/* 803B4DB8 003B1D18 98 8D AF D0 */ stb r4, lbl_805A9B90@sda21(r13) +/* 803B4DBC 003B1D1C 90 0D AF C0 */ stw r0, lbl_805A9B80@sda21(r13) +/* 803B4DC0 003B1D20 93 CD AF D4 */ stw r30, lbl_805A9B94@sda21(r13) +/* 803B4DC4 003B1D24 4B FB 81 79 */ bl sub_8036cf3c +/* 803B4DC8 003B1D28 88 0D AF D0 */ lbz r0, lbl_805A9B90@sda21(r13) +/* 803B4DCC 003B1D2C 38 80 02 80 */ li r4, 0x280 +/* 803B4DD0 003B1D30 80 6D AF CC */ lwz r3, lbl_805A9B8C@sda21(r13) +/* 803B4DD4 003B1D34 1C 00 02 80 */ mulli r0, r0, 0x280 +/* 803B4DD8 003B1D38 3C 63 80 00 */ addis r3, r3, 0x8000 +/* 803B4DDC 003B1D3C 7C 63 02 14 */ add r3, r3, r0 +/* 803B4DE0 003B1D40 4B FB 81 A1 */ bl AIInitDMA +/* 803B4DE4 003B1D44 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803B4DE8 003B1D48 38 80 00 20 */ li r4, 0x20 +/* 803B4DEC 003B1D4C 38 63 00 50 */ addi r3, r3, lbl_80550050@l +/* 803B4DF0 003B1D50 38 00 7D 00 */ li r0, 0x7d00 +/* 803B4DF4 003B1D54 90 83 00 04 */ stw r4, 4(r3) +/* 803B4DF8 003B1D58 38 60 00 01 */ li r3, 1 +/* 803B4DFC 003B1D5C 90 1F 00 00 */ stw r0, 0(r31) +/* 803B4E00 003B1D60 48 00 00 08 */ b lbl_803B4E08 +lbl_803B4E04: +/* 803B4E04 003B1D64 38 60 00 00 */ li r3, 0 +lbl_803B4E08: +/* 803B4E08 003B1D68 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4E0C 003B1D6C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B4E10 003B1D70 83 C1 00 08 */ lwz r30, 8(r1) +/* 803B4E14 003B1D74 7C 08 03 A6 */ mtlr r0 +/* 803B4E18 003B1D78 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4E1C 003B1D7C 4E 80 00 20 */ blr + +.global sub_803b4e20 +sub_803b4e20: +/* 803B4E20 003B1D80 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4E24 003B1D84 7C 08 02 A6 */ mflr r0 +/* 803B4E28 003B1D88 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4E2C 003B1D8C 4B FB 81 DD */ bl AIStartDMA +/* 803B4E30 003B1D90 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4E34 003B1D94 7C 08 03 A6 */ mtlr r0 +/* 803B4E38 003B1D98 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4E3C 003B1D9C 4E 80 00 20 */ blr + +.global salExitAi +salExitAi: +/* 803B4E40 003B1DA0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4E44 003B1DA4 7C 08 02 A6 */ mflr r0 +/* 803B4E48 003B1DA8 38 60 00 00 */ li r3, 0 +/* 803B4E4C 003B1DAC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4E50 003B1DB0 4B FB 80 ED */ bl sub_8036cf3c +/* 803B4E54 003B1DB4 4B FB 81 CD */ bl AIStopDMA +/* 803B4E58 003B1DB8 80 6D AF CC */ lwz r3, lbl_805A9B8C@sda21(r13) +/* 803B4E5C 003B1DBC 48 00 03 01 */ bl salFree +/* 803B4E60 003B1DC0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4E64 003B1DC4 38 60 00 01 */ li r3, 1 +/* 803B4E68 003B1DC8 7C 08 03 A6 */ mtlr r0 +/* 803B4E6C 003B1DCC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4E70 003B1DD0 4E 80 00 20 */ blr + +.global salAiGetDest +salAiGetDest: +/* 803B4E74 003B1DD4 88 6D AF D0 */ lbz r3, lbl_805A9B90@sda21(r13) +/* 803B4E78 003B1DD8 80 8D AF CC */ lwz r4, lbl_805A9B8C@sda21(r13) +/* 803B4E7C 003B1DDC 38 63 00 02 */ addi r3, r3, 2 +/* 803B4E80 003B1DE0 54 60 F0 02 */ slwi r0, r3, 0x1e +/* 803B4E84 003B1DE4 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803B4E88 003B1DE8 7C 03 00 50 */ subf r0, r3, r0 +/* 803B4E8C 003B1DEC 54 00 10 3E */ rotlwi r0, r0, 2 +/* 803B4E90 003B1DF0 7C 00 1A 14 */ add r0, r0, r3 +/* 803B4E94 003B1DF4 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B4E98 003B1DF8 1C 00 02 80 */ mulli r0, r0, 0x280 +/* 803B4E9C 003B1DFC 7C 64 02 14 */ add r3, r4, r0 +/* 803B4EA0 003B1E00 4E 80 00 20 */ blr + +.global sub_803b4ea4 +sub_803b4ea4: +/* 803B4EA4 003B1E04 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4EA8 003B1E08 7C 08 02 A6 */ mflr r0 +/* 803B4EAC 003B1E0C 3C E0 80 3F */ lis r7, lbl_803F4A80@ha +/* 803B4EB0 003B1E10 3C C0 80 56 */ lis r6, lbl_805678A0@ha +/* 803B4EB4 003B1E14 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4EB8 003B1E18 3C 80 80 3B */ lis r4, sub_803b4ce4@ha +/* 803B4EBC 003B1E1C 3C 60 80 3B */ lis r3, dspResumeCallback@ha +/* 803B4EC0 003B1E20 39 46 78 A0 */ addi r10, r6, lbl_805678A0@l +/* 803B4EC4 003B1E24 A1 2D A0 28 */ lhz r9, lbl_805A8BE8@sda21(r13) +/* 803B4EC8 003B1E28 3C A0 80 56 */ lis r5, lbl_80567900@ha +/* 803B4ECC 003B1E2C 39 00 00 00 */ li r8, 0 +/* 803B4ED0 003B1E30 39 67 4A 80 */ addi r11, r7, lbl_803F4A80@l +/* 803B4ED4 003B1E34 38 E5 79 00 */ addi r7, r5, lbl_80567900@l +/* 803B4ED8 003B1E38 38 03 4C F4 */ addi r0, r3, dspResumeCallback@l +/* 803B4EDC 003B1E3C 38 84 4C E4 */ addi r4, r4, sub_803b4ce4@l +/* 803B4EE0 003B1E40 38 C0 20 00 */ li r6, 0x2000 +/* 803B4EE4 003B1E44 38 A0 00 10 */ li r5, 0x10 +/* 803B4EE8 003B1E48 38 60 00 30 */ li r3, 0x30 +/* 803B4EEC 003B1E4C 91 6A 00 0C */ stw r11, 0xc(r10) +/* 803B4EF0 003B1E50 91 2A 00 10 */ stw r9, 0x10(r10) +/* 803B4EF4 003B1E54 91 0A 00 14 */ stw r8, 0x14(r10) +/* 803B4EF8 003B1E58 90 EA 00 18 */ stw r7, 0x18(r10) +/* 803B4EFC 003B1E5C 90 CA 00 1C */ stw r6, 0x1c(r10) +/* 803B4F00 003B1E60 91 0A 00 20 */ stw r8, 0x20(r10) +/* 803B4F04 003B1E64 B0 AA 00 24 */ sth r5, 0x24(r10) +/* 803B4F08 003B1E68 B0 6A 00 26 */ sth r3, 0x26(r10) +/* 803B4F0C 003B1E6C 90 8A 00 28 */ stw r4, 0x28(r10) +/* 803B4F10 003B1E70 90 0A 00 2C */ stw r0, 0x2c(r10) +/* 803B4F14 003B1E74 91 0A 00 30 */ stw r8, 0x30(r10) +/* 803B4F18 003B1E78 91 0A 00 34 */ stw r8, 0x34(r10) +/* 803B4F1C 003B1E7C 91 0A 00 04 */ stw r8, 4(r10) +/* 803B4F20 003B1E80 4B FB AA E5 */ bl DSPInit +/* 803B4F24 003B1E84 3C 60 80 56 */ lis r3, lbl_805678A0@ha +/* 803B4F28 003B1E88 38 63 78 A0 */ addi r3, r3, lbl_805678A0@l +/* 803B4F2C 003B1E8C 4B FB AC 35 */ bl DSPAddTask +/* 803B4F30 003B1E90 38 00 00 00 */ li r0, 0 +/* 803B4F34 003B1E94 90 0D AF B8 */ stw r0, lbl_805A9B78@sda21(r13) +/* 803B4F38 003B1E98 48 00 01 4D */ bl hwEnableIrq +lbl_803B4F3C: +/* 803B4F3C 003B1E9C 80 0D AF B8 */ lwz r0, lbl_805A9B78@sda21(r13) +/* 803B4F40 003B1EA0 28 00 00 00 */ cmplwi r0, 0 +/* 803B4F44 003B1EA4 41 82 FF F8 */ beq lbl_803B4F3C +/* 803B4F48 003B1EA8 48 00 01 75 */ bl hwDisableIrq +/* 803B4F4C 003B1EAC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4F50 003B1EB0 38 60 00 01 */ li r3, 1 +/* 803B4F54 003B1EB4 7C 08 03 A6 */ mtlr r0 +/* 803B4F58 003B1EB8 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4F5C 003B1EBC 4E 80 00 20 */ blr + +.global sub_803b4f60 +sub_803b4f60: +/* 803B4F60 003B1EC0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4F64 003B1EC4 7C 08 02 A6 */ mflr r0 +/* 803B4F68 003B1EC8 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4F6C 003B1ECC 4B FB AB A5 */ bl DSPHalt +lbl_803B4F70: +/* 803B4F70 003B1ED0 4B FB AB E1 */ bl DSPGetDMAStatus +/* 803B4F74 003B1ED4 28 03 00 00 */ cmplwi r3, 0 +/* 803B4F78 003B1ED8 40 82 FF F8 */ bne lbl_803B4F70 +/* 803B4F7C 003B1EDC 4B FB AB 4D */ bl DSPReset +/* 803B4F80 003B1EE0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4F84 003B1EE4 38 60 00 01 */ li r3, 1 +/* 803B4F88 003B1EE8 7C 08 03 A6 */ mtlr r0 +/* 803B4F8C 003B1EEC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B4F90 003B1EF0 4E 80 00 20 */ blr + +.global salCtrlDsp +salCtrlDsp: +/* 803B4F94 003B1EF4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B4F98 003B1EF8 7C 08 02 A6 */ mflr r0 +/* 803B4F9C 003B1EFC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B4FA0 003B1F00 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B4FA4 003B1F04 7C 7F 1B 78 */ mr r31, r3 +/* 803B4FA8 003B1F08 48 00 00 61 */ bl salGetStartDelay +/* 803B4FAC 003B1F0C 7C 64 1B 78 */ mr r4, r3 +/* 803B4FB0 003B1F10 7F E3 FB 78 */ mr r3, r31 +/* 803B4FB4 003B1F14 4B FF 6B 15 */ bl sub_803abac8 +/* 803B4FB8 003B1F18 38 00 00 00 */ li r0, 0 +/* 803B4FBC 003B1F1C 83 ED AF 40 */ lwz r31, lbl_805A9B00@sda21(r13) +/* 803B4FC0 003B1F20 90 0D AF C8 */ stw r0, lbl_805A9B88@sda21(r13) +/* 803B4FC4 003B1F24 4B FB A8 49 */ bl PPCSync +/* 803B4FC8 003B1F28 A0 0D AF 3C */ lhz r0, lbl_805A9AFC@sda21(r13) +/* 803B4FCC 003B1F2C 64 03 BA BE */ oris r3, r0, 0xbabe +/* 803B4FD0 003B1F30 4B FB AA 21 */ bl DSPSendMailToDSP +lbl_803B4FD4: +/* 803B4FD4 003B1F34 4B FB A9 E5 */ bl DSPCheckMailToDSP +/* 803B4FD8 003B1F38 28 03 00 00 */ cmplwi r3, 0 +/* 803B4FDC 003B1F3C 40 82 FF F8 */ bne lbl_803B4FD4 +/* 803B4FE0 003B1F40 7F E3 FB 78 */ mr r3, r31 +/* 803B4FE4 003B1F44 4B FB AA 0D */ bl DSPSendMailToDSP +lbl_803B4FE8: +/* 803B4FE8 003B1F48 4B FB A9 D1 */ bl DSPCheckMailToDSP +/* 803B4FEC 003B1F4C 28 03 00 00 */ cmplwi r3, 0 +/* 803B4FF0 003B1F50 40 82 FF F8 */ bne lbl_803B4FE8 +/* 803B4FF4 003B1F54 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B4FF8 003B1F58 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B4FFC 003B1F5C 7C 08 03 A6 */ mtlr r0 +/* 803B5000 003B1F60 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5004 003B1F64 4E 80 00 20 */ blr + +.global salGetStartDelay +salGetStartDelay: +/* 803B5008 003B1F68 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B500C 003B1F6C 7C 08 02 A6 */ mflr r0 +/* 803B5010 003B1F70 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5014 003B1F74 4B FD 03 AD */ bl OSGetTick +/* 803B5018 003B1F78 3C A0 80 00 */ lis r5, 0x800000F8@ha +/* 803B501C 003B1F7C 3C 80 43 1C */ lis r4, 0x431BDE83@ha +/* 803B5020 003B1F80 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5) +/* 803B5024 003B1F84 38 84 DE 83 */ addi r4, r4, 0x431BDE83@l +/* 803B5028 003B1F88 80 AD AF BC */ lwz r5, lbl_805A9B7C@sda21(r13) +/* 803B502C 003B1F8C 54 00 F0 BE */ srwi r0, r0, 2 +/* 803B5030 003B1F90 7C 04 00 16 */ mulhwu r0, r4, r0 +/* 803B5034 003B1F94 7C 65 18 50 */ subf r3, r5, r3 +/* 803B5038 003B1F98 54 63 18 38 */ slwi r3, r3, 3 +/* 803B503C 003B1F9C 54 00 8B FE */ srwi r0, r0, 0xf +/* 803B5040 003B1FA0 7C 63 03 96 */ divwu r3, r3, r0 +/* 803B5044 003B1FA4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5048 003B1FA8 7C 08 03 A6 */ mtlr r0 +/* 803B504C 003B1FAC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5050 003B1FB0 4E 80 00 20 */ blr + +.global hwInitIrq +hwInitIrq: +/* 803B5054 003B1FB4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5058 003B1FB8 7C 08 02 A6 */ mflr r0 +/* 803B505C 003B1FBC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5060 003B1FC0 4B FC C6 01 */ bl OSDisableInterrupts +/* 803B5064 003B1FC4 38 00 00 01 */ li r0, 1 +/* 803B5068 003B1FC8 90 6D AF B0 */ stw r3, lbl_805A9B70@sda21(r13) +/* 803B506C 003B1FCC B0 0D AF B4 */ sth r0, lbl_805A9B74@sda21(r13) +/* 803B5070 003B1FD0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5074 003B1FD4 7C 08 03 A6 */ mtlr r0 +/* 803B5078 003B1FD8 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B507C 003B1FDC 4E 80 00 20 */ blr + +.global nullsub_13 +nullsub_13: +/* 803B5080 003B1FE0 4E 80 00 20 */ blr + +.global hwEnableIrq +hwEnableIrq: +/* 803B5084 003B1FE4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5088 003B1FE8 7C 08 02 A6 */ mflr r0 +/* 803B508C 003B1FEC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5090 003B1FF0 A0 6D AF B4 */ lhz r3, lbl_805A9B74@sda21(r13) +/* 803B5094 003B1FF4 38 63 FF FF */ addi r3, r3, -1 +/* 803B5098 003B1FF8 54 60 04 3F */ clrlwi. r0, r3, 0x10 +/* 803B509C 003B1FFC B0 6D AF B4 */ sth r3, lbl_805A9B74@sda21(r13) +/* 803B50A0 003B2000 40 82 00 0C */ bne lbl_803B50AC +/* 803B50A4 003B2004 80 6D AF B0 */ lwz r3, lbl_805A9B70@sda21(r13) +/* 803B50A8 003B2008 4B FC C5 E1 */ bl OSRestoreInterrupts +lbl_803B50AC: +/* 803B50AC 003B200C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B50B0 003B2010 7C 08 03 A6 */ mtlr r0 +/* 803B50B4 003B2014 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B50B8 003B2018 4E 80 00 20 */ blr + +.global hwDisableIrq +hwDisableIrq: +/* 803B50BC 003B201C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B50C0 003B2020 7C 08 02 A6 */ mflr r0 +/* 803B50C4 003B2024 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B50C8 003B2028 A0 6D AF B4 */ lhz r3, lbl_805A9B74@sda21(r13) +/* 803B50CC 003B202C 54 60 04 3F */ clrlwi. r0, r3, 0x10 +/* 803B50D0 003B2030 38 63 00 01 */ addi r3, r3, 1 +/* 803B50D4 003B2034 B0 6D AF B4 */ sth r3, lbl_805A9B74@sda21(r13) +/* 803B50D8 003B2038 40 82 00 0C */ bne lbl_803B50E4 +/* 803B50DC 003B203C 4B FC C5 85 */ bl OSDisableInterrupts +/* 803B50E0 003B2040 90 6D AF B0 */ stw r3, lbl_805A9B70@sda21(r13) +lbl_803B50E4: +/* 803B50E4 003B2044 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B50E8 003B2048 7C 08 03 A6 */ mtlr r0 +/* 803B50EC 003B204C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B50F0 003B2050 4E 80 00 20 */ blr + +.global sub_803b50f4 +sub_803b50f4: +/* 803B50F4 003B2054 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B50F8 003B2058 7C 08 02 A6 */ mflr r0 +/* 803B50FC 003B205C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5100 003B2060 4B FC C5 61 */ bl OSDisableInterrupts +/* 803B5104 003B2064 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5108 003B2068 7C 08 03 A6 */ mtlr r0 +/* 803B510C 003B206C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5110 003B2070 4E 80 00 20 */ blr + +.global sub_803b5114 +sub_803b5114: +/* 803B5114 003B2074 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5118 003B2078 7C 08 02 A6 */ mflr r0 +/* 803B511C 003B207C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5120 003B2080 4B FC C5 55 */ bl OSEnableInterrupts +/* 803B5124 003B2084 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5128 003B2088 7C 08 03 A6 */ mtlr r0 +/* 803B512C 003B208C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5130 003B2090 4E 80 00 20 */ blr diff --git a/asm/musyx/hw_dspctrl.s b/asm/musyx/hw_dspctrl.s new file mode 100644 index 00000000..1a161031 --- /dev/null +++ b/asm/musyx/hw_dspctrl.s @@ -0,0 +1,3643 @@ +.include "macros.inc" + +.section .text, "ax" + +.global salInitDspCtrl +salInitDspCtrl: +/* 803AACFC 003A7C5C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803AAD00 003A7C60 7C 08 02 A6 */ mflr r0 +/* 803AAD04 003A7C64 90 01 00 24 */ stw r0, 0x24(r1) +/* 803AAD08 003A7C68 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803AAD0C 003A7C6C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803AAD10 003A7C70 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803AAD14 003A7C74 93 81 00 10 */ stw r28, 0x10(r1) +/* 803AAD18 003A7C78 7C BC 2B 78 */ mr r28, r5 +/* 803AAD1C 003A7C7C 98 6D AF 8D */ stb r3, lbl_805A9B4D@sda21(r13) +/* 803AAD20 003A7C80 98 8D AF 8C */ stb r4, lbl_805A9B4C@sda21(r13) +/* 803AAD24 003A7C84 48 00 97 D1 */ bl aramGetZeroBuffer +/* 803AAD28 003A7C88 90 6D AF 20 */ stw r3, lbl_805A9AE0@sda21(r13) +/* 803AAD2C 003A7C8C 38 60 08 00 */ li r3, 0x800 +/* 803AAD30 003A7C90 48 00 A4 05 */ bl salMalloc +/* 803AAD34 003A7C94 28 03 00 00 */ cmplwi r3, 0 +/* 803AAD38 003A7C98 90 6D AF 40 */ stw r3, lbl_805A9B00@sda21(r13) +/* 803AAD3C 003A7C9C 41 82 03 50 */ beq lbl_803AB08C +/* 803AAD40 003A7CA0 38 60 02 80 */ li r3, 0x280 +/* 803AAD44 003A7CA4 48 00 A3 F1 */ bl salMalloc +/* 803AAD48 003A7CA8 28 03 00 00 */ cmplwi r3, 0 +/* 803AAD4C 003A7CAC 90 6D AF 4C */ stw r3, lbl_805A9B0C@sda21(r13) +/* 803AAD50 003A7CB0 41 82 03 3C */ beq lbl_803AB08C +/* 803AAD54 003A7CB4 38 80 00 00 */ li r4, 0 +/* 803AAD58 003A7CB8 38 A0 02 80 */ li r5, 0x280 +/* 803AAD5C 003A7CBC 4B C5 86 4D */ bl memset +/* 803AAD60 003A7CC0 80 6D AF 4C */ lwz r3, lbl_805A9B0C@sda21(r13) +/* 803AAD64 003A7CC4 38 80 02 80 */ li r4, 0x280 +/* 803AAD68 003A7CC8 4B FD 3D 49 */ bl DCFlushRange +/* 803AAD6C 003A7CCC 88 0D AF 8D */ lbz r0, lbl_805A9B4D@sda21(r13) +/* 803AAD70 003A7CD0 1C 60 00 F4 */ mulli r3, r0, 0xf4 +/* 803AAD74 003A7CD4 48 00 A3 C1 */ bl salMalloc +/* 803AAD78 003A7CD8 28 03 00 00 */ cmplwi r3, 0 +/* 803AAD7C 003A7CDC 90 6D AF 54 */ stw r3, lbl_805A9B14@sda21(r13) +/* 803AAD80 003A7CE0 41 82 03 0C */ beq lbl_803AB08C +/* 803AAD84 003A7CE4 88 0D AF 8D */ lbz r0, lbl_805A9B4D@sda21(r13) +/* 803AAD88 003A7CE8 54 03 30 32 */ slwi r3, r0, 6 +/* 803AAD8C 003A7CEC 48 00 A3 A9 */ bl salMalloc +/* 803AAD90 003A7CF0 28 03 00 00 */ cmplwi r3, 0 +/* 803AAD94 003A7CF4 90 6D AF 50 */ stw r3, lbl_805A9B10@sda21(r13) +/* 803AAD98 003A7CF8 41 82 02 F4 */ beq lbl_803AB08C +/* 803AAD9C 003A7CFC 88 0D AF 8D */ lbz r0, lbl_805A9B4D@sda21(r13) +/* 803AADA0 003A7D00 54 04 30 32 */ slwi r4, r0, 6 +/* 803AADA4 003A7D04 4B FD 3C E1 */ bl DCInvalidateRange +/* 803AADA8 003A7D08 83 AD AF 50 */ lwz r29, lbl_805A9B10@sda21(r13) +/* 803AADAC 003A7D0C 3B C0 00 00 */ li r30, 0 +/* 803AADB0 003A7D10 3B E0 00 00 */ li r31, 0 +/* 803AADB4 003A7D14 48 00 01 74 */ b lbl_803AAF28 +lbl_803AADB8: +/* 803AADB8 003A7D18 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803AADBC 003A7D1C 38 1F 00 EC */ addi r0, r31, 0xec +/* 803AADC0 003A7D20 39 40 00 00 */ li r10, 0 +/* 803AADC4 003A7D24 38 7F 00 ED */ addi r3, r31, 0xed +/* 803AADC8 003A7D28 7D 44 01 AE */ stbx r10, r4, r0 +/* 803AADCC 003A7D2C 38 FF 00 EE */ addi r7, r31, 0xee +/* 803AADD0 003A7D30 38 DF 00 E4 */ addi r6, r31, 0xe4 +/* 803AADD4 003A7D34 39 00 00 FF */ li r8, 0xff +/* 803AADD8 003A7D38 81 2D AF 54 */ lwz r9, lbl_805A9B14@sda21(r13) +/* 803AADDC 003A7D3C 38 BF 00 E5 */ addi r5, r31, 0xe5 +/* 803AADE0 003A7D40 38 9F 00 E6 */ addi r4, r31, 0xe6 +/* 803AADE4 003A7D44 38 1F 00 E7 */ addi r0, r31, 0xe7 +/* 803AADE8 003A7D48 7D 49 19 AE */ stbx r10, r9, r3 +/* 803AADEC 003A7D4C 38 60 00 BC */ li r3, 0xbc +/* 803AADF0 003A7D50 81 2D AF 54 */ lwz r9, lbl_805A9B14@sda21(r13) +/* 803AADF4 003A7D54 7D 49 39 AE */ stbx r10, r9, r7 +/* 803AADF8 003A7D58 80 ED AF 54 */ lwz r7, lbl_805A9B14@sda21(r13) +/* 803AADFC 003A7D5C 7D 07 31 AE */ stbx r8, r7, r6 +/* 803AAE00 003A7D60 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803AAE04 003A7D64 7D 06 29 AE */ stbx r8, r6, r5 +/* 803AAE08 003A7D68 80 AD AF 54 */ lwz r5, lbl_805A9B14@sda21(r13) +/* 803AAE0C 003A7D6C 7D 05 21 AE */ stbx r8, r5, r4 +/* 803AAE10 003A7D70 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803AAE14 003A7D74 7D 04 01 AE */ stbx r8, r4, r0 +/* 803AAE18 003A7D78 48 00 A3 1D */ bl salMalloc +/* 803AAE1C 003A7D7C 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803AAE20 003A7D80 38 80 00 00 */ li r4, 0 +/* 803AAE24 003A7D84 38 A0 00 BC */ li r5, 0xbc +/* 803AAE28 003A7D88 7C 66 F9 2E */ stwx r3, r6, r31 +/* 803AAE2C 003A7D8C 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAE30 003A7D90 7C 63 F8 2E */ lwzx r3, r3, r31 +/* 803AAE34 003A7D94 4B C5 85 75 */ bl memset +/* 803AAE38 003A7D98 38 60 00 80 */ li r3, 0x80 +/* 803AAE3C 003A7D9C 48 00 A2 F9 */ bl salMalloc +/* 803AAE40 003A7DA0 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803AAE44 003A7DA4 38 1F 00 04 */ addi r0, r31, 4 +/* 803AAE48 003A7DA8 57 A7 84 3E */ srwi r7, r29, 0x10 +/* 803AAE4C 003A7DAC 38 DF 00 08 */ addi r6, r31, 8 +/* 803AAE50 003A7DB0 7C 64 01 2E */ stwx r3, r4, r0 +/* 803AAE54 003A7DB4 38 1F 00 E8 */ addi r0, r31, 0xe8 +/* 803AAE58 003A7DB8 38 A0 FF FF */ li r5, -1 +/* 803AAE5C 003A7DBC 38 80 00 BC */ li r4, 0xbc +/* 803AAE60 003A7DC0 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAE64 003A7DC4 7D 03 F8 2E */ lwzx r8, r3, r31 +/* 803AAE68 003A7DC8 55 03 84 3E */ srwi r3, r8, 0x10 +/* 803AAE6C 003A7DCC B0 68 00 04 */ sth r3, 4(r8) +/* 803AAE70 003A7DD0 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAE74 003A7DD4 7C 63 F8 2E */ lwzx r3, r3, r31 +/* 803AAE78 003A7DD8 B0 63 00 06 */ sth r3, 6(r3) +/* 803AAE7C 003A7DDC 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAE80 003A7DE0 7C 63 FA 14 */ add r3, r3, r31 +/* 803AAE84 003A7DE4 81 03 00 04 */ lwz r8, 4(r3) +/* 803AAE88 003A7DE8 80 63 00 00 */ lwz r3, 0(r3) +/* 803AAE8C 003A7DEC 55 08 84 3E */ srwi r8, r8, 0x10 +/* 803AAE90 003A7DF0 B1 03 00 4E */ sth r8, 0x4e(r3) +/* 803AAE94 003A7DF4 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAE98 003A7DF8 7C 63 FA 14 */ add r3, r3, r31 +/* 803AAE9C 003A7DFC 81 03 00 04 */ lwz r8, 4(r3) +/* 803AAEA0 003A7E00 80 63 00 00 */ lwz r3, 0(r3) +/* 803AAEA4 003A7E04 B1 03 00 50 */ sth r8, 0x50(r3) +/* 803AAEA8 003A7E08 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAEAC 003A7E0C 7C 63 F8 2E */ lwzx r3, r3, r31 +/* 803AAEB0 003A7E10 B0 E3 00 38 */ sth r7, 0x38(r3) +/* 803AAEB4 003A7E14 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAEB8 003A7E18 7C 63 F8 2E */ lwzx r3, r3, r31 +/* 803AAEBC 003A7E1C B3 A3 00 3A */ sth r29, 0x3a(r3) +/* 803AAEC0 003A7E20 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAEC4 003A7E24 7F A3 31 2E */ stwx r29, r3, r6 +/* 803AAEC8 003A7E28 3B BD 00 40 */ addi r29, r29, 0x40 +/* 803AAECC 003A7E2C 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAED0 003A7E30 7C A3 01 2E */ stwx r5, r3, r0 +/* 803AAED4 003A7E34 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAED8 003A7E38 7C 63 F8 2E */ lwzx r3, r3, r31 +/* 803AAEDC 003A7E3C 4B FD 3C 61 */ bl DCStoreRangeNoSync +/* 803AAEE0 003A7E40 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAEE4 003A7E44 38 1F 00 24 */ addi r0, r31, 0x24 +/* 803AAEE8 003A7E48 38 E0 00 00 */ li r7, 0 +/* 803AAEEC 003A7E4C 38 BF 00 28 */ addi r5, r31, 0x28 +/* 803AAEF0 003A7E50 7C E3 01 2E */ stwx r7, r3, r0 +/* 803AAEF4 003A7E54 38 9F 00 2C */ addi r4, r31, 0x2c +/* 803AAEF8 003A7E58 38 7F 00 30 */ addi r3, r31, 0x30 +/* 803AAEFC 003A7E5C 38 1F 00 34 */ addi r0, r31, 0x34 +/* 803AAF00 003A7E60 80 CD AF 54 */ lwz r6, lbl_805A9B14@sda21(r13) +/* 803AAF04 003A7E64 3B FF 00 F4 */ addi r31, r31, 0xf4 +/* 803AAF08 003A7E68 3B DE 00 01 */ addi r30, r30, 1 +/* 803AAF0C 003A7E6C 7C E6 29 2E */ stwx r7, r6, r5 +/* 803AAF10 003A7E70 80 AD AF 54 */ lwz r5, lbl_805A9B14@sda21(r13) +/* 803AAF14 003A7E74 7C E5 21 2E */ stwx r7, r5, r4 +/* 803AAF18 003A7E78 80 8D AF 54 */ lwz r4, lbl_805A9B14@sda21(r13) +/* 803AAF1C 003A7E7C 7C E4 19 2E */ stwx r7, r4, r3 +/* 803AAF20 003A7E80 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AAF24 003A7E84 7C E3 01 2E */ stwx r7, r3, r0 +lbl_803AAF28: +/* 803AAF28 003A7E88 88 0D AF 8D */ lbz r0, lbl_805A9B4D@sda21(r13) +/* 803AAF2C 003A7E8C 7C 1E 00 40 */ cmplw r30, r0 +/* 803AAF30 003A7E90 41 80 FE 88 */ blt lbl_803AADB8 +/* 803AAF34 003A7E94 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AAF38 003A7E98 3B C0 00 00 */ li r30, 0 +/* 803AAF3C 003A7E9C 3B E3 F2 60 */ addi r31, r3, lbl_8055F260@l +/* 803AAF40 003A7EA0 48 00 01 00 */ b lbl_803AB040 +lbl_803AAF44: +/* 803AAF44 003A7EA4 38 00 00 00 */ li r0, 0 +/* 803AAF48 003A7EA8 38 60 00 36 */ li r3, 0x36 +/* 803AAF4C 003A7EAC 98 1F 00 50 */ stb r0, 0x50(r31) +/* 803AAF50 003A7EB0 48 00 A1 E5 */ bl salMalloc +/* 803AAF54 003A7EB4 28 03 00 00 */ cmplwi r3, 0 +/* 803AAF58 003A7EB8 90 7F 00 00 */ stw r3, 0(r31) +/* 803AAF5C 003A7EBC 40 82 00 0C */ bne lbl_803AAF68 +/* 803AAF60 003A7EC0 38 60 00 00 */ li r3, 0 +/* 803AAF64 003A7EC4 48 00 01 2C */ b lbl_803AB090 +lbl_803AAF68: +/* 803AAF68 003A7EC8 38 60 3C 00 */ li r3, 0x3c00 +/* 803AAF6C 003A7ECC 48 00 A1 C9 */ bl salMalloc +/* 803AAF70 003A7ED0 28 03 00 00 */ cmplwi r3, 0 +/* 803AAF74 003A7ED4 90 7F 00 28 */ stw r3, 0x28(r31) +/* 803AAF78 003A7ED8 40 82 00 0C */ bne lbl_803AAF84 +/* 803AAF7C 003A7EDC 38 60 00 00 */ li r3, 0 +/* 803AAF80 003A7EE0 48 00 01 10 */ b lbl_803AB090 +lbl_803AAF84: +/* 803AAF84 003A7EE4 80 7F 00 28 */ lwz r3, 0x28(r31) +/* 803AAF88 003A7EE8 38 80 00 00 */ li r4, 0 +/* 803AAF8C 003A7EEC 38 A0 3C 00 */ li r5, 0x3c00 +/* 803AAF90 003A7EF0 4B C5 84 19 */ bl memset +/* 803AAF94 003A7EF4 80 7F 00 28 */ lwz r3, 0x28(r31) +/* 803AAF98 003A7EF8 38 80 3C 00 */ li r4, 0x3c00 +/* 803AAF9C 003A7EFC 4B FD 3B 75 */ bl DCFlushRangeNoSync +/* 803AAFA0 003A7F00 80 7F 00 28 */ lwz r3, 0x28(r31) +/* 803AAFA4 003A7F04 38 80 00 00 */ li r4, 0 +/* 803AAFA8 003A7F08 38 A0 00 36 */ li r5, 0x36 +/* 803AAFAC 003A7F0C 38 03 07 80 */ addi r0, r3, 0x780 +/* 803AAFB0 003A7F10 90 1F 00 2C */ stw r0, 0x2c(r31) +/* 803AAFB4 003A7F14 80 7F 00 2C */ lwz r3, 0x2c(r31) +/* 803AAFB8 003A7F18 38 03 07 80 */ addi r0, r3, 0x780 +/* 803AAFBC 003A7F1C 90 1F 00 30 */ stw r0, 0x30(r31) +/* 803AAFC0 003A7F20 80 7F 00 30 */ lwz r3, 0x30(r31) +/* 803AAFC4 003A7F24 38 03 07 80 */ addi r0, r3, 0x780 +/* 803AAFC8 003A7F28 90 1F 00 34 */ stw r0, 0x34(r31) +/* 803AAFCC 003A7F2C 80 7F 00 34 */ lwz r3, 0x34(r31) +/* 803AAFD0 003A7F30 38 03 07 80 */ addi r0, r3, 0x780 +/* 803AAFD4 003A7F34 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803AAFD8 003A7F38 80 7F 00 38 */ lwz r3, 0x38(r31) +/* 803AAFDC 003A7F3C 38 03 07 80 */ addi r0, r3, 0x780 +/* 803AAFE0 003A7F40 90 1F 00 3C */ stw r0, 0x3c(r31) +/* 803AAFE4 003A7F44 80 7F 00 3C */ lwz r3, 0x3c(r31) +/* 803AAFE8 003A7F48 38 03 07 80 */ addi r0, r3, 0x780 +/* 803AAFEC 003A7F4C 90 1F 00 40 */ stw r0, 0x40(r31) +/* 803AAFF0 003A7F50 80 7F 00 40 */ lwz r3, 0x40(r31) +/* 803AAFF4 003A7F54 38 03 07 80 */ addi r0, r3, 0x780 +/* 803AAFF8 003A7F58 90 1F 00 44 */ stw r0, 0x44(r31) +/* 803AAFFC 003A7F5C 80 7F 00 00 */ lwz r3, 0(r31) +/* 803AB000 003A7F60 4B C5 83 A9 */ bl memset +/* 803AB004 003A7F64 38 00 00 00 */ li r0, 0 +/* 803AB008 003A7F68 38 80 00 36 */ li r4, 0x36 +/* 803AB00C 003A7F6C 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803AB010 003A7F70 90 1F 00 08 */ stw r0, 8(r31) +/* 803AB014 003A7F74 90 1F 00 04 */ stw r0, 4(r31) +/* 803AB018 003A7F78 90 1F 00 18 */ stw r0, 0x18(r31) +/* 803AB01C 003A7F7C 90 1F 00 14 */ stw r0, 0x14(r31) +/* 803AB020 003A7F80 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803AB024 003A7F84 90 1F 00 24 */ stw r0, 0x24(r31) +/* 803AB028 003A7F88 90 1F 00 20 */ stw r0, 0x20(r31) +/* 803AB02C 003A7F8C 90 1F 00 1C */ stw r0, 0x1c(r31) +/* 803AB030 003A7F90 80 7F 00 00 */ lwz r3, 0(r31) +/* 803AB034 003A7F94 4B FD 3A DD */ bl DCFlushRangeNoSync +/* 803AB038 003A7F98 3B FF 00 BC */ addi r31, r31, 0xbc +/* 803AB03C 003A7F9C 3B DE 00 01 */ addi r30, r30, 1 +lbl_803AB040: +/* 803AB040 003A7FA0 88 0D AF 8C */ lbz r0, lbl_805A9B4C@sda21(r13) +/* 803AB044 003A7FA4 7C 1E 00 40 */ cmplw r30, r0 +/* 803AB048 003A7FA8 41 80 FE FC */ blt lbl_803AAF44 +/* 803AB04C 003A7FAC 7C 1C 00 D0 */ neg r0, r28 +/* 803AB050 003A7FB0 38 60 00 00 */ li r3, 0 +/* 803AB054 003A7FB4 7C 00 E3 78 */ or r0, r0, r28 +/* 803AB058 003A7FB8 38 80 00 01 */ li r4, 1 +/* 803AB05C 003A7FBC 54 05 0F FE */ srwi r5, r0, 0x1f +/* 803AB060 003A7FC0 48 00 01 69 */ bl salActivateStudio +/* 803AB064 003A7FC4 38 60 01 00 */ li r3, 0x100 +/* 803AB068 003A7FC8 48 00 A0 CD */ bl salMalloc +/* 803AB06C 003A7FCC 28 03 00 00 */ cmplwi r3, 0 +/* 803AB070 003A7FD0 90 6D AF 48 */ stw r3, lbl_805A9B08@sda21(r13) +/* 803AB074 003A7FD4 40 82 00 0C */ bne lbl_803AB080 +/* 803AB078 003A7FD8 38 60 00 00 */ li r3, 0 +/* 803AB07C 003A7FDC 48 00 00 14 */ b lbl_803AB090 +lbl_803AB080: +/* 803AB080 003A7FE0 48 00 00 31 */ bl salInitHRTFBuffer +/* 803AB084 003A7FE4 38 60 00 01 */ li r3, 1 +/* 803AB088 003A7FE8 48 00 00 08 */ b lbl_803AB090 +lbl_803AB08C: +/* 803AB08C 003A7FEC 38 60 00 00 */ li r3, 0 +lbl_803AB090: +/* 803AB090 003A7FF0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803AB094 003A7FF4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803AB098 003A7FF8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803AB09C 003A7FFC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803AB0A0 003A8000 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803AB0A4 003A8004 7C 08 03 A6 */ mtlr r0 +/* 803AB0A8 003A8008 38 21 00 20 */ addi r1, r1, 0x20 +/* 803AB0AC 003A800C 4E 80 00 20 */ blr + +.global salInitHRTFBuffer +salInitHRTFBuffer: +/* 803AB0B0 003A8010 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803AB0B4 003A8014 7C 08 02 A6 */ mflr r0 +/* 803AB0B8 003A8018 38 80 00 00 */ li r4, 0 +/* 803AB0BC 003A801C 38 A0 01 00 */ li r5, 0x100 +/* 803AB0C0 003A8020 90 01 00 14 */ stw r0, 0x14(r1) +/* 803AB0C4 003A8024 80 6D AF 48 */ lwz r3, lbl_805A9B08@sda21(r13) +/* 803AB0C8 003A8028 4B C5 82 E1 */ bl memset +/* 803AB0CC 003A802C 80 6D AF 48 */ lwz r3, lbl_805A9B08@sda21(r13) +/* 803AB0D0 003A8030 38 80 01 00 */ li r4, 0x100 +/* 803AB0D4 003A8034 4B FD 3A 3D */ bl DCFlushRangeNoSync +/* 803AB0D8 003A8038 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803AB0DC 003A803C 7C 08 03 A6 */ mtlr r0 +/* 803AB0E0 003A8040 38 21 00 10 */ addi r1, r1, 0x10 +/* 803AB0E4 003A8044 4E 80 00 20 */ blr + +.global salExitDspCtrl +salExitDspCtrl: +/* 803AB0E8 003A8048 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803AB0EC 003A804C 7C 08 02 A6 */ mflr r0 +/* 803AB0F0 003A8050 90 01 00 24 */ stw r0, 0x24(r1) +/* 803AB0F4 003A8054 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803AB0F8 003A8058 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803AB0FC 003A805C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803AB100 003A8060 80 6D AF 48 */ lwz r3, lbl_805A9B08@sda21(r13) +/* 803AB104 003A8064 48 00 A0 59 */ bl salFree +/* 803AB108 003A8068 3B A0 00 00 */ li r29, 0 +/* 803AB10C 003A806C 48 00 00 2C */ b lbl_803AB138 +lbl_803AB110: +/* 803AB110 003A8070 57 A0 06 3E */ clrlwi r0, r29, 0x18 +/* 803AB114 003A8074 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AB118 003A8078 1F E0 00 F4 */ mulli r31, r0, 0xf4 +/* 803AB11C 003A807C 7C 63 F8 2E */ lwzx r3, r3, r31 +/* 803AB120 003A8080 48 00 A0 3D */ bl salFree +/* 803AB124 003A8084 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AB128 003A8088 38 1F 00 04 */ addi r0, r31, 4 +/* 803AB12C 003A808C 7C 63 00 2E */ lwzx r3, r3, r0 +/* 803AB130 003A8090 48 00 A0 2D */ bl salFree +/* 803AB134 003A8094 3B BD 00 01 */ addi r29, r29, 1 +lbl_803AB138: +/* 803AB138 003A8098 88 0D AF 8D */ lbz r0, lbl_805A9B4D@sda21(r13) +/* 803AB13C 003A809C 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 803AB140 003A80A0 7C 03 00 40 */ cmplw r3, r0 +/* 803AB144 003A80A4 41 80 FF CC */ blt lbl_803AB110 +/* 803AB148 003A80A8 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AB14C 003A80AC 3B A0 00 00 */ li r29, 0 +/* 803AB150 003A80B0 3B E3 F2 60 */ addi r31, r3, lbl_8055F260@l +/* 803AB154 003A80B4 48 00 00 24 */ b lbl_803AB178 +lbl_803AB158: +/* 803AB158 003A80B8 57 A0 06 3E */ clrlwi r0, r29, 0x18 +/* 803AB15C 003A80BC 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803AB160 003A80C0 7F DF 02 14 */ add r30, r31, r0 +/* 803AB164 003A80C4 80 7E 00 00 */ lwz r3, 0(r30) +/* 803AB168 003A80C8 48 00 9F F5 */ bl salFree +/* 803AB16C 003A80CC 80 7E 00 28 */ lwz r3, 0x28(r30) +/* 803AB170 003A80D0 48 00 9F ED */ bl salFree +/* 803AB174 003A80D4 3B BD 00 01 */ addi r29, r29, 1 +lbl_803AB178: +/* 803AB178 003A80D8 88 0D AF 8C */ lbz r0, lbl_805A9B4C@sda21(r13) +/* 803AB17C 003A80DC 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 803AB180 003A80E0 7C 03 00 40 */ cmplw r3, r0 +/* 803AB184 003A80E4 41 80 FF D4 */ blt lbl_803AB158 +/* 803AB188 003A80E8 80 6D AF 50 */ lwz r3, lbl_805A9B10@sda21(r13) +/* 803AB18C 003A80EC 48 00 9F D1 */ bl salFree +/* 803AB190 003A80F0 80 6D AF 54 */ lwz r3, lbl_805A9B14@sda21(r13) +/* 803AB194 003A80F4 48 00 9F C9 */ bl salFree +/* 803AB198 003A80F8 80 6D AF 4C */ lwz r3, lbl_805A9B0C@sda21(r13) +/* 803AB19C 003A80FC 48 00 9F C1 */ bl salFree +/* 803AB1A0 003A8100 80 6D AF 40 */ lwz r3, lbl_805A9B00@sda21(r13) +/* 803AB1A4 003A8104 48 00 9F B9 */ bl salFree +/* 803AB1A8 003A8108 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803AB1AC 003A810C 38 60 00 01 */ li r3, 1 +/* 803AB1B0 003A8110 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803AB1B4 003A8114 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803AB1B8 003A8118 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803AB1BC 003A811C 7C 08 03 A6 */ mtlr r0 +/* 803AB1C0 003A8120 38 21 00 20 */ addi r1, r1, 0x20 +/* 803AB1C4 003A8124 4E 80 00 20 */ blr + +.global salActivateStudio +salActivateStudio: +/* 803AB1C8 003A8128 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803AB1CC 003A812C 7C 08 02 A6 */ mflr r0 +/* 803AB1D0 003A8130 90 01 00 24 */ stw r0, 0x24(r1) +/* 803AB1D4 003A8134 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803AB1D8 003A8138 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AB1DC 003A813C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803AB1E0 003A8140 1F E0 00 BC */ mulli r31, r0, 0xbc +/* 803AB1E4 003A8144 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803AB1E8 003A8148 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803AB1EC 003A814C 7C BE 2B 78 */ mr r30, r5 +/* 803AB1F0 003A8150 38 A0 3C 00 */ li r5, 0x3c00 +/* 803AB1F4 003A8154 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803AB1F8 003A8158 7C 9D 23 78 */ mr r29, r4 +/* 803AB1FC 003A815C 38 80 00 00 */ li r4, 0 +/* 803AB200 003A8160 93 81 00 10 */ stw r28, 0x10(r1) +/* 803AB204 003A8164 7F 80 FA 14 */ add r28, r0, r31 +/* 803AB208 003A8168 84 7C 00 28 */ lwzu r3, 0x28(r28) +/* 803AB20C 003A816C 4B C5 81 9D */ bl memset +/* 803AB210 003A8170 80 7C 00 00 */ lwz r3, 0(r28) +/* 803AB214 003A8174 38 80 3C 00 */ li r4, 0x3c00 +/* 803AB218 003A8178 4B FD 38 F9 */ bl DCFlushRangeNoSync +/* 803AB21C 003A817C 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AB220 003A8180 38 80 00 00 */ li r4, 0 +/* 803AB224 003A8184 3B 83 F2 60 */ addi r28, r3, lbl_8055F260@l +/* 803AB228 003A8188 38 A0 00 36 */ li r5, 0x36 +/* 803AB22C 003A818C 7C 7C F8 2E */ lwzx r3, r28, r31 +/* 803AB230 003A8190 4B C5 81 79 */ bl memset +/* 803AB234 003A8194 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AB238 003A8198 38 A0 00 00 */ li r5, 0 +/* 803AB23C 003A819C 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803AB240 003A81A0 38 80 00 36 */ li r4, 0x36 +/* 803AB244 003A81A4 7C 60 FA 14 */ add r3, r0, r31 +/* 803AB248 003A81A8 90 A3 00 0C */ stw r5, 0xc(r3) +/* 803AB24C 003A81AC 90 A3 00 08 */ stw r5, 8(r3) +/* 803AB250 003A81B0 90 A3 00 04 */ stw r5, 4(r3) +/* 803AB254 003A81B4 90 A3 00 18 */ stw r5, 0x18(r3) +/* 803AB258 003A81B8 90 A3 00 14 */ stw r5, 0x14(r3) +/* 803AB25C 003A81BC 90 A3 00 10 */ stw r5, 0x10(r3) +/* 803AB260 003A81C0 90 A3 00 24 */ stw r5, 0x24(r3) +/* 803AB264 003A81C4 90 A3 00 20 */ stw r5, 0x20(r3) +/* 803AB268 003A81C8 90 A3 00 1C */ stw r5, 0x1c(r3) +/* 803AB26C 003A81CC 7C 7C F8 2E */ lwzx r3, r28, r31 +/* 803AB270 003A81D0 4B FD 38 A1 */ bl DCFlushRangeNoSync +/* 803AB274 003A81D4 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AB278 003A81D8 38 80 00 00 */ li r4, 0 +/* 803AB27C 003A81DC 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803AB280 003A81E0 38 A0 07 80 */ li r5, 0x780 +/* 803AB284 003A81E4 7F 80 FA 14 */ add r28, r0, r31 +/* 803AB288 003A81E8 84 7C 00 30 */ lwzu r3, 0x30(r28) +/* 803AB28C 003A81EC 4B C5 81 1D */ bl memset +/* 803AB290 003A81F0 80 7C 00 00 */ lwz r3, 0(r28) +/* 803AB294 003A81F4 38 80 07 80 */ li r4, 0x780 +/* 803AB298 003A81F8 4B FD 38 79 */ bl DCFlushRangeNoSync +/* 803AB29C 003A81FC 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AB2A0 003A8200 38 80 00 00 */ li r4, 0 +/* 803AB2A4 003A8204 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803AB2A8 003A8208 38 A0 07 80 */ li r5, 0x780 +/* 803AB2AC 003A820C 7F 80 FA 14 */ add r28, r0, r31 +/* 803AB2B0 003A8210 84 7C 00 3C */ lwzu r3, 0x3c(r28) +/* 803AB2B4 003A8214 4B C5 80 F5 */ bl memset +/* 803AB2B8 003A8218 80 7C 00 00 */ lwz r3, 0(r28) +/* 803AB2BC 003A821C 38 80 07 80 */ li r4, 0x780 +/* 803AB2C0 003A8220 4B FD 38 51 */ bl DCFlushRangeNoSync +/* 803AB2C4 003A8224 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AB2C8 003A8228 38 80 00 00 */ li r4, 0 +/* 803AB2CC 003A822C 38 63 F2 60 */ addi r3, r3, lbl_8055F260@l +/* 803AB2D0 003A8230 38 00 00 01 */ li r0, 1 +/* 803AB2D4 003A8234 7C 63 FA 14 */ add r3, r3, r31 +/* 803AB2D8 003A8238 90 83 00 48 */ stw r4, 0x48(r3) +/* 803AB2DC 003A823C 90 83 00 4C */ stw r4, 0x4c(r3) +/* 803AB2E0 003A8240 98 03 00 50 */ stb r0, 0x50(r3) +/* 803AB2E4 003A8244 9B A3 00 51 */ stb r29, 0x51(r3) +/* 803AB2E8 003A8248 98 83 00 52 */ stb r4, 0x52(r3) +/* 803AB2EC 003A824C 93 C3 00 54 */ stw r30, 0x54(r3) +/* 803AB2F0 003A8250 90 83 00 B0 */ stw r4, 0xb0(r3) +/* 803AB2F4 003A8254 90 83 00 AC */ stw r4, 0xac(r3) +/* 803AB2F8 003A8258 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803AB2FC 003A825C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803AB300 003A8260 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803AB304 003A8264 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803AB308 003A8268 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803AB30C 003A826C 7C 08 03 A6 */ mtlr r0 +/* 803AB310 003A8270 38 21 00 20 */ addi r1, r1, 0x20 +/* 803AB314 003A8274 4E 80 00 20 */ blr + +.global sub_803ab318 +sub_803ab318: +/* 803AB318 003A8278 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803AB31C 003A827C 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AB320 003A8280 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803AB324 003A8284 38 80 00 00 */ li r4, 0 +/* 803AB328 003A8288 38 63 F2 60 */ addi r3, r3, lbl_8055F260@l +/* 803AB32C 003A828C 7C 63 02 14 */ add r3, r3, r0 +/* 803AB330 003A8290 98 83 00 50 */ stb r4, 0x50(r3) +/* 803AB334 003A8294 4E 80 00 20 */ blr + +.global salCheckVolErrorAndResetDelta +salCheckVolErrorAndResetDelta: +/* 803AB338 003A8298 A1 25 00 00 */ lhz r9, 0(r5) +/* 803AB33C 003A829C 54 C0 04 3E */ clrlwi r0, r6, 0x10 +/* 803AB340 003A82A0 7C 00 48 40 */ cmplw r0, r9 +/* 803AB344 003A82A4 41 82 00 D8 */ beq lbl_803AB41C +/* 803AB348 003A82A8 7D 29 07 34 */ extsh r9, r9 +/* 803AB34C 003A82AC 7C C0 07 34 */ extsh r0, r6 +/* 803AB350 003A82B0 7C 09 00 50 */ subf r0, r9, r0 +/* 803AB354 003A82B4 7C 09 07 34 */ extsh r9, r0 +/* 803AB358 003A82B8 2C 09 00 20 */ cmpwi r9, 0x20 +/* 803AB35C 003A82BC 41 80 00 4C */ blt lbl_803AB3A8 +/* 803AB360 003A82C0 2C 09 00 A0 */ cmpwi r9, 0xa0 +/* 803AB364 003A82C4 40 80 00 44 */ bge lbl_803AB3A8 +/* 803AB368 003A82C8 7D 20 2E 70 */ srawi r0, r9, 5 +/* 803AB36C 003A82CC 7C 06 07 34 */ extsh r6, r0 +/* 803AB370 003A82D0 2C 06 00 05 */ cmpwi r6, 5 +/* 803AB374 003A82D4 40 80 00 14 */ bge lbl_803AB388 +/* 803AB378 003A82D8 54 C3 08 3C */ slwi r3, r6, 1 +/* 803AB37C 003A82DC 7C 07 1A 2E */ lhzx r0, r7, r3 +/* 803AB380 003A82E0 7C 00 43 78 */ or r0, r0, r8 +/* 803AB384 003A82E4 7C 07 1B 2E */ sthx r0, r7, r3 +lbl_803AB388: +/* 803AB388 003A82E8 38 60 00 01 */ li r3, 1 +/* 803AB38C 003A82EC 54 C0 28 34 */ slwi r0, r6, 5 +/* 803AB390 003A82F0 B0 64 00 00 */ sth r3, 0(r4) +/* 803AB394 003A82F4 38 60 00 01 */ li r3, 1 +/* 803AB398 003A82F8 A0 85 00 00 */ lhz r4, 0(r5) +/* 803AB39C 003A82FC 7C 04 02 14 */ add r0, r4, r0 +/* 803AB3A0 003A8300 B0 05 00 00 */ sth r0, 0(r5) +/* 803AB3A4 003A8304 4E 80 00 20 */ blr +lbl_803AB3A8: +/* 803AB3A8 003A8308 2C 09 FF E0 */ cmpwi r9, -32 +/* 803AB3AC 003A830C 41 81 00 54 */ bgt lbl_803AB400 +/* 803AB3B0 003A8310 2C 09 FF 60 */ cmpwi r9, -160 +/* 803AB3B4 003A8314 40 81 00 4C */ ble lbl_803AB400 +/* 803AB3B8 003A8318 7C 09 00 D0 */ neg r0, r9 +/* 803AB3BC 003A831C 7C 00 2E 70 */ srawi r0, r0, 5 +/* 803AB3C0 003A8320 7C 06 07 34 */ extsh r6, r0 +/* 803AB3C4 003A8324 2C 06 00 05 */ cmpwi r6, 5 +/* 803AB3C8 003A8328 40 80 00 14 */ bge lbl_803AB3DC +/* 803AB3CC 003A832C 54 C3 08 3C */ slwi r3, r6, 1 +/* 803AB3D0 003A8330 7C 07 1A 2E */ lhzx r0, r7, r3 +/* 803AB3D4 003A8334 7C 00 43 78 */ or r0, r0, r8 +/* 803AB3D8 003A8338 7C 07 1B 2E */ sthx r0, r7, r3 +lbl_803AB3DC: +/* 803AB3DC 003A833C 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 803AB3E0 003A8340 54 C6 28 34 */ slwi r6, r6, 5 +/* 803AB3E4 003A8344 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l +/* 803AB3E8 003A8348 B0 04 00 00 */ sth r0, 0(r4) +/* 803AB3EC 003A834C 38 60 00 01 */ li r3, 1 +/* 803AB3F0 003A8350 A0 05 00 00 */ lhz r0, 0(r5) +/* 803AB3F4 003A8354 7C 06 00 50 */ subf r0, r6, r0 +/* 803AB3F8 003A8358 B0 05 00 00 */ sth r0, 0(r5) +/* 803AB3FC 003A835C 4E 80 00 20 */ blr +lbl_803AB400: +/* 803AB400 003A8360 54 C0 04 3F */ clrlwi. r0, r6, 0x10 +/* 803AB404 003A8364 40 82 00 18 */ bne lbl_803AB41C +/* 803AB408 003A8368 2C 09 FF E0 */ cmpwi r9, -32 +/* 803AB40C 003A836C 40 81 00 10 */ ble lbl_803AB41C +/* 803AB410 003A8370 38 00 00 00 */ li r0, 0 +/* 803AB414 003A8374 B0 05 00 00 */ sth r0, 0(r5) +/* 803AB418 003A8378 B0 03 00 00 */ sth r0, 0(r3) +lbl_803AB41C: +/* 803AB41C 003A837C 38 00 00 00 */ li r0, 0 +/* 803AB420 003A8380 38 60 00 00 */ li r3, 0 +/* 803AB424 003A8384 B0 04 00 00 */ sth r0, 0(r4) +/* 803AB428 003A8388 4E 80 00 20 */ blr + +.global sal_setup_dspvol +sal_setup_dspvol: +/* 803AB42C 003A838C A0 E4 00 00 */ lhz r7, 0(r4) +/* 803AB430 003A8390 3C C0 66 66 */ lis r6, 0x66666667@ha +/* 803AB434 003A8394 7C A0 07 34 */ extsh r0, r5 +/* 803AB438 003A8398 7C E5 07 34 */ extsh r5, r7 +/* 803AB43C 003A839C 38 C6 66 67 */ addi r6, r6, 0x66666667@l +/* 803AB440 003A83A0 7C 05 00 50 */ subf r0, r5, r0 +/* 803AB444 003A83A4 7C 06 00 96 */ mulhw r0, r6, r0 +/* 803AB448 003A83A8 7C 00 36 70 */ srawi r0, r0, 6 +/* 803AB44C 003A83AC 54 05 0F FE */ srwi r5, r0, 0x1f +/* 803AB450 003A83B0 7C 00 2A 14 */ add r0, r0, r5 +/* 803AB454 003A83B4 B0 03 00 00 */ sth r0, 0(r3) +/* 803AB458 003A83B8 A0 03 00 00 */ lhz r0, 0(r3) +/* 803AB45C 003A83BC A0 64 00 00 */ lhz r3, 0(r4) +/* 803AB460 003A83C0 7C 00 07 34 */ extsh r0, r0 +/* 803AB464 003A83C4 1C 00 00 A0 */ mulli r0, r0, 0xa0 +/* 803AB468 003A83C8 7C 03 02 14 */ add r0, r3, r0 +/* 803AB46C 003A83CC B0 04 00 00 */ sth r0, 0(r4) +/* 803AB470 003A83D0 4E 80 00 20 */ blr + +.global sal_update_hostplayinfo +sal_update_hostplayinfo: +/* 803AB474 003A83D4 80 03 00 8C */ lwz r0, 0x8c(r3) +/* 803AB478 003A83D8 28 00 00 00 */ cmplwi r0, 0 +/* 803AB47C 003A83DC 4C 82 00 20 */ bnelr +/* 803AB480 003A83E0 80 83 00 00 */ lwz r4, 0(r3) +/* 803AB484 003A83E4 A0 04 00 08 */ lhz r0, 8(r4) +/* 803AB488 003A83E8 28 00 00 02 */ cmplwi r0, 2 +/* 803AB48C 003A83EC 41 82 00 10 */ beq lbl_803AB49C +/* 803AB490 003A83F0 80 03 00 E0 */ lwz r0, 0xe0(r3) +/* 803AB494 003A83F4 54 05 28 34 */ slwi r5, r0, 5 +/* 803AB498 003A83F8 48 00 00 08 */ b lbl_803AB4A0 +lbl_803AB49C: +/* 803AB49C 003A83FC 3C A0 00 20 */ lis r5, 0x20 +lbl_803AB4A0: +/* 803AB4A0 003A8400 80 83 00 DC */ lwz r4, 0xdc(r3) +/* 803AB4A4 003A8404 54 A0 80 1E */ slwi r0, r5, 0x10 +/* 803AB4A8 003A8408 7C 04 02 14 */ add r0, r4, r0 +/* 803AB4AC 003A840C 90 03 00 DC */ stw r0, 0xdc(r3) +/* 803AB4B0 003A8410 80 03 00 DC */ lwz r0, 0xdc(r3) +/* 803AB4B4 003A8414 7C 04 00 40 */ cmplw r4, r0 +/* 803AB4B8 003A8418 40 81 00 1C */ ble lbl_803AB4D4 +/* 803AB4BC 003A841C 80 83 00 D8 */ lwz r4, 0xd8(r3) +/* 803AB4C0 003A8420 54 A0 84 3E */ srwi r0, r5, 0x10 +/* 803AB4C4 003A8424 7C 80 22 14 */ add r4, r0, r4 +/* 803AB4C8 003A8428 38 04 00 01 */ addi r0, r4, 1 +/* 803AB4CC 003A842C 90 03 00 D8 */ stw r0, 0xd8(r3) +/* 803AB4D0 003A8430 4E 80 00 20 */ blr +lbl_803AB4D4: +/* 803AB4D4 003A8434 80 83 00 D8 */ lwz r4, 0xd8(r3) +/* 803AB4D8 003A8438 54 A0 84 3E */ srwi r0, r5, 0x10 +/* 803AB4DC 003A843C 7C 04 02 14 */ add r0, r4, r0 +/* 803AB4E0 003A8440 90 03 00 D8 */ stw r0, 0xd8(r3) +/* 803AB4E4 003A8444 4E 80 00 20 */ blr + +.global DoDepopFade +DoDepopFade: +/* 803AB4E8 003A8448 80 05 00 00 */ lwz r0, 0(r5) +/* 803AB4EC 003A844C 2C 00 FF 60 */ cmpwi r0, -160 +/* 803AB4F0 003A8450 41 81 00 3C */ bgt lbl_803AB52C +/* 803AB4F4 003A8454 2C 00 F3 80 */ cmpwi r0, -3200 +/* 803AB4F8 003A8458 41 81 00 0C */ bgt lbl_803AB504 +/* 803AB4FC 003A845C 38 00 00 14 */ li r0, 0x14 +/* 803AB500 003A8460 48 00 00 24 */ b lbl_803AB524 +lbl_803AB504: +/* 803AB504 003A8464 3C C0 66 66 */ lis r6, 0x66666667@ha +/* 803AB508 003A8468 7C 00 00 D0 */ neg r0, r0 +/* 803AB50C 003A846C 38 C6 66 67 */ addi r6, r6, 0x66666667@l +/* 803AB510 003A8470 7C 06 00 96 */ mulhw r0, r6, r0 +/* 803AB514 003A8474 7C 00 36 70 */ srawi r0, r0, 6 +/* 803AB518 003A8478 54 06 0F FE */ srwi r6, r0, 0x1f +/* 803AB51C 003A847C 7C 00 32 14 */ add r0, r0, r6 +/* 803AB520 003A8480 7C 00 07 34 */ extsh r0, r0 +lbl_803AB524: +/* 803AB524 003A8484 B0 04 00 00 */ sth r0, 0(r4) +/* 803AB528 003A8488 48 00 00 4C */ b lbl_803AB574 +lbl_803AB52C: +/* 803AB52C 003A848C 2C 00 00 A0 */ cmpwi r0, 0xa0 +/* 803AB530 003A8490 41 80 00 3C */ blt lbl_803AB56C +/* 803AB534 003A8494 2C 00 0C 80 */ cmpwi r0, 0xc80 +/* 803AB538 003A8498 41 80 00 0C */ blt lbl_803AB544 +/* 803AB53C 003A849C 38 00 FF EC */ li r0, -20 +/* 803AB540 003A84A0 48 00 00 24 */ b lbl_803AB564 +lbl_803AB544: +/* 803AB544 003A84A4 3C C0 66 66 */ lis r6, 0x66666667@ha +/* 803AB548 003A84A8 7C 00 00 D0 */ neg r0, r0 +/* 803AB54C 003A84AC 38 C6 66 67 */ addi r6, r6, 0x66666667@l +/* 803AB550 003A84B0 7C 06 00 96 */ mulhw r0, r6, r0 +/* 803AB554 003A84B4 7C 00 36 70 */ srawi r0, r0, 6 +/* 803AB558 003A84B8 54 06 0F FE */ srwi r6, r0, 0x1f +/* 803AB55C 003A84BC 7C 00 32 14 */ add r0, r0, r6 +/* 803AB560 003A84C0 7C 00 07 34 */ extsh r0, r0 +lbl_803AB564: +/* 803AB564 003A84C4 B0 04 00 00 */ sth r0, 0(r4) +/* 803AB568 003A84C8 48 00 00 0C */ b lbl_803AB574 +lbl_803AB56C: +/* 803AB56C 003A84CC 38 00 00 00 */ li r0, 0 +/* 803AB570 003A84D0 B0 04 00 00 */ sth r0, 0(r4) +lbl_803AB574: +/* 803AB574 003A84D4 80 05 00 00 */ lwz r0, 0(r5) +/* 803AB578 003A84D8 90 03 00 00 */ stw r0, 0(r3) +/* 803AB57C 003A84DC A8 04 00 00 */ lha r0, 0(r4) +/* 803AB580 003A84E0 80 65 00 00 */ lwz r3, 0(r5) +/* 803AB584 003A84E4 1C 00 00 A0 */ mulli r0, r0, 0xa0 +/* 803AB588 003A84E8 7C 03 02 14 */ add r0, r3, r0 +/* 803AB58C 003A84EC 90 05 00 00 */ stw r0, 0(r5) +/* 803AB590 003A84F0 4E 80 00 20 */ blr + +.global sub_803ab594 +sub_803ab594: +/* 803AB594 003A84F4 38 00 00 00 */ li r0, 0 +/* 803AB598 003A84F8 3C A0 00 80 */ lis r5, 0x007FFFFF@ha +/* 803AB59C 003A84FC 98 04 00 ED */ stb r0, 0xed(r4) +/* 803AB5A0 003A8500 38 C5 FF FF */ addi r6, r5, 0x007FFFFF@l +/* 803AB5A4 003A8504 80 A4 00 00 */ lwz r5, 0(r4) +/* 803AB5A8 003A8508 B0 05 00 0E */ sth r0, 0xe(r5) +/* 803AB5AC 003A850C 80 84 00 00 */ lwz r4, 0(r4) +/* 803AB5B0 003A8510 80 A3 00 04 */ lwz r5, 4(r3) +/* 803AB5B4 003A8514 A0 04 00 52 */ lhz r0, 0x52(r4) +/* 803AB5B8 003A8518 7C 00 07 34 */ extsh r0, r0 +/* 803AB5BC 003A851C 7C 05 02 14 */ add r0, r5, r0 +/* 803AB5C0 003A8520 90 03 00 04 */ stw r0, 4(r3) +/* 803AB5C4 003A8524 80 03 00 04 */ lwz r0, 4(r3) +/* 803AB5C8 003A8528 7C 00 30 00 */ cmpw r0, r6 +/* 803AB5CC 003A852C 40 81 00 08 */ ble lbl_803AB5D4 +/* 803AB5D0 003A8530 48 00 00 1C */ b lbl_803AB5EC +lbl_803AB5D4: +/* 803AB5D4 003A8534 3C A0 FF 80 */ lis r5, 0xFF800001@ha +/* 803AB5D8 003A8538 38 C5 00 01 */ addi r6, r5, 0xFF800001@l +/* 803AB5DC 003A853C 7C 00 30 00 */ cmpw r0, r6 +/* 803AB5E0 003A8540 40 80 00 08 */ bge lbl_803AB5E8 +/* 803AB5E4 003A8544 48 00 00 08 */ b lbl_803AB5EC +lbl_803AB5E8: +/* 803AB5E8 003A8548 7C 06 03 78 */ mr r6, r0 +lbl_803AB5EC: +/* 803AB5EC 003A854C 90 C3 00 04 */ stw r6, 4(r3) +/* 803AB5F0 003A8550 3C A0 00 80 */ lis r5, 0x007FFFFF@ha +/* 803AB5F4 003A8554 38 C5 FF FF */ addi r6, r5, 0x007FFFFF@l +/* 803AB5F8 003A8558 A0 04 00 58 */ lhz r0, 0x58(r4) +/* 803AB5FC 003A855C 80 A3 00 08 */ lwz r5, 8(r3) +/* 803AB600 003A8560 7C 00 07 34 */ extsh r0, r0 +/* 803AB604 003A8564 7C 05 02 14 */ add r0, r5, r0 +/* 803AB608 003A8568 90 03 00 08 */ stw r0, 8(r3) +/* 803AB60C 003A856C 80 03 00 08 */ lwz r0, 8(r3) +/* 803AB610 003A8570 7C 00 30 00 */ cmpw r0, r6 +/* 803AB614 003A8574 40 81 00 08 */ ble lbl_803AB61C +/* 803AB618 003A8578 48 00 00 1C */ b lbl_803AB634 +lbl_803AB61C: +/* 803AB61C 003A857C 3C A0 FF 80 */ lis r5, 0xFF800001@ha +/* 803AB620 003A8580 38 C5 00 01 */ addi r6, r5, 0xFF800001@l +/* 803AB624 003A8584 7C 00 30 00 */ cmpw r0, r6 +/* 803AB628 003A8588 40 80 00 08 */ bge lbl_803AB630 +/* 803AB62C 003A858C 48 00 00 08 */ b lbl_803AB634 +lbl_803AB630: +/* 803AB630 003A8590 7C 06 03 78 */ mr r6, r0 +lbl_803AB634: +/* 803AB634 003A8594 90 C3 00 08 */ stw r6, 8(r3) +/* 803AB638 003A8598 A0 04 00 0C */ lhz r0, 0xc(r4) +/* 803AB63C 003A859C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803AB640 003A85A0 41 82 00 4C */ beq lbl_803AB68C +/* 803AB644 003A85A4 A0 04 00 5E */ lhz r0, 0x5e(r4) +/* 803AB648 003A85A8 3C A0 00 80 */ lis r5, 0x007FFFFF@ha +/* 803AB64C 003A85AC 80 C3 00 0C */ lwz r6, 0xc(r3) +/* 803AB650 003A85B0 38 A5 FF FF */ addi r5, r5, 0x007FFFFF@l +/* 803AB654 003A85B4 7C 00 07 34 */ extsh r0, r0 +/* 803AB658 003A85B8 7C 06 02 14 */ add r0, r6, r0 +/* 803AB65C 003A85BC 90 03 00 0C */ stw r0, 0xc(r3) +/* 803AB660 003A85C0 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803AB664 003A85C4 7C 00 28 00 */ cmpw r0, r5 +/* 803AB668 003A85C8 40 81 00 08 */ ble lbl_803AB670 +/* 803AB66C 003A85CC 48 00 00 1C */ b lbl_803AB688 +lbl_803AB670: +/* 803AB670 003A85D0 3C A0 FF 80 */ lis r5, 0xFF800001@ha +/* 803AB674 003A85D4 38 A5 00 01 */ addi r5, r5, 0xFF800001@l +/* 803AB678 003A85D8 7C 00 28 00 */ cmpw r0, r5 +/* 803AB67C 003A85DC 40 80 00 08 */ bge lbl_803AB684 +/* 803AB680 003A85E0 48 00 00 08 */ b lbl_803AB688 +lbl_803AB684: +/* 803AB684 003A85E4 7C 05 03 78 */ mr r5, r0 +lbl_803AB688: +/* 803AB688 003A85E8 90 A3 00 0C */ stw r5, 0xc(r3) +lbl_803AB68C: +/* 803AB68C 003A85EC A0 04 00 0C */ lhz r0, 0xc(r4) +/* 803AB690 003A85F0 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803AB694 003A85F4 41 82 00 E8 */ beq lbl_803AB77C +/* 803AB698 003A85F8 A0 04 00 54 */ lhz r0, 0x54(r4) +/* 803AB69C 003A85FC 3C A0 00 80 */ lis r5, 0x007FFFFF@ha +/* 803AB6A0 003A8600 80 C3 00 10 */ lwz r6, 0x10(r3) +/* 803AB6A4 003A8604 38 A5 FF FF */ addi r5, r5, 0x007FFFFF@l +/* 803AB6A8 003A8608 7C 00 07 34 */ extsh r0, r0 +/* 803AB6AC 003A860C 7C 06 02 14 */ add r0, r6, r0 +/* 803AB6B0 003A8610 90 03 00 10 */ stw r0, 0x10(r3) +/* 803AB6B4 003A8614 80 03 00 10 */ lwz r0, 0x10(r3) +/* 803AB6B8 003A8618 7C 00 28 00 */ cmpw r0, r5 +/* 803AB6BC 003A861C 40 81 00 08 */ ble lbl_803AB6C4 +/* 803AB6C0 003A8620 48 00 00 1C */ b lbl_803AB6DC +lbl_803AB6C4: +/* 803AB6C4 003A8624 3C A0 FF 80 */ lis r5, 0xFF800001@ha +/* 803AB6C8 003A8628 38 A5 00 01 */ addi r5, r5, 0xFF800001@l +/* 803AB6CC 003A862C 7C 00 28 00 */ cmpw r0, r5 +/* 803AB6D0 003A8630 40 80 00 08 */ bge lbl_803AB6D8 +/* 803AB6D4 003A8634 48 00 00 08 */ b lbl_803AB6DC +lbl_803AB6D8: +/* 803AB6D8 003A8638 7C 05 03 78 */ mr r5, r0 +lbl_803AB6DC: +/* 803AB6DC 003A863C 90 A3 00 10 */ stw r5, 0x10(r3) +/* 803AB6E0 003A8640 3C A0 00 80 */ lis r5, 0x007FFFFF@ha +/* 803AB6E4 003A8644 38 C5 FF FF */ addi r6, r5, 0x007FFFFF@l +/* 803AB6E8 003A8648 A0 04 00 5A */ lhz r0, 0x5a(r4) +/* 803AB6EC 003A864C 80 A3 00 14 */ lwz r5, 0x14(r3) +/* 803AB6F0 003A8650 7C 00 07 34 */ extsh r0, r0 +/* 803AB6F4 003A8654 7C 05 02 14 */ add r0, r5, r0 +/* 803AB6F8 003A8658 90 03 00 14 */ stw r0, 0x14(r3) +/* 803AB6FC 003A865C 80 03 00 14 */ lwz r0, 0x14(r3) +/* 803AB700 003A8660 7C 00 30 00 */ cmpw r0, r6 +/* 803AB704 003A8664 40 81 00 08 */ ble lbl_803AB70C +/* 803AB708 003A8668 48 00 00 1C */ b lbl_803AB724 +lbl_803AB70C: +/* 803AB70C 003A866C 3C A0 FF 80 */ lis r5, 0xFF800001@ha +/* 803AB710 003A8670 38 C5 00 01 */ addi r6, r5, 0xFF800001@l +/* 803AB714 003A8674 7C 00 30 00 */ cmpw r0, r6 +/* 803AB718 003A8678 40 80 00 08 */ bge lbl_803AB720 +/* 803AB71C 003A867C 48 00 00 08 */ b lbl_803AB724 +lbl_803AB720: +/* 803AB720 003A8680 7C 06 03 78 */ mr r6, r0 +lbl_803AB724: +/* 803AB724 003A8684 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803AB728 003A8688 A0 04 00 0C */ lhz r0, 0xc(r4) +/* 803AB72C 003A868C 70 00 00 14 */ andi. r0, r0, 0x14 +/* 803AB730 003A8690 41 82 00 4C */ beq lbl_803AB77C +/* 803AB734 003A8694 A0 04 00 60 */ lhz r0, 0x60(r4) +/* 803AB738 003A8698 3C A0 00 80 */ lis r5, 0x007FFFFF@ha +/* 803AB73C 003A869C 80 C3 00 18 */ lwz r6, 0x18(r3) +/* 803AB740 003A86A0 38 A5 FF FF */ addi r5, r5, 0x007FFFFF@l +/* 803AB744 003A86A4 7C 00 07 34 */ extsh r0, r0 +/* 803AB748 003A86A8 7C 06 02 14 */ add r0, r6, r0 +/* 803AB74C 003A86AC 90 03 00 18 */ stw r0, 0x18(r3) +/* 803AB750 003A86B0 80 03 00 18 */ lwz r0, 0x18(r3) +/* 803AB754 003A86B4 7C 00 28 00 */ cmpw r0, r5 +/* 803AB758 003A86B8 40 81 00 08 */ ble lbl_803AB760 +/* 803AB75C 003A86BC 48 00 00 1C */ b lbl_803AB778 +lbl_803AB760: +/* 803AB760 003A86C0 3C A0 FF 80 */ lis r5, 0xFF800001@ha +/* 803AB764 003A86C4 38 A5 00 01 */ addi r5, r5, 0xFF800001@l +/* 803AB768 003A86C8 7C 00 28 00 */ cmpw r0, r5 +/* 803AB76C 003A86CC 40 80 00 08 */ bge lbl_803AB774 +/* 803AB770 003A86D0 48 00 00 08 */ b lbl_803AB778 +lbl_803AB774: +/* 803AB774 003A86D4 7C 05 03 78 */ mr r5, r0 +lbl_803AB778: +/* 803AB778 003A86D8 90 A3 00 18 */ stw r5, 0x18(r3) +lbl_803AB77C: +/* 803AB77C 003A86DC A0 04 00 0C */ lhz r0, 0xc(r4) +/* 803AB780 003A86E0 70 00 00 12 */ andi. r0, r0, 0x12 +/* 803AB784 003A86E4 4D 82 00 20 */ beqlr +/* 803AB788 003A86E8 A0 04 00 56 */ lhz r0, 0x56(r4) +/* 803AB78C 003A86EC 3C A0 00 80 */ lis r5, 0x007FFFFF@ha +/* 803AB790 003A86F0 80 C3 00 1C */ lwz r6, 0x1c(r3) +/* 803AB794 003A86F4 38 A5 FF FF */ addi r5, r5, 0x007FFFFF@l +/* 803AB798 003A86F8 7C 00 07 34 */ extsh r0, r0 +/* 803AB79C 003A86FC 7C 06 02 14 */ add r0, r6, r0 +/* 803AB7A0 003A8700 90 03 00 1C */ stw r0, 0x1c(r3) +/* 803AB7A4 003A8704 80 03 00 1C */ lwz r0, 0x1c(r3) +/* 803AB7A8 003A8708 7C 00 28 00 */ cmpw r0, r5 +/* 803AB7AC 003A870C 40 81 00 08 */ ble lbl_803AB7B4 +/* 803AB7B0 003A8710 48 00 00 1C */ b lbl_803AB7CC +lbl_803AB7B4: +/* 803AB7B4 003A8714 3C A0 FF 80 */ lis r5, 0xFF800001@ha +/* 803AB7B8 003A8718 38 A5 00 01 */ addi r5, r5, 0xFF800001@l +/* 803AB7BC 003A871C 7C 00 28 00 */ cmpw r0, r5 +/* 803AB7C0 003A8720 40 80 00 08 */ bge lbl_803AB7C8 +/* 803AB7C4 003A8724 48 00 00 08 */ b lbl_803AB7CC +lbl_803AB7C8: +/* 803AB7C8 003A8728 7C 05 03 78 */ mr r5, r0 +lbl_803AB7CC: +/* 803AB7CC 003A872C 90 A3 00 1C */ stw r5, 0x1c(r3) +/* 803AB7D0 003A8730 3C A0 00 80 */ lis r5, 0x007FFFFF@ha +/* 803AB7D4 003A8734 38 C5 FF FF */ addi r6, r5, 0x007FFFFF@l +/* 803AB7D8 003A8738 A0 04 00 5C */ lhz r0, 0x5c(r4) +/* 803AB7DC 003A873C 80 A3 00 20 */ lwz r5, 0x20(r3) +/* 803AB7E0 003A8740 7C 00 07 34 */ extsh r0, r0 +/* 803AB7E4 003A8744 7C 05 02 14 */ add r0, r5, r0 +/* 803AB7E8 003A8748 90 03 00 20 */ stw r0, 0x20(r3) +/* 803AB7EC 003A874C 80 03 00 20 */ lwz r0, 0x20(r3) +/* 803AB7F0 003A8750 7C 00 30 00 */ cmpw r0, r6 +/* 803AB7F4 003A8754 40 81 00 08 */ ble lbl_803AB7FC +/* 803AB7F8 003A8758 48 00 00 1C */ b lbl_803AB814 +lbl_803AB7FC: +/* 803AB7FC 003A875C 3C A0 FF 80 */ lis r5, 0xFF800001@ha +/* 803AB800 003A8760 38 C5 00 01 */ addi r6, r5, 0xFF800001@l +/* 803AB804 003A8764 7C 00 30 00 */ cmpw r0, r6 +/* 803AB808 003A8768 40 80 00 08 */ bge lbl_803AB810 +/* 803AB80C 003A876C 48 00 00 08 */ b lbl_803AB814 +lbl_803AB810: +/* 803AB810 003A8770 7C 06 03 78 */ mr r6, r0 +lbl_803AB814: +/* 803AB814 003A8774 90 C3 00 20 */ stw r6, 0x20(r3) +/* 803AB818 003A8778 A0 04 00 0C */ lhz r0, 0xc(r4) +/* 803AB81C 003A877C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803AB820 003A8780 4D 82 00 20 */ beqlr +/* 803AB824 003A8784 A0 04 00 62 */ lhz r0, 0x62(r4) +/* 803AB828 003A8788 3C 80 00 80 */ lis r4, 0x007FFFFF@ha +/* 803AB82C 003A878C 80 A3 00 24 */ lwz r5, 0x24(r3) +/* 803AB830 003A8790 38 84 FF FF */ addi r4, r4, 0x007FFFFF@l +/* 803AB834 003A8794 7C 00 07 34 */ extsh r0, r0 +/* 803AB838 003A8798 7C 05 02 14 */ add r0, r5, r0 +/* 803AB83C 003A879C 90 03 00 24 */ stw r0, 0x24(r3) +/* 803AB840 003A87A0 80 03 00 24 */ lwz r0, 0x24(r3) +/* 803AB844 003A87A4 7C 00 20 00 */ cmpw r0, r4 +/* 803AB848 003A87A8 40 81 00 08 */ ble lbl_803AB850 +/* 803AB84C 003A87AC 48 00 00 1C */ b lbl_803AB868 +lbl_803AB850: +/* 803AB850 003A87B0 3C 80 FF 80 */ lis r4, 0xFF800001@ha +/* 803AB854 003A87B4 38 84 00 01 */ addi r4, r4, 0xFF800001@l +/* 803AB858 003A87B8 7C 00 20 00 */ cmpw r0, r4 +/* 803AB85C 003A87BC 40 80 00 08 */ bge lbl_803AB864 +/* 803AB860 003A87C0 48 00 00 08 */ b lbl_803AB868 +lbl_803AB864: +/* 803AB864 003A87C4 7C 04 03 78 */ mr r4, r0 +lbl_803AB868: +/* 803AB868 003A87C8 90 83 00 24 */ stw r4, 0x24(r3) +/* 803AB86C 003A87CC 4E 80 00 20 */ blr + +.global SortVoices +SortVoices: +/* 803AB870 003A87D0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803AB874 003A87D4 7C 08 02 A6 */ mflr r0 +/* 803AB878 003A87D8 90 01 00 24 */ stw r0, 0x24(r1) +/* 803AB87C 003A87DC 39 61 00 20 */ addi r11, r1, 0x20 +/* 803AB880 003A87E0 4B FD E1 F9 */ bl func_80389A78 +/* 803AB884 003A87E4 7C BB 2B 78 */ mr r27, r5 +/* 803AB888 003A87E8 7C 7A 1B 78 */ mr r26, r3 +/* 803AB88C 003A87EC 7C 04 D8 00 */ cmpw r4, r27 +/* 803AB890 003A87F0 40 80 02 20 */ bge lbl_803ABAB0 +/* 803AB894 003A87F4 7C 64 DA 14 */ add r3, r4, r27 +/* 803AB898 003A87F8 54 85 10 3A */ slwi r5, r4, 2 +/* 803AB89C 003A87FC 54 60 0F FE */ srwi r0, r3, 0x1f +/* 803AB8A0 003A8800 39 44 00 01 */ addi r10, r4, 1 +/* 803AB8A4 003A8804 7C 00 1A 14 */ add r0, r0, r3 +/* 803AB8A8 003A8808 7C DA 2A 14 */ add r6, r26, r5 +/* 803AB8AC 003A880C 7C 03 0E 70 */ srawi r3, r0, 1 +/* 803AB8B0 003A8810 38 1B 00 01 */ addi r0, r27, 1 +/* 803AB8B4 003A8814 54 67 10 3A */ slwi r7, r3, 2 +/* 803AB8B8 003A8818 55 43 10 3A */ slwi r3, r10, 2 +/* 803AB8BC 003A881C 81 66 00 00 */ lwz r11, 0(r6) +/* 803AB8C0 003A8820 7C 0A 00 50 */ subf r0, r10, r0 +/* 803AB8C4 003A8824 7C BA 38 2E */ lwzx r5, r26, r7 +/* 803AB8C8 003A8828 7C 9C 23 78 */ mr r28, r4 +/* 803AB8CC 003A882C 7C C9 33 78 */ mr r9, r6 +/* 803AB8D0 003A8830 7D 1A 1A 14 */ add r8, r26, r3 +/* 803AB8D4 003A8834 90 A6 00 00 */ stw r5, 0(r6) +/* 803AB8D8 003A8838 7D 7A 39 2E */ stwx r11, r26, r7 +/* 803AB8DC 003A883C 7C 09 03 A6 */ mtctr r0 +/* 803AB8E0 003A8840 7C 0A D8 00 */ cmpw r10, r27 +/* 803AB8E4 003A8844 41 81 00 34 */ bgt lbl_803AB918 +lbl_803AB8E8: +/* 803AB8E8 003A8848 80 E8 00 00 */ lwz r7, 0(r8) +/* 803AB8EC 003A884C 80 66 00 00 */ lwz r3, 0(r6) +/* 803AB8F0 003A8850 80 A7 00 1C */ lwz r5, 0x1c(r7) +/* 803AB8F4 003A8854 80 03 00 1C */ lwz r0, 0x1c(r3) +/* 803AB8F8 003A8858 7C 05 00 40 */ cmplw r5, r0 +/* 803AB8FC 003A885C 40 80 00 14 */ bge lbl_803AB910 +/* 803AB900 003A8860 80 09 00 04 */ lwz r0, 4(r9) +/* 803AB904 003A8864 3B 9C 00 01 */ addi r28, r28, 1 +/* 803AB908 003A8868 94 E9 00 04 */ stwu r7, 4(r9) +/* 803AB90C 003A886C 90 08 00 00 */ stw r0, 0(r8) +lbl_803AB910: +/* 803AB910 003A8870 39 08 00 04 */ addi r8, r8, 4 +/* 803AB914 003A8874 42 00 FF D4 */ bdnz lbl_803AB8E8 +lbl_803AB918: +/* 803AB918 003A8878 57 9D 10 3A */ slwi r29, r28, 2 +/* 803AB91C 003A887C 39 1C FF FF */ addi r8, r28, -1 +/* 803AB920 003A8880 7F DA EA 14 */ add r30, r26, r29 +/* 803AB924 003A8884 80 66 00 00 */ lwz r3, 0(r6) +/* 803AB928 003A8888 80 1E 00 00 */ lwz r0, 0(r30) +/* 803AB92C 003A888C 7C 04 40 00 */ cmpw r4, r8 +/* 803AB930 003A8890 90 06 00 00 */ stw r0, 0(r6) +/* 803AB934 003A8894 90 7E 00 00 */ stw r3, 0(r30) +/* 803AB938 003A8898 40 80 00 B4 */ bge lbl_803AB9EC +/* 803AB93C 003A889C 7C 7C 22 14 */ add r3, r28, r4 +/* 803AB940 003A88A0 39 44 00 01 */ addi r10, r4, 1 +/* 803AB944 003A88A4 38 E3 FF FF */ addi r7, r3, -1 +/* 803AB948 003A88A8 38 08 00 01 */ addi r0, r8, 1 +/* 803AB94C 003A88AC 54 E5 0F FE */ srwi r5, r7, 0x1f +/* 803AB950 003A88B0 55 43 10 3A */ slwi r3, r10, 2 +/* 803AB954 003A88B4 7C A5 3A 14 */ add r5, r5, r7 +/* 803AB958 003A88B8 81 26 00 00 */ lwz r9, 0(r6) +/* 803AB95C 003A88BC 7C A5 0E 70 */ srawi r5, r5, 1 +/* 803AB960 003A88C0 7C 0A 00 50 */ subf r0, r10, r0 +/* 803AB964 003A88C4 54 A7 10 3A */ slwi r7, r5, 2 +/* 803AB968 003A88C8 7C 9F 23 78 */ mr r31, r4 +/* 803AB96C 003A88CC 7C BA 38 2E */ lwzx r5, r26, r7 +/* 803AB970 003A88D0 7C CC 33 78 */ mr r12, r6 +/* 803AB974 003A88D4 7D 7A 1A 14 */ add r11, r26, r3 +/* 803AB978 003A88D8 90 A6 00 00 */ stw r5, 0(r6) +/* 803AB97C 003A88DC 7D 3A 39 2E */ stwx r9, r26, r7 +/* 803AB980 003A88E0 7C 09 03 A6 */ mtctr r0 +/* 803AB984 003A88E4 7C 0A 40 00 */ cmpw r10, r8 +/* 803AB988 003A88E8 41 81 00 34 */ bgt lbl_803AB9BC +lbl_803AB98C: +/* 803AB98C 003A88EC 80 EB 00 00 */ lwz r7, 0(r11) +/* 803AB990 003A88F0 80 66 00 00 */ lwz r3, 0(r6) +/* 803AB994 003A88F4 80 A7 00 1C */ lwz r5, 0x1c(r7) +/* 803AB998 003A88F8 80 03 00 1C */ lwz r0, 0x1c(r3) +/* 803AB99C 003A88FC 7C 05 00 40 */ cmplw r5, r0 +/* 803AB9A0 003A8900 40 80 00 14 */ bge lbl_803AB9B4 +/* 803AB9A4 003A8904 80 0C 00 04 */ lwz r0, 4(r12) +/* 803AB9A8 003A8908 3B FF 00 01 */ addi r31, r31, 1 +/* 803AB9AC 003A890C 94 EC 00 04 */ stwu r7, 4(r12) +/* 803AB9B0 003A8910 90 0B 00 00 */ stw r0, 0(r11) +lbl_803AB9B4: +/* 803AB9B4 003A8914 39 6B 00 04 */ addi r11, r11, 4 +/* 803AB9B8 003A8918 42 00 FF D4 */ bdnz lbl_803AB98C +lbl_803AB9BC: +/* 803AB9BC 003A891C 57 E7 10 3A */ slwi r7, r31, 2 +/* 803AB9C0 003A8920 81 06 00 00 */ lwz r8, 0(r6) +/* 803AB9C4 003A8924 7C 1A 38 2E */ lwzx r0, r26, r7 +/* 803AB9C8 003A8928 7F 43 D3 78 */ mr r3, r26 +/* 803AB9CC 003A892C 38 BF FF FF */ addi r5, r31, -1 +/* 803AB9D0 003A8930 90 06 00 00 */ stw r0, 0(r6) +/* 803AB9D4 003A8934 7D 1A 39 2E */ stwx r8, r26, r7 +/* 803AB9D8 003A8938 4B FF FE 99 */ bl SortVoices +/* 803AB9DC 003A893C 7F 43 D3 78 */ mr r3, r26 +/* 803AB9E0 003A8940 38 9F 00 01 */ addi r4, r31, 1 +/* 803AB9E4 003A8944 38 BC FF FF */ addi r5, r28, -1 +/* 803AB9E8 003A8948 4B FF FE 89 */ bl SortVoices +lbl_803AB9EC: +/* 803AB9EC 003A894C 3B FC 00 01 */ addi r31, r28, 1 +/* 803AB9F0 003A8950 7C 1F D8 00 */ cmpw r31, r27 +/* 803AB9F4 003A8954 40 80 00 BC */ bge lbl_803ABAB0 +/* 803AB9F8 003A8958 7C 7C DA 14 */ add r3, r28, r27 +/* 803AB9FC 003A895C 7C DA EA 14 */ add r6, r26, r29 +/* 803ABA00 003A8960 38 83 00 01 */ addi r4, r3, 1 +/* 803ABA04 003A8964 81 06 00 04 */ lwz r8, 4(r6) +/* 803ABA08 003A8968 54 83 0F FE */ srwi r3, r4, 0x1f +/* 803ABA0C 003A896C 39 3C 00 02 */ addi r9, r28, 2 +/* 803ABA10 003A8970 7C 63 22 14 */ add r3, r3, r4 +/* 803ABA14 003A8974 38 1B 00 01 */ addi r0, r27, 1 +/* 803ABA18 003A8978 7C 65 0E 70 */ srawi r5, r3, 1 +/* 803ABA1C 003A897C 55 24 10 3A */ slwi r4, r9, 2 +/* 803ABA20 003A8980 54 A7 10 3A */ slwi r7, r5, 2 +/* 803ABA24 003A8984 57 E3 10 3A */ slwi r3, r31, 2 +/* 803ABA28 003A8988 7C BA 38 2E */ lwzx r5, r26, r7 +/* 803ABA2C 003A898C 7C 09 00 50 */ subf r0, r9, r0 +/* 803ABA30 003A8990 7D 5A 22 14 */ add r10, r26, r4 +/* 803ABA34 003A8994 90 A6 00 04 */ stw r5, 4(r6) +/* 803ABA38 003A8998 7C BA 1A 14 */ add r5, r26, r3 +/* 803ABA3C 003A899C 7D 1A 39 2E */ stwx r8, r26, r7 +/* 803ABA40 003A89A0 7C 09 03 A6 */ mtctr r0 +/* 803ABA44 003A89A4 7C 09 D8 00 */ cmpw r9, r27 +/* 803ABA48 003A89A8 41 81 00 34 */ bgt lbl_803ABA7C +lbl_803ABA4C: +/* 803ABA4C 003A89AC 80 EA 00 00 */ lwz r7, 0(r10) +/* 803ABA50 003A89B0 80 7E 00 04 */ lwz r3, 4(r30) +/* 803ABA54 003A89B4 80 87 00 1C */ lwz r4, 0x1c(r7) +/* 803ABA58 003A89B8 80 03 00 1C */ lwz r0, 0x1c(r3) +/* 803ABA5C 003A89BC 7C 04 00 40 */ cmplw r4, r0 +/* 803ABA60 003A89C0 40 80 00 14 */ bge lbl_803ABA74 +/* 803ABA64 003A89C4 80 05 00 04 */ lwz r0, 4(r5) +/* 803ABA68 003A89C8 3B FF 00 01 */ addi r31, r31, 1 +/* 803ABA6C 003A89CC 94 E5 00 04 */ stwu r7, 4(r5) +/* 803ABA70 003A89D0 90 0A 00 00 */ stw r0, 0(r10) +lbl_803ABA74: +/* 803ABA74 003A89D4 39 4A 00 04 */ addi r10, r10, 4 +/* 803ABA78 003A89D8 42 00 FF D4 */ bdnz lbl_803ABA4C +lbl_803ABA7C: +/* 803ABA7C 003A89DC 57 E7 10 3A */ slwi r7, r31, 2 +/* 803ABA80 003A89E0 81 06 00 04 */ lwz r8, 4(r6) +/* 803ABA84 003A89E4 7C 1A 38 2E */ lwzx r0, r26, r7 +/* 803ABA88 003A89E8 7F 43 D3 78 */ mr r3, r26 +/* 803ABA8C 003A89EC 38 9C 00 01 */ addi r4, r28, 1 +/* 803ABA90 003A89F0 38 BF FF FF */ addi r5, r31, -1 +/* 803ABA94 003A89F4 90 06 00 04 */ stw r0, 4(r6) +/* 803ABA98 003A89F8 7D 1A 39 2E */ stwx r8, r26, r7 +/* 803ABA9C 003A89FC 4B FF FD D5 */ bl SortVoices +/* 803ABAA0 003A8A00 7F 43 D3 78 */ mr r3, r26 +/* 803ABAA4 003A8A04 7F 65 DB 78 */ mr r5, r27 +/* 803ABAA8 003A8A08 38 9F 00 01 */ addi r4, r31, 1 +/* 803ABAAC 003A8A0C 4B FF FD C5 */ bl SortVoices +lbl_803ABAB0: +/* 803ABAB0 003A8A10 39 61 00 20 */ addi r11, r1, 0x20 +/* 803ABAB4 003A8A14 4B FD E0 11 */ bl _restgpr_26 +/* 803ABAB8 003A8A18 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803ABABC 003A8A1C 7C 08 03 A6 */ mtlr r0 +/* 803ABAC0 003A8A20 38 21 00 20 */ addi r1, r1, 0x20 +/* 803ABAC4 003A8A24 4E 80 00 20 */ blr + +.global sub_803abac8 +sub_803abac8: +/* 803ABAC8 003A8A28 94 21 FF 80 */ stwu r1, -0x80(r1) +/* 803ABACC 003A8A2C 7C 08 02 A6 */ mflr r0 +/* 803ABAD0 003A8A30 90 01 00 84 */ stw r0, 0x84(r1) +/* 803ABAD4 003A8A34 39 61 00 80 */ addi r11, r1, 0x80 +/* 803ABAD8 003A8A38 4B FD DF 71 */ bl __save_gpr +/* 803ABADC 003A8A3C 80 AD AF 40 */ lwz r5, lbl_805A9B00@sda21(r13) +/* 803ABAE0 003A8A40 38 00 00 00 */ li r0, 0 +/* 803ABAE4 003A8A44 90 0D AF 24 */ stw r0, lbl_805A9AE4@sda21(r13) +/* 803ABAE8 003A8A48 28 04 00 C8 */ cmplwi r4, 0xc8 +/* 803ABAEC 003A8A4C 38 05 01 80 */ addi r0, r5, 0x180 +/* 803ABAF0 003A8A50 90 61 00 08 */ stw r3, 8(r1) +/* 803ABAF4 003A8A54 90 AD AF 38 */ stw r5, lbl_805A9AF8@sda21(r13) +/* 803ABAF8 003A8A58 90 AD AF 30 */ stw r5, lbl_805A9AF0@sda21(r13) +/* 803ABAFC 003A8A5C 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +/* 803ABB00 003A8A60 40 80 00 0C */ bge lbl_803ABB0C +/* 803ABB04 003A8A64 3A E0 28 BE */ li r23, 0x28be +/* 803ABB08 003A8A68 48 00 00 38 */ b lbl_803ABB40 +lbl_803ABB0C: +/* 803ABB0C 003A8A6C 3C A0 80 00 */ lis r5, 0x800000F8@ha +/* 803ABB10 003A8A70 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803ABB14 003A8A74 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5) +/* 803ABB18 003A8A78 38 A3 85 1F */ addi r5, r3, 0x51EB851F@l +/* 803ABB1C 003A8A7C 3C 60 D1 B7 */ lis r3, 0xD1B71759@ha +/* 803ABB20 003A8A80 38 84 FF 38 */ addi r4, r4, -200 +/* 803ABB24 003A8A84 7C 05 00 16 */ mulhwu r0, r5, r0 +/* 803ABB28 003A8A88 38 63 17 59 */ addi r3, r3, 0xD1B71759@l +/* 803ABB2C 003A8A8C 54 00 C9 FE */ srwi r0, r0, 7 +/* 803ABB30 003A8A90 7C 03 00 16 */ mulhwu r0, r3, r0 +/* 803ABB34 003A8A94 54 00 A3 3E */ srwi r0, r0, 0xc +/* 803ABB38 003A8A98 7C 64 01 D6 */ mullw r3, r4, r0 +/* 803ABB3C 003A8A9C 3A E3 28 BE */ addi r23, r3, 0x28be +lbl_803ABB40: +/* 803ABB40 003A8AA0 80 0D AF 44 */ lwz r0, lbl_805A9B04@sda21(r13) +/* 803ABB44 003A8AA4 28 00 00 00 */ cmplwi r0, 0 +/* 803ABB48 003A8AA8 41 82 00 0C */ beq lbl_803ABB54 +/* 803ABB4C 003A8AAC 3E F7 00 01 */ addis r23, r23, 1 +/* 803ABB50 003A8AB0 3A F7 AF C8 */ addi r23, r23, -20536 +lbl_803ABB54: +/* 803ABB54 003A8AB4 38 00 00 00 */ li r0, 0 +/* 803ABB58 003A8AB8 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803ABB5C 003A8ABC B0 01 00 10 */ sth r0, 0x10(r1) +/* 803ABB60 003A8AC0 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803ABB64 003A8AC4 90 01 00 28 */ stw r0, 0x28(r1) +/* 803ABB68 003A8AC8 38 00 00 00 */ li r0, 0 +/* 803ABB6C 003A8ACC 98 01 00 24 */ stb r0, 0x24(r1) +/* 803ABB70 003A8AD0 48 00 1D 98 */ b lbl_803AD908 +lbl_803ABB74: +/* 803ABB74 003A8AD4 88 01 00 24 */ lbz r0, 0x24(r1) +/* 803ABB78 003A8AD8 1C 60 00 BC */ mulli r3, r0, 0xbc +/* 803ABB7C 003A8ADC 80 01 00 28 */ lwz r0, 0x28(r1) +/* 803ABB80 003A8AE0 7E 00 1A 14 */ add r16, r0, r3 +/* 803ABB84 003A8AE4 88 10 00 50 */ lbz r0, 0x50(r16) +/* 803ABB88 003A8AE8 28 00 00 01 */ cmplwi r0, 1 +/* 803ABB8C 003A8AEC 40 82 1D 70 */ bne lbl_803AD8FC +/* 803ABB90 003A8AF0 81 D0 00 48 */ lwz r14, 0x48(r16) +/* 803ABB94 003A8AF4 48 00 00 74 */ b lbl_803ABC08 +lbl_803ABB98: +/* 803ABB98 003A8AF8 88 0E 00 ED */ lbz r0, 0xed(r14) +/* 803ABB9C 003A8AFC 82 2E 00 0C */ lwz r17, 0xc(r14) +/* 803ABBA0 003A8B00 28 00 00 00 */ cmplwi r0, 0 +/* 803ABBA4 003A8B04 40 82 00 10 */ bne lbl_803ABBB4 +/* 803ABBA8 003A8B08 80 0E 00 24 */ lwz r0, 0x24(r14) +/* 803ABBAC 003A8B0C 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a +/* 803ABBB0 003A8B10 41 82 00 54 */ beq lbl_803ABC04 +lbl_803ABBB4: +/* 803ABBB4 003A8B14 7E 03 83 78 */ mr r3, r16 +/* 803ABBB8 003A8B18 7D C4 73 78 */ mr r4, r14 +/* 803ABBBC 003A8B1C 4B FF F9 D9 */ bl sub_803ab594 +/* 803ABBC0 003A8B20 80 6E 00 E8 */ lwz r3, 0xe8(r14) +/* 803ABBC4 003A8B24 3C 03 00 01 */ addis r0, r3, 1 +/* 803ABBC8 003A8B28 28 00 FF FF */ cmplwi r0, 0xffff +/* 803ABBCC 003A8B2C 41 82 00 10 */ beq lbl_803ABBDC +/* 803ABBD0 003A8B30 7D C3 73 78 */ mr r3, r14 +/* 803ABBD4 003A8B34 38 80 00 03 */ li r4, 3 +/* 803ABBD8 003A8B38 48 00 20 A9 */ bl salSynthSendMessage +lbl_803ABBDC: +/* 803ABBDC 003A8B3C 88 0E 00 EC */ lbz r0, 0xec(r14) +/* 803ABBE0 003A8B40 28 00 00 01 */ cmplwi r0, 1 +/* 803ABBE4 003A8B44 40 82 00 10 */ bne lbl_803ABBF4 +/* 803ABBE8 003A8B48 88 0E 00 EE */ lbz r0, 0xee(r14) +/* 803ABBEC 003A8B4C 28 00 00 00 */ cmplwi r0, 0 +/* 803ABBF0 003A8B50 41 82 00 14 */ beq lbl_803ABC04 +lbl_803ABBF4: +/* 803ABBF4 003A8B54 7D C3 73 78 */ mr r3, r14 +/* 803ABBF8 003A8B58 48 00 21 6D */ bl salDeactivateVoice +/* 803ABBFC 003A8B5C 38 00 00 00 */ li r0, 0 +/* 803ABC00 003A8B60 98 0E 00 EE */ stb r0, 0xee(r14) +lbl_803ABC04: +/* 803ABC04 003A8B64 7E 2E 8B 78 */ mr r14, r17 +lbl_803ABC08: +/* 803ABC08 003A8B68 28 0E 00 00 */ cmplwi r14, 0 +/* 803ABC0C 003A8B6C 40 82 FF 8C */ bne lbl_803ABB98 +/* 803ABC10 003A8B70 81 D0 00 4C */ lwz r14, 0x4c(r16) +/* 803ABC14 003A8B74 48 00 00 14 */ b lbl_803ABC28 +lbl_803ABC18: +/* 803ABC18 003A8B78 7E 03 83 78 */ mr r3, r16 +/* 803ABC1C 003A8B7C 7D C4 73 78 */ mr r4, r14 +/* 803ABC20 003A8B80 4B FF F9 75 */ bl sub_803ab594 +/* 803ABC24 003A8B84 81 CE 00 14 */ lwz r14, 0x14(r14) +lbl_803ABC28: +/* 803ABC28 003A8B88 28 0E 00 00 */ cmplwi r14, 0 +/* 803ABC2C 003A8B8C 40 82 FF EC */ bne lbl_803ABC18 +/* 803ABC30 003A8B90 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803ABC34 003A8B94 38 00 00 00 */ li r0, 0 +/* 803ABC38 003A8B98 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803ABC3C 003A8B9C 38 85 00 06 */ addi r4, r5, 6 +/* 803ABC40 003A8BA0 90 10 00 4C */ stw r0, 0x4c(r16) +/* 803ABC44 003A8BA4 38 03 FF F8 */ addi r0, r3, -8 +/* 803ABC48 003A8BA8 7C 04 00 40 */ cmplw r4, r0 +/* 803ABC4C 003A8BAC 40 81 00 8C */ ble lbl_803ABCD8 +/* 803ABC50 003A8BB0 38 00 00 0D */ li r0, 0xd +/* 803ABC54 003A8BB4 B0 05 00 00 */ sth r0, 0(r5) +/* 803ABC58 003A8BB8 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803ABC5C 003A8BBC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABC60 003A8BC0 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ABC64 003A8BC4 B0 03 00 02 */ sth r0, 2(r3) +/* 803ABC68 003A8BC8 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803ABC6C 003A8BCC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABC70 003A8BD0 B0 03 00 04 */ sth r0, 4(r3) +/* 803ABC74 003A8BD4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABC78 003A8BD8 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803ABC7C 003A8BDC 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803ABC80 003A8BE0 38 03 00 08 */ addi r0, r3, 8 +/* 803ABC84 003A8BE4 28 05 00 00 */ cmplwi r5, 0 +/* 803ABC88 003A8BE8 7C 64 00 50 */ subf r3, r4, r0 +/* 803ABC8C 003A8BEC 38 03 00 03 */ addi r0, r3, 3 +/* 803ABC90 003A8BF0 54 0E 04 3A */ rlwinm r14, r0, 0, 0x10, 0x1d +/* 803ABC94 003A8BF4 41 82 00 18 */ beq lbl_803ABCAC +/* 803ABC98 003A8BF8 B1 C5 00 06 */ sth r14, 6(r5) +/* 803ABC9C 003A8BFC 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803ABCA0 003A8C00 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803ABCA4 003A8C04 4B FD 2E 99 */ bl DCStoreRangeNoSync +/* 803ABCA8 003A8C08 48 00 00 08 */ b lbl_803ABCB0 +lbl_803ABCAC: +/* 803ABCAC 003A8C0C B1 CD AF 3C */ sth r14, lbl_805A9AFC@sda21(r13) +lbl_803ABCB0: +/* 803ABCB0 003A8C10 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803ABCB4 003A8C14 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803ABCB8 003A8C18 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803ABCBC 003A8C1C 38 03 01 80 */ addi r0, r3, 0x180 +/* 803ABCC0 003A8C20 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803ABCC4 003A8C24 B1 CD AF 2C */ sth r14, lbl_805A9AEC@sda21(r13) +/* 803ABCC8 003A8C28 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803ABCCC 003A8C2C 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803ABCD0 003A8C30 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803ABCD4 003A8C34 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803ABCD8: +/* 803ABCD8 003A8C38 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803ABCDC 003A8C3C 38 00 00 00 */ li r0, 0 +/* 803ABCE0 003A8C40 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803ABCE4 003A8C44 7E 11 83 78 */ mr r17, r16 +/* 803ABCE8 003A8C48 B0 04 00 00 */ sth r0, 0(r4) +/* 803ABCEC 003A8C4C 39 C3 F2 60 */ addi r14, r3, lbl_8055F260@l +/* 803ABCF0 003A8C50 3A 40 00 00 */ li r18, 0 +/* 803ABCF4 003A8C54 3A F7 2C 62 */ addi r23, r23, 0x2c62 +/* 803ABCF8 003A8C58 80 10 00 00 */ lwz r0, 0(r16) +/* 803ABCFC 003A8C5C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABD00 003A8C60 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ABD04 003A8C64 B0 03 00 02 */ sth r0, 2(r3) +/* 803ABD08 003A8C68 80 10 00 00 */ lwz r0, 0(r16) +/* 803ABD0C 003A8C6C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABD10 003A8C70 B0 03 00 04 */ sth r0, 4(r3) +/* 803ABD14 003A8C74 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABD18 003A8C78 38 03 00 06 */ addi r0, r3, 6 +/* 803ABD1C 003A8C7C 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +/* 803ABD20 003A8C80 48 00 01 40 */ b lbl_803ABE60 +lbl_803ABD24: +/* 803ABD24 003A8C84 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803ABD28 003A8C88 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803ABD2C 003A8C8C 38 85 00 0C */ addi r4, r5, 0xc +/* 803ABD30 003A8C90 38 03 FF F8 */ addi r0, r3, -8 +/* 803ABD34 003A8C94 7C 04 00 40 */ cmplw r4, r0 +/* 803ABD38 003A8C98 40 81 00 8C */ ble lbl_803ABDC4 +/* 803ABD3C 003A8C9C 38 00 00 0D */ li r0, 0xd +/* 803ABD40 003A8CA0 B0 05 00 00 */ sth r0, 0(r5) +/* 803ABD44 003A8CA4 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803ABD48 003A8CA8 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABD4C 003A8CAC 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ABD50 003A8CB0 B0 03 00 02 */ sth r0, 2(r3) +/* 803ABD54 003A8CB4 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803ABD58 003A8CB8 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABD5C 003A8CBC B0 03 00 04 */ sth r0, 4(r3) +/* 803ABD60 003A8CC0 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABD64 003A8CC4 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803ABD68 003A8CC8 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803ABD6C 003A8CCC 38 03 00 08 */ addi r0, r3, 8 +/* 803ABD70 003A8CD0 28 05 00 00 */ cmplwi r5, 0 +/* 803ABD74 003A8CD4 7C 64 00 50 */ subf r3, r4, r0 +/* 803ABD78 003A8CD8 38 03 00 03 */ addi r0, r3, 3 +/* 803ABD7C 003A8CDC 54 13 04 3A */ rlwinm r19, r0, 0, 0x10, 0x1d +/* 803ABD80 003A8CE0 41 82 00 18 */ beq lbl_803ABD98 +/* 803ABD84 003A8CE4 B2 65 00 06 */ sth r19, 6(r5) +/* 803ABD88 003A8CE8 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803ABD8C 003A8CEC A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803ABD90 003A8CF0 4B FD 2D AD */ bl DCStoreRangeNoSync +/* 803ABD94 003A8CF4 48 00 00 08 */ b lbl_803ABD9C +lbl_803ABD98: +/* 803ABD98 003A8CF8 B2 6D AF 3C */ sth r19, lbl_805A9AFC@sda21(r13) +lbl_803ABD9C: +/* 803ABD9C 003A8CFC 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803ABDA0 003A8D00 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803ABDA4 003A8D04 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803ABDA8 003A8D08 38 03 01 80 */ addi r0, r3, 0x180 +/* 803ABDAC 003A8D0C 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803ABDB0 003A8D10 B2 6D AF 2C */ sth r19, lbl_805A9AEC@sda21(r13) +/* 803ABDB4 003A8D14 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803ABDB8 003A8D18 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803ABDBC 003A8D1C 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803ABDC0 003A8D20 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803ABDC4: +/* 803ABDC4 003A8D24 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABDC8 003A8D28 38 00 00 01 */ li r0, 1 +/* 803ABDCC 003A8D2C 3A F7 29 4D */ addi r23, r23, 0x294d +/* 803ABDD0 003A8D30 3A 52 00 01 */ addi r18, r18, 1 +/* 803ABDD4 003A8D34 B0 03 00 00 */ sth r0, 0(r3) +/* 803ABDD8 003A8D38 88 71 00 58 */ lbz r3, 0x58(r17) +/* 803ABDDC 003A8D3C 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803ABDE0 003A8D40 1C 83 00 BC */ mulli r4, r3, 0xbc +/* 803ABDE4 003A8D44 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABDE8 003A8D48 68 00 00 01 */ xori r0, r0, 1 +/* 803ABDEC 003A8D4C 7C 8E 22 14 */ add r4, r14, r4 +/* 803ABDF0 003A8D50 54 00 10 3A */ slwi r0, r0, 2 +/* 803ABDF4 003A8D54 7C 84 02 14 */ add r4, r4, r0 +/* 803ABDF8 003A8D58 80 04 00 28 */ lwz r0, 0x28(r4) +/* 803ABDFC 003A8D5C 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ABE00 003A8D60 B0 03 00 02 */ sth r0, 2(r3) +/* 803ABE04 003A8D64 88 71 00 58 */ lbz r3, 0x58(r17) +/* 803ABE08 003A8D68 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803ABE0C 003A8D6C 1C 83 00 BC */ mulli r4, r3, 0xbc +/* 803ABE10 003A8D70 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABE14 003A8D74 68 00 00 01 */ xori r0, r0, 1 +/* 803ABE18 003A8D78 7C 8E 22 14 */ add r4, r14, r4 +/* 803ABE1C 003A8D7C 54 00 10 3A */ slwi r0, r0, 2 +/* 803ABE20 003A8D80 7C 84 02 14 */ add r4, r4, r0 +/* 803ABE24 003A8D84 80 04 00 28 */ lwz r0, 0x28(r4) +/* 803ABE28 003A8D88 B0 03 00 04 */ sth r0, 4(r3) +/* 803ABE2C 003A8D8C A0 11 00 5A */ lhz r0, 0x5a(r17) +/* 803ABE30 003A8D90 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABE34 003A8D94 B0 03 00 06 */ sth r0, 6(r3) +/* 803ABE38 003A8D98 A0 11 00 5C */ lhz r0, 0x5c(r17) +/* 803ABE3C 003A8D9C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABE40 003A8DA0 B0 03 00 08 */ sth r0, 8(r3) +/* 803ABE44 003A8DA4 A0 11 00 5E */ lhz r0, 0x5e(r17) +/* 803ABE48 003A8DA8 3A 31 00 0C */ addi r17, r17, 0xc +/* 803ABE4C 003A8DAC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABE50 003A8DB0 B0 03 00 0A */ sth r0, 0xa(r3) +/* 803ABE54 003A8DB4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ABE58 003A8DB8 38 03 00 0C */ addi r0, r3, 0xc +/* 803ABE5C 003A8DBC 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +lbl_803ABE60: +/* 803ABE60 003A8DC0 88 10 00 52 */ lbz r0, 0x52(r16) +/* 803ABE64 003A8DC4 7C 12 00 40 */ cmplw r18, r0 +/* 803ABE68 003A8DC8 41 80 FE BC */ blt lbl_803ABD24 +/* 803ABE6C 003A8DCC 3C 60 80 56 */ lis r3, lbl_8055F840@ha +/* 803ABE70 003A8DD0 80 90 00 48 */ lwz r4, 0x48(r16) +/* 803ABE74 003A8DD4 38 63 F8 40 */ addi r3, r3, lbl_8055F840@l +/* 803ABE78 003A8DD8 3A 40 00 00 */ li r18, 0 +/* 803ABE7C 003A8DDC 39 C0 00 00 */ li r14, 0 +/* 803ABE80 003A8DE0 48 00 00 14 */ b lbl_803ABE94 +lbl_803ABE84: +/* 803ABE84 003A8DE4 90 83 00 00 */ stw r4, 0(r3) +/* 803ABE88 003A8DE8 38 63 00 04 */ addi r3, r3, 4 +/* 803ABE8C 003A8DEC 39 CE 00 01 */ addi r14, r14, 1 +/* 803ABE90 003A8DF0 80 84 00 0C */ lwz r4, 0xc(r4) +lbl_803ABE94: +/* 803ABE94 003A8DF4 28 04 00 00 */ cmplwi r4, 0 +/* 803ABE98 003A8DF8 40 82 FF EC */ bne lbl_803ABE84 +/* 803ABE9C 003A8DFC 3C 60 80 56 */ lis r3, lbl_8055F840@ha +/* 803ABEA0 003A8E00 38 AE FF FF */ addi r5, r14, -1 +/* 803ABEA4 003A8E04 38 63 F8 40 */ addi r3, r3, lbl_8055F840@l +/* 803ABEA8 003A8E08 38 80 00 00 */ li r4, 0 +/* 803ABEAC 003A8E0C 4B FF F9 C5 */ bl SortVoices +/* 803ABEB0 003A8E10 3C 60 80 56 */ lis r3, lbl_8055F840@ha +/* 803ABEB4 003A8E14 55 C4 10 3A */ slwi r4, r14, 2 +/* 803ABEB8 003A8E18 38 03 F8 40 */ addi r0, r3, lbl_8055F840@l +/* 803ABEBC 003A8E1C 7D DC 73 78 */ mr r28, r14 +/* 803ABEC0 003A8E20 7D C0 22 14 */ add r14, r0, r4 +/* 803ABEC4 003A8E24 38 00 00 00 */ li r0, 0 +/* 803ABEC8 003A8E28 90 01 00 1C */ stw r0, 0x1c(r1) +/* 803ABECC 003A8E2C 48 00 14 24 */ b lbl_803AD2F0 +lbl_803ABED0: +/* 803ABED0 003A8E30 83 AE FF FC */ lwz r29, -4(r14) +/* 803ABED4 003A8E34 88 7D 00 EC */ lbz r3, 0xec(r29) +/* 803ABED8 003A8E38 28 03 00 00 */ cmplwi r3, 0 +/* 803ABEDC 003A8E3C 41 82 14 0C */ beq lbl_803AD2E8 +/* 803ABEE0 003A8E40 82 7D 00 00 */ lwz r19, 0(r29) +/* 803ABEE4 003A8E44 38 00 00 00 */ li r0, 0 +/* 803ABEE8 003A8E48 28 03 00 01 */ cmplwi r3, 1 +/* 803ABEEC 003A8E4C B0 01 00 12 */ sth r0, 0x12(r1) +/* 803ABEF0 003A8E50 B0 01 00 14 */ sth r0, 0x14(r1) +/* 803ABEF4 003A8E54 B0 01 00 16 */ sth r0, 0x16(r1) +/* 803ABEF8 003A8E58 B0 01 00 18 */ sth r0, 0x18(r1) +/* 803ABEFC 003A8E5C 40 82 07 94 */ bne lbl_803AC690 +/* 803ABF00 003A8E60 38 00 FF FF */ li r0, -1 +/* 803ABF04 003A8E64 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 803ABF08 003A8E68 90 1D 00 E8 */ stw r0, 0xe8(r29) +/* 803ABF0C 003A8E6C 38 03 80 00 */ addi r0, r3, 0x00008000@l +/* 803ABF10 003A8E70 38 7D 00 A4 */ addi r3, r29, 0xa4 +/* 803ABF14 003A8E74 80 9D 00 00 */ lwz r4, 0(r29) +/* 803ABF18 003A8E78 B0 04 00 66 */ sth r0, 0x66(r4) +/* 803ABF1C 003A8E7C 4B FF D5 B9 */ bl adsrSetup +/* 803ABF20 003A8E80 28 03 00 00 */ cmplwi r3, 0 +/* 803ABF24 003A8E84 41 82 00 1C */ beq lbl_803ABF40 +/* 803ABF28 003A8E88 7F A3 EB 78 */ mr r3, r29 +/* 803ABF2C 003A8E8C 38 80 00 00 */ li r4, 0 +/* 803ABF30 003A8E90 48 00 1D 51 */ bl salSynthSendMessage +/* 803ABF34 003A8E94 7F A3 EB 78 */ mr r3, r29 +/* 803ABF38 003A8E98 48 00 1E 2D */ bl salDeactivateVoice +/* 803ABF3C 003A8E9C 48 00 13 AC */ b lbl_803AD2E8 +lbl_803ABF40: +/* 803ABF40 003A8EA0 38 00 FF FF */ li r0, -1 +/* 803ABF44 003A8EA4 90 1D 00 E8 */ stw r0, 0xe8(r29) +/* 803ABF48 003A8EA8 88 1D 00 90 */ lbz r0, 0x90(r29) +/* 803ABF4C 003A8EAC 2C 00 00 05 */ cmpwi r0, 5 +/* 803ABF50 003A8EB0 41 82 00 08 */ beq lbl_803ABF58 +/* 803ABF54 003A8EB4 48 00 00 40 */ b lbl_803ABF94 +lbl_803ABF58: +/* 803ABF58 003A8EB8 38 00 00 00 */ li r0, 0 +/* 803ABF5C 003A8EBC 7F A3 EB 78 */ mr r3, r29 +/* 803ABF60 003A8EC0 90 1D 00 98 */ stw r0, 0x98(r29) +/* 803ABF64 003A8EC4 38 80 00 02 */ li r4, 2 +/* 803ABF68 003A8EC8 48 00 1D 19 */ bl salSynthSendMessage +/* 803ABF6C 003A8ECC 90 7D 00 E8 */ stw r3, 0xe8(r29) +/* 803ABF70 003A8ED0 80 1D 00 98 */ lwz r0, 0x98(r29) +/* 803ABF74 003A8ED4 28 00 00 00 */ cmplwi r0, 0 +/* 803ABF78 003A8ED8 40 82 00 1C */ bne lbl_803ABF94 +/* 803ABF7C 003A8EDC 7F A3 EB 78 */ mr r3, r29 +/* 803ABF80 003A8EE0 38 80 00 01 */ li r4, 1 +/* 803ABF84 003A8EE4 48 00 1C FD */ bl salSynthSendMessage +/* 803ABF88 003A8EE8 7F A3 EB 78 */ mr r3, r29 +/* 803ABF8C 003A8EEC 48 00 1D D9 */ bl salDeactivateVoice +/* 803ABF90 003A8EF0 48 00 13 58 */ b lbl_803AD2E8 +lbl_803ABF94: +/* 803ABF94 003A8EF4 38 60 00 00 */ li r3, 0 +/* 803ABF98 003A8EF8 B0 73 00 AA */ sth r3, 0xaa(r19) +/* 803ABF9C 003A8EFC B0 73 00 AC */ sth r3, 0xac(r19) +/* 803ABFA0 003A8F00 B0 73 00 AE */ sth r3, 0xae(r19) +/* 803ABFA4 003A8F04 B0 73 00 B0 */ sth r3, 0xb0(r19) +/* 803ABFA8 003A8F08 B0 73 00 B2 */ sth r3, 0xb2(r19) +/* 803ABFAC 003A8F0C 80 1D 00 F0 */ lwz r0, 0xf0(r29) +/* 803ABFB0 003A8F10 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 +/* 803ABFB4 003A8F14 41 82 00 4C */ beq lbl_803AC000 +/* 803ABFB8 003A8F18 80 7D 00 08 */ lwz r3, 8(r29) +/* 803ABFBC 003A8F1C 38 80 00 00 */ li r4, 0 +/* 803ABFC0 003A8F20 38 A0 00 40 */ li r5, 0x40 +/* 803ABFC4 003A8F24 4B C5 73 E5 */ bl memset +/* 803ABFC8 003A8F28 80 7D 00 08 */ lwz r3, 8(r29) +/* 803ABFCC 003A8F2C 38 80 00 40 */ li r4, 0x40 +/* 803ABFD0 003A8F30 4B FD 2A E1 */ bl DCFlushRange +/* 803ABFD4 003A8F34 A0 7D 00 D0 */ lhz r3, 0xd0(r29) +/* 803ABFD8 003A8F38 38 00 00 01 */ li r0, 1 +/* 803ABFDC 003A8F3C B0 73 00 40 */ sth r3, 0x40(r19) +/* 803ABFE0 003A8F40 A0 7D 00 D0 */ lhz r3, 0xd0(r29) +/* 803ABFE4 003A8F44 B0 73 00 3C */ sth r3, 0x3c(r19) +/* 803ABFE8 003A8F48 A0 7D 00 D2 */ lhz r3, 0xd2(r29) +/* 803ABFEC 003A8F4C B0 73 00 42 */ sth r3, 0x42(r19) +/* 803ABFF0 003A8F50 A0 7D 00 D2 */ lhz r3, 0xd2(r29) +/* 803ABFF4 003A8F54 B0 73 00 3E */ sth r3, 0x3e(r19) +/* 803ABFF8 003A8F58 B0 13 00 36 */ sth r0, 0x36(r19) +/* 803ABFFC 003A8F5C 48 00 00 08 */ b lbl_803AC004 +lbl_803AC000: +/* 803AC000 003A8F60 B0 73 00 36 */ sth r3, 0x36(r19) +lbl_803AC004: +/* 803AC004 003A8F64 88 1D 00 90 */ lbz r0, 0x90(r29) +/* 803AC008 003A8F68 2C 00 00 02 */ cmpwi r0, 2 +/* 803AC00C 003A8F6C 41 82 02 9C */ beq lbl_803AC2A8 +/* 803AC010 003A8F70 40 80 00 14 */ bge lbl_803AC024 +/* 803AC014 003A8F74 2C 00 00 00 */ cmpwi r0, 0 +/* 803AC018 003A8F78 41 82 00 20 */ beq lbl_803AC038 +/* 803AC01C 003A8F7C 40 80 01 10 */ bge lbl_803AC12C +/* 803AC020 003A8F80 48 00 02 F4 */ b lbl_803AC314 +lbl_803AC024: +/* 803AC024 003A8F84 2C 00 00 06 */ cmpwi r0, 6 +/* 803AC028 003A8F88 40 80 02 EC */ bge lbl_803AC314 +/* 803AC02C 003A8F8C 2C 00 00 04 */ cmpwi r0, 4 +/* 803AC030 003A8F90 40 80 00 08 */ bge lbl_803AC038 +/* 803AC034 003A8F94 48 00 02 08 */ b lbl_803AC23C +lbl_803AC038: +/* 803AC038 003A8F98 38 00 00 00 */ li r0, 0 +/* 803AC03C 003A8F9C B0 13 00 70 */ sth r0, 0x70(r19) +/* 803AC040 003A8FA0 B0 13 00 9E */ sth r0, 0x9e(r19) +/* 803AC044 003A8FA4 80 7D 00 7C */ lwz r3, 0x7c(r29) +/* 803AC048 003A8FA8 B0 13 00 A4 */ sth r0, 0xa4(r19) +/* 803AC04C 003A8FAC B0 13 00 A2 */ sth r0, 0xa2(r19) +/* 803AC050 003A8FB0 88 83 00 02 */ lbz r4, 2(r3) +/* 803AC054 003A8FB4 B0 93 00 A0 */ sth r4, 0xa0(r19) +/* 803AC058 003A8FB8 A8 83 00 08 */ lha r4, 8(r3) +/* 803AC05C 003A8FBC B0 93 00 7E */ sth r4, 0x7e(r19) +/* 803AC060 003A8FC0 A8 83 00 0A */ lha r4, 0xa(r3) +/* 803AC064 003A8FC4 B0 93 00 80 */ sth r4, 0x80(r19) +/* 803AC068 003A8FC8 A8 83 00 0C */ lha r4, 0xc(r3) +/* 803AC06C 003A8FCC B0 93 00 82 */ sth r4, 0x82(r19) +/* 803AC070 003A8FD0 A8 83 00 0E */ lha r4, 0xe(r3) +/* 803AC074 003A8FD4 B0 93 00 84 */ sth r4, 0x84(r19) +/* 803AC078 003A8FD8 A8 83 00 10 */ lha r4, 0x10(r3) +/* 803AC07C 003A8FDC B0 93 00 86 */ sth r4, 0x86(r19) +/* 803AC080 003A8FE0 A8 83 00 12 */ lha r4, 0x12(r3) +/* 803AC084 003A8FE4 B0 93 00 88 */ sth r4, 0x88(r19) +/* 803AC088 003A8FE8 A8 83 00 14 */ lha r4, 0x14(r3) +/* 803AC08C 003A8FEC B0 93 00 8A */ sth r4, 0x8a(r19) +/* 803AC090 003A8FF0 A8 83 00 16 */ lha r4, 0x16(r3) +/* 803AC094 003A8FF4 B0 93 00 8C */ sth r4, 0x8c(r19) +/* 803AC098 003A8FF8 A8 83 00 18 */ lha r4, 0x18(r3) +/* 803AC09C 003A8FFC B0 93 00 8E */ sth r4, 0x8e(r19) +/* 803AC0A0 003A9000 A8 83 00 1A */ lha r4, 0x1a(r3) +/* 803AC0A4 003A9004 B0 93 00 90 */ sth r4, 0x90(r19) +/* 803AC0A8 003A9008 A8 83 00 1C */ lha r4, 0x1c(r3) +/* 803AC0AC 003A900C B0 93 00 92 */ sth r4, 0x92(r19) +/* 803AC0B0 003A9010 A8 83 00 1E */ lha r4, 0x1e(r3) +/* 803AC0B4 003A9014 B0 93 00 94 */ sth r4, 0x94(r19) +/* 803AC0B8 003A9018 A8 83 00 20 */ lha r4, 0x20(r3) +/* 803AC0BC 003A901C B0 93 00 96 */ sth r4, 0x96(r19) +/* 803AC0C0 003A9020 A8 83 00 22 */ lha r4, 0x22(r3) +/* 803AC0C4 003A9024 B0 93 00 98 */ sth r4, 0x98(r19) +/* 803AC0C8 003A9028 A8 83 00 24 */ lha r4, 0x24(r3) +/* 803AC0CC 003A902C B0 93 00 9A */ sth r4, 0x9a(r19) +/* 803AC0D0 003A9030 A8 83 00 26 */ lha r4, 0x26(r3) +/* 803AC0D4 003A9034 B0 93 00 9C */ sth r4, 0x9c(r19) +/* 803AC0D8 003A9038 80 9D 00 78 */ lwz r4, 0x78(r29) +/* 803AC0DC 003A903C 90 1D 00 DC */ stw r0, 0xdc(r29) +/* 803AC0E0 003A9040 54 98 08 3C */ slwi r24, r4, 1 +/* 803AC0E4 003A9044 3B 38 00 02 */ addi r25, r24, 2 +/* 803AC0E8 003A9048 90 1D 00 D8 */ stw r0, 0xd8(r29) +/* 803AC0EC 003A904C 88 9D 00 90 */ lbz r4, 0x90(r29) +/* 803AC0F0 003A9050 28 04 00 04 */ cmplwi r4, 4 +/* 803AC0F4 003A9054 41 82 00 0C */ beq lbl_803AC100 +/* 803AC0F8 003A9058 28 04 00 05 */ cmplwi r4, 5 +/* 803AC0FC 003A905C 40 82 00 10 */ bne lbl_803AC10C +lbl_803AC100: +/* 803AC100 003A9060 38 00 00 01 */ li r0, 1 +/* 803AC104 003A9064 B0 13 00 10 */ sth r0, 0x10(r19) +/* 803AC108 003A9068 48 00 02 0C */ b lbl_803AC314 +lbl_803AC10C: +/* 803AC10C 003A906C A8 83 00 04 */ lha r4, 4(r3) +/* 803AC110 003A9070 B0 93 00 B8 */ sth r4, 0xb8(r19) +/* 803AC114 003A9074 A8 83 00 06 */ lha r4, 6(r3) +/* 803AC118 003A9078 B0 93 00 B6 */ sth r4, 0xb6(r19) +/* 803AC11C 003A907C 88 63 00 03 */ lbz r3, 3(r3) +/* 803AC120 003A9080 B0 73 00 B4 */ sth r3, 0xb4(r19) +/* 803AC124 003A9084 B0 13 00 10 */ sth r0, 0x10(r19) +/* 803AC128 003A9088 48 00 01 EC */ b lbl_803AC314 +lbl_803AC12C: +/* 803AC12C 003A908C 38 00 00 00 */ li r0, 0 +/* 803AC130 003A9090 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 803AC134 003A9094 B0 13 00 70 */ sth r0, 0x70(r19) +/* 803AC138 003A9098 38 A3 49 25 */ addi r5, r3, 0x24924925@l +/* 803AC13C 003A909C B0 13 00 9E */ sth r0, 0x9e(r19) +/* 803AC140 003A90A0 80 9D 00 80 */ lwz r4, 0x80(r29) +/* 803AC144 003A90A4 80 7D 00 7C */ lwz r3, 0x7c(r29) +/* 803AC148 003A90A8 38 84 00 0D */ addi r4, r4, 0xd +/* 803AC14C 003A90AC 7C A5 20 16 */ mulhwu r5, r5, r4 +/* 803AC150 003A90B0 7C 85 20 50 */ subf r4, r5, r4 +/* 803AC154 003A90B4 54 84 F8 7E */ srwi r4, r4, 1 +/* 803AC158 003A90B8 7C 84 2A 14 */ add r4, r4, r5 +/* 803AC15C 003A90BC 54 87 E8 FE */ srwi r7, r4, 3 +/* 803AC160 003A90C0 1C A7 00 06 */ mulli r5, r7, 6 +/* 803AC164 003A90C4 54 84 08 36 */ rlwinm r4, r4, 1, 0, 0x1b +/* 803AC168 003A90C8 3B 24 00 02 */ addi r25, r4, 2 +/* 803AC16C 003A90CC 7C C3 2A 14 */ add r6, r3, r5 +/* 803AC170 003A90D0 A8 A6 00 28 */ lha r5, 0x28(r6) +/* 803AC174 003A90D4 1C 87 00 0E */ mulli r4, r7, 0xe +/* 803AC178 003A90D8 B0 B3 00 A4 */ sth r5, 0xa4(r19) +/* 803AC17C 003A90DC A8 A6 00 2A */ lha r5, 0x2a(r6) +/* 803AC180 003A90E0 B0 B3 00 A2 */ sth r5, 0xa2(r19) +/* 803AC184 003A90E4 88 A6 00 2C */ lbz r5, 0x2c(r6) +/* 803AC188 003A90E8 B0 B3 00 A0 */ sth r5, 0xa0(r19) +/* 803AC18C 003A90EC A8 A3 00 04 */ lha r5, 4(r3) +/* 803AC190 003A90F0 B0 B3 00 B8 */ sth r5, 0xb8(r19) +/* 803AC194 003A90F4 A8 A3 00 06 */ lha r5, 6(r3) +/* 803AC198 003A90F8 B0 B3 00 B6 */ sth r5, 0xb6(r19) +/* 803AC19C 003A90FC 88 A3 00 03 */ lbz r5, 3(r3) +/* 803AC1A0 003A9100 B0 B3 00 B4 */ sth r5, 0xb4(r19) +/* 803AC1A4 003A9104 A8 A3 00 08 */ lha r5, 8(r3) +/* 803AC1A8 003A9108 B0 B3 00 7E */ sth r5, 0x7e(r19) +/* 803AC1AC 003A910C A8 A3 00 0A */ lha r5, 0xa(r3) +/* 803AC1B0 003A9110 B0 B3 00 80 */ sth r5, 0x80(r19) +/* 803AC1B4 003A9114 A8 A3 00 0C */ lha r5, 0xc(r3) +/* 803AC1B8 003A9118 B0 B3 00 82 */ sth r5, 0x82(r19) +/* 803AC1BC 003A911C A8 A3 00 0E */ lha r5, 0xe(r3) +/* 803AC1C0 003A9120 B0 B3 00 84 */ sth r5, 0x84(r19) +/* 803AC1C4 003A9124 A8 A3 00 10 */ lha r5, 0x10(r3) +/* 803AC1C8 003A9128 B0 B3 00 86 */ sth r5, 0x86(r19) +/* 803AC1CC 003A912C A8 A3 00 12 */ lha r5, 0x12(r3) +/* 803AC1D0 003A9130 B0 B3 00 88 */ sth r5, 0x88(r19) +/* 803AC1D4 003A9134 A8 A3 00 14 */ lha r5, 0x14(r3) +/* 803AC1D8 003A9138 B0 B3 00 8A */ sth r5, 0x8a(r19) +/* 803AC1DC 003A913C A8 A3 00 16 */ lha r5, 0x16(r3) +/* 803AC1E0 003A9140 B0 B3 00 8C */ sth r5, 0x8c(r19) +/* 803AC1E4 003A9144 A8 A3 00 18 */ lha r5, 0x18(r3) +/* 803AC1E8 003A9148 B0 B3 00 8E */ sth r5, 0x8e(r19) +/* 803AC1EC 003A914C A8 A3 00 1A */ lha r5, 0x1a(r3) +/* 803AC1F0 003A9150 B0 B3 00 90 */ sth r5, 0x90(r19) +/* 803AC1F4 003A9154 A8 A3 00 1C */ lha r5, 0x1c(r3) +/* 803AC1F8 003A9158 B0 B3 00 92 */ sth r5, 0x92(r19) +/* 803AC1FC 003A915C A8 A3 00 1E */ lha r5, 0x1e(r3) +/* 803AC200 003A9160 B0 B3 00 94 */ sth r5, 0x94(r19) +/* 803AC204 003A9164 A8 A3 00 20 */ lha r5, 0x20(r3) +/* 803AC208 003A9168 B0 B3 00 96 */ sth r5, 0x96(r19) +/* 803AC20C 003A916C A8 A3 00 22 */ lha r5, 0x22(r3) +/* 803AC210 003A9170 B0 B3 00 98 */ sth r5, 0x98(r19) +/* 803AC214 003A9174 A8 A3 00 24 */ lha r5, 0x24(r3) +/* 803AC218 003A9178 B0 B3 00 9A */ sth r5, 0x9a(r19) +/* 803AC21C 003A917C A8 63 00 26 */ lha r3, 0x26(r3) +/* 803AC220 003A9180 B0 73 00 9C */ sth r3, 0x9c(r19) +/* 803AC224 003A9184 80 7D 00 78 */ lwz r3, 0x78(r29) +/* 803AC228 003A9188 90 9D 00 D8 */ stw r4, 0xd8(r29) +/* 803AC22C 003A918C 54 78 08 3C */ slwi r24, r3, 1 +/* 803AC230 003A9190 7F 38 CA 14 */ add r25, r24, r25 +/* 803AC234 003A9194 90 1D 00 DC */ stw r0, 0xdc(r29) +/* 803AC238 003A9198 48 00 00 DC */ b lbl_803AC314 +lbl_803AC23C: +/* 803AC23C 003A919C 38 00 00 19 */ li r0, 0x19 +/* 803AC240 003A91A0 38 60 01 00 */ li r3, 0x100 +/* 803AC244 003A91A4 B0 13 00 70 */ sth r0, 0x70(r19) +/* 803AC248 003A91A8 38 00 00 00 */ li r0, 0 +/* 803AC24C 003A91AC B0 73 00 9E */ sth r3, 0x9e(r19) +/* 803AC250 003A91B0 B0 13 00 7E */ sth r0, 0x7e(r19) +/* 803AC254 003A91B4 B0 13 00 80 */ sth r0, 0x80(r19) +/* 803AC258 003A91B8 B0 13 00 82 */ sth r0, 0x82(r19) +/* 803AC25C 003A91BC B0 13 00 84 */ sth r0, 0x84(r19) +/* 803AC260 003A91C0 B0 13 00 86 */ sth r0, 0x86(r19) +/* 803AC264 003A91C4 B0 13 00 88 */ sth r0, 0x88(r19) +/* 803AC268 003A91C8 B0 13 00 8A */ sth r0, 0x8a(r19) +/* 803AC26C 003A91CC B0 13 00 8C */ sth r0, 0x8c(r19) +/* 803AC270 003A91D0 B0 13 00 8E */ sth r0, 0x8e(r19) +/* 803AC274 003A91D4 B0 13 00 90 */ sth r0, 0x90(r19) +/* 803AC278 003A91D8 B0 13 00 92 */ sth r0, 0x92(r19) +/* 803AC27C 003A91DC B0 13 00 94 */ sth r0, 0x94(r19) +/* 803AC280 003A91E0 B0 13 00 96 */ sth r0, 0x96(r19) +/* 803AC284 003A91E4 B0 13 00 98 */ sth r0, 0x98(r19) +/* 803AC288 003A91E8 B0 13 00 9A */ sth r0, 0x9a(r19) +/* 803AC28C 003A91EC B0 13 00 9C */ sth r0, 0x9c(r19) +/* 803AC290 003A91F0 80 7D 00 80 */ lwz r3, 0x80(r29) +/* 803AC294 003A91F4 83 1D 00 78 */ lwz r24, 0x78(r29) +/* 803AC298 003A91F8 90 7D 00 D8 */ stw r3, 0xd8(r29) +/* 803AC29C 003A91FC 7F 23 C2 14 */ add r25, r3, r24 +/* 803AC2A0 003A9200 90 1D 00 DC */ stw r0, 0xdc(r29) +/* 803AC2A4 003A9204 48 00 00 70 */ b lbl_803AC314 +lbl_803AC2A8: +/* 803AC2A8 003A9208 38 60 00 0A */ li r3, 0xa +/* 803AC2AC 003A920C 38 00 08 00 */ li r0, 0x800 +/* 803AC2B0 003A9210 B0 73 00 70 */ sth r3, 0x70(r19) +/* 803AC2B4 003A9214 38 60 00 00 */ li r3, 0 +/* 803AC2B8 003A9218 B0 13 00 9E */ sth r0, 0x9e(r19) +/* 803AC2BC 003A921C B0 73 00 7E */ sth r3, 0x7e(r19) +/* 803AC2C0 003A9220 B0 73 00 80 */ sth r3, 0x80(r19) +/* 803AC2C4 003A9224 B0 73 00 82 */ sth r3, 0x82(r19) +/* 803AC2C8 003A9228 B0 73 00 84 */ sth r3, 0x84(r19) +/* 803AC2CC 003A922C B0 73 00 86 */ sth r3, 0x86(r19) +/* 803AC2D0 003A9230 B0 73 00 88 */ sth r3, 0x88(r19) +/* 803AC2D4 003A9234 B0 73 00 8A */ sth r3, 0x8a(r19) +/* 803AC2D8 003A9238 B0 73 00 8C */ sth r3, 0x8c(r19) +/* 803AC2DC 003A923C B0 73 00 8E */ sth r3, 0x8e(r19) +/* 803AC2E0 003A9240 B0 73 00 90 */ sth r3, 0x90(r19) +/* 803AC2E4 003A9244 B0 73 00 92 */ sth r3, 0x92(r19) +/* 803AC2E8 003A9248 B0 73 00 94 */ sth r3, 0x94(r19) +/* 803AC2EC 003A924C B0 73 00 96 */ sth r3, 0x96(r19) +/* 803AC2F0 003A9250 B0 73 00 98 */ sth r3, 0x98(r19) +/* 803AC2F4 003A9254 B0 73 00 9A */ sth r3, 0x9a(r19) +/* 803AC2F8 003A9258 B0 73 00 9C */ sth r3, 0x9c(r19) +/* 803AC2FC 003A925C 80 1D 00 78 */ lwz r0, 0x78(r29) +/* 803AC300 003A9260 80 9D 00 80 */ lwz r4, 0x80(r29) +/* 803AC304 003A9264 54 18 F8 7E */ srwi r24, r0, 1 +/* 803AC308 003A9268 90 9D 00 D8 */ stw r4, 0xd8(r29) +/* 803AC30C 003A926C 7F 24 C2 14 */ add r25, r4, r24 +/* 803AC310 003A9270 90 7D 00 DC */ stw r3, 0xdc(r29) +lbl_803AC314: +/* 803AC314 003A9274 57 20 84 3E */ srwi r0, r25, 0x10 +/* 803AC318 003A9278 B0 13 00 7A */ sth r0, 0x7a(r19) +/* 803AC31C 003A927C B3 33 00 7C */ sth r25, 0x7c(r19) +/* 803AC320 003A9280 93 3D 00 20 */ stw r25, 0x20(r29) +/* 803AC324 003A9284 80 1D 00 8C */ lwz r0, 0x8c(r29) +/* 803AC328 003A9288 28 00 00 00 */ cmplwi r0, 0 +/* 803AC32C 003A928C 41 82 01 48 */ beq lbl_803AC474 +/* 803AC330 003A9290 38 00 00 01 */ li r0, 1 +/* 803AC334 003A9294 B0 13 00 6E */ sth r0, 0x6e(r19) +/* 803AC338 003A9298 88 1D 00 90 */ lbz r0, 0x90(r29) +/* 803AC33C 003A929C 2C 00 00 04 */ cmpwi r0, 4 +/* 803AC340 003A92A0 41 82 00 28 */ beq lbl_803AC368 +/* 803AC344 003A92A4 40 80 00 18 */ bge lbl_803AC35C +/* 803AC348 003A92A8 2C 00 00 02 */ cmpwi r0, 2 +/* 803AC34C 003A92AC 40 80 00 EC */ bge lbl_803AC438 +/* 803AC350 003A92B0 2C 00 00 00 */ cmpwi r0, 0 +/* 803AC354 003A92B4 40 80 00 14 */ bge lbl_803AC368 +/* 803AC358 003A92B8 48 00 00 E0 */ b lbl_803AC438 +lbl_803AC35C: +/* 803AC35C 003A92BC 2C 00 00 06 */ cmpwi r0, 6 +/* 803AC360 003A92C0 40 80 00 D8 */ bge lbl_803AC438 +/* 803AC364 003A92C4 48 00 00 78 */ b lbl_803AC3DC +lbl_803AC368: +/* 803AC368 003A92C8 80 7D 00 8C */ lwz r3, 0x8c(r29) +/* 803AC36C 003A92CC 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 803AC370 003A92D0 80 1D 00 88 */ lwz r0, 0x88(r29) +/* 803AC374 003A92D4 38 84 49 25 */ addi r4, r4, 0x24924925@l +/* 803AC378 003A92D8 38 63 FF FF */ addi r3, r3, -1 +/* 803AC37C 003A92DC 7C C4 00 16 */ mulhwu r6, r4, r0 +/* 803AC380 003A92E0 7C 60 1A 14 */ add r3, r0, r3 +/* 803AC384 003A92E4 7C A4 18 16 */ mulhwu r5, r4, r3 +/* 803AC388 003A92E8 7C 86 00 50 */ subf r4, r6, r0 +/* 803AC38C 003A92EC 54 84 F8 7E */ srwi r4, r4, 1 +/* 803AC390 003A92F0 7C C4 32 14 */ add r6, r4, r6 +/* 803AC394 003A92F4 7C 85 18 50 */ subf r4, r5, r3 +/* 803AC398 003A92F8 54 84 F8 7E */ srwi r4, r4, 1 +/* 803AC39C 003A92FC 54 C7 E8 FE */ srwi r7, r6, 3 +/* 803AC3A0 003A9300 7C 84 2A 14 */ add r4, r4, r5 +/* 803AC3A4 003A9304 54 C5 08 36 */ rlwinm r5, r6, 1, 0, 0x1b +/* 803AC3A8 003A9308 1C C7 00 0E */ mulli r6, r7, 0xe +/* 803AC3AC 003A930C 54 87 E8 FE */ srwi r7, r4, 3 +/* 803AC3B0 003A9310 54 84 08 36 */ rlwinm r4, r4, 1, 0, 0x1b +/* 803AC3B4 003A9314 38 84 00 02 */ addi r4, r4, 2 +/* 803AC3B8 003A9318 38 A5 00 02 */ addi r5, r5, 2 +/* 803AC3BC 003A931C 7C 06 00 50 */ subf r0, r6, r0 +/* 803AC3C0 003A9320 7C 05 02 14 */ add r0, r5, r0 +/* 803AC3C4 003A9324 7C 98 22 14 */ add r4, r24, r4 +/* 803AC3C8 003A9328 1C A7 00 0E */ mulli r5, r7, 0xe +/* 803AC3CC 003A932C 7C 18 02 14 */ add r0, r24, r0 +/* 803AC3D0 003A9330 7C 85 20 50 */ subf r4, r5, r4 +/* 803AC3D4 003A9334 7C A3 22 14 */ add r5, r3, r4 +/* 803AC3D8 003A9338 48 00 00 78 */ b lbl_803AC450 +lbl_803AC3DC: +/* 803AC3DC 003A933C 80 9D 00 8C */ lwz r4, 0x8c(r29) +/* 803AC3E0 003A9340 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 803AC3E4 003A9344 80 1D 00 88 */ lwz r0, 0x88(r29) +/* 803AC3E8 003A9348 38 63 49 25 */ addi r3, r3, 0x24924925@l +/* 803AC3EC 003A934C 38 C4 FF FF */ addi r6, r4, -1 +/* 803AC3F0 003A9350 80 BD 00 94 */ lwz r5, 0x94(r29) +/* 803AC3F4 003A9354 7C C0 32 14 */ add r6, r0, r6 +/* 803AC3F8 003A9358 38 00 00 00 */ li r0, 0 +/* 803AC3FC 003A935C 7C 83 30 16 */ mulhwu r4, r3, r6 +/* 803AC400 003A9360 54 A3 08 3C */ slwi r3, r5, 1 +/* 803AC404 003A9364 98 1D 00 9C */ stb r0, 0x9c(r29) +/* 803AC408 003A9368 38 03 00 02 */ addi r0, r3, 2 +/* 803AC40C 003A936C 7C 64 30 50 */ subf r3, r4, r6 +/* 803AC410 003A9370 54 63 F8 7E */ srwi r3, r3, 1 +/* 803AC414 003A9374 7C 63 22 14 */ add r3, r3, r4 +/* 803AC418 003A9378 54 64 E8 FE */ srwi r4, r3, 3 +/* 803AC41C 003A937C 54 63 08 36 */ rlwinm r3, r3, 1, 0, 0x1b +/* 803AC420 003A9380 38 63 00 02 */ addi r3, r3, 2 +/* 803AC424 003A9384 1C 84 00 0E */ mulli r4, r4, 0xe +/* 803AC428 003A9388 7C 78 1A 14 */ add r3, r24, r3 +/* 803AC42C 003A938C 7C 64 18 50 */ subf r3, r4, r3 +/* 803AC430 003A9390 7C A6 1A 14 */ add r5, r6, r3 +/* 803AC434 003A9394 48 00 00 1C */ b lbl_803AC450 +lbl_803AC438: +/* 803AC438 003A9398 80 1D 00 88 */ lwz r0, 0x88(r29) +/* 803AC43C 003A939C 80 7D 00 8C */ lwz r3, 0x8c(r29) +/* 803AC440 003A93A0 7C 98 02 14 */ add r4, r24, r0 +/* 803AC444 003A93A4 38 A4 FF FF */ addi r5, r4, -1 +/* 803AC448 003A93A8 7C 80 23 78 */ mr r0, r4 +/* 803AC44C 003A93AC 7C A3 2A 14 */ add r5, r3, r5 +lbl_803AC450: +/* 803AC450 003A93B0 54 03 84 3E */ srwi r3, r0, 0x10 +/* 803AC454 003A93B4 54 A4 84 3E */ srwi r4, r5, 0x10 +/* 803AC458 003A93B8 B0 73 00 72 */ sth r3, 0x72(r19) +/* 803AC45C 003A93BC 38 60 00 00 */ li r3, 0 +/* 803AC460 003A93C0 B0 13 00 74 */ sth r0, 0x74(r19) +/* 803AC464 003A93C4 B0 93 00 76 */ sth r4, 0x76(r19) +/* 803AC468 003A93C8 B0 B3 00 78 */ sth r5, 0x78(r19) +/* 803AC46C 003A93CC B0 73 00 BA */ sth r3, 0xba(r19) +/* 803AC470 003A93D0 48 00 00 B8 */ b lbl_803AC528 +lbl_803AC474: +/* 803AC474 003A93D4 38 00 00 00 */ li r0, 0 +/* 803AC478 003A93D8 B0 13 00 6E */ sth r0, 0x6e(r19) +/* 803AC47C 003A93DC 88 1D 00 90 */ lbz r0, 0x90(r29) +/* 803AC480 003A93E0 2C 00 00 03 */ cmpwi r0, 3 +/* 803AC484 003A93E4 41 82 00 6C */ beq lbl_803AC4F0 +/* 803AC488 003A93E8 40 80 00 18 */ bge lbl_803AC4A0 +/* 803AC48C 003A93EC 2C 00 00 02 */ cmpwi r0, 2 +/* 803AC490 003A93F0 40 80 00 70 */ bge lbl_803AC500 +/* 803AC494 003A93F4 2C 00 00 00 */ cmpwi r0, 0 +/* 803AC498 003A93F8 40 80 00 10 */ bge lbl_803AC4A8 +/* 803AC49C 003A93FC 48 00 00 74 */ b lbl_803AC510 +lbl_803AC4A0: +/* 803AC4A0 003A9400 2C 00 00 06 */ cmpwi r0, 6 +/* 803AC4A4 003A9404 40 80 00 6C */ bge lbl_803AC510 +lbl_803AC4A8: +/* 803AC4A8 003A9408 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 803AC4AC 003A940C 80 BD 00 84 */ lwz r5, 0x84(r29) +/* 803AC4B0 003A9410 38 63 49 25 */ addi r3, r3, 0x24924925@l +/* 803AC4B4 003A9414 80 0D AF 20 */ lwz r0, lbl_805A9AE0@sda21(r13) +/* 803AC4B8 003A9418 7C 83 28 16 */ mulhwu r4, r3, r5 +/* 803AC4BC 003A941C 54 03 08 3C */ slwi r3, r0, 1 +/* 803AC4C0 003A9420 39 E3 00 02 */ addi r15, r3, 2 +/* 803AC4C4 003A9424 7C 04 28 50 */ subf r0, r4, r5 +/* 803AC4C8 003A9428 54 00 F8 7E */ srwi r0, r0, 1 +/* 803AC4CC 003A942C 7C 00 22 14 */ add r0, r0, r4 +/* 803AC4D0 003A9430 54 03 E8 FE */ srwi r3, r0, 3 +/* 803AC4D4 003A9434 1C 83 00 0E */ mulli r4, r3, 0xe +/* 803AC4D8 003A9438 54 03 08 36 */ rlwinm r3, r0, 1, 0, 0x1b +/* 803AC4DC 003A943C 38 03 00 02 */ addi r0, r3, 2 +/* 803AC4E0 003A9440 7C 64 28 50 */ subf r3, r4, r5 +/* 803AC4E4 003A9444 7F 40 1A 14 */ add r26, r0, r3 +/* 803AC4E8 003A9448 7F 58 D2 14 */ add r26, r24, r26 +/* 803AC4EC 003A944C 48 00 00 24 */ b lbl_803AC510 +lbl_803AC4F0: +/* 803AC4F0 003A9450 80 1D 00 84 */ lwz r0, 0x84(r29) +/* 803AC4F4 003A9454 81 ED AF 20 */ lwz r15, lbl_805A9AE0@sda21(r13) +/* 803AC4F8 003A9458 7F 58 02 14 */ add r26, r24, r0 +/* 803AC4FC 003A945C 48 00 00 14 */ b lbl_803AC510 +lbl_803AC500: +/* 803AC500 003A9460 80 7D 00 84 */ lwz r3, 0x84(r29) +/* 803AC504 003A9464 80 0D AF 20 */ lwz r0, lbl_805A9AE0@sda21(r13) +/* 803AC508 003A9468 7F 58 1A 14 */ add r26, r24, r3 +/* 803AC50C 003A946C 54 0F F8 7E */ srwi r15, r0, 1 +lbl_803AC510: +/* 803AC510 003A9470 55 E3 84 3E */ srwi r3, r15, 0x10 +/* 803AC514 003A9474 57 40 84 3E */ srwi r0, r26, 0x10 +/* 803AC518 003A9478 B0 73 00 72 */ sth r3, 0x72(r19) +/* 803AC51C 003A947C B1 F3 00 74 */ sth r15, 0x74(r19) +/* 803AC520 003A9480 B0 13 00 76 */ sth r0, 0x76(r19) +/* 803AC524 003A9484 B3 53 00 78 */ sth r26, 0x78(r19) +lbl_803AC528: +/* 803AC528 003A9488 A0 7D 00 CC */ lhz r3, 0xcc(r29) +/* 803AC52C 003A948C 38 00 00 00 */ li r0, 0 +/* 803AC530 003A9490 B0 73 00 08 */ sth r3, 8(r19) +/* 803AC534 003A9494 A0 7D 00 CE */ lhz r3, 0xce(r29) +/* 803AC538 003A9498 B0 73 00 0A */ sth r3, 0xa(r19) +/* 803AC53C 003A949C 8B 7D 00 D4 */ lbz r27, 0xd4(r29) +/* 803AC540 003A94A0 7F 63 00 34 */ cntlzw r3, r27 +/* 803AC544 003A94A4 54 63 DC 3E */ rlwinm r3, r3, 0x1b, 0x10, 0x1f +/* 803AC548 003A94A8 B0 73 00 0E */ sth r3, 0xe(r19) +/* 803AC54C 003A94AC A0 7D 00 4C */ lhz r3, 0x4c(r29) +/* 803AC550 003A94B0 B0 7D 00 5E */ sth r3, 0x5e(r29) +/* 803AC554 003A94B4 B0 73 00 12 */ sth r3, 0x12(r19) +/* 803AC558 003A94B8 A0 7D 00 4E */ lhz r3, 0x4e(r29) +/* 803AC55C 003A94BC B0 7D 00 60 */ sth r3, 0x60(r29) +/* 803AC560 003A94C0 B0 73 00 16 */ sth r3, 0x16(r19) +/* 803AC564 003A94C4 A0 7D 00 50 */ lhz r3, 0x50(r29) +/* 803AC568 003A94C8 B0 7D 00 62 */ sth r3, 0x62(r29) +/* 803AC56C 003A94CC B0 73 00 2E */ sth r3, 0x2e(r19) +/* 803AC570 003A94D0 A0 7D 00 52 */ lhz r3, 0x52(r29) +/* 803AC574 003A94D4 B0 7D 00 64 */ sth r3, 0x64(r29) +/* 803AC578 003A94D8 B0 73 00 1A */ sth r3, 0x1a(r19) +/* 803AC57C 003A94DC A0 7D 00 54 */ lhz r3, 0x54(r29) +/* 803AC580 003A94E0 B0 7D 00 66 */ sth r3, 0x66(r29) +/* 803AC584 003A94E4 B0 73 00 1E */ sth r3, 0x1e(r19) +/* 803AC588 003A94E8 A0 7D 00 56 */ lhz r3, 0x56(r29) +/* 803AC58C 003A94EC B0 7D 00 68 */ sth r3, 0x68(r29) +/* 803AC590 003A94F0 B0 73 00 32 */ sth r3, 0x32(r19) +/* 803AC594 003A94F4 A0 93 00 1A */ lhz r4, 0x1a(r19) +/* 803AC598 003A94F8 A0 73 00 1E */ lhz r3, 0x1e(r19) +/* 803AC59C 003A94FC A0 B3 00 32 */ lhz r5, 0x32(r19) +/* 803AC5A0 003A9500 7C 83 1B 78 */ or r3, r4, r3 +/* 803AC5A4 003A9504 7C A4 1B 78 */ or r4, r5, r3 +/* 803AC5A8 003A9508 7C 64 00 D0 */ neg r3, r4 +/* 803AC5AC 003A950C 7C 63 23 78 */ or r3, r3, r4 +/* 803AC5B0 003A9510 54 63 0F FE */ srwi r3, r3, 0x1f +/* 803AC5B4 003A9514 B0 73 00 0C */ sth r3, 0xc(r19) +/* 803AC5B8 003A9518 A0 7D 00 58 */ lhz r3, 0x58(r29) +/* 803AC5BC 003A951C B0 7D 00 6A */ sth r3, 0x6a(r29) +/* 803AC5C0 003A9520 B0 73 00 22 */ sth r3, 0x22(r19) +/* 803AC5C4 003A9524 A0 7D 00 5A */ lhz r3, 0x5a(r29) +/* 803AC5C8 003A9528 B0 7D 00 6C */ sth r3, 0x6c(r29) +/* 803AC5CC 003A952C B0 73 00 26 */ sth r3, 0x26(r19) +/* 803AC5D0 003A9530 A0 7D 00 5C */ lhz r3, 0x5c(r29) +/* 803AC5D4 003A9534 B0 7D 00 6E */ sth r3, 0x6e(r29) +/* 803AC5D8 003A9538 B0 73 00 2A */ sth r3, 0x2a(r19) +/* 803AC5DC 003A953C B0 13 00 14 */ sth r0, 0x14(r19) +/* 803AC5E0 003A9540 B0 13 00 18 */ sth r0, 0x18(r19) +/* 803AC5E4 003A9544 B0 13 00 30 */ sth r0, 0x30(r19) +/* 803AC5E8 003A9548 B0 13 00 1C */ sth r0, 0x1c(r19) +/* 803AC5EC 003A954C B0 13 00 20 */ sth r0, 0x20(r19) +/* 803AC5F0 003A9550 B0 13 00 34 */ sth r0, 0x34(r19) +/* 803AC5F4 003A9554 B0 13 00 24 */ sth r0, 0x24(r19) +/* 803AC5F8 003A9558 B0 13 00 28 */ sth r0, 0x28(r19) +/* 803AC5FC 003A955C B0 13 00 2C */ sth r0, 0x2c(r19) +/* 803AC600 003A9560 80 10 00 54 */ lwz r0, 0x54(r16) +/* 803AC604 003A9564 2C 00 00 00 */ cmpwi r0, 0 +/* 803AC608 003A9568 40 82 00 50 */ bne lbl_803AC658 +/* 803AC60C 003A956C A0 73 00 22 */ lhz r3, 0x22(r19) +/* 803AC610 003A9570 A0 13 00 26 */ lhz r0, 0x26(r19) +/* 803AC614 003A9574 A0 93 00 2A */ lhz r4, 0x2a(r19) +/* 803AC618 003A9578 7C 60 03 78 */ or r0, r3, r0 +/* 803AC61C 003A957C 7C 80 03 79 */ or. r0, r4, r0 +/* 803AC620 003A9580 41 82 00 10 */ beq lbl_803AC630 +/* 803AC624 003A9584 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC628 003A9588 60 00 00 02 */ ori r0, r0, 2 +/* 803AC62C 003A958C B0 13 00 0C */ sth r0, 0xc(r19) +lbl_803AC630: +/* 803AC630 003A9590 A0 73 00 2E */ lhz r3, 0x2e(r19) +/* 803AC634 003A9594 A0 13 00 32 */ lhz r0, 0x32(r19) +/* 803AC638 003A9598 A0 93 00 2A */ lhz r4, 0x2a(r19) +/* 803AC63C 003A959C 7C 60 03 78 */ or r0, r3, r0 +/* 803AC640 003A95A0 7C 80 03 79 */ or. r0, r4, r0 +/* 803AC644 003A95A4 41 82 00 38 */ beq lbl_803AC67C +/* 803AC648 003A95A8 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC64C 003A95AC 60 00 00 04 */ ori r0, r0, 4 +/* 803AC650 003A95B0 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803AC654 003A95B4 48 00 00 28 */ b lbl_803AC67C +lbl_803AC658: +/* 803AC658 003A95B8 A0 73 00 22 */ lhz r3, 0x22(r19) +/* 803AC65C 003A95BC A0 13 00 26 */ lhz r0, 0x26(r19) +/* 803AC660 003A95C0 A0 93 00 32 */ lhz r4, 0x32(r19) +/* 803AC664 003A95C4 7C 60 03 78 */ or r0, r3, r0 +/* 803AC668 003A95C8 7C 80 03 79 */ or. r0, r4, r0 +/* 803AC66C 003A95CC 41 82 00 10 */ beq lbl_803AC67C +/* 803AC670 003A95D0 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC674 003A95D4 60 00 00 10 */ ori r0, r0, 0x10 +/* 803AC678 003A95D8 B0 13 00 0C */ sth r0, 0xc(r19) +lbl_803AC67C: +/* 803AC67C 003A95DC 38 60 00 02 */ li r3, 2 +/* 803AC680 003A95E0 38 00 00 01 */ li r0, 1 +/* 803AC684 003A95E4 90 01 00 20 */ stw r0, 0x20(r1) +/* 803AC688 003A95E8 98 7D 00 EC */ stb r3, 0xec(r29) +/* 803AC68C 003A95EC 48 00 06 90 */ b lbl_803ACD1C +lbl_803AC690: +/* 803AC690 003A95F0 88 1D 00 90 */ lbz r0, 0x90(r29) +/* 803AC694 003A95F4 28 00 00 04 */ cmplwi r0, 4 +/* 803AC698 003A95F8 41 82 00 0C */ beq lbl_803AC6A4 +/* 803AC69C 003A95FC 28 00 00 05 */ cmplwi r0, 5 +/* 803AC6A0 003A9600 40 82 00 8C */ bne lbl_803AC72C +lbl_803AC6A4: +/* 803AC6A4 003A9604 88 1D 00 A0 */ lbz r0, 0xa0(r29) +/* 803AC6A8 003A9608 B0 13 00 B4 */ sth r0, 0xb4(r19) +/* 803AC6AC 003A960C 88 1D 00 90 */ lbz r0, 0x90(r29) +/* 803AC6B0 003A9610 28 00 00 05 */ cmplwi r0, 5 +/* 803AC6B4 003A9614 40 82 00 78 */ bne lbl_803AC72C +/* 803AC6B8 003A9618 88 1D 00 9C */ lbz r0, 0x9c(r29) +/* 803AC6BC 003A961C 28 00 00 00 */ cmplwi r0, 0 +/* 803AC6C0 003A9620 40 82 00 6C */ bne lbl_803AC72C +/* 803AC6C4 003A9624 A0 13 00 BA */ lhz r0, 0xba(r19) +/* 803AC6C8 003A9628 28 00 00 00 */ cmplwi r0, 0 +/* 803AC6CC 003A962C 41 82 00 60 */ beq lbl_803AC72C +/* 803AC6D0 003A9630 80 9D 00 98 */ lwz r4, 0x98(r29) +/* 803AC6D4 003A9634 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 803AC6D8 003A9638 80 FD 00 94 */ lwz r7, 0x94(r29) +/* 803AC6DC 003A963C 38 63 49 25 */ addi r3, r3, 0x24924925@l +/* 803AC6E0 003A9640 38 C4 FF FF */ addi r6, r4, -1 +/* 803AC6E4 003A9644 38 00 00 01 */ li r0, 1 +/* 803AC6E8 003A9648 7C A3 30 16 */ mulhwu r5, r3, r6 +/* 803AC6EC 003A964C 54 E4 08 3C */ slwi r4, r7, 1 +/* 803AC6F0 003A9650 90 FD 00 78 */ stw r7, 0x78(r29) +/* 803AC6F4 003A9654 7C 65 30 50 */ subf r3, r5, r6 +/* 803AC6F8 003A9658 54 63 F8 7E */ srwi r3, r3, 1 +/* 803AC6FC 003A965C 7C 63 2A 14 */ add r3, r3, r5 +/* 803AC700 003A9660 54 65 E8 FE */ srwi r5, r3, 3 +/* 803AC704 003A9664 1C A5 00 0E */ mulli r5, r5, 0xe +/* 803AC708 003A9668 54 63 08 36 */ rlwinm r3, r3, 1, 0, 0x1b +/* 803AC70C 003A966C 38 63 00 02 */ addi r3, r3, 2 +/* 803AC710 003A9670 7C A5 30 50 */ subf r5, r5, r6 +/* 803AC714 003A9674 7F 43 2A 14 */ add r26, r3, r5 +/* 803AC718 003A9678 7F 44 D2 14 */ add r26, r4, r26 +/* 803AC71C 003A967C 57 43 84 3E */ srwi r3, r26, 0x10 +/* 803AC720 003A9680 B0 73 00 76 */ sth r3, 0x76(r19) +/* 803AC724 003A9684 B3 53 00 78 */ sth r26, 0x78(r19) +/* 803AC728 003A9688 98 1D 00 9C */ stb r0, 0x9c(r29) +lbl_803AC72C: +/* 803AC72C 003A968C 80 1D 00 8C */ lwz r0, 0x8c(r29) +/* 803AC730 003A9690 28 00 00 00 */ cmplwi r0, 0 +/* 803AC734 003A9694 40 82 00 2C */ bne lbl_803AC760 +/* 803AC738 003A9698 80 7D 00 D8 */ lwz r3, 0xd8(r29) +/* 803AC73C 003A969C 80 1D 00 84 */ lwz r0, 0x84(r29) +/* 803AC740 003A96A0 7C 03 00 40 */ cmplw r3, r0 +/* 803AC744 003A96A4 41 80 00 1C */ blt lbl_803AC760 +/* 803AC748 003A96A8 7F A3 EB 78 */ mr r3, r29 +/* 803AC74C 003A96AC 38 80 00 00 */ li r4, 0 +/* 803AC750 003A96B0 48 00 15 31 */ bl salSynthSendMessage +/* 803AC754 003A96B4 7F A3 EB 78 */ mr r3, r29 +/* 803AC758 003A96B8 48 00 16 0D */ bl salDeactivateVoice +/* 803AC75C 003A96BC 48 00 0B 8C */ b lbl_803AD2E8 +lbl_803AC760: +/* 803AC760 003A96C0 80 1D 00 24 */ lwz r0, 0x24(r29) +/* 803AC764 003A96C4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803AC768 003A96C8 41 82 00 2C */ beq lbl_803AC794 +/* 803AC76C 003A96CC 38 7D 00 A4 */ addi r3, r29, 0xa4 +/* 803AC770 003A96D0 4B FF CD 65 */ bl adsrSetup +/* 803AC774 003A96D4 28 03 00 00 */ cmplwi r3, 0 +/* 803AC778 003A96D8 41 82 00 1C */ beq lbl_803AC794 +/* 803AC77C 003A96DC 7F A3 EB 78 */ mr r3, r29 +/* 803AC780 003A96E0 38 80 00 00 */ li r4, 0 +/* 803AC784 003A96E4 48 00 14 FD */ bl salSynthSendMessage +/* 803AC788 003A96E8 7F A3 EB 78 */ mr r3, r29 +/* 803AC78C 003A96EC 48 00 15 D9 */ bl salDeactivateVoice +/* 803AC790 003A96F0 48 00 0B 58 */ b lbl_803AD2E8 +lbl_803AC794: +/* 803AC794 003A96F4 80 1D 00 24 */ lwz r0, 0x24(r29) +/* 803AC798 003A96F8 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803AC79C 003A96FC 41 82 00 3C */ beq lbl_803AC7D8 +/* 803AC7A0 003A9700 A0 BD 00 4C */ lhz r5, 0x4c(r29) +/* 803AC7A4 003A9704 38 73 00 14 */ addi r3, r19, 0x14 +/* 803AC7A8 003A9708 38 9D 00 5E */ addi r4, r29, 0x5e +/* 803AC7AC 003A970C 4B FF EC 81 */ bl sal_setup_dspvol +/* 803AC7B0 003A9710 A0 BD 00 4E */ lhz r5, 0x4e(r29) +/* 803AC7B4 003A9714 38 73 00 18 */ addi r3, r19, 0x18 +/* 803AC7B8 003A9718 38 9D 00 60 */ addi r4, r29, 0x60 +/* 803AC7BC 003A971C 4B FF EC 71 */ bl sal_setup_dspvol +/* 803AC7C0 003A9720 A0 BD 00 50 */ lhz r5, 0x50(r29) +/* 803AC7C4 003A9724 38 73 00 30 */ addi r3, r19, 0x30 +/* 803AC7C8 003A9728 38 9D 00 62 */ addi r4, r29, 0x62 +/* 803AC7CC 003A972C 4B FF EC 61 */ bl sal_setup_dspvol +/* 803AC7D0 003A9730 3A 20 00 01 */ li r17, 1 +/* 803AC7D4 003A9734 48 00 00 64 */ b lbl_803AC838 +lbl_803AC7D8: +/* 803AC7D8 003A9738 A0 DD 00 4C */ lhz r6, 0x4c(r29) +/* 803AC7DC 003A973C 38 73 00 12 */ addi r3, r19, 0x12 +/* 803AC7E0 003A9740 38 93 00 14 */ addi r4, r19, 0x14 +/* 803AC7E4 003A9744 38 BD 00 5E */ addi r5, r29, 0x5e +/* 803AC7E8 003A9748 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803AC7EC 003A974C 39 00 00 01 */ li r8, 1 +/* 803AC7F0 003A9750 4B FF EB 49 */ bl salCheckVolErrorAndResetDelta +/* 803AC7F4 003A9754 A0 DD 00 4E */ lhz r6, 0x4e(r29) +/* 803AC7F8 003A9758 7C 71 1B 78 */ mr r17, r3 +/* 803AC7FC 003A975C 38 73 00 16 */ addi r3, r19, 0x16 +/* 803AC800 003A9760 38 93 00 18 */ addi r4, r19, 0x18 +/* 803AC804 003A9764 38 BD 00 60 */ addi r5, r29, 0x60 +/* 803AC808 003A9768 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803AC80C 003A976C 39 00 00 02 */ li r8, 2 +/* 803AC810 003A9770 4B FF EB 29 */ bl salCheckVolErrorAndResetDelta +/* 803AC814 003A9774 A0 DD 00 50 */ lhz r6, 0x50(r29) +/* 803AC818 003A9778 7E 31 1B 78 */ or r17, r17, r3 +/* 803AC81C 003A977C 38 73 00 2E */ addi r3, r19, 0x2e +/* 803AC820 003A9780 38 93 00 30 */ addi r4, r19, 0x30 +/* 803AC824 003A9784 38 BD 00 62 */ addi r5, r29, 0x62 +/* 803AC828 003A9788 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803AC82C 003A978C 39 00 00 04 */ li r8, 4 +/* 803AC830 003A9790 4B FF EB 09 */ bl salCheckVolErrorAndResetDelta +/* 803AC834 003A9794 7E 31 1B 78 */ or r17, r17, r3 +lbl_803AC838: +/* 803AC838 003A9798 80 1D 00 24 */ lwz r0, 0x24(r29) +/* 803AC83C 003A979C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 803AC840 003A97A0 41 82 00 98 */ beq lbl_803AC8D8 +/* 803AC844 003A97A4 A0 BD 00 52 */ lhz r5, 0x52(r29) +/* 803AC848 003A97A8 38 73 00 1C */ addi r3, r19, 0x1c +/* 803AC84C 003A97AC 38 9D 00 64 */ addi r4, r29, 0x64 +/* 803AC850 003A97B0 4B FF EB DD */ bl sal_setup_dspvol +/* 803AC854 003A97B4 A0 BD 00 54 */ lhz r5, 0x54(r29) +/* 803AC858 003A97B8 38 73 00 20 */ addi r3, r19, 0x20 +/* 803AC85C 003A97BC 38 9D 00 66 */ addi r4, r29, 0x66 +/* 803AC860 003A97C0 4B FF EB CD */ bl sal_setup_dspvol +/* 803AC864 003A97C4 A0 BD 00 56 */ lhz r5, 0x56(r29) +/* 803AC868 003A97C8 38 73 00 34 */ addi r3, r19, 0x34 +/* 803AC86C 003A97CC 38 9D 00 68 */ addi r4, r29, 0x68 +/* 803AC870 003A97D0 4B FF EB BD */ bl sal_setup_dspvol +/* 803AC874 003A97D4 A0 73 00 1C */ lhz r3, 0x1c(r19) +/* 803AC878 003A97D8 A0 13 00 20 */ lhz r0, 0x20(r19) +/* 803AC87C 003A97DC A0 93 00 34 */ lhz r4, 0x34(r19) +/* 803AC880 003A97E0 7C 60 03 78 */ or r0, r3, r0 +/* 803AC884 003A97E4 7C 80 03 79 */ or. r0, r4, r0 +/* 803AC888 003A97E8 41 82 00 18 */ beq lbl_803AC8A0 +/* 803AC88C 003A97EC A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC890 003A97F0 3A 20 00 01 */ li r17, 1 +/* 803AC894 003A97F4 60 00 00 01 */ ori r0, r0, 1 +/* 803AC898 003A97F8 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803AC89C 003A97FC 48 00 00 EC */ b lbl_803AC988 +lbl_803AC8A0: +/* 803AC8A0 003A9800 A0 73 00 1A */ lhz r3, 0x1a(r19) +/* 803AC8A4 003A9804 A0 13 00 1E */ lhz r0, 0x1e(r19) +/* 803AC8A8 003A9808 A0 93 00 32 */ lhz r4, 0x32(r19) +/* 803AC8AC 003A980C 7C 60 03 78 */ or r0, r3, r0 +/* 803AC8B0 003A9810 7C 80 03 79 */ or. r0, r4, r0 +/* 803AC8B4 003A9814 41 82 00 14 */ beq lbl_803AC8C8 +/* 803AC8B8 003A9818 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC8BC 003A981C 60 00 00 01 */ ori r0, r0, 1 +/* 803AC8C0 003A9820 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803AC8C4 003A9824 48 00 00 C4 */ b lbl_803AC988 +lbl_803AC8C8: +/* 803AC8C8 003A9828 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC8CC 003A982C 54 00 04 3C */ rlwinm r0, r0, 0, 0x10, 0x1e +/* 803AC8D0 003A9830 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803AC8D4 003A9834 48 00 00 B4 */ b lbl_803AC988 +lbl_803AC8D8: +/* 803AC8D8 003A9838 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC8DC 003A983C 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803AC8E0 003A9840 41 82 00 98 */ beq lbl_803AC978 +/* 803AC8E4 003A9844 A0 DD 00 52 */ lhz r6, 0x52(r29) +/* 803AC8E8 003A9848 38 73 00 1A */ addi r3, r19, 0x1a +/* 803AC8EC 003A984C 38 93 00 1C */ addi r4, r19, 0x1c +/* 803AC8F0 003A9850 38 BD 00 64 */ addi r5, r29, 0x64 +/* 803AC8F4 003A9854 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803AC8F8 003A9858 39 00 00 08 */ li r8, 8 +/* 803AC8FC 003A985C 4B FF EA 3D */ bl salCheckVolErrorAndResetDelta +/* 803AC900 003A9860 A0 DD 00 54 */ lhz r6, 0x54(r29) +/* 803AC904 003A9864 7C 74 1B 78 */ mr r20, r3 +/* 803AC908 003A9868 38 73 00 1E */ addi r3, r19, 0x1e +/* 803AC90C 003A986C 38 93 00 20 */ addi r4, r19, 0x20 +/* 803AC910 003A9870 38 BD 00 66 */ addi r5, r29, 0x66 +/* 803AC914 003A9874 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803AC918 003A9878 39 00 00 10 */ li r8, 0x10 +/* 803AC91C 003A987C 4B FF EA 1D */ bl salCheckVolErrorAndResetDelta +/* 803AC920 003A9880 A0 DD 00 56 */ lhz r6, 0x56(r29) +/* 803AC924 003A9884 7E 94 1B 78 */ or r20, r20, r3 +/* 803AC928 003A9888 38 73 00 32 */ addi r3, r19, 0x32 +/* 803AC92C 003A988C 38 93 00 34 */ addi r4, r19, 0x34 +/* 803AC930 003A9890 38 BD 00 68 */ addi r5, r29, 0x68 +/* 803AC934 003A9894 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803AC938 003A9898 39 00 00 20 */ li r8, 0x20 +/* 803AC93C 003A989C 4B FF E9 FD */ bl salCheckVolErrorAndResetDelta +/* 803AC940 003A98A0 A0 93 00 1A */ lhz r4, 0x1a(r19) +/* 803AC944 003A98A4 7E 94 1B 78 */ or r20, r20, r3 +/* 803AC948 003A98A8 A0 13 00 1E */ lhz r0, 0x1e(r19) +/* 803AC94C 003A98AC A0 73 00 32 */ lhz r3, 0x32(r19) +/* 803AC950 003A98B0 7C 80 03 78 */ or r0, r4, r0 +/* 803AC954 003A98B4 7C 60 03 78 */ or r0, r3, r0 +/* 803AC958 003A98B8 7E 80 03 79 */ or. r0, r20, r0 +/* 803AC95C 003A98BC 40 82 00 14 */ bne lbl_803AC970 +/* 803AC960 003A98C0 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC964 003A98C4 54 00 04 3C */ rlwinm r0, r0, 0, 0x10, 0x1e +/* 803AC968 003A98C8 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803AC96C 003A98CC 48 00 00 1C */ b lbl_803AC988 +lbl_803AC970: +/* 803AC970 003A98D0 3A 20 00 01 */ li r17, 1 +/* 803AC974 003A98D4 48 00 00 14 */ b lbl_803AC988 +lbl_803AC978: +/* 803AC978 003A98D8 38 00 00 00 */ li r0, 0 +/* 803AC97C 003A98DC B0 13 00 1C */ sth r0, 0x1c(r19) +/* 803AC980 003A98E0 B0 13 00 20 */ sth r0, 0x20(r19) +/* 803AC984 003A98E4 B0 13 00 34 */ sth r0, 0x34(r19) +lbl_803AC988: +/* 803AC988 003A98E8 80 1D 00 24 */ lwz r0, 0x24(r29) +/* 803AC98C 003A98EC 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803AC990 003A98F0 41 82 01 28 */ beq lbl_803ACAB8 +/* 803AC994 003A98F4 80 10 00 54 */ lwz r0, 0x54(r16) +/* 803AC998 003A98F8 2C 00 00 00 */ cmpwi r0, 0 +/* 803AC99C 003A98FC 40 82 00 98 */ bne lbl_803ACA34 +/* 803AC9A0 003A9900 A0 BD 00 58 */ lhz r5, 0x58(r29) +/* 803AC9A4 003A9904 38 73 00 24 */ addi r3, r19, 0x24 +/* 803AC9A8 003A9908 38 9D 00 6A */ addi r4, r29, 0x6a +/* 803AC9AC 003A990C 4B FF EA 81 */ bl sal_setup_dspvol +/* 803AC9B0 003A9910 A0 BD 00 5A */ lhz r5, 0x5a(r29) +/* 803AC9B4 003A9914 38 73 00 28 */ addi r3, r19, 0x28 +/* 803AC9B8 003A9918 38 9D 00 6C */ addi r4, r29, 0x6c +/* 803AC9BC 003A991C 4B FF EA 71 */ bl sal_setup_dspvol +/* 803AC9C0 003A9920 A0 BD 00 5C */ lhz r5, 0x5c(r29) +/* 803AC9C4 003A9924 38 73 00 2C */ addi r3, r19, 0x2c +/* 803AC9C8 003A9928 38 9D 00 6E */ addi r4, r29, 0x6e +/* 803AC9CC 003A992C 4B FF EA 61 */ bl sal_setup_dspvol +/* 803AC9D0 003A9930 A0 73 00 24 */ lhz r3, 0x24(r19) +/* 803AC9D4 003A9934 A0 13 00 28 */ lhz r0, 0x28(r19) +/* 803AC9D8 003A9938 A0 93 00 2C */ lhz r4, 0x2c(r19) +/* 803AC9DC 003A993C 7C 60 03 78 */ or r0, r3, r0 +/* 803AC9E0 003A9940 7C 80 03 79 */ or. r0, r4, r0 +/* 803AC9E4 003A9944 41 82 00 18 */ beq lbl_803AC9FC +/* 803AC9E8 003A9948 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AC9EC 003A994C 3A 20 00 01 */ li r17, 1 +/* 803AC9F0 003A9950 60 00 00 02 */ ori r0, r0, 2 +/* 803AC9F4 003A9954 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803AC9F8 003A9958 48 00 02 30 */ b lbl_803ACC28 +lbl_803AC9FC: +/* 803AC9FC 003A995C A0 73 00 22 */ lhz r3, 0x22(r19) +/* 803ACA00 003A9960 A0 13 00 26 */ lhz r0, 0x26(r19) +/* 803ACA04 003A9964 A0 93 00 2A */ lhz r4, 0x2a(r19) +/* 803ACA08 003A9968 7C 60 03 78 */ or r0, r3, r0 +/* 803ACA0C 003A996C 7C 80 03 79 */ or. r0, r4, r0 +/* 803ACA10 003A9970 41 82 00 14 */ beq lbl_803ACA24 +/* 803ACA14 003A9974 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACA18 003A9978 60 00 00 02 */ ori r0, r0, 2 +/* 803ACA1C 003A997C B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACA20 003A9980 48 00 02 08 */ b lbl_803ACC28 +lbl_803ACA24: +/* 803ACA24 003A9984 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACA28 003A9988 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d +/* 803ACA2C 003A998C B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACA30 003A9990 48 00 01 F8 */ b lbl_803ACC28 +lbl_803ACA34: +/* 803ACA34 003A9994 A0 BD 00 58 */ lhz r5, 0x58(r29) +/* 803ACA38 003A9998 38 73 00 24 */ addi r3, r19, 0x24 +/* 803ACA3C 003A999C 38 9D 00 6A */ addi r4, r29, 0x6a +/* 803ACA40 003A99A0 4B FF E9 ED */ bl sal_setup_dspvol +/* 803ACA44 003A99A4 A0 BD 00 5A */ lhz r5, 0x5a(r29) +/* 803ACA48 003A99A8 38 73 00 28 */ addi r3, r19, 0x28 +/* 803ACA4C 003A99AC 38 9D 00 6C */ addi r4, r29, 0x6c +/* 803ACA50 003A99B0 4B FF E9 DD */ bl sal_setup_dspvol +/* 803ACA54 003A99B4 A0 73 00 24 */ lhz r3, 0x24(r19) +/* 803ACA58 003A99B8 A0 13 00 28 */ lhz r0, 0x28(r19) +/* 803ACA5C 003A99BC 7C 60 03 79 */ or. r0, r3, r0 +/* 803ACA60 003A99C0 41 82 00 18 */ beq lbl_803ACA78 +/* 803ACA64 003A99C4 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACA68 003A99C8 3A 20 00 01 */ li r17, 1 +/* 803ACA6C 003A99CC 60 00 00 10 */ ori r0, r0, 0x10 +/* 803ACA70 003A99D0 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACA74 003A99D4 48 00 01 B4 */ b lbl_803ACC28 +lbl_803ACA78: +/* 803ACA78 003A99D8 A0 73 00 22 */ lhz r3, 0x22(r19) +/* 803ACA7C 003A99DC A0 13 00 26 */ lhz r0, 0x26(r19) +/* 803ACA80 003A99E0 A0 93 00 32 */ lhz r4, 0x32(r19) +/* 803ACA84 003A99E4 7C 60 03 78 */ or r0, r3, r0 +/* 803ACA88 003A99E8 A0 73 00 34 */ lhz r3, 0x34(r19) +/* 803ACA8C 003A99EC 7C 80 03 78 */ or r0, r4, r0 +/* 803ACA90 003A99F0 7C 60 03 79 */ or. r0, r3, r0 +/* 803ACA94 003A99F4 41 82 00 14 */ beq lbl_803ACAA8 +/* 803ACA98 003A99F8 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACA9C 003A99FC 60 00 00 10 */ ori r0, r0, 0x10 +/* 803ACAA0 003A9A00 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACAA4 003A9A04 48 00 01 84 */ b lbl_803ACC28 +lbl_803ACAA8: +/* 803ACAA8 003A9A08 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACAAC 003A9A0C 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a +/* 803ACAB0 003A9A10 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACAB4 003A9A14 48 00 01 74 */ b lbl_803ACC28 +lbl_803ACAB8: +/* 803ACAB8 003A9A18 80 10 00 54 */ lwz r0, 0x54(r16) +/* 803ACABC 003A9A1C 2C 00 00 00 */ cmpwi r0, 0 +/* 803ACAC0 003A9A20 40 82 00 B8 */ bne lbl_803ACB78 +/* 803ACAC4 003A9A24 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACAC8 003A9A28 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 803ACACC 003A9A2C 41 82 00 98 */ beq lbl_803ACB64 +/* 803ACAD0 003A9A30 A0 DD 00 58 */ lhz r6, 0x58(r29) +/* 803ACAD4 003A9A34 38 73 00 22 */ addi r3, r19, 0x22 +/* 803ACAD8 003A9A38 38 93 00 24 */ addi r4, r19, 0x24 +/* 803ACADC 003A9A3C 38 BD 00 6A */ addi r5, r29, 0x6a +/* 803ACAE0 003A9A40 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803ACAE4 003A9A44 39 00 00 40 */ li r8, 0x40 +/* 803ACAE8 003A9A48 4B FF E8 51 */ bl salCheckVolErrorAndResetDelta +/* 803ACAEC 003A9A4C A0 DD 00 5A */ lhz r6, 0x5a(r29) +/* 803ACAF0 003A9A50 7C 74 1B 78 */ mr r20, r3 +/* 803ACAF4 003A9A54 38 73 00 26 */ addi r3, r19, 0x26 +/* 803ACAF8 003A9A58 38 93 00 28 */ addi r4, r19, 0x28 +/* 803ACAFC 003A9A5C 38 BD 00 6C */ addi r5, r29, 0x6c +/* 803ACB00 003A9A60 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803ACB04 003A9A64 39 00 00 80 */ li r8, 0x80 +/* 803ACB08 003A9A68 4B FF E8 31 */ bl salCheckVolErrorAndResetDelta +/* 803ACB0C 003A9A6C A0 DD 00 5C */ lhz r6, 0x5c(r29) +/* 803ACB10 003A9A70 7E 94 1B 78 */ or r20, r20, r3 +/* 803ACB14 003A9A74 38 73 00 2A */ addi r3, r19, 0x2a +/* 803ACB18 003A9A78 38 93 00 2C */ addi r4, r19, 0x2c +/* 803ACB1C 003A9A7C 38 BD 00 6E */ addi r5, r29, 0x6e +/* 803ACB20 003A9A80 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803ACB24 003A9A84 39 00 01 00 */ li r8, 0x100 +/* 803ACB28 003A9A88 4B FF E8 11 */ bl salCheckVolErrorAndResetDelta +/* 803ACB2C 003A9A8C A0 93 00 22 */ lhz r4, 0x22(r19) +/* 803ACB30 003A9A90 7E 94 1B 78 */ or r20, r20, r3 +/* 803ACB34 003A9A94 A0 13 00 26 */ lhz r0, 0x26(r19) +/* 803ACB38 003A9A98 A0 73 00 2A */ lhz r3, 0x2a(r19) +/* 803ACB3C 003A9A9C 7C 80 03 78 */ or r0, r4, r0 +/* 803ACB40 003A9AA0 7C 60 03 78 */ or r0, r3, r0 +/* 803ACB44 003A9AA4 7E 80 03 79 */ or. r0, r20, r0 +/* 803ACB48 003A9AA8 40 82 00 14 */ bne lbl_803ACB5C +/* 803ACB4C 003A9AAC A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACB50 003A9AB0 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d +/* 803ACB54 003A9AB4 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACB58 003A9AB8 48 00 00 D0 */ b lbl_803ACC28 +lbl_803ACB5C: +/* 803ACB5C 003A9ABC 3A 20 00 01 */ li r17, 1 +/* 803ACB60 003A9AC0 48 00 00 C8 */ b lbl_803ACC28 +lbl_803ACB64: +/* 803ACB64 003A9AC4 38 00 00 00 */ li r0, 0 +/* 803ACB68 003A9AC8 B0 13 00 24 */ sth r0, 0x24(r19) +/* 803ACB6C 003A9ACC B0 13 00 28 */ sth r0, 0x28(r19) +/* 803ACB70 003A9AD0 B0 13 00 2C */ sth r0, 0x2c(r19) +/* 803ACB74 003A9AD4 48 00 00 B4 */ b lbl_803ACC28 +lbl_803ACB78: +/* 803ACB78 003A9AD8 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACB7C 003A9ADC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803ACB80 003A9AE0 41 82 00 80 */ beq lbl_803ACC00 +/* 803ACB84 003A9AE4 A0 DD 00 58 */ lhz r6, 0x58(r29) +/* 803ACB88 003A9AE8 38 73 00 22 */ addi r3, r19, 0x22 +/* 803ACB8C 003A9AEC 38 93 00 24 */ addi r4, r19, 0x24 +/* 803ACB90 003A9AF0 38 BD 00 6A */ addi r5, r29, 0x6a +/* 803ACB94 003A9AF4 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803ACB98 003A9AF8 39 00 00 40 */ li r8, 0x40 +/* 803ACB9C 003A9AFC 4B FF E7 9D */ bl salCheckVolErrorAndResetDelta +/* 803ACBA0 003A9B00 A0 DD 00 5A */ lhz r6, 0x5a(r29) +/* 803ACBA4 003A9B04 7C 74 1B 78 */ mr r20, r3 +/* 803ACBA8 003A9B08 38 73 00 26 */ addi r3, r19, 0x26 +/* 803ACBAC 003A9B0C 38 93 00 28 */ addi r4, r19, 0x28 +/* 803ACBB0 003A9B10 38 BD 00 6C */ addi r5, r29, 0x6c +/* 803ACBB4 003A9B14 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803ACBB8 003A9B18 39 00 00 80 */ li r8, 0x80 +/* 803ACBBC 003A9B1C 4B FF E7 7D */ bl salCheckVolErrorAndResetDelta +/* 803ACBC0 003A9B20 A0 93 00 22 */ lhz r4, 0x22(r19) +/* 803ACBC4 003A9B24 7E 83 1B 78 */ or r3, r20, r3 +/* 803ACBC8 003A9B28 A0 13 00 26 */ lhz r0, 0x26(r19) +/* 803ACBCC 003A9B2C 7C 80 03 78 */ or r0, r4, r0 +/* 803ACBD0 003A9B30 7C 60 03 79 */ or. r0, r3, r0 +/* 803ACBD4 003A9B34 40 82 00 24 */ bne lbl_803ACBF8 +/* 803ACBD8 003A9B38 A0 73 00 32 */ lhz r3, 0x32(r19) +/* 803ACBDC 003A9B3C A0 13 00 34 */ lhz r0, 0x34(r19) +/* 803ACBE0 003A9B40 7C 60 03 79 */ or. r0, r3, r0 +/* 803ACBE4 003A9B44 40 82 00 44 */ bne lbl_803ACC28 +/* 803ACBE8 003A9B48 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACBEC 003A9B4C 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a +/* 803ACBF0 003A9B50 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACBF4 003A9B54 48 00 00 34 */ b lbl_803ACC28 +lbl_803ACBF8: +/* 803ACBF8 003A9B58 3A 20 00 01 */ li r17, 1 +/* 803ACBFC 003A9B5C 48 00 00 2C */ b lbl_803ACC28 +lbl_803ACC00: +/* 803ACC00 003A9B60 38 00 00 00 */ li r0, 0 +/* 803ACC04 003A9B64 B0 13 00 24 */ sth r0, 0x24(r19) +/* 803ACC08 003A9B68 B0 13 00 28 */ sth r0, 0x28(r19) +/* 803ACC0C 003A9B6C A0 73 00 32 */ lhz r3, 0x32(r19) +/* 803ACC10 003A9B70 A0 13 00 34 */ lhz r0, 0x34(r19) +/* 803ACC14 003A9B74 7C 60 03 79 */ or. r0, r3, r0 +/* 803ACC18 003A9B78 41 82 00 10 */ beq lbl_803ACC28 +/* 803ACC1C 003A9B7C A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACC20 003A9B80 60 00 00 10 */ ori r0, r0, 0x10 +/* 803ACC24 003A9B84 B0 13 00 0C */ sth r0, 0xc(r19) +lbl_803ACC28: +/* 803ACC28 003A9B88 28 11 00 00 */ cmplwi r17, 0 +/* 803ACC2C 003A9B8C 41 82 00 14 */ beq lbl_803ACC40 +/* 803ACC30 003A9B90 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACC34 003A9B94 60 00 00 08 */ ori r0, r0, 8 +/* 803ACC38 003A9B98 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACC3C 003A9B9C 48 00 00 10 */ b lbl_803ACC4C +lbl_803ACC40: +/* 803ACC40 003A9BA0 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACC44 003A9BA4 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 803ACC48 003A9BA8 B0 13 00 0C */ sth r0, 0xc(r19) +lbl_803ACC4C: +/* 803ACC4C 003A9BAC 80 10 00 54 */ lwz r0, 0x54(r16) +/* 803ACC50 003A9BB0 2C 00 00 00 */ cmpwi r0, 0 +/* 803ACC54 003A9BB4 40 82 00 68 */ bne lbl_803ACCBC +/* 803ACC58 003A9BB8 A0 13 00 2E */ lhz r0, 0x2e(r19) +/* 803ACC5C 003A9BBC 28 00 00 00 */ cmplwi r0, 0 +/* 803ACC60 003A9BC0 40 82 00 40 */ bne lbl_803ACCA0 +/* 803ACC64 003A9BC4 A0 13 00 30 */ lhz r0, 0x30(r19) +/* 803ACC68 003A9BC8 28 00 00 00 */ cmplwi r0, 0 +/* 803ACC6C 003A9BCC 40 82 00 34 */ bne lbl_803ACCA0 +/* 803ACC70 003A9BD0 A0 13 00 32 */ lhz r0, 0x32(r19) +/* 803ACC74 003A9BD4 28 00 00 00 */ cmplwi r0, 0 +/* 803ACC78 003A9BD8 40 82 00 28 */ bne lbl_803ACCA0 +/* 803ACC7C 003A9BDC A0 13 00 34 */ lhz r0, 0x34(r19) +/* 803ACC80 003A9BE0 28 00 00 00 */ cmplwi r0, 0 +/* 803ACC84 003A9BE4 40 82 00 1C */ bne lbl_803ACCA0 +/* 803ACC88 003A9BE8 A0 13 00 2A */ lhz r0, 0x2a(r19) +/* 803ACC8C 003A9BEC 28 00 00 00 */ cmplwi r0, 0 +/* 803ACC90 003A9BF0 40 82 00 10 */ bne lbl_803ACCA0 +/* 803ACC94 003A9BF4 A0 13 00 2C */ lhz r0, 0x2c(r19) +/* 803ACC98 003A9BF8 28 00 00 00 */ cmplwi r0, 0 +/* 803ACC9C 003A9BFC 41 82 00 14 */ beq lbl_803ACCB0 +lbl_803ACCA0: +/* 803ACCA0 003A9C00 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACCA4 003A9C04 60 00 00 04 */ ori r0, r0, 4 +/* 803ACCA8 003A9C08 B0 13 00 0C */ sth r0, 0xc(r19) +/* 803ACCAC 003A9C0C 48 00 00 10 */ b lbl_803ACCBC +lbl_803ACCB0: +/* 803ACCB0 003A9C10 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803ACCB4 003A9C14 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c +/* 803ACCB8 003A9C18 B0 13 00 0C */ sth r0, 0xc(r19) +lbl_803ACCBC: +/* 803ACCBC 003A9C1C 80 1D 00 24 */ lwz r0, 0x24(r29) +/* 803ACCC0 003A9C20 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16 +/* 803ACCC4 003A9C24 41 82 00 14 */ beq lbl_803ACCD8 +/* 803ACCC8 003A9C28 A0 1D 00 D0 */ lhz r0, 0xd0(r29) +/* 803ACCCC 003A9C2C B0 13 00 40 */ sth r0, 0x40(r19) +/* 803ACCD0 003A9C30 A0 1D 00 D2 */ lhz r0, 0xd2(r29) +/* 803ACCD4 003A9C34 B0 13 00 42 */ sth r0, 0x42(r19) +lbl_803ACCD8: +/* 803ACCD8 003A9C38 80 1D 00 24 */ lwz r0, 0x24(r29) +/* 803ACCDC 003A9C3C 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17 +/* 803ACCE0 003A9C40 41 82 00 0C */ beq lbl_803ACCEC +/* 803ACCE4 003A9C44 A0 1D 00 CC */ lhz r0, 0xcc(r29) +/* 803ACCE8 003A9C48 B0 13 00 08 */ sth r0, 8(r19) +lbl_803ACCEC: +/* 803ACCEC 003A9C4C 80 1D 00 24 */ lwz r0, 0x24(r29) +/* 803ACCF0 003A9C50 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 803ACCF4 003A9C54 41 82 00 0C */ beq lbl_803ACD00 +/* 803ACCF8 003A9C58 A0 1D 00 CE */ lhz r0, 0xce(r29) +/* 803ACCFC 003A9C5C B0 13 00 0A */ sth r0, 0xa(r19) +lbl_803ACD00: +/* 803ACD00 003A9C60 A0 93 00 7A */ lhz r4, 0x7a(r19) +/* 803ACD04 003A9C64 38 00 00 00 */ li r0, 0 +/* 803ACD08 003A9C68 A0 73 00 7C */ lhz r3, 0x7c(r19) +/* 803ACD0C 003A9C6C 3B 60 00 00 */ li r27, 0 +/* 803ACD10 003A9C70 50 83 80 1E */ rlwimi r3, r4, 0x10, 0, 0xf +/* 803ACD14 003A9C74 90 01 00 20 */ stw r0, 0x20(r1) +/* 803ACD18 003A9C78 90 7D 00 20 */ stw r3, 0x20(r29) +lbl_803ACD1C: +/* 803ACD1C 003A9C7C 57 60 15 BA */ rlwinm r0, r27, 2, 0x16, 0x1d +/* 803ACD20 003A9C80 57 74 06 3E */ clrlwi r20, r27, 0x18 +/* 803ACD24 003A9C84 7E 3D 02 14 */ add r17, r29, r0 +/* 803ACD28 003A9C88 80 11 00 24 */ lwz r0, 0x24(r17) +/* 803ACD2C 003A9C8C 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 +/* 803ACD30 003A9C90 41 82 00 0C */ beq lbl_803ACD3C +/* 803ACD34 003A9C94 38 7D 00 A4 */ addi r3, r29, 0xa4 +/* 803ACD38 003A9C98 4B FF C9 15 */ bl adsrRelease +lbl_803ACD3C: +/* 803ACD3C 003A9C9C 80 11 00 24 */ lwz r0, 0x24(r17) +/* 803ACD40 003A9CA0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803ACD44 003A9CA4 41 82 00 20 */ beq lbl_803ACD64 +/* 803ACD48 003A9CA8 80 11 00 38 */ lwz r0, 0x38(r17) +/* 803ACD4C 003A9CAC 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ACD50 003A9CB0 B0 13 00 A6 */ sth r0, 0xa6(r19) +/* 803ACD54 003A9CB4 80 11 00 38 */ lwz r0, 0x38(r17) +/* 803ACD58 003A9CB8 B0 13 00 A8 */ sth r0, 0xa8(r19) +/* 803ACD5C 003A9CBC 80 11 00 38 */ lwz r0, 0x38(r17) +/* 803ACD60 003A9CC0 90 1D 00 E0 */ stw r0, 0xe0(r29) +lbl_803ACD64: +/* 803ACD64 003A9CC4 38 7D 00 A4 */ addi r3, r29, 0xa4 +/* 803ACD68 003A9CC8 38 93 00 64 */ addi r4, r19, 0x64 +/* 803ACD6C 003A9CCC 38 B3 00 66 */ addi r5, r19, 0x66 +/* 803ACD70 003A9CD0 4B FF CA 45 */ bl adsrHandle +/* 803ACD74 003A9CD4 A2 B3 00 66 */ lhz r21, 0x66(r19) +/* 803ACD78 003A9CD8 38 80 00 00 */ li r4, 0 +/* 803ACD7C 003A9CDC 57 60 06 3F */ clrlwi. r0, r27, 0x18 +/* 803ACD80 003A9CE0 7C 71 1B 78 */ mr r17, r3 +/* 803ACD84 003A9CE4 B0 93 00 44 */ sth r4, 0x44(r19) +/* 803ACD88 003A9CE8 B0 93 00 46 */ sth r4, 0x46(r19) +/* 803ACD8C 003A9CEC B0 93 00 48 */ sth r4, 0x48(r19) +/* 803ACD90 003A9CF0 B0 93 00 4A */ sth r4, 0x4a(r19) +/* 803ACD94 003A9CF4 B0 93 00 4C */ sth r4, 0x4c(r19) +/* 803ACD98 003A9CF8 82 DD 00 04 */ lwz r22, 4(r29) +/* 803ACD9C 003A9CFC 41 82 00 2C */ beq lbl_803ACDC8 +/* 803ACDA0 003A9D00 38 00 00 07 */ li r0, 7 +/* 803ACDA4 003A9D04 56 83 08 3C */ slwi r3, r20, 1 +/* 803ACDA8 003A9D08 B0 16 00 00 */ sth r0, 0(r22) +/* 803ACDAC 003A9D0C 38 00 00 01 */ li r0, 1 +/* 803ACDB0 003A9D10 38 83 00 44 */ addi r4, r3, 0x44 +/* 803ACDB4 003A9D14 B0 16 00 02 */ sth r0, 2(r22) +/* 803ACDB8 003A9D18 3A D6 00 04 */ addi r22, r22, 4 +/* 803ACDBC 003A9D1C 7C 73 22 2E */ lhzx r3, r19, r4 +/* 803ACDC0 003A9D20 38 03 00 01 */ addi r0, r3, 1 +/* 803ACDC4 003A9D24 7C 13 23 2E */ sthx r0, r19, r4 +lbl_803ACDC8: +/* 803ACDC8 003A9D28 7F A3 EB 78 */ mr r3, r29 +/* 803ACDCC 003A9D2C 4B FF E6 A9 */ bl sal_update_hostplayinfo +/* 803ACDD0 003A9D30 38 1B 00 01 */ addi r0, r27, 1 +/* 803ACDD4 003A9D34 3B E1 00 10 */ addi r31, r1, 0x10 +/* 803ACDD8 003A9D38 54 1B 06 3E */ clrlwi r27, r0, 0x18 +/* 803ACDDC 003A9D3C 48 00 01 F0 */ b lbl_803ACFCC +lbl_803ACDE0: +/* 803ACDE0 003A9D40 28 11 00 00 */ cmplwi r17, 0 +/* 803ACDE4 003A9D44 41 82 00 44 */ beq lbl_803ACE28 +/* 803ACDE8 003A9D48 38 00 00 07 */ li r0, 7 +/* 803ACDEC 003A9D4C 57 63 0D FC */ rlwinm r3, r27, 1, 0x17, 0x1e +/* 803ACDF0 003A9D50 B0 16 00 00 */ sth r0, 0(r22) +/* 803ACDF4 003A9D54 38 00 00 00 */ li r0, 0 +/* 803ACDF8 003A9D58 38 C3 00 44 */ addi r6, r3, 0x44 +/* 803ACDFC 003A9D5C 7F A3 EB 78 */ mr r3, r29 +/* 803ACE00 003A9D60 B0 16 00 02 */ sth r0, 2(r22) +/* 803ACE04 003A9D64 38 80 00 00 */ li r4, 0 +/* 803ACE08 003A9D68 3A D6 00 04 */ addi r22, r22, 4 +/* 803ACE0C 003A9D6C 7C B3 32 2E */ lhzx r5, r19, r6 +/* 803ACE10 003A9D70 38 05 00 01 */ addi r0, r5, 1 +/* 803ACE14 003A9D74 7C 13 33 2E */ sthx r0, r19, r6 +/* 803ACE18 003A9D78 48 00 0E 69 */ bl salSynthSendMessage +/* 803ACE1C 003A9D7C 7F A3 EB 78 */ mr r3, r29 +/* 803ACE20 003A9D80 48 00 0F 45 */ bl salDeactivateVoice +/* 803ACE24 003A9D84 48 00 01 B4 */ b lbl_803ACFD8 +lbl_803ACE28: +/* 803ACE28 003A9D88 57 7E 0D FC */ rlwinm r30, r27, 1, 0x17, 0x1e +/* 803ACE2C 003A9D8C 57 64 06 3E */ clrlwi r4, r27, 0x18 +/* 803ACE30 003A9D90 7C 1F F2 2E */ lhzx r0, r31, r30 +/* 803ACE34 003A9D94 28 00 00 00 */ cmplwi r0, 0 +/* 803ACE38 003A9D98 41 82 00 64 */ beq lbl_803ACE9C +/* 803ACE3C 003A9D9C 3C A0 80 3E */ lis r5, lbl_803D8AA8@ha +/* 803ACE40 003A9DA0 38 7E 00 44 */ addi r3, r30, 0x44 +/* 803ACE44 003A9DA4 39 05 8A A8 */ addi r8, r5, lbl_803D8AA8@l +/* 803ACE48 003A9DA8 38 A0 00 00 */ li r5, 0 +/* 803ACE4C 003A9DAC 38 00 00 01 */ li r0, 1 +/* 803ACE50 003A9DB0 38 E0 00 00 */ li r7, 0 +/* 803ACE54 003A9DB4 48 00 00 3C */ b lbl_803ACE90 +lbl_803ACE58: +/* 803ACE58 003A9DB8 54 A9 06 3E */ clrlwi r9, r5, 0x18 +/* 803ACE5C 003A9DBC 7C DF F2 2E */ lhzx r6, r31, r30 +/* 803ACE60 003A9DC0 7C 09 48 30 */ slw r9, r0, r9 +/* 803ACE64 003A9DC4 7D 26 30 39 */ and. r6, r9, r6 +/* 803ACE68 003A9DC8 41 82 00 24 */ beq lbl_803ACE8C +/* 803ACE6C 003A9DCC 54 A6 0D FC */ rlwinm r6, r5, 1, 0x17, 0x1e +/* 803ACE70 003A9DD0 7C C8 32 2E */ lhzx r6, r8, r6 +/* 803ACE74 003A9DD4 B0 D6 00 00 */ sth r6, 0(r22) +/* 803ACE78 003A9DD8 B0 F6 00 02 */ sth r7, 2(r22) +/* 803ACE7C 003A9DDC 3A D6 00 04 */ addi r22, r22, 4 +/* 803ACE80 003A9DE0 7C D3 1A 2E */ lhzx r6, r19, r3 +/* 803ACE84 003A9DE4 38 C6 00 01 */ addi r6, r6, 1 +/* 803ACE88 003A9DE8 7C D3 1B 2E */ sthx r6, r19, r3 +lbl_803ACE8C: +/* 803ACE8C 003A9DEC 38 A5 00 01 */ addi r5, r5, 1 +lbl_803ACE90: +/* 803ACE90 003A9DF0 54 A6 06 3E */ clrlwi r6, r5, 0x18 +/* 803ACE94 003A9DF4 28 06 00 09 */ cmplwi r6, 9 +/* 803ACE98 003A9DF8 41 80 FF C0 */ blt lbl_803ACE58 +lbl_803ACE9C: +/* 803ACE9C 003A9DFC 54 80 10 3A */ slwi r0, r4, 2 +/* 803ACEA0 003A9E00 7E 3D 02 14 */ add r17, r29, r0 +/* 803ACEA4 003A9E04 80 71 00 24 */ lwz r3, 0x24(r17) +/* 803ACEA8 003A9E08 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a +/* 803ACEAC 003A9E0C 41 82 00 1C */ beq lbl_803ACEC8 +/* 803ACEB0 003A9E10 38 7D 00 A4 */ addi r3, r29, 0xa4 +/* 803ACEB4 003A9E14 38 80 00 0A */ li r4, 0xa +/* 803ACEB8 003A9E18 4B FF C6 45 */ bl adsrStartRelease +/* 803ACEBC 003A9E1C 38 00 00 01 */ li r0, 1 +/* 803ACEC0 003A9E20 98 1D 00 ED */ stb r0, 0xed(r29) +/* 803ACEC4 003A9E24 48 00 00 6C */ b lbl_803ACF30 +lbl_803ACEC8: +/* 803ACEC8 003A9E28 88 1D 00 ED */ lbz r0, 0xed(r29) +/* 803ACECC 003A9E2C 28 00 00 00 */ cmplwi r0, 0 +/* 803ACED0 003A9E30 40 82 00 60 */ bne lbl_803ACF30 +/* 803ACED4 003A9E34 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 +/* 803ACED8 003A9E38 41 82 00 0C */ beq lbl_803ACEE4 +/* 803ACEDC 003A9E3C 38 7D 00 A4 */ addi r3, r29, 0xa4 +/* 803ACEE0 003A9E40 4B FF C7 6D */ bl adsrRelease +lbl_803ACEE4: +/* 803ACEE4 003A9E44 80 11 00 24 */ lwz r0, 0x24(r17) +/* 803ACEE8 003A9E48 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 803ACEEC 003A9E4C 41 82 00 44 */ beq lbl_803ACF30 +/* 803ACEF0 003A9E50 38 60 00 53 */ li r3, 0x53 +/* 803ACEF4 003A9E54 38 00 00 54 */ li r0, 0x54 +/* 803ACEF8 003A9E58 B0 76 00 00 */ sth r3, 0(r22) +/* 803ACEFC 003A9E5C 38 9E 00 44 */ addi r4, r30, 0x44 +/* 803ACF00 003A9E60 80 71 00 38 */ lwz r3, 0x38(r17) +/* 803ACF04 003A9E64 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803ACF08 003A9E68 B0 76 00 02 */ sth r3, 2(r22) +/* 803ACF0C 003A9E6C B0 16 00 04 */ sth r0, 4(r22) +/* 803ACF10 003A9E70 80 11 00 38 */ lwz r0, 0x38(r17) +/* 803ACF14 003A9E74 B0 16 00 06 */ sth r0, 6(r22) +/* 803ACF18 003A9E78 3A D6 00 08 */ addi r22, r22, 8 +/* 803ACF1C 003A9E7C 7C 73 22 2E */ lhzx r3, r19, r4 +/* 803ACF20 003A9E80 38 03 00 02 */ addi r0, r3, 2 +/* 803ACF24 003A9E84 7C 13 23 2E */ sthx r0, r19, r4 +/* 803ACF28 003A9E88 80 11 00 38 */ lwz r0, 0x38(r17) +/* 803ACF2C 003A9E8C 90 1D 00 E0 */ stw r0, 0xe0(r29) +lbl_803ACF30: +/* 803ACF30 003A9E90 82 9D 00 B4 */ lwz r20, 0xb4(r29) +/* 803ACF34 003A9E94 38 7D 00 A4 */ addi r3, r29, 0xa4 +/* 803ACF38 003A9E98 38 81 00 0E */ addi r4, r1, 0xe +/* 803ACF3C 003A9E9C 38 A1 00 0C */ addi r5, r1, 0xc +/* 803ACF40 003A9EA0 4B FF C8 75 */ bl adsrHandle +/* 803ACF44 003A9EA4 A0 01 00 0C */ lhz r0, 0xc(r1) +/* 803ACF48 003A9EA8 56 A4 04 3E */ clrlwi r4, r21, 0x10 +/* 803ACF4C 003A9EAC 7C 71 1B 78 */ mr r17, r3 +/* 803ACF50 003A9EB0 7C 04 00 40 */ cmplw r4, r0 +/* 803ACF54 003A9EB4 40 82 00 34 */ bne lbl_803ACF88 +/* 803ACF58 003A9EB8 2C 14 00 00 */ cmpwi r20, 0 +/* 803ACF5C 003A9EBC 41 82 00 64 */ beq lbl_803ACFC0 +/* 803ACF60 003A9EC0 38 00 00 32 */ li r0, 0x32 +/* 803ACF64 003A9EC4 38 9E 00 44 */ addi r4, r30, 0x44 +/* 803ACF68 003A9EC8 B0 16 00 00 */ sth r0, 0(r22) +/* 803ACF6C 003A9ECC A0 01 00 0E */ lhz r0, 0xe(r1) +/* 803ACF70 003A9ED0 B0 16 00 02 */ sth r0, 2(r22) +/* 803ACF74 003A9ED4 3A D6 00 04 */ addi r22, r22, 4 +/* 803ACF78 003A9ED8 7C 73 22 2E */ lhzx r3, r19, r4 +/* 803ACF7C 003A9EDC 38 03 00 01 */ addi r0, r3, 1 +/* 803ACF80 003A9EE0 7C 13 23 2E */ sthx r0, r19, r4 +/* 803ACF84 003A9EE4 48 00 00 3C */ b lbl_803ACFC0 +lbl_803ACF88: +/* 803ACF88 003A9EE8 38 60 00 32 */ li r3, 0x32 +/* 803ACF8C 003A9EEC 38 00 00 33 */ li r0, 0x33 +/* 803ACF90 003A9EF0 B0 76 00 00 */ sth r3, 0(r22) +/* 803ACF94 003A9EF4 38 9E 00 44 */ addi r4, r30, 0x44 +/* 803ACF98 003A9EF8 A0 61 00 0E */ lhz r3, 0xe(r1) +/* 803ACF9C 003A9EFC B0 76 00 02 */ sth r3, 2(r22) +/* 803ACFA0 003A9F00 B0 16 00 04 */ sth r0, 4(r22) +/* 803ACFA4 003A9F04 A0 01 00 0C */ lhz r0, 0xc(r1) +/* 803ACFA8 003A9F08 B0 16 00 06 */ sth r0, 6(r22) +/* 803ACFAC 003A9F0C 3A D6 00 08 */ addi r22, r22, 8 +/* 803ACFB0 003A9F10 7C 73 22 2E */ lhzx r3, r19, r4 +/* 803ACFB4 003A9F14 38 03 00 02 */ addi r0, r3, 2 +/* 803ACFB8 003A9F18 7C 13 23 2E */ sthx r0, r19, r4 +/* 803ACFBC 003A9F1C A2 A1 00 0C */ lhz r21, 0xc(r1) +lbl_803ACFC0: +/* 803ACFC0 003A9F20 7F A3 EB 78 */ mr r3, r29 +/* 803ACFC4 003A9F24 4B FF E4 B1 */ bl sal_update_hostplayinfo +/* 803ACFC8 003A9F28 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803ACFCC: +/* 803ACFCC 003A9F2C 57 60 06 3E */ clrlwi r0, r27, 0x18 +/* 803ACFD0 003A9F30 28 00 00 05 */ cmplwi r0, 5 +/* 803ACFD4 003A9F34 41 80 FE 0C */ blt lbl_803ACDE0 +lbl_803ACFD8: +/* 803ACFD8 003A9F38 28 11 00 00 */ cmplwi r17, 0 +/* 803ACFDC 003A9F3C 41 82 00 18 */ beq lbl_803ACFF4 +/* 803ACFE0 003A9F40 7F A3 EB 78 */ mr r3, r29 +/* 803ACFE4 003A9F44 38 80 00 00 */ li r4, 0 +/* 803ACFE8 003A9F48 48 00 0C 99 */ bl salSynthSendMessage +/* 803ACFEC 003A9F4C 7F A3 EB 78 */ mr r3, r29 +/* 803ACFF0 003A9F50 48 00 0D 75 */ bl salDeactivateVoice +lbl_803ACFF4: +/* 803ACFF4 003A9F54 80 7D 00 04 */ lwz r3, 4(r29) +/* 803ACFF8 003A9F58 7C 83 B0 50 */ subf r4, r3, r22 +/* 803ACFFC 003A9F5C 4B FD 1B 41 */ bl DCStoreRangeNoSync +/* 803AD000 003A9F60 A0 13 00 0C */ lhz r0, 0xc(r19) +/* 803AD004 003A9F64 3C 60 80 3E */ lis r3, lbl_803D8A68@ha +/* 803AD008 003A9F68 A0 93 00 A6 */ lhz r4, 0xa6(r19) +/* 803AD00C 003A9F6C 38 63 8A 68 */ addi r3, r3, lbl_803D8A68@l +/* 803AD010 003A9F70 54 00 08 3C */ slwi r0, r0, 1 +/* 803AD014 003A9F74 7C 03 02 2E */ lhzx r0, r3, r0 +/* 803AD018 003A9F78 2C 04 00 02 */ cmpwi r4, 2 +/* 803AD01C 003A9F7C 7E E0 BA 14 */ add r23, r0, r23 +/* 803AD020 003A9F80 3A F7 04 FE */ addi r23, r23, 0x4fe +/* 803AD024 003A9F84 40 80 00 34 */ bge lbl_803AD058 +/* 803AD028 003A9F88 2C 04 00 00 */ cmpwi r4, 0 +/* 803AD02C 003A9F8C 40 80 00 08 */ bge lbl_803AD034 +/* 803AD030 003A9F90 48 00 00 28 */ b lbl_803AD058 +lbl_803AD034: +/* 803AD034 003A9F94 1C 84 00 06 */ mulli r4, r4, 6 +/* 803AD038 003A9F98 A0 13 00 08 */ lhz r0, 8(r19) +/* 803AD03C 003A9F9C 3C 60 80 3F */ lis r3, lbl_803F3FA8@ha +/* 803AD040 003A9FA0 54 00 08 3C */ slwi r0, r0, 1 +/* 803AD044 003A9FA4 38 63 3F A8 */ addi r3, r3, lbl_803F3FA8@l +/* 803AD048 003A9FA8 7C 63 22 14 */ add r3, r3, r4 +/* 803AD04C 003A9FAC 7C 03 02 2E */ lhzx r0, r3, r0 +/* 803AD050 003A9FB0 7E F7 02 14 */ add r23, r23, r0 +/* 803AD054 003A9FB4 48 00 00 20 */ b lbl_803AD074 +lbl_803AD058: +/* 803AD058 003A9FB8 A0 93 00 08 */ lhz r4, 8(r19) +/* 803AD05C 003A9FBC 3C 60 80 3F */ lis r3, lbl_803F3FA8@ha +/* 803AD060 003A9FC0 38 03 3F A8 */ addi r0, r3, lbl_803F3FA8@l +/* 803AD064 003A9FC4 54 83 08 3C */ slwi r3, r4, 1 +/* 803AD068 003A9FC8 7C 60 1A 14 */ add r3, r0, r3 +/* 803AD06C 003A9FCC A0 03 00 0C */ lhz r0, 0xc(r3) +/* 803AD070 003A9FD0 7E F7 02 14 */ add r23, r23, r0 +lbl_803AD074: +/* 803AD074 003A9FD4 3C 80 80 00 */ lis r4, 0x800000F8@ha +/* 803AD078 003A9FD8 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803AD07C 003A9FDC 80 04 00 F8 */ lwz r0, 0x800000F8@l(r4) +/* 803AD080 003A9FE0 38 63 85 1F */ addi r3, r3, 0x51EB851F@l +/* 803AD084 003A9FE4 A0 93 00 44 */ lhz r4, 0x44(r19) +/* 803AD088 003A9FE8 7C 03 00 16 */ mulhwu r0, r3, r0 +/* 803AD08C 003A9FEC A0 73 00 46 */ lhz r3, 0x46(r19) +/* 803AD090 003A9FF0 54 87 10 3A */ slwi r7, r4, 2 +/* 803AD094 003A9FF4 A0 B3 00 48 */ lhz r5, 0x48(r19) +/* 803AD098 003A9FF8 A0 93 00 4A */ lhz r4, 0x4a(r19) +/* 803AD09C 003A9FFC 54 66 10 3A */ slwi r6, r3, 2 +/* 803AD0A0 003AA000 7E F7 3A 14 */ add r23, r23, r7 +/* 803AD0A4 003AA004 A0 73 00 4C */ lhz r3, 0x4c(r19) +/* 803AD0A8 003AA008 7E F7 32 14 */ add r23, r23, r6 +/* 803AD0AC 003AA00C 54 A5 10 3A */ slwi r5, r5, 2 +/* 803AD0B0 003AA010 7E F7 2A 14 */ add r23, r23, r5 +/* 803AD0B4 003AA014 54 84 10 3A */ slwi r4, r4, 2 +/* 803AD0B8 003AA018 7E F7 22 14 */ add r23, r23, r4 +/* 803AD0BC 003AA01C 54 63 10 3A */ slwi r3, r3, 2 +/* 803AD0C0 003AA020 7E F7 1A 14 */ add r23, r23, r3 +/* 803AD0C4 003AA024 54 00 C9 FE */ srwi r0, r0, 7 +/* 803AD0C8 003AA028 7C 17 00 40 */ cmplw r23, r0 +/* 803AD0CC 003AA02C 40 81 01 18 */ ble lbl_803AD1E4 +/* 803AD0D0 003AA030 80 01 00 20 */ lwz r0, 0x20(r1) +/* 803AD0D4 003AA034 28 00 00 00 */ cmplwi r0, 0 +/* 803AD0D8 003AA038 40 82 00 18 */ bne lbl_803AD0F0 +/* 803AD0DC 003AA03C 28 11 00 00 */ cmplwi r17, 0 +/* 803AD0E0 003AA040 40 82 00 10 */ bne lbl_803AD0F0 +/* 803AD0E4 003AA044 7E 03 83 78 */ mr r3, r16 +/* 803AD0E8 003AA048 7F A4 EB 78 */ mr r4, r29 +/* 803AD0EC 003AA04C 4B FF E4 A9 */ bl sub_803ab594 +lbl_803AD0F0: +/* 803AD0F0 003AA050 7F A3 EB 78 */ mr r3, r29 +/* 803AD0F4 003AA054 48 00 0C 71 */ bl salDeactivateVoice +/* 803AD0F8 003AA058 7F A3 EB 78 */ mr r3, r29 +/* 803AD0FC 003AA05C 38 80 00 01 */ li r4, 1 +/* 803AD100 003AA060 48 00 0B 81 */ bl salSynthSendMessage +/* 803AD104 003AA064 3C 60 80 56 */ lis r3, lbl_8055F840@ha +/* 803AD108 003AA068 3B 9C FF FF */ addi r28, r28, -1 +/* 803AD10C 003AA06C 57 84 10 3A */ slwi r4, r28, 2 +/* 803AD110 003AA070 38 03 F8 40 */ addi r0, r3, lbl_8055F840@l +/* 803AD114 003AA074 7D C0 22 14 */ add r14, r0, r4 +/* 803AD118 003AA078 48 00 00 38 */ b lbl_803AD150 +lbl_803AD11C: +/* 803AD11C 003AA07C 80 8E FF FC */ lwz r4, -4(r14) +/* 803AD120 003AA080 88 04 00 EC */ lbz r0, 0xec(r4) +/* 803AD124 003AA084 28 00 00 02 */ cmplwi r0, 2 +/* 803AD128 003AA088 40 82 00 0C */ bne lbl_803AD134 +/* 803AD12C 003AA08C 7E 03 83 78 */ mr r3, r16 +/* 803AD130 003AA090 4B FF E4 65 */ bl sub_803ab594 +lbl_803AD134: +/* 803AD134 003AA094 80 6E FF FC */ lwz r3, -4(r14) +/* 803AD138 003AA098 48 00 0C 2D */ bl salDeactivateVoice +/* 803AD13C 003AA09C 80 6E FF FC */ lwz r3, -4(r14) +/* 803AD140 003AA0A0 38 80 00 01 */ li r4, 1 +/* 803AD144 003AA0A4 48 00 0B 3D */ bl salSynthSendMessage +/* 803AD148 003AA0A8 39 CE FF FC */ addi r14, r14, -4 +/* 803AD14C 003AA0AC 3B 9C FF FF */ addi r28, r28, -1 +lbl_803AD150: +/* 803AD150 003AA0B0 2C 1C 00 00 */ cmpwi r28, 0 +/* 803AD154 003AA0B4 41 81 FF C8 */ bgt lbl_803AD11C +/* 803AD158 003AA0B8 88 61 00 24 */ lbz r3, 0x24(r1) +/* 803AD15C 003AA0BC 38 03 00 01 */ addi r0, r3, 1 +/* 803AD160 003AA0C0 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AD164 003AA0C4 54 0E 06 3E */ clrlwi r14, r0, 0x18 +/* 803AD168 003AA0C8 3A 23 F2 60 */ addi r17, r3, lbl_8055F260@l +/* 803AD16C 003AA0CC 48 00 00 64 */ b lbl_803AD1D0 +lbl_803AD170: +/* 803AD170 003AA0D0 55 C0 06 3E */ clrlwi r0, r14, 0x18 +/* 803AD174 003AA0D4 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803AD178 003AA0D8 7E 71 02 14 */ add r19, r17, r0 +/* 803AD17C 003AA0DC 88 13 00 50 */ lbz r0, 0x50(r19) +/* 803AD180 003AA0E0 28 00 00 01 */ cmplwi r0, 1 +/* 803AD184 003AA0E4 40 82 00 48 */ bne lbl_803AD1CC +/* 803AD188 003AA0E8 82 93 00 48 */ lwz r20, 0x48(r19) +/* 803AD18C 003AA0EC 48 00 00 38 */ b lbl_803AD1C4 +lbl_803AD190: +/* 803AD190 003AA0F0 88 14 00 EC */ lbz r0, 0xec(r20) +/* 803AD194 003AA0F4 82 B4 00 0C */ lwz r21, 0xc(r20) +/* 803AD198 003AA0F8 28 00 00 02 */ cmplwi r0, 2 +/* 803AD19C 003AA0FC 40 82 00 10 */ bne lbl_803AD1AC +/* 803AD1A0 003AA100 7E 63 9B 78 */ mr r3, r19 +/* 803AD1A4 003AA104 7E 84 A3 78 */ mr r4, r20 +/* 803AD1A8 003AA108 4B FF E3 ED */ bl sub_803ab594 +lbl_803AD1AC: +/* 803AD1AC 003AA10C 7E 83 A3 78 */ mr r3, r20 +/* 803AD1B0 003AA110 48 00 0B B5 */ bl salDeactivateVoice +/* 803AD1B4 003AA114 7E 83 A3 78 */ mr r3, r20 +/* 803AD1B8 003AA118 38 80 00 01 */ li r4, 1 +/* 803AD1BC 003AA11C 48 00 0A C5 */ bl salSynthSendMessage +/* 803AD1C0 003AA120 7E B4 AB 78 */ mr r20, r21 +lbl_803AD1C4: +/* 803AD1C4 003AA124 28 14 00 00 */ cmplwi r20, 0 +/* 803AD1C8 003AA128 40 82 FF C8 */ bne lbl_803AD190 +lbl_803AD1CC: +/* 803AD1CC 003AA12C 39 CE 00 01 */ addi r14, r14, 1 +lbl_803AD1D0: +/* 803AD1D0 003AA130 88 0D AF 8C */ lbz r0, lbl_805A9B4C@sda21(r13) +/* 803AD1D4 003AA134 55 C3 06 3E */ clrlwi r3, r14, 0x18 +/* 803AD1D8 003AA138 7C 03 00 40 */ cmplw r3, r0 +/* 803AD1DC 003AA13C 41 80 FF 94 */ blt lbl_803AD170 +/* 803AD1E0 003AA140 48 00 01 18 */ b lbl_803AD2F8 +lbl_803AD1E4: +/* 803AD1E4 003AA144 28 12 00 00 */ cmplwi r18, 0 +/* 803AD1E8 003AA148 40 82 00 DC */ bne lbl_803AD2C4 +/* 803AD1EC 003AA14C 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD1F0 003AA150 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD1F4 003AA154 38 85 00 06 */ addi r4, r5, 6 +/* 803AD1F8 003AA158 38 03 FF F8 */ addi r0, r3, -8 +/* 803AD1FC 003AA15C 7C 04 00 40 */ cmplw r4, r0 +/* 803AD200 003AA160 40 81 00 8C */ ble lbl_803AD28C +/* 803AD204 003AA164 38 00 00 0D */ li r0, 0xd +/* 803AD208 003AA168 B0 05 00 00 */ sth r0, 0(r5) +/* 803AD20C 003AA16C 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD210 003AA170 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD214 003AA174 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD218 003AA178 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD21C 003AA17C 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD220 003AA180 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD224 003AA184 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD228 003AA188 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD22C 003AA18C 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803AD230 003AA190 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD234 003AA194 38 03 00 08 */ addi r0, r3, 8 +/* 803AD238 003AA198 28 05 00 00 */ cmplwi r5, 0 +/* 803AD23C 003AA19C 7C 64 00 50 */ subf r3, r4, r0 +/* 803AD240 003AA1A0 38 03 00 03 */ addi r0, r3, 3 +/* 803AD244 003AA1A4 54 11 04 3A */ rlwinm r17, r0, 0, 0x10, 0x1d +/* 803AD248 003AA1A8 41 82 00 18 */ beq lbl_803AD260 +/* 803AD24C 003AA1AC B2 25 00 06 */ sth r17, 6(r5) +/* 803AD250 003AA1B0 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803AD254 003AA1B4 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803AD258 003AA1B8 4B FD 18 E5 */ bl DCStoreRangeNoSync +/* 803AD25C 003AA1BC 48 00 00 08 */ b lbl_803AD264 +lbl_803AD260: +/* 803AD260 003AA1C0 B2 2D AF 3C */ sth r17, lbl_805A9AFC@sda21(r13) +lbl_803AD264: +/* 803AD264 003AA1C4 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD268 003AA1C8 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD26C 003AA1CC 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD270 003AA1D0 38 03 01 80 */ addi r0, r3, 0x180 +/* 803AD274 003AA1D4 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803AD278 003AA1D8 B2 2D AF 2C */ sth r17, lbl_805A9AEC@sda21(r13) +/* 803AD27C 003AA1DC 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803AD280 003AA1E0 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803AD284 003AA1E4 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803AD288 003AA1E8 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803AD28C: +/* 803AD28C 003AA1EC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD290 003AA1F0 38 00 00 02 */ li r0, 2 +/* 803AD294 003AA1F4 56 64 84 3E */ srwi r4, r19, 0x10 +/* 803AD298 003AA1F8 B0 03 00 00 */ sth r0, 0(r3) +/* 803AD29C 003AA1FC 38 00 00 01 */ li r0, 1 +/* 803AD2A0 003AA200 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD2A4 003AA204 90 01 00 1C */ stw r0, 0x1c(r1) +/* 803AD2A8 003AA208 B0 83 00 02 */ sth r4, 2(r3) +/* 803AD2AC 003AA20C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD2B0 003AA210 B2 63 00 04 */ sth r19, 4(r3) +/* 803AD2B4 003AA214 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD2B8 003AA218 38 03 00 06 */ addi r0, r3, 6 +/* 803AD2BC 003AA21C 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +/* 803AD2C0 003AA220 48 00 00 24 */ b lbl_803AD2E4 +lbl_803AD2C4: +/* 803AD2C4 003AA224 56 60 84 3E */ srwi r0, r19, 0x10 +/* 803AD2C8 003AA228 7E 43 93 78 */ mr r3, r18 +/* 803AD2CC 003AA22C B0 12 00 00 */ sth r0, 0(r18) +/* 803AD2D0 003AA230 38 00 00 01 */ li r0, 1 +/* 803AD2D4 003AA234 38 80 00 BC */ li r4, 0xbc +/* 803AD2D8 003AA238 90 01 00 1C */ stw r0, 0x1c(r1) +/* 803AD2DC 003AA23C B2 72 00 02 */ sth r19, 2(r18) +/* 803AD2E0 003AA240 4B FD 18 31 */ bl DCFlushRangeNoSync +lbl_803AD2E4: +/* 803AD2E4 003AA244 7E 72 9B 78 */ mr r18, r19 +lbl_803AD2E8: +/* 803AD2E8 003AA248 39 CE FF FC */ addi r14, r14, -4 +/* 803AD2EC 003AA24C 3B 9C FF FF */ addi r28, r28, -1 +lbl_803AD2F0: +/* 803AD2F0 003AA250 2C 1C 00 00 */ cmpwi r28, 0 +/* 803AD2F4 003AA254 41 81 EB DC */ bgt lbl_803ABED0 +lbl_803AD2F8: +/* 803AD2F8 003AA258 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803AD2FC 003AA25C 28 00 00 00 */ cmplwi r0, 0 +/* 803AD300 003AA260 41 82 00 B8 */ beq lbl_803AD3B8 +/* 803AD304 003AA264 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD308 003AA268 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD30C 003AA26C 38 85 00 02 */ addi r4, r5, 2 +/* 803AD310 003AA270 38 03 FF F8 */ addi r0, r3, -8 +/* 803AD314 003AA274 7C 04 00 40 */ cmplw r4, r0 +/* 803AD318 003AA278 40 81 00 8C */ ble lbl_803AD3A4 +/* 803AD31C 003AA27C 38 00 00 0D */ li r0, 0xd +/* 803AD320 003AA280 B0 05 00 00 */ sth r0, 0(r5) +/* 803AD324 003AA284 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD328 003AA288 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD32C 003AA28C 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD330 003AA290 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD334 003AA294 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD338 003AA298 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD33C 003AA29C B0 03 00 04 */ sth r0, 4(r3) +/* 803AD340 003AA2A0 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD344 003AA2A4 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803AD348 003AA2A8 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD34C 003AA2AC 38 03 00 08 */ addi r0, r3, 8 +/* 803AD350 003AA2B0 28 05 00 00 */ cmplwi r5, 0 +/* 803AD354 003AA2B4 7C 64 00 50 */ subf r3, r4, r0 +/* 803AD358 003AA2B8 38 03 00 03 */ addi r0, r3, 3 +/* 803AD35C 003AA2BC 54 0E 04 3A */ rlwinm r14, r0, 0, 0x10, 0x1d +/* 803AD360 003AA2C0 41 82 00 18 */ beq lbl_803AD378 +/* 803AD364 003AA2C4 B1 C5 00 06 */ sth r14, 6(r5) +/* 803AD368 003AA2C8 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803AD36C 003AA2CC A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803AD370 003AA2D0 4B FD 17 CD */ bl DCStoreRangeNoSync +/* 803AD374 003AA2D4 48 00 00 08 */ b lbl_803AD37C +lbl_803AD378: +/* 803AD378 003AA2D8 B1 CD AF 3C */ sth r14, lbl_805A9AFC@sda21(r13) +lbl_803AD37C: +/* 803AD37C 003AA2DC 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD380 003AA2E0 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD384 003AA2E4 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD388 003AA2E8 38 03 01 80 */ addi r0, r3, 0x180 +/* 803AD38C 003AA2EC 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803AD390 003AA2F0 B1 CD AF 2C */ sth r14, lbl_805A9AEC@sda21(r13) +/* 803AD394 003AA2F4 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803AD398 003AA2F8 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803AD39C 003AA2FC 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803AD3A0 003AA300 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803AD3A4: +/* 803AD3A4 003AA304 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD3A8 003AA308 38 80 00 03 */ li r4, 3 +/* 803AD3AC 003AA30C 38 03 00 02 */ addi r0, r3, 2 +/* 803AD3B0 003AA310 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +/* 803AD3B4 003AA314 B0 83 00 00 */ sth r4, 0(r3) +lbl_803AD3B8: +/* 803AD3B8 003AA318 28 12 00 00 */ cmplwi r18, 0 +/* 803AD3BC 003AA31C 41 82 00 1C */ beq lbl_803AD3D8 +/* 803AD3C0 003AA320 38 00 00 00 */ li r0, 0 +/* 803AD3C4 003AA324 7E 43 93 78 */ mr r3, r18 +/* 803AD3C8 003AA328 B0 12 00 00 */ sth r0, 0(r18) +/* 803AD3CC 003AA32C 38 80 00 BC */ li r4, 0xbc +/* 803AD3D0 003AA330 B0 12 00 02 */ sth r0, 2(r18) +/* 803AD3D4 003AA334 4B FD 17 3D */ bl DCFlushRangeNoSync +lbl_803AD3D8: +/* 803AD3D8 003AA338 88 8D AF 8E */ lbz r4, lbl_805A9B4E@sda21(r13) +/* 803AD3DC 003AA33C 3C 60 55 55 */ lis r3, 0x55555556@ha +/* 803AD3E0 003AA340 80 10 00 AC */ lwz r0, 0xac(r16) +/* 803AD3E4 003AA344 38 63 55 56 */ addi r3, r3, 0x55555556@l +/* 803AD3E8 003AA348 38 84 00 01 */ addi r4, r4, 1 +/* 803AD3EC 003AA34C 7C 63 20 96 */ mulhw r3, r3, r4 +/* 803AD3F0 003AA350 28 00 00 00 */ cmplwi r0, 0 +/* 803AD3F4 003AA354 54 60 0F FE */ srwi r0, r3, 0x1f +/* 803AD3F8 003AA358 7C 03 02 14 */ add r0, r3, r0 +/* 803AD3FC 003AA35C 1C 00 00 03 */ mulli r0, r0, 3 +/* 803AD400 003AA360 7C 00 20 50 */ subf r0, r0, r4 +/* 803AD404 003AA364 54 0E 06 3E */ clrlwi r14, r0, 0x18 +/* 803AD408 003AA368 41 82 01 14 */ beq lbl_803AD51C +/* 803AD40C 003AA36C 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD410 003AA370 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD414 003AA374 38 85 00 0A */ addi r4, r5, 0xa +/* 803AD418 003AA378 38 03 FF F8 */ addi r0, r3, -8 +/* 803AD41C 003AA37C 7C 04 00 40 */ cmplw r4, r0 +/* 803AD420 003AA380 40 81 00 8C */ ble lbl_803AD4AC +/* 803AD424 003AA384 38 00 00 0D */ li r0, 0xd +/* 803AD428 003AA388 B0 05 00 00 */ sth r0, 0(r5) +/* 803AD42C 003AA38C 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD430 003AA390 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD434 003AA394 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD438 003AA398 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD43C 003AA39C 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD440 003AA3A0 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD444 003AA3A4 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD448 003AA3A8 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD44C 003AA3AC 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803AD450 003AA3B0 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD454 003AA3B4 38 03 00 08 */ addi r0, r3, 8 +/* 803AD458 003AA3B8 28 05 00 00 */ cmplwi r5, 0 +/* 803AD45C 003AA3BC 7C 64 00 50 */ subf r3, r4, r0 +/* 803AD460 003AA3C0 38 03 00 03 */ addi r0, r3, 3 +/* 803AD464 003AA3C4 54 11 04 3A */ rlwinm r17, r0, 0, 0x10, 0x1d +/* 803AD468 003AA3C8 41 82 00 18 */ beq lbl_803AD480 +/* 803AD46C 003AA3CC B2 25 00 06 */ sth r17, 6(r5) +/* 803AD470 003AA3D0 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803AD474 003AA3D4 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803AD478 003AA3D8 4B FD 16 C5 */ bl DCStoreRangeNoSync +/* 803AD47C 003AA3DC 48 00 00 08 */ b lbl_803AD484 +lbl_803AD480: +/* 803AD480 003AA3E0 B2 2D AF 3C */ sth r17, lbl_805A9AFC@sda21(r13) +lbl_803AD484: +/* 803AD484 003AA3E4 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD488 003AA3E8 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD48C 003AA3EC 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD490 003AA3F0 38 03 01 80 */ addi r0, r3, 0x180 +/* 803AD494 003AA3F4 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803AD498 003AA3F8 B2 2D AF 2C */ sth r17, lbl_805A9AEC@sda21(r13) +/* 803AD49C 003AA3FC 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803AD4A0 003AA400 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803AD4A4 003AA404 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803AD4A8 003AA408 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803AD4AC: +/* 803AD4AC 003AA40C 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803AD4B0 003AA410 38 00 00 04 */ li r0, 4 +/* 803AD4B4 003AA414 55 C3 15 BA */ rlwinm r3, r14, 2, 0x16, 0x1d +/* 803AD4B8 003AA418 B0 04 00 00 */ sth r0, 0(r4) +/* 803AD4BC 003AA41C 38 A3 00 30 */ addi r5, r3, 0x30 +/* 803AD4C0 003AA420 88 0D AF 8E */ lbz r0, lbl_805A9B4E@sda21(r13) +/* 803AD4C4 003AA424 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD4C8 003AA428 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD4CC 003AA42C 38 04 00 30 */ addi r0, r4, 0x30 +/* 803AD4D0 003AA430 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD4D4 003AA434 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD4D8 003AA438 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD4DC 003AA43C 88 0D AF 8E */ lbz r0, lbl_805A9B4E@sda21(r13) +/* 803AD4E0 003AA440 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD4E4 003AA444 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD4E8 003AA448 38 04 00 30 */ addi r0, r4, 0x30 +/* 803AD4EC 003AA44C 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD4F0 003AA450 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD4F4 003AA454 7C 10 28 2E */ lwzx r0, r16, r5 +/* 803AD4F8 003AA458 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD4FC 003AA45C 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD500 003AA460 B0 03 00 06 */ sth r0, 6(r3) +/* 803AD504 003AA464 7C 10 28 2E */ lwzx r0, r16, r5 +/* 803AD508 003AA468 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD50C 003AA46C B0 03 00 08 */ sth r0, 8(r3) +/* 803AD510 003AA470 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD514 003AA474 38 03 00 0A */ addi r0, r3, 0xa +/* 803AD518 003AA478 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +lbl_803AD51C: +/* 803AD51C 003AA47C 80 10 00 54 */ lwz r0, 0x54(r16) +/* 803AD520 003AA480 2C 00 00 00 */ cmpwi r0, 0 +/* 803AD524 003AA484 40 82 01 24 */ bne lbl_803AD648 +/* 803AD528 003AA488 80 10 00 B0 */ lwz r0, 0xb0(r16) +/* 803AD52C 003AA48C 28 00 00 00 */ cmplwi r0, 0 +/* 803AD530 003AA490 41 82 02 40 */ beq lbl_803AD770 +/* 803AD534 003AA494 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD538 003AA498 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD53C 003AA49C 38 85 00 0A */ addi r4, r5, 0xa +/* 803AD540 003AA4A0 38 03 FF F8 */ addi r0, r3, -8 +/* 803AD544 003AA4A4 7C 04 00 40 */ cmplw r4, r0 +/* 803AD548 003AA4A8 40 81 00 8C */ ble lbl_803AD5D4 +/* 803AD54C 003AA4AC 38 00 00 0D */ li r0, 0xd +/* 803AD550 003AA4B0 B0 05 00 00 */ sth r0, 0(r5) +/* 803AD554 003AA4B4 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD558 003AA4B8 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD55C 003AA4BC 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD560 003AA4C0 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD564 003AA4C4 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD568 003AA4C8 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD56C 003AA4CC B0 03 00 04 */ sth r0, 4(r3) +/* 803AD570 003AA4D0 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD574 003AA4D4 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803AD578 003AA4D8 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD57C 003AA4DC 38 03 00 08 */ addi r0, r3, 8 +/* 803AD580 003AA4E0 28 05 00 00 */ cmplwi r5, 0 +/* 803AD584 003AA4E4 7C 64 00 50 */ subf r3, r4, r0 +/* 803AD588 003AA4E8 38 03 00 03 */ addi r0, r3, 3 +/* 803AD58C 003AA4EC 54 11 04 3A */ rlwinm r17, r0, 0, 0x10, 0x1d +/* 803AD590 003AA4F0 41 82 00 18 */ beq lbl_803AD5A8 +/* 803AD594 003AA4F4 B2 25 00 06 */ sth r17, 6(r5) +/* 803AD598 003AA4F8 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803AD59C 003AA4FC A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803AD5A0 003AA500 4B FD 15 9D */ bl DCStoreRangeNoSync +/* 803AD5A4 003AA504 48 00 00 08 */ b lbl_803AD5AC +lbl_803AD5A8: +/* 803AD5A8 003AA508 B2 2D AF 3C */ sth r17, lbl_805A9AFC@sda21(r13) +lbl_803AD5AC: +/* 803AD5AC 003AA50C 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD5B0 003AA510 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD5B4 003AA514 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD5B8 003AA518 38 03 01 80 */ addi r0, r3, 0x180 +/* 803AD5BC 003AA51C 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803AD5C0 003AA520 B2 2D AF 2C */ sth r17, lbl_805A9AEC@sda21(r13) +/* 803AD5C4 003AA524 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803AD5C8 003AA528 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803AD5CC 003AA52C 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803AD5D0 003AA530 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803AD5D4: +/* 803AD5D4 003AA534 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803AD5D8 003AA538 38 00 00 05 */ li r0, 5 +/* 803AD5DC 003AA53C 55 C3 15 BA */ rlwinm r3, r14, 2, 0x16, 0x1d +/* 803AD5E0 003AA540 B0 04 00 00 */ sth r0, 0(r4) +/* 803AD5E4 003AA544 38 A3 00 3C */ addi r5, r3, 0x3c +/* 803AD5E8 003AA548 88 0D AF 8E */ lbz r0, lbl_805A9B4E@sda21(r13) +/* 803AD5EC 003AA54C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD5F0 003AA550 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD5F4 003AA554 38 04 00 3C */ addi r0, r4, 0x3c +/* 803AD5F8 003AA558 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD5FC 003AA55C 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD600 003AA560 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD604 003AA564 88 0D AF 8E */ lbz r0, lbl_805A9B4E@sda21(r13) +/* 803AD608 003AA568 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD60C 003AA56C 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD610 003AA570 38 04 00 3C */ addi r0, r4, 0x3c +/* 803AD614 003AA574 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD618 003AA578 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD61C 003AA57C 7C 10 28 2E */ lwzx r0, r16, r5 +/* 803AD620 003AA580 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD624 003AA584 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD628 003AA588 B0 03 00 06 */ sth r0, 6(r3) +/* 803AD62C 003AA58C 7C 10 28 2E */ lwzx r0, r16, r5 +/* 803AD630 003AA590 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD634 003AA594 B0 03 00 08 */ sth r0, 8(r3) +/* 803AD638 003AA598 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD63C 003AA59C 38 03 00 0A */ addi r0, r3, 0xa +/* 803AD640 003AA5A0 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +/* 803AD644 003AA5A4 48 00 01 2C */ b lbl_803AD770 +lbl_803AD648: +/* 803AD648 003AA5A8 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD64C 003AA5AC 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD650 003AA5B0 38 85 00 0A */ addi r4, r5, 0xa +/* 803AD654 003AA5B4 38 03 FF F8 */ addi r0, r3, -8 +/* 803AD658 003AA5B8 7C 04 00 40 */ cmplw r4, r0 +/* 803AD65C 003AA5BC 40 81 00 8C */ ble lbl_803AD6E8 +/* 803AD660 003AA5C0 38 00 00 0D */ li r0, 0xd +/* 803AD664 003AA5C4 B0 05 00 00 */ sth r0, 0(r5) +/* 803AD668 003AA5C8 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD66C 003AA5CC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD670 003AA5D0 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD674 003AA5D4 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD678 003AA5D8 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD67C 003AA5DC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD680 003AA5E0 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD684 003AA5E4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD688 003AA5E8 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803AD68C 003AA5EC 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD690 003AA5F0 38 03 00 08 */ addi r0, r3, 8 +/* 803AD694 003AA5F4 28 05 00 00 */ cmplwi r5, 0 +/* 803AD698 003AA5F8 7C 64 00 50 */ subf r3, r4, r0 +/* 803AD69C 003AA5FC 38 03 00 03 */ addi r0, r3, 3 +/* 803AD6A0 003AA600 54 0E 04 3A */ rlwinm r14, r0, 0, 0x10, 0x1d +/* 803AD6A4 003AA604 41 82 00 18 */ beq lbl_803AD6BC +/* 803AD6A8 003AA608 B1 C5 00 06 */ sth r14, 6(r5) +/* 803AD6AC 003AA60C 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803AD6B0 003AA610 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803AD6B4 003AA614 4B FD 14 89 */ bl DCStoreRangeNoSync +/* 803AD6B8 003AA618 48 00 00 08 */ b lbl_803AD6C0 +lbl_803AD6BC: +/* 803AD6BC 003AA61C B1 CD AF 3C */ sth r14, lbl_805A9AFC@sda21(r13) +lbl_803AD6C0: +/* 803AD6C0 003AA620 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD6C4 003AA624 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD6C8 003AA628 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD6CC 003AA62C 38 03 01 80 */ addi r0, r3, 0x180 +/* 803AD6D0 003AA630 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803AD6D4 003AA634 B1 CD AF 2C */ sth r14, lbl_805A9AEC@sda21(r13) +/* 803AD6D8 003AA638 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803AD6DC 003AA63C 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803AD6E0 003AA640 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803AD6E4 003AA644 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803AD6E8: +/* 803AD6E8 003AA648 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD6EC 003AA64C 38 00 00 10 */ li r0, 0x10 +/* 803AD6F0 003AA650 B0 03 00 00 */ sth r0, 0(r3) +/* 803AD6F4 003AA654 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803AD6F8 003AA658 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD6FC 003AA65C 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD700 003AA660 38 04 00 3C */ addi r0, r4, 0x3c +/* 803AD704 003AA664 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD708 003AA668 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD70C 003AA66C B0 03 00 02 */ sth r0, 2(r3) +/* 803AD710 003AA670 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803AD714 003AA674 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD718 003AA678 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD71C 003AA67C 38 04 00 3C */ addi r0, r4, 0x3c +/* 803AD720 003AA680 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD724 003AA684 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD728 003AA688 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803AD72C 003AA68C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD730 003AA690 68 00 00 01 */ xori r0, r0, 1 +/* 803AD734 003AA694 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD738 003AA698 38 04 00 3C */ addi r0, r4, 0x3c +/* 803AD73C 003AA69C 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD740 003AA6A0 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD744 003AA6A4 B0 03 00 06 */ sth r0, 6(r3) +/* 803AD748 003AA6A8 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803AD74C 003AA6AC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD750 003AA6B0 68 00 00 01 */ xori r0, r0, 1 +/* 803AD754 003AA6B4 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD758 003AA6B8 38 04 00 3C */ addi r0, r4, 0x3c +/* 803AD75C 003AA6BC 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD760 003AA6C0 B0 03 00 08 */ sth r0, 8(r3) +/* 803AD764 003AA6C4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD768 003AA6C8 38 03 00 0A */ addi r0, r3, 0xa +/* 803AD76C 003AA6CC 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +lbl_803AD770: +/* 803AD770 003AA6D0 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD774 003AA6D4 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD778 003AA6D8 38 85 00 06 */ addi r4, r5, 6 +/* 803AD77C 003AA6DC 38 03 FF F8 */ addi r0, r3, -8 +/* 803AD780 003AA6E0 7C 04 00 40 */ cmplw r4, r0 +/* 803AD784 003AA6E4 40 81 00 8C */ ble lbl_803AD810 +/* 803AD788 003AA6E8 38 00 00 0D */ li r0, 0xd +/* 803AD78C 003AA6EC B0 05 00 00 */ sth r0, 0(r5) +/* 803AD790 003AA6F0 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD794 003AA6F4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD798 003AA6F8 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD79C 003AA6FC B0 03 00 02 */ sth r0, 2(r3) +/* 803AD7A0 003AA700 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD7A4 003AA704 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD7A8 003AA708 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD7AC 003AA70C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD7B0 003AA710 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803AD7B4 003AA714 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD7B8 003AA718 38 03 00 08 */ addi r0, r3, 8 +/* 803AD7BC 003AA71C 28 05 00 00 */ cmplwi r5, 0 +/* 803AD7C0 003AA720 7C 64 00 50 */ subf r3, r4, r0 +/* 803AD7C4 003AA724 38 03 00 03 */ addi r0, r3, 3 +/* 803AD7C8 003AA728 54 0E 04 3A */ rlwinm r14, r0, 0, 0x10, 0x1d +/* 803AD7CC 003AA72C 41 82 00 18 */ beq lbl_803AD7E4 +/* 803AD7D0 003AA730 B1 C5 00 06 */ sth r14, 6(r5) +/* 803AD7D4 003AA734 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803AD7D8 003AA738 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803AD7DC 003AA73C 4B FD 13 61 */ bl DCStoreRangeNoSync +/* 803AD7E0 003AA740 48 00 00 08 */ b lbl_803AD7E8 +lbl_803AD7E4: +/* 803AD7E4 003AA744 B1 CD AF 3C */ sth r14, lbl_805A9AFC@sda21(r13) +lbl_803AD7E8: +/* 803AD7E8 003AA748 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD7EC 003AA74C 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD7F0 003AA750 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD7F4 003AA754 38 03 01 80 */ addi r0, r3, 0x180 +/* 803AD7F8 003AA758 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803AD7FC 003AA75C B1 CD AF 2C */ sth r14, lbl_805A9AEC@sda21(r13) +/* 803AD800 003AA760 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803AD804 003AA764 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803AD808 003AA768 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803AD80C 003AA76C 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803AD810: +/* 803AD810 003AA770 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD814 003AA774 38 00 00 06 */ li r0, 6 +/* 803AD818 003AA778 38 B0 00 04 */ addi r5, r16, 4 +/* 803AD81C 003AA77C B0 03 00 00 */ sth r0, 0(r3) +/* 803AD820 003AA780 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803AD824 003AA784 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD828 003AA788 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD82C 003AA78C 38 04 00 28 */ addi r0, r4, 0x28 +/* 803AD830 003AA790 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD834 003AA794 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD838 003AA798 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD83C 003AA79C 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803AD840 003AA7A0 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD844 003AA7A4 54 04 10 3A */ slwi r4, r0, 2 +/* 803AD848 003AA7A8 38 04 00 28 */ addi r0, r4, 0x28 +/* 803AD84C 003AA7AC 7C 10 00 2E */ lwzx r0, r16, r0 +/* 803AD850 003AA7B0 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD854 003AA7B4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD858 003AA7B8 81 D0 00 00 */ lwz r14, 0(r16) +/* 803AD85C 003AA7BC 38 03 00 06 */ addi r0, r3, 6 +/* 803AD860 003AA7C0 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +/* 803AD864 003AA7C4 7D C3 73 78 */ mr r3, r14 +/* 803AD868 003AA7C8 38 8E 00 04 */ addi r4, r14, 4 +/* 803AD86C 003AA7CC 4B FF DC 7D */ bl DoDepopFade +/* 803AD870 003AA7D0 38 6E 00 06 */ addi r3, r14, 6 +/* 803AD874 003AA7D4 38 8E 00 0A */ addi r4, r14, 0xa +/* 803AD878 003AA7D8 38 B0 00 08 */ addi r5, r16, 8 +/* 803AD87C 003AA7DC 4B FF DC 6D */ bl DoDepopFade +/* 803AD880 003AA7E0 38 6E 00 0C */ addi r3, r14, 0xc +/* 803AD884 003AA7E4 38 8E 00 10 */ addi r4, r14, 0x10 +/* 803AD888 003AA7E8 38 B0 00 0C */ addi r5, r16, 0xc +/* 803AD88C 003AA7EC 4B FF DC 5D */ bl DoDepopFade +/* 803AD890 003AA7F0 38 6E 00 12 */ addi r3, r14, 0x12 +/* 803AD894 003AA7F4 38 8E 00 16 */ addi r4, r14, 0x16 +/* 803AD898 003AA7F8 38 B0 00 10 */ addi r5, r16, 0x10 +/* 803AD89C 003AA7FC 4B FF DC 4D */ bl DoDepopFade +/* 803AD8A0 003AA800 38 6E 00 18 */ addi r3, r14, 0x18 +/* 803AD8A4 003AA804 38 8E 00 1C */ addi r4, r14, 0x1c +/* 803AD8A8 003AA808 38 B0 00 14 */ addi r5, r16, 0x14 +/* 803AD8AC 003AA80C 4B FF DC 3D */ bl DoDepopFade +/* 803AD8B0 003AA810 38 6E 00 1E */ addi r3, r14, 0x1e +/* 803AD8B4 003AA814 38 8E 00 22 */ addi r4, r14, 0x22 +/* 803AD8B8 003AA818 38 B0 00 18 */ addi r5, r16, 0x18 +/* 803AD8BC 003AA81C 4B FF DC 2D */ bl DoDepopFade +/* 803AD8C0 003AA820 38 6E 00 24 */ addi r3, r14, 0x24 +/* 803AD8C4 003AA824 38 8E 00 28 */ addi r4, r14, 0x28 +/* 803AD8C8 003AA828 38 B0 00 1C */ addi r5, r16, 0x1c +/* 803AD8CC 003AA82C 4B FF DC 1D */ bl DoDepopFade +/* 803AD8D0 003AA830 38 6E 00 2A */ addi r3, r14, 0x2a +/* 803AD8D4 003AA834 38 8E 00 2E */ addi r4, r14, 0x2e +/* 803AD8D8 003AA838 38 B0 00 20 */ addi r5, r16, 0x20 +/* 803AD8DC 003AA83C 4B FF DC 0D */ bl DoDepopFade +/* 803AD8E0 003AA840 38 6E 00 30 */ addi r3, r14, 0x30 +/* 803AD8E4 003AA844 38 8E 00 34 */ addi r4, r14, 0x34 +/* 803AD8E8 003AA848 38 B0 00 24 */ addi r5, r16, 0x24 +/* 803AD8EC 003AA84C 4B FF DB FD */ bl DoDepopFade +/* 803AD8F0 003AA850 7D C3 73 78 */ mr r3, r14 +/* 803AD8F4 003AA854 38 80 00 36 */ li r4, 0x36 +/* 803AD8F8 003AA858 4B FD 12 19 */ bl DCFlushRangeNoSync +lbl_803AD8FC: +/* 803AD8FC 003AA85C 88 61 00 24 */ lbz r3, 0x24(r1) +/* 803AD900 003AA860 38 63 00 01 */ addi r3, r3, 1 +/* 803AD904 003AA864 98 61 00 24 */ stb r3, 0x24(r1) +lbl_803AD908: +/* 803AD908 003AA868 88 6D AF 8C */ lbz r3, lbl_805A9B4C@sda21(r13) +/* 803AD90C 003AA86C 88 01 00 24 */ lbz r0, 0x24(r1) +/* 803AD910 003AA870 7C 00 18 40 */ cmplw r0, r3 +/* 803AD914 003AA874 41 80 E2 60 */ blt lbl_803ABB74 +/* 803AD918 003AA878 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD91C 003AA87C 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD920 003AA880 38 85 00 06 */ addi r4, r5, 6 +/* 803AD924 003AA884 38 03 FF F8 */ addi r0, r3, -8 +/* 803AD928 003AA888 7C 04 00 40 */ cmplw r4, r0 +/* 803AD92C 003AA88C 40 81 00 8C */ ble lbl_803AD9B8 +/* 803AD930 003AA890 38 00 00 0D */ li r0, 0xd +/* 803AD934 003AA894 B0 05 00 00 */ sth r0, 0(r5) +/* 803AD938 003AA898 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD93C 003AA89C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD940 003AA8A0 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD944 003AA8A4 B0 03 00 02 */ sth r0, 2(r3) +/* 803AD948 003AA8A8 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803AD94C 003AA8AC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD950 003AA8B0 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD954 003AA8B4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD958 003AA8B8 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803AD95C 003AA8BC 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD960 003AA8C0 38 03 00 08 */ addi r0, r3, 8 +/* 803AD964 003AA8C4 28 05 00 00 */ cmplwi r5, 0 +/* 803AD968 003AA8C8 7C 64 00 50 */ subf r3, r4, r0 +/* 803AD96C 003AA8CC 38 03 00 03 */ addi r0, r3, 3 +/* 803AD970 003AA8D0 54 0E 04 3A */ rlwinm r14, r0, 0, 0x10, 0x1d +/* 803AD974 003AA8D4 41 82 00 18 */ beq lbl_803AD98C +/* 803AD978 003AA8D8 B1 C5 00 06 */ sth r14, 6(r5) +/* 803AD97C 003AA8DC 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803AD980 003AA8E0 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803AD984 003AA8E4 4B FD 11 B9 */ bl DCStoreRangeNoSync +/* 803AD988 003AA8E8 48 00 00 08 */ b lbl_803AD990 +lbl_803AD98C: +/* 803AD98C 003AA8EC B1 CD AF 3C */ sth r14, lbl_805A9AFC@sda21(r13) +lbl_803AD990: +/* 803AD990 003AA8F0 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803AD994 003AA8F4 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803AD998 003AA8F8 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803AD99C 003AA8FC 38 03 01 80 */ addi r0, r3, 0x180 +/* 803AD9A0 003AA900 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803AD9A4 003AA904 B1 CD AF 2C */ sth r14, lbl_805A9AEC@sda21(r13) +/* 803AD9A8 003AA908 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803AD9AC 003AA90C 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803AD9B0 003AA910 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803AD9B4 003AA914 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803AD9B8: +/* 803AD9B8 003AA918 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803AD9BC 003AA91C 38 00 00 11 */ li r0, 0x11 +/* 803AD9C0 003AA920 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803AD9C4 003AA924 3A 00 00 00 */ li r16, 0 +/* 803AD9C8 003AA928 B0 04 00 00 */ sth r0, 0(r4) +/* 803AD9CC 003AA92C 39 C3 F2 60 */ addi r14, r3, lbl_8055F260@l +/* 803AD9D0 003AA930 80 0D AF 4C */ lwz r0, lbl_805A9B0C@sda21(r13) +/* 803AD9D4 003AA934 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD9D8 003AA938 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803AD9DC 003AA93C B0 03 00 02 */ sth r0, 2(r3) +/* 803AD9E0 003AA940 80 0D AF 4C */ lwz r0, lbl_805A9B0C@sda21(r13) +/* 803AD9E4 003AA944 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD9E8 003AA948 B0 03 00 04 */ sth r0, 4(r3) +/* 803AD9EC 003AA94C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803AD9F0 003AA950 38 03 00 06 */ addi r0, r3, 6 +/* 803AD9F4 003AA954 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +/* 803AD9F8 003AA958 48 00 01 18 */ b lbl_803ADB10 +lbl_803AD9FC: +/* 803AD9FC 003AA95C 56 00 06 3E */ clrlwi r0, r16, 0x18 +/* 803ADA00 003AA960 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803ADA04 003AA964 7D EE 02 14 */ add r15, r14, r0 +/* 803ADA08 003AA968 88 0F 00 50 */ lbz r0, 0x50(r15) +/* 803ADA0C 003AA96C 28 00 00 01 */ cmplwi r0, 1 +/* 803ADA10 003AA970 40 82 00 FC */ bne lbl_803ADB0C +/* 803ADA14 003AA974 88 0F 00 51 */ lbz r0, 0x51(r15) +/* 803ADA18 003AA978 28 00 00 00 */ cmplwi r0, 0 +/* 803ADA1C 003AA97C 41 82 00 F0 */ beq lbl_803ADB0C +/* 803ADA20 003AA980 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803ADA24 003AA984 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803ADA28 003AA988 38 85 00 06 */ addi r4, r5, 6 +/* 803ADA2C 003AA98C 38 03 FF F8 */ addi r0, r3, -8 +/* 803ADA30 003AA990 7C 04 00 40 */ cmplw r4, r0 +/* 803ADA34 003AA994 40 81 00 8C */ ble lbl_803ADAC0 +/* 803ADA38 003AA998 38 00 00 0D */ li r0, 0xd +/* 803ADA3C 003AA99C B0 05 00 00 */ sth r0, 0(r5) +/* 803ADA40 003AA9A0 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803ADA44 003AA9A4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADA48 003AA9A8 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ADA4C 003AA9AC B0 03 00 02 */ sth r0, 2(r3) +/* 803ADA50 003AA9B0 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803ADA54 003AA9B4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADA58 003AA9B8 B0 03 00 04 */ sth r0, 4(r3) +/* 803ADA5C 003AA9BC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADA60 003AA9C0 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803ADA64 003AA9C4 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803ADA68 003AA9C8 38 03 00 08 */ addi r0, r3, 8 +/* 803ADA6C 003AA9CC 28 05 00 00 */ cmplwi r5, 0 +/* 803ADA70 003AA9D0 7C 64 00 50 */ subf r3, r4, r0 +/* 803ADA74 003AA9D4 38 03 00 03 */ addi r0, r3, 3 +/* 803ADA78 003AA9D8 54 11 04 3A */ rlwinm r17, r0, 0, 0x10, 0x1d +/* 803ADA7C 003AA9DC 41 82 00 18 */ beq lbl_803ADA94 +/* 803ADA80 003AA9E0 B2 25 00 06 */ sth r17, 6(r5) +/* 803ADA84 003AA9E4 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803ADA88 003AA9E8 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803ADA8C 003AA9EC 4B FD 10 B1 */ bl DCStoreRangeNoSync +/* 803ADA90 003AA9F0 48 00 00 08 */ b lbl_803ADA98 +lbl_803ADA94: +/* 803ADA94 003AA9F4 B2 2D AF 3C */ sth r17, lbl_805A9AFC@sda21(r13) +lbl_803ADA98: +/* 803ADA98 003AA9F8 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803ADA9C 003AA9FC 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803ADAA0 003AAA00 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803ADAA4 003AAA04 38 03 01 80 */ addi r0, r3, 0x180 +/* 803ADAA8 003AAA08 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803ADAAC 003AAA0C B2 2D AF 2C */ sth r17, lbl_805A9AEC@sda21(r13) +/* 803ADAB0 003AAA10 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803ADAB4 003AAA14 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803ADAB8 003AAA18 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803ADABC 003AAA1C 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803ADAC0: +/* 803ADAC0 003AAA20 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADAC4 003AAA24 38 00 00 09 */ li r0, 9 +/* 803ADAC8 003AAA28 B0 03 00 00 */ sth r0, 0(r3) +/* 803ADACC 003AAA2C 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803ADAD0 003AAA30 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADAD4 003AAA34 54 04 10 3A */ slwi r4, r0, 2 +/* 803ADAD8 003AAA38 38 04 00 28 */ addi r0, r4, 0x28 +/* 803ADADC 003AAA3C 7C 0F 00 2E */ lwzx r0, r15, r0 +/* 803ADAE0 003AAA40 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ADAE4 003AAA44 B0 03 00 02 */ sth r0, 2(r3) +/* 803ADAE8 003AAA48 88 0D AF 8F */ lbz r0, lbl_805A9B4F@sda21(r13) +/* 803ADAEC 003AAA4C 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADAF0 003AAA50 54 04 10 3A */ slwi r4, r0, 2 +/* 803ADAF4 003AAA54 38 04 00 28 */ addi r0, r4, 0x28 +/* 803ADAF8 003AAA58 7C 0F 00 2E */ lwzx r0, r15, r0 +/* 803ADAFC 003AAA5C B0 03 00 04 */ sth r0, 4(r3) +/* 803ADB00 003AAA60 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADB04 003AAA64 38 03 00 06 */ addi r0, r3, 6 +/* 803ADB08 003AAA68 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +lbl_803ADB0C: +/* 803ADB0C 003AAA6C 3A 10 00 01 */ addi r16, r16, 1 +lbl_803ADB10: +/* 803ADB10 003AAA70 88 0D AF 8C */ lbz r0, lbl_805A9B4C@sda21(r13) +/* 803ADB14 003AAA74 56 03 06 3E */ clrlwi r3, r16, 0x18 +/* 803ADB18 003AAA78 7C 03 00 40 */ cmplw r3, r0 +/* 803ADB1C 003AAA7C 41 80 FE E0 */ blt lbl_803AD9FC +/* 803ADB20 003AAA80 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803ADB24 003AAA84 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803ADB28 003AAA88 38 85 00 0A */ addi r4, r5, 0xa +/* 803ADB2C 003AAA8C 38 03 FF F8 */ addi r0, r3, -8 +/* 803ADB30 003AAA90 7C 04 00 40 */ cmplw r4, r0 +/* 803ADB34 003AAA94 40 81 00 8C */ ble lbl_803ADBC0 +/* 803ADB38 003AAA98 38 00 00 0D */ li r0, 0xd +/* 803ADB3C 003AAA9C B0 05 00 00 */ sth r0, 0(r5) +/* 803ADB40 003AAAA0 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803ADB44 003AAAA4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADB48 003AAAA8 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ADB4C 003AAAAC B0 03 00 02 */ sth r0, 2(r3) +/* 803ADB50 003AAAB0 80 0D AF 34 */ lwz r0, lbl_805A9AF4@sda21(r13) +/* 803ADB54 003AAAB4 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADB58 003AAAB8 B0 03 00 04 */ sth r0, 4(r3) +/* 803ADB5C 003AAABC 80 6D AF 38 */ lwz r3, lbl_805A9AF8@sda21(r13) +/* 803ADB60 003AAAC0 80 AD AF 24 */ lwz r5, lbl_805A9AE4@sda21(r13) +/* 803ADB64 003AAAC4 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803ADB68 003AAAC8 38 03 00 08 */ addi r0, r3, 8 +/* 803ADB6C 003AAACC 28 05 00 00 */ cmplwi r5, 0 +/* 803ADB70 003AAAD0 7C 64 00 50 */ subf r3, r4, r0 +/* 803ADB74 003AAAD4 38 03 00 03 */ addi r0, r3, 3 +/* 803ADB78 003AAAD8 54 0E 04 3A */ rlwinm r14, r0, 0, 0x10, 0x1d +/* 803ADB7C 003AAADC 41 82 00 18 */ beq lbl_803ADB94 +/* 803ADB80 003AAAE0 B1 C5 00 06 */ sth r14, 6(r5) +/* 803ADB84 003AAAE4 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803ADB88 003AAAE8 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803ADB8C 003AAAEC 4B FD 0F B1 */ bl DCStoreRangeNoSync +/* 803ADB90 003AAAF0 48 00 00 08 */ b lbl_803ADB98 +lbl_803ADB94: +/* 803ADB94 003AAAF4 B1 CD AF 3C */ sth r14, lbl_805A9AFC@sda21(r13) +lbl_803ADB98: +/* 803ADB98 003AAAF8 80 6D AF 34 */ lwz r3, lbl_805A9AF4@sda21(r13) +/* 803ADB9C 003AAAFC 80 AD AF 38 */ lwz r5, lbl_805A9AF8@sda21(r13) +/* 803ADBA0 003AAB00 80 8D AF 30 */ lwz r4, lbl_805A9AF0@sda21(r13) +/* 803ADBA4 003AAB04 38 03 01 80 */ addi r0, r3, 0x180 +/* 803ADBA8 003AAB08 90 AD AF 24 */ stw r5, lbl_805A9AE4@sda21(r13) +/* 803ADBAC 003AAB0C B1 CD AF 2C */ sth r14, lbl_805A9AEC@sda21(r13) +/* 803ADBB0 003AAB10 90 8D AF 28 */ stw r4, lbl_805A9AE8@sda21(r13) +/* 803ADBB4 003AAB14 90 6D AF 38 */ stw r3, lbl_805A9AF8@sda21(r13) +/* 803ADBB8 003AAB18 90 6D AF 30 */ stw r3, lbl_805A9AF0@sda21(r13) +/* 803ADBBC 003AAB1C 90 0D AF 34 */ stw r0, lbl_805A9AF4@sda21(r13) +lbl_803ADBC0: +/* 803ADBC0 003AAB20 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803ADBC4 003AAB24 38 A0 00 0E */ li r5, 0xe +/* 803ADBC8 003AAB28 80 01 00 08 */ lwz r0, 8(r1) +/* 803ADBCC 003AAB2C 38 60 00 0F */ li r3, 0xf +/* 803ADBD0 003AAB30 B0 A4 00 00 */ sth r5, 0(r4) +/* 803ADBD4 003AAB34 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803ADBD8 003AAB38 80 AD AF 4C */ lwz r5, lbl_805A9B0C@sda21(r13) +/* 803ADBDC 003AAB3C 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803ADBE0 003AAB40 54 A5 84 3E */ srwi r5, r5, 0x10 +/* 803ADBE4 003AAB44 B0 A4 00 02 */ sth r5, 2(r4) +/* 803ADBE8 003AAB48 80 AD AF 4C */ lwz r5, lbl_805A9B0C@sda21(r13) +/* 803ADBEC 003AAB4C 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803ADBF0 003AAB50 B0 A4 00 04 */ sth r5, 4(r4) +/* 803ADBF4 003AAB54 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803ADBF8 003AAB58 B0 04 00 06 */ sth r0, 6(r4) +/* 803ADBFC 003AAB5C 80 01 00 08 */ lwz r0, 8(r1) +/* 803ADC00 003AAB60 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803ADC04 003AAB64 B0 04 00 08 */ sth r0, 8(r4) +/* 803ADC08 003AAB68 80 8D AF 38 */ lwz r4, lbl_805A9AF8@sda21(r13) +/* 803ADC0C 003AAB6C 38 84 00 0A */ addi r4, r4, 0xa +/* 803ADC10 003AAB70 90 8D AF 38 */ stw r4, lbl_805A9AF8@sda21(r13) +/* 803ADC14 003AAB74 38 04 00 02 */ addi r0, r4, 2 +/* 803ADC18 003AAB78 90 0D AF 38 */ stw r0, lbl_805A9AF8@sda21(r13) +/* 803ADC1C 003AAB7C B0 64 00 00 */ sth r3, 0(r4) +/* 803ADC20 003AAB80 80 8D AF 24 */ lwz r4, lbl_805A9AE4@sda21(r13) +/* 803ADC24 003AAB84 80 6D AF 30 */ lwz r3, lbl_805A9AF0@sda21(r13) +/* 803ADC28 003AAB88 80 0D AF 38 */ lwz r0, lbl_805A9AF8@sda21(r13) +/* 803ADC2C 003AAB8C 28 04 00 00 */ cmplwi r4, 0 +/* 803ADC30 003AAB90 7C 63 00 50 */ subf r3, r3, r0 +/* 803ADC34 003AAB94 38 03 00 03 */ addi r0, r3, 3 +/* 803ADC38 003AAB98 54 00 04 3A */ rlwinm r0, r0, 0, 0x10, 0x1d +/* 803ADC3C 003AAB9C 41 82 00 18 */ beq lbl_803ADC54 +/* 803ADC40 003AABA0 B0 04 00 06 */ sth r0, 6(r4) +/* 803ADC44 003AABA4 80 6D AF 28 */ lwz r3, lbl_805A9AE8@sda21(r13) +/* 803ADC48 003AABA8 A0 8D AF 2C */ lhz r4, lbl_805A9AEC@sda21(r13) +/* 803ADC4C 003AABAC 4B FD 0E F1 */ bl DCStoreRangeNoSync +/* 803ADC50 003AABB0 48 00 00 08 */ b lbl_803ADC58 +lbl_803ADC54: +/* 803ADC54 003AABB4 B0 0D AF 3C */ sth r0, lbl_805A9AFC@sda21(r13) +lbl_803ADC58: +/* 803ADC58 003AABB8 80 6D AF 30 */ lwz r3, lbl_805A9AF0@sda21(r13) +/* 803ADC5C 003AABBC 80 0D AF 38 */ lwz r0, lbl_805A9AF8@sda21(r13) +/* 803ADC60 003AABC0 7C 83 00 50 */ subf r4, r3, r0 +/* 803ADC64 003AABC4 4B FD 0E D9 */ bl DCStoreRangeNoSync +/* 803ADC68 003AABC8 39 61 00 80 */ addi r11, r1, 0x80 +/* 803ADC6C 003AABCC 4B FD BE 29 */ bl __restore_gpr +/* 803ADC70 003AABD0 80 01 00 84 */ lwz r0, 0x84(r1) +/* 803ADC74 003AABD4 7C 08 03 A6 */ mtlr r0 +/* 803ADC78 003AABD8 38 21 00 80 */ addi r1, r1, 0x80 +/* 803ADC7C 003AABDC 4E 80 00 20 */ blr + +.global salSynthSendMessage +salSynthSendMessage: +/* 803ADC80 003AABE0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803ADC84 003AABE4 7C 08 02 A6 */ mflr r0 +/* 803ADC88 003AABE8 7C 65 1B 78 */ mr r5, r3 +/* 803ADC8C 003AABEC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803ADC90 003AABF0 81 8D AF 58 */ lwz r12, lbl_805A9B18@sda21(r13) +/* 803ADC94 003AABF4 28 0C 00 00 */ cmplwi r12, 0 +/* 803ADC98 003AABF8 40 82 00 0C */ bne lbl_803ADCA4 +/* 803ADC9C 003AABFC 38 60 00 00 */ li r3, 0 +/* 803ADCA0 003AAC00 48 00 00 14 */ b lbl_803ADCB4 +lbl_803ADCA4: +/* 803ADCA4 003AAC04 7C 83 23 78 */ mr r3, r4 +/* 803ADCA8 003AAC08 80 85 00 18 */ lwz r4, 0x18(r5) +/* 803ADCAC 003AAC0C 7D 89 03 A6 */ mtctr r12 +/* 803ADCB0 003AAC10 4E 80 04 21 */ bctrl +lbl_803ADCB4: +/* 803ADCB4 003AAC14 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803ADCB8 003AAC18 7C 08 03 A6 */ mtlr r0 +/* 803ADCBC 003AAC1C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803ADCC0 003AAC20 4E 80 00 20 */ blr + +.global salActivateVoice +salActivateVoice: +/* 803ADCC4 003AAC24 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803ADCC8 003AAC28 7C 08 02 A6 */ mflr r0 +/* 803ADCCC 003AAC2C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803ADCD0 003AAC30 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803ADCD4 003AAC34 7C 9F 23 78 */ mr r31, r4 +/* 803ADCD8 003AAC38 93 C1 00 08 */ stw r30, 8(r1) +/* 803ADCDC 003AAC3C 7C 7E 1B 78 */ mr r30, r3 +/* 803ADCE0 003AAC40 88 03 00 EC */ lbz r0, 0xec(r3) +/* 803ADCE4 003AAC44 28 00 00 00 */ cmplwi r0, 0 +/* 803ADCE8 003AAC48 41 82 00 14 */ beq lbl_803ADCFC +/* 803ADCEC 003AAC4C 48 00 00 79 */ bl salDeactivateVoice +/* 803ADCF0 003AAC50 80 1E 00 24 */ lwz r0, 0x24(r30) +/* 803ADCF4 003AAC54 60 00 00 20 */ ori r0, r0, 0x20 +/* 803ADCF8 003AAC58 90 1E 00 24 */ stw r0, 0x24(r30) +lbl_803ADCFC: +/* 803ADCFC 003AAC5C 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803ADD00 003AAC60 38 80 00 00 */ li r4, 0 +/* 803ADD04 003AAC64 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803ADD08 003AAC68 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803ADD0C 003AAC6C 98 9E 00 ED */ stb r4, 0xed(r30) +/* 803ADD10 003AAC70 38 63 F2 60 */ addi r3, r3, lbl_8055F260@l +/* 803ADD14 003AAC74 7C 83 02 14 */ add r4, r3, r0 +/* 803ADD18 003AAC78 84 04 00 48 */ lwzu r0, 0x48(r4) +/* 803ADD1C 003AAC7C 28 00 00 00 */ cmplwi r0, 0 +/* 803ADD20 003AAC80 90 1E 00 0C */ stw r0, 0xc(r30) +/* 803ADD24 003AAC84 41 82 00 0C */ beq lbl_803ADD30 +/* 803ADD28 003AAC88 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 803ADD2C 003AAC8C 93 C3 00 10 */ stw r30, 0x10(r3) +lbl_803ADD30: +/* 803ADD30 003AAC90 38 60 00 00 */ li r3, 0 +/* 803ADD34 003AAC94 38 00 00 01 */ li r0, 1 +/* 803ADD38 003AAC98 90 7E 00 10 */ stw r3, 0x10(r30) +/* 803ADD3C 003AAC9C 93 C4 00 00 */ stw r30, 0(r4) +/* 803ADD40 003AACA0 98 7E 00 EE */ stb r3, 0xee(r30) +/* 803ADD44 003AACA4 98 1E 00 EC */ stb r0, 0xec(r30) +/* 803ADD48 003AACA8 9B FE 00 EF */ stb r31, 0xef(r30) +/* 803ADD4C 003AACAC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803ADD50 003AACB0 83 C1 00 08 */ lwz r30, 8(r1) +/* 803ADD54 003AACB4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803ADD58 003AACB8 7C 08 03 A6 */ mtlr r0 +/* 803ADD5C 003AACBC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803ADD60 003AACC0 4E 80 00 20 */ blr + +.global salDeactivateVoice +salDeactivateVoice: +/* 803ADD64 003AACC4 88 03 00 EC */ lbz r0, 0xec(r3) +/* 803ADD68 003AACC8 28 00 00 00 */ cmplwi r0, 0 +/* 803ADD6C 003AACCC 4D 82 00 20 */ beqlr +/* 803ADD70 003AACD0 80 83 00 10 */ lwz r4, 0x10(r3) +/* 803ADD74 003AACD4 28 04 00 00 */ cmplwi r4, 0 +/* 803ADD78 003AACD8 41 82 00 10 */ beq lbl_803ADD88 +/* 803ADD7C 003AACDC 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803ADD80 003AACE0 90 04 00 0C */ stw r0, 0xc(r4) +/* 803ADD84 003AACE4 48 00 00 20 */ b lbl_803ADDA4 +lbl_803ADD88: +/* 803ADD88 003AACE8 88 03 00 EF */ lbz r0, 0xef(r3) +/* 803ADD8C 003AACEC 3C 80 80 56 */ lis r4, lbl_8055F260@ha +/* 803ADD90 003AACF0 38 84 F2 60 */ addi r4, r4, lbl_8055F260@l +/* 803ADD94 003AACF4 80 A3 00 0C */ lwz r5, 0xc(r3) +/* 803ADD98 003AACF8 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803ADD9C 003AACFC 7C 84 02 14 */ add r4, r4, r0 +/* 803ADDA0 003AAD00 90 A4 00 48 */ stw r5, 0x48(r4) +lbl_803ADDA4: +/* 803ADDA4 003AAD04 80 83 00 0C */ lwz r4, 0xc(r3) +/* 803ADDA8 003AAD08 28 04 00 00 */ cmplwi r4, 0 +/* 803ADDAC 003AAD0C 41 82 00 0C */ beq lbl_803ADDB8 +/* 803ADDB0 003AAD10 80 03 00 10 */ lwz r0, 0x10(r3) +/* 803ADDB4 003AAD14 90 04 00 10 */ stw r0, 0x10(r4) +lbl_803ADDB8: +/* 803ADDB8 003AAD18 38 00 00 00 */ li r0, 0 +/* 803ADDBC 003AAD1C 98 03 00 EC */ stb r0, 0xec(r3) +/* 803ADDC0 003AAD20 4E 80 00 20 */ blr + +.global sub_803addc4 +sub_803addc4: +/* 803ADDC4 003AAD24 88 03 00 EC */ lbz r0, 0xec(r3) +/* 803ADDC8 003AAD28 28 00 00 00 */ cmplwi r0, 0 +/* 803ADDCC 003AAD2C 41 82 00 B8 */ beq lbl_803ADE84 +/* 803ADDD0 003AAD30 80 A3 00 10 */ lwz r5, 0x10(r3) +/* 803ADDD4 003AAD34 28 05 00 00 */ cmplwi r5, 0 +/* 803ADDD8 003AAD38 41 82 00 10 */ beq lbl_803ADDE8 +/* 803ADDDC 003AAD3C 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803ADDE0 003AAD40 90 05 00 0C */ stw r0, 0xc(r5) +/* 803ADDE4 003AAD44 48 00 00 20 */ b lbl_803ADE04 +lbl_803ADDE8: +/* 803ADDE8 003AAD48 88 03 00 EF */ lbz r0, 0xef(r3) +/* 803ADDEC 003AAD4C 3C A0 80 56 */ lis r5, lbl_8055F260@ha +/* 803ADDF0 003AAD50 38 A5 F2 60 */ addi r5, r5, lbl_8055F260@l +/* 803ADDF4 003AAD54 80 C3 00 0C */ lwz r6, 0xc(r3) +/* 803ADDF8 003AAD58 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803ADDFC 003AAD5C 7C A5 02 14 */ add r5, r5, r0 +/* 803ADE00 003AAD60 90 C5 00 48 */ stw r6, 0x48(r5) +lbl_803ADE04: +/* 803ADE04 003AAD64 80 A3 00 0C */ lwz r5, 0xc(r3) +/* 803ADE08 003AAD68 28 05 00 00 */ cmplwi r5, 0 +/* 803ADE0C 003AAD6C 41 82 00 0C */ beq lbl_803ADE18 +/* 803ADE10 003AAD70 80 03 00 10 */ lwz r0, 0x10(r3) +/* 803ADE14 003AAD74 90 05 00 10 */ stw r0, 0x10(r5) +lbl_803ADE18: +/* 803ADE18 003AAD78 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803ADE1C 003AAD7C 3C A0 80 56 */ lis r5, lbl_8055F260@ha +/* 803ADE20 003AAD80 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803ADE24 003AAD84 38 A5 F2 60 */ addi r5, r5, lbl_8055F260@l +/* 803ADE28 003AAD88 7C C5 02 14 */ add r6, r5, r0 +/* 803ADE2C 003AAD8C 84 06 00 48 */ lwzu r0, 0x48(r6) +/* 803ADE30 003AAD90 28 00 00 00 */ cmplwi r0, 0 +/* 803ADE34 003AAD94 90 03 00 0C */ stw r0, 0xc(r3) +/* 803ADE38 003AAD98 41 82 00 0C */ beq lbl_803ADE44 +/* 803ADE3C 003AAD9C 80 A3 00 0C */ lwz r5, 0xc(r3) +/* 803ADE40 003AADA0 90 65 00 10 */ stw r3, 0x10(r5) +lbl_803ADE44: +/* 803ADE44 003AADA4 38 00 00 00 */ li r0, 0 +/* 803ADE48 003AADA8 90 03 00 10 */ stw r0, 0x10(r3) +/* 803ADE4C 003AADAC 90 66 00 00 */ stw r3, 0(r6) +/* 803ADE50 003AADB0 88 03 00 EC */ lbz r0, 0xec(r3) +/* 803ADE54 003AADB4 28 00 00 02 */ cmplwi r0, 2 +/* 803ADE58 003AADB8 40 82 00 2C */ bne lbl_803ADE84 +/* 803ADE5C 003AADBC 88 03 00 EF */ lbz r0, 0xef(r3) +/* 803ADE60 003AADC0 3C A0 80 56 */ lis r5, lbl_8055F260@ha +/* 803ADE64 003AADC4 38 A5 F2 60 */ addi r5, r5, lbl_8055F260@l +/* 803ADE68 003AADC8 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803ADE6C 003AADCC 38 A5 00 4C */ addi r5, r5, 0x4c +/* 803ADE70 003AADD0 7C 05 00 2E */ lwzx r0, r5, r0 +/* 803ADE74 003AADD4 90 03 00 14 */ stw r0, 0x14(r3) +/* 803ADE78 003AADD8 88 03 00 EF */ lbz r0, 0xef(r3) +/* 803ADE7C 003AADDC 1C 00 00 BC */ mulli r0, r0, 0xbc +/* 803ADE80 003AADE0 7C 65 01 2E */ stwx r3, r5, r0 +lbl_803ADE84: +/* 803ADE84 003AADE4 98 83 00 EF */ stb r4, 0xef(r3) +/* 803ADE88 003AADE8 4E 80 00 20 */ blr + +.global sub_803ade8c +sub_803ade8c: +/* 803ADE8C 003AADEC 88 03 00 52 */ lbz r0, 0x52(r3) +/* 803ADE90 003AADF0 28 00 00 07 */ cmplwi r0, 7 +/* 803ADE94 003AADF4 40 80 00 98 */ bge lbl_803ADF2C +/* 803ADE98 003AADF8 1C 00 00 0C */ mulli r0, r0, 0xc +/* 803ADE9C 003AADFC 88 C4 00 03 */ lbz r6, 3(r4) +/* 803ADEA0 003AAE00 7C A3 02 14 */ add r5, r3, r0 +/* 803ADEA4 003AAE04 98 C5 00 58 */ stb r6, 0x58(r5) +/* 803ADEA8 003AAE08 88 03 00 52 */ lbz r0, 0x52(r3) +/* 803ADEAC 003AAE0C 88 A4 00 00 */ lbz r5, 0(r4) +/* 803ADEB0 003AAE10 1C 00 00 0C */ mulli r0, r0, 0xc +/* 803ADEB4 003AAE14 54 A6 42 2E */ rlwinm r6, r5, 8, 8, 0x17 +/* 803ADEB8 003AAE18 54 A5 0B FC */ rlwinm r5, r5, 1, 0xf, 0x1e +/* 803ADEBC 003AAE1C 7C C6 2B 78 */ or r6, r6, r5 +/* 803ADEC0 003AAE20 7C A3 02 14 */ add r5, r3, r0 +/* 803ADEC4 003AAE24 B0 C5 00 5A */ sth r6, 0x5a(r5) +/* 803ADEC8 003AAE28 88 03 00 52 */ lbz r0, 0x52(r3) +/* 803ADECC 003AAE2C 88 A4 00 01 */ lbz r5, 1(r4) +/* 803ADED0 003AAE30 1C 00 00 0C */ mulli r0, r0, 0xc +/* 803ADED4 003AAE34 54 A6 42 2E */ rlwinm r6, r5, 8, 8, 0x17 +/* 803ADED8 003AAE38 54 A5 0B FC */ rlwinm r5, r5, 1, 0xf, 0x1e +/* 803ADEDC 003AAE3C 7C C6 2B 78 */ or r6, r6, r5 +/* 803ADEE0 003AAE40 7C A3 02 14 */ add r5, r3, r0 +/* 803ADEE4 003AAE44 B0 C5 00 5C */ sth r6, 0x5c(r5) +/* 803ADEE8 003AAE48 88 03 00 52 */ lbz r0, 0x52(r3) +/* 803ADEEC 003AAE4C 88 A4 00 02 */ lbz r5, 2(r4) +/* 803ADEF0 003AAE50 1C 00 00 0C */ mulli r0, r0, 0xc +/* 803ADEF4 003AAE54 54 A6 42 2E */ rlwinm r6, r5, 8, 8, 0x17 +/* 803ADEF8 003AAE58 54 A5 0B FC */ rlwinm r5, r5, 1, 0xf, 0x1e +/* 803ADEFC 003AAE5C 7C C6 2B 78 */ or r6, r6, r5 +/* 803ADF00 003AAE60 7C A3 02 14 */ add r5, r3, r0 +/* 803ADF04 003AAE64 B0 C5 00 5E */ sth r6, 0x5e(r5) +/* 803ADF08 003AAE68 88 03 00 52 */ lbz r0, 0x52(r3) +/* 803ADF0C 003AAE6C 1C 00 00 0C */ mulli r0, r0, 0xc +/* 803ADF10 003AAE70 7C A3 02 14 */ add r5, r3, r0 +/* 803ADF14 003AAE74 90 85 00 60 */ stw r4, 0x60(r5) +/* 803ADF18 003AAE78 88 83 00 52 */ lbz r4, 0x52(r3) +/* 803ADF1C 003AAE7C 38 04 00 01 */ addi r0, r4, 1 +/* 803ADF20 003AAE80 98 03 00 52 */ stb r0, 0x52(r3) +/* 803ADF24 003AAE84 38 60 00 01 */ li r3, 1 +/* 803ADF28 003AAE88 4E 80 00 20 */ blr +lbl_803ADF2C: +/* 803ADF2C 003AAE8C 38 60 00 00 */ li r3, 0 +/* 803ADF30 003AAE90 4E 80 00 20 */ blr + +.global sub_803adf34 +sub_803adf34: +/* 803ADF34 003AAE94 88 03 00 52 */ lbz r0, 0x52(r3) +/* 803ADF38 003AAE98 7C 66 1B 78 */ mr r6, r3 +/* 803ADF3C 003AAE9C 38 A0 00 00 */ li r5, 0 +/* 803ADF40 003AAEA0 7C 09 03 A6 */ mtctr r0 +/* 803ADF44 003AAEA4 2C 00 00 00 */ cmpwi r0, 0 +/* 803ADF48 003AAEA8 40 81 00 68 */ ble lbl_803ADFB0 +lbl_803ADF4C: +/* 803ADF4C 003AAEAC 80 03 00 60 */ lwz r0, 0x60(r3) +/* 803ADF50 003AAEB0 7C 00 20 40 */ cmplw r0, r4 +/* 803ADF54 003AAEB4 40 82 00 50 */ bne lbl_803ADFA4 +/* 803ADF58 003AAEB8 1C 05 00 0C */ mulli r0, r5, 0xc +/* 803ADF5C 003AAEBC 7C 86 02 14 */ add r4, r6, r0 +/* 803ADF60 003AAEC0 48 00 00 24 */ b lbl_803ADF84 +lbl_803ADF64: +/* 803ADF64 003AAEC4 80 64 00 64 */ lwz r3, 0x64(r4) +/* 803ADF68 003AAEC8 38 A5 00 01 */ addi r5, r5, 1 +/* 803ADF6C 003AAECC 80 04 00 68 */ lwz r0, 0x68(r4) +/* 803ADF70 003AAED0 90 64 00 58 */ stw r3, 0x58(r4) +/* 803ADF74 003AAED4 90 04 00 5C */ stw r0, 0x5c(r4) +/* 803ADF78 003AAED8 80 04 00 6C */ lwz r0, 0x6c(r4) +/* 803ADF7C 003AAEDC 90 04 00 60 */ stw r0, 0x60(r4) +/* 803ADF80 003AAEE0 38 84 00 0C */ addi r4, r4, 0xc +lbl_803ADF84: +/* 803ADF84 003AAEE4 88 66 00 52 */ lbz r3, 0x52(r6) +/* 803ADF88 003AAEE8 38 03 FF FE */ addi r0, r3, -2 +/* 803ADF8C 003AAEEC 7C 05 00 00 */ cmpw r5, r0 +/* 803ADF90 003AAEF0 40 81 FF D4 */ ble lbl_803ADF64 +/* 803ADF94 003AAEF4 38 03 FF FF */ addi r0, r3, -1 +/* 803ADF98 003AAEF8 38 60 00 01 */ li r3, 1 +/* 803ADF9C 003AAEFC 98 06 00 52 */ stb r0, 0x52(r6) +/* 803ADFA0 003AAF00 4E 80 00 20 */ blr +lbl_803ADFA4: +/* 803ADFA4 003AAF04 38 63 00 0C */ addi r3, r3, 0xc +/* 803ADFA8 003AAF08 38 A5 00 01 */ addi r5, r5, 1 +/* 803ADFAC 003AAF0C 42 00 FF A0 */ bdnz lbl_803ADF4C +lbl_803ADFB0: +/* 803ADFB0 003AAF10 38 60 00 00 */ li r3, 0 +/* 803ADFB4 003AAF14 4E 80 00 20 */ blr + +.global salHandleAuxProcessing +salHandleAuxProcessing: +/* 803ADFB8 003AAF18 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803ADFBC 003AAF1C 7C 08 02 A6 */ mflr r0 +/* 803ADFC0 003AAF20 3C 60 80 56 */ lis r3, lbl_8055F260@ha +/* 803ADFC4 003AAF24 90 01 00 34 */ stw r0, 0x34(r1) +/* 803ADFC8 003AAF28 38 03 F2 60 */ addi r0, r3, lbl_8055F260@l +/* 803ADFCC 003AAF2C 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803ADFD0 003AAF30 3B E0 00 00 */ li r31, 0 +/* 803ADFD4 003AAF34 93 C1 00 28 */ stw r30, 0x28(r1) +/* 803ADFD8 003AAF38 7C 1E 03 78 */ mr r30, r0 +/* 803ADFDC 003AAF3C 93 A1 00 24 */ stw r29, 0x24(r1) +/* 803ADFE0 003AAF40 48 00 01 04 */ b lbl_803AE0E4 +lbl_803ADFE4: +/* 803ADFE4 003AAF44 88 1E 00 50 */ lbz r0, 0x50(r30) +/* 803ADFE8 003AAF48 28 00 00 01 */ cmplwi r0, 1 +/* 803ADFEC 003AAF4C 40 82 00 F0 */ bne lbl_803AE0DC +/* 803ADFF0 003AAF50 81 9E 00 AC */ lwz r12, 0xac(r30) +/* 803ADFF4 003AAF54 28 0C 00 00 */ cmplwi r12, 0 +/* 803ADFF8 003AAF58 41 82 00 68 */ beq lbl_803AE060 +/* 803ADFFC 003AAF5C 88 8D AF 8E */ lbz r4, lbl_805A9B4E@sda21(r13) +/* 803AE000 003AAF60 3C 60 55 55 */ lis r3, 0x55555556@ha +/* 803AE004 003AAF64 38 03 55 56 */ addi r0, r3, 0x55555556@l +/* 803AE008 003AAF68 80 BE 00 B4 */ lwz r5, 0xb4(r30) +/* 803AE00C 003AAF6C 38 E4 00 02 */ addi r7, r4, 2 +/* 803AE010 003AAF70 38 81 00 08 */ addi r4, r1, 8 +/* 803AE014 003AAF74 7C C0 38 96 */ mulhw r6, r0, r7 +/* 803AE018 003AAF78 38 60 00 00 */ li r3, 0 +/* 803AE01C 003AAF7C 54 C0 0F FE */ srwi r0, r6, 0x1f +/* 803AE020 003AAF80 7C 06 02 14 */ add r0, r6, r0 +/* 803AE024 003AAF84 1C 00 00 03 */ mulli r0, r0, 3 +/* 803AE028 003AAF88 7C 00 38 50 */ subf r0, r0, r7 +/* 803AE02C 003AAF8C 54 06 10 3A */ slwi r6, r0, 2 +/* 803AE030 003AAF90 38 06 00 30 */ addi r0, r6, 0x30 +/* 803AE034 003AAF94 7F BE 00 2E */ lwzx r29, r30, r0 +/* 803AE038 003AAF98 38 DD 02 80 */ addi r6, r29, 0x280 +/* 803AE03C 003AAF9C 38 1D 05 00 */ addi r0, r29, 0x500 +/* 803AE040 003AAFA0 93 A1 00 08 */ stw r29, 8(r1) +/* 803AE044 003AAFA4 90 C1 00 0C */ stw r6, 0xc(r1) +/* 803AE048 003AAFA8 90 01 00 10 */ stw r0, 0x10(r1) +/* 803AE04C 003AAFAC 7D 89 03 A6 */ mtctr r12 +/* 803AE050 003AAFB0 4E 80 04 21 */ bctrl +/* 803AE054 003AAFB4 7F A3 EB 78 */ mr r3, r29 +/* 803AE058 003AAFB8 38 80 07 80 */ li r4, 0x780 +/* 803AE05C 003AAFBC 4B FD 0A B5 */ bl DCFlushRangeNoSync +lbl_803AE060: +/* 803AE060 003AAFC0 80 1E 00 54 */ lwz r0, 0x54(r30) +/* 803AE064 003AAFC4 2C 00 00 00 */ cmpwi r0, 0 +/* 803AE068 003AAFC8 40 82 00 74 */ bne lbl_803AE0DC +/* 803AE06C 003AAFCC 81 9E 00 B0 */ lwz r12, 0xb0(r30) +/* 803AE070 003AAFD0 28 0C 00 00 */ cmplwi r12, 0 +/* 803AE074 003AAFD4 41 82 00 68 */ beq lbl_803AE0DC +/* 803AE078 003AAFD8 88 8D AF 8E */ lbz r4, lbl_805A9B4E@sda21(r13) +/* 803AE07C 003AAFDC 3C 60 55 55 */ lis r3, 0x55555556@ha +/* 803AE080 003AAFE0 38 03 55 56 */ addi r0, r3, 0x55555556@l +/* 803AE084 003AAFE4 80 BE 00 B8 */ lwz r5, 0xb8(r30) +/* 803AE088 003AAFE8 38 E4 00 02 */ addi r7, r4, 2 +/* 803AE08C 003AAFEC 38 81 00 08 */ addi r4, r1, 8 +/* 803AE090 003AAFF0 7C C0 38 96 */ mulhw r6, r0, r7 +/* 803AE094 003AAFF4 38 60 00 00 */ li r3, 0 +/* 803AE098 003AAFF8 54 C0 0F FE */ srwi r0, r6, 0x1f +/* 803AE09C 003AAFFC 7C 06 02 14 */ add r0, r6, r0 +/* 803AE0A0 003AB000 1C 00 00 03 */ mulli r0, r0, 3 +/* 803AE0A4 003AB004 7C 00 38 50 */ subf r0, r0, r7 +/* 803AE0A8 003AB008 54 06 10 3A */ slwi r6, r0, 2 +/* 803AE0AC 003AB00C 38 06 00 3C */ addi r0, r6, 0x3c +/* 803AE0B0 003AB010 7F BE 00 2E */ lwzx r29, r30, r0 +/* 803AE0B4 003AB014 38 DD 02 80 */ addi r6, r29, 0x280 +/* 803AE0B8 003AB018 38 1D 05 00 */ addi r0, r29, 0x500 +/* 803AE0BC 003AB01C 93 A1 00 08 */ stw r29, 8(r1) +/* 803AE0C0 003AB020 90 C1 00 0C */ stw r6, 0xc(r1) +/* 803AE0C4 003AB024 90 01 00 10 */ stw r0, 0x10(r1) +/* 803AE0C8 003AB028 7D 89 03 A6 */ mtctr r12 +/* 803AE0CC 003AB02C 4E 80 04 21 */ bctrl +/* 803AE0D0 003AB030 7F A3 EB 78 */ mr r3, r29 +/* 803AE0D4 003AB034 38 80 07 80 */ li r4, 0x780 +/* 803AE0D8 003AB038 4B FD 0A 39 */ bl DCFlushRangeNoSync +lbl_803AE0DC: +/* 803AE0DC 003AB03C 3B FF 00 01 */ addi r31, r31, 1 +/* 803AE0E0 003AB040 3B DE 00 BC */ addi r30, r30, 0xbc +lbl_803AE0E4: +/* 803AE0E4 003AB044 88 0D AF 8C */ lbz r0, lbl_805A9B4C@sda21(r13) +/* 803AE0E8 003AB048 57 E3 06 3E */ clrlwi r3, r31, 0x18 +/* 803AE0EC 003AB04C 7C 03 00 40 */ cmplw r3, r0 +/* 803AE0F0 003AB050 41 80 FE F4 */ blt lbl_803ADFE4 +/* 803AE0F4 003AB054 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803AE0F8 003AB058 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803AE0FC 003AB05C 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 803AE100 003AB060 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 803AE104 003AB064 7C 08 03 A6 */ mtlr r0 +/* 803AE108 003AB068 38 21 00 30 */ addi r1, r1, 0x30 +/* 803AE10C 003AB06C 4E 80 00 20 */ blr diff --git a/asm/musyx/hw_memory.s b/asm/musyx/hw_memory.s new file mode 100644 index 00000000..dd3328ce --- /dev/null +++ b/asm/musyx/hw_memory.s @@ -0,0 +1,30 @@ +.include "macros.inc" + +.section .text, "ax" + +.global salMalloc +salMalloc: +/* 803B5134 003B2094 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5138 003B2098 7C 08 02 A6 */ mflr r0 +/* 803B513C 003B209C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5140 003B20A0 81 8D AF 84 */ lwz r12, lbl_805A9B44@sda21(r13) +/* 803B5144 003B20A4 7D 89 03 A6 */ mtctr r12 +/* 803B5148 003B20A8 4E 80 04 21 */ bctrl +/* 803B514C 003B20AC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5150 003B20B0 7C 08 03 A6 */ mtlr r0 +/* 803B5154 003B20B4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5158 003B20B8 4E 80 00 20 */ blr + +.global salFree +salFree: +/* 803B515C 003B20BC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5160 003B20C0 7C 08 02 A6 */ mflr r0 +/* 803B5164 003B20C4 38 8D AF 84 */ addi r4, r13, lbl_805A9B44@sda21 +/* 803B5168 003B20C8 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B516C 003B20CC 81 84 00 04 */ lwz r12, 4(r4) +/* 803B5170 003B20D0 7D 89 03 A6 */ mtctr r12 +/* 803B5174 003B20D4 4E 80 04 21 */ bctrl +/* 803B5178 003B20D8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B517C 003B20DC 7C 08 03 A6 */ mtlr r0 +/* 803B5180 003B20E0 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5184 003B20E4 4E 80 00 20 */ blr diff --git a/asm/musyx/hw_volconv.s b/asm/musyx/hw_volconv.s new file mode 100644 index 00000000..d3e46fda --- /dev/null +++ b/asm/musyx/hw_volconv.s @@ -0,0 +1,456 @@ +.include "macros.inc" + +.section .text, "ax" + +.global salCalcVolume +salCalcVolume: +/* 803AE110 003AB070 94 21 FE F0 */ stwu r1, -0x110(r1) +/* 803AE114 003AB074 7C 08 02 A6 */ mflr r0 +/* 803AE118 003AB078 90 01 01 14 */ stw r0, 0x114(r1) +/* 803AE11C 003AB07C DB E1 01 00 */ stfd f31, 0x100(r1) +/* 803AE120 003AB080 F3 E1 01 08 */ psq_st f31, 264(r1), 0, qr0 +/* 803AE124 003AB084 DB C1 00 F0 */ stfd f30, 0xf0(r1) +/* 803AE128 003AB088 F3 C1 00 F8 */ psq_st f30, 248(r1), 0, qr0 +/* 803AE12C 003AB08C DB A1 00 E0 */ stfd f29, 0xe0(r1) +/* 803AE130 003AB090 F3 A1 00 E8 */ psq_st f29, 232(r1), 0, qr0 +/* 803AE134 003AB094 DB 81 00 D0 */ stfd f28, 0xd0(r1) +/* 803AE138 003AB098 F3 81 00 D8 */ psq_st f28, 216(r1), 0, qr0 +/* 803AE13C 003AB09C DB 61 00 C0 */ stfd f27, 0xc0(r1) +/* 803AE140 003AB0A0 F3 61 00 C8 */ psq_st f27, 200(r1), 0, qr0 +/* 803AE144 003AB0A4 DB 41 00 B0 */ stfd f26, 0xb0(r1) +/* 803AE148 003AB0A8 F3 41 00 B8 */ psq_st f26, 184(r1), 0, qr0 +/* 803AE14C 003AB0AC DB 21 00 A0 */ stfd f25, 0xa0(r1) +/* 803AE150 003AB0B0 F3 21 00 A8 */ psq_st f25, 168(r1), 0, qr0 +/* 803AE154 003AB0B4 DB 01 00 90 */ stfd f24, 0x90(r1) +/* 803AE158 003AB0B8 F3 01 00 98 */ psq_st f24, 152(r1), 0, qr0 +/* 803AE15C 003AB0BC DA E1 00 80 */ stfd f23, 0x80(r1) +/* 803AE160 003AB0C0 F2 E1 00 88 */ psq_st f23, 136(r1), 0, qr0 +/* 803AE164 003AB0C4 DA C1 00 70 */ stfd f22, 0x70(r1) +/* 803AE168 003AB0C8 F2 C1 00 78 */ psq_st f22, 120(r1), 0, qr0 +/* 803AE16C 003AB0CC DA A1 00 60 */ stfd f21, 0x60(r1) +/* 803AE170 003AB0D0 F2 A1 00 68 */ psq_st f21, 104(r1), 0, qr0 +/* 803AE174 003AB0D4 DA 81 00 50 */ stfd f20, 0x50(r1) +/* 803AE178 003AB0D8 F2 81 00 58 */ psq_st f20, 88(r1), 0, qr0 +/* 803AE17C 003AB0DC 39 61 00 50 */ addi r11, r1, 0x50 +/* 803AE180 003AB0E0 4B FD B8 E5 */ bl func_80389A64 +/* 803AE184 003AB0E4 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 803AE188 003AB0E8 3C 60 80 3F */ lis r3, lbl_803F3DA4@ha +/* 803AE18C 003AB0EC 3B E3 3D A4 */ addi r31, r3, lbl_803F3DA4@l +/* 803AE190 003AB0F0 FE C0 08 90 */ fmr f22, f1 +/* 803AE194 003AB0F4 3C 60 80 3F */ lis r3, lbl_803F3FC0@ha +/* 803AE198 003AB0F8 FF E0 10 90 */ fmr f31, f2 +/* 803AE19C 003AB0FC FE A0 18 90 */ fmr f21, f3 +/* 803AE1A0 003AB100 7C 99 23 78 */ mr r25, r4 +/* 803AE1A4 003AB104 7C FA 3B 78 */ mr r26, r7 +/* 803AE1A8 003AB108 7D 1B 43 78 */ mr r27, r8 +/* 803AE1AC 003AB10C 3B C3 3F C0 */ addi r30, r3, lbl_803F3FC0@l +/* 803AE1B0 003AB110 40 82 00 08 */ bne lbl_803AE1B8 +/* 803AE1B4 003AB114 3B FE 00 00 */ addi r31, r30, 0 +lbl_803AE1B8: +/* 803AE1B8 003AB118 3C 05 FF 80 */ addis r0, r5, 0xff80 +/* 803AE1BC 003AB11C 28 00 00 00 */ cmplwi r0, 0 +/* 803AE1C0 003AB120 40 82 00 0C */ bne lbl_803AE1CC +/* 803AE1C4 003AB124 38 A0 00 00 */ li r5, 0 +/* 803AE1C8 003AB128 3C C0 00 7F */ lis r6, 0x7f +lbl_803AE1CC: +/* 803AE1CC 003AB12C 3C 80 00 01 */ lis r4, 1 +/* 803AE1D0 003AB130 3C 00 43 30 */ lis r0, 0x4330 +/* 803AE1D4 003AB134 7C 65 20 10 */ subfc r3, r5, r4 +/* 803AE1D8 003AB138 3C E5 FF FF */ addis r7, r5, 0xffff +/* 803AE1DC 003AB13C 7D 05 01 94 */ addze r8, r5 +/* 803AE1E0 003AB140 3C 66 FF FF */ addis r3, r6, 0xffff +/* 803AE1E4 003AB144 7C 86 20 10 */ subfc r4, r6, r4 +/* 803AE1E8 003AB148 90 01 00 08 */ stw r0, 8(r1) +/* 803AE1EC 003AB14C 7C 86 01 94 */ addze r4, r6 +/* 803AE1F0 003AB150 7C A8 28 50 */ subf r5, r8, r5 +/* 803AE1F4 003AB154 7C 84 30 50 */ subf r4, r4, r6 +/* 803AE1F8 003AB158 90 01 00 10 */ stw r0, 0x10(r1) +/* 803AE1FC 003AB15C 7C E0 28 78 */ andc r0, r7, r5 +/* 803AE200 003AB160 C8 42 D5 E0 */ lfd f2, lbl_805AF300@sda21(r2) +/* 803AE204 003AB164 7C 63 20 78 */ andc r3, r3, r4 +/* 803AE208 003AB168 90 01 00 0C */ stw r0, 0xc(r1) +/* 803AE20C 003AB16C C0 62 D5 E8 */ lfs f3, lbl_805AF308@sda21(r2) +/* 803AE210 003AB170 28 1B 00 00 */ cmplwi r27, 0 +/* 803AE214 003AB174 90 61 00 14 */ stw r3, 0x14(r1) +/* 803AE218 003AB178 C8 21 00 08 */ lfd f1, 8(r1) +/* 803AE21C 003AB17C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803AE220 003AB180 EC 21 10 28 */ fsubs f1, f1, f2 +/* 803AE224 003AB184 EC 00 10 28 */ fsubs f0, f0, f2 +/* 803AE228 003AB188 EF 03 00 72 */ fmuls f24, f3, f1 +/* 803AE22C 003AB18C EE 83 00 32 */ fmuls f20, f3, f0 +/* 803AE230 003AB190 41 82 00 44 */ beq lbl_803AE274 +/* 803AE234 003AB194 FC 20 C0 90 */ fmr f1, f24 +/* 803AE238 003AB198 C8 42 D5 F0 */ lfd f2, lbl_805AF310@sda21(r2) +/* 803AE23C 003AB19C 4B FE 6A 71 */ bl fmod +/* 803AE240 003AB1A0 FF 40 08 18 */ frsp f26, f1 +/* 803AE244 003AB1A4 FC 20 C0 90 */ fmr f1, f24 +/* 803AE248 003AB1A8 4B FD B7 0D */ bl __cvt_fp2unsigned +/* 803AE24C 003AB1AC C0 02 D5 F8 */ lfs f0, lbl_805AF318@sda21(r2) +/* 803AE250 003AB1B0 7C 7D 1B 78 */ mr r29, r3 +/* 803AE254 003AB1B4 C8 42 D5 F0 */ lfd f2, lbl_805AF310@sda21(r2) +/* 803AE258 003AB1B8 EE E0 C0 28 */ fsubs f23, f0, f24 +/* 803AE25C 003AB1BC FC 20 B8 90 */ fmr f1, f23 +/* 803AE260 003AB1C0 4B FE 6A 4D */ bl fmod +/* 803AE264 003AB1C4 FF 20 08 18 */ frsp f25, f1 +/* 803AE268 003AB1C8 FC 20 B8 90 */ fmr f1, f23 +/* 803AE26C 003AB1CC 4B FD B6 E9 */ bl __cvt_fp2unsigned +/* 803AE270 003AB1D0 7C 7C 1B 78 */ mr r28, r3 +lbl_803AE274: +/* 803AE274 003AB1D4 28 1A 00 00 */ cmplwi r26, 0 +/* 803AE278 003AB1D8 41 82 00 18 */ beq lbl_803AE290 +/* 803AE27C 003AB1DC C0 42 D5 D4 */ lfs f2, lbl_805AF2F4@sda21(r2) +/* 803AE280 003AB1E0 C0 22 D5 FC */ lfs f1, lbl_805AF31C@sda21(r2) +/* 803AE284 003AB1E4 EC 18 10 28 */ fsubs f0, f24, f2 +/* 803AE288 003AB1E8 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803AE28C 003AB1EC EF 02 00 2A */ fadds f24, f2, f0 +lbl_803AE290: +/* 803AE290 003AB1F0 FC 20 C0 90 */ fmr f1, f24 +/* 803AE294 003AB1F4 C8 42 D5 F0 */ lfd f2, lbl_805AF310@sda21(r2) +/* 803AE298 003AB1F8 4B FE 6A 15 */ bl fmod +/* 803AE29C 003AB1FC FF C0 08 18 */ frsp f30, f1 +/* 803AE2A0 003AB200 FC 20 C0 90 */ fmr f1, f24 +/* 803AE2A4 003AB204 4B FD B6 B1 */ bl __cvt_fp2unsigned +/* 803AE2A8 003AB208 FC 20 A0 90 */ fmr f1, f20 +/* 803AE2AC 003AB20C C8 42 D5 F0 */ lfd f2, lbl_805AF310@sda21(r2) +/* 803AE2B0 003AB210 7C 76 1B 78 */ mr r22, r3 +/* 803AE2B4 003AB214 4B FE 69 F9 */ bl fmod +/* 803AE2B8 003AB218 FF A0 08 18 */ frsp f29, f1 +/* 803AE2BC 003AB21C FC 20 A0 90 */ fmr f1, f20 +/* 803AE2C0 003AB220 4B FD B6 95 */ bl __cvt_fp2unsigned +/* 803AE2C4 003AB224 C0 02 D5 F8 */ lfs f0, lbl_805AF318@sda21(r2) +/* 803AE2C8 003AB228 7C 77 1B 78 */ mr r23, r3 +/* 803AE2CC 003AB22C C8 42 D5 F0 */ lfd f2, lbl_805AF310@sda21(r2) +/* 803AE2D0 003AB230 EE E0 C0 28 */ fsubs f23, f0, f24 +/* 803AE2D4 003AB234 EE 80 A0 28 */ fsubs f20, f0, f20 +/* 803AE2D8 003AB238 FC 20 B8 90 */ fmr f1, f23 +/* 803AE2DC 003AB23C 4B FE 69 D1 */ bl fmod +/* 803AE2E0 003AB240 FF 80 08 18 */ frsp f28, f1 +/* 803AE2E4 003AB244 FC 20 B8 90 */ fmr f1, f23 +/* 803AE2E8 003AB248 4B FD B6 6D */ bl __cvt_fp2unsigned +/* 803AE2EC 003AB24C FC 20 A0 90 */ fmr f1, f20 +/* 803AE2F0 003AB250 C8 42 D5 F0 */ lfd f2, lbl_805AF310@sda21(r2) +/* 803AE2F4 003AB254 7C 78 1B 78 */ mr r24, r3 +/* 803AE2F8 003AB258 4B FE 69 B5 */ bl fmod +/* 803AE2FC 003AB25C FF 60 08 18 */ frsp f27, f1 +/* 803AE300 003AB260 FC 20 A0 90 */ fmr f1, f20 +/* 803AE304 003AB264 4B FD B6 51 */ bl __cvt_fp2unsigned +/* 803AE308 003AB268 28 1B 00 00 */ cmplwi r27, 0 +/* 803AE30C 003AB26C 7C 7A 1B 78 */ mr r26, r3 +/* 803AE310 003AB270 40 82 02 7C */ bne lbl_803AE58C +/* 803AE314 003AB274 C0 02 D5 D0 */ lfs f0, lbl_805AF2F0@sda21(r2) +/* 803AE318 003AB278 EE 80 05 B2 */ fmuls f20, f0, f22 +/* 803AE31C 003AB27C FC 20 A0 90 */ fmr f1, f20 +/* 803AE320 003AB280 4B FD B6 35 */ bl __cvt_fp2unsigned +/* 803AE324 003AB284 3C 00 43 30 */ lis r0, 0x4330 +/* 803AE328 003AB288 C0 E2 D5 D4 */ lfs f7, lbl_805AF2F4@sda21(r2) +/* 803AE32C 003AB28C 90 61 00 14 */ stw r3, 0x14(r1) +/* 803AE330 003AB290 54 64 10 3A */ slwi r4, r3, 2 +/* 803AE334 003AB294 3B 9E 02 04 */ addi r28, r30, 0x204 +/* 803AE338 003AB298 56 F7 10 3A */ slwi r23, r23, 2 +/* 803AE33C 003AB29C 90 01 00 10 */ stw r0, 0x10(r1) +/* 803AE340 003AB2A0 7C 7F 22 14 */ add r3, r31, r4 +/* 803AE344 003AB2A4 C8 22 D5 E0 */ lfd f1, lbl_805AF300@sda21(r2) +/* 803AE348 003AB2A8 3B 7C 00 04 */ addi r27, r28, 4 +/* 803AE34C 003AB2AC C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803AE350 003AB2B0 EF 47 E8 28 */ fsubs f26, f7, f29 +/* 803AE354 003AB2B4 7C 5C BC 2E */ lfsx f2, r28, r23 +/* 803AE358 003AB2B8 57 5A 10 3A */ slwi r26, r26, 2 +/* 803AE35C 003AB2BC EC 60 08 28 */ fsubs f3, f0, f1 +/* 803AE360 003AB2C0 7C 3B BC 2E */ lfsx f1, r27, r23 +/* 803AE364 003AB2C4 C0 02 D5 D0 */ lfs f0, lbl_805AF2F0@sda21(r2) +/* 803AE368 003AB2C8 7C BF 24 2E */ lfsx f5, r31, r4 +/* 803AE36C 003AB2CC EC 5A 00 B2 */ fmuls f2, f26, f2 +/* 803AE370 003AB2D0 ED 14 18 28 */ fsubs f8, f20, f3 +/* 803AE374 003AB2D4 C0 83 00 04 */ lfs f4, 4(r3) +/* 803AE378 003AB2D8 EC 3D 00 72 */ fmuls f1, f29, f1 +/* 803AE37C 003AB2DC EF 20 07 F2 */ fmuls f25, f0, f31 +/* 803AE380 003AB2E0 C0 62 D5 D8 */ lfs f3, lbl_805AF2F8@sda21(r2) +/* 803AE384 003AB2E4 EC C7 40 28 */ fsubs f6, f7, f8 +/* 803AE388 003AB2E8 EC 08 01 32 */ fmuls f0, f8, f4 +/* 803AE38C 003AB2EC 56 D6 10 3A */ slwi r22, r22, 2 +/* 803AE390 003AB2F0 EC 42 08 2A */ fadds f2, f2, f1 +/* 803AE394 003AB2F4 EC 26 01 72 */ fmuls f1, f6, f5 +/* 803AE398 003AB2F8 57 18 10 3A */ slwi r24, r24, 2 +/* 803AE39C 003AB2FC EF E7 D8 28 */ fsubs f31, f7, f27 +/* 803AE3A0 003AB300 EF 07 F0 28 */ fsubs f24, f7, f30 +/* 803AE3A4 003AB304 EC 01 00 2A */ fadds f0, f1, f0 +/* 803AE3A8 003AB308 EE E7 E0 28 */ fsubs f23, f7, f28 +/* 803AE3AC 003AB30C FC 20 C8 90 */ fmr f1, f25 +/* 803AE3B0 003AB310 EC 40 00 B2 */ fmuls f2, f0, f2 +/* 803AE3B4 003AB314 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803AE3B8 003AB318 D0 59 00 08 */ stfs f2, 8(r25) +/* 803AE3BC 003AB31C 7C 9C D4 2E */ lfsx f4, r28, r26 +/* 803AE3C0 003AB320 7C 5B D4 2E */ lfsx f2, r27, r26 +/* 803AE3C4 003AB324 7C 7C B4 2E */ lfsx f3, r28, r22 +/* 803AE3C8 003AB328 EC BF 01 32 */ fmuls f5, f31, f4 +/* 803AE3CC 003AB32C EC 9B 00 B2 */ fmuls f4, f27, f2 +/* 803AE3D0 003AB330 7C 5B B4 2E */ lfsx f2, r27, r22 +/* 803AE3D4 003AB334 EC 78 00 F2 */ fmuls f3, f24, f3 +/* 803AE3D8 003AB338 EC 5E 00 B2 */ fmuls f2, f30, f2 +/* 803AE3DC 003AB33C EC 85 20 2A */ fadds f4, f5, f4 +/* 803AE3E0 003AB340 EC 43 10 2A */ fadds f2, f3, f2 +/* 803AE3E4 003AB344 EC 00 01 32 */ fmuls f0, f0, f4 +/* 803AE3E8 003AB348 EC 40 00 B2 */ fmuls f2, f0, f2 +/* 803AE3EC 003AB34C D0 59 00 04 */ stfs f2, 4(r25) +/* 803AE3F0 003AB350 7C 7C C4 2E */ lfsx f3, r28, r24 +/* 803AE3F4 003AB354 7C 5B C4 2E */ lfsx f2, r27, r24 +/* 803AE3F8 003AB358 EC 77 00 F2 */ fmuls f3, f23, f3 +/* 803AE3FC 003AB35C EC 5C 00 B2 */ fmuls f2, f28, f2 +/* 803AE400 003AB360 EC 43 10 2A */ fadds f2, f3, f2 +/* 803AE404 003AB364 EC 00 00 B2 */ fmuls f0, f0, f2 +/* 803AE408 003AB368 D0 19 00 00 */ stfs f0, 0(r25) +/* 803AE40C 003AB36C 4B FD B5 49 */ bl __cvt_fp2unsigned +/* 803AE410 003AB370 3C 00 43 30 */ lis r0, 0x4330 +/* 803AE414 003AB374 54 64 10 3A */ slwi r4, r3, 2 +/* 803AE418 003AB378 90 61 00 0C */ stw r3, 0xc(r1) +/* 803AE41C 003AB37C 7C 7F 22 14 */ add r3, r31, r4 +/* 803AE420 003AB380 7C 1C BC 2E */ lfsx f0, r28, r23 +/* 803AE424 003AB384 90 01 00 08 */ stw r0, 8(r1) +/* 803AE428 003AB388 C8 62 D5 E0 */ lfd f3, lbl_805AF300@sda21(r2) +/* 803AE42C 003AB38C EC 5A 00 32 */ fmuls f2, f26, f0 +/* 803AE430 003AB390 C8 01 00 08 */ lfd f0, 8(r1) +/* 803AE434 003AB394 7C 3B BC 2E */ lfsx f1, r27, r23 +/* 803AE438 003AB398 EC 60 18 28 */ fsubs f3, f0, f3 +/* 803AE43C 003AB39C C0 02 D5 D0 */ lfs f0, lbl_805AF2F0@sda21(r2) +/* 803AE440 003AB3A0 EC 3D 00 72 */ fmuls f1, f29, f1 +/* 803AE444 003AB3A4 C0 A2 D5 D4 */ lfs f5, lbl_805AF2F4@sda21(r2) +/* 803AE448 003AB3A8 EE C0 05 72 */ fmuls f22, f0, f21 +/* 803AE44C 003AB3AC 7C 9F 24 2E */ lfsx f4, r31, r4 +/* 803AE450 003AB3B0 EC D9 18 28 */ fsubs f6, f25, f3 +/* 803AE454 003AB3B4 C0 63 00 04 */ lfs f3, 4(r3) +/* 803AE458 003AB3B8 EC 02 08 2A */ fadds f0, f2, f1 +/* 803AE45C 003AB3BC C0 42 D5 D8 */ lfs f2, lbl_805AF2F8@sda21(r2) +/* 803AE460 003AB3C0 FC 20 B0 90 */ fmr f1, f22 +/* 803AE464 003AB3C4 EC A5 30 28 */ fsubs f5, f5, f6 +/* 803AE468 003AB3C8 EC 66 00 F2 */ fmuls f3, f6, f3 +/* 803AE46C 003AB3CC EC 85 01 32 */ fmuls f4, f5, f4 +/* 803AE470 003AB3D0 EC A4 18 2A */ fadds f5, f4, f3 +/* 803AE474 003AB3D4 EC 05 00 32 */ fmuls f0, f5, f0 +/* 803AE478 003AB3D8 EC 02 00 32 */ fmuls f0, f2, f0 +/* 803AE47C 003AB3DC D0 19 00 14 */ stfs f0, 0x14(r25) +/* 803AE480 003AB3E0 7C 7C D4 2E */ lfsx f3, r28, r26 +/* 803AE484 003AB3E4 7C 1B D4 2E */ lfsx f0, r27, r26 +/* 803AE488 003AB3E8 7C 5C B4 2E */ lfsx f2, r28, r22 +/* 803AE48C 003AB3EC EC 9F 00 F2 */ fmuls f4, f31, f3 +/* 803AE490 003AB3F0 EC 7B 00 32 */ fmuls f3, f27, f0 +/* 803AE494 003AB3F4 7C 1B B4 2E */ lfsx f0, r27, r22 +/* 803AE498 003AB3F8 EC 58 00 B2 */ fmuls f2, f24, f2 +/* 803AE49C 003AB3FC EC 1E 00 32 */ fmuls f0, f30, f0 +/* 803AE4A0 003AB400 EC 64 18 2A */ fadds f3, f4, f3 +/* 803AE4A4 003AB404 EC 02 00 2A */ fadds f0, f2, f0 +/* 803AE4A8 003AB408 EC A5 00 F2 */ fmuls f5, f5, f3 +/* 803AE4AC 003AB40C EC 05 00 32 */ fmuls f0, f5, f0 +/* 803AE4B0 003AB410 D0 19 00 10 */ stfs f0, 0x10(r25) +/* 803AE4B4 003AB414 7C 5C C4 2E */ lfsx f2, r28, r24 +/* 803AE4B8 003AB418 7C 1B C4 2E */ lfsx f0, r27, r24 +/* 803AE4BC 003AB41C EC 57 00 B2 */ fmuls f2, f23, f2 +/* 803AE4C0 003AB420 EC 1C 00 32 */ fmuls f0, f28, f0 +/* 803AE4C4 003AB424 EC 02 00 2A */ fadds f0, f2, f0 +/* 803AE4C8 003AB428 EC 05 00 32 */ fmuls f0, f5, f0 +/* 803AE4CC 003AB42C D0 19 00 0C */ stfs f0, 0xc(r25) +/* 803AE4D0 003AB430 4B FD B4 85 */ bl __cvt_fp2unsigned +/* 803AE4D4 003AB434 3C 00 43 30 */ lis r0, 0x4330 +/* 803AE4D8 003AB438 54 64 10 3A */ slwi r4, r3, 2 +/* 803AE4DC 003AB43C 90 61 00 1C */ stw r3, 0x1c(r1) +/* 803AE4E0 003AB440 7C 7F 22 14 */ add r3, r31, r4 +/* 803AE4E4 003AB444 7C 1C BC 2E */ lfsx f0, r28, r23 +/* 803AE4E8 003AB448 90 01 00 18 */ stw r0, 0x18(r1) +/* 803AE4EC 003AB44C C8 62 D5 E0 */ lfd f3, lbl_805AF300@sda21(r2) +/* 803AE4F0 003AB450 EC 3A 00 32 */ fmuls f1, f26, f0 +/* 803AE4F4 003AB454 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 803AE4F8 003AB458 7C 1B BC 2E */ lfsx f0, r27, r23 +/* 803AE4FC 003AB45C EC A2 18 28 */ fsubs f5, f2, f3 +/* 803AE500 003AB460 C0 82 D5 D4 */ lfs f4, lbl_805AF2F4@sda21(r2) +/* 803AE504 003AB464 EC 1D 00 32 */ fmuls f0, f29, f0 +/* 803AE508 003AB468 7C 7F 24 2E */ lfsx f3, r31, r4 +/* 803AE50C 003AB46C C0 43 00 04 */ lfs f2, 4(r3) +/* 803AE510 003AB470 EC B6 28 28 */ fsubs f5, f22, f5 +/* 803AE514 003AB474 EC 01 00 2A */ fadds f0, f1, f0 +/* 803AE518 003AB478 C0 22 D5 D8 */ lfs f1, lbl_805AF2F8@sda21(r2) +/* 803AE51C 003AB47C EC 84 28 28 */ fsubs f4, f4, f5 +/* 803AE520 003AB480 EC 45 00 B2 */ fmuls f2, f5, f2 +/* 803AE524 003AB484 EC 64 00 F2 */ fmuls f3, f4, f3 +/* 803AE528 003AB488 EC 83 10 2A */ fadds f4, f3, f2 +/* 803AE52C 003AB48C EC 04 00 32 */ fmuls f0, f4, f0 +/* 803AE530 003AB490 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803AE534 003AB494 D0 19 00 20 */ stfs f0, 0x20(r25) +/* 803AE538 003AB498 7C 5C D4 2E */ lfsx f2, r28, r26 +/* 803AE53C 003AB49C 7C 1B D4 2E */ lfsx f0, r27, r26 +/* 803AE540 003AB4A0 7C 3C B4 2E */ lfsx f1, r28, r22 +/* 803AE544 003AB4A4 EC 7F 00 B2 */ fmuls f3, f31, f2 +/* 803AE548 003AB4A8 EC 5B 00 32 */ fmuls f2, f27, f0 +/* 803AE54C 003AB4AC 7C 1B B4 2E */ lfsx f0, r27, r22 +/* 803AE550 003AB4B0 EC 38 00 72 */ fmuls f1, f24, f1 +/* 803AE554 003AB4B4 EC 1E 00 32 */ fmuls f0, f30, f0 +/* 803AE558 003AB4B8 EC 43 10 2A */ fadds f2, f3, f2 +/* 803AE55C 003AB4BC EC 01 00 2A */ fadds f0, f1, f0 +/* 803AE560 003AB4C0 EC 84 00 B2 */ fmuls f4, f4, f2 +/* 803AE564 003AB4C4 EC 04 00 32 */ fmuls f0, f4, f0 +/* 803AE568 003AB4C8 D0 19 00 1C */ stfs f0, 0x1c(r25) +/* 803AE56C 003AB4CC 7C 3C C4 2E */ lfsx f1, r28, r24 +/* 803AE570 003AB4D0 7C 1B C4 2E */ lfsx f0, r27, r24 +/* 803AE574 003AB4D4 EC 37 00 72 */ fmuls f1, f23, f1 +/* 803AE578 003AB4D8 EC 1C 00 32 */ fmuls f0, f28, f0 +/* 803AE57C 003AB4DC EC 01 00 2A */ fadds f0, f1, f0 +/* 803AE580 003AB4E0 EC 04 00 32 */ fmuls f0, f4, f0 +/* 803AE584 003AB4E4 D0 19 00 18 */ stfs f0, 0x18(r25) +/* 803AE588 003AB4E8 48 00 02 00 */ b lbl_803AE788 +lbl_803AE58C: +/* 803AE58C 003AB4EC C0 02 D5 D0 */ lfs f0, lbl_805AF2F0@sda21(r2) +/* 803AE590 003AB4F0 EE 80 05 B2 */ fmuls f20, f0, f22 +/* 803AE594 003AB4F4 FC 20 A0 90 */ fmr f1, f20 +/* 803AE598 003AB4F8 4B FD B3 BD */ bl __cvt_fp2unsigned +/* 803AE59C 003AB4FC 3C 00 43 30 */ lis r0, 0x4330 +/* 803AE5A0 003AB500 C0 02 D5 D4 */ lfs f0, lbl_805AF2F4@sda21(r2) +/* 803AE5A4 003AB504 90 61 00 1C */ stw r3, 0x1c(r1) +/* 803AE5A8 003AB508 54 64 10 3A */ slwi r4, r3, 2 +/* 803AE5AC 003AB50C 3B 7E 02 04 */ addi r27, r30, 0x204 +/* 803AE5B0 003AB510 56 F7 10 3A */ slwi r23, r23, 2 +/* 803AE5B4 003AB514 90 01 00 18 */ stw r0, 0x18(r1) +/* 803AE5B8 003AB518 7C 7F 22 14 */ add r3, r31, r4 +/* 803AE5BC 003AB51C C8 62 D5 E0 */ lfd f3, lbl_805AF300@sda21(r2) +/* 803AE5C0 003AB520 3A BB 00 04 */ addi r21, r27, 4 +/* 803AE5C4 003AB524 C8 41 00 18 */ lfd f2, 0x18(r1) +/* 803AE5C8 003AB528 57 5A 10 3A */ slwi r26, r26, 2 +/* 803AE5CC 003AB52C 56 D6 10 3A */ slwi r22, r22, 2 +/* 803AE5D0 003AB530 7C 35 BC 2E */ lfsx f1, r21, r23 +/* 803AE5D4 003AB534 EC A2 18 28 */ fsubs f5, f2, f3 +/* 803AE5D8 003AB538 7C 75 D4 2E */ lfsx f3, r21, r26 +/* 803AE5DC 003AB53C 7C 55 B4 2E */ lfsx f2, r21, r22 +/* 803AE5E0 003AB540 EE E0 E8 28 */ fsubs f23, f0, f29 +/* 803AE5E4 003AB544 7C 9B BC 2E */ lfsx f4, r27, r23 +/* 803AE5E8 003AB548 EF 00 D8 28 */ fsubs f24, f0, f27 +/* 803AE5EC 003AB54C ED 34 28 28 */ fsubs f9, f20, f5 +/* 803AE5F0 003AB550 C0 C3 00 04 */ lfs f6, 4(r3) +/* 803AE5F4 003AB554 7C BB D4 2E */ lfsx f5, r27, r26 +/* 803AE5F8 003AB558 ED 17 01 32 */ fmuls f8, f23, f4 +/* 803AE5FC 003AB55C 7D 5F 24 2E */ lfsx f10, r31, r4 +/* 803AE600 003AB560 EC FD 00 72 */ fmuls f7, f29, f1 +/* 803AE604 003AB564 ED 60 48 28 */ fsubs f11, f0, f9 +/* 803AE608 003AB568 7C 9B B4 2E */ lfsx f4, r27, r22 +/* 803AE60C 003AB56C EE A0 F0 28 */ fsubs f21, f0, f30 +/* 803AE610 003AB570 C0 22 D5 D0 */ lfs f1, lbl_805AF2F0@sda21(r2) +/* 803AE614 003AB574 ED 29 01 B2 */ fmuls f9, f9, f6 +/* 803AE618 003AB578 57 18 10 3A */ slwi r24, r24, 2 +/* 803AE61C 003AB57C ED 4B 02 B2 */ fmuls f10, f11, f10 +/* 803AE620 003AB580 57 A0 10 3A */ slwi r0, r29, 2 +/* 803AE624 003AB584 EC D8 01 72 */ fmuls f6, f24, f5 +/* 803AE628 003AB588 38 7E 02 14 */ addi r3, r30, 0x214 +/* 803AE62C 003AB58C EC BB 00 F2 */ fmuls f5, f27, f3 +/* 803AE630 003AB590 57 84 10 3A */ slwi r4, r28, 2 +/* 803AE634 003AB594 EC 6A 48 2A */ fadds f3, f10, f9 +/* 803AE638 003AB598 EC E8 38 2A */ fadds f7, f8, f7 +/* 803AE63C 003AB59C EC C6 28 2A */ fadds f6, f6, f5 +/* 803AE640 003AB5A0 EC B5 01 32 */ fmuls f5, f21, f4 +/* 803AE644 003AB5A4 EC 9E 00 B2 */ fmuls f4, f30, f2 +/* 803AE648 003AB5A8 EC 43 01 F2 */ fmuls f2, f3, f7 +/* 803AE64C 003AB5AC EC 63 01 B2 */ fmuls f3, f3, f6 +/* 803AE650 003AB5B0 EC 85 20 2A */ fadds f4, f5, f4 +/* 803AE654 003AB5B4 EE 80 E0 28 */ fsubs f20, f0, f28 +/* 803AE658 003AB5B8 EE C1 07 F2 */ fmuls f22, f1, f31 +/* 803AE65C 003AB5BC EC 23 01 32 */ fmuls f1, f3, f4 +/* 803AE660 003AB5C0 EC A0 D0 28 */ fsubs f5, f0, f26 +/* 803AE664 003AB5C4 EC 80 C8 28 */ fsubs f4, f0, f25 +/* 803AE668 003AB5C8 D0 39 00 04 */ stfs f1, 4(r25) +/* 803AE66C 003AB5CC FC 20 B0 90 */ fmr f1, f22 +/* 803AE670 003AB5D0 7C DB C4 2E */ lfsx f6, r27, r24 +/* 803AE674 003AB5D4 7C 15 C4 2E */ lfsx f0, r21, r24 +/* 803AE678 003AB5D8 EC D4 01 B2 */ fmuls f6, f20, f6 +/* 803AE67C 003AB5DC EC 1C 00 32 */ fmuls f0, f28, f0 +/* 803AE680 003AB5E0 EC 06 00 2A */ fadds f0, f6, f0 +/* 803AE684 003AB5E4 EC 03 00 32 */ fmuls f0, f3, f0 +/* 803AE688 003AB5E8 D0 19 00 00 */ stfs f0, 0(r25) +/* 803AE68C 003AB5EC 7C 63 04 2E */ lfsx f3, r3, r0 +/* 803AE690 003AB5F0 7C 15 04 2E */ lfsx f0, r21, r0 +/* 803AE694 003AB5F4 EC 65 00 F2 */ fmuls f3, f5, f3 +/* 803AE698 003AB5F8 EC 1A 00 32 */ fmuls f0, f26, f0 +/* 803AE69C 003AB5FC EC 03 00 2A */ fadds f0, f3, f0 +/* 803AE6A0 003AB600 EC 02 00 32 */ fmuls f0, f2, f0 +/* 803AE6A4 003AB604 D0 19 00 1C */ stfs f0, 0x1c(r25) +/* 803AE6A8 003AB608 7C 63 24 2E */ lfsx f3, r3, r4 +/* 803AE6AC 003AB60C 7C 15 24 2E */ lfsx f0, r21, r4 +/* 803AE6B0 003AB610 EC 64 00 F2 */ fmuls f3, f4, f3 +/* 803AE6B4 003AB614 EC 19 00 32 */ fmuls f0, f25, f0 +/* 803AE6B8 003AB618 EC 03 00 2A */ fadds f0, f3, f0 +/* 803AE6BC 003AB61C EC 02 00 32 */ fmuls f0, f2, f0 +/* 803AE6C0 003AB620 D0 19 00 18 */ stfs f0, 0x18(r25) +/* 803AE6C4 003AB624 4B FD B2 91 */ bl __cvt_fp2unsigned +/* 803AE6C8 003AB628 3C 00 43 30 */ lis r0, 0x4330 +/* 803AE6CC 003AB62C 54 64 10 3A */ slwi r4, r3, 2 +/* 803AE6D0 003AB630 90 61 00 14 */ stw r3, 0x14(r1) +/* 803AE6D4 003AB634 7C 7F 22 14 */ add r3, r31, r4 +/* 803AE6D8 003AB638 7C 1B BC 2E */ lfsx f0, r27, r23 +/* 803AE6DC 003AB63C 90 01 00 10 */ stw r0, 0x10(r1) +/* 803AE6E0 003AB640 C8 62 D5 E0 */ lfd f3, lbl_805AF300@sda21(r2) +/* 803AE6E4 003AB644 EC 37 00 32 */ fmuls f1, f23, f0 +/* 803AE6E8 003AB648 C8 41 00 10 */ lfd f2, 0x10(r1) +/* 803AE6EC 003AB64C 7C 15 BC 2E */ lfsx f0, r21, r23 +/* 803AE6F0 003AB650 EC 42 18 28 */ fsubs f2, f2, f3 +/* 803AE6F4 003AB654 C0 A2 D5 D4 */ lfs f5, lbl_805AF2F4@sda21(r2) +/* 803AE6F8 003AB658 EC 1D 00 32 */ fmuls f0, f29, f0 +/* 803AE6FC 003AB65C 7C 9F 24 2E */ lfsx f4, r31, r4 +/* 803AE700 003AB660 C0 63 00 04 */ lfs f3, 4(r3) +/* 803AE704 003AB664 EC D6 10 28 */ fsubs f6, f22, f2 +/* 803AE708 003AB668 EC 21 00 2A */ fadds f1, f1, f0 +/* 803AE70C 003AB66C C0 42 D5 D8 */ lfs f2, lbl_805AF2F8@sda21(r2) +/* 803AE710 003AB670 C0 02 D6 00 */ lfs f0, lbl_805AF320@sda21(r2) +/* 803AE714 003AB674 EC A5 30 28 */ fsubs f5, f5, f6 +/* 803AE718 003AB678 EC 66 00 F2 */ fmuls f3, f6, f3 +/* 803AE71C 003AB67C EC 85 01 32 */ fmuls f4, f5, f4 +/* 803AE720 003AB680 EC A4 18 2A */ fadds f5, f4, f3 +/* 803AE724 003AB684 EC 25 00 72 */ fmuls f1, f5, f1 +/* 803AE728 003AB688 EC 22 00 72 */ fmuls f1, f2, f1 +/* 803AE72C 003AB68C D0 39 00 14 */ stfs f1, 0x14(r25) +/* 803AE730 003AB690 7C 7B D4 2E */ lfsx f3, r27, r26 +/* 803AE734 003AB694 7C 35 D4 2E */ lfsx f1, r21, r26 +/* 803AE738 003AB698 7C 5B B4 2E */ lfsx f2, r27, r22 +/* 803AE73C 003AB69C EC 98 00 F2 */ fmuls f4, f24, f3 +/* 803AE740 003AB6A0 EC 7B 00 72 */ fmuls f3, f27, f1 +/* 803AE744 003AB6A4 7C 35 B4 2E */ lfsx f1, r21, r22 +/* 803AE748 003AB6A8 EC 55 00 B2 */ fmuls f2, f21, f2 +/* 803AE74C 003AB6AC EC 3E 00 72 */ fmuls f1, f30, f1 +/* 803AE750 003AB6B0 EC 64 18 2A */ fadds f3, f4, f3 +/* 803AE754 003AB6B4 EC 22 08 2A */ fadds f1, f2, f1 +/* 803AE758 003AB6B8 EC A5 00 F2 */ fmuls f5, f5, f3 +/* 803AE75C 003AB6BC EC 25 00 72 */ fmuls f1, f5, f1 +/* 803AE760 003AB6C0 D0 39 00 10 */ stfs f1, 0x10(r25) +/* 803AE764 003AB6C4 7C 5B C4 2E */ lfsx f2, r27, r24 +/* 803AE768 003AB6C8 7C 35 C4 2E */ lfsx f1, r21, r24 +/* 803AE76C 003AB6CC EC 54 00 B2 */ fmuls f2, f20, f2 +/* 803AE770 003AB6D0 EC 3C 00 72 */ fmuls f1, f28, f1 +/* 803AE774 003AB6D4 EC 22 08 2A */ fadds f1, f2, f1 +/* 803AE778 003AB6D8 EC 25 00 72 */ fmuls f1, f5, f1 +/* 803AE77C 003AB6DC D0 39 00 0C */ stfs f1, 0xc(r25) +/* 803AE780 003AB6E0 D0 19 00 08 */ stfs f0, 8(r25) +/* 803AE784 003AB6E4 D0 19 00 20 */ stfs f0, 0x20(r25) +lbl_803AE788: +/* 803AE788 003AB6E8 E3 E1 01 08 */ psq_l f31, 264(r1), 0, qr0 +/* 803AE78C 003AB6EC CB E1 01 00 */ lfd f31, 0x100(r1) +/* 803AE790 003AB6F0 E3 C1 00 F8 */ psq_l f30, 248(r1), 0, qr0 +/* 803AE794 003AB6F4 CB C1 00 F0 */ lfd f30, 0xf0(r1) +/* 803AE798 003AB6F8 E3 A1 00 E8 */ psq_l f29, 232(r1), 0, qr0 +/* 803AE79C 003AB6FC CB A1 00 E0 */ lfd f29, 0xe0(r1) +/* 803AE7A0 003AB700 E3 81 00 D8 */ psq_l f28, 216(r1), 0, qr0 +/* 803AE7A4 003AB704 CB 81 00 D0 */ lfd f28, 0xd0(r1) +/* 803AE7A8 003AB708 E3 61 00 C8 */ psq_l f27, 200(r1), 0, qr0 +/* 803AE7AC 003AB70C CB 61 00 C0 */ lfd f27, 0xc0(r1) +/* 803AE7B0 003AB710 E3 41 00 B8 */ psq_l f26, 184(r1), 0, qr0 +/* 803AE7B4 003AB714 CB 41 00 B0 */ lfd f26, 0xb0(r1) +/* 803AE7B8 003AB718 E3 21 00 A8 */ psq_l f25, 168(r1), 0, qr0 +/* 803AE7BC 003AB71C CB 21 00 A0 */ lfd f25, 0xa0(r1) +/* 803AE7C0 003AB720 E3 01 00 98 */ psq_l f24, 152(r1), 0, qr0 +/* 803AE7C4 003AB724 CB 01 00 90 */ lfd f24, 0x90(r1) +/* 803AE7C8 003AB728 E2 E1 00 88 */ psq_l f23, 136(r1), 0, qr0 +/* 803AE7CC 003AB72C CA E1 00 80 */ lfd f23, 0x80(r1) +/* 803AE7D0 003AB730 E2 C1 00 78 */ psq_l f22, 120(r1), 0, qr0 +/* 803AE7D4 003AB734 CA C1 00 70 */ lfd f22, 0x70(r1) +/* 803AE7D8 003AB738 E2 A1 00 68 */ psq_l f21, 104(r1), 0, qr0 +/* 803AE7DC 003AB73C CA A1 00 60 */ lfd f21, 0x60(r1) +/* 803AE7E0 003AB740 E2 81 00 58 */ psq_l f20, 88(r1), 0, qr0 +/* 803AE7E4 003AB744 39 61 00 50 */ addi r11, r1, 0x50 +/* 803AE7E8 003AB748 CA 81 00 50 */ lfd f20, 0x50(r1) +/* 803AE7EC 003AB74C 4B FD B2 C5 */ bl _restgpr_21 +/* 803AE7F0 003AB750 80 01 01 14 */ lwz r0, 0x114(r1) +/* 803AE7F4 003AB754 7C 08 03 A6 */ mtlr r0 +/* 803AE7F8 003AB758 38 21 01 10 */ addi r1, r1, 0x110 +/* 803AE7FC 003AB75C 4E 80 00 20 */ blr diff --git a/asm/musyx/reverb.s b/asm/musyx/reverb.s new file mode 100644 index 00000000..214b5dac --- /dev/null +++ b/asm/musyx/reverb.s @@ -0,0 +1,938 @@ +.include "macros.inc" + +.section .text, "ax" + +.global ReverbHICreate +ReverbHICreate: +/* 803B5BC0 003B2B20 94 21 FF 40 */ stwu r1, -0xc0(r1) +/* 803B5BC4 003B2B24 7C 08 02 A6 */ mflr r0 +/* 803B5BC8 003B2B28 90 01 00 C4 */ stw r0, 0xc4(r1) +/* 803B5BCC 003B2B2C DB E1 00 B0 */ stfd f31, 0xb0(r1) +/* 803B5BD0 003B2B30 F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0 +/* 803B5BD4 003B2B34 DB C1 00 A0 */ stfd f30, 0xa0(r1) +/* 803B5BD8 003B2B38 F3 C1 00 A8 */ psq_st f30, 168(r1), 0, qr0 +/* 803B5BDC 003B2B3C DB A1 00 90 */ stfd f29, 0x90(r1) +/* 803B5BE0 003B2B40 F3 A1 00 98 */ psq_st f29, 152(r1), 0, qr0 +/* 803B5BE4 003B2B44 DB 81 00 80 */ stfd f28, 0x80(r1) +/* 803B5BE8 003B2B48 F3 81 00 88 */ psq_st f28, 136(r1), 0, qr0 +/* 803B5BEC 003B2B4C DB 61 00 70 */ stfd f27, 0x70(r1) +/* 803B5BF0 003B2B50 F3 61 00 78 */ psq_st f27, 120(r1), 0, qr0 +/* 803B5BF4 003B2B54 DB 41 00 60 */ stfd f26, 0x60(r1) +/* 803B5BF8 003B2B58 F3 41 00 68 */ psq_st f26, 104(r1), 0, qr0 +/* 803B5BFC 003B2B5C DB 21 00 50 */ stfd f25, 0x50(r1) +/* 803B5C00 003B2B60 F3 21 00 58 */ psq_st f25, 88(r1), 0, qr0 +/* 803B5C04 003B2B64 DB 01 00 40 */ stfd f24, 0x40(r1) +/* 803B5C08 003B2B68 F3 01 00 48 */ psq_st f24, 72(r1), 0, qr0 +/* 803B5C0C 003B2B6C 39 61 00 40 */ addi r11, r1, 0x40 +/* 803B5C10 003B2B70 4B FD 3E 51 */ bl func_80389A60 +/* 803B5C14 003B2B74 FF 00 08 90 */ fmr f24, f1 +/* 803B5C18 003B2B78 C0 E2 D6 D0 */ lfs f7, lbl_805AF3F0@sda21(r2) +/* 803B5C1C 003B2B7C FF 80 10 90 */ fmr f28, f2 +/* 803B5C20 003B2B80 7C 7E 1B 78 */ mr r30, r3 +/* 803B5C24 003B2B84 FF 20 18 90 */ fmr f25, f3 +/* 803B5C28 003B2B88 FF 40 20 90 */ fmr f26, f4 +/* 803B5C2C 003B2B8C FF E0 28 90 */ fmr f31, f5 +/* 803B5C30 003B2B90 FF 60 30 90 */ fmr f27, f6 +/* 803B5C34 003B2B94 FC 18 38 40 */ fcmpo cr0, f24, f7 +/* 803B5C38 003B2B98 41 80 00 6C */ blt lbl_803B5CA4 +/* 803B5C3C 003B2B9C C0 22 D6 D4 */ lfs f1, lbl_805AF3F4@sda21(r2) +/* 803B5C40 003B2BA0 FC 18 08 40 */ fcmpo cr0, f24, f1 +/* 803B5C44 003B2BA4 41 81 00 60 */ bgt lbl_803B5CA4 +/* 803B5C48 003B2BA8 C0 02 D6 D8 */ lfs f0, lbl_805AF3F8@sda21(r2) +/* 803B5C4C 003B2BAC FC 1C 00 40 */ fcmpo cr0, f28, f0 +/* 803B5C50 003B2BB0 41 80 00 54 */ blt lbl_803B5CA4 +/* 803B5C54 003B2BB4 C0 02 D6 DC */ lfs f0, lbl_805AF3FC@sda21(r2) +/* 803B5C58 003B2BB8 FC 1C 00 40 */ fcmpo cr0, f28, f0 +/* 803B5C5C 003B2BBC 41 81 00 48 */ bgt lbl_803B5CA4 +/* 803B5C60 003B2BC0 FC 19 38 40 */ fcmpo cr0, f25, f7 +/* 803B5C64 003B2BC4 41 80 00 40 */ blt lbl_803B5CA4 +/* 803B5C68 003B2BC8 FC 19 08 40 */ fcmpo cr0, f25, f1 +/* 803B5C6C 003B2BCC 41 81 00 38 */ bgt lbl_803B5CA4 +/* 803B5C70 003B2BD0 FC 1B 38 40 */ fcmpo cr0, f27, f7 +/* 803B5C74 003B2BD4 41 80 00 30 */ blt lbl_803B5CA4 +/* 803B5C78 003B2BD8 FC 1B 08 40 */ fcmpo cr0, f27, f1 +/* 803B5C7C 003B2BDC 41 81 00 28 */ bgt lbl_803B5CA4 +/* 803B5C80 003B2BE0 FC 1A 38 40 */ fcmpo cr0, f26, f7 +/* 803B5C84 003B2BE4 41 80 00 20 */ blt lbl_803B5CA4 +/* 803B5C88 003B2BE8 FC 1A 08 40 */ fcmpo cr0, f26, f1 +/* 803B5C8C 003B2BEC 41 81 00 18 */ bgt lbl_803B5CA4 +/* 803B5C90 003B2BF0 FC 1F 38 40 */ fcmpo cr0, f31, f7 +/* 803B5C94 003B2BF4 41 80 00 10 */ blt lbl_803B5CA4 +/* 803B5C98 003B2BF8 C0 02 D6 E0 */ lfs f0, lbl_805AF400@sda21(r2) +/* 803B5C9C 003B2BFC FC 1F 00 40 */ fcmpo cr0, f31, f0 +/* 803B5CA0 003B2C00 40 81 00 0C */ ble lbl_803B5CAC +lbl_803B5CA4: +/* 803B5CA4 003B2C04 38 60 00 00 */ li r3, 0 +/* 803B5CA8 003B2C08 48 00 03 CC */ b lbl_803B6074 +lbl_803B5CAC: +/* 803B5CAC 003B2C0C 38 80 00 00 */ li r4, 0 +/* 803B5CB0 003B2C10 38 A0 01 C4 */ li r5, 0x1c4 +/* 803B5CB4 003B2C14 4B C4 D6 F5 */ bl memset +/* 803B5CB8 003B2C18 C0 02 D6 E4 */ lfs f0, lbl_805AF404@sda21(r2) +/* 803B5CBC 003B2C1C 3C 60 80 3F */ lis r3, lbl_803F6470@ha +/* 803B5CC0 003B2C20 C3 C2 D6 D0 */ lfs f30, lbl_805AF3F0@sda21(r2) +/* 803B5CC4 003B2C24 3B A3 64 70 */ addi r29, r3, lbl_803F6470@l +/* 803B5CC8 003B2C28 EF 80 07 32 */ fmuls f28, f0, f28 +/* 803B5CCC 003B2C2C CB A2 D6 F8 */ lfd f29, lbl_805AF418@sda21(r2) +/* 803B5CD0 003B2C30 3B E0 00 00 */ li r31, 0 +/* 803B5CD4 003B2C34 3F 80 43 30 */ lis r28, 0x4330 +/* 803B5CD8 003B2C38 48 00 02 B4 */ b lbl_803B5F8C +lbl_803B5CDC: +/* 803B5CDC 003B2C3C 57 F7 06 3E */ clrlwi r23, r31, 0x18 +/* 803B5CE0 003B2C40 3A C0 00 00 */ li r22, 0 +/* 803B5CE4 003B2C44 1F 17 00 03 */ mulli r24, r23, 3 +/* 803B5CE8 003B2C48 48 00 00 F8 */ b lbl_803B5DE0 +lbl_803B5CEC: +/* 803B5CEC 003B2C4C 56 C0 06 3E */ clrlwi r0, r22, 0x18 +/* 803B5CF0 003B2C50 56 DB 15 BA */ rlwinm r27, r22, 2, 0x16, 0x1d +/* 803B5CF4 003B2C54 7F 20 C2 14 */ add r25, r0, r24 +/* 803B5CF8 003B2C58 7C 7D D8 2E */ lwzx r3, r29, r27 +/* 803B5CFC 003B2C5C 1C 19 00 14 */ mulli r0, r25, 0x14 +/* 803B5D00 003B2C60 3A A3 00 02 */ addi r21, r3, 2 +/* 803B5D04 003B2C64 56 B4 10 3A */ slwi r20, r21, 2 +/* 803B5D08 003B2C68 7F 5E 02 14 */ add r26, r30, r0 +/* 803B5D0C 003B2C6C 92 9A 00 BC */ stw r20, 0xbc(r26) +/* 803B5D10 003B2C70 7E 83 A3 78 */ mr r3, r20 +/* 803B5D14 003B2C74 4B FF F4 21 */ bl salMalloc +/* 803B5D18 003B2C78 90 7A 00 C0 */ stw r3, 0xc0(r26) +/* 803B5D1C 003B2C7C 7E 85 A3 78 */ mr r5, r20 +/* 803B5D20 003B2C80 38 80 00 00 */ li r4, 0 +/* 803B5D24 003B2C84 80 7A 00 C0 */ lwz r3, 0xc0(r26) +/* 803B5D28 003B2C88 4B C4 D6 81 */ bl memset +/* 803B5D2C 003B2C8C D3 DA 00 C4 */ stfs f30, 0xc4(r26) +/* 803B5D30 003B2C90 7E A0 0E 70 */ srawi r0, r21, 1 +/* 803B5D34 003B2C94 54 03 10 3A */ slwi r3, r0, 2 +/* 803B5D38 003B2C98 80 1A 00 B4 */ lwz r0, 0xb4(r26) +/* 803B5D3C 003B2C9C 7C 03 00 50 */ subf r0, r3, r0 +/* 803B5D40 003B2CA0 90 1A 00 B8 */ stw r0, 0xb8(r26) +/* 803B5D44 003B2CA4 48 00 00 14 */ b lbl_803B5D58 +lbl_803B5D48: +/* 803B5D48 003B2CA8 80 7A 00 B8 */ lwz r3, 0xb8(r26) +/* 803B5D4C 003B2CAC 80 1A 00 BC */ lwz r0, 0xbc(r26) +/* 803B5D50 003B2CB0 7C 03 02 14 */ add r0, r3, r0 +/* 803B5D54 003B2CB4 90 1A 00 B8 */ stw r0, 0xb8(r26) +lbl_803B5D58: +/* 803B5D58 003B2CB8 80 1A 00 B8 */ lwz r0, 0xb8(r26) +/* 803B5D5C 003B2CBC 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5D60 003B2CC0 41 80 FF E8 */ blt lbl_803B5D48 +/* 803B5D64 003B2CC4 38 00 00 00 */ li r0, 0 +/* 803B5D68 003B2CC8 90 1A 00 B4 */ stw r0, 0xb4(r26) +/* 803B5D6C 003B2CCC 90 1A 00 B8 */ stw r0, 0xb8(r26) +/* 803B5D70 003B2CD0 7C 7D D8 2E */ lwzx r3, r29, r27 +/* 803B5D74 003B2CD4 80 1A 00 B4 */ lwz r0, 0xb4(r26) +/* 803B5D78 003B2CD8 54 63 10 3A */ slwi r3, r3, 2 +/* 803B5D7C 003B2CDC 7C 03 00 50 */ subf r0, r3, r0 +/* 803B5D80 003B2CE0 90 1A 00 B8 */ stw r0, 0xb8(r26) +/* 803B5D84 003B2CE4 48 00 00 14 */ b lbl_803B5D98 +lbl_803B5D88: +/* 803B5D88 003B2CE8 80 7A 00 B8 */ lwz r3, 0xb8(r26) +/* 803B5D8C 003B2CEC 80 1A 00 BC */ lwz r0, 0xbc(r26) +/* 803B5D90 003B2CF0 7C 03 02 14 */ add r0, r3, r0 +/* 803B5D94 003B2CF4 90 1A 00 B8 */ stw r0, 0xb8(r26) +lbl_803B5D98: +/* 803B5D98 003B2CF8 80 1A 00 B8 */ lwz r0, 0xb8(r26) +/* 803B5D9C 003B2CFC 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5DA0 003B2D00 41 80 FF E8 */ blt lbl_803B5D88 +/* 803B5DA4 003B2D04 7C 1D D8 2E */ lwzx r0, r29, r27 +/* 803B5DA8 003B2D08 93 81 00 08 */ stw r28, 8(r1) +/* 803B5DAC 003B2D0C 1C 00 FF FD */ mulli r0, r0, -3 +/* 803B5DB0 003B2D10 C8 22 D6 E8 */ lfd f1, lbl_805AF408@sda21(r2) +/* 803B5DB4 003B2D14 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 803B5DB8 003B2D18 90 01 00 0C */ stw r0, 0xc(r1) +/* 803B5DBC 003B2D1C C8 01 00 08 */ lfd f0, 8(r1) +/* 803B5DC0 003B2D20 EC 00 E8 28 */ fsubs f0, f0, f29 +/* 803B5DC4 003B2D24 EC 40 E0 24 */ fdivs f2, f0, f28 +/* 803B5DC8 003B2D28 4B FD EF 25 */ bl pow +/* 803B5DCC 003B2D2C FC 00 08 18 */ frsp f0, f1 +/* 803B5DD0 003B2D30 57 23 10 3A */ slwi r3, r25, 2 +/* 803B5DD4 003B2D34 38 03 01 6C */ addi r0, r3, 0x16c +/* 803B5DD8 003B2D38 3A D6 00 01 */ addi r22, r22, 1 +/* 803B5DDC 003B2D3C 7C 1E 05 2E */ stfsx f0, r30, r0 +lbl_803B5DE0: +/* 803B5DE0 003B2D40 56 C0 06 3E */ clrlwi r0, r22, 0x18 +/* 803B5DE4 003B2D44 28 00 00 03 */ cmplwi r0, 3 +/* 803B5DE8 003B2D48 41 80 FF 04 */ blt lbl_803B5CEC +/* 803B5DEC 003B2D4C 3B 60 00 00 */ li r27, 0 +/* 803B5DF0 003B2D50 48 00 00 C8 */ b lbl_803B5EB8 +lbl_803B5DF4: +/* 803B5DF4 003B2D54 57 60 15 BA */ rlwinm r0, r27, 2, 0x16, 0x1d +/* 803B5DF8 003B2D58 57 64 06 3E */ clrlwi r4, r27, 0x18 +/* 803B5DFC 003B2D5C 7C 7D 02 14 */ add r3, r29, r0 +/* 803B5E00 003B2D60 7C 04 C2 14 */ add r0, r4, r24 +/* 803B5E04 003B2D64 3B 43 00 0C */ addi r26, r3, 0xc +/* 803B5E08 003B2D68 80 63 00 0C */ lwz r3, 0xc(r3) +/* 803B5E0C 003B2D6C 1C 00 00 14 */ mulli r0, r0, 0x14 +/* 803B5E10 003B2D70 3A A3 00 02 */ addi r21, r3, 2 +/* 803B5E14 003B2D74 56 B4 10 3A */ slwi r20, r21, 2 +/* 803B5E18 003B2D78 7F 3E 02 14 */ add r25, r30, r0 +/* 803B5E1C 003B2D7C 92 99 00 08 */ stw r20, 8(r25) +/* 803B5E20 003B2D80 7E 83 A3 78 */ mr r3, r20 +/* 803B5E24 003B2D84 4B FF F3 11 */ bl salMalloc +/* 803B5E28 003B2D88 90 79 00 0C */ stw r3, 0xc(r25) +/* 803B5E2C 003B2D8C 7E 85 A3 78 */ mr r5, r20 +/* 803B5E30 003B2D90 38 80 00 00 */ li r4, 0 +/* 803B5E34 003B2D94 80 79 00 0C */ lwz r3, 0xc(r25) +/* 803B5E38 003B2D98 4B C4 D5 71 */ bl memset +/* 803B5E3C 003B2D9C D3 D9 00 10 */ stfs f30, 0x10(r25) +/* 803B5E40 003B2DA0 7E A0 0E 70 */ srawi r0, r21, 1 +/* 803B5E44 003B2DA4 54 03 10 3A */ slwi r3, r0, 2 +/* 803B5E48 003B2DA8 80 19 00 00 */ lwz r0, 0(r25) +/* 803B5E4C 003B2DAC 7C 03 00 50 */ subf r0, r3, r0 +/* 803B5E50 003B2DB0 90 19 00 04 */ stw r0, 4(r25) +/* 803B5E54 003B2DB4 48 00 00 14 */ b lbl_803B5E68 +lbl_803B5E58: +/* 803B5E58 003B2DB8 80 79 00 04 */ lwz r3, 4(r25) +/* 803B5E5C 003B2DBC 80 19 00 08 */ lwz r0, 8(r25) +/* 803B5E60 003B2DC0 7C 03 02 14 */ add r0, r3, r0 +/* 803B5E64 003B2DC4 90 19 00 04 */ stw r0, 4(r25) +lbl_803B5E68: +/* 803B5E68 003B2DC8 80 19 00 04 */ lwz r0, 4(r25) +/* 803B5E6C 003B2DCC 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5E70 003B2DD0 41 80 FF E8 */ blt lbl_803B5E58 +/* 803B5E74 003B2DD4 38 00 00 00 */ li r0, 0 +/* 803B5E78 003B2DD8 90 19 00 00 */ stw r0, 0(r25) +/* 803B5E7C 003B2DDC 90 19 00 04 */ stw r0, 4(r25) +/* 803B5E80 003B2DE0 80 7A 00 00 */ lwz r3, 0(r26) +/* 803B5E84 003B2DE4 80 19 00 00 */ lwz r0, 0(r25) +/* 803B5E88 003B2DE8 54 63 10 3A */ slwi r3, r3, 2 +/* 803B5E8C 003B2DEC 7C 03 00 50 */ subf r0, r3, r0 +/* 803B5E90 003B2DF0 90 19 00 04 */ stw r0, 4(r25) +/* 803B5E94 003B2DF4 48 00 00 14 */ b lbl_803B5EA8 +lbl_803B5E98: +/* 803B5E98 003B2DF8 80 79 00 04 */ lwz r3, 4(r25) +/* 803B5E9C 003B2DFC 80 19 00 08 */ lwz r0, 8(r25) +/* 803B5EA0 003B2E00 7C 03 02 14 */ add r0, r3, r0 +/* 803B5EA4 003B2E04 90 19 00 04 */ stw r0, 4(r25) +lbl_803B5EA8: +/* 803B5EA8 003B2E08 80 19 00 04 */ lwz r0, 4(r25) +/* 803B5EAC 003B2E0C 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5EB0 003B2E10 41 80 FF E8 */ blt lbl_803B5E98 +/* 803B5EB4 003B2E14 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803B5EB8: +/* 803B5EB8 003B2E18 57 60 06 3E */ clrlwi r0, r27, 0x18 +/* 803B5EBC 003B2E1C 28 00 00 02 */ cmplwi r0, 2 +/* 803B5EC0 003B2E20 41 80 FF 34 */ blt lbl_803B5DF4 +/* 803B5EC4 003B2E24 56 E0 10 3A */ slwi r0, r23, 2 +/* 803B5EC8 003B2E28 7C 7D 02 14 */ add r3, r29, r0 +/* 803B5ECC 003B2E2C 3B 03 00 14 */ addi r24, r3, 0x14 +/* 803B5ED0 003B2E30 80 63 00 14 */ lwz r3, 0x14(r3) +/* 803B5ED4 003B2E34 1C 17 00 3C */ mulli r0, r23, 0x3c +/* 803B5ED8 003B2E38 3A A3 00 02 */ addi r21, r3, 2 +/* 803B5EDC 003B2E3C 56 B4 10 3A */ slwi r20, r21, 2 +/* 803B5EE0 003B2E40 7E FE 02 14 */ add r23, r30, r0 +/* 803B5EE4 003B2E44 92 97 00 30 */ stw r20, 0x30(r23) +/* 803B5EE8 003B2E48 7E 83 A3 78 */ mr r3, r20 +/* 803B5EEC 003B2E4C 4B FF F2 49 */ bl salMalloc +/* 803B5EF0 003B2E50 90 77 00 34 */ stw r3, 0x34(r23) +/* 803B5EF4 003B2E54 7E 85 A3 78 */ mr r5, r20 +/* 803B5EF8 003B2E58 38 80 00 00 */ li r4, 0 +/* 803B5EFC 003B2E5C 80 77 00 34 */ lwz r3, 0x34(r23) +/* 803B5F00 003B2E60 4B C4 D4 A9 */ bl memset +/* 803B5F04 003B2E64 D3 D7 00 38 */ stfs f30, 0x38(r23) +/* 803B5F08 003B2E68 7E A0 0E 70 */ srawi r0, r21, 1 +/* 803B5F0C 003B2E6C 54 03 10 3A */ slwi r3, r0, 2 +/* 803B5F10 003B2E70 80 17 00 28 */ lwz r0, 0x28(r23) +/* 803B5F14 003B2E74 7C 03 00 50 */ subf r0, r3, r0 +/* 803B5F18 003B2E78 90 17 00 2C */ stw r0, 0x2c(r23) +/* 803B5F1C 003B2E7C 48 00 00 14 */ b lbl_803B5F30 +lbl_803B5F20: +/* 803B5F20 003B2E80 80 77 00 2C */ lwz r3, 0x2c(r23) +/* 803B5F24 003B2E84 80 17 00 30 */ lwz r0, 0x30(r23) +/* 803B5F28 003B2E88 7C 03 02 14 */ add r0, r3, r0 +/* 803B5F2C 003B2E8C 90 17 00 2C */ stw r0, 0x2c(r23) +lbl_803B5F30: +/* 803B5F30 003B2E90 80 17 00 2C */ lwz r0, 0x2c(r23) +/* 803B5F34 003B2E94 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5F38 003B2E98 41 80 FF E8 */ blt lbl_803B5F20 +/* 803B5F3C 003B2E9C 38 00 00 00 */ li r0, 0 +/* 803B5F40 003B2EA0 90 17 00 28 */ stw r0, 0x28(r23) +/* 803B5F44 003B2EA4 90 17 00 2C */ stw r0, 0x2c(r23) +/* 803B5F48 003B2EA8 80 78 00 00 */ lwz r3, 0(r24) +/* 803B5F4C 003B2EAC 80 17 00 28 */ lwz r0, 0x28(r23) +/* 803B5F50 003B2EB0 54 63 10 3A */ slwi r3, r3, 2 +/* 803B5F54 003B2EB4 7C 03 00 50 */ subf r0, r3, r0 +/* 803B5F58 003B2EB8 90 17 00 2C */ stw r0, 0x2c(r23) +/* 803B5F5C 003B2EBC 48 00 00 14 */ b lbl_803B5F70 +lbl_803B5F60: +/* 803B5F60 003B2EC0 80 77 00 2C */ lwz r3, 0x2c(r23) +/* 803B5F64 003B2EC4 80 17 00 30 */ lwz r0, 0x30(r23) +/* 803B5F68 003B2EC8 7C 03 02 14 */ add r0, r3, r0 +/* 803B5F6C 003B2ECC 90 17 00 2C */ stw r0, 0x2c(r23) +lbl_803B5F70: +/* 803B5F70 003B2ED0 80 17 00 2C */ lwz r0, 0x2c(r23) +/* 803B5F74 003B2ED4 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5F78 003B2ED8 41 80 FF E8 */ blt lbl_803B5F60 +/* 803B5F7C 003B2EDC 57 E3 15 BA */ rlwinm r3, r31, 2, 0x16, 0x1d +/* 803B5F80 003B2EE0 3B FF 00 01 */ addi r31, r31, 1 +/* 803B5F84 003B2EE4 38 03 01 90 */ addi r0, r3, 0x190 +/* 803B5F88 003B2EE8 7F DE 05 2E */ stfsx f30, r30, r0 +lbl_803B5F8C: +/* 803B5F8C 003B2EEC 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B5F90 003B2EF0 28 00 00 03 */ cmplwi r0, 3 +/* 803B5F94 003B2EF4 41 80 FD 48 */ blt lbl_803B5CDC +/* 803B5F98 003B2EF8 D3 1E 01 68 */ stfs f24, 0x168(r30) +/* 803B5F9C 003B2EFC C0 02 D6 F0 */ lfs f0, lbl_805AF410@sda21(r2) +/* 803B5FA0 003B2F00 D3 3E 01 9C */ stfs f25, 0x19c(r30) +/* 803B5FA4 003B2F04 D3 7E 01 A8 */ stfs f27, 0x1a8(r30) +/* 803B5FA8 003B2F08 D3 5E 01 A0 */ stfs f26, 0x1a0(r30) +/* 803B5FAC 003B2F0C C0 3E 01 A0 */ lfs f1, 0x1a0(r30) +/* 803B5FB0 003B2F10 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803B5FB4 003B2F14 40 80 00 08 */ bge lbl_803B5FBC +/* 803B5FB8 003B2F18 D0 1E 01 A0 */ stfs f0, 0x1a0(r30) +lbl_803B5FBC: +/* 803B5FBC 003B2F1C C0 42 D6 F4 */ lfs f2, lbl_805AF414@sda21(r2) +/* 803B5FC0 003B2F20 C0 3E 01 A0 */ lfs f1, 0x1a0(r30) +/* 803B5FC4 003B2F24 C0 02 D6 D0 */ lfs f0, lbl_805AF3F0@sda21(r2) +/* 803B5FC8 003B2F28 EC 22 00 72 */ fmuls f1, f2, f1 +/* 803B5FCC 003B2F2C C0 42 D6 F0 */ lfs f2, lbl_805AF410@sda21(r2) +/* 803B5FD0 003B2F30 C0 62 D6 D4 */ lfs f3, lbl_805AF3F4@sda21(r2) +/* 803B5FD4 003B2F34 FC 00 F8 00 */ fcmpu cr0, f0, f31 +/* 803B5FD8 003B2F38 EC 02 08 2A */ fadds f0, f2, f1 +/* 803B5FDC 003B2F3C EC 03 00 28 */ fsubs f0, f3, f0 +/* 803B5FE0 003B2F40 D0 1E 01 A0 */ stfs f0, 0x1a0(r30) +/* 803B5FE4 003B2F44 41 82 00 6C */ beq lbl_803B6050 +/* 803B5FE8 003B2F48 C0 02 D6 E4 */ lfs f0, lbl_805AF404@sda21(r2) +/* 803B5FEC 003B2F4C 3A A0 00 00 */ li r21, 0 +/* 803B5FF0 003B2F50 EC 00 07 F2 */ fmuls f0, f0, f31 +/* 803B5FF4 003B2F54 FC 00 00 1E */ fctiwz f0, f0 +/* 803B5FF8 003B2F58 D8 01 00 08 */ stfd f0, 8(r1) +/* 803B5FFC 003B2F5C 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B6000 003B2F60 90 1E 01 A4 */ stw r0, 0x1a4(r30) +/* 803B6004 003B2F64 48 00 00 3C */ b lbl_803B6040 +lbl_803B6008: +/* 803B6008 003B2F68 80 1E 01 A4 */ lwz r0, 0x1a4(r30) +/* 803B600C 003B2F6C 54 03 10 3A */ slwi r3, r0, 2 +/* 803B6010 003B2F70 4B FF F1 25 */ bl salMalloc +/* 803B6014 003B2F74 56 A0 15 BA */ rlwinm r0, r21, 2, 0x16, 0x1d +/* 803B6018 003B2F78 38 80 00 00 */ li r4, 0 +/* 803B601C 003B2F7C 7E 9E 02 14 */ add r20, r30, r0 +/* 803B6020 003B2F80 90 74 01 AC */ stw r3, 0x1ac(r20) +/* 803B6024 003B2F84 80 1E 01 A4 */ lwz r0, 0x1a4(r30) +/* 803B6028 003B2F88 80 74 01 AC */ lwz r3, 0x1ac(r20) +/* 803B602C 003B2F8C 54 05 10 3A */ slwi r5, r0, 2 +/* 803B6030 003B2F90 4B C4 D3 79 */ bl memset +/* 803B6034 003B2F94 80 14 01 AC */ lwz r0, 0x1ac(r20) +/* 803B6038 003B2F98 3A B5 00 01 */ addi r21, r21, 1 +/* 803B603C 003B2F9C 90 14 01 B8 */ stw r0, 0x1b8(r20) +lbl_803B6040: +/* 803B6040 003B2FA0 56 A0 06 3E */ clrlwi r0, r21, 0x18 +/* 803B6044 003B2FA4 28 00 00 03 */ cmplwi r0, 3 +/* 803B6048 003B2FA8 41 80 FF C0 */ blt lbl_803B6008 +/* 803B604C 003B2FAC 48 00 00 24 */ b lbl_803B6070 +lbl_803B6050: +/* 803B6050 003B2FB0 38 00 00 00 */ li r0, 0 +/* 803B6054 003B2FB4 90 1E 01 A4 */ stw r0, 0x1a4(r30) +/* 803B6058 003B2FB8 90 1E 01 B8 */ stw r0, 0x1b8(r30) +/* 803B605C 003B2FBC 90 1E 01 AC */ stw r0, 0x1ac(r30) +/* 803B6060 003B2FC0 90 1E 01 BC */ stw r0, 0x1bc(r30) +/* 803B6064 003B2FC4 90 1E 01 B0 */ stw r0, 0x1b0(r30) +/* 803B6068 003B2FC8 90 1E 01 C0 */ stw r0, 0x1c0(r30) +/* 803B606C 003B2FCC 90 1E 01 B4 */ stw r0, 0x1b4(r30) +lbl_803B6070: +/* 803B6070 003B2FD0 38 60 00 01 */ li r3, 1 +lbl_803B6074: +/* 803B6074 003B2FD4 E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0 +/* 803B6078 003B2FD8 CB E1 00 B0 */ lfd f31, 0xb0(r1) +/* 803B607C 003B2FDC E3 C1 00 A8 */ psq_l f30, 168(r1), 0, qr0 +/* 803B6080 003B2FE0 CB C1 00 A0 */ lfd f30, 0xa0(r1) +/* 803B6084 003B2FE4 E3 A1 00 98 */ psq_l f29, 152(r1), 0, qr0 +/* 803B6088 003B2FE8 CB A1 00 90 */ lfd f29, 0x90(r1) +/* 803B608C 003B2FEC E3 81 00 88 */ psq_l f28, 136(r1), 0, qr0 +/* 803B6090 003B2FF0 CB 81 00 80 */ lfd f28, 0x80(r1) +/* 803B6094 003B2FF4 E3 61 00 78 */ psq_l f27, 120(r1), 0, qr0 +/* 803B6098 003B2FF8 CB 61 00 70 */ lfd f27, 0x70(r1) +/* 803B609C 003B2FFC E3 41 00 68 */ psq_l f26, 104(r1), 0, qr0 +/* 803B60A0 003B3000 CB 41 00 60 */ lfd f26, 0x60(r1) +/* 803B60A4 003B3004 E3 21 00 58 */ psq_l f25, 88(r1), 0, qr0 +/* 803B60A8 003B3008 CB 21 00 50 */ lfd f25, 0x50(r1) +/* 803B60AC 003B300C E3 01 00 48 */ psq_l f24, 72(r1), 0, qr0 +/* 803B60B0 003B3010 39 61 00 40 */ addi r11, r1, 0x40 +/* 803B60B4 003B3014 CB 01 00 40 */ lfd f24, 0x40(r1) +/* 803B60B8 003B3018 4B FD 39 F5 */ bl _restgpr_20 +/* 803B60BC 003B301C 80 01 00 C4 */ lwz r0, 0xc4(r1) +/* 803B60C0 003B3020 7C 08 03 A6 */ mtlr r0 +/* 803B60C4 003B3024 38 21 00 C0 */ addi r1, r1, 0xc0 +/* 803B60C8 003B3028 4E 80 00 20 */ blr + +.global DoCrossTalk +DoCrossTalk: +/* 803B60CC 003B302C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B60D0 003B3030 D9 C1 00 28 */ stfd f14, 0x28(r1) +/* 803B60D4 003B3034 3C A0 80 5B */ lis r5, lbl_805AF420@ha +/* 803B60D8 003B3038 C8 05 F4 20 */ lfd f0, lbl_805AF420@l(r5) +/* 803B60DC 003B303C 3C A0 43 30 */ lis r5, 0x4330 +/* 803B60E0 003B3040 90 A1 00 08 */ stw r5, 8(r1) +/* 803B60E4 003B3044 90 A1 00 10 */ stw r5, 0x10(r1) +/* 803B60E8 003B3048 90 A1 00 18 */ stw r5, 0x18(r1) +/* 803B60EC 003B304C 90 A1 00 20 */ stw r5, 0x20(r1) +/* 803B60F0 003B3050 10 62 0C 20 */ ps_merge00 f3, f2, f1 +/* 803B60F4 003B3054 10 81 14 20 */ ps_merge00 f4, f1, f2 +/* 803B60F8 003B3058 3C A0 80 5B */ lis r5, lbl_805AF428@ha +/* 803B60FC 003B305C C0 A5 F4 28 */ lfs f5, lbl_805AF428@l(r5) +/* 803B6100 003B3060 38 A0 00 4F */ li r5, 0x4f +/* 803B6104 003B3064 7C A9 03 A6 */ mtctr r5 +/* 803B6108 003B3068 39 40 FF F8 */ li r10, -8 +/* 803B610C 003B306C 39 60 FF FC */ li r11, -4 +/* 803B6110 003B3070 10 84 01 58 */ ps_muls0 f4, f4, f5 +/* 803B6114 003B3074 80 C3 00 00 */ lwz r6, 0(r3) +/* 803B6118 003B3078 80 E4 00 00 */ lwz r7, 0(r4) +/* 803B611C 003B307C 6C C6 80 00 */ xoris r6, r6, 0x8000 +/* 803B6120 003B3080 81 03 00 04 */ lwz r8, 4(r3) +/* 803B6124 003B3084 6C E7 80 00 */ xoris r7, r7, 0x8000 +/* 803B6128 003B3088 81 24 00 04 */ lwz r9, 4(r4) +/* 803B612C 003B308C 6D 08 80 00 */ xoris r8, r8, 0x8000 +/* 803B6130 003B3090 90 C1 00 0C */ stw r6, 0xc(r1) +/* 803B6134 003B3094 6D 29 80 00 */ xoris r9, r9, 0x8000 +/* 803B6138 003B3098 90 E1 00 14 */ stw r7, 0x14(r1) +/* 803B613C 003B309C 91 01 00 1C */ stw r8, 0x1c(r1) +/* 803B6140 003B30A0 91 21 00 24 */ stw r9, 0x24(r1) +/* 803B6144 003B30A4 C8 A1 00 08 */ lfd f5, 8(r1) +/* 803B6148 003B30A8 C8 C1 00 10 */ lfd f6, 0x10(r1) +/* 803B614C 003B30AC EC A5 00 28 */ fsubs f5, f5, f0 +/* 803B6150 003B30B0 C8 E1 00 18 */ lfd f7, 0x18(r1) +/* 803B6154 003B30B4 EC C6 00 28 */ fsubs f6, f6, f0 +/* 803B6158 003B30B8 C9 01 00 20 */ lfd f8, 0x20(r1) +/* 803B615C 003B30BC EC E7 00 28 */ fsubs f7, f7, f0 +/* 803B6160 003B30C0 ED 08 00 28 */ fsubs f8, f8, f0 +lbl_803B6164: +/* 803B6164 003B30C4 11 25 34 20 */ ps_merge00 f9, f5, f6 +/* 803B6168 003B30C8 84 C3 00 08 */ lwzu r6, 8(r3) +/* 803B616C 003B30CC 11 47 44 20 */ ps_merge00 f10, f7, f8 +/* 803B6170 003B30D0 84 E4 00 08 */ lwzu r7, 8(r4) +/* 803B6174 003B30D4 6C C6 80 00 */ xoris r6, r6, 0x8000 +/* 803B6178 003B30D8 81 03 00 04 */ lwz r8, 4(r3) +/* 803B617C 003B30DC 11 69 00 F2 */ ps_mul f11, f9, f3 +/* 803B6180 003B30E0 6C E7 80 00 */ xoris r7, r7, 0x8000 +/* 803B6184 003B30E4 11 89 01 32 */ ps_mul f12, f9, f4 +/* 803B6188 003B30E8 81 24 00 04 */ lwz r9, 4(r4) +/* 803B618C 003B30EC 11 AA 00 F2 */ ps_mul f13, f10, f3 +/* 803B6190 003B30F0 6D 08 80 00 */ xoris r8, r8, 0x8000 +/* 803B6194 003B30F4 11 CA 01 32 */ ps_mul f14, f10, f4 +/* 803B6198 003B30F8 90 C1 00 0C */ stw r6, 0xc(r1) +/* 803B619C 003B30FC 11 6B 5A D4 */ ps_sum0 f11, f11, f11, f11 +/* 803B61A0 003B3100 6D 29 80 00 */ xoris r9, r9, 0x8000 +/* 803B61A4 003B3104 11 8C 63 14 */ ps_sum0 f12, f12, f12, f12 +/* 803B61A8 003B3108 90 E1 00 14 */ stw r7, 0x14(r1) +/* 803B61AC 003B310C 11 AD 6B 54 */ ps_sum0 f13, f13, f13, f13 +/* 803B61B0 003B3110 91 01 00 1C */ stw r8, 0x1c(r1) +/* 803B61B4 003B3114 11 CE 73 94 */ ps_sum0 f14, f14, f14, f14 +/* 803B61B8 003B3118 91 21 00 24 */ stw r9, 0x24(r1) +/* 803B61BC 003B311C FD 60 58 1C */ fctiw f11, f11 +/* 803B61C0 003B3120 C8 A1 00 08 */ lfd f5, 8(r1) +/* 803B61C4 003B3124 FD 80 60 1C */ fctiw f12, f12 +/* 803B61C8 003B3128 C8 C1 00 10 */ lfd f6, 0x10(r1) +/* 803B61CC 003B312C FD A0 68 1C */ fctiw f13, f13 +/* 803B61D0 003B3130 EC A5 00 28 */ fsubs f5, f5, f0 +/* 803B61D4 003B3134 FD C0 70 1C */ fctiw f14, f14 +/* 803B61D8 003B3138 C8 E1 00 18 */ lfd f7, 0x18(r1) +/* 803B61DC 003B313C 7D 6A 1F AE */ stfiwx f11, r10, r3 +/* 803B61E0 003B3140 EC C6 00 28 */ fsubs f6, f6, f0 +/* 803B61E4 003B3144 7D 8A 27 AE */ stfiwx f12, r10, r4 +/* 803B61E8 003B3148 C9 01 00 20 */ lfd f8, 0x20(r1) +/* 803B61EC 003B314C 7D AB 1F AE */ stfiwx f13, r11, r3 +/* 803B61F0 003B3150 EC E7 00 28 */ fsubs f7, f7, f0 +/* 803B61F4 003B3154 7D CB 27 AE */ stfiwx f14, r11, r4 +/* 803B61F8 003B3158 ED 08 00 28 */ fsubs f8, f8, f0 +/* 803B61FC 003B315C 42 00 FF 68 */ bdnz lbl_803B6164 +/* 803B6200 003B3160 11 25 34 20 */ ps_merge00 f9, f5, f6 +/* 803B6204 003B3164 38 63 00 08 */ addi r3, r3, 8 +/* 803B6208 003B3168 11 47 44 20 */ ps_merge00 f10, f7, f8 +/* 803B620C 003B316C 38 84 00 08 */ addi r4, r4, 8 +/* 803B6210 003B3170 11 69 00 F2 */ ps_mul f11, f9, f3 +/* 803B6214 003B3174 11 89 01 32 */ ps_mul f12, f9, f4 +/* 803B6218 003B3178 11 AA 00 F2 */ ps_mul f13, f10, f3 +/* 803B621C 003B317C 11 CA 01 32 */ ps_mul f14, f10, f4 +/* 803B6220 003B3180 11 6B 5A D4 */ ps_sum0 f11, f11, f11, f11 +/* 803B6224 003B3184 11 8C 63 14 */ ps_sum0 f12, f12, f12, f12 +/* 803B6228 003B3188 11 AD 6B 54 */ ps_sum0 f13, f13, f13, f13 +/* 803B622C 003B318C 11 CE 73 94 */ ps_sum0 f14, f14, f14, f14 +/* 803B6230 003B3190 FD 60 58 1C */ fctiw f11, f11 +/* 803B6234 003B3194 FD 80 60 1C */ fctiw f12, f12 +/* 803B6238 003B3198 FD A0 68 1C */ fctiw f13, f13 +/* 803B623C 003B319C FD C0 70 1C */ fctiw f14, f14 +/* 803B6240 003B31A0 7D 6A 1F AE */ stfiwx f11, r10, r3 +/* 803B6244 003B31A4 7D 8A 27 AE */ stfiwx f12, r10, r4 +/* 803B6248 003B31A8 7D AB 1F AE */ stfiwx f13, r11, r3 +/* 803B624C 003B31AC 7D CB 27 AE */ stfiwx f14, r11, r4 +/* 803B6250 003B31B0 C9 C1 00 28 */ lfd f14, 0x28(r1) +/* 803B6254 003B31B4 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B6258 003B31B8 4E 80 00 20 */ blr + +.global HandleReverb_0 +HandleReverb_0: +/* 803B625C 003B31BC 94 21 FF 40 */ stwu r1, -0xc0(r1) +/* 803B6260 003B31C0 BD C1 00 08 */ stmw r14, 8(r1) +/* 803B6264 003B31C4 D9 C1 00 60 */ stfd f14, 0x60(r1) +/* 803B6268 003B31C8 D9 E1 00 68 */ stfd f15, 0x68(r1) +/* 803B626C 003B31CC DA 01 00 70 */ stfd f16, 0x70(r1) +/* 803B6270 003B31D0 DA 21 00 78 */ stfd f17, 0x78(r1) +/* 803B6274 003B31D4 DA 41 00 80 */ stfd f18, 0x80(r1) +/* 803B6278 003B31D8 DA 61 00 88 */ stfd f19, 0x88(r1) +/* 803B627C 003B31DC DA 81 00 90 */ stfd f20, 0x90(r1) +/* 803B6280 003B31E0 DA A1 00 98 */ stfd f21, 0x98(r1) +/* 803B6284 003B31E4 DA C1 00 A0 */ stfd f22, 0xa0(r1) +/* 803B6288 003B31E8 DA E1 00 A8 */ stfd f23, 0xa8(r1) +/* 803B628C 003B31EC DB 01 00 B0 */ stfd f24, 0xb0(r1) +/* 803B6290 003B31F0 DB 21 00 B8 */ stfd f25, 0xb8(r1) +/* 803B6294 003B31F4 90 A1 00 50 */ stw r5, 0x50(r1) +/* 803B6298 003B31F8 90 81 00 54 */ stw r4, 0x54(r1) +/* 803B629C 003B31FC 3F E0 80 5B */ lis r31, lbl_805AF42C@ha +/* 803B62A0 003B3200 C0 DF F4 2C */ lfs f6, lbl_805AF42C@l(r31) +/* 803B62A4 003B3204 3F E0 80 5B */ lis r31, lbl_805AF428@ha +/* 803B62A8 003B3208 C1 3F F4 28 */ lfs f9, lbl_805AF428@l(r31) +/* 803B62AC 003B320C 3F E0 80 5B */ lis r31, lbl_805AF420@ha +/* 803B62B0 003B3210 C8 BF F4 20 */ lfd f5, lbl_805AF420@l(r31) +/* 803B62B4 003B3214 C0 44 01 68 */ lfs f2, 0x168(r4) +/* 803B62B8 003B3218 C1 E4 01 A0 */ lfs f15, 0x1a0(r4) +/* 803B62BC 003B321C C1 04 01 9C */ lfs f8, 0x19c(r4) +/* 803B62C0 003B3220 EC 68 02 72 */ fmuls f3, f8, f9 +/* 803B62C4 003B3224 EC 89 18 28 */ fsubs f4, f9, f3 +/* 803B62C8 003B3228 54 BE 08 3C */ slwi r30, r5, 1 +/* 803B62CC 003B322C 7F DE 2A 14 */ add r30, r30, r5 +/* 803B62D0 003B3230 1F FE 00 14 */ mulli r31, r30, 0x14 +/* 803B62D4 003B3234 3B A4 00 B4 */ addi r29, r4, 0xb4 +/* 803B62D8 003B3238 7F BD FA 14 */ add r29, r29, r31 +/* 803B62DC 003B323C 3B 64 00 00 */ addi r27, r4, 0 +/* 803B62E0 003B3240 7F 7B FA 14 */ add r27, r27, r31 +/* 803B62E4 003B3244 57 DF 10 3A */ slwi r31, r30, 2 +/* 803B62E8 003B3248 7F FF 22 14 */ add r31, r31, r4 +/* 803B62EC 003B324C C2 DF 01 6C */ lfs f22, 0x16c(r31) +/* 803B62F0 003B3250 C2 FF 01 70 */ lfs f23, 0x170(r31) +/* 803B62F4 003B3254 C3 1F 01 74 */ lfs f24, 0x174(r31) +/* 803B62F8 003B3258 54 BF 10 3A */ slwi r31, r5, 2 +/* 803B62FC 003B325C 7F FF 22 14 */ add r31, r31, r4 +/* 803B6300 003B3260 C3 3F 01 90 */ lfs f25, 0x190(r31) +/* 803B6304 003B3264 83 E4 01 A4 */ lwz r31, 0x1a4(r4) +/* 803B6308 003B3268 3F C0 43 30 */ lis r30, 0x4330 +/* 803B630C 003B326C 93 C1 00 58 */ stw r30, 0x58(r1) +/* 803B6310 003B3270 3A DF FF FF */ addi r22, r31, -1 +/* 803B6314 003B3274 56 D6 10 3A */ slwi r22, r22, 2 +/* 803B6318 003B3278 54 BC 10 3A */ slwi r28, r5, 2 +/* 803B631C 003B327C 7F 9C 22 14 */ add r28, r28, r4 +/* 803B6320 003B3280 2F 9F 00 00 */ cmpwi cr7, r31, 0 +/* 803B6324 003B3284 82 BD 00 00 */ lwz r21, 0(r29) +/* 803B6328 003B3288 82 9D 00 04 */ lwz r20, 4(r29) +/* 803B632C 003B328C 82 7D 00 14 */ lwz r19, 0x14(r29) +/* 803B6330 003B3290 82 5D 00 18 */ lwz r18, 0x18(r29) +/* 803B6334 003B3294 82 3D 00 28 */ lwz r17, 0x28(r29) +/* 803B6338 003B3298 82 1D 00 2C */ lwz r16, 0x2c(r29) +/* 803B633C 003B329C C2 1D 00 10 */ lfs f16, 0x10(r29) +/* 803B6340 003B32A0 C2 3D 00 24 */ lfs f17, 0x24(r29) +/* 803B6344 003B32A4 C2 5D 00 38 */ lfs f18, 0x38(r29) +/* 803B6348 003B32A8 83 3D 00 08 */ lwz r25, 8(r29) +/* 803B634C 003B32AC 83 1D 00 1C */ lwz r24, 0x1c(r29) +/* 803B6350 003B32B0 82 FD 00 30 */ lwz r23, 0x30(r29) +/* 803B6354 003B32B4 80 9D 00 0C */ lwz r4, 0xc(r29) +/* 803B6358 003B32B8 80 BD 00 20 */ lwz r5, 0x20(r29) +/* 803B635C 003B32BC 80 DD 00 34 */ lwz r6, 0x34(r29) +/* 803B6360 003B32C0 81 9B 00 00 */ lwz r12, 0(r27) +/* 803B6364 003B32C4 81 7B 00 04 */ lwz r11, 4(r27) +/* 803B6368 003B32C8 81 5B 00 14 */ lwz r10, 0x14(r27) +/* 803B636C 003B32CC 81 3B 00 18 */ lwz r9, 0x18(r27) +/* 803B6370 003B32D0 81 1B 00 28 */ lwz r8, 0x28(r27) +/* 803B6374 003B32D4 80 FB 00 2C */ lwz r7, 0x2c(r27) +/* 803B6378 003B32D8 C2 7B 00 10 */ lfs f19, 0x10(r27) +/* 803B637C 003B32DC C2 9B 00 24 */ lfs f20, 0x24(r27) +/* 803B6380 003B32E0 C2 BB 00 38 */ lfs f21, 0x38(r27) +/* 803B6384 003B32E4 81 FB 00 08 */ lwz r15, 8(r27) +/* 803B6388 003B32E8 81 DB 00 1C */ lwz r14, 0x1c(r27) +/* 803B638C 003B32EC 83 C3 00 00 */ lwz r30, 0(r3) +/* 803B6390 003B32F0 6F DE 80 00 */ xoris r30, r30, 0x8000 +/* 803B6394 003B32F4 93 C1 00 5C */ stw r30, 0x5c(r1) +/* 803B6398 003B32F8 C9 81 00 58 */ lfd f12, 0x58(r1) +/* 803B639C 003B32FC ED 8C 28 28 */ fsubs f12, f12, f5 +/* 803B63A0 003B3300 3B E0 00 9F */ li r31, 0x9f +/* 803B63A4 003B3304 7F E9 03 A6 */ mtctr r31 +lbl_803B63A8: +/* 803B63A8 003B3308 FD A0 60 90 */ fmr f13, f12 +/* 803B63AC 003B330C 41 9E 00 2C */ beq cr7, lbl_803B63D8 +/* 803B63B0 003B3310 83 DC 01 AC */ lwz r30, 0x1ac(r28) +/* 803B63B4 003B3314 83 BC 01 B8 */ lwz r29, 0x1b8(r28) +/* 803B63B8 003B3318 7F F6 F2 14 */ add r31, r22, r30 +/* 803B63BC 003B331C 3B BD 00 04 */ addi r29, r29, 4 +/* 803B63C0 003B3320 C1 BD FF FC */ lfs f13, -4(r29) +/* 803B63C4 003B3324 7C 1D F8 00 */ cmpw r29, r31 +/* 803B63C8 003B3328 D1 9D FF FC */ stfs f12, -4(r29) +/* 803B63CC 003B332C 40 A2 00 08 */ bne+ lbl_803B63D4 +/* 803B63D0 003B3330 7F DD F3 78 */ mr r29, r30 +lbl_803B63D4: +/* 803B63D4 003B3334 93 BE 01 B8 */ stw r29, 0x1b8(r30) +lbl_803B63D8: +/* 803B63D8 003B3338 ED 16 6C 3A */ fmadds f8, f22, f16, f13 +/* 803B63DC 003B333C 87 A3 00 04 */ lwzu r29, 4(r3) +/* 803B63E0 003B3340 ED 37 6C 7A */ fmadds f9, f23, f17, f13 +/* 803B63E4 003B3344 7D 04 AD 2E */ stfsx f8, r4, r21 +/* 803B63E8 003B3348 3A B5 00 04 */ addi r21, r21, 4 +/* 803B63EC 003B334C 7D 25 9D 2E */ stfsx f9, r5, r19 +/* 803B63F0 003B3350 7D C4 A4 2E */ lfsx f14, r4, r20 +/* 803B63F4 003B3354 3A 94 00 04 */ addi r20, r20, 4 +/* 803B63F8 003B3358 7E 25 94 2E */ lfsx f17, r5, r18 +/* 803B63FC 003B335C 7C 15 C8 00 */ cmpw r21, r25 +/* 803B6400 003B3360 7C 94 C8 00 */ cmpw cr1, r20, r25 +/* 803B6404 003B3364 3A 73 00 04 */ addi r19, r19, 4 +/* 803B6408 003B3368 3A 52 00 04 */ addi r18, r18, 4 +/* 803B640C 003B336C FE 00 70 90 */ fmr f16, f14 +/* 803B6410 003B3370 7E 93 C0 00 */ cmpw cr5, r19, r24 +/* 803B6414 003B3374 ED CE 88 2A */ fadds f14, f14, f17 +/* 803B6418 003B3378 7F 12 C0 00 */ cmpw cr6, r18, r24 +/* 803B641C 003B337C 40 A2 00 08 */ bne+ lbl_803B6424 +/* 803B6420 003B3380 3A A0 00 00 */ li r21, 0 +lbl_803B6424: +/* 803B6424 003B3384 ED 18 6C BA */ fmadds f8, f24, f18, f13 +/* 803B6428 003B3388 40 A6 00 08 */ bne+ cr1, lbl_803B6430 +/* 803B642C 003B338C 3A 80 00 00 */ li r20, 0 +lbl_803B6430: +/* 803B6430 003B3390 7D 06 8D 2E */ stfsx f8, r6, r17 +/* 803B6434 003B3394 3A 31 00 04 */ addi r17, r17, 4 +/* 803B6438 003B3398 40 B6 00 08 */ bne+ cr5, lbl_803B6440 +/* 803B643C 003B339C 3A 60 00 00 */ li r19, 0 +lbl_803B6440: +/* 803B6440 003B33A0 7E 46 84 2E */ lfsx f18, r6, r16 +/* 803B6444 003B33A4 3A 10 00 04 */ addi r16, r16, 4 +/* 803B6448 003B33A8 7C 11 B8 00 */ cmpw r17, r23 +/* 803B644C 003B33AC 40 BA 00 08 */ bne+ cr6, lbl_803B6454 +/* 803B6450 003B33B0 3A 40 00 00 */ li r18, 0 +lbl_803B6454: +/* 803B6454 003B33B4 ED CE 90 2A */ fadds f14, f14, f18 +/* 803B6458 003B33B8 7C 90 B8 00 */ cmpw cr1, r16, r23 +/* 803B645C 003B33BC 83 5B 00 0C */ lwz r26, 0xc(r27) +/* 803B6460 003B33C0 ED 22 74 FA */ fmadds f9, f2, f19, f14 +/* 803B6464 003B33C4 40 A2 00 08 */ bne+ lbl_803B646C +/* 803B6468 003B33C8 3A 20 00 00 */ li r17, 0 +lbl_803B646C: +/* 803B646C 003B33CC 40 A6 00 08 */ bne+ cr1, lbl_803B6474 +/* 803B6470 003B33D0 3A 00 00 00 */ li r16, 0 +lbl_803B6474: +/* 803B6474 003B33D4 6F BD 80 00 */ xoris r29, r29, 0x8000 +/* 803B6478 003B33D8 7D 3A 65 2E */ stfsx f9, r26, r12 +/* 803B647C 003B33DC ED C2 9A 7C */ fnmsubs f14, f2, f9, f19 +/* 803B6480 003B33E0 39 8C 00 04 */ addi r12, r12, 4 +/* 803B6484 003B33E4 7E 7A 5C 2E */ lfsx f19, r26, r11 +/* 803B6488 003B33E8 7E 8C 78 00 */ cmpw cr5, r12, r15 +/* 803B648C 003B33EC 39 6B 00 04 */ addi r11, r11, 4 +/* 803B6490 003B33F0 83 5B 00 20 */ lwz r26, 0x20(r27) +/* 803B6494 003B33F4 7F 0B 78 00 */ cmpw cr6, r11, r15 +/* 803B6498 003B33F8 ED 02 75 3A */ fmadds f8, f2, f20, f14 +/* 803B649C 003B33FC 40 B6 00 08 */ bne+ cr5, lbl_803B64A4 +/* 803B64A0 003B3400 39 80 00 00 */ li r12, 0 +lbl_803B64A4: +/* 803B64A4 003B3404 93 A1 00 5C */ stw r29, 0x5c(r1) +/* 803B64A8 003B3408 7D 1A 55 2E */ stfsx f8, r26, r10 +/* 803B64AC 003B340C ED C2 A2 3C */ fnmsubs f14, f2, f8, f20 +/* 803B64B0 003B3410 39 4A 00 04 */ addi r10, r10, 4 +/* 803B64B4 003B3414 40 BA 00 08 */ bne+ cr6, lbl_803B64BC +/* 803B64B8 003B3418 39 60 00 00 */ li r11, 0 +lbl_803B64BC: +/* 803B64BC 003B341C 7E 9A 4C 2E */ lfsx f20, r26, r9 +/* 803B64C0 003B3420 7C 0A 70 00 */ cmpw r10, r14 +/* 803B64C4 003B3424 ED CE 01 B2 */ fmuls f14, f14, f6 +/* 803B64C8 003B3428 39 29 00 04 */ addi r9, r9, 4 +/* 803B64CC 003B342C 7C 89 70 00 */ cmpw cr1, r9, r14 +/* 803B64D0 003B3430 C9 41 00 58 */ lfd f10, 0x58(r1) +/* 803B64D4 003B3434 ED CF 76 7A */ fmadds f14, f15, f25, f14 +/* 803B64D8 003B3438 40 A2 00 08 */ bne+ lbl_803B64E0 +/* 803B64DC 003B343C 39 40 00 00 */ li r10, 0 +lbl_803B64E0: +/* 803B64E0 003B3440 83 5B 00 34 */ lwz r26, 0x34(r27) +/* 803B64E4 003B3444 ED 22 75 7A */ fmadds f9, f2, f21, f14 +/* 803B64E8 003B3448 FF 20 70 90 */ fmr f25, f14 +/* 803B64EC 003B344C 40 A6 00 08 */ bne+ cr1, lbl_803B64F4 +/* 803B64F0 003B3450 39 20 00 00 */ li r9, 0 +lbl_803B64F4: +/* 803B64F4 003B3454 7D 3A 45 2E */ stfsx f9, r26, r8 +/* 803B64F8 003B3458 ED C2 AA 7C */ fnmsubs f14, f2, f9, f21 +/* 803B64FC 003B345C 83 FB 00 30 */ lwz r31, 0x30(r27) +/* 803B6500 003B3460 ED 04 03 32 */ fmuls f8, f4, f12 +/* 803B6504 003B3464 7E BA 3C 2E */ lfsx f21, r26, r7 +/* 803B6508 003B3468 39 08 00 04 */ addi r8, r8, 4 +/* 803B650C 003B346C 38 E7 00 04 */ addi r7, r7, 4 +/* 803B6510 003B3470 ED C3 43 BA */ fmadds f14, f3, f14, f8 +/* 803B6514 003B3474 7E 88 F8 00 */ cmpw cr5, r8, r31 +/* 803B6518 003B3478 7F 07 F8 00 */ cmpw cr6, r7, r31 +/* 803B651C 003B347C FD C0 70 1E */ fctiwz f14, f14 +/* 803B6520 003B3480 40 B6 00 08 */ bne+ cr5, lbl_803B6528 +/* 803B6524 003B3484 39 00 00 00 */ li r8, 0 +lbl_803B6528: +/* 803B6528 003B3488 40 BA 00 08 */ bne+ cr6, lbl_803B6530 +/* 803B652C 003B348C 38 E0 00 00 */ li r7, 0 +lbl_803B6530: +/* 803B6530 003B3490 3B E0 FF FC */ li r31, -4 +/* 803B6534 003B3494 ED 8A 28 28 */ fsubs f12, f10, f5 +/* 803B6538 003B3498 7D C3 FF AE */ stfiwx f14, r3, r31 +/* 803B653C 003B349C 42 00 FE 6C */ bdnz lbl_803B63A8 +/* 803B6540 003B34A0 FD A0 60 90 */ fmr f13, f12 +/* 803B6544 003B34A4 41 9E 00 2C */ beq cr7, lbl_803B6570 +/* 803B6548 003B34A8 83 DC 01 AC */ lwz r30, 0x1ac(r28) +/* 803B654C 003B34AC 83 BC 01 B8 */ lwz r29, 0x1b8(r28) +/* 803B6550 003B34B0 7F F6 F2 14 */ add r31, r22, r30 +/* 803B6554 003B34B4 3B BD 00 04 */ addi r29, r29, 4 +/* 803B6558 003B34B8 C1 BD FF FC */ lfs f13, -4(r29) +/* 803B655C 003B34BC 7C 1D F8 00 */ cmpw r29, r31 +/* 803B6560 003B34C0 D1 9D FF FC */ stfs f12, -4(r29) +/* 803B6564 003B34C4 40 A2 00 08 */ bne+ lbl_803B656C +/* 803B6568 003B34C8 7F DD F3 78 */ mr r29, r30 +lbl_803B656C: +/* 803B656C 003B34CC 93 BE 01 B8 */ stw r29, 0x1b8(r30) +lbl_803B6570: +/* 803B6570 003B34D0 ED 16 6C 3A */ fmadds f8, f22, f16, f13 +/* 803B6574 003B34D4 ED 37 6C 7A */ fmadds f9, f23, f17, f13 +/* 803B6578 003B34D8 7D 04 AD 2E */ stfsx f8, r4, r21 +/* 803B657C 003B34DC 3A B5 00 04 */ addi r21, r21, 4 +/* 803B6580 003B34E0 7D 25 9D 2E */ stfsx f9, r5, r19 +/* 803B6584 003B34E4 7D C4 A4 2E */ lfsx f14, r4, r20 +/* 803B6588 003B34E8 3A 94 00 04 */ addi r20, r20, 4 +/* 803B658C 003B34EC 7E 25 94 2E */ lfsx f17, r5, r18 +/* 803B6590 003B34F0 7C 15 C8 00 */ cmpw r21, r25 +/* 803B6594 003B34F4 7C 94 C8 00 */ cmpw cr1, r20, r25 +/* 803B6598 003B34F8 3A 73 00 04 */ addi r19, r19, 4 +/* 803B659C 003B34FC 3A 52 00 04 */ addi r18, r18, 4 +/* 803B65A0 003B3500 FE 00 70 90 */ fmr f16, f14 +/* 803B65A4 003B3504 7E 93 C0 00 */ cmpw cr5, r19, r24 +/* 803B65A8 003B3508 ED CE 88 2A */ fadds f14, f14, f17 +/* 803B65AC 003B350C 7F 12 C0 00 */ cmpw cr6, r18, r24 +/* 803B65B0 003B3510 40 A2 00 08 */ bne+ lbl_803B65B8 +/* 803B65B4 003B3514 3A A0 00 00 */ li r21, 0 +lbl_803B65B8: +/* 803B65B8 003B3518 ED 18 6C BA */ fmadds f8, f24, f18, f13 +/* 803B65BC 003B351C 40 A6 00 08 */ bne+ cr1, lbl_803B65C4 +/* 803B65C0 003B3520 3A 80 00 00 */ li r20, 0 +lbl_803B65C4: +/* 803B65C4 003B3524 7D 06 8D 2E */ stfsx f8, r6, r17 +/* 803B65C8 003B3528 3A 31 00 04 */ addi r17, r17, 4 +/* 803B65CC 003B352C 40 B6 00 08 */ bne+ cr5, lbl_803B65D4 +/* 803B65D0 003B3530 3A 60 00 00 */ li r19, 0 +lbl_803B65D4: +/* 803B65D4 003B3534 7E 46 84 2E */ lfsx f18, r6, r16 +/* 803B65D8 003B3538 3A 10 00 04 */ addi r16, r16, 4 +/* 803B65DC 003B353C 7C 11 B8 00 */ cmpw r17, r23 +/* 803B65E0 003B3540 40 BA 00 08 */ bne+ cr6, lbl_803B65E8 +/* 803B65E4 003B3544 3A 40 00 00 */ li r18, 0 +lbl_803B65E8: +/* 803B65E8 003B3548 ED CE 90 2A */ fadds f14, f14, f18 +/* 803B65EC 003B354C 7C 90 B8 00 */ cmpw cr1, r16, r23 +/* 803B65F0 003B3550 83 5B 00 0C */ lwz r26, 0xc(r27) +/* 803B65F4 003B3554 ED 22 74 FA */ fmadds f9, f2, f19, f14 +/* 803B65F8 003B3558 40 A2 00 08 */ bne+ lbl_803B6600 +/* 803B65FC 003B355C 3A 20 00 00 */ li r17, 0 +lbl_803B6600: +/* 803B6600 003B3560 40 A6 00 08 */ bne+ cr1, lbl_803B6608 +/* 803B6604 003B3564 3A 00 00 00 */ li r16, 0 +lbl_803B6608: +/* 803B6608 003B3568 7D 3A 65 2E */ stfsx f9, r26, r12 +/* 803B660C 003B356C ED C2 9A 7C */ fnmsubs f14, f2, f9, f19 +/* 803B6610 003B3570 39 8C 00 04 */ addi r12, r12, 4 +/* 803B6614 003B3574 7E 7A 5C 2E */ lfsx f19, r26, r11 +/* 803B6618 003B3578 7E 8C 78 00 */ cmpw cr5, r12, r15 +/* 803B661C 003B357C 39 6B 00 04 */ addi r11, r11, 4 +/* 803B6620 003B3580 83 5B 00 20 */ lwz r26, 0x20(r27) +/* 803B6624 003B3584 7F 0B 78 00 */ cmpw cr6, r11, r15 +/* 803B6628 003B3588 ED 02 75 3A */ fmadds f8, f2, f20, f14 +/* 803B662C 003B358C 40 B6 00 08 */ bne+ cr5, lbl_803B6634 +/* 803B6630 003B3590 39 80 00 00 */ li r12, 0 +lbl_803B6634: +/* 803B6634 003B3594 7D 1A 55 2E */ stfsx f8, r26, r10 +/* 803B6638 003B3598 ED C2 A2 3C */ fnmsubs f14, f2, f8, f20 +/* 803B663C 003B359C 39 4A 00 04 */ addi r10, r10, 4 +/* 803B6640 003B35A0 40 BA 00 08 */ bne+ cr6, lbl_803B6648 +/* 803B6644 003B35A4 39 60 00 00 */ li r11, 0 +lbl_803B6648: +/* 803B6648 003B35A8 7E 9A 4C 2E */ lfsx f20, r26, r9 +/* 803B664C 003B35AC 7C 0A 70 00 */ cmpw r10, r14 +/* 803B6650 003B35B0 ED CE 01 B2 */ fmuls f14, f14, f6 +/* 803B6654 003B35B4 39 29 00 04 */ addi r9, r9, 4 +/* 803B6658 003B35B8 7C 89 70 00 */ cmpw cr1, r9, r14 +/* 803B665C 003B35BC ED CF 76 7A */ fmadds f14, f15, f25, f14 +/* 803B6660 003B35C0 40 A2 00 08 */ bne+ lbl_803B6668 +/* 803B6664 003B35C4 39 40 00 00 */ li r10, 0 +lbl_803B6668: +/* 803B6668 003B35C8 83 5B 00 34 */ lwz r26, 0x34(r27) +/* 803B666C 003B35CC 80 A1 00 50 */ lwz r5, 0x50(r1) +/* 803B6670 003B35D0 80 81 00 54 */ lwz r4, 0x54(r1) +/* 803B6674 003B35D4 ED 22 75 7A */ fmadds f9, f2, f21, f14 +/* 803B6678 003B35D8 FF 20 70 90 */ fmr f25, f14 +/* 803B667C 003B35DC 40 A6 00 08 */ bne+ cr1, lbl_803B6684 +/* 803B6680 003B35E0 39 20 00 00 */ li r9, 0 +lbl_803B6684: +/* 803B6684 003B35E4 7D 3A 45 2E */ stfsx f9, r26, r8 +/* 803B6688 003B35E8 ED C2 AA 7C */ fnmsubs f14, f2, f9, f21 +/* 803B668C 003B35EC 83 BB 00 30 */ lwz r29, 0x30(r27) +/* 803B6690 003B35F0 ED 04 03 32 */ fmuls f8, f4, f12 +/* 803B6694 003B35F4 7E BA 3C 2E */ lfsx f21, r26, r7 +/* 803B6698 003B35F8 39 08 00 04 */ addi r8, r8, 4 +/* 803B669C 003B35FC 38 E7 00 04 */ addi r7, r7, 4 +/* 803B66A0 003B3600 ED C3 43 BA */ fmadds f14, f3, f14, f8 +/* 803B66A4 003B3604 7E 88 E8 00 */ cmpw cr5, r8, r29 +/* 803B66A8 003B3608 7F 07 E8 00 */ cmpw cr6, r7, r29 +/* 803B66AC 003B360C FD C0 70 1E */ fctiwz f14, f14 +/* 803B66B0 003B3610 40 B6 00 08 */ bne+ cr5, lbl_803B66B8 +/* 803B66B4 003B3614 39 00 00 00 */ li r8, 0 +lbl_803B66B8: +/* 803B66B8 003B3618 40 BA 00 08 */ bne+ cr6, lbl_803B66C0 +/* 803B66BC 003B361C 38 E0 00 00 */ li r7, 0 +lbl_803B66C0: +/* 803B66C0 003B3620 54 BE 08 3C */ slwi r30, r5, 1 +/* 803B66C4 003B3624 7F DE 2A 14 */ add r30, r30, r5 +/* 803B66C8 003B3628 1F FE 00 14 */ mulli r31, r30, 0x14 +/* 803B66CC 003B362C 7D C0 1F AE */ stfiwx f14, 0, r3 +/* 803B66D0 003B3630 3B A4 00 B4 */ addi r29, r4, 0xb4 +/* 803B66D4 003B3634 7F BD FA 14 */ add r29, r29, r31 +/* 803B66D8 003B3638 92 BD 00 00 */ stw r21, 0(r29) +/* 803B66DC 003B363C 92 9D 00 04 */ stw r20, 4(r29) +/* 803B66E0 003B3640 92 7D 00 14 */ stw r19, 0x14(r29) +/* 803B66E4 003B3644 92 5D 00 18 */ stw r18, 0x18(r29) +/* 803B66E8 003B3648 92 3D 00 28 */ stw r17, 0x28(r29) +/* 803B66EC 003B364C 92 1D 00 2C */ stw r16, 0x2c(r29) +/* 803B66F0 003B3650 D2 1D 00 10 */ stfs f16, 0x10(r29) +/* 803B66F4 003B3654 D2 3D 00 24 */ stfs f17, 0x24(r29) +/* 803B66F8 003B3658 D2 5D 00 38 */ stfs f18, 0x38(r29) +/* 803B66FC 003B365C 91 9B 00 00 */ stw r12, 0(r27) +/* 803B6700 003B3660 91 7B 00 04 */ stw r11, 4(r27) +/* 803B6704 003B3664 91 5B 00 14 */ stw r10, 0x14(r27) +/* 803B6708 003B3668 91 3B 00 18 */ stw r9, 0x18(r27) +/* 803B670C 003B366C 91 1B 00 28 */ stw r8, 0x28(r27) +/* 803B6710 003B3670 90 FB 00 2C */ stw r7, 0x2c(r27) +/* 803B6714 003B3674 D2 7B 00 10 */ stfs f19, 0x10(r27) +/* 803B6718 003B3678 D2 9B 00 24 */ stfs f20, 0x24(r27) +/* 803B671C 003B367C D2 BB 00 38 */ stfs f21, 0x38(r27) +/* 803B6720 003B3680 54 BF 10 3A */ slwi r31, r5, 2 +/* 803B6724 003B3684 7F FF 22 14 */ add r31, r31, r4 +/* 803B6728 003B3688 D3 3F 01 90 */ stfs f25, 0x190(r31) +/* 803B672C 003B368C C9 C1 00 60 */ lfd f14, 0x60(r1) +/* 803B6730 003B3690 C9 E1 00 68 */ lfd f15, 0x68(r1) +/* 803B6734 003B3694 CA 01 00 70 */ lfd f16, 0x70(r1) +/* 803B6738 003B3698 CA 21 00 78 */ lfd f17, 0x78(r1) +/* 803B673C 003B369C CA 41 00 80 */ lfd f18, 0x80(r1) +/* 803B6740 003B36A0 CA 61 00 88 */ lfd f19, 0x88(r1) +/* 803B6744 003B36A4 CA 81 00 90 */ lfd f20, 0x90(r1) +/* 803B6748 003B36A8 CA A1 00 98 */ lfd f21, 0x98(r1) +/* 803B674C 003B36AC CA C1 00 A0 */ lfd f22, 0xa0(r1) +/* 803B6750 003B36B0 CA E1 00 A8 */ lfd f23, 0xa8(r1) +/* 803B6754 003B36B4 CB 01 00 B0 */ lfd f24, 0xb0(r1) +/* 803B6758 003B36B8 CB 21 00 B8 */ lfd f25, 0xb8(r1) +/* 803B675C 003B36BC B9 C1 00 08 */ lmw r14, 8(r1) +/* 803B6760 003B36C0 38 21 00 C0 */ addi r1, r1, 0xc0 +/* 803B6764 003B36C4 4E 80 00 20 */ blr + +.global ReverbHICallback +ReverbHICallback: +/* 803B6768 003B36C8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B676C 003B36CC 7C 08 02 A6 */ mflr r0 +/* 803B6770 003B36D0 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B6774 003B36D4 39 61 00 20 */ addi r11, r1, 0x20 +/* 803B6778 003B36D8 4B FD 33 05 */ bl sub_80389a7c +/* 803B677C 003B36DC 7C 7B 1B 78 */ mr r27, r3 +/* 803B6780 003B36E0 7C 9C 23 78 */ mr r28, r4 +/* 803B6784 003B36E4 7C BD 2B 78 */ mr r29, r5 +/* 803B6788 003B36E8 7C DE 33 78 */ mr r30, r6 +/* 803B678C 003B36EC 3B E0 00 00 */ li r31, 0 +/* 803B6790 003B36F0 48 00 00 94 */ b lbl_803B6824 +lbl_803B6794: +/* 803B6794 003B36F4 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B6798 003B36F8 2C 00 00 01 */ cmpwi r0, 1 +/* 803B679C 003B36FC 41 82 00 60 */ beq lbl_803B67FC +/* 803B67A0 003B3700 40 80 00 10 */ bge lbl_803B67B0 +/* 803B67A4 003B3704 2C 00 00 00 */ cmpwi r0, 0 +/* 803B67A8 003B3708 40 80 00 14 */ bge lbl_803B67BC +/* 803B67AC 003B370C 48 00 00 74 */ b lbl_803B6820 +lbl_803B67B0: +/* 803B67B0 003B3710 2C 00 00 03 */ cmpwi r0, 3 +/* 803B67B4 003B3714 40 80 00 6C */ bge lbl_803B6820 +/* 803B67B8 003B3718 48 00 00 58 */ b lbl_803B6810 +lbl_803B67BC: +/* 803B67BC 003B371C C0 02 D6 D0 */ lfs f0, lbl_805AF3F0@sda21(r2) +/* 803B67C0 003B3720 C0 5E 01 A8 */ lfs f2, 0x1a8(r30) +/* 803B67C4 003B3724 FC 00 10 00 */ fcmpu cr0, f0, f2 +/* 803B67C8 003B3728 41 82 00 20 */ beq lbl_803B67E8 +/* 803B67CC 003B372C C0 22 D7 10 */ lfs f1, lbl_805AF430@sda21(r2) +/* 803B67D0 003B3730 7F 63 DB 78 */ mr r3, r27 +/* 803B67D4 003B3734 C0 02 D6 D4 */ lfs f0, lbl_805AF3F4@sda21(r2) +/* 803B67D8 003B3738 7F 84 E3 78 */ mr r4, r28 +/* 803B67DC 003B373C EC 21 00 B2 */ fmuls f1, f1, f2 +/* 803B67E0 003B3740 EC 40 08 28 */ fsubs f2, f0, f1 +/* 803B67E4 003B3744 4B FF F8 E9 */ bl DoCrossTalk +lbl_803B67E8: +/* 803B67E8 003B3748 7F 63 DB 78 */ mr r3, r27 +/* 803B67EC 003B374C 7F C4 F3 78 */ mr r4, r30 +/* 803B67F0 003B3750 38 A0 00 00 */ li r5, 0 +/* 803B67F4 003B3754 4B FF FA 69 */ bl HandleReverb_0 +/* 803B67F8 003B3758 48 00 00 28 */ b lbl_803B6820 +lbl_803B67FC: +/* 803B67FC 003B375C 7F 83 E3 78 */ mr r3, r28 +/* 803B6800 003B3760 7F C4 F3 78 */ mr r4, r30 +/* 803B6804 003B3764 38 A0 00 01 */ li r5, 1 +/* 803B6808 003B3768 4B FF FA 55 */ bl HandleReverb_0 +/* 803B680C 003B376C 48 00 00 14 */ b lbl_803B6820 +lbl_803B6810: +/* 803B6810 003B3770 7F A3 EB 78 */ mr r3, r29 +/* 803B6814 003B3774 7F C4 F3 78 */ mr r4, r30 +/* 803B6818 003B3778 38 A0 00 02 */ li r5, 2 +/* 803B681C 003B377C 4B FF FA 41 */ bl HandleReverb_0 +lbl_803B6820: +/* 803B6820 003B3780 3B FF 00 01 */ addi r31, r31, 1 +lbl_803B6824: +/* 803B6824 003B3784 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B6828 003B3788 28 00 00 03 */ cmplwi r0, 3 +/* 803B682C 003B378C 41 80 FF 68 */ blt lbl_803B6794 +/* 803B6830 003B3790 39 61 00 20 */ addi r11, r1, 0x20 +/* 803B6834 003B3794 4B FD 32 95 */ bl _restgpr_27 +/* 803B6838 003B3798 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B683C 003B379C 7C 08 03 A6 */ mtlr r0 +/* 803B6840 003B37A0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B6844 003B37A4 4E 80 00 20 */ blr + +.global ReverbHIFree +ReverbHIFree: +/* 803B6848 003B37A8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B684C 003B37AC 7C 08 02 A6 */ mflr r0 +/* 803B6850 003B37B0 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B6854 003B37B4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B6858 003B37B8 3B E0 00 00 */ li r31, 0 +/* 803B685C 003B37BC 93 C1 00 08 */ stw r30, 8(r1) +/* 803B6860 003B37C0 7C 7E 1B 78 */ mr r30, r3 +/* 803B6864 003B37C4 48 00 00 1C */ b lbl_803B6880 +lbl_803B6868: +/* 803B6868 003B37C8 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B686C 003B37CC 1C 60 00 14 */ mulli r3, r0, 0x14 +/* 803B6870 003B37D0 38 03 00 0C */ addi r0, r3, 0xc +/* 803B6874 003B37D4 7C 7E 00 2E */ lwzx r3, r30, r0 +/* 803B6878 003B37D8 4B FF E8 E5 */ bl salFree +/* 803B687C 003B37DC 3B FF 00 01 */ addi r31, r31, 1 +lbl_803B6880: +/* 803B6880 003B37E0 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B6884 003B37E4 28 00 00 09 */ cmplwi r0, 9 +/* 803B6888 003B37E8 41 80 FF E0 */ blt lbl_803B6868 +/* 803B688C 003B37EC 3B E0 00 00 */ li r31, 0 +/* 803B6890 003B37F0 48 00 00 1C */ b lbl_803B68AC +lbl_803B6894: +/* 803B6894 003B37F4 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B6898 003B37F8 1C 60 00 14 */ mulli r3, r0, 0x14 +/* 803B689C 003B37FC 38 03 00 C0 */ addi r0, r3, 0xc0 +/* 803B68A0 003B3800 7C 7E 00 2E */ lwzx r3, r30, r0 +/* 803B68A4 003B3804 4B FF E8 B9 */ bl salFree +/* 803B68A8 003B3808 3B FF 00 01 */ addi r31, r31, 1 +lbl_803B68AC: +/* 803B68AC 003B380C 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B68B0 003B3810 28 00 00 09 */ cmplwi r0, 9 +/* 803B68B4 003B3814 41 80 FF E0 */ blt lbl_803B6894 +/* 803B68B8 003B3818 80 1E 01 A4 */ lwz r0, 0x1a4(r30) +/* 803B68BC 003B381C 2C 00 00 00 */ cmpwi r0, 0 +/* 803B68C0 003B3820 41 82 00 2C */ beq lbl_803B68EC +/* 803B68C4 003B3824 3B E0 00 00 */ li r31, 0 +/* 803B68C8 003B3828 48 00 00 18 */ b lbl_803B68E0 +lbl_803B68CC: +/* 803B68CC 003B382C 57 E3 15 BA */ rlwinm r3, r31, 2, 0x16, 0x1d +/* 803B68D0 003B3830 38 03 01 AC */ addi r0, r3, 0x1ac +/* 803B68D4 003B3834 7C 7E 00 2E */ lwzx r3, r30, r0 +/* 803B68D8 003B3838 4B FF E8 85 */ bl salFree +/* 803B68DC 003B383C 3B FF 00 01 */ addi r31, r31, 1 +lbl_803B68E0: +/* 803B68E0 003B3840 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803B68E4 003B3844 28 00 00 03 */ cmplwi r0, 3 +/* 803B68E8 003B3848 41 80 FF E4 */ blt lbl_803B68CC +lbl_803B68EC: +/* 803B68EC 003B384C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B68F0 003B3850 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B68F4 003B3854 83 C1 00 08 */ lwz r30, 8(r1) +/* 803B68F8 003B3858 7C 08 03 A6 */ mtlr r0 +/* 803B68FC 003B385C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B6900 003B3860 4E 80 00 20 */ blr diff --git a/asm/musyx/reverb_fx.s b/asm/musyx/reverb_fx.s new file mode 100644 index 00000000..f5c8059a --- /dev/null +++ b/asm/musyx/reverb_fx.s @@ -0,0 +1,62 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sndAuxCallbackReverbSTD +sndAuxCallbackReverbSTD: +/* 803B5B00 003B2A60 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5B04 003B2A64 7C 08 02 A6 */ mflr r0 +/* 803B5B08 003B2A68 7C 87 23 78 */ mr r7, r4 +/* 803B5B0C 003B2A6C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5B10 003B2A70 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B5B14 003B2A74 2C 00 00 01 */ cmpwi r0, 1 +/* 803B5B18 003B2A78 41 82 00 34 */ beq lbl_803B5B4C +/* 803B5B1C 003B2A7C 40 80 00 30 */ bge lbl_803B5B4C +/* 803B5B20 003B2A80 2C 00 00 00 */ cmpwi r0, 0 +/* 803B5B24 003B2A84 40 80 00 08 */ bge lbl_803B5B2C +/* 803B5B28 003B2A88 48 00 00 24 */ b lbl_803B5B4C +lbl_803B5B2C: +/* 803B5B2C 003B2A8C 88 05 01 C4 */ lbz r0, 0x1c4(r5) +/* 803B5B30 003B2A90 28 00 00 00 */ cmplwi r0, 0 +/* 803B5B34 003B2A94 40 82 00 18 */ bne lbl_803B5B4C +/* 803B5B38 003B2A98 80 67 00 00 */ lwz r3, 0(r7) +/* 803B5B3C 003B2A9C 7C A6 2B 78 */ mr r6, r5 +/* 803B5B40 003B2AA0 80 87 00 04 */ lwz r4, 4(r7) +/* 803B5B44 003B2AA4 80 A7 00 08 */ lwz r5, 8(r7) +/* 803B5B48 003B2AA8 48 00 0C 21 */ bl ReverbHICallback +lbl_803B5B4C: +/* 803B5B4C 003B2AAC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5B50 003B2AB0 7C 08 03 A6 */ mtlr r0 +/* 803B5B54 003B2AB4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5B58 003B2AB8 4E 80 00 20 */ blr + +.global sndAuxCallbackPrepareReverbHI +sndAuxCallbackPrepareReverbHI: +/* 803B5B5C 003B2ABC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5B60 003B2AC0 7C 08 02 A6 */ mflr r0 +/* 803B5B64 003B2AC4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5B68 003B2AC8 38 00 00 00 */ li r0, 0 +/* 803B5B6C 003B2ACC 98 03 01 C4 */ stb r0, 0x1c4(r3) +/* 803B5B70 003B2AD0 C0 23 01 C8 */ lfs f1, 0x1c8(r3) +/* 803B5B74 003B2AD4 C0 43 01 D0 */ lfs f2, 0x1d0(r3) +/* 803B5B78 003B2AD8 C0 63 01 CC */ lfs f3, 0x1cc(r3) +/* 803B5B7C 003B2ADC C0 83 01 D4 */ lfs f4, 0x1d4(r3) +/* 803B5B80 003B2AE0 C0 A3 01 D8 */ lfs f5, 0x1d8(r3) +/* 803B5B84 003B2AE4 C0 C3 01 DC */ lfs f6, 0x1dc(r3) +/* 803B5B88 003B2AE8 48 00 00 39 */ bl ReverbHICreate +/* 803B5B8C 003B2AEC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5B90 003B2AF0 7C 08 03 A6 */ mtlr r0 +/* 803B5B94 003B2AF4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5B98 003B2AF8 4E 80 00 20 */ blr + +.global sndAuxCallbackShutdownReverbHI +sndAuxCallbackShutdownReverbHI: +/* 803B5B9C 003B2AFC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B5BA0 003B2B00 7C 08 02 A6 */ mflr r0 +/* 803B5BA4 003B2B04 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B5BA8 003B2B08 48 00 0C A1 */ bl ReverbHIFree +/* 803B5BAC 003B2B0C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B5BB0 003B2B10 38 60 00 01 */ li r3, 1 +/* 803B5BB4 003B2B14 7C 08 03 A6 */ mtlr r0 +/* 803B5BB8 003B2B18 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B5BBC 003B2B1C 4E 80 00 20 */ blr diff --git a/asm/musyx/s_data.s b/asm/musyx/s_data.s new file mode 100644 index 00000000..a21b0159 --- /dev/null +++ b/asm/musyx/s_data.s @@ -0,0 +1,1158 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sub_803a9d7c +sub_803a9d7c: +/* 803A9D7C 003A6CDC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A9D80 003A6CE0 7C 08 02 A6 */ mflr r0 +/* 803A9D84 003A6CE4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A9D88 003A6CE8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A9D8C 003A6CEC 7C 7F 1B 78 */ mr r31, r3 +/* 803A9D90 003A6CF0 93 C1 00 08 */ stw r30, 8(r1) +/* 803A9D94 003A6CF4 81 03 00 04 */ lwz r8, 4(r3) +/* 803A9D98 003A6CF8 7C 08 20 40 */ cmplw r8, r4 +/* 803A9D9C 003A6CFC 41 82 01 C0 */ beq lbl_803A9F5C +/* 803A9DA0 003A6D00 40 80 00 98 */ bge lbl_803A9E38 +/* 803A9DA4 003A6D04 88 1F 00 02 */ lbz r0, 2(r31) +/* 803A9DA8 003A6D08 2C 00 00 05 */ cmpwi r0, 5 +/* 803A9DAC 003A6D0C 41 82 00 08 */ beq lbl_803A9DB4 +/* 803A9DB0 003A6D10 48 00 01 AC */ b lbl_803A9F5C +lbl_803A9DB4: +/* 803A9DB4 003A6D14 3C A0 24 92 */ lis r5, 0x24924925@ha +/* 803A9DB8 003A6D18 38 00 00 00 */ li r0, 0 +/* 803A9DBC 003A6D1C 38 A5 49 25 */ addi r5, r5, 0x24924925@l +/* 803A9DC0 003A6D20 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9DC4 003A6D24 7C E5 40 16 */ mulhwu r7, r5, r8 +/* 803A9DC8 003A6D28 38 A3 E3 10 */ addi r5, r3, lbl_8055E310@l +/* 803A9DCC 003A6D2C 38 60 00 01 */ li r3, 1 +/* 803A9DD0 003A6D30 7C C7 40 50 */ subf r6, r7, r8 +/* 803A9DD4 003A6D34 54 C6 F8 7E */ srwi r6, r6, 1 +/* 803A9DD8 003A6D38 7C C6 3A 14 */ add r6, r6, r7 +/* 803A9DDC 003A6D3C 54 C6 00 38 */ rlwinm r6, r6, 0, 0, 0x1c +/* 803A9DE0 003A6D40 90 DF 00 14 */ stw r6, 0x14(r31) +/* 803A9DE4 003A6D44 80 DF 00 04 */ lwz r6, 4(r31) +/* 803A9DE8 003A6D48 7C C6 20 50 */ subf r6, r6, r4 +/* 803A9DEC 003A6D4C 38 9F 00 10 */ addi r4, r31, 0x10 +/* 803A9DF0 003A6D50 90 DF 00 18 */ stw r6, 0x18(r31) +/* 803A9DF4 003A6D54 90 1F 00 1C */ stw r0, 0x1c(r31) +/* 803A9DF8 003A6D58 90 1F 00 20 */ stw r0, 0x20(r31) +/* 803A9DFC 003A6D5C 81 85 09 4C */ lwz r12, 0x94c(r5) +/* 803A9E00 003A6D60 7D 89 03 A6 */ mtctr r12 +/* 803A9E04 003A6D64 4E 80 04 21 */ bctrl +/* 803A9E08 003A6D68 28 03 00 00 */ cmplwi r3, 0 +/* 803A9E0C 003A6D6C 41 82 01 50 */ beq lbl_803A9F5C +/* 803A9E10 003A6D70 3C 80 80 56 */ lis r4, lbl_8055E310@ha +/* 803A9E14 003A6D74 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A9E18 003A6D78 38 84 E3 10 */ addi r4, r4, lbl_8055E310@l +/* 803A9E1C 003A6D7C 80 84 00 04 */ lwz r4, 4(r4) +/* 803A9E20 003A6D80 7C 60 1A 14 */ add r3, r0, r3 +/* 803A9E24 003A6D84 7C 03 23 96 */ divwu r0, r3, r4 +/* 803A9E28 003A6D88 7C 00 21 D6 */ mullw r0, r0, r4 +/* 803A9E2C 003A6D8C 7C 00 18 50 */ subf r0, r0, r3 +/* 803A9E30 003A6D90 90 1F 00 04 */ stw r0, 4(r31) +/* 803A9E34 003A6D94 48 00 01 28 */ b lbl_803A9F5C +lbl_803A9E38: +/* 803A9E38 003A6D98 28 04 00 00 */ cmplwi r4, 0 +/* 803A9E3C 003A6D9C 40 82 00 94 */ bne lbl_803A9ED0 +/* 803A9E40 003A6DA0 88 1F 00 02 */ lbz r0, 2(r31) +/* 803A9E44 003A6DA4 2C 00 00 05 */ cmpwi r0, 5 +/* 803A9E48 003A6DA8 41 82 00 08 */ beq lbl_803A9E50 +/* 803A9E4C 003A6DAC 48 00 01 10 */ b lbl_803A9F5C +lbl_803A9E50: +/* 803A9E50 003A6DB0 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 803A9E54 003A6DB4 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9E58 003A6DB8 38 84 49 25 */ addi r4, r4, 0x24924925@l +/* 803A9E5C 003A6DBC 38 00 00 00 */ li r0, 0 +/* 803A9E60 003A6DC0 7C C4 40 16 */ mulhwu r6, r4, r8 +/* 803A9E64 003A6DC4 3B C3 E3 10 */ addi r30, r3, lbl_8055E310@l +/* 803A9E68 003A6DC8 38 9F 00 10 */ addi r4, r31, 0x10 +/* 803A9E6C 003A6DCC 38 60 00 01 */ li r3, 1 +/* 803A9E70 003A6DD0 7C A6 40 50 */ subf r5, r6, r8 +/* 803A9E74 003A6DD4 54 A5 F8 7E */ srwi r5, r5, 1 +/* 803A9E78 003A6DD8 7C A5 32 14 */ add r5, r5, r6 +/* 803A9E7C 003A6DDC 54 A5 00 38 */ rlwinm r5, r5, 0, 0, 0x1c +/* 803A9E80 003A6DE0 90 BF 00 14 */ stw r5, 0x14(r31) +/* 803A9E84 003A6DE4 80 DF 00 04 */ lwz r6, 4(r31) +/* 803A9E88 003A6DE8 80 BE 00 04 */ lwz r5, 4(r30) +/* 803A9E8C 003A6DEC 7C A6 28 50 */ subf r5, r6, r5 +/* 803A9E90 003A6DF0 90 BF 00 18 */ stw r5, 0x18(r31) +/* 803A9E94 003A6DF4 90 1F 00 1C */ stw r0, 0x1c(r31) +/* 803A9E98 003A6DF8 90 1F 00 20 */ stw r0, 0x20(r31) +/* 803A9E9C 003A6DFC 81 9E 09 4C */ lwz r12, 0x94c(r30) +/* 803A9EA0 003A6E00 7D 89 03 A6 */ mtctr r12 +/* 803A9EA4 003A6E04 4E 80 04 21 */ bctrl +/* 803A9EA8 003A6E08 28 03 00 00 */ cmplwi r3, 0 +/* 803A9EAC 003A6E0C 41 82 00 B0 */ beq lbl_803A9F5C +/* 803A9EB0 003A6E10 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A9EB4 003A6E14 80 9E 00 04 */ lwz r4, 4(r30) +/* 803A9EB8 003A6E18 7C 60 1A 14 */ add r3, r0, r3 +/* 803A9EBC 003A6E1C 7C 03 23 96 */ divwu r0, r3, r4 +/* 803A9EC0 003A6E20 7C 00 21 D6 */ mullw r0, r0, r4 +/* 803A9EC4 003A6E24 7C 00 18 50 */ subf r0, r0, r3 +/* 803A9EC8 003A6E28 90 1F 00 04 */ stw r0, 4(r31) +/* 803A9ECC 003A6E2C 48 00 00 90 */ b lbl_803A9F5C +lbl_803A9ED0: +/* 803A9ED0 003A6E30 88 1F 00 02 */ lbz r0, 2(r31) +/* 803A9ED4 003A6E34 2C 00 00 05 */ cmpwi r0, 5 +/* 803A9ED8 003A6E38 41 82 00 08 */ beq lbl_803A9EE0 +/* 803A9EDC 003A6E3C 48 00 00 80 */ b lbl_803A9F5C +lbl_803A9EE0: +/* 803A9EE0 003A6E40 3C A0 24 92 */ lis r5, 0x24924925@ha +/* 803A9EE4 003A6E44 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9EE8 003A6E48 38 A5 49 25 */ addi r5, r5, 0x24924925@l +/* 803A9EEC 003A6E4C 38 00 00 00 */ li r0, 0 +/* 803A9EF0 003A6E50 7C C5 40 16 */ mulhwu r6, r5, r8 +/* 803A9EF4 003A6E54 3B C3 E3 10 */ addi r30, r3, lbl_8055E310@l +/* 803A9EF8 003A6E58 38 60 00 01 */ li r3, 1 +/* 803A9EFC 003A6E5C 7C A6 40 50 */ subf r5, r6, r8 +/* 803A9F00 003A6E60 54 A5 F8 7E */ srwi r5, r5, 1 +/* 803A9F04 003A6E64 7C A5 32 14 */ add r5, r5, r6 +/* 803A9F08 003A6E68 54 A5 00 38 */ rlwinm r5, r5, 0, 0, 0x1c +/* 803A9F0C 003A6E6C 90 BF 00 14 */ stw r5, 0x14(r31) +/* 803A9F10 003A6E70 80 DF 00 04 */ lwz r6, 4(r31) +/* 803A9F14 003A6E74 80 BE 00 04 */ lwz r5, 4(r30) +/* 803A9F18 003A6E78 7C A6 28 50 */ subf r5, r6, r5 +/* 803A9F1C 003A6E7C 90 BF 00 18 */ stw r5, 0x18(r31) +/* 803A9F20 003A6E80 90 1F 00 1C */ stw r0, 0x1c(r31) +/* 803A9F24 003A6E84 90 9F 00 20 */ stw r4, 0x20(r31) +/* 803A9F28 003A6E88 38 9F 00 10 */ addi r4, r31, 0x10 +/* 803A9F2C 003A6E8C 81 9E 09 4C */ lwz r12, 0x94c(r30) +/* 803A9F30 003A6E90 7D 89 03 A6 */ mtctr r12 +/* 803A9F34 003A6E94 4E 80 04 21 */ bctrl +/* 803A9F38 003A6E98 28 03 00 00 */ cmplwi r3, 0 +/* 803A9F3C 003A6E9C 41 82 00 20 */ beq lbl_803A9F5C +/* 803A9F40 003A6EA0 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A9F44 003A6EA4 80 9E 00 04 */ lwz r4, 4(r30) +/* 803A9F48 003A6EA8 7C 60 1A 14 */ add r3, r0, r3 +/* 803A9F4C 003A6EAC 7C 03 23 96 */ divwu r0, r3, r4 +/* 803A9F50 003A6EB0 7C 00 21 D6 */ mullw r0, r0, r4 +/* 803A9F54 003A6EB4 7C 00 18 50 */ subf r0, r0, r3 +/* 803A9F58 003A6EB8 90 1F 00 04 */ stw r0, 4(r31) +lbl_803A9F5C: +/* 803A9F5C 003A6EBC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A9F60 003A6EC0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A9F64 003A6EC4 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A9F68 003A6EC8 7C 08 03 A6 */ mtlr r0 +/* 803A9F6C 003A6ECC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A9F70 003A6ED0 4E 80 00 20 */ blr + +.global vsSampleUpdates +vsSampleUpdates: +/* 803A9F74 003A6ED4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A9F78 003A6ED8 7C 08 02 A6 */ mflr r0 +/* 803A9F7C 003A6EDC 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A9F80 003A6EE0 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A9F84 003A6EE4 4B FD FA F5 */ bl func_80389A78 +/* 803A9F88 003A6EE8 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9F8C 003A6EEC 3B E3 E3 10 */ addi r31, r3, lbl_8055E310@l +/* 803A9F90 003A6EF0 80 1F 09 4C */ lwz r0, 0x94c(r31) +/* 803A9F94 003A6EF4 28 00 00 00 */ cmplwi r0, 0 +/* 803A9F98 003A6EF8 41 82 01 D4 */ beq lbl_803AA16C +/* 803A9F9C 003A6EFC 3B A0 00 00 */ li r29, 0 +/* 803A9FA0 003A6F00 7F FE FB 78 */ mr r30, r31 +lbl_803A9FA4: +/* 803A9FA4 003A6F04 88 1E 09 08 */ lbz r0, 0x908(r30) +/* 803A9FA8 003A6F08 28 00 00 FF */ cmplwi r0, 0xff +/* 803A9FAC 003A6F0C 41 82 01 B0 */ beq lbl_803AA15C +/* 803A9FB0 003A6F10 7F A3 EB 78 */ mr r3, r29 +/* 803A9FB4 003A6F14 48 00 95 F5 */ bl hwGetVirtualSampleState +/* 803A9FB8 003A6F18 28 03 00 00 */ cmplwi r3, 0 +/* 803A9FBC 003A6F1C 41 82 01 A0 */ beq lbl_803AA15C +/* 803A9FC0 003A6F20 88 9E 09 08 */ lbz r4, 0x908(r30) +/* 803A9FC4 003A6F24 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9FC8 003A6F28 38 03 E3 10 */ addi r0, r3, lbl_8055E310@l +/* 803A9FCC 003A6F2C 7F A3 EB 78 */ mr r3, r29 +/* 803A9FD0 003A6F30 1C 84 00 24 */ mulli r4, r4, 0x24 +/* 803A9FD4 003A6F34 7C 80 22 14 */ add r4, r0, r4 +/* 803A9FD8 003A6F38 3B 64 00 08 */ addi r27, r4, 8 +/* 803A9FDC 003A6F3C 48 00 9B 95 */ bl sub_803b3b70 +/* 803A9FE0 003A6F40 88 1B 00 02 */ lbz r0, 2(r27) +/* 803A9FE4 003A6F44 7C 7C 1B 78 */ mr r28, r3 +/* 803A9FE8 003A6F48 28 00 00 05 */ cmplwi r0, 5 +/* 803A9FEC 003A6F4C 40 82 00 28 */ bne lbl_803AA014 +/* 803A9FF0 003A6F50 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 803A9FF4 003A6F54 38 03 49 25 */ addi r0, r3, 0x24924925@l +/* 803A9FF8 003A6F58 7C 60 E0 16 */ mulhwu r3, r0, r28 +/* 803A9FFC 003A6F5C 7C 03 E0 50 */ subf r0, r3, r28 +/* 803AA000 003A6F60 54 00 F8 7E */ srwi r0, r0, 1 +/* 803AA004 003A6F64 7C 00 1A 14 */ add r0, r0, r3 +/* 803AA008 003A6F68 54 00 E8 FE */ srwi r0, r0, 3 +/* 803AA00C 003A6F6C 1F 40 00 0E */ mulli r26, r0, 0xe +/* 803AA010 003A6F70 48 00 00 08 */ b lbl_803AA018 +lbl_803AA014: +/* 803AA014 003A6F74 7F 9A E3 78 */ mr r26, r28 +lbl_803AA018: +/* 803AA018 003A6F78 88 1B 00 00 */ lbz r0, 0(r27) +/* 803AA01C 003A6F7C 2C 00 00 01 */ cmpwi r0, 1 +/* 803AA020 003A6F80 41 82 00 14 */ beq lbl_803AA034 +/* 803AA024 003A6F84 41 80 01 38 */ blt lbl_803AA15C +/* 803AA028 003A6F88 2C 00 00 04 */ cmpwi r0, 4 +/* 803AA02C 003A6F8C 40 80 01 30 */ bge lbl_803AA15C +/* 803AA030 003A6F90 48 00 00 14 */ b lbl_803AA044 +lbl_803AA034: +/* 803AA034 003A6F94 7F 63 DB 78 */ mr r3, r27 +/* 803AA038 003A6F98 7F 44 D3 78 */ mr r4, r26 +/* 803AA03C 003A6F9C 4B FF FD 41 */ bl sub_803a9d7c +/* 803AA040 003A6FA0 48 00 01 1C */ b lbl_803AA15C +lbl_803AA044: +/* 803AA044 003A6FA4 88 7B 00 03 */ lbz r3, 3(r27) +/* 803AA048 003A6FA8 48 00 9E E1 */ bl hwGetVirtualSampleID +/* 803AA04C 003A6FAC A0 9B 00 12 */ lhz r4, 0x12(r27) +/* 803AA050 003A6FB0 88 1B 00 03 */ lbz r0, 3(r27) +/* 803AA054 003A6FB4 50 80 42 2E */ rlwimi r0, r4, 8, 8, 0x17 +/* 803AA058 003A6FB8 7C 00 18 40 */ cmplw r0, r3 +/* 803AA05C 003A6FBC 40 82 00 E0 */ bne lbl_803AA13C +/* 803AA060 003A6FC0 7F 63 DB 78 */ mr r3, r27 +/* 803AA064 003A6FC4 7F 44 D3 78 */ mr r4, r26 +/* 803AA068 003A6FC8 4B FF FD 15 */ bl sub_803a9d7c +/* 803AA06C 003A6FCC 80 9B 00 0C */ lwz r4, 0xc(r27) +/* 803AA070 003A6FD0 7C 1C 20 40 */ cmplw r28, r4 +/* 803AA074 003A6FD4 41 80 00 18 */ blt lbl_803AA08C +/* 803AA078 003A6FD8 80 1B 00 08 */ lwz r0, 8(r27) +/* 803AA07C 003A6FDC 7C 64 E0 50 */ subf r3, r4, r28 +/* 803AA080 003A6FE0 7C 03 00 50 */ subf r0, r3, r0 +/* 803AA084 003A6FE4 90 1B 00 08 */ stw r0, 8(r27) +/* 803AA088 003A6FE8 48 00 00 1C */ b lbl_803AA0A4 +lbl_803AA08C: +/* 803AA08C 003A6FEC 80 7F 00 04 */ lwz r3, 4(r31) +/* 803AA090 003A6FF0 7C 9C 20 50 */ subf r4, r28, r4 +/* 803AA094 003A6FF4 80 1B 00 08 */ lwz r0, 8(r27) +/* 803AA098 003A6FF8 7C 64 18 50 */ subf r3, r4, r3 +/* 803AA09C 003A6FFC 7C 03 00 50 */ subf r0, r3, r0 +/* 803AA0A0 003A7000 90 1B 00 08 */ stw r0, 8(r27) +lbl_803AA0A4: +/* 803AA0A4 003A7004 93 9B 00 0C */ stw r28, 0xc(r27) +/* 803AA0A8 003A7008 80 AD AE 78 */ lwz r5, lbl_805A9A38@sda21(r13) +/* 803AA0AC 003A700C 88 7B 00 03 */ lbz r3, 3(r27) +/* 803AA0B0 003A7010 80 1B 00 08 */ lwz r0, 8(r27) +/* 803AA0B4 003A7014 1C 83 04 04 */ mulli r4, r3, 0x404 +/* 803AA0B8 003A7018 38 84 02 06 */ addi r4, r4, 0x206 +/* 803AA0BC 003A701C 7C 85 22 2E */ lhzx r4, r5, r4 +/* 803AA0C0 003A7020 1C 84 00 A0 */ mulli r4, r4, 0xa0 +/* 803AA0C4 003A7024 38 84 0F FF */ addi r4, r4, 0xfff +/* 803AA0C8 003A7028 7C 84 66 70 */ srawi r4, r4, 0xc +/* 803AA0CC 003A702C 7C 84 01 94 */ addze r4, r4 +/* 803AA0D0 003A7030 7C 04 00 00 */ cmpw r4, r0 +/* 803AA0D4 003A7034 40 81 00 88 */ ble lbl_803AA15C +/* 803AA0D8 003A7038 48 00 9E 79 */ bl hwVoiceInStartup +/* 803AA0DC 003A703C 28 03 00 00 */ cmplwi r3, 0 +/* 803AA0E0 003A7040 40 82 00 38 */ bne lbl_803AA118 +/* 803AA0E4 003A7044 88 1B 00 00 */ lbz r0, 0(r27) +/* 803AA0E8 003A7048 28 00 00 02 */ cmplwi r0, 2 +/* 803AA0EC 003A704C 40 82 00 24 */ bne lbl_803AA110 +/* 803AA0F0 003A7050 88 7B 00 03 */ lbz r3, 3(r27) +/* 803AA0F4 003A7054 48 00 92 99 */ bl hwBreak +/* 803AA0F8 003A7058 88 1B 00 03 */ lbz r0, 3(r27) +/* 803AA0FC 003A705C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803AA100 003A7060 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803AA104 003A7064 7C 63 02 14 */ add r3, r3, r0 +/* 803AA108 003A7068 4B FF CB 6D */ bl macSampleEndNotify +/* 803AA10C 003A706C 48 00 00 0C */ b lbl_803AA118 +lbl_803AA110: +/* 803AA110 003A7070 88 7B 00 03 */ lbz r3, 3(r27) +/* 803AA114 003A7074 4B FF E9 09 */ bl voiceKill +lbl_803AA118: +/* 803AA118 003A7078 38 00 00 00 */ li r0, 0 +/* 803AA11C 003A707C 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803AA120 003A7080 98 1B 00 00 */ stb r0, 0(r27) +/* 803AA124 003A7084 38 03 E3 10 */ addi r0, r3, lbl_8055E310@l +/* 803AA128 003A7088 38 80 00 FF */ li r4, 0xff +/* 803AA12C 003A708C 88 7B 00 03 */ lbz r3, 3(r27) +/* 803AA130 003A7090 7C 60 1A 14 */ add r3, r0, r3 +/* 803AA134 003A7094 98 83 09 08 */ stb r4, 0x908(r3) +/* 803AA138 003A7098 48 00 00 24 */ b lbl_803AA15C +lbl_803AA13C: +/* 803AA13C 003A709C 38 00 00 00 */ li r0, 0 +/* 803AA140 003A70A0 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803AA144 003A70A4 98 1B 00 00 */ stb r0, 0(r27) +/* 803AA148 003A70A8 38 03 E3 10 */ addi r0, r3, lbl_8055E310@l +/* 803AA14C 003A70AC 38 80 00 FF */ li r4, 0xff +/* 803AA150 003A70B0 88 7B 00 03 */ lbz r3, 3(r27) +/* 803AA154 003A70B4 7C 60 1A 14 */ add r3, r0, r3 +/* 803AA158 003A70B8 98 83 09 08 */ stb r4, 0x908(r3) +lbl_803AA15C: +/* 803AA15C 003A70BC 3B BD 00 01 */ addi r29, r29, 1 +/* 803AA160 003A70C0 3B DE 00 01 */ addi r30, r30, 1 +/* 803AA164 003A70C4 28 1D 00 40 */ cmplwi r29, 0x40 +/* 803AA168 003A70C8 41 80 FE 3C */ blt lbl_803A9FA4 +lbl_803AA16C: +/* 803AA16C 003A70CC 39 61 00 20 */ addi r11, r1, 0x20 +/* 803AA170 003A70D0 4B FD F9 55 */ bl _restgpr_26 +/* 803AA174 003A70D4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803AA178 003A70D8 7C 08 03 A6 */ mtlr r0 +/* 803AA17C 003A70DC 38 21 00 20 */ addi r1, r1, 0x20 +/* 803AA180 003A70E0 4E 80 00 20 */ blr + +.global sub_803aa184 +sub_803aa184: +/* 803AA184 003A70E4 38 00 00 00 */ li r0, 0 +/* 803AA188 003A70E8 B0 0D AF 18 */ sth r0, lbl_805A9AD8@sda21(r13) +/* 803AA18C 003A70EC 4E 80 00 20 */ blr + +.global ScanIDList +ScanIDList: +/* 803AA190 003A70F0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803AA194 003A70F4 7C 08 02 A6 */ mflr r0 +/* 803AA198 003A70F8 90 01 00 14 */ stw r0, 0x14(r1) +/* 803AA19C 003A70FC 54 A0 06 3E */ clrlwi r0, r5, 0x18 +/* 803AA1A0 003A7100 2C 00 00 02 */ cmpwi r0, 2 +/* 803AA1A4 003A7104 41 82 00 A4 */ beq lbl_803AA248 +/* 803AA1A8 003A7108 40 80 00 14 */ bge lbl_803AA1BC +/* 803AA1AC 003A710C 2C 00 00 00 */ cmpwi r0, 0 +/* 803AA1B0 003A7110 41 82 00 1C */ beq lbl_803AA1CC +/* 803AA1B4 003A7114 40 80 02 34 */ bge lbl_803AA3E8 +/* 803AA1B8 003A7118 48 00 02 44 */ b lbl_803AA3FC +lbl_803AA1BC: +/* 803AA1BC 003A711C 2C 00 00 04 */ cmpwi r0, 4 +/* 803AA1C0 003A7120 41 82 01 AC */ beq lbl_803AA36C +/* 803AA1C4 003A7124 40 80 02 38 */ bge lbl_803AA3FC +/* 803AA1C8 003A7128 48 00 01 0C */ b lbl_803AA2D4 +lbl_803AA1CC: +/* 803AA1CC 003A712C 28 06 00 00 */ cmplwi r6, 0 +/* 803AA1D0 003A7130 40 82 00 70 */ bne lbl_803AA240 +/* 803AA1D4 003A7134 28 04 00 00 */ cmplwi r4, 0 +/* 803AA1D8 003A7138 40 82 00 0C */ bne lbl_803AA1E4 +/* 803AA1DC 003A713C 38 C0 00 00 */ li r6, 0 +/* 803AA1E0 003A7140 48 00 00 40 */ b lbl_803AA220 +lbl_803AA1E4: +/* 803AA1E4 003A7144 80 04 00 00 */ lwz r0, 0(r4) +/* 803AA1E8 003A7148 54 65 04 3E */ clrlwi r5, r3, 0x10 +/* 803AA1EC 003A714C 7C C4 02 14 */ add r6, r4, r0 +/* 803AA1F0 003A7150 48 00 00 1C */ b lbl_803AA20C +lbl_803AA1F4: +/* 803AA1F4 003A7154 A0 06 00 04 */ lhz r0, 4(r6) +/* 803AA1F8 003A7158 7C 00 28 40 */ cmplw r0, r5 +/* 803AA1FC 003A715C 40 82 00 08 */ bne lbl_803AA204 +/* 803AA200 003A7160 48 00 00 20 */ b lbl_803AA220 +lbl_803AA204: +/* 803AA204 003A7164 80 06 00 00 */ lwz r0, 0(r6) +/* 803AA208 003A7168 7C C6 02 14 */ add r6, r6, r0 +lbl_803AA20C: +/* 803AA20C 003A716C 80 86 00 00 */ lwz r4, 0(r6) +/* 803AA210 003A7170 3C 04 00 01 */ addis r0, r4, 1 +/* 803AA214 003A7174 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AA218 003A7178 40 82 FF DC */ bne lbl_803AA1F4 +/* 803AA21C 003A717C 38 C0 00 00 */ li r6, 0 +lbl_803AA220: +/* 803AA220 003A7180 28 06 00 00 */ cmplwi r6, 0 +/* 803AA224 003A7184 41 82 00 10 */ beq lbl_803AA234 +/* 803AA228 003A7188 38 86 00 08 */ addi r4, r6, 8 +/* 803AA22C 003A718C 4B FF 7D 39 */ bl sub_803a1f64 +/* 803AA230 003A7190 48 00 01 CC */ b lbl_803AA3FC +lbl_803AA234: +/* 803AA234 003A7194 38 80 00 00 */ li r4, 0 +/* 803AA238 003A7198 4B FF 7D 2D */ bl sub_803a1f64 +/* 803AA23C 003A719C 48 00 01 C0 */ b lbl_803AA3FC +lbl_803AA240: +/* 803AA240 003A71A0 4B FF 80 29 */ bl dataRemoveMacro +/* 803AA244 003A71A4 48 00 01 B8 */ b lbl_803AA3FC +lbl_803AA248: +/* 803AA248 003A71A8 28 06 00 00 */ cmplwi r6, 0 +/* 803AA24C 003A71AC 40 82 00 7C */ bne lbl_803AA2C8 +/* 803AA250 003A71B0 28 04 00 00 */ cmplwi r4, 0 +/* 803AA254 003A71B4 40 82 00 0C */ bne lbl_803AA260 +/* 803AA258 003A71B8 38 C0 00 00 */ li r6, 0 +/* 803AA25C 003A71BC 48 00 00 44 */ b lbl_803AA2A0 +lbl_803AA260: +/* 803AA260 003A71C0 80 04 00 08 */ lwz r0, 8(r4) +/* 803AA264 003A71C4 60 65 40 00 */ ori r5, r3, 0x4000 +/* 803AA268 003A71C8 54 A5 04 3E */ clrlwi r5, r5, 0x10 +/* 803AA26C 003A71CC 7C C4 02 14 */ add r6, r4, r0 +/* 803AA270 003A71D0 48 00 00 1C */ b lbl_803AA28C +lbl_803AA274: +/* 803AA274 003A71D4 A0 06 00 04 */ lhz r0, 4(r6) +/* 803AA278 003A71D8 7C 00 28 40 */ cmplw r0, r5 +/* 803AA27C 003A71DC 40 82 00 08 */ bne lbl_803AA284 +/* 803AA280 003A71E0 48 00 00 20 */ b lbl_803AA2A0 +lbl_803AA284: +/* 803AA284 003A71E4 80 06 00 00 */ lwz r0, 0(r6) +/* 803AA288 003A71E8 7C C6 02 14 */ add r6, r6, r0 +lbl_803AA28C: +/* 803AA28C 003A71EC 80 86 00 00 */ lwz r4, 0(r6) +/* 803AA290 003A71F0 3C 04 00 01 */ addis r0, r4, 1 +/* 803AA294 003A71F4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AA298 003A71F8 40 82 FF DC */ bne lbl_803AA274 +/* 803AA29C 003A71FC 38 C0 00 00 */ li r6, 0 +lbl_803AA2A0: +/* 803AA2A0 003A7200 28 06 00 00 */ cmplwi r6, 0 +/* 803AA2A4 003A7204 41 82 00 14 */ beq lbl_803AA2B8 +/* 803AA2A8 003A7208 60 63 40 00 */ ori r3, r3, 0x4000 +/* 803AA2AC 003A720C 38 86 00 08 */ addi r4, r6, 8 +/* 803AA2B0 003A7210 4B FF 69 85 */ bl dataInsertKeymap +/* 803AA2B4 003A7214 48 00 01 48 */ b lbl_803AA3FC +lbl_803AA2B8: +/* 803AA2B8 003A7218 60 63 40 00 */ ori r3, r3, 0x4000 +/* 803AA2BC 003A721C 38 80 00 00 */ li r4, 0 +/* 803AA2C0 003A7220 4B FF 69 75 */ bl dataInsertKeymap +/* 803AA2C4 003A7224 48 00 01 38 */ b lbl_803AA3FC +lbl_803AA2C8: +/* 803AA2C8 003A7228 60 63 40 00 */ ori r3, r3, 0x4000 +/* 803AA2CC 003A722C 4B FF 6B 59 */ bl sub_803a0e24 +/* 803AA2D0 003A7230 48 00 01 2C */ b lbl_803AA3FC +lbl_803AA2D4: +/* 803AA2D4 003A7234 28 06 00 00 */ cmplwi r6, 0 +/* 803AA2D8 003A7238 40 82 00 88 */ bne lbl_803AA360 +/* 803AA2DC 003A723C 28 04 00 00 */ cmplwi r4, 0 +/* 803AA2E0 003A7240 40 82 00 0C */ bne lbl_803AA2EC +/* 803AA2E4 003A7244 38 C0 00 00 */ li r6, 0 +/* 803AA2E8 003A7248 48 00 00 44 */ b lbl_803AA32C +lbl_803AA2EC: +/* 803AA2EC 003A724C 80 04 00 0C */ lwz r0, 0xc(r4) +/* 803AA2F0 003A7250 60 65 80 00 */ ori r5, r3, 0x8000 +/* 803AA2F4 003A7254 54 A5 04 3E */ clrlwi r5, r5, 0x10 +/* 803AA2F8 003A7258 7C C4 02 14 */ add r6, r4, r0 +/* 803AA2FC 003A725C 48 00 00 1C */ b lbl_803AA318 +lbl_803AA300: +/* 803AA300 003A7260 A0 06 00 04 */ lhz r0, 4(r6) +/* 803AA304 003A7264 7C 00 28 40 */ cmplw r0, r5 +/* 803AA308 003A7268 40 82 00 08 */ bne lbl_803AA310 +/* 803AA30C 003A726C 48 00 00 20 */ b lbl_803AA32C +lbl_803AA310: +/* 803AA310 003A7270 80 06 00 00 */ lwz r0, 0(r6) +/* 803AA314 003A7274 7C C6 02 14 */ add r6, r6, r0 +lbl_803AA318: +/* 803AA318 003A7278 80 86 00 00 */ lwz r4, 0(r6) +/* 803AA31C 003A727C 3C 04 00 01 */ addis r0, r4, 1 +/* 803AA320 003A7280 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AA324 003A7284 40 82 FF DC */ bne lbl_803AA300 +/* 803AA328 003A7288 38 C0 00 00 */ li r6, 0 +lbl_803AA32C: +/* 803AA32C 003A728C 28 06 00 00 */ cmplwi r6, 0 +/* 803AA330 003A7290 41 82 00 1C */ beq lbl_803AA34C +/* 803AA334 003A7294 80 06 00 08 */ lwz r0, 8(r6) +/* 803AA338 003A7298 60 63 80 00 */ ori r3, r3, 0x8000 +/* 803AA33C 003A729C 38 86 00 0C */ addi r4, r6, 0xc +/* 803AA340 003A72A0 54 05 04 3E */ clrlwi r5, r0, 0x10 +/* 803AA344 003A72A4 4B FF 6C 5D */ bl dataInsertLayer +/* 803AA348 003A72A8 48 00 00 B4 */ b lbl_803AA3FC +lbl_803AA34C: +/* 803AA34C 003A72AC 60 63 80 00 */ ori r3, r3, 0x8000 +/* 803AA350 003A72B0 38 80 00 00 */ li r4, 0 +/* 803AA354 003A72B4 38 A0 00 00 */ li r5, 0 +/* 803AA358 003A72B8 4B FF 6C 49 */ bl dataInsertLayer +/* 803AA35C 003A72BC 48 00 00 A0 */ b lbl_803AA3FC +lbl_803AA360: +/* 803AA360 003A72C0 60 63 80 00 */ ori r3, r3, 0x8000 +/* 803AA364 003A72C4 4B FF 6E 85 */ bl dataRemoveLayer +/* 803AA368 003A72C8 48 00 00 94 */ b lbl_803AA3FC +lbl_803AA36C: +/* 803AA36C 003A72CC 28 06 00 00 */ cmplwi r6, 0 +/* 803AA370 003A72D0 40 82 00 70 */ bne lbl_803AA3E0 +/* 803AA374 003A72D4 28 04 00 00 */ cmplwi r4, 0 +/* 803AA378 003A72D8 40 82 00 0C */ bne lbl_803AA384 +/* 803AA37C 003A72DC 38 C0 00 00 */ li r6, 0 +/* 803AA380 003A72E0 48 00 00 40 */ b lbl_803AA3C0 +lbl_803AA384: +/* 803AA384 003A72E4 80 04 00 04 */ lwz r0, 4(r4) +/* 803AA388 003A72E8 54 65 04 3E */ clrlwi r5, r3, 0x10 +/* 803AA38C 003A72EC 7C C4 02 14 */ add r6, r4, r0 +/* 803AA390 003A72F0 48 00 00 1C */ b lbl_803AA3AC +lbl_803AA394: +/* 803AA394 003A72F4 A0 06 00 04 */ lhz r0, 4(r6) +/* 803AA398 003A72F8 7C 00 28 40 */ cmplw r0, r5 +/* 803AA39C 003A72FC 40 82 00 08 */ bne lbl_803AA3A4 +/* 803AA3A0 003A7300 48 00 00 20 */ b lbl_803AA3C0 +lbl_803AA3A4: +/* 803AA3A4 003A7304 80 06 00 00 */ lwz r0, 0(r6) +/* 803AA3A8 003A7308 7C C6 02 14 */ add r6, r6, r0 +lbl_803AA3AC: +/* 803AA3AC 003A730C 80 86 00 00 */ lwz r4, 0(r6) +/* 803AA3B0 003A7310 3C 04 00 01 */ addis r0, r4, 1 +/* 803AA3B4 003A7314 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AA3B8 003A7318 40 82 FF DC */ bne lbl_803AA394 +/* 803AA3BC 003A731C 38 C0 00 00 */ li r6, 0 +lbl_803AA3C0: +/* 803AA3C0 003A7320 28 06 00 00 */ cmplwi r6, 0 +/* 803AA3C4 003A7324 41 82 00 10 */ beq lbl_803AA3D4 +/* 803AA3C8 003A7328 38 86 00 08 */ addi r4, r6, 8 +/* 803AA3CC 003A732C 4B FF 6F E1 */ bl dataInsertCurve +/* 803AA3D0 003A7330 48 00 00 2C */ b lbl_803AA3FC +lbl_803AA3D4: +/* 803AA3D4 003A7334 38 80 00 00 */ li r4, 0 +/* 803AA3D8 003A7338 4B FF 6F D5 */ bl dataInsertCurve +/* 803AA3DC 003A733C 48 00 00 20 */ b lbl_803AA3FC +lbl_803AA3E0: +/* 803AA3E0 003A7340 4B FF 71 D1 */ bl dataRemoveKeymap +/* 803AA3E4 003A7344 48 00 00 18 */ b lbl_803AA3FC +lbl_803AA3E8: +/* 803AA3E8 003A7348 28 06 00 00 */ cmplwi r6, 0 +/* 803AA3EC 003A734C 40 82 00 0C */ bne lbl_803AA3F8 +/* 803AA3F0 003A7350 4B FF 77 8D */ bl sub_803a1b7c +/* 803AA3F4 003A7354 48 00 00 08 */ b lbl_803AA3FC +lbl_803AA3F8: +/* 803AA3F8 003A7358 4B FF 78 5D */ bl sub_803a1c54 +lbl_803AA3FC: +/* 803AA3FC 003A735C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803AA400 003A7360 7C 08 03 A6 */ mtlr r0 +/* 803AA404 003A7364 38 21 00 10 */ addi r1, r1, 0x10 +/* 803AA408 003A7368 4E 80 00 20 */ blr + +.global sub_803aa40c +sub_803aa40c: +/* 803AA40C 003A736C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803AA410 003A7370 7C 08 02 A6 */ mflr r0 +/* 803AA414 003A7374 90 01 00 14 */ stw r0, 0x14(r1) +/* 803AA418 003A7378 48 00 9A 29 */ bl sub_803b3e40 +/* 803AA41C 003A737C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803AA420 003A7380 7C 08 03 A6 */ mtlr r0 +/* 803AA424 003A7384 38 21 00 10 */ addi r1, r1, 0x10 +/* 803AA428 003A7388 4E 80 00 20 */ blr + +.global sndPushGroup +sndPushGroup: +/* 803AA42C 003A738C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803AA430 003A7390 7C 08 02 A6 */ mflr r0 +/* 803AA434 003A7394 90 01 00 34 */ stw r0, 0x34(r1) +/* 803AA438 003A7398 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AA43C 003A739C 4B FD F6 39 */ bl func_80389A74 +/* 803AA440 003A73A0 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AA444 003A73A4 7C 7B 1B 78 */ mr r27, r3 +/* 803AA448 003A73A8 7C 9C 23 78 */ mr r28, r4 +/* 803AA44C 003A73AC 7C DD 33 78 */ mr r29, r6 +/* 803AA450 003A73B0 28 00 00 00 */ cmplwi r0, 0 +/* 803AA454 003A73B4 7C FE 3B 78 */ mr r30, r7 +/* 803AA458 003A73B8 41 82 02 E4 */ beq lbl_803AA73C +/* 803AA45C 003A73BC A8 CD AF 18 */ lha r6, lbl_805A9AD8@sda21(r13) +/* 803AA460 003A73C0 2C 06 00 80 */ cmpwi r6, 0x80 +/* 803AA464 003A73C4 40 80 02 D8 */ bge lbl_803AA73C +/* 803AA468 003A73C8 7F 7F DB 78 */ mr r31, r27 +/* 803AA46C 003A73CC 57 84 04 3E */ clrlwi r4, r28, 0x10 +/* 803AA470 003A73D0 48 00 02 BC */ b lbl_803AA72C +lbl_803AA474: +/* 803AA474 003A73D4 A0 1F 00 04 */ lhz r0, 4(r31) +/* 803AA478 003A73D8 7C 00 20 40 */ cmplw r0, r4 +/* 803AA47C 003A73DC 40 82 02 A8 */ bne lbl_803AA724 +/* 803AA480 003A73E0 1C 06 00 0C */ mulli r0, r6, 0xc +/* 803AA484 003A73E4 3C 80 80 56 */ lis r4, lbl_8055EC60@ha +/* 803AA488 003A73E8 7C A3 2B 78 */ mr r3, r5 +/* 803AA48C 003A73EC 38 84 EC 60 */ addi r4, r4, lbl_8055EC60@l +/* 803AA490 003A73F0 7F E4 01 2E */ stwx r31, r4, r0 +/* 803AA494 003A73F4 7C 84 02 14 */ add r4, r4, r0 +/* 803AA498 003A73F8 93 64 00 08 */ stw r27, 8(r4) +/* 803AA49C 003A73FC 93 A4 00 04 */ stw r29, 4(r4) +/* 803AA4A0 003A7400 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803AA4A4 003A7404 7F 3B 02 14 */ add r25, r27, r0 +/* 803AA4A8 003A7408 48 00 98 61 */ bl hwTransAddr +/* 803AA4AC 003A740C 7C 64 1B 78 */ mr r4, r3 +/* 803AA4B0 003A7410 7F A3 EB 78 */ mr r3, r29 +/* 803AA4B4 003A7414 4B FF 72 79 */ bl dataInsertSDir +/* 803AA4B8 003A7418 28 03 00 00 */ cmplwi r3, 0 +/* 803AA4BC 003A741C 41 82 00 6C */ beq lbl_803AA528 +/* 803AA4C0 003A7420 48 00 00 5C */ b lbl_803AA51C +lbl_803AA4C4: +/* 803AA4C4 003A7424 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AA4C8 003A7428 41 82 00 3C */ beq lbl_803AA504 +/* 803AA4CC 003A742C 54 7A 04 BE */ clrlwi r26, r3, 0x12 +/* 803AA4D0 003A7430 48 00 00 1C */ b lbl_803AA4EC +lbl_803AA4D4: +/* 803AA4D4 003A7434 7F 43 D3 78 */ mr r3, r26 +/* 803AA4D8 003A7438 7F A4 EB 78 */ mr r4, r29 +/* 803AA4DC 003A743C 38 A0 00 01 */ li r5, 1 +/* 803AA4E0 003A7440 38 C0 00 00 */ li r6, 0 +/* 803AA4E4 003A7444 4B FF FC AD */ bl ScanIDList +/* 803AA4E8 003A7448 3B 5A 00 01 */ addi r26, r26, 1 +lbl_803AA4EC: +/* 803AA4EC 003A744C A0 19 00 02 */ lhz r0, 2(r25) +/* 803AA4F0 003A7450 57 43 04 3E */ clrlwi r3, r26, 0x10 +/* 803AA4F4 003A7454 7C 03 00 40 */ cmplw r3, r0 +/* 803AA4F8 003A7458 40 81 FF DC */ ble lbl_803AA4D4 +/* 803AA4FC 003A745C 3B 39 00 04 */ addi r25, r25, 4 +/* 803AA500 003A7460 48 00 00 1C */ b lbl_803AA51C +lbl_803AA504: +/* 803AA504 003A7464 A0 79 00 00 */ lhz r3, 0(r25) +/* 803AA508 003A7468 7F A4 EB 78 */ mr r4, r29 +/* 803AA50C 003A746C 38 A0 00 01 */ li r5, 1 +/* 803AA510 003A7470 38 C0 00 00 */ li r6, 0 +/* 803AA514 003A7474 3B 39 00 02 */ addi r25, r25, 2 +/* 803AA518 003A7478 4B FF FC 79 */ bl ScanIDList +lbl_803AA51C: +/* 803AA51C 003A747C A0 79 00 00 */ lhz r3, 0(r25) +/* 803AA520 003A7480 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AA524 003A7484 40 82 FF A0 */ bne lbl_803AA4C4 +lbl_803AA528: +/* 803AA528 003A7488 80 1F 00 08 */ lwz r0, 8(r31) +/* 803AA52C 003A748C 7F 5B 02 14 */ add r26, r27, r0 +/* 803AA530 003A7490 48 00 00 5C */ b lbl_803AA58C +lbl_803AA534: +/* 803AA534 003A7494 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AA538 003A7498 41 82 00 3C */ beq lbl_803AA574 +/* 803AA53C 003A749C 54 79 04 BE */ clrlwi r25, r3, 0x12 +/* 803AA540 003A74A0 48 00 00 1C */ b lbl_803AA55C +lbl_803AA544: +/* 803AA544 003A74A4 7F 23 CB 78 */ mr r3, r25 +/* 803AA548 003A74A8 7F C4 F3 78 */ mr r4, r30 +/* 803AA54C 003A74AC 38 A0 00 00 */ li r5, 0 +/* 803AA550 003A74B0 38 C0 00 00 */ li r6, 0 +/* 803AA554 003A74B4 4B FF FC 3D */ bl ScanIDList +/* 803AA558 003A74B8 3B 39 00 01 */ addi r25, r25, 1 +lbl_803AA55C: +/* 803AA55C 003A74BC A0 1A 00 02 */ lhz r0, 2(r26) +/* 803AA560 003A74C0 57 23 04 3E */ clrlwi r3, r25, 0x10 +/* 803AA564 003A74C4 7C 03 00 40 */ cmplw r3, r0 +/* 803AA568 003A74C8 40 81 FF DC */ ble lbl_803AA544 +/* 803AA56C 003A74CC 3B 5A 00 04 */ addi r26, r26, 4 +/* 803AA570 003A74D0 48 00 00 1C */ b lbl_803AA58C +lbl_803AA574: +/* 803AA574 003A74D4 A0 7A 00 00 */ lhz r3, 0(r26) +/* 803AA578 003A74D8 7F C4 F3 78 */ mr r4, r30 +/* 803AA57C 003A74DC 38 A0 00 00 */ li r5, 0 +/* 803AA580 003A74E0 38 C0 00 00 */ li r6, 0 +/* 803AA584 003A74E4 3B 5A 00 02 */ addi r26, r26, 2 +/* 803AA588 003A74E8 4B FF FC 09 */ bl ScanIDList +lbl_803AA58C: +/* 803AA58C 003A74EC A0 7A 00 00 */ lhz r3, 0(r26) +/* 803AA590 003A74F0 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AA594 003A74F4 40 82 FF A0 */ bne lbl_803AA534 +/* 803AA598 003A74F8 80 1F 00 10 */ lwz r0, 0x10(r31) +/* 803AA59C 003A74FC 7F 5B 02 14 */ add r26, r27, r0 +/* 803AA5A0 003A7500 48 00 00 5C */ b lbl_803AA5FC +lbl_803AA5A4: +/* 803AA5A4 003A7504 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AA5A8 003A7508 41 82 00 3C */ beq lbl_803AA5E4 +/* 803AA5AC 003A750C 54 79 04 BE */ clrlwi r25, r3, 0x12 +/* 803AA5B0 003A7510 48 00 00 1C */ b lbl_803AA5CC +lbl_803AA5B4: +/* 803AA5B4 003A7514 7F 23 CB 78 */ mr r3, r25 +/* 803AA5B8 003A7518 7F C4 F3 78 */ mr r4, r30 +/* 803AA5BC 003A751C 38 A0 00 04 */ li r5, 4 +/* 803AA5C0 003A7520 38 C0 00 00 */ li r6, 0 +/* 803AA5C4 003A7524 4B FF FB CD */ bl ScanIDList +/* 803AA5C8 003A7528 3B 39 00 01 */ addi r25, r25, 1 +lbl_803AA5CC: +/* 803AA5CC 003A752C A0 1A 00 02 */ lhz r0, 2(r26) +/* 803AA5D0 003A7530 57 23 04 3E */ clrlwi r3, r25, 0x10 +/* 803AA5D4 003A7534 7C 03 00 40 */ cmplw r3, r0 +/* 803AA5D8 003A7538 40 81 FF DC */ ble lbl_803AA5B4 +/* 803AA5DC 003A753C 3B 5A 00 04 */ addi r26, r26, 4 +/* 803AA5E0 003A7540 48 00 00 1C */ b lbl_803AA5FC +lbl_803AA5E4: +/* 803AA5E4 003A7544 A0 7A 00 00 */ lhz r3, 0(r26) +/* 803AA5E8 003A7548 7F C4 F3 78 */ mr r4, r30 +/* 803AA5EC 003A754C 38 A0 00 04 */ li r5, 4 +/* 803AA5F0 003A7550 38 C0 00 00 */ li r6, 0 +/* 803AA5F4 003A7554 3B 5A 00 02 */ addi r26, r26, 2 +/* 803AA5F8 003A7558 4B FF FB 99 */ bl ScanIDList +lbl_803AA5FC: +/* 803AA5FC 003A755C A0 7A 00 00 */ lhz r3, 0(r26) +/* 803AA600 003A7560 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AA604 003A7564 40 82 FF A0 */ bne lbl_803AA5A4 +/* 803AA608 003A7568 80 1F 00 14 */ lwz r0, 0x14(r31) +/* 803AA60C 003A756C 7F 5B 02 14 */ add r26, r27, r0 +/* 803AA610 003A7570 48 00 00 5C */ b lbl_803AA66C +lbl_803AA614: +/* 803AA614 003A7574 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AA618 003A7578 41 82 00 3C */ beq lbl_803AA654 +/* 803AA61C 003A757C 54 79 04 BE */ clrlwi r25, r3, 0x12 +/* 803AA620 003A7580 48 00 00 1C */ b lbl_803AA63C +lbl_803AA624: +/* 803AA624 003A7584 7F 23 CB 78 */ mr r3, r25 +/* 803AA628 003A7588 7F C4 F3 78 */ mr r4, r30 +/* 803AA62C 003A758C 38 A0 00 02 */ li r5, 2 +/* 803AA630 003A7590 38 C0 00 00 */ li r6, 0 +/* 803AA634 003A7594 4B FF FB 5D */ bl ScanIDList +/* 803AA638 003A7598 3B 39 00 01 */ addi r25, r25, 1 +lbl_803AA63C: +/* 803AA63C 003A759C A0 1A 00 02 */ lhz r0, 2(r26) +/* 803AA640 003A75A0 57 23 04 3E */ clrlwi r3, r25, 0x10 +/* 803AA644 003A75A4 7C 03 00 40 */ cmplw r3, r0 +/* 803AA648 003A75A8 40 81 FF DC */ ble lbl_803AA624 +/* 803AA64C 003A75AC 3B 5A 00 04 */ addi r26, r26, 4 +/* 803AA650 003A75B0 48 00 00 1C */ b lbl_803AA66C +lbl_803AA654: +/* 803AA654 003A75B4 A0 7A 00 00 */ lhz r3, 0(r26) +/* 803AA658 003A75B8 7F C4 F3 78 */ mr r4, r30 +/* 803AA65C 003A75BC 38 A0 00 02 */ li r5, 2 +/* 803AA660 003A75C0 38 C0 00 00 */ li r6, 0 +/* 803AA664 003A75C4 3B 5A 00 02 */ addi r26, r26, 2 +/* 803AA668 003A75C8 4B FF FB 29 */ bl ScanIDList +lbl_803AA66C: +/* 803AA66C 003A75CC A0 7A 00 00 */ lhz r3, 0(r26) +/* 803AA670 003A75D0 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AA674 003A75D4 40 82 FF A0 */ bne lbl_803AA614 +/* 803AA678 003A75D8 80 1F 00 18 */ lwz r0, 0x18(r31) +/* 803AA67C 003A75DC 7F 5B 02 14 */ add r26, r27, r0 +/* 803AA680 003A75E0 48 00 00 5C */ b lbl_803AA6DC +lbl_803AA684: +/* 803AA684 003A75E4 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AA688 003A75E8 41 82 00 3C */ beq lbl_803AA6C4 +/* 803AA68C 003A75EC 54 79 04 BE */ clrlwi r25, r3, 0x12 +/* 803AA690 003A75F0 48 00 00 1C */ b lbl_803AA6AC +lbl_803AA694: +/* 803AA694 003A75F4 7F 23 CB 78 */ mr r3, r25 +/* 803AA698 003A75F8 7F C4 F3 78 */ mr r4, r30 +/* 803AA69C 003A75FC 38 A0 00 03 */ li r5, 3 +/* 803AA6A0 003A7600 38 C0 00 00 */ li r6, 0 +/* 803AA6A4 003A7604 4B FF FA ED */ bl ScanIDList +/* 803AA6A8 003A7608 3B 39 00 01 */ addi r25, r25, 1 +lbl_803AA6AC: +/* 803AA6AC 003A760C A0 1A 00 02 */ lhz r0, 2(r26) +/* 803AA6B0 003A7610 57 23 04 3E */ clrlwi r3, r25, 0x10 +/* 803AA6B4 003A7614 7C 03 00 40 */ cmplw r3, r0 +/* 803AA6B8 003A7618 40 81 FF DC */ ble lbl_803AA694 +/* 803AA6BC 003A761C 3B 5A 00 04 */ addi r26, r26, 4 +/* 803AA6C0 003A7620 48 00 00 1C */ b lbl_803AA6DC +lbl_803AA6C4: +/* 803AA6C4 003A7624 A0 7A 00 00 */ lhz r3, 0(r26) +/* 803AA6C8 003A7628 7F C4 F3 78 */ mr r4, r30 +/* 803AA6CC 003A762C 38 A0 00 03 */ li r5, 3 +/* 803AA6D0 003A7630 38 C0 00 00 */ li r6, 0 +/* 803AA6D4 003A7634 3B 5A 00 02 */ addi r26, r26, 2 +/* 803AA6D8 003A7638 4B FF FA B9 */ bl ScanIDList +lbl_803AA6DC: +/* 803AA6DC 003A763C A0 7A 00 00 */ lhz r3, 0(r26) +/* 803AA6E0 003A7640 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AA6E4 003A7644 40 82 FF A0 */ bne lbl_803AA684 +/* 803AA6E8 003A7648 A0 1F 00 06 */ lhz r0, 6(r31) +/* 803AA6EC 003A764C 28 00 00 01 */ cmplwi r0, 1 +/* 803AA6F0 003A7650 40 82 00 1C */ bne lbl_803AA70C +/* 803AA6F4 003A7654 80 1F 00 1C */ lwz r0, 0x1c(r31) +/* 803AA6F8 003A7658 7F 83 E3 78 */ mr r3, r28 +/* 803AA6FC 003A765C 7C 9B 02 14 */ add r4, r27, r0 +/* 803AA700 003A7660 A0 A4 00 00 */ lhz r5, 0(r4) +/* 803AA704 003A7664 38 84 00 04 */ addi r4, r4, 4 +/* 803AA708 003A7668 4B FF 75 E5 */ bl dataInsertFX +lbl_803AA70C: +/* 803AA70C 003A766C 48 00 97 D9 */ bl hwSyncSampleMem +/* 803AA710 003A7670 A8 8D AF 18 */ lha r4, lbl_805A9AD8@sda21(r13) +/* 803AA714 003A7674 38 60 00 01 */ li r3, 1 +/* 803AA718 003A7678 38 04 00 01 */ addi r0, r4, 1 +/* 803AA71C 003A767C B0 0D AF 18 */ sth r0, lbl_805A9AD8@sda21(r13) +/* 803AA720 003A7680 48 00 00 20 */ b lbl_803AA740 +lbl_803AA724: +/* 803AA724 003A7684 80 1F 00 00 */ lwz r0, 0(r31) +/* 803AA728 003A7688 7F FB 02 14 */ add r31, r27, r0 +lbl_803AA72C: +/* 803AA72C 003A768C 80 7F 00 00 */ lwz r3, 0(r31) +/* 803AA730 003A7690 3C 03 00 01 */ addis r0, r3, 1 +/* 803AA734 003A7694 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AA738 003A7698 40 82 FD 3C */ bne lbl_803AA474 +lbl_803AA73C: +/* 803AA73C 003A769C 38 60 00 00 */ li r3, 0 +lbl_803AA740: +/* 803AA740 003A76A0 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AA744 003A76A4 4B FD F3 7D */ bl _restgpr_25 +/* 803AA748 003A76A8 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803AA74C 003A76AC 7C 08 03 A6 */ mtlr r0 +/* 803AA750 003A76B0 38 21 00 30 */ addi r1, r1, 0x30 +/* 803AA754 003A76B4 4E 80 00 20 */ blr + +.global sndPopGroup +sndPopGroup: +/* 803AA758 003A76B8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803AA75C 003A76BC 7C 08 02 A6 */ mflr r0 +/* 803AA760 003A76C0 90 01 00 24 */ stw r0, 0x24(r1) +/* 803AA764 003A76C4 39 61 00 20 */ addi r11, r1, 0x20 +/* 803AA768 003A76C8 4B FD F3 11 */ bl func_80389A78 +/* 803AA76C 003A76CC A8 AD AF 18 */ lha r5, lbl_805A9AD8@sda21(r13) +/* 803AA770 003A76D0 3C 60 80 56 */ lis r3, lbl_8055EC60@ha +/* 803AA774 003A76D4 38 83 EC 60 */ addi r4, r3, lbl_8055EC60@l +/* 803AA778 003A76D8 38 65 FF FF */ addi r3, r5, -1 +/* 803AA77C 003A76DC 7C 60 07 34 */ extsh r0, r3 +/* 803AA780 003A76E0 B0 6D AF 18 */ sth r3, lbl_805A9AD8@sda21(r13) +/* 803AA784 003A76E4 1C 00 00 0C */ mulli r0, r0, 0xc +/* 803AA788 003A76E8 7C 64 02 14 */ add r3, r4, r0 +/* 803AA78C 003A76EC 7F E4 00 2E */ lwzx r31, r4, r0 +/* 803AA790 003A76F0 83 C3 00 08 */ lwz r30, 8(r3) +/* 803AA794 003A76F4 83 43 00 04 */ lwz r26, 4(r3) +/* 803AA798 003A76F8 48 00 A9 25 */ bl hwDisableIrq +/* 803AA79C 003A76FC A0 1F 00 06 */ lhz r0, 6(r31) +/* 803AA7A0 003A7700 28 00 00 01 */ cmplwi r0, 1 +/* 803AA7A4 003A7704 40 82 00 1C */ bne lbl_803AA7C0 +/* 803AA7A8 003A7708 80 1F 00 1C */ lwz r0, 0x1c(r31) +/* 803AA7AC 003A770C 7C 7E 02 14 */ add r3, r30, r0 +/* 803AA7B0 003A7710 A0 83 00 00 */ lhz r4, 0(r3) +/* 803AA7B4 003A7714 38 63 00 04 */ addi r3, r3, 4 +/* 803AA7B8 003A7718 48 00 50 B5 */ bl s3dKillEmitterByFXID +/* 803AA7BC 003A771C 48 00 00 0C */ b lbl_803AA7C8 +lbl_803AA7C0: +/* 803AA7C0 003A7720 A0 7F 00 04 */ lhz r3, 4(r31) +/* 803AA7C4 003A7724 4B FE B6 29 */ bl seqKillInstancesByGroupID +lbl_803AA7C8: +/* 803AA7C8 003A7728 80 1F 00 08 */ lwz r0, 8(r31) +/* 803AA7CC 003A772C 7C 7E 02 14 */ add r3, r30, r0 +/* 803AA7D0 003A7730 4B FF E5 45 */ bl synthKillVoicesByMacroReferences +/* 803AA7D4 003A7734 48 00 A8 B1 */ bl hwEnableIrq +/* 803AA7D8 003A7738 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803AA7DC 003A773C 7F BE 02 14 */ add r29, r30, r0 +/* 803AA7E0 003A7740 A0 1D 00 00 */ lhz r0, 0(r29) +/* 803AA7E4 003A7744 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AA7E8 003A7748 41 82 00 B4 */ beq lbl_803AA89C +/* 803AA7EC 003A774C 7F BC EB 78 */ mr r28, r29 +/* 803AA7F0 003A7750 48 00 00 08 */ b lbl_803AA7F8 +lbl_803AA7F4: +/* 803AA7F4 003A7754 3B 9C 00 02 */ addi r28, r28, 2 +lbl_803AA7F8: +/* 803AA7F8 003A7758 A0 1C 00 00 */ lhz r0, 0(r28) +/* 803AA7FC 003A775C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AA800 003A7760 40 82 FF F4 */ bne lbl_803AA7F4 +/* 803AA804 003A7764 3B 9C FF FE */ addi r28, r28, -2 +/* 803AA808 003A7768 48 00 00 8C */ b lbl_803AA894 +lbl_803AA80C: +/* 803AA80C 003A776C 7C 1C E8 40 */ cmplw r28, r29 +/* 803AA810 003A7770 41 82 00 6C */ beq lbl_803AA87C +/* 803AA814 003A7774 A0 1C FF FE */ lhz r0, -2(r28) +/* 803AA818 003A7778 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10 +/* 803AA81C 003A777C 41 82 00 44 */ beq lbl_803AA860 +/* 803AA820 003A7780 A0 1C 00 00 */ lhz r0, 0(r28) +/* 803AA824 003A7784 7C 1B 07 34 */ extsh r27, r0 +/* 803AA828 003A7788 48 00 00 1C */ b lbl_803AA844 +lbl_803AA82C: +/* 803AA82C 003A778C 57 63 04 3E */ clrlwi r3, r27, 0x10 +/* 803AA830 003A7790 38 80 00 00 */ li r4, 0 +/* 803AA834 003A7794 38 A0 00 01 */ li r5, 1 +/* 803AA838 003A7798 38 C0 00 01 */ li r6, 1 +/* 803AA83C 003A779C 4B FF F9 55 */ bl ScanIDList +/* 803AA840 003A77A0 3B 7B FF FF */ addi r27, r27, -1 +lbl_803AA844: +/* 803AA844 003A77A4 A0 1C FF FE */ lhz r0, -2(r28) +/* 803AA848 003A77A8 7F 63 07 34 */ extsh r3, r27 +/* 803AA84C 003A77AC 54 00 04 BE */ clrlwi r0, r0, 0x12 +/* 803AA850 003A77B0 7C 03 00 00 */ cmpw r3, r0 +/* 803AA854 003A77B4 40 80 FF D8 */ bge lbl_803AA82C +/* 803AA858 003A77B8 3B 9C FF FC */ addi r28, r28, -4 +/* 803AA85C 003A77BC 48 00 00 38 */ b lbl_803AA894 +lbl_803AA860: +/* 803AA860 003A77C0 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AA864 003A77C4 38 80 00 00 */ li r4, 0 +/* 803AA868 003A77C8 38 A0 00 01 */ li r5, 1 +/* 803AA86C 003A77CC 38 C0 00 01 */ li r6, 1 +/* 803AA870 003A77D0 4B FF F9 21 */ bl ScanIDList +/* 803AA874 003A77D4 3B 9C FF FE */ addi r28, r28, -2 +/* 803AA878 003A77D8 48 00 00 1C */ b lbl_803AA894 +lbl_803AA87C: +/* 803AA87C 003A77DC A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AA880 003A77E0 38 80 00 00 */ li r4, 0 +/* 803AA884 003A77E4 38 A0 00 01 */ li r5, 1 +/* 803AA888 003A77E8 38 C0 00 01 */ li r6, 1 +/* 803AA88C 003A77EC 4B FF F9 05 */ bl ScanIDList +/* 803AA890 003A77F0 3B 9C FF FE */ addi r28, r28, -2 +lbl_803AA894: +/* 803AA894 003A77F4 7C 1C E8 40 */ cmplw r28, r29 +/* 803AA898 003A77F8 40 80 FF 74 */ bge lbl_803AA80C +lbl_803AA89C: +/* 803AA89C 003A77FC 7F 43 D3 78 */ mr r3, r26 +/* 803AA8A0 003A7800 4B FF 70 15 */ bl sub_803a18b4 +/* 803AA8A4 003A7804 80 1F 00 08 */ lwz r0, 8(r31) +/* 803AA8A8 003A7808 7F 9E 02 14 */ add r28, r30, r0 +/* 803AA8AC 003A780C 48 00 00 5C */ b lbl_803AA908 +lbl_803AA8B0: +/* 803AA8B0 003A7810 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AA8B4 003A7814 41 82 00 3C */ beq lbl_803AA8F0 +/* 803AA8B8 003A7818 54 7B 04 BE */ clrlwi r27, r3, 0x12 +/* 803AA8BC 003A781C 48 00 00 1C */ b lbl_803AA8D8 +lbl_803AA8C0: +/* 803AA8C0 003A7820 7F 63 DB 78 */ mr r3, r27 +/* 803AA8C4 003A7824 38 80 00 00 */ li r4, 0 +/* 803AA8C8 003A7828 38 A0 00 00 */ li r5, 0 +/* 803AA8CC 003A782C 38 C0 00 01 */ li r6, 1 +/* 803AA8D0 003A7830 4B FF F8 C1 */ bl ScanIDList +/* 803AA8D4 003A7834 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803AA8D8: +/* 803AA8D8 003A7838 A0 1C 00 02 */ lhz r0, 2(r28) +/* 803AA8DC 003A783C 57 63 04 3E */ clrlwi r3, r27, 0x10 +/* 803AA8E0 003A7840 7C 03 00 40 */ cmplw r3, r0 +/* 803AA8E4 003A7844 40 81 FF DC */ ble lbl_803AA8C0 +/* 803AA8E8 003A7848 3B 9C 00 04 */ addi r28, r28, 4 +/* 803AA8EC 003A784C 48 00 00 1C */ b lbl_803AA908 +lbl_803AA8F0: +/* 803AA8F0 003A7850 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AA8F4 003A7854 38 80 00 00 */ li r4, 0 +/* 803AA8F8 003A7858 38 A0 00 00 */ li r5, 0 +/* 803AA8FC 003A785C 38 C0 00 01 */ li r6, 1 +/* 803AA900 003A7860 3B 9C 00 02 */ addi r28, r28, 2 +/* 803AA904 003A7864 4B FF F8 8D */ bl ScanIDList +lbl_803AA908: +/* 803AA908 003A7868 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AA90C 003A786C 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AA910 003A7870 40 82 FF A0 */ bne lbl_803AA8B0 +/* 803AA914 003A7874 80 1F 00 10 */ lwz r0, 0x10(r31) +/* 803AA918 003A7878 7F 9E 02 14 */ add r28, r30, r0 +/* 803AA91C 003A787C 48 00 00 5C */ b lbl_803AA978 +lbl_803AA920: +/* 803AA920 003A7880 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AA924 003A7884 41 82 00 3C */ beq lbl_803AA960 +/* 803AA928 003A7888 54 7B 04 BE */ clrlwi r27, r3, 0x12 +/* 803AA92C 003A788C 48 00 00 1C */ b lbl_803AA948 +lbl_803AA930: +/* 803AA930 003A7890 7F 63 DB 78 */ mr r3, r27 +/* 803AA934 003A7894 38 80 00 00 */ li r4, 0 +/* 803AA938 003A7898 38 A0 00 04 */ li r5, 4 +/* 803AA93C 003A789C 38 C0 00 01 */ li r6, 1 +/* 803AA940 003A78A0 4B FF F8 51 */ bl ScanIDList +/* 803AA944 003A78A4 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803AA948: +/* 803AA948 003A78A8 A0 1C 00 02 */ lhz r0, 2(r28) +/* 803AA94C 003A78AC 57 63 04 3E */ clrlwi r3, r27, 0x10 +/* 803AA950 003A78B0 7C 03 00 40 */ cmplw r3, r0 +/* 803AA954 003A78B4 40 81 FF DC */ ble lbl_803AA930 +/* 803AA958 003A78B8 3B 9C 00 04 */ addi r28, r28, 4 +/* 803AA95C 003A78BC 48 00 00 1C */ b lbl_803AA978 +lbl_803AA960: +/* 803AA960 003A78C0 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AA964 003A78C4 38 80 00 00 */ li r4, 0 +/* 803AA968 003A78C8 38 A0 00 04 */ li r5, 4 +/* 803AA96C 003A78CC 38 C0 00 01 */ li r6, 1 +/* 803AA970 003A78D0 3B 9C 00 02 */ addi r28, r28, 2 +/* 803AA974 003A78D4 4B FF F8 1D */ bl ScanIDList +lbl_803AA978: +/* 803AA978 003A78D8 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AA97C 003A78DC 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AA980 003A78E0 40 82 FF A0 */ bne lbl_803AA920 +/* 803AA984 003A78E4 80 1F 00 14 */ lwz r0, 0x14(r31) +/* 803AA988 003A78E8 7F 9E 02 14 */ add r28, r30, r0 +/* 803AA98C 003A78EC 48 00 00 5C */ b lbl_803AA9E8 +lbl_803AA990: +/* 803AA990 003A78F0 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AA994 003A78F4 41 82 00 3C */ beq lbl_803AA9D0 +/* 803AA998 003A78F8 54 7B 04 BE */ clrlwi r27, r3, 0x12 +/* 803AA99C 003A78FC 48 00 00 1C */ b lbl_803AA9B8 +lbl_803AA9A0: +/* 803AA9A0 003A7900 7F 63 DB 78 */ mr r3, r27 +/* 803AA9A4 003A7904 38 80 00 00 */ li r4, 0 +/* 803AA9A8 003A7908 38 A0 00 02 */ li r5, 2 +/* 803AA9AC 003A790C 38 C0 00 01 */ li r6, 1 +/* 803AA9B0 003A7910 4B FF F7 E1 */ bl ScanIDList +/* 803AA9B4 003A7914 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803AA9B8: +/* 803AA9B8 003A7918 A0 1C 00 02 */ lhz r0, 2(r28) +/* 803AA9BC 003A791C 57 63 04 3E */ clrlwi r3, r27, 0x10 +/* 803AA9C0 003A7920 7C 03 00 40 */ cmplw r3, r0 +/* 803AA9C4 003A7924 40 81 FF DC */ ble lbl_803AA9A0 +/* 803AA9C8 003A7928 3B 9C 00 04 */ addi r28, r28, 4 +/* 803AA9CC 003A792C 48 00 00 1C */ b lbl_803AA9E8 +lbl_803AA9D0: +/* 803AA9D0 003A7930 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AA9D4 003A7934 38 80 00 00 */ li r4, 0 +/* 803AA9D8 003A7938 38 A0 00 02 */ li r5, 2 +/* 803AA9DC 003A793C 38 C0 00 01 */ li r6, 1 +/* 803AA9E0 003A7940 3B 9C 00 02 */ addi r28, r28, 2 +/* 803AA9E4 003A7944 4B FF F7 AD */ bl ScanIDList +lbl_803AA9E8: +/* 803AA9E8 003A7948 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AA9EC 003A794C 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AA9F0 003A7950 40 82 FF A0 */ bne lbl_803AA990 +/* 803AA9F4 003A7954 80 1F 00 18 */ lwz r0, 0x18(r31) +/* 803AA9F8 003A7958 7F 9E 02 14 */ add r28, r30, r0 +/* 803AA9FC 003A795C 48 00 00 5C */ b lbl_803AAA58 +lbl_803AAA00: +/* 803AAA00 003A7960 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803AAA04 003A7964 41 82 00 3C */ beq lbl_803AAA40 +/* 803AAA08 003A7968 54 7B 04 BE */ clrlwi r27, r3, 0x12 +/* 803AAA0C 003A796C 48 00 00 1C */ b lbl_803AAA28 +lbl_803AAA10: +/* 803AAA10 003A7970 7F 63 DB 78 */ mr r3, r27 +/* 803AAA14 003A7974 38 80 00 00 */ li r4, 0 +/* 803AAA18 003A7978 38 A0 00 03 */ li r5, 3 +/* 803AAA1C 003A797C 38 C0 00 01 */ li r6, 1 +/* 803AAA20 003A7980 4B FF F7 71 */ bl ScanIDList +/* 803AAA24 003A7984 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803AAA28: +/* 803AAA28 003A7988 A0 1C 00 02 */ lhz r0, 2(r28) +/* 803AAA2C 003A798C 57 63 04 3E */ clrlwi r3, r27, 0x10 +/* 803AAA30 003A7990 7C 03 00 40 */ cmplw r3, r0 +/* 803AAA34 003A7994 40 81 FF DC */ ble lbl_803AAA10 +/* 803AAA38 003A7998 3B 9C 00 04 */ addi r28, r28, 4 +/* 803AAA3C 003A799C 48 00 00 1C */ b lbl_803AAA58 +lbl_803AAA40: +/* 803AAA40 003A79A0 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AAA44 003A79A4 38 80 00 00 */ li r4, 0 +/* 803AAA48 003A79A8 38 A0 00 03 */ li r5, 3 +/* 803AAA4C 003A79AC 38 C0 00 01 */ li r6, 1 +/* 803AAA50 003A79B0 3B 9C 00 02 */ addi r28, r28, 2 +/* 803AAA54 003A79B4 4B FF F7 3D */ bl ScanIDList +lbl_803AAA58: +/* 803AAA58 003A79B8 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803AAA5C 003A79BC 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AAA60 003A79C0 40 82 FF A0 */ bne lbl_803AAA00 +/* 803AAA64 003A79C4 A0 1F 00 06 */ lhz r0, 6(r31) +/* 803AAA68 003A79C8 28 00 00 01 */ cmplwi r0, 1 +/* 803AAA6C 003A79CC 40 82 00 0C */ bne lbl_803AAA78 +/* 803AAA70 003A79D0 A0 7F 00 04 */ lhz r3, 4(r31) +/* 803AAA74 003A79D4 4B FF 73 95 */ bl sub_803a1e08 +lbl_803AAA78: +/* 803AAA78 003A79D8 38 60 00 01 */ li r3, 1 +/* 803AAA7C 003A79DC 39 61 00 20 */ addi r11, r1, 0x20 +/* 803AAA80 003A79E0 4B FD F0 45 */ bl _restgpr_26 +/* 803AAA84 003A79E4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803AAA88 003A79E8 7C 08 03 A6 */ mtlr r0 +/* 803AAA8C 003A79EC 38 21 00 20 */ addi r1, r1, 0x20 +/* 803AAA90 003A79F0 4E 80 00 20 */ blr + +.global sub_803aaa94 +sub_803aaa94: +/* 803AAA94 003A79F4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803AAA98 003A79F8 7C 08 02 A6 */ mflr r0 +/* 803AAA9C 003A79FC 90 01 00 34 */ stw r0, 0x34(r1) +/* 803AAAA0 003A7A00 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AAAA4 003A7A04 4B FD EF D1 */ bl func_80389A74 +/* 803AAAA8 003A7A08 A8 0D AF 18 */ lha r0, lbl_805A9AD8@sda21(r13) +/* 803AAAAC 003A7A0C 3D 20 80 56 */ lis r9, lbl_8055EC60@ha +/* 803AAAB0 003A7A10 7C BD 2B 78 */ mr r29, r5 +/* 803AAAB4 003A7A14 7C DE 33 78 */ mr r30, r6 +/* 803AAAB8 003A7A18 7C 7C 1B 78 */ mr r28, r3 +/* 803AAABC 003A7A1C 39 29 EC 60 */ addi r9, r9, lbl_8055EC60@l +/* 803AAAC0 003A7A20 7D 1F 43 78 */ mr r31, r8 +/* 803AAAC4 003A7A24 54 65 04 3E */ clrlwi r5, r3, 0x10 +/* 803AAAC8 003A7A28 38 C0 00 00 */ li r6, 0 +/* 803AAACC 003A7A2C 7C 09 03 A6 */ mtctr r0 +/* 803AAAD0 003A7A30 2C 00 00 00 */ cmpwi r0, 0 +/* 803AAAD4 003A7A34 40 81 00 F0 */ ble lbl_803AABC4 +lbl_803AAAD8: +/* 803AAAD8 003A7A38 80 69 00 00 */ lwz r3, 0(r9) +/* 803AAADC 003A7A3C A0 03 00 04 */ lhz r0, 4(r3) +/* 803AAAE0 003A7A40 7C 05 00 40 */ cmplw r5, r0 +/* 803AAAE4 003A7A44 40 82 00 D4 */ bne lbl_803AABB8 +/* 803AAAE8 003A7A48 1C A6 00 0C */ mulli r5, r6, 0xc +/* 803AAAEC 003A7A4C 3C 60 80 56 */ lis r3, lbl_8055EC60@ha +/* 803AAAF0 003A7A50 38 63 EC 60 */ addi r3, r3, lbl_8055EC60@l +/* 803AAAF4 003A7A54 7C C3 28 2E */ lwzx r6, r3, r5 +/* 803AAAF8 003A7A58 A0 06 00 06 */ lhz r0, 6(r6) +/* 803AAAFC 003A7A5C 28 00 00 00 */ cmplwi r0, 0 +/* 803AAB00 003A7A60 40 82 00 B0 */ bne lbl_803AABB0 +/* 803AAB04 003A7A64 7C 63 2A 14 */ add r3, r3, r5 +/* 803AAB08 003A7A68 80 A6 00 1C */ lwz r5, 0x1c(r6) +/* 803AAB0C 003A7A6C 81 03 00 08 */ lwz r8, 8(r3) +/* 803AAB10 003A7A70 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803AAB14 003A7A74 80 86 00 20 */ lwz r4, 0x20(r6) +/* 803AAB18 003A7A78 80 66 00 24 */ lwz r3, 0x24(r6) +/* 803AAB1C 003A7A7C 7F 68 2A 14 */ add r27, r8, r5 +/* 803AAB20 003A7A80 7F 48 22 14 */ add r26, r8, r4 +/* 803AAB24 003A7A84 7F 28 1A 14 */ add r25, r8, r3 +/* 803AAB28 003A7A88 48 00 00 74 */ b lbl_803AAB9C +lbl_803AAB2C: +/* 803AAB2C 003A7A8C 7C 03 00 40 */ cmplw r3, r0 +/* 803AAB30 003A7A90 40 82 00 68 */ bne lbl_803AAB98 +/* 803AAB34 003A7A94 54 E0 06 3F */ clrlwi. r0, r7, 0x18 +/* 803AAB38 003A7A98 41 82 00 2C */ beq lbl_803AAB64 +/* 803AAB3C 003A7A9C 7F 63 DB 78 */ mr r3, r27 +/* 803AAB40 003A7AA0 7F 44 D3 78 */ mr r4, r26 +/* 803AAB44 003A7AA4 7F 25 CB 78 */ mr r5, r25 +/* 803AAB48 003A7AA8 7F A6 EB 78 */ mr r6, r29 +/* 803AAB4C 003A7AAC 7F C7 F3 78 */ mr r7, r30 +/* 803AAB50 003A7AB0 7F E8 FB 78 */ mr r8, r31 +/* 803AAB54 003A7AB4 7F 89 E3 78 */ mr r9, r28 +/* 803AAB58 003A7AB8 4B FE A2 41 */ bl sub_80394d98 +/* 803AAB5C 003A7ABC 7C 79 1B 78 */ mr r25, r3 +/* 803AAB60 003A7AC0 48 00 00 30 */ b lbl_803AAB90 +lbl_803AAB64: +/* 803AAB64 003A7AC4 48 00 A5 59 */ bl hwDisableIrq +/* 803AAB68 003A7AC8 7F 63 DB 78 */ mr r3, r27 +/* 803AAB6C 003A7ACC 7F 44 D3 78 */ mr r4, r26 +/* 803AAB70 003A7AD0 7F 25 CB 78 */ mr r5, r25 +/* 803AAB74 003A7AD4 7F A6 EB 78 */ mr r6, r29 +/* 803AAB78 003A7AD8 7F C7 F3 78 */ mr r7, r30 +/* 803AAB7C 003A7ADC 7F E8 FB 78 */ mr r8, r31 +/* 803AAB80 003A7AE0 7F 89 E3 78 */ mr r9, r28 +/* 803AAB84 003A7AE4 4B FE A2 15 */ bl sub_80394d98 +/* 803AAB88 003A7AE8 7C 79 1B 78 */ mr r25, r3 +/* 803AAB8C 003A7AEC 48 00 A4 F9 */ bl hwEnableIrq +lbl_803AAB90: +/* 803AAB90 003A7AF0 7F 23 CB 78 */ mr r3, r25 +/* 803AAB94 003A7AF4 48 00 00 34 */ b lbl_803AABC8 +lbl_803AAB98: +/* 803AAB98 003A7AF8 3B 39 00 54 */ addi r25, r25, 0x54 +lbl_803AAB9C: +/* 803AAB9C 003A7AFC A0 79 00 00 */ lhz r3, 0(r25) +/* 803AABA0 003A7B00 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AABA4 003A7B04 40 82 FF 88 */ bne lbl_803AAB2C +/* 803AABA8 003A7B08 38 60 FF FF */ li r3, -1 +/* 803AABAC 003A7B0C 48 00 00 1C */ b lbl_803AABC8 +lbl_803AABB0: +/* 803AABB0 003A7B10 38 60 FF FF */ li r3, -1 +/* 803AABB4 003A7B14 48 00 00 14 */ b lbl_803AABC8 +lbl_803AABB8: +/* 803AABB8 003A7B18 39 29 00 0C */ addi r9, r9, 0xc +/* 803AABBC 003A7B1C 38 C6 00 01 */ addi r6, r6, 1 +/* 803AABC0 003A7B20 42 00 FF 18 */ bdnz lbl_803AAAD8 +lbl_803AABC4: +/* 803AABC4 003A7B24 38 60 FF FF */ li r3, -1 +lbl_803AABC8: +/* 803AABC8 003A7B28 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AABCC 003A7B2C 4B FD EE F5 */ bl _restgpr_25 +/* 803AABD0 003A7B30 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803AABD4 003A7B34 7C 08 03 A6 */ mtlr r0 +/* 803AABD8 003A7B38 38 21 00 30 */ addi r1, r1, 0x30 +/* 803AABDC 003A7B3C 4E 80 00 20 */ blr + +.global sndSeqPlayEx +sndSeqPlayEx: +/* 803AABE0 003A7B40 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803AABE4 003A7B44 7C 08 02 A6 */ mflr r0 +/* 803AABE8 003A7B48 90 01 00 34 */ stw r0, 0x34(r1) +/* 803AABEC 003A7B4C 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AABF0 003A7B50 4B FD EE 85 */ bl func_80389A74 +/* 803AABF4 003A7B54 A8 0D AF 18 */ lha r0, lbl_805A9AD8@sda21(r13) +/* 803AABF8 003A7B58 3D 00 80 56 */ lis r8, lbl_8055EC60@ha +/* 803AABFC 003A7B5C 7C BD 2B 78 */ mr r29, r5 +/* 803AAC00 003A7B60 7C DE 33 78 */ mr r30, r6 +/* 803AAC04 003A7B64 7C 7C 1B 78 */ mr r28, r3 +/* 803AAC08 003A7B68 39 08 EC 60 */ addi r8, r8, lbl_8055EC60@l +/* 803AAC0C 003A7B6C 7C FF 3B 78 */ mr r31, r7 +/* 803AAC10 003A7B70 54 65 04 3E */ clrlwi r5, r3, 0x10 +/* 803AAC14 003A7B74 38 C0 00 00 */ li r6, 0 +/* 803AAC18 003A7B78 7C 09 03 A6 */ mtctr r0 +/* 803AAC1C 003A7B7C 2C 00 00 00 */ cmpwi r0, 0 +/* 803AAC20 003A7B80 40 81 00 BC */ ble lbl_803AACDC +lbl_803AAC24: +/* 803AAC24 003A7B84 80 68 00 00 */ lwz r3, 0(r8) +/* 803AAC28 003A7B88 A0 03 00 04 */ lhz r0, 4(r3) +/* 803AAC2C 003A7B8C 7C 05 00 40 */ cmplw r5, r0 +/* 803AAC30 003A7B90 40 82 00 A0 */ bne lbl_803AACD0 +/* 803AAC34 003A7B94 1C A6 00 0C */ mulli r5, r6, 0xc +/* 803AAC38 003A7B98 3C 60 80 56 */ lis r3, lbl_8055EC60@ha +/* 803AAC3C 003A7B9C 38 63 EC 60 */ addi r3, r3, lbl_8055EC60@l +/* 803AAC40 003A7BA0 7C C3 28 2E */ lwzx r6, r3, r5 +/* 803AAC44 003A7BA4 A0 06 00 06 */ lhz r0, 6(r6) +/* 803AAC48 003A7BA8 28 00 00 00 */ cmplwi r0, 0 +/* 803AAC4C 003A7BAC 40 82 00 7C */ bne lbl_803AACC8 +/* 803AAC50 003A7BB0 7C 63 2A 14 */ add r3, r3, r5 +/* 803AAC54 003A7BB4 80 A6 00 1C */ lwz r5, 0x1c(r6) +/* 803AAC58 003A7BB8 80 E3 00 08 */ lwz r7, 8(r3) +/* 803AAC5C 003A7BBC 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803AAC60 003A7BC0 80 86 00 20 */ lwz r4, 0x20(r6) +/* 803AAC64 003A7BC4 80 66 00 24 */ lwz r3, 0x24(r6) +/* 803AAC68 003A7BC8 7F 27 2A 14 */ add r25, r7, r5 +/* 803AAC6C 003A7BCC 7F 47 22 14 */ add r26, r7, r4 +/* 803AAC70 003A7BD0 7F 67 1A 14 */ add r27, r7, r3 +/* 803AAC74 003A7BD4 48 00 00 40 */ b lbl_803AACB4 +lbl_803AAC78: +/* 803AAC78 003A7BD8 7C 03 00 40 */ cmplw r3, r0 +/* 803AAC7C 003A7BDC 40 82 00 34 */ bne lbl_803AACB0 +/* 803AAC80 003A7BE0 48 00 A4 3D */ bl hwDisableIrq +/* 803AAC84 003A7BE4 7F 23 CB 78 */ mr r3, r25 +/* 803AAC88 003A7BE8 7F 44 D3 78 */ mr r4, r26 +/* 803AAC8C 003A7BEC 7F 65 DB 78 */ mr r5, r27 +/* 803AAC90 003A7BF0 7F A6 EB 78 */ mr r6, r29 +/* 803AAC94 003A7BF4 7F C7 F3 78 */ mr r7, r30 +/* 803AAC98 003A7BF8 7F E8 FB 78 */ mr r8, r31 +/* 803AAC9C 003A7BFC 7F 89 E3 78 */ mr r9, r28 +/* 803AACA0 003A7C00 4B FE A0 F9 */ bl sub_80394d98 +/* 803AACA4 003A7C04 7C 7C 1B 78 */ mr r28, r3 +/* 803AACA8 003A7C08 48 00 A3 DD */ bl hwEnableIrq +/* 803AACAC 003A7C0C 48 00 00 34 */ b lbl_803AACE0 +lbl_803AACB0: +/* 803AACB0 003A7C10 3B 7B 00 54 */ addi r27, r27, 0x54 +lbl_803AACB4: +/* 803AACB4 003A7C14 A0 7B 00 00 */ lhz r3, 0(r27) +/* 803AACB8 003A7C18 28 03 FF FF */ cmplwi r3, 0xffff +/* 803AACBC 003A7C1C 40 82 FF BC */ bne lbl_803AAC78 +/* 803AACC0 003A7C20 3B 80 FF FF */ li r28, -1 +/* 803AACC4 003A7C24 48 00 00 1C */ b lbl_803AACE0 +lbl_803AACC8: +/* 803AACC8 003A7C28 3B 80 FF FF */ li r28, -1 +/* 803AACCC 003A7C2C 48 00 00 14 */ b lbl_803AACE0 +lbl_803AACD0: +/* 803AACD0 003A7C30 39 08 00 0C */ addi r8, r8, 0xc +/* 803AACD4 003A7C34 38 C6 00 01 */ addi r6, r6, 1 +/* 803AACD8 003A7C38 42 00 FF 4C */ bdnz lbl_803AAC24 +lbl_803AACDC: +/* 803AACDC 003A7C3C 3B 80 FF FF */ li r28, -1 +lbl_803AACE0: +/* 803AACE0 003A7C40 7F 83 E3 78 */ mr r3, r28 +/* 803AACE4 003A7C44 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AACE8 003A7C48 4B FD ED D9 */ bl _restgpr_25 +/* 803AACEC 003A7C4C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803AACF0 003A7C50 7C 08 03 A6 */ mtlr r0 +/* 803AACF4 003A7C54 38 21 00 30 */ addi r1, r1, 0x30 +/* 803AACF8 003A7C58 4E 80 00 20 */ blr diff --git a/asm/musyx/seq.s b/asm/musyx/seq.s new file mode 100644 index 00000000..f71128e6 --- /dev/null +++ b/asm/musyx/seq.s @@ -0,0 +1,4633 @@ +.include "macros.inc" + +.section .text, "ax" + +.global seqGetPrivateId +seqGetPrivateId: +/* 80394D30 00391C90 7C 65 1B 78 */ mr r5, r3 +/* 80394D34 00391C94 80 8D AE 44 */ lwz r4, lbl_805A9A04@sda21(r13) +/* 80394D38 00391C98 54 63 00 7E */ clrlwi r3, r3, 1 +/* 80394D3C 00391C9C 48 00 00 20 */ b lbl_80394D5C +lbl_80394D40: +/* 80394D40 00391CA0 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80394D44 00391CA4 7C 00 18 40 */ cmplw r0, r3 +/* 80394D48 00391CA8 40 82 00 10 */ bne lbl_80394D58 +/* 80394D4C 00391CAC 88 64 00 09 */ lbz r3, 9(r4) +/* 80394D50 00391CB0 50 A3 00 00 */ rlwimi r3, r5, 0, 0, 0 +/* 80394D54 00391CB4 4E 80 00 20 */ blr +lbl_80394D58: +/* 80394D58 00391CB8 80 84 00 00 */ lwz r4, 0(r4) +lbl_80394D5C: +/* 80394D5C 00391CBC 28 04 00 00 */ cmplwi r4, 0 +/* 80394D60 00391CC0 40 82 FF E0 */ bne lbl_80394D40 +/* 80394D64 00391CC4 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80394D68 00391CC8 48 00 00 20 */ b lbl_80394D88 +lbl_80394D6C: +/* 80394D6C 00391CCC 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80394D70 00391CD0 7C 00 18 40 */ cmplw r0, r3 +/* 80394D74 00391CD4 40 82 00 10 */ bne lbl_80394D84 +/* 80394D78 00391CD8 88 64 00 09 */ lbz r3, 9(r4) +/* 80394D7C 00391CDC 50 A3 00 00 */ rlwimi r3, r5, 0, 0, 0 +/* 80394D80 00391CE0 4E 80 00 20 */ blr +lbl_80394D84: +/* 80394D84 00391CE4 80 84 00 00 */ lwz r4, 0(r4) +lbl_80394D88: +/* 80394D88 00391CE8 28 04 00 00 */ cmplwi r4, 0 +/* 80394D8C 00391CEC 40 82 FF E0 */ bne lbl_80394D6C +/* 80394D90 00391CF0 38 60 FF FF */ li r3, -1 +/* 80394D94 00391CF4 4E 80 00 20 */ blr + +.global sub_80394d98 +sub_80394d98: +/* 80394D98 00391CF8 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 80394D9C 00391CFC 7C 08 02 A6 */ mflr r0 +/* 80394DA0 00391D00 90 01 00 44 */ stw r0, 0x44(r1) +/* 80394DA4 00391D04 39 61 00 40 */ addi r11, r1, 0x40 +/* 80394DA8 00391D08 4B FF 4C B9 */ bl func_80389A60 +/* 80394DAC 00391D0C 83 6D AE 3C */ lwz r27, lbl_805A99FC@sda21(r13) +/* 80394DB0 00391D10 7C BD 2B 78 */ mr r29, r5 +/* 80394DB4 00391D14 7C DC 33 78 */ mr r28, r6 +/* 80394DB8 00391D18 7C F9 3B 78 */ mr r25, r7 +/* 80394DBC 00391D1C 28 1B 00 00 */ cmplwi r27, 0 +/* 80394DC0 00391D20 40 82 00 0C */ bne lbl_80394DCC +/* 80394DC4 00391D24 38 60 FF FF */ li r3, -1 +/* 80394DC8 00391D28 48 00 0A 7C */ b lbl_80395844 +lbl_80394DCC: +/* 80394DCC 00391D2C 80 BB 00 00 */ lwz r5, 0(r27) +/* 80394DD0 00391D30 28 05 00 00 */ cmplwi r5, 0 +/* 80394DD4 00391D34 90 AD AE 3C */ stw r5, lbl_805A99FC@sda21(r13) +/* 80394DD8 00391D38 41 82 00 0C */ beq lbl_80394DE4 +/* 80394DDC 00391D3C 38 00 00 00 */ li r0, 0 +/* 80394DE0 00391D40 90 05 00 04 */ stw r0, 4(r5) +lbl_80394DE4: +/* 80394DE4 00391D44 80 0D AE 44 */ lwz r0, lbl_805A9A04@sda21(r13) +/* 80394DE8 00391D48 28 00 00 00 */ cmplwi r0, 0 +/* 80394DEC 00391D4C 90 1B 00 00 */ stw r0, 0(r27) +/* 80394DF0 00391D50 41 82 00 0C */ beq lbl_80394DFC +/* 80394DF4 00391D54 80 AD AE 44 */ lwz r5, lbl_805A9A04@sda21(r13) +/* 80394DF8 00391D58 93 65 00 04 */ stw r27, 4(r5) +lbl_80394DFC: +/* 80394DFC 00391D5C 38 A0 00 00 */ li r5, 0 +/* 80394E00 00391D60 38 00 00 00 */ li r0, 0 +/* 80394E04 00391D64 90 BB 00 04 */ stw r5, 4(r27) +/* 80394E08 00391D68 2C 00 00 10 */ cmpwi r0, 0x10 +/* 80394E0C 00391D6C 38 00 00 01 */ li r0, 1 +/* 80394E10 00391D70 93 6D AE 44 */ stw r27, lbl_805A9A04@sda21(r13) +/* 80394E14 00391D74 98 1B 00 08 */ stb r0, 8(r27) +/* 80394E18 00391D78 40 80 00 44 */ bge lbl_80394E5C +/* 80394E1C 00391D7C 90 BB 15 04 */ stw r5, 0x1504(r27) +/* 80394E20 00391D80 90 BB 15 3C */ stw r5, 0x153c(r27) +/* 80394E24 00391D84 90 BB 15 74 */ stw r5, 0x1574(r27) +/* 80394E28 00391D88 90 BB 15 AC */ stw r5, 0x15ac(r27) +/* 80394E2C 00391D8C 90 BB 15 E4 */ stw r5, 0x15e4(r27) +/* 80394E30 00391D90 90 BB 16 1C */ stw r5, 0x161c(r27) +/* 80394E34 00391D94 90 BB 16 54 */ stw r5, 0x1654(r27) +/* 80394E38 00391D98 90 BB 16 8C */ stw r5, 0x168c(r27) +/* 80394E3C 00391D9C 90 BB 16 C4 */ stw r5, 0x16c4(r27) +/* 80394E40 00391DA0 90 BB 16 FC */ stw r5, 0x16fc(r27) +/* 80394E44 00391DA4 90 BB 17 34 */ stw r5, 0x1734(r27) +/* 80394E48 00391DA8 90 BB 17 6C */ stw r5, 0x176c(r27) +/* 80394E4C 00391DAC 90 BB 17 A4 */ stw r5, 0x17a4(r27) +/* 80394E50 00391DB0 90 BB 17 DC */ stw r5, 0x17dc(r27) +/* 80394E54 00391DB4 90 BB 18 14 */ stw r5, 0x1814(r27) +/* 80394E58 00391DB8 90 BB 18 4C */ stw r5, 0x184c(r27) +lbl_80394E5C: +/* 80394E5C 00391DBC 8B 5B 00 09 */ lbz r26, 9(r27) +/* 80394E60 00391DC0 38 A0 00 00 */ li r5, 0 +/* 80394E64 00391DC4 98 BB 0E E0 */ stb r5, 0xee0(r27) +/* 80394E68 00391DC8 90 7B 00 10 */ stw r3, 0x10(r27) +/* 80394E6C 00391DCC 90 9B 00 94 */ stw r4, 0x94(r27) +/* 80394E70 00391DD0 93 9B 01 18 */ stw r28, 0x118(r27) +/* 80394E74 00391DD4 B1 3B 00 0A */ sth r9, 0xa(r27) +/* 80394E78 00391DD8 80 7B 00 10 */ lwz r3, 0x10(r27) +/* 80394E7C 00391DDC 48 00 00 88 */ b lbl_80394F04 +lbl_80394E80: +/* 80394E80 00391DE0 54 A6 06 3E */ clrlwi r6, r5, 0x18 +/* 80394E84 00391DE4 38 85 00 01 */ addi r4, r5, 1 +/* 80394E88 00391DE8 38 C6 00 14 */ addi r6, r6, 0x14 +/* 80394E8C 00391DEC 38 00 00 FF */ li r0, 0xff +/* 80394E90 00391DF0 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 80394E94 00391DF4 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394E98 00391DF8 38 C4 00 14 */ addi r6, r4, 0x14 +/* 80394E9C 00391DFC 38 85 00 02 */ addi r4, r5, 2 +/* 80394EA0 00391E00 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394EA4 00391E04 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 80394EA8 00391E08 38 C4 00 14 */ addi r6, r4, 0x14 +/* 80394EAC 00391E0C 38 85 00 03 */ addi r4, r5, 3 +/* 80394EB0 00391E10 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394EB4 00391E14 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 80394EB8 00391E18 38 C4 00 14 */ addi r6, r4, 0x14 +/* 80394EBC 00391E1C 38 85 00 04 */ addi r4, r5, 4 +/* 80394EC0 00391E20 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394EC4 00391E24 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 80394EC8 00391E28 38 C4 00 14 */ addi r6, r4, 0x14 +/* 80394ECC 00391E2C 38 85 00 05 */ addi r4, r5, 5 +/* 80394ED0 00391E30 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394ED4 00391E34 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 80394ED8 00391E38 38 E4 00 14 */ addi r7, r4, 0x14 +/* 80394EDC 00391E3C 38 85 00 06 */ addi r4, r5, 6 +/* 80394EE0 00391E40 7C 1B 39 AE */ stbx r0, r27, r7 +/* 80394EE4 00391E44 54 86 06 3E */ clrlwi r6, r4, 0x18 +/* 80394EE8 00391E48 38 85 00 07 */ addi r4, r5, 7 +/* 80394EEC 00391E4C 38 A5 00 08 */ addi r5, r5, 8 +/* 80394EF0 00391E50 38 C6 00 14 */ addi r6, r6, 0x14 +/* 80394EF4 00391E54 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 80394EF8 00391E58 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394EFC 00391E5C 38 84 00 14 */ addi r4, r4, 0x14 +/* 80394F00 00391E60 7C 1B 21 AE */ stbx r0, r27, r4 +lbl_80394F04: +/* 80394F04 00391E64 54 A0 06 3E */ clrlwi r0, r5, 0x18 +/* 80394F08 00391E68 28 00 00 80 */ cmplwi r0, 0x80 +/* 80394F0C 00391E6C 41 80 FF 74 */ blt lbl_80394E80 +/* 80394F10 00391E70 38 A0 00 00 */ li r5, 0 +/* 80394F14 00391E74 48 00 00 14 */ b lbl_80394F28 +lbl_80394F18: +/* 80394F18 00391E78 38 04 00 14 */ addi r0, r4, 0x14 +/* 80394F1C 00391E7C 38 63 00 06 */ addi r3, r3, 6 +/* 80394F20 00391E80 7C BB 01 AE */ stbx r5, r27, r0 +/* 80394F24 00391E84 38 A5 00 01 */ addi r5, r5, 1 +lbl_80394F28: +/* 80394F28 00391E88 88 83 00 04 */ lbz r4, 4(r3) +/* 80394F2C 00391E8C 28 04 00 FF */ cmplwi r4, 0xff +/* 80394F30 00391E90 40 82 FF E8 */ bne lbl_80394F18 +/* 80394F34 00391E94 80 9B 00 94 */ lwz r4, 0x94(r27) +/* 80394F38 00391E98 38 60 00 00 */ li r3, 0 +/* 80394F3C 00391E9C 48 00 00 88 */ b lbl_80394FC4 +lbl_80394F40: +/* 80394F40 00391EA0 54 66 06 3E */ clrlwi r6, r3, 0x18 +/* 80394F44 00391EA4 38 A3 00 01 */ addi r5, r3, 1 +/* 80394F48 00391EA8 38 C6 00 98 */ addi r6, r6, 0x98 +/* 80394F4C 00391EAC 38 00 00 FF */ li r0, 0xff +/* 80394F50 00391EB0 54 A5 06 3E */ clrlwi r5, r5, 0x18 +/* 80394F54 00391EB4 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394F58 00391EB8 38 C5 00 98 */ addi r6, r5, 0x98 +/* 80394F5C 00391EBC 38 A3 00 02 */ addi r5, r3, 2 +/* 80394F60 00391EC0 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394F64 00391EC4 54 A5 06 3E */ clrlwi r5, r5, 0x18 +/* 80394F68 00391EC8 38 C5 00 98 */ addi r6, r5, 0x98 +/* 80394F6C 00391ECC 38 A3 00 03 */ addi r5, r3, 3 +/* 80394F70 00391ED0 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394F74 00391ED4 54 A5 06 3E */ clrlwi r5, r5, 0x18 +/* 80394F78 00391ED8 38 C5 00 98 */ addi r6, r5, 0x98 +/* 80394F7C 00391EDC 38 A3 00 04 */ addi r5, r3, 4 +/* 80394F80 00391EE0 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394F84 00391EE4 54 A5 06 3E */ clrlwi r5, r5, 0x18 +/* 80394F88 00391EE8 38 C5 00 98 */ addi r6, r5, 0x98 +/* 80394F8C 00391EEC 38 A3 00 05 */ addi r5, r3, 5 +/* 80394F90 00391EF0 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394F94 00391EF4 54 A5 06 3E */ clrlwi r5, r5, 0x18 +/* 80394F98 00391EF8 38 E5 00 98 */ addi r7, r5, 0x98 +/* 80394F9C 00391EFC 38 A3 00 06 */ addi r5, r3, 6 +/* 80394FA0 00391F00 7C 1B 39 AE */ stbx r0, r27, r7 +/* 80394FA4 00391F04 54 A6 06 3E */ clrlwi r6, r5, 0x18 +/* 80394FA8 00391F08 38 A3 00 07 */ addi r5, r3, 7 +/* 80394FAC 00391F0C 38 63 00 08 */ addi r3, r3, 8 +/* 80394FB0 00391F10 38 C6 00 98 */ addi r6, r6, 0x98 +/* 80394FB4 00391F14 54 A5 06 3E */ clrlwi r5, r5, 0x18 +/* 80394FB8 00391F18 7C 1B 31 AE */ stbx r0, r27, r6 +/* 80394FBC 00391F1C 38 A5 00 98 */ addi r5, r5, 0x98 +/* 80394FC0 00391F20 7C 1B 29 AE */ stbx r0, r27, r5 +lbl_80394FC4: +/* 80394FC4 00391F24 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 80394FC8 00391F28 28 00 00 80 */ cmplwi r0, 0x80 +/* 80394FCC 00391F2C 41 80 FF 74 */ blt lbl_80394F40 +/* 80394FD0 00391F30 38 A0 00 00 */ li r5, 0 +/* 80394FD4 00391F34 48 00 00 14 */ b lbl_80394FE8 +lbl_80394FD8: +/* 80394FD8 00391F38 38 03 00 98 */ addi r0, r3, 0x98 +/* 80394FDC 00391F3C 38 84 00 06 */ addi r4, r4, 6 +/* 80394FE0 00391F40 7C BB 01 AE */ stbx r5, r27, r0 +/* 80394FE4 00391F44 38 A5 00 01 */ addi r5, r5, 1 +lbl_80394FE8: +/* 80394FE8 00391F48 88 64 00 04 */ lbz r3, 4(r4) +/* 80394FEC 00391F4C 28 03 00 FF */ cmplwi r3, 0xff +/* 80394FF0 00391F50 40 82 FF E8 */ bne lbl_80394FD8 +/* 80394FF4 00391F54 38 80 00 00 */ li r4, 0 +/* 80394FF8 00391F58 38 1A 00 17 */ addi r0, r26, 0x17 +/* 80394FFC 00391F5C 2C 04 00 40 */ cmpwi r4, 0x40 +/* 80395000 00391F60 98 1B 0E B0 */ stb r0, 0xeb0(r27) +/* 80395004 00391F64 40 80 00 A4 */ bge lbl_803950A8 +/* 80395008 00391F68 38 00 00 04 */ li r0, 4 +/* 8039500C 00391F6C 7C 09 03 A6 */ mtctr r0 +lbl_80395010: +/* 80395010 00391F70 38 64 03 24 */ addi r3, r4, 0x324 +/* 80395014 00391F74 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395018 00391F78 7C 7B 1A 14 */ add r3, r27, r3 +/* 8039501C 00391F7C 98 03 00 00 */ stb r0, 0(r3) +/* 80395020 00391F80 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395024 00391F84 98 03 00 01 */ stb r0, 1(r3) +/* 80395028 00391F88 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 8039502C 00391F8C 98 03 00 02 */ stb r0, 2(r3) +/* 80395030 00391F90 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395034 00391F94 98 03 00 03 */ stb r0, 3(r3) +/* 80395038 00391F98 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 8039503C 00391F9C 98 03 00 04 */ stb r0, 4(r3) +/* 80395040 00391FA0 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395044 00391FA4 98 03 00 05 */ stb r0, 5(r3) +/* 80395048 00391FA8 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 8039504C 00391FAC 98 03 00 06 */ stb r0, 6(r3) +/* 80395050 00391FB0 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395054 00391FB4 98 03 00 07 */ stb r0, 7(r3) +/* 80395058 00391FB8 38 64 03 2C */ addi r3, r4, 0x32c +/* 8039505C 00391FBC 7C 7B 1A 14 */ add r3, r27, r3 +/* 80395060 00391FC0 38 84 00 10 */ addi r4, r4, 0x10 +/* 80395064 00391FC4 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395068 00391FC8 98 03 00 00 */ stb r0, 0(r3) +/* 8039506C 00391FCC 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395070 00391FD0 98 03 00 01 */ stb r0, 1(r3) +/* 80395074 00391FD4 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395078 00391FD8 98 03 00 02 */ stb r0, 2(r3) +/* 8039507C 00391FDC 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395080 00391FE0 98 03 00 03 */ stb r0, 3(r3) +/* 80395084 00391FE4 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395088 00391FE8 98 03 00 04 */ stb r0, 4(r3) +/* 8039508C 00391FEC 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395090 00391FF0 98 03 00 05 */ stb r0, 5(r3) +/* 80395094 00391FF4 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 80395098 00391FF8 98 03 00 06 */ stb r0, 6(r3) +/* 8039509C 00391FFC 88 1B 0E B0 */ lbz r0, 0xeb0(r27) +/* 803950A0 00392000 98 03 00 07 */ stb r0, 7(r3) +/* 803950A4 00392004 42 00 FF 6C */ bdnz lbl_80395010 +lbl_803950A8: +/* 803950A8 00392008 28 19 00 00 */ cmplwi r25, 0 +/* 803950AC 0039200C 99 1B 0E E1 */ stb r8, 0xee1(r27) +/* 803950B0 00392010 40 82 00 7C */ bne lbl_8039512C +/* 803950B4 00392014 38 00 FF FF */ li r0, -1 +/* 803950B8 00392018 38 60 00 00 */ li r3, 0 +/* 803950BC 0039201C 90 1B 01 1C */ stw r0, 0x11c(r27) +/* 803950C0 00392020 2C 03 00 10 */ cmpwi r3, 0x10 +/* 803950C4 00392024 90 1B 01 20 */ stw r0, 0x120(r27) +/* 803950C8 00392028 40 80 00 48 */ bge lbl_80395110 +/* 803950CC 0039202C 38 00 01 00 */ li r0, 0x100 +/* 803950D0 00392030 B0 1B 15 1A */ sth r0, 0x151a(r27) +/* 803950D4 00392034 B0 1B 15 52 */ sth r0, 0x1552(r27) +/* 803950D8 00392038 B0 1B 15 8A */ sth r0, 0x158a(r27) +/* 803950DC 0039203C B0 1B 15 C2 */ sth r0, 0x15c2(r27) +/* 803950E0 00392040 B0 1B 15 FA */ sth r0, 0x15fa(r27) +/* 803950E4 00392044 B0 1B 16 32 */ sth r0, 0x1632(r27) +/* 803950E8 00392048 B0 1B 16 6A */ sth r0, 0x166a(r27) +/* 803950EC 0039204C B0 1B 16 A2 */ sth r0, 0x16a2(r27) +/* 803950F0 00392050 B0 1B 16 DA */ sth r0, 0x16da(r27) +/* 803950F4 00392054 B0 1B 17 12 */ sth r0, 0x1712(r27) +/* 803950F8 00392058 B0 1B 17 4A */ sth r0, 0x174a(r27) +/* 803950FC 0039205C B0 1B 17 82 */ sth r0, 0x1782(r27) +/* 80395100 00392060 B0 1B 17 BA */ sth r0, 0x17ba(r27) +/* 80395104 00392064 B0 1B 17 F2 */ sth r0, 0x17f2(r27) +/* 80395108 00392068 B0 1B 18 2A */ sth r0, 0x182a(r27) +/* 8039510C 0039206C B0 1B 18 62 */ sth r0, 0x1862(r27) +lbl_80395110: +/* 80395110 00392070 88 BB 0E B0 */ lbz r5, 0xeb0(r27) +/* 80395114 00392074 38 60 00 7F */ li r3, 0x7f +/* 80395118 00392078 38 80 00 00 */ li r4, 0 +/* 8039511C 0039207C 38 C0 00 00 */ li r6, 0 +/* 80395120 00392080 38 E0 FF FF */ li r7, -1 +/* 80395124 00392084 48 00 62 C5 */ bl synthVolume +/* 80395128 00392088 48 00 01 CC */ b lbl_803952F4 +lbl_8039512C: +/* 8039512C 0039208C 80 19 00 00 */ lwz r0, 0(r25) +/* 80395130 00392090 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 80395134 00392094 41 82 00 18 */ beq lbl_8039514C +/* 80395138 00392098 80 19 00 04 */ lwz r0, 4(r25) +/* 8039513C 0039209C 90 1B 01 1C */ stw r0, 0x11c(r27) +/* 80395140 003920A0 80 19 00 08 */ lwz r0, 8(r25) +/* 80395144 003920A4 90 1B 01 20 */ stw r0, 0x120(r27) +/* 80395148 003920A8 48 00 00 10 */ b lbl_80395158 +lbl_8039514C: +/* 8039514C 003920AC 38 00 FF FF */ li r0, -1 +/* 80395150 003920B0 90 1B 01 1C */ stw r0, 0x11c(r27) +/* 80395154 003920B4 90 1B 01 20 */ stw r0, 0x120(r27) +lbl_80395158: +/* 80395158 003920B8 80 19 00 00 */ lwz r0, 0(r25) +/* 8039515C 003920BC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 80395160 003920C0 41 82 00 94 */ beq lbl_803951F4 +/* 80395164 003920C4 38 00 00 00 */ li r0, 0 +/* 80395168 003920C8 2C 00 00 10 */ cmpwi r0, 0x10 +/* 8039516C 003920CC 40 80 00 D8 */ bge lbl_80395244 +/* 80395170 003920D0 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 80395174 003920D4 B0 1B 15 1A */ sth r0, 0x151a(r27) +/* 80395178 003920D8 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 8039517C 003920DC B0 1B 15 52 */ sth r0, 0x1552(r27) +/* 80395180 003920E0 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 80395184 003920E4 B0 1B 15 8A */ sth r0, 0x158a(r27) +/* 80395188 003920E8 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 8039518C 003920EC B0 1B 15 C2 */ sth r0, 0x15c2(r27) +/* 80395190 003920F0 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 80395194 003920F4 B0 1B 15 FA */ sth r0, 0x15fa(r27) +/* 80395198 003920F8 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 8039519C 003920FC B0 1B 16 32 */ sth r0, 0x1632(r27) +/* 803951A0 00392100 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951A4 00392104 B0 1B 16 6A */ sth r0, 0x166a(r27) +/* 803951A8 00392108 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951AC 0039210C B0 1B 16 A2 */ sth r0, 0x16a2(r27) +/* 803951B0 00392110 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951B4 00392114 B0 1B 16 DA */ sth r0, 0x16da(r27) +/* 803951B8 00392118 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951BC 0039211C B0 1B 17 12 */ sth r0, 0x1712(r27) +/* 803951C0 00392120 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951C4 00392124 B0 1B 17 4A */ sth r0, 0x174a(r27) +/* 803951C8 00392128 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951CC 0039212C B0 1B 17 82 */ sth r0, 0x1782(r27) +/* 803951D0 00392130 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951D4 00392134 B0 1B 17 BA */ sth r0, 0x17ba(r27) +/* 803951D8 00392138 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951DC 0039213C B0 1B 17 F2 */ sth r0, 0x17f2(r27) +/* 803951E0 00392140 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951E4 00392144 B0 1B 18 2A */ sth r0, 0x182a(r27) +/* 803951E8 00392148 A0 19 00 0C */ lhz r0, 0xc(r25) +/* 803951EC 0039214C B0 1B 18 62 */ sth r0, 0x1862(r27) +/* 803951F0 00392150 48 00 00 54 */ b lbl_80395244 +lbl_803951F4: +/* 803951F4 00392154 38 00 00 00 */ li r0, 0 +/* 803951F8 00392158 2C 00 00 10 */ cmpwi r0, 0x10 +/* 803951FC 0039215C 40 80 00 48 */ bge lbl_80395244 +/* 80395200 00392160 38 00 01 00 */ li r0, 0x100 +/* 80395204 00392164 B0 1B 15 1A */ sth r0, 0x151a(r27) +/* 80395208 00392168 B0 1B 15 52 */ sth r0, 0x1552(r27) +/* 8039520C 0039216C B0 1B 15 8A */ sth r0, 0x158a(r27) +/* 80395210 00392170 B0 1B 15 C2 */ sth r0, 0x15c2(r27) +/* 80395214 00392174 B0 1B 15 FA */ sth r0, 0x15fa(r27) +/* 80395218 00392178 B0 1B 16 32 */ sth r0, 0x1632(r27) +/* 8039521C 0039217C B0 1B 16 6A */ sth r0, 0x166a(r27) +/* 80395220 00392180 B0 1B 16 A2 */ sth r0, 0x16a2(r27) +/* 80395224 00392184 B0 1B 16 DA */ sth r0, 0x16da(r27) +/* 80395228 00392188 B0 1B 17 12 */ sth r0, 0x1712(r27) +/* 8039522C 0039218C B0 1B 17 4A */ sth r0, 0x174a(r27) +/* 80395230 00392190 B0 1B 17 82 */ sth r0, 0x1782(r27) +/* 80395234 00392194 B0 1B 17 BA */ sth r0, 0x17ba(r27) +/* 80395238 00392198 B0 1B 17 F2 */ sth r0, 0x17f2(r27) +/* 8039523C 0039219C B0 1B 18 2A */ sth r0, 0x182a(r27) +/* 80395240 003921A0 B0 1B 18 62 */ sth r0, 0x1862(r27) +lbl_80395244: +/* 80395244 003921A4 80 19 00 00 */ lwz r0, 0(r25) +/* 80395248 003921A8 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c +/* 8039524C 003921AC 41 82 00 50 */ beq lbl_8039529C +/* 80395250 003921B0 3A A0 00 00 */ li r21, 0 +/* 80395254 003921B4 7E B8 AB 78 */ mr r24, r21 +/* 80395258 003921B8 48 00 00 38 */ b lbl_80395290 +lbl_8039525C: +/* 8039525C 003921BC 80 79 00 14 */ lwz r3, 0x14(r25) +/* 80395260 003921C0 38 18 00 01 */ addi r0, r24, 1 +/* 80395264 003921C4 38 80 00 00 */ li r4, 0 +/* 80395268 003921C8 7C A3 C2 14 */ add r5, r3, r24 +/* 8039526C 003921CC 88 65 00 00 */ lbz r3, 0(r5) +/* 80395270 003921D0 88 A5 00 01 */ lbz r5, 1(r5) +/* 80395274 003921D4 38 63 03 24 */ addi r3, r3, 0x324 +/* 80395278 003921D8 7C BB 19 AE */ stbx r5, r27, r3 +/* 8039527C 003921DC 80 79 00 14 */ lwz r3, 0x14(r25) +/* 80395280 003921E0 7C 63 00 AE */ lbzx r3, r3, r0 +/* 80395284 003921E4 48 00 66 E9 */ bl synthSetMusicVolumeType +/* 80395288 003921E8 3B 18 00 02 */ addi r24, r24, 2 +/* 8039528C 003921EC 3A B5 00 01 */ addi r21, r21, 1 +lbl_80395290: +/* 80395290 003921F0 88 19 00 12 */ lbz r0, 0x12(r25) +/* 80395294 003921F4 7C 15 00 00 */ cmpw r21, r0 +/* 80395298 003921F8 41 80 FF C4 */ blt lbl_8039525C +lbl_8039529C: +/* 8039529C 003921FC 80 19 00 00 */ lwz r0, 0(r25) +/* 803952A0 00392200 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803952A4 00392204 41 82 00 50 */ beq lbl_803952F4 +/* 803952A8 00392208 88 79 00 10 */ lbz r3, 0x10(r25) +/* 803952AC 0039220C 38 C0 00 00 */ li r6, 0 +/* 803952B0 00392210 A0 99 00 0E */ lhz r4, 0xe(r25) +/* 803952B4 00392214 38 E0 FF FF */ li r7, -1 +/* 803952B8 00392218 88 BB 0E B0 */ lbz r5, 0xeb0(r27) +/* 803952BC 0039221C 48 00 61 2D */ bl synthVolume +/* 803952C0 00392220 3A A0 00 00 */ li r21, 0 +/* 803952C4 00392224 48 00 00 24 */ b lbl_803952E8 +lbl_803952C8: +/* 803952C8 00392228 80 B9 00 1C */ lwz r5, 0x1c(r25) +/* 803952CC 0039222C 38 C0 00 00 */ li r6, 0 +/* 803952D0 00392230 88 79 00 10 */ lbz r3, 0x10(r25) +/* 803952D4 00392234 38 E0 FF FF */ li r7, -1 +/* 803952D8 00392238 A0 99 00 0E */ lhz r4, 0xe(r25) +/* 803952DC 0039223C 7C A5 A8 AE */ lbzx r5, r5, r21 +/* 803952E0 00392240 48 00 61 09 */ bl synthVolume +/* 803952E4 00392244 3A B5 00 01 */ addi r21, r21, 1 +lbl_803952E8: +/* 803952E8 00392248 88 19 00 18 */ lbz r0, 0x18(r25) +/* 803952EC 0039224C 7C 15 00 00 */ cmpw r21, r0 +/* 803952F0 00392250 41 80 FF D8 */ blt lbl_803952C8 +lbl_803952F4: +/* 803952F4 00392254 80 1C 00 10 */ lwz r0, 0x10(r28) +/* 803952F8 00392258 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 +/* 803952FC 0039225C 41 82 00 14 */ beq lbl_80395310 +/* 80395300 00392260 80 1C 00 54 */ lwz r0, 0x54(r28) +/* 80395304 00392264 7C 00 E2 14 */ add r0, r0, r28 +/* 80395308 00392268 90 1B 14 E4 */ stw r0, 0x14e4(r27) +/* 8039530C 0039226C 48 00 00 0C */ b lbl_80395318 +lbl_80395310: +/* 80395310 00392270 38 00 00 00 */ li r0, 0 +/* 80395314 00392274 90 1B 14 E4 */ stw r0, 0x14e4(r27) +lbl_80395318: +/* 80395318 00392278 80 7C 00 10 */ lwz r3, 0x10(r28) +/* 8039531C 0039227C 54 60 00 43 */ rlwinm. r0, r3, 0, 1, 1 +/* 80395320 00392280 54 74 01 3E */ clrlwi r20, r3, 4 +/* 80395324 00392284 40 82 00 08 */ bne lbl_8039532C +/* 80395328 00392288 56 94 50 2A */ slwi r20, r20, 0xa +lbl_8039532C: +/* 8039532C 0039228C 3A A0 00 00 */ li r21, 0 +/* 80395330 00392290 7F 77 DB 78 */ mr r23, r27 +/* 80395334 00392294 7E B8 AB 78 */ mr r24, r21 +/* 80395338 00392298 56 96 B2 BE */ srwi r22, r20, 0xa +/* 8039533C 0039229C 7E BF AB 78 */ mr r31, r21 +/* 80395340 003922A0 7E BE AB 78 */ mr r30, r21 +lbl_80395344: +/* 80395344 003922A4 92 97 14 F0 */ stw r20, 0x14f0(r23) +/* 80395348 003922A8 7E C3 B3 78 */ mr r3, r22 +/* 8039534C 003922AC 7F 44 D3 78 */ mr r4, r26 +/* 80395350 003922B0 56 A5 06 3E */ clrlwi r5, r21, 0x18 +/* 80395354 003922B4 48 00 39 4D */ bl synthSetBpm +/* 80395358 003922B8 80 1C 00 0C */ lwz r0, 0xc(r28) +/* 8039535C 003922BC 28 00 00 00 */ cmplwi r0, 0 +/* 80395360 003922C0 41 82 00 18 */ beq lbl_80395378 +/* 80395364 003922C4 7C 00 E2 14 */ add r0, r0, r28 +/* 80395368 003922C8 90 17 14 E8 */ stw r0, 0x14e8(r23) +/* 8039536C 003922CC 80 17 14 E8 */ lwz r0, 0x14e8(r23) +/* 80395370 003922D0 90 17 14 EC */ stw r0, 0x14ec(r23) +/* 80395374 003922D4 48 00 00 08 */ b lbl_8039537C +lbl_80395378: +/* 80395378 003922D8 93 17 14 E8 */ stw r24, 0x14e8(r23) +lbl_8039537C: +/* 8039537C 003922DC 9B F7 15 1E */ stb r31, 0x151e(r23) +/* 80395380 003922E0 3A B5 00 01 */ addi r21, r21, 1 +/* 80395384 003922E4 2C 15 00 10 */ cmpwi r21, 0x10 +/* 80395388 003922E8 B3 D7 15 1C */ sth r30, 0x151c(r23) +/* 8039538C 003922EC 3A F7 00 38 */ addi r23, r23, 0x38 +/* 80395390 003922F0 41 80 FF B4 */ blt lbl_80395344 +/* 80395394 003922F4 80 BC 00 00 */ lwz r5, 0(r28) +/* 80395398 003922F8 3C 60 80 55 */ lis r3, lbl_80550864@ha +/* 8039539C 003922FC 39 40 00 00 */ li r10, 0 +/* 803953A0 00392300 38 00 00 10 */ li r0, 0x10 +/* 803953A4 00392304 38 C3 08 64 */ addi r6, r3, lbl_80550864@l +/* 803953A8 00392308 7D 05 E2 14 */ add r8, r5, r28 +/* 803953AC 0039230C 7F 67 DB 78 */ mr r7, r27 +/* 803953B0 00392310 7F 69 DB 78 */ mr r9, r27 +/* 803953B4 00392314 7D 44 53 78 */ mr r4, r10 +/* 803953B8 00392318 7D 43 53 78 */ mr r3, r10 +/* 803953BC 0039231C 38 A0 00 7F */ li r5, 0x7f +/* 803953C0 00392320 7C 09 03 A6 */ mtctr r0 +lbl_803953C4: +/* 803953C4 00392324 98 A6 00 00 */ stb r5, 0(r6) +/* 803953C8 00392328 90 87 03 6C */ stw r4, 0x36c(r7) +/* 803953CC 0039232C 80 08 00 00 */ lwz r0, 0(r8) +/* 803953D0 00392330 28 00 00 00 */ cmplwi r0, 0 +/* 803953D4 00392334 41 82 00 14 */ beq lbl_803953E8 +/* 803953D8 00392338 7C 1C 02 14 */ add r0, r28, r0 +/* 803953DC 0039233C 90 09 01 24 */ stw r0, 0x124(r9) +/* 803953E0 00392340 90 09 01 28 */ stw r0, 0x128(r9) +/* 803953E4 00392344 48 00 00 0C */ b lbl_803953F0 +lbl_803953E8: +/* 803953E8 00392348 90 69 01 24 */ stw r3, 0x124(r9) +/* 803953EC 0039234C 90 69 01 28 */ stw r3, 0x128(r9) +lbl_803953F0: +/* 803953F0 00392350 9C A6 00 01 */ stbu r5, 1(r6) +/* 803953F4 00392354 90 87 03 98 */ stw r4, 0x398(r7) +/* 803953F8 00392358 80 08 00 04 */ lwz r0, 4(r8) +/* 803953FC 0039235C 28 00 00 00 */ cmplwi r0, 0 +/* 80395400 00392360 41 82 00 14 */ beq lbl_80395414 +/* 80395404 00392364 7C 1C 02 14 */ add r0, r28, r0 +/* 80395408 00392368 90 09 01 2C */ stw r0, 0x12c(r9) +/* 8039540C 0039236C 90 09 01 30 */ stw r0, 0x130(r9) +/* 80395410 00392370 48 00 00 0C */ b lbl_8039541C +lbl_80395414: +/* 80395414 00392374 90 69 01 2C */ stw r3, 0x12c(r9) +/* 80395418 00392378 90 69 01 30 */ stw r3, 0x130(r9) +lbl_8039541C: +/* 8039541C 0039237C 9C A6 00 01 */ stbu r5, 1(r6) +/* 80395420 00392380 90 87 03 C4 */ stw r4, 0x3c4(r7) +/* 80395424 00392384 80 08 00 08 */ lwz r0, 8(r8) +/* 80395428 00392388 28 00 00 00 */ cmplwi r0, 0 +/* 8039542C 0039238C 41 82 00 14 */ beq lbl_80395440 +/* 80395430 00392390 7C 1C 02 14 */ add r0, r28, r0 +/* 80395434 00392394 90 09 01 34 */ stw r0, 0x134(r9) +/* 80395438 00392398 90 09 01 38 */ stw r0, 0x138(r9) +/* 8039543C 0039239C 48 00 00 0C */ b lbl_80395448 +lbl_80395440: +/* 80395440 003923A0 90 69 01 34 */ stw r3, 0x134(r9) +/* 80395444 003923A4 90 69 01 38 */ stw r3, 0x138(r9) +lbl_80395448: +/* 80395448 003923A8 9C A6 00 01 */ stbu r5, 1(r6) +/* 8039544C 003923AC 90 87 03 F0 */ stw r4, 0x3f0(r7) +/* 80395450 003923B0 80 08 00 0C */ lwz r0, 0xc(r8) +/* 80395454 003923B4 28 00 00 00 */ cmplwi r0, 0 +/* 80395458 003923B8 41 82 00 14 */ beq lbl_8039546C +/* 8039545C 003923BC 7C 1C 02 14 */ add r0, r28, r0 +/* 80395460 003923C0 90 09 01 3C */ stw r0, 0x13c(r9) +/* 80395464 003923C4 90 09 01 40 */ stw r0, 0x140(r9) +/* 80395468 003923C8 48 00 00 0C */ b lbl_80395474 +lbl_8039546C: +/* 8039546C 003923CC 90 69 01 3C */ stw r3, 0x13c(r9) +/* 80395470 003923D0 90 69 01 40 */ stw r3, 0x140(r9) +lbl_80395474: +/* 80395474 003923D4 38 C6 00 01 */ addi r6, r6, 1 +/* 80395478 003923D8 38 E7 00 B0 */ addi r7, r7, 0xb0 +/* 8039547C 003923DC 39 08 00 10 */ addi r8, r8, 0x10 +/* 80395480 003923E0 39 29 00 20 */ addi r9, r9, 0x20 +/* 80395484 003923E4 39 4A 00 03 */ addi r10, r10, 3 +/* 80395488 003923E8 42 00 FF 3C */ bdnz lbl_803953C4 +/* 8039548C 003923EC 3A C0 00 00 */ li r22, 0 +/* 80395490 003923F0 92 DB 0E 64 */ stw r22, 0xe64(r27) +/* 80395494 003923F4 92 DB 0E 68 */ stw r22, 0xe68(r27) +/* 80395498 003923F8 92 DB 0E 6C */ stw r22, 0xe6c(r27) +lbl_8039549C: +/* 8039549C 003923FC 7F 44 D3 78 */ mr r4, r26 +/* 803954A0 00392400 56 C3 06 3E */ clrlwi r3, r22, 0x18 +/* 803954A4 00392404 38 A0 00 01 */ li r5, 1 +/* 803954A8 00392408 48 01 C3 75 */ bl inpResetMidiCtrl +/* 803954AC 0039240C 3A D6 00 01 */ addi r22, r22, 1 +/* 803954B0 00392410 2C 16 00 10 */ cmpwi r22, 0x10 +/* 803954B4 00392414 41 80 FF E8 */ blt lbl_8039549C +/* 803954B8 00392418 38 00 00 00 */ li r0, 0 +/* 803954BC 0039241C 2C 00 00 10 */ cmpwi r0, 0x10 +/* 803954C0 00392420 40 80 00 4C */ bge lbl_8039550C +/* 803954C4 00392424 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 803954C8 00392428 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l +/* 803954CC 0039242C B0 1B 0E 70 */ sth r0, 0xe70(r27) +/* 803954D0 00392430 B0 1B 0E 74 */ sth r0, 0xe74(r27) +/* 803954D4 00392434 B0 1B 0E 78 */ sth r0, 0xe78(r27) +/* 803954D8 00392438 B0 1B 0E 7C */ sth r0, 0xe7c(r27) +/* 803954DC 0039243C B0 1B 0E 80 */ sth r0, 0xe80(r27) +/* 803954E0 00392440 B0 1B 0E 84 */ sth r0, 0xe84(r27) +/* 803954E4 00392444 B0 1B 0E 88 */ sth r0, 0xe88(r27) +/* 803954E8 00392448 B0 1B 0E 8C */ sth r0, 0xe8c(r27) +/* 803954EC 0039244C B0 1B 0E 90 */ sth r0, 0xe90(r27) +/* 803954F0 00392450 B0 1B 0E 94 */ sth r0, 0xe94(r27) +/* 803954F4 00392454 B0 1B 0E 98 */ sth r0, 0xe98(r27) +/* 803954F8 00392458 B0 1B 0E 9C */ sth r0, 0xe9c(r27) +/* 803954FC 0039245C B0 1B 0E A0 */ sth r0, 0xea0(r27) +/* 80395500 00392460 B0 1B 0E A4 */ sth r0, 0xea4(r27) +/* 80395504 00392464 B0 1B 0E A8 */ sth r0, 0xea8(r27) +/* 80395508 00392468 B0 1B 0E AC */ sth r0, 0xeac(r27) +lbl_8039550C: +/* 8039550C 0039246C 3A C0 00 00 */ li r22, 0 +lbl_80395510: +/* 80395510 00392470 7F 44 D3 78 */ mr r4, r26 +/* 80395514 00392474 56 C3 06 3E */ clrlwi r3, r22, 0x18 +/* 80395518 00392478 48 01 C6 ED */ bl sub_803b1c04 +/* 8039551C 0039247C 3A D6 00 01 */ addi r22, r22, 1 +/* 80395520 00392480 2C 16 00 10 */ cmpwi r22, 0x10 +/* 80395524 00392484 41 80 FF EC */ blt lbl_80395510 +/* 80395528 00392488 28 1D 00 00 */ cmplwi r29, 0 +/* 8039552C 0039248C 41 82 01 30 */ beq lbl_8039565C +/* 80395530 00392490 3C 80 00 01 */ lis r4, 0x0000FFFF@ha +/* 80395534 00392494 3C 60 80 55 */ lis r3, lbl_8054FD10@ha +/* 80395538 00392498 3B 80 00 00 */ li r28, 0 +/* 8039553C 0039249C 3B C4 FF FF */ addi r30, r4, 0x0000FFFF@l +/* 80395540 003924A0 3B E3 FD 10 */ addi r31, r3, lbl_8054FD10@l +lbl_80395544: +/* 80395544 003924A4 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 80395548 003924A8 57 84 06 3E */ clrlwi r4, r28, 0x18 +/* 8039554C 003924AC 88 BD 00 04 */ lbz r5, 4(r29) +/* 80395550 003924B0 28 04 00 09 */ cmplwi r4, 9 +/* 80395554 003924B4 54 03 28 34 */ slwi r3, r0, 5 +/* 80395558 003924B8 57 80 0D FC */ rlwinm r0, r28, 1, 0x17, 0x1e +/* 8039555C 003924BC 7C 7F 1A 14 */ add r3, r31, r3 +/* 80395560 003924C0 7F C3 03 2E */ sthx r30, r3, r0 +/* 80395564 003924C4 41 82 00 50 */ beq lbl_803955B4 +/* 80395568 003924C8 38 05 00 14 */ addi r0, r5, 0x14 +/* 8039556C 003924CC 7C 1B 00 AE */ lbzx r0, r27, r0 +/* 80395570 003924D0 28 00 00 FF */ cmplwi r0, 0xff +/* 80395574 003924D4 41 82 00 88 */ beq lbl_803955FC +/* 80395578 003924D8 1C A0 00 06 */ mulli r5, r0, 6 +/* 8039557C 003924DC 80 7B 00 10 */ lwz r3, 0x10(r27) +/* 80395580 003924E0 54 80 10 3A */ slwi r0, r4, 2 +/* 80395584 003924E4 7C 83 2A 2E */ lhzx r4, r3, r5 +/* 80395588 003924E8 7C DB 02 14 */ add r6, r27, r0 +/* 8039558C 003924EC 38 65 00 02 */ addi r3, r5, 2 +/* 80395590 003924F0 38 05 00 03 */ addi r0, r5, 3 +/* 80395594 003924F4 B0 86 0E 70 */ sth r4, 0xe70(r6) +/* 80395598 003924F8 80 9B 00 10 */ lwz r4, 0x10(r27) +/* 8039559C 003924FC 7C 64 18 AE */ lbzx r3, r4, r3 +/* 803955A0 00392500 98 66 0E 72 */ stb r3, 0xe72(r6) +/* 803955A4 00392504 80 7B 00 10 */ lwz r3, 0x10(r27) +/* 803955A8 00392508 7C 03 00 AE */ lbzx r0, r3, r0 +/* 803955AC 0039250C 98 06 0E 73 */ stb r0, 0xe73(r6) +/* 803955B0 00392510 48 00 00 4C */ b lbl_803955FC +lbl_803955B4: +/* 803955B4 00392514 38 05 00 98 */ addi r0, r5, 0x98 +/* 803955B8 00392518 7C 1B 00 AE */ lbzx r0, r27, r0 +/* 803955BC 0039251C 28 00 00 FF */ cmplwi r0, 0xff +/* 803955C0 00392520 41 82 00 3C */ beq lbl_803955FC +/* 803955C4 00392524 1C A0 00 06 */ mulli r5, r0, 6 +/* 803955C8 00392528 80 7B 00 94 */ lwz r3, 0x94(r27) +/* 803955CC 0039252C 54 80 10 3A */ slwi r0, r4, 2 +/* 803955D0 00392530 7C 83 2A 2E */ lhzx r4, r3, r5 +/* 803955D4 00392534 7C DB 02 14 */ add r6, r27, r0 +/* 803955D8 00392538 38 65 00 02 */ addi r3, r5, 2 +/* 803955DC 0039253C 38 05 00 03 */ addi r0, r5, 3 +/* 803955E0 00392540 B0 86 0E 70 */ sth r4, 0xe70(r6) +/* 803955E4 00392544 80 9B 00 94 */ lwz r4, 0x94(r27) +/* 803955E8 00392548 7C 64 18 AE */ lbzx r3, r4, r3 +/* 803955EC 0039254C 98 66 0E 72 */ stb r3, 0xe72(r6) +/* 803955F0 00392550 80 7B 00 94 */ lwz r3, 0x94(r27) +/* 803955F4 00392554 7C 03 00 AE */ lbzx r0, r3, r0 +/* 803955F8 00392558 98 06 0E 73 */ stb r0, 0xe73(r6) +lbl_803955FC: +/* 803955FC 0039255C 88 DD 00 05 */ lbz r6, 5(r29) +/* 80395600 00392560 7F 45 D3 78 */ mr r5, r26 +/* 80395604 00392564 57 84 06 3E */ clrlwi r4, r28, 0x18 +/* 80395608 00392568 38 60 00 07 */ li r3, 7 +/* 8039560C 0039256C 48 01 BA E5 */ bl sub_803b10f0 +/* 80395610 00392570 88 DD 00 06 */ lbz r6, 6(r29) +/* 80395614 00392574 7F 45 D3 78 */ mr r5, r26 +/* 80395618 00392578 57 84 06 3E */ clrlwi r4, r28, 0x18 +/* 8039561C 0039257C 38 60 00 0A */ li r3, 0xa +/* 80395620 00392580 48 01 BA D1 */ bl sub_803b10f0 +/* 80395624 00392584 88 DD 00 07 */ lbz r6, 7(r29) +/* 80395628 00392588 7F 45 D3 78 */ mr r5, r26 +/* 8039562C 0039258C 57 84 06 3E */ clrlwi r4, r28, 0x18 +/* 80395630 00392590 38 60 00 5B */ li r3, 0x5b +/* 80395634 00392594 48 01 BA BD */ bl sub_803b10f0 +/* 80395638 00392598 88 DD 00 08 */ lbz r6, 8(r29) +/* 8039563C 0039259C 7F 45 D3 78 */ mr r5, r26 +/* 80395640 003925A0 57 84 06 3E */ clrlwi r4, r28, 0x18 +/* 80395644 003925A4 38 60 00 5D */ li r3, 0x5d +/* 80395648 003925A8 48 01 BA A9 */ bl sub_803b10f0 +/* 8039564C 003925AC 3B 9C 00 01 */ addi r28, r28, 1 +/* 80395650 003925B0 3B BD 00 05 */ addi r29, r29, 5 +/* 80395654 003925B4 2C 1C 00 10 */ cmpwi r28, 0x10 +/* 80395658 003925B8 41 80 FE EC */ blt lbl_80395544 +lbl_8039565C: +/* 8039565C 003925BC 38 00 00 00 */ li r0, 0 +/* 80395660 003925C0 2C 00 00 10 */ cmpwi r0, 0x10 +/* 80395664 003925C4 40 80 00 5C */ bge lbl_803956C0 +/* 80395668 003925C8 3C 80 80 55 */ lis r4, lbl_8054FD10@ha +/* 8039566C 003925CC 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 80395670 003925D0 57 45 28 34 */ slwi r5, r26, 5 +/* 80395674 003925D4 38 84 FD 10 */ addi r4, r4, lbl_8054FD10@l +/* 80395678 003925D8 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l +/* 8039567C 003925DC 7C 64 2A 14 */ add r3, r4, r5 +/* 80395680 003925E0 B0 03 00 00 */ sth r0, 0(r3) +/* 80395684 003925E4 B0 03 00 02 */ sth r0, 2(r3) +/* 80395688 003925E8 B0 03 00 04 */ sth r0, 4(r3) +/* 8039568C 003925EC B0 03 00 06 */ sth r0, 6(r3) +/* 80395690 003925F0 B0 03 00 08 */ sth r0, 8(r3) +/* 80395694 003925F4 B0 03 00 0A */ sth r0, 0xa(r3) +/* 80395698 003925F8 B0 03 00 0C */ sth r0, 0xc(r3) +/* 8039569C 003925FC B0 03 00 0E */ sth r0, 0xe(r3) +/* 803956A0 00392600 B0 03 00 10 */ sth r0, 0x10(r3) +/* 803956A4 00392604 B0 03 00 12 */ sth r0, 0x12(r3) +/* 803956A8 00392608 B0 03 00 14 */ sth r0, 0x14(r3) +/* 803956AC 0039260C B0 03 00 16 */ sth r0, 0x16(r3) +/* 803956B0 00392610 B0 03 00 18 */ sth r0, 0x18(r3) +/* 803956B4 00392614 B0 03 00 1A */ sth r0, 0x1a(r3) +/* 803956B8 00392618 B0 03 00 1C */ sth r0, 0x1c(r3) +/* 803956BC 0039261C B0 03 00 1E */ sth r0, 0x1e(r3) +lbl_803956C0: +/* 803956C0 00392620 38 00 00 00 */ li r0, 0 +/* 803956C4 00392624 2C 00 00 10 */ cmpwi r0, 0x10 +/* 803956C8 00392628 40 80 00 BC */ bge lbl_80395784 +/* 803956CC 0039262C 38 00 00 02 */ li r0, 2 +/* 803956D0 00392630 7F 63 DB 78 */ mr r3, r27 +/* 803956D4 00392634 7C 09 03 A6 */ mtctr r0 +lbl_803956D8: +/* 803956D8 00392638 38 00 00 00 */ li r0, 0 +/* 803956DC 0039263C 90 03 15 0C */ stw r0, 0x150c(r3) +/* 803956E0 00392640 90 03 15 08 */ stw r0, 0x1508(r3) +/* 803956E4 00392644 90 03 15 14 */ stw r0, 0x1514(r3) +/* 803956E8 00392648 90 03 15 10 */ stw r0, 0x1510(r3) +/* 803956EC 0039264C 98 03 15 18 */ stb r0, 0x1518(r3) +/* 803956F0 00392650 90 03 15 44 */ stw r0, 0x1544(r3) +/* 803956F4 00392654 90 03 15 40 */ stw r0, 0x1540(r3) +/* 803956F8 00392658 90 03 15 4C */ stw r0, 0x154c(r3) +/* 803956FC 0039265C 90 03 15 48 */ stw r0, 0x1548(r3) +/* 80395700 00392660 98 03 15 50 */ stb r0, 0x1550(r3) +/* 80395704 00392664 90 03 15 7C */ stw r0, 0x157c(r3) +/* 80395708 00392668 90 03 15 78 */ stw r0, 0x1578(r3) +/* 8039570C 0039266C 90 03 15 84 */ stw r0, 0x1584(r3) +/* 80395710 00392670 90 03 15 80 */ stw r0, 0x1580(r3) +/* 80395714 00392674 98 03 15 88 */ stb r0, 0x1588(r3) +/* 80395718 00392678 90 03 15 B4 */ stw r0, 0x15b4(r3) +/* 8039571C 0039267C 90 03 15 B0 */ stw r0, 0x15b0(r3) +/* 80395720 00392680 90 03 15 BC */ stw r0, 0x15bc(r3) +/* 80395724 00392684 90 03 15 B8 */ stw r0, 0x15b8(r3) +/* 80395728 00392688 98 03 15 C0 */ stb r0, 0x15c0(r3) +/* 8039572C 0039268C 90 03 15 EC */ stw r0, 0x15ec(r3) +/* 80395730 00392690 90 03 15 E8 */ stw r0, 0x15e8(r3) +/* 80395734 00392694 90 03 15 F4 */ stw r0, 0x15f4(r3) +/* 80395738 00392698 90 03 15 F0 */ stw r0, 0x15f0(r3) +/* 8039573C 0039269C 98 03 15 F8 */ stb r0, 0x15f8(r3) +/* 80395740 003926A0 90 03 16 24 */ stw r0, 0x1624(r3) +/* 80395744 003926A4 90 03 16 20 */ stw r0, 0x1620(r3) +/* 80395748 003926A8 90 03 16 2C */ stw r0, 0x162c(r3) +/* 8039574C 003926AC 90 03 16 28 */ stw r0, 0x1628(r3) +/* 80395750 003926B0 98 03 16 30 */ stb r0, 0x1630(r3) +/* 80395754 003926B4 90 03 16 5C */ stw r0, 0x165c(r3) +/* 80395758 003926B8 90 03 16 58 */ stw r0, 0x1658(r3) +/* 8039575C 003926BC 90 03 16 64 */ stw r0, 0x1664(r3) +/* 80395760 003926C0 90 03 16 60 */ stw r0, 0x1660(r3) +/* 80395764 003926C4 98 03 16 68 */ stb r0, 0x1668(r3) +/* 80395768 003926C8 90 03 16 94 */ stw r0, 0x1694(r3) +/* 8039576C 003926CC 90 03 16 90 */ stw r0, 0x1690(r3) +/* 80395770 003926D0 90 03 16 9C */ stw r0, 0x169c(r3) +/* 80395774 003926D4 90 03 16 98 */ stw r0, 0x1698(r3) +/* 80395778 003926D8 98 03 16 A0 */ stb r0, 0x16a0(r3) +/* 8039577C 003926DC 38 63 01 C0 */ addi r3, r3, 0x1c0 +/* 80395780 003926E0 42 00 FF 58 */ bdnz lbl_803956D8 +lbl_80395784: +/* 80395784 003926E4 38 00 00 00 */ li r0, 0 +/* 80395788 003926E8 28 19 00 00 */ cmplwi r25, 0 +/* 8039578C 003926EC 98 1B 0E E2 */ stb r0, 0xee2(r27) +/* 80395790 003926F0 41 82 00 18 */ beq lbl_803957A8 +/* 80395794 003926F4 80 19 00 00 */ lwz r0, 0(r25) +/* 80395798 003926F8 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 8039579C 003926FC 41 82 00 0C */ beq lbl_803957A8 +/* 803957A0 00392700 7F 63 DB 78 */ mr r3, r27 +/* 803957A4 00392704 48 00 00 B9 */ bl StartPause +lbl_803957A8: +/* 803957A8 00392708 82 AD AE 38 */ lwz r21, lbl_805A99F8@sda21(r13) +/* 803957AC 0039270C 93 6D AE 38 */ stw r27, lbl_805A99F8@sda21(r13) +/* 803957B0 00392710 48 00 23 45 */ bl InitTrackEvents +/* 803957B4 00392714 92 AD AE 38 */ stw r21, lbl_805A99F8@sda21(r13) +/* 803957B8 00392718 80 AD AE 44 */ lwz r5, lbl_805A9A04@sda21(r13) +/* 803957BC 0039271C 80 CD AE 40 */ lwz r6, lbl_805A9A00@sda21(r13) +lbl_803957C0: +/* 803957C0 00392720 80 6D AE 28 */ lwz r3, lbl_805A99E8@sda21(r13) +/* 803957C4 00392724 7C A4 2B 78 */ mr r4, r5 +/* 803957C8 00392728 38 03 00 01 */ addi r0, r3, 1 +/* 803957CC 0039272C 90 0D AE 28 */ stw r0, lbl_805A99E8@sda21(r13) +/* 803957D0 00392730 54 00 00 7E */ clrlwi r0, r0, 1 +/* 803957D4 00392734 90 0D AE 28 */ stw r0, lbl_805A99E8@sda21(r13) +/* 803957D8 00392738 48 00 00 1C */ b lbl_803957F4 +lbl_803957DC: +/* 803957DC 0039273C 80 04 00 0C */ lwz r0, 0xc(r4) +/* 803957E0 00392740 7C 00 18 40 */ cmplw r0, r3 +/* 803957E4 00392744 40 82 00 0C */ bne lbl_803957F0 +/* 803957E8 00392748 38 60 FF FF */ li r3, -1 +/* 803957EC 0039274C 48 00 00 10 */ b lbl_803957FC +lbl_803957F0: +/* 803957F0 00392750 80 84 00 00 */ lwz r4, 0(r4) +lbl_803957F4: +/* 803957F4 00392754 28 04 00 00 */ cmplwi r4, 0 +/* 803957F8 00392758 40 82 FF E4 */ bne lbl_803957DC +lbl_803957FC: +/* 803957FC 0039275C 7C C4 33 78 */ mr r4, r6 +/* 80395800 00392760 48 00 00 1C */ b lbl_8039581C +lbl_80395804: +/* 80395804 00392764 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80395808 00392768 7C 00 18 40 */ cmplw r0, r3 +/* 8039580C 0039276C 40 82 00 0C */ bne lbl_80395818 +/* 80395810 00392770 38 60 FF FF */ li r3, -1 +/* 80395814 00392774 48 00 00 10 */ b lbl_80395824 +lbl_80395818: +/* 80395818 00392778 80 84 00 00 */ lwz r4, 0(r4) +lbl_8039581C: +/* 8039581C 0039277C 28 04 00 00 */ cmplwi r4, 0 +/* 80395820 00392780 40 82 FF E4 */ bne lbl_80395804 +lbl_80395824: +/* 80395824 00392784 3C 03 00 01 */ addis r0, r3, 1 +/* 80395828 00392788 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039582C 0039278C 41 82 FF 94 */ beq lbl_803957C0 +/* 80395830 00392790 1C 1A 18 68 */ mulli r0, r26, 0x1868 +/* 80395834 00392794 3C 80 80 54 */ lis r4, lbl_805439D0@ha +/* 80395838 00392798 38 84 39 D0 */ addi r4, r4, lbl_805439D0@l +/* 8039583C 0039279C 7C 84 02 14 */ add r4, r4, r0 +/* 80395840 003927A0 90 64 00 0C */ stw r3, 0xc(r4) +lbl_80395844: +/* 80395844 003927A4 39 61 00 40 */ addi r11, r1, 0x40 +/* 80395848 003927A8 4B FF 42 65 */ bl _restgpr_20 +/* 8039584C 003927AC 80 01 00 44 */ lwz r0, 0x44(r1) +/* 80395850 003927B0 7C 08 03 A6 */ mtlr r0 +/* 80395854 003927B4 38 21 00 40 */ addi r1, r1, 0x40 +/* 80395858 003927B8 4E 80 00 20 */ blr + +.global StartPause +StartPause: +/* 8039585C 003927BC 80 83 00 04 */ lwz r4, 4(r3) +/* 80395860 003927C0 28 04 00 00 */ cmplwi r4, 0 +/* 80395864 003927C4 41 82 00 10 */ beq lbl_80395874 +/* 80395868 003927C8 80 03 00 00 */ lwz r0, 0(r3) +/* 8039586C 003927CC 90 04 00 00 */ stw r0, 0(r4) +/* 80395870 003927D0 48 00 00 0C */ b lbl_8039587C +lbl_80395874: +/* 80395874 003927D4 80 03 00 00 */ lwz r0, 0(r3) +/* 80395878 003927D8 90 0D AE 44 */ stw r0, lbl_805A9A04@sda21(r13) +lbl_8039587C: +/* 8039587C 003927DC 80 83 00 00 */ lwz r4, 0(r3) +/* 80395880 003927E0 28 04 00 00 */ cmplwi r4, 0 +/* 80395884 003927E4 41 82 00 0C */ beq lbl_80395890 +/* 80395888 003927E8 80 03 00 04 */ lwz r0, 4(r3) +/* 8039588C 003927EC 90 04 00 04 */ stw r0, 4(r4) +lbl_80395890: +/* 80395890 003927F0 80 0D AE 40 */ lwz r0, lbl_805A9A00@sda21(r13) +/* 80395894 003927F4 28 00 00 00 */ cmplwi r0, 0 +/* 80395898 003927F8 90 03 00 00 */ stw r0, 0(r3) +/* 8039589C 003927FC 41 82 00 0C */ beq lbl_803958A8 +/* 803958A0 00392800 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 803958A4 00392804 90 64 00 04 */ stw r3, 4(r4) +lbl_803958A8: +/* 803958A8 00392808 38 80 00 00 */ li r4, 0 +/* 803958AC 0039280C 38 00 00 02 */ li r0, 2 +/* 803958B0 00392810 90 83 00 04 */ stw r4, 4(r3) +/* 803958B4 00392814 90 6D AE 40 */ stw r3, lbl_805A9A00@sda21(r13) +/* 803958B8 00392818 98 03 00 08 */ stb r0, 8(r3) +/* 803958BC 0039281C 4E 80 00 20 */ blr + +.global seqPause +seqPause: +/* 803958C0 00392820 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803958C4 00392824 7C 08 02 A6 */ mflr r0 +/* 803958C8 00392828 54 65 00 7E */ clrlwi r5, r3, 1 +/* 803958CC 0039282C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803958D0 00392830 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803958D4 00392834 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803958D8 00392838 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803958DC 0039283C 93 81 00 10 */ stw r28, 0x10(r1) +/* 803958E0 00392840 80 8D AE 44 */ lwz r4, lbl_805A9A04@sda21(r13) +/* 803958E4 00392844 48 00 00 20 */ b lbl_80395904 +lbl_803958E8: +/* 803958E8 00392848 80 04 00 0C */ lwz r0, 0xc(r4) +/* 803958EC 0039284C 7C 00 28 40 */ cmplw r0, r5 +/* 803958F0 00392850 40 82 00 10 */ bne lbl_80395900 +/* 803958F4 00392854 88 84 00 09 */ lbz r4, 9(r4) +/* 803958F8 00392858 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 803958FC 0039285C 48 00 00 40 */ b lbl_8039593C +lbl_80395900: +/* 80395900 00392860 80 84 00 00 */ lwz r4, 0(r4) +lbl_80395904: +/* 80395904 00392864 28 04 00 00 */ cmplwi r4, 0 +/* 80395908 00392868 40 82 FF E0 */ bne lbl_803958E8 +/* 8039590C 0039286C 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80395910 00392870 48 00 00 20 */ b lbl_80395930 +lbl_80395914: +/* 80395914 00392874 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80395918 00392878 7C 00 28 40 */ cmplw r0, r5 +/* 8039591C 0039287C 40 82 00 10 */ bne lbl_8039592C +/* 80395920 00392880 88 84 00 09 */ lbz r4, 9(r4) +/* 80395924 00392884 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80395928 00392888 48 00 00 14 */ b lbl_8039593C +lbl_8039592C: +/* 8039592C 0039288C 80 84 00 00 */ lwz r4, 0(r4) +lbl_80395930: +/* 80395930 00392890 28 04 00 00 */ cmplwi r4, 0 +/* 80395934 00392894 40 82 FF E0 */ bne lbl_80395914 +/* 80395938 00392898 38 80 FF FF */ li r4, -1 +lbl_8039593C: +/* 8039593C 0039289C 3C 04 00 01 */ addis r0, r4, 1 +/* 80395940 003928A0 28 00 FF FF */ cmplwi r0, 0xffff +/* 80395944 003928A4 41 82 01 D8 */ beq lbl_80395B1C +/* 80395948 003928A8 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0 +/* 8039594C 003928AC 40 82 01 A4 */ bne lbl_80395AF0 +/* 80395950 003928B0 1C 84 18 68 */ mulli r4, r4, 0x1868 +/* 80395954 003928B4 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80395958 003928B8 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 8039595C 003928BC 7F E0 22 14 */ add r31, r0, r4 +/* 80395960 003928C0 88 1F 00 08 */ lbz r0, 8(r31) +/* 80395964 003928C4 28 00 00 01 */ cmplwi r0, 1 +/* 80395968 003928C8 40 82 01 B4 */ bne lbl_80395B1C +/* 8039596C 003928CC 80 7F 00 04 */ lwz r3, 4(r31) +/* 80395970 003928D0 28 03 00 00 */ cmplwi r3, 0 +/* 80395974 003928D4 41 82 00 10 */ beq lbl_80395984 +/* 80395978 003928D8 80 1F 00 00 */ lwz r0, 0(r31) +/* 8039597C 003928DC 90 03 00 00 */ stw r0, 0(r3) +/* 80395980 003928E0 48 00 00 0C */ b lbl_8039598C +lbl_80395984: +/* 80395984 003928E4 80 1F 00 00 */ lwz r0, 0(r31) +/* 80395988 003928E8 90 0D AE 44 */ stw r0, lbl_805A9A04@sda21(r13) +lbl_8039598C: +/* 8039598C 003928EC 80 7F 00 00 */ lwz r3, 0(r31) +/* 80395990 003928F0 28 03 00 00 */ cmplwi r3, 0 +/* 80395994 003928F4 41 82 00 0C */ beq lbl_803959A0 +/* 80395998 003928F8 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039599C 003928FC 90 03 00 04 */ stw r0, 4(r3) +lbl_803959A0: +/* 803959A0 00392900 80 6D AE 40 */ lwz r3, lbl_805A9A00@sda21(r13) +/* 803959A4 00392904 28 03 00 00 */ cmplwi r3, 0 +/* 803959A8 00392908 90 7F 00 00 */ stw r3, 0(r31) +/* 803959AC 0039290C 41 82 00 08 */ beq lbl_803959B4 +/* 803959B0 00392910 93 E3 00 04 */ stw r31, 4(r3) +lbl_803959B4: +/* 803959B4 00392914 3B C0 00 00 */ li r30, 0 +/* 803959B8 00392918 38 00 00 02 */ li r0, 2 +/* 803959BC 0039291C 93 DF 00 04 */ stw r30, 4(r31) +/* 803959C0 00392920 7F FC FB 78 */ mr r28, r31 +/* 803959C4 00392924 93 ED AE 40 */ stw r31, lbl_805A9A00@sda21(r13) +/* 803959C8 00392928 98 1F 00 08 */ stb r0, 8(r31) +lbl_803959CC: +/* 803959CC 0039292C 83 BC 0E 64 */ lwz r29, 0xe64(r28) +/* 803959D0 00392930 48 00 00 10 */ b lbl_803959E0 +lbl_803959D4: +/* 803959D4 00392934 80 7D 00 08 */ lwz r3, 8(r29) +/* 803959D8 00392938 48 01 32 79 */ bl voiceKillSound +/* 803959DC 0039293C 83 BD 00 00 */ lwz r29, 0(r29) +lbl_803959E0: +/* 803959E0 00392940 28 1D 00 00 */ cmplwi r29, 0 +/* 803959E4 00392944 40 82 FF F0 */ bne lbl_803959D4 +/* 803959E8 00392948 3B DE 00 01 */ addi r30, r30, 1 +/* 803959EC 0039294C 3B 9C 00 04 */ addi r28, r28, 4 +/* 803959F0 00392950 28 1E 00 02 */ cmplwi r30, 2 +/* 803959F4 00392954 41 80 FF D8 */ blt lbl_803959CC +/* 803959F8 00392958 83 9F 0E 6C */ lwz r28, 0xe6c(r31) +/* 803959FC 0039295C 48 00 00 10 */ b lbl_80395A0C +lbl_80395A00: +/* 80395A00 00392960 80 7C 00 08 */ lwz r3, 8(r28) +/* 80395A04 00392964 48 01 32 4D */ bl voiceKillSound +/* 80395A08 00392968 83 9C 00 00 */ lwz r28, 0(r28) +lbl_80395A0C: +/* 80395A0C 0039296C 28 1C 00 00 */ cmplwi r28, 0 +/* 80395A10 00392970 40 82 FF F0 */ bne lbl_80395A00 +/* 80395A14 00392974 80 BF 0E 64 */ lwz r5, 0xe64(r31) +/* 80395A18 00392978 38 80 00 00 */ li r4, 0 +/* 80395A1C 0039297C 28 05 00 00 */ cmplwi r5, 0 +/* 80395A20 00392980 41 82 00 3C */ beq lbl_80395A5C +/* 80395A24 00392984 48 00 00 08 */ b lbl_80395A2C +lbl_80395A28: +/* 80395A28 00392988 7C 05 03 78 */ mr r5, r0 +lbl_80395A2C: +/* 80395A2C 0039298C 80 05 00 00 */ lwz r0, 0(r5) +/* 80395A30 00392990 28 00 00 00 */ cmplwi r0, 0 +/* 80395A34 00392994 40 82 FF F4 */ bne lbl_80395A28 +/* 80395A38 00392998 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80395A3C 0039299C 28 00 00 00 */ cmplwi r0, 0 +/* 80395A40 003929A0 41 82 00 10 */ beq lbl_80395A50 +/* 80395A44 003929A4 90 05 00 00 */ stw r0, 0(r5) +/* 80395A48 003929A8 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80395A4C 003929AC 90 A3 00 04 */ stw r5, 4(r3) +lbl_80395A50: +/* 80395A50 003929B0 80 1F 0E 64 */ lwz r0, 0xe64(r31) +/* 80395A54 003929B4 90 0D AE 34 */ stw r0, lbl_805A99F4@sda21(r13) +/* 80395A58 003929B8 90 9F 0E 64 */ stw r4, 0xe64(r31) +lbl_80395A5C: +/* 80395A5C 003929BC 38 DF 00 04 */ addi r6, r31, 4 +/* 80395A60 003929C0 80 BF 0E 68 */ lwz r5, 0xe68(r31) +/* 80395A64 003929C4 28 05 00 00 */ cmplwi r5, 0 +/* 80395A68 003929C8 41 82 00 3C */ beq lbl_80395AA4 +/* 80395A6C 003929CC 48 00 00 08 */ b lbl_80395A74 +lbl_80395A70: +/* 80395A70 003929D0 7C 05 03 78 */ mr r5, r0 +lbl_80395A74: +/* 80395A74 003929D4 80 05 00 00 */ lwz r0, 0(r5) +/* 80395A78 003929D8 28 00 00 00 */ cmplwi r0, 0 +/* 80395A7C 003929DC 40 82 FF F4 */ bne lbl_80395A70 +/* 80395A80 003929E0 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80395A84 003929E4 28 00 00 00 */ cmplwi r0, 0 +/* 80395A88 003929E8 41 82 00 10 */ beq lbl_80395A98 +/* 80395A8C 003929EC 90 05 00 00 */ stw r0, 0(r5) +/* 80395A90 003929F0 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80395A94 003929F4 90 A3 00 04 */ stw r5, 4(r3) +lbl_80395A98: +/* 80395A98 003929F8 80 06 0E 64 */ lwz r0, 0xe64(r6) +/* 80395A9C 003929FC 90 0D AE 34 */ stw r0, lbl_805A99F4@sda21(r13) +/* 80395AA0 00392A00 90 86 0E 64 */ stw r4, 0xe64(r6) +lbl_80395AA4: +/* 80395AA4 00392A04 80 9F 0E 6C */ lwz r4, 0xe6c(r31) +/* 80395AA8 00392A08 28 04 00 00 */ cmplwi r4, 0 +/* 80395AAC 00392A0C 41 82 00 70 */ beq lbl_80395B1C +/* 80395AB0 00392A10 48 00 00 08 */ b lbl_80395AB8 +lbl_80395AB4: +/* 80395AB4 00392A14 7C 04 03 78 */ mr r4, r0 +lbl_80395AB8: +/* 80395AB8 00392A18 80 04 00 00 */ lwz r0, 0(r4) +/* 80395ABC 00392A1C 28 00 00 00 */ cmplwi r0, 0 +/* 80395AC0 00392A20 40 82 FF F4 */ bne lbl_80395AB4 +/* 80395AC4 00392A24 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80395AC8 00392A28 28 00 00 00 */ cmplwi r0, 0 +/* 80395ACC 00392A2C 41 82 00 10 */ beq lbl_80395ADC +/* 80395AD0 00392A30 90 04 00 00 */ stw r0, 0(r4) +/* 80395AD4 00392A34 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80395AD8 00392A38 90 83 00 04 */ stw r4, 4(r3) +lbl_80395ADC: +/* 80395ADC 00392A3C 80 7F 0E 6C */ lwz r3, 0xe6c(r31) +/* 80395AE0 00392A40 38 00 00 00 */ li r0, 0 +/* 80395AE4 00392A44 90 6D AE 34 */ stw r3, lbl_805A99F4@sda21(r13) +/* 80395AE8 00392A48 90 1F 0E 6C */ stw r0, 0xe6c(r31) +/* 80395AEC 00392A4C 48 00 00 30 */ b lbl_80395B1C +lbl_80395AF0: +/* 80395AF0 00392A50 54 80 00 7E */ clrlwi r0, r4, 1 +/* 80395AF4 00392A54 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80395AF8 00392A58 1C 80 18 68 */ mulli r4, r0, 0x1868 +/* 80395AFC 00392A5C 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80395B00 00392A60 7C 60 22 14 */ add r3, r0, r4 +/* 80395B04 00392A64 88 03 00 08 */ lbz r0, 8(r3) +/* 80395B08 00392A68 28 00 00 00 */ cmplwi r0, 0 +/* 80395B0C 00392A6C 41 82 00 10 */ beq lbl_80395B1C +/* 80395B10 00392A70 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 80395B14 00392A74 60 00 00 08 */ ori r0, r0, 8 +/* 80395B18 00392A78 98 03 0E DA */ stb r0, 0xeda(r3) +lbl_80395B1C: +/* 80395B1C 00392A7C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80395B20 00392A80 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80395B24 00392A84 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80395B28 00392A88 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 80395B2C 00392A8C 83 81 00 10 */ lwz r28, 0x10(r1) +/* 80395B30 00392A90 7C 08 03 A6 */ mtlr r0 +/* 80395B34 00392A94 38 21 00 20 */ addi r1, r1, 0x20 +/* 80395B38 00392A98 4E 80 00 20 */ blr + +.global seqStop +seqStop: +/* 80395B3C 00392A9C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80395B40 00392AA0 7C 08 02 A6 */ mflr r0 +/* 80395B44 00392AA4 90 01 00 24 */ stw r0, 0x24(r1) +/* 80395B48 00392AA8 39 61 00 20 */ addi r11, r1, 0x20 +/* 80395B4C 00392AAC 4B FF 3F 31 */ bl sub_80389a7c +/* 80395B50 00392AB0 80 8D AE 44 */ lwz r4, lbl_805A9A04@sda21(r13) +/* 80395B54 00392AB4 54 65 00 7E */ clrlwi r5, r3, 1 +/* 80395B58 00392AB8 48 00 00 20 */ b lbl_80395B78 +lbl_80395B5C: +/* 80395B5C 00392ABC 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80395B60 00392AC0 7C 00 28 40 */ cmplw r0, r5 +/* 80395B64 00392AC4 40 82 00 10 */ bne lbl_80395B74 +/* 80395B68 00392AC8 88 84 00 09 */ lbz r4, 9(r4) +/* 80395B6C 00392ACC 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80395B70 00392AD0 48 00 00 40 */ b lbl_80395BB0 +lbl_80395B74: +/* 80395B74 00392AD4 80 84 00 00 */ lwz r4, 0(r4) +lbl_80395B78: +/* 80395B78 00392AD8 28 04 00 00 */ cmplwi r4, 0 +/* 80395B7C 00392ADC 40 82 FF E0 */ bne lbl_80395B5C +/* 80395B80 00392AE0 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80395B84 00392AE4 48 00 00 20 */ b lbl_80395BA4 +lbl_80395B88: +/* 80395B88 00392AE8 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80395B8C 00392AEC 7C 00 28 40 */ cmplw r0, r5 +/* 80395B90 00392AF0 40 82 00 10 */ bne lbl_80395BA0 +/* 80395B94 00392AF4 88 84 00 09 */ lbz r4, 9(r4) +/* 80395B98 00392AF8 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80395B9C 00392AFC 48 00 00 14 */ b lbl_80395BB0 +lbl_80395BA0: +/* 80395BA0 00392B00 80 84 00 00 */ lwz r4, 0(r4) +lbl_80395BA4: +/* 80395BA4 00392B04 28 04 00 00 */ cmplwi r4, 0 +/* 80395BA8 00392B08 40 82 FF E0 */ bne lbl_80395B88 +/* 80395BAC 00392B0C 38 80 FF FF */ li r4, -1 +lbl_80395BB0: +/* 80395BB0 00392B10 3C 04 00 01 */ addis r0, r4, 1 +/* 80395BB4 00392B14 28 00 FF FF */ cmplwi r0, 0xffff +/* 80395BB8 00392B18 41 82 02 1C */ beq lbl_80395DD4 +/* 80395BBC 00392B1C 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0 +/* 80395BC0 00392B20 40 82 01 EC */ bne lbl_80395DAC +/* 80395BC4 00392B24 1F 64 18 68 */ mulli r27, r4, 0x1868 +/* 80395BC8 00392B28 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80395BCC 00392B2C 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80395BD0 00392B30 7F E0 DA 14 */ add r31, r0, r27 +/* 80395BD4 00392B34 88 1F 00 08 */ lbz r0, 8(r31) +/* 80395BD8 00392B38 2C 00 00 02 */ cmpwi r0, 2 +/* 80395BDC 00392B3C 41 82 01 6C */ beq lbl_80395D48 +/* 80395BE0 00392B40 40 80 01 88 */ bge lbl_80395D68 +/* 80395BE4 00392B44 2C 00 00 01 */ cmpwi r0, 1 +/* 80395BE8 00392B48 40 80 00 08 */ bge lbl_80395BF0 +/* 80395BEC 00392B4C 48 00 01 7C */ b lbl_80395D68 +lbl_80395BF0: +/* 80395BF0 00392B50 80 7F 00 04 */ lwz r3, 4(r31) +/* 80395BF4 00392B54 28 03 00 00 */ cmplwi r3, 0 +/* 80395BF8 00392B58 41 82 00 10 */ beq lbl_80395C08 +/* 80395BFC 00392B5C 80 1F 00 00 */ lwz r0, 0(r31) +/* 80395C00 00392B60 90 03 00 00 */ stw r0, 0(r3) +/* 80395C04 00392B64 48 00 00 0C */ b lbl_80395C10 +lbl_80395C08: +/* 80395C08 00392B68 80 1F 00 00 */ lwz r0, 0(r31) +/* 80395C0C 00392B6C 90 0D AE 44 */ stw r0, lbl_805A9A04@sda21(r13) +lbl_80395C10: +/* 80395C10 00392B70 3B C0 00 00 */ li r30, 0 +/* 80395C14 00392B74 7F FC FB 78 */ mr r28, r31 +lbl_80395C18: +/* 80395C18 00392B78 83 BC 0E 64 */ lwz r29, 0xe64(r28) +/* 80395C1C 00392B7C 48 00 00 10 */ b lbl_80395C2C +lbl_80395C20: +/* 80395C20 00392B80 80 7D 00 08 */ lwz r3, 8(r29) +/* 80395C24 00392B84 48 01 30 2D */ bl voiceKillSound +/* 80395C28 00392B88 83 BD 00 00 */ lwz r29, 0(r29) +lbl_80395C2C: +/* 80395C2C 00392B8C 28 1D 00 00 */ cmplwi r29, 0 +/* 80395C30 00392B90 40 82 FF F0 */ bne lbl_80395C20 +/* 80395C34 00392B94 3B DE 00 01 */ addi r30, r30, 1 +/* 80395C38 00392B98 3B 9C 00 04 */ addi r28, r28, 4 +/* 80395C3C 00392B9C 28 1E 00 02 */ cmplwi r30, 2 +/* 80395C40 00392BA0 41 80 FF D8 */ blt lbl_80395C18 +/* 80395C44 00392BA4 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80395C48 00392BA8 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80395C4C 00392BAC 7F 60 DA 14 */ add r27, r0, r27 +/* 80395C50 00392BB0 87 9B 0E 6C */ lwzu r28, 0xe6c(r27) +/* 80395C54 00392BB4 48 00 00 10 */ b lbl_80395C64 +lbl_80395C58: +/* 80395C58 00392BB8 80 7C 00 08 */ lwz r3, 8(r28) +/* 80395C5C 00392BBC 48 01 2F F5 */ bl voiceKillSound +/* 80395C60 00392BC0 83 9C 00 00 */ lwz r28, 0(r28) +lbl_80395C64: +/* 80395C64 00392BC4 28 1C 00 00 */ cmplwi r28, 0 +/* 80395C68 00392BC8 40 82 FF F0 */ bne lbl_80395C58 +/* 80395C6C 00392BCC 80 BF 0E 64 */ lwz r5, 0xe64(r31) +/* 80395C70 00392BD0 38 80 00 00 */ li r4, 0 +/* 80395C74 00392BD4 28 05 00 00 */ cmplwi r5, 0 +/* 80395C78 00392BD8 41 82 00 3C */ beq lbl_80395CB4 +/* 80395C7C 00392BDC 48 00 00 08 */ b lbl_80395C84 +lbl_80395C80: +/* 80395C80 00392BE0 7C 05 03 78 */ mr r5, r0 +lbl_80395C84: +/* 80395C84 00392BE4 80 05 00 00 */ lwz r0, 0(r5) +/* 80395C88 00392BE8 28 00 00 00 */ cmplwi r0, 0 +/* 80395C8C 00392BEC 40 82 FF F4 */ bne lbl_80395C80 +/* 80395C90 00392BF0 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80395C94 00392BF4 28 00 00 00 */ cmplwi r0, 0 +/* 80395C98 00392BF8 41 82 00 10 */ beq lbl_80395CA8 +/* 80395C9C 00392BFC 90 05 00 00 */ stw r0, 0(r5) +/* 80395CA0 00392C00 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80395CA4 00392C04 90 A3 00 04 */ stw r5, 4(r3) +lbl_80395CA8: +/* 80395CA8 00392C08 80 1F 0E 64 */ lwz r0, 0xe64(r31) +/* 80395CAC 00392C0C 90 0D AE 34 */ stw r0, lbl_805A99F4@sda21(r13) +/* 80395CB0 00392C10 90 9F 0E 64 */ stw r4, 0xe64(r31) +lbl_80395CB4: +/* 80395CB4 00392C14 38 DF 00 04 */ addi r6, r31, 4 +/* 80395CB8 00392C18 80 BF 0E 68 */ lwz r5, 0xe68(r31) +/* 80395CBC 00392C1C 28 05 00 00 */ cmplwi r5, 0 +/* 80395CC0 00392C20 41 82 00 3C */ beq lbl_80395CFC +/* 80395CC4 00392C24 48 00 00 08 */ b lbl_80395CCC +lbl_80395CC8: +/* 80395CC8 00392C28 7C 05 03 78 */ mr r5, r0 +lbl_80395CCC: +/* 80395CCC 00392C2C 80 05 00 00 */ lwz r0, 0(r5) +/* 80395CD0 00392C30 28 00 00 00 */ cmplwi r0, 0 +/* 80395CD4 00392C34 40 82 FF F4 */ bne lbl_80395CC8 +/* 80395CD8 00392C38 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80395CDC 00392C3C 28 00 00 00 */ cmplwi r0, 0 +/* 80395CE0 00392C40 41 82 00 10 */ beq lbl_80395CF0 +/* 80395CE4 00392C44 90 05 00 00 */ stw r0, 0(r5) +/* 80395CE8 00392C48 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80395CEC 00392C4C 90 A3 00 04 */ stw r5, 4(r3) +lbl_80395CF0: +/* 80395CF0 00392C50 80 06 0E 64 */ lwz r0, 0xe64(r6) +/* 80395CF4 00392C54 90 0D AE 34 */ stw r0, lbl_805A99F4@sda21(r13) +/* 80395CF8 00392C58 90 86 0E 64 */ stw r4, 0xe64(r6) +lbl_80395CFC: +/* 80395CFC 00392C5C 80 9B 00 00 */ lwz r4, 0(r27) +/* 80395D00 00392C60 28 04 00 00 */ cmplwi r4, 0 +/* 80395D04 00392C64 41 82 00 64 */ beq lbl_80395D68 +/* 80395D08 00392C68 48 00 00 08 */ b lbl_80395D10 +lbl_80395D0C: +/* 80395D0C 00392C6C 7C 04 03 78 */ mr r4, r0 +lbl_80395D10: +/* 80395D10 00392C70 80 04 00 00 */ lwz r0, 0(r4) +/* 80395D14 00392C74 28 00 00 00 */ cmplwi r0, 0 +/* 80395D18 00392C78 40 82 FF F4 */ bne lbl_80395D0C +/* 80395D1C 00392C7C 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80395D20 00392C80 28 00 00 00 */ cmplwi r0, 0 +/* 80395D24 00392C84 41 82 00 10 */ beq lbl_80395D34 +/* 80395D28 00392C88 90 04 00 00 */ stw r0, 0(r4) +/* 80395D2C 00392C8C 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80395D30 00392C90 90 83 00 04 */ stw r4, 4(r3) +lbl_80395D34: +/* 80395D34 00392C94 80 7B 00 00 */ lwz r3, 0(r27) +/* 80395D38 00392C98 38 00 00 00 */ li r0, 0 +/* 80395D3C 00392C9C 90 6D AE 34 */ stw r3, lbl_805A99F4@sda21(r13) +/* 80395D40 00392CA0 90 1B 00 00 */ stw r0, 0(r27) +/* 80395D44 00392CA4 48 00 00 24 */ b lbl_80395D68 +lbl_80395D48: +/* 80395D48 00392CA8 80 7F 00 04 */ lwz r3, 4(r31) +/* 80395D4C 00392CAC 28 03 00 00 */ cmplwi r3, 0 +/* 80395D50 00392CB0 41 82 00 10 */ beq lbl_80395D60 +/* 80395D54 00392CB4 80 1F 00 00 */ lwz r0, 0(r31) +/* 80395D58 00392CB8 90 03 00 00 */ stw r0, 0(r3) +/* 80395D5C 00392CBC 48 00 00 0C */ b lbl_80395D68 +lbl_80395D60: +/* 80395D60 00392CC0 80 1F 00 00 */ lwz r0, 0(r31) +/* 80395D64 00392CC4 90 0D AE 40 */ stw r0, lbl_805A9A00@sda21(r13) +lbl_80395D68: +/* 80395D68 00392CC8 80 7F 00 00 */ lwz r3, 0(r31) +/* 80395D6C 00392CCC 28 03 00 00 */ cmplwi r3, 0 +/* 80395D70 00392CD0 41 82 00 0C */ beq lbl_80395D7C +/* 80395D74 00392CD4 80 1F 00 04 */ lwz r0, 4(r31) +/* 80395D78 00392CD8 90 03 00 04 */ stw r0, 4(r3) +lbl_80395D7C: +/* 80395D7C 00392CDC 80 6D AE 3C */ lwz r3, lbl_805A99FC@sda21(r13) +/* 80395D80 00392CE0 38 00 00 00 */ li r0, 0 +/* 80395D84 00392CE4 98 1F 00 08 */ stb r0, 8(r31) +/* 80395D88 00392CE8 28 03 00 00 */ cmplwi r3, 0 +/* 80395D8C 00392CEC 41 82 00 08 */ beq lbl_80395D94 +/* 80395D90 00392CF0 93 E3 00 04 */ stw r31, 4(r3) +lbl_80395D94: +/* 80395D94 00392CF4 80 6D AE 3C */ lwz r3, lbl_805A99FC@sda21(r13) +/* 80395D98 00392CF8 38 00 00 00 */ li r0, 0 +/* 80395D9C 00392CFC 90 7F 00 00 */ stw r3, 0(r31) +/* 80395DA0 00392D00 90 1F 00 04 */ stw r0, 4(r31) +/* 80395DA4 00392D04 93 ED AE 3C */ stw r31, lbl_805A99FC@sda21(r13) +/* 80395DA8 00392D08 48 00 00 2C */ b lbl_80395DD4 +lbl_80395DAC: +/* 80395DAC 00392D0C 54 80 00 7E */ clrlwi r0, r4, 1 +/* 80395DB0 00392D10 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80395DB4 00392D14 1C 80 18 68 */ mulli r4, r0, 0x1868 +/* 80395DB8 00392D18 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80395DBC 00392D1C 7C 60 22 14 */ add r3, r0, r4 +/* 80395DC0 00392D20 88 03 00 08 */ lbz r0, 8(r3) +/* 80395DC4 00392D24 28 00 00 00 */ cmplwi r0, 0 +/* 80395DC8 00392D28 41 82 00 0C */ beq lbl_80395DD4 +/* 80395DCC 00392D2C 38 00 00 00 */ li r0, 0 +/* 80395DD0 00392D30 90 03 0E DC */ stw r0, 0xedc(r3) +lbl_80395DD4: +/* 80395DD4 00392D34 39 61 00 20 */ addi r11, r1, 0x20 +/* 80395DD8 00392D38 4B FF 3C F1 */ bl _restgpr_27 +/* 80395DDC 00392D3C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80395DE0 00392D40 7C 08 03 A6 */ mtlr r0 +/* 80395DE4 00392D44 38 21 00 20 */ addi r1, r1, 0x20 +/* 80395DE8 00392D48 4E 80 00 20 */ blr + +.global seqKillInstancesByGroupID +seqKillInstancesByGroupID: +/* 80395DEC 00392D4C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80395DF0 00392D50 7C 08 02 A6 */ mflr r0 +/* 80395DF4 00392D54 90 01 00 24 */ stw r0, 0x24(r1) +/* 80395DF8 00392D58 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80395DFC 00392D5C 54 7F 04 3E */ clrlwi r31, r3, 0x10 +/* 80395E00 00392D60 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80395E04 00392D64 93 A1 00 14 */ stw r29, 0x14(r1) +/* 80395E08 00392D68 7C 7D 1B 78 */ mr r29, r3 +/* 80395E0C 00392D6C 83 CD AE 44 */ lwz r30, lbl_805A9A04@sda21(r13) +/* 80395E10 00392D70 48 00 00 1C */ b lbl_80395E2C +lbl_80395E14: +/* 80395E14 00392D74 A0 1E 00 0A */ lhz r0, 0xa(r30) +/* 80395E18 00392D78 7C 00 F8 40 */ cmplw r0, r31 +/* 80395E1C 00392D7C 40 82 00 0C */ bne lbl_80395E28 +/* 80395E20 00392D80 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 80395E24 00392D84 4B FF FD 19 */ bl seqStop +lbl_80395E28: +/* 80395E28 00392D88 83 DE 00 00 */ lwz r30, 0(r30) +lbl_80395E2C: +/* 80395E2C 00392D8C 28 1E 00 00 */ cmplwi r30, 0 +/* 80395E30 00392D90 40 82 FF E4 */ bne lbl_80395E14 +/* 80395E34 00392D94 83 CD AE 40 */ lwz r30, lbl_805A9A00@sda21(r13) +/* 80395E38 00392D98 57 BF 04 3E */ clrlwi r31, r29, 0x10 +/* 80395E3C 00392D9C 48 00 00 1C */ b lbl_80395E58 +lbl_80395E40: +/* 80395E40 00392DA0 A0 1E 00 0A */ lhz r0, 0xa(r30) +/* 80395E44 00392DA4 7C 00 F8 40 */ cmplw r0, r31 +/* 80395E48 00392DA8 40 82 00 0C */ bne lbl_80395E54 +/* 80395E4C 00392DAC 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 80395E50 00392DB0 4B FF FC ED */ bl seqStop +lbl_80395E54: +/* 80395E54 00392DB4 83 DE 00 00 */ lwz r30, 0(r30) +lbl_80395E58: +/* 80395E58 00392DB8 28 1E 00 00 */ cmplwi r30, 0 +/* 80395E5C 00392DBC 40 82 FF E4 */ bne lbl_80395E40 +/* 80395E60 00392DC0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80395E64 00392DC4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80395E68 00392DC8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80395E6C 00392DCC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 80395E70 00392DD0 7C 08 03 A6 */ mtlr r0 +/* 80395E74 00392DD4 38 21 00 20 */ addi r1, r1, 0x20 +/* 80395E78 00392DD8 4E 80 00 20 */ blr + +.global seqSpeed +seqSpeed: +/* 80395E7C 00392DDC 80 AD AE 44 */ lwz r5, lbl_805A9A04@sda21(r13) +/* 80395E80 00392DE0 54 66 00 7E */ clrlwi r6, r3, 1 +/* 80395E84 00392DE4 48 00 00 20 */ b lbl_80395EA4 +lbl_80395E88: +/* 80395E88 00392DE8 80 05 00 0C */ lwz r0, 0xc(r5) +/* 80395E8C 00392DEC 7C 00 30 40 */ cmplw r0, r6 +/* 80395E90 00392DF0 40 82 00 10 */ bne lbl_80395EA0 +/* 80395E94 00392DF4 88 A5 00 09 */ lbz r5, 9(r5) +/* 80395E98 00392DF8 50 65 00 00 */ rlwimi r5, r3, 0, 0, 0 +/* 80395E9C 00392DFC 48 00 00 40 */ b lbl_80395EDC +lbl_80395EA0: +/* 80395EA0 00392E00 80 A5 00 00 */ lwz r5, 0(r5) +lbl_80395EA4: +/* 80395EA4 00392E04 28 05 00 00 */ cmplwi r5, 0 +/* 80395EA8 00392E08 40 82 FF E0 */ bne lbl_80395E88 +/* 80395EAC 00392E0C 80 AD AE 40 */ lwz r5, lbl_805A9A00@sda21(r13) +/* 80395EB0 00392E10 48 00 00 20 */ b lbl_80395ED0 +lbl_80395EB4: +/* 80395EB4 00392E14 80 05 00 0C */ lwz r0, 0xc(r5) +/* 80395EB8 00392E18 7C 00 30 40 */ cmplw r0, r6 +/* 80395EBC 00392E1C 40 82 00 10 */ bne lbl_80395ECC +/* 80395EC0 00392E20 88 A5 00 09 */ lbz r5, 9(r5) +/* 80395EC4 00392E24 50 65 00 00 */ rlwimi r5, r3, 0, 0, 0 +/* 80395EC8 00392E28 48 00 00 14 */ b lbl_80395EDC +lbl_80395ECC: +/* 80395ECC 00392E2C 80 A5 00 00 */ lwz r5, 0(r5) +lbl_80395ED0: +/* 80395ED0 00392E30 28 05 00 00 */ cmplwi r5, 0 +/* 80395ED4 00392E34 40 82 FF E0 */ bne lbl_80395EB4 +/* 80395ED8 00392E38 38 A0 FF FF */ li r5, -1 +lbl_80395EDC: +/* 80395EDC 00392E3C 54 A0 00 01 */ rlwinm. r0, r5, 0, 0, 0 +/* 80395EE0 00392E40 40 82 00 58 */ bne lbl_80395F38 +/* 80395EE4 00392E44 1C A5 18 68 */ mulli r5, r5, 0x1868 +/* 80395EE8 00392E48 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80395EEC 00392E4C 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80395EF0 00392E50 7C 60 2A 14 */ add r3, r0, r5 +/* 80395EF4 00392E54 B0 83 15 1A */ sth r4, 0x151a(r3) +/* 80395EF8 00392E58 B0 83 15 52 */ sth r4, 0x1552(r3) +/* 80395EFC 00392E5C B0 83 15 8A */ sth r4, 0x158a(r3) +/* 80395F00 00392E60 B0 83 15 C2 */ sth r4, 0x15c2(r3) +/* 80395F04 00392E64 B0 83 15 FA */ sth r4, 0x15fa(r3) +/* 80395F08 00392E68 B0 83 16 32 */ sth r4, 0x1632(r3) +/* 80395F0C 00392E6C B0 83 16 6A */ sth r4, 0x166a(r3) +/* 80395F10 00392E70 B0 83 16 A2 */ sth r4, 0x16a2(r3) +/* 80395F14 00392E74 B0 83 16 DA */ sth r4, 0x16da(r3) +/* 80395F18 00392E78 B0 83 17 12 */ sth r4, 0x1712(r3) +/* 80395F1C 00392E7C B0 83 17 4A */ sth r4, 0x174a(r3) +/* 80395F20 00392E80 B0 83 17 82 */ sth r4, 0x1782(r3) +/* 80395F24 00392E84 B0 83 17 BA */ sth r4, 0x17ba(r3) +/* 80395F28 00392E88 B0 83 17 F2 */ sth r4, 0x17f2(r3) +/* 80395F2C 00392E8C B0 83 18 2A */ sth r4, 0x182a(r3) +/* 80395F30 00392E90 B0 83 18 62 */ sth r4, 0x1862(r3) +/* 80395F34 00392E94 4E 80 00 20 */ blr +lbl_80395F38: +/* 80395F38 00392E98 54 A0 00 7E */ clrlwi r0, r5, 1 +/* 80395F3C 00392E9C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80395F40 00392EA0 1C A0 18 68 */ mulli r5, r0, 0x1868 +/* 80395F44 00392EA4 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80395F48 00392EA8 7C 60 2A 14 */ add r3, r0, r5 +/* 80395F4C 00392EAC 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 80395F50 00392EB0 60 00 00 20 */ ori r0, r0, 0x20 +/* 80395F54 00392EB4 98 03 0E DA */ stb r0, 0xeda(r3) +/* 80395F58 00392EB8 B0 83 0E D8 */ sth r4, 0xed8(r3) +/* 80395F5C 00392EBC 4E 80 00 20 */ blr + +.global seqContinue +seqContinue: +/* 80395F60 00392EC0 80 8D AE 44 */ lwz r4, lbl_805A9A04@sda21(r13) +/* 80395F64 00392EC4 54 65 00 7E */ clrlwi r5, r3, 1 +/* 80395F68 00392EC8 48 00 00 20 */ b lbl_80395F88 +lbl_80395F6C: +/* 80395F6C 00392ECC 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80395F70 00392ED0 7C 00 28 40 */ cmplw r0, r5 +/* 80395F74 00392ED4 40 82 00 10 */ bne lbl_80395F84 +/* 80395F78 00392ED8 88 84 00 09 */ lbz r4, 9(r4) +/* 80395F7C 00392EDC 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80395F80 00392EE0 48 00 00 40 */ b lbl_80395FC0 +lbl_80395F84: +/* 80395F84 00392EE4 80 84 00 00 */ lwz r4, 0(r4) +lbl_80395F88: +/* 80395F88 00392EE8 28 04 00 00 */ cmplwi r4, 0 +/* 80395F8C 00392EEC 40 82 FF E0 */ bne lbl_80395F6C +/* 80395F90 00392EF0 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80395F94 00392EF4 48 00 00 20 */ b lbl_80395FB4 +lbl_80395F98: +/* 80395F98 00392EF8 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80395F9C 00392EFC 7C 00 28 40 */ cmplw r0, r5 +/* 80395FA0 00392F00 40 82 00 10 */ bne lbl_80395FB0 +/* 80395FA4 00392F04 88 84 00 09 */ lbz r4, 9(r4) +/* 80395FA8 00392F08 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80395FAC 00392F0C 48 00 00 14 */ b lbl_80395FC0 +lbl_80395FB0: +/* 80395FB0 00392F10 80 84 00 00 */ lwz r4, 0(r4) +lbl_80395FB4: +/* 80395FB4 00392F14 28 04 00 00 */ cmplwi r4, 0 +/* 80395FB8 00392F18 40 82 FF E0 */ bne lbl_80395F98 +/* 80395FBC 00392F1C 38 80 FF FF */ li r4, -1 +lbl_80395FC0: +/* 80395FC0 00392F20 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0 +/* 80395FC4 00392F24 40 82 00 80 */ bne lbl_80396044 +/* 80395FC8 00392F28 1C 84 18 68 */ mulli r4, r4, 0x1868 +/* 80395FCC 00392F2C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80395FD0 00392F30 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80395FD4 00392F34 7C 80 22 14 */ add r4, r0, r4 +/* 80395FD8 00392F38 88 04 00 08 */ lbz r0, 8(r4) +/* 80395FDC 00392F3C 28 00 00 02 */ cmplwi r0, 2 +/* 80395FE0 00392F40 4C 82 00 20 */ bnelr +/* 80395FE4 00392F44 80 64 00 04 */ lwz r3, 4(r4) +/* 80395FE8 00392F48 28 03 00 00 */ cmplwi r3, 0 +/* 80395FEC 00392F4C 41 82 00 10 */ beq lbl_80395FFC +/* 80395FF0 00392F50 80 04 00 00 */ lwz r0, 0(r4) +/* 80395FF4 00392F54 90 03 00 00 */ stw r0, 0(r3) +/* 80395FF8 00392F58 48 00 00 0C */ b lbl_80396004 +lbl_80395FFC: +/* 80395FFC 00392F5C 80 04 00 00 */ lwz r0, 0(r4) +/* 80396000 00392F60 90 0D AE 40 */ stw r0, lbl_805A9A00@sda21(r13) +lbl_80396004: +/* 80396004 00392F64 80 64 00 00 */ lwz r3, 0(r4) +/* 80396008 00392F68 28 03 00 00 */ cmplwi r3, 0 +/* 8039600C 00392F6C 41 82 00 0C */ beq lbl_80396018 +/* 80396010 00392F70 80 04 00 04 */ lwz r0, 4(r4) +/* 80396014 00392F74 90 03 00 04 */ stw r0, 4(r3) +lbl_80396018: +/* 80396018 00392F78 80 6D AE 44 */ lwz r3, lbl_805A9A04@sda21(r13) +/* 8039601C 00392F7C 28 03 00 00 */ cmplwi r3, 0 +/* 80396020 00392F80 90 64 00 00 */ stw r3, 0(r4) +/* 80396024 00392F84 41 82 00 08 */ beq lbl_8039602C +/* 80396028 00392F88 90 83 00 04 */ stw r4, 4(r3) +lbl_8039602C: +/* 8039602C 00392F8C 38 60 00 00 */ li r3, 0 +/* 80396030 00392F90 38 00 00 01 */ li r0, 1 +/* 80396034 00392F94 90 64 00 04 */ stw r3, 4(r4) +/* 80396038 00392F98 90 8D AE 44 */ stw r4, lbl_805A9A04@sda21(r13) +/* 8039603C 00392F9C 98 04 00 08 */ stb r0, 8(r4) +/* 80396040 00392FA0 4E 80 00 20 */ blr +lbl_80396044: +/* 80396044 00392FA4 54 80 00 7E */ clrlwi r0, r4, 1 +/* 80396048 00392FA8 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 8039604C 00392FAC 1C 00 18 68 */ mulli r0, r0, 0x1868 +/* 80396050 00392FB0 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396054 00392FB4 7C 63 02 14 */ add r3, r3, r0 +/* 80396058 00392FB8 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 8039605C 00392FBC 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 80396060 00392FC0 98 03 0E DA */ stb r0, 0xeda(r3) +/* 80396064 00392FC4 4E 80 00 20 */ blr + +.global seqMute +seqMute: +/* 80396068 00392FC8 80 CD AE 44 */ lwz r6, lbl_805A9A04@sda21(r13) +/* 8039606C 00392FCC 54 67 00 7E */ clrlwi r7, r3, 1 +/* 80396070 00392FD0 48 00 00 20 */ b lbl_80396090 +lbl_80396074: +/* 80396074 00392FD4 80 06 00 0C */ lwz r0, 0xc(r6) +/* 80396078 00392FD8 7C 00 38 40 */ cmplw r0, r7 +/* 8039607C 00392FDC 40 82 00 10 */ bne lbl_8039608C +/* 80396080 00392FE0 88 C6 00 09 */ lbz r6, 9(r6) +/* 80396084 00392FE4 50 66 00 00 */ rlwimi r6, r3, 0, 0, 0 +/* 80396088 00392FE8 48 00 00 40 */ b lbl_803960C8 +lbl_8039608C: +/* 8039608C 00392FEC 80 C6 00 00 */ lwz r6, 0(r6) +lbl_80396090: +/* 80396090 00392FF0 28 06 00 00 */ cmplwi r6, 0 +/* 80396094 00392FF4 40 82 FF E0 */ bne lbl_80396074 +/* 80396098 00392FF8 80 CD AE 40 */ lwz r6, lbl_805A9A00@sda21(r13) +/* 8039609C 00392FFC 48 00 00 20 */ b lbl_803960BC +lbl_803960A0: +/* 803960A0 00393000 80 06 00 0C */ lwz r0, 0xc(r6) +/* 803960A4 00393004 7C 00 38 40 */ cmplw r0, r7 +/* 803960A8 00393008 40 82 00 10 */ bne lbl_803960B8 +/* 803960AC 0039300C 88 C6 00 09 */ lbz r6, 9(r6) +/* 803960B0 00393010 50 66 00 00 */ rlwimi r6, r3, 0, 0, 0 +/* 803960B4 00393014 48 00 00 14 */ b lbl_803960C8 +lbl_803960B8: +/* 803960B8 00393018 80 C6 00 00 */ lwz r6, 0(r6) +lbl_803960BC: +/* 803960BC 0039301C 28 06 00 00 */ cmplwi r6, 0 +/* 803960C0 00393020 40 82 FF E0 */ bne lbl_803960A0 +/* 803960C4 00393024 38 C0 FF FF */ li r6, -1 +lbl_803960C8: +/* 803960C8 00393028 3C 06 00 01 */ addis r0, r6, 1 +/* 803960CC 0039302C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803960D0 00393030 4D 82 00 20 */ beqlr +/* 803960D4 00393034 54 C0 00 01 */ rlwinm. r0, r6, 0, 0, 0 +/* 803960D8 00393038 40 82 00 20 */ bne lbl_803960F8 +/* 803960DC 0039303C 1C C6 18 68 */ mulli r6, r6, 0x1868 +/* 803960E0 00393040 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803960E4 00393044 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803960E8 00393048 7C 60 32 14 */ add r3, r0, r6 +/* 803960EC 0039304C 90 83 01 1C */ stw r4, 0x11c(r3) +/* 803960F0 00393050 90 A3 01 20 */ stw r5, 0x120(r3) +/* 803960F4 00393054 4E 80 00 20 */ blr +lbl_803960F8: +/* 803960F8 00393058 54 C0 00 7E */ clrlwi r0, r6, 1 +/* 803960FC 0039305C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396100 00393060 1C C0 18 68 */ mulli r6, r0, 0x1868 +/* 80396104 00393064 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80396108 00393068 7C 60 32 14 */ add r3, r0, r6 +/* 8039610C 0039306C 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 80396110 00393070 60 00 00 10 */ ori r0, r0, 0x10 +/* 80396114 00393074 98 03 0E DA */ stb r0, 0xeda(r3) +/* 80396118 00393078 90 83 0E D0 */ stw r4, 0xed0(r3) +/* 8039611C 0039307C 90 A3 0E D4 */ stw r5, 0xed4(r3) +/* 80396120 00393080 4E 80 00 20 */ blr + +.global seqVolume +seqVolume: +/* 80396124 00393084 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80396128 00393088 7C 08 02 A6 */ mflr r0 +/* 8039612C 0039308C 90 01 00 24 */ stw r0, 0x24(r1) +/* 80396130 00393090 39 61 00 20 */ addi r11, r1, 0x20 +/* 80396134 00393094 4B FF 39 49 */ bl sub_80389a7c +/* 80396138 00393098 81 0D AE 44 */ lwz r8, lbl_805A9A04@sda21(r13) +/* 8039613C 0039309C 7C 7E 1B 78 */ mr r30, r3 +/* 80396140 003930A0 7C 9F 23 78 */ mr r31, r4 +/* 80396144 003930A4 7C A7 2B 78 */ mr r7, r5 +/* 80396148 003930A8 54 A3 00 7E */ clrlwi r3, r5, 1 +/* 8039614C 003930AC 48 00 00 20 */ b lbl_8039616C +lbl_80396150: +/* 80396150 003930B0 80 08 00 0C */ lwz r0, 0xc(r8) +/* 80396154 003930B4 7C 00 18 40 */ cmplw r0, r3 +/* 80396158 003930B8 40 82 00 10 */ bne lbl_80396168 +/* 8039615C 003930BC 88 68 00 09 */ lbz r3, 9(r8) +/* 80396160 003930C0 50 A3 00 00 */ rlwimi r3, r5, 0, 0, 0 +/* 80396164 003930C4 48 00 00 40 */ b lbl_803961A4 +lbl_80396168: +/* 80396168 003930C8 81 08 00 00 */ lwz r8, 0(r8) +lbl_8039616C: +/* 8039616C 003930CC 28 08 00 00 */ cmplwi r8, 0 +/* 80396170 003930D0 40 82 FF E0 */ bne lbl_80396150 +/* 80396174 003930D4 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80396178 003930D8 48 00 00 20 */ b lbl_80396198 +lbl_8039617C: +/* 8039617C 003930DC 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80396180 003930E0 7C 00 18 40 */ cmplw r0, r3 +/* 80396184 003930E4 40 82 00 10 */ bne lbl_80396194 +/* 80396188 003930E8 88 64 00 09 */ lbz r3, 9(r4) +/* 8039618C 003930EC 50 A3 00 00 */ rlwimi r3, r5, 0, 0, 0 +/* 80396190 003930F0 48 00 00 14 */ b lbl_803961A4 +lbl_80396194: +/* 80396194 003930F4 80 84 00 00 */ lwz r4, 0(r4) +lbl_80396198: +/* 80396198 003930F8 28 04 00 00 */ cmplwi r4, 0 +/* 8039619C 003930FC 40 82 FF E0 */ bne lbl_8039617C +/* 803961A0 00393100 38 60 FF FF */ li r3, -1 +lbl_803961A4: +/* 803961A4 00393104 3C 03 00 01 */ addis r0, r3, 1 +/* 803961A8 00393108 28 00 FF FF */ cmplwi r0, 0xffff +/* 803961AC 0039310C 41 82 01 2C */ beq lbl_803962D8 +/* 803961B0 00393110 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 +/* 803961B4 00393114 40 82 00 70 */ bne lbl_80396224 +/* 803961B8 00393118 1F A3 18 68 */ mulli r29, r3, 0x1868 +/* 803961BC 0039311C 3C 80 80 54 */ lis r4, lbl_805439D0@ha +/* 803961C0 00393120 7F C3 F3 78 */ mr r3, r30 +/* 803961C4 00393124 38 04 39 D0 */ addi r0, r4, lbl_805439D0@l +/* 803961C8 00393128 7C A0 EA 14 */ add r5, r0, r29 +/* 803961CC 0039312C 7F E4 FB 78 */ mr r4, r31 +/* 803961D0 00393130 88 A5 0E B0 */ lbz r5, 0xeb0(r5) +/* 803961D4 00393134 48 00 52 15 */ bl synthVolume +/* 803961D8 00393138 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803961DC 0039313C 3B 60 00 00 */ li r27, 0 +/* 803961E0 00393140 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803961E4 00393144 7F 80 EA 14 */ add r28, r0, r29 +/* 803961E8 00393148 3B BC 0E B0 */ addi r29, r28, 0xeb0 +lbl_803961EC: +/* 803961EC 0039314C 88 BC 03 24 */ lbz r5, 0x324(r28) +/* 803961F0 00393150 88 1D 00 00 */ lbz r0, 0(r29) +/* 803961F4 00393154 7C 05 00 40 */ cmplw r5, r0 +/* 803961F8 00393158 41 82 00 18 */ beq lbl_80396210 +/* 803961FC 0039315C 7F C3 F3 78 */ mr r3, r30 +/* 80396200 00393160 7F E4 FB 78 */ mr r4, r31 +/* 80396204 00393164 38 C0 00 00 */ li r6, 0 +/* 80396208 00393168 38 E0 FF FF */ li r7, -1 +/* 8039620C 0039316C 48 00 51 DD */ bl synthVolume +lbl_80396210: +/* 80396210 00393170 3B 7B 00 01 */ addi r27, r27, 1 +/* 80396214 00393174 3B 9C 00 01 */ addi r28, r28, 1 +/* 80396218 00393178 28 1B 00 40 */ cmplwi r27, 0x40 +/* 8039621C 0039317C 41 80 FF D0 */ blt lbl_803961EC +/* 80396220 00393180 48 00 00 B8 */ b lbl_803962D8 +lbl_80396224: +/* 80396224 00393184 54 C0 07 3E */ clrlwi r0, r6, 0x1c +/* 80396228 00393188 2C 00 00 02 */ cmpwi r0, 2 +/* 8039622C 0039318C 41 82 00 60 */ beq lbl_8039628C +/* 80396230 00393190 40 80 00 14 */ bge lbl_80396244 +/* 80396234 00393194 2C 00 00 00 */ cmpwi r0, 0 +/* 80396238 00393198 41 82 00 18 */ beq lbl_80396250 +/* 8039623C 0039319C 40 80 00 30 */ bge lbl_8039626C +/* 80396240 003931A0 48 00 00 98 */ b lbl_803962D8 +lbl_80396244: +/* 80396244 003931A4 2C 00 00 04 */ cmpwi r0, 4 +/* 80396248 003931A8 40 80 00 90 */ bge lbl_803962D8 +/* 8039624C 003931AC 48 00 00 68 */ b lbl_803962B4 +lbl_80396250: +/* 80396250 003931B0 54 60 00 7E */ clrlwi r0, r3, 1 +/* 80396254 003931B4 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396258 003931B8 1C 00 18 68 */ mulli r0, r0, 0x1868 +/* 8039625C 003931BC 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396260 003931C0 7C 63 02 14 */ add r3, r3, r0 +/* 80396264 003931C4 9B C3 0E CC */ stb r30, 0xecc(r3) +/* 80396268 003931C8 48 00 00 70 */ b lbl_803962D8 +lbl_8039626C: +/* 8039626C 003931CC 54 60 00 7E */ clrlwi r0, r3, 1 +/* 80396270 003931D0 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396274 003931D4 1C 00 18 68 */ mulli r0, r0, 0x1868 +/* 80396278 003931D8 38 80 00 00 */ li r4, 0 +/* 8039627C 003931DC 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396280 003931E0 7C 63 02 14 */ add r3, r3, r0 +/* 80396284 003931E4 90 83 0E DC */ stw r4, 0xedc(r3) +/* 80396288 003931E8 48 00 00 50 */ b lbl_803962D8 +lbl_8039628C: +/* 8039628C 003931EC 54 60 00 7E */ clrlwi r0, r3, 1 +/* 80396290 003931F0 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396294 003931F4 1C 80 18 68 */ mulli r4, r0, 0x1868 +/* 80396298 003931F8 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 8039629C 003931FC 7C 60 22 14 */ add r3, r0, r4 +/* 803962A0 00393200 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 803962A4 00393204 60 00 00 08 */ ori r0, r0, 8 +/* 803962A8 00393208 98 03 0E DA */ stb r0, 0xeda(r3) +/* 803962AC 0039320C 9B C3 0E CC */ stb r30, 0xecc(r3) +/* 803962B0 00393210 48 00 00 28 */ b lbl_803962D8 +lbl_803962B4: +/* 803962B4 00393214 54 60 00 7E */ clrlwi r0, r3, 1 +/* 803962B8 00393218 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803962BC 0039321C 1C 80 18 68 */ mulli r4, r0, 0x1868 +/* 803962C0 00393220 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803962C4 00393224 7C 60 22 14 */ add r3, r0, r4 +/* 803962C8 00393228 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 803962CC 0039322C 60 00 00 80 */ ori r0, r0, 0x80 +/* 803962D0 00393230 98 03 0E DA */ stb r0, 0xeda(r3) +/* 803962D4 00393234 9B C3 0E CC */ stb r30, 0xecc(r3) +lbl_803962D8: +/* 803962D8 00393238 39 61 00 20 */ addi r11, r1, 0x20 +/* 803962DC 0039323C 4B FF 37 ED */ bl _restgpr_27 +/* 803962E0 00393240 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803962E4 00393244 7C 08 03 A6 */ mtlr r0 +/* 803962E8 00393248 38 21 00 20 */ addi r1, r1, 0x20 +/* 803962EC 0039324C 4E 80 00 20 */ blr + +.global seqCrossFade +seqCrossFade: +/* 803962F0 00393250 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 803962F4 00393254 7C 08 02 A6 */ mflr r0 +/* 803962F8 00393258 90 01 00 54 */ stw r0, 0x54(r1) +/* 803962FC 0039325C 39 61 00 50 */ addi r11, r1, 0x50 +/* 80396300 00393260 4B FF 37 75 */ bl func_80389A74 +/* 80396304 00393264 7C 7F 1B 78 */ mr r31, r3 +/* 80396308 00393268 80 CD AE 44 */ lwz r6, lbl_805A9A04@sda21(r13) +/* 8039630C 0039326C 80 E3 00 00 */ lwz r7, 0(r3) +/* 80396310 00393270 7C 9D 23 78 */ mr r29, r4 +/* 80396314 00393274 7C BC 2B 78 */ mr r28, r5 +/* 80396318 00393278 7C C3 33 78 */ mr r3, r6 +/* 8039631C 0039327C 54 E4 00 7E */ clrlwi r4, r7, 1 +/* 80396320 00393280 48 00 00 20 */ b lbl_80396340 +lbl_80396324: +/* 80396324 00393284 80 03 00 0C */ lwz r0, 0xc(r3) +/* 80396328 00393288 7C 00 20 40 */ cmplw r0, r4 +/* 8039632C 0039328C 40 82 00 10 */ bne lbl_8039633C +/* 80396330 00393290 88 63 00 09 */ lbz r3, 9(r3) +/* 80396334 00393294 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 80396338 00393298 48 00 00 40 */ b lbl_80396378 +lbl_8039633C: +/* 8039633C 0039329C 80 63 00 00 */ lwz r3, 0(r3) +lbl_80396340: +/* 80396340 003932A0 28 03 00 00 */ cmplwi r3, 0 +/* 80396344 003932A4 40 82 FF E0 */ bne lbl_80396324 +/* 80396348 003932A8 80 6D AE 40 */ lwz r3, lbl_805A9A00@sda21(r13) +/* 8039634C 003932AC 48 00 00 20 */ b lbl_8039636C +lbl_80396350: +/* 80396350 003932B0 80 03 00 0C */ lwz r0, 0xc(r3) +/* 80396354 003932B4 7C 00 20 40 */ cmplw r0, r4 +/* 80396358 003932B8 40 82 00 10 */ bne lbl_80396368 +/* 8039635C 003932BC 88 63 00 09 */ lbz r3, 9(r3) +/* 80396360 003932C0 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 80396364 003932C4 48 00 00 14 */ b lbl_80396378 +lbl_80396368: +/* 80396368 003932C8 80 63 00 00 */ lwz r3, 0(r3) +lbl_8039636C: +/* 8039636C 003932CC 28 03 00 00 */ cmplwi r3, 0 +/* 80396370 003932D0 40 82 FF E0 */ bne lbl_80396350 +/* 80396374 003932D4 38 60 FF FF */ li r3, -1 +lbl_80396378: +/* 80396378 003932D8 88 9F 00 26 */ lbz r4, 0x26(r31) +/* 8039637C 003932DC 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d +/* 80396380 003932E0 41 82 00 8C */ beq lbl_8039640C +/* 80396384 003932E4 1C C3 18 68 */ mulli r6, r3, 0x1868 +/* 80396388 003932E8 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 8039638C 003932EC 80 9F 00 00 */ lwz r4, 0(r31) +/* 80396390 003932F0 38 00 00 01 */ li r0, 1 +/* 80396394 003932F4 38 A3 39 D0 */ addi r5, r3, lbl_805439D0@l +/* 80396398 003932F8 80 7F 00 04 */ lwz r3, 4(r31) +/* 8039639C 003932FC 7C A5 32 14 */ add r5, r5, r6 +/* 803963A0 00393300 90 85 0E B4 */ stw r4, 0xeb4(r5) +/* 803963A4 00393304 90 65 0E B8 */ stw r3, 0xeb8(r5) +/* 803963A8 00393308 80 9F 00 08 */ lwz r4, 8(r31) +/* 803963AC 0039330C 80 7F 00 0C */ lwz r3, 0xc(r31) +/* 803963B0 00393310 90 85 0E BC */ stw r4, 0xebc(r5) +/* 803963B4 00393314 90 65 0E C0 */ stw r3, 0xec0(r5) +/* 803963B8 00393318 80 9F 00 10 */ lwz r4, 0x10(r31) +/* 803963BC 0039331C 80 7F 00 14 */ lwz r3, 0x14(r31) +/* 803963C0 00393320 90 85 0E C4 */ stw r4, 0xec4(r5) +/* 803963C4 00393324 90 65 0E C8 */ stw r3, 0xec8(r5) +/* 803963C8 00393328 80 9F 00 18 */ lwz r4, 0x18(r31) +/* 803963CC 0039332C 80 7F 00 1C */ lwz r3, 0x1c(r31) +/* 803963D0 00393330 90 85 0E CC */ stw r4, 0xecc(r5) +/* 803963D4 00393334 90 65 0E D0 */ stw r3, 0xed0(r5) +/* 803963D8 00393338 80 9F 00 20 */ lwz r4, 0x20(r31) +/* 803963DC 0039333C 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803963E0 00393340 90 85 0E D4 */ stw r4, 0xed4(r5) +/* 803963E4 00393344 90 65 0E D8 */ stw r3, 0xed8(r5) +/* 803963E8 00393348 98 05 0E E0 */ stb r0, 0xee0(r5) +/* 803963EC 0039334C 93 A5 0E DC */ stw r29, 0xedc(r5) +/* 803963F0 00393350 88 05 0E DA */ lbz r0, 0xeda(r5) +/* 803963F4 00393354 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c +/* 803963F8 00393358 98 05 0E DA */ stb r0, 0xeda(r5) +/* 803963FC 0039335C 80 1F 00 00 */ lwz r0, 0(r31) +/* 80396400 00393360 64 00 80 00 */ oris r0, r0, 0x8000 +/* 80396404 00393364 90 1D 00 00 */ stw r0, 0(r29) +/* 80396408 00393368 48 00 0A 28 */ b lbl_80396E30 +lbl_8039640C: +/* 8039640C 0039336C 57 80 06 3F */ clrlwi. r0, r28, 0x18 +/* 80396410 00393370 41 82 03 44 */ beq lbl_80396754 +/* 80396414 00393374 A0 1F 00 04 */ lhz r0, 4(r31) +/* 80396418 00393378 38 60 00 05 */ li r3, 5 +/* 8039641C 0039337C 28 00 00 05 */ cmplwi r0, 5 +/* 80396420 00393380 41 80 00 08 */ blt lbl_80396428 +/* 80396424 00393384 7C 03 03 78 */ mr r3, r0 +lbl_80396428: +/* 80396428 00393388 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 8039642C 0039338C 54 7E 04 3E */ clrlwi r30, r3, 0x10 +/* 80396430 00393390 41 82 01 10 */ beq lbl_80396540 +/* 80396434 00393394 54 E3 00 7E */ clrlwi r3, r7, 1 +/* 80396438 00393398 48 00 00 20 */ b lbl_80396458 +lbl_8039643C: +/* 8039643C 0039339C 80 06 00 0C */ lwz r0, 0xc(r6) +/* 80396440 003933A0 7C 00 18 40 */ cmplw r0, r3 +/* 80396444 003933A4 40 82 00 10 */ bne lbl_80396454 +/* 80396448 003933A8 88 66 00 09 */ lbz r3, 9(r6) +/* 8039644C 003933AC 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 80396450 003933B0 48 00 00 40 */ b lbl_80396490 +lbl_80396454: +/* 80396454 003933B4 80 C6 00 00 */ lwz r6, 0(r6) +lbl_80396458: +/* 80396458 003933B8 28 06 00 00 */ cmplwi r6, 0 +/* 8039645C 003933BC 40 82 FF E0 */ bne lbl_8039643C +/* 80396460 003933C0 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80396464 003933C4 48 00 00 20 */ b lbl_80396484 +lbl_80396468: +/* 80396468 003933C8 80 04 00 0C */ lwz r0, 0xc(r4) +/* 8039646C 003933CC 7C 00 18 40 */ cmplw r0, r3 +/* 80396470 003933D0 40 82 00 10 */ bne lbl_80396480 +/* 80396474 003933D4 88 64 00 09 */ lbz r3, 9(r4) +/* 80396478 003933D8 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 8039647C 003933DC 48 00 00 14 */ b lbl_80396490 +lbl_80396480: +/* 80396480 003933E0 80 84 00 00 */ lwz r4, 0(r4) +lbl_80396484: +/* 80396484 003933E4 28 04 00 00 */ cmplwi r4, 0 +/* 80396488 003933E8 40 82 FF E0 */ bne lbl_80396468 +/* 8039648C 003933EC 38 60 FF FF */ li r3, -1 +lbl_80396490: +/* 80396490 003933F0 3C 03 00 01 */ addis r0, r3, 1 +/* 80396494 003933F4 28 00 FF FF */ cmplwi r0, 0xffff +/* 80396498 003933F8 41 82 03 10 */ beq lbl_803967A8 +/* 8039649C 003933FC 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 +/* 803964A0 00393400 40 82 00 74 */ bne lbl_80396514 +/* 803964A4 00393404 1F 43 18 68 */ mulli r26, r3, 0x1868 +/* 803964A8 00393408 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803964AC 0039340C 7F C4 F3 78 */ mr r4, r30 +/* 803964B0 00393410 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803964B4 00393414 7C 60 D2 14 */ add r3, r0, r26 +/* 803964B8 00393418 38 C0 00 02 */ li r6, 2 +/* 803964BC 0039341C 88 A3 0E B0 */ lbz r5, 0xeb0(r3) +/* 803964C0 00393420 38 60 00 00 */ li r3, 0 +/* 803964C4 00393424 48 00 4F 25 */ bl synthVolume +/* 803964C8 00393428 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803964CC 0039342C 3B 60 00 00 */ li r27, 0 +/* 803964D0 00393430 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803964D4 00393434 7F 20 D2 14 */ add r25, r0, r26 +/* 803964D8 00393438 3B 59 0E B0 */ addi r26, r25, 0xeb0 +lbl_803964DC: +/* 803964DC 0039343C 88 B9 03 24 */ lbz r5, 0x324(r25) +/* 803964E0 00393440 88 1A 00 00 */ lbz r0, 0(r26) +/* 803964E4 00393444 7C 05 00 40 */ cmplw r5, r0 +/* 803964E8 00393448 41 82 00 18 */ beq lbl_80396500 +/* 803964EC 0039344C 7F C4 F3 78 */ mr r4, r30 +/* 803964F0 00393450 38 60 00 00 */ li r3, 0 +/* 803964F4 00393454 38 C0 00 00 */ li r6, 0 +/* 803964F8 00393458 38 E0 FF FF */ li r7, -1 +/* 803964FC 0039345C 48 00 4E ED */ bl synthVolume +lbl_80396500: +/* 80396500 00393460 3B 7B 00 01 */ addi r27, r27, 1 +/* 80396504 00393464 3B 39 00 01 */ addi r25, r25, 1 +/* 80396508 00393468 28 1B 00 40 */ cmplwi r27, 0x40 +/* 8039650C 0039346C 41 80 FF D0 */ blt lbl_803964DC +/* 80396510 00393470 48 00 02 98 */ b lbl_803967A8 +lbl_80396514: +/* 80396514 00393474 54 60 00 7E */ clrlwi r0, r3, 1 +/* 80396518 00393478 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 8039651C 0039347C 1C 80 18 68 */ mulli r4, r0, 0x1868 +/* 80396520 00393480 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396524 00393484 38 00 00 00 */ li r0, 0 +/* 80396528 00393488 7C 83 22 14 */ add r4, r3, r4 +/* 8039652C 0039348C 88 64 0E DA */ lbz r3, 0xeda(r4) +/* 80396530 00393490 60 63 00 08 */ ori r3, r3, 8 +/* 80396534 00393494 98 64 0E DA */ stb r3, 0xeda(r4) +/* 80396538 00393498 98 04 0E CC */ stb r0, 0xecc(r4) +/* 8039653C 0039349C 48 00 02 6C */ b lbl_803967A8 +lbl_80396540: +/* 80396540 003934A0 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 +/* 80396544 003934A4 41 82 01 10 */ beq lbl_80396654 +/* 80396548 003934A8 54 E3 00 7E */ clrlwi r3, r7, 1 +/* 8039654C 003934AC 48 00 00 20 */ b lbl_8039656C +lbl_80396550: +/* 80396550 003934B0 80 06 00 0C */ lwz r0, 0xc(r6) +/* 80396554 003934B4 7C 00 18 40 */ cmplw r0, r3 +/* 80396558 003934B8 40 82 00 10 */ bne lbl_80396568 +/* 8039655C 003934BC 88 66 00 09 */ lbz r3, 9(r6) +/* 80396560 003934C0 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 80396564 003934C4 48 00 00 40 */ b lbl_803965A4 +lbl_80396568: +/* 80396568 003934C8 80 C6 00 00 */ lwz r6, 0(r6) +lbl_8039656C: +/* 8039656C 003934CC 28 06 00 00 */ cmplwi r6, 0 +/* 80396570 003934D0 40 82 FF E0 */ bne lbl_80396550 +/* 80396574 003934D4 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80396578 003934D8 48 00 00 20 */ b lbl_80396598 +lbl_8039657C: +/* 8039657C 003934DC 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80396580 003934E0 7C 00 18 40 */ cmplw r0, r3 +/* 80396584 003934E4 40 82 00 10 */ bne lbl_80396594 +/* 80396588 003934E8 88 64 00 09 */ lbz r3, 9(r4) +/* 8039658C 003934EC 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 80396590 003934F0 48 00 00 14 */ b lbl_803965A4 +lbl_80396594: +/* 80396594 003934F4 80 84 00 00 */ lwz r4, 0(r4) +lbl_80396598: +/* 80396598 003934F8 28 04 00 00 */ cmplwi r4, 0 +/* 8039659C 003934FC 40 82 FF E0 */ bne lbl_8039657C +/* 803965A0 00393500 38 60 FF FF */ li r3, -1 +lbl_803965A4: +/* 803965A4 00393504 3C 03 00 01 */ addis r0, r3, 1 +/* 803965A8 00393508 28 00 FF FF */ cmplwi r0, 0xffff +/* 803965AC 0039350C 41 82 01 FC */ beq lbl_803967A8 +/* 803965B0 00393510 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 +/* 803965B4 00393514 40 82 00 74 */ bne lbl_80396628 +/* 803965B8 00393518 1F 23 18 68 */ mulli r25, r3, 0x1868 +/* 803965BC 0039351C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803965C0 00393520 7F C4 F3 78 */ mr r4, r30 +/* 803965C4 00393524 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803965C8 00393528 7C 60 CA 14 */ add r3, r0, r25 +/* 803965CC 0039352C 38 C0 00 03 */ li r6, 3 +/* 803965D0 00393530 88 A3 0E B0 */ lbz r5, 0xeb0(r3) +/* 803965D4 00393534 38 60 00 00 */ li r3, 0 +/* 803965D8 00393538 48 00 4E 11 */ bl synthVolume +/* 803965DC 0039353C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803965E0 00393540 3B 60 00 00 */ li r27, 0 +/* 803965E4 00393544 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803965E8 00393548 7F 20 CA 14 */ add r25, r0, r25 +/* 803965EC 0039354C 3B 59 0E B0 */ addi r26, r25, 0xeb0 +lbl_803965F0: +/* 803965F0 00393550 88 B9 03 24 */ lbz r5, 0x324(r25) +/* 803965F4 00393554 88 1A 00 00 */ lbz r0, 0(r26) +/* 803965F8 00393558 7C 05 00 40 */ cmplw r5, r0 +/* 803965FC 0039355C 41 82 00 18 */ beq lbl_80396614 +/* 80396600 00393560 7F C4 F3 78 */ mr r4, r30 +/* 80396604 00393564 38 60 00 00 */ li r3, 0 +/* 80396608 00393568 38 C0 00 00 */ li r6, 0 +/* 8039660C 0039356C 38 E0 FF FF */ li r7, -1 +/* 80396610 00393570 48 00 4D D9 */ bl synthVolume +lbl_80396614: +/* 80396614 00393574 3B 7B 00 01 */ addi r27, r27, 1 +/* 80396618 00393578 3B 39 00 01 */ addi r25, r25, 1 +/* 8039661C 0039357C 28 1B 00 40 */ cmplwi r27, 0x40 +/* 80396620 00393580 41 80 FF D0 */ blt lbl_803965F0 +/* 80396624 00393584 48 00 01 84 */ b lbl_803967A8 +lbl_80396628: +/* 80396628 00393588 54 60 00 7E */ clrlwi r0, r3, 1 +/* 8039662C 0039358C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396630 00393590 1C 80 18 68 */ mulli r4, r0, 0x1868 +/* 80396634 00393594 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396638 00393598 38 00 00 00 */ li r0, 0 +/* 8039663C 0039359C 7C 83 22 14 */ add r4, r3, r4 +/* 80396640 003935A0 88 64 0E DA */ lbz r3, 0xeda(r4) +/* 80396644 003935A4 60 63 00 80 */ ori r3, r3, 0x80 +/* 80396648 003935A8 98 64 0E DA */ stb r3, 0xeda(r4) +/* 8039664C 003935AC 98 04 0E CC */ stb r0, 0xecc(r4) +/* 80396650 003935B0 48 00 01 58 */ b lbl_803967A8 +lbl_80396654: +/* 80396654 003935B4 54 E3 00 7E */ clrlwi r3, r7, 1 +/* 80396658 003935B8 48 00 00 20 */ b lbl_80396678 +lbl_8039665C: +/* 8039665C 003935BC 80 06 00 0C */ lwz r0, 0xc(r6) +/* 80396660 003935C0 7C 00 18 40 */ cmplw r0, r3 +/* 80396664 003935C4 40 82 00 10 */ bne lbl_80396674 +/* 80396668 003935C8 88 66 00 09 */ lbz r3, 9(r6) +/* 8039666C 003935CC 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 80396670 003935D0 48 00 00 40 */ b lbl_803966B0 +lbl_80396674: +/* 80396674 003935D4 80 C6 00 00 */ lwz r6, 0(r6) +lbl_80396678: +/* 80396678 003935D8 28 06 00 00 */ cmplwi r6, 0 +/* 8039667C 003935DC 40 82 FF E0 */ bne lbl_8039665C +/* 80396680 003935E0 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80396684 003935E4 48 00 00 20 */ b lbl_803966A4 +lbl_80396688: +/* 80396688 003935E8 80 04 00 0C */ lwz r0, 0xc(r4) +/* 8039668C 003935EC 7C 00 18 40 */ cmplw r0, r3 +/* 80396690 003935F0 40 82 00 10 */ bne lbl_803966A0 +/* 80396694 003935F4 88 64 00 09 */ lbz r3, 9(r4) +/* 80396698 003935F8 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 8039669C 003935FC 48 00 00 14 */ b lbl_803966B0 +lbl_803966A0: +/* 803966A0 00393600 80 84 00 00 */ lwz r4, 0(r4) +lbl_803966A4: +/* 803966A4 00393604 28 04 00 00 */ cmplwi r4, 0 +/* 803966A8 00393608 40 82 FF E0 */ bne lbl_80396688 +/* 803966AC 0039360C 38 60 FF FF */ li r3, -1 +lbl_803966B0: +/* 803966B0 00393610 3C 03 00 01 */ addis r0, r3, 1 +/* 803966B4 00393614 28 00 FF FF */ cmplwi r0, 0xffff +/* 803966B8 00393618 41 82 00 F0 */ beq lbl_803967A8 +/* 803966BC 0039361C 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 +/* 803966C0 00393620 40 82 00 74 */ bne lbl_80396734 +/* 803966C4 00393624 1F 23 18 68 */ mulli r25, r3, 0x1868 +/* 803966C8 00393628 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803966CC 0039362C 7F C4 F3 78 */ mr r4, r30 +/* 803966D0 00393630 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803966D4 00393634 7C 60 CA 14 */ add r3, r0, r25 +/* 803966D8 00393638 38 C0 00 01 */ li r6, 1 +/* 803966DC 0039363C 88 A3 0E B0 */ lbz r5, 0xeb0(r3) +/* 803966E0 00393640 38 60 00 00 */ li r3, 0 +/* 803966E4 00393644 48 00 4D 05 */ bl synthVolume +/* 803966E8 00393648 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803966EC 0039364C 3B 60 00 00 */ li r27, 0 +/* 803966F0 00393650 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803966F4 00393654 7F 20 CA 14 */ add r25, r0, r25 +/* 803966F8 00393658 3B 59 0E B0 */ addi r26, r25, 0xeb0 +lbl_803966FC: +/* 803966FC 0039365C 88 B9 03 24 */ lbz r5, 0x324(r25) +/* 80396700 00393660 88 1A 00 00 */ lbz r0, 0(r26) +/* 80396704 00393664 7C 05 00 40 */ cmplw r5, r0 +/* 80396708 00393668 41 82 00 18 */ beq lbl_80396720 +/* 8039670C 0039366C 7F C4 F3 78 */ mr r4, r30 +/* 80396710 00393670 38 60 00 00 */ li r3, 0 +/* 80396714 00393674 38 C0 00 00 */ li r6, 0 +/* 80396718 00393678 38 E0 FF FF */ li r7, -1 +/* 8039671C 0039367C 48 00 4C CD */ bl synthVolume +lbl_80396720: +/* 80396720 00393680 3B 7B 00 01 */ addi r27, r27, 1 +/* 80396724 00393684 3B 39 00 01 */ addi r25, r25, 1 +/* 80396728 00393688 28 1B 00 40 */ cmplwi r27, 0x40 +/* 8039672C 0039368C 41 80 FF D0 */ blt lbl_803966FC +/* 80396730 00393690 48 00 00 78 */ b lbl_803967A8 +lbl_80396734: +/* 80396734 00393694 54 60 00 7E */ clrlwi r0, r3, 1 +/* 80396738 00393698 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 8039673C 0039369C 1C 00 18 68 */ mulli r0, r0, 0x1868 +/* 80396740 003936A0 38 80 00 00 */ li r4, 0 +/* 80396744 003936A4 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396748 003936A8 7C 63 02 14 */ add r3, r3, r0 +/* 8039674C 003936AC 90 83 0E DC */ stw r4, 0xedc(r3) +/* 80396750 003936B0 48 00 00 58 */ b lbl_803967A8 +lbl_80396754: +/* 80396754 003936B4 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 80396758 003936B8 41 82 00 1C */ beq lbl_80396774 +/* 8039675C 003936BC A0 9F 00 04 */ lhz r4, 4(r31) +/* 80396760 003936C0 7C E5 3B 78 */ mr r5, r7 +/* 80396764 003936C4 38 60 00 00 */ li r3, 0 +/* 80396768 003936C8 38 C0 00 02 */ li r6, 2 +/* 8039676C 003936CC 48 00 59 A1 */ bl sndSeqVolume +/* 80396770 003936D0 48 00 00 38 */ b lbl_803967A8 +lbl_80396774: +/* 80396774 003936D4 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 +/* 80396778 003936D8 41 82 00 1C */ beq lbl_80396794 +/* 8039677C 003936DC A0 9F 00 04 */ lhz r4, 4(r31) +/* 80396780 003936E0 7C E5 3B 78 */ mr r5, r7 +/* 80396784 003936E4 38 60 00 00 */ li r3, 0 +/* 80396788 003936E8 38 C0 00 03 */ li r6, 3 +/* 8039678C 003936EC 48 00 59 81 */ bl sndSeqVolume +/* 80396790 003936F0 48 00 00 18 */ b lbl_803967A8 +lbl_80396794: +/* 80396794 003936F4 A0 9F 00 04 */ lhz r4, 4(r31) +/* 80396798 003936F8 7C E5 3B 78 */ mr r5, r7 +/* 8039679C 003936FC 38 60 00 00 */ li r3, 0 +/* 803967A0 00393700 38 C0 00 01 */ li r6, 1 +/* 803967A4 00393704 48 00 59 69 */ bl sndSeqVolume +lbl_803967A8: +/* 803967A8 00393708 28 1D 00 00 */ cmplwi r29, 0 +/* 803967AC 0039370C 41 82 06 84 */ beq lbl_80396E30 +/* 803967B0 00393710 88 7F 00 26 */ lbz r3, 0x26(r31) +/* 803967B4 00393714 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e +/* 803967B8 00393718 41 82 04 B4 */ beq lbl_80396C6C +/* 803967BC 0039371C 80 7F 00 08 */ lwz r3, 8(r31) +/* 803967C0 00393720 80 CD AE 44 */ lwz r6, lbl_805A9A04@sda21(r13) +/* 803967C4 00393724 54 65 00 7E */ clrlwi r5, r3, 1 +/* 803967C8 00393728 7C C4 33 78 */ mr r4, r6 +/* 803967CC 0039372C 48 00 00 20 */ b lbl_803967EC +lbl_803967D0: +/* 803967D0 00393730 80 04 00 0C */ lwz r0, 0xc(r4) +/* 803967D4 00393734 7C 00 28 40 */ cmplw r0, r5 +/* 803967D8 00393738 40 82 00 10 */ bne lbl_803967E8 +/* 803967DC 0039373C 88 84 00 09 */ lbz r4, 9(r4) +/* 803967E0 00393740 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 803967E4 00393744 48 00 00 40 */ b lbl_80396824 +lbl_803967E8: +/* 803967E8 00393748 80 84 00 00 */ lwz r4, 0(r4) +lbl_803967EC: +/* 803967EC 0039374C 28 04 00 00 */ cmplwi r4, 0 +/* 803967F0 00393750 40 82 FF E0 */ bne lbl_803967D0 +/* 803967F4 00393754 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 803967F8 00393758 48 00 00 20 */ b lbl_80396818 +lbl_803967FC: +/* 803967FC 0039375C 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80396800 00393760 7C 00 28 40 */ cmplw r0, r5 +/* 80396804 00393764 40 82 00 10 */ bne lbl_80396814 +/* 80396808 00393768 88 84 00 09 */ lbz r4, 9(r4) +/* 8039680C 0039376C 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80396810 00393770 48 00 00 14 */ b lbl_80396824 +lbl_80396814: +/* 80396814 00393774 80 84 00 00 */ lwz r4, 0(r4) +lbl_80396818: +/* 80396818 00393778 28 04 00 00 */ cmplwi r4, 0 +/* 8039681C 0039377C 40 82 FF E0 */ bne lbl_803967FC +/* 80396820 00393780 38 80 FF FF */ li r4, -1 +lbl_80396824: +/* 80396824 00393784 3C 04 00 01 */ addis r0, r4, 1 +/* 80396828 00393788 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039682C 0039378C 41 82 04 34 */ beq lbl_80396C60 +/* 80396830 00393790 57 80 06 3F */ clrlwi. r0, r28, 0x18 +/* 80396834 00393794 41 82 03 D4 */ beq lbl_80396C08 +/* 80396838 00393798 54 64 00 7E */ clrlwi r4, r3, 1 +/* 8039683C 0039379C 48 00 00 20 */ b lbl_8039685C +lbl_80396840: +/* 80396840 003937A0 80 06 00 0C */ lwz r0, 0xc(r6) +/* 80396844 003937A4 7C 00 20 40 */ cmplw r0, r4 +/* 80396848 003937A8 40 82 00 10 */ bne lbl_80396858 +/* 8039684C 003937AC 88 86 00 09 */ lbz r4, 9(r6) +/* 80396850 003937B0 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80396854 003937B4 48 00 00 40 */ b lbl_80396894 +lbl_80396858: +/* 80396858 003937B8 80 C6 00 00 */ lwz r6, 0(r6) +lbl_8039685C: +/* 8039685C 003937BC 28 06 00 00 */ cmplwi r6, 0 +/* 80396860 003937C0 40 82 FF E0 */ bne lbl_80396840 +/* 80396864 003937C4 80 AD AE 40 */ lwz r5, lbl_805A9A00@sda21(r13) +/* 80396868 003937C8 48 00 00 20 */ b lbl_80396888 +lbl_8039686C: +/* 8039686C 003937CC 80 05 00 0C */ lwz r0, 0xc(r5) +/* 80396870 003937D0 7C 00 20 40 */ cmplw r0, r4 +/* 80396874 003937D4 40 82 00 10 */ bne lbl_80396884 +/* 80396878 003937D8 88 85 00 09 */ lbz r4, 9(r5) +/* 8039687C 003937DC 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80396880 003937E0 48 00 00 14 */ b lbl_80396894 +lbl_80396884: +/* 80396884 003937E4 80 A5 00 00 */ lwz r5, 0(r5) +lbl_80396888: +/* 80396888 003937E8 28 05 00 00 */ cmplwi r5, 0 +/* 8039688C 003937EC 40 82 FF E0 */ bne lbl_8039686C +/* 80396890 003937F0 38 80 FF FF */ li r4, -1 +lbl_80396894: +/* 80396894 003937F4 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0 +/* 80396898 003937F8 40 82 00 80 */ bne lbl_80396918 +/* 8039689C 003937FC 1C 84 18 68 */ mulli r4, r4, 0x1868 +/* 803968A0 00393800 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803968A4 00393804 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803968A8 00393808 7C 80 22 14 */ add r4, r0, r4 +/* 803968AC 0039380C 88 04 00 08 */ lbz r0, 8(r4) +/* 803968B0 00393810 28 00 00 02 */ cmplwi r0, 2 +/* 803968B4 00393814 40 82 00 84 */ bne lbl_80396938 +/* 803968B8 00393818 80 64 00 04 */ lwz r3, 4(r4) +/* 803968BC 0039381C 28 03 00 00 */ cmplwi r3, 0 +/* 803968C0 00393820 41 82 00 10 */ beq lbl_803968D0 +/* 803968C4 00393824 80 04 00 00 */ lwz r0, 0(r4) +/* 803968C8 00393828 90 03 00 00 */ stw r0, 0(r3) +/* 803968CC 0039382C 48 00 00 0C */ b lbl_803968D8 +lbl_803968D0: +/* 803968D0 00393830 80 04 00 00 */ lwz r0, 0(r4) +/* 803968D4 00393834 90 0D AE 40 */ stw r0, lbl_805A9A00@sda21(r13) +lbl_803968D8: +/* 803968D8 00393838 80 64 00 00 */ lwz r3, 0(r4) +/* 803968DC 0039383C 28 03 00 00 */ cmplwi r3, 0 +/* 803968E0 00393840 41 82 00 0C */ beq lbl_803968EC +/* 803968E4 00393844 80 04 00 04 */ lwz r0, 4(r4) +/* 803968E8 00393848 90 03 00 04 */ stw r0, 4(r3) +lbl_803968EC: +/* 803968EC 0039384C 80 6D AE 44 */ lwz r3, lbl_805A9A04@sda21(r13) +/* 803968F0 00393850 28 03 00 00 */ cmplwi r3, 0 +/* 803968F4 00393854 90 64 00 00 */ stw r3, 0(r4) +/* 803968F8 00393858 41 82 00 08 */ beq lbl_80396900 +/* 803968FC 0039385C 90 83 00 04 */ stw r4, 4(r3) +lbl_80396900: +/* 80396900 00393860 38 60 00 00 */ li r3, 0 +/* 80396904 00393864 38 00 00 01 */ li r0, 1 +/* 80396908 00393868 90 64 00 04 */ stw r3, 4(r4) +/* 8039690C 0039386C 90 8D AE 44 */ stw r4, lbl_805A9A04@sda21(r13) +/* 80396910 00393870 98 04 00 08 */ stb r0, 8(r4) +/* 80396914 00393874 48 00 00 24 */ b lbl_80396938 +lbl_80396918: +/* 80396918 00393878 54 80 00 7E */ clrlwi r0, r4, 1 +/* 8039691C 0039387C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396920 00393880 1C 00 18 68 */ mulli r0, r0, 0x1868 +/* 80396924 00393884 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396928 00393888 7C 63 02 14 */ add r3, r3, r0 +/* 8039692C 0039388C 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 80396930 00393890 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b +/* 80396934 00393894 98 03 0E DA */ stb r0, 0xeda(r3) +lbl_80396938: +/* 80396938 00393898 80 FF 00 08 */ lwz r7, 8(r31) +/* 8039693C 0039389C A3 DF 00 0C */ lhz r30, 0xc(r31) +/* 80396940 003938A0 8B 9F 00 18 */ lbz r28, 0x18(r31) +/* 80396944 003938A4 54 E4 00 7E */ clrlwi r4, r7, 1 +/* 80396948 003938A8 80 6D AE 44 */ lwz r3, lbl_805A9A04@sda21(r13) +/* 8039694C 003938AC 48 00 00 20 */ b lbl_8039696C +lbl_80396950: +/* 80396950 003938B0 80 03 00 0C */ lwz r0, 0xc(r3) +/* 80396954 003938B4 7C 00 20 40 */ cmplw r0, r4 +/* 80396958 003938B8 40 82 00 10 */ bne lbl_80396968 +/* 8039695C 003938BC 88 63 00 09 */ lbz r3, 9(r3) +/* 80396960 003938C0 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 80396964 003938C4 48 00 00 40 */ b lbl_803969A4 +lbl_80396968: +/* 80396968 003938C8 80 63 00 00 */ lwz r3, 0(r3) +lbl_8039696C: +/* 8039696C 003938CC 28 03 00 00 */ cmplwi r3, 0 +/* 80396970 003938D0 40 82 FF E0 */ bne lbl_80396950 +/* 80396974 003938D4 80 6D AE 40 */ lwz r3, lbl_805A9A00@sda21(r13) +/* 80396978 003938D8 48 00 00 20 */ b lbl_80396998 +lbl_8039697C: +/* 8039697C 003938DC 80 03 00 0C */ lwz r0, 0xc(r3) +/* 80396980 003938E0 7C 00 20 40 */ cmplw r0, r4 +/* 80396984 003938E4 40 82 00 10 */ bne lbl_80396994 +/* 80396988 003938E8 88 63 00 09 */ lbz r3, 9(r3) +/* 8039698C 003938EC 50 E3 00 00 */ rlwimi r3, r7, 0, 0, 0 +/* 80396990 003938F0 48 00 00 14 */ b lbl_803969A4 +lbl_80396994: +/* 80396994 003938F4 80 63 00 00 */ lwz r3, 0(r3) +lbl_80396998: +/* 80396998 003938F8 28 03 00 00 */ cmplwi r3, 0 +/* 8039699C 003938FC 40 82 FF E0 */ bne lbl_8039697C +/* 803969A0 00393900 38 60 FF FF */ li r3, -1 +lbl_803969A4: +/* 803969A4 00393904 3C 03 00 01 */ addis r0, r3, 1 +/* 803969A8 00393908 28 00 FF FF */ cmplwi r0, 0xffff +/* 803969AC 0039390C 41 82 00 94 */ beq lbl_80396A40 +/* 803969B0 00393910 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 +/* 803969B4 00393914 40 82 00 74 */ bne lbl_80396A28 +/* 803969B8 00393918 1F 23 18 68 */ mulli r25, r3, 0x1868 +/* 803969BC 0039391C 3C 80 80 54 */ lis r4, lbl_805439D0@ha +/* 803969C0 00393920 7F 83 E3 78 */ mr r3, r28 +/* 803969C4 00393924 38 04 39 D0 */ addi r0, r4, lbl_805439D0@l +/* 803969C8 00393928 7C A0 CA 14 */ add r5, r0, r25 +/* 803969CC 0039392C 7F C4 F3 78 */ mr r4, r30 +/* 803969D0 00393930 88 A5 0E B0 */ lbz r5, 0xeb0(r5) +/* 803969D4 00393934 38 C0 00 00 */ li r6, 0 +/* 803969D8 00393938 48 00 4A 11 */ bl synthVolume +/* 803969DC 0039393C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 803969E0 00393940 3B 60 00 00 */ li r27, 0 +/* 803969E4 00393944 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 803969E8 00393948 7F 20 CA 14 */ add r25, r0, r25 +/* 803969EC 0039394C 3B 59 0E B0 */ addi r26, r25, 0xeb0 +lbl_803969F0: +/* 803969F0 00393950 88 B9 03 24 */ lbz r5, 0x324(r25) +/* 803969F4 00393954 88 1A 00 00 */ lbz r0, 0(r26) +/* 803969F8 00393958 7C 05 00 40 */ cmplw r5, r0 +/* 803969FC 0039395C 41 82 00 18 */ beq lbl_80396A14 +/* 80396A00 00393960 7F 83 E3 78 */ mr r3, r28 +/* 80396A04 00393964 7F C4 F3 78 */ mr r4, r30 +/* 80396A08 00393968 38 C0 00 00 */ li r6, 0 +/* 80396A0C 0039396C 38 E0 FF FF */ li r7, -1 +/* 80396A10 00393970 48 00 49 D9 */ bl synthVolume +lbl_80396A14: +/* 80396A14 00393974 3B 7B 00 01 */ addi r27, r27, 1 +/* 80396A18 00393978 3B 39 00 01 */ addi r25, r25, 1 +/* 80396A1C 0039397C 28 1B 00 40 */ cmplwi r27, 0x40 +/* 80396A20 00393980 41 80 FF D0 */ blt lbl_803969F0 +/* 80396A24 00393984 48 00 00 1C */ b lbl_80396A40 +lbl_80396A28: +/* 80396A28 00393988 54 60 00 7E */ clrlwi r0, r3, 1 +/* 80396A2C 0039398C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396A30 00393990 1C 00 18 68 */ mulli r0, r0, 0x1868 +/* 80396A34 00393994 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396A38 00393998 7C 63 02 14 */ add r3, r3, r0 +/* 80396A3C 0039399C 9B 83 0E CC */ stb r28, 0xecc(r3) +lbl_80396A40: +/* 80396A40 003939A0 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 80396A44 003939A4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80396A48 003939A8 41 82 00 C8 */ beq lbl_80396B10 +/* 80396A4C 003939AC 80 7F 00 08 */ lwz r3, 8(r31) +/* 80396A50 003939B0 80 BF 00 20 */ lwz r5, 0x20(r31) +/* 80396A54 003939B4 80 9F 00 1C */ lwz r4, 0x1c(r31) +/* 80396A58 003939B8 54 67 00 7E */ clrlwi r7, r3, 1 +/* 80396A5C 003939BC 80 CD AE 44 */ lwz r6, lbl_805A9A04@sda21(r13) +/* 80396A60 003939C0 48 00 00 20 */ b lbl_80396A80 +lbl_80396A64: +/* 80396A64 003939C4 80 06 00 0C */ lwz r0, 0xc(r6) +/* 80396A68 003939C8 7C 00 38 40 */ cmplw r0, r7 +/* 80396A6C 003939CC 40 82 00 10 */ bne lbl_80396A7C +/* 80396A70 003939D0 88 C6 00 09 */ lbz r6, 9(r6) +/* 80396A74 003939D4 50 66 00 00 */ rlwimi r6, r3, 0, 0, 0 +/* 80396A78 003939D8 48 00 00 40 */ b lbl_80396AB8 +lbl_80396A7C: +/* 80396A7C 003939DC 80 C6 00 00 */ lwz r6, 0(r6) +lbl_80396A80: +/* 80396A80 003939E0 28 06 00 00 */ cmplwi r6, 0 +/* 80396A84 003939E4 40 82 FF E0 */ bne lbl_80396A64 +/* 80396A88 003939E8 80 CD AE 40 */ lwz r6, lbl_805A9A00@sda21(r13) +/* 80396A8C 003939EC 48 00 00 20 */ b lbl_80396AAC +lbl_80396A90: +/* 80396A90 003939F0 80 06 00 0C */ lwz r0, 0xc(r6) +/* 80396A94 003939F4 7C 00 38 40 */ cmplw r0, r7 +/* 80396A98 003939F8 40 82 00 10 */ bne lbl_80396AA8 +/* 80396A9C 003939FC 88 C6 00 09 */ lbz r6, 9(r6) +/* 80396AA0 00393A00 50 66 00 00 */ rlwimi r6, r3, 0, 0, 0 +/* 80396AA4 00393A04 48 00 00 14 */ b lbl_80396AB8 +lbl_80396AA8: +/* 80396AA8 00393A08 80 C6 00 00 */ lwz r6, 0(r6) +lbl_80396AAC: +/* 80396AAC 00393A0C 28 06 00 00 */ cmplwi r6, 0 +/* 80396AB0 00393A10 40 82 FF E0 */ bne lbl_80396A90 +/* 80396AB4 00393A14 38 C0 FF FF */ li r6, -1 +lbl_80396AB8: +/* 80396AB8 00393A18 3C 06 00 01 */ addis r0, r6, 1 +/* 80396ABC 00393A1C 28 00 FF FF */ cmplwi r0, 0xffff +/* 80396AC0 00393A20 41 82 00 50 */ beq lbl_80396B10 +/* 80396AC4 00393A24 54 C0 00 01 */ rlwinm. r0, r6, 0, 0, 0 +/* 80396AC8 00393A28 40 82 00 20 */ bne lbl_80396AE8 +/* 80396ACC 00393A2C 1C C6 18 68 */ mulli r6, r6, 0x1868 +/* 80396AD0 00393A30 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396AD4 00393A34 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80396AD8 00393A38 7C 60 32 14 */ add r3, r0, r6 +/* 80396ADC 00393A3C 90 83 01 1C */ stw r4, 0x11c(r3) +/* 80396AE0 00393A40 90 A3 01 20 */ stw r5, 0x120(r3) +/* 80396AE4 00393A44 48 00 00 2C */ b lbl_80396B10 +lbl_80396AE8: +/* 80396AE8 00393A48 54 C0 00 7E */ clrlwi r0, r6, 1 +/* 80396AEC 00393A4C 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396AF0 00393A50 1C C0 18 68 */ mulli r6, r0, 0x1868 +/* 80396AF4 00393A54 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80396AF8 00393A58 7C 60 32 14 */ add r3, r0, r6 +/* 80396AFC 00393A5C 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 80396B00 00393A60 60 00 00 10 */ ori r0, r0, 0x10 +/* 80396B04 00393A64 98 03 0E DA */ stb r0, 0xeda(r3) +/* 80396B08 00393A68 90 83 0E D0 */ stw r4, 0xed0(r3) +/* 80396B0C 00393A6C 90 A3 0E D4 */ stw r5, 0xed4(r3) +lbl_80396B10: +/* 80396B10 00393A70 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 80396B14 00393A74 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a +/* 80396B18 00393A78 41 82 01 3C */ beq lbl_80396C54 +/* 80396B1C 00393A7C 80 7F 00 08 */ lwz r3, 8(r31) +/* 80396B20 00393A80 A0 BF 00 24 */ lhz r5, 0x24(r31) +/* 80396B24 00393A84 80 8D AE 44 */ lwz r4, lbl_805A9A04@sda21(r13) +/* 80396B28 00393A88 54 66 00 7E */ clrlwi r6, r3, 1 +/* 80396B2C 00393A8C 48 00 00 20 */ b lbl_80396B4C +lbl_80396B30: +/* 80396B30 00393A90 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80396B34 00393A94 7C 00 30 40 */ cmplw r0, r6 +/* 80396B38 00393A98 40 82 00 10 */ bne lbl_80396B48 +/* 80396B3C 00393A9C 88 84 00 09 */ lbz r4, 9(r4) +/* 80396B40 00393AA0 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80396B44 00393AA4 48 00 00 40 */ b lbl_80396B84 +lbl_80396B48: +/* 80396B48 00393AA8 80 84 00 00 */ lwz r4, 0(r4) +lbl_80396B4C: +/* 80396B4C 00393AAC 28 04 00 00 */ cmplwi r4, 0 +/* 80396B50 00393AB0 40 82 FF E0 */ bne lbl_80396B30 +/* 80396B54 00393AB4 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80396B58 00393AB8 48 00 00 20 */ b lbl_80396B78 +lbl_80396B5C: +/* 80396B5C 00393ABC 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80396B60 00393AC0 7C 00 30 40 */ cmplw r0, r6 +/* 80396B64 00393AC4 40 82 00 10 */ bne lbl_80396B74 +/* 80396B68 00393AC8 88 84 00 09 */ lbz r4, 9(r4) +/* 80396B6C 00393ACC 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80396B70 00393AD0 48 00 00 14 */ b lbl_80396B84 +lbl_80396B74: +/* 80396B74 00393AD4 80 84 00 00 */ lwz r4, 0(r4) +lbl_80396B78: +/* 80396B78 00393AD8 28 04 00 00 */ cmplwi r4, 0 +/* 80396B7C 00393ADC 40 82 FF E0 */ bne lbl_80396B5C +/* 80396B80 00393AE0 38 80 FF FF */ li r4, -1 +lbl_80396B84: +/* 80396B84 00393AE4 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0 +/* 80396B88 00393AE8 40 82 00 58 */ bne lbl_80396BE0 +/* 80396B8C 00393AEC 1C 84 18 68 */ mulli r4, r4, 0x1868 +/* 80396B90 00393AF0 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396B94 00393AF4 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80396B98 00393AF8 7C 60 22 14 */ add r3, r0, r4 +/* 80396B9C 00393AFC B0 A3 15 1A */ sth r5, 0x151a(r3) +/* 80396BA0 00393B00 B0 A3 15 52 */ sth r5, 0x1552(r3) +/* 80396BA4 00393B04 B0 A3 15 8A */ sth r5, 0x158a(r3) +/* 80396BA8 00393B08 B0 A3 15 C2 */ sth r5, 0x15c2(r3) +/* 80396BAC 00393B0C B0 A3 15 FA */ sth r5, 0x15fa(r3) +/* 80396BB0 00393B10 B0 A3 16 32 */ sth r5, 0x1632(r3) +/* 80396BB4 00393B14 B0 A3 16 6A */ sth r5, 0x166a(r3) +/* 80396BB8 00393B18 B0 A3 16 A2 */ sth r5, 0x16a2(r3) +/* 80396BBC 00393B1C B0 A3 16 DA */ sth r5, 0x16da(r3) +/* 80396BC0 00393B20 B0 A3 17 12 */ sth r5, 0x1712(r3) +/* 80396BC4 00393B24 B0 A3 17 4A */ sth r5, 0x174a(r3) +/* 80396BC8 00393B28 B0 A3 17 82 */ sth r5, 0x1782(r3) +/* 80396BCC 00393B2C B0 A3 17 BA */ sth r5, 0x17ba(r3) +/* 80396BD0 00393B30 B0 A3 17 F2 */ sth r5, 0x17f2(r3) +/* 80396BD4 00393B34 B0 A3 18 2A */ sth r5, 0x182a(r3) +/* 80396BD8 00393B38 B0 A3 18 62 */ sth r5, 0x1862(r3) +/* 80396BDC 00393B3C 48 00 00 78 */ b lbl_80396C54 +lbl_80396BE0: +/* 80396BE0 00393B40 54 80 00 7E */ clrlwi r0, r4, 1 +/* 80396BE4 00393B44 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396BE8 00393B48 1C 80 18 68 */ mulli r4, r0, 0x1868 +/* 80396BEC 00393B4C 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80396BF0 00393B50 7C 60 22 14 */ add r3, r0, r4 +/* 80396BF4 00393B54 88 03 0E DA */ lbz r0, 0xeda(r3) +/* 80396BF8 00393B58 60 00 00 20 */ ori r0, r0, 0x20 +/* 80396BFC 00393B5C 98 03 0E DA */ stb r0, 0xeda(r3) +/* 80396C00 00393B60 B0 A3 0E D8 */ sth r5, 0xed8(r3) +/* 80396C04 00393B64 48 00 00 50 */ b lbl_80396C54 +lbl_80396C08: +/* 80396C08 00393B68 48 00 54 75 */ bl sndSeqContinue +/* 80396C0C 00393B6C 88 7F 00 18 */ lbz r3, 0x18(r31) +/* 80396C10 00393B70 38 C0 00 00 */ li r6, 0 +/* 80396C14 00393B74 A0 9F 00 0C */ lhz r4, 0xc(r31) +/* 80396C18 00393B78 80 BF 00 08 */ lwz r5, 8(r31) +/* 80396C1C 00393B7C 48 00 54 F1 */ bl sndSeqVolume +/* 80396C20 00393B80 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 80396C24 00393B84 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80396C28 00393B88 41 82 00 14 */ beq lbl_80396C3C +/* 80396C2C 00393B8C 80 7F 00 08 */ lwz r3, 8(r31) +/* 80396C30 00393B90 80 9F 00 1C */ lwz r4, 0x1c(r31) +/* 80396C34 00393B94 80 BF 00 20 */ lwz r5, 0x20(r31) +/* 80396C38 00393B98 48 00 54 7D */ bl sndSeqMute +lbl_80396C3C: +/* 80396C3C 00393B9C 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 80396C40 00393BA0 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a +/* 80396C44 00393BA4 41 82 00 10 */ beq lbl_80396C54 +/* 80396C48 00393BA8 80 7F 00 08 */ lwz r3, 8(r31) +/* 80396C4C 00393BAC A0 9F 00 24 */ lhz r4, 0x24(r31) +/* 80396C50 00393BB0 48 00 53 E5 */ bl sndSeqSpeed +lbl_80396C54: +/* 80396C54 00393BB4 80 1F 00 08 */ lwz r0, 8(r31) +/* 80396C58 00393BB8 90 1D 00 00 */ stw r0, 0(r29) +/* 80396C5C 00393BBC 48 00 01 D4 */ b lbl_80396E30 +lbl_80396C60: +/* 80396C60 00393BC0 38 00 FF FF */ li r0, -1 +/* 80396C64 00393BC4 90 1D 00 00 */ stw r0, 0(r29) +/* 80396C68 00393BC8 48 00 01 C8 */ b lbl_80396E30 +lbl_80396C6C: +/* 80396C6C 00393BCC 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c +/* 80396C70 00393BD0 38 60 00 04 */ li r3, 4 +/* 80396C74 00393BD4 90 61 00 08 */ stw r3, 8(r1) +/* 80396C78 00393BD8 41 82 00 0C */ beq lbl_80396C84 +/* 80396C7C 00393BDC 60 60 00 10 */ ori r0, r3, 0x10 +/* 80396C80 00393BE0 90 01 00 08 */ stw r0, 8(r1) +lbl_80396C84: +/* 80396C84 00393BE4 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 80396C88 00393BE8 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a +/* 80396C8C 00393BEC 41 82 00 18 */ beq lbl_80396CA4 +/* 80396C90 00393BF0 80 01 00 08 */ lwz r0, 8(r1) +/* 80396C94 00393BF4 60 00 00 02 */ ori r0, r0, 2 +/* 80396C98 00393BF8 90 01 00 08 */ stw r0, 8(r1) +/* 80396C9C 00393BFC A0 1F 00 24 */ lhz r0, 0x24(r31) +/* 80396CA0 00393C00 B0 01 00 14 */ sth r0, 0x14(r1) +lbl_80396CA4: +/* 80396CA4 00393C04 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 80396CA8 00393C08 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 80396CAC 00393C0C 41 82 00 20 */ beq lbl_80396CCC +/* 80396CB0 00393C10 80 01 00 08 */ lwz r0, 8(r1) +/* 80396CB4 00393C14 60 00 00 01 */ ori r0, r0, 1 +/* 80396CB8 00393C18 90 01 00 08 */ stw r0, 8(r1) +/* 80396CBC 00393C1C 80 1F 00 1C */ lwz r0, 0x1c(r31) +/* 80396CC0 00393C20 90 01 00 0C */ stw r0, 0xc(r1) +/* 80396CC4 00393C24 80 1F 00 20 */ lwz r0, 0x20(r31) +/* 80396CC8 00393C28 90 01 00 10 */ stw r0, 0x10(r1) +lbl_80396CCC: +/* 80396CCC 00393C2C A0 7F 00 0C */ lhz r3, 0xc(r31) +/* 80396CD0 00393C30 57 80 06 3F */ clrlwi. r0, r28, 0x18 +/* 80396CD4 00393C34 38 00 00 00 */ li r0, 0 +/* 80396CD8 00393C38 B0 61 00 16 */ sth r3, 0x16(r1) +/* 80396CDC 00393C3C 88 7F 00 18 */ lbz r3, 0x18(r31) +/* 80396CE0 00393C40 98 61 00 18 */ stb r3, 0x18(r1) +/* 80396CE4 00393C44 98 01 00 20 */ stb r0, 0x20(r1) +/* 80396CE8 00393C48 41 82 01 04 */ beq lbl_80396DEC +/* 80396CEC 00393C4C A0 7F 00 14 */ lhz r3, 0x14(r31) +/* 80396CF0 00393C50 38 C1 00 08 */ addi r6, r1, 8 +/* 80396CF4 00393C54 A0 9F 00 16 */ lhz r4, 0x16(r31) +/* 80396CF8 00393C58 38 E0 00 01 */ li r7, 1 +/* 80396CFC 00393C5C 80 BF 00 10 */ lwz r5, 0x10(r31) +/* 80396D00 00393C60 89 1F 00 19 */ lbz r8, 0x19(r31) +/* 80396D04 00393C64 48 01 3D 91 */ bl sub_803aaa94 +/* 80396D08 00393C68 3C 03 00 01 */ addis r0, r3, 1 +/* 80396D0C 00393C6C 90 7D 00 00 */ stw r3, 0(r29) +/* 80396D10 00393C70 28 00 FF FF */ cmplwi r0, 0xffff +/* 80396D14 00393C74 41 82 01 1C */ beq lbl_80396E30 +/* 80396D18 00393C78 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 80396D1C 00393C7C 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 80396D20 00393C80 41 82 01 10 */ beq lbl_80396E30 +/* 80396D24 00393C84 80 7D 00 00 */ lwz r3, 0(r29) +/* 80396D28 00393C88 80 8D AE 44 */ lwz r4, lbl_805A9A04@sda21(r13) +/* 80396D2C 00393C8C 54 65 00 7E */ clrlwi r5, r3, 1 +/* 80396D30 00393C90 48 00 00 20 */ b lbl_80396D50 +lbl_80396D34: +/* 80396D34 00393C94 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80396D38 00393C98 7C 00 28 40 */ cmplw r0, r5 +/* 80396D3C 00393C9C 40 82 00 10 */ bne lbl_80396D4C +/* 80396D40 00393CA0 88 84 00 09 */ lbz r4, 9(r4) +/* 80396D44 00393CA4 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80396D48 00393CA8 48 00 00 40 */ b lbl_80396D88 +lbl_80396D4C: +/* 80396D4C 00393CAC 80 84 00 00 */ lwz r4, 0(r4) +lbl_80396D50: +/* 80396D50 00393CB0 28 04 00 00 */ cmplwi r4, 0 +/* 80396D54 00393CB4 40 82 FF E0 */ bne lbl_80396D34 +/* 80396D58 00393CB8 80 8D AE 40 */ lwz r4, lbl_805A9A00@sda21(r13) +/* 80396D5C 00393CBC 48 00 00 20 */ b lbl_80396D7C +lbl_80396D60: +/* 80396D60 00393CC0 80 04 00 0C */ lwz r0, 0xc(r4) +/* 80396D64 00393CC4 7C 00 28 40 */ cmplw r0, r5 +/* 80396D68 00393CC8 40 82 00 10 */ bne lbl_80396D78 +/* 80396D6C 00393CCC 88 84 00 09 */ lbz r4, 9(r4) +/* 80396D70 00393CD0 50 64 00 00 */ rlwimi r4, r3, 0, 0, 0 +/* 80396D74 00393CD4 48 00 00 14 */ b lbl_80396D88 +lbl_80396D78: +/* 80396D78 00393CD8 80 84 00 00 */ lwz r4, 0(r4) +lbl_80396D7C: +/* 80396D7C 00393CDC 28 04 00 00 */ cmplwi r4, 0 +/* 80396D80 00393CE0 40 82 FF E0 */ bne lbl_80396D60 +/* 80396D84 00393CE4 38 80 FF FF */ li r4, -1 +lbl_80396D88: +/* 80396D88 00393CE8 3C 04 00 01 */ addis r0, r4, 1 +/* 80396D8C 00393CEC 28 00 FF FF */ cmplwi r0, 0xffff +/* 80396D90 00393CF0 41 82 00 A0 */ beq lbl_80396E30 +/* 80396D94 00393CF4 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0 +/* 80396D98 00393CF8 40 82 00 24 */ bne lbl_80396DBC +/* 80396D9C 00393CFC 1C A4 18 68 */ mulli r5, r4, 0x1868 +/* 80396DA0 00393D00 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396DA4 00393D04 38 80 00 00 */ li r4, 0 +/* 80396DA8 00393D08 38 03 39 D0 */ addi r0, r3, lbl_805439D0@l +/* 80396DAC 00393D0C 7C 60 2A 14 */ add r3, r0, r5 +/* 80396DB0 00393D10 90 83 01 1C */ stw r4, 0x11c(r3) +/* 80396DB4 00393D14 90 83 01 20 */ stw r4, 0x120(r3) +/* 80396DB8 00393D18 48 00 00 78 */ b lbl_80396E30 +lbl_80396DBC: +/* 80396DBC 00393D1C 54 80 00 7E */ clrlwi r0, r4, 1 +/* 80396DC0 00393D20 3C 60 80 54 */ lis r3, lbl_805439D0@ha +/* 80396DC4 00393D24 1C 80 18 68 */ mulli r4, r0, 0x1868 +/* 80396DC8 00393D28 38 63 39 D0 */ addi r3, r3, lbl_805439D0@l +/* 80396DCC 00393D2C 38 00 00 00 */ li r0, 0 +/* 80396DD0 00393D30 7C 83 22 14 */ add r4, r3, r4 +/* 80396DD4 00393D34 88 64 0E DA */ lbz r3, 0xeda(r4) +/* 80396DD8 00393D38 60 63 00 10 */ ori r3, r3, 0x10 +/* 80396DDC 00393D3C 98 64 0E DA */ stb r3, 0xeda(r4) +/* 80396DE0 00393D40 90 04 0E D0 */ stw r0, 0xed0(r4) +/* 80396DE4 00393D44 90 04 0E D4 */ stw r0, 0xed4(r4) +/* 80396DE8 00393D48 48 00 00 48 */ b lbl_80396E30 +lbl_80396DEC: +/* 80396DEC 00393D4C A0 7F 00 14 */ lhz r3, 0x14(r31) +/* 80396DF0 00393D50 38 C1 00 08 */ addi r6, r1, 8 +/* 80396DF4 00393D54 A0 9F 00 16 */ lhz r4, 0x16(r31) +/* 80396DF8 00393D58 80 BF 00 10 */ lwz r5, 0x10(r31) +/* 80396DFC 00393D5C 88 FF 00 19 */ lbz r7, 0x19(r31) +/* 80396E00 00393D60 48 01 3D E1 */ bl sndSeqPlayEx +/* 80396E04 00393D64 3C 03 00 01 */ addis r0, r3, 1 +/* 80396E08 00393D68 90 7D 00 00 */ stw r3, 0(r29) +/* 80396E0C 00393D6C 28 00 FF FF */ cmplwi r0, 0xffff +/* 80396E10 00393D70 41 82 00 20 */ beq lbl_80396E30 +/* 80396E14 00393D74 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 80396E18 00393D78 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18 +/* 80396E1C 00393D7C 41 82 00 14 */ beq lbl_80396E30 +/* 80396E20 00393D80 80 7D 00 00 */ lwz r3, 0(r29) +/* 80396E24 00393D84 38 80 00 00 */ li r4, 0 +/* 80396E28 00393D88 38 A0 00 00 */ li r5, 0 +/* 80396E2C 00393D8C 48 00 52 89 */ bl sndSeqMute +lbl_80396E30: +/* 80396E30 00393D90 39 61 00 50 */ addi r11, r1, 0x50 +/* 80396E34 00393D94 4B FF 2C 8D */ bl _restgpr_25 +/* 80396E38 00393D98 80 01 00 54 */ lwz r0, 0x54(r1) +/* 80396E3C 00393D9C 7C 08 03 A6 */ mtlr r0 +/* 80396E40 00393DA0 38 21 00 50 */ addi r1, r1, 0x50 +/* 80396E44 00393DA4 4E 80 00 20 */ blr + +.global GenerateNextTrackEvent +GenerateNextTrackEvent: +/* 80396E48 00393DA8 54 64 1D 78 */ rlwinm r4, r3, 3, 0x15, 0x1c +/* 80396E4C 00393DAC 80 ED AE 38 */ lwz r7, lbl_805A99F8@sda21(r13) +/* 80396E50 00393DB0 38 84 01 24 */ addi r4, r4, 0x124 +/* 80396E54 00393DB4 54 66 06 3E */ clrlwi r6, r3, 0x18 +/* 80396E58 00393DB8 7C 87 22 14 */ add r4, r7, r4 +/* 80396E5C 00393DBC 1C A6 00 2C */ mulli r5, r6, 0x2c +/* 80396E60 00393DC0 80 04 00 04 */ lwz r0, 4(r4) +/* 80396E64 00393DC4 28 00 00 00 */ cmplwi r0, 0 +/* 80396E68 00393DC8 39 05 03 64 */ addi r8, r5, 0x364 +/* 80396E6C 00393DCC 7D 07 42 14 */ add r8, r7, r8 +/* 80396E70 00393DD0 41 82 01 E8 */ beq lbl_80397058 +/* 80396E74 00393DD4 1C A6 00 18 */ mulli r5, r6, 0x18 +/* 80396E78 00393DD8 38 A5 0E E4 */ addi r5, r5, 0xee4 +/* 80396E7C 00393DDC 7C A7 2A 14 */ add r5, r7, r5 +/* 80396E80 00393DE0 98 65 00 15 */ stb r3, 0x15(r5) +/* 80396E84 00393DE4 91 05 00 10 */ stw r8, 0x10(r5) +/* 80396E88 00393DE8 80 08 00 08 */ lwz r0, 8(r8) +/* 80396E8C 00393DEC 28 00 00 00 */ cmplwi r0, 0 +/* 80396E90 00393DF0 40 82 00 E4 */ bne lbl_80396F74 +lbl_80396E94: +/* 80396E94 00393DF4 80 64 00 04 */ lwz r3, 4(r4) +/* 80396E98 00393DF8 A0 03 00 08 */ lhz r0, 8(r3) +/* 80396E9C 00393DFC 28 00 FF FF */ cmplwi r0, 0xffff +/* 80396EA0 00393E00 40 82 00 14 */ bne lbl_80396EB4 +/* 80396EA4 00393E04 38 00 00 00 */ li r0, 0 +/* 80396EA8 00393E08 38 60 00 00 */ li r3, 0 +/* 80396EAC 00393E0C 90 04 00 04 */ stw r0, 4(r4) +/* 80396EB0 00393E10 4E 80 00 20 */ blr +lbl_80396EB4: +/* 80396EB4 00393E14 28 00 FF FE */ cmplwi r0, 0xfffe +/* 80396EB8 00393E18 40 82 00 8C */ bne lbl_80396F44 +/* 80396EBC 00393E1C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80396EC0 00393E20 80 E3 14 E4 */ lwz r7, 0x14e4(r3) +/* 80396EC4 00393E24 28 07 00 00 */ cmplwi r7, 0 +/* 80396EC8 00393E28 40 82 00 20 */ bne lbl_80396EE8 +/* 80396ECC 00393E2C 88 03 15 1E */ lbz r0, 0x151e(r3) +/* 80396ED0 00393E30 28 00 00 00 */ cmplwi r0, 0 +/* 80396ED4 00393E34 41 82 00 3C */ beq lbl_80396F10 +/* 80396ED8 00393E38 38 00 00 00 */ li r0, 0 +/* 80396EDC 00393E3C 38 60 00 00 */ li r3, 0 +/* 80396EE0 00393E40 90 04 00 04 */ stw r0, 4(r4) +/* 80396EE4 00393E44 4E 80 00 20 */ blr +lbl_80396EE8: +/* 80396EE8 00393E48 7C 07 30 AE */ lbzx r0, r7, r6 +/* 80396EEC 00393E4C 1C 00 00 38 */ mulli r0, r0, 0x38 +/* 80396EF0 00393E50 7C 63 02 14 */ add r3, r3, r0 +/* 80396EF4 00393E54 88 03 15 1E */ lbz r0, 0x151e(r3) +/* 80396EF8 00393E58 28 00 00 00 */ cmplwi r0, 0 +/* 80396EFC 00393E5C 41 82 00 14 */ beq lbl_80396F10 +/* 80396F00 00393E60 38 00 00 00 */ li r0, 0 +/* 80396F04 00393E64 38 60 00 00 */ li r3, 0 +/* 80396F08 00393E68 90 04 00 04 */ stw r0, 4(r4) +/* 80396F0C 00393E6C 4E 80 00 20 */ blr +lbl_80396F10: +/* 80396F10 00393E70 38 00 00 03 */ li r0, 3 +/* 80396F14 00393E74 7C A3 2B 78 */ mr r3, r5 +/* 80396F18 00393E78 98 05 00 14 */ stb r0, 0x14(r5) +/* 80396F1C 00393E7C 80 C4 00 04 */ lwz r6, 4(r4) +/* 80396F20 00393E80 80 06 00 00 */ lwz r0, 0(r6) +/* 80396F24 00393E84 90 05 00 08 */ stw r0, 8(r5) +/* 80396F28 00393E88 80 A4 00 04 */ lwz r5, 4(r4) +/* 80396F2C 00393E8C 80 C4 00 00 */ lwz r6, 0(r4) +/* 80396F30 00393E90 A0 05 00 0A */ lhz r0, 0xa(r5) +/* 80396F34 00393E94 1C 00 00 0C */ mulli r0, r0, 0xc +/* 80396F38 00393E98 7C 06 02 14 */ add r0, r6, r0 +/* 80396F3C 00393E9C 90 04 00 04 */ stw r0, 4(r4) +/* 80396F40 00393EA0 4E 80 00 20 */ blr +lbl_80396F44: +/* 80396F44 00393EA4 38 00 00 04 */ li r0, 4 +/* 80396F48 00393EA8 7C A3 2B 78 */ mr r3, r5 +/* 80396F4C 00393EAC 98 05 00 14 */ stb r0, 0x14(r5) +/* 80396F50 00393EB0 80 C4 00 04 */ lwz r6, 4(r4) +/* 80396F54 00393EB4 80 06 00 00 */ lwz r0, 0(r6) +/* 80396F58 00393EB8 90 05 00 08 */ stw r0, 8(r5) +/* 80396F5C 00393EBC 80 04 00 04 */ lwz r0, 4(r4) +/* 80396F60 00393EC0 90 05 00 0C */ stw r0, 0xc(r5) +/* 80396F64 00393EC4 80 A4 00 04 */ lwz r5, 4(r4) +/* 80396F68 00393EC8 38 05 00 0C */ addi r0, r5, 0xc +/* 80396F6C 00393ECC 90 04 00 04 */ stw r0, 4(r4) +/* 80396F70 00393ED0 4E 80 00 20 */ blr +lbl_80396F74: +/* 80396F74 00393ED4 81 48 00 18 */ lwz r10, 0x18(r8) +/* 80396F78 00393ED8 81 68 00 24 */ lwz r11, 0x24(r8) +lbl_80396F7C: +/* 80396F7C 00393EDC 80 E8 00 08 */ lwz r7, 8(r8) +/* 80396F80 00393EE0 80 08 00 00 */ lwz r0, 0(r8) +/* 80396F84 00393EE4 A0 67 00 00 */ lhz r3, 0(r7) +/* 80396F88 00393EE8 7D 23 02 14 */ add r9, r3, r0 +/* 80396F8C 00393EEC 7C 09 50 40 */ cmplw r9, r10 +/* 80396F90 00393EF0 40 80 00 8C */ bge lbl_8039701C +/* 80396F94 00393EF4 7C 09 58 40 */ cmplw r9, r11 +/* 80396F98 00393EF8 40 80 00 A4 */ bge lbl_8039703C +/* 80396F9C 00393EFC 88 07 00 02 */ lbz r0, 2(r7) +/* 80396FA0 00393F00 28 00 00 FF */ cmplwi r0, 0xff +/* 80396FA4 00393F04 40 82 00 1C */ bne lbl_80396FC0 +/* 80396FA8 00393F08 88 07 00 03 */ lbz r0, 3(r7) +/* 80396FAC 00393F0C 28 00 00 FF */ cmplwi r0, 0xff +/* 80396FB0 00393F10 40 82 00 10 */ bne lbl_80396FC0 +/* 80396FB4 00393F14 38 00 00 00 */ li r0, 0 +/* 80396FB8 00393F18 90 08 00 08 */ stw r0, 8(r8) +/* 80396FBC 00393F1C 4B FF FE D8 */ b lbl_80396E94 +lbl_80396FC0: +/* 80396FC0 00393F20 90 E5 00 0C */ stw r7, 0xc(r5) +/* 80396FC4 00393F24 91 28 00 00 */ stw r9, 0(r8) +/* 80396FC8 00393F28 80 68 00 08 */ lwz r3, 8(r8) +/* 80396FCC 00393F2C 88 E3 00 02 */ lbz r7, 2(r3) +/* 80396FD0 00393F30 54 E0 06 31 */ rlwinm. r0, r7, 0, 0x18, 0x18 +/* 80396FD4 00393F34 41 82 00 10 */ beq lbl_80396FE4 +/* 80396FD8 00393F38 38 03 00 04 */ addi r0, r3, 4 +/* 80396FDC 00393F3C 90 08 00 08 */ stw r0, 8(r8) +/* 80396FE0 00393F40 48 00 00 24 */ b lbl_80397004 +lbl_80396FE4: +/* 80396FE4 00393F44 88 03 00 03 */ lbz r0, 3(r3) +/* 80396FE8 00393F48 7C E0 03 79 */ or. r0, r7, r0 +/* 80396FEC 00393F4C 40 82 00 10 */ bne lbl_80396FFC +/* 80396FF0 00393F50 38 03 00 04 */ addi r0, r3, 4 +/* 80396FF4 00393F54 90 08 00 08 */ stw r0, 8(r8) +/* 80396FF8 00393F58 4B FF FF 84 */ b lbl_80396F7C +lbl_80396FFC: +/* 80396FFC 00393F5C 38 03 00 06 */ addi r0, r3, 6 +/* 80397000 00393F60 90 08 00 08 */ stw r0, 8(r8) +lbl_80397004: +/* 80397004 00393F64 38 00 00 00 */ li r0, 0 +/* 80397008 00393F68 98 05 00 14 */ stb r0, 0x14(r5) +/* 8039700C 00393F6C 80 08 00 04 */ lwz r0, 4(r8) +/* 80397010 00393F70 7C 09 02 14 */ add r0, r9, r0 +/* 80397014 00393F74 90 05 00 08 */ stw r0, 8(r5) +/* 80397018 00393F78 48 00 00 38 */ b lbl_80397050 +lbl_8039701C: +/* 8039701C 00393F7C 7C 0A 58 40 */ cmplw r10, r11 +/* 80397020 00393F80 40 80 00 1C */ bge lbl_8039703C +/* 80397024 00393F84 80 68 00 04 */ lwz r3, 4(r8) +/* 80397028 00393F88 38 00 00 02 */ li r0, 2 +/* 8039702C 00393F8C 7C 6A 1A 14 */ add r3, r10, r3 +/* 80397030 00393F90 90 65 00 08 */ stw r3, 8(r5) +/* 80397034 00393F94 98 05 00 14 */ stb r0, 0x14(r5) +/* 80397038 00393F98 48 00 00 18 */ b lbl_80397050 +lbl_8039703C: +/* 8039703C 00393F9C 80 68 00 04 */ lwz r3, 4(r8) +/* 80397040 00393FA0 38 00 00 01 */ li r0, 1 +/* 80397044 00393FA4 7C 6B 1A 14 */ add r3, r11, r3 +/* 80397048 00393FA8 90 65 00 08 */ stw r3, 8(r5) +/* 8039704C 00393FAC 98 05 00 14 */ stb r0, 0x14(r5) +lbl_80397050: +/* 80397050 00393FB0 7C A3 2B 78 */ mr r3, r5 +/* 80397054 00393FB4 4E 80 00 20 */ blr +lbl_80397058: +/* 80397058 00393FB8 38 60 00 00 */ li r3, 0 +/* 8039705C 00393FBC 4E 80 00 20 */ blr + +.global sub_80397060 +sub_80397060: +/* 80397060 00393FC0 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 80397064 00393FC4 7C 08 02 A6 */ mflr r0 +/* 80397068 00393FC8 90 01 00 44 */ stw r0, 0x44(r1) +/* 8039706C 00393FCC 39 61 00 40 */ addi r11, r1, 0x40 +/* 80397070 00393FD0 4B FF 2A 09 */ bl func_80389A78 +/* 80397074 00393FD4 7C 7F 1B 78 */ mr r31, r3 +/* 80397078 00393FD8 88 63 00 14 */ lbz r3, 0x14(r3) +/* 8039707C 00393FDC 2C 03 00 02 */ cmpwi r3, 2 +/* 80397080 00393FE0 41 82 08 48 */ beq lbl_803978C8 +/* 80397084 00393FE4 40 80 00 14 */ bge lbl_80397098 +/* 80397088 00393FE8 2C 03 00 00 */ cmpwi r3, 0 +/* 8039708C 00393FEC 41 82 03 30 */ beq lbl_803973BC +/* 80397090 00393FF0 40 80 09 34 */ bge lbl_803979C4 +/* 80397094 00393FF4 48 00 0A 40 */ b lbl_80397AD4 +lbl_80397098: +/* 80397098 00393FF8 2C 03 00 04 */ cmpwi r3, 4 +/* 8039709C 00393FFC 41 82 00 0C */ beq lbl_803970A8 +/* 803970A0 00394000 40 80 0A 34 */ bge lbl_80397AD4 +/* 803970A4 00394004 48 00 0A 1C */ b lbl_80397AC0 +lbl_803970A8: +/* 803970A8 00394008 80 7F 00 0C */ lwz r3, 0xc(r31) +/* 803970AC 0039400C 39 20 00 00 */ li r9, 0 +/* 803970B0 00394010 81 0D AE 38 */ lwz r8, lbl_805A99F8@sda21(r13) +/* 803970B4 00394014 A0 83 00 08 */ lhz r4, 8(r3) +/* 803970B8 00394018 81 48 01 18 */ lwz r10, 0x118(r8) +/* 803970BC 0039401C 88 DF 00 15 */ lbz r6, 0x15(r31) +/* 803970C0 00394020 54 84 10 3A */ slwi r4, r4, 2 +/* 803970C4 00394024 80 AA 00 04 */ lwz r5, 4(r10) +/* 803970C8 00394028 7C 8A 22 14 */ add r4, r10, r4 +/* 803970CC 0039402C 1C C6 00 2C */ mulli r6, r6, 0x2c +/* 803970D0 00394030 7C A5 20 2E */ lwzx r5, r5, r4 +/* 803970D4 00394034 38 86 03 64 */ addi r4, r6, 0x364 +/* 803970D8 00394038 7C AA 2A 14 */ add r5, r10, r5 +/* 803970DC 0039403C 7C 88 22 14 */ add r4, r8, r4 +/* 803970E0 00394040 38 C5 00 0C */ addi r6, r5, 0xc +/* 803970E4 00394044 90 C4 00 08 */ stw r6, 8(r4) +/* 803970E8 00394048 91 24 00 00 */ stw r9, 0(r4) +/* 803970EC 0039404C 80 C3 00 00 */ lwz r6, 0(r3) +/* 803970F0 00394050 90 C4 00 04 */ stw r6, 4(r4) +/* 803970F4 00394054 90 64 00 0C */ stw r3, 0xc(r4) +/* 803970F8 00394058 81 05 00 04 */ lwz r8, 4(r5) +/* 803970FC 0039405C 28 08 00 00 */ cmplwi r8, 0 +/* 80397100 00394060 41 82 00 BC */ beq lbl_803971BC +/* 80397104 00394064 80 CD AE 38 */ lwz r6, lbl_805A99F8@sda21(r13) +/* 80397108 00394068 80 C6 01 18 */ lwz r6, 0x118(r6) +/* 8039710C 0039406C 7D 68 32 14 */ add r11, r8, r6 +/* 80397110 00394070 89 4B 00 00 */ lbz r10, 0(r11) +/* 80397114 00394074 89 0B 00 01 */ lbz r8, 1(r11) +/* 80397118 00394078 28 0A 00 80 */ cmplwi r10, 0x80 +/* 8039711C 0039407C 40 82 00 10 */ bne lbl_8039712C +/* 80397120 00394080 28 08 00 00 */ cmplwi r8, 0 +/* 80397124 00394084 40 82 00 08 */ bne lbl_8039712C +/* 80397128 00394088 48 00 00 6C */ b lbl_80397194 +lbl_8039712C: +/* 8039712C 0039408C 55 46 06 31 */ rlwinm. r6, r10, 0, 0x18, 0x18 +/* 80397130 00394090 41 82 00 14 */ beq lbl_80397144 +/* 80397134 00394094 51 48 44 6E */ rlwimi r8, r10, 8, 0x11, 0x17 +/* 80397138 00394098 39 6B 00 02 */ addi r11, r11, 2 +/* 8039713C 0039409C 55 07 04 3E */ clrlwi r7, r8, 0x10 +/* 80397140 003940A0 48 00 00 0C */ b lbl_8039714C +lbl_80397144: +/* 80397144 003940A4 7D 47 53 78 */ mr r7, r10 +/* 80397148 003940A8 39 6B 00 01 */ addi r11, r11, 1 +lbl_8039714C: +/* 8039714C 003940AC 89 0B 00 00 */ lbz r8, 0(r11) +/* 80397150 003940B0 89 2B 00 01 */ lbz r9, 1(r11) +/* 80397154 003940B4 55 06 06 31 */ rlwinm. r6, r8, 0, 0x18, 0x18 +/* 80397158 003940B8 41 82 00 20 */ beq lbl_80397178 +/* 8039715C 003940BC 51 09 44 6E */ rlwimi r9, r8, 8, 0x11, 0x17 +/* 80397160 003940C0 39 6B 00 02 */ addi r11, r11, 2 +/* 80397164 003940C4 7D 28 07 34 */ extsh r8, r9 +/* 80397168 003940C8 55 06 0C 20 */ rlwinm r6, r8, 1, 0x10, 0x10 +/* 8039716C 003940CC 7D 06 33 78 */ or r6, r8, r6 +/* 80397170 003940D0 B0 C4 00 16 */ sth r6, 0x16(r4) +/* 80397174 003940D4 48 00 00 1C */ b lbl_80397190 +lbl_80397178: +/* 80397178 003940D8 55 06 0E 30 */ rlwinm r6, r8, 1, 0x18, 0x18 +/* 8039717C 003940DC 39 6B 00 01 */ addi r11, r11, 1 +/* 80397180 003940E0 7D 06 33 78 */ or r6, r8, r6 +/* 80397184 003940E4 54 C8 06 3E */ clrlwi r8, r6, 0x18 +/* 80397188 003940E8 7D 06 07 74 */ extsb r6, r8 +/* 8039718C 003940EC B0 C4 00 16 */ sth r6, 0x16(r4) +lbl_80397190: +/* 80397190 003940F0 7D 69 5B 78 */ mr r9, r11 +lbl_80397194: +/* 80397194 003940F4 28 09 00 00 */ cmplwi r9, 0 +/* 80397198 003940F8 91 24 00 10 */ stw r9, 0x10(r4) +/* 8039719C 003940FC 41 82 00 10 */ beq lbl_803971AC +/* 803971A0 00394100 54 E6 04 3E */ clrlwi r6, r7, 0x10 +/* 803971A4 00394104 90 C4 00 18 */ stw r6, 0x18(r4) +/* 803971A8 00394108 48 00 00 20 */ b lbl_803971C8 +lbl_803971AC: +/* 803971AC 0039410C 3C C0 80 00 */ lis r6, 0x7FFFFFFF@ha +/* 803971B0 00394110 38 C6 FF FF */ addi r6, r6, 0x7FFFFFFF@l +/* 803971B4 00394114 90 C4 00 18 */ stw r6, 0x18(r4) +/* 803971B8 00394118 48 00 00 10 */ b lbl_803971C8 +lbl_803971BC: +/* 803971BC 0039411C 3C C0 80 00 */ lis r6, 0x7FFFFFFF@ha +/* 803971C0 00394120 38 C6 FF FF */ addi r6, r6, 0x7FFFFFFF@l +/* 803971C4 00394124 90 C4 00 18 */ stw r6, 0x18(r4) +lbl_803971C8: +/* 803971C8 00394128 38 C0 20 00 */ li r6, 0x2000 +/* 803971CC 0039412C B0 C4 00 14 */ sth r6, 0x14(r4) +/* 803971D0 00394130 80 C5 00 08 */ lwz r6, 8(r5) +/* 803971D4 00394134 28 06 00 00 */ cmplwi r6, 0 +/* 803971D8 00394138 41 82 00 BC */ beq lbl_80397294 +/* 803971DC 0039413C 80 AD AE 38 */ lwz r5, lbl_805A99F8@sda21(r13) +/* 803971E0 00394140 80 A5 01 18 */ lwz r5, 0x118(r5) +/* 803971E4 00394144 7C E6 2A 14 */ add r7, r6, r5 +/* 803971E8 00394148 88 C7 00 00 */ lbz r6, 0(r7) +/* 803971EC 0039414C 88 A7 00 01 */ lbz r5, 1(r7) +/* 803971F0 00394150 28 06 00 80 */ cmplwi r6, 0x80 +/* 803971F4 00394154 40 82 00 14 */ bne lbl_80397208 +/* 803971F8 00394158 28 05 00 00 */ cmplwi r5, 0 +/* 803971FC 0039415C 40 82 00 0C */ bne lbl_80397208 +/* 80397200 00394160 38 E0 00 00 */ li r7, 0 +/* 80397204 00394164 48 00 00 68 */ b lbl_8039726C +lbl_80397208: +/* 80397208 00394168 54 C0 06 31 */ rlwinm. r0, r6, 0, 0x18, 0x18 +/* 8039720C 0039416C 41 82 00 14 */ beq lbl_80397220 +/* 80397210 00394170 50 C5 44 6E */ rlwimi r5, r6, 8, 0x11, 0x17 +/* 80397214 00394174 38 E7 00 02 */ addi r7, r7, 2 +/* 80397218 00394178 54 A0 04 3E */ clrlwi r0, r5, 0x10 +/* 8039721C 0039417C 48 00 00 0C */ b lbl_80397228 +lbl_80397220: +/* 80397220 00394180 7C C0 33 78 */ mr r0, r6 +/* 80397224 00394184 38 E7 00 01 */ addi r7, r7, 1 +lbl_80397228: +/* 80397228 00394188 88 C7 00 00 */ lbz r6, 0(r7) +/* 8039722C 0039418C 89 07 00 01 */ lbz r8, 1(r7) +/* 80397230 00394190 54 C5 06 31 */ rlwinm. r5, r6, 0, 0x18, 0x18 +/* 80397234 00394194 41 82 00 20 */ beq lbl_80397254 +/* 80397238 00394198 50 C8 44 6E */ rlwimi r8, r6, 8, 0x11, 0x17 +/* 8039723C 0039419C 38 E7 00 02 */ addi r7, r7, 2 +/* 80397240 003941A0 7D 06 07 34 */ extsh r6, r8 +/* 80397244 003941A4 54 C5 0C 20 */ rlwinm r5, r6, 1, 0x10, 0x10 +/* 80397248 003941A8 7C C5 2B 78 */ or r5, r6, r5 +/* 8039724C 003941AC B0 A4 00 22 */ sth r5, 0x22(r4) +/* 80397250 003941B0 48 00 00 1C */ b lbl_8039726C +lbl_80397254: +/* 80397254 003941B4 54 C5 0E 30 */ rlwinm r5, r6, 1, 0x18, 0x18 +/* 80397258 003941B8 38 E7 00 01 */ addi r7, r7, 1 +/* 8039725C 003941BC 7C C5 2B 78 */ or r5, r6, r5 +/* 80397260 003941C0 54 A6 06 3E */ clrlwi r6, r5, 0x18 +/* 80397264 003941C4 7C C5 07 74 */ extsb r5, r6 +/* 80397268 003941C8 B0 A4 00 22 */ sth r5, 0x22(r4) +lbl_8039726C: +/* 8039726C 003941CC 28 07 00 00 */ cmplwi r7, 0 +/* 80397270 003941D0 90 E4 00 1C */ stw r7, 0x1c(r4) +/* 80397274 003941D4 41 82 00 10 */ beq lbl_80397284 +/* 80397278 003941D8 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 8039727C 003941DC 90 04 00 24 */ stw r0, 0x24(r4) +/* 80397280 003941E0 48 00 00 20 */ b lbl_803972A0 +lbl_80397284: +/* 80397284 003941E4 3C A0 80 00 */ lis r5, 0x7FFFFFFF@ha +/* 80397288 003941E8 38 05 FF FF */ addi r0, r5, 0x7FFFFFFF@l +/* 8039728C 003941EC 90 04 00 24 */ stw r0, 0x24(r4) +/* 80397290 003941F0 48 00 00 10 */ b lbl_803972A0 +lbl_80397294: +/* 80397294 003941F4 3C A0 80 00 */ lis r5, 0x7FFFFFFF@ha +/* 80397298 003941F8 38 05 FF FF */ addi r0, r5, 0x7FFFFFFF@l +/* 8039729C 003941FC 90 04 00 24 */ stw r0, 0x24(r4) +lbl_803972A0: +/* 803972A0 00394200 38 00 00 00 */ li r0, 0 +/* 803972A4 00394204 B0 04 00 20 */ sth r0, 0x20(r4) +/* 803972A8 00394208 80 AD AE 38 */ lwz r5, lbl_805A99F8@sda21(r13) +/* 803972AC 0039420C 88 1F 00 15 */ lbz r0, 0x15(r31) +/* 803972B0 00394210 80 C5 01 18 */ lwz r6, 0x118(r5) +/* 803972B4 00394214 80 A6 00 08 */ lwz r5, 8(r6) +/* 803972B8 00394218 7C 06 02 14 */ add r0, r6, r0 +/* 803972BC 0039421C 7C 05 00 AE */ lbzx r0, r5, r0 +/* 803972C0 00394220 98 04 00 28 */ stb r0, 0x28(r4) +/* 803972C4 00394224 89 23 00 04 */ lbz r9, 4(r3) +/* 803972C8 00394228 28 09 00 FF */ cmplwi r9, 0xff +/* 803972CC 0039422C 41 82 00 CC */ beq lbl_80397398 +/* 803972D0 00394230 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 803972D4 00394234 3C A0 80 55 */ lis r5, lbl_8054FD10@ha +/* 803972D8 00394238 89 04 00 28 */ lbz r8, 0x28(r4) +/* 803972DC 0039423C 3C E0 00 01 */ lis r7, 0x0000FFFF@ha +/* 803972E0 00394240 54 06 28 34 */ slwi r6, r0, 5 +/* 803972E4 00394244 38 05 FD 10 */ addi r0, r5, lbl_8054FD10@l +/* 803972E8 00394248 28 08 00 09 */ cmplwi r8, 9 +/* 803972EC 0039424C 38 E7 FF FF */ addi r7, r7, 0x0000FFFF@l +/* 803972F0 00394250 7C A0 32 14 */ add r5, r0, r6 +/* 803972F4 00394254 55 00 0D FC */ rlwinm r0, r8, 1, 0x17, 0x1e +/* 803972F8 00394258 7C E5 03 2E */ sthx r7, r5, r0 +/* 803972FC 0039425C 80 ED AE 38 */ lwz r7, lbl_805A99F8@sda21(r13) +/* 80397300 00394260 41 82 00 50 */ beq lbl_80397350 +/* 80397304 00394264 7C A7 4A 14 */ add r5, r7, r9 +/* 80397308 00394268 88 05 00 14 */ lbz r0, 0x14(r5) +/* 8039730C 0039426C 28 00 00 FF */ cmplwi r0, 0xff +/* 80397310 00394270 41 82 00 88 */ beq lbl_80397398 +/* 80397314 00394274 1D 20 00 06 */ mulli r9, r0, 6 +/* 80397318 00394278 80 A7 00 10 */ lwz r5, 0x10(r7) +/* 8039731C 0039427C 55 06 10 3A */ slwi r6, r8, 2 +/* 80397320 00394280 7C 05 4A 2E */ lhzx r0, r5, r9 +/* 80397324 00394284 7C C7 32 14 */ add r6, r7, r6 +/* 80397328 00394288 B0 06 0E 70 */ sth r0, 0xe70(r6) +/* 8039732C 0039428C 80 07 00 10 */ lwz r0, 0x10(r7) +/* 80397330 00394290 7C A0 4A 14 */ add r5, r0, r9 +/* 80397334 00394294 88 05 00 02 */ lbz r0, 2(r5) +/* 80397338 00394298 98 06 0E 72 */ stb r0, 0xe72(r6) +/* 8039733C 0039429C 80 07 00 10 */ lwz r0, 0x10(r7) +/* 80397340 003942A0 7C A0 4A 14 */ add r5, r0, r9 +/* 80397344 003942A4 88 05 00 03 */ lbz r0, 3(r5) +/* 80397348 003942A8 98 06 0E 73 */ stb r0, 0xe73(r6) +/* 8039734C 003942AC 48 00 00 4C */ b lbl_80397398 +lbl_80397350: +/* 80397350 003942B0 7C A7 4A 14 */ add r5, r7, r9 +/* 80397354 003942B4 88 05 00 98 */ lbz r0, 0x98(r5) +/* 80397358 003942B8 28 00 00 FF */ cmplwi r0, 0xff +/* 8039735C 003942BC 41 82 00 3C */ beq lbl_80397398 +/* 80397360 003942C0 1D 20 00 06 */ mulli r9, r0, 6 +/* 80397364 003942C4 80 A7 00 94 */ lwz r5, 0x94(r7) +/* 80397368 003942C8 55 06 10 3A */ slwi r6, r8, 2 +/* 8039736C 003942CC 7C 05 4A 2E */ lhzx r0, r5, r9 +/* 80397370 003942D0 7C C7 32 14 */ add r6, r7, r6 +/* 80397374 003942D4 B0 06 0E 70 */ sth r0, 0xe70(r6) +/* 80397378 003942D8 80 07 00 94 */ lwz r0, 0x94(r7) +/* 8039737C 003942DC 7C A0 4A 14 */ add r5, r0, r9 +/* 80397380 003942E0 88 05 00 02 */ lbz r0, 2(r5) +/* 80397384 003942E4 98 06 0E 72 */ stb r0, 0xe72(r6) +/* 80397388 003942E8 80 07 00 94 */ lwz r0, 0x94(r7) +/* 8039738C 003942EC 7C A0 4A 14 */ add r5, r0, r9 +/* 80397390 003942F0 88 05 00 03 */ lbz r0, 3(r5) +/* 80397394 003942F4 98 06 0E 73 */ stb r0, 0xe73(r6) +lbl_80397398: +/* 80397398 003942F8 88 C3 00 05 */ lbz r6, 5(r3) +/* 8039739C 003942FC 28 06 00 FF */ cmplwi r6, 0xff +/* 803973A0 00394300 41 82 07 34 */ beq lbl_80397AD4 +/* 803973A4 00394304 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 803973A8 00394308 38 60 00 07 */ li r3, 7 +/* 803973AC 0039430C 88 84 00 28 */ lbz r4, 0x28(r4) +/* 803973B0 00394310 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 803973B4 00394314 48 01 9D 3D */ bl sub_803b10f0 +/* 803973B8 00394318 48 00 07 1C */ b lbl_80397AD4 +lbl_803973BC: +/* 803973BC 0039431C 80 FF 00 0C */ lwz r7, 0xc(r31) +/* 803973C0 00394320 81 7F 00 10 */ lwz r11, 0x10(r31) +/* 803973C4 00394324 88 07 00 02 */ lbz r0, 2(r7) +/* 803973C8 00394328 88 A7 00 03 */ lbz r5, 3(r7) +/* 803973CC 0039432C 54 03 06 31 */ rlwinm. r3, r0, 0, 0x18, 0x18 +/* 803973D0 00394330 89 2B 00 28 */ lbz r9, 0x28(r11) +/* 803973D4 00394334 41 82 02 7C */ beq lbl_80397650 +/* 803973D8 00394338 2C 05 00 01 */ cmpwi r5, 1 +/* 803973DC 0039433C 41 82 00 E0 */ beq lbl_803974BC +/* 803973E0 00394340 40 80 00 F8 */ bge lbl_803974D8 +/* 803973E4 00394344 2C 05 00 00 */ cmpwi r5, 0 +/* 803973E8 00394348 40 80 00 08 */ bge lbl_803973F0 +/* 803973EC 0039434C 48 00 00 EC */ b lbl_803974D8 +lbl_803973F0: +/* 803973F0 00394350 80 8D AE 30 */ lwz r4, lbl_805A99F0@sda21(r13) +/* 803973F4 00394354 3C 60 80 55 */ lis r3, lbl_8054FD10@ha +/* 803973F8 00394358 3C C0 00 01 */ lis r6, 0x0000FFFF@ha +/* 803973FC 0039435C 28 09 00 09 */ cmplwi r9, 9 +/* 80397400 00394360 54 85 28 34 */ slwi r5, r4, 5 +/* 80397404 00394364 38 83 FD 10 */ addi r4, r3, lbl_8054FD10@l +/* 80397408 00394368 38 C6 FF FF */ addi r6, r6, 0x0000FFFF@l +/* 8039740C 0039436C 55 23 0D FC */ rlwinm r3, r9, 1, 0x17, 0x1e +/* 80397410 00394370 7C 84 2A 14 */ add r4, r4, r5 +/* 80397414 00394374 80 AD AE 38 */ lwz r5, lbl_805A99F8@sda21(r13) +/* 80397418 00394378 7C C4 1B 2E */ sthx r6, r4, r3 +/* 8039741C 0039437C 54 00 06 7E */ clrlwi r0, r0, 0x19 +/* 80397420 00394380 41 82 00 50 */ beq lbl_80397470 +/* 80397424 00394384 7C 65 02 14 */ add r3, r5, r0 +/* 80397428 00394388 88 03 00 14 */ lbz r0, 0x14(r3) +/* 8039742C 0039438C 28 00 00 FF */ cmplwi r0, 0xff +/* 80397430 00394390 41 82 06 A4 */ beq lbl_80397AD4 +/* 80397434 00394394 1C C0 00 06 */ mulli r6, r0, 6 +/* 80397438 00394398 80 65 00 10 */ lwz r3, 0x10(r5) +/* 8039743C 0039439C 55 24 10 3A */ slwi r4, r9, 2 +/* 80397440 003943A0 7C 03 32 2E */ lhzx r0, r3, r6 +/* 80397444 003943A4 7C 85 22 14 */ add r4, r5, r4 +/* 80397448 003943A8 B0 04 0E 70 */ sth r0, 0xe70(r4) +/* 8039744C 003943AC 80 05 00 10 */ lwz r0, 0x10(r5) +/* 80397450 003943B0 7C 60 32 14 */ add r3, r0, r6 +/* 80397454 003943B4 88 03 00 02 */ lbz r0, 2(r3) +/* 80397458 003943B8 98 04 0E 72 */ stb r0, 0xe72(r4) +/* 8039745C 003943BC 80 05 00 10 */ lwz r0, 0x10(r5) +/* 80397460 003943C0 7C 60 32 14 */ add r3, r0, r6 +/* 80397464 003943C4 88 03 00 03 */ lbz r0, 3(r3) +/* 80397468 003943C8 98 04 0E 73 */ stb r0, 0xe73(r4) +/* 8039746C 003943CC 48 00 06 68 */ b lbl_80397AD4 +lbl_80397470: +/* 80397470 003943D0 7C 65 02 14 */ add r3, r5, r0 +/* 80397474 003943D4 88 03 00 98 */ lbz r0, 0x98(r3) +/* 80397478 003943D8 28 00 00 FF */ cmplwi r0, 0xff +/* 8039747C 003943DC 41 82 06 58 */ beq lbl_80397AD4 +/* 80397480 003943E0 1C C0 00 06 */ mulli r6, r0, 6 +/* 80397484 003943E4 80 65 00 94 */ lwz r3, 0x94(r5) +/* 80397488 003943E8 55 24 10 3A */ slwi r4, r9, 2 +/* 8039748C 003943EC 7C 03 32 2E */ lhzx r0, r3, r6 +/* 80397490 003943F0 7C 85 22 14 */ add r4, r5, r4 +/* 80397494 003943F4 B0 04 0E 70 */ sth r0, 0xe70(r4) +/* 80397498 003943F8 80 05 00 94 */ lwz r0, 0x94(r5) +/* 8039749C 003943FC 7C 60 32 14 */ add r3, r0, r6 +/* 803974A0 00394400 88 03 00 02 */ lbz r0, 2(r3) +/* 803974A4 00394404 98 04 0E 72 */ stb r0, 0xe72(r4) +/* 803974A8 00394408 80 05 00 94 */ lwz r0, 0x94(r5) +/* 803974AC 0039440C 7C 60 32 14 */ add r3, r0, r6 +/* 803974B0 00394410 88 03 00 03 */ lbz r0, 3(r3) +/* 803974B4 00394414 98 04 0E 73 */ stb r0, 0xe73(r4) +/* 803974B8 00394418 48 00 06 1C */ b lbl_80397AD4 +lbl_803974BC: +/* 803974BC 0039441C 80 AD AE 30 */ lwz r5, lbl_805A99F0@sda21(r13) +/* 803974C0 00394420 54 06 06 7E */ clrlwi r6, r0, 0x19 +/* 803974C4 00394424 7D 24 4B 78 */ mr r4, r9 +/* 803974C8 00394428 38 60 00 82 */ li r3, 0x82 +/* 803974CC 0039442C 54 A5 06 3E */ clrlwi r5, r5, 0x18 +/* 803974D0 00394430 48 01 9C 21 */ bl sub_803b10f0 +/* 803974D4 00394434 48 00 06 00 */ b lbl_80397AD4 +lbl_803974D8: +/* 803974D8 00394438 54 A3 06 30 */ rlwinm r3, r5, 0, 0x18, 0x18 +/* 803974DC 0039443C 2C 03 00 80 */ cmpwi r3, 0x80 +/* 803974E0 00394440 40 82 05 F4 */ bne lbl_80397AD4 +/* 803974E4 00394444 54 A3 06 7E */ clrlwi r3, r5, 0x19 +/* 803974E8 00394448 38 A3 FF 98 */ addi r5, r3, -104 +/* 803974EC 0039444C 28 05 00 13 */ cmplwi r5, 0x13 +/* 803974F0 00394450 41 81 01 48 */ bgt lbl_80397638 +/* 803974F4 00394454 3C 80 80 3F */ lis r4, lbl_803F2F88@ha +/* 803974F8 00394458 54 A5 10 3A */ slwi r5, r5, 2 +/* 803974FC 0039445C 38 84 2F 88 */ addi r4, r4, lbl_803F2F88@l +/* 80397500 00394460 7C 84 28 2E */ lwzx r4, r4, r5 +/* 80397504 00394464 7C 89 03 A6 */ mtctr r4 +/* 80397508 00394468 4E 80 04 20 */ bctr +/* 8039750C 0039446C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397510 00394470 88 03 0E E0 */ lbz r0, 0xee0(r3) +/* 80397514 00394474 28 00 00 00 */ cmplwi r0, 0 +/* 80397518 00394478 41 82 05 BC */ beq lbl_80397AD4 +/* 8039751C 0039447C 80 83 0E DC */ lwz r4, 0xedc(r3) +/* 80397520 00394480 38 63 0E B4 */ addi r3, r3, 0xeb4 +/* 80397524 00394484 38 A0 00 01 */ li r5, 1 +/* 80397528 00394488 4B FF ED C9 */ bl seqCrossFade +/* 8039752C 0039448C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397530 00394490 38 00 00 00 */ li r0, 0 +/* 80397534 00394494 98 03 0E E0 */ stb r0, 0xee0(r3) +/* 80397538 00394498 48 00 05 9C */ b lbl_80397AD4 +/* 8039753C 0039449C 80 8D AE 30 */ lwz r4, lbl_805A99F0@sda21(r13) +/* 80397540 003944A0 3C 60 80 55 */ lis r3, lbl_8054FD10@ha +/* 80397544 003944A4 38 63 FD 10 */ addi r3, r3, lbl_8054FD10@l +/* 80397548 003944A8 54 05 06 7E */ clrlwi r5, r0, 0x19 +/* 8039754C 003944AC 54 84 28 34 */ slwi r4, r4, 5 +/* 80397550 003944B0 55 20 0D FC */ rlwinm r0, r9, 1, 0x17, 0x1e +/* 80397554 003944B4 7C 63 22 14 */ add r3, r3, r4 +/* 80397558 003944B8 7C A3 03 2E */ sthx r5, r3, r0 +/* 8039755C 003944BC 48 00 05 78 */ b lbl_80397AD4 +/* 80397560 003944C0 80 8D AE 30 */ lwz r4, lbl_805A99F0@sda21(r13) +/* 80397564 003944C4 54 05 06 7E */ clrlwi r5, r0, 0x19 +/* 80397568 003944C8 3C 60 80 55 */ lis r3, lbl_8054FD10@ha +/* 8039756C 003944CC 55 20 0D FC */ rlwinm r0, r9, 1, 0x17, 0x1e +/* 80397570 003944D0 54 84 28 34 */ slwi r4, r4, 5 +/* 80397574 003944D4 38 A5 00 80 */ addi r5, r5, 0x80 +/* 80397578 003944D8 38 63 FD 10 */ addi r3, r3, lbl_8054FD10@l +/* 8039757C 003944DC 7C 63 22 14 */ add r3, r3, r4 +/* 80397580 003944E0 7C A3 03 2E */ sthx r5, r3, r0 +/* 80397584 003944E4 48 00 05 50 */ b lbl_80397AD4 +/* 80397588 003944E8 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 8039758C 003944EC 7D 23 4B 78 */ mr r3, r9 +/* 80397590 003944F0 38 A0 00 00 */ li r5, 0 +/* 80397594 003944F4 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 80397598 003944F8 48 01 A2 85 */ bl inpResetMidiCtrl +/* 8039759C 003944FC 48 00 05 38 */ b lbl_80397AD4 +/* 803975A0 00394500 3B A0 00 00 */ li r29, 0 +/* 803975A4 00394504 7F BE EB 78 */ mr r30, r29 +lbl_803975A8: +/* 803975A8 00394508 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803975AC 0039450C 38 1E 0E 64 */ addi r0, r30, 0xe64 +/* 803975B0 00394510 7F 63 00 2E */ lwzx r27, r3, r0 +/* 803975B4 00394514 48 00 00 68 */ b lbl_8039761C +lbl_803975B8: +/* 803975B8 00394518 83 9B 00 00 */ lwz r28, 0(r27) +/* 803975BC 0039451C 80 7B 00 08 */ lwz r3, 8(r27) +/* 803975C0 00394520 48 00 3D A1 */ bl synthSendKeyOff +/* 803975C4 00394524 80 9B 00 00 */ lwz r4, 0(r27) +/* 803975C8 00394528 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803975CC 0039452C 28 04 00 00 */ cmplwi r4, 0 +/* 803975D0 00394530 38 03 0E 64 */ addi r0, r3, 0xe64 +/* 803975D4 00394534 7C 9E 01 2E */ stwx r4, r30, r0 +/* 803975D8 00394538 41 82 00 18 */ beq lbl_803975F0 +/* 803975DC 0039453C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803975E0 00394540 38 80 00 00 */ li r4, 0 +/* 803975E4 00394544 38 03 0E 64 */ addi r0, r3, 0xe64 +/* 803975E8 00394548 7C 7E 00 2E */ lwzx r3, r30, r0 +/* 803975EC 0039454C 90 83 00 04 */ stw r4, 4(r3) +lbl_803975F0: +/* 803975F0 00394550 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803975F4 00394554 80 03 0E 6C */ lwz r0, 0xe6c(r3) +/* 803975F8 00394558 28 00 00 00 */ cmplwi r0, 0 +/* 803975FC 0039455C 90 1B 00 00 */ stw r0, 0(r27) +/* 80397600 00394560 41 82 00 10 */ beq lbl_80397610 +/* 80397604 00394564 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397608 00394568 80 63 0E 6C */ lwz r3, 0xe6c(r3) +/* 8039760C 0039456C 93 63 00 04 */ stw r27, 4(r3) +lbl_80397610: +/* 80397610 00394570 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397614 00394574 93 63 0E 6C */ stw r27, 0xe6c(r3) +/* 80397618 00394578 7F 9B E3 78 */ mr r27, r28 +lbl_8039761C: +/* 8039761C 0039457C 28 1B 00 00 */ cmplwi r27, 0 +/* 80397620 00394580 40 82 FF 98 */ bne lbl_803975B8 +/* 80397624 00394584 3B BD 00 01 */ addi r29, r29, 1 +/* 80397628 00394588 3B DE 00 04 */ addi r30, r30, 4 +/* 8039762C 0039458C 28 1D 00 02 */ cmplwi r29, 2 +/* 80397630 00394590 41 80 FF 78 */ blt lbl_803975A8 +/* 80397634 00394594 48 00 04 A0 */ b lbl_80397AD4 +lbl_80397638: +/* 80397638 00394598 80 AD AE 30 */ lwz r5, lbl_805A99F0@sda21(r13) +/* 8039763C 0039459C 54 06 06 7E */ clrlwi r6, r0, 0x19 +/* 80397640 003945A0 7D 24 4B 78 */ mr r4, r9 +/* 80397644 003945A4 54 A5 06 3E */ clrlwi r5, r5, 0x18 +/* 80397648 003945A8 48 01 9A A9 */ bl sub_803b10f0 +/* 8039764C 003945AC 48 00 04 88 */ b lbl_80397AD4 +lbl_80397650: +/* 80397650 003945B0 88 7F 00 15 */ lbz r3, 0x15(r31) +/* 80397654 003945B4 38 C0 00 01 */ li r6, 1 +/* 80397658 003945B8 81 4D AE 38 */ lwz r10, lbl_805A99F8@sda21(r13) +/* 8039765C 003945BC 54 68 EE FA */ rlwinm r8, r3, 0x1d, 0x1b, 0x1d +/* 80397660 003945C0 54 63 06 FE */ clrlwi r3, r3, 0x1b +/* 80397664 003945C4 7D 0A 42 14 */ add r8, r10, r8 +/* 80397668 003945C8 81 08 01 1C */ lwz r8, 0x11c(r8) +/* 8039766C 003945CC 7C C3 18 30 */ slw r3, r6, r3 +/* 80397670 003945D0 7D 03 18 39 */ and. r3, r8, r3 +/* 80397674 003945D4 41 82 04 60 */ beq lbl_80397AD4 +/* 80397678 003945D8 55 26 15 BA */ rlwinm r6, r9, 2, 0x16, 0x1d +/* 8039767C 003945DC 7C 6A 32 14 */ add r3, r10, r6 +/* 80397680 003945E0 A0 63 0E 70 */ lhz r3, 0xe70(r3) +/* 80397684 003945E4 28 03 FF FF */ cmplwi r3, 0xffff +/* 80397688 003945E8 41 82 04 4C */ beq lbl_80397AD4 +/* 8039768C 003945EC 81 4B 00 0C */ lwz r10, 0xc(r11) +/* 80397690 003945F0 89 0A 00 0A */ lbz r8, 0xa(r10) +/* 80397694 003945F4 7D 08 07 74 */ extsb r8, r8 +/* 80397698 003945F8 7C 00 42 14 */ add r0, r0, r8 +/* 8039769C 003945FC 2C 00 00 7F */ cmpwi r0, 0x7f +/* 803976A0 00394600 40 81 00 0C */ ble lbl_803976AC +/* 803976A4 00394604 38 00 00 7F */ li r0, 0x7f +/* 803976A8 00394608 48 00 00 0C */ b lbl_803976B4 +lbl_803976AC: +/* 803976AC 0039460C 7C 08 FE 70 */ srawi r8, r0, 0x1f +/* 803976B0 00394610 7C 00 40 78 */ andc r0, r0, r8 +lbl_803976B4: +/* 803976B4 00394614 89 0A 00 0B */ lbz r8, 0xb(r10) +/* 803976B8 00394618 7D 08 07 74 */ extsb r8, r8 +/* 803976BC 0039461C 7C A5 42 14 */ add r5, r5, r8 +/* 803976C0 00394620 2C 05 00 7F */ cmpwi r5, 0x7f +/* 803976C4 00394624 40 81 00 0C */ ble lbl_803976D0 +/* 803976C8 00394628 38 A0 00 7F */ li r5, 0x7f +/* 803976CC 0039462C 48 00 00 0C */ b lbl_803976D8 +lbl_803976D0: +/* 803976D0 00394630 7C A8 FE 70 */ srawi r8, r5, 0x1f +/* 803976D4 00394634 7C A5 40 78 */ andc r5, r5, r8 +lbl_803976D8: +/* 803976D8 00394638 83 CD AE 34 */ lwz r30, lbl_805A99F4@sda21(r13) +/* 803976DC 0039463C 81 1F 00 08 */ lwz r8, 8(r31) +/* 803976E0 00394640 A0 E7 00 04 */ lhz r7, 4(r7) +/* 803976E4 00394644 28 1E 00 00 */ cmplwi r30, 0 +/* 803976E8 00394648 7D 48 3A 14 */ add r10, r8, r7 +/* 803976EC 0039464C 41 82 00 DC */ beq lbl_803977C8 +/* 803976F0 00394650 81 1E 00 00 */ lwz r8, 0(r30) +/* 803976F4 00394654 28 08 00 00 */ cmplwi r8, 0 +/* 803976F8 00394658 91 0D AE 34 */ stw r8, lbl_805A99F4@sda21(r13) +/* 803976FC 0039465C 41 82 00 0C */ beq lbl_80397708 +/* 80397700 00394660 38 E0 00 00 */ li r7, 0 +/* 80397704 00394664 90 E8 00 04 */ stw r7, 4(r8) +lbl_80397708: +/* 80397708 00394668 91 5E 00 0C */ stw r10, 0xc(r30) +/* 8039770C 0039466C 54 87 06 3E */ clrlwi r7, r4, 0x18 +/* 80397710 00394670 1C E7 00 38 */ mulli r7, r7, 0x38 +/* 80397714 00394674 39 40 00 00 */ li r10, 0 +/* 80397718 00394678 98 9E 00 10 */ stb r4, 0x10(r30) +/* 8039771C 0039467C 81 0D AE 38 */ lwz r8, lbl_805A99F8@sda21(r13) +/* 80397720 00394680 7C E8 3A 14 */ add r7, r8, r7 +/* 80397724 00394684 88 E7 15 18 */ lbz r7, 0x1518(r7) +/* 80397728 00394688 98 FE 00 11 */ stb r7, 0x11(r30) +/* 8039772C 0039468C 88 FE 00 11 */ lbz r7, 0x11(r30) +/* 80397730 00394690 81 0D AE 38 */ lwz r8, lbl_805A99F8@sda21(r13) +/* 80397734 00394694 54 E7 10 3A */ slwi r7, r7, 2 +/* 80397738 00394698 7C E8 3A 14 */ add r7, r8, r7 +/* 8039773C 0039469C 81 67 0E 64 */ lwz r11, 0xe64(r7) +/* 80397740 003946A0 48 00 00 50 */ b lbl_80397790 +lbl_80397744: +/* 80397744 003946A4 81 0B 00 0C */ lwz r8, 0xc(r11) +/* 80397748 003946A8 80 FE 00 0C */ lwz r7, 0xc(r30) +/* 8039774C 003946AC 7C 08 38 00 */ cmpw r8, r7 +/* 80397750 003946B0 40 81 00 38 */ ble lbl_80397788 +/* 80397754 003946B4 91 7E 00 00 */ stw r11, 0(r30) +/* 80397758 003946B8 28 0A 00 00 */ cmplwi r10, 0 +/* 8039775C 003946BC 91 5E 00 04 */ stw r10, 4(r30) +/* 80397760 003946C0 41 82 00 0C */ beq lbl_8039776C +/* 80397764 003946C4 93 CA 00 00 */ stw r30, 0(r10) +/* 80397768 003946C8 48 00 00 18 */ b lbl_80397780 +lbl_8039776C: +/* 8039776C 003946CC 88 FE 00 11 */ lbz r7, 0x11(r30) +/* 80397770 003946D0 81 0D AE 38 */ lwz r8, lbl_805A99F8@sda21(r13) +/* 80397774 003946D4 54 E7 10 3A */ slwi r7, r7, 2 +/* 80397778 003946D8 7C E8 3A 14 */ add r7, r8, r7 +/* 8039777C 003946DC 93 C7 0E 64 */ stw r30, 0xe64(r7) +lbl_80397780: +/* 80397780 003946E0 93 CB 00 04 */ stw r30, 4(r11) +/* 80397784 003946E4 48 00 00 44 */ b lbl_803977C8 +lbl_80397788: +/* 80397788 003946E8 7D 6A 5B 78 */ mr r10, r11 +/* 8039778C 003946EC 81 6B 00 00 */ lwz r11, 0(r11) +lbl_80397790: +/* 80397790 003946F0 28 0B 00 00 */ cmplwi r11, 0 +/* 80397794 003946F4 40 82 FF B0 */ bne lbl_80397744 +/* 80397798 003946F8 28 0A 00 00 */ cmplwi r10, 0 +/* 8039779C 003946FC 91 5E 00 04 */ stw r10, 4(r30) +/* 803977A0 00394700 41 82 00 0C */ beq lbl_803977AC +/* 803977A4 00394704 93 CA 00 00 */ stw r30, 0(r10) +/* 803977A8 00394708 48 00 00 18 */ b lbl_803977C0 +lbl_803977AC: +/* 803977AC 0039470C 88 FE 00 11 */ lbz r7, 0x11(r30) +/* 803977B0 00394710 81 0D AE 38 */ lwz r8, lbl_805A99F8@sda21(r13) +/* 803977B4 00394714 54 E7 10 3A */ slwi r7, r7, 2 +/* 803977B8 00394718 7C E8 3A 14 */ add r7, r8, r7 +/* 803977BC 0039471C 93 C7 0E 64 */ stw r30, 0xe64(r7) +lbl_803977C0: +/* 803977C0 00394720 38 E0 00 00 */ li r7, 0 +/* 803977C4 00394724 90 FE 00 00 */ stw r7, 0(r30) +lbl_803977C8: +/* 803977C8 00394728 28 1E 00 00 */ cmplwi r30, 0 +/* 803977CC 0039472C 41 82 03 08 */ beq lbl_80397AD4 +/* 803977D0 00394730 83 8D AE 38 */ lwz r28, lbl_805A99F8@sda21(r13) +/* 803977D4 00394734 3C E0 80 55 */ lis r7, lbl_80550AA4@ha +/* 803977D8 00394738 8B 5F 00 15 */ lbz r26, 0x15(r31) +/* 803977DC 0039473C 39 00 00 00 */ li r8, 0 +/* 803977E0 00394740 8B 7C 0E E1 */ lbz r27, 0xee1(r28) +/* 803977E4 00394744 39 67 0A A4 */ addi r11, r7, lbl_80550AA4@l +/* 803977E8 00394748 89 4D AE 2C */ lbz r10, lbl_805A99EC@sda21(r13) +/* 803977EC 0039474C 7F BC D2 14 */ add r29, r28, r26 +/* 803977F0 00394750 57 6C 0D FC */ rlwinm r12, r27, 1, 0x17, 0x1e +/* 803977F4 00394754 90 81 00 08 */ stw r4, 8(r1) +/* 803977F8 00394758 7C EA 00 D0 */ neg r7, r10 +/* 803977FC 0039475C 7C E7 53 78 */ or r7, r7, r10 +/* 80397800 00394760 7D 5C 32 14 */ add r10, r28, r6 +/* 80397804 00394764 91 01 00 0C */ stw r8, 0xc(r1) +/* 80397808 00394768 7C E4 FE 70 */ srawi r4, r7, 0x1f +/* 8039780C 0039476C 54 06 06 3E */ clrlwi r6, r0, 0x18 +/* 80397810 00394770 54 A7 06 3E */ clrlwi r7, r5, 0x18 +/* 80397814 00394774 93 41 00 10 */ stw r26, 0x10(r1) +/* 80397818 00394778 7C 84 07 34 */ extsh r4, r4 +/* 8039781C 0039477C 39 00 00 40 */ li r8, 0x40 +/* 80397820 00394780 88 1D 03 24 */ lbz r0, 0x324(r29) +/* 80397824 00394784 90 01 00 14 */ stw r0, 0x14(r1) +/* 80397828 00394788 90 81 00 18 */ stw r4, 0x18(r1) +/* 8039782C 0039478C 93 61 00 1C */ stw r27, 0x1c(r1) +/* 80397830 00394790 7C 0B 60 AE */ lbzx r0, r11, r12 +/* 80397834 00394794 90 01 00 20 */ stw r0, 0x20(r1) +/* 80397838 00394798 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 8039783C 0039479C 88 8A 0E 72 */ lbz r4, 0xe72(r10) +/* 80397840 003947A0 88 AA 0E 73 */ lbz r5, 0xe73(r10) +/* 80397844 003947A4 54 0A 06 3E */ clrlwi r10, r0, 0x18 +/* 80397848 003947A8 48 00 1E 05 */ bl sub_8039964c +/* 8039784C 003947AC 3C 03 00 01 */ addis r0, r3, 1 +/* 80397850 003947B0 90 7E 00 08 */ stw r3, 8(r30) +/* 80397854 003947B4 28 00 FF FF */ cmplwi r0, 0xffff +/* 80397858 003947B8 40 82 02 7C */ bne lbl_80397AD4 +/* 8039785C 003947BC 80 7E 00 00 */ lwz r3, 0(r30) +/* 80397860 003947C0 28 03 00 00 */ cmplwi r3, 0 +/* 80397864 003947C4 41 82 00 0C */ beq lbl_80397870 +/* 80397868 003947C8 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039786C 003947CC 90 03 00 04 */ stw r0, 4(r3) +lbl_80397870: +/* 80397870 003947D0 80 7E 00 04 */ lwz r3, 4(r30) +/* 80397874 003947D4 28 03 00 00 */ cmplwi r3, 0 +/* 80397878 003947D8 41 82 00 10 */ beq lbl_80397888 +/* 8039787C 003947DC 80 1E 00 00 */ lwz r0, 0(r30) +/* 80397880 003947E0 90 03 00 00 */ stw r0, 0(r3) +/* 80397884 003947E4 48 00 00 1C */ b lbl_803978A0 +lbl_80397888: +/* 80397888 003947E8 88 1E 00 11 */ lbz r0, 0x11(r30) +/* 8039788C 003947EC 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397890 003947F0 54 00 10 3A */ slwi r0, r0, 2 +/* 80397894 003947F4 80 9E 00 00 */ lwz r4, 0(r30) +/* 80397898 003947F8 7C 63 02 14 */ add r3, r3, r0 +/* 8039789C 003947FC 90 83 0E 64 */ stw r4, 0xe64(r3) +lbl_803978A0: +/* 803978A0 00394800 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 803978A4 00394804 28 00 00 00 */ cmplwi r0, 0 +/* 803978A8 00394808 90 1E 00 00 */ stw r0, 0(r30) +/* 803978AC 0039480C 41 82 00 0C */ beq lbl_803978B8 +/* 803978B0 00394810 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 803978B4 00394814 93 C3 00 04 */ stw r30, 4(r3) +lbl_803978B8: +/* 803978B8 00394818 38 00 00 00 */ li r0, 0 +/* 803978BC 0039481C 90 1E 00 04 */ stw r0, 4(r30) +/* 803978C0 00394820 93 CD AE 34 */ stw r30, lbl_805A99F4@sda21(r13) +/* 803978C4 00394824 48 00 02 10 */ b lbl_80397AD4 +lbl_803978C8: +/* 803978C8 00394828 80 BF 00 10 */ lwz r5, 0x10(r31) +/* 803978CC 0039482C A0 65 00 14 */ lhz r3, 0x14(r5) +/* 803978D0 00394830 A8 05 00 16 */ lha r0, 0x16(r5) +/* 803978D4 00394834 7C 03 02 14 */ add r0, r3, r0 +/* 803978D8 00394838 B0 05 00 14 */ sth r0, 0x14(r5) +/* 803978DC 0039483C 80 E5 00 10 */ lwz r7, 0x10(r5) +/* 803978E0 00394840 28 07 00 00 */ cmplwi r7, 0 +/* 803978E4 00394844 41 82 00 B8 */ beq lbl_8039799C +/* 803978E8 00394848 88 C7 00 00 */ lbz r6, 0(r7) +/* 803978EC 0039484C 88 67 00 01 */ lbz r3, 1(r7) +/* 803978F0 00394850 28 06 00 80 */ cmplwi r6, 0x80 +/* 803978F4 00394854 40 82 00 14 */ bne lbl_80397908 +/* 803978F8 00394858 28 03 00 00 */ cmplwi r3, 0 +/* 803978FC 0039485C 40 82 00 0C */ bne lbl_80397908 +/* 80397900 00394860 38 C0 00 00 */ li r6, 0 +/* 80397904 00394864 48 00 00 68 */ b lbl_8039796C +lbl_80397908: +/* 80397908 00394868 54 C0 06 31 */ rlwinm. r0, r6, 0, 0x18, 0x18 +/* 8039790C 0039486C 41 82 00 14 */ beq lbl_80397920 +/* 80397910 00394870 50 C3 44 6E */ rlwimi r3, r6, 8, 0x11, 0x17 +/* 80397914 00394874 38 C7 00 02 */ addi r6, r7, 2 +/* 80397918 00394878 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 8039791C 0039487C 48 00 00 0C */ b lbl_80397928 +lbl_80397920: +/* 80397920 00394880 7C C4 33 78 */ mr r4, r6 +/* 80397924 00394884 38 C7 00 01 */ addi r6, r7, 1 +lbl_80397928: +/* 80397928 00394888 88 66 00 00 */ lbz r3, 0(r6) +/* 8039792C 0039488C 88 E6 00 01 */ lbz r7, 1(r6) +/* 80397930 00394890 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 +/* 80397934 00394894 41 82 00 20 */ beq lbl_80397954 +/* 80397938 00394898 50 67 44 6E */ rlwimi r7, r3, 8, 0x11, 0x17 +/* 8039793C 0039489C 38 C6 00 02 */ addi r6, r6, 2 +/* 80397940 003948A0 7C E3 07 34 */ extsh r3, r7 +/* 80397944 003948A4 54 60 0C 20 */ rlwinm r0, r3, 1, 0x10, 0x10 +/* 80397948 003948A8 7C 60 03 78 */ or r0, r3, r0 +/* 8039794C 003948AC B0 05 00 16 */ sth r0, 0x16(r5) +/* 80397950 003948B0 48 00 00 1C */ b lbl_8039796C +lbl_80397954: +/* 80397954 003948B4 54 60 0E 30 */ rlwinm r0, r3, 1, 0x18, 0x18 +/* 80397958 003948B8 38 C6 00 01 */ addi r6, r6, 1 +/* 8039795C 003948BC 7C 60 03 78 */ or r0, r3, r0 +/* 80397960 003948C0 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 80397964 003948C4 7C 60 07 74 */ extsb r0, r3 +/* 80397968 003948C8 B0 05 00 16 */ sth r0, 0x16(r5) +lbl_8039796C: +/* 8039796C 003948CC 28 06 00 00 */ cmplwi r6, 0 +/* 80397970 003948D0 90 C5 00 10 */ stw r6, 0x10(r5) +/* 80397974 003948D4 41 82 00 18 */ beq lbl_8039798C +/* 80397978 003948D8 80 65 00 18 */ lwz r3, 0x18(r5) +/* 8039797C 003948DC 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 80397980 003948E0 7C 03 02 14 */ add r0, r3, r0 +/* 80397984 003948E4 90 05 00 18 */ stw r0, 0x18(r5) +/* 80397988 003948E8 48 00 00 20 */ b lbl_803979A8 +lbl_8039798C: +/* 8039798C 003948EC 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha +/* 80397990 003948F0 38 03 FF FF */ addi r0, r3, 0x7FFFFFFF@l +/* 80397994 003948F4 90 05 00 18 */ stw r0, 0x18(r5) +/* 80397998 003948F8 48 00 00 10 */ b lbl_803979A8 +lbl_8039799C: +/* 8039799C 003948FC 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha +/* 803979A0 00394900 38 03 FF FF */ addi r0, r3, 0x7FFFFFFF@l +/* 803979A4 00394904 90 05 00 18 */ stw r0, 0x18(r5) +lbl_803979A8: +/* 803979A8 00394908 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 803979AC 0039490C 38 60 00 80 */ li r3, 0x80 +/* 803979B0 00394910 88 85 00 28 */ lbz r4, 0x28(r5) +/* 803979B4 00394914 A0 C5 00 14 */ lhz r6, 0x14(r5) +/* 803979B8 00394918 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 803979BC 0039491C 48 01 9D 3D */ bl inpSetMidiCtrl14 +/* 803979C0 00394920 48 00 01 14 */ b lbl_80397AD4 +lbl_803979C4: +/* 803979C4 00394924 80 BF 00 10 */ lwz r5, 0x10(r31) +/* 803979C8 00394928 A0 65 00 20 */ lhz r3, 0x20(r5) +/* 803979CC 0039492C A8 05 00 22 */ lha r0, 0x22(r5) +/* 803979D0 00394930 7C 03 02 14 */ add r0, r3, r0 +/* 803979D4 00394934 B0 05 00 20 */ sth r0, 0x20(r5) +/* 803979D8 00394938 80 E5 00 1C */ lwz r7, 0x1c(r5) +/* 803979DC 0039493C 28 07 00 00 */ cmplwi r7, 0 +/* 803979E0 00394940 41 82 00 B8 */ beq lbl_80397A98 +/* 803979E4 00394944 88 C7 00 00 */ lbz r6, 0(r7) +/* 803979E8 00394948 88 67 00 01 */ lbz r3, 1(r7) +/* 803979EC 0039494C 28 06 00 80 */ cmplwi r6, 0x80 +/* 803979F0 00394950 40 82 00 14 */ bne lbl_80397A04 +/* 803979F4 00394954 28 03 00 00 */ cmplwi r3, 0 +/* 803979F8 00394958 40 82 00 0C */ bne lbl_80397A04 +/* 803979FC 0039495C 38 C0 00 00 */ li r6, 0 +/* 80397A00 00394960 48 00 00 68 */ b lbl_80397A68 +lbl_80397A04: +/* 80397A04 00394964 54 C0 06 31 */ rlwinm. r0, r6, 0, 0x18, 0x18 +/* 80397A08 00394968 41 82 00 14 */ beq lbl_80397A1C +/* 80397A0C 0039496C 50 C3 44 6E */ rlwimi r3, r6, 8, 0x11, 0x17 +/* 80397A10 00394970 38 C7 00 02 */ addi r6, r7, 2 +/* 80397A14 00394974 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 80397A18 00394978 48 00 00 0C */ b lbl_80397A24 +lbl_80397A1C: +/* 80397A1C 0039497C 7C C4 33 78 */ mr r4, r6 +/* 80397A20 00394980 38 C7 00 01 */ addi r6, r7, 1 +lbl_80397A24: +/* 80397A24 00394984 88 66 00 00 */ lbz r3, 0(r6) +/* 80397A28 00394988 88 E6 00 01 */ lbz r7, 1(r6) +/* 80397A2C 0039498C 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 +/* 80397A30 00394990 41 82 00 20 */ beq lbl_80397A50 +/* 80397A34 00394994 50 67 44 6E */ rlwimi r7, r3, 8, 0x11, 0x17 +/* 80397A38 00394998 38 C6 00 02 */ addi r6, r6, 2 +/* 80397A3C 0039499C 7C E3 07 34 */ extsh r3, r7 +/* 80397A40 003949A0 54 60 0C 20 */ rlwinm r0, r3, 1, 0x10, 0x10 +/* 80397A44 003949A4 7C 60 03 78 */ or r0, r3, r0 +/* 80397A48 003949A8 B0 05 00 22 */ sth r0, 0x22(r5) +/* 80397A4C 003949AC 48 00 00 1C */ b lbl_80397A68 +lbl_80397A50: +/* 80397A50 003949B0 54 60 0E 30 */ rlwinm r0, r3, 1, 0x18, 0x18 +/* 80397A54 003949B4 38 C6 00 01 */ addi r6, r6, 1 +/* 80397A58 003949B8 7C 60 03 78 */ or r0, r3, r0 +/* 80397A5C 003949BC 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 80397A60 003949C0 7C 60 07 74 */ extsb r0, r3 +/* 80397A64 003949C4 B0 05 00 22 */ sth r0, 0x22(r5) +lbl_80397A68: +/* 80397A68 003949C8 28 06 00 00 */ cmplwi r6, 0 +/* 80397A6C 003949CC 90 C5 00 1C */ stw r6, 0x1c(r5) +/* 80397A70 003949D0 41 82 00 18 */ beq lbl_80397A88 +/* 80397A74 003949D4 80 65 00 24 */ lwz r3, 0x24(r5) +/* 80397A78 003949D8 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 80397A7C 003949DC 7C 03 02 14 */ add r0, r3, r0 +/* 80397A80 003949E0 90 05 00 24 */ stw r0, 0x24(r5) +/* 80397A84 003949E4 48 00 00 20 */ b lbl_80397AA4 +lbl_80397A88: +/* 80397A88 003949E8 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha +/* 80397A8C 003949EC 38 03 FF FF */ addi r0, r3, 0x7FFFFFFF@l +/* 80397A90 003949F0 90 05 00 24 */ stw r0, 0x24(r5) +/* 80397A94 003949F4 48 00 00 10 */ b lbl_80397AA4 +lbl_80397A98: +/* 80397A98 003949F8 3C 60 80 00 */ lis r3, 0x7FFFFFFF@ha +/* 80397A9C 003949FC 38 03 FF FF */ addi r0, r3, 0x7FFFFFFF@l +/* 80397AA0 00394A00 90 05 00 24 */ stw r0, 0x24(r5) +lbl_80397AA4: +/* 80397AA4 00394A04 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 80397AA8 00394A08 38 60 00 01 */ li r3, 1 +/* 80397AAC 00394A0C 88 85 00 28 */ lbz r4, 0x28(r5) +/* 80397AB0 00394A10 A0 C5 00 20 */ lhz r6, 0x20(r5) +/* 80397AB4 00394A14 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 80397AB8 00394A18 48 01 9C 41 */ bl inpSetMidiCtrl14 +/* 80397ABC 00394A1C 48 00 00 18 */ b lbl_80397AD4 +lbl_80397AC0: +/* 80397AC0 00394A20 80 05 00 00 */ lwz r0, 0(r5) +/* 80397AC4 00394A24 38 60 00 00 */ li r3, 0 +/* 80397AC8 00394A28 60 00 00 01 */ ori r0, r0, 1 +/* 80397ACC 00394A2C 90 05 00 00 */ stw r0, 0(r5) +/* 80397AD0 00394A30 48 00 00 0C */ b lbl_80397ADC +lbl_80397AD4: +/* 80397AD4 00394A34 88 7F 00 15 */ lbz r3, 0x15(r31) +/* 80397AD8 00394A38 4B FF F3 71 */ bl GenerateNextTrackEvent +lbl_80397ADC: +/* 80397ADC 00394A3C 39 61 00 40 */ addi r11, r1, 0x40 +/* 80397AE0 00394A40 4B FF 1F E5 */ bl _restgpr_26 +/* 80397AE4 00394A44 80 01 00 44 */ lwz r0, 0x44(r1) +/* 80397AE8 00394A48 7C 08 03 A6 */ mtlr r0 +/* 80397AEC 00394A4C 38 21 00 40 */ addi r1, r1, 0x40 +/* 80397AF0 00394A50 4E 80 00 20 */ blr + +.global InitTrackEvents +InitTrackEvents: +/* 80397AF4 00394A54 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80397AF8 00394A58 7C 08 02 A6 */ mflr r0 +/* 80397AFC 00394A5C 90 01 00 14 */ stw r0, 0x14(r1) +/* 80397B00 00394A60 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80397B04 00394A64 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397B08 00394A68 80 03 14 E4 */ lwz r0, 0x14e4(r3) +/* 80397B0C 00394A6C 28 00 00 00 */ cmplwi r0, 0 +/* 80397B10 00394A70 40 82 00 9C */ bne lbl_80397BAC +/* 80397B14 00394A74 3B E0 00 00 */ li r31, 0 +lbl_80397B18: +/* 80397B18 00394A78 57 E3 06 3E */ clrlwi r3, r31, 0x18 +/* 80397B1C 00394A7C 4B FF F3 2D */ bl GenerateNextTrackEvent +/* 80397B20 00394A80 28 03 00 00 */ cmplwi r3, 0 +/* 80397B24 00394A84 41 82 00 78 */ beq lbl_80397B9C +/* 80397B28 00394A88 80 AD AE 38 */ lwz r5, lbl_805A99F8@sda21(r13) +/* 80397B2C 00394A8C 38 C0 00 00 */ li r6, 0 +/* 80397B30 00394A90 80 E5 15 04 */ lwz r7, 0x1504(r5) +/* 80397B34 00394A94 48 00 00 40 */ b lbl_80397B74 +lbl_80397B38: +/* 80397B38 00394A98 80 87 00 08 */ lwz r4, 8(r7) +/* 80397B3C 00394A9C 80 03 00 08 */ lwz r0, 8(r3) +/* 80397B40 00394AA0 7C 04 00 40 */ cmplw r4, r0 +/* 80397B44 00394AA4 40 81 00 28 */ ble lbl_80397B6C +/* 80397B48 00394AA8 90 E3 00 00 */ stw r7, 0(r3) +/* 80397B4C 00394AAC 28 06 00 00 */ cmplwi r6, 0 +/* 80397B50 00394AB0 90 C3 00 04 */ stw r6, 4(r3) +/* 80397B54 00394AB4 41 82 00 0C */ beq lbl_80397B60 +/* 80397B58 00394AB8 90 66 00 00 */ stw r3, 0(r6) +/* 80397B5C 00394ABC 48 00 00 08 */ b lbl_80397B64 +lbl_80397B60: +/* 80397B60 00394AC0 90 65 15 04 */ stw r3, 0x1504(r5) +lbl_80397B64: +/* 80397B64 00394AC4 90 67 00 04 */ stw r3, 4(r7) +/* 80397B68 00394AC8 48 00 00 34 */ b lbl_80397B9C +lbl_80397B6C: +/* 80397B6C 00394ACC 7C E6 3B 78 */ mr r6, r7 +/* 80397B70 00394AD0 80 E7 00 00 */ lwz r7, 0(r7) +lbl_80397B74: +/* 80397B74 00394AD4 28 07 00 00 */ cmplwi r7, 0 +/* 80397B78 00394AD8 40 82 FF C0 */ bne lbl_80397B38 +/* 80397B7C 00394ADC 28 06 00 00 */ cmplwi r6, 0 +/* 80397B80 00394AE0 90 C3 00 04 */ stw r6, 4(r3) +/* 80397B84 00394AE4 41 82 00 0C */ beq lbl_80397B90 +/* 80397B88 00394AE8 90 66 00 00 */ stw r3, 0(r6) +/* 80397B8C 00394AEC 48 00 00 08 */ b lbl_80397B94 +lbl_80397B90: +/* 80397B90 00394AF0 90 65 15 04 */ stw r3, 0x1504(r5) +lbl_80397B94: +/* 80397B94 00394AF4 38 00 00 00 */ li r0, 0 +/* 80397B98 00394AF8 90 03 00 00 */ stw r0, 0(r3) +lbl_80397B9C: +/* 80397B9C 00394AFC 3B FF 00 01 */ addi r31, r31, 1 +/* 80397BA0 00394B00 28 1F 00 40 */ cmplwi r31, 0x40 +/* 80397BA4 00394B04 41 80 FF 74 */ blt lbl_80397B18 +/* 80397BA8 00394B08 48 00 00 AC */ b lbl_80397C54 +lbl_80397BAC: +/* 80397BAC 00394B0C 3B E0 00 00 */ li r31, 0 +lbl_80397BB0: +/* 80397BB0 00394B10 57 E3 06 3E */ clrlwi r3, r31, 0x18 +/* 80397BB4 00394B14 4B FF F2 95 */ bl GenerateNextTrackEvent +/* 80397BB8 00394B18 28 03 00 00 */ cmplwi r3, 0 +/* 80397BBC 00394B1C 41 82 00 8C */ beq lbl_80397C48 +/* 80397BC0 00394B20 80 CD AE 38 */ lwz r6, lbl_805A99F8@sda21(r13) +/* 80397BC4 00394B24 38 A0 00 00 */ li r5, 0 +/* 80397BC8 00394B28 80 86 14 E4 */ lwz r4, 0x14e4(r6) +/* 80397BCC 00394B2C 7C 04 F8 AE */ lbzx r0, r4, r31 +/* 80397BD0 00394B30 1C 80 00 38 */ mulli r4, r0, 0x38 +/* 80397BD4 00394B34 38 E4 14 E8 */ addi r7, r4, 0x14e8 +/* 80397BD8 00394B38 7C E6 3A 14 */ add r7, r6, r7 +/* 80397BDC 00394B3C 80 C7 00 1C */ lwz r6, 0x1c(r7) +/* 80397BE0 00394B40 48 00 00 40 */ b lbl_80397C20 +lbl_80397BE4: +/* 80397BE4 00394B44 80 86 00 08 */ lwz r4, 8(r6) +/* 80397BE8 00394B48 80 03 00 08 */ lwz r0, 8(r3) +/* 80397BEC 00394B4C 7C 04 00 40 */ cmplw r4, r0 +/* 80397BF0 00394B50 40 81 00 28 */ ble lbl_80397C18 +/* 80397BF4 00394B54 90 C3 00 00 */ stw r6, 0(r3) +/* 80397BF8 00394B58 28 05 00 00 */ cmplwi r5, 0 +/* 80397BFC 00394B5C 90 A3 00 04 */ stw r5, 4(r3) +/* 80397C00 00394B60 41 82 00 0C */ beq lbl_80397C0C +/* 80397C04 00394B64 90 65 00 00 */ stw r3, 0(r5) +/* 80397C08 00394B68 48 00 00 08 */ b lbl_80397C10 +lbl_80397C0C: +/* 80397C0C 00394B6C 90 67 00 1C */ stw r3, 0x1c(r7) +lbl_80397C10: +/* 80397C10 00394B70 90 66 00 04 */ stw r3, 4(r6) +/* 80397C14 00394B74 48 00 00 34 */ b lbl_80397C48 +lbl_80397C18: +/* 80397C18 00394B78 7C C5 33 78 */ mr r5, r6 +/* 80397C1C 00394B7C 80 C6 00 00 */ lwz r6, 0(r6) +lbl_80397C20: +/* 80397C20 00394B80 28 06 00 00 */ cmplwi r6, 0 +/* 80397C24 00394B84 40 82 FF C0 */ bne lbl_80397BE4 +/* 80397C28 00394B88 28 05 00 00 */ cmplwi r5, 0 +/* 80397C2C 00394B8C 90 A3 00 04 */ stw r5, 4(r3) +/* 80397C30 00394B90 41 82 00 0C */ beq lbl_80397C3C +/* 80397C34 00394B94 90 65 00 00 */ stw r3, 0(r5) +/* 80397C38 00394B98 48 00 00 08 */ b lbl_80397C40 +lbl_80397C3C: +/* 80397C3C 00394B9C 90 67 00 1C */ stw r3, 0x1c(r7) +lbl_80397C40: +/* 80397C40 00394BA0 38 00 00 00 */ li r0, 0 +/* 80397C44 00394BA4 90 03 00 00 */ stw r0, 0(r3) +lbl_80397C48: +/* 80397C48 00394BA8 3B FF 00 01 */ addi r31, r31, 1 +/* 80397C4C 00394BAC 28 1F 00 40 */ cmplwi r31, 0x40 +/* 80397C50 00394BB0 41 80 FF 60 */ blt lbl_80397BB0 +lbl_80397C54: +/* 80397C54 00394BB4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80397C58 00394BB8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80397C5C 00394BBC 7C 08 03 A6 */ mtlr r0 +/* 80397C60 00394BC0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80397C64 00394BC4 4E 80 00 20 */ blr + +.global HandleTrackEvents +HandleTrackEvents: +/* 80397C68 00394BC8 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 80397C6C 00394BCC 7C 08 02 A6 */ mflr r0 +/* 80397C70 00394BD0 90 01 00 64 */ stw r0, 0x64(r1) +/* 80397C74 00394BD4 DB E1 00 50 */ stfd f31, 0x50(r1) +/* 80397C78 00394BD8 F3 E1 00 58 */ psq_st f31, 88(r1), 0, qr0 +/* 80397C7C 00394BDC 39 61 00 50 */ addi r11, r1, 0x50 +/* 80397C80 00394BE0 4B FF 1D F5 */ bl func_80389A74 +/* 80397C84 00394BE4 7C 7A 1B 78 */ mr r26, r3 +/* 80397C88 00394BE8 38 00 00 00 */ li r0, 0 +/* 80397C8C 00394BEC 54 65 06 3E */ clrlwi r5, r3, 0x18 +/* 80397C90 00394BF0 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397C94 00394BF4 1F A5 00 38 */ mulli r29, r5, 0x38 +/* 80397C98 00394BF8 90 01 00 08 */ stw r0, 8(r1) +/* 80397C9C 00394BFC 7C 9B 23 78 */ mr r27, r4 +/* 80397CA0 00394C00 57 5E 15 BA */ rlwinm r30, r26, 2, 0x16, 0x1d +/* 80397CA4 00394C04 3B 9D 14 E8 */ addi r28, r29, 0x14e8 +/* 80397CA8 00394C08 7F 83 E2 14 */ add r28, r3, r28 +/* 80397CAC 00394C0C 48 00 04 04 */ b lbl_803980B0 +lbl_80397CB0: +/* 80397CB0 00394C10 28 03 00 00 */ cmplwi r3, 0 +/* 80397CB4 00394C14 41 82 00 20 */ beq lbl_80397CD4 +/* 80397CB8 00394C18 80 03 00 00 */ lwz r0, 0(r3) +/* 80397CBC 00394C1C 28 00 00 00 */ cmplwi r0, 0 +/* 80397CC0 00394C20 90 1C 00 1C */ stw r0, 0x1c(r28) +/* 80397CC4 00394C24 41 82 00 10 */ beq lbl_80397CD4 +/* 80397CC8 00394C28 80 9C 00 1C */ lwz r4, 0x1c(r28) +/* 80397CCC 00394C2C 38 00 00 00 */ li r0, 0 +/* 80397CD0 00394C30 90 04 00 04 */ stw r0, 4(r4) +lbl_80397CD4: +/* 80397CD4 00394C34 28 03 00 00 */ cmplwi r3, 0 +/* 80397CD8 00394C38 40 82 03 54 */ bne lbl_8039802C +/* 80397CDC 00394C3C 80 01 00 08 */ lwz r0, 8(r1) +/* 80397CE0 00394C40 28 00 00 00 */ cmplwi r0, 0 +/* 80397CE4 00394C44 40 82 00 0C */ bne lbl_80397CF0 +/* 80397CE8 00394C48 38 60 00 00 */ li r3, 0 +/* 80397CEC 00394C4C 48 00 03 F8 */ b lbl_803980E4 +lbl_80397CF0: +/* 80397CF0 00394C50 38 00 00 00 */ li r0, 0 +/* 80397CF4 00394C54 90 01 00 08 */ stw r0, 8(r1) +/* 80397CF8 00394C58 88 1C 00 30 */ lbz r0, 0x30(r28) +/* 80397CFC 00394C5C 68 00 00 01 */ xori r0, r0, 1 +/* 80397D00 00394C60 98 1C 00 30 */ stb r0, 0x30(r28) +/* 80397D04 00394C64 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397D08 00394C68 88 1C 00 30 */ lbz r0, 0x30(r28) +/* 80397D0C 00394C6C 80 83 01 18 */ lwz r4, 0x118(r3) +/* 80397D10 00394C70 54 03 18 38 */ slwi r3, r0, 3 +/* 80397D14 00394C74 38 04 00 14 */ addi r0, r4, 0x14 +/* 80397D18 00394C78 7C 9E 00 2E */ lwzx r4, r30, r0 +/* 80397D1C 00394C7C 38 03 00 24 */ addi r0, r3, 0x24 +/* 80397D20 00394C80 7C 9C 01 2E */ stwx r4, r28, r0 +/* 80397D24 00394C84 88 7C 00 30 */ lbz r3, 0x30(r28) +/* 80397D28 00394C88 68 60 00 01 */ xori r0, r3, 1 +/* 80397D2C 00394C8C 54 63 1D 78 */ rlwinm r3, r3, 3, 0x15, 0x1c +/* 80397D30 00394C90 54 04 18 38 */ slwi r4, r0, 3 +/* 80397D34 00394C94 38 84 00 20 */ addi r4, r4, 0x20 +/* 80397D38 00394C98 38 03 00 20 */ addi r0, r3, 0x20 +/* 80397D3C 00394C9C 7C 7C 20 2E */ lwzx r3, r28, r4 +/* 80397D40 00394CA0 7C 7C 01 2E */ stwx r3, r28, r0 +/* 80397D44 00394CA4 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 80397D48 00394CA8 7C 7D 02 14 */ add r3, r29, r0 +/* 80397D4C 00394CAC 80 03 14 E8 */ lwz r0, 0x14e8(r3) +/* 80397D50 00394CB0 28 00 00 00 */ cmplwi r0, 0 +/* 80397D54 00394CB4 41 82 01 6C */ beq lbl_80397EC0 +/* 80397D58 00394CB8 90 03 14 EC */ stw r0, 0x14ec(r3) +/* 80397D5C 00394CBC 3B FD 14 E8 */ addi r31, r29, 0x14e8 +/* 80397D60 00394CC0 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 80397D64 00394CC4 7F E0 FA 14 */ add r31, r0, r31 +/* 80397D68 00394CC8 80 1F 00 00 */ lwz r0, 0(r31) +/* 80397D6C 00394CCC 28 00 00 00 */ cmplwi r0, 0 +/* 80397D70 00394CD0 41 82 00 9C */ beq lbl_80397E0C +/* 80397D74 00394CD4 48 00 00 84 */ b lbl_80397DF8 +lbl_80397D78: +/* 80397D78 00394CD8 88 1F 00 30 */ lbz r0, 0x30(r31) +/* 80397D7C 00394CDC 80 86 00 00 */ lwz r4, 0(r6) +/* 80397D80 00394CE0 54 03 18 38 */ slwi r3, r0, 3 +/* 80397D84 00394CE4 38 03 00 24 */ addi r0, r3, 0x24 +/* 80397D88 00394CE8 7C 1F 00 2E */ lwzx r0, r31, r0 +/* 80397D8C 00394CEC 7C 04 00 40 */ cmplw r4, r0 +/* 80397D90 00394CF0 41 81 00 7C */ bgt lbl_80397E0C +/* 80397D94 00394CF4 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397D98 00394CF8 80 63 01 18 */ lwz r3, 0x118(r3) +/* 80397D9C 00394CFC 80 03 00 10 */ lwz r0, 0x10(r3) +/* 80397DA0 00394D00 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1 +/* 80397DA4 00394D04 41 82 00 24 */ beq lbl_80397DC8 +/* 80397DA8 00394D08 80 06 00 04 */ lwz r0, 4(r6) +/* 80397DAC 00394D0C 7F 45 D3 78 */ mr r5, r26 +/* 80397DB0 00394D10 90 1F 00 08 */ stw r0, 8(r31) +/* 80397DB4 00394D14 54 03 B2 BE */ srwi r3, r0, 0xa +/* 80397DB8 00394D18 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 80397DBC 00394D1C 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 80397DC0 00394D20 48 00 0E E1 */ bl synthSetBpm +/* 80397DC4 00394D24 48 00 00 28 */ b lbl_80397DEC +lbl_80397DC8: +/* 80397DC8 00394D28 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 80397DCC 00394D2C 7F 45 D3 78 */ mr r5, r26 +/* 80397DD0 00394D30 80 66 00 04 */ lwz r3, 4(r6) +/* 80397DD4 00394D34 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 80397DD8 00394D38 48 00 0E C9 */ bl synthSetBpm +/* 80397DDC 00394D3C 80 7F 00 04 */ lwz r3, 4(r31) +/* 80397DE0 00394D40 80 03 00 04 */ lwz r0, 4(r3) +/* 80397DE4 00394D44 54 00 50 2A */ slwi r0, r0, 0xa +/* 80397DE8 00394D48 90 1F 00 08 */ stw r0, 8(r31) +lbl_80397DEC: +/* 80397DEC 00394D4C 80 7F 00 04 */ lwz r3, 4(r31) +/* 80397DF0 00394D50 38 03 00 08 */ addi r0, r3, 8 +/* 80397DF4 00394D54 90 1F 00 04 */ stw r0, 4(r31) +lbl_80397DF8: +/* 80397DF8 00394D58 80 DF 00 04 */ lwz r6, 4(r31) +/* 80397DFC 00394D5C 80 66 00 00 */ lwz r3, 0(r6) +/* 80397E00 00394D60 3C 03 00 01 */ addis r0, r3, 1 +/* 80397E04 00394D64 28 00 FF FF */ cmplwi r0, 0xffff +/* 80397E08 00394D68 40 82 FF 70 */ bne lbl_80397D78 +lbl_80397E0C: +/* 80397E0C 00394D6C 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 80397E10 00394D70 3C 60 43 30 */ lis r3, 0x4330 +/* 80397E14 00394D74 3B FD 14 E8 */ addi r31, r29, 0x14e8 +/* 80397E18 00394D78 90 61 00 10 */ stw r3, 0x10(r1) +/* 80397E1C 00394D7C 7F E0 FA 14 */ add r31, r0, r31 +/* 80397E20 00394D80 C8 C2 D5 08 */ lfd f6, lbl_805AF228@sda21(r2) +/* 80397E24 00394D84 80 9F 00 08 */ lwz r4, 8(r31) +/* 80397E28 00394D88 A0 1F 00 32 */ lhz r0, 0x32(r31) +/* 80397E2C 00394D8C 90 81 00 14 */ stw r4, 0x14(r1) +/* 80397E30 00394D90 C0 E2 D4 F0 */ lfs f7, lbl_805AF210@sda21(r2) +/* 80397E34 00394D94 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80397E38 00394D98 93 61 00 1C */ stw r27, 0x1c(r1) +/* 80397E3C 00394D9C EC A0 30 28 */ fsubs f5, f0, f6 +/* 80397E40 00394DA0 C0 62 D4 F4 */ lfs f3, lbl_805AF214@sda21(r2) +/* 80397E44 00394DA4 90 61 00 18 */ stw r3, 0x18(r1) +/* 80397E48 00394DA8 C0 02 D4 F8 */ lfs f0, lbl_805AF218@sda21(r2) +/* 80397E4C 00394DAC C8 21 00 18 */ lfd f1, 0x18(r1) +/* 80397E50 00394DB0 90 01 00 24 */ stw r0, 0x24(r1) +/* 80397E54 00394DB4 EC 81 30 28 */ fsubs f4, f1, f6 +/* 80397E58 00394DB8 C8 42 D5 00 */ lfd f2, lbl_805AF220@sda21(r2) +/* 80397E5C 00394DBC 90 61 00 20 */ stw r3, 0x20(r1) +/* 80397E60 00394DC0 C8 21 00 20 */ lfd f1, 0x20(r1) +/* 80397E64 00394DC4 EC 85 01 32 */ fmuls f4, f5, f4 +/* 80397E68 00394DC8 EC 21 30 28 */ fsubs f1, f1, f6 +/* 80397E6C 00394DCC EF E7 01 32 */ fmuls f31, f7, f4 +/* 80397E70 00394DD0 EC 23 00 72 */ fmuls f1, f3, f1 +/* 80397E74 00394DD4 EF FF 00 72 */ fmuls f31, f31, f1 +/* 80397E78 00394DD8 EC 20 07 F2 */ fmuls f1, f0, f31 +/* 80397E7C 00394DDC 4B FF CE 31 */ bl fmod +/* 80397E80 00394DE0 FC 20 08 18 */ frsp f1, f1 +/* 80397E84 00394DE4 4B FF 1A D1 */ bl __cvt_fp2unsigned +/* 80397E88 00394DE8 88 1F 00 30 */ lbz r0, 0x30(r31) +/* 80397E8C 00394DEC FC 20 F8 90 */ fmr f1, f31 +/* 80397E90 00394DF0 54 04 18 38 */ slwi r4, r0, 3 +/* 80397E94 00394DF4 38 04 00 0C */ addi r0, r4, 0xc +/* 80397E98 00394DF8 7C 7F 01 2E */ stwx r3, r31, r0 +/* 80397E9C 00394DFC 4B FF C6 29 */ bl floor +/* 80397EA0 00394E00 FC 00 08 18 */ frsp f0, f1 +/* 80397EA4 00394E04 88 1F 00 30 */ lbz r0, 0x30(r31) +/* 80397EA8 00394E08 54 03 18 38 */ slwi r3, r0, 3 +/* 80397EAC 00394E0C FC 00 00 1E */ fctiwz f0, f0 +/* 80397EB0 00394E10 38 03 00 10 */ addi r0, r3, 0x10 +/* 80397EB4 00394E14 D8 01 00 28 */ stfd f0, 0x28(r1) +/* 80397EB8 00394E18 80 61 00 2C */ lwz r3, 0x2c(r1) +/* 80397EBC 00394E1C 7C 7F 01 2E */ stwx r3, r31, r0 +lbl_80397EC0: +/* 80397EC0 00394E20 A0 7C 00 34 */ lhz r3, 0x34(r28) +/* 80397EC4 00394E24 38 03 00 01 */ addi r0, r3, 1 +/* 80397EC8 00394E28 B0 1C 00 34 */ sth r0, 0x34(r28) +/* 80397ECC 00394E2C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397ED0 00394E30 80 03 14 E4 */ lwz r0, 0x14e4(r3) +/* 80397ED4 00394E34 28 00 00 00 */ cmplwi r0, 0 +/* 80397ED8 00394E38 40 82 00 9C */ bne lbl_80397F74 +/* 80397EDC 00394E3C 3B E0 00 00 */ li r31, 0 +lbl_80397EE0: +/* 80397EE0 00394E40 57 E3 06 3E */ clrlwi r3, r31, 0x18 +/* 80397EE4 00394E44 4B FF EF 65 */ bl GenerateNextTrackEvent +/* 80397EE8 00394E48 28 03 00 00 */ cmplwi r3, 0 +/* 80397EEC 00394E4C 41 82 00 78 */ beq lbl_80397F64 +/* 80397EF0 00394E50 80 AD AE 38 */ lwz r5, lbl_805A99F8@sda21(r13) +/* 80397EF4 00394E54 38 C0 00 00 */ li r6, 0 +/* 80397EF8 00394E58 80 E5 15 04 */ lwz r7, 0x1504(r5) +/* 80397EFC 00394E5C 48 00 00 40 */ b lbl_80397F3C +lbl_80397F00: +/* 80397F00 00394E60 80 87 00 08 */ lwz r4, 8(r7) +/* 80397F04 00394E64 80 03 00 08 */ lwz r0, 8(r3) +/* 80397F08 00394E68 7C 04 00 40 */ cmplw r4, r0 +/* 80397F0C 00394E6C 40 81 00 28 */ ble lbl_80397F34 +/* 80397F10 00394E70 90 E3 00 00 */ stw r7, 0(r3) +/* 80397F14 00394E74 28 06 00 00 */ cmplwi r6, 0 +/* 80397F18 00394E78 90 C3 00 04 */ stw r6, 4(r3) +/* 80397F1C 00394E7C 41 82 00 0C */ beq lbl_80397F28 +/* 80397F20 00394E80 90 66 00 00 */ stw r3, 0(r6) +/* 80397F24 00394E84 48 00 00 08 */ b lbl_80397F2C +lbl_80397F28: +/* 80397F28 00394E88 90 65 15 04 */ stw r3, 0x1504(r5) +lbl_80397F2C: +/* 80397F2C 00394E8C 90 67 00 04 */ stw r3, 4(r7) +/* 80397F30 00394E90 48 00 00 34 */ b lbl_80397F64 +lbl_80397F34: +/* 80397F34 00394E94 7C E6 3B 78 */ mr r6, r7 +/* 80397F38 00394E98 80 E7 00 00 */ lwz r7, 0(r7) +lbl_80397F3C: +/* 80397F3C 00394E9C 28 07 00 00 */ cmplwi r7, 0 +/* 80397F40 00394EA0 40 82 FF C0 */ bne lbl_80397F00 +/* 80397F44 00394EA4 28 06 00 00 */ cmplwi r6, 0 +/* 80397F48 00394EA8 90 C3 00 04 */ stw r6, 4(r3) +/* 80397F4C 00394EAC 41 82 00 0C */ beq lbl_80397F58 +/* 80397F50 00394EB0 90 66 00 00 */ stw r3, 0(r6) +/* 80397F54 00394EB4 48 00 00 08 */ b lbl_80397F5C +lbl_80397F58: +/* 80397F58 00394EB8 90 65 15 04 */ stw r3, 0x1504(r5) +lbl_80397F5C: +/* 80397F5C 00394EBC 38 00 00 00 */ li r0, 0 +/* 80397F60 00394EC0 90 03 00 00 */ stw r0, 0(r3) +lbl_80397F64: +/* 80397F64 00394EC4 3B FF 00 01 */ addi r31, r31, 1 +/* 80397F68 00394EC8 28 1F 00 40 */ cmplwi r31, 0x40 +/* 80397F6C 00394ECC 41 80 FF 74 */ blt lbl_80397EE0 +/* 80397F70 00394ED0 48 00 01 40 */ b lbl_803980B0 +lbl_80397F74: +/* 80397F74 00394ED4 3B 20 00 00 */ li r25, 0 +/* 80397F78 00394ED8 57 5F 06 3E */ clrlwi r31, r26, 0x18 +lbl_80397F7C: +/* 80397F7C 00394EDC 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80397F80 00394EE0 80 63 14 E4 */ lwz r3, 0x14e4(r3) +/* 80397F84 00394EE4 7C 03 C8 AE */ lbzx r0, r3, r25 +/* 80397F88 00394EE8 7C 1F 00 40 */ cmplw r31, r0 +/* 80397F8C 00394EEC 40 82 00 90 */ bne lbl_8039801C +/* 80397F90 00394EF0 57 23 06 3E */ clrlwi r3, r25, 0x18 +/* 80397F94 00394EF4 4B FF EE B5 */ bl GenerateNextTrackEvent +/* 80397F98 00394EF8 28 03 00 00 */ cmplwi r3, 0 +/* 80397F9C 00394EFC 41 82 00 80 */ beq lbl_8039801C +/* 80397FA0 00394F00 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 80397FA4 00394F04 38 FD 14 E8 */ addi r7, r29, 0x14e8 +/* 80397FA8 00394F08 38 A0 00 00 */ li r5, 0 +/* 80397FAC 00394F0C 7C E0 3A 14 */ add r7, r0, r7 +/* 80397FB0 00394F10 80 C7 00 1C */ lwz r6, 0x1c(r7) +/* 80397FB4 00394F14 48 00 00 40 */ b lbl_80397FF4 +lbl_80397FB8: +/* 80397FB8 00394F18 80 86 00 08 */ lwz r4, 8(r6) +/* 80397FBC 00394F1C 80 03 00 08 */ lwz r0, 8(r3) +/* 80397FC0 00394F20 7C 04 00 40 */ cmplw r4, r0 +/* 80397FC4 00394F24 40 81 00 28 */ ble lbl_80397FEC +/* 80397FC8 00394F28 90 C3 00 00 */ stw r6, 0(r3) +/* 80397FCC 00394F2C 28 05 00 00 */ cmplwi r5, 0 +/* 80397FD0 00394F30 90 A3 00 04 */ stw r5, 4(r3) +/* 80397FD4 00394F34 41 82 00 0C */ beq lbl_80397FE0 +/* 80397FD8 00394F38 90 65 00 00 */ stw r3, 0(r5) +/* 80397FDC 00394F3C 48 00 00 08 */ b lbl_80397FE4 +lbl_80397FE0: +/* 80397FE0 00394F40 90 67 00 1C */ stw r3, 0x1c(r7) +lbl_80397FE4: +/* 80397FE4 00394F44 90 66 00 04 */ stw r3, 4(r6) +/* 80397FE8 00394F48 48 00 00 34 */ b lbl_8039801C +lbl_80397FEC: +/* 80397FEC 00394F4C 7C C5 33 78 */ mr r5, r6 +/* 80397FF0 00394F50 80 C6 00 00 */ lwz r6, 0(r6) +lbl_80397FF4: +/* 80397FF4 00394F54 28 06 00 00 */ cmplwi r6, 0 +/* 80397FF8 00394F58 40 82 FF C0 */ bne lbl_80397FB8 +/* 80397FFC 00394F5C 28 05 00 00 */ cmplwi r5, 0 +/* 80398000 00394F60 90 A3 00 04 */ stw r5, 4(r3) +/* 80398004 00394F64 41 82 00 0C */ beq lbl_80398010 +/* 80398008 00394F68 90 65 00 00 */ stw r3, 0(r5) +/* 8039800C 00394F6C 48 00 00 08 */ b lbl_80398014 +lbl_80398010: +/* 80398010 00394F70 90 67 00 1C */ stw r3, 0x1c(r7) +lbl_80398014: +/* 80398014 00394F74 38 00 00 00 */ li r0, 0 +/* 80398018 00394F78 90 03 00 00 */ stw r0, 0(r3) +lbl_8039801C: +/* 8039801C 00394F7C 3B 39 00 01 */ addi r25, r25, 1 +/* 80398020 00394F80 28 19 00 40 */ cmplwi r25, 0x40 +/* 80398024 00394F84 41 80 FF 58 */ blt lbl_80397F7C +/* 80398028 00394F88 48 00 00 88 */ b lbl_803980B0 +lbl_8039802C: +/* 8039802C 00394F8C 7F 44 D3 78 */ mr r4, r26 +/* 80398030 00394F90 38 A1 00 08 */ addi r5, r1, 8 +/* 80398034 00394F94 4B FF F0 2D */ bl sub_80397060 +/* 80398038 00394F98 28 03 00 00 */ cmplwi r3, 0 +/* 8039803C 00394F9C 41 82 00 74 */ beq lbl_803980B0 +/* 80398040 00394FA0 80 DC 00 1C */ lwz r6, 0x1c(r28) +/* 80398044 00394FA4 38 A0 00 00 */ li r5, 0 +/* 80398048 00394FA8 48 00 00 40 */ b lbl_80398088 +lbl_8039804C: +/* 8039804C 00394FAC 80 86 00 08 */ lwz r4, 8(r6) +/* 80398050 00394FB0 80 03 00 08 */ lwz r0, 8(r3) +/* 80398054 00394FB4 7C 04 00 40 */ cmplw r4, r0 +/* 80398058 00394FB8 40 81 00 28 */ ble lbl_80398080 +/* 8039805C 00394FBC 90 C3 00 00 */ stw r6, 0(r3) +/* 80398060 00394FC0 28 05 00 00 */ cmplwi r5, 0 +/* 80398064 00394FC4 90 A3 00 04 */ stw r5, 4(r3) +/* 80398068 00394FC8 41 82 00 0C */ beq lbl_80398074 +/* 8039806C 00394FCC 90 65 00 00 */ stw r3, 0(r5) +/* 80398070 00394FD0 48 00 00 08 */ b lbl_80398078 +lbl_80398074: +/* 80398074 00394FD4 90 7C 00 1C */ stw r3, 0x1c(r28) +lbl_80398078: +/* 80398078 00394FD8 90 66 00 04 */ stw r3, 4(r6) +/* 8039807C 00394FDC 48 00 00 34 */ b lbl_803980B0 +lbl_80398080: +/* 80398080 00394FE0 7C C5 33 78 */ mr r5, r6 +/* 80398084 00394FE4 80 C6 00 00 */ lwz r6, 0(r6) +lbl_80398088: +/* 80398088 00394FE8 28 06 00 00 */ cmplwi r6, 0 +/* 8039808C 00394FEC 40 82 FF C0 */ bne lbl_8039804C +/* 80398090 00394FF0 28 05 00 00 */ cmplwi r5, 0 +/* 80398094 00394FF4 90 A3 00 04 */ stw r5, 4(r3) +/* 80398098 00394FF8 41 82 00 0C */ beq lbl_803980A4 +/* 8039809C 00394FFC 90 65 00 00 */ stw r3, 0(r5) +/* 803980A0 00395000 48 00 00 08 */ b lbl_803980A8 +lbl_803980A4: +/* 803980A4 00395004 90 7C 00 1C */ stw r3, 0x1c(r28) +lbl_803980A8: +/* 803980A8 00395008 38 00 00 00 */ li r0, 0 +/* 803980AC 0039500C 90 03 00 00 */ stw r0, 0(r3) +lbl_803980B0: +/* 803980B0 00395010 80 7C 00 1C */ lwz r3, 0x1c(r28) +/* 803980B4 00395014 28 03 00 00 */ cmplwi r3, 0 +/* 803980B8 00395018 40 82 00 0C */ bne lbl_803980C4 +/* 803980BC 0039501C 38 A0 00 00 */ li r5, 0 +/* 803980C0 00395020 48 00 00 08 */ b lbl_803980C8 +lbl_803980C4: +/* 803980C4 00395024 80 A3 00 08 */ lwz r5, 8(r3) +lbl_803980C8: +/* 803980C8 00395028 88 1C 00 30 */ lbz r0, 0x30(r28) +/* 803980CC 0039502C 54 04 18 38 */ slwi r4, r0, 3 +/* 803980D0 00395030 38 04 00 24 */ addi r0, r4, 0x24 +/* 803980D4 00395034 7C 1C 00 2E */ lwzx r0, r28, r0 +/* 803980D8 00395038 7C 05 00 40 */ cmplw r5, r0 +/* 803980DC 0039503C 40 81 FB D4 */ ble lbl_80397CB0 +/* 803980E0 00395040 38 60 00 01 */ li r3, 1 +lbl_803980E4: +/* 803980E4 00395044 E3 E1 00 58 */ psq_l f31, 88(r1), 0, qr0 +/* 803980E8 00395048 39 61 00 50 */ addi r11, r1, 0x50 +/* 803980EC 0039504C CB E1 00 50 */ lfd f31, 0x50(r1) +/* 803980F0 00395050 4B FF 19 D1 */ bl _restgpr_25 +/* 803980F4 00395054 80 01 00 64 */ lwz r0, 0x64(r1) +/* 803980F8 00395058 7C 08 03 A6 */ mtlr r0 +/* 803980FC 0039505C 38 21 00 60 */ addi r1, r1, 0x60 +/* 80398100 00395060 4E 80 00 20 */ blr + +.global sub_80398104 +sub_80398104: +/* 80398104 00395064 94 21 FF 60 */ stwu r1, -0xa0(r1) +/* 80398108 00395068 7C 08 02 A6 */ mflr r0 +/* 8039810C 0039506C 90 01 00 A4 */ stw r0, 0xa4(r1) +/* 80398110 00395070 DB E1 00 90 */ stfd f31, 0x90(r1) +/* 80398114 00395074 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0 +/* 80398118 00395078 DB C1 00 80 */ stfd f30, 0x80(r1) +/* 8039811C 0039507C F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0 +/* 80398120 00395080 DB A1 00 70 */ stfd f29, 0x70(r1) +/* 80398124 00395084 F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0 +/* 80398128 00395088 DB 81 00 60 */ stfd f28, 0x60(r1) +/* 8039812C 0039508C F3 81 00 68 */ psq_st f28, 104(r1), 0, qr0 +/* 80398130 00395090 DB 61 00 50 */ stfd f27, 0x50(r1) +/* 80398134 00395094 F3 61 00 58 */ psq_st f27, 88(r1), 0, qr0 +/* 80398138 00395098 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039813C 0039509C 4B FF 19 35 */ bl func_80389A70 +/* 80398140 003950A0 7C 7C 1B 79 */ or. r28, r3, r3 +/* 80398144 003950A4 41 82 09 74 */ beq lbl_80398AB8 +/* 80398148 003950A8 83 CD AE 44 */ lwz r30, lbl_805A9A04@sda21(r13) +/* 8039814C 003950AC 48 00 09 64 */ b lbl_80398AB0 +lbl_80398150: +/* 80398150 003950B0 83 BE 00 00 */ lwz r29, 0(r30) +/* 80398154 003950B4 93 CD AE 38 */ stw r30, lbl_805A99F8@sda21(r13) +/* 80398158 003950B8 88 1E 00 09 */ lbz r0, 9(r30) +/* 8039815C 003950BC 90 0D AE 30 */ stw r0, lbl_805A99F0@sda21(r13) +/* 80398160 003950C0 88 7E 0E B0 */ lbz r3, 0xeb0(r30) +/* 80398164 003950C4 48 00 37 B5 */ bl synthIsFadeOutActive +/* 80398168 003950C8 98 6D AE 2C */ stb r3, lbl_805A99EC@sda21(r13) +/* 8039816C 003950CC 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398170 003950D0 80 03 14 E4 */ lwz r0, 0x14e4(r3) +/* 80398174 003950D4 28 00 00 00 */ cmplwi r0, 0 +/* 80398178 003950D8 40 82 03 9C */ bne lbl_80398514 +/* 8039817C 003950DC 3B E3 14 E8 */ addi r31, r3, 0x14e8 +/* 80398180 003950E0 80 03 14 E8 */ lwz r0, 0x14e8(r3) +/* 80398184 003950E4 28 00 00 00 */ cmplwi r0, 0 +/* 80398188 003950E8 41 82 00 9C */ beq lbl_80398224 +/* 8039818C 003950EC 48 00 00 84 */ b lbl_80398210 +lbl_80398190: +/* 80398190 003950F0 88 1F 00 30 */ lbz r0, 0x30(r31) +/* 80398194 003950F4 80 86 00 00 */ lwz r4, 0(r6) +/* 80398198 003950F8 54 03 18 38 */ slwi r3, r0, 3 +/* 8039819C 003950FC 38 03 00 24 */ addi r0, r3, 0x24 +/* 803981A0 00395100 7C 1F 00 2E */ lwzx r0, r31, r0 +/* 803981A4 00395104 7C 04 00 40 */ cmplw r4, r0 +/* 803981A8 00395108 41 81 00 7C */ bgt lbl_80398224 +/* 803981AC 0039510C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803981B0 00395110 80 63 01 18 */ lwz r3, 0x118(r3) +/* 803981B4 00395114 80 03 00 10 */ lwz r0, 0x10(r3) +/* 803981B8 00395118 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1 +/* 803981BC 0039511C 41 82 00 24 */ beq lbl_803981E0 +/* 803981C0 00395120 80 06 00 04 */ lwz r0, 4(r6) +/* 803981C4 00395124 38 A0 00 00 */ li r5, 0 +/* 803981C8 00395128 90 1F 00 08 */ stw r0, 8(r31) +/* 803981CC 0039512C 54 03 B2 BE */ srwi r3, r0, 0xa +/* 803981D0 00395130 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 803981D4 00395134 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 803981D8 00395138 48 00 0A C9 */ bl synthSetBpm +/* 803981DC 0039513C 48 00 00 28 */ b lbl_80398204 +lbl_803981E0: +/* 803981E0 00395140 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 803981E4 00395144 38 A0 00 00 */ li r5, 0 +/* 803981E8 00395148 80 66 00 04 */ lwz r3, 4(r6) +/* 803981EC 0039514C 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 803981F0 00395150 48 00 0A B1 */ bl synthSetBpm +/* 803981F4 00395154 80 7F 00 04 */ lwz r3, 4(r31) +/* 803981F8 00395158 80 03 00 04 */ lwz r0, 4(r3) +/* 803981FC 0039515C 54 00 50 2A */ slwi r0, r0, 0xa +/* 80398200 00395160 90 1F 00 08 */ stw r0, 8(r31) +lbl_80398204: +/* 80398204 00395164 80 7F 00 04 */ lwz r3, 4(r31) +/* 80398208 00395168 38 03 00 08 */ addi r0, r3, 8 +/* 8039820C 0039516C 90 1F 00 04 */ stw r0, 4(r31) +lbl_80398210: +/* 80398210 00395170 80 DF 00 04 */ lwz r6, 4(r31) +/* 80398214 00395174 80 66 00 00 */ lwz r3, 0(r6) +/* 80398218 00395178 3C 03 00 01 */ addis r0, r3, 1 +/* 8039821C 0039517C 28 00 FF FF */ cmplwi r0, 0xffff +/* 80398220 00395180 40 82 FF 70 */ bne lbl_80398190 +lbl_80398224: +/* 80398224 00395184 80 8D AE 38 */ lwz r4, lbl_805A99F8@sda21(r13) +/* 80398228 00395188 3C 60 43 30 */ lis r3, 0x4330 +/* 8039822C 0039518C 90 61 00 08 */ stw r3, 8(r1) +/* 80398230 00395190 3B 04 14 E8 */ addi r24, r4, 0x14e8 +/* 80398234 00395194 C8 C2 D5 08 */ lfd f6, lbl_805AF228@sda21(r2) +/* 80398238 00395198 80 84 14 F0 */ lwz r4, 0x14f0(r4) +/* 8039823C 0039519C A0 18 00 32 */ lhz r0, 0x32(r24) +/* 80398240 003951A0 90 81 00 0C */ stw r4, 0xc(r1) +/* 80398244 003951A4 C0 E2 D4 F0 */ lfs f7, lbl_805AF210@sda21(r2) +/* 80398248 003951A8 C8 01 00 08 */ lfd f0, 8(r1) +/* 8039824C 003951AC 93 81 00 14 */ stw r28, 0x14(r1) +/* 80398250 003951B0 EC A0 30 28 */ fsubs f5, f0, f6 +/* 80398254 003951B4 C0 62 D4 F4 */ lfs f3, lbl_805AF214@sda21(r2) +/* 80398258 003951B8 90 61 00 10 */ stw r3, 0x10(r1) +/* 8039825C 003951BC C0 02 D4 F8 */ lfs f0, lbl_805AF218@sda21(r2) +/* 80398260 003951C0 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 80398264 003951C4 90 01 00 1C */ stw r0, 0x1c(r1) +/* 80398268 003951C8 EC 81 30 28 */ fsubs f4, f1, f6 +/* 8039826C 003951CC C8 42 D5 00 */ lfd f2, lbl_805AF220@sda21(r2) +/* 80398270 003951D0 90 61 00 18 */ stw r3, 0x18(r1) +/* 80398274 003951D4 C8 21 00 18 */ lfd f1, 0x18(r1) +/* 80398278 003951D8 EC 85 01 32 */ fmuls f4, f5, f4 +/* 8039827C 003951DC EC 21 30 28 */ fsubs f1, f1, f6 +/* 80398280 003951E0 EF 87 01 32 */ fmuls f28, f7, f4 +/* 80398284 003951E4 EC 23 00 72 */ fmuls f1, f3, f1 +/* 80398288 003951E8 EF 9C 00 72 */ fmuls f28, f28, f1 +/* 8039828C 003951EC EC 20 07 32 */ fmuls f1, f0, f28 +/* 80398290 003951F0 4B FF CA 1D */ bl fmod +/* 80398294 003951F4 FC 20 08 18 */ frsp f1, f1 +/* 80398298 003951F8 4B FF 16 BD */ bl __cvt_fp2unsigned +/* 8039829C 003951FC 88 18 00 30 */ lbz r0, 0x30(r24) +/* 803982A0 00395200 FC 20 E0 90 */ fmr f1, f28 +/* 803982A4 00395204 54 04 18 38 */ slwi r4, r0, 3 +/* 803982A8 00395208 38 04 00 0C */ addi r0, r4, 0xc +/* 803982AC 0039520C 7C 78 01 2E */ stwx r3, r24, r0 +/* 803982B0 00395210 4B FF C2 15 */ bl floor +/* 803982B4 00395214 FC 00 08 18 */ frsp f0, f1 +/* 803982B8 00395218 88 18 00 30 */ lbz r0, 0x30(r24) +/* 803982BC 0039521C 7F 84 E3 78 */ mr r4, r28 +/* 803982C0 00395220 38 60 00 00 */ li r3, 0 +/* 803982C4 00395224 54 05 18 38 */ slwi r5, r0, 3 +/* 803982C8 00395228 FC 00 00 1E */ fctiwz f0, f0 +/* 803982CC 0039522C 38 05 00 10 */ addi r0, r5, 0x10 +/* 803982D0 00395230 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803982D4 00395234 80 A1 00 24 */ lwz r5, 0x24(r1) +/* 803982D8 00395238 7C B8 01 2E */ stwx r5, r24, r0 +/* 803982DC 0039523C 4B FF F9 8D */ bl HandleTrackEvents +/* 803982E0 00395240 3B 60 00 00 */ li r27, 0 +/* 803982E4 00395244 7C 7F 1B 78 */ mr r31, r3 +/* 803982E8 00395248 7F 79 DB 78 */ mr r25, r27 +/* 803982EC 0039524C 7F 78 DB 78 */ mr r24, r27 +lbl_803982F0: +/* 803982F0 00395250 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803982F4 00395254 38 19 0E 64 */ addi r0, r25, 0xe64 +/* 803982F8 00395258 7F 43 00 2E */ lwzx r26, r3, r0 +/* 803982FC 0039525C 28 1A 00 00 */ cmplwi r26, 0 +/* 80398300 00395260 41 82 00 9C */ beq lbl_8039839C +/* 80398304 00395264 48 00 00 74 */ b lbl_80398378 +lbl_80398308: +/* 80398308 00395268 80 7A 00 08 */ lwz r3, 8(r26) +/* 8039830C 0039526C 48 00 30 55 */ bl synthSendKeyOff +/* 80398310 00395270 80 9A 00 00 */ lwz r4, 0(r26) +/* 80398314 00395274 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398318 00395278 28 04 00 00 */ cmplwi r4, 0 +/* 8039831C 0039527C 38 03 0E 64 */ addi r0, r3, 0xe64 +/* 80398320 00395280 7C 99 01 2E */ stwx r4, r25, r0 +/* 80398324 00395284 41 82 00 18 */ beq lbl_8039833C +/* 80398328 00395288 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 8039832C 0039528C 38 80 00 00 */ li r4, 0 +/* 80398330 00395290 38 03 0E 64 */ addi r0, r3, 0xe64 +/* 80398334 00395294 7C 79 00 2E */ lwzx r3, r25, r0 +/* 80398338 00395298 90 83 00 04 */ stw r4, 4(r3) +lbl_8039833C: +/* 8039833C 0039529C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398340 003952A0 80 03 0E 6C */ lwz r0, 0xe6c(r3) +/* 80398344 003952A4 28 00 00 00 */ cmplwi r0, 0 +/* 80398348 003952A8 90 1A 00 00 */ stw r0, 0(r26) +/* 8039834C 003952AC 41 82 00 10 */ beq lbl_8039835C +/* 80398350 003952B0 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398354 003952B4 80 63 0E 6C */ lwz r3, 0xe6c(r3) +/* 80398358 003952B8 93 43 00 04 */ stw r26, 4(r3) +lbl_8039835C: +/* 8039835C 003952BC 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398360 003952C0 93 43 0E 6C */ stw r26, 0xe6c(r3) +/* 80398364 003952C4 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398368 003952C8 38 03 0E 64 */ addi r0, r3, 0xe64 +/* 8039836C 003952CC 7F 59 00 2E */ lwzx r26, r25, r0 +/* 80398370 003952D0 28 1A 00 00 */ cmplwi r26, 0 +/* 80398374 003952D4 41 82 00 28 */ beq lbl_8039839C +lbl_80398378: +/* 80398378 003952D8 88 1A 00 10 */ lbz r0, 0x10(r26) +/* 8039837C 003952DC 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398380 003952E0 1C 00 00 38 */ mulli r0, r0, 0x38 +/* 80398384 003952E4 80 9A 00 0C */ lwz r4, 0xc(r26) +/* 80398388 003952E8 7C 63 02 14 */ add r3, r3, r0 +/* 8039838C 003952EC 38 03 15 0C */ addi r0, r3, 0x150c +/* 80398390 003952F0 7C 18 00 2E */ lwzx r0, r24, r0 +/* 80398394 003952F4 7C 04 00 00 */ cmpw r4, r0 +/* 80398398 003952F8 40 81 FF 70 */ ble lbl_80398308 +lbl_8039839C: +/* 8039839C 003952FC 3B 7B 00 01 */ addi r27, r27, 1 +/* 803983A0 00395300 3B 18 00 08 */ addi r24, r24, 8 +/* 803983A4 00395304 28 1B 00 02 */ cmplwi r27, 2 +/* 803983A8 00395308 3B 39 00 04 */ addi r25, r25, 4 +/* 803983AC 0039530C 41 80 FF 44 */ blt lbl_803982F0 +/* 803983B0 00395310 80 8D AE 38 */ lwz r4, lbl_805A99F8@sda21(r13) +/* 803983B4 00395314 38 60 00 00 */ li r3, 0 +/* 803983B8 00395318 80 04 0E 64 */ lwz r0, 0xe64(r4) +/* 803983BC 0039531C 28 00 00 00 */ cmplwi r0, 0 +/* 803983C0 00395320 40 82 00 10 */ bne lbl_803983D0 +/* 803983C4 00395324 80 04 0E 68 */ lwz r0, 0xe68(r4) +/* 803983C8 00395328 28 00 00 00 */ cmplwi r0, 0 +/* 803983CC 0039532C 41 82 00 08 */ beq lbl_803983D4 +lbl_803983D0: +/* 803983D0 00395330 38 60 00 01 */ li r3, 1 +lbl_803983D4: +/* 803983D4 00395334 88 04 0E E2 */ lbz r0, 0xee2(r4) +/* 803983D8 00395338 7C 78 1B 78 */ mr r24, r3 +/* 803983DC 0039533C 28 00 00 00 */ cmplwi r0, 0 +/* 803983E0 00395340 40 82 00 98 */ bne lbl_80398478 +/* 803983E4 00395344 83 44 0E 6C */ lwz r26, 0xe6c(r4) +/* 803983E8 00395348 48 00 00 88 */ b lbl_80398470 +lbl_803983EC: +/* 803983EC 0039534C 80 7A 00 08 */ lwz r3, 8(r26) +/* 803983F0 00395350 83 3A 00 00 */ lwz r25, 0(r26) +/* 803983F4 00395354 3C 03 00 01 */ addis r0, r3, 1 +/* 803983F8 00395358 28 00 FF FF */ cmplwi r0, 0xffff +/* 803983FC 0039535C 41 82 00 70 */ beq lbl_8039846C +/* 80398400 00395360 48 00 3F 15 */ bl sndFXCheck +/* 80398404 00395364 3C 03 00 01 */ addis r0, r3, 1 +/* 80398408 00395368 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039840C 0039536C 40 82 00 60 */ bne lbl_8039846C +/* 80398410 00395370 80 7A 00 00 */ lwz r3, 0(r26) +/* 80398414 00395374 28 03 00 00 */ cmplwi r3, 0 +/* 80398418 00395378 41 82 00 0C */ beq lbl_80398424 +/* 8039841C 0039537C 80 1A 00 04 */ lwz r0, 4(r26) +/* 80398420 00395380 90 03 00 04 */ stw r0, 4(r3) +lbl_80398424: +/* 80398424 00395384 80 7A 00 04 */ lwz r3, 4(r26) +/* 80398428 00395388 28 03 00 00 */ cmplwi r3, 0 +/* 8039842C 0039538C 41 82 00 10 */ beq lbl_8039843C +/* 80398430 00395390 80 1A 00 00 */ lwz r0, 0(r26) +/* 80398434 00395394 90 03 00 00 */ stw r0, 0(r3) +/* 80398438 00395398 48 00 00 10 */ b lbl_80398448 +lbl_8039843C: +/* 8039843C 0039539C 80 1A 00 00 */ lwz r0, 0(r26) +/* 80398440 003953A0 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398444 003953A4 90 03 0E 6C */ stw r0, 0xe6c(r3) +lbl_80398448: +/* 80398448 003953A8 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 8039844C 003953AC 28 00 00 00 */ cmplwi r0, 0 +/* 80398450 003953B0 90 1A 00 00 */ stw r0, 0(r26) +/* 80398454 003953B4 41 82 00 0C */ beq lbl_80398460 +/* 80398458 003953B8 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 8039845C 003953BC 93 43 00 04 */ stw r26, 4(r3) +lbl_80398460: +/* 80398460 003953C0 38 00 00 00 */ li r0, 0 +/* 80398464 003953C4 90 1A 00 04 */ stw r0, 4(r26) +/* 80398468 003953C8 93 4D AE 34 */ stw r26, lbl_805A99F4@sda21(r13) +lbl_8039846C: +/* 8039846C 003953CC 7F 3A CB 78 */ mr r26, r25 +lbl_80398470: +/* 80398470 003953D0 28 1A 00 00 */ cmplwi r26, 0 +/* 80398474 003953D4 40 82 FF 78 */ bne lbl_803983EC +lbl_80398478: +/* 80398478 003953D8 80 AD AE 38 */ lwz r5, lbl_805A99F8@sda21(r13) +/* 8039847C 003953DC 3C 60 66 66 */ lis r3, 0x66666667@ha +/* 80398480 003953E0 38 03 66 67 */ addi r0, r3, 0x66666667@l +/* 80398484 003953E4 88 65 0E E2 */ lbz r3, 0xee2(r5) +/* 80398488 003953E8 38 83 00 01 */ addi r4, r3, 1 +/* 8039848C 003953EC 7C 00 20 96 */ mulhw r0, r0, r4 +/* 80398490 003953F0 7C 00 0E 70 */ srawi r0, r0, 1 +/* 80398494 003953F4 54 03 0F FE */ srwi r3, r0, 0x1f +/* 80398498 003953F8 7C 00 1A 14 */ add r0, r0, r3 +/* 8039849C 003953FC 1C 00 00 05 */ mulli r0, r0, 5 +/* 803984A0 00395400 7C 00 20 50 */ subf r0, r0, r4 +/* 803984A4 00395404 98 05 0E E2 */ stb r0, 0xee2(r5) +/* 803984A8 00395408 80 8D AE 38 */ lwz r4, lbl_805A99F8@sda21(r13) +/* 803984AC 0039540C 80 64 15 08 */ lwz r3, 0x1508(r4) +/* 803984B0 00395410 80 04 14 F4 */ lwz r0, 0x14f4(r4) +/* 803984B4 00395414 7C 63 02 14 */ add r3, r3, r0 +/* 803984B8 00395418 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803984BC 0039541C 90 04 15 08 */ stw r0, 0x1508(r4) +/* 803984C0 00395420 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803984C4 00395424 80 AD AE 38 */ lwz r5, lbl_805A99F8@sda21(r13) +/* 803984C8 00395428 80 85 15 0C */ lwz r4, 0x150c(r5) +/* 803984CC 0039542C 80 05 14 F8 */ lwz r0, 0x14f8(r5) +/* 803984D0 00395430 7C 00 22 14 */ add r0, r0, r4 +/* 803984D4 00395434 7C 03 02 14 */ add r0, r3, r0 +/* 803984D8 00395438 90 05 15 0C */ stw r0, 0x150c(r5) +/* 803984DC 0039543C 80 8D AE 38 */ lwz r4, lbl_805A99F8@sda21(r13) +/* 803984E0 00395440 80 64 15 10 */ lwz r3, 0x1510(r4) +/* 803984E4 00395444 80 04 14 FC */ lwz r0, 0x14fc(r4) +/* 803984E8 00395448 7C 63 02 14 */ add r3, r3, r0 +/* 803984EC 0039544C 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803984F0 00395450 90 04 15 10 */ stw r0, 0x1510(r4) +/* 803984F4 00395454 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803984F8 00395458 80 AD AE 38 */ lwz r5, lbl_805A99F8@sda21(r13) +/* 803984FC 0039545C 80 85 15 14 */ lwz r4, 0x1514(r5) +/* 80398500 00395460 80 05 15 00 */ lwz r0, 0x1500(r5) +/* 80398504 00395464 7C 00 22 14 */ add r0, r0, r4 +/* 80398508 00395468 7C 03 02 14 */ add r0, r3, r0 +/* 8039850C 0039546C 90 05 15 14 */ stw r0, 0x1514(r5) +/* 80398510 00395470 48 00 04 68 */ b lbl_80398978 +lbl_80398514: +/* 80398514 00395474 C3 82 D4 F0 */ lfs f28, lbl_805AF210@sda21(r2) +/* 80398518 00395478 3B E0 00 00 */ li r31, 0 +/* 8039851C 0039547C CB A2 D5 08 */ lfd f29, lbl_805AF228@sda21(r2) +/* 80398520 00395480 3B 20 00 00 */ li r25, 0 +/* 80398524 00395484 C3 C2 D4 F4 */ lfs f30, lbl_805AF214@sda21(r2) +/* 80398528 00395488 3B 00 00 00 */ li r24, 0 +/* 8039852C 0039548C C3 E2 D4 F8 */ lfs f31, lbl_805AF218@sda21(r2) +/* 80398530 00395490 3F 60 43 30 */ lis r27, 0x4330 +lbl_80398534: +/* 80398534 00395494 57 20 06 3E */ clrlwi r0, r25, 0x18 +/* 80398538 00395498 80 8D AE 38 */ lwz r4, lbl_805A99F8@sda21(r13) +/* 8039853C 0039549C 1C 60 00 38 */ mulli r3, r0, 0x38 +/* 80398540 003954A0 3B 43 14 E8 */ addi r26, r3, 0x14e8 +/* 80398544 003954A4 7F 44 D2 14 */ add r26, r4, r26 +/* 80398548 003954A8 80 1A 00 00 */ lwz r0, 0(r26) +/* 8039854C 003954AC 28 00 00 00 */ cmplwi r0, 0 +/* 80398550 003954B0 41 82 00 9C */ beq lbl_803985EC +/* 80398554 003954B4 48 00 00 84 */ b lbl_803985D8 +lbl_80398558: +/* 80398558 003954B8 88 1A 00 30 */ lbz r0, 0x30(r26) +/* 8039855C 003954BC 80 86 00 00 */ lwz r4, 0(r6) +/* 80398560 003954C0 54 03 18 38 */ slwi r3, r0, 3 +/* 80398564 003954C4 38 03 00 24 */ addi r0, r3, 0x24 +/* 80398568 003954C8 7C 1A 00 2E */ lwzx r0, r26, r0 +/* 8039856C 003954CC 7C 04 00 40 */ cmplw r4, r0 +/* 80398570 003954D0 41 81 00 7C */ bgt lbl_803985EC +/* 80398574 003954D4 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398578 003954D8 80 63 01 18 */ lwz r3, 0x118(r3) +/* 8039857C 003954DC 80 03 00 10 */ lwz r0, 0x10(r3) +/* 80398580 003954E0 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1 +/* 80398584 003954E4 41 82 00 24 */ beq lbl_803985A8 +/* 80398588 003954E8 80 06 00 04 */ lwz r0, 4(r6) +/* 8039858C 003954EC 57 25 06 3E */ clrlwi r5, r25, 0x18 +/* 80398590 003954F0 90 1A 00 08 */ stw r0, 8(r26) +/* 80398594 003954F4 54 03 B2 BE */ srwi r3, r0, 0xa +/* 80398598 003954F8 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 8039859C 003954FC 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 803985A0 00395500 48 00 07 01 */ bl synthSetBpm +/* 803985A4 00395504 48 00 00 28 */ b lbl_803985CC +lbl_803985A8: +/* 803985A8 00395508 80 0D AE 30 */ lwz r0, lbl_805A99F0@sda21(r13) +/* 803985AC 0039550C 57 25 06 3E */ clrlwi r5, r25, 0x18 +/* 803985B0 00395510 80 66 00 04 */ lwz r3, 4(r6) +/* 803985B4 00395514 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 803985B8 00395518 48 00 06 E9 */ bl synthSetBpm +/* 803985BC 0039551C 80 7A 00 04 */ lwz r3, 4(r26) +/* 803985C0 00395520 80 03 00 04 */ lwz r0, 4(r3) +/* 803985C4 00395524 54 00 50 2A */ slwi r0, r0, 0xa +/* 803985C8 00395528 90 1A 00 08 */ stw r0, 8(r26) +lbl_803985CC: +/* 803985CC 0039552C 80 7A 00 04 */ lwz r3, 4(r26) +/* 803985D0 00395530 38 03 00 08 */ addi r0, r3, 8 +/* 803985D4 00395534 90 1A 00 04 */ stw r0, 4(r26) +lbl_803985D8: +/* 803985D8 00395538 80 DA 00 04 */ lwz r6, 4(r26) +/* 803985DC 0039553C 80 66 00 00 */ lwz r3, 0(r6) +/* 803985E0 00395540 3C 03 00 01 */ addis r0, r3, 1 +/* 803985E4 00395544 28 00 FF FF */ cmplwi r0, 0xffff +/* 803985E8 00395548 40 82 FF 70 */ bne lbl_80398558 +lbl_803985EC: +/* 803985EC 0039554C 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 803985F0 00395550 3B 58 14 E8 */ addi r26, r24, 0x14e8 +/* 803985F4 00395554 93 61 00 20 */ stw r27, 0x20(r1) +/* 803985F8 00395558 7F 40 D2 14 */ add r26, r0, r26 +/* 803985FC 0039555C C8 42 D5 00 */ lfd f2, lbl_805AF220@sda21(r2) +/* 80398600 00395560 80 7A 00 08 */ lwz r3, 8(r26) +/* 80398604 00395564 A0 1A 00 32 */ lhz r0, 0x32(r26) +/* 80398608 00395568 90 61 00 24 */ stw r3, 0x24(r1) +/* 8039860C 0039556C C8 01 00 20 */ lfd f0, 0x20(r1) +/* 80398610 00395570 93 81 00 1C */ stw r28, 0x1c(r1) +/* 80398614 00395574 EC 60 E8 28 */ fsubs f3, f0, f29 +/* 80398618 00395578 93 61 00 18 */ stw r27, 0x18(r1) +/* 8039861C 0039557C C8 01 00 18 */ lfd f0, 0x18(r1) +/* 80398620 00395580 90 01 00 14 */ stw r0, 0x14(r1) +/* 80398624 00395584 EC 20 E8 28 */ fsubs f1, f0, f29 +/* 80398628 00395588 93 61 00 10 */ stw r27, 0x10(r1) +/* 8039862C 0039558C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 80398630 00395590 EC 23 00 72 */ fmuls f1, f3, f1 +/* 80398634 00395594 EC 00 E8 28 */ fsubs f0, f0, f29 +/* 80398638 00395598 EF 7C 00 72 */ fmuls f27, f28, f1 +/* 8039863C 0039559C EC 1E 00 32 */ fmuls f0, f30, f0 +/* 80398640 003955A0 EF 7B 00 32 */ fmuls f27, f27, f0 +/* 80398644 003955A4 EC 3F 06 F2 */ fmuls f1, f31, f27 +/* 80398648 003955A8 4B FF C6 65 */ bl fmod +/* 8039864C 003955AC FC 20 08 18 */ frsp f1, f1 +/* 80398650 003955B0 4B FF 13 05 */ bl __cvt_fp2unsigned +/* 80398654 003955B4 88 1A 00 30 */ lbz r0, 0x30(r26) +/* 80398658 003955B8 FC 20 D8 90 */ fmr f1, f27 +/* 8039865C 003955BC 54 04 18 38 */ slwi r4, r0, 3 +/* 80398660 003955C0 38 04 00 0C */ addi r0, r4, 0xc +/* 80398664 003955C4 7C 7A 01 2E */ stwx r3, r26, r0 +/* 80398668 003955C8 4B FF BE 5D */ bl floor +/* 8039866C 003955CC FC 00 08 18 */ frsp f0, f1 +/* 80398670 003955D0 88 1A 00 30 */ lbz r0, 0x30(r26) +/* 80398674 003955D4 7F 84 E3 78 */ mr r4, r28 +/* 80398678 003955D8 57 23 06 3E */ clrlwi r3, r25, 0x18 +/* 8039867C 003955DC 54 05 18 38 */ slwi r5, r0, 3 +/* 80398680 003955E0 FC 00 00 1E */ fctiwz f0, f0 +/* 80398684 003955E4 38 05 00 10 */ addi r0, r5, 0x10 +/* 80398688 003955E8 D8 01 00 08 */ stfd f0, 8(r1) +/* 8039868C 003955EC 80 A1 00 0C */ lwz r5, 0xc(r1) +/* 80398690 003955F0 7C BA 01 2E */ stwx r5, r26, r0 +/* 80398694 003955F4 4B FF F5 D5 */ bl HandleTrackEvents +/* 80398698 003955F8 3B 39 00 01 */ addi r25, r25, 1 +/* 8039869C 003955FC 7F FF 1B 78 */ or r31, r31, r3 +/* 803986A0 00395600 28 19 00 10 */ cmplwi r25, 0x10 +/* 803986A4 00395604 3B 18 00 38 */ addi r24, r24, 0x38 +/* 803986A8 00395608 41 80 FE 8C */ blt lbl_80398534 +/* 803986AC 0039560C 3B 40 00 00 */ li r26, 0 +/* 803986B0 00395610 7F 58 D3 78 */ mr r24, r26 +/* 803986B4 00395614 7F 59 D3 78 */ mr r25, r26 +lbl_803986B8: +/* 803986B8 00395618 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803986BC 0039561C 38 18 0E 64 */ addi r0, r24, 0xe64 +/* 803986C0 00395620 7F 63 00 2E */ lwzx r27, r3, r0 +/* 803986C4 00395624 28 1B 00 00 */ cmplwi r27, 0 +/* 803986C8 00395628 41 82 00 9C */ beq lbl_80398764 +/* 803986CC 0039562C 48 00 00 74 */ b lbl_80398740 +lbl_803986D0: +/* 803986D0 00395630 80 7B 00 08 */ lwz r3, 8(r27) +/* 803986D4 00395634 48 00 2C 8D */ bl synthSendKeyOff +/* 803986D8 00395638 80 9B 00 00 */ lwz r4, 0(r27) +/* 803986DC 0039563C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803986E0 00395640 28 04 00 00 */ cmplwi r4, 0 +/* 803986E4 00395644 38 03 0E 64 */ addi r0, r3, 0xe64 +/* 803986E8 00395648 7C 98 01 2E */ stwx r4, r24, r0 +/* 803986EC 0039564C 41 82 00 18 */ beq lbl_80398704 +/* 803986F0 00395650 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 803986F4 00395654 38 80 00 00 */ li r4, 0 +/* 803986F8 00395658 38 03 0E 64 */ addi r0, r3, 0xe64 +/* 803986FC 0039565C 7C 78 00 2E */ lwzx r3, r24, r0 +/* 80398700 00395660 90 83 00 04 */ stw r4, 4(r3) +lbl_80398704: +/* 80398704 00395664 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398708 00395668 80 03 0E 6C */ lwz r0, 0xe6c(r3) +/* 8039870C 0039566C 28 00 00 00 */ cmplwi r0, 0 +/* 80398710 00395670 90 1B 00 00 */ stw r0, 0(r27) +/* 80398714 00395674 41 82 00 10 */ beq lbl_80398724 +/* 80398718 00395678 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 8039871C 0039567C 80 63 0E 6C */ lwz r3, 0xe6c(r3) +/* 80398720 00395680 93 63 00 04 */ stw r27, 4(r3) +lbl_80398724: +/* 80398724 00395684 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398728 00395688 93 63 0E 6C */ stw r27, 0xe6c(r3) +/* 8039872C 0039568C 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398730 00395690 38 03 0E 64 */ addi r0, r3, 0xe64 +/* 80398734 00395694 7F 78 00 2E */ lwzx r27, r24, r0 +/* 80398738 00395698 28 1B 00 00 */ cmplwi r27, 0 +/* 8039873C 0039569C 41 82 00 28 */ beq lbl_80398764 +lbl_80398740: +/* 80398740 003956A0 88 1B 00 10 */ lbz r0, 0x10(r27) +/* 80398744 003956A4 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 80398748 003956A8 1C 00 00 38 */ mulli r0, r0, 0x38 +/* 8039874C 003956AC 80 9B 00 0C */ lwz r4, 0xc(r27) +/* 80398750 003956B0 7C 63 02 14 */ add r3, r3, r0 +/* 80398754 003956B4 38 03 15 0C */ addi r0, r3, 0x150c +/* 80398758 003956B8 7C 19 00 2E */ lwzx r0, r25, r0 +/* 8039875C 003956BC 7C 04 00 00 */ cmpw r4, r0 +/* 80398760 003956C0 40 81 FF 70 */ ble lbl_803986D0 +lbl_80398764: +/* 80398764 003956C4 3B 5A 00 01 */ addi r26, r26, 1 +/* 80398768 003956C8 3B 39 00 08 */ addi r25, r25, 8 +/* 8039876C 003956CC 28 1A 00 02 */ cmplwi r26, 2 +/* 80398770 003956D0 3B 18 00 04 */ addi r24, r24, 4 +/* 80398774 003956D4 41 80 FF 44 */ blt lbl_803986B8 +/* 80398778 003956D8 80 8D AE 38 */ lwz r4, lbl_805A99F8@sda21(r13) +/* 8039877C 003956DC 38 60 00 00 */ li r3, 0 +/* 80398780 003956E0 80 04 0E 64 */ lwz r0, 0xe64(r4) +/* 80398784 003956E4 28 00 00 00 */ cmplwi r0, 0 +/* 80398788 003956E8 40 82 00 10 */ bne lbl_80398798 +/* 8039878C 003956EC 80 04 0E 68 */ lwz r0, 0xe68(r4) +/* 80398790 003956F0 28 00 00 00 */ cmplwi r0, 0 +/* 80398794 003956F4 41 82 00 08 */ beq lbl_8039879C +lbl_80398798: +/* 80398798 003956F8 38 60 00 01 */ li r3, 1 +lbl_8039879C: +/* 8039879C 003956FC 88 04 0E E2 */ lbz r0, 0xee2(r4) +/* 803987A0 00395700 7C 78 1B 78 */ mr r24, r3 +/* 803987A4 00395704 28 00 00 00 */ cmplwi r0, 0 +/* 803987A8 00395708 40 82 00 98 */ bne lbl_80398840 +/* 803987AC 0039570C 83 44 0E 6C */ lwz r26, 0xe6c(r4) +/* 803987B0 00395710 48 00 00 88 */ b lbl_80398838 +lbl_803987B4: +/* 803987B4 00395714 80 7A 00 08 */ lwz r3, 8(r26) +/* 803987B8 00395718 83 3A 00 00 */ lwz r25, 0(r26) +/* 803987BC 0039571C 3C 03 00 01 */ addis r0, r3, 1 +/* 803987C0 00395720 28 00 FF FF */ cmplwi r0, 0xffff +/* 803987C4 00395724 41 82 00 70 */ beq lbl_80398834 +/* 803987C8 00395728 48 00 3B 4D */ bl sndFXCheck +/* 803987CC 0039572C 3C 03 00 01 */ addis r0, r3, 1 +/* 803987D0 00395730 28 00 FF FF */ cmplwi r0, 0xffff +/* 803987D4 00395734 40 82 00 60 */ bne lbl_80398834 +/* 803987D8 00395738 80 7A 00 00 */ lwz r3, 0(r26) +/* 803987DC 0039573C 28 03 00 00 */ cmplwi r3, 0 +/* 803987E0 00395740 41 82 00 0C */ beq lbl_803987EC +/* 803987E4 00395744 80 1A 00 04 */ lwz r0, 4(r26) +/* 803987E8 00395748 90 03 00 04 */ stw r0, 4(r3) +lbl_803987EC: +/* 803987EC 0039574C 80 7A 00 04 */ lwz r3, 4(r26) +/* 803987F0 00395750 28 03 00 00 */ cmplwi r3, 0 +/* 803987F4 00395754 41 82 00 10 */ beq lbl_80398804 +/* 803987F8 00395758 80 1A 00 00 */ lwz r0, 0(r26) +/* 803987FC 0039575C 90 03 00 00 */ stw r0, 0(r3) +/* 80398800 00395760 48 00 00 10 */ b lbl_80398810 +lbl_80398804: +/* 80398804 00395764 80 1A 00 00 */ lwz r0, 0(r26) +/* 80398808 00395768 80 6D AE 38 */ lwz r3, lbl_805A99F8@sda21(r13) +/* 8039880C 0039576C 90 03 0E 6C */ stw r0, 0xe6c(r3) +lbl_80398810: +/* 80398810 00395770 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80398814 00395774 28 00 00 00 */ cmplwi r0, 0 +/* 80398818 00395778 90 1A 00 00 */ stw r0, 0(r26) +/* 8039881C 0039577C 41 82 00 0C */ beq lbl_80398828 +/* 80398820 00395780 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80398824 00395784 93 43 00 04 */ stw r26, 4(r3) +lbl_80398828: +/* 80398828 00395788 38 00 00 00 */ li r0, 0 +/* 8039882C 0039578C 90 1A 00 04 */ stw r0, 4(r26) +/* 80398830 00395790 93 4D AE 34 */ stw r26, lbl_805A99F4@sda21(r13) +lbl_80398834: +/* 80398834 00395794 7F 3A CB 78 */ mr r26, r25 +lbl_80398838: +/* 80398838 00395798 28 1A 00 00 */ cmplwi r26, 0 +/* 8039883C 0039579C 40 82 FF 78 */ bne lbl_803987B4 +lbl_80398840: +/* 80398840 003957A0 80 ED AE 38 */ lwz r7, lbl_805A99F8@sda21(r13) +/* 80398844 003957A4 3C 80 66 66 */ lis r4, 0x66666667@ha +/* 80398848 003957A8 38 84 66 67 */ addi r4, r4, 0x66666667@l +/* 8039884C 003957AC 38 00 00 08 */ li r0, 8 +/* 80398850 003957B0 88 A7 0E E2 */ lbz r5, 0xee2(r7) +/* 80398854 003957B4 38 60 00 00 */ li r3, 0 +/* 80398858 003957B8 38 C5 00 01 */ addi r6, r5, 1 +/* 8039885C 003957BC 7C 84 30 96 */ mulhw r4, r4, r6 +/* 80398860 003957C0 7C 84 0E 70 */ srawi r4, r4, 1 +/* 80398864 003957C4 54 85 0F FE */ srwi r5, r4, 0x1f +/* 80398868 003957C8 7C 84 2A 14 */ add r4, r4, r5 +/* 8039886C 003957CC 1C 84 00 05 */ mulli r4, r4, 5 +/* 80398870 003957D0 7C 84 30 50 */ subf r4, r4, r6 +/* 80398874 003957D4 98 87 0E E2 */ stb r4, 0xee2(r7) +/* 80398878 003957D8 7C 09 03 A6 */ mtctr r0 +lbl_8039887C: +/* 8039887C 003957DC 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 80398880 003957E0 7C A0 1A 14 */ add r5, r0, r3 +/* 80398884 003957E4 80 85 15 08 */ lwz r4, 0x1508(r5) +/* 80398888 003957E8 80 05 14 F4 */ lwz r0, 0x14f4(r5) +/* 8039888C 003957EC 7C 84 02 14 */ add r4, r4, r0 +/* 80398890 003957F0 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 80398894 003957F4 90 05 15 08 */ stw r0, 0x1508(r5) +/* 80398898 003957F8 54 84 84 3E */ srwi r4, r4, 0x10 +/* 8039889C 003957FC 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 803988A0 00395800 7C C0 1A 14 */ add r6, r0, r3 +/* 803988A4 00395804 80 A6 15 0C */ lwz r5, 0x150c(r6) +/* 803988A8 00395808 80 06 14 F8 */ lwz r0, 0x14f8(r6) +/* 803988AC 0039580C 7C 00 2A 14 */ add r0, r0, r5 +/* 803988B0 00395810 7C 04 02 14 */ add r0, r4, r0 +/* 803988B4 00395814 90 06 15 0C */ stw r0, 0x150c(r6) +/* 803988B8 00395818 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 803988BC 0039581C 7C A0 1A 14 */ add r5, r0, r3 +/* 803988C0 00395820 80 85 15 10 */ lwz r4, 0x1510(r5) +/* 803988C4 00395824 80 05 14 FC */ lwz r0, 0x14fc(r5) +/* 803988C8 00395828 7C 84 02 14 */ add r4, r4, r0 +/* 803988CC 0039582C 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 803988D0 00395830 90 05 15 10 */ stw r0, 0x1510(r5) +/* 803988D4 00395834 54 84 84 3E */ srwi r4, r4, 0x10 +/* 803988D8 00395838 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 803988DC 0039583C 7C C0 1A 14 */ add r6, r0, r3 +/* 803988E0 00395840 38 63 00 38 */ addi r3, r3, 0x38 +/* 803988E4 00395844 80 A6 15 14 */ lwz r5, 0x1514(r6) +/* 803988E8 00395848 80 06 15 00 */ lwz r0, 0x1500(r6) +/* 803988EC 0039584C 7C 00 2A 14 */ add r0, r0, r5 +/* 803988F0 00395850 7C 04 02 14 */ add r0, r4, r0 +/* 803988F4 00395854 90 06 15 14 */ stw r0, 0x1514(r6) +/* 803988F8 00395858 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 803988FC 0039585C 7C A0 1A 14 */ add r5, r0, r3 +/* 80398900 00395860 80 85 15 08 */ lwz r4, 0x1508(r5) +/* 80398904 00395864 80 05 14 F4 */ lwz r0, 0x14f4(r5) +/* 80398908 00395868 7C 84 02 14 */ add r4, r4, r0 +/* 8039890C 0039586C 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 80398910 00395870 90 05 15 08 */ stw r0, 0x1508(r5) +/* 80398914 00395874 54 84 84 3E */ srwi r4, r4, 0x10 +/* 80398918 00395878 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 8039891C 0039587C 7C C0 1A 14 */ add r6, r0, r3 +/* 80398920 00395880 80 A6 15 0C */ lwz r5, 0x150c(r6) +/* 80398924 00395884 80 06 14 F8 */ lwz r0, 0x14f8(r6) +/* 80398928 00395888 7C 00 2A 14 */ add r0, r0, r5 +/* 8039892C 0039588C 7C 04 02 14 */ add r0, r4, r0 +/* 80398930 00395890 90 06 15 0C */ stw r0, 0x150c(r6) +/* 80398934 00395894 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 80398938 00395898 7C A0 1A 14 */ add r5, r0, r3 +/* 8039893C 0039589C 80 85 15 10 */ lwz r4, 0x1510(r5) +/* 80398940 003958A0 80 05 14 FC */ lwz r0, 0x14fc(r5) +/* 80398944 003958A4 7C 84 02 14 */ add r4, r4, r0 +/* 80398948 003958A8 54 80 04 3E */ clrlwi r0, r4, 0x10 +/* 8039894C 003958AC 90 05 15 10 */ stw r0, 0x1510(r5) +/* 80398950 003958B0 54 84 84 3E */ srwi r4, r4, 0x10 +/* 80398954 003958B4 80 0D AE 38 */ lwz r0, lbl_805A99F8@sda21(r13) +/* 80398958 003958B8 7C C0 1A 14 */ add r6, r0, r3 +/* 8039895C 003958BC 38 63 00 38 */ addi r3, r3, 0x38 +/* 80398960 003958C0 80 A6 15 14 */ lwz r5, 0x1514(r6) +/* 80398964 003958C4 80 06 15 00 */ lwz r0, 0x1500(r6) +/* 80398968 003958C8 7C 00 2A 14 */ add r0, r0, r5 +/* 8039896C 003958CC 7C 04 02 14 */ add r0, r4, r0 +/* 80398970 003958D0 90 06 15 14 */ stw r0, 0x1514(r6) +/* 80398974 003958D4 42 00 FF 08 */ bdnz lbl_8039887C +lbl_80398978: +/* 80398978 003958D8 28 1F 00 00 */ cmplwi r31, 0 +/* 8039897C 003958DC 40 82 01 30 */ bne lbl_80398AAC +/* 80398980 003958E0 28 18 00 00 */ cmplwi r24, 0 +/* 80398984 003958E4 40 82 01 28 */ bne lbl_80398AAC +/* 80398988 003958E8 80 7E 00 04 */ lwz r3, 4(r30) +/* 8039898C 003958EC 28 03 00 00 */ cmplwi r3, 0 +/* 80398990 003958F0 41 82 00 0C */ beq lbl_8039899C +/* 80398994 003958F4 93 A3 00 00 */ stw r29, 0(r3) +/* 80398998 003958F8 48 00 00 08 */ b lbl_803989A0 +lbl_8039899C: +/* 8039899C 003958FC 93 AD AE 44 */ stw r29, lbl_805A9A04@sda21(r13) +lbl_803989A0: +/* 803989A0 00395900 28 1D 00 00 */ cmplwi r29, 0 +/* 803989A4 00395904 41 82 00 0C */ beq lbl_803989B0 +/* 803989A8 00395908 80 1E 00 04 */ lwz r0, 4(r30) +/* 803989AC 0039590C 90 1D 00 04 */ stw r0, 4(r29) +lbl_803989B0: +/* 803989B0 00395910 80 BE 0E 64 */ lwz r5, 0xe64(r30) +/* 803989B4 00395914 38 80 00 00 */ li r4, 0 +/* 803989B8 00395918 28 05 00 00 */ cmplwi r5, 0 +/* 803989BC 0039591C 41 82 00 3C */ beq lbl_803989F8 +/* 803989C0 00395920 48 00 00 08 */ b lbl_803989C8 +lbl_803989C4: +/* 803989C4 00395924 7C 05 03 78 */ mr r5, r0 +lbl_803989C8: +/* 803989C8 00395928 80 05 00 00 */ lwz r0, 0(r5) +/* 803989CC 0039592C 28 00 00 00 */ cmplwi r0, 0 +/* 803989D0 00395930 40 82 FF F4 */ bne lbl_803989C4 +/* 803989D4 00395934 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 803989D8 00395938 28 00 00 00 */ cmplwi r0, 0 +/* 803989DC 0039593C 41 82 00 10 */ beq lbl_803989EC +/* 803989E0 00395940 90 05 00 00 */ stw r0, 0(r5) +/* 803989E4 00395944 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 803989E8 00395948 90 A3 00 04 */ stw r5, 4(r3) +lbl_803989EC: +/* 803989EC 0039594C 80 1E 0E 64 */ lwz r0, 0xe64(r30) +/* 803989F0 00395950 90 0D AE 34 */ stw r0, lbl_805A99F4@sda21(r13) +/* 803989F4 00395954 90 9E 0E 64 */ stw r4, 0xe64(r30) +lbl_803989F8: +/* 803989F8 00395958 80 BE 0E 68 */ lwz r5, 0xe68(r30) +/* 803989FC 0039595C 28 05 00 00 */ cmplwi r5, 0 +/* 80398A00 00395960 41 82 00 3C */ beq lbl_80398A3C +/* 80398A04 00395964 48 00 00 08 */ b lbl_80398A0C +lbl_80398A08: +/* 80398A08 00395968 7C 05 03 78 */ mr r5, r0 +lbl_80398A0C: +/* 80398A0C 0039596C 80 05 00 00 */ lwz r0, 0(r5) +/* 80398A10 00395970 28 00 00 00 */ cmplwi r0, 0 +/* 80398A14 00395974 40 82 FF F4 */ bne lbl_80398A08 +/* 80398A18 00395978 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80398A1C 0039597C 28 00 00 00 */ cmplwi r0, 0 +/* 80398A20 00395980 41 82 00 10 */ beq lbl_80398A30 +/* 80398A24 00395984 90 05 00 00 */ stw r0, 0(r5) +/* 80398A28 00395988 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80398A2C 0039598C 90 A3 00 04 */ stw r5, 4(r3) +lbl_80398A30: +/* 80398A30 00395990 80 1E 0E 68 */ lwz r0, 0xe68(r30) +/* 80398A34 00395994 90 0D AE 34 */ stw r0, lbl_805A99F4@sda21(r13) +/* 80398A38 00395998 90 9E 0E 68 */ stw r4, 0xe68(r30) +lbl_80398A3C: +/* 80398A3C 0039599C 80 9E 0E 6C */ lwz r4, 0xe6c(r30) +/* 80398A40 003959A0 28 04 00 00 */ cmplwi r4, 0 +/* 80398A44 003959A4 41 82 00 40 */ beq lbl_80398A84 +/* 80398A48 003959A8 48 00 00 08 */ b lbl_80398A50 +lbl_80398A4C: +/* 80398A4C 003959AC 7C 04 03 78 */ mr r4, r0 +lbl_80398A50: +/* 80398A50 003959B0 80 04 00 00 */ lwz r0, 0(r4) +/* 80398A54 003959B4 28 00 00 00 */ cmplwi r0, 0 +/* 80398A58 003959B8 40 82 FF F4 */ bne lbl_80398A4C +/* 80398A5C 003959BC 80 0D AE 34 */ lwz r0, lbl_805A99F4@sda21(r13) +/* 80398A60 003959C0 28 00 00 00 */ cmplwi r0, 0 +/* 80398A64 003959C4 41 82 00 10 */ beq lbl_80398A74 +/* 80398A68 003959C8 90 04 00 00 */ stw r0, 0(r4) +/* 80398A6C 003959CC 80 6D AE 34 */ lwz r3, lbl_805A99F4@sda21(r13) +/* 80398A70 003959D0 90 83 00 04 */ stw r4, 4(r3) +lbl_80398A74: +/* 80398A74 003959D4 80 7E 0E 6C */ lwz r3, 0xe6c(r30) +/* 80398A78 003959D8 38 00 00 00 */ li r0, 0 +/* 80398A7C 003959DC 90 6D AE 34 */ stw r3, lbl_805A99F4@sda21(r13) +/* 80398A80 003959E0 90 1E 0E 6C */ stw r0, 0xe6c(r30) +lbl_80398A84: +/* 80398A84 003959E4 38 00 00 00 */ li r0, 0 +/* 80398A88 003959E8 98 1E 00 08 */ stb r0, 8(r30) +/* 80398A8C 003959EC 90 1E 00 04 */ stw r0, 4(r30) +/* 80398A90 003959F0 80 0D AE 3C */ lwz r0, lbl_805A99FC@sda21(r13) +/* 80398A94 003959F4 28 00 00 00 */ cmplwi r0, 0 +/* 80398A98 003959F8 90 1E 00 00 */ stw r0, 0(r30) +/* 80398A9C 003959FC 41 82 00 0C */ beq lbl_80398AA8 +/* 80398AA0 00395A00 80 6D AE 3C */ lwz r3, lbl_805A99FC@sda21(r13) +/* 80398AA4 00395A04 93 C3 00 04 */ stw r30, 4(r3) +lbl_80398AA8: +/* 80398AA8 00395A08 93 CD AE 3C */ stw r30, lbl_805A99FC@sda21(r13) +lbl_80398AAC: +/* 80398AAC 00395A0C 7F BE EB 78 */ mr r30, r29 +lbl_80398AB0: +/* 80398AB0 00395A10 28 1E 00 00 */ cmplwi r30, 0 +/* 80398AB4 00395A14 40 82 F6 9C */ bne lbl_80398150 +lbl_80398AB8: +/* 80398AB8 00395A18 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0 +/* 80398ABC 00395A1C CB E1 00 90 */ lfd f31, 0x90(r1) +/* 80398AC0 00395A20 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0 +/* 80398AC4 00395A24 CB C1 00 80 */ lfd f30, 0x80(r1) +/* 80398AC8 00395A28 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0 +/* 80398ACC 00395A2C CB A1 00 70 */ lfd f29, 0x70(r1) +/* 80398AD0 00395A30 E3 81 00 68 */ psq_l f28, 104(r1), 0, qr0 +/* 80398AD4 00395A34 CB 81 00 60 */ lfd f28, 0x60(r1) +/* 80398AD8 00395A38 E3 61 00 58 */ psq_l f27, 88(r1), 0, qr0 +/* 80398ADC 00395A3C 39 61 00 50 */ addi r11, r1, 0x50 +/* 80398AE0 00395A40 CB 61 00 50 */ lfd f27, 0x50(r1) +/* 80398AE4 00395A44 4B FF 0F D9 */ bl _restgpr_24 +/* 80398AE8 00395A48 80 01 00 A4 */ lwz r0, 0xa4(r1) +/* 80398AEC 00395A4C 7C 08 03 A6 */ mtlr r0 +/* 80398AF0 00395A50 38 21 00 A0 */ addi r1, r1, 0xa0 +/* 80398AF4 00395A54 4E 80 00 20 */ blr + +.global seqInit +seqInit: +/* 80398AF8 00395A58 38 C0 00 00 */ li r6, 0 +/* 80398AFC 00395A5C 3C A0 80 54 */ lis r5, lbl_805439D0@ha +/* 80398B00 00395A60 3C 80 80 55 */ lis r4, lbl_8054FD10@ha +/* 80398B04 00395A64 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 80398B08 00395A68 38 00 00 08 */ li r0, 8 +/* 80398B0C 00395A6C 38 E5 39 D0 */ addi r7, r5, lbl_805439D0@l +/* 80398B10 00395A70 39 04 FD 10 */ addi r8, r4, lbl_8054FD10@l +/* 80398B14 00395A74 90 CD AE 44 */ stw r6, lbl_805A9A04@sda21(r13) +/* 80398B18 00395A78 38 63 FF FF */ addi r3, r3, 0x0000FFFF@l +/* 80398B1C 00395A7C 39 20 00 00 */ li r9, 0 +/* 80398B20 00395A80 90 CD AE 40 */ stw r6, lbl_805A9A00@sda21(r13) +/* 80398B24 00395A84 7C 09 03 A6 */ mtctr r0 +lbl_80398B28: +/* 80398B28 00395A88 28 09 00 00 */ cmplwi r9, 0 +/* 80398B2C 00395A8C 40 82 00 14 */ bne lbl_80398B40 +/* 80398B30 00395A90 38 00 00 00 */ li r0, 0 +/* 80398B34 00395A94 90 ED AE 3C */ stw r7, lbl_805A99FC@sda21(r13) +/* 80398B38 00395A98 90 07 00 04 */ stw r0, 4(r7) +/* 80398B3C 00395A9C 48 00 00 20 */ b lbl_80398B5C +lbl_80398B40: +/* 80398B40 00395AA0 38 09 FF FF */ addi r0, r9, -1 +/* 80398B44 00395AA4 3C 80 80 54 */ lis r4, lbl_805439D0@ha +/* 80398B48 00395AA8 1C A0 18 68 */ mulli r5, r0, 0x1868 +/* 80398B4C 00395AAC 90 E7 E7 98 */ stw r7, -0x1868(r7) +/* 80398B50 00395AB0 38 04 39 D0 */ addi r0, r4, lbl_805439D0@l +/* 80398B54 00395AB4 7C 00 2A 14 */ add r0, r0, r5 +/* 80398B58 00395AB8 90 07 00 04 */ stw r0, 4(r7) +lbl_80398B5C: +/* 80398B5C 00395ABC B0 68 00 00 */ sth r3, 0(r8) +/* 80398B60 00395AC0 38 C0 00 00 */ li r6, 0 +/* 80398B64 00395AC4 B0 68 00 02 */ sth r3, 2(r8) +/* 80398B68 00395AC8 B0 68 00 04 */ sth r3, 4(r8) +/* 80398B6C 00395ACC B0 68 00 06 */ sth r3, 6(r8) +/* 80398B70 00395AD0 B0 68 00 08 */ sth r3, 8(r8) +/* 80398B74 00395AD4 B0 68 00 0A */ sth r3, 0xa(r8) +/* 80398B78 00395AD8 B0 68 00 0C */ sth r3, 0xc(r8) +/* 80398B7C 00395ADC B0 68 00 0E */ sth r3, 0xe(r8) +/* 80398B80 00395AE0 B0 68 00 10 */ sth r3, 0x10(r8) +/* 80398B84 00395AE4 B0 68 00 12 */ sth r3, 0x12(r8) +/* 80398B88 00395AE8 B0 68 00 14 */ sth r3, 0x14(r8) +/* 80398B8C 00395AEC B0 68 00 16 */ sth r3, 0x16(r8) +/* 80398B90 00395AF0 B0 68 00 18 */ sth r3, 0x18(r8) +/* 80398B94 00395AF4 B0 68 00 1A */ sth r3, 0x1a(r8) +/* 80398B98 00395AF8 99 27 00 09 */ stb r9, 9(r7) +/* 80398B9C 00395AFC 39 29 00 01 */ addi r9, r9, 1 +/* 80398BA0 00395B00 B0 68 00 1C */ sth r3, 0x1c(r8) +/* 80398BA4 00395B04 98 C7 00 08 */ stb r6, 8(r7) +/* 80398BA8 00395B08 38 E7 18 68 */ addi r7, r7, 0x1868 +/* 80398BAC 00395B0C B0 68 00 1E */ sth r3, 0x1e(r8) +/* 80398BB0 00395B10 39 08 00 20 */ addi r8, r8, 0x20 +/* 80398BB4 00395B14 42 00 FF 74 */ bdnz lbl_80398B28 +/* 80398BB8 00395B18 1C 89 18 68 */ mulli r4, r9, 0x1868 +/* 80398BBC 00395B1C 3C A0 80 54 */ lis r5, lbl_805439D0@ha +/* 80398BC0 00395B20 3C 60 80 54 */ lis r3, lbl_805425D0@ha +/* 80398BC4 00395B24 38 A5 39 D0 */ addi r5, r5, lbl_805439D0@l +/* 80398BC8 00395B28 38 E3 25 D0 */ addi r7, r3, lbl_805425D0@l +/* 80398BCC 00395B2C 38 00 00 20 */ li r0, 0x20 +/* 80398BD0 00395B30 7C 65 22 14 */ add r3, r5, r4 +/* 80398BD4 00395B34 7C C4 33 78 */ mr r4, r6 +/* 80398BD8 00395B38 90 C3 E7 98 */ stw r6, -0x1868(r3) +/* 80398BDC 00395B3C 90 ED AE 34 */ stw r7, lbl_805A99F4@sda21(r13) +/* 80398BE0 00395B40 7C 09 03 A6 */ mtctr r0 +lbl_80398BE4: +/* 80398BE4 00395B44 28 06 00 00 */ cmplwi r6, 0 +/* 80398BE8 00395B48 90 C7 00 04 */ stw r6, 4(r7) +/* 80398BEC 00395B4C 41 82 00 08 */ beq lbl_80398BF4 +/* 80398BF0 00395B50 90 E6 00 00 */ stw r7, 0(r6) +lbl_80398BF4: +/* 80398BF4 00395B54 7C E6 3B 79 */ or. r6, r7, r7 +/* 80398BF8 00395B58 90 C7 00 18 */ stw r6, 0x18(r7) +/* 80398BFC 00395B5C 38 E7 00 14 */ addi r7, r7, 0x14 +/* 80398C00 00395B60 41 82 00 08 */ beq lbl_80398C08 +/* 80398C04 00395B64 90 E6 00 00 */ stw r7, 0(r6) +lbl_80398C08: +/* 80398C08 00395B68 7C E6 3B 79 */ or. r6, r7, r7 +/* 80398C0C 00395B6C 90 C7 00 18 */ stw r6, 0x18(r7) +/* 80398C10 00395B70 38 E7 00 14 */ addi r7, r7, 0x14 +/* 80398C14 00395B74 41 82 00 08 */ beq lbl_80398C1C +/* 80398C18 00395B78 90 E6 00 00 */ stw r7, 0(r6) +lbl_80398C1C: +/* 80398C1C 00395B7C 7C E6 3B 79 */ or. r6, r7, r7 +/* 80398C20 00395B80 90 C7 00 18 */ stw r6, 0x18(r7) +/* 80398C24 00395B84 38 E7 00 14 */ addi r7, r7, 0x14 +/* 80398C28 00395B88 41 82 00 08 */ beq lbl_80398C30 +/* 80398C2C 00395B8C 90 E6 00 00 */ stw r7, 0(r6) +lbl_80398C30: +/* 80398C30 00395B90 7C E6 3B 79 */ or. r6, r7, r7 +/* 80398C34 00395B94 90 C7 00 18 */ stw r6, 0x18(r7) +/* 80398C38 00395B98 38 E7 00 14 */ addi r7, r7, 0x14 +/* 80398C3C 00395B9C 41 82 00 08 */ beq lbl_80398C44 +/* 80398C40 00395BA0 90 E6 00 00 */ stw r7, 0(r6) +lbl_80398C44: +/* 80398C44 00395BA4 7C E6 3B 79 */ or. r6, r7, r7 +/* 80398C48 00395BA8 90 C7 00 18 */ stw r6, 0x18(r7) +/* 80398C4C 00395BAC 38 E7 00 14 */ addi r7, r7, 0x14 +/* 80398C50 00395BB0 41 82 00 08 */ beq lbl_80398C58 +/* 80398C54 00395BB4 90 E6 00 00 */ stw r7, 0(r6) +lbl_80398C58: +/* 80398C58 00395BB8 7C E6 3B 79 */ or. r6, r7, r7 +/* 80398C5C 00395BBC 90 C7 00 18 */ stw r6, 0x18(r7) +/* 80398C60 00395BC0 38 E7 00 14 */ addi r7, r7, 0x14 +/* 80398C64 00395BC4 41 82 00 08 */ beq lbl_80398C6C +/* 80398C68 00395BC8 90 E6 00 00 */ stw r7, 0(r6) +lbl_80398C6C: +/* 80398C6C 00395BCC 7C E6 3B 79 */ or. r6, r7, r7 +/* 80398C70 00395BD0 90 C7 00 18 */ stw r6, 0x18(r7) +/* 80398C74 00395BD4 38 E7 00 14 */ addi r7, r7, 0x14 +/* 80398C78 00395BD8 41 82 00 08 */ beq lbl_80398C80 +/* 80398C7C 00395BDC 90 E6 00 00 */ stw r7, 0(r6) +lbl_80398C80: +/* 80398C80 00395BE0 7C E6 3B 78 */ mr r6, r7 +/* 80398C84 00395BE4 38 E7 00 14 */ addi r7, r7, 0x14 +/* 80398C88 00395BE8 38 84 00 07 */ addi r4, r4, 7 +/* 80398C8C 00395BEC 42 00 FF 58 */ bdnz lbl_80398BE4 +/* 80398C90 00395BF0 38 00 00 00 */ li r0, 0 +/* 80398C94 00395BF4 90 06 00 00 */ stw r0, 0(r6) +/* 80398C98 00395BF8 90 0D AE 28 */ stw r0, lbl_805A99E8@sda21(r13) +/* 80398C9C 00395BFC 4E 80 00 20 */ blr diff --git a/asm/musyx/seq_api.s b/asm/musyx/seq_api.s new file mode 100644 index 00000000..c125d3c9 --- /dev/null +++ b/asm/musyx/seq_api.s @@ -0,0 +1,122 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sndSeqStop +sndSeqStop: +/* 8039BFFC 00398F5C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039C000 00398F60 7C 08 02 A6 */ mflr r0 +/* 8039C004 00398F64 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039C008 00398F68 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039C00C 00398F6C 7C 7F 1B 78 */ mr r31, r3 +/* 8039C010 00398F70 48 01 90 AD */ bl hwDisableIrq +/* 8039C014 00398F74 7F E3 FB 78 */ mr r3, r31 +/* 8039C018 00398F78 4B FF 9B 25 */ bl seqStop +/* 8039C01C 00398F7C 48 01 90 69 */ bl hwEnableIrq +/* 8039C020 00398F80 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039C024 00398F84 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039C028 00398F88 7C 08 03 A6 */ mtlr r0 +/* 8039C02C 00398F8C 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039C030 00398F90 4E 80 00 20 */ blr + +.global sndSeqSpeed +sndSeqSpeed: +/* 8039C034 00398F94 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039C038 00398F98 7C 08 02 A6 */ mflr r0 +/* 8039C03C 00398F9C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039C040 00398FA0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039C044 00398FA4 7C 9F 23 78 */ mr r31, r4 +/* 8039C048 00398FA8 93 C1 00 08 */ stw r30, 8(r1) +/* 8039C04C 00398FAC 7C 7E 1B 78 */ mr r30, r3 +/* 8039C050 00398FB0 48 01 90 6D */ bl hwDisableIrq +/* 8039C054 00398FB4 7F C3 F3 78 */ mr r3, r30 +/* 8039C058 00398FB8 7F E4 FB 78 */ mr r4, r31 +/* 8039C05C 00398FBC 4B FF 9E 21 */ bl seqSpeed +/* 8039C060 00398FC0 48 01 90 25 */ bl hwEnableIrq +/* 8039C064 00398FC4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039C068 00398FC8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039C06C 00398FCC 83 C1 00 08 */ lwz r30, 8(r1) +/* 8039C070 00398FD0 7C 08 03 A6 */ mtlr r0 +/* 8039C074 00398FD4 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039C078 00398FD8 4E 80 00 20 */ blr + +.global sndSeqContinue +sndSeqContinue: +/* 8039C07C 00398FDC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039C080 00398FE0 7C 08 02 A6 */ mflr r0 +/* 8039C084 00398FE4 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039C088 00398FE8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039C08C 00398FEC 7C 7F 1B 78 */ mr r31, r3 +/* 8039C090 00398FF0 48 01 90 2D */ bl hwDisableIrq +/* 8039C094 00398FF4 7F E3 FB 78 */ mr r3, r31 +/* 8039C098 00398FF8 4B FF 9E C9 */ bl seqContinue +/* 8039C09C 00398FFC 48 01 8F E9 */ bl hwEnableIrq +/* 8039C0A0 00399000 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039C0A4 00399004 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039C0A8 00399008 7C 08 03 A6 */ mtlr r0 +/* 8039C0AC 0039900C 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039C0B0 00399010 4E 80 00 20 */ blr + +.global sndSeqMute +sndSeqMute: +/* 8039C0B4 00399014 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C0B8 00399018 7C 08 02 A6 */ mflr r0 +/* 8039C0BC 0039901C 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C0C0 00399020 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039C0C4 00399024 7C BF 2B 78 */ mr r31, r5 +/* 8039C0C8 00399028 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039C0CC 0039902C 7C 9E 23 78 */ mr r30, r4 +/* 8039C0D0 00399030 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039C0D4 00399034 7C 7D 1B 78 */ mr r29, r3 +/* 8039C0D8 00399038 48 01 8F E5 */ bl hwDisableIrq +/* 8039C0DC 0039903C 7F A3 EB 78 */ mr r3, r29 +/* 8039C0E0 00399040 7F C4 F3 78 */ mr r4, r30 +/* 8039C0E4 00399044 7F E5 FB 78 */ mr r5, r31 +/* 8039C0E8 00399048 4B FF 9F 81 */ bl seqMute +/* 8039C0EC 0039904C 48 01 8F 99 */ bl hwEnableIrq +/* 8039C0F0 00399050 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C0F4 00399054 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039C0F8 00399058 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039C0FC 0039905C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039C100 00399060 7C 08 03 A6 */ mtlr r0 +/* 8039C104 00399064 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C108 00399068 4E 80 00 20 */ blr + +.global sndSeqVolume +sndSeqVolume: +/* 8039C10C 0039906C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C110 00399070 7C 08 02 A6 */ mflr r0 +/* 8039C114 00399074 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C118 00399078 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039C11C 0039907C 7C DF 33 78 */ mr r31, r6 +/* 8039C120 00399080 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039C124 00399084 7C BE 2B 78 */ mr r30, r5 +/* 8039C128 00399088 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039C12C 0039908C 7C 9D 23 78 */ mr r29, r4 +/* 8039C130 00399090 93 81 00 10 */ stw r28, 0x10(r1) +/* 8039C134 00399094 7C 7C 1B 78 */ mr r28, r3 +/* 8039C138 00399098 48 01 8F 85 */ bl hwDisableIrq +/* 8039C13C 0039909C 7F 83 E3 78 */ mr r3, r28 +/* 8039C140 003990A0 7F A4 EB 78 */ mr r4, r29 +/* 8039C144 003990A4 7F C5 F3 78 */ mr r5, r30 +/* 8039C148 003990A8 7F E6 FB 78 */ mr r6, r31 +/* 8039C14C 003990AC 4B FF 9F D9 */ bl seqVolume +/* 8039C150 003990B0 48 01 8F 35 */ bl hwEnableIrq +/* 8039C154 003990B4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C158 003990B8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039C15C 003990BC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039C160 003990C0 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039C164 003990C4 83 81 00 10 */ lwz r28, 0x10(r1) +/* 8039C168 003990C8 7C 08 03 A6 */ mtlr r0 +/* 8039C16C 003990CC 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C170 003990D0 4E 80 00 20 */ blr + +.global seqGetMIDIPriority +seqGetMIDIPriority: +/* 8039C174 003990D4 3C A0 80 55 */ lis r5, lbl_8054FD10@ha +/* 8039C178 003990D8 54 66 2C F4 */ rlwinm r6, r3, 5, 0x13, 0x1a +/* 8039C17C 003990DC 38 65 FD 10 */ addi r3, r5, lbl_8054FD10@l +/* 8039C180 003990E0 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e +/* 8039C184 003990E4 7C 63 32 14 */ add r3, r3, r6 +/* 8039C188 003990E8 7C 63 02 2E */ lhzx r3, r3, r0 +/* 8039C18C 003990EC 4E 80 00 20 */ blr diff --git a/asm/musyx/snd3d.s b/asm/musyx/snd3d.s new file mode 100644 index 00000000..a7cad2c8 --- /dev/null +++ b/asm/musyx/snd3d.s @@ -0,0 +1,2569 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sub_803ae800 +sub_803ae800: +/* 803AE800 003AB760 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803AE804 003AB764 7C 08 02 A6 */ mflr r0 +/* 803AE808 003AB768 90 01 00 44 */ stw r0, 0x44(r1) +/* 803AE80C 003AB76C DB E1 00 30 */ stfd f31, 0x30(r1) +/* 803AE810 003AB770 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0 +/* 803AE814 003AB774 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AE818 003AB778 4B FD B2 61 */ bl func_80389A78 +/* 803AE81C 003AB77C 80 8D AF 74 */ lwz r4, lbl_805A9B34@sda21(r13) +/* 803AE820 003AB780 38 60 00 00 */ li r3, 0 +/* 803AE824 003AB784 48 00 00 0C */ b lbl_803AE830 +lbl_803AE828: +/* 803AE828 003AB788 80 84 00 00 */ lwz r4, 0(r4) +/* 803AE82C 003AB78C 38 63 00 01 */ addi r3, r3, 1 +lbl_803AE830: +/* 803AE830 003AB790 28 04 00 00 */ cmplwi r4, 0 +/* 803AE834 003AB794 40 82 FF F4 */ bne lbl_803AE828 +/* 803AE838 003AB798 28 03 00 00 */ cmplwi r3, 0 +/* 803AE83C 003AB79C 41 82 00 98 */ beq lbl_803AE8D4 +/* 803AE840 003AB7A0 80 8D AF 70 */ lwz r4, lbl_805A9B30@sda21(r13) +/* 803AE844 003AB7A4 48 00 00 88 */ b lbl_803AE8CC +lbl_803AE848: +/* 803AE848 003AB7A8 88 04 00 1C */ lbz r0, 0x1c(r4) +/* 803AE84C 003AB7AC 28 00 00 FF */ cmplwi r0, 0xff +/* 803AE850 003AB7B0 41 82 00 78 */ beq lbl_803AE8C8 +/* 803AE854 003AB7B4 C0 82 D6 08 */ lfs f4, lbl_805AF328@sda21(r2) +/* 803AE858 003AB7B8 80 AD AF 74 */ lwz r5, lbl_805A9B34@sda21(r13) +/* 803AE85C 003AB7BC 48 00 00 44 */ b lbl_803AE8A0 +lbl_803AE860: +/* 803AE860 003AB7C0 C0 64 00 0C */ lfs f3, 0xc(r4) +/* 803AE864 003AB7C4 C0 05 00 10 */ lfs f0, 0x10(r5) +/* 803AE868 003AB7C8 C0 44 00 10 */ lfs f2, 0x10(r4) +/* 803AE86C 003AB7CC C0 25 00 14 */ lfs f1, 0x14(r5) +/* 803AE870 003AB7D0 EC 63 00 28 */ fsubs f3, f3, f0 +/* 803AE874 003AB7D4 C0 05 00 18 */ lfs f0, 0x18(r5) +/* 803AE878 003AB7D8 EC A2 08 28 */ fsubs f5, f2, f1 +/* 803AE87C 003AB7DC C0 44 00 14 */ lfs f2, 0x14(r4) +/* 803AE880 003AB7E0 EC 23 00 F2 */ fmuls f1, f3, f3 +/* 803AE884 003AB7E4 80 A5 00 00 */ lwz r5, 0(r5) +/* 803AE888 003AB7E8 EC 42 00 28 */ fsubs f2, f2, f0 +/* 803AE88C 003AB7EC EC 05 01 72 */ fmuls f0, f5, f5 +/* 803AE890 003AB7F0 EC 42 00 B2 */ fmuls f2, f2, f2 +/* 803AE894 003AB7F4 EC 01 00 2A */ fadds f0, f1, f0 +/* 803AE898 003AB7F8 EC 02 00 2A */ fadds f0, f2, f0 +/* 803AE89C 003AB7FC EC 84 00 2A */ fadds f4, f4, f0 +lbl_803AE8A0: +/* 803AE8A0 003AB800 28 05 00 00 */ cmplwi r5, 0 +/* 803AE8A4 003AB804 40 82 FF BC */ bne lbl_803AE860 +/* 803AE8A8 003AB808 3C 00 43 30 */ lis r0, 0x4330 +/* 803AE8AC 003AB80C 90 61 00 0C */ stw r3, 0xc(r1) +/* 803AE8B0 003AB810 C8 22 D6 10 */ lfd f1, lbl_805AF330@sda21(r2) +/* 803AE8B4 003AB814 90 01 00 08 */ stw r0, 8(r1) +/* 803AE8B8 003AB818 C8 01 00 08 */ lfd f0, 8(r1) +/* 803AE8BC 003AB81C EC 00 08 28 */ fsubs f0, f0, f1 +/* 803AE8C0 003AB820 EC 04 00 24 */ fdivs f0, f4, f0 +/* 803AE8C4 003AB824 D0 04 00 18 */ stfs f0, 0x18(r4) +lbl_803AE8C8: +/* 803AE8C8 003AB828 80 84 00 00 */ lwz r4, 0(r4) +lbl_803AE8CC: +/* 803AE8CC 003AB82C 28 04 00 00 */ cmplwi r4, 0 +/* 803AE8D0 003AB830 40 82 FF 78 */ bne lbl_803AE848 +lbl_803AE8D4: +/* 803AE8D4 003AB834 80 6D AF 74 */ lwz r3, lbl_805A9B34@sda21(r13) +/* 803AE8D8 003AB838 3B A0 00 00 */ li r29, 0 +/* 803AE8DC 003AB83C 48 00 00 0C */ b lbl_803AE8E8 +lbl_803AE8E0: +/* 803AE8E0 003AB840 80 63 00 00 */ lwz r3, 0(r3) +/* 803AE8E4 003AB844 3B BD 00 01 */ addi r29, r29, 1 +lbl_803AE8E8: +/* 803AE8E8 003AB848 28 03 00 00 */ cmplwi r3, 0 +/* 803AE8EC 003AB84C 40 82 FF F4 */ bne lbl_803AE8E0 +/* 803AE8F0 003AB850 28 1D 00 00 */ cmplwi r29, 0 +/* 803AE8F4 003AB854 41 82 03 A0 */ beq lbl_803AEC94 +/* 803AE8F8 003AB858 83 CD AF 70 */ lwz r30, lbl_805A9B30@sda21(r13) +/* 803AE8FC 003AB85C 48 00 03 90 */ b lbl_803AEC8C +lbl_803AE900: +/* 803AE900 003AB860 88 1E 00 1C */ lbz r0, 0x1c(r30) +/* 803AE904 003AB864 28 00 00 FF */ cmplwi r0, 0xff +/* 803AE908 003AB868 40 82 02 60 */ bne lbl_803AEB68 +/* 803AE90C 003AB86C 80 6D AF 74 */ lwz r3, lbl_805A9B34@sda21(r13) +/* 803AE910 003AB870 C3 E2 D6 08 */ lfs f31, lbl_805AF328@sda21(r2) +/* 803AE914 003AB874 7C 64 1B 78 */ mr r4, r3 +/* 803AE918 003AB878 48 00 00 44 */ b lbl_803AE95C +lbl_803AE91C: +/* 803AE91C 003AB87C C0 7E 00 0C */ lfs f3, 0xc(r30) +/* 803AE920 003AB880 C0 04 00 10 */ lfs f0, 0x10(r4) +/* 803AE924 003AB884 C0 5E 00 10 */ lfs f2, 0x10(r30) +/* 803AE928 003AB888 C0 24 00 14 */ lfs f1, 0x14(r4) +/* 803AE92C 003AB88C EC 63 00 28 */ fsubs f3, f3, f0 +/* 803AE930 003AB890 C0 04 00 18 */ lfs f0, 0x18(r4) +/* 803AE934 003AB894 EC 82 08 28 */ fsubs f4, f2, f1 +/* 803AE938 003AB898 C0 5E 00 14 */ lfs f2, 0x14(r30) +/* 803AE93C 003AB89C EC 23 00 F2 */ fmuls f1, f3, f3 +/* 803AE940 003AB8A0 80 84 00 00 */ lwz r4, 0(r4) +/* 803AE944 003AB8A4 EC 42 00 28 */ fsubs f2, f2, f0 +/* 803AE948 003AB8A8 EC 04 01 32 */ fmuls f0, f4, f4 +/* 803AE94C 003AB8AC EC 42 00 B2 */ fmuls f2, f2, f2 +/* 803AE950 003AB8B0 EC 01 00 2A */ fadds f0, f1, f0 +/* 803AE954 003AB8B4 EC 02 00 2A */ fadds f0, f2, f0 +/* 803AE958 003AB8B8 EF FF 00 2A */ fadds f31, f31, f0 +lbl_803AE95C: +/* 803AE95C 003AB8BC 28 04 00 00 */ cmplwi r4, 0 +/* 803AE960 003AB8C0 40 82 FF BC */ bne lbl_803AE91C +/* 803AE964 003AB8C4 3C 00 43 30 */ lis r0, 0x4330 +/* 803AE968 003AB8C8 93 A1 00 0C */ stw r29, 0xc(r1) +/* 803AE96C 003AB8CC C8 22 D6 10 */ lfd f1, lbl_805AF330@sda21(r2) +/* 803AE970 003AB8D0 3B 80 00 00 */ li r28, 0 +/* 803AE974 003AB8D4 90 01 00 08 */ stw r0, 8(r1) +/* 803AE978 003AB8D8 C8 01 00 08 */ lfd f0, 8(r1) +/* 803AE97C 003AB8DC EC 00 08 28 */ fsubs f0, f0, f1 +/* 803AE980 003AB8E0 EF FF 00 24 */ fdivs f31, f31, f0 +/* 803AE984 003AB8E4 48 00 00 1C */ b lbl_803AE9A0 +lbl_803AE988: +/* 803AE988 003AB8E8 80 03 00 08 */ lwz r0, 8(r3) +/* 803AE98C 003AB8EC 7C 00 F0 40 */ cmplw r0, r30 +/* 803AE990 003AB8F0 40 82 00 0C */ bne lbl_803AE99C +/* 803AE994 003AB8F4 3B 80 00 01 */ li r28, 1 +/* 803AE998 003AB8F8 48 00 00 10 */ b lbl_803AE9A8 +lbl_803AE99C: +/* 803AE99C 003AB8FC 80 63 00 00 */ lwz r3, 0(r3) +lbl_803AE9A0: +/* 803AE9A0 003AB900 28 03 00 00 */ cmplwi r3, 0 +/* 803AE9A4 003AB904 40 82 FF E4 */ bne lbl_803AE988 +lbl_803AE9A8: +/* 803AE9A8 003AB908 88 AD AF 64 */ lbz r5, lbl_805A9B24@sda21(r13) +/* 803AE9AC 003AB90C 38 00 FF FF */ li r0, -1 +/* 803AE9B0 003AB910 80 8D AF 68 */ lwz r4, lbl_805A9B28@sda21(r13) +/* 803AE9B4 003AB914 7C 00 28 30 */ slw r0, r0, r5 +/* 803AE9B8 003AB918 7C 03 00 F8 */ nor r3, r0, r0 +/* 803AE9BC 003AB91C 7C 60 20 38 */ and r0, r3, r4 +/* 803AE9C0 003AB920 7C 03 00 40 */ cmplw r3, r0 +/* 803AE9C4 003AB924 41 82 00 50 */ beq lbl_803AEA14 +/* 803AE9C8 003AB928 38 C0 00 00 */ li r6, 0 +/* 803AE9CC 003AB92C 38 60 00 01 */ li r3, 1 +/* 803AE9D0 003AB930 7C A9 03 A6 */ mtctr r5 +/* 803AE9D4 003AB934 28 05 00 00 */ cmplwi r5, 0 +/* 803AE9D8 003AB938 40 81 00 18 */ ble lbl_803AE9F0 +lbl_803AE9DC: +/* 803AE9DC 003AB93C 7C 60 30 30 */ slw r0, r3, r6 +/* 803AE9E0 003AB940 7C 80 00 39 */ and. r0, r4, r0 +/* 803AE9E4 003AB944 41 82 00 0C */ beq lbl_803AE9F0 +/* 803AE9E8 003AB948 38 C6 00 01 */ addi r6, r6, 1 +/* 803AE9EC 003AB94C 42 00 FF F0 */ bdnz lbl_803AE9DC +lbl_803AE9F0: +/* 803AE9F0 003AB950 38 00 00 01 */ li r0, 1 +/* 803AE9F4 003AB954 80 8D AF 68 */ lwz r4, lbl_805A9B28@sda21(r13) +/* 803AE9F8 003AB958 7C 03 30 30 */ slw r3, r0, r6 +/* 803AE9FC 003AB95C 88 0D AF 65 */ lbz r0, lbl_805A9B25@sda21(r13) +/* 803AEA00 003AB960 7C 83 1B 78 */ or r3, r4, r3 +/* 803AEA04 003AB964 90 6D AF 68 */ stw r3, lbl_805A9B28@sda21(r13) +/* 803AEA08 003AB968 7C 06 02 14 */ add r0, r6, r0 +/* 803AEA0C 003AB96C 98 1E 00 1C */ stb r0, 0x1c(r30) +/* 803AEA10 003AB970 48 00 00 C0 */ b lbl_803AEAD0 +lbl_803AEA14: +/* 803AEA14 003AB974 C0 22 D6 18 */ lfs f1, lbl_805AF338@sda21(r2) +/* 803AEA18 003AB978 80 6D AF 70 */ lwz r3, lbl_805A9B30@sda21(r13) +/* 803AEA1C 003AB97C 48 00 00 28 */ b lbl_803AEA44 +lbl_803AEA20: +/* 803AEA20 003AB980 88 03 00 1C */ lbz r0, 0x1c(r3) +/* 803AEA24 003AB984 28 00 00 FF */ cmplwi r0, 0xff +/* 803AEA28 003AB988 41 82 00 18 */ beq lbl_803AEA40 +/* 803AEA2C 003AB98C C0 03 00 18 */ lfs f0, 0x18(r3) +/* 803AEA30 003AB990 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803AEA34 003AB994 40 80 00 0C */ bge lbl_803AEA40 +/* 803AEA38 003AB998 FC 20 00 90 */ fmr f1, f0 +/* 803AEA3C 003AB99C 7C 7F 1B 78 */ mr r31, r3 +lbl_803AEA40: +/* 803AEA40 003AB9A0 80 63 00 00 */ lwz r3, 0(r3) +lbl_803AEA44: +/* 803AEA44 003AB9A4 28 03 00 00 */ cmplwi r3, 0 +/* 803AEA48 003AB9A8 40 82 FF D8 */ bne lbl_803AEA20 +/* 803AEA4C 003AB9AC 57 80 06 3F */ clrlwi. r0, r28, 0x18 +/* 803AEA50 003AB9B0 40 82 00 0C */ bne lbl_803AEA5C +/* 803AEA54 003AB9B4 FC 01 F8 40 */ fcmpo cr0, f1, f31 +/* 803AEA58 003AB9B8 40 81 02 30 */ ble lbl_803AEC88 +lbl_803AEA5C: +/* 803AEA5C 003AB9BC 83 4D AF 78 */ lwz r26, lbl_805A9B38@sda21(r13) +/* 803AEA60 003AB9C0 3B 60 FF FF */ li r27, -1 +/* 803AEA64 003AB9C4 48 00 00 2C */ b lbl_803AEA90 +lbl_803AEA68: +/* 803AEA68 003AB9C8 80 1A 00 08 */ lwz r0, 8(r26) +/* 803AEA6C 003AB9CC 7C 00 F8 40 */ cmplw r0, r31 +/* 803AEA70 003AB9D0 40 82 00 1C */ bne lbl_803AEA8C +/* 803AEA74 003AB9D4 80 7A 00 3C */ lwz r3, 0x3c(r26) +/* 803AEA78 003AB9D8 4B FE C8 E9 */ bl synthSendKeyOff +/* 803AEA7C 003AB9DC 80 1A 00 10 */ lwz r0, 0x10(r26) +/* 803AEA80 003AB9E0 64 00 00 08 */ oris r0, r0, 8 +/* 803AEA84 003AB9E4 90 1A 00 10 */ stw r0, 0x10(r26) +/* 803AEA88 003AB9E8 93 7A 00 3C */ stw r27, 0x3c(r26) +lbl_803AEA8C: +/* 803AEA8C 003AB9EC 83 5A 00 00 */ lwz r26, 0(r26) +lbl_803AEA90: +/* 803AEA90 003AB9F0 28 1A 00 00 */ cmplwi r26, 0 +/* 803AEA94 003AB9F4 40 82 FF D4 */ bne lbl_803AEA68 +/* 803AEA98 003AB9F8 81 9F 00 24 */ lwz r12, 0x24(r31) +/* 803AEA9C 003AB9FC 28 0C 00 00 */ cmplwi r12, 0 +/* 803AEAA0 003ABA00 41 82 00 10 */ beq lbl_803AEAB0 +/* 803AEAA4 003ABA04 88 7F 00 1C */ lbz r3, 0x1c(r31) +/* 803AEAA8 003ABA08 7D 89 03 A6 */ mtctr r12 +/* 803AEAAC 003ABA0C 4E 80 04 21 */ bctrl +lbl_803AEAB0: +/* 803AEAB0 003ABA10 88 7F 00 1C */ lbz r3, 0x1c(r31) +/* 803AEAB4 003ABA14 4B FE DC 81 */ bl sub_8039c734 +/* 803AEAB8 003ABA18 88 9F 00 1C */ lbz r4, 0x1c(r31) +/* 803AEABC 003ABA1C 38 60 00 FF */ li r3, 0xff +/* 803AEAC0 003ABA20 38 00 00 00 */ li r0, 0 +/* 803AEAC4 003ABA24 98 9E 00 1C */ stb r4, 0x1c(r30) +/* 803AEAC8 003ABA28 98 7F 00 1C */ stb r3, 0x1c(r31) +/* 803AEACC 003ABA2C 90 1F 00 08 */ stw r0, 8(r31) +lbl_803AEAD0: +/* 803AEAD0 003ABA30 57 84 06 3E */ clrlwi r4, r28, 0x18 +/* 803AEAD4 003ABA34 3C 00 43 30 */ lis r0, 0x4330 +/* 803AEAD8 003ABA38 7C 64 00 D0 */ neg r3, r4 +/* 803AEADC 003ABA3C D3 FE 00 18 */ stfs f31, 0x18(r30) +/* 803AEAE0 003ABA40 7C 64 23 78 */ or r4, r3, r4 +/* 803AEAE4 003ABA44 3C 60 00 7F */ lis r3, 0x7f +/* 803AEAE8 003ABA48 7C 84 FE 70 */ srawi r4, r4, 0x1f +/* 803AEAEC 003ABA4C 90 01 00 08 */ stw r0, 8(r1) +/* 803AEAF0 003ABA50 7C 60 20 38 */ and r0, r3, r4 +/* 803AEAF4 003ABA54 C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2) +/* 803AEAF8 003ABA58 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803AEAFC 003ABA5C C0 62 D6 1C */ lfs f3, lbl_805AF33C@sda21(r2) +/* 803AEB00 003ABA60 80 1E 00 2C */ lwz r0, 0x2c(r30) +/* 803AEB04 003ABA64 C8 02 D6 20 */ lfd f0, lbl_805AF340@sda21(r2) +/* 803AEB08 003ABA68 90 01 00 0C */ stw r0, 0xc(r1) +/* 803AEB0C 003ABA6C C8 21 00 08 */ lfd f1, 8(r1) +/* 803AEB10 003ABA70 EC 21 10 28 */ fsubs f1, f1, f2 +/* 803AEB14 003ABA74 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803AEB18 003ABA78 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803AEB1C 003ABA7C 4C 41 13 82 */ cror 2, 1, 2 +/* 803AEB20 003ABA80 40 82 00 18 */ bne lbl_803AEB38 +/* 803AEB24 003ABA84 88 7E 00 1C */ lbz r3, 0x1c(r30) +/* 803AEB28 003ABA88 38 80 00 01 */ li r4, 1 +/* 803AEB2C 003ABA8C 38 A0 00 00 */ li r5, 0 +/* 803AEB30 003ABA90 4B FE DB 5D */ bl sub_8039c68c +/* 803AEB34 003ABA94 48 00 00 14 */ b lbl_803AEB48 +lbl_803AEB38: +/* 803AEB38 003ABA98 88 7E 00 1C */ lbz r3, 0x1c(r30) +/* 803AEB3C 003ABA9C 38 80 00 00 */ li r4, 0 +/* 803AEB40 003ABAA0 38 A0 00 00 */ li r5, 0 +/* 803AEB44 003ABAA4 4B FE DB 49 */ bl sub_8039c68c +lbl_803AEB48: +/* 803AEB48 003ABAA8 81 9E 00 20 */ lwz r12, 0x20(r30) +/* 803AEB4C 003ABAAC 28 0C 00 00 */ cmplwi r12, 0 +/* 803AEB50 003ABAB0 41 82 01 38 */ beq lbl_803AEC88 +/* 803AEB54 003ABAB4 88 7E 00 1C */ lbz r3, 0x1c(r30) +/* 803AEB58 003ABAB8 80 9E 00 28 */ lwz r4, 0x28(r30) +/* 803AEB5C 003ABABC 7D 89 03 A6 */ mtctr r12 +/* 803AEB60 003ABAC0 4E 80 04 21 */ bctrl +/* 803AEB64 003ABAC4 48 00 01 24 */ b lbl_803AEC88 +lbl_803AEB68: +/* 803AEB68 003ABAC8 80 1E 00 08 */ lwz r0, 8(r30) +/* 803AEB6C 003ABACC 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 +/* 803AEB70 003ABAD0 41 82 00 88 */ beq lbl_803AEBF8 +/* 803AEB74 003ABAD4 80 7E 00 2C */ lwz r3, 0x2c(r30) +/* 803AEB78 003ABAD8 3C 00 00 7F */ lis r0, 0x7f +/* 803AEB7C 003ABADC 3C 63 00 04 */ addis r3, r3, 4 +/* 803AEB80 003ABAE0 90 7E 00 2C */ stw r3, 0x2c(r30) +/* 803AEB84 003ABAE4 80 7E 00 2C */ lwz r3, 0x2c(r30) +/* 803AEB88 003ABAE8 7C 03 00 40 */ cmplw r3, r0 +/* 803AEB8C 003ABAEC 41 80 00 14 */ blt lbl_803AEBA0 +/* 803AEB90 003ABAF0 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803AEB94 003ABAF4 80 1E 00 08 */ lwz r0, 8(r30) +/* 803AEB98 003ABAF8 54 00 00 7E */ clrlwi r0, r0, 1 +/* 803AEB9C 003ABAFC 90 1E 00 08 */ stw r0, 8(r30) +lbl_803AEBA0: +/* 803AEBA0 003ABB00 80 7E 00 2C */ lwz r3, 0x2c(r30) +/* 803AEBA4 003ABB04 3C 00 43 30 */ lis r0, 0x4330 +/* 803AEBA8 003ABB08 90 01 00 08 */ stw r0, 8(r1) +/* 803AEBAC 003ABB0C C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2) +/* 803AEBB0 003ABB10 90 61 00 0C */ stw r3, 0xc(r1) +/* 803AEBB4 003ABB14 C0 62 D6 1C */ lfs f3, lbl_805AF33C@sda21(r2) +/* 803AEBB8 003ABB18 C8 21 00 08 */ lfd f1, 8(r1) +/* 803AEBBC 003ABB1C C8 02 D6 20 */ lfd f0, lbl_805AF340@sda21(r2) +/* 803AEBC0 003ABB20 EC 21 10 28 */ fsubs f1, f1, f2 +/* 803AEBC4 003ABB24 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803AEBC8 003ABB28 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803AEBCC 003ABB2C 4C 41 13 82 */ cror 2, 1, 2 +/* 803AEBD0 003ABB30 40 82 00 18 */ bne lbl_803AEBE8 +/* 803AEBD4 003ABB34 88 7E 00 1C */ lbz r3, 0x1c(r30) +/* 803AEBD8 003ABB38 38 80 00 01 */ li r4, 1 +/* 803AEBDC 003ABB3C 38 A0 00 00 */ li r5, 0 +/* 803AEBE0 003ABB40 4B FE DA AD */ bl sub_8039c68c +/* 803AEBE4 003ABB44 48 00 00 14 */ b lbl_803AEBF8 +lbl_803AEBE8: +/* 803AEBE8 003ABB48 88 7E 00 1C */ lbz r3, 0x1c(r30) +/* 803AEBEC 003ABB4C 38 80 00 00 */ li r4, 0 +/* 803AEBF0 003ABB50 38 A0 00 00 */ li r5, 0 +/* 803AEBF4 003ABB54 4B FE DA 99 */ bl sub_8039c68c +lbl_803AEBF8: +/* 803AEBF8 003ABB58 80 1E 00 08 */ lwz r0, 8(r30) +/* 803AEBFC 003ABB5C 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1 +/* 803AEC00 003ABB60 41 82 00 88 */ beq lbl_803AEC88 +/* 803AEC04 003ABB64 80 7E 00 2C */ lwz r3, 0x2c(r30) +/* 803AEC08 003ABB68 3C 03 FF FC */ addis r0, r3, 0xfffc +/* 803AEC0C 003ABB6C 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803AEC10 003ABB70 80 1E 00 2C */ lwz r0, 0x2c(r30) +/* 803AEC14 003ABB74 2C 00 00 00 */ cmpwi r0, 0 +/* 803AEC18 003ABB78 41 80 00 18 */ blt lbl_803AEC30 +/* 803AEC1C 003ABB7C 38 00 00 00 */ li r0, 0 +/* 803AEC20 003ABB80 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 803AEC24 003ABB84 80 1E 00 08 */ lwz r0, 8(r30) +/* 803AEC28 003ABB88 54 00 00 80 */ rlwinm r0, r0, 0, 2, 0 +/* 803AEC2C 003ABB8C 90 1E 00 08 */ stw r0, 8(r30) +lbl_803AEC30: +/* 803AEC30 003ABB90 80 7E 00 2C */ lwz r3, 0x2c(r30) +/* 803AEC34 003ABB94 3C 00 43 30 */ lis r0, 0x4330 +/* 803AEC38 003ABB98 90 01 00 08 */ stw r0, 8(r1) +/* 803AEC3C 003ABB9C C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2) +/* 803AEC40 003ABBA0 90 61 00 0C */ stw r3, 0xc(r1) +/* 803AEC44 003ABBA4 C0 62 D6 1C */ lfs f3, lbl_805AF33C@sda21(r2) +/* 803AEC48 003ABBA8 C8 21 00 08 */ lfd f1, 8(r1) +/* 803AEC4C 003ABBAC C8 02 D6 20 */ lfd f0, lbl_805AF340@sda21(r2) +/* 803AEC50 003ABBB0 EC 21 10 28 */ fsubs f1, f1, f2 +/* 803AEC54 003ABBB4 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803AEC58 003ABBB8 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803AEC5C 003ABBBC 4C 41 13 82 */ cror 2, 1, 2 +/* 803AEC60 003ABBC0 40 82 00 18 */ bne lbl_803AEC78 +/* 803AEC64 003ABBC4 88 7E 00 1C */ lbz r3, 0x1c(r30) +/* 803AEC68 003ABBC8 38 80 00 01 */ li r4, 1 +/* 803AEC6C 003ABBCC 38 A0 00 00 */ li r5, 0 +/* 803AEC70 003ABBD0 4B FE DA 1D */ bl sub_8039c68c +/* 803AEC74 003ABBD4 48 00 00 14 */ b lbl_803AEC88 +lbl_803AEC78: +/* 803AEC78 003ABBD8 88 7E 00 1C */ lbz r3, 0x1c(r30) +/* 803AEC7C 003ABBDC 38 80 00 00 */ li r4, 0 +/* 803AEC80 003ABBE0 38 A0 00 00 */ li r5, 0 +/* 803AEC84 003ABBE4 4B FE DA 09 */ bl sub_8039c68c +lbl_803AEC88: +/* 803AEC88 003ABBE8 83 DE 00 00 */ lwz r30, 0(r30) +lbl_803AEC8C: +/* 803AEC8C 003ABBEC 28 1E 00 00 */ cmplwi r30, 0 +/* 803AEC90 003ABBF0 40 82 FC 70 */ bne lbl_803AE900 +lbl_803AEC94: +/* 803AEC94 003ABBF4 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0 +/* 803AEC98 003ABBF8 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AEC9C 003ABBFC CB E1 00 30 */ lfd f31, 0x30(r1) +/* 803AECA0 003ABC00 4B FD AE 25 */ bl _restgpr_26 +/* 803AECA4 003ABC04 80 01 00 44 */ lwz r0, 0x44(r1) +/* 803AECA8 003ABC08 7C 08 03 A6 */ mtlr r0 +/* 803AECAC 003ABC0C 38 21 00 40 */ addi r1, r1, 0x40 +/* 803AECB0 003ABC10 4E 80 00 20 */ blr + +.global CalcEmitter +CalcEmitter: +/* 803AECB4 003ABC14 94 21 FF 60 */ stwu r1, -0xa0(r1) +/* 803AECB8 003ABC18 7C 08 02 A6 */ mflr r0 +/* 803AECBC 003ABC1C 90 01 00 A4 */ stw r0, 0xa4(r1) +/* 803AECC0 003ABC20 DB E1 00 90 */ stfd f31, 0x90(r1) +/* 803AECC4 003ABC24 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0 +/* 803AECC8 003ABC28 DB C1 00 80 */ stfd f30, 0x80(r1) +/* 803AECCC 003ABC2C F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0 +/* 803AECD0 003ABC30 DB A1 00 70 */ stfd f29, 0x70(r1) +/* 803AECD4 003ABC34 F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0 +/* 803AECD8 003ABC38 DB 81 00 60 */ stfd f28, 0x60(r1) +/* 803AECDC 003ABC3C F3 81 00 68 */ psq_st f28, 104(r1), 0, qr0 +/* 803AECE0 003ABC40 39 61 00 60 */ addi r11, r1, 0x60 +/* 803AECE4 003ABC44 4B FD AD 8D */ bl func_80389A70 +/* 803AECE8 003ABC48 C3 E2 D6 08 */ lfs f31, lbl_805AF328@sda21(r2) +/* 803AECEC 003ABC4C 7C 99 23 78 */ mr r25, r4 +/* 803AECF0 003ABC50 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803AECF4 003ABC54 7C BA 2B 78 */ mr r26, r5 +/* 803AECF8 003ABC58 D3 E4 00 00 */ stfs f31, 0(r4) +/* 803AECFC 003ABC5C FF C0 F8 90 */ fmr f30, f31 +/* 803AED00 003ABC60 FF A0 F8 90 */ fmr f29, f31 +/* 803AED04 003ABC64 7C 78 1B 78 */ mr r24, r3 +/* 803AED08 003ABC68 D0 05 00 00 */ stfs f0, 0(r5) +/* 803AED0C 003ABC6C FF 80 F8 90 */ fmr f28, f31 +/* 803AED10 003ABC70 7C DB 33 78 */ mr r27, r6 +/* 803AED14 003ABC74 83 ED AF 74 */ lwz r31, lbl_805A9B34@sda21(r13) +/* 803AED18 003ABC78 7C FC 3B 78 */ mr r28, r7 +/* 803AED1C 003ABC7C 7D 1D 43 78 */ mr r29, r8 +/* 803AED20 003ABC80 3B C0 00 00 */ li r30, 0 +/* 803AED24 003ABC84 48 00 04 14 */ b lbl_803AF138 +lbl_803AED28: +/* 803AED28 003ABC88 C0 5F 00 2C */ lfs f2, 0x2c(r31) +/* 803AED2C 003ABC8C C0 DF 00 1C */ lfs f6, 0x1c(r31) +/* 803AED30 003ABC90 C0 3F 00 30 */ lfs f1, 0x30(r31) +/* 803AED34 003ABC94 C0 1F 00 34 */ lfs f0, 0x34(r31) +/* 803AED38 003ABC98 EC 82 01 B2 */ fmuls f4, f2, f6 +/* 803AED3C 003ABC9C C0 BF 00 10 */ lfs f5, 0x10(r31) +/* 803AED40 003ABCA0 EC 41 01 B2 */ fmuls f2, f1, f6 +/* 803AED44 003ABCA4 C0 7F 00 14 */ lfs f3, 0x14(r31) +/* 803AED48 003ABCA8 EC 00 01 B2 */ fmuls f0, f0, f6 +/* 803AED4C 003ABCAC C0 3F 00 18 */ lfs f1, 0x18(r31) +/* 803AED50 003ABCB0 EC 85 20 2A */ fadds f4, f5, f4 +/* 803AED54 003ABCB4 C0 B8 00 14 */ lfs f5, 0x14(r24) +/* 803AED58 003ABCB8 EC 43 10 2A */ fadds f2, f3, f2 +/* 803AED5C 003ABCBC C0 78 00 18 */ lfs f3, 0x18(r24) +/* 803AED60 003ABCC0 EC 01 00 2A */ fadds f0, f1, f0 +/* 803AED64 003ABCC4 C0 38 00 1C */ lfs f1, 0x1c(r24) +/* 803AED68 003ABCC8 EC 85 20 28 */ fsubs f4, f5, f4 +/* 803AED6C 003ABCCC EC 43 10 28 */ fsubs f2, f3, f2 +/* 803AED70 003ABCD0 EC 61 00 28 */ fsubs f3, f1, f0 +/* 803AED74 003ABCD4 EC 24 01 32 */ fmuls f1, f4, f4 +/* 803AED78 003ABCD8 EC 02 00 B2 */ fmuls f0, f2, f2 +/* 803AED7C 003ABCDC EC 43 00 F2 */ fmuls f2, f3, f3 +/* 803AED80 003ABCE0 EC 01 00 2A */ fadds f0, f1, f0 +/* 803AED84 003ABCE4 EC 22 00 2A */ fadds f1, f2, f0 +/* 803AED88 003ABCE8 FC 01 F8 40 */ fcmpo cr0, f1, f31 +/* 803AED8C 003ABCEC 40 81 00 5C */ ble lbl_803AEDE8 +/* 803AED90 003ABCF0 FC 40 08 34 */ frsqrte f2, f1 +/* 803AED94 003ABCF4 C8 82 D6 20 */ lfd f4, lbl_805AF340@sda21(r2) +/* 803AED98 003ABCF8 C8 62 D6 30 */ lfd f3, lbl_805AF350@sda21(r2) +/* 803AED9C 003ABCFC FC 02 00 B2 */ fmul f0, f2, f2 +/* 803AEDA0 003ABD00 FC 44 00 B2 */ fmul f2, f4, f2 +/* 803AEDA4 003ABD04 FC 01 00 32 */ fmul f0, f1, f0 +/* 803AEDA8 003ABD08 FC 03 00 28 */ fsub f0, f3, f0 +/* 803AEDAC 003ABD0C FC 42 00 32 */ fmul f2, f2, f0 +/* 803AEDB0 003ABD10 FC 02 00 B2 */ fmul f0, f2, f2 +/* 803AEDB4 003ABD14 FC 44 00 B2 */ fmul f2, f4, f2 +/* 803AEDB8 003ABD18 FC 01 00 32 */ fmul f0, f1, f0 +/* 803AEDBC 003ABD1C FC 03 00 28 */ fsub f0, f3, f0 +/* 803AEDC0 003ABD20 FC 42 00 32 */ fmul f2, f2, f0 +/* 803AEDC4 003ABD24 FC 02 00 B2 */ fmul f0, f2, f2 +/* 803AEDC8 003ABD28 FC 44 00 B2 */ fmul f2, f4, f2 +/* 803AEDCC 003ABD2C FC 01 00 32 */ fmul f0, f1, f0 +/* 803AEDD0 003ABD30 FC 03 00 28 */ fsub f0, f3, f0 +/* 803AEDD4 003ABD34 FC 02 00 32 */ fmul f0, f2, f0 +/* 803AEDD8 003ABD38 FC 01 00 32 */ fmul f0, f1, f0 +/* 803AEDDC 003ABD3C FC 00 00 18 */ frsp f0, f0 +/* 803AEDE0 003ABD40 D0 01 00 10 */ stfs f0, 0x10(r1) +/* 803AEDE4 003ABD44 C0 21 00 10 */ lfs f1, 0x10(r1) +lbl_803AEDE8: +/* 803AEDE8 003ABD48 C0 18 00 2C */ lfs f0, 0x2c(r24) +/* 803AEDEC 003ABD4C FC 00 08 40 */ fcmpo cr0, f0, f1 +/* 803AEDF0 003ABD50 4C 41 13 82 */ cror 2, 1, 2 +/* 803AEDF4 003ABD54 40 82 03 3C */ bne lbl_803AF130 +/* 803AEDF8 003ABD58 ED 41 00 24 */ fdivs f10, f1, f0 +/* 803AEDFC 003ABD5C C0 F8 00 38 */ lfs f7, 0x38(r24) +/* 803AEE00 003ABD60 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803AEE04 003ABD64 FC 07 00 40 */ fcmpo cr0, f7, f0 +/* 803AEE08 003ABD68 4C 41 13 82 */ cror 2, 1, 2 +/* 803AEE0C 003ABD6C 40 82 00 4C */ bne lbl_803AEE58 +/* 803AEE10 003ABD70 C0 62 D6 2C */ lfs f3, lbl_805AF34C@sda21(r2) +/* 803AEE14 003ABD74 EC 07 02 B2 */ fmuls f0, f7, f10 +/* 803AEE18 003ABD78 C1 18 00 34 */ lfs f8, 0x34(r24) +/* 803AEE1C 003ABD7C EC 43 38 28 */ fsubs f2, f3, f7 +/* 803AEE20 003ABD80 C0 98 00 30 */ lfs f4, 0x30(r24) +/* 803AEE24 003ABD84 EC 0A 00 32 */ fmuls f0, f10, f0 +/* 803AEE28 003ABD88 C0 BF 00 8C */ lfs f5, 0x8c(r31) +/* 803AEE2C 003ABD8C EC 84 40 28 */ fsubs f4, f4, f8 +/* 803AEE30 003ABD90 C0 D9 00 00 */ lfs f6, 0(r25) +/* 803AEE34 003ABD94 EC 42 02 B2 */ fmuls f2, f2, f10 +/* 803AEE38 003ABD98 EC 02 00 2A */ fadds f0, f2, f0 +/* 803AEE3C 003ABD9C EC 03 00 28 */ fsubs f0, f3, f0 +/* 803AEE40 003ABDA0 EC 04 00 32 */ fmuls f0, f4, f0 +/* 803AEE44 003ABDA4 EC 08 00 2A */ fadds f0, f8, f0 +/* 803AEE48 003ABDA8 EC 05 00 32 */ fmuls f0, f5, f0 +/* 803AEE4C 003ABDAC EC 06 00 2A */ fadds f0, f6, f0 +/* 803AEE50 003ABDB0 D0 19 00 00 */ stfs f0, 0(r25) +/* 803AEE54 003ABDB4 48 00 00 50 */ b lbl_803AEEA4 +lbl_803AEE58: +/* 803AEE58 003ABDB8 C0 62 D6 2C */ lfs f3, lbl_805AF34C@sda21(r2) +/* 803AEE5C 003ABDBC C1 38 00 34 */ lfs f9, 0x34(r24) +/* 803AEE60 003ABDC0 ED 03 50 28 */ fsubs f8, f3, f10 +/* 803AEE64 003ABDC4 C0 18 00 30 */ lfs f0, 0x30(r24) +/* 803AEE68 003ABDC8 EC 43 38 2A */ fadds f2, f3, f7 +/* 803AEE6C 003ABDCC C0 BF 00 8C */ lfs f5, 0x8c(r31) +/* 803AEE70 003ABDD0 EC 80 48 28 */ fsubs f4, f0, f9 +/* 803AEE74 003ABDD4 C0 D9 00 00 */ lfs f6, 0(r25) +/* 803AEE78 003ABDD8 EC 08 02 32 */ fmuls f0, f8, f8 +/* 803AEE7C 003ABDDC EC 42 02 B2 */ fmuls f2, f2, f10 +/* 803AEE80 003ABDE0 EC 03 00 28 */ fsubs f0, f3, f0 +/* 803AEE84 003ABDE4 EC 07 00 32 */ fmuls f0, f7, f0 +/* 803AEE88 003ABDE8 EC 02 00 28 */ fsubs f0, f2, f0 +/* 803AEE8C 003ABDEC EC 03 00 28 */ fsubs f0, f3, f0 +/* 803AEE90 003ABDF0 EC 04 00 32 */ fmuls f0, f4, f0 +/* 803AEE94 003ABDF4 EC 09 00 2A */ fadds f0, f9, f0 +/* 803AEE98 003ABDF8 EC 05 00 32 */ fmuls f0, f5, f0 +/* 803AEE9C 003ABDFC EC 06 00 2A */ fadds f0, f6, f0 +/* 803AEEA0 003ABE00 D0 19 00 00 */ stfs f0, 0(r25) +lbl_803AEEA4: +/* 803AEEA4 003ABE04 80 78 00 10 */ lwz r3, 0x10(r24) +/* 803AEEA8 003ABE08 54 60 03 19 */ rlwinm. r0, r3, 0, 0xc, 0xc +/* 803AEEAC 003ABE0C 40 82 02 84 */ bne lbl_803AF130 +/* 803AEEB0 003ABE10 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c +/* 803AEEB4 003ABE14 40 82 00 10 */ bne lbl_803AEEC4 +/* 803AEEB8 003ABE18 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803AEEBC 003ABE1C 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803AEEC0 003ABE20 41 82 01 BC */ beq lbl_803AF07C +lbl_803AEEC4: +/* 803AEEC4 003ABE24 C0 9F 00 20 */ lfs f4, 0x20(r31) +/* 803AEEC8 003ABE28 C0 78 00 20 */ lfs f3, 0x20(r24) +/* 803AEECC 003ABE2C C0 5F 00 24 */ lfs f2, 0x24(r31) +/* 803AEED0 003ABE30 C0 18 00 24 */ lfs f0, 0x24(r24) +/* 803AEED4 003ABE34 EC 64 18 28 */ fsubs f3, f4, f3 +/* 803AEED8 003ABE38 C0 9F 00 28 */ lfs f4, 0x28(r31) +/* 803AEEDC 003ABE3C EC A2 00 28 */ fsubs f5, f2, f0 +/* 803AEEE0 003ABE40 C0 58 00 28 */ lfs f2, 0x28(r24) +/* 803AEEE4 003ABE44 EC 63 00 F2 */ fmuls f3, f3, f3 +/* 803AEEE8 003ABE48 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803AEEEC 003ABE4C EC 84 10 28 */ fsubs f4, f4, f2 +/* 803AEEF0 003ABE50 EC 45 01 72 */ fmuls f2, f5, f5 +/* 803AEEF4 003ABE54 EC 84 01 32 */ fmuls f4, f4, f4 +/* 803AEEF8 003ABE58 EC 43 10 2A */ fadds f2, f3, f2 +/* 803AEEFC 003ABE5C EC 44 10 2A */ fadds f2, f4, f2 +/* 803AEF00 003ABE60 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 803AEF04 003ABE64 40 81 00 5C */ ble lbl_803AEF60 +/* 803AEF08 003ABE68 FC 60 10 34 */ frsqrte f3, f2 +/* 803AEF0C 003ABE6C C8 A2 D6 20 */ lfd f5, lbl_805AF340@sda21(r2) +/* 803AEF10 003ABE70 C8 82 D6 30 */ lfd f4, lbl_805AF350@sda21(r2) +/* 803AEF14 003ABE74 FC 03 00 F2 */ fmul f0, f3, f3 +/* 803AEF18 003ABE78 FC 65 00 F2 */ fmul f3, f5, f3 +/* 803AEF1C 003ABE7C FC 02 00 32 */ fmul f0, f2, f0 +/* 803AEF20 003ABE80 FC 04 00 28 */ fsub f0, f4, f0 +/* 803AEF24 003ABE84 FC 63 00 32 */ fmul f3, f3, f0 +/* 803AEF28 003ABE88 FC 03 00 F2 */ fmul f0, f3, f3 +/* 803AEF2C 003ABE8C FC 65 00 F2 */ fmul f3, f5, f3 +/* 803AEF30 003ABE90 FC 02 00 32 */ fmul f0, f2, f0 +/* 803AEF34 003ABE94 FC 04 00 28 */ fsub f0, f4, f0 +/* 803AEF38 003ABE98 FC 63 00 32 */ fmul f3, f3, f0 +/* 803AEF3C 003ABE9C FC 03 00 F2 */ fmul f0, f3, f3 +/* 803AEF40 003ABEA0 FC 65 00 F2 */ fmul f3, f5, f3 +/* 803AEF44 003ABEA4 FC 02 00 32 */ fmul f0, f2, f0 +/* 803AEF48 003ABEA8 FC 04 00 28 */ fsub f0, f4, f0 +/* 803AEF4C 003ABEAC FC 03 00 32 */ fmul f0, f3, f0 +/* 803AEF50 003ABEB0 FC 02 00 32 */ fmul f0, f2, f0 +/* 803AEF54 003ABEB4 FC 00 00 18 */ frsp f0, f0 +/* 803AEF58 003ABEB8 D0 01 00 0C */ stfs f0, 0xc(r1) +/* 803AEF5C 003ABEBC C0 41 00 0C */ lfs f2, 0xc(r1) +lbl_803AEF60: +/* 803AEF60 003ABEC0 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803AEF64 003ABEC4 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 803AEF68 003ABEC8 40 81 01 14 */ ble lbl_803AF07C +/* 803AEF6C 003ABECC C0 78 00 20 */ lfs f3, 0x20(r24) +/* 803AEF70 003ABED0 C1 82 D6 38 */ lfs f12, lbl_805AF358@sda21(r2) +/* 803AEF74 003ABED4 C0 BF 00 20 */ lfs f5, 0x20(r31) +/* 803AEF78 003ABED8 C0 98 00 24 */ lfs f4, 0x24(r24) +/* 803AEF7C 003ABEDC ED 63 03 32 */ fmuls f11, f3, f12 +/* 803AEF80 003ABEE0 C0 7F 00 24 */ lfs f3, 0x24(r31) +/* 803AEF84 003ABEE4 ED 25 03 32 */ fmuls f9, f5, f12 +/* 803AEF88 003ABEE8 C0 B8 00 14 */ lfs f5, 0x14(r24) +/* 803AEF8C 003ABEEC EC C4 03 32 */ fmuls f6, f4, f12 +/* 803AEF90 003ABEF0 C1 5F 00 10 */ lfs f10, 0x10(r31) +/* 803AEF94 003ABEF4 C1 18 00 18 */ lfs f8, 0x18(r24) +/* 803AEF98 003ABEF8 EC 83 03 32 */ fmuls f4, f3, f12 +/* 803AEF9C 003ABEFC C0 FF 00 14 */ lfs f7, 0x14(r31) +/* 803AEFA0 003ABF00 ED 65 58 2A */ fadds f11, f5, f11 +/* 803AEFA4 003ABF04 C0 B8 00 28 */ lfs f5, 0x28(r24) +/* 803AEFA8 003ABF08 ED 2A 48 2A */ fadds f9, f10, f9 +/* 803AEFAC 003ABF0C C0 7F 00 28 */ lfs f3, 0x28(r31) +/* 803AEFB0 003ABF10 ED 08 30 2A */ fadds f8, f8, f6 +/* 803AEFB4 003ABF14 C0 D8 00 1C */ lfs f6, 0x1c(r24) +/* 803AEFB8 003ABF18 EC E7 20 2A */ fadds f7, f7, f4 +/* 803AEFBC 003ABF1C C0 9F 00 18 */ lfs f4, 0x18(r31) +/* 803AEFC0 003ABF20 EC A5 03 32 */ fmuls f5, f5, f12 +/* 803AEFC4 003ABF24 EC 63 03 32 */ fmuls f3, f3, f12 +/* 803AEFC8 003ABF28 ED 2B 48 28 */ fsubs f9, f11, f9 +/* 803AEFCC 003ABF2C EC E8 38 28 */ fsubs f7, f8, f7 +/* 803AEFD0 003ABF30 EC C6 28 2A */ fadds f6, f6, f5 +/* 803AEFD4 003ABF34 EC A4 18 2A */ fadds f5, f4, f3 +/* 803AEFD8 003ABF38 EC 89 02 72 */ fmuls f4, f9, f9 +/* 803AEFDC 003ABF3C EC 67 01 F2 */ fmuls f3, f7, f7 +/* 803AEFE0 003ABF40 EC A6 28 28 */ fsubs f5, f6, f5 +/* 803AEFE4 003ABF44 EC 64 18 2A */ fadds f3, f4, f3 +/* 803AEFE8 003ABF48 EC 85 01 72 */ fmuls f4, f5, f5 +/* 803AEFEC 003ABF4C EC C4 18 2A */ fadds f6, f4, f3 +/* 803AEFF0 003ABF50 FC 06 00 40 */ fcmpo cr0, f6, f0 +/* 803AEFF4 003ABF54 40 81 00 5C */ ble lbl_803AF050 +/* 803AEFF8 003ABF58 FC 60 30 34 */ frsqrte f3, f6 +/* 803AEFFC 003ABF5C C8 A2 D6 20 */ lfd f5, lbl_805AF340@sda21(r2) +/* 803AF000 003ABF60 C8 82 D6 30 */ lfd f4, lbl_805AF350@sda21(r2) +/* 803AF004 003ABF64 FC 03 00 F2 */ fmul f0, f3, f3 +/* 803AF008 003ABF68 FC 65 00 F2 */ fmul f3, f5, f3 +/* 803AF00C 003ABF6C FC 06 00 32 */ fmul f0, f6, f0 +/* 803AF010 003ABF70 FC 04 00 28 */ fsub f0, f4, f0 +/* 803AF014 003ABF74 FC 63 00 32 */ fmul f3, f3, f0 +/* 803AF018 003ABF78 FC 03 00 F2 */ fmul f0, f3, f3 +/* 803AF01C 003ABF7C FC 65 00 F2 */ fmul f3, f5, f3 +/* 803AF020 003ABF80 FC 06 00 32 */ fmul f0, f6, f0 +/* 803AF024 003ABF84 FC 04 00 28 */ fsub f0, f4, f0 +/* 803AF028 003ABF88 FC 63 00 32 */ fmul f3, f3, f0 +/* 803AF02C 003ABF8C FC 03 00 F2 */ fmul f0, f3, f3 +/* 803AF030 003ABF90 FC 65 00 F2 */ fmul f3, f5, f3 +/* 803AF034 003ABF94 FC 06 00 32 */ fmul f0, f6, f0 +/* 803AF038 003ABF98 FC 04 00 28 */ fsub f0, f4, f0 +/* 803AF03C 003ABF9C FC 03 00 32 */ fmul f0, f3, f0 +/* 803AF040 003ABFA0 FC 06 00 32 */ fmul f0, f6, f0 +/* 803AF044 003ABFA4 FC 00 00 18 */ frsp f0, f0 +/* 803AF048 003ABFA8 D0 01 00 08 */ stfs f0, 8(r1) +/* 803AF04C 003ABFAC C0 C1 00 08 */ lfs f6, 8(r1) +lbl_803AF050: +/* 803AF050 003ABFB0 FC 06 08 40 */ fcmpo cr0, f6, f1 +/* 803AF054 003ABFB4 40 80 00 18 */ bge lbl_803AF06C +/* 803AF058 003ABFB8 C0 7F 00 88 */ lfs f3, 0x88(r31) +/* 803AF05C 003ABFBC EC 03 10 28 */ fsubs f0, f3, f2 +/* 803AF060 003ABFC0 EC 03 00 24 */ fdivs f0, f3, f0 +/* 803AF064 003ABFC4 D0 1A 00 00 */ stfs f0, 0(r26) +/* 803AF068 003ABFC8 48 00 00 14 */ b lbl_803AF07C +lbl_803AF06C: +/* 803AF06C 003ABFCC C0 7F 00 88 */ lfs f3, 0x88(r31) +/* 803AF070 003ABFD0 EC 03 10 2A */ fadds f0, f3, f2 +/* 803AF074 003ABFD4 EC 03 00 24 */ fdivs f0, f3, f0 +/* 803AF078 003ABFD8 D0 1A 00 00 */ stfs f0, 0(r26) +lbl_803AF07C: +/* 803AF07C 003ABFDC C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803AF080 003ABFE0 FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 803AF084 003ABFE4 41 82 00 AC */ beq lbl_803AF130 +/* 803AF088 003ABFE8 38 7F 00 50 */ addi r3, r31, 0x50 +/* 803AF08C 003ABFEC 38 98 00 14 */ addi r4, r24, 0x14 +/* 803AF090 003ABFF0 38 A1 00 14 */ addi r5, r1, 0x14 +/* 803AF094 003ABFF4 48 00 1C 79 */ bl salApplyMatrix +/* 803AF098 003ABFF8 C0 41 00 1C */ lfs f2, 0x1c(r1) +/* 803AF09C 003ABFFC C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803AF0A0 003AC000 FC 02 00 40 */ fcmpo cr0, f2, f0 +/* 803AF0A4 003AC004 4C 40 13 82 */ cror 2, 0, 2 +/* 803AF0A8 003AC008 40 82 00 2C */ bne lbl_803AF0D4 +/* 803AF0AC 003AC00C C0 3F 00 80 */ lfs f1, 0x80(r31) +/* 803AF0B0 003AC010 FC 00 08 50 */ fneg f0, f1 +/* 803AF0B4 003AC014 FC 00 10 40 */ fcmpo cr0, f0, f2 +/* 803AF0B8 003AC018 40 80 00 10 */ bge lbl_803AF0C8 +/* 803AF0BC 003AC01C FC 00 10 50 */ fneg f0, f2 +/* 803AF0C0 003AC020 EC 00 08 24 */ fdivs f0, f0, f1 +/* 803AF0C4 003AC024 48 00 00 08 */ b lbl_803AF0CC +lbl_803AF0C8: +/* 803AF0C8 003AC028 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +lbl_803AF0CC: +/* 803AF0CC 003AC02C EF DE 00 2A */ fadds f30, f30, f0 +/* 803AF0D0 003AC030 48 00 00 24 */ b lbl_803AF0F4 +lbl_803AF0D4: +/* 803AF0D4 003AC034 C0 3F 00 84 */ lfs f1, 0x84(r31) +/* 803AF0D8 003AC038 FC 01 10 40 */ fcmpo cr0, f1, f2 +/* 803AF0DC 003AC03C 40 81 00 10 */ ble lbl_803AF0EC +/* 803AF0E0 003AC040 FC 00 10 50 */ fneg f0, f2 +/* 803AF0E4 003AC044 EC 00 08 24 */ fdivs f0, f0, f1 +/* 803AF0E8 003AC048 48 00 00 08 */ b lbl_803AF0F0 +lbl_803AF0EC: +/* 803AF0EC 003AC04C C0 02 D6 18 */ lfs f0, lbl_805AF338@sda21(r2) +lbl_803AF0F0: +/* 803AF0F0 003AC050 EF DE 00 2A */ fadds f30, f30, f0 +lbl_803AF0F4: +/* 803AF0F4 003AC054 C0 22 D6 08 */ lfs f1, lbl_805AF328@sda21(r2) +/* 803AF0F8 003AC058 C0 01 00 14 */ lfs f0, 0x14(r1) +/* 803AF0FC 003AC05C FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 803AF100 003AC060 40 82 00 18 */ bne lbl_803AF118 +/* 803AF104 003AC064 C0 01 00 18 */ lfs f0, 0x18(r1) +/* 803AF108 003AC068 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 803AF10C 003AC06C 40 82 00 0C */ bne lbl_803AF118 +/* 803AF110 003AC070 FC 01 10 00 */ fcmpu cr0, f1, f2 +/* 803AF114 003AC074 41 82 00 0C */ beq lbl_803AF120 +lbl_803AF118: +/* 803AF118 003AC078 38 61 00 14 */ addi r3, r1, 0x14 +/* 803AF11C 003AC07C 48 00 1C 9D */ bl salNormalizeVector +lbl_803AF120: +/* 803AF120 003AC080 C0 21 00 14 */ lfs f1, 0x14(r1) +/* 803AF124 003AC084 C0 01 00 18 */ lfs f0, 0x18(r1) +/* 803AF128 003AC088 EF 9C 08 2A */ fadds f28, f28, f1 +/* 803AF12C 003AC08C EF BD 00 28 */ fsubs f29, f29, f0 +lbl_803AF130: +/* 803AF130 003AC090 83 FF 00 00 */ lwz r31, 0(r31) +/* 803AF134 003AC094 3B DE 00 01 */ addi r30, r30, 1 +lbl_803AF138: +/* 803AF138 003AC098 28 1F 00 00 */ cmplwi r31, 0 +/* 803AF13C 003AC09C 40 82 FB EC */ bne lbl_803AED28 +/* 803AF140 003AC0A0 28 1E 00 00 */ cmplwi r30, 0 +/* 803AF144 003AC0A4 41 82 00 54 */ beq lbl_803AF198 +/* 803AF148 003AC0A8 3C 00 43 30 */ lis r0, 0x4330 +/* 803AF14C 003AC0AC 93 C1 00 24 */ stw r30, 0x24(r1) +/* 803AF150 003AC0B0 C8 62 D6 10 */ lfd f3, lbl_805AF330@sda21(r2) +/* 803AF154 003AC0B4 90 01 00 20 */ stw r0, 0x20(r1) +/* 803AF158 003AC0B8 C8 01 00 20 */ lfd f0, 0x20(r1) +/* 803AF15C 003AC0BC 93 C1 00 2C */ stw r30, 0x2c(r1) +/* 803AF160 003AC0C0 EC 00 18 28 */ fsubs f0, f0, f3 +/* 803AF164 003AC0C4 90 01 00 28 */ stw r0, 0x28(r1) +/* 803AF168 003AC0C8 C8 21 00 28 */ lfd f1, 0x28(r1) +/* 803AF16C 003AC0CC EC 5C 00 24 */ fdivs f2, f28, f0 +/* 803AF170 003AC0D0 93 C1 00 34 */ stw r30, 0x34(r1) +/* 803AF174 003AC0D4 90 01 00 30 */ stw r0, 0x30(r1) +/* 803AF178 003AC0D8 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 803AF17C 003AC0DC EC 21 18 28 */ fsubs f1, f1, f3 +/* 803AF180 003AC0E0 D0 5B 00 00 */ stfs f2, 0(r27) +/* 803AF184 003AC0E4 EC 00 18 28 */ fsubs f0, f0, f3 +/* 803AF188 003AC0E8 EC 3D 08 24 */ fdivs f1, f29, f1 +/* 803AF18C 003AC0EC EC 1E 00 24 */ fdivs f0, f30, f0 +/* 803AF190 003AC0F0 D0 3C 00 00 */ stfs f1, 0(r28) +/* 803AF194 003AC0F4 D0 1D 00 00 */ stfs f0, 0(r29) +lbl_803AF198: +/* 803AF198 003AC0F8 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0 +/* 803AF19C 003AC0FC CB E1 00 90 */ lfd f31, 0x90(r1) +/* 803AF1A0 003AC100 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0 +/* 803AF1A4 003AC104 CB C1 00 80 */ lfd f30, 0x80(r1) +/* 803AF1A8 003AC108 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0 +/* 803AF1AC 003AC10C CB A1 00 70 */ lfd f29, 0x70(r1) +/* 803AF1B0 003AC110 E3 81 00 68 */ psq_l f28, 104(r1), 0, qr0 +/* 803AF1B4 003AC114 39 61 00 60 */ addi r11, r1, 0x60 +/* 803AF1B8 003AC118 CB 81 00 60 */ lfd f28, 0x60(r1) +/* 803AF1BC 003AC11C 4B FD A9 01 */ bl _restgpr_24 +/* 803AF1C0 003AC120 80 01 00 A4 */ lwz r0, 0xa4(r1) +/* 803AF1C4 003AC124 7C 08 03 A6 */ mtlr r0 +/* 803AF1C8 003AC128 38 21 00 A0 */ addi r1, r1, 0xa0 +/* 803AF1CC 003AC12C 4E 80 00 20 */ blr + +.global sndUpdateEmitter +sndUpdateEmitter: +/* 803AF1D0 003AC130 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803AF1D4 003AC134 7C 08 02 A6 */ mflr r0 +/* 803AF1D8 003AC138 90 01 00 34 */ stw r0, 0x34(r1) +/* 803AF1DC 003AC13C 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AF1E0 003AC140 4B FD A8 9D */ bl sub_80389a7c +/* 803AF1E4 003AC144 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AF1E8 003AC148 7C 7E 1B 78 */ mr r30, r3 +/* 803AF1EC 003AC14C 7C 9B 23 78 */ mr r27, r4 +/* 803AF1F0 003AC150 7C BC 2B 78 */ mr r28, r5 +/* 803AF1F4 003AC154 28 00 00 00 */ cmplwi r0, 0 +/* 803AF1F8 003AC158 7C DD 33 78 */ mr r29, r6 +/* 803AF1FC 003AC15C 7C FF 3B 78 */ mr r31, r7 +/* 803AF200 003AC160 41 82 00 E4 */ beq lbl_803AF2E4 +/* 803AF204 003AC164 48 00 5E B9 */ bl hwDisableIrq +/* 803AF208 003AC168 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 803AF20C 003AC16C 3C 00 43 30 */ lis r0, 0x4330 +/* 803AF210 003AC170 90 61 00 0C */ stw r3, 0xc(r1) +/* 803AF214 003AC174 C8 22 D6 10 */ lfd f1, lbl_805AF330@sda21(r2) +/* 803AF218 003AC178 90 01 00 08 */ stw r0, 8(r1) +/* 803AF21C 003AC17C 80 7B 00 00 */ lwz r3, 0(r27) +/* 803AF220 003AC180 C8 01 00 08 */ lfd f0, 8(r1) +/* 803AF224 003AC184 80 1B 00 04 */ lwz r0, 4(r27) +/* 803AF228 003AC188 EC 20 08 28 */ fsubs f1, f0, f1 +/* 803AF22C 003AC18C C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2) +/* 803AF230 003AC190 90 7E 00 14 */ stw r3, 0x14(r30) +/* 803AF234 003AC194 90 1E 00 18 */ stw r0, 0x18(r30) +/* 803AF238 003AC198 EC 01 00 24 */ fdivs f0, f1, f0 +/* 803AF23C 003AC19C 80 1B 00 08 */ lwz r0, 8(r27) +/* 803AF240 003AC1A0 90 1E 00 1C */ stw r0, 0x1c(r30) +/* 803AF244 003AC1A4 80 7C 00 00 */ lwz r3, 0(r28) +/* 803AF248 003AC1A8 80 1C 00 04 */ lwz r0, 4(r28) +/* 803AF24C 003AC1AC 90 7E 00 20 */ stw r3, 0x20(r30) +/* 803AF250 003AC1B0 90 1E 00 24 */ stw r0, 0x24(r30) +/* 803AF254 003AC1B4 80 1C 00 08 */ lwz r0, 8(r28) +/* 803AF258 003AC1B8 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803AF25C 003AC1BC D0 1E 00 30 */ stfs f0, 0x30(r30) +/* 803AF260 003AC1C0 C0 1E 00 34 */ lfs f0, 0x34(r30) +/* 803AF264 003AC1C4 C0 3E 00 30 */ lfs f1, 0x30(r30) +/* 803AF268 003AC1C8 FC 00 08 40 */ fcmpo cr0, f0, f1 +/* 803AF26C 003AC1CC 40 81 00 08 */ ble lbl_803AF274 +/* 803AF270 003AC1D0 D0 3E 00 34 */ stfs f1, 0x34(r30) +lbl_803AF274: +/* 803AF274 003AC1D4 80 1E 00 08 */ lwz r0, 8(r30) +/* 803AF278 003AC1D8 7C 00 F8 40 */ cmplw r0, r31 +/* 803AF27C 003AC1DC 41 82 00 5C */ beq lbl_803AF2D8 +/* 803AF280 003AC1E0 80 7E 00 3C */ lwz r3, 0x3c(r30) +/* 803AF284 003AC1E4 3C 03 00 01 */ addis r0, r3, 1 +/* 803AF288 003AC1E8 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AF28C 003AC1EC 41 82 00 48 */ beq lbl_803AF2D4 +/* 803AF290 003AC1F0 88 1F 00 1C */ lbz r0, 0x1c(r31) +/* 803AF294 003AC1F4 28 00 00 FF */ cmplwi r0, 0xff +/* 803AF298 003AC1F8 41 82 00 24 */ beq lbl_803AF2BC +/* 803AF29C 003AC1FC 4B FF 89 0D */ bl vidGetInternalId +/* 803AF2A0 003AC200 3C 03 00 01 */ addis r0, r3, 1 +/* 803AF2A4 003AC204 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AF2A8 003AC208 41 82 00 2C */ beq lbl_803AF2D4 +/* 803AF2AC 003AC20C 88 9F 00 1C */ lbz r4, 0x1c(r31) +/* 803AF2B0 003AC210 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 803AF2B4 003AC214 48 00 48 91 */ bl sub_803b3b44 +/* 803AF2B8 003AC218 48 00 00 1C */ b lbl_803AF2D4 +lbl_803AF2BC: +/* 803AF2BC 003AC21C 4B FE C0 A5 */ bl synthSendKeyOff +/* 803AF2C0 003AC220 80 7E 00 10 */ lwz r3, 0x10(r30) +/* 803AF2C4 003AC224 38 00 FF FF */ li r0, -1 +/* 803AF2C8 003AC228 64 63 00 08 */ oris r3, r3, 8 +/* 803AF2CC 003AC22C 90 7E 00 10 */ stw r3, 0x10(r30) +/* 803AF2D0 003AC230 90 1E 00 3C */ stw r0, 0x3c(r30) +lbl_803AF2D4: +/* 803AF2D4 003AC234 93 FE 00 08 */ stw r31, 8(r30) +lbl_803AF2D8: +/* 803AF2D8 003AC238 48 00 5D AD */ bl hwEnableIrq +/* 803AF2DC 003AC23C 38 60 00 01 */ li r3, 1 +/* 803AF2E0 003AC240 48 00 00 08 */ b lbl_803AF2E8 +lbl_803AF2E4: +/* 803AF2E4 003AC244 38 60 00 00 */ li r3, 0 +lbl_803AF2E8: +/* 803AF2E8 003AC248 39 61 00 30 */ addi r11, r1, 0x30 +/* 803AF2EC 003AC24C 4B FD A7 DD */ bl _restgpr_27 +/* 803AF2F0 003AC250 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803AF2F4 003AC254 7C 08 03 A6 */ mtlr r0 +/* 803AF2F8 003AC258 38 21 00 30 */ addi r1, r1, 0x30 +/* 803AF2FC 003AC25C 4E 80 00 20 */ blr + +.global sndCheckEmitter +sndCheckEmitter: +/* 803AF300 003AC260 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AF304 003AC264 28 00 00 00 */ cmplwi r0, 0 +/* 803AF308 003AC268 41 82 00 10 */ beq lbl_803AF318 +/* 803AF30C 003AC26C 80 03 00 10 */ lwz r0, 0x10(r3) +/* 803AF310 003AC270 54 03 87 FE */ rlwinm r3, r0, 0x10, 0x1f, 0x1f +/* 803AF314 003AC274 4E 80 00 20 */ blr +lbl_803AF318: +/* 803AF318 003AC278 38 60 00 00 */ li r3, 0 +/* 803AF31C 003AC27C 4E 80 00 20 */ blr + +.global AddEmitter +AddEmitter: +/* 803AF320 003AC280 94 21 FF 60 */ stwu r1, -0xa0(r1) +/* 803AF324 003AC284 7C 08 02 A6 */ mflr r0 +/* 803AF328 003AC288 90 01 00 A4 */ stw r0, 0xa4(r1) +/* 803AF32C 003AC28C DB E1 00 90 */ stfd f31, 0x90(r1) +/* 803AF330 003AC290 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0 +/* 803AF334 003AC294 DB C1 00 80 */ stfd f30, 0x80(r1) +/* 803AF338 003AC298 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0 +/* 803AF33C 003AC29C DB A1 00 70 */ stfd f29, 0x70(r1) +/* 803AF340 003AC2A0 F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0 +/* 803AF344 003AC2A4 39 61 00 70 */ addi r11, r1, 0x70 +/* 803AF348 003AC2A8 4B FD A7 19 */ bl func_80389A60 +/* 803AF34C 003AC2AC FF C0 08 90 */ fmr f30, f1 +/* 803AF350 003AC2B0 83 81 00 A8 */ lwz r28, 0xa8(r1) +/* 803AF354 003AC2B4 FF A0 10 90 */ fmr f29, f2 +/* 803AF358 003AC2B8 83 A1 00 AC */ lwz r29, 0xac(r1) +/* 803AF35C 003AC2BC 8B E1 00 B3 */ lbz r31, 0xb3(r1) +/* 803AF360 003AC2C0 7C 77 1B 78 */ mr r23, r3 +/* 803AF364 003AC2C4 7C 98 23 78 */ mr r24, r4 +/* 803AF368 003AC2C8 7C B9 2B 78 */ mr r25, r5 +/* 803AF36C 003AC2CC 7C D4 33 78 */ mr r20, r6 +/* 803AF370 003AC2D0 7C FA 3B 78 */ mr r26, r7 +/* 803AF374 003AC2D4 7D 1B 43 78 */ mr r27, r8 +/* 803AF378 003AC2D8 7D 35 4B 78 */ mr r21, r9 +/* 803AF37C 003AC2DC 7D 56 53 78 */ mr r22, r10 +/* 803AF380 003AC2E0 48 00 5D 3D */ bl hwDisableIrq +/* 803AF384 003AC2E4 28 17 00 00 */ cmplwi r23, 0 +/* 803AF388 003AC2E8 40 82 00 10 */ bne lbl_803AF398 +/* 803AF38C 003AC2EC 3C 60 80 56 */ lis r3, lbl_8055F940@ha +/* 803AF390 003AC2F0 3B C3 F9 40 */ addi r30, r3, lbl_8055F940@l +/* 803AF394 003AC2F4 48 00 00 08 */ b lbl_803AF39C +lbl_803AF398: +/* 803AF398 003AC2F8 7E FE BB 78 */ mr r30, r23 +lbl_803AF39C: +/* 803AF39C 003AC2FC 92 9E 00 10 */ stw r20, 0x10(r30) +/* 803AF3A0 003AC300 3C 60 43 30 */ lis r3, 0x4330 +/* 803AF3A4 003AC304 56 A4 06 3E */ clrlwi r4, r21, 0x18 +/* 803AF3A8 003AC308 56 C0 06 3E */ clrlwi r0, r22, 0x18 +/* 803AF3AC 003AC30C 80 D8 00 00 */ lwz r6, 0(r24) +/* 803AF3B0 003AC310 28 17 00 00 */ cmplwi r23, 0 +/* 803AF3B4 003AC314 80 B8 00 04 */ lwz r5, 4(r24) +/* 803AF3B8 003AC318 90 81 00 24 */ stw r4, 0x24(r1) +/* 803AF3BC 003AC31C C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2) +/* 803AF3C0 003AC320 90 DE 00 14 */ stw r6, 0x14(r30) +/* 803AF3C4 003AC324 C0 62 D6 44 */ lfs f3, lbl_805AF364@sda21(r2) +/* 803AF3C8 003AC328 90 BE 00 18 */ stw r5, 0x18(r30) +/* 803AF3CC 003AC32C 80 98 00 08 */ lwz r4, 8(r24) +/* 803AF3D0 003AC330 90 61 00 20 */ stw r3, 0x20(r1) +/* 803AF3D4 003AC334 90 9E 00 1C */ stw r4, 0x1c(r30) +/* 803AF3D8 003AC338 C8 01 00 20 */ lfd f0, 0x20(r1) +/* 803AF3DC 003AC33C 80 B9 00 00 */ lwz r5, 0(r25) +/* 803AF3E0 003AC340 80 99 00 04 */ lwz r4, 4(r25) +/* 803AF3E4 003AC344 EC 00 10 28 */ fsubs f0, f0, f2 +/* 803AF3E8 003AC348 90 01 00 2C */ stw r0, 0x2c(r1) +/* 803AF3EC 003AC34C 90 BE 00 20 */ stw r5, 0x20(r30) +/* 803AF3F0 003AC350 EC 23 00 32 */ fmuls f1, f3, f0 +/* 803AF3F4 003AC354 90 9E 00 24 */ stw r4, 0x24(r30) +/* 803AF3F8 003AC358 90 61 00 28 */ stw r3, 0x28(r1) +/* 803AF3FC 003AC35C 80 19 00 08 */ lwz r0, 8(r25) +/* 803AF400 003AC360 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 803AF404 003AC364 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803AF408 003AC368 EC 00 10 28 */ fsubs f0, f0, f2 +/* 803AF40C 003AC36C D3 DE 00 2C */ stfs f30, 0x2c(r30) +/* 803AF410 003AC370 B3 5E 00 44 */ sth r26, 0x44(r30) +/* 803AF414 003AC374 EC 03 00 32 */ fmuls f0, f3, f0 +/* 803AF418 003AC378 D0 3E 00 30 */ stfs f1, 0x30(r30) +/* 803AF41C 003AC37C D0 1E 00 34 */ stfs f0, 0x34(r30) +/* 803AF420 003AC380 D3 BE 00 38 */ stfs f29, 0x38(r30) +/* 803AF424 003AC384 93 7E 00 40 */ stw r27, 0x40(r30) +/* 803AF428 003AC388 93 9E 00 08 */ stw r28, 8(r30) +/* 803AF42C 003AC38C 9B FE 00 46 */ stb r31, 0x46(r30) +/* 803AF430 003AC390 40 82 02 64 */ bne lbl_803AF694 +/* 803AF434 003AC394 80 7E 00 08 */ lwz r3, 8(r30) +/* 803AF438 003AC398 28 03 00 00 */ cmplwi r3, 0 +/* 803AF43C 003AC39C 41 82 00 1C */ beq lbl_803AF458 +/* 803AF440 003AC3A0 88 03 00 1C */ lbz r0, 0x1c(r3) +/* 803AF444 003AC3A4 28 00 00 FF */ cmplwi r0, 0xff +/* 803AF448 003AC3A8 40 82 00 10 */ bne lbl_803AF458 +/* 803AF44C 003AC3AC 48 00 5C 39 */ bl hwEnableIrq +/* 803AF450 003AC3B0 38 60 FF FF */ li r3, -1 +/* 803AF454 003AC3B4 48 00 02 94 */ b lbl_803AF6E8 +lbl_803AF458: +/* 803AF458 003AC3B8 7F C3 F3 78 */ mr r3, r30 +/* 803AF45C 003AC3BC 38 81 00 0C */ addi r4, r1, 0xc +/* 803AF460 003AC3C0 38 A1 00 08 */ addi r5, r1, 8 +/* 803AF464 003AC3C4 38 C1 00 18 */ addi r6, r1, 0x18 +/* 803AF468 003AC3C8 38 E1 00 14 */ addi r7, r1, 0x14 +/* 803AF46C 003AC3CC 39 01 00 10 */ addi r8, r1, 0x10 +/* 803AF470 003AC3D0 4B FF F8 45 */ bl CalcEmitter +/* 803AF474 003AC3D4 C0 22 D6 08 */ lfs f1, lbl_805AF328@sda21(r2) +/* 803AF478 003AC3D8 C0 01 00 0C */ lfs f0, 0xc(r1) +/* 803AF47C 003AC3DC FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 803AF480 003AC3E0 40 82 00 10 */ bne lbl_803AF490 +/* 803AF484 003AC3E4 48 00 5C 01 */ bl hwEnableIrq +/* 803AF488 003AC3E8 38 60 FF FF */ li r3, -1 +/* 803AF48C 003AC3EC 48 00 02 5C */ b lbl_803AF6E8 +lbl_803AF490: +/* 803AF490 003AC3F0 80 7E 00 08 */ lwz r3, 8(r30) +/* 803AF494 003AC3F4 28 03 00 00 */ cmplwi r3, 0 +/* 803AF498 003AC3F8 41 82 00 0C */ beq lbl_803AF4A4 +/* 803AF49C 003AC3FC 88 C3 00 1C */ lbz r6, 0x1c(r3) +/* 803AF4A0 003AC400 48 00 00 08 */ b lbl_803AF4A8 +lbl_803AF4A4: +/* 803AF4A4 003AC404 88 DE 00 46 */ lbz r6, 0x46(r30) +lbl_803AF4A8: +/* 803AF4A8 003AC408 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803AF4AC 003AC40C 38 80 00 7F */ li r4, 0x7f +/* 803AF4B0 003AC410 A0 7E 00 44 */ lhz r3, 0x44(r30) +/* 803AF4B4 003AC414 38 A0 00 40 */ li r5, 0x40 +/* 803AF4B8 003AC418 54 07 E7 FE */ rlwinm r7, r0, 0x1c, 0x1f, 0x1f +/* 803AF4BC 003AC41C 4B FE BB 91 */ bl synthFXStart +/* 803AF4C0 003AC420 90 7E 00 3C */ stw r3, 0x3c(r30) +/* 803AF4C4 003AC424 83 FE 00 3C */ lwz r31, 0x3c(r30) +/* 803AF4C8 003AC428 3C 1F 00 01 */ addis r0, r31, 1 +/* 803AF4CC 003AC42C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AF4D0 003AC430 40 82 00 10 */ bne lbl_803AF4E0 +/* 803AF4D4 003AC434 48 00 5B B1 */ bl hwEnableIrq +/* 803AF4D8 003AC438 38 60 FF FF */ li r3, -1 +/* 803AF4DC 003AC43C 48 00 02 0C */ b lbl_803AF6E8 +lbl_803AF4E0: +/* 803AF4E0 003AC440 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803AF4E4 003AC444 C3 E1 00 08 */ lfs f31, 8(r1) +/* 803AF4E8 003AC448 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb +/* 803AF4EC 003AC44C C3 A1 00 10 */ lfs f29, 0x10(r1) +/* 803AF4F0 003AC450 C3 C1 00 18 */ lfs f30, 0x18(r1) +/* 803AF4F4 003AC454 C0 41 00 0C */ lfs f2, 0xc(r1) +/* 803AF4F8 003AC458 41 82 00 44 */ beq lbl_803AF53C +/* 803AF4FC 003AC45C C0 1E 00 4C */ lfs f0, 0x4c(r30) +/* 803AF500 003AC460 7F E3 FB 78 */ mr r3, r31 +/* 803AF504 003AC464 C0 22 D6 28 */ lfs f1, lbl_805AF348@sda21(r2) +/* 803AF508 003AC468 38 80 00 07 */ li r4, 7 +/* 803AF50C 003AC46C EC 00 00 B2 */ fmuls f0, f0, f2 +/* 803AF510 003AC470 38 A0 00 7F */ li r5, 0x7f +/* 803AF514 003AC474 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803AF518 003AC478 FC 00 00 1E */ fctiwz f0, f0 +/* 803AF51C 003AC47C D8 01 00 28 */ stfd f0, 0x28(r1) +/* 803AF520 003AC480 80 C1 00 2C */ lwz r6, 0x2c(r1) +/* 803AF524 003AC484 54 C0 06 3E */ clrlwi r0, r6, 0x18 +/* 803AF528 003AC488 28 00 00 7F */ cmplwi r0, 0x7f +/* 803AF52C 003AC48C 41 81 00 08 */ bgt lbl_803AF534 +/* 803AF530 003AC490 7C C5 33 78 */ mr r5, r6 +lbl_803AF534: +/* 803AF534 003AC494 4B FE BB E1 */ bl synthFXSetCtrl +/* 803AF538 003AC498 48 00 00 3C */ b lbl_803AF574 +lbl_803AF53C: +/* 803AF53C 003AC49C C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2) +/* 803AF540 003AC4A0 38 A0 00 7F */ li r5, 0x7f +/* 803AF544 003AC4A4 EC 00 00 B2 */ fmuls f0, f0, f2 +/* 803AF548 003AC4A8 FC 00 00 1E */ fctiwz f0, f0 +/* 803AF54C 003AC4AC D8 01 00 28 */ stfd f0, 0x28(r1) +/* 803AF550 003AC4B0 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803AF554 003AC4B4 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803AF558 003AC4B8 28 00 00 7F */ cmplwi r0, 0x7f +/* 803AF55C 003AC4BC 41 81 00 0C */ bgt lbl_803AF568 +/* 803AF560 003AC4C0 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803AF564 003AC4C4 80 A1 00 24 */ lwz r5, 0x24(r1) +lbl_803AF568: +/* 803AF568 003AC4C8 7F E3 FB 78 */ mr r3, r31 +/* 803AF56C 003AC4CC 38 80 00 07 */ li r4, 7 +/* 803AF570 003AC4D0 4B FE BB A5 */ bl synthFXSetCtrl +lbl_803AF574: +/* 803AF574 003AC4D4 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803AF578 003AC4D8 38 A0 00 7F */ li r5, 0x7f +/* 803AF57C 003AC4DC C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2) +/* 803AF580 003AC4E0 EC 00 F0 2A */ fadds f0, f0, f30 +/* 803AF584 003AC4E4 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803AF588 003AC4E8 FC 00 00 1E */ fctiwz f0, f0 +/* 803AF58C 003AC4EC D8 01 00 28 */ stfd f0, 0x28(r1) +/* 803AF590 003AC4F0 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803AF594 003AC4F4 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803AF598 003AC4F8 28 00 00 7F */ cmplwi r0, 0x7f +/* 803AF59C 003AC4FC 41 81 00 0C */ bgt lbl_803AF5A8 +/* 803AF5A0 003AC500 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803AF5A4 003AC504 80 A1 00 24 */ lwz r5, 0x24(r1) +lbl_803AF5A8: +/* 803AF5A8 003AC508 7F E3 FB 78 */ mr r3, r31 +/* 803AF5AC 003AC50C 38 80 00 0A */ li r4, 0xa +/* 803AF5B0 003AC510 4B FE BB 65 */ bl synthFXSetCtrl +/* 803AF5B4 003AC514 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803AF5B8 003AC518 38 A0 00 7F */ li r5, 0x7f +/* 803AF5BC 003AC51C C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2) +/* 803AF5C0 003AC520 EC 00 E8 28 */ fsubs f0, f0, f29 +/* 803AF5C4 003AC524 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803AF5C8 003AC528 FC 00 00 1E */ fctiwz f0, f0 +/* 803AF5CC 003AC52C D8 01 00 30 */ stfd f0, 0x30(r1) +/* 803AF5D0 003AC530 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803AF5D4 003AC534 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803AF5D8 003AC538 28 00 00 7F */ cmplwi r0, 0x7f +/* 803AF5DC 003AC53C 41 81 00 0C */ bgt lbl_803AF5E8 +/* 803AF5E0 003AC540 D8 01 00 38 */ stfd f0, 0x38(r1) +/* 803AF5E4 003AC544 80 A1 00 3C */ lwz r5, 0x3c(r1) +lbl_803AF5E8: +/* 803AF5E8 003AC548 7F E3 FB 78 */ mr r3, r31 +/* 803AF5EC 003AC54C 38 80 00 83 */ li r4, 0x83 +/* 803AF5F0 003AC550 4B FE BB 25 */ bl synthFXSetCtrl +/* 803AF5F4 003AC554 C0 02 D6 40 */ lfs f0, lbl_805AF360@sda21(r2) +/* 803AF5F8 003AC558 EC 20 07 F2 */ fmuls f1, f0, f31 +/* 803AF5FC 003AC55C 4B FD A3 59 */ bl __cvt_fp2unsigned +/* 803AF600 003AC560 28 03 3F FF */ cmplwi r3, 0x3fff +/* 803AF604 003AC564 38 A0 3F FF */ li r5, 0x3fff +/* 803AF608 003AC568 41 81 00 08 */ bgt lbl_803AF610 +/* 803AF60C 003AC56C 54 65 04 3E */ clrlwi r5, r3, 0x10 +lbl_803AF610: +/* 803AF610 003AC570 7F E3 FB 78 */ mr r3, r31 +/* 803AF614 003AC574 38 80 00 84 */ li r4, 0x84 +/* 803AF618 003AC578 4B FE BB E1 */ bl synthFXSetCtrl14 +/* 803AF61C 003AC57C 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 803AF620 003AC580 28 03 00 00 */ cmplwi r3, 0 +/* 803AF624 003AC584 41 82 00 64 */ beq lbl_803AF688 +/* 803AF628 003AC588 82 E3 00 04 */ lwz r23, 4(r3) +/* 803AF62C 003AC58C 3B 00 00 00 */ li r24, 0 +/* 803AF630 003AC590 48 00 00 44 */ b lbl_803AF674 +lbl_803AF634: +/* 803AF634 003AC594 88 97 00 00 */ lbz r4, 0(r23) +/* 803AF638 003AC598 28 04 00 40 */ cmplwi r4, 0x40 +/* 803AF63C 003AC59C 41 80 00 14 */ blt lbl_803AF650 +/* 803AF640 003AC5A0 28 04 00 80 */ cmplwi r4, 0x80 +/* 803AF644 003AC5A4 41 82 00 0C */ beq lbl_803AF650 +/* 803AF648 003AC5A8 28 04 00 84 */ cmplwi r4, 0x84 +/* 803AF64C 003AC5AC 40 82 00 14 */ bne lbl_803AF660 +lbl_803AF650: +/* 803AF650 003AC5B0 A0 B7 00 02 */ lhz r5, 2(r23) +/* 803AF654 003AC5B4 7F E3 FB 78 */ mr r3, r31 +/* 803AF658 003AC5B8 4B FE BB A1 */ bl synthFXSetCtrl14 +/* 803AF65C 003AC5BC 48 00 00 10 */ b lbl_803AF66C +lbl_803AF660: +/* 803AF660 003AC5C0 88 B7 00 02 */ lbz r5, 2(r23) +/* 803AF664 003AC5C4 7F E3 FB 78 */ mr r3, r31 +/* 803AF668 003AC5C8 4B FE BA AD */ bl synthFXSetCtrl +lbl_803AF66C: +/* 803AF66C 003AC5CC 3A F7 00 04 */ addi r23, r23, 4 +/* 803AF670 003AC5D0 3B 18 00 01 */ addi r24, r24, 1 +lbl_803AF674: +/* 803AF674 003AC5D4 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 803AF678 003AC5D8 57 04 06 3E */ clrlwi r4, r24, 0x18 +/* 803AF67C 003AC5DC 88 03 00 00 */ lbz r0, 0(r3) +/* 803AF680 003AC5E0 7C 04 00 40 */ cmplw r4, r0 +/* 803AF684 003AC5E4 41 80 FF B0 */ blt lbl_803AF634 +lbl_803AF688: +/* 803AF688 003AC5E8 48 00 59 FD */ bl hwEnableIrq +/* 803AF68C 003AC5EC 80 7E 00 3C */ lwz r3, 0x3c(r30) +/* 803AF690 003AC5F0 48 00 00 58 */ b lbl_803AF6E8 +lbl_803AF694: +/* 803AF694 003AC5F4 80 0D AF 78 */ lwz r0, lbl_805A9B38@sda21(r13) +/* 803AF698 003AC5F8 28 00 00 00 */ cmplwi r0, 0 +/* 803AF69C 003AC5FC 90 1E 00 00 */ stw r0, 0(r30) +/* 803AF6A0 003AC600 41 82 00 0C */ beq lbl_803AF6AC +/* 803AF6A4 003AC604 80 6D AF 78 */ lwz r3, lbl_805A9B38@sda21(r13) +/* 803AF6A8 003AC608 93 C3 00 04 */ stw r30, 4(r3) +lbl_803AF6AC: +/* 803AF6AC 003AC60C 38 60 00 00 */ li r3, 0 +/* 803AF6B0 003AC610 38 00 FF FF */ li r0, -1 +/* 803AF6B4 003AC614 90 7E 00 04 */ stw r3, 4(r30) +/* 803AF6B8 003AC618 93 CD AF 78 */ stw r30, lbl_805A9B38@sda21(r13) +/* 803AF6BC 003AC61C 93 BE 00 0C */ stw r29, 0xc(r30) +/* 803AF6C0 003AC620 90 1E 00 3C */ stw r0, 0x3c(r30) +/* 803AF6C4 003AC624 B0 7E 00 48 */ sth r3, 0x48(r30) +/* 803AF6C8 003AC628 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803AF6CC 003AC62C 64 00 00 03 */ oris r0, r0, 3 +/* 803AF6D0 003AC630 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803AF6D4 003AC634 A0 7E 00 44 */ lhz r3, 0x44(r30) +/* 803AF6D8 003AC638 4B FE B9 41 */ bl synthFXGetMaxVoices +/* 803AF6DC 003AC63C 98 7E 00 47 */ stb r3, 0x47(r30) +/* 803AF6E0 003AC640 48 00 59 A5 */ bl hwEnableIrq +/* 803AF6E4 003AC644 38 60 FF FF */ li r3, -1 +lbl_803AF6E8: +/* 803AF6E8 003AC648 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0 +/* 803AF6EC 003AC64C CB E1 00 90 */ lfd f31, 0x90(r1) +/* 803AF6F0 003AC650 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0 +/* 803AF6F4 003AC654 CB C1 00 80 */ lfd f30, 0x80(r1) +/* 803AF6F8 003AC658 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0 +/* 803AF6FC 003AC65C 39 61 00 70 */ addi r11, r1, 0x70 +/* 803AF700 003AC660 CB A1 00 70 */ lfd f29, 0x70(r1) +/* 803AF704 003AC664 4B FD A3 A9 */ bl _restgpr_20 +/* 803AF708 003AC668 80 01 00 A4 */ lwz r0, 0xa4(r1) +/* 803AF70C 003AC66C 7C 08 03 A6 */ mtlr r0 +/* 803AF710 003AC670 38 21 00 A0 */ addi r1, r1, 0xa0 +/* 803AF714 003AC674 4E 80 00 20 */ blr + +.global sndAddEmitterParaEx +sndAddEmitterParaEx: +/* 803AF718 003AC678 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803AF71C 003AC67C 7C 08 02 A6 */ mflr r0 +/* 803AF720 003AC680 90 01 00 24 */ stw r0, 0x24(r1) +/* 803AF724 003AC684 81 81 00 28 */ lwz r12, 0x28(r1) +/* 803AF728 003AC688 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AF72C 003AC68C 81 61 00 2C */ lwz r11, 0x2c(r1) +/* 803AF730 003AC690 28 00 00 00 */ cmplwi r0, 0 +/* 803AF734 003AC694 41 82 00 20 */ beq lbl_803AF754 +/* 803AF738 003AC698 91 81 00 08 */ stw r12, 8(r1) +/* 803AF73C 003AC69C 38 00 00 00 */ li r0, 0 +/* 803AF740 003AC6A0 55 08 04 3E */ clrlwi r8, r8, 0x10 +/* 803AF744 003AC6A4 91 61 00 0C */ stw r11, 0xc(r1) +/* 803AF748 003AC6A8 90 01 00 10 */ stw r0, 0x10(r1) +/* 803AF74C 003AC6AC 4B FF FB D5 */ bl AddEmitter +/* 803AF750 003AC6B0 48 00 00 08 */ b lbl_803AF758 +lbl_803AF754: +/* 803AF754 003AC6B4 38 60 FF FF */ li r3, -1 +lbl_803AF758: +/* 803AF758 003AC6B8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803AF75C 003AC6BC 7C 08 03 A6 */ mtlr r0 +/* 803AF760 003AC6C0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803AF764 003AC6C4 4E 80 00 20 */ blr + +.global sndRemoveEmitter +sndRemoveEmitter: +/* 803AF768 003AC6C8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803AF76C 003AC6CC 7C 08 02 A6 */ mflr r0 +/* 803AF770 003AC6D0 90 01 00 14 */ stw r0, 0x14(r1) +/* 803AF774 003AC6D4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803AF778 003AC6D8 7C 7F 1B 78 */ mr r31, r3 +/* 803AF77C 003AC6DC 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AF780 003AC6E0 28 00 00 00 */ cmplwi r0, 0 +/* 803AF784 003AC6E4 41 82 00 74 */ beq lbl_803AF7F8 +/* 803AF788 003AC6E8 48 00 59 35 */ bl hwDisableIrq +/* 803AF78C 003AC6EC 80 1F 00 10 */ lwz r0, 0x10(r31) +/* 803AF790 003AC6F0 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf +/* 803AF794 003AC6F4 41 82 00 58 */ beq lbl_803AF7EC +/* 803AF798 003AC6F8 80 7F 00 00 */ lwz r3, 0(r31) +/* 803AF79C 003AC6FC 28 03 00 00 */ cmplwi r3, 0 +/* 803AF7A0 003AC700 41 82 00 0C */ beq lbl_803AF7AC +/* 803AF7A4 003AC704 80 1F 00 04 */ lwz r0, 4(r31) +/* 803AF7A8 003AC708 90 03 00 04 */ stw r0, 4(r3) +lbl_803AF7AC: +/* 803AF7AC 003AC70C 80 7F 00 04 */ lwz r3, 4(r31) +/* 803AF7B0 003AC710 28 03 00 00 */ cmplwi r3, 0 +/* 803AF7B4 003AC714 41 82 00 10 */ beq lbl_803AF7C4 +/* 803AF7B8 003AC718 80 1F 00 00 */ lwz r0, 0(r31) +/* 803AF7BC 003AC71C 90 03 00 00 */ stw r0, 0(r3) +/* 803AF7C0 003AC720 48 00 00 0C */ b lbl_803AF7CC +lbl_803AF7C4: +/* 803AF7C4 003AC724 80 1F 00 00 */ lwz r0, 0(r31) +/* 803AF7C8 003AC728 90 0D AF 78 */ stw r0, lbl_805A9B38@sda21(r13) +lbl_803AF7CC: +/* 803AF7CC 003AC72C 80 1F 00 10 */ lwz r0, 0x10(r31) +/* 803AF7D0 003AC730 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 803AF7D4 003AC734 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803AF7D8 003AC738 80 7F 00 3C */ lwz r3, 0x3c(r31) +/* 803AF7DC 003AC73C 3C 03 00 01 */ addis r0, r3, 1 +/* 803AF7E0 003AC740 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AF7E4 003AC744 41 82 00 08 */ beq lbl_803AF7EC +/* 803AF7E8 003AC748 4B FE BB 79 */ bl synthSendKeyOff +lbl_803AF7EC: +/* 803AF7EC 003AC74C 48 00 58 99 */ bl hwEnableIrq +/* 803AF7F0 003AC750 38 60 00 01 */ li r3, 1 +/* 803AF7F4 003AC754 48 00 00 08 */ b lbl_803AF7FC +lbl_803AF7F8: +/* 803AF7F8 003AC758 38 60 00 00 */ li r3, 0 +lbl_803AF7FC: +/* 803AF7FC 003AC75C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803AF800 003AC760 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803AF804 003AC764 7C 08 03 A6 */ mtlr r0 +/* 803AF808 003AC768 38 21 00 10 */ addi r1, r1, 0x10 +/* 803AF80C 003AC76C 4E 80 00 20 */ blr + +.global sndEmitterVoiceID +sndEmitterVoiceID: +/* 803AF810 003AC770 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803AF814 003AC774 7C 08 02 A6 */ mflr r0 +/* 803AF818 003AC778 90 01 00 14 */ stw r0, 0x14(r1) +/* 803AF81C 003AC77C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803AF820 003AC780 3B E0 FF FF */ li r31, -1 +/* 803AF824 003AC784 93 C1 00 08 */ stw r30, 8(r1) +/* 803AF828 003AC788 7C 7E 1B 78 */ mr r30, r3 +/* 803AF82C 003AC78C 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AF830 003AC790 28 00 00 00 */ cmplwi r0, 0 +/* 803AF834 003AC794 41 82 00 1C */ beq lbl_803AF850 +/* 803AF838 003AC798 48 00 58 85 */ bl hwDisableIrq +/* 803AF83C 003AC79C 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803AF840 003AC7A0 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf +/* 803AF844 003AC7A4 41 82 00 08 */ beq lbl_803AF84C +/* 803AF848 003AC7A8 83 FE 00 3C */ lwz r31, 0x3c(r30) +lbl_803AF84C: +/* 803AF84C 003AC7AC 48 00 58 39 */ bl hwEnableIrq +lbl_803AF850: +/* 803AF850 003AC7B0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803AF854 003AC7B4 7F E3 FB 78 */ mr r3, r31 +/* 803AF858 003AC7B8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803AF85C 003AC7BC 83 C1 00 08 */ lwz r30, 8(r1) +/* 803AF860 003AC7C0 7C 08 03 A6 */ mtlr r0 +/* 803AF864 003AC7C4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803AF868 003AC7C8 4E 80 00 20 */ blr + +.global s3dKillEmitterByFXID +s3dKillEmitterByFXID: +/* 803AF86C 003AC7CC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803AF870 003AC7D0 7C 08 02 A6 */ mflr r0 +/* 803AF874 003AC7D4 90 01 00 24 */ stw r0, 0x24(r1) +/* 803AF878 003AC7D8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803AF87C 003AC7DC 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803AF880 003AC7E0 7C 9E 23 78 */ mr r30, r4 +/* 803AF884 003AC7E4 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803AF888 003AC7E8 7C 7D 1B 78 */ mr r29, r3 +/* 803AF88C 003AC7EC 93 81 00 10 */ stw r28, 0x10(r1) +/* 803AF890 003AC7F0 83 8D AF 78 */ lwz r28, lbl_805A9B38@sda21(r13) +/* 803AF894 003AC7F4 48 00 00 AC */ b lbl_803AF940 +lbl_803AF898: +/* 803AF898 003AC7F8 7F A4 EB 78 */ mr r4, r29 +/* 803AF89C 003AC7FC 83 FC 00 00 */ lwz r31, 0(r28) +/* 803AF8A0 003AC800 7F C9 03 A6 */ mtctr r30 +/* 803AF8A4 003AC804 28 1E 00 00 */ cmplwi r30, 0 +/* 803AF8A8 003AC808 40 81 00 94 */ ble lbl_803AF93C +lbl_803AF8AC: +/* 803AF8AC 003AC80C A0 7C 00 44 */ lhz r3, 0x44(r28) +/* 803AF8B0 003AC810 A0 04 00 00 */ lhz r0, 0(r4) +/* 803AF8B4 003AC814 7C 03 00 40 */ cmplw r3, r0 +/* 803AF8B8 003AC818 40 82 00 7C */ bne lbl_803AF934 +/* 803AF8BC 003AC81C 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AF8C0 003AC820 28 00 00 00 */ cmplwi r0, 0 +/* 803AF8C4 003AC824 41 82 00 78 */ beq lbl_803AF93C +/* 803AF8C8 003AC828 48 00 57 F5 */ bl hwDisableIrq +/* 803AF8CC 003AC82C 80 1C 00 10 */ lwz r0, 0x10(r28) +/* 803AF8D0 003AC830 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf +/* 803AF8D4 003AC834 41 82 00 58 */ beq lbl_803AF92C +/* 803AF8D8 003AC838 80 7C 00 00 */ lwz r3, 0(r28) +/* 803AF8DC 003AC83C 28 03 00 00 */ cmplwi r3, 0 +/* 803AF8E0 003AC840 41 82 00 0C */ beq lbl_803AF8EC +/* 803AF8E4 003AC844 80 1C 00 04 */ lwz r0, 4(r28) +/* 803AF8E8 003AC848 90 03 00 04 */ stw r0, 4(r3) +lbl_803AF8EC: +/* 803AF8EC 003AC84C 80 7C 00 04 */ lwz r3, 4(r28) +/* 803AF8F0 003AC850 28 03 00 00 */ cmplwi r3, 0 +/* 803AF8F4 003AC854 41 82 00 10 */ beq lbl_803AF904 +/* 803AF8F8 003AC858 80 1C 00 00 */ lwz r0, 0(r28) +/* 803AF8FC 003AC85C 90 03 00 00 */ stw r0, 0(r3) +/* 803AF900 003AC860 48 00 00 0C */ b lbl_803AF90C +lbl_803AF904: +/* 803AF904 003AC864 80 1C 00 00 */ lwz r0, 0(r28) +/* 803AF908 003AC868 90 0D AF 78 */ stw r0, lbl_805A9B38@sda21(r13) +lbl_803AF90C: +/* 803AF90C 003AC86C 80 1C 00 10 */ lwz r0, 0x10(r28) +/* 803AF910 003AC870 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 803AF914 003AC874 90 1C 00 10 */ stw r0, 0x10(r28) +/* 803AF918 003AC878 80 7C 00 3C */ lwz r3, 0x3c(r28) +/* 803AF91C 003AC87C 3C 03 00 01 */ addis r0, r3, 1 +/* 803AF920 003AC880 28 00 FF FF */ cmplwi r0, 0xffff +/* 803AF924 003AC884 41 82 00 08 */ beq lbl_803AF92C +/* 803AF928 003AC888 4B FE BA 39 */ bl synthSendKeyOff +lbl_803AF92C: +/* 803AF92C 003AC88C 48 00 57 59 */ bl hwEnableIrq +/* 803AF930 003AC890 48 00 00 0C */ b lbl_803AF93C +lbl_803AF934: +/* 803AF934 003AC894 38 84 00 0A */ addi r4, r4, 0xa +/* 803AF938 003AC898 42 00 FF 74 */ bdnz lbl_803AF8AC +lbl_803AF93C: +/* 803AF93C 003AC89C 7F FC FB 78 */ mr r28, r31 +lbl_803AF940: +/* 803AF940 003AC8A0 28 1C 00 00 */ cmplwi r28, 0 +/* 803AF944 003AC8A4 40 82 FF 54 */ bne lbl_803AF898 +/* 803AF948 003AC8A8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803AF94C 003AC8AC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803AF950 003AC8B0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803AF954 003AC8B4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803AF958 003AC8B8 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803AF95C 003AC8BC 7C 08 03 A6 */ mtlr r0 +/* 803AF960 003AC8C0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803AF964 003AC8C4 4E 80 00 20 */ blr + +.global sndUpdateListener +sndUpdateListener: +/* 803AF968 003AC8C8 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 803AF96C 003AC8CC 7C 08 02 A6 */ mflr r0 +/* 803AF970 003AC8D0 90 01 00 64 */ stw r0, 0x64(r1) +/* 803AF974 003AC8D4 39 61 00 60 */ addi r11, r1, 0x60 +/* 803AF978 003AC8D8 4B FD A0 FD */ bl func_80389A74 +/* 803AF97C 003AC8DC 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AF980 003AC8E0 7C 7E 1B 78 */ mr r30, r3 +/* 803AF984 003AC8E4 7C 99 23 78 */ mr r25, r4 +/* 803AF988 003AC8E8 7C BA 2B 78 */ mr r26, r5 +/* 803AF98C 003AC8EC 28 00 00 00 */ cmplwi r0, 0 +/* 803AF990 003AC8F0 7C DB 33 78 */ mr r27, r6 +/* 803AF994 003AC8F4 7C FC 3B 78 */ mr r28, r7 +/* 803AF998 003AC8F8 7D 1D 43 78 */ mr r29, r8 +/* 803AF99C 003AC8FC 7D 3F 4B 78 */ mr r31, r9 +/* 803AF9A0 003AC900 41 82 01 B0 */ beq lbl_803AFB50 +/* 803AF9A4 003AC904 48 00 57 19 */ bl hwDisableIrq +/* 803AF9A8 003AC908 80 D9 00 00 */ lwz r6, 0(r25) +/* 803AF9AC 003AC90C 38 7E 00 38 */ addi r3, r30, 0x38 +/* 803AF9B0 003AC910 80 19 00 04 */ lwz r0, 4(r25) +/* 803AF9B4 003AC914 38 9E 00 2C */ addi r4, r30, 0x2c +/* 803AF9B8 003AC918 38 BE 00 44 */ addi r5, r30, 0x44 +/* 803AF9BC 003AC91C 90 DE 00 10 */ stw r6, 0x10(r30) +/* 803AF9C0 003AC920 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803AF9C4 003AC924 80 19 00 08 */ lwz r0, 8(r25) +/* 803AF9C8 003AC928 90 1E 00 18 */ stw r0, 0x18(r30) +/* 803AF9CC 003AC92C 80 DA 00 00 */ lwz r6, 0(r26) +/* 803AF9D0 003AC930 80 1A 00 04 */ lwz r0, 4(r26) +/* 803AF9D4 003AC934 90 DE 00 20 */ stw r6, 0x20(r30) +/* 803AF9D8 003AC938 90 1E 00 24 */ stw r0, 0x24(r30) +/* 803AF9DC 003AC93C 80 1A 00 08 */ lwz r0, 8(r26) +/* 803AF9E0 003AC940 90 1E 00 28 */ stw r0, 0x28(r30) +/* 803AF9E4 003AC944 80 DB 00 00 */ lwz r6, 0(r27) +/* 803AF9E8 003AC948 80 1B 00 04 */ lwz r0, 4(r27) +/* 803AF9EC 003AC94C 90 DE 00 2C */ stw r6, 0x2c(r30) +/* 803AF9F0 003AC950 90 1E 00 30 */ stw r0, 0x30(r30) +/* 803AF9F4 003AC954 80 1B 00 08 */ lwz r0, 8(r27) +/* 803AF9F8 003AC958 90 1E 00 34 */ stw r0, 0x34(r30) +/* 803AF9FC 003AC95C 80 DC 00 00 */ lwz r6, 0(r28) +/* 803AFA00 003AC960 80 1C 00 04 */ lwz r0, 4(r28) +/* 803AFA04 003AC964 90 DE 00 44 */ stw r6, 0x44(r30) +/* 803AFA08 003AC968 90 1E 00 48 */ stw r0, 0x48(r30) +/* 803AFA0C 003AC96C 80 1C 00 08 */ lwz r0, 8(r28) +/* 803AFA10 003AC970 90 1E 00 4C */ stw r0, 0x4c(r30) +/* 803AFA14 003AC974 48 00 14 59 */ bl salCrossProduct +/* 803AFA18 003AC978 C0 1E 00 38 */ lfs f0, 0x38(r30) +/* 803AFA1C 003AC97C 38 7E 00 50 */ addi r3, r30, 0x50 +/* 803AFA20 003AC980 38 81 00 08 */ addi r4, r1, 8 +/* 803AFA24 003AC984 D0 01 00 08 */ stfs f0, 8(r1) +/* 803AFA28 003AC988 C0 1E 00 3C */ lfs f0, 0x3c(r30) +/* 803AFA2C 003AC98C D0 01 00 14 */ stfs f0, 0x14(r1) +/* 803AFA30 003AC990 C0 1E 00 40 */ lfs f0, 0x40(r30) +/* 803AFA34 003AC994 D0 01 00 20 */ stfs f0, 0x20(r1) +/* 803AFA38 003AC998 C0 1E 00 44 */ lfs f0, 0x44(r30) +/* 803AFA3C 003AC99C D0 01 00 0C */ stfs f0, 0xc(r1) +/* 803AFA40 003AC9A0 C0 1E 00 48 */ lfs f0, 0x48(r30) +/* 803AFA44 003AC9A4 D0 01 00 18 */ stfs f0, 0x18(r1) +/* 803AFA48 003AC9A8 C0 1E 00 4C */ lfs f0, 0x4c(r30) +/* 803AFA4C 003AC9AC D0 01 00 24 */ stfs f0, 0x24(r1) +/* 803AFA50 003AC9B0 C0 1E 00 2C */ lfs f0, 0x2c(r30) +/* 803AFA54 003AC9B4 FC 00 00 50 */ fneg f0, f0 +/* 803AFA58 003AC9B8 D0 01 00 10 */ stfs f0, 0x10(r1) +/* 803AFA5C 003AC9BC C0 1E 00 30 */ lfs f0, 0x30(r30) +/* 803AFA60 003AC9C0 FC 00 00 50 */ fneg f0, f0 +/* 803AFA64 003AC9C4 D0 01 00 1C */ stfs f0, 0x1c(r1) +/* 803AFA68 003AC9C8 C0 1E 00 34 */ lfs f0, 0x34(r30) +/* 803AFA6C 003AC9CC FC 00 00 50 */ fneg f0, f0 +/* 803AFA70 003AC9D0 D0 01 00 28 */ stfs f0, 0x28(r1) +/* 803AFA74 003AC9D4 C0 1E 00 10 */ lfs f0, 0x10(r30) +/* 803AFA78 003AC9D8 D0 01 00 2C */ stfs f0, 0x2c(r1) +/* 803AFA7C 003AC9DC C0 1E 00 14 */ lfs f0, 0x14(r30) +/* 803AFA80 003AC9E0 D0 01 00 30 */ stfs f0, 0x30(r1) +/* 803AFA84 003AC9E4 C0 1E 00 18 */ lfs f0, 0x18(r30) +/* 803AFA88 003AC9E8 D0 01 00 34 */ stfs f0, 0x34(r1) +/* 803AFA8C 003AC9EC 48 00 14 45 */ bl salInvertMatrix +/* 803AFA90 003AC9F0 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 803AFA94 003AC9F4 3C 00 43 30 */ lis r0, 0x4330 +/* 803AFA98 003AC9F8 90 61 00 3C */ stw r3, 0x3c(r1) +/* 803AFA9C 003AC9FC C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2) +/* 803AFAA0 003ACA00 90 01 00 38 */ stw r0, 0x38(r1) +/* 803AFAA4 003ACA04 C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2) +/* 803AFAA8 003ACA08 C8 21 00 38 */ lfd f1, 0x38(r1) +/* 803AFAAC 003ACA0C EC 21 10 28 */ fsubs f1, f1, f2 +/* 803AFAB0 003ACA10 EC 01 00 24 */ fdivs f0, f1, f0 +/* 803AFAB4 003ACA14 D0 1E 00 8C */ stfs f0, 0x8c(r30) +/* 803AFAB8 003ACA18 80 BE 00 08 */ lwz r5, 8(r30) +/* 803AFABC 003ACA1C 7C 1F 28 40 */ cmplw r31, r5 +/* 803AFAC0 003ACA20 41 82 00 84 */ beq lbl_803AFB44 +/* 803AFAC4 003ACA24 28 05 00 00 */ cmplwi r5, 0 +/* 803AFAC8 003ACA28 41 82 00 4C */ beq lbl_803AFB14 +/* 803AFACC 003ACA2C 80 6D AF 74 */ lwz r3, lbl_805A9B34@sda21(r13) +/* 803AFAD0 003ACA30 38 80 00 00 */ li r4, 0 +/* 803AFAD4 003ACA34 48 00 00 18 */ b lbl_803AFAEC +lbl_803AFAD8: +/* 803AFAD8 003ACA38 80 03 00 08 */ lwz r0, 8(r3) +/* 803AFADC 003ACA3C 7C 00 28 40 */ cmplw r0, r5 +/* 803AFAE0 003ACA40 40 82 00 08 */ bne lbl_803AFAE8 +/* 803AFAE4 003ACA44 38 84 00 01 */ addi r4, r4, 1 +lbl_803AFAE8: +/* 803AFAE8 003ACA48 80 63 00 00 */ lwz r3, 0(r3) +lbl_803AFAEC: +/* 803AFAEC 003ACA4C 28 03 00 00 */ cmplwi r3, 0 +/* 803AFAF0 003ACA50 40 82 FF E8 */ bne lbl_803AFAD8 +/* 803AFAF4 003ACA54 28 04 00 01 */ cmplwi r4, 1 +/* 803AFAF8 003ACA58 40 82 00 1C */ bne lbl_803AFB14 +/* 803AFAFC 003ACA5C 80 05 00 08 */ lwz r0, 8(r5) +/* 803AFB00 003ACA60 54 00 00 7E */ clrlwi r0, r0, 1 +/* 803AFB04 003ACA64 90 05 00 08 */ stw r0, 8(r5) +/* 803AFB08 003ACA68 80 05 00 08 */ lwz r0, 8(r5) +/* 803AFB0C 003ACA6C 64 00 40 00 */ oris r0, r0, 0x4000 +/* 803AFB10 003ACA70 90 05 00 08 */ stw r0, 8(r5) +lbl_803AFB14: +/* 803AFB14 003ACA74 28 1F 00 00 */ cmplwi r31, 0 +/* 803AFB18 003ACA78 93 FE 00 08 */ stw r31, 8(r30) +/* 803AFB1C 003ACA7C 41 82 00 28 */ beq lbl_803AFB44 +/* 803AFB20 003ACA80 80 9E 00 08 */ lwz r4, 8(r30) +/* 803AFB24 003ACA84 80 64 00 08 */ lwz r3, 8(r4) +/* 803AFB28 003ACA88 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 +/* 803AFB2C 003ACA8C 40 82 00 18 */ bne lbl_803AFB44 +/* 803AFB30 003ACA90 80 04 00 2C */ lwz r0, 0x2c(r4) +/* 803AFB34 003ACA94 28 00 00 00 */ cmplwi r0, 0 +/* 803AFB38 003ACA98 40 82 00 0C */ bne lbl_803AFB44 +/* 803AFB3C 003ACA9C 64 60 80 00 */ oris r0, r3, 0x8000 +/* 803AFB40 003ACAA0 90 04 00 08 */ stw r0, 8(r4) +lbl_803AFB44: +/* 803AFB44 003ACAA4 48 00 55 41 */ bl hwEnableIrq +/* 803AFB48 003ACAA8 38 60 00 01 */ li r3, 1 +/* 803AFB4C 003ACAAC 48 00 00 08 */ b lbl_803AFB54 +lbl_803AFB50: +/* 803AFB50 003ACAB0 38 60 00 00 */ li r3, 0 +lbl_803AFB54: +/* 803AFB54 003ACAB4 39 61 00 60 */ addi r11, r1, 0x60 +/* 803AFB58 003ACAB8 4B FD 9F 69 */ bl _restgpr_25 +/* 803AFB5C 003ACABC 80 01 00 64 */ lwz r0, 0x64(r1) +/* 803AFB60 003ACAC0 7C 08 03 A6 */ mtlr r0 +/* 803AFB64 003ACAC4 38 21 00 60 */ addi r1, r1, 0x60 +/* 803AFB68 003ACAC8 4E 80 00 20 */ blr + +.global sndAddListener +sndAddListener: +/* 803AFB6C 003ACACC 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 803AFB70 003ACAD0 7C 08 02 A6 */ mflr r0 +/* 803AFB74 003ACAD4 90 01 00 94 */ stw r0, 0x94(r1) +/* 803AFB78 003ACAD8 DB E1 00 80 */ stfd f31, 0x80(r1) +/* 803AFB7C 003ACADC F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0 +/* 803AFB80 003ACAE0 DB C1 00 70 */ stfd f30, 0x70(r1) +/* 803AFB84 003ACAE4 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0 +/* 803AFB88 003ACAE8 DB A1 00 60 */ stfd f29, 0x60(r1) +/* 803AFB8C 003ACAEC F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0 +/* 803AFB90 003ACAF0 39 61 00 60 */ addi r11, r1, 0x60 +/* 803AFB94 003ACAF4 4B FD 9E DD */ bl func_80389A70 +/* 803AFB98 003ACAF8 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AFB9C 003ACAFC FF A0 08 90 */ fmr f29, f1 +/* 803AFBA0 003ACB00 FF C0 10 90 */ fmr f30, f2 +/* 803AFBA4 003ACB04 7C 7B 1B 78 */ mr r27, r3 +/* 803AFBA8 003ACB08 FF E0 18 90 */ fmr f31, f3 +/* 803AFBAC 003ACB0C 28 00 00 00 */ cmplwi r0, 0 +/* 803AFBB0 003ACB10 7C 98 23 78 */ mr r24, r4 +/* 803AFBB4 003ACB14 7C B9 2B 78 */ mr r25, r5 +/* 803AFBB8 003ACB18 7C DA 33 78 */ mr r26, r6 +/* 803AFBBC 003ACB1C 7C FC 3B 78 */ mr r28, r7 +/* 803AFBC0 003ACB20 7D 1D 43 78 */ mr r29, r8 +/* 803AFBC4 003ACB24 7D 3E 4B 78 */ mr r30, r9 +/* 803AFBC8 003ACB28 7D 5F 53 78 */ mr r31, r10 +/* 803AFBCC 003ACB2C 41 82 01 8C */ beq lbl_803AFD58 +/* 803AFBD0 003ACB30 48 00 54 ED */ bl hwDisableIrq +/* 803AFBD4 003ACB34 80 0D AF 74 */ lwz r0, lbl_805A9B34@sda21(r13) +/* 803AFBD8 003ACB38 28 00 00 00 */ cmplwi r0, 0 +/* 803AFBDC 003ACB3C 90 1B 00 00 */ stw r0, 0(r27) +/* 803AFBE0 003ACB40 41 82 00 0C */ beq lbl_803AFBEC +/* 803AFBE4 003ACB44 80 6D AF 74 */ lwz r3, lbl_805A9B34@sda21(r13) +/* 803AFBE8 003ACB48 93 63 00 04 */ stw r27, 4(r3) +lbl_803AFBEC: +/* 803AFBEC 003ACB4C 38 00 00 00 */ li r0, 0 +/* 803AFBF0 003ACB50 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803AFBF4 003ACB54 90 1B 00 04 */ stw r0, 4(r27) +/* 803AFBF8 003ACB58 38 7B 00 38 */ addi r3, r27, 0x38 +/* 803AFBFC 003ACB5C 38 9B 00 2C */ addi r4, r27, 0x2c +/* 803AFC00 003ACB60 38 BB 00 44 */ addi r5, r27, 0x44 +/* 803AFC04 003ACB64 93 6D AF 74 */ stw r27, lbl_805A9B34@sda21(r13) +/* 803AFC08 003ACB68 80 D8 00 00 */ lwz r6, 0(r24) +/* 803AFC0C 003ACB6C 80 18 00 04 */ lwz r0, 4(r24) +/* 803AFC10 003ACB70 90 DB 00 10 */ stw r6, 0x10(r27) +/* 803AFC14 003ACB74 90 1B 00 14 */ stw r0, 0x14(r27) +/* 803AFC18 003ACB78 80 18 00 08 */ lwz r0, 8(r24) +/* 803AFC1C 003ACB7C 90 1B 00 18 */ stw r0, 0x18(r27) +/* 803AFC20 003ACB80 80 D9 00 00 */ lwz r6, 0(r25) +/* 803AFC24 003ACB84 80 19 00 04 */ lwz r0, 4(r25) +/* 803AFC28 003ACB88 90 DB 00 20 */ stw r6, 0x20(r27) +/* 803AFC2C 003ACB8C 90 1B 00 24 */ stw r0, 0x24(r27) +/* 803AFC30 003ACB90 80 19 00 08 */ lwz r0, 8(r25) +/* 803AFC34 003ACB94 90 1B 00 28 */ stw r0, 0x28(r27) +/* 803AFC38 003ACB98 80 DA 00 00 */ lwz r6, 0(r26) +/* 803AFC3C 003ACB9C 80 1A 00 04 */ lwz r0, 4(r26) +/* 803AFC40 003ACBA0 90 DB 00 2C */ stw r6, 0x2c(r27) +/* 803AFC44 003ACBA4 90 1B 00 30 */ stw r0, 0x30(r27) +/* 803AFC48 003ACBA8 80 1A 00 08 */ lwz r0, 8(r26) +/* 803AFC4C 003ACBAC 90 1B 00 34 */ stw r0, 0x34(r27) +/* 803AFC50 003ACBB0 80 DC 00 00 */ lwz r6, 0(r28) +/* 803AFC54 003ACBB4 80 1C 00 04 */ lwz r0, 4(r28) +/* 803AFC58 003ACBB8 90 DB 00 44 */ stw r6, 0x44(r27) +/* 803AFC5C 003ACBBC 90 1B 00 48 */ stw r0, 0x48(r27) +/* 803AFC60 003ACBC0 80 1C 00 08 */ lwz r0, 8(r28) +/* 803AFC64 003ACBC4 90 1B 00 4C */ stw r0, 0x4c(r27) +/* 803AFC68 003ACBC8 D3 BB 00 80 */ stfs f29, 0x80(r27) +/* 803AFC6C 003ACBCC D3 DB 00 84 */ stfs f30, 0x84(r27) +/* 803AFC70 003ACBD0 D3 FB 00 88 */ stfs f31, 0x88(r27) +/* 803AFC74 003ACBD4 D0 1B 00 1C */ stfs f0, 0x1c(r27) +/* 803AFC78 003ACBD8 48 00 11 F5 */ bl salCrossProduct +/* 803AFC7C 003ACBDC C0 1B 00 38 */ lfs f0, 0x38(r27) +/* 803AFC80 003ACBE0 38 7B 00 50 */ addi r3, r27, 0x50 +/* 803AFC84 003ACBE4 38 81 00 08 */ addi r4, r1, 8 +/* 803AFC88 003ACBE8 D0 01 00 08 */ stfs f0, 8(r1) +/* 803AFC8C 003ACBEC C0 1B 00 3C */ lfs f0, 0x3c(r27) +/* 803AFC90 003ACBF0 D0 01 00 14 */ stfs f0, 0x14(r1) +/* 803AFC94 003ACBF4 C0 1B 00 40 */ lfs f0, 0x40(r27) +/* 803AFC98 003ACBF8 D0 01 00 20 */ stfs f0, 0x20(r1) +/* 803AFC9C 003ACBFC C0 1B 00 44 */ lfs f0, 0x44(r27) +/* 803AFCA0 003ACC00 D0 01 00 0C */ stfs f0, 0xc(r1) +/* 803AFCA4 003ACC04 C0 1B 00 48 */ lfs f0, 0x48(r27) +/* 803AFCA8 003ACC08 D0 01 00 18 */ stfs f0, 0x18(r1) +/* 803AFCAC 003ACC0C C0 1B 00 4C */ lfs f0, 0x4c(r27) +/* 803AFCB0 003ACC10 D0 01 00 24 */ stfs f0, 0x24(r1) +/* 803AFCB4 003ACC14 C0 1B 00 2C */ lfs f0, 0x2c(r27) +/* 803AFCB8 003ACC18 FC 00 00 50 */ fneg f0, f0 +/* 803AFCBC 003ACC1C D0 01 00 10 */ stfs f0, 0x10(r1) +/* 803AFCC0 003ACC20 C0 1B 00 30 */ lfs f0, 0x30(r27) +/* 803AFCC4 003ACC24 FC 00 00 50 */ fneg f0, f0 +/* 803AFCC8 003ACC28 D0 01 00 1C */ stfs f0, 0x1c(r1) +/* 803AFCCC 003ACC2C C0 1B 00 34 */ lfs f0, 0x34(r27) +/* 803AFCD0 003ACC30 FC 00 00 50 */ fneg f0, f0 +/* 803AFCD4 003ACC34 D0 01 00 28 */ stfs f0, 0x28(r1) +/* 803AFCD8 003ACC38 C0 1B 00 10 */ lfs f0, 0x10(r27) +/* 803AFCDC 003ACC3C D0 01 00 2C */ stfs f0, 0x2c(r1) +/* 803AFCE0 003ACC40 C0 1B 00 14 */ lfs f0, 0x14(r27) +/* 803AFCE4 003ACC44 D0 01 00 30 */ stfs f0, 0x30(r1) +/* 803AFCE8 003ACC48 C0 1B 00 18 */ lfs f0, 0x18(r27) +/* 803AFCEC 003ACC4C D0 01 00 34 */ stfs f0, 0x34(r1) +/* 803AFCF0 003ACC50 48 00 11 E1 */ bl salInvertMatrix +/* 803AFCF4 003ACC54 57 C3 06 3E */ clrlwi r3, r30, 0x18 +/* 803AFCF8 003ACC58 3C 00 43 30 */ lis r0, 0x4330 +/* 803AFCFC 003ACC5C 90 61 00 3C */ stw r3, 0x3c(r1) +/* 803AFD00 003ACC60 28 1F 00 00 */ cmplwi r31, 0 +/* 803AFD04 003ACC64 C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2) +/* 803AFD08 003ACC68 90 01 00 38 */ stw r0, 0x38(r1) +/* 803AFD0C 003ACC6C C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2) +/* 803AFD10 003ACC70 C8 21 00 38 */ lfd f1, 0x38(r1) +/* 803AFD14 003ACC74 93 BB 00 0C */ stw r29, 0xc(r27) +/* 803AFD18 003ACC78 EC 21 10 28 */ fsubs f1, f1, f2 +/* 803AFD1C 003ACC7C EC 01 00 24 */ fdivs f0, f1, f0 +/* 803AFD20 003ACC80 D0 1B 00 8C */ stfs f0, 0x8c(r27) +/* 803AFD24 003ACC84 93 FB 00 08 */ stw r31, 8(r27) +/* 803AFD28 003ACC88 41 82 00 24 */ beq lbl_803AFD4C +/* 803AFD2C 003ACC8C 80 7F 00 08 */ lwz r3, 8(r31) +/* 803AFD30 003ACC90 54 60 00 01 */ rlwinm. r0, r3, 0, 0, 0 +/* 803AFD34 003ACC94 40 82 00 18 */ bne lbl_803AFD4C +/* 803AFD38 003ACC98 80 1F 00 2C */ lwz r0, 0x2c(r31) +/* 803AFD3C 003ACC9C 28 00 00 00 */ cmplwi r0, 0 +/* 803AFD40 003ACCA0 40 82 00 0C */ bne lbl_803AFD4C +/* 803AFD44 003ACCA4 64 60 80 00 */ oris r0, r3, 0x8000 +/* 803AFD48 003ACCA8 90 1F 00 08 */ stw r0, 8(r31) +lbl_803AFD4C: +/* 803AFD4C 003ACCAC 48 00 53 39 */ bl hwEnableIrq +/* 803AFD50 003ACCB0 38 60 00 01 */ li r3, 1 +/* 803AFD54 003ACCB4 48 00 00 08 */ b lbl_803AFD5C +lbl_803AFD58: +/* 803AFD58 003ACCB8 38 60 00 00 */ li r3, 0 +lbl_803AFD5C: +/* 803AFD5C 003ACCBC E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0 +/* 803AFD60 003ACCC0 CB E1 00 80 */ lfd f31, 0x80(r1) +/* 803AFD64 003ACCC4 E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0 +/* 803AFD68 003ACCC8 CB C1 00 70 */ lfd f30, 0x70(r1) +/* 803AFD6C 003ACCCC E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0 +/* 803AFD70 003ACCD0 39 61 00 60 */ addi r11, r1, 0x60 +/* 803AFD74 003ACCD4 CB A1 00 60 */ lfd f29, 0x60(r1) +/* 803AFD78 003ACCD8 4B FD 9D 45 */ bl _restgpr_24 +/* 803AFD7C 003ACCDC 80 01 00 94 */ lwz r0, 0x94(r1) +/* 803AFD80 003ACCE0 7C 08 03 A6 */ mtlr r0 +/* 803AFD84 003ACCE4 38 21 00 90 */ addi r1, r1, 0x90 +/* 803AFD88 003ACCE8 4E 80 00 20 */ blr + +.global sub_803afd8c +sub_803afd8c: +/* 803AFD8C 003ACCEC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803AFD90 003ACCF0 7C 08 02 A6 */ mflr r0 +/* 803AFD94 003ACCF4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803AFD98 003ACCF8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803AFD9C 003ACCFC 7C 7F 1B 78 */ mr r31, r3 +/* 803AFDA0 003ACD00 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803AFDA4 003ACD04 28 00 00 00 */ cmplwi r0, 0 +/* 803AFDA8 003ACD08 41 82 00 9C */ beq lbl_803AFE44 +/* 803AFDAC 003ACD0C 48 00 53 11 */ bl hwDisableIrq +/* 803AFDB0 003ACD10 80 BF 00 08 */ lwz r5, 8(r31) +/* 803AFDB4 003ACD14 28 05 00 00 */ cmplwi r5, 0 +/* 803AFDB8 003ACD18 41 82 00 4C */ beq lbl_803AFE04 +/* 803AFDBC 003ACD1C 80 6D AF 74 */ lwz r3, lbl_805A9B34@sda21(r13) +/* 803AFDC0 003ACD20 38 80 00 00 */ li r4, 0 +/* 803AFDC4 003ACD24 48 00 00 18 */ b lbl_803AFDDC +lbl_803AFDC8: +/* 803AFDC8 003ACD28 80 03 00 08 */ lwz r0, 8(r3) +/* 803AFDCC 003ACD2C 7C 00 28 40 */ cmplw r0, r5 +/* 803AFDD0 003ACD30 40 82 00 08 */ bne lbl_803AFDD8 +/* 803AFDD4 003ACD34 38 84 00 01 */ addi r4, r4, 1 +lbl_803AFDD8: +/* 803AFDD8 003ACD38 80 63 00 00 */ lwz r3, 0(r3) +lbl_803AFDDC: +/* 803AFDDC 003ACD3C 28 03 00 00 */ cmplwi r3, 0 +/* 803AFDE0 003ACD40 40 82 FF E8 */ bne lbl_803AFDC8 +/* 803AFDE4 003ACD44 28 04 00 01 */ cmplwi r4, 1 +/* 803AFDE8 003ACD48 40 82 00 1C */ bne lbl_803AFE04 +/* 803AFDEC 003ACD4C 80 05 00 08 */ lwz r0, 8(r5) +/* 803AFDF0 003ACD50 54 00 00 7E */ clrlwi r0, r0, 1 +/* 803AFDF4 003ACD54 90 05 00 08 */ stw r0, 8(r5) +/* 803AFDF8 003ACD58 80 05 00 08 */ lwz r0, 8(r5) +/* 803AFDFC 003ACD5C 64 00 40 00 */ oris r0, r0, 0x4000 +/* 803AFE00 003ACD60 90 05 00 08 */ stw r0, 8(r5) +lbl_803AFE04: +/* 803AFE04 003ACD64 80 7F 00 00 */ lwz r3, 0(r31) +/* 803AFE08 003ACD68 28 03 00 00 */ cmplwi r3, 0 +/* 803AFE0C 003ACD6C 41 82 00 0C */ beq lbl_803AFE18 +/* 803AFE10 003ACD70 80 1F 00 04 */ lwz r0, 4(r31) +/* 803AFE14 003ACD74 90 03 00 04 */ stw r0, 4(r3) +lbl_803AFE18: +/* 803AFE18 003ACD78 80 7F 00 04 */ lwz r3, 4(r31) +/* 803AFE1C 003ACD7C 28 03 00 00 */ cmplwi r3, 0 +/* 803AFE20 003ACD80 41 82 00 10 */ beq lbl_803AFE30 +/* 803AFE24 003ACD84 80 1F 00 00 */ lwz r0, 0(r31) +/* 803AFE28 003ACD88 90 03 00 00 */ stw r0, 0(r3) +/* 803AFE2C 003ACD8C 48 00 00 0C */ b lbl_803AFE38 +lbl_803AFE30: +/* 803AFE30 003ACD90 80 1F 00 00 */ lwz r0, 0(r31) +/* 803AFE34 003ACD94 90 0D AF 74 */ stw r0, lbl_805A9B34@sda21(r13) +lbl_803AFE38: +/* 803AFE38 003ACD98 48 00 52 4D */ bl hwEnableIrq +/* 803AFE3C 003ACD9C 38 60 00 01 */ li r3, 1 +/* 803AFE40 003ACDA0 48 00 00 08 */ b lbl_803AFE48 +lbl_803AFE44: +/* 803AFE44 003ACDA4 38 60 00 00 */ li r3, 0 +lbl_803AFE48: +/* 803AFE48 003ACDA8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803AFE4C 003ACDAC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803AFE50 003ACDB0 7C 08 03 A6 */ mtlr r0 +/* 803AFE54 003ACDB4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803AFE58 003ACDB8 4E 80 00 20 */ blr + +.global sub_803afe5c +sub_803afe5c: +/* 803AFE5C 003ACDBC 88 CD AF 62 */ lbz r6, lbl_805A9B22@sda21(r13) +/* 803AFE60 003ACDC0 3C 80 80 56 */ lis r4, lbl_8055F990@ha +/* 803AFE64 003ACDC4 38 A4 F9 90 */ addi r5, r4, lbl_8055F990@l +/* 803AFE68 003ACDC8 39 20 00 00 */ li r9, 0 +/* 803AFE6C 003ACDCC 7C C9 03 A6 */ mtctr r6 +/* 803AFE70 003ACDD0 2C 06 00 00 */ cmpwi r6, 0 +/* 803AFE74 003ACDD4 40 81 00 20 */ ble lbl_803AFE94 +lbl_803AFE78: +/* 803AFE78 003ACDD8 80 83 00 40 */ lwz r4, 0x40(r3) +/* 803AFE7C 003ACDDC 80 05 00 00 */ lwz r0, 0(r5) +/* 803AFE80 003ACDE0 7C 04 00 40 */ cmplw r4, r0 +/* 803AFE84 003ACDE4 41 82 00 10 */ beq lbl_803AFE94 +/* 803AFE88 003ACDE8 38 A5 00 10 */ addi r5, r5, 0x10 +/* 803AFE8C 003ACDEC 39 29 00 01 */ addi r9, r9, 1 +/* 803AFE90 003ACDF0 42 00 FF E8 */ bdnz lbl_803AFE78 +lbl_803AFE94: +/* 803AFE94 003ACDF4 7C 09 30 00 */ cmpw r9, r6 +/* 803AFE98 003ACDF8 40 82 00 48 */ bne lbl_803AFEE0 +/* 803AFE9C 003ACDFC 28 06 00 40 */ cmplwi r6, 0x40 +/* 803AFEA0 003ACE00 40 82 00 0C */ bne lbl_803AFEAC +/* 803AFEA4 003ACE04 38 60 00 00 */ li r3, 0 +/* 803AFEA8 003ACE08 4E 80 00 20 */ blr +lbl_803AFEAC: +/* 803AFEAC 003ACE0C 3C A0 80 56 */ lis r5, lbl_8055F990@ha +/* 803AFEB0 003ACE10 88 8D AF 62 */ lbz r4, lbl_805A9B22@sda21(r13) +/* 803AFEB4 003ACE14 38 C5 F9 90 */ addi r6, r5, lbl_8055F990@l +/* 803AFEB8 003ACE18 55 28 20 36 */ slwi r8, r9, 4 +/* 803AFEBC 003ACE1C 7C A6 42 14 */ add r5, r6, r8 +/* 803AFEC0 003ACE20 38 E0 00 00 */ li r7, 0 +/* 803AFEC4 003ACE24 90 E5 00 04 */ stw r7, 4(r5) +/* 803AFEC8 003ACE28 38 04 00 01 */ addi r0, r4, 1 +/* 803AFECC 003ACE2C 90 E5 00 08 */ stw r7, 8(r5) +/* 803AFED0 003ACE30 B0 E5 00 0C */ sth r7, 0xc(r5) +/* 803AFED4 003ACE34 80 83 00 40 */ lwz r4, 0x40(r3) +/* 803AFED8 003ACE38 7C 86 41 2E */ stwx r4, r6, r8 +/* 803AFEDC 003ACE3C 98 0D AF 62 */ stb r0, lbl_805A9B22@sda21(r13) +lbl_803AFEE0: +/* 803AFEE0 003ACE40 88 AD AF 61 */ lbz r5, lbl_805A9B21@sda21(r13) +/* 803AFEE4 003ACE44 28 05 00 40 */ cmplwi r5, 0x40 +/* 803AFEE8 003ACE48 40 82 00 0C */ bne lbl_803AFEF4 +/* 803AFEEC 003ACE4C 38 60 00 00 */ li r3, 0 +/* 803AFEF0 003ACE50 4E 80 00 20 */ blr +lbl_803AFEF4: +/* 803AFEF4 003ACE54 3C 80 80 56 */ lis r4, lbl_8055F990@ha +/* 803AFEF8 003ACE58 55 20 20 36 */ slwi r0, r9, 4 +/* 803AFEFC 003ACE5C 38 84 F9 90 */ addi r4, r4, lbl_8055F990@l +/* 803AFF00 003ACE60 7C E4 02 14 */ add r7, r4, r0 +/* 803AFF04 003ACE64 80 C7 00 04 */ lwz r6, 4(r7) +/* 803AFF08 003ACE68 38 E7 00 04 */ addi r7, r7, 4 +/* 803AFF0C 003ACE6C 28 06 00 00 */ cmplwi r6, 0 +/* 803AFF10 003ACE70 7C C8 33 78 */ mr r8, r6 +/* 803AFF14 003ACE74 41 82 00 40 */ beq lbl_803AFF54 +/* 803AFF18 003ACE78 48 00 00 14 */ b lbl_803AFF2C +lbl_803AFF1C: +/* 803AFF1C 003ACE7C C0 08 00 04 */ lfs f0, 4(r8) +/* 803AFF20 003ACE80 FC 00 08 40 */ fcmpo cr0, f0, f1 +/* 803AFF24 003ACE84 41 80 00 14 */ blt lbl_803AFF38 +/* 803AFF28 003ACE88 7C C8 33 78 */ mr r8, r6 +lbl_803AFF2C: +/* 803AFF2C 003ACE8C 80 C8 00 00 */ lwz r6, 0(r8) +/* 803AFF30 003ACE90 28 06 00 00 */ cmplwi r6, 0 +/* 803AFF34 003ACE94 40 82 FF E8 */ bne lbl_803AFF1C +lbl_803AFF38: +/* 803AFF38 003ACE98 1C A5 00 1C */ mulli r5, r5, 0x1c +/* 803AFF3C 003ACE9C 3C 80 80 56 */ lis r4, lbl_80560090@ha +/* 803AFF40 003ACEA0 38 04 00 90 */ addi r0, r4, lbl_80560090@l +/* 803AFF44 003ACEA4 7C 80 2A 14 */ add r4, r0, r5 +/* 803AFF48 003ACEA8 90 C4 00 00 */ stw r6, 0(r4) +/* 803AFF4C 003ACEAC 90 88 00 00 */ stw r4, 0(r8) +/* 803AFF50 003ACEB0 48 00 00 1C */ b lbl_803AFF6C +lbl_803AFF54: +/* 803AFF54 003ACEB4 1C A5 00 1C */ mulli r5, r5, 0x1c +/* 803AFF58 003ACEB8 3C 80 80 56 */ lis r4, lbl_80560090@ha +/* 803AFF5C 003ACEBC 38 04 00 90 */ addi r0, r4, lbl_80560090@l +/* 803AFF60 003ACEC0 7C 80 2A 14 */ add r4, r0, r5 +/* 803AFF64 003ACEC4 90 C4 00 00 */ stw r6, 0(r4) +/* 803AFF68 003ACEC8 90 87 00 00 */ stw r4, 0(r7) +lbl_803AFF6C: +/* 803AFF6C 003ACECC 88 8D AF 61 */ lbz r4, lbl_805A9B21@sda21(r13) +/* 803AFF70 003ACED0 3C A0 80 56 */ lis r5, lbl_80560090@ha +/* 803AFF74 003ACED4 38 A5 00 90 */ addi r5, r5, lbl_80560090@l +/* 803AFF78 003ACED8 1C C4 00 1C */ mulli r6, r4, 0x1c +/* 803AFF7C 003ACEDC 38 04 00 01 */ addi r0, r4, 1 +/* 803AFF80 003ACEE0 98 0D AF 61 */ stb r0, lbl_805A9B21@sda21(r13) +/* 803AFF84 003ACEE4 7C 85 32 14 */ add r4, r5, r6 +/* 803AFF88 003ACEE8 90 64 00 18 */ stw r3, 0x18(r4) +/* 803AFF8C 003ACEEC 38 60 00 01 */ li r3, 1 +/* 803AFF90 003ACEF0 D0 A4 00 14 */ stfs f5, 0x14(r4) +/* 803AFF94 003ACEF4 D0 44 00 08 */ stfs f2, 8(r4) +/* 803AFF98 003ACEF8 D0 64 00 0C */ stfs f3, 0xc(r4) +/* 803AFF9C 003ACEFC D0 84 00 10 */ stfs f4, 0x10(r4) +/* 803AFFA0 003ACF00 D0 24 00 04 */ stfs f1, 4(r4) +/* 803AFFA4 003ACF04 4E 80 00 20 */ blr + +.global sub_803affa8 +sub_803affa8: +/* 803AFFA8 003ACF08 94 21 FF 80 */ stwu r1, -0x80(r1) +/* 803AFFAC 003ACF0C 7C 08 02 A6 */ mflr r0 +/* 803AFFB0 003ACF10 90 01 00 84 */ stw r0, 0x84(r1) +/* 803AFFB4 003ACF14 DB E1 00 70 */ stfd f31, 0x70(r1) +/* 803AFFB8 003ACF18 F3 E1 00 78 */ psq_st f31, 120(r1), 0, qr0 +/* 803AFFBC 003ACF1C DB C1 00 60 */ stfd f30, 0x60(r1) +/* 803AFFC0 003ACF20 F3 C1 00 68 */ psq_st f30, 104(r1), 0, qr0 +/* 803AFFC4 003ACF24 DB A1 00 50 */ stfd f29, 0x50(r1) +/* 803AFFC8 003ACF28 F3 A1 00 58 */ psq_st f29, 88(r1), 0, qr0 +/* 803AFFCC 003ACF2C 39 61 00 50 */ addi r11, r1, 0x50 +/* 803AFFD0 003ACF30 4B FD 9A 99 */ bl sub_80389a68 +/* 803AFFD4 003ACF34 3C 60 80 56 */ lis r3, lbl_8055F990@ha +/* 803AFFD8 003ACF38 3B 40 00 00 */ li r26, 0 +/* 803AFFDC 003ACF3C 3B 63 F9 90 */ addi r27, r3, lbl_8055F990@l +/* 803AFFE0 003ACF40 48 00 03 3C */ b lbl_803B031C +lbl_803AFFE4: +/* 803AFFE4 003ACF44 83 3B 00 04 */ lwz r25, 4(r27) +/* 803AFFE8 003ACF48 3B DB 00 08 */ addi r30, r27, 8 +/* 803AFFEC 003ACF4C 3B BB 00 04 */ addi r29, r27, 4 +/* 803AFFF0 003ACF50 3B 9B 00 0C */ addi r28, r27, 0xc +/* 803AFFF4 003ACF54 48 00 03 18 */ b lbl_803B030C +lbl_803AFFF8: +/* 803AFFF8 003ACF58 80 BE 00 00 */ lwz r5, 0(r30) +/* 803AFFFC 003ACF5C 28 05 00 00 */ cmplwi r5, 0 +/* 803B0000 003ACF60 41 82 00 8C */ beq lbl_803B008C +/* 803B0004 003ACF64 88 0D AF 63 */ lbz r0, lbl_805A9B23@sda21(r13) +/* 803B0008 003ACF68 28 00 00 00 */ cmplwi r0, 0 +/* 803B000C 003ACF6C 41 82 00 28 */ beq lbl_803B0034 +/* 803B0010 003ACF70 80 1B 00 00 */ lwz r0, 0(r27) +/* 803B0014 003ACF74 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 +/* 803B0018 003ACF78 41 82 00 1C */ beq lbl_803B0034 +/* 803B001C 003ACF7C 80 7D 00 00 */ lwz r3, 0(r29) +/* 803B0020 003ACF80 A0 9C 00 00 */ lhz r4, 0(r28) +/* 803B0024 003ACF84 80 63 00 18 */ lwz r3, 0x18(r3) +/* 803B0028 003ACF88 88 03 00 47 */ lbz r0, 0x47(r3) +/* 803B002C 003ACF8C 7C 04 00 00 */ cmpw r4, r0 +/* 803B0030 003ACF90 41 80 00 5C */ blt lbl_803B008C +lbl_803B0034: +/* 803B0034 003ACF94 C0 59 00 04 */ lfs f2, 4(r25) +/* 803B0038 003ACF98 C0 25 00 04 */ lfs f1, 4(r5) +/* 803B003C 003ACF9C C0 02 D6 48 */ lfs f0, lbl_805AF368@sda21(r2) +/* 803B0040 003ACFA0 EC 22 08 28 */ fsubs f1, f2, f1 +/* 803B0044 003ACFA4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803B0048 003ACFA8 4C 40 13 82 */ cror 2, 0, 2 +/* 803B004C 003ACFAC 41 82 02 BC */ beq lbl_803B0308 +/* 803B0050 003ACFB0 C0 02 D6 4C */ lfs f0, lbl_805AF36C@sda21(r2) +/* 803B0054 003ACFB4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803B0058 003ACFB8 4C 40 13 82 */ cror 2, 0, 2 +/* 803B005C 003ACFBC 40 82 00 24 */ bne lbl_803B0080 +/* 803B0060 003ACFC0 80 99 00 18 */ lwz r4, 0x18(r25) +/* 803B0064 003ACFC4 A0 64 00 48 */ lhz r3, 0x48(r4) +/* 803B0068 003ACFC8 38 63 00 01 */ addi r3, r3, 1 +/* 803B006C 003ACFCC 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803B0070 003ACFD0 B0 64 00 48 */ sth r3, 0x48(r4) +/* 803B0074 003ACFD4 28 00 00 14 */ cmplwi r0, 0x14 +/* 803B0078 003ACFD8 41 80 02 90 */ blt lbl_803B0308 +/* 803B007C 003ACFDC 48 00 00 10 */ b lbl_803B008C +lbl_803B0080: +/* 803B0080 003ACFE0 80 79 00 18 */ lwz r3, 0x18(r25) +/* 803B0084 003ACFE4 38 00 00 00 */ li r0, 0 +/* 803B0088 003ACFE8 B0 03 00 48 */ sth r0, 0x48(r3) +lbl_803B008C: +/* 803B008C 003ACFEC 83 19 00 18 */ lwz r24, 0x18(r25) +/* 803B0090 003ACFF0 80 D8 00 08 */ lwz r6, 8(r24) +/* 803B0094 003ACFF4 28 06 00 00 */ cmplwi r6, 0 +/* 803B0098 003ACFF8 41 82 00 10 */ beq lbl_803B00A8 +/* 803B009C 003ACFFC 88 06 00 1C */ lbz r0, 0x1c(r6) +/* 803B00A0 003AD000 28 00 00 FF */ cmplwi r0, 0xff +/* 803B00A4 003AD004 41 82 00 40 */ beq lbl_803B00E4 +lbl_803B00A8: +/* 803B00A8 003AD008 28 06 00 00 */ cmplwi r6, 0 +/* 803B00AC 003AD00C A0 78 00 44 */ lhz r3, 0x44(r24) +/* 803B00B0 003AD010 38 80 00 7F */ li r4, 0x7f +/* 803B00B4 003AD014 38 A0 00 40 */ li r5, 0x40 +/* 803B00B8 003AD018 41 82 00 0C */ beq lbl_803B00C4 +/* 803B00BC 003AD01C 88 C6 00 1C */ lbz r6, 0x1c(r6) +/* 803B00C0 003AD020 48 00 00 08 */ b lbl_803B00C8 +lbl_803B00C4: +/* 803B00C4 003AD024 88 D8 00 46 */ lbz r6, 0x46(r24) +lbl_803B00C8: +/* 803B00C8 003AD028 80 18 00 10 */ lwz r0, 0x10(r24) +/* 803B00CC 003AD02C 54 07 E7 FE */ rlwinm r7, r0, 0x1c, 0x1f, 0x1f +/* 803B00D0 003AD030 4B FE AF 7D */ bl synthFXStart +/* 803B00D4 003AD034 3C 03 00 01 */ addis r0, r3, 1 +/* 803B00D8 003AD038 90 78 00 3C */ stw r3, 0x3c(r24) +/* 803B00DC 003AD03C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803B00E0 003AD040 40 82 00 28 */ bne lbl_803B0108 +lbl_803B00E4: +/* 803B00E4 003AD044 80 78 00 10 */ lwz r3, 0x10(r24) +/* 803B00E8 003AD048 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e +/* 803B00EC 003AD04C 40 82 02 1C */ bne lbl_803B0308 +/* 803B00F0 003AD050 64 60 00 04 */ oris r0, r3, 4 +/* 803B00F4 003AD054 90 18 00 10 */ stw r0, 0x10(r24) +/* 803B00F8 003AD058 80 18 00 10 */ lwz r0, 0x10(r24) +/* 803B00FC 003AD05C 54 00 03 DA */ rlwinm r0, r0, 0, 0xf, 0xd +/* 803B0100 003AD060 90 18 00 10 */ stw r0, 0x10(r24) +/* 803B0104 003AD064 48 00 02 04 */ b lbl_803B0308 +lbl_803B0108: +/* 803B0108 003AD068 80 78 00 10 */ lwz r3, 0x10(r24) +/* 803B010C 003AD06C 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a +/* 803B0110 003AD070 40 82 00 18 */ bne lbl_803B0128 +/* 803B0114 003AD074 64 60 00 10 */ oris r0, r3, 0x10 +/* 803B0118 003AD078 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803B011C 003AD07C 90 18 00 10 */ stw r0, 0x10(r24) +/* 803B0120 003AD080 D0 18 00 4C */ stfs f0, 0x4c(r24) +/* 803B0124 003AD084 48 00 00 0C */ b lbl_803B0130 +lbl_803B0128: +/* 803B0128 003AD088 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803B012C 003AD08C D0 18 00 4C */ stfs f0, 0x4c(r24) +lbl_803B0130: +/* 803B0130 003AD090 80 18 00 10 */ lwz r0, 0x10(r24) +/* 803B0134 003AD094 C3 F9 00 14 */ lfs f31, 0x14(r25) +/* 803B0138 003AD098 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb +/* 803B013C 003AD09C C3 B9 00 10 */ lfs f29, 0x10(r25) +/* 803B0140 003AD0A0 C3 D9 00 08 */ lfs f30, 8(r25) +/* 803B0144 003AD0A4 C0 59 00 04 */ lfs f2, 4(r25) +/* 803B0148 003AD0A8 83 F8 00 3C */ lwz r31, 0x3c(r24) +/* 803B014C 003AD0AC 41 82 00 44 */ beq lbl_803B0190 +/* 803B0150 003AD0B0 C0 18 00 4C */ lfs f0, 0x4c(r24) +/* 803B0154 003AD0B4 7F E3 FB 78 */ mr r3, r31 +/* 803B0158 003AD0B8 C0 22 D6 28 */ lfs f1, lbl_805AF348@sda21(r2) +/* 803B015C 003AD0BC 38 80 00 07 */ li r4, 7 +/* 803B0160 003AD0C0 EC 00 00 B2 */ fmuls f0, f0, f2 +/* 803B0164 003AD0C4 38 A0 00 7F */ li r5, 0x7f +/* 803B0168 003AD0C8 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B016C 003AD0CC FC 00 00 1E */ fctiwz f0, f0 +/* 803B0170 003AD0D0 D8 01 00 08 */ stfd f0, 8(r1) +/* 803B0174 003AD0D4 80 C1 00 0C */ lwz r6, 0xc(r1) +/* 803B0178 003AD0D8 54 C0 06 3E */ clrlwi r0, r6, 0x18 +/* 803B017C 003AD0DC 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B0180 003AD0E0 41 81 00 08 */ bgt lbl_803B0188 +/* 803B0184 003AD0E4 7C C5 33 78 */ mr r5, r6 +lbl_803B0188: +/* 803B0188 003AD0E8 4B FE AF 8D */ bl synthFXSetCtrl +/* 803B018C 003AD0EC 48 00 00 3C */ b lbl_803B01C8 +lbl_803B0190: +/* 803B0190 003AD0F0 C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2) +/* 803B0194 003AD0F4 38 A0 00 7F */ li r5, 0x7f +/* 803B0198 003AD0F8 EC 00 00 B2 */ fmuls f0, f0, f2 +/* 803B019C 003AD0FC FC 00 00 1E */ fctiwz f0, f0 +/* 803B01A0 003AD100 D8 01 00 08 */ stfd f0, 8(r1) +/* 803B01A4 003AD104 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803B01A8 003AD108 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B01AC 003AD10C 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B01B0 003AD110 41 81 00 0C */ bgt lbl_803B01BC +/* 803B01B4 003AD114 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 803B01B8 003AD118 80 A1 00 14 */ lwz r5, 0x14(r1) +lbl_803B01BC: +/* 803B01BC 003AD11C 7F E3 FB 78 */ mr r3, r31 +/* 803B01C0 003AD120 38 80 00 07 */ li r4, 7 +/* 803B01C4 003AD124 4B FE AF 51 */ bl synthFXSetCtrl +lbl_803B01C8: +/* 803B01C8 003AD128 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803B01CC 003AD12C 38 A0 00 7F */ li r5, 0x7f +/* 803B01D0 003AD130 C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2) +/* 803B01D4 003AD134 EC 00 F0 2A */ fadds f0, f0, f30 +/* 803B01D8 003AD138 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B01DC 003AD13C FC 00 00 1E */ fctiwz f0, f0 +/* 803B01E0 003AD140 D8 01 00 10 */ stfd f0, 0x10(r1) +/* 803B01E4 003AD144 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B01E8 003AD148 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B01EC 003AD14C 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B01F0 003AD150 41 81 00 0C */ bgt lbl_803B01FC +/* 803B01F4 003AD154 D8 01 00 08 */ stfd f0, 8(r1) +/* 803B01F8 003AD158 80 A1 00 0C */ lwz r5, 0xc(r1) +lbl_803B01FC: +/* 803B01FC 003AD15C 7F E3 FB 78 */ mr r3, r31 +/* 803B0200 003AD160 38 80 00 0A */ li r4, 0xa +/* 803B0204 003AD164 4B FE AF 11 */ bl synthFXSetCtrl +/* 803B0208 003AD168 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803B020C 003AD16C 38 A0 00 7F */ li r5, 0x7f +/* 803B0210 003AD170 C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2) +/* 803B0214 003AD174 EC 00 E8 28 */ fsubs f0, f0, f29 +/* 803B0218 003AD178 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B021C 003AD17C FC 00 00 1E */ fctiwz f0, f0 +/* 803B0220 003AD180 D8 01 00 18 */ stfd f0, 0x18(r1) +/* 803B0224 003AD184 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803B0228 003AD188 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B022C 003AD18C 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B0230 003AD190 41 81 00 0C */ bgt lbl_803B023C +/* 803B0234 003AD194 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803B0238 003AD198 80 A1 00 24 */ lwz r5, 0x24(r1) +lbl_803B023C: +/* 803B023C 003AD19C 7F E3 FB 78 */ mr r3, r31 +/* 803B0240 003AD1A0 38 80 00 83 */ li r4, 0x83 +/* 803B0244 003AD1A4 4B FE AE D1 */ bl synthFXSetCtrl +/* 803B0248 003AD1A8 C0 02 D6 40 */ lfs f0, lbl_805AF360@sda21(r2) +/* 803B024C 003AD1AC EC 20 07 F2 */ fmuls f1, f0, f31 +/* 803B0250 003AD1B0 4B FD 97 05 */ bl __cvt_fp2unsigned +/* 803B0254 003AD1B4 28 03 3F FF */ cmplwi r3, 0x3fff +/* 803B0258 003AD1B8 38 A0 3F FF */ li r5, 0x3fff +/* 803B025C 003AD1BC 41 81 00 08 */ bgt lbl_803B0264 +/* 803B0260 003AD1C0 54 65 04 3E */ clrlwi r5, r3, 0x10 +lbl_803B0264: +/* 803B0264 003AD1C4 7F E3 FB 78 */ mr r3, r31 +/* 803B0268 003AD1C8 38 80 00 84 */ li r4, 0x84 +/* 803B026C 003AD1CC 4B FE AF 8D */ bl synthFXSetCtrl14 +/* 803B0270 003AD1D0 80 78 00 0C */ lwz r3, 0xc(r24) +/* 803B0274 003AD1D4 28 03 00 00 */ cmplwi r3, 0 +/* 803B0278 003AD1D8 41 82 00 64 */ beq lbl_803B02DC +/* 803B027C 003AD1DC 82 E3 00 04 */ lwz r23, 4(r3) +/* 803B0280 003AD1E0 3A C0 00 00 */ li r22, 0 +/* 803B0284 003AD1E4 48 00 00 44 */ b lbl_803B02C8 +lbl_803B0288: +/* 803B0288 003AD1E8 88 97 00 00 */ lbz r4, 0(r23) +/* 803B028C 003AD1EC 28 04 00 40 */ cmplwi r4, 0x40 +/* 803B0290 003AD1F0 41 80 00 14 */ blt lbl_803B02A4 +/* 803B0294 003AD1F4 28 04 00 80 */ cmplwi r4, 0x80 +/* 803B0298 003AD1F8 41 82 00 0C */ beq lbl_803B02A4 +/* 803B029C 003AD1FC 28 04 00 84 */ cmplwi r4, 0x84 +/* 803B02A0 003AD200 40 82 00 14 */ bne lbl_803B02B4 +lbl_803B02A4: +/* 803B02A4 003AD204 A0 B7 00 02 */ lhz r5, 2(r23) +/* 803B02A8 003AD208 7F E3 FB 78 */ mr r3, r31 +/* 803B02AC 003AD20C 4B FE AF 4D */ bl synthFXSetCtrl14 +/* 803B02B0 003AD210 48 00 00 10 */ b lbl_803B02C0 +lbl_803B02B4: +/* 803B02B4 003AD214 88 B7 00 02 */ lbz r5, 2(r23) +/* 803B02B8 003AD218 7F E3 FB 78 */ mr r3, r31 +/* 803B02BC 003AD21C 4B FE AE 59 */ bl synthFXSetCtrl +lbl_803B02C0: +/* 803B02C0 003AD220 3A F7 00 04 */ addi r23, r23, 4 +/* 803B02C4 003AD224 3A D6 00 01 */ addi r22, r22, 1 +lbl_803B02C8: +/* 803B02C8 003AD228 80 78 00 0C */ lwz r3, 0xc(r24) +/* 803B02CC 003AD22C 56 C4 06 3E */ clrlwi r4, r22, 0x18 +/* 803B02D0 003AD230 88 03 00 00 */ lbz r0, 0(r3) +/* 803B02D4 003AD234 7C 04 00 40 */ cmplw r4, r0 +/* 803B02D8 003AD238 41 80 FF B0 */ blt lbl_803B0288 +lbl_803B02DC: +/* 803B02DC 003AD23C 80 18 00 10 */ lwz r0, 0x10(r24) +/* 803B02E0 003AD240 54 00 03 DA */ rlwinm r0, r0, 0, 0xf, 0xd +/* 803B02E4 003AD244 90 18 00 10 */ stw r0, 0x10(r24) +/* 803B02E8 003AD248 A0 7C 00 00 */ lhz r3, 0(r28) +/* 803B02EC 003AD24C 38 03 00 01 */ addi r0, r3, 1 +/* 803B02F0 003AD250 B0 1C 00 00 */ sth r0, 0(r28) +/* 803B02F4 003AD254 80 7E 00 00 */ lwz r3, 0(r30) +/* 803B02F8 003AD258 28 03 00 00 */ cmplwi r3, 0 +/* 803B02FC 003AD25C 41 82 00 0C */ beq lbl_803B0308 +/* 803B0300 003AD260 80 03 00 00 */ lwz r0, 0(r3) +/* 803B0304 003AD264 90 1E 00 00 */ stw r0, 0(r30) +lbl_803B0308: +/* 803B0308 003AD268 83 39 00 00 */ lwz r25, 0(r25) +lbl_803B030C: +/* 803B030C 003AD26C 28 19 00 00 */ cmplwi r25, 0 +/* 803B0310 003AD270 40 82 FC E8 */ bne lbl_803AFFF8 +/* 803B0314 003AD274 3B 7B 00 10 */ addi r27, r27, 0x10 +/* 803B0318 003AD278 3B 5A 00 01 */ addi r26, r26, 1 +lbl_803B031C: +/* 803B031C 003AD27C 88 0D AF 62 */ lbz r0, lbl_805A9B22@sda21(r13) +/* 803B0320 003AD280 7C 1A 00 00 */ cmpw r26, r0 +/* 803B0324 003AD284 41 80 FC C0 */ blt lbl_803AFFE4 +/* 803B0328 003AD288 E3 E1 00 78 */ psq_l f31, 120(r1), 0, qr0 +/* 803B032C 003AD28C CB E1 00 70 */ lfd f31, 0x70(r1) +/* 803B0330 003AD290 E3 C1 00 68 */ psq_l f30, 104(r1), 0, qr0 +/* 803B0334 003AD294 CB C1 00 60 */ lfd f30, 0x60(r1) +/* 803B0338 003AD298 E3 A1 00 58 */ psq_l f29, 88(r1), 0, qr0 +/* 803B033C 003AD29C 39 61 00 50 */ addi r11, r1, 0x50 +/* 803B0340 003AD2A0 CB A1 00 50 */ lfd f29, 0x50(r1) +/* 803B0344 003AD2A4 4B FD 97 71 */ bl _restgpr_22 +/* 803B0348 003AD2A8 80 01 00 84 */ lwz r0, 0x84(r1) +/* 803B034C 003AD2AC 7C 08 03 A6 */ mtlr r0 +/* 803B0350 003AD2B0 38 21 00 80 */ addi r1, r1, 0x80 +/* 803B0354 003AD2B4 4E 80 00 20 */ blr + +.global sub_803b0358 +sub_803b0358: +/* 803B0358 003AD2B8 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 803B035C 003AD2BC 7C 08 02 A6 */ mflr r0 +/* 803B0360 003AD2C0 90 01 00 94 */ stw r0, 0x94(r1) +/* 803B0364 003AD2C4 DB E1 00 80 */ stfd f31, 0x80(r1) +/* 803B0368 003AD2C8 F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0 +/* 803B036C 003AD2CC DB C1 00 70 */ stfd f30, 0x70(r1) +/* 803B0370 003AD2D0 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0 +/* 803B0374 003AD2D4 DB A1 00 60 */ stfd f29, 0x60(r1) +/* 803B0378 003AD2D8 F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0 +/* 803B037C 003AD2DC 39 61 00 60 */ addi r11, r1, 0x60 +/* 803B0380 003AD2E0 4B FD 96 FD */ bl sub_80389a7c +/* 803B0384 003AD2E4 88 6D AF 7C */ lbz r3, lbl_805A9B3C@sda21(r13) +/* 803B0388 003AD2E8 28 03 00 00 */ cmplwi r3, 0 +/* 803B038C 003AD2EC 41 82 00 10 */ beq lbl_803B039C +/* 803B0390 003AD2F0 38 03 FF FF */ addi r0, r3, -1 +/* 803B0394 003AD2F4 98 0D AF 7C */ stb r0, lbl_805A9B3C@sda21(r13) +/* 803B0398 003AD2F8 48 00 07 BC */ b lbl_803B0B54 +lbl_803B039C: +/* 803B039C 003AD2FC 38 00 00 00 */ li r0, 0 +/* 803B03A0 003AD300 38 60 00 03 */ li r3, 3 +/* 803B03A4 003AD304 98 6D AF 7C */ stb r3, lbl_805A9B3C@sda21(r13) +/* 803B03A8 003AD308 83 CD AF 78 */ lwz r30, lbl_805A9B38@sda21(r13) +/* 803B03AC 003AD30C 98 0D AF 62 */ stb r0, lbl_805A9B22@sda21(r13) +/* 803B03B0 003AD310 98 0D AF 61 */ stb r0, lbl_805A9B21@sda21(r13) +/* 803B03B4 003AD314 98 0D AF 60 */ stb r0, lbl_805A9B20@sda21(r13) +/* 803B03B8 003AD318 48 00 05 E0 */ b lbl_803B0998 +lbl_803B03BC: +/* 803B03BC 003AD31C 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 803B03C0 003AD320 80 7E 00 00 */ lwz r3, 0(r30) +/* 803B03C4 003AD324 54 80 03 5B */ rlwinm. r0, r4, 0, 0xd, 0xd +/* 803B03C8 003AD328 7C 7D 1B 78 */ mr r29, r3 +/* 803B03CC 003AD32C 41 82 00 58 */ beq lbl_803B0424 +/* 803B03D0 003AD330 28 03 00 00 */ cmplwi r3, 0 +/* 803B03D4 003AD334 41 82 00 0C */ beq lbl_803B03E0 +/* 803B03D8 003AD338 80 1E 00 04 */ lwz r0, 4(r30) +/* 803B03DC 003AD33C 90 03 00 04 */ stw r0, 4(r3) +lbl_803B03E0: +/* 803B03E0 003AD340 80 7E 00 04 */ lwz r3, 4(r30) +/* 803B03E4 003AD344 28 03 00 00 */ cmplwi r3, 0 +/* 803B03E8 003AD348 41 82 00 10 */ beq lbl_803B03F8 +/* 803B03EC 003AD34C 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B03F0 003AD350 90 03 00 00 */ stw r0, 0(r3) +/* 803B03F4 003AD354 48 00 00 0C */ b lbl_803B0400 +lbl_803B03F8: +/* 803B03F8 003AD358 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B03FC 003AD35C 90 0D AF 78 */ stw r0, lbl_805A9B38@sda21(r13) +lbl_803B0400: +/* 803B0400 003AD360 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B0404 003AD364 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 803B0408 003AD368 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B040C 003AD36C 80 7E 00 3C */ lwz r3, 0x3c(r30) +/* 803B0410 003AD370 3C 03 00 01 */ addis r0, r3, 1 +/* 803B0414 003AD374 28 00 FF FF */ cmplwi r0, 0xffff +/* 803B0418 003AD378 41 82 05 7C */ beq lbl_803B0994 +/* 803B041C 003AD37C 4B FE AF 45 */ bl synthSendKeyOff +/* 803B0420 003AD380 48 00 05 74 */ b lbl_803B0994 +lbl_803B0424: +/* 803B0424 003AD384 3C 60 00 02 */ lis r3, 0x00020001@ha +/* 803B0428 003AD388 38 03 00 01 */ addi r0, r3, 0x00020001@l +/* 803B042C 003AD38C 7C 80 00 39 */ and. r0, r4, r0 +/* 803B0430 003AD390 41 82 00 20 */ beq lbl_803B0450 +/* 803B0434 003AD394 7F C3 F3 78 */ mr r3, r30 +/* 803B0438 003AD398 38 81 00 18 */ addi r4, r1, 0x18 +/* 803B043C 003AD39C 38 A1 00 08 */ addi r5, r1, 8 +/* 803B0440 003AD3A0 38 C1 00 14 */ addi r6, r1, 0x14 +/* 803B0444 003AD3A4 38 E1 00 10 */ addi r7, r1, 0x10 +/* 803B0448 003AD3A8 39 01 00 0C */ addi r8, r1, 0xc +/* 803B044C 003AD3AC 4B FF E8 69 */ bl CalcEmitter +lbl_803B0450: +/* 803B0450 003AD3B0 80 FE 00 10 */ lwz r7, 0x10(r30) +/* 803B0454 003AD3B4 54 E0 03 19 */ rlwinm. r0, r7, 0, 0xc, 0xc +/* 803B0458 003AD3B8 40 82 04 F8 */ bne lbl_803B0950 +/* 803B045C 003AD3BC 54 E0 03 9D */ rlwinm. r0, r7, 0, 0xe, 0xe +/* 803B0460 003AD3C0 41 82 01 40 */ beq lbl_803B05A0 +/* 803B0464 003AD3C4 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803B0468 003AD3C8 C0 21 00 18 */ lfs f1, 0x18(r1) +/* 803B046C 003AD3CC FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 803B0470 003AD3D0 40 82 00 24 */ bne lbl_803B0494 +/* 803B0474 003AD3D4 54 E0 07 7B */ rlwinm. r0, r7, 0, 0x1d, 0x1d +/* 803B0478 003AD3D8 41 82 00 1C */ beq lbl_803B0494 +/* 803B047C 003AD3DC 64 E0 00 08 */ oris r0, r7, 8 +/* 803B0480 003AD3E0 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B0484 003AD3E4 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B0488 003AD3E8 54 00 03 DA */ rlwinm r0, r0, 0, 0xf, 0xd +/* 803B048C 003AD3EC 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B0490 003AD3F0 48 00 01 48 */ b lbl_803B05D8 +lbl_803B0494: +/* 803B0494 003AD3F4 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803B0498 003AD3F8 FC 00 08 00 */ fcmpu cr0, f0, f1 +/* 803B049C 003AD3FC 40 82 00 64 */ bne lbl_803B0500 +/* 803B04A0 003AD400 54 E0 06 73 */ rlwinm. r0, r7, 0, 0x19, 0x19 +/* 803B04A4 003AD404 41 82 00 5C */ beq lbl_803B0500 +/* 803B04A8 003AD408 80 7E 00 00 */ lwz r3, 0(r30) +/* 803B04AC 003AD40C 28 03 00 00 */ cmplwi r3, 0 +/* 803B04B0 003AD410 41 82 00 0C */ beq lbl_803B04BC +/* 803B04B4 003AD414 80 1E 00 04 */ lwz r0, 4(r30) +/* 803B04B8 003AD418 90 03 00 04 */ stw r0, 4(r3) +lbl_803B04BC: +/* 803B04BC 003AD41C 80 7E 00 04 */ lwz r3, 4(r30) +/* 803B04C0 003AD420 28 03 00 00 */ cmplwi r3, 0 +/* 803B04C4 003AD424 41 82 00 10 */ beq lbl_803B04D4 +/* 803B04C8 003AD428 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B04CC 003AD42C 90 03 00 00 */ stw r0, 0(r3) +/* 803B04D0 003AD430 48 00 00 0C */ b lbl_803B04DC +lbl_803B04D4: +/* 803B04D4 003AD434 80 1E 00 00 */ lwz r0, 0(r30) +/* 803B04D8 003AD438 90 0D AF 78 */ stw r0, lbl_805A9B38@sda21(r13) +lbl_803B04DC: +/* 803B04DC 003AD43C 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B04E0 003AD440 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 803B04E4 003AD444 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B04E8 003AD448 80 7E 00 3C */ lwz r3, 0x3c(r30) +/* 803B04EC 003AD44C 3C 03 00 01 */ addis r0, r3, 1 +/* 803B04F0 003AD450 28 00 FF FF */ cmplwi r0, 0xffff +/* 803B04F4 003AD454 41 82 04 A0 */ beq lbl_803B0994 +/* 803B04F8 003AD458 4B FE AE 69 */ bl synthSendKeyOff +/* 803B04FC 003AD45C 48 00 04 98 */ b lbl_803B0994 +lbl_803B0500: +/* 803B0500 003AD460 54 E0 07 FF */ clrlwi. r0, r7, 0x1f +/* 803B0504 003AD464 41 82 00 28 */ beq lbl_803B052C +/* 803B0508 003AD468 C0 41 00 14 */ lfs f2, 0x14(r1) +/* 803B050C 003AD46C 7F C3 F3 78 */ mr r3, r30 +/* 803B0510 003AD470 C0 61 00 10 */ lfs f3, 0x10(r1) +/* 803B0514 003AD474 C0 81 00 0C */ lfs f4, 0xc(r1) +/* 803B0518 003AD478 C0 A1 00 08 */ lfs f5, 8(r1) +/* 803B051C 003AD47C 4B FF F9 41 */ bl sub_803afe5c +/* 803B0520 003AD480 28 03 00 00 */ cmplwi r3, 0 +/* 803B0524 003AD484 40 82 04 70 */ bne lbl_803B0994 +/* 803B0528 003AD488 48 00 00 B0 */ b lbl_803B05D8 +lbl_803B052C: +/* 803B052C 003AD48C 80 DE 00 08 */ lwz r6, 8(r30) +/* 803B0530 003AD490 28 06 00 00 */ cmplwi r6, 0 +/* 803B0534 003AD494 41 82 00 10 */ beq lbl_803B0544 +/* 803B0538 003AD498 88 06 00 1C */ lbz r0, 0x1c(r6) +/* 803B053C 003AD49C 28 00 00 FF */ cmplwi r0, 0xff +/* 803B0540 003AD4A0 41 82 00 3C */ beq lbl_803B057C +lbl_803B0544: +/* 803B0544 003AD4A4 28 06 00 00 */ cmplwi r6, 0 +/* 803B0548 003AD4A8 A0 7E 00 44 */ lhz r3, 0x44(r30) +/* 803B054C 003AD4AC 38 80 00 7F */ li r4, 0x7f +/* 803B0550 003AD4B0 38 A0 00 40 */ li r5, 0x40 +/* 803B0554 003AD4B4 41 82 00 0C */ beq lbl_803B0560 +/* 803B0558 003AD4B8 88 C6 00 1C */ lbz r6, 0x1c(r6) +/* 803B055C 003AD4BC 48 00 00 08 */ b lbl_803B0564 +lbl_803B0560: +/* 803B0560 003AD4C0 88 DE 00 46 */ lbz r6, 0x46(r30) +lbl_803B0564: +/* 803B0564 003AD4C4 54 E7 E7 FE */ rlwinm r7, r7, 0x1c, 0x1f, 0x1f +/* 803B0568 003AD4C8 4B FE AA E5 */ bl synthFXStart +/* 803B056C 003AD4CC 3C 03 00 01 */ addis r0, r3, 1 +/* 803B0570 003AD4D0 90 7E 00 3C */ stw r3, 0x3c(r30) +/* 803B0574 003AD4D4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803B0578 003AD4D8 40 82 00 60 */ bne lbl_803B05D8 +lbl_803B057C: +/* 803B057C 003AD4DC 80 7E 00 10 */ lwz r3, 0x10(r30) +/* 803B0580 003AD4E0 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e +/* 803B0584 003AD4E4 40 82 04 10 */ bne lbl_803B0994 +/* 803B0588 003AD4E8 64 60 00 04 */ oris r0, r3, 4 +/* 803B058C 003AD4EC 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B0590 003AD4F0 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B0594 003AD4F4 54 00 03 DA */ rlwinm r0, r0, 0, 0xf, 0xd +/* 803B0598 003AD4F8 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B059C 003AD4FC 48 00 00 3C */ b lbl_803B05D8 +lbl_803B05A0: +/* 803B05A0 003AD500 80 7E 00 3C */ lwz r3, 0x3c(r30) +/* 803B05A4 003AD504 4B FE BD 71 */ bl sndFXCheck +/* 803B05A8 003AD508 3C 03 00 01 */ addis r0, r3, 1 +/* 803B05AC 003AD50C 90 7E 00 3C */ stw r3, 0x3c(r30) +/* 803B05B0 003AD510 28 00 FF FF */ cmplwi r0, 0xffff +/* 803B05B4 003AD514 40 82 00 24 */ bne lbl_803B05D8 +/* 803B05B8 003AD518 80 7E 00 10 */ lwz r3, 0x10(r30) +/* 803B05BC 003AD51C 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e +/* 803B05C0 003AD520 41 82 00 10 */ beq lbl_803B05D0 +/* 803B05C4 003AD524 64 60 00 02 */ oris r0, r3, 2 +/* 803B05C8 003AD528 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B05CC 003AD52C 48 00 00 0C */ b lbl_803B05D8 +lbl_803B05D0: +/* 803B05D0 003AD530 64 60 00 04 */ oris r0, r3, 4 +/* 803B05D4 003AD534 90 1E 00 10 */ stw r0, 0x10(r30) +lbl_803B05D8: +/* 803B05D8 003AD538 80 7E 00 3C */ lwz r3, 0x3c(r30) +/* 803B05DC 003AD53C 3C 03 00 01 */ addis r0, r3, 1 +/* 803B05E0 003AD540 28 00 FF FF */ cmplwi r0, 0xffff +/* 803B05E4 003AD544 41 82 03 2C */ beq lbl_803B0910 +/* 803B05E8 003AD548 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B05EC 003AD54C 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803B05F0 003AD550 41 82 01 28 */ beq lbl_803B0718 +/* 803B05F4 003AD554 88 AD AF 62 */ lbz r5, lbl_805A9B22@sda21(r13) +/* 803B05F8 003AD558 3C 60 80 56 */ lis r3, lbl_8055F990@ha +/* 803B05FC 003AD55C 38 83 F9 90 */ addi r4, r3, lbl_8055F990@l +/* 803B0600 003AD560 C0 21 00 18 */ lfs f1, 0x18(r1) +/* 803B0604 003AD564 38 E0 00 00 */ li r7, 0 +/* 803B0608 003AD568 7C A9 03 A6 */ mtctr r5 +/* 803B060C 003AD56C 2C 05 00 00 */ cmpwi r5, 0 +/* 803B0610 003AD570 40 81 00 20 */ ble lbl_803B0630 +lbl_803B0614: +/* 803B0614 003AD574 80 7E 00 40 */ lwz r3, 0x40(r30) +/* 803B0618 003AD578 80 04 00 00 */ lwz r0, 0(r4) +/* 803B061C 003AD57C 7C 03 00 40 */ cmplw r3, r0 +/* 803B0620 003AD580 41 82 00 10 */ beq lbl_803B0630 +/* 803B0624 003AD584 38 84 00 10 */ addi r4, r4, 0x10 +/* 803B0628 003AD588 38 E7 00 01 */ addi r7, r7, 1 +/* 803B062C 003AD58C 42 00 FF E8 */ bdnz lbl_803B0614 +lbl_803B0630: +/* 803B0630 003AD590 7C 07 28 00 */ cmpw r7, r5 +/* 803B0634 003AD594 40 82 00 38 */ bne lbl_803B066C +/* 803B0638 003AD598 3C 80 80 56 */ lis r4, lbl_8055F990@ha +/* 803B063C 003AD59C 88 6D AF 62 */ lbz r3, lbl_805A9B22@sda21(r13) +/* 803B0640 003AD5A0 54 E5 20 36 */ slwi r5, r7, 4 +/* 803B0644 003AD5A4 38 C0 00 00 */ li r6, 0 +/* 803B0648 003AD5A8 38 84 F9 90 */ addi r4, r4, lbl_8055F990@l +/* 803B064C 003AD5AC 38 03 00 01 */ addi r0, r3, 1 +/* 803B0650 003AD5B0 7C 84 2A 14 */ add r4, r4, r5 +/* 803B0654 003AD5B4 90 C4 00 04 */ stw r6, 4(r4) +/* 803B0658 003AD5B8 90 C4 00 08 */ stw r6, 8(r4) +/* 803B065C 003AD5BC B0 C4 00 0C */ sth r6, 0xc(r4) +/* 803B0660 003AD5C0 80 7E 00 40 */ lwz r3, 0x40(r30) +/* 803B0664 003AD5C4 90 64 00 00 */ stw r3, 0(r4) +/* 803B0668 003AD5C8 98 0D AF 62 */ stb r0, lbl_805A9B22@sda21(r13) +lbl_803B066C: +/* 803B066C 003AD5CC 3C 60 80 56 */ lis r3, lbl_8055F990@ha +/* 803B0670 003AD5D0 54 E4 20 36 */ slwi r4, r7, 4 +/* 803B0674 003AD5D4 38 03 F9 90 */ addi r0, r3, lbl_8055F990@l +/* 803B0678 003AD5D8 38 A0 00 00 */ li r5, 0 +/* 803B067C 003AD5DC 7C 80 22 14 */ add r4, r0, r4 +/* 803B0680 003AD5E0 A0 64 00 0C */ lhz r3, 0xc(r4) +/* 803B0684 003AD5E4 38 E4 00 08 */ addi r7, r4, 8 +/* 803B0688 003AD5E8 38 03 00 01 */ addi r0, r3, 1 +/* 803B068C 003AD5EC B0 04 00 0C */ sth r0, 0xc(r4) +/* 803B0690 003AD5F0 80 C4 00 08 */ lwz r6, 8(r4) +/* 803B0694 003AD5F4 48 00 00 18 */ b lbl_803B06AC +lbl_803B0698: +/* 803B0698 003AD5F8 C0 06 00 04 */ lfs f0, 4(r6) +/* 803B069C 003AD5FC FC 00 08 40 */ fcmpo cr0, f0, f1 +/* 803B06A0 003AD600 41 81 00 14 */ bgt lbl_803B06B4 +/* 803B06A4 003AD604 7C C5 33 78 */ mr r5, r6 +/* 803B06A8 003AD608 80 C6 00 00 */ lwz r6, 0(r6) +lbl_803B06AC: +/* 803B06AC 003AD60C 28 06 00 00 */ cmplwi r6, 0 +/* 803B06B0 003AD610 40 82 FF E8 */ bne lbl_803B0698 +lbl_803B06B4: +/* 803B06B4 003AD614 28 05 00 00 */ cmplwi r5, 0 +/* 803B06B8 003AD618 40 82 00 20 */ bne lbl_803B06D8 +/* 803B06BC 003AD61C 88 8D AF 60 */ lbz r4, lbl_805A9B20@sda21(r13) +/* 803B06C0 003AD620 3C 60 80 56 */ lis r3, lbl_8055FD90@ha +/* 803B06C4 003AD624 38 03 FD 90 */ addi r0, r3, lbl_8055FD90@l +/* 803B06C8 003AD628 1C 64 00 0C */ mulli r3, r4, 0xc +/* 803B06CC 003AD62C 7C 00 1A 14 */ add r0, r0, r3 +/* 803B06D0 003AD630 90 07 00 00 */ stw r0, 0(r7) +/* 803B06D4 003AD634 48 00 00 1C */ b lbl_803B06F0 +lbl_803B06D8: +/* 803B06D8 003AD638 88 8D AF 60 */ lbz r4, lbl_805A9B20@sda21(r13) +/* 803B06DC 003AD63C 3C 60 80 56 */ lis r3, lbl_8055FD90@ha +/* 803B06E0 003AD640 38 03 FD 90 */ addi r0, r3, lbl_8055FD90@l +/* 803B06E4 003AD644 1C 64 00 0C */ mulli r3, r4, 0xc +/* 803B06E8 003AD648 7C 00 1A 14 */ add r0, r0, r3 +/* 803B06EC 003AD64C 90 05 00 00 */ stw r0, 0(r5) +lbl_803B06F0: +/* 803B06F0 003AD650 88 AD AF 60 */ lbz r5, lbl_805A9B20@sda21(r13) +/* 803B06F4 003AD654 3C 60 80 56 */ lis r3, lbl_8055FD90@ha +/* 803B06F8 003AD658 38 63 FD 90 */ addi r3, r3, lbl_8055FD90@l +/* 803B06FC 003AD65C 1C 85 00 0C */ mulli r4, r5, 0xc +/* 803B0700 003AD660 38 05 00 01 */ addi r0, r5, 1 +/* 803B0704 003AD664 98 0D AF 60 */ stb r0, lbl_805A9B20@sda21(r13) +/* 803B0708 003AD668 7C 63 22 14 */ add r3, r3, r4 +/* 803B070C 003AD66C 90 C3 00 00 */ stw r6, 0(r3) +/* 803B0710 003AD670 93 C3 00 08 */ stw r30, 8(r3) +/* 803B0714 003AD674 D0 23 00 04 */ stfs f1, 4(r3) +lbl_803B0718: +/* 803B0718 003AD678 C0 02 D6 08 */ lfs f0, lbl_805AF328@sda21(r2) +/* 803B071C 003AD67C C0 41 00 18 */ lfs f2, 0x18(r1) +/* 803B0720 003AD680 FC 00 10 00 */ fcmpu cr0, f0, f2 +/* 803B0724 003AD684 40 82 00 44 */ bne lbl_803B0768 +/* 803B0728 003AD688 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B072C 003AD68C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 803B0730 003AD690 41 82 00 38 */ beq lbl_803B0768 +/* 803B0734 003AD694 80 7E 00 3C */ lwz r3, 0x3c(r30) +/* 803B0738 003AD698 4B FE AC 29 */ bl synthSendKeyOff +/* 803B073C 003AD69C 38 00 FF FF */ li r0, -1 +/* 803B0740 003AD6A0 90 1E 00 3C */ stw r0, 0x3c(r30) +/* 803B0744 003AD6A4 80 7E 00 10 */ lwz r3, 0x10(r30) +/* 803B0748 003AD6A8 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e +/* 803B074C 003AD6AC 41 82 00 10 */ beq lbl_803B075C +/* 803B0750 003AD6B0 64 60 00 08 */ oris r0, r3, 8 +/* 803B0754 003AD6B4 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B0758 003AD6B8 48 00 01 B8 */ b lbl_803B0910 +lbl_803B075C: +/* 803B075C 003AD6BC 64 60 00 04 */ oris r0, r3, 4 +/* 803B0760 003AD6C0 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B0764 003AD6C4 48 00 01 AC */ b lbl_803B0910 +lbl_803B0768: +/* 803B0768 003AD6C8 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B076C 003AD6CC C3 E1 00 08 */ lfs f31, 8(r1) +/* 803B0770 003AD6D0 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb +/* 803B0774 003AD6D4 C3 A1 00 0C */ lfs f29, 0xc(r1) +/* 803B0778 003AD6D8 C3 C1 00 14 */ lfs f30, 0x14(r1) +/* 803B077C 003AD6DC 83 FE 00 3C */ lwz r31, 0x3c(r30) +/* 803B0780 003AD6E0 41 82 00 44 */ beq lbl_803B07C4 +/* 803B0784 003AD6E4 C0 1E 00 4C */ lfs f0, 0x4c(r30) +/* 803B0788 003AD6E8 7F E3 FB 78 */ mr r3, r31 +/* 803B078C 003AD6EC C0 22 D6 28 */ lfs f1, lbl_805AF348@sda21(r2) +/* 803B0790 003AD6F0 38 80 00 07 */ li r4, 7 +/* 803B0794 003AD6F4 EC 00 00 B2 */ fmuls f0, f0, f2 +/* 803B0798 003AD6F8 38 A0 00 7F */ li r5, 0x7f +/* 803B079C 003AD6FC EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B07A0 003AD700 FC 00 00 1E */ fctiwz f0, f0 +/* 803B07A4 003AD704 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803B07A8 003AD708 80 C1 00 24 */ lwz r6, 0x24(r1) +/* 803B07AC 003AD70C 54 C0 06 3E */ clrlwi r0, r6, 0x18 +/* 803B07B0 003AD710 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B07B4 003AD714 41 81 00 08 */ bgt lbl_803B07BC +/* 803B07B8 003AD718 7C C5 33 78 */ mr r5, r6 +lbl_803B07BC: +/* 803B07BC 003AD71C 4B FE A9 59 */ bl synthFXSetCtrl +/* 803B07C0 003AD720 48 00 00 3C */ b lbl_803B07FC +lbl_803B07C4: +/* 803B07C4 003AD724 C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2) +/* 803B07C8 003AD728 38 A0 00 7F */ li r5, 0x7f +/* 803B07CC 003AD72C EC 00 00 B2 */ fmuls f0, f0, f2 +/* 803B07D0 003AD730 FC 00 00 1E */ fctiwz f0, f0 +/* 803B07D4 003AD734 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803B07D8 003AD738 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B07DC 003AD73C 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B07E0 003AD740 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B07E4 003AD744 41 81 00 0C */ bgt lbl_803B07F0 +/* 803B07E8 003AD748 D8 01 00 28 */ stfd f0, 0x28(r1) +/* 803B07EC 003AD74C 80 A1 00 2C */ lwz r5, 0x2c(r1) +lbl_803B07F0: +/* 803B07F0 003AD750 7F E3 FB 78 */ mr r3, r31 +/* 803B07F4 003AD754 38 80 00 07 */ li r4, 7 +/* 803B07F8 003AD758 4B FE A9 1D */ bl synthFXSetCtrl +lbl_803B07FC: +/* 803B07FC 003AD75C C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803B0800 003AD760 38 A0 00 7F */ li r5, 0x7f +/* 803B0804 003AD764 C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2) +/* 803B0808 003AD768 EC 00 F0 2A */ fadds f0, f0, f30 +/* 803B080C 003AD76C EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B0810 003AD770 FC 00 00 1E */ fctiwz f0, f0 +/* 803B0814 003AD774 D8 01 00 28 */ stfd f0, 0x28(r1) +/* 803B0818 003AD778 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803B081C 003AD77C 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B0820 003AD780 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B0824 003AD784 41 81 00 0C */ bgt lbl_803B0830 +/* 803B0828 003AD788 D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803B082C 003AD78C 80 A1 00 24 */ lwz r5, 0x24(r1) +lbl_803B0830: +/* 803B0830 003AD790 7F E3 FB 78 */ mr r3, r31 +/* 803B0834 003AD794 38 80 00 0A */ li r4, 0xa +/* 803B0838 003AD798 4B FE A8 DD */ bl synthFXSetCtrl +/* 803B083C 003AD79C C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803B0840 003AD7A0 38 A0 00 7F */ li r5, 0x7f +/* 803B0844 003AD7A4 C0 22 D6 3C */ lfs f1, lbl_805AF35C@sda21(r2) +/* 803B0848 003AD7A8 EC 00 E8 28 */ fsubs f0, f0, f29 +/* 803B084C 003AD7AC EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B0850 003AD7B0 FC 00 00 1E */ fctiwz f0, f0 +/* 803B0854 003AD7B4 D8 01 00 30 */ stfd f0, 0x30(r1) +/* 803B0858 003AD7B8 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B085C 003AD7BC 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B0860 003AD7C0 28 00 00 7F */ cmplwi r0, 0x7f +/* 803B0864 003AD7C4 41 81 00 0C */ bgt lbl_803B0870 +/* 803B0868 003AD7C8 D8 01 00 38 */ stfd f0, 0x38(r1) +/* 803B086C 003AD7CC 80 A1 00 3C */ lwz r5, 0x3c(r1) +lbl_803B0870: +/* 803B0870 003AD7D0 7F E3 FB 78 */ mr r3, r31 +/* 803B0874 003AD7D4 38 80 00 83 */ li r4, 0x83 +/* 803B0878 003AD7D8 4B FE A8 9D */ bl synthFXSetCtrl +/* 803B087C 003AD7DC C0 02 D6 40 */ lfs f0, lbl_805AF360@sda21(r2) +/* 803B0880 003AD7E0 EC 20 07 F2 */ fmuls f1, f0, f31 +/* 803B0884 003AD7E4 4B FD 90 D1 */ bl __cvt_fp2unsigned +/* 803B0888 003AD7E8 28 03 3F FF */ cmplwi r3, 0x3fff +/* 803B088C 003AD7EC 38 A0 3F FF */ li r5, 0x3fff +/* 803B0890 003AD7F0 41 81 00 08 */ bgt lbl_803B0898 +/* 803B0894 003AD7F4 54 65 04 3E */ clrlwi r5, r3, 0x10 +lbl_803B0898: +/* 803B0898 003AD7F8 7F E3 FB 78 */ mr r3, r31 +/* 803B089C 003AD7FC 38 80 00 84 */ li r4, 0x84 +/* 803B08A0 003AD800 4B FE A9 59 */ bl synthFXSetCtrl14 +/* 803B08A4 003AD804 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 803B08A8 003AD808 28 03 00 00 */ cmplwi r3, 0 +/* 803B08AC 003AD80C 41 82 00 64 */ beq lbl_803B0910 +/* 803B08B0 003AD810 83 83 00 04 */ lwz r28, 4(r3) +/* 803B08B4 003AD814 3B 60 00 00 */ li r27, 0 +/* 803B08B8 003AD818 48 00 00 44 */ b lbl_803B08FC +lbl_803B08BC: +/* 803B08BC 003AD81C 88 9C 00 00 */ lbz r4, 0(r28) +/* 803B08C0 003AD820 28 04 00 40 */ cmplwi r4, 0x40 +/* 803B08C4 003AD824 41 80 00 14 */ blt lbl_803B08D8 +/* 803B08C8 003AD828 28 04 00 80 */ cmplwi r4, 0x80 +/* 803B08CC 003AD82C 41 82 00 0C */ beq lbl_803B08D8 +/* 803B08D0 003AD830 28 04 00 84 */ cmplwi r4, 0x84 +/* 803B08D4 003AD834 40 82 00 14 */ bne lbl_803B08E8 +lbl_803B08D8: +/* 803B08D8 003AD838 A0 BC 00 02 */ lhz r5, 2(r28) +/* 803B08DC 003AD83C 7F E3 FB 78 */ mr r3, r31 +/* 803B08E0 003AD840 4B FE A9 19 */ bl synthFXSetCtrl14 +/* 803B08E4 003AD844 48 00 00 10 */ b lbl_803B08F4 +lbl_803B08E8: +/* 803B08E8 003AD848 88 BC 00 02 */ lbz r5, 2(r28) +/* 803B08EC 003AD84C 7F E3 FB 78 */ mr r3, r31 +/* 803B08F0 003AD850 4B FE A8 25 */ bl synthFXSetCtrl +lbl_803B08F4: +/* 803B08F4 003AD854 3B 9C 00 04 */ addi r28, r28, 4 +/* 803B08F8 003AD858 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803B08FC: +/* 803B08FC 003AD85C 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 803B0900 003AD860 57 64 06 3E */ clrlwi r4, r27, 0x18 +/* 803B0904 003AD864 88 03 00 00 */ lbz r0, 0(r3) +/* 803B0908 003AD868 7C 04 00 40 */ cmplw r4, r0 +/* 803B090C 003AD86C 41 80 FF B0 */ blt lbl_803B08BC +lbl_803B0910: +/* 803B0910 003AD870 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B0914 003AD874 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb +/* 803B0918 003AD878 41 82 00 7C */ beq lbl_803B0994 +/* 803B091C 003AD87C C0 5E 00 4C */ lfs f2, 0x4c(r30) +/* 803B0920 003AD880 C0 22 D6 50 */ lfs f1, lbl_805AF370@sda21(r2) +/* 803B0924 003AD884 C0 02 D6 2C */ lfs f0, lbl_805AF34C@sda21(r2) +/* 803B0928 003AD888 EC 22 08 2A */ fadds f1, f2, f1 +/* 803B092C 003AD88C D0 3E 00 4C */ stfs f1, 0x4c(r30) +/* 803B0930 003AD890 C0 3E 00 4C */ lfs f1, 0x4c(r30) +/* 803B0934 003AD894 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803B0938 003AD898 4C 41 13 82 */ cror 2, 1, 2 +/* 803B093C 003AD89C 40 82 00 58 */ bne lbl_803B0994 +/* 803B0940 003AD8A0 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B0944 003AD8A4 54 00 03 14 */ rlwinm r0, r0, 0, 0xc, 0xa +/* 803B0948 003AD8A8 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B094C 003AD8AC 48 00 00 48 */ b lbl_803B0994 +lbl_803B0950: +/* 803B0950 003AD8B0 80 7E 00 08 */ lwz r3, 8(r30) +/* 803B0954 003AD8B4 28 03 00 00 */ cmplwi r3, 0 +/* 803B0958 003AD8B8 41 82 00 14 */ beq lbl_803B096C +/* 803B095C 003AD8BC 41 82 00 38 */ beq lbl_803B0994 +/* 803B0960 003AD8C0 88 03 00 1C */ lbz r0, 0x1c(r3) +/* 803B0964 003AD8C4 28 00 00 FF */ cmplwi r0, 0xff +/* 803B0968 003AD8C8 41 82 00 2C */ beq lbl_803B0994 +lbl_803B096C: +/* 803B096C 003AD8CC C0 22 D6 08 */ lfs f1, lbl_805AF328@sda21(r2) +/* 803B0970 003AD8D0 C0 01 00 18 */ lfs f0, 0x18(r1) +/* 803B0974 003AD8D4 FC 01 00 00 */ fcmpu cr0, f1, f0 +/* 803B0978 003AD8D8 41 82 00 1C */ beq lbl_803B0994 +/* 803B097C 003AD8DC 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B0980 003AD8E0 54 00 03 56 */ rlwinm r0, r0, 0, 0xd, 0xb +/* 803B0984 003AD8E4 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803B0988 003AD8E8 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 803B098C 003AD8EC 64 00 00 02 */ oris r0, r0, 2 +/* 803B0990 003AD8F0 90 1E 00 10 */ stw r0, 0x10(r30) +lbl_803B0994: +/* 803B0994 003AD8F4 7F BE EB 78 */ mr r30, r29 +lbl_803B0998: +/* 803B0998 003AD8F8 28 1E 00 00 */ cmplwi r30, 0 +/* 803B099C 003AD8FC 40 82 FA 20 */ bne lbl_803B03BC +/* 803B09A0 003AD900 4B FF F6 09 */ bl sub_803affa8 +/* 803B09A4 003AD904 4B FF DE 5D */ bl sub_803ae800 +/* 803B09A8 003AD908 83 ED AF 6C */ lwz r31, lbl_805A9B2C@sda21(r13) +/* 803B09AC 003AD90C 48 00 01 A0 */ b lbl_803B0B4C +lbl_803B09B0: +/* 803B09B0 003AD910 80 1F 00 28 */ lwz r0, 0x28(r31) +/* 803B09B4 003AD914 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 +/* 803B09B8 003AD918 40 82 00 D0 */ bne lbl_803B0A88 +/* 803B09BC 003AD91C 80 7F 00 20 */ lwz r3, 0x20(r31) +/* 803B09C0 003AD920 88 03 00 1C */ lbz r0, 0x1c(r3) +/* 803B09C4 003AD924 28 00 00 FF */ cmplwi r0, 0xff +/* 803B09C8 003AD928 41 82 01 80 */ beq lbl_803B0B48 +/* 803B09CC 003AD92C 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803B09D0 003AD930 88 03 00 1C */ lbz r0, 0x1c(r3) +/* 803B09D4 003AD934 28 00 00 FF */ cmplwi r0, 0xff +/* 803B09D8 003AD938 41 82 01 70 */ beq lbl_803B0B48 +/* 803B09DC 003AD93C 88 9F 00 1C */ lbz r4, 0x1c(r31) +/* 803B09E0 003AD940 3C 00 43 30 */ lis r0, 0x4330 +/* 803B09E4 003AD944 90 01 00 38 */ stw r0, 0x38(r1) +/* 803B09E8 003AD948 38 60 00 00 */ li r3, 0 +/* 803B09EC 003AD94C C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2) +/* 803B09F0 003AD950 90 81 00 3C */ stw r4, 0x3c(r1) +/* 803B09F4 003AD954 C0 7F 00 14 */ lfs f3, 0x14(r31) +/* 803B09F8 003AD958 C8 21 00 38 */ lfd f1, 0x38(r1) +/* 803B09FC 003AD95C C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2) +/* 803B0A00 003AD960 EC 21 10 28 */ fsubs f1, f1, f2 +/* 803B0A04 003AD964 EC 00 00 F2 */ fmuls f0, f0, f3 +/* 803B0A08 003AD968 EC 21 00 F2 */ fmuls f1, f1, f3 +/* 803B0A0C 003AD96C FC 00 00 1E */ fctiwz f0, f0 +/* 803B0A10 003AD970 FC 20 08 1E */ fctiwz f1, f1 +/* 803B0A14 003AD974 D8 01 00 28 */ stfd f0, 0x28(r1) +/* 803B0A18 003AD978 D8 21 00 30 */ stfd f1, 0x30(r1) +/* 803B0A1C 003AD97C 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803B0A20 003AD980 80 81 00 34 */ lwz r4, 0x34(r1) +/* 803B0A24 003AD984 98 9F 00 35 */ stb r4, 0x35(r31) +/* 803B0A28 003AD988 98 7F 00 36 */ stb r3, 0x36(r31) +/* 803B0A2C 003AD98C 98 1F 00 34 */ stb r0, 0x34(r31) +/* 803B0A30 003AD990 80 1F 00 28 */ lwz r0, 0x28(r31) +/* 803B0A34 003AD994 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803B0A38 003AD998 41 82 00 24 */ beq lbl_803B0A5C +/* 803B0A3C 003AD99C 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803B0A40 003AD9A0 38 9F 00 34 */ addi r4, r31, 0x34 +/* 803B0A44 003AD9A4 88 03 00 1C */ lbz r0, 0x1c(r3) +/* 803B0A48 003AD9A8 98 1F 00 37 */ stb r0, 0x37(r31) +/* 803B0A4C 003AD9AC 80 7F 00 20 */ lwz r3, 0x20(r31) +/* 803B0A50 003AD9B0 88 63 00 1C */ lbz r3, 0x1c(r3) +/* 803B0A54 003AD9B4 4B FE BD D1 */ bl sub_8039c824 +/* 803B0A58 003AD9B8 48 00 00 20 */ b lbl_803B0A78 +lbl_803B0A5C: +/* 803B0A5C 003AD9BC 80 7F 00 20 */ lwz r3, 0x20(r31) +/* 803B0A60 003AD9C0 38 9F 00 34 */ addi r4, r31, 0x34 +/* 803B0A64 003AD9C4 88 03 00 1C */ lbz r0, 0x1c(r3) +/* 803B0A68 003AD9C8 98 1F 00 37 */ stb r0, 0x37(r31) +/* 803B0A6C 003AD9CC 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803B0A70 003AD9D0 88 63 00 1C */ lbz r3, 0x1c(r3) +/* 803B0A74 003AD9D4 4B FE BD B1 */ bl sub_8039c824 +lbl_803B0A78: +/* 803B0A78 003AD9D8 80 1F 00 28 */ lwz r0, 0x28(r31) +/* 803B0A7C 003AD9DC 64 00 80 00 */ oris r0, r0, 0x8000 +/* 803B0A80 003AD9E0 90 1F 00 28 */ stw r0, 0x28(r31) +/* 803B0A84 003AD9E4 48 00 00 C4 */ b lbl_803B0B48 +lbl_803B0A88: +/* 803B0A88 003AD9E8 80 7F 00 20 */ lwz r3, 0x20(r31) +/* 803B0A8C 003AD9EC 88 83 00 1C */ lbz r4, 0x1c(r3) +/* 803B0A90 003AD9F0 28 04 00 FF */ cmplwi r4, 0xff +/* 803B0A94 003AD9F4 41 82 00 14 */ beq lbl_803B0AA8 +/* 803B0A98 003AD9F8 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803B0A9C 003AD9FC 88 03 00 1C */ lbz r0, 0x1c(r3) +/* 803B0AA0 003ADA00 28 00 00 FF */ cmplwi r0, 0xff +/* 803B0AA4 003ADA04 40 82 00 50 */ bne lbl_803B0AF4 +lbl_803B0AA8: +/* 803B0AA8 003ADA08 28 04 00 FF */ cmplwi r4, 0xff +/* 803B0AAC 003ADA0C 41 82 00 10 */ beq lbl_803B0ABC +/* 803B0AB0 003ADA10 88 1F 00 1D */ lbz r0, 0x1d(r31) +/* 803B0AB4 003ADA14 7C 04 00 40 */ cmplw r4, r0 +/* 803B0AB8 003ADA18 41 82 00 20 */ beq lbl_803B0AD8 +lbl_803B0ABC: +/* 803B0ABC 003ADA1C 80 7F 00 24 */ lwz r3, 0x24(r31) +/* 803B0AC0 003ADA20 88 63 00 1C */ lbz r3, 0x1c(r3) +/* 803B0AC4 003ADA24 28 03 00 FF */ cmplwi r3, 0xff +/* 803B0AC8 003ADA28 41 82 00 1C */ beq lbl_803B0AE4 +/* 803B0ACC 003ADA2C 88 1F 00 1D */ lbz r0, 0x1d(r31) +/* 803B0AD0 003ADA30 7C 03 00 40 */ cmplw r3, r0 +/* 803B0AD4 003ADA34 40 82 00 10 */ bne lbl_803B0AE4 +lbl_803B0AD8: +/* 803B0AD8 003ADA38 88 7F 00 1D */ lbz r3, 0x1d(r31) +/* 803B0ADC 003ADA3C 38 9F 00 34 */ addi r4, r31, 0x34 +/* 803B0AE0 003ADA40 4B FE BD 65 */ bl sub_8039c844 +lbl_803B0AE4: +/* 803B0AE4 003ADA44 80 1F 00 28 */ lwz r0, 0x28(r31) +/* 803B0AE8 003ADA48 54 00 00 7E */ clrlwi r0, r0, 1 +/* 803B0AEC 003ADA4C 90 1F 00 28 */ stw r0, 0x28(r31) +/* 803B0AF0 003ADA50 48 00 00 58 */ b lbl_803B0B48 +lbl_803B0AF4: +/* 803B0AF4 003ADA54 88 9F 00 1C */ lbz r4, 0x1c(r31) +/* 803B0AF8 003ADA58 3C 00 43 30 */ lis r0, 0x4330 +/* 803B0AFC 003ADA5C 90 01 00 38 */ stw r0, 0x38(r1) +/* 803B0B00 003ADA60 38 60 00 00 */ li r3, 0 +/* 803B0B04 003ADA64 C8 42 D6 10 */ lfd f2, lbl_805AF330@sda21(r2) +/* 803B0B08 003ADA68 90 81 00 3C */ stw r4, 0x3c(r1) +/* 803B0B0C 003ADA6C C0 7F 00 14 */ lfs f3, 0x14(r31) +/* 803B0B10 003ADA70 C8 21 00 38 */ lfd f1, 0x38(r1) +/* 803B0B14 003ADA74 C0 02 D6 28 */ lfs f0, lbl_805AF348@sda21(r2) +/* 803B0B18 003ADA78 EC 21 10 28 */ fsubs f1, f1, f2 +/* 803B0B1C 003ADA7C EC 00 00 F2 */ fmuls f0, f0, f3 +/* 803B0B20 003ADA80 EC 21 00 F2 */ fmuls f1, f1, f3 +/* 803B0B24 003ADA84 FC 00 00 1E */ fctiwz f0, f0 +/* 803B0B28 003ADA88 FC 20 08 1E */ fctiwz f1, f1 +/* 803B0B2C 003ADA8C D8 01 00 28 */ stfd f0, 0x28(r1) +/* 803B0B30 003ADA90 D8 21 00 30 */ stfd f1, 0x30(r1) +/* 803B0B34 003ADA94 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803B0B38 003ADA98 80 81 00 34 */ lwz r4, 0x34(r1) +/* 803B0B3C 003ADA9C 98 9F 00 35 */ stb r4, 0x35(r31) +/* 803B0B40 003ADAA0 98 7F 00 36 */ stb r3, 0x36(r31) +/* 803B0B44 003ADAA4 98 1F 00 34 */ stb r0, 0x34(r31) +lbl_803B0B48: +/* 803B0B48 003ADAA8 83 FF 00 00 */ lwz r31, 0(r31) +lbl_803B0B4C: +/* 803B0B4C 003ADAAC 28 1F 00 00 */ cmplwi r31, 0 +/* 803B0B50 003ADAB0 40 82 FE 60 */ bne lbl_803B09B0 +lbl_803B0B54: +/* 803B0B54 003ADAB4 E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0 +/* 803B0B58 003ADAB8 CB E1 00 80 */ lfd f31, 0x80(r1) +/* 803B0B5C 003ADABC E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0 +/* 803B0B60 003ADAC0 CB C1 00 70 */ lfd f30, 0x70(r1) +/* 803B0B64 003ADAC4 E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0 +/* 803B0B68 003ADAC8 39 61 00 60 */ addi r11, r1, 0x60 +/* 803B0B6C 003ADACC CB A1 00 60 */ lfd f29, 0x60(r1) +/* 803B0B70 003ADAD0 4B FD 8F 59 */ bl _restgpr_27 +/* 803B0B74 003ADAD4 80 01 00 94 */ lwz r0, 0x94(r1) +/* 803B0B78 003ADAD8 7C 08 03 A6 */ mtlr r0 +/* 803B0B7C 003ADADC 38 21 00 90 */ addi r1, r1, 0x90 +/* 803B0B80 003ADAE0 4E 80 00 20 */ blr + +.global sub_803b0b84 +sub_803b0b84: +/* 803B0B84 003ADAE4 38 A0 00 00 */ li r5, 0 +/* 803B0B88 003ADAE8 54 60 FF FE */ rlwinm r0, r3, 0x1f, 0x1f, 0x1f +/* 803B0B8C 003ADAEC 38 80 00 01 */ li r4, 1 +/* 803B0B90 003ADAF0 38 60 00 03 */ li r3, 3 +/* 803B0B94 003ADAF4 90 AD AF 78 */ stw r5, lbl_805A9B38@sda21(r13) +/* 803B0B98 003ADAF8 90 AD AF 74 */ stw r5, lbl_805A9B34@sda21(r13) +/* 803B0B9C 003ADAFC 90 AD AF 70 */ stw r5, lbl_805A9B30@sda21(r13) +/* 803B0BA0 003ADB00 90 AD AF 6C */ stw r5, lbl_805A9B2C@sda21(r13) +/* 803B0BA4 003ADB04 90 AD AF 68 */ stw r5, lbl_805A9B28@sda21(r13) +/* 803B0BA8 003ADB08 98 8D AF 65 */ stb r4, lbl_805A9B25@sda21(r13) +/* 803B0BAC 003ADB0C 98 6D AF 64 */ stb r3, lbl_805A9B24@sda21(r13) +/* 803B0BB0 003ADB10 98 AD AF 7C */ stb r5, lbl_805A9B3C@sda21(r13) +/* 803B0BB4 003ADB14 98 0D AF 63 */ stb r0, lbl_805A9B23@sda21(r13) +/* 803B0BB8 003ADB18 4E 80 00 20 */ blr + +.global s3dExit +s3dExit: +/* 803B0BBC 003ADB1C 4E 80 00 20 */ blr diff --git a/asm/musyx/snd_init.s b/asm/musyx/snd_init.s new file mode 100644 index 00000000..08f1093d --- /dev/null +++ b/asm/musyx/snd_init.s @@ -0,0 +1,97 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sndInit +sndInit: +/* 803B0BC0 003ADB20 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B0BC4 003ADB24 7C 08 02 A6 */ mflr r0 +/* 803B0BC8 003ADB28 39 20 00 00 */ li r9, 0 +/* 803B0BCC 003ADB2C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B0BD0 003ADB30 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B0BD4 003ADB34 28 00 00 40 */ cmplwi r0, 0x40 +/* 803B0BD8 003ADB38 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B0BDC 003ADB3C 7D 1F 43 78 */ mr r31, r8 +/* 803B0BE0 003ADB40 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B0BE4 003ADB44 7C FE 3B 78 */ mr r30, r7 +/* 803B0BE8 003ADB48 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B0BEC 003ADB4C 99 2D AE 48 */ stb r9, lbl_805A9A08@sda21(r13) +/* 803B0BF0 003ADB50 41 81 00 14 */ bgt lbl_803B0C04 +/* 803B0BF4 003ADB54 3C E0 80 55 */ lis r7, lbl_80550050@ha +/* 803B0BF8 003ADB58 38 E7 00 50 */ addi r7, r7, lbl_80550050@l +/* 803B0BFC 003ADB5C 98 67 02 10 */ stb r3, 0x210(r7) +/* 803B0C00 003ADB60 48 00 00 14 */ b lbl_803B0C14 +lbl_803B0C04: +/* 803B0C04 003ADB64 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803B0C08 003ADB68 38 00 00 40 */ li r0, 0x40 +/* 803B0C0C 003ADB6C 38 63 00 50 */ addi r3, r3, lbl_80550050@l +/* 803B0C10 003ADB70 98 03 02 10 */ stb r0, 0x210(r3) +lbl_803B0C14: +/* 803B0C14 003ADB74 54 C0 06 3E */ clrlwi r0, r6, 0x18 +/* 803B0C18 003ADB78 28 00 00 08 */ cmplwi r0, 8 +/* 803B0C1C 003ADB7C 41 81 00 14 */ bgt lbl_803B0C30 +/* 803B0C20 003ADB80 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803B0C24 003ADB84 38 63 00 50 */ addi r3, r3, lbl_80550050@l +/* 803B0C28 003ADB88 98 C3 02 13 */ stb r6, 0x213(r3) +/* 803B0C2C 003ADB8C 48 00 00 14 */ b lbl_803B0C40 +lbl_803B0C30: +/* 803B0C30 003ADB90 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803B0C34 003ADB94 38 00 00 08 */ li r0, 8 +/* 803B0C38 003ADB98 38 63 00 50 */ addi r3, r3, lbl_80550050@l +/* 803B0C3C 003ADB9C 98 03 02 13 */ stb r0, 0x213(r3) +lbl_803B0C40: +/* 803B0C40 003ADBA0 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803B0C44 003ADBA4 38 00 7D 00 */ li r0, 0x7d00 +/* 803B0C48 003ADBA8 3B A3 00 50 */ addi r29, r3, lbl_80550050@l +/* 803B0C4C 003ADBAC 90 01 00 08 */ stw r0, 8(r1) +/* 803B0C50 003ADBB0 7F C6 F3 78 */ mr r6, r30 +/* 803B0C54 003ADBB4 38 61 00 08 */ addi r3, r1, 8 +/* 803B0C58 003ADBB8 98 9D 02 11 */ stb r4, 0x211(r29) +/* 803B0C5C 003ADBBC 88 9D 02 10 */ lbz r4, 0x210(r29) +/* 803B0C60 003ADBC0 98 BD 02 12 */ stb r5, 0x212(r29) +/* 803B0C64 003ADBC4 88 BD 02 13 */ lbz r5, 0x213(r29) +/* 803B0C68 003ADBC8 48 00 24 39 */ bl sub_803b30a0 +/* 803B0C6C 003ADBCC 2C 03 00 00 */ cmpwi r3, 0 +/* 803B0C70 003ADBD0 40 82 00 4C */ bne lbl_803B0CBC +/* 803B0C74 003ADBD4 8B BD 02 10 */ lbz r29, 0x210(r29) +/* 803B0C78 003ADBD8 4B FF 95 0D */ bl sub_803aa184 +/* 803B0C7C 003ADBDC 7F E4 FB 78 */ mr r4, r31 +/* 803B0C80 003ADBE0 38 60 00 00 */ li r3, 0 +/* 803B0C84 003ADBE4 4B FF 1C 3D */ bl dataInit +/* 803B0C88 003ADBE8 4B FE 7E 71 */ bl seqInit +/* 803B0C8C 003ADBEC 38 00 00 00 */ li r0, 0 +/* 803B0C90 003ADBF0 7F A4 EB 78 */ mr r4, r29 +/* 803B0C94 003ADBF4 98 0D AE 80 */ stb r0, lbl_805A9A40@sda21(r13) +/* 803B0C98 003ADBF8 38 60 7D 00 */ li r3, 0x7d00 +/* 803B0C9C 003ADBFC 4B FE AD C9 */ bl synthInit +/* 803B0CA0 003ADC00 4B FE BB C5 */ bl streamInit +/* 803B0CA4 003ADC04 4B FF 8D 2D */ bl vsInit +/* 803B0CA8 003ADC08 7F C3 F3 78 */ mr r3, r30 +/* 803B0CAC 003ADC0C 4B FF FE D9 */ bl sub_803b0b84 +/* 803B0CB0 003ADC10 38 00 00 01 */ li r0, 1 +/* 803B0CB4 003ADC14 38 60 00 00 */ li r3, 0 +/* 803B0CB8 003ADC18 98 0D AE 48 */ stb r0, lbl_805A9A08@sda21(r13) +lbl_803B0CBC: +/* 803B0CBC 003ADC1C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B0CC0 003ADC20 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B0CC4 003ADC24 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B0CC8 003ADC28 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B0CCC 003ADC2C 7C 08 03 A6 */ mtlr r0 +/* 803B0CD0 003ADC30 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B0CD4 003ADC34 4E 80 00 20 */ blr + +.global sndQuit +sndQuit: +/* 803B0CD8 003ADC38 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B0CDC 003ADC3C 7C 08 02 A6 */ mflr r0 +/* 803B0CE0 003ADC40 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B0CE4 003ADC44 48 00 24 75 */ bl hwExit +/* 803B0CE8 003ADC48 4B FF 1C BD */ bl dataExit +/* 803B0CEC 003ADC4C 4B FF FE D1 */ bl s3dExit +/* 803B0CF0 003ADC50 4B FE B2 E9 */ bl synthExit +/* 803B0CF4 003ADC54 38 00 00 00 */ li r0, 0 +/* 803B0CF8 003ADC58 98 0D AE 48 */ stb r0, lbl_805A9A08@sda21(r13) +/* 803B0CFC 003ADC5C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B0D00 003ADC60 7C 08 03 A6 */ mtlr r0 +/* 803B0D04 003ADC64 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B0D08 003ADC68 4E 80 00 20 */ blr diff --git a/asm/musyx/snd_math.s b/asm/musyx/snd_math.s new file mode 100644 index 00000000..8cfbe061 --- /dev/null +++ b/asm/musyx/snd_math.s @@ -0,0 +1,256 @@ +.include "macros.inc" + +.section .text, "ax" + +.global salApplyMatrix +salApplyMatrix: +/* 803B0D0C 003ADC6C C0 63 00 00 */ lfs f3, 0(r3) +/* 803B0D10 003ADC70 C0 44 00 00 */ lfs f2, 0(r4) +/* 803B0D14 003ADC74 C0 23 00 04 */ lfs f1, 4(r3) +/* 803B0D18 003ADC78 C0 04 00 04 */ lfs f0, 4(r4) +/* 803B0D1C 003ADC7C EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0D20 003ADC80 C0 63 00 08 */ lfs f3, 8(r3) +/* 803B0D24 003ADC84 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B0D28 003ADC88 C0 24 00 08 */ lfs f1, 8(r4) +/* 803B0D2C 003ADC8C C0 83 00 24 */ lfs f4, 0x24(r3) +/* 803B0D30 003ADC90 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803B0D34 003ADC94 EC 02 00 2A */ fadds f0, f2, f0 +/* 803B0D38 003ADC98 EC 01 00 2A */ fadds f0, f1, f0 +/* 803B0D3C 003ADC9C EC 04 00 2A */ fadds f0, f4, f0 +/* 803B0D40 003ADCA0 D0 05 00 00 */ stfs f0, 0(r5) +/* 803B0D44 003ADCA4 C0 63 00 0C */ lfs f3, 0xc(r3) +/* 803B0D48 003ADCA8 C0 44 00 00 */ lfs f2, 0(r4) +/* 803B0D4C 003ADCAC C0 23 00 10 */ lfs f1, 0x10(r3) +/* 803B0D50 003ADCB0 C0 04 00 04 */ lfs f0, 4(r4) +/* 803B0D54 003ADCB4 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0D58 003ADCB8 C0 63 00 14 */ lfs f3, 0x14(r3) +/* 803B0D5C 003ADCBC EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B0D60 003ADCC0 C0 24 00 08 */ lfs f1, 8(r4) +/* 803B0D64 003ADCC4 C0 83 00 28 */ lfs f4, 0x28(r3) +/* 803B0D68 003ADCC8 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803B0D6C 003ADCCC EC 02 00 2A */ fadds f0, f2, f0 +/* 803B0D70 003ADCD0 EC 01 00 2A */ fadds f0, f1, f0 +/* 803B0D74 003ADCD4 EC 04 00 2A */ fadds f0, f4, f0 +/* 803B0D78 003ADCD8 D0 05 00 04 */ stfs f0, 4(r5) +/* 803B0D7C 003ADCDC C0 63 00 18 */ lfs f3, 0x18(r3) +/* 803B0D80 003ADCE0 C0 44 00 00 */ lfs f2, 0(r4) +/* 803B0D84 003ADCE4 C0 23 00 1C */ lfs f1, 0x1c(r3) +/* 803B0D88 003ADCE8 C0 04 00 04 */ lfs f0, 4(r4) +/* 803B0D8C 003ADCEC EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0D90 003ADCF0 C0 63 00 20 */ lfs f3, 0x20(r3) +/* 803B0D94 003ADCF4 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B0D98 003ADCF8 C0 24 00 08 */ lfs f1, 8(r4) +/* 803B0D9C 003ADCFC C0 83 00 2C */ lfs f4, 0x2c(r3) +/* 803B0DA0 003ADD00 EC 23 00 72 */ fmuls f1, f3, f1 +/* 803B0DA4 003ADD04 EC 02 00 2A */ fadds f0, f2, f0 +/* 803B0DA8 003ADD08 EC 01 00 2A */ fadds f0, f1, f0 +/* 803B0DAC 003ADD0C EC 04 00 2A */ fadds f0, f4, f0 +/* 803B0DB0 003ADD10 D0 05 00 08 */ stfs f0, 8(r5) +/* 803B0DB4 003ADD14 4E 80 00 20 */ blr + +.global salNormalizeVector +salNormalizeVector: +/* 803B0DB8 003ADD18 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B0DBC 003ADD1C C0 23 00 00 */ lfs f1, 0(r3) +/* 803B0DC0 003ADD20 C0 03 00 04 */ lfs f0, 4(r3) +/* 803B0DC4 003ADD24 EC 41 00 72 */ fmuls f2, f1, f1 +/* 803B0DC8 003ADD28 C0 63 00 08 */ lfs f3, 8(r3) +/* 803B0DCC 003ADD2C EC 20 00 32 */ fmuls f1, f0, f0 +/* 803B0DD0 003ADD30 C0 02 D6 58 */ lfs f0, lbl_805AF378@sda21(r2) +/* 803B0DD4 003ADD34 EC 63 00 F2 */ fmuls f3, f3, f3 +/* 803B0DD8 003ADD38 EC 22 08 2A */ fadds f1, f2, f1 +/* 803B0DDC 003ADD3C EC 23 08 2A */ fadds f1, f3, f1 +/* 803B0DE0 003ADD40 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 803B0DE4 003ADD44 40 81 00 5C */ ble lbl_803B0E40 +/* 803B0DE8 003ADD48 FC 40 08 34 */ frsqrte f2, f1 +/* 803B0DEC 003ADD4C C8 82 D6 60 */ lfd f4, lbl_805AF380@sda21(r2) +/* 803B0DF0 003ADD50 C8 62 D6 68 */ lfd f3, lbl_805AF388@sda21(r2) +/* 803B0DF4 003ADD54 FC 02 00 B2 */ fmul f0, f2, f2 +/* 803B0DF8 003ADD58 FC 44 00 B2 */ fmul f2, f4, f2 +/* 803B0DFC 003ADD5C FC 01 00 32 */ fmul f0, f1, f0 +/* 803B0E00 003ADD60 FC 03 00 28 */ fsub f0, f3, f0 +/* 803B0E04 003ADD64 FC 42 00 32 */ fmul f2, f2, f0 +/* 803B0E08 003ADD68 FC 02 00 B2 */ fmul f0, f2, f2 +/* 803B0E0C 003ADD6C FC 44 00 B2 */ fmul f2, f4, f2 +/* 803B0E10 003ADD70 FC 01 00 32 */ fmul f0, f1, f0 +/* 803B0E14 003ADD74 FC 03 00 28 */ fsub f0, f3, f0 +/* 803B0E18 003ADD78 FC 42 00 32 */ fmul f2, f2, f0 +/* 803B0E1C 003ADD7C FC 02 00 B2 */ fmul f0, f2, f2 +/* 803B0E20 003ADD80 FC 44 00 B2 */ fmul f2, f4, f2 +/* 803B0E24 003ADD84 FC 01 00 32 */ fmul f0, f1, f0 +/* 803B0E28 003ADD88 FC 03 00 28 */ fsub f0, f3, f0 +/* 803B0E2C 003ADD8C FC 02 00 32 */ fmul f0, f2, f0 +/* 803B0E30 003ADD90 FC 01 00 32 */ fmul f0, f1, f0 +/* 803B0E34 003ADD94 FC 00 00 18 */ frsp f0, f0 +/* 803B0E38 003ADD98 D0 01 00 08 */ stfs f0, 8(r1) +/* 803B0E3C 003ADD9C C0 21 00 08 */ lfs f1, 8(r1) +lbl_803B0E40: +/* 803B0E40 003ADDA0 C0 03 00 00 */ lfs f0, 0(r3) +/* 803B0E44 003ADDA4 EC 00 08 24 */ fdivs f0, f0, f1 +/* 803B0E48 003ADDA8 D0 03 00 00 */ stfs f0, 0(r3) +/* 803B0E4C 003ADDAC C0 03 00 04 */ lfs f0, 4(r3) +/* 803B0E50 003ADDB0 EC 00 08 24 */ fdivs f0, f0, f1 +/* 803B0E54 003ADDB4 D0 03 00 04 */ stfs f0, 4(r3) +/* 803B0E58 003ADDB8 C0 03 00 08 */ lfs f0, 8(r3) +/* 803B0E5C 003ADDBC EC 00 08 24 */ fdivs f0, f0, f1 +/* 803B0E60 003ADDC0 D0 03 00 08 */ stfs f0, 8(r3) +/* 803B0E64 003ADDC4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B0E68 003ADDC8 4E 80 00 20 */ blr + +.global salCrossProduct +salCrossProduct: +/* 803B0E6C 003ADDCC C0 64 00 04 */ lfs f3, 4(r4) +/* 803B0E70 003ADDD0 C0 45 00 08 */ lfs f2, 8(r5) +/* 803B0E74 003ADDD4 C0 24 00 08 */ lfs f1, 8(r4) +/* 803B0E78 003ADDD8 C0 05 00 04 */ lfs f0, 4(r5) +/* 803B0E7C 003ADDDC EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0E80 003ADDE0 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B0E84 003ADDE4 EC 02 00 28 */ fsubs f0, f2, f0 +/* 803B0E88 003ADDE8 D0 03 00 00 */ stfs f0, 0(r3) +/* 803B0E8C 003ADDEC C0 64 00 08 */ lfs f3, 8(r4) +/* 803B0E90 003ADDF0 C0 45 00 00 */ lfs f2, 0(r5) +/* 803B0E94 003ADDF4 C0 24 00 00 */ lfs f1, 0(r4) +/* 803B0E98 003ADDF8 C0 05 00 08 */ lfs f0, 8(r5) +/* 803B0E9C 003ADDFC EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0EA0 003ADE00 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B0EA4 003ADE04 EC 02 00 28 */ fsubs f0, f2, f0 +/* 803B0EA8 003ADE08 D0 03 00 04 */ stfs f0, 4(r3) +/* 803B0EAC 003ADE0C C0 64 00 00 */ lfs f3, 0(r4) +/* 803B0EB0 003ADE10 C0 45 00 04 */ lfs f2, 4(r5) +/* 803B0EB4 003ADE14 C0 24 00 04 */ lfs f1, 4(r4) +/* 803B0EB8 003ADE18 C0 05 00 00 */ lfs f0, 0(r5) +/* 803B0EBC 003ADE1C EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0EC0 003ADE20 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B0EC4 003ADE24 EC 02 00 28 */ fsubs f0, f2, f0 +/* 803B0EC8 003ADE28 D0 03 00 08 */ stfs f0, 8(r3) +/* 803B0ECC 003ADE2C 4E 80 00 20 */ blr + +.global salInvertMatrix +salInvertMatrix: +/* 803B0ED0 003ADE30 C0 A4 00 20 */ lfs f5, 0x20(r4) +/* 803B0ED4 003ADE34 C1 44 00 0C */ lfs f10, 0xc(r4) +/* 803B0ED8 003ADE38 C0 04 00 14 */ lfs f0, 0x14(r4) +/* 803B0EDC 003ADE3C C0 C4 00 1C */ lfs f6, 0x1c(r4) +/* 803B0EE0 003ADE40 EC 6A 01 72 */ fmuls f3, f10, f5 +/* 803B0EE4 003ADE44 C1 24 00 18 */ lfs f9, 0x18(r4) +/* 803B0EE8 003ADE48 C1 04 00 10 */ lfs f8, 0x10(r4) +/* 803B0EEC 003ADE4C EC 86 00 32 */ fmuls f4, f6, f0 +/* 803B0EF0 003ADE50 EC 49 00 32 */ fmuls f2, f9, f0 +/* 803B0EF4 003ADE54 C0 24 00 00 */ lfs f1, 0(r4) +/* 803B0EF8 003ADE58 EC E8 01 72 */ fmuls f7, f8, f5 +/* 803B0EFC 003ADE5C C0 04 00 04 */ lfs f0, 4(r4) +/* 803B0F00 003ADE60 EC AA 01 B2 */ fmuls f5, f10, f6 +/* 803B0F04 003ADE64 EC C3 10 28 */ fsubs f6, f3, f2 +/* 803B0F08 003ADE68 EC E7 20 28 */ fsubs f7, f7, f4 +/* 803B0F0C 003ADE6C C0 44 00 08 */ lfs f2, 8(r4) +/* 803B0F10 003ADE70 EC 89 02 32 */ fmuls f4, f9, f8 +/* 803B0F14 003ADE74 C0 62 D6 70 */ lfs f3, lbl_805AF390@sda21(r2) +/* 803B0F18 003ADE78 FC C0 30 50 */ fneg f6, f6 +/* 803B0F1C 003ADE7C EC 21 01 F2 */ fmuls f1, f1, f7 +/* 803B0F20 003ADE80 EC 85 20 28 */ fsubs f4, f5, f4 +/* 803B0F24 003ADE84 EC 00 01 B2 */ fmuls f0, f0, f6 +/* 803B0F28 003ADE88 EC 42 01 32 */ fmuls f2, f2, f4 +/* 803B0F2C 003ADE8C EC 01 00 2A */ fadds f0, f1, f0 +/* 803B0F30 003ADE90 EC 02 00 2A */ fadds f0, f2, f0 +/* 803B0F34 003ADE94 EC 23 00 24 */ fdivs f1, f3, f0 +/* 803B0F38 003ADE98 EC 01 01 F2 */ fmuls f0, f1, f7 +/* 803B0F3C 003ADE9C EC 61 01 B2 */ fmuls f3, f1, f6 +/* 803B0F40 003ADEA0 EC 41 01 32 */ fmuls f2, f1, f4 +/* 803B0F44 003ADEA4 D0 03 00 00 */ stfs f0, 0(r3) +/* 803B0F48 003ADEA8 FC 00 08 50 */ fneg f0, f1 +/* 803B0F4C 003ADEAC D0 63 00 0C */ stfs f3, 0xc(r3) +/* 803B0F50 003ADEB0 D0 43 00 18 */ stfs f2, 0x18(r3) +/* 803B0F54 003ADEB4 C0 A4 00 04 */ lfs f5, 4(r4) +/* 803B0F58 003ADEB8 C0 84 00 20 */ lfs f4, 0x20(r4) +/* 803B0F5C 003ADEBC C0 64 00 1C */ lfs f3, 0x1c(r4) +/* 803B0F60 003ADEC0 C0 44 00 08 */ lfs f2, 8(r4) +/* 803B0F64 003ADEC4 EC 85 01 32 */ fmuls f4, f5, f4 +/* 803B0F68 003ADEC8 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0F6C 003ADECC EC 44 10 28 */ fsubs f2, f4, f2 +/* 803B0F70 003ADED0 EC 40 00 B2 */ fmuls f2, f0, f2 +/* 803B0F74 003ADED4 D0 43 00 04 */ stfs f2, 4(r3) +/* 803B0F78 003ADED8 C0 A4 00 00 */ lfs f5, 0(r4) +/* 803B0F7C 003ADEDC C0 84 00 20 */ lfs f4, 0x20(r4) +/* 803B0F80 003ADEE0 C0 64 00 18 */ lfs f3, 0x18(r4) +/* 803B0F84 003ADEE4 C0 44 00 08 */ lfs f2, 8(r4) +/* 803B0F88 003ADEE8 EC 85 01 32 */ fmuls f4, f5, f4 +/* 803B0F8C 003ADEEC EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0F90 003ADEF0 EC 44 10 28 */ fsubs f2, f4, f2 +/* 803B0F94 003ADEF4 EC 41 00 B2 */ fmuls f2, f1, f2 +/* 803B0F98 003ADEF8 D0 43 00 10 */ stfs f2, 0x10(r3) +/* 803B0F9C 003ADEFC C0 A4 00 00 */ lfs f5, 0(r4) +/* 803B0FA0 003ADF00 C0 84 00 1C */ lfs f4, 0x1c(r4) +/* 803B0FA4 003ADF04 C0 64 00 18 */ lfs f3, 0x18(r4) +/* 803B0FA8 003ADF08 C0 44 00 04 */ lfs f2, 4(r4) +/* 803B0FAC 003ADF0C EC 85 01 32 */ fmuls f4, f5, f4 +/* 803B0FB0 003ADF10 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0FB4 003ADF14 EC 44 10 28 */ fsubs f2, f4, f2 +/* 803B0FB8 003ADF18 EC 40 00 B2 */ fmuls f2, f0, f2 +/* 803B0FBC 003ADF1C D0 43 00 1C */ stfs f2, 0x1c(r3) +/* 803B0FC0 003ADF20 C0 A4 00 04 */ lfs f5, 4(r4) +/* 803B0FC4 003ADF24 C0 84 00 14 */ lfs f4, 0x14(r4) +/* 803B0FC8 003ADF28 C0 64 00 10 */ lfs f3, 0x10(r4) +/* 803B0FCC 003ADF2C C0 44 00 08 */ lfs f2, 8(r4) +/* 803B0FD0 003ADF30 EC 85 01 32 */ fmuls f4, f5, f4 +/* 803B0FD4 003ADF34 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0FD8 003ADF38 EC 44 10 28 */ fsubs f2, f4, f2 +/* 803B0FDC 003ADF3C EC 41 00 B2 */ fmuls f2, f1, f2 +/* 803B0FE0 003ADF40 D0 43 00 08 */ stfs f2, 8(r3) +/* 803B0FE4 003ADF44 C0 A4 00 00 */ lfs f5, 0(r4) +/* 803B0FE8 003ADF48 C0 84 00 14 */ lfs f4, 0x14(r4) +/* 803B0FEC 003ADF4C C0 64 00 0C */ lfs f3, 0xc(r4) +/* 803B0FF0 003ADF50 C0 44 00 08 */ lfs f2, 8(r4) +/* 803B0FF4 003ADF54 EC 85 01 32 */ fmuls f4, f5, f4 +/* 803B0FF8 003ADF58 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B0FFC 003ADF5C EC 44 10 28 */ fsubs f2, f4, f2 +/* 803B1000 003ADF60 EC 00 00 B2 */ fmuls f0, f0, f2 +/* 803B1004 003ADF64 D0 03 00 14 */ stfs f0, 0x14(r3) +/* 803B1008 003ADF68 C0 84 00 00 */ lfs f4, 0(r4) +/* 803B100C 003ADF6C C0 64 00 10 */ lfs f3, 0x10(r4) +/* 803B1010 003ADF70 C0 44 00 0C */ lfs f2, 0xc(r4) +/* 803B1014 003ADF74 C0 04 00 04 */ lfs f0, 4(r4) +/* 803B1018 003ADF78 EC 64 00 F2 */ fmuls f3, f4, f3 +/* 803B101C 003ADF7C EC 02 00 32 */ fmuls f0, f2, f0 +/* 803B1020 003ADF80 EC 03 00 28 */ fsubs f0, f3, f0 +/* 803B1024 003ADF84 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B1028 003ADF88 D0 03 00 20 */ stfs f0, 0x20(r3) +/* 803B102C 003ADF8C C0 04 00 24 */ lfs f0, 0x24(r4) +/* 803B1030 003ADF90 C0 83 00 00 */ lfs f4, 0(r3) +/* 803B1034 003ADF94 FC A0 00 50 */ fneg f5, f0 +/* 803B1038 003ADF98 C0 64 00 28 */ lfs f3, 0x28(r4) +/* 803B103C 003ADF9C C0 43 00 04 */ lfs f2, 4(r3) +/* 803B1040 003ADFA0 C0 24 00 2C */ lfs f1, 0x2c(r4) +/* 803B1044 003ADFA4 C0 03 00 08 */ lfs f0, 8(r3) +/* 803B1048 003ADFA8 EC 85 01 32 */ fmuls f4, f5, f4 +/* 803B104C 003ADFAC EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B1050 003ADFB0 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B1054 003ADFB4 EC 24 10 28 */ fsubs f1, f4, f2 +/* 803B1058 003ADFB8 EC 01 00 28 */ fsubs f0, f1, f0 +/* 803B105C 003ADFBC D0 03 00 24 */ stfs f0, 0x24(r3) +/* 803B1060 003ADFC0 C0 04 00 24 */ lfs f0, 0x24(r4) +/* 803B1064 003ADFC4 C0 83 00 0C */ lfs f4, 0xc(r3) +/* 803B1068 003ADFC8 FC A0 00 50 */ fneg f5, f0 +/* 803B106C 003ADFCC C0 64 00 28 */ lfs f3, 0x28(r4) +/* 803B1070 003ADFD0 C0 43 00 10 */ lfs f2, 0x10(r3) +/* 803B1074 003ADFD4 C0 24 00 2C */ lfs f1, 0x2c(r4) +/* 803B1078 003ADFD8 C0 03 00 14 */ lfs f0, 0x14(r3) +/* 803B107C 003ADFDC EC 85 01 32 */ fmuls f4, f5, f4 +/* 803B1080 003ADFE0 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B1084 003ADFE4 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B1088 003ADFE8 EC 24 10 28 */ fsubs f1, f4, f2 +/* 803B108C 003ADFEC EC 01 00 28 */ fsubs f0, f1, f0 +/* 803B1090 003ADFF0 D0 03 00 28 */ stfs f0, 0x28(r3) +/* 803B1094 003ADFF4 C0 24 00 24 */ lfs f1, 0x24(r4) +/* 803B1098 003ADFF8 C0 03 00 18 */ lfs f0, 0x18(r3) +/* 803B109C 003ADFFC FC 80 08 50 */ fneg f4, f1 +/* 803B10A0 003AE000 C0 64 00 28 */ lfs f3, 0x28(r4) +/* 803B10A4 003AE004 C0 43 00 1C */ lfs f2, 0x1c(r3) +/* 803B10A8 003AE008 C0 24 00 2C */ lfs f1, 0x2c(r4) +/* 803B10AC 003AE00C EC 84 00 32 */ fmuls f4, f4, f0 +/* 803B10B0 003AE010 C0 03 00 20 */ lfs f0, 0x20(r3) +/* 803B10B4 003AE014 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803B10B8 003AE018 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803B10BC 003AE01C EC 24 10 28 */ fsubs f1, f4, f2 +/* 803B10C0 003AE020 EC 01 00 28 */ fsubs f0, f1, f0 +/* 803B10C4 003AE024 D0 03 00 2C */ stfs f0, 0x2c(r3) +/* 803B10C8 003AE028 4E 80 00 20 */ blr diff --git a/asm/musyx/snd_midictrl.s b/asm/musyx/snd_midictrl.s new file mode 100644 index 00000000..b75cac05 --- /dev/null +++ b/asm/musyx/snd_midictrl.s @@ -0,0 +1,2137 @@ +.include "macros.inc" + +.section .text, "ax" + +.global inpSetGlobalMIDIDirtyFlag +inpSetGlobalMIDIDirtyFlag: +/* 803B10CC 003AE02C 3C C0 80 56 */ lis r6, lbl_80560790@ha +/* 803B10D0 003AE030 54 84 34 B2 */ rlwinm r4, r4, 6, 0x12, 0x19 +/* 803B10D4 003AE034 38 06 07 90 */ addi r0, r6, lbl_80560790@l +/* 803B10D8 003AE038 54 63 15 BA */ rlwinm r3, r3, 2, 0x16, 0x1d +/* 803B10DC 003AE03C 7C 80 22 14 */ add r4, r0, r4 +/* 803B10E0 003AE040 7C 04 18 2E */ lwzx r0, r4, r3 +/* 803B10E4 003AE044 7C 00 2B 78 */ or r0, r0, r5 +/* 803B10E8 003AE048 7C 04 19 2E */ stwx r0, r4, r3 +/* 803B10EC 003AE04C 4E 80 00 20 */ blr + +.global sub_803b10f0 +sub_803b10f0: +/* 803B10F0 003AE050 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B10F4 003AE054 7C 08 02 A6 */ mflr r0 +/* 803B10F8 003AE058 90 01 00 34 */ stw r0, 0x34(r1) +/* 803B10FC 003AE05C 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B1100 003AE060 4B FD 89 75 */ bl func_80389A74 +/* 803B1104 003AE064 54 87 06 3E */ clrlwi r7, r4, 0x18 +/* 803B1108 003AE068 3D 00 80 56 */ lis r8, lbl_80560790@ha +/* 803B110C 003AE06C 28 07 00 FF */ cmplwi r7, 0xff +/* 803B1110 003AE070 3B E8 07 90 */ addi r31, r8, lbl_80560790@l +/* 803B1114 003AE074 41 82 05 CC */ beq lbl_803B16E0 +/* 803B1118 003AE078 54 A0 06 3E */ clrlwi r0, r5, 0x18 +/* 803B111C 003AE07C 28 00 00 FF */ cmplwi r0, 0xff +/* 803B1120 003AE080 41 82 02 F4 */ beq lbl_803B1414 +/* 803B1124 003AE084 54 68 06 3E */ clrlwi r8, r3, 0x18 +/* 803B1128 003AE088 2C 08 00 26 */ cmpwi r8, 0x26 +/* 803B112C 003AE08C 41 82 02 48 */ beq lbl_803B1374 +/* 803B1130 003AE090 40 80 00 10 */ bge lbl_803B1140 +/* 803B1134 003AE094 2C 08 00 06 */ cmpwi r8, 6 +/* 803B1138 003AE098 41 82 00 20 */ beq lbl_803B1158 +/* 803B113C 003AE09C 48 00 02 38 */ b lbl_803B1374 +lbl_803B1140: +/* 803B1140 003AE0A0 2C 08 00 61 */ cmpwi r8, 0x61 +/* 803B1144 003AE0A4 41 82 01 80 */ beq lbl_803B12C4 +/* 803B1148 003AE0A8 40 80 02 2C */ bge lbl_803B1374 +/* 803B114C 003AE0AC 2C 08 00 60 */ cmpwi r8, 0x60 +/* 803B1150 003AE0B0 40 80 00 C0 */ bge lbl_803B1210 +/* 803B1154 003AE0B4 48 00 02 20 */ b lbl_803B1374 +lbl_803B1158: +/* 803B1158 003AE0B8 1D 40 08 60 */ mulli r10, r0, 0x860 +/* 803B115C 003AE0BC 39 1F 02 00 */ addi r8, r31, 0x200 +/* 803B1160 003AE0C0 1D 27 00 86 */ mulli r9, r7, 0x86 +/* 803B1164 003AE0C4 7D 08 52 14 */ add r8, r8, r10 +/* 803B1168 003AE0C8 7D 08 4A 14 */ add r8, r8, r9 +/* 803B116C 003AE0CC 89 28 00 64 */ lbz r9, 0x64(r8) +/* 803B1170 003AE0D0 89 08 00 65 */ lbz r8, 0x65(r8) +/* 803B1174 003AE0D4 51 09 44 2E */ rlwimi r9, r8, 8, 0x10, 0x17 +/* 803B1178 003AE0D8 55 28 04 3F */ clrlwi. r8, r9, 0x10 +/* 803B117C 003AE0DC 41 82 00 08 */ beq lbl_803B1184 +/* 803B1180 003AE0E0 48 00 01 F4 */ b lbl_803B1374 +lbl_803B1184: +/* 803B1184 003AE0E4 54 C8 06 3E */ clrlwi r8, r6, 0x18 +/* 803B1188 003AE0E8 39 40 00 18 */ li r10, 0x18 +/* 803B118C 003AE0EC 28 08 00 18 */ cmplwi r8, 0x18 +/* 803B1190 003AE0F0 41 81 00 08 */ bgt lbl_803B1198 +/* 803B1194 003AE0F4 7D 0A 43 78 */ mr r10, r8 +lbl_803B1198: +/* 803B1198 003AE0F8 54 00 20 36 */ slwi r0, r0, 4 +/* 803B119C 003AE0FC 39 80 00 00 */ li r12, 0 +/* 803B11A0 003AE100 39 3F 45 00 */ addi r9, r31, 0x4500 +/* 803B11A4 003AE104 3D 00 80 55 */ lis r8, lbl_80550050@ha +/* 803B11A8 003AE108 7C 00 3A 14 */ add r0, r0, r7 +/* 803B11AC 003AE10C 7D 9A 63 78 */ mr r26, r12 +/* 803B11B0 003AE110 7D 49 01 AE */ stbx r10, r9, r0 +/* 803B11B4 003AE114 55 4B 06 3E */ clrlwi r11, r10, 0x18 +/* 803B11B8 003AE118 39 48 00 50 */ addi r10, r8, lbl_80550050@l +/* 803B11BC 003AE11C 54 A9 06 3E */ clrlwi r9, r5, 0x18 +/* 803B11C0 003AE120 54 88 06 3E */ clrlwi r8, r4, 0x18 +/* 803B11C4 003AE124 48 00 00 3C */ b lbl_803B1200 +lbl_803B11C8: +/* 803B11C8 003AE128 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B11CC 003AE12C 7C E0 D2 14 */ add r7, r0, r26 +/* 803B11D0 003AE130 88 07 01 22 */ lbz r0, 0x122(r7) +/* 803B11D4 003AE134 7C 09 00 40 */ cmplw r9, r0 +/* 803B11D8 003AE138 40 82 00 20 */ bne lbl_803B11F8 +/* 803B11DC 003AE13C 88 07 01 21 */ lbz r0, 0x121(r7) +/* 803B11E0 003AE140 7C 08 00 40 */ cmplw r8, r0 +/* 803B11E4 003AE144 40 82 00 14 */ bne lbl_803B11F8 +/* 803B11E8 003AE148 99 67 01 D7 */ stb r11, 0x1d7(r7) +/* 803B11EC 003AE14C 38 1A 01 D6 */ addi r0, r26, 0x1d6 +/* 803B11F0 003AE150 80 ED AE 78 */ lwz r7, lbl_805A9A38@sda21(r13) +/* 803B11F4 003AE154 7D 67 01 AE */ stbx r11, r7, r0 +lbl_803B11F8: +/* 803B11F8 003AE158 3B 5A 04 04 */ addi r26, r26, 0x404 +/* 803B11FC 003AE15C 39 8C 00 01 */ addi r12, r12, 1 +lbl_803B1200: +/* 803B1200 003AE160 88 0A 02 10 */ lbz r0, 0x210(r10) +/* 803B1204 003AE164 7C 0C 00 40 */ cmplw r12, r0 +/* 803B1208 003AE168 41 80 FF C0 */ blt lbl_803B11C8 +/* 803B120C 003AE16C 48 00 01 68 */ b lbl_803B1374 +lbl_803B1210: +/* 803B1210 003AE170 1D 40 08 60 */ mulli r10, r0, 0x860 +/* 803B1214 003AE174 39 1F 02 00 */ addi r8, r31, 0x200 +/* 803B1218 003AE178 1D 27 00 86 */ mulli r9, r7, 0x86 +/* 803B121C 003AE17C 7D 08 52 14 */ add r8, r8, r10 +/* 803B1220 003AE180 7D 08 4A 14 */ add r8, r8, r9 +/* 803B1224 003AE184 89 28 00 64 */ lbz r9, 0x64(r8) +/* 803B1228 003AE188 89 08 00 65 */ lbz r8, 0x65(r8) +/* 803B122C 003AE18C 51 09 44 2E */ rlwimi r9, r8, 8, 0x10, 0x17 +/* 803B1230 003AE190 55 28 04 3F */ clrlwi. r8, r9, 0x10 +/* 803B1234 003AE194 41 82 00 08 */ beq lbl_803B123C +/* 803B1238 003AE198 48 00 01 3C */ b lbl_803B1374 +lbl_803B123C: +/* 803B123C 003AE19C 54 00 20 36 */ slwi r0, r0, 4 +/* 803B1240 003AE1A0 39 1F 45 00 */ addi r8, r31, 0x4500 +/* 803B1244 003AE1A4 7D 20 3A 14 */ add r9, r0, r7 +/* 803B1248 003AE1A8 7D 68 48 AE */ lbzx r11, r8, r9 +/* 803B124C 003AE1AC 28 0B 00 00 */ cmplwi r11, 0 +/* 803B1250 003AE1B0 41 82 00 0C */ beq lbl_803B125C +/* 803B1254 003AE1B4 38 0B FF FF */ addi r0, r11, -1 +/* 803B1258 003AE1B8 54 0B 06 3E */ clrlwi r11, r0, 0x18 +lbl_803B125C: +/* 803B125C 003AE1BC 39 80 00 00 */ li r12, 0 +/* 803B1260 003AE1C0 3C E0 80 55 */ lis r7, lbl_80550050@ha +/* 803B1264 003AE1C4 7D 68 49 AE */ stbx r11, r8, r9 +/* 803B1268 003AE1C8 7D 9A 63 78 */ mr r26, r12 +/* 803B126C 003AE1CC 39 47 00 50 */ addi r10, r7, lbl_80550050@l +/* 803B1270 003AE1D0 54 A9 06 3E */ clrlwi r9, r5, 0x18 +/* 803B1274 003AE1D4 54 88 06 3E */ clrlwi r8, r4, 0x18 +/* 803B1278 003AE1D8 48 00 00 3C */ b lbl_803B12B4 +lbl_803B127C: +/* 803B127C 003AE1DC 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B1280 003AE1E0 7C E0 D2 14 */ add r7, r0, r26 +/* 803B1284 003AE1E4 88 07 01 22 */ lbz r0, 0x122(r7) +/* 803B1288 003AE1E8 7C 09 00 40 */ cmplw r9, r0 +/* 803B128C 003AE1EC 40 82 00 20 */ bne lbl_803B12AC +/* 803B1290 003AE1F0 88 07 01 21 */ lbz r0, 0x121(r7) +/* 803B1294 003AE1F4 7C 08 00 40 */ cmplw r8, r0 +/* 803B1298 003AE1F8 40 82 00 14 */ bne lbl_803B12AC +/* 803B129C 003AE1FC 99 67 01 D7 */ stb r11, 0x1d7(r7) +/* 803B12A0 003AE200 38 1A 01 D6 */ addi r0, r26, 0x1d6 +/* 803B12A4 003AE204 80 ED AE 78 */ lwz r7, lbl_805A9A38@sda21(r13) +/* 803B12A8 003AE208 7D 67 01 AE */ stbx r11, r7, r0 +lbl_803B12AC: +/* 803B12AC 003AE20C 3B 5A 04 04 */ addi r26, r26, 0x404 +/* 803B12B0 003AE210 39 8C 00 01 */ addi r12, r12, 1 +lbl_803B12B4: +/* 803B12B4 003AE214 88 0A 02 10 */ lbz r0, 0x210(r10) +/* 803B12B8 003AE218 7C 0C 00 40 */ cmplw r12, r0 +/* 803B12BC 003AE21C 41 80 FF C0 */ blt lbl_803B127C +/* 803B12C0 003AE220 48 00 00 B4 */ b lbl_803B1374 +lbl_803B12C4: +/* 803B12C4 003AE224 1D 40 08 60 */ mulli r10, r0, 0x860 +/* 803B12C8 003AE228 39 1F 02 00 */ addi r8, r31, 0x200 +/* 803B12CC 003AE22C 1D 27 00 86 */ mulli r9, r7, 0x86 +/* 803B12D0 003AE230 7D 08 52 14 */ add r8, r8, r10 +/* 803B12D4 003AE234 7D 08 4A 14 */ add r8, r8, r9 +/* 803B12D8 003AE238 89 28 00 64 */ lbz r9, 0x64(r8) +/* 803B12DC 003AE23C 89 08 00 65 */ lbz r8, 0x65(r8) +/* 803B12E0 003AE240 51 09 44 2E */ rlwimi r9, r8, 8, 0x10, 0x17 +/* 803B12E4 003AE244 55 28 04 3F */ clrlwi. r8, r9, 0x10 +/* 803B12E8 003AE248 41 82 00 08 */ beq lbl_803B12F0 +/* 803B12EC 003AE24C 48 00 00 88 */ b lbl_803B1374 +lbl_803B12F0: +/* 803B12F0 003AE250 54 00 20 36 */ slwi r0, r0, 4 +/* 803B12F4 003AE254 39 1F 45 00 */ addi r8, r31, 0x4500 +/* 803B12F8 003AE258 7D 20 3A 14 */ add r9, r0, r7 +/* 803B12FC 003AE25C 7D 68 48 AE */ lbzx r11, r8, r9 +/* 803B1300 003AE260 28 0B 00 18 */ cmplwi r11, 0x18 +/* 803B1304 003AE264 40 80 00 0C */ bge lbl_803B1310 +/* 803B1308 003AE268 38 0B 00 01 */ addi r0, r11, 1 +/* 803B130C 003AE26C 54 0B 06 3E */ clrlwi r11, r0, 0x18 +lbl_803B1310: +/* 803B1310 003AE270 39 80 00 00 */ li r12, 0 +/* 803B1314 003AE274 3C E0 80 55 */ lis r7, lbl_80550050@ha +/* 803B1318 003AE278 7D 68 49 AE */ stbx r11, r8, r9 +/* 803B131C 003AE27C 7D 9A 63 78 */ mr r26, r12 +/* 803B1320 003AE280 39 47 00 50 */ addi r10, r7, lbl_80550050@l +/* 803B1324 003AE284 54 A9 06 3E */ clrlwi r9, r5, 0x18 +/* 803B1328 003AE288 54 88 06 3E */ clrlwi r8, r4, 0x18 +/* 803B132C 003AE28C 48 00 00 3C */ b lbl_803B1368 +lbl_803B1330: +/* 803B1330 003AE290 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B1334 003AE294 7C E0 D2 14 */ add r7, r0, r26 +/* 803B1338 003AE298 88 07 01 22 */ lbz r0, 0x122(r7) +/* 803B133C 003AE29C 7C 09 00 40 */ cmplw r9, r0 +/* 803B1340 003AE2A0 40 82 00 20 */ bne lbl_803B1360 +/* 803B1344 003AE2A4 88 07 01 21 */ lbz r0, 0x121(r7) +/* 803B1348 003AE2A8 7C 08 00 40 */ cmplw r8, r0 +/* 803B134C 003AE2AC 40 82 00 14 */ bne lbl_803B1360 +/* 803B1350 003AE2B0 99 67 01 D7 */ stb r11, 0x1d7(r7) +/* 803B1354 003AE2B4 38 1A 01 D6 */ addi r0, r26, 0x1d6 +/* 803B1358 003AE2B8 80 ED AE 78 */ lwz r7, lbl_805A9A38@sda21(r13) +/* 803B135C 003AE2BC 7D 67 01 AE */ stbx r11, r7, r0 +lbl_803B1360: +/* 803B1360 003AE2C0 3B 5A 04 04 */ addi r26, r26, 0x404 +/* 803B1364 003AE2C4 39 8C 00 01 */ addi r12, r12, 1 +lbl_803B1368: +/* 803B1368 003AE2C8 88 0A 02 10 */ lbz r0, 0x210(r10) +/* 803B136C 003AE2CC 7C 0C 00 40 */ cmplw r12, r0 +/* 803B1370 003AE2D0 41 80 FF C0 */ blt lbl_803B1330 +lbl_803B1374: +/* 803B1374 003AE2D4 54 BD 06 3E */ clrlwi r29, r5, 0x18 +/* 803B1378 003AE2D8 54 9E 06 3E */ clrlwi r30, r4, 0x18 +/* 803B137C 003AE2DC 1C FD 08 60 */ mulli r7, r29, 0x860 +/* 803B1380 003AE2E0 3C 80 80 55 */ lis r4, lbl_80550050@ha +/* 803B1384 003AE2E4 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B1388 003AE2E8 54 C6 06 7E */ clrlwi r6, r6, 0x19 +/* 803B138C 003AE2EC 1C 7E 00 86 */ mulli r3, r30, 0x86 +/* 803B1390 003AE2F0 38 BF 02 00 */ addi r5, r31, 0x200 +/* 803B1394 003AE2F4 3B 44 00 50 */ addi r26, r4, lbl_80550050@l +/* 803B1398 003AE2F8 3B 80 00 00 */ li r28, 0 +/* 803B139C 003AE2FC 7C 67 1A 14 */ add r3, r7, r3 +/* 803B13A0 003AE300 3B 20 00 00 */ li r25, 0 +/* 803B13A4 003AE304 7C 03 02 14 */ add r0, r3, r0 +/* 803B13A8 003AE308 3B 60 1F FF */ li r27, 0x1fff +/* 803B13AC 003AE30C 7C C5 01 AE */ stbx r6, r5, r0 +/* 803B13B0 003AE310 48 00 00 3C */ b lbl_803B13EC +lbl_803B13B4: +/* 803B13B4 003AE314 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B13B8 003AE318 7C 60 CA 14 */ add r3, r0, r25 +/* 803B13BC 003AE31C 88 03 01 22 */ lbz r0, 0x122(r3) +/* 803B13C0 003AE320 7C 1D 00 40 */ cmplw r29, r0 +/* 803B13C4 003AE324 40 82 00 20 */ bne lbl_803B13E4 +/* 803B13C8 003AE328 88 03 01 21 */ lbz r0, 0x121(r3) +/* 803B13CC 003AE32C 7C 1E 00 40 */ cmplw r30, r0 +/* 803B13D0 003AE330 40 82 00 14 */ bne lbl_803B13E4 +/* 803B13D4 003AE334 93 63 02 14 */ stw r27, 0x214(r3) +/* 803B13D8 003AE338 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B13DC 003AE33C 7C 60 CA 14 */ add r3, r0, r25 +/* 803B13E0 003AE340 4B FE 97 01 */ bl sub_8039aae0 +lbl_803B13E4: +/* 803B13E4 003AE344 3B 39 04 04 */ addi r25, r25, 0x404 +/* 803B13E8 003AE348 3B 9C 00 01 */ addi r28, r28, 1 +lbl_803B13EC: +/* 803B13EC 003AE34C 88 1A 02 10 */ lbz r0, 0x210(r26) +/* 803B13F0 003AE350 7C 1C 00 40 */ cmplw r28, r0 +/* 803B13F4 003AE354 41 80 FF C0 */ blt lbl_803B13B4 +/* 803B13F8 003AE358 57 A4 30 32 */ slwi r4, r29, 6 +/* 803B13FC 003AE35C 57 C0 10 3A */ slwi r0, r30, 2 +/* 803B1400 003AE360 38 7F 00 00 */ addi r3, r31, 0 +/* 803B1404 003AE364 38 A0 00 FF */ li r5, 0xff +/* 803B1408 003AE368 7C 04 02 14 */ add r0, r4, r0 +/* 803B140C 003AE36C 7C A3 01 2E */ stwx r5, r3, r0 +/* 803B1410 003AE370 48 00 02 D0 */ b lbl_803B16E0 +lbl_803B1414: +/* 803B1414 003AE374 54 68 06 3E */ clrlwi r8, r3, 0x18 +/* 803B1418 003AE378 2C 08 00 26 */ cmpwi r8, 0x26 +/* 803B141C 003AE37C 41 82 02 48 */ beq lbl_803B1664 +/* 803B1420 003AE380 40 80 00 10 */ bge lbl_803B1430 +/* 803B1424 003AE384 2C 08 00 06 */ cmpwi r8, 6 +/* 803B1428 003AE388 41 82 00 20 */ beq lbl_803B1448 +/* 803B142C 003AE38C 48 00 02 38 */ b lbl_803B1664 +lbl_803B1430: +/* 803B1430 003AE390 2C 08 00 61 */ cmpwi r8, 0x61 +/* 803B1434 003AE394 41 82 01 80 */ beq lbl_803B15B4 +/* 803B1438 003AE398 40 80 02 2C */ bge lbl_803B1664 +/* 803B143C 003AE39C 2C 08 00 60 */ cmpwi r8, 0x60 +/* 803B1440 003AE3A0 40 80 00 C0 */ bge lbl_803B1500 +/* 803B1444 003AE3A4 48 00 02 20 */ b lbl_803B1664 +lbl_803B1448: +/* 803B1448 003AE3A8 1D 40 08 60 */ mulli r10, r0, 0x860 +/* 803B144C 003AE3AC 39 1F 02 00 */ addi r8, r31, 0x200 +/* 803B1450 003AE3B0 1D 27 00 86 */ mulli r9, r7, 0x86 +/* 803B1454 003AE3B4 7D 08 52 14 */ add r8, r8, r10 +/* 803B1458 003AE3B8 7D 08 4A 14 */ add r8, r8, r9 +/* 803B145C 003AE3BC 89 28 00 64 */ lbz r9, 0x64(r8) +/* 803B1460 003AE3C0 89 08 00 65 */ lbz r8, 0x65(r8) +/* 803B1464 003AE3C4 51 09 44 2E */ rlwimi r9, r8, 8, 0x10, 0x17 +/* 803B1468 003AE3C8 55 28 04 3F */ clrlwi. r8, r9, 0x10 +/* 803B146C 003AE3CC 41 82 00 08 */ beq lbl_803B1474 +/* 803B1470 003AE3D0 48 00 01 F4 */ b lbl_803B1664 +lbl_803B1474: +/* 803B1474 003AE3D4 54 C8 06 3E */ clrlwi r8, r6, 0x18 +/* 803B1478 003AE3D8 39 40 00 18 */ li r10, 0x18 +/* 803B147C 003AE3DC 28 08 00 18 */ cmplwi r8, 0x18 +/* 803B1480 003AE3E0 41 81 00 08 */ bgt lbl_803B1488 +/* 803B1484 003AE3E4 7D 0A 43 78 */ mr r10, r8 +lbl_803B1488: +/* 803B1488 003AE3E8 54 00 20 36 */ slwi r0, r0, 4 +/* 803B148C 003AE3EC 39 80 00 00 */ li r12, 0 +/* 803B1490 003AE3F0 39 3F 45 00 */ addi r9, r31, 0x4500 +/* 803B1494 003AE3F4 3D 00 80 55 */ lis r8, lbl_80550050@ha +/* 803B1498 003AE3F8 7C 00 3A 14 */ add r0, r0, r7 +/* 803B149C 003AE3FC 7D 99 63 78 */ mr r25, r12 +/* 803B14A0 003AE400 7D 49 01 AE */ stbx r10, r9, r0 +/* 803B14A4 003AE404 55 4B 06 3E */ clrlwi r11, r10, 0x18 +/* 803B14A8 003AE408 39 48 00 50 */ addi r10, r8, lbl_80550050@l +/* 803B14AC 003AE40C 54 A9 06 3E */ clrlwi r9, r5, 0x18 +/* 803B14B0 003AE410 54 88 06 3E */ clrlwi r8, r4, 0x18 +/* 803B14B4 003AE414 48 00 00 3C */ b lbl_803B14F0 +lbl_803B14B8: +/* 803B14B8 003AE418 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B14BC 003AE41C 7C E0 CA 14 */ add r7, r0, r25 +/* 803B14C0 003AE420 88 07 01 22 */ lbz r0, 0x122(r7) +/* 803B14C4 003AE424 7C 09 00 40 */ cmplw r9, r0 +/* 803B14C8 003AE428 40 82 00 20 */ bne lbl_803B14E8 +/* 803B14CC 003AE42C 88 07 01 21 */ lbz r0, 0x121(r7) +/* 803B14D0 003AE430 7C 08 00 40 */ cmplw r8, r0 +/* 803B14D4 003AE434 40 82 00 14 */ bne lbl_803B14E8 +/* 803B14D8 003AE438 99 67 01 D7 */ stb r11, 0x1d7(r7) +/* 803B14DC 003AE43C 38 19 01 D6 */ addi r0, r25, 0x1d6 +/* 803B14E0 003AE440 80 ED AE 78 */ lwz r7, lbl_805A9A38@sda21(r13) +/* 803B14E4 003AE444 7D 67 01 AE */ stbx r11, r7, r0 +lbl_803B14E8: +/* 803B14E8 003AE448 3B 39 04 04 */ addi r25, r25, 0x404 +/* 803B14EC 003AE44C 39 8C 00 01 */ addi r12, r12, 1 +lbl_803B14F0: +/* 803B14F0 003AE450 88 0A 02 10 */ lbz r0, 0x210(r10) +/* 803B14F4 003AE454 7C 0C 00 40 */ cmplw r12, r0 +/* 803B14F8 003AE458 41 80 FF C0 */ blt lbl_803B14B8 +/* 803B14FC 003AE45C 48 00 01 68 */ b lbl_803B1664 +lbl_803B1500: +/* 803B1500 003AE460 1D 40 08 60 */ mulli r10, r0, 0x860 +/* 803B1504 003AE464 39 1F 02 00 */ addi r8, r31, 0x200 +/* 803B1508 003AE468 1D 27 00 86 */ mulli r9, r7, 0x86 +/* 803B150C 003AE46C 7D 08 52 14 */ add r8, r8, r10 +/* 803B1510 003AE470 7D 08 4A 14 */ add r8, r8, r9 +/* 803B1514 003AE474 89 28 00 64 */ lbz r9, 0x64(r8) +/* 803B1518 003AE478 89 08 00 65 */ lbz r8, 0x65(r8) +/* 803B151C 003AE47C 51 09 44 2E */ rlwimi r9, r8, 8, 0x10, 0x17 +/* 803B1520 003AE480 55 28 04 3F */ clrlwi. r8, r9, 0x10 +/* 803B1524 003AE484 41 82 00 08 */ beq lbl_803B152C +/* 803B1528 003AE488 48 00 01 3C */ b lbl_803B1664 +lbl_803B152C: +/* 803B152C 003AE48C 54 00 20 36 */ slwi r0, r0, 4 +/* 803B1530 003AE490 39 1F 45 00 */ addi r8, r31, 0x4500 +/* 803B1534 003AE494 7D 20 3A 14 */ add r9, r0, r7 +/* 803B1538 003AE498 7D 68 48 AE */ lbzx r11, r8, r9 +/* 803B153C 003AE49C 28 0B 00 00 */ cmplwi r11, 0 +/* 803B1540 003AE4A0 41 82 00 0C */ beq lbl_803B154C +/* 803B1544 003AE4A4 38 0B FF FF */ addi r0, r11, -1 +/* 803B1548 003AE4A8 54 0B 06 3E */ clrlwi r11, r0, 0x18 +lbl_803B154C: +/* 803B154C 003AE4AC 39 80 00 00 */ li r12, 0 +/* 803B1550 003AE4B0 3C E0 80 55 */ lis r7, lbl_80550050@ha +/* 803B1554 003AE4B4 7D 68 49 AE */ stbx r11, r8, r9 +/* 803B1558 003AE4B8 7D 99 63 78 */ mr r25, r12 +/* 803B155C 003AE4BC 39 47 00 50 */ addi r10, r7, lbl_80550050@l +/* 803B1560 003AE4C0 54 A9 06 3E */ clrlwi r9, r5, 0x18 +/* 803B1564 003AE4C4 54 88 06 3E */ clrlwi r8, r4, 0x18 +/* 803B1568 003AE4C8 48 00 00 3C */ b lbl_803B15A4 +lbl_803B156C: +/* 803B156C 003AE4CC 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B1570 003AE4D0 7C E0 CA 14 */ add r7, r0, r25 +/* 803B1574 003AE4D4 88 07 01 22 */ lbz r0, 0x122(r7) +/* 803B1578 003AE4D8 7C 09 00 40 */ cmplw r9, r0 +/* 803B157C 003AE4DC 40 82 00 20 */ bne lbl_803B159C +/* 803B1580 003AE4E0 88 07 01 21 */ lbz r0, 0x121(r7) +/* 803B1584 003AE4E4 7C 08 00 40 */ cmplw r8, r0 +/* 803B1588 003AE4E8 40 82 00 14 */ bne lbl_803B159C +/* 803B158C 003AE4EC 99 67 01 D7 */ stb r11, 0x1d7(r7) +/* 803B1590 003AE4F0 38 19 01 D6 */ addi r0, r25, 0x1d6 +/* 803B1594 003AE4F4 80 ED AE 78 */ lwz r7, lbl_805A9A38@sda21(r13) +/* 803B1598 003AE4F8 7D 67 01 AE */ stbx r11, r7, r0 +lbl_803B159C: +/* 803B159C 003AE4FC 3B 39 04 04 */ addi r25, r25, 0x404 +/* 803B15A0 003AE500 39 8C 00 01 */ addi r12, r12, 1 +lbl_803B15A4: +/* 803B15A4 003AE504 88 0A 02 10 */ lbz r0, 0x210(r10) +/* 803B15A8 003AE508 7C 0C 00 40 */ cmplw r12, r0 +/* 803B15AC 003AE50C 41 80 FF C0 */ blt lbl_803B156C +/* 803B15B0 003AE510 48 00 00 B4 */ b lbl_803B1664 +lbl_803B15B4: +/* 803B15B4 003AE514 1D 40 08 60 */ mulli r10, r0, 0x860 +/* 803B15B8 003AE518 39 1F 02 00 */ addi r8, r31, 0x200 +/* 803B15BC 003AE51C 1D 27 00 86 */ mulli r9, r7, 0x86 +/* 803B15C0 003AE520 7D 08 52 14 */ add r8, r8, r10 +/* 803B15C4 003AE524 7D 08 4A 14 */ add r8, r8, r9 +/* 803B15C8 003AE528 89 28 00 64 */ lbz r9, 0x64(r8) +/* 803B15CC 003AE52C 89 08 00 65 */ lbz r8, 0x65(r8) +/* 803B15D0 003AE530 51 09 44 2E */ rlwimi r9, r8, 8, 0x10, 0x17 +/* 803B15D4 003AE534 55 28 04 3F */ clrlwi. r8, r9, 0x10 +/* 803B15D8 003AE538 41 82 00 08 */ beq lbl_803B15E0 +/* 803B15DC 003AE53C 48 00 00 88 */ b lbl_803B1664 +lbl_803B15E0: +/* 803B15E0 003AE540 54 00 20 36 */ slwi r0, r0, 4 +/* 803B15E4 003AE544 39 1F 45 00 */ addi r8, r31, 0x4500 +/* 803B15E8 003AE548 7D 20 3A 14 */ add r9, r0, r7 +/* 803B15EC 003AE54C 7D 68 48 AE */ lbzx r11, r8, r9 +/* 803B15F0 003AE550 28 0B 00 18 */ cmplwi r11, 0x18 +/* 803B15F4 003AE554 40 80 00 0C */ bge lbl_803B1600 +/* 803B15F8 003AE558 38 0B 00 01 */ addi r0, r11, 1 +/* 803B15FC 003AE55C 54 0B 06 3E */ clrlwi r11, r0, 0x18 +lbl_803B1600: +/* 803B1600 003AE560 39 80 00 00 */ li r12, 0 +/* 803B1604 003AE564 3C E0 80 55 */ lis r7, lbl_80550050@ha +/* 803B1608 003AE568 7D 68 49 AE */ stbx r11, r8, r9 +/* 803B160C 003AE56C 7D 99 63 78 */ mr r25, r12 +/* 803B1610 003AE570 39 47 00 50 */ addi r10, r7, lbl_80550050@l +/* 803B1614 003AE574 54 A9 06 3E */ clrlwi r9, r5, 0x18 +/* 803B1618 003AE578 54 88 06 3E */ clrlwi r8, r4, 0x18 +/* 803B161C 003AE57C 48 00 00 3C */ b lbl_803B1658 +lbl_803B1620: +/* 803B1620 003AE580 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B1624 003AE584 7C E0 CA 14 */ add r7, r0, r25 +/* 803B1628 003AE588 88 07 01 22 */ lbz r0, 0x122(r7) +/* 803B162C 003AE58C 7C 09 00 40 */ cmplw r9, r0 +/* 803B1630 003AE590 40 82 00 20 */ bne lbl_803B1650 +/* 803B1634 003AE594 88 07 01 21 */ lbz r0, 0x121(r7) +/* 803B1638 003AE598 7C 08 00 40 */ cmplw r8, r0 +/* 803B163C 003AE59C 40 82 00 14 */ bne lbl_803B1650 +/* 803B1640 003AE5A0 99 67 01 D7 */ stb r11, 0x1d7(r7) +/* 803B1644 003AE5A4 38 19 01 D6 */ addi r0, r25, 0x1d6 +/* 803B1648 003AE5A8 80 ED AE 78 */ lwz r7, lbl_805A9A38@sda21(r13) +/* 803B164C 003AE5AC 7D 67 01 AE */ stbx r11, r7, r0 +lbl_803B1650: +/* 803B1650 003AE5B0 3B 39 04 04 */ addi r25, r25, 0x404 +/* 803B1654 003AE5B4 39 8C 00 01 */ addi r12, r12, 1 +lbl_803B1658: +/* 803B1658 003AE5B8 88 0A 02 10 */ lbz r0, 0x210(r10) +/* 803B165C 003AE5BC 7C 0C 00 40 */ cmplw r12, r0 +/* 803B1660 003AE5C0 41 80 FF C0 */ blt lbl_803B1620 +lbl_803B1664: +/* 803B1664 003AE5C4 54 9B 06 3E */ clrlwi r27, r4, 0x18 +/* 803B1668 003AE5C8 3B A0 00 00 */ li r29, 0 +/* 803B166C 003AE5CC 1C FB 00 86 */ mulli r7, r27, 0x86 +/* 803B1670 003AE5D0 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B1674 003AE5D4 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803B1678 003AE5D8 54 C6 06 7E */ clrlwi r6, r6, 0x19 +/* 803B167C 003AE5DC 38 9F 45 80 */ addi r4, r31, 0x4580 +/* 803B1680 003AE5E0 7F B9 EB 78 */ mr r25, r29 +/* 803B1684 003AE5E4 7C 07 02 14 */ add r0, r7, r0 +/* 803B1688 003AE5E8 3B E3 00 50 */ addi r31, r3, lbl_80550050@l +/* 803B168C 003AE5EC 7C C4 01 AE */ stbx r6, r4, r0 +/* 803B1690 003AE5F0 54 BE 06 3E */ clrlwi r30, r5, 0x18 +/* 803B1694 003AE5F4 3B 80 1F FF */ li r28, 0x1fff +/* 803B1698 003AE5F8 48 00 00 3C */ b lbl_803B16D4 +lbl_803B169C: +/* 803B169C 003AE5FC 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B16A0 003AE600 7C 60 CA 14 */ add r3, r0, r25 +/* 803B16A4 003AE604 88 03 01 22 */ lbz r0, 0x122(r3) +/* 803B16A8 003AE608 7C 1E 00 40 */ cmplw r30, r0 +/* 803B16AC 003AE60C 40 82 00 20 */ bne lbl_803B16CC +/* 803B16B0 003AE610 88 03 01 21 */ lbz r0, 0x121(r3) +/* 803B16B4 003AE614 7C 1B 00 40 */ cmplw r27, r0 +/* 803B16B8 003AE618 40 82 00 14 */ bne lbl_803B16CC +/* 803B16BC 003AE61C 93 83 02 14 */ stw r28, 0x214(r3) +/* 803B16C0 003AE620 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803B16C4 003AE624 7C 60 CA 14 */ add r3, r0, r25 +/* 803B16C8 003AE628 4B FE 94 19 */ bl sub_8039aae0 +lbl_803B16CC: +/* 803B16CC 003AE62C 3B 39 04 04 */ addi r25, r25, 0x404 +/* 803B16D0 003AE630 3B BD 00 01 */ addi r29, r29, 1 +lbl_803B16D4: +/* 803B16D4 003AE634 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 803B16D8 003AE638 7C 1D 00 40 */ cmplw r29, r0 +/* 803B16DC 003AE63C 41 80 FF C0 */ blt lbl_803B169C +lbl_803B16E0: +/* 803B16E0 003AE640 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B16E4 003AE644 4B FD 83 DD */ bl _restgpr_25 +/* 803B16E8 003AE648 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B16EC 003AE64C 7C 08 03 A6 */ mtlr r0 +/* 803B16F0 003AE650 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B16F4 003AE654 4E 80 00 20 */ blr + +.global inpSetMidiCtrl14 +inpSetMidiCtrl14: +/* 803B16F8 003AE658 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B16FC 003AE65C 7C 08 02 A6 */ mflr r0 +/* 803B1700 003AE660 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B1704 003AE664 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1708 003AE668 28 00 00 FF */ cmplwi r0, 0xff +/* 803B170C 003AE66C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B1710 003AE670 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B1714 003AE674 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B1718 003AE678 7C BD 2B 78 */ mr r29, r5 +/* 803B171C 003AE67C 93 81 00 10 */ stw r28, 0x10(r1) +/* 803B1720 003AE680 7C 9C 23 78 */ mr r28, r4 +/* 803B1724 003AE684 41 82 00 D8 */ beq lbl_803B17FC +/* 803B1728 003AE688 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B172C 003AE68C 28 00 00 40 */ cmplwi r0, 0x40 +/* 803B1730 003AE690 40 80 00 34 */ bge lbl_803B1764 +/* 803B1734 003AE694 54 7E 06 FE */ clrlwi r30, r3, 0x1b +/* 803B1738 003AE698 54 DF 04 3E */ clrlwi r31, r6, 0x10 +/* 803B173C 003AE69C 7F C3 F3 78 */ mr r3, r30 +/* 803B1740 003AE6A0 54 C6 CE 3E */ rlwinm r6, r6, 0x19, 0x18, 0x1f +/* 803B1744 003AE6A4 4B FF F9 AD */ bl sub_803b10f0 +/* 803B1748 003AE6A8 38 1E 00 20 */ addi r0, r30, 0x20 +/* 803B174C 003AE6AC 57 E6 06 7E */ clrlwi r6, r31, 0x19 +/* 803B1750 003AE6B0 7F 84 E3 78 */ mr r4, r28 +/* 803B1754 003AE6B4 7F A5 EB 78 */ mr r5, r29 +/* 803B1758 003AE6B8 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803B175C 003AE6BC 4B FF F9 95 */ bl sub_803b10f0 +/* 803B1760 003AE6C0 48 00 00 9C */ b lbl_803B17FC +lbl_803B1764: +/* 803B1764 003AE6C4 28 00 00 80 */ cmplwi r0, 0x80 +/* 803B1768 003AE6C8 41 82 00 0C */ beq lbl_803B1774 +/* 803B176C 003AE6CC 28 00 00 81 */ cmplwi r0, 0x81 +/* 803B1770 003AE6D0 40 82 00 3C */ bne lbl_803B17AC +lbl_803B1774: +/* 803B1774 003AE6D4 54 7F 06 3C */ rlwinm r31, r3, 0, 0x18, 0x1e +/* 803B1778 003AE6D8 54 DE 04 3E */ clrlwi r30, r6, 0x10 +/* 803B177C 003AE6DC 7F E3 FB 78 */ mr r3, r31 +/* 803B1780 003AE6E0 7F 84 E3 78 */ mr r4, r28 +/* 803B1784 003AE6E4 7F A5 EB 78 */ mr r5, r29 +/* 803B1788 003AE6E8 54 C6 CE 3E */ rlwinm r6, r6, 0x19, 0x18, 0x1f +/* 803B178C 003AE6EC 4B FF F9 65 */ bl sub_803b10f0 +/* 803B1790 003AE6F0 38 1F 00 01 */ addi r0, r31, 1 +/* 803B1794 003AE6F4 57 C6 06 7E */ clrlwi r6, r30, 0x19 +/* 803B1798 003AE6F8 7F 84 E3 78 */ mr r4, r28 +/* 803B179C 003AE6FC 7F A5 EB 78 */ mr r5, r29 +/* 803B17A0 003AE700 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803B17A4 003AE704 4B FF F9 4D */ bl sub_803b10f0 +/* 803B17A8 003AE708 48 00 00 54 */ b lbl_803B17FC +lbl_803B17AC: +/* 803B17AC 003AE70C 28 00 00 84 */ cmplwi r0, 0x84 +/* 803B17B0 003AE710 41 82 00 0C */ beq lbl_803B17BC +/* 803B17B4 003AE714 28 00 00 85 */ cmplwi r0, 0x85 +/* 803B17B8 003AE718 40 82 00 3C */ bne lbl_803B17F4 +lbl_803B17BC: +/* 803B17BC 003AE71C 54 7F 06 3C */ rlwinm r31, r3, 0, 0x18, 0x1e +/* 803B17C0 003AE720 54 DE 04 3E */ clrlwi r30, r6, 0x10 +/* 803B17C4 003AE724 7F E3 FB 78 */ mr r3, r31 +/* 803B17C8 003AE728 7F 84 E3 78 */ mr r4, r28 +/* 803B17CC 003AE72C 7F A5 EB 78 */ mr r5, r29 +/* 803B17D0 003AE730 54 C6 CE 3E */ rlwinm r6, r6, 0x19, 0x18, 0x1f +/* 803B17D4 003AE734 4B FF F9 1D */ bl sub_803b10f0 +/* 803B17D8 003AE738 38 1F 00 01 */ addi r0, r31, 1 +/* 803B17DC 003AE73C 57 C6 06 7E */ clrlwi r6, r30, 0x19 +/* 803B17E0 003AE740 7F 84 E3 78 */ mr r4, r28 +/* 803B17E4 003AE744 7F A5 EB 78 */ mr r5, r29 +/* 803B17E8 003AE748 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803B17EC 003AE74C 4B FF F9 05 */ bl sub_803b10f0 +/* 803B17F0 003AE750 48 00 00 0C */ b lbl_803B17FC +lbl_803B17F4: +/* 803B17F4 003AE754 54 C6 CE 3E */ rlwinm r6, r6, 0x19, 0x18, 0x1f +/* 803B17F8 003AE758 4B FF F8 F9 */ bl sub_803b10f0 +lbl_803B17FC: +/* 803B17FC 003AE75C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B1800 003AE760 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B1804 003AE764 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B1808 003AE768 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B180C 003AE76C 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803B1810 003AE770 7C 08 03 A6 */ mtlr r0 +/* 803B1814 003AE774 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B1818 003AE778 4E 80 00 20 */ blr + +.global inpResetMidiCtrl +inpResetMidiCtrl: +/* 803B181C 003AE77C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B1820 003AE780 7C 08 02 A6 */ mflr r0 +/* 803B1824 003AE784 3C C0 80 3E */ lis r6, lbl_803D8B48@ha +/* 803B1828 003AE788 28 05 00 00 */ cmplwi r5, 0 +/* 803B182C 003AE78C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B1830 003AE790 38 C6 8B 48 */ addi r6, r6, lbl_803D8B48@l +/* 803B1834 003AE794 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B1838 003AE798 7C 9F 23 78 */ mr r31, r4 +/* 803B183C 003AE79C 93 C1 00 08 */ stw r30, 8(r1) +/* 803B1840 003AE7A0 7C 7E 1B 78 */ mr r30, r3 +/* 803B1844 003AE7A4 41 82 00 0C */ beq lbl_803B1850 +/* 803B1848 003AE7A8 3C 60 80 3E */ lis r3, lbl_803D8AC0@ha +/* 803B184C 003AE7AC 38 C3 8A C0 */ addi r6, r3, lbl_803D8AC0@l +lbl_803B1850: +/* 803B1850 003AE7B0 57 E4 06 3E */ clrlwi r4, r31, 0x18 +/* 803B1854 003AE7B4 28 04 00 FF */ cmplwi r4, 0xff +/* 803B1858 003AE7B8 41 82 00 24 */ beq lbl_803B187C +/* 803B185C 003AE7BC 57 C0 06 3E */ clrlwi r0, r30, 0x18 +/* 803B1860 003AE7C0 3C 60 80 56 */ lis r3, lbl_80560990@ha +/* 803B1864 003AE7C4 1C 84 08 60 */ mulli r4, r4, 0x860 +/* 803B1868 003AE7C8 38 63 09 90 */ addi r3, r3, lbl_80560990@l +/* 803B186C 003AE7CC 1C 00 00 86 */ mulli r0, r0, 0x86 +/* 803B1870 003AE7D0 7C 63 22 14 */ add r3, r3, r4 +/* 803B1874 003AE7D4 7C 63 02 14 */ add r3, r3, r0 +/* 803B1878 003AE7D8 48 00 00 18 */ b lbl_803B1890 +lbl_803B187C: +/* 803B187C 003AE7DC 57 C0 06 3E */ clrlwi r0, r30, 0x18 +/* 803B1880 003AE7E0 3C 60 80 56 */ lis r3, lbl_80564D10@ha +/* 803B1884 003AE7E4 1C 80 00 86 */ mulli r4, r0, 0x86 +/* 803B1888 003AE7E8 38 03 4D 10 */ addi r0, r3, lbl_80564D10@l +/* 803B188C 003AE7EC 7C 60 22 14 */ add r3, r0, r4 +lbl_803B1890: +/* 803B1890 003AE7F0 28 05 00 00 */ cmplwi r5, 0 +/* 803B1894 003AE7F4 41 82 00 14 */ beq lbl_803B18A8 +/* 803B1898 003AE7F8 7C C4 33 78 */ mr r4, r6 +/* 803B189C 003AE7FC 38 A0 00 86 */ li r5, 0x86 +/* 803B18A0 003AE800 4B C5 1B F1 */ bl memcpy +/* 803B18A4 003AE804 48 00 00 40 */ b lbl_803B18E4 +lbl_803B18A8: +/* 803B18A8 003AE808 38 00 00 43 */ li r0, 0x43 +/* 803B18AC 003AE80C 38 80 00 00 */ li r4, 0 +/* 803B18B0 003AE810 7C 09 03 A6 */ mtctr r0 +lbl_803B18B4: +/* 803B18B4 003AE814 88 06 00 00 */ lbz r0, 0(r6) +/* 803B18B8 003AE818 28 00 00 FF */ cmplwi r0, 0xff +/* 803B18BC 003AE81C 41 82 00 08 */ beq lbl_803B18C4 +/* 803B18C0 003AE820 98 03 00 00 */ stb r0, 0(r3) +lbl_803B18C4: +/* 803B18C4 003AE824 88 06 00 01 */ lbz r0, 1(r6) +/* 803B18C8 003AE828 28 00 00 FF */ cmplwi r0, 0xff +/* 803B18CC 003AE82C 41 82 00 08 */ beq lbl_803B18D4 +/* 803B18D0 003AE830 98 03 00 01 */ stb r0, 1(r3) +lbl_803B18D4: +/* 803B18D4 003AE834 38 84 00 01 */ addi r4, r4, 1 +/* 803B18D8 003AE838 38 63 00 02 */ addi r3, r3, 2 +/* 803B18DC 003AE83C 38 C6 00 02 */ addi r6, r6, 2 +/* 803B18E0 003AE840 42 00 FF D4 */ bdnz lbl_803B18B4 +lbl_803B18E4: +/* 803B18E4 003AE844 7F C3 F3 78 */ mr r3, r30 +/* 803B18E8 003AE848 7F E4 FB 78 */ mr r4, r31 +/* 803B18EC 003AE84C 38 A0 00 FF */ li r5, 0xff +/* 803B18F0 003AE850 48 00 04 FD */ bl inpSetMidiLastNote +/* 803B18F4 003AE854 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B18F8 003AE858 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B18FC 003AE85C 83 C1 00 08 */ lwz r30, 8(r1) +/* 803B1900 003AE860 7C 08 03 A6 */ mtlr r0 +/* 803B1904 003AE864 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B1908 003AE868 4E 80 00 20 */ blr + +.global inpGetMidiCtrl +inpGetMidiCtrl: +/* 803B190C 003AE86C 54 88 06 3E */ clrlwi r8, r4, 0x18 +/* 803B1910 003AE870 28 08 00 FF */ cmplwi r8, 0xff +/* 803B1914 003AE874 41 82 02 B4 */ beq lbl_803B1BC8 +/* 803B1918 003AE878 54 A0 06 3E */ clrlwi r0, r5, 0x18 +/* 803B191C 003AE87C 28 00 00 FF */ cmplwi r0, 0xff +/* 803B1920 003AE880 41 82 01 70 */ beq lbl_803B1A90 +/* 803B1924 003AE884 54 67 06 3E */ clrlwi r7, r3, 0x18 +/* 803B1928 003AE888 28 07 00 40 */ cmplwi r7, 0x40 +/* 803B192C 003AE88C 40 80 00 3C */ bge lbl_803B1968 +/* 803B1930 003AE890 1C A0 08 60 */ mulli r5, r0, 0x860 +/* 803B1934 003AE894 3C 80 80 56 */ lis r4, lbl_80560990@ha +/* 803B1938 003AE898 54 66 06 FE */ clrlwi r6, r3, 0x1b +/* 803B193C 003AE89C 38 04 09 90 */ addi r0, r4, lbl_80560990@l +/* 803B1940 003AE8A0 1C 68 00 86 */ mulli r3, r8, 0x86 +/* 803B1944 003AE8A4 7C 00 2A 14 */ add r0, r0, r5 +/* 803B1948 003AE8A8 7C 80 1A 14 */ add r4, r0, r3 +/* 803B194C 003AE8AC 7C 64 32 14 */ add r3, r4, r6 +/* 803B1950 003AE8B0 7C 84 30 AE */ lbzx r4, r4, r6 +/* 803B1954 003AE8B4 88 03 00 20 */ lbz r0, 0x20(r3) +/* 803B1958 003AE8B8 54 83 38 30 */ slwi r3, r4, 7 +/* 803B195C 003AE8BC 7C 60 03 78 */ or r0, r3, r0 +/* 803B1960 003AE8C0 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B1964 003AE8C4 4E 80 00 20 */ blr +lbl_803B1968: +/* 803B1968 003AE8C8 28 07 00 46 */ cmplwi r7, 0x46 +/* 803B196C 003AE8CC 40 80 00 3C */ bge lbl_803B19A8 +/* 803B1970 003AE8D0 1C C0 08 60 */ mulli r6, r0, 0x860 +/* 803B1974 003AE8D4 3C 80 80 56 */ lis r4, lbl_80560990@ha +/* 803B1978 003AE8D8 38 60 00 40 */ li r3, 0x40 +/* 803B197C 003AE8DC 38 A4 09 90 */ addi r5, r4, lbl_80560990@l +/* 803B1980 003AE8E0 1C 88 00 86 */ mulli r4, r8, 0x86 +/* 803B1984 003AE8E4 38 00 3F FF */ li r0, 0x3fff +/* 803B1988 003AE8E8 7C A5 32 14 */ add r5, r5, r6 +/* 803B198C 003AE8EC 7C 85 22 14 */ add r4, r5, r4 +/* 803B1990 003AE8F0 7C 84 38 AE */ lbzx r4, r4, r7 +/* 803B1994 003AE8F4 7C 63 20 10 */ subfc r3, r3, r4 +/* 803B1998 003AE8F8 7C 63 19 10 */ subfe r3, r3, r3 +/* 803B199C 003AE8FC 7C 00 18 78 */ andc r0, r0, r3 +/* 803B19A0 003AE900 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B19A4 003AE904 4E 80 00 20 */ blr +lbl_803B19A8: +/* 803B19A8 003AE908 28 07 00 60 */ cmplwi r7, 0x60 +/* 803B19AC 003AE90C 41 80 00 14 */ blt lbl_803B19C0 +/* 803B19B0 003AE910 28 07 00 66 */ cmplwi r7, 0x66 +/* 803B19B4 003AE914 40 80 00 0C */ bge lbl_803B19C0 +/* 803B19B8 003AE918 38 60 00 00 */ li r3, 0 +/* 803B19BC 003AE91C 4E 80 00 20 */ blr +lbl_803B19C0: +/* 803B19C0 003AE920 54 66 06 3E */ clrlwi r6, r3, 0x18 +/* 803B19C4 003AE924 28 06 00 80 */ cmplwi r6, 0x80 +/* 803B19C8 003AE928 41 82 00 0C */ beq lbl_803B19D4 +/* 803B19CC 003AE92C 28 06 00 81 */ cmplwi r6, 0x81 +/* 803B19D0 003AE930 40 82 00 44 */ bne lbl_803B1A14 +lbl_803B19D4: +/* 803B19D4 003AE934 54 A0 06 3E */ clrlwi r0, r5, 0x18 +/* 803B19D8 003AE938 54 85 06 3E */ clrlwi r5, r4, 0x18 +/* 803B19DC 003AE93C 1C C0 08 60 */ mulli r6, r0, 0x860 +/* 803B19E0 003AE940 3C 80 80 56 */ lis r4, lbl_80560990@ha +/* 803B19E4 003AE944 54 67 06 3C */ rlwinm r7, r3, 0, 0x18, 0x1e +/* 803B19E8 003AE948 38 04 09 90 */ addi r0, r4, lbl_80560990@l +/* 803B19EC 003AE94C 1C 65 00 86 */ mulli r3, r5, 0x86 +/* 803B19F0 003AE950 7C 00 32 14 */ add r0, r0, r6 +/* 803B19F4 003AE954 7C 80 1A 14 */ add r4, r0, r3 +/* 803B19F8 003AE958 7C 64 3A 14 */ add r3, r4, r7 +/* 803B19FC 003AE95C 7C 84 38 AE */ lbzx r4, r4, r7 +/* 803B1A00 003AE960 88 03 00 01 */ lbz r0, 1(r3) +/* 803B1A04 003AE964 54 83 38 30 */ slwi r3, r4, 7 +/* 803B1A08 003AE968 7C 60 03 78 */ or r0, r3, r0 +/* 803B1A0C 003AE96C 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B1A10 003AE970 4E 80 00 20 */ blr +lbl_803B1A14: +/* 803B1A14 003AE974 28 06 00 84 */ cmplwi r6, 0x84 +/* 803B1A18 003AE978 41 82 00 0C */ beq lbl_803B1A24 +/* 803B1A1C 003AE97C 28 06 00 85 */ cmplwi r6, 0x85 +/* 803B1A20 003AE980 40 82 00 44 */ bne lbl_803B1A64 +lbl_803B1A24: +/* 803B1A24 003AE984 54 A0 06 3E */ clrlwi r0, r5, 0x18 +/* 803B1A28 003AE988 54 85 06 3E */ clrlwi r5, r4, 0x18 +/* 803B1A2C 003AE98C 1C C0 08 60 */ mulli r6, r0, 0x860 +/* 803B1A30 003AE990 3C 80 80 56 */ lis r4, lbl_80560990@ha +/* 803B1A34 003AE994 54 67 06 3C */ rlwinm r7, r3, 0, 0x18, 0x1e +/* 803B1A38 003AE998 38 04 09 90 */ addi r0, r4, lbl_80560990@l +/* 803B1A3C 003AE99C 1C 65 00 86 */ mulli r3, r5, 0x86 +/* 803B1A40 003AE9A0 7C 00 32 14 */ add r0, r0, r6 +/* 803B1A44 003AE9A4 7C 80 1A 14 */ add r4, r0, r3 +/* 803B1A48 003AE9A8 7C 64 3A 14 */ add r3, r4, r7 +/* 803B1A4C 003AE9AC 7C 84 38 AE */ lbzx r4, r4, r7 +/* 803B1A50 003AE9B0 88 03 00 01 */ lbz r0, 1(r3) +/* 803B1A54 003AE9B4 54 83 38 30 */ slwi r3, r4, 7 +/* 803B1A58 003AE9B8 7C 60 03 78 */ or r0, r3, r0 +/* 803B1A5C 003AE9BC 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B1A60 003AE9C0 4E 80 00 20 */ blr +lbl_803B1A64: +/* 803B1A64 003AE9C4 54 A3 06 3E */ clrlwi r3, r5, 0x18 +/* 803B1A68 003AE9C8 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1A6C 003AE9CC 1C 83 08 60 */ mulli r4, r3, 0x860 +/* 803B1A70 003AE9D0 3C 60 80 56 */ lis r3, lbl_80560990@ha +/* 803B1A74 003AE9D4 38 63 09 90 */ addi r3, r3, lbl_80560990@l +/* 803B1A78 003AE9D8 1C 00 00 86 */ mulli r0, r0, 0x86 +/* 803B1A7C 003AE9DC 7C 63 22 14 */ add r3, r3, r4 +/* 803B1A80 003AE9E0 7C 63 02 14 */ add r3, r3, r0 +/* 803B1A84 003AE9E4 7C 03 30 AE */ lbzx r0, r3, r6 +/* 803B1A88 003AE9E8 54 03 3C 30 */ rlwinm r3, r0, 7, 0x10, 0x18 +/* 803B1A8C 003AE9EC 4E 80 00 20 */ blr +lbl_803B1A90: +/* 803B1A90 003AE9F0 54 66 06 3E */ clrlwi r6, r3, 0x18 +/* 803B1A94 003AE9F4 28 06 00 40 */ cmplwi r6, 0x40 +/* 803B1A98 003AE9F8 40 80 00 34 */ bge lbl_803B1ACC +/* 803B1A9C 003AE9FC 1C C8 00 86 */ mulli r6, r8, 0x86 +/* 803B1AA0 003AEA00 3C 80 80 56 */ lis r4, lbl_80564D10@ha +/* 803B1AA4 003AEA04 54 65 06 FE */ clrlwi r5, r3, 0x1b +/* 803B1AA8 003AEA08 38 04 4D 10 */ addi r0, r4, lbl_80564D10@l +/* 803B1AAC 003AEA0C 7C 80 32 14 */ add r4, r0, r6 +/* 803B1AB0 003AEA10 7C 64 2A 14 */ add r3, r4, r5 +/* 803B1AB4 003AEA14 7C 84 28 AE */ lbzx r4, r4, r5 +/* 803B1AB8 003AEA18 88 03 00 20 */ lbz r0, 0x20(r3) +/* 803B1ABC 003AEA1C 54 83 38 30 */ slwi r3, r4, 7 +/* 803B1AC0 003AEA20 7C 60 03 78 */ or r0, r3, r0 +/* 803B1AC4 003AEA24 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B1AC8 003AEA28 4E 80 00 20 */ blr +lbl_803B1ACC: +/* 803B1ACC 003AEA2C 28 06 00 46 */ cmplwi r6, 0x46 +/* 803B1AD0 003AEA30 40 80 00 34 */ bge lbl_803B1B04 +/* 803B1AD4 003AEA34 1C A8 00 86 */ mulli r5, r8, 0x86 +/* 803B1AD8 003AEA38 3C 80 80 56 */ lis r4, lbl_80564D10@ha +/* 803B1ADC 003AEA3C 38 60 00 40 */ li r3, 0x40 +/* 803B1AE0 003AEA40 38 04 4D 10 */ addi r0, r4, lbl_80564D10@l +/* 803B1AE4 003AEA44 7C 80 2A 14 */ add r4, r0, r5 +/* 803B1AE8 003AEA48 38 00 3F FF */ li r0, 0x3fff +/* 803B1AEC 003AEA4C 7C 84 30 AE */ lbzx r4, r4, r6 +/* 803B1AF0 003AEA50 7C 63 20 10 */ subfc r3, r3, r4 +/* 803B1AF4 003AEA54 7C 63 19 10 */ subfe r3, r3, r3 +/* 803B1AF8 003AEA58 7C 00 18 78 */ andc r0, r0, r3 +/* 803B1AFC 003AEA5C 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B1B00 003AEA60 4E 80 00 20 */ blr +lbl_803B1B04: +/* 803B1B04 003AEA64 28 06 00 60 */ cmplwi r6, 0x60 +/* 803B1B08 003AEA68 41 80 00 14 */ blt lbl_803B1B1C +/* 803B1B0C 003AEA6C 28 06 00 66 */ cmplwi r6, 0x66 +/* 803B1B10 003AEA70 40 80 00 0C */ bge lbl_803B1B1C +/* 803B1B14 003AEA74 38 60 00 00 */ li r3, 0 +/* 803B1B18 003AEA78 4E 80 00 20 */ blr +lbl_803B1B1C: +/* 803B1B1C 003AEA7C 54 65 06 3E */ clrlwi r5, r3, 0x18 +/* 803B1B20 003AEA80 28 05 00 80 */ cmplwi r5, 0x80 +/* 803B1B24 003AEA84 41 82 00 0C */ beq lbl_803B1B30 +/* 803B1B28 003AEA88 28 05 00 81 */ cmplwi r5, 0x81 +/* 803B1B2C 003AEA8C 40 82 00 38 */ bne lbl_803B1B64 +lbl_803B1B30: +/* 803B1B30 003AEA90 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1B34 003AEA94 3C 80 80 56 */ lis r4, lbl_80564D10@ha +/* 803B1B38 003AEA98 1C C0 00 86 */ mulli r6, r0, 0x86 +/* 803B1B3C 003AEA9C 54 65 06 3C */ rlwinm r5, r3, 0, 0x18, 0x1e +/* 803B1B40 003AEAA0 38 04 4D 10 */ addi r0, r4, lbl_80564D10@l +/* 803B1B44 003AEAA4 7C 80 32 14 */ add r4, r0, r6 +/* 803B1B48 003AEAA8 7C 64 2A 14 */ add r3, r4, r5 +/* 803B1B4C 003AEAAC 7C 84 28 AE */ lbzx r4, r4, r5 +/* 803B1B50 003AEAB0 88 03 00 01 */ lbz r0, 1(r3) +/* 803B1B54 003AEAB4 54 83 38 30 */ slwi r3, r4, 7 +/* 803B1B58 003AEAB8 7C 60 03 78 */ or r0, r3, r0 +/* 803B1B5C 003AEABC 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B1B60 003AEAC0 4E 80 00 20 */ blr +lbl_803B1B64: +/* 803B1B64 003AEAC4 28 05 00 84 */ cmplwi r5, 0x84 +/* 803B1B68 003AEAC8 41 82 00 0C */ beq lbl_803B1B74 +/* 803B1B6C 003AEACC 28 05 00 85 */ cmplwi r5, 0x85 +/* 803B1B70 003AEAD0 40 82 00 38 */ bne lbl_803B1BA8 +lbl_803B1B74: +/* 803B1B74 003AEAD4 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1B78 003AEAD8 3C 80 80 56 */ lis r4, lbl_80564D10@ha +/* 803B1B7C 003AEADC 1C C0 00 86 */ mulli r6, r0, 0x86 +/* 803B1B80 003AEAE0 54 65 06 3C */ rlwinm r5, r3, 0, 0x18, 0x1e +/* 803B1B84 003AEAE4 38 04 4D 10 */ addi r0, r4, lbl_80564D10@l +/* 803B1B88 003AEAE8 7C 80 32 14 */ add r4, r0, r6 +/* 803B1B8C 003AEAEC 7C 64 2A 14 */ add r3, r4, r5 +/* 803B1B90 003AEAF0 7C 84 28 AE */ lbzx r4, r4, r5 +/* 803B1B94 003AEAF4 88 03 00 01 */ lbz r0, 1(r3) +/* 803B1B98 003AEAF8 54 83 38 30 */ slwi r3, r4, 7 +/* 803B1B9C 003AEAFC 7C 60 03 78 */ or r0, r3, r0 +/* 803B1BA0 003AEB00 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B1BA4 003AEB04 4E 80 00 20 */ blr +lbl_803B1BA8: +/* 803B1BA8 003AEB08 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1BAC 003AEB0C 3C 60 80 56 */ lis r3, lbl_80564D10@ha +/* 803B1BB0 003AEB10 1C 80 00 86 */ mulli r4, r0, 0x86 +/* 803B1BB4 003AEB14 38 03 4D 10 */ addi r0, r3, lbl_80564D10@l +/* 803B1BB8 003AEB18 7C 60 22 14 */ add r3, r0, r4 +/* 803B1BBC 003AEB1C 7C 03 28 AE */ lbzx r0, r3, r5 +/* 803B1BC0 003AEB20 54 03 3C 30 */ rlwinm r3, r0, 7, 0x10, 0x18 +/* 803B1BC4 003AEB24 4E 80 00 20 */ blr +lbl_803B1BC8: +/* 803B1BC8 003AEB28 38 60 00 00 */ li r3, 0 +/* 803B1BCC 003AEB2C 4E 80 00 20 */ blr + +.global sub_803b1bd0 +sub_803b1bd0: +/* 803B1BD0 003AEB30 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1BD4 003AEB34 3C A0 80 56 */ lis r5, lbl_80564C90@ha +/* 803B1BD8 003AEB38 28 00 00 FF */ cmplwi r0, 0xff +/* 803B1BDC 003AEB3C 54 86 25 36 */ rlwinm r6, r4, 4, 0x14, 0x1b +/* 803B1BE0 003AEB40 38 05 4C 90 */ addi r0, r5, lbl_80564C90@l +/* 803B1BE4 003AEB44 54 64 06 3E */ clrlwi r4, r3, 0x18 +/* 803B1BE8 003AEB48 7C 00 32 14 */ add r0, r0, r6 +/* 803B1BEC 003AEB4C 7C 60 22 14 */ add r3, r0, r4 +/* 803B1BF0 003AEB50 4C 82 00 20 */ bnelr +/* 803B1BF4 003AEB54 3C 60 80 56 */ lis r3, lbl_80566E90@ha +/* 803B1BF8 003AEB58 38 03 6E 90 */ addi r0, r3, lbl_80566E90@l +/* 803B1BFC 003AEB5C 7C 60 22 14 */ add r3, r0, r4 +/* 803B1C00 003AEB60 4E 80 00 20 */ blr + +.global sub_803b1c04 +sub_803b1c04: +/* 803B1C04 003AEB64 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1C08 003AEB68 3C A0 80 56 */ lis r5, lbl_80566E90@ha +/* 803B1C0C 003AEB6C 28 00 00 FF */ cmplwi r0, 0xff +/* 803B1C10 003AEB70 54 66 06 3E */ clrlwi r6, r3, 0x18 +/* 803B1C14 003AEB74 38 05 6E 90 */ addi r0, r5, lbl_80566E90@l +/* 803B1C18 003AEB78 38 A0 00 02 */ li r5, 2 +/* 803B1C1C 003AEB7C 7C 60 32 14 */ add r3, r0, r6 +/* 803B1C20 003AEB80 41 82 00 18 */ beq lbl_803B1C38 +/* 803B1C24 003AEB84 3C 60 80 56 */ lis r3, lbl_80564C90@ha +/* 803B1C28 003AEB88 54 84 25 36 */ rlwinm r4, r4, 4, 0x14, 0x1b +/* 803B1C2C 003AEB8C 38 03 4C 90 */ addi r0, r3, lbl_80564C90@l +/* 803B1C30 003AEB90 7C 00 22 14 */ add r0, r0, r4 +/* 803B1C34 003AEB94 7C 60 32 14 */ add r3, r0, r6 +lbl_803B1C38: +/* 803B1C38 003AEB98 98 A3 00 00 */ stb r5, 0(r3) +/* 803B1C3C 003AEB9C 4E 80 00 20 */ blr + +.global inpAddCtrl +inpAddCtrl: +/* 803B1C40 003AEBA0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B1C44 003AEBA4 7C 08 02 A6 */ mflr r0 +/* 803B1C48 003AEBA8 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B1C4C 003AEBAC 39 61 00 20 */ addi r11, r1, 0x20 +/* 803B1C50 003AEBB0 4B FD 7E 2D */ bl sub_80389a7c +/* 803B1C54 003AEBB4 54 C0 06 3F */ clrlwi. r0, r6, 0x18 +/* 803B1C58 003AEBB8 7C DD 33 78 */ mr r29, r6 +/* 803B1C5C 003AEBBC 7C 7B 1B 78 */ mr r27, r3 +/* 803B1C60 003AEBC0 7C BC 2B 78 */ mr r28, r5 +/* 803B1C64 003AEBC4 7C FE 3B 78 */ mr r30, r7 +/* 803B1C68 003AEBC8 40 82 00 0C */ bne lbl_803B1C74 +/* 803B1C6C 003AEBCC 38 00 00 00 */ li r0, 0 +/* 803B1C70 003AEBD0 98 1B 00 22 */ stb r0, 0x22(r27) +lbl_803B1C74: +/* 803B1C74 003AEBD4 8B FB 00 22 */ lbz r31, 0x22(r27) +/* 803B1C78 003AEBD8 28 1F 00 04 */ cmplwi r31, 4 +/* 803B1C7C 003AEBDC 40 80 00 44 */ bge lbl_803B1CC0 +/* 803B1C80 003AEBE0 38 1F 00 01 */ addi r0, r31, 1 +/* 803B1C84 003AEBE4 28 1E 00 00 */ cmplwi r30, 0 +/* 803B1C88 003AEBE8 98 1B 00 22 */ stb r0, 0x22(r27) +/* 803B1C8C 003AEBEC 40 82 00 10 */ bne lbl_803B1C9C +/* 803B1C90 003AEBF0 7C 83 23 78 */ mr r3, r4 +/* 803B1C94 003AEBF4 48 00 0D BD */ bl inpTranslateExCtrl +/* 803B1C98 003AEBF8 7C 64 1B 78 */ mr r4, r3 +lbl_803B1C9C: +/* 803B1C9C 003AEBFC 28 1E 00 00 */ cmplwi r30, 0 +/* 803B1CA0 003AEC00 41 82 00 0C */ beq lbl_803B1CAC +/* 803B1CA4 003AEC04 63 A0 00 10 */ ori r0, r29, 0x10 +/* 803B1CA8 003AEC08 54 1D 06 3E */ clrlwi r29, r0, 0x18 +lbl_803B1CAC: +/* 803B1CAC 003AEC0C 57 E0 1D 78 */ rlwinm r0, r31, 3, 0x15, 0x1c +/* 803B1CB0 003AEC10 7C 9B 01 AE */ stbx r4, r27, r0 +/* 803B1CB4 003AEC14 7C 7B 02 14 */ add r3, r27, r0 +/* 803B1CB8 003AEC18 9B A3 00 01 */ stb r29, 1(r3) +/* 803B1CBC 003AEC1C 93 83 00 04 */ stw r28, 4(r3) +lbl_803B1CC0: +/* 803B1CC0 003AEC20 39 61 00 20 */ addi r11, r1, 0x20 +/* 803B1CC4 003AEC24 4B FD 7E 05 */ bl _restgpr_27 +/* 803B1CC8 003AEC28 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B1CCC 003AEC2C 7C 08 03 A6 */ mtlr r0 +/* 803B1CD0 003AEC30 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B1CD4 003AEC34 4E 80 00 20 */ blr + +.global inpFXCopyCtrl +inpFXCopyCtrl: +/* 803B1CD8 003AEC38 54 66 06 3E */ clrlwi r6, r3, 0x18 +/* 803B1CDC 003AEC3C 80 84 00 F4 */ lwz r4, 0xf4(r4) +/* 803B1CE0 003AEC40 80 05 00 F4 */ lwz r0, 0xf4(r5) +/* 803B1CE4 003AEC44 28 06 00 40 */ cmplwi r6, 0x40 +/* 803B1CE8 003AEC48 54 87 06 3E */ clrlwi r7, r4, 0x18 +/* 803B1CEC 003AEC4C 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B1CF0 003AEC50 40 80 00 40 */ bge lbl_803B1D30 +/* 803B1CF4 003AEC54 1C C0 00 86 */ mulli r6, r0, 0x86 +/* 803B1CF8 003AEC58 3C 80 80 56 */ lis r4, lbl_80564D10@ha +/* 803B1CFC 003AEC5C 54 65 06 FE */ clrlwi r5, r3, 0x1b +/* 803B1D00 003AEC60 38 84 4D 10 */ addi r4, r4, lbl_80564D10@l +/* 803B1D04 003AEC64 1C E7 00 86 */ mulli r7, r7, 0x86 +/* 803B1D08 003AEC68 7C 64 32 14 */ add r3, r4, r6 +/* 803B1D0C 003AEC6C 7C 03 28 AE */ lbzx r0, r3, r5 +/* 803B1D10 003AEC70 39 04 00 20 */ addi r8, r4, 0x20 +/* 803B1D14 003AEC74 7C 84 3A 14 */ add r4, r4, r7 +/* 803B1D18 003AEC78 7C 66 2A 14 */ add r3, r6, r5 +/* 803B1D1C 003AEC7C 7C 04 29 AE */ stbx r0, r4, r5 +/* 803B1D20 003AEC80 7C 07 2A 14 */ add r0, r7, r5 +/* 803B1D24 003AEC84 7C 68 18 AE */ lbzx r3, r8, r3 +/* 803B1D28 003AEC88 7C 68 01 AE */ stbx r3, r8, r0 +/* 803B1D2C 003AEC8C 4E 80 00 20 */ blr +lbl_803B1D30: +/* 803B1D30 003AEC90 28 06 00 80 */ cmplwi r6, 0x80 +/* 803B1D34 003AEC94 41 82 00 0C */ beq lbl_803B1D40 +/* 803B1D38 003AEC98 28 06 00 81 */ cmplwi r6, 0x81 +/* 803B1D3C 003AEC9C 40 82 00 40 */ bne lbl_803B1D7C +lbl_803B1D40: +/* 803B1D40 003AECA0 1C C0 00 86 */ mulli r6, r0, 0x86 +/* 803B1D44 003AECA4 3C 80 80 56 */ lis r4, lbl_80564D10@ha +/* 803B1D48 003AECA8 54 65 06 3C */ rlwinm r5, r3, 0, 0x18, 0x1e +/* 803B1D4C 003AECAC 38 84 4D 10 */ addi r4, r4, lbl_80564D10@l +/* 803B1D50 003AECB0 7C 64 32 14 */ add r3, r4, r6 +/* 803B1D54 003AECB4 1C E7 00 86 */ mulli r7, r7, 0x86 +/* 803B1D58 003AECB8 7C 03 28 AE */ lbzx r0, r3, r5 +/* 803B1D5C 003AECBC 39 04 00 01 */ addi r8, r4, 1 +/* 803B1D60 003AECC0 7C 64 3A 14 */ add r3, r4, r7 +/* 803B1D64 003AECC4 7C 03 29 AE */ stbx r0, r3, r5 +/* 803B1D68 003AECC8 7C 66 2A 14 */ add r3, r6, r5 +/* 803B1D6C 003AECCC 7C 07 2A 14 */ add r0, r7, r5 +/* 803B1D70 003AECD0 7C 68 18 AE */ lbzx r3, r8, r3 +/* 803B1D74 003AECD4 7C 68 01 AE */ stbx r3, r8, r0 +/* 803B1D78 003AECD8 4E 80 00 20 */ blr +lbl_803B1D7C: +/* 803B1D7C 003AECDC 28 06 00 84 */ cmplwi r6, 0x84 +/* 803B1D80 003AECE0 41 82 00 0C */ beq lbl_803B1D8C +/* 803B1D84 003AECE4 28 06 00 85 */ cmplwi r6, 0x85 +/* 803B1D88 003AECE8 40 82 00 40 */ bne lbl_803B1DC8 +lbl_803B1D8C: +/* 803B1D8C 003AECEC 1C C0 00 86 */ mulli r6, r0, 0x86 +/* 803B1D90 003AECF0 3C 80 80 56 */ lis r4, lbl_80564D10@ha +/* 803B1D94 003AECF4 54 65 06 3C */ rlwinm r5, r3, 0, 0x18, 0x1e +/* 803B1D98 003AECF8 38 84 4D 10 */ addi r4, r4, lbl_80564D10@l +/* 803B1D9C 003AECFC 7C 64 32 14 */ add r3, r4, r6 +/* 803B1DA0 003AED00 1C E7 00 86 */ mulli r7, r7, 0x86 +/* 803B1DA4 003AED04 7C 03 28 AE */ lbzx r0, r3, r5 +/* 803B1DA8 003AED08 39 04 00 01 */ addi r8, r4, 1 +/* 803B1DAC 003AED0C 7C 64 3A 14 */ add r3, r4, r7 +/* 803B1DB0 003AED10 7C 03 29 AE */ stbx r0, r3, r5 +/* 803B1DB4 003AED14 7C 66 2A 14 */ add r3, r6, r5 +/* 803B1DB8 003AED18 7C 07 2A 14 */ add r0, r7, r5 +/* 803B1DBC 003AED1C 7C 68 18 AE */ lbzx r3, r8, r3 +/* 803B1DC0 003AED20 7C 68 01 AE */ stbx r3, r8, r0 +/* 803B1DC4 003AED24 4E 80 00 20 */ blr +lbl_803B1DC8: +/* 803B1DC8 003AED28 1C 80 00 86 */ mulli r4, r0, 0x86 +/* 803B1DCC 003AED2C 3C 60 80 56 */ lis r3, lbl_80564D10@ha +/* 803B1DD0 003AED30 38 A3 4D 10 */ addi r5, r3, lbl_80564D10@l +/* 803B1DD4 003AED34 1C 07 00 86 */ mulli r0, r7, 0x86 +/* 803B1DD8 003AED38 7C 65 22 14 */ add r3, r5, r4 +/* 803B1DDC 003AED3C 7C 83 30 AE */ lbzx r4, r3, r6 +/* 803B1DE0 003AED40 7C 65 02 14 */ add r3, r5, r0 +/* 803B1DE4 003AED44 7C 83 31 AE */ stbx r4, r3, r6 +/* 803B1DE8 003AED48 4E 80 00 20 */ blr + +.global inpSetMidiLastNote +inpSetMidiLastNote: +/* 803B1DEC 003AED4C 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1DF0 003AED50 28 00 00 FF */ cmplwi r0, 0xff +/* 803B1DF4 003AED54 41 82 00 20 */ beq lbl_803B1E14 +/* 803B1DF8 003AED58 3C C0 80 56 */ lis r6, lbl_80566ED0@ha +/* 803B1DFC 003AED5C 54 87 25 36 */ rlwinm r7, r4, 4, 0x14, 0x1b +/* 803B1E00 003AED60 38 86 6E D0 */ addi r4, r6, lbl_80566ED0@l +/* 803B1E04 003AED64 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B1E08 003AED68 7C 64 3A 14 */ add r3, r4, r7 +/* 803B1E0C 003AED6C 7C A3 01 AE */ stbx r5, r3, r0 +/* 803B1E10 003AED70 4E 80 00 20 */ blr +lbl_803B1E14: +/* 803B1E14 003AED74 3C 80 80 56 */ lis r4, lbl_80566F50@ha +/* 803B1E18 003AED78 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B1E1C 003AED7C 38 64 6F 50 */ addi r3, r4, lbl_80566F50@l +/* 803B1E20 003AED80 7C A3 01 AE */ stbx r5, r3, r0 +/* 803B1E24 003AED84 4E 80 00 20 */ blr + +.global inpGetMidiLastNote +inpGetMidiLastNote: +/* 803B1E28 003AED88 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B1E2C 003AED8C 28 00 00 FF */ cmplwi r0, 0xff +/* 803B1E30 003AED90 41 82 00 20 */ beq lbl_803B1E50 +/* 803B1E34 003AED94 3C A0 80 56 */ lis r5, lbl_80566ED0@ha +/* 803B1E38 003AED98 54 86 25 36 */ rlwinm r6, r4, 4, 0x14, 0x1b +/* 803B1E3C 003AED9C 38 85 6E D0 */ addi r4, r5, lbl_80566ED0@l +/* 803B1E40 003AEDA0 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B1E44 003AEDA4 7C 64 32 14 */ add r3, r4, r6 +/* 803B1E48 003AEDA8 7C 63 00 AE */ lbzx r3, r3, r0 +/* 803B1E4C 003AEDAC 4E 80 00 20 */ blr +lbl_803B1E50: +/* 803B1E50 003AEDB0 3C 80 80 56 */ lis r4, lbl_80566F50@ha +/* 803B1E54 003AEDB4 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B1E58 003AEDB8 38 64 6F 50 */ addi r3, r4, lbl_80566F50@l +/* 803B1E5C 003AEDBC 7C 63 00 AE */ lbzx r3, r3, r0 +/* 803B1E60 003AEDC0 4E 80 00 20 */ blr + +.global _GetInputValue +_GetInputValue: +/* 803B1E64 003AEDC4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B1E68 003AEDC8 7C 08 02 A6 */ mflr r0 +/* 803B1E6C 003AEDCC 90 01 00 34 */ stw r0, 0x34(r1) +/* 803B1E70 003AEDD0 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B1E74 003AEDD4 4B FD 7B FD */ bl func_80389A70 +/* 803B1E78 003AEDD8 7C 99 23 78 */ mr r25, r4 +/* 803B1E7C 003AEDDC 7C 78 1B 78 */ mr r24, r3 +/* 803B1E80 003AEDE0 7C BA 2B 78 */ mr r26, r5 +/* 803B1E84 003AEDE4 7C DB 33 78 */ mr r27, r6 +/* 803B1E88 003AEDE8 7F 3F CB 78 */ mr r31, r25 +/* 803B1E8C 003AEDEC 3B C0 00 00 */ li r30, 0 +/* 803B1E90 003AEDF0 3B A0 00 00 */ li r29, 0 +/* 803B1E94 003AEDF4 48 00 04 44 */ b lbl_803B22D8 +lbl_803B1E98: +/* 803B1E98 003AEDF8 88 1F 00 01 */ lbz r0, 1(r31) +/* 803B1E9C 003AEDFC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 803B1EA0 003AEE00 41 82 00 30 */ beq lbl_803B1ED0 +/* 803B1EA4 003AEE04 28 18 00 00 */ cmplwi r24, 0 +/* 803B1EA8 003AEE08 41 82 00 1C */ beq lbl_803B1EC4 +/* 803B1EAC 003AEE0C 88 BF 00 00 */ lbz r5, 0(r31) +/* 803B1EB0 003AEE10 7F 03 C3 78 */ mr r3, r24 +/* 803B1EB4 003AEE14 38 80 00 00 */ li r4, 0 +/* 803B1EB8 003AEE18 4B FF 35 A1 */ bl varGet +/* 803B1EBC 003AEE1C 7C 60 07 34 */ extsh r0, r3 +/* 803B1EC0 003AEE20 48 00 00 08 */ b lbl_803B1EC8 +lbl_803B1EC4: +/* 803B1EC4 003AEE24 38 00 00 00 */ li r0, 0 +lbl_803B1EC8: +/* 803B1EC8 003AEE28 7C 03 03 78 */ mr r3, r0 +/* 803B1ECC 003AEE2C 48 00 00 90 */ b lbl_803B1F5C +lbl_803B1ED0: +/* 803B1ED0 003AEE30 88 7F 00 00 */ lbz r3, 0(r31) +/* 803B1ED4 003AEE34 28 03 00 80 */ cmplwi r3, 0x80 +/* 803B1ED8 003AEE38 41 82 00 2C */ beq lbl_803B1F04 +/* 803B1EDC 003AEE3C 28 03 00 01 */ cmplwi r3, 1 +/* 803B1EE0 003AEE40 41 82 00 24 */ beq lbl_803B1F04 +/* 803B1EE4 003AEE44 28 03 00 0A */ cmplwi r3, 0xa +/* 803B1EE8 003AEE48 41 82 00 1C */ beq lbl_803B1F04 +/* 803B1EEC 003AEE4C 38 03 FF 60 */ addi r0, r3, -160 +/* 803B1EF0 003AEE50 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803B1EF4 003AEE54 28 00 00 01 */ cmplwi r0, 1 +/* 803B1EF8 003AEE58 40 81 00 0C */ ble lbl_803B1F04 +/* 803B1EFC 003AEE5C 28 03 00 83 */ cmplwi r3, 0x83 +/* 803B1F00 003AEE60 40 82 01 C4 */ bne lbl_803B20C4 +lbl_803B1F04: +/* 803B1F04 003AEE64 2C 03 00 A2 */ cmpwi r3, 0xa2 +/* 803B1F08 003AEE68 40 80 00 40 */ bge lbl_803B1F48 +/* 803B1F0C 003AEE6C 2C 03 00 A0 */ cmpwi r3, 0xa0 +/* 803B1F10 003AEE70 40 80 00 08 */ bge lbl_803B1F18 +/* 803B1F14 003AEE74 48 00 00 34 */ b lbl_803B1F48 +lbl_803B1F18: +/* 803B1F18 003AEE78 28 18 00 00 */ cmplwi r24, 0 +/* 803B1F1C 003AEE7C 41 82 00 24 */ beq lbl_803B1F40 +/* 803B1F20 003AEE80 1C 83 00 0C */ mulli r4, r3, 0xc +/* 803B1F24 003AEE84 38 03 01 34 */ addi r0, r3, 0x134 +/* 803B1F28 003AEE88 38 60 00 01 */ li r3, 1 +/* 803B1F2C 003AEE8C 38 84 FA 44 */ addi r4, r4, -1468 +/* 803B1F30 003AEE90 7C 98 22 AE */ lhax r4, r24, r4 +/* 803B1F34 003AEE94 7C 78 01 AE */ stbx r3, r24, r0 +/* 803B1F38 003AEE98 54 83 08 3C */ slwi r3, r4, 1 +/* 803B1F3C 003AEE9C 48 00 00 20 */ b lbl_803B1F5C +lbl_803B1F40: +/* 803B1F40 003AEEA0 38 60 00 00 */ li r3, 0 +/* 803B1F44 003AEEA4 48 00 00 18 */ b lbl_803B1F5C +lbl_803B1F48: +/* 803B1F48 003AEEA8 7F 44 D3 78 */ mr r4, r26 +/* 803B1F4C 003AEEAC 7F 65 DB 78 */ mr r5, r27 +/* 803B1F50 003AEEB0 4B FF F9 BD */ bl inpGetMidiCtrl +/* 803B1F54 003AEEB4 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803B1F58 003AEEB8 38 63 E0 00 */ addi r3, r3, -8192 +lbl_803B1F5C: +/* 803B1F5C 003AEEBC 80 1F 00 04 */ lwz r0, 4(r31) +/* 803B1F60 003AEEC0 7C 00 0E 70 */ srawi r0, r0, 1 +/* 803B1F64 003AEEC4 7C 03 01 D6 */ mullw r0, r3, r0 +/* 803B1F68 003AEEC8 7C 00 7E 70 */ srawi r0, r0, 0xf +/* 803B1F6C 003AEECC 2C 00 E0 00 */ cmpwi r0, -8192 +/* 803B1F70 003AEED0 40 80 00 0C */ bge lbl_803B1F7C +/* 803B1F74 003AEED4 38 60 E0 00 */ li r3, -8192 +/* 803B1F78 003AEED8 48 00 00 14 */ b lbl_803B1F8C +lbl_803B1F7C: +/* 803B1F7C 003AEEDC 2C 00 1F FF */ cmpwi r0, 0x1fff +/* 803B1F80 003AEEE0 38 60 1F FF */ li r3, 0x1fff +/* 803B1F84 003AEEE4 41 81 00 08 */ bgt lbl_803B1F8C +/* 803B1F88 003AEEE8 7C 03 03 78 */ mr r3, r0 +lbl_803B1F8C: +/* 803B1F8C 003AEEEC 88 1F 00 01 */ lbz r0, 1(r31) +/* 803B1F90 003AEEF0 54 00 07 3E */ clrlwi r0, r0, 0x1c +/* 803B1F94 003AEEF4 2C 00 00 02 */ cmpwi r0, 2 +/* 803B1F98 003AEEF8 41 82 00 88 */ beq lbl_803B2020 +/* 803B1F9C 003AEEFC 40 80 00 14 */ bge lbl_803B1FB0 +/* 803B1FA0 003AEF00 2C 00 00 00 */ cmpwi r0, 0 +/* 803B1FA4 003AEF04 41 82 00 18 */ beq lbl_803B1FBC +/* 803B1FA8 003AEF08 40 80 00 20 */ bge lbl_803B1FC8 +/* 803B1FAC 003AEF0C 48 00 03 24 */ b lbl_803B22D0 +lbl_803B1FB0: +/* 803B1FB0 003AEF10 2C 00 00 04 */ cmpwi r0, 4 +/* 803B1FB4 003AEF14 40 80 03 1C */ bge lbl_803B22D0 +/* 803B1FB8 003AEF18 48 00 00 B4 */ b lbl_803B206C +lbl_803B1FBC: +/* 803B1FBC 003AEF1C 3B C3 20 00 */ addi r30, r3, 0x2000 +/* 803B1FC0 003AEF20 3B 80 00 01 */ li r28, 1 +/* 803B1FC4 003AEF24 48 00 03 0C */ b lbl_803B22D0 +lbl_803B1FC8: +/* 803B1FC8 003AEF28 28 1C 00 00 */ cmplwi r28, 0 +/* 803B1FCC 003AEF2C 41 82 00 34 */ beq lbl_803B2000 +/* 803B1FD0 003AEF30 7C 9E 1A 14 */ add r4, r30, r3 +/* 803B1FD4 003AEF34 38 84 E0 00 */ addi r4, r4, -8192 +/* 803B1FD8 003AEF38 2C 04 E0 00 */ cmpwi r4, -8192 +/* 803B1FDC 003AEF3C 40 80 00 0C */ bge lbl_803B1FE8 +/* 803B1FE0 003AEF40 38 60 E0 00 */ li r3, -8192 +/* 803B1FE4 003AEF44 48 00 00 14 */ b lbl_803B1FF8 +lbl_803B1FE8: +/* 803B1FE8 003AEF48 2C 04 1F FF */ cmpwi r4, 0x1fff +/* 803B1FEC 003AEF4C 38 60 1F FF */ li r3, 0x1fff +/* 803B1FF0 003AEF50 41 81 00 08 */ bgt lbl_803B1FF8 +/* 803B1FF4 003AEF54 7C 83 23 78 */ mr r3, r4 +lbl_803B1FF8: +/* 803B1FF8 003AEF58 3B C3 20 00 */ addi r30, r3, 0x2000 +/* 803B1FFC 003AEF5C 48 00 02 D4 */ b lbl_803B22D0 +lbl_803B2000: +/* 803B2000 003AEF60 7C 7E 1A 14 */ add r3, r30, r3 +/* 803B2004 003AEF64 2C 03 3F FF */ cmpwi r3, 0x3fff +/* 803B2008 003AEF68 40 81 00 0C */ ble lbl_803B2014 +/* 803B200C 003AEF6C 3B C0 3F FF */ li r30, 0x3fff +/* 803B2010 003AEF70 48 00 02 C0 */ b lbl_803B22D0 +lbl_803B2014: +/* 803B2014 003AEF74 7C 60 FE 70 */ srawi r0, r3, 0x1f +/* 803B2018 003AEF78 7C 7E 00 78 */ andc r30, r3, r0 +/* 803B201C 003AEF7C 48 00 02 B4 */ b lbl_803B22D0 +lbl_803B2020: +/* 803B2020 003AEF80 28 1C 00 00 */ cmplwi r28, 0 +/* 803B2024 003AEF84 41 82 00 14 */ beq lbl_803B2038 +/* 803B2028 003AEF88 38 1E E0 00 */ addi r0, r30, -8192 +/* 803B202C 003AEF8C 7C 00 19 D6 */ mullw r0, r0, r3 +/* 803B2030 003AEF90 7C 00 6E 70 */ srawi r0, r0, 0xd +/* 803B2034 003AEF94 48 00 00 10 */ b lbl_803B2044 +lbl_803B2038: +/* 803B2038 003AEF98 7C 03 F1 D6 */ mullw r0, r3, r30 +/* 803B203C 003AEF9C 3B 80 00 01 */ li r28, 1 +/* 803B2040 003AEFA0 54 00 9B 7E */ srwi r0, r0, 0xd +lbl_803B2044: +/* 803B2044 003AEFA4 2C 00 E0 00 */ cmpwi r0, -8192 +/* 803B2048 003AEFA8 40 80 00 0C */ bge lbl_803B2054 +/* 803B204C 003AEFAC 38 60 E0 00 */ li r3, -8192 +/* 803B2050 003AEFB0 48 00 00 14 */ b lbl_803B2064 +lbl_803B2054: +/* 803B2054 003AEFB4 2C 00 1F FF */ cmpwi r0, 0x1fff +/* 803B2058 003AEFB8 38 60 1F FF */ li r3, 0x1fff +/* 803B205C 003AEFBC 41 81 00 08 */ bgt lbl_803B2064 +/* 803B2060 003AEFC0 7C 03 03 78 */ mr r3, r0 +lbl_803B2064: +/* 803B2064 003AEFC4 3B C3 20 00 */ addi r30, r3, 0x2000 +/* 803B2068 003AEFC8 48 00 02 68 */ b lbl_803B22D0 +lbl_803B206C: +/* 803B206C 003AEFCC 28 1C 00 00 */ cmplwi r28, 0 +/* 803B2070 003AEFD0 41 82 00 34 */ beq lbl_803B20A4 +/* 803B2074 003AEFD4 38 1E E0 00 */ addi r0, r30, -8192 +/* 803B2078 003AEFD8 7C 03 00 50 */ subf r0, r3, r0 +/* 803B207C 003AEFDC 2C 00 E0 00 */ cmpwi r0, -8192 +/* 803B2080 003AEFE0 40 80 00 0C */ bge lbl_803B208C +/* 803B2084 003AEFE4 38 60 E0 00 */ li r3, -8192 +/* 803B2088 003AEFE8 48 00 00 14 */ b lbl_803B209C +lbl_803B208C: +/* 803B208C 003AEFEC 2C 00 1F FF */ cmpwi r0, 0x1fff +/* 803B2090 003AEFF0 38 60 1F FF */ li r3, 0x1fff +/* 803B2094 003AEFF4 41 81 00 08 */ bgt lbl_803B209C +/* 803B2098 003AEFF8 7C 03 03 78 */ mr r3, r0 +lbl_803B209C: +/* 803B209C 003AEFFC 3B C3 20 00 */ addi r30, r3, 0x2000 +/* 803B20A0 003AF000 48 00 02 30 */ b lbl_803B22D0 +lbl_803B20A4: +/* 803B20A4 003AF004 7C 63 F0 50 */ subf r3, r3, r30 +/* 803B20A8 003AF008 2C 03 3F FF */ cmpwi r3, 0x3fff +/* 803B20AC 003AF00C 40 81 00 0C */ ble lbl_803B20B8 +/* 803B20B0 003AF010 3B C0 3F FF */ li r30, 0x3fff +/* 803B20B4 003AF014 48 00 02 1C */ b lbl_803B22D0 +lbl_803B20B8: +/* 803B20B8 003AF018 7C 60 FE 70 */ srawi r0, r3, 0x1f +/* 803B20BC 003AF01C 7C 7E 00 78 */ andc r30, r3, r0 +/* 803B20C0 003AF020 48 00 02 10 */ b lbl_803B22D0 +lbl_803B20C4: +/* 803B20C4 003AF024 2C 03 00 A3 */ cmpwi r3, 0xa3 +/* 803B20C8 003AF028 41 82 00 3C */ beq lbl_803B2104 +/* 803B20CC 003AF02C 40 80 00 10 */ bge lbl_803B20DC +/* 803B20D0 003AF030 2C 03 00 A2 */ cmpwi r3, 0xa2 +/* 803B20D4 003AF034 40 80 00 14 */ bge lbl_803B20E8 +/* 803B20D8 003AF038 48 00 00 90 */ b lbl_803B2168 +lbl_803B20DC: +/* 803B20DC 003AF03C 2C 03 00 A5 */ cmpwi r3, 0xa5 +/* 803B20E0 003AF040 40 80 00 88 */ bge lbl_803B2168 +/* 803B20E4 003AF044 48 00 00 3C */ b lbl_803B2120 +lbl_803B20E8: +/* 803B20E8 003AF048 28 18 00 00 */ cmplwi r24, 0 +/* 803B20EC 003AF04C 41 82 00 10 */ beq lbl_803B20FC +/* 803B20F0 003AF050 88 18 01 2F */ lbz r0, 0x12f(r24) +/* 803B20F4 003AF054 54 05 38 30 */ slwi r5, r0, 7 +/* 803B20F8 003AF058 48 00 00 80 */ b lbl_803B2178 +lbl_803B20FC: +/* 803B20FC 003AF05C 38 A0 00 00 */ li r5, 0 +/* 803B2100 003AF060 48 00 00 78 */ b lbl_803B2178 +lbl_803B2104: +/* 803B2104 003AF064 28 18 00 00 */ cmplwi r24, 0 +/* 803B2108 003AF068 41 82 00 10 */ beq lbl_803B2118 +/* 803B210C 003AF06C 80 18 01 58 */ lwz r0, 0x158(r24) +/* 803B2110 003AF070 54 05 BA 7E */ srwi r5, r0, 9 +/* 803B2114 003AF074 48 00 00 64 */ b lbl_803B2178 +lbl_803B2118: +/* 803B2118 003AF078 38 A0 00 00 */ li r5, 0 +/* 803B211C 003AF07C 48 00 00 5C */ b lbl_803B2178 +lbl_803B2120: +/* 803B2120 003AF080 28 18 00 00 */ cmplwi r24, 0 +/* 803B2124 003AF084 41 82 00 3C */ beq lbl_803B2160 +/* 803B2128 003AF088 80 6D AE 8C */ lwz r3, lbl_805A9A4C@sda21(r13) +/* 803B212C 003AF08C 80 18 00 94 */ lwz r0, 0x94(r24) +/* 803B2130 003AF090 80 8D AE 88 */ lwz r4, lbl_805A9A48@sda21(r13) +/* 803B2134 003AF094 7C 00 18 10 */ subfc r0, r0, r3 +/* 803B2138 003AF098 80 78 00 90 */ lwz r3, 0x90(r24) +/* 803B213C 003AF09C 54 05 C0 3E */ rotlwi r5, r0, 0x18 +/* 803B2140 003AF0A0 7C 03 21 10 */ subfe r0, r3, r4 +/* 803B2144 003AF0A4 50 05 C0 0E */ rlwimi r5, r0, 0x18, 0, 7 +/* 803B2148 003AF0A8 2C 05 3F FF */ cmpwi r5, 0x3fff +/* 803B214C 003AF0AC 40 81 00 08 */ ble lbl_803B2154 +/* 803B2150 003AF0B0 38 A0 3F FF */ li r5, 0x3fff +lbl_803B2154: +/* 803B2154 003AF0B4 38 00 00 01 */ li r0, 1 +/* 803B2158 003AF0B8 98 18 00 A8 */ stb r0, 0xa8(r24) +/* 803B215C 003AF0BC 48 00 00 1C */ b lbl_803B2178 +lbl_803B2160: +/* 803B2160 003AF0C0 38 A0 00 00 */ li r5, 0 +/* 803B2164 003AF0C4 48 00 00 14 */ b lbl_803B2178 +lbl_803B2168: +/* 803B2168 003AF0C8 7F 44 D3 78 */ mr r4, r26 +/* 803B216C 003AF0CC 7F 65 DB 78 */ mr r5, r27 +/* 803B2170 003AF0D0 4B FF F7 9D */ bl inpGetMidiCtrl +/* 803B2174 003AF0D4 54 65 04 3E */ clrlwi r5, r3, 0x10 +lbl_803B2178: +/* 803B2178 003AF0D8 80 1F 00 04 */ lwz r0, 4(r31) +/* 803B217C 003AF0DC 7C 00 0E 70 */ srawi r0, r0, 1 +/* 803B2180 003AF0E0 7C 05 01 D6 */ mullw r0, r5, r0 +/* 803B2184 003AF0E4 7C 03 7E 70 */ srawi r3, r0, 0xf +/* 803B2188 003AF0E8 2C 03 3F FF */ cmpwi r3, 0x3fff +/* 803B218C 003AF0EC 40 81 00 08 */ ble lbl_803B2194 +/* 803B2190 003AF0F0 38 60 3F FF */ li r3, 0x3fff +lbl_803B2194: +/* 803B2194 003AF0F4 88 1F 00 01 */ lbz r0, 1(r31) +/* 803B2198 003AF0F8 54 00 07 3E */ clrlwi r0, r0, 0x1c +/* 803B219C 003AF0FC 2C 00 00 02 */ cmpwi r0, 2 +/* 803B21A0 003AF100 41 82 00 84 */ beq lbl_803B2224 +/* 803B21A4 003AF104 40 80 00 14 */ bge lbl_803B21B8 +/* 803B21A8 003AF108 2C 00 00 00 */ cmpwi r0, 0 +/* 803B21AC 003AF10C 41 82 00 18 */ beq lbl_803B21C4 +/* 803B21B0 003AF110 40 80 00 20 */ bge lbl_803B21D0 +/* 803B21B4 003AF114 48 00 01 1C */ b lbl_803B22D0 +lbl_803B21B8: +/* 803B21B8 003AF118 2C 00 00 04 */ cmpwi r0, 4 +/* 803B21BC 003AF11C 40 80 01 14 */ bge lbl_803B22D0 +/* 803B21C0 003AF120 48 00 00 BC */ b lbl_803B227C +lbl_803B21C4: +/* 803B21C4 003AF124 7C 7E 1B 78 */ mr r30, r3 +/* 803B21C8 003AF128 3B 80 00 00 */ li r28, 0 +/* 803B21CC 003AF12C 48 00 01 04 */ b lbl_803B22D0 +lbl_803B21D0: +/* 803B21D0 003AF130 28 1C 00 00 */ cmplwi r28, 0 +/* 803B21D4 003AF134 41 82 00 34 */ beq lbl_803B2208 +/* 803B21D8 003AF138 7C 9E 1A 14 */ add r4, r30, r3 +/* 803B21DC 003AF13C 38 84 E0 00 */ addi r4, r4, -8192 +/* 803B21E0 003AF140 2C 04 E0 00 */ cmpwi r4, -8192 +/* 803B21E4 003AF144 40 80 00 0C */ bge lbl_803B21F0 +/* 803B21E8 003AF148 38 60 E0 00 */ li r3, -8192 +/* 803B21EC 003AF14C 48 00 00 14 */ b lbl_803B2200 +lbl_803B21F0: +/* 803B21F0 003AF150 2C 04 1F FF */ cmpwi r4, 0x1fff +/* 803B21F4 003AF154 38 60 1F FF */ li r3, 0x1fff +/* 803B21F8 003AF158 41 81 00 08 */ bgt lbl_803B2200 +/* 803B21FC 003AF15C 7C 83 23 78 */ mr r3, r4 +lbl_803B2200: +/* 803B2200 003AF160 3B C3 20 00 */ addi r30, r3, 0x2000 +/* 803B2204 003AF164 48 00 00 CC */ b lbl_803B22D0 +lbl_803B2208: +/* 803B2208 003AF168 7F DE 1A 14 */ add r30, r30, r3 +/* 803B220C 003AF16C 38 00 3F FF */ li r0, 0x3fff +/* 803B2210 003AF170 28 1E 3F FF */ cmplwi r30, 0x3fff +/* 803B2214 003AF174 41 81 00 08 */ bgt lbl_803B221C +/* 803B2218 003AF178 7F C0 F3 78 */ mr r0, r30 +lbl_803B221C: +/* 803B221C 003AF17C 7C 1E 03 78 */ mr r30, r0 +/* 803B2220 003AF180 48 00 00 B0 */ b lbl_803B22D0 +lbl_803B2224: +/* 803B2224 003AF184 28 1C 00 00 */ cmplwi r28, 0 +/* 803B2228 003AF188 41 82 00 38 */ beq lbl_803B2260 +/* 803B222C 003AF18C 38 1E E0 00 */ addi r0, r30, -8192 +/* 803B2230 003AF190 7C 03 01 D6 */ mullw r0, r3, r0 +/* 803B2234 003AF194 7C 00 76 70 */ srawi r0, r0, 0xe +/* 803B2238 003AF198 2C 00 E0 00 */ cmpwi r0, -8192 +/* 803B223C 003AF19C 40 80 00 0C */ bge lbl_803B2248 +/* 803B2240 003AF1A0 38 60 E0 00 */ li r3, -8192 +/* 803B2244 003AF1A4 48 00 00 14 */ b lbl_803B2258 +lbl_803B2248: +/* 803B2248 003AF1A8 2C 00 1F FF */ cmpwi r0, 0x1fff +/* 803B224C 003AF1AC 38 60 1F FF */ li r3, 0x1fff +/* 803B2250 003AF1B0 41 81 00 08 */ bgt lbl_803B2258 +/* 803B2254 003AF1B4 7C 03 03 78 */ mr r3, r0 +lbl_803B2258: +/* 803B2258 003AF1B8 3B C3 20 00 */ addi r30, r3, 0x2000 +/* 803B225C 003AF1BC 48 00 00 74 */ b lbl_803B22D0 +lbl_803B2260: +/* 803B2260 003AF1C0 7C 1E 19 D6 */ mullw r0, r30, r3 +/* 803B2264 003AF1C4 3B C0 3F FF */ li r30, 0x3fff +/* 803B2268 003AF1C8 54 00 93 BE */ srwi r0, r0, 0xe +/* 803B226C 003AF1CC 28 00 3F FF */ cmplwi r0, 0x3fff +/* 803B2270 003AF1D0 41 81 00 60 */ bgt lbl_803B22D0 +/* 803B2274 003AF1D4 7C 1E 03 78 */ mr r30, r0 +/* 803B2278 003AF1D8 48 00 00 58 */ b lbl_803B22D0 +lbl_803B227C: +/* 803B227C 003AF1DC 28 1C 00 00 */ cmplwi r28, 0 +/* 803B2280 003AF1E0 41 82 00 34 */ beq lbl_803B22B4 +/* 803B2284 003AF1E4 38 1E E0 00 */ addi r0, r30, -8192 +/* 803B2288 003AF1E8 7C 03 00 50 */ subf r0, r3, r0 +/* 803B228C 003AF1EC 2C 00 E0 00 */ cmpwi r0, -8192 +/* 803B2290 003AF1F0 40 80 00 0C */ bge lbl_803B229C +/* 803B2294 003AF1F4 38 60 E0 00 */ li r3, -8192 +/* 803B2298 003AF1F8 48 00 00 14 */ b lbl_803B22AC +lbl_803B229C: +/* 803B229C 003AF1FC 2C 00 1F FF */ cmpwi r0, 0x1fff +/* 803B22A0 003AF200 38 60 1F FF */ li r3, 0x1fff +/* 803B22A4 003AF204 41 81 00 08 */ bgt lbl_803B22AC +/* 803B22A8 003AF208 7C 03 03 78 */ mr r3, r0 +lbl_803B22AC: +/* 803B22AC 003AF20C 3B C3 20 00 */ addi r30, r3, 0x2000 +/* 803B22B0 003AF210 48 00 00 20 */ b lbl_803B22D0 +lbl_803B22B4: +/* 803B22B4 003AF214 7C 63 F0 50 */ subf r3, r3, r30 +/* 803B22B8 003AF218 2C 03 3F FF */ cmpwi r3, 0x3fff +/* 803B22BC 003AF21C 40 81 00 0C */ ble lbl_803B22C8 +/* 803B22C0 003AF220 3B C0 3F FF */ li r30, 0x3fff +/* 803B22C4 003AF224 48 00 00 0C */ b lbl_803B22D0 +lbl_803B22C8: +/* 803B22C8 003AF228 7C 60 FE 70 */ srawi r0, r3, 0x1f +/* 803B22CC 003AF22C 7C 7E 00 78 */ andc r30, r3, r0 +lbl_803B22D0: +/* 803B22D0 003AF230 3B FF 00 08 */ addi r31, r31, 8 +/* 803B22D4 003AF234 3B BD 00 01 */ addi r29, r29, 1 +lbl_803B22D8: +/* 803B22D8 003AF238 88 19 00 22 */ lbz r0, 0x22(r25) +/* 803B22DC 003AF23C 7C 1D 00 40 */ cmplw r29, r0 +/* 803B22E0 003AF240 41 80 FB B8 */ blt lbl_803B1E98 +/* 803B22E4 003AF244 B3 D9 00 20 */ sth r30, 0x20(r25) +/* 803B22E8 003AF248 57 C3 04 3E */ clrlwi r3, r30, 0x10 +/* 803B22EC 003AF24C 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B22F0 003AF250 4B FD 77 CD */ bl _restgpr_24 +/* 803B22F4 003AF254 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B22F8 003AF258 7C 08 03 A6 */ mtlr r0 +/* 803B22FC 003AF25C 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B2300 003AF260 4E 80 00 20 */ blr + +.global sub_803b2304 +sub_803b2304: +/* 803B2304 003AF264 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2308 003AF268 7C 08 02 A6 */ mflr r0 +/* 803B230C 003AF26C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2310 003AF270 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B2314 003AF274 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 803B2318 003AF278 40 82 00 0C */ bne lbl_803B2324 +/* 803B231C 003AF27C A0 63 02 38 */ lhz r3, 0x238(r3) +/* 803B2320 003AF280 48 00 00 1C */ b lbl_803B233C +lbl_803B2324: +/* 803B2324 003AF284 54 80 00 3C */ rlwinm r0, r4, 0, 0, 0x1e +/* 803B2328 003AF288 38 83 02 18 */ addi r4, r3, 0x218 +/* 803B232C 003AF28C 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2330 003AF290 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B2334 003AF294 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B2338 003AF298 4B FF FB 2D */ bl _GetInputValue +lbl_803B233C: +/* 803B233C 003AF29C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2340 003AF2A0 7C 08 03 A6 */ mtlr r0 +/* 803B2344 003AF2A4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2348 003AF2A8 4E 80 00 20 */ blr + +.global sub_803b234c +sub_803b234c: +/* 803B234C 003AF2AC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2350 003AF2B0 7C 08 02 A6 */ mflr r0 +/* 803B2354 003AF2B4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2358 003AF2B8 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B235C 003AF2BC 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e +/* 803B2360 003AF2C0 40 82 00 0C */ bne lbl_803B236C +/* 803B2364 003AF2C4 A0 63 02 5C */ lhz r3, 0x25c(r3) +/* 803B2368 003AF2C8 48 00 00 1C */ b lbl_803B2384 +lbl_803B236C: +/* 803B236C 003AF2CC 54 80 07 FA */ rlwinm r0, r4, 0, 0x1f, 0x1d +/* 803B2370 003AF2D0 38 83 02 3C */ addi r4, r3, 0x23c +/* 803B2374 003AF2D4 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2378 003AF2D8 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B237C 003AF2DC 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B2380 003AF2E0 4B FF FA E5 */ bl _GetInputValue +lbl_803B2384: +/* 803B2384 003AF2E4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2388 003AF2E8 7C 08 03 A6 */ mtlr r0 +/* 803B238C 003AF2EC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2390 003AF2F0 4E 80 00 20 */ blr + +.global sub_803b2394 +sub_803b2394: +/* 803B2394 003AF2F4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2398 003AF2F8 7C 08 02 A6 */ mflr r0 +/* 803B239C 003AF2FC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B23A0 003AF300 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B23A4 003AF304 54 80 07 7B */ rlwinm. r0, r4, 0, 0x1d, 0x1d +/* 803B23A8 003AF308 40 82 00 0C */ bne lbl_803B23B4 +/* 803B23AC 003AF30C A0 63 02 80 */ lhz r3, 0x280(r3) +/* 803B23B0 003AF310 48 00 00 1C */ b lbl_803B23CC +lbl_803B23B4: +/* 803B23B4 003AF314 54 80 07 B8 */ rlwinm r0, r4, 0, 0x1e, 0x1c +/* 803B23B8 003AF318 38 83 02 60 */ addi r4, r3, 0x260 +/* 803B23BC 003AF31C 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B23C0 003AF320 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B23C4 003AF324 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B23C8 003AF328 4B FF FA 9D */ bl _GetInputValue +lbl_803B23CC: +/* 803B23CC 003AF32C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B23D0 003AF330 7C 08 03 A6 */ mtlr r0 +/* 803B23D4 003AF334 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B23D8 003AF338 4E 80 00 20 */ blr + +.global sub_803b23dc +sub_803b23dc: +/* 803B23DC 003AF33C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B23E0 003AF340 7C 08 02 A6 */ mflr r0 +/* 803B23E4 003AF344 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B23E8 003AF348 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B23EC 003AF34C 54 80 07 39 */ rlwinm. r0, r4, 0, 0x1c, 0x1c +/* 803B23F0 003AF350 40 82 00 0C */ bne lbl_803B23FC +/* 803B23F4 003AF354 A0 63 02 A4 */ lhz r3, 0x2a4(r3) +/* 803B23F8 003AF358 48 00 00 1C */ b lbl_803B2414 +lbl_803B23FC: +/* 803B23FC 003AF35C 54 80 07 76 */ rlwinm r0, r4, 0, 0x1d, 0x1b +/* 803B2400 003AF360 38 83 02 84 */ addi r4, r3, 0x284 +/* 803B2404 003AF364 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2408 003AF368 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B240C 003AF36C 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B2410 003AF370 4B FF FA 55 */ bl _GetInputValue +lbl_803B2414: +/* 803B2414 003AF374 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2418 003AF378 7C 08 03 A6 */ mtlr r0 +/* 803B241C 003AF37C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2420 003AF380 4E 80 00 20 */ blr + +.global sub_803b2424 +sub_803b2424: +/* 803B2424 003AF384 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2428 003AF388 7C 08 02 A6 */ mflr r0 +/* 803B242C 003AF38C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2430 003AF390 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B2434 003AF394 54 80 06 F7 */ rlwinm. r0, r4, 0, 0x1b, 0x1b +/* 803B2438 003AF398 40 82 00 0C */ bne lbl_803B2444 +/* 803B243C 003AF39C A0 63 02 C8 */ lhz r3, 0x2c8(r3) +/* 803B2440 003AF3A0 48 00 00 1C */ b lbl_803B245C +lbl_803B2444: +/* 803B2444 003AF3A4 54 80 07 34 */ rlwinm r0, r4, 0, 0x1c, 0x1a +/* 803B2448 003AF3A8 38 83 02 A8 */ addi r4, r3, 0x2a8 +/* 803B244C 003AF3AC 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2450 003AF3B0 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B2454 003AF3B4 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B2458 003AF3B8 4B FF FA 0D */ bl _GetInputValue +lbl_803B245C: +/* 803B245C 003AF3BC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2460 003AF3C0 7C 08 03 A6 */ mtlr r0 +/* 803B2464 003AF3C4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2468 003AF3C8 4E 80 00 20 */ blr + +.global sub_803b246c +sub_803b246c: +/* 803B246C 003AF3CC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2470 003AF3D0 7C 08 02 A6 */ mflr r0 +/* 803B2474 003AF3D4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2478 003AF3D8 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B247C 003AF3DC 54 80 06 B5 */ rlwinm. r0, r4, 0, 0x1a, 0x1a +/* 803B2480 003AF3E0 40 82 00 0C */ bne lbl_803B248C +/* 803B2484 003AF3E4 A0 63 02 EC */ lhz r3, 0x2ec(r3) +/* 803B2488 003AF3E8 48 00 00 1C */ b lbl_803B24A4 +lbl_803B248C: +/* 803B248C 003AF3EC 54 80 06 F2 */ rlwinm r0, r4, 0, 0x1b, 0x19 +/* 803B2490 003AF3F0 38 83 02 CC */ addi r4, r3, 0x2cc +/* 803B2494 003AF3F4 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2498 003AF3F8 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B249C 003AF3FC 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B24A0 003AF400 4B FF F9 C5 */ bl _GetInputValue +lbl_803B24A4: +/* 803B24A4 003AF404 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B24A8 003AF408 7C 08 03 A6 */ mtlr r0 +/* 803B24AC 003AF40C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B24B0 003AF410 4E 80 00 20 */ blr + +.global inpGetVolume +inpGetVolume: +/* 803B24B4 003AF414 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B24B8 003AF418 7C 08 02 A6 */ mflr r0 +/* 803B24BC 003AF41C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B24C0 003AF420 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B24C4 003AF424 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 +/* 803B24C8 003AF428 40 82 00 0C */ bne lbl_803B24D4 +/* 803B24CC 003AF42C A0 63 03 10 */ lhz r3, 0x310(r3) +/* 803B24D0 003AF430 48 00 00 1C */ b lbl_803B24EC +lbl_803B24D4: +/* 803B24D4 003AF434 54 80 06 B0 */ rlwinm r0, r4, 0, 0x1a, 0x18 +/* 803B24D8 003AF438 38 83 02 F0 */ addi r4, r3, 0x2f0 +/* 803B24DC 003AF43C 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B24E0 003AF440 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B24E4 003AF444 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B24E8 003AF448 4B FF F9 7D */ bl _GetInputValue +lbl_803B24EC: +/* 803B24EC 003AF44C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B24F0 003AF450 7C 08 03 A6 */ mtlr r0 +/* 803B24F4 003AF454 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B24F8 003AF458 4E 80 00 20 */ blr + +.global sub_803b24fc +sub_803b24fc: +/* 803B24FC 003AF45C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2500 003AF460 7C 08 02 A6 */ mflr r0 +/* 803B2504 003AF464 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2508 003AF468 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B250C 003AF46C 54 80 05 EF */ rlwinm. r0, r4, 0, 0x17, 0x17 +/* 803B2510 003AF470 40 82 00 0C */ bne lbl_803B251C +/* 803B2514 003AF474 A0 63 03 58 */ lhz r3, 0x358(r3) +/* 803B2518 003AF478 48 00 00 1C */ b lbl_803B2534 +lbl_803B251C: +/* 803B251C 003AF47C 54 80 06 2C */ rlwinm r0, r4, 0, 0x18, 0x16 +/* 803B2520 003AF480 38 83 03 38 */ addi r4, r3, 0x338 +/* 803B2524 003AF484 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2528 003AF488 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B252C 003AF48C 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B2530 003AF490 4B FF F9 35 */ bl _GetInputValue +lbl_803B2534: +/* 803B2534 003AF494 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2538 003AF498 7C 08 03 A6 */ mtlr r0 +/* 803B253C 003AF49C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2540 003AF4A0 4E 80 00 20 */ blr + +.global sub_803b2544 +sub_803b2544: +/* 803B2544 003AF4A4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2548 003AF4A8 7C 08 02 A6 */ mflr r0 +/* 803B254C 003AF4AC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2550 003AF4B0 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B2554 003AF4B4 54 80 05 AD */ rlwinm. r0, r4, 0, 0x16, 0x16 +/* 803B2558 003AF4B8 40 82 00 0C */ bne lbl_803B2564 +/* 803B255C 003AF4BC A0 63 03 7C */ lhz r3, 0x37c(r3) +/* 803B2560 003AF4C0 48 00 00 1C */ b lbl_803B257C +lbl_803B2564: +/* 803B2564 003AF4C4 54 80 05 EA */ rlwinm r0, r4, 0, 0x17, 0x15 +/* 803B2568 003AF4C8 38 83 03 5C */ addi r4, r3, 0x35c +/* 803B256C 003AF4CC 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2570 003AF4D0 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B2574 003AF4D4 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B2578 003AF4D8 4B FF F8 ED */ bl _GetInputValue +lbl_803B257C: +/* 803B257C 003AF4DC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2580 003AF4E0 7C 08 03 A6 */ mtlr r0 +/* 803B2584 003AF4E4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2588 003AF4E8 4E 80 00 20 */ blr + +.global sub_803b258c +sub_803b258c: +/* 803B258C 003AF4EC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2590 003AF4F0 7C 08 02 A6 */ mflr r0 +/* 803B2594 003AF4F4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2598 003AF4F8 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B259C 003AF4FC 54 80 05 6B */ rlwinm. r0, r4, 0, 0x15, 0x15 +/* 803B25A0 003AF500 40 82 00 0C */ bne lbl_803B25AC +/* 803B25A4 003AF504 A0 63 03 A0 */ lhz r3, 0x3a0(r3) +/* 803B25A8 003AF508 48 00 00 1C */ b lbl_803B25C4 +lbl_803B25AC: +/* 803B25AC 003AF50C 54 80 05 A8 */ rlwinm r0, r4, 0, 0x16, 0x14 +/* 803B25B0 003AF510 38 83 03 80 */ addi r4, r3, 0x380 +/* 803B25B4 003AF514 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B25B8 003AF518 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B25BC 003AF51C 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B25C0 003AF520 4B FF F8 A5 */ bl _GetInputValue +lbl_803B25C4: +/* 803B25C4 003AF524 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B25C8 003AF528 7C 08 03 A6 */ mtlr r0 +/* 803B25CC 003AF52C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B25D0 003AF530 4E 80 00 20 */ blr + +.global sub_803b25d4 +sub_803b25d4: +/* 803B25D4 003AF534 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B25D8 003AF538 7C 08 02 A6 */ mflr r0 +/* 803B25DC 003AF53C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B25E0 003AF540 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B25E4 003AF544 54 80 05 29 */ rlwinm. r0, r4, 0, 0x14, 0x14 +/* 803B25E8 003AF548 40 82 00 0C */ bne lbl_803B25F4 +/* 803B25EC 003AF54C A0 63 03 C4 */ lhz r3, 0x3c4(r3) +/* 803B25F0 003AF550 48 00 00 1C */ b lbl_803B260C +lbl_803B25F4: +/* 803B25F4 003AF554 54 80 05 66 */ rlwinm r0, r4, 0, 0x15, 0x13 +/* 803B25F8 003AF558 38 83 03 A4 */ addi r4, r3, 0x3a4 +/* 803B25FC 003AF55C 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2600 003AF560 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B2604 003AF564 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B2608 003AF568 4B FF F8 5D */ bl _GetInputValue +lbl_803B260C: +/* 803B260C 003AF56C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2610 003AF570 7C 08 03 A6 */ mtlr r0 +/* 803B2614 003AF574 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2618 003AF578 4E 80 00 20 */ blr + +.global sub_803b261c +sub_803b261c: +/* 803B261C 003AF57C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2620 003AF580 7C 08 02 A6 */ mflr r0 +/* 803B2624 003AF584 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2628 003AF588 80 83 02 14 */ lwz r4, 0x214(r3) +/* 803B262C 003AF58C 54 80 04 E7 */ rlwinm. r0, r4, 0, 0x13, 0x13 +/* 803B2630 003AF590 40 82 00 0C */ bne lbl_803B263C +/* 803B2634 003AF594 A0 63 03 E8 */ lhz r3, 0x3e8(r3) +/* 803B2638 003AF598 48 00 00 1C */ b lbl_803B2654 +lbl_803B263C: +/* 803B263C 003AF59C 54 80 05 24 */ rlwinm r0, r4, 0, 0x14, 0x12 +/* 803B2640 003AF5A0 38 83 03 C8 */ addi r4, r3, 0x3c8 +/* 803B2644 003AF5A4 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B2648 003AF5A8 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803B264C 003AF5AC 88 C3 01 22 */ lbz r6, 0x122(r3) +/* 803B2650 003AF5B0 4B FF F8 15 */ bl _GetInputValue +lbl_803B2654: +/* 803B2654 003AF5B4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2658 003AF5B8 7C 08 03 A6 */ mtlr r0 +/* 803B265C 003AF5BC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2660 003AF5C0 4E 80 00 20 */ blr + +.global sub_803b2664 +sub_803b2664: +/* 803B2664 003AF5C4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2668 003AF5C8 7C 08 02 A6 */ mflr r0 +/* 803B266C 003AF5CC 3C E0 80 56 */ lis r7, lbl_80560790@ha +/* 803B2670 003AF5D0 3D 20 80 3F */ lis r9, lbl_803F41E8@ha +/* 803B2674 003AF5D4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2678 003AF5D8 38 07 07 90 */ addi r0, r7, lbl_80560790@l +/* 803B267C 003AF5DC 54 C8 34 B2 */ rlwinm r8, r6, 6, 0x12, 0x19 +/* 803B2680 003AF5E0 38 E9 41 E8 */ addi r7, r9, lbl_803F41E8@l +/* 803B2684 003AF5E4 54 8A 15 BA */ rlwinm r10, r4, 2, 0x16, 0x1d +/* 803B2688 003AF5E8 54 8B 06 3E */ clrlwi r11, r4, 0x18 +/* 803B268C 003AF5EC 7D 20 42 14 */ add r9, r0, r8 +/* 803B2690 003AF5F0 54 A8 15 BA */ rlwinm r8, r5, 2, 0x16, 0x1d +/* 803B2694 003AF5F4 7D 47 50 2E */ lwzx r10, r7, r10 +/* 803B2698 003AF5F8 7C E9 40 2E */ lwzx r7, r9, r8 +/* 803B269C 003AF5FC 7D 44 38 38 */ and r4, r10, r7 +/* 803B26A0 003AF600 7C 04 00 D0 */ neg r0, r4 +/* 803B26A4 003AF604 7C 00 23 78 */ or r0, r0, r4 +/* 803B26A8 003AF608 54 04 0F FF */ rlwinm. r4, r0, 1, 0x1f, 0x1f +/* 803B26AC 003AF60C 41 82 00 0C */ beq lbl_803B26B8 +/* 803B26B0 003AF610 7C E0 50 78 */ andc r0, r7, r10 +/* 803B26B4 003AF614 7C 09 41 2E */ stwx r0, r9, r8 +lbl_803B26B8: +/* 803B26B8 003AF618 28 04 00 00 */ cmplwi r4, 0 +/* 803B26BC 003AF61C 41 82 00 2C */ beq lbl_803B26E8 +/* 803B26C0 003AF620 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B26C4 003AF624 3C 60 80 55 */ lis r3, lbl_80550F74@ha +/* 803B26C8 003AF628 1C E0 00 90 */ mulli r7, r0, 0x90 +/* 803B26CC 003AF62C 38 83 0F 74 */ addi r4, r3, lbl_80550F74@l +/* 803B26D0 003AF630 38 60 00 00 */ li r3, 0 +/* 803B26D4 003AF634 1C 0B 00 24 */ mulli r0, r11, 0x24 +/* 803B26D8 003AF638 7C 84 3A 14 */ add r4, r4, r7 +/* 803B26DC 003AF63C 7C 84 02 14 */ add r4, r4, r0 +/* 803B26E0 003AF640 4B FF F7 85 */ bl _GetInputValue +/* 803B26E4 003AF644 48 00 00 24 */ b lbl_803B2708 +lbl_803B26E8: +/* 803B26E8 003AF648 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B26EC 003AF64C 3C 80 80 55 */ lis r4, lbl_80550F74@ha +/* 803B26F0 003AF650 1C 60 00 90 */ mulli r3, r0, 0x90 +/* 803B26F4 003AF654 38 84 0F 74 */ addi r4, r4, lbl_80550F74@l +/* 803B26F8 003AF658 1C 0B 00 24 */ mulli r0, r11, 0x24 +/* 803B26FC 003AF65C 7C 64 1A 14 */ add r3, r4, r3 +/* 803B2700 003AF660 7C 63 02 14 */ add r3, r3, r0 +/* 803B2704 003AF664 A0 63 00 20 */ lhz r3, 0x20(r3) +lbl_803B2708: +/* 803B2708 003AF668 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B270C 003AF66C 7C 08 03 A6 */ mtlr r0 +/* 803B2710 003AF670 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2714 003AF674 4E 80 00 20 */ blr + +.global inpGetAuxA +inpGetAuxA: +/* 803B2718 003AF678 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B271C 003AF67C 7C 08 02 A6 */ mflr r0 +/* 803B2720 003AF680 3C E0 80 56 */ lis r7, lbl_80560790@ha +/* 803B2724 003AF684 3D 20 80 3F */ lis r9, lbl_803F41F8@ha +/* 803B2728 003AF688 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B272C 003AF68C 38 07 07 90 */ addi r0, r7, lbl_80560790@l +/* 803B2730 003AF690 54 C8 34 B2 */ rlwinm r8, r6, 6, 0x12, 0x19 +/* 803B2734 003AF694 38 E9 41 F8 */ addi r7, r9, lbl_803F41F8@l +/* 803B2738 003AF698 54 8A 15 BA */ rlwinm r10, r4, 2, 0x16, 0x1d +/* 803B273C 003AF69C 54 8B 06 3E */ clrlwi r11, r4, 0x18 +/* 803B2740 003AF6A0 7D 20 42 14 */ add r9, r0, r8 +/* 803B2744 003AF6A4 54 A8 15 BA */ rlwinm r8, r5, 2, 0x16, 0x1d +/* 803B2748 003AF6A8 7D 47 50 2E */ lwzx r10, r7, r10 +/* 803B274C 003AF6AC 7C E9 40 2E */ lwzx r7, r9, r8 +/* 803B2750 003AF6B0 7D 44 38 38 */ and r4, r10, r7 +/* 803B2754 003AF6B4 7C 04 00 D0 */ neg r0, r4 +/* 803B2758 003AF6B8 7C 00 23 78 */ or r0, r0, r4 +/* 803B275C 003AF6BC 54 04 0F FF */ rlwinm. r4, r0, 1, 0x1f, 0x1f +/* 803B2760 003AF6C0 41 82 00 0C */ beq lbl_803B276C +/* 803B2764 003AF6C4 7C E0 50 78 */ andc r0, r7, r10 +/* 803B2768 003AF6C8 7C 09 41 2E */ stwx r0, r9, r8 +lbl_803B276C: +/* 803B276C 003AF6CC 28 04 00 00 */ cmplwi r4, 0 +/* 803B2770 003AF6D0 41 82 00 2C */ beq lbl_803B279C +/* 803B2774 003AF6D4 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B2778 003AF6D8 3C 60 80 55 */ lis r3, lbl_80550AF4@ha +/* 803B277C 003AF6DC 1C E0 00 90 */ mulli r7, r0, 0x90 +/* 803B2780 003AF6E0 38 83 0A F4 */ addi r4, r3, lbl_80550AF4@l +/* 803B2784 003AF6E4 38 60 00 00 */ li r3, 0 +/* 803B2788 003AF6E8 1C 0B 00 24 */ mulli r0, r11, 0x24 +/* 803B278C 003AF6EC 7C 84 3A 14 */ add r4, r4, r7 +/* 803B2790 003AF6F0 7C 84 02 14 */ add r4, r4, r0 +/* 803B2794 003AF6F4 4B FF F6 D1 */ bl _GetInputValue +/* 803B2798 003AF6F8 48 00 00 24 */ b lbl_803B27BC +lbl_803B279C: +/* 803B279C 003AF6FC 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803B27A0 003AF700 3C 80 80 55 */ lis r4, lbl_80550AF4@ha +/* 803B27A4 003AF704 1C 60 00 90 */ mulli r3, r0, 0x90 +/* 803B27A8 003AF708 38 84 0A F4 */ addi r4, r4, lbl_80550AF4@l +/* 803B27AC 003AF70C 1C 0B 00 24 */ mulli r0, r11, 0x24 +/* 803B27B0 003AF710 7C 64 1A 14 */ add r3, r4, r3 +/* 803B27B4 003AF714 7C 63 02 14 */ add r3, r3, r0 +/* 803B27B8 003AF718 A0 63 00 20 */ lhz r3, 0x20(r3) +lbl_803B27BC: +/* 803B27BC 003AF71C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B27C0 003AF720 7C 08 03 A6 */ mtlr r0 +/* 803B27C4 003AF724 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B27C8 003AF728 4E 80 00 20 */ blr + +.global sub_803b27cc +sub_803b27cc: +/* 803B27CC 003AF72C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B27D0 003AF730 28 03 00 00 */ cmplwi r3, 0 +/* 803B27D4 003AF734 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B27D8 003AF738 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B27DC 003AF73C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B27E0 003AF740 41 82 01 0C */ beq lbl_803B28EC +/* 803B27E4 003AF744 38 00 00 07 */ li r0, 7 +/* 803B27E8 003AF748 3B A0 00 00 */ li r29, 0 +/* 803B27EC 003AF74C 98 03 02 18 */ stb r0, 0x218(r3) +/* 803B27F0 003AF750 3F C0 00 01 */ lis r30, 1 +/* 803B27F4 003AF754 38 00 00 0B */ li r0, 0xb +/* 803B27F8 003AF758 3B E0 00 02 */ li r31, 2 +/* 803B27FC 003AF75C 9B A3 02 19 */ stb r29, 0x219(r3) +/* 803B2800 003AF760 39 80 00 0A */ li r12, 0xa +/* 803B2804 003AF764 39 60 00 01 */ li r11, 1 +/* 803B2808 003AF768 39 40 00 83 */ li r10, 0x83 +/* 803B280C 003AF76C 93 C3 02 1C */ stw r30, 0x21c(r3) +/* 803B2810 003AF770 39 20 00 80 */ li r9, 0x80 +/* 803B2814 003AF774 39 00 00 40 */ li r8, 0x40 +/* 803B2818 003AF778 38 E0 00 41 */ li r7, 0x41 +/* 803B281C 003AF77C 98 03 02 20 */ stb r0, 0x220(r3) +/* 803B2820 003AF780 38 C0 00 5B */ li r6, 0x5b +/* 803B2824 003AF784 38 A0 00 5D */ li r5, 0x5d +/* 803B2828 003AF788 38 80 00 84 */ li r4, 0x84 +/* 803B282C 003AF78C 9B E3 02 21 */ stb r31, 0x221(r3) +/* 803B2830 003AF790 38 00 1F FF */ li r0, 0x1fff +/* 803B2834 003AF794 93 C3 02 24 */ stw r30, 0x224(r3) +/* 803B2838 003AF798 9B E3 02 3A */ stb r31, 0x23a(r3) +/* 803B283C 003AF79C 99 83 02 3C */ stb r12, 0x23c(r3) +/* 803B2840 003AF7A0 9B A3 02 3D */ stb r29, 0x23d(r3) +/* 803B2844 003AF7A4 93 C3 02 40 */ stw r30, 0x240(r3) +/* 803B2848 003AF7A8 99 63 02 5E */ stb r11, 0x25e(r3) +/* 803B284C 003AF7AC 99 43 02 60 */ stb r10, 0x260(r3) +/* 803B2850 003AF7B0 9B A3 02 61 */ stb r29, 0x261(r3) +/* 803B2854 003AF7B4 93 C3 02 64 */ stw r30, 0x264(r3) +/* 803B2858 003AF7B8 99 63 02 82 */ stb r11, 0x282(r3) +/* 803B285C 003AF7BC 99 23 02 84 */ stb r9, 0x284(r3) +/* 803B2860 003AF7C0 9B A3 02 85 */ stb r29, 0x285(r3) +/* 803B2864 003AF7C4 93 C3 02 88 */ stw r30, 0x288(r3) +/* 803B2868 003AF7C8 99 63 02 A6 */ stb r11, 0x2a6(r3) +/* 803B286C 003AF7CC 99 63 02 CC */ stb r11, 0x2cc(r3) +/* 803B2870 003AF7D0 9B A3 02 CD */ stb r29, 0x2cd(r3) +/* 803B2874 003AF7D4 93 C3 02 D0 */ stw r30, 0x2d0(r3) +/* 803B2878 003AF7D8 99 63 02 EE */ stb r11, 0x2ee(r3) +/* 803B287C 003AF7DC 99 03 02 F0 */ stb r8, 0x2f0(r3) +/* 803B2880 003AF7E0 9B A3 02 F1 */ stb r29, 0x2f1(r3) +/* 803B2884 003AF7E4 93 C3 02 F4 */ stw r30, 0x2f4(r3) +/* 803B2888 003AF7E8 99 63 03 12 */ stb r11, 0x312(r3) +/* 803B288C 003AF7EC 98 E3 03 14 */ stb r7, 0x314(r3) +/* 803B2890 003AF7F0 9B A3 03 15 */ stb r29, 0x315(r3) +/* 803B2894 003AF7F4 93 C3 03 18 */ stw r30, 0x318(r3) +/* 803B2898 003AF7F8 99 63 03 36 */ stb r11, 0x336(r3) +/* 803B289C 003AF7FC 9B A3 03 5A */ stb r29, 0x35a(r3) +/* 803B28A0 003AF800 98 C3 03 5C */ stb r6, 0x35c(r3) +/* 803B28A4 003AF804 9B A3 03 5D */ stb r29, 0x35d(r3) +/* 803B28A8 003AF808 93 C3 03 60 */ stw r30, 0x360(r3) +/* 803B28AC 003AF80C 99 63 03 7E */ stb r11, 0x37e(r3) +/* 803B28B0 003AF810 9B A3 03 A2 */ stb r29, 0x3a2(r3) +/* 803B28B4 003AF814 98 A3 03 A4 */ stb r5, 0x3a4(r3) +/* 803B28B8 003AF818 9B A3 03 A5 */ stb r29, 0x3a5(r3) +/* 803B28BC 003AF81C 93 C3 03 A8 */ stw r30, 0x3a8(r3) +/* 803B28C0 003AF820 99 63 03 C6 */ stb r11, 0x3c6(r3) +/* 803B28C4 003AF824 98 83 02 A8 */ stb r4, 0x2a8(r3) +/* 803B28C8 003AF828 9B A3 02 A9 */ stb r29, 0x2a9(r3) +/* 803B28CC 003AF82C 93 C3 02 AC */ stw r30, 0x2ac(r3) +/* 803B28D0 003AF830 99 63 02 CA */ stb r11, 0x2ca(r3) +/* 803B28D4 003AF834 9B A3 03 EA */ stb r29, 0x3ea(r3) +/* 803B28D8 003AF838 90 03 02 14 */ stw r0, 0x214(r3) +/* 803B28DC 003AF83C 9B A3 01 D4 */ stb r29, 0x1d4(r3) +/* 803B28E0 003AF840 9B A3 01 D5 */ stb r29, 0x1d5(r3) +/* 803B28E4 003AF844 9B A3 00 A8 */ stb r29, 0xa8(r3) +/* 803B28E8 003AF848 48 00 01 54 */ b lbl_803B2A3C +lbl_803B28EC: +/* 803B28EC 003AF84C 3C 80 80 55 */ lis r4, lbl_80550F74@ha +/* 803B28F0 003AF850 3C 60 80 55 */ lis r3, lbl_80550AF4@ha +/* 803B28F4 003AF854 38 A3 0A F4 */ addi r5, r3, lbl_80550AF4@l +/* 803B28F8 003AF858 38 00 00 02 */ li r0, 2 +/* 803B28FC 003AF85C 38 84 0F 74 */ addi r4, r4, lbl_80550F74@l +/* 803B2900 003AF860 38 60 00 00 */ li r3, 0 +/* 803B2904 003AF864 7C 09 03 A6 */ mtctr r0 +lbl_803B2908: +/* 803B2908 003AF868 98 64 00 22 */ stb r3, 0x22(r4) +/* 803B290C 003AF86C 98 65 00 22 */ stb r3, 0x22(r5) +/* 803B2910 003AF870 98 64 00 46 */ stb r3, 0x46(r4) +/* 803B2914 003AF874 98 65 00 46 */ stb r3, 0x46(r5) +/* 803B2918 003AF878 98 64 00 6A */ stb r3, 0x6a(r4) +/* 803B291C 003AF87C 98 65 00 6A */ stb r3, 0x6a(r5) +/* 803B2920 003AF880 98 64 00 8E */ stb r3, 0x8e(r4) +/* 803B2924 003AF884 98 65 00 8E */ stb r3, 0x8e(r5) +/* 803B2928 003AF888 98 64 00 B2 */ stb r3, 0xb2(r4) +/* 803B292C 003AF88C 98 65 00 B2 */ stb r3, 0xb2(r5) +/* 803B2930 003AF890 98 64 00 D6 */ stb r3, 0xd6(r4) +/* 803B2934 003AF894 98 65 00 D6 */ stb r3, 0xd6(r5) +/* 803B2938 003AF898 98 64 00 FA */ stb r3, 0xfa(r4) +/* 803B293C 003AF89C 98 65 00 FA */ stb r3, 0xfa(r5) +/* 803B2940 003AF8A0 98 64 01 1E */ stb r3, 0x11e(r4) +/* 803B2944 003AF8A4 98 65 01 1E */ stb r3, 0x11e(r5) +/* 803B2948 003AF8A8 98 64 01 42 */ stb r3, 0x142(r4) +/* 803B294C 003AF8AC 98 65 01 42 */ stb r3, 0x142(r5) +/* 803B2950 003AF8B0 98 64 01 66 */ stb r3, 0x166(r4) +/* 803B2954 003AF8B4 98 65 01 66 */ stb r3, 0x166(r5) +/* 803B2958 003AF8B8 98 64 01 8A */ stb r3, 0x18a(r4) +/* 803B295C 003AF8BC 98 65 01 8A */ stb r3, 0x18a(r5) +/* 803B2960 003AF8C0 98 64 01 AE */ stb r3, 0x1ae(r4) +/* 803B2964 003AF8C4 98 65 01 AE */ stb r3, 0x1ae(r5) +/* 803B2968 003AF8C8 98 64 01 D2 */ stb r3, 0x1d2(r4) +/* 803B296C 003AF8CC 98 65 01 D2 */ stb r3, 0x1d2(r5) +/* 803B2970 003AF8D0 98 64 01 F6 */ stb r3, 0x1f6(r4) +/* 803B2974 003AF8D4 98 65 01 F6 */ stb r3, 0x1f6(r5) +/* 803B2978 003AF8D8 98 64 02 1A */ stb r3, 0x21a(r4) +/* 803B297C 003AF8DC 98 65 02 1A */ stb r3, 0x21a(r5) +/* 803B2980 003AF8E0 98 64 02 3E */ stb r3, 0x23e(r4) +/* 803B2984 003AF8E4 38 84 02 40 */ addi r4, r4, 0x240 +/* 803B2988 003AF8E8 98 65 02 3E */ stb r3, 0x23e(r5) +/* 803B298C 003AF8EC 38 A5 02 40 */ addi r5, r5, 0x240 +/* 803B2990 003AF8F0 42 00 FF 78 */ bdnz lbl_803B2908 +/* 803B2994 003AF8F4 3C 60 80 56 */ lis r3, lbl_80560790@ha +/* 803B2998 003AF8F8 38 00 00 04 */ li r0, 4 +/* 803B299C 003AF8FC 38 A3 07 90 */ addi r5, r3, lbl_80560790@l +/* 803B29A0 003AF900 38 60 00 00 */ li r3, 0 +/* 803B29A4 003AF904 7C 09 03 A6 */ mtctr r0 +lbl_803B29A8: +/* 803B29A8 003AF908 38 00 00 FF */ li r0, 0xff +/* 803B29AC 003AF90C 90 05 00 00 */ stw r0, 0(r5) +/* 803B29B0 003AF910 90 05 00 04 */ stw r0, 4(r5) +/* 803B29B4 003AF914 90 05 00 08 */ stw r0, 8(r5) +/* 803B29B8 003AF918 90 05 00 0C */ stw r0, 0xc(r5) +/* 803B29BC 003AF91C 90 05 00 10 */ stw r0, 0x10(r5) +/* 803B29C0 003AF920 90 05 00 14 */ stw r0, 0x14(r5) +/* 803B29C4 003AF924 90 05 00 18 */ stw r0, 0x18(r5) +/* 803B29C8 003AF928 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803B29CC 003AF92C 90 05 00 20 */ stw r0, 0x20(r5) +/* 803B29D0 003AF930 90 05 00 24 */ stw r0, 0x24(r5) +/* 803B29D4 003AF934 90 05 00 28 */ stw r0, 0x28(r5) +/* 803B29D8 003AF938 90 05 00 2C */ stw r0, 0x2c(r5) +/* 803B29DC 003AF93C 90 05 00 30 */ stw r0, 0x30(r5) +/* 803B29E0 003AF940 90 05 00 34 */ stw r0, 0x34(r5) +/* 803B29E4 003AF944 90 05 00 38 */ stw r0, 0x38(r5) +/* 803B29E8 003AF948 90 05 00 3C */ stw r0, 0x3c(r5) +/* 803B29EC 003AF94C 38 A5 00 40 */ addi r5, r5, 0x40 +/* 803B29F0 003AF950 90 05 00 00 */ stw r0, 0(r5) +/* 803B29F4 003AF954 38 63 00 01 */ addi r3, r3, 1 +/* 803B29F8 003AF958 90 05 00 04 */ stw r0, 4(r5) +/* 803B29FC 003AF95C 90 05 00 08 */ stw r0, 8(r5) +/* 803B2A00 003AF960 90 05 00 0C */ stw r0, 0xc(r5) +/* 803B2A04 003AF964 90 05 00 10 */ stw r0, 0x10(r5) +/* 803B2A08 003AF968 90 05 00 14 */ stw r0, 0x14(r5) +/* 803B2A0C 003AF96C 90 05 00 18 */ stw r0, 0x18(r5) +/* 803B2A10 003AF970 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803B2A14 003AF974 90 05 00 20 */ stw r0, 0x20(r5) +/* 803B2A18 003AF978 90 05 00 24 */ stw r0, 0x24(r5) +/* 803B2A1C 003AF97C 90 05 00 28 */ stw r0, 0x28(r5) +/* 803B2A20 003AF980 90 05 00 2C */ stw r0, 0x2c(r5) +/* 803B2A24 003AF984 90 05 00 30 */ stw r0, 0x30(r5) +/* 803B2A28 003AF988 90 05 00 34 */ stw r0, 0x34(r5) +/* 803B2A2C 003AF98C 90 05 00 38 */ stw r0, 0x38(r5) +/* 803B2A30 003AF990 90 05 00 3C */ stw r0, 0x3c(r5) +/* 803B2A34 003AF994 38 A5 00 40 */ addi r5, r5, 0x40 +/* 803B2A38 003AF998 42 00 FF 70 */ bdnz lbl_803B29A8 +lbl_803B2A3C: +/* 803B2A3C 003AF99C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B2A40 003AF9A0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B2A44 003AF9A4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B2A48 003AF9A8 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B2A4C 003AF9AC 4E 80 00 20 */ blr + +.global inpTranslateExCtrl +inpTranslateExCtrl: +/* 803B2A50 003AF9B0 54 64 06 3E */ clrlwi r4, r3, 0x18 +/* 803B2A54 003AF9B4 38 04 FF 80 */ addi r0, r4, -128 +/* 803B2A58 003AF9B8 28 00 00 08 */ cmplwi r0, 8 +/* 803B2A5C 003AF9BC 4D 81 00 20 */ bgtlr +/* 803B2A60 003AF9C0 3C 80 80 3F */ lis r4, lbl_803F4208@ha +/* 803B2A64 003AF9C4 54 00 10 3A */ slwi r0, r0, 2 +/* 803B2A68 003AF9C8 38 84 42 08 */ addi r4, r4, lbl_803F4208@l +/* 803B2A6C 003AF9CC 7C 04 00 2E */ lwzx r0, r4, r0 +/* 803B2A70 003AF9D0 7C 09 03 A6 */ mtctr r0 +/* 803B2A74 003AF9D4 4E 80 04 20 */ bctr +/* 803B2A78 003AF9D8 38 60 00 80 */ li r3, 0x80 +/* 803B2A7C 003AF9DC 4E 80 00 20 */ blr +/* 803B2A80 003AF9E0 38 60 00 82 */ li r3, 0x82 +/* 803B2A84 003AF9E4 4E 80 00 20 */ blr +/* 803B2A88 003AF9E8 38 60 00 A0 */ li r3, 0xa0 +/* 803B2A8C 003AF9EC 4E 80 00 20 */ blr +/* 803B2A90 003AF9F0 38 60 00 A1 */ li r3, 0xa1 +/* 803B2A94 003AF9F4 4E 80 00 20 */ blr +/* 803B2A98 003AF9F8 38 60 00 83 */ li r3, 0x83 +/* 803B2A9C 003AF9FC 4E 80 00 20 */ blr +/* 803B2AA0 003AFA00 38 60 00 84 */ li r3, 0x84 +/* 803B2AA4 003AFA04 4E 80 00 20 */ blr +/* 803B2AA8 003AFA08 38 60 00 A2 */ li r3, 0xa2 +/* 803B2AAC 003AFA0C 4E 80 00 20 */ blr +/* 803B2AB0 003AFA10 38 60 00 A3 */ li r3, 0xa3 +/* 803B2AB4 003AFA14 4E 80 00 20 */ blr +/* 803B2AB8 003AFA18 38 60 00 A4 */ li r3, 0xa4 +/* 803B2ABC 003AFA1C 4E 80 00 20 */ blr + +.global inpGetExCtrl +inpGetExCtrl: +/* 803B2AC0 003AFA20 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2AC4 003AFA24 7C 08 02 A6 */ mflr r0 +/* 803B2AC8 003AFA28 54 85 06 3E */ clrlwi r5, r4, 0x18 +/* 803B2ACC 003AFA2C 7C 86 23 78 */ mr r6, r4 +/* 803B2AD0 003AFA30 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2AD4 003AFA34 38 05 FF 80 */ addi r0, r5, -128 +/* 803B2AD8 003AFA38 28 00 00 08 */ cmplwi r0, 8 +/* 803B2ADC 003AFA3C 41 81 00 60 */ bgt lbl_803B2B3C +/* 803B2AE0 003AFA40 3C A0 80 3F */ lis r5, lbl_803F422C@ha +/* 803B2AE4 003AFA44 54 00 10 3A */ slwi r0, r0, 2 +/* 803B2AE8 003AFA48 38 A5 42 2C */ addi r5, r5, lbl_803F422C@l +/* 803B2AEC 003AFA4C 7C 05 00 2E */ lwzx r0, r5, r0 +/* 803B2AF0 003AFA50 7C 09 03 A6 */ mtctr r0 +/* 803B2AF4 003AFA54 4E 80 04 20 */ bctr +/* 803B2AF8 003AFA58 38 C0 00 80 */ li r6, 0x80 +/* 803B2AFC 003AFA5C 48 00 00 40 */ b lbl_803B2B3C +/* 803B2B00 003AFA60 38 C0 00 82 */ li r6, 0x82 +/* 803B2B04 003AFA64 48 00 00 38 */ b lbl_803B2B3C +/* 803B2B08 003AFA68 38 C0 00 A0 */ li r6, 0xa0 +/* 803B2B0C 003AFA6C 48 00 00 30 */ b lbl_803B2B3C +/* 803B2B10 003AFA70 38 C0 00 A1 */ li r6, 0xa1 +/* 803B2B14 003AFA74 48 00 00 28 */ b lbl_803B2B3C +/* 803B2B18 003AFA78 38 C0 00 83 */ li r6, 0x83 +/* 803B2B1C 003AFA7C 48 00 00 20 */ b lbl_803B2B3C +/* 803B2B20 003AFA80 38 C0 00 84 */ li r6, 0x84 +/* 803B2B24 003AFA84 48 00 00 18 */ b lbl_803B2B3C +/* 803B2B28 003AFA88 38 C0 00 A2 */ li r6, 0xa2 +/* 803B2B2C 003AFA8C 48 00 00 10 */ b lbl_803B2B3C +/* 803B2B30 003AFA90 38 C0 00 A3 */ li r6, 0xa3 +/* 803B2B34 003AFA94 48 00 00 08 */ b lbl_803B2B3C +/* 803B2B38 003AFA98 38 C0 00 A4 */ li r6, 0xa4 +lbl_803B2B3C: +/* 803B2B3C 003AFA9C 54 C0 06 3E */ clrlwi r0, r6, 0x18 +/* 803B2B40 003AFAA0 2C 00 00 A1 */ cmpwi r0, 0xa1 +/* 803B2B44 003AFAA4 41 82 00 28 */ beq lbl_803B2B6C +/* 803B2B48 003AFAA8 40 80 00 38 */ bge lbl_803B2B80 +/* 803B2B4C 003AFAAC 2C 00 00 A0 */ cmpwi r0, 0xa0 +/* 803B2B50 003AFAB0 40 80 00 08 */ bge lbl_803B2B58 +/* 803B2B54 003AFAB4 48 00 00 2C */ b lbl_803B2B80 +lbl_803B2B58: +/* 803B2B58 003AFAB8 A8 03 01 C4 */ lha r0, 0x1c4(r3) +/* 803B2B5C 003AFABC 54 03 08 3C */ slwi r3, r0, 1 +/* 803B2B60 003AFAC0 38 03 20 00 */ addi r0, r3, 0x2000 +/* 803B2B64 003AFAC4 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B2B68 003AFAC8 48 00 00 44 */ b lbl_803B2BAC +lbl_803B2B6C: +/* 803B2B6C 003AFACC A8 03 01 D0 */ lha r0, 0x1d0(r3) +/* 803B2B70 003AFAD0 54 03 08 3C */ slwi r3, r0, 1 +/* 803B2B74 003AFAD4 38 03 20 00 */ addi r0, r3, 0x2000 +/* 803B2B78 003AFAD8 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 803B2B7C 003AFADC 48 00 00 30 */ b lbl_803B2BAC +lbl_803B2B80: +/* 803B2B80 003AFAE0 88 03 01 21 */ lbz r0, 0x121(r3) +/* 803B2B84 003AFAE4 28 00 00 FF */ cmplwi r0, 0xff +/* 803B2B88 003AFAE8 41 82 00 1C */ beq lbl_803B2BA4 +/* 803B2B8C 003AFAEC 88 A3 01 22 */ lbz r5, 0x122(r3) +/* 803B2B90 003AFAF0 7C 83 23 78 */ mr r3, r4 +/* 803B2B94 003AFAF4 7C 04 03 78 */ mr r4, r0 +/* 803B2B98 003AFAF8 4B FF ED 75 */ bl inpGetMidiCtrl +/* 803B2B9C 003AFAFC 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803B2BA0 003AFB00 48 00 00 08 */ b lbl_803B2BA8 +lbl_803B2BA4: +/* 803B2BA4 003AFB04 38 00 00 00 */ li r0, 0 +lbl_803B2BA8: +/* 803B2BA8 003AFB08 54 03 04 3E */ clrlwi r3, r0, 0x10 +lbl_803B2BAC: +/* 803B2BAC 003AFB0C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2BB0 003AFB10 7C 08 03 A6 */ mtlr r0 +/* 803B2BB4 003AFB14 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2BB8 003AFB18 4E 80 00 20 */ blr + +.global inpSetExCtrl +inpSetExCtrl: +/* 803B2BBC 003AFB1C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803B2BC0 003AFB20 7C 08 02 A6 */ mflr r0 +/* 803B2BC4 003AFB24 90 01 00 24 */ stw r0, 0x24(r1) +/* 803B2BC8 003AFB28 7C A0 07 35 */ extsh. r0, r5 +/* 803B2BCC 003AFB2C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803B2BD0 003AFB30 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803B2BD4 003AFB34 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803B2BD8 003AFB38 93 81 00 10 */ stw r28, 0x10(r1) +/* 803B2BDC 003AFB3C 40 80 00 0C */ bge lbl_803B2BE8 +/* 803B2BE0 003AFB40 38 A0 00 00 */ li r5, 0 +/* 803B2BE4 003AFB44 48 00 00 18 */ b lbl_803B2BFC +lbl_803B2BE8: +/* 803B2BE8 003AFB48 7C A0 07 34 */ extsh r0, r5 +/* 803B2BEC 003AFB4C 38 A0 3F FF */ li r5, 0x3fff +/* 803B2BF0 003AFB50 2C 00 3F FF */ cmpwi r0, 0x3fff +/* 803B2BF4 003AFB54 41 81 00 08 */ bgt lbl_803B2BFC +/* 803B2BF8 003AFB58 7C 05 03 78 */ mr r5, r0 +lbl_803B2BFC: +/* 803B2BFC 003AFB5C 54 87 06 3E */ clrlwi r7, r4, 0x18 +/* 803B2C00 003AFB60 7C 86 23 78 */ mr r6, r4 +/* 803B2C04 003AFB64 38 07 FF 80 */ addi r0, r7, -128 +/* 803B2C08 003AFB68 7C A8 07 34 */ extsh r8, r5 +/* 803B2C0C 003AFB6C 28 00 00 08 */ cmplwi r0, 8 +/* 803B2C10 003AFB70 41 81 00 60 */ bgt lbl_803B2C70 +/* 803B2C14 003AFB74 3C A0 80 3F */ lis r5, lbl_803F4250@ha +/* 803B2C18 003AFB78 54 00 10 3A */ slwi r0, r0, 2 +/* 803B2C1C 003AFB7C 38 A5 42 50 */ addi r5, r5, lbl_803F4250@l +/* 803B2C20 003AFB80 7C 05 00 2E */ lwzx r0, r5, r0 +/* 803B2C24 003AFB84 7C 09 03 A6 */ mtctr r0 +/* 803B2C28 003AFB88 4E 80 04 20 */ bctr +/* 803B2C2C 003AFB8C 38 C0 00 80 */ li r6, 0x80 +/* 803B2C30 003AFB90 48 00 00 40 */ b lbl_803B2C70 +/* 803B2C34 003AFB94 38 C0 00 82 */ li r6, 0x82 +/* 803B2C38 003AFB98 48 00 00 38 */ b lbl_803B2C70 +/* 803B2C3C 003AFB9C 38 C0 00 A0 */ li r6, 0xa0 +/* 803B2C40 003AFBA0 48 00 00 30 */ b lbl_803B2C70 +/* 803B2C44 003AFBA4 38 C0 00 A1 */ li r6, 0xa1 +/* 803B2C48 003AFBA8 48 00 00 28 */ b lbl_803B2C70 +/* 803B2C4C 003AFBAC 38 C0 00 83 */ li r6, 0x83 +/* 803B2C50 003AFBB0 48 00 00 20 */ b lbl_803B2C70 +/* 803B2C54 003AFBB4 38 C0 00 84 */ li r6, 0x84 +/* 803B2C58 003AFBB8 48 00 00 18 */ b lbl_803B2C70 +/* 803B2C5C 003AFBBC 38 C0 00 A2 */ li r6, 0xa2 +/* 803B2C60 003AFBC0 48 00 00 10 */ b lbl_803B2C70 +/* 803B2C64 003AFBC4 38 C0 00 A3 */ li r6, 0xa3 +/* 803B2C68 003AFBC8 48 00 00 08 */ b lbl_803B2C70 +/* 803B2C6C 003AFBCC 38 C0 00 A4 */ li r6, 0xa4 +lbl_803B2C70: +/* 803B2C70 003AFBD0 54 C0 06 3E */ clrlwi r0, r6, 0x18 +/* 803B2C74 003AFBD4 2C 00 00 A2 */ cmpwi r0, 0xa2 +/* 803B2C78 003AFBD8 40 80 00 0C */ bge lbl_803B2C84 +/* 803B2C7C 003AFBDC 2C 00 00 A0 */ cmpwi r0, 0xa0 +/* 803B2C80 003AFBE0 40 80 01 00 */ bge lbl_803B2D80 +lbl_803B2C84: +/* 803B2C84 003AFBE4 8B A3 01 21 */ lbz r29, 0x121(r3) +/* 803B2C88 003AFBE8 28 1D 00 FF */ cmplwi r29, 0xff +/* 803B2C8C 003AFBEC 41 82 00 F4 */ beq lbl_803B2D80 +/* 803B2C90 003AFBF0 8B C3 01 22 */ lbz r30, 0x122(r3) +/* 803B2C94 003AFBF4 41 82 00 EC */ beq lbl_803B2D80 +/* 803B2C98 003AFBF8 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803B2C9C 003AFBFC 28 00 00 40 */ cmplwi r0, 0x40 +/* 803B2CA0 003AFC00 40 80 00 3C */ bge lbl_803B2CDC +/* 803B2CA4 003AFC04 54 FC 06 FE */ clrlwi r28, r7, 0x1b +/* 803B2CA8 003AFC08 7F A4 EB 78 */ mr r4, r29 +/* 803B2CAC 003AFC0C 7F 83 E3 78 */ mr r3, r28 +/* 803B2CB0 003AFC10 7F C5 F3 78 */ mr r5, r30 +/* 803B2CB4 003AFC14 55 1F 04 3E */ clrlwi r31, r8, 0x10 +/* 803B2CB8 003AFC18 55 06 CE 3E */ rlwinm r6, r8, 0x19, 0x18, 0x1f +/* 803B2CBC 003AFC1C 4B FF E4 35 */ bl sub_803b10f0 +/* 803B2CC0 003AFC20 38 1C 00 20 */ addi r0, r28, 0x20 +/* 803B2CC4 003AFC24 57 E6 06 7E */ clrlwi r6, r31, 0x19 +/* 803B2CC8 003AFC28 7F A4 EB 78 */ mr r4, r29 +/* 803B2CCC 003AFC2C 7F C5 F3 78 */ mr r5, r30 +/* 803B2CD0 003AFC30 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803B2CD4 003AFC34 4B FF E4 1D */ bl sub_803b10f0 +/* 803B2CD8 003AFC38 48 00 00 A8 */ b lbl_803B2D80 +lbl_803B2CDC: +/* 803B2CDC 003AFC3C 28 00 00 80 */ cmplwi r0, 0x80 +/* 803B2CE0 003AFC40 41 82 00 0C */ beq lbl_803B2CEC +/* 803B2CE4 003AFC44 28 00 00 81 */ cmplwi r0, 0x81 +/* 803B2CE8 003AFC48 40 82 00 3C */ bne lbl_803B2D24 +lbl_803B2CEC: +/* 803B2CEC 003AFC4C 54 FC 06 3C */ rlwinm r28, r7, 0, 0x18, 0x1e +/* 803B2CF0 003AFC50 7F A4 EB 78 */ mr r4, r29 +/* 803B2CF4 003AFC54 7F 83 E3 78 */ mr r3, r28 +/* 803B2CF8 003AFC58 7F C5 F3 78 */ mr r5, r30 +/* 803B2CFC 003AFC5C 55 1F 04 3E */ clrlwi r31, r8, 0x10 +/* 803B2D00 003AFC60 55 06 CE 3E */ rlwinm r6, r8, 0x19, 0x18, 0x1f +/* 803B2D04 003AFC64 4B FF E3 ED */ bl sub_803b10f0 +/* 803B2D08 003AFC68 38 1C 00 01 */ addi r0, r28, 1 +/* 803B2D0C 003AFC6C 57 E6 06 7E */ clrlwi r6, r31, 0x19 +/* 803B2D10 003AFC70 7F A4 EB 78 */ mr r4, r29 +/* 803B2D14 003AFC74 7F C5 F3 78 */ mr r5, r30 +/* 803B2D18 003AFC78 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803B2D1C 003AFC7C 4B FF E3 D5 */ bl sub_803b10f0 +/* 803B2D20 003AFC80 48 00 00 60 */ b lbl_803B2D80 +lbl_803B2D24: +/* 803B2D24 003AFC84 28 00 00 84 */ cmplwi r0, 0x84 +/* 803B2D28 003AFC88 41 82 00 0C */ beq lbl_803B2D34 +/* 803B2D2C 003AFC8C 28 00 00 85 */ cmplwi r0, 0x85 +/* 803B2D30 003AFC90 40 82 00 3C */ bne lbl_803B2D6C +lbl_803B2D34: +/* 803B2D34 003AFC94 54 FC 06 3C */ rlwinm r28, r7, 0, 0x18, 0x1e +/* 803B2D38 003AFC98 7F A4 EB 78 */ mr r4, r29 +/* 803B2D3C 003AFC9C 7F 83 E3 78 */ mr r3, r28 +/* 803B2D40 003AFCA0 7F C5 F3 78 */ mr r5, r30 +/* 803B2D44 003AFCA4 55 1F 04 3E */ clrlwi r31, r8, 0x10 +/* 803B2D48 003AFCA8 55 06 CE 3E */ rlwinm r6, r8, 0x19, 0x18, 0x1f +/* 803B2D4C 003AFCAC 4B FF E3 A5 */ bl sub_803b10f0 +/* 803B2D50 003AFCB0 38 1C 00 01 */ addi r0, r28, 1 +/* 803B2D54 003AFCB4 57 E6 06 7E */ clrlwi r6, r31, 0x19 +/* 803B2D58 003AFCB8 7F A4 EB 78 */ mr r4, r29 +/* 803B2D5C 003AFCBC 7F C5 F3 78 */ mr r5, r30 +/* 803B2D60 003AFCC0 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803B2D64 003AFCC4 4B FF E3 8D */ bl sub_803b10f0 +/* 803B2D68 003AFCC8 48 00 00 18 */ b lbl_803B2D80 +lbl_803B2D6C: +/* 803B2D6C 003AFCCC 7C 83 23 78 */ mr r3, r4 +/* 803B2D70 003AFCD0 7F A4 EB 78 */ mr r4, r29 +/* 803B2D74 003AFCD4 7F C5 F3 78 */ mr r5, r30 +/* 803B2D78 003AFCD8 55 06 CE 3E */ rlwinm r6, r8, 0x19, 0x18, 0x1f +/* 803B2D7C 003AFCDC 4B FF E3 75 */ bl sub_803b10f0 +lbl_803B2D80: +/* 803B2D80 003AFCE0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803B2D84 003AFCE4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803B2D88 003AFCE8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803B2D8C 003AFCEC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803B2D90 003AFCF0 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803B2D94 003AFCF4 7C 08 03 A6 */ mtlr r0 +/* 803B2D98 003AFCF8 38 21 00 20 */ addi r1, r1, 0x20 +/* 803B2D9C 003AFCFC 4E 80 00 20 */ blr diff --git a/asm/musyx/snd_service.s b/asm/musyx/snd_service.s new file mode 100644 index 00000000..997a311e --- /dev/null +++ b/asm/musyx/snd_service.s @@ -0,0 +1,137 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sndRand +sndRand: +/* 803B2DA0 003AFD00 3C 60 A8 35 */ lis r3, 0xA8351D63@ha +/* 803B2DA4 003AFD04 80 8D A0 10 */ lwz r4, lbl_805A8BD0@sda21(r13) +/* 803B2DA8 003AFD08 38 03 1D 63 */ addi r0, r3, 0xA8351D63@l +/* 803B2DAC 003AFD0C 7C 04 01 D6 */ mullw r0, r4, r0 +/* 803B2DB0 003AFD10 90 0D A0 10 */ stw r0, lbl_805A8BD0@sda21(r13) +/* 803B2DB4 003AFD14 54 03 D4 3E */ rlwinm r3, r0, 0x1a, 0x10, 0x1f +/* 803B2DB8 003AFD18 4E 80 00 20 */ blr + +.global sndSin +sndSin: +/* 803B2DBC 003AFD1C 54 60 05 3E */ clrlwi r0, r3, 0x14 +/* 803B2DC0 003AFD20 28 00 04 00 */ cmplwi r0, 0x400 +/* 803B2DC4 003AFD24 40 80 00 18 */ bge lbl_803B2DDC +/* 803B2DC8 003AFD28 3C 60 80 3F */ lis r3, lbl_803F4278@ha +/* 803B2DCC 003AFD2C 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e +/* 803B2DD0 003AFD30 38 63 42 78 */ addi r3, r3, lbl_803F4278@l +/* 803B2DD4 003AFD34 7C 63 02 AE */ lhax r3, r3, r0 +/* 803B2DD8 003AFD38 4E 80 00 20 */ blr +lbl_803B2DDC: +/* 803B2DDC 003AFD3C 28 00 08 00 */ cmplwi r0, 0x800 +/* 803B2DE0 003AFD40 40 80 00 20 */ bge lbl_803B2E00 +/* 803B2DE4 003AFD44 54 00 05 BE */ clrlwi r0, r0, 0x16 +/* 803B2DE8 003AFD48 3C 60 80 3F */ lis r3, lbl_803F4278@ha +/* 803B2DEC 003AFD4C 20 00 03 FF */ subfic r0, r0, 0x3ff +/* 803B2DF0 003AFD50 54 00 08 3C */ slwi r0, r0, 1 +/* 803B2DF4 003AFD54 38 63 42 78 */ addi r3, r3, lbl_803F4278@l +/* 803B2DF8 003AFD58 7C 63 02 AE */ lhax r3, r3, r0 +/* 803B2DFC 003AFD5C 4E 80 00 20 */ blr +lbl_803B2E00: +/* 803B2E00 003AFD60 28 00 0C 00 */ cmplwi r0, 0xc00 +/* 803B2E04 003AFD64 40 80 00 20 */ bge lbl_803B2E24 +/* 803B2E08 003AFD68 3C 60 80 3F */ lis r3, lbl_803F4278@ha +/* 803B2E0C 003AFD6C 54 00 0D 7C */ rlwinm r0, r0, 1, 0x15, 0x1e +/* 803B2E10 003AFD70 38 63 42 78 */ addi r3, r3, lbl_803F4278@l +/* 803B2E14 003AFD74 7C 03 02 AE */ lhax r0, r3, r0 +/* 803B2E18 003AFD78 7C 00 00 D0 */ neg r0, r0 +/* 803B2E1C 003AFD7C 7C 03 07 34 */ extsh r3, r0 +/* 803B2E20 003AFD80 4E 80 00 20 */ blr +lbl_803B2E24: +/* 803B2E24 003AFD84 54 00 05 BE */ clrlwi r0, r0, 0x16 +/* 803B2E28 003AFD88 3C 60 80 3F */ lis r3, lbl_803F4278@ha +/* 803B2E2C 003AFD8C 20 00 03 FF */ subfic r0, r0, 0x3ff +/* 803B2E30 003AFD90 54 00 08 3C */ slwi r0, r0, 1 +/* 803B2E34 003AFD94 38 63 42 78 */ addi r3, r3, lbl_803F4278@l +/* 803B2E38 003AFD98 7C 03 02 AE */ lhax r0, r3, r0 +/* 803B2E3C 003AFD9C 7C 00 00 D0 */ neg r0, r0 +/* 803B2E40 003AFDA0 7C 03 07 34 */ extsh r3, r0 +/* 803B2E44 003AFDA4 4E 80 00 20 */ blr + +.global sndBSearch +sndBSearch: +/* 803B2E48 003AFDA8 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803B2E4C 003AFDAC 7C 08 02 A6 */ mflr r0 +/* 803B2E50 003AFDB0 90 01 00 34 */ stw r0, 0x34(r1) +/* 803B2E54 003AFDB4 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B2E58 003AFDB8 4B FD 6C 19 */ bl func_80389A70 +/* 803B2E5C 003AFDBC 2C 05 00 00 */ cmpwi r5, 0 +/* 803B2E60 003AFDC0 7C 78 1B 78 */ mr r24, r3 +/* 803B2E64 003AFDC4 7C 99 23 78 */ mr r25, r4 +/* 803B2E68 003AFDC8 7C DA 33 78 */ mr r26, r6 +/* 803B2E6C 003AFDCC 7C FB 3B 78 */ mr r27, r7 +/* 803B2E70 003AFDD0 41 82 00 60 */ beq lbl_803B2ED0 +/* 803B2E74 003AFDD4 3B E0 00 01 */ li r31, 1 +/* 803B2E78 003AFDD8 7C BE 2B 78 */ mr r30, r5 +lbl_803B2E7C: +/* 803B2E7C 003AFDDC 7C 1F F2 14 */ add r0, r31, r30 +/* 803B2E80 003AFDE0 7F 6C DB 78 */ mr r12, r27 +/* 803B2E84 003AFDE4 7C 1D 0E 70 */ srawi r29, r0, 1 +/* 803B2E88 003AFDE8 7F 03 C3 78 */ mr r3, r24 +/* 803B2E8C 003AFDEC 38 1D FF FF */ addi r0, r29, -1 +/* 803B2E90 003AFDF0 7C 1A 01 D6 */ mullw r0, r26, r0 +/* 803B2E94 003AFDF4 7F 99 02 14 */ add r28, r25, r0 +/* 803B2E98 003AFDF8 7F 84 E3 78 */ mr r4, r28 +/* 803B2E9C 003AFDFC 7D 89 03 A6 */ mtctr r12 +/* 803B2EA0 003AFE00 4E 80 04 21 */ bctrl +/* 803B2EA4 003AFE04 2C 03 00 00 */ cmpwi r3, 0 +/* 803B2EA8 003AFE08 40 82 00 0C */ bne lbl_803B2EB4 +/* 803B2EAC 003AFE0C 7F 83 E3 78 */ mr r3, r28 +/* 803B2EB0 003AFE10 48 00 00 24 */ b lbl_803B2ED4 +lbl_803B2EB4: +/* 803B2EB4 003AFE14 40 80 00 08 */ bge lbl_803B2EBC +/* 803B2EB8 003AFE18 3B DD FF FF */ addi r30, r29, -1 +lbl_803B2EBC: +/* 803B2EBC 003AFE1C 54 60 0F FF */ rlwinm. r0, r3, 1, 0x1f, 0x1f +/* 803B2EC0 003AFE20 40 82 00 08 */ bne lbl_803B2EC8 +/* 803B2EC4 003AFE24 3B FD 00 01 */ addi r31, r29, 1 +lbl_803B2EC8: +/* 803B2EC8 003AFE28 7C 1F F0 00 */ cmpw r31, r30 +/* 803B2ECC 003AFE2C 40 81 FF B0 */ ble lbl_803B2E7C +lbl_803B2ED0: +/* 803B2ED0 003AFE30 38 60 00 00 */ li r3, 0 +lbl_803B2ED4: +/* 803B2ED4 003AFE34 39 61 00 30 */ addi r11, r1, 0x30 +/* 803B2ED8 003AFE38 4B FD 6B E5 */ bl _restgpr_24 +/* 803B2EDC 003AFE3C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803B2EE0 003AFE40 7C 08 03 A6 */ mtlr r0 +/* 803B2EE4 003AFE44 38 21 00 30 */ addi r1, r1, 0x30 +/* 803B2EE8 003AFE48 4E 80 00 20 */ blr + +.global dGeomDisable +dGeomDisable: +/* 803B2EEC 003AFE4C 80 03 00 00 */ lwz r0, 0(r3) +/* 803B2EF0 003AFE50 54 00 40 2E */ slwi r0, r0, 8 +/* 803B2EF4 003AFE54 90 03 00 00 */ stw r0, 0(r3) +/* 803B2EF8 003AFE58 4E 80 00 20 */ blr + +.global sndConvertTicks +sndConvertTicks: +/* 803B2EFC 003AFE5C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803B2F00 003AFE60 7C 08 02 A6 */ mflr r0 +/* 803B2F04 003AFE64 90 01 00 14 */ stw r0, 0x14(r1) +/* 803B2F08 003AFE68 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803B2F0C 003AFE6C 7C 7F 1B 78 */ mr r31, r3 +/* 803B2F10 003AFE70 7C 83 23 78 */ mr r3, r4 +/* 803B2F14 003AFE74 4B FE 5D D1 */ bl synthGetTicksPerSecond +/* 803B2F18 003AFE78 80 1F 00 00 */ lwz r0, 0(r31) +/* 803B2F1C 003AFE7C 54 00 80 1E */ slwi r0, r0, 0x10 +/* 803B2F20 003AFE80 7C 00 1B 96 */ divwu r0, r0, r3 +/* 803B2F24 003AFE84 1C 00 03 E8 */ mulli r0, r0, 0x3e8 +/* 803B2F28 003AFE88 54 00 D9 7E */ srwi r0, r0, 5 +/* 803B2F2C 003AFE8C 90 1F 00 00 */ stw r0, 0(r31) +/* 803B2F30 003AFE90 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803B2F34 003AFE94 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803B2F38 003AFE98 7C 08 03 A6 */ mtlr r0 +/* 803B2F3C 003AFE9C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803B2F40 003AFEA0 4E 80 00 20 */ blr + +.global sub_803b2f44 +sub_803b2f44: +/* 803B2F44 003AFEA4 54 63 C2 3E */ srwi r3, r3, 8 +/* 803B2F48 003AFEA8 4E 80 00 20 */ blr diff --git a/asm/musyx/snd_synthapi.s b/asm/musyx/snd_synthapi.s new file mode 100644 index 00000000..23023561 --- /dev/null +++ b/asm/musyx/snd_synthapi.s @@ -0,0 +1,498 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sndFXCtrl +sndFXCtrl: +/* 8039C190 003990F0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C194 003990F4 7C 08 02 A6 */ mflr r0 +/* 8039C198 003990F8 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C19C 003990FC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039C1A0 00399100 7C BF 2B 78 */ mr r31, r5 +/* 8039C1A4 00399104 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039C1A8 00399108 7C 9E 23 78 */ mr r30, r4 +/* 8039C1AC 0039910C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039C1B0 00399110 7C 7D 1B 78 */ mr r29, r3 +/* 8039C1B4 00399114 48 01 8F 09 */ bl hwDisableIrq +/* 8039C1B8 00399118 7F A3 EB 78 */ mr r3, r29 +/* 8039C1BC 0039911C 7F C4 F3 78 */ mr r4, r30 +/* 8039C1C0 00399120 7F E5 FB 78 */ mr r5, r31 +/* 8039C1C4 00399124 4B FF EF 51 */ bl synthFXSetCtrl +/* 8039C1C8 00399128 7C 7F 1B 78 */ mr r31, r3 +/* 8039C1CC 0039912C 48 01 8E B9 */ bl hwEnableIrq +/* 8039C1D0 00399130 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C1D4 00399134 7F E3 FB 78 */ mr r3, r31 +/* 8039C1D8 00399138 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039C1DC 0039913C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039C1E0 00399140 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039C1E4 00399144 7C 08 03 A6 */ mtlr r0 +/* 8039C1E8 00399148 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C1EC 0039914C 4E 80 00 20 */ blr + +.global sndFXCtrl14 +sndFXCtrl14: +/* 8039C1F0 00399150 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C1F4 00399154 7C 08 02 A6 */ mflr r0 +/* 8039C1F8 00399158 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C1FC 0039915C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039C200 00399160 7C BF 2B 78 */ mr r31, r5 +/* 8039C204 00399164 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039C208 00399168 7C 9E 23 78 */ mr r30, r4 +/* 8039C20C 0039916C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039C210 00399170 7C 7D 1B 78 */ mr r29, r3 +/* 8039C214 00399174 48 01 8E A9 */ bl hwDisableIrq +/* 8039C218 00399178 7F A3 EB 78 */ mr r3, r29 +/* 8039C21C 0039917C 7F C4 F3 78 */ mr r4, r30 +/* 8039C220 00399180 7F E5 FB 78 */ mr r5, r31 +/* 8039C224 00399184 4B FF EF D5 */ bl synthFXSetCtrl14 +/* 8039C228 00399188 7C 7F 1B 78 */ mr r31, r3 +/* 8039C22C 0039918C 48 01 8E 59 */ bl hwEnableIrq +/* 8039C230 00399190 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C234 00399194 7F E3 FB 78 */ mr r3, r31 +/* 8039C238 00399198 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039C23C 0039919C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039C240 003991A0 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039C244 003991A4 7C 08 03 A6 */ mtlr r0 +/* 8039C248 003991A8 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C24C 003991AC 4E 80 00 20 */ blr + +.global sndFXKeyOff +sndFXKeyOff: +/* 8039C250 003991B0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039C254 003991B4 7C 08 02 A6 */ mflr r0 +/* 8039C258 003991B8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039C25C 003991BC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039C260 003991C0 7C 7F 1B 78 */ mr r31, r3 +/* 8039C264 003991C4 48 01 8E 59 */ bl hwDisableIrq +/* 8039C268 003991C8 7F E3 FB 78 */ mr r3, r31 +/* 8039C26C 003991CC 4B FF F0 F5 */ bl synthSendKeyOff +/* 8039C270 003991D0 7C 7F 1B 78 */ mr r31, r3 +/* 8039C274 003991D4 48 01 8E 11 */ bl hwEnableIrq +/* 8039C278 003991D8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039C27C 003991DC 7F E3 FB 78 */ mr r3, r31 +/* 8039C280 003991E0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039C284 003991E4 7C 08 03 A6 */ mtlr r0 +/* 8039C288 003991E8 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039C28C 003991EC 4E 80 00 20 */ blr + +.global sndFXStartEx +sndFXStartEx: +/* 8039C290 003991F0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C294 003991F4 7C 08 02 A6 */ mflr r0 +/* 8039C298 003991F8 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C29C 003991FC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039C2A0 00399200 7C DF 33 78 */ mr r31, r6 +/* 8039C2A4 00399204 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039C2A8 00399208 7C BE 2B 78 */ mr r30, r5 +/* 8039C2AC 0039920C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039C2B0 00399210 7C 9D 23 78 */ mr r29, r4 +/* 8039C2B4 00399214 93 81 00 10 */ stw r28, 0x10(r1) +/* 8039C2B8 00399218 7C 7C 1B 78 */ mr r28, r3 +/* 8039C2BC 0039921C 48 01 8E 01 */ bl hwDisableIrq +/* 8039C2C0 00399220 3C 60 80 55 */ lis r3, lbl_80550AA4@ha +/* 8039C2C4 00399224 57 E0 0D FC */ rlwinm r0, r31, 1, 0x17, 0x1e +/* 8039C2C8 00399228 38 83 0A A4 */ addi r4, r3, lbl_80550AA4@l +/* 8039C2CC 0039922C 7F E6 FB 78 */ mr r6, r31 +/* 8039C2D0 00399230 7C A4 02 14 */ add r5, r4, r0 +/* 8039C2D4 00399234 7F 83 E3 78 */ mr r3, r28 +/* 8039C2D8 00399238 88 E5 00 01 */ lbz r7, 1(r5) +/* 8039C2DC 0039923C 7F A4 EB 78 */ mr r4, r29 +/* 8039C2E0 00399240 7F C5 F3 78 */ mr r5, r30 +/* 8039C2E4 00399244 4B FF ED 69 */ bl synthFXStart +/* 8039C2E8 00399248 7C 7F 1B 78 */ mr r31, r3 +/* 8039C2EC 0039924C 48 01 8D 99 */ bl hwEnableIrq +/* 8039C2F0 00399250 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C2F4 00399254 7F E3 FB 78 */ mr r3, r31 +/* 8039C2F8 00399258 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039C2FC 0039925C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039C300 00399260 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039C304 00399264 83 81 00 10 */ lwz r28, 0x10(r1) +/* 8039C308 00399268 7C 08 03 A6 */ mtlr r0 +/* 8039C30C 0039926C 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C310 00399270 4E 80 00 20 */ blr + +.global sndFXCheck +sndFXCheck: +/* 8039C314 00399274 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039C318 00399278 7C 08 02 A6 */ mflr r0 +/* 8039C31C 0039927C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039C320 00399280 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039C324 00399284 7C 7F 1B 78 */ mr r31, r3 +/* 8039C328 00399288 48 00 B8 81 */ bl vidGetInternalId +/* 8039C32C 0039928C 3C 03 00 01 */ addis r0, r3, 1 +/* 8039C330 00399290 38 60 FF FF */ li r3, -1 +/* 8039C334 00399294 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039C338 00399298 41 82 00 08 */ beq lbl_8039C340 +/* 8039C33C 0039929C 7F E3 FB 78 */ mr r3, r31 +lbl_8039C340: +/* 8039C340 003992A0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039C344 003992A4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039C348 003992A8 7C 08 03 A6 */ mtlr r0 +/* 8039C34C 003992AC 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039C350 003992B0 4E 80 00 20 */ blr + +.global sndVolume +sndVolume: +/* 8039C354 003992B4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C358 003992B8 7C 08 02 A6 */ mflr r0 +/* 8039C35C 003992BC 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C360 003992C0 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039C364 003992C4 7C BF 2B 78 */ mr r31, r5 +/* 8039C368 003992C8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039C36C 003992CC 7C 9E 23 78 */ mr r30, r4 +/* 8039C370 003992D0 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039C374 003992D4 7C 7D 1B 78 */ mr r29, r3 +/* 8039C378 003992D8 48 01 8D 45 */ bl hwDisableIrq +/* 8039C37C 003992DC 7F A3 EB 78 */ mr r3, r29 +/* 8039C380 003992E0 7F C4 F3 78 */ mr r4, r30 +/* 8039C384 003992E4 7F E5 FB 78 */ mr r5, r31 +/* 8039C388 003992E8 38 C0 00 00 */ li r6, 0 +/* 8039C38C 003992EC 38 E0 FF FF */ li r7, -1 +/* 8039C390 003992F0 4B FF F0 59 */ bl synthVolume +/* 8039C394 003992F4 48 01 8C F1 */ bl hwEnableIrq +/* 8039C398 003992F8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C39C 003992FC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039C3A0 00399300 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039C3A4 00399304 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039C3A8 00399308 7C 08 03 A6 */ mtlr r0 +/* 8039C3AC 0039930C 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C3B0 00399310 4E 80 00 20 */ blr + +.global sndMasterVolume +sndMasterVolume: +/* 8039C3B4 00399314 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C3B8 00399318 7C 08 02 A6 */ mflr r0 +/* 8039C3BC 0039931C 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C3C0 00399320 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039C3C4 00399324 7C DF 33 78 */ mr r31, r6 +/* 8039C3C8 00399328 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039C3CC 0039932C 7C BE 2B 78 */ mr r30, r5 +/* 8039C3D0 00399330 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039C3D4 00399334 7C 9D 23 78 */ mr r29, r4 +/* 8039C3D8 00399338 93 81 00 10 */ stw r28, 0x10(r1) +/* 8039C3DC 0039933C 7C 7C 1B 78 */ mr r28, r3 +/* 8039C3E0 00399340 48 01 8C DD */ bl hwDisableIrq +/* 8039C3E4 00399344 57 C0 06 3F */ clrlwi. r0, r30, 0x18 +/* 8039C3E8 00399348 41 82 00 1C */ beq lbl_8039C404 +/* 8039C3EC 0039934C 7F 83 E3 78 */ mr r3, r28 +/* 8039C3F0 00399350 7F A4 EB 78 */ mr r4, r29 +/* 8039C3F4 00399354 38 A0 00 15 */ li r5, 0x15 +/* 8039C3F8 00399358 38 C0 00 00 */ li r6, 0 +/* 8039C3FC 0039935C 38 E0 FF FF */ li r7, -1 +/* 8039C400 00399360 4B FF EF E9 */ bl synthVolume +lbl_8039C404: +/* 8039C404 00399364 57 E0 06 3F */ clrlwi. r0, r31, 0x18 +/* 8039C408 00399368 41 82 00 1C */ beq lbl_8039C424 +/* 8039C40C 0039936C 7F 83 E3 78 */ mr r3, r28 +/* 8039C410 00399370 7F A4 EB 78 */ mr r4, r29 +/* 8039C414 00399374 38 A0 00 16 */ li r5, 0x16 +/* 8039C418 00399378 38 C0 00 00 */ li r6, 0 +/* 8039C41C 0039937C 38 E0 FF FF */ li r7, -1 +/* 8039C420 00399380 4B FF EF C9 */ bl synthVolume +lbl_8039C424: +/* 8039C424 00399384 48 01 8C 61 */ bl hwEnableIrq +/* 8039C428 00399388 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C42C 0039938C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039C430 00399390 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039C434 00399394 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039C438 00399398 83 81 00 10 */ lwz r28, 0x10(r1) +/* 8039C43C 0039939C 7C 08 03 A6 */ mtlr r0 +/* 8039C440 003993A0 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C444 003993A4 4E 80 00 20 */ blr + +.global sndOutputMode +sndOutputMode: +/* 8039C448 003993A8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039C44C 003993AC 7C 08 02 A6 */ mflr r0 +/* 8039C450 003993B0 2C 03 00 01 */ cmpwi r3, 1 +/* 8039C454 003993B4 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039C458 003993B8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039C45C 003993BC 83 ED AE 74 */ lwz r31, lbl_805A9A34@sda21(r13) +/* 8039C460 003993C0 41 82 00 38 */ beq lbl_8039C498 +/* 8039C464 003993C4 40 80 00 10 */ bge lbl_8039C474 +/* 8039C468 003993C8 2C 03 00 00 */ cmpwi r3, 0 +/* 8039C46C 003993CC 40 80 00 14 */ bge lbl_8039C480 +/* 8039C470 003993D0 48 00 00 54 */ b lbl_8039C4C4 +lbl_8039C474: +/* 8039C474 003993D4 2C 03 00 03 */ cmpwi r3, 3 +/* 8039C478 003993D8 40 80 00 4C */ bge lbl_8039C4C4 +/* 8039C47C 003993DC 48 00 00 34 */ b lbl_8039C4B0 +lbl_8039C480: +/* 8039C480 003993E0 63 E0 00 01 */ ori r0, r31, 1 +/* 8039C484 003993E4 90 0D AE 74 */ stw r0, lbl_805A9A34@sda21(r13) +/* 8039C488 003993E8 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d +/* 8039C48C 003993EC 90 0D AE 74 */ stw r0, lbl_805A9A34@sda21(r13) +/* 8039C490 003993F0 48 01 7A 8D */ bl sub_803b3f1c +/* 8039C494 003993F4 48 00 00 30 */ b lbl_8039C4C4 +lbl_8039C498: +/* 8039C498 003993F8 57 E3 00 3C */ rlwinm r3, r31, 0, 0, 0x1e +/* 8039C49C 003993FC 57 E0 00 3A */ rlwinm r0, r31, 0, 0, 0x1d +/* 8039C4A0 00399400 90 6D AE 74 */ stw r3, lbl_805A9A34@sda21(r13) +/* 8039C4A4 00399404 90 0D AE 74 */ stw r0, lbl_805A9A34@sda21(r13) +/* 8039C4A8 00399408 48 01 7A 75 */ bl sub_803b3f1c +/* 8039C4AC 0039940C 48 00 00 18 */ b lbl_8039C4C4 +lbl_8039C4B0: +/* 8039C4B0 00399410 57 E0 00 3C */ rlwinm r0, r31, 0, 0, 0x1e +/* 8039C4B4 00399414 90 0D AE 74 */ stw r0, lbl_805A9A34@sda21(r13) +/* 8039C4B8 00399418 60 00 00 02 */ ori r0, r0, 2 +/* 8039C4BC 0039941C 90 0D AE 74 */ stw r0, lbl_805A9A34@sda21(r13) +/* 8039C4C0 00399420 48 01 7A 5D */ bl sub_803b3f1c +lbl_8039C4C4: +/* 8039C4C4 00399424 80 0D AE 74 */ lwz r0, lbl_805A9A34@sda21(r13) +/* 8039C4C8 00399428 7C 1F 00 40 */ cmplw r31, r0 +/* 8039C4CC 0039942C 41 82 00 54 */ beq lbl_8039C520 +/* 8039C4D0 00399430 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039C4D4 00399434 38 E0 00 00 */ li r7, 0 +/* 8039C4D8 00399438 38 A3 00 50 */ addi r5, r3, lbl_80550050@l +/* 8039C4DC 0039943C 38 C0 00 00 */ li r6, 0 +/* 8039C4E0 00399440 48 00 00 30 */ b lbl_8039C510 +lbl_8039C4E4: +/* 8039C4E4 00399444 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039C4E8 00399448 38 06 01 14 */ addi r0, r6, 0x114 +/* 8039C4EC 0039944C 38 C6 04 04 */ addi r6, r6, 0x404 +/* 8039C4F0 00399450 38 E7 00 01 */ addi r7, r7, 1 +/* 8039C4F4 00399454 7C 83 02 14 */ add r4, r3, r0 +/* 8039C4F8 00399458 7C 63 02 14 */ add r3, r3, r0 +/* 8039C4FC 0039945C 80 04 00 00 */ lwz r0, 0(r4) +/* 8039C500 00399460 80 84 00 04 */ lwz r4, 4(r4) +/* 8039C504 00399464 60 00 20 00 */ ori r0, r0, 0x2000 +/* 8039C508 00399468 90 83 00 04 */ stw r4, 4(r3) +/* 8039C50C 0039946C 90 03 00 00 */ stw r0, 0(r3) +lbl_8039C510: +/* 8039C510 00399470 88 05 02 10 */ lbz r0, 0x210(r5) +/* 8039C514 00399474 7C 07 00 40 */ cmplw r7, r0 +/* 8039C518 00399478 41 80 FF CC */ blt lbl_8039C4E4 +/* 8039C51C 0039947C 48 00 12 81 */ bl streamOutputModeChanged +lbl_8039C520: +/* 8039C520 00399480 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039C524 00399484 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039C528 00399488 7C 08 03 A6 */ mtlr r0 +/* 8039C52C 0039948C 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039C530 00399490 4E 80 00 20 */ blr + +.global sndSetAuxProcessingCallbacks +sndSetAuxProcessingCallbacks: +/* 8039C534 00399494 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8039C538 00399498 7C 08 02 A6 */ mflr r0 +/* 8039C53C 0039949C 90 01 00 34 */ stw r0, 0x34(r1) +/* 8039C540 003994A0 39 61 00 30 */ addi r11, r1, 0x30 +/* 8039C544 003994A4 4B FE D5 25 */ bl sub_80389a68 +/* 8039C548 003994A8 83 E1 00 38 */ lwz r31, 0x38(r1) +/* 8039C54C 003994AC 7C 79 1B 78 */ mr r25, r3 +/* 8039C550 003994B0 7C 9A 23 78 */ mr r26, r4 +/* 8039C554 003994B4 7C BB 2B 78 */ mr r27, r5 +/* 8039C558 003994B8 7C D6 33 78 */ mr r22, r6 +/* 8039C55C 003994BC 7C F7 3B 78 */ mr r23, r7 +/* 8039C560 003994C0 7D 1C 43 78 */ mr r28, r8 +/* 8039C564 003994C4 7D 3D 4B 78 */ mr r29, r9 +/* 8039C568 003994C8 7D 5E 53 78 */ mr r30, r10 +/* 8039C56C 003994CC 48 01 8B 51 */ bl hwDisableIrq +/* 8039C570 003994D0 28 1A 00 00 */ cmplwi r26, 0 +/* 8039C574 003994D4 41 82 00 4C */ beq lbl_8039C5C0 +/* 8039C578 003994D8 56 C0 06 3E */ clrlwi r0, r22, 0x18 +/* 8039C57C 003994DC 57 38 06 3E */ clrlwi r24, r25, 0x18 +/* 8039C580 003994E0 38 6D AE 64 */ addi r3, r13, lbl_805A9A24@sda21 +/* 8039C584 003994E4 28 00 00 FF */ cmplwi r0, 0xff +/* 8039C588 003994E8 7E C3 C1 AE */ stbx r22, r3, r24 +/* 8039C58C 003994EC 41 82 00 58 */ beq lbl_8039C5E4 +/* 8039C590 003994F0 7E E3 BB 78 */ mr r3, r23 +/* 8039C594 003994F4 4B FF 87 9D */ bl seqGetPrivateId +/* 8039C598 003994F8 3C A0 80 55 */ lis r5, lbl_80550A44@ha +/* 8039C59C 003994FC 3C 80 80 55 */ lis r4, lbl_80550A24@ha +/* 8039C5A0 00399500 38 CD AE 5C */ addi r6, r13, lbl_805A9A1C@sda21 +/* 8039C5A4 00399504 57 00 10 3A */ slwi r0, r24, 2 +/* 8039C5A8 00399508 38 A5 0A 44 */ addi r5, r5, lbl_80550A44@l +/* 8039C5AC 0039950C 38 84 0A 24 */ addi r4, r4, lbl_80550A24@l +/* 8039C5B0 00399510 7C 66 C1 AE */ stbx r3, r6, r24 +/* 8039C5B4 00399514 7F 45 01 2E */ stwx r26, r5, r0 +/* 8039C5B8 00399518 7F 64 01 2E */ stwx r27, r4, r0 +/* 8039C5BC 0039951C 48 00 00 28 */ b lbl_8039C5E4 +lbl_8039C5C0: +/* 8039C5C0 00399520 3C 60 80 55 */ lis r3, lbl_80550A44@ha +/* 8039C5C4 00399524 57 27 06 3E */ clrlwi r7, r25, 0x18 +/* 8039C5C8 00399528 57 25 15 BA */ rlwinm r5, r25, 2, 0x16, 0x1d +/* 8039C5CC 0039952C 38 C0 00 00 */ li r6, 0 +/* 8039C5D0 00399530 38 83 0A 44 */ addi r4, r3, lbl_80550A44@l +/* 8039C5D4 00399534 38 00 00 FF */ li r0, 0xff +/* 8039C5D8 00399538 38 6D AE 64 */ addi r3, r13, lbl_805A9A24@sda21 +/* 8039C5DC 0039953C 7C C4 29 2E */ stwx r6, r4, r5 +/* 8039C5E0 00399540 7C 03 39 AE */ stbx r0, r3, r7 +lbl_8039C5E4: +/* 8039C5E4 00399544 28 1C 00 00 */ cmplwi r28, 0 +/* 8039C5E8 00399548 41 82 00 4C */ beq lbl_8039C634 +/* 8039C5EC 0039954C 57 C0 06 3E */ clrlwi r0, r30, 0x18 +/* 8039C5F0 00399550 57 38 06 3E */ clrlwi r24, r25, 0x18 +/* 8039C5F4 00399554 38 6D AE 54 */ addi r3, r13, lbl_805A9A14@sda21 +/* 8039C5F8 00399558 28 00 00 FF */ cmplwi r0, 0xff +/* 8039C5FC 0039955C 7F C3 C1 AE */ stbx r30, r3, r24 +/* 8039C600 00399560 41 82 00 58 */ beq lbl_8039C658 +/* 8039C604 00399564 7F E3 FB 78 */ mr r3, r31 +/* 8039C608 00399568 4B FF 87 29 */ bl seqGetPrivateId +/* 8039C60C 0039956C 3C A0 80 55 */ lis r5, lbl_80550A84@ha +/* 8039C610 00399570 3C 80 80 55 */ lis r4, lbl_80550A64@ha +/* 8039C614 00399574 38 CD AE 4C */ addi r6, r13, lbl_805A9A0C@sda21 +/* 8039C618 00399578 57 00 10 3A */ slwi r0, r24, 2 +/* 8039C61C 0039957C 38 A5 0A 84 */ addi r5, r5, lbl_80550A84@l +/* 8039C620 00399580 38 84 0A 64 */ addi r4, r4, lbl_80550A64@l +/* 8039C624 00399584 7C 66 C1 AE */ stbx r3, r6, r24 +/* 8039C628 00399588 7F 85 01 2E */ stwx r28, r5, r0 +/* 8039C62C 0039958C 7F A4 01 2E */ stwx r29, r4, r0 +/* 8039C630 00399590 48 00 00 28 */ b lbl_8039C658 +lbl_8039C634: +/* 8039C634 00399594 3C 60 80 55 */ lis r3, lbl_80550A84@ha +/* 8039C638 00399598 57 27 06 3E */ clrlwi r7, r25, 0x18 +/* 8039C63C 0039959C 57 25 15 BA */ rlwinm r5, r25, 2, 0x16, 0x1d +/* 8039C640 003995A0 38 C0 00 00 */ li r6, 0 +/* 8039C644 003995A4 38 83 0A 84 */ addi r4, r3, lbl_80550A84@l +/* 8039C648 003995A8 38 00 00 FF */ li r0, 0xff +/* 8039C64C 003995AC 38 6D AE 54 */ addi r3, r13, lbl_805A9A14@sda21 +/* 8039C650 003995B0 7C C4 29 2E */ stwx r6, r4, r5 +/* 8039C654 003995B4 7C 03 39 AE */ stbx r0, r3, r7 +lbl_8039C658: +/* 8039C658 003995B8 7F 23 CB 78 */ mr r3, r25 +/* 8039C65C 003995BC 7F 44 D3 78 */ mr r4, r26 +/* 8039C660 003995C0 7F 65 DB 78 */ mr r5, r27 +/* 8039C664 003995C4 7F 86 E3 78 */ mr r6, r28 +/* 8039C668 003995C8 7F A7 EB 78 */ mr r7, r29 +/* 8039C66C 003995CC 48 01 74 09 */ bl hwSetAUXProcessingCallbacks +/* 8039C670 003995D0 48 01 8A 15 */ bl hwEnableIrq +/* 8039C674 003995D4 39 61 00 30 */ addi r11, r1, 0x30 +/* 8039C678 003995D8 4B FE D4 3D */ bl _restgpr_22 +/* 8039C67C 003995DC 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8039C680 003995E0 7C 08 03 A6 */ mtlr r0 +/* 8039C684 003995E4 38 21 00 30 */ addi r1, r1, 0x30 +/* 8039C688 003995E8 4E 80 00 20 */ blr + +.global sub_8039c68c +sub_8039c68c: +/* 8039C68C 003995EC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C690 003995F0 7C 08 02 A6 */ mflr r0 +/* 8039C694 003995F4 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C698 003995F8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039C69C 003995FC 7C BF 2B 78 */ mr r31, r5 +/* 8039C6A0 00399600 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039C6A4 00399604 7C 9E 23 78 */ mr r30, r4 +/* 8039C6A8 00399608 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039C6AC 0039960C 7C 7D 1B 78 */ mr r29, r3 +/* 8039C6B0 00399610 48 01 8A 0D */ bl hwDisableIrq +/* 8039C6B4 00399614 3C 60 80 55 */ lis r3, lbl_80550AA4@ha +/* 8039C6B8 00399618 3C 80 80 55 */ lis r4, lbl_80550A44@ha +/* 8039C6BC 0039961C 38 C3 0A A4 */ addi r6, r3, lbl_80550AA4@l +/* 8039C6C0 00399620 57 AC 0D FC */ rlwinm r12, r29, 1, 0x17, 0x1e +/* 8039C6C4 00399624 7C 66 62 14 */ add r3, r6, r12 +/* 8039C6C8 00399628 39 20 00 00 */ li r9, 0 +/* 8039C6CC 0039962C 99 23 00 01 */ stb r9, 1(r3) +/* 8039C6D0 00399630 3C 60 80 55 */ lis r3, lbl_80550A84@ha +/* 8039C6D4 00399634 57 AB 06 3E */ clrlwi r11, r29, 0x18 +/* 8039C6D8 00399638 57 AA 15 BA */ rlwinm r10, r29, 2, 0x16, 0x1d +/* 8039C6DC 0039963C 38 84 0A 44 */ addi r4, r4, lbl_80550A44@l +/* 8039C6E0 00399640 38 A3 0A 84 */ addi r5, r3, lbl_80550A84@l +/* 8039C6E4 00399644 38 00 00 FF */ li r0, 0xff +/* 8039C6E8 00399648 39 0D AE 64 */ addi r8, r13, lbl_805A9A24@sda21 +/* 8039C6EC 0039964C 38 ED AE 54 */ addi r7, r13, lbl_805A9A14@sda21 +/* 8039C6F0 00399650 7D 24 51 2E */ stwx r9, r4, r10 +/* 8039C6F4 00399654 7F A3 EB 78 */ mr r3, r29 +/* 8039C6F8 00399658 7F C4 F3 78 */ mr r4, r30 +/* 8039C6FC 0039965C 7D 25 51 2E */ stwx r9, r5, r10 +/* 8039C700 00399660 7F E5 FB 78 */ mr r5, r31 +/* 8039C704 00399664 7C 08 59 AE */ stbx r0, r8, r11 +/* 8039C708 00399668 7C 07 59 AE */ stbx r0, r7, r11 +/* 8039C70C 0039966C 7D 26 61 AE */ stbx r9, r6, r12 +/* 8039C710 00399670 48 01 73 8D */ bl sub_803b3a9c +/* 8039C714 00399674 48 01 89 71 */ bl hwEnableIrq +/* 8039C718 00399678 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C71C 0039967C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039C720 00399680 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039C724 00399684 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039C728 00399688 7C 08 03 A6 */ mtlr r0 +/* 8039C72C 0039968C 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C730 00399690 4E 80 00 20 */ blr + +.global sub_8039c734 +sub_8039c734: +/* 8039C734 00399694 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C738 00399698 7C 08 02 A6 */ mflr r0 +/* 8039C73C 0039969C 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C740 003996A0 39 61 00 20 */ addi r11, r1, 0x20 +/* 8039C744 003996A4 4B FE D3 39 */ bl sub_80389a7c +/* 8039C748 003996A8 7C 7F 1B 78 */ mr r31, r3 +/* 8039C74C 003996AC 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039C750 003996B0 3B A3 00 50 */ addi r29, r3, lbl_80550050@l +/* 8039C754 003996B4 3B 60 00 00 */ li r27, 0 +/* 8039C758 003996B8 57 FE 06 3E */ clrlwi r30, r31, 0x18 +/* 8039C75C 003996BC 3B 80 00 00 */ li r28, 0 +/* 8039C760 003996C0 48 00 00 58 */ b lbl_8039C7B8 +lbl_8039C764: +/* 8039C764 003996C4 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 8039C768 003996C8 7C 80 E2 14 */ add r4, r0, r28 +/* 8039C76C 003996CC 88 04 01 1F */ lbz r0, 0x11f(r4) +/* 8039C770 003996D0 7C 1E 00 40 */ cmplw r30, r0 +/* 8039C774 003996D4 40 82 00 3C */ bne lbl_8039C7B0 +/* 8039C778 003996D8 80 64 00 F4 */ lwz r3, 0xf4(r4) +/* 8039C77C 003996DC 3C 03 00 01 */ addis r0, r3, 1 +/* 8039C780 003996E0 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039C784 003996E4 41 82 00 14 */ beq lbl_8039C798 +/* 8039C788 003996E8 80 64 00 F8 */ lwz r3, 0xf8(r4) +/* 8039C78C 003996EC 80 63 00 08 */ lwz r3, 8(r3) +/* 8039C790 003996F0 48 00 C4 C1 */ bl voiceKillSound +/* 8039C794 003996F4 48 00 00 1C */ b lbl_8039C7B0 +lbl_8039C798: +/* 8039C798 003996F8 7F 63 DB 78 */ mr r3, r27 +/* 8039C79C 003996FC 48 01 6A 01 */ bl hwIsActive +/* 8039C7A0 00399700 28 03 00 00 */ cmplwi r3, 0 +/* 8039C7A4 00399704 41 82 00 0C */ beq lbl_8039C7B0 +/* 8039C7A8 00399708 7F 63 DB 78 */ mr r3, r27 +/* 8039C7AC 0039970C 48 01 72 9D */ bl sub_803b3a48 +lbl_8039C7B0: +/* 8039C7B0 00399710 3B 9C 04 04 */ addi r28, r28, 0x404 +/* 8039C7B4 00399714 3B 7B 00 01 */ addi r27, r27, 1 +lbl_8039C7B8: +/* 8039C7B8 00399718 88 1D 02 10 */ lbz r0, 0x210(r29) +/* 8039C7BC 0039971C 7C 1B 00 40 */ cmplw r27, r0 +/* 8039C7C0 00399720 41 80 FF A4 */ blt lbl_8039C764 +/* 8039C7C4 00399724 48 01 88 F9 */ bl hwDisableIrq +/* 8039C7C8 00399728 3C 80 80 55 */ lis r4, lbl_80550A44@ha +/* 8039C7CC 0039972C 3C 60 80 55 */ lis r3, lbl_80550A84@ha +/* 8039C7D0 00399730 57 E9 06 3E */ clrlwi r9, r31, 0x18 +/* 8039C7D4 00399734 57 E8 15 BA */ rlwinm r8, r31, 2, 0x16, 0x1d +/* 8039C7D8 00399738 38 C4 0A 44 */ addi r6, r4, lbl_80550A44@l +/* 8039C7DC 0039973C 38 E0 00 00 */ li r7, 0 +/* 8039C7E0 00399740 38 A3 0A 84 */ addi r5, r3, lbl_80550A84@l +/* 8039C7E4 00399744 38 00 00 FF */ li r0, 0xff +/* 8039C7E8 00399748 38 8D AE 64 */ addi r4, r13, lbl_805A9A24@sda21 +/* 8039C7EC 0039974C 38 6D AE 54 */ addi r3, r13, lbl_805A9A14@sda21 +/* 8039C7F0 00399750 7C E6 41 2E */ stwx r7, r6, r8 +/* 8039C7F4 00399754 7C E5 41 2E */ stwx r7, r5, r8 +/* 8039C7F8 00399758 7C 04 49 AE */ stbx r0, r4, r9 +/* 8039C7FC 0039975C 7C 03 49 AE */ stbx r0, r3, r9 +/* 8039C800 00399760 48 01 88 85 */ bl hwEnableIrq +/* 8039C804 00399764 7F E3 FB 78 */ mr r3, r31 +/* 8039C808 00399768 48 01 72 B5 */ bl sub_803b3abc +/* 8039C80C 0039976C 39 61 00 20 */ addi r11, r1, 0x20 +/* 8039C810 00399770 4B FE D2 B9 */ bl _restgpr_27 +/* 8039C814 00399774 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C818 00399778 7C 08 03 A6 */ mtlr r0 +/* 8039C81C 0039977C 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C820 00399780 4E 80 00 20 */ blr + +.global sub_8039c824 +sub_8039c824: +/* 8039C824 00399784 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039C828 00399788 7C 08 02 A6 */ mflr r0 +/* 8039C82C 0039978C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039C830 00399790 48 01 72 AD */ bl sub_803b3adc +/* 8039C834 00399794 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039C838 00399798 7C 08 03 A6 */ mtlr r0 +/* 8039C83C 0039979C 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039C840 003997A0 4E 80 00 20 */ blr + +.global sub_8039c844 +sub_8039c844: +/* 8039C844 003997A4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039C848 003997A8 7C 08 02 A6 */ mflr r0 +/* 8039C84C 003997AC 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039C850 003997B0 48 01 72 C1 */ bl sub_803b3b10 +/* 8039C854 003997B4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039C858 003997B8 7C 08 03 A6 */ mtlr r0 +/* 8039C85C 003997BC 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039C860 003997C0 4E 80 00 20 */ blr diff --git a/asm/musyx/stream.s b/asm/musyx/stream.s new file mode 100644 index 00000000..2cd7d7e7 --- /dev/null +++ b/asm/musyx/stream.s @@ -0,0 +1,4796 @@ +.include "macros.inc" + +.section .text, "ax" + +.global streamInit +streamInit: +/* 8039C864 003997C4 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039C868 003997C8 38 A0 00 00 */ li r5, 0 +/* 8039C86C 003997CC 38 83 00 50 */ addi r4, r3, lbl_80550050@l +/* 8039C870 003997D0 38 00 00 03 */ li r0, 3 +/* 8039C874 003997D4 88 64 02 10 */ lbz r3, 0x210(r4) +/* 8039C878 003997D8 38 E0 00 00 */ li r7, 0 +/* 8039C87C 003997DC 98 AD AE 95 */ stb r5, lbl_805A9A55@sda21(r13) +/* 8039C880 003997E0 2C 03 00 00 */ cmpwi r3, 0 +/* 8039C884 003997E4 98 0D AE 94 */ stb r0, lbl_805A9A54@sda21(r13) +/* 8039C888 003997E8 40 81 00 8C */ ble lbl_8039C914 +/* 8039C88C 003997EC 2C 03 00 08 */ cmpwi r3, 8 +/* 8039C890 003997F0 38 C3 FF F8 */ addi r6, r3, -8 +/* 8039C894 003997F4 40 81 00 4C */ ble lbl_8039C8E0 +/* 8039C898 003997F8 38 06 00 07 */ addi r0, r6, 7 +/* 8039C89C 003997FC 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039C8A0 00399800 54 00 E8 FE */ srwi r0, r0, 3 +/* 8039C8A4 00399804 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039C8A8 00399808 7C 09 03 A6 */ mtctr r0 +/* 8039C8AC 0039980C 2C 06 00 00 */ cmpwi r6, 0 +/* 8039C8B0 00399810 40 81 00 30 */ ble lbl_8039C8E0 +lbl_8039C8B4: +/* 8039C8B4 00399814 98 A3 00 0C */ stb r5, 0xc(r3) +/* 8039C8B8 00399818 38 E7 00 08 */ addi r7, r7, 8 +/* 8039C8BC 0039981C 98 A3 00 70 */ stb r5, 0x70(r3) +/* 8039C8C0 00399820 98 A3 00 D4 */ stb r5, 0xd4(r3) +/* 8039C8C4 00399824 98 A3 01 38 */ stb r5, 0x138(r3) +/* 8039C8C8 00399828 98 A3 01 9C */ stb r5, 0x19c(r3) +/* 8039C8CC 0039982C 98 A3 02 00 */ stb r5, 0x200(r3) +/* 8039C8D0 00399830 98 A3 02 64 */ stb r5, 0x264(r3) +/* 8039C8D4 00399834 98 A3 02 C8 */ stb r5, 0x2c8(r3) +/* 8039C8D8 00399838 38 63 03 20 */ addi r3, r3, 0x320 +/* 8039C8DC 0039983C 42 00 FF D8 */ bdnz lbl_8039C8B4 +lbl_8039C8E0: +/* 8039C8E0 00399840 88 C4 02 10 */ lbz r6, 0x210(r4) +/* 8039C8E4 00399844 1C A7 00 64 */ mulli r5, r7, 0x64 +/* 8039C8E8 00399848 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039C8EC 0039984C 7C 07 30 50 */ subf r0, r7, r6 +/* 8039C8F0 00399850 38 83 13 F8 */ addi r4, r3, lbl_805513F8@l +/* 8039C8F4 00399854 38 60 00 00 */ li r3, 0 +/* 8039C8F8 00399858 7C 84 2A 14 */ add r4, r4, r5 +/* 8039C8FC 0039985C 7C 09 03 A6 */ mtctr r0 +/* 8039C900 00399860 7C 07 30 00 */ cmpw r7, r6 +/* 8039C904 00399864 40 80 00 10 */ bge lbl_8039C914 +lbl_8039C908: +/* 8039C908 00399868 98 64 00 0C */ stb r3, 0xc(r4) +/* 8039C90C 0039986C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039C910 00399870 42 00 FF F8 */ bdnz lbl_8039C908 +lbl_8039C914: +/* 8039C914 00399874 38 00 00 00 */ li r0, 0 +/* 8039C918 00399878 90 0D AE 90 */ stw r0, lbl_805A9A50@sda21(r13) +/* 8039C91C 0039987C 4E 80 00 20 */ blr + +.global SetHWMix +SetHWMix: +/* 8039C920 00399880 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039C924 00399884 7C 08 02 A6 */ mflr r0 +/* 8039C928 00399888 3C E0 43 30 */ lis r7, 0x4330 +/* 8039C92C 0039988C C8 62 D5 58 */ lfd f3, lbl_805AF278@sda21(r2) +/* 8039C930 00399890 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039C934 00399894 38 80 00 00 */ li r4, 0 +/* 8039C938 00399898 C0 82 D5 50 */ lfs f4, lbl_805AF270@sda21(r2) +/* 8039C93C 0039989C 88 C3 00 59 */ lbz r6, 0x59(r3) +/* 8039C940 003998A0 88 A3 00 5C */ lbz r5, 0x5c(r3) +/* 8039C944 003998A4 90 C1 00 0C */ stw r6, 0xc(r1) +/* 8039C948 003998A8 88 03 00 5D */ lbz r0, 0x5d(r3) +/* 8039C94C 003998AC 90 E1 00 08 */ stw r7, 8(r1) +/* 8039C950 003998B0 88 C3 00 5A */ lbz r6, 0x5a(r3) +/* 8039C954 003998B4 C8 01 00 08 */ lfd f0, 8(r1) +/* 8039C958 003998B8 90 A1 00 14 */ stw r5, 0x14(r1) +/* 8039C95C 003998BC 54 C5 80 1E */ slwi r5, r6, 0x10 +/* 8039C960 003998C0 EC 20 18 28 */ fsubs f1, f0, f3 +/* 8039C964 003998C4 88 C3 00 5B */ lbz r6, 0x5b(r3) +/* 8039C968 003998C8 90 E1 00 10 */ stw r7, 0x10(r1) +/* 8039C96C 003998CC 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 8039C970 003998D0 54 C6 80 1E */ slwi r6, r6, 0x10 +/* 8039C974 003998D4 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039C978 003998D8 90 01 00 1C */ stw r0, 0x1c(r1) +/* 8039C97C 003998DC EC 24 00 72 */ fmuls f1, f4, f1 +/* 8039C980 003998E0 EC 40 18 28 */ fsubs f2, f0, f3 +/* 8039C984 003998E4 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8039C988 003998E8 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039C98C 003998EC EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039C990 003998F0 EC 00 18 28 */ fsubs f0, f0, f3 +/* 8039C994 003998F4 EC 64 00 32 */ fmuls f3, f4, f0 +/* 8039C998 003998F8 48 01 6D F1 */ bl hwSetVolume +/* 8039C99C 003998FC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039C9A0 00399900 7C 08 03 A6 */ mtlr r0 +/* 8039C9A4 00399904 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039C9A8 00399908 4E 80 00 20 */ blr + +.global sub_8039c9ac +sub_8039c9ac: +/* 8039C9AC 0039990C 94 21 FF 90 */ stwu r1, -0x70(r1) +/* 8039C9B0 00399910 7C 08 02 A6 */ mflr r0 +/* 8039C9B4 00399914 90 01 00 74 */ stw r0, 0x74(r1) +/* 8039C9B8 00399918 39 61 00 70 */ addi r11, r1, 0x70 +/* 8039C9BC 0039991C 4B FE D0 C1 */ bl sub_80389a7c +/* 8039C9C0 00399920 88 6D AE 95 */ lbz r3, lbl_805A9A55@sda21(r13) +/* 8039C9C4 00399924 28 03 00 00 */ cmplwi r3, 0 +/* 8039C9C8 00399928 41 82 00 10 */ beq lbl_8039C9D8 +/* 8039C9CC 0039992C 38 03 FF FF */ addi r0, r3, -1 +/* 8039C9D0 00399930 98 0D AE 95 */ stb r0, lbl_805A9A55@sda21(r13) +/* 8039C9D4 00399934 48 00 08 6C */ b lbl_8039D240 +lbl_8039C9D8: +/* 8039C9D8 00399938 88 8D AE 94 */ lbz r4, lbl_805A9A54@sda21(r13) +/* 8039C9DC 0039993C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039C9E0 00399940 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039C9E4 00399944 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039C9E8 00399948 98 8D AE 95 */ stb r4, lbl_805A9A55@sda21(r13) +/* 8039C9EC 0039994C 7C 1C 03 78 */ mr r28, r0 +/* 8039C9F0 00399950 3B E3 00 50 */ addi r31, r3, lbl_80550050@l +/* 8039C9F4 00399954 3B A0 00 00 */ li r29, 0 +/* 8039C9F8 00399958 48 00 08 3C */ b lbl_8039D234 +lbl_8039C9FC: +/* 8039C9FC 0039995C 88 1C 00 0C */ lbz r0, 0xc(r28) +/* 8039CA00 00399960 2C 00 00 02 */ cmpwi r0, 2 +/* 8039CA04 00399964 41 82 01 CC */ beq lbl_8039CBD0 +/* 8039CA08 00399968 40 80 08 24 */ bge lbl_8039D22C +/* 8039CA0C 0039996C 2C 00 00 01 */ cmpwi r0, 1 +/* 8039CA10 00399970 40 80 00 08 */ bge lbl_8039CA18 +/* 8039CA14 00399974 48 00 08 18 */ b lbl_8039D22C +lbl_8039CA18: +/* 8039CA18 00399978 80 1C 00 54 */ lwz r0, 0x54(r28) +/* 8039CA1C 0039997C 88 7C 00 0E */ lbz r3, 0xe(r28) +/* 8039CA20 00399980 64 00 40 00 */ oris r0, r0, 0x4000 +/* 8039CA24 00399984 90 01 00 08 */ stw r0, 8(r1) +/* 8039CA28 00399988 48 01 72 BD */ bl sub_803b3ce4 +/* 8039CA2C 0039998C 88 1C 00 0D */ lbz r0, 0xd(r28) +/* 8039CA30 00399990 38 A0 00 00 */ li r5, 0 +/* 8039CA34 00399994 80 9C 00 18 */ lwz r4, 0x18(r28) +/* 8039CA38 00399998 2C 00 00 01 */ cmpwi r0, 1 +/* 8039CA3C 0039999C 90 61 00 0C */ stw r3, 0xc(r1) +/* 8039CA40 003999A0 90 A1 00 14 */ stw r5, 0x14(r1) +/* 8039CA44 003999A4 90 81 00 18 */ stw r4, 0x18(r1) +/* 8039CA48 003999A8 90 A1 00 1C */ stw r5, 0x1c(r1) +/* 8039CA4C 003999AC 90 81 00 20 */ stw r4, 0x20(r1) +/* 8039CA50 003999B0 41 82 00 20 */ beq lbl_8039CA70 +/* 8039CA54 003999B4 40 80 00 44 */ bge lbl_8039CA98 +/* 8039CA58 003999B8 2C 00 00 00 */ cmpwi r0, 0 +/* 8039CA5C 003999BC 40 80 00 08 */ bge lbl_8039CA64 +/* 8039CA60 003999C0 48 00 00 38 */ b lbl_8039CA98 +lbl_8039CA64: +/* 8039CA64 003999C4 38 00 00 02 */ li r0, 2 +/* 8039CA68 003999C8 98 01 00 24 */ stb r0, 0x24(r1) +/* 8039CA6C 003999CC 48 00 00 2C */ b lbl_8039CA98 +lbl_8039CA70: +/* 8039CA70 003999D0 38 7C 00 24 */ addi r3, r28, 0x24 +/* 8039CA74 003999D4 38 00 00 04 */ li r0, 4 +/* 8039CA78 003999D8 90 61 00 10 */ stw r3, 0x10(r1) +/* 8039CA7C 003999DC 80 7C 00 4C */ lwz r3, 0x4c(r28) +/* 8039CA80 003999E0 98 01 00 24 */ stb r0, 0x24(r1) +/* 8039CA84 003999E4 88 9C 00 0F */ lbz r4, 0xf(r28) +/* 8039CA88 003999E8 48 01 6B 5D */ bl hwSetStreamLoopPS +/* 8039CA8C 003999EC 88 1C 00 0F */ lbz r0, 0xf(r28) +/* 8039CA90 003999F0 98 1C 00 26 */ stb r0, 0x26(r28) +/* 8039CA94 003999F4 98 1C 00 27 */ stb r0, 0x27(r28) +lbl_8039CA98: +/* 8039CA98 003999F8 80 7C 00 4C */ lwz r3, 0x4c(r28) +/* 8039CA9C 003999FC 3C 80 00 01 */ lis r4, 0x0000FFFF@ha +/* 8039CAA0 00399A00 81 0D AE 78 */ lwz r8, lbl_805A9A38@sda21(r13) +/* 8039CAA4 00399A04 38 84 FF FF */ addi r4, r4, 0x0000FFFF@l +/* 8039CAA8 00399A08 1C E3 04 04 */ mulli r7, r3, 0x404 +/* 8039CAAC 00399A0C 38 A1 00 08 */ addi r5, r1, 8 +/* 8039CAB0 00399A10 38 C0 00 01 */ li r6, 1 +/* 8039CAB4 00399A14 39 20 00 01 */ li r9, 1 +/* 8039CAB8 00399A18 38 07 00 F4 */ addi r0, r7, 0xf4 +/* 8039CABC 00399A1C 39 40 00 01 */ li r10, 1 +/* 8039CAC0 00399A20 7D 08 00 2E */ lwzx r8, r8, r0 +/* 8039CAC4 00399A24 38 E0 FF FF */ li r7, -1 +/* 8039CAC8 00399A28 48 01 67 11 */ bl hwInitSamplePlayback +/* 8039CACC 00399A2C 80 BC 00 54 */ lwz r5, 0x54(r28) +/* 8039CAD0 00399A30 3C 80 43 30 */ lis r4, 0x4330 +/* 8039CAD4 00399A34 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039CAD8 00399A38 90 81 00 28 */ stw r4, 0x28(r1) +/* 8039CADC 00399A3C 80 03 00 50 */ lwz r0, lbl_80550050@l(r3) +/* 8039CAE0 00399A40 90 A1 00 2C */ stw r5, 0x2c(r1) +/* 8039CAE4 00399A44 C8 42 D5 58 */ lfd f2, lbl_805AF278@sda21(r2) +/* 8039CAE8 00399A48 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 8039CAEC 00399A4C 90 01 00 34 */ stw r0, 0x34(r1) +/* 8039CAF0 00399A50 EC 20 10 28 */ fsubs f1, f0, f2 +/* 8039CAF4 00399A54 C0 62 D5 60 */ lfs f3, lbl_805AF280@sda21(r2) +/* 8039CAF8 00399A58 90 81 00 30 */ stw r4, 0x30(r1) +/* 8039CAFC 00399A5C 80 7C 00 4C */ lwz r3, 0x4c(r28) +/* 8039CB00 00399A60 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 8039CB04 00399A64 EC 00 10 28 */ fsubs f0, f0, f2 +/* 8039CB08 00399A68 EC 01 00 24 */ fdivs f0, f1, f0 +/* 8039CB0C 00399A6C EC 03 00 32 */ fmuls f0, f3, f0 +/* 8039CB10 00399A70 FC 00 00 1E */ fctiwz f0, f0 +/* 8039CB14 00399A74 D8 01 00 38 */ stfd f0, 0x38(r1) +/* 8039CB18 00399A78 80 81 00 3C */ lwz r4, 0x3c(r1) +/* 8039CB1C 00399A7C 48 01 6B 41 */ bl hwSetPitch +/* 8039CB20 00399A80 88 BC 00 59 */ lbz r5, 0x59(r28) +/* 8039CB24 00399A84 3C E0 43 30 */ lis r7, 0x4330 +/* 8039CB28 00399A88 88 7C 00 5C */ lbz r3, 0x5c(r28) +/* 8039CB2C 00399A8C 38 80 00 00 */ li r4, 0 +/* 8039CB30 00399A90 88 1C 00 5D */ lbz r0, 0x5d(r28) +/* 8039CB34 00399A94 90 A1 00 44 */ stw r5, 0x44(r1) +/* 8039CB38 00399A98 C8 62 D5 58 */ lfd f3, lbl_805AF278@sda21(r2) +/* 8039CB3C 00399A9C 90 E1 00 40 */ stw r7, 0x40(r1) +/* 8039CB40 00399AA0 88 BC 00 5A */ lbz r5, 0x5a(r28) +/* 8039CB44 00399AA4 C8 01 00 40 */ lfd f0, 0x40(r1) +/* 8039CB48 00399AA8 90 61 00 4C */ stw r3, 0x4c(r1) +/* 8039CB4C 00399AAC 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 8039CB50 00399AB0 88 7C 00 5B */ lbz r3, 0x5b(r28) +/* 8039CB54 00399AB4 EC 20 18 28 */ fsubs f1, f0, f3 +/* 8039CB58 00399AB8 90 E1 00 48 */ stw r7, 0x48(r1) +/* 8039CB5C 00399ABC C0 82 D5 50 */ lfs f4, lbl_805AF270@sda21(r2) +/* 8039CB60 00399AC0 54 66 80 1E */ slwi r6, r3, 0x10 +/* 8039CB64 00399AC4 C8 01 00 48 */ lfd f0, 0x48(r1) +/* 8039CB68 00399AC8 90 01 00 54 */ stw r0, 0x54(r1) +/* 8039CB6C 00399ACC EC 24 00 72 */ fmuls f1, f4, f1 +/* 8039CB70 00399AD0 EC 40 18 28 */ fsubs f2, f0, f3 +/* 8039CB74 00399AD4 80 7C 00 4C */ lwz r3, 0x4c(r28) +/* 8039CB78 00399AD8 90 E1 00 50 */ stw r7, 0x50(r1) +/* 8039CB7C 00399ADC C8 01 00 50 */ lfd f0, 0x50(r1) +/* 8039CB80 00399AE0 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039CB84 00399AE4 EC 00 18 28 */ fsubs f0, f0, f3 +/* 8039CB88 00399AE8 EC 64 00 32 */ fmuls f3, f4, f0 +/* 8039CB8C 00399AEC 48 01 6B FD */ bl hwSetVolume +/* 8039CB90 00399AF0 80 7C 00 4C */ lwz r3, 0x4c(r28) +/* 8039CB94 00399AF4 88 9C 00 60 */ lbz r4, 0x60(r28) +/* 8039CB98 00399AF8 48 01 6A 61 */ bl hwStart +/* 8039CB9C 00399AFC 38 00 00 02 */ li r0, 2 +/* 8039CBA0 00399B00 98 1C 00 0C */ stb r0, 0xc(r28) +/* 8039CBA4 00399B04 80 1C 00 08 */ lwz r0, 8(r28) +/* 8039CBA8 00399B08 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe +/* 8039CBAC 00399B0C 40 82 06 80 */ bne lbl_8039D22C +/* 8039CBB0 00399B10 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CBB4 00399B14 38 80 00 00 */ li r4, 0 +/* 8039CBB8 00399B18 80 BC 00 1C */ lwz r5, 0x1c(r28) +/* 8039CBBC 00399B1C 38 E0 00 00 */ li r7, 0 +/* 8039CBC0 00399B20 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CBC4 00399B24 39 00 00 00 */ li r8, 0 +/* 8039CBC8 00399B28 48 01 70 4D */ bl hwFlushStream +/* 8039CBCC 00399B2C 48 00 06 60 */ b lbl_8039D22C +lbl_8039CBD0: +/* 8039CBD0 00399B30 80 7C 00 4C */ lwz r3, 0x4c(r28) +/* 8039CBD4 00399B34 48 01 6F 9D */ bl sub_803b3b70 +/* 8039CBD8 00399B38 88 BC 00 0D */ lbz r5, 0xd(r28) +/* 8039CBDC 00399B3C 28 05 00 01 */ cmplwi r5, 1 +/* 8039CBE0 00399B40 40 82 00 24 */ bne lbl_8039CC04 +/* 8039CBE4 00399B44 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 8039CBE8 00399B48 38 04 49 25 */ addi r0, r4, 0x24924925@l +/* 8039CBEC 00399B4C 7C 80 18 16 */ mulhwu r4, r0, r3 +/* 8039CBF0 00399B50 7C 04 18 50 */ subf r0, r4, r3 +/* 8039CBF4 00399B54 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039CBF8 00399B58 7C 00 22 14 */ add r0, r0, r4 +/* 8039CBFC 00399B5C 54 00 E8 FE */ srwi r0, r0, 3 +/* 8039CC00 00399B60 1C 60 00 0E */ mulli r3, r0, 0xe +lbl_8039CC04: +/* 8039CC04 00399B64 80 1C 00 20 */ lwz r0, 0x20(r28) +/* 8039CC08 00399B68 7C 00 18 40 */ cmplw r0, r3 +/* 8039CC0C 00399B6C 41 82 06 20 */ beq lbl_8039D22C +/* 8039CC10 00399B70 40 80 01 B8 */ bge lbl_8039CDC8 +/* 8039CC14 00399B74 2C 05 00 01 */ cmpwi r5, 1 +/* 8039CC18 00399B78 41 82 00 C8 */ beq lbl_8039CCE0 +/* 8039CC1C 00399B7C 40 80 05 D0 */ bge lbl_8039D1EC +/* 8039CC20 00399B80 2C 05 00 00 */ cmpwi r5, 0 +/* 8039CC24 00399B84 40 80 00 08 */ bge lbl_8039CC2C +/* 8039CC28 00399B88 48 00 05 C4 */ b lbl_8039D1EC +lbl_8039CC2C: +/* 8039CC2C 00399B8C 80 DC 00 14 */ lwz r6, 0x14(r28) +/* 8039CC30 00399B90 54 05 08 3C */ slwi r5, r0, 1 +/* 8039CC34 00399B94 81 9C 00 10 */ lwz r12, 0x10(r28) +/* 8039CC38 00399B98 7C 80 18 50 */ subf r4, r0, r3 +/* 8039CC3C 00399B9C 7C 66 2A 14 */ add r3, r6, r5 +/* 8039CC40 00399BA0 80 FC 00 50 */ lwz r7, 0x50(r28) +/* 8039CC44 00399BA4 38 A0 00 00 */ li r5, 0 +/* 8039CC48 00399BA8 38 C0 00 00 */ li r6, 0 +/* 8039CC4C 00399BAC 7D 89 03 A6 */ mtctr r12 +/* 8039CC50 00399BB0 4E 80 04 21 */ bctrl +/* 8039CC54 00399BB4 28 03 00 00 */ cmplwi r3, 0 +/* 8039CC58 00399BB8 41 82 05 94 */ beq lbl_8039D1EC +/* 8039CC5C 00399BBC 88 1C 00 0C */ lbz r0, 0xc(r28) +/* 8039CC60 00399BC0 28 00 00 02 */ cmplwi r0, 2 +/* 8039CC64 00399BC4 40 82 05 88 */ bne lbl_8039D1EC +/* 8039CC68 00399BC8 80 BC 00 20 */ lwz r5, 0x20(r28) +/* 8039CC6C 00399BCC 80 DC 00 18 */ lwz r6, 0x18(r28) +/* 8039CC70 00399BD0 7C 85 1A 14 */ add r4, r5, r3 +/* 8039CC74 00399BD4 80 1C 00 08 */ lwz r0, 8(r28) +/* 8039CC78 00399BD8 7C 64 33 96 */ divwu r3, r4, r6 +/* 8039CC7C 00399BDC 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe +/* 8039CC80 00399BE0 7C 03 31 D6 */ mullw r0, r3, r6 +/* 8039CC84 00399BE4 7F 60 20 50 */ subf r27, r0, r4 +/* 8039CC88 00399BE8 40 82 00 50 */ bne lbl_8039CCD8 +/* 8039CC8C 00399BEC 28 1B 00 00 */ cmplwi r27, 0 +/* 8039CC90 00399BF0 41 82 00 28 */ beq lbl_8039CCB8 +/* 8039CC94 00399BF4 7C 05 D8 50 */ subf r0, r5, r27 +/* 8039CC98 00399BF8 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CC9C 00399BFC 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CCA0 00399C00 54 A4 08 3C */ slwi r4, r5, 1 +/* 8039CCA4 00399C04 54 05 08 3C */ slwi r5, r0, 1 +/* 8039CCA8 00399C08 38 E0 00 00 */ li r7, 0 +/* 8039CCAC 00399C0C 39 00 00 00 */ li r8, 0 +/* 8039CCB0 00399C10 48 01 6F 65 */ bl hwFlushStream +/* 8039CCB4 00399C14 48 00 00 24 */ b lbl_8039CCD8 +lbl_8039CCB8: +/* 8039CCB8 00399C18 7C 05 30 50 */ subf r0, r5, r6 +/* 8039CCBC 00399C1C 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CCC0 00399C20 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CCC4 00399C24 54 A4 08 3C */ slwi r4, r5, 1 +/* 8039CCC8 00399C28 54 05 08 3C */ slwi r5, r0, 1 +/* 8039CCCC 00399C2C 38 E0 00 00 */ li r7, 0 +/* 8039CCD0 00399C30 39 00 00 00 */ li r8, 0 +/* 8039CCD4 00399C34 48 01 6F 41 */ bl hwFlushStream +lbl_8039CCD8: +/* 8039CCD8 00399C38 93 7C 00 20 */ stw r27, 0x20(r28) +/* 8039CCDC 00399C3C 48 00 05 10 */ b lbl_8039D1EC +lbl_8039CCE0: +/* 8039CCE0 00399C40 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 8039CCE4 00399C44 81 1C 00 14 */ lwz r8, 0x14(r28) +/* 8039CCE8 00399C48 38 84 49 25 */ addi r4, r4, 0x24924925@l +/* 8039CCEC 00399C4C 81 9C 00 10 */ lwz r12, 0x10(r28) +/* 8039CCF0 00399C50 7D 24 00 16 */ mulhwu r9, r4, r0 +/* 8039CCF4 00399C54 80 FC 00 50 */ lwz r7, 0x50(r28) +/* 8039CCF8 00399C58 7C 80 18 50 */ subf r4, r0, r3 +/* 8039CCFC 00399C5C 38 A0 00 00 */ li r5, 0 +/* 8039CD00 00399C60 38 C0 00 00 */ li r6, 0 +/* 8039CD04 00399C64 7C 09 00 50 */ subf r0, r9, r0 +/* 8039CD08 00399C68 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039CD0C 00399C6C 7C 00 4A 14 */ add r0, r0, r9 +/* 8039CD10 00399C70 54 1E 00 38 */ rlwinm r30, r0, 0, 0, 0x1c +/* 8039CD14 00399C74 7C 68 F2 14 */ add r3, r8, r30 +/* 8039CD18 00399C78 7D 89 03 A6 */ mtctr r12 +/* 8039CD1C 00399C7C 4E 80 04 21 */ bctrl +/* 8039CD20 00399C80 28 03 00 00 */ cmplwi r3, 0 +/* 8039CD24 00399C84 41 82 04 C8 */ beq lbl_8039D1EC +/* 8039CD28 00399C88 88 1C 00 0C */ lbz r0, 0xc(r28) +/* 8039CD2C 00399C8C 28 00 00 02 */ cmplwi r0, 2 +/* 8039CD30 00399C90 40 82 04 BC */ bne lbl_8039D1EC +/* 8039CD34 00399C94 80 1C 00 20 */ lwz r0, 0x20(r28) +/* 8039CD38 00399C98 80 9C 00 18 */ lwz r4, 0x18(r28) +/* 8039CD3C 00399C9C 7C A0 1A 14 */ add r5, r0, r3 +/* 8039CD40 00399CA0 80 1C 00 08 */ lwz r0, 8(r28) +/* 8039CD44 00399CA4 7C 65 23 96 */ divwu r3, r5, r4 +/* 8039CD48 00399CA8 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe +/* 8039CD4C 00399CAC 7C 03 21 D6 */ mullw r0, r3, r4 +/* 8039CD50 00399CB0 7F 60 28 50 */ subf r27, r0, r5 +/* 8039CD54 00399CB4 40 82 00 6C */ bne lbl_8039CDC0 +/* 8039CD58 00399CB8 28 1B 00 00 */ cmplwi r27, 0 +/* 8039CD5C 00399CBC 41 82 00 44 */ beq lbl_8039CDA0 +/* 8039CD60 00399CC0 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 8039CD64 00399CC4 38 1B 00 0D */ addi r0, r27, 0xd +/* 8039CD68 00399CC8 38 83 49 25 */ addi r4, r3, 0x24924925@l +/* 8039CD6C 00399CCC 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CD70 00399CD0 7C A4 00 16 */ mulhwu r5, r4, r0 +/* 8039CD74 00399CD4 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CD78 00399CD8 7F C4 F3 78 */ mr r4, r30 +/* 8039CD7C 00399CDC 38 E0 00 00 */ li r7, 0 +/* 8039CD80 00399CE0 39 00 00 00 */ li r8, 0 +/* 8039CD84 00399CE4 7C 05 00 50 */ subf r0, r5, r0 +/* 8039CD88 00399CE8 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039CD8C 00399CEC 7C 00 2A 14 */ add r0, r0, r5 +/* 8039CD90 00399CF0 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c +/* 8039CD94 00399CF4 7C BE 00 50 */ subf r5, r30, r0 +/* 8039CD98 00399CF8 48 01 6E 7D */ bl hwFlushStream +/* 8039CD9C 00399CFC 48 00 00 24 */ b lbl_8039CDC0 +lbl_8039CDA0: +/* 8039CDA0 00399D00 80 1C 00 1C */ lwz r0, 0x1c(r28) +/* 8039CDA4 00399D04 7F C4 F3 78 */ mr r4, r30 +/* 8039CDA8 00399D08 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CDAC 00399D0C 38 E0 00 00 */ li r7, 0 +/* 8039CDB0 00399D10 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CDB4 00399D14 7C BE 00 50 */ subf r5, r30, r0 +/* 8039CDB8 00399D18 39 00 00 00 */ li r8, 0 +/* 8039CDBC 00399D1C 48 01 6E 59 */ bl hwFlushStream +lbl_8039CDC0: +/* 8039CDC0 00399D20 93 7C 00 20 */ stw r27, 0x20(r28) +/* 8039CDC4 00399D24 48 00 04 28 */ b lbl_8039D1EC +lbl_8039CDC8: +/* 8039CDC8 00399D28 28 03 00 00 */ cmplwi r3, 0 +/* 8039CDCC 00399D2C 40 82 01 C0 */ bne lbl_8039CF8C +/* 8039CDD0 00399D30 2C 05 00 01 */ cmpwi r5, 1 +/* 8039CDD4 00399D34 41 82 00 CC */ beq lbl_8039CEA0 +/* 8039CDD8 00399D38 40 80 04 14 */ bge lbl_8039D1EC +/* 8039CDDC 00399D3C 2C 05 00 00 */ cmpwi r5, 0 +/* 8039CDE0 00399D40 40 80 00 08 */ bge lbl_8039CDE8 +/* 8039CDE4 00399D44 48 00 04 08 */ b lbl_8039D1EC +lbl_8039CDE8: +/* 8039CDE8 00399D48 80 7C 00 18 */ lwz r3, 0x18(r28) +/* 8039CDEC 00399D4C 54 06 08 3C */ slwi r6, r0, 1 +/* 8039CDF0 00399D50 80 FC 00 14 */ lwz r7, 0x14(r28) +/* 8039CDF4 00399D54 38 A0 00 00 */ li r5, 0 +/* 8039CDF8 00399D58 81 9C 00 10 */ lwz r12, 0x10(r28) +/* 8039CDFC 00399D5C 7C 80 18 50 */ subf r4, r0, r3 +/* 8039CE00 00399D60 7C 67 32 14 */ add r3, r7, r6 +/* 8039CE04 00399D64 80 FC 00 50 */ lwz r7, 0x50(r28) +/* 8039CE08 00399D68 38 C0 00 00 */ li r6, 0 +/* 8039CE0C 00399D6C 7D 89 03 A6 */ mtctr r12 +/* 8039CE10 00399D70 4E 80 04 21 */ bctrl +/* 8039CE14 00399D74 28 03 00 00 */ cmplwi r3, 0 +/* 8039CE18 00399D78 41 82 03 D4 */ beq lbl_8039D1EC +/* 8039CE1C 00399D7C 88 1C 00 0C */ lbz r0, 0xc(r28) +/* 8039CE20 00399D80 28 00 00 02 */ cmplwi r0, 2 +/* 8039CE24 00399D84 40 82 03 C8 */ bne lbl_8039D1EC +/* 8039CE28 00399D88 80 FC 00 20 */ lwz r7, 0x20(r28) +/* 8039CE2C 00399D8C 80 9C 00 18 */ lwz r4, 0x18(r28) +/* 8039CE30 00399D90 7C A7 1A 14 */ add r5, r7, r3 +/* 8039CE34 00399D94 80 1C 00 08 */ lwz r0, 8(r28) +/* 8039CE38 00399D98 7C 65 23 96 */ divwu r3, r5, r4 +/* 8039CE3C 00399D9C 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe +/* 8039CE40 00399DA0 7C 03 21 D6 */ mullw r0, r3, r4 +/* 8039CE44 00399DA4 7F 60 28 50 */ subf r27, r0, r5 +/* 8039CE48 00399DA8 40 82 00 50 */ bne lbl_8039CE98 +/* 8039CE4C 00399DAC 28 1B 00 00 */ cmplwi r27, 0 +/* 8039CE50 00399DB0 40 82 00 28 */ bne lbl_8039CE78 +/* 8039CE54 00399DB4 80 1C 00 1C */ lwz r0, 0x1c(r28) +/* 8039CE58 00399DB8 54 E4 08 3C */ slwi r4, r7, 1 +/* 8039CE5C 00399DBC 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CE60 00399DC0 38 E0 00 00 */ li r7, 0 +/* 8039CE64 00399DC4 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CE68 00399DC8 7C A4 00 50 */ subf r5, r4, r0 +/* 8039CE6C 00399DCC 39 00 00 00 */ li r8, 0 +/* 8039CE70 00399DD0 48 01 6D A5 */ bl hwFlushStream +/* 8039CE74 00399DD4 48 00 00 24 */ b lbl_8039CE98 +lbl_8039CE78: +/* 8039CE78 00399DD8 7C 07 D8 50 */ subf r0, r7, r27 +/* 8039CE7C 00399DDC 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CE80 00399DE0 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CE84 00399DE4 54 E4 08 3C */ slwi r4, r7, 1 +/* 8039CE88 00399DE8 54 05 08 3C */ slwi r5, r0, 1 +/* 8039CE8C 00399DEC 38 E0 00 00 */ li r7, 0 +/* 8039CE90 00399DF0 39 00 00 00 */ li r8, 0 +/* 8039CE94 00399DF4 48 01 6D 81 */ bl hwFlushStream +lbl_8039CE98: +/* 8039CE98 00399DF8 93 7C 00 20 */ stw r27, 0x20(r28) +/* 8039CE9C 00399DFC 48 00 03 50 */ b lbl_8039D1EC +lbl_8039CEA0: +/* 8039CEA0 00399E00 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 8039CEA4 00399E04 80 7C 00 18 */ lwz r3, 0x18(r28) +/* 8039CEA8 00399E08 38 84 49 25 */ addi r4, r4, 0x24924925@l +/* 8039CEAC 00399E0C 81 1C 00 14 */ lwz r8, 0x14(r28) +/* 8039CEB0 00399E10 7D 24 00 16 */ mulhwu r9, r4, r0 +/* 8039CEB4 00399E14 81 9C 00 10 */ lwz r12, 0x10(r28) +/* 8039CEB8 00399E18 7C 80 18 50 */ subf r4, r0, r3 +/* 8039CEBC 00399E1C 80 FC 00 50 */ lwz r7, 0x50(r28) +/* 8039CEC0 00399E20 38 A0 00 00 */ li r5, 0 +/* 8039CEC4 00399E24 38 C0 00 00 */ li r6, 0 +/* 8039CEC8 00399E28 7C 09 00 50 */ subf r0, r9, r0 +/* 8039CECC 00399E2C 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039CED0 00399E30 7C 00 4A 14 */ add r0, r0, r9 +/* 8039CED4 00399E34 54 1E 00 38 */ rlwinm r30, r0, 0, 0, 0x1c +/* 8039CED8 00399E38 7C 68 F2 14 */ add r3, r8, r30 +/* 8039CEDC 00399E3C 7D 89 03 A6 */ mtctr r12 +/* 8039CEE0 00399E40 4E 80 04 21 */ bctrl +/* 8039CEE4 00399E44 28 03 00 00 */ cmplwi r3, 0 +/* 8039CEE8 00399E48 41 82 03 04 */ beq lbl_8039D1EC +/* 8039CEEC 00399E4C 88 1C 00 0C */ lbz r0, 0xc(r28) +/* 8039CEF0 00399E50 28 00 00 02 */ cmplwi r0, 2 +/* 8039CEF4 00399E54 40 82 02 F8 */ bne lbl_8039D1EC +/* 8039CEF8 00399E58 80 1C 00 20 */ lwz r0, 0x20(r28) +/* 8039CEFC 00399E5C 80 9C 00 18 */ lwz r4, 0x18(r28) +/* 8039CF00 00399E60 7C A0 1A 14 */ add r5, r0, r3 +/* 8039CF04 00399E64 80 1C 00 08 */ lwz r0, 8(r28) +/* 8039CF08 00399E68 7C 65 23 96 */ divwu r3, r5, r4 +/* 8039CF0C 00399E6C 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe +/* 8039CF10 00399E70 7C 03 21 D6 */ mullw r0, r3, r4 +/* 8039CF14 00399E74 7F 60 28 50 */ subf r27, r0, r5 +/* 8039CF18 00399E78 40 82 00 6C */ bne lbl_8039CF84 +/* 8039CF1C 00399E7C 28 1B 00 00 */ cmplwi r27, 0 +/* 8039CF20 00399E80 40 82 00 28 */ bne lbl_8039CF48 +/* 8039CF24 00399E84 80 1C 00 1C */ lwz r0, 0x1c(r28) +/* 8039CF28 00399E88 7F C4 F3 78 */ mr r4, r30 +/* 8039CF2C 00399E8C 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CF30 00399E90 38 E0 00 00 */ li r7, 0 +/* 8039CF34 00399E94 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CF38 00399E98 7C BE 00 50 */ subf r5, r30, r0 +/* 8039CF3C 00399E9C 39 00 00 00 */ li r8, 0 +/* 8039CF40 00399EA0 48 01 6C D5 */ bl hwFlushStream +/* 8039CF44 00399EA4 48 00 00 40 */ b lbl_8039CF84 +lbl_8039CF48: +/* 8039CF48 00399EA8 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 8039CF4C 00399EAC 38 1B 00 0D */ addi r0, r27, 0xd +/* 8039CF50 00399EB0 38 83 49 25 */ addi r4, r3, 0x24924925@l +/* 8039CF54 00399EB4 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039CF58 00399EB8 7C A4 00 16 */ mulhwu r5, r4, r0 +/* 8039CF5C 00399EBC 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039CF60 00399EC0 7F C4 F3 78 */ mr r4, r30 +/* 8039CF64 00399EC4 38 E0 00 00 */ li r7, 0 +/* 8039CF68 00399EC8 39 00 00 00 */ li r8, 0 +/* 8039CF6C 00399ECC 7C 05 00 50 */ subf r0, r5, r0 +/* 8039CF70 00399ED0 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039CF74 00399ED4 7C 00 2A 14 */ add r0, r0, r5 +/* 8039CF78 00399ED8 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c +/* 8039CF7C 00399EDC 7C BE 00 50 */ subf r5, r30, r0 +/* 8039CF80 00399EE0 48 01 6C 95 */ bl hwFlushStream +lbl_8039CF84: +/* 8039CF84 00399EE4 93 7C 00 20 */ stw r27, 0x20(r28) +/* 8039CF88 00399EE8 48 00 02 64 */ b lbl_8039D1EC +lbl_8039CF8C: +/* 8039CF8C 00399EEC 2C 05 00 01 */ cmpwi r5, 1 +/* 8039CF90 00399EF0 41 82 01 14 */ beq lbl_8039D0A4 +/* 8039CF94 00399EF4 40 80 02 58 */ bge lbl_8039D1EC +/* 8039CF98 00399EF8 2C 05 00 00 */ cmpwi r5, 0 +/* 8039CF9C 00399EFC 40 80 00 08 */ bge lbl_8039CFA4 +/* 8039CFA0 00399F00 48 00 02 4C */ b lbl_8039D1EC +lbl_8039CFA4: +/* 8039CFA4 00399F04 80 9C 00 18 */ lwz r4, 0x18(r28) +/* 8039CFA8 00399F08 54 07 08 3C */ slwi r7, r0, 1 +/* 8039CFAC 00399F0C 80 BC 00 14 */ lwz r5, 0x14(r28) +/* 8039CFB0 00399F10 7C 66 1B 78 */ mr r6, r3 +/* 8039CFB4 00399F14 81 9C 00 10 */ lwz r12, 0x10(r28) +/* 8039CFB8 00399F18 7C 80 20 50 */ subf r4, r0, r4 +/* 8039CFBC 00399F1C 7C 65 3A 14 */ add r3, r5, r7 +/* 8039CFC0 00399F20 80 FC 00 50 */ lwz r7, 0x50(r28) +/* 8039CFC4 00399F24 7D 89 03 A6 */ mtctr r12 +/* 8039CFC8 00399F28 4E 80 04 21 */ bctrl +/* 8039CFCC 00399F2C 28 03 00 00 */ cmplwi r3, 0 +/* 8039CFD0 00399F30 41 82 02 1C */ beq lbl_8039D1EC +/* 8039CFD4 00399F34 88 1C 00 0C */ lbz r0, 0xc(r28) +/* 8039CFD8 00399F38 28 00 00 02 */ cmplwi r0, 2 +/* 8039CFDC 00399F3C 40 82 02 10 */ bne lbl_8039D1EC +/* 8039CFE0 00399F40 80 FC 00 20 */ lwz r7, 0x20(r28) +/* 8039CFE4 00399F44 80 DC 00 18 */ lwz r6, 0x18(r28) +/* 8039CFE8 00399F48 7C A7 1A 14 */ add r5, r7, r3 +/* 8039CFEC 00399F4C 80 1C 00 08 */ lwz r0, 8(r28) +/* 8039CFF0 00399F50 7C 85 33 96 */ divwu r4, r5, r6 +/* 8039CFF4 00399F54 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe +/* 8039CFF8 00399F58 7C 04 31 D6 */ mullw r0, r4, r6 +/* 8039CFFC 00399F5C 7F 60 28 50 */ subf r27, r0, r5 +/* 8039D000 00399F60 40 82 00 9C */ bne lbl_8039D09C +/* 8039D004 00399F64 7C 07 30 50 */ subf r0, r7, r6 +/* 8039D008 00399F68 7C 03 00 40 */ cmplw r3, r0 +/* 8039D00C 00399F6C 40 81 00 44 */ ble lbl_8039D050 +/* 8039D010 00399F70 80 1C 00 1C */ lwz r0, 0x1c(r28) +/* 8039D014 00399F74 54 E4 08 3C */ slwi r4, r7, 1 +/* 8039D018 00399F78 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039D01C 00399F7C 38 E0 00 00 */ li r7, 0 +/* 8039D020 00399F80 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039D024 00399F84 7C A4 00 50 */ subf r5, r4, r0 +/* 8039D028 00399F88 39 00 00 00 */ li r8, 0 +/* 8039D02C 00399F8C 48 01 6B E9 */ bl hwFlushStream +/* 8039D030 00399F90 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039D034 00399F94 57 65 08 3C */ slwi r5, r27, 1 +/* 8039D038 00399F98 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039D03C 00399F9C 38 80 00 00 */ li r4, 0 +/* 8039D040 00399FA0 38 E0 00 00 */ li r7, 0 +/* 8039D044 00399FA4 39 00 00 00 */ li r8, 0 +/* 8039D048 00399FA8 48 01 6B CD */ bl hwFlushStream +/* 8039D04C 00399FAC 48 00 00 50 */ b lbl_8039D09C +lbl_8039D050: +/* 8039D050 00399FB0 28 1B 00 00 */ cmplwi r27, 0 +/* 8039D054 00399FB4 40 82 00 28 */ bne lbl_8039D07C +/* 8039D058 00399FB8 80 1C 00 1C */ lwz r0, 0x1c(r28) +/* 8039D05C 00399FBC 54 E4 08 3C */ slwi r4, r7, 1 +/* 8039D060 00399FC0 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039D064 00399FC4 38 E0 00 00 */ li r7, 0 +/* 8039D068 00399FC8 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039D06C 00399FCC 7C A4 00 50 */ subf r5, r4, r0 +/* 8039D070 00399FD0 39 00 00 00 */ li r8, 0 +/* 8039D074 00399FD4 48 01 6B A1 */ bl hwFlushStream +/* 8039D078 00399FD8 48 00 00 24 */ b lbl_8039D09C +lbl_8039D07C: +/* 8039D07C 00399FDC 7C 07 D8 50 */ subf r0, r7, r27 +/* 8039D080 00399FE0 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039D084 00399FE4 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039D088 00399FE8 54 E4 08 3C */ slwi r4, r7, 1 +/* 8039D08C 00399FEC 54 05 08 3C */ slwi r5, r0, 1 +/* 8039D090 00399FF0 38 E0 00 00 */ li r7, 0 +/* 8039D094 00399FF4 39 00 00 00 */ li r8, 0 +/* 8039D098 00399FF8 48 01 6B 7D */ bl hwFlushStream +lbl_8039D09C: +/* 8039D09C 00399FFC 93 7C 00 20 */ stw r27, 0x20(r28) +/* 8039D0A0 0039A000 48 00 01 4C */ b lbl_8039D1EC +lbl_8039D0A4: +/* 8039D0A4 0039A004 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 8039D0A8 0039A008 80 BC 00 14 */ lwz r5, 0x14(r28) +/* 8039D0AC 0039A00C 38 C4 49 25 */ addi r6, r4, 0x24924925@l +/* 8039D0B0 0039A010 80 9C 00 18 */ lwz r4, 0x18(r28) +/* 8039D0B4 0039A014 7D 06 00 16 */ mulhwu r8, r6, r0 +/* 8039D0B8 0039A018 81 9C 00 10 */ lwz r12, 0x10(r28) +/* 8039D0BC 0039A01C 7C 80 20 50 */ subf r4, r0, r4 +/* 8039D0C0 0039A020 80 FC 00 50 */ lwz r7, 0x50(r28) +/* 8039D0C4 0039A024 7C 66 1B 78 */ mr r6, r3 +/* 8039D0C8 0039A028 7C 08 00 50 */ subf r0, r8, r0 +/* 8039D0CC 0039A02C 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039D0D0 0039A030 7C 00 42 14 */ add r0, r0, r8 +/* 8039D0D4 0039A034 54 1B 00 38 */ rlwinm r27, r0, 0, 0, 0x1c +/* 8039D0D8 0039A038 7C 65 DA 14 */ add r3, r5, r27 +/* 8039D0DC 0039A03C 7D 89 03 A6 */ mtctr r12 +/* 8039D0E0 0039A040 4E 80 04 21 */ bctrl +/* 8039D0E4 0039A044 28 03 00 00 */ cmplwi r3, 0 +/* 8039D0E8 0039A048 41 82 01 04 */ beq lbl_8039D1EC +/* 8039D0EC 0039A04C 88 1C 00 0C */ lbz r0, 0xc(r28) +/* 8039D0F0 0039A050 28 00 00 02 */ cmplwi r0, 2 +/* 8039D0F4 0039A054 40 82 00 F8 */ bne lbl_8039D1EC +/* 8039D0F8 0039A058 80 DC 00 20 */ lwz r6, 0x20(r28) +/* 8039D0FC 0039A05C 80 FC 00 18 */ lwz r7, 0x18(r28) +/* 8039D100 0039A060 7C A6 1A 14 */ add r5, r6, r3 +/* 8039D104 0039A064 80 1C 00 08 */ lwz r0, 8(r28) +/* 8039D108 0039A068 7C 85 3B 96 */ divwu r4, r5, r7 +/* 8039D10C 0039A06C 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe +/* 8039D110 0039A070 7C 04 39 D6 */ mullw r0, r4, r7 +/* 8039D114 0039A074 7F C0 28 50 */ subf r30, r0, r5 +/* 8039D118 0039A078 40 82 00 D0 */ bne lbl_8039D1E8 +/* 8039D11C 0039A07C 7C 06 38 50 */ subf r0, r6, r7 +/* 8039D120 0039A080 7C 03 00 40 */ cmplw r3, r0 +/* 8039D124 0039A084 40 81 00 5C */ ble lbl_8039D180 +/* 8039D128 0039A088 80 1C 00 1C */ lwz r0, 0x1c(r28) +/* 8039D12C 0039A08C 7F 64 DB 78 */ mr r4, r27 +/* 8039D130 0039A090 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039D134 0039A094 38 E0 00 00 */ li r7, 0 +/* 8039D138 0039A098 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039D13C 0039A09C 7C BB 00 50 */ subf r5, r27, r0 +/* 8039D140 0039A0A0 39 00 00 00 */ li r8, 0 +/* 8039D144 0039A0A4 48 01 6A D1 */ bl hwFlushStream +/* 8039D148 0039A0A8 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 8039D14C 0039A0AC 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039D150 0039A0B0 38 04 49 25 */ addi r0, r4, 0x24924925@l +/* 8039D154 0039A0B4 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039D158 0039A0B8 7C A0 F0 16 */ mulhwu r5, r0, r30 +/* 8039D15C 0039A0BC 38 80 00 00 */ li r4, 0 +/* 8039D160 0039A0C0 38 E0 00 00 */ li r7, 0 +/* 8039D164 0039A0C4 39 00 00 00 */ li r8, 0 +/* 8039D168 0039A0C8 7C 05 F0 50 */ subf r0, r5, r30 +/* 8039D16C 0039A0CC 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039D170 0039A0D0 7C 00 2A 14 */ add r0, r0, r5 +/* 8039D174 0039A0D4 54 05 00 38 */ rlwinm r5, r0, 0, 0, 0x1c +/* 8039D178 0039A0D8 48 01 6A 9D */ bl hwFlushStream +/* 8039D17C 0039A0DC 48 00 00 6C */ b lbl_8039D1E8 +lbl_8039D180: +/* 8039D180 0039A0E0 28 1E 00 00 */ cmplwi r30, 0 +/* 8039D184 0039A0E4 40 82 00 28 */ bne lbl_8039D1AC +/* 8039D188 0039A0E8 80 1C 00 1C */ lwz r0, 0x1c(r28) +/* 8039D18C 0039A0EC 7F 64 DB 78 */ mr r4, r27 +/* 8039D190 0039A0F0 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039D194 0039A0F4 38 E0 00 00 */ li r7, 0 +/* 8039D198 0039A0F8 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039D19C 0039A0FC 7C BB 00 50 */ subf r5, r27, r0 +/* 8039D1A0 0039A100 39 00 00 00 */ li r8, 0 +/* 8039D1A4 0039A104 48 01 6A 71 */ bl hwFlushStream +/* 8039D1A8 0039A108 48 00 00 40 */ b lbl_8039D1E8 +lbl_8039D1AC: +/* 8039D1AC 0039A10C 3C 60 24 92 */ lis r3, 0x24924925@ha +/* 8039D1B0 0039A110 38 1E 00 0D */ addi r0, r30, 0xd +/* 8039D1B4 0039A114 38 83 49 25 */ addi r4, r3, 0x24924925@l +/* 8039D1B8 0039A118 80 7C 00 14 */ lwz r3, 0x14(r28) +/* 8039D1BC 0039A11C 7C A4 00 16 */ mulhwu r5, r4, r0 +/* 8039D1C0 0039A120 88 DC 00 0E */ lbz r6, 0xe(r28) +/* 8039D1C4 0039A124 7F 64 DB 78 */ mr r4, r27 +/* 8039D1C8 0039A128 38 E0 00 00 */ li r7, 0 +/* 8039D1CC 0039A12C 39 00 00 00 */ li r8, 0 +/* 8039D1D0 0039A130 7C 05 00 50 */ subf r0, r5, r0 +/* 8039D1D4 0039A134 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039D1D8 0039A138 7C 00 2A 14 */ add r0, r0, r5 +/* 8039D1DC 0039A13C 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c +/* 8039D1E0 0039A140 7C BB 00 50 */ subf r5, r27, r0 +/* 8039D1E4 0039A144 48 01 6A 31 */ bl hwFlushStream +lbl_8039D1E8: +/* 8039D1E8 0039A148 93 DC 00 20 */ stw r30, 0x20(r28) +lbl_8039D1EC: +/* 8039D1EC 0039A14C 88 1C 00 0C */ lbz r0, 0xc(r28) +/* 8039D1F0 0039A150 28 00 00 02 */ cmplwi r0, 2 +/* 8039D1F4 0039A154 40 82 00 38 */ bne lbl_8039D22C +/* 8039D1F8 0039A158 80 1C 00 08 */ lwz r0, 8(r28) +/* 8039D1FC 0039A15C 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe +/* 8039D200 0039A160 40 82 00 2C */ bne lbl_8039D22C +/* 8039D204 0039A164 88 1C 00 0D */ lbz r0, 0xd(r28) +/* 8039D208 0039A168 28 00 00 01 */ cmplwi r0, 1 +/* 8039D20C 0039A16C 40 82 00 20 */ bne lbl_8039D22C +/* 8039D210 0039A170 80 9C 00 14 */ lwz r4, 0x14(r28) +/* 8039D214 0039A174 80 7C 00 4C */ lwz r3, 0x4c(r28) +/* 8039D218 0039A178 3C 84 40 00 */ addis r4, r4, 0x4000 +/* 8039D21C 0039A17C 80 04 00 00 */ lwz r0, 0(r4) +/* 8039D220 0039A180 54 04 46 3E */ srwi r4, r0, 0x18 +/* 8039D224 0039A184 98 9C 00 0F */ stb r4, 0xf(r28) +/* 8039D228 0039A188 48 01 63 BD */ bl hwSetStreamLoopPS +lbl_8039D22C: +/* 8039D22C 0039A18C 3B BD 00 01 */ addi r29, r29, 1 +/* 8039D230 0039A190 3B 9C 00 64 */ addi r28, r28, 0x64 +lbl_8039D234: +/* 8039D234 0039A194 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 8039D238 0039A198 7C 1D 00 40 */ cmplw r29, r0 +/* 8039D23C 0039A19C 41 80 F7 C0 */ blt lbl_8039C9FC +lbl_8039D240: +/* 8039D240 0039A1A0 39 61 00 70 */ addi r11, r1, 0x70 +/* 8039D244 0039A1A4 4B FE C8 85 */ bl _restgpr_27 +/* 8039D248 0039A1A8 80 01 00 74 */ lwz r0, 0x74(r1) +/* 8039D24C 0039A1AC 7C 08 03 A6 */ mtlr r0 +/* 8039D250 0039A1B0 38 21 00 70 */ addi r1, r1, 0x70 +/* 8039D254 0039A1B4 4E 80 00 20 */ blr + +.global nullsub_60 +nullsub_60: +/* 8039D258 0039A1B8 4E 80 00 20 */ blr + +.global streamKill +streamKill: +/* 8039D25C 0039A1BC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039D260 0039A1C0 7C 08 02 A6 */ mflr r0 +/* 8039D264 0039A1C4 1C 83 00 64 */ mulli r4, r3, 0x64 +/* 8039D268 0039A1C8 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039D26C 0039A1CC 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039D270 0039A1D0 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039D274 0039A1D4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039D278 0039A1D8 7F E0 22 14 */ add r31, r0, r4 +/* 8039D27C 0039A1DC 88 1F 00 0C */ lbz r0, 0xc(r31) +/* 8039D280 0039A1E0 2C 00 00 03 */ cmpwi r0, 3 +/* 8039D284 0039A1E4 40 80 00 48 */ bge lbl_8039D2CC +/* 8039D288 0039A1E8 2C 00 00 01 */ cmpwi r0, 1 +/* 8039D28C 0039A1EC 40 80 00 08 */ bge lbl_8039D294 +/* 8039D290 0039A1F0 48 00 00 3C */ b lbl_8039D2CC +lbl_8039D294: +/* 8039D294 0039A1F4 28 00 00 02 */ cmplwi r0, 2 +/* 8039D298 0039A1F8 40 82 00 0C */ bne lbl_8039D2A4 +/* 8039D29C 0039A1FC 80 7F 00 4C */ lwz r3, 0x4c(r31) +/* 8039D2A0 0039A200 48 00 B5 65 */ bl voiceUnblock +lbl_8039D2A4: +/* 8039D2A4 0039A204 38 00 00 03 */ li r0, 3 +/* 8039D2A8 0039A208 38 60 00 00 */ li r3, 0 +/* 8039D2AC 0039A20C 98 1F 00 0C */ stb r0, 0xc(r31) +/* 8039D2B0 0039A210 38 80 00 00 */ li r4, 0 +/* 8039D2B4 0039A214 38 A0 00 00 */ li r5, 0 +/* 8039D2B8 0039A218 38 C0 00 00 */ li r6, 0 +/* 8039D2BC 0039A21C 81 9F 00 10 */ lwz r12, 0x10(r31) +/* 8039D2C0 0039A220 80 FF 00 50 */ lwz r7, 0x50(r31) +/* 8039D2C4 0039A224 7D 89 03 A6 */ mtctr r12 +/* 8039D2C8 0039A228 4E 80 04 21 */ bctrl +lbl_8039D2CC: +/* 8039D2CC 0039A22C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039D2D0 0039A230 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039D2D4 0039A234 7C 08 03 A6 */ mtlr r0 +/* 8039D2D8 0039A238 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039D2DC 0039A23C 4E 80 00 20 */ blr + +.global GetPrivateIndex +GetPrivateIndex: +/* 8039D2E0 0039A240 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 8039D2E4 0039A244 38 00 00 08 */ li r0, 8 +/* 8039D2E8 0039A248 38 84 13 F8 */ addi r4, r4, lbl_805513F8@l +/* 8039D2EC 0039A24C 38 A0 00 00 */ li r5, 0 +/* 8039D2F0 0039A250 7C 09 03 A6 */ mtctr r0 +lbl_8039D2F4: +/* 8039D2F4 0039A254 88 04 00 0C */ lbz r0, 0xc(r4) +/* 8039D2F8 0039A258 28 00 00 00 */ cmplwi r0, 0 +/* 8039D2FC 0039A25C 41 82 00 18 */ beq lbl_8039D314 +/* 8039D300 0039A260 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D304 0039A264 7C 03 00 40 */ cmplw r3, r0 +/* 8039D308 0039A268 40 82 00 0C */ bne lbl_8039D314 +/* 8039D30C 0039A26C 7C A3 2B 78 */ mr r3, r5 +/* 8039D310 0039A270 4E 80 00 20 */ blr +lbl_8039D314: +/* 8039D314 0039A274 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D318 0039A278 38 A5 00 01 */ addi r5, r5, 1 +/* 8039D31C 0039A27C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D320 0039A280 28 00 00 00 */ cmplwi r0, 0 +/* 8039D324 0039A284 41 82 00 18 */ beq lbl_8039D33C +/* 8039D328 0039A288 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D32C 0039A28C 7C 03 00 40 */ cmplw r3, r0 +/* 8039D330 0039A290 40 82 00 0C */ bne lbl_8039D33C +/* 8039D334 0039A294 7C A3 2B 78 */ mr r3, r5 +/* 8039D338 0039A298 4E 80 00 20 */ blr +lbl_8039D33C: +/* 8039D33C 0039A29C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D340 0039A2A0 38 A5 00 01 */ addi r5, r5, 1 +/* 8039D344 0039A2A4 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D348 0039A2A8 28 00 00 00 */ cmplwi r0, 0 +/* 8039D34C 0039A2AC 41 82 00 18 */ beq lbl_8039D364 +/* 8039D350 0039A2B0 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D354 0039A2B4 7C 03 00 40 */ cmplw r3, r0 +/* 8039D358 0039A2B8 40 82 00 0C */ bne lbl_8039D364 +/* 8039D35C 0039A2BC 7C A3 2B 78 */ mr r3, r5 +/* 8039D360 0039A2C0 4E 80 00 20 */ blr +lbl_8039D364: +/* 8039D364 0039A2C4 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D368 0039A2C8 38 A5 00 01 */ addi r5, r5, 1 +/* 8039D36C 0039A2CC 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D370 0039A2D0 28 00 00 00 */ cmplwi r0, 0 +/* 8039D374 0039A2D4 41 82 00 18 */ beq lbl_8039D38C +/* 8039D378 0039A2D8 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D37C 0039A2DC 7C 03 00 40 */ cmplw r3, r0 +/* 8039D380 0039A2E0 40 82 00 0C */ bne lbl_8039D38C +/* 8039D384 0039A2E4 7C A3 2B 78 */ mr r3, r5 +/* 8039D388 0039A2E8 4E 80 00 20 */ blr +lbl_8039D38C: +/* 8039D38C 0039A2EC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D390 0039A2F0 38 A5 00 01 */ addi r5, r5, 1 +/* 8039D394 0039A2F4 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D398 0039A2F8 28 00 00 00 */ cmplwi r0, 0 +/* 8039D39C 0039A2FC 41 82 00 18 */ beq lbl_8039D3B4 +/* 8039D3A0 0039A300 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D3A4 0039A304 7C 03 00 40 */ cmplw r3, r0 +/* 8039D3A8 0039A308 40 82 00 0C */ bne lbl_8039D3B4 +/* 8039D3AC 0039A30C 7C A3 2B 78 */ mr r3, r5 +/* 8039D3B0 0039A310 4E 80 00 20 */ blr +lbl_8039D3B4: +/* 8039D3B4 0039A314 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D3B8 0039A318 38 A5 00 01 */ addi r5, r5, 1 +/* 8039D3BC 0039A31C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D3C0 0039A320 28 00 00 00 */ cmplwi r0, 0 +/* 8039D3C4 0039A324 41 82 00 18 */ beq lbl_8039D3DC +/* 8039D3C8 0039A328 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D3CC 0039A32C 7C 03 00 40 */ cmplw r3, r0 +/* 8039D3D0 0039A330 40 82 00 0C */ bne lbl_8039D3DC +/* 8039D3D4 0039A334 7C A3 2B 78 */ mr r3, r5 +/* 8039D3D8 0039A338 4E 80 00 20 */ blr +lbl_8039D3DC: +/* 8039D3DC 0039A33C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D3E0 0039A340 38 A5 00 01 */ addi r5, r5, 1 +/* 8039D3E4 0039A344 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D3E8 0039A348 28 00 00 00 */ cmplwi r0, 0 +/* 8039D3EC 0039A34C 41 82 00 18 */ beq lbl_8039D404 +/* 8039D3F0 0039A350 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D3F4 0039A354 7C 03 00 40 */ cmplw r3, r0 +/* 8039D3F8 0039A358 40 82 00 0C */ bne lbl_8039D404 +/* 8039D3FC 0039A35C 7C A3 2B 78 */ mr r3, r5 +/* 8039D400 0039A360 4E 80 00 20 */ blr +lbl_8039D404: +/* 8039D404 0039A364 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D408 0039A368 38 A5 00 01 */ addi r5, r5, 1 +/* 8039D40C 0039A36C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D410 0039A370 28 00 00 00 */ cmplwi r0, 0 +/* 8039D414 0039A374 41 82 00 18 */ beq lbl_8039D42C +/* 8039D418 0039A378 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D41C 0039A37C 7C 03 00 40 */ cmplw r3, r0 +/* 8039D420 0039A380 40 82 00 0C */ bne lbl_8039D42C +/* 8039D424 0039A384 7C A3 2B 78 */ mr r3, r5 +/* 8039D428 0039A388 4E 80 00 20 */ blr +lbl_8039D42C: +/* 8039D42C 0039A38C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D430 0039A390 38 A5 00 01 */ addi r5, r5, 1 +/* 8039D434 0039A394 42 00 FE C0 */ bdnz lbl_8039D2F4 +/* 8039D438 0039A398 38 60 FF FF */ li r3, -1 +/* 8039D43C 0039A39C 4E 80 00 20 */ blr + +.global sndStreamARAMUpdate +sndStreamARAMUpdate: +/* 8039D440 0039A3A0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039D444 0039A3A4 7C 08 02 A6 */ mflr r0 +/* 8039D448 0039A3A8 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039D44C 0039A3AC 39 61 00 20 */ addi r11, r1, 0x20 +/* 8039D450 0039A3B0 4B FE C6 29 */ bl func_80389A78 +/* 8039D454 0039A3B4 7C 7E 1B 78 */ mr r30, r3 +/* 8039D458 0039A3B8 7C 9A 23 78 */ mr r26, r4 +/* 8039D45C 0039A3BC 7C BB 2B 78 */ mr r27, r5 +/* 8039D460 0039A3C0 7C DC 33 78 */ mr r28, r6 +/* 8039D464 0039A3C4 7C FD 3B 78 */ mr r29, r7 +/* 8039D468 0039A3C8 48 01 7C 55 */ bl hwDisableIrq +/* 8039D46C 0039A3CC 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039D470 0039A3D0 38 00 00 08 */ li r0, 8 +/* 8039D474 0039A3D4 38 83 13 F8 */ addi r4, r3, lbl_805513F8@l +/* 8039D478 0039A3D8 38 60 00 00 */ li r3, 0 +/* 8039D47C 0039A3DC 7C 09 03 A6 */ mtctr r0 +lbl_8039D480: +/* 8039D480 0039A3E0 88 04 00 0C */ lbz r0, 0xc(r4) +/* 8039D484 0039A3E4 28 00 00 00 */ cmplwi r0, 0 +/* 8039D488 0039A3E8 41 82 00 14 */ beq lbl_8039D49C +/* 8039D48C 0039A3EC 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D490 0039A3F0 7C 1E 00 40 */ cmplw r30, r0 +/* 8039D494 0039A3F4 40 82 00 08 */ bne lbl_8039D49C +/* 8039D498 0039A3F8 48 00 01 10 */ b lbl_8039D5A8 +lbl_8039D49C: +/* 8039D49C 0039A3FC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D4A0 0039A400 38 63 00 01 */ addi r3, r3, 1 +/* 8039D4A4 0039A404 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D4A8 0039A408 28 00 00 00 */ cmplwi r0, 0 +/* 8039D4AC 0039A40C 41 82 00 14 */ beq lbl_8039D4C0 +/* 8039D4B0 0039A410 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D4B4 0039A414 7C 1E 00 40 */ cmplw r30, r0 +/* 8039D4B8 0039A418 40 82 00 08 */ bne lbl_8039D4C0 +/* 8039D4BC 0039A41C 48 00 00 EC */ b lbl_8039D5A8 +lbl_8039D4C0: +/* 8039D4C0 0039A420 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D4C4 0039A424 38 63 00 01 */ addi r3, r3, 1 +/* 8039D4C8 0039A428 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D4CC 0039A42C 28 00 00 00 */ cmplwi r0, 0 +/* 8039D4D0 0039A430 41 82 00 14 */ beq lbl_8039D4E4 +/* 8039D4D4 0039A434 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D4D8 0039A438 7C 1E 00 40 */ cmplw r30, r0 +/* 8039D4DC 0039A43C 40 82 00 08 */ bne lbl_8039D4E4 +/* 8039D4E0 0039A440 48 00 00 C8 */ b lbl_8039D5A8 +lbl_8039D4E4: +/* 8039D4E4 0039A444 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D4E8 0039A448 38 63 00 01 */ addi r3, r3, 1 +/* 8039D4EC 0039A44C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D4F0 0039A450 28 00 00 00 */ cmplwi r0, 0 +/* 8039D4F4 0039A454 41 82 00 14 */ beq lbl_8039D508 +/* 8039D4F8 0039A458 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D4FC 0039A45C 7C 1E 00 40 */ cmplw r30, r0 +/* 8039D500 0039A460 40 82 00 08 */ bne lbl_8039D508 +/* 8039D504 0039A464 48 00 00 A4 */ b lbl_8039D5A8 +lbl_8039D508: +/* 8039D508 0039A468 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D50C 0039A46C 38 63 00 01 */ addi r3, r3, 1 +/* 8039D510 0039A470 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D514 0039A474 28 00 00 00 */ cmplwi r0, 0 +/* 8039D518 0039A478 41 82 00 14 */ beq lbl_8039D52C +/* 8039D51C 0039A47C 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D520 0039A480 7C 1E 00 40 */ cmplw r30, r0 +/* 8039D524 0039A484 40 82 00 08 */ bne lbl_8039D52C +/* 8039D528 0039A488 48 00 00 80 */ b lbl_8039D5A8 +lbl_8039D52C: +/* 8039D52C 0039A48C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D530 0039A490 38 63 00 01 */ addi r3, r3, 1 +/* 8039D534 0039A494 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D538 0039A498 28 00 00 00 */ cmplwi r0, 0 +/* 8039D53C 0039A49C 41 82 00 14 */ beq lbl_8039D550 +/* 8039D540 0039A4A0 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D544 0039A4A4 7C 1E 00 40 */ cmplw r30, r0 +/* 8039D548 0039A4A8 40 82 00 08 */ bne lbl_8039D550 +/* 8039D54C 0039A4AC 48 00 00 5C */ b lbl_8039D5A8 +lbl_8039D550: +/* 8039D550 0039A4B0 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D554 0039A4B4 38 63 00 01 */ addi r3, r3, 1 +/* 8039D558 0039A4B8 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D55C 0039A4BC 28 00 00 00 */ cmplwi r0, 0 +/* 8039D560 0039A4C0 41 82 00 14 */ beq lbl_8039D574 +/* 8039D564 0039A4C4 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D568 0039A4C8 7C 1E 00 40 */ cmplw r30, r0 +/* 8039D56C 0039A4CC 40 82 00 08 */ bne lbl_8039D574 +/* 8039D570 0039A4D0 48 00 00 38 */ b lbl_8039D5A8 +lbl_8039D574: +/* 8039D574 0039A4D4 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039D578 0039A4D8 38 63 00 01 */ addi r3, r3, 1 +/* 8039D57C 0039A4DC 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D580 0039A4E0 28 00 00 00 */ cmplwi r0, 0 +/* 8039D584 0039A4E4 41 82 00 14 */ beq lbl_8039D598 +/* 8039D588 0039A4E8 80 04 00 04 */ lwz r0, 4(r4) +/* 8039D58C 0039A4EC 7C 1E 00 40 */ cmplw r30, r0 +/* 8039D590 0039A4F0 40 82 00 08 */ bne lbl_8039D598 +/* 8039D594 0039A4F4 48 00 00 14 */ b lbl_8039D5A8 +lbl_8039D598: +/* 8039D598 0039A4F8 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039D59C 0039A4FC 38 63 00 01 */ addi r3, r3, 1 +/* 8039D5A0 0039A500 42 00 FE E0 */ bdnz lbl_8039D480 +/* 8039D5A4 0039A504 38 60 FF FF */ li r3, -1 +lbl_8039D5A8: +/* 8039D5A8 0039A508 3C 03 00 01 */ addis r0, r3, 1 +/* 8039D5AC 0039A50C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039D5B0 0039A510 41 82 01 58 */ beq lbl_8039D708 +/* 8039D5B4 0039A514 1F E3 00 64 */ mulli r31, r3, 0x64 +/* 8039D5B8 0039A518 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039D5BC 0039A51C 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039D5C0 0039A520 7F C0 FA 14 */ add r30, r0, r31 +/* 8039D5C4 0039A524 88 1E 00 0D */ lbz r0, 0xd(r30) +/* 8039D5C8 0039A528 3B DE 00 0D */ addi r30, r30, 0xd +/* 8039D5CC 0039A52C 2C 00 00 01 */ cmpwi r0, 1 +/* 8039D5D0 0039A530 41 82 00 28 */ beq lbl_8039D5F8 +/* 8039D5D4 0039A534 40 80 00 84 */ bge lbl_8039D658 +/* 8039D5D8 0039A538 2C 00 00 00 */ cmpwi r0, 0 +/* 8039D5DC 0039A53C 40 80 00 08 */ bge lbl_8039D5E4 +/* 8039D5E0 0039A540 48 00 00 78 */ b lbl_8039D658 +lbl_8039D5E4: +/* 8039D5E4 0039A544 57 5A 08 3C */ slwi r26, r26, 1 +/* 8039D5E8 0039A548 57 7B 08 3C */ slwi r27, r27, 1 +/* 8039D5EC 0039A54C 57 9C 08 3C */ slwi r28, r28, 1 +/* 8039D5F0 0039A550 57 BD 08 3C */ slwi r29, r29, 1 +/* 8039D5F4 0039A554 48 00 00 64 */ b lbl_8039D658 +lbl_8039D5F8: +/* 8039D5F8 0039A558 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 8039D5FC 0039A55C 38 7B 00 0D */ addi r3, r27, 0xd +/* 8039D600 0039A560 38 E4 49 25 */ addi r7, r4, 0x24924925@l +/* 8039D604 0039A564 38 1D 00 0D */ addi r0, r29, 0xd +/* 8039D608 0039A568 7C C7 D0 16 */ mulhwu r6, r7, r26 +/* 8039D60C 0039A56C 7C 87 18 16 */ mulhwu r4, r7, r3 +/* 8039D610 0039A570 7C A6 D0 50 */ subf r5, r6, r26 +/* 8039D614 0039A574 54 A5 F8 7E */ srwi r5, r5, 1 +/* 8039D618 0039A578 7C C5 32 14 */ add r6, r5, r6 +/* 8039D61C 0039A57C 7C 64 18 50 */ subf r3, r4, r3 +/* 8039D620 0039A580 54 63 F8 7E */ srwi r3, r3, 1 +/* 8039D624 0039A584 54 DA 00 38 */ rlwinm r26, r6, 0, 0, 0x1c +/* 8039D628 0039A588 7C C3 22 14 */ add r6, r3, r4 +/* 8039D62C 0039A58C 7C A7 E0 16 */ mulhwu r5, r7, r28 +/* 8039D630 0039A590 54 DB 00 38 */ rlwinm r27, r6, 0, 0, 0x1c +/* 8039D634 0039A594 7C 67 00 16 */ mulhwu r3, r7, r0 +/* 8039D638 0039A598 7C 85 E0 50 */ subf r4, r5, r28 +/* 8039D63C 0039A59C 54 84 F8 7E */ srwi r4, r4, 1 +/* 8039D640 0039A5A0 7C 84 2A 14 */ add r4, r4, r5 +/* 8039D644 0039A5A4 7C 03 00 50 */ subf r0, r3, r0 +/* 8039D648 0039A5A8 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039D64C 0039A5AC 54 9C 00 38 */ rlwinm r28, r4, 0, 0, 0x1c +/* 8039D650 0039A5B0 7C 00 1A 14 */ add r0, r0, r3 +/* 8039D654 0039A5B4 54 1D 00 38 */ rlwinm r29, r0, 0, 0, 0x1c +lbl_8039D658: +/* 8039D658 0039A5B8 28 1B 00 00 */ cmplwi r27, 0 +/* 8039D65C 0039A5BC 41 82 00 2C */ beq lbl_8039D688 +/* 8039D660 0039A5C0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039D664 0039A5C4 7F 44 D3 78 */ mr r4, r26 +/* 8039D668 0039A5C8 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039D66C 0039A5CC 7F 65 DB 78 */ mr r5, r27 +/* 8039D670 0039A5D0 7C C0 FA 14 */ add r6, r0, r31 +/* 8039D674 0039A5D4 38 E0 00 00 */ li r7, 0 +/* 8039D678 0039A5D8 80 66 00 14 */ lwz r3, 0x14(r6) +/* 8039D67C 0039A5DC 39 00 00 00 */ li r8, 0 +/* 8039D680 0039A5E0 88 C6 00 0E */ lbz r6, 0xe(r6) +/* 8039D684 0039A5E4 48 01 65 91 */ bl hwFlushStream +lbl_8039D688: +/* 8039D688 0039A5E8 28 1D 00 00 */ cmplwi r29, 0 +/* 8039D68C 0039A5EC 41 82 00 2C */ beq lbl_8039D6B8 +/* 8039D690 0039A5F0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039D694 0039A5F4 7F 84 E3 78 */ mr r4, r28 +/* 8039D698 0039A5F8 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039D69C 0039A5FC 7F A5 EB 78 */ mr r5, r29 +/* 8039D6A0 0039A600 7C C0 FA 14 */ add r6, r0, r31 +/* 8039D6A4 0039A604 38 E0 00 00 */ li r7, 0 +/* 8039D6A8 0039A608 80 66 00 14 */ lwz r3, 0x14(r6) +/* 8039D6AC 0039A60C 39 00 00 00 */ li r8, 0 +/* 8039D6B0 0039A610 88 C6 00 0E */ lbz r6, 0xe(r6) +/* 8039D6B4 0039A614 48 01 65 61 */ bl hwFlushStream +lbl_8039D6B8: +/* 8039D6B8 0039A618 88 1E 00 00 */ lbz r0, 0(r30) +/* 8039D6BC 0039A61C 28 00 00 01 */ cmplwi r0, 1 +/* 8039D6C0 0039A620 40 82 00 48 */ bne lbl_8039D708 +/* 8039D6C4 0039A624 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039D6C8 0039A628 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039D6CC 0039A62C 7C 80 FA 14 */ add r4, r0, r31 +/* 8039D6D0 0039A630 80 64 00 14 */ lwz r3, 0x14(r4) +/* 8039D6D4 0039A634 38 A4 00 0F */ addi r5, r4, 0xf +/* 8039D6D8 0039A638 38 C4 00 4C */ addi r6, r4, 0x4c +/* 8039D6DC 0039A63C 3C 63 40 00 */ addis r3, r3, 0x4000 +/* 8039D6E0 0039A640 80 03 00 00 */ lwz r0, 0(r3) +/* 8039D6E4 0039A644 54 00 46 3E */ srwi r0, r0, 0x18 +/* 8039D6E8 0039A648 98 04 00 0F */ stb r0, 0xf(r4) +/* 8039D6EC 0039A64C 80 64 00 4C */ lwz r3, 0x4c(r4) +/* 8039D6F0 0039A650 3C 03 00 01 */ addis r0, r3, 1 +/* 8039D6F4 0039A654 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039D6F8 0039A658 41 82 00 10 */ beq lbl_8039D708 +/* 8039D6FC 0039A65C 80 66 00 00 */ lwz r3, 0(r6) +/* 8039D700 0039A660 88 85 00 00 */ lbz r4, 0(r5) +/* 8039D704 0039A664 48 01 5E E1 */ bl hwSetStreamLoopPS +lbl_8039D708: +/* 8039D708 0039A668 48 01 79 7D */ bl hwEnableIrq +/* 8039D70C 0039A66C 39 61 00 20 */ addi r11, r1, 0x20 +/* 8039D710 0039A670 4B FE C3 B5 */ bl _restgpr_26 +/* 8039D714 0039A674 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039D718 0039A678 7C 08 03 A6 */ mtlr r0 +/* 8039D71C 0039A67C 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039D720 0039A680 4E 80 00 20 */ blr + +.global CheckOutputMode +CheckOutputMode: +/* 8039D724 0039A684 80 AD AE 74 */ lwz r5, lbl_805A9A34@sda21(r13) +/* 8039D728 0039A688 54 A0 07 FF */ clrlwi. r0, r5, 0x1f +/* 8039D72C 0039A68C 41 82 00 18 */ beq lbl_8039D744 +/* 8039D730 0039A690 38 A0 00 40 */ li r5, 0x40 +/* 8039D734 0039A694 38 00 00 00 */ li r0, 0 +/* 8039D738 0039A698 98 A3 00 00 */ stb r5, 0(r3) +/* 8039D73C 0039A69C 98 04 00 00 */ stb r0, 0(r4) +/* 8039D740 0039A6A0 4E 80 00 20 */ blr +lbl_8039D744: +/* 8039D744 0039A6A4 54 A0 07 BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e +/* 8039D748 0039A6A8 4C 82 00 20 */ bnelr +/* 8039D74C 0039A6AC 38 00 00 00 */ li r0, 0 +/* 8039D750 0039A6B0 98 04 00 00 */ stb r0, 0(r4) +/* 8039D754 0039A6B4 4E 80 00 20 */ blr + +.global SetupVolumeAndPan +SetupVolumeAndPan: +/* 8039D758 0039A6B8 98 A3 00 5E */ stb r5, 0x5e(r3) +/* 8039D75C 0039A6BC 98 C3 00 5F */ stb r6, 0x5f(r3) +/* 8039D760 0039A6C0 81 2D AE 74 */ lwz r9, lbl_805A9A34@sda21(r13) +/* 8039D764 0039A6C4 55 20 07 FF */ clrlwi. r0, r9, 0x1f +/* 8039D768 0039A6C8 41 82 00 10 */ beq lbl_8039D778 +/* 8039D76C 0039A6CC 38 A0 00 40 */ li r5, 0x40 +/* 8039D770 0039A6D0 38 C0 00 00 */ li r6, 0 +/* 8039D774 0039A6D4 48 00 00 10 */ b lbl_8039D784 +lbl_8039D778: +/* 8039D778 0039A6D8 55 20 07 BD */ rlwinm. r0, r9, 0, 0x1e, 0x1e +/* 8039D77C 0039A6DC 40 82 00 08 */ bne lbl_8039D784 +/* 8039D780 0039A6E0 38 C0 00 00 */ li r6, 0 +lbl_8039D784: +/* 8039D784 0039A6E4 98 83 00 59 */ stb r4, 0x59(r3) +/* 8039D788 0039A6E8 98 A3 00 5A */ stb r5, 0x5a(r3) +/* 8039D78C 0039A6EC 98 C3 00 5B */ stb r6, 0x5b(r3) +/* 8039D790 0039A6F0 98 E3 00 5C */ stb r7, 0x5c(r3) +/* 8039D794 0039A6F4 99 03 00 5D */ stb r8, 0x5d(r3) +/* 8039D798 0039A6F8 4E 80 00 20 */ blr + +.global streamOutputModeChanged +streamOutputModeChanged: +/* 8039D79C 0039A6FC 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8039D7A0 0039A700 7C 08 02 A6 */ mflr r0 +/* 8039D7A4 0039A704 90 01 00 34 */ stw r0, 0x34(r1) +/* 8039D7A8 0039A708 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 8039D7AC 0039A70C 93 C1 00 28 */ stw r30, 0x28(r1) +/* 8039D7B0 0039A710 93 A1 00 24 */ stw r29, 0x24(r1) +/* 8039D7B4 0039A714 48 01 79 09 */ bl hwDisableIrq +/* 8039D7B8 0039A718 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 8039D7BC 0039A71C 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039D7C0 0039A720 3B C4 13 F8 */ addi r30, r4, lbl_805513F8@l +/* 8039D7C4 0039A724 3B A0 00 00 */ li r29, 0 +/* 8039D7C8 0039A728 3B E3 00 50 */ addi r31, r3, lbl_80550050@l +/* 8039D7CC 0039A72C 48 00 00 D4 */ b lbl_8039D8A0 +lbl_8039D7D0: +/* 8039D7D0 0039A730 88 1E 00 0C */ lbz r0, 0xc(r30) +/* 8039D7D4 0039A734 28 00 00 00 */ cmplwi r0, 0 +/* 8039D7D8 0039A738 41 82 00 C0 */ beq lbl_8039D898 +/* 8039D7DC 0039A73C 88 1E 00 5E */ lbz r0, 0x5e(r30) +/* 8039D7E0 0039A740 80 8D AE 74 */ lwz r4, lbl_805A9A34@sda21(r13) +/* 8039D7E4 0039A744 98 1E 00 5A */ stb r0, 0x5a(r30) +/* 8039D7E8 0039A748 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 8039D7EC 0039A74C 88 7E 00 5F */ lbz r3, 0x5f(r30) +/* 8039D7F0 0039A750 98 7E 00 5B */ stb r3, 0x5b(r30) +/* 8039D7F4 0039A754 41 82 00 18 */ beq lbl_8039D80C +/* 8039D7F8 0039A758 38 60 00 40 */ li r3, 0x40 +/* 8039D7FC 0039A75C 38 00 00 00 */ li r0, 0 +/* 8039D800 0039A760 98 7E 00 5A */ stb r3, 0x5a(r30) +/* 8039D804 0039A764 98 1E 00 5B */ stb r0, 0x5b(r30) +/* 8039D808 0039A768 48 00 00 14 */ b lbl_8039D81C +lbl_8039D80C: +/* 8039D80C 0039A76C 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e +/* 8039D810 0039A770 40 82 00 0C */ bne lbl_8039D81C +/* 8039D814 0039A774 38 00 00 00 */ li r0, 0 +/* 8039D818 0039A778 98 1E 00 5B */ stb r0, 0x5b(r30) +lbl_8039D81C: +/* 8039D81C 0039A77C 88 1E 00 0C */ lbz r0, 0xc(r30) +/* 8039D820 0039A780 28 00 00 03 */ cmplwi r0, 3 +/* 8039D824 0039A784 41 82 00 74 */ beq lbl_8039D898 +/* 8039D828 0039A788 88 BE 00 59 */ lbz r5, 0x59(r30) +/* 8039D82C 0039A78C 3C E0 43 30 */ lis r7, 0x4330 +/* 8039D830 0039A790 88 7E 00 5C */ lbz r3, 0x5c(r30) +/* 8039D834 0039A794 38 80 00 00 */ li r4, 0 +/* 8039D838 0039A798 88 1E 00 5D */ lbz r0, 0x5d(r30) +/* 8039D83C 0039A79C 90 A1 00 0C */ stw r5, 0xc(r1) +/* 8039D840 0039A7A0 C8 62 D5 58 */ lfd f3, lbl_805AF278@sda21(r2) +/* 8039D844 0039A7A4 90 E1 00 08 */ stw r7, 8(r1) +/* 8039D848 0039A7A8 88 BE 00 5A */ lbz r5, 0x5a(r30) +/* 8039D84C 0039A7AC C8 01 00 08 */ lfd f0, 8(r1) +/* 8039D850 0039A7B0 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039D854 0039A7B4 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 8039D858 0039A7B8 88 7E 00 5B */ lbz r3, 0x5b(r30) +/* 8039D85C 0039A7BC EC 20 18 28 */ fsubs f1, f0, f3 +/* 8039D860 0039A7C0 90 E1 00 10 */ stw r7, 0x10(r1) +/* 8039D864 0039A7C4 C0 82 D5 50 */ lfs f4, lbl_805AF270@sda21(r2) +/* 8039D868 0039A7C8 54 66 80 1E */ slwi r6, r3, 0x10 +/* 8039D86C 0039A7CC C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039D870 0039A7D0 90 01 00 1C */ stw r0, 0x1c(r1) +/* 8039D874 0039A7D4 EC 24 00 72 */ fmuls f1, f4, f1 +/* 8039D878 0039A7D8 EC 40 18 28 */ fsubs f2, f0, f3 +/* 8039D87C 0039A7DC 80 7E 00 4C */ lwz r3, 0x4c(r30) +/* 8039D880 0039A7E0 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8039D884 0039A7E4 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039D888 0039A7E8 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039D88C 0039A7EC EC 00 18 28 */ fsubs f0, f0, f3 +/* 8039D890 0039A7F0 EC 64 00 32 */ fmuls f3, f4, f0 +/* 8039D894 0039A7F4 48 01 5E F5 */ bl hwSetVolume +lbl_8039D898: +/* 8039D898 0039A7F8 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039D89C 0039A7FC 3B BD 00 01 */ addi r29, r29, 1 +lbl_8039D8A0: +/* 8039D8A0 0039A800 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 8039D8A4 0039A804 7C 1D 00 40 */ cmplw r29, r0 +/* 8039D8A8 0039A808 41 80 FF 28 */ blt lbl_8039D7D0 +/* 8039D8AC 0039A80C 48 01 77 D9 */ bl hwEnableIrq +/* 8039D8B0 0039A810 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8039D8B4 0039A814 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 8039D8B8 0039A818 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 8039D8BC 0039A81C 83 A1 00 24 */ lwz r29, 0x24(r1) +/* 8039D8C0 0039A820 7C 08 03 A6 */ mtlr r0 +/* 8039D8C4 0039A824 38 21 00 30 */ addi r1, r1, 0x30 +/* 8039D8C8 0039A828 4E 80 00 20 */ blr + +.global sndStreamAllocEx +sndStreamAllocEx: +/* 8039D8CC 0039A82C 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 8039D8D0 0039A830 7C 08 02 A6 */ mflr r0 +/* 8039D8D4 0039A834 90 01 00 54 */ stw r0, 0x54(r1) +/* 8039D8D8 0039A838 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039D8DC 0039A83C 4B FE C1 75 */ bl sub_80389a50 +/* 8039D8E0 0039A840 8A A1 00 5B */ lbz r21, 0x5b(r1) +/* 8039D8E4 0039A844 7C 7B 1B 78 */ mr r27, r3 +/* 8039D8E8 0039A848 8A C1 00 5F */ lbz r22, 0x5f(r1) +/* 8039D8EC 0039A84C 7C 9C 23 78 */ mr r28, r4 +/* 8039D8F0 0039A850 82 E1 00 60 */ lwz r23, 0x60(r1) +/* 8039D8F4 0039A854 7C BD 2B 78 */ mr r29, r5 +/* 8039D8F8 0039A858 83 01 00 64 */ lwz r24, 0x64(r1) +/* 8039D8FC 0039A85C 7C DE 33 78 */ mr r30, r6 +/* 8039D900 0039A860 83 21 00 68 */ lwz r25, 0x68(r1) +/* 8039D904 0039A864 7C FF 3B 78 */ mr r31, r7 +/* 8039D908 0039A868 83 41 00 6C */ lwz r26, 0x6c(r1) +/* 8039D90C 0039A86C 7D 12 43 78 */ mr r18, r8 +/* 8039D910 0039A870 7D 33 4B 78 */ mr r19, r9 +/* 8039D914 0039A874 7D 54 53 78 */ mr r20, r10 +/* 8039D918 0039A878 48 01 77 A5 */ bl hwDisableIrq +/* 8039D91C 0039A87C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039D920 0039A880 38 00 00 08 */ li r0, 8 +/* 8039D924 0039A884 38 C3 13 F8 */ addi r6, r3, lbl_805513F8@l +/* 8039D928 0039A888 38 E0 00 00 */ li r7, 0 +/* 8039D92C 0039A88C 7C C3 33 78 */ mr r3, r6 +/* 8039D930 0039A890 7C 09 03 A6 */ mtctr r0 +lbl_8039D934: +/* 8039D934 0039A894 88 03 00 0C */ lbz r0, 0xc(r3) +/* 8039D938 0039A898 28 00 00 00 */ cmplwi r0, 0 +/* 8039D93C 0039A89C 41 82 00 9C */ beq lbl_8039D9D8 +/* 8039D940 0039A8A0 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039D944 0039A8A4 38 E7 00 01 */ addi r7, r7, 1 +/* 8039D948 0039A8A8 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039D94C 0039A8AC 28 00 00 00 */ cmplwi r0, 0 +/* 8039D950 0039A8B0 41 82 00 88 */ beq lbl_8039D9D8 +/* 8039D954 0039A8B4 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039D958 0039A8B8 38 E7 00 01 */ addi r7, r7, 1 +/* 8039D95C 0039A8BC 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039D960 0039A8C0 28 00 00 00 */ cmplwi r0, 0 +/* 8039D964 0039A8C4 41 82 00 74 */ beq lbl_8039D9D8 +/* 8039D968 0039A8C8 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039D96C 0039A8CC 38 E7 00 01 */ addi r7, r7, 1 +/* 8039D970 0039A8D0 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039D974 0039A8D4 28 00 00 00 */ cmplwi r0, 0 +/* 8039D978 0039A8D8 41 82 00 60 */ beq lbl_8039D9D8 +/* 8039D97C 0039A8DC 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039D980 0039A8E0 38 E7 00 01 */ addi r7, r7, 1 +/* 8039D984 0039A8E4 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039D988 0039A8E8 28 00 00 00 */ cmplwi r0, 0 +/* 8039D98C 0039A8EC 41 82 00 4C */ beq lbl_8039D9D8 +/* 8039D990 0039A8F0 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039D994 0039A8F4 38 E7 00 01 */ addi r7, r7, 1 +/* 8039D998 0039A8F8 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039D99C 0039A8FC 28 00 00 00 */ cmplwi r0, 0 +/* 8039D9A0 0039A900 41 82 00 38 */ beq lbl_8039D9D8 +/* 8039D9A4 0039A904 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039D9A8 0039A908 38 E7 00 01 */ addi r7, r7, 1 +/* 8039D9AC 0039A90C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039D9B0 0039A910 28 00 00 00 */ cmplwi r0, 0 +/* 8039D9B4 0039A914 41 82 00 24 */ beq lbl_8039D9D8 +/* 8039D9B8 0039A918 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039D9BC 0039A91C 38 E7 00 01 */ addi r7, r7, 1 +/* 8039D9C0 0039A920 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039D9C4 0039A924 28 00 00 00 */ cmplwi r0, 0 +/* 8039D9C8 0039A928 41 82 00 10 */ beq lbl_8039D9D8 +/* 8039D9CC 0039A92C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039D9D0 0039A930 38 E7 00 01 */ addi r7, r7, 1 +/* 8039D9D4 0039A934 42 00 FF 60 */ bdnz lbl_8039D934 +lbl_8039D9D8: +/* 8039D9D8 0039A938 28 07 00 40 */ cmplwi r7, 0x40 +/* 8039D9DC 0039A93C 41 82 03 24 */ beq lbl_8039DD00 +/* 8039D9E0 0039A940 80 8D AE 90 */ lwz r4, lbl_805A9A50@sda21(r13) +lbl_8039D9E4: +/* 8039D9E4 0039A944 3C 04 00 01 */ addis r0, r4, 1 +/* 8039D9E8 0039A948 7C 91 23 78 */ mr r17, r4 +/* 8039D9EC 0039A94C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039D9F0 0039A950 38 84 00 01 */ addi r4, r4, 1 +/* 8039D9F4 0039A954 40 82 00 0C */ bne lbl_8039DA00 +/* 8039D9F8 0039A958 7C 91 23 78 */ mr r17, r4 +/* 8039D9FC 0039A95C 38 84 00 01 */ addi r4, r4, 1 +lbl_8039DA00: +/* 8039DA00 0039A960 38 00 00 08 */ li r0, 8 +/* 8039DA04 0039A964 7C C5 33 78 */ mr r5, r6 +/* 8039DA08 0039A968 38 60 00 00 */ li r3, 0 +/* 8039DA0C 0039A96C 7C 09 03 A6 */ mtctr r0 +lbl_8039DA10: +/* 8039DA10 0039A970 88 05 00 0C */ lbz r0, 0xc(r5) +/* 8039DA14 0039A974 28 00 00 00 */ cmplwi r0, 0 +/* 8039DA18 0039A978 41 82 00 10 */ beq lbl_8039DA28 +/* 8039DA1C 0039A97C 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DA20 0039A980 7C 11 00 40 */ cmplw r17, r0 +/* 8039DA24 0039A984 41 82 00 F0 */ beq lbl_8039DB14 +lbl_8039DA28: +/* 8039DA28 0039A988 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DA2C 0039A98C 38 63 00 01 */ addi r3, r3, 1 +/* 8039DA30 0039A990 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DA34 0039A994 28 00 00 00 */ cmplwi r0, 0 +/* 8039DA38 0039A998 41 82 00 10 */ beq lbl_8039DA48 +/* 8039DA3C 0039A99C 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DA40 0039A9A0 7C 11 00 40 */ cmplw r17, r0 +/* 8039DA44 0039A9A4 41 82 00 D0 */ beq lbl_8039DB14 +lbl_8039DA48: +/* 8039DA48 0039A9A8 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DA4C 0039A9AC 38 63 00 01 */ addi r3, r3, 1 +/* 8039DA50 0039A9B0 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DA54 0039A9B4 28 00 00 00 */ cmplwi r0, 0 +/* 8039DA58 0039A9B8 41 82 00 10 */ beq lbl_8039DA68 +/* 8039DA5C 0039A9BC 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DA60 0039A9C0 7C 11 00 40 */ cmplw r17, r0 +/* 8039DA64 0039A9C4 41 82 00 B0 */ beq lbl_8039DB14 +lbl_8039DA68: +/* 8039DA68 0039A9C8 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DA6C 0039A9CC 38 63 00 01 */ addi r3, r3, 1 +/* 8039DA70 0039A9D0 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DA74 0039A9D4 28 00 00 00 */ cmplwi r0, 0 +/* 8039DA78 0039A9D8 41 82 00 10 */ beq lbl_8039DA88 +/* 8039DA7C 0039A9DC 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DA80 0039A9E0 7C 11 00 40 */ cmplw r17, r0 +/* 8039DA84 0039A9E4 41 82 00 90 */ beq lbl_8039DB14 +lbl_8039DA88: +/* 8039DA88 0039A9E8 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DA8C 0039A9EC 38 63 00 01 */ addi r3, r3, 1 +/* 8039DA90 0039A9F0 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DA94 0039A9F4 28 00 00 00 */ cmplwi r0, 0 +/* 8039DA98 0039A9F8 41 82 00 10 */ beq lbl_8039DAA8 +/* 8039DA9C 0039A9FC 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DAA0 0039AA00 7C 11 00 40 */ cmplw r17, r0 +/* 8039DAA4 0039AA04 41 82 00 70 */ beq lbl_8039DB14 +lbl_8039DAA8: +/* 8039DAA8 0039AA08 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DAAC 0039AA0C 38 63 00 01 */ addi r3, r3, 1 +/* 8039DAB0 0039AA10 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DAB4 0039AA14 28 00 00 00 */ cmplwi r0, 0 +/* 8039DAB8 0039AA18 41 82 00 10 */ beq lbl_8039DAC8 +/* 8039DABC 0039AA1C 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DAC0 0039AA20 7C 11 00 40 */ cmplw r17, r0 +/* 8039DAC4 0039AA24 41 82 00 50 */ beq lbl_8039DB14 +lbl_8039DAC8: +/* 8039DAC8 0039AA28 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DACC 0039AA2C 38 63 00 01 */ addi r3, r3, 1 +/* 8039DAD0 0039AA30 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DAD4 0039AA34 28 00 00 00 */ cmplwi r0, 0 +/* 8039DAD8 0039AA38 41 82 00 10 */ beq lbl_8039DAE8 +/* 8039DADC 0039AA3C 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DAE0 0039AA40 7C 11 00 40 */ cmplw r17, r0 +/* 8039DAE4 0039AA44 41 82 00 30 */ beq lbl_8039DB14 +lbl_8039DAE8: +/* 8039DAE8 0039AA48 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DAEC 0039AA4C 38 63 00 01 */ addi r3, r3, 1 +/* 8039DAF0 0039AA50 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DAF4 0039AA54 28 00 00 00 */ cmplwi r0, 0 +/* 8039DAF8 0039AA58 41 82 00 10 */ beq lbl_8039DB08 +/* 8039DAFC 0039AA5C 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DB00 0039AA60 7C 11 00 40 */ cmplw r17, r0 +/* 8039DB04 0039AA64 41 82 00 10 */ beq lbl_8039DB14 +lbl_8039DB08: +/* 8039DB08 0039AA68 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DB0C 0039AA6C 38 63 00 01 */ addi r3, r3, 1 +/* 8039DB10 0039AA70 42 00 FF 00 */ bdnz lbl_8039DA10 +lbl_8039DB14: +/* 8039DB14 0039AA74 28 03 00 40 */ cmplwi r3, 0x40 +/* 8039DB18 0039AA78 40 82 FE CC */ bne lbl_8039D9E4 +/* 8039DB1C 0039AA7C 1E 07 00 64 */ mulli r16, r7, 0x64 +/* 8039DB20 0039AA80 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039DB24 0039AA84 90 8D AE 90 */ stw r4, lbl_805A9A50@sda21(r13) +/* 8039DB28 0039AA88 7E E4 BB 78 */ mr r4, r23 +/* 8039DB2C 0039AA8C 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039DB30 0039AA90 7C A0 82 14 */ add r5, r0, r16 +/* 8039DB34 0039AA94 92 25 00 04 */ stw r17, 4(r5) +/* 8039DB38 0039AA98 7F A3 EB 78 */ mr r3, r29 +/* 8039DB3C 0039AA9C 92 E5 00 08 */ stw r23, 8(r5) +/* 8039DB40 0039AAA0 48 00 04 A5 */ bl sndStreamAllocLength +/* 8039DB44 0039AAA4 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 8039DB48 0039AAA8 56 E0 07 FF */ clrlwi. r0, r23, 0x1f +/* 8039DB4C 0039AAAC 38 84 13 F8 */ addi r4, r4, lbl_805513F8@l +/* 8039DB50 0039AAB0 7C 84 82 14 */ add r4, r4, r16 +/* 8039DB54 0039AAB4 38 00 FF FF */ li r0, -1 +/* 8039DB58 0039AAB8 93 84 00 14 */ stw r28, 0x14(r4) +/* 8039DB5C 0039AABC 93 A4 00 18 */ stw r29, 0x18(r4) +/* 8039DB60 0039AAC0 90 64 00 1C */ stw r3, 0x1c(r4) +/* 8039DB64 0039AAC4 93 04 00 10 */ stw r24, 0x10(r4) +/* 8039DB68 0039AAC8 90 04 00 4C */ stw r0, 0x4c(r4) +/* 8039DB6C 0039AACC 41 82 00 AC */ beq lbl_8039DC18 +/* 8039DB70 0039AAD0 28 1A 00 00 */ cmplwi r26, 0 +/* 8039DB74 0039AAD4 41 82 00 8C */ beq lbl_8039DC00 +/* 8039DB78 0039AAD8 A8 BA 00 00 */ lha r5, 0(r26) +/* 8039DB7C 0039AADC 38 00 00 08 */ li r0, 8 +/* 8039DB80 0039AAE0 B0 A4 00 2C */ sth r5, 0x2c(r4) +/* 8039DB84 0039AAE4 A8 BA 00 02 */ lha r5, 2(r26) +/* 8039DB88 0039AAE8 B0 A4 00 2E */ sth r5, 0x2e(r4) +/* 8039DB8C 0039AAEC A8 BA 00 04 */ lha r5, 4(r26) +/* 8039DB90 0039AAF0 B0 A4 00 30 */ sth r5, 0x30(r4) +/* 8039DB94 0039AAF4 A8 BA 00 06 */ lha r5, 6(r26) +/* 8039DB98 0039AAF8 B0 A4 00 32 */ sth r5, 0x32(r4) +/* 8039DB9C 0039AAFC A8 BA 00 08 */ lha r5, 8(r26) +/* 8039DBA0 0039AB00 B0 A4 00 34 */ sth r5, 0x34(r4) +/* 8039DBA4 0039AB04 A8 BA 00 0A */ lha r5, 0xa(r26) +/* 8039DBA8 0039AB08 B0 A4 00 36 */ sth r5, 0x36(r4) +/* 8039DBAC 0039AB0C A8 BA 00 0C */ lha r5, 0xc(r26) +/* 8039DBB0 0039AB10 B0 A4 00 38 */ sth r5, 0x38(r4) +/* 8039DBB4 0039AB14 A8 BA 00 0E */ lha r5, 0xe(r26) +/* 8039DBB8 0039AB18 B0 A4 00 3A */ sth r5, 0x3a(r4) +/* 8039DBBC 0039AB1C A8 BA 00 10 */ lha r5, 0x10(r26) +/* 8039DBC0 0039AB20 B0 A4 00 3C */ sth r5, 0x3c(r4) +/* 8039DBC4 0039AB24 A8 BA 00 12 */ lha r5, 0x12(r26) +/* 8039DBC8 0039AB28 B0 A4 00 3E */ sth r5, 0x3e(r4) +/* 8039DBCC 0039AB2C A8 BA 00 14 */ lha r5, 0x14(r26) +/* 8039DBD0 0039AB30 B0 A4 00 40 */ sth r5, 0x40(r4) +/* 8039DBD4 0039AB34 A8 BA 00 16 */ lha r5, 0x16(r26) +/* 8039DBD8 0039AB38 B0 A4 00 42 */ sth r5, 0x42(r4) +/* 8039DBDC 0039AB3C A8 BA 00 18 */ lha r5, 0x18(r26) +/* 8039DBE0 0039AB40 B0 A4 00 44 */ sth r5, 0x44(r4) +/* 8039DBE4 0039AB44 A8 BA 00 1A */ lha r5, 0x1a(r26) +/* 8039DBE8 0039AB48 B0 A4 00 46 */ sth r5, 0x46(r4) +/* 8039DBEC 0039AB4C A8 BA 00 1C */ lha r5, 0x1c(r26) +/* 8039DBF0 0039AB50 B0 A4 00 48 */ sth r5, 0x48(r4) +/* 8039DBF4 0039AB54 A8 BA 00 1E */ lha r5, 0x1e(r26) +/* 8039DBF8 0039AB58 B0 A4 00 4A */ sth r5, 0x4a(r4) +/* 8039DBFC 0039AB5C B0 04 00 24 */ sth r0, 0x24(r4) +lbl_8039DC00: +/* 8039DC00 0039AB60 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 8039DC04 0039AB64 38 A0 00 01 */ li r5, 1 +/* 8039DC08 0039AB68 38 04 13 F8 */ addi r0, r4, lbl_805513F8@l +/* 8039DC0C 0039AB6C 7C 80 82 14 */ add r4, r0, r16 +/* 8039DC10 0039AB70 98 A4 00 0D */ stb r5, 0xd(r4) +/* 8039DC14 0039AB74 48 00 00 0C */ b lbl_8039DC20 +lbl_8039DC18: +/* 8039DC18 0039AB78 38 00 00 00 */ li r0, 0 +/* 8039DC1C 0039AB7C 98 04 00 0D */ stb r0, 0xd(r4) +lbl_8039DC20: +/* 8039DC20 0039AB80 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 8039DC24 0039AB84 80 AD AE 74 */ lwz r5, lbl_805A9A34@sda21(r13) +/* 8039DC28 0039AB88 38 04 13 F8 */ addi r0, r4, lbl_805513F8@l +/* 8039DC2C 0039AB8C 7E 68 9B 78 */ mr r8, r19 +/* 8039DC30 0039AB90 7C 80 82 14 */ add r4, r0, r16 +/* 8039DC34 0039AB94 7E 47 93 78 */ mr r7, r18 +/* 8039DC38 0039AB98 93 C4 00 54 */ stw r30, 0x54(r4) +/* 8039DC3C 0039AB9C 54 A0 07 FF */ clrlwi. r0, r5, 0x1f +/* 8039DC40 0039ABA0 9A C4 00 60 */ stb r22, 0x60(r4) +/* 8039DC44 0039ABA4 9B 64 00 58 */ stb r27, 0x58(r4) +/* 8039DC48 0039ABA8 9A 44 00 5E */ stb r18, 0x5e(r4) +/* 8039DC4C 0039ABAC 9A 64 00 5F */ stb r19, 0x5f(r4) +/* 8039DC50 0039ABB0 41 82 00 10 */ beq lbl_8039DC60 +/* 8039DC54 0039ABB4 38 E0 00 40 */ li r7, 0x40 +/* 8039DC58 0039ABB8 39 00 00 00 */ li r8, 0 +/* 8039DC5C 0039ABBC 48 00 00 10 */ b lbl_8039DC6C +lbl_8039DC60: +/* 8039DC60 0039ABC0 54 A0 07 BD */ rlwinm. r0, r5, 0, 0x1e, 0x1e +/* 8039DC64 0039ABC4 40 82 00 08 */ bne lbl_8039DC6C +/* 8039DC68 0039ABC8 39 00 00 00 */ li r8, 0 +lbl_8039DC6C: +/* 8039DC6C 0039ABCC 3C A0 80 55 */ lis r5, lbl_805513F8@ha +/* 8039DC70 0039ABD0 38 80 FF FF */ li r4, -1 +/* 8039DC74 0039ABD4 38 C5 13 F8 */ addi r6, r5, lbl_805513F8@l +/* 8039DC78 0039ABD8 38 00 00 03 */ li r0, 3 +/* 8039DC7C 0039ABDC 7C A6 82 14 */ add r5, r6, r16 +/* 8039DC80 0039ABE0 9B E5 00 59 */ stb r31, 0x59(r5) +/* 8039DC84 0039ABE4 3A 45 00 0C */ addi r18, r5, 0xc +/* 8039DC88 0039ABE8 98 E5 00 5A */ stb r7, 0x5a(r5) +/* 8039DC8C 0039ABEC 99 05 00 5B */ stb r8, 0x5b(r5) +/* 8039DC90 0039ABF0 9A 85 00 5C */ stb r20, 0x5c(r5) +/* 8039DC94 0039ABF4 9A A5 00 5D */ stb r21, 0x5d(r5) +/* 8039DC98 0039ABF8 93 25 00 50 */ stw r25, 0x50(r5) +/* 8039DC9C 0039ABFC 7C 86 81 2E */ stwx r4, r6, r16 +/* 8039DCA0 0039AC00 98 05 00 0C */ stb r0, 0xc(r5) +/* 8039DCA4 0039AC04 48 01 60 01 */ bl sub_803b3ca4 +/* 8039DCA8 0039AC08 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 8039DCAC 0039AC0C 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 8039DCB0 0039AC10 38 84 13 F8 */ addi r4, r4, lbl_805513F8@l +/* 8039DCB4 0039AC14 7C 84 82 14 */ add r4, r4, r16 +/* 8039DCB8 0039AC18 28 00 00 FF */ cmplwi r0, 0xff +/* 8039DCBC 0039AC1C 98 64 00 0E */ stb r3, 0xe(r4) +/* 8039DCC0 0039AC20 41 82 00 24 */ beq lbl_8039DCE4 +/* 8039DCC4 0039AC24 56 E0 03 DF */ rlwinm. r0, r23, 0, 0xf, 0xf +/* 8039DCC8 0039AC28 40 82 00 20 */ bne lbl_8039DCE8 +/* 8039DCCC 0039AC2C 7E 23 8B 78 */ mr r3, r17 +/* 8039DCD0 0039AC30 48 00 21 F9 */ bl sndStreamActivate +/* 8039DCD4 0039AC34 28 03 00 00 */ cmplwi r3, 0 +/* 8039DCD8 0039AC38 40 82 00 10 */ bne lbl_8039DCE8 +/* 8039DCDC 0039AC3C 3A 20 FF FF */ li r17, -1 +/* 8039DCE0 0039AC40 48 00 00 08 */ b lbl_8039DCE8 +lbl_8039DCE4: +/* 8039DCE4 0039AC44 3A 20 FF FF */ li r17, -1 +lbl_8039DCE8: +/* 8039DCE8 0039AC48 3C 11 00 01 */ addis r0, r17, 1 +/* 8039DCEC 0039AC4C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039DCF0 0039AC50 40 82 00 14 */ bne lbl_8039DD04 +/* 8039DCF4 0039AC54 38 00 00 00 */ li r0, 0 +/* 8039DCF8 0039AC58 98 12 00 00 */ stb r0, 0(r18) +/* 8039DCFC 0039AC5C 48 00 00 08 */ b lbl_8039DD04 +lbl_8039DD00: +/* 8039DD00 0039AC60 3A 20 FF FF */ li r17, -1 +lbl_8039DD04: +/* 8039DD04 0039AC64 48 01 73 81 */ bl hwEnableIrq +/* 8039DD08 0039AC68 7E 23 8B 78 */ mr r3, r17 +/* 8039DD0C 0039AC6C 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039DD10 0039AC70 4B FE BD 8D */ bl _restgpr_16 +/* 8039DD14 0039AC74 80 01 00 54 */ lwz r0, 0x54(r1) +/* 8039DD18 0039AC78 7C 08 03 A6 */ mtlr r0 +/* 8039DD1C 0039AC7C 38 21 00 50 */ addi r1, r1, 0x50 +/* 8039DD20 0039AC80 4E 80 00 20 */ blr + +.global sndStreamAllocStereo +sndStreamAllocStereo: +/* 8039DD24 0039AC84 94 21 FF 90 */ stwu r1, -0x70(r1) +/* 8039DD28 0039AC88 7C 08 02 A6 */ mflr r0 +/* 8039DD2C 0039AC8C 90 01 00 74 */ stw r0, 0x74(r1) +/* 8039DD30 0039AC90 39 61 00 70 */ addi r11, r1, 0x70 +/* 8039DD34 0039AC94 4B FE BD 15 */ bl __save_gpr +/* 8039DD38 0039AC98 55 29 06 3E */ clrlwi r9, r9, 0x18 +/* 8039DD3C 0039AC9C 8A E1 00 7B */ lbz r23, 0x7b(r1) +/* 8039DD40 0039ACA0 38 09 FF C0 */ addi r0, r9, -64 +/* 8039DD44 0039ACA4 8B 01 00 7F */ lbz r24, 0x7f(r1) +/* 8039DD48 0039ACA8 7C 00 07 35 */ extsh. r0, r0 +/* 8039DD4C 0039ACAC 8B 21 00 83 */ lbz r25, 0x83(r1) +/* 8039DD50 0039ACB0 83 41 00 84 */ lwz r26, 0x84(r1) +/* 8039DD54 0039ACB4 7C 7F 1B 78 */ mr r31, r3 +/* 8039DD58 0039ACB8 83 61 00 88 */ lwz r27, 0x88(r1) +/* 8039DD5C 0039ACBC 7C 92 23 78 */ mr r18, r4 +/* 8039DD60 0039ACC0 83 81 00 8C */ lwz r28, 0x8c(r1) +/* 8039DD64 0039ACC4 7C AF 2B 78 */ mr r15, r5 +/* 8039DD68 0039ACC8 81 C1 00 90 */ lwz r14, 0x90(r1) +/* 8039DD6C 0039ACCC 7C D3 33 78 */ mr r19, r6 +/* 8039DD70 0039ACD0 83 A1 00 94 */ lwz r29, 0x94(r1) +/* 8039DD74 0039ACD4 7C F4 3B 78 */ mr r20, r7 +/* 8039DD78 0039ACD8 83 C1 00 98 */ lwz r30, 0x98(r1) +/* 8039DD7C 0039ACDC 7D 15 43 78 */ mr r21, r8 +/* 8039DD80 0039ACE0 7D 56 53 78 */ mr r22, r10 +/* 8039DD84 0039ACE4 40 80 00 0C */ bge lbl_8039DD90 +/* 8039DD88 0039ACE8 38 60 00 00 */ li r3, 0 +/* 8039DD8C 0039ACEC 48 00 00 14 */ b lbl_8039DDA0 +lbl_8039DD90: +/* 8039DD90 0039ACF0 2C 00 00 7F */ cmpwi r0, 0x7f +/* 8039DD94 0039ACF4 38 60 00 7F */ li r3, 0x7f +/* 8039DD98 0039ACF8 41 81 00 08 */ bgt lbl_8039DDA0 +/* 8039DD9C 0039ACFC 7C 03 03 78 */ mr r3, r0 +lbl_8039DDA0: +/* 8039DDA0 0039AD00 38 09 00 40 */ addi r0, r9, 0x40 +/* 8039DDA4 0039AD04 7C 71 07 34 */ extsh r17, r3 +/* 8039DDA8 0039AD08 7C 03 07 35 */ extsh. r3, r0 +/* 8039DDAC 0039AD0C 40 80 00 0C */ bge lbl_8039DDB8 +/* 8039DDB0 0039AD10 38 00 00 00 */ li r0, 0 +/* 8039DDB4 0039AD14 48 00 00 14 */ b lbl_8039DDC8 +lbl_8039DDB8: +/* 8039DDB8 0039AD18 2C 03 00 7F */ cmpwi r3, 0x7f +/* 8039DDBC 0039AD1C 38 00 00 7F */ li r0, 0x7f +/* 8039DDC0 0039AD20 41 81 00 08 */ bgt lbl_8039DDC8 +/* 8039DDC4 0039AD24 7C 60 1B 78 */ mr r0, r3 +lbl_8039DDC8: +/* 8039DDC8 0039AD28 7C 10 07 34 */ extsh r16, r0 +/* 8039DDCC 0039AD2C 48 01 72 F1 */ bl hwDisableIrq +/* 8039DDD0 0039AD30 93 01 00 08 */ stw r24, 8(r1) +/* 8039DDD4 0039AD34 7F E3 FB 78 */ mr r3, r31 +/* 8039DDD8 0039AD38 7E 44 93 78 */ mr r4, r18 +/* 8039DDDC 0039AD3C 7E 65 9B 78 */ mr r5, r19 +/* 8039DDE0 0039AD40 93 21 00 0C */ stw r25, 0xc(r1) +/* 8039DDE4 0039AD44 7E 86 A3 78 */ mr r6, r20 +/* 8039DDE8 0039AD48 7E A7 AB 78 */ mr r7, r21 +/* 8039DDEC 0039AD4C 7E C9 B3 78 */ mr r9, r22 +/* 8039DDF0 0039AD50 93 41 00 10 */ stw r26, 0x10(r1) +/* 8039DDF4 0039AD54 7E EA BB 78 */ mr r10, r23 +/* 8039DDF8 0039AD58 56 28 06 3E */ clrlwi r8, r17, 0x18 +/* 8039DDFC 0039AD5C 93 61 00 14 */ stw r27, 0x14(r1) +/* 8039DE00 0039AD60 93 81 00 18 */ stw r28, 0x18(r1) +/* 8039DE04 0039AD64 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 8039DE08 0039AD68 4B FF FA C5 */ bl sndStreamAllocEx +/* 8039DE0C 0039AD6C 7C 71 1B 78 */ mr r17, r3 +/* 8039DE10 0039AD70 3C 11 00 01 */ addis r0, r17, 1 +/* 8039DE14 0039AD74 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039DE18 0039AD78 41 82 01 AC */ beq lbl_8039DFC4 +/* 8039DE1C 0039AD7C 93 01 00 08 */ stw r24, 8(r1) +/* 8039DE20 0039AD80 7F E3 FB 78 */ mr r3, r31 +/* 8039DE24 0039AD84 7D E4 7B 78 */ mr r4, r15 +/* 8039DE28 0039AD88 7E 65 9B 78 */ mr r5, r19 +/* 8039DE2C 0039AD8C 93 21 00 0C */ stw r25, 0xc(r1) +/* 8039DE30 0039AD90 7E 86 A3 78 */ mr r6, r20 +/* 8039DE34 0039AD94 7E A7 AB 78 */ mr r7, r21 +/* 8039DE38 0039AD98 7E C9 B3 78 */ mr r9, r22 +/* 8039DE3C 0039AD9C 93 41 00 10 */ stw r26, 0x10(r1) +/* 8039DE40 0039ADA0 7E EA BB 78 */ mr r10, r23 +/* 8039DE44 0039ADA4 56 08 06 3E */ clrlwi r8, r16, 0x18 +/* 8039DE48 0039ADA8 93 61 00 14 */ stw r27, 0x14(r1) +/* 8039DE4C 0039ADAC 91 C1 00 18 */ stw r14, 0x18(r1) +/* 8039DE50 0039ADB0 93 C1 00 1C */ stw r30, 0x1c(r1) +/* 8039DE54 0039ADB4 4B FF FA 79 */ bl sndStreamAllocEx +/* 8039DE58 0039ADB8 3C 03 00 01 */ addis r0, r3, 1 +/* 8039DE5C 0039ADBC 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039DE60 0039ADC0 40 82 00 18 */ bne lbl_8039DE78 +/* 8039DE64 0039ADC4 7E 23 8B 78 */ mr r3, r17 +/* 8039DE68 0039ADC8 48 00 19 8D */ bl sndStreamFree +/* 8039DE6C 0039ADCC 48 01 72 19 */ bl hwEnableIrq +/* 8039DE70 0039ADD0 38 60 FF FF */ li r3, -1 +/* 8039DE74 0039ADD4 48 00 01 58 */ b lbl_8039DFCC +lbl_8039DE78: +/* 8039DE78 0039ADD8 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 8039DE7C 0039ADDC 38 00 00 08 */ li r0, 8 +/* 8039DE80 0039ADE0 38 A4 13 F8 */ addi r5, r4, lbl_805513F8@l +/* 8039DE84 0039ADE4 38 80 00 00 */ li r4, 0 +/* 8039DE88 0039ADE8 7C 09 03 A6 */ mtctr r0 +lbl_8039DE8C: +/* 8039DE8C 0039ADEC 88 05 00 0C */ lbz r0, 0xc(r5) +/* 8039DE90 0039ADF0 28 00 00 00 */ cmplwi r0, 0 +/* 8039DE94 0039ADF4 41 82 00 14 */ beq lbl_8039DEA8 +/* 8039DE98 0039ADF8 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DE9C 0039ADFC 7C 11 00 40 */ cmplw r17, r0 +/* 8039DEA0 0039AE00 40 82 00 08 */ bne lbl_8039DEA8 +/* 8039DEA4 0039AE04 48 00 01 10 */ b lbl_8039DFB4 +lbl_8039DEA8: +/* 8039DEA8 0039AE08 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DEAC 0039AE0C 38 84 00 01 */ addi r4, r4, 1 +/* 8039DEB0 0039AE10 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DEB4 0039AE14 28 00 00 00 */ cmplwi r0, 0 +/* 8039DEB8 0039AE18 41 82 00 14 */ beq lbl_8039DECC +/* 8039DEBC 0039AE1C 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DEC0 0039AE20 7C 11 00 40 */ cmplw r17, r0 +/* 8039DEC4 0039AE24 40 82 00 08 */ bne lbl_8039DECC +/* 8039DEC8 0039AE28 48 00 00 EC */ b lbl_8039DFB4 +lbl_8039DECC: +/* 8039DECC 0039AE2C 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DED0 0039AE30 38 84 00 01 */ addi r4, r4, 1 +/* 8039DED4 0039AE34 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DED8 0039AE38 28 00 00 00 */ cmplwi r0, 0 +/* 8039DEDC 0039AE3C 41 82 00 14 */ beq lbl_8039DEF0 +/* 8039DEE0 0039AE40 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DEE4 0039AE44 7C 11 00 40 */ cmplw r17, r0 +/* 8039DEE8 0039AE48 40 82 00 08 */ bne lbl_8039DEF0 +/* 8039DEEC 0039AE4C 48 00 00 C8 */ b lbl_8039DFB4 +lbl_8039DEF0: +/* 8039DEF0 0039AE50 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DEF4 0039AE54 38 84 00 01 */ addi r4, r4, 1 +/* 8039DEF8 0039AE58 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DEFC 0039AE5C 28 00 00 00 */ cmplwi r0, 0 +/* 8039DF00 0039AE60 41 82 00 14 */ beq lbl_8039DF14 +/* 8039DF04 0039AE64 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DF08 0039AE68 7C 11 00 40 */ cmplw r17, r0 +/* 8039DF0C 0039AE6C 40 82 00 08 */ bne lbl_8039DF14 +/* 8039DF10 0039AE70 48 00 00 A4 */ b lbl_8039DFB4 +lbl_8039DF14: +/* 8039DF14 0039AE74 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DF18 0039AE78 38 84 00 01 */ addi r4, r4, 1 +/* 8039DF1C 0039AE7C 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DF20 0039AE80 28 00 00 00 */ cmplwi r0, 0 +/* 8039DF24 0039AE84 41 82 00 14 */ beq lbl_8039DF38 +/* 8039DF28 0039AE88 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DF2C 0039AE8C 7C 11 00 40 */ cmplw r17, r0 +/* 8039DF30 0039AE90 40 82 00 08 */ bne lbl_8039DF38 +/* 8039DF34 0039AE94 48 00 00 80 */ b lbl_8039DFB4 +lbl_8039DF38: +/* 8039DF38 0039AE98 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DF3C 0039AE9C 38 84 00 01 */ addi r4, r4, 1 +/* 8039DF40 0039AEA0 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DF44 0039AEA4 28 00 00 00 */ cmplwi r0, 0 +/* 8039DF48 0039AEA8 41 82 00 14 */ beq lbl_8039DF5C +/* 8039DF4C 0039AEAC 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DF50 0039AEB0 7C 11 00 40 */ cmplw r17, r0 +/* 8039DF54 0039AEB4 40 82 00 08 */ bne lbl_8039DF5C +/* 8039DF58 0039AEB8 48 00 00 5C */ b lbl_8039DFB4 +lbl_8039DF5C: +/* 8039DF5C 0039AEBC 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DF60 0039AEC0 38 84 00 01 */ addi r4, r4, 1 +/* 8039DF64 0039AEC4 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DF68 0039AEC8 28 00 00 00 */ cmplwi r0, 0 +/* 8039DF6C 0039AECC 41 82 00 14 */ beq lbl_8039DF80 +/* 8039DF70 0039AED0 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DF74 0039AED4 7C 11 00 40 */ cmplw r17, r0 +/* 8039DF78 0039AED8 40 82 00 08 */ bne lbl_8039DF80 +/* 8039DF7C 0039AEDC 48 00 00 38 */ b lbl_8039DFB4 +lbl_8039DF80: +/* 8039DF80 0039AEE0 88 05 00 70 */ lbz r0, 0x70(r5) +/* 8039DF84 0039AEE4 38 84 00 01 */ addi r4, r4, 1 +/* 8039DF88 0039AEE8 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DF8C 0039AEEC 28 00 00 00 */ cmplwi r0, 0 +/* 8039DF90 0039AEF0 41 82 00 14 */ beq lbl_8039DFA4 +/* 8039DF94 0039AEF4 80 05 00 04 */ lwz r0, 4(r5) +/* 8039DF98 0039AEF8 7C 11 00 40 */ cmplw r17, r0 +/* 8039DF9C 0039AEFC 40 82 00 08 */ bne lbl_8039DFA4 +/* 8039DFA0 0039AF00 48 00 00 14 */ b lbl_8039DFB4 +lbl_8039DFA4: +/* 8039DFA4 0039AF04 38 A5 00 64 */ addi r5, r5, 0x64 +/* 8039DFA8 0039AF08 38 84 00 01 */ addi r4, r4, 1 +/* 8039DFAC 0039AF0C 42 00 FE E0 */ bdnz lbl_8039DE8C +/* 8039DFB0 0039AF10 38 80 FF FF */ li r4, -1 +lbl_8039DFB4: +/* 8039DFB4 0039AF14 1C 04 00 64 */ mulli r0, r4, 0x64 +/* 8039DFB8 0039AF18 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 8039DFBC 0039AF1C 38 84 13 F8 */ addi r4, r4, lbl_805513F8@l +/* 8039DFC0 0039AF20 7C 64 01 2E */ stwx r3, r4, r0 +lbl_8039DFC4: +/* 8039DFC4 0039AF24 48 01 70 C1 */ bl hwEnableIrq +/* 8039DFC8 0039AF28 7E 23 8B 78 */ mr r3, r17 +lbl_8039DFCC: +/* 8039DFCC 0039AF2C 39 61 00 70 */ addi r11, r1, 0x70 +/* 8039DFD0 0039AF30 4B FE BA C5 */ bl __restore_gpr +/* 8039DFD4 0039AF34 80 01 00 74 */ lwz r0, 0x74(r1) +/* 8039DFD8 0039AF38 7C 08 03 A6 */ mtlr r0 +/* 8039DFDC 0039AF3C 38 21 00 70 */ addi r1, r1, 0x70 +/* 8039DFE0 0039AF40 4E 80 00 20 */ blr + +.global sndStreamAllocLength +sndStreamAllocLength: +/* 8039DFE4 0039AF44 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 8039DFE8 0039AF48 41 82 00 30 */ beq lbl_8039E018 +/* 8039DFEC 0039AF4C 3C 80 24 92 */ lis r4, 0x24924925@ha +/* 8039DFF0 0039AF50 38 03 00 0D */ addi r0, r3, 0xd +/* 8039DFF4 0039AF54 38 64 49 25 */ addi r3, r4, 0x24924925@l +/* 8039DFF8 0039AF58 7C 63 00 16 */ mulhwu r3, r3, r0 +/* 8039DFFC 0039AF5C 7C 03 00 50 */ subf r0, r3, r0 +/* 8039E000 0039AF60 54 00 F8 7E */ srwi r0, r0, 1 +/* 8039E004 0039AF64 7C 00 1A 14 */ add r0, r0, r3 +/* 8039E008 0039AF68 54 03 00 38 */ rlwinm r3, r0, 0, 0, 0x1c +/* 8039E00C 0039AF6C 38 03 00 1F */ addi r0, r3, 0x1f +/* 8039E010 0039AF70 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a +/* 8039E014 0039AF74 4E 80 00 20 */ blr +lbl_8039E018: +/* 8039E018 0039AF78 54 63 08 3C */ slwi r3, r3, 1 +/* 8039E01C 0039AF7C 38 03 00 1F */ addi r0, r3, 0x1f +/* 8039E020 0039AF80 54 03 00 34 */ rlwinm r3, r0, 0, 0, 0x1a +/* 8039E024 0039AF84 4E 80 00 20 */ blr + +.global sndStreamADPCMParameter +sndStreamADPCMParameter: +/* 8039E028 0039AF88 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039E02C 0039AF8C 7C 08 02 A6 */ mflr r0 +/* 8039E030 0039AF90 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039E034 0039AF94 39 61 00 20 */ addi r11, r1, 0x20 +/* 8039E038 0039AF98 4B FE BA 41 */ bl func_80389A78 +/* 8039E03C 0039AF9C 7C 7A 1B 78 */ mr r26, r3 +/* 8039E040 0039AFA0 7C 9B 23 78 */ mr r27, r4 +/* 8039E044 0039AFA4 48 01 70 79 */ bl hwDisableIrq +/* 8039E048 0039AFA8 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E04C 0039AFAC 38 00 00 08 */ li r0, 8 +/* 8039E050 0039AFB0 3B E3 13 F8 */ addi r31, r3, lbl_805513F8@l +/* 8039E054 0039AFB4 38 C0 00 00 */ li r6, 0 +/* 8039E058 0039AFB8 7F E3 FB 78 */ mr r3, r31 +/* 8039E05C 0039AFBC 7C 09 03 A6 */ mtctr r0 +lbl_8039E060: +/* 8039E060 0039AFC0 88 03 00 0C */ lbz r0, 0xc(r3) +/* 8039E064 0039AFC4 28 00 00 00 */ cmplwi r0, 0 +/* 8039E068 0039AFC8 41 82 00 14 */ beq lbl_8039E07C +/* 8039E06C 0039AFCC 80 03 00 04 */ lwz r0, 4(r3) +/* 8039E070 0039AFD0 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E074 0039AFD4 40 82 00 08 */ bne lbl_8039E07C +/* 8039E078 0039AFD8 48 00 01 10 */ b lbl_8039E188 +lbl_8039E07C: +/* 8039E07C 0039AFDC 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039E080 0039AFE0 38 C6 00 01 */ addi r6, r6, 1 +/* 8039E084 0039AFE4 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039E088 0039AFE8 28 00 00 00 */ cmplwi r0, 0 +/* 8039E08C 0039AFEC 41 82 00 14 */ beq lbl_8039E0A0 +/* 8039E090 0039AFF0 80 03 00 04 */ lwz r0, 4(r3) +/* 8039E094 0039AFF4 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E098 0039AFF8 40 82 00 08 */ bne lbl_8039E0A0 +/* 8039E09C 0039AFFC 48 00 00 EC */ b lbl_8039E188 +lbl_8039E0A0: +/* 8039E0A0 0039B000 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039E0A4 0039B004 38 C6 00 01 */ addi r6, r6, 1 +/* 8039E0A8 0039B008 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039E0AC 0039B00C 28 00 00 00 */ cmplwi r0, 0 +/* 8039E0B0 0039B010 41 82 00 14 */ beq lbl_8039E0C4 +/* 8039E0B4 0039B014 80 03 00 04 */ lwz r0, 4(r3) +/* 8039E0B8 0039B018 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E0BC 0039B01C 40 82 00 08 */ bne lbl_8039E0C4 +/* 8039E0C0 0039B020 48 00 00 C8 */ b lbl_8039E188 +lbl_8039E0C4: +/* 8039E0C4 0039B024 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039E0C8 0039B028 38 C6 00 01 */ addi r6, r6, 1 +/* 8039E0CC 0039B02C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039E0D0 0039B030 28 00 00 00 */ cmplwi r0, 0 +/* 8039E0D4 0039B034 41 82 00 14 */ beq lbl_8039E0E8 +/* 8039E0D8 0039B038 80 03 00 04 */ lwz r0, 4(r3) +/* 8039E0DC 0039B03C 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E0E0 0039B040 40 82 00 08 */ bne lbl_8039E0E8 +/* 8039E0E4 0039B044 48 00 00 A4 */ b lbl_8039E188 +lbl_8039E0E8: +/* 8039E0E8 0039B048 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039E0EC 0039B04C 38 C6 00 01 */ addi r6, r6, 1 +/* 8039E0F0 0039B050 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039E0F4 0039B054 28 00 00 00 */ cmplwi r0, 0 +/* 8039E0F8 0039B058 41 82 00 14 */ beq lbl_8039E10C +/* 8039E0FC 0039B05C 80 03 00 04 */ lwz r0, 4(r3) +/* 8039E100 0039B060 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E104 0039B064 40 82 00 08 */ bne lbl_8039E10C +/* 8039E108 0039B068 48 00 00 80 */ b lbl_8039E188 +lbl_8039E10C: +/* 8039E10C 0039B06C 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039E110 0039B070 38 C6 00 01 */ addi r6, r6, 1 +/* 8039E114 0039B074 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039E118 0039B078 28 00 00 00 */ cmplwi r0, 0 +/* 8039E11C 0039B07C 41 82 00 14 */ beq lbl_8039E130 +/* 8039E120 0039B080 80 03 00 04 */ lwz r0, 4(r3) +/* 8039E124 0039B084 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E128 0039B088 40 82 00 08 */ bne lbl_8039E130 +/* 8039E12C 0039B08C 48 00 00 5C */ b lbl_8039E188 +lbl_8039E130: +/* 8039E130 0039B090 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039E134 0039B094 38 C6 00 01 */ addi r6, r6, 1 +/* 8039E138 0039B098 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039E13C 0039B09C 28 00 00 00 */ cmplwi r0, 0 +/* 8039E140 0039B0A0 41 82 00 14 */ beq lbl_8039E154 +/* 8039E144 0039B0A4 80 03 00 04 */ lwz r0, 4(r3) +/* 8039E148 0039B0A8 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E14C 0039B0AC 40 82 00 08 */ bne lbl_8039E154 +/* 8039E150 0039B0B0 48 00 00 38 */ b lbl_8039E188 +lbl_8039E154: +/* 8039E154 0039B0B4 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039E158 0039B0B8 38 C6 00 01 */ addi r6, r6, 1 +/* 8039E15C 0039B0BC 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039E160 0039B0C0 28 00 00 00 */ cmplwi r0, 0 +/* 8039E164 0039B0C4 41 82 00 14 */ beq lbl_8039E178 +/* 8039E168 0039B0C8 80 03 00 04 */ lwz r0, 4(r3) +/* 8039E16C 0039B0CC 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E170 0039B0D0 40 82 00 08 */ bne lbl_8039E178 +/* 8039E174 0039B0D4 48 00 00 14 */ b lbl_8039E188 +lbl_8039E178: +/* 8039E178 0039B0D8 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039E17C 0039B0DC 38 C6 00 01 */ addi r6, r6, 1 +/* 8039E180 0039B0E0 42 00 FE E0 */ bdnz lbl_8039E060 +/* 8039E184 0039B0E4 38 C0 FF FF */ li r6, -1 +lbl_8039E188: +/* 8039E188 0039B0E8 3C 06 00 01 */ addis r0, r6, 1 +/* 8039E18C 0039B0EC 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E190 0039B0F0 41 82 05 78 */ beq lbl_8039E708 +/* 8039E194 0039B0F4 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E198 0039B0F8 A8 BB 00 00 */ lha r5, 0(r27) +/* 8039E19C 0039B0FC 38 83 13 F8 */ addi r4, r3, lbl_805513F8@l +/* 8039E1A0 0039B100 38 00 00 08 */ li r0, 8 +/* 8039E1A4 0039B104 1C C6 00 64 */ mulli r6, r6, 0x64 +/* 8039E1A8 0039B108 3B C4 00 2C */ addi r30, r4, 0x2c +/* 8039E1AC 0039B10C 3B A4 00 2E */ addi r29, r4, 0x2e +/* 8039E1B0 0039B110 7C FE 32 14 */ add r7, r30, r6 +/* 8039E1B4 0039B114 3B 84 00 24 */ addi r28, r4, 0x24 +/* 8039E1B8 0039B118 B0 A7 00 00 */ sth r5, 0(r7) +/* 8039E1BC 0039B11C 7C BD 32 14 */ add r5, r29, r6 +/* 8039E1C0 0039B120 A8 7B 00 02 */ lha r3, 2(r27) +/* 8039E1C4 0039B124 B0 65 00 00 */ sth r3, 0(r5) +/* 8039E1C8 0039B128 A8 7B 00 04 */ lha r3, 4(r27) +/* 8039E1CC 0039B12C B0 67 00 04 */ sth r3, 4(r7) +/* 8039E1D0 0039B130 A8 7B 00 06 */ lha r3, 6(r27) +/* 8039E1D4 0039B134 B0 65 00 04 */ sth r3, 4(r5) +/* 8039E1D8 0039B138 A8 7B 00 08 */ lha r3, 8(r27) +/* 8039E1DC 0039B13C B0 67 00 08 */ sth r3, 8(r7) +/* 8039E1E0 0039B140 A8 7B 00 0A */ lha r3, 0xa(r27) +/* 8039E1E4 0039B144 B0 65 00 08 */ sth r3, 8(r5) +/* 8039E1E8 0039B148 A8 7B 00 0C */ lha r3, 0xc(r27) +/* 8039E1EC 0039B14C B0 67 00 0C */ sth r3, 0xc(r7) +/* 8039E1F0 0039B150 A8 7B 00 0E */ lha r3, 0xe(r27) +/* 8039E1F4 0039B154 B0 65 00 0C */ sth r3, 0xc(r5) +/* 8039E1F8 0039B158 A8 7B 00 10 */ lha r3, 0x10(r27) +/* 8039E1FC 0039B15C B0 67 00 10 */ sth r3, 0x10(r7) +/* 8039E200 0039B160 A8 7B 00 12 */ lha r3, 0x12(r27) +/* 8039E204 0039B164 B0 65 00 10 */ sth r3, 0x10(r5) +/* 8039E208 0039B168 A8 7B 00 14 */ lha r3, 0x14(r27) +/* 8039E20C 0039B16C B0 67 00 14 */ sth r3, 0x14(r7) +/* 8039E210 0039B170 A8 7B 00 16 */ lha r3, 0x16(r27) +/* 8039E214 0039B174 B0 65 00 14 */ sth r3, 0x14(r5) +/* 8039E218 0039B178 A8 7B 00 18 */ lha r3, 0x18(r27) +/* 8039E21C 0039B17C B0 67 00 18 */ sth r3, 0x18(r7) +/* 8039E220 0039B180 A8 7B 00 1A */ lha r3, 0x1a(r27) +/* 8039E224 0039B184 B0 65 00 18 */ sth r3, 0x18(r5) +/* 8039E228 0039B188 A8 7B 00 1C */ lha r3, 0x1c(r27) +/* 8039E22C 0039B18C B0 67 00 1C */ sth r3, 0x1c(r7) +/* 8039E230 0039B190 A8 7B 00 1E */ lha r3, 0x1e(r27) +/* 8039E234 0039B194 B0 65 00 1C */ sth r3, 0x1c(r5) +/* 8039E238 0039B198 7C 1C 33 2E */ sthx r0, r28, r6 +/* 8039E23C 0039B19C 7F 44 30 2E */ lwzx r26, r4, r6 +/* 8039E240 0039B1A0 3C 1A 00 01 */ addis r0, r26, 1 +/* 8039E244 0039B1A4 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E248 0039B1A8 41 82 04 C0 */ beq lbl_8039E708 +/* 8039E24C 0039B1AC 48 01 6E 71 */ bl hwDisableIrq +/* 8039E250 0039B1B0 38 00 00 08 */ li r0, 8 +/* 8039E254 0039B1B4 7F E4 FB 78 */ mr r4, r31 +/* 8039E258 0039B1B8 38 60 00 00 */ li r3, 0 +/* 8039E25C 0039B1BC 7C 09 03 A6 */ mtctr r0 +lbl_8039E260: +/* 8039E260 0039B1C0 88 04 00 0C */ lbz r0, 0xc(r4) +/* 8039E264 0039B1C4 28 00 00 00 */ cmplwi r0, 0 +/* 8039E268 0039B1C8 41 82 00 14 */ beq lbl_8039E27C +/* 8039E26C 0039B1CC 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E270 0039B1D0 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E274 0039B1D4 40 82 00 08 */ bne lbl_8039E27C +/* 8039E278 0039B1D8 48 00 01 10 */ b lbl_8039E388 +lbl_8039E27C: +/* 8039E27C 0039B1DC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E280 0039B1E0 38 63 00 01 */ addi r3, r3, 1 +/* 8039E284 0039B1E4 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E288 0039B1E8 28 00 00 00 */ cmplwi r0, 0 +/* 8039E28C 0039B1EC 41 82 00 14 */ beq lbl_8039E2A0 +/* 8039E290 0039B1F0 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E294 0039B1F4 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E298 0039B1F8 40 82 00 08 */ bne lbl_8039E2A0 +/* 8039E29C 0039B1FC 48 00 00 EC */ b lbl_8039E388 +lbl_8039E2A0: +/* 8039E2A0 0039B200 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E2A4 0039B204 38 63 00 01 */ addi r3, r3, 1 +/* 8039E2A8 0039B208 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E2AC 0039B20C 28 00 00 00 */ cmplwi r0, 0 +/* 8039E2B0 0039B210 41 82 00 14 */ beq lbl_8039E2C4 +/* 8039E2B4 0039B214 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E2B8 0039B218 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E2BC 0039B21C 40 82 00 08 */ bne lbl_8039E2C4 +/* 8039E2C0 0039B220 48 00 00 C8 */ b lbl_8039E388 +lbl_8039E2C4: +/* 8039E2C4 0039B224 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E2C8 0039B228 38 63 00 01 */ addi r3, r3, 1 +/* 8039E2CC 0039B22C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E2D0 0039B230 28 00 00 00 */ cmplwi r0, 0 +/* 8039E2D4 0039B234 41 82 00 14 */ beq lbl_8039E2E8 +/* 8039E2D8 0039B238 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E2DC 0039B23C 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E2E0 0039B240 40 82 00 08 */ bne lbl_8039E2E8 +/* 8039E2E4 0039B244 48 00 00 A4 */ b lbl_8039E388 +lbl_8039E2E8: +/* 8039E2E8 0039B248 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E2EC 0039B24C 38 63 00 01 */ addi r3, r3, 1 +/* 8039E2F0 0039B250 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E2F4 0039B254 28 00 00 00 */ cmplwi r0, 0 +/* 8039E2F8 0039B258 41 82 00 14 */ beq lbl_8039E30C +/* 8039E2FC 0039B25C 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E300 0039B260 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E304 0039B264 40 82 00 08 */ bne lbl_8039E30C +/* 8039E308 0039B268 48 00 00 80 */ b lbl_8039E388 +lbl_8039E30C: +/* 8039E30C 0039B26C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E310 0039B270 38 63 00 01 */ addi r3, r3, 1 +/* 8039E314 0039B274 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E318 0039B278 28 00 00 00 */ cmplwi r0, 0 +/* 8039E31C 0039B27C 41 82 00 14 */ beq lbl_8039E330 +/* 8039E320 0039B280 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E324 0039B284 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E328 0039B288 40 82 00 08 */ bne lbl_8039E330 +/* 8039E32C 0039B28C 48 00 00 5C */ b lbl_8039E388 +lbl_8039E330: +/* 8039E330 0039B290 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E334 0039B294 38 63 00 01 */ addi r3, r3, 1 +/* 8039E338 0039B298 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E33C 0039B29C 28 00 00 00 */ cmplwi r0, 0 +/* 8039E340 0039B2A0 41 82 00 14 */ beq lbl_8039E354 +/* 8039E344 0039B2A4 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E348 0039B2A8 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E34C 0039B2AC 40 82 00 08 */ bne lbl_8039E354 +/* 8039E350 0039B2B0 48 00 00 38 */ b lbl_8039E388 +lbl_8039E354: +/* 8039E354 0039B2B4 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E358 0039B2B8 38 63 00 01 */ addi r3, r3, 1 +/* 8039E35C 0039B2BC 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E360 0039B2C0 28 00 00 00 */ cmplwi r0, 0 +/* 8039E364 0039B2C4 41 82 00 14 */ beq lbl_8039E378 +/* 8039E368 0039B2C8 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E36C 0039B2CC 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E370 0039B2D0 40 82 00 08 */ bne lbl_8039E378 +/* 8039E374 0039B2D4 48 00 00 14 */ b lbl_8039E388 +lbl_8039E378: +/* 8039E378 0039B2D8 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E37C 0039B2DC 38 63 00 01 */ addi r3, r3, 1 +/* 8039E380 0039B2E0 42 00 FE E0 */ bdnz lbl_8039E260 +/* 8039E384 0039B2E4 38 60 FF FF */ li r3, -1 +lbl_8039E388: +/* 8039E388 0039B2E8 3C 03 00 01 */ addis r0, r3, 1 +/* 8039E38C 0039B2EC 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E390 0039B2F0 41 82 03 74 */ beq lbl_8039E704 +/* 8039E394 0039B2F4 1C A3 00 64 */ mulli r5, r3, 0x64 +/* 8039E398 0039B2F8 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E39C 0039B2FC A8 9B 00 00 */ lha r4, 0(r27) +/* 8039E3A0 0039B300 38 00 00 08 */ li r0, 8 +/* 8039E3A4 0039B304 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039E3A8 0039B308 7C DE 2A 14 */ add r6, r30, r5 +/* 8039E3AC 0039B30C B0 86 00 00 */ sth r4, 0(r6) +/* 8039E3B0 0039B310 7C FD 2A 14 */ add r7, r29, r5 +/* 8039E3B4 0039B314 A8 9B 00 02 */ lha r4, 2(r27) +/* 8039E3B8 0039B318 B0 87 00 00 */ sth r4, 0(r7) +/* 8039E3BC 0039B31C A8 9B 00 04 */ lha r4, 4(r27) +/* 8039E3C0 0039B320 B0 86 00 04 */ sth r4, 4(r6) +/* 8039E3C4 0039B324 A8 9B 00 06 */ lha r4, 6(r27) +/* 8039E3C8 0039B328 B0 87 00 04 */ sth r4, 4(r7) +/* 8039E3CC 0039B32C A8 9B 00 08 */ lha r4, 8(r27) +/* 8039E3D0 0039B330 B0 86 00 08 */ sth r4, 8(r6) +/* 8039E3D4 0039B334 A8 9B 00 0A */ lha r4, 0xa(r27) +/* 8039E3D8 0039B338 B0 87 00 08 */ sth r4, 8(r7) +/* 8039E3DC 0039B33C A8 9B 00 0C */ lha r4, 0xc(r27) +/* 8039E3E0 0039B340 B0 86 00 0C */ sth r4, 0xc(r6) +/* 8039E3E4 0039B344 A8 9B 00 0E */ lha r4, 0xe(r27) +/* 8039E3E8 0039B348 B0 87 00 0C */ sth r4, 0xc(r7) +/* 8039E3EC 0039B34C A8 9B 00 10 */ lha r4, 0x10(r27) +/* 8039E3F0 0039B350 B0 86 00 10 */ sth r4, 0x10(r6) +/* 8039E3F4 0039B354 A8 9B 00 12 */ lha r4, 0x12(r27) +/* 8039E3F8 0039B358 B0 87 00 10 */ sth r4, 0x10(r7) +/* 8039E3FC 0039B35C A8 9B 00 14 */ lha r4, 0x14(r27) +/* 8039E400 0039B360 B0 86 00 14 */ sth r4, 0x14(r6) +/* 8039E404 0039B364 A8 9B 00 16 */ lha r4, 0x16(r27) +/* 8039E408 0039B368 B0 87 00 14 */ sth r4, 0x14(r7) +/* 8039E40C 0039B36C A8 9B 00 18 */ lha r4, 0x18(r27) +/* 8039E410 0039B370 B0 86 00 18 */ sth r4, 0x18(r6) +/* 8039E414 0039B374 A8 9B 00 1A */ lha r4, 0x1a(r27) +/* 8039E418 0039B378 B0 87 00 18 */ sth r4, 0x18(r7) +/* 8039E41C 0039B37C A8 9B 00 1C */ lha r4, 0x1c(r27) +/* 8039E420 0039B380 B0 86 00 1C */ sth r4, 0x1c(r6) +/* 8039E424 0039B384 A8 9B 00 1E */ lha r4, 0x1e(r27) +/* 8039E428 0039B388 B0 87 00 1C */ sth r4, 0x1c(r7) +/* 8039E42C 0039B38C 7C 1C 2B 2E */ sthx r0, r28, r5 +/* 8039E430 0039B390 7F 43 28 2E */ lwzx r26, r3, r5 +/* 8039E434 0039B394 3C 1A 00 01 */ addis r0, r26, 1 +/* 8039E438 0039B398 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E43C 0039B39C 41 82 02 C8 */ beq lbl_8039E704 +/* 8039E440 0039B3A0 48 01 6C 7D */ bl hwDisableIrq +/* 8039E444 0039B3A4 38 00 00 08 */ li r0, 8 +/* 8039E448 0039B3A8 38 60 00 00 */ li r3, 0 +/* 8039E44C 0039B3AC 7C 09 03 A6 */ mtctr r0 +lbl_8039E450: +/* 8039E450 0039B3B0 88 1F 00 0C */ lbz r0, 0xc(r31) +/* 8039E454 0039B3B4 28 00 00 00 */ cmplwi r0, 0 +/* 8039E458 0039B3B8 41 82 00 14 */ beq lbl_8039E46C +/* 8039E45C 0039B3BC 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039E460 0039B3C0 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E464 0039B3C4 40 82 00 08 */ bne lbl_8039E46C +/* 8039E468 0039B3C8 48 00 01 10 */ b lbl_8039E578 +lbl_8039E46C: +/* 8039E46C 0039B3CC 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039E470 0039B3D0 38 63 00 01 */ addi r3, r3, 1 +/* 8039E474 0039B3D4 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039E478 0039B3D8 28 00 00 00 */ cmplwi r0, 0 +/* 8039E47C 0039B3DC 41 82 00 14 */ beq lbl_8039E490 +/* 8039E480 0039B3E0 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039E484 0039B3E4 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E488 0039B3E8 40 82 00 08 */ bne lbl_8039E490 +/* 8039E48C 0039B3EC 48 00 00 EC */ b lbl_8039E578 +lbl_8039E490: +/* 8039E490 0039B3F0 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039E494 0039B3F4 38 63 00 01 */ addi r3, r3, 1 +/* 8039E498 0039B3F8 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039E49C 0039B3FC 28 00 00 00 */ cmplwi r0, 0 +/* 8039E4A0 0039B400 41 82 00 14 */ beq lbl_8039E4B4 +/* 8039E4A4 0039B404 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039E4A8 0039B408 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E4AC 0039B40C 40 82 00 08 */ bne lbl_8039E4B4 +/* 8039E4B0 0039B410 48 00 00 C8 */ b lbl_8039E578 +lbl_8039E4B4: +/* 8039E4B4 0039B414 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039E4B8 0039B418 38 63 00 01 */ addi r3, r3, 1 +/* 8039E4BC 0039B41C 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039E4C0 0039B420 28 00 00 00 */ cmplwi r0, 0 +/* 8039E4C4 0039B424 41 82 00 14 */ beq lbl_8039E4D8 +/* 8039E4C8 0039B428 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039E4CC 0039B42C 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E4D0 0039B430 40 82 00 08 */ bne lbl_8039E4D8 +/* 8039E4D4 0039B434 48 00 00 A4 */ b lbl_8039E578 +lbl_8039E4D8: +/* 8039E4D8 0039B438 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039E4DC 0039B43C 38 63 00 01 */ addi r3, r3, 1 +/* 8039E4E0 0039B440 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039E4E4 0039B444 28 00 00 00 */ cmplwi r0, 0 +/* 8039E4E8 0039B448 41 82 00 14 */ beq lbl_8039E4FC +/* 8039E4EC 0039B44C 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039E4F0 0039B450 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E4F4 0039B454 40 82 00 08 */ bne lbl_8039E4FC +/* 8039E4F8 0039B458 48 00 00 80 */ b lbl_8039E578 +lbl_8039E4FC: +/* 8039E4FC 0039B45C 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039E500 0039B460 38 63 00 01 */ addi r3, r3, 1 +/* 8039E504 0039B464 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039E508 0039B468 28 00 00 00 */ cmplwi r0, 0 +/* 8039E50C 0039B46C 41 82 00 14 */ beq lbl_8039E520 +/* 8039E510 0039B470 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039E514 0039B474 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E518 0039B478 40 82 00 08 */ bne lbl_8039E520 +/* 8039E51C 0039B47C 48 00 00 5C */ b lbl_8039E578 +lbl_8039E520: +/* 8039E520 0039B480 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039E524 0039B484 38 63 00 01 */ addi r3, r3, 1 +/* 8039E528 0039B488 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039E52C 0039B48C 28 00 00 00 */ cmplwi r0, 0 +/* 8039E530 0039B490 41 82 00 14 */ beq lbl_8039E544 +/* 8039E534 0039B494 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039E538 0039B498 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E53C 0039B49C 40 82 00 08 */ bne lbl_8039E544 +/* 8039E540 0039B4A0 48 00 00 38 */ b lbl_8039E578 +lbl_8039E544: +/* 8039E544 0039B4A4 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039E548 0039B4A8 38 63 00 01 */ addi r3, r3, 1 +/* 8039E54C 0039B4AC 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039E550 0039B4B0 28 00 00 00 */ cmplwi r0, 0 +/* 8039E554 0039B4B4 41 82 00 14 */ beq lbl_8039E568 +/* 8039E558 0039B4B8 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039E55C 0039B4BC 7C 1A 00 40 */ cmplw r26, r0 +/* 8039E560 0039B4C0 40 82 00 08 */ bne lbl_8039E568 +/* 8039E564 0039B4C4 48 00 00 14 */ b lbl_8039E578 +lbl_8039E568: +/* 8039E568 0039B4C8 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039E56C 0039B4CC 38 63 00 01 */ addi r3, r3, 1 +/* 8039E570 0039B4D0 42 00 FE E0 */ bdnz lbl_8039E450 +/* 8039E574 0039B4D4 38 60 FF FF */ li r3, -1 +lbl_8039E578: +/* 8039E578 0039B4D8 3C 03 00 01 */ addis r0, r3, 1 +/* 8039E57C 0039B4DC 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E580 0039B4E0 41 82 01 80 */ beq lbl_8039E700 +/* 8039E584 0039B4E4 1C A3 00 64 */ mulli r5, r3, 0x64 +/* 8039E588 0039B4E8 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E58C 0039B4EC A8 9B 00 00 */ lha r4, 0(r27) +/* 8039E590 0039B4F0 38 00 00 08 */ li r0, 8 +/* 8039E594 0039B4F4 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039E598 0039B4F8 7C DE 2A 14 */ add r6, r30, r5 +/* 8039E59C 0039B4FC B0 86 00 00 */ sth r4, 0(r6) +/* 8039E5A0 0039B500 7C FD 2A 14 */ add r7, r29, r5 +/* 8039E5A4 0039B504 A8 9B 00 02 */ lha r4, 2(r27) +/* 8039E5A8 0039B508 B0 87 00 00 */ sth r4, 0(r7) +/* 8039E5AC 0039B50C A8 9B 00 04 */ lha r4, 4(r27) +/* 8039E5B0 0039B510 B0 86 00 04 */ sth r4, 4(r6) +/* 8039E5B4 0039B514 A8 9B 00 06 */ lha r4, 6(r27) +/* 8039E5B8 0039B518 B0 87 00 04 */ sth r4, 4(r7) +/* 8039E5BC 0039B51C A8 9B 00 08 */ lha r4, 8(r27) +/* 8039E5C0 0039B520 B0 86 00 08 */ sth r4, 8(r6) +/* 8039E5C4 0039B524 A8 9B 00 0A */ lha r4, 0xa(r27) +/* 8039E5C8 0039B528 B0 87 00 08 */ sth r4, 8(r7) +/* 8039E5CC 0039B52C A8 9B 00 0C */ lha r4, 0xc(r27) +/* 8039E5D0 0039B530 B0 86 00 0C */ sth r4, 0xc(r6) +/* 8039E5D4 0039B534 A8 9B 00 0E */ lha r4, 0xe(r27) +/* 8039E5D8 0039B538 B0 87 00 0C */ sth r4, 0xc(r7) +/* 8039E5DC 0039B53C A8 9B 00 10 */ lha r4, 0x10(r27) +/* 8039E5E0 0039B540 B0 86 00 10 */ sth r4, 0x10(r6) +/* 8039E5E4 0039B544 A8 9B 00 12 */ lha r4, 0x12(r27) +/* 8039E5E8 0039B548 B0 87 00 10 */ sth r4, 0x10(r7) +/* 8039E5EC 0039B54C A8 9B 00 14 */ lha r4, 0x14(r27) +/* 8039E5F0 0039B550 B0 86 00 14 */ sth r4, 0x14(r6) +/* 8039E5F4 0039B554 A8 9B 00 16 */ lha r4, 0x16(r27) +/* 8039E5F8 0039B558 B0 87 00 14 */ sth r4, 0x14(r7) +/* 8039E5FC 0039B55C A8 9B 00 18 */ lha r4, 0x18(r27) +/* 8039E600 0039B560 B0 86 00 18 */ sth r4, 0x18(r6) +/* 8039E604 0039B564 A8 9B 00 1A */ lha r4, 0x1a(r27) +/* 8039E608 0039B568 B0 87 00 18 */ sth r4, 0x18(r7) +/* 8039E60C 0039B56C A8 9B 00 1C */ lha r4, 0x1c(r27) +/* 8039E610 0039B570 B0 86 00 1C */ sth r4, 0x1c(r6) +/* 8039E614 0039B574 A8 9B 00 1E */ lha r4, 0x1e(r27) +/* 8039E618 0039B578 B0 87 00 1C */ sth r4, 0x1c(r7) +/* 8039E61C 0039B57C 7C 1C 2B 2E */ sthx r0, r28, r5 +/* 8039E620 0039B580 7F 43 28 2E */ lwzx r26, r3, r5 +/* 8039E624 0039B584 3C 1A 00 01 */ addis r0, r26, 1 +/* 8039E628 0039B588 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E62C 0039B58C 41 82 00 D4 */ beq lbl_8039E700 +/* 8039E630 0039B590 48 01 6A 8D */ bl hwDisableIrq +/* 8039E634 0039B594 7F 43 D3 78 */ mr r3, r26 +/* 8039E638 0039B598 4B FF EC A9 */ bl GetPrivateIndex +/* 8039E63C 0039B59C 3C 03 00 01 */ addis r0, r3, 1 +/* 8039E640 0039B5A0 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E644 0039B5A4 41 82 00 B8 */ beq lbl_8039E6FC +/* 8039E648 0039B5A8 1C A3 00 64 */ mulli r5, r3, 0x64 +/* 8039E64C 0039B5AC 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E650 0039B5B0 A8 9B 00 00 */ lha r4, 0(r27) +/* 8039E654 0039B5B4 38 00 00 08 */ li r0, 8 +/* 8039E658 0039B5B8 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039E65C 0039B5BC 7C DE 2A 14 */ add r6, r30, r5 +/* 8039E660 0039B5C0 B0 86 00 00 */ sth r4, 0(r6) +/* 8039E664 0039B5C4 7C FD 2A 14 */ add r7, r29, r5 +/* 8039E668 0039B5C8 A8 9B 00 02 */ lha r4, 2(r27) +/* 8039E66C 0039B5CC B0 87 00 00 */ sth r4, 0(r7) +/* 8039E670 0039B5D0 A8 9B 00 04 */ lha r4, 4(r27) +/* 8039E674 0039B5D4 B0 86 00 04 */ sth r4, 4(r6) +/* 8039E678 0039B5D8 A8 9B 00 06 */ lha r4, 6(r27) +/* 8039E67C 0039B5DC B0 87 00 04 */ sth r4, 4(r7) +/* 8039E680 0039B5E0 A8 9B 00 08 */ lha r4, 8(r27) +/* 8039E684 0039B5E4 B0 86 00 08 */ sth r4, 8(r6) +/* 8039E688 0039B5E8 A8 9B 00 0A */ lha r4, 0xa(r27) +/* 8039E68C 0039B5EC B0 87 00 08 */ sth r4, 8(r7) +/* 8039E690 0039B5F0 A8 9B 00 0C */ lha r4, 0xc(r27) +/* 8039E694 0039B5F4 B0 86 00 0C */ sth r4, 0xc(r6) +/* 8039E698 0039B5F8 A8 9B 00 0E */ lha r4, 0xe(r27) +/* 8039E69C 0039B5FC B0 87 00 0C */ sth r4, 0xc(r7) +/* 8039E6A0 0039B600 A8 9B 00 10 */ lha r4, 0x10(r27) +/* 8039E6A4 0039B604 B0 86 00 10 */ sth r4, 0x10(r6) +/* 8039E6A8 0039B608 A8 9B 00 12 */ lha r4, 0x12(r27) +/* 8039E6AC 0039B60C B0 87 00 10 */ sth r4, 0x10(r7) +/* 8039E6B0 0039B610 A8 9B 00 14 */ lha r4, 0x14(r27) +/* 8039E6B4 0039B614 B0 86 00 14 */ sth r4, 0x14(r6) +/* 8039E6B8 0039B618 A8 9B 00 16 */ lha r4, 0x16(r27) +/* 8039E6BC 0039B61C B0 87 00 14 */ sth r4, 0x14(r7) +/* 8039E6C0 0039B620 A8 9B 00 18 */ lha r4, 0x18(r27) +/* 8039E6C4 0039B624 B0 86 00 18 */ sth r4, 0x18(r6) +/* 8039E6C8 0039B628 A8 9B 00 1A */ lha r4, 0x1a(r27) +/* 8039E6CC 0039B62C B0 87 00 18 */ sth r4, 0x18(r7) +/* 8039E6D0 0039B630 A8 9B 00 1C */ lha r4, 0x1c(r27) +/* 8039E6D4 0039B634 B0 86 00 1C */ sth r4, 0x1c(r6) +/* 8039E6D8 0039B638 A8 9B 00 1E */ lha r4, 0x1e(r27) +/* 8039E6DC 0039B63C B0 87 00 1C */ sth r4, 0x1c(r7) +/* 8039E6E0 0039B640 7C 1C 2B 2E */ sthx r0, r28, r5 +/* 8039E6E4 0039B644 7C 63 28 2E */ lwzx r3, r3, r5 +/* 8039E6E8 0039B648 3C 03 00 01 */ addis r0, r3, 1 +/* 8039E6EC 0039B64C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E6F0 0039B650 41 82 00 0C */ beq lbl_8039E6FC +/* 8039E6F4 0039B654 7F 64 DB 78 */ mr r4, r27 +/* 8039E6F8 0039B658 4B FF F9 31 */ bl sndStreamADPCMParameter +lbl_8039E6FC: +/* 8039E6FC 0039B65C 48 01 69 89 */ bl hwEnableIrq +lbl_8039E700: +/* 8039E700 0039B660 48 01 69 85 */ bl hwEnableIrq +lbl_8039E704: +/* 8039E704 0039B664 48 01 69 81 */ bl hwEnableIrq +lbl_8039E708: +/* 8039E708 0039B668 48 01 69 7D */ bl hwEnableIrq +/* 8039E70C 0039B66C 39 61 00 20 */ addi r11, r1, 0x20 +/* 8039E710 0039B670 4B FE B3 B5 */ bl _restgpr_26 +/* 8039E714 0039B674 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039E718 0039B678 7C 08 03 A6 */ mtlr r0 +/* 8039E71C 0039B67C 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039E720 0039B680 4E 80 00 20 */ blr + +.global sndStreamMixParameter +sndStreamMixParameter: +/* 8039E724 0039B684 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 8039E728 0039B688 7C 08 02 A6 */ mflr r0 +/* 8039E72C 0039B68C 90 01 00 44 */ stw r0, 0x44(r1) +/* 8039E730 0039B690 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039E734 0039B694 4B FE B3 45 */ bl func_80389A78 +/* 8039E738 0039B698 7C 7F 1B 78 */ mr r31, r3 +/* 8039E73C 0039B69C 7C 9A 23 78 */ mr r26, r4 +/* 8039E740 0039B6A0 7C BB 2B 78 */ mr r27, r5 +/* 8039E744 0039B6A4 7C DC 33 78 */ mr r28, r6 +/* 8039E748 0039B6A8 7C FD 3B 78 */ mr r29, r7 +/* 8039E74C 0039B6AC 48 01 69 71 */ bl hwDisableIrq +/* 8039E750 0039B6B0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E754 0039B6B4 38 00 00 08 */ li r0, 8 +/* 8039E758 0039B6B8 3B C3 13 F8 */ addi r30, r3, lbl_805513F8@l +/* 8039E75C 0039B6BC 38 60 00 00 */ li r3, 0 +/* 8039E760 0039B6C0 7F C4 F3 78 */ mr r4, r30 +/* 8039E764 0039B6C4 7C 09 03 A6 */ mtctr r0 +lbl_8039E768: +/* 8039E768 0039B6C8 88 04 00 0C */ lbz r0, 0xc(r4) +/* 8039E76C 0039B6CC 28 00 00 00 */ cmplwi r0, 0 +/* 8039E770 0039B6D0 41 82 00 14 */ beq lbl_8039E784 +/* 8039E774 0039B6D4 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E778 0039B6D8 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E77C 0039B6DC 40 82 00 08 */ bne lbl_8039E784 +/* 8039E780 0039B6E0 48 00 01 10 */ b lbl_8039E890 +lbl_8039E784: +/* 8039E784 0039B6E4 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E788 0039B6E8 38 63 00 01 */ addi r3, r3, 1 +/* 8039E78C 0039B6EC 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E790 0039B6F0 28 00 00 00 */ cmplwi r0, 0 +/* 8039E794 0039B6F4 41 82 00 14 */ beq lbl_8039E7A8 +/* 8039E798 0039B6F8 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E79C 0039B6FC 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E7A0 0039B700 40 82 00 08 */ bne lbl_8039E7A8 +/* 8039E7A4 0039B704 48 00 00 EC */ b lbl_8039E890 +lbl_8039E7A8: +/* 8039E7A8 0039B708 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E7AC 0039B70C 38 63 00 01 */ addi r3, r3, 1 +/* 8039E7B0 0039B710 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E7B4 0039B714 28 00 00 00 */ cmplwi r0, 0 +/* 8039E7B8 0039B718 41 82 00 14 */ beq lbl_8039E7CC +/* 8039E7BC 0039B71C 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E7C0 0039B720 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E7C4 0039B724 40 82 00 08 */ bne lbl_8039E7CC +/* 8039E7C8 0039B728 48 00 00 C8 */ b lbl_8039E890 +lbl_8039E7CC: +/* 8039E7CC 0039B72C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E7D0 0039B730 38 63 00 01 */ addi r3, r3, 1 +/* 8039E7D4 0039B734 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E7D8 0039B738 28 00 00 00 */ cmplwi r0, 0 +/* 8039E7DC 0039B73C 41 82 00 14 */ beq lbl_8039E7F0 +/* 8039E7E0 0039B740 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E7E4 0039B744 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E7E8 0039B748 40 82 00 08 */ bne lbl_8039E7F0 +/* 8039E7EC 0039B74C 48 00 00 A4 */ b lbl_8039E890 +lbl_8039E7F0: +/* 8039E7F0 0039B750 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E7F4 0039B754 38 63 00 01 */ addi r3, r3, 1 +/* 8039E7F8 0039B758 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E7FC 0039B75C 28 00 00 00 */ cmplwi r0, 0 +/* 8039E800 0039B760 41 82 00 14 */ beq lbl_8039E814 +/* 8039E804 0039B764 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E808 0039B768 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E80C 0039B76C 40 82 00 08 */ bne lbl_8039E814 +/* 8039E810 0039B770 48 00 00 80 */ b lbl_8039E890 +lbl_8039E814: +/* 8039E814 0039B774 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E818 0039B778 38 63 00 01 */ addi r3, r3, 1 +/* 8039E81C 0039B77C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E820 0039B780 28 00 00 00 */ cmplwi r0, 0 +/* 8039E824 0039B784 41 82 00 14 */ beq lbl_8039E838 +/* 8039E828 0039B788 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E82C 0039B78C 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E830 0039B790 40 82 00 08 */ bne lbl_8039E838 +/* 8039E834 0039B794 48 00 00 5C */ b lbl_8039E890 +lbl_8039E838: +/* 8039E838 0039B798 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E83C 0039B79C 38 63 00 01 */ addi r3, r3, 1 +/* 8039E840 0039B7A0 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E844 0039B7A4 28 00 00 00 */ cmplwi r0, 0 +/* 8039E848 0039B7A8 41 82 00 14 */ beq lbl_8039E85C +/* 8039E84C 0039B7AC 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E850 0039B7B0 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E854 0039B7B4 40 82 00 08 */ bne lbl_8039E85C +/* 8039E858 0039B7B8 48 00 00 38 */ b lbl_8039E890 +lbl_8039E85C: +/* 8039E85C 0039B7BC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039E860 0039B7C0 38 63 00 01 */ addi r3, r3, 1 +/* 8039E864 0039B7C4 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E868 0039B7C8 28 00 00 00 */ cmplwi r0, 0 +/* 8039E86C 0039B7CC 41 82 00 14 */ beq lbl_8039E880 +/* 8039E870 0039B7D0 80 04 00 04 */ lwz r0, 4(r4) +/* 8039E874 0039B7D4 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E878 0039B7D8 40 82 00 08 */ bne lbl_8039E880 +/* 8039E87C 0039B7DC 48 00 00 14 */ b lbl_8039E890 +lbl_8039E880: +/* 8039E880 0039B7E0 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039E884 0039B7E4 38 63 00 01 */ addi r3, r3, 1 +/* 8039E888 0039B7E8 42 00 FE E0 */ bdnz lbl_8039E768 +/* 8039E88C 0039B7EC 38 60 FF FF */ li r3, -1 +lbl_8039E890: +/* 8039E890 0039B7F0 3C 03 00 01 */ addis r0, r3, 1 +/* 8039E894 0039B7F4 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E898 0039B7F8 41 82 03 7C */ beq lbl_8039EC14 +/* 8039E89C 0039B7FC 1F E3 00 64 */ mulli r31, r3, 0x64 +/* 8039E8A0 0039B800 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E8A4 0039B804 80 8D AE 74 */ lwz r4, lbl_805A9A34@sda21(r13) +/* 8039E8A8 0039B808 7F 86 E3 78 */ mr r6, r28 +/* 8039E8AC 0039B80C 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039E8B0 0039B810 7C 60 FA 14 */ add r3, r0, r31 +/* 8039E8B4 0039B814 9B 63 00 5E */ stb r27, 0x5e(r3) +/* 8039E8B8 0039B818 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 8039E8BC 0039B81C 7F 65 DB 78 */ mr r5, r27 +/* 8039E8C0 0039B820 9B 83 00 5F */ stb r28, 0x5f(r3) +/* 8039E8C4 0039B824 41 82 00 10 */ beq lbl_8039E8D4 +/* 8039E8C8 0039B828 38 A0 00 40 */ li r5, 0x40 +/* 8039E8CC 0039B82C 38 C0 00 00 */ li r6, 0 +/* 8039E8D0 0039B830 48 00 00 10 */ b lbl_8039E8E0 +lbl_8039E8D4: +/* 8039E8D4 0039B834 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e +/* 8039E8D8 0039B838 40 82 00 08 */ bne lbl_8039E8E0 +/* 8039E8DC 0039B83C 38 C0 00 00 */ li r6, 0 +lbl_8039E8E0: +/* 8039E8E0 0039B840 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E8E4 0039B844 3C E0 43 30 */ lis r7, 0x4330 +/* 8039E8E8 0039B848 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039E8EC 0039B84C 38 00 00 00 */ li r0, 0 +/* 8039E8F0 0039B850 7D 03 FA 14 */ add r8, r3, r31 +/* 8039E8F4 0039B854 90 E1 00 10 */ stw r7, 0x10(r1) +/* 8039E8F8 0039B858 C8 62 D5 58 */ lfd f3, lbl_805AF278@sda21(r2) +/* 8039E8FC 0039B85C 38 80 00 00 */ li r4, 0 +/* 8039E900 0039B860 9B 48 00 59 */ stb r26, 0x59(r8) +/* 8039E904 0039B864 C0 82 D5 50 */ lfs f4, lbl_805AF270@sda21(r2) +/* 8039E908 0039B868 98 A8 00 5A */ stb r5, 0x5a(r8) +/* 8039E90C 0039B86C 98 C8 00 5B */ stb r6, 0x5b(r8) +/* 8039E910 0039B870 9B A8 00 5C */ stb r29, 0x5c(r8) +/* 8039E914 0039B874 98 08 00 5D */ stb r0, 0x5d(r8) +/* 8039E918 0039B878 88 A8 00 59 */ lbz r5, 0x59(r8) +/* 8039E91C 0039B87C 88 68 00 5C */ lbz r3, 0x5c(r8) +/* 8039E920 0039B880 88 08 00 5D */ lbz r0, 0x5d(r8) +/* 8039E924 0039B884 90 A1 00 14 */ stw r5, 0x14(r1) +/* 8039E928 0039B888 88 A8 00 5A */ lbz r5, 0x5a(r8) +/* 8039E92C 0039B88C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039E930 0039B890 90 61 00 1C */ stw r3, 0x1c(r1) +/* 8039E934 0039B894 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 8039E938 0039B898 EC 20 18 28 */ fsubs f1, f0, f3 +/* 8039E93C 0039B89C 88 C8 00 5B */ lbz r6, 0x5b(r8) +/* 8039E940 0039B8A0 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8039E944 0039B8A4 80 68 00 4C */ lwz r3, 0x4c(r8) +/* 8039E948 0039B8A8 54 C6 80 1E */ slwi r6, r6, 0x10 +/* 8039E94C 0039B8AC C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039E950 0039B8B0 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039E954 0039B8B4 EC 24 00 72 */ fmuls f1, f4, f1 +/* 8039E958 0039B8B8 EC 40 18 28 */ fsubs f2, f0, f3 +/* 8039E95C 0039B8BC 90 E1 00 20 */ stw r7, 0x20(r1) +/* 8039E960 0039B8C0 C8 01 00 20 */ lfd f0, 0x20(r1) +/* 8039E964 0039B8C4 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039E968 0039B8C8 EC 00 18 28 */ fsubs f0, f0, f3 +/* 8039E96C 0039B8CC EC 64 00 32 */ fmuls f3, f4, f0 +/* 8039E970 0039B8D0 48 01 4E 19 */ bl hwSetVolume +/* 8039E974 0039B8D4 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039E978 0039B8D8 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039E97C 0039B8DC 7F E3 F8 2E */ lwzx r31, r3, r31 +/* 8039E980 0039B8E0 3C 1F 00 01 */ addis r0, r31, 1 +/* 8039E984 0039B8E4 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039E988 0039B8E8 41 82 02 8C */ beq lbl_8039EC14 +/* 8039E98C 0039B8EC 48 01 67 31 */ bl hwDisableIrq +/* 8039E990 0039B8F0 38 00 00 08 */ li r0, 8 +/* 8039E994 0039B8F4 38 60 00 00 */ li r3, 0 +/* 8039E998 0039B8F8 7C 09 03 A6 */ mtctr r0 +lbl_8039E99C: +/* 8039E99C 0039B8FC 88 1E 00 0C */ lbz r0, 0xc(r30) +/* 8039E9A0 0039B900 28 00 00 00 */ cmplwi r0, 0 +/* 8039E9A4 0039B904 41 82 00 14 */ beq lbl_8039E9B8 +/* 8039E9A8 0039B908 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039E9AC 0039B90C 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E9B0 0039B910 40 82 00 08 */ bne lbl_8039E9B8 +/* 8039E9B4 0039B914 48 00 01 10 */ b lbl_8039EAC4 +lbl_8039E9B8: +/* 8039E9B8 0039B918 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039E9BC 0039B91C 38 63 00 01 */ addi r3, r3, 1 +/* 8039E9C0 0039B920 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039E9C4 0039B924 28 00 00 00 */ cmplwi r0, 0 +/* 8039E9C8 0039B928 41 82 00 14 */ beq lbl_8039E9DC +/* 8039E9CC 0039B92C 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039E9D0 0039B930 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E9D4 0039B934 40 82 00 08 */ bne lbl_8039E9DC +/* 8039E9D8 0039B938 48 00 00 EC */ b lbl_8039EAC4 +lbl_8039E9DC: +/* 8039E9DC 0039B93C 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039E9E0 0039B940 38 63 00 01 */ addi r3, r3, 1 +/* 8039E9E4 0039B944 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039E9E8 0039B948 28 00 00 00 */ cmplwi r0, 0 +/* 8039E9EC 0039B94C 41 82 00 14 */ beq lbl_8039EA00 +/* 8039E9F0 0039B950 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039E9F4 0039B954 7C 1F 00 40 */ cmplw r31, r0 +/* 8039E9F8 0039B958 40 82 00 08 */ bne lbl_8039EA00 +/* 8039E9FC 0039B95C 48 00 00 C8 */ b lbl_8039EAC4 +lbl_8039EA00: +/* 8039EA00 0039B960 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EA04 0039B964 38 63 00 01 */ addi r3, r3, 1 +/* 8039EA08 0039B968 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EA0C 0039B96C 28 00 00 00 */ cmplwi r0, 0 +/* 8039EA10 0039B970 41 82 00 14 */ beq lbl_8039EA24 +/* 8039EA14 0039B974 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EA18 0039B978 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EA1C 0039B97C 40 82 00 08 */ bne lbl_8039EA24 +/* 8039EA20 0039B980 48 00 00 A4 */ b lbl_8039EAC4 +lbl_8039EA24: +/* 8039EA24 0039B984 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EA28 0039B988 38 63 00 01 */ addi r3, r3, 1 +/* 8039EA2C 0039B98C 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EA30 0039B990 28 00 00 00 */ cmplwi r0, 0 +/* 8039EA34 0039B994 41 82 00 14 */ beq lbl_8039EA48 +/* 8039EA38 0039B998 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EA3C 0039B99C 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EA40 0039B9A0 40 82 00 08 */ bne lbl_8039EA48 +/* 8039EA44 0039B9A4 48 00 00 80 */ b lbl_8039EAC4 +lbl_8039EA48: +/* 8039EA48 0039B9A8 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EA4C 0039B9AC 38 63 00 01 */ addi r3, r3, 1 +/* 8039EA50 0039B9B0 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EA54 0039B9B4 28 00 00 00 */ cmplwi r0, 0 +/* 8039EA58 0039B9B8 41 82 00 14 */ beq lbl_8039EA6C +/* 8039EA5C 0039B9BC 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EA60 0039B9C0 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EA64 0039B9C4 40 82 00 08 */ bne lbl_8039EA6C +/* 8039EA68 0039B9C8 48 00 00 5C */ b lbl_8039EAC4 +lbl_8039EA6C: +/* 8039EA6C 0039B9CC 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EA70 0039B9D0 38 63 00 01 */ addi r3, r3, 1 +/* 8039EA74 0039B9D4 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EA78 0039B9D8 28 00 00 00 */ cmplwi r0, 0 +/* 8039EA7C 0039B9DC 41 82 00 14 */ beq lbl_8039EA90 +/* 8039EA80 0039B9E0 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EA84 0039B9E4 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EA88 0039B9E8 40 82 00 08 */ bne lbl_8039EA90 +/* 8039EA8C 0039B9EC 48 00 00 38 */ b lbl_8039EAC4 +lbl_8039EA90: +/* 8039EA90 0039B9F0 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EA94 0039B9F4 38 63 00 01 */ addi r3, r3, 1 +/* 8039EA98 0039B9F8 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EA9C 0039B9FC 28 00 00 00 */ cmplwi r0, 0 +/* 8039EAA0 0039BA00 41 82 00 14 */ beq lbl_8039EAB4 +/* 8039EAA4 0039BA04 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EAA8 0039BA08 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EAAC 0039BA0C 40 82 00 08 */ bne lbl_8039EAB4 +/* 8039EAB0 0039BA10 48 00 00 14 */ b lbl_8039EAC4 +lbl_8039EAB4: +/* 8039EAB4 0039BA14 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EAB8 0039BA18 38 63 00 01 */ addi r3, r3, 1 +/* 8039EABC 0039BA1C 42 00 FE E0 */ bdnz lbl_8039E99C +/* 8039EAC0 0039BA20 38 60 FF FF */ li r3, -1 +lbl_8039EAC4: +/* 8039EAC4 0039BA24 3C 03 00 01 */ addis r0, r3, 1 +/* 8039EAC8 0039BA28 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039EACC 0039BA2C 41 82 01 44 */ beq lbl_8039EC10 +/* 8039EAD0 0039BA30 1C 83 00 64 */ mulli r4, r3, 0x64 +/* 8039EAD4 0039BA34 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039EAD8 0039BA38 9B 81 00 08 */ stb r28, 8(r1) +/* 8039EADC 0039BA3C 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039EAE0 0039BA40 7F C0 22 14 */ add r30, r0, r4 +/* 8039EAE4 0039BA44 9B 61 00 09 */ stb r27, 9(r1) +/* 8039EAE8 0039BA48 38 61 00 09 */ addi r3, r1, 9 +/* 8039EAEC 0039BA4C 38 81 00 08 */ addi r4, r1, 8 +/* 8039EAF0 0039BA50 9B 7E 00 5E */ stb r27, 0x5e(r30) +/* 8039EAF4 0039BA54 9B 9E 00 5F */ stb r28, 0x5f(r30) +/* 8039EAF8 0039BA58 4B FF EC 2D */ bl CheckOutputMode +/* 8039EAFC 0039BA5C 9B 5E 00 59 */ stb r26, 0x59(r30) +/* 8039EB00 0039BA60 3C E0 43 30 */ lis r7, 0x4330 +/* 8039EB04 0039BA64 88 A1 00 09 */ lbz r5, 9(r1) +/* 8039EB08 0039BA68 38 00 00 00 */ li r0, 0 +/* 8039EB0C 0039BA6C 88 61 00 08 */ lbz r3, 8(r1) +/* 8039EB10 0039BA70 38 80 00 00 */ li r4, 0 +/* 8039EB14 0039BA74 98 BE 00 5A */ stb r5, 0x5a(r30) +/* 8039EB18 0039BA78 C8 62 D5 58 */ lfd f3, lbl_805AF278@sda21(r2) +/* 8039EB1C 0039BA7C 98 7E 00 5B */ stb r3, 0x5b(r30) +/* 8039EB20 0039BA80 C0 82 D5 50 */ lfs f4, lbl_805AF270@sda21(r2) +/* 8039EB24 0039BA84 9B BE 00 5C */ stb r29, 0x5c(r30) +/* 8039EB28 0039BA88 98 1E 00 5D */ stb r0, 0x5d(r30) +/* 8039EB2C 0039BA8C 88 BE 00 59 */ lbz r5, 0x59(r30) +/* 8039EB30 0039BA90 88 7E 00 5C */ lbz r3, 0x5c(r30) +/* 8039EB34 0039BA94 88 1E 00 5D */ lbz r0, 0x5d(r30) +/* 8039EB38 0039BA98 90 A1 00 24 */ stw r5, 0x24(r1) +/* 8039EB3C 0039BA9C 88 BE 00 5A */ lbz r5, 0x5a(r30) +/* 8039EB40 0039BAA0 90 E1 00 20 */ stw r7, 0x20(r1) +/* 8039EB44 0039BAA4 88 DE 00 5B */ lbz r6, 0x5b(r30) +/* 8039EB48 0039BAA8 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 8039EB4C 0039BAAC C8 01 00 20 */ lfd f0, 0x20(r1) +/* 8039EB50 0039BAB0 90 61 00 1C */ stw r3, 0x1c(r1) +/* 8039EB54 0039BAB4 54 C6 80 1E */ slwi r6, r6, 0x10 +/* 8039EB58 0039BAB8 EC 20 18 28 */ fsubs f1, f0, f3 +/* 8039EB5C 0039BABC 80 7E 00 4C */ lwz r3, 0x4c(r30) +/* 8039EB60 0039BAC0 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8039EB64 0039BAC4 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039EB68 0039BAC8 EC 24 00 72 */ fmuls f1, f4, f1 +/* 8039EB6C 0039BACC 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039EB70 0039BAD0 EC 40 18 28 */ fsubs f2, f0, f3 +/* 8039EB74 0039BAD4 90 E1 00 10 */ stw r7, 0x10(r1) +/* 8039EB78 0039BAD8 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039EB7C 0039BADC EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039EB80 0039BAE0 EC 00 18 28 */ fsubs f0, f0, f3 +/* 8039EB84 0039BAE4 EC 64 00 32 */ fmuls f3, f4, f0 +/* 8039EB88 0039BAE8 48 01 4C 01 */ bl hwSetVolume +/* 8039EB8C 0039BAEC 83 DE 00 00 */ lwz r30, 0(r30) +/* 8039EB90 0039BAF0 3C 1E 00 01 */ addis r0, r30, 1 +/* 8039EB94 0039BAF4 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039EB98 0039BAF8 41 82 00 78 */ beq lbl_8039EC10 +/* 8039EB9C 0039BAFC 48 01 65 21 */ bl hwDisableIrq +/* 8039EBA0 0039BB00 7F C3 F3 78 */ mr r3, r30 +/* 8039EBA4 0039BB04 4B FF E7 3D */ bl GetPrivateIndex +/* 8039EBA8 0039BB08 3C 03 00 01 */ addis r0, r3, 1 +/* 8039EBAC 0039BB0C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039EBB0 0039BB10 41 82 00 5C */ beq lbl_8039EC0C +/* 8039EBB4 0039BB14 1C A3 00 64 */ mulli r5, r3, 0x64 +/* 8039EBB8 0039BB18 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039EBBC 0039BB1C 7F 44 D3 78 */ mr r4, r26 +/* 8039EBC0 0039BB20 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039EBC4 0039BB24 7F C0 2A 14 */ add r30, r0, r5 +/* 8039EBC8 0039BB28 7F 65 DB 78 */ mr r5, r27 +/* 8039EBCC 0039BB2C 7F C3 F3 78 */ mr r3, r30 +/* 8039EBD0 0039BB30 7F 86 E3 78 */ mr r6, r28 +/* 8039EBD4 0039BB34 7F A7 EB 78 */ mr r7, r29 +/* 8039EBD8 0039BB38 39 00 00 00 */ li r8, 0 +/* 8039EBDC 0039BB3C 4B FF EB 7D */ bl SetupVolumeAndPan +/* 8039EBE0 0039BB40 7F C3 F3 78 */ mr r3, r30 +/* 8039EBE4 0039BB44 4B FF DD 3D */ bl SetHWMix +/* 8039EBE8 0039BB48 80 7E 00 00 */ lwz r3, 0(r30) +/* 8039EBEC 0039BB4C 3C 03 00 01 */ addis r0, r3, 1 +/* 8039EBF0 0039BB50 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039EBF4 0039BB54 41 82 00 18 */ beq lbl_8039EC0C +/* 8039EBF8 0039BB58 7F 44 D3 78 */ mr r4, r26 +/* 8039EBFC 0039BB5C 7F 65 DB 78 */ mr r5, r27 +/* 8039EC00 0039BB60 7F 86 E3 78 */ mr r6, r28 +/* 8039EC04 0039BB64 7F A7 EB 78 */ mr r7, r29 +/* 8039EC08 0039BB68 4B FF FB 1D */ bl sndStreamMixParameter +lbl_8039EC0C: +/* 8039EC0C 0039BB6C 48 01 64 79 */ bl hwEnableIrq +lbl_8039EC10: +/* 8039EC10 0039BB70 48 01 64 75 */ bl hwEnableIrq +lbl_8039EC14: +/* 8039EC14 0039BB74 48 01 64 71 */ bl hwEnableIrq +/* 8039EC18 0039BB78 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039EC1C 0039BB7C 4B FE AE A9 */ bl _restgpr_26 +/* 8039EC20 0039BB80 80 01 00 44 */ lwz r0, 0x44(r1) +/* 8039EC24 0039BB84 7C 08 03 A6 */ mtlr r0 +/* 8039EC28 0039BB88 38 21 00 40 */ addi r1, r1, 0x40 +/* 8039EC2C 0039BB8C 4E 80 00 20 */ blr + +.global sndStreamMixParameterEx +sndStreamMixParameterEx: +/* 8039EC30 0039BB90 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 8039EC34 0039BB94 7C 08 02 A6 */ mflr r0 +/* 8039EC38 0039BB98 90 01 00 54 */ stw r0, 0x54(r1) +/* 8039EC3C 0039BB9C 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039EC40 0039BBA0 4B FE AE 31 */ bl func_80389A70 +/* 8039EC44 0039BBA4 7C 7D 1B 78 */ mr r29, r3 +/* 8039EC48 0039BBA8 7C 98 23 78 */ mr r24, r4 +/* 8039EC4C 0039BBAC 7C B9 2B 78 */ mr r25, r5 +/* 8039EC50 0039BBB0 7C DA 33 78 */ mr r26, r6 +/* 8039EC54 0039BBB4 7C FB 3B 78 */ mr r27, r7 +/* 8039EC58 0039BBB8 7D 1C 43 78 */ mr r28, r8 +/* 8039EC5C 0039BBBC 48 01 64 61 */ bl hwDisableIrq +/* 8039EC60 0039BBC0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039EC64 0039BBC4 38 00 00 08 */ li r0, 8 +/* 8039EC68 0039BBC8 3B C3 13 F8 */ addi r30, r3, lbl_805513F8@l +/* 8039EC6C 0039BBCC 38 60 00 00 */ li r3, 0 +/* 8039EC70 0039BBD0 7F C4 F3 78 */ mr r4, r30 +/* 8039EC74 0039BBD4 7C 09 03 A6 */ mtctr r0 +lbl_8039EC78: +/* 8039EC78 0039BBD8 88 04 00 0C */ lbz r0, 0xc(r4) +/* 8039EC7C 0039BBDC 28 00 00 00 */ cmplwi r0, 0 +/* 8039EC80 0039BBE0 41 82 00 14 */ beq lbl_8039EC94 +/* 8039EC84 0039BBE4 80 04 00 04 */ lwz r0, 4(r4) +/* 8039EC88 0039BBE8 7C 1D 00 40 */ cmplw r29, r0 +/* 8039EC8C 0039BBEC 40 82 00 08 */ bne lbl_8039EC94 +/* 8039EC90 0039BBF0 48 00 01 10 */ b lbl_8039EDA0 +lbl_8039EC94: +/* 8039EC94 0039BBF4 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039EC98 0039BBF8 38 63 00 01 */ addi r3, r3, 1 +/* 8039EC9C 0039BBFC 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039ECA0 0039BC00 28 00 00 00 */ cmplwi r0, 0 +/* 8039ECA4 0039BC04 41 82 00 14 */ beq lbl_8039ECB8 +/* 8039ECA8 0039BC08 80 04 00 04 */ lwz r0, 4(r4) +/* 8039ECAC 0039BC0C 7C 1D 00 40 */ cmplw r29, r0 +/* 8039ECB0 0039BC10 40 82 00 08 */ bne lbl_8039ECB8 +/* 8039ECB4 0039BC14 48 00 00 EC */ b lbl_8039EDA0 +lbl_8039ECB8: +/* 8039ECB8 0039BC18 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039ECBC 0039BC1C 38 63 00 01 */ addi r3, r3, 1 +/* 8039ECC0 0039BC20 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039ECC4 0039BC24 28 00 00 00 */ cmplwi r0, 0 +/* 8039ECC8 0039BC28 41 82 00 14 */ beq lbl_8039ECDC +/* 8039ECCC 0039BC2C 80 04 00 04 */ lwz r0, 4(r4) +/* 8039ECD0 0039BC30 7C 1D 00 40 */ cmplw r29, r0 +/* 8039ECD4 0039BC34 40 82 00 08 */ bne lbl_8039ECDC +/* 8039ECD8 0039BC38 48 00 00 C8 */ b lbl_8039EDA0 +lbl_8039ECDC: +/* 8039ECDC 0039BC3C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039ECE0 0039BC40 38 63 00 01 */ addi r3, r3, 1 +/* 8039ECE4 0039BC44 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039ECE8 0039BC48 28 00 00 00 */ cmplwi r0, 0 +/* 8039ECEC 0039BC4C 41 82 00 14 */ beq lbl_8039ED00 +/* 8039ECF0 0039BC50 80 04 00 04 */ lwz r0, 4(r4) +/* 8039ECF4 0039BC54 7C 1D 00 40 */ cmplw r29, r0 +/* 8039ECF8 0039BC58 40 82 00 08 */ bne lbl_8039ED00 +/* 8039ECFC 0039BC5C 48 00 00 A4 */ b lbl_8039EDA0 +lbl_8039ED00: +/* 8039ED00 0039BC60 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039ED04 0039BC64 38 63 00 01 */ addi r3, r3, 1 +/* 8039ED08 0039BC68 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039ED0C 0039BC6C 28 00 00 00 */ cmplwi r0, 0 +/* 8039ED10 0039BC70 41 82 00 14 */ beq lbl_8039ED24 +/* 8039ED14 0039BC74 80 04 00 04 */ lwz r0, 4(r4) +/* 8039ED18 0039BC78 7C 1D 00 40 */ cmplw r29, r0 +/* 8039ED1C 0039BC7C 40 82 00 08 */ bne lbl_8039ED24 +/* 8039ED20 0039BC80 48 00 00 80 */ b lbl_8039EDA0 +lbl_8039ED24: +/* 8039ED24 0039BC84 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039ED28 0039BC88 38 63 00 01 */ addi r3, r3, 1 +/* 8039ED2C 0039BC8C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039ED30 0039BC90 28 00 00 00 */ cmplwi r0, 0 +/* 8039ED34 0039BC94 41 82 00 14 */ beq lbl_8039ED48 +/* 8039ED38 0039BC98 80 04 00 04 */ lwz r0, 4(r4) +/* 8039ED3C 0039BC9C 7C 1D 00 40 */ cmplw r29, r0 +/* 8039ED40 0039BCA0 40 82 00 08 */ bne lbl_8039ED48 +/* 8039ED44 0039BCA4 48 00 00 5C */ b lbl_8039EDA0 +lbl_8039ED48: +/* 8039ED48 0039BCA8 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039ED4C 0039BCAC 38 63 00 01 */ addi r3, r3, 1 +/* 8039ED50 0039BCB0 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039ED54 0039BCB4 28 00 00 00 */ cmplwi r0, 0 +/* 8039ED58 0039BCB8 41 82 00 14 */ beq lbl_8039ED6C +/* 8039ED5C 0039BCBC 80 04 00 04 */ lwz r0, 4(r4) +/* 8039ED60 0039BCC0 7C 1D 00 40 */ cmplw r29, r0 +/* 8039ED64 0039BCC4 40 82 00 08 */ bne lbl_8039ED6C +/* 8039ED68 0039BCC8 48 00 00 38 */ b lbl_8039EDA0 +lbl_8039ED6C: +/* 8039ED6C 0039BCCC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039ED70 0039BCD0 38 63 00 01 */ addi r3, r3, 1 +/* 8039ED74 0039BCD4 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039ED78 0039BCD8 28 00 00 00 */ cmplwi r0, 0 +/* 8039ED7C 0039BCDC 41 82 00 14 */ beq lbl_8039ED90 +/* 8039ED80 0039BCE0 80 04 00 04 */ lwz r0, 4(r4) +/* 8039ED84 0039BCE4 7C 1D 00 40 */ cmplw r29, r0 +/* 8039ED88 0039BCE8 40 82 00 08 */ bne lbl_8039ED90 +/* 8039ED8C 0039BCEC 48 00 00 14 */ b lbl_8039EDA0 +lbl_8039ED90: +/* 8039ED90 0039BCF0 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039ED94 0039BCF4 38 63 00 01 */ addi r3, r3, 1 +/* 8039ED98 0039BCF8 42 00 FE E0 */ bdnz lbl_8039EC78 +/* 8039ED9C 0039BCFC 38 60 FF FF */ li r3, -1 +lbl_8039EDA0: +/* 8039EDA0 0039BD00 3C 03 00 01 */ addis r0, r3, 1 +/* 8039EDA4 0039BD04 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039EDA8 0039BD08 41 82 03 C8 */ beq lbl_8039F170 +/* 8039EDAC 0039BD0C 1F E3 00 64 */ mulli r31, r3, 0x64 +/* 8039EDB0 0039BD10 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039EDB4 0039BD14 80 8D AE 74 */ lwz r4, lbl_805A9A34@sda21(r13) +/* 8039EDB8 0039BD18 7F 46 D3 78 */ mr r6, r26 +/* 8039EDBC 0039BD1C 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039EDC0 0039BD20 7C 60 FA 14 */ add r3, r0, r31 +/* 8039EDC4 0039BD24 9B 23 00 5E */ stb r25, 0x5e(r3) +/* 8039EDC8 0039BD28 54 80 07 FF */ clrlwi. r0, r4, 0x1f +/* 8039EDCC 0039BD2C 7F 25 CB 78 */ mr r5, r25 +/* 8039EDD0 0039BD30 9B 43 00 5F */ stb r26, 0x5f(r3) +/* 8039EDD4 0039BD34 41 82 00 10 */ beq lbl_8039EDE4 +/* 8039EDD8 0039BD38 38 A0 00 40 */ li r5, 0x40 +/* 8039EDDC 0039BD3C 38 C0 00 00 */ li r6, 0 +/* 8039EDE0 0039BD40 48 00 00 10 */ b lbl_8039EDF0 +lbl_8039EDE4: +/* 8039EDE4 0039BD44 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e +/* 8039EDE8 0039BD48 40 82 00 08 */ bne lbl_8039EDF0 +/* 8039EDEC 0039BD4C 38 C0 00 00 */ li r6, 0 +lbl_8039EDF0: +/* 8039EDF0 0039BD50 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039EDF4 0039BD54 38 83 13 F8 */ addi r4, r3, lbl_805513F8@l +/* 8039EDF8 0039BD58 7C E4 FA 14 */ add r7, r4, r31 +/* 8039EDFC 0039BD5C 9B 07 00 59 */ stb r24, 0x59(r7) +/* 8039EE00 0039BD60 7C EB 3B 78 */ mr r11, r7 +/* 8039EE04 0039BD64 7C EA 3B 78 */ mr r10, r7 +/* 8039EE08 0039BD68 7C E3 3B 78 */ mr r3, r7 +/* 8039EE0C 0039BD6C 98 A7 00 5A */ stb r5, 0x5a(r7) +/* 8039EE10 0039BD70 7C E9 3B 78 */ mr r9, r7 +/* 8039EE14 0039BD74 3B A4 00 0C */ addi r29, r4, 0xc +/* 8039EE18 0039BD78 39 6B 00 5A */ addi r11, r11, 0x5a +/* 8039EE1C 0039BD7C 98 C7 00 5B */ stb r6, 0x5b(r7) +/* 8039EE20 0039BD80 39 4A 00 5B */ addi r10, r10, 0x5b +/* 8039EE24 0039BD84 38 63 00 5C */ addi r3, r3, 0x5c +/* 8039EE28 0039BD88 39 29 00 5D */ addi r9, r9, 0x5d +/* 8039EE2C 0039BD8C 9B 67 00 5C */ stb r27, 0x5c(r7) +/* 8039EE30 0039BD90 9B 87 00 5D */ stb r28, 0x5d(r7) +/* 8039EE34 0039BD94 38 E7 00 59 */ addi r7, r7, 0x59 +/* 8039EE38 0039BD98 7C 1D F8 AE */ lbzx r0, r29, r31 +/* 8039EE3C 0039BD9C 28 00 00 02 */ cmplwi r0, 2 +/* 8039EE40 0039BDA0 40 82 00 78 */ bne lbl_8039EEB8 +/* 8039EE44 0039BDA4 88 A7 00 00 */ lbz r5, 0(r7) +/* 8039EE48 0039BDA8 3C E0 43 30 */ lis r7, 0x4330 +/* 8039EE4C 0039BDAC 88 63 00 00 */ lbz r3, 0(r3) +/* 8039EE50 0039BDB0 7D 04 FA 14 */ add r8, r4, r31 +/* 8039EE54 0039BDB4 88 09 00 00 */ lbz r0, 0(r9) +/* 8039EE58 0039BDB8 38 80 00 00 */ li r4, 0 +/* 8039EE5C 0039BDBC 90 A1 00 14 */ stw r5, 0x14(r1) +/* 8039EE60 0039BDC0 C8 62 D5 58 */ lfd f3, lbl_805AF278@sda21(r2) +/* 8039EE64 0039BDC4 90 E1 00 10 */ stw r7, 0x10(r1) +/* 8039EE68 0039BDC8 88 AB 00 00 */ lbz r5, 0(r11) +/* 8039EE6C 0039BDCC C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039EE70 0039BDD0 90 61 00 1C */ stw r3, 0x1c(r1) +/* 8039EE74 0039BDD4 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 8039EE78 0039BDD8 88 6A 00 00 */ lbz r3, 0(r10) +/* 8039EE7C 0039BDDC EC 20 18 28 */ fsubs f1, f0, f3 +/* 8039EE80 0039BDE0 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8039EE84 0039BDE4 C0 82 D5 50 */ lfs f4, lbl_805AF270@sda21(r2) +/* 8039EE88 0039BDE8 54 66 80 1E */ slwi r6, r3, 0x10 +/* 8039EE8C 0039BDEC C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039EE90 0039BDF0 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039EE94 0039BDF4 EC 24 00 72 */ fmuls f1, f4, f1 +/* 8039EE98 0039BDF8 EC 40 18 28 */ fsubs f2, f0, f3 +/* 8039EE9C 0039BDFC 80 68 00 4C */ lwz r3, 0x4c(r8) +/* 8039EEA0 0039BE00 90 E1 00 20 */ stw r7, 0x20(r1) +/* 8039EEA4 0039BE04 C8 01 00 20 */ lfd f0, 0x20(r1) +/* 8039EEA8 0039BE08 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039EEAC 0039BE0C EC 00 18 28 */ fsubs f0, f0, f3 +/* 8039EEB0 0039BE10 EC 64 00 32 */ fmuls f3, f4, f0 +/* 8039EEB4 0039BE14 48 01 48 D5 */ bl hwSetVolume +lbl_8039EEB8: +/* 8039EEB8 0039BE18 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039EEBC 0039BE1C 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039EEC0 0039BE20 7F E3 F8 2E */ lwzx r31, r3, r31 +/* 8039EEC4 0039BE24 3C 1F 00 01 */ addis r0, r31, 1 +/* 8039EEC8 0039BE28 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039EECC 0039BE2C 41 82 02 A4 */ beq lbl_8039F170 +/* 8039EED0 0039BE30 48 01 61 ED */ bl hwDisableIrq +/* 8039EED4 0039BE34 38 00 00 08 */ li r0, 8 +/* 8039EED8 0039BE38 38 60 00 00 */ li r3, 0 +/* 8039EEDC 0039BE3C 7C 09 03 A6 */ mtctr r0 +lbl_8039EEE0: +/* 8039EEE0 0039BE40 88 1E 00 0C */ lbz r0, 0xc(r30) +/* 8039EEE4 0039BE44 28 00 00 00 */ cmplwi r0, 0 +/* 8039EEE8 0039BE48 41 82 00 14 */ beq lbl_8039EEFC +/* 8039EEEC 0039BE4C 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EEF0 0039BE50 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EEF4 0039BE54 40 82 00 08 */ bne lbl_8039EEFC +/* 8039EEF8 0039BE58 48 00 01 10 */ b lbl_8039F008 +lbl_8039EEFC: +/* 8039EEFC 0039BE5C 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EF00 0039BE60 38 63 00 01 */ addi r3, r3, 1 +/* 8039EF04 0039BE64 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EF08 0039BE68 28 00 00 00 */ cmplwi r0, 0 +/* 8039EF0C 0039BE6C 41 82 00 14 */ beq lbl_8039EF20 +/* 8039EF10 0039BE70 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EF14 0039BE74 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EF18 0039BE78 40 82 00 08 */ bne lbl_8039EF20 +/* 8039EF1C 0039BE7C 48 00 00 EC */ b lbl_8039F008 +lbl_8039EF20: +/* 8039EF20 0039BE80 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EF24 0039BE84 38 63 00 01 */ addi r3, r3, 1 +/* 8039EF28 0039BE88 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EF2C 0039BE8C 28 00 00 00 */ cmplwi r0, 0 +/* 8039EF30 0039BE90 41 82 00 14 */ beq lbl_8039EF44 +/* 8039EF34 0039BE94 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EF38 0039BE98 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EF3C 0039BE9C 40 82 00 08 */ bne lbl_8039EF44 +/* 8039EF40 0039BEA0 48 00 00 C8 */ b lbl_8039F008 +lbl_8039EF44: +/* 8039EF44 0039BEA4 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EF48 0039BEA8 38 63 00 01 */ addi r3, r3, 1 +/* 8039EF4C 0039BEAC 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EF50 0039BEB0 28 00 00 00 */ cmplwi r0, 0 +/* 8039EF54 0039BEB4 41 82 00 14 */ beq lbl_8039EF68 +/* 8039EF58 0039BEB8 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EF5C 0039BEBC 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EF60 0039BEC0 40 82 00 08 */ bne lbl_8039EF68 +/* 8039EF64 0039BEC4 48 00 00 A4 */ b lbl_8039F008 +lbl_8039EF68: +/* 8039EF68 0039BEC8 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EF6C 0039BECC 38 63 00 01 */ addi r3, r3, 1 +/* 8039EF70 0039BED0 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EF74 0039BED4 28 00 00 00 */ cmplwi r0, 0 +/* 8039EF78 0039BED8 41 82 00 14 */ beq lbl_8039EF8C +/* 8039EF7C 0039BEDC 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EF80 0039BEE0 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EF84 0039BEE4 40 82 00 08 */ bne lbl_8039EF8C +/* 8039EF88 0039BEE8 48 00 00 80 */ b lbl_8039F008 +lbl_8039EF8C: +/* 8039EF8C 0039BEEC 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EF90 0039BEF0 38 63 00 01 */ addi r3, r3, 1 +/* 8039EF94 0039BEF4 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EF98 0039BEF8 28 00 00 00 */ cmplwi r0, 0 +/* 8039EF9C 0039BEFC 41 82 00 14 */ beq lbl_8039EFB0 +/* 8039EFA0 0039BF00 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EFA4 0039BF04 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EFA8 0039BF08 40 82 00 08 */ bne lbl_8039EFB0 +/* 8039EFAC 0039BF0C 48 00 00 5C */ b lbl_8039F008 +lbl_8039EFB0: +/* 8039EFB0 0039BF10 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EFB4 0039BF14 38 63 00 01 */ addi r3, r3, 1 +/* 8039EFB8 0039BF18 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EFBC 0039BF1C 28 00 00 00 */ cmplwi r0, 0 +/* 8039EFC0 0039BF20 41 82 00 14 */ beq lbl_8039EFD4 +/* 8039EFC4 0039BF24 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EFC8 0039BF28 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EFCC 0039BF2C 40 82 00 08 */ bne lbl_8039EFD4 +/* 8039EFD0 0039BF30 48 00 00 38 */ b lbl_8039F008 +lbl_8039EFD4: +/* 8039EFD4 0039BF34 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039EFD8 0039BF38 38 63 00 01 */ addi r3, r3, 1 +/* 8039EFDC 0039BF3C 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EFE0 0039BF40 28 00 00 00 */ cmplwi r0, 0 +/* 8039EFE4 0039BF44 41 82 00 14 */ beq lbl_8039EFF8 +/* 8039EFE8 0039BF48 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039EFEC 0039BF4C 7C 1F 00 40 */ cmplw r31, r0 +/* 8039EFF0 0039BF50 40 82 00 08 */ bne lbl_8039EFF8 +/* 8039EFF4 0039BF54 48 00 00 14 */ b lbl_8039F008 +lbl_8039EFF8: +/* 8039EFF8 0039BF58 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039EFFC 0039BF5C 38 63 00 01 */ addi r3, r3, 1 +/* 8039F000 0039BF60 42 00 FE E0 */ bdnz lbl_8039EEE0 +/* 8039F004 0039BF64 38 60 FF FF */ li r3, -1 +lbl_8039F008: +/* 8039F008 0039BF68 3C 03 00 01 */ addis r0, r3, 1 +/* 8039F00C 0039BF6C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F010 0039BF70 41 82 01 5C */ beq lbl_8039F16C +/* 8039F014 0039BF74 1F C3 00 64 */ mulli r30, r3, 0x64 +/* 8039F018 0039BF78 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F01C 0039BF7C 9B 41 00 08 */ stb r26, 8(r1) +/* 8039F020 0039BF80 38 81 00 08 */ addi r4, r1, 8 +/* 8039F024 0039BF84 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039F028 0039BF88 7F E0 F2 14 */ add r31, r0, r30 +/* 8039F02C 0039BF8C 9B 3F 00 5E */ stb r25, 0x5e(r31) +/* 8039F030 0039BF90 38 61 00 09 */ addi r3, r1, 9 +/* 8039F034 0039BF94 9B 21 00 09 */ stb r25, 9(r1) +/* 8039F038 0039BF98 9B 5F 00 5F */ stb r26, 0x5f(r31) +/* 8039F03C 0039BF9C 4B FF E6 E9 */ bl CheckOutputMode +/* 8039F040 0039BFA0 9B 1F 00 59 */ stb r24, 0x59(r31) +/* 8039F044 0039BFA4 88 61 00 09 */ lbz r3, 9(r1) +/* 8039F048 0039BFA8 88 01 00 08 */ lbz r0, 8(r1) +/* 8039F04C 0039BFAC 98 7F 00 5A */ stb r3, 0x5a(r31) +/* 8039F050 0039BFB0 98 1F 00 5B */ stb r0, 0x5b(r31) +/* 8039F054 0039BFB4 9B 7F 00 5C */ stb r27, 0x5c(r31) +/* 8039F058 0039BFB8 9B 9F 00 5D */ stb r28, 0x5d(r31) +/* 8039F05C 0039BFBC 7C 1D F0 AE */ lbzx r0, r29, r30 +/* 8039F060 0039BFC0 28 00 00 02 */ cmplwi r0, 2 +/* 8039F064 0039BFC4 40 82 00 74 */ bne lbl_8039F0D8 +/* 8039F068 0039BFC8 88 BF 00 59 */ lbz r5, 0x59(r31) +/* 8039F06C 0039BFCC 3C E0 43 30 */ lis r7, 0x4330 +/* 8039F070 0039BFD0 88 7F 00 5C */ lbz r3, 0x5c(r31) +/* 8039F074 0039BFD4 38 80 00 00 */ li r4, 0 +/* 8039F078 0039BFD8 88 1F 00 5D */ lbz r0, 0x5d(r31) +/* 8039F07C 0039BFDC 90 A1 00 24 */ stw r5, 0x24(r1) +/* 8039F080 0039BFE0 C8 62 D5 58 */ lfd f3, lbl_805AF278@sda21(r2) +/* 8039F084 0039BFE4 90 E1 00 20 */ stw r7, 0x20(r1) +/* 8039F088 0039BFE8 88 BF 00 5A */ lbz r5, 0x5a(r31) +/* 8039F08C 0039BFEC C8 01 00 20 */ lfd f0, 0x20(r1) +/* 8039F090 0039BFF0 90 61 00 1C */ stw r3, 0x1c(r1) +/* 8039F094 0039BFF4 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 8039F098 0039BFF8 88 7F 00 5B */ lbz r3, 0x5b(r31) +/* 8039F09C 0039BFFC EC 20 18 28 */ fsubs f1, f0, f3 +/* 8039F0A0 0039C000 90 E1 00 18 */ stw r7, 0x18(r1) +/* 8039F0A4 0039C004 C0 82 D5 50 */ lfs f4, lbl_805AF270@sda21(r2) +/* 8039F0A8 0039C008 54 66 80 1E */ slwi r6, r3, 0x10 +/* 8039F0AC 0039C00C C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039F0B0 0039C010 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039F0B4 0039C014 EC 24 00 72 */ fmuls f1, f4, f1 +/* 8039F0B8 0039C018 EC 40 18 28 */ fsubs f2, f0, f3 +/* 8039F0BC 0039C01C 80 7F 00 4C */ lwz r3, 0x4c(r31) +/* 8039F0C0 0039C020 90 E1 00 10 */ stw r7, 0x10(r1) +/* 8039F0C4 0039C024 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039F0C8 0039C028 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039F0CC 0039C02C EC 00 18 28 */ fsubs f0, f0, f3 +/* 8039F0D0 0039C030 EC 64 00 32 */ fmuls f3, f4, f0 +/* 8039F0D4 0039C034 48 01 46 B5 */ bl hwSetVolume +lbl_8039F0D8: +/* 8039F0D8 0039C038 83 DF 00 00 */ lwz r30, 0(r31) +/* 8039F0DC 0039C03C 3C 1E 00 01 */ addis r0, r30, 1 +/* 8039F0E0 0039C040 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F0E4 0039C044 41 82 00 88 */ beq lbl_8039F16C +/* 8039F0E8 0039C048 48 01 5F D5 */ bl hwDisableIrq +/* 8039F0EC 0039C04C 7F C3 F3 78 */ mr r3, r30 +/* 8039F0F0 0039C050 4B FF E1 F1 */ bl GetPrivateIndex +/* 8039F0F4 0039C054 3C 03 00 01 */ addis r0, r3, 1 +/* 8039F0F8 0039C058 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F0FC 0039C05C 41 82 00 6C */ beq lbl_8039F168 +/* 8039F100 0039C060 1F C3 00 64 */ mulli r30, r3, 0x64 +/* 8039F104 0039C064 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F108 0039C068 7F 04 C3 78 */ mr r4, r24 +/* 8039F10C 0039C06C 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039F110 0039C070 7F E0 F2 14 */ add r31, r0, r30 +/* 8039F114 0039C074 7F 25 CB 78 */ mr r5, r25 +/* 8039F118 0039C078 7F E3 FB 78 */ mr r3, r31 +/* 8039F11C 0039C07C 7F 46 D3 78 */ mr r6, r26 +/* 8039F120 0039C080 7F 67 DB 78 */ mr r7, r27 +/* 8039F124 0039C084 7F 88 E3 78 */ mr r8, r28 +/* 8039F128 0039C088 4B FF E6 31 */ bl SetupVolumeAndPan +/* 8039F12C 0039C08C 7C 1D F0 AE */ lbzx r0, r29, r30 +/* 8039F130 0039C090 28 00 00 02 */ cmplwi r0, 2 +/* 8039F134 0039C094 40 82 00 0C */ bne lbl_8039F140 +/* 8039F138 0039C098 7F E3 FB 78 */ mr r3, r31 +/* 8039F13C 0039C09C 4B FF D7 E5 */ bl SetHWMix +lbl_8039F140: +/* 8039F140 0039C0A0 80 7F 00 00 */ lwz r3, 0(r31) +/* 8039F144 0039C0A4 3C 03 00 01 */ addis r0, r3, 1 +/* 8039F148 0039C0A8 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F14C 0039C0AC 41 82 00 1C */ beq lbl_8039F168 +/* 8039F150 0039C0B0 7F 04 C3 78 */ mr r4, r24 +/* 8039F154 0039C0B4 7F 25 CB 78 */ mr r5, r25 +/* 8039F158 0039C0B8 7F 46 D3 78 */ mr r6, r26 +/* 8039F15C 0039C0BC 7F 67 DB 78 */ mr r7, r27 +/* 8039F160 0039C0C0 7F 88 E3 78 */ mr r8, r28 +/* 8039F164 0039C0C4 4B FF FA CD */ bl sndStreamMixParameterEx +lbl_8039F168: +/* 8039F168 0039C0C8 48 01 5F 1D */ bl hwEnableIrq +lbl_8039F16C: +/* 8039F16C 0039C0CC 48 01 5F 19 */ bl hwEnableIrq +lbl_8039F170: +/* 8039F170 0039C0D0 48 01 5F 15 */ bl hwEnableIrq +/* 8039F174 0039C0D4 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039F178 0039C0D8 4B FE A9 45 */ bl _restgpr_24 +/* 8039F17C 0039C0DC 80 01 00 54 */ lwz r0, 0x54(r1) +/* 8039F180 0039C0E0 7C 08 03 A6 */ mtlr r0 +/* 8039F184 0039C0E4 38 21 00 50 */ addi r1, r1, 0x50 +/* 8039F188 0039C0E8 4E 80 00 20 */ blr + +.global sndStreamFrq +sndStreamFrq: +/* 8039F18C 0039C0EC 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 8039F190 0039C0F0 7C 08 02 A6 */ mflr r0 +/* 8039F194 0039C0F4 90 01 00 44 */ stw r0, 0x44(r1) +/* 8039F198 0039C0F8 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039F19C 0039C0FC 4B FE A8 E1 */ bl sub_80389a7c +/* 8039F1A0 0039C100 7C 7B 1B 78 */ mr r27, r3 +/* 8039F1A4 0039C104 7C 9C 23 78 */ mr r28, r4 +/* 8039F1A8 0039C108 48 01 5F 15 */ bl hwDisableIrq +/* 8039F1AC 0039C10C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F1B0 0039C110 38 00 00 08 */ li r0, 8 +/* 8039F1B4 0039C114 3B E3 13 F8 */ addi r31, r3, lbl_805513F8@l +/* 8039F1B8 0039C118 38 80 00 00 */ li r4, 0 +/* 8039F1BC 0039C11C 7F E3 FB 78 */ mr r3, r31 +/* 8039F1C0 0039C120 7C 09 03 A6 */ mtctr r0 +lbl_8039F1C4: +/* 8039F1C4 0039C124 88 03 00 0C */ lbz r0, 0xc(r3) +/* 8039F1C8 0039C128 28 00 00 00 */ cmplwi r0, 0 +/* 8039F1CC 0039C12C 41 82 00 14 */ beq lbl_8039F1E0 +/* 8039F1D0 0039C130 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F1D4 0039C134 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F1D8 0039C138 40 82 00 08 */ bne lbl_8039F1E0 +/* 8039F1DC 0039C13C 48 00 01 10 */ b lbl_8039F2EC +lbl_8039F1E0: +/* 8039F1E0 0039C140 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F1E4 0039C144 38 84 00 01 */ addi r4, r4, 1 +/* 8039F1E8 0039C148 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F1EC 0039C14C 28 00 00 00 */ cmplwi r0, 0 +/* 8039F1F0 0039C150 41 82 00 14 */ beq lbl_8039F204 +/* 8039F1F4 0039C154 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F1F8 0039C158 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F1FC 0039C15C 40 82 00 08 */ bne lbl_8039F204 +/* 8039F200 0039C160 48 00 00 EC */ b lbl_8039F2EC +lbl_8039F204: +/* 8039F204 0039C164 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F208 0039C168 38 84 00 01 */ addi r4, r4, 1 +/* 8039F20C 0039C16C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F210 0039C170 28 00 00 00 */ cmplwi r0, 0 +/* 8039F214 0039C174 41 82 00 14 */ beq lbl_8039F228 +/* 8039F218 0039C178 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F21C 0039C17C 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F220 0039C180 40 82 00 08 */ bne lbl_8039F228 +/* 8039F224 0039C184 48 00 00 C8 */ b lbl_8039F2EC +lbl_8039F228: +/* 8039F228 0039C188 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F22C 0039C18C 38 84 00 01 */ addi r4, r4, 1 +/* 8039F230 0039C190 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F234 0039C194 28 00 00 00 */ cmplwi r0, 0 +/* 8039F238 0039C198 41 82 00 14 */ beq lbl_8039F24C +/* 8039F23C 0039C19C 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F240 0039C1A0 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F244 0039C1A4 40 82 00 08 */ bne lbl_8039F24C +/* 8039F248 0039C1A8 48 00 00 A4 */ b lbl_8039F2EC +lbl_8039F24C: +/* 8039F24C 0039C1AC 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F250 0039C1B0 38 84 00 01 */ addi r4, r4, 1 +/* 8039F254 0039C1B4 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F258 0039C1B8 28 00 00 00 */ cmplwi r0, 0 +/* 8039F25C 0039C1BC 41 82 00 14 */ beq lbl_8039F270 +/* 8039F260 0039C1C0 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F264 0039C1C4 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F268 0039C1C8 40 82 00 08 */ bne lbl_8039F270 +/* 8039F26C 0039C1CC 48 00 00 80 */ b lbl_8039F2EC +lbl_8039F270: +/* 8039F270 0039C1D0 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F274 0039C1D4 38 84 00 01 */ addi r4, r4, 1 +/* 8039F278 0039C1D8 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F27C 0039C1DC 28 00 00 00 */ cmplwi r0, 0 +/* 8039F280 0039C1E0 41 82 00 14 */ beq lbl_8039F294 +/* 8039F284 0039C1E4 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F288 0039C1E8 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F28C 0039C1EC 40 82 00 08 */ bne lbl_8039F294 +/* 8039F290 0039C1F0 48 00 00 5C */ b lbl_8039F2EC +lbl_8039F294: +/* 8039F294 0039C1F4 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F298 0039C1F8 38 84 00 01 */ addi r4, r4, 1 +/* 8039F29C 0039C1FC 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F2A0 0039C200 28 00 00 00 */ cmplwi r0, 0 +/* 8039F2A4 0039C204 41 82 00 14 */ beq lbl_8039F2B8 +/* 8039F2A8 0039C208 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F2AC 0039C20C 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F2B0 0039C210 40 82 00 08 */ bne lbl_8039F2B8 +/* 8039F2B4 0039C214 48 00 00 38 */ b lbl_8039F2EC +lbl_8039F2B8: +/* 8039F2B8 0039C218 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F2BC 0039C21C 38 84 00 01 */ addi r4, r4, 1 +/* 8039F2C0 0039C220 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F2C4 0039C224 28 00 00 00 */ cmplwi r0, 0 +/* 8039F2C8 0039C228 41 82 00 14 */ beq lbl_8039F2DC +/* 8039F2CC 0039C22C 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F2D0 0039C230 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F2D4 0039C234 40 82 00 08 */ bne lbl_8039F2DC +/* 8039F2D8 0039C238 48 00 00 14 */ b lbl_8039F2EC +lbl_8039F2DC: +/* 8039F2DC 0039C23C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F2E0 0039C240 38 84 00 01 */ addi r4, r4, 1 +/* 8039F2E4 0039C244 42 00 FE E0 */ bdnz lbl_8039F1C4 +/* 8039F2E8 0039C248 38 80 FF FF */ li r4, -1 +lbl_8039F2EC: +/* 8039F2EC 0039C24C 3C 04 00 01 */ addis r0, r4, 1 +/* 8039F2F0 0039C250 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F2F4 0039C254 41 82 04 E4 */ beq lbl_8039F7D8 +/* 8039F2F8 0039C258 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F2FC 0039C25C 38 A3 13 F8 */ addi r5, r3, lbl_805513F8@l +/* 8039F300 0039C260 1F 64 00 64 */ mulli r27, r4, 0x64 +/* 8039F304 0039C264 3B C5 00 54 */ addi r30, r5, 0x54 +/* 8039F308 0039C268 3B A5 00 0C */ addi r29, r5, 0xc +/* 8039F30C 0039C26C 7F 9E D9 2E */ stwx r28, r30, r27 +/* 8039F310 0039C270 7C 1D D8 AE */ lbzx r0, r29, r27 +/* 8039F314 0039C274 28 00 00 02 */ cmplwi r0, 2 +/* 8039F318 0039C278 40 82 00 58 */ bne lbl_8039F370 +/* 8039F31C 0039C27C 3C 80 43 30 */ lis r4, 0x4330 +/* 8039F320 0039C280 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039F324 0039C284 93 81 00 0C */ stw r28, 0xc(r1) +/* 8039F328 0039C288 80 03 00 50 */ lwz r0, lbl_80550050@l(r3) +/* 8039F32C 0039C28C 7C 65 DA 14 */ add r3, r5, r27 +/* 8039F330 0039C290 90 81 00 08 */ stw r4, 8(r1) +/* 8039F334 0039C294 C8 42 D5 58 */ lfd f2, lbl_805AF278@sda21(r2) +/* 8039F338 0039C298 C8 01 00 08 */ lfd f0, 8(r1) +/* 8039F33C 0039C29C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039F340 0039C2A0 EC 20 10 28 */ fsubs f1, f0, f2 +/* 8039F344 0039C2A4 C0 62 D5 60 */ lfs f3, lbl_805AF280@sda21(r2) +/* 8039F348 0039C2A8 90 81 00 10 */ stw r4, 0x10(r1) +/* 8039F34C 0039C2AC 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 8039F350 0039C2B0 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039F354 0039C2B4 EC 23 00 72 */ fmuls f1, f3, f1 +/* 8039F358 0039C2B8 EC 00 10 28 */ fsubs f0, f0, f2 +/* 8039F35C 0039C2BC EC 01 00 24 */ fdivs f0, f1, f0 +/* 8039F360 0039C2C0 FC 00 00 1E */ fctiwz f0, f0 +/* 8039F364 0039C2C4 D8 01 00 18 */ stfd f0, 0x18(r1) +/* 8039F368 0039C2C8 80 81 00 1C */ lwz r4, 0x1c(r1) +/* 8039F36C 0039C2CC 48 01 42 F1 */ bl hwSetPitch +lbl_8039F370: +/* 8039F370 0039C2D0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F374 0039C2D4 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F378 0039C2D8 7F 63 D8 2E */ lwzx r27, r3, r27 +/* 8039F37C 0039C2DC 3C 1B 00 01 */ addis r0, r27, 1 +/* 8039F380 0039C2E0 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F384 0039C2E4 41 82 04 54 */ beq lbl_8039F7D8 +/* 8039F388 0039C2E8 48 01 5D 35 */ bl hwDisableIrq +/* 8039F38C 0039C2EC 38 00 00 08 */ li r0, 8 +/* 8039F390 0039C2F0 7F E4 FB 78 */ mr r4, r31 +/* 8039F394 0039C2F4 38 60 00 00 */ li r3, 0 +/* 8039F398 0039C2F8 7C 09 03 A6 */ mtctr r0 +lbl_8039F39C: +/* 8039F39C 0039C2FC 88 04 00 0C */ lbz r0, 0xc(r4) +/* 8039F3A0 0039C300 28 00 00 00 */ cmplwi r0, 0 +/* 8039F3A4 0039C304 41 82 00 14 */ beq lbl_8039F3B8 +/* 8039F3A8 0039C308 80 04 00 04 */ lwz r0, 4(r4) +/* 8039F3AC 0039C30C 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F3B0 0039C310 40 82 00 08 */ bne lbl_8039F3B8 +/* 8039F3B4 0039C314 48 00 01 10 */ b lbl_8039F4C4 +lbl_8039F3B8: +/* 8039F3B8 0039C318 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039F3BC 0039C31C 38 63 00 01 */ addi r3, r3, 1 +/* 8039F3C0 0039C320 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039F3C4 0039C324 28 00 00 00 */ cmplwi r0, 0 +/* 8039F3C8 0039C328 41 82 00 14 */ beq lbl_8039F3DC +/* 8039F3CC 0039C32C 80 04 00 04 */ lwz r0, 4(r4) +/* 8039F3D0 0039C330 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F3D4 0039C334 40 82 00 08 */ bne lbl_8039F3DC +/* 8039F3D8 0039C338 48 00 00 EC */ b lbl_8039F4C4 +lbl_8039F3DC: +/* 8039F3DC 0039C33C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039F3E0 0039C340 38 63 00 01 */ addi r3, r3, 1 +/* 8039F3E4 0039C344 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039F3E8 0039C348 28 00 00 00 */ cmplwi r0, 0 +/* 8039F3EC 0039C34C 41 82 00 14 */ beq lbl_8039F400 +/* 8039F3F0 0039C350 80 04 00 04 */ lwz r0, 4(r4) +/* 8039F3F4 0039C354 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F3F8 0039C358 40 82 00 08 */ bne lbl_8039F400 +/* 8039F3FC 0039C35C 48 00 00 C8 */ b lbl_8039F4C4 +lbl_8039F400: +/* 8039F400 0039C360 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039F404 0039C364 38 63 00 01 */ addi r3, r3, 1 +/* 8039F408 0039C368 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039F40C 0039C36C 28 00 00 00 */ cmplwi r0, 0 +/* 8039F410 0039C370 41 82 00 14 */ beq lbl_8039F424 +/* 8039F414 0039C374 80 04 00 04 */ lwz r0, 4(r4) +/* 8039F418 0039C378 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F41C 0039C37C 40 82 00 08 */ bne lbl_8039F424 +/* 8039F420 0039C380 48 00 00 A4 */ b lbl_8039F4C4 +lbl_8039F424: +/* 8039F424 0039C384 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039F428 0039C388 38 63 00 01 */ addi r3, r3, 1 +/* 8039F42C 0039C38C 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039F430 0039C390 28 00 00 00 */ cmplwi r0, 0 +/* 8039F434 0039C394 41 82 00 14 */ beq lbl_8039F448 +/* 8039F438 0039C398 80 04 00 04 */ lwz r0, 4(r4) +/* 8039F43C 0039C39C 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F440 0039C3A0 40 82 00 08 */ bne lbl_8039F448 +/* 8039F444 0039C3A4 48 00 00 80 */ b lbl_8039F4C4 +lbl_8039F448: +/* 8039F448 0039C3A8 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039F44C 0039C3AC 38 63 00 01 */ addi r3, r3, 1 +/* 8039F450 0039C3B0 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039F454 0039C3B4 28 00 00 00 */ cmplwi r0, 0 +/* 8039F458 0039C3B8 41 82 00 14 */ beq lbl_8039F46C +/* 8039F45C 0039C3BC 80 04 00 04 */ lwz r0, 4(r4) +/* 8039F460 0039C3C0 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F464 0039C3C4 40 82 00 08 */ bne lbl_8039F46C +/* 8039F468 0039C3C8 48 00 00 5C */ b lbl_8039F4C4 +lbl_8039F46C: +/* 8039F46C 0039C3CC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039F470 0039C3D0 38 63 00 01 */ addi r3, r3, 1 +/* 8039F474 0039C3D4 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039F478 0039C3D8 28 00 00 00 */ cmplwi r0, 0 +/* 8039F47C 0039C3DC 41 82 00 14 */ beq lbl_8039F490 +/* 8039F480 0039C3E0 80 04 00 04 */ lwz r0, 4(r4) +/* 8039F484 0039C3E4 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F488 0039C3E8 40 82 00 08 */ bne lbl_8039F490 +/* 8039F48C 0039C3EC 48 00 00 38 */ b lbl_8039F4C4 +lbl_8039F490: +/* 8039F490 0039C3F0 88 04 00 70 */ lbz r0, 0x70(r4) +/* 8039F494 0039C3F4 38 63 00 01 */ addi r3, r3, 1 +/* 8039F498 0039C3F8 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039F49C 0039C3FC 28 00 00 00 */ cmplwi r0, 0 +/* 8039F4A0 0039C400 41 82 00 14 */ beq lbl_8039F4B4 +/* 8039F4A4 0039C404 80 04 00 04 */ lwz r0, 4(r4) +/* 8039F4A8 0039C408 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F4AC 0039C40C 40 82 00 08 */ bne lbl_8039F4B4 +/* 8039F4B0 0039C410 48 00 00 14 */ b lbl_8039F4C4 +lbl_8039F4B4: +/* 8039F4B4 0039C414 38 84 00 64 */ addi r4, r4, 0x64 +/* 8039F4B8 0039C418 38 63 00 01 */ addi r3, r3, 1 +/* 8039F4BC 0039C41C 42 00 FE E0 */ bdnz lbl_8039F39C +/* 8039F4C0 0039C420 38 60 FF FF */ li r3, -1 +lbl_8039F4C4: +/* 8039F4C4 0039C424 3C 03 00 01 */ addis r0, r3, 1 +/* 8039F4C8 0039C428 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F4CC 0039C42C 41 82 03 08 */ beq lbl_8039F7D4 +/* 8039F4D0 0039C430 1F 63 00 64 */ mulli r27, r3, 0x64 +/* 8039F4D4 0039C434 7F 9E D9 2E */ stwx r28, r30, r27 +/* 8039F4D8 0039C438 7C 1D D8 AE */ lbzx r0, r29, r27 +/* 8039F4DC 0039C43C 28 00 00 02 */ cmplwi r0, 2 +/* 8039F4E0 0039C440 40 82 00 60 */ bne lbl_8039F540 +/* 8039F4E4 0039C444 3C 80 43 30 */ lis r4, 0x4330 +/* 8039F4E8 0039C448 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039F4EC 0039C44C 93 81 00 1C */ stw r28, 0x1c(r1) +/* 8039F4F0 0039C450 80 03 00 50 */ lwz r0, lbl_80550050@l(r3) +/* 8039F4F4 0039C454 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F4F8 0039C458 90 81 00 18 */ stw r4, 0x18(r1) +/* 8039F4FC 0039C45C 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F500 0039C460 C8 42 D5 58 */ lfd f2, lbl_805AF278@sda21(r2) +/* 8039F504 0039C464 7C 63 DA 14 */ add r3, r3, r27 +/* 8039F508 0039C468 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039F50C 0039C46C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039F510 0039C470 EC 20 10 28 */ fsubs f1, f0, f2 +/* 8039F514 0039C474 C0 62 D5 60 */ lfs f3, lbl_805AF280@sda21(r2) +/* 8039F518 0039C478 90 81 00 10 */ stw r4, 0x10(r1) +/* 8039F51C 0039C47C 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 8039F520 0039C480 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039F524 0039C484 EC 23 00 72 */ fmuls f1, f3, f1 +/* 8039F528 0039C488 EC 00 10 28 */ fsubs f0, f0, f2 +/* 8039F52C 0039C48C EC 01 00 24 */ fdivs f0, f1, f0 +/* 8039F530 0039C490 FC 00 00 1E */ fctiwz f0, f0 +/* 8039F534 0039C494 D8 01 00 08 */ stfd f0, 8(r1) +/* 8039F538 0039C498 80 81 00 0C */ lwz r4, 0xc(r1) +/* 8039F53C 0039C49C 48 01 41 21 */ bl hwSetPitch +lbl_8039F540: +/* 8039F540 0039C4A0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F544 0039C4A4 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F548 0039C4A8 7F 63 D8 2E */ lwzx r27, r3, r27 +/* 8039F54C 0039C4AC 3C 1B 00 01 */ addis r0, r27, 1 +/* 8039F550 0039C4B0 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F554 0039C4B4 41 82 02 80 */ beq lbl_8039F7D4 +/* 8039F558 0039C4B8 48 01 5B 65 */ bl hwDisableIrq +/* 8039F55C 0039C4BC 38 00 00 08 */ li r0, 8 +/* 8039F560 0039C4C0 38 60 00 00 */ li r3, 0 +/* 8039F564 0039C4C4 7C 09 03 A6 */ mtctr r0 +lbl_8039F568: +/* 8039F568 0039C4C8 88 1F 00 0C */ lbz r0, 0xc(r31) +/* 8039F56C 0039C4CC 28 00 00 00 */ cmplwi r0, 0 +/* 8039F570 0039C4D0 41 82 00 14 */ beq lbl_8039F584 +/* 8039F574 0039C4D4 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039F578 0039C4D8 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F57C 0039C4DC 40 82 00 08 */ bne lbl_8039F584 +/* 8039F580 0039C4E0 48 00 01 10 */ b lbl_8039F690 +lbl_8039F584: +/* 8039F584 0039C4E4 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039F588 0039C4E8 38 63 00 01 */ addi r3, r3, 1 +/* 8039F58C 0039C4EC 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039F590 0039C4F0 28 00 00 00 */ cmplwi r0, 0 +/* 8039F594 0039C4F4 41 82 00 14 */ beq lbl_8039F5A8 +/* 8039F598 0039C4F8 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039F59C 0039C4FC 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F5A0 0039C500 40 82 00 08 */ bne lbl_8039F5A8 +/* 8039F5A4 0039C504 48 00 00 EC */ b lbl_8039F690 +lbl_8039F5A8: +/* 8039F5A8 0039C508 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039F5AC 0039C50C 38 63 00 01 */ addi r3, r3, 1 +/* 8039F5B0 0039C510 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039F5B4 0039C514 28 00 00 00 */ cmplwi r0, 0 +/* 8039F5B8 0039C518 41 82 00 14 */ beq lbl_8039F5CC +/* 8039F5BC 0039C51C 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039F5C0 0039C520 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F5C4 0039C524 40 82 00 08 */ bne lbl_8039F5CC +/* 8039F5C8 0039C528 48 00 00 C8 */ b lbl_8039F690 +lbl_8039F5CC: +/* 8039F5CC 0039C52C 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039F5D0 0039C530 38 63 00 01 */ addi r3, r3, 1 +/* 8039F5D4 0039C534 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039F5D8 0039C538 28 00 00 00 */ cmplwi r0, 0 +/* 8039F5DC 0039C53C 41 82 00 14 */ beq lbl_8039F5F0 +/* 8039F5E0 0039C540 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039F5E4 0039C544 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F5E8 0039C548 40 82 00 08 */ bne lbl_8039F5F0 +/* 8039F5EC 0039C54C 48 00 00 A4 */ b lbl_8039F690 +lbl_8039F5F0: +/* 8039F5F0 0039C550 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039F5F4 0039C554 38 63 00 01 */ addi r3, r3, 1 +/* 8039F5F8 0039C558 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039F5FC 0039C55C 28 00 00 00 */ cmplwi r0, 0 +/* 8039F600 0039C560 41 82 00 14 */ beq lbl_8039F614 +/* 8039F604 0039C564 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039F608 0039C568 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F60C 0039C56C 40 82 00 08 */ bne lbl_8039F614 +/* 8039F610 0039C570 48 00 00 80 */ b lbl_8039F690 +lbl_8039F614: +/* 8039F614 0039C574 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039F618 0039C578 38 63 00 01 */ addi r3, r3, 1 +/* 8039F61C 0039C57C 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039F620 0039C580 28 00 00 00 */ cmplwi r0, 0 +/* 8039F624 0039C584 41 82 00 14 */ beq lbl_8039F638 +/* 8039F628 0039C588 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039F62C 0039C58C 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F630 0039C590 40 82 00 08 */ bne lbl_8039F638 +/* 8039F634 0039C594 48 00 00 5C */ b lbl_8039F690 +lbl_8039F638: +/* 8039F638 0039C598 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039F63C 0039C59C 38 63 00 01 */ addi r3, r3, 1 +/* 8039F640 0039C5A0 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039F644 0039C5A4 28 00 00 00 */ cmplwi r0, 0 +/* 8039F648 0039C5A8 41 82 00 14 */ beq lbl_8039F65C +/* 8039F64C 0039C5AC 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039F650 0039C5B0 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F654 0039C5B4 40 82 00 08 */ bne lbl_8039F65C +/* 8039F658 0039C5B8 48 00 00 38 */ b lbl_8039F690 +lbl_8039F65C: +/* 8039F65C 0039C5BC 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 8039F660 0039C5C0 38 63 00 01 */ addi r3, r3, 1 +/* 8039F664 0039C5C4 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039F668 0039C5C8 28 00 00 00 */ cmplwi r0, 0 +/* 8039F66C 0039C5CC 41 82 00 14 */ beq lbl_8039F680 +/* 8039F670 0039C5D0 80 1F 00 04 */ lwz r0, 4(r31) +/* 8039F674 0039C5D4 7C 1B 00 40 */ cmplw r27, r0 +/* 8039F678 0039C5D8 40 82 00 08 */ bne lbl_8039F680 +/* 8039F67C 0039C5DC 48 00 00 14 */ b lbl_8039F690 +lbl_8039F680: +/* 8039F680 0039C5E0 3B FF 00 64 */ addi r31, r31, 0x64 +/* 8039F684 0039C5E4 38 63 00 01 */ addi r3, r3, 1 +/* 8039F688 0039C5E8 42 00 FE E0 */ bdnz lbl_8039F568 +/* 8039F68C 0039C5EC 38 60 FF FF */ li r3, -1 +lbl_8039F690: +/* 8039F690 0039C5F0 3C 03 00 01 */ addis r0, r3, 1 +/* 8039F694 0039C5F4 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F698 0039C5F8 41 82 01 38 */ beq lbl_8039F7D0 +/* 8039F69C 0039C5FC 1F 63 00 64 */ mulli r27, r3, 0x64 +/* 8039F6A0 0039C600 7F 9E D9 2E */ stwx r28, r30, r27 +/* 8039F6A4 0039C604 7C 1D D8 AE */ lbzx r0, r29, r27 +/* 8039F6A8 0039C608 28 00 00 02 */ cmplwi r0, 2 +/* 8039F6AC 0039C60C 40 82 00 60 */ bne lbl_8039F70C +/* 8039F6B0 0039C610 3C 80 43 30 */ lis r4, 0x4330 +/* 8039F6B4 0039C614 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039F6B8 0039C618 93 81 00 1C */ stw r28, 0x1c(r1) +/* 8039F6BC 0039C61C 80 03 00 50 */ lwz r0, lbl_80550050@l(r3) +/* 8039F6C0 0039C620 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F6C4 0039C624 90 81 00 18 */ stw r4, 0x18(r1) +/* 8039F6C8 0039C628 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F6CC 0039C62C C8 42 D5 58 */ lfd f2, lbl_805AF278@sda21(r2) +/* 8039F6D0 0039C630 7C 63 DA 14 */ add r3, r3, r27 +/* 8039F6D4 0039C634 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039F6D8 0039C638 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039F6DC 0039C63C EC 20 10 28 */ fsubs f1, f0, f2 +/* 8039F6E0 0039C640 C0 62 D5 60 */ lfs f3, lbl_805AF280@sda21(r2) +/* 8039F6E4 0039C644 90 81 00 10 */ stw r4, 0x10(r1) +/* 8039F6E8 0039C648 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 8039F6EC 0039C64C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039F6F0 0039C650 EC 23 00 72 */ fmuls f1, f3, f1 +/* 8039F6F4 0039C654 EC 00 10 28 */ fsubs f0, f0, f2 +/* 8039F6F8 0039C658 EC 01 00 24 */ fdivs f0, f1, f0 +/* 8039F6FC 0039C65C FC 00 00 1E */ fctiwz f0, f0 +/* 8039F700 0039C660 D8 01 00 08 */ stfd f0, 8(r1) +/* 8039F704 0039C664 80 81 00 0C */ lwz r4, 0xc(r1) +/* 8039F708 0039C668 48 01 3F 55 */ bl hwSetPitch +lbl_8039F70C: +/* 8039F70C 0039C66C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F710 0039C670 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F714 0039C674 7F 63 D8 2E */ lwzx r27, r3, r27 +/* 8039F718 0039C678 3C 1B 00 01 */ addis r0, r27, 1 +/* 8039F71C 0039C67C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F720 0039C680 41 82 00 B0 */ beq lbl_8039F7D0 +/* 8039F724 0039C684 48 01 59 99 */ bl hwDisableIrq +/* 8039F728 0039C688 7F 63 DB 78 */ mr r3, r27 +/* 8039F72C 0039C68C 4B FF DB B5 */ bl GetPrivateIndex +/* 8039F730 0039C690 3C 03 00 01 */ addis r0, r3, 1 +/* 8039F734 0039C694 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F738 0039C698 41 82 00 94 */ beq lbl_8039F7CC +/* 8039F73C 0039C69C 1F 63 00 64 */ mulli r27, r3, 0x64 +/* 8039F740 0039C6A0 7F 9E D9 2E */ stwx r28, r30, r27 +/* 8039F744 0039C6A4 7C 1D D8 AE */ lbzx r0, r29, r27 +/* 8039F748 0039C6A8 28 00 00 02 */ cmplwi r0, 2 +/* 8039F74C 0039C6AC 40 82 00 60 */ bne lbl_8039F7AC +/* 8039F750 0039C6B0 3C 80 43 30 */ lis r4, 0x4330 +/* 8039F754 0039C6B4 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 8039F758 0039C6B8 93 81 00 1C */ stw r28, 0x1c(r1) +/* 8039F75C 0039C6BC 80 03 00 50 */ lwz r0, lbl_80550050@l(r3) +/* 8039F760 0039C6C0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F764 0039C6C4 90 81 00 18 */ stw r4, 0x18(r1) +/* 8039F768 0039C6C8 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F76C 0039C6CC C8 42 D5 58 */ lfd f2, lbl_805AF278@sda21(r2) +/* 8039F770 0039C6D0 7C 63 DA 14 */ add r3, r3, r27 +/* 8039F774 0039C6D4 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039F778 0039C6D8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039F77C 0039C6DC EC 20 10 28 */ fsubs f1, f0, f2 +/* 8039F780 0039C6E0 C0 62 D5 60 */ lfs f3, lbl_805AF280@sda21(r2) +/* 8039F784 0039C6E4 90 81 00 10 */ stw r4, 0x10(r1) +/* 8039F788 0039C6E8 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 8039F78C 0039C6EC C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039F790 0039C6F0 EC 23 00 72 */ fmuls f1, f3, f1 +/* 8039F794 0039C6F4 EC 00 10 28 */ fsubs f0, f0, f2 +/* 8039F798 0039C6F8 EC 01 00 24 */ fdivs f0, f1, f0 +/* 8039F79C 0039C6FC FC 00 00 1E */ fctiwz f0, f0 +/* 8039F7A0 0039C700 D8 01 00 08 */ stfd f0, 8(r1) +/* 8039F7A4 0039C704 80 81 00 0C */ lwz r4, 0xc(r1) +/* 8039F7A8 0039C708 48 01 3E B5 */ bl hwSetPitch +lbl_8039F7AC: +/* 8039F7AC 0039C70C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F7B0 0039C710 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F7B4 0039C714 7C 63 D8 2E */ lwzx r3, r3, r27 +/* 8039F7B8 0039C718 3C 03 00 01 */ addis r0, r3, 1 +/* 8039F7BC 0039C71C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F7C0 0039C720 41 82 00 0C */ beq lbl_8039F7CC +/* 8039F7C4 0039C724 7F 84 E3 78 */ mr r4, r28 +/* 8039F7C8 0039C728 4B FF F9 C5 */ bl sndStreamFrq +lbl_8039F7CC: +/* 8039F7CC 0039C72C 48 01 58 B9 */ bl hwEnableIrq +lbl_8039F7D0: +/* 8039F7D0 0039C730 48 01 58 B5 */ bl hwEnableIrq +lbl_8039F7D4: +/* 8039F7D4 0039C734 48 01 58 B1 */ bl hwEnableIrq +lbl_8039F7D8: +/* 8039F7D8 0039C738 48 01 58 AD */ bl hwEnableIrq +/* 8039F7DC 0039C73C 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039F7E0 0039C740 4B FE A2 E9 */ bl _restgpr_27 +/* 8039F7E4 0039C744 80 01 00 44 */ lwz r0, 0x44(r1) +/* 8039F7E8 0039C748 7C 08 03 A6 */ mtlr r0 +/* 8039F7EC 0039C74C 38 21 00 40 */ addi r1, r1, 0x40 +/* 8039F7F0 0039C750 4E 80 00 20 */ blr + +.global sndStreamFree +sndStreamFree: +/* 8039F7F4 0039C754 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8039F7F8 0039C758 7C 08 02 A6 */ mflr r0 +/* 8039F7FC 0039C75C 90 01 00 34 */ stw r0, 0x34(r1) +/* 8039F800 0039C760 39 61 00 30 */ addi r11, r1, 0x30 +/* 8039F804 0039C764 4B FE A2 71 */ bl func_80389A74 +/* 8039F808 0039C768 7C 79 1B 78 */ mr r25, r3 +/* 8039F80C 0039C76C 48 01 58 B1 */ bl hwDisableIrq +/* 8039F810 0039C770 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F814 0039C774 38 00 00 08 */ li r0, 8 +/* 8039F818 0039C778 3B C3 13 F8 */ addi r30, r3, lbl_805513F8@l +/* 8039F81C 0039C77C 3B 40 00 00 */ li r26, 0 +/* 8039F820 0039C780 7F C3 F3 78 */ mr r3, r30 +/* 8039F824 0039C784 7C 09 03 A6 */ mtctr r0 +lbl_8039F828: +/* 8039F828 0039C788 88 03 00 0C */ lbz r0, 0xc(r3) +/* 8039F82C 0039C78C 28 00 00 00 */ cmplwi r0, 0 +/* 8039F830 0039C790 41 82 00 14 */ beq lbl_8039F844 +/* 8039F834 0039C794 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F838 0039C798 7C 19 00 40 */ cmplw r25, r0 +/* 8039F83C 0039C79C 40 82 00 08 */ bne lbl_8039F844 +/* 8039F840 0039C7A0 48 00 01 10 */ b lbl_8039F950 +lbl_8039F844: +/* 8039F844 0039C7A4 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F848 0039C7A8 3B 5A 00 01 */ addi r26, r26, 1 +/* 8039F84C 0039C7AC 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F850 0039C7B0 28 00 00 00 */ cmplwi r0, 0 +/* 8039F854 0039C7B4 41 82 00 14 */ beq lbl_8039F868 +/* 8039F858 0039C7B8 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F85C 0039C7BC 7C 19 00 40 */ cmplw r25, r0 +/* 8039F860 0039C7C0 40 82 00 08 */ bne lbl_8039F868 +/* 8039F864 0039C7C4 48 00 00 EC */ b lbl_8039F950 +lbl_8039F868: +/* 8039F868 0039C7C8 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F86C 0039C7CC 3B 5A 00 01 */ addi r26, r26, 1 +/* 8039F870 0039C7D0 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F874 0039C7D4 28 00 00 00 */ cmplwi r0, 0 +/* 8039F878 0039C7D8 41 82 00 14 */ beq lbl_8039F88C +/* 8039F87C 0039C7DC 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F880 0039C7E0 7C 19 00 40 */ cmplw r25, r0 +/* 8039F884 0039C7E4 40 82 00 08 */ bne lbl_8039F88C +/* 8039F888 0039C7E8 48 00 00 C8 */ b lbl_8039F950 +lbl_8039F88C: +/* 8039F88C 0039C7EC 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F890 0039C7F0 3B 5A 00 01 */ addi r26, r26, 1 +/* 8039F894 0039C7F4 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F898 0039C7F8 28 00 00 00 */ cmplwi r0, 0 +/* 8039F89C 0039C7FC 41 82 00 14 */ beq lbl_8039F8B0 +/* 8039F8A0 0039C800 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F8A4 0039C804 7C 19 00 40 */ cmplw r25, r0 +/* 8039F8A8 0039C808 40 82 00 08 */ bne lbl_8039F8B0 +/* 8039F8AC 0039C80C 48 00 00 A4 */ b lbl_8039F950 +lbl_8039F8B0: +/* 8039F8B0 0039C810 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F8B4 0039C814 3B 5A 00 01 */ addi r26, r26, 1 +/* 8039F8B8 0039C818 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F8BC 0039C81C 28 00 00 00 */ cmplwi r0, 0 +/* 8039F8C0 0039C820 41 82 00 14 */ beq lbl_8039F8D4 +/* 8039F8C4 0039C824 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F8C8 0039C828 7C 19 00 40 */ cmplw r25, r0 +/* 8039F8CC 0039C82C 40 82 00 08 */ bne lbl_8039F8D4 +/* 8039F8D0 0039C830 48 00 00 80 */ b lbl_8039F950 +lbl_8039F8D4: +/* 8039F8D4 0039C834 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F8D8 0039C838 3B 5A 00 01 */ addi r26, r26, 1 +/* 8039F8DC 0039C83C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F8E0 0039C840 28 00 00 00 */ cmplwi r0, 0 +/* 8039F8E4 0039C844 41 82 00 14 */ beq lbl_8039F8F8 +/* 8039F8E8 0039C848 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F8EC 0039C84C 7C 19 00 40 */ cmplw r25, r0 +/* 8039F8F0 0039C850 40 82 00 08 */ bne lbl_8039F8F8 +/* 8039F8F4 0039C854 48 00 00 5C */ b lbl_8039F950 +lbl_8039F8F8: +/* 8039F8F8 0039C858 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F8FC 0039C85C 3B 5A 00 01 */ addi r26, r26, 1 +/* 8039F900 0039C860 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F904 0039C864 28 00 00 00 */ cmplwi r0, 0 +/* 8039F908 0039C868 41 82 00 14 */ beq lbl_8039F91C +/* 8039F90C 0039C86C 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F910 0039C870 7C 19 00 40 */ cmplw r25, r0 +/* 8039F914 0039C874 40 82 00 08 */ bne lbl_8039F91C +/* 8039F918 0039C878 48 00 00 38 */ b lbl_8039F950 +lbl_8039F91C: +/* 8039F91C 0039C87C 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F920 0039C880 3B 5A 00 01 */ addi r26, r26, 1 +/* 8039F924 0039C884 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F928 0039C888 28 00 00 00 */ cmplwi r0, 0 +/* 8039F92C 0039C88C 41 82 00 14 */ beq lbl_8039F940 +/* 8039F930 0039C890 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F934 0039C894 7C 19 00 40 */ cmplw r25, r0 +/* 8039F938 0039C898 40 82 00 08 */ bne lbl_8039F940 +/* 8039F93C 0039C89C 48 00 00 14 */ b lbl_8039F950 +lbl_8039F940: +/* 8039F940 0039C8A0 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F944 0039C8A4 3B 5A 00 01 */ addi r26, r26, 1 +/* 8039F948 0039C8A8 42 00 FE E0 */ bdnz lbl_8039F828 +/* 8039F94C 0039C8AC 3B 40 FF FF */ li r26, -1 +lbl_8039F950: +/* 8039F950 0039C8B0 3C 1A 00 01 */ addis r0, r26, 1 +/* 8039F954 0039C8B4 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F958 0039C8B8 41 82 05 54 */ beq lbl_8039FEAC +/* 8039F95C 0039C8BC 7F 23 CB 78 */ mr r3, r25 +/* 8039F960 0039C8C0 48 00 0B C1 */ bl sndStreamDeactivate +/* 8039F964 0039C8C4 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F968 0039C8C8 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F96C 0039C8CC 1F FA 00 64 */ mulli r31, r26, 0x64 +/* 8039F970 0039C8D0 3B A3 00 0E */ addi r29, r3, 0xe +/* 8039F974 0039C8D4 7C 7D F8 AE */ lbzx r3, r29, r31 +/* 8039F978 0039C8D8 48 01 43 4D */ bl sub_803b3cc4 +/* 8039F97C 0039C8DC 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039F980 0039C8E0 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039F984 0039C8E4 7F 43 F8 2E */ lwzx r26, r3, r31 +/* 8039F988 0039C8E8 3C 1A 00 01 */ addis r0, r26, 1 +/* 8039F98C 0039C8EC 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039F990 0039C8F0 41 82 05 08 */ beq lbl_8039FE98 +/* 8039F994 0039C8F4 48 01 57 29 */ bl hwDisableIrq +/* 8039F998 0039C8F8 38 00 00 08 */ li r0, 8 +/* 8039F99C 0039C8FC 7F C3 F3 78 */ mr r3, r30 +/* 8039F9A0 0039C900 3B 60 00 00 */ li r27, 0 +/* 8039F9A4 0039C904 7C 09 03 A6 */ mtctr r0 +lbl_8039F9A8: +/* 8039F9A8 0039C908 88 03 00 0C */ lbz r0, 0xc(r3) +/* 8039F9AC 0039C90C 28 00 00 00 */ cmplwi r0, 0 +/* 8039F9B0 0039C910 41 82 00 14 */ beq lbl_8039F9C4 +/* 8039F9B4 0039C914 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F9B8 0039C918 7C 1A 00 40 */ cmplw r26, r0 +/* 8039F9BC 0039C91C 40 82 00 08 */ bne lbl_8039F9C4 +/* 8039F9C0 0039C920 48 00 01 10 */ b lbl_8039FAD0 +lbl_8039F9C4: +/* 8039F9C4 0039C924 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F9C8 0039C928 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039F9CC 0039C92C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F9D0 0039C930 28 00 00 00 */ cmplwi r0, 0 +/* 8039F9D4 0039C934 41 82 00 14 */ beq lbl_8039F9E8 +/* 8039F9D8 0039C938 80 03 00 04 */ lwz r0, 4(r3) +/* 8039F9DC 0039C93C 7C 1A 00 40 */ cmplw r26, r0 +/* 8039F9E0 0039C940 40 82 00 08 */ bne lbl_8039F9E8 +/* 8039F9E4 0039C944 48 00 00 EC */ b lbl_8039FAD0 +lbl_8039F9E8: +/* 8039F9E8 0039C948 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039F9EC 0039C94C 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039F9F0 0039C950 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039F9F4 0039C954 28 00 00 00 */ cmplwi r0, 0 +/* 8039F9F8 0039C958 41 82 00 14 */ beq lbl_8039FA0C +/* 8039F9FC 0039C95C 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FA00 0039C960 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FA04 0039C964 40 82 00 08 */ bne lbl_8039FA0C +/* 8039FA08 0039C968 48 00 00 C8 */ b lbl_8039FAD0 +lbl_8039FA0C: +/* 8039FA0C 0039C96C 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FA10 0039C970 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FA14 0039C974 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FA18 0039C978 28 00 00 00 */ cmplwi r0, 0 +/* 8039FA1C 0039C97C 41 82 00 14 */ beq lbl_8039FA30 +/* 8039FA20 0039C980 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FA24 0039C984 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FA28 0039C988 40 82 00 08 */ bne lbl_8039FA30 +/* 8039FA2C 0039C98C 48 00 00 A4 */ b lbl_8039FAD0 +lbl_8039FA30: +/* 8039FA30 0039C990 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FA34 0039C994 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FA38 0039C998 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FA3C 0039C99C 28 00 00 00 */ cmplwi r0, 0 +/* 8039FA40 0039C9A0 41 82 00 14 */ beq lbl_8039FA54 +/* 8039FA44 0039C9A4 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FA48 0039C9A8 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FA4C 0039C9AC 40 82 00 08 */ bne lbl_8039FA54 +/* 8039FA50 0039C9B0 48 00 00 80 */ b lbl_8039FAD0 +lbl_8039FA54: +/* 8039FA54 0039C9B4 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FA58 0039C9B8 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FA5C 0039C9BC 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FA60 0039C9C0 28 00 00 00 */ cmplwi r0, 0 +/* 8039FA64 0039C9C4 41 82 00 14 */ beq lbl_8039FA78 +/* 8039FA68 0039C9C8 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FA6C 0039C9CC 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FA70 0039C9D0 40 82 00 08 */ bne lbl_8039FA78 +/* 8039FA74 0039C9D4 48 00 00 5C */ b lbl_8039FAD0 +lbl_8039FA78: +/* 8039FA78 0039C9D8 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FA7C 0039C9DC 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FA80 0039C9E0 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FA84 0039C9E4 28 00 00 00 */ cmplwi r0, 0 +/* 8039FA88 0039C9E8 41 82 00 14 */ beq lbl_8039FA9C +/* 8039FA8C 0039C9EC 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FA90 0039C9F0 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FA94 0039C9F4 40 82 00 08 */ bne lbl_8039FA9C +/* 8039FA98 0039C9F8 48 00 00 38 */ b lbl_8039FAD0 +lbl_8039FA9C: +/* 8039FA9C 0039C9FC 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FAA0 0039CA00 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FAA4 0039CA04 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FAA8 0039CA08 28 00 00 00 */ cmplwi r0, 0 +/* 8039FAAC 0039CA0C 41 82 00 14 */ beq lbl_8039FAC0 +/* 8039FAB0 0039CA10 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FAB4 0039CA14 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FAB8 0039CA18 40 82 00 08 */ bne lbl_8039FAC0 +/* 8039FABC 0039CA1C 48 00 00 14 */ b lbl_8039FAD0 +lbl_8039FAC0: +/* 8039FAC0 0039CA20 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FAC4 0039CA24 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FAC8 0039CA28 42 00 FE E0 */ bdnz lbl_8039F9A8 +/* 8039FACC 0039CA2C 3B 60 FF FF */ li r27, -1 +lbl_8039FAD0: +/* 8039FAD0 0039CA30 3C 1B 00 01 */ addis r0, r27, 1 +/* 8039FAD4 0039CA34 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039FAD8 0039CA38 41 82 03 BC */ beq lbl_8039FE94 +/* 8039FADC 0039CA3C 7F 43 D3 78 */ mr r3, r26 +/* 8039FAE0 0039CA40 48 00 0A 41 */ bl sndStreamDeactivate +/* 8039FAE4 0039CA44 1F 9B 00 64 */ mulli r28, r27, 0x64 +/* 8039FAE8 0039CA48 7C 7D E0 AE */ lbzx r3, r29, r28 +/* 8039FAEC 0039CA4C 48 01 41 D9 */ bl sub_803b3cc4 +/* 8039FAF0 0039CA50 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FAF4 0039CA54 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039FAF8 0039CA58 7F 43 E0 2E */ lwzx r26, r3, r28 +/* 8039FAFC 0039CA5C 3C 1A 00 01 */ addis r0, r26, 1 +/* 8039FB00 0039CA60 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039FB04 0039CA64 41 82 03 7C */ beq lbl_8039FE80 +/* 8039FB08 0039CA68 48 01 55 B5 */ bl hwDisableIrq +/* 8039FB0C 0039CA6C 38 00 00 08 */ li r0, 8 +/* 8039FB10 0039CA70 7F C3 F3 78 */ mr r3, r30 +/* 8039FB14 0039CA74 3B 60 00 00 */ li r27, 0 +/* 8039FB18 0039CA78 7C 09 03 A6 */ mtctr r0 +lbl_8039FB1C: +/* 8039FB1C 0039CA7C 88 03 00 0C */ lbz r0, 0xc(r3) +/* 8039FB20 0039CA80 28 00 00 00 */ cmplwi r0, 0 +/* 8039FB24 0039CA84 41 82 00 14 */ beq lbl_8039FB38 +/* 8039FB28 0039CA88 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FB2C 0039CA8C 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FB30 0039CA90 40 82 00 08 */ bne lbl_8039FB38 +/* 8039FB34 0039CA94 48 00 01 10 */ b lbl_8039FC44 +lbl_8039FB38: +/* 8039FB38 0039CA98 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FB3C 0039CA9C 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FB40 0039CAA0 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FB44 0039CAA4 28 00 00 00 */ cmplwi r0, 0 +/* 8039FB48 0039CAA8 41 82 00 14 */ beq lbl_8039FB5C +/* 8039FB4C 0039CAAC 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FB50 0039CAB0 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FB54 0039CAB4 40 82 00 08 */ bne lbl_8039FB5C +/* 8039FB58 0039CAB8 48 00 00 EC */ b lbl_8039FC44 +lbl_8039FB5C: +/* 8039FB5C 0039CABC 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FB60 0039CAC0 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FB64 0039CAC4 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FB68 0039CAC8 28 00 00 00 */ cmplwi r0, 0 +/* 8039FB6C 0039CACC 41 82 00 14 */ beq lbl_8039FB80 +/* 8039FB70 0039CAD0 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FB74 0039CAD4 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FB78 0039CAD8 40 82 00 08 */ bne lbl_8039FB80 +/* 8039FB7C 0039CADC 48 00 00 C8 */ b lbl_8039FC44 +lbl_8039FB80: +/* 8039FB80 0039CAE0 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FB84 0039CAE4 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FB88 0039CAE8 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FB8C 0039CAEC 28 00 00 00 */ cmplwi r0, 0 +/* 8039FB90 0039CAF0 41 82 00 14 */ beq lbl_8039FBA4 +/* 8039FB94 0039CAF4 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FB98 0039CAF8 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FB9C 0039CAFC 40 82 00 08 */ bne lbl_8039FBA4 +/* 8039FBA0 0039CB00 48 00 00 A4 */ b lbl_8039FC44 +lbl_8039FBA4: +/* 8039FBA4 0039CB04 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FBA8 0039CB08 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FBAC 0039CB0C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FBB0 0039CB10 28 00 00 00 */ cmplwi r0, 0 +/* 8039FBB4 0039CB14 41 82 00 14 */ beq lbl_8039FBC8 +/* 8039FBB8 0039CB18 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FBBC 0039CB1C 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FBC0 0039CB20 40 82 00 08 */ bne lbl_8039FBC8 +/* 8039FBC4 0039CB24 48 00 00 80 */ b lbl_8039FC44 +lbl_8039FBC8: +/* 8039FBC8 0039CB28 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FBCC 0039CB2C 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FBD0 0039CB30 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FBD4 0039CB34 28 00 00 00 */ cmplwi r0, 0 +/* 8039FBD8 0039CB38 41 82 00 14 */ beq lbl_8039FBEC +/* 8039FBDC 0039CB3C 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FBE0 0039CB40 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FBE4 0039CB44 40 82 00 08 */ bne lbl_8039FBEC +/* 8039FBE8 0039CB48 48 00 00 5C */ b lbl_8039FC44 +lbl_8039FBEC: +/* 8039FBEC 0039CB4C 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FBF0 0039CB50 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FBF4 0039CB54 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FBF8 0039CB58 28 00 00 00 */ cmplwi r0, 0 +/* 8039FBFC 0039CB5C 41 82 00 14 */ beq lbl_8039FC10 +/* 8039FC00 0039CB60 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FC04 0039CB64 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FC08 0039CB68 40 82 00 08 */ bne lbl_8039FC10 +/* 8039FC0C 0039CB6C 48 00 00 38 */ b lbl_8039FC44 +lbl_8039FC10: +/* 8039FC10 0039CB70 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FC14 0039CB74 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FC18 0039CB78 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FC1C 0039CB7C 28 00 00 00 */ cmplwi r0, 0 +/* 8039FC20 0039CB80 41 82 00 14 */ beq lbl_8039FC34 +/* 8039FC24 0039CB84 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FC28 0039CB88 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FC2C 0039CB8C 40 82 00 08 */ bne lbl_8039FC34 +/* 8039FC30 0039CB90 48 00 00 14 */ b lbl_8039FC44 +lbl_8039FC34: +/* 8039FC34 0039CB94 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FC38 0039CB98 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039FC3C 0039CB9C 42 00 FE E0 */ bdnz lbl_8039FB1C +/* 8039FC40 0039CBA0 3B 60 FF FF */ li r27, -1 +lbl_8039FC44: +/* 8039FC44 0039CBA4 3C 1B 00 01 */ addis r0, r27, 1 +/* 8039FC48 0039CBA8 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039FC4C 0039CBAC 41 82 02 30 */ beq lbl_8039FE7C +/* 8039FC50 0039CBB0 7F 43 D3 78 */ mr r3, r26 +/* 8039FC54 0039CBB4 48 00 08 CD */ bl sndStreamDeactivate +/* 8039FC58 0039CBB8 1F 7B 00 64 */ mulli r27, r27, 0x64 +/* 8039FC5C 0039CBBC 7C 7D D8 AE */ lbzx r3, r29, r27 +/* 8039FC60 0039CBC0 48 01 40 65 */ bl sub_803b3cc4 +/* 8039FC64 0039CBC4 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FC68 0039CBC8 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039FC6C 0039CBCC 7F 43 D8 2E */ lwzx r26, r3, r27 +/* 8039FC70 0039CBD0 3C 1A 00 01 */ addis r0, r26, 1 +/* 8039FC74 0039CBD4 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039FC78 0039CBD8 41 82 01 F0 */ beq lbl_8039FE68 +/* 8039FC7C 0039CBDC 48 01 54 41 */ bl hwDisableIrq +/* 8039FC80 0039CBE0 38 00 00 08 */ li r0, 8 +/* 8039FC84 0039CBE4 3B 20 00 00 */ li r25, 0 +/* 8039FC88 0039CBE8 7C 09 03 A6 */ mtctr r0 +lbl_8039FC8C: +/* 8039FC8C 0039CBEC 88 1E 00 0C */ lbz r0, 0xc(r30) +/* 8039FC90 0039CBF0 28 00 00 00 */ cmplwi r0, 0 +/* 8039FC94 0039CBF4 41 82 00 14 */ beq lbl_8039FCA8 +/* 8039FC98 0039CBF8 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039FC9C 0039CBFC 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FCA0 0039CC00 40 82 00 08 */ bne lbl_8039FCA8 +/* 8039FCA4 0039CC04 48 00 01 10 */ b lbl_8039FDB4 +lbl_8039FCA8: +/* 8039FCA8 0039CC08 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039FCAC 0039CC0C 3B 39 00 01 */ addi r25, r25, 1 +/* 8039FCB0 0039CC10 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039FCB4 0039CC14 28 00 00 00 */ cmplwi r0, 0 +/* 8039FCB8 0039CC18 41 82 00 14 */ beq lbl_8039FCCC +/* 8039FCBC 0039CC1C 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039FCC0 0039CC20 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FCC4 0039CC24 40 82 00 08 */ bne lbl_8039FCCC +/* 8039FCC8 0039CC28 48 00 00 EC */ b lbl_8039FDB4 +lbl_8039FCCC: +/* 8039FCCC 0039CC2C 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039FCD0 0039CC30 3B 39 00 01 */ addi r25, r25, 1 +/* 8039FCD4 0039CC34 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039FCD8 0039CC38 28 00 00 00 */ cmplwi r0, 0 +/* 8039FCDC 0039CC3C 41 82 00 14 */ beq lbl_8039FCF0 +/* 8039FCE0 0039CC40 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039FCE4 0039CC44 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FCE8 0039CC48 40 82 00 08 */ bne lbl_8039FCF0 +/* 8039FCEC 0039CC4C 48 00 00 C8 */ b lbl_8039FDB4 +lbl_8039FCF0: +/* 8039FCF0 0039CC50 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039FCF4 0039CC54 3B 39 00 01 */ addi r25, r25, 1 +/* 8039FCF8 0039CC58 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039FCFC 0039CC5C 28 00 00 00 */ cmplwi r0, 0 +/* 8039FD00 0039CC60 41 82 00 14 */ beq lbl_8039FD14 +/* 8039FD04 0039CC64 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039FD08 0039CC68 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FD0C 0039CC6C 40 82 00 08 */ bne lbl_8039FD14 +/* 8039FD10 0039CC70 48 00 00 A4 */ b lbl_8039FDB4 +lbl_8039FD14: +/* 8039FD14 0039CC74 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039FD18 0039CC78 3B 39 00 01 */ addi r25, r25, 1 +/* 8039FD1C 0039CC7C 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039FD20 0039CC80 28 00 00 00 */ cmplwi r0, 0 +/* 8039FD24 0039CC84 41 82 00 14 */ beq lbl_8039FD38 +/* 8039FD28 0039CC88 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039FD2C 0039CC8C 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FD30 0039CC90 40 82 00 08 */ bne lbl_8039FD38 +/* 8039FD34 0039CC94 48 00 00 80 */ b lbl_8039FDB4 +lbl_8039FD38: +/* 8039FD38 0039CC98 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039FD3C 0039CC9C 3B 39 00 01 */ addi r25, r25, 1 +/* 8039FD40 0039CCA0 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039FD44 0039CCA4 28 00 00 00 */ cmplwi r0, 0 +/* 8039FD48 0039CCA8 41 82 00 14 */ beq lbl_8039FD5C +/* 8039FD4C 0039CCAC 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039FD50 0039CCB0 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FD54 0039CCB4 40 82 00 08 */ bne lbl_8039FD5C +/* 8039FD58 0039CCB8 48 00 00 5C */ b lbl_8039FDB4 +lbl_8039FD5C: +/* 8039FD5C 0039CCBC 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039FD60 0039CCC0 3B 39 00 01 */ addi r25, r25, 1 +/* 8039FD64 0039CCC4 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039FD68 0039CCC8 28 00 00 00 */ cmplwi r0, 0 +/* 8039FD6C 0039CCCC 41 82 00 14 */ beq lbl_8039FD80 +/* 8039FD70 0039CCD0 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039FD74 0039CCD4 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FD78 0039CCD8 40 82 00 08 */ bne lbl_8039FD80 +/* 8039FD7C 0039CCDC 48 00 00 38 */ b lbl_8039FDB4 +lbl_8039FD80: +/* 8039FD80 0039CCE0 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 8039FD84 0039CCE4 3B 39 00 01 */ addi r25, r25, 1 +/* 8039FD88 0039CCE8 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039FD8C 0039CCEC 28 00 00 00 */ cmplwi r0, 0 +/* 8039FD90 0039CCF0 41 82 00 14 */ beq lbl_8039FDA4 +/* 8039FD94 0039CCF4 80 1E 00 04 */ lwz r0, 4(r30) +/* 8039FD98 0039CCF8 7C 1A 00 40 */ cmplw r26, r0 +/* 8039FD9C 0039CCFC 40 82 00 08 */ bne lbl_8039FDA4 +/* 8039FDA0 0039CD00 48 00 00 14 */ b lbl_8039FDB4 +lbl_8039FDA4: +/* 8039FDA4 0039CD04 3B DE 00 64 */ addi r30, r30, 0x64 +/* 8039FDA8 0039CD08 3B 39 00 01 */ addi r25, r25, 1 +/* 8039FDAC 0039CD0C 42 00 FE E0 */ bdnz lbl_8039FC8C +/* 8039FDB0 0039CD10 3B 20 FF FF */ li r25, -1 +lbl_8039FDB4: +/* 8039FDB4 0039CD14 3C 19 00 01 */ addis r0, r25, 1 +/* 8039FDB8 0039CD18 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039FDBC 0039CD1C 41 82 00 A8 */ beq lbl_8039FE64 +/* 8039FDC0 0039CD20 7F 43 D3 78 */ mr r3, r26 +/* 8039FDC4 0039CD24 48 00 07 5D */ bl sndStreamDeactivate +/* 8039FDC8 0039CD28 1F D9 00 64 */ mulli r30, r25, 0x64 +/* 8039FDCC 0039CD2C 7C 7D F0 AE */ lbzx r3, r29, r30 +/* 8039FDD0 0039CD30 48 01 3E F5 */ bl sub_803b3cc4 +/* 8039FDD4 0039CD34 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FDD8 0039CD38 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039FDDC 0039CD3C 7F 23 F0 2E */ lwzx r25, r3, r30 +/* 8039FDE0 0039CD40 3C 19 00 01 */ addis r0, r25, 1 +/* 8039FDE4 0039CD44 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039FDE8 0039CD48 41 82 00 68 */ beq lbl_8039FE50 +/* 8039FDEC 0039CD4C 48 01 52 D1 */ bl hwDisableIrq +/* 8039FDF0 0039CD50 7F 23 CB 78 */ mr r3, r25 +/* 8039FDF4 0039CD54 4B FF D4 ED */ bl GetPrivateIndex +/* 8039FDF8 0039CD58 7C 7A 1B 78 */ mr r26, r3 +/* 8039FDFC 0039CD5C 3C 1A 00 01 */ addis r0, r26, 1 +/* 8039FE00 0039CD60 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039FE04 0039CD64 41 82 00 48 */ beq lbl_8039FE4C +/* 8039FE08 0039CD68 7F 23 CB 78 */ mr r3, r25 +/* 8039FE0C 0039CD6C 48 00 07 15 */ bl sndStreamDeactivate +/* 8039FE10 0039CD70 1F 3A 00 64 */ mulli r25, r26, 0x64 +/* 8039FE14 0039CD74 7C 7D C8 AE */ lbzx r3, r29, r25 +/* 8039FE18 0039CD78 48 01 3E AD */ bl sub_803b3cc4 +/* 8039FE1C 0039CD7C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FE20 0039CD80 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 8039FE24 0039CD84 7C 63 C8 2E */ lwzx r3, r3, r25 +/* 8039FE28 0039CD88 3C 03 00 01 */ addis r0, r3, 1 +/* 8039FE2C 0039CD8C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039FE30 0039CD90 41 82 00 08 */ beq lbl_8039FE38 +/* 8039FE34 0039CD94 4B FF F9 C1 */ bl sndStreamFree +lbl_8039FE38: +/* 8039FE38 0039CD98 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FE3C 0039CD9C 38 80 00 00 */ li r4, 0 +/* 8039FE40 0039CDA0 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039FE44 0039CDA4 7C 60 CA 14 */ add r3, r0, r25 +/* 8039FE48 0039CDA8 98 83 00 0C */ stb r4, 0xc(r3) +lbl_8039FE4C: +/* 8039FE4C 0039CDAC 48 01 52 39 */ bl hwEnableIrq +lbl_8039FE50: +/* 8039FE50 0039CDB0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FE54 0039CDB4 38 80 00 00 */ li r4, 0 +/* 8039FE58 0039CDB8 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039FE5C 0039CDBC 7C 60 F2 14 */ add r3, r0, r30 +/* 8039FE60 0039CDC0 98 83 00 0C */ stb r4, 0xc(r3) +lbl_8039FE64: +/* 8039FE64 0039CDC4 48 01 52 21 */ bl hwEnableIrq +lbl_8039FE68: +/* 8039FE68 0039CDC8 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FE6C 0039CDCC 38 80 00 00 */ li r4, 0 +/* 8039FE70 0039CDD0 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039FE74 0039CDD4 7C 60 DA 14 */ add r3, r0, r27 +/* 8039FE78 0039CDD8 98 83 00 0C */ stb r4, 0xc(r3) +lbl_8039FE7C: +/* 8039FE7C 0039CDDC 48 01 52 09 */ bl hwEnableIrq +lbl_8039FE80: +/* 8039FE80 0039CDE0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FE84 0039CDE4 38 80 00 00 */ li r4, 0 +/* 8039FE88 0039CDE8 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039FE8C 0039CDEC 7C 60 E2 14 */ add r3, r0, r28 +/* 8039FE90 0039CDF0 98 83 00 0C */ stb r4, 0xc(r3) +lbl_8039FE94: +/* 8039FE94 0039CDF4 48 01 51 F1 */ bl hwEnableIrq +lbl_8039FE98: +/* 8039FE98 0039CDF8 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FE9C 0039CDFC 38 80 00 00 */ li r4, 0 +/* 8039FEA0 0039CE00 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 8039FEA4 0039CE04 7C 60 FA 14 */ add r3, r0, r31 +/* 8039FEA8 0039CE08 98 83 00 0C */ stb r4, 0xc(r3) +lbl_8039FEAC: +/* 8039FEAC 0039CE0C 48 01 51 D9 */ bl hwEnableIrq +/* 8039FEB0 0039CE10 39 61 00 30 */ addi r11, r1, 0x30 +/* 8039FEB4 0039CE14 4B FE 9C 0D */ bl _restgpr_25 +/* 8039FEB8 0039CE18 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8039FEBC 0039CE1C 7C 08 03 A6 */ mtlr r0 +/* 8039FEC0 0039CE20 38 21 00 30 */ addi r1, r1, 0x30 +/* 8039FEC4 0039CE24 4E 80 00 20 */ blr + +.global sndStreamActivate +sndStreamActivate: +/* 8039FEC8 0039CE28 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039FECC 0039CE2C 7C 08 02 A6 */ mflr r0 +/* 8039FED0 0039CE30 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039FED4 0039CE34 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039FED8 0039CE38 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039FEDC 0039CE3C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039FEE0 0039CE40 7C 7D 1B 78 */ mr r29, r3 +/* 8039FEE4 0039CE44 93 81 00 10 */ stw r28, 0x10(r1) +/* 8039FEE8 0039CE48 3B 80 00 00 */ li r28, 0 +/* 8039FEEC 0039CE4C 48 01 51 D1 */ bl hwDisableIrq +/* 8039FEF0 0039CE50 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 8039FEF4 0039CE54 38 00 00 08 */ li r0, 8 +/* 8039FEF8 0039CE58 3B C3 13 F8 */ addi r30, r3, lbl_805513F8@l +/* 8039FEFC 0039CE5C 38 80 00 00 */ li r4, 0 +/* 8039FF00 0039CE60 7F C3 F3 78 */ mr r3, r30 +/* 8039FF04 0039CE64 7C 09 03 A6 */ mtctr r0 +lbl_8039FF08: +/* 8039FF08 0039CE68 88 03 00 0C */ lbz r0, 0xc(r3) +/* 8039FF0C 0039CE6C 28 00 00 00 */ cmplwi r0, 0 +/* 8039FF10 0039CE70 41 82 00 14 */ beq lbl_8039FF24 +/* 8039FF14 0039CE74 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FF18 0039CE78 7C 1D 00 40 */ cmplw r29, r0 +/* 8039FF1C 0039CE7C 40 82 00 08 */ bne lbl_8039FF24 +/* 8039FF20 0039CE80 48 00 01 10 */ b lbl_803A0030 +lbl_8039FF24: +/* 8039FF24 0039CE84 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FF28 0039CE88 38 84 00 01 */ addi r4, r4, 1 +/* 8039FF2C 0039CE8C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FF30 0039CE90 28 00 00 00 */ cmplwi r0, 0 +/* 8039FF34 0039CE94 41 82 00 14 */ beq lbl_8039FF48 +/* 8039FF38 0039CE98 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FF3C 0039CE9C 7C 1D 00 40 */ cmplw r29, r0 +/* 8039FF40 0039CEA0 40 82 00 08 */ bne lbl_8039FF48 +/* 8039FF44 0039CEA4 48 00 00 EC */ b lbl_803A0030 +lbl_8039FF48: +/* 8039FF48 0039CEA8 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FF4C 0039CEAC 38 84 00 01 */ addi r4, r4, 1 +/* 8039FF50 0039CEB0 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FF54 0039CEB4 28 00 00 00 */ cmplwi r0, 0 +/* 8039FF58 0039CEB8 41 82 00 14 */ beq lbl_8039FF6C +/* 8039FF5C 0039CEBC 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FF60 0039CEC0 7C 1D 00 40 */ cmplw r29, r0 +/* 8039FF64 0039CEC4 40 82 00 08 */ bne lbl_8039FF6C +/* 8039FF68 0039CEC8 48 00 00 C8 */ b lbl_803A0030 +lbl_8039FF6C: +/* 8039FF6C 0039CECC 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FF70 0039CED0 38 84 00 01 */ addi r4, r4, 1 +/* 8039FF74 0039CED4 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FF78 0039CED8 28 00 00 00 */ cmplwi r0, 0 +/* 8039FF7C 0039CEDC 41 82 00 14 */ beq lbl_8039FF90 +/* 8039FF80 0039CEE0 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FF84 0039CEE4 7C 1D 00 40 */ cmplw r29, r0 +/* 8039FF88 0039CEE8 40 82 00 08 */ bne lbl_8039FF90 +/* 8039FF8C 0039CEEC 48 00 00 A4 */ b lbl_803A0030 +lbl_8039FF90: +/* 8039FF90 0039CEF0 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FF94 0039CEF4 38 84 00 01 */ addi r4, r4, 1 +/* 8039FF98 0039CEF8 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FF9C 0039CEFC 28 00 00 00 */ cmplwi r0, 0 +/* 8039FFA0 0039CF00 41 82 00 14 */ beq lbl_8039FFB4 +/* 8039FFA4 0039CF04 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FFA8 0039CF08 7C 1D 00 40 */ cmplw r29, r0 +/* 8039FFAC 0039CF0C 40 82 00 08 */ bne lbl_8039FFB4 +/* 8039FFB0 0039CF10 48 00 00 80 */ b lbl_803A0030 +lbl_8039FFB4: +/* 8039FFB4 0039CF14 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FFB8 0039CF18 38 84 00 01 */ addi r4, r4, 1 +/* 8039FFBC 0039CF1C 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FFC0 0039CF20 28 00 00 00 */ cmplwi r0, 0 +/* 8039FFC4 0039CF24 41 82 00 14 */ beq lbl_8039FFD8 +/* 8039FFC8 0039CF28 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FFCC 0039CF2C 7C 1D 00 40 */ cmplw r29, r0 +/* 8039FFD0 0039CF30 40 82 00 08 */ bne lbl_8039FFD8 +/* 8039FFD4 0039CF34 48 00 00 5C */ b lbl_803A0030 +lbl_8039FFD8: +/* 8039FFD8 0039CF38 88 03 00 70 */ lbz r0, 0x70(r3) +/* 8039FFDC 0039CF3C 38 84 00 01 */ addi r4, r4, 1 +/* 8039FFE0 0039CF40 38 63 00 64 */ addi r3, r3, 0x64 +/* 8039FFE4 0039CF44 28 00 00 00 */ cmplwi r0, 0 +/* 8039FFE8 0039CF48 41 82 00 14 */ beq lbl_8039FFFC +/* 8039FFEC 0039CF4C 80 03 00 04 */ lwz r0, 4(r3) +/* 8039FFF0 0039CF50 7C 1D 00 40 */ cmplw r29, r0 +/* 8039FFF4 0039CF54 40 82 00 08 */ bne lbl_8039FFFC +/* 8039FFF8 0039CF58 48 00 00 38 */ b lbl_803A0030 +lbl_8039FFFC: +/* 8039FFFC 0039CF5C 88 03 00 70 */ lbz r0, 0x70(r3) +/* 803A0000 0039CF60 38 84 00 01 */ addi r4, r4, 1 +/* 803A0004 0039CF64 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A0008 0039CF68 28 00 00 00 */ cmplwi r0, 0 +/* 803A000C 0039CF6C 41 82 00 14 */ beq lbl_803A0020 +/* 803A0010 0039CF70 80 03 00 04 */ lwz r0, 4(r3) +/* 803A0014 0039CF74 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0018 0039CF78 40 82 00 08 */ bne lbl_803A0020 +/* 803A001C 0039CF7C 48 00 00 14 */ b lbl_803A0030 +lbl_803A0020: +/* 803A0020 0039CF80 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A0024 0039CF84 38 84 00 01 */ addi r4, r4, 1 +/* 803A0028 0039CF88 42 00 FE E0 */ bdnz lbl_8039FF08 +/* 803A002C 0039CF8C 38 80 FF FF */ li r4, -1 +lbl_803A0030: +/* 803A0030 0039CF90 3C 04 00 01 */ addis r0, r4, 1 +/* 803A0034 0039CF94 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0038 0039CF98 41 82 04 C0 */ beq lbl_803A04F8 +/* 803A003C 0039CF9C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0040 0039CFA0 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A0044 0039CFA4 1F 84 00 64 */ mulli r28, r4, 0x64 +/* 803A0048 0039CFA8 3B A3 00 0C */ addi r29, r3, 0xc +/* 803A004C 0039CFAC 7C 1D E0 AE */ lbzx r0, r29, r28 +/* 803A0050 0039CFB0 28 00 00 03 */ cmplwi r0, 3 +/* 803A0054 0039CFB4 40 82 00 48 */ bne lbl_803A009C +/* 803A0058 0039CFB8 7C 63 E2 14 */ add r3, r3, r28 +/* 803A005C 0039CFBC 88 63 00 58 */ lbz r3, 0x58(r3) +/* 803A0060 0039CFC0 48 00 86 A9 */ bl sub_803a8708 +/* 803A0064 0039CFC4 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 803A0068 0039CFC8 3C 03 00 01 */ addis r0, r3, 1 +/* 803A006C 0039CFCC 38 84 13 F8 */ addi r4, r4, lbl_805513F8@l +/* 803A0070 0039CFD0 7C 84 E2 14 */ add r4, r4, r28 +/* 803A0074 0039CFD4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0078 0039CFD8 90 64 00 4C */ stw r3, 0x4c(r4) +/* 803A007C 0039CFDC 40 82 00 10 */ bne lbl_803A008C +/* 803A0080 0039CFE0 48 01 50 05 */ bl hwEnableIrq +/* 803A0084 0039CFE4 38 60 00 00 */ li r3, 0 +/* 803A0088 0039CFE8 48 00 04 78 */ b lbl_803A0500 +lbl_803A008C: +/* 803A008C 0039CFEC 38 60 00 00 */ li r3, 0 +/* 803A0090 0039CFF0 38 00 00 01 */ li r0, 1 +/* 803A0094 0039CFF4 90 64 00 20 */ stw r3, 0x20(r4) +/* 803A0098 0039CFF8 7C 1D E1 AE */ stbx r0, r29, r28 +lbl_803A009C: +/* 803A009C 0039CFFC 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A00A0 0039D000 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A00A4 0039D004 7F 83 E0 2E */ lwzx r28, r3, r28 +/* 803A00A8 0039D008 3C 1C 00 01 */ addis r0, r28, 1 +/* 803A00AC 0039D00C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A00B0 0039D010 41 82 04 44 */ beq lbl_803A04F4 +/* 803A00B4 0039D014 3B E0 00 00 */ li r31, 0 +/* 803A00B8 0039D018 48 01 50 05 */ bl hwDisableIrq +/* 803A00BC 0039D01C 38 00 00 08 */ li r0, 8 +/* 803A00C0 0039D020 7F C4 F3 78 */ mr r4, r30 +/* 803A00C4 0039D024 38 60 00 00 */ li r3, 0 +/* 803A00C8 0039D028 7C 09 03 A6 */ mtctr r0 +lbl_803A00CC: +/* 803A00CC 0039D02C 88 04 00 0C */ lbz r0, 0xc(r4) +/* 803A00D0 0039D030 28 00 00 00 */ cmplwi r0, 0 +/* 803A00D4 0039D034 41 82 00 14 */ beq lbl_803A00E8 +/* 803A00D8 0039D038 80 04 00 04 */ lwz r0, 4(r4) +/* 803A00DC 0039D03C 7C 1C 00 40 */ cmplw r28, r0 +/* 803A00E0 0039D040 40 82 00 08 */ bne lbl_803A00E8 +/* 803A00E4 0039D044 48 00 01 10 */ b lbl_803A01F4 +lbl_803A00E8: +/* 803A00E8 0039D048 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A00EC 0039D04C 38 63 00 01 */ addi r3, r3, 1 +/* 803A00F0 0039D050 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A00F4 0039D054 28 00 00 00 */ cmplwi r0, 0 +/* 803A00F8 0039D058 41 82 00 14 */ beq lbl_803A010C +/* 803A00FC 0039D05C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0100 0039D060 7C 1C 00 40 */ cmplw r28, r0 +/* 803A0104 0039D064 40 82 00 08 */ bne lbl_803A010C +/* 803A0108 0039D068 48 00 00 EC */ b lbl_803A01F4 +lbl_803A010C: +/* 803A010C 0039D06C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0110 0039D070 38 63 00 01 */ addi r3, r3, 1 +/* 803A0114 0039D074 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0118 0039D078 28 00 00 00 */ cmplwi r0, 0 +/* 803A011C 0039D07C 41 82 00 14 */ beq lbl_803A0130 +/* 803A0120 0039D080 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0124 0039D084 7C 1C 00 40 */ cmplw r28, r0 +/* 803A0128 0039D088 40 82 00 08 */ bne lbl_803A0130 +/* 803A012C 0039D08C 48 00 00 C8 */ b lbl_803A01F4 +lbl_803A0130: +/* 803A0130 0039D090 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0134 0039D094 38 63 00 01 */ addi r3, r3, 1 +/* 803A0138 0039D098 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A013C 0039D09C 28 00 00 00 */ cmplwi r0, 0 +/* 803A0140 0039D0A0 41 82 00 14 */ beq lbl_803A0154 +/* 803A0144 0039D0A4 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0148 0039D0A8 7C 1C 00 40 */ cmplw r28, r0 +/* 803A014C 0039D0AC 40 82 00 08 */ bne lbl_803A0154 +/* 803A0150 0039D0B0 48 00 00 A4 */ b lbl_803A01F4 +lbl_803A0154: +/* 803A0154 0039D0B4 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0158 0039D0B8 38 63 00 01 */ addi r3, r3, 1 +/* 803A015C 0039D0BC 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0160 0039D0C0 28 00 00 00 */ cmplwi r0, 0 +/* 803A0164 0039D0C4 41 82 00 14 */ beq lbl_803A0178 +/* 803A0168 0039D0C8 80 04 00 04 */ lwz r0, 4(r4) +/* 803A016C 0039D0CC 7C 1C 00 40 */ cmplw r28, r0 +/* 803A0170 0039D0D0 40 82 00 08 */ bne lbl_803A0178 +/* 803A0174 0039D0D4 48 00 00 80 */ b lbl_803A01F4 +lbl_803A0178: +/* 803A0178 0039D0D8 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A017C 0039D0DC 38 63 00 01 */ addi r3, r3, 1 +/* 803A0180 0039D0E0 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0184 0039D0E4 28 00 00 00 */ cmplwi r0, 0 +/* 803A0188 0039D0E8 41 82 00 14 */ beq lbl_803A019C +/* 803A018C 0039D0EC 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0190 0039D0F0 7C 1C 00 40 */ cmplw r28, r0 +/* 803A0194 0039D0F4 40 82 00 08 */ bne lbl_803A019C +/* 803A0198 0039D0F8 48 00 00 5C */ b lbl_803A01F4 +lbl_803A019C: +/* 803A019C 0039D0FC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A01A0 0039D100 38 63 00 01 */ addi r3, r3, 1 +/* 803A01A4 0039D104 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A01A8 0039D108 28 00 00 00 */ cmplwi r0, 0 +/* 803A01AC 0039D10C 41 82 00 14 */ beq lbl_803A01C0 +/* 803A01B0 0039D110 80 04 00 04 */ lwz r0, 4(r4) +/* 803A01B4 0039D114 7C 1C 00 40 */ cmplw r28, r0 +/* 803A01B8 0039D118 40 82 00 08 */ bne lbl_803A01C0 +/* 803A01BC 0039D11C 48 00 00 38 */ b lbl_803A01F4 +lbl_803A01C0: +/* 803A01C0 0039D120 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A01C4 0039D124 38 63 00 01 */ addi r3, r3, 1 +/* 803A01C8 0039D128 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A01CC 0039D12C 28 00 00 00 */ cmplwi r0, 0 +/* 803A01D0 0039D130 41 82 00 14 */ beq lbl_803A01E4 +/* 803A01D4 0039D134 80 04 00 04 */ lwz r0, 4(r4) +/* 803A01D8 0039D138 7C 1C 00 40 */ cmplw r28, r0 +/* 803A01DC 0039D13C 40 82 00 08 */ bne lbl_803A01E4 +/* 803A01E0 0039D140 48 00 00 14 */ b lbl_803A01F4 +lbl_803A01E4: +/* 803A01E4 0039D144 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A01E8 0039D148 38 63 00 01 */ addi r3, r3, 1 +/* 803A01EC 0039D14C 42 00 FE E0 */ bdnz lbl_803A00CC +/* 803A01F0 0039D150 38 60 FF FF */ li r3, -1 +lbl_803A01F4: +/* 803A01F4 0039D154 3C 03 00 01 */ addis r0, r3, 1 +/* 803A01F8 0039D158 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A01FC 0039D15C 41 82 02 EC */ beq lbl_803A04E8 +/* 803A0200 0039D160 1F 83 00 64 */ mulli r28, r3, 0x64 +/* 803A0204 0039D164 7C 1D E0 AE */ lbzx r0, r29, r28 +/* 803A0208 0039D168 28 00 00 03 */ cmplwi r0, 3 +/* 803A020C 0039D16C 40 82 00 50 */ bne lbl_803A025C +/* 803A0210 0039D170 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0214 0039D174 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 803A0218 0039D178 7C 60 E2 14 */ add r3, r0, r28 +/* 803A021C 0039D17C 88 63 00 58 */ lbz r3, 0x58(r3) +/* 803A0220 0039D180 48 00 84 E9 */ bl sub_803a8708 +/* 803A0224 0039D184 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 803A0228 0039D188 3C 03 00 01 */ addis r0, r3, 1 +/* 803A022C 0039D18C 38 84 13 F8 */ addi r4, r4, lbl_805513F8@l +/* 803A0230 0039D190 7C 84 E2 14 */ add r4, r4, r28 +/* 803A0234 0039D194 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0238 0039D198 90 64 00 4C */ stw r3, 0x4c(r4) +/* 803A023C 0039D19C 40 82 00 10 */ bne lbl_803A024C +/* 803A0240 0039D1A0 48 01 4E 45 */ bl hwEnableIrq +/* 803A0244 0039D1A4 3B E0 00 00 */ li r31, 0 +/* 803A0248 0039D1A8 48 00 02 A4 */ b lbl_803A04EC +lbl_803A024C: +/* 803A024C 0039D1AC 38 60 00 00 */ li r3, 0 +/* 803A0250 0039D1B0 38 00 00 01 */ li r0, 1 +/* 803A0254 0039D1B4 90 64 00 20 */ stw r3, 0x20(r4) +/* 803A0258 0039D1B8 7C 1D E1 AE */ stbx r0, r29, r28 +lbl_803A025C: +/* 803A025C 0039D1BC 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0260 0039D1C0 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A0264 0039D1C4 7F 83 E0 2E */ lwzx r28, r3, r28 +/* 803A0268 0039D1C8 3C 1C 00 01 */ addis r0, r28, 1 +/* 803A026C 0039D1CC 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0270 0039D1D0 41 82 02 74 */ beq lbl_803A04E4 +/* 803A0274 0039D1D4 3B E0 00 00 */ li r31, 0 +/* 803A0278 0039D1D8 48 01 4E 45 */ bl hwDisableIrq +/* 803A027C 0039D1DC 38 00 00 08 */ li r0, 8 +/* 803A0280 0039D1E0 38 60 00 00 */ li r3, 0 +/* 803A0284 0039D1E4 7C 09 03 A6 */ mtctr r0 +lbl_803A0288: +/* 803A0288 0039D1E8 88 1E 00 0C */ lbz r0, 0xc(r30) +/* 803A028C 0039D1EC 28 00 00 00 */ cmplwi r0, 0 +/* 803A0290 0039D1F0 41 82 00 14 */ beq lbl_803A02A4 +/* 803A0294 0039D1F4 80 1E 00 04 */ lwz r0, 4(r30) +/* 803A0298 0039D1F8 7C 1C 00 40 */ cmplw r28, r0 +/* 803A029C 0039D1FC 40 82 00 08 */ bne lbl_803A02A4 +/* 803A02A0 0039D200 48 00 01 10 */ b lbl_803A03B0 +lbl_803A02A4: +/* 803A02A4 0039D204 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 803A02A8 0039D208 38 63 00 01 */ addi r3, r3, 1 +/* 803A02AC 0039D20C 3B DE 00 64 */ addi r30, r30, 0x64 +/* 803A02B0 0039D210 28 00 00 00 */ cmplwi r0, 0 +/* 803A02B4 0039D214 41 82 00 14 */ beq lbl_803A02C8 +/* 803A02B8 0039D218 80 1E 00 04 */ lwz r0, 4(r30) +/* 803A02BC 0039D21C 7C 1C 00 40 */ cmplw r28, r0 +/* 803A02C0 0039D220 40 82 00 08 */ bne lbl_803A02C8 +/* 803A02C4 0039D224 48 00 00 EC */ b lbl_803A03B0 +lbl_803A02C8: +/* 803A02C8 0039D228 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 803A02CC 0039D22C 38 63 00 01 */ addi r3, r3, 1 +/* 803A02D0 0039D230 3B DE 00 64 */ addi r30, r30, 0x64 +/* 803A02D4 0039D234 28 00 00 00 */ cmplwi r0, 0 +/* 803A02D8 0039D238 41 82 00 14 */ beq lbl_803A02EC +/* 803A02DC 0039D23C 80 1E 00 04 */ lwz r0, 4(r30) +/* 803A02E0 0039D240 7C 1C 00 40 */ cmplw r28, r0 +/* 803A02E4 0039D244 40 82 00 08 */ bne lbl_803A02EC +/* 803A02E8 0039D248 48 00 00 C8 */ b lbl_803A03B0 +lbl_803A02EC: +/* 803A02EC 0039D24C 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 803A02F0 0039D250 38 63 00 01 */ addi r3, r3, 1 +/* 803A02F4 0039D254 3B DE 00 64 */ addi r30, r30, 0x64 +/* 803A02F8 0039D258 28 00 00 00 */ cmplwi r0, 0 +/* 803A02FC 0039D25C 41 82 00 14 */ beq lbl_803A0310 +/* 803A0300 0039D260 80 1E 00 04 */ lwz r0, 4(r30) +/* 803A0304 0039D264 7C 1C 00 40 */ cmplw r28, r0 +/* 803A0308 0039D268 40 82 00 08 */ bne lbl_803A0310 +/* 803A030C 0039D26C 48 00 00 A4 */ b lbl_803A03B0 +lbl_803A0310: +/* 803A0310 0039D270 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 803A0314 0039D274 38 63 00 01 */ addi r3, r3, 1 +/* 803A0318 0039D278 3B DE 00 64 */ addi r30, r30, 0x64 +/* 803A031C 0039D27C 28 00 00 00 */ cmplwi r0, 0 +/* 803A0320 0039D280 41 82 00 14 */ beq lbl_803A0334 +/* 803A0324 0039D284 80 1E 00 04 */ lwz r0, 4(r30) +/* 803A0328 0039D288 7C 1C 00 40 */ cmplw r28, r0 +/* 803A032C 0039D28C 40 82 00 08 */ bne lbl_803A0334 +/* 803A0330 0039D290 48 00 00 80 */ b lbl_803A03B0 +lbl_803A0334: +/* 803A0334 0039D294 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 803A0338 0039D298 38 63 00 01 */ addi r3, r3, 1 +/* 803A033C 0039D29C 3B DE 00 64 */ addi r30, r30, 0x64 +/* 803A0340 0039D2A0 28 00 00 00 */ cmplwi r0, 0 +/* 803A0344 0039D2A4 41 82 00 14 */ beq lbl_803A0358 +/* 803A0348 0039D2A8 80 1E 00 04 */ lwz r0, 4(r30) +/* 803A034C 0039D2AC 7C 1C 00 40 */ cmplw r28, r0 +/* 803A0350 0039D2B0 40 82 00 08 */ bne lbl_803A0358 +/* 803A0354 0039D2B4 48 00 00 5C */ b lbl_803A03B0 +lbl_803A0358: +/* 803A0358 0039D2B8 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 803A035C 0039D2BC 38 63 00 01 */ addi r3, r3, 1 +/* 803A0360 0039D2C0 3B DE 00 64 */ addi r30, r30, 0x64 +/* 803A0364 0039D2C4 28 00 00 00 */ cmplwi r0, 0 +/* 803A0368 0039D2C8 41 82 00 14 */ beq lbl_803A037C +/* 803A036C 0039D2CC 80 1E 00 04 */ lwz r0, 4(r30) +/* 803A0370 0039D2D0 7C 1C 00 40 */ cmplw r28, r0 +/* 803A0374 0039D2D4 40 82 00 08 */ bne lbl_803A037C +/* 803A0378 0039D2D8 48 00 00 38 */ b lbl_803A03B0 +lbl_803A037C: +/* 803A037C 0039D2DC 88 1E 00 70 */ lbz r0, 0x70(r30) +/* 803A0380 0039D2E0 38 63 00 01 */ addi r3, r3, 1 +/* 803A0384 0039D2E4 3B DE 00 64 */ addi r30, r30, 0x64 +/* 803A0388 0039D2E8 28 00 00 00 */ cmplwi r0, 0 +/* 803A038C 0039D2EC 41 82 00 14 */ beq lbl_803A03A0 +/* 803A0390 0039D2F0 80 1E 00 04 */ lwz r0, 4(r30) +/* 803A0394 0039D2F4 7C 1C 00 40 */ cmplw r28, r0 +/* 803A0398 0039D2F8 40 82 00 08 */ bne lbl_803A03A0 +/* 803A039C 0039D2FC 48 00 00 14 */ b lbl_803A03B0 +lbl_803A03A0: +/* 803A03A0 0039D300 3B DE 00 64 */ addi r30, r30, 0x64 +/* 803A03A4 0039D304 38 63 00 01 */ addi r3, r3, 1 +/* 803A03A8 0039D308 42 00 FE E0 */ bdnz lbl_803A0288 +/* 803A03AC 0039D30C 38 60 FF FF */ li r3, -1 +lbl_803A03B0: +/* 803A03B0 0039D310 3C 03 00 01 */ addis r0, r3, 1 +/* 803A03B4 0039D314 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A03B8 0039D318 41 82 01 24 */ beq lbl_803A04DC +/* 803A03BC 0039D31C 1F 83 00 64 */ mulli r28, r3, 0x64 +/* 803A03C0 0039D320 7C 1D E0 AE */ lbzx r0, r29, r28 +/* 803A03C4 0039D324 28 00 00 03 */ cmplwi r0, 3 +/* 803A03C8 0039D328 40 82 00 50 */ bne lbl_803A0418 +/* 803A03CC 0039D32C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A03D0 0039D330 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 803A03D4 0039D334 7C 60 E2 14 */ add r3, r0, r28 +/* 803A03D8 0039D338 88 63 00 58 */ lbz r3, 0x58(r3) +/* 803A03DC 0039D33C 48 00 83 2D */ bl sub_803a8708 +/* 803A03E0 0039D340 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 803A03E4 0039D344 3C 03 00 01 */ addis r0, r3, 1 +/* 803A03E8 0039D348 38 84 13 F8 */ addi r4, r4, lbl_805513F8@l +/* 803A03EC 0039D34C 7C 84 E2 14 */ add r4, r4, r28 +/* 803A03F0 0039D350 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A03F4 0039D354 90 64 00 4C */ stw r3, 0x4c(r4) +/* 803A03F8 0039D358 40 82 00 10 */ bne lbl_803A0408 +/* 803A03FC 0039D35C 48 01 4C 89 */ bl hwEnableIrq +/* 803A0400 0039D360 3B E0 00 00 */ li r31, 0 +/* 803A0404 0039D364 48 00 00 E4 */ b lbl_803A04E8 +lbl_803A0408: +/* 803A0408 0039D368 38 60 00 00 */ li r3, 0 +/* 803A040C 0039D36C 38 00 00 01 */ li r0, 1 +/* 803A0410 0039D370 90 64 00 20 */ stw r3, 0x20(r4) +/* 803A0414 0039D374 7C 1D E1 AE */ stbx r0, r29, r28 +lbl_803A0418: +/* 803A0418 0039D378 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A041C 0039D37C 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A0420 0039D380 7F 83 E0 2E */ lwzx r28, r3, r28 +/* 803A0424 0039D384 3C 1C 00 01 */ addis r0, r28, 1 +/* 803A0428 0039D388 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A042C 0039D38C 41 82 00 AC */ beq lbl_803A04D8 +/* 803A0430 0039D390 3B E0 00 00 */ li r31, 0 +/* 803A0434 0039D394 48 01 4C 89 */ bl hwDisableIrq +/* 803A0438 0039D398 7F 83 E3 78 */ mr r3, r28 +/* 803A043C 0039D39C 4B FF CE A5 */ bl GetPrivateIndex +/* 803A0440 0039D3A0 3C 03 00 01 */ addis r0, r3, 1 +/* 803A0444 0039D3A4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0448 0039D3A8 41 82 00 88 */ beq lbl_803A04D0 +/* 803A044C 0039D3AC 1F 83 00 64 */ mulli r28, r3, 0x64 +/* 803A0450 0039D3B0 7C 1D E0 AE */ lbzx r0, r29, r28 +/* 803A0454 0039D3B4 28 00 00 03 */ cmplwi r0, 3 +/* 803A0458 0039D3B8 40 82 00 50 */ bne lbl_803A04A8 +/* 803A045C 0039D3BC 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0460 0039D3C0 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 803A0464 0039D3C4 7C 60 E2 14 */ add r3, r0, r28 +/* 803A0468 0039D3C8 88 63 00 58 */ lbz r3, 0x58(r3) +/* 803A046C 0039D3CC 48 00 82 9D */ bl sub_803a8708 +/* 803A0470 0039D3D0 3C 80 80 55 */ lis r4, lbl_805513F8@ha +/* 803A0474 0039D3D4 3C 03 00 01 */ addis r0, r3, 1 +/* 803A0478 0039D3D8 38 84 13 F8 */ addi r4, r4, lbl_805513F8@l +/* 803A047C 0039D3DC 7C 84 E2 14 */ add r4, r4, r28 +/* 803A0480 0039D3E0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0484 0039D3E4 90 64 00 4C */ stw r3, 0x4c(r4) +/* 803A0488 0039D3E8 40 82 00 10 */ bne lbl_803A0498 +/* 803A048C 0039D3EC 48 01 4B F9 */ bl hwEnableIrq +/* 803A0490 0039D3F0 3B E0 00 00 */ li r31, 0 +/* 803A0494 0039D3F4 48 00 00 48 */ b lbl_803A04DC +lbl_803A0498: +/* 803A0498 0039D3F8 38 60 00 00 */ li r3, 0 +/* 803A049C 0039D3FC 38 00 00 01 */ li r0, 1 +/* 803A04A0 0039D400 90 64 00 20 */ stw r3, 0x20(r4) +/* 803A04A4 0039D404 7C 1D E1 AE */ stbx r0, r29, r28 +lbl_803A04A8: +/* 803A04A8 0039D408 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A04AC 0039D40C 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A04B0 0039D410 7C 63 E0 2E */ lwzx r3, r3, r28 +/* 803A04B4 0039D414 3C 03 00 01 */ addis r0, r3, 1 +/* 803A04B8 0039D418 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A04BC 0039D41C 41 82 00 10 */ beq lbl_803A04CC +/* 803A04C0 0039D420 4B FF FA 09 */ bl sndStreamActivate +/* 803A04C4 0039D424 7C 7F 1B 78 */ mr r31, r3 +/* 803A04C8 0039D428 48 00 00 08 */ b lbl_803A04D0 +lbl_803A04CC: +/* 803A04CC 0039D42C 3B E0 00 01 */ li r31, 1 +lbl_803A04D0: +/* 803A04D0 0039D430 48 01 4B B5 */ bl hwEnableIrq +/* 803A04D4 0039D434 48 00 00 08 */ b lbl_803A04DC +lbl_803A04D8: +/* 803A04D8 0039D438 3B E0 00 01 */ li r31, 1 +lbl_803A04DC: +/* 803A04DC 0039D43C 48 01 4B A9 */ bl hwEnableIrq +/* 803A04E0 0039D440 48 00 00 08 */ b lbl_803A04E8 +lbl_803A04E4: +/* 803A04E4 0039D444 3B E0 00 01 */ li r31, 1 +lbl_803A04E8: +/* 803A04E8 0039D448 48 01 4B 9D */ bl hwEnableIrq +lbl_803A04EC: +/* 803A04EC 0039D44C 7F FC FB 78 */ mr r28, r31 +/* 803A04F0 0039D450 48 00 00 08 */ b lbl_803A04F8 +lbl_803A04F4: +/* 803A04F4 0039D454 3B 80 00 01 */ li r28, 1 +lbl_803A04F8: +/* 803A04F8 0039D458 48 01 4B 8D */ bl hwEnableIrq +/* 803A04FC 0039D45C 7F 83 E3 78 */ mr r3, r28 +lbl_803A0500: +/* 803A0500 0039D460 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A0504 0039D464 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A0508 0039D468 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A050C 0039D46C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A0510 0039D470 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A0514 0039D474 7C 08 03 A6 */ mtlr r0 +/* 803A0518 0039D478 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A051C 0039D47C 4E 80 00 20 */ blr + +.global sndStreamDeactivate +sndStreamDeactivate: +/* 803A0520 0039D480 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A0524 0039D484 7C 08 02 A6 */ mflr r0 +/* 803A0528 0039D488 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A052C 0039D48C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A0530 0039D490 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A0534 0039D494 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A0538 0039D498 7C 7D 1B 78 */ mr r29, r3 +/* 803A053C 0039D49C 48 01 4B 81 */ bl hwDisableIrq +/* 803A0540 0039D4A0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0544 0039D4A4 38 00 00 08 */ li r0, 8 +/* 803A0548 0039D4A8 3B E3 13 F8 */ addi r31, r3, lbl_805513F8@l +/* 803A054C 0039D4AC 38 80 00 00 */ li r4, 0 +/* 803A0550 0039D4B0 7F E3 FB 78 */ mr r3, r31 +/* 803A0554 0039D4B4 7C 09 03 A6 */ mtctr r0 +lbl_803A0558: +/* 803A0558 0039D4B8 88 03 00 0C */ lbz r0, 0xc(r3) +/* 803A055C 0039D4BC 28 00 00 00 */ cmplwi r0, 0 +/* 803A0560 0039D4C0 41 82 00 14 */ beq lbl_803A0574 +/* 803A0564 0039D4C4 80 03 00 04 */ lwz r0, 4(r3) +/* 803A0568 0039D4C8 7C 1D 00 40 */ cmplw r29, r0 +/* 803A056C 0039D4CC 40 82 00 08 */ bne lbl_803A0574 +/* 803A0570 0039D4D0 48 00 01 10 */ b lbl_803A0680 +lbl_803A0574: +/* 803A0574 0039D4D4 88 03 00 70 */ lbz r0, 0x70(r3) +/* 803A0578 0039D4D8 38 84 00 01 */ addi r4, r4, 1 +/* 803A057C 0039D4DC 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A0580 0039D4E0 28 00 00 00 */ cmplwi r0, 0 +/* 803A0584 0039D4E4 41 82 00 14 */ beq lbl_803A0598 +/* 803A0588 0039D4E8 80 03 00 04 */ lwz r0, 4(r3) +/* 803A058C 0039D4EC 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0590 0039D4F0 40 82 00 08 */ bne lbl_803A0598 +/* 803A0594 0039D4F4 48 00 00 EC */ b lbl_803A0680 +lbl_803A0598: +/* 803A0598 0039D4F8 88 03 00 70 */ lbz r0, 0x70(r3) +/* 803A059C 0039D4FC 38 84 00 01 */ addi r4, r4, 1 +/* 803A05A0 0039D500 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A05A4 0039D504 28 00 00 00 */ cmplwi r0, 0 +/* 803A05A8 0039D508 41 82 00 14 */ beq lbl_803A05BC +/* 803A05AC 0039D50C 80 03 00 04 */ lwz r0, 4(r3) +/* 803A05B0 0039D510 7C 1D 00 40 */ cmplw r29, r0 +/* 803A05B4 0039D514 40 82 00 08 */ bne lbl_803A05BC +/* 803A05B8 0039D518 48 00 00 C8 */ b lbl_803A0680 +lbl_803A05BC: +/* 803A05BC 0039D51C 88 03 00 70 */ lbz r0, 0x70(r3) +/* 803A05C0 0039D520 38 84 00 01 */ addi r4, r4, 1 +/* 803A05C4 0039D524 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A05C8 0039D528 28 00 00 00 */ cmplwi r0, 0 +/* 803A05CC 0039D52C 41 82 00 14 */ beq lbl_803A05E0 +/* 803A05D0 0039D530 80 03 00 04 */ lwz r0, 4(r3) +/* 803A05D4 0039D534 7C 1D 00 40 */ cmplw r29, r0 +/* 803A05D8 0039D538 40 82 00 08 */ bne lbl_803A05E0 +/* 803A05DC 0039D53C 48 00 00 A4 */ b lbl_803A0680 +lbl_803A05E0: +/* 803A05E0 0039D540 88 03 00 70 */ lbz r0, 0x70(r3) +/* 803A05E4 0039D544 38 84 00 01 */ addi r4, r4, 1 +/* 803A05E8 0039D548 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A05EC 0039D54C 28 00 00 00 */ cmplwi r0, 0 +/* 803A05F0 0039D550 41 82 00 14 */ beq lbl_803A0604 +/* 803A05F4 0039D554 80 03 00 04 */ lwz r0, 4(r3) +/* 803A05F8 0039D558 7C 1D 00 40 */ cmplw r29, r0 +/* 803A05FC 0039D55C 40 82 00 08 */ bne lbl_803A0604 +/* 803A0600 0039D560 48 00 00 80 */ b lbl_803A0680 +lbl_803A0604: +/* 803A0604 0039D564 88 03 00 70 */ lbz r0, 0x70(r3) +/* 803A0608 0039D568 38 84 00 01 */ addi r4, r4, 1 +/* 803A060C 0039D56C 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A0610 0039D570 28 00 00 00 */ cmplwi r0, 0 +/* 803A0614 0039D574 41 82 00 14 */ beq lbl_803A0628 +/* 803A0618 0039D578 80 03 00 04 */ lwz r0, 4(r3) +/* 803A061C 0039D57C 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0620 0039D580 40 82 00 08 */ bne lbl_803A0628 +/* 803A0624 0039D584 48 00 00 5C */ b lbl_803A0680 +lbl_803A0628: +/* 803A0628 0039D588 88 03 00 70 */ lbz r0, 0x70(r3) +/* 803A062C 0039D58C 38 84 00 01 */ addi r4, r4, 1 +/* 803A0630 0039D590 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A0634 0039D594 28 00 00 00 */ cmplwi r0, 0 +/* 803A0638 0039D598 41 82 00 14 */ beq lbl_803A064C +/* 803A063C 0039D59C 80 03 00 04 */ lwz r0, 4(r3) +/* 803A0640 0039D5A0 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0644 0039D5A4 40 82 00 08 */ bne lbl_803A064C +/* 803A0648 0039D5A8 48 00 00 38 */ b lbl_803A0680 +lbl_803A064C: +/* 803A064C 0039D5AC 88 03 00 70 */ lbz r0, 0x70(r3) +/* 803A0650 0039D5B0 38 84 00 01 */ addi r4, r4, 1 +/* 803A0654 0039D5B4 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A0658 0039D5B8 28 00 00 00 */ cmplwi r0, 0 +/* 803A065C 0039D5BC 41 82 00 14 */ beq lbl_803A0670 +/* 803A0660 0039D5C0 80 03 00 04 */ lwz r0, 4(r3) +/* 803A0664 0039D5C4 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0668 0039D5C8 40 82 00 08 */ bne lbl_803A0670 +/* 803A066C 0039D5CC 48 00 00 14 */ b lbl_803A0680 +lbl_803A0670: +/* 803A0670 0039D5D0 38 63 00 64 */ addi r3, r3, 0x64 +/* 803A0674 0039D5D4 38 84 00 01 */ addi r4, r4, 1 +/* 803A0678 0039D5D8 42 00 FE E0 */ bdnz lbl_803A0558 +/* 803A067C 0039D5DC 38 80 FF FF */ li r4, -1 +lbl_803A0680: +/* 803A0680 0039D5E0 3C 04 00 01 */ addis r0, r4, 1 +/* 803A0684 0039D5E4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0688 0039D5E8 41 82 05 8C */ beq lbl_803A0C14 +/* 803A068C 0039D5EC 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0690 0039D5F0 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A0694 0039D5F4 1F A4 00 64 */ mulli r29, r4, 0x64 +/* 803A0698 0039D5F8 3B C3 00 0C */ addi r30, r3, 0xc +/* 803A069C 0039D5FC 7C 1E E8 AE */ lbzx r0, r30, r29 +/* 803A06A0 0039D600 28 00 00 01 */ cmplwi r0, 1 +/* 803A06A4 0039D604 41 82 00 0C */ beq lbl_803A06B0 +/* 803A06A8 0039D608 28 00 00 02 */ cmplwi r0, 2 +/* 803A06AC 0039D60C 40 82 00 20 */ bne lbl_803A06CC +lbl_803A06B0: +/* 803A06B0 0039D610 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A06B4 0039D614 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 803A06B8 0039D618 7C 60 EA 14 */ add r3, r0, r29 +/* 803A06BC 0039D61C 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 803A06C0 0039D620 48 00 81 45 */ bl voiceUnblock +/* 803A06C4 0039D624 38 00 00 03 */ li r0, 3 +/* 803A06C8 0039D628 7C 1E E9 AE */ stbx r0, r30, r29 +lbl_803A06CC: +/* 803A06CC 0039D62C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A06D0 0039D630 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A06D4 0039D634 7F A3 E8 2E */ lwzx r29, r3, r29 +/* 803A06D8 0039D638 3C 1D 00 01 */ addis r0, r29, 1 +/* 803A06DC 0039D63C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A06E0 0039D640 41 82 05 34 */ beq lbl_803A0C14 +/* 803A06E4 0039D644 48 01 49 D9 */ bl hwDisableIrq +/* 803A06E8 0039D648 38 00 00 08 */ li r0, 8 +/* 803A06EC 0039D64C 7F E4 FB 78 */ mr r4, r31 +/* 803A06F0 0039D650 38 60 00 00 */ li r3, 0 +/* 803A06F4 0039D654 7C 09 03 A6 */ mtctr r0 +lbl_803A06F8: +/* 803A06F8 0039D658 88 04 00 0C */ lbz r0, 0xc(r4) +/* 803A06FC 0039D65C 28 00 00 00 */ cmplwi r0, 0 +/* 803A0700 0039D660 41 82 00 14 */ beq lbl_803A0714 +/* 803A0704 0039D664 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0708 0039D668 7C 1D 00 40 */ cmplw r29, r0 +/* 803A070C 0039D66C 40 82 00 08 */ bne lbl_803A0714 +/* 803A0710 0039D670 48 00 01 10 */ b lbl_803A0820 +lbl_803A0714: +/* 803A0714 0039D674 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0718 0039D678 38 63 00 01 */ addi r3, r3, 1 +/* 803A071C 0039D67C 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0720 0039D680 28 00 00 00 */ cmplwi r0, 0 +/* 803A0724 0039D684 41 82 00 14 */ beq lbl_803A0738 +/* 803A0728 0039D688 80 04 00 04 */ lwz r0, 4(r4) +/* 803A072C 0039D68C 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0730 0039D690 40 82 00 08 */ bne lbl_803A0738 +/* 803A0734 0039D694 48 00 00 EC */ b lbl_803A0820 +lbl_803A0738: +/* 803A0738 0039D698 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A073C 0039D69C 38 63 00 01 */ addi r3, r3, 1 +/* 803A0740 0039D6A0 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0744 0039D6A4 28 00 00 00 */ cmplwi r0, 0 +/* 803A0748 0039D6A8 41 82 00 14 */ beq lbl_803A075C +/* 803A074C 0039D6AC 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0750 0039D6B0 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0754 0039D6B4 40 82 00 08 */ bne lbl_803A075C +/* 803A0758 0039D6B8 48 00 00 C8 */ b lbl_803A0820 +lbl_803A075C: +/* 803A075C 0039D6BC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0760 0039D6C0 38 63 00 01 */ addi r3, r3, 1 +/* 803A0764 0039D6C4 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0768 0039D6C8 28 00 00 00 */ cmplwi r0, 0 +/* 803A076C 0039D6CC 41 82 00 14 */ beq lbl_803A0780 +/* 803A0770 0039D6D0 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0774 0039D6D4 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0778 0039D6D8 40 82 00 08 */ bne lbl_803A0780 +/* 803A077C 0039D6DC 48 00 00 A4 */ b lbl_803A0820 +lbl_803A0780: +/* 803A0780 0039D6E0 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0784 0039D6E4 38 63 00 01 */ addi r3, r3, 1 +/* 803A0788 0039D6E8 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A078C 0039D6EC 28 00 00 00 */ cmplwi r0, 0 +/* 803A0790 0039D6F0 41 82 00 14 */ beq lbl_803A07A4 +/* 803A0794 0039D6F4 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0798 0039D6F8 7C 1D 00 40 */ cmplw r29, r0 +/* 803A079C 0039D6FC 40 82 00 08 */ bne lbl_803A07A4 +/* 803A07A0 0039D700 48 00 00 80 */ b lbl_803A0820 +lbl_803A07A4: +/* 803A07A4 0039D704 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A07A8 0039D708 38 63 00 01 */ addi r3, r3, 1 +/* 803A07AC 0039D70C 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A07B0 0039D710 28 00 00 00 */ cmplwi r0, 0 +/* 803A07B4 0039D714 41 82 00 14 */ beq lbl_803A07C8 +/* 803A07B8 0039D718 80 04 00 04 */ lwz r0, 4(r4) +/* 803A07BC 0039D71C 7C 1D 00 40 */ cmplw r29, r0 +/* 803A07C0 0039D720 40 82 00 08 */ bne lbl_803A07C8 +/* 803A07C4 0039D724 48 00 00 5C */ b lbl_803A0820 +lbl_803A07C8: +/* 803A07C8 0039D728 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A07CC 0039D72C 38 63 00 01 */ addi r3, r3, 1 +/* 803A07D0 0039D730 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A07D4 0039D734 28 00 00 00 */ cmplwi r0, 0 +/* 803A07D8 0039D738 41 82 00 14 */ beq lbl_803A07EC +/* 803A07DC 0039D73C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A07E0 0039D740 7C 1D 00 40 */ cmplw r29, r0 +/* 803A07E4 0039D744 40 82 00 08 */ bne lbl_803A07EC +/* 803A07E8 0039D748 48 00 00 38 */ b lbl_803A0820 +lbl_803A07EC: +/* 803A07EC 0039D74C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A07F0 0039D750 38 63 00 01 */ addi r3, r3, 1 +/* 803A07F4 0039D754 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A07F8 0039D758 28 00 00 00 */ cmplwi r0, 0 +/* 803A07FC 0039D75C 41 82 00 14 */ beq lbl_803A0810 +/* 803A0800 0039D760 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0804 0039D764 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0808 0039D768 40 82 00 08 */ bne lbl_803A0810 +/* 803A080C 0039D76C 48 00 00 14 */ b lbl_803A0820 +lbl_803A0810: +/* 803A0810 0039D770 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0814 0039D774 38 63 00 01 */ addi r3, r3, 1 +/* 803A0818 0039D778 42 00 FE E0 */ bdnz lbl_803A06F8 +/* 803A081C 0039D77C 38 60 FF FF */ li r3, -1 +lbl_803A0820: +/* 803A0820 0039D780 3C 03 00 01 */ addis r0, r3, 1 +/* 803A0824 0039D784 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0828 0039D788 41 82 03 E8 */ beq lbl_803A0C10 +/* 803A082C 0039D78C 1F A3 00 64 */ mulli r29, r3, 0x64 +/* 803A0830 0039D790 7C 1E E8 AE */ lbzx r0, r30, r29 +/* 803A0834 0039D794 28 00 00 01 */ cmplwi r0, 1 +/* 803A0838 0039D798 41 82 00 0C */ beq lbl_803A0844 +/* 803A083C 0039D79C 28 00 00 02 */ cmplwi r0, 2 +/* 803A0840 0039D7A0 40 82 00 20 */ bne lbl_803A0860 +lbl_803A0844: +/* 803A0844 0039D7A4 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0848 0039D7A8 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 803A084C 0039D7AC 7C 60 EA 14 */ add r3, r0, r29 +/* 803A0850 0039D7B0 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 803A0854 0039D7B4 48 00 7F B1 */ bl voiceUnblock +/* 803A0858 0039D7B8 38 00 00 03 */ li r0, 3 +/* 803A085C 0039D7BC 7C 1E E9 AE */ stbx r0, r30, r29 +lbl_803A0860: +/* 803A0860 0039D7C0 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0864 0039D7C4 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A0868 0039D7C8 7F A3 E8 2E */ lwzx r29, r3, r29 +/* 803A086C 0039D7CC 3C 1D 00 01 */ addis r0, r29, 1 +/* 803A0870 0039D7D0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0874 0039D7D4 41 82 03 9C */ beq lbl_803A0C10 +/* 803A0878 0039D7D8 48 01 48 45 */ bl hwDisableIrq +/* 803A087C 0039D7DC 38 00 00 08 */ li r0, 8 +/* 803A0880 0039D7E0 7F E4 FB 78 */ mr r4, r31 +/* 803A0884 0039D7E4 38 60 00 00 */ li r3, 0 +/* 803A0888 0039D7E8 7C 09 03 A6 */ mtctr r0 +lbl_803A088C: +/* 803A088C 0039D7EC 88 04 00 0C */ lbz r0, 0xc(r4) +/* 803A0890 0039D7F0 28 00 00 00 */ cmplwi r0, 0 +/* 803A0894 0039D7F4 41 82 00 14 */ beq lbl_803A08A8 +/* 803A0898 0039D7F8 80 04 00 04 */ lwz r0, 4(r4) +/* 803A089C 0039D7FC 7C 1D 00 40 */ cmplw r29, r0 +/* 803A08A0 0039D800 40 82 00 08 */ bne lbl_803A08A8 +/* 803A08A4 0039D804 48 00 01 10 */ b lbl_803A09B4 +lbl_803A08A8: +/* 803A08A8 0039D808 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A08AC 0039D80C 38 63 00 01 */ addi r3, r3, 1 +/* 803A08B0 0039D810 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A08B4 0039D814 28 00 00 00 */ cmplwi r0, 0 +/* 803A08B8 0039D818 41 82 00 14 */ beq lbl_803A08CC +/* 803A08BC 0039D81C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A08C0 0039D820 7C 1D 00 40 */ cmplw r29, r0 +/* 803A08C4 0039D824 40 82 00 08 */ bne lbl_803A08CC +/* 803A08C8 0039D828 48 00 00 EC */ b lbl_803A09B4 +lbl_803A08CC: +/* 803A08CC 0039D82C 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A08D0 0039D830 38 63 00 01 */ addi r3, r3, 1 +/* 803A08D4 0039D834 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A08D8 0039D838 28 00 00 00 */ cmplwi r0, 0 +/* 803A08DC 0039D83C 41 82 00 14 */ beq lbl_803A08F0 +/* 803A08E0 0039D840 80 04 00 04 */ lwz r0, 4(r4) +/* 803A08E4 0039D844 7C 1D 00 40 */ cmplw r29, r0 +/* 803A08E8 0039D848 40 82 00 08 */ bne lbl_803A08F0 +/* 803A08EC 0039D84C 48 00 00 C8 */ b lbl_803A09B4 +lbl_803A08F0: +/* 803A08F0 0039D850 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A08F4 0039D854 38 63 00 01 */ addi r3, r3, 1 +/* 803A08F8 0039D858 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A08FC 0039D85C 28 00 00 00 */ cmplwi r0, 0 +/* 803A0900 0039D860 41 82 00 14 */ beq lbl_803A0914 +/* 803A0904 0039D864 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0908 0039D868 7C 1D 00 40 */ cmplw r29, r0 +/* 803A090C 0039D86C 40 82 00 08 */ bne lbl_803A0914 +/* 803A0910 0039D870 48 00 00 A4 */ b lbl_803A09B4 +lbl_803A0914: +/* 803A0914 0039D874 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0918 0039D878 38 63 00 01 */ addi r3, r3, 1 +/* 803A091C 0039D87C 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0920 0039D880 28 00 00 00 */ cmplwi r0, 0 +/* 803A0924 0039D884 41 82 00 14 */ beq lbl_803A0938 +/* 803A0928 0039D888 80 04 00 04 */ lwz r0, 4(r4) +/* 803A092C 0039D88C 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0930 0039D890 40 82 00 08 */ bne lbl_803A0938 +/* 803A0934 0039D894 48 00 00 80 */ b lbl_803A09B4 +lbl_803A0938: +/* 803A0938 0039D898 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A093C 0039D89C 38 63 00 01 */ addi r3, r3, 1 +/* 803A0940 0039D8A0 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0944 0039D8A4 28 00 00 00 */ cmplwi r0, 0 +/* 803A0948 0039D8A8 41 82 00 14 */ beq lbl_803A095C +/* 803A094C 0039D8AC 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0950 0039D8B0 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0954 0039D8B4 40 82 00 08 */ bne lbl_803A095C +/* 803A0958 0039D8B8 48 00 00 5C */ b lbl_803A09B4 +lbl_803A095C: +/* 803A095C 0039D8BC 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0960 0039D8C0 38 63 00 01 */ addi r3, r3, 1 +/* 803A0964 0039D8C4 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A0968 0039D8C8 28 00 00 00 */ cmplwi r0, 0 +/* 803A096C 0039D8CC 41 82 00 14 */ beq lbl_803A0980 +/* 803A0970 0039D8D0 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0974 0039D8D4 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0978 0039D8D8 40 82 00 08 */ bne lbl_803A0980 +/* 803A097C 0039D8DC 48 00 00 38 */ b lbl_803A09B4 +lbl_803A0980: +/* 803A0980 0039D8E0 88 04 00 70 */ lbz r0, 0x70(r4) +/* 803A0984 0039D8E4 38 63 00 01 */ addi r3, r3, 1 +/* 803A0988 0039D8E8 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A098C 0039D8EC 28 00 00 00 */ cmplwi r0, 0 +/* 803A0990 0039D8F0 41 82 00 14 */ beq lbl_803A09A4 +/* 803A0994 0039D8F4 80 04 00 04 */ lwz r0, 4(r4) +/* 803A0998 0039D8F8 7C 1D 00 40 */ cmplw r29, r0 +/* 803A099C 0039D8FC 40 82 00 08 */ bne lbl_803A09A4 +/* 803A09A0 0039D900 48 00 00 14 */ b lbl_803A09B4 +lbl_803A09A4: +/* 803A09A4 0039D904 38 84 00 64 */ addi r4, r4, 0x64 +/* 803A09A8 0039D908 38 63 00 01 */ addi r3, r3, 1 +/* 803A09AC 0039D90C 42 00 FE E0 */ bdnz lbl_803A088C +/* 803A09B0 0039D910 38 60 FF FF */ li r3, -1 +lbl_803A09B4: +/* 803A09B4 0039D914 3C 03 00 01 */ addis r0, r3, 1 +/* 803A09B8 0039D918 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A09BC 0039D91C 41 82 02 50 */ beq lbl_803A0C0C +/* 803A09C0 0039D920 1F A3 00 64 */ mulli r29, r3, 0x64 +/* 803A09C4 0039D924 7C 1E E8 AE */ lbzx r0, r30, r29 +/* 803A09C8 0039D928 28 00 00 01 */ cmplwi r0, 1 +/* 803A09CC 0039D92C 41 82 00 0C */ beq lbl_803A09D8 +/* 803A09D0 0039D930 28 00 00 02 */ cmplwi r0, 2 +/* 803A09D4 0039D934 40 82 00 20 */ bne lbl_803A09F4 +lbl_803A09D8: +/* 803A09D8 0039D938 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A09DC 0039D93C 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 803A09E0 0039D940 7C 60 EA 14 */ add r3, r0, r29 +/* 803A09E4 0039D944 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 803A09E8 0039D948 48 00 7E 1D */ bl voiceUnblock +/* 803A09EC 0039D94C 38 00 00 03 */ li r0, 3 +/* 803A09F0 0039D950 7C 1E E9 AE */ stbx r0, r30, r29 +lbl_803A09F4: +/* 803A09F4 0039D954 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A09F8 0039D958 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A09FC 0039D95C 7F A3 E8 2E */ lwzx r29, r3, r29 +/* 803A0A00 0039D960 3C 1D 00 01 */ addis r0, r29, 1 +/* 803A0A04 0039D964 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0A08 0039D968 41 82 02 04 */ beq lbl_803A0C0C +/* 803A0A0C 0039D96C 48 01 46 B1 */ bl hwDisableIrq +/* 803A0A10 0039D970 38 00 00 08 */ li r0, 8 +/* 803A0A14 0039D974 38 60 00 00 */ li r3, 0 +/* 803A0A18 0039D978 7C 09 03 A6 */ mtctr r0 +lbl_803A0A1C: +/* 803A0A1C 0039D97C 88 1F 00 0C */ lbz r0, 0xc(r31) +/* 803A0A20 0039D980 28 00 00 00 */ cmplwi r0, 0 +/* 803A0A24 0039D984 41 82 00 14 */ beq lbl_803A0A38 +/* 803A0A28 0039D988 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A0A2C 0039D98C 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0A30 0039D990 40 82 00 08 */ bne lbl_803A0A38 +/* 803A0A34 0039D994 48 00 01 10 */ b lbl_803A0B44 +lbl_803A0A38: +/* 803A0A38 0039D998 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 803A0A3C 0039D99C 38 63 00 01 */ addi r3, r3, 1 +/* 803A0A40 0039D9A0 3B FF 00 64 */ addi r31, r31, 0x64 +/* 803A0A44 0039D9A4 28 00 00 00 */ cmplwi r0, 0 +/* 803A0A48 0039D9A8 41 82 00 14 */ beq lbl_803A0A5C +/* 803A0A4C 0039D9AC 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A0A50 0039D9B0 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0A54 0039D9B4 40 82 00 08 */ bne lbl_803A0A5C +/* 803A0A58 0039D9B8 48 00 00 EC */ b lbl_803A0B44 +lbl_803A0A5C: +/* 803A0A5C 0039D9BC 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 803A0A60 0039D9C0 38 63 00 01 */ addi r3, r3, 1 +/* 803A0A64 0039D9C4 3B FF 00 64 */ addi r31, r31, 0x64 +/* 803A0A68 0039D9C8 28 00 00 00 */ cmplwi r0, 0 +/* 803A0A6C 0039D9CC 41 82 00 14 */ beq lbl_803A0A80 +/* 803A0A70 0039D9D0 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A0A74 0039D9D4 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0A78 0039D9D8 40 82 00 08 */ bne lbl_803A0A80 +/* 803A0A7C 0039D9DC 48 00 00 C8 */ b lbl_803A0B44 +lbl_803A0A80: +/* 803A0A80 0039D9E0 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 803A0A84 0039D9E4 38 63 00 01 */ addi r3, r3, 1 +/* 803A0A88 0039D9E8 3B FF 00 64 */ addi r31, r31, 0x64 +/* 803A0A8C 0039D9EC 28 00 00 00 */ cmplwi r0, 0 +/* 803A0A90 0039D9F0 41 82 00 14 */ beq lbl_803A0AA4 +/* 803A0A94 0039D9F4 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A0A98 0039D9F8 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0A9C 0039D9FC 40 82 00 08 */ bne lbl_803A0AA4 +/* 803A0AA0 0039DA00 48 00 00 A4 */ b lbl_803A0B44 +lbl_803A0AA4: +/* 803A0AA4 0039DA04 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 803A0AA8 0039DA08 38 63 00 01 */ addi r3, r3, 1 +/* 803A0AAC 0039DA0C 3B FF 00 64 */ addi r31, r31, 0x64 +/* 803A0AB0 0039DA10 28 00 00 00 */ cmplwi r0, 0 +/* 803A0AB4 0039DA14 41 82 00 14 */ beq lbl_803A0AC8 +/* 803A0AB8 0039DA18 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A0ABC 0039DA1C 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0AC0 0039DA20 40 82 00 08 */ bne lbl_803A0AC8 +/* 803A0AC4 0039DA24 48 00 00 80 */ b lbl_803A0B44 +lbl_803A0AC8: +/* 803A0AC8 0039DA28 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 803A0ACC 0039DA2C 38 63 00 01 */ addi r3, r3, 1 +/* 803A0AD0 0039DA30 3B FF 00 64 */ addi r31, r31, 0x64 +/* 803A0AD4 0039DA34 28 00 00 00 */ cmplwi r0, 0 +/* 803A0AD8 0039DA38 41 82 00 14 */ beq lbl_803A0AEC +/* 803A0ADC 0039DA3C 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A0AE0 0039DA40 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0AE4 0039DA44 40 82 00 08 */ bne lbl_803A0AEC +/* 803A0AE8 0039DA48 48 00 00 5C */ b lbl_803A0B44 +lbl_803A0AEC: +/* 803A0AEC 0039DA4C 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 803A0AF0 0039DA50 38 63 00 01 */ addi r3, r3, 1 +/* 803A0AF4 0039DA54 3B FF 00 64 */ addi r31, r31, 0x64 +/* 803A0AF8 0039DA58 28 00 00 00 */ cmplwi r0, 0 +/* 803A0AFC 0039DA5C 41 82 00 14 */ beq lbl_803A0B10 +/* 803A0B00 0039DA60 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A0B04 0039DA64 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0B08 0039DA68 40 82 00 08 */ bne lbl_803A0B10 +/* 803A0B0C 0039DA6C 48 00 00 38 */ b lbl_803A0B44 +lbl_803A0B10: +/* 803A0B10 0039DA70 88 1F 00 70 */ lbz r0, 0x70(r31) +/* 803A0B14 0039DA74 38 63 00 01 */ addi r3, r3, 1 +/* 803A0B18 0039DA78 3B FF 00 64 */ addi r31, r31, 0x64 +/* 803A0B1C 0039DA7C 28 00 00 00 */ cmplwi r0, 0 +/* 803A0B20 0039DA80 41 82 00 14 */ beq lbl_803A0B34 +/* 803A0B24 0039DA84 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A0B28 0039DA88 7C 1D 00 40 */ cmplw r29, r0 +/* 803A0B2C 0039DA8C 40 82 00 08 */ bne lbl_803A0B34 +/* 803A0B30 0039DA90 48 00 00 14 */ b lbl_803A0B44 +lbl_803A0B34: +/* 803A0B34 0039DA94 3B FF 00 64 */ addi r31, r31, 0x64 +/* 803A0B38 0039DA98 38 63 00 01 */ addi r3, r3, 1 +/* 803A0B3C 0039DA9C 42 00 FE E0 */ bdnz lbl_803A0A1C +/* 803A0B40 0039DAA0 38 60 FF FF */ li r3, -1 +lbl_803A0B44: +/* 803A0B44 0039DAA4 3C 03 00 01 */ addis r0, r3, 1 +/* 803A0B48 0039DAA8 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0B4C 0039DAAC 41 82 00 BC */ beq lbl_803A0C08 +/* 803A0B50 0039DAB0 1F A3 00 64 */ mulli r29, r3, 0x64 +/* 803A0B54 0039DAB4 7C 1E E8 AE */ lbzx r0, r30, r29 +/* 803A0B58 0039DAB8 28 00 00 01 */ cmplwi r0, 1 +/* 803A0B5C 0039DABC 41 82 00 0C */ beq lbl_803A0B68 +/* 803A0B60 0039DAC0 28 00 00 02 */ cmplwi r0, 2 +/* 803A0B64 0039DAC4 40 82 00 20 */ bne lbl_803A0B84 +lbl_803A0B68: +/* 803A0B68 0039DAC8 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0B6C 0039DACC 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 803A0B70 0039DAD0 7C 60 EA 14 */ add r3, r0, r29 +/* 803A0B74 0039DAD4 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 803A0B78 0039DAD8 48 00 7C 8D */ bl voiceUnblock +/* 803A0B7C 0039DADC 38 00 00 03 */ li r0, 3 +/* 803A0B80 0039DAE0 7C 1E E9 AE */ stbx r0, r30, r29 +lbl_803A0B84: +/* 803A0B84 0039DAE4 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0B88 0039DAE8 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A0B8C 0039DAEC 7F A3 E8 2E */ lwzx r29, r3, r29 +/* 803A0B90 0039DAF0 3C 1D 00 01 */ addis r0, r29, 1 +/* 803A0B94 0039DAF4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0B98 0039DAF8 41 82 00 70 */ beq lbl_803A0C08 +/* 803A0B9C 0039DAFC 48 01 45 21 */ bl hwDisableIrq +/* 803A0BA0 0039DB00 7F A3 EB 78 */ mr r3, r29 +/* 803A0BA4 0039DB04 4B FF C7 3D */ bl GetPrivateIndex +/* 803A0BA8 0039DB08 3C 03 00 01 */ addis r0, r3, 1 +/* 803A0BAC 0039DB0C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0BB0 0039DB10 41 82 00 54 */ beq lbl_803A0C04 +/* 803A0BB4 0039DB14 1F A3 00 64 */ mulli r29, r3, 0x64 +/* 803A0BB8 0039DB18 7C 1E E8 AE */ lbzx r0, r30, r29 +/* 803A0BBC 0039DB1C 28 00 00 01 */ cmplwi r0, 1 +/* 803A0BC0 0039DB20 41 82 00 0C */ beq lbl_803A0BCC +/* 803A0BC4 0039DB24 28 00 00 02 */ cmplwi r0, 2 +/* 803A0BC8 0039DB28 40 82 00 20 */ bne lbl_803A0BE8 +lbl_803A0BCC: +/* 803A0BCC 0039DB2C 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0BD0 0039DB30 38 03 13 F8 */ addi r0, r3, lbl_805513F8@l +/* 803A0BD4 0039DB34 7C 60 EA 14 */ add r3, r0, r29 +/* 803A0BD8 0039DB38 80 63 00 4C */ lwz r3, 0x4c(r3) +/* 803A0BDC 0039DB3C 48 00 7C 29 */ bl voiceUnblock +/* 803A0BE0 0039DB40 38 00 00 03 */ li r0, 3 +/* 803A0BE4 0039DB44 7C 1E E9 AE */ stbx r0, r30, r29 +lbl_803A0BE8: +/* 803A0BE8 0039DB48 3C 60 80 55 */ lis r3, lbl_805513F8@ha +/* 803A0BEC 0039DB4C 38 63 13 F8 */ addi r3, r3, lbl_805513F8@l +/* 803A0BF0 0039DB50 7C 63 E8 2E */ lwzx r3, r3, r29 +/* 803A0BF4 0039DB54 3C 03 00 01 */ addis r0, r3, 1 +/* 803A0BF8 0039DB58 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A0BFC 0039DB5C 41 82 00 08 */ beq lbl_803A0C04 +/* 803A0C00 0039DB60 4B FF F9 21 */ bl sndStreamDeactivate +lbl_803A0C04: +/* 803A0C04 0039DB64 48 01 44 81 */ bl hwEnableIrq +lbl_803A0C08: +/* 803A0C08 0039DB68 48 01 44 7D */ bl hwEnableIrq +lbl_803A0C0C: +/* 803A0C0C 0039DB6C 48 01 44 79 */ bl hwEnableIrq +lbl_803A0C10: +/* 803A0C10 0039DB70 48 01 44 75 */ bl hwEnableIrq +lbl_803A0C14: +/* 803A0C14 0039DB74 48 01 44 71 */ bl hwEnableIrq +/* 803A0C18 0039DB78 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A0C1C 0039DB7C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A0C20 0039DB80 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A0C24 0039DB84 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A0C28 0039DB88 7C 08 03 A6 */ mtlr r0 +/* 803A0C2C 0039DB8C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A0C30 0039DB90 4E 80 00 20 */ blr diff --git a/asm/musyx/synth.s b/asm/musyx/synth.s new file mode 100644 index 00000000..59cc1027 --- /dev/null +++ b/asm/musyx/synth.s @@ -0,0 +1,3634 @@ +.include "macros.inc" + +.section .text, "ax" + +.global synthSetBpm +synthSetBpm: +/* 80398CA0 00395C00 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 80398CA4 00395C04 28 00 00 FF */ cmplwi r0, 0xff +/* 80398CA8 00395C08 40 82 00 08 */ bne lbl_80398CB0 +/* 80398CAC 00395C0C 38 80 00 08 */ li r4, 8 +lbl_80398CB0: +/* 80398CB0 00395C10 54 60 18 38 */ slwi r0, r3, 3 +/* 80398CB4 00395C14 3C C0 88 89 */ lis r6, 0x88888889@ha +/* 80398CB8 00395C18 1C 00 06 00 */ mulli r0, r0, 0x600 +/* 80398CBC 00395C1C 3C 60 80 55 */ lis r3, lbl_8054FE10@ha +/* 80398CC0 00395C20 38 C6 88 89 */ addi r6, r6, 0x88888889@l +/* 80398CC4 00395C24 54 84 34 B2 */ rlwinm r4, r4, 6, 0x12, 0x19 +/* 80398CC8 00395C28 7C C6 00 16 */ mulhwu r6, r6, r0 +/* 80398CCC 00395C2C 38 63 FE 10 */ addi r3, r3, lbl_8054FE10@l +/* 80398CD0 00395C30 54 A0 15 BA */ rlwinm r0, r5, 2, 0x16, 0x1d +/* 80398CD4 00395C34 7C 63 22 14 */ add r3, r3, r4 +/* 80398CD8 00395C38 54 C4 C9 FE */ srwi r4, r6, 7 +/* 80398CDC 00395C3C 7C 83 01 2E */ stwx r4, r3, r0 +/* 80398CE0 00395C40 4E 80 00 20 */ blr + +.global synthGetTicksPerSecond +synthGetTicksPerSecond: +/* 80398CE4 00395C44 88 03 01 22 */ lbz r0, 0x122(r3) +/* 80398CE8 00395C48 38 80 00 08 */ li r4, 8 +/* 80398CEC 00395C4C 28 00 00 FF */ cmplwi r0, 0xff +/* 80398CF0 00395C50 41 82 00 08 */ beq lbl_80398CF8 +/* 80398CF4 00395C54 7C 04 03 78 */ mr r4, r0 +lbl_80398CF8: +/* 80398CF8 00395C58 88 03 01 23 */ lbz r0, 0x123(r3) +/* 80398CFC 00395C5C 3C 60 80 55 */ lis r3, lbl_8054FE10@ha +/* 80398D00 00395C60 54 84 30 32 */ slwi r4, r4, 6 +/* 80398D04 00395C64 38 63 FE 10 */ addi r3, r3, lbl_8054FE10@l +/* 80398D08 00395C68 54 00 10 3A */ slwi r0, r0, 2 +/* 80398D0C 00395C6C 7C 63 22 14 */ add r3, r3, r4 +/* 80398D10 00395C70 7C 63 00 2E */ lwzx r3, r3, r0 +/* 80398D14 00395C74 4E 80 00 20 */ blr + +.global synthInitPortamento +synthInitPortamento: +/* 80398D18 00395C78 80 83 01 14 */ lwz r4, 0x114(r3) +/* 80398D1C 00395C7C 38 C0 00 00 */ li r6, 0 +/* 80398D20 00395C80 80 E3 01 18 */ lwz r7, 0x118(r3) +/* 80398D24 00395C84 3C 00 00 02 */ lis r0, 2 +/* 80398D28 00395C88 7C 85 30 38 */ and r5, r4, r6 +/* 80398D2C 00395C8C 7C E0 00 38 */ and r0, r7, r0 +/* 80398D30 00395C90 7C 04 32 78 */ xor r4, r0, r6 +/* 80398D34 00395C94 7C A0 32 78 */ xor r0, r5, r6 +/* 80398D38 00395C98 7C 80 03 79 */ or. r0, r4, r0 +/* 80398D3C 00395C9C 4C 82 00 20 */ bnelr +/* 80398D40 00395CA0 88 03 01 31 */ lbz r0, 0x131(r3) +/* 80398D44 00395CA4 28 00 00 01 */ cmplwi r0, 1 +/* 80398D48 00395CA8 40 82 00 30 */ bne lbl_80398D78 +/* 80398D4C 00395CAC 38 80 10 00 */ li r4, 0x1000 +/* 80398D50 00395CB0 7C A0 32 78 */ xor r0, r5, r6 +/* 80398D54 00395CB4 7C E4 20 38 */ and r4, r7, r4 +/* 80398D58 00395CB8 7C 84 32 78 */ xor r4, r4, r6 +/* 80398D5C 00395CBC 7C 80 03 79 */ or. r0, r4, r0 +/* 80398D60 00395CC0 40 82 00 0C */ bne lbl_80398D6C +/* 80398D64 00395CC4 90 C3 01 3C */ stw r6, 0x13c(r3) +/* 80398D68 00395CC8 48 00 00 18 */ b lbl_80398D80 +lbl_80398D6C: +/* 80398D6C 00395CCC 80 03 01 34 */ lwz r0, 0x134(r3) +/* 80398D70 00395CD0 90 03 01 3C */ stw r0, 0x13c(r3) +/* 80398D74 00395CD4 48 00 00 0C */ b lbl_80398D80 +lbl_80398D78: +/* 80398D78 00395CD8 80 03 01 34 */ lwz r0, 0x134(r3) +/* 80398D7C 00395CDC 90 03 01 3C */ stw r0, 0x13c(r3) +lbl_80398D80: +/* 80398D80 00395CE0 88 03 01 30 */ lbz r0, 0x130(r3) +/* 80398D84 00395CE4 54 00 80 1E */ slwi r0, r0, 0x10 +/* 80398D88 00395CE8 90 03 01 38 */ stw r0, 0x138(r3) +/* 80398D8C 00395CEC 4E 80 00 20 */ blr + +.global do_voice_portamento +do_voice_portamento: +/* 80398D90 00395CF0 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 80398D94 00395CF4 7C 08 02 A6 */ mflr r0 +/* 80398D98 00395CF8 90 01 00 44 */ stw r0, 0x44(r1) +/* 80398D9C 00395CFC 39 61 00 40 */ addi r11, r1, 0x40 +/* 80398DA0 00395D00 4B FF 0C B9 */ bl func_80389A58 +/* 80398DA4 00395D04 7C 72 1B 78 */ mr r18, r3 +/* 80398DA8 00395D08 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 80398DAC 00395D0C 83 2D AE 78 */ lwz r25, lbl_805A9A38@sda21(r13) +/* 80398DB0 00395D10 7C 93 23 78 */ mr r19, r4 +/* 80398DB4 00395D14 7C B4 2B 78 */ mr r20, r5 +/* 80398DB8 00395D18 7C D5 33 78 */ mr r21, r6 +/* 80398DBC 00395D1C 7C F6 3B 78 */ mr r22, r7 +/* 80398DC0 00395D20 56 5D 06 3E */ clrlwi r29, r18, 0x18 +/* 80398DC4 00395D24 3B E3 00 50 */ addi r31, r3, lbl_80550050@l +/* 80398DC8 00395D28 3A E0 00 00 */ li r23, 0 +/* 80398DCC 00395D2C 3B 60 FF FF */ li r27, -1 +/* 80398DD0 00395D30 3B 80 00 00 */ li r28, 0 +/* 80398DD4 00395D34 3B C0 00 00 */ li r30, 0 +/* 80398DD8 00395D38 48 00 01 F8 */ b lbl_80398FD0 +lbl_80398DDC: +/* 80398DDC 00395D3C 88 19 01 1C */ lbz r0, 0x11c(r25) +/* 80398DE0 00395D40 28 00 00 00 */ cmplwi r0, 0 +/* 80398DE4 00395D44 40 82 01 E0 */ bne lbl_80398FC4 +/* 80398DE8 00395D48 80 79 00 F4 */ lwz r3, 0xf4(r25) +/* 80398DEC 00395D4C 3C 03 00 01 */ addis r0, r3, 1 +/* 80398DF0 00395D50 28 00 FF FF */ cmplwi r0, 0xffff +/* 80398DF4 00395D54 41 82 01 D0 */ beq lbl_80398FC4 +/* 80398DF8 00395D58 88 79 01 21 */ lbz r3, 0x121(r25) +/* 80398DFC 00395D5C 56 60 06 3E */ clrlwi r0, r19, 0x18 +/* 80398E00 00395D60 7C 03 00 40 */ cmplw r3, r0 +/* 80398E04 00395D64 40 82 01 C0 */ bne lbl_80398FC4 +/* 80398E08 00395D68 88 79 01 22 */ lbz r3, 0x122(r25) +/* 80398E0C 00395D6C 56 80 06 3E */ clrlwi r0, r20, 0x18 +/* 80398E10 00395D70 7C 03 00 40 */ cmplw r3, r0 +/* 80398E14 00395D74 40 82 01 B0 */ bne lbl_80398FC4 +/* 80398E18 00395D78 80 19 01 14 */ lwz r0, 0x114(r25) +/* 80398E1C 00395D7C 38 C0 00 00 */ li r6, 0 +/* 80398E20 00395D80 80 79 01 18 */ lwz r3, 0x118(r25) +/* 80398E24 00395D84 38 A0 00 02 */ li r5, 2 +/* 80398E28 00395D88 7C 04 30 38 */ and r4, r0, r6 +/* 80398E2C 00395D8C 7C 65 28 38 */ and r5, r3, r5 +/* 80398E30 00395D90 7C A5 32 78 */ xor r5, r5, r6 +/* 80398E34 00395D94 7C 84 32 78 */ xor r4, r4, r6 +/* 80398E38 00395D98 7C A4 23 79 */ or. r4, r5, r4 +/* 80398E3C 00395D9C 41 82 00 08 */ beq lbl_80398E44 +/* 80398E40 00395DA0 3A E0 00 01 */ li r23, 1 +lbl_80398E44: +/* 80398E44 00395DA4 38 80 00 10 */ li r4, 0x10 +/* 80398E48 00395DA8 38 C0 00 00 */ li r6, 0 +/* 80398E4C 00395DAC 7C 65 20 38 */ and r5, r3, r4 +/* 80398E50 00395DB0 7C 04 30 38 */ and r4, r0, r6 +/* 80398E54 00395DB4 7C A5 32 78 */ xor r5, r5, r6 +/* 80398E58 00395DB8 7C 84 32 78 */ xor r4, r4, r6 +/* 80398E5C 00395DBC 7C A4 23 79 */ or. r4, r5, r4 +/* 80398E60 00395DC0 41 82 01 64 */ beq lbl_80398FC4 +/* 80398E64 00395DC4 38 A0 00 08 */ li r5, 8 +/* 80398E68 00395DC8 38 80 01 00 */ li r4, 0x100 +/* 80398E6C 00395DCC 7C 63 28 38 */ and r3, r3, r5 +/* 80398E70 00395DD0 7C 00 20 38 */ and r0, r0, r4 +/* 80398E74 00395DD4 7C 63 2A 78 */ xor r3, r3, r5 +/* 80398E78 00395DD8 7C 00 32 78 */ xor r0, r0, r6 +/* 80398E7C 00395DDC 7C 60 03 79 */ or. r0, r3, r0 +/* 80398E80 00395DE0 41 82 01 44 */ beq lbl_80398FC4 +/* 80398E84 00395DE4 7F 83 E3 78 */ mr r3, r28 +/* 80398E88 00395DE8 48 01 A3 15 */ bl hwIsActive +/* 80398E8C 00395DEC 28 03 00 00 */ cmplwi r3, 0 +/* 80398E90 00395DF0 41 82 01 34 */ beq lbl_80398FC4 +/* 80398E94 00395DF4 3C 1B 00 01 */ addis r0, r27, 1 +/* 80398E98 00395DF8 28 00 FF FF */ cmplwi r0, 0xffff +/* 80398E9C 00395DFC 40 82 00 40 */ bne lbl_80398EDC +/* 80398EA0 00395E00 3C 80 00 02 */ lis r4, 0x00020002@ha +/* 80398EA4 00395E04 80 19 01 14 */ lwz r0, 0x114(r25) +/* 80398EA8 00395E08 38 A0 00 00 */ li r5, 0 +/* 80398EAC 00395E0C 80 79 01 18 */ lwz r3, 0x118(r25) +/* 80398EB0 00395E10 38 84 00 02 */ addi r4, r4, 0x00020002@l +/* 80398EB4 00395E14 7C 83 18 38 */ and r3, r4, r3 +/* 80398EB8 00395E18 7C A0 00 38 */ and r0, r5, r0 +/* 80398EBC 00395E1C 7C 83 1A 78 */ xor r3, r4, r3 +/* 80398EC0 00395E20 7C A0 02 78 */ xor r0, r5, r0 +/* 80398EC4 00395E24 7C 60 03 79 */ or. r0, r3, r0 +/* 80398EC8 00395E28 40 82 00 14 */ bne lbl_80398EDC +/* 80398ECC 00395E2C 38 00 00 01 */ li r0, 1 +/* 80398ED0 00395E30 38 60 FF FF */ li r3, -1 +/* 80398ED4 00395E34 90 16 00 00 */ stw r0, 0(r22) +/* 80398ED8 00395E38 48 00 01 40 */ b lbl_80399018 +lbl_80398EDC: +/* 80398EDC 00395E3C 88 19 01 2E */ lbz r0, 0x12e(r25) +/* 80398EE0 00395E40 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 80398EE4 00395E44 38 83 85 1F */ addi r4, r3, 0x51EB851F@l +/* 80398EE8 00395E48 A0 B9 01 2C */ lhz r5, 0x12c(r25) +/* 80398EEC 00395E4C 7C 00 07 74 */ extsb r0, r0 +/* 80398EF0 00395E50 38 60 00 00 */ li r3, 0 +/* 80398EF4 00395E54 54 00 80 1E */ slwi r0, r0, 0x10 +/* 80398EF8 00395E58 54 A6 80 1E */ slwi r6, r5, 0x10 +/* 80398EFC 00395E5C 7C 84 00 96 */ mulhw r4, r4, r0 +/* 80398F00 00395E60 7F 38 CB 78 */ mr r24, r25 +/* 80398F04 00395E64 3C 00 00 02 */ lis r0, 2 +/* 80398F08 00395E68 7C 84 2E 70 */ srawi r4, r4, 5 +/* 80398F0C 00395E6C 54 85 0F FE */ srwi r5, r4, 0x1f +/* 80398F10 00395E70 7C 84 2A 14 */ add r4, r4, r5 +/* 80398F14 00395E74 7C 86 22 14 */ add r4, r6, r4 +/* 80398F18 00395E78 90 99 01 38 */ stw r4, 0x138(r25) +/* 80398F1C 00395E7C A0 99 01 2C */ lhz r4, 0x12c(r25) +/* 80398F20 00395E80 98 99 01 30 */ stb r4, 0x130(r25) +/* 80398F24 00395E84 A0 99 01 2C */ lhz r4, 0x12c(r25) +/* 80398F28 00395E88 88 B9 01 2F */ lbz r5, 0x12f(r25) +/* 80398F2C 00395E8C 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 80398F30 00395E90 7C 85 20 50 */ subf r4, r5, r4 +/* 80398F34 00395E94 7C 9D 22 14 */ add r4, r29, r4 +/* 80398F38 00395E98 B0 99 01 2C */ sth r4, 0x12c(r25) +/* 80398F3C 00395E9C 9A 59 01 2F */ stb r18, 0x12f(r25) +/* 80398F40 00395EA0 98 79 01 2E */ stb r3, 0x12e(r25) +/* 80398F44 00395EA4 90 79 01 3C */ stw r3, 0x13c(r25) +/* 80398F48 00395EA8 80 99 01 18 */ lwz r4, 0x118(r25) +/* 80398F4C 00395EAC 7C 80 03 78 */ or r0, r4, r0 +/* 80398F50 00395EB0 90 19 01 18 */ stw r0, 0x118(r25) +/* 80398F54 00395EB4 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 80398F58 00395EB8 7C 60 F2 14 */ add r3, r0, r30 +/* 80398F5C 00395EBC 48 00 E7 E5 */ bl sub_803a7740 +/* 80398F60 00395EC0 3C 1B 00 01 */ addis r0, r27, 1 +/* 80398F64 00395EC4 28 00 FF FF */ cmplwi r0, 0xffff +/* 80398F68 00395EC8 40 82 00 2C */ bne lbl_80398F94 +/* 80398F6C 00395ECC 38 00 FF FF */ li r0, -1 +/* 80398F70 00395ED0 7E A4 AB 78 */ mr r4, r21 +/* 80398F74 00395ED4 90 19 00 EC */ stw r0, 0xec(r25) +/* 80398F78 00395ED8 90 19 00 F0 */ stw r0, 0xf0(r25) +/* 80398F7C 00395EDC 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 80398F80 00395EE0 7C 60 F2 14 */ add r3, r0, r30 +/* 80398F84 00395EE4 48 00 EB 21 */ bl sub_803a7aa4 +/* 80398F88 00395EE8 83 59 00 F4 */ lwz r26, 0xf4(r25) +/* 80398F8C 00395EEC 7C 7B 1B 78 */ mr r27, r3 +/* 80398F90 00395EF0 48 00 00 34 */ b lbl_80398FC4 +lbl_80398F94: +/* 80398F94 00395EF4 57 40 06 3E */ clrlwi r0, r26, 0x18 +/* 80398F98 00395EF8 80 D9 00 F4 */ lwz r6, 0xf4(r25) +/* 80398F9C 00395EFC 1C 60 04 04 */ mulli r3, r0, 0x404 +/* 80398FA0 00395F00 80 AD AE 78 */ lwz r5, lbl_805A9A38@sda21(r13) +/* 80398FA4 00395F04 38 80 00 00 */ li r4, 0 +/* 80398FA8 00395F08 38 03 00 EC */ addi r0, r3, 0xec +/* 80398FAC 00395F0C 7C C5 01 2E */ stwx r6, r5, r0 +/* 80398FB0 00395F10 93 59 00 F0 */ stw r26, 0xf0(r25) +/* 80398FB4 00395F14 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 80398FB8 00395F18 83 59 00 F4 */ lwz r26, 0xf4(r25) +/* 80398FBC 00395F1C 7C 60 F2 14 */ add r3, r0, r30 +/* 80398FC0 00395F20 48 00 EA E5 */ bl sub_803a7aa4 +lbl_80398FC4: +/* 80398FC4 00395F24 3B DE 04 04 */ addi r30, r30, 0x404 +/* 80398FC8 00395F28 3B 9C 00 01 */ addi r28, r28, 1 +/* 80398FCC 00395F2C 3B 39 04 04 */ addi r25, r25, 0x404 +lbl_80398FD0: +/* 80398FD0 00395F30 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 80398FD4 00395F34 7C 1C 00 40 */ cmplw r28, r0 +/* 80398FD8 00395F38 41 80 FE 04 */ blt lbl_80398DDC +/* 80398FDC 00395F3C 3C 1B 00 01 */ addis r0, r27, 1 +/* 80398FE0 00395F40 28 00 FF FF */ cmplwi r0, 0xffff +/* 80398FE4 00395F44 41 82 00 2C */ beq lbl_80399010 +/* 80398FE8 00395F48 7F 03 C3 78 */ mr r3, r24 +/* 80398FEC 00395F4C 48 00 FE F9 */ bl voiceSetLastStarted +/* 80398FF0 00395F50 A0 18 01 2C */ lhz r0, 0x12c(r24) +/* 80398FF4 00395F54 88 78 01 21 */ lbz r3, 0x121(r24) +/* 80398FF8 00395F58 88 98 01 22 */ lbz r4, 0x122(r24) +/* 80398FFC 00395F5C 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 80399000 00395F60 48 01 8D ED */ bl inpSetMidiLastNote +/* 80399004 00395F64 38 00 00 00 */ li r0, 0 +/* 80399008 00395F68 90 16 00 00 */ stw r0, 0(r22) +/* 8039900C 00395F6C 48 00 00 08 */ b lbl_80399014 +lbl_80399010: +/* 80399010 00395F70 92 F6 00 00 */ stw r23, 0(r22) +lbl_80399014: +/* 80399014 00395F74 7F 63 DB 78 */ mr r3, r27 +lbl_80399018: +/* 80399018 00395F78 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039901C 00395F7C 4B FF 0A 89 */ bl _restgpr_18 +/* 80399020 00395F80 80 01 00 44 */ lwz r0, 0x44(r1) +/* 80399024 00395F84 7C 08 03 A6 */ mtlr r0 +/* 80399028 00395F88 38 21 00 40 */ addi r1, r1, 0x40 +/* 8039902C 00395F8C 4E 80 00 20 */ blr + +.global StartLayer +StartLayer: +/* 80399030 00395F90 94 21 FF 80 */ stwu r1, -0x80(r1) +/* 80399034 00395F94 7C 08 02 A6 */ mflr r0 +/* 80399038 00395F98 90 01 00 84 */ stw r0, 0x84(r1) +/* 8039903C 00395F9C 39 61 00 80 */ addi r11, r1, 0x80 +/* 80399040 00395FA0 4B FF 0A 09 */ bl __save_gpr +/* 80399044 00395FA4 8A 61 00 8B */ lbz r19, 0x8b(r1) +/* 80399048 00395FA8 7C 8F 23 78 */ mr r15, r4 +/* 8039904C 00395FAC 8A 81 00 8F */ lbz r20, 0x8f(r1) +/* 80399050 00395FB0 7C B0 2B 78 */ mr r16, r5 +/* 80399054 00395FB4 A2 A1 00 92 */ lhz r21, 0x92(r1) +/* 80399058 00395FB8 7C D1 33 78 */ mr r17, r6 +/* 8039905C 00395FBC A2 C1 00 96 */ lhz r22, 0x96(r1) +/* 80399060 00395FC0 7C FD 3B 78 */ mr r29, r7 +/* 80399064 00395FC4 99 01 00 28 */ stb r8, 0x28(r1) +/* 80399068 00395FC8 7D 3E 4B 78 */ mr r30, r9 +/* 8039906C 00395FCC 8A E1 00 9F */ lbz r23, 0x9f(r1) +/* 80399070 00395FD0 7D 52 53 78 */ mr r18, r10 +/* 80399074 00395FD4 8B 01 00 A3 */ lbz r24, 0xa3(r1) +/* 80399078 00395FD8 38 81 00 2A */ addi r4, r1, 0x2a +/* 8039907C 00395FDC 83 21 00 A4 */ lwz r25, 0xa4(r1) +/* 80399080 00395FE0 39 C0 FF FF */ li r14, -1 +/* 80399084 00395FE4 48 00 97 15 */ bl dataGetLayer +/* 80399088 00395FE8 7C 7A 1B 79 */ or. r26, r3, r3 +/* 8039908C 00395FEC 41 82 03 48 */ beq lbl_803993D4 +/* 80399090 00395FF0 57 C0 06 3E */ clrlwi r0, r30, 0x18 +/* 80399094 00395FF4 57 BF 06 7E */ clrlwi r31, r29, 0x19 +/* 80399098 00395FF8 90 01 00 34 */ stw r0, 0x34(r1) +/* 8039909C 00395FFC 57 BD 06 30 */ rlwinm r29, r29, 0, 0x18, 0x18 +/* 803990A0 00396000 88 01 00 28 */ lbz r0, 0x28(r1) +/* 803990A4 00396004 90 01 00 30 */ stw r0, 0x30(r1) +/* 803990A8 00396008 48 00 03 20 */ b lbl_803993C8 +lbl_803990AC: +/* 803990AC 0039600C A0 7A 00 00 */ lhz r3, 0(r26) +/* 803990B0 00396010 28 03 FF FF */ cmplwi r3, 0xffff +/* 803990B4 00396014 41 82 03 04 */ beq lbl_803993B8 +/* 803990B8 00396018 88 1A 00 02 */ lbz r0, 2(r26) +/* 803990BC 0039601C 7C 00 F8 40 */ cmplw r0, r31 +/* 803990C0 00396020 41 81 02 F8 */ bgt lbl_803993B8 +/* 803990C4 00396024 88 1A 00 03 */ lbz r0, 3(r26) +/* 803990C8 00396028 7C 00 F8 40 */ cmplw r0, r31 +/* 803990CC 0039602C 41 80 02 EC */ blt lbl_803993B8 +/* 803990D0 00396030 88 1A 00 04 */ lbz r0, 4(r26) +/* 803990D4 00396034 7C 00 07 74 */ extsb r0, r0 +/* 803990D8 00396038 7C 9F 02 14 */ add r4, r31, r0 +/* 803990DC 0039603C 2C 04 00 7F */ cmpwi r4, 0x7f +/* 803990E0 00396040 40 81 00 0C */ ble lbl_803990EC +/* 803990E4 00396044 3B C0 00 7F */ li r30, 0x7f +/* 803990E8 00396048 48 00 00 0C */ b lbl_803990F4 +lbl_803990EC: +/* 803990EC 0039604C 7C 80 FE 70 */ srawi r0, r4, 0x1f +/* 803990F0 00396050 7C 9E 00 78 */ andc r30, r4, r0 +lbl_803990F4: +/* 803990F4 00396054 54 60 04 23 */ rlwinm. r0, r3, 0, 0x10, 0x11 +/* 803990F8 00396058 40 82 00 68 */ bne lbl_80399160 +/* 803990FC 0039605C 7E 44 93 78 */ mr r4, r18 +/* 80399100 00396060 7E 65 9B 78 */ mr r5, r19 +/* 80399104 00396064 38 60 00 41 */ li r3, 0x41 +/* 80399108 00396068 48 01 88 05 */ bl inpGetMidiCtrl +/* 8039910C 0039606C 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 80399110 00396070 28 00 1F 80 */ cmplwi r0, 0x1f80 +/* 80399114 00396074 40 81 00 30 */ ble lbl_80399144 +/* 80399118 00396078 57 C3 06 7E */ clrlwi r3, r30, 0x19 +/* 8039911C 0039607C 7E 44 93 78 */ mr r4, r18 +/* 80399120 00396080 7E 65 9B 78 */ mr r5, r19 +/* 80399124 00396084 38 E1 00 2C */ addi r7, r1, 0x2c +/* 80399128 00396088 38 C0 00 00 */ li r6, 0 +/* 8039912C 0039608C 4B FF FC 65 */ bl do_voice_portamento +/* 80399130 00396090 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 80399134 00396094 7C 7C 1B 78 */ mr r28, r3 +/* 80399138 00396098 7C 00 00 34 */ cntlzw r0, r0 +/* 8039913C 0039609C 54 00 D9 7E */ srwi r0, r0, 5 +/* 80399140 003960A0 48 00 00 0C */ b lbl_8039914C +lbl_80399144: +/* 80399144 003960A4 3B 80 FF FF */ li r28, -1 +/* 80399148 003960A8 38 00 00 01 */ li r0, 1 +lbl_8039914C: +/* 8039914C 003960AC 28 00 00 00 */ cmplwi r0, 0 +/* 80399150 003960B0 41 82 02 68 */ beq lbl_803993B8 +/* 80399154 003960B4 3C 1C 00 01 */ addis r0, r28, 1 +/* 80399158 003960B8 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039915C 003960BC 40 82 01 B4 */ bne lbl_80399310 +lbl_80399160: +/* 80399160 003960C0 88 7A 00 08 */ lbz r3, 8(r26) +/* 80399164 003960C4 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 +/* 80399168 003960C8 40 82 00 30 */ bne lbl_80399198 +/* 8039916C 003960CC 80 01 00 34 */ lwz r0, 0x34(r1) +/* 80399170 003960D0 38 63 FF C0 */ addi r3, r3, -64 +/* 80399174 003960D4 7C 63 02 15 */ add. r3, r3, r0 +/* 80399178 003960D8 40 80 00 0C */ bge lbl_80399184 +/* 8039917C 003960DC 38 00 00 00 */ li r0, 0 +/* 80399180 003960E0 48 00 00 1C */ b lbl_8039919C +lbl_80399184: +/* 80399184 003960E4 2C 03 00 7F */ cmpwi r3, 0x7f +/* 80399188 003960E8 38 00 00 7F */ li r0, 0x7f +/* 8039918C 003960EC 41 81 00 10 */ bgt lbl_8039919C +/* 80399190 003960F0 7C 60 1B 78 */ mr r0, r3 +/* 80399194 003960F4 48 00 00 08 */ b lbl_8039919C +lbl_80399198: +/* 80399198 003960F8 38 00 00 80 */ li r0, 0x80 +lbl_8039919C: +/* 8039919C 003960FC 3C 60 81 02 */ lis r3, 0x81020409@ha +/* 803991A0 00396100 A8 9A 00 06 */ lha r4, 6(r26) +/* 803991A4 00396104 38 C3 04 09 */ addi r6, r3, 0x81020409@l +/* 803991A8 00396108 88 BA 00 05 */ lbz r5, 5(r26) +/* 803991AC 0039610C 80 61 00 30 */ lwz r3, 0x30(r1) +/* 803991B0 00396110 7D EF 22 14 */ add r15, r15, r4 +/* 803991B4 00396114 7D E4 07 34 */ extsh r4, r15 +/* 803991B8 00396118 7C 63 29 D6 */ mullw r3, r3, r5 +/* 803991BC 0039611C 2C 04 00 FF */ cmpwi r4, 0xff +/* 803991C0 00396120 7C A6 18 96 */ mulhw r5, r6, r3 +/* 803991C4 00396124 7C 65 1A 14 */ add r3, r5, r3 +/* 803991C8 00396128 7C 63 36 70 */ srawi r3, r3, 6 +/* 803991CC 0039612C 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803991D0 00396130 7C 63 2A 14 */ add r3, r3, r5 +/* 803991D4 00396134 54 68 06 3E */ clrlwi r8, r3, 0x18 +/* 803991D8 00396138 40 81 00 0C */ ble lbl_803991E4 +/* 803991DC 0039613C 38 80 00 FF */ li r4, 0xff +/* 803991E0 00396140 48 00 00 0C */ b lbl_803991EC +lbl_803991E4: +/* 803991E4 00396144 7C 83 FE 70 */ srawi r3, r4, 0x1f +/* 803991E8 00396148 7C 84 18 78 */ andc r4, r4, r3 +lbl_803991EC: +/* 803991EC 0039614C A0 7A 00 00 */ lhz r3, 0(r26) +/* 803991F0 00396150 7C 8F 07 34 */ extsh r15, r4 +/* 803991F4 00396154 54 65 04 22 */ rlwinm r5, r3, 0, 0x10, 0x11 +/* 803991F8 00396158 2C 05 40 00 */ cmpwi r5, 0x4000 +/* 803991FC 0039615C 41 82 00 74 */ beq lbl_80399270 +/* 80399200 00396160 40 80 00 10 */ bge lbl_80399210 +/* 80399204 00396164 2C 05 00 00 */ cmpwi r5, 0 +/* 80399208 00396168 41 82 00 1C */ beq lbl_80399224 +/* 8039920C 0039616C 48 00 00 F8 */ b lbl_80399304 +lbl_80399210: +/* 80399210 00396170 3C 80 00 01 */ lis r4, 0x00008000@ha +/* 80399214 00396174 38 84 80 00 */ addi r4, r4, 0x00008000@l +/* 80399218 00396178 7C 05 20 00 */ cmpw r5, r4 +/* 8039921C 0039617C 41 82 00 A0 */ beq lbl_803992BC +/* 80399220 00396180 48 00 00 E4 */ b lbl_80399304 +lbl_80399224: +/* 80399224 00396184 92 61 00 08 */ stw r19, 8(r1) +/* 80399228 00396188 7F C7 EB 78 */ or r7, r30, r29 +/* 8039922C 0039618C 39 60 00 00 */ li r11, 0 +/* 80399230 00396190 7E 05 83 78 */ mr r5, r16 +/* 80399234 00396194 92 81 00 0C */ stw r20, 0xc(r1) +/* 80399238 00396198 7E 26 8B 78 */ mr r6, r17 +/* 8039923C 0039619C 7E 4A 93 78 */ mr r10, r18 +/* 80399240 003961A0 55 E4 06 3E */ clrlwi r4, r15, 0x18 +/* 80399244 003961A4 92 A1 00 10 */ stw r21, 0x10(r1) +/* 80399248 003961A8 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 8039924C 003961AC 54 09 06 3E */ clrlwi r9, r0, 0x18 +/* 80399250 003961B0 92 C1 00 14 */ stw r22, 0x14(r1) +/* 80399254 003961B4 91 61 00 18 */ stw r11, 0x18(r1) +/* 80399258 003961B8 92 E1 00 1C */ stw r23, 0x1c(r1) +/* 8039925C 003961BC 93 01 00 20 */ stw r24, 0x20(r1) +/* 80399260 003961C0 93 21 00 24 */ stw r25, 0x24(r1) +/* 80399264 003961C4 48 00 DF 5D */ bl sub_803a71c0 +/* 80399268 003961C8 7C 7C 1B 78 */ mr r28, r3 +/* 8039926C 003961CC 48 00 00 98 */ b lbl_80399304 +lbl_80399270: +/* 80399270 003961D0 92 61 00 08 */ stw r19, 8(r1) +/* 80399274 003961D4 7F C7 EB 78 */ or r7, r30, r29 +/* 80399278 003961D8 39 60 00 00 */ li r11, 0 +/* 8039927C 003961DC 7D E4 7B 78 */ mr r4, r15 +/* 80399280 003961E0 92 81 00 0C */ stw r20, 0xc(r1) +/* 80399284 003961E4 7E 05 83 78 */ mr r5, r16 +/* 80399288 003961E8 7E 26 8B 78 */ mr r6, r17 +/* 8039928C 003961EC 7E 4A 93 78 */ mr r10, r18 +/* 80399290 003961F0 92 A1 00 10 */ stw r21, 0x10(r1) +/* 80399294 003961F4 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 80399298 003961F8 54 09 06 3E */ clrlwi r9, r0, 0x18 +/* 8039929C 003961FC 92 C1 00 14 */ stw r22, 0x14(r1) +/* 803992A0 00396200 91 61 00 18 */ stw r11, 0x18(r1) +/* 803992A4 00396204 92 E1 00 1C */ stw r23, 0x1c(r1) +/* 803992A8 00396208 93 01 00 20 */ stw r24, 0x20(r1) +/* 803992AC 0039620C 93 21 00 24 */ stw r25, 0x24(r1) +/* 803992B0 00396210 48 00 01 41 */ bl StartKeymap +/* 803992B4 00396214 7C 7C 1B 78 */ mr r28, r3 +/* 803992B8 00396218 48 00 00 4C */ b lbl_80399304 +lbl_803992BC: +/* 803992BC 0039621C 92 61 00 08 */ stw r19, 8(r1) +/* 803992C0 00396220 7F C7 EB 78 */ or r7, r30, r29 +/* 803992C4 00396224 39 60 00 00 */ li r11, 0 +/* 803992C8 00396228 7D E4 7B 78 */ mr r4, r15 +/* 803992CC 0039622C 92 81 00 0C */ stw r20, 0xc(r1) +/* 803992D0 00396230 7E 05 83 78 */ mr r5, r16 +/* 803992D4 00396234 7E 26 8B 78 */ mr r6, r17 +/* 803992D8 00396238 7E 4A 93 78 */ mr r10, r18 +/* 803992DC 0039623C 92 A1 00 10 */ stw r21, 0x10(r1) +/* 803992E0 00396240 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 803992E4 00396244 54 09 06 3E */ clrlwi r9, r0, 0x18 +/* 803992E8 00396248 92 C1 00 14 */ stw r22, 0x14(r1) +/* 803992EC 0039624C 91 61 00 18 */ stw r11, 0x18(r1) +/* 803992F0 00396250 92 E1 00 1C */ stw r23, 0x1c(r1) +/* 803992F4 00396254 93 01 00 20 */ stw r24, 0x20(r1) +/* 803992F8 00396258 93 21 00 24 */ stw r25, 0x24(r1) +/* 803992FC 0039625C 4B FF FD 35 */ bl StartLayer +/* 80399300 00396260 7C 7C 1B 78 */ mr r28, r3 +lbl_80399304: +/* 80399304 00396264 3C 1C 00 01 */ addis r0, r28, 1 +/* 80399308 00396268 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039930C 0039626C 41 82 00 AC */ beq lbl_803993B8 +lbl_80399310: +/* 80399310 00396270 3C 0E 00 01 */ addis r0, r14, 1 +/* 80399314 00396274 28 00 FF FF */ cmplwi r0, 0xffff +/* 80399318 00396278 40 82 00 34 */ bne lbl_8039934C +/* 8039931C 0039627C 80 01 00 98 */ lwz r0, 0x98(r1) +/* 80399320 00396280 28 00 00 00 */ cmplwi r0, 0 +/* 80399324 00396284 41 82 00 20 */ beq lbl_80399344 +/* 80399328 00396288 57 80 06 3E */ clrlwi r0, r28, 0x18 +/* 8039932C 0039628C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 80399330 00396290 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 80399334 00396294 7C 63 02 14 */ add r3, r3, r0 +/* 80399338 00396298 48 00 E7 59 */ bl vidMakeRoot +/* 8039933C 0039629C 7C 6E 1B 78 */ mr r14, r3 +/* 80399340 003962A0 48 00 00 34 */ b lbl_80399374 +lbl_80399344: +/* 80399344 003962A4 7F 8E E3 78 */ mr r14, r28 +/* 80399348 003962A8 48 00 00 2C */ b lbl_80399374 +lbl_8039934C: +/* 8039934C 003962AC 57 63 06 3E */ clrlwi r3, r27, 0x18 +/* 80399350 003962B0 57 80 06 3E */ clrlwi r0, r28, 0x18 +/* 80399354 003962B4 1C 63 04 04 */ mulli r3, r3, 0x404 +/* 80399358 003962B8 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039935C 003962BC 38 63 00 EC */ addi r3, r3, 0xec +/* 80399360 003962C0 7F 84 19 2E */ stwx r28, r4, r3 +/* 80399364 003962C4 1C 60 04 04 */ mulli r3, r0, 0x404 +/* 80399368 003962C8 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039936C 003962CC 38 03 00 F0 */ addi r0, r3, 0xf0 +/* 80399370 003962D0 7F 64 01 2E */ stwx r27, r4, r0 +lbl_80399374: +/* 80399374 003962D4 7F 9B E3 78 */ mr r27, r28 +/* 80399378 003962D8 38 80 00 01 */ li r4, 1 +/* 8039937C 003962DC 48 00 00 14 */ b lbl_80399390 +lbl_80399380: +/* 80399380 003962E0 98 85 01 1C */ stb r4, 0x11c(r5) +/* 80399384 003962E4 38 06 00 EC */ addi r0, r6, 0xec +/* 80399388 003962E8 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039938C 003962EC 7F 63 00 2E */ lwzx r27, r3, r0 +lbl_80399390: +/* 80399390 003962F0 57 60 06 3E */ clrlwi r0, r27, 0x18 +/* 80399394 003962F4 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 80399398 003962F8 1C C0 04 04 */ mulli r6, r0, 0x404 +/* 8039939C 003962FC 7C A3 32 14 */ add r5, r3, r6 +/* 803993A0 00396300 80 65 00 EC */ lwz r3, 0xec(r5) +/* 803993A4 00396304 3C 03 00 01 */ addis r0, r3, 1 +/* 803993A8 00396308 28 00 FF FF */ cmplwi r0, 0xffff +/* 803993AC 0039630C 40 82 FF D4 */ bne lbl_80399380 +/* 803993B0 00396310 38 00 00 01 */ li r0, 1 +/* 803993B4 00396314 98 05 01 1C */ stb r0, 0x11c(r5) +lbl_803993B8: +/* 803993B8 00396318 A0 61 00 2A */ lhz r3, 0x2a(r1) +/* 803993BC 0039631C 3B 5A 00 0C */ addi r26, r26, 0xc +/* 803993C0 00396320 38 03 FF FF */ addi r0, r3, -1 +/* 803993C4 00396324 B0 01 00 2A */ sth r0, 0x2a(r1) +lbl_803993C8: +/* 803993C8 00396328 A0 01 00 2A */ lhz r0, 0x2a(r1) +/* 803993CC 0039632C 28 00 00 00 */ cmplwi r0, 0 +/* 803993D0 00396330 40 82 FC DC */ bne lbl_803990AC +lbl_803993D4: +/* 803993D4 00396334 7D C3 73 78 */ mr r3, r14 +/* 803993D8 00396338 39 61 00 80 */ addi r11, r1, 0x80 +/* 803993DC 0039633C 4B FF 06 B9 */ bl __restore_gpr +/* 803993E0 00396340 80 01 00 84 */ lwz r0, 0x84(r1) +/* 803993E4 00396344 7C 08 03 A6 */ mtlr r0 +/* 803993E8 00396348 38 21 00 80 */ addi r1, r1, 0x80 +/* 803993EC 0039634C 4E 80 00 20 */ blr + +.global StartKeymap +StartKeymap: +/* 803993F0 00396350 94 21 FF 80 */ stwu r1, -0x80(r1) +/* 803993F4 00396354 7C 08 02 A6 */ mflr r0 +/* 803993F8 00396358 90 01 00 84 */ stw r0, 0x84(r1) +/* 803993FC 0039635C 39 61 00 80 */ addi r11, r1, 0x80 +/* 80399400 00396360 4B FF 06 4D */ bl func_80389A4C +/* 80399404 00396364 8B A1 00 8B */ lbz r29, 0x8b(r1) +/* 80399408 00396368 7C 97 23 78 */ mr r23, r4 +/* 8039940C 0039636C 8B C1 00 8F */ lbz r30, 0x8f(r1) +/* 80399410 00396370 7C B8 2B 78 */ mr r24, r5 +/* 80399414 00396374 A2 41 00 92 */ lhz r18, 0x92(r1) +/* 80399418 00396378 7C D9 33 78 */ mr r25, r6 +/* 8039941C 0039637C A2 21 00 96 */ lhz r17, 0x96(r1) +/* 80399420 00396380 7C F6 3B 78 */ mr r22, r7 +/* 80399424 00396384 83 E1 00 98 */ lwz r31, 0x98(r1) +/* 80399428 00396388 7D 1A 43 78 */ mr r26, r8 +/* 8039942C 0039638C 8A 01 00 9F */ lbz r16, 0x9f(r1) +/* 80399430 00396390 7D 3B 4B 78 */ mr r27, r9 +/* 80399434 00396394 89 E1 00 A3 */ lbz r15, 0xa3(r1) +/* 80399438 00396398 7D 5C 53 78 */ mr r28, r10 +/* 8039943C 0039639C 82 61 00 A4 */ lwz r19, 0xa4(r1) +/* 80399440 003963A0 48 00 92 ED */ bl sub_803a272c +/* 80399444 003963A4 28 03 00 00 */ cmplwi r3, 0 +/* 80399448 003963A8 41 82 01 E8 */ beq lbl_80399630 +/* 8039944C 003963AC 56 C4 1D B8 */ rlwinm r4, r22, 3, 0x16, 0x1c +/* 80399450 003963B0 56 D5 06 3E */ clrlwi r21, r22, 0x18 +/* 80399454 003963B4 7E 83 22 14 */ add r20, r3, r4 +/* 80399458 003963B8 56 C5 06 7E */ clrlwi r5, r22, 0x19 +/* 8039945C 003963BC A0 14 00 00 */ lhz r0, 0(r20) +/* 80399460 003963C0 28 00 FF FF */ cmplwi r0, 0xffff +/* 80399464 003963C4 41 82 01 CC */ beq lbl_80399630 +/* 80399468 003963C8 54 06 04 22 */ rlwinm r6, r0, 0, 0x10, 0x11 +/* 8039946C 003963CC 2C 06 40 00 */ cmpwi r6, 0x4000 +/* 80399470 003963D0 41 82 01 C0 */ beq lbl_80399630 +/* 80399474 003963D4 88 F4 00 03 */ lbz r7, 3(r20) +/* 80399478 003963D8 54 E7 06 31 */ rlwinm. r7, r7, 0, 0x18, 0x18 +/* 8039947C 003963DC 40 82 00 40 */ bne lbl_803994BC +/* 80399480 003963E0 56 C8 1D 78 */ rlwinm r8, r22, 3, 0x15, 0x1c +/* 80399484 003963E4 57 67 06 3E */ clrlwi r7, r27, 0x18 +/* 80399488 003963E8 7D 03 42 14 */ add r8, r3, r8 +/* 8039948C 003963EC 89 08 00 03 */ lbz r8, 3(r8) +/* 80399490 003963F0 39 08 FF C0 */ addi r8, r8, -64 +/* 80399494 003963F4 7D 08 3A 15 */ add. r8, r8, r7 +/* 80399498 003963F8 40 80 00 0C */ bge lbl_803994A4 +/* 8039949C 003963FC 3B 60 00 00 */ li r27, 0 +/* 803994A0 00396400 48 00 00 20 */ b lbl_803994C0 +lbl_803994A4: +/* 803994A4 00396404 2C 08 00 7F */ cmpwi r8, 0x7f +/* 803994A8 00396408 40 81 00 0C */ ble lbl_803994B4 +/* 803994AC 0039640C 3B 60 00 7F */ li r27, 0x7f +/* 803994B0 00396410 48 00 00 10 */ b lbl_803994C0 +lbl_803994B4: +/* 803994B4 00396414 55 1B 06 3E */ clrlwi r27, r8, 0x18 +/* 803994B8 00396418 48 00 00 08 */ b lbl_803994C0 +lbl_803994BC: +/* 803994BC 0039641C 3B 60 00 80 */ li r27, 0x80 +lbl_803994C0: +/* 803994C0 00396420 7C E3 22 14 */ add r7, r3, r4 +/* 803994C4 00396424 88 E7 00 02 */ lbz r7, 2(r7) +/* 803994C8 00396428 7C E7 07 74 */ extsb r7, r7 +/* 803994CC 0039642C 7C E5 3A 14 */ add r7, r5, r7 +/* 803994D0 00396430 2C 07 00 7F */ cmpwi r7, 0x7f +/* 803994D4 00396434 40 81 00 0C */ ble lbl_803994E0 +/* 803994D8 00396438 3A C0 00 7F */ li r22, 0x7f +/* 803994DC 0039643C 48 00 00 0C */ b lbl_803994E8 +lbl_803994E0: +/* 803994E0 00396440 7C E5 FE 70 */ srawi r5, r7, 0x1f +/* 803994E4 00396444 7C F6 28 78 */ andc r22, r7, r5 +lbl_803994E8: +/* 803994E8 00396448 7C 63 22 14 */ add r3, r3, r4 +/* 803994EC 0039644C A8 63 00 04 */ lha r3, 4(r3) +/* 803994F0 00396450 7E F7 1A 14 */ add r23, r23, r3 +/* 803994F4 00396454 7E E4 07 34 */ extsh r4, r23 +/* 803994F8 00396458 2C 04 00 FF */ cmpwi r4, 0xff +/* 803994FC 0039645C 40 81 00 0C */ ble lbl_80399508 +/* 80399500 00396460 38 60 00 FF */ li r3, 0xff +/* 80399504 00396464 48 00 00 0C */ b lbl_80399510 +lbl_80399508: +/* 80399508 00396468 7C 83 FE 70 */ srawi r3, r4, 0x1f +/* 8039950C 0039646C 7C 83 18 78 */ andc r3, r4, r3 +lbl_80399510: +/* 80399510 00396470 2C 06 00 00 */ cmpwi r6, 0 +/* 80399514 00396474 7C 77 07 34 */ extsh r23, r3 +/* 80399518 00396478 40 82 00 C4 */ bne lbl_803995DC +/* 8039951C 0039647C 7F 84 E3 78 */ mr r4, r28 +/* 80399520 00396480 7F A5 EB 78 */ mr r5, r29 +/* 80399524 00396484 38 60 00 41 */ li r3, 0x41 +/* 80399528 00396488 48 01 83 E5 */ bl inpGetMidiCtrl +/* 8039952C 0039648C 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 80399530 00396490 28 00 1F 80 */ cmplwi r0, 0x1f80 +/* 80399534 00396494 40 81 00 2C */ ble lbl_80399560 +/* 80399538 00396498 56 C3 06 7E */ clrlwi r3, r22, 0x19 +/* 8039953C 0039649C 7F 84 E3 78 */ mr r4, r28 +/* 80399540 003964A0 7F A5 EB 78 */ mr r5, r29 +/* 80399544 003964A4 7F E6 FB 78 */ mr r6, r31 +/* 80399548 003964A8 38 E1 00 28 */ addi r7, r1, 0x28 +/* 8039954C 003964AC 4B FF F8 45 */ bl do_voice_portamento +/* 80399550 003964B0 80 01 00 28 */ lwz r0, 0x28(r1) +/* 80399554 003964B4 7C 00 00 34 */ cntlzw r0, r0 +/* 80399558 003964B8 54 00 D9 7E */ srwi r0, r0, 5 +/* 8039955C 003964BC 48 00 00 0C */ b lbl_80399568 +lbl_80399560: +/* 80399560 003964C0 38 60 FF FF */ li r3, -1 +/* 80399564 003964C4 38 00 00 01 */ li r0, 1 +lbl_80399568: +/* 80399568 003964C8 28 00 00 00 */ cmplwi r0, 0 +/* 8039956C 003964CC 40 82 00 0C */ bne lbl_80399578 +/* 80399570 003964D0 38 60 FF FF */ li r3, -1 +/* 80399574 003964D4 48 00 00 C0 */ b lbl_80399634 +lbl_80399578: +/* 80399578 003964D8 3C 03 00 01 */ addis r0, r3, 1 +/* 8039957C 003964DC 28 00 FF FF */ cmplwi r0, 0xffff +/* 80399580 003964E0 41 82 00 08 */ beq lbl_80399588 +/* 80399584 003964E4 48 00 00 B0 */ b lbl_80399634 +lbl_80399588: +/* 80399588 003964E8 93 A1 00 08 */ stw r29, 8(r1) +/* 8039958C 003964EC 56 A0 06 30 */ rlwinm r0, r21, 0, 0x18, 0x18 +/* 80399590 003964F0 7E C0 03 78 */ or r0, r22, r0 +/* 80399594 003964F4 57 E3 06 3E */ clrlwi r3, r31, 0x18 +/* 80399598 003964F8 93 C1 00 0C */ stw r30, 0xc(r1) +/* 8039959C 003964FC 7F 05 C3 78 */ mr r5, r24 +/* 803995A0 00396500 7F 26 CB 78 */ mr r6, r25 +/* 803995A4 00396504 7F 48 D3 78 */ mr r8, r26 +/* 803995A8 00396508 92 41 00 10 */ stw r18, 0x10(r1) +/* 803995AC 0039650C 7F 69 DB 78 */ mr r9, r27 +/* 803995B0 00396510 7F 8A E3 78 */ mr r10, r28 +/* 803995B4 00396514 56 E4 06 3E */ clrlwi r4, r23, 0x18 +/* 803995B8 00396518 92 21 00 14 */ stw r17, 0x14(r1) +/* 803995BC 0039651C 54 07 06 3E */ clrlwi r7, r0, 0x18 +/* 803995C0 00396520 90 61 00 18 */ stw r3, 0x18(r1) +/* 803995C4 00396524 92 01 00 1C */ stw r16, 0x1c(r1) +/* 803995C8 00396528 91 E1 00 20 */ stw r15, 0x20(r1) +/* 803995CC 0039652C 92 61 00 24 */ stw r19, 0x24(r1) +/* 803995D0 00396530 A0 74 00 00 */ lhz r3, 0(r20) +/* 803995D4 00396534 48 00 DB ED */ bl sub_803a71c0 +/* 803995D8 00396538 48 00 00 5C */ b lbl_80399634 +lbl_803995DC: +/* 803995DC 0039653C 93 A1 00 08 */ stw r29, 8(r1) +/* 803995E0 00396540 56 A3 06 30 */ rlwinm r3, r21, 0, 0x18, 0x18 +/* 803995E4 00396544 7E C7 1B 78 */ or r7, r22, r3 +/* 803995E8 00396548 57 EB 06 3E */ clrlwi r11, r31, 0x18 +/* 803995EC 0039654C 93 C1 00 0C */ stw r30, 0xc(r1) +/* 803995F0 00396550 7C 03 03 78 */ mr r3, r0 +/* 803995F4 00396554 7E E4 BB 78 */ mr r4, r23 +/* 803995F8 00396558 7F 05 C3 78 */ mr r5, r24 +/* 803995FC 0039655C 92 41 00 10 */ stw r18, 0x10(r1) +/* 80399600 00396560 7F 26 CB 78 */ mr r6, r25 +/* 80399604 00396564 7F 48 D3 78 */ mr r8, r26 +/* 80399608 00396568 7F 69 DB 78 */ mr r9, r27 +/* 8039960C 0039656C 92 21 00 14 */ stw r17, 0x14(r1) +/* 80399610 00396570 7F 8A E3 78 */ mr r10, r28 +/* 80399614 00396574 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 80399618 00396578 91 61 00 18 */ stw r11, 0x18(r1) +/* 8039961C 0039657C 92 01 00 1C */ stw r16, 0x1c(r1) +/* 80399620 00396580 91 E1 00 20 */ stw r15, 0x20(r1) +/* 80399624 00396584 92 61 00 24 */ stw r19, 0x24(r1) +/* 80399628 00396588 4B FF FA 09 */ bl StartLayer +/* 8039962C 0039658C 48 00 00 08 */ b lbl_80399634 +lbl_80399630: +/* 80399630 00396590 38 60 FF FF */ li r3, -1 +lbl_80399634: +/* 80399634 00396594 39 61 00 80 */ addi r11, r1, 0x80 +/* 80399638 00396598 4B FF 04 61 */ bl func_80389A98 +/* 8039963C 0039659C 80 01 00 84 */ lwz r0, 0x84(r1) +/* 80399640 003965A0 7C 08 03 A6 */ mtlr r0 +/* 80399644 003965A4 38 21 00 80 */ addi r1, r1, 0x80 +/* 80399648 003965A8 4E 80 00 20 */ blr + +.global sub_8039964c +sub_8039964c: +/* 8039964C 003965AC 94 21 FF 80 */ stwu r1, -0x80(r1) +/* 80399650 003965B0 7C 08 02 A6 */ mflr r0 +/* 80399654 003965B4 90 01 00 84 */ stw r0, 0x84(r1) +/* 80399658 003965B8 39 61 00 80 */ addi r11, r1, 0x80 +/* 8039965C 003965BC 4B FF 03 F1 */ bl func_80389A4C +/* 80399660 003965C0 A8 01 00 9A */ lha r0, 0x9a(r1) +/* 80399664 003965C4 7C 7E 1B 78 */ mr r30, r3 +/* 80399668 003965C8 8B 41 00 8B */ lbz r26, 0x8b(r1) +/* 8039966C 003965CC 7C BF 2B 78 */ mr r31, r5 +/* 80399670 003965D0 7C 04 02 14 */ add r0, r4, r0 +/* 80399674 003965D4 A3 61 00 8E */ lhz r27, 0x8e(r1) +/* 80399678 003965D8 54 15 06 3E */ clrlwi r21, r0, 0x18 +/* 8039967C 003965DC A3 81 00 92 */ lhz r28, 0x92(r1) +/* 80399680 003965E0 28 15 00 FF */ cmplwi r21, 0xff +/* 80399684 003965E4 8A C1 00 97 */ lbz r22, 0x97(r1) +/* 80399688 003965E8 8A 41 00 9F */ lbz r18, 0x9f(r1) +/* 8039968C 003965EC 7C D3 33 78 */ mr r19, r6 +/* 80399690 003965F0 83 A1 00 A0 */ lwz r29, 0xa0(r1) +/* 80399694 003965F4 7C F7 3B 78 */ mr r23, r7 +/* 80399698 003965F8 7D 14 43 78 */ mr r20, r8 +/* 8039969C 003965FC 7D 38 4B 78 */ mr r24, r9 +/* 803996A0 00396600 7D 59 53 78 */ mr r25, r10 +/* 803996A4 00396604 38 00 00 FF */ li r0, 0xff +/* 803996A8 00396608 41 81 00 08 */ bgt lbl_803996B0 +/* 803996AC 0039660C 7E A0 AB 78 */ mr r0, r21 +lbl_803996B0: +/* 803996B0 00396610 57 C4 04 22 */ rlwinm r4, r30, 0, 0x10, 0x11 +/* 803996B4 00396614 54 15 06 3E */ clrlwi r21, r0, 0x18 +/* 803996B8 00396618 2C 04 40 00 */ cmpwi r4, 0x4000 +/* 803996BC 0039661C 41 82 00 E0 */ beq lbl_8039979C +/* 803996C0 00396620 40 80 00 10 */ bge lbl_803996D0 +/* 803996C4 00396624 2C 04 00 00 */ cmpwi r4, 0 +/* 803996C8 00396628 41 82 00 1C */ beq lbl_803996E4 +/* 803996CC 0039662C 48 00 03 C0 */ b lbl_80399A8C +lbl_803996D0: +/* 803996D0 00396630 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 803996D4 00396634 38 03 80 00 */ addi r0, r3, 0x00008000@l +/* 803996D8 00396638 7C 04 00 00 */ cmpw r4, r0 +/* 803996DC 0039663C 41 82 03 18 */ beq lbl_803999F4 +/* 803996E0 00396640 48 00 03 AC */ b lbl_80399A8C +lbl_803996E4: +/* 803996E4 00396644 7F 04 C3 78 */ mr r4, r24 +/* 803996E8 00396648 7F 25 CB 78 */ mr r5, r25 +/* 803996EC 0039664C 38 60 00 41 */ li r3, 0x41 +/* 803996F0 00396650 48 01 82 1D */ bl inpGetMidiCtrl +/* 803996F4 00396654 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803996F8 00396658 28 00 1F 80 */ cmplwi r0, 0x1f80 +/* 803996FC 0039665C 40 81 00 2C */ ble lbl_80399728 +/* 80399700 00396660 56 63 06 7E */ clrlwi r3, r19, 0x19 +/* 80399704 00396664 7F 04 C3 78 */ mr r4, r24 +/* 80399708 00396668 7F 25 CB 78 */ mr r5, r25 +/* 8039970C 0039666C 38 E1 00 2C */ addi r7, r1, 0x2c +/* 80399710 00396670 38 C0 00 01 */ li r6, 1 +/* 80399714 00396674 4B FF F6 7D */ bl do_voice_portamento +/* 80399718 00396678 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 8039971C 0039667C 7C 00 00 34 */ cntlzw r0, r0 +/* 80399720 00396680 54 00 D9 7E */ srwi r0, r0, 5 +/* 80399724 00396684 48 00 00 0C */ b lbl_80399730 +lbl_80399728: +/* 80399728 00396688 38 60 FF FF */ li r3, -1 +/* 8039972C 0039668C 38 00 00 01 */ li r0, 1 +lbl_80399730: +/* 80399730 00396690 28 00 00 00 */ cmplwi r0, 0 +/* 80399734 00396694 40 82 00 0C */ bne lbl_80399740 +/* 80399738 00396698 38 60 FF FF */ li r3, -1 +/* 8039973C 0039669C 48 00 03 54 */ b lbl_80399A90 +lbl_80399740: +/* 80399740 003966A0 3C 03 00 01 */ addis r0, r3, 1 +/* 80399744 003966A4 28 00 FF FF */ cmplwi r0, 0xffff +/* 80399748 003966A8 41 82 00 08 */ beq lbl_80399750 +/* 8039974C 003966AC 48 00 03 44 */ b lbl_80399A90 +lbl_80399750: +/* 80399750 003966B0 93 21 00 08 */ stw r25, 8(r1) +/* 80399754 003966B4 38 00 00 01 */ li r0, 1 +/* 80399758 003966B8 7F C3 F3 78 */ mr r3, r30 +/* 8039975C 003966BC 7E A4 AB 78 */ mr r4, r21 +/* 80399760 003966C0 93 41 00 0C */ stw r26, 0xc(r1) +/* 80399764 003966C4 7F E5 FB 78 */ mr r5, r31 +/* 80399768 003966C8 7F C6 F3 78 */ mr r6, r30 +/* 8039976C 003966CC 7E 67 9B 78 */ mr r7, r19 +/* 80399770 003966D0 93 61 00 10 */ stw r27, 0x10(r1) +/* 80399774 003966D4 7E E8 BB 78 */ mr r8, r23 +/* 80399778 003966D8 7E 89 A3 78 */ mr r9, r20 +/* 8039977C 003966DC 7F 0A C3 78 */ mr r10, r24 +/* 80399780 003966E0 93 81 00 14 */ stw r28, 0x14(r1) +/* 80399784 003966E4 90 01 00 18 */ stw r0, 0x18(r1) +/* 80399788 003966E8 92 C1 00 1C */ stw r22, 0x1c(r1) +/* 8039978C 003966EC 92 41 00 20 */ stw r18, 0x20(r1) +/* 80399790 003966F0 93 A1 00 24 */ stw r29, 0x24(r1) +/* 80399794 003966F4 48 00 DA 2D */ bl sub_803a71c0 +/* 80399798 003966F8 48 00 02 F8 */ b lbl_80399A90 +lbl_8039979C: +/* 8039979C 003966FC 7F C3 F3 78 */ mr r3, r30 +/* 803997A0 00396700 48 00 8F 8D */ bl sub_803a272c +/* 803997A4 00396704 28 03 00 00 */ cmplwi r3, 0 +/* 803997A8 00396708 41 82 01 F8 */ beq lbl_803999A0 +/* 803997AC 0039670C 56 64 1D B8 */ rlwinm r4, r19, 3, 0x16, 0x1c +/* 803997B0 00396710 56 70 06 3E */ clrlwi r16, r19, 0x18 +/* 803997B4 00396714 7E 23 22 14 */ add r17, r3, r4 +/* 803997B8 00396718 56 65 06 7E */ clrlwi r5, r19, 0x19 +/* 803997BC 0039671C A0 11 00 00 */ lhz r0, 0(r17) +/* 803997C0 00396720 28 00 FF FF */ cmplwi r0, 0xffff +/* 803997C4 00396724 41 82 01 DC */ beq lbl_803999A0 +/* 803997C8 00396728 54 06 04 22 */ rlwinm r6, r0, 0, 0x10, 0x11 +/* 803997CC 0039672C 2C 06 40 00 */ cmpwi r6, 0x4000 +/* 803997D0 00396730 41 82 01 D0 */ beq lbl_803999A0 +/* 803997D4 00396734 88 F1 00 03 */ lbz r7, 3(r17) +/* 803997D8 00396738 54 E7 06 31 */ rlwinm. r7, r7, 0, 0x18, 0x18 +/* 803997DC 0039673C 40 82 00 40 */ bne lbl_8039981C +/* 803997E0 00396740 56 68 1D 78 */ rlwinm r8, r19, 3, 0x15, 0x1c +/* 803997E4 00396744 56 87 06 3E */ clrlwi r7, r20, 0x18 +/* 803997E8 00396748 7D 03 42 14 */ add r8, r3, r8 +/* 803997EC 0039674C 89 08 00 03 */ lbz r8, 3(r8) +/* 803997F0 00396750 39 08 FF C0 */ addi r8, r8, -64 +/* 803997F4 00396754 7D 08 3A 15 */ add. r8, r8, r7 +/* 803997F8 00396758 40 80 00 0C */ bge lbl_80399804 +/* 803997FC 0039675C 3A 80 00 00 */ li r20, 0 +/* 80399800 00396760 48 00 00 20 */ b lbl_80399820 +lbl_80399804: +/* 80399804 00396764 2C 08 00 7F */ cmpwi r8, 0x7f +/* 80399808 00396768 40 81 00 0C */ ble lbl_80399814 +/* 8039980C 0039676C 3A 80 00 7F */ li r20, 0x7f +/* 80399810 00396770 48 00 00 10 */ b lbl_80399820 +lbl_80399814: +/* 80399814 00396774 55 14 06 3E */ clrlwi r20, r8, 0x18 +/* 80399818 00396778 48 00 00 08 */ b lbl_80399820 +lbl_8039981C: +/* 8039981C 0039677C 3A 80 00 80 */ li r20, 0x80 +lbl_80399820: +/* 80399820 00396780 7C E3 22 14 */ add r7, r3, r4 +/* 80399824 00396784 88 E7 00 02 */ lbz r7, 2(r7) +/* 80399828 00396788 7C E7 07 74 */ extsb r7, r7 +/* 8039982C 0039678C 7C E5 3A 14 */ add r7, r5, r7 +/* 80399830 00396790 2C 07 00 7F */ cmpwi r7, 0x7f +/* 80399834 00396794 40 81 00 0C */ ble lbl_80399840 +/* 80399838 00396798 3A 60 00 7F */ li r19, 0x7f +/* 8039983C 0039679C 48 00 00 0C */ b lbl_80399848 +lbl_80399840: +/* 80399840 003967A0 7C E5 FE 70 */ srawi r5, r7, 0x1f +/* 80399844 003967A4 7C F3 28 78 */ andc r19, r7, r5 +lbl_80399848: +/* 80399848 003967A8 7C 63 22 14 */ add r3, r3, r4 +/* 8039984C 003967AC A8 63 00 04 */ lha r3, 4(r3) +/* 80399850 003967B0 7C 75 1A 14 */ add r3, r21, r3 +/* 80399854 003967B4 7C 64 07 34 */ extsh r4, r3 +/* 80399858 003967B8 2C 04 00 FF */ cmpwi r4, 0xff +/* 8039985C 003967BC 40 81 00 0C */ ble lbl_80399868 +/* 80399860 003967C0 38 60 00 FF */ li r3, 0xff +/* 80399864 003967C4 48 00 00 0C */ b lbl_80399870 +lbl_80399868: +/* 80399868 003967C8 7C 83 FE 70 */ srawi r3, r4, 0x1f +/* 8039986C 003967CC 7C 83 18 78 */ andc r3, r4, r3 +lbl_80399870: +/* 80399870 003967D0 2C 06 00 00 */ cmpwi r6, 0 +/* 80399874 003967D4 7C 75 07 34 */ extsh r21, r3 +/* 80399878 003967D8 40 82 00 D0 */ bne lbl_80399948 +/* 8039987C 003967DC 7F 04 C3 78 */ mr r4, r24 +/* 80399880 003967E0 7F 25 CB 78 */ mr r5, r25 +/* 80399884 003967E4 56 6F 06 3E */ clrlwi r15, r19, 0x18 +/* 80399888 003967E8 38 60 00 41 */ li r3, 0x41 +/* 8039988C 003967EC 48 01 80 81 */ bl inpGetMidiCtrl +/* 80399890 003967F0 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 80399894 003967F4 28 00 1F 80 */ cmplwi r0, 0x1f80 +/* 80399898 003967F8 40 81 00 2C */ ble lbl_803998C4 +/* 8039989C 003967FC 55 E3 06 7E */ clrlwi r3, r15, 0x19 +/* 803998A0 00396800 7F 04 C3 78 */ mr r4, r24 +/* 803998A4 00396804 7F 25 CB 78 */ mr r5, r25 +/* 803998A8 00396808 38 E1 00 28 */ addi r7, r1, 0x28 +/* 803998AC 0039680C 38 C0 00 01 */ li r6, 1 +/* 803998B0 00396810 4B FF F4 E1 */ bl do_voice_portamento +/* 803998B4 00396814 80 01 00 28 */ lwz r0, 0x28(r1) +/* 803998B8 00396818 7C 00 00 34 */ cntlzw r0, r0 +/* 803998BC 0039681C 54 00 D9 7E */ srwi r0, r0, 5 +/* 803998C0 00396820 48 00 00 0C */ b lbl_803998CC +lbl_803998C4: +/* 803998C4 00396824 38 60 FF FF */ li r3, -1 +/* 803998C8 00396828 38 00 00 01 */ li r0, 1 +lbl_803998CC: +/* 803998CC 0039682C 28 00 00 00 */ cmplwi r0, 0 +/* 803998D0 00396830 40 82 00 0C */ bne lbl_803998DC +/* 803998D4 00396834 39 E0 FF FF */ li r15, -1 +/* 803998D8 00396838 48 00 00 CC */ b lbl_803999A4 +lbl_803998DC: +/* 803998DC 0039683C 3C 03 00 01 */ addis r0, r3, 1 +/* 803998E0 00396840 28 00 FF FF */ cmplwi r0, 0xffff +/* 803998E4 00396844 41 82 00 0C */ beq lbl_803998F0 +/* 803998E8 00396848 7C 6F 1B 78 */ mr r15, r3 +/* 803998EC 0039684C 48 00 00 B8 */ b lbl_803999A4 +lbl_803998F0: +/* 803998F0 00396850 93 21 00 08 */ stw r25, 8(r1) +/* 803998F4 00396854 56 00 06 30 */ rlwinm r0, r16, 0, 0x18, 0x18 +/* 803998F8 00396858 7E 60 03 78 */ or r0, r19, r0 +/* 803998FC 0039685C 38 60 00 01 */ li r3, 1 +/* 80399900 00396860 93 41 00 0C */ stw r26, 0xc(r1) +/* 80399904 00396864 7F E5 FB 78 */ mr r5, r31 +/* 80399908 00396868 7F C6 F3 78 */ mr r6, r30 +/* 8039990C 0039686C 7E E8 BB 78 */ mr r8, r23 +/* 80399910 00396870 93 61 00 10 */ stw r27, 0x10(r1) +/* 80399914 00396874 7E 89 A3 78 */ mr r9, r20 +/* 80399918 00396878 7F 0A C3 78 */ mr r10, r24 +/* 8039991C 0039687C 56 A4 06 3E */ clrlwi r4, r21, 0x18 +/* 80399920 00396880 93 81 00 14 */ stw r28, 0x14(r1) +/* 80399924 00396884 54 07 06 3E */ clrlwi r7, r0, 0x18 +/* 80399928 00396888 90 61 00 18 */ stw r3, 0x18(r1) +/* 8039992C 0039688C 92 C1 00 1C */ stw r22, 0x1c(r1) +/* 80399930 00396890 92 41 00 20 */ stw r18, 0x20(r1) +/* 80399934 00396894 93 A1 00 24 */ stw r29, 0x24(r1) +/* 80399938 00396898 A0 71 00 00 */ lhz r3, 0(r17) +/* 8039993C 0039689C 48 00 D8 85 */ bl sub_803a71c0 +/* 80399940 003968A0 7C 6F 1B 78 */ mr r15, r3 +/* 80399944 003968A4 48 00 00 60 */ b lbl_803999A4 +lbl_80399948: +/* 80399948 003968A8 93 21 00 08 */ stw r25, 8(r1) +/* 8039994C 003968AC 56 03 06 30 */ rlwinm r3, r16, 0, 0x18, 0x18 +/* 80399950 003968B0 7E 67 1B 78 */ or r7, r19, r3 +/* 80399954 003968B4 39 60 00 01 */ li r11, 1 +/* 80399958 003968B8 93 41 00 0C */ stw r26, 0xc(r1) +/* 8039995C 003968BC 7C 03 03 78 */ mr r3, r0 +/* 80399960 003968C0 7E A4 AB 78 */ mr r4, r21 +/* 80399964 003968C4 7F E5 FB 78 */ mr r5, r31 +/* 80399968 003968C8 93 61 00 10 */ stw r27, 0x10(r1) +/* 8039996C 003968CC 7F C6 F3 78 */ mr r6, r30 +/* 80399970 003968D0 7E E8 BB 78 */ mr r8, r23 +/* 80399974 003968D4 7E 89 A3 78 */ mr r9, r20 +/* 80399978 003968D8 93 81 00 14 */ stw r28, 0x14(r1) +/* 8039997C 003968DC 7F 0A C3 78 */ mr r10, r24 +/* 80399980 003968E0 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 80399984 003968E4 91 61 00 18 */ stw r11, 0x18(r1) +/* 80399988 003968E8 92 C1 00 1C */ stw r22, 0x1c(r1) +/* 8039998C 003968EC 92 41 00 20 */ stw r18, 0x20(r1) +/* 80399990 003968F0 93 A1 00 24 */ stw r29, 0x24(r1) +/* 80399994 003968F4 4B FF F6 9D */ bl StartLayer +/* 80399998 003968F8 7C 6F 1B 78 */ mr r15, r3 +/* 8039999C 003968FC 48 00 00 08 */ b lbl_803999A4 +lbl_803999A0: +/* 803999A0 00396900 39 E0 FF FF */ li r15, -1 +lbl_803999A4: +/* 803999A4 00396904 3C 0F 00 01 */ addis r0, r15, 1 +/* 803999A8 00396908 28 00 FF FF */ cmplwi r0, 0xffff +/* 803999AC 0039690C 41 82 00 40 */ beq lbl_803999EC +/* 803999B0 00396910 7D E3 7B 78 */ mr r3, r15 +/* 803999B4 00396914 48 00 E1 F5 */ bl vidGetInternalId +/* 803999B8 00396918 38 80 00 00 */ li r4, 0 +/* 803999BC 0039691C 48 00 00 24 */ b lbl_803999E0 +lbl_803999C0: +/* 803999C0 00396920 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803999C4 00396924 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803999C8 00396928 1C A0 04 04 */ mulli r5, r0, 0x404 +/* 803999CC 0039692C 38 05 01 1C */ addi r0, r5, 0x11c +/* 803999D0 00396930 7C 83 01 AE */ stbx r4, r3, r0 +/* 803999D4 00396934 38 05 00 EC */ addi r0, r5, 0xec +/* 803999D8 00396938 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803999DC 0039693C 7C 63 00 2E */ lwzx r3, r3, r0 +lbl_803999E0: +/* 803999E0 00396940 3C 03 00 01 */ addis r0, r3, 1 +/* 803999E4 00396944 28 00 FF FF */ cmplwi r0, 0xffff +/* 803999E8 00396948 40 82 FF D8 */ bne lbl_803999C0 +lbl_803999EC: +/* 803999EC 0039694C 7D E3 7B 78 */ mr r3, r15 +/* 803999F0 00396950 48 00 00 A0 */ b lbl_80399A90 +lbl_803999F4: +/* 803999F4 00396954 93 21 00 08 */ stw r25, 8(r1) +/* 803999F8 00396958 38 00 00 01 */ li r0, 1 +/* 803999FC 0039695C 7F C3 F3 78 */ mr r3, r30 +/* 80399A00 00396960 7E A4 AB 78 */ mr r4, r21 +/* 80399A04 00396964 93 41 00 0C */ stw r26, 0xc(r1) +/* 80399A08 00396968 7F E5 FB 78 */ mr r5, r31 +/* 80399A0C 0039696C 7F C6 F3 78 */ mr r6, r30 +/* 80399A10 00396970 7E 67 9B 78 */ mr r7, r19 +/* 80399A14 00396974 93 61 00 10 */ stw r27, 0x10(r1) +/* 80399A18 00396978 7E E8 BB 78 */ mr r8, r23 +/* 80399A1C 0039697C 7E 89 A3 78 */ mr r9, r20 +/* 80399A20 00396980 7F 0A C3 78 */ mr r10, r24 +/* 80399A24 00396984 93 81 00 14 */ stw r28, 0x14(r1) +/* 80399A28 00396988 90 01 00 18 */ stw r0, 0x18(r1) +/* 80399A2C 0039698C 92 C1 00 1C */ stw r22, 0x1c(r1) +/* 80399A30 00396990 92 41 00 20 */ stw r18, 0x20(r1) +/* 80399A34 00396994 93 A1 00 24 */ stw r29, 0x24(r1) +/* 80399A38 00396998 4B FF F5 F9 */ bl StartLayer +/* 80399A3C 0039699C 7C 6F 1B 78 */ mr r15, r3 +/* 80399A40 003969A0 3C 0F 00 01 */ addis r0, r15, 1 +/* 80399A44 003969A4 28 00 FF FF */ cmplwi r0, 0xffff +/* 80399A48 003969A8 41 82 00 3C */ beq lbl_80399A84 +/* 80399A4C 003969AC 48 00 E1 5D */ bl vidGetInternalId +/* 80399A50 003969B0 38 80 00 00 */ li r4, 0 +/* 80399A54 003969B4 48 00 00 24 */ b lbl_80399A78 +lbl_80399A58: +/* 80399A58 003969B8 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 80399A5C 003969BC 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 80399A60 003969C0 1C A0 04 04 */ mulli r5, r0, 0x404 +/* 80399A64 003969C4 38 05 01 1C */ addi r0, r5, 0x11c +/* 80399A68 003969C8 7C 83 01 AE */ stbx r4, r3, r0 +/* 80399A6C 003969CC 38 05 00 EC */ addi r0, r5, 0xec +/* 80399A70 003969D0 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 80399A74 003969D4 7C 63 00 2E */ lwzx r3, r3, r0 +lbl_80399A78: +/* 80399A78 003969D8 3C 03 00 01 */ addis r0, r3, 1 +/* 80399A7C 003969DC 28 00 FF FF */ cmplwi r0, 0xffff +/* 80399A80 003969E0 40 82 FF D8 */ bne lbl_80399A58 +lbl_80399A84: +/* 80399A84 003969E4 7D E3 7B 78 */ mr r3, r15 +/* 80399A88 003969E8 48 00 00 08 */ b lbl_80399A90 +lbl_80399A8C: +/* 80399A8C 003969EC 38 60 FF FF */ li r3, -1 +lbl_80399A90: +/* 80399A90 003969F0 39 61 00 80 */ addi r11, r1, 0x80 +/* 80399A94 003969F4 4B FF 00 05 */ bl func_80389A98 +/* 80399A98 003969F8 80 01 00 84 */ lwz r0, 0x84(r1) +/* 80399A9C 003969FC 7C 08 03 A6 */ mtlr r0 +/* 80399AA0 00396A00 38 21 00 80 */ addi r1, r1, 0x80 +/* 80399AA4 00396A04 4E 80 00 20 */ blr + +.global LowPrecisionHandler +LowPrecisionHandler: +/* 80399AA8 00396A08 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 80399AAC 00396A0C 7C 08 02 A6 */ mflr r0 +/* 80399AB0 00396A10 90 01 00 34 */ stw r0, 0x34(r1) +/* 80399AB4 00396A14 39 61 00 30 */ addi r11, r1, 0x30 +/* 80399AB8 00396A18 4B FE FF C5 */ bl sub_80389a7c +/* 80399ABC 00396A1C 7C 7B 1B 78 */ mr r27, r3 +/* 80399AC0 00396A20 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 80399AC4 00396A24 1C 1B 04 04 */ mulli r0, r27, 0x404 +/* 80399AC8 00396A28 7F 84 02 14 */ add r28, r4, r0 +/* 80399ACC 00396A2C 48 01 96 D1 */ bl hwIsActive +/* 80399AD0 00396A30 28 03 00 00 */ cmplwi r3, 0 +/* 80399AD4 00396A34 40 82 00 10 */ bne lbl_80399AE4 +/* 80399AD8 00396A38 80 1C 00 34 */ lwz r0, 0x34(r28) +/* 80399ADC 00396A3C 28 00 00 00 */ cmplwi r0, 0 +/* 80399AE0 00396A40 41 82 06 D8 */ beq lbl_8039A1B8 +lbl_80399AE4: +/* 80399AE4 00396A44 80 8D AE 88 */ lwz r4, lbl_805A9A48@sda21(r13) +/* 80399AE8 00396A48 7F 9E E3 78 */ mr r30, r28 +/* 80399AEC 00396A4C 80 AD AE 8C */ lwz r5, lbl_805A9A4C@sda21(r13) +/* 80399AF0 00396A50 3B A0 00 00 */ li r29, 0 +/* 80399AF4 00396A54 80 7C 00 28 */ lwz r3, 0x28(r28) +/* 80399AF8 00396A58 80 1C 00 24 */ lwz r0, 0x24(r28) +/* 80399AFC 00396A5C 7F E3 28 10 */ subfc r31, r3, r5 +/* 80399B00 00396A60 90 BC 00 28 */ stw r5, 0x28(r28) +/* 80399B04 00396A64 7C 00 21 10 */ subfe r0, r0, r4 +/* 80399B08 00396A68 90 9C 00 24 */ stw r4, 0x24(r28) +lbl_80399B0C: +/* 80399B0C 00396A6C 80 1E 01 C0 */ lwz r0, 0x1c0(r30) +/* 80399B10 00396A70 28 00 00 00 */ cmplwi r0, 0 +/* 80399B14 00396A74 41 82 00 74 */ beq lbl_80399B88 +/* 80399B18 00396A78 80 1E 01 BC */ lwz r0, 0x1bc(r30) +/* 80399B1C 00396A7C 7C 00 FA 14 */ add r0, r0, r31 +/* 80399B20 00396A80 90 1E 01 BC */ stw r0, 0x1bc(r30) +/* 80399B24 00396A84 80 BE 01 C0 */ lwz r5, 0x1c0(r30) +/* 80399B28 00396A88 80 9E 01 BC */ lwz r4, 0x1bc(r30) +/* 80399B2C 00396A8C 54 A0 C2 3E */ srwi r0, r5, 8 +/* 80399B30 00396A90 7C 64 2B 96 */ divwu r3, r4, r5 +/* 80399B34 00396A94 7C 63 29 D6 */ mullw r3, r3, r5 +/* 80399B38 00396A98 7C 63 20 50 */ subf r3, r3, r4 +/* 80399B3C 00396A9C 54 63 20 36 */ slwi r3, r3, 4 +/* 80399B40 00396AA0 7C 03 03 96 */ divwu r0, r3, r0 +/* 80399B44 00396AA4 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 80399B48 00396AA8 48 01 92 75 */ bl sndSin +/* 80399B4C 00396AAC B0 7E 01 C4 */ sth r3, 0x1c4(r30) +/* 80399B50 00396AB0 A8 7E 01 C4 */ lha r3, 0x1c4(r30) +/* 80399B54 00396AB4 A8 1E 01 C6 */ lha r0, 0x1c6(r30) +/* 80399B58 00396AB8 7C 03 00 00 */ cmpw r3, r0 +/* 80399B5C 00396ABC 41 82 00 2C */ beq lbl_80399B88 +/* 80399B60 00396AC0 B0 7E 01 C6 */ sth r3, 0x1c6(r30) +/* 80399B64 00396AC4 38 7D 01 D4 */ addi r3, r29, 0x1d4 +/* 80399B68 00396AC8 7C 1C 18 AE */ lbzx r0, r28, r3 +/* 80399B6C 00396ACC 28 00 00 00 */ cmplwi r0, 0 +/* 80399B70 00396AD0 41 82 00 18 */ beq lbl_80399B88 +/* 80399B74 00396AD4 38 00 00 00 */ li r0, 0 +/* 80399B78 00396AD8 7C 1C 19 AE */ stbx r0, r28, r3 +/* 80399B7C 00396ADC 80 1C 02 14 */ lwz r0, 0x214(r28) +/* 80399B80 00396AE0 60 00 1F FF */ ori r0, r0, 0x1fff +/* 80399B84 00396AE4 90 1C 02 14 */ stw r0, 0x214(r28) +lbl_80399B88: +/* 80399B88 00396AE8 3B BD 00 01 */ addi r29, r29, 1 +/* 80399B8C 00396AEC 3B DE 00 0C */ addi r30, r30, 0xc +/* 80399B90 00396AF0 28 1D 00 02 */ cmplwi r29, 2 +/* 80399B94 00396AF4 41 80 FF 78 */ blt lbl_80399B0C +/* 80399B98 00396AF8 80 1C 01 14 */ lwz r0, 0x114(r28) +/* 80399B9C 00396AFC 38 80 00 00 */ li r4, 0 +/* 80399BA0 00396B00 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 80399BA4 00396B04 38 60 20 00 */ li r3, 0x2000 +/* 80399BA8 00396B08 7C 00 20 38 */ and r0, r0, r4 +/* 80399BAC 00396B0C 7C A3 18 38 */ and r3, r5, r3 +/* 80399BB0 00396B10 7C 63 22 78 */ xor r3, r3, r4 +/* 80399BB4 00396B14 7C 00 22 78 */ xor r0, r0, r4 +/* 80399BB8 00396B18 7C 60 03 79 */ or. r0, r3, r0 +/* 80399BBC 00396B1C 41 82 00 40 */ beq lbl_80399BFC +/* 80399BC0 00396B20 80 1C 01 48 */ lwz r0, 0x148(r28) +/* 80399BC4 00396B24 7C 00 FA 14 */ add r0, r0, r31 +/* 80399BC8 00396B28 90 1C 01 48 */ stw r0, 0x148(r28) +/* 80399BCC 00396B2C 80 BC 01 44 */ lwz r5, 0x144(r28) +/* 80399BD0 00396B30 80 9C 01 48 */ lwz r4, 0x148(r28) +/* 80399BD4 00396B34 54 A0 C2 3E */ srwi r0, r5, 8 +/* 80399BD8 00396B38 7C 64 2B 96 */ divwu r3, r4, r5 +/* 80399BDC 00396B3C 7C 63 29 D6 */ mullw r3, r3, r5 +/* 80399BE0 00396B40 7C 63 20 50 */ subf r3, r3, r4 +/* 80399BE4 00396B44 54 63 20 36 */ slwi r3, r3, 4 +/* 80399BE8 00396B48 7C 03 03 96 */ divwu r0, r3, r0 +/* 80399BEC 00396B4C 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 80399BF0 00396B50 48 01 91 CD */ bl sndSin +/* 80399BF4 00396B54 7C 60 07 34 */ extsh r0, r3 +/* 80399BF8 00396B58 90 1C 01 4C */ stw r0, 0x14c(r28) +lbl_80399BFC: +/* 80399BFC 00396B5C 88 7C 01 B8 */ lbz r3, 0x1b8(r28) +/* 80399C00 00396B60 88 1C 01 B9 */ lbz r0, 0x1b9(r28) +/* 80399C04 00396B64 7C 60 03 79 */ or. r0, r3, r0 +/* 80399C08 00396B68 41 82 00 B0 */ beq lbl_80399CB8 +/* 80399C0C 00396B6C 28 03 00 00 */ cmplwi r3, 0 +/* 80399C10 00396B70 57 E4 21 36 */ rlwinm r4, r31, 4, 4, 0x1b +/* 80399C14 00396B74 57 E5 01 3E */ clrlwi r5, r31, 4 +/* 80399C18 00396B78 41 82 00 4C */ beq lbl_80399C64 +/* 80399C1C 00396B7C 80 1C 01 B0 */ lwz r0, 0x1b0(r28) +/* 80399C20 00396B80 7C 04 00 50 */ subf r0, r4, r0 +/* 80399C24 00396B84 90 1C 01 B0 */ stw r0, 0x1b0(r28) +/* 80399C28 00396B88 80 1C 01 B0 */ lwz r0, 0x1b0(r28) +/* 80399C2C 00396B8C 2C 00 00 00 */ cmpwi r0, 0 +/* 80399C30 00396B90 41 81 00 1C */ bgt lbl_80399C4C +/* 80399C34 00396B94 88 7C 01 B8 */ lbz r3, 0x1b8(r28) +/* 80399C38 00396B98 38 00 00 00 */ li r0, 0 +/* 80399C3C 00396B9C 54 63 80 1E */ slwi r3, r3, 0x10 +/* 80399C40 00396BA0 90 7C 01 B0 */ stw r3, 0x1b0(r28) +/* 80399C44 00396BA4 90 1C 01 A0 */ stw r0, 0x1a0(r28) +/* 80399C48 00396BA8 48 00 00 1C */ b lbl_80399C64 +lbl_80399C4C: +/* 80399C4C 00396BAC 80 1C 01 A8 */ lwz r0, 0x1a8(r28) +/* 80399C50 00396BB0 80 7C 01 A0 */ lwz r3, 0x1a0(r28) +/* 80399C54 00396BB4 7C 00 66 70 */ srawi r0, r0, 0xc +/* 80399C58 00396BB8 7C 00 29 D6 */ mullw r0, r0, r5 +/* 80399C5C 00396BBC 7C 03 02 14 */ add r0, r3, r0 +/* 80399C60 00396BC0 90 1C 01 A0 */ stw r0, 0x1a0(r28) +lbl_80399C64: +/* 80399C64 00396BC4 88 1C 01 B9 */ lbz r0, 0x1b9(r28) +/* 80399C68 00396BC8 28 00 00 00 */ cmplwi r0, 0 +/* 80399C6C 00396BCC 41 82 00 4C */ beq lbl_80399CB8 +/* 80399C70 00396BD0 80 1C 01 B4 */ lwz r0, 0x1b4(r28) +/* 80399C74 00396BD4 7C 04 00 50 */ subf r0, r4, r0 +/* 80399C78 00396BD8 90 1C 01 B4 */ stw r0, 0x1b4(r28) +/* 80399C7C 00396BDC 80 1C 01 B4 */ lwz r0, 0x1b4(r28) +/* 80399C80 00396BE0 2C 00 00 00 */ cmpwi r0, 0 +/* 80399C84 00396BE4 41 81 00 1C */ bgt lbl_80399CA0 +/* 80399C88 00396BE8 88 7C 01 B9 */ lbz r3, 0x1b9(r28) +/* 80399C8C 00396BEC 38 00 00 00 */ li r0, 0 +/* 80399C90 00396BF0 54 63 80 1E */ slwi r3, r3, 0x10 +/* 80399C94 00396BF4 90 7C 01 B4 */ stw r3, 0x1b4(r28) +/* 80399C98 00396BF8 90 1C 01 A4 */ stw r0, 0x1a4(r28) +/* 80399C9C 00396BFC 48 00 00 1C */ b lbl_80399CB8 +lbl_80399CA0: +/* 80399CA0 00396C00 80 1C 01 AC */ lwz r0, 0x1ac(r28) +/* 80399CA4 00396C04 80 7C 01 A4 */ lwz r3, 0x1a4(r28) +/* 80399CA8 00396C08 7C 00 66 70 */ srawi r0, r0, 0xc +/* 80399CAC 00396C0C 7C 00 29 D6 */ mullw r0, r0, r5 +/* 80399CB0 00396C10 7C 03 02 14 */ add r0, r3, r0 +/* 80399CB4 00396C14 90 1C 01 A4 */ stw r0, 0x1a4(r28) +lbl_80399CB8: +/* 80399CB8 00396C18 38 00 00 02 */ li r0, 2 +/* 80399CBC 00396C1C 7F 85 E3 78 */ mr r5, r28 +/* 80399CC0 00396C20 7C 09 03 A6 */ mtctr r0 +lbl_80399CC4: +/* 80399CC4 00396C24 80 65 01 70 */ lwz r3, 0x170(r5) +/* 80399CC8 00396C28 80 05 01 80 */ lwz r0, 0x180(r5) +/* 80399CCC 00396C2C 7C 03 00 40 */ cmplw r3, r0 +/* 80399CD0 00396C30 41 82 00 7C */ beq lbl_80399D4C +/* 80399CD4 00396C34 80 05 01 88 */ lwz r0, 0x188(r5) +/* 80399CD8 00396C38 7C 1F 00 50 */ subf r0, r31, r0 +/* 80399CDC 00396C3C 90 05 01 88 */ stw r0, 0x188(r5) +/* 80399CE0 00396C40 80 05 01 88 */ lwz r0, 0x188(r5) +/* 80399CE4 00396C44 2C 00 00 00 */ cmpwi r0, 0 +/* 80399CE8 00396C48 41 81 00 18 */ bgt lbl_80399D00 +/* 80399CEC 00396C4C 80 65 01 80 */ lwz r3, 0x180(r5) +/* 80399CF0 00396C50 38 00 00 00 */ li r0, 0 +/* 80399CF4 00396C54 90 65 01 70 */ stw r3, 0x170(r5) +/* 80399CF8 00396C58 90 05 01 88 */ stw r0, 0x188(r5) +/* 80399CFC 00396C5C 48 00 00 44 */ b lbl_80399D40 +lbl_80399D00: +/* 80399D00 00396C60 80 65 01 78 */ lwz r3, 0x178(r5) +/* 80399D04 00396C64 54 04 C2 3E */ srwi r4, r0, 8 +/* 80399D08 00396C68 80 05 01 80 */ lwz r0, 0x180(r5) +/* 80399D0C 00396C6C 7C 64 19 D6 */ mullw r3, r4, r3 +/* 80399D10 00396C70 7C 03 00 50 */ subf r0, r3, r0 +/* 80399D14 00396C74 90 05 01 70 */ stw r0, 0x170(r5) +/* 80399D18 00396C78 80 65 01 70 */ lwz r3, 0x170(r5) +/* 80399D1C 00396C7C 2C 03 00 00 */ cmpwi r3, 0 +/* 80399D20 00396C80 40 80 00 0C */ bge lbl_80399D2C +/* 80399D24 00396C84 38 00 00 00 */ li r0, 0 +/* 80399D28 00396C88 48 00 00 14 */ b lbl_80399D3C +lbl_80399D2C: +/* 80399D2C 00396C8C 3C 00 00 7F */ lis r0, 0x7f +/* 80399D30 00396C90 7C 03 00 40 */ cmplw r3, r0 +/* 80399D34 00396C94 41 81 00 08 */ bgt lbl_80399D3C +/* 80399D38 00396C98 7C 60 1B 78 */ mr r0, r3 +lbl_80399D3C: +/* 80399D3C 00396C9C 90 05 01 70 */ stw r0, 0x170(r5) +lbl_80399D40: +/* 80399D40 00396CA0 80 1C 01 14 */ lwz r0, 0x114(r28) +/* 80399D44 00396CA4 60 00 20 00 */ ori r0, r0, 0x2000 +/* 80399D48 00396CA8 90 1C 01 14 */ stw r0, 0x114(r28) +lbl_80399D4C: +/* 80399D4C 00396CAC 38 A5 00 04 */ addi r5, r5, 4 +/* 80399D50 00396CB0 42 00 FF 74 */ bdnz lbl_80399CC4 +/* 80399D54 00396CB4 80 7C 01 14 */ lwz r3, 0x114(r28) +/* 80399D58 00396CB8 38 00 02 00 */ li r0, 0x200 +/* 80399D5C 00396CBC 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 80399D60 00396CC0 38 80 00 00 */ li r4, 0 +/* 80399D64 00396CC4 7C 60 00 38 */ and r0, r3, r0 +/* 80399D68 00396CC8 7C A3 20 38 */ and r3, r5, r4 +/* 80399D6C 00396CCC 7C 63 22 78 */ xor r3, r3, r4 +/* 80399D70 00396CD0 7C 00 22 78 */ xor r0, r0, r4 +/* 80399D74 00396CD4 7C 60 03 79 */ or. r0, r3, r0 +/* 80399D78 00396CD8 41 82 00 3C */ beq lbl_80399DB4 +/* 80399D7C 00396CDC 38 7C 01 DC */ addi r3, r28, 0x1dc +/* 80399D80 00396CE0 38 81 00 0A */ addi r4, r1, 0xa +/* 80399D84 00396CE4 38 A1 00 08 */ addi r5, r1, 8 +/* 80399D88 00396CE8 48 00 FB C5 */ bl adsrHandleLowPrecision +/* 80399D8C 00396CEC 28 03 00 00 */ cmplwi r3, 0 +/* 80399D90 00396CF0 41 82 00 24 */ beq lbl_80399DB4 +/* 80399D94 00396CF4 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 80399D98 00396CF8 38 00 FF FF */ li r0, -1 +/* 80399D9C 00396CFC 80 9C 01 14 */ lwz r4, 0x114(r28) +/* 80399DA0 00396D00 38 60 FD FF */ li r3, -513 +/* 80399DA4 00396D04 7C A0 00 38 */ and r0, r5, r0 +/* 80399DA8 00396D08 90 1C 01 18 */ stw r0, 0x118(r28) +/* 80399DAC 00396D0C 7C 80 18 38 */ and r0, r4, r3 +/* 80399DB0 00396D10 90 1C 01 14 */ stw r0, 0x114(r28) +lbl_80399DB4: +/* 80399DB4 00396D14 88 1C 01 2E */ lbz r0, 0x12e(r28) +/* 80399DB8 00396D18 3C 80 51 EC */ lis r4, 0x51EB851F@ha +/* 80399DBC 00396D1C 3C 60 00 01 */ lis r3, 0x00010030@ha +/* 80399DC0 00396D20 A0 FC 01 2C */ lhz r7, 0x12c(r28) +/* 80399DC4 00396D24 7C 00 07 74 */ extsb r0, r0 +/* 80399DC8 00396D28 38 A4 85 1F */ addi r5, r4, 0x51EB851F@l +/* 80399DCC 00396D2C 54 04 80 1E */ slwi r4, r0, 0x10 +/* 80399DD0 00396D30 80 1C 01 14 */ lwz r0, 0x114(r28) +/* 80399DD4 00396D34 7C C5 20 96 */ mulhw r6, r5, r4 +/* 80399DD8 00396D38 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 80399DDC 00396D3C 38 80 00 00 */ li r4, 0 +/* 80399DE0 00396D40 38 63 00 30 */ addi r3, r3, 0x00010030@l +/* 80399DE4 00396D44 7C 00 20 38 */ and r0, r0, r4 +/* 80399DE8 00396D48 7C A3 18 38 */ and r3, r5, r3 +/* 80399DEC 00396D4C 7C C5 2E 70 */ srawi r5, r6, 5 +/* 80399DF0 00396D50 7C 63 22 78 */ xor r3, r3, r4 +/* 80399DF4 00396D54 7C 00 22 78 */ xor r0, r0, r4 +/* 80399DF8 00396D58 54 E4 80 1E */ slwi r4, r7, 0x10 +/* 80399DFC 00396D5C 7C 60 03 79 */ or. r0, r3, r0 +/* 80399E00 00396D60 54 A3 0F FE */ srwi r3, r5, 0x1f +/* 80399E04 00396D64 7C 65 1A 14 */ add r3, r5, r3 +/* 80399E08 00396D68 7F A4 1A 14 */ add r29, r4, r3 +/* 80399E0C 00396D6C 41 82 00 24 */ beq lbl_80399E30 +/* 80399E10 00396D70 88 1C 01 21 */ lbz r0, 0x121(r28) +/* 80399E14 00396D74 28 00 00 FF */ cmplwi r0, 0xff +/* 80399E18 00396D78 41 82 00 50 */ beq lbl_80399E68 +/* 80399E1C 00396D7C 7F 83 E3 78 */ mr r3, r28 +/* 80399E20 00396D80 48 01 85 BD */ bl sub_803b23dc +/* 80399E24 00396D84 B0 7C 01 D8 */ sth r3, 0x1d8(r28) +/* 80399E28 00396D88 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 80399E2C 00396D8C 48 00 00 08 */ b lbl_80399E34 +lbl_80399E30: +/* 80399E30 00396D90 A0 7C 01 D8 */ lhz r3, 0x1d8(r28) +lbl_80399E34: +/* 80399E34 00396D94 2C 03 20 00 */ cmpwi r3, 0x2000 +/* 80399E38 00396D98 41 82 00 30 */ beq lbl_80399E68 +/* 80399E3C 00396D9C 34 63 E0 00 */ addic. r3, r3, -8192 +/* 80399E40 00396DA0 40 80 00 18 */ bge lbl_80399E58 +/* 80399E44 00396DA4 88 1C 01 D6 */ lbz r0, 0x1d6(r28) +/* 80399E48 00396DA8 7C 00 19 D6 */ mullw r0, r0, r3 +/* 80399E4C 00396DAC 54 00 18 38 */ slwi r0, r0, 3 +/* 80399E50 00396DB0 7F BD 02 14 */ add r29, r29, r0 +/* 80399E54 00396DB4 48 00 00 14 */ b lbl_80399E68 +lbl_80399E58: +/* 80399E58 00396DB8 88 1C 01 D7 */ lbz r0, 0x1d7(r28) +/* 80399E5C 00396DBC 7C 00 19 D6 */ mullw r0, r0, r3 +/* 80399E60 00396DC0 54 00 18 38 */ slwi r0, r0, 3 +/* 80399E64 00396DC4 7F BD 02 14 */ add r29, r29, r0 +lbl_80399E68: +/* 80399E68 00396DC8 80 1C 01 14 */ lwz r0, 0x114(r28) +/* 80399E6C 00396DCC 38 80 00 00 */ li r4, 0 +/* 80399E70 00396DD0 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 80399E74 00396DD4 38 60 20 00 */ li r3, 0x2000 +/* 80399E78 00396DD8 7C 00 20 38 */ and r0, r0, r4 +/* 80399E7C 00396DDC 7C A3 18 38 */ and r3, r5, r3 +/* 80399E80 00396DE0 7C 63 22 78 */ xor r3, r3, r4 +/* 80399E84 00396DE4 7C 00 22 78 */ xor r0, r0, r4 +/* 80399E88 00396DE8 7C 60 03 79 */ or. r0, r3, r0 +/* 80399E8C 00396DEC 41 82 00 A8 */ beq lbl_80399F34 +/* 80399E90 00396DF0 7F 83 E3 78 */ mr r3, r28 +/* 80399E94 00396DF4 48 01 85 D9 */ bl sub_803b246c +/* 80399E98 00396DF8 88 1C 01 41 */ lbz r0, 0x141(r28) +/* 80399E9C 00396DFC 3C 80 51 EC */ lis r4, 0x51EB851F@ha +/* 80399EA0 00396E00 A8 DC 01 50 */ lha r6, 0x150(r28) +/* 80399EA4 00396E04 38 84 85 1F */ addi r4, r4, 0x51EB851F@l +/* 80399EA8 00396E08 54 00 40 2E */ slwi r0, r0, 8 +/* 80399EAC 00396E0C 88 BC 01 40 */ lbz r5, 0x140(r28) +/* 80399EB0 00396E10 7C 84 00 96 */ mulhw r4, r4, r0 +/* 80399EB4 00396E14 7C C0 07 35 */ extsh. r0, r6 +/* 80399EB8 00396E18 54 A5 40 2E */ slwi r5, r5, 8 +/* 80399EBC 00396E1C 7C 80 2E 70 */ srawi r0, r4, 5 +/* 80399EC0 00396E20 54 04 0F FE */ srwi r4, r0, 0x1f +/* 80399EC4 00396E24 7C 00 22 14 */ add r0, r0, r4 +/* 80399EC8 00396E28 7C E5 02 14 */ add r7, r5, r0 +/* 80399ECC 00396E2C 41 82 00 18 */ beq lbl_80399EE4 +/* 80399ED0 00396E30 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 80399ED4 00396E34 7C 00 3E 70 */ srawi r0, r0, 7 +/* 80399ED8 00396E38 7C 06 01 D6 */ mullw r0, r6, r0 +/* 80399EDC 00396E3C 7C 00 3E 70 */ srawi r0, r0, 7 +/* 80399EE0 00396E40 7C E7 02 14 */ add r7, r7, r0 +lbl_80399EE4: +/* 80399EE4 00396E44 80 1C 01 14 */ lwz r0, 0x114(r28) +/* 80399EE8 00396E48 38 A0 00 00 */ li r5, 0 +/* 80399EEC 00396E4C 80 DC 01 18 */ lwz r6, 0x118(r28) +/* 80399EF0 00396E50 38 80 40 00 */ li r4, 0x4000 +/* 80399EF4 00396E54 7C 00 28 38 */ and r0, r0, r5 +/* 80399EF8 00396E58 7C C4 20 38 */ and r4, r6, r4 +/* 80399EFC 00396E5C 7C 84 2A 78 */ xor r4, r4, r5 +/* 80399F00 00396E60 7C 00 2A 78 */ xor r0, r0, r5 +/* 80399F04 00396E64 7C 80 03 79 */ or. r0, r4, r0 +/* 80399F08 00396E68 41 82 00 1C */ beq lbl_80399F24 +/* 80399F0C 00396E6C 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 80399F10 00396E70 80 7C 01 4C */ lwz r3, 0x14c(r28) +/* 80399F14 00396E74 7C 00 3E 70 */ srawi r0, r0, 7 +/* 80399F18 00396E78 7C 03 01 D6 */ mullw r0, r3, r0 +/* 80399F1C 00396E7C 7C 00 3E 70 */ srawi r0, r0, 7 +/* 80399F20 00396E80 48 00 00 08 */ b lbl_80399F28 +lbl_80399F24: +/* 80399F24 00396E84 80 1C 01 4C */ lwz r0, 0x14c(r28) +lbl_80399F28: +/* 80399F28 00396E88 7C 07 01 D6 */ mullw r0, r7, r0 +/* 80399F2C 00396E8C 7C 00 26 70 */ srawi r0, r0, 4 +/* 80399F30 00396E90 7F BD 02 14 */ add r29, r29, r0 +lbl_80399F34: +/* 80399F34 00396E94 88 9C 01 21 */ lbz r4, 0x121(r28) +/* 80399F38 00396E98 28 04 00 FF */ cmplwi r4, 0xff +/* 80399F3C 00396E9C 41 82 01 24 */ beq lbl_8039A060 +/* 80399F40 00396EA0 88 BC 01 22 */ lbz r5, 0x122(r28) +/* 80399F44 00396EA4 38 60 00 41 */ li r3, 0x41 +/* 80399F48 00396EA8 48 01 79 C5 */ bl inpGetMidiCtrl +/* 80399F4C 00396EAC A0 1C 01 32 */ lhz r0, 0x132(r28) +/* 80399F50 00396EB0 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 80399F54 00396EB4 7C 04 00 40 */ cmplw r4, r0 +/* 80399F58 00396EB8 40 82 00 30 */ bne lbl_80399F88 +/* 80399F5C 00396EBC 3C A0 00 02 */ lis r5, 0x00021000@ha +/* 80399F60 00396EC0 80 FC 01 14 */ lwz r7, 0x114(r28) +/* 80399F64 00396EC4 80 9C 01 18 */ lwz r4, 0x118(r28) +/* 80399F68 00396EC8 38 05 10 00 */ addi r0, r5, 0x00021000@l +/* 80399F6C 00396ECC 38 C0 00 00 */ li r6, 0 +/* 80399F70 00396ED0 7C 84 00 38 */ and r4, r4, r0 +/* 80399F74 00396ED4 7C E0 30 38 */ and r0, r7, r6 +/* 80399F78 00396ED8 7C 84 2A 78 */ xor r4, r4, r5 +/* 80399F7C 00396EDC 7C 00 32 78 */ xor r0, r0, r6 +/* 80399F80 00396EE0 7C 80 03 79 */ or. r0, r4, r0 +/* 80399F84 00396EE4 40 82 00 DC */ bne lbl_8039A060 +lbl_80399F88: +/* 80399F88 00396EE8 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 80399F8C 00396EEC 28 00 1F 80 */ cmplwi r0, 0x1f80 +/* 80399F90 00396EF0 41 81 00 28 */ bgt lbl_80399FB8 +/* 80399F94 00396EF4 80 DC 01 18 */ lwz r6, 0x118(r28) +/* 80399F98 00396EF8 38 00 FB FF */ li r0, -1025 +/* 80399F9C 00396EFC 80 BC 01 14 */ lwz r5, 0x114(r28) +/* 80399FA0 00396F00 38 80 FF FF */ li r4, -1 +/* 80399FA4 00396F04 7C C0 00 38 */ and r0, r6, r0 +/* 80399FA8 00396F08 90 1C 01 18 */ stw r0, 0x118(r28) +/* 80399FAC 00396F0C 7C A0 20 38 */ and r0, r5, r4 +/* 80399FB0 00396F10 90 1C 01 14 */ stw r0, 0x114(r28) +/* 80399FB4 00396F14 48 00 00 9C */ b lbl_8039A050 +lbl_80399FB8: +/* 80399FB8 00396F18 80 9C 01 14 */ lwz r4, 0x114(r28) +/* 80399FBC 00396F1C 38 C0 00 00 */ li r6, 0 +/* 80399FC0 00396F20 80 FC 01 18 */ lwz r7, 0x118(r28) +/* 80399FC4 00396F24 38 00 04 00 */ li r0, 0x400 +/* 80399FC8 00396F28 7C 85 30 38 */ and r5, r4, r6 +/* 80399FCC 00396F2C 7C E0 00 38 */ and r0, r7, r0 +/* 80399FD0 00396F30 7C 04 32 78 */ xor r4, r0, r6 +/* 80399FD4 00396F34 7C A0 32 78 */ xor r0, r5, r6 +/* 80399FD8 00396F38 7C 80 03 79 */ or. r0, r4, r0 +/* 80399FDC 00396F3C 40 82 00 68 */ bne lbl_8039A044 +/* 80399FE0 00396F40 3C 80 00 02 */ lis r4, 2 +/* 80399FE4 00396F44 7C A0 32 78 */ xor r0, r5, r6 +/* 80399FE8 00396F48 7C E4 20 38 */ and r4, r7, r4 +/* 80399FEC 00396F4C 7C 84 32 78 */ xor r4, r4, r6 +/* 80399FF0 00396F50 7C 80 03 79 */ or. r0, r4, r0 +/* 80399FF4 00396F54 40 82 00 50 */ bne lbl_8039A044 +/* 80399FF8 00396F58 88 1C 01 31 */ lbz r0, 0x131(r28) +/* 80399FFC 00396F5C 28 00 00 01 */ cmplwi r0, 1 +/* 8039A000 00396F60 40 82 00 30 */ bne lbl_8039A030 +/* 8039A004 00396F64 38 80 10 00 */ li r4, 0x1000 +/* 8039A008 00396F68 7C A0 32 78 */ xor r0, r5, r6 +/* 8039A00C 00396F6C 7C E4 20 38 */ and r4, r7, r4 +/* 8039A010 00396F70 7C 84 32 78 */ xor r4, r4, r6 +/* 8039A014 00396F74 7C 80 03 79 */ or. r0, r4, r0 +/* 8039A018 00396F78 40 82 00 0C */ bne lbl_8039A024 +/* 8039A01C 00396F7C 90 DC 01 3C */ stw r6, 0x13c(r28) +/* 8039A020 00396F80 48 00 00 18 */ b lbl_8039A038 +lbl_8039A024: +/* 8039A024 00396F84 80 1C 01 34 */ lwz r0, 0x134(r28) +/* 8039A028 00396F88 90 1C 01 3C */ stw r0, 0x13c(r28) +/* 8039A02C 00396F8C 48 00 00 0C */ b lbl_8039A038 +lbl_8039A030: +/* 8039A030 00396F90 80 1C 01 34 */ lwz r0, 0x134(r28) +/* 8039A034 00396F94 90 1C 01 3C */ stw r0, 0x13c(r28) +lbl_8039A038: +/* 8039A038 00396F98 88 1C 01 30 */ lbz r0, 0x130(r28) +/* 8039A03C 00396F9C 54 00 80 1E */ slwi r0, r0, 0x10 +/* 8039A040 00396FA0 90 1C 01 38 */ stw r0, 0x138(r28) +lbl_8039A044: +/* 8039A044 00396FA4 80 1C 01 18 */ lwz r0, 0x118(r28) +/* 8039A048 00396FA8 60 00 04 00 */ ori r0, r0, 0x400 +/* 8039A04C 00396FAC 90 1C 01 18 */ stw r0, 0x118(r28) +lbl_8039A050: +/* 8039A050 00396FB0 80 1C 01 18 */ lwz r0, 0x118(r28) +/* 8039A054 00396FB4 60 00 10 00 */ ori r0, r0, 0x1000 +/* 8039A058 00396FB8 90 1C 01 18 */ stw r0, 0x118(r28) +/* 8039A05C 00396FBC B0 7C 01 32 */ sth r3, 0x132(r28) +lbl_8039A060: +/* 8039A060 00396FC0 80 1C 01 14 */ lwz r0, 0x114(r28) +/* 8039A064 00396FC4 38 80 00 00 */ li r4, 0 +/* 8039A068 00396FC8 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 8039A06C 00396FCC 38 60 04 00 */ li r3, 0x400 +/* 8039A070 00396FD0 7C 00 20 38 */ and r0, r0, r4 +/* 8039A074 00396FD4 7F BE EB 78 */ mr r30, r29 +/* 8039A078 00396FD8 7C A3 18 38 */ and r3, r5, r3 +/* 8039A07C 00396FDC 7C 63 22 78 */ xor r3, r3, r4 +/* 8039A080 00396FE0 7C 00 22 78 */ xor r0, r0, r4 +/* 8039A084 00396FE4 7C 60 03 79 */ or. r0, r3, r0 +/* 8039A088 00396FE8 41 82 00 78 */ beq lbl_8039A100 +/* 8039A08C 00396FEC 80 7C 01 3C */ lwz r3, 0x13c(r28) +/* 8039A090 00396FF0 80 1C 01 34 */ lwz r0, 0x134(r28) +/* 8039A094 00396FF4 7C 03 00 50 */ subf r0, r3, r0 +/* 8039A098 00396FF8 54 04 C2 3F */ rlwinm. r4, r0, 0x18, 8, 0x1f +/* 8039A09C 00396FFC 40 81 00 64 */ ble lbl_8039A100 +/* 8039A0A0 00397000 80 7C 01 38 */ lwz r3, 0x138(r28) +/* 8039A0A4 00397004 7C 03 E8 50 */ subf r0, r3, r29 +/* 8039A0A8 00397008 7C 03 E8 40 */ cmplw r3, r29 +/* 8039A0AC 0039700C 7C 00 46 70 */ srawi r0, r0, 8 +/* 8039A0B0 00397010 7C 1F 01 D6 */ mullw r0, r31, r0 +/* 8039A0B4 00397014 7C 00 23 D6 */ divw r0, r0, r4 +/* 8039A0B8 00397018 7C 03 02 14 */ add r0, r3, r0 +/* 8039A0BC 0039701C 90 1C 01 38 */ stw r0, 0x138(r28) +/* 8039A0C0 00397020 40 80 00 10 */ bge lbl_8039A0D0 +/* 8039A0C4 00397024 80 1C 01 38 */ lwz r0, 0x138(r28) +/* 8039A0C8 00397028 7C 00 E8 40 */ cmplw r0, r29 +/* 8039A0CC 0039702C 41 80 00 18 */ blt lbl_8039A0E4 +lbl_8039A0D0: +/* 8039A0D0 00397030 7C 03 E8 40 */ cmplw r3, r29 +/* 8039A0D4 00397034 40 81 00 24 */ ble lbl_8039A0F8 +/* 8039A0D8 00397038 80 1C 01 38 */ lwz r0, 0x138(r28) +/* 8039A0DC 0039703C 7C 00 E8 40 */ cmplw r0, r29 +/* 8039A0E0 00397040 40 81 00 18 */ ble lbl_8039A0F8 +lbl_8039A0E4: +/* 8039A0E4 00397044 80 1C 01 3C */ lwz r0, 0x13c(r28) +/* 8039A0E8 00397048 83 DC 01 38 */ lwz r30, 0x138(r28) +/* 8039A0EC 0039704C 7C 00 FA 14 */ add r0, r0, r31 +/* 8039A0F0 00397050 90 1C 01 3C */ stw r0, 0x13c(r28) +/* 8039A0F4 00397054 48 00 00 0C */ b lbl_8039A100 +lbl_8039A0F8: +/* 8039A0F8 00397058 80 1C 01 34 */ lwz r0, 0x134(r28) +/* 8039A0FC 0039705C 90 1C 01 3C */ stw r0, 0x13c(r28) +lbl_8039A100: +/* 8039A100 00397060 80 7C 01 14 */ lwz r3, 0x114(r28) +/* 8039A104 00397064 38 00 02 00 */ li r0, 0x200 +/* 8039A108 00397068 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 8039A10C 0039706C 38 80 00 00 */ li r4, 0 +/* 8039A110 00397070 7C 60 00 38 */ and r0, r3, r0 +/* 8039A114 00397074 7C A3 20 38 */ and r3, r5, r4 +/* 8039A118 00397078 7C 63 22 78 */ xor r3, r3, r4 +/* 8039A11C 0039707C 7C 00 22 78 */ xor r0, r0, r4 +/* 8039A120 00397080 7C 60 03 79 */ or. r0, r3, r0 +/* 8039A124 00397084 41 82 00 1C */ beq lbl_8039A140 +/* 8039A128 00397088 80 1C 01 E4 */ lwz r0, 0x1e4(r28) +/* 8039A12C 0039708C A8 7C 02 04 */ lha r3, 0x204(r28) +/* 8039A130 00397090 7C 00 86 70 */ srawi r0, r0, 0x10 +/* 8039A134 00397094 7C 03 01 D6 */ mullw r0, r3, r0 +/* 8039A138 00397098 7C 00 3E 70 */ srawi r0, r0, 7 +/* 8039A13C 0039709C 7F DE 02 14 */ add r30, r30, r0 +lbl_8039A140: +/* 8039A140 003970A0 80 9C 01 24 */ lwz r4, 0x124(r28) +/* 8039A144 003970A4 57 C3 86 3E */ rlwinm r3, r30, 0x10, 0x18, 0x1f +/* 8039A148 003970A8 48 00 EF E5 */ bl sndGetPitch +/* 8039A14C 003970AC 57 DE 04 3F */ clrlwi. r30, r30, 0x10 +/* 8039A150 003970B0 54 7D 80 1E */ slwi r29, r3, 0x10 +/* 8039A154 003970B4 41 82 00 20 */ beq lbl_8039A174 +/* 8039A158 003970B8 57 BF 84 3E */ srwi r31, r29, 0x10 +/* 8039A15C 003970BC 7F E3 FB 78 */ mr r3, r31 +/* 8039A160 003970C0 48 00 EF 91 */ bl sndPitchUpOne +/* 8039A164 003970C4 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 8039A168 003970C8 7C 1F 00 50 */ subf r0, r31, r0 +/* 8039A16C 003970CC 7C 1E 01 D6 */ mullw r0, r30, r0 +/* 8039A170 003970D0 7F BD 02 14 */ add r29, r29, r0 +lbl_8039A174: +/* 8039A174 003970D4 80 1C 01 A4 */ lwz r0, 0x1a4(r28) +/* 8039A178 003970D8 7F 83 E3 78 */ mr r3, r28 +/* 8039A17C 003970DC 80 9C 01 A0 */ lwz r4, 0x1a0(r28) +/* 8039A180 003970E0 7F A0 EA 14 */ add r29, r0, r29 +/* 8039A184 003970E4 7F A4 EA 14 */ add r29, r4, r29 +/* 8039A188 003970E8 48 01 82 9D */ bl sub_803b2424 +/* 8039A18C 003970EC 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 8039A190 003970F0 57 A0 84 3E */ srwi r0, r29, 0x10 +/* 8039A194 003970F4 7C 00 19 D6 */ mullw r0, r0, r3 +/* 8039A198 003970F8 7F 63 DB 78 */ mr r3, r27 +/* 8039A19C 003970FC 54 04 9C 3E */ rlwinm r4, r0, 0x13, 0x10, 0x1f +/* 8039A1A0 00397100 B0 9C 02 06 */ sth r4, 0x206(r28) +/* 8039A1A4 00397104 48 01 94 B9 */ bl hwSetPitch +/* 8039A1A8 00397108 7F 83 E3 78 */ mr r3, r28 +/* 8039A1AC 0039710C 38 80 00 00 */ li r4, 0 +/* 8039A1B0 00397110 38 A0 0F 00 */ li r5, 0xf00 +/* 8039A1B4 00397114 48 00 07 35 */ bl synthAddJob +lbl_8039A1B8: +/* 8039A1B8 00397118 88 1C 00 A8 */ lbz r0, 0xa8(r28) +/* 8039A1BC 0039711C 28 00 00 00 */ cmplwi r0, 0 +/* 8039A1C0 00397120 41 82 00 14 */ beq lbl_8039A1D4 +/* 8039A1C4 00397124 38 60 00 00 */ li r3, 0 +/* 8039A1C8 00397128 38 00 1F FF */ li r0, 0x1fff +/* 8039A1CC 0039712C 98 7C 00 A8 */ stb r3, 0xa8(r28) +/* 8039A1D0 00397130 90 1C 02 14 */ stw r0, 0x214(r28) +lbl_8039A1D4: +/* 8039A1D4 00397134 39 61 00 30 */ addi r11, r1, 0x30 +/* 8039A1D8 00397138 4B FE F8 F1 */ bl _restgpr_27 +/* 8039A1DC 0039713C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 8039A1E0 00397140 7C 08 03 A6 */ mtlr r0 +/* 8039A1E4 00397144 38 21 00 30 */ addi r1, r1, 0x30 +/* 8039A1E8 00397148 4E 80 00 20 */ blr + +.global sub_8039a1ec +sub_8039a1ec: +/* 8039A1EC 0039714C 94 21 FF 60 */ stwu r1, -0xa0(r1) +/* 8039A1F0 00397150 7C 08 02 A6 */ mflr r0 +/* 8039A1F4 00397154 90 01 00 A4 */ stw r0, 0xa4(r1) +/* 8039A1F8 00397158 DB E1 00 90 */ stfd f31, 0x90(r1) +/* 8039A1FC 0039715C F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0 +/* 8039A200 00397160 DB C1 00 80 */ stfd f30, 0x80(r1) +/* 8039A204 00397164 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0 +/* 8039A208 00397168 DB A1 00 70 */ stfd f29, 0x70(r1) +/* 8039A20C 0039716C F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0 +/* 8039A210 00397170 DB 81 00 60 */ stfd f28, 0x60(r1) +/* 8039A214 00397174 F3 81 00 68 */ psq_st f28, 104(r1), 0, qr0 +/* 8039A218 00397178 93 E1 00 5C */ stw r31, 0x5c(r1) +/* 8039A21C 0039717C 93 C1 00 58 */ stw r30, 0x58(r1) +/* 8039A220 00397180 93 A1 00 54 */ stw r29, 0x54(r1) +/* 8039A224 00397184 93 81 00 50 */ stw r28, 0x50(r1) +/* 8039A228 00397188 7C 7D 1B 78 */ mr r29, r3 +/* 8039A22C 0039718C 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039A230 00397190 1C 1D 04 04 */ mulli r0, r29, 0x404 +/* 8039A234 00397194 7F C4 02 14 */ add r30, r4, r0 +/* 8039A238 00397198 48 01 8F 65 */ bl hwIsActive +/* 8039A23C 0039719C 28 03 00 00 */ cmplwi r3, 0 +/* 8039A240 003971A0 40 82 00 10 */ bne lbl_8039A250 +/* 8039A244 003971A4 80 1E 00 34 */ lwz r0, 0x34(r30) +/* 8039A248 003971A8 28 00 00 00 */ cmplwi r0, 0 +/* 8039A24C 003971AC 41 82 06 40 */ beq lbl_8039A88C +lbl_8039A250: +/* 8039A250 003971B0 80 CD AE 88 */ lwz r6, lbl_805A9A48@sda21(r13) +/* 8039A254 003971B4 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 8039A258 003971B8 80 ED AE 8C */ lwz r7, lbl_805A9A4C@sda21(r13) +/* 8039A25C 003971BC 38 63 80 00 */ addi r3, r3, 0x00008000@l +/* 8039A260 003971C0 80 BE 00 30 */ lwz r5, 0x30(r30) +/* 8039A264 003971C4 38 80 00 00 */ li r4, 0 +/* 8039A268 003971C8 80 1E 00 2C */ lwz r0, 0x2c(r30) +/* 8039A26C 003971CC 7F E5 38 10 */ subfc r31, r5, r7 +/* 8039A270 003971D0 90 FE 00 30 */ stw r7, 0x30(r30) +/* 8039A274 003971D4 7C 00 31 10 */ subfe r0, r0, r6 +/* 8039A278 003971D8 90 DE 00 2C */ stw r6, 0x2c(r30) +/* 8039A27C 003971DC 80 BE 01 14 */ lwz r5, 0x114(r30) +/* 8039A280 003971E0 80 DE 01 18 */ lwz r6, 0x118(r30) +/* 8039A284 003971E4 7C A0 20 38 */ and r0, r5, r4 +/* 8039A288 003971E8 7C C3 18 38 */ and r3, r6, r3 +/* 8039A28C 003971EC 7C 63 22 78 */ xor r3, r3, r4 +/* 8039A290 003971F0 7C 00 22 78 */ xor r0, r0, r4 +/* 8039A294 003971F4 7C 60 03 79 */ or. r0, r3, r0 +/* 8039A298 003971F8 41 82 00 AC */ beq lbl_8039A344 +/* 8039A29C 003971FC 80 7E 01 94 */ lwz r3, 0x194(r30) +/* 8039A2A0 00397200 57 E0 C2 3E */ srwi r0, r31, 8 +/* 8039A2A4 00397204 80 9E 01 9C */ lwz r4, 0x19c(r30) +/* 8039A2A8 00397208 7C 03 01 D6 */ mullw r0, r3, r0 +/* 8039A2AC 0039720C 7C 04 02 14 */ add r0, r4, r0 +/* 8039A2B0 00397210 90 1E 01 9C */ stw r0, 0x19c(r30) +/* 8039A2B4 00397214 80 1E 01 94 */ lwz r0, 0x194(r30) +/* 8039A2B8 00397218 2C 00 00 00 */ cmpwi r0, 0 +/* 8039A2BC 0039721C 40 80 00 40 */ bge lbl_8039A2FC +/* 8039A2C0 00397220 80 7E 01 98 */ lwz r3, 0x198(r30) +/* 8039A2C4 00397224 80 1E 01 9C */ lwz r0, 0x19c(r30) +/* 8039A2C8 00397228 7C 03 00 00 */ cmpw r3, r0 +/* 8039A2CC 0039722C 41 80 00 68 */ blt lbl_8039A334 +/* 8039A2D0 00397230 90 7E 01 9C */ stw r3, 0x19c(r30) +/* 8039A2D4 00397234 3C 60 FF FF */ lis r3, 0xFFFF7FFF@ha +/* 8039A2D8 00397238 38 03 7F FF */ addi r0, r3, 0xFFFF7FFF@l +/* 8039A2DC 0039723C 38 60 FF FF */ li r3, -1 +/* 8039A2E0 00397240 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 8039A2E4 00397244 80 9E 01 14 */ lwz r4, 0x114(r30) +/* 8039A2E8 00397248 7C A0 00 38 */ and r0, r5, r0 +/* 8039A2EC 0039724C 90 1E 01 18 */ stw r0, 0x118(r30) +/* 8039A2F0 00397250 7C 80 18 38 */ and r0, r4, r3 +/* 8039A2F4 00397254 90 1E 01 14 */ stw r0, 0x114(r30) +/* 8039A2F8 00397258 48 00 00 3C */ b lbl_8039A334 +lbl_8039A2FC: +/* 8039A2FC 0039725C 80 7E 01 98 */ lwz r3, 0x198(r30) +/* 8039A300 00397260 80 1E 01 9C */ lwz r0, 0x19c(r30) +/* 8039A304 00397264 7C 03 00 00 */ cmpw r3, r0 +/* 8039A308 00397268 41 81 00 2C */ bgt lbl_8039A334 +/* 8039A30C 0039726C 90 7E 01 9C */ stw r3, 0x19c(r30) +/* 8039A310 00397270 3C 60 FF FF */ lis r3, 0xFFFF7FFF@ha +/* 8039A314 00397274 38 03 7F FF */ addi r0, r3, 0xFFFF7FFF@l +/* 8039A318 00397278 38 60 FF FF */ li r3, -1 +/* 8039A31C 0039727C 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 8039A320 00397280 80 9E 01 14 */ lwz r4, 0x114(r30) +/* 8039A324 00397284 7C A0 00 38 */ and r0, r5, r0 +/* 8039A328 00397288 90 1E 01 18 */ stw r0, 0x118(r30) +/* 8039A32C 0039728C 7C 80 18 38 */ and r0, r4, r3 +/* 8039A330 00397290 90 1E 01 14 */ stw r0, 0x114(r30) +lbl_8039A334: +/* 8039A334 00397294 80 7E 01 9C */ lwz r3, 0x19c(r30) +/* 8039A338 00397298 38 00 00 01 */ li r0, 1 +/* 8039A33C 0039729C 90 7E 01 54 */ stw r3, 0x154(r30) +/* 8039A340 003972A0 48 00 00 24 */ b lbl_8039A364 +lbl_8039A344: +/* 8039A344 003972A4 38 00 10 00 */ li r0, 0x1000 +/* 8039A348 003972A8 7C C3 20 38 */ and r3, r6, r4 +/* 8039A34C 003972AC 7C A0 00 38 */ and r0, r5, r0 +/* 8039A350 003972B0 7C 63 22 78 */ xor r3, r3, r4 +/* 8039A354 003972B4 7C 00 22 78 */ xor r0, r0, r4 +/* 8039A358 003972B8 7C 60 03 78 */ or r0, r3, r0 +/* 8039A35C 003972BC 30 60 FF FF */ addic r3, r0, -1 +/* 8039A360 003972C0 7C 03 01 10 */ subfe r0, r3, r0 +lbl_8039A364: +/* 8039A364 003972C4 80 9E 01 18 */ lwz r4, 0x118(r30) +/* 8039A368 003972C8 38 60 FF FF */ li r3, -1 +/* 8039A36C 003972CC 80 DE 01 14 */ lwz r6, 0x114(r30) +/* 8039A370 003972D0 38 A0 EF FF */ li r5, -4097 +/* 8039A374 003972D4 7C 84 18 38 */ and r4, r4, r3 +/* 8039A378 003972D8 3C 60 80 55 */ lis r3, lbl_80550264@ha +/* 8039A37C 003972DC 90 9E 01 18 */ stw r4, 0x118(r30) +/* 8039A380 003972E0 7C C4 28 38 */ and r4, r6, r5 +/* 8039A384 003972E4 38 A3 02 64 */ addi r5, r3, lbl_80550264@l +/* 8039A388 003972E8 90 9E 01 14 */ stw r4, 0x114(r30) +/* 8039A38C 003972EC 88 DE 01 1D */ lbz r6, 0x11d(r30) +/* 8039A390 003972F0 88 7E 01 1E */ lbz r3, 0x11e(r30) +/* 8039A394 003972F4 7C 86 00 D0 */ neg r4, r6 +/* 8039A398 003972F8 89 1E 01 20 */ lbz r8, 0x120(r30) +/* 8039A39C 003972FC 1C E3 00 30 */ mulli r7, r3, 0x30 +/* 8039A3A0 00397300 7C 83 33 78 */ or r3, r4, r6 +/* 8039A3A4 00397304 28 08 00 FF */ cmplwi r8, 0xff +/* 8039A3A8 00397308 54 63 0F FE */ srwi r3, r3, 0x1f +/* 8039A3AC 0039730C 7C 05 3C 2E */ lfsx f0, r5, r7 +/* 8039A3B0 00397310 38 63 00 15 */ addi r3, r3, 0x15 +/* 8039A3B4 00397314 7C 85 3A 14 */ add r4, r5, r7 +/* 8039A3B8 00397318 1C 63 00 30 */ mulli r3, r3, 0x30 +/* 8039A3BC 0039731C C0 24 00 14 */ lfs f1, 0x14(r4) +/* 8039A3C0 00397320 EC 21 00 32 */ fmuls f1, f1, f0 +/* 8039A3C4 00397324 7C 05 1C 2E */ lfsx f0, r5, r3 +/* 8039A3C8 00397328 EC 61 00 32 */ fmuls f3, f1, f0 +/* 8039A3CC 0039732C 41 82 00 38 */ beq lbl_8039A404 +/* 8039A3D0 00397330 3C 80 80 55 */ lis r4, lbl_80550864@ha +/* 8039A3D4 00397334 3C 60 43 30 */ lis r3, 0x4330 +/* 8039A3D8 00397338 38 84 08 64 */ addi r4, r4, lbl_80550864@l +/* 8039A3DC 0039733C 90 61 00 08 */ stw r3, 8(r1) +/* 8039A3E0 00397340 7C 64 40 AE */ lbzx r3, r4, r8 +/* 8039A3E4 00397344 C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039A3E8 00397348 90 61 00 0C */ stw r3, 0xc(r1) +/* 8039A3EC 0039734C C0 42 D5 10 */ lfs f2, lbl_805AF230@sda21(r2) +/* 8039A3F0 00397350 C8 01 00 08 */ lfd f0, 8(r1) +/* 8039A3F4 00397354 EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039A3F8 00397358 EC 03 00 32 */ fmuls f0, f3, f0 +/* 8039A3FC 0039735C EF E2 00 32 */ fmuls f31, f2, f0 +/* 8039A400 00397360 48 00 00 08 */ b lbl_8039A408 +lbl_8039A404: +/* 8039A404 00397364 FF E0 18 90 */ fmr f31, f3 +lbl_8039A408: +/* 8039A408 00397368 C0 1E 01 5C */ lfs f0, 0x15c(r30) +/* 8039A40C 0039736C FC 1F 00 00 */ fcmpu cr0, f31, f0 +/* 8039A410 00397370 41 82 00 0C */ beq lbl_8039A41C +/* 8039A414 00397374 D3 FE 01 5C */ stfs f31, 0x15c(r30) +/* 8039A418 00397378 38 00 00 01 */ li r0, 1 +lbl_8039A41C: +/* 8039A41C 0039737C 80 9E 01 54 */ lwz r4, 0x154(r30) +/* 8039A420 00397380 3C 60 43 30 */ lis r3, 0x4330 +/* 8039A424 00397384 90 61 00 08 */ stw r3, 8(r1) +/* 8039A428 00397388 C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039A42C 0039738C 90 81 00 0C */ stw r4, 0xc(r1) +/* 8039A430 00397390 C0 42 D5 14 */ lfs f2, lbl_805AF234@sda21(r2) +/* 8039A434 00397394 C8 01 00 08 */ lfd f0, 8(r1) +/* 8039A438 00397398 A0 9E 01 6C */ lhz r4, 0x16c(r30) +/* 8039A43C 0039739C EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039A440 003973A0 A0 7E 01 6E */ lhz r3, 0x16e(r30) +/* 8039A444 003973A4 7C 83 1B 79 */ or. r3, r4, r3 +/* 8039A448 003973A8 EF C2 00 32 */ fmuls f30, f2, f0 +/* 8039A44C 003973AC 41 82 01 18 */ beq lbl_8039A564 +/* 8039A450 003973B0 7F C3 F3 78 */ mr r3, r30 +/* 8039A454 003973B4 48 01 80 19 */ bl sub_803b246c +/* 8039A458 003973B8 7C 7C 1B 78 */ mr r28, r3 +/* 8039A45C 003973BC 7F C3 F3 78 */ mr r3, r30 +/* 8039A460 003973C0 48 01 81 BD */ bl sub_803b261c +/* 8039A464 003973C4 7C 63 07 34 */ extsh r3, r3 +/* 8039A468 003973C8 3C A0 43 30 */ lis r5, 0x4330 +/* 8039A46C 003973CC 38 03 E0 00 */ addi r0, r3, -8192 +/* 8039A470 003973D0 57 83 04 3E */ clrlwi r3, r28, 0x10 +/* 8039A474 003973D4 20 00 20 00 */ subfic r0, r0, 0x2000 +/* 8039A478 003973D8 A0 9E 01 6C */ lhz r4, 0x16c(r30) +/* 8039A47C 003973DC 7C 06 0E 70 */ srawi r6, r0, 1 +/* 8039A480 003973E0 A0 1E 01 6E */ lhz r0, 0x16e(r30) +/* 8039A484 003973E4 20 C6 20 00 */ subfic r6, r6, 0x2000 +/* 8039A488 003973E8 90 61 00 1C */ stw r3, 0x1c(r1) +/* 8039A48C 003973EC 20 00 10 00 */ subfic r0, r0, 0x1000 +/* 8039A490 003973F0 C8 C2 D5 40 */ lfd f6, lbl_805AF260@sda21(r2) +/* 8039A494 003973F4 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 8039A498 003973F8 90 A1 00 18 */ stw r5, 0x18(r1) +/* 8039A49C 003973FC 6C C3 80 00 */ xoris r3, r6, 0x8000 +/* 8039A4A0 00397400 C8 82 D5 38 */ lfd f4, lbl_805AF258@sda21(r2) +/* 8039A4A4 00397404 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039A4A8 00397408 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039A4AC 0039740C 90 A1 00 20 */ stw r5, 0x20(r1) +/* 8039A4B0 00397410 EC 20 20 28 */ fsubs f1, f0, f4 +/* 8039A4B4 00397414 C0 42 D5 24 */ lfs f2, lbl_805AF244@sda21(r2) +/* 8039A4B8 00397418 C8 01 00 20 */ lfd f0, 0x20(r1) +/* 8039A4BC 0039741C 90 81 00 14 */ stw r4, 0x14(r1) +/* 8039A4C0 00397420 EC 00 30 28 */ fsubs f0, f0, f6 +/* 8039A4C4 00397424 C0 62 D5 20 */ lfs f3, lbl_805AF240@sda21(r2) +/* 8039A4C8 00397428 90 A1 00 10 */ stw r5, 0x10(r1) +/* 8039A4CC 0039742C C0 A2 D5 1C */ lfs f5, lbl_805AF23C@sda21(r2) +/* 8039A4D0 00397430 EC 01 00 32 */ fmuls f0, f1, f0 +/* 8039A4D4 00397434 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 8039A4D8 00397438 90 61 00 0C */ stw r3, 0xc(r1) +/* 8039A4DC 0039743C EC 21 20 28 */ fsubs f1, f1, f4 +/* 8039A4E0 00397440 C0 82 D5 18 */ lfs f4, lbl_805AF238@sda21(r2) +/* 8039A4E4 00397444 EC 02 00 32 */ fmuls f0, f2, f0 +/* 8039A4E8 00397448 90 A1 00 08 */ stw r5, 8(r1) +/* 8039A4EC 0039744C C0 FE 01 68 */ lfs f7, 0x168(r30) +/* 8039A4F0 00397450 EC 03 00 28 */ fsubs f0, f3, f0 +/* 8039A4F4 00397454 C8 41 00 08 */ lfd f2, 8(r1) +/* 8039A4F8 00397458 EC 42 30 28 */ fsubs f2, f2, f6 +/* 8039A4FC 0039745C EC 01 00 32 */ fmuls f0, f1, f0 +/* 8039A500 00397460 EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039A504 00397464 EC 25 00 32 */ fmuls f1, f5, f0 +/* 8039A508 00397468 FC 07 08 40 */ fcmpo cr0, f7, f1 +/* 8039A50C 0039746C 40 80 00 20 */ bge lbl_8039A52C +/* 8039A510 00397470 C0 02 D5 28 */ lfs f0, lbl_805AF248@sda21(r2) +/* 8039A514 00397474 EC 07 00 2A */ fadds f0, f7, f0 +/* 8039A518 00397478 FC 00 08 40 */ fcmpo cr0, f0, f1 +/* 8039A51C 0039747C D0 1E 01 68 */ stfs f0, 0x168(r30) +/* 8039A520 00397480 40 81 00 28 */ ble lbl_8039A548 +/* 8039A524 00397484 D0 3E 01 68 */ stfs f1, 0x168(r30) +/* 8039A528 00397488 48 00 00 20 */ b lbl_8039A548 +lbl_8039A52C: +/* 8039A52C 0039748C 40 81 00 1C */ ble lbl_8039A548 +/* 8039A530 00397490 C0 02 D5 28 */ lfs f0, lbl_805AF248@sda21(r2) +/* 8039A534 00397494 EC 07 00 28 */ fsubs f0, f7, f0 +/* 8039A538 00397498 FC 00 08 40 */ fcmpo cr0, f0, f1 +/* 8039A53C 0039749C D0 1E 01 68 */ stfs f0, 0x168(r30) +/* 8039A540 003974A0 40 80 00 08 */ bge lbl_8039A548 +/* 8039A544 003974A4 D0 3E 01 68 */ stfs f1, 0x168(r30) +lbl_8039A548: +/* 8039A548 003974A8 C0 22 D5 20 */ lfs f1, lbl_805AF240@sda21(r2) +/* 8039A54C 003974AC 38 00 00 01 */ li r0, 1 +/* 8039A550 003974B0 C0 1E 01 68 */ lfs f0, 0x168(r30) +/* 8039A554 003974B4 EC 01 00 28 */ fsubs f0, f1, f0 +/* 8039A558 003974B8 EC 02 00 32 */ fmuls f0, f2, f0 +/* 8039A55C 003974BC EC 01 00 28 */ fsubs f0, f1, f0 +/* 8039A560 003974C0 EF DE 00 32 */ fmuls f30, f30, f0 +lbl_8039A564: +/* 8039A564 003974C4 80 ED AE 74 */ lwz r7, lbl_805A9A34@sda21(r13) +/* 8039A568 003974C8 54 E3 07 FF */ clrlwi. r3, r7, 0x1f +/* 8039A56C 003974CC 40 82 00 EC */ bne lbl_8039A658 +/* 8039A570 003974D0 80 9E 01 14 */ lwz r4, 0x114(r30) +/* 8039A574 003974D4 38 60 20 00 */ li r3, 0x2000 +/* 8039A578 003974D8 80 DE 01 18 */ lwz r6, 0x118(r30) +/* 8039A57C 003974DC 38 A0 00 00 */ li r5, 0 +/* 8039A580 003974E0 7C 83 18 38 */ and r3, r4, r3 +/* 8039A584 003974E4 7C C4 28 38 */ and r4, r6, r5 +/* 8039A588 003974E8 7C 84 2A 78 */ xor r4, r4, r5 +/* 8039A58C 003974EC 7C 63 2A 78 */ xor r3, r3, r5 +/* 8039A590 003974F0 7C 83 1B 79 */ or. r3, r4, r3 +/* 8039A594 003974F4 40 82 00 10 */ bne lbl_8039A5A4 +/* 8039A598 003974F8 80 7E 02 14 */ lwz r3, 0x214(r30) +/* 8039A59C 003974FC 54 63 07 7D */ rlwinm. r3, r3, 0, 0x1d, 0x1e +/* 8039A5A0 00397500 41 82 00 A8 */ beq lbl_8039A648 +lbl_8039A5A4: +/* 8039A5A4 00397504 80 7E 01 18 */ lwz r3, 0x118(r30) +/* 8039A5A8 00397508 38 00 FF FF */ li r0, -1 +/* 8039A5AC 0039750C 80 BE 01 14 */ lwz r5, 0x114(r30) +/* 8039A5B0 00397510 38 80 DF FF */ li r4, -8193 +/* 8039A5B4 00397514 7C 60 00 38 */ and r0, r3, r0 +/* 8039A5B8 00397518 7F C3 F3 78 */ mr r3, r30 +/* 8039A5BC 0039751C 90 1E 01 18 */ stw r0, 0x118(r30) +/* 8039A5C0 00397520 7C A0 20 38 */ and r0, r5, r4 +/* 8039A5C4 00397524 90 1E 01 14 */ stw r0, 0x114(r30) +/* 8039A5C8 00397528 48 01 7D 85 */ bl sub_803b234c +/* 8039A5CC 0039752C 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 8039A5D0 00397530 80 1E 01 70 */ lwz r0, 0x170(r30) +/* 8039A5D4 00397534 38 63 E0 00 */ addi r3, r3, -8192 +/* 8039A5D8 00397538 54 63 48 2C */ slwi r3, r3, 9 +/* 8039A5DC 0039753C 7C 60 1A 15 */ add. r3, r0, r3 +/* 8039A5E0 00397540 40 80 00 0C */ bge lbl_8039A5EC +/* 8039A5E4 00397544 38 00 00 00 */ li r0, 0 +/* 8039A5E8 00397548 48 00 00 14 */ b lbl_8039A5FC +lbl_8039A5EC: +/* 8039A5EC 0039754C 3C 00 00 7F */ lis r0, 0x7f +/* 8039A5F0 00397550 7C 03 00 00 */ cmpw r3, r0 +/* 8039A5F4 00397554 41 81 00 08 */ bgt lbl_8039A5FC +/* 8039A5F8 00397558 7C 60 1B 78 */ mr r0, r3 +lbl_8039A5FC: +/* 8039A5FC 0039755C 90 1E 01 60 */ stw r0, 0x160(r30) +/* 8039A600 00397560 80 0D AE 74 */ lwz r0, lbl_805A9A34@sda21(r13) +/* 8039A604 00397564 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 8039A608 00397568 41 82 00 30 */ beq lbl_8039A638 +/* 8039A60C 0039756C 7F C3 F3 78 */ mr r3, r30 +/* 8039A610 00397570 48 01 7D 85 */ bl sub_803b2394 +/* 8039A614 00397574 80 9E 01 74 */ lwz r4, 0x174(r30) +/* 8039A618 00397578 54 63 49 EC */ rlwinm r3, r3, 9, 7, 0x16 +/* 8039A61C 0039757C 3C 00 00 7F */ lis r0, 0x7f +/* 8039A620 00397580 7C 64 1A 14 */ add r3, r4, r3 +/* 8039A624 00397584 7C 03 00 40 */ cmplw r3, r0 +/* 8039A628 00397588 90 7E 01 64 */ stw r3, 0x164(r30) +/* 8039A62C 0039758C 40 81 00 14 */ ble lbl_8039A640 +/* 8039A630 00397590 90 1E 01 64 */ stw r0, 0x164(r30) +/* 8039A634 00397594 48 00 00 0C */ b lbl_8039A640 +lbl_8039A638: +/* 8039A638 00397598 38 00 00 00 */ li r0, 0 +/* 8039A63C 0039759C 90 1E 01 64 */ stw r0, 0x164(r30) +lbl_8039A640: +/* 8039A640 003975A0 38 00 00 01 */ li r0, 1 +/* 8039A644 003975A4 48 00 00 68 */ b lbl_8039A6AC +lbl_8039A648: +/* 8039A648 003975A8 54 E3 07 BD */ rlwinm. r3, r7, 0, 0x1e, 0x1e +/* 8039A64C 003975AC 40 82 00 60 */ bne lbl_8039A6AC +/* 8039A650 003975B0 90 BE 01 64 */ stw r5, 0x164(r30) +/* 8039A654 003975B4 48 00 00 58 */ b lbl_8039A6AC +lbl_8039A658: +/* 8039A658 003975B8 3C 60 00 40 */ lis r3, 0x40 +/* 8039A65C 003975BC 39 20 00 00 */ li r9, 0 +/* 8039A660 003975C0 90 7E 01 60 */ stw r3, 0x160(r30) +/* 8039A664 003975C4 38 A0 20 00 */ li r5, 0x2000 +/* 8039A668 003975C8 38 80 FF FF */ li r4, -1 +/* 8039A66C 003975CC 38 60 DF FF */ li r3, -8193 +/* 8039A670 003975D0 91 3E 01 64 */ stw r9, 0x164(r30) +/* 8039A674 003975D4 80 FE 01 14 */ lwz r7, 0x114(r30) +/* 8039A678 003975D8 81 1E 01 18 */ lwz r8, 0x118(r30) +/* 8039A67C 003975DC 7C E6 28 38 */ and r6, r7, r5 +/* 8039A680 003975E0 7C E3 18 38 */ and r3, r7, r3 +/* 8039A684 003975E4 7D 05 48 38 */ and r5, r8, r9 +/* 8039A688 003975E8 7D 04 20 38 */ and r4, r8, r4 +/* 8039A68C 003975EC 90 9E 01 18 */ stw r4, 0x118(r30) +/* 8039A690 003975F0 7C A5 4A 78 */ xor r5, r5, r9 +/* 8039A694 003975F4 7C C4 4A 78 */ xor r4, r6, r9 +/* 8039A698 003975F8 7C A4 23 78 */ or r4, r5, r4 +/* 8039A69C 003975FC 90 7E 01 14 */ stw r3, 0x114(r30) +/* 8039A6A0 00397600 30 A4 FF FF */ addic r5, r4, -1 +/* 8039A6A4 00397604 7C 85 21 10 */ subfe r4, r5, r4 +/* 8039A6A8 00397608 7C 00 23 78 */ or r0, r0, r4 +lbl_8039A6AC: +/* 8039A6AC 0039760C 28 00 00 00 */ cmplwi r0, 0 +/* 8039A6B0 00397610 40 82 00 10 */ bne lbl_8039A6C0 +/* 8039A6B4 00397614 80 1E 02 14 */ lwz r0, 0x214(r30) +/* 8039A6B8 00397618 70 00 0F 01 */ andi. r0, r0, 0xf01 +/* 8039A6BC 0039761C 41 82 01 74 */ beq lbl_8039A830 +lbl_8039A6C0: +/* 8039A6C0 00397620 7F C3 F3 78 */ mr r3, r30 +/* 8039A6C4 00397624 48 01 7C 41 */ bl sub_803b2304 +/* 8039A6C8 00397628 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 8039A6CC 0039762C 3C 00 43 30 */ lis r0, 0x4330 +/* 8039A6D0 00397630 90 61 00 24 */ stw r3, 0x24(r1) +/* 8039A6D4 00397634 EC 3E 07 F2 */ fmuls f1, f30, f31 +/* 8039A6D8 00397638 C8 62 D5 38 */ lfd f3, lbl_805AF258@sda21(r2) +/* 8039A6DC 0039763C 7F C3 F3 78 */ mr r3, r30 +/* 8039A6E0 00397640 90 01 00 20 */ stw r0, 0x20(r1) +/* 8039A6E4 00397644 C0 02 D5 2C */ lfs f0, lbl_805AF24C@sda21(r2) +/* 8039A6E8 00397648 C8 41 00 20 */ lfd f2, 0x20(r1) +/* 8039A6EC 0039764C EC 42 18 28 */ fsubs f2, f2, f3 +/* 8039A6F0 00397650 EC 21 00 B2 */ fmuls f1, f1, f2 +/* 8039A6F4 00397654 EF E0 00 72 */ fmuls f31, f0, f1 +/* 8039A6F8 00397658 48 01 7E 4D */ bl sub_803b2544 +/* 8039A6FC 0039765C 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 8039A700 00397660 3C 80 43 30 */ lis r4, 0x4330 +/* 8039A704 00397664 90 01 00 1C */ stw r0, 0x1c(r1) +/* 8039A708 00397668 7F C3 F3 78 */ mr r3, r30 +/* 8039A70C 0039766C 88 1E 01 90 */ lbz r0, 0x190(r30) +/* 8039A710 00397670 90 81 00 18 */ stw r4, 0x18(r1) +/* 8039A714 00397674 C8 82 D5 38 */ lfd f4, lbl_805AF258@sda21(r2) +/* 8039A718 00397678 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039A71C 0039767C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039A720 00397680 EC 20 20 28 */ fsubs f1, f0, f4 +/* 8039A724 00397684 C0 42 D5 2C */ lfs f2, lbl_805AF24C@sda21(r2) +/* 8039A728 00397688 90 81 00 10 */ stw r4, 0x10(r1) +/* 8039A72C 0039768C C0 02 D5 10 */ lfs f0, lbl_805AF230@sda21(r2) +/* 8039A730 00397690 EC 7F 00 72 */ fmuls f3, f31, f1 +/* 8039A734 00397694 C8 21 00 10 */ lfd f1, 0x10(r1) +/* 8039A738 00397698 EC 21 20 28 */ fsubs f1, f1, f4 +/* 8039A73C 0039769C EC 42 00 F2 */ fmuls f2, f2, f3 +/* 8039A740 003976A0 EC 21 00 B2 */ fmuls f1, f1, f2 +/* 8039A744 003976A4 EF A0 00 72 */ fmuls f29, f0, f1 +/* 8039A748 003976A8 48 01 7D B5 */ bl sub_803b24fc +/* 8039A74C 003976AC 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 8039A750 003976B0 3C 80 43 30 */ lis r4, 0x4330 +/* 8039A754 003976B4 90 01 00 0C */ stw r0, 0xc(r1) +/* 8039A758 003976B8 7F C3 F3 78 */ mr r3, r30 +/* 8039A75C 003976BC 88 1E 01 91 */ lbz r0, 0x191(r30) +/* 8039A760 003976C0 90 81 00 08 */ stw r4, 8(r1) +/* 8039A764 003976C4 C8 82 D5 38 */ lfd f4, lbl_805AF258@sda21(r2) +/* 8039A768 003976C8 C8 01 00 08 */ lfd f0, 8(r1) +/* 8039A76C 003976CC 90 01 00 2C */ stw r0, 0x2c(r1) +/* 8039A770 003976D0 EC 00 20 28 */ fsubs f0, f0, f4 +/* 8039A774 003976D4 C0 42 D5 2C */ lfs f2, lbl_805AF24C@sda21(r2) +/* 8039A778 003976D8 90 81 00 28 */ stw r4, 0x28(r1) +/* 8039A77C 003976DC C0 22 D5 10 */ lfs f1, lbl_805AF230@sda21(r2) +/* 8039A780 003976E0 EC 7E 00 32 */ fmuls f3, f30, f0 +/* 8039A784 003976E4 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 8039A788 003976E8 EC 00 20 28 */ fsubs f0, f0, f4 +/* 8039A78C 003976EC EC 42 00 F2 */ fmuls f2, f2, f3 +/* 8039A790 003976F0 EC 01 00 32 */ fmuls f0, f1, f0 +/* 8039A794 003976F4 EC 22 E8 2A */ fadds f1, f2, f29 +/* 8039A798 003976F8 EF 80 08 2A */ fadds f28, f0, f1 +/* 8039A79C 003976FC 48 01 7E 39 */ bl sub_803b25d4 +/* 8039A7A0 00397700 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 8039A7A4 00397704 3C 00 43 30 */ lis r0, 0x4330 +/* 8039A7A8 00397708 90 61 00 34 */ stw r3, 0x34(r1) +/* 8039A7AC 0039770C 7F C3 F3 78 */ mr r3, r30 +/* 8039A7B0 00397710 C8 42 D5 38 */ lfd f2, lbl_805AF258@sda21(r2) +/* 8039A7B4 00397714 90 01 00 30 */ stw r0, 0x30(r1) +/* 8039A7B8 00397718 C0 02 D5 2C */ lfs f0, lbl_805AF24C@sda21(r2) +/* 8039A7BC 0039771C C8 21 00 30 */ lfd f1, 0x30(r1) +/* 8039A7C0 00397720 EC 21 10 28 */ fsubs f1, f1, f2 +/* 8039A7C4 00397724 EC 3F 00 72 */ fmuls f1, f31, f1 +/* 8039A7C8 00397728 EF A0 00 72 */ fmuls f29, f0, f1 +/* 8039A7CC 0039772C 48 01 7D C1 */ bl sub_803b258c +/* 8039A7D0 00397730 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 8039A7D4 00397734 3C 00 43 30 */ lis r0, 0x4330 +/* 8039A7D8 00397738 90 61 00 3C */ stw r3, 0x3c(r1) +/* 8039A7DC 0039773C FC 20 F8 90 */ fmr f1, f31 +/* 8039A7E0 00397740 C0 02 D5 30 */ lfs f0, lbl_805AF250@sda21(r2) +/* 8039A7E4 00397744 FC 40 E0 90 */ fmr f2, f28 +/* 8039A7E8 00397748 90 01 00 38 */ stw r0, 0x38(r1) +/* 8039A7EC 0039774C 7F A3 EB 78 */ mr r3, r29 +/* 8039A7F0 00397750 EC 00 07 F2 */ fmuls f0, f0, f31 +/* 8039A7F4 00397754 C8 A2 D5 38 */ lfd f5, lbl_805AF258@sda21(r2) +/* 8039A7F8 00397758 C8 81 00 38 */ lfd f4, 0x38(r1) +/* 8039A7FC 0039775C FC 00 00 1E */ fctiwz f0, f0 +/* 8039A800 00397760 C0 62 D5 2C */ lfs f3, lbl_805AF24C@sda21(r2) +/* 8039A804 00397764 EC 84 28 28 */ fsubs f4, f4, f5 +/* 8039A808 00397768 D8 01 00 40 */ stfd f0, 0x40(r1) +/* 8039A80C 0039776C EC 9E 01 32 */ fmuls f4, f30, f4 +/* 8039A810 00397770 80 01 00 44 */ lwz r0, 0x44(r1) +/* 8039A814 00397774 B0 1E 04 00 */ sth r0, 0x400(r30) +/* 8039A818 00397778 EC 03 01 32 */ fmuls f0, f3, f4 +/* 8039A81C 0039777C 88 9E 01 92 */ lbz r4, 0x192(r30) +/* 8039A820 00397780 EC 60 E8 2A */ fadds f3, f0, f29 +/* 8039A824 00397784 80 BE 01 60 */ lwz r5, 0x160(r30) +/* 8039A828 00397788 80 DE 01 64 */ lwz r6, 0x164(r30) +/* 8039A82C 0039778C 48 01 8F 5D */ bl hwSetVolume +lbl_8039A830: +/* 8039A830 00397790 80 7E 01 10 */ lwz r3, 0x110(r30) +/* 8039A834 00397794 28 03 00 00 */ cmplwi r3, 0 +/* 8039A838 00397798 41 82 00 38 */ beq lbl_8039A870 +/* 8039A83C 0039779C A0 1E 01 0E */ lhz r0, 0x10e(r30) +/* 8039A840 003977A0 7C 00 F9 D6 */ mullw r0, r0, r31 +/* 8039A844 003977A4 7C 00 18 51 */ subf. r0, r0, r3 +/* 8039A848 003977A8 90 1E 01 10 */ stw r0, 0x110(r30) +/* 8039A84C 003977AC 40 80 00 0C */ bge lbl_8039A858 +/* 8039A850 003977B0 38 00 00 00 */ li r0, 0 +/* 8039A854 003977B4 90 1E 01 10 */ stw r0, 0x110(r30) +lbl_8039A858: +/* 8039A858 003977B8 80 1E 01 10 */ lwz r0, 0x110(r30) +/* 8039A85C 003977BC 7F A3 EB 78 */ mr r3, r29 +/* 8039A860 003977C0 88 BE 01 0C */ lbz r5, 0x10c(r30) +/* 8039A864 003977C4 54 04 8B FE */ srwi r4, r0, 0xf +/* 8039A868 003977C8 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 +/* 8039A86C 003977CC 48 01 89 59 */ bl hwSetPriority +lbl_8039A870: +/* 8039A870 003977D0 48 01 89 25 */ bl sub_803b3194 +/* 8039A874 003977D4 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 8039A878 003977D8 7F C3 F3 78 */ mr r3, r30 +/* 8039A87C 003977DC 20 00 00 05 */ subfic r0, r0, 5 +/* 8039A880 003977E0 38 80 00 01 */ li r4, 1 +/* 8039A884 003977E4 54 05 40 2E */ slwi r5, r0, 8 +/* 8039A888 003977E8 48 00 00 61 */ bl synthAddJob +lbl_8039A88C: +/* 8039A88C 003977EC 88 1E 00 A8 */ lbz r0, 0xa8(r30) +/* 8039A890 003977F0 28 00 00 00 */ cmplwi r0, 0 +/* 8039A894 003977F4 41 82 00 14 */ beq lbl_8039A8A8 +/* 8039A898 003977F8 38 60 00 00 */ li r3, 0 +/* 8039A89C 003977FC 38 00 1F FF */ li r0, 0x1fff +/* 8039A8A0 00397800 98 7E 00 A8 */ stb r3, 0xa8(r30) +/* 8039A8A4 00397804 90 1E 02 14 */ stw r0, 0x214(r30) +lbl_8039A8A8: +/* 8039A8A8 00397808 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0 +/* 8039A8AC 0039780C CB E1 00 90 */ lfd f31, 0x90(r1) +/* 8039A8B0 00397810 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0 +/* 8039A8B4 00397814 CB C1 00 80 */ lfd f30, 0x80(r1) +/* 8039A8B8 00397818 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0 +/* 8039A8BC 0039781C CB A1 00 70 */ lfd f29, 0x70(r1) +/* 8039A8C0 00397820 E3 81 00 68 */ psq_l f28, 104(r1), 0, qr0 +/* 8039A8C4 00397824 CB 81 00 60 */ lfd f28, 0x60(r1) +/* 8039A8C8 00397828 83 E1 00 5C */ lwz r31, 0x5c(r1) +/* 8039A8CC 0039782C 83 C1 00 58 */ lwz r30, 0x58(r1) +/* 8039A8D0 00397830 83 A1 00 54 */ lwz r29, 0x54(r1) +/* 8039A8D4 00397834 80 01 00 A4 */ lwz r0, 0xa4(r1) +/* 8039A8D8 00397838 83 81 00 50 */ lwz r28, 0x50(r1) +/* 8039A8DC 0039783C 7C 08 03 A6 */ mtlr r0 +/* 8039A8E0 00397840 38 21 00 A0 */ addi r1, r1, 0xa0 +/* 8039A8E4 00397844 4E 80 00 20 */ blr + +.global synthAddJob +synthAddJob: +/* 8039A8E8 00397848 88 0D AE 49 */ lbz r0, lbl_805A9A09@sda21(r13) +/* 8039A8EC 0039784C 54 A6 C2 3E */ srwi r6, r5, 8 +/* 8039A8F0 00397850 3C A0 80 55 */ lis r5, lbl_805508A4@ha +/* 8039A8F4 00397854 2C 04 00 01 */ cmpwi r4, 1 +/* 8039A8F8 00397858 7C 06 02 14 */ add r0, r6, r0 +/* 8039A8FC 0039785C 54 08 06 FE */ clrlwi r8, r0, 0x1b +/* 8039A900 00397860 38 05 08 A4 */ addi r0, r5, lbl_805508A4@l +/* 8039A904 00397864 1C A8 00 0C */ mulli r5, r8, 0xc +/* 8039A908 00397868 7C A0 2A 14 */ add r5, r0, r5 +/* 8039A90C 0039786C 41 82 00 84 */ beq lbl_8039A990 +/* 8039A910 00397870 40 80 00 10 */ bge lbl_8039A920 +/* 8039A914 00397874 2C 04 00 00 */ cmpwi r4, 0 +/* 8039A918 00397878 40 80 00 14 */ bge lbl_8039A92C +/* 8039A91C 0039787C 48 00 00 F0 */ b lbl_8039AA0C +lbl_8039A920: +/* 8039A920 00397880 2C 04 00 03 */ cmpwi r4, 3 +/* 8039A924 00397884 40 80 00 E8 */ bge lbl_8039AA0C +/* 8039A928 00397888 48 00 00 D0 */ b lbl_8039A9F8 +lbl_8039A92C: +/* 8039A92C 0039788C 88 03 00 09 */ lbz r0, 9(r3) +/* 8039A930 00397890 7C 64 1B 78 */ mr r4, r3 +/* 8039A934 00397894 28 00 00 FF */ cmplwi r0, 0xff +/* 8039A938 00397898 41 82 00 50 */ beq lbl_8039A988 +/* 8039A93C 0039789C 7C 00 40 40 */ cmplw r0, r8 +/* 8039A940 003978A0 4D 82 00 20 */ beqlr +/* 8039A944 003978A4 80 C3 00 00 */ lwz r6, 0(r3) +/* 8039A948 003978A8 28 06 00 00 */ cmplwi r6, 0 +/* 8039A94C 003978AC 41 82 00 0C */ beq lbl_8039A958 +/* 8039A950 003978B0 80 03 00 04 */ lwz r0, 4(r3) +/* 8039A954 003978B4 90 06 00 04 */ stw r0, 4(r6) +lbl_8039A958: +/* 8039A958 003978B8 80 C3 00 04 */ lwz r6, 4(r3) +/* 8039A95C 003978BC 28 06 00 00 */ cmplwi r6, 0 +/* 8039A960 003978C0 41 82 00 10 */ beq lbl_8039A970 +/* 8039A964 003978C4 80 03 00 00 */ lwz r0, 0(r3) +/* 8039A968 003978C8 90 06 00 00 */ stw r0, 0(r6) +/* 8039A96C 003978CC 48 00 00 1C */ b lbl_8039A988 +lbl_8039A970: +/* 8039A970 003978D0 88 03 00 09 */ lbz r0, 9(r3) +/* 8039A974 003978D4 3C C0 80 55 */ lis r6, lbl_805508A4@ha +/* 8039A978 003978D8 80 E3 00 00 */ lwz r7, 0(r3) +/* 8039A97C 003978DC 38 66 08 A4 */ addi r3, r6, lbl_805508A4@l +/* 8039A980 003978E0 1C 00 00 0C */ mulli r0, r0, 0xc +/* 8039A984 003978E4 7C E3 01 2E */ stwx r7, r3, r0 +lbl_8039A988: +/* 8039A988 003978E8 7C A7 2B 78 */ mr r7, r5 +/* 8039A98C 003978EC 48 00 00 80 */ b lbl_8039AA0C +lbl_8039A990: +/* 8039A990 003978F0 38 83 00 0C */ addi r4, r3, 0xc +/* 8039A994 003978F4 88 03 00 15 */ lbz r0, 0x15(r3) +/* 8039A998 003978F8 28 00 00 FF */ cmplwi r0, 0xff +/* 8039A99C 003978FC 41 82 00 54 */ beq lbl_8039A9F0 +/* 8039A9A0 00397900 7C 00 40 40 */ cmplw r0, r8 +/* 8039A9A4 00397904 4D 82 00 20 */ beqlr +/* 8039A9A8 00397908 80 64 00 00 */ lwz r3, 0(r4) +/* 8039A9AC 0039790C 28 03 00 00 */ cmplwi r3, 0 +/* 8039A9B0 00397910 41 82 00 0C */ beq lbl_8039A9BC +/* 8039A9B4 00397914 80 04 00 04 */ lwz r0, 4(r4) +/* 8039A9B8 00397918 90 03 00 04 */ stw r0, 4(r3) +lbl_8039A9BC: +/* 8039A9BC 0039791C 80 64 00 04 */ lwz r3, 4(r4) +/* 8039A9C0 00397920 28 03 00 00 */ cmplwi r3, 0 +/* 8039A9C4 00397924 41 82 00 10 */ beq lbl_8039A9D4 +/* 8039A9C8 00397928 80 04 00 00 */ lwz r0, 0(r4) +/* 8039A9CC 0039792C 90 03 00 00 */ stw r0, 0(r3) +/* 8039A9D0 00397930 48 00 00 20 */ b lbl_8039A9F0 +lbl_8039A9D4: +/* 8039A9D4 00397934 88 04 00 09 */ lbz r0, 9(r4) +/* 8039A9D8 00397938 3C 60 80 55 */ lis r3, lbl_805508A4@ha +/* 8039A9DC 0039793C 38 63 08 A4 */ addi r3, r3, lbl_805508A4@l +/* 8039A9E0 00397940 80 C4 00 00 */ lwz r6, 0(r4) +/* 8039A9E4 00397944 1C 00 00 0C */ mulli r0, r0, 0xc +/* 8039A9E8 00397948 7C 63 02 14 */ add r3, r3, r0 +/* 8039A9EC 0039794C 90 C3 00 08 */ stw r6, 8(r3) +lbl_8039A9F0: +/* 8039A9F0 00397950 38 E5 00 08 */ addi r7, r5, 8 +/* 8039A9F4 00397954 48 00 00 18 */ b lbl_8039AA0C +lbl_8039A9F8: +/* 8039A9F8 00397958 38 83 00 18 */ addi r4, r3, 0x18 +/* 8039A9FC 0039795C 88 03 00 21 */ lbz r0, 0x21(r3) +/* 8039AA00 00397960 28 00 00 FF */ cmplwi r0, 0xff +/* 8039AA04 00397964 4C 82 00 20 */ bnelr +/* 8039AA08 00397968 38 E5 00 04 */ addi r7, r5, 4 +lbl_8039AA0C: +/* 8039AA0C 0039796C 99 04 00 09 */ stb r8, 9(r4) +/* 8039AA10 00397970 80 07 00 00 */ lwz r0, 0(r7) +/* 8039AA14 00397974 28 00 00 00 */ cmplwi r0, 0 +/* 8039AA18 00397978 90 04 00 00 */ stw r0, 0(r4) +/* 8039AA1C 0039797C 41 82 00 0C */ beq lbl_8039AA28 +/* 8039AA20 00397980 80 67 00 00 */ lwz r3, 0(r7) +/* 8039AA24 00397984 90 83 00 04 */ stw r4, 4(r3) +lbl_8039AA28: +/* 8039AA28 00397988 38 00 00 00 */ li r0, 0 +/* 8039AA2C 0039798C 90 04 00 04 */ stw r0, 4(r4) +/* 8039AA30 00397990 90 87 00 00 */ stw r4, 0(r7) +/* 8039AA34 00397994 4E 80 00 20 */ blr + +.global synthStartSynthJobHandling +synthStartSynthJobHandling: +/* 8039AA38 00397998 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039AA3C 0039799C 7C 08 02 A6 */ mflr r0 +/* 8039AA40 003979A0 38 80 00 00 */ li r4, 0 +/* 8039AA44 003979A4 38 A0 00 00 */ li r5, 0 +/* 8039AA48 003979A8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039AA4C 003979AC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039AA50 003979B0 7C 7F 1B 78 */ mr r31, r3 +/* 8039AA54 003979B4 80 0D AE 88 */ lwz r0, lbl_805A9A48@sda21(r13) +/* 8039AA58 003979B8 80 CD AE 8C */ lwz r6, lbl_805A9A4C@sda21(r13) +/* 8039AA5C 003979BC 90 C3 00 28 */ stw r6, 0x28(r3) +/* 8039AA60 003979C0 90 03 00 24 */ stw r0, 0x24(r3) +/* 8039AA64 003979C4 80 0D AE 88 */ lwz r0, lbl_805A9A48@sda21(r13) +/* 8039AA68 003979C8 80 CD AE 8C */ lwz r6, lbl_805A9A4C@sda21(r13) +/* 8039AA6C 003979CC 90 C3 00 30 */ stw r6, 0x30(r3) +/* 8039AA70 003979D0 90 03 00 2C */ stw r0, 0x2c(r3) +/* 8039AA74 003979D4 4B FF FE 75 */ bl synthAddJob +/* 8039AA78 003979D8 7F E3 FB 78 */ mr r3, r31 +/* 8039AA7C 003979DC 38 80 00 01 */ li r4, 1 +/* 8039AA80 003979E0 38 A0 00 00 */ li r5, 0 +/* 8039AA84 003979E4 4B FF FE 65 */ bl synthAddJob +/* 8039AA88 003979E8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039AA8C 003979EC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039AA90 003979F0 7C 08 03 A6 */ mtlr r0 +/* 8039AA94 003979F4 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039AA98 003979F8 4E 80 00 20 */ blr + +.global synthForceLowPrecisionUpdate +synthForceLowPrecisionUpdate: +/* 8039AA9C 003979FC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039AAA0 00397A00 7C 08 02 A6 */ mflr r0 +/* 8039AAA4 00397A04 38 80 00 00 */ li r4, 0 +/* 8039AAA8 00397A08 38 A0 00 00 */ li r5, 0 +/* 8039AAAC 00397A0C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039AAB0 00397A10 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039AAB4 00397A14 7C 7F 1B 78 */ mr r31, r3 +/* 8039AAB8 00397A18 4B FF FE 31 */ bl synthAddJob +/* 8039AABC 00397A1C 7F E3 FB 78 */ mr r3, r31 +/* 8039AAC0 00397A20 38 80 00 01 */ li r4, 1 +/* 8039AAC4 00397A24 38 A0 00 00 */ li r5, 0 +/* 8039AAC8 00397A28 4B FF FE 21 */ bl synthAddJob +/* 8039AACC 00397A2C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039AAD0 00397A30 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039AAD4 00397A34 7C 08 03 A6 */ mtlr r0 +/* 8039AAD8 00397A38 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039AADC 00397A3C 4E 80 00 20 */ blr + +.global sub_8039aae0 +sub_8039aae0: +/* 8039AAE0 00397A40 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039AAE4 00397A44 7C 08 02 A6 */ mflr r0 +/* 8039AAE8 00397A48 38 80 00 02 */ li r4, 2 +/* 8039AAEC 00397A4C 38 A0 00 00 */ li r5, 0 +/* 8039AAF0 00397A50 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039AAF4 00397A54 4B FF FD F5 */ bl synthAddJob +/* 8039AAF8 00397A58 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039AAFC 00397A5C 7C 08 03 A6 */ mtlr r0 +/* 8039AB00 00397A60 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039AB04 00397A64 4E 80 00 20 */ blr + +.global synthHandle +synthHandle: +/* 8039AB08 00397A68 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 8039AB0C 00397A6C 7C 08 02 A6 */ mflr r0 +/* 8039AB10 00397A70 90 01 00 54 */ stw r0, 0x54(r1) +/* 8039AB14 00397A74 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039AB18 00397A78 4B FE EF 49 */ bl func_80389A60 +/* 8039AB1C 00397A7C 3C 80 80 55 */ lis r4, lbl_8054FE10@ha +/* 8039AB20 00397A80 7C 79 1B 78 */ mr r25, r3 +/* 8039AB24 00397A84 3B E4 FE 10 */ addi r31, r4, lbl_8054FE10@l +/* 8039AB28 00397A88 38 9F 02 40 */ addi r4, r31, 0x240 +/* 8039AB2C 00397A8C 80 04 00 04 */ lwz r0, 4(r4) +/* 8039AB30 00397A90 28 00 00 00 */ cmplwi r0, 0 +/* 8039AB34 00397A94 41 82 04 CC */ beq lbl_8039B000 +/* 8039AB38 00397A98 48 00 BF ED */ bl sub_803a6b24 +/* 8039AB3C 00397A9C 88 0D AE 49 */ lbz r0, lbl_805A9A09@sda21(r13) +/* 8039AB40 00397AA0 3B DF 0A 94 */ addi r30, r31, 0xa94 +/* 8039AB44 00397AA4 3B 40 00 FF */ li r26, 0xff +/* 8039AB48 00397AA8 1C 00 00 0C */ mulli r0, r0, 0xc +/* 8039AB4C 00397AAC 7F DE 02 14 */ add r30, r30, r0 +/* 8039AB50 00397AB0 80 7E 00 00 */ lwz r3, 0(r30) +/* 8039AB54 00397AB4 48 00 00 30 */ b lbl_8039AB84 +lbl_8039AB58: +/* 8039AB58 00397AB8 83 63 00 00 */ lwz r27, 0(r3) +/* 8039AB5C 00397ABC 9B 43 00 09 */ stb r26, 9(r3) +/* 8039AB60 00397AC0 88 63 00 08 */ lbz r3, 8(r3) +/* 8039AB64 00397AC4 80 AD AE 78 */ lwz r5, lbl_805A9A38@sda21(r13) +/* 8039AB68 00397AC8 1C 83 04 04 */ mulli r4, r3, 0x404 +/* 8039AB6C 00397ACC 38 04 01 1C */ addi r0, r4, 0x11c +/* 8039AB70 00397AD0 7C 05 00 AE */ lbzx r0, r5, r0 +/* 8039AB74 00397AD4 28 00 00 00 */ cmplwi r0, 0 +/* 8039AB78 00397AD8 40 82 00 08 */ bne lbl_8039AB80 +/* 8039AB7C 00397ADC 4B FF EF 2D */ bl LowPrecisionHandler +lbl_8039AB80: +/* 8039AB80 00397AE0 7F 63 DB 78 */ mr r3, r27 +lbl_8039AB84: +/* 8039AB84 00397AE4 28 03 00 00 */ cmplwi r3, 0 +/* 8039AB88 00397AE8 40 82 FF D0 */ bne lbl_8039AB58 +/* 8039AB8C 00397AEC 38 00 00 00 */ li r0, 0 +/* 8039AB90 00397AF0 3B 9E 00 04 */ addi r28, r30, 4 +/* 8039AB94 00397AF4 90 1E 00 00 */ stw r0, 0(r30) +/* 8039AB98 00397AF8 80 7E 00 04 */ lwz r3, 4(r30) +/* 8039AB9C 00397AFC 48 00 01 84 */ b lbl_8039AD20 +lbl_8039ABA0: +/* 8039ABA0 00397B00 83 A3 00 00 */ lwz r29, 0(r3) +/* 8039ABA4 00397B04 38 00 00 FF */ li r0, 0xff +/* 8039ABA8 00397B08 98 03 00 09 */ stb r0, 9(r3) +/* 8039ABAC 00397B0C 8B 43 00 08 */ lbz r26, 8(r3) +/* 8039ABB0 00397B10 80 AD AE 78 */ lwz r5, lbl_805A9A38@sda21(r13) +/* 8039ABB4 00397B14 1C 9A 04 04 */ mulli r4, r26, 0x404 +/* 8039ABB8 00397B18 38 04 01 1C */ addi r0, r4, 0x11c +/* 8039ABBC 00397B1C 7C 05 00 AE */ lbzx r0, r5, r0 +/* 8039ABC0 00397B20 28 00 00 00 */ cmplwi r0, 0 +/* 8039ABC4 00397B24 40 82 01 58 */ bne lbl_8039AD1C +/* 8039ABC8 00397B28 7F 43 D3 78 */ mr r3, r26 +/* 8039ABCC 00397B2C 7F 65 22 14 */ add r27, r5, r4 +/* 8039ABD0 00397B30 48 01 85 CD */ bl hwIsActive +/* 8039ABD4 00397B34 28 03 00 00 */ cmplwi r3, 0 +/* 8039ABD8 00397B38 40 82 00 10 */ bne lbl_8039ABE8 +/* 8039ABDC 00397B3C 80 1B 00 34 */ lwz r0, 0x34(r27) +/* 8039ABE0 00397B40 28 00 00 00 */ cmplwi r0, 0 +/* 8039ABE4 00397B44 41 82 01 1C */ beq lbl_8039AD00 +lbl_8039ABE8: +/* 8039ABE8 00397B48 7F 63 DB 78 */ mr r3, r27 +/* 8039ABEC 00397B4C 48 01 78 C9 */ bl inpGetVolume +/* 8039ABF0 00397B50 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 8039ABF4 00397B54 7F 63 DB 78 */ mr r3, r27 +/* 8039ABF8 00397B58 20 00 1F 80 */ subfic r0, r0, 0x1f80 +/* 8039ABFC 00397B5C 54 04 0F FE */ srwi r4, r0, 0x1f +/* 8039AC00 00397B60 48 00 C2 11 */ bl macSetPedalState +/* 8039AC04 00397B64 80 BB 01 14 */ lwz r5, 0x114(r27) +/* 8039AC08 00397B68 38 80 00 00 */ li r4, 0 +/* 8039AC0C 00397B6C 80 DB 01 18 */ lwz r6, 0x118(r27) +/* 8039AC10 00397B70 38 60 00 20 */ li r3, 0x20 +/* 8039AC14 00397B74 7C A0 20 38 */ and r0, r5, r4 +/* 8039AC18 00397B78 7C C3 18 38 */ and r3, r6, r3 +/* 8039AC1C 00397B7C 7C 63 22 78 */ xor r3, r3, r4 +/* 8039AC20 00397B80 7C 00 22 78 */ xor r0, r0, r4 +/* 8039AC24 00397B84 7C 60 03 79 */ or. r0, r3, r0 +/* 8039AC28 00397B88 41 82 00 34 */ beq lbl_8039AC5C +/* 8039AC2C 00397B8C 38 00 FF DF */ li r0, -33 +/* 8039AC30 00397B90 38 80 FF FF */ li r4, -1 +/* 8039AC34 00397B94 7C C0 00 38 */ and r0, r6, r0 +/* 8039AC38 00397B98 7F 43 D3 78 */ mr r3, r26 +/* 8039AC3C 00397B9C 90 1B 01 18 */ stw r0, 0x118(r27) +/* 8039AC40 00397BA0 7C A0 20 38 */ and r0, r5, r4 +/* 8039AC44 00397BA4 90 1B 01 14 */ stw r0, 0x114(r27) +/* 8039AC48 00397BA8 80 1B 01 18 */ lwz r0, 0x118(r27) +/* 8039AC4C 00397BAC 60 00 00 10 */ ori r0, r0, 0x10 +/* 8039AC50 00397BB0 90 1B 01 18 */ stw r0, 0x118(r27) +/* 8039AC54 00397BB4 88 9B 01 1F */ lbz r4, 0x11f(r27) +/* 8039AC58 00397BB8 48 01 89 A1 */ bl hwStart +lbl_8039AC5C: +/* 8039AC5C 00397BBC 80 DB 01 14 */ lwz r6, 0x114(r27) +/* 8039AC60 00397BC0 38 00 01 00 */ li r0, 0x100 +/* 8039AC64 00397BC4 80 FB 01 18 */ lwz r7, 0x118(r27) +/* 8039AC68 00397BC8 38 A0 00 90 */ li r5, 0x90 +/* 8039AC6C 00397BCC 7C C4 00 38 */ and r4, r6, r0 +/* 8039AC70 00397BD0 38 00 00 00 */ li r0, 0 +/* 8039AC74 00397BD4 7C E3 28 38 */ and r3, r7, r5 +/* 8039AC78 00397BD8 7C 63 2A 78 */ xor r3, r3, r5 +/* 8039AC7C 00397BDC 7C 80 02 78 */ xor r0, r4, r0 +/* 8039AC80 00397BE0 7C 60 03 79 */ or. r0, r3, r0 +/* 8039AC84 00397BE4 40 82 00 7C */ bne lbl_8039AD00 +/* 8039AC88 00397BE8 38 00 FF 6F */ li r0, -145 +/* 8039AC8C 00397BEC 38 80 FF FF */ li r4, -1 +/* 8039AC90 00397BF0 7C E0 00 38 */ and r0, r7, r0 +/* 8039AC94 00397BF4 7F 43 D3 78 */ mr r3, r26 +/* 8039AC98 00397BF8 90 1B 01 18 */ stw r0, 0x118(r27) +/* 8039AC9C 00397BFC 7C C0 20 38 */ and r0, r6, r4 +/* 8039ACA0 00397C00 90 1B 01 14 */ stw r0, 0x114(r27) +/* 8039ACA4 00397C04 48 01 89 91 */ bl hwKeyOff +/* 8039ACA8 00397C08 80 7B 01 14 */ lwz r3, 0x114(r27) +/* 8039ACAC 00397C0C 38 00 02 00 */ li r0, 0x200 +/* 8039ACB0 00397C10 80 BB 01 18 */ lwz r5, 0x118(r27) +/* 8039ACB4 00397C14 38 80 00 00 */ li r4, 0 +/* 8039ACB8 00397C18 7C 60 00 38 */ and r0, r3, r0 +/* 8039ACBC 00397C1C 7C A3 20 38 */ and r3, r5, r4 +/* 8039ACC0 00397C20 7C 63 22 78 */ xor r3, r3, r4 +/* 8039ACC4 00397C24 7C 00 22 78 */ xor r0, r0, r4 +/* 8039ACC8 00397C28 7C 60 03 79 */ or. r0, r3, r0 +/* 8039ACCC 00397C2C 41 82 00 34 */ beq lbl_8039AD00 +/* 8039ACD0 00397C30 38 7B 01 DC */ addi r3, r27, 0x1dc +/* 8039ACD4 00397C34 48 00 E9 79 */ bl adsrRelease +/* 8039ACD8 00397C38 28 03 00 00 */ cmplwi r3, 0 +/* 8039ACDC 00397C3C 41 82 00 24 */ beq lbl_8039AD00 +/* 8039ACE0 00397C40 80 BB 01 18 */ lwz r5, 0x118(r27) +/* 8039ACE4 00397C44 38 00 FF FF */ li r0, -1 +/* 8039ACE8 00397C48 80 9B 01 14 */ lwz r4, 0x114(r27) +/* 8039ACEC 00397C4C 38 60 FD FF */ li r3, -513 +/* 8039ACF0 00397C50 7C A0 00 38 */ and r0, r5, r0 +/* 8039ACF4 00397C54 90 1B 01 18 */ stw r0, 0x118(r27) +/* 8039ACF8 00397C58 7C 80 18 38 */ and r0, r4, r3 +/* 8039ACFC 00397C5C 90 1B 01 14 */ stw r0, 0x114(r27) +lbl_8039AD00: +/* 8039AD00 00397C60 88 1B 00 A8 */ lbz r0, 0xa8(r27) +/* 8039AD04 00397C64 28 00 00 00 */ cmplwi r0, 0 +/* 8039AD08 00397C68 41 82 00 14 */ beq lbl_8039AD1C +/* 8039AD0C 00397C6C 38 60 00 00 */ li r3, 0 +/* 8039AD10 00397C70 38 00 1F FF */ li r0, 0x1fff +/* 8039AD14 00397C74 98 7B 00 A8 */ stb r3, 0xa8(r27) +/* 8039AD18 00397C78 90 1B 02 14 */ stw r0, 0x214(r27) +lbl_8039AD1C: +/* 8039AD1C 00397C7C 7F A3 EB 78 */ mr r3, r29 +lbl_8039AD20: +/* 8039AD20 00397C80 28 03 00 00 */ cmplwi r3, 0 +/* 8039AD24 00397C84 40 82 FE 7C */ bne lbl_8039ABA0 +/* 8039AD28 00397C88 38 00 00 00 */ li r0, 0 +/* 8039AD2C 00397C8C 3B BE 00 08 */ addi r29, r30, 8 +/* 8039AD30 00397C90 90 1C 00 00 */ stw r0, 0(r28) +/* 8039AD34 00397C94 3B 40 00 FF */ li r26, 0xff +/* 8039AD38 00397C98 80 7E 00 08 */ lwz r3, 8(r30) +/* 8039AD3C 00397C9C 48 00 00 30 */ b lbl_8039AD6C +lbl_8039AD40: +/* 8039AD40 00397CA0 83 63 00 00 */ lwz r27, 0(r3) +/* 8039AD44 00397CA4 9B 43 00 09 */ stb r26, 9(r3) +/* 8039AD48 00397CA8 88 63 00 08 */ lbz r3, 8(r3) +/* 8039AD4C 00397CAC 80 AD AE 78 */ lwz r5, lbl_805A9A38@sda21(r13) +/* 8039AD50 00397CB0 1C 83 04 04 */ mulli r4, r3, 0x404 +/* 8039AD54 00397CB4 38 04 01 1C */ addi r0, r4, 0x11c +/* 8039AD58 00397CB8 7C 05 00 AE */ lbzx r0, r5, r0 +/* 8039AD5C 00397CBC 28 00 00 00 */ cmplwi r0, 0 +/* 8039AD60 00397CC0 40 82 00 08 */ bne lbl_8039AD68 +/* 8039AD64 00397CC4 4B FF F4 89 */ bl sub_8039a1ec +lbl_8039AD68: +/* 8039AD68 00397CC8 7F 63 DB 78 */ mr r3, r27 +lbl_8039AD6C: +/* 8039AD6C 00397CCC 28 03 00 00 */ cmplwi r3, 0 +/* 8039AD70 00397CD0 40 82 FF D0 */ bne lbl_8039AD40 +/* 8039AD74 00397CD4 88 6D AE 49 */ lbz r3, lbl_805A9A09@sda21(r13) +/* 8039AD78 00397CD8 38 00 00 00 */ li r0, 0 +/* 8039AD7C 00397CDC 90 1D 00 00 */ stw r0, 0(r29) +/* 8039AD80 00397CE0 38 03 00 01 */ addi r0, r3, 1 +/* 8039AD84 00397CE4 54 00 06 FE */ clrlwi r0, r0, 0x1b +/* 8039AD88 00397CE8 98 0D AE 49 */ stb r0, lbl_805A9A09@sda21(r13) +/* 8039AD8C 00397CEC 48 01 84 09 */ bl sub_803b3194 +/* 8039AD90 00397CF0 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 8039AD94 00397CF4 40 82 02 50 */ bne lbl_8039AFE4 +/* 8039AD98 00397CF8 80 6D AE 70 */ lwz r3, lbl_805A9A30@sda21(r13) +/* 8039AD9C 00397CFC 80 0D AE 6C */ lwz r0, lbl_805A9A2C@sda21(r13) +/* 8039ADA0 00397D00 7C 60 03 79 */ or. r0, r3, r0 +/* 8039ADA4 00397D04 41 82 01 48 */ beq lbl_8039AEEC +/* 8039ADA8 00397D08 3A 9F 04 54 */ addi r20, r31, 0x454 +/* 8039ADAC 00397D0C 3A A0 00 00 */ li r21, 0 +/* 8039ADB0 00397D10 3A C0 00 01 */ li r22, 1 +lbl_8039ADB4: +/* 8039ADB4 00397D14 80 0D AE 70 */ lwz r0, lbl_805A9A30@sda21(r13) +/* 8039ADB8 00397D18 7C 00 B0 39 */ and. r0, r0, r22 +/* 8039ADBC 00397D1C 41 82 00 B4 */ beq lbl_8039AE70 +/* 8039ADC0 00397D20 C0 74 00 04 */ lfs f3, 4(r20) +/* 8039ADC4 00397D24 C0 14 00 08 */ lfs f0, 8(r20) +/* 8039ADC8 00397D28 C0 54 00 0C */ lfs f2, 0xc(r20) +/* 8039ADCC 00397D2C EC 23 00 28 */ fsubs f1, f3, f0 +/* 8039ADD0 00397D30 C0 02 D5 48 */ lfs f0, lbl_805AF268@sda21(r2) +/* 8039ADD4 00397D34 EC 22 00 72 */ fmuls f1, f2, f1 +/* 8039ADD8 00397D38 EC 23 08 28 */ fsubs f1, f3, f1 +/* 8039ADDC 00397D3C D0 34 00 00 */ stfs f1, 0(r20) +/* 8039ADE0 00397D40 C0 54 00 0C */ lfs f2, 0xc(r20) +/* 8039ADE4 00397D44 C0 34 00 10 */ lfs f1, 0x10(r20) +/* 8039ADE8 00397D48 EC 22 08 28 */ fsubs f1, f2, f1 +/* 8039ADEC 00397D4C FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 8039ADF0 00397D50 D0 34 00 0C */ stfs f1, 0xc(r20) +/* 8039ADF4 00397D54 4C 40 13 82 */ cror 2, 0, 2 +/* 8039ADF8 00397D58 40 82 00 78 */ bne lbl_8039AE70 +/* 8039ADFC 00397D5C C0 14 00 04 */ lfs f0, 4(r20) +/* 8039AE00 00397D60 D0 14 00 00 */ stfs f0, 0(r20) +/* 8039AE04 00397D64 88 14 00 2C */ lbz r0, 0x2c(r20) +/* 8039AE08 00397D68 2C 00 00 02 */ cmpwi r0, 2 +/* 8039AE0C 00397D6C 41 82 00 2C */ beq lbl_8039AE38 +/* 8039AE10 00397D70 40 80 00 10 */ bge lbl_8039AE20 +/* 8039AE14 00397D74 2C 00 00 01 */ cmpwi r0, 1 +/* 8039AE18 00397D78 40 80 00 14 */ bge lbl_8039AE2C +/* 8039AE1C 00397D7C 48 00 00 38 */ b lbl_8039AE54 +lbl_8039AE20: +/* 8039AE20 00397D80 2C 00 00 04 */ cmpwi r0, 4 +/* 8039AE24 00397D84 40 80 00 30 */ bge lbl_8039AE54 +/* 8039AE28 00397D88 48 00 00 1C */ b lbl_8039AE44 +lbl_8039AE2C: +/* 8039AE2C 00397D8C 80 74 00 28 */ lwz r3, 0x28(r20) +/* 8039AE30 00397D90 4B FF AD 0D */ bl seqStop +/* 8039AE34 00397D94 48 00 00 20 */ b lbl_8039AE54 +lbl_8039AE38: +/* 8039AE38 00397D98 80 74 00 28 */ lwz r3, 0x28(r20) +/* 8039AE3C 00397D9C 4B FF AA 85 */ bl seqPause +/* 8039AE40 00397DA0 48 00 00 14 */ b lbl_8039AE54 +lbl_8039AE44: +/* 8039AE44 00397DA4 80 74 00 28 */ lwz r3, 0x28(r20) +/* 8039AE48 00397DA8 38 80 00 00 */ li r4, 0 +/* 8039AE4C 00397DAC 38 A0 00 00 */ li r5, 0 +/* 8039AE50 00397DB0 4B FF B2 19 */ bl seqMute +lbl_8039AE54: +/* 8039AE54 00397DB4 80 0D AE 70 */ lwz r0, lbl_805A9A30@sda21(r13) +/* 8039AE58 00397DB8 7C 00 B0 79 */ andc. r0, r0, r22 +/* 8039AE5C 00397DBC 90 0D AE 70 */ stw r0, lbl_805A9A30@sda21(r13) +/* 8039AE60 00397DC0 40 82 00 10 */ bne lbl_8039AE70 +/* 8039AE64 00397DC4 80 0D AE 6C */ lwz r0, lbl_805A9A2C@sda21(r13) +/* 8039AE68 00397DC8 28 00 00 00 */ cmplwi r0, 0 +/* 8039AE6C 00397DCC 41 82 00 80 */ beq lbl_8039AEEC +lbl_8039AE70: +/* 8039AE70 00397DD0 80 6D AE 6C */ lwz r3, lbl_805A9A2C@sda21(r13) +/* 8039AE74 00397DD4 7C 60 B0 39 */ and. r0, r3, r22 +/* 8039AE78 00397DD8 41 82 00 60 */ beq lbl_8039AED8 +/* 8039AE7C 00397DDC C0 74 00 18 */ lfs f3, 0x18(r20) +/* 8039AE80 00397DE0 C0 14 00 1C */ lfs f0, 0x1c(r20) +/* 8039AE84 00397DE4 C0 54 00 20 */ lfs f2, 0x20(r20) +/* 8039AE88 00397DE8 EC 23 00 28 */ fsubs f1, f3, f0 +/* 8039AE8C 00397DEC C0 02 D5 48 */ lfs f0, lbl_805AF268@sda21(r2) +/* 8039AE90 00397DF0 EC 22 00 72 */ fmuls f1, f2, f1 +/* 8039AE94 00397DF4 EC 23 08 28 */ fsubs f1, f3, f1 +/* 8039AE98 00397DF8 D0 34 00 14 */ stfs f1, 0x14(r20) +/* 8039AE9C 00397DFC C0 54 00 20 */ lfs f2, 0x20(r20) +/* 8039AEA0 00397E00 C0 34 00 24 */ lfs f1, 0x24(r20) +/* 8039AEA4 00397E04 EC 22 08 28 */ fsubs f1, f2, f1 +/* 8039AEA8 00397E08 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 8039AEAC 00397E0C D0 34 00 20 */ stfs f1, 0x20(r20) +/* 8039AEB0 00397E10 4C 40 13 82 */ cror 2, 0, 2 +/* 8039AEB4 00397E14 40 82 00 24 */ bne lbl_8039AED8 +/* 8039AEB8 00397E18 7C 60 B0 79 */ andc. r0, r3, r22 +/* 8039AEBC 00397E1C C0 14 00 18 */ lfs f0, 0x18(r20) +/* 8039AEC0 00397E20 D0 14 00 14 */ stfs f0, 0x14(r20) +/* 8039AEC4 00397E24 90 0D AE 6C */ stw r0, lbl_805A9A2C@sda21(r13) +/* 8039AEC8 00397E28 40 82 00 10 */ bne lbl_8039AED8 +/* 8039AECC 00397E2C 80 0D AE 70 */ lwz r0, lbl_805A9A30@sda21(r13) +/* 8039AED0 00397E30 28 00 00 00 */ cmplwi r0, 0 +/* 8039AED4 00397E34 41 82 00 18 */ beq lbl_8039AEEC +lbl_8039AED8: +/* 8039AED8 00397E38 3A B5 00 01 */ addi r21, r21, 1 +/* 8039AEDC 00397E3C 56 D6 08 3C */ slwi r22, r22, 1 +/* 8039AEE0 00397E40 28 15 00 20 */ cmplwi r21, 0x20 +/* 8039AEE4 00397E44 3A 94 00 30 */ addi r20, r20, 0x30 +/* 8039AEE8 00397E48 41 80 FE CC */ blt lbl_8039ADB4 +lbl_8039AEEC: +/* 8039AEEC 00397E4C 3B BF 0C 14 */ addi r29, r31, 0xc14 +/* 8039AEF0 00397E50 3B DF 0C 34 */ addi r30, r31, 0xc34 +/* 8039AEF4 00397E54 3A FF 0C 54 */ addi r23, r31, 0xc54 +/* 8039AEF8 00397E58 3A DF 0C 74 */ addi r22, r31, 0xc74 +/* 8039AEFC 00397E5C 3A 80 00 00 */ li r20, 0 +/* 8039AF00 00397E60 3B 6D AE 64 */ addi r27, r13, lbl_805A9A24@sda21 +/* 8039AF04 00397E64 3B 8D AE 5C */ addi r28, r13, lbl_805A9A1C@sda21 +/* 8039AF08 00397E68 3B ED AE 54 */ addi r31, r13, lbl_805A9A14@sda21 +/* 8039AF0C 00397E6C 3B 0D AE 4C */ addi r24, r13, lbl_805A9A0C@sda21 +lbl_8039AF10: +/* 8039AF10 00397E70 88 1B 00 00 */ lbz r0, 0(r27) +/* 8039AF14 00397E74 28 00 00 FF */ cmplwi r0, 0xff +/* 8039AF18 00397E78 41 82 00 4C */ beq lbl_8039AF64 +/* 8039AF1C 00397E7C 3A A0 00 00 */ li r21, 0 +/* 8039AF20 00397E80 3B 41 00 14 */ addi r26, r1, 0x14 +lbl_8039AF24: +/* 8039AF24 00397E84 88 BB 00 00 */ lbz r5, 0(r27) +/* 8039AF28 00397E88 56 83 06 3E */ clrlwi r3, r20, 0x18 +/* 8039AF2C 00397E8C 88 DC 00 00 */ lbz r6, 0(r28) +/* 8039AF30 00397E90 56 A4 06 3E */ clrlwi r4, r21, 0x18 +/* 8039AF34 00397E94 48 01 77 31 */ bl sub_803b2664 +/* 8039AF38 00397E98 3A B5 00 01 */ addi r21, r21, 1 +/* 8039AF3C 00397E9C B0 7A 00 00 */ sth r3, 0(r26) +/* 8039AF40 00397EA0 28 15 00 04 */ cmplwi r21, 4 +/* 8039AF44 00397EA4 3B 5A 00 02 */ addi r26, r26, 2 +/* 8039AF48 00397EA8 41 80 FF DC */ blt lbl_8039AF24 +/* 8039AF4C 00397EAC 81 9E 00 00 */ lwz r12, 0(r30) +/* 8039AF50 00397EB0 38 81 00 14 */ addi r4, r1, 0x14 +/* 8039AF54 00397EB4 80 BD 00 00 */ lwz r5, 0(r29) +/* 8039AF58 00397EB8 38 60 00 01 */ li r3, 1 +/* 8039AF5C 00397EBC 7D 89 03 A6 */ mtctr r12 +/* 8039AF60 00397EC0 4E 80 04 21 */ bctrl +lbl_8039AF64: +/* 8039AF64 00397EC4 88 1F 00 00 */ lbz r0, 0(r31) +/* 8039AF68 00397EC8 28 00 00 FF */ cmplwi r0, 0xff +/* 8039AF6C 00397ECC 41 82 00 4C */ beq lbl_8039AFB8 +/* 8039AF70 00397ED0 3A A0 00 00 */ li r21, 0 +/* 8039AF74 00397ED4 3B 41 00 08 */ addi r26, r1, 8 +lbl_8039AF78: +/* 8039AF78 00397ED8 88 BF 00 00 */ lbz r5, 0(r31) +/* 8039AF7C 00397EDC 56 83 06 3E */ clrlwi r3, r20, 0x18 +/* 8039AF80 00397EE0 88 D8 00 00 */ lbz r6, 0(r24) +/* 8039AF84 00397EE4 56 A4 06 3E */ clrlwi r4, r21, 0x18 +/* 8039AF88 00397EE8 48 01 77 91 */ bl inpGetAuxA +/* 8039AF8C 00397EEC 3A B5 00 01 */ addi r21, r21, 1 +/* 8039AF90 00397EF0 B0 7A 00 00 */ sth r3, 0(r26) +/* 8039AF94 00397EF4 28 15 00 04 */ cmplwi r21, 4 +/* 8039AF98 00397EF8 3B 5A 00 02 */ addi r26, r26, 2 +/* 8039AF9C 00397EFC 41 80 FF DC */ blt lbl_8039AF78 +/* 8039AFA0 00397F00 81 96 00 00 */ lwz r12, 0(r22) +/* 8039AFA4 00397F04 38 81 00 08 */ addi r4, r1, 8 +/* 8039AFA8 00397F08 80 B7 00 00 */ lwz r5, 0(r23) +/* 8039AFAC 00397F0C 38 60 00 01 */ li r3, 1 +/* 8039AFB0 00397F10 7D 89 03 A6 */ mtctr r12 +/* 8039AFB4 00397F14 4E 80 04 21 */ bctrl +lbl_8039AFB8: +/* 8039AFB8 00397F18 3A 94 00 01 */ addi r20, r20, 1 +/* 8039AFBC 00397F1C 3B 9C 00 01 */ addi r28, r28, 1 +/* 8039AFC0 00397F20 28 14 00 08 */ cmplwi r20, 8 +/* 8039AFC4 00397F24 3B BD 00 04 */ addi r29, r29, 4 +/* 8039AFC8 00397F28 3B DE 00 04 */ addi r30, r30, 4 +/* 8039AFCC 00397F2C 3B FF 00 01 */ addi r31, r31, 1 +/* 8039AFD0 00397F30 3B 18 00 01 */ addi r24, r24, 1 +/* 8039AFD4 00397F34 3A F7 00 04 */ addi r23, r23, 4 +/* 8039AFD8 00397F38 3A D6 00 04 */ addi r22, r22, 4 +/* 8039AFDC 00397F3C 3B 7B 00 01 */ addi r27, r27, 1 +/* 8039AFE0 00397F40 41 80 FF 30 */ blt lbl_8039AF10 +lbl_8039AFE4: +/* 8039AFE4 00397F44 48 01 8F 21 */ bl nullsub_59 +/* 8039AFE8 00397F48 80 6D AE 8C */ lwz r3, lbl_805A9A4C@sda21(r13) +/* 8039AFEC 00397F4C 80 0D AE 88 */ lwz r0, lbl_805A9A48@sda21(r13) +/* 8039AFF0 00397F50 7C 63 C8 14 */ addc r3, r3, r25 +/* 8039AFF4 00397F54 7C 00 01 94 */ addze r0, r0 +/* 8039AFF8 00397F58 90 6D AE 8C */ stw r3, lbl_805A9A4C@sda21(r13) +/* 8039AFFC 00397F5C 90 0D AE 88 */ stw r0, lbl_805A9A48@sda21(r13) +lbl_8039B000: +/* 8039B000 00397F60 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039B004 00397F64 4B FE EA A9 */ bl _restgpr_20 +/* 8039B008 00397F68 80 01 00 54 */ lwz r0, 0x54(r1) +/* 8039B00C 00397F6C 7C 08 03 A6 */ mtlr r0 +/* 8039B010 00397F70 38 21 00 50 */ addi r1, r1, 0x50 +/* 8039B014 00397F74 4E 80 00 20 */ blr + +.global synthFXGetMaxVoices +synthFXGetMaxVoices: +/* 8039B018 00397F78 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039B01C 00397F7C 7C 08 02 A6 */ mflr r0 +/* 8039B020 00397F80 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039B024 00397F84 48 00 78 01 */ bl dataGetFX +/* 8039B028 00397F88 28 03 00 00 */ cmplwi r3, 0 +/* 8039B02C 00397F8C 41 82 00 0C */ beq lbl_8039B038 +/* 8039B030 00397F90 88 63 00 04 */ lbz r3, 4(r3) +/* 8039B034 00397F94 48 00 00 08 */ b lbl_8039B03C +lbl_8039B038: +/* 8039B038 00397F98 38 60 00 00 */ li r3, 0 +lbl_8039B03C: +/* 8039B03C 00397F9C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039B040 00397FA0 7C 08 03 A6 */ mtlr r0 +/* 8039B044 00397FA4 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039B048 00397FA8 4E 80 00 20 */ blr + +.global synthFXStart +synthFXStart: +/* 8039B04C 00397FAC 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 8039B050 00397FB0 7C 08 02 A6 */ mflr r0 +/* 8039B054 00397FB4 90 01 00 44 */ stw r0, 0x44(r1) +/* 8039B058 00397FB8 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039B05C 00397FBC 4B FE EA 21 */ bl sub_80389a7c +/* 8039B060 00397FC0 7C 9B 23 78 */ mr r27, r4 +/* 8039B064 00397FC4 7C BC 2B 78 */ mr r28, r5 +/* 8039B068 00397FC8 7C DD 33 78 */ mr r29, r6 +/* 8039B06C 00397FCC 7C FE 3B 78 */ mr r30, r7 +/* 8039B070 00397FD0 3B E0 FF FF */ li r31, -1 +/* 8039B074 00397FD4 48 00 77 B1 */ bl dataGetFX +/* 8039B078 00397FD8 7C 65 1B 79 */ or. r5, r3, r3 +/* 8039B07C 00397FDC 41 82 00 7C */ beq lbl_8039B0F8 +/* 8039B080 00397FE0 57 60 06 3E */ clrlwi r0, r27, 0x18 +/* 8039B084 00397FE4 28 00 00 FF */ cmplwi r0, 0xff +/* 8039B088 00397FE8 40 82 00 08 */ bne lbl_8039B090 +/* 8039B08C 00397FEC 8B 65 00 06 */ lbz r27, 6(r5) +lbl_8039B090: +/* 8039B090 00397FF0 57 80 06 3E */ clrlwi r0, r28, 0x18 +/* 8039B094 00397FF4 28 00 00 FF */ cmplwi r0, 0xff +/* 8039B098 00397FF8 40 82 00 08 */ bne lbl_8039B0A0 +/* 8039B09C 00397FFC 8B 85 00 07 */ lbz r28, 7(r5) +lbl_8039B0A0: +/* 8039B0A0 00398000 38 60 00 00 */ li r3, 0 +/* 8039B0A4 00398004 38 00 00 FF */ li r0, 0xff +/* 8039B0A8 00398008 90 61 00 08 */ stw r3, 8(r1) +/* 8039B0AC 0039800C 7F 67 DB 78 */ mr r7, r27 +/* 8039B0B0 00398010 7F 88 E3 78 */ mr r8, r28 +/* 8039B0B4 00398014 39 20 00 FF */ li r9, 0xff +/* 8039B0B8 00398018 90 61 00 0C */ stw r3, 0xc(r1) +/* 8039B0BC 0039801C 39 40 00 FF */ li r10, 0xff +/* 8039B0C0 00398020 90 01 00 10 */ stw r0, 0x10(r1) +/* 8039B0C4 00398024 88 05 00 09 */ lbz r0, 9(r5) +/* 8039B0C8 00398028 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039B0CC 0039802C 90 61 00 18 */ stw r3, 0x18(r1) +/* 8039B0D0 00398030 93 A1 00 1C */ stw r29, 0x1c(r1) +/* 8039B0D4 00398034 93 C1 00 20 */ stw r30, 0x20(r1) +/* 8039B0D8 00398038 88 05 00 08 */ lbz r0, 8(r5) +/* 8039B0DC 0039803C A0 65 00 02 */ lhz r3, 2(r5) +/* 8039B0E0 00398040 60 00 00 80 */ ori r0, r0, 0x80 +/* 8039B0E4 00398044 88 85 00 05 */ lbz r4, 5(r5) +/* 8039B0E8 00398048 88 A5 00 04 */ lbz r5, 4(r5) +/* 8039B0EC 0039804C 54 06 06 3E */ clrlwi r6, r0, 0x18 +/* 8039B0F0 00398050 4B FF E5 5D */ bl sub_8039964c +/* 8039B0F4 00398054 7C 7F 1B 78 */ mr r31, r3 +lbl_8039B0F8: +/* 8039B0F8 00398058 7F E3 FB 78 */ mr r3, r31 +/* 8039B0FC 0039805C 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039B100 00398060 4B FE E9 C9 */ bl _restgpr_27 +/* 8039B104 00398064 80 01 00 44 */ lwz r0, 0x44(r1) +/* 8039B108 00398068 7C 08 03 A6 */ mtlr r0 +/* 8039B10C 0039806C 38 21 00 40 */ addi r1, r1, 0x40 +/* 8039B110 00398070 4E 80 00 20 */ blr + +.global synthFXSetCtrl +synthFXSetCtrl: +/* 8039B114 00398074 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039B118 00398078 7C 08 02 A6 */ mflr r0 +/* 8039B11C 0039807C 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039B120 00398080 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039B124 00398084 7C BF 2B 78 */ mr r31, r5 +/* 8039B128 00398088 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039B12C 0039808C 7C 9E 23 78 */ mr r30, r4 +/* 8039B130 00398090 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039B134 00398094 93 81 00 10 */ stw r28, 0x10(r1) +/* 8039B138 00398098 3B 80 00 00 */ li r28, 0 +/* 8039B13C 0039809C 48 00 CA 6D */ bl vidGetInternalId +/* 8039B140 003980A0 48 00 00 88 */ b lbl_8039B1C8 +lbl_8039B144: +/* 8039B144 003980A4 54 64 06 3E */ clrlwi r4, r3, 0x18 +/* 8039B148 003980A8 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 8039B14C 003980AC 1F A4 04 04 */ mulli r29, r4, 0x404 +/* 8039B150 003980B0 7C E0 EA 14 */ add r7, r0, r29 +/* 8039B154 003980B4 80 07 00 F4 */ lwz r0, 0xf4(r7) +/* 8039B158 003980B8 7C 03 00 40 */ cmplw r3, r0 +/* 8039B15C 003980BC 40 82 00 64 */ bne lbl_8039B1C0 +/* 8039B160 003980C0 80 07 01 14 */ lwz r0, 0x114(r7) +/* 8039B164 003980C4 38 A0 00 00 */ li r5, 0 +/* 8039B168 003980C8 80 C7 01 18 */ lwz r6, 0x118(r7) +/* 8039B16C 003980CC 38 60 00 02 */ li r3, 2 +/* 8039B170 003980D0 7C 00 28 38 */ and r0, r0, r5 +/* 8039B174 003980D4 7C C3 18 38 */ and r3, r6, r3 +/* 8039B178 003980D8 7C 63 2A 78 */ xor r3, r3, r5 +/* 8039B17C 003980DC 7C 00 2A 78 */ xor r0, r0, r5 +/* 8039B180 003980E0 7C 60 03 79 */ or. r0, r3, r0 +/* 8039B184 003980E4 41 82 00 18 */ beq lbl_8039B19C +/* 8039B188 003980E8 88 A7 02 0B */ lbz r5, 0x20b(r7) +/* 8039B18C 003980EC 7F C3 F3 78 */ mr r3, r30 +/* 8039B190 003980F0 7F E6 FB 78 */ mr r6, r31 +/* 8039B194 003980F4 48 01 5F 5D */ bl sub_803b10f0 +/* 8039B198 003980F8 48 00 00 14 */ b lbl_8039B1AC +lbl_8039B19C: +/* 8039B19C 003980FC 88 A7 01 22 */ lbz r5, 0x122(r7) +/* 8039B1A0 00398100 7F C3 F3 78 */ mr r3, r30 +/* 8039B1A4 00398104 7F E6 FB 78 */ mr r6, r31 +/* 8039B1A8 00398108 48 01 5F 49 */ bl sub_803b10f0 +lbl_8039B1AC: +/* 8039B1AC 0039810C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039B1B0 00398110 38 1D 00 EC */ addi r0, r29, 0xec +/* 8039B1B4 00398114 3B 80 00 01 */ li r28, 1 +/* 8039B1B8 00398118 7C 63 00 2E */ lwzx r3, r3, r0 +/* 8039B1BC 0039811C 48 00 00 0C */ b lbl_8039B1C8 +lbl_8039B1C0: +/* 8039B1C0 00398120 7F 83 E3 78 */ mr r3, r28 +/* 8039B1C4 00398124 48 00 00 14 */ b lbl_8039B1D8 +lbl_8039B1C8: +/* 8039B1C8 00398128 3C 03 00 01 */ addis r0, r3, 1 +/* 8039B1CC 0039812C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039B1D0 00398130 40 82 FF 74 */ bne lbl_8039B144 +/* 8039B1D4 00398134 7F 83 E3 78 */ mr r3, r28 +lbl_8039B1D8: +/* 8039B1D8 00398138 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039B1DC 0039813C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039B1E0 00398140 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039B1E4 00398144 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039B1E8 00398148 83 81 00 10 */ lwz r28, 0x10(r1) +/* 8039B1EC 0039814C 7C 08 03 A6 */ mtlr r0 +/* 8039B1F0 00398150 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039B1F4 00398154 4E 80 00 20 */ blr + +.global synthFXSetCtrl14 +synthFXSetCtrl14: +/* 8039B1F8 00398158 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039B1FC 0039815C 7C 08 02 A6 */ mflr r0 +/* 8039B200 00398160 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039B204 00398164 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039B208 00398168 7C BF 2B 78 */ mr r31, r5 +/* 8039B20C 0039816C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039B210 00398170 7C 9E 23 78 */ mr r30, r4 +/* 8039B214 00398174 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039B218 00398178 93 81 00 10 */ stw r28, 0x10(r1) +/* 8039B21C 0039817C 3B 80 00 00 */ li r28, 0 +/* 8039B220 00398180 48 00 C9 89 */ bl vidGetInternalId +/* 8039B224 00398184 48 00 00 88 */ b lbl_8039B2AC +lbl_8039B228: +/* 8039B228 00398188 54 64 06 3E */ clrlwi r4, r3, 0x18 +/* 8039B22C 0039818C 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 8039B230 00398190 1F A4 04 04 */ mulli r29, r4, 0x404 +/* 8039B234 00398194 7C E0 EA 14 */ add r7, r0, r29 +/* 8039B238 00398198 80 07 00 F4 */ lwz r0, 0xf4(r7) +/* 8039B23C 0039819C 7C 03 00 40 */ cmplw r3, r0 +/* 8039B240 003981A0 40 82 00 64 */ bne lbl_8039B2A4 +/* 8039B244 003981A4 80 07 01 14 */ lwz r0, 0x114(r7) +/* 8039B248 003981A8 38 A0 00 00 */ li r5, 0 +/* 8039B24C 003981AC 80 C7 01 18 */ lwz r6, 0x118(r7) +/* 8039B250 003981B0 38 60 00 02 */ li r3, 2 +/* 8039B254 003981B4 7C 00 28 38 */ and r0, r0, r5 +/* 8039B258 003981B8 7C C3 18 38 */ and r3, r6, r3 +/* 8039B25C 003981BC 7C 63 2A 78 */ xor r3, r3, r5 +/* 8039B260 003981C0 7C 00 2A 78 */ xor r0, r0, r5 +/* 8039B264 003981C4 7C 60 03 79 */ or. r0, r3, r0 +/* 8039B268 003981C8 41 82 00 18 */ beq lbl_8039B280 +/* 8039B26C 003981CC 88 A7 02 0B */ lbz r5, 0x20b(r7) +/* 8039B270 003981D0 7F C3 F3 78 */ mr r3, r30 +/* 8039B274 003981D4 7F E6 FB 78 */ mr r6, r31 +/* 8039B278 003981D8 48 01 64 81 */ bl inpSetMidiCtrl14 +/* 8039B27C 003981DC 48 00 00 14 */ b lbl_8039B290 +lbl_8039B280: +/* 8039B280 003981E0 88 A7 01 22 */ lbz r5, 0x122(r7) +/* 8039B284 003981E4 7F C3 F3 78 */ mr r3, r30 +/* 8039B288 003981E8 7F E6 FB 78 */ mr r6, r31 +/* 8039B28C 003981EC 48 01 64 6D */ bl inpSetMidiCtrl14 +lbl_8039B290: +/* 8039B290 003981F0 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039B294 003981F4 38 1D 00 EC */ addi r0, r29, 0xec +/* 8039B298 003981F8 3B 80 00 01 */ li r28, 1 +/* 8039B29C 003981FC 7C 63 00 2E */ lwzx r3, r3, r0 +/* 8039B2A0 00398200 48 00 00 0C */ b lbl_8039B2AC +lbl_8039B2A4: +/* 8039B2A4 00398204 7F 83 E3 78 */ mr r3, r28 +/* 8039B2A8 00398208 48 00 00 14 */ b lbl_8039B2BC +lbl_8039B2AC: +/* 8039B2AC 0039820C 3C 03 00 01 */ addis r0, r3, 1 +/* 8039B2B0 00398210 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039B2B4 00398214 40 82 FF 74 */ bne lbl_8039B228 +/* 8039B2B8 00398218 7F 83 E3 78 */ mr r3, r28 +lbl_8039B2BC: +/* 8039B2BC 0039821C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039B2C0 00398220 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039B2C4 00398224 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039B2C8 00398228 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039B2CC 0039822C 83 81 00 10 */ lwz r28, 0x10(r1) +/* 8039B2D0 00398230 7C 08 03 A6 */ mtlr r0 +/* 8039B2D4 00398234 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039B2D8 00398238 4E 80 00 20 */ blr + +.global synthFXCloneMidiSetup +synthFXCloneMidiSetup: +/* 8039B2DC 0039823C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039B2E0 00398240 7C 08 02 A6 */ mflr r0 +/* 8039B2E4 00398244 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039B2E8 00398248 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039B2EC 0039824C 7C 9F 23 78 */ mr r31, r4 +/* 8039B2F0 00398250 7F E5 FB 78 */ mr r5, r31 +/* 8039B2F4 00398254 93 C1 00 08 */ stw r30, 8(r1) +/* 8039B2F8 00398258 7C 7E 1B 78 */ mr r30, r3 +/* 8039B2FC 0039825C 7F C4 F3 78 */ mr r4, r30 +/* 8039B300 00398260 38 60 00 07 */ li r3, 7 +/* 8039B304 00398264 48 01 69 D5 */ bl inpFXCopyCtrl +/* 8039B308 00398268 7F C4 F3 78 */ mr r4, r30 +/* 8039B30C 0039826C 7F E5 FB 78 */ mr r5, r31 +/* 8039B310 00398270 38 60 00 0A */ li r3, 0xa +/* 8039B314 00398274 48 01 69 C5 */ bl inpFXCopyCtrl +/* 8039B318 00398278 7F C4 F3 78 */ mr r4, r30 +/* 8039B31C 0039827C 7F E5 FB 78 */ mr r5, r31 +/* 8039B320 00398280 38 60 00 5B */ li r3, 0x5b +/* 8039B324 00398284 48 01 69 B5 */ bl inpFXCopyCtrl +/* 8039B328 00398288 7F C4 F3 78 */ mr r4, r30 +/* 8039B32C 0039828C 7F E5 FB 78 */ mr r5, r31 +/* 8039B330 00398290 38 60 00 80 */ li r3, 0x80 +/* 8039B334 00398294 48 01 69 A5 */ bl inpFXCopyCtrl +/* 8039B338 00398298 7F C4 F3 78 */ mr r4, r30 +/* 8039B33C 0039829C 7F E5 FB 78 */ mr r5, r31 +/* 8039B340 003982A0 38 60 00 84 */ li r3, 0x84 +/* 8039B344 003982A4 48 01 69 95 */ bl inpFXCopyCtrl +/* 8039B348 003982A8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039B34C 003982AC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039B350 003982B0 83 C1 00 08 */ lwz r30, 8(r1) +/* 8039B354 003982B4 7C 08 03 A6 */ mtlr r0 +/* 8039B358 003982B8 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039B35C 003982BC 4E 80 00 20 */ blr + +.global synthSendKeyOff +synthSendKeyOff: +/* 8039B360 003982C0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039B364 003982C4 7C 08 02 A6 */ mflr r0 +/* 8039B368 003982C8 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039B36C 003982CC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 8039B370 003982D0 93 C1 00 08 */ stw r30, 8(r1) +/* 8039B374 003982D4 3B C0 00 00 */ li r30, 0 +/* 8039B378 003982D8 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 8039B37C 003982DC 28 00 00 00 */ cmplwi r0, 0 +/* 8039B380 003982E0 41 82 00 4C */ beq lbl_8039B3CC +/* 8039B384 003982E4 48 00 C8 25 */ bl vidGetInternalId +/* 8039B388 003982E8 48 00 00 38 */ b lbl_8039B3C0 +lbl_8039B38C: +/* 8039B38C 003982EC 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 8039B390 003982F0 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039B394 003982F4 1F E0 04 04 */ mulli r31, r0, 0x404 +/* 8039B398 003982F8 7C 84 FA 14 */ add r4, r4, r31 +/* 8039B39C 003982FC 80 04 00 F4 */ lwz r0, 0xf4(r4) +/* 8039B3A0 00398300 7C 03 00 40 */ cmplw r3, r0 +/* 8039B3A4 00398304 40 82 00 10 */ bne lbl_8039B3B4 +/* 8039B3A8 00398308 7C 83 23 78 */ mr r3, r4 +/* 8039B3AC 0039830C 48 00 B9 75 */ bl macSetExternalKeyoff +/* 8039B3B0 00398310 3B C0 00 01 */ li r30, 1 +lbl_8039B3B4: +/* 8039B3B4 00398314 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039B3B8 00398318 38 1F 00 EC */ addi r0, r31, 0xec +/* 8039B3BC 0039831C 7C 63 00 2E */ lwzx r3, r3, r0 +lbl_8039B3C0: +/* 8039B3C0 00398320 3C 03 00 01 */ addis r0, r3, 1 +/* 8039B3C4 00398324 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039B3C8 00398328 40 82 FF C4 */ bne lbl_8039B38C +lbl_8039B3CC: +/* 8039B3CC 0039832C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039B3D0 00398330 7F C3 F3 78 */ mr r3, r30 +/* 8039B3D4 00398334 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 8039B3D8 00398338 83 C1 00 08 */ lwz r30, 8(r1) +/* 8039B3DC 0039833C 7C 08 03 A6 */ mtlr r0 +/* 8039B3E0 00398340 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039B3E4 00398344 4E 80 00 20 */ blr + +.global synthVolume +synthVolume: +/* 8039B3E8 00398348 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 8039B3EC 0039834C 7C 08 02 A6 */ mflr r0 +/* 8039B3F0 00398350 90 01 00 54 */ stw r0, 0x54(r1) +/* 8039B3F4 00398354 DB E1 00 40 */ stfd f31, 0x40(r1) +/* 8039B3F8 00398358 F3 E1 00 48 */ psq_st f31, 72(r1), 0, qr0 +/* 8039B3FC 0039835C 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039B400 00398360 4B FE E6 7D */ bl sub_80389a7c +/* 8039B404 00398364 54 80 04 3F */ clrlwi. r0, r4, 0x10 +/* 8039B408 00398368 7C 7B 1B 78 */ mr r27, r3 +/* 8039B40C 0039836C 7C BD 2B 78 */ mr r29, r5 +/* 8039B410 00398370 7C DE 33 78 */ mr r30, r6 +/* 8039B414 00398374 7C FC 3B 78 */ mr r28, r7 +/* 8039B418 00398378 90 01 00 08 */ stw r0, 8(r1) +/* 8039B41C 0039837C 41 82 00 0C */ beq lbl_8039B428 +/* 8039B420 00398380 38 61 00 08 */ addi r3, r1, 8 +/* 8039B424 00398384 48 01 7A C9 */ bl dGeomDisable +lbl_8039B428: +/* 8039B428 00398388 57 BF 06 3E */ clrlwi r31, r29, 0x18 +/* 8039B42C 0039838C 2C 1F 00 FD */ cmpwi r31, 0xfd +/* 8039B430 00398390 41 82 02 7C */ beq lbl_8039B6AC +/* 8039B434 00398394 40 80 00 1C */ bge lbl_8039B450 +/* 8039B438 00398398 2C 1F 00 FB */ cmpwi r31, 0xfb +/* 8039B43C 0039839C 41 82 02 68 */ beq lbl_8039B6A4 +/* 8039B440 003983A0 40 80 01 40 */ bge lbl_8039B580 +/* 8039B444 003983A4 2C 1F 00 FA */ cmpwi r31, 0xfa +/* 8039B448 003983A8 40 80 02 54 */ bge lbl_8039B69C +/* 8039B44C 003983AC 48 00 03 84 */ b lbl_8039B7D0 +lbl_8039B450: +/* 8039B450 003983B0 2C 1F 00 FF */ cmpwi r31, 0xff +/* 8039B454 003983B4 41 82 00 0C */ beq lbl_8039B460 +/* 8039B458 003983B8 40 80 03 78 */ bge lbl_8039B7D0 +/* 8039B45C 003983BC 48 00 02 58 */ b lbl_8039B6B4 +lbl_8039B460: +/* 8039B460 003983C0 57 63 06 3E */ clrlwi r3, r27, 0x18 +/* 8039B464 003983C4 3C 00 43 30 */ lis r0, 0x4330 +/* 8039B468 003983C8 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039B46C 003983CC 3C 60 80 55 */ lis r3, lbl_80550264@ha +/* 8039B470 003983D0 38 63 02 64 */ addi r3, r3, lbl_80550264@l +/* 8039B474 003983D4 C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039B478 003983D8 90 01 00 10 */ stw r0, 0x10(r1) +/* 8039B47C 003983DC 7C 7D 1B 78 */ mr r29, r3 +/* 8039B480 003983E0 C0 42 D5 10 */ lfs f2, lbl_805AF230@sda21(r2) +/* 8039B484 003983E4 3B 80 00 00 */ li r28, 0 +/* 8039B488 003983E8 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039B48C 003983EC EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039B490 003983F0 EF E2 00 32 */ fmuls f31, f2, f0 +lbl_8039B494: +/* 8039B494 003983F4 88 1D 00 2D */ lbz r0, 0x2d(r29) +/* 8039B498 003983F8 28 00 00 00 */ cmplwi r0, 0 +/* 8039B49C 003983FC 41 82 00 0C */ beq lbl_8039B4A8 +/* 8039B4A0 00398400 28 00 00 01 */ cmplwi r0, 1 +/* 8039B4A4 00398404 40 82 00 C8 */ bne lbl_8039B56C +lbl_8039B4A8: +/* 8039B4A8 00398408 80 61 00 08 */ lwz r3, 8(r1) +/* 8039B4AC 0039840C 38 00 FF FF */ li r0, -1 +/* 8039B4B0 00398410 9B DD 00 2C */ stb r30, 0x2c(r29) +/* 8039B4B4 00398414 28 03 00 00 */ cmplwi r3, 0 +/* 8039B4B8 00398418 90 1D 00 28 */ stw r0, 0x28(r29) +/* 8039B4BC 0039841C 41 82 00 40 */ beq lbl_8039B4FC +/* 8039B4C0 00398420 3C 00 43 30 */ lis r0, 0x4330 +/* 8039B4C4 00398424 C0 7D 00 00 */ lfs f3, 0(r29) +/* 8039B4C8 00398428 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039B4CC 0039842C C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039B4D0 00398430 90 01 00 10 */ stw r0, 0x10(r1) +/* 8039B4D4 00398434 C0 42 D5 4C */ lfs f2, lbl_805AF26C@sda21(r2) +/* 8039B4D8 00398438 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039B4DC 0039843C D0 7D 00 08 */ stfs f3, 8(r29) +/* 8039B4E0 00398440 EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039B4E4 00398444 C0 22 D5 20 */ lfs f1, lbl_805AF240@sda21(r2) +/* 8039B4E8 00398448 D3 FD 00 04 */ stfs f31, 4(r29) +/* 8039B4EC 0039844C EC 02 00 24 */ fdivs f0, f2, f0 +/* 8039B4F0 00398450 D0 3D 00 0C */ stfs f1, 0xc(r29) +/* 8039B4F4 00398454 D0 1D 00 10 */ stfs f0, 0x10(r29) +/* 8039B4F8 00398458 48 00 00 60 */ b lbl_8039B558 +lbl_8039B4FC: +/* 8039B4FC 0039845C D3 FD 00 04 */ stfs f31, 4(r29) +/* 8039B500 00398460 D3 FD 00 00 */ stfs f31, 0(r29) +/* 8039B504 00398464 80 7D 00 28 */ lwz r3, 0x28(r29) +/* 8039B508 00398468 3C 03 00 01 */ addis r0, r3, 1 +/* 8039B50C 0039846C 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039B510 00398470 41 82 00 48 */ beq lbl_8039B558 +/* 8039B514 00398474 88 1D 00 2C */ lbz r0, 0x2c(r29) +/* 8039B518 00398478 2C 00 00 02 */ cmpwi r0, 2 +/* 8039B51C 0039847C 41 82 00 28 */ beq lbl_8039B544 +/* 8039B520 00398480 40 80 00 10 */ bge lbl_8039B530 +/* 8039B524 00398484 2C 00 00 01 */ cmpwi r0, 1 +/* 8039B528 00398488 40 80 00 14 */ bge lbl_8039B53C +/* 8039B52C 0039848C 48 00 00 2C */ b lbl_8039B558 +lbl_8039B530: +/* 8039B530 00398490 2C 00 00 04 */ cmpwi r0, 4 +/* 8039B534 00398494 40 80 00 24 */ bge lbl_8039B558 +/* 8039B538 00398498 48 00 00 14 */ b lbl_8039B54C +lbl_8039B53C: +/* 8039B53C 0039849C 4B FF A6 01 */ bl seqStop +/* 8039B540 003984A0 48 00 00 18 */ b lbl_8039B558 +lbl_8039B544: +/* 8039B544 003984A4 4B FF A3 7D */ bl seqPause +/* 8039B548 003984A8 48 00 00 10 */ b lbl_8039B558 +lbl_8039B54C: +/* 8039B54C 003984AC 38 80 00 00 */ li r4, 0 +/* 8039B550 003984B0 38 A0 00 00 */ li r5, 0 +/* 8039B554 003984B4 4B FF AB 15 */ bl seqMute +lbl_8039B558: +/* 8039B558 003984B8 38 00 00 01 */ li r0, 1 +/* 8039B55C 003984BC 80 6D AE 70 */ lwz r3, lbl_805A9A30@sda21(r13) +/* 8039B560 003984C0 7C 00 E0 30 */ slw r0, r0, r28 +/* 8039B564 003984C4 7C 60 03 78 */ or r0, r3, r0 +/* 8039B568 003984C8 90 0D AE 70 */ stw r0, lbl_805A9A30@sda21(r13) +lbl_8039B56C: +/* 8039B56C 003984CC 3B 9C 00 01 */ addi r28, r28, 1 +/* 8039B570 003984D0 3B BD 00 30 */ addi r29, r29, 0x30 +/* 8039B574 003984D4 28 1C 00 20 */ cmplwi r28, 0x20 +/* 8039B578 003984D8 41 80 FF 1C */ blt lbl_8039B494 +/* 8039B57C 003984DC 48 00 03 7C */ b lbl_8039B8F8 +lbl_8039B580: +/* 8039B580 003984E0 57 63 06 3E */ clrlwi r3, r27, 0x18 +/* 8039B584 003984E4 3C 00 43 30 */ lis r0, 0x4330 +/* 8039B588 003984E8 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039B58C 003984EC 3C 60 80 55 */ lis r3, lbl_80550264@ha +/* 8039B590 003984F0 C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039B594 003984F4 3B A3 02 64 */ addi r29, r3, lbl_80550264@l +/* 8039B598 003984F8 90 01 00 10 */ stw r0, 0x10(r1) +/* 8039B59C 003984FC 3B 80 00 00 */ li r28, 0 +/* 8039B5A0 00398500 C0 42 D5 10 */ lfs f2, lbl_805AF230@sda21(r2) +/* 8039B5A4 00398504 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039B5A8 00398508 EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039B5AC 0039850C EF E2 00 32 */ fmuls f31, f2, f0 +lbl_8039B5B0: +/* 8039B5B0 00398510 88 1D 00 2D */ lbz r0, 0x2d(r29) +/* 8039B5B4 00398514 28 00 00 02 */ cmplwi r0, 2 +/* 8039B5B8 00398518 41 82 00 0C */ beq lbl_8039B5C4 +/* 8039B5BC 0039851C 28 00 00 03 */ cmplwi r0, 3 +/* 8039B5C0 00398520 40 82 00 C8 */ bne lbl_8039B688 +lbl_8039B5C4: +/* 8039B5C4 00398524 80 61 00 08 */ lwz r3, 8(r1) +/* 8039B5C8 00398528 38 00 FF FF */ li r0, -1 +/* 8039B5CC 0039852C 9B DD 00 2C */ stb r30, 0x2c(r29) +/* 8039B5D0 00398530 28 03 00 00 */ cmplwi r3, 0 +/* 8039B5D4 00398534 90 1D 00 28 */ stw r0, 0x28(r29) +/* 8039B5D8 00398538 41 82 00 40 */ beq lbl_8039B618 +/* 8039B5DC 0039853C 3C 00 43 30 */ lis r0, 0x4330 +/* 8039B5E0 00398540 C0 7D 00 00 */ lfs f3, 0(r29) +/* 8039B5E4 00398544 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039B5E8 00398548 C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039B5EC 0039854C 90 01 00 10 */ stw r0, 0x10(r1) +/* 8039B5F0 00398550 C0 42 D5 4C */ lfs f2, lbl_805AF26C@sda21(r2) +/* 8039B5F4 00398554 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039B5F8 00398558 D0 7D 00 08 */ stfs f3, 8(r29) +/* 8039B5FC 0039855C EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039B600 00398560 C0 22 D5 20 */ lfs f1, lbl_805AF240@sda21(r2) +/* 8039B604 00398564 D3 FD 00 04 */ stfs f31, 4(r29) +/* 8039B608 00398568 EC 02 00 24 */ fdivs f0, f2, f0 +/* 8039B60C 0039856C D0 3D 00 0C */ stfs f1, 0xc(r29) +/* 8039B610 00398570 D0 1D 00 10 */ stfs f0, 0x10(r29) +/* 8039B614 00398574 48 00 00 60 */ b lbl_8039B674 +lbl_8039B618: +/* 8039B618 00398578 D3 FD 00 04 */ stfs f31, 4(r29) +/* 8039B61C 0039857C D3 FD 00 00 */ stfs f31, 0(r29) +/* 8039B620 00398580 80 7D 00 28 */ lwz r3, 0x28(r29) +/* 8039B624 00398584 3C 03 00 01 */ addis r0, r3, 1 +/* 8039B628 00398588 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039B62C 0039858C 41 82 00 48 */ beq lbl_8039B674 +/* 8039B630 00398590 88 1D 00 2C */ lbz r0, 0x2c(r29) +/* 8039B634 00398594 2C 00 00 02 */ cmpwi r0, 2 +/* 8039B638 00398598 41 82 00 28 */ beq lbl_8039B660 +/* 8039B63C 0039859C 40 80 00 10 */ bge lbl_8039B64C +/* 8039B640 003985A0 2C 00 00 01 */ cmpwi r0, 1 +/* 8039B644 003985A4 40 80 00 14 */ bge lbl_8039B658 +/* 8039B648 003985A8 48 00 00 2C */ b lbl_8039B674 +lbl_8039B64C: +/* 8039B64C 003985AC 2C 00 00 04 */ cmpwi r0, 4 +/* 8039B650 003985B0 40 80 00 24 */ bge lbl_8039B674 +/* 8039B654 003985B4 48 00 00 14 */ b lbl_8039B668 +lbl_8039B658: +/* 8039B658 003985B8 4B FF A4 E5 */ bl seqStop +/* 8039B65C 003985BC 48 00 00 18 */ b lbl_8039B674 +lbl_8039B660: +/* 8039B660 003985C0 4B FF A2 61 */ bl seqPause +/* 8039B664 003985C4 48 00 00 10 */ b lbl_8039B674 +lbl_8039B668: +/* 8039B668 003985C8 38 80 00 00 */ li r4, 0 +/* 8039B66C 003985CC 38 A0 00 00 */ li r5, 0 +/* 8039B670 003985D0 4B FF A9 F9 */ bl seqMute +lbl_8039B674: +/* 8039B674 003985D4 38 00 00 01 */ li r0, 1 +/* 8039B678 003985D8 80 6D AE 70 */ lwz r3, lbl_805A9A30@sda21(r13) +/* 8039B67C 003985DC 7C 00 E0 30 */ slw r0, r0, r28 +/* 8039B680 003985E0 7C 60 03 78 */ or r0, r3, r0 +/* 8039B684 003985E4 90 0D AE 70 */ stw r0, lbl_805A9A30@sda21(r13) +lbl_8039B688: +/* 8039B688 003985E8 3B 9C 00 01 */ addi r28, r28, 1 +/* 8039B68C 003985EC 3B BD 00 30 */ addi r29, r29, 0x30 +/* 8039B690 003985F0 28 1C 00 20 */ cmplwi r28, 0x20 +/* 8039B694 003985F4 41 80 FF 1C */ blt lbl_8039B5B0 +/* 8039B698 003985F8 48 00 02 60 */ b lbl_8039B8F8 +lbl_8039B69C: +/* 8039B69C 003985FC 38 80 00 02 */ li r4, 2 +/* 8039B6A0 00398600 48 00 00 18 */ b lbl_8039B6B8 +lbl_8039B6A4: +/* 8039B6A4 00398604 38 80 00 03 */ li r4, 3 +/* 8039B6A8 00398608 48 00 00 10 */ b lbl_8039B6B8 +lbl_8039B6AC: +/* 8039B6AC 0039860C 38 80 00 00 */ li r4, 0 +/* 8039B6B0 00398610 48 00 00 08 */ b lbl_8039B6B8 +lbl_8039B6B4: +/* 8039B6B4 00398614 38 80 00 01 */ li r4, 1 +lbl_8039B6B8: +/* 8039B6B8 00398618 57 63 06 3E */ clrlwi r3, r27, 0x18 +/* 8039B6BC 0039861C 3C 00 43 30 */ lis r0, 0x4330 +/* 8039B6C0 00398620 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039B6C4 00398624 3C 60 80 55 */ lis r3, lbl_80550264@ha +/* 8039B6C8 00398628 C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039B6CC 0039862C 3B A3 02 64 */ addi r29, r3, lbl_80550264@l +/* 8039B6D0 00398630 90 01 00 10 */ stw r0, 0x10(r1) +/* 8039B6D4 00398634 54 9F 06 3E */ clrlwi r31, r4, 0x18 +/* 8039B6D8 00398638 C0 42 D5 10 */ lfs f2, lbl_805AF230@sda21(r2) +/* 8039B6DC 0039863C 3B 80 00 00 */ li r28, 0 +/* 8039B6E0 00398640 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039B6E4 00398644 EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039B6E8 00398648 EF E2 00 32 */ fmuls f31, f2, f0 +lbl_8039B6EC: +/* 8039B6EC 0039864C 88 1D 00 2D */ lbz r0, 0x2d(r29) +/* 8039B6F0 00398650 7C 00 F8 40 */ cmplw r0, r31 +/* 8039B6F4 00398654 40 82 00 C8 */ bne lbl_8039B7BC +/* 8039B6F8 00398658 80 61 00 08 */ lwz r3, 8(r1) +/* 8039B6FC 0039865C 38 00 FF FF */ li r0, -1 +/* 8039B700 00398660 9B DD 00 2C */ stb r30, 0x2c(r29) +/* 8039B704 00398664 28 03 00 00 */ cmplwi r3, 0 +/* 8039B708 00398668 90 1D 00 28 */ stw r0, 0x28(r29) +/* 8039B70C 0039866C 41 82 00 40 */ beq lbl_8039B74C +/* 8039B710 00398670 3C 00 43 30 */ lis r0, 0x4330 +/* 8039B714 00398674 C0 7D 00 00 */ lfs f3, 0(r29) +/* 8039B718 00398678 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039B71C 0039867C C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039B720 00398680 90 01 00 10 */ stw r0, 0x10(r1) +/* 8039B724 00398684 C0 42 D5 4C */ lfs f2, lbl_805AF26C@sda21(r2) +/* 8039B728 00398688 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 8039B72C 0039868C D0 7D 00 08 */ stfs f3, 8(r29) +/* 8039B730 00398690 EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039B734 00398694 C0 22 D5 20 */ lfs f1, lbl_805AF240@sda21(r2) +/* 8039B738 00398698 D3 FD 00 04 */ stfs f31, 4(r29) +/* 8039B73C 0039869C EC 02 00 24 */ fdivs f0, f2, f0 +/* 8039B740 003986A0 D0 3D 00 0C */ stfs f1, 0xc(r29) +/* 8039B744 003986A4 D0 1D 00 10 */ stfs f0, 0x10(r29) +/* 8039B748 003986A8 48 00 00 60 */ b lbl_8039B7A8 +lbl_8039B74C: +/* 8039B74C 003986AC D3 FD 00 04 */ stfs f31, 4(r29) +/* 8039B750 003986B0 D3 FD 00 00 */ stfs f31, 0(r29) +/* 8039B754 003986B4 80 7D 00 28 */ lwz r3, 0x28(r29) +/* 8039B758 003986B8 3C 03 00 01 */ addis r0, r3, 1 +/* 8039B75C 003986BC 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039B760 003986C0 41 82 00 48 */ beq lbl_8039B7A8 +/* 8039B764 003986C4 88 1D 00 2C */ lbz r0, 0x2c(r29) +/* 8039B768 003986C8 2C 00 00 02 */ cmpwi r0, 2 +/* 8039B76C 003986CC 41 82 00 28 */ beq lbl_8039B794 +/* 8039B770 003986D0 40 80 00 10 */ bge lbl_8039B780 +/* 8039B774 003986D4 2C 00 00 01 */ cmpwi r0, 1 +/* 8039B778 003986D8 40 80 00 14 */ bge lbl_8039B78C +/* 8039B77C 003986DC 48 00 00 2C */ b lbl_8039B7A8 +lbl_8039B780: +/* 8039B780 003986E0 2C 00 00 04 */ cmpwi r0, 4 +/* 8039B784 003986E4 40 80 00 24 */ bge lbl_8039B7A8 +/* 8039B788 003986E8 48 00 00 14 */ b lbl_8039B79C +lbl_8039B78C: +/* 8039B78C 003986EC 4B FF A3 B1 */ bl seqStop +/* 8039B790 003986F0 48 00 00 18 */ b lbl_8039B7A8 +lbl_8039B794: +/* 8039B794 003986F4 4B FF A1 2D */ bl seqPause +/* 8039B798 003986F8 48 00 00 10 */ b lbl_8039B7A8 +lbl_8039B79C: +/* 8039B79C 003986FC 38 80 00 00 */ li r4, 0 +/* 8039B7A0 00398700 38 A0 00 00 */ li r5, 0 +/* 8039B7A4 00398704 4B FF A8 C5 */ bl seqMute +lbl_8039B7A8: +/* 8039B7A8 00398708 38 00 00 01 */ li r0, 1 +/* 8039B7AC 0039870C 80 6D AE 70 */ lwz r3, lbl_805A9A30@sda21(r13) +/* 8039B7B0 00398710 7C 00 E0 30 */ slw r0, r0, r28 +/* 8039B7B4 00398714 7C 60 03 78 */ or r0, r3, r0 +/* 8039B7B8 00398718 90 0D AE 70 */ stw r0, lbl_805A9A30@sda21(r13) +lbl_8039B7BC: +/* 8039B7BC 0039871C 3B 9C 00 01 */ addi r28, r28, 1 +/* 8039B7C0 00398720 3B BD 00 30 */ addi r29, r29, 0x30 +/* 8039B7C4 00398724 28 1C 00 20 */ cmplwi r28, 0x20 +/* 8039B7C8 00398728 41 80 FF 24 */ blt lbl_8039B6EC +/* 8039B7CC 0039872C 48 00 01 2C */ b lbl_8039B8F8 +lbl_8039B7D0: +/* 8039B7D0 00398730 57 A0 06 3E */ clrlwi r0, r29, 0x18 +/* 8039B7D4 00398734 3C 60 80 55 */ lis r3, lbl_80550264@ha +/* 8039B7D8 00398738 1C C0 00 30 */ mulli r6, r0, 0x30 +/* 8039B7DC 0039873C 80 81 00 08 */ lwz r4, 8(r1) +/* 8039B7E0 00398740 38 A3 02 64 */ addi r5, r3, lbl_80550264@l +/* 8039B7E4 00398744 28 04 00 00 */ cmplwi r4, 0 +/* 8039B7E8 00398748 7D 05 32 14 */ add r8, r5, r6 +/* 8039B7EC 0039874C 9B C8 00 2C */ stb r30, 0x2c(r8) +/* 8039B7F0 00398750 7D 07 43 78 */ mr r7, r8 +/* 8039B7F4 00398754 38 E7 00 28 */ addi r7, r7, 0x28 +/* 8039B7F8 00398758 93 88 00 28 */ stw r28, 0x28(r8) +/* 8039B7FC 0039875C 39 08 00 2C */ addi r8, r8, 0x2c +/* 8039B800 00398760 41 82 00 60 */ beq lbl_8039B860 +/* 8039B804 00398764 3C 00 43 30 */ lis r0, 0x4330 +/* 8039B808 00398768 57 63 06 3E */ clrlwi r3, r27, 0x18 +/* 8039B80C 0039876C 90 81 00 1C */ stw r4, 0x1c(r1) +/* 8039B810 00398770 7C 85 32 14 */ add r4, r5, r6 +/* 8039B814 00398774 7C A5 34 2E */ lfsx f5, r5, r6 +/* 8039B818 00398778 90 01 00 18 */ stw r0, 0x18(r1) +/* 8039B81C 0039877C C8 62 D5 38 */ lfd f3, lbl_805AF258@sda21(r2) +/* 8039B820 00398780 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039B824 00398784 C0 22 D5 4C */ lfs f1, lbl_805AF26C@sda21(r2) +/* 8039B828 00398788 EC 00 18 28 */ fsubs f0, f0, f3 +/* 8039B82C 0039878C 90 61 00 14 */ stw r3, 0x14(r1) +/* 8039B830 00398790 C0 82 D5 10 */ lfs f4, lbl_805AF230@sda21(r2) +/* 8039B834 00398794 90 01 00 10 */ stw r0, 0x10(r1) +/* 8039B838 00398798 EC 01 00 24 */ fdivs f0, f1, f0 +/* 8039B83C 0039879C C0 22 D5 20 */ lfs f1, lbl_805AF240@sda21(r2) +/* 8039B840 003987A0 C8 41 00 10 */ lfd f2, 0x10(r1) +/* 8039B844 003987A4 D0 A4 00 08 */ stfs f5, 8(r4) +/* 8039B848 003987A8 EC 42 18 28 */ fsubs f2, f2, f3 +/* 8039B84C 003987AC EC 44 00 B2 */ fmuls f2, f4, f2 +/* 8039B850 003987B0 D0 44 00 04 */ stfs f2, 4(r4) +/* 8039B854 003987B4 D0 24 00 0C */ stfs f1, 0xc(r4) +/* 8039B858 003987B8 D0 04 00 10 */ stfs f0, 0x10(r4) +/* 8039B85C 003987BC 48 00 00 88 */ b lbl_8039B8E4 +lbl_8039B860: +/* 8039B860 003987C0 57 63 06 3E */ clrlwi r3, r27, 0x18 +/* 8039B864 003987C4 3C 00 43 30 */ lis r0, 0x4330 +/* 8039B868 003987C8 90 61 00 1C */ stw r3, 0x1c(r1) +/* 8039B86C 003987CC 7C 65 32 14 */ add r3, r5, r6 +/* 8039B870 003987D0 C8 22 D5 38 */ lfd f1, lbl_805AF258@sda21(r2) +/* 8039B874 003987D4 90 01 00 18 */ stw r0, 0x18(r1) +/* 8039B878 003987D8 C0 42 D5 10 */ lfs f2, lbl_805AF230@sda21(r2) +/* 8039B87C 003987DC C8 01 00 18 */ lfd f0, 0x18(r1) +/* 8039B880 003987E0 EC 00 08 28 */ fsubs f0, f0, f1 +/* 8039B884 003987E4 EC 02 00 32 */ fmuls f0, f2, f0 +/* 8039B888 003987E8 D0 03 00 04 */ stfs f0, 4(r3) +/* 8039B88C 003987EC 7C 05 35 2E */ stfsx f0, r5, r6 +/* 8039B890 003987F0 80 67 00 00 */ lwz r3, 0(r7) +/* 8039B894 003987F4 3C 03 00 01 */ addis r0, r3, 1 +/* 8039B898 003987F8 28 00 FF FF */ cmplwi r0, 0xffff +/* 8039B89C 003987FC 41 82 00 48 */ beq lbl_8039B8E4 +/* 8039B8A0 00398800 88 08 00 00 */ lbz r0, 0(r8) +/* 8039B8A4 00398804 2C 00 00 02 */ cmpwi r0, 2 +/* 8039B8A8 00398808 41 82 00 28 */ beq lbl_8039B8D0 +/* 8039B8AC 0039880C 40 80 00 10 */ bge lbl_8039B8BC +/* 8039B8B0 00398810 2C 00 00 01 */ cmpwi r0, 1 +/* 8039B8B4 00398814 40 80 00 14 */ bge lbl_8039B8C8 +/* 8039B8B8 00398818 48 00 00 2C */ b lbl_8039B8E4 +lbl_8039B8BC: +/* 8039B8BC 0039881C 2C 00 00 04 */ cmpwi r0, 4 +/* 8039B8C0 00398820 40 80 00 24 */ bge lbl_8039B8E4 +/* 8039B8C4 00398824 48 00 00 14 */ b lbl_8039B8D8 +lbl_8039B8C8: +/* 8039B8C8 00398828 4B FF A2 75 */ bl seqStop +/* 8039B8CC 0039882C 48 00 00 18 */ b lbl_8039B8E4 +lbl_8039B8D0: +/* 8039B8D0 00398830 4B FF 9F F1 */ bl seqPause +/* 8039B8D4 00398834 48 00 00 10 */ b lbl_8039B8E4 +lbl_8039B8D8: +/* 8039B8D8 00398838 38 80 00 00 */ li r4, 0 +/* 8039B8DC 0039883C 38 A0 00 00 */ li r5, 0 +/* 8039B8E0 00398840 4B FF A7 89 */ bl seqMute +lbl_8039B8E4: +/* 8039B8E4 00398844 38 00 00 01 */ li r0, 1 +/* 8039B8E8 00398848 80 6D AE 70 */ lwz r3, lbl_805A9A30@sda21(r13) +/* 8039B8EC 0039884C 7C 00 F8 30 */ slw r0, r0, r31 +/* 8039B8F0 00398850 7C 60 03 78 */ or r0, r3, r0 +/* 8039B8F4 00398854 90 0D AE 70 */ stw r0, lbl_805A9A30@sda21(r13) +lbl_8039B8F8: +/* 8039B8F8 00398858 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0 +/* 8039B8FC 0039885C 39 61 00 40 */ addi r11, r1, 0x40 +/* 8039B900 00398860 CB E1 00 40 */ lfd f31, 0x40(r1) +/* 8039B904 00398864 4B FE E1 C5 */ bl _restgpr_27 +/* 8039B908 00398868 80 01 00 54 */ lwz r0, 0x54(r1) +/* 8039B90C 0039886C 7C 08 03 A6 */ mtlr r0 +/* 8039B910 00398870 38 21 00 50 */ addi r1, r1, 0x50 +/* 8039B914 00398874 4E 80 00 20 */ blr + +.global synthIsFadeOutActive +synthIsFadeOutActive: +/* 8039B918 00398878 54 65 06 3E */ clrlwi r5, r3, 0x18 +/* 8039B91C 0039887C 3C 60 80 55 */ lis r3, lbl_80550264@ha +/* 8039B920 00398880 1C 85 00 30 */ mulli r4, r5, 0x30 +/* 8039B924 00398884 38 03 02 64 */ addi r0, r3, lbl_80550264@l +/* 8039B928 00398888 7C 80 22 14 */ add r4, r0, r4 +/* 8039B92C 0039888C 88 04 00 2D */ lbz r0, 0x2d(r4) +/* 8039B930 00398890 28 00 00 04 */ cmplwi r0, 4 +/* 8039B934 00398894 41 82 00 30 */ beq lbl_8039B964 +/* 8039B938 00398898 38 00 00 01 */ li r0, 1 +/* 8039B93C 0039889C 80 6D AE 70 */ lwz r3, lbl_805A9A30@sda21(r13) +/* 8039B940 003988A0 7C 00 28 30 */ slw r0, r0, r5 +/* 8039B944 003988A4 7C 60 00 39 */ and. r0, r3, r0 +/* 8039B948 003988A8 41 82 00 1C */ beq lbl_8039B964 +/* 8039B94C 003988AC C0 24 00 08 */ lfs f1, 8(r4) +/* 8039B950 003988B0 C0 04 00 04 */ lfs f0, 4(r4) +/* 8039B954 003988B4 FC 01 00 40 */ fcmpo cr0, f1, f0 +/* 8039B958 003988B8 40 81 00 0C */ ble lbl_8039B964 +/* 8039B95C 003988BC 38 60 00 01 */ li r3, 1 +/* 8039B960 003988C0 4E 80 00 20 */ blr +lbl_8039B964: +/* 8039B964 003988C4 38 60 00 00 */ li r3, 0 +/* 8039B968 003988C8 4E 80 00 20 */ blr + +.global synthSetMusicVolumeType +synthSetMusicVolumeType: +/* 8039B96C 003988CC 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 8039B970 003988D0 28 00 00 00 */ cmplwi r0, 0 +/* 8039B974 003988D4 4D 82 00 20 */ beqlr +/* 8039B978 003988D8 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 8039B97C 003988DC 3C 60 80 55 */ lis r3, lbl_80550264@ha +/* 8039B980 003988E0 1C 00 00 30 */ mulli r0, r0, 0x30 +/* 8039B984 003988E4 38 63 02 64 */ addi r3, r3, lbl_80550264@l +/* 8039B988 003988E8 7C 63 02 14 */ add r3, r3, r0 +/* 8039B98C 003988EC 98 83 00 2D */ stb r4, 0x2d(r3) +/* 8039B990 003988F0 4E 80 00 20 */ blr + +.global sub_8039b994 +sub_8039b994: +/* 8039B994 003988F4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8039B998 003988F8 7C 08 02 A6 */ mflr r0 +/* 8039B99C 003988FC 2C 03 00 02 */ cmpwi r3, 2 +/* 8039B9A0 00398900 90 01 00 24 */ stw r0, 0x24(r1) +/* 8039B9A4 00398904 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 8039B9A8 00398908 93 C1 00 18 */ stw r30, 0x18(r1) +/* 8039B9AC 0039890C 3B C0 00 00 */ li r30, 0 +/* 8039B9B0 00398910 93 A1 00 14 */ stw r29, 0x14(r1) +/* 8039B9B4 00398914 7C 9D 23 78 */ mr r29, r4 +/* 8039B9B8 00398918 41 82 00 70 */ beq lbl_8039BA28 +/* 8039B9BC 0039891C 40 80 00 14 */ bge lbl_8039B9D0 +/* 8039B9C0 00398920 2C 03 00 00 */ cmpwi r3, 0 +/* 8039B9C4 00398924 41 82 00 18 */ beq lbl_8039B9DC +/* 8039B9C8 00398928 40 80 00 54 */ bge lbl_8039BA1C +/* 8039B9CC 0039892C 48 00 00 78 */ b lbl_8039BA44 +lbl_8039B9D0: +/* 8039B9D0 00398930 2C 03 00 04 */ cmpwi r3, 4 +/* 8039B9D4 00398934 40 80 00 70 */ bge lbl_8039BA44 +/* 8039B9D8 00398938 48 00 00 60 */ b lbl_8039BA38 +lbl_8039B9DC: +/* 8039B9DC 0039893C 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 8039B9E0 00398940 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 8039B9E4 00398944 1F E3 04 04 */ mulli r31, r3, 0x404 +/* 8039B9E8 00398948 7C 80 FA 14 */ add r4, r0, r31 +/* 8039B9EC 0039894C 88 04 01 1C */ lbz r0, 0x11c(r4) +/* 8039B9F0 00398950 28 00 00 00 */ cmplwi r0, 0 +/* 8039B9F4 00398954 40 82 00 50 */ bne lbl_8039BA44 +/* 8039B9F8 00398958 48 01 85 31 */ bl hwGetVirtualSampleID +/* 8039B9FC 0039895C 48 00 E2 D9 */ bl vsSampleEndNotify +/* 8039BA00 00398960 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 8039BA04 00398964 7C 60 FA 14 */ add r3, r0, r31 +/* 8039BA08 00398968 80 03 00 F4 */ lwz r0, 0xf4(r3) +/* 8039BA0C 0039896C 7C 1D 00 40 */ cmplw r29, r0 +/* 8039BA10 00398970 40 82 00 34 */ bne lbl_8039BA44 +/* 8039BA14 00398974 48 00 B2 61 */ bl macSampleEndNotify +/* 8039BA18 00398978 48 00 00 2C */ b lbl_8039BA44 +lbl_8039BA1C: +/* 8039BA1C 0039897C 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 8039BA20 00398980 48 00 CF FD */ bl voiceKill +/* 8039BA24 00398984 48 00 00 20 */ b lbl_8039BA44 +lbl_8039BA28: +/* 8039BA28 00398988 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 8039BA2C 0039898C 48 00 E0 61 */ bl sub_803a9a8c +/* 8039BA30 00398990 7C 7E 1B 78 */ mr r30, r3 +/* 8039BA34 00398994 48 00 00 10 */ b lbl_8039BA44 +lbl_8039BA38: +/* 8039BA38 00398998 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 8039BA3C 0039899C 48 01 84 ED */ bl hwGetVirtualSampleID +/* 8039BA40 003989A0 48 00 E2 95 */ bl vsSampleEndNotify +lbl_8039BA44: +/* 8039BA44 003989A4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8039BA48 003989A8 7F C3 F3 78 */ mr r3, r30 +/* 8039BA4C 003989AC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 8039BA50 003989B0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8039BA54 003989B4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 8039BA58 003989B8 7C 08 03 A6 */ mtlr r0 +/* 8039BA5C 003989BC 38 21 00 20 */ addi r1, r1, 0x20 +/* 8039BA60 003989C0 4E 80 00 20 */ blr + +.global synthInit +synthInit: +/* 8039BA64 003989C4 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 8039BA68 003989C8 7C 08 02 A6 */ mflr r0 +/* 8039BA6C 003989CC 90 01 00 54 */ stw r0, 0x54(r1) +/* 8039BA70 003989D0 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039BA74 003989D4 4B FE DF D5 */ bl __save_gpr +/* 8039BA78 003989D8 7C 8F 23 78 */ mr r15, r4 +/* 8039BA7C 003989DC 3C 80 80 55 */ lis r4, lbl_8054FE10@ha +/* 8039BA80 003989E0 3B E4 FE 10 */ addi r31, r4, lbl_8054FE10@l +/* 8039BA84 003989E4 38 A0 00 00 */ li r5, 0 +/* 8039BA88 003989E8 1D CF 04 04 */ mulli r14, r15, 0x404 +/* 8039BA8C 003989EC 38 00 18 00 */ li r0, 0x1800 +/* 8039BA90 003989F0 38 9F 00 00 */ addi r4, r31, 0 +/* 8039BA94 003989F4 90 7F 02 40 */ stw r3, 0x240(r31) +/* 8039BA98 003989F8 90 AD AE 8C */ stw r5, lbl_805A9A4C@sda21(r13) +/* 8039BA9C 003989FC 7D C3 73 78 */ mr r3, r14 +/* 8039BAA0 00398A00 90 AD AE 88 */ stw r5, lbl_805A9A48@sda21(r13) +/* 8039BAA4 00398A04 90 04 02 00 */ stw r0, 0x200(r4) +/* 8039BAA8 00398A08 90 AD AE 74 */ stw r5, lbl_805A9A34@sda21(r13) +/* 8039BAAC 00398A0C 90 AD AE 7C */ stw r5, lbl_805A9A3C@sda21(r13) +/* 8039BAB0 00398A10 48 01 96 85 */ bl salMalloc +/* 8039BAB4 00398A14 90 6D AE 78 */ stw r3, lbl_805A9A38@sda21(r13) +/* 8039BAB8 00398A18 7D C5 73 78 */ mr r5, r14 +/* 8039BABC 00398A1C 38 80 00 00 */ li r4, 0 +/* 8039BAC0 00398A20 4B C6 78 E9 */ bl memset +/* 8039BAC4 00398A24 38 C0 00 00 */ li r6, 0 +/* 8039BAC8 00398A28 38 A0 00 00 */ li r5, 0 +/* 8039BACC 00398A2C 3E 60 00 40 */ lis r19, 0x40 +/* 8039BAD0 00398A30 7D E9 03 A6 */ mtctr r15 +/* 8039BAD4 00398A34 28 0F 00 00 */ cmplwi r15, 0 +/* 8039BAD8 00398A38 40 81 01 E8 */ ble lbl_8039BCC0 +lbl_8039BADC: +/* 8039BADC 00398A3C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BAE0 00398A40 38 05 00 F4 */ addi r0, r5, 0xf4 +/* 8039BAE4 00398A44 38 80 FF FF */ li r4, -1 +/* 8039BAE8 00398A48 39 25 01 14 */ addi r9, r5, 0x114 +/* 8039BAEC 00398A4C 7C 83 01 2E */ stwx r4, r3, r0 +/* 8039BAF0 00398A50 38 80 00 00 */ li r4, 0 +/* 8039BAF4 00398A54 39 05 01 10 */ addi r8, r5, 0x110 +/* 8039BAF8 00398A58 38 65 01 0C */ addi r3, r5, 0x10c +/* 8039BAFC 00398A5C 81 4D AE 78 */ lwz r10, lbl_805A9A38@sda21(r13) +/* 8039BB00 00398A60 38 E5 01 21 */ addi r7, r5, 0x121 +/* 8039BB04 00398A64 38 00 00 FF */ li r0, 0xff +/* 8039BB08 00398A68 39 C5 01 54 */ addi r14, r5, 0x154 +/* 8039BB0C 00398A6C 7D 2A 4A 14 */ add r9, r10, r9 +/* 8039BB10 00398A70 39 E5 01 92 */ addi r15, r5, 0x192 +/* 8039BB14 00398A74 90 89 00 04 */ stw r4, 4(r9) +/* 8039BB18 00398A78 3A 25 01 90 */ addi r17, r5, 0x190 +/* 8039BB1C 00398A7C 3A 00 00 80 */ li r16, 0x80 +/* 8039BB20 00398A80 3A 45 01 91 */ addi r18, r5, 0x191 +/* 8039BB24 00398A84 90 89 00 00 */ stw r4, 0(r9) +/* 8039BB28 00398A88 3A 85 01 80 */ addi r20, r5, 0x180 +/* 8039BB2C 00398A8C 3A A5 01 70 */ addi r21, r5, 0x170 +/* 8039BB30 00398A90 3A C5 01 84 */ addi r22, r5, 0x184 +/* 8039BB34 00398A94 81 2D AE 78 */ lwz r9, lbl_805A9A38@sda21(r13) +/* 8039BB38 00398A98 3A E5 01 74 */ addi r23, r5, 0x174 +/* 8039BB3C 00398A9C 3B 05 01 A0 */ addi r24, r5, 0x1a0 +/* 8039BB40 00398AA0 3B 25 01 A4 */ addi r25, r5, 0x1a4 +/* 8039BB44 00398AA4 7C 89 41 2E */ stwx r4, r9, r8 +/* 8039BB48 00398AA8 3B 45 01 B8 */ addi r26, r5, 0x1b8 +/* 8039BB4C 00398AAC 3B 65 01 B9 */ addi r27, r5, 0x1b9 +/* 8039BB50 00398AB0 3B 85 01 1C */ addi r28, r5, 0x11c +/* 8039BB54 00398AB4 81 0D AE 78 */ lwz r8, lbl_805A9A38@sda21(r13) +/* 8039BB58 00398AB8 3B A5 01 1E */ addi r29, r5, 0x11e +/* 8039BB5C 00398ABC 3B C5 01 04 */ addi r30, r5, 0x104 +/* 8039BB60 00398AC0 39 85 01 93 */ addi r12, r5, 0x193 +/* 8039BB64 00398AC4 7C 88 19 AE */ stbx r4, r8, r3 +/* 8039BB68 00398AC8 39 65 01 C0 */ addi r11, r5, 0x1c0 +/* 8039BB6C 00398ACC 39 45 01 C4 */ addi r10, r5, 0x1c4 +/* 8039BB70 00398AD0 39 05 01 C6 */ addi r8, r5, 0x1c6 +/* 8039BB74 00398AD4 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BB78 00398AD8 39 20 7F FF */ li r9, 0x7fff +/* 8039BB7C 00398ADC 7C 03 39 AE */ stbx r0, r3, r7 +/* 8039BB80 00398AE0 38 E5 01 CC */ addi r7, r5, 0x1cc +/* 8039BB84 00398AE4 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BB88 00398AE8 7C 83 71 2E */ stwx r4, r3, r14 +/* 8039BB8C 00398AEC 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BB90 00398AF0 7C 83 79 AE */ stbx r4, r3, r15 +/* 8039BB94 00398AF4 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BB98 00398AF8 7E 03 89 AE */ stbx r16, r3, r17 +/* 8039BB9C 00398AFC 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBA0 00398B00 7C 83 91 AE */ stbx r4, r3, r18 +/* 8039BBA4 00398B04 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBA8 00398B08 7E 63 A1 2E */ stwx r19, r3, r20 +/* 8039BBAC 00398B0C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBB0 00398B10 7E 63 A9 2E */ stwx r19, r3, r21 +/* 8039BBB4 00398B14 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBB8 00398B18 7C 83 B1 2E */ stwx r4, r3, r22 +/* 8039BBBC 00398B1C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBC0 00398B20 7C 83 B9 2E */ stwx r4, r3, r23 +/* 8039BBC4 00398B24 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBC8 00398B28 7C 83 C1 2E */ stwx r4, r3, r24 +/* 8039BBCC 00398B2C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBD0 00398B30 7C 83 C9 2E */ stwx r4, r3, r25 +/* 8039BBD4 00398B34 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBD8 00398B38 7C 83 D1 AE */ stbx r4, r3, r26 +/* 8039BBDC 00398B3C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBE0 00398B40 7C 83 D9 AE */ stbx r4, r3, r27 +/* 8039BBE4 00398B44 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBE8 00398B48 7C 83 E1 AE */ stbx r4, r3, r28 +/* 8039BBEC 00398B4C 38 60 00 17 */ li r3, 0x17 +/* 8039BBF0 00398B50 81 CD AE 78 */ lwz r14, lbl_805A9A38@sda21(r13) +/* 8039BBF4 00398B54 7C 6E E9 AE */ stbx r3, r14, r29 +/* 8039BBF8 00398B58 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BBFC 00398B5C 7C 83 F1 AE */ stbx r4, r3, r30 +/* 8039BC00 00398B60 38 60 00 01 */ li r3, 1 +/* 8039BC04 00398B64 81 CD AE 78 */ lwz r14, lbl_805A9A38@sda21(r13) +/* 8039BC08 00398B68 7C 6E 61 AE */ stbx r3, r14, r12 +/* 8039BC0C 00398B6C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BC10 00398B70 7C 83 59 2E */ stwx r4, r3, r11 +/* 8039BC14 00398B74 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BC18 00398B78 7C 83 53 2E */ sthx r4, r3, r10 +/* 8039BC1C 00398B7C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BC20 00398B80 7D 23 43 2E */ sthx r9, r3, r8 +/* 8039BC24 00398B84 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BC28 00398B88 7C 83 39 2E */ stwx r4, r3, r7 +/* 8039BC2C 00398B8C 81 0D AE 78 */ lwz r8, lbl_805A9A38@sda21(r13) +/* 8039BC30 00398B90 38 E5 01 D0 */ addi r7, r5, 0x1d0 +/* 8039BC34 00398B94 38 65 01 D2 */ addi r3, r5, 0x1d2 +/* 8039BC38 00398B98 3A 05 01 3C */ addi r16, r5, 0x13c +/* 8039BC3C 00398B9C 7C 88 3B 2E */ sthx r4, r8, r7 +/* 8039BC40 00398BA0 3A 20 64 00 */ li r17, 0x6400 +/* 8039BC44 00398BA4 39 E5 01 31 */ addi r15, r5, 0x131 +/* 8039BC48 00398BA8 39 C5 01 1F */ addi r14, r5, 0x11f +/* 8039BC4C 00398BAC 80 ED AE 78 */ lwz r7, lbl_805A9A38@sda21(r13) +/* 8039BC50 00398BB0 39 85 00 08 */ addi r12, r5, 8 +/* 8039BC54 00398BB4 39 65 00 09 */ addi r11, r5, 9 +/* 8039BC58 00398BB8 39 45 00 14 */ addi r10, r5, 0x14 +/* 8039BC5C 00398BBC 7D 27 1B 2E */ sthx r9, r7, r3 +/* 8039BC60 00398BC0 39 05 00 15 */ addi r8, r5, 0x15 +/* 8039BC64 00398BC4 38 E5 00 20 */ addi r7, r5, 0x20 +/* 8039BC68 00398BC8 38 65 00 21 */ addi r3, r5, 0x21 +/* 8039BC6C 00398BCC 81 2D AE 78 */ lwz r9, lbl_805A9A38@sda21(r13) +/* 8039BC70 00398BD0 38 A5 04 04 */ addi r5, r5, 0x404 +/* 8039BC74 00398BD4 7E 29 81 2E */ stwx r17, r9, r16 +/* 8039BC78 00398BD8 81 2D AE 78 */ lwz r9, lbl_805A9A38@sda21(r13) +/* 8039BC7C 00398BDC 7C 89 79 AE */ stbx r4, r9, r15 +/* 8039BC80 00398BE0 81 2D AE 78 */ lwz r9, lbl_805A9A38@sda21(r13) +/* 8039BC84 00398BE4 7C 89 71 AE */ stbx r4, r9, r14 +/* 8039BC88 00398BE8 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039BC8C 00398BEC 7C C4 61 AE */ stbx r6, r4, r12 +/* 8039BC90 00398BF0 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039BC94 00398BF4 7C 04 59 AE */ stbx r0, r4, r11 +/* 8039BC98 00398BF8 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039BC9C 00398BFC 7C C4 51 AE */ stbx r6, r4, r10 +/* 8039BCA0 00398C00 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039BCA4 00398C04 7C 04 41 AE */ stbx r0, r4, r8 +/* 8039BCA8 00398C08 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039BCAC 00398C0C 7C C4 39 AE */ stbx r6, r4, r7 +/* 8039BCB0 00398C10 38 C6 00 01 */ addi r6, r6, 1 +/* 8039BCB4 00398C14 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 8039BCB8 00398C18 7C 04 19 AE */ stbx r0, r4, r3 +/* 8039BCBC 00398C1C 42 00 FE 20 */ bdnz lbl_8039BADC +lbl_8039BCC0: +/* 8039BCC0 00398C20 38 00 00 02 */ li r0, 2 +/* 8039BCC4 00398C24 38 7F 04 54 */ addi r3, r31, 0x454 +/* 8039BCC8 00398C28 C0 22 D5 48 */ lfs f1, lbl_805AF268@sda21(r2) +/* 8039BCCC 00398C2C C0 02 D5 20 */ lfs f0, lbl_805AF240@sda21(r2) +/* 8039BCD0 00398C30 7C 09 03 A6 */ mtctr r0 +lbl_8039BCD4: +/* 8039BCD4 00398C34 D0 23 00 00 */ stfs f1, 0(r3) +/* 8039BCD8 00398C38 38 00 00 04 */ li r0, 4 +/* 8039BCDC 00398C3C D0 03 00 14 */ stfs f0, 0x14(r3) +/* 8039BCE0 00398C40 98 03 00 2D */ stb r0, 0x2d(r3) +/* 8039BCE4 00398C44 D0 23 00 30 */ stfs f1, 0x30(r3) +/* 8039BCE8 00398C48 D0 03 00 44 */ stfs f0, 0x44(r3) +/* 8039BCEC 00398C4C 98 03 00 5D */ stb r0, 0x5d(r3) +/* 8039BCF0 00398C50 D0 23 00 60 */ stfs f1, 0x60(r3) +/* 8039BCF4 00398C54 D0 03 00 74 */ stfs f0, 0x74(r3) +/* 8039BCF8 00398C58 98 03 00 8D */ stb r0, 0x8d(r3) +/* 8039BCFC 00398C5C D0 23 00 90 */ stfs f1, 0x90(r3) +/* 8039BD00 00398C60 D0 03 00 A4 */ stfs f0, 0xa4(r3) +/* 8039BD04 00398C64 98 03 00 BD */ stb r0, 0xbd(r3) +/* 8039BD08 00398C68 D0 23 00 C0 */ stfs f1, 0xc0(r3) +/* 8039BD0C 00398C6C D0 03 00 D4 */ stfs f0, 0xd4(r3) +/* 8039BD10 00398C70 98 03 00 ED */ stb r0, 0xed(r3) +/* 8039BD14 00398C74 D0 23 00 F0 */ stfs f1, 0xf0(r3) +/* 8039BD18 00398C78 D0 03 01 04 */ stfs f0, 0x104(r3) +/* 8039BD1C 00398C7C 98 03 01 1D */ stb r0, 0x11d(r3) +/* 8039BD20 00398C80 D0 23 01 20 */ stfs f1, 0x120(r3) +/* 8039BD24 00398C84 D0 03 01 34 */ stfs f0, 0x134(r3) +/* 8039BD28 00398C88 98 03 01 4D */ stb r0, 0x14d(r3) +/* 8039BD2C 00398C8C D0 23 01 50 */ stfs f1, 0x150(r3) +/* 8039BD30 00398C90 D0 03 01 64 */ stfs f0, 0x164(r3) +/* 8039BD34 00398C94 98 03 01 7D */ stb r0, 0x17d(r3) +/* 8039BD38 00398C98 D0 23 01 80 */ stfs f1, 0x180(r3) +/* 8039BD3C 00398C9C D0 03 01 94 */ stfs f0, 0x194(r3) +/* 8039BD40 00398CA0 98 03 01 AD */ stb r0, 0x1ad(r3) +/* 8039BD44 00398CA4 D0 23 01 B0 */ stfs f1, 0x1b0(r3) +/* 8039BD48 00398CA8 D0 03 01 C4 */ stfs f0, 0x1c4(r3) +/* 8039BD4C 00398CAC 98 03 01 DD */ stb r0, 0x1dd(r3) +/* 8039BD50 00398CB0 D0 23 01 E0 */ stfs f1, 0x1e0(r3) +/* 8039BD54 00398CB4 D0 03 01 F4 */ stfs f0, 0x1f4(r3) +/* 8039BD58 00398CB8 98 03 02 0D */ stb r0, 0x20d(r3) +/* 8039BD5C 00398CBC D0 23 02 10 */ stfs f1, 0x210(r3) +/* 8039BD60 00398CC0 D0 03 02 24 */ stfs f0, 0x224(r3) +/* 8039BD64 00398CC4 98 03 02 3D */ stb r0, 0x23d(r3) +/* 8039BD68 00398CC8 D0 23 02 40 */ stfs f1, 0x240(r3) +/* 8039BD6C 00398CCC D0 03 02 54 */ stfs f0, 0x254(r3) +/* 8039BD70 00398CD0 98 03 02 6D */ stb r0, 0x26d(r3) +/* 8039BD74 00398CD4 D0 23 02 70 */ stfs f1, 0x270(r3) +/* 8039BD78 00398CD8 D0 03 02 84 */ stfs f0, 0x284(r3) +/* 8039BD7C 00398CDC 98 03 02 9D */ stb r0, 0x29d(r3) +/* 8039BD80 00398CE0 D0 23 02 A0 */ stfs f1, 0x2a0(r3) +/* 8039BD84 00398CE4 D0 03 02 B4 */ stfs f0, 0x2b4(r3) +/* 8039BD88 00398CE8 98 03 02 CD */ stb r0, 0x2cd(r3) +/* 8039BD8C 00398CEC D0 23 02 D0 */ stfs f1, 0x2d0(r3) +/* 8039BD90 00398CF0 D0 03 02 E4 */ stfs f0, 0x2e4(r3) +/* 8039BD94 00398CF4 98 03 02 FD */ stb r0, 0x2fd(r3) +/* 8039BD98 00398CF8 38 63 03 00 */ addi r3, r3, 0x300 +/* 8039BD9C 00398CFC 42 00 FF 38 */ bdnz lbl_8039BCD4 +/* 8039BDA0 00398D00 C0 02 D5 20 */ lfs f0, lbl_805AF240@sda21(r2) +/* 8039BDA4 00398D04 38 9F 04 54 */ addi r4, r31, 0x454 +/* 8039BDA8 00398D08 38 A0 00 00 */ li r5, 0 +/* 8039BDAC 00398D0C 38 00 00 01 */ li r0, 1 +/* 8039BDB0 00398D10 90 AD AE 70 */ stw r5, lbl_805A9A30@sda21(r13) +/* 8039BDB4 00398D14 38 60 00 00 */ li r3, 0 +/* 8039BDB8 00398D18 90 AD AE 6C */ stw r5, lbl_805A9A2C@sda21(r13) +/* 8039BDBC 00398D1C 98 04 05 FD */ stb r0, 0x5fd(r4) +/* 8039BDC0 00398D20 98 A4 04 7D */ stb r5, 0x47d(r4) +/* 8039BDC4 00398D24 98 A4 04 AD */ stb r5, 0x4ad(r4) +/* 8039BDC8 00398D28 98 A4 04 DD */ stb r5, 0x4dd(r4) +/* 8039BDCC 00398D2C 98 A4 05 0D */ stb r5, 0x50d(r4) +/* 8039BDD0 00398D30 98 A4 05 3D */ stb r5, 0x53d(r4) +/* 8039BDD4 00398D34 98 A4 05 6D */ stb r5, 0x56d(r4) +/* 8039BDD8 00398D38 98 A4 05 9D */ stb r5, 0x59d(r4) +/* 8039BDDC 00398D3C 98 A4 05 CD */ stb r5, 0x5cd(r4) +/* 8039BDE0 00398D40 D0 04 03 F0 */ stfs f0, 0x3f0(r4) +/* 8039BDE4 00398D44 D0 04 04 20 */ stfs f0, 0x420(r4) +/* 8039BDE8 00398D48 48 01 69 E5 */ bl sub_803b27cc +/* 8039BDEC 00398D4C 39 00 00 00 */ li r8, 0 +/* 8039BDF0 00398D50 38 FF 0C 94 */ addi r7, r31, 0xc94 +/* 8039BDF4 00398D54 38 DF 0C 34 */ addi r6, r31, 0xc34 +/* 8039BDF8 00398D58 38 9F 0C 74 */ addi r4, r31, 0xc74 +/* 8039BDFC 00398D5C 38 00 00 FF */ li r0, 0xff +/* 8039BE00 00398D60 38 AD AE 64 */ addi r5, r13, lbl_805A9A24@sda21 +/* 8039BE04 00398D64 38 6D AE 54 */ addi r3, r13, lbl_805A9A14@sda21 +/* 8039BE08 00398D68 91 1F 0C 34 */ stw r8, 0xc34(r31) +/* 8039BE0C 00398D6C 98 0D AE 64 */ stb r0, lbl_805A9A24@sda21(r13) +/* 8039BE10 00398D70 91 1F 0C 74 */ stw r8, 0xc74(r31) +/* 8039BE14 00398D74 98 0D AE 54 */ stb r0, lbl_805A9A14@sda21(r13) +/* 8039BE18 00398D78 99 07 00 01 */ stb r8, 1(r7) +/* 8039BE1C 00398D7C 99 1F 0C 94 */ stb r8, 0xc94(r31) +/* 8039BE20 00398D80 91 06 00 04 */ stw r8, 4(r6) +/* 8039BE24 00398D84 98 05 00 01 */ stb r0, 1(r5) +/* 8039BE28 00398D88 91 04 00 04 */ stw r8, 4(r4) +/* 8039BE2C 00398D8C 98 03 00 01 */ stb r0, 1(r3) +/* 8039BE30 00398D90 99 07 00 03 */ stb r8, 3(r7) +/* 8039BE34 00398D94 99 07 00 02 */ stb r8, 2(r7) +/* 8039BE38 00398D98 91 06 00 08 */ stw r8, 8(r6) +/* 8039BE3C 00398D9C 98 05 00 02 */ stb r0, 2(r5) +/* 8039BE40 00398DA0 91 04 00 08 */ stw r8, 8(r4) +/* 8039BE44 00398DA4 98 03 00 02 */ stb r0, 2(r3) +/* 8039BE48 00398DA8 99 07 00 05 */ stb r8, 5(r7) +/* 8039BE4C 00398DAC 99 07 00 04 */ stb r8, 4(r7) +/* 8039BE50 00398DB0 91 06 00 0C */ stw r8, 0xc(r6) +/* 8039BE54 00398DB4 98 05 00 03 */ stb r0, 3(r5) +/* 8039BE58 00398DB8 91 04 00 0C */ stw r8, 0xc(r4) +/* 8039BE5C 00398DBC 98 03 00 03 */ stb r0, 3(r3) +/* 8039BE60 00398DC0 99 07 00 07 */ stb r8, 7(r7) +/* 8039BE64 00398DC4 99 07 00 06 */ stb r8, 6(r7) +/* 8039BE68 00398DC8 91 06 00 10 */ stw r8, 0x10(r6) +/* 8039BE6C 00398DCC 98 05 00 04 */ stb r0, 4(r5) +/* 8039BE70 00398DD0 91 04 00 10 */ stw r8, 0x10(r4) +/* 8039BE74 00398DD4 98 03 00 04 */ stb r0, 4(r3) +/* 8039BE78 00398DD8 99 07 00 09 */ stb r8, 9(r7) +/* 8039BE7C 00398DDC 99 07 00 08 */ stb r8, 8(r7) +/* 8039BE80 00398DE0 91 06 00 14 */ stw r8, 0x14(r6) +/* 8039BE84 00398DE4 98 05 00 05 */ stb r0, 5(r5) +/* 8039BE88 00398DE8 91 04 00 14 */ stw r8, 0x14(r4) +/* 8039BE8C 00398DEC 98 03 00 05 */ stb r0, 5(r3) +/* 8039BE90 00398DF0 99 07 00 0B */ stb r8, 0xb(r7) +/* 8039BE94 00398DF4 99 07 00 0A */ stb r8, 0xa(r7) +/* 8039BE98 00398DF8 91 06 00 18 */ stw r8, 0x18(r6) +/* 8039BE9C 00398DFC 98 05 00 06 */ stb r0, 6(r5) +/* 8039BEA0 00398E00 91 04 00 18 */ stw r8, 0x18(r4) +/* 8039BEA4 00398E04 98 03 00 06 */ stb r0, 6(r3) +/* 8039BEA8 00398E08 99 07 00 0D */ stb r8, 0xd(r7) +/* 8039BEAC 00398E0C 99 07 00 0C */ stb r8, 0xc(r7) +/* 8039BEB0 00398E10 91 06 00 1C */ stw r8, 0x1c(r6) +/* 8039BEB4 00398E14 98 05 00 07 */ stb r0, 7(r5) +/* 8039BEB8 00398E18 91 04 00 1C */ stw r8, 0x1c(r4) +/* 8039BEBC 00398E1C 98 03 00 07 */ stb r0, 7(r3) +/* 8039BEC0 00398E20 99 07 00 0F */ stb r8, 0xf(r7) +/* 8039BEC4 00398E24 99 07 00 0E */ stb r8, 0xe(r7) +/* 8039BEC8 00398E28 48 00 B7 31 */ bl macInit +/* 8039BECC 00398E2C 48 00 B7 95 */ bl vidInit +/* 8039BED0 00398E30 48 00 C5 99 */ bl synthInitAllocationAids +/* 8039BED4 00398E34 38 7F 0C A4 */ addi r3, r31, 0xca4 +/* 8039BED8 00398E38 38 00 00 00 */ li r0, 0 +/* 8039BEDC 00398E3C 90 03 00 00 */ stw r0, 0(r3) +/* 8039BEE0 00398E40 90 03 00 04 */ stw r0, 4(r3) +/* 8039BEE4 00398E44 90 03 00 08 */ stw r0, 8(r3) +/* 8039BEE8 00398E48 90 03 00 0C */ stw r0, 0xc(r3) +/* 8039BEEC 00398E4C 90 03 00 10 */ stw r0, 0x10(r3) +/* 8039BEF0 00398E50 90 03 00 14 */ stw r0, 0x14(r3) +/* 8039BEF4 00398E54 90 03 00 18 */ stw r0, 0x18(r3) +/* 8039BEF8 00398E58 90 03 00 1C */ stw r0, 0x1c(r3) +/* 8039BEFC 00398E5C 90 03 00 20 */ stw r0, 0x20(r3) +/* 8039BF00 00398E60 90 03 00 24 */ stw r0, 0x24(r3) +/* 8039BF04 00398E64 90 03 00 28 */ stw r0, 0x28(r3) +/* 8039BF08 00398E68 90 03 00 2C */ stw r0, 0x2c(r3) +/* 8039BF0C 00398E6C 90 03 00 30 */ stw r0, 0x30(r3) +/* 8039BF10 00398E70 90 03 00 34 */ stw r0, 0x34(r3) +/* 8039BF14 00398E74 90 03 00 38 */ stw r0, 0x38(r3) +/* 8039BF18 00398E78 90 03 00 3C */ stw r0, 0x3c(r3) +/* 8039BF1C 00398E7C 48 00 D0 91 */ bl voiceInitLastStarted +/* 8039BF20 00398E80 38 80 00 00 */ li r4, 0 +/* 8039BF24 00398E84 48 00 00 7C */ b lbl_8039BFA0 +lbl_8039BF28: +/* 8039BF28 00398E88 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 8039BF2C 00398E8C 38 BF 0A 94 */ addi r5, r31, 0xa94 +/* 8039BF30 00398E90 1C 00 00 0C */ mulli r0, r0, 0xc +/* 8039BF34 00398E94 38 60 00 00 */ li r3, 0 +/* 8039BF38 00398E98 38 84 00 08 */ addi r4, r4, 8 +/* 8039BF3C 00398E9C 7C A5 02 14 */ add r5, r5, r0 +/* 8039BF40 00398EA0 90 65 00 00 */ stw r3, 0(r5) +/* 8039BF44 00398EA4 90 65 00 04 */ stw r3, 4(r5) +/* 8039BF48 00398EA8 90 65 00 08 */ stw r3, 8(r5) +/* 8039BF4C 00398EAC 90 65 00 0C */ stw r3, 0xc(r5) +/* 8039BF50 00398EB0 90 65 00 10 */ stw r3, 0x10(r5) +/* 8039BF54 00398EB4 90 65 00 14 */ stw r3, 0x14(r5) +/* 8039BF58 00398EB8 90 65 00 18 */ stw r3, 0x18(r5) +/* 8039BF5C 00398EBC 90 65 00 1C */ stw r3, 0x1c(r5) +/* 8039BF60 00398EC0 90 65 00 20 */ stw r3, 0x20(r5) +/* 8039BF64 00398EC4 90 65 00 24 */ stw r3, 0x24(r5) +/* 8039BF68 00398EC8 90 65 00 28 */ stw r3, 0x28(r5) +/* 8039BF6C 00398ECC 90 65 00 2C */ stw r3, 0x2c(r5) +/* 8039BF70 00398ED0 90 65 00 30 */ stw r3, 0x30(r5) +/* 8039BF74 00398ED4 90 65 00 34 */ stw r3, 0x34(r5) +/* 8039BF78 00398ED8 90 65 00 38 */ stw r3, 0x38(r5) +/* 8039BF7C 00398EDC 90 65 00 3C */ stw r3, 0x3c(r5) +/* 8039BF80 00398EE0 90 65 00 40 */ stw r3, 0x40(r5) +/* 8039BF84 00398EE4 90 65 00 44 */ stw r3, 0x44(r5) +/* 8039BF88 00398EE8 90 65 00 48 */ stw r3, 0x48(r5) +/* 8039BF8C 00398EEC 90 65 00 4C */ stw r3, 0x4c(r5) +/* 8039BF90 00398EF0 90 65 00 50 */ stw r3, 0x50(r5) +/* 8039BF94 00398EF4 90 65 00 54 */ stw r3, 0x54(r5) +/* 8039BF98 00398EF8 90 65 00 58 */ stw r3, 0x58(r5) +/* 8039BF9C 00398EFC 90 65 00 5C */ stw r3, 0x5c(r5) +lbl_8039BFA0: +/* 8039BFA0 00398F00 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 8039BFA4 00398F04 28 00 00 20 */ cmplwi r0, 0x20 +/* 8039BFA8 00398F08 41 80 FF 80 */ blt lbl_8039BF28 +/* 8039BFAC 00398F0C 38 00 00 00 */ li r0, 0 +/* 8039BFB0 00398F10 3C 60 80 3A */ lis r3, sub_8039b994@ha +/* 8039BFB4 00398F14 98 0D AE 49 */ stb r0, lbl_805A9A09@sda21(r13) +/* 8039BFB8 00398F18 38 63 B9 94 */ addi r3, r3, sub_8039b994@l +/* 8039BFBC 00398F1C 48 01 72 01 */ bl sub_803b31bc +/* 8039BFC0 00398F20 39 61 00 50 */ addi r11, r1, 0x50 +/* 8039BFC4 00398F24 4B FE DA D1 */ bl __restore_gpr +/* 8039BFC8 00398F28 80 01 00 54 */ lwz r0, 0x54(r1) +/* 8039BFCC 00398F2C 7C 08 03 A6 */ mtlr r0 +/* 8039BFD0 00398F30 38 21 00 50 */ addi r1, r1, 0x50 +/* 8039BFD4 00398F34 4E 80 00 20 */ blr + +.global synthExit +synthExit: +/* 8039BFD8 00398F38 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8039BFDC 00398F3C 7C 08 02 A6 */ mflr r0 +/* 8039BFE0 00398F40 90 01 00 14 */ stw r0, 0x14(r1) +/* 8039BFE4 00398F44 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 8039BFE8 00398F48 48 01 91 75 */ bl salFree +/* 8039BFEC 00398F4C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8039BFF0 00398F50 7C 08 03 A6 */ mtlr r0 +/* 8039BFF4 00398F54 38 21 00 10 */ addi r1, r1, 0x10 +/* 8039BFF8 00398F58 4E 80 00 20 */ blr diff --git a/asm/musyx/synth_ac.s b/asm/musyx/synth_ac.s new file mode 100644 index 00000000..4598cb25 --- /dev/null +++ b/asm/musyx/synth_ac.s @@ -0,0 +1,86 @@ +.include "macros.inc" + +.section .text, "ax" + +.global sndPitchUpOne +sndPitchUpOne: +/* 803A90F0 003A6050 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A90F4 003A6054 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A90F8 003A6058 3C 00 43 30 */ lis r0, 0x4330 +/* 803A90FC 003A605C C8 22 D5 98 */ lfd f1, lbl_805AF2B8@sda21(r2) +/* 803A9100 003A6060 90 61 00 0C */ stw r3, 0xc(r1) +/* 803A9104 003A6064 C0 42 D5 90 */ lfs f2, lbl_805AF2B0@sda21(r2) +/* 803A9108 003A6068 90 01 00 08 */ stw r0, 8(r1) +/* 803A910C 003A606C C8 01 00 08 */ lfd f0, 8(r1) +/* 803A9110 003A6070 EC 00 08 28 */ fsubs f0, f0, f1 +/* 803A9114 003A6074 EC 02 00 32 */ fmuls f0, f2, f0 +/* 803A9118 003A6078 FC 00 00 1E */ fctiwz f0, f0 +/* 803A911C 003A607C D8 01 00 10 */ stfd f0, 0x10(r1) +/* 803A9120 003A6080 80 61 00 14 */ lwz r3, 0x14(r1) +/* 803A9124 003A6084 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A9128 003A6088 4E 80 00 20 */ blr + +.global sndGetPitch +sndGetPitch: +/* 803A912C 003A608C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A9130 003A6090 7C 08 02 A6 */ mflr r0 +/* 803A9134 003A6094 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A9138 003A6098 3C 04 00 01 */ addis r0, r4, 1 +/* 803A913C 003A609C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A9140 003A60A0 40 82 00 0C */ bne lbl_803A914C +/* 803A9144 003A60A4 3C 80 40 00 */ lis r4, 0x40005622@ha +/* 803A9148 003A60A8 38 84 56 22 */ addi r4, r4, 0x40005622@l +lbl_803A914C: +/* 803A914C 003A60AC 54 86 46 3E */ srwi r6, r4, 0x18 +/* 803A9150 003A60B0 54 65 06 3E */ clrlwi r5, r3, 0x18 +/* 803A9154 003A60B4 7C 05 30 40 */ cmplw r5, r6 +/* 803A9158 003A60B8 C0 42 D5 A0 */ lfs f2, lbl_805AF2C0@sda21(r2) +/* 803A915C 003A60BC 41 82 00 5C */ beq lbl_803A91B8 +/* 803A9160 003A60C0 54 83 02 3E */ clrlwi r3, r4, 8 +/* 803A9164 003A60C4 3C 00 43 30 */ lis r0, 0x4330 +/* 803A9168 003A60C8 90 61 00 0C */ stw r3, 0xc(r1) +/* 803A916C 003A60CC 7C 06 28 40 */ cmplw r6, r5 +/* 803A9170 003A60D0 C8 22 D5 98 */ lfd f1, lbl_805AF2B8@sda21(r2) +/* 803A9174 003A60D4 90 01 00 08 */ stw r0, 8(r1) +/* 803A9178 003A60D8 C8 01 00 08 */ lfd f0, 8(r1) +/* 803A917C 003A60DC EC 20 08 28 */ fsubs f1, f0, f1 +/* 803A9180 003A60E0 40 80 00 1C */ bge lbl_803A919C +/* 803A9184 003A60E4 7C 06 28 50 */ subf r0, r6, r5 +/* 803A9188 003A60E8 3C 60 80 3F */ lis r3, lbl_803F3420@ha +/* 803A918C 003A60EC 54 00 10 3A */ slwi r0, r0, 2 +/* 803A9190 003A60F0 38 63 34 20 */ addi r3, r3, lbl_803F3420@l +/* 803A9194 003A60F4 7C 03 04 2E */ lfsx f0, r3, r0 +/* 803A9198 003A60F8 48 00 00 18 */ b lbl_803A91B0 +lbl_803A919C: +/* 803A919C 003A60FC 7C 05 30 50 */ subf r0, r5, r6 +/* 803A91A0 003A6100 3C 60 80 3F */ lis r3, lbl_803F3620@ha +/* 803A91A4 003A6104 54 00 10 3A */ slwi r0, r0, 2 +/* 803A91A8 003A6108 38 63 36 20 */ addi r3, r3, lbl_803F3620@l +/* 803A91AC 003A610C 7C 03 04 2E */ lfsx f0, r3, r0 +lbl_803A91B0: +/* 803A91B0 003A6110 EC 01 00 32 */ fmuls f0, f1, f0 +/* 803A91B4 003A6114 48 00 00 20 */ b lbl_803A91D4 +lbl_803A91B8: +/* 803A91B8 003A6118 54 83 02 3E */ clrlwi r3, r4, 8 +/* 803A91BC 003A611C 3C 00 43 30 */ lis r0, 0x4330 +/* 803A91C0 003A6120 90 61 00 14 */ stw r3, 0x14(r1) +/* 803A91C4 003A6124 C8 22 D5 98 */ lfd f1, lbl_805AF2B8@sda21(r2) +/* 803A91C8 003A6128 90 01 00 10 */ stw r0, 0x10(r1) +/* 803A91CC 003A612C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803A91D0 003A6130 EC 00 08 28 */ fsubs f0, f0, f1 +lbl_803A91D4: +/* 803A91D4 003A6134 3C 00 43 30 */ lis r0, 0x4330 +/* 803A91D8 003A6138 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803A91DC 003A613C 90 01 00 18 */ stw r0, 0x18(r1) +/* 803A91E0 003A6140 EC 42 00 32 */ fmuls f2, f2, f0 +/* 803A91E4 003A6144 80 03 00 50 */ lwz r0, lbl_80550050@l(r3) +/* 803A91E8 003A6148 C8 22 D5 98 */ lfd f1, lbl_805AF2B8@sda21(r2) +/* 803A91EC 003A614C 90 01 00 1C */ stw r0, 0x1c(r1) +/* 803A91F0 003A6150 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 803A91F4 003A6154 EC 00 08 28 */ fsubs f0, f0, f1 +/* 803A91F8 003A6158 EC 22 00 24 */ fdivs f1, f2, f0 +/* 803A91FC 003A615C 4B FE 07 59 */ bl __cvt_fp2unsigned +/* 803A9200 003A6160 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A9204 003A6164 7C 08 03 A6 */ mtlr r0 +/* 803A9208 003A6168 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A920C 003A616C 4E 80 00 20 */ blr diff --git a/asm/musyx/synth_adsr.s b/asm/musyx/synth_adsr.s new file mode 100644 index 00000000..b16bc1f1 --- /dev/null +++ b/asm/musyx/synth_adsr.s @@ -0,0 +1,565 @@ +.include "macros.inc" + +.section .text, "ax" + +.global adsrConvertTimeCents +adsrConvertTimeCents: +/* 803A9210 003A6170 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A9214 003A6174 7C 08 02 A6 */ mflr r0 +/* 803A9218 003A6178 6C 63 80 00 */ xoris r3, r3, 0x8000 +/* 803A921C 003A617C C8 42 D5 B8 */ lfd f2, lbl_805AF2D8@sda21(r2) +/* 803A9220 003A6180 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A9224 003A6184 3C 00 43 30 */ lis r0, 0x4330 +/* 803A9228 003A6188 C0 62 D5 B0 */ lfs f3, lbl_805AF2D0@sda21(r2) +/* 803A922C 003A618C 90 61 00 0C */ stw r3, 0xc(r1) +/* 803A9230 003A6190 C8 22 D5 A8 */ lfd f1, lbl_805AF2C8@sda21(r2) +/* 803A9234 003A6194 90 01 00 08 */ stw r0, 8(r1) +/* 803A9238 003A6198 C8 01 00 08 */ lfd f0, 8(r1) +/* 803A923C 003A619C EC 00 10 28 */ fsubs f0, f0, f2 +/* 803A9240 003A61A0 EC 43 00 32 */ fmuls f2, f3, f0 +/* 803A9244 003A61A4 4B FE BA A9 */ bl pow +/* 803A9248 003A61A8 FC 20 08 18 */ frsp f1, f1 +/* 803A924C 003A61AC C0 02 D5 B4 */ lfs f0, lbl_805AF2D4@sda21(r2) +/* 803A9250 003A61B0 EC 20 00 72 */ fmuls f1, f0, f1 +/* 803A9254 003A61B4 4B FE 07 01 */ bl __cvt_fp2unsigned +/* 803A9258 003A61B8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A925C 003A61BC 7C 08 03 A6 */ mtlr r0 +/* 803A9260 003A61C0 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A9264 003A61C4 4E 80 00 20 */ blr + +.global salChangeADSRState +salChangeADSRState: +/* 803A9268 003A61C8 88 83 00 00 */ lbz r4, 0(r3) +/* 803A926C 003A61CC 38 00 00 00 */ li r0, 0 +/* 803A9270 003A61D0 2C 04 00 01 */ cmpwi r4, 1 +/* 803A9274 003A61D4 41 82 00 F0 */ beq lbl_803A9364 +/* 803A9278 003A61D8 40 80 02 54 */ bge lbl_803A94CC +/* 803A927C 003A61DC 2C 04 00 00 */ cmpwi r4, 0 +/* 803A9280 003A61E0 40 80 00 08 */ bge lbl_803A9288 +/* 803A9284 003A61E4 48 00 02 48 */ b lbl_803A94CC +lbl_803A9288: +/* 803A9288 003A61E8 88 83 00 01 */ lbz r4, 1(r3) +/* 803A928C 003A61EC 2C 04 00 02 */ cmpwi r4, 2 +/* 803A9290 003A61F0 41 82 00 98 */ beq lbl_803A9328 +/* 803A9294 003A61F4 40 80 00 14 */ bge lbl_803A92A8 +/* 803A9298 003A61F8 2C 04 00 00 */ cmpwi r4, 0 +/* 803A929C 003A61FC 41 82 00 18 */ beq lbl_803A92B4 +/* 803A92A0 003A6200 40 80 00 48 */ bge lbl_803A92E8 +/* 803A92A4 003A6204 48 00 02 28 */ b lbl_803A94CC +lbl_803A92A8: +/* 803A92A8 003A6208 2C 04 00 04 */ cmpwi r4, 4 +/* 803A92AC 003A620C 41 82 00 A8 */ beq lbl_803A9354 +/* 803A92B0 003A6210 48 00 02 1C */ b lbl_803A94CC +lbl_803A92B4: +/* 803A92B4 003A6214 80 83 00 14 */ lwz r4, 0x14(r3) +/* 803A92B8 003A6218 28 04 00 00 */ cmplwi r4, 0 +/* 803A92BC 003A621C 90 83 00 04 */ stw r4, 4(r3) +/* 803A92C0 003A6220 41 82 00 28 */ beq lbl_803A92E8 +/* 803A92C4 003A6224 38 A0 00 01 */ li r5, 1 +/* 803A92C8 003A6228 38 80 00 00 */ li r4, 0 +/* 803A92CC 003A622C 98 A3 00 01 */ stb r5, 1(r3) +/* 803A92D0 003A6230 3C A0 7F FF */ lis r5, 0x7fff +/* 803A92D4 003A6234 90 83 00 08 */ stw r4, 8(r3) +/* 803A92D8 003A6238 80 83 00 14 */ lwz r4, 0x14(r3) +/* 803A92DC 003A623C 7C 85 23 96 */ divwu r4, r5, r4 +/* 803A92E0 003A6240 90 83 00 10 */ stw r4, 0x10(r3) +/* 803A92E4 003A6244 48 00 01 E8 */ b lbl_803A94CC +lbl_803A92E8: +/* 803A92E8 003A6248 80 83 00 18 */ lwz r4, 0x18(r3) +/* 803A92EC 003A624C 28 04 00 00 */ cmplwi r4, 0 +/* 803A92F0 003A6250 90 83 00 04 */ stw r4, 4(r3) +/* 803A92F4 003A6254 41 82 00 34 */ beq lbl_803A9328 +/* 803A92F8 003A6258 38 80 00 02 */ li r4, 2 +/* 803A92FC 003A625C 3C C0 7F FF */ lis r6, 0x7fff +/* 803A9300 003A6260 98 83 00 01 */ stb r4, 1(r3) +/* 803A9304 003A6264 90 C3 00 08 */ stw r6, 8(r3) +/* 803A9308 003A6268 A0 A3 00 1C */ lhz r5, 0x1c(r3) +/* 803A930C 003A626C 80 83 00 18 */ lwz r4, 0x18(r3) +/* 803A9310 003A6270 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 803A9314 003A6274 7C A5 30 50 */ subf r5, r5, r6 +/* 803A9318 003A6278 7C 85 23 96 */ divwu r4, r5, r4 +/* 803A931C 003A627C 7C 84 00 D0 */ neg r4, r4 +/* 803A9320 003A6280 90 83 00 10 */ stw r4, 0x10(r3) +/* 803A9324 003A6284 48 00 01 A8 */ b lbl_803A94CC +lbl_803A9328: +/* 803A9328 003A6288 A0 83 00 1C */ lhz r4, 0x1c(r3) +/* 803A932C 003A628C 28 04 00 00 */ cmplwi r4, 0 +/* 803A9330 003A6290 41 82 00 24 */ beq lbl_803A9354 +/* 803A9334 003A6294 38 A0 00 03 */ li r5, 3 +/* 803A9338 003A6298 38 80 00 00 */ li r4, 0 +/* 803A933C 003A629C 98 A3 00 01 */ stb r5, 1(r3) +/* 803A9340 003A62A0 A0 A3 00 1C */ lhz r5, 0x1c(r3) +/* 803A9344 003A62A4 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 803A9348 003A62A8 90 A3 00 08 */ stw r5, 8(r3) +/* 803A934C 003A62AC 90 83 00 10 */ stw r4, 0x10(r3) +/* 803A9350 003A62B0 48 00 01 7C */ b lbl_803A94CC +lbl_803A9354: +/* 803A9354 003A62B4 38 80 00 00 */ li r4, 0 +/* 803A9358 003A62B8 38 00 00 01 */ li r0, 1 +/* 803A935C 003A62BC 90 83 00 08 */ stw r4, 8(r3) +/* 803A9360 003A62C0 48 00 01 6C */ b lbl_803A94CC +lbl_803A9364: +/* 803A9364 003A62C4 88 83 00 01 */ lbz r4, 1(r3) +/* 803A9368 003A62C8 2C 04 00 02 */ cmpwi r4, 2 +/* 803A936C 003A62CC 41 82 00 F4 */ beq lbl_803A9460 +/* 803A9370 003A62D0 40 80 00 14 */ bge lbl_803A9384 +/* 803A9374 003A62D4 2C 04 00 00 */ cmpwi r4, 0 +/* 803A9378 003A62D8 41 82 00 18 */ beq lbl_803A9390 +/* 803A937C 003A62DC 40 80 00 74 */ bge lbl_803A93F0 +/* 803A9380 003A62E0 48 00 01 4C */ b lbl_803A94CC +lbl_803A9384: +/* 803A9384 003A62E4 2C 04 00 04 */ cmpwi r4, 4 +/* 803A9388 003A62E8 41 82 01 38 */ beq lbl_803A94C0 +/* 803A938C 003A62EC 48 00 01 40 */ b lbl_803A94CC +lbl_803A9390: +/* 803A9390 003A62F0 80 83 00 14 */ lwz r4, 0x14(r3) +/* 803A9394 003A62F4 28 04 00 00 */ cmplwi r4, 0 +/* 803A9398 003A62F8 90 83 00 04 */ stw r4, 4(r3) +/* 803A939C 003A62FC 41 82 00 54 */ beq lbl_803A93F0 +/* 803A93A0 003A6300 38 80 00 01 */ li r4, 1 +/* 803A93A4 003A6304 98 83 00 01 */ stb r4, 1(r3) +/* 803A93A8 003A6308 88 83 00 26 */ lbz r4, 0x26(r3) +/* 803A93AC 003A630C 28 04 00 00 */ cmplwi r4, 0 +/* 803A93B0 003A6310 40 82 00 20 */ bne lbl_803A93D0 +/* 803A93B4 003A6314 38 80 00 00 */ li r4, 0 +/* 803A93B8 003A6318 3C A0 7F FF */ lis r5, 0x7fff +/* 803A93BC 003A631C 90 83 00 08 */ stw r4, 8(r3) +/* 803A93C0 003A6320 80 83 00 04 */ lwz r4, 4(r3) +/* 803A93C4 003A6324 7C 85 23 96 */ divwu r4, r5, r4 +/* 803A93C8 003A6328 90 83 00 10 */ stw r4, 0x10(r3) +/* 803A93CC 003A632C 48 00 01 00 */ b lbl_803A94CC +lbl_803A93D0: +/* 803A93D0 003A6330 38 80 00 00 */ li r4, 0 +/* 803A93D4 003A6334 3C A0 00 C1 */ lis r5, 0xc1 +/* 803A93D8 003A6338 90 83 00 0C */ stw r4, 0xc(r3) +/* 803A93DC 003A633C 90 83 00 08 */ stw r4, 8(r3) +/* 803A93E0 003A6340 80 83 00 04 */ lwz r4, 4(r3) +/* 803A93E4 003A6344 7C 85 23 96 */ divwu r4, r5, r4 +/* 803A93E8 003A6348 90 83 00 10 */ stw r4, 0x10(r3) +/* 803A93EC 003A634C 48 00 00 E0 */ b lbl_803A94CC +lbl_803A93F0: +/* 803A93F0 003A6350 A0 A3 00 1C */ lhz r5, 0x1c(r3) +/* 803A93F4 003A6354 3C 80 15 39 */ lis r4, 0x15390949@ha +/* 803A93F8 003A6358 38 C4 09 49 */ addi r6, r4, 0x15390949@l +/* 803A93FC 003A635C 80 E3 00 18 */ lwz r7, 0x18(r3) +/* 803A9400 003A6360 20 85 00 C1 */ subfic r4, r5, 0xc1 +/* 803A9404 003A6364 54 84 80 1E */ slwi r4, r4, 0x10 +/* 803A9408 003A6368 7C 86 20 16 */ mulhwu r4, r6, r4 +/* 803A940C 003A636C 54 84 E1 3E */ srwi r4, r4, 4 +/* 803A9410 003A6370 7C 87 21 D6 */ mullw r4, r7, r4 +/* 803A9414 003A6374 54 84 84 3E */ srwi r4, r4, 0x10 +/* 803A9418 003A6378 90 83 00 04 */ stw r4, 4(r3) +/* 803A941C 003A637C 80 83 00 04 */ lwz r4, 4(r3) +/* 803A9420 003A6380 28 04 00 00 */ cmplwi r4, 0 +/* 803A9424 003A6384 41 82 00 3C */ beq lbl_803A9460 +/* 803A9428 003A6388 38 80 00 02 */ li r4, 2 +/* 803A942C 003A638C 3C A0 7F FF */ lis r5, 0x7fff +/* 803A9430 003A6390 98 83 00 01 */ stb r4, 1(r3) +/* 803A9434 003A6394 3C 80 00 C1 */ lis r4, 0xc1 +/* 803A9438 003A6398 90 A3 00 08 */ stw r5, 8(r3) +/* 803A943C 003A639C 90 83 00 0C */ stw r4, 0xc(r3) +/* 803A9440 003A63A0 A0 A3 00 1C */ lhz r5, 0x1c(r3) +/* 803A9444 003A63A4 80 83 00 04 */ lwz r4, 4(r3) +/* 803A9448 003A63A8 20 A5 00 C1 */ subfic r5, r5, 0xc1 +/* 803A944C 003A63AC 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 803A9450 003A63B0 7C 85 23 96 */ divwu r4, r5, r4 +/* 803A9454 003A63B4 7C 84 00 D0 */ neg r4, r4 +/* 803A9458 003A63B8 90 83 00 10 */ stw r4, 0x10(r3) +/* 803A945C 003A63BC 48 00 00 70 */ b lbl_803A94CC +lbl_803A9460: +/* 803A9460 003A63C0 A0 83 00 1C */ lhz r4, 0x1c(r3) +/* 803A9464 003A63C4 28 04 00 00 */ cmplwi r4, 0 +/* 803A9468 003A63C8 41 82 00 58 */ beq lbl_803A94C0 +/* 803A946C 003A63CC 38 A0 00 03 */ li r5, 3 +/* 803A9470 003A63D0 3C 80 80 3F */ lis r4, lbl_803F3820@ha +/* 803A9474 003A63D4 98 A3 00 01 */ stb r5, 1(r3) +/* 803A9478 003A63D8 38 A4 38 20 */ addi r5, r4, lbl_803F3820@l +/* 803A947C 003A63DC 38 80 00 00 */ li r4, 0 +/* 803A9480 003A63E0 A0 C3 00 1C */ lhz r6, 0x1c(r3) +/* 803A9484 003A63E4 54 C6 80 1E */ slwi r6, r6, 0x10 +/* 803A9488 003A63E8 90 C3 00 0C */ stw r6, 0xc(r3) +/* 803A948C 003A63EC 80 C3 00 0C */ lwz r6, 0xc(r3) +/* 803A9490 003A63F0 3C C6 00 01 */ addis r6, r6, 1 +/* 803A9494 003A63F4 38 C6 80 00 */ addi r6, r6, -32768 +/* 803A9498 003A63F8 7C C6 86 70 */ srawi r6, r6, 0x10 +/* 803A949C 003A63FC 20 E6 00 C1 */ subfic r7, r6, 0xc1 +/* 803A94A0 003A6400 7C E6 FE 70 */ srawi r6, r7, 0x1f +/* 803A94A4 003A6404 7C E6 30 78 */ andc r6, r7, r6 +/* 803A94A8 003A6408 54 C6 08 3C */ slwi r6, r6, 1 +/* 803A94AC 003A640C 7C A5 32 2E */ lhzx r5, r5, r6 +/* 803A94B0 003A6410 54 A5 80 1E */ slwi r5, r5, 0x10 +/* 803A94B4 003A6414 90 A3 00 08 */ stw r5, 8(r3) +/* 803A94B8 003A6418 90 83 00 10 */ stw r4, 0x10(r3) +/* 803A94BC 003A641C 48 00 00 10 */ b lbl_803A94CC +lbl_803A94C0: +/* 803A94C0 003A6420 38 80 00 00 */ li r4, 0 +/* 803A94C4 003A6424 38 00 00 01 */ li r0, 1 +/* 803A94C8 003A6428 90 83 00 08 */ stw r4, 8(r3) +lbl_803A94CC: +/* 803A94CC 003A642C 7C 03 03 78 */ mr r3, r0 +/* 803A94D0 003A6430 4E 80 00 20 */ blr + +.global adsrSetup +adsrSetup: +/* 803A94D4 003A6434 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A94D8 003A6438 7C 08 02 A6 */ mflr r0 +/* 803A94DC 003A643C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A94E0 003A6440 38 00 00 00 */ li r0, 0 +/* 803A94E4 003A6444 98 03 00 01 */ stb r0, 1(r3) +/* 803A94E8 003A6448 4B FF FD 81 */ bl salChangeADSRState +/* 803A94EC 003A644C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A94F0 003A6450 7C 08 03 A6 */ mtlr r0 +/* 803A94F4 003A6454 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A94F8 003A6458 4E 80 00 20 */ blr + +.global adsrStartRelease +adsrStartRelease: +/* 803A94FC 003A645C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A9500 003A6460 7C 08 02 A6 */ mflr r0 +/* 803A9504 003A6464 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A9508 003A6468 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A950C 003A646C 7C 7F 1B 78 */ mr r31, r3 +/* 803A9510 003A6470 88 03 00 00 */ lbz r0, 0(r3) +/* 803A9514 003A6474 2C 00 00 01 */ cmpwi r0, 1 +/* 803A9518 003A6478 41 82 00 54 */ beq lbl_803A956C +/* 803A951C 003A647C 40 80 01 18 */ bge lbl_803A9634 +/* 803A9520 003A6480 2C 00 00 00 */ cmpwi r0, 0 +/* 803A9524 003A6484 40 80 00 08 */ bge lbl_803A952C +/* 803A9528 003A6488 48 00 01 0C */ b lbl_803A9634 +lbl_803A952C: +/* 803A952C 003A648C 38 00 00 04 */ li r0, 4 +/* 803A9530 003A6490 28 04 00 00 */ cmplwi r4, 0 +/* 803A9534 003A6494 98 1F 00 01 */ stb r0, 1(r31) +/* 803A9538 003A6498 90 9F 00 04 */ stw r4, 4(r31) +/* 803A953C 003A649C 40 82 00 1C */ bne lbl_803A9558 +/* 803A9540 003A64A0 38 60 00 01 */ li r3, 1 +/* 803A9544 003A64A4 38 00 00 00 */ li r0, 0 +/* 803A9548 003A64A8 90 7F 00 04 */ stw r3, 4(r31) +/* 803A954C 003A64AC 38 60 00 01 */ li r3, 1 +/* 803A9550 003A64B0 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803A9554 003A64B4 48 00 00 E4 */ b lbl_803A9638 +lbl_803A9558: +/* 803A9558 003A64B8 80 1F 00 08 */ lwz r0, 8(r31) +/* 803A955C 003A64BC 7C 00 23 96 */ divwu r0, r0, r4 +/* 803A9560 003A64C0 7C 00 00 D0 */ neg r0, r0 +/* 803A9564 003A64C4 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803A9568 003A64C8 48 00 00 CC */ b lbl_803A9634 +lbl_803A956C: +/* 803A956C 003A64CC 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 803A9570 003A64D0 28 00 00 00 */ cmplwi r0, 0 +/* 803A9574 003A64D4 40 82 00 30 */ bne lbl_803A95A4 +/* 803A9578 003A64D8 88 1F 00 01 */ lbz r0, 1(r31) +/* 803A957C 003A64DC 28 00 00 01 */ cmplwi r0, 1 +/* 803A9580 003A64E0 40 82 00 24 */ bne lbl_803A95A4 +/* 803A9584 003A64E4 80 1F 00 08 */ lwz r0, 8(r31) +/* 803A9588 003A64E8 3C 60 80 3F */ lis r3, lbl_803F39A4@ha +/* 803A958C 003A64EC 38 63 39 A4 */ addi r3, r3, lbl_803F39A4@l +/* 803A9590 003A64F0 7C 00 AE 70 */ srawi r0, r0, 0x15 +/* 803A9594 003A64F4 7C 03 00 AE */ lbzx r0, r3, r0 +/* 803A9598 003A64F8 20 00 00 C1 */ subfic r0, r0, 0xc1 +/* 803A959C 003A64FC 54 00 80 1E */ slwi r0, r0, 0x10 +/* 803A95A0 003A6500 90 1F 00 0C */ stw r0, 0xc(r31) +lbl_803A95A4: +/* 803A95A4 003A6504 80 7F 00 0C */ lwz r3, 0xc(r31) +/* 803A95A8 003A6508 3C 00 43 30 */ lis r0, 0x4330 +/* 803A95AC 003A650C 90 01 00 08 */ stw r0, 8(r1) +/* 803A95B0 003A6510 6C 63 80 00 */ xoris r3, r3, 0x8000 +/* 803A95B4 003A6514 C8 22 D5 B8 */ lfd f1, lbl_805AF2D8@sda21(r2) +/* 803A95B8 003A6518 90 61 00 0C */ stw r3, 0xc(r1) +/* 803A95BC 003A651C C0 62 D5 C0 */ lfs f3, lbl_805AF2E0@sda21(r2) +/* 803A95C0 003A6520 C8 01 00 08 */ lfd f0, 8(r1) +/* 803A95C4 003A6524 90 81 00 14 */ stw r4, 0x14(r1) +/* 803A95C8 003A6528 EC 40 08 28 */ fsubs f2, f0, f1 +/* 803A95CC 003A652C C8 22 D5 C8 */ lfd f1, lbl_805AF2E8@sda21(r2) +/* 803A95D0 003A6530 90 01 00 10 */ stw r0, 0x10(r1) +/* 803A95D4 003A6534 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803A95D8 003A6538 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803A95DC 003A653C EC 00 08 28 */ fsubs f0, f0, f1 +/* 803A95E0 003A6540 EC 22 00 32 */ fmuls f1, f2, f0 +/* 803A95E4 003A6544 4B FE 03 71 */ bl __cvt_fp2unsigned +/* 803A95E8 003A6548 54 63 A3 3E */ srwi r3, r3, 0xc +/* 803A95EC 003A654C 38 00 00 04 */ li r0, 4 +/* 803A95F0 003A6550 90 7F 00 04 */ stw r3, 4(r31) +/* 803A95F4 003A6554 98 1F 00 01 */ stb r0, 1(r31) +/* 803A95F8 003A6558 80 7F 00 04 */ lwz r3, 4(r31) +/* 803A95FC 003A655C 28 03 00 00 */ cmplwi r3, 0 +/* 803A9600 003A6560 40 82 00 24 */ bne lbl_803A9624 +/* 803A9604 003A6564 38 60 00 01 */ li r3, 1 +/* 803A9608 003A6568 38 00 00 00 */ li r0, 0 +/* 803A960C 003A656C 90 7F 00 04 */ stw r3, 4(r31) +/* 803A9610 003A6570 38 60 00 01 */ li r3, 1 +/* 803A9614 003A6574 90 1F 00 08 */ stw r0, 8(r31) +/* 803A9618 003A6578 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803A961C 003A657C 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803A9620 003A6580 48 00 00 18 */ b lbl_803A9638 +lbl_803A9624: +/* 803A9624 003A6584 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803A9628 003A6588 7C 00 1B 96 */ divwu r0, r0, r3 +/* 803A962C 003A658C 7C 00 00 D0 */ neg r0, r0 +/* 803A9630 003A6590 90 1F 00 10 */ stw r0, 0x10(r31) +lbl_803A9634: +/* 803A9634 003A6594 38 60 00 00 */ li r3, 0 +lbl_803A9638: +/* 803A9638 003A6598 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A963C 003A659C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A9640 003A65A0 7C 08 03 A6 */ mtlr r0 +/* 803A9644 003A65A4 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A9648 003A65A8 4E 80 00 20 */ blr + +.global adsrRelease +adsrRelease: +/* 803A964C 003A65AC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A9650 003A65B0 7C 08 02 A6 */ mflr r0 +/* 803A9654 003A65B4 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A9658 003A65B8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A965C 003A65BC 7C 7F 1B 78 */ mr r31, r3 +/* 803A9660 003A65C0 88 03 00 00 */ lbz r0, 0(r3) +/* 803A9664 003A65C4 2C 00 00 02 */ cmpwi r0, 2 +/* 803A9668 003A65C8 40 80 01 34 */ bge lbl_803A979C +/* 803A966C 003A65CC 2C 00 00 00 */ cmpwi r0, 0 +/* 803A9670 003A65D0 40 80 00 08 */ bge lbl_803A9678 +/* 803A9674 003A65D4 48 00 01 28 */ b lbl_803A979C +lbl_803A9678: +/* 803A9678 003A65D8 2C 00 00 01 */ cmpwi r0, 1 +/* 803A967C 003A65DC 80 9F 00 20 */ lwz r4, 0x20(r31) +/* 803A9680 003A65E0 41 82 00 50 */ beq lbl_803A96D0 +/* 803A9684 003A65E4 40 80 01 10 */ bge lbl_803A9794 +/* 803A9688 003A65E8 2C 00 00 00 */ cmpwi r0, 0 +/* 803A968C 003A65EC 40 80 00 08 */ bge lbl_803A9694 +/* 803A9690 003A65F0 48 00 01 04 */ b lbl_803A9794 +lbl_803A9694: +/* 803A9694 003A65F4 38 00 00 04 */ li r0, 4 +/* 803A9698 003A65F8 28 04 00 00 */ cmplwi r4, 0 +/* 803A969C 003A65FC 98 1F 00 01 */ stb r0, 1(r31) +/* 803A96A0 003A6600 90 9F 00 04 */ stw r4, 4(r31) +/* 803A96A4 003A6604 40 82 00 18 */ bne lbl_803A96BC +/* 803A96A8 003A6608 38 60 00 01 */ li r3, 1 +/* 803A96AC 003A660C 38 00 00 00 */ li r0, 0 +/* 803A96B0 003A6610 90 7F 00 04 */ stw r3, 4(r31) +/* 803A96B4 003A6614 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803A96B8 003A6618 48 00 00 E8 */ b lbl_803A97A0 +lbl_803A96BC: +/* 803A96BC 003A661C 80 1F 00 08 */ lwz r0, 8(r31) +/* 803A96C0 003A6620 7C 00 23 96 */ divwu r0, r0, r4 +/* 803A96C4 003A6624 7C 00 00 D0 */ neg r0, r0 +/* 803A96C8 003A6628 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803A96CC 003A662C 48 00 00 C8 */ b lbl_803A9794 +lbl_803A96D0: +/* 803A96D0 003A6630 88 1F 00 26 */ lbz r0, 0x26(r31) +/* 803A96D4 003A6634 28 00 00 00 */ cmplwi r0, 0 +/* 803A96D8 003A6638 40 82 00 30 */ bne lbl_803A9708 +/* 803A96DC 003A663C 88 1F 00 01 */ lbz r0, 1(r31) +/* 803A96E0 003A6640 28 00 00 01 */ cmplwi r0, 1 +/* 803A96E4 003A6644 40 82 00 24 */ bne lbl_803A9708 +/* 803A96E8 003A6648 80 1F 00 08 */ lwz r0, 8(r31) +/* 803A96EC 003A664C 3C 60 80 3F */ lis r3, lbl_803F39A4@ha +/* 803A96F0 003A6650 38 63 39 A4 */ addi r3, r3, lbl_803F39A4@l +/* 803A96F4 003A6654 7C 00 AE 70 */ srawi r0, r0, 0x15 +/* 803A96F8 003A6658 7C 03 00 AE */ lbzx r0, r3, r0 +/* 803A96FC 003A665C 20 00 00 C1 */ subfic r0, r0, 0xc1 +/* 803A9700 003A6660 54 00 80 1E */ slwi r0, r0, 0x10 +/* 803A9704 003A6664 90 1F 00 0C */ stw r0, 0xc(r31) +lbl_803A9708: +/* 803A9708 003A6668 80 7F 00 0C */ lwz r3, 0xc(r31) +/* 803A970C 003A666C 3C 00 43 30 */ lis r0, 0x4330 +/* 803A9710 003A6670 90 01 00 08 */ stw r0, 8(r1) +/* 803A9714 003A6674 6C 63 80 00 */ xoris r3, r3, 0x8000 +/* 803A9718 003A6678 C8 22 D5 B8 */ lfd f1, lbl_805AF2D8@sda21(r2) +/* 803A971C 003A667C 90 61 00 0C */ stw r3, 0xc(r1) +/* 803A9720 003A6680 C0 62 D5 C0 */ lfs f3, lbl_805AF2E0@sda21(r2) +/* 803A9724 003A6684 C8 01 00 08 */ lfd f0, 8(r1) +/* 803A9728 003A6688 90 81 00 14 */ stw r4, 0x14(r1) +/* 803A972C 003A668C EC 40 08 28 */ fsubs f2, f0, f1 +/* 803A9730 003A6690 C8 22 D5 C8 */ lfd f1, lbl_805AF2E8@sda21(r2) +/* 803A9734 003A6694 90 01 00 10 */ stw r0, 0x10(r1) +/* 803A9738 003A6698 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803A973C 003A669C EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803A9740 003A66A0 EC 00 08 28 */ fsubs f0, f0, f1 +/* 803A9744 003A66A4 EC 22 00 32 */ fmuls f1, f2, f0 +/* 803A9748 003A66A8 4B FE 02 0D */ bl __cvt_fp2unsigned +/* 803A974C 003A66AC 54 63 A3 3E */ srwi r3, r3, 0xc +/* 803A9750 003A66B0 38 00 00 04 */ li r0, 4 +/* 803A9754 003A66B4 90 7F 00 04 */ stw r3, 4(r31) +/* 803A9758 003A66B8 98 1F 00 01 */ stb r0, 1(r31) +/* 803A975C 003A66BC 80 7F 00 04 */ lwz r3, 4(r31) +/* 803A9760 003A66C0 28 03 00 00 */ cmplwi r3, 0 +/* 803A9764 003A66C4 40 82 00 20 */ bne lbl_803A9784 +/* 803A9768 003A66C8 38 60 00 01 */ li r3, 1 +/* 803A976C 003A66CC 38 00 00 00 */ li r0, 0 +/* 803A9770 003A66D0 90 7F 00 04 */ stw r3, 4(r31) +/* 803A9774 003A66D4 90 1F 00 08 */ stw r0, 8(r31) +/* 803A9778 003A66D8 90 1F 00 0C */ stw r0, 0xc(r31) +/* 803A977C 003A66DC 90 1F 00 10 */ stw r0, 0x10(r31) +/* 803A9780 003A66E0 48 00 00 20 */ b lbl_803A97A0 +lbl_803A9784: +/* 803A9784 003A66E4 80 1F 00 0C */ lwz r0, 0xc(r31) +/* 803A9788 003A66E8 7C 00 1B 96 */ divwu r0, r0, r3 +/* 803A978C 003A66EC 7C 00 00 D0 */ neg r0, r0 +/* 803A9790 003A66F0 90 1F 00 10 */ stw r0, 0x10(r31) +lbl_803A9794: +/* 803A9794 003A66F4 38 60 00 00 */ li r3, 0 +/* 803A9798 003A66F8 48 00 00 08 */ b lbl_803A97A0 +lbl_803A979C: +/* 803A979C 003A66FC 38 60 00 00 */ li r3, 0 +lbl_803A97A0: +/* 803A97A0 003A6700 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A97A4 003A6704 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A97A8 003A6708 7C 08 03 A6 */ mtlr r0 +/* 803A97AC 003A670C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A97B0 003A6710 4E 80 00 20 */ blr + +.global adsrHandle +adsrHandle: +/* 803A97B4 003A6714 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A97B8 003A6718 7C 08 02 A6 */ mflr r0 +/* 803A97BC 003A671C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A97C0 003A6720 38 00 00 00 */ li r0, 0 +/* 803A97C4 003A6724 88 C3 00 00 */ lbz r6, 0(r3) +/* 803A97C8 003A6728 2C 06 00 01 */ cmpwi r6, 1 +/* 803A97CC 003A672C 41 82 00 94 */ beq lbl_803A9860 +/* 803A97D0 003A6730 40 80 01 68 */ bge lbl_803A9938 +/* 803A97D4 003A6734 2C 06 00 00 */ cmpwi r6, 0 +/* 803A97D8 003A6738 40 80 00 08 */ bge lbl_803A97E0 +/* 803A97DC 003A673C 48 00 01 5C */ b lbl_803A9938 +lbl_803A97E0: +/* 803A97E0 003A6740 88 C3 00 01 */ lbz r6, 1(r3) +/* 803A97E4 003A6744 28 06 00 03 */ cmplwi r6, 3 +/* 803A97E8 003A6748 41 82 00 60 */ beq lbl_803A9848 +/* 803A97EC 003A674C 81 03 00 08 */ lwz r8, 8(r3) +/* 803A97F0 003A6750 80 E3 00 10 */ lwz r7, 0x10(r3) +/* 803A97F4 003A6754 7D 06 86 70 */ srawi r6, r8, 0x10 +/* 803A97F8 003A6758 7C E8 3A 14 */ add r7, r8, r7 +/* 803A97FC 003A675C 90 E3 00 08 */ stw r7, 8(r3) +/* 803A9800 003A6760 B0 C4 00 00 */ sth r6, 0(r4) +/* 803A9804 003A6764 80 83 00 10 */ lwz r4, 0x10(r3) +/* 803A9808 003A6768 2C 04 00 00 */ cmpwi r4, 0 +/* 803A980C 003A676C 41 80 00 10 */ blt lbl_803A981C +/* 803A9810 003A6770 7C 84 AE 70 */ srawi r4, r4, 0x15 +/* 803A9814 003A6774 B0 85 00 00 */ sth r4, 0(r5) +/* 803A9818 003A6778 48 00 00 14 */ b lbl_803A982C +lbl_803A981C: +/* 803A981C 003A677C 7C 84 00 D0 */ neg r4, r4 +/* 803A9820 003A6780 7C 84 AE 70 */ srawi r4, r4, 0x15 +/* 803A9824 003A6784 7C 84 00 D0 */ neg r4, r4 +/* 803A9828 003A6788 B0 85 00 00 */ sth r4, 0(r5) +lbl_803A982C: +/* 803A982C 003A678C 80 83 00 04 */ lwz r4, 4(r3) +/* 803A9830 003A6790 34 84 FF FF */ addic. r4, r4, -1 +/* 803A9834 003A6794 90 83 00 04 */ stw r4, 4(r3) +/* 803A9838 003A6798 40 82 01 00 */ bne lbl_803A9938 +/* 803A983C 003A679C 4B FF FA 2D */ bl salChangeADSRState +/* 803A9840 003A67A0 7C 60 1B 78 */ mr r0, r3 +/* 803A9844 003A67A4 48 00 00 F4 */ b lbl_803A9938 +lbl_803A9848: +/* 803A9848 003A67A8 80 C3 00 08 */ lwz r6, 8(r3) +/* 803A984C 003A67AC 38 60 00 00 */ li r3, 0 +/* 803A9850 003A67B0 7C C6 86 70 */ srawi r6, r6, 0x10 +/* 803A9854 003A67B4 B0 C4 00 00 */ sth r6, 0(r4) +/* 803A9858 003A67B8 B0 65 00 00 */ sth r3, 0(r5) +/* 803A985C 003A67BC 48 00 00 DC */ b lbl_803A9938 +lbl_803A9860: +/* 803A9860 003A67C0 88 E3 00 01 */ lbz r7, 1(r3) +/* 803A9864 003A67C4 28 07 00 03 */ cmplwi r7, 3 +/* 803A9868 003A67C8 41 82 00 BC */ beq lbl_803A9924 +/* 803A986C 003A67CC 88 C3 00 26 */ lbz r6, 0x26(r3) +/* 803A9870 003A67D0 81 23 00 08 */ lwz r9, 8(r3) +/* 803A9874 003A67D4 28 06 00 00 */ cmplwi r6, 0 +/* 803A9878 003A67D8 40 82 00 1C */ bne lbl_803A9894 +/* 803A987C 003A67DC 28 07 00 01 */ cmplwi r7, 1 +/* 803A9880 003A67E0 40 82 00 14 */ bne lbl_803A9894 +/* 803A9884 003A67E4 80 C3 00 10 */ lwz r6, 0x10(r3) +/* 803A9888 003A67E8 7C C9 32 14 */ add r6, r9, r6 +/* 803A988C 003A67EC 90 C3 00 08 */ stw r6, 8(r3) +/* 803A9890 003A67F0 48 00 00 48 */ b lbl_803A98D8 +lbl_803A9894: +/* 803A9894 003A67F4 81 03 00 0C */ lwz r8, 0xc(r3) +/* 803A9898 003A67F8 3C C0 80 3F */ lis r6, lbl_803F3820@ha +/* 803A989C 003A67FC 80 E3 00 10 */ lwz r7, 0x10(r3) +/* 803A98A0 003A6800 38 C6 38 20 */ addi r6, r6, lbl_803F3820@l +/* 803A98A4 003A6804 7C E8 3A 14 */ add r7, r8, r7 +/* 803A98A8 003A6808 90 E3 00 0C */ stw r7, 0xc(r3) +/* 803A98AC 003A680C 80 E3 00 0C */ lwz r7, 0xc(r3) +/* 803A98B0 003A6810 3C E7 00 01 */ addis r7, r7, 1 +/* 803A98B4 003A6814 38 E7 80 00 */ addi r7, r7, -32768 +/* 803A98B8 003A6818 7C E7 86 70 */ srawi r7, r7, 0x10 +/* 803A98BC 003A681C 21 07 00 C1 */ subfic r8, r7, 0xc1 +/* 803A98C0 003A6820 7D 07 FE 70 */ srawi r7, r8, 0x1f +/* 803A98C4 003A6824 7D 07 38 78 */ andc r7, r8, r7 +/* 803A98C8 003A6828 54 E7 08 3C */ slwi r7, r7, 1 +/* 803A98CC 003A682C 7C C6 3A 2E */ lhzx r6, r6, r7 +/* 803A98D0 003A6830 54 C6 80 1E */ slwi r6, r6, 0x10 +/* 803A98D4 003A6834 90 C3 00 08 */ stw r6, 8(r3) +lbl_803A98D8: +/* 803A98D8 003A6838 7D 26 86 70 */ srawi r6, r9, 0x10 +/* 803A98DC 003A683C B0 C4 00 00 */ sth r6, 0(r4) +/* 803A98E0 003A6840 80 83 00 08 */ lwz r4, 8(r3) +/* 803A98E4 003A6844 7C 89 20 51 */ subf. r4, r9, r4 +/* 803A98E8 003A6848 41 80 00 10 */ blt lbl_803A98F8 +/* 803A98EC 003A684C 7C 84 AE 70 */ srawi r4, r4, 0x15 +/* 803A98F0 003A6850 B0 85 00 00 */ sth r4, 0(r5) +/* 803A98F4 003A6854 48 00 00 14 */ b lbl_803A9908 +lbl_803A98F8: +/* 803A98F8 003A6858 7C 84 00 D0 */ neg r4, r4 +/* 803A98FC 003A685C 7C 84 AE 70 */ srawi r4, r4, 0x15 +/* 803A9900 003A6860 7C 84 00 D0 */ neg r4, r4 +/* 803A9904 003A6864 B0 85 00 00 */ sth r4, 0(r5) +lbl_803A9908: +/* 803A9908 003A6868 80 83 00 04 */ lwz r4, 4(r3) +/* 803A990C 003A686C 34 84 FF FF */ addic. r4, r4, -1 +/* 803A9910 003A6870 90 83 00 04 */ stw r4, 4(r3) +/* 803A9914 003A6874 40 82 00 24 */ bne lbl_803A9938 +/* 803A9918 003A6878 4B FF F9 51 */ bl salChangeADSRState +/* 803A991C 003A687C 7C 60 1B 78 */ mr r0, r3 +/* 803A9920 003A6880 48 00 00 18 */ b lbl_803A9938 +lbl_803A9924: +/* 803A9924 003A6884 80 C3 00 08 */ lwz r6, 8(r3) +/* 803A9928 003A6888 38 60 00 00 */ li r3, 0 +/* 803A992C 003A688C 7C C6 86 70 */ srawi r6, r6, 0x10 +/* 803A9930 003A6890 B0 C4 00 00 */ sth r6, 0(r4) +/* 803A9934 003A6894 B0 65 00 00 */ sth r3, 0(r5) +lbl_803A9938: +/* 803A9938 003A6898 7C 03 03 78 */ mr r3, r0 +/* 803A993C 003A689C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A9940 003A68A0 7C 08 03 A6 */ mtlr r0 +/* 803A9944 003A68A4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A9948 003A68A8 4E 80 00 20 */ blr + +.global adsrHandleLowPrecision +adsrHandleLowPrecision: +/* 803A994C 003A68AC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A9950 003A68B0 7C 08 02 A6 */ mflr r0 +/* 803A9954 003A68B4 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A9958 003A68B8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A995C 003A68BC 3B E0 00 00 */ li r31, 0 +/* 803A9960 003A68C0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A9964 003A68C4 7C BE 2B 78 */ mr r30, r5 +/* 803A9968 003A68C8 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A996C 003A68CC 7C 9D 23 78 */ mr r29, r4 +/* 803A9970 003A68D0 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A9974 003A68D4 7C 7C 1B 78 */ mr r28, r3 +/* 803A9978 003A68D8 48 00 00 28 */ b lbl_803A99A0 +lbl_803A997C: +/* 803A997C 003A68DC 7F 83 E3 78 */ mr r3, r28 +/* 803A9980 003A68E0 7F A4 EB 78 */ mr r4, r29 +/* 803A9984 003A68E4 7F C5 F3 78 */ mr r5, r30 +/* 803A9988 003A68E8 4B FF FE 2D */ bl adsrHandle +/* 803A998C 003A68EC 28 03 00 00 */ cmplwi r3, 0 +/* 803A9990 003A68F0 41 82 00 0C */ beq lbl_803A999C +/* 803A9994 003A68F4 38 60 00 01 */ li r3, 1 +/* 803A9998 003A68F8 48 00 00 18 */ b lbl_803A99B0 +lbl_803A999C: +/* 803A999C 003A68FC 3B FF 00 01 */ addi r31, r31, 1 +lbl_803A99A0: +/* 803A99A0 003A6900 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803A99A4 003A6904 28 00 00 0F */ cmplwi r0, 0xf +/* 803A99A8 003A6908 41 80 FF D4 */ blt lbl_803A997C +/* 803A99AC 003A690C 38 60 00 00 */ li r3, 0 +lbl_803A99B0: +/* 803A99B0 003A6910 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A99B4 003A6914 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A99B8 003A6918 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A99BC 003A691C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A99C0 003A6920 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A99C4 003A6924 7C 08 03 A6 */ mtlr r0 +/* 803A99C8 003A6928 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A99CC 003A692C 4E 80 00 20 */ blr diff --git a/asm/musyx/synth_vsamples.s b/asm/musyx/synth_vsamples.s new file mode 100644 index 00000000..e2208790 --- /dev/null +++ b/asm/musyx/synth_vsamples.s @@ -0,0 +1,266 @@ +.include "macros.inc" + +.section .text, "ax" + +.global vsInit +vsInit: +/* 803A99D0 003A6930 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A99D4 003A6934 38 80 00 00 */ li r4, 0 +/* 803A99D8 003A6938 38 A3 E3 10 */ addi r5, r3, lbl_8055E310@l +/* 803A99DC 003A693C 38 00 00 02 */ li r0, 2 +/* 803A99E0 003A6940 98 85 00 00 */ stb r4, 0(r5) +/* 803A99E4 003A6944 38 60 00 FF */ li r3, 0xff +/* 803A99E8 003A6948 7C 09 03 A6 */ mtctr r0 +lbl_803A99EC: +/* 803A99EC 003A694C 98 65 09 08 */ stb r3, 0x908(r5) +/* 803A99F0 003A6950 98 65 09 09 */ stb r3, 0x909(r5) +/* 803A99F4 003A6954 98 65 09 0A */ stb r3, 0x90a(r5) +/* 803A99F8 003A6958 98 65 09 0B */ stb r3, 0x90b(r5) +/* 803A99FC 003A695C 98 65 09 0C */ stb r3, 0x90c(r5) +/* 803A9A00 003A6960 98 65 09 0D */ stb r3, 0x90d(r5) +/* 803A9A04 003A6964 98 65 09 0E */ stb r3, 0x90e(r5) +/* 803A9A08 003A6968 98 65 09 0F */ stb r3, 0x90f(r5) +/* 803A9A0C 003A696C 98 65 09 10 */ stb r3, 0x910(r5) +/* 803A9A10 003A6970 98 65 09 11 */ stb r3, 0x911(r5) +/* 803A9A14 003A6974 98 65 09 12 */ stb r3, 0x912(r5) +/* 803A9A18 003A6978 98 65 09 13 */ stb r3, 0x913(r5) +/* 803A9A1C 003A697C 98 65 09 14 */ stb r3, 0x914(r5) +/* 803A9A20 003A6980 98 65 09 15 */ stb r3, 0x915(r5) +/* 803A9A24 003A6984 98 65 09 16 */ stb r3, 0x916(r5) +/* 803A9A28 003A6988 98 65 09 17 */ stb r3, 0x917(r5) +/* 803A9A2C 003A698C 98 65 09 18 */ stb r3, 0x918(r5) +/* 803A9A30 003A6990 98 65 09 19 */ stb r3, 0x919(r5) +/* 803A9A34 003A6994 98 65 09 1A */ stb r3, 0x91a(r5) +/* 803A9A38 003A6998 98 65 09 1B */ stb r3, 0x91b(r5) +/* 803A9A3C 003A699C 98 65 09 1C */ stb r3, 0x91c(r5) +/* 803A9A40 003A69A0 98 65 09 1D */ stb r3, 0x91d(r5) +/* 803A9A44 003A69A4 98 65 09 1E */ stb r3, 0x91e(r5) +/* 803A9A48 003A69A8 98 65 09 1F */ stb r3, 0x91f(r5) +/* 803A9A4C 003A69AC 98 65 09 20 */ stb r3, 0x920(r5) +/* 803A9A50 003A69B0 98 65 09 21 */ stb r3, 0x921(r5) +/* 803A9A54 003A69B4 98 65 09 22 */ stb r3, 0x922(r5) +/* 803A9A58 003A69B8 98 65 09 23 */ stb r3, 0x923(r5) +/* 803A9A5C 003A69BC 98 65 09 24 */ stb r3, 0x924(r5) +/* 803A9A60 003A69C0 98 65 09 25 */ stb r3, 0x925(r5) +/* 803A9A64 003A69C4 98 65 09 26 */ stb r3, 0x926(r5) +/* 803A9A68 003A69C8 98 65 09 27 */ stb r3, 0x927(r5) +/* 803A9A6C 003A69CC 38 A5 00 20 */ addi r5, r5, 0x20 +/* 803A9A70 003A69D0 42 00 FF 7C */ bdnz lbl_803A99EC +/* 803A9A74 003A69D4 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9A78 003A69D8 38 00 00 00 */ li r0, 0 +/* 803A9A7C 003A69DC 38 63 E3 10 */ addi r3, r3, lbl_8055E310@l +/* 803A9A80 003A69E0 B0 03 09 48 */ sth r0, 0x948(r3) +/* 803A9A84 003A69E4 90 03 09 4C */ stw r0, 0x94c(r3) +/* 803A9A88 003A69E8 4E 80 00 20 */ blr + +.global sub_803a9a8c +sub_803a9a8c: +/* 803A9A8C 003A69EC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A9A90 003A69F0 7C 08 02 A6 */ mflr r0 +/* 803A9A94 003A69F4 39 20 00 00 */ li r9, 0 +/* 803A9A98 003A69F8 38 A0 00 00 */ li r5, 0 +/* 803A9A9C 003A69FC 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A9AA0 003A6A00 38 80 00 FF */ li r4, 0xff +/* 803A9AA4 003A6A04 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A9AA8 003A6A08 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A9AAC 003A6A0C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A9AB0 003A6A10 7C 7D 1B 78 */ mr r29, r3 +/* 803A9AB4 003A6A14 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9AB8 003A6A18 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A9ABC 003A6A1C 38 E3 E3 10 */ addi r7, r3, lbl_8055E310@l +/* 803A9AC0 003A6A20 57 A6 06 3E */ clrlwi r6, r29, 0x18 +/* 803A9AC4 003A6A24 48 00 00 44 */ b lbl_803A9B08 +lbl_803A9AC8: +/* 803A9AC8 003A6A28 55 20 06 3E */ clrlwi r0, r9, 0x18 +/* 803A9ACC 003A6A2C 1C 00 00 24 */ mulli r0, r0, 0x24 +/* 803A9AD0 003A6A30 7C 67 02 14 */ add r3, r7, r0 +/* 803A9AD4 003A6A34 39 03 00 08 */ addi r8, r3, 8 +/* 803A9AD8 003A6A38 88 03 00 08 */ lbz r0, 8(r3) +/* 803A9ADC 003A6A3C 28 00 00 00 */ cmplwi r0, 0 +/* 803A9AE0 003A6A40 41 82 00 24 */ beq lbl_803A9B04 +/* 803A9AE4 003A6A44 38 63 00 0B */ addi r3, r3, 0xb +/* 803A9AE8 003A6A48 88 03 00 00 */ lbz r0, 0(r3) +/* 803A9AEC 003A6A4C 7C 00 30 40 */ cmplw r0, r6 +/* 803A9AF0 003A6A50 40 82 00 14 */ bne lbl_803A9B04 +/* 803A9AF4 003A6A54 98 A8 00 00 */ stb r5, 0(r8) +/* 803A9AF8 003A6A58 88 03 00 00 */ lbz r0, 0(r3) +/* 803A9AFC 003A6A5C 7C 67 02 14 */ add r3, r7, r0 +/* 803A9B00 003A6A60 98 83 09 08 */ stb r4, 0x908(r3) +lbl_803A9B04: +/* 803A9B04 003A6A64 39 29 00 01 */ addi r9, r9, 1 +lbl_803A9B08: +/* 803A9B08 003A6A68 89 07 00 00 */ lbz r8, 0(r7) +/* 803A9B0C 003A6A6C 55 20 06 3E */ clrlwi r0, r9, 0x18 +/* 803A9B10 003A6A70 7C 00 40 40 */ cmplw r0, r8 +/* 803A9B14 003A6A74 41 80 FF B4 */ blt lbl_803A9AC8 +/* 803A9B18 003A6A78 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9B1C 003A6A7C 3B E0 00 00 */ li r31, 0 +/* 803A9B20 003A6A80 38 83 E3 10 */ addi r4, r3, lbl_8055E310@l +/* 803A9B24 003A6A84 48 00 00 40 */ b lbl_803A9B64 +lbl_803A9B28: +/* 803A9B28 003A6A88 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803A9B2C 003A6A8C 1C A0 00 24 */ mulli r5, r0, 0x24 +/* 803A9B30 003A6A90 7C 64 2A 14 */ add r3, r4, r5 +/* 803A9B34 003A6A94 88 03 00 08 */ lbz r0, 8(r3) +/* 803A9B38 003A6A98 28 00 00 00 */ cmplwi r0, 0 +/* 803A9B3C 003A6A9C 40 82 00 24 */ bne lbl_803A9B60 +/* 803A9B40 003A6AA0 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9B44 003A6AA4 38 80 00 01 */ li r4, 1 +/* 803A9B48 003A6AA8 38 63 E3 10 */ addi r3, r3, lbl_8055E310@l +/* 803A9B4C 003A6AAC 38 00 00 00 */ li r0, 0 +/* 803A9B50 003A6AB0 7C 63 2A 14 */ add r3, r3, r5 +/* 803A9B54 003A6AB4 98 83 00 08 */ stb r4, 8(r3) +/* 803A9B58 003A6AB8 90 03 00 0C */ stw r0, 0xc(r3) +/* 803A9B5C 003A6ABC 48 00 00 18 */ b lbl_803A9B74 +lbl_803A9B60: +/* 803A9B60 003A6AC0 3B FF 00 01 */ addi r31, r31, 1 +lbl_803A9B64: +/* 803A9B64 003A6AC4 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803A9B68 003A6AC8 7C 00 40 40 */ cmplw r0, r8 +/* 803A9B6C 003A6ACC 41 80 FF BC */ blt lbl_803A9B28 +/* 803A9B70 003A6AD0 3B E0 00 FF */ li r31, 0xff +lbl_803A9B74: +/* 803A9B74 003A6AD4 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9B78 003A6AD8 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803A9B7C 003A6ADC 38 63 E3 10 */ addi r3, r3, lbl_8055E310@l +/* 803A9B80 003A6AE0 57 BE 06 3E */ clrlwi r30, r29, 0x18 +/* 803A9B84 003A6AE4 7C 63 F2 14 */ add r3, r3, r30 +/* 803A9B88 003A6AE8 28 00 00 FF */ cmplwi r0, 0xff +/* 803A9B8C 003A6AEC 9F E3 09 08 */ stbu r31, 0x908(r3) +/* 803A9B90 003A6AF0 41 82 01 10 */ beq lbl_803A9CA0 +/* 803A9B94 003A6AF4 88 63 00 00 */ lbz r3, 0(r3) +/* 803A9B98 003A6AF8 38 80 00 00 */ li r4, 0 +/* 803A9B9C 003A6AFC 48 00 AF 71 */ bl aramGetStreamBufferAddress +/* 803A9BA0 003A6B00 3C 80 80 56 */ lis r4, lbl_8055E310@ha +/* 803A9BA4 003A6B04 7C 60 1B 78 */ mr r0, r3 +/* 803A9BA8 003A6B08 38 A4 E3 10 */ addi r5, r4, lbl_8055E310@l +/* 803A9BAC 003A6B0C 7F C3 F3 78 */ mr r3, r30 +/* 803A9BB0 003A6B10 80 A5 00 04 */ lwz r5, 4(r5) +/* 803A9BB4 003A6B14 7C 04 03 78 */ mr r4, r0 +/* 803A9BB8 003A6B18 48 00 99 D1 */ bl hwSetVirtualSampleLoopBuffer +/* 803A9BBC 003A6B1C 7F C3 F3 78 */ mr r3, r30 +/* 803A9BC0 003A6B20 48 00 9A 11 */ bl hwGetSampleID +/* 803A9BC4 003A6B24 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803A9BC8 003A6B28 3C 80 80 56 */ lis r4, lbl_8055E310@ha +/* 803A9BCC 003A6B2C 1F E0 00 24 */ mulli r31, r0, 0x24 +/* 803A9BD0 003A6B30 38 C4 E3 10 */ addi r6, r4, lbl_8055E310@l +/* 803A9BD4 003A6B34 7C 86 FA 14 */ add r4, r6, r31 +/* 803A9BD8 003A6B38 B0 64 00 18 */ sth r3, 0x18(r4) +/* 803A9BDC 003A6B3C 88 E6 00 00 */ lbz r7, 0(r6) +lbl_803A9BE0: +/* 803A9BE0 003A6B40 A0 A6 09 48 */ lhz r5, 0x948(r6) +/* 803A9BE4 003A6B44 38 60 00 00 */ li r3, 0 +/* 803A9BE8 003A6B48 38 05 00 01 */ addi r0, r5, 1 +/* 803A9BEC 003A6B4C B0 06 09 48 */ sth r0, 0x948(r6) +/* 803A9BF0 003A6B50 48 00 00 2C */ b lbl_803A9C1C +lbl_803A9BF4: +/* 803A9BF4 003A6B54 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A9BF8 003A6B58 1C 00 00 24 */ mulli r0, r0, 0x24 +/* 803A9BFC 003A6B5C 7C 86 02 14 */ add r4, r6, r0 +/* 803A9C00 003A6B60 88 04 00 08 */ lbz r0, 8(r4) +/* 803A9C04 003A6B64 28 00 00 00 */ cmplwi r0, 0 +/* 803A9C08 003A6B68 41 82 00 10 */ beq lbl_803A9C18 +/* 803A9C0C 003A6B6C A0 04 00 1A */ lhz r0, 0x1a(r4) +/* 803A9C10 003A6B70 7C 00 28 40 */ cmplw r0, r5 +/* 803A9C14 003A6B74 41 82 00 14 */ beq lbl_803A9C28 +lbl_803A9C18: +/* 803A9C18 003A6B78 38 63 00 01 */ addi r3, r3, 1 +lbl_803A9C1C: +/* 803A9C1C 003A6B7C 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A9C20 003A6B80 7C 00 38 40 */ cmplw r0, r7 +/* 803A9C24 003A6B84 41 80 FF D0 */ blt lbl_803A9BF4 +lbl_803A9C28: +/* 803A9C28 003A6B88 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A9C2C 003A6B8C 7C 00 38 40 */ cmplw r0, r7 +/* 803A9C30 003A6B90 40 82 FF B0 */ bne lbl_803A9BE0 +/* 803A9C34 003A6B94 3C 80 80 56 */ lis r4, lbl_8055E310@ha +/* 803A9C38 003A6B98 7F C3 F3 78 */ mr r3, r30 +/* 803A9C3C 003A6B9C 38 04 E3 10 */ addi r0, r4, lbl_8055E310@l +/* 803A9C40 003A6BA0 7F 80 FA 14 */ add r28, r0, r31 +/* 803A9C44 003A6BA4 B4 BC 00 1A */ sthu r5, 0x1a(r28) +/* 803A9C48 003A6BA8 48 00 99 75 */ bl sub_803b35bc +/* 803A9C4C 003A6BAC 3C 80 80 56 */ lis r4, lbl_8055E310@ha +/* 803A9C50 003A6BB0 38 A4 E3 10 */ addi r5, r4, lbl_8055E310@l +/* 803A9C54 003A6BB4 7C 85 FA 14 */ add r4, r5, r31 +/* 803A9C58 003A6BB8 98 64 00 0A */ stb r3, 0xa(r4) +/* 803A9C5C 003A6BBC 9B A4 00 0B */ stb r29, 0xb(r4) +/* 803A9C60 003A6BC0 81 85 09 4C */ lwz r12, 0x94c(r5) +/* 803A9C64 003A6BC4 28 0C 00 00 */ cmplwi r12, 0 +/* 803A9C68 003A6BC8 41 82 00 24 */ beq lbl_803A9C8C +/* 803A9C6C 003A6BCC 38 84 00 18 */ addi r4, r4, 0x18 +/* 803A9C70 003A6BD0 38 60 00 00 */ li r3, 0 +/* 803A9C74 003A6BD4 7D 89 03 A6 */ mtctr r12 +/* 803A9C78 003A6BD8 4E 80 04 21 */ bctrl +/* 803A9C7C 003A6BDC A0 1C 00 00 */ lhz r0, 0(r28) +/* 803A9C80 003A6BE0 7F A3 EB 78 */ mr r3, r29 +/* 803A9C84 003A6BE4 50 03 42 2E */ rlwimi r3, r0, 8, 8, 0x17 +/* 803A9C88 003A6BE8 48 00 00 2C */ b lbl_803A9CB4 +lbl_803A9C8C: +/* 803A9C8C 003A6BEC 7F C3 F3 78 */ mr r3, r30 +/* 803A9C90 003A6BF0 38 80 00 00 */ li r4, 0 +/* 803A9C94 003A6BF4 38 A0 00 00 */ li r5, 0 +/* 803A9C98 003A6BF8 48 00 98 F1 */ bl hwSetVirtualSampleLoopBuffer +/* 803A9C9C 003A6BFC 48 00 00 14 */ b lbl_803A9CB0 +lbl_803A9CA0: +/* 803A9CA0 003A6C00 7F C3 F3 78 */ mr r3, r30 +/* 803A9CA4 003A6C04 38 80 00 00 */ li r4, 0 +/* 803A9CA8 003A6C08 38 A0 00 00 */ li r5, 0 +/* 803A9CAC 003A6C0C 48 00 98 DD */ bl hwSetVirtualSampleLoopBuffer +lbl_803A9CB0: +/* 803A9CB0 003A6C10 38 60 FF FF */ li r3, -1 +lbl_803A9CB4: +/* 803A9CB4 003A6C14 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A9CB8 003A6C18 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A9CBC 003A6C1C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A9CC0 003A6C20 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A9CC4 003A6C24 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A9CC8 003A6C28 7C 08 03 A6 */ mtlr r0 +/* 803A9CCC 003A6C2C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A9CD0 003A6C30 4E 80 00 20 */ blr + +.global vsSampleEndNotify +vsSampleEndNotify: +/* 803A9CD4 003A6C34 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A9CD8 003A6C38 7C 08 02 A6 */ mflr r0 +/* 803A9CDC 003A6C3C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A9CE0 003A6C40 3C 03 00 01 */ addis r0, r3, 1 +/* 803A9CE4 003A6C44 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A9CE8 003A6C48 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A9CEC 003A6C4C 93 C1 00 08 */ stw r30, 8(r1) +/* 803A9CF0 003A6C50 41 82 00 74 */ beq lbl_803A9D64 +/* 803A9CF4 003A6C54 3C 80 80 56 */ lis r4, lbl_8055E310@ha +/* 803A9CF8 003A6C58 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A9CFC 003A6C5C 38 A4 E3 10 */ addi r5, r4, lbl_8055E310@l +/* 803A9D00 003A6C60 3B C5 09 08 */ addi r30, r5, 0x908 +/* 803A9D04 003A6C64 7C 1E 00 AE */ lbzx r0, r30, r0 +/* 803A9D08 003A6C68 28 00 00 FF */ cmplwi r0, 0xff +/* 803A9D0C 003A6C6C 41 82 00 58 */ beq lbl_803A9D64 +/* 803A9D10 003A6C70 1F E0 00 24 */ mulli r31, r0, 0x24 +/* 803A9D14 003A6C74 54 60 C4 3E */ rlwinm r0, r3, 0x18, 0x10, 0x1f +/* 803A9D18 003A6C78 7C 85 FA 14 */ add r4, r5, r31 +/* 803A9D1C 003A6C7C A0 64 00 1A */ lhz r3, 0x1a(r4) +/* 803A9D20 003A6C80 7C 03 00 40 */ cmplw r3, r0 +/* 803A9D24 003A6C84 40 82 00 40 */ bne lbl_803A9D64 +/* 803A9D28 003A6C88 81 85 09 4C */ lwz r12, 0x94c(r5) +/* 803A9D2C 003A6C8C 28 0C 00 00 */ cmplwi r12, 0 +/* 803A9D30 003A6C90 41 82 00 14 */ beq lbl_803A9D44 +/* 803A9D34 003A6C94 38 84 00 18 */ addi r4, r4, 0x18 +/* 803A9D38 003A6C98 38 60 00 02 */ li r3, 2 +/* 803A9D3C 003A6C9C 7D 89 03 A6 */ mtctr r12 +/* 803A9D40 003A6CA0 4E 80 04 21 */ bctrl +lbl_803A9D44: +/* 803A9D44 003A6CA4 3C 60 80 56 */ lis r3, lbl_8055E310@ha +/* 803A9D48 003A6CA8 38 A0 00 00 */ li r5, 0 +/* 803A9D4C 003A6CAC 38 03 E3 10 */ addi r0, r3, lbl_8055E310@l +/* 803A9D50 003A6CB0 38 60 00 FF */ li r3, 0xff +/* 803A9D54 003A6CB4 7C 80 FA 14 */ add r4, r0, r31 +/* 803A9D58 003A6CB8 98 A4 00 08 */ stb r5, 8(r4) +/* 803A9D5C 003A6CBC 88 04 00 0B */ lbz r0, 0xb(r4) +/* 803A9D60 003A6CC0 7C 7E 01 AE */ stbx r3, r30, r0 +lbl_803A9D64: +/* 803A9D64 003A6CC4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A9D68 003A6CC8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A9D6C 003A6CCC 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A9D70 003A6CD0 7C 08 03 A6 */ mtlr r0 +/* 803A9D74 003A6CD4 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A9D78 003A6CD8 4E 80 00 20 */ blr diff --git a/asm/musyx/synthdata.s b/asm/musyx/synthdata.s new file mode 100644 index 00000000..d7fb09c4 --- /dev/null +++ b/asm/musyx/synthdata.s @@ -0,0 +1,2171 @@ +.include "macros.inc" + +.section .text, "ax" + +.global dataInsertKeymap +dataInsertKeymap: +/* 803A0C34 0039DB94 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A0C38 0039DB98 7C 08 02 A6 */ mflr r0 +/* 803A0C3C 0039DB9C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A0C40 0039DBA0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A0C44 0039DBA4 7C 9F 23 78 */ mr r31, r4 +/* 803A0C48 0039DBA8 93 C1 00 08 */ stw r30, 8(r1) +/* 803A0C4C 0039DBAC 7C 7E 1B 78 */ mr r30, r3 +/* 803A0C50 0039DBB0 48 01 44 6D */ bl hwDisableIrq +/* 803A0C54 0039DBB4 3C 60 80 55 */ lis r3, lbl_80552CF8@ha +/* 803A0C58 0039DBB8 A0 CD AE D6 */ lhz r6, lbl_805A9A96@sda21(r13) +/* 803A0C5C 0039DBBC 38 83 2C F8 */ addi r4, r3, lbl_80552CF8@l +/* 803A0C60 0039DBC0 57 C0 04 3E */ clrlwi r0, r30, 0x10 +/* 803A0C64 0039DBC4 38 E0 00 00 */ li r7, 0 +/* 803A0C68 0039DBC8 48 00 00 0C */ b lbl_803A0C74 +lbl_803A0C6C: +/* 803A0C6C 0039DBCC 38 84 00 08 */ addi r4, r4, 8 +/* 803A0C70 0039DBD0 38 E7 00 01 */ addi r7, r7, 1 +lbl_803A0C74: +/* 803A0C74 0039DBD4 7C 07 30 00 */ cmpw r7, r6 +/* 803A0C78 0039DBD8 40 80 00 10 */ bge lbl_803A0C88 +/* 803A0C7C 0039DBDC A0 64 00 04 */ lhz r3, 4(r4) +/* 803A0C80 0039DBE0 7C 03 00 40 */ cmplw r3, r0 +/* 803A0C84 0039DBE4 41 80 FF E8 */ blt lbl_803A0C6C +lbl_803A0C88: +/* 803A0C88 0039DBE8 7C 07 30 00 */ cmpw r7, r6 +/* 803A0C8C 0039DBEC 40 80 01 34 */ bge lbl_803A0DC0 +/* 803A0C90 0039DBF0 3C 60 80 55 */ lis r3, lbl_80552CF8@ha +/* 803A0C94 0039DBF4 54 E0 18 38 */ slwi r0, r7, 3 +/* 803A0C98 0039DBF8 38 A3 2C F8 */ addi r5, r3, lbl_80552CF8@l +/* 803A0C9C 0039DBFC 57 C3 04 3E */ clrlwi r3, r30, 0x10 +/* 803A0CA0 0039DC00 7C 85 02 14 */ add r4, r5, r0 +/* 803A0CA4 0039DC04 A0 04 00 04 */ lhz r0, 4(r4) +/* 803A0CA8 0039DC08 7C 03 00 40 */ cmplw r3, r0 +/* 803A0CAC 0039DC0C 41 82 00 FC */ beq lbl_803A0DA8 +/* 803A0CB0 0039DC10 28 06 01 00 */ cmplwi r6, 0x100 +/* 803A0CB4 0039DC14 40 80 00 E8 */ bge lbl_803A0D9C +/* 803A0CB8 0039DC18 38 66 FF FF */ addi r3, r6, -1 +/* 803A0CBC 0039DC1C 7C 03 38 00 */ cmpw r3, r7 +/* 803A0CC0 0039DC20 54 60 18 38 */ slwi r0, r3, 3 +/* 803A0CC4 0039DC24 38 63 00 01 */ addi r3, r3, 1 +/* 803A0CC8 0039DC28 7C A5 02 14 */ add r5, r5, r0 +/* 803A0CCC 0039DC2C 7C 67 18 50 */ subf r3, r7, r3 +/* 803A0CD0 0039DC30 41 80 00 BC */ blt lbl_803A0D8C +/* 803A0CD4 0039DC34 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803A0CD8 0039DC38 7C 09 03 A6 */ mtctr r0 +/* 803A0CDC 0039DC3C 41 82 00 94 */ beq lbl_803A0D70 +lbl_803A0CE0: +/* 803A0CE0 0039DC40 80 85 00 00 */ lwz r4, 0(r5) +/* 803A0CE4 0039DC44 80 05 00 04 */ lwz r0, 4(r5) +/* 803A0CE8 0039DC48 90 85 00 08 */ stw r4, 8(r5) +/* 803A0CEC 0039DC4C 90 05 00 0C */ stw r0, 0xc(r5) +/* 803A0CF0 0039DC50 80 85 FF F8 */ lwz r4, -8(r5) +/* 803A0CF4 0039DC54 80 05 FF FC */ lwz r0, -4(r5) +/* 803A0CF8 0039DC58 90 85 00 00 */ stw r4, 0(r5) +/* 803A0CFC 0039DC5C 90 05 00 04 */ stw r0, 4(r5) +/* 803A0D00 0039DC60 80 85 FF F0 */ lwz r4, -0x10(r5) +/* 803A0D04 0039DC64 80 05 FF F4 */ lwz r0, -0xc(r5) +/* 803A0D08 0039DC68 90 85 FF F8 */ stw r4, -8(r5) +/* 803A0D0C 0039DC6C 90 05 FF FC */ stw r0, -4(r5) +/* 803A0D10 0039DC70 80 85 FF E8 */ lwz r4, -0x18(r5) +/* 803A0D14 0039DC74 80 05 FF EC */ lwz r0, -0x14(r5) +/* 803A0D18 0039DC78 90 85 FF F0 */ stw r4, -0x10(r5) +/* 803A0D1C 0039DC7C 90 05 FF F4 */ stw r0, -0xc(r5) +/* 803A0D20 0039DC80 80 85 FF E0 */ lwz r4, -0x20(r5) +/* 803A0D24 0039DC84 80 05 FF E4 */ lwz r0, -0x1c(r5) +/* 803A0D28 0039DC88 90 85 FF E8 */ stw r4, -0x18(r5) +/* 803A0D2C 0039DC8C 90 05 FF EC */ stw r0, -0x14(r5) +/* 803A0D30 0039DC90 80 85 FF D8 */ lwz r4, -0x28(r5) +/* 803A0D34 0039DC94 80 05 FF DC */ lwz r0, -0x24(r5) +/* 803A0D38 0039DC98 90 85 FF E0 */ stw r4, -0x20(r5) +/* 803A0D3C 0039DC9C 90 05 FF E4 */ stw r0, -0x1c(r5) +/* 803A0D40 0039DCA0 80 85 FF D0 */ lwz r4, -0x30(r5) +/* 803A0D44 0039DCA4 80 05 FF D4 */ lwz r0, -0x2c(r5) +/* 803A0D48 0039DCA8 90 85 FF D8 */ stw r4, -0x28(r5) +/* 803A0D4C 0039DCAC 90 05 FF DC */ stw r0, -0x24(r5) +/* 803A0D50 0039DCB0 80 85 FF C8 */ lwz r4, -0x38(r5) +/* 803A0D54 0039DCB4 80 05 FF CC */ lwz r0, -0x34(r5) +/* 803A0D58 0039DCB8 90 85 FF D0 */ stw r4, -0x30(r5) +/* 803A0D5C 0039DCBC 90 05 FF D4 */ stw r0, -0x2c(r5) +/* 803A0D60 0039DCC0 38 A5 FF C0 */ addi r5, r5, -64 +/* 803A0D64 0039DCC4 42 00 FF 7C */ bdnz lbl_803A0CE0 +/* 803A0D68 0039DCC8 70 63 00 07 */ andi. r3, r3, 7 +/* 803A0D6C 0039DCCC 41 82 00 20 */ beq lbl_803A0D8C +lbl_803A0D70: +/* 803A0D70 0039DCD0 7C 69 03 A6 */ mtctr r3 +lbl_803A0D74: +/* 803A0D74 0039DCD4 80 85 00 00 */ lwz r4, 0(r5) +/* 803A0D78 0039DCD8 80 05 00 04 */ lwz r0, 4(r5) +/* 803A0D7C 0039DCDC 90 85 00 08 */ stw r4, 8(r5) +/* 803A0D80 0039DCE0 90 05 00 0C */ stw r0, 0xc(r5) +/* 803A0D84 0039DCE4 38 A5 FF F8 */ addi r5, r5, -8 +/* 803A0D88 0039DCE8 42 00 FF EC */ bdnz lbl_803A0D74 +lbl_803A0D8C: +/* 803A0D8C 0039DCEC A0 6D AE D6 */ lhz r3, lbl_805A9A96@sda21(r13) +/* 803A0D90 0039DCF0 38 03 00 01 */ addi r0, r3, 1 +/* 803A0D94 0039DCF4 B0 0D AE D6 */ sth r0, lbl_805A9A96@sda21(r13) +/* 803A0D98 0039DCF8 48 00 00 4C */ b lbl_803A0DE4 +lbl_803A0D9C: +/* 803A0D9C 0039DCFC 48 01 42 E9 */ bl hwEnableIrq +/* 803A0DA0 0039DD00 38 60 00 00 */ li r3, 0 +/* 803A0DA4 0039DD04 48 00 00 68 */ b lbl_803A0E0C +lbl_803A0DA8: +/* 803A0DA8 0039DD08 A0 64 00 06 */ lhz r3, 6(r4) +/* 803A0DAC 0039DD0C 38 03 00 01 */ addi r0, r3, 1 +/* 803A0DB0 0039DD10 B0 04 00 06 */ sth r0, 6(r4) +/* 803A0DB4 0039DD14 48 01 42 D1 */ bl hwEnableIrq +/* 803A0DB8 0039DD18 38 60 00 00 */ li r3, 0 +/* 803A0DBC 0039DD1C 48 00 00 50 */ b lbl_803A0E0C +lbl_803A0DC0: +/* 803A0DC0 0039DD20 28 06 01 00 */ cmplwi r6, 0x100 +/* 803A0DC4 0039DD24 40 80 00 14 */ bge lbl_803A0DD8 +/* 803A0DC8 0039DD28 A0 6D AE D6 */ lhz r3, lbl_805A9A96@sda21(r13) +/* 803A0DCC 0039DD2C 38 03 00 01 */ addi r0, r3, 1 +/* 803A0DD0 0039DD30 B0 0D AE D6 */ sth r0, lbl_805A9A96@sda21(r13) +/* 803A0DD4 0039DD34 48 00 00 10 */ b lbl_803A0DE4 +lbl_803A0DD8: +/* 803A0DD8 0039DD38 48 01 42 AD */ bl hwEnableIrq +/* 803A0DDC 0039DD3C 38 60 00 00 */ li r3, 0 +/* 803A0DE0 0039DD40 48 00 00 2C */ b lbl_803A0E0C +lbl_803A0DE4: +/* 803A0DE4 0039DD44 3C 60 80 55 */ lis r3, lbl_80552CF8@ha +/* 803A0DE8 0039DD48 54 E5 18 38 */ slwi r5, r7, 3 +/* 803A0DEC 0039DD4C 38 83 2C F8 */ addi r4, r3, lbl_80552CF8@l +/* 803A0DF0 0039DD50 38 00 00 01 */ li r0, 1 +/* 803A0DF4 0039DD54 7C 64 2A 14 */ add r3, r4, r5 +/* 803A0DF8 0039DD58 B3 C3 00 04 */ sth r30, 4(r3) +/* 803A0DFC 0039DD5C 7F E4 29 2E */ stwx r31, r4, r5 +/* 803A0E00 0039DD60 B0 03 00 06 */ sth r0, 6(r3) +/* 803A0E04 0039DD64 48 01 42 81 */ bl hwEnableIrq +/* 803A0E08 0039DD68 38 60 00 01 */ li r3, 1 +lbl_803A0E0C: +/* 803A0E0C 0039DD6C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A0E10 0039DD70 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A0E14 0039DD74 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A0E18 0039DD78 7C 08 03 A6 */ mtlr r0 +/* 803A0E1C 0039DD7C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A0E20 0039DD80 4E 80 00 20 */ blr + +.global sub_803a0e24 +sub_803a0e24: +/* 803A0E24 0039DD84 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A0E28 0039DD88 7C 08 02 A6 */ mflr r0 +/* 803A0E2C 0039DD8C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A0E30 0039DD90 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A0E34 0039DD94 7C 7F 1B 78 */ mr r31, r3 +/* 803A0E38 0039DD98 48 01 42 85 */ bl hwDisableIrq +/* 803A0E3C 0039DD9C 3C 60 80 55 */ lis r3, lbl_80552CF8@ha +/* 803A0E40 0039DDA0 A0 CD AE D6 */ lhz r6, lbl_805A9A96@sda21(r13) +/* 803A0E44 0039DDA4 38 83 2C F8 */ addi r4, r3, lbl_80552CF8@l +/* 803A0E48 0039DDA8 38 E0 00 00 */ li r7, 0 +/* 803A0E4C 0039DDAC 57 E3 04 3E */ clrlwi r3, r31, 0x10 +/* 803A0E50 0039DDB0 48 00 00 0C */ b lbl_803A0E5C +lbl_803A0E54: +/* 803A0E54 0039DDB4 38 84 00 08 */ addi r4, r4, 8 +/* 803A0E58 0039DDB8 38 E7 00 01 */ addi r7, r7, 1 +lbl_803A0E5C: +/* 803A0E5C 0039DDBC 7C 07 30 00 */ cmpw r7, r6 +/* 803A0E60 0039DDC0 40 80 00 10 */ bge lbl_803A0E70 +/* 803A0E64 0039DDC4 A0 04 00 04 */ lhz r0, 4(r4) +/* 803A0E68 0039DDC8 7C 03 00 40 */ cmplw r3, r0 +/* 803A0E6C 0039DDCC 40 82 FF E8 */ bne lbl_803A0E54 +lbl_803A0E70: +/* 803A0E70 0039DDD0 7C 07 30 00 */ cmpw r7, r6 +/* 803A0E74 0039DDD4 41 82 01 10 */ beq lbl_803A0F84 +/* 803A0E78 0039DDD8 3C 60 80 55 */ lis r3, lbl_80552CF8@ha +/* 803A0E7C 0039DDDC 54 E0 18 38 */ slwi r0, r7, 3 +/* 803A0E80 0039DDE0 38 A3 2C F8 */ addi r5, r3, lbl_80552CF8@l +/* 803A0E84 0039DDE4 7C 85 02 14 */ add r4, r5, r0 +/* 803A0E88 0039DDE8 A0 64 00 06 */ lhz r3, 6(r4) +/* 803A0E8C 0039DDEC 38 63 FF FF */ addi r3, r3, -1 +/* 803A0E90 0039DDF0 54 60 04 3F */ clrlwi. r0, r3, 0x10 +/* 803A0E94 0039DDF4 B0 64 00 06 */ sth r3, 6(r4) +/* 803A0E98 0039DDF8 40 82 00 EC */ bne lbl_803A0F84 +/* 803A0E9C 0039DDFC 38 67 00 01 */ addi r3, r7, 1 +/* 803A0EA0 0039DE00 7C 03 30 00 */ cmpw r3, r6 +/* 803A0EA4 0039DE04 54 60 18 38 */ slwi r0, r3, 3 +/* 803A0EA8 0039DE08 7C 63 30 50 */ subf r3, r3, r6 +/* 803A0EAC 0039DE0C 7C A5 02 14 */ add r5, r5, r0 +/* 803A0EB0 0039DE10 40 80 00 BC */ bge lbl_803A0F6C +/* 803A0EB4 0039DE14 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803A0EB8 0039DE18 7C 09 03 A6 */ mtctr r0 +/* 803A0EBC 0039DE1C 41 82 00 94 */ beq lbl_803A0F50 +lbl_803A0EC0: +/* 803A0EC0 0039DE20 80 85 00 00 */ lwz r4, 0(r5) +/* 803A0EC4 0039DE24 80 05 00 04 */ lwz r0, 4(r5) +/* 803A0EC8 0039DE28 90 85 FF F8 */ stw r4, -8(r5) +/* 803A0ECC 0039DE2C 90 05 FF FC */ stw r0, -4(r5) +/* 803A0ED0 0039DE30 80 85 00 08 */ lwz r4, 8(r5) +/* 803A0ED4 0039DE34 80 05 00 0C */ lwz r0, 0xc(r5) +/* 803A0ED8 0039DE38 90 85 00 00 */ stw r4, 0(r5) +/* 803A0EDC 0039DE3C 90 05 00 04 */ stw r0, 4(r5) +/* 803A0EE0 0039DE40 80 85 00 10 */ lwz r4, 0x10(r5) +/* 803A0EE4 0039DE44 80 05 00 14 */ lwz r0, 0x14(r5) +/* 803A0EE8 0039DE48 90 85 00 08 */ stw r4, 8(r5) +/* 803A0EEC 0039DE4C 90 05 00 0C */ stw r0, 0xc(r5) +/* 803A0EF0 0039DE50 80 85 00 18 */ lwz r4, 0x18(r5) +/* 803A0EF4 0039DE54 80 05 00 1C */ lwz r0, 0x1c(r5) +/* 803A0EF8 0039DE58 90 85 00 10 */ stw r4, 0x10(r5) +/* 803A0EFC 0039DE5C 90 05 00 14 */ stw r0, 0x14(r5) +/* 803A0F00 0039DE60 80 85 00 20 */ lwz r4, 0x20(r5) +/* 803A0F04 0039DE64 80 05 00 24 */ lwz r0, 0x24(r5) +/* 803A0F08 0039DE68 90 85 00 18 */ stw r4, 0x18(r5) +/* 803A0F0C 0039DE6C 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803A0F10 0039DE70 80 85 00 28 */ lwz r4, 0x28(r5) +/* 803A0F14 0039DE74 80 05 00 2C */ lwz r0, 0x2c(r5) +/* 803A0F18 0039DE78 90 85 00 20 */ stw r4, 0x20(r5) +/* 803A0F1C 0039DE7C 90 05 00 24 */ stw r0, 0x24(r5) +/* 803A0F20 0039DE80 80 85 00 30 */ lwz r4, 0x30(r5) +/* 803A0F24 0039DE84 80 05 00 34 */ lwz r0, 0x34(r5) +/* 803A0F28 0039DE88 90 85 00 28 */ stw r4, 0x28(r5) +/* 803A0F2C 0039DE8C 90 05 00 2C */ stw r0, 0x2c(r5) +/* 803A0F30 0039DE90 80 85 00 38 */ lwz r4, 0x38(r5) +/* 803A0F34 0039DE94 80 05 00 3C */ lwz r0, 0x3c(r5) +/* 803A0F38 0039DE98 90 85 00 30 */ stw r4, 0x30(r5) +/* 803A0F3C 0039DE9C 90 05 00 34 */ stw r0, 0x34(r5) +/* 803A0F40 0039DEA0 38 A5 00 40 */ addi r5, r5, 0x40 +/* 803A0F44 0039DEA4 42 00 FF 7C */ bdnz lbl_803A0EC0 +/* 803A0F48 0039DEA8 70 63 00 07 */ andi. r3, r3, 7 +/* 803A0F4C 0039DEAC 41 82 00 20 */ beq lbl_803A0F6C +lbl_803A0F50: +/* 803A0F50 0039DEB0 7C 69 03 A6 */ mtctr r3 +lbl_803A0F54: +/* 803A0F54 0039DEB4 80 85 00 00 */ lwz r4, 0(r5) +/* 803A0F58 0039DEB8 80 05 00 04 */ lwz r0, 4(r5) +/* 803A0F5C 0039DEBC 90 85 FF F8 */ stw r4, -8(r5) +/* 803A0F60 0039DEC0 90 05 FF FC */ stw r0, -4(r5) +/* 803A0F64 0039DEC4 38 A5 00 08 */ addi r5, r5, 8 +/* 803A0F68 0039DEC8 42 00 FF EC */ bdnz lbl_803A0F54 +lbl_803A0F6C: +/* 803A0F6C 0039DECC A0 6D AE D6 */ lhz r3, lbl_805A9A96@sda21(r13) +/* 803A0F70 0039DED0 38 03 FF FF */ addi r0, r3, -1 +/* 803A0F74 0039DED4 B0 0D AE D6 */ sth r0, lbl_805A9A96@sda21(r13) +/* 803A0F78 0039DED8 48 01 41 0D */ bl hwEnableIrq +/* 803A0F7C 0039DEDC 38 60 00 01 */ li r3, 1 +/* 803A0F80 0039DEE0 48 00 00 0C */ b lbl_803A0F8C +lbl_803A0F84: +/* 803A0F84 0039DEE4 48 01 41 01 */ bl hwEnableIrq +/* 803A0F88 0039DEE8 38 60 00 00 */ li r3, 0 +lbl_803A0F8C: +/* 803A0F8C 0039DEEC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A0F90 0039DEF0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A0F94 0039DEF4 7C 08 03 A6 */ mtlr r0 +/* 803A0F98 0039DEF8 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A0F9C 0039DEFC 4E 80 00 20 */ blr + +.global dataInsertLayer +dataInsertLayer: +/* 803A0FA0 0039DF00 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A0FA4 0039DF04 7C 08 02 A6 */ mflr r0 +/* 803A0FA8 0039DF08 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A0FAC 0039DF0C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A0FB0 0039DF10 7C BF 2B 78 */ mr r31, r5 +/* 803A0FB4 0039DF14 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A0FB8 0039DF18 7C 9E 23 78 */ mr r30, r4 +/* 803A0FBC 0039DF1C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A0FC0 0039DF20 7C 7D 1B 78 */ mr r29, r3 +/* 803A0FC4 0039DF24 48 01 40 F9 */ bl hwDisableIrq +/* 803A0FC8 0039DF28 3C 60 80 55 */ lis r3, lbl_805534F8@ha +/* 803A0FCC 0039DF2C A0 ED AE D4 */ lhz r7, lbl_805A9A94@sda21(r13) +/* 803A0FD0 0039DF30 38 83 34 F8 */ addi r4, r3, lbl_805534F8@l +/* 803A0FD4 0039DF34 57 A0 04 3E */ clrlwi r0, r29, 0x10 +/* 803A0FD8 0039DF38 39 00 00 00 */ li r8, 0 +/* 803A0FDC 0039DF3C 48 00 00 0C */ b lbl_803A0FE8 +lbl_803A0FE0: +/* 803A0FE0 0039DF40 38 84 00 0C */ addi r4, r4, 0xc +/* 803A0FE4 0039DF44 39 08 00 01 */ addi r8, r8, 1 +lbl_803A0FE8: +/* 803A0FE8 0039DF48 7C 08 38 00 */ cmpw r8, r7 +/* 803A0FEC 0039DF4C 40 80 00 10 */ bge lbl_803A0FFC +/* 803A0FF0 0039DF50 A0 64 00 04 */ lhz r3, 4(r4) +/* 803A0FF4 0039DF54 7C 03 00 40 */ cmplw r3, r0 +/* 803A0FF8 0039DF58 41 80 FF E8 */ blt lbl_803A0FE0 +lbl_803A0FFC: +/* 803A0FFC 0039DF5C 7C 08 38 00 */ cmpw r8, r7 +/* 803A1000 0039DF60 40 80 01 7C */ bge lbl_803A117C +/* 803A1004 0039DF64 1C 08 00 0C */ mulli r0, r8, 0xc +/* 803A1008 0039DF68 3C 60 80 55 */ lis r3, lbl_805534F8@ha +/* 803A100C 0039DF6C 57 A6 04 3E */ clrlwi r6, r29, 0x10 +/* 803A1010 0039DF70 38 A3 34 F8 */ addi r5, r3, lbl_805534F8@l +/* 803A1014 0039DF74 7C 85 02 14 */ add r4, r5, r0 +/* 803A1018 0039DF78 A0 04 00 04 */ lhz r0, 4(r4) +/* 803A101C 0039DF7C 7C 06 00 40 */ cmplw r6, r0 +/* 803A1020 0039DF80 41 82 01 44 */ beq lbl_803A1164 +/* 803A1024 0039DF84 28 07 01 00 */ cmplwi r7, 0x100 +/* 803A1028 0039DF88 40 80 01 30 */ bge lbl_803A1158 +/* 803A102C 0039DF8C 38 67 FF FF */ addi r3, r7, -1 +/* 803A1030 0039DF90 1C 03 00 0C */ mulli r0, r3, 0xc +/* 803A1034 0039DF94 7C 03 40 00 */ cmpw r3, r8 +/* 803A1038 0039DF98 38 63 00 01 */ addi r3, r3, 1 +/* 803A103C 0039DF9C 7C A5 02 14 */ add r5, r5, r0 +/* 803A1040 0039DFA0 7C 68 18 50 */ subf r3, r8, r3 +/* 803A1044 0039DFA4 41 80 01 04 */ blt lbl_803A1148 +/* 803A1048 0039DFA8 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803A104C 0039DFAC 7C 09 03 A6 */ mtctr r0 +/* 803A1050 0039DFB0 41 82 00 D4 */ beq lbl_803A1124 +lbl_803A1054: +/* 803A1054 0039DFB4 80 85 00 00 */ lwz r4, 0(r5) +/* 803A1058 0039DFB8 80 05 00 04 */ lwz r0, 4(r5) +/* 803A105C 0039DFBC 90 85 00 0C */ stw r4, 0xc(r5) +/* 803A1060 0039DFC0 90 05 00 10 */ stw r0, 0x10(r5) +/* 803A1064 0039DFC4 80 05 00 08 */ lwz r0, 8(r5) +/* 803A1068 0039DFC8 90 05 00 14 */ stw r0, 0x14(r5) +/* 803A106C 0039DFCC 80 85 FF F4 */ lwz r4, -0xc(r5) +/* 803A1070 0039DFD0 80 05 FF F8 */ lwz r0, -8(r5) +/* 803A1074 0039DFD4 90 85 00 00 */ stw r4, 0(r5) +/* 803A1078 0039DFD8 90 05 00 04 */ stw r0, 4(r5) +/* 803A107C 0039DFDC 80 05 FF FC */ lwz r0, -4(r5) +/* 803A1080 0039DFE0 90 05 00 08 */ stw r0, 8(r5) +/* 803A1084 0039DFE4 80 85 FF E8 */ lwz r4, -0x18(r5) +/* 803A1088 0039DFE8 80 05 FF EC */ lwz r0, -0x14(r5) +/* 803A108C 0039DFEC 90 85 FF F4 */ stw r4, -0xc(r5) +/* 803A1090 0039DFF0 90 05 FF F8 */ stw r0, -8(r5) +/* 803A1094 0039DFF4 80 05 FF F0 */ lwz r0, -0x10(r5) +/* 803A1098 0039DFF8 90 05 FF FC */ stw r0, -4(r5) +/* 803A109C 0039DFFC 80 85 FF DC */ lwz r4, -0x24(r5) +/* 803A10A0 0039E000 80 05 FF E0 */ lwz r0, -0x20(r5) +/* 803A10A4 0039E004 90 85 FF E8 */ stw r4, -0x18(r5) +/* 803A10A8 0039E008 90 05 FF EC */ stw r0, -0x14(r5) +/* 803A10AC 0039E00C 80 05 FF E4 */ lwz r0, -0x1c(r5) +/* 803A10B0 0039E010 90 05 FF F0 */ stw r0, -0x10(r5) +/* 803A10B4 0039E014 80 85 FF D0 */ lwz r4, -0x30(r5) +/* 803A10B8 0039E018 80 05 FF D4 */ lwz r0, -0x2c(r5) +/* 803A10BC 0039E01C 90 85 FF DC */ stw r4, -0x24(r5) +/* 803A10C0 0039E020 90 05 FF E0 */ stw r0, -0x20(r5) +/* 803A10C4 0039E024 80 05 FF D8 */ lwz r0, -0x28(r5) +/* 803A10C8 0039E028 90 05 FF E4 */ stw r0, -0x1c(r5) +/* 803A10CC 0039E02C 80 85 FF C4 */ lwz r4, -0x3c(r5) +/* 803A10D0 0039E030 80 05 FF C8 */ lwz r0, -0x38(r5) +/* 803A10D4 0039E034 90 85 FF D0 */ stw r4, -0x30(r5) +/* 803A10D8 0039E038 90 05 FF D4 */ stw r0, -0x2c(r5) +/* 803A10DC 0039E03C 80 05 FF CC */ lwz r0, -0x34(r5) +/* 803A10E0 0039E040 90 05 FF D8 */ stw r0, -0x28(r5) +/* 803A10E4 0039E044 80 85 FF B8 */ lwz r4, -0x48(r5) +/* 803A10E8 0039E048 80 05 FF BC */ lwz r0, -0x44(r5) +/* 803A10EC 0039E04C 90 85 FF C4 */ stw r4, -0x3c(r5) +/* 803A10F0 0039E050 90 05 FF C8 */ stw r0, -0x38(r5) +/* 803A10F4 0039E054 80 05 FF C0 */ lwz r0, -0x40(r5) +/* 803A10F8 0039E058 90 05 FF CC */ stw r0, -0x34(r5) +/* 803A10FC 0039E05C 80 85 FF AC */ lwz r4, -0x54(r5) +/* 803A1100 0039E060 80 05 FF B0 */ lwz r0, -0x50(r5) +/* 803A1104 0039E064 90 85 FF B8 */ stw r4, -0x48(r5) +/* 803A1108 0039E068 90 05 FF BC */ stw r0, -0x44(r5) +/* 803A110C 0039E06C 80 05 FF B4 */ lwz r0, -0x4c(r5) +/* 803A1110 0039E070 90 05 FF C0 */ stw r0, -0x40(r5) +/* 803A1114 0039E074 38 A5 FF A0 */ addi r5, r5, -96 +/* 803A1118 0039E078 42 00 FF 3C */ bdnz lbl_803A1054 +/* 803A111C 0039E07C 70 63 00 07 */ andi. r3, r3, 7 +/* 803A1120 0039E080 41 82 00 28 */ beq lbl_803A1148 +lbl_803A1124: +/* 803A1124 0039E084 7C 69 03 A6 */ mtctr r3 +lbl_803A1128: +/* 803A1128 0039E088 80 85 00 00 */ lwz r4, 0(r5) +/* 803A112C 0039E08C 80 05 00 04 */ lwz r0, 4(r5) +/* 803A1130 0039E090 90 85 00 0C */ stw r4, 0xc(r5) +/* 803A1134 0039E094 90 05 00 10 */ stw r0, 0x10(r5) +/* 803A1138 0039E098 80 05 00 08 */ lwz r0, 8(r5) +/* 803A113C 0039E09C 90 05 00 14 */ stw r0, 0x14(r5) +/* 803A1140 0039E0A0 38 A5 FF F4 */ addi r5, r5, -12 +/* 803A1144 0039E0A4 42 00 FF E4 */ bdnz lbl_803A1128 +lbl_803A1148: +/* 803A1148 0039E0A8 A0 6D AE D4 */ lhz r3, lbl_805A9A94@sda21(r13) +/* 803A114C 0039E0AC 38 03 00 01 */ addi r0, r3, 1 +/* 803A1150 0039E0B0 B0 0D AE D4 */ sth r0, lbl_805A9A94@sda21(r13) +/* 803A1154 0039E0B4 48 00 00 4C */ b lbl_803A11A0 +lbl_803A1158: +/* 803A1158 0039E0B8 48 01 3F 2D */ bl hwEnableIrq +/* 803A115C 0039E0BC 38 60 00 00 */ li r3, 0 +/* 803A1160 0039E0C0 48 00 00 6C */ b lbl_803A11CC +lbl_803A1164: +/* 803A1164 0039E0C4 A0 64 00 08 */ lhz r3, 8(r4) +/* 803A1168 0039E0C8 38 03 00 01 */ addi r0, r3, 1 +/* 803A116C 0039E0CC B0 04 00 08 */ sth r0, 8(r4) +/* 803A1170 0039E0D0 48 01 3F 15 */ bl hwEnableIrq +/* 803A1174 0039E0D4 38 60 00 00 */ li r3, 0 +/* 803A1178 0039E0D8 48 00 00 54 */ b lbl_803A11CC +lbl_803A117C: +/* 803A117C 0039E0DC 28 07 01 00 */ cmplwi r7, 0x100 +/* 803A1180 0039E0E0 40 80 00 14 */ bge lbl_803A1194 +/* 803A1184 0039E0E4 A0 6D AE D4 */ lhz r3, lbl_805A9A94@sda21(r13) +/* 803A1188 0039E0E8 38 03 00 01 */ addi r0, r3, 1 +/* 803A118C 0039E0EC B0 0D AE D4 */ sth r0, lbl_805A9A94@sda21(r13) +/* 803A1190 0039E0F0 48 00 00 10 */ b lbl_803A11A0 +lbl_803A1194: +/* 803A1194 0039E0F4 48 01 3E F1 */ bl hwEnableIrq +/* 803A1198 0039E0F8 38 60 00 00 */ li r3, 0 +/* 803A119C 0039E0FC 48 00 00 30 */ b lbl_803A11CC +lbl_803A11A0: +/* 803A11A0 0039E100 1C A8 00 0C */ mulli r5, r8, 0xc +/* 803A11A4 0039E104 3C 60 80 55 */ lis r3, lbl_805534F8@ha +/* 803A11A8 0039E108 38 00 00 01 */ li r0, 1 +/* 803A11AC 0039E10C 38 83 34 F8 */ addi r4, r3, lbl_805534F8@l +/* 803A11B0 0039E110 7C 64 2A 14 */ add r3, r4, r5 +/* 803A11B4 0039E114 B3 A3 00 04 */ sth r29, 4(r3) +/* 803A11B8 0039E118 7F C4 29 2E */ stwx r30, r4, r5 +/* 803A11BC 0039E11C B3 E3 00 06 */ sth r31, 6(r3) +/* 803A11C0 0039E120 B0 03 00 08 */ sth r0, 8(r3) +/* 803A11C4 0039E124 48 01 3E C1 */ bl hwEnableIrq +/* 803A11C8 0039E128 38 60 00 01 */ li r3, 1 +lbl_803A11CC: +/* 803A11CC 0039E12C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A11D0 0039E130 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A11D4 0039E134 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A11D8 0039E138 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A11DC 0039E13C 7C 08 03 A6 */ mtlr r0 +/* 803A11E0 0039E140 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A11E4 0039E144 4E 80 00 20 */ blr + +.global dataRemoveLayer +dataRemoveLayer: +/* 803A11E8 0039E148 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A11EC 0039E14C 7C 08 02 A6 */ mflr r0 +/* 803A11F0 0039E150 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A11F4 0039E154 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A11F8 0039E158 7C 7F 1B 78 */ mr r31, r3 +/* 803A11FC 0039E15C 48 01 3E C1 */ bl hwDisableIrq +/* 803A1200 0039E160 3C 60 80 55 */ lis r3, lbl_805534F8@ha +/* 803A1204 0039E164 A0 CD AE D4 */ lhz r6, lbl_805A9A94@sda21(r13) +/* 803A1208 0039E168 38 83 34 F8 */ addi r4, r3, lbl_805534F8@l +/* 803A120C 0039E16C 38 E0 00 00 */ li r7, 0 +/* 803A1210 0039E170 57 E3 04 3E */ clrlwi r3, r31, 0x10 +/* 803A1214 0039E174 48 00 00 0C */ b lbl_803A1220 +lbl_803A1218: +/* 803A1218 0039E178 38 84 00 0C */ addi r4, r4, 0xc +/* 803A121C 0039E17C 38 E7 00 01 */ addi r7, r7, 1 +lbl_803A1220: +/* 803A1220 0039E180 7C 07 30 00 */ cmpw r7, r6 +/* 803A1224 0039E184 40 80 00 10 */ bge lbl_803A1234 +/* 803A1228 0039E188 A0 04 00 04 */ lhz r0, 4(r4) +/* 803A122C 0039E18C 7C 03 00 40 */ cmplw r3, r0 +/* 803A1230 0039E190 40 82 FF E8 */ bne lbl_803A1218 +lbl_803A1234: +/* 803A1234 0039E194 7C 07 30 00 */ cmpw r7, r6 +/* 803A1238 0039E198 41 82 01 58 */ beq lbl_803A1390 +/* 803A123C 0039E19C 1C 07 00 0C */ mulli r0, r7, 0xc +/* 803A1240 0039E1A0 3C 60 80 55 */ lis r3, lbl_805534F8@ha +/* 803A1244 0039E1A4 38 A3 34 F8 */ addi r5, r3, lbl_805534F8@l +/* 803A1248 0039E1A8 7C 85 02 14 */ add r4, r5, r0 +/* 803A124C 0039E1AC A0 64 00 08 */ lhz r3, 8(r4) +/* 803A1250 0039E1B0 38 63 FF FF */ addi r3, r3, -1 +/* 803A1254 0039E1B4 54 60 04 3F */ clrlwi. r0, r3, 0x10 +/* 803A1258 0039E1B8 B0 64 00 08 */ sth r3, 8(r4) +/* 803A125C 0039E1BC 40 82 01 34 */ bne lbl_803A1390 +/* 803A1260 0039E1C0 38 67 00 01 */ addi r3, r7, 1 +/* 803A1264 0039E1C4 1C 03 00 0C */ mulli r0, r3, 0xc +/* 803A1268 0039E1C8 7C 03 30 00 */ cmpw r3, r6 +/* 803A126C 0039E1CC 7C 63 30 50 */ subf r3, r3, r6 +/* 803A1270 0039E1D0 7C A5 02 14 */ add r5, r5, r0 +/* 803A1274 0039E1D4 40 80 01 04 */ bge lbl_803A1378 +/* 803A1278 0039E1D8 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803A127C 0039E1DC 7C 09 03 A6 */ mtctr r0 +/* 803A1280 0039E1E0 41 82 00 D4 */ beq lbl_803A1354 +lbl_803A1284: +/* 803A1284 0039E1E4 80 85 00 00 */ lwz r4, 0(r5) +/* 803A1288 0039E1E8 80 05 00 04 */ lwz r0, 4(r5) +/* 803A128C 0039E1EC 90 85 FF F4 */ stw r4, -0xc(r5) +/* 803A1290 0039E1F0 90 05 FF F8 */ stw r0, -8(r5) +/* 803A1294 0039E1F4 80 05 00 08 */ lwz r0, 8(r5) +/* 803A1298 0039E1F8 90 05 FF FC */ stw r0, -4(r5) +/* 803A129C 0039E1FC 80 85 00 0C */ lwz r4, 0xc(r5) +/* 803A12A0 0039E200 80 05 00 10 */ lwz r0, 0x10(r5) +/* 803A12A4 0039E204 90 85 00 00 */ stw r4, 0(r5) +/* 803A12A8 0039E208 90 05 00 04 */ stw r0, 4(r5) +/* 803A12AC 0039E20C 80 05 00 14 */ lwz r0, 0x14(r5) +/* 803A12B0 0039E210 90 05 00 08 */ stw r0, 8(r5) +/* 803A12B4 0039E214 80 85 00 18 */ lwz r4, 0x18(r5) +/* 803A12B8 0039E218 80 05 00 1C */ lwz r0, 0x1c(r5) +/* 803A12BC 0039E21C 90 85 00 0C */ stw r4, 0xc(r5) +/* 803A12C0 0039E220 90 05 00 10 */ stw r0, 0x10(r5) +/* 803A12C4 0039E224 80 05 00 20 */ lwz r0, 0x20(r5) +/* 803A12C8 0039E228 90 05 00 14 */ stw r0, 0x14(r5) +/* 803A12CC 0039E22C 80 85 00 24 */ lwz r4, 0x24(r5) +/* 803A12D0 0039E230 80 05 00 28 */ lwz r0, 0x28(r5) +/* 803A12D4 0039E234 90 85 00 18 */ stw r4, 0x18(r5) +/* 803A12D8 0039E238 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803A12DC 0039E23C 80 05 00 2C */ lwz r0, 0x2c(r5) +/* 803A12E0 0039E240 90 05 00 20 */ stw r0, 0x20(r5) +/* 803A12E4 0039E244 80 85 00 30 */ lwz r4, 0x30(r5) +/* 803A12E8 0039E248 80 05 00 34 */ lwz r0, 0x34(r5) +/* 803A12EC 0039E24C 90 85 00 24 */ stw r4, 0x24(r5) +/* 803A12F0 0039E250 90 05 00 28 */ stw r0, 0x28(r5) +/* 803A12F4 0039E254 80 05 00 38 */ lwz r0, 0x38(r5) +/* 803A12F8 0039E258 90 05 00 2C */ stw r0, 0x2c(r5) +/* 803A12FC 0039E25C 80 85 00 3C */ lwz r4, 0x3c(r5) +/* 803A1300 0039E260 80 05 00 40 */ lwz r0, 0x40(r5) +/* 803A1304 0039E264 90 85 00 30 */ stw r4, 0x30(r5) +/* 803A1308 0039E268 90 05 00 34 */ stw r0, 0x34(r5) +/* 803A130C 0039E26C 80 05 00 44 */ lwz r0, 0x44(r5) +/* 803A1310 0039E270 90 05 00 38 */ stw r0, 0x38(r5) +/* 803A1314 0039E274 80 85 00 48 */ lwz r4, 0x48(r5) +/* 803A1318 0039E278 80 05 00 4C */ lwz r0, 0x4c(r5) +/* 803A131C 0039E27C 90 85 00 3C */ stw r4, 0x3c(r5) +/* 803A1320 0039E280 90 05 00 40 */ stw r0, 0x40(r5) +/* 803A1324 0039E284 80 05 00 50 */ lwz r0, 0x50(r5) +/* 803A1328 0039E288 90 05 00 44 */ stw r0, 0x44(r5) +/* 803A132C 0039E28C 80 85 00 54 */ lwz r4, 0x54(r5) +/* 803A1330 0039E290 80 05 00 58 */ lwz r0, 0x58(r5) +/* 803A1334 0039E294 90 85 00 48 */ stw r4, 0x48(r5) +/* 803A1338 0039E298 90 05 00 4C */ stw r0, 0x4c(r5) +/* 803A133C 0039E29C 80 05 00 5C */ lwz r0, 0x5c(r5) +/* 803A1340 0039E2A0 90 05 00 50 */ stw r0, 0x50(r5) +/* 803A1344 0039E2A4 38 A5 00 60 */ addi r5, r5, 0x60 +/* 803A1348 0039E2A8 42 00 FF 3C */ bdnz lbl_803A1284 +/* 803A134C 0039E2AC 70 63 00 07 */ andi. r3, r3, 7 +/* 803A1350 0039E2B0 41 82 00 28 */ beq lbl_803A1378 +lbl_803A1354: +/* 803A1354 0039E2B4 7C 69 03 A6 */ mtctr r3 +lbl_803A1358: +/* 803A1358 0039E2B8 80 85 00 00 */ lwz r4, 0(r5) +/* 803A135C 0039E2BC 80 05 00 04 */ lwz r0, 4(r5) +/* 803A1360 0039E2C0 90 85 FF F4 */ stw r4, -0xc(r5) +/* 803A1364 0039E2C4 90 05 FF F8 */ stw r0, -8(r5) +/* 803A1368 0039E2C8 80 05 00 08 */ lwz r0, 8(r5) +/* 803A136C 0039E2CC 90 05 FF FC */ stw r0, -4(r5) +/* 803A1370 0039E2D0 38 A5 00 0C */ addi r5, r5, 0xc +/* 803A1374 0039E2D4 42 00 FF E4 */ bdnz lbl_803A1358 +lbl_803A1378: +/* 803A1378 0039E2D8 A0 6D AE D4 */ lhz r3, lbl_805A9A94@sda21(r13) +/* 803A137C 0039E2DC 38 03 FF FF */ addi r0, r3, -1 +/* 803A1380 0039E2E0 B0 0D AE D4 */ sth r0, lbl_805A9A94@sda21(r13) +/* 803A1384 0039E2E4 48 01 3D 01 */ bl hwEnableIrq +/* 803A1388 0039E2E8 38 60 00 01 */ li r3, 1 +/* 803A138C 0039E2EC 48 00 00 0C */ b lbl_803A1398 +lbl_803A1390: +/* 803A1390 0039E2F0 48 01 3C F5 */ bl hwEnableIrq +/* 803A1394 0039E2F4 38 60 00 00 */ li r3, 0 +lbl_803A1398: +/* 803A1398 0039E2F8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A139C 0039E2FC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A13A0 0039E300 7C 08 03 A6 */ mtlr r0 +/* 803A13A4 0039E304 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A13A8 0039E308 4E 80 00 20 */ blr + +.global dataInsertCurve +dataInsertCurve: +/* 803A13AC 0039E30C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A13B0 0039E310 7C 08 02 A6 */ mflr r0 +/* 803A13B4 0039E314 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A13B8 0039E318 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A13BC 0039E31C 7C 9F 23 78 */ mr r31, r4 +/* 803A13C0 0039E320 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A13C4 0039E324 7C 7E 1B 78 */ mr r30, r3 +/* 803A13C8 0039E328 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A13CC 0039E32C 48 01 3C F1 */ bl hwDisableIrq +/* 803A13D0 0039E330 3C 60 80 55 */ lis r3, lbl_805540F8@ha +/* 803A13D4 0039E334 A0 CD AE D8 */ lhz r6, lbl_805A9A98@sda21(r13) +/* 803A13D8 0039E338 38 83 40 F8 */ addi r4, r3, lbl_805540F8@l +/* 803A13DC 0039E33C 57 C0 04 3E */ clrlwi r0, r30, 0x10 +/* 803A13E0 0039E340 38 E0 00 00 */ li r7, 0 +/* 803A13E4 0039E344 48 00 00 0C */ b lbl_803A13F0 +lbl_803A13E8: +/* 803A13E8 0039E348 38 84 00 08 */ addi r4, r4, 8 +/* 803A13EC 0039E34C 38 E7 00 01 */ addi r7, r7, 1 +lbl_803A13F0: +/* 803A13F0 0039E350 7C 07 30 00 */ cmpw r7, r6 +/* 803A13F4 0039E354 40 80 00 10 */ bge lbl_803A1404 +/* 803A13F8 0039E358 A0 64 00 04 */ lhz r3, 4(r4) +/* 803A13FC 0039E35C 7C 03 00 40 */ cmplw r3, r0 +/* 803A1400 0039E360 41 80 FF E8 */ blt lbl_803A13E8 +lbl_803A1404: +/* 803A1404 0039E364 7C 07 30 00 */ cmpw r7, r6 +/* 803A1408 0039E368 40 80 01 40 */ bge lbl_803A1548 +/* 803A140C 0039E36C 3C 60 80 55 */ lis r3, lbl_805540F8@ha +/* 803A1410 0039E370 54 FD 18 38 */ slwi r29, r7, 3 +/* 803A1414 0039E374 38 83 40 F8 */ addi r4, r3, lbl_805540F8@l +/* 803A1418 0039E378 57 C5 04 3E */ clrlwi r5, r30, 0x10 +/* 803A141C 0039E37C 7C 64 EA 14 */ add r3, r4, r29 +/* 803A1420 0039E380 A0 03 00 04 */ lhz r0, 4(r3) +/* 803A1424 0039E384 7C 05 00 40 */ cmplw r5, r0 +/* 803A1428 0039E388 41 82 00 FC */ beq lbl_803A1524 +/* 803A142C 0039E38C 28 06 08 00 */ cmplwi r6, 0x800 +/* 803A1430 0039E390 40 80 00 E8 */ bge lbl_803A1518 +/* 803A1434 0039E394 38 66 FF FF */ addi r3, r6, -1 +/* 803A1438 0039E398 7C 03 38 00 */ cmpw r3, r7 +/* 803A143C 0039E39C 54 60 18 38 */ slwi r0, r3, 3 +/* 803A1440 0039E3A0 38 63 00 01 */ addi r3, r3, 1 +/* 803A1444 0039E3A4 7C A4 02 14 */ add r5, r4, r0 +/* 803A1448 0039E3A8 7C 67 18 50 */ subf r3, r7, r3 +/* 803A144C 0039E3AC 41 80 00 BC */ blt lbl_803A1508 +/* 803A1450 0039E3B0 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803A1454 0039E3B4 7C 09 03 A6 */ mtctr r0 +/* 803A1458 0039E3B8 41 82 00 94 */ beq lbl_803A14EC +lbl_803A145C: +/* 803A145C 0039E3BC 80 85 00 00 */ lwz r4, 0(r5) +/* 803A1460 0039E3C0 80 05 00 04 */ lwz r0, 4(r5) +/* 803A1464 0039E3C4 90 85 00 08 */ stw r4, 8(r5) +/* 803A1468 0039E3C8 90 05 00 0C */ stw r0, 0xc(r5) +/* 803A146C 0039E3CC 80 85 FF F8 */ lwz r4, -8(r5) +/* 803A1470 0039E3D0 80 05 FF FC */ lwz r0, -4(r5) +/* 803A1474 0039E3D4 90 85 00 00 */ stw r4, 0(r5) +/* 803A1478 0039E3D8 90 05 00 04 */ stw r0, 4(r5) +/* 803A147C 0039E3DC 80 85 FF F0 */ lwz r4, -0x10(r5) +/* 803A1480 0039E3E0 80 05 FF F4 */ lwz r0, -0xc(r5) +/* 803A1484 0039E3E4 90 85 FF F8 */ stw r4, -8(r5) +/* 803A1488 0039E3E8 90 05 FF FC */ stw r0, -4(r5) +/* 803A148C 0039E3EC 80 85 FF E8 */ lwz r4, -0x18(r5) +/* 803A1490 0039E3F0 80 05 FF EC */ lwz r0, -0x14(r5) +/* 803A1494 0039E3F4 90 85 FF F0 */ stw r4, -0x10(r5) +/* 803A1498 0039E3F8 90 05 FF F4 */ stw r0, -0xc(r5) +/* 803A149C 0039E3FC 80 85 FF E0 */ lwz r4, -0x20(r5) +/* 803A14A0 0039E400 80 05 FF E4 */ lwz r0, -0x1c(r5) +/* 803A14A4 0039E404 90 85 FF E8 */ stw r4, -0x18(r5) +/* 803A14A8 0039E408 90 05 FF EC */ stw r0, -0x14(r5) +/* 803A14AC 0039E40C 80 85 FF D8 */ lwz r4, -0x28(r5) +/* 803A14B0 0039E410 80 05 FF DC */ lwz r0, -0x24(r5) +/* 803A14B4 0039E414 90 85 FF E0 */ stw r4, -0x20(r5) +/* 803A14B8 0039E418 90 05 FF E4 */ stw r0, -0x1c(r5) +/* 803A14BC 0039E41C 80 85 FF D0 */ lwz r4, -0x30(r5) +/* 803A14C0 0039E420 80 05 FF D4 */ lwz r0, -0x2c(r5) +/* 803A14C4 0039E424 90 85 FF D8 */ stw r4, -0x28(r5) +/* 803A14C8 0039E428 90 05 FF DC */ stw r0, -0x24(r5) +/* 803A14CC 0039E42C 80 85 FF C8 */ lwz r4, -0x38(r5) +/* 803A14D0 0039E430 80 05 FF CC */ lwz r0, -0x34(r5) +/* 803A14D4 0039E434 90 85 FF D0 */ stw r4, -0x30(r5) +/* 803A14D8 0039E438 90 05 FF D4 */ stw r0, -0x2c(r5) +/* 803A14DC 0039E43C 38 A5 FF C0 */ addi r5, r5, -64 +/* 803A14E0 0039E440 42 00 FF 7C */ bdnz lbl_803A145C +/* 803A14E4 0039E444 70 63 00 07 */ andi. r3, r3, 7 +/* 803A14E8 0039E448 41 82 00 20 */ beq lbl_803A1508 +lbl_803A14EC: +/* 803A14EC 0039E44C 7C 69 03 A6 */ mtctr r3 +lbl_803A14F0: +/* 803A14F0 0039E450 80 85 00 00 */ lwz r4, 0(r5) +/* 803A14F4 0039E454 80 05 00 04 */ lwz r0, 4(r5) +/* 803A14F8 0039E458 90 85 00 08 */ stw r4, 8(r5) +/* 803A14FC 0039E45C 90 05 00 0C */ stw r0, 0xc(r5) +/* 803A1500 0039E460 38 A5 FF F8 */ addi r5, r5, -8 +/* 803A1504 0039E464 42 00 FF EC */ bdnz lbl_803A14F0 +lbl_803A1508: +/* 803A1508 0039E468 A0 6D AE D8 */ lhz r3, lbl_805A9A98@sda21(r13) +/* 803A150C 0039E46C 38 03 00 01 */ addi r0, r3, 1 +/* 803A1510 0039E470 B0 0D AE D8 */ sth r0, lbl_805A9A98@sda21(r13) +/* 803A1514 0039E474 48 00 00 58 */ b lbl_803A156C +lbl_803A1518: +/* 803A1518 0039E478 48 01 3B 6D */ bl hwEnableIrq +/* 803A151C 0039E47C 38 60 00 00 */ li r3, 0 +/* 803A1520 0039E480 48 00 00 74 */ b lbl_803A1594 +lbl_803A1524: +/* 803A1524 0039E484 48 01 3B 61 */ bl hwEnableIrq +/* 803A1528 0039E488 3C 80 80 55 */ lis r4, lbl_805540F8@ha +/* 803A152C 0039E48C 38 60 00 00 */ li r3, 0 +/* 803A1530 0039E490 38 04 40 F8 */ addi r0, r4, lbl_805540F8@l +/* 803A1534 0039E494 7C A0 EA 14 */ add r5, r0, r29 +/* 803A1538 0039E498 A0 85 00 06 */ lhz r4, 6(r5) +/* 803A153C 0039E49C 38 04 00 01 */ addi r0, r4, 1 +/* 803A1540 0039E4A0 B0 05 00 06 */ sth r0, 6(r5) +/* 803A1544 0039E4A4 48 00 00 50 */ b lbl_803A1594 +lbl_803A1548: +/* 803A1548 0039E4A8 28 06 08 00 */ cmplwi r6, 0x800 +/* 803A154C 0039E4AC 40 80 00 14 */ bge lbl_803A1560 +/* 803A1550 0039E4B0 A0 6D AE D8 */ lhz r3, lbl_805A9A98@sda21(r13) +/* 803A1554 0039E4B4 38 03 00 01 */ addi r0, r3, 1 +/* 803A1558 0039E4B8 B0 0D AE D8 */ sth r0, lbl_805A9A98@sda21(r13) +/* 803A155C 0039E4BC 48 00 00 10 */ b lbl_803A156C +lbl_803A1560: +/* 803A1560 0039E4C0 48 01 3B 25 */ bl hwEnableIrq +/* 803A1564 0039E4C4 38 60 00 00 */ li r3, 0 +/* 803A1568 0039E4C8 48 00 00 2C */ b lbl_803A1594 +lbl_803A156C: +/* 803A156C 0039E4CC 3C 60 80 55 */ lis r3, lbl_805540F8@ha +/* 803A1570 0039E4D0 54 E5 18 38 */ slwi r5, r7, 3 +/* 803A1574 0039E4D4 38 83 40 F8 */ addi r4, r3, lbl_805540F8@l +/* 803A1578 0039E4D8 38 00 00 01 */ li r0, 1 +/* 803A157C 0039E4DC 7C 64 2A 14 */ add r3, r4, r5 +/* 803A1580 0039E4E0 B3 C3 00 04 */ sth r30, 4(r3) +/* 803A1584 0039E4E4 7F E4 29 2E */ stwx r31, r4, r5 +/* 803A1588 0039E4E8 B0 03 00 06 */ sth r0, 6(r3) +/* 803A158C 0039E4EC 48 01 3A F9 */ bl hwEnableIrq +/* 803A1590 0039E4F0 38 60 00 01 */ li r3, 1 +lbl_803A1594: +/* 803A1594 0039E4F4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A1598 0039E4F8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A159C 0039E4FC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A15A0 0039E500 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A15A4 0039E504 7C 08 03 A6 */ mtlr r0 +/* 803A15A8 0039E508 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A15AC 0039E50C 4E 80 00 20 */ blr + +.global dataRemoveKeymap +dataRemoveKeymap: +/* 803A15B0 0039E510 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A15B4 0039E514 7C 08 02 A6 */ mflr r0 +/* 803A15B8 0039E518 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A15BC 0039E51C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A15C0 0039E520 7C 7F 1B 78 */ mr r31, r3 +/* 803A15C4 0039E524 48 01 3A F9 */ bl hwDisableIrq +/* 803A15C8 0039E528 3C 60 80 55 */ lis r3, lbl_805540F8@ha +/* 803A15CC 0039E52C A0 CD AE D8 */ lhz r6, lbl_805A9A98@sda21(r13) +/* 803A15D0 0039E530 38 83 40 F8 */ addi r4, r3, lbl_805540F8@l +/* 803A15D4 0039E534 38 E0 00 00 */ li r7, 0 +/* 803A15D8 0039E538 57 E3 04 3E */ clrlwi r3, r31, 0x10 +/* 803A15DC 0039E53C 48 00 00 0C */ b lbl_803A15E8 +lbl_803A15E0: +/* 803A15E0 0039E540 38 84 00 08 */ addi r4, r4, 8 +/* 803A15E4 0039E544 38 E7 00 01 */ addi r7, r7, 1 +lbl_803A15E8: +/* 803A15E8 0039E548 7C 07 30 00 */ cmpw r7, r6 +/* 803A15EC 0039E54C 40 80 00 10 */ bge lbl_803A15FC +/* 803A15F0 0039E550 A0 04 00 04 */ lhz r0, 4(r4) +/* 803A15F4 0039E554 7C 03 00 40 */ cmplw r3, r0 +/* 803A15F8 0039E558 40 82 FF E8 */ bne lbl_803A15E0 +lbl_803A15FC: +/* 803A15FC 0039E55C 7C 07 30 00 */ cmpw r7, r6 +/* 803A1600 0039E560 41 82 01 10 */ beq lbl_803A1710 +/* 803A1604 0039E564 3C 60 80 55 */ lis r3, lbl_805540F8@ha +/* 803A1608 0039E568 54 E0 18 38 */ slwi r0, r7, 3 +/* 803A160C 0039E56C 38 A3 40 F8 */ addi r5, r3, lbl_805540F8@l +/* 803A1610 0039E570 7C 85 02 14 */ add r4, r5, r0 +/* 803A1614 0039E574 A0 64 00 06 */ lhz r3, 6(r4) +/* 803A1618 0039E578 38 63 FF FF */ addi r3, r3, -1 +/* 803A161C 0039E57C 54 60 04 3F */ clrlwi. r0, r3, 0x10 +/* 803A1620 0039E580 B0 64 00 06 */ sth r3, 6(r4) +/* 803A1624 0039E584 40 82 00 EC */ bne lbl_803A1710 +/* 803A1628 0039E588 38 67 00 01 */ addi r3, r7, 1 +/* 803A162C 0039E58C 7C 03 30 00 */ cmpw r3, r6 +/* 803A1630 0039E590 54 60 18 38 */ slwi r0, r3, 3 +/* 803A1634 0039E594 7C 63 30 50 */ subf r3, r3, r6 +/* 803A1638 0039E598 7C A5 02 14 */ add r5, r5, r0 +/* 803A163C 0039E59C 40 80 00 BC */ bge lbl_803A16F8 +/* 803A1640 0039E5A0 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803A1644 0039E5A4 7C 09 03 A6 */ mtctr r0 +/* 803A1648 0039E5A8 41 82 00 94 */ beq lbl_803A16DC +lbl_803A164C: +/* 803A164C 0039E5AC 80 85 00 00 */ lwz r4, 0(r5) +/* 803A1650 0039E5B0 80 05 00 04 */ lwz r0, 4(r5) +/* 803A1654 0039E5B4 90 85 FF F8 */ stw r4, -8(r5) +/* 803A1658 0039E5B8 90 05 FF FC */ stw r0, -4(r5) +/* 803A165C 0039E5BC 80 85 00 08 */ lwz r4, 8(r5) +/* 803A1660 0039E5C0 80 05 00 0C */ lwz r0, 0xc(r5) +/* 803A1664 0039E5C4 90 85 00 00 */ stw r4, 0(r5) +/* 803A1668 0039E5C8 90 05 00 04 */ stw r0, 4(r5) +/* 803A166C 0039E5CC 80 85 00 10 */ lwz r4, 0x10(r5) +/* 803A1670 0039E5D0 80 05 00 14 */ lwz r0, 0x14(r5) +/* 803A1674 0039E5D4 90 85 00 08 */ stw r4, 8(r5) +/* 803A1678 0039E5D8 90 05 00 0C */ stw r0, 0xc(r5) +/* 803A167C 0039E5DC 80 85 00 18 */ lwz r4, 0x18(r5) +/* 803A1680 0039E5E0 80 05 00 1C */ lwz r0, 0x1c(r5) +/* 803A1684 0039E5E4 90 85 00 10 */ stw r4, 0x10(r5) +/* 803A1688 0039E5E8 90 05 00 14 */ stw r0, 0x14(r5) +/* 803A168C 0039E5EC 80 85 00 20 */ lwz r4, 0x20(r5) +/* 803A1690 0039E5F0 80 05 00 24 */ lwz r0, 0x24(r5) +/* 803A1694 0039E5F4 90 85 00 18 */ stw r4, 0x18(r5) +/* 803A1698 0039E5F8 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803A169C 0039E5FC 80 85 00 28 */ lwz r4, 0x28(r5) +/* 803A16A0 0039E600 80 05 00 2C */ lwz r0, 0x2c(r5) +/* 803A16A4 0039E604 90 85 00 20 */ stw r4, 0x20(r5) +/* 803A16A8 0039E608 90 05 00 24 */ stw r0, 0x24(r5) +/* 803A16AC 0039E60C 80 85 00 30 */ lwz r4, 0x30(r5) +/* 803A16B0 0039E610 80 05 00 34 */ lwz r0, 0x34(r5) +/* 803A16B4 0039E614 90 85 00 28 */ stw r4, 0x28(r5) +/* 803A16B8 0039E618 90 05 00 2C */ stw r0, 0x2c(r5) +/* 803A16BC 0039E61C 80 85 00 38 */ lwz r4, 0x38(r5) +/* 803A16C0 0039E620 80 05 00 3C */ lwz r0, 0x3c(r5) +/* 803A16C4 0039E624 90 85 00 30 */ stw r4, 0x30(r5) +/* 803A16C8 0039E628 90 05 00 34 */ stw r0, 0x34(r5) +/* 803A16CC 0039E62C 38 A5 00 40 */ addi r5, r5, 0x40 +/* 803A16D0 0039E630 42 00 FF 7C */ bdnz lbl_803A164C +/* 803A16D4 0039E634 70 63 00 07 */ andi. r3, r3, 7 +/* 803A16D8 0039E638 41 82 00 20 */ beq lbl_803A16F8 +lbl_803A16DC: +/* 803A16DC 0039E63C 7C 69 03 A6 */ mtctr r3 +lbl_803A16E0: +/* 803A16E0 0039E640 80 85 00 00 */ lwz r4, 0(r5) +/* 803A16E4 0039E644 80 05 00 04 */ lwz r0, 4(r5) +/* 803A16E8 0039E648 90 85 FF F8 */ stw r4, -8(r5) +/* 803A16EC 0039E64C 90 05 FF FC */ stw r0, -4(r5) +/* 803A16F0 0039E650 38 A5 00 08 */ addi r5, r5, 8 +/* 803A16F4 0039E654 42 00 FF EC */ bdnz lbl_803A16E0 +lbl_803A16F8: +/* 803A16F8 0039E658 A0 6D AE D8 */ lhz r3, lbl_805A9A98@sda21(r13) +/* 803A16FC 0039E65C 38 03 FF FF */ addi r0, r3, -1 +/* 803A1700 0039E660 B0 0D AE D8 */ sth r0, lbl_805A9A98@sda21(r13) +/* 803A1704 0039E664 48 01 39 81 */ bl hwEnableIrq +/* 803A1708 0039E668 38 60 00 01 */ li r3, 1 +/* 803A170C 0039E66C 48 00 00 0C */ b lbl_803A1718 +lbl_803A1710: +/* 803A1710 0039E670 48 01 39 75 */ bl hwEnableIrq +/* 803A1714 0039E674 38 60 00 00 */ li r3, 0 +lbl_803A1718: +/* 803A1718 0039E678 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A171C 0039E67C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A1720 0039E680 7C 08 03 A6 */ mtlr r0 +/* 803A1724 0039E684 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A1728 0039E688 4E 80 00 20 */ blr + +.global dataInsertSDir +dataInsertSDir: +/* 803A172C 0039E68C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A1730 0039E690 7C 08 02 A6 */ mflr r0 +/* 803A1734 0039E694 3C A0 80 56 */ lis r5, lbl_805580F8@ha +/* 803A1738 0039E698 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A173C 0039E69C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A1740 0039E6A0 3B E5 80 F8 */ addi r31, r5, lbl_805580F8@l +/* 803A1744 0039E6A4 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A1748 0039E6A8 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A174C 0039E6AC 7C 9D 23 78 */ mr r29, r4 +/* 803A1750 0039E6B0 38 80 00 00 */ li r4, 0 +/* 803A1754 0039E6B4 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A1758 0039E6B8 7C 7C 1B 78 */ mr r28, r3 +/* 803A175C 0039E6BC 7F E3 FB 78 */ mr r3, r31 +/* 803A1760 0039E6C0 A0 CD AE DA */ lhz r6, lbl_805A9A9A@sda21(r13) +/* 803A1764 0039E6C4 48 00 00 0C */ b lbl_803A1770 +lbl_803A1768: +/* 803A1768 0039E6C8 38 63 00 0C */ addi r3, r3, 0xc +/* 803A176C 0039E6CC 38 84 00 01 */ addi r4, r4, 1 +lbl_803A1770: +/* 803A1770 0039E6D0 7C 04 30 00 */ cmpw r4, r6 +/* 803A1774 0039E6D4 40 80 00 10 */ bge lbl_803A1784 +/* 803A1778 0039E6D8 80 03 00 00 */ lwz r0, 0(r3) +/* 803A177C 0039E6DC 7C 00 E0 40 */ cmplw r0, r28 +/* 803A1780 0039E6E0 40 82 FF E8 */ bne lbl_803A1768 +lbl_803A1784: +/* 803A1784 0039E6E4 7C 04 30 00 */ cmpw r4, r6 +/* 803A1788 0039E6E8 40 82 01 08 */ bne lbl_803A1890 +/* 803A178C 0039E6EC 28 06 00 80 */ cmplwi r6, 0x80 +/* 803A1790 0039E6F0 40 80 00 F8 */ bge lbl_803A1888 +/* 803A1794 0039E6F4 7F 83 E3 78 */ mr r3, r28 +/* 803A1798 0039E6F8 3B C0 00 00 */ li r30, 0 +/* 803A179C 0039E6FC 48 00 00 0C */ b lbl_803A17A8 +lbl_803A17A0: +/* 803A17A0 0039E700 3B DE 00 01 */ addi r30, r30, 1 +/* 803A17A4 0039E704 38 63 00 20 */ addi r3, r3, 0x20 +lbl_803A17A8: +/* 803A17A8 0039E708 A0 03 00 00 */ lhz r0, 0(r3) +/* 803A17AC 0039E70C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A17B0 0039E710 40 82 FF F0 */ bne lbl_803A17A0 +/* 803A17B4 0039E714 48 01 39 09 */ bl hwDisableIrq +/* 803A17B8 0039E718 57 C0 04 3E */ clrlwi r0, r30, 0x10 +/* 803A17BC 0039E71C 39 60 00 00 */ li r11, 0 +/* 803A17C0 0039E720 48 00 00 88 */ b lbl_803A1848 +lbl_803A17C4: +/* 803A17C4 0039E724 A1 0D AE DA */ lhz r8, lbl_805A9A9A@sda21(r13) +/* 803A17C8 0039E728 55 63 2A F4 */ rlwinm r3, r11, 5, 0xb, 0x1a +/* 803A17CC 0039E72C 7F E7 FB 78 */ mr r7, r31 +/* 803A17D0 0039E730 39 40 00 00 */ li r10, 0 +/* 803A17D4 0039E734 7D 3C 1A 14 */ add r9, r28, r3 +/* 803A17D8 0039E738 7D 09 03 A6 */ mtctr r8 +/* 803A17DC 0039E73C 2C 08 00 00 */ cmpwi r8, 0 +/* 803A17E0 0039E740 40 81 00 44 */ ble lbl_803A1824 +lbl_803A17E4: +/* 803A17E4 0039E744 A0 C7 00 08 */ lhz r6, 8(r7) +/* 803A17E8 0039E748 39 80 00 00 */ li r12, 0 +/* 803A17EC 0039E74C 48 00 00 20 */ b lbl_803A180C +lbl_803A17F0: +/* 803A17F0 0039E750 80 87 00 00 */ lwz r4, 0(r7) +/* 803A17F4 0039E754 55 83 2A F4 */ rlwinm r3, r12, 5, 0xb, 0x1a +/* 803A17F8 0039E758 A0 A9 00 00 */ lhz r5, 0(r9) +/* 803A17FC 0039E75C 7C 64 1A 2E */ lhzx r3, r4, r3 +/* 803A1800 0039E760 7C 05 18 40 */ cmplw r5, r3 +/* 803A1804 0039E764 41 82 00 20 */ beq lbl_803A1824 +/* 803A1808 0039E768 39 8C 00 01 */ addi r12, r12, 1 +lbl_803A180C: +/* 803A180C 0039E76C 55 83 04 3E */ clrlwi r3, r12, 0x10 +/* 803A1810 0039E770 7C 03 30 40 */ cmplw r3, r6 +/* 803A1814 0039E774 41 80 FF DC */ blt lbl_803A17F0 +/* 803A1818 0039E778 38 E7 00 0C */ addi r7, r7, 0xc +/* 803A181C 0039E77C 39 4A 00 01 */ addi r10, r10, 1 +/* 803A1820 0039E780 42 00 FF C4 */ bdnz lbl_803A17E4 +lbl_803A1824: +/* 803A1824 0039E784 7C 0A 40 00 */ cmpw r10, r8 +/* 803A1828 0039E788 41 82 00 14 */ beq lbl_803A183C +/* 803A182C 0039E78C 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 803A1830 0039E790 38 63 FF FF */ addi r3, r3, 0x0000FFFF@l +/* 803A1834 0039E794 B0 69 00 02 */ sth r3, 2(r9) +/* 803A1838 0039E798 48 00 00 0C */ b lbl_803A1844 +lbl_803A183C: +/* 803A183C 0039E79C 38 60 00 00 */ li r3, 0 +/* 803A1840 0039E7A0 B0 69 00 02 */ sth r3, 2(r9) +lbl_803A1844: +/* 803A1844 0039E7A4 39 6B 00 01 */ addi r11, r11, 1 +lbl_803A1848: +/* 803A1848 0039E7A8 55 63 04 3E */ clrlwi r3, r11, 0x10 +/* 803A184C 0039E7AC 7C 03 00 40 */ cmplw r3, r0 +/* 803A1850 0039E7B0 41 80 FF 74 */ blt lbl_803A17C4 +/* 803A1854 0039E7B4 A0 8D AE DA */ lhz r4, lbl_805A9A9A@sda21(r13) +/* 803A1858 0039E7B8 3C 60 80 56 */ lis r3, lbl_805580F8@ha +/* 803A185C 0039E7BC 38 63 80 F8 */ addi r3, r3, lbl_805580F8@l +/* 803A1860 0039E7C0 1C A4 00 0C */ mulli r5, r4, 0xc +/* 803A1864 0039E7C4 38 04 00 01 */ addi r0, r4, 1 +/* 803A1868 0039E7C8 B0 0D AE DA */ sth r0, lbl_805A9A9A@sda21(r13) +/* 803A186C 0039E7CC 7F 83 29 2E */ stwx r28, r3, r5 +/* 803A1870 0039E7D0 7C 63 2A 14 */ add r3, r3, r5 +/* 803A1874 0039E7D4 B3 C3 00 08 */ sth r30, 8(r3) +/* 803A1878 0039E7D8 93 A3 00 04 */ stw r29, 4(r3) +/* 803A187C 0039E7DC 48 01 38 09 */ bl hwEnableIrq +/* 803A1880 0039E7E0 38 60 00 01 */ li r3, 1 +/* 803A1884 0039E7E4 48 00 00 10 */ b lbl_803A1894 +lbl_803A1888: +/* 803A1888 0039E7E8 38 60 00 00 */ li r3, 0 +/* 803A188C 0039E7EC 48 00 00 08 */ b lbl_803A1894 +lbl_803A1890: +/* 803A1890 0039E7F0 38 60 00 01 */ li r3, 1 +lbl_803A1894: +/* 803A1894 0039E7F4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A1898 0039E7F8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A189C 0039E7FC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A18A0 0039E800 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A18A4 0039E804 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A18A8 0039E808 7C 08 03 A6 */ mtlr r0 +/* 803A18AC 0039E80C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A18B0 0039E810 4E 80 00 20 */ blr + +.global sub_803a18b4 +sub_803a18b4: +/* 803A18B4 0039E814 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A18B8 0039E818 7C 08 02 A6 */ mflr r0 +/* 803A18BC 0039E81C 3C 80 80 56 */ lis r4, lbl_805580F8@ha +/* 803A18C0 0039E820 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A18C4 0039E824 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A18C8 0039E828 3B E4 80 F8 */ addi r31, r4, lbl_805580F8@l +/* 803A18CC 0039E82C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A18D0 0039E830 3B C0 00 00 */ li r30, 0 +/* 803A18D4 0039E834 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A18D8 0039E838 7C 7D 1B 78 */ mr r29, r3 +/* 803A18DC 0039E83C 7F E3 FB 78 */ mr r3, r31 +/* 803A18E0 0039E840 A0 AD AE DA */ lhz r5, lbl_805A9A9A@sda21(r13) +/* 803A18E4 0039E844 48 00 00 0C */ b lbl_803A18F0 +lbl_803A18E8: +/* 803A18E8 0039E848 38 63 00 0C */ addi r3, r3, 0xc +/* 803A18EC 0039E84C 3B DE 00 01 */ addi r30, r30, 1 +lbl_803A18F0: +/* 803A18F0 0039E850 7C 1E 28 00 */ cmpw r30, r5 +/* 803A18F4 0039E854 40 80 00 10 */ bge lbl_803A1904 +/* 803A18F8 0039E858 80 03 00 00 */ lwz r0, 0(r3) +/* 803A18FC 0039E85C 7C 00 E8 40 */ cmplw r0, r29 +/* 803A1900 0039E860 40 82 FF E8 */ bne lbl_803A18E8 +lbl_803A1904: +/* 803A1904 0039E864 7C 1E 28 00 */ cmpw r30, r5 +/* 803A1908 0039E868 41 82 02 54 */ beq lbl_803A1B5C +/* 803A190C 0039E86C 48 01 37 B1 */ bl hwDisableIrq +/* 803A1910 0039E870 7F A4 EB 78 */ mr r4, r29 +/* 803A1914 0039E874 48 00 00 1C */ b lbl_803A1930 +lbl_803A1918: +/* 803A1918 0039E878 A0 04 00 02 */ lhz r0, 2(r4) +/* 803A191C 0039E87C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A1920 0039E880 41 82 00 0C */ beq lbl_803A192C +/* 803A1924 0039E884 28 00 00 00 */ cmplwi r0, 0 +/* 803A1928 0039E888 40 82 00 14 */ bne lbl_803A193C +lbl_803A192C: +/* 803A192C 0039E88C 38 84 00 20 */ addi r4, r4, 0x20 +lbl_803A1930: +/* 803A1930 0039E890 A0 64 00 00 */ lhz r3, 0(r4) +/* 803A1934 0039E894 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A1938 0039E898 40 82 FF E0 */ bne lbl_803A1918 +lbl_803A193C: +/* 803A193C 0039E89C 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A1940 0039E8A0 40 82 02 18 */ bne lbl_803A1B58 +/* 803A1944 0039E8A4 7F A8 EB 78 */ mr r8, r29 +/* 803A1948 0039E8A8 48 00 00 A8 */ b lbl_803A19F0 +lbl_803A194C: +/* 803A194C 0039E8AC A0 08 00 02 */ lhz r0, 2(r8) +/* 803A1950 0039E8B0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A1954 0039E8B4 41 82 00 98 */ beq lbl_803A19EC +/* 803A1958 0039E8B8 7F E5 FB 78 */ mr r5, r31 +/* 803A195C 0039E8BC 39 20 00 00 */ li r9, 0 +/* 803A1960 0039E8C0 48 00 00 80 */ b lbl_803A19E0 +lbl_803A1964: +/* 803A1964 0039E8C4 80 E5 00 00 */ lwz r7, 0(r5) +/* 803A1968 0039E8C8 7C 07 E8 40 */ cmplw r7, r29 +/* 803A196C 0039E8CC 41 82 00 6C */ beq lbl_803A19D8 +/* 803A1970 0039E8D0 A0 05 00 08 */ lhz r0, 8(r5) +/* 803A1974 0039E8D4 39 40 00 00 */ li r10, 0 +/* 803A1978 0039E8D8 38 80 00 00 */ li r4, 0 +/* 803A197C 0039E8DC 7C 09 03 A6 */ mtctr r0 +/* 803A1980 0039E8E0 2C 00 00 00 */ cmpwi r0, 0 +/* 803A1984 0039E8E4 40 81 00 48 */ ble lbl_803A19CC +lbl_803A1988: +/* 803A1988 0039E8E8 80 05 00 00 */ lwz r0, 0(r5) +/* 803A198C 0039E8EC A0 68 00 00 */ lhz r3, 0(r8) +/* 803A1990 0039E8F0 7C C0 22 14 */ add r6, r0, r4 +/* 803A1994 0039E8F4 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A1998 0039E8F8 7C 03 00 40 */ cmplw r3, r0 +/* 803A199C 0039E8FC 40 82 00 24 */ bne lbl_803A19C0 +/* 803A19A0 0039E900 A0 06 00 02 */ lhz r0, 2(r6) +/* 803A19A4 0039E904 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A19A8 0039E908 40 82 00 18 */ bne lbl_803A19C0 +/* 803A19AC 0039E90C 55 43 28 34 */ slwi r3, r10, 5 +/* 803A19B0 0039E910 38 80 00 00 */ li r4, 0 +/* 803A19B4 0039E914 38 03 00 02 */ addi r0, r3, 2 +/* 803A19B8 0039E918 7C 87 03 2E */ sthx r4, r7, r0 +/* 803A19BC 0039E91C 48 00 00 10 */ b lbl_803A19CC +lbl_803A19C0: +/* 803A19C0 0039E920 38 84 00 20 */ addi r4, r4, 0x20 +/* 803A19C4 0039E924 39 4A 00 01 */ addi r10, r10, 1 +/* 803A19C8 0039E928 42 00 FF C0 */ bdnz lbl_803A1988 +lbl_803A19CC: +/* 803A19CC 0039E92C A0 05 00 08 */ lhz r0, 8(r5) +/* 803A19D0 0039E930 7C 0A 00 00 */ cmpw r10, r0 +/* 803A19D4 0039E934 40 82 00 18 */ bne lbl_803A19EC +lbl_803A19D8: +/* 803A19D8 0039E938 38 A5 00 0C */ addi r5, r5, 0xc +/* 803A19DC 0039E93C 39 29 00 01 */ addi r9, r9, 1 +lbl_803A19E0: +/* 803A19E0 0039E940 A0 0D AE DA */ lhz r0, lbl_805A9A9A@sda21(r13) +/* 803A19E4 0039E944 7C 09 00 00 */ cmpw r9, r0 +/* 803A19E8 0039E948 41 80 FF 7C */ blt lbl_803A1964 +lbl_803A19EC: +/* 803A19EC 0039E94C 39 08 00 20 */ addi r8, r8, 0x20 +lbl_803A19F0: +/* 803A19F0 0039E950 A0 08 00 00 */ lhz r0, 0(r8) +/* 803A19F4 0039E954 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A19F8 0039E958 40 82 FF 54 */ bne lbl_803A194C +/* 803A19FC 0039E95C 7F A4 EB 78 */ mr r4, r29 +/* 803A1A00 0039E960 38 60 00 00 */ li r3, 0 +/* 803A1A04 0039E964 48 00 00 0C */ b lbl_803A1A10 +lbl_803A1A08: +/* 803A1A08 0039E968 B0 64 00 02 */ sth r3, 2(r4) +/* 803A1A0C 0039E96C 38 84 00 20 */ addi r4, r4, 0x20 +lbl_803A1A10: +/* 803A1A10 0039E970 A0 04 00 00 */ lhz r0, 0(r4) +/* 803A1A14 0039E974 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A1A18 0039E978 40 82 FF F0 */ bne lbl_803A1A08 +/* 803A1A1C 0039E97C 38 FE 00 01 */ addi r7, r30, 1 +/* 803A1A20 0039E980 A0 CD AE DA */ lhz r6, lbl_805A9A9A@sda21(r13) +/* 803A1A24 0039E984 1C 87 00 0C */ mulli r4, r7, 0xc +/* 803A1A28 0039E988 3C 60 80 56 */ lis r3, lbl_805580F8@ha +/* 803A1A2C 0039E98C 7C 07 30 00 */ cmpw r7, r6 +/* 803A1A30 0039E990 38 03 80 F8 */ addi r0, r3, lbl_805580F8@l +/* 803A1A34 0039E994 7C A0 22 14 */ add r5, r0, r4 +/* 803A1A38 0039E998 7C 67 30 50 */ subf r3, r7, r6 +/* 803A1A3C 0039E99C 40 80 01 04 */ bge lbl_803A1B40 +/* 803A1A40 0039E9A0 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803A1A44 0039E9A4 7C 09 03 A6 */ mtctr r0 +/* 803A1A48 0039E9A8 41 82 00 D4 */ beq lbl_803A1B1C +lbl_803A1A4C: +/* 803A1A4C 0039E9AC 80 85 00 00 */ lwz r4, 0(r5) +/* 803A1A50 0039E9B0 80 05 00 04 */ lwz r0, 4(r5) +/* 803A1A54 0039E9B4 90 85 FF F4 */ stw r4, -0xc(r5) +/* 803A1A58 0039E9B8 90 05 FF F8 */ stw r0, -8(r5) +/* 803A1A5C 0039E9BC 80 05 00 08 */ lwz r0, 8(r5) +/* 803A1A60 0039E9C0 90 05 FF FC */ stw r0, -4(r5) +/* 803A1A64 0039E9C4 80 85 00 0C */ lwz r4, 0xc(r5) +/* 803A1A68 0039E9C8 80 05 00 10 */ lwz r0, 0x10(r5) +/* 803A1A6C 0039E9CC 90 85 00 00 */ stw r4, 0(r5) +/* 803A1A70 0039E9D0 90 05 00 04 */ stw r0, 4(r5) +/* 803A1A74 0039E9D4 80 05 00 14 */ lwz r0, 0x14(r5) +/* 803A1A78 0039E9D8 90 05 00 08 */ stw r0, 8(r5) +/* 803A1A7C 0039E9DC 80 85 00 18 */ lwz r4, 0x18(r5) +/* 803A1A80 0039E9E0 80 05 00 1C */ lwz r0, 0x1c(r5) +/* 803A1A84 0039E9E4 90 85 00 0C */ stw r4, 0xc(r5) +/* 803A1A88 0039E9E8 90 05 00 10 */ stw r0, 0x10(r5) +/* 803A1A8C 0039E9EC 80 05 00 20 */ lwz r0, 0x20(r5) +/* 803A1A90 0039E9F0 90 05 00 14 */ stw r0, 0x14(r5) +/* 803A1A94 0039E9F4 80 85 00 24 */ lwz r4, 0x24(r5) +/* 803A1A98 0039E9F8 80 05 00 28 */ lwz r0, 0x28(r5) +/* 803A1A9C 0039E9FC 90 85 00 18 */ stw r4, 0x18(r5) +/* 803A1AA0 0039EA00 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803A1AA4 0039EA04 80 05 00 2C */ lwz r0, 0x2c(r5) +/* 803A1AA8 0039EA08 90 05 00 20 */ stw r0, 0x20(r5) +/* 803A1AAC 0039EA0C 80 85 00 30 */ lwz r4, 0x30(r5) +/* 803A1AB0 0039EA10 80 05 00 34 */ lwz r0, 0x34(r5) +/* 803A1AB4 0039EA14 90 85 00 24 */ stw r4, 0x24(r5) +/* 803A1AB8 0039EA18 90 05 00 28 */ stw r0, 0x28(r5) +/* 803A1ABC 0039EA1C 80 05 00 38 */ lwz r0, 0x38(r5) +/* 803A1AC0 0039EA20 90 05 00 2C */ stw r0, 0x2c(r5) +/* 803A1AC4 0039EA24 80 85 00 3C */ lwz r4, 0x3c(r5) +/* 803A1AC8 0039EA28 80 05 00 40 */ lwz r0, 0x40(r5) +/* 803A1ACC 0039EA2C 90 85 00 30 */ stw r4, 0x30(r5) +/* 803A1AD0 0039EA30 90 05 00 34 */ stw r0, 0x34(r5) +/* 803A1AD4 0039EA34 80 05 00 44 */ lwz r0, 0x44(r5) +/* 803A1AD8 0039EA38 90 05 00 38 */ stw r0, 0x38(r5) +/* 803A1ADC 0039EA3C 80 85 00 48 */ lwz r4, 0x48(r5) +/* 803A1AE0 0039EA40 80 05 00 4C */ lwz r0, 0x4c(r5) +/* 803A1AE4 0039EA44 90 85 00 3C */ stw r4, 0x3c(r5) +/* 803A1AE8 0039EA48 90 05 00 40 */ stw r0, 0x40(r5) +/* 803A1AEC 0039EA4C 80 05 00 50 */ lwz r0, 0x50(r5) +/* 803A1AF0 0039EA50 90 05 00 44 */ stw r0, 0x44(r5) +/* 803A1AF4 0039EA54 80 85 00 54 */ lwz r4, 0x54(r5) +/* 803A1AF8 0039EA58 80 05 00 58 */ lwz r0, 0x58(r5) +/* 803A1AFC 0039EA5C 90 85 00 48 */ stw r4, 0x48(r5) +/* 803A1B00 0039EA60 90 05 00 4C */ stw r0, 0x4c(r5) +/* 803A1B04 0039EA64 80 05 00 5C */ lwz r0, 0x5c(r5) +/* 803A1B08 0039EA68 90 05 00 50 */ stw r0, 0x50(r5) +/* 803A1B0C 0039EA6C 38 A5 00 60 */ addi r5, r5, 0x60 +/* 803A1B10 0039EA70 42 00 FF 3C */ bdnz lbl_803A1A4C +/* 803A1B14 0039EA74 70 63 00 07 */ andi. r3, r3, 7 +/* 803A1B18 0039EA78 41 82 00 28 */ beq lbl_803A1B40 +lbl_803A1B1C: +/* 803A1B1C 0039EA7C 7C 69 03 A6 */ mtctr r3 +lbl_803A1B20: +/* 803A1B20 0039EA80 80 85 00 00 */ lwz r4, 0(r5) +/* 803A1B24 0039EA84 80 05 00 04 */ lwz r0, 4(r5) +/* 803A1B28 0039EA88 90 85 FF F4 */ stw r4, -0xc(r5) +/* 803A1B2C 0039EA8C 90 05 FF F8 */ stw r0, -8(r5) +/* 803A1B30 0039EA90 80 05 00 08 */ lwz r0, 8(r5) +/* 803A1B34 0039EA94 90 05 FF FC */ stw r0, -4(r5) +/* 803A1B38 0039EA98 38 A5 00 0C */ addi r5, r5, 0xc +/* 803A1B3C 0039EA9C 42 00 FF E4 */ bdnz lbl_803A1B20 +lbl_803A1B40: +/* 803A1B40 0039EAA0 A0 6D AE DA */ lhz r3, lbl_805A9A9A@sda21(r13) +/* 803A1B44 0039EAA4 38 03 FF FF */ addi r0, r3, -1 +/* 803A1B48 0039EAA8 B0 0D AE DA */ sth r0, lbl_805A9A9A@sda21(r13) +/* 803A1B4C 0039EAAC 48 01 35 39 */ bl hwEnableIrq +/* 803A1B50 0039EAB0 38 60 00 01 */ li r3, 1 +/* 803A1B54 0039EAB4 48 00 00 0C */ b lbl_803A1B60 +lbl_803A1B58: +/* 803A1B58 0039EAB8 48 01 35 2D */ bl hwEnableIrq +lbl_803A1B5C: +/* 803A1B5C 0039EABC 38 60 00 00 */ li r3, 0 +lbl_803A1B60: +/* 803A1B60 0039EAC0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A1B64 0039EAC4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A1B68 0039EAC8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A1B6C 0039EACC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A1B70 0039EAD0 7C 08 03 A6 */ mtlr r0 +/* 803A1B74 0039EAD4 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A1B78 0039EAD8 4E 80 00 20 */ blr + +.global sub_803a1b7c +sub_803a1b7c: +/* 803A1B7C 0039EADC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A1B80 0039EAE0 7C 08 02 A6 */ mflr r0 +/* 803A1B84 0039EAE4 3C 80 80 56 */ lis r4, lbl_805580F8@ha +/* 803A1B88 0039EAE8 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A1B8C 0039EAEC 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A1B90 0039EAF0 38 84 80 F8 */ addi r4, r4, lbl_805580F8@l +/* 803A1B94 0039EAF4 38 A0 00 00 */ li r5, 0 +/* 803A1B98 0039EAF8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A1B9C 0039EAFC 3B E0 00 00 */ li r31, 0 +/* 803A1BA0 0039EB00 A0 0D AE DA */ lhz r0, lbl_805A9A9A@sda21(r13) +/* 803A1BA4 0039EB04 7C 09 03 A6 */ mtctr r0 +/* 803A1BA8 0039EB08 28 00 00 00 */ cmplwi r0, 0 +/* 803A1BAC 0039EB0C 40 81 00 44 */ ble lbl_803A1BF0 +lbl_803A1BB0: +/* 803A1BB0 0039EB10 80 C4 00 00 */ lwz r6, 0(r4) +/* 803A1BB4 0039EB14 48 00 00 24 */ b lbl_803A1BD8 +lbl_803A1BB8: +/* 803A1BB8 0039EB18 7C 00 18 40 */ cmplw r0, r3 +/* 803A1BBC 0039EB1C 40 82 00 18 */ bne lbl_803A1BD4 +/* 803A1BC0 0039EB20 A0 06 00 02 */ lhz r0, 2(r6) +/* 803A1BC4 0039EB24 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A1BC8 0039EB28 41 82 00 0C */ beq lbl_803A1BD4 +/* 803A1BCC 0039EB2C 7C DF 33 78 */ mr r31, r6 +/* 803A1BD0 0039EB30 48 00 00 20 */ b lbl_803A1BF0 +lbl_803A1BD4: +/* 803A1BD4 0039EB34 38 C6 00 20 */ addi r6, r6, 0x20 +lbl_803A1BD8: +/* 803A1BD8 0039EB38 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A1BDC 0039EB3C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A1BE0 0039EB40 40 82 FF D8 */ bne lbl_803A1BB8 +/* 803A1BE4 0039EB44 38 84 00 0C */ addi r4, r4, 0xc +/* 803A1BE8 0039EB48 38 A5 00 01 */ addi r5, r5, 1 +/* 803A1BEC 0039EB4C 42 00 FF C4 */ bdnz lbl_803A1BB0 +lbl_803A1BF0: +/* 803A1BF0 0039EB50 A0 1F 00 02 */ lhz r0, 2(r31) +/* 803A1BF4 0039EB54 28 00 00 00 */ cmplwi r0, 0 +/* 803A1BF8 0039EB58 40 82 00 38 */ bne lbl_803A1C30 +/* 803A1BFC 0039EB5C 1C 65 00 0C */ mulli r3, r5, 0xc +/* 803A1C00 0039EB60 3C 80 80 56 */ lis r4, lbl_805580F8@ha +/* 803A1C04 0039EB64 80 DF 00 04 */ lwz r6, 4(r31) +/* 803A1C08 0039EB68 38 1F 00 0C */ addi r0, r31, 0xc +/* 803A1C0C 0039EB6C 38 84 80 F8 */ addi r4, r4, lbl_805580F8@l +/* 803A1C10 0039EB70 7C 64 1A 14 */ add r3, r4, r3 +/* 803A1C14 0039EB74 80 A3 00 04 */ lwz r5, 4(r3) +/* 803A1C18 0039EB78 38 61 00 08 */ addi r3, r1, 8 +/* 803A1C1C 0039EB7C 38 9F 00 08 */ addi r4, r31, 8 +/* 803A1C20 0039EB80 7C A6 2A 14 */ add r5, r6, r5 +/* 803A1C24 0039EB84 90 BF 00 08 */ stw r5, 8(r31) +/* 803A1C28 0039EB88 90 01 00 08 */ stw r0, 8(r1) +/* 803A1C2C 0039EB8C 48 01 21 81 */ bl sub_803b3dac +lbl_803A1C30: +/* 803A1C30 0039EB90 A0 9F 00 02 */ lhz r4, 2(r31) +/* 803A1C34 0039EB94 38 60 00 01 */ li r3, 1 +/* 803A1C38 0039EB98 38 04 00 01 */ addi r0, r4, 1 +/* 803A1C3C 0039EB9C B0 1F 00 02 */ sth r0, 2(r31) +/* 803A1C40 0039EBA0 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A1C44 0039EBA4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A1C48 0039EBA8 7C 08 03 A6 */ mtlr r0 +/* 803A1C4C 0039EBAC 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A1C50 0039EBB0 4E 80 00 20 */ blr + +.global sub_803a1c54 +sub_803a1c54: +/* 803A1C54 0039EBB4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A1C58 0039EBB8 7C 08 02 A6 */ mflr r0 +/* 803A1C5C 0039EBBC 3C 80 80 56 */ lis r4, lbl_805580F8@ha +/* 803A1C60 0039EBC0 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A1C64 0039EBC4 38 84 80 F8 */ addi r4, r4, lbl_805580F8@l +/* 803A1C68 0039EBC8 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803A1C6C 0039EBCC A0 AD AE DA */ lhz r5, lbl_805A9A9A@sda21(r13) +/* 803A1C70 0039EBD0 7C A9 03 A6 */ mtctr r5 +/* 803A1C74 0039EBD4 28 05 00 00 */ cmplwi r5, 0 +/* 803A1C78 0039EBD8 40 81 00 60 */ ble lbl_803A1CD8 +lbl_803A1C7C: +/* 803A1C7C 0039EBDC 80 A4 00 00 */ lwz r5, 0(r4) +/* 803A1C80 0039EBE0 48 00 00 44 */ b lbl_803A1CC4 +lbl_803A1C84: +/* 803A1C84 0039EBE4 7C 03 00 40 */ cmplw r3, r0 +/* 803A1C88 0039EBE8 40 82 00 38 */ bne lbl_803A1CC0 +/* 803A1C8C 0039EBEC A0 65 00 02 */ lhz r3, 2(r5) +/* 803A1C90 0039EBF0 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A1C94 0039EBF4 41 82 00 2C */ beq lbl_803A1CC0 +/* 803A1C98 0039EBF8 38 03 FF FF */ addi r0, r3, -1 +/* 803A1C9C 0039EBFC B0 05 00 02 */ sth r0, 2(r5) +/* 803A1CA0 0039EC00 A0 05 00 02 */ lhz r0, 2(r5) +/* 803A1CA4 0039EC04 28 00 00 00 */ cmplwi r0, 0 +/* 803A1CA8 0039EC08 40 82 00 10 */ bne lbl_803A1CB8 +/* 803A1CAC 0039EC0C 80 85 00 08 */ lwz r4, 8(r5) +/* 803A1CB0 0039EC10 38 65 00 0C */ addi r3, r5, 0xc +/* 803A1CB4 0039EC14 48 01 21 AD */ bl sub_803b3e60 +lbl_803A1CB8: +/* 803A1CB8 0039EC18 38 60 00 01 */ li r3, 1 +/* 803A1CBC 0039EC1C 48 00 00 20 */ b lbl_803A1CDC +lbl_803A1CC0: +/* 803A1CC0 0039EC20 38 A5 00 20 */ addi r5, r5, 0x20 +lbl_803A1CC4: +/* 803A1CC4 0039EC24 A0 65 00 00 */ lhz r3, 0(r5) +/* 803A1CC8 0039EC28 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A1CCC 0039EC2C 40 82 FF B8 */ bne lbl_803A1C84 +/* 803A1CD0 0039EC30 38 84 00 0C */ addi r4, r4, 0xc +/* 803A1CD4 0039EC34 42 00 FF A8 */ bdnz lbl_803A1C7C +lbl_803A1CD8: +/* 803A1CD8 0039EC38 38 60 00 00 */ li r3, 0 +lbl_803A1CDC: +/* 803A1CDC 0039EC3C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A1CE0 0039EC40 7C 08 03 A6 */ mtlr r0 +/* 803A1CE4 0039EC44 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A1CE8 0039EC48 4E 80 00 20 */ blr + +.global dataInsertFX +dataInsertFX: +/* 803A1CEC 0039EC4C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A1CF0 0039EC50 7C 08 02 A6 */ mflr r0 +/* 803A1CF4 0039EC54 3C C0 80 56 */ lis r6, lbl_805586F8@ha +/* 803A1CF8 0039EC58 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A1CFC 0039EC5C 38 C6 86 F8 */ addi r6, r6, lbl_805586F8@l +/* 803A1D00 0039EC60 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A1D04 0039EC64 7C BF 2B 78 */ mr r31, r5 +/* 803A1D08 0039EC68 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A1D0C 0039EC6C 7C 9E 23 78 */ mr r30, r4 +/* 803A1D10 0039EC70 38 80 00 00 */ li r4, 0 +/* 803A1D14 0039EC74 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A1D18 0039EC78 7C 7D 1B 78 */ mr r29, r3 +/* 803A1D1C 0039EC7C 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A1D20 0039EC80 A0 ED AE D0 */ lhz r7, lbl_805A9A90@sda21(r13) +/* 803A1D24 0039EC84 48 00 00 0C */ b lbl_803A1D30 +lbl_803A1D28: +/* 803A1D28 0039EC88 38 C6 00 08 */ addi r6, r6, 8 +/* 803A1D2C 0039EC8C 38 84 00 01 */ addi r4, r4, 1 +lbl_803A1D30: +/* 803A1D30 0039EC90 7C 04 38 00 */ cmpw r4, r7 +/* 803A1D34 0039EC94 40 80 00 10 */ bge lbl_803A1D44 +/* 803A1D38 0039EC98 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A1D3C 0039EC9C 7C 03 00 40 */ cmplw r3, r0 +/* 803A1D40 0039ECA0 40 82 FF E8 */ bne lbl_803A1D28 +lbl_803A1D44: +/* 803A1D44 0039ECA4 7C 04 38 00 */ cmpw r4, r7 +/* 803A1D48 0039ECA8 40 82 00 A0 */ bne lbl_803A1DE8 +/* 803A1D4C 0039ECAC 28 07 00 80 */ cmplwi r7, 0x80 +/* 803A1D50 0039ECB0 40 80 00 98 */ bge lbl_803A1DE8 +/* 803A1D54 0039ECB4 48 01 33 69 */ bl hwDisableIrq +/* 803A1D58 0039ECB8 A0 0D AE D0 */ lhz r0, lbl_805A9A90@sda21(r13) +/* 803A1D5C 0039ECBC 3C 80 80 56 */ lis r4, lbl_805586F8@ha +/* 803A1D60 0039ECC0 38 84 86 F8 */ addi r4, r4, lbl_805586F8@l +/* 803A1D64 0039ECC4 57 E5 04 3F */ clrlwi. r5, r31, 0x10 +/* 803A1D68 0039ECC8 54 00 18 38 */ slwi r0, r0, 3 +/* 803A1D6C 0039ECCC 38 60 00 1F */ li r3, 0x1f +/* 803A1D70 0039ECD0 7F A4 03 2E */ sthx r29, r4, r0 +/* 803A1D74 0039ECD4 7C 84 02 14 */ add r4, r4, r0 +/* 803A1D78 0039ECD8 B3 E4 00 02 */ sth r31, 2(r4) +/* 803A1D7C 0039ECDC 93 C4 00 04 */ stw r30, 4(r4) +/* 803A1D80 0039ECE0 40 81 00 50 */ ble lbl_803A1DD0 +/* 803A1D84 0039ECE4 54 A0 E8 FF */ rlwinm. r0, r5, 0x1d, 3, 0x1f +/* 803A1D88 0039ECE8 7C 09 03 A6 */ mtctr r0 +/* 803A1D8C 0039ECEC 41 82 00 34 */ beq lbl_803A1DC0 +lbl_803A1D90: +/* 803A1D90 0039ECF0 98 7E 00 09 */ stb r3, 9(r30) +/* 803A1D94 0039ECF4 98 7E 00 13 */ stb r3, 0x13(r30) +/* 803A1D98 0039ECF8 98 7E 00 1D */ stb r3, 0x1d(r30) +/* 803A1D9C 0039ECFC 98 7E 00 27 */ stb r3, 0x27(r30) +/* 803A1DA0 0039ED00 98 7E 00 31 */ stb r3, 0x31(r30) +/* 803A1DA4 0039ED04 98 7E 00 3B */ stb r3, 0x3b(r30) +/* 803A1DA8 0039ED08 98 7E 00 45 */ stb r3, 0x45(r30) +/* 803A1DAC 0039ED0C 98 7E 00 4F */ stb r3, 0x4f(r30) +/* 803A1DB0 0039ED10 3B DE 00 50 */ addi r30, r30, 0x50 +/* 803A1DB4 0039ED14 42 00 FF DC */ bdnz lbl_803A1D90 +/* 803A1DB8 0039ED18 70 A5 00 07 */ andi. r5, r5, 7 +/* 803A1DBC 0039ED1C 41 82 00 14 */ beq lbl_803A1DD0 +lbl_803A1DC0: +/* 803A1DC0 0039ED20 7C A9 03 A6 */ mtctr r5 +lbl_803A1DC4: +/* 803A1DC4 0039ED24 98 7E 00 09 */ stb r3, 9(r30) +/* 803A1DC8 0039ED28 3B DE 00 0A */ addi r30, r30, 0xa +/* 803A1DCC 0039ED2C 42 00 FF F8 */ bdnz lbl_803A1DC4 +lbl_803A1DD0: +/* 803A1DD0 0039ED30 A0 6D AE D0 */ lhz r3, lbl_805A9A90@sda21(r13) +/* 803A1DD4 0039ED34 38 03 00 01 */ addi r0, r3, 1 +/* 803A1DD8 0039ED38 B0 0D AE D0 */ sth r0, lbl_805A9A90@sda21(r13) +/* 803A1DDC 0039ED3C 48 01 32 A9 */ bl hwEnableIrq +/* 803A1DE0 0039ED40 38 60 00 01 */ li r3, 1 +/* 803A1DE4 0039ED44 48 00 00 08 */ b lbl_803A1DEC +lbl_803A1DE8: +/* 803A1DE8 0039ED48 38 60 00 00 */ li r3, 0 +lbl_803A1DEC: +/* 803A1DEC 0039ED4C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A1DF0 0039ED50 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A1DF4 0039ED54 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A1DF8 0039ED58 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A1DFC 0039ED5C 7C 08 03 A6 */ mtlr r0 +/* 803A1E00 0039ED60 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A1E04 0039ED64 4E 80 00 20 */ blr + +.global sub_803a1e08 +sub_803a1e08: +/* 803A1E08 0039ED68 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A1E0C 0039ED6C 7C 08 02 A6 */ mflr r0 +/* 803A1E10 0039ED70 3C 80 80 56 */ lis r4, lbl_805586F8@ha +/* 803A1E14 0039ED74 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A1E18 0039ED78 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A1E1C 0039ED7C 38 84 86 F8 */ addi r4, r4, lbl_805586F8@l +/* 803A1E20 0039ED80 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A1E24 0039ED84 3B E0 00 00 */ li r31, 0 +/* 803A1E28 0039ED88 A0 AD AE D0 */ lhz r5, lbl_805A9A90@sda21(r13) +/* 803A1E2C 0039ED8C 48 00 00 0C */ b lbl_803A1E38 +lbl_803A1E30: +/* 803A1E30 0039ED90 38 84 00 08 */ addi r4, r4, 8 +/* 803A1E34 0039ED94 3B FF 00 01 */ addi r31, r31, 1 +lbl_803A1E38: +/* 803A1E38 0039ED98 7C 1F 28 00 */ cmpw r31, r5 +/* 803A1E3C 0039ED9C 40 80 00 10 */ bge lbl_803A1E4C +/* 803A1E40 0039EDA0 A0 04 00 00 */ lhz r0, 0(r4) +/* 803A1E44 0039EDA4 7C 03 00 40 */ cmplw r3, r0 +/* 803A1E48 0039EDA8 40 82 FF E8 */ bne lbl_803A1E30 +lbl_803A1E4C: +/* 803A1E4C 0039EDAC 7C 1F 28 00 */ cmpw r31, r5 +/* 803A1E50 0039EDB0 41 82 00 FC */ beq lbl_803A1F4C +/* 803A1E54 0039EDB4 48 01 32 69 */ bl hwDisableIrq +/* 803A1E58 0039EDB8 A0 AD AE D0 */ lhz r5, lbl_805A9A90@sda21(r13) +/* 803A1E5C 0039EDBC 38 DF 00 01 */ addi r6, r31, 1 +/* 803A1E60 0039EDC0 3C 60 80 56 */ lis r3, lbl_805586F8@ha +/* 803A1E64 0039EDC4 7C 06 28 00 */ cmpw r6, r5 +/* 803A1E68 0039EDC8 54 C4 18 38 */ slwi r4, r6, 3 +/* 803A1E6C 0039EDCC 38 03 86 F8 */ addi r0, r3, lbl_805586F8@l +/* 803A1E70 0039EDD0 7C 66 28 50 */ subf r3, r6, r5 +/* 803A1E74 0039EDD4 7C A0 22 14 */ add r5, r0, r4 +/* 803A1E78 0039EDD8 40 80 00 BC */ bge lbl_803A1F34 +/* 803A1E7C 0039EDDC 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 803A1E80 0039EDE0 7C 09 03 A6 */ mtctr r0 +/* 803A1E84 0039EDE4 41 82 00 94 */ beq lbl_803A1F18 +lbl_803A1E88: +/* 803A1E88 0039EDE8 80 85 00 00 */ lwz r4, 0(r5) +/* 803A1E8C 0039EDEC 80 05 00 04 */ lwz r0, 4(r5) +/* 803A1E90 0039EDF0 90 85 FF F8 */ stw r4, -8(r5) +/* 803A1E94 0039EDF4 90 05 FF FC */ stw r0, -4(r5) +/* 803A1E98 0039EDF8 80 85 00 08 */ lwz r4, 8(r5) +/* 803A1E9C 0039EDFC 80 05 00 0C */ lwz r0, 0xc(r5) +/* 803A1EA0 0039EE00 90 85 00 00 */ stw r4, 0(r5) +/* 803A1EA4 0039EE04 90 05 00 04 */ stw r0, 4(r5) +/* 803A1EA8 0039EE08 80 85 00 10 */ lwz r4, 0x10(r5) +/* 803A1EAC 0039EE0C 80 05 00 14 */ lwz r0, 0x14(r5) +/* 803A1EB0 0039EE10 90 85 00 08 */ stw r4, 8(r5) +/* 803A1EB4 0039EE14 90 05 00 0C */ stw r0, 0xc(r5) +/* 803A1EB8 0039EE18 80 85 00 18 */ lwz r4, 0x18(r5) +/* 803A1EBC 0039EE1C 80 05 00 1C */ lwz r0, 0x1c(r5) +/* 803A1EC0 0039EE20 90 85 00 10 */ stw r4, 0x10(r5) +/* 803A1EC4 0039EE24 90 05 00 14 */ stw r0, 0x14(r5) +/* 803A1EC8 0039EE28 80 85 00 20 */ lwz r4, 0x20(r5) +/* 803A1ECC 0039EE2C 80 05 00 24 */ lwz r0, 0x24(r5) +/* 803A1ED0 0039EE30 90 85 00 18 */ stw r4, 0x18(r5) +/* 803A1ED4 0039EE34 90 05 00 1C */ stw r0, 0x1c(r5) +/* 803A1ED8 0039EE38 80 85 00 28 */ lwz r4, 0x28(r5) +/* 803A1EDC 0039EE3C 80 05 00 2C */ lwz r0, 0x2c(r5) +/* 803A1EE0 0039EE40 90 85 00 20 */ stw r4, 0x20(r5) +/* 803A1EE4 0039EE44 90 05 00 24 */ stw r0, 0x24(r5) +/* 803A1EE8 0039EE48 80 85 00 30 */ lwz r4, 0x30(r5) +/* 803A1EEC 0039EE4C 80 05 00 34 */ lwz r0, 0x34(r5) +/* 803A1EF0 0039EE50 90 85 00 28 */ stw r4, 0x28(r5) +/* 803A1EF4 0039EE54 90 05 00 2C */ stw r0, 0x2c(r5) +/* 803A1EF8 0039EE58 80 85 00 38 */ lwz r4, 0x38(r5) +/* 803A1EFC 0039EE5C 80 05 00 3C */ lwz r0, 0x3c(r5) +/* 803A1F00 0039EE60 90 85 00 30 */ stw r4, 0x30(r5) +/* 803A1F04 0039EE64 90 05 00 34 */ stw r0, 0x34(r5) +/* 803A1F08 0039EE68 38 A5 00 40 */ addi r5, r5, 0x40 +/* 803A1F0C 0039EE6C 42 00 FF 7C */ bdnz lbl_803A1E88 +/* 803A1F10 0039EE70 70 63 00 07 */ andi. r3, r3, 7 +/* 803A1F14 0039EE74 41 82 00 20 */ beq lbl_803A1F34 +lbl_803A1F18: +/* 803A1F18 0039EE78 7C 69 03 A6 */ mtctr r3 +lbl_803A1F1C: +/* 803A1F1C 0039EE7C 80 85 00 00 */ lwz r4, 0(r5) +/* 803A1F20 0039EE80 80 05 00 04 */ lwz r0, 4(r5) +/* 803A1F24 0039EE84 90 85 FF F8 */ stw r4, -8(r5) +/* 803A1F28 0039EE88 90 05 FF FC */ stw r0, -4(r5) +/* 803A1F2C 0039EE8C 38 A5 00 08 */ addi r5, r5, 8 +/* 803A1F30 0039EE90 42 00 FF EC */ bdnz lbl_803A1F1C +lbl_803A1F34: +/* 803A1F34 0039EE94 A0 6D AE D0 */ lhz r3, lbl_805A9A90@sda21(r13) +/* 803A1F38 0039EE98 38 03 FF FF */ addi r0, r3, -1 +/* 803A1F3C 0039EE9C B0 0D AE D0 */ sth r0, lbl_805A9A90@sda21(r13) +/* 803A1F40 0039EEA0 48 01 31 45 */ bl hwEnableIrq +/* 803A1F44 0039EEA4 38 60 00 01 */ li r3, 1 +/* 803A1F48 0039EEA8 48 00 00 08 */ b lbl_803A1F50 +lbl_803A1F4C: +/* 803A1F4C 0039EEAC 38 60 00 00 */ li r3, 0 +lbl_803A1F50: +/* 803A1F50 0039EEB0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A1F54 0039EEB4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A1F58 0039EEB8 7C 08 03 A6 */ mtlr r0 +/* 803A1F5C 0039EEBC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A1F60 0039EEC0 4E 80 00 20 */ blr + +.global sub_803a1f64 +sub_803a1f64: +/* 803A1F64 0039EEC4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A1F68 0039EEC8 7C 08 02 A6 */ mflr r0 +/* 803A1F6C 0039EECC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A1F70 0039EED0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A1F74 0039EED4 7C 9F 23 78 */ mr r31, r4 +/* 803A1F78 0039EED8 93 C1 00 08 */ stw r30, 8(r1) +/* 803A1F7C 0039EEDC 7C 7E 1B 78 */ mr r30, r3 +/* 803A1F80 0039EEE0 48 01 31 3D */ bl hwDisableIrq +/* 803A1F84 0039EEE4 3C 60 80 56 */ lis r3, lbl_80558AF8@ha +/* 803A1F88 0039EEE8 57 C0 E5 3A */ rlwinm r0, r30, 0x1c, 0x14, 0x1d +/* 803A1F8C 0039EEEC 38 63 8A F8 */ addi r3, r3, lbl_80558AF8@l +/* 803A1F90 0039EEF0 57 C6 04 3E */ clrlwi r6, r30, 0x10 +/* 803A1F94 0039EEF4 7C E3 02 2E */ lhzx r7, r3, r0 +/* 803A1F98 0039EEF8 28 07 00 00 */ cmplwi r7, 0 +/* 803A1F9C 0039EEFC 40 82 00 1C */ bne lbl_803A1FB8 +/* 803A1FA0 0039EF00 A0 AD AE D2 */ lhz r5, lbl_805A9A92@sda21(r13) +/* 803A1FA4 0039EF04 7C 83 02 14 */ add r4, r3, r0 +/* 803A1FA8 0039EF08 B0 A4 00 02 */ sth r5, 2(r4) +/* 803A1FAC 0039EF0C 7C A8 2B 78 */ mr r8, r5 +/* 803A1FB0 0039EF10 7C A4 2B 78 */ mr r4, r5 +/* 803A1FB4 0039EF14 48 00 00 88 */ b lbl_803A203C +lbl_803A1FB8: +/* 803A1FB8 0039EF18 7C A3 02 14 */ add r5, r3, r0 +/* 803A1FBC 0039EF1C 3C 80 80 56 */ lis r4, lbl_805592F8@ha +/* 803A1FC0 0039EF20 A1 05 00 02 */ lhz r8, 2(r5) +/* 803A1FC4 0039EF24 38 A4 92 F8 */ addi r5, r4, lbl_805592F8@l +/* 803A1FC8 0039EF28 39 20 00 00 */ li r9, 0 +/* 803A1FCC 0039EF2C 48 00 00 08 */ b lbl_803A1FD4 +lbl_803A1FD0: +/* 803A1FD0 0039EF30 39 29 00 01 */ addi r9, r9, 1 +lbl_803A1FD4: +/* 803A1FD4 0039EF34 7C 09 38 00 */ cmpw r9, r7 +/* 803A1FD8 0039EF38 40 80 00 1C */ bge lbl_803A1FF4 +/* 803A1FDC 0039EF3C 7C 88 4A 14 */ add r4, r8, r9 +/* 803A1FE0 0039EF40 54 84 18 38 */ slwi r4, r4, 3 +/* 803A1FE4 0039EF44 7C 85 22 14 */ add r4, r5, r4 +/* 803A1FE8 0039EF48 A0 84 00 04 */ lhz r4, 4(r4) +/* 803A1FEC 0039EF4C 7C 04 30 40 */ cmplw r4, r6 +/* 803A1FF0 0039EF50 41 80 FF E0 */ blt lbl_803A1FD0 +lbl_803A1FF4: +/* 803A1FF4 0039EF54 7C 09 38 00 */ cmpw r9, r7 +/* 803A1FF8 0039EF58 40 80 00 40 */ bge lbl_803A2038 +/* 803A1FFC 0039EF5C 7C 88 4A 14 */ add r4, r8, r9 +/* 803A2000 0039EF60 3C A0 80 56 */ lis r5, lbl_805592F8@ha +/* 803A2004 0039EF64 38 A5 92 F8 */ addi r5, r5, lbl_805592F8@l +/* 803A2008 0039EF68 57 C7 04 3E */ clrlwi r7, r30, 0x10 +/* 803A200C 0039EF6C 54 86 18 38 */ slwi r6, r4, 3 +/* 803A2010 0039EF70 7C C5 32 14 */ add r6, r5, r6 +/* 803A2014 0039EF74 A0 A6 00 04 */ lhz r5, 4(r6) +/* 803A2018 0039EF78 7C 07 28 40 */ cmplw r7, r5 +/* 803A201C 0039EF7C 40 82 00 20 */ bne lbl_803A203C +/* 803A2020 0039EF80 A0 66 00 06 */ lhz r3, 6(r6) +/* 803A2024 0039EF84 38 03 00 01 */ addi r0, r3, 1 +/* 803A2028 0039EF88 B0 06 00 06 */ sth r0, 6(r6) +/* 803A202C 0039EF8C 48 01 30 59 */ bl hwEnableIrq +/* 803A2030 0039EF90 38 60 00 00 */ li r3, 0 +/* 803A2034 0039EF94 48 00 02 1C */ b lbl_803A2250 +lbl_803A2038: +/* 803A2038 0039EF98 7C 88 4A 14 */ add r4, r8, r9 +lbl_803A203C: +/* 803A203C 0039EF9C A0 AD AE D2 */ lhz r5, lbl_805A9A92@sda21(r13) +/* 803A2040 0039EFA0 28 05 08 00 */ cmplwi r5, 0x800 +/* 803A2044 0039EFA4 40 80 02 04 */ bge lbl_803A2248 +/* 803A2048 0039EFA8 3C C0 80 56 */ lis r6, lbl_80558AF8@ha +/* 803A204C 0039EFAC 38 A0 00 40 */ li r5, 0x40 +/* 803A2050 0039EFB0 38 C6 8A F8 */ addi r6, r6, lbl_80558AF8@l +/* 803A2054 0039EFB4 38 E0 00 00 */ li r7, 0 +/* 803A2058 0039EFB8 7C A9 03 A6 */ mtctr r5 +lbl_803A205C: +/* 803A205C 0039EFBC A0 A6 00 02 */ lhz r5, 2(r6) +/* 803A2060 0039EFC0 7C 05 40 00 */ cmpw r5, r8 +/* 803A2064 0039EFC4 40 81 00 0C */ ble lbl_803A2070 +/* 803A2068 0039EFC8 38 A5 00 01 */ addi r5, r5, 1 +/* 803A206C 0039EFCC B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A2070: +/* 803A2070 0039EFD0 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2074 0039EFD4 38 C6 00 04 */ addi r6, r6, 4 +/* 803A2078 0039EFD8 7C 05 40 00 */ cmpw r5, r8 +/* 803A207C 0039EFDC 40 81 00 0C */ ble lbl_803A2088 +/* 803A2080 0039EFE0 38 A5 00 01 */ addi r5, r5, 1 +/* 803A2084 0039EFE4 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A2088: +/* 803A2088 0039EFE8 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A208C 0039EFEC 38 C6 00 04 */ addi r6, r6, 4 +/* 803A2090 0039EFF0 7C 05 40 00 */ cmpw r5, r8 +/* 803A2094 0039EFF4 40 81 00 0C */ ble lbl_803A20A0 +/* 803A2098 0039EFF8 38 A5 00 01 */ addi r5, r5, 1 +/* 803A209C 0039EFFC B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A20A0: +/* 803A20A0 0039F000 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A20A4 0039F004 38 C6 00 04 */ addi r6, r6, 4 +/* 803A20A8 0039F008 7C 05 40 00 */ cmpw r5, r8 +/* 803A20AC 0039F00C 40 81 00 0C */ ble lbl_803A20B8 +/* 803A20B0 0039F010 38 A5 00 01 */ addi r5, r5, 1 +/* 803A20B4 0039F014 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A20B8: +/* 803A20B8 0039F018 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A20BC 0039F01C 38 C6 00 04 */ addi r6, r6, 4 +/* 803A20C0 0039F020 7C 05 40 00 */ cmpw r5, r8 +/* 803A20C4 0039F024 40 81 00 0C */ ble lbl_803A20D0 +/* 803A20C8 0039F028 38 A5 00 01 */ addi r5, r5, 1 +/* 803A20CC 0039F02C B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A20D0: +/* 803A20D0 0039F030 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A20D4 0039F034 38 C6 00 04 */ addi r6, r6, 4 +/* 803A20D8 0039F038 7C 05 40 00 */ cmpw r5, r8 +/* 803A20DC 0039F03C 40 81 00 0C */ ble lbl_803A20E8 +/* 803A20E0 0039F040 38 A5 00 01 */ addi r5, r5, 1 +/* 803A20E4 0039F044 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A20E8: +/* 803A20E8 0039F048 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A20EC 0039F04C 38 C6 00 04 */ addi r6, r6, 4 +/* 803A20F0 0039F050 7C 05 40 00 */ cmpw r5, r8 +/* 803A20F4 0039F054 40 81 00 0C */ ble lbl_803A2100 +/* 803A20F8 0039F058 38 A5 00 01 */ addi r5, r5, 1 +/* 803A20FC 0039F05C B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A2100: +/* 803A2100 0039F060 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2104 0039F064 38 C6 00 04 */ addi r6, r6, 4 +/* 803A2108 0039F068 7C 05 40 00 */ cmpw r5, r8 +/* 803A210C 0039F06C 40 81 00 0C */ ble lbl_803A2118 +/* 803A2110 0039F070 38 A5 00 01 */ addi r5, r5, 1 +/* 803A2114 0039F074 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A2118: +/* 803A2118 0039F078 38 C6 00 04 */ addi r6, r6, 4 +/* 803A211C 0039F07C 38 E7 00 07 */ addi r7, r7, 7 +/* 803A2120 0039F080 42 00 FF 3C */ bdnz lbl_803A205C +/* 803A2124 0039F084 A0 CD AE D2 */ lhz r6, lbl_805A9A92@sda21(r13) +/* 803A2128 0039F088 3C A0 80 56 */ lis r5, lbl_805592F8@ha +/* 803A212C 0039F08C 38 A5 92 F8 */ addi r5, r5, lbl_805592F8@l +/* 803A2130 0039F090 38 C6 FF FF */ addi r6, r6, -1 +/* 803A2134 0039F094 7C 06 20 00 */ cmpw r6, r4 +/* 803A2138 0039F098 54 C7 18 38 */ slwi r7, r6, 3 +/* 803A213C 0039F09C 38 C6 00 01 */ addi r6, r6, 1 +/* 803A2140 0039F0A0 7D 05 3A 14 */ add r8, r5, r7 +/* 803A2144 0039F0A4 7C C4 30 50 */ subf r6, r4, r6 +/* 803A2148 0039F0A8 41 80 00 BC */ blt lbl_803A2204 +/* 803A214C 0039F0AC 54 C5 E8 FF */ rlwinm. r5, r6, 0x1d, 3, 0x1f +/* 803A2150 0039F0B0 7C A9 03 A6 */ mtctr r5 +/* 803A2154 0039F0B4 41 82 00 94 */ beq lbl_803A21E8 +lbl_803A2158: +/* 803A2158 0039F0B8 80 E8 00 00 */ lwz r7, 0(r8) +/* 803A215C 0039F0BC 80 A8 00 04 */ lwz r5, 4(r8) +/* 803A2160 0039F0C0 90 E8 00 08 */ stw r7, 8(r8) +/* 803A2164 0039F0C4 90 A8 00 0C */ stw r5, 0xc(r8) +/* 803A2168 0039F0C8 80 E8 FF F8 */ lwz r7, -8(r8) +/* 803A216C 0039F0CC 80 A8 FF FC */ lwz r5, -4(r8) +/* 803A2170 0039F0D0 90 E8 00 00 */ stw r7, 0(r8) +/* 803A2174 0039F0D4 90 A8 00 04 */ stw r5, 4(r8) +/* 803A2178 0039F0D8 80 E8 FF F0 */ lwz r7, -0x10(r8) +/* 803A217C 0039F0DC 80 A8 FF F4 */ lwz r5, -0xc(r8) +/* 803A2180 0039F0E0 90 E8 FF F8 */ stw r7, -8(r8) +/* 803A2184 0039F0E4 90 A8 FF FC */ stw r5, -4(r8) +/* 803A2188 0039F0E8 80 E8 FF E8 */ lwz r7, -0x18(r8) +/* 803A218C 0039F0EC 80 A8 FF EC */ lwz r5, -0x14(r8) +/* 803A2190 0039F0F0 90 E8 FF F0 */ stw r7, -0x10(r8) +/* 803A2194 0039F0F4 90 A8 FF F4 */ stw r5, -0xc(r8) +/* 803A2198 0039F0F8 80 E8 FF E0 */ lwz r7, -0x20(r8) +/* 803A219C 0039F0FC 80 A8 FF E4 */ lwz r5, -0x1c(r8) +/* 803A21A0 0039F100 90 E8 FF E8 */ stw r7, -0x18(r8) +/* 803A21A4 0039F104 90 A8 FF EC */ stw r5, -0x14(r8) +/* 803A21A8 0039F108 80 E8 FF D8 */ lwz r7, -0x28(r8) +/* 803A21AC 0039F10C 80 A8 FF DC */ lwz r5, -0x24(r8) +/* 803A21B0 0039F110 90 E8 FF E0 */ stw r7, -0x20(r8) +/* 803A21B4 0039F114 90 A8 FF E4 */ stw r5, -0x1c(r8) +/* 803A21B8 0039F118 80 E8 FF D0 */ lwz r7, -0x30(r8) +/* 803A21BC 0039F11C 80 A8 FF D4 */ lwz r5, -0x2c(r8) +/* 803A21C0 0039F120 90 E8 FF D8 */ stw r7, -0x28(r8) +/* 803A21C4 0039F124 90 A8 FF DC */ stw r5, -0x24(r8) +/* 803A21C8 0039F128 80 E8 FF C8 */ lwz r7, -0x38(r8) +/* 803A21CC 0039F12C 80 A8 FF CC */ lwz r5, -0x34(r8) +/* 803A21D0 0039F130 90 E8 FF D0 */ stw r7, -0x30(r8) +/* 803A21D4 0039F134 90 A8 FF D4 */ stw r5, -0x2c(r8) +/* 803A21D8 0039F138 39 08 FF C0 */ addi r8, r8, -64 +/* 803A21DC 0039F13C 42 00 FF 7C */ bdnz lbl_803A2158 +/* 803A21E0 0039F140 70 C6 00 07 */ andi. r6, r6, 7 +/* 803A21E4 0039F144 41 82 00 20 */ beq lbl_803A2204 +lbl_803A21E8: +/* 803A21E8 0039F148 7C C9 03 A6 */ mtctr r6 +lbl_803A21EC: +/* 803A21EC 0039F14C 80 E8 00 00 */ lwz r7, 0(r8) +/* 803A21F0 0039F150 80 A8 00 04 */ lwz r5, 4(r8) +/* 803A21F4 0039F154 90 E8 00 08 */ stw r7, 8(r8) +/* 803A21F8 0039F158 90 A8 00 0C */ stw r5, 0xc(r8) +/* 803A21FC 0039F15C 39 08 FF F8 */ addi r8, r8, -8 +/* 803A2200 0039F160 42 00 FF EC */ bdnz lbl_803A21EC +lbl_803A2204: +/* 803A2204 0039F164 3C C0 80 56 */ lis r6, lbl_805592F8@ha +/* 803A2208 0039F168 7C A3 02 2E */ lhzx r5, r3, r0 +/* 803A220C 0039F16C 39 06 92 F8 */ addi r8, r6, lbl_805592F8@l +/* 803A2210 0039F170 54 89 18 38 */ slwi r9, r4, 3 +/* 803A2214 0039F174 7C E8 4A 14 */ add r7, r8, r9 +/* 803A2218 0039F178 A0 8D AE D2 */ lhz r4, lbl_805A9A92@sda21(r13) +/* 803A221C 0039F17C B3 C7 00 04 */ sth r30, 4(r7) +/* 803A2220 0039F180 38 A5 00 01 */ addi r5, r5, 1 +/* 803A2224 0039F184 38 84 00 01 */ addi r4, r4, 1 +/* 803A2228 0039F188 38 C0 00 01 */ li r6, 1 +/* 803A222C 0039F18C 7F E8 49 2E */ stwx r31, r8, r9 +/* 803A2230 0039F190 B0 C7 00 06 */ sth r6, 6(r7) +/* 803A2234 0039F194 7C A3 03 2E */ sthx r5, r3, r0 +/* 803A2238 0039F198 B0 8D AE D2 */ sth r4, lbl_805A9A92@sda21(r13) +/* 803A223C 0039F19C 48 01 2E 49 */ bl hwEnableIrq +/* 803A2240 0039F1A0 38 60 00 01 */ li r3, 1 +/* 803A2244 0039F1A4 48 00 00 0C */ b lbl_803A2250 +lbl_803A2248: +/* 803A2248 0039F1A8 48 01 2E 3D */ bl hwEnableIrq +/* 803A224C 0039F1AC 38 60 00 00 */ li r3, 0 +lbl_803A2250: +/* 803A2250 0039F1B0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A2254 0039F1B4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A2258 0039F1B8 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A225C 0039F1BC 7C 08 03 A6 */ mtlr r0 +/* 803A2260 0039F1C0 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A2264 0039F1C4 4E 80 00 20 */ blr + +.global dataRemoveMacro +dataRemoveMacro: +/* 803A2268 0039F1C8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A226C 0039F1CC 7C 08 02 A6 */ mflr r0 +/* 803A2270 0039F1D0 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A2274 0039F1D4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A2278 0039F1D8 7C 7F 1B 78 */ mr r31, r3 +/* 803A227C 0039F1DC 48 01 2E 41 */ bl hwDisableIrq +/* 803A2280 0039F1E0 3C 60 80 56 */ lis r3, lbl_80558AF8@ha +/* 803A2284 0039F1E4 57 E0 E5 3A */ rlwinm r0, r31, 0x1c, 0x14, 0x1d +/* 803A2288 0039F1E8 38 63 8A F8 */ addi r3, r3, lbl_80558AF8@l +/* 803A228C 0039F1EC 57 E7 04 3E */ clrlwi r7, r31, 0x10 +/* 803A2290 0039F1F0 7D 03 02 2E */ lhzx r8, r3, r0 +/* 803A2294 0039F1F4 28 08 00 00 */ cmplwi r8, 0 +/* 803A2298 0039F1F8 41 82 02 38 */ beq lbl_803A24D0 +/* 803A229C 0039F1FC 7C 83 02 14 */ add r4, r3, r0 +/* 803A22A0 0039F200 3C A0 80 56 */ lis r5, lbl_805592F8@ha +/* 803A22A4 0039F204 A0 84 00 02 */ lhz r4, 2(r4) +/* 803A22A8 0039F208 38 C5 92 F8 */ addi r6, r5, lbl_805592F8@l +/* 803A22AC 0039F20C 39 20 00 00 */ li r9, 0 +/* 803A22B0 0039F210 48 00 00 08 */ b lbl_803A22B8 +lbl_803A22B4: +/* 803A22B4 0039F214 39 29 00 01 */ addi r9, r9, 1 +lbl_803A22B8: +/* 803A22B8 0039F218 7C 09 40 00 */ cmpw r9, r8 +/* 803A22BC 0039F21C 40 80 00 1C */ bge lbl_803A22D8 +/* 803A22C0 0039F220 7C A4 4A 14 */ add r5, r4, r9 +/* 803A22C4 0039F224 54 A5 18 38 */ slwi r5, r5, 3 +/* 803A22C8 0039F228 7C A6 2A 14 */ add r5, r6, r5 +/* 803A22CC 0039F22C A0 A5 00 04 */ lhz r5, 4(r5) +/* 803A22D0 0039F230 7C 07 28 40 */ cmplw r7, r5 +/* 803A22D4 0039F234 40 82 FF E0 */ bne lbl_803A22B4 +lbl_803A22D8: +/* 803A22D8 0039F238 7C 09 40 00 */ cmpw r9, r8 +/* 803A22DC 0039F23C 40 80 01 F4 */ bge lbl_803A24D0 +/* 803A22E0 0039F240 3C A0 80 56 */ lis r5, lbl_805592F8@ha +/* 803A22E4 0039F244 7D 24 4A 14 */ add r9, r4, r9 +/* 803A22E8 0039F248 39 05 92 F8 */ addi r8, r5, lbl_805592F8@l +/* 803A22EC 0039F24C 55 25 18 38 */ slwi r5, r9, 3 +/* 803A22F0 0039F250 7C E8 2A 14 */ add r7, r8, r5 +/* 803A22F4 0039F254 A0 A7 00 06 */ lhz r5, 6(r7) +/* 803A22F8 0039F258 38 C5 FF FF */ addi r6, r5, -1 +/* 803A22FC 0039F25C 54 C5 04 3F */ clrlwi. r5, r6, 0x10 +/* 803A2300 0039F260 B0 C7 00 06 */ sth r6, 6(r7) +/* 803A2304 0039F264 40 82 01 CC */ bne lbl_803A24D0 +/* 803A2308 0039F268 A0 CD AE D2 */ lhz r6, lbl_805A9A92@sda21(r13) +/* 803A230C 0039F26C 38 E9 00 01 */ addi r7, r9, 1 +/* 803A2310 0039F270 54 E5 18 38 */ slwi r5, r7, 3 +/* 803A2314 0039F274 7C 07 30 00 */ cmpw r7, r6 +/* 803A2318 0039F278 7C C7 30 50 */ subf r6, r7, r6 +/* 803A231C 0039F27C 7D 08 2A 14 */ add r8, r8, r5 +/* 803A2320 0039F280 40 80 00 BC */ bge lbl_803A23DC +/* 803A2324 0039F284 54 C5 E8 FF */ rlwinm. r5, r6, 0x1d, 3, 0x1f +/* 803A2328 0039F288 7C A9 03 A6 */ mtctr r5 +/* 803A232C 0039F28C 41 82 00 94 */ beq lbl_803A23C0 +lbl_803A2330: +/* 803A2330 0039F290 80 E8 00 00 */ lwz r7, 0(r8) +/* 803A2334 0039F294 80 A8 00 04 */ lwz r5, 4(r8) +/* 803A2338 0039F298 90 E8 FF F8 */ stw r7, -8(r8) +/* 803A233C 0039F29C 90 A8 FF FC */ stw r5, -4(r8) +/* 803A2340 0039F2A0 80 E8 00 08 */ lwz r7, 8(r8) +/* 803A2344 0039F2A4 80 A8 00 0C */ lwz r5, 0xc(r8) +/* 803A2348 0039F2A8 90 E8 00 00 */ stw r7, 0(r8) +/* 803A234C 0039F2AC 90 A8 00 04 */ stw r5, 4(r8) +/* 803A2350 0039F2B0 80 E8 00 10 */ lwz r7, 0x10(r8) +/* 803A2354 0039F2B4 80 A8 00 14 */ lwz r5, 0x14(r8) +/* 803A2358 0039F2B8 90 E8 00 08 */ stw r7, 8(r8) +/* 803A235C 0039F2BC 90 A8 00 0C */ stw r5, 0xc(r8) +/* 803A2360 0039F2C0 80 E8 00 18 */ lwz r7, 0x18(r8) +/* 803A2364 0039F2C4 80 A8 00 1C */ lwz r5, 0x1c(r8) +/* 803A2368 0039F2C8 90 E8 00 10 */ stw r7, 0x10(r8) +/* 803A236C 0039F2CC 90 A8 00 14 */ stw r5, 0x14(r8) +/* 803A2370 0039F2D0 80 E8 00 20 */ lwz r7, 0x20(r8) +/* 803A2374 0039F2D4 80 A8 00 24 */ lwz r5, 0x24(r8) +/* 803A2378 0039F2D8 90 E8 00 18 */ stw r7, 0x18(r8) +/* 803A237C 0039F2DC 90 A8 00 1C */ stw r5, 0x1c(r8) +/* 803A2380 0039F2E0 80 E8 00 28 */ lwz r7, 0x28(r8) +/* 803A2384 0039F2E4 80 A8 00 2C */ lwz r5, 0x2c(r8) +/* 803A2388 0039F2E8 90 E8 00 20 */ stw r7, 0x20(r8) +/* 803A238C 0039F2EC 90 A8 00 24 */ stw r5, 0x24(r8) +/* 803A2390 0039F2F0 80 E8 00 30 */ lwz r7, 0x30(r8) +/* 803A2394 0039F2F4 80 A8 00 34 */ lwz r5, 0x34(r8) +/* 803A2398 0039F2F8 90 E8 00 28 */ stw r7, 0x28(r8) +/* 803A239C 0039F2FC 90 A8 00 2C */ stw r5, 0x2c(r8) +/* 803A23A0 0039F300 80 E8 00 38 */ lwz r7, 0x38(r8) +/* 803A23A4 0039F304 80 A8 00 3C */ lwz r5, 0x3c(r8) +/* 803A23A8 0039F308 90 E8 00 30 */ stw r7, 0x30(r8) +/* 803A23AC 0039F30C 90 A8 00 34 */ stw r5, 0x34(r8) +/* 803A23B0 0039F310 39 08 00 40 */ addi r8, r8, 0x40 +/* 803A23B4 0039F314 42 00 FF 7C */ bdnz lbl_803A2330 +/* 803A23B8 0039F318 70 C6 00 07 */ andi. r6, r6, 7 +/* 803A23BC 0039F31C 41 82 00 20 */ beq lbl_803A23DC +lbl_803A23C0: +/* 803A23C0 0039F320 7C C9 03 A6 */ mtctr r6 +lbl_803A23C4: +/* 803A23C4 0039F324 80 E8 00 00 */ lwz r7, 0(r8) +/* 803A23C8 0039F328 80 A8 00 04 */ lwz r5, 4(r8) +/* 803A23CC 0039F32C 90 E8 FF F8 */ stw r7, -8(r8) +/* 803A23D0 0039F330 90 A8 FF FC */ stw r5, -4(r8) +/* 803A23D4 0039F334 39 08 00 08 */ addi r8, r8, 8 +/* 803A23D8 0039F338 42 00 FF EC */ bdnz lbl_803A23C4 +lbl_803A23DC: +/* 803A23DC 0039F33C 3C C0 80 56 */ lis r6, lbl_80558AF8@ha +/* 803A23E0 0039F340 38 A0 00 40 */ li r5, 0x40 +/* 803A23E4 0039F344 38 C6 8A F8 */ addi r6, r6, lbl_80558AF8@l +/* 803A23E8 0039F348 38 E0 00 00 */ li r7, 0 +/* 803A23EC 0039F34C 7C A9 03 A6 */ mtctr r5 +lbl_803A23F0: +/* 803A23F0 0039F350 A0 A6 00 02 */ lhz r5, 2(r6) +/* 803A23F4 0039F354 7C 05 20 00 */ cmpw r5, r4 +/* 803A23F8 0039F358 40 81 00 0C */ ble lbl_803A2404 +/* 803A23FC 0039F35C 38 A5 FF FF */ addi r5, r5, -1 +/* 803A2400 0039F360 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A2404: +/* 803A2404 0039F364 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2408 0039F368 38 C6 00 04 */ addi r6, r6, 4 +/* 803A240C 0039F36C 7C 05 20 00 */ cmpw r5, r4 +/* 803A2410 0039F370 40 81 00 0C */ ble lbl_803A241C +/* 803A2414 0039F374 38 A5 FF FF */ addi r5, r5, -1 +/* 803A2418 0039F378 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A241C: +/* 803A241C 0039F37C A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2420 0039F380 38 C6 00 04 */ addi r6, r6, 4 +/* 803A2424 0039F384 7C 05 20 00 */ cmpw r5, r4 +/* 803A2428 0039F388 40 81 00 0C */ ble lbl_803A2434 +/* 803A242C 0039F38C 38 A5 FF FF */ addi r5, r5, -1 +/* 803A2430 0039F390 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A2434: +/* 803A2434 0039F394 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2438 0039F398 38 C6 00 04 */ addi r6, r6, 4 +/* 803A243C 0039F39C 7C 05 20 00 */ cmpw r5, r4 +/* 803A2440 0039F3A0 40 81 00 0C */ ble lbl_803A244C +/* 803A2444 0039F3A4 38 A5 FF FF */ addi r5, r5, -1 +/* 803A2448 0039F3A8 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A244C: +/* 803A244C 0039F3AC A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2450 0039F3B0 38 C6 00 04 */ addi r6, r6, 4 +/* 803A2454 0039F3B4 7C 05 20 00 */ cmpw r5, r4 +/* 803A2458 0039F3B8 40 81 00 0C */ ble lbl_803A2464 +/* 803A245C 0039F3BC 38 A5 FF FF */ addi r5, r5, -1 +/* 803A2460 0039F3C0 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A2464: +/* 803A2464 0039F3C4 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2468 0039F3C8 38 C6 00 04 */ addi r6, r6, 4 +/* 803A246C 0039F3CC 7C 05 20 00 */ cmpw r5, r4 +/* 803A2470 0039F3D0 40 81 00 0C */ ble lbl_803A247C +/* 803A2474 0039F3D4 38 A5 FF FF */ addi r5, r5, -1 +/* 803A2478 0039F3D8 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A247C: +/* 803A247C 0039F3DC A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2480 0039F3E0 38 C6 00 04 */ addi r6, r6, 4 +/* 803A2484 0039F3E4 7C 05 20 00 */ cmpw r5, r4 +/* 803A2488 0039F3E8 40 81 00 0C */ ble lbl_803A2494 +/* 803A248C 0039F3EC 38 A5 FF FF */ addi r5, r5, -1 +/* 803A2490 0039F3F0 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A2494: +/* 803A2494 0039F3F4 A0 A6 00 06 */ lhz r5, 6(r6) +/* 803A2498 0039F3F8 38 C6 00 04 */ addi r6, r6, 4 +/* 803A249C 0039F3FC 7C 05 20 00 */ cmpw r5, r4 +/* 803A24A0 0039F400 40 81 00 0C */ ble lbl_803A24AC +/* 803A24A4 0039F404 38 A5 FF FF */ addi r5, r5, -1 +/* 803A24A8 0039F408 B0 A6 00 02 */ sth r5, 2(r6) +lbl_803A24AC: +/* 803A24AC 0039F40C 38 C6 00 04 */ addi r6, r6, 4 +/* 803A24B0 0039F410 38 E7 00 07 */ addi r7, r7, 7 +/* 803A24B4 0039F414 42 00 FF 3C */ bdnz lbl_803A23F0 +/* 803A24B8 0039F418 7C A3 02 2E */ lhzx r5, r3, r0 +/* 803A24BC 0039F41C A0 8D AE D2 */ lhz r4, lbl_805A9A92@sda21(r13) +/* 803A24C0 0039F420 38 A5 FF FF */ addi r5, r5, -1 +/* 803A24C4 0039F424 38 84 FF FF */ addi r4, r4, -1 +/* 803A24C8 0039F428 7C A3 03 2E */ sthx r5, r3, r0 +/* 803A24CC 0039F42C B0 8D AE D2 */ sth r4, lbl_805A9A92@sda21(r13) +lbl_803A24D0: +/* 803A24D0 0039F430 48 01 2B B5 */ bl hwEnableIrq +/* 803A24D4 0039F434 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A24D8 0039F438 38 60 00 00 */ li r3, 0 +/* 803A24DC 0039F43C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A24E0 0039F440 7C 08 03 A6 */ mtlr r0 +/* 803A24E4 0039F444 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A24E8 0039F448 4E 80 00 20 */ blr + +.global sub_803a24ec +sub_803a24ec: +/* 803A24EC 0039F44C A0 84 00 04 */ lhz r4, 4(r4) +/* 803A24F0 0039F450 A0 03 00 04 */ lhz r0, 4(r3) +/* 803A24F4 0039F454 7C 64 00 50 */ subf r3, r4, r0 +/* 803A24F8 0039F458 4E 80 00 20 */ blr + +.global dataGetMacro +dataGetMacro: +/* 803A24FC 0039F45C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A2500 0039F460 7C 08 02 A6 */ mflr r0 +/* 803A2504 0039F464 3C 80 80 56 */ lis r4, lbl_80558AF8@ha +/* 803A2508 0039F468 54 66 E5 3A */ rlwinm r6, r3, 0x1c, 0x14, 0x1d +/* 803A250C 0039F46C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A2510 0039F470 38 84 8A F8 */ addi r4, r4, lbl_80558AF8@l +/* 803A2514 0039F474 54 60 D5 BE */ rlwinm r0, r3, 0x1a, 0x16, 0x1f +/* 803A2518 0039F478 7C A4 32 2E */ lhzx r5, r4, r6 +/* 803A251C 0039F47C 90 0D AE C8 */ stw r0, lbl_805A9A88@sda21(r13) +/* 803A2520 0039F480 28 05 00 00 */ cmplwi r5, 0 +/* 803A2524 0039F484 41 82 00 50 */ beq lbl_803A2574 +/* 803A2528 0039F488 7C 84 32 14 */ add r4, r4, r6 +/* 803A252C 0039F48C 38 ED AE C0 */ addi r7, r13, lbl_805A9A80@sda21 +/* 803A2530 0039F490 A1 04 00 02 */ lhz r8, 2(r4) +/* 803A2534 0039F494 3C C0 80 56 */ lis r6, lbl_805592F8@ha +/* 803A2538 0039F498 B0 67 00 04 */ sth r3, 4(r7) +/* 803A253C 0039F49C 3C 80 80 3A */ lis r4, sub_803a24ec@ha +/* 803A2540 0039F4A0 38 06 92 F8 */ addi r0, r6, lbl_805592F8@l +/* 803A2544 0039F4A4 55 03 18 38 */ slwi r3, r8, 3 +/* 803A2548 0039F4A8 38 E4 24 EC */ addi r7, r4, sub_803a24ec@l +/* 803A254C 0039F4AC 91 0D AE CC */ stw r8, lbl_805A9A8C@sda21(r13) +/* 803A2550 0039F4B0 7C 80 1A 14 */ add r4, r0, r3 +/* 803A2554 0039F4B4 38 6D AE C0 */ addi r3, r13, lbl_805A9A80@sda21 +/* 803A2558 0039F4B8 38 C0 00 08 */ li r6, 8 +/* 803A255C 0039F4BC 48 01 08 ED */ bl sndBSearch +/* 803A2560 0039F4C0 28 03 00 00 */ cmplwi r3, 0 +/* 803A2564 0039F4C4 90 6D AE BC */ stw r3, lbl_805A9A7C@sda21(r13) +/* 803A2568 0039F4C8 41 82 00 0C */ beq lbl_803A2574 +/* 803A256C 0039F4CC 80 63 00 00 */ lwz r3, 0(r3) +/* 803A2570 0039F4D0 48 00 00 08 */ b lbl_803A2578 +lbl_803A2574: +/* 803A2574 0039F4D4 38 60 00 00 */ li r3, 0 +lbl_803A2578: +/* 803A2578 0039F4D8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A257C 0039F4DC 7C 08 03 A6 */ mtlr r0 +/* 803A2580 0039F4E0 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A2584 0039F4E4 4E 80 00 20 */ blr + +.global sub_803a2588 +sub_803a2588: +/* 803A2588 0039F4E8 A0 84 00 00 */ lhz r4, 0(r4) +/* 803A258C 0039F4EC A0 03 00 00 */ lhz r0, 0(r3) +/* 803A2590 0039F4F0 7C 64 00 50 */ subf r3, r4, r0 +/* 803A2594 0039F4F4 4E 80 00 20 */ blr + +.global sub_803a2598 +sub_803a2598: +/* 803A2598 0039F4F8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A259C 0039F4FC 7C 08 02 A6 */ mflr r0 +/* 803A25A0 0039F500 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A25A4 0039F504 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A25A8 0039F508 4B FE 74 D5 */ bl sub_80389a7c +/* 803A25AC 0039F50C 3C A0 80 56 */ lis r5, lbl_8055D2F8@ha +/* 803A25B0 0039F510 3C C0 80 56 */ lis r6, lbl_805580F8@ha +/* 803A25B4 0039F514 3B 85 D2 F8 */ addi r28, r5, lbl_8055D2F8@l +/* 803A25B8 0039F518 7C 9E 23 78 */ mr r30, r4 +/* 803A25BC 0039F51C 3C A0 80 3A */ lis r5, sub_803a2588@ha +/* 803A25C0 0039F520 B0 7C 00 00 */ sth r3, 0(r28) +/* 803A25C4 0039F524 3B 66 80 F8 */ addi r27, r6, lbl_805580F8@l +/* 803A25C8 0039F528 3B E0 00 00 */ li r31, 0 +/* 803A25CC 0039F52C 3B A5 25 88 */ addi r29, r5, sub_803a2588@l +/* 803A25D0 0039F530 48 00 00 C8 */ b lbl_803A2698 +lbl_803A25D4: +/* 803A25D4 0039F534 80 9B 00 00 */ lwz r4, 0(r27) +/* 803A25D8 0039F538 7F 83 E3 78 */ mr r3, r28 +/* 803A25DC 0039F53C A0 BB 00 08 */ lhz r5, 8(r27) +/* 803A25E0 0039F540 7F A7 EB 78 */ mr r7, r29 +/* 803A25E4 0039F544 38 C0 00 20 */ li r6, 0x20 +/* 803A25E8 0039F548 48 01 08 61 */ bl sndBSearch +/* 803A25EC 0039F54C 28 03 00 00 */ cmplwi r3, 0 +/* 803A25F0 0039F550 90 6D AE B8 */ stw r3, lbl_805A9A78@sda21(r13) +/* 803A25F4 0039F554 41 82 00 9C */ beq lbl_803A2690 +/* 803A25F8 0039F558 A0 03 00 02 */ lhz r0, 2(r3) +/* 803A25FC 0039F55C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A2600 0039F560 41 82 00 90 */ beq lbl_803A2690 +/* 803A2604 0039F564 38 63 00 0C */ addi r3, r3, 0xc +/* 803A2608 0039F568 38 00 00 00 */ li r0, 0 +/* 803A260C 0039F56C 90 6D AE B4 */ stw r3, lbl_805A9A74@sda21(r13) +/* 803A2610 0039F570 80 63 00 00 */ lwz r3, 0(r3) +/* 803A2614 0039F574 90 7E 00 00 */ stw r3, 0(r30) +/* 803A2618 0039F578 80 6D AE B8 */ lwz r3, lbl_805A9A78@sda21(r13) +/* 803A261C 0039F57C 80 63 00 08 */ lwz r3, 8(r3) +/* 803A2620 0039F580 90 7E 00 04 */ stw r3, 4(r30) +/* 803A2624 0039F584 90 1E 00 0C */ stw r0, 0xc(r30) +/* 803A2628 0039F588 80 6D AE B4 */ lwz r3, lbl_805A9A74@sda21(r13) +/* 803A262C 0039F58C 80 03 00 08 */ lwz r0, 8(r3) +/* 803A2630 0039F590 90 1E 00 14 */ stw r0, 0x14(r30) +/* 803A2634 0039F594 80 6D AE B4 */ lwz r3, lbl_805A9A74@sda21(r13) +/* 803A2638 0039F598 80 03 00 04 */ lwz r0, 4(r3) +/* 803A263C 0039F59C 54 00 02 3E */ clrlwi r0, r0, 8 +/* 803A2640 0039F5A0 90 1E 00 10 */ stw r0, 0x10(r30) +/* 803A2644 0039F5A4 80 6D AE B4 */ lwz r3, lbl_805A9A74@sda21(r13) +/* 803A2648 0039F5A8 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803A264C 0039F5AC 90 1E 00 18 */ stw r0, 0x18(r30) +/* 803A2650 0039F5B0 80 6D AE B4 */ lwz r3, lbl_805A9A74@sda21(r13) +/* 803A2654 0039F5B4 80 03 00 04 */ lwz r0, 4(r3) +/* 803A2658 0039F5B8 54 00 46 3E */ srwi r0, r0, 0x18 +/* 803A265C 0039F5BC 98 1E 00 1C */ stb r0, 0x1c(r30) +/* 803A2660 0039F5C0 80 6D AE B8 */ lwz r3, lbl_805A9A78@sda21(r13) +/* 803A2664 0039F5C4 80 83 00 1C */ lwz r4, 0x1c(r3) +/* 803A2668 0039F5C8 28 04 00 00 */ cmplwi r4, 0 +/* 803A266C 0039F5CC 41 82 00 1C */ beq lbl_803A2688 +/* 803A2670 0039F5D0 1C 1F 00 0C */ mulli r0, r31, 0xc +/* 803A2674 0039F5D4 3C 60 80 56 */ lis r3, lbl_805580F8@ha +/* 803A2678 0039F5D8 38 63 80 F8 */ addi r3, r3, lbl_805580F8@l +/* 803A267C 0039F5DC 7C 03 00 2E */ lwzx r0, r3, r0 +/* 803A2680 0039F5E0 7C 04 02 14 */ add r0, r4, r0 +/* 803A2684 0039F5E4 90 1E 00 08 */ stw r0, 8(r30) +lbl_803A2688: +/* 803A2688 0039F5E8 38 60 00 00 */ li r3, 0 +/* 803A268C 0039F5EC 48 00 00 1C */ b lbl_803A26A8 +lbl_803A2690: +/* 803A2690 0039F5F0 3B 7B 00 0C */ addi r27, r27, 0xc +/* 803A2694 0039F5F4 3B FF 00 01 */ addi r31, r31, 1 +lbl_803A2698: +/* 803A2698 0039F5F8 A0 0D AE DA */ lhz r0, lbl_805A9A9A@sda21(r13) +/* 803A269C 0039F5FC 7C 1F 00 00 */ cmpw r31, r0 +/* 803A26A0 0039F600 41 80 FF 34 */ blt lbl_803A25D4 +/* 803A26A4 0039F604 38 60 FF FF */ li r3, -1 +lbl_803A26A8: +/* 803A26A8 0039F608 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A26AC 0039F60C 4B FE 74 1D */ bl _restgpr_27 +/* 803A26B0 0039F610 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A26B4 0039F614 7C 08 03 A6 */ mtlr r0 +/* 803A26B8 0039F618 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A26BC 0039F61C 4E 80 00 20 */ blr + +.global sub_803a26c0 +sub_803a26c0: +/* 803A26C0 0039F620 A0 84 00 04 */ lhz r4, 4(r4) +/* 803A26C4 0039F624 A0 03 00 04 */ lhz r0, 4(r3) +/* 803A26C8 0039F628 7C 64 00 50 */ subf r3, r4, r0 +/* 803A26CC 0039F62C 4E 80 00 20 */ blr + +.global dataGetCurve +dataGetCurve: +/* 803A26D0 0039F630 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A26D4 0039F634 7C 08 02 A6 */ mflr r0 +/* 803A26D8 0039F638 3C 80 80 55 */ lis r4, lbl_805540F8@ha +/* 803A26DC 0039F63C 3C C0 80 3A */ lis r6, sub_803a26c0@ha +/* 803A26E0 0039F640 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A26E4 0039F644 38 AD AE AC */ addi r5, r13, lbl_805A9A6C@sda21 +/* 803A26E8 0039F648 38 E6 26 C0 */ addi r7, r6, sub_803a26c0@l +/* 803A26EC 0039F64C 38 84 40 F8 */ addi r4, r4, lbl_805540F8@l +/* 803A26F0 0039F650 B0 65 00 04 */ sth r3, 4(r5) +/* 803A26F4 0039F654 38 6D AE AC */ addi r3, r13, lbl_805A9A6C@sda21 +/* 803A26F8 0039F658 A0 AD AE D8 */ lhz r5, lbl_805A9A98@sda21(r13) +/* 803A26FC 0039F65C 38 C0 00 08 */ li r6, 8 +/* 803A2700 0039F660 48 01 07 49 */ bl sndBSearch +/* 803A2704 0039F664 28 03 00 00 */ cmplwi r3, 0 +/* 803A2708 0039F668 90 6D AE A8 */ stw r3, lbl_805A9A68@sda21(r13) +/* 803A270C 0039F66C 41 82 00 0C */ beq lbl_803A2718 +/* 803A2710 0039F670 80 63 00 00 */ lwz r3, 0(r3) +/* 803A2714 0039F674 48 00 00 08 */ b lbl_803A271C +lbl_803A2718: +/* 803A2718 0039F678 38 60 00 00 */ li r3, 0 +lbl_803A271C: +/* 803A271C 0039F67C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A2720 0039F680 7C 08 03 A6 */ mtlr r0 +/* 803A2724 0039F684 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A2728 0039F688 4E 80 00 20 */ blr + +.global sub_803a272c +sub_803a272c: +/* 803A272C 0039F68C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A2730 0039F690 7C 08 02 A6 */ mflr r0 +/* 803A2734 0039F694 3C 80 80 55 */ lis r4, lbl_80552CF8@ha +/* 803A2738 0039F698 3C C0 80 3A */ lis r6, sub_803a26c0@ha +/* 803A273C 0039F69C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A2740 0039F6A0 38 AD AE A0 */ addi r5, r13, lbl_805A9A60@sda21 +/* 803A2744 0039F6A4 38 E6 26 C0 */ addi r7, r6, sub_803a26c0@l +/* 803A2748 0039F6A8 38 84 2C F8 */ addi r4, r4, lbl_80552CF8@l +/* 803A274C 0039F6AC B0 65 00 04 */ sth r3, 4(r5) +/* 803A2750 0039F6B0 38 6D AE A0 */ addi r3, r13, lbl_805A9A60@sda21 +/* 803A2754 0039F6B4 A0 AD AE D6 */ lhz r5, lbl_805A9A96@sda21(r13) +/* 803A2758 0039F6B8 38 C0 00 08 */ li r6, 8 +/* 803A275C 0039F6BC 48 01 06 ED */ bl sndBSearch +/* 803A2760 0039F6C0 28 03 00 00 */ cmplwi r3, 0 +/* 803A2764 0039F6C4 90 6D AE 9C */ stw r3, lbl_805A9A5C@sda21(r13) +/* 803A2768 0039F6C8 41 82 00 0C */ beq lbl_803A2774 +/* 803A276C 0039F6CC 80 63 00 00 */ lwz r3, 0(r3) +/* 803A2770 0039F6D0 48 00 00 08 */ b lbl_803A2778 +lbl_803A2774: +/* 803A2774 0039F6D4 38 60 00 00 */ li r3, 0 +lbl_803A2778: +/* 803A2778 0039F6D8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A277C 0039F6DC 7C 08 03 A6 */ mtlr r0 +/* 803A2780 0039F6E0 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A2784 0039F6E4 4E 80 00 20 */ blr + +.global sub_803a2788 +sub_803a2788: +/* 803A2788 0039F6E8 A0 84 00 04 */ lhz r4, 4(r4) +/* 803A278C 0039F6EC A0 03 00 04 */ lhz r0, 4(r3) +/* 803A2790 0039F6F0 7C 64 00 50 */ subf r3, r4, r0 +/* 803A2794 0039F6F4 4E 80 00 20 */ blr + +.global dataGetLayer +dataGetLayer: +/* 803A2798 0039F6F8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A279C 0039F6FC 7C 08 02 A6 */ mflr r0 +/* 803A27A0 0039F700 3C A0 80 56 */ lis r5, lbl_8055D318@ha +/* 803A27A4 0039F704 3C C0 80 55 */ lis r6, lbl_805534F8@ha +/* 803A27A8 0039F708 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A27AC 0039F70C 39 05 D3 18 */ addi r8, r5, lbl_8055D318@l +/* 803A27B0 0039F710 3C A0 80 3A */ lis r5, sub_803a2788@ha +/* 803A27B4 0039F714 38 06 34 F8 */ addi r0, r6, lbl_805534F8@l +/* 803A27B8 0039F718 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A27BC 0039F71C 38 E5 27 88 */ addi r7, r5, sub_803a2788@l +/* 803A27C0 0039F720 7C 9F 23 78 */ mr r31, r4 +/* 803A27C4 0039F724 7C 04 03 78 */ mr r4, r0 +/* 803A27C8 0039F728 B0 68 00 04 */ sth r3, 4(r8) +/* 803A27CC 0039F72C 7D 03 43 78 */ mr r3, r8 +/* 803A27D0 0039F730 A0 AD AE D4 */ lhz r5, lbl_805A9A94@sda21(r13) +/* 803A27D4 0039F734 38 C0 00 0C */ li r6, 0xc +/* 803A27D8 0039F738 48 01 06 71 */ bl sndBSearch +/* 803A27DC 0039F73C 28 03 00 00 */ cmplwi r3, 0 +/* 803A27E0 0039F740 90 6D AE 98 */ stw r3, lbl_805A9A58@sda21(r13) +/* 803A27E4 0039F744 41 82 00 18 */ beq lbl_803A27FC +/* 803A27E8 0039F748 A0 03 00 06 */ lhz r0, 6(r3) +/* 803A27EC 0039F74C B0 1F 00 00 */ sth r0, 0(r31) +/* 803A27F0 0039F750 80 6D AE 98 */ lwz r3, lbl_805A9A58@sda21(r13) +/* 803A27F4 0039F754 80 63 00 00 */ lwz r3, 0(r3) +/* 803A27F8 0039F758 48 00 00 08 */ b lbl_803A2800 +lbl_803A27FC: +/* 803A27FC 0039F75C 38 60 00 00 */ li r3, 0 +lbl_803A2800: +/* 803A2800 0039F760 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A2804 0039F764 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A2808 0039F768 7C 08 03 A6 */ mtlr r0 +/* 803A280C 0039F76C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A2810 0039F770 4E 80 00 20 */ blr + +.global sub_803a2814 +sub_803a2814: +/* 803A2814 0039F774 A0 84 00 00 */ lhz r4, 0(r4) +/* 803A2818 0039F778 A0 03 00 00 */ lhz r0, 0(r3) +/* 803A281C 0039F77C 7C 64 00 50 */ subf r3, r4, r0 +/* 803A2820 0039F780 4E 80 00 20 */ blr + +.global dataGetFX +dataGetFX: +/* 803A2824 0039F784 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A2828 0039F788 7C 08 02 A6 */ mflr r0 +/* 803A282C 0039F78C 3C 80 80 56 */ lis r4, lbl_8055D324@ha +/* 803A2830 0039F790 3C A0 80 56 */ lis r5, lbl_805586F8@ha +/* 803A2834 0039F794 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A2838 0039F798 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A283C 0039F79C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A2840 0039F7A0 3B C4 D3 24 */ addi r30, r4, lbl_8055D324@l +/* 803A2844 0039F7A4 3C 80 80 3A */ lis r4, sub_803a2814@ha +/* 803A2848 0039F7A8 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A284C 0039F7AC 3B A5 86 F8 */ addi r29, r5, lbl_805586F8@l +/* 803A2850 0039F7B0 3B E4 28 14 */ addi r31, r4, sub_803a2814@l +/* 803A2854 0039F7B4 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A2858 0039F7B8 3B 80 00 00 */ li r28, 0 +/* 803A285C 0039F7BC B0 7E 00 00 */ sth r3, 0(r30) +/* 803A2860 0039F7C0 48 00 00 30 */ b lbl_803A2890 +lbl_803A2864: +/* 803A2864 0039F7C4 80 9D 00 04 */ lwz r4, 4(r29) +/* 803A2868 0039F7C8 7F C3 F3 78 */ mr r3, r30 +/* 803A286C 0039F7CC A0 BD 00 02 */ lhz r5, 2(r29) +/* 803A2870 0039F7D0 7F E7 FB 78 */ mr r7, r31 +/* 803A2874 0039F7D4 38 C0 00 0A */ li r6, 0xa +/* 803A2878 0039F7D8 48 01 05 D1 */ bl sndBSearch +/* 803A287C 0039F7DC 28 03 00 00 */ cmplwi r3, 0 +/* 803A2880 0039F7E0 41 82 00 08 */ beq lbl_803A2888 +/* 803A2884 0039F7E4 48 00 00 1C */ b lbl_803A28A0 +lbl_803A2888: +/* 803A2888 0039F7E8 3B BD 00 08 */ addi r29, r29, 8 +/* 803A288C 0039F7EC 3B 9C 00 01 */ addi r28, r28, 1 +lbl_803A2890: +/* 803A2890 0039F7F0 A0 0D AE D0 */ lhz r0, lbl_805A9A90@sda21(r13) +/* 803A2894 0039F7F4 7C 1C 00 00 */ cmpw r28, r0 +/* 803A2898 0039F7F8 41 80 FF CC */ blt lbl_803A2864 +/* 803A289C 0039F7FC 38 60 00 00 */ li r3, 0 +lbl_803A28A0: +/* 803A28A0 0039F800 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A28A4 0039F804 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A28A8 0039F808 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A28AC 0039F80C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A28B0 0039F810 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A28B4 0039F814 7C 08 03 A6 */ mtlr r0 +/* 803A28B8 0039F818 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A28BC 0039F81C 4E 80 00 20 */ blr + +.global dataInit +dataInit: +/* 803A28C0 0039F820 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A28C4 0039F824 7C 08 02 A6 */ mflr r0 +/* 803A28C8 0039F828 38 A0 00 00 */ li r5, 0 +/* 803A28CC 0039F82C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A28D0 0039F830 38 00 00 00 */ li r0, 0 +/* 803A28D4 0039F834 2C 05 02 00 */ cmpwi r5, 0x200 +/* 803A28D8 0039F838 B0 0D AE DA */ sth r0, lbl_805A9A9A@sda21(r13) +/* 803A28DC 0039F83C B0 0D AE D8 */ sth r0, lbl_805A9A98@sda21(r13) +/* 803A28E0 0039F840 B0 0D AE D6 */ sth r0, lbl_805A9A96@sda21(r13) +/* 803A28E4 0039F844 B0 0D AE D4 */ sth r0, lbl_805A9A94@sda21(r13) +/* 803A28E8 0039F848 B0 0D AE D0 */ sth r0, lbl_805A9A90@sda21(r13) +/* 803A28EC 0039F84C B0 0D AE D2 */ sth r0, lbl_805A9A92@sda21(r13) +/* 803A28F0 0039F850 40 80 00 A0 */ bge lbl_803A2990 +/* 803A28F4 0039F854 3C A0 80 56 */ lis r5, lbl_80558AF8@ha +/* 803A28F8 0039F858 38 00 00 20 */ li r0, 0x20 +/* 803A28FC 0039F85C 38 A5 8A F8 */ addi r5, r5, lbl_80558AF8@l +/* 803A2900 0039F860 7C 09 03 A6 */ mtctr r0 +lbl_803A2904: +/* 803A2904 0039F864 38 00 00 00 */ li r0, 0 +/* 803A2908 0039F868 B0 05 00 00 */ sth r0, 0(r5) +/* 803A290C 0039F86C B0 05 00 02 */ sth r0, 2(r5) +/* 803A2910 0039F870 B0 05 00 04 */ sth r0, 4(r5) +/* 803A2914 0039F874 B0 05 00 06 */ sth r0, 6(r5) +/* 803A2918 0039F878 B0 05 00 08 */ sth r0, 8(r5) +/* 803A291C 0039F87C B0 05 00 0A */ sth r0, 0xa(r5) +/* 803A2920 0039F880 B0 05 00 0C */ sth r0, 0xc(r5) +/* 803A2924 0039F884 B0 05 00 0E */ sth r0, 0xe(r5) +/* 803A2928 0039F888 B0 05 00 10 */ sth r0, 0x10(r5) +/* 803A292C 0039F88C B0 05 00 12 */ sth r0, 0x12(r5) +/* 803A2930 0039F890 B0 05 00 14 */ sth r0, 0x14(r5) +/* 803A2934 0039F894 B0 05 00 16 */ sth r0, 0x16(r5) +/* 803A2938 0039F898 B0 05 00 18 */ sth r0, 0x18(r5) +/* 803A293C 0039F89C B0 05 00 1A */ sth r0, 0x1a(r5) +/* 803A2940 0039F8A0 B0 05 00 1C */ sth r0, 0x1c(r5) +/* 803A2944 0039F8A4 B0 05 00 1E */ sth r0, 0x1e(r5) +/* 803A2948 0039F8A8 B0 05 00 20 */ sth r0, 0x20(r5) +/* 803A294C 0039F8AC B0 05 00 22 */ sth r0, 0x22(r5) +/* 803A2950 0039F8B0 B0 05 00 24 */ sth r0, 0x24(r5) +/* 803A2954 0039F8B4 B0 05 00 26 */ sth r0, 0x26(r5) +/* 803A2958 0039F8B8 B0 05 00 28 */ sth r0, 0x28(r5) +/* 803A295C 0039F8BC B0 05 00 2A */ sth r0, 0x2a(r5) +/* 803A2960 0039F8C0 B0 05 00 2C */ sth r0, 0x2c(r5) +/* 803A2964 0039F8C4 B0 05 00 2E */ sth r0, 0x2e(r5) +/* 803A2968 0039F8C8 B0 05 00 30 */ sth r0, 0x30(r5) +/* 803A296C 0039F8CC B0 05 00 32 */ sth r0, 0x32(r5) +/* 803A2970 0039F8D0 B0 05 00 34 */ sth r0, 0x34(r5) +/* 803A2974 0039F8D4 B0 05 00 36 */ sth r0, 0x36(r5) +/* 803A2978 0039F8D8 B0 05 00 38 */ sth r0, 0x38(r5) +/* 803A297C 0039F8DC B0 05 00 3A */ sth r0, 0x3a(r5) +/* 803A2980 0039F8E0 B0 05 00 3C */ sth r0, 0x3c(r5) +/* 803A2984 0039F8E4 B0 05 00 3E */ sth r0, 0x3e(r5) +/* 803A2988 0039F8E8 38 A5 00 40 */ addi r5, r5, 0x40 +/* 803A298C 0039F8EC 42 00 FF 78 */ bdnz lbl_803A2904 +lbl_803A2990: +/* 803A2990 0039F8F0 48 01 13 D9 */ bl sub_803b3d68 +/* 803A2994 0039F8F4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A2998 0039F8F8 7C 08 03 A6 */ mtlr r0 +/* 803A299C 0039F8FC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A29A0 0039F900 4E 80 00 20 */ blr + +.global dataExit +dataExit: +/* 803A29A4 0039F904 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A29A8 0039F908 7C 08 02 A6 */ mflr r0 +/* 803A29AC 0039F90C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A29B0 0039F910 48 01 13 DD */ bl sub_803b3d8c +/* 803A29B4 0039F914 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A29B8 0039F918 7C 08 03 A6 */ mtlr r0 +/* 803A29BC 0039F91C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A29C0 0039F920 4E 80 00 20 */ blr diff --git a/asm/musyx/synthmacros.s b/asm/musyx/synthmacros.s new file mode 100644 index 00000000..292d4af2 --- /dev/null +++ b/asm/musyx/synthmacros.s @@ -0,0 +1,5403 @@ +.include "macros.inc" + +.section .text, "ax" + +.global mcmdWait +mcmdWait: +/* 803A29C4 0039F924 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A29C8 0039F928 7C 08 02 A6 */ mflr r0 +/* 803A29CC 0039F92C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A29D0 0039F930 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A29D4 0039F934 7C 9F 23 78 */ mr r31, r4 +/* 803A29D8 0039F938 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A29DC 0039F93C 7C 7E 1B 78 */ mr r30, r3 +/* 803A29E0 0039F940 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A29E4 0039F944 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A29E8 0039F948 80 04 00 04 */ lwz r0, 4(r4) +/* 803A29EC 0039F94C 54 00 84 3F */ rlwinm. r0, r0, 0x10, 0x10, 0x1f +/* 803A29F0 0039F950 90 01 00 08 */ stw r0, 8(r1) +/* 803A29F4 0039F954 41 82 02 9C */ beq lbl_803A2C90 +/* 803A29F8 0039F958 80 1F 00 00 */ lwz r0, 0(r31) +/* 803A29FC 0039F95C 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f +/* 803A2A00 0039F960 41 82 00 6C */ beq lbl_803A2A6C +/* 803A2A04 0039F964 80 BE 01 14 */ lwz r5, 0x114(r30) +/* 803A2A08 0039F968 38 80 00 00 */ li r4, 0 +/* 803A2A0C 0039F96C 80 DE 01 18 */ lwz r6, 0x118(r30) +/* 803A2A10 0039F970 38 60 00 08 */ li r3, 8 +/* 803A2A14 0039F974 7C A0 20 38 */ and r0, r5, r4 +/* 803A2A18 0039F978 7C C3 18 38 */ and r3, r6, r3 +/* 803A2A1C 0039F97C 7C 63 22 78 */ xor r3, r3, r4 +/* 803A2A20 0039F980 7C 00 22 78 */ xor r0, r0, r4 +/* 803A2A24 0039F984 7C 60 03 79 */ or. r0, r3, r0 +/* 803A2A28 0039F988 41 82 00 34 */ beq lbl_803A2A5C +/* 803A2A2C 0039F98C 38 00 01 00 */ li r0, 0x100 +/* 803A2A30 0039F990 7C C3 20 38 */ and r3, r6, r4 +/* 803A2A34 0039F994 7C A0 00 38 */ and r0, r5, r0 +/* 803A2A38 0039F998 7C 63 22 78 */ xor r3, r3, r4 +/* 803A2A3C 0039F99C 7C 00 22 78 */ xor r0, r0, r4 +/* 803A2A40 0039F9A0 7C 60 03 79 */ or. r0, r3, r0 +/* 803A2A44 0039F9A4 40 82 00 0C */ bne lbl_803A2A50 +/* 803A2A48 0039F9A8 38 60 00 00 */ li r3, 0 +/* 803A2A4C 0039F9AC 48 00 02 48 */ b lbl_803A2C94 +lbl_803A2A50: +/* 803A2A50 0039F9B0 90 DE 01 18 */ stw r6, 0x118(r30) +/* 803A2A54 0039F9B4 60 A0 04 00 */ ori r0, r5, 0x400 +/* 803A2A58 0039F9B8 90 1E 01 14 */ stw r0, 0x114(r30) +lbl_803A2A5C: +/* 803A2A5C 0039F9BC 80 1E 01 18 */ lwz r0, 0x118(r30) +/* 803A2A60 0039F9C0 60 00 00 04 */ ori r0, r0, 4 +/* 803A2A64 0039F9C4 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A2A68 0039F9C8 48 00 00 24 */ b lbl_803A2A8C +lbl_803A2A6C: +/* 803A2A6C 0039F9CC 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 803A2A70 0039F9D0 38 00 FF FB */ li r0, -5 +/* 803A2A74 0039F9D4 80 9E 01 14 */ lwz r4, 0x114(r30) +/* 803A2A78 0039F9D8 38 60 FF FF */ li r3, -1 +/* 803A2A7C 0039F9DC 7C A0 00 38 */ and r0, r5, r0 +/* 803A2A80 0039F9E0 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A2A84 0039F9E4 7C 80 18 38 */ and r0, r4, r3 +/* 803A2A88 0039F9E8 90 1E 01 14 */ stw r0, 0x114(r30) +lbl_803A2A8C: +/* 803A2A8C 0039F9EC 80 1F 00 00 */ lwz r0, 0(r31) +/* 803A2A90 0039F9F0 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f +/* 803A2A94 0039F9F4 41 82 00 5C */ beq lbl_803A2AF0 +/* 803A2A98 0039F9F8 80 1E 01 14 */ lwz r0, 0x114(r30) +/* 803A2A9C 0039F9FC 38 80 00 00 */ li r4, 0 +/* 803A2AA0 0039FA00 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 803A2AA4 0039FA04 38 60 00 20 */ li r3, 0x20 +/* 803A2AA8 0039FA08 7C 00 20 38 */ and r0, r0, r4 +/* 803A2AAC 0039FA0C 7C A3 18 38 */ and r3, r5, r3 +/* 803A2AB0 0039FA10 7C 63 22 78 */ xor r3, r3, r4 +/* 803A2AB4 0039FA14 7C 00 22 78 */ xor r0, r0, r4 +/* 803A2AB8 0039FA18 7C 60 03 79 */ or. r0, r3, r0 +/* 803A2ABC 0039FA1C 40 82 00 20 */ bne lbl_803A2ADC +/* 803A2AC0 0039FA20 80 1E 00 F4 */ lwz r0, 0xf4(r30) +/* 803A2AC4 0039FA24 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A2AC8 0039FA28 48 01 06 D5 */ bl hwIsActive +/* 803A2ACC 0039FA2C 28 03 00 00 */ cmplwi r3, 0 +/* 803A2AD0 0039FA30 40 82 00 0C */ bne lbl_803A2ADC +/* 803A2AD4 0039FA34 38 60 00 00 */ li r3, 0 +/* 803A2AD8 0039FA38 48 00 01 BC */ b lbl_803A2C94 +lbl_803A2ADC: +/* 803A2ADC 0039FA3C 80 9E 01 18 */ lwz r4, 0x118(r30) +/* 803A2AE0 0039FA40 3C 00 00 04 */ lis r0, 4 +/* 803A2AE4 0039FA44 7C 80 03 78 */ or r0, r4, r0 +/* 803A2AE8 0039FA48 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A2AEC 0039FA4C 48 00 00 28 */ b lbl_803A2B14 +lbl_803A2AF0: +/* 803A2AF0 0039FA50 3C 60 FF FC */ lis r3, 0xFFFBFFFF@ha +/* 803A2AF4 0039FA54 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 803A2AF8 0039FA58 38 03 FF FF */ addi r0, r3, 0xFFFBFFFF@l +/* 803A2AFC 0039FA5C 80 9E 01 14 */ lwz r4, 0x114(r30) +/* 803A2B00 0039FA60 7C A0 00 38 */ and r0, r5, r0 +/* 803A2B04 0039FA64 38 60 FF FF */ li r3, -1 +/* 803A2B08 0039FA68 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A2B0C 0039FA6C 7C 80 18 38 */ and r0, r4, r3 +/* 803A2B10 0039FA70 90 1E 01 14 */ stw r0, 0x114(r30) +lbl_803A2B14: +/* 803A2B14 0039FA74 80 1F 00 00 */ lwz r0, 0(r31) +/* 803A2B18 0039FA78 54 00 87 FF */ rlwinm. r0, r0, 0x10, 0x1f, 0x1f +/* 803A2B1C 0039FA7C 41 82 00 20 */ beq lbl_803A2B3C +/* 803A2B20 0039FA80 48 01 02 81 */ bl sndRand +/* 803A2B24 0039FA84 80 81 00 08 */ lwz r4, 8(r1) +/* 803A2B28 0039FA88 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A2B2C 0039FA8C 7C 03 23 96 */ divwu r0, r3, r4 +/* 803A2B30 0039FA90 7C 00 21 D6 */ mullw r0, r0, r4 +/* 803A2B34 0039FA94 7C 00 18 50 */ subf r0, r0, r3 +/* 803A2B38 0039FA98 90 01 00 08 */ stw r0, 8(r1) +lbl_803A2B3C: +/* 803A2B3C 0039FA9C 80 01 00 08 */ lwz r0, 8(r1) +/* 803A2B40 0039FAA0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A2B44 0039FAA4 41 82 00 F4 */ beq lbl_803A2C38 +/* 803A2B48 0039FAA8 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A2B4C 0039FAAC 54 1C C7 FF */ rlwinm. r28, r0, 0x18, 0x1f, 0x1f +/* 803A2B50 0039FAB0 41 82 00 10 */ beq lbl_803A2B60 +/* 803A2B54 0039FAB4 38 61 00 08 */ addi r3, r1, 8 +/* 803A2B58 0039FAB8 48 01 03 95 */ bl dGeomDisable +/* 803A2B5C 0039FABC 48 00 00 10 */ b lbl_803A2B6C +lbl_803A2B60: +/* 803A2B60 0039FAC0 7F C4 F3 78 */ mr r4, r30 +/* 803A2B64 0039FAC4 38 61 00 08 */ addi r3, r1, 8 +/* 803A2B68 0039FAC8 48 01 03 95 */ bl sndConvertTicks +lbl_803A2B6C: +/* 803A2B6C 0039FACC 28 1C 00 00 */ cmplwi r28, 0 +/* 803A2B70 0039FAD0 41 82 00 50 */ beq lbl_803A2BC0 +/* 803A2B74 0039FAD4 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A2B78 0039FAD8 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803A2B7C 0039FADC 41 82 00 24 */ beq lbl_803A2BA0 +/* 803A2B80 0039FAE0 80 9E 00 94 */ lwz r4, 0x94(r30) +/* 803A2B84 0039FAE4 80 01 00 08 */ lwz r0, 8(r1) +/* 803A2B88 0039FAE8 80 7E 00 90 */ lwz r3, 0x90(r30) +/* 803A2B8C 0039FAEC 7C 04 00 14 */ addc r0, r4, r0 +/* 803A2B90 0039FAF0 90 1E 00 9C */ stw r0, 0x9c(r30) +/* 803A2B94 0039FAF4 7C 03 01 94 */ addze r0, r3 +/* 803A2B98 0039FAF8 90 1E 00 98 */ stw r0, 0x98(r30) +/* 803A2B9C 0039FAFC 48 00 00 60 */ b lbl_803A2BFC +lbl_803A2BA0: +/* 803A2BA0 0039FB00 80 8D AE EC */ lwz r4, lbl_805A9AAC@sda21(r13) +/* 803A2BA4 0039FB04 80 01 00 08 */ lwz r0, 8(r1) +/* 803A2BA8 0039FB08 80 6D AE E8 */ lwz r3, lbl_805A9AA8@sda21(r13) +/* 803A2BAC 0039FB0C 7C 04 00 14 */ addc r0, r4, r0 +/* 803A2BB0 0039FB10 90 1E 00 9C */ stw r0, 0x9c(r30) +/* 803A2BB4 0039FB14 7C 03 01 94 */ addze r0, r3 +/* 803A2BB8 0039FB18 90 1E 00 98 */ stw r0, 0x98(r30) +/* 803A2BBC 0039FB1C 48 00 00 40 */ b lbl_803A2BFC +lbl_803A2BC0: +/* 803A2BC0 0039FB20 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A2BC4 0039FB24 54 00 07 FF */ clrlwi. r0, r0, 0x1f +/* 803A2BC8 0039FB28 41 82 00 18 */ beq lbl_803A2BE0 +/* 803A2BCC 0039FB2C 80 61 00 08 */ lwz r3, 8(r1) +/* 803A2BD0 0039FB30 38 00 00 00 */ li r0, 0 +/* 803A2BD4 0039FB34 90 7E 00 9C */ stw r3, 0x9c(r30) +/* 803A2BD8 0039FB38 90 1E 00 98 */ stw r0, 0x98(r30) +/* 803A2BDC 0039FB3C 48 00 00 20 */ b lbl_803A2BFC +lbl_803A2BE0: +/* 803A2BE0 0039FB40 80 9E 00 A4 */ lwz r4, 0xa4(r30) +/* 803A2BE4 0039FB44 80 01 00 08 */ lwz r0, 8(r1) +/* 803A2BE8 0039FB48 80 7E 00 A0 */ lwz r3, 0xa0(r30) +/* 803A2BEC 0039FB4C 7C 04 00 14 */ addc r0, r4, r0 +/* 803A2BF0 0039FB50 90 1E 00 9C */ stw r0, 0x9c(r30) +/* 803A2BF4 0039FB54 7C 03 01 94 */ addze r0, r3 +/* 803A2BF8 0039FB58 90 1E 00 98 */ stw r0, 0x98(r30) +lbl_803A2BFC: +/* 803A2BFC 0039FB5C 80 BE 00 9C */ lwz r5, 0x9c(r30) +/* 803A2C00 0039FB60 80 0D AE EC */ lwz r0, lbl_805A9AAC@sda21(r13) +/* 803A2C04 0039FB64 80 9E 00 98 */ lwz r4, 0x98(r30) +/* 803A2C08 0039FB68 80 6D AE E8 */ lwz r3, lbl_805A9AA8@sda21(r13) +/* 803A2C0C 0039FB6C 7C 05 00 10 */ subfc r0, r5, r0 +/* 803A2C10 0039FB70 7C 04 19 10 */ subfe r0, r4, r3 +/* 803A2C14 0039FB74 7C 1D E9 10 */ subfe r0, r29, r29 +/* 803A2C18 0039FB78 7C 00 00 D1 */ neg. r0, r0 +/* 803A2C1C 0039FB7C 40 82 00 28 */ bne lbl_803A2C44 +/* 803A2C20 0039FB80 90 BE 00 A4 */ stw r5, 0xa4(r30) +/* 803A2C24 0039FB84 38 00 00 00 */ li r0, 0 +/* 803A2C28 0039FB88 90 9E 00 A0 */ stw r4, 0xa0(r30) +/* 803A2C2C 0039FB8C 90 1E 00 9C */ stw r0, 0x9c(r30) +/* 803A2C30 0039FB90 90 1E 00 98 */ stw r0, 0x98(r30) +/* 803A2C34 0039FB94 48 00 00 10 */ b lbl_803A2C44 +lbl_803A2C38: +/* 803A2C38 0039FB98 38 00 FF FF */ li r0, -1 +/* 803A2C3C 0039FB9C 90 1E 00 9C */ stw r0, 0x9c(r30) +/* 803A2C40 0039FBA0 90 1E 00 98 */ stw r0, 0x98(r30) +lbl_803A2C44: +/* 803A2C44 0039FBA4 80 9E 00 98 */ lwz r4, 0x98(r30) +/* 803A2C48 0039FBA8 38 60 00 00 */ li r3, 0 +/* 803A2C4C 0039FBAC 80 BE 00 9C */ lwz r5, 0x9c(r30) +/* 803A2C50 0039FBB0 7C 80 1A 78 */ xor r0, r4, r3 +/* 803A2C54 0039FBB4 7C A3 1A 78 */ xor r3, r5, r3 +/* 803A2C58 0039FBB8 7C 60 03 79 */ or. r0, r3, r0 +/* 803A2C5C 0039FBBC 41 82 00 34 */ beq lbl_803A2C90 +/* 803A2C60 0039FBC0 38 00 FF FF */ li r0, -1 +/* 803A2C64 0039FBC4 7C A3 02 78 */ xor r3, r5, r0 +/* 803A2C68 0039FBC8 7C 80 02 78 */ xor r0, r4, r0 +/* 803A2C6C 0039FBCC 7C 60 03 79 */ or. r0, r3, r0 +/* 803A2C70 0039FBD0 41 82 00 0C */ beq lbl_803A2C7C +/* 803A2C74 0039FBD4 7F C3 F3 78 */ mr r3, r30 +/* 803A2C78 0039FBD8 48 00 42 A1 */ bl TimeQueueAdd +lbl_803A2C7C: +/* 803A2C7C 0039FBDC 7F C3 F3 78 */ mr r3, r30 +/* 803A2C80 0039FBE0 38 80 00 01 */ li r4, 1 +/* 803A2C84 0039FBE4 48 00 44 41 */ bl macMakeInactive +/* 803A2C88 0039FBE8 38 60 00 01 */ li r3, 1 +/* 803A2C8C 0039FBEC 48 00 00 08 */ b lbl_803A2C94 +lbl_803A2C90: +/* 803A2C90 0039FBF0 38 60 00 00 */ li r3, 0 +lbl_803A2C94: +/* 803A2C94 0039FBF4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A2C98 0039FBF8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A2C9C 0039FBFC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A2CA0 0039FC00 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A2CA4 0039FC04 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A2CA8 0039FC08 7C 08 03 A6 */ mtlr r0 +/* 803A2CAC 0039FC0C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A2CB0 0039FC10 4E 80 00 20 */ blr + +.global mcmdGosub +mcmdGosub: +/* 803A2CB4 0039FC14 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A2CB8 0039FC18 7C 08 02 A6 */ mflr r0 +/* 803A2CBC 0039FC1C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A2CC0 0039FC20 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A2CC4 0039FC24 7C 9F 23 78 */ mr r31, r4 +/* 803A2CC8 0039FC28 93 C1 00 08 */ stw r30, 8(r1) +/* 803A2CCC 0039FC2C 7C 7E 1B 78 */ mr r30, r3 +/* 803A2CD0 0039FC30 80 04 00 00 */ lwz r0, 0(r4) +/* 803A2CD4 0039FC34 54 03 84 3E */ srwi r3, r0, 0x10 +/* 803A2CD8 0039FC38 4B FF F8 25 */ bl dataGetMacro +/* 803A2CDC 0039FC3C 28 03 00 00 */ cmplwi r3, 0 +/* 803A2CE0 0039FC40 41 82 00 78 */ beq lbl_803A2D58 +/* 803A2CE4 0039FC44 88 9E 00 8D */ lbz r4, 0x8d(r30) +/* 803A2CE8 0039FC48 38 04 00 01 */ addi r0, r4, 1 +/* 803A2CEC 0039FC4C 54 00 07 BE */ clrlwi r0, r0, 0x1e +/* 803A2CF0 0039FC50 98 1E 00 8D */ stb r0, 0x8d(r30) +/* 803A2CF4 0039FC54 88 1E 00 8D */ lbz r0, 0x8d(r30) +/* 803A2CF8 0039FC58 80 BE 00 34 */ lwz r5, 0x34(r30) +/* 803A2CFC 0039FC5C 54 00 18 38 */ slwi r0, r0, 3 +/* 803A2D00 0039FC60 7C 9E 02 14 */ add r4, r30, r0 +/* 803A2D04 0039FC64 90 A4 00 6C */ stw r5, 0x6c(r4) +/* 803A2D08 0039FC68 88 1E 00 8D */ lbz r0, 0x8d(r30) +/* 803A2D0C 0039FC6C 80 BE 00 38 */ lwz r5, 0x38(r30) +/* 803A2D10 0039FC70 54 00 18 38 */ slwi r0, r0, 3 +/* 803A2D14 0039FC74 7C 9E 02 14 */ add r4, r30, r0 +/* 803A2D18 0039FC78 90 A4 00 70 */ stw r5, 0x70(r4) +/* 803A2D1C 0039FC7C 88 9E 00 8C */ lbz r4, 0x8c(r30) +/* 803A2D20 0039FC80 38 84 00 01 */ addi r4, r4, 1 +/* 803A2D24 0039FC84 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803A2D28 0039FC88 98 9E 00 8C */ stb r4, 0x8c(r30) +/* 803A2D2C 0039FC8C 28 00 00 04 */ cmplwi r0, 4 +/* 803A2D30 0039FC90 40 81 00 0C */ ble lbl_803A2D3C +/* 803A2D34 0039FC94 38 00 00 04 */ li r0, 4 +/* 803A2D38 0039FC98 98 1E 00 8C */ stb r0, 0x8c(r30) +lbl_803A2D3C: +/* 803A2D3C 0039FC9C 90 7E 00 34 */ stw r3, 0x34(r30) +/* 803A2D40 0039FCA0 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A2D44 0039FCA4 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c +/* 803A2D48 0039FCA8 7C 03 02 14 */ add r0, r3, r0 +/* 803A2D4C 0039FCAC 38 60 00 00 */ li r3, 0 +/* 803A2D50 0039FCB0 90 1E 00 38 */ stw r0, 0x38(r30) +/* 803A2D54 0039FCB4 48 00 00 18 */ b lbl_803A2D6C +lbl_803A2D58: +/* 803A2D58 0039FCB8 7F C3 F3 78 */ mr r3, r30 +/* 803A2D5C 0039FCBC 48 00 49 E5 */ bl sub_803a7740 +/* 803A2D60 0039FCC0 7F C3 F3 78 */ mr r3, r30 +/* 803A2D64 0039FCC4 48 00 55 41 */ bl voiceFree +/* 803A2D68 0039FCC8 38 60 00 01 */ li r3, 1 +lbl_803A2D6C: +/* 803A2D6C 0039FCCC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A2D70 0039FCD0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A2D74 0039FCD4 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A2D78 0039FCD8 7C 08 03 A6 */ mtlr r0 +/* 803A2D7C 0039FCDC 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A2D80 0039FCE0 4E 80 00 20 */ blr + +.global mcmdLoop +mcmdLoop: +/* 803A2D84 0039FCE4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A2D88 0039FCE8 7C 08 02 A6 */ mflr r0 +/* 803A2D8C 0039FCEC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A2D90 0039FCF0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A2D94 0039FCF4 7C 9F 23 78 */ mr r31, r4 +/* 803A2D98 0039FCF8 93 C1 00 08 */ stw r30, 8(r1) +/* 803A2D9C 0039FCFC 7C 7E 1B 78 */ mr r30, r3 +/* 803A2DA0 0039FD00 A0 03 00 AA */ lhz r0, 0xaa(r3) +/* 803A2DA4 0039FD04 28 00 00 00 */ cmplwi r0, 0 +/* 803A2DA8 0039FD08 40 82 00 58 */ bne lbl_803A2E00 +/* 803A2DAC 0039FD0C 80 1F 00 00 */ lwz r0, 0(r31) +/* 803A2DB0 0039FD10 54 00 87 FF */ rlwinm. r0, r0, 0x10, 0x1f, 0x1f +/* 803A2DB4 0039FD14 41 82 00 28 */ beq lbl_803A2DDC +/* 803A2DB8 0039FD18 48 00 FF E9 */ bl sndRand +/* 803A2DBC 0039FD1C 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A2DC0 0039FD20 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 803A2DC4 0039FD24 54 03 84 3E */ srwi r3, r0, 0x10 +/* 803A2DC8 0039FD28 7C 04 1B D6 */ divw r0, r4, r3 +/* 803A2DCC 0039FD2C 7C 00 19 D6 */ mullw r0, r0, r3 +/* 803A2DD0 0039FD30 7C 00 20 50 */ subf r0, r0, r4 +/* 803A2DD4 0039FD34 B0 1E 00 AA */ sth r0, 0xaa(r30) +/* 803A2DD8 0039FD38 48 00 00 10 */ b lbl_803A2DE8 +lbl_803A2DDC: +/* 803A2DDC 0039FD3C 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A2DE0 0039FD40 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A2DE4 0039FD44 B0 1E 00 AA */ sth r0, 0xaa(r30) +lbl_803A2DE8: +/* 803A2DE8 0039FD48 A0 7E 00 AA */ lhz r3, 0xaa(r30) +/* 803A2DEC 0039FD4C 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A2DF0 0039FD50 41 82 00 2C */ beq lbl_803A2E1C +/* 803A2DF4 0039FD54 38 03 00 01 */ addi r0, r3, 1 +/* 803A2DF8 0039FD58 B0 1E 00 AA */ sth r0, 0xaa(r30) +/* 803A2DFC 0039FD5C 48 00 00 0C */ b lbl_803A2E08 +lbl_803A2E00: +/* 803A2E00 0039FD60 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A2E04 0039FD64 41 82 00 18 */ beq lbl_803A2E1C +lbl_803A2E08: +/* 803A2E08 0039FD68 A0 7E 00 AA */ lhz r3, 0xaa(r30) +/* 803A2E0C 0039FD6C 38 63 FF FF */ addi r3, r3, -1 +/* 803A2E10 0039FD70 54 60 04 3F */ clrlwi. r0, r3, 0x10 +/* 803A2E14 0039FD74 B0 7E 00 AA */ sth r3, 0xaa(r30) +/* 803A2E18 0039FD78 41 82 00 A8 */ beq lbl_803A2EC0 +lbl_803A2E1C: +/* 803A2E1C 0039FD7C 80 FF 00 00 */ lwz r7, 0(r31) +/* 803A2E20 0039FD80 54 E0 C7 FF */ rlwinm. r0, r7, 0x18, 0x1f, 0x1f +/* 803A2E24 0039FD84 41 82 00 38 */ beq lbl_803A2E5C +/* 803A2E28 0039FD88 80 7E 01 14 */ lwz r3, 0x114(r30) +/* 803A2E2C 0039FD8C 38 00 01 00 */ li r0, 0x100 +/* 803A2E30 0039FD90 80 DE 01 18 */ lwz r6, 0x118(r30) +/* 803A2E34 0039FD94 38 A0 00 08 */ li r5, 8 +/* 803A2E38 0039FD98 7C 60 00 38 */ and r0, r3, r0 +/* 803A2E3C 0039FD9C 38 80 00 00 */ li r4, 0 +/* 803A2E40 0039FDA0 7C C3 28 38 */ and r3, r6, r5 +/* 803A2E44 0039FDA4 7C 63 2A 78 */ xor r3, r3, r5 +/* 803A2E48 0039FDA8 7C 00 22 78 */ xor r0, r0, r4 +/* 803A2E4C 0039FDAC 7C 60 03 79 */ or. r0, r3, r0 +/* 803A2E50 0039FDB0 40 82 00 0C */ bne lbl_803A2E5C +/* 803A2E54 0039FDB4 B0 9E 00 AA */ sth r4, 0xaa(r30) +/* 803A2E58 0039FDB8 48 00 00 68 */ b lbl_803A2EC0 +lbl_803A2E5C: +/* 803A2E5C 0039FDBC 54 E0 47 FF */ rlwinm. r0, r7, 8, 0x1f, 0x1f +/* 803A2E60 0039FDC0 41 82 00 4C */ beq lbl_803A2EAC +/* 803A2E64 0039FDC4 80 1E 01 14 */ lwz r0, 0x114(r30) +/* 803A2E68 0039FDC8 38 80 00 00 */ li r4, 0 +/* 803A2E6C 0039FDCC 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 803A2E70 0039FDD0 38 60 00 20 */ li r3, 0x20 +/* 803A2E74 0039FDD4 7C 00 20 38 */ and r0, r0, r4 +/* 803A2E78 0039FDD8 7C A3 18 38 */ and r3, r5, r3 +/* 803A2E7C 0039FDDC 7C 63 22 78 */ xor r3, r3, r4 +/* 803A2E80 0039FDE0 7C 00 22 78 */ xor r0, r0, r4 +/* 803A2E84 0039FDE4 7C 60 03 79 */ or. r0, r3, r0 +/* 803A2E88 0039FDE8 40 82 00 24 */ bne lbl_803A2EAC +/* 803A2E8C 0039FDEC 80 1E 00 F4 */ lwz r0, 0xf4(r30) +/* 803A2E90 0039FDF0 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A2E94 0039FDF4 48 01 03 09 */ bl hwIsActive +/* 803A2E98 0039FDF8 28 03 00 00 */ cmplwi r3, 0 +/* 803A2E9C 0039FDFC 40 82 00 10 */ bne lbl_803A2EAC +/* 803A2EA0 0039FE00 38 00 00 00 */ li r0, 0 +/* 803A2EA4 0039FE04 B0 1E 00 AA */ sth r0, 0xaa(r30) +/* 803A2EA8 0039FE08 48 00 00 18 */ b lbl_803A2EC0 +lbl_803A2EAC: +/* 803A2EAC 0039FE0C 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A2EB0 0039FE10 80 7E 00 34 */ lwz r3, 0x34(r30) +/* 803A2EB4 0039FE14 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c +/* 803A2EB8 0039FE18 7C 03 02 14 */ add r0, r3, r0 +/* 803A2EBC 0039FE1C 90 1E 00 38 */ stw r0, 0x38(r30) +lbl_803A2EC0: +/* 803A2EC0 0039FE20 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A2EC4 0039FE24 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A2EC8 0039FE28 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A2ECC 0039FE2C 7C 08 03 A6 */ mtlr r0 +/* 803A2ED0 0039FE30 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A2ED4 0039FE34 4E 80 00 20 */ blr + +.global sub_803a2ed8 +sub_803a2ed8: +/* 803A2ED8 0039FE38 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803A2EDC 0039FE3C 7C 08 02 A6 */ mflr r0 +/* 803A2EE0 0039FE40 90 01 00 34 */ stw r0, 0x34(r1) +/* 803A2EE4 0039FE44 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803A2EE8 0039FE48 7C 7F 1B 78 */ mr r31, r3 +/* 803A2EEC 0039FE4C 80 04 00 00 */ lwz r0, 0(r4) +/* 803A2EF0 0039FE50 88 63 01 2F */ lbz r3, 0x12f(r3) +/* 803A2EF4 0039FE54 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f +/* 803A2EF8 0039FE58 7C 00 07 74 */ extsb r0, r0 +/* 803A2EFC 0039FE5C 7C 03 02 15 */ add. r0, r3, r0 +/* 803A2F00 0039FE60 40 80 00 0C */ bge lbl_803A2F0C +/* 803A2F04 0039FE64 38 A0 00 00 */ li r5, 0 +/* 803A2F08 0039FE68 48 00 00 14 */ b lbl_803A2F1C +lbl_803A2F0C: +/* 803A2F0C 0039FE6C 2C 00 00 7F */ cmpwi r0, 0x7f +/* 803A2F10 0039FE70 38 A0 00 7F */ li r5, 0x7f +/* 803A2F14 0039FE74 41 81 00 08 */ bgt lbl_803A2F1C +/* 803A2F18 0039FE78 7C 05 03 78 */ mr r5, r0 +lbl_803A2F1C: +/* 803A2F1C 0039FE7C 88 1F 01 1D */ lbz r0, 0x11d(r31) +/* 803A2F20 0039FE80 28 00 00 00 */ cmplwi r0, 0 +/* 803A2F24 0039FE84 41 82 00 08 */ beq lbl_803A2F2C +/* 803A2F28 0039FE88 60 A5 00 80 */ ori r5, r5, 0x80 +lbl_803A2F2C: +/* 803A2F2C 0039FE8C 38 60 00 01 */ li r3, 1 +/* 803A2F30 0039FE90 38 00 00 00 */ li r0, 0 +/* 803A2F34 0039FE94 98 7F 01 1C */ stb r3, 0x11c(r31) +/* 803A2F38 0039FE98 54 A7 06 3E */ clrlwi r7, r5, 0x18 +/* 803A2F3C 0039FE9C 81 04 00 04 */ lwz r8, 4(r4) +/* 803A2F40 0039FEA0 88 DF 01 22 */ lbz r6, 0x122(r31) +/* 803A2F44 0039FEA4 55 03 04 3E */ clrlwi r3, r8, 0x10 +/* 803A2F48 0039FEA8 55 05 46 3E */ srwi r5, r8, 0x18 +/* 803A2F4C 0039FEAC 90 C1 00 08 */ stw r6, 8(r1) +/* 803A2F50 0039FEB0 88 DF 01 23 */ lbz r6, 0x123(r31) +/* 803A2F54 0039FEB4 90 C1 00 0C */ stw r6, 0xc(r1) +/* 803A2F58 0039FEB8 90 61 00 10 */ stw r3, 0x10(r1) +/* 803A2F5C 0039FEBC 88 7F 01 20 */ lbz r3, 0x120(r31) +/* 803A2F60 0039FEC0 90 61 00 14 */ stw r3, 0x14(r1) +/* 803A2F64 0039FEC4 90 01 00 18 */ stw r0, 0x18(r1) +/* 803A2F68 0039FEC8 88 1F 01 1E */ lbz r0, 0x11e(r31) +/* 803A2F6C 0039FECC 90 01 00 1C */ stw r0, 0x1c(r1) +/* 803A2F70 0039FED0 88 1F 01 1F */ lbz r0, 0x11f(r31) +/* 803A2F74 0039FED4 90 01 00 20 */ stw r0, 0x20(r1) +/* 803A2F78 0039FED8 88 1F 01 93 */ lbz r0, 0x193(r31) +/* 803A2F7C 0039FEDC 7C 00 00 34 */ cntlzw r0, r0 +/* 803A2F80 0039FEE0 54 00 D9 7E */ srwi r0, r0, 5 +/* 803A2F84 0039FEE4 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A2F88 0039FEE8 80 64 00 00 */ lwz r3, 0(r4) +/* 803A2F8C 0039FEEC 55 04 86 3E */ rlwinm r4, r8, 0x10, 0x18, 0x1f +/* 803A2F90 0039FEF0 81 1F 01 54 */ lwz r8, 0x154(r31) +/* 803A2F94 0039FEF4 80 1F 01 70 */ lwz r0, 0x170(r31) +/* 803A2F98 0039FEF8 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A2F9C 0039FEFC A0 DF 01 00 */ lhz r6, 0x100(r31) +/* 803A2FA0 0039FF00 55 08 86 3E */ rlwinm r8, r8, 0x10, 0x18, 0x1f +/* 803A2FA4 0039FF04 89 5F 01 21 */ lbz r10, 0x121(r31) +/* 803A2FA8 0039FF08 54 09 86 3E */ rlwinm r9, r0, 0x10, 0x18, 0x1f +/* 803A2FAC 0039FF0C 48 00 42 15 */ bl sub_803a71c0 +/* 803A2FB0 0039FF10 3C 03 00 01 */ addis r0, r3, 1 +/* 803A2FB4 0039FF14 38 80 00 00 */ li r4, 0 +/* 803A2FB8 0039FF18 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A2FBC 0039FF1C 98 9F 01 1C */ stb r4, 0x11c(r31) +/* 803A2FC0 0039FF20 41 82 00 88 */ beq lbl_803A3048 +/* 803A2FC4 0039FF24 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A2FC8 0039FF28 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 803A2FCC 0039FF2C 1C C0 04 04 */ mulli r6, r0, 0x404 +/* 803A2FD0 0039FF30 7C 84 32 14 */ add r4, r4, r6 +/* 803A2FD4 0039FF34 80 84 00 F8 */ lwz r4, 0xf8(r4) +/* 803A2FD8 0039FF38 80 04 00 08 */ lwz r0, 8(r4) +/* 803A2FDC 0039FF3C 90 1F 01 08 */ stw r0, 0x108(r31) +/* 803A2FE0 0039FF40 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A2FE4 0039FF44 80 BF 00 F4 */ lwz r5, 0xf4(r31) +/* 803A2FE8 0039FF48 7C 80 32 14 */ add r4, r0, r6 +/* 803A2FEC 0039FF4C 90 A4 00 F0 */ stw r5, 0xf0(r4) +/* 803A2FF0 0039FF50 80 BF 00 EC */ lwz r5, 0xec(r31) +/* 803A2FF4 0039FF54 3C 05 00 01 */ addis r0, r5, 1 +/* 803A2FF8 0039FF58 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A2FFC 0039FF5C 41 82 00 28 */ beq lbl_803A3024 +/* 803A3000 0039FF60 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A3004 0039FF64 7C 80 32 14 */ add r4, r0, r6 +/* 803A3008 0039FF68 90 A4 00 EC */ stw r5, 0xec(r4) +/* 803A300C 0039FF6C 80 1F 00 EC */ lwz r0, 0xec(r31) +/* 803A3010 0039FF70 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 803A3014 0039FF74 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803A3018 0039FF78 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A301C 0039FF7C 7C 84 02 14 */ add r4, r4, r0 +/* 803A3020 0039FF80 90 64 00 F0 */ stw r3, 0xf0(r4) +lbl_803A3024: +/* 803A3024 0039FF84 90 7F 00 EC */ stw r3, 0xec(r31) +/* 803A3028 0039FF88 88 1F 01 1D */ lbz r0, 0x11d(r31) +/* 803A302C 0039FF8C 28 00 00 00 */ cmplwi r0, 0 +/* 803A3030 0039FF90 41 82 00 20 */ beq lbl_803A3050 +/* 803A3034 0039FF94 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A3038 0039FF98 7F E4 FB 78 */ mr r4, r31 +/* 803A303C 0039FF9C 7C 60 32 14 */ add r3, r0, r6 +/* 803A3040 0039FFA0 4B FF 82 9D */ bl synthFXCloneMidiSetup +/* 803A3044 0039FFA4 48 00 00 0C */ b lbl_803A3050 +lbl_803A3048: +/* 803A3048 0039FFA8 38 00 FF FF */ li r0, -1 +/* 803A304C 0039FFAC 90 1F 01 08 */ stw r0, 0x108(r31) +lbl_803A3050: +/* 803A3050 0039FFB0 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803A3054 0039FFB4 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803A3058 0039FFB8 7C 08 03 A6 */ mtlr r0 +/* 803A305C 0039FFBC 38 21 00 30 */ addi r1, r1, 0x30 +/* 803A3060 0039FFC0 4E 80 00 20 */ blr + +.global mcmdAddKey +mcmdAddKey: +/* 803A3064 0039FFC4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A3068 0039FFC8 7C 08 02 A6 */ mflr r0 +/* 803A306C 0039FFCC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A3070 0039FFD0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A3074 0039FFD4 7C 9F 23 78 */ mr r31, r4 +/* 803A3078 0039FFD8 93 C1 00 08 */ stw r30, 8(r1) +/* 803A307C 0039FFDC 7C 7E 1B 78 */ mr r30, r3 +/* 803A3080 0039FFE0 80 64 00 00 */ lwz r3, 0(r4) +/* 803A3084 0039FFE4 54 60 46 3F */ rlwinm. r0, r3, 8, 0x18, 0x1f +/* 803A3088 0039FFE8 40 82 00 1C */ bne lbl_803A30A4 +/* 803A308C 0039FFEC 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f +/* 803A3090 0039FFF0 A0 7E 01 2C */ lhz r3, 0x12c(r30) +/* 803A3094 0039FFF4 7C 00 07 74 */ extsb r0, r0 +/* 803A3098 0039FFF8 7C 03 02 14 */ add r0, r3, r0 +/* 803A309C 0039FFFC B0 1E 01 2C */ sth r0, 0x12c(r30) +/* 803A30A0 003A0000 48 00 00 18 */ b lbl_803A30B8 +lbl_803A30A4: +/* 803A30A4 003A0004 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f +/* 803A30A8 003A0008 88 7E 01 2F */ lbz r3, 0x12f(r30) +/* 803A30AC 003A000C 7C 00 07 74 */ extsb r0, r0 +/* 803A30B0 003A0010 7C 03 02 14 */ add r0, r3, r0 +/* 803A30B4 003A0014 B0 1E 01 2C */ sth r0, 0x12c(r30) +lbl_803A30B8: +/* 803A30B8 003A0018 A0 7E 01 2C */ lhz r3, 0x12c(r30) +/* 803A30BC 003A001C 7C 60 07 35 */ extsh. r0, r3 +/* 803A30C0 003A0020 40 80 00 0C */ bge lbl_803A30CC +/* 803A30C4 003A0024 38 00 00 00 */ li r0, 0 +/* 803A30C8 003A0028 48 00 00 14 */ b lbl_803A30DC +lbl_803A30CC: +/* 803A30CC 003A002C 28 03 00 7F */ cmplwi r3, 0x7f +/* 803A30D0 003A0030 38 00 00 7F */ li r0, 0x7f +/* 803A30D4 003A0034 41 81 00 08 */ bgt lbl_803A30DC +/* 803A30D8 003A0038 7C 60 1B 78 */ mr r0, r3 +lbl_803A30DC: +/* 803A30DC 003A003C B0 1E 01 2C */ sth r0, 0x12c(r30) +/* 803A30E0 003A0040 7F C3 F3 78 */ mr r3, r30 +/* 803A30E4 003A0044 80 1F 00 00 */ lwz r0, 0(r31) +/* 803A30E8 003A0048 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A30EC 003A004C 98 1E 01 2E */ stb r0, 0x12e(r30) +/* 803A30F0 003A0050 48 00 5D 81 */ bl voiceIsLastStarted +/* 803A30F4 003A0054 28 03 00 00 */ cmplwi r3, 0 +/* 803A30F8 003A0058 41 82 00 18 */ beq lbl_803A3110 +/* 803A30FC 003A005C A0 1E 01 2C */ lhz r0, 0x12c(r30) +/* 803A3100 003A0060 88 7E 01 21 */ lbz r3, 0x121(r30) +/* 803A3104 003A0064 88 9E 01 22 */ lbz r4, 0x122(r30) +/* 803A3108 003A0068 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 803A310C 003A006C 48 00 EC E1 */ bl inpSetMidiLastNote +lbl_803A3110: +/* 803A3110 003A0070 38 00 00 04 */ li r0, 4 +/* 803A3114 003A0074 7F C3 F3 78 */ mr r3, r30 +/* 803A3118 003A0078 90 1F 00 00 */ stw r0, 0(r31) +/* 803A311C 003A007C 7F E4 FB 78 */ mr r4, r31 +/* 803A3120 003A0080 4B FF F8 A5 */ bl mcmdWait +/* 803A3124 003A0084 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A3128 003A0088 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A312C 003A008C 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A3130 003A0090 7C 08 03 A6 */ mtlr r0 +/* 803A3134 003A0094 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A3138 003A0098 4E 80 00 20 */ blr + +.global sub_803a313c +sub_803a313c: +/* 803A313C 003A009C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A3140 003A00A0 7C 08 02 A6 */ mflr r0 +/* 803A3144 003A00A4 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A3148 003A00A8 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A314C 003A00AC 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A3150 003A00B0 7C 7E 1B 78 */ mr r30, r3 +/* 803A3154 003A00B4 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A3158 003A00B8 7C 9D 23 78 */ mr r29, r4 +/* 803A315C 003A00BC 3C 80 80 56 */ lis r4, lbl_8055D330@ha +/* 803A3160 003A00C0 80 1D 00 00 */ lwz r0, 0(r29) +/* 803A3164 003A00C4 38 84 D3 30 */ addi r4, r4, lbl_8055D330@l +/* 803A3168 003A00C8 54 1F C4 3E */ rlwinm r31, r0, 0x18, 0x10, 0x1f +/* 803A316C 003A00CC 7F E3 FB 78 */ mr r3, r31 +/* 803A3170 003A00D0 4B FF F4 29 */ bl sub_803a2598 +/* 803A3174 003A00D4 2C 03 00 00 */ cmpwi r3, 0 +/* 803A3178 003A00D8 40 82 01 A4 */ bne lbl_803A331C +/* 803A317C 003A00DC 80 1D 00 00 */ lwz r0, 0(r29) +/* 803A3180 003A00E0 54 00 46 3E */ srwi r0, r0, 0x18 +/* 803A3184 003A00E4 2C 00 00 01 */ cmpwi r0, 1 +/* 803A3188 003A00E8 41 82 00 34 */ beq lbl_803A31BC +/* 803A318C 003A00EC 40 80 00 10 */ bge lbl_803A319C +/* 803A3190 003A00F0 2C 00 00 00 */ cmpwi r0, 0 +/* 803A3194 003A00F4 40 80 00 14 */ bge lbl_803A31A8 +/* 803A3198 003A00F8 48 00 00 A4 */ b lbl_803A323C +lbl_803A319C: +/* 803A319C 003A00FC 2C 00 00 03 */ cmpwi r0, 3 +/* 803A31A0 003A0100 40 80 00 9C */ bge lbl_803A323C +/* 803A31A4 003A0104 48 00 00 5C */ b lbl_803A3200 +lbl_803A31A8: +/* 803A31A8 003A0108 3C 60 80 56 */ lis r3, lbl_8055D330@ha +/* 803A31AC 003A010C 80 1D 00 04 */ lwz r0, 4(r29) +/* 803A31B0 003A0110 38 63 D3 30 */ addi r3, r3, lbl_8055D330@l +/* 803A31B4 003A0114 90 03 00 0C */ stw r0, 0xc(r3) +/* 803A31B8 003A0118 48 00 00 94 */ b lbl_803A324C +lbl_803A31BC: +/* 803A31BC 003A011C 80 BE 01 54 */ lwz r5, 0x154(r30) +/* 803A31C0 003A0120 3C 80 02 04 */ lis r4, 0x02040811@ha +/* 803A31C4 003A0124 3C 60 80 56 */ lis r3, lbl_8055D330@ha +/* 803A31C8 003A0128 80 1D 00 04 */ lwz r0, 4(r29) +/* 803A31CC 003A012C 54 A5 84 3E */ srwi r5, r5, 0x10 +/* 803A31D0 003A0130 38 C4 08 11 */ addi r6, r4, 0x02040811@l +/* 803A31D4 003A0134 20 85 00 7F */ subfic r4, r5, 0x7f +/* 803A31D8 003A0138 38 63 D3 30 */ addi r3, r3, lbl_8055D330@l +/* 803A31DC 003A013C 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 803A31E0 003A0140 7C 00 21 D6 */ mullw r0, r0, r4 +/* 803A31E4 003A0144 7C 86 00 16 */ mulhwu r4, r6, r0 +/* 803A31E8 003A0148 7C 04 00 50 */ subf r0, r4, r0 +/* 803A31EC 003A014C 54 00 F8 7E */ srwi r0, r0, 1 +/* 803A31F0 003A0150 7C 00 22 14 */ add r0, r0, r4 +/* 803A31F4 003A0154 54 00 D1 BE */ srwi r0, r0, 6 +/* 803A31F8 003A0158 90 03 00 0C */ stw r0, 0xc(r3) +/* 803A31FC 003A015C 48 00 00 50 */ b lbl_803A324C +lbl_803A3200: +/* 803A3200 003A0160 80 BE 01 54 */ lwz r5, 0x154(r30) +/* 803A3204 003A0164 3C 80 02 04 */ lis r4, 0x02040811@ha +/* 803A3208 003A0168 80 1D 00 04 */ lwz r0, 4(r29) +/* 803A320C 003A016C 3C 60 80 56 */ lis r3, lbl_8055D330@ha +/* 803A3210 003A0170 54 A5 86 3E */ rlwinm r5, r5, 0x10, 0x18, 0x1f +/* 803A3214 003A0174 38 84 08 11 */ addi r4, r4, 0x02040811@l +/* 803A3218 003A0178 7C 00 29 D6 */ mullw r0, r0, r5 +/* 803A321C 003A017C 38 63 D3 30 */ addi r3, r3, lbl_8055D330@l +/* 803A3220 003A0180 7C 84 00 16 */ mulhwu r4, r4, r0 +/* 803A3224 003A0184 7C 04 00 50 */ subf r0, r4, r0 +/* 803A3228 003A0188 54 00 F8 7E */ srwi r0, r0, 1 +/* 803A322C 003A018C 7C 00 22 14 */ add r0, r0, r4 +/* 803A3230 003A0190 54 00 D1 BE */ srwi r0, r0, 6 +/* 803A3234 003A0194 90 03 00 0C */ stw r0, 0xc(r3) +/* 803A3238 003A0198 48 00 00 14 */ b lbl_803A324C +lbl_803A323C: +/* 803A323C 003A019C 3C 60 80 56 */ lis r3, lbl_8055D330@ha +/* 803A3240 003A01A0 38 00 00 00 */ li r0, 0 +/* 803A3244 003A01A4 38 63 D3 30 */ addi r3, r3, lbl_8055D330@l +/* 803A3248 003A01A8 90 03 00 0C */ stw r0, 0xc(r3) +lbl_803A324C: +/* 803A324C 003A01AC 3C 60 80 56 */ lis r3, lbl_8055D330@ha +/* 803A3250 003A01B0 38 63 D3 30 */ addi r3, r3, lbl_8055D330@l +/* 803A3254 003A01B4 80 03 00 0C */ lwz r0, 0xc(r3) +/* 803A3258 003A01B8 80 83 00 10 */ lwz r4, 0x10(r3) +/* 803A325C 003A01BC 7C 00 20 40 */ cmplw r0, r4 +/* 803A3260 003A01C0 41 80 00 0C */ blt lbl_803A326C +/* 803A3264 003A01C4 38 04 FF FF */ addi r0, r4, -1 +/* 803A3268 003A01C8 90 03 00 0C */ stw r0, 0xc(r3) +lbl_803A326C: +/* 803A326C 003A01CC 80 9E 01 14 */ lwz r4, 0x114(r30) +/* 803A3270 003A01D0 39 40 00 00 */ li r10, 0 +/* 803A3274 003A01D4 38 60 08 00 */ li r3, 0x800 +/* 803A3278 003A01D8 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 803A327C 003A01DC 38 00 01 00 */ li r0, 0x100 +/* 803A3280 003A01E0 7C 86 50 38 */ and r6, r4, r10 +/* 803A3284 003A01E4 7C 83 18 38 */ and r3, r4, r3 +/* 803A3288 003A01E8 80 9E 01 10 */ lwz r4, 0x110(r30) +/* 803A328C 003A01EC 7C A9 00 38 */ and r9, r5, r0 +/* 803A3290 003A01F0 7C A0 50 38 */ and r0, r5, r10 +/* 803A3294 003A01F4 54 87 8B FE */ srwi r7, r4, 0xf +/* 803A3298 003A01F8 89 7E 01 0C */ lbz r11, 0x10c(r30) +/* 803A329C 003A01FC 7D 24 52 78 */ xor r4, r9, r10 +/* 803A32A0 003A0200 7C C6 52 78 */ xor r6, r6, r10 +/* 803A32A4 003A0204 7C 86 33 78 */ or r6, r4, r6 +/* 803A32A8 003A0208 3C A0 80 56 */ lis r5, lbl_8055D330@ha +/* 803A32AC 003A020C 7C C6 00 34 */ cntlzw r6, r6 +/* 803A32B0 003A0210 7C 00 52 78 */ xor r0, r0, r10 +/* 803A32B4 003A0214 7C 69 52 78 */ xor r9, r3, r10 +/* 803A32B8 003A0218 81 1E 00 F4 */ lwz r8, 0xf4(r30) +/* 803A32BC 003A021C 7C 09 4B 78 */ or r9, r0, r9 +/* 803A32C0 003A0220 89 5E 01 93 */ lbz r10, 0x193(r30) +/* 803A32C4 003A0224 7D 29 00 34 */ cntlzw r9, r9 +/* 803A32C8 003A0228 38 A5 D3 30 */ addi r5, r5, lbl_8055D330@l +/* 803A32CC 003A022C 7F E4 FB 78 */ mr r4, r31 +/* 803A32D0 003A0230 54 C6 D9 7E */ srwi r6, r6, 5 +/* 803A32D4 003A0234 55 03 06 3E */ clrlwi r3, r8, 0x18 +/* 803A32D8 003A0238 55 29 D9 7E */ srwi r9, r9, 5 +/* 803A32DC 003A023C 51 67 C0 0E */ rlwimi r7, r11, 0x18, 0, 7 +/* 803A32E0 003A0240 48 00 FE F9 */ bl hwInitSamplePlayback +/* 803A32E4 003A0244 3C 60 80 56 */ lis r3, lbl_8055D330@ha +/* 803A32E8 003A0248 80 03 D3 30 */ lwz r0, lbl_8055D330@l(r3) +/* 803A32EC 003A024C 90 1E 01 24 */ stw r0, 0x124(r30) +/* 803A32F0 003A0250 80 7E 01 28 */ lwz r3, 0x128(r30) +/* 803A32F4 003A0254 3C 03 00 01 */ addis r0, r3, 1 +/* 803A32F8 003A0258 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A32FC 003A025C 41 82 00 0C */ beq lbl_803A3308 +/* 803A3300 003A0260 7F C3 F3 78 */ mr r3, r30 +/* 803A3304 003A0264 48 00 01 B1 */ bl DoSetPitch +lbl_803A3308: +/* 803A3308 003A0268 80 1E 01 18 */ lwz r0, 0x118(r30) +/* 803A330C 003A026C 7F C3 F3 78 */ mr r3, r30 +/* 803A3310 003A0270 60 00 00 20 */ ori r0, r0, 0x20 +/* 803A3314 003A0274 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A3318 003A0278 4B FF 77 C9 */ bl sub_8039aae0 +lbl_803A331C: +/* 803A331C 003A027C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A3320 003A0280 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A3324 003A0284 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A3328 003A0288 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A332C 003A028C 7C 08 03 A6 */ mtlr r0 +/* 803A3330 003A0290 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A3334 003A0294 4E 80 00 20 */ blr + +.global mcmdVibrato +mcmdVibrato: +/* 803A3338 003A0298 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A333C 003A029C 7C 08 02 A6 */ mflr r0 +/* 803A3340 003A02A0 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A3344 003A02A4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A3348 003A02A8 7C 9F 23 78 */ mr r31, r4 +/* 803A334C 003A02AC 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A3350 003A02B0 7C 7E 1B 78 */ mr r30, r3 +/* 803A3354 003A02B4 80 04 00 00 */ lwz r0, 0(r4) +/* 803A3358 003A02B8 54 00 47 BF */ rlwinm. r0, r0, 8, 0x1e, 0x1f +/* 803A335C 003A02BC 41 82 00 14 */ beq lbl_803A3370 +/* 803A3360 003A02C0 80 1E 01 18 */ lwz r0, 0x118(r30) +/* 803A3364 003A02C4 60 00 40 00 */ ori r0, r0, 0x4000 +/* 803A3368 003A02C8 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A336C 003A02CC 48 00 00 24 */ b lbl_803A3390 +lbl_803A3370: +/* 803A3370 003A02D0 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 803A3374 003A02D4 38 00 BF FF */ li r0, -16385 +/* 803A3378 003A02D8 80 9E 01 14 */ lwz r4, 0x114(r30) +/* 803A337C 003A02DC 38 60 FF FF */ li r3, -1 +/* 803A3380 003A02E0 7C A0 00 38 */ and r0, r5, r0 +/* 803A3384 003A02E4 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A3388 003A02E8 7C 80 18 38 */ and r0, r4, r3 +/* 803A338C 003A02EC 90 1E 01 14 */ stw r0, 0x114(r30) +lbl_803A3390: +/* 803A3390 003A02F0 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A3394 003A02F4 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A3398 003A02F8 90 01 00 08 */ stw r0, 8(r1) +/* 803A339C 003A02FC 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A33A0 003A0300 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f +/* 803A33A4 003A0304 41 82 00 10 */ beq lbl_803A33B4 +/* 803A33A8 003A0308 38 61 00 08 */ addi r3, r1, 8 +/* 803A33AC 003A030C 48 00 FB 41 */ bl dGeomDisable +/* 803A33B0 003A0310 48 00 00 10 */ b lbl_803A33C0 +lbl_803A33B4: +/* 803A33B4 003A0314 7F C4 F3 78 */ mr r4, r30 +/* 803A33B8 003A0318 38 61 00 08 */ addi r3, r1, 8 +/* 803A33BC 003A031C 48 00 FB 41 */ bl sndConvertTicks +lbl_803A33C0: +/* 803A33C0 003A0320 80 01 00 08 */ lwz r0, 8(r1) +/* 803A33C4 003A0324 28 00 00 00 */ cmplwi r0, 0 +/* 803A33C8 003A0328 41 82 00 B4 */ beq lbl_803A347C +/* 803A33CC 003A032C 80 1E 01 18 */ lwz r0, 0x118(r30) +/* 803A33D0 003A0330 60 00 20 00 */ ori r0, r0, 0x2000 +/* 803A33D4 003A0334 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A33D8 003A0338 80 01 00 08 */ lwz r0, 8(r1) +/* 803A33DC 003A033C 90 1E 01 44 */ stw r0, 0x144(r30) +/* 803A33E0 003A0340 80 1F 00 00 */ lwz r0, 0(r31) +/* 803A33E4 003A0344 54 03 C2 3E */ srwi r3, r0, 8 +/* 803A33E8 003A0348 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A33EC 003A034C 7C 64 07 75 */ extsb. r4, r3 +/* 803A33F0 003A0350 7C 03 07 74 */ extsb r3, r0 +/* 803A33F4 003A0354 40 80 00 34 */ bge lbl_803A3428 +/* 803A33F8 003A0358 7C 60 07 75 */ extsb. r0, r3 +/* 803A33FC 003A035C 40 80 00 10 */ bge lbl_803A340C +/* 803A3400 003A0360 7C 03 00 D0 */ neg r0, r3 +/* 803A3404 003A0364 98 1E 01 41 */ stb r0, 0x141(r30) +/* 803A3408 003A0368 48 00 00 08 */ b lbl_803A3410 +lbl_803A340C: +/* 803A340C 003A036C 98 7E 01 41 */ stb r3, 0x141(r30) +lbl_803A3410: +/* 803A3410 003A0370 7C 04 00 D0 */ neg r0, r4 +/* 803A3414 003A0374 98 1E 01 40 */ stb r0, 0x140(r30) +/* 803A3418 003A0378 80 1E 01 44 */ lwz r0, 0x144(r30) +/* 803A341C 003A037C 54 00 F8 7E */ srwi r0, r0, 1 +/* 803A3420 003A0380 90 1E 01 48 */ stw r0, 0x148(r30) +/* 803A3424 003A0384 48 00 00 78 */ b lbl_803A349C +lbl_803A3428: +/* 803A3428 003A0388 7C 60 07 75 */ extsb. r0, r3 +/* 803A342C 003A038C 40 80 00 3C */ bge lbl_803A3468 +/* 803A3430 003A0390 7C 80 07 75 */ extsb. r0, r4 +/* 803A3434 003A0394 40 82 00 1C */ bne lbl_803A3450 +/* 803A3438 003A0398 7C 03 00 D0 */ neg r0, r3 +/* 803A343C 003A039C 98 1E 01 41 */ stb r0, 0x141(r30) +/* 803A3440 003A03A0 80 1E 01 44 */ lwz r0, 0x144(r30) +/* 803A3444 003A03A4 54 00 F8 7E */ srwi r0, r0, 1 +/* 803A3448 003A03A8 90 1E 01 48 */ stw r0, 0x148(r30) +/* 803A344C 003A03AC 48 00 00 28 */ b lbl_803A3474 +lbl_803A3450: +/* 803A3450 003A03B0 20 63 00 64 */ subfic r3, r3, 0x64 +/* 803A3454 003A03B4 38 00 00 00 */ li r0, 0 +/* 803A3458 003A03B8 98 7E 01 41 */ stb r3, 0x141(r30) +/* 803A345C 003A03BC 38 84 FF FF */ addi r4, r4, -1 +/* 803A3460 003A03C0 90 1E 01 48 */ stw r0, 0x148(r30) +/* 803A3464 003A03C4 48 00 00 10 */ b lbl_803A3474 +lbl_803A3468: +/* 803A3468 003A03C8 98 7E 01 41 */ stb r3, 0x141(r30) +/* 803A346C 003A03CC 38 00 00 00 */ li r0, 0 +/* 803A3470 003A03D0 90 1E 01 48 */ stw r0, 0x148(r30) +lbl_803A3474: +/* 803A3474 003A03D4 98 9E 01 40 */ stb r4, 0x140(r30) +/* 803A3478 003A03D8 48 00 00 24 */ b lbl_803A349C +lbl_803A347C: +/* 803A347C 003A03DC 80 BE 01 18 */ lwz r5, 0x118(r30) +/* 803A3480 003A03E0 38 00 DF FF */ li r0, -8193 +/* 803A3484 003A03E4 80 9E 01 14 */ lwz r4, 0x114(r30) +/* 803A3488 003A03E8 38 60 FF FF */ li r3, -1 +/* 803A348C 003A03EC 7C A0 00 38 */ and r0, r5, r0 +/* 803A3490 003A03F0 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A3494 003A03F4 7C 80 18 38 */ and r0, r4, r3 +/* 803A3498 003A03F8 90 1E 01 14 */ stw r0, 0x114(r30) +lbl_803A349C: +/* 803A349C 003A03FC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A34A0 003A0400 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A34A4 003A0404 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A34A8 003A0408 7C 08 03 A6 */ mtlr r0 +/* 803A34AC 003A040C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A34B0 003A0410 4E 80 00 20 */ blr + +.global DoSetPitch +DoSetPitch: +/* 803A34B4 003A0414 80 03 01 28 */ lwz r0, 0x128(r3) +/* 803A34B8 003A0418 80 A3 01 24 */ lwz r5, 0x124(r3) +/* 803A34BC 003A041C 54 06 02 3E */ clrlwi r6, r0, 8 +/* 803A34C0 003A0420 54 A7 02 3E */ clrlwi r7, r5, 8 +/* 803A34C4 003A0424 7C 07 30 40 */ cmplw r7, r6 +/* 803A34C8 003A0428 40 82 00 18 */ bne lbl_803A34E0 +/* 803A34CC 003A042C 54 A4 46 3E */ srwi r4, r5, 0x18 +/* 803A34D0 003A0430 38 00 00 00 */ li r0, 0 +/* 803A34D4 003A0434 B0 83 01 2C */ sth r4, 0x12c(r3) +/* 803A34D8 003A0438 98 03 01 2E */ stb r0, 0x12e(r3) +/* 803A34DC 003A043C 4E 80 00 20 */ blr +lbl_803A34E0: +/* 803A34E0 003A0440 40 80 00 B0 */ bge lbl_803A3590 +/* 803A34E4 003A0444 54 C4 60 26 */ slwi r4, r6, 0xc +/* 803A34E8 003A0448 38 00 00 0B */ li r0, 0xb +/* 803A34EC 003A044C 7C C4 3B 96 */ divwu r6, r4, r7 +/* 803A34F0 003A0450 39 40 00 00 */ li r10, 0 +/* 803A34F4 003A0454 38 80 00 01 */ li r4, 1 +/* 803A34F8 003A0458 54 C7 A3 3E */ srwi r7, r6, 0xc +/* 803A34FC 003A045C 7C 09 03 A6 */ mtctr r0 +lbl_803A3500: +/* 803A3500 003A0460 38 0A 00 01 */ addi r0, r10, 1 +/* 803A3504 003A0464 7C 80 00 30 */ slw r0, r4, r0 +/* 803A3508 003A0468 7C 07 00 40 */ cmplw r7, r0 +/* 803A350C 003A046C 41 80 00 0C */ blt lbl_803A3518 +/* 803A3510 003A0470 39 4A 00 01 */ addi r10, r10, 1 +/* 803A3514 003A0474 42 00 FF EC */ bdnz lbl_803A3500 +lbl_803A3518: +/* 803A3518 003A0478 38 00 00 01 */ li r0, 1 +/* 803A351C 003A047C 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha +/* 803A3520 003A0480 7C 00 50 30 */ slw r0, r0, r10 +/* 803A3524 003A0484 39 20 00 0B */ li r9, 0xb +/* 803A3528 003A0488 7D 06 03 96 */ divwu r8, r6, r0 +/* 803A352C 003A048C 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l +/* 803A3530 003A0490 38 84 00 16 */ addi r4, r4, 0x16 +lbl_803A3534: +/* 803A3534 003A0494 A0 04 00 00 */ lhz r0, 0(r4) +/* 803A3538 003A0498 7C 08 00 40 */ cmplw r8, r0 +/* 803A353C 003A049C 41 81 00 10 */ bgt lbl_803A354C +/* 803A3540 003A04A0 38 84 FF FE */ addi r4, r4, -2 +/* 803A3544 003A04A4 39 29 FF FF */ addi r9, r9, -1 +/* 803A3548 003A04A8 4B FF FF EC */ b lbl_803A3534 +lbl_803A354C: +/* 803A354C 003A04AC 1C 0A 00 0C */ mulli r0, r10, 0xc +/* 803A3550 003A04B0 54 A6 46 3E */ srwi r6, r5, 0x18 +/* 803A3554 003A04B4 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha +/* 803A3558 003A04B8 55 27 08 3C */ slwi r7, r9, 1 +/* 803A355C 003A04BC 7C 00 4A 14 */ add r0, r0, r9 +/* 803A3560 003A04C0 38 A4 2F D8 */ addi r5, r4, lbl_803F2FD8@l +/* 803A3564 003A04C4 7C 06 02 14 */ add r0, r6, r0 +/* 803A3568 003A04C8 B0 03 01 2C */ sth r0, 0x12c(r3) +/* 803A356C 003A04CC 7C 85 3A 14 */ add r4, r5, r7 +/* 803A3570 003A04D0 7C A5 3A 2E */ lhzx r5, r5, r7 +/* 803A3574 003A04D4 A0 04 00 02 */ lhz r0, 2(r4) +/* 803A3578 003A04D8 7C 85 40 50 */ subf r4, r5, r8 +/* 803A357C 003A04DC 1C 84 00 64 */ mulli r4, r4, 0x64 +/* 803A3580 003A04E0 7C 05 00 50 */ subf r0, r5, r0 +/* 803A3584 003A04E4 7C 04 03 96 */ divwu r0, r4, r0 +/* 803A3588 003A04E8 98 03 01 2E */ stb r0, 0x12e(r3) +/* 803A358C 003A04EC 4E 80 00 20 */ blr +lbl_803A3590: +/* 803A3590 003A04F0 54 E4 60 26 */ slwi r4, r7, 0xc +/* 803A3594 003A04F4 38 00 00 0B */ li r0, 0xb +/* 803A3598 003A04F8 7C C4 33 96 */ divwu r6, r4, r6 +/* 803A359C 003A04FC 39 00 00 00 */ li r8, 0 +/* 803A35A0 003A0500 38 80 00 01 */ li r4, 1 +/* 803A35A4 003A0504 54 C7 A3 3E */ srwi r7, r6, 0xc +/* 803A35A8 003A0508 7C 09 03 A6 */ mtctr r0 +lbl_803A35AC: +/* 803A35AC 003A050C 38 08 00 01 */ addi r0, r8, 1 +/* 803A35B0 003A0510 7C 80 00 30 */ slw r0, r4, r0 +/* 803A35B4 003A0514 7C 07 00 40 */ cmplw r7, r0 +/* 803A35B8 003A0518 41 80 00 0C */ blt lbl_803A35C4 +/* 803A35BC 003A051C 39 08 00 01 */ addi r8, r8, 1 +/* 803A35C0 003A0520 42 00 FF EC */ bdnz lbl_803A35AC +lbl_803A35C4: +/* 803A35C4 003A0524 38 00 00 01 */ li r0, 1 +/* 803A35C8 003A0528 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha +/* 803A35CC 003A052C 7C 00 40 30 */ slw r0, r0, r8 +/* 803A35D0 003A0530 38 E0 00 0B */ li r7, 0xb +/* 803A35D4 003A0534 7C C6 03 96 */ divwu r6, r6, r0 +/* 803A35D8 003A0538 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l +/* 803A35DC 003A053C 38 84 00 16 */ addi r4, r4, 0x16 +lbl_803A35E0: +/* 803A35E0 003A0540 A0 04 00 00 */ lhz r0, 0(r4) +/* 803A35E4 003A0544 7C 06 00 40 */ cmplw r6, r0 +/* 803A35E8 003A0548 41 81 00 10 */ bgt lbl_803A35F8 +/* 803A35EC 003A054C 38 84 FF FE */ addi r4, r4, -2 +/* 803A35F0 003A0550 38 E7 FF FF */ addi r7, r7, -1 +/* 803A35F4 003A0554 4B FF FF EC */ b lbl_803A35E0 +lbl_803A35F8: +/* 803A35F8 003A0558 1C 88 00 0C */ mulli r4, r8, 0xc +/* 803A35FC 003A055C 54 A0 46 3E */ srwi r0, r5, 0x18 +/* 803A3600 003A0560 7C 87 22 14 */ add r4, r7, r4 +/* 803A3604 003A0564 7C 04 00 00 */ cmpw r4, r0 +/* 803A3608 003A0568 40 81 00 14 */ ble lbl_803A361C +/* 803A360C 003A056C 38 00 00 00 */ li r0, 0 +/* 803A3610 003A0570 98 03 01 2E */ stb r0, 0x12e(r3) +/* 803A3614 003A0574 B0 03 01 2C */ sth r0, 0x12c(r3) +/* 803A3618 003A0578 4E 80 00 20 */ blr +lbl_803A361C: +/* 803A361C 003A057C 7C 04 00 50 */ subf r0, r4, r0 +/* 803A3620 003A0580 3C 80 80 3F */ lis r4, lbl_803F2FD8@ha +/* 803A3624 003A0584 B0 03 01 2C */ sth r0, 0x12c(r3) +/* 803A3628 003A0588 54 E0 08 3C */ slwi r0, r7, 1 +/* 803A362C 003A058C 38 84 2F D8 */ addi r4, r4, lbl_803F2FD8@l +/* 803A3630 003A0590 7C A4 02 2E */ lhzx r5, r4, r0 +/* 803A3634 003A0594 7C 84 02 14 */ add r4, r4, r0 +/* 803A3638 003A0598 A0 04 00 02 */ lhz r0, 2(r4) +/* 803A363C 003A059C 7C 86 28 50 */ subf r4, r6, r5 +/* 803A3640 003A05A0 1C 84 00 64 */ mulli r4, r4, 0x64 +/* 803A3644 003A05A4 7C 05 00 50 */ subf r0, r5, r0 +/* 803A3648 003A05A8 7C 04 03 96 */ divwu r0, r4, r0 +/* 803A364C 003A05AC 98 03 01 2E */ stb r0, 0x12e(r3) +/* 803A3650 003A05B0 4E 80 00 20 */ blr + +.global mcmdSetADSR +mcmdSetADSR: +/* 803A3654 003A05B4 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 803A3658 003A05B8 7C 08 02 A6 */ mflr r0 +/* 803A365C 003A05BC 90 01 00 54 */ stw r0, 0x54(r1) +/* 803A3660 003A05C0 93 E1 00 4C */ stw r31, 0x4c(r1) +/* 803A3664 003A05C4 7C 7F 1B 78 */ mr r31, r3 +/* 803A3668 003A05C8 93 C1 00 48 */ stw r30, 0x48(r1) +/* 803A366C 003A05CC 7C 9E 23 78 */ mr r30, r4 +/* 803A3670 003A05D0 80 04 00 00 */ lwz r0, 0(r4) +/* 803A3674 003A05D4 54 03 C4 3E */ rlwinm r3, r0, 0x18, 0x10, 0x1f +/* 803A3678 003A05D8 4B FF F0 59 */ bl dataGetCurve +/* 803A367C 003A05DC 28 03 00 00 */ cmplwi r3, 0 +/* 803A3680 003A05E0 41 82 02 14 */ beq lbl_803A3894 +/* 803A3684 003A05E4 80 1E 00 00 */ lwz r0, 0(r30) +/* 803A3688 003A05E8 54 00 46 3F */ rlwinm. r0, r0, 8, 0x18, 0x1f +/* 803A368C 003A05EC 40 82 00 5C */ bne lbl_803A36E8 +/* 803A3690 003A05F0 A0 C3 00 00 */ lhz r6, 0(r3) +/* 803A3694 003A05F4 38 81 00 08 */ addi r4, r1, 8 +/* 803A3698 003A05F8 38 A0 00 00 */ li r5, 0 +/* 803A369C 003A05FC 7C C0 46 70 */ srawi r0, r6, 8 +/* 803A36A0 003A0600 50 C0 42 2E */ rlwimi r0, r6, 8, 8, 0x17 +/* 803A36A4 003A0604 B0 01 00 08 */ sth r0, 8(r1) +/* 803A36A8 003A0608 A0 C3 00 02 */ lhz r6, 2(r3) +/* 803A36AC 003A060C 7C C0 46 70 */ srawi r0, r6, 8 +/* 803A36B0 003A0610 50 C0 42 2E */ rlwimi r0, r6, 8, 8, 0x17 +/* 803A36B4 003A0614 B0 01 00 0A */ sth r0, 0xa(r1) +/* 803A36B8 003A0618 A0 C3 00 04 */ lhz r6, 4(r3) +/* 803A36BC 003A061C 7C C0 46 70 */ srawi r0, r6, 8 +/* 803A36C0 003A0620 50 C0 42 2E */ rlwimi r0, r6, 8, 8, 0x17 +/* 803A36C4 003A0624 B0 01 00 0C */ sth r0, 0xc(r1) +/* 803A36C8 003A0628 A0 63 00 06 */ lhz r3, 6(r3) +/* 803A36CC 003A062C 7C 60 46 70 */ srawi r0, r3, 8 +/* 803A36D0 003A0630 50 60 42 2E */ rlwimi r0, r3, 8, 8, 0x17 +/* 803A36D4 003A0634 B0 01 00 0E */ sth r0, 0xe(r1) +/* 803A36D8 003A0638 80 1F 00 F4 */ lwz r0, 0xf4(r31) +/* 803A36DC 003A063C 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A36E0 003A0640 48 00 FC FD */ bl hwSetADSR +/* 803A36E4 003A0644 48 00 01 A4 */ b lbl_803A3888 +lbl_803A36E8: +/* 803A36E8 003A0648 A1 03 00 08 */ lhz r8, 8(r3) +/* 803A36EC 003A064C 3C 80 80 3F */ lis r4, lbl_803F3DA4@ha +/* 803A36F0 003A0650 38 E4 3D A4 */ addi r7, r4, lbl_803F3DA4@l +/* 803A36F4 003A0654 88 83 00 01 */ lbz r4, 1(r3) +/* 803A36F8 003A0658 7D 06 46 70 */ srawi r6, r8, 8 +/* 803A36FC 003A065C 88 03 00 00 */ lbz r0, 0(r3) +/* 803A3700 003A0660 51 06 42 2E */ rlwimi r6, r8, 8, 8, 0x17 +/* 803A3704 003A0664 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 803A3708 003A0668 54 C8 04 3E */ clrlwi r8, r6, 0x10 +/* 803A370C 003A066C 88 A3 00 02 */ lbz r5, 2(r3) +/* 803A3710 003A0670 7D 08 2E 70 */ srawi r8, r8, 5 +/* 803A3714 003A0674 C0 02 D5 68 */ lfs f0, lbl_805AF288@sda21(r2) +/* 803A3718 003A0678 55 04 10 3A */ slwi r4, r8, 2 +/* 803A371C 003A067C 88 C3 00 03 */ lbz r6, 3(r3) +/* 803A3720 003A0680 7C 27 24 2E */ lfsx f1, r7, r4 +/* 803A3724 003A0684 50 A0 82 1E */ rlwimi r0, r5, 0x10, 8, 0xf +/* 803A3728 003A0688 50 C0 C0 0E */ rlwimi r0, r6, 0x18, 0, 7 +/* 803A372C 003A068C EC 00 00 72 */ fmuls f0, f0, f1 +/* 803A3730 003A0690 90 01 00 08 */ stw r0, 8(r1) +/* 803A3734 003A0694 88 83 00 05 */ lbz r4, 5(r3) +/* 803A3738 003A0698 FC 00 00 1E */ fctiwz f0, f0 +/* 803A373C 003A069C 88 A3 00 04 */ lbz r5, 4(r3) +/* 803A3740 003A06A0 88 C3 00 06 */ lbz r6, 6(r3) +/* 803A3744 003A06A4 50 85 44 2E */ rlwimi r5, r4, 8, 0x10, 0x17 +/* 803A3748 003A06A8 88 E3 00 07 */ lbz r7, 7(r3) +/* 803A374C 003A06AC D8 01 00 20 */ stfd f0, 0x20(r1) +/* 803A3750 003A06B0 50 C5 82 1E */ rlwimi r5, r6, 0x10, 8, 0xf +/* 803A3754 003A06B4 80 81 00 24 */ lwz r4, 0x24(r1) +/* 803A3758 003A06B8 50 E5 C0 0E */ rlwimi r5, r7, 0x18, 0, 7 +/* 803A375C 003A06BC 90 A1 00 0C */ stw r5, 0xc(r1) +/* 803A3760 003A06C0 B0 81 00 10 */ sth r4, 0x10(r1) +/* 803A3764 003A06C4 A0 A3 00 0A */ lhz r5, 0xa(r3) +/* 803A3768 003A06C8 7C A4 46 70 */ srawi r4, r5, 8 +/* 803A376C 003A06CC 50 A4 42 2E */ rlwimi r4, r5, 8, 8, 0x17 +/* 803A3770 003A06D0 B0 81 00 12 */ sth r4, 0x12(r1) +/* 803A3774 003A06D4 88 83 00 0D */ lbz r4, 0xd(r3) +/* 803A3778 003A06D8 88 E3 00 0C */ lbz r7, 0xc(r3) +/* 803A377C 003A06DC 50 87 44 2E */ rlwimi r7, r4, 8, 0x10, 0x17 +/* 803A3780 003A06E0 88 A3 00 0E */ lbz r5, 0xe(r3) +/* 803A3784 003A06E4 88 83 00 0F */ lbz r4, 0xf(r3) +/* 803A3788 003A06E8 50 A7 82 1E */ rlwimi r7, r5, 0x10, 8, 0xf +/* 803A378C 003A06EC 88 C3 00 10 */ lbz r6, 0x10(r3) +/* 803A3790 003A06F0 7C E8 3B 78 */ mr r8, r7 +/* 803A3794 003A06F4 88 A3 00 11 */ lbz r5, 0x11(r3) +/* 803A3798 003A06F8 50 88 C0 0E */ rlwimi r8, r4, 0x18, 0, 7 +/* 803A379C 003A06FC 88 E3 00 12 */ lbz r7, 0x12(r3) +/* 803A37A0 003A0700 3C 88 80 00 */ addis r4, r8, 0x8000 +/* 803A37A4 003A0704 50 A6 44 2E */ rlwimi r6, r5, 8, 0x10, 0x17 +/* 803A37A8 003A0708 88 63 00 13 */ lbz r3, 0x13(r3) +/* 803A37AC 003A070C 50 E6 82 1E */ rlwimi r6, r7, 0x10, 8, 0xf +/* 803A37B0 003A0710 28 04 00 00 */ cmplwi r4, 0 +/* 803A37B4 003A0714 50 66 C0 0E */ rlwimi r6, r3, 0x18, 0, 7 +/* 803A37B8 003A0718 41 82 00 58 */ beq lbl_803A3810 +/* 803A37BC 003A071C 80 BF 01 58 */ lwz r5, 0x158(r31) +/* 803A37C0 003A0720 3C 80 43 30 */ lis r4, 0x4330 +/* 803A37C4 003A0724 6D 03 80 00 */ xoris r3, r8, 0x8000 +/* 803A37C8 003A0728 90 81 00 28 */ stw r4, 0x28(r1) +/* 803A37CC 003A072C C8 22 D5 78 */ lfd f1, lbl_805AF298@sda21(r2) +/* 803A37D0 003A0730 90 A1 00 2C */ stw r5, 0x2c(r1) +/* 803A37D4 003A0734 C0 62 D5 6C */ lfs f3, lbl_805AF28C@sda21(r2) +/* 803A37D8 003A0738 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 803A37DC 003A073C 90 61 00 34 */ stw r3, 0x34(r1) +/* 803A37E0 003A0740 EC 40 08 28 */ fsubs f2, f0, f1 +/* 803A37E4 003A0744 C8 22 D5 80 */ lfd f1, lbl_805AF2A0@sda21(r2) +/* 803A37E8 003A0748 90 81 00 30 */ stw r4, 0x30(r1) +/* 803A37EC 003A074C C8 01 00 30 */ lfd f0, 0x30(r1) +/* 803A37F0 003A0750 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803A37F4 003A0754 EC 00 08 28 */ fsubs f0, f0, f1 +/* 803A37F8 003A0758 EC 02 00 32 */ fmuls f0, f2, f0 +/* 803A37FC 003A075C FC 00 00 1E */ fctiwz f0, f0 +/* 803A3800 003A0760 D8 01 00 38 */ stfd f0, 0x38(r1) +/* 803A3804 003A0764 80 61 00 3C */ lwz r3, 0x3c(r1) +/* 803A3808 003A0768 7C 00 1A 14 */ add r0, r0, r3 +/* 803A380C 003A076C 90 01 00 08 */ stw r0, 8(r1) +lbl_803A3810: +/* 803A3810 003A0770 3C 06 80 00 */ addis r0, r6, 0x8000 +/* 803A3814 003A0774 28 00 00 00 */ cmplwi r0, 0 +/* 803A3818 003A0778 41 82 00 5C */ beq lbl_803A3874 +/* 803A381C 003A077C 88 9F 01 2F */ lbz r4, 0x12f(r31) +/* 803A3820 003A0780 3C 60 43 30 */ lis r3, 0x4330 +/* 803A3824 003A0784 6C C0 80 00 */ xoris r0, r6, 0x8000 +/* 803A3828 003A0788 90 61 00 38 */ stw r3, 0x38(r1) +/* 803A382C 003A078C C8 22 D5 78 */ lfd f1, lbl_805AF298@sda21(r2) +/* 803A3830 003A0790 90 81 00 3C */ stw r4, 0x3c(r1) +/* 803A3834 003A0794 C0 62 D5 70 */ lfs f3, lbl_805AF290@sda21(r2) +/* 803A3838 003A0798 C8 01 00 38 */ lfd f0, 0x38(r1) +/* 803A383C 003A079C 90 01 00 34 */ stw r0, 0x34(r1) +/* 803A3840 003A07A0 EC 40 08 28 */ fsubs f2, f0, f1 +/* 803A3844 003A07A4 C8 22 D5 80 */ lfd f1, lbl_805AF2A0@sda21(r2) +/* 803A3848 003A07A8 90 61 00 30 */ stw r3, 0x30(r1) +/* 803A384C 003A07AC 80 61 00 0C */ lwz r3, 0xc(r1) +/* 803A3850 003A07B0 C8 01 00 30 */ lfd f0, 0x30(r1) +/* 803A3854 003A07B4 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803A3858 003A07B8 EC 00 08 28 */ fsubs f0, f0, f1 +/* 803A385C 003A07BC EC 02 00 32 */ fmuls f0, f2, f0 +/* 803A3860 003A07C0 FC 00 00 1E */ fctiwz f0, f0 +/* 803A3864 003A07C4 D8 01 00 28 */ stfd f0, 0x28(r1) +/* 803A3868 003A07C8 80 01 00 2C */ lwz r0, 0x2c(r1) +/* 803A386C 003A07CC 7C 03 02 14 */ add r0, r3, r0 +/* 803A3870 003A07D0 90 01 00 0C */ stw r0, 0xc(r1) +lbl_803A3874: +/* 803A3874 003A07D4 80 1F 00 F4 */ lwz r0, 0xf4(r31) +/* 803A3878 003A07D8 38 81 00 08 */ addi r4, r1, 8 +/* 803A387C 003A07DC 38 A0 00 01 */ li r5, 1 +/* 803A3880 003A07E0 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A3884 003A07E4 48 00 FB 59 */ bl hwSetADSR +lbl_803A3888: +/* 803A3888 003A07E8 80 1F 01 18 */ lwz r0, 0x118(r31) +/* 803A388C 003A07EC 60 00 01 00 */ ori r0, r0, 0x100 +/* 803A3890 003A07F0 90 1F 01 18 */ stw r0, 0x118(r31) +lbl_803A3894: +/* 803A3894 003A07F4 80 01 00 54 */ lwz r0, 0x54(r1) +/* 803A3898 003A07F8 83 E1 00 4C */ lwz r31, 0x4c(r1) +/* 803A389C 003A07FC 83 C1 00 48 */ lwz r30, 0x48(r1) +/* 803A38A0 003A0800 7C 08 03 A6 */ mtlr r0 +/* 803A38A4 003A0804 38 21 00 50 */ addi r1, r1, 0x50 +/* 803A38A8 003A0808 4E 80 00 20 */ blr + +.global mcmdSetADSRFromCtrl +mcmdSetADSRFromCtrl: +/* 803A38AC 003A080C 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 803A38B0 003A0810 7C 08 02 A6 */ mflr r0 +/* 803A38B4 003A0814 90 01 00 44 */ stw r0, 0x44(r1) +/* 803A38B8 003A0818 DB E1 00 30 */ stfd f31, 0x30(r1) +/* 803A38BC 003A081C F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0 +/* 803A38C0 003A0820 93 E1 00 2C */ stw r31, 0x2c(r1) +/* 803A38C4 003A0824 93 C1 00 28 */ stw r30, 0x28(r1) +/* 803A38C8 003A0828 7C 7E 1B 78 */ mr r30, r3 +/* 803A38CC 003A082C 80 04 00 00 */ lwz r0, 0(r4) +/* 803A38D0 003A0830 7C 9F 23 78 */ mr r31, r4 +/* 803A38D4 003A0834 88 83 01 21 */ lbz r4, 0x121(r3) +/* 803A38D8 003A0838 88 BE 01 22 */ lbz r5, 0x122(r30) +/* 803A38DC 003A083C 54 03 46 3E */ srwi r3, r0, 0x18 +/* 803A38E0 003A0840 48 00 E0 2D */ bl inpGetMidiCtrl +/* 803A38E4 003A0844 3C A0 80 3F */ lis r5, lbl_803F3DA4@ha +/* 803A38E8 003A0848 54 66 DD 7A */ rlwinm r6, r3, 0x1b, 0x15, 0x1d +/* 803A38EC 003A084C 38 65 3D A4 */ addi r3, r5, lbl_803F3DA4@l +/* 803A38F0 003A0850 80 1F 00 00 */ lwz r0, 0(r31) +/* 803A38F4 003A0854 7F E3 34 2E */ lfsx f31, r3, r6 +/* 803A38F8 003A0858 88 9E 01 21 */ lbz r4, 0x121(r30) +/* 803A38FC 003A085C 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f +/* 803A3900 003A0860 88 BE 01 22 */ lbz r5, 0x122(r30) +/* 803A3904 003A0864 48 00 E0 09 */ bl inpGetMidiCtrl +/* 803A3908 003A0868 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha +/* 803A390C 003A086C 54 60 DD 7A */ rlwinm r0, r3, 0x1b, 0x15, 0x1d +/* 803A3910 003A0870 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l +/* 803A3914 003A0874 7C 03 00 2E */ lwzx r0, r3, r0 +/* 803A3918 003A0878 90 01 00 08 */ stw r0, 8(r1) +/* 803A391C 003A087C 80 1F 00 00 */ lwz r0, 0(r31) +/* 803A3920 003A0880 88 9E 01 21 */ lbz r4, 0x121(r30) +/* 803A3924 003A0884 88 BE 01 22 */ lbz r5, 0x122(r30) +/* 803A3928 003A0888 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f +/* 803A392C 003A088C 48 00 DF E1 */ bl inpGetMidiCtrl +/* 803A3930 003A0890 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha +/* 803A3934 003A0894 C0 02 D5 88 */ lfs f0, lbl_805AF2A8@sda21(r2) +/* 803A3938 003A0898 54 60 DD 7A */ rlwinm r0, r3, 0x1b, 0x15, 0x1d +/* 803A393C 003A089C 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l +/* 803A3940 003A08A0 EC 20 07 F2 */ fmuls f1, f0, f31 +/* 803A3944 003A08A4 7C 03 00 2E */ lwzx r0, r3, r0 +/* 803A3948 003A08A8 90 01 00 0C */ stw r0, 0xc(r1) +/* 803A394C 003A08AC 4B FE 60 09 */ bl __cvt_fp2unsigned +/* 803A3950 003A08B0 3C 80 80 3F */ lis r4, lbl_803F39A4@ha +/* 803A3954 003A08B4 38 84 39 A4 */ addi r4, r4, lbl_803F39A4@l +/* 803A3958 003A08B8 7C 04 18 AE */ lbzx r0, r4, r3 +/* 803A395C 003A08BC 20 00 00 C1 */ subfic r0, r0, 0xc1 +/* 803A3960 003A08C0 B0 01 00 10 */ sth r0, 0x10(r1) +/* 803A3964 003A08C4 80 1F 00 04 */ lwz r0, 4(r31) +/* 803A3968 003A08C8 88 9E 01 21 */ lbz r4, 0x121(r30) +/* 803A396C 003A08CC 88 BE 01 22 */ lbz r5, 0x122(r30) +/* 803A3970 003A08D0 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A3974 003A08D4 48 00 DF 99 */ bl inpGetMidiCtrl +/* 803A3978 003A08D8 3C 80 80 3F */ lis r4, lbl_803F2FF4@ha +/* 803A397C 003A08DC 3C 00 80 00 */ lis r0, 0x8000 +/* 803A3980 003A08E0 54 65 DD 7A */ rlwinm r5, r3, 0x1b, 0x15, 0x1d +/* 803A3984 003A08E4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A3988 003A08E8 38 64 2F F4 */ addi r3, r4, lbl_803F2FF4@l +/* 803A398C 003A08EC 38 81 00 08 */ addi r4, r1, 8 +/* 803A3990 003A08F0 7C 63 28 2E */ lwzx r3, r3, r5 +/* 803A3994 003A08F4 38 A0 00 02 */ li r5, 2 +/* 803A3998 003A08F8 90 01 00 18 */ stw r0, 0x18(r1) +/* 803A399C 003A08FC B0 61 00 12 */ sth r3, 0x12(r1) +/* 803A39A0 003A0900 80 1E 00 F4 */ lwz r0, 0xf4(r30) +/* 803A39A4 003A0904 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A39A8 003A0908 48 00 FA 35 */ bl hwSetADSR +/* 803A39AC 003A090C 80 1E 01 18 */ lwz r0, 0x118(r30) +/* 803A39B0 003A0910 60 00 01 00 */ ori r0, r0, 0x100 +/* 803A39B4 003A0914 90 1E 01 18 */ stw r0, 0x118(r30) +/* 803A39B8 003A0918 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0 +/* 803A39BC 003A091C 80 01 00 44 */ lwz r0, 0x44(r1) +/* 803A39C0 003A0920 CB E1 00 30 */ lfd f31, 0x30(r1) +/* 803A39C4 003A0924 83 E1 00 2C */ lwz r31, 0x2c(r1) +/* 803A39C8 003A0928 83 C1 00 28 */ lwz r30, 0x28(r1) +/* 803A39CC 003A092C 7C 08 03 A6 */ mtlr r0 +/* 803A39D0 003A0930 38 21 00 40 */ addi r1, r1, 0x40 +/* 803A39D4 003A0934 4E 80 00 20 */ blr + +.global mcmdSetPitchADSR +mcmdSetPitchADSR: +/* 803A39D8 003A0938 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 803A39DC 003A093C 7C 08 02 A6 */ mflr r0 +/* 803A39E0 003A0940 90 01 00 54 */ stw r0, 0x54(r1) +/* 803A39E4 003A0944 39 61 00 50 */ addi r11, r1, 0x50 +/* 803A39E8 003A0948 4B FE 60 95 */ bl sub_80389a7c +/* 803A39EC 003A094C 80 04 00 00 */ lwz r0, 0(r4) +/* 803A39F0 003A0950 7C 7F 1B 78 */ mr r31, r3 +/* 803A39F4 003A0954 7C 9B 23 78 */ mr r27, r4 +/* 803A39F8 003A0958 54 03 C4 3E */ rlwinm r3, r0, 0x18, 0x10, 0x1f +/* 803A39FC 003A095C 4B FF EC D5 */ bl dataGetCurve +/* 803A3A00 003A0960 28 03 00 00 */ cmplwi r3, 0 +/* 803A3A04 003A0964 41 82 02 38 */ beq lbl_803A3C3C +/* 803A3A08 003A0968 80 1B 00 04 */ lwz r0, 4(r27) +/* 803A3A0C 003A096C 7C 00 07 74 */ extsb r0, r0 +/* 803A3A10 003A0970 54 00 40 2E */ slwi r0, r0, 8 +/* 803A3A14 003A0974 B0 1F 02 04 */ sth r0, 0x204(r31) +/* 803A3A18 003A0978 A8 BF 02 04 */ lha r5, 0x204(r31) +/* 803A3A1C 003A097C 2C 05 00 00 */ cmpwi r5, 0 +/* 803A3A20 003A0980 41 80 00 38 */ blt lbl_803A3A58 +/* 803A3A24 003A0984 80 1B 00 04 */ lwz r0, 4(r27) +/* 803A3A28 003A0988 3C 80 51 EC */ lis r4, 0x51EB851F@ha +/* 803A3A2C 003A098C 38 84 85 1F */ addi r4, r4, 0x51EB851F@l +/* 803A3A30 003A0990 54 00 C2 3E */ srwi r0, r0, 8 +/* 803A3A34 003A0994 7C 00 07 74 */ extsb r0, r0 +/* 803A3A38 003A0998 54 00 40 2E */ slwi r0, r0, 8 +/* 803A3A3C 003A099C 7C 04 00 96 */ mulhw r0, r4, r0 +/* 803A3A40 003A09A0 7C 00 2E 70 */ srawi r0, r0, 5 +/* 803A3A44 003A09A4 54 04 0F FE */ srwi r4, r0, 0x1f +/* 803A3A48 003A09A8 7C 00 22 14 */ add r0, r0, r4 +/* 803A3A4C 003A09AC 7C 05 02 14 */ add r0, r5, r0 +/* 803A3A50 003A09B0 B0 1F 02 04 */ sth r0, 0x204(r31) +/* 803A3A54 003A09B4 48 00 00 34 */ b lbl_803A3A88 +lbl_803A3A58: +/* 803A3A58 003A09B8 80 1B 00 04 */ lwz r0, 4(r27) +/* 803A3A5C 003A09BC 3C 80 51 EC */ lis r4, 0x51EB851F@ha +/* 803A3A60 003A09C0 38 84 85 1F */ addi r4, r4, 0x51EB851F@l +/* 803A3A64 003A09C4 54 00 C2 3E */ srwi r0, r0, 8 +/* 803A3A68 003A09C8 7C 00 07 74 */ extsb r0, r0 +/* 803A3A6C 003A09CC 54 00 40 2E */ slwi r0, r0, 8 +/* 803A3A70 003A09D0 7C 04 00 96 */ mulhw r0, r4, r0 +/* 803A3A74 003A09D4 7C 00 2E 70 */ srawi r0, r0, 5 +/* 803A3A78 003A09D8 54 04 0F FE */ srwi r4, r0, 0x1f +/* 803A3A7C 003A09DC 7C 00 22 14 */ add r0, r0, r4 +/* 803A3A80 003A09E0 7C 00 28 50 */ subf r0, r0, r5 +/* 803A3A84 003A09E4 B0 1F 02 04 */ sth r0, 0x204(r31) +lbl_803A3A88: +/* 803A3A88 003A09E8 88 03 00 0D */ lbz r0, 0xd(r3) +/* 803A3A8C 003A09EC 88 83 00 0E */ lbz r4, 0xe(r3) +/* 803A3A90 003A09F0 88 C3 00 0C */ lbz r6, 0xc(r3) +/* 803A3A94 003A09F4 50 06 44 2E */ rlwimi r6, r0, 8, 0x10, 0x17 +/* 803A3A98 003A09F8 50 86 82 1E */ rlwimi r6, r4, 0x10, 8, 0xf +/* 803A3A9C 003A09FC 88 03 00 0F */ lbz r0, 0xf(r3) +/* 803A3AA0 003A0A00 7C C7 33 78 */ mr r7, r6 +/* 803A3AA4 003A0A04 A0 A3 00 08 */ lhz r5, 8(r3) +/* 803A3AA8 003A0A08 50 07 C0 0E */ rlwimi r7, r0, 0x18, 0, 7 +/* 803A3AAC 003A0A0C 89 63 00 01 */ lbz r11, 1(r3) +/* 803A3AB0 003A0A10 88 83 00 00 */ lbz r4, 0(r3) +/* 803A3AB4 003A0A14 3D 07 80 00 */ addis r8, r7, 0x8000 +/* 803A3AB8 003A0A18 51 64 44 2E */ rlwimi r4, r11, 8, 0x10, 0x17 +/* 803A3ABC 003A0A1C 7C BC 46 70 */ srawi r28, r5, 8 +/* 803A3AC0 003A0A20 88 03 00 02 */ lbz r0, 2(r3) +/* 803A3AC4 003A0A24 28 08 00 00 */ cmplwi r8, 0 +/* 803A3AC8 003A0A28 89 23 00 11 */ lbz r9, 0x11(r3) +/* 803A3ACC 003A0A2C 50 BC 42 2E */ rlwimi r28, r5, 8, 8, 0x17 +/* 803A3AD0 003A0A30 89 43 00 10 */ lbz r10, 0x10(r3) +/* 803A3AD4 003A0A34 50 04 82 1E */ rlwimi r4, r0, 0x10, 8, 0xf +/* 803A3AD8 003A0A38 51 2A 44 2E */ rlwimi r10, r9, 8, 0x10, 0x17 +/* 803A3ADC 003A0A3C 89 63 00 12 */ lbz r11, 0x12(r3) +/* 803A3AE0 003A0A40 8B 63 00 03 */ lbz r27, 3(r3) +/* 803A3AE4 003A0A44 89 83 00 05 */ lbz r12, 5(r3) +/* 803A3AE8 003A0A48 51 6A 82 1E */ rlwimi r10, r11, 0x10, 8, 0xf +/* 803A3AEC 003A0A4C 8B C3 00 04 */ lbz r30, 4(r3) +/* 803A3AF0 003A0A50 53 64 C0 0E */ rlwimi r4, r27, 0x18, 0, 7 +/* 803A3AF4 003A0A54 A0 C3 00 0A */ lhz r6, 0xa(r3) +/* 803A3AF8 003A0A58 51 9E 44 2E */ rlwimi r30, r12, 8, 0x10, 0x17 +/* 803A3AFC 003A0A5C 8B A3 00 06 */ lbz r29, 6(r3) +/* 803A3B00 003A0A60 89 23 00 07 */ lbz r9, 7(r3) +/* 803A3B04 003A0A64 7C CC 46 70 */ srawi r12, r6, 8 +/* 803A3B08 003A0A68 53 BE 82 1E */ rlwimi r30, r29, 0x10, 8, 0xf +/* 803A3B0C 003A0A6C 88 63 00 13 */ lbz r3, 0x13(r3) +/* 803A3B10 003A0A70 50 CC 42 2E */ rlwimi r12, r6, 8, 8, 0x17 +/* 803A3B14 003A0A74 7D 46 53 78 */ mr r6, r10 +/* 803A3B18 003A0A78 57 9D 04 3E */ clrlwi r29, r28, 0x10 +/* 803A3B1C 003A0A7C 51 3E C0 0E */ rlwimi r30, r9, 0x18, 0, 7 +/* 803A3B20 003A0A80 55 9C 04 3E */ clrlwi r28, r12, 0x10 +/* 803A3B24 003A0A84 50 66 C0 0E */ rlwimi r6, r3, 0x18, 0, 7 +/* 803A3B28 003A0A88 41 82 00 54 */ beq lbl_803A3B7C +/* 803A3B2C 003A0A8C 80 BF 01 58 */ lwz r5, 0x158(r31) +/* 803A3B30 003A0A90 3C 60 43 30 */ lis r3, 0x4330 +/* 803A3B34 003A0A94 6C E0 80 00 */ xoris r0, r7, 0x8000 +/* 803A3B38 003A0A98 90 61 00 08 */ stw r3, 8(r1) +/* 803A3B3C 003A0A9C C8 22 D5 78 */ lfd f1, lbl_805AF298@sda21(r2) +/* 803A3B40 003A0AA0 90 A1 00 0C */ stw r5, 0xc(r1) +/* 803A3B44 003A0AA4 C0 62 D5 6C */ lfs f3, lbl_805AF28C@sda21(r2) +/* 803A3B48 003A0AA8 C8 01 00 08 */ lfd f0, 8(r1) +/* 803A3B4C 003A0AAC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A3B50 003A0AB0 EC 40 08 28 */ fsubs f2, f0, f1 +/* 803A3B54 003A0AB4 C8 22 D5 80 */ lfd f1, lbl_805AF2A0@sda21(r2) +/* 803A3B58 003A0AB8 90 61 00 10 */ stw r3, 0x10(r1) +/* 803A3B5C 003A0ABC C8 01 00 10 */ lfd f0, 0x10(r1) +/* 803A3B60 003A0AC0 EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803A3B64 003A0AC4 EC 00 08 28 */ fsubs f0, f0, f1 +/* 803A3B68 003A0AC8 EC 02 00 32 */ fmuls f0, f2, f0 +/* 803A3B6C 003A0ACC FC 00 00 1E */ fctiwz f0, f0 +/* 803A3B70 003A0AD0 D8 01 00 18 */ stfd f0, 0x18(r1) +/* 803A3B74 003A0AD4 80 01 00 1C */ lwz r0, 0x1c(r1) +/* 803A3B78 003A0AD8 7C 84 02 14 */ add r4, r4, r0 +lbl_803A3B7C: +/* 803A3B7C 003A0ADC 3C 06 80 00 */ addis r0, r6, 0x8000 +/* 803A3B80 003A0AE0 28 00 00 00 */ cmplwi r0, 0 +/* 803A3B84 003A0AE4 41 82 00 54 */ beq lbl_803A3BD8 +/* 803A3B88 003A0AE8 88 BF 01 2F */ lbz r5, 0x12f(r31) +/* 803A3B8C 003A0AEC 3C 60 43 30 */ lis r3, 0x4330 +/* 803A3B90 003A0AF0 6C C0 80 00 */ xoris r0, r6, 0x8000 +/* 803A3B94 003A0AF4 90 61 00 20 */ stw r3, 0x20(r1) +/* 803A3B98 003A0AF8 C8 22 D5 78 */ lfd f1, lbl_805AF298@sda21(r2) +/* 803A3B9C 003A0AFC 90 A1 00 24 */ stw r5, 0x24(r1) +/* 803A3BA0 003A0B00 C0 62 D5 70 */ lfs f3, lbl_805AF290@sda21(r2) +/* 803A3BA4 003A0B04 C8 01 00 20 */ lfd f0, 0x20(r1) +/* 803A3BA8 003A0B08 90 01 00 2C */ stw r0, 0x2c(r1) +/* 803A3BAC 003A0B0C EC 40 08 28 */ fsubs f2, f0, f1 +/* 803A3BB0 003A0B10 C8 22 D5 80 */ lfd f1, lbl_805AF2A0@sda21(r2) +/* 803A3BB4 003A0B14 90 61 00 28 */ stw r3, 0x28(r1) +/* 803A3BB8 003A0B18 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 803A3BBC 003A0B1C EC 43 00 B2 */ fmuls f2, f3, f2 +/* 803A3BC0 003A0B20 EC 00 08 28 */ fsubs f0, f0, f1 +/* 803A3BC4 003A0B24 EC 02 00 32 */ fmuls f0, f2, f0 +/* 803A3BC8 003A0B28 FC 00 00 1E */ fctiwz f0, f0 +/* 803A3BCC 003A0B2C D8 01 00 30 */ stfd f0, 0x30(r1) +/* 803A3BD0 003A0B30 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803A3BD4 003A0B34 7F DE 02 14 */ add r30, r30, r0 +lbl_803A3BD8: +/* 803A3BD8 003A0B38 38 60 00 01 */ li r3, 1 +/* 803A3BDC 003A0B3C 38 00 00 00 */ li r0, 0 +/* 803A3BE0 003A0B40 98 7F 01 DC */ stb r3, 0x1dc(r31) +/* 803A3BE4 003A0B44 7C 83 23 78 */ mr r3, r4 +/* 803A3BE8 003A0B48 98 1F 02 02 */ stb r0, 0x202(r31) +/* 803A3BEC 003A0B4C 48 00 56 25 */ bl adsrConvertTimeCents +/* 803A3BF0 003A0B50 90 7F 01 F0 */ stw r3, 0x1f0(r31) +/* 803A3BF4 003A0B54 7F C3 F3 78 */ mr r3, r30 +/* 803A3BF8 003A0B58 48 00 56 19 */ bl adsrConvertTimeCents +/* 803A3BFC 003A0B5C 57 A0 F4 BE */ rlwinm r0, r29, 0x1e, 0x12, 0x1f +/* 803A3C00 003A0B60 90 7F 01 F4 */ stw r3, 0x1f4(r31) +/* 803A3C04 003A0B64 28 00 03 FF */ cmplwi r0, 0x3ff +/* 803A3C08 003A0B68 40 81 00 08 */ ble lbl_803A3C10 +/* 803A3C0C 003A0B6C 38 00 03 FF */ li r0, 0x3ff +lbl_803A3C10: +/* 803A3C10 003A0B70 3C 80 80 3F */ lis r4, lbl_803F39A4@ha +/* 803A3C14 003A0B74 38 7F 01 DC */ addi r3, r31, 0x1dc +/* 803A3C18 003A0B78 38 84 39 A4 */ addi r4, r4, lbl_803F39A4@l +/* 803A3C1C 003A0B7C 7C 04 00 AE */ lbzx r0, r4, r0 +/* 803A3C20 003A0B80 20 00 00 C1 */ subfic r0, r0, 0xc1 +/* 803A3C24 003A0B84 B0 1F 01 F8 */ sth r0, 0x1f8(r31) +/* 803A3C28 003A0B88 93 9F 01 FC */ stw r28, 0x1fc(r31) +/* 803A3C2C 003A0B8C 48 00 58 A9 */ bl adsrSetup +/* 803A3C30 003A0B90 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A3C34 003A0B94 60 00 02 00 */ ori r0, r0, 0x200 +/* 803A3C38 003A0B98 90 1F 01 14 */ stw r0, 0x114(r31) +lbl_803A3C3C: +/* 803A3C3C 003A0B9C 39 61 00 50 */ addi r11, r1, 0x50 +/* 803A3C40 003A0BA0 4B FE 5E 89 */ bl _restgpr_27 +/* 803A3C44 003A0BA4 80 01 00 54 */ lwz r0, 0x54(r1) +/* 803A3C48 003A0BA8 7C 08 03 A6 */ mtlr r0 +/* 803A3C4C 003A0BAC 38 21 00 50 */ addi r1, r1, 0x50 +/* 803A3C50 003A0BB0 4E 80 00 20 */ blr + +.global sub_803a3c54 +sub_803a3c54: +/* 803A3C54 003A0BB4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A3C58 003A0BB8 7C 08 02 A6 */ mflr r0 +/* 803A3C5C 003A0BBC 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A3C60 003A0BC0 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A3C64 003A0BC4 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A3C68 003A0BC8 7C 9E 23 78 */ mr r30, r4 +/* 803A3C6C 003A0BCC 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A3C70 003A0BD0 7C 7D 1B 78 */ mr r29, r3 +/* 803A3C74 003A0BD4 38 7D 01 88 */ addi r3, r29, 0x188 +/* 803A3C78 003A0BD8 80 04 00 00 */ lwz r0, 0(r4) +/* 803A3C7C 003A0BDC 54 1F 84 3E */ srwi r31, r0, 0x10 +/* 803A3C80 003A0BE0 93 FD 01 88 */ stw r31, 0x188(r29) +/* 803A3C84 003A0BE4 48 00 F2 69 */ bl dGeomDisable +/* 803A3C88 003A0BE8 80 1E 00 00 */ lwz r0, 0(r30) +/* 803A3C8C 003A0BEC 80 7E 00 04 */ lwz r3, 4(r30) +/* 803A3C90 003A0BF0 54 00 42 1E */ rlwinm r0, r0, 8, 8, 0xf +/* 803A3C94 003A0BF4 90 1D 01 70 */ stw r0, 0x170(r29) +/* 803A3C98 003A0BF8 7C 60 07 74 */ extsb r0, r3 +/* 803A3C9C 003A0BFC 54 03 80 1E */ slwi r3, r0, 0x10 +/* 803A3CA0 003A0C00 80 1D 01 70 */ lwz r0, 0x170(r29) +/* 803A3CA4 003A0C04 7C 00 1A 14 */ add r0, r0, r3 +/* 803A3CA8 003A0C08 90 1D 01 80 */ stw r0, 0x180(r29) +/* 803A3CAC 003A0C0C 80 1D 01 88 */ lwz r0, 0x188(r29) +/* 803A3CB0 003A0C10 28 00 00 00 */ cmplwi r0, 0 +/* 803A3CB4 003A0C14 41 82 00 10 */ beq lbl_803A3CC4 +/* 803A3CB8 003A0C18 7C 03 FB D6 */ divw r0, r3, r31 +/* 803A3CBC 003A0C1C 90 1D 01 78 */ stw r0, 0x178(r29) +/* 803A3CC0 003A0C20 48 00 00 08 */ b lbl_803A3CC8 +lbl_803A3CC4: +/* 803A3CC4 003A0C24 90 7D 01 78 */ stw r3, 0x178(r29) +lbl_803A3CC8: +/* 803A3CC8 003A0C28 80 1D 01 14 */ lwz r0, 0x114(r29) +/* 803A3CCC 003A0C2C 60 00 20 00 */ ori r0, r0, 0x2000 +/* 803A3CD0 003A0C30 90 1D 01 14 */ stw r0, 0x114(r29) +/* 803A3CD4 003A0C34 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A3CD8 003A0C38 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A3CDC 003A0C3C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A3CE0 003A0C40 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A3CE4 003A0C44 7C 08 03 A6 */ mtlr r0 +/* 803A3CE8 003A0C48 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A3CEC 003A0C4C 4E 80 00 20 */ blr + +.global mcmdSetPanning +mcmdSetPanning: +/* 803A3CF0 003A0C50 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A3CF4 003A0C54 7C 08 02 A6 */ mflr r0 +/* 803A3CF8 003A0C58 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A3CFC 003A0C5C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A3D00 003A0C60 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A3D04 003A0C64 7C 9E 23 78 */ mr r30, r4 +/* 803A3D08 003A0C68 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A3D0C 003A0C6C 7C 7D 1B 78 */ mr r29, r3 +/* 803A3D10 003A0C70 38 7D 01 8C */ addi r3, r29, 0x18c +/* 803A3D14 003A0C74 80 04 00 00 */ lwz r0, 0(r4) +/* 803A3D18 003A0C78 54 1F 84 3E */ srwi r31, r0, 0x10 +/* 803A3D1C 003A0C7C 93 FD 01 8C */ stw r31, 0x18c(r29) +/* 803A3D20 003A0C80 48 00 F1 CD */ bl dGeomDisable +/* 803A3D24 003A0C84 80 1E 00 00 */ lwz r0, 0(r30) +/* 803A3D28 003A0C88 80 7E 00 04 */ lwz r3, 4(r30) +/* 803A3D2C 003A0C8C 54 00 42 1E */ rlwinm r0, r0, 8, 8, 0xf +/* 803A3D30 003A0C90 90 1D 01 74 */ stw r0, 0x174(r29) +/* 803A3D34 003A0C94 7C 60 07 74 */ extsb r0, r3 +/* 803A3D38 003A0C98 54 03 80 1E */ slwi r3, r0, 0x10 +/* 803A3D3C 003A0C9C 80 1D 01 74 */ lwz r0, 0x174(r29) +/* 803A3D40 003A0CA0 7C 00 1A 14 */ add r0, r0, r3 +/* 803A3D44 003A0CA4 90 1D 01 84 */ stw r0, 0x184(r29) +/* 803A3D48 003A0CA8 80 1D 01 8C */ lwz r0, 0x18c(r29) +/* 803A3D4C 003A0CAC 28 00 00 00 */ cmplwi r0, 0 +/* 803A3D50 003A0CB0 41 82 00 10 */ beq lbl_803A3D60 +/* 803A3D54 003A0CB4 7C 03 FB D6 */ divw r0, r3, r31 +/* 803A3D58 003A0CB8 90 1D 01 7C */ stw r0, 0x17c(r29) +/* 803A3D5C 003A0CBC 48 00 00 08 */ b lbl_803A3D64 +lbl_803A3D60: +/* 803A3D60 003A0CC0 90 7D 01 7C */ stw r3, 0x17c(r29) +lbl_803A3D64: +/* 803A3D64 003A0CC4 80 1D 01 14 */ lwz r0, 0x114(r29) +/* 803A3D68 003A0CC8 60 00 20 00 */ ori r0, r0, 0x2000 +/* 803A3D6C 003A0CCC 90 1D 01 14 */ stw r0, 0x114(r29) +/* 803A3D70 003A0CD0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A3D74 003A0CD4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A3D78 003A0CD8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A3D7C 003A0CDC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A3D80 003A0CE0 7C 08 03 A6 */ mtlr r0 +/* 803A3D84 003A0CE4 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A3D88 003A0CE8 4E 80 00 20 */ blr + +.global mcmdScaleVolume +mcmdScaleVolume: +/* 803A3D8C 003A0CEC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A3D90 003A0CF0 7C 08 02 A6 */ mflr r0 +/* 803A3D94 003A0CF4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A3D98 003A0CF8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A3D9C 003A0CFC 7C 7F 1B 78 */ mr r31, r3 +/* 803A3DA0 003A0D00 93 C1 00 08 */ stw r30, 8(r1) +/* 803A3DA4 003A0D04 80 04 00 04 */ lwz r0, 4(r4) +/* 803A3DA8 003A0D08 80 64 00 00 */ lwz r3, 0(r4) +/* 803A3DAC 003A0D0C 54 00 C6 3F */ rlwinm. r0, r0, 0x18, 0x18, 0x1f +/* 803A3DB0 003A0D10 54 65 C6 3E */ rlwinm r5, r3, 0x18, 0x18, 0x1f +/* 803A3DB4 003A0D14 40 82 00 30 */ bne lbl_803A3DE4 +/* 803A3DB8 003A0D18 80 1F 01 54 */ lwz r0, 0x154(r31) +/* 803A3DBC 003A0D1C 3C 60 02 04 */ lis r3, 0x02040811@ha +/* 803A3DC0 003A0D20 38 63 08 11 */ addi r3, r3, 0x02040811@l +/* 803A3DC4 003A0D24 7C 00 29 D6 */ mullw r0, r0, r5 +/* 803A3DC8 003A0D28 7C 63 00 16 */ mulhwu r3, r3, r0 +/* 803A3DCC 003A0D2C 7C 03 00 50 */ subf r0, r3, r0 +/* 803A3DD0 003A0D30 54 00 F8 7E */ srwi r0, r0, 1 +/* 803A3DD4 003A0D34 7C 00 1A 14 */ add r0, r0, r3 +/* 803A3DD8 003A0D38 54 00 D1 BE */ srwi r0, r0, 6 +/* 803A3DDC 003A0D3C 90 1F 01 54 */ stw r0, 0x154(r31) +/* 803A3DE0 003A0D40 48 00 00 2C */ b lbl_803A3E0C +lbl_803A3DE4: +/* 803A3DE4 003A0D44 80 1F 01 58 */ lwz r0, 0x158(r31) +/* 803A3DE8 003A0D48 3C 60 02 04 */ lis r3, 0x02040811@ha +/* 803A3DEC 003A0D4C 38 63 08 11 */ addi r3, r3, 0x02040811@l +/* 803A3DF0 003A0D50 7C 00 29 D6 */ mullw r0, r0, r5 +/* 803A3DF4 003A0D54 7C 63 00 16 */ mulhwu r3, r3, r0 +/* 803A3DF8 003A0D58 7C 03 00 50 */ subf r0, r3, r0 +/* 803A3DFC 003A0D5C 54 00 F8 7E */ srwi r0, r0, 1 +/* 803A3E00 003A0D60 7C 00 1A 14 */ add r0, r0, r3 +/* 803A3E04 003A0D64 54 00 D1 BE */ srwi r0, r0, 6 +/* 803A3E08 003A0D68 90 1F 01 54 */ stw r0, 0x154(r31) +lbl_803A3E0C: +/* 803A3E0C 003A0D6C 80 64 00 00 */ lwz r3, 0(r4) +/* 803A3E10 003A0D70 3C 00 00 7F */ lis r0, 0x7f +/* 803A3E14 003A0D74 80 BF 01 54 */ lwz r5, 0x154(r31) +/* 803A3E18 003A0D78 54 63 02 1E */ rlwinm r3, r3, 0, 8, 0xf +/* 803A3E1C 003A0D7C 7C 65 1A 14 */ add r3, r5, r3 +/* 803A3E20 003A0D80 90 7F 01 54 */ stw r3, 0x154(r31) +/* 803A3E24 003A0D84 80 7F 01 54 */ lwz r3, 0x154(r31) +/* 803A3E28 003A0D88 7C 03 00 40 */ cmplw r3, r0 +/* 803A3E2C 003A0D8C 40 81 00 08 */ ble lbl_803A3E34 +/* 803A3E30 003A0D90 90 1F 01 54 */ stw r0, 0x154(r31) +lbl_803A3E34: +/* 803A3E34 003A0D94 80 64 00 00 */ lwz r3, 0(r4) +/* 803A3E38 003A0D98 80 04 00 04 */ lwz r0, 4(r4) +/* 803A3E3C 003A0D9C 54 63 46 3E */ srwi r3, r3, 0x18 +/* 803A3E40 003A0DA0 83 DF 01 54 */ lwz r30, 0x154(r31) +/* 803A3E44 003A0DA4 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17 +/* 803A3E48 003A0DA8 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A3E4C 003A0DAC 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A3E50 003A0DB0 41 82 00 48 */ beq lbl_803A3E98 +/* 803A3E54 003A0DB4 4B FF E8 7D */ bl dataGetCurve +/* 803A3E58 003A0DB8 28 03 00 00 */ cmplwi r3, 0 +/* 803A3E5C 003A0DBC 41 82 00 3C */ beq lbl_803A3E98 +/* 803A3E60 003A0DC0 57 C0 84 3E */ srwi r0, r30, 0x10 +/* 803A3E64 003A0DC4 57 C5 04 3E */ clrlwi r5, r30, 0x10 +/* 803A3E68 003A0DC8 28 00 00 7F */ cmplwi r0, 0x7f +/* 803A3E6C 003A0DCC 40 80 00 24 */ bge lbl_803A3E90 +/* 803A3E70 003A0DD0 7C 83 02 14 */ add r4, r3, r0 +/* 803A3E74 003A0DD4 7C C3 00 AE */ lbzx r6, r3, r0 +/* 803A3E78 003A0DD8 88 64 00 01 */ lbz r3, 1(r4) +/* 803A3E7C 003A0DDC 54 C0 82 1E */ rlwinm r0, r6, 0x10, 8, 0xf +/* 803A3E80 003A0DE0 7C 66 18 50 */ subf r3, r6, r3 +/* 803A3E84 003A0DE4 7C 65 19 D6 */ mullw r3, r5, r3 +/* 803A3E88 003A0DE8 7F C3 02 14 */ add r30, r3, r0 +/* 803A3E8C 003A0DEC 48 00 00 0C */ b lbl_803A3E98 +lbl_803A3E90: +/* 803A3E90 003A0DF0 7C 03 00 AE */ lbzx r0, r3, r0 +/* 803A3E94 003A0DF4 54 1E 80 1E */ slwi r30, r0, 0x10 +lbl_803A3E98: +/* 803A3E98 003A0DF8 93 DF 01 54 */ stw r30, 0x154(r31) +/* 803A3E9C 003A0DFC 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A3EA0 003A0E00 60 00 10 00 */ ori r0, r0, 0x1000 +/* 803A3EA4 003A0E04 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A3EA8 003A0E08 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A3EAC 003A0E0C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A3EB0 003A0E10 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A3EB4 003A0E14 7C 08 03 A6 */ mtlr r0 +/* 803A3EB8 003A0E18 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A3EBC 003A0E1C 4E 80 00 20 */ blr + +.global mcmdEnvelope +mcmdEnvelope: +/* 803A3EC0 003A0E20 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803A3EC4 003A0E24 7C 08 02 A6 */ mflr r0 +/* 803A3EC8 003A0E28 90 01 00 34 */ stw r0, 0x34(r1) +/* 803A3ECC 003A0E2C 39 61 00 30 */ addi r11, r1, 0x30 +/* 803A3ED0 003A0E30 4B FE 5B AD */ bl sub_80389a7c +/* 803A3ED4 003A0E34 80 04 00 04 */ lwz r0, 4(r4) +/* 803A3ED8 003A0E38 7C 9B 23 78 */ mr r27, r4 +/* 803A3EDC 003A0E3C 83 C3 01 54 */ lwz r30, 0x154(r3) +/* 803A3EE0 003A0E40 7C 7D 1B 78 */ mr r29, r3 +/* 803A3EE4 003A0E44 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A3EE8 003A0E48 90 01 00 08 */ stw r0, 8(r1) +/* 803A3EEC 003A0E4C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A3EF0 003A0E50 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f +/* 803A3EF4 003A0E54 41 82 00 10 */ beq lbl_803A3F04 +/* 803A3EF8 003A0E58 38 61 00 08 */ addi r3, r1, 8 +/* 803A3EFC 003A0E5C 48 00 EF F1 */ bl dGeomDisable +/* 803A3F00 003A0E60 48 00 00 10 */ b lbl_803A3F10 +lbl_803A3F04: +/* 803A3F04 003A0E64 7F A4 EB 78 */ mr r4, r29 +/* 803A3F08 003A0E68 38 61 00 08 */ addi r3, r1, 8 +/* 803A3F0C 003A0E6C 48 00 EF F1 */ bl sndConvertTicks +lbl_803A3F10: +/* 803A3F10 003A0E70 80 61 00 08 */ lwz r3, 8(r1) +/* 803A3F14 003A0E74 48 00 F0 31 */ bl sub_803b2f44 +/* 803A3F18 003A0E78 7C 7F 1B 79 */ or. r31, r3, r3 +/* 803A3F1C 003A0E7C 40 82 00 08 */ bne lbl_803A3F24 +/* 803A3F20 003A0E80 3B E0 00 01 */ li r31, 1 +lbl_803A3F24: +/* 803A3F24 003A0E84 80 DB 00 00 */ lwz r6, 0(r27) +/* 803A3F28 003A0E88 3C 00 00 7F */ lis r0, 0x7f +/* 803A3F2C 003A0E8C 80 BD 01 54 */ lwz r5, 0x154(r29) +/* 803A3F30 003A0E90 54 C4 C6 3E */ rlwinm r4, r6, 0x18, 0x18, 0x1f +/* 803A3F34 003A0E94 54 C3 02 1E */ rlwinm r3, r6, 0, 8, 0xf +/* 803A3F38 003A0E98 7C 85 21 D6 */ mullw r4, r5, r4 +/* 803A3F3C 003A0E9C 54 9C C9 FE */ srwi r28, r4, 7 +/* 803A3F40 003A0EA0 7F 9C 1A 14 */ add r28, r28, r3 +/* 803A3F44 003A0EA4 7C 1C 00 40 */ cmplw r28, r0 +/* 803A3F48 003A0EA8 40 81 00 08 */ ble lbl_803A3F50 +/* 803A3F4C 003A0EAC 7C 1C 03 78 */ mr r28, r0 +lbl_803A3F50: +/* 803A3F50 003A0EB0 80 1B 00 04 */ lwz r0, 4(r27) +/* 803A3F54 003A0EB4 54 C3 46 3E */ srwi r3, r6, 0x18 +/* 803A3F58 003A0EB8 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17 +/* 803A3F5C 003A0EBC 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A3F60 003A0EC0 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A3F64 003A0EC4 41 82 00 48 */ beq lbl_803A3FAC +/* 803A3F68 003A0EC8 4B FF E7 69 */ bl dataGetCurve +/* 803A3F6C 003A0ECC 28 03 00 00 */ cmplwi r3, 0 +/* 803A3F70 003A0ED0 41 82 00 3C */ beq lbl_803A3FAC +/* 803A3F74 003A0ED4 57 80 84 3E */ srwi r0, r28, 0x10 +/* 803A3F78 003A0ED8 57 85 04 3E */ clrlwi r5, r28, 0x10 +/* 803A3F7C 003A0EDC 28 00 00 7F */ cmplwi r0, 0x7f +/* 803A3F80 003A0EE0 40 80 00 24 */ bge lbl_803A3FA4 +/* 803A3F84 003A0EE4 7C 83 02 14 */ add r4, r3, r0 +/* 803A3F88 003A0EE8 7C C3 00 AE */ lbzx r6, r3, r0 +/* 803A3F8C 003A0EEC 88 64 00 01 */ lbz r3, 1(r4) +/* 803A3F90 003A0EF0 54 C0 82 1E */ rlwinm r0, r6, 0x10, 8, 0xf +/* 803A3F94 003A0EF4 7C 66 18 50 */ subf r3, r6, r3 +/* 803A3F98 003A0EF8 7C 65 19 D6 */ mullw r3, r5, r3 +/* 803A3F9C 003A0EFC 7F 83 02 14 */ add r28, r3, r0 +/* 803A3FA0 003A0F00 48 00 00 0C */ b lbl_803A3FAC +lbl_803A3FA4: +/* 803A3FA4 003A0F04 7C 03 00 AE */ lbzx r0, r3, r0 +/* 803A3FA8 003A0F08 54 1C 80 1E */ slwi r28, r0, 0x10 +lbl_803A3FAC: +/* 803A3FAC 003A0F0C 7C 1E E0 50 */ subf r0, r30, r28 +/* 803A3FB0 003A0F10 93 9D 01 98 */ stw r28, 0x198(r29) +/* 803A3FB4 003A0F14 7C 80 FB D6 */ divw r4, r0, r31 +/* 803A3FB8 003A0F18 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 803A3FBC 003A0F1C 93 DD 01 9C */ stw r30, 0x19c(r29) +/* 803A3FC0 003A0F20 39 61 00 30 */ addi r11, r1, 0x30 +/* 803A3FC4 003A0F24 38 03 80 00 */ addi r0, r3, 0x00008000@l +/* 803A3FC8 003A0F28 90 9D 01 94 */ stw r4, 0x194(r29) +/* 803A3FCC 003A0F2C 93 DD 01 54 */ stw r30, 0x154(r29) +/* 803A3FD0 003A0F30 80 9D 01 18 */ lwz r4, 0x118(r29) +/* 803A3FD4 003A0F34 7C 80 03 78 */ or r0, r4, r0 +/* 803A3FD8 003A0F38 90 1D 01 18 */ stw r0, 0x118(r29) +/* 803A3FDC 003A0F3C 4B FE 5A ED */ bl _restgpr_27 +/* 803A3FE0 003A0F40 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803A3FE4 003A0F44 7C 08 03 A6 */ mtlr r0 +/* 803A3FE8 003A0F48 38 21 00 30 */ addi r1, r1, 0x30 +/* 803A3FEC 003A0F4C 4E 80 00 20 */ blr + +.global mcmdFadeIn +mcmdFadeIn: +/* 803A3FF0 003A0F50 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A3FF4 003A0F54 7C 08 02 A6 */ mflr r0 +/* 803A3FF8 003A0F58 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A3FFC 003A0F5C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A4000 003A0F60 7C 7F 1B 78 */ mr r31, r3 +/* 803A4004 003A0F64 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A4008 003A0F68 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A400C 003A0F6C 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A4010 003A0F70 7C 9C 23 78 */ mr r28, r4 +/* 803A4014 003A0F74 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4018 003A0F78 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A401C 003A0F7C 90 01 00 08 */ stw r0, 8(r1) +/* 803A4020 003A0F80 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4024 003A0F84 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f +/* 803A4028 003A0F88 41 82 00 10 */ beq lbl_803A4038 +/* 803A402C 003A0F8C 38 61 00 08 */ addi r3, r1, 8 +/* 803A4030 003A0F90 48 00 EE BD */ bl dGeomDisable +/* 803A4034 003A0F94 48 00 00 10 */ b lbl_803A4044 +lbl_803A4038: +/* 803A4038 003A0F98 7F E4 FB 78 */ mr r4, r31 +/* 803A403C 003A0F9C 38 61 00 08 */ addi r3, r1, 8 +/* 803A4040 003A0FA0 48 00 EE BD */ bl sndConvertTicks +lbl_803A4044: +/* 803A4044 003A0FA4 80 61 00 08 */ lwz r3, 8(r1) +/* 803A4048 003A0FA8 48 00 EE FD */ bl sub_803b2f44 +/* 803A404C 003A0FAC 7C 7E 1B 79 */ or. r30, r3, r3 +/* 803A4050 003A0FB0 40 82 00 08 */ bne lbl_803A4058 +/* 803A4054 003A0FB4 3B C0 00 01 */ li r30, 1 +lbl_803A4058: +/* 803A4058 003A0FB8 80 DC 00 00 */ lwz r6, 0(r28) +/* 803A405C 003A0FBC 3C 00 00 7F */ lis r0, 0x7f +/* 803A4060 003A0FC0 80 BF 01 54 */ lwz r5, 0x154(r31) +/* 803A4064 003A0FC4 54 C4 C6 3E */ rlwinm r4, r6, 0x18, 0x18, 0x1f +/* 803A4068 003A0FC8 54 C3 02 1E */ rlwinm r3, r6, 0, 8, 0xf +/* 803A406C 003A0FCC 7C 85 21 D6 */ mullw r4, r5, r4 +/* 803A4070 003A0FD0 54 9D C9 FE */ srwi r29, r4, 7 +/* 803A4074 003A0FD4 7F BD 1A 14 */ add r29, r29, r3 +/* 803A4078 003A0FD8 7C 1D 00 40 */ cmplw r29, r0 +/* 803A407C 003A0FDC 40 81 00 08 */ ble lbl_803A4084 +/* 803A4080 003A0FE0 7C 1D 03 78 */ mr r29, r0 +lbl_803A4084: +/* 803A4084 003A0FE4 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A4088 003A0FE8 54 C3 46 3E */ srwi r3, r6, 0x18 +/* 803A408C 003A0FEC 50 03 44 2E */ rlwimi r3, r0, 8, 0x10, 0x17 +/* 803A4090 003A0FF0 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A4094 003A0FF4 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A4098 003A0FF8 41 82 00 48 */ beq lbl_803A40E0 +/* 803A409C 003A0FFC 4B FF E6 35 */ bl dataGetCurve +/* 803A40A0 003A1000 28 03 00 00 */ cmplwi r3, 0 +/* 803A40A4 003A1004 41 82 00 3C */ beq lbl_803A40E0 +/* 803A40A8 003A1008 57 A0 84 3E */ srwi r0, r29, 0x10 +/* 803A40AC 003A100C 57 A5 04 3E */ clrlwi r5, r29, 0x10 +/* 803A40B0 003A1010 28 00 00 7F */ cmplwi r0, 0x7f +/* 803A40B4 003A1014 40 80 00 24 */ bge lbl_803A40D8 +/* 803A40B8 003A1018 7C 83 02 14 */ add r4, r3, r0 +/* 803A40BC 003A101C 7C C3 00 AE */ lbzx r6, r3, r0 +/* 803A40C0 003A1020 88 64 00 01 */ lbz r3, 1(r4) +/* 803A40C4 003A1024 54 C0 82 1E */ rlwinm r0, r6, 0x10, 8, 0xf +/* 803A40C8 003A1028 7C 66 18 50 */ subf r3, r6, r3 +/* 803A40CC 003A102C 7C 65 19 D6 */ mullw r3, r5, r3 +/* 803A40D0 003A1030 7F A3 02 14 */ add r29, r3, r0 +/* 803A40D4 003A1034 48 00 00 0C */ b lbl_803A40E0 +lbl_803A40D8: +/* 803A40D8 003A1038 7C 03 00 AE */ lbzx r0, r3, r0 +/* 803A40DC 003A103C 54 1D 80 1E */ slwi r29, r0, 0x10 +lbl_803A40E0: +/* 803A40E0 003A1040 7C 9D F3 D6 */ divw r4, r29, r30 +/* 803A40E4 003A1044 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 803A40E8 003A1048 93 BF 01 98 */ stw r29, 0x198(r31) +/* 803A40EC 003A104C 38 A0 00 00 */ li r5, 0 +/* 803A40F0 003A1050 38 03 80 00 */ addi r0, r3, 0x00008000@l +/* 803A40F4 003A1054 90 BF 01 9C */ stw r5, 0x19c(r31) +/* 803A40F8 003A1058 90 9F 01 94 */ stw r4, 0x194(r31) +/* 803A40FC 003A105C 90 BF 01 54 */ stw r5, 0x154(r31) +/* 803A4100 003A1060 80 9F 01 18 */ lwz r4, 0x118(r31) +/* 803A4104 003A1064 7C 80 03 78 */ or r0, r4, r0 +/* 803A4108 003A1068 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A410C 003A106C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A4110 003A1070 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A4114 003A1074 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A4118 003A1078 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A411C 003A107C 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A4120 003A1080 7C 08 03 A6 */ mtlr r0 +/* 803A4124 003A1084 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A4128 003A1088 4E 80 00 20 */ blr + +.global mcmdRandomKey +mcmdRandomKey: +/* 803A412C 003A108C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A4130 003A1090 7C 08 02 A6 */ mflr r0 +/* 803A4134 003A1094 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A4138 003A1098 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A413C 003A109C 4B FE 59 41 */ bl sub_80389a7c +/* 803A4140 003A10A0 80 A4 00 04 */ lwz r5, 4(r4) +/* 803A4144 003A10A4 7C 9D 23 78 */ mr r29, r4 +/* 803A4148 003A10A8 7C 7C 1B 78 */ mr r28, r3 +/* 803A414C 003A10AC 54 A0 C6 3F */ rlwinm. r0, r5, 0x18, 0x18, 0x1f +/* 803A4150 003A10B0 40 82 00 2C */ bne lbl_803A417C +/* 803A4154 003A10B4 80 7D 00 00 */ lwz r3, 0(r29) +/* 803A4158 003A10B8 54 60 46 3E */ srwi r0, r3, 0x18 +/* 803A415C 003A10BC 54 7F C6 3E */ rlwinm r31, r3, 0x18, 0x18, 0x1f +/* 803A4160 003A10C0 7C 1F 00 40 */ cmplw r31, r0 +/* 803A4164 003A10C4 7C 1E 03 78 */ mr r30, r0 +/* 803A4168 003A10C8 40 81 00 70 */ ble lbl_803A41D8 +/* 803A416C 003A10CC 7F E3 FB 78 */ mr r3, r31 +/* 803A4170 003A10D0 7C 1F 03 78 */ mr r31, r0 +/* 803A4174 003A10D4 7C 7E 1B 78 */ mr r30, r3 +/* 803A4178 003A10D8 48 00 00 60 */ b lbl_803A41D8 +lbl_803A417C: +/* 803A417C 003A10DC 80 1D 00 00 */ lwz r0, 0(r29) +/* 803A4180 003A10E0 A0 9C 01 2C */ lhz r4, 0x12c(r28) +/* 803A4184 003A10E4 54 03 C6 3E */ rlwinm r3, r0, 0x18, 0x18, 0x1f +/* 803A4188 003A10E8 54 00 46 3E */ srwi r0, r0, 0x18 +/* 803A418C 003A10EC 7C 63 20 51 */ subf. r3, r3, r4 +/* 803A4190 003A10F0 7C 84 02 14 */ add r4, r4, r0 +/* 803A4194 003A10F4 40 80 00 0C */ bge lbl_803A41A0 +/* 803A4198 003A10F8 38 00 00 00 */ li r0, 0 +/* 803A419C 003A10FC 48 00 00 14 */ b lbl_803A41B0 +lbl_803A41A0: +/* 803A41A0 003A1100 2C 03 00 7F */ cmpwi r3, 0x7f +/* 803A41A4 003A1104 38 00 00 7F */ li r0, 0x7f +/* 803A41A8 003A1108 41 81 00 08 */ bgt lbl_803A41B0 +/* 803A41AC 003A110C 7C 60 1B 78 */ mr r0, r3 +lbl_803A41B0: +/* 803A41B0 003A1110 2C 04 00 00 */ cmpwi r4, 0 +/* 803A41B4 003A1114 54 1F 06 3E */ clrlwi r31, r0, 0x18 +/* 803A41B8 003A1118 40 80 00 0C */ bge lbl_803A41C4 +/* 803A41BC 003A111C 38 00 00 00 */ li r0, 0 +/* 803A41C0 003A1120 48 00 00 14 */ b lbl_803A41D4 +lbl_803A41C4: +/* 803A41C4 003A1124 2C 04 00 7F */ cmpwi r4, 0x7f +/* 803A41C8 003A1128 38 00 00 7F */ li r0, 0x7f +/* 803A41CC 003A112C 41 81 00 08 */ bgt lbl_803A41D4 +/* 803A41D0 003A1130 7C 80 23 78 */ mr r0, r4 +lbl_803A41D4: +/* 803A41D4 003A1134 54 1E 06 3E */ clrlwi r30, r0, 0x18 +lbl_803A41D8: +/* 803A41D8 003A1138 54 A0 06 3F */ clrlwi. r0, r5, 0x18 +/* 803A41DC 003A113C 41 82 00 38 */ beq lbl_803A4214 +/* 803A41E0 003A1140 48 00 EB C1 */ bl sndRand +/* 803A41E4 003A1144 3C 80 02 8C */ lis r4, 0x028C1979@ha +/* 803A41E8 003A1148 54 65 04 3E */ clrlwi r5, r3, 0x10 +/* 803A41EC 003A114C 38 04 19 79 */ addi r0, r4, 0x028C1979@l +/* 803A41F0 003A1150 7C 00 28 96 */ mulhw r0, r0, r5 +/* 803A41F4 003A1154 7C 00 0E 70 */ srawi r0, r0, 1 +/* 803A41F8 003A1158 54 03 0F FE */ srwi r3, r0, 0x1f +/* 803A41FC 003A115C 7C 00 1A 14 */ add r0, r0, r3 +/* 803A4200 003A1160 1C 00 00 C9 */ mulli r0, r0, 0xc9 +/* 803A4204 003A1164 7C 60 28 50 */ subf r3, r0, r5 +/* 803A4208 003A1168 38 03 FF 9C */ addi r0, r3, -100 +/* 803A420C 003A116C 54 1B 06 3E */ clrlwi r27, r0, 0x18 +/* 803A4210 003A1170 48 00 00 0C */ b lbl_803A421C +lbl_803A4214: +/* 803A4214 003A1174 80 1D 00 00 */ lwz r0, 0(r29) +/* 803A4218 003A1178 54 1B 86 3E */ rlwinm r27, r0, 0x10, 0x18, 0x1f +lbl_803A421C: +/* 803A421C 003A117C 57 FF 06 3E */ clrlwi r31, r31, 0x18 +/* 803A4220 003A1180 48 00 EB 81 */ bl sndRand +/* 803A4224 003A1184 57 C0 06 3E */ clrlwi r0, r30, 0x18 +/* 803A4228 003A1188 54 67 04 3E */ clrlwi r7, r3, 0x10 +/* 803A422C 003A118C 7C 9F 00 50 */ subf r4, r31, r0 +/* 803A4230 003A1190 57 63 82 1E */ rlwinm r3, r27, 0x10, 8, 0xf +/* 803A4234 003A1194 38 C4 00 01 */ addi r6, r4, 1 +/* 803A4238 003A1198 38 00 00 00 */ li r0, 0 +/* 803A423C 003A119C 7C A7 33 D6 */ divw r5, r7, r6 +/* 803A4240 003A11A0 60 64 00 19 */ ori r4, r3, 0x19 +/* 803A4244 003A11A4 7F 83 E3 78 */ mr r3, r28 +/* 803A4248 003A11A8 7C A5 31 D6 */ mullw r5, r5, r6 +/* 803A424C 003A11AC 7C A5 38 50 */ subf r5, r5, r7 +/* 803A4250 003A11B0 7C BF 2A 14 */ add r5, r31, r5 +/* 803A4254 003A11B4 54 A5 40 2E */ slwi r5, r5, 8 +/* 803A4258 003A11B8 7C 84 2B 78 */ or r4, r4, r5 +/* 803A425C 003A11BC 90 9D 00 00 */ stw r4, 0(r29) +/* 803A4260 003A11C0 90 1D 00 04 */ stw r0, 4(r29) +/* 803A4264 003A11C4 80 1D 00 00 */ lwz r0, 0(r29) +/* 803A4268 003A11C8 54 00 C6 7E */ rlwinm r0, r0, 0x18, 0x19, 0x1f +/* 803A426C 003A11CC B0 1C 01 2C */ sth r0, 0x12c(r28) +/* 803A4270 003A11D0 80 1D 00 00 */ lwz r0, 0(r29) +/* 803A4274 003A11D4 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A4278 003A11D8 98 1C 01 2E */ stb r0, 0x12e(r28) +/* 803A427C 003A11DC 48 00 4B F5 */ bl voiceIsLastStarted +/* 803A4280 003A11E0 28 03 00 00 */ cmplwi r3, 0 +/* 803A4284 003A11E4 41 82 00 18 */ beq lbl_803A429C +/* 803A4288 003A11E8 A0 1C 01 2C */ lhz r0, 0x12c(r28) +/* 803A428C 003A11EC 88 7C 01 21 */ lbz r3, 0x121(r28) +/* 803A4290 003A11F0 88 9C 01 22 */ lbz r4, 0x122(r28) +/* 803A4294 003A11F4 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 803A4298 003A11F8 48 00 DB 55 */ bl inpSetMidiLastNote +lbl_803A429C: +/* 803A429C 003A11FC 38 00 00 04 */ li r0, 4 +/* 803A42A0 003A1200 7F 83 E3 78 */ mr r3, r28 +/* 803A42A4 003A1204 90 1D 00 00 */ stw r0, 0(r29) +/* 803A42A8 003A1208 7F A4 EB 78 */ mr r4, r29 +/* 803A42AC 003A120C 4B FF E7 19 */ bl mcmdWait +/* 803A42B0 003A1210 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A42B4 003A1214 4B FE 58 15 */ bl _restgpr_27 +/* 803A42B8 003A1218 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A42BC 003A121C 7C 08 03 A6 */ mtlr r0 +/* 803A42C0 003A1220 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A42C4 003A1224 4E 80 00 20 */ blr + +.global sub_803a42c8 +sub_803a42c8: +/* 803A42C8 003A1228 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A42CC 003A122C 7C 08 02 A6 */ mflr r0 +/* 803A42D0 003A1230 3C A0 00 08 */ lis r5, 8 +/* 803A42D4 003A1234 38 C0 00 00 */ li r6, 0 +/* 803A42D8 003A1238 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A42DC 003A123C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A42E0 003A1240 7C 7F 1B 78 */ mr r31, r3 +/* 803A42E4 003A1244 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A42E8 003A1248 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A42EC 003A124C 7C E0 30 38 */ and r0, r7, r6 +/* 803A42F0 003A1250 7D 03 28 38 */ and r3, r8, r5 +/* 803A42F4 003A1254 7C 63 32 78 */ xor r3, r3, r6 +/* 803A42F8 003A1258 7C 00 32 78 */ xor r0, r0, r6 +/* 803A42FC 003A125C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4300 003A1260 40 82 00 14 */ bne lbl_803A4314 +/* 803A4304 003A1264 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4308 003A1268 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A430C 003A126C 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4310 003A1270 48 00 00 0C */ b lbl_803A431C +lbl_803A4314: +/* 803A4314 003A1274 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4318 003A1278 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A431C: +/* 803A431C 003A127C 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4320 003A1280 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4324 003A1284 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4328 003A1288 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A432C 003A128C 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4330 003A1290 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4334 003A1294 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4338 003A1298 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A433C 003A129C 40 80 00 2C */ bge lbl_803A4368 +/* 803A4340 003A12A0 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4344 003A12A4 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4348 003A12A8 7C 63 07 74 */ extsb r3, r3 +/* 803A434C 003A12AC 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4350 003A12B0 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4354 003A12B4 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4358 003A12B8 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A435C 003A12BC 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4360 003A12C0 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4364 003A12C4 48 00 00 28 */ b lbl_803A438C +lbl_803A4368: +/* 803A4368 003A12C8 80 64 00 04 */ lwz r3, 4(r4) +/* 803A436C 003A12CC 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4370 003A12D0 7C 63 07 74 */ extsb r3, r3 +/* 803A4374 003A12D4 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4378 003A12D8 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A437C 003A12DC 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4380 003A12E0 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4384 003A12E4 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4388 003A12E8 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A438C: +/* 803A438C 003A12EC 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4390 003A12F0 38 7F 02 18 */ addi r3, r31, 0x218 +/* 803A4394 003A12F4 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A4398 003A12F8 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A439C 003A12FC 7C E8 00 D0 */ neg r7, r8 +/* 803A43A0 003A1300 7C E0 43 78 */ or r0, r7, r8 +/* 803A43A4 003A1304 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A43A8 003A1308 48 00 D8 99 */ bl inpAddCtrl +/* 803A43AC 003A130C 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A43B0 003A1310 60 00 00 01 */ ori r0, r0, 1 +/* 803A43B4 003A1314 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A43B8 003A1318 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A43BC 003A131C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A43C0 003A1320 7C 08 03 A6 */ mtlr r0 +/* 803A43C4 003A1324 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A43C8 003A1328 4E 80 00 20 */ blr + +.global sub_803a43cc +sub_803a43cc: +/* 803A43CC 003A132C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A43D0 003A1330 7C 08 02 A6 */ mflr r0 +/* 803A43D4 003A1334 3C A0 00 10 */ lis r5, 0x10 +/* 803A43D8 003A1338 38 C0 00 00 */ li r6, 0 +/* 803A43DC 003A133C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A43E0 003A1340 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A43E4 003A1344 7C 7F 1B 78 */ mr r31, r3 +/* 803A43E8 003A1348 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A43EC 003A134C 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A43F0 003A1350 7C E0 30 38 */ and r0, r7, r6 +/* 803A43F4 003A1354 7D 03 28 38 */ and r3, r8, r5 +/* 803A43F8 003A1358 7C 63 32 78 */ xor r3, r3, r6 +/* 803A43FC 003A135C 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4400 003A1360 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4404 003A1364 40 82 00 14 */ bne lbl_803A4418 +/* 803A4408 003A1368 7D 00 2B 78 */ or r0, r8, r5 +/* 803A440C 003A136C 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4410 003A1370 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4414 003A1374 48 00 00 0C */ b lbl_803A4420 +lbl_803A4418: +/* 803A4418 003A1378 80 04 00 04 */ lwz r0, 4(r4) +/* 803A441C 003A137C 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4420: +/* 803A4420 003A1380 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4424 003A1384 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4428 003A1388 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A442C 003A138C 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4430 003A1390 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4434 003A1394 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4438 003A1398 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A443C 003A139C 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4440 003A13A0 40 80 00 2C */ bge lbl_803A446C +/* 803A4444 003A13A4 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4448 003A13A8 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A444C 003A13AC 7C 63 07 74 */ extsb r3, r3 +/* 803A4450 003A13B0 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4454 003A13B4 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4458 003A13B8 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A445C 003A13BC 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4460 003A13C0 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4464 003A13C4 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4468 003A13C8 48 00 00 28 */ b lbl_803A4490 +lbl_803A446C: +/* 803A446C 003A13CC 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4470 003A13D0 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4474 003A13D4 7C 63 07 74 */ extsb r3, r3 +/* 803A4478 003A13D8 54 63 40 2E */ slwi r3, r3, 8 +/* 803A447C 003A13DC 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4480 003A13E0 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4484 003A13E4 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4488 003A13E8 7C 63 3A 14 */ add r3, r3, r7 +/* 803A448C 003A13EC 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4490: +/* 803A4490 003A13F0 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4494 003A13F4 38 7F 02 3C */ addi r3, r31, 0x23c +/* 803A4498 003A13F8 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A449C 003A13FC 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A44A0 003A1400 7C E8 00 D0 */ neg r7, r8 +/* 803A44A4 003A1404 7C E0 43 78 */ or r0, r7, r8 +/* 803A44A8 003A1408 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A44AC 003A140C 48 00 D7 95 */ bl inpAddCtrl +/* 803A44B0 003A1410 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A44B4 003A1414 60 00 00 02 */ ori r0, r0, 2 +/* 803A44B8 003A1418 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A44BC 003A141C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A44C0 003A1420 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A44C4 003A1424 7C 08 03 A6 */ mtlr r0 +/* 803A44C8 003A1428 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A44CC 003A142C 4E 80 00 20 */ blr + +.global sub_803a44d0 +sub_803a44d0: +/* 803A44D0 003A1430 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A44D4 003A1434 7C 08 02 A6 */ mflr r0 +/* 803A44D8 003A1438 3C A0 00 20 */ lis r5, 0x20 +/* 803A44DC 003A143C 38 C0 00 00 */ li r6, 0 +/* 803A44E0 003A1440 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A44E4 003A1444 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A44E8 003A1448 7C 7F 1B 78 */ mr r31, r3 +/* 803A44EC 003A144C 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A44F0 003A1450 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A44F4 003A1454 7C E0 30 38 */ and r0, r7, r6 +/* 803A44F8 003A1458 7D 03 28 38 */ and r3, r8, r5 +/* 803A44FC 003A145C 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4500 003A1460 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4504 003A1464 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4508 003A1468 40 82 00 14 */ bne lbl_803A451C +/* 803A450C 003A146C 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4510 003A1470 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4514 003A1474 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4518 003A1478 48 00 00 0C */ b lbl_803A4524 +lbl_803A451C: +/* 803A451C 003A147C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4520 003A1480 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4524: +/* 803A4524 003A1484 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4528 003A1488 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A452C 003A148C 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4530 003A1490 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4534 003A1494 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4538 003A1498 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A453C 003A149C 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4540 003A14A0 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4544 003A14A4 40 80 00 2C */ bge lbl_803A4570 +/* 803A4548 003A14A8 80 64 00 04 */ lwz r3, 4(r4) +/* 803A454C 003A14AC 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4550 003A14B0 7C 63 07 74 */ extsb r3, r3 +/* 803A4554 003A14B4 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4558 003A14B8 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A455C 003A14BC 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4560 003A14C0 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4564 003A14C4 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4568 003A14C8 7C A3 28 50 */ subf r5, r3, r5 +/* 803A456C 003A14CC 48 00 00 28 */ b lbl_803A4594 +lbl_803A4570: +/* 803A4570 003A14D0 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4574 003A14D4 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4578 003A14D8 7C 63 07 74 */ extsb r3, r3 +/* 803A457C 003A14DC 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4580 003A14E0 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4584 003A14E4 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4588 003A14E8 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A458C 003A14EC 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4590 003A14F0 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4594: +/* 803A4594 003A14F4 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4598 003A14F8 38 7F 02 84 */ addi r3, r31, 0x284 +/* 803A459C 003A14FC 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A45A0 003A1500 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A45A4 003A1504 7C E8 00 D0 */ neg r7, r8 +/* 803A45A8 003A1508 7C E0 43 78 */ or r0, r7, r8 +/* 803A45AC 003A150C 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A45B0 003A1510 48 00 D6 91 */ bl inpAddCtrl +/* 803A45B4 003A1514 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A45B8 003A1518 60 00 00 08 */ ori r0, r0, 8 +/* 803A45BC 003A151C 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A45C0 003A1520 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A45C4 003A1524 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A45C8 003A1528 7C 08 03 A6 */ mtlr r0 +/* 803A45CC 003A152C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A45D0 003A1530 4E 80 00 20 */ blr + +.global sub_803a45d4 +sub_803a45d4: +/* 803A45D4 003A1534 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A45D8 003A1538 7C 08 02 A6 */ mflr r0 +/* 803A45DC 003A153C 3C A0 00 40 */ lis r5, 0x40 +/* 803A45E0 003A1540 38 C0 00 00 */ li r6, 0 +/* 803A45E4 003A1544 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A45E8 003A1548 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A45EC 003A154C 7C 7F 1B 78 */ mr r31, r3 +/* 803A45F0 003A1550 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A45F4 003A1554 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A45F8 003A1558 7C E0 30 38 */ and r0, r7, r6 +/* 803A45FC 003A155C 7D 03 28 38 */ and r3, r8, r5 +/* 803A4600 003A1560 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4604 003A1564 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4608 003A1568 7C 60 03 79 */ or. r0, r3, r0 +/* 803A460C 003A156C 40 82 00 14 */ bne lbl_803A4620 +/* 803A4610 003A1570 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4614 003A1574 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4618 003A1578 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A461C 003A157C 48 00 00 0C */ b lbl_803A4628 +lbl_803A4620: +/* 803A4620 003A1580 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4624 003A1584 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4628: +/* 803A4628 003A1588 80 04 00 00 */ lwz r0, 0(r4) +/* 803A462C 003A158C 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4630 003A1590 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4634 003A1594 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4638 003A1598 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A463C 003A159C 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4640 003A15A0 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4644 003A15A4 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4648 003A15A8 40 80 00 2C */ bge lbl_803A4674 +/* 803A464C 003A15AC 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4650 003A15B0 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4654 003A15B4 7C 63 07 74 */ extsb r3, r3 +/* 803A4658 003A15B8 54 63 40 2E */ slwi r3, r3, 8 +/* 803A465C 003A15BC 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4660 003A15C0 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4664 003A15C4 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4668 003A15C8 7C 63 3A 14 */ add r3, r3, r7 +/* 803A466C 003A15CC 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4670 003A15D0 48 00 00 28 */ b lbl_803A4698 +lbl_803A4674: +/* 803A4674 003A15D4 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4678 003A15D8 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A467C 003A15DC 7C 63 07 74 */ extsb r3, r3 +/* 803A4680 003A15E0 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4684 003A15E4 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4688 003A15E8 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A468C 003A15EC 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4690 003A15F0 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4694 003A15F4 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4698: +/* 803A4698 003A15F8 80 84 00 04 */ lwz r4, 4(r4) +/* 803A469C 003A15FC 38 7F 02 CC */ addi r3, r31, 0x2cc +/* 803A46A0 003A1600 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A46A4 003A1604 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A46A8 003A1608 7C E8 00 D0 */ neg r7, r8 +/* 803A46AC 003A160C 7C E0 43 78 */ or r0, r7, r8 +/* 803A46B0 003A1610 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A46B4 003A1614 48 00 D5 8D */ bl inpAddCtrl +/* 803A46B8 003A1618 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A46BC 003A161C 60 00 00 20 */ ori r0, r0, 0x20 +/* 803A46C0 003A1620 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A46C4 003A1624 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A46C8 003A1628 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A46CC 003A162C 7C 08 03 A6 */ mtlr r0 +/* 803A46D0 003A1630 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A46D4 003A1634 4E 80 00 20 */ blr + +.global sub_803a46d8 +sub_803a46d8: +/* 803A46D8 003A1638 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A46DC 003A163C 7C 08 02 A6 */ mflr r0 +/* 803A46E0 003A1640 3C A0 02 00 */ lis r5, 0x200 +/* 803A46E4 003A1644 38 C0 00 00 */ li r6, 0 +/* 803A46E8 003A1648 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A46EC 003A164C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A46F0 003A1650 7C 7F 1B 78 */ mr r31, r3 +/* 803A46F4 003A1654 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A46F8 003A1658 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A46FC 003A165C 7C E0 30 38 */ and r0, r7, r6 +/* 803A4700 003A1660 7D 03 28 38 */ and r3, r8, r5 +/* 803A4704 003A1664 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4708 003A1668 7C 00 32 78 */ xor r0, r0, r6 +/* 803A470C 003A166C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4710 003A1670 40 82 00 14 */ bne lbl_803A4724 +/* 803A4714 003A1674 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4718 003A1678 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A471C 003A167C 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4720 003A1680 48 00 00 0C */ b lbl_803A472C +lbl_803A4724: +/* 803A4724 003A1684 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4728 003A1688 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A472C: +/* 803A472C 003A168C 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4730 003A1690 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4734 003A1694 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4738 003A1698 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A473C 003A169C 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4740 003A16A0 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4744 003A16A4 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4748 003A16A8 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A474C 003A16AC 40 80 00 2C */ bge lbl_803A4778 +/* 803A4750 003A16B0 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4754 003A16B4 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4758 003A16B8 7C 63 07 74 */ extsb r3, r3 +/* 803A475C 003A16BC 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4760 003A16C0 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4764 003A16C4 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4768 003A16C8 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A476C 003A16CC 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4770 003A16D0 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4774 003A16D4 48 00 00 28 */ b lbl_803A479C +lbl_803A4778: +/* 803A4778 003A16D8 80 64 00 04 */ lwz r3, 4(r4) +/* 803A477C 003A16DC 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4780 003A16E0 7C 63 07 74 */ extsb r3, r3 +/* 803A4784 003A16E4 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4788 003A16E8 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A478C 003A16EC 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4790 003A16F0 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4794 003A16F4 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4798 003A16F8 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A479C: +/* 803A479C 003A16FC 80 84 00 04 */ lwz r4, 4(r4) +/* 803A47A0 003A1700 38 7F 02 F0 */ addi r3, r31, 0x2f0 +/* 803A47A4 003A1704 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A47A8 003A1708 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A47AC 003A170C 7C E8 00 D0 */ neg r7, r8 +/* 803A47B0 003A1710 7C E0 43 78 */ or r0, r7, r8 +/* 803A47B4 003A1714 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A47B8 003A1718 48 00 D4 89 */ bl inpAddCtrl +/* 803A47BC 003A171C 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A47C0 003A1720 60 00 00 40 */ ori r0, r0, 0x40 +/* 803A47C4 003A1724 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A47C8 003A1728 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A47CC 003A172C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A47D0 003A1730 7C 08 03 A6 */ mtlr r0 +/* 803A47D4 003A1734 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A47D8 003A1738 4E 80 00 20 */ blr + +.global sub_803a47dc +sub_803a47dc: +/* 803A47DC 003A173C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A47E0 003A1740 7C 08 02 A6 */ mflr r0 +/* 803A47E4 003A1744 3C A0 01 00 */ lis r5, 0x100 +/* 803A47E8 003A1748 38 C0 00 00 */ li r6, 0 +/* 803A47EC 003A174C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A47F0 003A1750 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A47F4 003A1754 7C 7F 1B 78 */ mr r31, r3 +/* 803A47F8 003A1758 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A47FC 003A175C 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A4800 003A1760 7C E0 30 38 */ and r0, r7, r6 +/* 803A4804 003A1764 7D 03 28 38 */ and r3, r8, r5 +/* 803A4808 003A1768 7C 63 32 78 */ xor r3, r3, r6 +/* 803A480C 003A176C 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4810 003A1770 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4814 003A1774 40 82 00 14 */ bne lbl_803A4828 +/* 803A4818 003A1778 7D 00 2B 78 */ or r0, r8, r5 +/* 803A481C 003A177C 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4820 003A1780 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4824 003A1784 48 00 00 0C */ b lbl_803A4830 +lbl_803A4828: +/* 803A4828 003A1788 80 04 00 04 */ lwz r0, 4(r4) +/* 803A482C 003A178C 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4830: +/* 803A4830 003A1790 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4834 003A1794 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4838 003A1798 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A483C 003A179C 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4840 003A17A0 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4844 003A17A4 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4848 003A17A8 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A484C 003A17AC 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4850 003A17B0 40 80 00 2C */ bge lbl_803A487C +/* 803A4854 003A17B4 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4858 003A17B8 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A485C 003A17BC 7C 63 07 74 */ extsb r3, r3 +/* 803A4860 003A17C0 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4864 003A17C4 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4868 003A17C8 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A486C 003A17CC 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4870 003A17D0 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4874 003A17D4 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4878 003A17D8 48 00 00 28 */ b lbl_803A48A0 +lbl_803A487C: +/* 803A487C 003A17DC 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4880 003A17E0 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4884 003A17E4 7C 63 07 74 */ extsb r3, r3 +/* 803A4888 003A17E8 54 63 40 2E */ slwi r3, r3, 8 +/* 803A488C 003A17EC 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4890 003A17F0 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4894 003A17F4 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4898 003A17F8 7C 63 3A 14 */ add r3, r3, r7 +/* 803A489C 003A17FC 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A48A0: +/* 803A48A0 003A1800 80 84 00 04 */ lwz r4, 4(r4) +/* 803A48A4 003A1804 38 7F 03 14 */ addi r3, r31, 0x314 +/* 803A48A8 003A1808 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A48AC 003A180C 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A48B0 003A1810 7C E8 00 D0 */ neg r7, r8 +/* 803A48B4 003A1814 7C E0 43 78 */ or r0, r7, r8 +/* 803A48B8 003A1818 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A48BC 003A181C 48 00 D3 85 */ bl inpAddCtrl +/* 803A48C0 003A1820 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A48C4 003A1824 60 00 00 80 */ ori r0, r0, 0x80 +/* 803A48C8 003A1828 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A48CC 003A182C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A48D0 003A1830 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A48D4 003A1834 7C 08 03 A6 */ mtlr r0 +/* 803A48D8 003A1838 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A48DC 003A183C 4E 80 00 20 */ blr + +.global sub_803a48e0 +sub_803a48e0: +/* 803A48E0 003A1840 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A48E4 003A1844 7C 08 02 A6 */ mflr r0 +/* 803A48E8 003A1848 3C A0 00 80 */ lis r5, 0x80 +/* 803A48EC 003A184C 38 C0 00 00 */ li r6, 0 +/* 803A48F0 003A1850 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A48F4 003A1854 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A48F8 003A1858 7C 7F 1B 78 */ mr r31, r3 +/* 803A48FC 003A185C 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A4900 003A1860 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A4904 003A1864 7C E0 30 38 */ and r0, r7, r6 +/* 803A4908 003A1868 7D 03 28 38 */ and r3, r8, r5 +/* 803A490C 003A186C 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4910 003A1870 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4914 003A1874 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4918 003A1878 40 82 00 14 */ bne lbl_803A492C +/* 803A491C 003A187C 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4920 003A1880 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4924 003A1884 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4928 003A1888 48 00 00 0C */ b lbl_803A4934 +lbl_803A492C: +/* 803A492C 003A188C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4930 003A1890 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4934: +/* 803A4934 003A1894 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4938 003A1898 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A493C 003A189C 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4940 003A18A0 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4944 003A18A4 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4948 003A18A8 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A494C 003A18AC 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4950 003A18B0 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4954 003A18B4 40 80 00 2C */ bge lbl_803A4980 +/* 803A4958 003A18B8 80 64 00 04 */ lwz r3, 4(r4) +/* 803A495C 003A18BC 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4960 003A18C0 7C 63 07 74 */ extsb r3, r3 +/* 803A4964 003A18C4 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4968 003A18C8 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A496C 003A18CC 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4970 003A18D0 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4974 003A18D4 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4978 003A18D8 7C A3 28 50 */ subf r5, r3, r5 +/* 803A497C 003A18DC 48 00 00 28 */ b lbl_803A49A4 +lbl_803A4980: +/* 803A4980 003A18E0 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4984 003A18E4 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4988 003A18E8 7C 63 07 74 */ extsb r3, r3 +/* 803A498C 003A18EC 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4990 003A18F0 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4994 003A18F4 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4998 003A18F8 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A499C 003A18FC 7C 63 3A 14 */ add r3, r3, r7 +/* 803A49A0 003A1900 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A49A4: +/* 803A49A4 003A1904 80 84 00 04 */ lwz r4, 4(r4) +/* 803A49A8 003A1908 38 7F 03 5C */ addi r3, r31, 0x35c +/* 803A49AC 003A190C 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A49B0 003A1910 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A49B4 003A1914 7C E8 00 D0 */ neg r7, r8 +/* 803A49B8 003A1918 7C E0 43 78 */ or r0, r7, r8 +/* 803A49BC 003A191C 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A49C0 003A1920 48 00 D2 81 */ bl inpAddCtrl +/* 803A49C4 003A1924 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A49C8 003A1928 60 00 02 00 */ ori r0, r0, 0x200 +/* 803A49CC 003A192C 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A49D0 003A1930 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A49D4 003A1934 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A49D8 003A1938 7C 08 03 A6 */ mtlr r0 +/* 803A49DC 003A193C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A49E0 003A1940 4E 80 00 20 */ blr + +.global sub_803a49e4 +sub_803a49e4: +/* 803A49E4 003A1944 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A49E8 003A1948 7C 08 02 A6 */ mflr r0 +/* 803A49EC 003A194C 3C A0 20 00 */ lis r5, 0x2000 +/* 803A49F0 003A1950 38 C0 00 00 */ li r6, 0 +/* 803A49F4 003A1954 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A49F8 003A1958 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A49FC 003A195C 7C 7F 1B 78 */ mr r31, r3 +/* 803A4A00 003A1960 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A4A04 003A1964 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A4A08 003A1968 7C E0 30 38 */ and r0, r7, r6 +/* 803A4A0C 003A196C 7D 03 28 38 */ and r3, r8, r5 +/* 803A4A10 003A1970 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4A14 003A1974 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4A18 003A1978 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4A1C 003A197C 40 82 00 14 */ bne lbl_803A4A30 +/* 803A4A20 003A1980 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4A24 003A1984 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4A28 003A1988 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4A2C 003A198C 48 00 00 0C */ b lbl_803A4A38 +lbl_803A4A30: +/* 803A4A30 003A1990 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4A34 003A1994 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4A38: +/* 803A4A38 003A1998 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4A3C 003A199C 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4A40 003A19A0 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4A44 003A19A4 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4A48 003A19A8 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4A4C 003A19AC 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4A50 003A19B0 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4A54 003A19B4 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4A58 003A19B8 40 80 00 2C */ bge lbl_803A4A84 +/* 803A4A5C 003A19BC 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4A60 003A19C0 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4A64 003A19C4 7C 63 07 74 */ extsb r3, r3 +/* 803A4A68 003A19C8 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4A6C 003A19CC 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4A70 003A19D0 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4A74 003A19D4 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4A78 003A19D8 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4A7C 003A19DC 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4A80 003A19E0 48 00 00 28 */ b lbl_803A4AA8 +lbl_803A4A84: +/* 803A4A84 003A19E4 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4A88 003A19E8 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4A8C 003A19EC 7C 63 07 74 */ extsb r3, r3 +/* 803A4A90 003A19F0 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4A94 003A19F4 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4A98 003A19F8 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4A9C 003A19FC 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4AA0 003A1A00 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4AA4 003A1A04 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4AA8: +/* 803A4AA8 003A1A08 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4AAC 003A1A0C 38 7F 03 38 */ addi r3, r31, 0x338 +/* 803A4AB0 003A1A10 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A4AB4 003A1A14 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A4AB8 003A1A18 7C E8 00 D0 */ neg r7, r8 +/* 803A4ABC 003A1A1C 7C E0 43 78 */ or r0, r7, r8 +/* 803A4AC0 003A1A20 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A4AC4 003A1A24 48 00 D1 7D */ bl inpAddCtrl +/* 803A4AC8 003A1A28 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A4ACC 003A1A2C 60 00 01 00 */ ori r0, r0, 0x100 +/* 803A4AD0 003A1A30 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A4AD4 003A1A34 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A4AD8 003A1A38 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A4ADC 003A1A3C 7C 08 03 A6 */ mtlr r0 +/* 803A4AE0 003A1A40 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A4AE4 003A1A44 4E 80 00 20 */ blr + +.global sub_803a4ae8 +sub_803a4ae8: +/* 803A4AE8 003A1A48 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A4AEC 003A1A4C 7C 08 02 A6 */ mflr r0 +/* 803A4AF0 003A1A50 3C A0 40 00 */ lis r5, 0x4000 +/* 803A4AF4 003A1A54 38 C0 00 00 */ li r6, 0 +/* 803A4AF8 003A1A58 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A4AFC 003A1A5C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A4B00 003A1A60 7C 7F 1B 78 */ mr r31, r3 +/* 803A4B04 003A1A64 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A4B08 003A1A68 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A4B0C 003A1A6C 7C E0 30 38 */ and r0, r7, r6 +/* 803A4B10 003A1A70 7D 03 28 38 */ and r3, r8, r5 +/* 803A4B14 003A1A74 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4B18 003A1A78 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4B1C 003A1A7C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4B20 003A1A80 40 82 00 14 */ bne lbl_803A4B34 +/* 803A4B24 003A1A84 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4B28 003A1A88 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4B2C 003A1A8C 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4B30 003A1A90 48 00 00 0C */ b lbl_803A4B3C +lbl_803A4B34: +/* 803A4B34 003A1A94 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4B38 003A1A98 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4B3C: +/* 803A4B3C 003A1A9C 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4B40 003A1AA0 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4B44 003A1AA4 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4B48 003A1AA8 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4B4C 003A1AAC 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4B50 003A1AB0 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4B54 003A1AB4 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4B58 003A1AB8 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4B5C 003A1ABC 40 80 00 2C */ bge lbl_803A4B88 +/* 803A4B60 003A1AC0 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4B64 003A1AC4 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4B68 003A1AC8 7C 63 07 74 */ extsb r3, r3 +/* 803A4B6C 003A1ACC 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4B70 003A1AD0 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4B74 003A1AD4 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4B78 003A1AD8 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4B7C 003A1ADC 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4B80 003A1AE0 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4B84 003A1AE4 48 00 00 28 */ b lbl_803A4BAC +lbl_803A4B88: +/* 803A4B88 003A1AE8 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4B8C 003A1AEC 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4B90 003A1AF0 7C 63 07 74 */ extsb r3, r3 +/* 803A4B94 003A1AF4 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4B98 003A1AF8 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4B9C 003A1AFC 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4BA0 003A1B00 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4BA4 003A1B04 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4BA8 003A1B08 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4BAC: +/* 803A4BAC 003A1B0C 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4BB0 003A1B10 38 7F 03 80 */ addi r3, r31, 0x380 +/* 803A4BB4 003A1B14 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A4BB8 003A1B18 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A4BBC 003A1B1C 7C E8 00 D0 */ neg r7, r8 +/* 803A4BC0 003A1B20 7C E0 43 78 */ or r0, r7, r8 +/* 803A4BC4 003A1B24 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A4BC8 003A1B28 48 00 D0 79 */ bl inpAddCtrl +/* 803A4BCC 003A1B2C 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A4BD0 003A1B30 60 00 04 00 */ ori r0, r0, 0x400 +/* 803A4BD4 003A1B34 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A4BD8 003A1B38 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A4BDC 003A1B3C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A4BE0 003A1B40 7C 08 03 A6 */ mtlr r0 +/* 803A4BE4 003A1B44 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A4BE8 003A1B48 4E 80 00 20 */ blr + +.global mcmdVolumeSelect +mcmdVolumeSelect: +/* 803A4BEC 003A1B4C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A4BF0 003A1B50 7C 08 02 A6 */ mflr r0 +/* 803A4BF4 003A1B54 3C A0 80 00 */ lis r5, 0x8000 +/* 803A4BF8 003A1B58 38 C0 00 00 */ li r6, 0 +/* 803A4BFC 003A1B5C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A4C00 003A1B60 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A4C04 003A1B64 7C 7F 1B 78 */ mr r31, r3 +/* 803A4C08 003A1B68 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A4C0C 003A1B6C 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A4C10 003A1B70 7C E0 30 38 */ and r0, r7, r6 +/* 803A4C14 003A1B74 7D 03 28 38 */ and r3, r8, r5 +/* 803A4C18 003A1B78 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4C1C 003A1B7C 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4C20 003A1B80 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4C24 003A1B84 40 82 00 14 */ bne lbl_803A4C38 +/* 803A4C28 003A1B88 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4C2C 003A1B8C 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4C30 003A1B90 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4C34 003A1B94 48 00 00 0C */ b lbl_803A4C40 +lbl_803A4C38: +/* 803A4C38 003A1B98 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4C3C 003A1B9C 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4C40: +/* 803A4C40 003A1BA0 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4C44 003A1BA4 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4C48 003A1BA8 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4C4C 003A1BAC 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4C50 003A1BB0 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4C54 003A1BB4 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4C58 003A1BB8 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4C5C 003A1BBC 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4C60 003A1BC0 40 80 00 2C */ bge lbl_803A4C8C +/* 803A4C64 003A1BC4 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4C68 003A1BC8 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4C6C 003A1BCC 7C 63 07 74 */ extsb r3, r3 +/* 803A4C70 003A1BD0 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4C74 003A1BD4 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4C78 003A1BD8 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4C7C 003A1BDC 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4C80 003A1BE0 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4C84 003A1BE4 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4C88 003A1BE8 48 00 00 28 */ b lbl_803A4CB0 +lbl_803A4C8C: +/* 803A4C8C 003A1BEC 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4C90 003A1BF0 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4C94 003A1BF4 7C 63 07 74 */ extsb r3, r3 +/* 803A4C98 003A1BF8 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4C9C 003A1BFC 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4CA0 003A1C00 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4CA4 003A1C04 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4CA8 003A1C08 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4CAC 003A1C0C 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4CB0: +/* 803A4CB0 003A1C10 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4CB4 003A1C14 38 7F 03 A4 */ addi r3, r31, 0x3a4 +/* 803A4CB8 003A1C18 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A4CBC 003A1C1C 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A4CC0 003A1C20 7C E8 00 D0 */ neg r7, r8 +/* 803A4CC4 003A1C24 7C E0 43 78 */ or r0, r7, r8 +/* 803A4CC8 003A1C28 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A4CCC 003A1C2C 48 00 CF 75 */ bl inpAddCtrl +/* 803A4CD0 003A1C30 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A4CD4 003A1C34 60 00 08 00 */ ori r0, r0, 0x800 +/* 803A4CD8 003A1C38 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A4CDC 003A1C3C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A4CE0 003A1C40 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A4CE4 003A1C44 7C 08 03 A6 */ mtlr r0 +/* 803A4CE8 003A1C48 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A4CEC 003A1C4C 4E 80 00 20 */ blr + +.global sub_803a4cf0 +sub_803a4cf0: +/* 803A4CF0 003A1C50 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A4CF4 003A1C54 7C 08 02 A6 */ mflr r0 +/* 803A4CF8 003A1C58 3C A0 04 00 */ lis r5, 0x400 +/* 803A4CFC 003A1C5C 38 C0 00 00 */ li r6, 0 +/* 803A4D00 003A1C60 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A4D04 003A1C64 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A4D08 003A1C68 7C 7F 1B 78 */ mr r31, r3 +/* 803A4D0C 003A1C6C 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A4D10 003A1C70 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A4D14 003A1C74 7C E0 30 38 */ and r0, r7, r6 +/* 803A4D18 003A1C78 7D 03 28 38 */ and r3, r8, r5 +/* 803A4D1C 003A1C7C 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4D20 003A1C80 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4D24 003A1C84 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4D28 003A1C88 40 82 00 14 */ bne lbl_803A4D3C +/* 803A4D2C 003A1C8C 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4D30 003A1C90 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4D34 003A1C94 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4D38 003A1C98 48 00 00 0C */ b lbl_803A4D44 +lbl_803A4D3C: +/* 803A4D3C 003A1C9C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4D40 003A1CA0 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4D44: +/* 803A4D44 003A1CA4 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4D48 003A1CA8 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4D4C 003A1CAC 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4D50 003A1CB0 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4D54 003A1CB4 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4D58 003A1CB8 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4D5C 003A1CBC 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4D60 003A1CC0 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4D64 003A1CC4 40 80 00 2C */ bge lbl_803A4D90 +/* 803A4D68 003A1CC8 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4D6C 003A1CCC 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4D70 003A1CD0 7C 63 07 74 */ extsb r3, r3 +/* 803A4D74 003A1CD4 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4D78 003A1CD8 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4D7C 003A1CDC 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4D80 003A1CE0 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4D84 003A1CE4 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4D88 003A1CE8 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4D8C 003A1CEC 48 00 00 28 */ b lbl_803A4DB4 +lbl_803A4D90: +/* 803A4D90 003A1CF0 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4D94 003A1CF4 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4D98 003A1CF8 7C 63 07 74 */ extsb r3, r3 +/* 803A4D9C 003A1CFC 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4DA0 003A1D00 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4DA4 003A1D04 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4DA8 003A1D08 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4DAC 003A1D0C 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4DB0 003A1D10 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4DB4: +/* 803A4DB4 003A1D14 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4DB8 003A1D18 38 7F 02 60 */ addi r3, r31, 0x260 +/* 803A4DBC 003A1D1C 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A4DC0 003A1D20 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A4DC4 003A1D24 7C E8 00 D0 */ neg r7, r8 +/* 803A4DC8 003A1D28 7C E0 43 78 */ or r0, r7, r8 +/* 803A4DCC 003A1D2C 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A4DD0 003A1D30 48 00 CE 71 */ bl inpAddCtrl +/* 803A4DD4 003A1D34 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A4DD8 003A1D38 60 00 00 04 */ ori r0, r0, 4 +/* 803A4DDC 003A1D3C 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A4DE0 003A1D40 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A4DE4 003A1D44 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A4DE8 003A1D48 7C 08 03 A6 */ mtlr r0 +/* 803A4DEC 003A1D4C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A4DF0 003A1D50 4E 80 00 20 */ blr + +.global sub_803a4df4 +sub_803a4df4: +/* 803A4DF4 003A1D54 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A4DF8 003A1D58 7C 08 02 A6 */ mflr r0 +/* 803A4DFC 003A1D5C 3C A0 08 00 */ lis r5, 0x800 +/* 803A4E00 003A1D60 38 C0 00 00 */ li r6, 0 +/* 803A4E04 003A1D64 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A4E08 003A1D68 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A4E0C 003A1D6C 7C 7F 1B 78 */ mr r31, r3 +/* 803A4E10 003A1D70 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A4E14 003A1D74 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A4E18 003A1D78 7C E0 30 38 */ and r0, r7, r6 +/* 803A4E1C 003A1D7C 7D 03 28 38 */ and r3, r8, r5 +/* 803A4E20 003A1D80 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4E24 003A1D84 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4E28 003A1D88 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4E2C 003A1D8C 40 82 00 14 */ bne lbl_803A4E40 +/* 803A4E30 003A1D90 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4E34 003A1D94 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4E38 003A1D98 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4E3C 003A1D9C 48 00 00 0C */ b lbl_803A4E48 +lbl_803A4E40: +/* 803A4E40 003A1DA0 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4E44 003A1DA4 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4E48: +/* 803A4E48 003A1DA8 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4E4C 003A1DAC 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4E50 003A1DB0 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4E54 003A1DB4 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4E58 003A1DB8 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4E5C 003A1DBC 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4E60 003A1DC0 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4E64 003A1DC4 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4E68 003A1DC8 40 80 00 2C */ bge lbl_803A4E94 +/* 803A4E6C 003A1DCC 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4E70 003A1DD0 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4E74 003A1DD4 7C 63 07 74 */ extsb r3, r3 +/* 803A4E78 003A1DD8 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4E7C 003A1DDC 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4E80 003A1DE0 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4E84 003A1DE4 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4E88 003A1DE8 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4E8C 003A1DEC 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4E90 003A1DF0 48 00 00 28 */ b lbl_803A4EB8 +lbl_803A4E94: +/* 803A4E94 003A1DF4 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4E98 003A1DF8 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4E9C 003A1DFC 7C 63 07 74 */ extsb r3, r3 +/* 803A4EA0 003A1E00 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4EA4 003A1E04 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4EA8 003A1E08 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4EAC 003A1E0C 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4EB0 003A1E10 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4EB4 003A1E14 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4EB8: +/* 803A4EB8 003A1E18 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4EBC 003A1E1C 38 7F 02 A8 */ addi r3, r31, 0x2a8 +/* 803A4EC0 003A1E20 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A4EC4 003A1E24 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A4EC8 003A1E28 7C E8 00 D0 */ neg r7, r8 +/* 803A4ECC 003A1E2C 7C E0 43 78 */ or r0, r7, r8 +/* 803A4ED0 003A1E30 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A4ED4 003A1E34 48 00 CD 6D */ bl inpAddCtrl +/* 803A4ED8 003A1E38 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A4EDC 003A1E3C 60 00 00 10 */ ori r0, r0, 0x10 +/* 803A4EE0 003A1E40 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A4EE4 003A1E44 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A4EE8 003A1E48 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A4EEC 003A1E4C 7C 08 03 A6 */ mtlr r0 +/* 803A4EF0 003A1E50 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A4EF4 003A1E54 4E 80 00 20 */ blr + +.global sub_803a4ef8 +sub_803a4ef8: +/* 803A4EF8 003A1E58 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A4EFC 003A1E5C 7C 08 02 A6 */ mflr r0 +/* 803A4F00 003A1E60 3C A0 10 00 */ lis r5, 0x1000 +/* 803A4F04 003A1E64 38 C0 00 00 */ li r6, 0 +/* 803A4F08 003A1E68 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A4F0C 003A1E6C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A4F10 003A1E70 7C 7F 1B 78 */ mr r31, r3 +/* 803A4F14 003A1E74 80 E3 01 14 */ lwz r7, 0x114(r3) +/* 803A4F18 003A1E78 81 03 01 18 */ lwz r8, 0x118(r3) +/* 803A4F1C 003A1E7C 7C E0 30 38 */ and r0, r7, r6 +/* 803A4F20 003A1E80 7D 03 28 38 */ and r3, r8, r5 +/* 803A4F24 003A1E84 7C 63 32 78 */ xor r3, r3, r6 +/* 803A4F28 003A1E88 7C 00 32 78 */ xor r0, r0, r6 +/* 803A4F2C 003A1E8C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A4F30 003A1E90 40 82 00 14 */ bne lbl_803A4F44 +/* 803A4F34 003A1E94 7D 00 2B 78 */ or r0, r8, r5 +/* 803A4F38 003A1E98 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A4F3C 003A1E9C 90 FF 01 14 */ stw r7, 0x114(r31) +/* 803A4F40 003A1EA0 48 00 00 0C */ b lbl_803A4F4C +lbl_803A4F44: +/* 803A4F44 003A1EA4 80 04 00 04 */ lwz r0, 4(r4) +/* 803A4F48 003A1EA8 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A4F4C: +/* 803A4F4C 003A1EAC 80 04 00 00 */ lwz r0, 0(r4) +/* 803A4F50 003A1EB0 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A4F54 003A1EB4 38 E3 85 1F */ addi r7, r3, 0x51EB851F@l +/* 803A4F58 003A1EB8 54 03 00 1E */ rlwinm r3, r0, 0, 0, 0xf +/* 803A4F5C 003A1EBC 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4F60 003A1EC0 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4F64 003A1EC4 54 65 0F FE */ srwi r5, r3, 0x1f +/* 803A4F68 003A1EC8 7C A3 2A 15 */ add. r5, r3, r5 +/* 803A4F6C 003A1ECC 40 80 00 2C */ bge lbl_803A4F98 +/* 803A4F70 003A1ED0 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4F74 003A1ED4 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4F78 003A1ED8 7C 63 07 74 */ extsb r3, r3 +/* 803A4F7C 003A1EDC 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4F80 003A1EE0 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4F84 003A1EE4 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4F88 003A1EE8 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4F8C 003A1EEC 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4F90 003A1EF0 7C A3 28 50 */ subf r5, r3, r5 +/* 803A4F94 003A1EF4 48 00 00 28 */ b lbl_803A4FBC +lbl_803A4F98: +/* 803A4F98 003A1EF8 80 64 00 04 */ lwz r3, 4(r4) +/* 803A4F9C 003A1EFC 54 63 84 3E */ srwi r3, r3, 0x10 +/* 803A4FA0 003A1F00 7C 63 07 74 */ extsb r3, r3 +/* 803A4FA4 003A1F04 54 63 40 2E */ slwi r3, r3, 8 +/* 803A4FA8 003A1F08 7C 67 18 96 */ mulhw r3, r7, r3 +/* 803A4FAC 003A1F0C 7C 63 2E 70 */ srawi r3, r3, 5 +/* 803A4FB0 003A1F10 54 67 0F FE */ srwi r7, r3, 0x1f +/* 803A4FB4 003A1F14 7C 63 3A 14 */ add r3, r3, r7 +/* 803A4FB8 003A1F18 7C A5 1A 14 */ add r5, r5, r3 +lbl_803A4FBC: +/* 803A4FBC 003A1F1C 80 84 00 04 */ lwz r4, 4(r4) +/* 803A4FC0 003A1F20 38 7F 03 C8 */ addi r3, r31, 0x3c8 +/* 803A4FC4 003A1F24 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A4FC8 003A1F28 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A4FCC 003A1F2C 7C E8 00 D0 */ neg r7, r8 +/* 803A4FD0 003A1F30 7C E0 43 78 */ or r0, r7, r8 +/* 803A4FD4 003A1F34 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A4FD8 003A1F38 48 00 CC 69 */ bl inpAddCtrl +/* 803A4FDC 003A1F3C 80 1F 02 14 */ lwz r0, 0x214(r31) +/* 803A4FE0 003A1F40 60 00 10 00 */ ori r0, r0, 0x1000 +/* 803A4FE4 003A1F44 90 1F 02 14 */ stw r0, 0x214(r31) +/* 803A4FE8 003A1F48 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A4FEC 003A1F4C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A4FF0 003A1F50 7C 08 03 A6 */ mtlr r0 +/* 803A4FF4 003A1F54 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A4FF8 003A1F58 4E 80 00 20 */ blr + +.global sub_803a4ffc +sub_803a4ffc: +/* 803A4FFC 003A1F5C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A5000 003A1F60 7C 08 02 A6 */ mflr r0 +/* 803A5004 003A1F64 3C A0 80 3F */ lis r5, lbl_803F31F8@ha +/* 803A5008 003A1F68 3D 60 80 3F */ lis r11, lbl_803F3218@ha +/* 803A500C 003A1F6C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A5010 003A1F70 38 A5 31 F8 */ addi r5, r5, lbl_803F31F8@l +/* 803A5014 003A1F74 39 6B 32 18 */ addi r11, r11, lbl_803F3218@l +/* 803A5018 003A1F78 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A501C 003A1F7C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A5020 003A1F80 7C 7E 1B 78 */ mr r30, r3 +/* 803A5024 003A1F84 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A5028 003A1F88 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A502C 003A1F8C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A5030 003A1F90 88 63 01 1F */ lbz r3, 0x11f(r3) +/* 803A5034 003A1F94 54 06 5D 78 */ rlwinm r6, r0, 0xb, 0x15, 0x1c +/* 803A5038 003A1F98 80 FE 01 14 */ lwz r7, 0x114(r30) +/* 803A503C 003A1F9C 7D 05 32 14 */ add r8, r5, r6 +/* 803A5040 003A1FA0 3C A0 80 55 */ lis r5, lbl_80550F74@ha +/* 803A5044 003A1FA4 83 A8 00 00 */ lwz r29, 0(r8) +/* 803A5048 003A1FA8 1D 43 00 90 */ mulli r10, r3, 0x90 +/* 803A504C 003A1FAC 83 88 00 04 */ lwz r28, 4(r8) +/* 803A5050 003A1FB0 39 25 0F 74 */ addi r9, r5, lbl_80550F74@l +/* 803A5054 003A1FB4 81 1E 01 18 */ lwz r8, 0x118(r30) +/* 803A5058 003A1FB8 38 C0 00 00 */ li r6, 0 +/* 803A505C 003A1FBC 7C E3 E8 38 */ and r3, r7, r29 +/* 803A5060 003A1FC0 7D 05 E0 38 */ and r5, r8, r28 +/* 803A5064 003A1FC4 54 1F 46 3E */ srwi r31, r0, 0x18 +/* 803A5068 003A1FC8 7C 63 32 78 */ xor r3, r3, r6 +/* 803A506C 003A1FCC 54 0C 55 BA */ rlwinm r12, r0, 0xa, 0x16, 0x1d +/* 803A5070 003A1FD0 7C A5 32 78 */ xor r5, r5, r6 +/* 803A5074 003A1FD4 7D 29 52 14 */ add r9, r9, r10 +/* 803A5078 003A1FD8 7C A3 1B 79 */ or. r3, r5, r3 +/* 803A507C 003A1FDC 1C BF 00 24 */ mulli r5, r31, 0x24 +/* 803A5080 003A1FE0 7F EB 60 2E */ lwzx r31, r11, r12 +/* 803A5084 003A1FE4 7C 69 2A 14 */ add r3, r9, r5 +/* 803A5088 003A1FE8 40 82 00 18 */ bne lbl_803A50A0 +/* 803A508C 003A1FEC 7D 05 E3 78 */ or r5, r8, r28 +/* 803A5090 003A1FF0 7C E0 EB 78 */ or r0, r7, r29 +/* 803A5094 003A1FF4 90 BE 01 18 */ stw r5, 0x118(r30) +/* 803A5098 003A1FF8 90 1E 01 14 */ stw r0, 0x114(r30) +/* 803A509C 003A1FFC 48 00 00 08 */ b lbl_803A50A4 +lbl_803A50A0: +/* 803A50A0 003A2000 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A50A4: +/* 803A50A4 003A2004 80 04 00 00 */ lwz r0, 0(r4) +/* 803A50A8 003A2008 3C A0 51 EC */ lis r5, 0x51EB851F@ha +/* 803A50AC 003A200C 39 05 85 1F */ addi r8, r5, 0x51EB851F@l +/* 803A50B0 003A2010 54 05 00 1E */ rlwinm r5, r0, 0, 0, 0xf +/* 803A50B4 003A2014 7C A8 28 96 */ mulhw r5, r8, r5 +/* 803A50B8 003A2018 7C A5 2E 70 */ srawi r5, r5, 5 +/* 803A50BC 003A201C 54 A7 0F FE */ srwi r7, r5, 0x1f +/* 803A50C0 003A2020 7C A5 3A 15 */ add. r5, r5, r7 +/* 803A50C4 003A2024 40 80 00 2C */ bge lbl_803A50F0 +/* 803A50C8 003A2028 80 E4 00 04 */ lwz r7, 4(r4) +/* 803A50CC 003A202C 54 E7 84 3E */ srwi r7, r7, 0x10 +/* 803A50D0 003A2030 7C E7 07 74 */ extsb r7, r7 +/* 803A50D4 003A2034 54 E7 40 2E */ slwi r7, r7, 8 +/* 803A50D8 003A2038 7C E8 38 96 */ mulhw r7, r8, r7 +/* 803A50DC 003A203C 7C E7 2E 70 */ srawi r7, r7, 5 +/* 803A50E0 003A2040 54 E8 0F FE */ srwi r8, r7, 0x1f +/* 803A50E4 003A2044 7C E7 42 14 */ add r7, r7, r8 +/* 803A50E8 003A2048 7C A7 28 50 */ subf r5, r7, r5 +/* 803A50EC 003A204C 48 00 00 28 */ b lbl_803A5114 +lbl_803A50F0: +/* 803A50F0 003A2050 80 E4 00 04 */ lwz r7, 4(r4) +/* 803A50F4 003A2054 54 E7 84 3E */ srwi r7, r7, 0x10 +/* 803A50F8 003A2058 7C E7 07 74 */ extsb r7, r7 +/* 803A50FC 003A205C 54 E7 40 2E */ slwi r7, r7, 8 +/* 803A5100 003A2060 7C E8 38 96 */ mulhw r7, r8, r7 +/* 803A5104 003A2064 7C E7 2E 70 */ srawi r7, r7, 5 +/* 803A5108 003A2068 54 E8 0F FE */ srwi r8, r7, 0x1f +/* 803A510C 003A206C 7C E7 42 14 */ add r7, r7, r8 +/* 803A5110 003A2070 7C A5 3A 14 */ add r5, r5, r7 +lbl_803A5114: +/* 803A5114 003A2074 80 84 00 04 */ lwz r4, 4(r4) +/* 803A5118 003A2078 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A511C 003A207C 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A5120 003A2080 7C E8 00 D0 */ neg r7, r8 +/* 803A5124 003A2084 7C E0 43 78 */ or r0, r7, r8 +/* 803A5128 003A2088 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A512C 003A208C 48 00 CB 15 */ bl inpAddCtrl +/* 803A5130 003A2090 57 E0 00 01 */ rlwinm. r0, r31, 0, 0, 0 +/* 803A5134 003A2094 41 82 00 18 */ beq lbl_803A514C +/* 803A5138 003A2098 88 7E 01 21 */ lbz r3, 0x121(r30) +/* 803A513C 003A209C 7F E5 FB 78 */ mr r5, r31 +/* 803A5140 003A20A0 88 9E 01 22 */ lbz r4, 0x122(r30) +/* 803A5144 003A20A4 48 00 BF 89 */ bl inpSetGlobalMIDIDirtyFlag +/* 803A5148 003A20A8 48 00 00 10 */ b lbl_803A5158 +lbl_803A514C: +/* 803A514C 003A20AC 80 1E 02 14 */ lwz r0, 0x214(r30) +/* 803A5150 003A20B0 7C 00 FB 78 */ or r0, r0, r31 +/* 803A5154 003A20B4 90 1E 02 14 */ stw r0, 0x214(r30) +lbl_803A5158: +/* 803A5158 003A20B8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A515C 003A20BC 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A5160 003A20C0 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A5164 003A20C4 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A5168 003A20C8 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A516C 003A20CC 7C 08 03 A6 */ mtlr r0 +/* 803A5170 003A20D0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A5174 003A20D4 4E 80 00 20 */ blr + +.global mcmdAuxAFXSelect +mcmdAuxAFXSelect: +/* 803A5178 003A20D8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A517C 003A20DC 7C 08 02 A6 */ mflr r0 +/* 803A5180 003A20E0 3C A0 80 3F */ lis r5, lbl_803F3228@ha +/* 803A5184 003A20E4 3D 60 80 3F */ lis r11, lbl_803F3248@ha +/* 803A5188 003A20E8 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A518C 003A20EC 38 A5 32 28 */ addi r5, r5, lbl_803F3228@l +/* 803A5190 003A20F0 39 6B 32 48 */ addi r11, r11, lbl_803F3248@l +/* 803A5194 003A20F4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A5198 003A20F8 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A519C 003A20FC 7C 7E 1B 78 */ mr r30, r3 +/* 803A51A0 003A2100 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A51A4 003A2104 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A51A8 003A2108 80 04 00 04 */ lwz r0, 4(r4) +/* 803A51AC 003A210C 88 63 01 1F */ lbz r3, 0x11f(r3) +/* 803A51B0 003A2110 54 06 5D 78 */ rlwinm r6, r0, 0xb, 0x15, 0x1c +/* 803A51B4 003A2114 80 FE 01 14 */ lwz r7, 0x114(r30) +/* 803A51B8 003A2118 7D 05 32 14 */ add r8, r5, r6 +/* 803A51BC 003A211C 3C A0 80 55 */ lis r5, lbl_80550AF4@ha +/* 803A51C0 003A2120 83 A8 00 00 */ lwz r29, 0(r8) +/* 803A51C4 003A2124 1D 43 00 90 */ mulli r10, r3, 0x90 +/* 803A51C8 003A2128 83 88 00 04 */ lwz r28, 4(r8) +/* 803A51CC 003A212C 39 25 0A F4 */ addi r9, r5, lbl_80550AF4@l +/* 803A51D0 003A2130 81 1E 01 18 */ lwz r8, 0x118(r30) +/* 803A51D4 003A2134 38 C0 00 00 */ li r6, 0 +/* 803A51D8 003A2138 7C E3 E8 38 */ and r3, r7, r29 +/* 803A51DC 003A213C 7D 05 E0 38 */ and r5, r8, r28 +/* 803A51E0 003A2140 54 1F 46 3E */ srwi r31, r0, 0x18 +/* 803A51E4 003A2144 7C 63 32 78 */ xor r3, r3, r6 +/* 803A51E8 003A2148 54 0C 55 BA */ rlwinm r12, r0, 0xa, 0x16, 0x1d +/* 803A51EC 003A214C 7C A5 32 78 */ xor r5, r5, r6 +/* 803A51F0 003A2150 7D 29 52 14 */ add r9, r9, r10 +/* 803A51F4 003A2154 7C A3 1B 79 */ or. r3, r5, r3 +/* 803A51F8 003A2158 1C BF 00 24 */ mulli r5, r31, 0x24 +/* 803A51FC 003A215C 7F EB 60 2E */ lwzx r31, r11, r12 +/* 803A5200 003A2160 7C 69 2A 14 */ add r3, r9, r5 +/* 803A5204 003A2164 40 82 00 18 */ bne lbl_803A521C +/* 803A5208 003A2168 7D 05 E3 78 */ or r5, r8, r28 +/* 803A520C 003A216C 7C E0 EB 78 */ or r0, r7, r29 +/* 803A5210 003A2170 90 BE 01 18 */ stw r5, 0x118(r30) +/* 803A5214 003A2174 90 1E 01 14 */ stw r0, 0x114(r30) +/* 803A5218 003A2178 48 00 00 08 */ b lbl_803A5220 +lbl_803A521C: +/* 803A521C 003A217C 54 06 06 3E */ clrlwi r6, r0, 0x18 +lbl_803A5220: +/* 803A5220 003A2180 80 04 00 00 */ lwz r0, 0(r4) +/* 803A5224 003A2184 3C A0 51 EC */ lis r5, 0x51EB851F@ha +/* 803A5228 003A2188 39 05 85 1F */ addi r8, r5, 0x51EB851F@l +/* 803A522C 003A218C 54 05 00 1E */ rlwinm r5, r0, 0, 0, 0xf +/* 803A5230 003A2190 7C A8 28 96 */ mulhw r5, r8, r5 +/* 803A5234 003A2194 7C A5 2E 70 */ srawi r5, r5, 5 +/* 803A5238 003A2198 54 A7 0F FE */ srwi r7, r5, 0x1f +/* 803A523C 003A219C 7C A5 3A 15 */ add. r5, r5, r7 +/* 803A5240 003A21A0 40 80 00 2C */ bge lbl_803A526C +/* 803A5244 003A21A4 80 E4 00 04 */ lwz r7, 4(r4) +/* 803A5248 003A21A8 54 E7 84 3E */ srwi r7, r7, 0x10 +/* 803A524C 003A21AC 7C E7 07 74 */ extsb r7, r7 +/* 803A5250 003A21B0 54 E7 40 2E */ slwi r7, r7, 8 +/* 803A5254 003A21B4 7C E8 38 96 */ mulhw r7, r8, r7 +/* 803A5258 003A21B8 7C E7 2E 70 */ srawi r7, r7, 5 +/* 803A525C 003A21BC 54 E8 0F FE */ srwi r8, r7, 0x1f +/* 803A5260 003A21C0 7C E7 42 14 */ add r7, r7, r8 +/* 803A5264 003A21C4 7C A7 28 50 */ subf r5, r7, r5 +/* 803A5268 003A21C8 48 00 00 28 */ b lbl_803A5290 +lbl_803A526C: +/* 803A526C 003A21CC 80 E4 00 04 */ lwz r7, 4(r4) +/* 803A5270 003A21D0 54 E7 84 3E */ srwi r7, r7, 0x10 +/* 803A5274 003A21D4 7C E7 07 74 */ extsb r7, r7 +/* 803A5278 003A21D8 54 E7 40 2E */ slwi r7, r7, 8 +/* 803A527C 003A21DC 7C E8 38 96 */ mulhw r7, r8, r7 +/* 803A5280 003A21E0 7C E7 2E 70 */ srawi r7, r7, 5 +/* 803A5284 003A21E4 54 E8 0F FE */ srwi r8, r7, 0x1f +/* 803A5288 003A21E8 7C E7 42 14 */ add r7, r7, r8 +/* 803A528C 003A21EC 7C A5 3A 14 */ add r5, r5, r7 +lbl_803A5290: +/* 803A5290 003A21F0 80 84 00 04 */ lwz r4, 4(r4) +/* 803A5294 003A21F4 54 88 C6 3E */ rlwinm r8, r4, 0x18, 0x18, 0x1f +/* 803A5298 003A21F8 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f +/* 803A529C 003A21FC 7C E8 00 D0 */ neg r7, r8 +/* 803A52A0 003A2200 7C E0 43 78 */ or r0, r7, r8 +/* 803A52A4 003A2204 54 07 0F FE */ srwi r7, r0, 0x1f +/* 803A52A8 003A2208 48 00 C9 99 */ bl inpAddCtrl +/* 803A52AC 003A220C 57 E0 00 01 */ rlwinm. r0, r31, 0, 0, 0 +/* 803A52B0 003A2210 41 82 00 18 */ beq lbl_803A52C8 +/* 803A52B4 003A2214 88 7E 01 21 */ lbz r3, 0x121(r30) +/* 803A52B8 003A2218 7F E5 FB 78 */ mr r5, r31 +/* 803A52BC 003A221C 88 9E 01 22 */ lbz r4, 0x122(r30) +/* 803A52C0 003A2220 48 00 BE 0D */ bl inpSetGlobalMIDIDirtyFlag +/* 803A52C4 003A2224 48 00 00 10 */ b lbl_803A52D4 +lbl_803A52C8: +/* 803A52C8 003A2228 80 1E 02 14 */ lwz r0, 0x214(r30) +/* 803A52CC 003A222C 7C 00 FB 78 */ or r0, r0, r31 +/* 803A52D0 003A2230 90 1E 02 14 */ stw r0, 0x214(r30) +lbl_803A52D4: +/* 803A52D4 003A2234 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A52D8 003A2238 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A52DC 003A223C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A52E0 003A2240 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A52E4 003A2244 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A52E8 003A2248 7C 08 03 A6 */ mtlr r0 +/* 803A52EC 003A224C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A52F0 003A2250 4E 80 00 20 */ blr + +.global mcmdPortamento +mcmdPortamento: +/* 803A52F4 003A2254 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A52F8 003A2258 7C 08 02 A6 */ mflr r0 +/* 803A52FC 003A225C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A5300 003A2260 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A5304 003A2264 7C 7F 1B 78 */ mr r31, r3 +/* 803A5308 003A2268 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A530C 003A226C 7C 9E 23 78 */ mr r30, r4 +/* 803A5310 003A2270 80 04 00 00 */ lwz r0, 0(r4) +/* 803A5314 003A2274 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f +/* 803A5318 003A2278 98 03 01 31 */ stb r0, 0x131(r3) +/* 803A531C 003A227C 80 04 00 04 */ lwz r0, 4(r4) +/* 803A5320 003A2280 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A5324 003A2284 90 01 00 08 */ stw r0, 8(r1) +/* 803A5328 003A2288 80 04 00 04 */ lwz r0, 4(r4) +/* 803A532C 003A228C 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f +/* 803A5330 003A2290 41 82 00 10 */ beq lbl_803A5340 +/* 803A5334 003A2294 38 61 00 08 */ addi r3, r1, 8 +/* 803A5338 003A2298 48 00 DB B5 */ bl dGeomDisable +/* 803A533C 003A229C 48 00 00 10 */ b lbl_803A534C +lbl_803A5340: +/* 803A5340 003A22A0 7F E4 FB 78 */ mr r4, r31 +/* 803A5344 003A22A4 38 61 00 08 */ addi r3, r1, 8 +/* 803A5348 003A22A8 48 00 DB B5 */ bl sndConvertTicks +lbl_803A534C: +/* 803A534C 003A22AC 80 01 00 08 */ lwz r0, 8(r1) +/* 803A5350 003A22B0 90 1F 01 34 */ stw r0, 0x134(r31) +/* 803A5354 003A22B4 80 1E 00 00 */ lwz r0, 0(r30) +/* 803A5358 003A22B8 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f +/* 803A535C 003A22BC 2C 00 00 01 */ cmpwi r0, 1 +/* 803A5360 003A22C0 41 82 00 60 */ beq lbl_803A53C0 +/* 803A5364 003A22C4 40 80 00 10 */ bge lbl_803A5374 +/* 803A5368 003A22C8 2C 00 00 00 */ cmpwi r0, 0 +/* 803A536C 003A22CC 40 80 00 14 */ bge lbl_803A5380 +/* 803A5370 003A22D0 48 00 00 D0 */ b lbl_803A5440 +lbl_803A5374: +/* 803A5374 003A22D4 2C 00 00 03 */ cmpwi r0, 3 +/* 803A5378 003A22D8 40 80 00 C8 */ bge lbl_803A5440 +/* 803A537C 003A22DC 48 00 00 A0 */ b lbl_803A541C +lbl_803A5380: +/* 803A5380 003A22E0 88 9F 01 21 */ lbz r4, 0x121(r31) +/* 803A5384 003A22E4 28 04 00 FF */ cmplwi r4, 0xff +/* 803A5388 003A22E8 41 82 00 14 */ beq lbl_803A539C +/* 803A538C 003A22EC 88 BF 01 22 */ lbz r5, 0x122(r31) +/* 803A5390 003A22F0 38 60 00 41 */ li r3, 0x41 +/* 803A5394 003A22F4 38 C0 00 00 */ li r6, 0 +/* 803A5398 003A22F8 48 00 BD 59 */ bl sub_803b10f0 +lbl_803A539C: +/* 803A539C 003A22FC 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A53A0 003A2300 38 00 FB FF */ li r0, -1025 +/* 803A53A4 003A2304 80 9F 01 14 */ lwz r4, 0x114(r31) +/* 803A53A8 003A2308 38 60 FF FF */ li r3, -1 +/* 803A53AC 003A230C 7C A0 00 38 */ and r0, r5, r0 +/* 803A53B0 003A2310 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A53B4 003A2314 7C 80 18 38 */ and r0, r4, r3 +/* 803A53B8 003A2318 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A53BC 003A231C 48 00 00 84 */ b lbl_803A5440 +lbl_803A53C0: +/* 803A53C0 003A2320 88 9F 01 21 */ lbz r4, 0x121(r31) +/* 803A53C4 003A2324 28 04 00 FF */ cmplwi r4, 0xff +/* 803A53C8 003A2328 41 82 00 14 */ beq lbl_803A53DC +/* 803A53CC 003A232C 88 BF 01 22 */ lbz r5, 0x122(r31) +/* 803A53D0 003A2330 38 60 00 41 */ li r3, 0x41 +/* 803A53D4 003A2334 38 C0 00 7F */ li r6, 0x7f +/* 803A53D8 003A2338 48 00 BD 19 */ bl sub_803b10f0 +lbl_803A53DC: +/* 803A53DC 003A233C 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A53E0 003A2340 38 80 00 00 */ li r4, 0 +/* 803A53E4 003A2344 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A53E8 003A2348 38 60 04 00 */ li r3, 0x400 +/* 803A53EC 003A234C 7C 00 20 38 */ and r0, r0, r4 +/* 803A53F0 003A2350 7C A3 18 38 */ and r3, r5, r3 +/* 803A53F4 003A2354 7C 63 22 78 */ xor r3, r3, r4 +/* 803A53F8 003A2358 7C 00 22 78 */ xor r0, r0, r4 +/* 803A53FC 003A235C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A5400 003A2360 40 82 00 0C */ bne lbl_803A540C +/* 803A5404 003A2364 7F E3 FB 78 */ mr r3, r31 +/* 803A5408 003A2368 4B FF 39 11 */ bl synthInitPortamento +lbl_803A540C: +/* 803A540C 003A236C 80 1F 01 18 */ lwz r0, 0x118(r31) +/* 803A5410 003A2370 60 00 04 00 */ ori r0, r0, 0x400 +/* 803A5414 003A2374 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A5418 003A2378 48 00 00 28 */ b lbl_803A5440 +lbl_803A541C: +/* 803A541C 003A237C 88 9F 01 21 */ lbz r4, 0x121(r31) +/* 803A5420 003A2380 28 04 00 FF */ cmplwi r4, 0xff +/* 803A5424 003A2384 41 82 00 1C */ beq lbl_803A5440 +/* 803A5428 003A2388 88 BF 01 22 */ lbz r5, 0x122(r31) +/* 803A542C 003A238C 38 60 00 41 */ li r3, 0x41 +/* 803A5430 003A2390 48 00 C4 DD */ bl inpGetMidiCtrl +/* 803A5434 003A2394 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803A5438 003A2398 28 00 1F 80 */ cmplwi r0, 0x1f80 +/* 803A543C 003A239C 41 81 FF A0 */ bgt lbl_803A53DC +lbl_803A5440: +/* 803A5440 003A23A0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A5444 003A23A4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A5448 003A23A8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A544C 003A23AC 7C 08 03 A6 */ mtlr r0 +/* 803A5450 003A23B0 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A5454 003A23B4 4E 80 00 20 */ blr + +.global varGet +varGet: +/* 803A5458 003A23B8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A545C 003A23BC 7C 08 02 A6 */ mflr r0 +/* 803A5460 003A23C0 28 04 00 00 */ cmplwi r4, 0 +/* 803A5464 003A23C4 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A5468 003A23C8 41 82 00 14 */ beq lbl_803A547C +/* 803A546C 003A23CC 7C A4 2B 78 */ mr r4, r5 +/* 803A5470 003A23D0 48 00 D6 51 */ bl inpGetExCtrl +/* 803A5474 003A23D4 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803A5478 003A23D8 48 00 00 34 */ b lbl_803A54AC +lbl_803A547C: +/* 803A547C 003A23DC 54 A0 06 FE */ clrlwi r0, r5, 0x1b +/* 803A5480 003A23E0 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5484 003A23E4 40 80 00 14 */ bge lbl_803A5498 +/* 803A5488 003A23E8 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A548C 003A23EC 7C 63 02 14 */ add r3, r3, r0 +/* 803A5490 003A23F0 80 03 00 AC */ lwz r0, 0xac(r3) +/* 803A5494 003A23F4 48 00 00 18 */ b lbl_803A54AC +lbl_803A5498: +/* 803A5498 003A23F8 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A549C 003A23FC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A54A0 003A2400 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A54A4 003A2404 7C 63 02 14 */ add r3, r3, r0 +/* 803A54A8 003A2408 80 03 FF C0 */ lwz r0, -0x40(r3) +lbl_803A54AC: +/* 803A54AC 003A240C 7C 03 07 34 */ extsh r3, r0 +/* 803A54B0 003A2410 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A54B4 003A2414 7C 08 03 A6 */ mtlr r0 +/* 803A54B8 003A2418 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A54BC 003A241C 4E 80 00 20 */ blr + +.global mcmdVarCalculation +mcmdVarCalculation: +/* 803A54C0 003A2420 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A54C4 003A2424 7C 08 02 A6 */ mflr r0 +/* 803A54C8 003A2428 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A54CC 003A242C 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A54D0 003A2430 4B FE 45 AD */ bl sub_80389a7c +/* 803A54D4 003A2434 80 04 00 00 */ lwz r0, 0(r4) +/* 803A54D8 003A2438 7C 9C 23 78 */ mr r28, r4 +/* 803A54DC 003A243C 80 84 00 04 */ lwz r4, 4(r4) +/* 803A54E0 003A2440 7C 7B 1B 78 */ mr r27, r3 +/* 803A54E4 003A2444 54 00 46 3F */ rlwinm. r0, r0, 8, 0x18, 0x1f +/* 803A54E8 003A2448 7C BD 2B 78 */ mr r29, r5 +/* 803A54EC 003A244C 54 84 06 3E */ clrlwi r4, r4, 0x18 +/* 803A54F0 003A2450 41 82 00 10 */ beq lbl_803A5500 +/* 803A54F4 003A2454 48 00 D5 CD */ bl inpGetExCtrl +/* 803A54F8 003A2458 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A54FC 003A245C 48 00 00 34 */ b lbl_803A5530 +lbl_803A5500: +/* 803A5500 003A2460 54 80 06 FE */ clrlwi r0, r4, 0x1b +/* 803A5504 003A2464 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5508 003A2468 40 80 00 14 */ bge lbl_803A551C +/* 803A550C 003A246C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5510 003A2470 7C 7B 02 14 */ add r3, r27, r0 +/* 803A5514 003A2474 80 63 00 AC */ lwz r3, 0xac(r3) +/* 803A5518 003A2478 48 00 00 18 */ b lbl_803A5530 +lbl_803A551C: +/* 803A551C 003A247C 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A5520 003A2480 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5524 003A2484 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A5528 003A2488 7C 63 02 14 */ add r3, r3, r0 +/* 803A552C 003A248C 80 63 FF C0 */ lwz r3, -0x40(r3) +lbl_803A5530: +/* 803A5530 003A2490 57 A0 06 3E */ clrlwi r0, r29, 0x18 +/* 803A5534 003A2494 7C 7F 07 34 */ extsh r31, r3 +/* 803A5538 003A2498 28 00 00 04 */ cmplwi r0, 4 +/* 803A553C 003A249C 40 82 00 14 */ bne lbl_803A5550 +/* 803A5540 003A24A0 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A5544 003A24A4 54 00 C2 3E */ srwi r0, r0, 8 +/* 803A5548 003A24A8 7C 03 07 34 */ extsh r3, r0 +/* 803A554C 003A24AC 48 00 00 58 */ b lbl_803A55A4 +lbl_803A5550: +/* 803A5550 003A24B0 80 7C 00 04 */ lwz r3, 4(r28) +/* 803A5554 003A24B4 54 60 C6 3F */ rlwinm. r0, r3, 0x18, 0x18, 0x1f +/* 803A5558 003A24B8 54 64 86 3E */ rlwinm r4, r3, 0x10, 0x18, 0x1f +/* 803A555C 003A24BC 41 82 00 14 */ beq lbl_803A5570 +/* 803A5560 003A24C0 7F 63 DB 78 */ mr r3, r27 +/* 803A5564 003A24C4 48 00 D5 5D */ bl inpGetExCtrl +/* 803A5568 003A24C8 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803A556C 003A24CC 48 00 00 34 */ b lbl_803A55A0 +lbl_803A5570: +/* 803A5570 003A24D0 54 80 06 FE */ clrlwi r0, r4, 0x1b +/* 803A5574 003A24D4 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5578 003A24D8 40 80 00 14 */ bge lbl_803A558C +/* 803A557C 003A24DC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5580 003A24E0 7C 7B 02 14 */ add r3, r27, r0 +/* 803A5584 003A24E4 80 03 00 AC */ lwz r0, 0xac(r3) +/* 803A5588 003A24E8 48 00 00 18 */ b lbl_803A55A0 +lbl_803A558C: +/* 803A558C 003A24EC 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A5590 003A24F0 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5594 003A24F4 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A5598 003A24F8 7C 63 02 14 */ add r3, r3, r0 +/* 803A559C 003A24FC 80 03 FF C0 */ lwz r0, -0x40(r3) +lbl_803A55A0: +/* 803A55A0 003A2500 7C 03 07 34 */ extsh r3, r0 +lbl_803A55A4: +/* 803A55A4 003A2504 57 A0 06 3E */ clrlwi r0, r29, 0x18 +/* 803A55A8 003A2508 2C 00 00 02 */ cmpwi r0, 2 +/* 803A55AC 003A250C 41 82 00 40 */ beq lbl_803A55EC +/* 803A55B0 003A2510 40 80 00 14 */ bge lbl_803A55C4 +/* 803A55B4 003A2514 2C 00 00 00 */ cmpwi r0, 0 +/* 803A55B8 003A2518 41 82 00 1C */ beq lbl_803A55D4 +/* 803A55BC 003A251C 40 80 00 24 */ bge lbl_803A55E0 +/* 803A55C0 003A2520 48 00 00 50 */ b lbl_803A5610 +lbl_803A55C4: +/* 803A55C4 003A2524 2C 00 00 04 */ cmpwi r0, 4 +/* 803A55C8 003A2528 41 82 00 0C */ beq lbl_803A55D4 +/* 803A55CC 003A252C 40 80 00 44 */ bge lbl_803A5610 +/* 803A55D0 003A2530 48 00 00 28 */ b lbl_803A55F8 +lbl_803A55D4: +/* 803A55D4 003A2534 7C 60 07 34 */ extsh r0, r3 +/* 803A55D8 003A2538 7F DF 02 14 */ add r30, r31, r0 +/* 803A55DC 003A253C 48 00 00 34 */ b lbl_803A5610 +lbl_803A55E0: +/* 803A55E0 003A2540 7C 60 07 34 */ extsh r0, r3 +/* 803A55E4 003A2544 7F C0 F8 50 */ subf r30, r0, r31 +/* 803A55E8 003A2548 48 00 00 28 */ b lbl_803A5610 +lbl_803A55EC: +/* 803A55EC 003A254C 7C 60 07 34 */ extsh r0, r3 +/* 803A55F0 003A2550 7F DF 01 D6 */ mullw r30, r31, r0 +/* 803A55F4 003A2554 48 00 00 1C */ b lbl_803A5610 +lbl_803A55F8: +/* 803A55F8 003A2558 7C 60 07 35 */ extsh. r0, r3 +/* 803A55FC 003A255C 41 82 00 10 */ beq lbl_803A560C +/* 803A5600 003A2560 7C 60 07 34 */ extsh r0, r3 +/* 803A5604 003A2564 7F DF 03 D6 */ divw r30, r31, r0 +/* 803A5608 003A2568 48 00 00 08 */ b lbl_803A5610 +lbl_803A560C: +/* 803A560C 003A256C 3B C0 00 00 */ li r30, 0 +lbl_803A5610: +/* 803A5610 003A2570 80 7C 00 00 */ lwz r3, 0(r28) +/* 803A5614 003A2574 54 60 C6 3F */ rlwinm. r0, r3, 0x18, 0x18, 0x1f +/* 803A5618 003A2578 54 64 86 3E */ rlwinm r4, r3, 0x10, 0x18, 0x1f +/* 803A561C 003A257C 41 82 00 34 */ beq lbl_803A5650 +/* 803A5620 003A2580 2C 1E 80 00 */ cmpwi r30, -32768 +/* 803A5624 003A2584 7F 63 DB 78 */ mr r3, r27 +/* 803A5628 003A2588 40 80 00 0C */ bge lbl_803A5634 +/* 803A562C 003A258C 38 00 80 00 */ li r0, -32768 +/* 803A5630 003A2590 48 00 00 14 */ b lbl_803A5644 +lbl_803A5634: +/* 803A5634 003A2594 2C 1E 7F FF */ cmpwi r30, 0x7fff +/* 803A5638 003A2598 38 00 7F FF */ li r0, 0x7fff +/* 803A563C 003A259C 41 81 00 08 */ bgt lbl_803A5644 +/* 803A5640 003A25A0 7F C0 F3 78 */ mr r0, r30 +lbl_803A5644: +/* 803A5644 003A25A4 7C 05 07 34 */ extsh r5, r0 +/* 803A5648 003A25A8 48 00 D5 75 */ bl inpSetExCtrl +/* 803A564C 003A25AC 48 00 00 7C */ b lbl_803A56C8 +lbl_803A5650: +/* 803A5650 003A25B0 54 80 06 FE */ clrlwi r0, r4, 0x1b +/* 803A5654 003A25B4 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5658 003A25B8 40 80 00 38 */ bge lbl_803A5690 +/* 803A565C 003A25BC 2C 1E 80 00 */ cmpwi r30, -32768 +/* 803A5660 003A25C0 40 80 00 0C */ bge lbl_803A566C +/* 803A5664 003A25C4 38 60 80 00 */ li r3, -32768 +/* 803A5668 003A25C8 48 00 00 14 */ b lbl_803A567C +lbl_803A566C: +/* 803A566C 003A25CC 2C 1E 7F FF */ cmpwi r30, 0x7fff +/* 803A5670 003A25D0 38 60 7F FF */ li r3, 0x7fff +/* 803A5674 003A25D4 41 81 00 08 */ bgt lbl_803A567C +/* 803A5678 003A25D8 7F C3 F3 78 */ mr r3, r30 +lbl_803A567C: +/* 803A567C 003A25DC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5680 003A25E0 7C 64 07 34 */ extsh r4, r3 +/* 803A5684 003A25E4 7C 7B 02 14 */ add r3, r27, r0 +/* 803A5688 003A25E8 90 83 00 AC */ stw r4, 0xac(r3) +/* 803A568C 003A25EC 48 00 00 3C */ b lbl_803A56C8 +lbl_803A5690: +/* 803A5690 003A25F0 2C 1E 80 00 */ cmpwi r30, -32768 +/* 803A5694 003A25F4 40 80 00 0C */ bge lbl_803A56A0 +/* 803A5698 003A25F8 38 80 80 00 */ li r4, -32768 +/* 803A569C 003A25FC 48 00 00 14 */ b lbl_803A56B0 +lbl_803A56A0: +/* 803A56A0 003A2600 2C 1E 7F FF */ cmpwi r30, 0x7fff +/* 803A56A4 003A2604 38 80 7F FF */ li r4, 0x7fff +/* 803A56A8 003A2608 41 81 00 08 */ bgt lbl_803A56B0 +/* 803A56AC 003A260C 7F C4 F3 78 */ mr r4, r30 +lbl_803A56B0: +/* 803A56B0 003A2610 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A56B4 003A2614 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A56B8 003A2618 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A56BC 003A261C 7C 84 07 34 */ extsh r4, r4 +/* 803A56C0 003A2620 7C 63 02 14 */ add r3, r3, r0 +/* 803A56C4 003A2624 90 83 FF C0 */ stw r4, -0x40(r3) +lbl_803A56C8: +/* 803A56C8 003A2628 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A56CC 003A262C 4B FE 43 FD */ bl _restgpr_27 +/* 803A56D0 003A2630 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A56D4 003A2634 7C 08 03 A6 */ mtlr r0 +/* 803A56D8 003A2638 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A56DC 003A263C 4E 80 00 20 */ blr + +.global mcmdIfVarCompare +mcmdIfVarCompare: +/* 803A56E0 003A2640 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A56E4 003A2644 7C 08 02 A6 */ mflr r0 +/* 803A56E8 003A2648 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A56EC 003A264C 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A56F0 003A2650 4B FE 43 8D */ bl sub_80389a7c +/* 803A56F4 003A2654 7C 9D 23 78 */ mr r29, r4 +/* 803A56F8 003A2658 80 84 00 00 */ lwz r4, 0(r4) +/* 803A56FC 003A265C 7C 7C 1B 78 */ mr r28, r3 +/* 803A5700 003A2660 7C BE 2B 78 */ mr r30, r5 +/* 803A5704 003A2664 54 80 C6 3F */ rlwinm. r0, r4, 0x18, 0x18, 0x1f +/* 803A5708 003A2668 54 84 86 3E */ rlwinm r4, r4, 0x10, 0x18, 0x1f +/* 803A570C 003A266C 41 82 00 10 */ beq lbl_803A571C +/* 803A5710 003A2670 48 00 D3 B1 */ bl inpGetExCtrl +/* 803A5714 003A2674 54 7B 04 3E */ clrlwi r27, r3, 0x10 +/* 803A5718 003A2678 48 00 00 34 */ b lbl_803A574C +lbl_803A571C: +/* 803A571C 003A267C 54 80 06 FE */ clrlwi r0, r4, 0x1b +/* 803A5720 003A2680 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5724 003A2684 40 80 00 14 */ bge lbl_803A5738 +/* 803A5728 003A2688 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A572C 003A268C 7C 7C 02 14 */ add r3, r28, r0 +/* 803A5730 003A2690 83 63 00 AC */ lwz r27, 0xac(r3) +/* 803A5734 003A2694 48 00 00 18 */ b lbl_803A574C +lbl_803A5738: +/* 803A5738 003A2698 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A573C 003A269C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5740 003A26A0 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A5744 003A26A4 7C 63 02 14 */ add r3, r3, r0 +/* 803A5748 003A26A8 83 63 FF C0 */ lwz r27, -0x40(r3) +lbl_803A574C: +/* 803A574C 003A26AC 80 1D 00 00 */ lwz r0, 0(r29) +/* 803A5750 003A26B0 80 7D 00 04 */ lwz r3, 4(r29) +/* 803A5754 003A26B4 54 00 46 3F */ rlwinm. r0, r0, 8, 0x18, 0x1f +/* 803A5758 003A26B8 54 64 06 3E */ clrlwi r4, r3, 0x18 +/* 803A575C 003A26BC 41 82 00 14 */ beq lbl_803A5770 +/* 803A5760 003A26C0 7F 83 E3 78 */ mr r3, r28 +/* 803A5764 003A26C4 48 00 D3 5D */ bl inpGetExCtrl +/* 803A5768 003A26C8 54 64 04 3E */ clrlwi r4, r3, 0x10 +/* 803A576C 003A26CC 48 00 00 34 */ b lbl_803A57A0 +lbl_803A5770: +/* 803A5770 003A26D0 54 80 06 FE */ clrlwi r0, r4, 0x1b +/* 803A5774 003A26D4 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5778 003A26D8 40 80 00 14 */ bge lbl_803A578C +/* 803A577C 003A26DC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5780 003A26E0 7C 7C 02 14 */ add r3, r28, r0 +/* 803A5784 003A26E4 80 83 00 AC */ lwz r4, 0xac(r3) +/* 803A5788 003A26E8 48 00 00 18 */ b lbl_803A57A0 +lbl_803A578C: +/* 803A578C 003A26EC 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A5790 003A26F0 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5794 003A26F4 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A5798 003A26F8 7C 63 02 14 */ add r3, r3, r0 +/* 803A579C 003A26FC 80 83 FF C0 */ lwz r4, -0x40(r3) +lbl_803A57A0: +/* 803A57A0 003A2700 57 C0 06 3E */ clrlwi r0, r30, 0x18 +/* 803A57A4 003A2704 2C 00 00 01 */ cmpwi r0, 1 +/* 803A57A8 003A2708 41 82 00 24 */ beq lbl_803A57CC +/* 803A57AC 003A270C 40 80 00 38 */ bge lbl_803A57E4 +/* 803A57B0 003A2710 2C 00 00 00 */ cmpwi r0, 0 +/* 803A57B4 003A2714 40 80 00 08 */ bge lbl_803A57BC +/* 803A57B8 003A2718 48 00 00 2C */ b lbl_803A57E4 +lbl_803A57BC: +/* 803A57BC 003A271C 7C 1B 20 50 */ subf r0, r27, r4 +/* 803A57C0 003A2720 7C 00 00 34 */ cntlzw r0, r0 +/* 803A57C4 003A2724 54 1F DE 3E */ rlwinm r31, r0, 0x1b, 0x18, 0x1f +/* 803A57C8 003A2728 48 00 00 1C */ b lbl_803A57E4 +lbl_803A57CC: +/* 803A57CC 003A272C 7C 80 DA 78 */ xor r0, r4, r27 +/* 803A57D0 003A2730 7C 03 0E 70 */ srawi r3, r0, 1 +/* 803A57D4 003A2734 7C 00 20 38 */ and r0, r0, r4 +/* 803A57D8 003A2738 7C 00 18 50 */ subf r0, r0, r3 +/* 803A57DC 003A273C 54 00 0F FE */ srwi r0, r0, 0x1f +/* 803A57E0 003A2740 7C 1F 03 78 */ mr r31, r0 +lbl_803A57E4: +/* 803A57E4 003A2744 80 9D 00 04 */ lwz r4, 4(r29) +/* 803A57E8 003A2748 54 80 C6 3F */ rlwinm. r0, r4, 0x18, 0x18, 0x1f +/* 803A57EC 003A274C 41 82 00 10 */ beq lbl_803A57FC +/* 803A57F0 003A2750 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 803A57F4 003A2754 7C 00 00 34 */ cntlzw r0, r0 +/* 803A57F8 003A2758 54 1F DE 3E */ rlwinm r31, r0, 0x1b, 0x18, 0x1f +lbl_803A57FC: +/* 803A57FC 003A275C 57 E0 06 3F */ clrlwi. r0, r31, 0x18 +/* 803A5800 003A2760 41 82 00 14 */ beq lbl_803A5814 +/* 803A5804 003A2764 80 7C 00 34 */ lwz r3, 0x34(r28) +/* 803A5808 003A2768 54 80 9B 78 */ rlwinm r0, r4, 0x13, 0xd, 0x1c +/* 803A580C 003A276C 7C 03 02 14 */ add r0, r3, r0 +/* 803A5810 003A2770 90 1C 00 38 */ stw r0, 0x38(r28) +lbl_803A5814: +/* 803A5814 003A2774 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A5818 003A2778 4B FE 42 B1 */ bl _restgpr_27 +/* 803A581C 003A277C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A5820 003A2780 7C 08 03 A6 */ mtlr r0 +/* 803A5824 003A2784 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A5828 003A2788 4E 80 00 20 */ blr + +.global mcmdSendMessage +mcmdSendMessage: +/* 803A582C 003A278C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A5830 003A2790 7C 08 02 A6 */ mflr r0 +/* 803A5834 003A2794 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A5838 003A2798 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A583C 003A279C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A5840 003A27A0 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A5844 003A27A4 93 81 00 10 */ stw r28, 0x10(r1) +/* 803A5848 003A27A8 80 C4 00 04 */ lwz r6, 4(r4) +/* 803A584C 003A27AC 54 C0 C6 FE */ rlwinm r0, r6, 0x18, 0x1b, 0x1f +/* 803A5850 003A27B0 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5854 003A27B4 40 80 00 14 */ bge lbl_803A5868 +/* 803A5858 003A27B8 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A585C 003A27BC 7C A3 02 14 */ add r5, r3, r0 +/* 803A5860 003A27C0 83 A5 00 AC */ lwz r29, 0xac(r5) +/* 803A5864 003A27C4 48 00 00 18 */ b lbl_803A587C +lbl_803A5868: +/* 803A5868 003A27C8 3C A0 80 55 */ lis r5, lbl_80550AB4@ha +/* 803A586C 003A27CC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5870 003A27D0 38 A5 0A B4 */ addi r5, r5, lbl_80550AB4@l +/* 803A5874 003A27D4 7C A5 02 14 */ add r5, r5, r0 +/* 803A5878 003A27D8 83 A5 FF C0 */ lwz r29, -0x40(r5) +lbl_803A587C: +/* 803A587C 003A27DC 80 84 00 00 */ lwz r4, 0(r4) +/* 803A5880 003A27E0 54 80 C6 3F */ rlwinm. r0, r4, 0x18, 0x18, 0x1f +/* 803A5884 003A27E4 40 82 01 14 */ bne lbl_803A5998 +/* 803A5888 003A27E8 54 9E 84 3E */ srwi r30, r4, 0x10 +/* 803A588C 003A27EC 28 1E FF FF */ cmplwi r30, 0xffff +/* 803A5890 003A27F0 41 82 00 E4 */ beq lbl_803A5974 +/* 803A5894 003A27F4 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803A5898 003A27F8 3B 80 00 00 */ li r28, 0 +/* 803A589C 003A27FC 3B E3 00 50 */ addi r31, r3, lbl_80550050@l +/* 803A58A0 003A2800 48 00 00 C0 */ b lbl_803A5960 +lbl_803A58A4: +/* 803A58A4 003A2804 57 80 06 3E */ clrlwi r0, r28, 0x18 +/* 803A58A8 003A2808 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A58AC 003A280C 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A58B0 003A2810 7C 63 02 14 */ add r3, r3, r0 +/* 803A58B4 003A2814 80 03 00 34 */ lwz r0, 0x34(r3) +/* 803A58B8 003A2818 28 00 00 00 */ cmplwi r0, 0 +/* 803A58BC 003A281C 41 82 00 A0 */ beq lbl_803A595C +/* 803A58C0 003A2820 A0 03 01 02 */ lhz r0, 0x102(r3) +/* 803A58C4 003A2824 7C 1E 00 40 */ cmplw r30, r0 +/* 803A58C8 003A2828 40 82 00 94 */ bne lbl_803A595C +/* 803A58CC 003A282C 80 63 00 F8 */ lwz r3, 0xf8(r3) +/* 803A58D0 003A2830 80 63 00 08 */ lwz r3, 8(r3) +/* 803A58D4 003A2834 48 00 22 D5 */ bl vidGetInternalId +/* 803A58D8 003A2838 3C 03 00 01 */ addis r0, r3, 1 +/* 803A58DC 003A283C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A58E0 003A2840 41 82 00 7C */ beq lbl_803A595C +/* 803A58E4 003A2844 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A58E8 003A2848 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A58EC 003A284C 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A58F0 003A2850 7C 63 02 14 */ add r3, r3, r0 +/* 803A58F4 003A2854 88 83 03 EC */ lbz r4, 0x3ec(r3) +/* 803A58F8 003A2858 28 04 00 04 */ cmplwi r4, 4 +/* 803A58FC 003A285C 40 80 00 60 */ bge lbl_803A595C +/* 803A5900 003A2860 38 04 00 01 */ addi r0, r4, 1 +/* 803A5904 003A2864 98 03 03 EC */ stb r0, 0x3ec(r3) +/* 803A5908 003A2868 88 03 03 EE */ lbz r0, 0x3ee(r3) +/* 803A590C 003A286C 54 04 10 3A */ slwi r4, r0, 2 +/* 803A5910 003A2870 38 04 03 F0 */ addi r0, r4, 0x3f0 +/* 803A5914 003A2874 7F A3 01 2E */ stwx r29, r3, r0 +/* 803A5918 003A2878 88 83 03 EE */ lbz r4, 0x3ee(r3) +/* 803A591C 003A287C 38 04 00 01 */ addi r0, r4, 1 +/* 803A5920 003A2880 54 00 07 BE */ clrlwi r0, r0, 0x1e +/* 803A5924 003A2884 98 03 03 EE */ stb r0, 0x3ee(r3) +/* 803A5928 003A2888 88 03 00 68 */ lbz r0, 0x68(r3) +/* 803A592C 003A288C 28 00 00 00 */ cmplwi r0, 0 +/* 803A5930 003A2890 41 82 00 2C */ beq lbl_803A595C +/* 803A5934 003A2894 80 03 00 58 */ lwz r0, 0x58(r3) +/* 803A5938 003A2898 28 00 00 00 */ cmplwi r0, 0 +/* 803A593C 003A289C 41 82 00 20 */ beq lbl_803A595C +/* 803A5940 003A28A0 80 83 00 64 */ lwz r4, 0x64(r3) +/* 803A5944 003A28A4 38 00 00 00 */ li r0, 0 +/* 803A5948 003A28A8 90 83 00 38 */ stw r4, 0x38(r3) +/* 803A594C 003A28AC 80 83 00 58 */ lwz r4, 0x58(r3) +/* 803A5950 003A28B0 90 83 00 34 */ stw r4, 0x34(r3) +/* 803A5954 003A28B4 90 03 00 58 */ stw r0, 0x58(r3) +/* 803A5958 003A28B8 48 00 16 65 */ bl macMakeActive +lbl_803A595C: +/* 803A595C 003A28BC 3B 9C 00 01 */ addi r28, r28, 1 +lbl_803A5960: +/* 803A5960 003A28C0 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 803A5964 003A28C4 57 83 06 3E */ clrlwi r3, r28, 0x18 +/* 803A5968 003A28C8 7C 03 00 40 */ cmplw r3, r0 +/* 803A596C 003A28CC 41 80 FF 38 */ blt lbl_803A58A4 +/* 803A5970 003A28D0 48 00 00 E0 */ b lbl_803A5A50 +lbl_803A5974: +/* 803A5974 003A28D4 81 8D AE 7C */ lwz r12, lbl_805A9A3C@sda21(r13) +/* 803A5978 003A28D8 28 0C 00 00 */ cmplwi r12, 0 +/* 803A597C 003A28DC 41 82 00 D4 */ beq lbl_803A5A50 +/* 803A5980 003A28E0 80 63 00 F8 */ lwz r3, 0xf8(r3) +/* 803A5984 003A28E4 7F A4 EB 78 */ mr r4, r29 +/* 803A5988 003A28E8 80 63 00 08 */ lwz r3, 8(r3) +/* 803A598C 003A28EC 7D 89 03 A6 */ mtctr r12 +/* 803A5990 003A28F0 4E 80 04 21 */ bctrl +/* 803A5994 003A28F4 48 00 00 BC */ b lbl_803A5A50 +lbl_803A5998: +/* 803A5998 003A28F8 54 C0 06 FE */ clrlwi r0, r6, 0x1b +/* 803A599C 003A28FC 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A59A0 003A2900 40 80 00 14 */ bge lbl_803A59B4 +/* 803A59A4 003A2904 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A59A8 003A2908 7C 63 02 14 */ add r3, r3, r0 +/* 803A59AC 003A290C 80 63 00 AC */ lwz r3, 0xac(r3) +/* 803A59B0 003A2910 48 00 00 18 */ b lbl_803A59C8 +lbl_803A59B4: +/* 803A59B4 003A2914 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A59B8 003A2918 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A59BC 003A291C 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A59C0 003A2920 7C 63 02 14 */ add r3, r3, r0 +/* 803A59C4 003A2924 80 63 FF C0 */ lwz r3, -0x40(r3) +lbl_803A59C8: +/* 803A59C8 003A2928 48 00 21 E1 */ bl vidGetInternalId +/* 803A59CC 003A292C 3C 03 00 01 */ addis r0, r3, 1 +/* 803A59D0 003A2930 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A59D4 003A2934 41 82 00 7C */ beq lbl_803A5A50 +/* 803A59D8 003A2938 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A59DC 003A293C 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A59E0 003A2940 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A59E4 003A2944 7C 63 02 14 */ add r3, r3, r0 +/* 803A59E8 003A2948 88 83 03 EC */ lbz r4, 0x3ec(r3) +/* 803A59EC 003A294C 28 04 00 04 */ cmplwi r4, 4 +/* 803A59F0 003A2950 40 80 00 60 */ bge lbl_803A5A50 +/* 803A59F4 003A2954 38 04 00 01 */ addi r0, r4, 1 +/* 803A59F8 003A2958 98 03 03 EC */ stb r0, 0x3ec(r3) +/* 803A59FC 003A295C 88 03 03 EE */ lbz r0, 0x3ee(r3) +/* 803A5A00 003A2960 54 00 10 3A */ slwi r0, r0, 2 +/* 803A5A04 003A2964 7C 83 02 14 */ add r4, r3, r0 +/* 803A5A08 003A2968 93 A4 03 F0 */ stw r29, 0x3f0(r4) +/* 803A5A0C 003A296C 88 83 03 EE */ lbz r4, 0x3ee(r3) +/* 803A5A10 003A2970 38 04 00 01 */ addi r0, r4, 1 +/* 803A5A14 003A2974 54 00 07 BE */ clrlwi r0, r0, 0x1e +/* 803A5A18 003A2978 98 03 03 EE */ stb r0, 0x3ee(r3) +/* 803A5A1C 003A297C 88 03 00 68 */ lbz r0, 0x68(r3) +/* 803A5A20 003A2980 28 00 00 00 */ cmplwi r0, 0 +/* 803A5A24 003A2984 41 82 00 2C */ beq lbl_803A5A50 +/* 803A5A28 003A2988 80 03 00 58 */ lwz r0, 0x58(r3) +/* 803A5A2C 003A298C 28 00 00 00 */ cmplwi r0, 0 +/* 803A5A30 003A2990 41 82 00 20 */ beq lbl_803A5A50 +/* 803A5A34 003A2994 80 83 00 64 */ lwz r4, 0x64(r3) +/* 803A5A38 003A2998 38 00 00 00 */ li r0, 0 +/* 803A5A3C 003A299C 90 83 00 38 */ stw r4, 0x38(r3) +/* 803A5A40 003A29A0 80 83 00 58 */ lwz r4, 0x58(r3) +/* 803A5A44 003A29A4 90 83 00 34 */ stw r4, 0x34(r3) +/* 803A5A48 003A29A8 90 03 00 58 */ stw r0, 0x58(r3) +/* 803A5A4C 003A29AC 48 00 15 71 */ bl macMakeActive +lbl_803A5A50: +/* 803A5A50 003A29B0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A5A54 003A29B4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A5A58 003A29B8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A5A5C 003A29BC 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A5A60 003A29C0 83 81 00 10 */ lwz r28, 0x10(r1) +/* 803A5A64 003A29C4 7C 08 03 A6 */ mtlr r0 +/* 803A5A68 003A29C8 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A5A6C 003A29CC 4E 80 00 20 */ blr + +.global mcmdGetVID +mcmdGetVID: +/* 803A5A70 003A29D0 80 84 00 00 */ lwz r4, 0(r4) +/* 803A5A74 003A29D4 54 80 86 3F */ rlwinm. r0, r4, 0x10, 0x18, 0x1f +/* 803A5A78 003A29D8 40 82 00 40 */ bne lbl_803A5AB8 +/* 803A5A7C 003A29DC 54 80 C6 FE */ rlwinm r0, r4, 0x18, 0x1b, 0x1f +/* 803A5A80 003A29E0 80 83 00 F8 */ lwz r4, 0xf8(r3) +/* 803A5A84 003A29E4 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5A88 003A29E8 80 84 00 08 */ lwz r4, 8(r4) +/* 803A5A8C 003A29EC 40 80 00 14 */ bge lbl_803A5AA0 +/* 803A5A90 003A29F0 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5A94 003A29F4 7C 63 02 14 */ add r3, r3, r0 +/* 803A5A98 003A29F8 90 83 00 AC */ stw r4, 0xac(r3) +/* 803A5A9C 003A29FC 4E 80 00 20 */ blr +lbl_803A5AA0: +/* 803A5AA0 003A2A00 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A5AA4 003A2A04 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5AA8 003A2A08 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A5AAC 003A2A0C 7C 63 02 14 */ add r3, r3, r0 +/* 803A5AB0 003A2A10 90 83 FF C0 */ stw r4, -0x40(r3) +/* 803A5AB4 003A2A14 4E 80 00 20 */ blr +lbl_803A5AB8: +/* 803A5AB8 003A2A18 54 80 C6 FE */ rlwinm r0, r4, 0x18, 0x1b, 0x1f +/* 803A5ABC 003A2A1C 80 83 01 08 */ lwz r4, 0x108(r3) +/* 803A5AC0 003A2A20 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A5AC4 003A2A24 40 80 00 14 */ bge lbl_803A5AD8 +/* 803A5AC8 003A2A28 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5ACC 003A2A2C 7C 63 02 14 */ add r3, r3, r0 +/* 803A5AD0 003A2A30 90 83 00 AC */ stw r4, 0xac(r3) +/* 803A5AD4 003A2A34 4E 80 00 20 */ blr +lbl_803A5AD8: +/* 803A5AD8 003A2A38 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A5ADC 003A2A3C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A5AE0 003A2A40 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A5AE4 003A2A44 7C 63 02 14 */ add r3, r3, r0 +/* 803A5AE8 003A2A48 90 83 FF C0 */ stw r4, -0x40(r3) +/* 803A5AEC 003A2A4C 4E 80 00 20 */ blr + +.global mcmdSetKeyGroup +mcmdSetKeyGroup: +/* 803A5AF0 003A2A50 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A5AF4 003A2A54 7C 08 02 A6 */ mflr r0 +/* 803A5AF8 003A2A58 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A5AFC 003A2A5C 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A5B00 003A2A60 4B FE 3F 79 */ bl func_80389A78 +/* 803A5B04 003A2A64 3B C0 00 00 */ li r30, 0 +/* 803A5B08 003A2A68 7C 7A 1B 78 */ mr r26, r3 +/* 803A5B0C 003A2A6C 9B C3 01 04 */ stb r30, 0x104(r3) +/* 803A5B10 003A2A70 80 04 00 00 */ lwz r0, 0(r4) +/* 803A5B14 003A2A74 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f +/* 803A5B18 003A2A78 54 1C C6 3F */ rlwinm. r28, r0, 0x18, 0x18, 0x1f +/* 803A5B1C 003A2A7C 7C 03 00 D0 */ neg r0, r3 +/* 803A5B20 003A2A80 7C 00 1B 78 */ or r0, r0, r3 +/* 803A5B24 003A2A84 54 1B 0F FE */ srwi r27, r0, 0x1f +/* 803A5B28 003A2A88 41 82 00 8C */ beq lbl_803A5BB4 +/* 803A5B2C 003A2A8C 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803A5B30 003A2A90 3B A0 00 00 */ li r29, 0 +/* 803A5B34 003A2A94 3B E3 00 50 */ addi r31, r3, lbl_80550050@l +/* 803A5B38 003A2A98 48 00 00 6C */ b lbl_803A5BA4 +lbl_803A5B3C: +/* 803A5B3C 003A2A9C 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A5B40 003A2AA0 7C 60 F2 14 */ add r3, r0, r30 +/* 803A5B44 003A2AA4 80 03 00 34 */ lwz r0, 0x34(r3) +/* 803A5B48 003A2AA8 28 00 00 00 */ cmplwi r0, 0 +/* 803A5B4C 003A2AAC 41 82 00 50 */ beq lbl_803A5B9C +/* 803A5B50 003A2AB0 80 03 01 14 */ lwz r0, 0x114(r3) +/* 803A5B54 003A2AB4 38 A0 00 00 */ li r5, 0 +/* 803A5B58 003A2AB8 80 C3 01 18 */ lwz r6, 0x118(r3) +/* 803A5B5C 003A2ABC 38 80 00 02 */ li r4, 2 +/* 803A5B60 003A2AC0 7C 00 28 38 */ and r0, r0, r5 +/* 803A5B64 003A2AC4 7C C4 20 38 */ and r4, r6, r4 +/* 803A5B68 003A2AC8 7C 84 2A 78 */ xor r4, r4, r5 +/* 803A5B6C 003A2ACC 7C 00 2A 78 */ xor r0, r0, r5 +/* 803A5B70 003A2AD0 7C 80 03 79 */ or. r0, r4, r0 +/* 803A5B74 003A2AD4 40 82 00 28 */ bne lbl_803A5B9C +/* 803A5B78 003A2AD8 88 03 01 04 */ lbz r0, 0x104(r3) +/* 803A5B7C 003A2ADC 7C 1C 00 40 */ cmplw r28, r0 +/* 803A5B80 003A2AE0 40 82 00 1C */ bne lbl_803A5B9C +/* 803A5B84 003A2AE4 28 1B 00 00 */ cmplwi r27, 0 +/* 803A5B88 003A2AE8 40 82 00 0C */ bne lbl_803A5B94 +/* 803A5B8C 003A2AEC 48 00 11 95 */ bl macSetExternalKeyoff +/* 803A5B90 003A2AF0 48 00 00 0C */ b lbl_803A5B9C +lbl_803A5B94: +/* 803A5B94 003A2AF4 7F A3 EB 78 */ mr r3, r29 +/* 803A5B98 003A2AF8 48 00 2E 85 */ bl voiceKill +lbl_803A5B9C: +/* 803A5B9C 003A2AFC 3B DE 04 04 */ addi r30, r30, 0x404 +/* 803A5BA0 003A2B00 3B BD 00 01 */ addi r29, r29, 1 +lbl_803A5BA4: +/* 803A5BA4 003A2B04 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 803A5BA8 003A2B08 7C 1D 00 40 */ cmplw r29, r0 +/* 803A5BAC 003A2B0C 41 80 FF 90 */ blt lbl_803A5B3C +/* 803A5BB0 003A2B10 9B 9A 01 04 */ stb r28, 0x104(r26) +lbl_803A5BB4: +/* 803A5BB4 003A2B14 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A5BB8 003A2B18 4B FE 3F 0D */ bl _restgpr_26 +/* 803A5BBC 003A2B1C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A5BC0 003A2B20 7C 08 03 A6 */ mtlr r0 +/* 803A5BC4 003A2B24 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A5BC8 003A2B28 4E 80 00 20 */ blr + +.global sub_803a5bcc +sub_803a5bcc: +/* 803A5BCC 003A2B2C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803A5BD0 003A2B30 7C 08 02 A6 */ mflr r0 +/* 803A5BD4 003A2B34 90 01 00 34 */ stw r0, 0x34(r1) +/* 803A5BD8 003A2B38 39 61 00 30 */ addi r11, r1, 0x30 +/* 803A5BDC 003A2B3C 4B FE 3E 99 */ bl func_80389A74 +/* 803A5BE0 003A2B40 80 E3 01 18 */ lwz r7, 0x118(r3) +/* 803A5BE4 003A2B44 38 00 00 03 */ li r0, 3 +/* 803A5BE8 003A2B48 80 C3 01 14 */ lwz r6, 0x114(r3) +/* 803A5BEC 003A2B4C 38 A0 00 00 */ li r5, 0 +/* 803A5BF0 003A2B50 7C E0 00 38 */ and r0, r7, r0 +/* 803A5BF4 003A2B54 7C 7F 1B 78 */ mr r31, r3 +/* 803A5BF8 003A2B58 7C C4 28 38 */ and r4, r6, r5 +/* 803A5BFC 003A2B5C 7C 03 2A 78 */ xor r3, r0, r5 +/* 803A5C00 003A2B60 7C 80 2A 78 */ xor r0, r4, r5 +/* 803A5C04 003A2B64 7C 60 03 79 */ or. r0, r3, r0 +/* 803A5C08 003A2B68 41 82 02 1C */ beq lbl_803A5E24 +/* 803A5C0C 003A2B6C 38 60 00 01 */ li r3, 1 +/* 803A5C10 003A2B70 7C 80 2A 78 */ xor r0, r4, r5 +/* 803A5C14 003A2B74 7C E3 18 38 */ and r3, r7, r3 +/* 803A5C18 003A2B78 7C 63 2A 78 */ xor r3, r3, r5 +/* 803A5C1C 003A2B7C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A5C20 003A2B80 41 82 00 28 */ beq lbl_803A5C48 +/* 803A5C24 003A2B84 38 00 FF FE */ li r0, -2 +/* 803A5C28 003A2B88 38 60 FF FF */ li r3, -1 +/* 803A5C2C 003A2B8C 7C E0 00 38 */ and r0, r7, r0 +/* 803A5C30 003A2B90 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A5C34 003A2B94 7C C0 18 38 */ and r0, r6, r3 +/* 803A5C38 003A2B98 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A5C3C 003A2B9C 80 1F 00 F4 */ lwz r0, 0xf4(r31) +/* 803A5C40 003A2BA0 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A5C44 003A2BA4 48 00 D7 49 */ bl hwBreak +lbl_803A5C48: +/* 803A5C48 003A2BA8 88 1F 02 09 */ lbz r0, 0x209(r31) +/* 803A5C4C 003A2BAC 38 80 00 00 */ li r4, 0 +/* 803A5C50 003A2BB0 7F E3 FB 78 */ mr r3, r31 +/* 803A5C54 003A2BB4 54 00 80 1E */ slwi r0, r0, 0x10 +/* 803A5C58 003A2BB8 90 1F 01 80 */ stw r0, 0x180(r31) +/* 803A5C5C 003A2BBC 90 1F 01 70 */ stw r0, 0x170(r31) +/* 803A5C60 003A2BC0 90 9F 01 84 */ stw r4, 0x184(r31) +/* 803A5C64 003A2BC4 90 9F 01 74 */ stw r4, 0x174(r31) +/* 803A5C68 003A2BC8 88 1F 02 08 */ lbz r0, 0x208(r31) +/* 803A5C6C 003A2BCC 54 00 80 1E */ slwi r0, r0, 0x10 +/* 803A5C70 003A2BD0 90 1F 01 54 */ stw r0, 0x154(r31) +/* 803A5C74 003A2BD4 98 9F 01 92 */ stb r4, 0x192(r31) +/* 803A5C78 003A2BD8 80 1F 01 54 */ lwz r0, 0x154(r31) +/* 803A5C7C 003A2BDC 90 1F 01 58 */ stw r0, 0x158(r31) +/* 803A5C80 003A2BE0 88 1F 02 0A */ lbz r0, 0x20a(r31) +/* 803A5C84 003A2BE4 98 1F 01 21 */ stb r0, 0x121(r31) +/* 803A5C88 003A2BE8 88 1F 02 0B */ lbz r0, 0x20b(r31) +/* 803A5C8C 003A2BEC 98 1F 01 22 */ stb r0, 0x122(r31) +/* 803A5C90 003A2BF0 88 1F 02 0C */ lbz r0, 0x20c(r31) +/* 803A5C94 003A2BF4 98 1F 01 23 */ stb r0, 0x123(r31) +/* 803A5C98 003A2BF8 88 1F 02 0D */ lbz r0, 0x20d(r31) +/* 803A5C9C 003A2BFC 98 1F 01 20 */ stb r0, 0x120(r31) +/* 803A5CA0 003A2C00 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 803A5CA4 003A2C04 98 1F 01 93 */ stb r0, 0x193(r31) +/* 803A5CA8 003A2C08 98 9F 01 04 */ stb r4, 0x104(r31) +/* 803A5CAC 003A2C0C B0 9F 01 50 */ sth r4, 0x150(r31) +/* 803A5CB0 003A2C10 B0 9F 01 6C */ sth r4, 0x16c(r31) +/* 803A5CB4 003A2C14 48 00 CB 19 */ bl sub_803b27cc +/* 803A5CB8 003A2C18 88 7F 01 21 */ lbz r3, 0x121(r31) +/* 803A5CBC 003A2C1C 88 9F 01 22 */ lbz r4, 0x122(r31) +/* 803A5CC0 003A2C20 48 00 C1 69 */ bl inpGetMidiLastNote +/* 803A5CC4 003A2C24 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A5CC8 003A2C28 28 00 00 FF */ cmplwi r0, 0xff +/* 803A5CCC 003A2C2C 41 82 00 0C */ beq lbl_803A5CD8 +/* 803A5CD0 003A2C30 98 7F 01 30 */ stb r3, 0x130(r31) +/* 803A5CD4 003A2C34 48 00 00 0C */ b lbl_803A5CE0 +lbl_803A5CD8: +/* 803A5CD8 003A2C38 88 1F 01 2F */ lbz r0, 0x12f(r31) +/* 803A5CDC 003A2C3C 98 1F 01 30 */ stb r0, 0x130(r31) +lbl_803A5CE0: +/* 803A5CE0 003A2C40 88 7F 01 21 */ lbz r3, 0x121(r31) +/* 803A5CE4 003A2C44 88 9F 01 22 */ lbz r4, 0x122(r31) +/* 803A5CE8 003A2C48 88 BF 01 2F */ lbz r5, 0x12f(r31) +/* 803A5CEC 003A2C4C 48 00 C1 01 */ bl inpSetMidiLastNote +/* 803A5CF0 003A2C50 7F E3 FB 78 */ mr r3, r31 +/* 803A5CF4 003A2C54 48 00 31 F1 */ bl voiceSetLastStarted +/* 803A5CF8 003A2C58 88 9F 02 0E */ lbz r4, 0x20e(r31) +/* 803A5CFC 003A2C5C 38 60 00 00 */ li r3, 0 +/* 803A5D00 003A2C60 38 00 64 00 */ li r0, 0x6400 +/* 803A5D04 003A2C64 98 9F 01 1E */ stb r4, 0x11e(r31) +/* 803A5D08 003A2C68 88 9F 02 0F */ lbz r4, 0x20f(r31) +/* 803A5D0C 003A2C6C 98 9F 01 1F */ stb r4, 0x11f(r31) +/* 803A5D10 003A2C70 90 7F 01 3C */ stw r3, 0x13c(r31) +/* 803A5D14 003A2C74 90 1F 01 34 */ stw r0, 0x134(r31) +/* 803A5D18 003A2C78 98 7F 01 31 */ stb r3, 0x131(r31) +/* 803A5D1C 003A2C7C 88 9F 01 21 */ lbz r4, 0x121(r31) +/* 803A5D20 003A2C80 28 04 00 FF */ cmplwi r4, 0xff +/* 803A5D24 003A2C84 41 82 00 18 */ beq lbl_803A5D3C +/* 803A5D28 003A2C88 88 BF 01 22 */ lbz r5, 0x122(r31) +/* 803A5D2C 003A2C8C 38 60 00 41 */ li r3, 0x41 +/* 803A5D30 003A2C90 48 00 BB DD */ bl inpGetMidiCtrl +/* 803A5D34 003A2C94 B0 7F 01 32 */ sth r3, 0x132(r31) +/* 803A5D38 003A2C98 48 00 00 08 */ b lbl_803A5D40 +lbl_803A5D3C: +/* 803A5D3C 003A2C9C B0 7F 01 32 */ sth r3, 0x132(r31) +lbl_803A5D40: +/* 803A5D40 003A2CA0 88 7F 01 21 */ lbz r3, 0x121(r31) +/* 803A5D44 003A2CA4 88 9F 01 22 */ lbz r4, 0x122(r31) +/* 803A5D48 003A2CA8 48 00 BE 89 */ bl sub_803b1bd0 +/* 803A5D4C 003A2CAC 88 03 00 00 */ lbz r0, 0(r3) +/* 803A5D50 003A2CB0 39 40 00 80 */ li r10, 0x80 +/* 803A5D54 003A2CB4 39 20 00 00 */ li r9, 0 +/* 803A5D58 003A2CB8 39 00 7F FF */ li r8, 0x7fff +/* 803A5D5C 003A2CBC 98 1F 01 D6 */ stb r0, 0x1d6(r31) +/* 803A5D60 003A2CC0 38 E0 FF FF */ li r7, -1 +/* 803A5D64 003A2CC4 38 C0 20 00 */ li r6, 0x2000 +/* 803A5D68 003A2CC8 38 00 00 08 */ li r0, 8 +/* 803A5D6C 003A2CCC 89 63 00 00 */ lbz r11, 0(r3) +/* 803A5D70 003A2CD0 38 7F 00 AC */ addi r3, r31, 0xac +/* 803A5D74 003A2CD4 38 80 00 00 */ li r4, 0 +/* 803A5D78 003A2CD8 38 A0 00 40 */ li r5, 0x40 +/* 803A5D7C 003A2CDC 99 7F 01 D7 */ stb r11, 0x1d7(r31) +/* 803A5D80 003A2CE0 99 5F 01 90 */ stb r10, 0x190(r31) +/* 803A5D84 003A2CE4 99 3F 01 91 */ stb r9, 0x191(r31) +/* 803A5D88 003A2CE8 B1 3F 00 AA */ sth r9, 0xaa(r31) +/* 803A5D8C 003A2CEC 99 3F 01 B8 */ stb r9, 0x1b8(r31) +/* 803A5D90 003A2CF0 99 3F 01 B9 */ stb r9, 0x1b9(r31) +/* 803A5D94 003A2CF4 91 3F 01 A0 */ stw r9, 0x1a0(r31) +/* 803A5D98 003A2CF8 91 3F 01 A4 */ stw r9, 0x1a4(r31) +/* 803A5D9C 003A2CFC 91 3F 01 C0 */ stw r9, 0x1c0(r31) +/* 803A5DA0 003A2D00 B1 3F 01 C4 */ sth r9, 0x1c4(r31) +/* 803A5DA4 003A2D04 B1 1F 01 C6 */ sth r8, 0x1c6(r31) +/* 803A5DA8 003A2D08 91 3F 01 CC */ stw r9, 0x1cc(r31) +/* 803A5DAC 003A2D0C B1 3F 01 D0 */ sth r9, 0x1d0(r31) +/* 803A5DB0 003A2D10 B1 1F 01 D2 */ sth r8, 0x1d2(r31) +/* 803A5DB4 003A2D14 91 3F 00 50 */ stw r9, 0x50(r31) +/* 803A5DB8 003A2D18 91 3F 00 54 */ stw r9, 0x54(r31) +/* 803A5DBC 003A2D1C 91 3F 00 58 */ stw r9, 0x58(r31) +/* 803A5DC0 003A2D20 99 3F 00 68 */ stb r9, 0x68(r31) +/* 803A5DC4 003A2D24 90 FF 01 24 */ stw r7, 0x124(r31) +/* 803A5DC8 003A2D28 90 FF 01 28 */ stw r7, 0x128(r31) +/* 803A5DCC 003A2D2C B0 DF 01 D8 */ sth r6, 0x1d8(r31) +/* 803A5DD0 003A2D30 B1 3F 04 00 */ sth r9, 0x400(r31) +/* 803A5DD4 003A2D34 80 FF 01 18 */ lwz r7, 0x118(r31) +/* 803A5DD8 003A2D38 80 DF 01 14 */ lwz r6, 0x114(r31) +/* 803A5DDC 003A2D3C 7C E0 00 38 */ and r0, r7, r0 +/* 803A5DE0 003A2D40 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A5DE4 003A2D44 7C C0 48 38 */ and r0, r6, r9 +/* 803A5DE8 003A2D48 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A5DEC 003A2D4C 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A5DF0 003A2D50 60 00 30 00 */ ori r0, r0, 0x3000 +/* 803A5DF4 003A2D54 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A5DF8 003A2D58 4B C5 D5 B1 */ bl memset +/* 803A5DFC 003A2D5C 80 0D AE E8 */ lwz r0, lbl_805A9AA8@sda21(r13) +/* 803A5E00 003A2D60 7F E3 FB 78 */ mr r3, r31 +/* 803A5E04 003A2D64 80 8D AE EC */ lwz r4, lbl_805A9AAC@sda21(r13) +/* 803A5E08 003A2D68 90 9F 00 A4 */ stw r4, 0xa4(r31) +/* 803A5E0C 003A2D6C 90 1F 00 A0 */ stw r0, 0xa0(r31) +/* 803A5E10 003A2D70 80 0D AE E8 */ lwz r0, lbl_805A9AA8@sda21(r13) +/* 803A5E14 003A2D74 80 8D AE EC */ lwz r4, lbl_805A9AAC@sda21(r13) +/* 803A5E18 003A2D78 90 9F 00 94 */ stw r4, 0x94(r31) +/* 803A5E1C 003A2D7C 90 1F 00 90 */ stw r0, 0x90(r31) +/* 803A5E20 003A2D80 4B FF 4C 19 */ bl synthStartSynthJobHandling +lbl_803A5E24: +/* 803A5E24 003A2D84 38 00 00 00 */ li r0, 0 +/* 803A5E28 003A2D88 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803A5E2C 003A2D8C 98 0D AE F8 */ stb r0, lbl_805A9AB8@sda21(r13) +/* 803A5E30 003A2D90 3B A3 00 50 */ addi r29, r3, lbl_80550050@l +/* 803A5E34 003A2D94 3B 8D AE E0 */ addi r28, r13, lbl_805A9AA0@sda21 +lbl_803A5E38: +/* 803A5E38 003A2D98 88 6D AE F8 */ lbz r3, lbl_805A9AB8@sda21(r13) +/* 803A5E3C 003A2D9C 38 63 00 01 */ addi r3, r3, 1 +/* 803A5E40 003A2DA0 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A5E44 003A2DA4 98 6D AE F8 */ stb r3, lbl_805A9AB8@sda21(r13) +/* 803A5E48 003A2DA8 28 00 00 20 */ cmplwi r0, 0x20 +/* 803A5E4C 003A2DAC 41 81 0C C0 */ bgt lbl_803A6B0C +/* 803A5E50 003A2DB0 80 9F 00 38 */ lwz r4, 0x38(r31) +/* 803A5E54 003A2DB4 3B C0 00 00 */ li r30, 0 +/* 803A5E58 003A2DB8 80 64 00 00 */ lwz r3, 0(r4) +/* 803A5E5C 003A2DBC 38 04 00 08 */ addi r0, r4, 8 +/* 803A5E60 003A2DC0 90 6D AE E0 */ stw r3, lbl_805A9AA0@sda21(r13) +/* 803A5E64 003A2DC4 80 64 00 04 */ lwz r3, 4(r4) +/* 803A5E68 003A2DC8 90 7C 00 04 */ stw r3, 4(r28) +/* 803A5E6C 003A2DCC 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A5E70 003A2DD0 83 4D AE E0 */ lwz r26, lbl_805A9AA0@sda21(r13) +/* 803A5E74 003A2DD4 57 40 06 7E */ clrlwi r0, r26, 0x19 +/* 803A5E78 003A2DD8 28 00 00 71 */ cmplwi r0, 0x71 +/* 803A5E7C 003A2DDC 41 81 0C 88 */ bgt lbl_803A6B04 +/* 803A5E80 003A2DE0 3C 60 80 3F */ lis r3, lbl_803F3258@ha +/* 803A5E84 003A2DE4 54 00 10 3A */ slwi r0, r0, 2 +/* 803A5E88 003A2DE8 38 63 32 58 */ addi r3, r3, lbl_803F3258@l +/* 803A5E8C 003A2DEC 7C 03 00 2E */ lwzx r0, r3, r0 +/* 803A5E90 003A2DF0 7C 09 03 A6 */ mtctr r0 +/* 803A5E94 003A2DF4 4E 80 04 20 */ bctr +/* 803A5E98 003A2DF8 7F E3 FB 78 */ mr r3, r31 +/* 803A5E9C 003A2DFC 48 00 18 A5 */ bl sub_803a7740 +/* 803A5EA0 003A2E00 7F E3 FB 78 */ mr r3, r31 +/* 803A5EA4 003A2E04 48 00 24 01 */ bl voiceFree +/* 803A5EA8 003A2E08 3B C0 00 01 */ li r30, 1 +/* 803A5EAC 003A2E0C 48 00 0C 58 */ b lbl_803A6B04 +/* 803A5EB0 003A2E10 7F E3 FB 78 */ mr r3, r31 +/* 803A5EB4 003A2E14 48 00 18 8D */ bl sub_803a7740 +/* 803A5EB8 003A2E18 7F E3 FB 78 */ mr r3, r31 +/* 803A5EBC 003A2E1C 48 00 23 E9 */ bl voiceFree +/* 803A5EC0 003A2E20 3B C0 00 01 */ li r30, 1 +/* 803A5EC4 003A2E24 48 00 0C 40 */ b lbl_803A6B04 +/* 803A5EC8 003A2E28 A0 7F 01 2C */ lhz r3, 0x12c(r31) +/* 803A5ECC 003A2E2C 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f +/* 803A5ED0 003A2E30 7C 03 00 00 */ cmpw r3, r0 +/* 803A5ED4 003A2E34 41 80 0C 30 */ blt lbl_803A6B04 +/* 803A5ED8 003A2E38 57 43 84 3E */ srwi r3, r26, 0x10 +/* 803A5EDC 003A2E3C 4B FF C6 21 */ bl dataGetMacro +/* 803A5EE0 003A2E40 28 03 00 00 */ cmplwi r3, 0 +/* 803A5EE4 003A2E44 41 82 0C 20 */ beq lbl_803A6B04 +/* 803A5EE8 003A2E48 90 7F 00 34 */ stw r3, 0x34(r31) +/* 803A5EEC 003A2E4C 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A5EF0 003A2E50 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c +/* 803A5EF4 003A2E54 7C 03 02 14 */ add r0, r3, r0 +/* 803A5EF8 003A2E58 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A5EFC 003A2E5C 48 00 0C 08 */ b lbl_803A6B04 +/* 803A5F00 003A2E60 80 7F 01 54 */ lwz r3, 0x154(r31) +/* 803A5F04 003A2E64 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f +/* 803A5F08 003A2E68 54 63 86 3E */ rlwinm r3, r3, 0x10, 0x18, 0x1f +/* 803A5F0C 003A2E6C 7C 03 00 40 */ cmplw r3, r0 +/* 803A5F10 003A2E70 41 80 0B F4 */ blt lbl_803A6B04 +/* 803A5F14 003A2E74 57 43 84 3E */ srwi r3, r26, 0x10 +/* 803A5F18 003A2E78 4B FF C5 E5 */ bl dataGetMacro +/* 803A5F1C 003A2E7C 28 03 00 00 */ cmplwi r3, 0 +/* 803A5F20 003A2E80 41 82 0B E4 */ beq lbl_803A6B04 +/* 803A5F24 003A2E84 90 7F 00 34 */ stw r3, 0x34(r31) +/* 803A5F28 003A2E88 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A5F2C 003A2E8C 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c +/* 803A5F30 003A2E90 7C 03 02 14 */ add r0, r3, r0 +/* 803A5F34 003A2E94 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A5F38 003A2E98 48 00 0B CC */ b lbl_803A6B04 +/* 803A5F3C 003A2E9C 7F E3 FB 78 */ mr r3, r31 +/* 803A5F40 003A2EA0 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A5F44 003A2EA4 4B FF CA 81 */ bl mcmdWait +/* 803A5F48 003A2EA8 7C 7E 1B 78 */ mr r30, r3 +/* 803A5F4C 003A2EAC 48 00 0B B8 */ b lbl_803A6B04 +/* 803A5F50 003A2EB0 7F E3 FB 78 */ mr r3, r31 +/* 803A5F54 003A2EB4 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A5F58 003A2EB8 4B FF CE 2D */ bl mcmdLoop +/* 803A5F5C 003A2EBC 48 00 0B A8 */ b lbl_803A6B04 +/* 803A5F60 003A2EC0 57 43 84 3E */ srwi r3, r26, 0x10 +/* 803A5F64 003A2EC4 4B FF C5 99 */ bl dataGetMacro +/* 803A5F68 003A2EC8 28 03 00 00 */ cmplwi r3, 0 +/* 803A5F6C 003A2ECC 41 82 00 20 */ beq lbl_803A5F8C +/* 803A5F70 003A2ED0 90 7F 00 34 */ stw r3, 0x34(r31) +/* 803A5F74 003A2ED4 38 80 00 00 */ li r4, 0 +/* 803A5F78 003A2ED8 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A5F7C 003A2EDC 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c +/* 803A5F80 003A2EE0 7C 03 02 14 */ add r0, r3, r0 +/* 803A5F84 003A2EE4 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A5F88 003A2EE8 48 00 00 18 */ b lbl_803A5FA0 +lbl_803A5F8C: +/* 803A5F8C 003A2EEC 7F E3 FB 78 */ mr r3, r31 +/* 803A5F90 003A2EF0 48 00 17 B1 */ bl sub_803a7740 +/* 803A5F94 003A2EF4 7F E3 FB 78 */ mr r3, r31 +/* 803A5F98 003A2EF8 48 00 23 0D */ bl voiceFree +/* 803A5F9C 003A2EFC 38 80 00 01 */ li r4, 1 +lbl_803A5FA0: +/* 803A5FA0 003A2F00 7C 9E 23 78 */ mr r30, r4 +/* 803A5FA4 003A2F04 48 00 0B 60 */ b lbl_803A6B04 +/* 803A5FA8 003A2F08 38 00 00 01 */ li r0, 1 +/* 803A5FAC 003A2F0C 7F E3 FB 78 */ mr r3, r31 +/* 803A5FB0 003A2F10 98 1C 00 06 */ stb r0, 6(r28) +/* 803A5FB4 003A2F14 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A5FB8 003A2F18 4B FF CA 0D */ bl mcmdWait +/* 803A5FBC 003A2F1C 7C 7E 1B 78 */ mr r30, r3 +/* 803A5FC0 003A2F20 48 00 0B 44 */ b lbl_803A6B04 +/* 803A5FC4 003A2F24 7F E3 FB 78 */ mr r3, r31 +/* 803A5FC8 003A2F28 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A5FCC 003A2F2C 4B FF CF 0D */ bl sub_803a2ed8 +/* 803A5FD0 003A2F30 48 00 0B 34 */ b lbl_803A6B04 +/* 803A5FD4 003A2F34 88 9F 01 2F */ lbz r4, 0x12f(r31) +/* 803A5FD8 003A2F38 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f +/* 803A5FDC 003A2F3C 3B 60 00 00 */ li r27, 0 +/* 803A5FE0 003A2F40 57 40 00 1E */ rlwinm r0, r26, 0, 0, 0xf +/* 803A5FE4 003A2F44 7C 64 1A 14 */ add r3, r4, r3 +/* 803A5FE8 003A2F48 54 7A 40 2E */ slwi r26, r3, 8 +/* 803A5FEC 003A2F4C 7F 79 DB 78 */ mr r25, r27 +/* 803A5FF0 003A2F50 7F 5A 03 78 */ or r26, r26, r0 +/* 803A5FF4 003A2F54 48 00 00 4C */ b lbl_803A6040 +lbl_803A5FF8: +/* 803A5FF8 003A2F58 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A5FFC 003A2F5C 38 19 00 F4 */ addi r0, r25, 0xf4 +/* 803A6000 003A2F60 7F 44 DB 78 */ or r4, r26, r27 +/* 803A6004 003A2F64 7C 03 00 2E */ lwzx r0, r3, r0 +/* 803A6008 003A2F68 7C 00 20 40 */ cmplw r0, r4 +/* 803A600C 003A2F6C 40 82 00 2C */ bne lbl_803A6038 +/* 803A6010 003A2F70 3C 04 00 01 */ addis r0, r4, 1 +/* 803A6014 003A2F74 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A6018 003A2F78 41 82 00 20 */ beq lbl_803A6038 +/* 803A601C 003A2F7C 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803A6020 003A2F80 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A6024 003A2F84 7C 63 02 14 */ add r3, r3, r0 +/* 803A6028 003A2F88 80 03 00 F4 */ lwz r0, 0xf4(r3) +/* 803A602C 003A2F8C 7C 04 00 40 */ cmplw r4, r0 +/* 803A6030 003A2F90 40 82 00 08 */ bne lbl_803A6038 +/* 803A6034 003A2F94 48 00 0C ED */ bl macSetExternalKeyoff +lbl_803A6038: +/* 803A6038 003A2F98 3B 39 04 04 */ addi r25, r25, 0x404 +/* 803A603C 003A2F9C 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803A6040: +/* 803A6040 003A2FA0 88 1D 02 10 */ lbz r0, 0x210(r29) +/* 803A6044 003A2FA4 7C 1B 00 40 */ cmplw r27, r0 +/* 803A6048 003A2FA8 41 80 FF B0 */ blt lbl_803A5FF8 +/* 803A604C 003A2FAC 48 00 0A B8 */ b lbl_803A6B04 +/* 803A6050 003A2FB0 88 1F 01 21 */ lbz r0, 0x121(r31) +/* 803A6054 003A2FB4 28 00 00 FF */ cmplwi r0, 0xff +/* 803A6058 003A2FB8 41 82 0A AC */ beq lbl_803A6B04 +/* 803A605C 003A2FBC 7F E3 FB 78 */ mr r3, r31 +/* 803A6060 003A2FC0 48 00 C4 0D */ bl sub_803b246c +/* 803A6064 003A2FC4 80 8D AE E0 */ lwz r4, lbl_805A9AA0@sda21(r13) +/* 803A6068 003A2FC8 54 63 CE 3E */ rlwinm r3, r3, 0x19, 0x18, 0x1f +/* 803A606C 003A2FCC 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f +/* 803A6070 003A2FD0 7C 03 00 40 */ cmplw r3, r0 +/* 803A6074 003A2FD4 41 80 0A 90 */ blt lbl_803A6B04 +/* 803A6078 003A2FD8 54 83 84 3E */ srwi r3, r4, 0x10 +/* 803A607C 003A2FDC 4B FF C4 81 */ bl dataGetMacro +/* 803A6080 003A2FE0 28 03 00 00 */ cmplwi r3, 0 +/* 803A6084 003A2FE4 41 82 0A 80 */ beq lbl_803A6B04 +/* 803A6088 003A2FE8 90 7F 00 34 */ stw r3, 0x34(r31) +/* 803A608C 003A2FEC 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A6090 003A2FF0 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c +/* 803A6094 003A2FF4 7C 03 02 14 */ add r0, r3, r0 +/* 803A6098 003A2FF8 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A609C 003A2FFC 48 00 0A 68 */ b lbl_803A6B04 +/* 803A60A0 003A3000 A0 9F 01 2C */ lhz r4, 0x12c(r31) +/* 803A60A4 003A3004 57 45 86 3E */ rlwinm r5, r26, 0x10, 0x18, 0x1f +/* 803A60A8 003A3008 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f +/* 803A60AC 003A300C 57 40 C2 1E */ rlwinm r0, r26, 0x18, 8, 0xf +/* 803A60B0 003A3010 7C 85 20 50 */ subf r4, r5, r4 +/* 803A60B4 003A3014 54 84 80 1E */ slwi r4, r4, 0x10 +/* 803A60B8 003A3018 7C 63 07 74 */ extsb r3, r3 +/* 803A60BC 003A301C 7C 64 19 D6 */ mullw r3, r4, r3 +/* 803A60C0 003A3020 7C 63 3E 70 */ srawi r3, r3, 7 +/* 803A60C4 003A3024 7C 63 02 15 */ add. r3, r3, r0 +/* 803A60C8 003A3028 40 80 00 0C */ bge lbl_803A60D4 +/* 803A60CC 003A302C 38 00 00 00 */ li r0, 0 +/* 803A60D0 003A3030 48 00 00 14 */ b lbl_803A60E4 +lbl_803A60D4: +/* 803A60D4 003A3034 3C 00 00 7F */ lis r0, 0x7f +/* 803A60D8 003A3038 7C 03 00 00 */ cmpw r3, r0 +/* 803A60DC 003A303C 41 81 00 08 */ bgt lbl_803A60E4 +/* 803A60E0 003A3040 7C 60 1B 78 */ mr r0, r3 +lbl_803A60E4: +/* 803A60E4 003A3044 90 1F 01 80 */ stw r0, 0x180(r31) +/* 803A60E8 003A3048 90 1F 01 70 */ stw r0, 0x170(r31) +/* 803A60EC 003A304C 48 00 0A 18 */ b lbl_803A6B04 +/* 803A60F0 003A3050 7F E3 FB 78 */ mr r3, r31 +/* 803A60F4 003A3054 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A60F8 003A3058 4B FF D5 5D */ bl mcmdSetADSR +/* 803A60FC 003A305C 48 00 0A 08 */ b lbl_803A6B04 +/* 803A6100 003A3060 7F E3 FB 78 */ mr r3, r31 +/* 803A6104 003A3064 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6108 003A3068 4B FF DC 85 */ bl mcmdScaleVolume +/* 803A610C 003A306C 48 00 09 F8 */ b lbl_803A6B04 +/* 803A6110 003A3070 7F E3 FB 78 */ mr r3, r31 +/* 803A6114 003A3074 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6118 003A3078 4B FF DB 3D */ bl sub_803a3c54 +/* 803A611C 003A307C 48 00 09 E8 */ b lbl_803A6B04 +/* 803A6120 003A3080 7F E3 FB 78 */ mr r3, r31 +/* 803A6124 003A3084 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6128 003A3088 4B FF DD 99 */ bl mcmdEnvelope +/* 803A612C 003A308C 48 00 09 D8 */ b lbl_803A6B04 +/* 803A6130 003A3090 7F E3 FB 78 */ mr r3, r31 +/* 803A6134 003A3094 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6138 003A3098 4B FF D0 05 */ bl sub_803a313c +/* 803A613C 003A309C 48 00 09 C8 */ b lbl_803A6B04 +/* 803A6140 003A30A0 80 1F 00 F4 */ lwz r0, 0xf4(r31) +/* 803A6144 003A30A4 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A6148 003A30A8 48 00 D2 45 */ bl hwBreak +/* 803A614C 003A30AC 48 00 09 B8 */ b lbl_803A6B04 +/* 803A6150 003A30B0 80 1F 01 18 */ lwz r0, 0x118(r31) +/* 803A6154 003A30B4 7F E3 FB 78 */ mr r3, r31 +/* 803A6158 003A30B8 60 00 00 80 */ ori r0, r0, 0x80 +/* 803A615C 003A30BC 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A6160 003A30C0 4B FF 49 81 */ bl sub_8039aae0 +/* 803A6164 003A30C4 48 00 09 A0 */ b lbl_803A6B04 +/* 803A6168 003A30C8 48 00 CC 39 */ bl sndRand +/* 803A616C 003A30CC 80 8D AE E0 */ lwz r4, lbl_805A9AA0@sda21(r13) +/* 803A6170 003A30D0 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 803A6174 003A30D4 54 80 C6 3E */ rlwinm r0, r4, 0x18, 0x18, 0x1f +/* 803A6178 003A30D8 7C 03 00 40 */ cmplw r3, r0 +/* 803A617C 003A30DC 41 80 09 88 */ blt lbl_803A6B04 +/* 803A6180 003A30E0 54 83 84 3E */ srwi r3, r4, 0x10 +/* 803A6184 003A30E4 4B FF C3 79 */ bl dataGetMacro +/* 803A6188 003A30E8 28 03 00 00 */ cmplwi r3, 0 +/* 803A618C 003A30EC 41 82 09 78 */ beq lbl_803A6B04 +/* 803A6190 003A30F0 90 7F 00 34 */ stw r3, 0x34(r31) +/* 803A6194 003A30F4 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A6198 003A30F8 54 00 1B 78 */ rlwinm r0, r0, 3, 0xd, 0x1c +/* 803A619C 003A30FC 7C 03 02 14 */ add r0, r3, r0 +/* 803A61A0 003A3100 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A61A4 003A3104 48 00 09 60 */ b lbl_803A6B04 +/* 803A61A8 003A3108 7F E3 FB 78 */ mr r3, r31 +/* 803A61AC 003A310C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A61B0 003A3110 4B FF DE 41 */ bl mcmdFadeIn +/* 803A61B4 003A3114 48 00 09 50 */ b lbl_803A6B04 +/* 803A61B8 003A3118 7F E3 FB 78 */ mr r3, r31 +/* 803A61BC 003A311C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A61C0 003A3120 4B FF DB 31 */ bl mcmdSetPanning +/* 803A61C4 003A3124 48 00 09 40 */ b lbl_803A6B04 +/* 803A61C8 003A3128 7F E3 FB 78 */ mr r3, r31 +/* 803A61CC 003A312C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A61D0 003A3130 4B FF D6 DD */ bl mcmdSetADSRFromCtrl +/* 803A61D4 003A3134 48 00 09 30 */ b lbl_803A6B04 +/* 803A61D8 003A3138 7F E3 FB 78 */ mr r3, r31 +/* 803A61DC 003A313C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A61E0 003A3140 4B FF DF 4D */ bl mcmdRandomKey +/* 803A61E4 003A3144 48 00 09 20 */ b lbl_803A6B04 +/* 803A61E8 003A3148 7F E3 FB 78 */ mr r3, r31 +/* 803A61EC 003A314C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A61F0 003A3150 4B FF CE 75 */ bl mcmdAddKey +/* 803A61F4 003A3154 7C 7E 1B 78 */ mr r30, r3 +/* 803A61F8 003A3158 48 00 09 0C */ b lbl_803A6B04 +/* 803A61FC 003A315C 57 40 C6 7E */ rlwinm r0, r26, 0x18, 0x19, 0x1f +/* 803A6200 003A3160 7F E3 FB 78 */ mr r3, r31 +/* 803A6204 003A3164 B0 1F 01 2C */ sth r0, 0x12c(r31) +/* 803A6208 003A3168 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A620C 003A316C 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A6210 003A3170 98 1F 01 2E */ stb r0, 0x12e(r31) +/* 803A6214 003A3174 48 00 2C 5D */ bl voiceIsLastStarted +/* 803A6218 003A3178 28 03 00 00 */ cmplwi r3, 0 +/* 803A621C 003A317C 41 82 00 18 */ beq lbl_803A6234 +/* 803A6220 003A3180 A0 1F 01 2C */ lhz r0, 0x12c(r31) +/* 803A6224 003A3184 88 7F 01 21 */ lbz r3, 0x121(r31) +/* 803A6228 003A3188 88 9F 01 22 */ lbz r4, 0x122(r31) +/* 803A622C 003A318C 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 803A6230 003A3190 48 00 BB BD */ bl inpSetMidiLastNote +lbl_803A6234: +/* 803A6234 003A3194 38 00 00 04 */ li r0, 4 +/* 803A6238 003A3198 7F E3 FB 78 */ mr r3, r31 +/* 803A623C 003A319C 90 0D AE E0 */ stw r0, lbl_805A9AA0@sda21(r13) +/* 803A6240 003A31A0 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6244 003A31A4 4B FF C7 81 */ bl mcmdWait +/* 803A6248 003A31A8 7C 7E 1B 78 */ mr r30, r3 +/* 803A624C 003A31AC 48 00 08 B8 */ b lbl_803A6B04 +/* 803A6250 003A31B0 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f +/* 803A6254 003A31B4 88 7F 01 30 */ lbz r3, 0x130(r31) +/* 803A6258 003A31B8 7C 00 07 74 */ extsb r0, r0 +/* 803A625C 003A31BC 7C 03 02 14 */ add r0, r3, r0 +/* 803A6260 003A31C0 B0 1F 01 2C */ sth r0, 0x12c(r31) +/* 803A6264 003A31C4 A0 7F 01 2C */ lhz r3, 0x12c(r31) +/* 803A6268 003A31C8 7C 60 07 35 */ extsh. r0, r3 +/* 803A626C 003A31CC 40 80 00 0C */ bge lbl_803A6278 +/* 803A6270 003A31D0 38 00 00 00 */ li r0, 0 +/* 803A6274 003A31D4 48 00 00 14 */ b lbl_803A6288 +lbl_803A6278: +/* 803A6278 003A31D8 28 03 00 7F */ cmplwi r3, 0x7f +/* 803A627C 003A31DC 38 00 00 7F */ li r0, 0x7f +/* 803A6280 003A31E0 41 81 00 08 */ bgt lbl_803A6288 +/* 803A6284 003A31E4 7C 60 1B 78 */ mr r0, r3 +lbl_803A6288: +/* 803A6288 003A31E8 B0 1F 01 2C */ sth r0, 0x12c(r31) +/* 803A628C 003A31EC 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A6290 003A31F0 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A6294 003A31F4 98 1F 01 2E */ stb r0, 0x12e(r31) +/* 803A6298 003A31F8 88 7F 01 21 */ lbz r3, 0x121(r31) +/* 803A629C 003A31FC 28 03 00 FF */ cmplwi r3, 0xff +/* 803A62A0 003A3200 41 82 00 14 */ beq lbl_803A62B4 +/* 803A62A4 003A3204 A0 1F 01 2C */ lhz r0, 0x12c(r31) +/* 803A62A8 003A3208 88 9F 01 22 */ lbz r4, 0x122(r31) +/* 803A62AC 003A320C 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 803A62B0 003A3210 48 00 BB 3D */ bl inpSetMidiLastNote +lbl_803A62B4: +/* 803A62B4 003A3214 38 00 00 04 */ li r0, 4 +/* 803A62B8 003A3218 7F E3 FB 78 */ mr r3, r31 +/* 803A62BC 003A321C 90 0D AE E0 */ stw r0, lbl_805A9AA0@sda21(r13) +/* 803A62C0 003A3220 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A62C4 003A3224 4B FF C7 01 */ bl mcmdWait +/* 803A62C8 003A3228 7C 7E 1B 78 */ mr r30, r3 +/* 803A62CC 003A322C 48 00 08 38 */ b lbl_803A6B04 +/* 803A62D0 003A3230 7F E3 FB 78 */ mr r3, r31 +/* 803A62D4 003A3234 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A62D8 003A3238 4B FF F0 1D */ bl mcmdPortamento +/* 803A62DC 003A323C 48 00 08 28 */ b lbl_803A6B04 +/* 803A62E0 003A3240 7F E3 FB 78 */ mr r3, r31 +/* 803A62E4 003A3244 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A62E8 003A3248 4B FF D0 51 */ bl mcmdVibrato +/* 803A62EC 003A324C 48 00 08 18 */ b lbl_803A6B04 +/* 803A62F0 003A3250 38 00 00 00 */ li r0, 0 +/* 803A62F4 003A3254 90 1F 01 A0 */ stw r0, 0x1a0(r31) +/* 803A62F8 003A3258 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A62FC 003A325C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f +/* 803A6300 003A3260 98 1F 01 B8 */ stb r0, 0x1b8(r31) +/* 803A6304 003A3264 88 1F 01 B8 */ lbz r0, 0x1b8(r31) +/* 803A6308 003A3268 54 00 80 1E */ slwi r0, r0, 0x10 +/* 803A630C 003A326C 90 1F 01 B0 */ stw r0, 0x1b0(r31) +/* 803A6310 003A3270 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A6314 003A3274 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A6318 003A3278 7C 03 07 35 */ extsh. r3, r0 +/* 803A631C 003A327C 41 80 00 0C */ blt lbl_803A6328 +/* 803A6320 003A3280 48 00 D9 ED */ bl hwFrq2Pitch +/* 803A6324 003A3284 48 00 00 10 */ b lbl_803A6334 +lbl_803A6328: +/* 803A6328 003A3288 7C 63 00 D0 */ neg r3, r3 +/* 803A632C 003A328C 48 00 D9 E1 */ bl hwFrq2Pitch +/* 803A6330 003A3290 7C 63 00 D0 */ neg r3, r3 +lbl_803A6334: +/* 803A6334 003A3294 54 63 80 1E */ slwi r3, r3, 0x10 +/* 803A6338 003A3298 38 00 00 00 */ li r0, 0 +/* 803A633C 003A329C 90 7F 01 A8 */ stw r3, 0x1a8(r31) +/* 803A6340 003A32A0 7F E3 FB 78 */ mr r3, r31 +/* 803A6344 003A32A4 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6348 003A32A8 90 0D AE E0 */ stw r0, lbl_805A9AA0@sda21(r13) +/* 803A634C 003A32AC 4B FF C6 79 */ bl mcmdWait +/* 803A6350 003A32B0 7C 7E 1B 78 */ mr r30, r3 +/* 803A6354 003A32B4 48 00 07 B0 */ b lbl_803A6B04 +/* 803A6358 003A32B8 38 00 00 00 */ li r0, 0 +/* 803A635C 003A32BC 90 1F 01 A4 */ stw r0, 0x1a4(r31) +/* 803A6360 003A32C0 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A6364 003A32C4 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f +/* 803A6368 003A32C8 98 1F 01 B9 */ stb r0, 0x1b9(r31) +/* 803A636C 003A32CC 88 1F 01 B9 */ lbz r0, 0x1b9(r31) +/* 803A6370 003A32D0 54 00 80 1E */ slwi r0, r0, 0x10 +/* 803A6374 003A32D4 90 1F 01 B4 */ stw r0, 0x1b4(r31) +/* 803A6378 003A32D8 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A637C 003A32DC 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A6380 003A32E0 7C 03 07 35 */ extsh. r3, r0 +/* 803A6384 003A32E4 41 80 00 0C */ blt lbl_803A6390 +/* 803A6388 003A32E8 48 00 D9 85 */ bl hwFrq2Pitch +/* 803A638C 003A32EC 48 00 00 10 */ b lbl_803A639C +lbl_803A6390: +/* 803A6390 003A32F0 7C 63 00 D0 */ neg r3, r3 +/* 803A6394 003A32F4 48 00 D9 79 */ bl hwFrq2Pitch +/* 803A6398 003A32F8 7C 63 00 D0 */ neg r3, r3 +lbl_803A639C: +/* 803A639C 003A32FC 54 63 80 1E */ slwi r3, r3, 0x10 +/* 803A63A0 003A3300 38 00 00 00 */ li r0, 0 +/* 803A63A4 003A3304 90 7F 01 AC */ stw r3, 0x1ac(r31) +/* 803A63A8 003A3308 7F E3 FB 78 */ mr r3, r31 +/* 803A63AC 003A330C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A63B0 003A3310 90 0D AE E0 */ stw r0, lbl_805A9AA0@sda21(r13) +/* 803A63B4 003A3314 4B FF C6 11 */ bl mcmdWait +/* 803A63B8 003A3318 7C 7E 1B 78 */ mr r30, r3 +/* 803A63BC 003A331C 48 00 07 48 */ b lbl_803A6B04 +/* 803A63C0 003A3320 57 40 C2 3E */ srwi r0, r26, 8 +/* 803A63C4 003A3324 90 1F 01 28 */ stw r0, 0x128(r31) +/* 803A63C8 003A3328 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A63CC 003A332C 80 7F 01 28 */ lwz r3, 0x128(r31) +/* 803A63D0 003A3330 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803A63D4 003A3334 7C 60 03 78 */ or r0, r3, r0 +/* 803A63D8 003A3338 90 1F 01 28 */ stw r0, 0x128(r31) +/* 803A63DC 003A333C 80 7F 01 24 */ lwz r3, 0x124(r31) +/* 803A63E0 003A3340 3C 03 00 01 */ addis r0, r3, 1 +/* 803A63E4 003A3344 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A63E8 003A3348 41 82 07 1C */ beq lbl_803A6B04 +/* 803A63EC 003A334C 7F E3 FB 78 */ mr r3, r31 +/* 803A63F0 003A3350 4B FF D0 C5 */ bl DoSetPitch +/* 803A63F4 003A3354 48 00 07 10 */ b lbl_803A6B04 +/* 803A63F8 003A3358 7F E3 FB 78 */ mr r3, r31 +/* 803A63FC 003A335C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6400 003A3360 4B FF D5 D9 */ bl mcmdSetPitchADSR +/* 803A6404 003A3364 48 00 07 00 */ b lbl_803A6B04 +/* 803A6408 003A3368 57 40 46 3F */ rlwinm. r0, r26, 8, 0x18, 0x1f +/* 803A640C 003A336C 57 43 C4 3E */ rlwinm r3, r26, 0x18, 0x10, 0x1f +/* 803A6410 003A3370 40 82 00 1C */ bne lbl_803A642C +/* 803A6414 003A3374 80 1F 01 54 */ lwz r0, 0x154(r31) +/* 803A6418 003A3378 54 00 D9 7E */ srwi r0, r0, 5 +/* 803A641C 003A337C 7C 00 19 D6 */ mullw r0, r0, r3 +/* 803A6420 003A3380 54 00 C9 FE */ srwi r0, r0, 7 +/* 803A6424 003A3384 90 1F 01 54 */ stw r0, 0x154(r31) +/* 803A6428 003A3388 48 00 00 18 */ b lbl_803A6440 +lbl_803A642C: +/* 803A642C 003A338C 80 1F 01 58 */ lwz r0, 0x158(r31) +/* 803A6430 003A3390 54 00 D9 7E */ srwi r0, r0, 5 +/* 803A6434 003A3394 7C 00 19 D6 */ mullw r0, r0, r3 +/* 803A6438 003A3398 54 00 C9 FE */ srwi r0, r0, 7 +/* 803A643C 003A339C 90 1F 01 54 */ stw r0, 0x154(r31) +lbl_803A6440: +/* 803A6440 003A33A0 80 7F 01 54 */ lwz r3, 0x154(r31) +/* 803A6444 003A33A4 3C 00 00 7F */ lis r0, 0x7f +/* 803A6448 003A33A8 7C 03 00 40 */ cmplw r3, r0 +/* 803A644C 003A33AC 40 81 00 08 */ ble lbl_803A6454 +/* 803A6450 003A33B0 90 1F 01 54 */ stw r0, 0x154(r31) +lbl_803A6454: +/* 803A6454 003A33B4 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A6458 003A33B8 60 00 10 00 */ ori r0, r0, 0x1000 +/* 803A645C 003A33BC 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A6460 003A33C0 48 00 06 A4 */ b lbl_803A6B04 +/* 803A6464 003A33C4 57 40 C2 3E */ srwi r0, r26, 8 +/* 803A6468 003A33C8 7C 00 07 74 */ extsb r0, r0 +/* 803A646C 003A33CC 54 00 40 2E */ slwi r0, r0, 8 +/* 803A6470 003A33D0 B0 1F 01 50 */ sth r0, 0x150(r31) +/* 803A6474 003A33D4 A8 9F 01 50 */ lha r4, 0x150(r31) +/* 803A6478 003A33D8 2C 04 00 00 */ cmpwi r4, 0 +/* 803A647C 003A33DC 41 80 00 38 */ blt lbl_803A64B4 +/* 803A6480 003A33E0 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A6484 003A33E4 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A6488 003A33E8 38 63 85 1F */ addi r3, r3, 0x51EB851F@l +/* 803A648C 003A33EC 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A6490 003A33F0 7C 00 07 74 */ extsb r0, r0 +/* 803A6494 003A33F4 54 00 40 2E */ slwi r0, r0, 8 +/* 803A6498 003A33F8 7C 03 00 96 */ mulhw r0, r3, r0 +/* 803A649C 003A33FC 7C 00 2E 70 */ srawi r0, r0, 5 +/* 803A64A0 003A3400 54 03 0F FE */ srwi r3, r0, 0x1f +/* 803A64A4 003A3404 7C 00 1A 14 */ add r0, r0, r3 +/* 803A64A8 003A3408 7C 04 02 14 */ add r0, r4, r0 +/* 803A64AC 003A340C B0 1F 01 50 */ sth r0, 0x150(r31) +/* 803A64B0 003A3410 48 00 06 54 */ b lbl_803A6B04 +lbl_803A64B4: +/* 803A64B4 003A3414 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A64B8 003A3418 3C 60 51 EC */ lis r3, 0x51EB851F@ha +/* 803A64BC 003A341C 38 63 85 1F */ addi r3, r3, 0x51EB851F@l +/* 803A64C0 003A3420 54 00 84 3E */ srwi r0, r0, 0x10 +/* 803A64C4 003A3424 7C 00 07 74 */ extsb r0, r0 +/* 803A64C8 003A3428 54 00 40 2E */ slwi r0, r0, 8 +/* 803A64CC 003A342C 7C 03 00 96 */ mulhw r0, r3, r0 +/* 803A64D0 003A3430 7C 00 2E 70 */ srawi r0, r0, 5 +/* 803A64D4 003A3434 54 03 0F FE */ srwi r3, r0, 0x1f +/* 803A64D8 003A3438 7C 00 1A 14 */ add r0, r0, r3 +/* 803A64DC 003A343C 7C 00 20 50 */ subf r0, r0, r4 +/* 803A64E0 003A3440 B0 1F 01 50 */ sth r0, 0x150(r31) +/* 803A64E4 003A3444 48 00 06 20 */ b lbl_803A6B04 +/* 803A64E8 003A3448 57 40 C4 3E */ rlwinm r0, r26, 0x18, 0x10, 0x1f +/* 803A64EC 003A344C C0 02 D5 8C */ lfs f0, lbl_805AF2AC@sda21(r2) +/* 803A64F0 003A3450 B0 1F 01 6C */ sth r0, 0x16c(r31) +/* 803A64F4 003A3454 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A64F8 003A3458 B0 1F 01 6E */ sth r0, 0x16e(r31) +/* 803A64FC 003A345C D0 1F 01 68 */ stfs f0, 0x168(r31) +/* 803A6500 003A3460 48 00 06 04 */ b lbl_803A6B04 +/* 803A6504 003A3464 88 1F 00 8C */ lbz r0, 0x8c(r31) +/* 803A6508 003A3468 28 00 00 00 */ cmplwi r0, 0 +/* 803A650C 003A346C 41 82 05 F8 */ beq lbl_803A6B04 +/* 803A6510 003A3470 88 1F 00 8D */ lbz r0, 0x8d(r31) +/* 803A6514 003A3474 54 03 18 38 */ slwi r3, r0, 3 +/* 803A6518 003A3478 38 03 00 6C */ addi r0, r3, 0x6c +/* 803A651C 003A347C 7C 1F 00 2E */ lwzx r0, r31, r0 +/* 803A6520 003A3480 90 1F 00 34 */ stw r0, 0x34(r31) +/* 803A6524 003A3484 88 1F 00 8D */ lbz r0, 0x8d(r31) +/* 803A6528 003A3488 54 03 18 38 */ slwi r3, r0, 3 +/* 803A652C 003A348C 38 03 00 70 */ addi r0, r3, 0x70 +/* 803A6530 003A3490 7C 1F 00 2E */ lwzx r0, r31, r0 +/* 803A6534 003A3494 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A6538 003A3498 88 7F 00 8D */ lbz r3, 0x8d(r31) +/* 803A653C 003A349C 38 03 FF FF */ addi r0, r3, -1 +/* 803A6540 003A34A0 54 00 07 BE */ clrlwi r0, r0, 0x1e +/* 803A6544 003A34A4 98 1F 00 8D */ stb r0, 0x8d(r31) +/* 803A6548 003A34A8 88 7F 00 8C */ lbz r3, 0x8c(r31) +/* 803A654C 003A34AC 38 03 FF FF */ addi r0, r3, -1 +/* 803A6550 003A34B0 98 1F 00 8C */ stb r0, 0x8c(r31) +/* 803A6554 003A34B4 48 00 05 B0 */ b lbl_803A6B04 +/* 803A6558 003A34B8 7F E3 FB 78 */ mr r3, r31 +/* 803A655C 003A34BC 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6560 003A34C0 4B FF C7 55 */ bl mcmdGosub +/* 803A6564 003A34C4 7C 7E 1B 78 */ mr r30, r3 +/* 803A6568 003A34C8 48 00 05 9C */ b lbl_803A6B04 +/* 803A656C 003A34CC 57 43 84 3E */ srwi r3, r26, 0x10 +/* 803A6570 003A34D0 4B FF BF 8D */ bl dataGetMacro +/* 803A6574 003A34D4 28 03 00 00 */ cmplwi r3, 0 +/* 803A6578 003A34D8 41 82 05 8C */ beq lbl_803A6B04 +/* 803A657C 003A34DC 80 AD AE E0 */ lwz r5, lbl_805A9AA0@sda21(r13) +/* 803A6580 003A34E0 38 00 00 01 */ li r0, 1 +/* 803A6584 003A34E4 54 A4 D5 BA */ rlwinm r4, r5, 0x1a, 0x16, 0x1d +/* 803A6588 003A34E8 54 A5 C6 3F */ rlwinm. r5, r5, 0x18, 0x18, 0x1f +/* 803A658C 003A34EC 7C DF 22 14 */ add r6, r31, r4 +/* 803A6590 003A34F0 90 66 00 50 */ stw r3, 0x50(r6) +/* 803A6594 003A34F4 80 9C 00 04 */ lwz r4, 4(r28) +/* 803A6598 003A34F8 54 84 1B 78 */ rlwinm r4, r4, 3, 0xd, 0x1c +/* 803A659C 003A34FC 7C 63 22 14 */ add r3, r3, r4 +/* 803A65A0 003A3500 90 66 00 5C */ stw r3, 0x5c(r6) +/* 803A65A4 003A3504 98 1F 00 68 */ stb r0, 0x68(r31) +/* 803A65A8 003A3508 40 82 05 5C */ bne lbl_803A6B04 +/* 803A65AC 003A350C 80 9F 01 14 */ lwz r4, 0x114(r31) +/* 803A65B0 003A3510 38 C0 01 00 */ li r6, 0x100 +/* 803A65B4 003A3514 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A65B8 003A3518 38 E0 00 08 */ li r7, 8 +/* 803A65BC 003A351C 7C C0 20 38 */ and r0, r6, r4 +/* 803A65C0 003A3520 7C E3 28 38 */ and r3, r7, r5 +/* 803A65C4 003A3524 7C E3 1A 78 */ xor r3, r7, r3 +/* 803A65C8 003A3528 7C C0 02 78 */ xor r0, r6, r0 +/* 803A65CC 003A352C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A65D0 003A3530 40 82 05 34 */ bne lbl_803A6B04 +/* 803A65D4 003A3534 90 BF 01 18 */ stw r5, 0x118(r31) +/* 803A65D8 003A3538 60 80 04 00 */ ori r0, r4, 0x400 +/* 803A65DC 003A353C 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A65E0 003A3540 48 00 05 24 */ b lbl_803A6B04 +/* 803A65E4 003A3544 57 43 D5 BA */ rlwinm r3, r26, 0x1a, 0x16, 0x1d +/* 803A65E8 003A3548 38 80 00 00 */ li r4, 0 +/* 803A65EC 003A354C 38 03 00 50 */ addi r0, r3, 0x50 +/* 803A65F0 003A3550 7C 9F 01 2E */ stwx r4, r31, r0 +/* 803A65F4 003A3554 48 00 00 1C */ b lbl_803A6610 +lbl_803A65F8: +/* 803A65F8 003A3558 54 83 15 BA */ rlwinm r3, r4, 2, 0x16, 0x1d +/* 803A65FC 003A355C 38 03 00 50 */ addi r0, r3, 0x50 +/* 803A6600 003A3560 7C 1F 00 2E */ lwzx r0, r31, r0 +/* 803A6604 003A3564 28 00 00 00 */ cmplwi r0, 0 +/* 803A6608 003A3568 40 82 04 FC */ bne lbl_803A6B04 +/* 803A660C 003A356C 38 84 00 01 */ addi r4, r4, 1 +lbl_803A6610: +/* 803A6610 003A3570 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803A6614 003A3574 28 00 00 03 */ cmplwi r0, 3 +/* 803A6618 003A3578 41 80 FF E0 */ blt lbl_803A65F8 +/* 803A661C 003A357C 38 00 00 00 */ li r0, 0 +/* 803A6620 003A3580 98 1F 00 68 */ stb r0, 0x68(r31) +/* 803A6624 003A3584 48 00 04 E0 */ b lbl_803A6B04 +/* 803A6628 003A3588 7F E3 FB 78 */ mr r3, r31 +/* 803A662C 003A358C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6630 003A3590 4B FF F1 FD */ bl mcmdSendMessage +/* 803A6634 003A3594 48 00 04 D0 */ b lbl_803A6B04 +/* 803A6638 003A3598 88 1F 03 EC */ lbz r0, 0x3ec(r31) +/* 803A663C 003A359C 38 A0 00 00 */ li r5, 0 +/* 803A6640 003A35A0 28 00 00 00 */ cmplwi r0, 0 +/* 803A6644 003A35A4 41 82 00 2C */ beq lbl_803A6670 +/* 803A6648 003A35A8 88 9F 03 ED */ lbz r4, 0x3ed(r31) +/* 803A664C 003A35AC 54 83 15 BA */ rlwinm r3, r4, 2, 0x16, 0x1d +/* 803A6650 003A35B0 38 04 00 01 */ addi r0, r4, 1 +/* 803A6654 003A35B4 38 63 03 F0 */ addi r3, r3, 0x3f0 +/* 803A6658 003A35B8 7C BF 18 2E */ lwzx r5, r31, r3 +/* 803A665C 003A35BC 54 00 07 BE */ clrlwi r0, r0, 0x1e +/* 803A6660 003A35C0 98 1F 03 ED */ stb r0, 0x3ed(r31) +/* 803A6664 003A35C4 88 7F 03 EC */ lbz r3, 0x3ec(r31) +/* 803A6668 003A35C8 38 03 FF FF */ addi r0, r3, -1 +/* 803A666C 003A35CC 98 1F 03 EC */ stb r0, 0x3ec(r31) +lbl_803A6670: +/* 803A6670 003A35D0 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A6674 003A35D4 54 00 C6 FE */ rlwinm r0, r0, 0x18, 0x1b, 0x1f +/* 803A6678 003A35D8 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A667C 003A35DC 40 80 00 14 */ bge lbl_803A6690 +/* 803A6680 003A35E0 54 03 15 BA */ rlwinm r3, r0, 2, 0x16, 0x1d +/* 803A6684 003A35E4 38 03 00 AC */ addi r0, r3, 0xac +/* 803A6688 003A35E8 7C BF 01 2E */ stwx r5, r31, r0 +/* 803A668C 003A35EC 48 00 04 78 */ b lbl_803A6B04 +lbl_803A6690: +/* 803A6690 003A35F0 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A6694 003A35F4 54 04 15 BA */ rlwinm r4, r0, 2, 0x16, 0x1d +/* 803A6698 003A35F8 38 03 0A B4 */ addi r0, r3, lbl_80550AB4@l +/* 803A669C 003A35FC 7C 60 22 14 */ add r3, r0, r4 +/* 803A66A0 003A3600 90 A3 FF C0 */ stw r5, -0x40(r3) +/* 803A66A4 003A3604 48 00 04 60 */ b lbl_803A6B04 +/* 803A66A8 003A3608 7F E3 FB 78 */ mr r3, r31 +/* 803A66AC 003A360C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A66B0 003A3610 4B FF F3 C1 */ bl mcmdGetVID +/* 803A66B4 003A3614 48 00 04 50 */ b lbl_803A6B04 +/* 803A66B8 003A3618 80 7F 01 10 */ lwz r3, 0x110(r31) +/* 803A66BC 003A361C 57 40 84 3E */ srwi r0, r26, 0x10 +/* 803A66C0 003A3620 7C 00 07 34 */ extsh r0, r0 +/* 803A66C4 003A3624 54 63 8B FE */ srwi r3, r3, 0xf +/* 803A66C8 003A3628 7C 83 02 15 */ add. r4, r3, r0 +/* 803A66CC 003A362C 40 80 00 10 */ bge lbl_803A66DC +/* 803A66D0 003A3630 38 00 00 00 */ li r0, 0 +/* 803A66D4 003A3634 90 1F 01 10 */ stw r0, 0x110(r31) +/* 803A66D8 003A3638 48 00 00 2C */ b lbl_803A6704 +lbl_803A66DC: +/* 803A66DC 003A363C 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 803A66E0 003A3640 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l +/* 803A66E4 003A3644 7C 04 00 00 */ cmpw r4, r0 +/* 803A66E8 003A3648 40 81 00 14 */ ble lbl_803A66FC +/* 803A66EC 003A364C 3C 60 80 00 */ lis r3, 0x7FFF8000@ha +/* 803A66F0 003A3650 38 03 80 00 */ addi r0, r3, 0x7FFF8000@l +/* 803A66F4 003A3654 90 1F 01 10 */ stw r0, 0x110(r31) +/* 803A66F8 003A3658 48 00 00 0C */ b lbl_803A6704 +lbl_803A66FC: +/* 803A66FC 003A365C 54 80 78 20 */ slwi r0, r4, 0xf +/* 803A6700 003A3660 90 1F 01 10 */ stw r0, 0x110(r31) +lbl_803A6704: +/* 803A6704 003A3664 80 1F 01 10 */ lwz r0, 0x110(r31) +/* 803A6708 003A3668 80 7F 00 F4 */ lwz r3, 0xf4(r31) +/* 803A670C 003A366C 88 BF 01 0C */ lbz r5, 0x10c(r31) +/* 803A6710 003A3670 54 04 8B FE */ srwi r4, r0, 0xf +/* 803A6714 003A3674 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 803A6718 003A3678 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 +/* 803A671C 003A367C 48 00 CA A9 */ bl hwSetPriority +/* 803A6720 003A3680 48 00 03 E4 */ b lbl_803A6B04 +/* 803A6724 003A3684 57 40 F8 60 */ rlwinm r0, r26, 0x1f, 1, 0x10 +/* 803A6728 003A3688 90 1F 01 10 */ stw r0, 0x110(r31) +/* 803A672C 003A368C 80 1F 01 10 */ lwz r0, 0x110(r31) +/* 803A6730 003A3690 80 7F 00 F4 */ lwz r3, 0xf4(r31) +/* 803A6734 003A3694 88 BF 01 0C */ lbz r5, 0x10c(r31) +/* 803A6738 003A3698 54 04 8B FE */ srwi r4, r0, 0xf +/* 803A673C 003A369C 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 803A6740 003A36A0 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 +/* 803A6744 003A36A4 48 00 CA 81 */ bl hwSetPriority +/* 803A6748 003A36A8 48 00 03 BC */ b lbl_803A6B04 +/* 803A674C 003A36AC 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A6750 003A36B0 57 44 86 3E */ rlwinm r4, r26, 0x10, 0x18, 0x1f +/* 803A6754 003A36B4 57 40 D5 BA */ rlwinm r0, r26, 0x1a, 0x16, 0x1d +/* 803A6758 003A36B8 38 63 0A B4 */ addi r3, r3, lbl_80550AB4@l +/* 803A675C 003A36BC 7C 83 01 2E */ stwx r4, r3, r0 +/* 803A6760 003A36C0 48 00 03 A4 */ b lbl_803A6B04 +/* 803A6764 003A36C4 57 40 86 3E */ rlwinm r0, r26, 0x10, 0x18, 0x1f +/* 803A6768 003A36C8 98 1F 01 D6 */ stb r0, 0x1d6(r31) +/* 803A676C 003A36CC 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A6770 003A36D0 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f +/* 803A6774 003A36D4 98 1F 01 D7 */ stb r0, 0x1d7(r31) +/* 803A6778 003A36D8 48 00 03 8C */ b lbl_803A6B04 +/* 803A677C 003A36DC 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f +/* 803A6780 003A36E0 98 1F 01 90 */ stb r0, 0x190(r31) +/* 803A6784 003A36E4 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A6788 003A36E8 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f +/* 803A678C 003A36EC 98 1F 01 91 */ stb r0, 0x191(r31) +/* 803A6790 003A36F0 48 00 03 74 */ b lbl_803A6B04 +/* 803A6794 003A36F4 80 9F 01 18 */ lwz r4, 0x118(r31) +/* 803A6798 003A36F8 3C 00 00 01 */ lis r0, 1 +/* 803A679C 003A36FC 7C 80 03 78 */ or r0, r4, r0 +/* 803A67A0 003A3700 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A67A4 003A3704 48 00 03 60 */ b lbl_803A6B04 +/* 803A67A8 003A3708 7F E3 FB 78 */ mr r3, r31 +/* 803A67AC 003A370C 57 44 C6 3E */ rlwinm r4, r26, 0x18, 0x18, 0x1f +/* 803A67B0 003A3710 48 00 14 49 */ bl voiceSetPriority +/* 803A67B4 003A3714 48 00 03 50 */ b lbl_803A6B04 +/* 803A67B8 003A3718 57 40 84 3E */ srwi r0, r26, 0x10 +/* 803A67BC 003A371C 88 9F 01 0C */ lbz r4, 0x10c(r31) +/* 803A67C0 003A3720 7C 00 07 34 */ extsh r0, r0 +/* 803A67C4 003A3724 7F E3 FB 78 */ mr r3, r31 +/* 803A67C8 003A3728 7C 04 02 14 */ add r0, r4, r0 +/* 803A67CC 003A372C 7C 04 07 35 */ extsh. r4, r0 +/* 803A67D0 003A3730 40 80 00 0C */ bge lbl_803A67DC +/* 803A67D4 003A3734 38 00 00 00 */ li r0, 0 +/* 803A67D8 003A3738 48 00 00 14 */ b lbl_803A67EC +lbl_803A67DC: +/* 803A67DC 003A373C 2C 04 00 FF */ cmpwi r4, 0xff +/* 803A67E0 003A3740 38 00 00 FF */ li r0, 0xff +/* 803A67E4 003A3744 41 81 00 08 */ bgt lbl_803A67EC +/* 803A67E8 003A3748 7C 80 23 78 */ mr r0, r4 +lbl_803A67EC: +/* 803A67EC 003A374C 54 04 06 3E */ clrlwi r4, r0, 0x18 +/* 803A67F0 003A3750 48 00 14 09 */ bl voiceSetPriority +/* 803A67F4 003A3754 48 00 03 10 */ b lbl_803A6B04 +/* 803A67F8 003A3758 80 7C 00 04 */ lwz r3, 4(r28) +/* 803A67FC 003A375C 28 03 00 00 */ cmplwi r3, 0 +/* 803A6800 003A3760 41 82 00 18 */ beq lbl_803A6818 +/* 803A6804 003A3764 80 1F 01 10 */ lwz r0, 0x110(r31) +/* 803A6808 003A3768 54 00 C2 3E */ srwi r0, r0, 8 +/* 803A680C 003A376C 7C 00 1B 96 */ divwu r0, r0, r3 +/* 803A6810 003A3770 B0 1F 01 0E */ sth r0, 0x10e(r31) +/* 803A6814 003A3774 48 00 02 F0 */ b lbl_803A6B04 +lbl_803A6818: +/* 803A6818 003A3778 38 00 00 00 */ li r0, 0 +/* 803A681C 003A377C B0 1F 01 0E */ sth r0, 0x10e(r31) +/* 803A6820 003A3780 48 00 02 E4 */ b lbl_803A6B04 +/* 803A6824 003A3784 80 9F 01 54 */ lwz r4, 0x154(r31) +/* 803A6828 003A3788 57 45 84 3E */ srwi r5, r26, 0x10 +/* 803A682C 003A378C 80 7C 00 04 */ lwz r3, 4(r28) +/* 803A6830 003A3790 3C 00 75 30 */ lis r0, 0x7530 +/* 803A6834 003A3794 54 84 86 3E */ rlwinm r4, r4, 0x10, 0x18, 0x1f +/* 803A6838 003A3798 54 63 04 3E */ clrlwi r3, r3, 0x10 +/* 803A683C 003A379C 7C 63 21 D6 */ mullw r3, r3, r4 +/* 803A6840 003A37A0 7C 63 3E 70 */ srawi r3, r3, 7 +/* 803A6844 003A37A4 7C 65 1A 14 */ add r3, r5, r3 +/* 803A6848 003A37A8 28 03 EA 60 */ cmplwi r3, 0xea60 +/* 803A684C 003A37AC 41 81 00 08 */ bgt lbl_803A6854 +/* 803A6850 003A37B0 54 60 78 20 */ slwi r0, r3, 0xf +lbl_803A6854: +/* 803A6854 003A37B4 90 1F 01 10 */ stw r0, 0x110(r31) +/* 803A6858 003A37B8 80 1F 01 10 */ lwz r0, 0x110(r31) +/* 803A685C 003A37BC 80 7F 00 F4 */ lwz r3, 0xf4(r31) +/* 803A6860 003A37C0 88 BF 01 0C */ lbz r5, 0x10c(r31) +/* 803A6864 003A37C4 54 04 8B FE */ srwi r4, r0, 0xf +/* 803A6868 003A37C8 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 803A686C 003A37CC 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7 +/* 803A6870 003A37D0 48 00 C9 55 */ bl hwSetPriority +/* 803A6874 003A37D4 48 00 02 90 */ b lbl_803A6B04 +/* 803A6878 003A37D8 7F E3 FB 78 */ mr r3, r31 +/* 803A687C 003A37DC 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6880 003A37E0 4B FF DA 49 */ bl sub_803a42c8 +/* 803A6884 003A37E4 48 00 02 80 */ b lbl_803A6B04 +/* 803A6888 003A37E8 7F E3 FB 78 */ mr r3, r31 +/* 803A688C 003A37EC 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6890 003A37F0 4B FF DB 3D */ bl sub_803a43cc +/* 803A6894 003A37F4 48 00 02 70 */ b lbl_803A6B04 +/* 803A6898 003A37F8 7F E3 FB 78 */ mr r3, r31 +/* 803A689C 003A37FC 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A68A0 003A3800 4B FF DC 31 */ bl sub_803a44d0 +/* 803A68A4 003A3804 48 00 02 60 */ b lbl_803A6B04 +/* 803A68A8 003A3808 7F E3 FB 78 */ mr r3, r31 +/* 803A68AC 003A380C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A68B0 003A3810 4B FF DD 25 */ bl sub_803a45d4 +/* 803A68B4 003A3814 48 00 02 50 */ b lbl_803A6B04 +/* 803A68B8 003A3818 7F E3 FB 78 */ mr r3, r31 +/* 803A68BC 003A381C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A68C0 003A3820 4B FF DE 19 */ bl sub_803a46d8 +/* 803A68C4 003A3824 48 00 02 40 */ b lbl_803A6B04 +/* 803A68C8 003A3828 7F E3 FB 78 */ mr r3, r31 +/* 803A68CC 003A382C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A68D0 003A3830 4B FF DF 0D */ bl sub_803a47dc +/* 803A68D4 003A3834 48 00 02 30 */ b lbl_803A6B04 +/* 803A68D8 003A3838 7F E3 FB 78 */ mr r3, r31 +/* 803A68DC 003A383C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A68E0 003A3840 4B FF E0 01 */ bl sub_803a48e0 +/* 803A68E4 003A3844 48 00 02 20 */ b lbl_803A6B04 +/* 803A68E8 003A3848 7F E3 FB 78 */ mr r3, r31 +/* 803A68EC 003A384C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A68F0 003A3850 4B FF E4 01 */ bl sub_803a4cf0 +/* 803A68F4 003A3854 48 00 02 10 */ b lbl_803A6B04 +/* 803A68F8 003A3858 7F E3 FB 78 */ mr r3, r31 +/* 803A68FC 003A385C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6900 003A3860 4B FF E4 F5 */ bl sub_803a4df4 +/* 803A6904 003A3864 48 00 02 00 */ b lbl_803A6B04 +/* 803A6908 003A3868 7F E3 FB 78 */ mr r3, r31 +/* 803A690C 003A386C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6910 003A3870 4B FF E5 E9 */ bl sub_803a4ef8 +/* 803A6914 003A3874 48 00 01 F0 */ b lbl_803A6B04 +/* 803A6918 003A3878 7F E3 FB 78 */ mr r3, r31 +/* 803A691C 003A387C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6920 003A3880 4B FF E0 C5 */ bl sub_803a49e4 +/* 803A6924 003A3884 48 00 01 E0 */ b lbl_803A6B04 +/* 803A6928 003A3888 7F E3 FB 78 */ mr r3, r31 +/* 803A692C 003A388C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6930 003A3890 4B FF E1 B9 */ bl sub_803a4ae8 +/* 803A6934 003A3894 48 00 01 D0 */ b lbl_803A6B04 +/* 803A6938 003A3898 7F E3 FB 78 */ mr r3, r31 +/* 803A693C 003A389C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6940 003A38A0 4B FF E2 AD */ bl mcmdVolumeSelect +/* 803A6944 003A38A4 48 00 01 C0 */ b lbl_803A6B04 +/* 803A6948 003A38A8 7F E3 FB 78 */ mr r3, r31 +/* 803A694C 003A38AC 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6950 003A38B0 4B FF E6 AD */ bl sub_803a4ffc +/* 803A6954 003A38B4 48 00 01 B0 */ b lbl_803A6B04 +/* 803A6958 003A38B8 7F E3 FB 78 */ mr r3, r31 +/* 803A695C 003A38BC 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6960 003A38C0 4B FF E8 19 */ bl mcmdAuxAFXSelect +/* 803A6964 003A38C4 48 00 01 A0 */ b lbl_803A6B04 +/* 803A6968 003A38C8 57 40 84 3E */ srwi r0, r26, 0x10 +/* 803A696C 003A38CC 38 61 00 08 */ addi r3, r1, 8 +/* 803A6970 003A38D0 90 01 00 08 */ stw r0, 8(r1) +/* 803A6974 003A38D4 48 00 C5 79 */ bl dGeomDisable +/* 803A6978 003A38D8 57 40 C6 3E */ rlwinm r0, r26, 0x18, 0x18, 0x1f +/* 803A697C 003A38DC 1C 00 00 0C */ mulli r0, r0, 0xc +/* 803A6980 003A38E0 7F 3F 02 14 */ add r25, r31, r0 +/* 803A6984 003A38E4 80 19 01 C0 */ lwz r0, 0x1c0(r25) +/* 803A6988 003A38E8 28 00 00 00 */ cmplwi r0, 0 +/* 803A698C 003A38EC 41 82 00 20 */ beq lbl_803A69AC +/* 803A6990 003A38F0 80 1C 00 04 */ lwz r0, 4(r28) +/* 803A6994 003A38F4 38 61 00 0C */ addi r3, r1, 0xc +/* 803A6998 003A38F8 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 803A699C 003A38FC 90 01 00 0C */ stw r0, 0xc(r1) +/* 803A69A0 003A3900 48 00 C5 4D */ bl dGeomDisable +/* 803A69A4 003A3904 80 01 00 0C */ lwz r0, 0xc(r1) +/* 803A69A8 003A3908 90 19 01 BC */ stw r0, 0x1bc(r25) +lbl_803A69AC: +/* 803A69AC 003A390C 80 01 00 08 */ lwz r0, 8(r1) +/* 803A69B0 003A3910 90 19 01 C0 */ stw r0, 0x1c0(r25) +/* 803A69B4 003A3914 48 00 01 50 */ b lbl_803A6B04 +/* 803A69B8 003A3918 57 43 C6 3E */ rlwinm r3, r26, 0x18, 0x18, 0x1f +/* 803A69BC 003A391C 7C 03 00 D0 */ neg r0, r3 +/* 803A69C0 003A3920 7C 00 1B 78 */ or r0, r0, r3 +/* 803A69C4 003A3924 54 00 0F FE */ srwi r0, r0, 0x1f +/* 803A69C8 003A3928 98 1F 01 92 */ stb r0, 0x192(r31) +/* 803A69CC 003A392C 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A69D0 003A3930 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f +/* 803A69D4 003A3934 7C 00 00 34 */ cntlzw r0, r0 +/* 803A69D8 003A3938 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f +/* 803A69DC 003A393C 98 1F 01 93 */ stb r0, 0x193(r31) +/* 803A69E0 003A3940 48 00 01 24 */ b lbl_803A6B04 +/* 803A69E4 003A3944 7F E3 FB 78 */ mr r3, r31 +/* 803A69E8 003A3948 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A69EC 003A394C 4B FF F1 05 */ bl mcmdSetKeyGroup +/* 803A69F0 003A3950 48 00 01 14 */ b lbl_803A6B04 +/* 803A69F4 003A3954 80 1F 00 F4 */ lwz r0, 0xf4(r31) +/* 803A69F8 003A3958 57 44 C6 3E */ rlwinm r4, r26, 0x18, 0x18, 0x1f +/* 803A69FC 003A395C 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A6A00 003A3960 48 00 CC D5 */ bl sub_803b36d4 +/* 803A6A04 003A3964 80 0D AE E0 */ lwz r0, lbl_805A9AA0@sda21(r13) +/* 803A6A08 003A3968 80 7F 00 F4 */ lwz r3, 0xf4(r31) +/* 803A6A0C 003A396C 54 04 86 3E */ rlwinm r4, r0, 0x10, 0x18, 0x1f +/* 803A6A10 003A3970 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 803A6A14 003A3974 48 00 CC ED */ bl hwSetSRCType +/* 803A6A18 003A3978 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A6A1C 003A397C 60 00 08 00 */ ori r0, r0, 0x800 +/* 803A6A20 003A3980 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A6A24 003A3984 48 00 00 E0 */ b lbl_803A6B04 +/* 803A6A28 003A3988 7F E3 FB 78 */ mr r3, r31 +/* 803A6A2C 003A398C 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6A30 003A3990 38 A0 00 00 */ li r5, 0 +/* 803A6A34 003A3994 4B FF EA 8D */ bl mcmdVarCalculation +/* 803A6A38 003A3998 48 00 00 CC */ b lbl_803A6B04 +/* 803A6A3C 003A399C 7F E3 FB 78 */ mr r3, r31 +/* 803A6A40 003A39A0 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6A44 003A39A4 38 A0 00 01 */ li r5, 1 +/* 803A6A48 003A39A8 4B FF EA 79 */ bl mcmdVarCalculation +/* 803A6A4C 003A39AC 48 00 00 B8 */ b lbl_803A6B04 +/* 803A6A50 003A39B0 7F E3 FB 78 */ mr r3, r31 +/* 803A6A54 003A39B4 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6A58 003A39B8 38 A0 00 02 */ li r5, 2 +/* 803A6A5C 003A39BC 4B FF EA 65 */ bl mcmdVarCalculation +/* 803A6A60 003A39C0 48 00 00 A4 */ b lbl_803A6B04 +/* 803A6A64 003A39C4 7F E3 FB 78 */ mr r3, r31 +/* 803A6A68 003A39C8 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6A6C 003A39CC 38 A0 00 03 */ li r5, 3 +/* 803A6A70 003A39D0 4B FF EA 51 */ bl mcmdVarCalculation +/* 803A6A74 003A39D4 48 00 00 90 */ b lbl_803A6B04 +/* 803A6A78 003A39D8 7F E3 FB 78 */ mr r3, r31 +/* 803A6A7C 003A39DC 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6A80 003A39E0 38 A0 00 04 */ li r5, 4 +/* 803A6A84 003A39E4 4B FF EA 3D */ bl mcmdVarCalculation +/* 803A6A88 003A39E8 48 00 00 7C */ b lbl_803A6B04 +/* 803A6A8C 003A39EC 80 7C 00 04 */ lwz r3, 4(r28) +/* 803A6A90 003A39F0 57 40 C6 3F */ rlwinm. r0, r26, 0x18, 0x18, 0x1f +/* 803A6A94 003A39F4 57 44 86 3E */ rlwinm r4, r26, 0x10, 0x18, 0x1f +/* 803A6A98 003A39F8 7C 65 07 34 */ extsh r5, r3 +/* 803A6A9C 003A39FC 41 82 00 10 */ beq lbl_803A6AAC +/* 803A6AA0 003A3A00 7F E3 FB 78 */ mr r3, r31 +/* 803A6AA4 003A3A04 48 00 C1 19 */ bl inpSetExCtrl +/* 803A6AA8 003A3A08 48 00 00 5C */ b lbl_803A6B04 +lbl_803A6AAC: +/* 803A6AAC 003A3A0C 54 80 06 FE */ clrlwi r0, r4, 0x1b +/* 803A6AB0 003A3A10 28 00 00 10 */ cmplwi r0, 0x10 +/* 803A6AB4 003A3A14 40 80 00 14 */ bge lbl_803A6AC8 +/* 803A6AB8 003A3A18 54 03 15 BA */ rlwinm r3, r0, 2, 0x16, 0x1d +/* 803A6ABC 003A3A1C 38 03 00 AC */ addi r0, r3, 0xac +/* 803A6AC0 003A3A20 7C BF 01 2E */ stwx r5, r31, r0 +/* 803A6AC4 003A3A24 48 00 00 40 */ b lbl_803A6B04 +lbl_803A6AC8: +/* 803A6AC8 003A3A28 3C 60 80 55 */ lis r3, lbl_80550AB4@ha +/* 803A6ACC 003A3A2C 54 04 15 BA */ rlwinm r4, r0, 2, 0x16, 0x1d +/* 803A6AD0 003A3A30 38 03 0A B4 */ addi r0, r3, lbl_80550AB4@l +/* 803A6AD4 003A3A34 7C 60 22 14 */ add r3, r0, r4 +/* 803A6AD8 003A3A38 90 A3 FF C0 */ stw r5, -0x40(r3) +/* 803A6ADC 003A3A3C 48 00 00 28 */ b lbl_803A6B04 +/* 803A6AE0 003A3A40 7F E3 FB 78 */ mr r3, r31 +/* 803A6AE4 003A3A44 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6AE8 003A3A48 38 A0 00 00 */ li r5, 0 +/* 803A6AEC 003A3A4C 4B FF EB F5 */ bl mcmdIfVarCompare +/* 803A6AF0 003A3A50 48 00 00 14 */ b lbl_803A6B04 +/* 803A6AF4 003A3A54 7F E3 FB 78 */ mr r3, r31 +/* 803A6AF8 003A3A58 38 8D AE E0 */ addi r4, r13, lbl_805A9AA0@sda21 +/* 803A6AFC 003A3A5C 38 A0 00 01 */ li r5, 1 +/* 803A6B00 003A3A60 4B FF EB E1 */ bl mcmdIfVarCompare +lbl_803A6B04: +/* 803A6B04 003A3A64 28 1E 00 00 */ cmplwi r30, 0 +/* 803A6B08 003A3A68 41 82 F3 30 */ beq lbl_803A5E38 +lbl_803A6B0C: +/* 803A6B0C 003A3A6C 39 61 00 30 */ addi r11, r1, 0x30 +/* 803A6B10 003A3A70 4B FE 2F B1 */ bl _restgpr_25 +/* 803A6B14 003A3A74 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803A6B18 003A3A78 7C 08 03 A6 */ mtlr r0 +/* 803A6B1C 003A3A7C 38 21 00 30 */ addi r1, r1, 0x30 +/* 803A6B20 003A3A80 4E 80 00 20 */ blr + +.global sub_803a6b24 +sub_803a6b24: +/* 803A6B24 003A3A84 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A6B28 003A3A88 7C 08 02 A6 */ mflr r0 +/* 803A6B2C 003A3A8C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A6B30 003A3A90 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A6B34 003A3A94 4B FE 2F 45 */ bl func_80389A78 +/* 803A6B38 003A3A98 83 6D AE F0 */ lwz r27, lbl_805A9AB0@sda21(r13) +/* 803A6B3C 003A3A9C 7C 7E 1B 78 */ mr r30, r3 +/* 803A6B40 003A3AA0 48 00 00 1C */ b lbl_803A6B5C +lbl_803A6B44: +/* 803A6B44 003A3AA4 83 5B 00 44 */ lwz r26, 0x44(r27) +/* 803A6B48 003A3AA8 7F 63 DB 78 */ mr r3, r27 +/* 803A6B4C 003A3AAC 48 00 04 71 */ bl macMakeActive +/* 803A6B50 003A3AB0 93 9B 00 A4 */ stw r28, 0xa4(r27) +/* 803A6B54 003A3AB4 93 BB 00 A0 */ stw r29, 0xa0(r27) +/* 803A6B58 003A3AB8 7F 5B D3 78 */ mr r27, r26 +lbl_803A6B5C: +/* 803A6B5C 003A3ABC 28 1B 00 00 */ cmplwi r27, 0 +/* 803A6B60 003A3AC0 41 82 00 28 */ beq lbl_803A6B88 +/* 803A6B64 003A3AC4 83 9B 00 9C */ lwz r28, 0x9c(r27) +/* 803A6B68 003A3AC8 80 0D AE EC */ lwz r0, lbl_805A9AAC@sda21(r13) +/* 803A6B6C 003A3ACC 83 BB 00 98 */ lwz r29, 0x98(r27) +/* 803A6B70 003A3AD0 80 6D AE E8 */ lwz r3, lbl_805A9AA8@sda21(r13) +/* 803A6B74 003A3AD4 7C 1C 00 10 */ subfc r0, r28, r0 +/* 803A6B78 003A3AD8 7C 1D 19 10 */ subfe r0, r29, r3 +/* 803A6B7C 003A3ADC 7C 1F F9 10 */ subfe r0, r31, r31 +/* 803A6B80 003A3AE0 7C 00 00 D1 */ neg. r0, r0 +/* 803A6B84 003A3AE4 41 82 FF C0 */ beq lbl_803A6B44 +lbl_803A6B88: +/* 803A6B88 003A3AE8 83 ED AE F4 */ lwz r31, lbl_805A9AB4@sda21(r13) +/* 803A6B8C 003A3AEC 48 00 00 B0 */ b lbl_803A6C3C +lbl_803A6B90: +/* 803A6B90 003A3AF0 88 1F 00 68 */ lbz r0, 0x68(r31) +/* 803A6B94 003A3AF4 28 00 00 00 */ cmplwi r0, 0 +/* 803A6B98 003A3AF8 41 82 00 18 */ beq lbl_803A6BB0 +/* 803A6B9C 003A3AFC 80 7F 00 54 */ lwz r3, 0x54(r31) +/* 803A6BA0 003A3B00 7C 03 00 D0 */ neg r0, r3 +/* 803A6BA4 003A3B04 7C 00 1B 78 */ or r0, r0, r3 +/* 803A6BA8 003A3B08 54 00 0F FE */ srwi r0, r0, 0x1f +/* 803A6BAC 003A3B0C 48 00 00 08 */ b lbl_803A6BB4 +lbl_803A6BB0: +/* 803A6BB0 003A3B10 38 00 00 00 */ li r0, 0 +lbl_803A6BB4: +/* 803A6BB4 003A3B14 28 00 00 00 */ cmplwi r0, 0 +/* 803A6BB8 003A3B18 41 82 00 78 */ beq lbl_803A6C30 +/* 803A6BBC 003A3B1C 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A6BC0 003A3B20 38 80 00 00 */ li r4, 0 +/* 803A6BC4 003A3B24 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A6BC8 003A3B28 38 60 00 20 */ li r3, 0x20 +/* 803A6BCC 003A3B2C 7C 00 20 38 */ and r0, r0, r4 +/* 803A6BD0 003A3B30 7C A3 18 38 */ and r3, r5, r3 +/* 803A6BD4 003A3B34 7C 63 22 78 */ xor r3, r3, r4 +/* 803A6BD8 003A3B38 7C 00 22 78 */ xor r0, r0, r4 +/* 803A6BDC 003A3B3C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A6BE0 003A3B40 40 82 00 50 */ bne lbl_803A6C30 +/* 803A6BE4 003A3B44 80 1F 00 F4 */ lwz r0, 0xf4(r31) +/* 803A6BE8 003A3B48 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 803A6BEC 003A3B4C 48 00 C5 B1 */ bl hwIsActive +/* 803A6BF0 003A3B50 28 03 00 00 */ cmplwi r3, 0 +/* 803A6BF4 003A3B54 40 82 00 3C */ bne lbl_803A6C30 +/* 803A6BF8 003A3B58 88 1F 00 68 */ lbz r0, 0x68(r31) +/* 803A6BFC 003A3B5C 28 00 00 00 */ cmplwi r0, 0 +/* 803A6C00 003A3B60 41 82 00 30 */ beq lbl_803A6C30 +/* 803A6C04 003A3B64 80 1F 00 54 */ lwz r0, 0x54(r31) +/* 803A6C08 003A3B68 28 00 00 00 */ cmplwi r0, 0 +/* 803A6C0C 003A3B6C 41 82 00 24 */ beq lbl_803A6C30 +/* 803A6C10 003A3B70 80 9F 00 60 */ lwz r4, 0x60(r31) +/* 803A6C14 003A3B74 38 00 00 00 */ li r0, 0 +/* 803A6C18 003A3B78 7F E3 FB 78 */ mr r3, r31 +/* 803A6C1C 003A3B7C 90 9F 00 38 */ stw r4, 0x38(r31) +/* 803A6C20 003A3B80 80 9F 00 54 */ lwz r4, 0x54(r31) +/* 803A6C24 003A3B84 90 9F 00 34 */ stw r4, 0x34(r31) +/* 803A6C28 003A3B88 90 1F 00 54 */ stw r0, 0x54(r31) +/* 803A6C2C 003A3B8C 48 00 03 91 */ bl macMakeActive +lbl_803A6C30: +/* 803A6C30 003A3B90 7F E3 FB 78 */ mr r3, r31 +/* 803A6C34 003A3B94 4B FF EF 99 */ bl sub_803a5bcc +/* 803A6C38 003A3B98 83 FF 00 3C */ lwz r31, 0x3c(r31) +lbl_803A6C3C: +/* 803A6C3C 003A3B9C 28 1F 00 00 */ cmplwi r31, 0 +/* 803A6C40 003A3BA0 40 82 FF 50 */ bne lbl_803A6B90 +/* 803A6C44 003A3BA4 80 6D AE EC */ lwz r3, lbl_805A9AAC@sda21(r13) +/* 803A6C48 003A3BA8 80 0D AE E8 */ lwz r0, lbl_805A9AA8@sda21(r13) +/* 803A6C4C 003A3BAC 7C 63 F0 14 */ addc r3, r3, r30 +/* 803A6C50 003A3BB0 7C 00 01 94 */ addze r0, r0 +/* 803A6C54 003A3BB4 90 6D AE EC */ stw r3, lbl_805A9AAC@sda21(r13) +/* 803A6C58 003A3BB8 90 0D AE E8 */ stw r0, lbl_805A9AA8@sda21(r13) +/* 803A6C5C 003A3BBC 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A6C60 003A3BC0 4B FE 2E 65 */ bl _restgpr_26 +/* 803A6C64 003A3BC4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A6C68 003A3BC8 7C 08 03 A6 */ mtlr r0 +/* 803A6C6C 003A3BCC 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A6C70 003A3BD0 4E 80 00 20 */ blr + +.global macSampleEndNotify +macSampleEndNotify: +/* 803A6C74 003A3BD4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A6C78 003A3BD8 7C 08 02 A6 */ mflr r0 +/* 803A6C7C 003A3BDC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A6C80 003A3BE0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A6C84 003A3BE4 7C 7F 1B 78 */ mr r31, r3 +/* 803A6C88 003A3BE8 80 03 00 4C */ lwz r0, 0x4c(r3) +/* 803A6C8C 003A3BEC 2C 00 00 01 */ cmpwi r0, 1 +/* 803A6C90 003A3BF0 40 82 00 7C */ bne lbl_803A6D0C +/* 803A6C94 003A3BF4 88 1F 00 68 */ lbz r0, 0x68(r31) +/* 803A6C98 003A3BF8 28 00 00 00 */ cmplwi r0, 0 +/* 803A6C9C 003A3BFC 41 82 00 34 */ beq lbl_803A6CD0 +/* 803A6CA0 003A3C00 80 1F 00 54 */ lwz r0, 0x54(r31) +/* 803A6CA4 003A3C04 28 00 00 00 */ cmplwi r0, 0 +/* 803A6CA8 003A3C08 41 82 00 28 */ beq lbl_803A6CD0 +/* 803A6CAC 003A3C0C 80 9F 00 60 */ lwz r4, 0x60(r31) +/* 803A6CB0 003A3C10 38 00 00 00 */ li r0, 0 +/* 803A6CB4 003A3C14 90 9F 00 38 */ stw r4, 0x38(r31) +/* 803A6CB8 003A3C18 80 9F 00 54 */ lwz r4, 0x54(r31) +/* 803A6CBC 003A3C1C 90 9F 00 34 */ stw r4, 0x34(r31) +/* 803A6CC0 003A3C20 90 1F 00 54 */ stw r0, 0x54(r31) +/* 803A6CC4 003A3C24 48 00 02 F9 */ bl macMakeActive +/* 803A6CC8 003A3C28 38 00 00 01 */ li r0, 1 +/* 803A6CCC 003A3C2C 48 00 00 08 */ b lbl_803A6CD4 +lbl_803A6CD0: +/* 803A6CD0 003A3C30 38 00 00 00 */ li r0, 0 +lbl_803A6CD4: +/* 803A6CD4 003A3C34 28 00 00 00 */ cmplwi r0, 0 +/* 803A6CD8 003A3C38 40 82 00 34 */ bne lbl_803A6D0C +/* 803A6CDC 003A3C3C 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A6CE0 003A3C40 38 80 00 00 */ li r4, 0 +/* 803A6CE4 003A3C44 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A6CE8 003A3C48 3C 60 00 04 */ lis r3, 4 +/* 803A6CEC 003A3C4C 7C 00 20 38 */ and r0, r0, r4 +/* 803A6CF0 003A3C50 7C A3 18 38 */ and r3, r5, r3 +/* 803A6CF4 003A3C54 7C 63 22 78 */ xor r3, r3, r4 +/* 803A6CF8 003A3C58 7C 00 22 78 */ xor r0, r0, r4 +/* 803A6CFC 003A3C5C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A6D00 003A3C60 41 82 00 0C */ beq lbl_803A6D0C +/* 803A6D04 003A3C64 7F E3 FB 78 */ mr r3, r31 +/* 803A6D08 003A3C68 48 00 02 B5 */ bl macMakeActive +lbl_803A6D0C: +/* 803A6D0C 003A3C6C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A6D10 003A3C70 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A6D14 003A3C74 7C 08 03 A6 */ mtlr r0 +/* 803A6D18 003A3C78 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A6D1C 003A3C7C 4E 80 00 20 */ blr + +.global macSetExternalKeyoff +macSetExternalKeyoff: +/* 803A6D20 003A3C80 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A6D24 003A3C84 7C 08 02 A6 */ mflr r0 +/* 803A6D28 003A3C88 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A6D2C 003A3C8C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A6D30 003A3C90 7C 7F 1B 78 */ mr r31, r3 +/* 803A6D34 003A3C94 80 03 01 18 */ lwz r0, 0x118(r3) +/* 803A6D38 003A3C98 80 83 01 14 */ lwz r4, 0x114(r3) +/* 803A6D3C 003A3C9C 60 00 00 08 */ ori r0, r0, 8 +/* 803A6D40 003A3CA0 90 03 01 18 */ stw r0, 0x118(r3) +/* 803A6D44 003A3CA4 80 03 00 34 */ lwz r0, 0x34(r3) +/* 803A6D48 003A3CA8 28 00 00 00 */ cmplwi r0, 0 +/* 803A6D4C 003A3CAC 41 82 00 B0 */ beq lbl_803A6DFC +/* 803A6D50 003A3CB0 80 DF 01 14 */ lwz r6, 0x114(r31) +/* 803A6D54 003A3CB4 38 00 01 00 */ li r0, 0x100 +/* 803A6D58 003A3CB8 80 FF 01 18 */ lwz r7, 0x118(r31) +/* 803A6D5C 003A3CBC 38 A0 00 00 */ li r5, 0 +/* 803A6D60 003A3CC0 7C C0 00 38 */ and r0, r6, r0 +/* 803A6D64 003A3CC4 7C E4 28 38 */ and r4, r7, r5 +/* 803A6D68 003A3CC8 7C 84 2A 78 */ xor r4, r4, r5 +/* 803A6D6C 003A3CCC 7C 00 2A 78 */ xor r0, r0, r5 +/* 803A6D70 003A3CD0 7C 80 03 79 */ or. r0, r4, r0 +/* 803A6D74 003A3CD4 40 82 00 7C */ bne lbl_803A6DF0 +/* 803A6D78 003A3CD8 88 1F 00 68 */ lbz r0, 0x68(r31) +/* 803A6D7C 003A3CDC 28 00 00 00 */ cmplwi r0, 0 +/* 803A6D80 003A3CE0 41 82 00 30 */ beq lbl_803A6DB0 +/* 803A6D84 003A3CE4 80 1F 00 50 */ lwz r0, 0x50(r31) +/* 803A6D88 003A3CE8 28 00 00 00 */ cmplwi r0, 0 +/* 803A6D8C 003A3CEC 41 82 00 24 */ beq lbl_803A6DB0 +/* 803A6D90 003A3CF0 80 1F 00 5C */ lwz r0, 0x5c(r31) +/* 803A6D94 003A3CF4 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A6D98 003A3CF8 80 1F 00 50 */ lwz r0, 0x50(r31) +/* 803A6D9C 003A3CFC 90 1F 00 34 */ stw r0, 0x34(r31) +/* 803A6DA0 003A3D00 90 BF 00 50 */ stw r5, 0x50(r31) +/* 803A6DA4 003A3D04 48 00 02 19 */ bl macMakeActive +/* 803A6DA8 003A3D08 38 00 00 01 */ li r0, 1 +/* 803A6DAC 003A3D0C 48 00 00 08 */ b lbl_803A6DB4 +lbl_803A6DB0: +/* 803A6DB0 003A3D10 38 00 00 00 */ li r0, 0 +lbl_803A6DB4: +/* 803A6DB4 003A3D14 28 00 00 00 */ cmplwi r0, 0 +/* 803A6DB8 003A3D18 40 82 00 44 */ bne lbl_803A6DFC +/* 803A6DBC 003A3D1C 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A6DC0 003A3D20 38 80 00 00 */ li r4, 0 +/* 803A6DC4 003A3D24 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A6DC8 003A3D28 38 60 00 04 */ li r3, 4 +/* 803A6DCC 003A3D2C 7C 00 20 38 */ and r0, r0, r4 +/* 803A6DD0 003A3D30 7C A3 18 38 */ and r3, r5, r3 +/* 803A6DD4 003A3D34 7C 63 22 78 */ xor r3, r3, r4 +/* 803A6DD8 003A3D38 7C 00 22 78 */ xor r0, r0, r4 +/* 803A6DDC 003A3D3C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A6DE0 003A3D40 41 82 00 1C */ beq lbl_803A6DFC +/* 803A6DE4 003A3D44 7F E3 FB 78 */ mr r3, r31 +/* 803A6DE8 003A3D48 48 00 01 D5 */ bl macMakeActive +/* 803A6DEC 003A3D4C 48 00 00 10 */ b lbl_803A6DFC +lbl_803A6DF0: +/* 803A6DF0 003A3D50 90 FF 01 18 */ stw r7, 0x118(r31) +/* 803A6DF4 003A3D54 60 C0 04 00 */ ori r0, r6, 0x400 +/* 803A6DF8 003A3D58 90 1F 01 14 */ stw r0, 0x114(r31) +lbl_803A6DFC: +/* 803A6DFC 003A3D5C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A6E00 003A3D60 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A6E04 003A3D64 7C 08 03 A6 */ mtlr r0 +/* 803A6E08 003A3D68 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A6E0C 003A3D6C 4E 80 00 20 */ blr + +.global macSetPedalState +macSetPedalState: +/* 803A6E10 003A3D70 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A6E14 003A3D74 7C 08 02 A6 */ mflr r0 +/* 803A6E18 003A3D78 28 04 00 00 */ cmplwi r4, 0 +/* 803A6E1C 003A3D7C 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A6E20 003A3D80 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A6E24 003A3D84 7C 7F 1B 78 */ mr r31, r3 +/* 803A6E28 003A3D88 41 82 00 14 */ beq lbl_803A6E3C +/* 803A6E2C 003A3D8C 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A6E30 003A3D90 60 00 01 00 */ ori r0, r0, 0x100 +/* 803A6E34 003A3D94 90 1F 01 14 */ stw r0, 0x114(r31) +/* 803A6E38 003A3D98 48 00 00 CC */ b lbl_803A6F04 +lbl_803A6E3C: +/* 803A6E3C 003A3D9C 80 1F 00 34 */ lwz r0, 0x34(r31) +/* 803A6E40 003A3DA0 28 00 00 00 */ cmplwi r0, 0 +/* 803A6E44 003A3DA4 41 82 00 A0 */ beq lbl_803A6EE4 +/* 803A6E48 003A3DA8 80 9F 01 14 */ lwz r4, 0x114(r31) +/* 803A6E4C 003A3DAC 38 00 04 00 */ li r0, 0x400 +/* 803A6E50 003A3DB0 80 DF 01 18 */ lwz r6, 0x118(r31) +/* 803A6E54 003A3DB4 38 A0 00 00 */ li r5, 0 +/* 803A6E58 003A3DB8 7C 80 00 38 */ and r0, r4, r0 +/* 803A6E5C 003A3DBC 7C C4 28 38 */ and r4, r6, r5 +/* 803A6E60 003A3DC0 7C 84 2A 78 */ xor r4, r4, r5 +/* 803A6E64 003A3DC4 7C 00 2A 78 */ xor r0, r0, r5 +/* 803A6E68 003A3DC8 7C 80 03 79 */ or. r0, r4, r0 +/* 803A6E6C 003A3DCC 41 82 00 78 */ beq lbl_803A6EE4 +/* 803A6E70 003A3DD0 88 1F 00 68 */ lbz r0, 0x68(r31) +/* 803A6E74 003A3DD4 28 00 00 00 */ cmplwi r0, 0 +/* 803A6E78 003A3DD8 41 82 00 30 */ beq lbl_803A6EA8 +/* 803A6E7C 003A3DDC 80 1F 00 50 */ lwz r0, 0x50(r31) +/* 803A6E80 003A3DE0 28 00 00 00 */ cmplwi r0, 0 +/* 803A6E84 003A3DE4 41 82 00 24 */ beq lbl_803A6EA8 +/* 803A6E88 003A3DE8 80 1F 00 5C */ lwz r0, 0x5c(r31) +/* 803A6E8C 003A3DEC 90 1F 00 38 */ stw r0, 0x38(r31) +/* 803A6E90 003A3DF0 80 1F 00 50 */ lwz r0, 0x50(r31) +/* 803A6E94 003A3DF4 90 1F 00 34 */ stw r0, 0x34(r31) +/* 803A6E98 003A3DF8 90 BF 00 50 */ stw r5, 0x50(r31) +/* 803A6E9C 003A3DFC 48 00 01 21 */ bl macMakeActive +/* 803A6EA0 003A3E00 38 00 00 01 */ li r0, 1 +/* 803A6EA4 003A3E04 48 00 00 08 */ b lbl_803A6EAC +lbl_803A6EA8: +/* 803A6EA8 003A3E08 38 00 00 00 */ li r0, 0 +lbl_803A6EAC: +/* 803A6EAC 003A3E0C 28 00 00 00 */ cmplwi r0, 0 +/* 803A6EB0 003A3E10 40 82 00 34 */ bne lbl_803A6EE4 +/* 803A6EB4 003A3E14 80 1F 01 14 */ lwz r0, 0x114(r31) +/* 803A6EB8 003A3E18 38 80 00 00 */ li r4, 0 +/* 803A6EBC 003A3E1C 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A6EC0 003A3E20 38 60 00 04 */ li r3, 4 +/* 803A6EC4 003A3E24 7C 00 20 38 */ and r0, r0, r4 +/* 803A6EC8 003A3E28 7C A3 18 38 */ and r3, r5, r3 +/* 803A6ECC 003A3E2C 7C 63 22 78 */ xor r3, r3, r4 +/* 803A6ED0 003A3E30 7C 00 22 78 */ xor r0, r0, r4 +/* 803A6ED4 003A3E34 7C 60 03 79 */ or. r0, r3, r0 +/* 803A6ED8 003A3E38 41 82 00 0C */ beq lbl_803A6EE4 +/* 803A6EDC 003A3E3C 7F E3 FB 78 */ mr r3, r31 +/* 803A6EE0 003A3E40 48 00 00 DD */ bl macMakeActive +lbl_803A6EE4: +/* 803A6EE4 003A3E44 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A6EE8 003A3E48 38 00 FF FF */ li r0, -1 +/* 803A6EEC 003A3E4C 80 9F 01 14 */ lwz r4, 0x114(r31) +/* 803A6EF0 003A3E50 38 60 FA FF */ li r3, -1281 +/* 803A6EF4 003A3E54 7C A0 00 38 */ and r0, r5, r0 +/* 803A6EF8 003A3E58 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A6EFC 003A3E5C 7C 80 18 38 */ and r0, r4, r3 +/* 803A6F00 003A3E60 90 1F 01 14 */ stw r0, 0x114(r31) +lbl_803A6F04: +/* 803A6F04 003A3E64 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A6F08 003A3E68 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A6F0C 003A3E6C 7C 08 03 A6 */ mtlr r0 +/* 803A6F10 003A3E70 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A6F14 003A3E74 4E 80 00 20 */ blr + +.global TimeQueueAdd +TimeQueueAdd: +/* 803A6F18 003A3E78 80 ED AE F0 */ lwz r7, lbl_805A9AB0@sda21(r13) +/* 803A6F1C 003A3E7C 39 00 00 00 */ li r8, 0 +/* 803A6F20 003A3E80 48 00 00 0C */ b lbl_803A6F2C +lbl_803A6F24: +/* 803A6F24 003A3E84 7C E8 3B 78 */ mr r8, r7 +/* 803A6F28 003A3E88 80 E7 00 44 */ lwz r7, 0x44(r7) +lbl_803A6F2C: +/* 803A6F2C 003A3E8C 28 07 00 00 */ cmplwi r7, 0 +/* 803A6F30 003A3E90 41 82 00 28 */ beq lbl_803A6F58 +/* 803A6F34 003A3E94 80 C7 00 9C */ lwz r6, 0x9c(r7) +/* 803A6F38 003A3E98 80 03 00 9C */ lwz r0, 0x9c(r3) +/* 803A6F3C 003A3E9C 80 A7 00 98 */ lwz r5, 0x98(r7) +/* 803A6F40 003A3EA0 80 83 00 98 */ lwz r4, 0x98(r3) +/* 803A6F44 003A3EA4 7C 00 30 10 */ subfc r0, r0, r6 +/* 803A6F48 003A3EA8 7C 04 29 10 */ subfe r0, r4, r5 +/* 803A6F4C 003A3EAC 7C 03 19 10 */ subfe r0, r3, r3 +/* 803A6F50 003A3EB0 7C 00 00 D1 */ neg. r0, r0 +/* 803A6F54 003A3EB4 40 82 FF D0 */ bne lbl_803A6F24 +lbl_803A6F58: +/* 803A6F58 003A3EB8 28 07 00 00 */ cmplwi r7, 0 +/* 803A6F5C 003A3EBC 40 82 00 34 */ bne lbl_803A6F90 +/* 803A6F60 003A3EC0 28 08 00 00 */ cmplwi r8, 0 +/* 803A6F64 003A3EC4 40 82 00 18 */ bne lbl_803A6F7C +/* 803A6F68 003A3EC8 90 6D AE F0 */ stw r3, lbl_805A9AB0@sda21(r13) +/* 803A6F6C 003A3ECC 38 00 00 00 */ li r0, 0 +/* 803A6F70 003A3ED0 90 03 00 44 */ stw r0, 0x44(r3) +/* 803A6F74 003A3ED4 90 03 00 48 */ stw r0, 0x48(r3) +/* 803A6F78 003A3ED8 4E 80 00 20 */ blr +lbl_803A6F7C: +/* 803A6F7C 003A3EDC 90 68 00 44 */ stw r3, 0x44(r8) +/* 803A6F80 003A3EE0 38 00 00 00 */ li r0, 0 +/* 803A6F84 003A3EE4 91 03 00 48 */ stw r8, 0x48(r3) +/* 803A6F88 003A3EE8 90 03 00 44 */ stw r0, 0x44(r3) +/* 803A6F8C 003A3EEC 4E 80 00 20 */ blr +lbl_803A6F90: +/* 803A6F90 003A3EF0 90 E3 00 44 */ stw r7, 0x44(r3) +/* 803A6F94 003A3EF4 80 07 00 48 */ lwz r0, 0x48(r7) +/* 803A6F98 003A3EF8 28 00 00 00 */ cmplwi r0, 0 +/* 803A6F9C 003A3EFC 90 03 00 48 */ stw r0, 0x48(r3) +/* 803A6FA0 003A3F00 41 82 00 10 */ beq lbl_803A6FB0 +/* 803A6FA4 003A3F04 80 87 00 48 */ lwz r4, 0x48(r7) +/* 803A6FA8 003A3F08 90 64 00 44 */ stw r3, 0x44(r4) +/* 803A6FAC 003A3F0C 48 00 00 08 */ b lbl_803A6FB4 +lbl_803A6FB0: +/* 803A6FB0 003A3F10 90 6D AE F0 */ stw r3, lbl_805A9AB0@sda21(r13) +lbl_803A6FB4: +/* 803A6FB4 003A3F14 90 67 00 48 */ stw r3, 0x48(r7) +/* 803A6FB8 003A3F18 4E 80 00 20 */ blr + +.global macMakeActive +macMakeActive: +/* 803A6FBC 003A3F1C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A6FC0 003A3F20 7C 08 02 A6 */ mflr r0 +/* 803A6FC4 003A3F24 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A6FC8 003A3F28 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A6FCC 003A3F2C 7C 7F 1B 78 */ mr r31, r3 +/* 803A6FD0 003A3F30 80 03 00 4C */ lwz r0, 0x4c(r3) +/* 803A6FD4 003A3F34 2C 00 00 00 */ cmpwi r0, 0 +/* 803A6FD8 003A3F38 41 82 00 D8 */ beq lbl_803A70B0 +/* 803A6FDC 003A3F3C 80 9F 00 98 */ lwz r4, 0x98(r31) +/* 803A6FE0 003A3F40 38 60 00 00 */ li r3, 0 +/* 803A6FE4 003A3F44 80 BF 00 9C */ lwz r5, 0x9c(r31) +/* 803A6FE8 003A3F48 7C 80 1A 78 */ xor r0, r4, r3 +/* 803A6FEC 003A3F4C 7C A3 1A 78 */ xor r3, r5, r3 +/* 803A6FF0 003A3F50 7C 60 03 79 */ or. r0, r3, r0 +/* 803A6FF4 003A3F54 41 82 00 94 */ beq lbl_803A7088 +/* 803A6FF8 003A3F58 38 00 FF FF */ li r0, -1 +/* 803A6FFC 003A3F5C 7C A3 02 78 */ xor r3, r5, r0 +/* 803A7000 003A3F60 7C 80 02 78 */ xor r0, r4, r0 +/* 803A7004 003A3F64 7C 60 03 79 */ or. r0, r3, r0 +/* 803A7008 003A3F68 41 82 00 38 */ beq lbl_803A7040 +/* 803A700C 003A3F6C 80 7F 00 48 */ lwz r3, 0x48(r31) +/* 803A7010 003A3F70 28 03 00 00 */ cmplwi r3, 0 +/* 803A7014 003A3F74 40 82 00 10 */ bne lbl_803A7024 +/* 803A7018 003A3F78 80 1F 00 44 */ lwz r0, 0x44(r31) +/* 803A701C 003A3F7C 90 0D AE F0 */ stw r0, lbl_805A9AB0@sda21(r13) +/* 803A7020 003A3F80 48 00 00 0C */ b lbl_803A702C +lbl_803A7024: +/* 803A7024 003A3F84 80 1F 00 44 */ lwz r0, 0x44(r31) +/* 803A7028 003A3F88 90 03 00 44 */ stw r0, 0x44(r3) +lbl_803A702C: +/* 803A702C 003A3F8C 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 803A7030 003A3F90 28 03 00 00 */ cmplwi r3, 0 +/* 803A7034 003A3F94 41 82 00 0C */ beq lbl_803A7040 +/* 803A7038 003A3F98 80 1F 00 48 */ lwz r0, 0x48(r31) +/* 803A703C 003A3F9C 90 03 00 48 */ stw r0, 0x48(r3) +lbl_803A7040: +/* 803A7040 003A3FA0 7F E3 FB 78 */ mr r3, r31 +/* 803A7044 003A3FA4 4B FF 3A 59 */ bl synthForceLowPrecisionUpdate +/* 803A7048 003A3FA8 38 80 00 00 */ li r4, 0 +/* 803A704C 003A3FAC 3C 60 FF FC */ lis r3, 0xFFFBFFFB@ha +/* 803A7050 003A3FB0 90 9F 00 9C */ stw r4, 0x9c(r31) +/* 803A7054 003A3FB4 38 03 FF FB */ addi r0, r3, 0xFFFBFFFB@l +/* 803A7058 003A3FB8 38 60 FF FF */ li r3, -1 +/* 803A705C 003A3FBC 90 9F 00 98 */ stw r4, 0x98(r31) +/* 803A7060 003A3FC0 80 8D AE E8 */ lwz r4, lbl_805A9AA8@sda21(r13) +/* 803A7064 003A3FC4 80 AD AE EC */ lwz r5, lbl_805A9AAC@sda21(r13) +/* 803A7068 003A3FC8 90 BF 00 A4 */ stw r5, 0xa4(r31) +/* 803A706C 003A3FCC 90 9F 00 A0 */ stw r4, 0xa0(r31) +/* 803A7070 003A3FD0 80 BF 01 18 */ lwz r5, 0x118(r31) +/* 803A7074 003A3FD4 80 9F 01 14 */ lwz r4, 0x114(r31) +/* 803A7078 003A3FD8 7C A0 00 38 */ and r0, r5, r0 +/* 803A707C 003A3FDC 90 1F 01 18 */ stw r0, 0x118(r31) +/* 803A7080 003A3FE0 7C 80 18 38 */ and r0, r4, r3 +/* 803A7084 003A3FE4 90 1F 01 14 */ stw r0, 0x114(r31) +lbl_803A7088: +/* 803A7088 003A3FE8 80 0D AE F4 */ lwz r0, lbl_805A9AB4@sda21(r13) +/* 803A708C 003A3FEC 28 00 00 00 */ cmplwi r0, 0 +/* 803A7090 003A3FF0 90 1F 00 3C */ stw r0, 0x3c(r31) +/* 803A7094 003A3FF4 41 82 00 0C */ beq lbl_803A70A0 +/* 803A7098 003A3FF8 80 6D AE F4 */ lwz r3, lbl_805A9AB4@sda21(r13) +/* 803A709C 003A3FFC 93 E3 00 40 */ stw r31, 0x40(r3) +lbl_803A70A0: +/* 803A70A0 003A4000 38 00 00 00 */ li r0, 0 +/* 803A70A4 003A4004 90 1F 00 40 */ stw r0, 0x40(r31) +/* 803A70A8 003A4008 93 ED AE F4 */ stw r31, lbl_805A9AB4@sda21(r13) +/* 803A70AC 003A400C 90 1F 00 4C */ stw r0, 0x4c(r31) +lbl_803A70B0: +/* 803A70B0 003A4010 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A70B4 003A4014 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A70B8 003A4018 7C 08 03 A6 */ mtlr r0 +/* 803A70BC 003A401C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A70C0 003A4020 4E 80 00 20 */ blr + +.global macMakeInactive +macMakeInactive: +/* 803A70C4 003A4024 80 03 00 4C */ lwz r0, 0x4c(r3) +/* 803A70C8 003A4028 7C 00 20 00 */ cmpw r0, r4 +/* 803A70CC 003A402C 4D 82 00 20 */ beqlr +/* 803A70D0 003A4030 2C 00 00 00 */ cmpwi r0, 0 +/* 803A70D4 003A4034 40 82 00 38 */ bne lbl_803A710C +/* 803A70D8 003A4038 80 A3 00 40 */ lwz r5, 0x40(r3) +/* 803A70DC 003A403C 28 05 00 00 */ cmplwi r5, 0 +/* 803A70E0 003A4040 40 82 00 10 */ bne lbl_803A70F0 +/* 803A70E4 003A4044 80 03 00 3C */ lwz r0, 0x3c(r3) +/* 803A70E8 003A4048 90 0D AE F4 */ stw r0, lbl_805A9AB4@sda21(r13) +/* 803A70EC 003A404C 48 00 00 0C */ b lbl_803A70F8 +lbl_803A70F0: +/* 803A70F0 003A4050 80 03 00 3C */ lwz r0, 0x3c(r3) +/* 803A70F4 003A4054 90 05 00 3C */ stw r0, 0x3c(r5) +lbl_803A70F8: +/* 803A70F8 003A4058 80 A3 00 3C */ lwz r5, 0x3c(r3) +/* 803A70FC 003A405C 28 05 00 00 */ cmplwi r5, 0 +/* 803A7100 003A4060 41 82 00 0C */ beq lbl_803A710C +/* 803A7104 003A4064 80 03 00 40 */ lwz r0, 0x40(r3) +/* 803A7108 003A4068 90 05 00 40 */ stw r0, 0x40(r5) +lbl_803A710C: +/* 803A710C 003A406C 2C 04 00 02 */ cmpwi r4, 2 +/* 803A7110 003A4070 40 82 00 A8 */ bne lbl_803A71B8 +/* 803A7114 003A4074 80 C3 00 98 */ lwz r6, 0x98(r3) +/* 803A7118 003A4078 38 A0 00 00 */ li r5, 0 +/* 803A711C 003A407C 80 E3 00 9C */ lwz r7, 0x9c(r3) +/* 803A7120 003A4080 7C C0 2A 78 */ xor r0, r6, r5 +/* 803A7124 003A4084 7C E5 2A 78 */ xor r5, r7, r5 +/* 803A7128 003A4088 7C A0 03 79 */ or. r0, r5, r0 +/* 803A712C 003A408C 41 82 00 8C */ beq lbl_803A71B8 +/* 803A7130 003A4090 38 00 FF FF */ li r0, -1 +/* 803A7134 003A4094 7C E5 02 78 */ xor r5, r7, r0 +/* 803A7138 003A4098 7C C0 02 78 */ xor r0, r6, r0 +/* 803A713C 003A409C 7C A0 03 79 */ or. r0, r5, r0 +/* 803A7140 003A40A0 41 82 00 38 */ beq lbl_803A7178 +/* 803A7144 003A40A4 80 A3 00 48 */ lwz r5, 0x48(r3) +/* 803A7148 003A40A8 28 05 00 00 */ cmplwi r5, 0 +/* 803A714C 003A40AC 40 82 00 10 */ bne lbl_803A715C +/* 803A7150 003A40B0 80 03 00 44 */ lwz r0, 0x44(r3) +/* 803A7154 003A40B4 90 0D AE F0 */ stw r0, lbl_805A9AB0@sda21(r13) +/* 803A7158 003A40B8 48 00 00 0C */ b lbl_803A7164 +lbl_803A715C: +/* 803A715C 003A40BC 80 03 00 44 */ lwz r0, 0x44(r3) +/* 803A7160 003A40C0 90 05 00 44 */ stw r0, 0x44(r5) +lbl_803A7164: +/* 803A7164 003A40C4 80 A3 00 44 */ lwz r5, 0x44(r3) +/* 803A7168 003A40C8 28 05 00 00 */ cmplwi r5, 0 +/* 803A716C 003A40CC 41 82 00 0C */ beq lbl_803A7178 +/* 803A7170 003A40D0 80 03 00 48 */ lwz r0, 0x48(r3) +/* 803A7174 003A40D4 90 05 00 48 */ stw r0, 0x48(r5) +lbl_803A7178: +/* 803A7178 003A40D8 38 C0 00 00 */ li r6, 0 +/* 803A717C 003A40DC 3C A0 FF FC */ lis r5, 0xFFFBFFFB@ha +/* 803A7180 003A40E0 90 C3 00 9C */ stw r6, 0x9c(r3) +/* 803A7184 003A40E4 38 05 FF FB */ addi r0, r5, 0xFFFBFFFB@l +/* 803A7188 003A40E8 38 A0 FF FF */ li r5, -1 +/* 803A718C 003A40EC 90 C3 00 98 */ stw r6, 0x98(r3) +/* 803A7190 003A40F0 80 CD AE E8 */ lwz r6, lbl_805A9AA8@sda21(r13) +/* 803A7194 003A40F4 80 ED AE EC */ lwz r7, lbl_805A9AAC@sda21(r13) +/* 803A7198 003A40F8 90 E3 00 A4 */ stw r7, 0xa4(r3) +/* 803A719C 003A40FC 90 C3 00 A0 */ stw r6, 0xa0(r3) +/* 803A71A0 003A4100 80 E3 01 18 */ lwz r7, 0x118(r3) +/* 803A71A4 003A4104 80 C3 01 14 */ lwz r6, 0x114(r3) +/* 803A71A8 003A4108 7C E0 00 38 */ and r0, r7, r0 +/* 803A71AC 003A410C 90 03 01 18 */ stw r0, 0x118(r3) +/* 803A71B0 003A4110 7C C0 28 38 */ and r0, r6, r5 +/* 803A71B4 003A4114 90 03 01 14 */ stw r0, 0x114(r3) +lbl_803A71B8: +/* 803A71B8 003A4118 90 83 00 4C */ stw r4, 0x4c(r3) +/* 803A71BC 003A411C 4E 80 00 20 */ blr + +.global sub_803a71c0 +sub_803a71c0: +/* 803A71C0 003A4120 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 803A71C4 003A4124 7C 08 02 A6 */ mflr r0 +/* 803A71C8 003A4128 90 01 00 54 */ stw r0, 0x54(r1) +/* 803A71CC 003A412C 39 61 00 50 */ addi r11, r1, 0x50 +/* 803A71D0 003A4130 4B FE 28 79 */ bl __save_gpr +/* 803A71D4 003A4134 8A C1 00 5B */ lbz r22, 0x5b(r1) +/* 803A71D8 003A4138 7C 6F 1B 78 */ mr r15, r3 +/* 803A71DC 003A413C 8A E1 00 5F */ lbz r23, 0x5f(r1) +/* 803A71E0 003A4140 7C 90 23 78 */ mr r16, r4 +/* 803A71E4 003A4144 A3 01 00 62 */ lhz r24, 0x62(r1) +/* 803A71E8 003A4148 7C BC 2B 78 */ mr r28, r5 +/* 803A71EC 003A414C A3 21 00 66 */ lhz r25, 0x66(r1) +/* 803A71F0 003A4150 7C D1 33 78 */ mr r17, r6 +/* 803A71F4 003A4154 8B 41 00 6B */ lbz r26, 0x6b(r1) +/* 803A71F8 003A4158 7C F2 3B 78 */ mr r18, r7 +/* 803A71FC 003A415C 8B 61 00 6F */ lbz r27, 0x6f(r1) +/* 803A7200 003A4160 7D 13 43 78 */ mr r19, r8 +/* 803A7204 003A4164 81 C1 00 74 */ lwz r14, 0x74(r1) +/* 803A7208 003A4168 7D 34 4B 78 */ mr r20, r9 +/* 803A720C 003A416C 7D 55 53 78 */ mr r21, r10 +/* 803A7210 003A4170 4B FF B2 ED */ bl dataGetMacro +/* 803A7214 003A4174 7C 7F 1B 79 */ or. r31, r3, r3 +/* 803A7218 003A4178 41 82 03 C4 */ beq lbl_803A75DC +/* 803A721C 003A417C 56 5E 06 31 */ rlwinm. r30, r18, 0, 0x18, 0x18 +/* 803A7220 003A4180 40 82 00 20 */ bne lbl_803A7240 +/* 803A7224 003A4184 7E C3 B3 78 */ mr r3, r22 +/* 803A7228 003A4188 7E A4 AB 78 */ mr r4, r21 +/* 803A722C 003A418C 4B FF 4F 49 */ bl seqGetMIDIPriority +/* 803A7230 003A4190 54 60 04 3E */ clrlwi r0, r3, 0x10 +/* 803A7234 003A4194 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A7238 003A4198 41 82 00 08 */ beq lbl_803A7240 +/* 803A723C 003A419C 54 70 06 3E */ clrlwi r16, r3, 0x18 +lbl_803A7240: +/* 803A7240 003A41A0 7C 1E 00 D0 */ neg r0, r30 +/* 803A7244 003A41A4 7E 03 83 78 */ mr r3, r16 +/* 803A7248 003A41A8 7C 00 F3 78 */ or r0, r0, r30 +/* 803A724C 003A41AC 7F 84 E3 78 */ mr r4, r28 +/* 803A7250 003A41B0 54 06 0F FE */ srwi r6, r0, 0x1f +/* 803A7254 003A41B4 7E 25 8B 78 */ mr r5, r17 +/* 803A7258 003A41B8 48 00 0B ED */ bl sub_803a7e44 +/* 803A725C 003A41BC 7C 7D 1B 78 */ mr r29, r3 +/* 803A7260 003A41C0 3C 1D 00 01 */ addis r0, r29, 1 +/* 803A7264 003A41C4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A7268 003A41C8 41 82 03 74 */ beq lbl_803A75DC +/* 803A726C 003A41CC 1C 1D 04 04 */ mulli r0, r29, 0x404 +/* 803A7270 003A41D0 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A7274 003A41D4 7F 83 02 14 */ add r28, r3, r0 +/* 803A7278 003A41D8 7F 83 E3 78 */ mr r3, r28 +/* 803A727C 003A41DC 48 00 04 C5 */ bl sub_803a7740 +/* 803A7280 003A41E0 80 1C 00 4C */ lwz r0, 0x4c(r28) +/* 803A7284 003A41E4 2C 00 00 02 */ cmpwi r0, 2 +/* 803A7288 003A41E8 41 82 00 EC */ beq lbl_803A7374 +/* 803A728C 003A41EC 2C 00 00 00 */ cmpwi r0, 0 +/* 803A7290 003A41F0 40 82 00 38 */ bne lbl_803A72C8 +/* 803A7294 003A41F4 80 7C 00 40 */ lwz r3, 0x40(r28) +/* 803A7298 003A41F8 28 03 00 00 */ cmplwi r3, 0 +/* 803A729C 003A41FC 40 82 00 10 */ bne lbl_803A72AC +/* 803A72A0 003A4200 80 1C 00 3C */ lwz r0, 0x3c(r28) +/* 803A72A4 003A4204 90 0D AE F4 */ stw r0, lbl_805A9AB4@sda21(r13) +/* 803A72A8 003A4208 48 00 00 0C */ b lbl_803A72B4 +lbl_803A72AC: +/* 803A72AC 003A420C 80 1C 00 3C */ lwz r0, 0x3c(r28) +/* 803A72B0 003A4210 90 03 00 3C */ stw r0, 0x3c(r3) +lbl_803A72B4: +/* 803A72B4 003A4214 80 7C 00 3C */ lwz r3, 0x3c(r28) +/* 803A72B8 003A4218 28 03 00 00 */ cmplwi r3, 0 +/* 803A72BC 003A421C 41 82 00 0C */ beq lbl_803A72C8 +/* 803A72C0 003A4220 80 1C 00 40 */ lwz r0, 0x40(r28) +/* 803A72C4 003A4224 90 03 00 40 */ stw r0, 0x40(r3) +lbl_803A72C8: +/* 803A72C8 003A4228 80 9C 00 98 */ lwz r4, 0x98(r28) +/* 803A72CC 003A422C 38 60 00 00 */ li r3, 0 +/* 803A72D0 003A4230 80 BC 00 9C */ lwz r5, 0x9c(r28) +/* 803A72D4 003A4234 7C 80 1A 78 */ xor r0, r4, r3 +/* 803A72D8 003A4238 7C A3 1A 78 */ xor r3, r5, r3 +/* 803A72DC 003A423C 7C 60 03 79 */ or. r0, r3, r0 +/* 803A72E0 003A4240 41 82 00 8C */ beq lbl_803A736C +/* 803A72E4 003A4244 38 00 FF FF */ li r0, -1 +/* 803A72E8 003A4248 7C A3 02 78 */ xor r3, r5, r0 +/* 803A72EC 003A424C 7C 80 02 78 */ xor r0, r4, r0 +/* 803A72F0 003A4250 7C 60 03 79 */ or. r0, r3, r0 +/* 803A72F4 003A4254 41 82 00 38 */ beq lbl_803A732C +/* 803A72F8 003A4258 80 7C 00 48 */ lwz r3, 0x48(r28) +/* 803A72FC 003A425C 28 03 00 00 */ cmplwi r3, 0 +/* 803A7300 003A4260 40 82 00 10 */ bne lbl_803A7310 +/* 803A7304 003A4264 80 1C 00 44 */ lwz r0, 0x44(r28) +/* 803A7308 003A4268 90 0D AE F0 */ stw r0, lbl_805A9AB0@sda21(r13) +/* 803A730C 003A426C 48 00 00 0C */ b lbl_803A7318 +lbl_803A7310: +/* 803A7310 003A4270 80 1C 00 44 */ lwz r0, 0x44(r28) +/* 803A7314 003A4274 90 03 00 44 */ stw r0, 0x44(r3) +lbl_803A7318: +/* 803A7318 003A4278 80 7C 00 44 */ lwz r3, 0x44(r28) +/* 803A731C 003A427C 28 03 00 00 */ cmplwi r3, 0 +/* 803A7320 003A4280 41 82 00 0C */ beq lbl_803A732C +/* 803A7324 003A4284 80 1C 00 48 */ lwz r0, 0x48(r28) +/* 803A7328 003A4288 90 03 00 48 */ stw r0, 0x48(r3) +lbl_803A732C: +/* 803A732C 003A428C 38 80 00 00 */ li r4, 0 +/* 803A7330 003A4290 3C 60 FF FC */ lis r3, 0xFFFBFFFB@ha +/* 803A7334 003A4294 90 9C 00 9C */ stw r4, 0x9c(r28) +/* 803A7338 003A4298 38 03 FF FB */ addi r0, r3, 0xFFFBFFFB@l +/* 803A733C 003A429C 38 60 FF FF */ li r3, -1 +/* 803A7340 003A42A0 90 9C 00 98 */ stw r4, 0x98(r28) +/* 803A7344 003A42A4 80 8D AE E8 */ lwz r4, lbl_805A9AA8@sda21(r13) +/* 803A7348 003A42A8 80 AD AE EC */ lwz r5, lbl_805A9AAC@sda21(r13) +/* 803A734C 003A42AC 90 BC 00 A4 */ stw r5, 0xa4(r28) +/* 803A7350 003A42B0 90 9C 00 A0 */ stw r4, 0xa0(r28) +/* 803A7354 003A42B4 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 803A7358 003A42B8 80 9C 01 14 */ lwz r4, 0x114(r28) +/* 803A735C 003A42BC 7C A0 00 38 */ and r0, r5, r0 +/* 803A7360 003A42C0 90 1C 01 18 */ stw r0, 0x118(r28) +/* 803A7364 003A42C4 7C 80 18 38 */ and r0, r4, r3 +/* 803A7368 003A42C8 90 1C 01 14 */ stw r0, 0x114(r28) +lbl_803A736C: +/* 803A736C 003A42CC 38 00 00 02 */ li r0, 2 +/* 803A7370 003A42D0 90 1C 00 4C */ stw r0, 0x4c(r28) +lbl_803A7374: +/* 803A7374 003A42D4 80 7C 01 18 */ lwz r3, 0x118(r28) +/* 803A7378 003A42D8 38 00 00 10 */ li r0, 0x10 +/* 803A737C 003A42DC 80 BC 01 14 */ lwz r5, 0x114(r28) +/* 803A7380 003A42E0 38 80 00 00 */ li r4, 0 +/* 803A7384 003A42E4 7C 60 00 38 */ and r0, r3, r0 +/* 803A7388 003A42E8 7F A3 EB 78 */ mr r3, r29 +/* 803A738C 003A42EC 60 00 00 02 */ ori r0, r0, 2 +/* 803A7390 003A42F0 7C A4 20 38 */ and r4, r5, r4 +/* 803A7394 003A42F4 90 1C 01 18 */ stw r0, 0x118(r28) +/* 803A7398 003A42F8 90 9C 01 14 */ stw r4, 0x114(r28) +/* 803A739C 003A42FC 48 00 BE 01 */ bl hwIsActive +/* 803A73A0 003A4300 28 03 00 00 */ cmplwi r3, 0 +/* 803A73A4 003A4304 41 82 00 10 */ beq lbl_803A73B4 +/* 803A73A8 003A4308 80 1C 01 18 */ lwz r0, 0x118(r28) +/* 803A73AC 003A430C 60 00 00 01 */ ori r0, r0, 1 +/* 803A73B0 003A4310 90 1C 01 18 */ stw r0, 0x118(r28) +lbl_803A73B4: +/* 803A73B4 003A4314 38 00 00 00 */ li r0, 0 +/* 803A73B8 003A4318 2C 1E 00 00 */ cmpwi r30, 0 +/* 803A73BC 003A431C 90 1C 00 9C */ stw r0, 0x9c(r28) +/* 803A73C0 003A4320 90 1C 00 98 */ stw r0, 0x98(r28) +/* 803A73C4 003A4324 41 82 00 44 */ beq lbl_803A7408 +/* 803A73C8 003A4328 38 00 00 01 */ li r0, 1 +/* 803A73CC 003A432C 56 52 06 7E */ clrlwi r18, r18, 0x19 +/* 803A73D0 003A4330 98 1C 01 1D */ stb r0, 0x11d(r28) +/* 803A73D4 003A4334 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 803A73D8 003A4338 38 80 00 FF */ li r4, 0xff +/* 803A73DC 003A433C 38 A0 00 01 */ li r5, 1 +/* 803A73E0 003A4340 48 00 A4 3D */ bl inpResetMidiCtrl +/* 803A73E4 003A4344 57 A3 06 3E */ clrlwi r3, r29, 0x18 +/* 803A73E8 003A4348 38 80 00 FF */ li r4, 0xff +/* 803A73EC 003A434C 48 00 A8 19 */ bl sub_803b1c04 +/* 803A73F0 003A4350 9B BC 02 0A */ stb r29, 0x20a(r28) +/* 803A73F4 003A4354 38 60 00 FF */ li r3, 0xff +/* 803A73F8 003A4358 38 00 00 00 */ li r0, 0 +/* 803A73FC 003A435C 98 7C 02 0B */ stb r3, 0x20b(r28) +/* 803A7400 003A4360 98 1C 02 0C */ stb r0, 0x20c(r28) +/* 803A7404 003A4364 48 00 00 14 */ b lbl_803A7418 +lbl_803A7408: +/* 803A7408 003A4368 98 1C 01 1D */ stb r0, 0x11d(r28) +/* 803A740C 003A436C 9A BC 02 0A */ stb r21, 0x20a(r28) +/* 803A7410 003A4370 9A DC 02 0B */ stb r22, 0x20b(r28) +/* 803A7414 003A4374 9A FC 02 0C */ stb r23, 0x20c(r28) +lbl_803A7418: +/* 803A7418 003A4378 B1 FC 01 02 */ sth r15, 0x102(r28) +/* 803A741C 003A437C 57 04 1B 78 */ rlwinm r4, r24, 3, 0xd, 0x1c +/* 803A7420 003A4380 7D 5F 22 14 */ add r10, r31, r4 +/* 803A7424 003A4384 56 40 44 2E */ rlwinm r0, r18, 8, 0x10, 0x17 +/* 803A7428 003A4388 B2 3C 01 00 */ sth r17, 0x100(r28) +/* 803A742C 003A438C 3C C0 75 30 */ lis r6, 0x7530 +/* 803A7430 003A4390 38 A0 04 00 */ li r5, 0x400 +/* 803A7434 003A4394 56 49 06 3E */ clrlwi r9, r18, 0x18 +/* 803A7438 003A4398 90 DC 01 10 */ stw r6, 0x110(r28) +/* 803A743C 003A439C 7D C3 00 34 */ cntlzw r3, r14 +/* 803A7440 003A43A0 54 66 DE 3E */ rlwinm r6, r3, 0x1b, 0x18, 0x1f +/* 803A7444 003A43A4 39 00 00 00 */ li r8, 0 +/* 803A7448 003A43A8 B0 BC 01 0E */ sth r5, 0x10e(r28) +/* 803A744C 003A43AC 51 E0 80 1E */ rlwimi r0, r15, 0x10, 0, 0xf +/* 803A7450 003A43B0 7F A5 03 78 */ or r5, r29, r0 +/* 803A7454 003A43B4 38 E0 FF FF */ li r7, -1 +/* 803A7458 003A43B8 93 FC 00 34 */ stw r31, 0x34(r28) +/* 803A745C 003A43BC 7F 83 E3 78 */ mr r3, r28 +/* 803A7460 003A43C0 88 01 00 73 */ lbz r0, 0x73(r1) +/* 803A7464 003A43C4 7E 04 83 78 */ mr r4, r16 +/* 803A7468 003A43C8 91 5C 00 38 */ stw r10, 0x38(r28) +/* 803A746C 003A43CC 9A 5C 01 2F */ stb r18, 0x12f(r28) +/* 803A7470 003A43D0 B1 3C 01 2C */ sth r9, 0x12c(r28) +/* 803A7474 003A43D4 99 1C 01 2E */ stb r8, 0x12e(r28) +/* 803A7478 003A43D8 9A 7C 02 08 */ stb r19, 0x208(r28) +/* 803A747C 003A43DC 9A 9C 02 09 */ stb r20, 0x209(r28) +/* 803A7480 003A43E0 9B 3C 02 0D */ stb r25, 0x20d(r28) +/* 803A7484 003A43E4 99 1C 00 8C */ stb r8, 0x8c(r28) +/* 803A7488 003A43E8 99 1C 00 8D */ stb r8, 0x8d(r28) +/* 803A748C 003A43EC 90 FC 00 EC */ stw r7, 0xec(r28) +/* 803A7490 003A43F0 90 FC 00 F0 */ stw r7, 0xf0(r28) +/* 803A7494 003A43F4 90 FC 01 08 */ stw r7, 0x108(r28) +/* 803A7498 003A43F8 9B 7C 02 0E */ stb r27, 0x20e(r28) +/* 803A749C 003A43FC 98 1C 02 0F */ stb r0, 0x20f(r28) +/* 803A74A0 003A4400 98 DC 02 10 */ stb r6, 0x210(r28) +/* 803A74A4 003A4404 99 1C 03 EE */ stb r8, 0x3ee(r28) +/* 803A74A8 003A4408 99 1C 03 ED */ stb r8, 0x3ed(r28) +/* 803A74AC 003A440C 99 1C 03 EC */ stb r8, 0x3ec(r28) +/* 803A74B0 003A4410 90 BC 00 F4 */ stw r5, 0xf4(r28) +/* 803A74B4 003A4414 48 00 07 45 */ bl voiceSetPriority +/* 803A74B8 003A4418 7F 83 E3 78 */ mr r3, r28 +/* 803A74BC 003A441C 7F 44 D3 78 */ mr r4, r26 +/* 803A74C0 003A4420 48 00 05 E5 */ bl sub_803a7aa4 +/* 803A74C4 003A4424 7C 6E 1B 78 */ mr r14, r3 +/* 803A74C8 003A4428 3C 0E 00 01 */ addis r0, r14, 1 +/* 803A74CC 003A442C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A74D0 003A4430 41 82 00 EC */ beq lbl_803A75BC +/* 803A74D4 003A4434 80 1C 00 4C */ lwz r0, 0x4c(r28) +/* 803A74D8 003A4438 2C 00 00 00 */ cmpwi r0, 0 +/* 803A74DC 003A443C 41 82 00 D8 */ beq lbl_803A75B4 +/* 803A74E0 003A4440 80 9C 00 98 */ lwz r4, 0x98(r28) +/* 803A74E4 003A4444 38 60 00 00 */ li r3, 0 +/* 803A74E8 003A4448 80 BC 00 9C */ lwz r5, 0x9c(r28) +/* 803A74EC 003A444C 7C 80 1A 78 */ xor r0, r4, r3 +/* 803A74F0 003A4450 7C A3 1A 78 */ xor r3, r5, r3 +/* 803A74F4 003A4454 7C 60 03 79 */ or. r0, r3, r0 +/* 803A74F8 003A4458 41 82 00 94 */ beq lbl_803A758C +/* 803A74FC 003A445C 38 00 FF FF */ li r0, -1 +/* 803A7500 003A4460 7C A3 02 78 */ xor r3, r5, r0 +/* 803A7504 003A4464 7C 80 02 78 */ xor r0, r4, r0 +/* 803A7508 003A4468 7C 60 03 79 */ or. r0, r3, r0 +/* 803A750C 003A446C 41 82 00 38 */ beq lbl_803A7544 +/* 803A7510 003A4470 80 7C 00 48 */ lwz r3, 0x48(r28) +/* 803A7514 003A4474 28 03 00 00 */ cmplwi r3, 0 +/* 803A7518 003A4478 40 82 00 10 */ bne lbl_803A7528 +/* 803A751C 003A447C 80 1C 00 44 */ lwz r0, 0x44(r28) +/* 803A7520 003A4480 90 0D AE F0 */ stw r0, lbl_805A9AB0@sda21(r13) +/* 803A7524 003A4484 48 00 00 0C */ b lbl_803A7530 +lbl_803A7528: +/* 803A7528 003A4488 80 1C 00 44 */ lwz r0, 0x44(r28) +/* 803A752C 003A448C 90 03 00 44 */ stw r0, 0x44(r3) +lbl_803A7530: +/* 803A7530 003A4490 80 7C 00 44 */ lwz r3, 0x44(r28) +/* 803A7534 003A4494 28 03 00 00 */ cmplwi r3, 0 +/* 803A7538 003A4498 41 82 00 0C */ beq lbl_803A7544 +/* 803A753C 003A449C 80 1C 00 48 */ lwz r0, 0x48(r28) +/* 803A7540 003A44A0 90 03 00 48 */ stw r0, 0x48(r3) +lbl_803A7544: +/* 803A7544 003A44A4 7F 83 E3 78 */ mr r3, r28 +/* 803A7548 003A44A8 4B FF 35 55 */ bl synthForceLowPrecisionUpdate +/* 803A754C 003A44AC 38 80 00 00 */ li r4, 0 +/* 803A7550 003A44B0 3C 60 FF FC */ lis r3, 0xFFFBFFFB@ha +/* 803A7554 003A44B4 90 9C 00 9C */ stw r4, 0x9c(r28) +/* 803A7558 003A44B8 38 03 FF FB */ addi r0, r3, 0xFFFBFFFB@l +/* 803A755C 003A44BC 38 60 FF FF */ li r3, -1 +/* 803A7560 003A44C0 90 9C 00 98 */ stw r4, 0x98(r28) +/* 803A7564 003A44C4 80 8D AE E8 */ lwz r4, lbl_805A9AA8@sda21(r13) +/* 803A7568 003A44C8 80 AD AE EC */ lwz r5, lbl_805A9AAC@sda21(r13) +/* 803A756C 003A44CC 90 BC 00 A4 */ stw r5, 0xa4(r28) +/* 803A7570 003A44D0 90 9C 00 A0 */ stw r4, 0xa0(r28) +/* 803A7574 003A44D4 80 BC 01 18 */ lwz r5, 0x118(r28) +/* 803A7578 003A44D8 80 9C 01 14 */ lwz r4, 0x114(r28) +/* 803A757C 003A44DC 7C A0 00 38 */ and r0, r5, r0 +/* 803A7580 003A44E0 90 1C 01 18 */ stw r0, 0x118(r28) +/* 803A7584 003A44E4 7C 80 18 38 */ and r0, r4, r3 +/* 803A7588 003A44E8 90 1C 01 14 */ stw r0, 0x114(r28) +lbl_803A758C: +/* 803A758C 003A44EC 80 0D AE F4 */ lwz r0, lbl_805A9AB4@sda21(r13) +/* 803A7590 003A44F0 28 00 00 00 */ cmplwi r0, 0 +/* 803A7594 003A44F4 90 1C 00 3C */ stw r0, 0x3c(r28) +/* 803A7598 003A44F8 41 82 00 0C */ beq lbl_803A75A4 +/* 803A759C 003A44FC 80 6D AE F4 */ lwz r3, lbl_805A9AB4@sda21(r13) +/* 803A75A0 003A4500 93 83 00 40 */ stw r28, 0x40(r3) +lbl_803A75A4: +/* 803A75A4 003A4504 38 00 00 00 */ li r0, 0 +/* 803A75A8 003A4508 90 1C 00 40 */ stw r0, 0x40(r28) +/* 803A75AC 003A450C 93 8D AE F4 */ stw r28, lbl_805A9AB4@sda21(r13) +/* 803A75B0 003A4510 90 1C 00 4C */ stw r0, 0x4c(r28) +lbl_803A75B4: +/* 803A75B4 003A4514 7D C3 73 78 */ mr r3, r14 +/* 803A75B8 003A4518 48 00 00 28 */ b lbl_803A75E0 +lbl_803A75BC: +/* 803A75BC 003A451C 7F A3 EB 78 */ mr r3, r29 +/* 803A75C0 003A4520 48 00 BB DD */ bl hwIsActive +/* 803A75C4 003A4524 28 03 00 00 */ cmplwi r3, 0 +/* 803A75C8 003A4528 41 82 00 0C */ beq lbl_803A75D4 +/* 803A75CC 003A452C 7F A3 EB 78 */ mr r3, r29 +/* 803A75D0 003A4530 48 00 BD BD */ bl hwBreak +lbl_803A75D4: +/* 803A75D4 003A4534 7F 83 E3 78 */ mr r3, r28 +/* 803A75D8 003A4538 48 00 0C CD */ bl voiceFree +lbl_803A75DC: +/* 803A75DC 003A453C 38 60 FF FF */ li r3, -1 +lbl_803A75E0: +/* 803A75E0 003A4540 39 61 00 50 */ addi r11, r1, 0x50 +/* 803A75E4 003A4544 4B FE 24 B1 */ bl __restore_gpr +/* 803A75E8 003A4548 80 01 00 54 */ lwz r0, 0x54(r1) +/* 803A75EC 003A454C 7C 08 03 A6 */ mtlr r0 +/* 803A75F0 003A4550 38 21 00 50 */ addi r1, r1, 0x50 +/* 803A75F4 003A4554 4E 80 00 20 */ blr + +.global macInit +macInit: +/* 803A75F8 003A4558 39 00 00 00 */ li r8, 0 +/* 803A75FC 003A455C 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803A7600 003A4560 91 0D AE F4 */ stw r8, lbl_805A9AB4@sda21(r13) +/* 803A7604 003A4564 7D 09 43 78 */ mr r9, r8 +/* 803A7608 003A4568 38 E3 00 50 */ addi r7, r3, lbl_80550050@l +/* 803A760C 003A456C 39 40 00 00 */ li r10, 0 +/* 803A7610 003A4570 91 0D AE F0 */ stw r8, lbl_805A9AB0@sda21(r13) +/* 803A7614 003A4574 38 A0 00 02 */ li r5, 2 +/* 803A7618 003A4578 91 0D AE EC */ stw r8, lbl_805A9AAC@sda21(r13) +/* 803A761C 003A457C 91 0D AE E8 */ stw r8, lbl_805A9AA8@sda21(r13) +/* 803A7620 003A4580 48 00 00 30 */ b lbl_803A7650 +lbl_803A7624: +/* 803A7624 003A4584 80 CD AE 78 */ lwz r6, lbl_805A9A38@sda21(r13) +/* 803A7628 003A4588 38 89 00 34 */ addi r4, r9, 0x34 +/* 803A762C 003A458C 38 69 00 4C */ addi r3, r9, 0x4c +/* 803A7630 003A4590 38 09 00 AA */ addi r0, r9, 0xaa +/* 803A7634 003A4594 7D 06 21 2E */ stwx r8, r6, r4 +/* 803A7638 003A4598 39 29 04 04 */ addi r9, r9, 0x404 +/* 803A763C 003A459C 39 4A 00 01 */ addi r10, r10, 1 +/* 803A7640 003A45A0 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 803A7644 003A45A4 7C A4 19 2E */ stwx r5, r4, r3 +/* 803A7648 003A45A8 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A764C 003A45AC 7D 03 03 2E */ sthx r8, r3, r0 +lbl_803A7650: +/* 803A7650 003A45B0 88 07 02 10 */ lbz r0, 0x210(r7) +/* 803A7654 003A45B4 7C 0A 00 40 */ cmplw r10, r0 +/* 803A7658 003A45B8 41 80 FF CC */ blt lbl_803A7624 +/* 803A765C 003A45BC 4E 80 00 20 */ blr diff --git a/asm/musyx/synthvoice.s b/asm/musyx/synthvoice.s new file mode 100644 index 00000000..d10e505a --- /dev/null +++ b/asm/musyx/synthvoice.s @@ -0,0 +1,1948 @@ +.include "macros.inc" + +.section .text, "ax" + +.global vidInit +vidInit: +/* 803A7660 003A45C0 3C 60 80 56 */ lis r3, lbl_8055D350@ha +/* 803A7664 003A45C4 38 80 00 00 */ li r4, 0 +/* 803A7668 003A45C8 38 63 D3 50 */ addi r3, r3, lbl_8055D350@l +/* 803A766C 003A45CC 38 00 00 10 */ li r0, 0x10 +/* 803A7670 003A45D0 90 8D AF 08 */ stw r4, lbl_805A9AC8@sda21(r13) +/* 803A7674 003A45D4 38 C0 00 00 */ li r6, 0 +/* 803A7678 003A45D8 38 A0 00 00 */ li r5, 0 +/* 803A767C 003A45DC 90 8D AF 04 */ stw r4, lbl_805A9AC4@sda21(r13) +/* 803A7680 003A45E0 90 6D AF 00 */ stw r3, lbl_805A9AC0@sda21(r13) +/* 803A7684 003A45E4 7C 09 03 A6 */ mtctr r0 +lbl_803A7688: +/* 803A7688 003A45E8 28 06 00 00 */ cmplwi r6, 0 +/* 803A768C 003A45EC 90 C3 00 04 */ stw r6, 4(r3) +/* 803A7690 003A45F0 41 82 00 08 */ beq lbl_803A7698 +/* 803A7694 003A45F4 90 66 00 00 */ stw r3, 0(r6) +lbl_803A7698: +/* 803A7698 003A45F8 7C 66 1B 79 */ or. r6, r3, r3 +/* 803A769C 003A45FC 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803A76A0 003A4600 38 63 00 10 */ addi r3, r3, 0x10 +/* 803A76A4 003A4604 41 82 00 08 */ beq lbl_803A76AC +/* 803A76A8 003A4608 90 66 00 00 */ stw r3, 0(r6) +lbl_803A76AC: +/* 803A76AC 003A460C 7C 66 1B 79 */ or. r6, r3, r3 +/* 803A76B0 003A4610 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803A76B4 003A4614 38 63 00 10 */ addi r3, r3, 0x10 +/* 803A76B8 003A4618 41 82 00 08 */ beq lbl_803A76C0 +/* 803A76BC 003A461C 90 66 00 00 */ stw r3, 0(r6) +lbl_803A76C0: +/* 803A76C0 003A4620 7C 66 1B 79 */ or. r6, r3, r3 +/* 803A76C4 003A4624 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803A76C8 003A4628 38 63 00 10 */ addi r3, r3, 0x10 +/* 803A76CC 003A462C 41 82 00 08 */ beq lbl_803A76D4 +/* 803A76D0 003A4630 90 66 00 00 */ stw r3, 0(r6) +lbl_803A76D4: +/* 803A76D4 003A4634 7C 66 1B 79 */ or. r6, r3, r3 +/* 803A76D8 003A4638 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803A76DC 003A463C 38 63 00 10 */ addi r3, r3, 0x10 +/* 803A76E0 003A4640 41 82 00 08 */ beq lbl_803A76E8 +/* 803A76E4 003A4644 90 66 00 00 */ stw r3, 0(r6) +lbl_803A76E8: +/* 803A76E8 003A4648 7C 66 1B 79 */ or. r6, r3, r3 +/* 803A76EC 003A464C 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803A76F0 003A4650 38 63 00 10 */ addi r3, r3, 0x10 +/* 803A76F4 003A4654 41 82 00 08 */ beq lbl_803A76FC +/* 803A76F8 003A4658 90 66 00 00 */ stw r3, 0(r6) +lbl_803A76FC: +/* 803A76FC 003A465C 7C 66 1B 79 */ or. r6, r3, r3 +/* 803A7700 003A4660 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803A7704 003A4664 38 63 00 10 */ addi r3, r3, 0x10 +/* 803A7708 003A4668 41 82 00 08 */ beq lbl_803A7710 +/* 803A770C 003A466C 90 66 00 00 */ stw r3, 0(r6) +lbl_803A7710: +/* 803A7710 003A4670 7C 66 1B 79 */ or. r6, r3, r3 +/* 803A7714 003A4674 90 C3 00 14 */ stw r6, 0x14(r3) +/* 803A7718 003A4678 38 63 00 10 */ addi r3, r3, 0x10 +/* 803A771C 003A467C 41 82 00 08 */ beq lbl_803A7724 +/* 803A7720 003A4680 90 66 00 00 */ stw r3, 0(r6) +lbl_803A7724: +/* 803A7724 003A4684 7C 66 1B 78 */ mr r6, r3 +/* 803A7728 003A4688 38 63 00 10 */ addi r3, r3, 0x10 +/* 803A772C 003A468C 38 A5 00 07 */ addi r5, r5, 7 +/* 803A7730 003A4690 42 00 FF 58 */ bdnz lbl_803A7688 +/* 803A7734 003A4694 38 00 00 00 */ li r0, 0 +/* 803A7738 003A4698 90 06 00 00 */ stw r0, 0(r6) +/* 803A773C 003A469C 4E 80 00 20 */ blr + +.global sub_803a7740 +sub_803a7740: +/* 803A7740 003A46A0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A7744 003A46A4 7C 08 02 A6 */ mflr r0 +/* 803A7748 003A46A8 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A774C 003A46AC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A7750 003A46B0 7C 7F 1B 78 */ mr r31, r3 +/* 803A7754 003A46B4 80 83 00 F4 */ lwz r4, 0xf4(r3) +/* 803A7758 003A46B8 3C 04 00 01 */ addis r0, r4, 1 +/* 803A775C 003A46BC 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A7760 003A46C0 41 82 03 1C */ beq lbl_803A7A7C +/* 803A7764 003A46C4 48 00 17 D5 */ bl voiceResetLastStarted +/* 803A7768 003A46C8 80 7F 00 F0 */ lwz r3, 0xf0(r31) +/* 803A776C 003A46CC 3C 03 00 01 */ addis r0, r3, 1 +/* 803A7770 003A46D0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A7774 003A46D4 41 82 00 BC */ beq lbl_803A7830 +/* 803A7778 003A46D8 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A777C 003A46DC 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A7780 003A46E0 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A7784 003A46E4 80 9F 00 EC */ lwz r4, 0xec(r31) +/* 803A7788 003A46E8 7C 63 02 14 */ add r3, r3, r0 +/* 803A778C 003A46EC 90 83 00 EC */ stw r4, 0xec(r3) +/* 803A7790 003A46F0 80 7F 00 EC */ lwz r3, 0xec(r31) +/* 803A7794 003A46F4 3C 03 00 01 */ addis r0, r3, 1 +/* 803A7798 003A46F8 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A779C 003A46FC 41 82 00 1C */ beq lbl_803A77B8 +/* 803A77A0 003A4700 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A77A4 003A4704 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A77A8 003A4708 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A77AC 003A470C 80 9F 00 F0 */ lwz r4, 0xf0(r31) +/* 803A77B0 003A4710 7C 63 02 14 */ add r3, r3, r0 +/* 803A77B4 003A4714 90 83 00 F0 */ stw r4, 0xf0(r3) +lbl_803A77B8: +/* 803A77B8 003A4718 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A77BC 003A471C 80 83 00 04 */ lwz r4, 4(r3) +/* 803A77C0 003A4720 28 04 00 00 */ cmplwi r4, 0 +/* 803A77C4 003A4724 41 82 00 10 */ beq lbl_803A77D4 +/* 803A77C8 003A4728 80 03 00 00 */ lwz r0, 0(r3) +/* 803A77CC 003A472C 90 04 00 00 */ stw r0, 0(r4) +/* 803A77D0 003A4730 48 00 00 0C */ b lbl_803A77DC +lbl_803A77D4: +/* 803A77D4 003A4734 80 03 00 00 */ lwz r0, 0(r3) +/* 803A77D8 003A4738 90 0D AF 04 */ stw r0, lbl_805A9AC4@sda21(r13) +lbl_803A77DC: +/* 803A77DC 003A473C 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A77E0 003A4740 80 83 00 00 */ lwz r4, 0(r3) +/* 803A77E4 003A4744 28 04 00 00 */ cmplwi r4, 0 +/* 803A77E8 003A4748 41 82 00 0C */ beq lbl_803A77F4 +/* 803A77EC 003A474C 80 03 00 04 */ lwz r0, 4(r3) +/* 803A77F0 003A4750 90 04 00 04 */ stw r0, 4(r4) +lbl_803A77F4: +/* 803A77F4 003A4754 80 0D AF 00 */ lwz r0, lbl_805A9AC0@sda21(r13) +/* 803A77F8 003A4758 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A77FC 003A475C 90 03 00 00 */ stw r0, 0(r3) +/* 803A7800 003A4760 80 6D AF 00 */ lwz r3, lbl_805A9AC0@sda21(r13) +/* 803A7804 003A4764 28 03 00 00 */ cmplwi r3, 0 +/* 803A7808 003A4768 41 82 00 0C */ beq lbl_803A7814 +/* 803A780C 003A476C 80 1F 00 F8 */ lwz r0, 0xf8(r31) +/* 803A7810 003A4770 90 03 00 04 */ stw r0, 4(r3) +lbl_803A7814: +/* 803A7814 003A4774 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7818 003A4778 38 80 00 00 */ li r4, 0 +/* 803A781C 003A477C 90 83 00 04 */ stw r4, 4(r3) +/* 803A7820 003A4780 80 1F 00 F8 */ lwz r0, 0xf8(r31) +/* 803A7824 003A4784 90 0D AF 00 */ stw r0, lbl_805A9AC0@sda21(r13) +/* 803A7828 003A4788 90 9F 00 F8 */ stw r4, 0xf8(r31) +/* 803A782C 003A478C 48 00 02 50 */ b lbl_803A7A7C +lbl_803A7830: +/* 803A7830 003A4790 80 BF 00 EC */ lwz r5, 0xec(r31) +/* 803A7834 003A4794 3C 05 00 01 */ addis r0, r5, 1 +/* 803A7838 003A4798 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A783C 003A479C 41 82 00 D4 */ beq lbl_803A7910 +/* 803A7840 003A47A0 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7844 003A47A4 38 80 FF FF */ li r4, -1 +/* 803A7848 003A47A8 90 A3 00 0C */ stw r5, 0xc(r3) +/* 803A784C 003A47AC 80 1F 00 EC */ lwz r0, 0xec(r31) +/* 803A7850 003A47B0 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A7854 003A47B4 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803A7858 003A47B8 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A785C 003A47BC 7C 63 02 14 */ add r3, r3, r0 +/* 803A7860 003A47C0 90 83 00 F0 */ stw r4, 0xf0(r3) +/* 803A7864 003A47C4 80 1F 00 EC */ lwz r0, 0xec(r31) +/* 803A7868 003A47C8 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A786C 003A47CC 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803A7870 003A47D0 80 9F 00 FC */ lwz r4, 0xfc(r31) +/* 803A7874 003A47D4 1C 00 04 04 */ mulli r0, r0, 0x404 +/* 803A7878 003A47D8 7C 63 02 14 */ add r3, r3, r0 +/* 803A787C 003A47DC 90 83 00 FC */ stw r4, 0xfc(r3) +/* 803A7880 003A47E0 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7884 003A47E4 80 1F 00 FC */ lwz r0, 0xfc(r31) +/* 803A7888 003A47E8 7C 03 00 40 */ cmplw r3, r0 +/* 803A788C 003A47EC 41 82 00 74 */ beq lbl_803A7900 +/* 803A7890 003A47F0 80 83 00 04 */ lwz r4, 4(r3) +/* 803A7894 003A47F4 28 04 00 00 */ cmplwi r4, 0 +/* 803A7898 003A47F8 41 82 00 10 */ beq lbl_803A78A8 +/* 803A789C 003A47FC 80 03 00 00 */ lwz r0, 0(r3) +/* 803A78A0 003A4800 90 04 00 00 */ stw r0, 0(r4) +/* 803A78A4 003A4804 48 00 00 0C */ b lbl_803A78B0 +lbl_803A78A8: +/* 803A78A8 003A4808 80 03 00 00 */ lwz r0, 0(r3) +/* 803A78AC 003A480C 90 0D AF 04 */ stw r0, lbl_805A9AC4@sda21(r13) +lbl_803A78B0: +/* 803A78B0 003A4810 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A78B4 003A4814 80 83 00 00 */ lwz r4, 0(r3) +/* 803A78B8 003A4818 28 04 00 00 */ cmplwi r4, 0 +/* 803A78BC 003A481C 41 82 00 0C */ beq lbl_803A78C8 +/* 803A78C0 003A4820 80 03 00 04 */ lwz r0, 4(r3) +/* 803A78C4 003A4824 90 04 00 04 */ stw r0, 4(r4) +lbl_803A78C8: +/* 803A78C8 003A4828 80 0D AF 00 */ lwz r0, lbl_805A9AC0@sda21(r13) +/* 803A78CC 003A482C 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A78D0 003A4830 90 03 00 00 */ stw r0, 0(r3) +/* 803A78D4 003A4834 80 6D AF 00 */ lwz r3, lbl_805A9AC0@sda21(r13) +/* 803A78D8 003A4838 28 03 00 00 */ cmplwi r3, 0 +/* 803A78DC 003A483C 41 82 00 0C */ beq lbl_803A78E8 +/* 803A78E0 003A4840 80 1F 00 F8 */ lwz r0, 0xf8(r31) +/* 803A78E4 003A4844 90 03 00 04 */ stw r0, 4(r3) +lbl_803A78E8: +/* 803A78E8 003A4848 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A78EC 003A484C 38 80 00 00 */ li r4, 0 +/* 803A78F0 003A4850 90 83 00 04 */ stw r4, 4(r3) +/* 803A78F4 003A4854 80 1F 00 F8 */ lwz r0, 0xf8(r31) +/* 803A78F8 003A4858 90 0D AF 00 */ stw r0, lbl_805A9AC0@sda21(r13) +/* 803A78FC 003A485C 90 9F 00 F8 */ stw r4, 0xf8(r31) +lbl_803A7900: +/* 803A7900 003A4860 38 00 00 00 */ li r0, 0 +/* 803A7904 003A4864 90 1F 00 F8 */ stw r0, 0xf8(r31) +/* 803A7908 003A4868 90 1F 00 FC */ stw r0, 0xfc(r31) +/* 803A790C 003A486C 48 00 01 70 */ b lbl_803A7A7C +lbl_803A7910: +/* 803A7910 003A4870 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7914 003A4874 80 1F 00 FC */ lwz r0, 0xfc(r31) +/* 803A7918 003A4878 7C 03 00 40 */ cmplw r3, r0 +/* 803A791C 003A487C 41 82 00 EC */ beq lbl_803A7A08 +/* 803A7920 003A4880 80 83 00 04 */ lwz r4, 4(r3) +/* 803A7924 003A4884 28 04 00 00 */ cmplwi r4, 0 +/* 803A7928 003A4888 41 82 00 10 */ beq lbl_803A7938 +/* 803A792C 003A488C 80 03 00 00 */ lwz r0, 0(r3) +/* 803A7930 003A4890 90 04 00 00 */ stw r0, 0(r4) +/* 803A7934 003A4894 48 00 00 0C */ b lbl_803A7940 +lbl_803A7938: +/* 803A7938 003A4898 80 03 00 00 */ lwz r0, 0(r3) +/* 803A793C 003A489C 90 0D AF 04 */ stw r0, lbl_805A9AC4@sda21(r13) +lbl_803A7940: +/* 803A7940 003A48A0 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7944 003A48A4 80 83 00 00 */ lwz r4, 0(r3) +/* 803A7948 003A48A8 28 04 00 00 */ cmplwi r4, 0 +/* 803A794C 003A48AC 41 82 00 0C */ beq lbl_803A7958 +/* 803A7950 003A48B0 80 03 00 04 */ lwz r0, 4(r3) +/* 803A7954 003A48B4 90 04 00 04 */ stw r0, 4(r4) +lbl_803A7958: +/* 803A7958 003A48B8 80 0D AF 00 */ lwz r0, lbl_805A9AC0@sda21(r13) +/* 803A795C 003A48BC 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7960 003A48C0 90 03 00 00 */ stw r0, 0(r3) +/* 803A7964 003A48C4 80 6D AF 00 */ lwz r3, lbl_805A9AC0@sda21(r13) +/* 803A7968 003A48C8 28 03 00 00 */ cmplwi r3, 0 +/* 803A796C 003A48CC 41 82 00 0C */ beq lbl_803A7978 +/* 803A7970 003A48D0 80 1F 00 F8 */ lwz r0, 0xf8(r31) +/* 803A7974 003A48D4 90 03 00 04 */ stw r0, 4(r3) +lbl_803A7978: +/* 803A7978 003A48D8 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A797C 003A48DC 38 80 00 00 */ li r4, 0 +/* 803A7980 003A48E0 90 83 00 04 */ stw r4, 4(r3) +/* 803A7984 003A48E4 80 1F 00 F8 */ lwz r0, 0xf8(r31) +/* 803A7988 003A48E8 90 0D AF 00 */ stw r0, lbl_805A9AC0@sda21(r13) +/* 803A798C 003A48EC 90 9F 00 F8 */ stw r4, 0xf8(r31) +/* 803A7990 003A48F0 80 7F 00 FC */ lwz r3, 0xfc(r31) +/* 803A7994 003A48F4 80 83 00 04 */ lwz r4, 4(r3) +/* 803A7998 003A48F8 28 04 00 00 */ cmplwi r4, 0 +/* 803A799C 003A48FC 41 82 00 10 */ beq lbl_803A79AC +/* 803A79A0 003A4900 80 03 00 00 */ lwz r0, 0(r3) +/* 803A79A4 003A4904 90 04 00 00 */ stw r0, 0(r4) +/* 803A79A8 003A4908 48 00 00 0C */ b lbl_803A79B4 +lbl_803A79AC: +/* 803A79AC 003A490C 80 03 00 00 */ lwz r0, 0(r3) +/* 803A79B0 003A4910 90 0D AF 04 */ stw r0, lbl_805A9AC4@sda21(r13) +lbl_803A79B4: +/* 803A79B4 003A4914 80 7F 00 FC */ lwz r3, 0xfc(r31) +/* 803A79B8 003A4918 80 83 00 00 */ lwz r4, 0(r3) +/* 803A79BC 003A491C 28 04 00 00 */ cmplwi r4, 0 +/* 803A79C0 003A4920 41 82 00 0C */ beq lbl_803A79CC +/* 803A79C4 003A4924 80 03 00 04 */ lwz r0, 4(r3) +/* 803A79C8 003A4928 90 04 00 04 */ stw r0, 4(r4) +lbl_803A79CC: +/* 803A79CC 003A492C 80 0D AF 00 */ lwz r0, lbl_805A9AC0@sda21(r13) +/* 803A79D0 003A4930 80 7F 00 FC */ lwz r3, 0xfc(r31) +/* 803A79D4 003A4934 90 03 00 00 */ stw r0, 0(r3) +/* 803A79D8 003A4938 80 6D AF 00 */ lwz r3, lbl_805A9AC0@sda21(r13) +/* 803A79DC 003A493C 28 03 00 00 */ cmplwi r3, 0 +/* 803A79E0 003A4940 41 82 00 0C */ beq lbl_803A79EC +/* 803A79E4 003A4944 80 1F 00 FC */ lwz r0, 0xfc(r31) +/* 803A79E8 003A4948 90 03 00 04 */ stw r0, 4(r3) +lbl_803A79EC: +/* 803A79EC 003A494C 80 7F 00 FC */ lwz r3, 0xfc(r31) +/* 803A79F0 003A4950 38 80 00 00 */ li r4, 0 +/* 803A79F4 003A4954 90 83 00 04 */ stw r4, 4(r3) +/* 803A79F8 003A4958 80 1F 00 FC */ lwz r0, 0xfc(r31) +/* 803A79FC 003A495C 90 0D AF 00 */ stw r0, lbl_805A9AC0@sda21(r13) +/* 803A7A00 003A4960 90 9F 00 FC */ stw r4, 0xfc(r31) +/* 803A7A04 003A4964 48 00 00 78 */ b lbl_803A7A7C +lbl_803A7A08: +/* 803A7A08 003A4968 80 83 00 04 */ lwz r4, 4(r3) +/* 803A7A0C 003A496C 28 04 00 00 */ cmplwi r4, 0 +/* 803A7A10 003A4970 41 82 00 10 */ beq lbl_803A7A20 +/* 803A7A14 003A4974 80 03 00 00 */ lwz r0, 0(r3) +/* 803A7A18 003A4978 90 04 00 00 */ stw r0, 0(r4) +/* 803A7A1C 003A497C 48 00 00 0C */ b lbl_803A7A28 +lbl_803A7A20: +/* 803A7A20 003A4980 80 03 00 00 */ lwz r0, 0(r3) +/* 803A7A24 003A4984 90 0D AF 04 */ stw r0, lbl_805A9AC4@sda21(r13) +lbl_803A7A28: +/* 803A7A28 003A4988 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7A2C 003A498C 80 83 00 00 */ lwz r4, 0(r3) +/* 803A7A30 003A4990 28 04 00 00 */ cmplwi r4, 0 +/* 803A7A34 003A4994 41 82 00 0C */ beq lbl_803A7A40 +/* 803A7A38 003A4998 80 03 00 04 */ lwz r0, 4(r3) +/* 803A7A3C 003A499C 90 04 00 04 */ stw r0, 4(r4) +lbl_803A7A40: +/* 803A7A40 003A49A0 80 0D AF 00 */ lwz r0, lbl_805A9AC0@sda21(r13) +/* 803A7A44 003A49A4 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7A48 003A49A8 90 03 00 00 */ stw r0, 0(r3) +/* 803A7A4C 003A49AC 80 6D AF 00 */ lwz r3, lbl_805A9AC0@sda21(r13) +/* 803A7A50 003A49B0 28 03 00 00 */ cmplwi r3, 0 +/* 803A7A54 003A49B4 41 82 00 0C */ beq lbl_803A7A60 +/* 803A7A58 003A49B8 80 1F 00 F8 */ lwz r0, 0xf8(r31) +/* 803A7A5C 003A49BC 90 03 00 04 */ stw r0, 4(r3) +lbl_803A7A60: +/* 803A7A60 003A49C0 80 7F 00 F8 */ lwz r3, 0xf8(r31) +/* 803A7A64 003A49C4 38 80 00 00 */ li r4, 0 +/* 803A7A68 003A49C8 90 83 00 04 */ stw r4, 4(r3) +/* 803A7A6C 003A49CC 80 1F 00 F8 */ lwz r0, 0xf8(r31) +/* 803A7A70 003A49D0 90 0D AF 00 */ stw r0, lbl_805A9AC0@sda21(r13) +/* 803A7A74 003A49D4 90 9F 00 F8 */ stw r4, 0xf8(r31) +/* 803A7A78 003A49D8 90 9F 00 FC */ stw r4, 0xfc(r31) +lbl_803A7A7C: +/* 803A7A7C 003A49DC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A7A80 003A49E0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A7A84 003A49E4 7C 08 03 A6 */ mtlr r0 +/* 803A7A88 003A49E8 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A7A8C 003A49EC 4E 80 00 20 */ blr + +.global vidMakeRoot +vidMakeRoot: +/* 803A7A90 003A49F0 80 03 00 F8 */ lwz r0, 0xf8(r3) +/* 803A7A94 003A49F4 90 03 00 FC */ stw r0, 0xfc(r3) +/* 803A7A98 003A49F8 80 63 00 F8 */ lwz r3, 0xf8(r3) +/* 803A7A9C 003A49FC 80 63 00 08 */ lwz r3, 8(r3) +/* 803A7AA0 003A4A00 4E 80 00 20 */ blr + +.global sub_803a7aa4 +sub_803a7aa4: +/* 803A7AA4 003A4A04 80 CD AF 08 */ lwz r6, lbl_805A9AC8@sda21(r13) +lbl_803A7AA8: +/* 803A7AA8 003A4A08 3C 06 00 01 */ addis r0, r6, 1 +/* 803A7AAC 003A4A0C 7C C5 33 78 */ mr r5, r6 +/* 803A7AB0 003A4A10 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A7AB4 003A4A14 38 C6 00 01 */ addi r6, r6, 1 +/* 803A7AB8 003A4A18 41 82 FF F0 */ beq lbl_803A7AA8 +/* 803A7ABC 003A4A1C 90 CD AF 08 */ stw r6, lbl_805A9AC8@sda21(r13) +/* 803A7AC0 003A4A20 7C A6 2B 78 */ mr r6, r5 +/* 803A7AC4 003A4A24 80 ED AF 04 */ lwz r7, lbl_805A9AC4@sda21(r13) +/* 803A7AC8 003A4A28 39 00 00 00 */ li r8, 0 +/* 803A7ACC 003A4A2C 48 00 00 3C */ b lbl_803A7B08 +lbl_803A7AD0: +/* 803A7AD0 003A4A30 80 07 00 08 */ lwz r0, 8(r7) +/* 803A7AD4 003A4A34 7C 00 30 40 */ cmplw r0, r6 +/* 803A7AD8 003A4A38 41 81 00 38 */ bgt lbl_803A7B10 +/* 803A7ADC 003A4A3C 40 82 00 24 */ bne lbl_803A7B00 +/* 803A7AE0 003A4A40 80 CD AF 08 */ lwz r6, lbl_805A9AC8@sda21(r13) +lbl_803A7AE4: +/* 803A7AE4 003A4A44 3C 06 00 01 */ addis r0, r6, 1 +/* 803A7AE8 003A4A48 7C C5 33 78 */ mr r5, r6 +/* 803A7AEC 003A4A4C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A7AF0 003A4A50 38 C6 00 01 */ addi r6, r6, 1 +/* 803A7AF4 003A4A54 41 82 FF F0 */ beq lbl_803A7AE4 +/* 803A7AF8 003A4A58 90 CD AF 08 */ stw r6, lbl_805A9AC8@sda21(r13) +/* 803A7AFC 003A4A5C 7C A6 2B 78 */ mr r6, r5 +lbl_803A7B00: +/* 803A7B00 003A4A60 7C E8 3B 78 */ mr r8, r7 +/* 803A7B04 003A4A64 80 E7 00 00 */ lwz r7, 0(r7) +lbl_803A7B08: +/* 803A7B08 003A4A68 28 07 00 00 */ cmplwi r7, 0 +/* 803A7B0C 003A4A6C 40 82 FF C4 */ bne lbl_803A7AD0 +lbl_803A7B10: +/* 803A7B10 003A4A70 80 AD AF 00 */ lwz r5, lbl_805A9AC0@sda21(r13) +/* 803A7B14 003A4A74 28 05 00 00 */ cmplwi r5, 0 +/* 803A7B18 003A4A78 7C A9 2B 78 */ mr r9, r5 +/* 803A7B1C 003A4A7C 40 82 00 0C */ bne lbl_803A7B28 +/* 803A7B20 003A4A80 38 60 FF FF */ li r3, -1 +/* 803A7B24 003A4A84 4E 80 00 20 */ blr +lbl_803A7B28: +/* 803A7B28 003A4A88 80 A5 00 00 */ lwz r5, 0(r5) +/* 803A7B2C 003A4A8C 28 05 00 00 */ cmplwi r5, 0 +/* 803A7B30 003A4A90 90 AD AF 00 */ stw r5, lbl_805A9AC0@sda21(r13) +/* 803A7B34 003A4A94 41 82 00 0C */ beq lbl_803A7B40 +/* 803A7B38 003A4A98 38 00 00 00 */ li r0, 0 +/* 803A7B3C 003A4A9C 90 05 00 04 */ stw r0, 4(r5) +lbl_803A7B40: +/* 803A7B40 003A4AA0 28 08 00 00 */ cmplwi r8, 0 +/* 803A7B44 003A4AA4 40 82 00 0C */ bne lbl_803A7B50 +/* 803A7B48 003A4AA8 91 2D AF 04 */ stw r9, lbl_805A9AC4@sda21(r13) +/* 803A7B4C 003A4AAC 48 00 00 08 */ b lbl_803A7B54 +lbl_803A7B50: +/* 803A7B50 003A4AB0 91 28 00 00 */ stw r9, 0(r8) +lbl_803A7B54: +/* 803A7B54 003A4AB4 91 09 00 04 */ stw r8, 4(r9) +/* 803A7B58 003A4AB8 28 07 00 00 */ cmplwi r7, 0 +/* 803A7B5C 003A4ABC 90 E9 00 00 */ stw r7, 0(r9) +/* 803A7B60 003A4AC0 41 82 00 08 */ beq lbl_803A7B68 +/* 803A7B64 003A4AC4 91 27 00 04 */ stw r9, 4(r7) +lbl_803A7B68: +/* 803A7B68 003A4AC8 90 C9 00 08 */ stw r6, 8(r9) +/* 803A7B6C 003A4ACC 28 04 00 00 */ cmplwi r4, 0 +/* 803A7B70 003A4AD0 80 03 00 F4 */ lwz r0, 0xf4(r3) +/* 803A7B74 003A4AD4 90 09 00 0C */ stw r0, 0xc(r9) +/* 803A7B78 003A4AD8 41 82 00 0C */ beq lbl_803A7B84 +/* 803A7B7C 003A4ADC 7D 20 4B 78 */ mr r0, r9 +/* 803A7B80 003A4AE0 48 00 00 08 */ b lbl_803A7B88 +lbl_803A7B84: +/* 803A7B84 003A4AE4 38 00 00 00 */ li r0, 0 +lbl_803A7B88: +/* 803A7B88 003A4AE8 90 03 00 FC */ stw r0, 0xfc(r3) +/* 803A7B8C 003A4AEC 28 04 00 00 */ cmplwi r4, 0 +/* 803A7B90 003A4AF0 91 23 00 F8 */ stw r9, 0xf8(r3) +/* 803A7B94 003A4AF4 41 82 00 0C */ beq lbl_803A7BA0 +/* 803A7B98 003A4AF8 7C C3 33 78 */ mr r3, r6 +/* 803A7B9C 003A4AFC 4E 80 00 20 */ blr +lbl_803A7BA0: +/* 803A7BA0 003A4B00 80 63 00 F4 */ lwz r3, 0xf4(r3) +/* 803A7BA4 003A4B04 4E 80 00 20 */ blr + +.global vidGetInternalId +vidGetInternalId: +/* 803A7BA8 003A4B08 3C 03 00 01 */ addis r0, r3, 1 +/* 803A7BAC 003A4B0C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A7BB0 003A4B10 41 82 00 40 */ beq lbl_803A7BF0 +/* 803A7BB4 003A4B14 80 8D AF 04 */ lwz r4, lbl_805A9AC4@sda21(r13) +/* 803A7BB8 003A4B18 48 00 00 1C */ b lbl_803A7BD4 +lbl_803A7BBC: +/* 803A7BBC 003A4B1C 80 04 00 08 */ lwz r0, 8(r4) +/* 803A7BC0 003A4B20 7C 00 18 40 */ cmplw r0, r3 +/* 803A7BC4 003A4B24 40 82 00 08 */ bne lbl_803A7BCC +/* 803A7BC8 003A4B28 48 00 00 18 */ b lbl_803A7BE0 +lbl_803A7BCC: +/* 803A7BCC 003A4B2C 41 81 00 10 */ bgt lbl_803A7BDC +/* 803A7BD0 003A4B30 80 84 00 00 */ lwz r4, 0(r4) +lbl_803A7BD4: +/* 803A7BD4 003A4B34 28 04 00 00 */ cmplwi r4, 0 +/* 803A7BD8 003A4B38 40 82 FF E4 */ bne lbl_803A7BBC +lbl_803A7BDC: +/* 803A7BDC 003A4B3C 38 80 00 00 */ li r4, 0 +lbl_803A7BE0: +/* 803A7BE0 003A4B40 28 04 00 00 */ cmplwi r4, 0 +/* 803A7BE4 003A4B44 41 82 00 0C */ beq lbl_803A7BF0 +/* 803A7BE8 003A4B48 80 64 00 0C */ lwz r3, 0xc(r4) +/* 803A7BEC 003A4B4C 4E 80 00 20 */ blr +lbl_803A7BF0: +/* 803A7BF0 003A4B50 38 60 FF FF */ li r3, -1 +/* 803A7BF4 003A4B54 4E 80 00 20 */ blr + +.global voiceSetPriority +voiceSetPriority: +/* 803A7BF8 003A4B58 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A7BFC 003A4B5C 7C 08 02 A6 */ mflr r0 +/* 803A7C00 003A4B60 3C A0 80 56 */ lis r5, lbl_8055D350@ha +/* 803A7C04 003A4B64 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A7C08 003A4B68 38 A5 D3 50 */ addi r5, r5, lbl_8055D350@l +/* 803A7C0C 003A4B6C 39 25 08 00 */ addi r9, r5, 0x800 +/* 803A7C10 003A4B70 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A7C14 003A4B74 80 03 00 F4 */ lwz r0, 0xf4(r3) +/* 803A7C18 003A4B78 54 07 15 BA */ rlwinm r7, r0, 2, 0x16, 0x1d +/* 803A7C1C 003A4B7C 54 00 06 3E */ clrlwi r0, r0, 0x18 +/* 803A7C20 003A4B80 7D 29 3A 14 */ add r9, r9, r7 +/* 803A7C24 003A4B84 A0 C9 00 02 */ lhz r6, 2(r9) +/* 803A7C28 003A4B88 28 06 00 01 */ cmplwi r6, 1 +/* 803A7C2C 003A4B8C 40 82 00 E4 */ bne lbl_803A7D10 +/* 803A7C30 003A4B90 89 63 01 0C */ lbz r11, 0x10c(r3) +/* 803A7C34 003A4B94 54 86 06 3E */ clrlwi r6, r4, 0x18 +/* 803A7C38 003A4B98 7C 0B 30 40 */ cmplw r11, r6 +/* 803A7C3C 003A4B9C 41 82 01 F4 */ beq lbl_803A7E30 +/* 803A7C40 003A4BA0 38 C5 08 00 */ addi r6, r5, 0x800 +/* 803A7C44 003A4BA4 7C C6 3A 14 */ add r6, r6, r7 +/* 803A7C48 003A4BA8 A0 E6 00 02 */ lhz r7, 2(r6) +/* 803A7C4C 003A4BAC 28 07 00 01 */ cmplwi r7, 1 +/* 803A7C50 003A4BB0 40 82 00 C0 */ bne lbl_803A7D10 +/* 803A7C54 003A4BB4 88 E6 00 00 */ lbz r7, 0(r6) +/* 803A7C58 003A4BB8 28 07 00 FF */ cmplwi r7, 0xff +/* 803A7C5C 003A4BBC 41 82 00 1C */ beq lbl_803A7C78 +/* 803A7C60 003A4BC0 39 45 08 00 */ addi r10, r5, 0x800 +/* 803A7C64 003A4BC4 54 E7 15 BA */ rlwinm r7, r7, 2, 0x16, 0x1d +/* 803A7C68 003A4BC8 89 66 00 01 */ lbz r11, 1(r6) +/* 803A7C6C 003A4BCC 7C EA 3A 14 */ add r7, r10, r7 +/* 803A7C70 003A4BD0 99 67 00 01 */ stb r11, 1(r7) +/* 803A7C74 003A4BD4 48 00 00 10 */ b lbl_803A7C84 +lbl_803A7C78: +/* 803A7C78 003A4BD8 89 46 00 01 */ lbz r10, 1(r6) +/* 803A7C7C 003A4BDC 38 E5 09 00 */ addi r7, r5, 0x900 +/* 803A7C80 003A4BE0 7D 47 59 AE */ stbx r10, r7, r11 +lbl_803A7C84: +/* 803A7C84 003A4BE4 88 E6 00 01 */ lbz r7, 1(r6) +/* 803A7C88 003A4BE8 28 07 00 FF */ cmplwi r7, 0xff +/* 803A7C8C 003A4BEC 41 82 00 18 */ beq lbl_803A7CA4 +/* 803A7C90 003A4BF0 89 66 00 00 */ lbz r11, 0(r6) +/* 803A7C94 003A4BF4 54 EA 15 BA */ rlwinm r10, r7, 2, 0x16, 0x1d +/* 803A7C98 003A4BF8 38 E5 08 00 */ addi r7, r5, 0x800 +/* 803A7C9C 003A4BFC 7D 67 51 AE */ stbx r11, r7, r10 +/* 803A7CA0 003A4C00 48 00 00 68 */ b lbl_803A7D08 +lbl_803A7CA4: +/* 803A7CA4 003A4C04 88 E6 00 00 */ lbz r7, 0(r6) +/* 803A7CA8 003A4C08 28 07 00 FF */ cmplwi r7, 0xff +/* 803A7CAC 003A4C0C 40 82 00 5C */ bne lbl_803A7D08 +/* 803A7CB0 003A4C10 88 E3 01 0C */ lbz r7, 0x10c(r3) +/* 803A7CB4 003A4C14 39 85 0A 00 */ addi r12, r5, 0xa00 +/* 803A7CB8 003A4C18 54 E7 10 3A */ slwi r7, r7, 2 +/* 803A7CBC 003A4C1C 7D 8C 3A 14 */ add r12, r12, r7 +/* 803A7CC0 003A4C20 A0 EC 00 02 */ lhz r7, 2(r12) +/* 803A7CC4 003A4C24 28 07 FF FF */ cmplwi r7, 0xffff +/* 803A7CC8 003A4C28 41 82 00 18 */ beq lbl_803A7CE0 +/* 803A7CCC 003A4C2C A1 6C 00 00 */ lhz r11, 0(r12) +/* 803A7CD0 003A4C30 54 EA 13 BA */ rlwinm r10, r7, 2, 0xe, 0x1d +/* 803A7CD4 003A4C34 38 E5 0A 00 */ addi r7, r5, 0xa00 +/* 803A7CD8 003A4C38 7D 67 53 2E */ sthx r11, r7, r10 +/* 803A7CDC 003A4C3C 48 00 00 0C */ b lbl_803A7CE8 +lbl_803A7CE0: +/* 803A7CE0 003A4C40 A0 EC 00 00 */ lhz r7, 0(r12) +/* 803A7CE4 003A4C44 B0 ED AF 0C */ sth r7, lbl_805A9ACC@sda21(r13) +lbl_803A7CE8: +/* 803A7CE8 003A4C48 A0 EC 00 00 */ lhz r7, 0(r12) +/* 803A7CEC 003A4C4C 28 07 FF FF */ cmplwi r7, 0xffff +/* 803A7CF0 003A4C50 41 82 00 18 */ beq lbl_803A7D08 +/* 803A7CF4 003A4C54 39 45 0A 00 */ addi r10, r5, 0xa00 +/* 803A7CF8 003A4C58 54 E7 13 BA */ rlwinm r7, r7, 2, 0xe, 0x1d +/* 803A7CFC 003A4C5C A1 6C 00 02 */ lhz r11, 2(r12) +/* 803A7D00 003A4C60 7C EA 3A 14 */ add r7, r10, r7 +/* 803A7D04 003A4C64 B1 67 00 02 */ sth r11, 2(r7) +lbl_803A7D08: +/* 803A7D08 003A4C68 38 E0 00 00 */ li r7, 0 +/* 803A7D0C 003A4C6C B0 E6 00 02 */ sth r7, 2(r6) +lbl_803A7D10: +/* 803A7D10 003A4C70 39 40 00 01 */ li r10, 1 +/* 803A7D14 003A4C74 54 87 06 3E */ clrlwi r7, r4, 0x18 +/* 803A7D18 003A4C78 38 C5 09 00 */ addi r6, r5, 0x900 +/* 803A7D1C 003A4C7C B1 49 00 02 */ sth r10, 2(r9) +/* 803A7D20 003A4C80 7D 46 38 AE */ lbzx r10, r6, r7 +/* 803A7D24 003A4C84 39 60 00 FF */ li r11, 0xff +/* 803A7D28 003A4C88 99 69 00 00 */ stb r11, 0(r9) +/* 803A7D2C 003A4C8C 28 0A 00 FF */ cmplwi r10, 0xff +/* 803A7D30 003A4C90 99 49 00 01 */ stb r10, 1(r9) +/* 803A7D34 003A4C94 41 82 00 14 */ beq lbl_803A7D48 +/* 803A7D38 003A4C98 55 48 10 3A */ slwi r8, r10, 2 +/* 803A7D3C 003A4C9C 38 A5 08 00 */ addi r5, r5, 0x800 +/* 803A7D40 003A4CA0 7C 05 41 AE */ stbx r0, r5, r8 +/* 803A7D44 003A4CA4 48 00 00 CC */ b lbl_803A7E10 +lbl_803A7D48: +/* 803A7D48 003A4CA8 A1 2D AF 0C */ lhz r9, lbl_805A9ACC@sda21(r13) +/* 803A7D4C 003A4CAC 28 09 FF FF */ cmplwi r9, 0xffff +/* 803A7D50 003A4CB0 41 82 00 A0 */ beq lbl_803A7DF0 +/* 803A7D54 003A4CB4 7C 07 48 00 */ cmpw r7, r9 +/* 803A7D58 003A4CB8 41 80 00 6C */ blt lbl_803A7DC4 +/* 803A7D5C 003A4CBC 7D 3F 4B 78 */ mr r31, r9 +/* 803A7D60 003A4CC0 39 45 0A 00 */ addi r10, r5, 0xa00 +/* 803A7D64 003A4CC4 48 00 00 1C */ b lbl_803A7D80 +lbl_803A7D68: +/* 803A7D68 003A4CC8 57 E9 04 3E */ clrlwi r9, r31, 0x10 +/* 803A7D6C 003A4CCC 7C 09 38 00 */ cmpw r9, r7 +/* 803A7D70 003A4CD0 41 81 00 1C */ bgt lbl_803A7D8C +/* 803A7D74 003A4CD4 57 E9 13 BA */ rlwinm r9, r31, 2, 0xe, 0x1d +/* 803A7D78 003A4CD8 7F E8 FB 78 */ mr r8, r31 +/* 803A7D7C 003A4CDC 7F EA 4A 2E */ lhzx r31, r10, r9 +lbl_803A7D80: +/* 803A7D80 003A4CE0 57 E9 04 3E */ clrlwi r9, r31, 0x10 +/* 803A7D84 003A4CE4 28 09 FF FF */ cmplwi r9, 0xffff +/* 803A7D88 003A4CE8 40 82 FF E0 */ bne lbl_803A7D68 +lbl_803A7D8C: +/* 803A7D8C 003A4CEC 39 25 0A 00 */ addi r9, r5, 0xa00 +/* 803A7D90 003A4CF0 54 8B 06 3E */ clrlwi r11, r4, 0x18 +/* 803A7D94 003A4CF4 55 0A 13 BA */ rlwinm r10, r8, 2, 0xe, 0x1d +/* 803A7D98 003A4CF8 57 E5 04 3E */ clrlwi r5, r31, 0x10 +/* 803A7D9C 003A4CFC 7D 69 53 2E */ sthx r11, r9, r10 +/* 803A7DA0 003A4D00 54 EA 10 3A */ slwi r10, r7, 2 +/* 803A7DA4 003A4D04 39 89 00 02 */ addi r12, r9, 2 +/* 803A7DA8 003A4D08 28 05 FF FF */ cmplwi r5, 0xffff +/* 803A7DAC 003A4D0C 7D 0C 53 2E */ sthx r8, r12, r10 +/* 803A7DB0 003A4D10 7F E9 53 2E */ sthx r31, r9, r10 +/* 803A7DB4 003A4D14 41 82 00 5C */ beq lbl_803A7E10 +/* 803A7DB8 003A4D18 57 E5 13 BA */ rlwinm r5, r31, 2, 0xe, 0x1d +/* 803A7DBC 003A4D1C 7D 6C 2B 2E */ sthx r11, r12, r5 +/* 803A7DC0 003A4D20 48 00 00 50 */ b lbl_803A7E10 +lbl_803A7DC4: +/* 803A7DC4 003A4D24 39 05 0A 00 */ addi r8, r5, 0xa00 +/* 803A7DC8 003A4D28 54 EA 10 3A */ slwi r10, r7, 2 +/* 803A7DCC 003A4D2C 3C A0 00 01 */ lis r5, 0x0000FFFF@ha +/* 803A7DD0 003A4D30 7D 28 53 2E */ sthx r9, r8, r10 +/* 803A7DD4 003A4D34 38 A5 FF FF */ addi r5, r5, 0x0000FFFF@l +/* 803A7DD8 003A4D38 39 08 00 02 */ addi r8, r8, 2 +/* 803A7DDC 003A4D3C 7C A8 53 2E */ sthx r5, r8, r10 +/* 803A7DE0 003A4D40 55 25 13 BA */ rlwinm r5, r9, 2, 0xe, 0x1d +/* 803A7DE4 003A4D44 7C E8 2B 2E */ sthx r7, r8, r5 +/* 803A7DE8 003A4D48 B0 ED AF 0C */ sth r7, lbl_805A9ACC@sda21(r13) +/* 803A7DEC 003A4D4C 48 00 00 24 */ b lbl_803A7E10 +lbl_803A7DF0: +/* 803A7DF0 003A4D50 3D 00 00 01 */ lis r8, 0x0000FFFF@ha +/* 803A7DF4 003A4D54 54 E9 10 3A */ slwi r9, r7, 2 +/* 803A7DF8 003A4D58 38 A5 0A 00 */ addi r5, r5, 0xa00 +/* 803A7DFC 003A4D5C B0 ED AF 0C */ sth r7, lbl_805A9ACC@sda21(r13) +/* 803A7E00 003A4D60 39 08 FF FF */ addi r8, r8, 0x0000FFFF@l +/* 803A7E04 003A4D64 7D 05 4B 2E */ sthx r8, r5, r9 +/* 803A7E08 003A4D68 7C A5 4A 14 */ add r5, r5, r9 +/* 803A7E0C 003A4D6C B1 05 00 02 */ sth r8, 2(r5) +lbl_803A7E10: +/* 803A7E10 003A4D70 7C 06 39 AE */ stbx r0, r6, r7 +/* 803A7E14 003A4D74 98 83 01 0C */ stb r4, 0x10c(r3) +/* 803A7E18 003A4D78 80 03 01 10 */ lwz r0, 0x110(r3) +/* 803A7E1C 003A4D7C 80 63 00 F4 */ lwz r3, 0xf4(r3) +/* 803A7E20 003A4D80 54 04 8B FE */ srwi r4, r0, 0xf +/* 803A7E24 003A4D84 54 63 06 3E */ clrlwi r3, r3, 0x18 +/* 803A7E28 003A4D88 50 E4 C0 0E */ rlwimi r4, r7, 0x18, 0, 7 +/* 803A7E2C 003A4D8C 48 00 B3 99 */ bl hwSetPriority +lbl_803A7E30: +/* 803A7E30 003A4D90 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A7E34 003A4D94 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A7E38 003A4D98 7C 08 03 A6 */ mtlr r0 +/* 803A7E3C 003A4D9C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A7E40 003A4DA0 4E 80 00 20 */ blr + +.global sub_803a7e44 +sub_803a7e44: +/* 803A7E44 003A4DA4 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 803A7E48 003A4DA8 7C 08 02 A6 */ mflr r0 +/* 803A7E4C 003A4DAC 90 01 00 34 */ stw r0, 0x34(r1) +/* 803A7E50 003A4DB0 39 61 00 30 */ addi r11, r1, 0x30 +/* 803A7E54 003A4DB4 4B FE 1C 15 */ bl sub_80389a68 +/* 803A7E58 003A4DB8 88 0D AE 80 */ lbz r0, lbl_805A9A40@sda21(r13) +/* 803A7E5C 003A4DBC 3C E0 80 56 */ lis r7, lbl_8055D350@ha +/* 803A7E60 003A4DC0 39 07 D3 50 */ addi r8, r7, lbl_8055D350@l +/* 803A7E64 003A4DC4 28 00 00 00 */ cmplwi r0, 0 +/* 803A7E68 003A4DC8 40 82 04 20 */ bne lbl_803A8288 +/* 803A7E6C 003A4DCC 54 C0 06 3F */ clrlwi. r0, r6, 0x18 +/* 803A7E70 003A4DD0 41 82 00 44 */ beq lbl_803A7EB4 +/* 803A7E74 003A4DD4 3C E0 80 55 */ lis r7, lbl_80550050@ha +/* 803A7E78 003A4DD8 88 0D AF 0F */ lbz r0, lbl_805A9ACF@sda21(r13) +/* 803A7E7C 003A4DDC 38 E7 00 50 */ addi r7, r7, lbl_80550050@l +/* 803A7E80 003A4DE0 39 20 00 00 */ li r9, 0 +/* 803A7E84 003A4DE4 89 47 02 12 */ lbz r10, 0x212(r7) +/* 803A7E88 003A4DE8 7C 00 50 40 */ cmplw r0, r10 +/* 803A7E8C 003A4DEC 41 80 00 14 */ blt lbl_803A7EA0 +/* 803A7E90 003A4DF0 88 07 02 10 */ lbz r0, 0x210(r7) +/* 803A7E94 003A4DF4 7C 00 50 40 */ cmplw r0, r10 +/* 803A7E98 003A4DF8 40 81 00 08 */ ble lbl_803A7EA0 +/* 803A7E9C 003A4DFC 39 20 00 01 */ li r9, 1 +lbl_803A7EA0: +/* 803A7EA0 003A4E00 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803A7EA4 003A4E04 7D 3C 4B 78 */ mr r28, r9 +/* 803A7EA8 003A4E08 7C 0A 00 40 */ cmplw r10, r0 +/* 803A7EAC 003A4E0C 40 81 01 BC */ ble lbl_803A8068 +/* 803A7EB0 003A4E10 48 00 00 40 */ b lbl_803A7EF0 +lbl_803A7EB4: +/* 803A7EB4 003A4E14 3C E0 80 55 */ lis r7, lbl_80550050@ha +/* 803A7EB8 003A4E18 88 0D AF 0E */ lbz r0, lbl_805A9ACE@sda21(r13) +/* 803A7EBC 003A4E1C 38 E7 00 50 */ addi r7, r7, lbl_80550050@l +/* 803A7EC0 003A4E20 39 20 00 00 */ li r9, 0 +/* 803A7EC4 003A4E24 89 47 02 11 */ lbz r10, 0x211(r7) +/* 803A7EC8 003A4E28 7C 00 50 40 */ cmplw r0, r10 +/* 803A7ECC 003A4E2C 41 80 00 14 */ blt lbl_803A7EE0 +/* 803A7ED0 003A4E30 88 07 02 10 */ lbz r0, 0x210(r7) +/* 803A7ED4 003A4E34 7C 00 50 40 */ cmplw r0, r10 +/* 803A7ED8 003A4E38 40 81 00 08 */ ble lbl_803A7EE0 +/* 803A7EDC 003A4E3C 39 20 00 01 */ li r9, 1 +lbl_803A7EE0: +/* 803A7EE0 003A4E40 54 80 06 3E */ clrlwi r0, r4, 0x18 +/* 803A7EE4 003A4E44 7D 3C 4B 78 */ mr r28, r9 +/* 803A7EE8 003A4E48 7C 0A 00 40 */ cmplw r10, r0 +/* 803A7EEC 003A4E4C 40 81 01 7C */ ble lbl_803A8068 +lbl_803A7EF0: +/* 803A7EF0 003A4E50 A2 CD AF 0C */ lhz r22, lbl_805A9ACC@sda21(r13) +/* 803A7EF4 003A4E54 54 69 06 3E */ clrlwi r9, r3, 0x18 +/* 803A7EF8 003A4E58 81 8D AE 78 */ lwz r12, lbl_805A9A38@sda21(r13) +/* 803A7EFC 003A4E5C 54 A0 04 3E */ clrlwi r0, r5, 0x10 +/* 803A7F00 003A4E60 3B 48 08 00 */ addi r26, r8, 0x800 +/* 803A7F04 003A4E64 38 E8 09 00 */ addi r7, r8, 0x900 +/* 803A7F08 003A4E68 3B 68 0A 00 */ addi r27, r8, 0xa00 +/* 803A7F0C 003A4E6C 3B C0 00 00 */ li r30, 0 +/* 803A7F10 003A4E70 3B A0 FF FF */ li r29, -1 +/* 803A7F14 003A4E74 48 00 00 BC */ b lbl_803A7FD0 +lbl_803A7F18: +/* 803A7F18 003A4E78 56 CB 04 3E */ clrlwi r11, r22, 0x10 +/* 803A7F1C 003A4E7C 7F E7 58 AE */ lbzx r31, r7, r11 +/* 803A7F20 003A4E80 48 00 00 A0 */ b lbl_803A7FC0 +lbl_803A7F24: +/* 803A7F24 003A4E84 1D 5F 04 04 */ mulli r10, r31, 0x404 +/* 803A7F28 003A4E88 7D 4C 52 14 */ add r10, r12, r10 +/* 803A7F2C 003A4E8C A2 CA 01 00 */ lhz r22, 0x100(r10) +/* 803A7F30 003A4E90 7C 00 B0 40 */ cmplw r0, r22 +/* 803A7F34 003A4E94 40 82 00 80 */ bne lbl_803A7FB4 +/* 803A7F38 003A4E98 8A CA 01 1C */ lbz r22, 0x11c(r10) +/* 803A7F3C 003A4E9C 3B DE 00 01 */ addi r30, r30, 1 +/* 803A7F40 003A4EA0 28 16 00 00 */ cmplwi r22, 0 +/* 803A7F44 003A4EA4 40 82 00 70 */ bne lbl_803A7FB4 +/* 803A7F48 003A4EA8 28 1C 00 00 */ cmplwi r28, 0 +/* 803A7F4C 003A4EAC 41 82 00 14 */ beq lbl_803A7F60 +/* 803A7F50 003A4EB0 8A CA 01 1D */ lbz r22, 0x11d(r10) +/* 803A7F54 003A4EB4 54 D7 06 3E */ clrlwi r23, r6, 0x18 +/* 803A7F58 003A4EB8 7C 17 B0 40 */ cmplw r23, r22 +/* 803A7F5C 003A4EBC 40 82 00 58 */ bne lbl_803A7FB4 +lbl_803A7F60: +/* 803A7F60 003A4EC0 83 0A 01 14 */ lwz r24, 0x114(r10) +/* 803A7F64 003A4EC4 3A E0 00 00 */ li r23, 0 +/* 803A7F68 003A4EC8 82 CA 01 18 */ lwz r22, 0x118(r10) +/* 803A7F6C 003A4ECC 3B 20 00 02 */ li r25, 2 +/* 803A7F70 003A4ED0 7F 18 B8 38 */ and r24, r24, r23 +/* 803A7F74 003A4ED4 7E D9 C8 38 */ and r25, r22, r25 +/* 803A7F78 003A4ED8 7F 39 BA 78 */ xor r25, r25, r23 +/* 803A7F7C 003A4EDC 7F 18 BA 78 */ xor r24, r24, r23 +/* 803A7F80 003A4EE0 7F 38 C3 79 */ or. r24, r25, r24 +/* 803A7F84 003A4EE4 40 82 00 30 */ bne lbl_803A7FB4 +/* 803A7F88 003A4EE8 2C 1D FF FF */ cmpwi r29, -1 +/* 803A7F8C 003A4EEC 41 82 00 24 */ beq lbl_803A7FB0 +/* 803A7F90 003A4EF0 1F 3D 04 04 */ mulli r25, r29, 0x404 +/* 803A7F94 003A4EF4 83 0A 01 10 */ lwz r24, 0x110(r10) +/* 803A7F98 003A4EF8 39 59 01 10 */ addi r10, r25, 0x110 +/* 803A7F9C 003A4EFC 7D 4C 50 2E */ lwzx r10, r12, r10 +/* 803A7FA0 003A4F00 7C 18 50 40 */ cmplw r24, r10 +/* 803A7FA4 003A4F04 40 80 00 10 */ bge lbl_803A7FB4 +/* 803A7FA8 003A4F08 7F FD FB 78 */ mr r29, r31 +/* 803A7FAC 003A4F0C 48 00 00 08 */ b lbl_803A7FB4 +lbl_803A7FB0: +/* 803A7FB0 003A4F10 7F FD FB 78 */ mr r29, r31 +lbl_803A7FB4: +/* 803A7FB4 003A4F14 57 EA 10 3A */ slwi r10, r31, 2 +/* 803A7FB8 003A4F18 39 4A 00 01 */ addi r10, r10, 1 +/* 803A7FBC 003A4F1C 7F FA 50 AE */ lbzx r31, r26, r10 +lbl_803A7FC0: +/* 803A7FC0 003A4F20 2C 1F 00 FF */ cmpwi r31, 0xff +/* 803A7FC4 003A4F24 40 82 FF 60 */ bne lbl_803A7F24 +/* 803A7FC8 003A4F28 55 6A 10 3A */ slwi r10, r11, 2 +/* 803A7FCC 003A4F2C 7E DB 52 2E */ lhzx r22, r27, r10 +lbl_803A7FD0: +/* 803A7FD0 003A4F30 56 CA 04 3E */ clrlwi r10, r22, 0x10 +/* 803A7FD4 003A4F34 28 0A FF FF */ cmplwi r10, 0xffff +/* 803A7FD8 003A4F38 41 82 00 14 */ beq lbl_803A7FEC +/* 803A7FDC 003A4F3C 7C 09 50 00 */ cmpw r9, r10 +/* 803A7FE0 003A4F40 41 80 00 0C */ blt lbl_803A7FEC +/* 803A7FE4 003A4F44 2C 1D FF FF */ cmpwi r29, -1 +/* 803A7FE8 003A4F48 41 82 FF 30 */ beq lbl_803A7F18 +lbl_803A7FEC: +/* 803A7FEC 003A4F4C 54 8B 06 3E */ clrlwi r11, r4, 0x18 +/* 803A7FF0 003A4F50 7C 1E 58 00 */ cmpw r30, r11 +/* 803A7FF4 003A4F54 40 80 01 AC */ bge lbl_803A81A0 +/* 803A7FF8 003A4F58 54 A9 04 3E */ clrlwi r9, r5, 0x10 +/* 803A7FFC 003A4F5C 38 A8 08 00 */ addi r5, r8, 0x800 +/* 803A8000 003A4F60 39 48 09 00 */ addi r10, r8, 0x900 +/* 803A8004 003A4F64 38 88 0A 00 */ addi r4, r8, 0xa00 +/* 803A8008 003A4F68 48 00 00 44 */ b lbl_803A804C +lbl_803A800C: +/* 803A800C 003A4F6C 56 D6 04 3E */ clrlwi r22, r22, 0x10 +/* 803A8010 003A4F70 7E EA B0 AE */ lbzx r23, r10, r22 +/* 803A8014 003A4F74 48 00 00 28 */ b lbl_803A803C +lbl_803A8018: +/* 803A8018 003A4F78 1C F7 04 04 */ mulli r7, r23, 0x404 +/* 803A801C 003A4F7C 38 07 01 00 */ addi r0, r7, 0x100 +/* 803A8020 003A4F80 7C 0C 02 2E */ lhzx r0, r12, r0 +/* 803A8024 003A4F84 7C 09 00 40 */ cmplw r9, r0 +/* 803A8028 003A4F88 40 82 00 08 */ bne lbl_803A8030 +/* 803A802C 003A4F8C 3B DE 00 01 */ addi r30, r30, 1 +lbl_803A8030: +/* 803A8030 003A4F90 56 E7 10 3A */ slwi r7, r23, 2 +/* 803A8034 003A4F94 38 07 00 01 */ addi r0, r7, 1 +/* 803A8038 003A4F98 7E E5 00 AE */ lbzx r23, r5, r0 +lbl_803A803C: +/* 803A803C 003A4F9C 2C 17 00 FF */ cmpwi r23, 0xff +/* 803A8040 003A4FA0 40 82 FF D8 */ bne lbl_803A8018 +/* 803A8044 003A4FA4 56 C0 10 3A */ slwi r0, r22, 2 +/* 803A8048 003A4FA8 7E C4 02 2E */ lhzx r22, r4, r0 +lbl_803A804C: +/* 803A804C 003A4FAC 56 C0 04 3E */ clrlwi r0, r22, 0x10 +/* 803A8050 003A4FB0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8054 003A4FB4 41 82 00 0C */ beq lbl_803A8060 +/* 803A8058 003A4FB8 7C 1E 58 00 */ cmpw r30, r11 +/* 803A805C 003A4FBC 41 80 FF B0 */ blt lbl_803A800C +lbl_803A8060: +/* 803A8060 003A4FC0 7C 1E 58 00 */ cmpw r30, r11 +/* 803A8064 003A4FC4 40 80 01 3C */ bge lbl_803A81A0 +lbl_803A8068: +/* 803A8068 003A4FC8 88 0D AF 11 */ lbz r0, lbl_805A9AD1@sda21(r13) +/* 803A806C 003A4FCC 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8070 003A4FD0 41 82 00 14 */ beq lbl_803A8084 +/* 803A8074 003A4FD4 28 1C 00 00 */ cmplwi r28, 0 +/* 803A8078 003A4FD8 40 82 00 0C */ bne lbl_803A8084 +/* 803A807C 003A4FDC 7C 1D 03 78 */ mr r29, r0 +/* 803A8080 003A4FE0 48 00 01 20 */ b lbl_803A81A0 +lbl_803A8084: +/* 803A8084 003A4FE4 A1 4D AF 0C */ lhz r10, lbl_805A9ACC@sda21(r13) +/* 803A8088 003A4FE8 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A808C 003A4FEC 7C 00 50 00 */ cmpw r0, r10 +/* 803A8090 003A4FF0 40 80 00 0C */ bge lbl_803A809C +/* 803A8094 003A4FF4 38 60 FF FF */ li r3, -1 +/* 803A8098 003A4FF8 48 00 01 F4 */ b lbl_803A828C +lbl_803A809C: +/* 803A809C 003A4FFC 80 ED AE 78 */ lwz r7, lbl_805A9A38@sda21(r13) +/* 803A80A0 003A5000 39 68 08 00 */ addi r11, r8, 0x800 +/* 803A80A4 003A5004 38 88 09 00 */ addi r4, r8, 0x900 +/* 803A80A8 003A5008 39 28 0A 00 */ addi r9, r8, 0xa00 +/* 803A80AC 003A500C 3B A0 FF FF */ li r29, -1 +/* 803A80B0 003A5010 48 00 00 AC */ b lbl_803A815C +lbl_803A80B4: +/* 803A80B4 003A5014 55 45 04 3E */ clrlwi r5, r10, 0x10 +/* 803A80B8 003A5018 7E E4 28 AE */ lbzx r23, r4, r5 +/* 803A80BC 003A501C 48 00 00 90 */ b lbl_803A814C +lbl_803A80C0: +/* 803A80C0 003A5020 1D 57 04 04 */ mulli r10, r23, 0x404 +/* 803A80C4 003A5024 7E C7 52 14 */ add r22, r7, r10 +/* 803A80C8 003A5028 89 56 01 1C */ lbz r10, 0x11c(r22) +/* 803A80CC 003A502C 28 0A 00 00 */ cmplwi r10, 0 +/* 803A80D0 003A5030 40 82 00 70 */ bne lbl_803A8140 +/* 803A80D4 003A5034 28 1C 00 00 */ cmplwi r28, 0 +/* 803A80D8 003A5038 41 82 00 14 */ beq lbl_803A80EC +/* 803A80DC 003A503C 89 56 01 1D */ lbz r10, 0x11d(r22) +/* 803A80E0 003A5040 54 CC 06 3E */ clrlwi r12, r6, 0x18 +/* 803A80E4 003A5044 7C 0C 50 40 */ cmplw r12, r10 +/* 803A80E8 003A5048 40 82 00 58 */ bne lbl_803A8140 +lbl_803A80EC: +/* 803A80EC 003A504C 81 56 01 14 */ lwz r10, 0x114(r22) +/* 803A80F0 003A5050 3B C0 00 00 */ li r30, 0 +/* 803A80F4 003A5054 83 F6 01 18 */ lwz r31, 0x118(r22) +/* 803A80F8 003A5058 39 80 00 02 */ li r12, 2 +/* 803A80FC 003A505C 7D 4A F0 38 */ and r10, r10, r30 +/* 803A8100 003A5060 7F EC 60 38 */ and r12, r31, r12 +/* 803A8104 003A5064 7D 8C F2 78 */ xor r12, r12, r30 +/* 803A8108 003A5068 7D 4A F2 78 */ xor r10, r10, r30 +/* 803A810C 003A506C 7D 8A 53 79 */ or. r10, r12, r10 +/* 803A8110 003A5070 40 82 00 30 */ bne lbl_803A8140 +/* 803A8114 003A5074 2C 1D FF FF */ cmpwi r29, -1 +/* 803A8118 003A5078 41 82 00 24 */ beq lbl_803A813C +/* 803A811C 003A507C 1D 9D 04 04 */ mulli r12, r29, 0x404 +/* 803A8120 003A5080 81 56 01 10 */ lwz r10, 0x110(r22) +/* 803A8124 003A5084 39 8C 01 10 */ addi r12, r12, 0x110 +/* 803A8128 003A5088 7D 87 60 2E */ lwzx r12, r7, r12 +/* 803A812C 003A508C 7C 0C 50 40 */ cmplw r12, r10 +/* 803A8130 003A5090 40 81 00 10 */ ble lbl_803A8140 +/* 803A8134 003A5094 7E FD BB 78 */ mr r29, r23 +/* 803A8138 003A5098 48 00 00 08 */ b lbl_803A8140 +lbl_803A813C: +/* 803A813C 003A509C 7E FD BB 78 */ mr r29, r23 +lbl_803A8140: +/* 803A8140 003A50A0 56 EA 10 3A */ slwi r10, r23, 2 +/* 803A8144 003A50A4 39 4A 00 01 */ addi r10, r10, 1 +/* 803A8148 003A50A8 7E EB 50 AE */ lbzx r23, r11, r10 +lbl_803A814C: +/* 803A814C 003A50AC 2C 17 00 FF */ cmpwi r23, 0xff +/* 803A8150 003A50B0 40 82 FF 70 */ bne lbl_803A80C0 +/* 803A8154 003A50B4 54 A5 10 3A */ slwi r5, r5, 2 +/* 803A8158 003A50B8 7D 49 2A 2E */ lhzx r10, r9, r5 +lbl_803A815C: +/* 803A815C 003A50BC 55 45 04 3E */ clrlwi r5, r10, 0x10 +/* 803A8160 003A50C0 28 05 FF FF */ cmplwi r5, 0xffff +/* 803A8164 003A50C4 41 82 00 14 */ beq lbl_803A8178 +/* 803A8168 003A50C8 7C 00 28 00 */ cmpw r0, r5 +/* 803A816C 003A50CC 41 80 00 0C */ blt lbl_803A8178 +/* 803A8170 003A50D0 2C 1D FF FF */ cmpwi r29, -1 +/* 803A8174 003A50D4 41 82 FF 40 */ beq lbl_803A80B4 +lbl_803A8178: +/* 803A8178 003A50D8 2C 1D FF FF */ cmpwi r29, -1 +/* 803A817C 003A50DC 40 82 00 0C */ bne lbl_803A8188 +/* 803A8180 003A50E0 38 60 FF FF */ li r3, -1 +/* 803A8184 003A50E4 48 00 01 08 */ b lbl_803A828C +lbl_803A8188: +/* 803A8188 003A50E8 1C 9D 04 04 */ mulli r4, r29, 0x404 +/* 803A818C 003A50EC 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 803A8190 003A50F0 7C 67 22 14 */ add r3, r7, r4 +/* 803A8194 003A50F4 88 63 01 0C */ lbz r3, 0x10c(r3) +/* 803A8198 003A50F8 7C 03 00 40 */ cmplw r3, r0 +/* 803A819C 003A50FC 41 81 00 EC */ bgt lbl_803A8288 +lbl_803A81A0: +/* 803A81A0 003A5100 2C 1D FF FF */ cmpwi r29, -1 +/* 803A81A4 003A5104 41 82 00 E4 */ beq lbl_803A8288 +/* 803A81A8 003A5108 38 68 0E 00 */ addi r3, r8, 0xe00 +/* 803A81AC 003A510C 57 A0 10 3A */ slwi r0, r29, 2 +/* 803A81B0 003A5110 7C A3 02 14 */ add r5, r3, r0 +/* 803A81B4 003A5114 A0 05 00 02 */ lhz r0, 2(r5) +/* 803A81B8 003A5118 28 00 00 01 */ cmplwi r0, 1 +/* 803A81BC 003A511C 40 82 00 68 */ bne lbl_803A8224 +/* 803A81C0 003A5120 88 05 00 00 */ lbz r0, 0(r5) +/* 803A81C4 003A5124 2C 00 00 FF */ cmpwi r0, 0xff +/* 803A81C8 003A5128 41 82 00 18 */ beq lbl_803A81E0 +/* 803A81CC 003A512C 54 00 10 3A */ slwi r0, r0, 2 +/* 803A81D0 003A5130 88 85 00 01 */ lbz r4, 1(r5) +/* 803A81D4 003A5134 7C 63 02 14 */ add r3, r3, r0 +/* 803A81D8 003A5138 98 83 00 01 */ stb r4, 1(r3) +/* 803A81DC 003A513C 48 00 00 0C */ b lbl_803A81E8 +lbl_803A81E0: +/* 803A81E0 003A5140 88 05 00 01 */ lbz r0, 1(r5) +/* 803A81E4 003A5144 98 0D AF 11 */ stb r0, lbl_805A9AD1@sda21(r13) +lbl_803A81E8: +/* 803A81E8 003A5148 88 05 00 01 */ lbz r0, 1(r5) +/* 803A81EC 003A514C 2C 00 00 FF */ cmpwi r0, 0xff +/* 803A81F0 003A5150 41 82 00 14 */ beq lbl_803A8204 +/* 803A81F4 003A5154 88 85 00 00 */ lbz r4, 0(r5) +/* 803A81F8 003A5158 54 00 10 3A */ slwi r0, r0, 2 +/* 803A81FC 003A515C 38 68 0E 00 */ addi r3, r8, 0xe00 +/* 803A8200 003A5160 7C 83 01 AE */ stbx r4, r3, r0 +lbl_803A8204: +/* 803A8204 003A5164 88 0D AF 10 */ lbz r0, lbl_805A9AD0@sda21(r13) +/* 803A8208 003A5168 7C 1D 00 00 */ cmpw r29, r0 +/* 803A820C 003A516C 40 82 00 0C */ bne lbl_803A8218 +/* 803A8210 003A5170 88 05 00 00 */ lbz r0, 0(r5) +/* 803A8214 003A5174 98 0D AF 10 */ stb r0, lbl_805A9AD0@sda21(r13) +lbl_803A8218: +/* 803A8218 003A5178 38 00 00 00 */ li r0, 0 +/* 803A821C 003A517C B0 05 00 02 */ sth r0, 2(r5) +/* 803A8220 003A5180 48 00 00 38 */ b lbl_803A8258 +lbl_803A8224: +/* 803A8224 003A5184 1C 1D 04 04 */ mulli r0, r29, 0x404 +/* 803A8228 003A5188 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A822C 003A518C 7C 63 02 14 */ add r3, r3, r0 +/* 803A8230 003A5190 88 03 01 1D */ lbz r0, 0x11d(r3) +/* 803A8234 003A5194 28 00 00 00 */ cmplwi r0, 0 +/* 803A8238 003A5198 41 82 00 14 */ beq lbl_803A824C +/* 803A823C 003A519C 88 6D AF 0F */ lbz r3, lbl_805A9ACF@sda21(r13) +/* 803A8240 003A51A0 38 03 FF FF */ addi r0, r3, -1 +/* 803A8244 003A51A4 98 0D AF 0F */ stb r0, lbl_805A9ACF@sda21(r13) +/* 803A8248 003A51A8 48 00 00 10 */ b lbl_803A8258 +lbl_803A824C: +/* 803A824C 003A51AC 88 6D AF 0E */ lbz r3, lbl_805A9ACE@sda21(r13) +/* 803A8250 003A51B0 38 03 FF FF */ addi r0, r3, -1 +/* 803A8254 003A51B4 98 0D AF 0E */ stb r0, lbl_805A9ACE@sda21(r13) +lbl_803A8258: +/* 803A8258 003A51B8 54 C0 06 3F */ clrlwi. r0, r6, 0x18 +/* 803A825C 003A51BC 41 82 00 10 */ beq lbl_803A826C +/* 803A8260 003A51C0 88 6D AF 0F */ lbz r3, lbl_805A9ACF@sda21(r13) +/* 803A8264 003A51C4 38 03 00 01 */ addi r0, r3, 1 +/* 803A8268 003A51C8 98 0D AF 0F */ stb r0, lbl_805A9ACF@sda21(r13) +lbl_803A826C: +/* 803A826C 003A51CC 54 C0 06 3F */ clrlwi. r0, r6, 0x18 +/* 803A8270 003A51D0 40 82 00 10 */ bne lbl_803A8280 +/* 803A8274 003A51D4 88 6D AF 0E */ lbz r3, lbl_805A9ACE@sda21(r13) +/* 803A8278 003A51D8 38 03 00 01 */ addi r0, r3, 1 +/* 803A827C 003A51DC 98 0D AF 0E */ stb r0, lbl_805A9ACE@sda21(r13) +lbl_803A8280: +/* 803A8280 003A51E0 7F A3 EB 78 */ mr r3, r29 +/* 803A8284 003A51E4 48 00 00 08 */ b lbl_803A828C +lbl_803A8288: +/* 803A8288 003A51E8 38 60 FF FF */ li r3, -1 +lbl_803A828C: +/* 803A828C 003A51EC 39 61 00 30 */ addi r11, r1, 0x30 +/* 803A8290 003A51F0 4B FE 18 25 */ bl _restgpr_22 +/* 803A8294 003A51F4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 803A8298 003A51F8 7C 08 03 A6 */ mtlr r0 +/* 803A829C 003A51FC 38 21 00 30 */ addi r1, r1, 0x30 +/* 803A82A0 003A5200 4E 80 00 20 */ blr + +.global voiceFree +voiceFree: +/* 803A82A4 003A5204 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A82A8 003A5208 7C 08 02 A6 */ mflr r0 +/* 803A82AC 003A520C 3C 80 80 56 */ lis r4, lbl_8055D350@ha +/* 803A82B0 003A5210 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A82B4 003A5214 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A82B8 003A5218 3B E4 D3 50 */ addi r31, r4, lbl_8055D350@l +/* 803A82BC 003A521C 38 80 00 02 */ li r4, 2 +/* 803A82C0 003A5220 93 C1 00 08 */ stw r30, 8(r1) +/* 803A82C4 003A5224 7C 7E 1B 78 */ mr r30, r3 +/* 803A82C8 003A5228 4B FF ED FD */ bl macMakeInactive +/* 803A82CC 003A522C 80 1E 00 F4 */ lwz r0, 0xf4(r30) +/* 803A82D0 003A5230 38 7F 08 00 */ addi r3, r31, 0x800 +/* 803A82D4 003A5234 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A82D8 003A5238 7C 63 02 14 */ add r3, r3, r0 +/* 803A82DC 003A523C A0 03 00 02 */ lhz r0, 2(r3) +/* 803A82E0 003A5240 28 00 00 01 */ cmplwi r0, 1 +/* 803A82E4 003A5244 40 82 00 C4 */ bne lbl_803A83A8 +/* 803A82E8 003A5248 88 03 00 00 */ lbz r0, 0(r3) +/* 803A82EC 003A524C 28 00 00 FF */ cmplwi r0, 0xff +/* 803A82F0 003A5250 41 82 00 1C */ beq lbl_803A830C +/* 803A82F4 003A5254 38 9F 08 00 */ addi r4, r31, 0x800 +/* 803A82F8 003A5258 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A82FC 003A525C 88 A3 00 01 */ lbz r5, 1(r3) +/* 803A8300 003A5260 7C 84 02 14 */ add r4, r4, r0 +/* 803A8304 003A5264 98 A4 00 01 */ stb r5, 1(r4) +/* 803A8308 003A5268 48 00 00 14 */ b lbl_803A831C +lbl_803A830C: +/* 803A830C 003A526C 88 A3 00 01 */ lbz r5, 1(r3) +/* 803A8310 003A5270 38 9F 09 00 */ addi r4, r31, 0x900 +/* 803A8314 003A5274 88 1E 01 0C */ lbz r0, 0x10c(r30) +/* 803A8318 003A5278 7C A4 01 AE */ stbx r5, r4, r0 +lbl_803A831C: +/* 803A831C 003A527C 88 03 00 01 */ lbz r0, 1(r3) +/* 803A8320 003A5280 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8324 003A5284 41 82 00 18 */ beq lbl_803A833C +/* 803A8328 003A5288 88 A3 00 00 */ lbz r5, 0(r3) +/* 803A832C 003A528C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A8330 003A5290 38 9F 08 00 */ addi r4, r31, 0x800 +/* 803A8334 003A5294 7C A4 01 AE */ stbx r5, r4, r0 +/* 803A8338 003A5298 48 00 00 68 */ b lbl_803A83A0 +lbl_803A833C: +/* 803A833C 003A529C 88 03 00 00 */ lbz r0, 0(r3) +/* 803A8340 003A52A0 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8344 003A52A4 40 82 00 5C */ bne lbl_803A83A0 +/* 803A8348 003A52A8 88 1E 01 0C */ lbz r0, 0x10c(r30) +/* 803A834C 003A52AC 38 DF 0A 00 */ addi r6, r31, 0xa00 +/* 803A8350 003A52B0 54 00 10 3A */ slwi r0, r0, 2 +/* 803A8354 003A52B4 7C C6 02 14 */ add r6, r6, r0 +/* 803A8358 003A52B8 A0 06 00 02 */ lhz r0, 2(r6) +/* 803A835C 003A52BC 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8360 003A52C0 41 82 00 18 */ beq lbl_803A8378 +/* 803A8364 003A52C4 A0 A6 00 00 */ lhz r5, 0(r6) +/* 803A8368 003A52C8 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d +/* 803A836C 003A52CC 38 9F 0A 00 */ addi r4, r31, 0xa00 +/* 803A8370 003A52D0 7C A4 03 2E */ sthx r5, r4, r0 +/* 803A8374 003A52D4 48 00 00 0C */ b lbl_803A8380 +lbl_803A8378: +/* 803A8378 003A52D8 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A837C 003A52DC B0 0D AF 0C */ sth r0, lbl_805A9ACC@sda21(r13) +lbl_803A8380: +/* 803A8380 003A52E0 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A8384 003A52E4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8388 003A52E8 41 82 00 18 */ beq lbl_803A83A0 +/* 803A838C 003A52EC 38 9F 0A 00 */ addi r4, r31, 0xa00 +/* 803A8390 003A52F0 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d +/* 803A8394 003A52F4 A0 A6 00 02 */ lhz r5, 2(r6) +/* 803A8398 003A52F8 7C 84 02 14 */ add r4, r4, r0 +/* 803A839C 003A52FC B0 A4 00 02 */ sth r5, 2(r4) +lbl_803A83A0: +/* 803A83A0 003A5300 38 00 00 00 */ li r0, 0 +/* 803A83A4 003A5304 B0 03 00 02 */ sth r0, 2(r3) +lbl_803A83A8: +/* 803A83A8 003A5308 38 00 00 00 */ li r0, 0 +/* 803A83AC 003A530C 38 DF 0E 00 */ addi r6, r31, 0xe00 +/* 803A83B0 003A5310 90 1E 00 34 */ stw r0, 0x34(r30) +/* 803A83B4 003A5314 98 1E 01 0C */ stb r0, 0x10c(r30) +/* 803A83B8 003A5318 80 7E 00 F4 */ lwz r3, 0xf4(r30) +/* 803A83BC 003A531C 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d +/* 803A83C0 003A5320 54 65 06 3E */ clrlwi r5, r3, 0x18 +/* 803A83C4 003A5324 7C C6 02 14 */ add r6, r6, r0 +/* 803A83C8 003A5328 A0 06 00 02 */ lhz r0, 2(r6) +/* 803A83CC 003A532C 28 00 00 00 */ cmplwi r0, 0 +/* 803A83D0 003A5330 40 82 00 78 */ bne lbl_803A8448 +/* 803A83D4 003A5334 88 0D AF 11 */ lbz r0, lbl_805A9AD1@sda21(r13) +/* 803A83D8 003A5338 38 60 00 01 */ li r3, 1 +/* 803A83DC 003A533C B0 66 00 02 */ sth r3, 2(r6) +/* 803A83E0 003A5340 28 00 00 FF */ cmplwi r0, 0xff +/* 803A83E4 003A5344 41 82 00 28 */ beq lbl_803A840C +/* 803A83E8 003A5348 38 00 00 FF */ li r0, 0xff +/* 803A83EC 003A534C 88 8D AF 10 */ lbz r4, lbl_805A9AD0@sda21(r13) +/* 803A83F0 003A5350 98 06 00 01 */ stb r0, 1(r6) +/* 803A83F4 003A5354 38 7F 0E 00 */ addi r3, r31, 0xe00 +/* 803A83F8 003A5358 54 80 10 3A */ slwi r0, r4, 2 +/* 803A83FC 003A535C 98 86 00 00 */ stb r4, 0(r6) +/* 803A8400 003A5360 7C 63 02 14 */ add r3, r3, r0 +/* 803A8404 003A5364 98 A3 00 01 */ stb r5, 1(r3) +/* 803A8408 003A5368 48 00 00 14 */ b lbl_803A841C +lbl_803A840C: +/* 803A840C 003A536C 38 00 00 FF */ li r0, 0xff +/* 803A8410 003A5370 98 AD AF 11 */ stb r5, lbl_805A9AD1@sda21(r13) +/* 803A8414 003A5374 98 06 00 01 */ stb r0, 1(r6) +/* 803A8418 003A5378 98 06 00 00 */ stb r0, 0(r6) +lbl_803A841C: +/* 803A841C 003A537C 98 AD AF 10 */ stb r5, lbl_805A9AD0@sda21(r13) +/* 803A8420 003A5380 88 1E 01 1D */ lbz r0, 0x11d(r30) +/* 803A8424 003A5384 28 00 00 00 */ cmplwi r0, 0 +/* 803A8428 003A5388 41 82 00 14 */ beq lbl_803A843C +/* 803A842C 003A538C 88 6D AF 0F */ lbz r3, lbl_805A9ACF@sda21(r13) +/* 803A8430 003A5390 38 03 FF FF */ addi r0, r3, -1 +/* 803A8434 003A5394 98 0D AF 0F */ stb r0, lbl_805A9ACF@sda21(r13) +/* 803A8438 003A5398 48 00 00 10 */ b lbl_803A8448 +lbl_803A843C: +/* 803A843C 003A539C 88 6D AF 0E */ lbz r3, lbl_805A9ACE@sda21(r13) +/* 803A8440 003A53A0 38 03 FF FF */ addi r0, r3, -1 +/* 803A8444 003A53A4 98 0D AF 0E */ stb r0, lbl_805A9ACE@sda21(r13) +lbl_803A8448: +/* 803A8448 003A53A8 38 00 FF FF */ li r0, -1 +/* 803A844C 003A53AC 90 1E 00 F4 */ stw r0, 0xf4(r30) +/* 803A8450 003A53B0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A8454 003A53B4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A8458 003A53B8 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A845C 003A53BC 7C 08 03 A6 */ mtlr r0 +/* 803A8460 003A53C0 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A8464 003A53C4 4E 80 00 20 */ blr + +.global synthInitAllocationAids +synthInitAllocationAids: +/* 803A8468 003A53C8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A846C 003A53CC 3C 60 80 55 */ lis r3, lbl_80550050@ha +/* 803A8470 003A53D0 39 83 00 50 */ addi r12, r3, lbl_80550050@l +/* 803A8474 003A53D4 3C 80 80 56 */ lis r4, lbl_8055D350@ha +/* 803A8478 003A53D8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A847C 003A53DC 3B E0 00 00 */ li r31, 0 +/* 803A8480 003A53E0 38 64 D3 50 */ addi r3, r4, lbl_8055D350@l +/* 803A8484 003A53E4 93 C1 00 08 */ stw r30, 8(r1) +/* 803A8488 003A53E8 88 AC 02 10 */ lbz r5, 0x210(r12) +/* 803A848C 003A53EC 28 05 00 00 */ cmplwi r5, 0 +/* 803A8490 003A53F0 40 81 01 00 */ ble lbl_803A8590 +/* 803A8494 003A53F4 28 05 00 08 */ cmplwi r5, 8 +/* 803A8498 003A53F8 38 85 FF F8 */ addi r4, r5, -8 +/* 803A849C 003A53FC 40 81 00 B0 */ ble lbl_803A854C +/* 803A84A0 003A5400 38 04 00 07 */ addi r0, r4, 7 +/* 803A84A4 003A5404 3B C3 0E 00 */ addi r30, r3, 0xe00 +/* 803A84A8 003A5408 54 00 E8 FE */ srwi r0, r0, 3 +/* 803A84AC 003A540C 7C 09 03 A6 */ mtctr r0 +/* 803A84B0 003A5410 28 04 00 00 */ cmplwi r4, 0 +/* 803A84B4 003A5414 40 81 00 98 */ ble lbl_803A854C +lbl_803A84B8: +/* 803A84B8 003A5418 38 1F FF FF */ addi r0, r31, -1 +/* 803A84BC 003A541C 39 7F 00 01 */ addi r11, r31, 1 +/* 803A84C0 003A5420 98 1E 00 00 */ stb r0, 0(r30) +/* 803A84C4 003A5424 39 40 00 01 */ li r10, 1 +/* 803A84C8 003A5428 39 3F 00 02 */ addi r9, r31, 2 +/* 803A84CC 003A542C 39 1F 00 03 */ addi r8, r31, 3 +/* 803A84D0 003A5430 99 7E 00 01 */ stb r11, 1(r30) +/* 803A84D4 003A5434 38 FF 00 04 */ addi r7, r31, 4 +/* 803A84D8 003A5438 38 DF 00 05 */ addi r6, r31, 5 +/* 803A84DC 003A543C 38 BF 00 06 */ addi r5, r31, 6 +/* 803A84E0 003A5440 B1 5E 00 02 */ sth r10, 2(r30) +/* 803A84E4 003A5444 38 9F 00 07 */ addi r4, r31, 7 +/* 803A84E8 003A5448 38 1F 00 08 */ addi r0, r31, 8 +/* 803A84EC 003A544C 9B FE 00 04 */ stb r31, 4(r30) +/* 803A84F0 003A5450 3B FF 00 08 */ addi r31, r31, 8 +/* 803A84F4 003A5454 99 3E 00 05 */ stb r9, 5(r30) +/* 803A84F8 003A5458 B1 5E 00 06 */ sth r10, 6(r30) +/* 803A84FC 003A545C 99 7E 00 08 */ stb r11, 8(r30) +/* 803A8500 003A5460 99 1E 00 09 */ stb r8, 9(r30) +/* 803A8504 003A5464 B1 5E 00 0A */ sth r10, 0xa(r30) +/* 803A8508 003A5468 99 3E 00 0C */ stb r9, 0xc(r30) +/* 803A850C 003A546C 98 FE 00 0D */ stb r7, 0xd(r30) +/* 803A8510 003A5470 B1 5E 00 0E */ sth r10, 0xe(r30) +/* 803A8514 003A5474 99 1E 00 10 */ stb r8, 0x10(r30) +/* 803A8518 003A5478 98 DE 00 11 */ stb r6, 0x11(r30) +/* 803A851C 003A547C B1 5E 00 12 */ sth r10, 0x12(r30) +/* 803A8520 003A5480 98 FE 00 14 */ stb r7, 0x14(r30) +/* 803A8524 003A5484 98 BE 00 15 */ stb r5, 0x15(r30) +/* 803A8528 003A5488 B1 5E 00 16 */ sth r10, 0x16(r30) +/* 803A852C 003A548C 98 DE 00 18 */ stb r6, 0x18(r30) +/* 803A8530 003A5490 98 9E 00 19 */ stb r4, 0x19(r30) +/* 803A8534 003A5494 B1 5E 00 1A */ sth r10, 0x1a(r30) +/* 803A8538 003A5498 98 BE 00 1C */ stb r5, 0x1c(r30) +/* 803A853C 003A549C 98 1E 00 1D */ stb r0, 0x1d(r30) +/* 803A8540 003A54A0 B1 5E 00 1E */ sth r10, 0x1e(r30) +/* 803A8544 003A54A4 3B DE 00 20 */ addi r30, r30, 0x20 +/* 803A8548 003A54A8 42 00 FF 70 */ bdnz lbl_803A84B8 +lbl_803A854C: +/* 803A854C 003A54AC 88 EC 02 10 */ lbz r7, 0x210(r12) +/* 803A8550 003A54B0 57 E5 10 3A */ slwi r5, r31, 2 +/* 803A8554 003A54B4 38 C3 0E 00 */ addi r6, r3, 0xe00 +/* 803A8558 003A54B8 38 80 00 01 */ li r4, 1 +/* 803A855C 003A54BC 7C 1F 38 50 */ subf r0, r31, r7 +/* 803A8560 003A54C0 7C C6 2A 14 */ add r6, r6, r5 +/* 803A8564 003A54C4 7C 09 03 A6 */ mtctr r0 +/* 803A8568 003A54C8 7C 1F 38 40 */ cmplw r31, r7 +/* 803A856C 003A54CC 40 80 00 24 */ bge lbl_803A8590 +lbl_803A8570: +/* 803A8570 003A54D0 38 BF FF FF */ addi r5, r31, -1 +/* 803A8574 003A54D4 38 1F 00 01 */ addi r0, r31, 1 +/* 803A8578 003A54D8 98 A6 00 00 */ stb r5, 0(r6) +/* 803A857C 003A54DC 3B FF 00 01 */ addi r31, r31, 1 +/* 803A8580 003A54E0 98 06 00 01 */ stb r0, 1(r6) +/* 803A8584 003A54E4 B0 86 00 02 */ sth r4, 2(r6) +/* 803A8588 003A54E8 38 C6 00 04 */ addi r6, r6, 4 +/* 803A858C 003A54EC 42 00 FF E4 */ bdnz lbl_803A8570 +lbl_803A8590: +/* 803A8590 003A54F0 89 0C 02 10 */ lbz r8, 0x210(r12) +/* 803A8594 003A54F4 38 E0 00 FF */ li r7, 0xff +/* 803A8598 003A54F8 38 80 00 00 */ li r4, 0 +/* 803A859C 003A54FC 38 C3 0E 00 */ addi r6, r3, 0xe00 +/* 803A85A0 003A5500 55 05 10 3A */ slwi r5, r8, 2 +/* 803A85A4 003A5504 98 E3 0E 00 */ stb r7, 0xe00(r3) +/* 803A85A8 003A5508 7C A6 2A 14 */ add r5, r6, r5 +/* 803A85AC 003A550C 38 08 FF FF */ addi r0, r8, -1 +/* 803A85B0 003A5510 28 08 00 00 */ cmplwi r8, 0 +/* 803A85B4 003A5514 98 8D AF 11 */ stb r4, lbl_805A9AD1@sda21(r13) +/* 803A85B8 003A5518 7C 86 23 78 */ mr r6, r4 +/* 803A85BC 003A551C 98 E5 FF FD */ stb r7, -3(r5) +/* 803A85C0 003A5520 98 0D AF 10 */ stb r0, lbl_805A9AD0@sda21(r13) +/* 803A85C4 003A5524 40 81 00 84 */ ble lbl_803A8648 +/* 803A85C8 003A5528 28 08 00 08 */ cmplwi r8, 8 +/* 803A85CC 003A552C 38 A8 FF F8 */ addi r5, r8, -8 +/* 803A85D0 003A5530 40 81 00 48 */ ble lbl_803A8618 +/* 803A85D4 003A5534 38 05 00 07 */ addi r0, r5, 7 +/* 803A85D8 003A5538 38 E3 08 00 */ addi r7, r3, 0x800 +/* 803A85DC 003A553C 54 00 E8 FE */ srwi r0, r0, 3 +/* 803A85E0 003A5540 7C 09 03 A6 */ mtctr r0 +/* 803A85E4 003A5544 28 05 00 00 */ cmplwi r5, 0 +/* 803A85E8 003A5548 40 81 00 30 */ ble lbl_803A8618 +lbl_803A85EC: +/* 803A85EC 003A554C B0 87 00 02 */ sth r4, 2(r7) +/* 803A85F0 003A5550 38 C6 00 08 */ addi r6, r6, 8 +/* 803A85F4 003A5554 B0 87 00 06 */ sth r4, 6(r7) +/* 803A85F8 003A5558 B0 87 00 0A */ sth r4, 0xa(r7) +/* 803A85FC 003A555C B0 87 00 0E */ sth r4, 0xe(r7) +/* 803A8600 003A5560 B0 87 00 12 */ sth r4, 0x12(r7) +/* 803A8604 003A5564 B0 87 00 16 */ sth r4, 0x16(r7) +/* 803A8608 003A5568 B0 87 00 1A */ sth r4, 0x1a(r7) +/* 803A860C 003A556C B0 87 00 1E */ sth r4, 0x1e(r7) +/* 803A8610 003A5570 38 E7 00 20 */ addi r7, r7, 0x20 +/* 803A8614 003A5574 42 00 FF D8 */ bdnz lbl_803A85EC +lbl_803A8618: +/* 803A8618 003A5578 89 0C 02 10 */ lbz r8, 0x210(r12) +/* 803A861C 003A557C 54 C5 10 3A */ slwi r5, r6, 2 +/* 803A8620 003A5580 38 E3 08 00 */ addi r7, r3, 0x800 +/* 803A8624 003A5584 38 80 00 00 */ li r4, 0 +/* 803A8628 003A5588 7C 06 40 50 */ subf r0, r6, r8 +/* 803A862C 003A558C 7C E7 2A 14 */ add r7, r7, r5 +/* 803A8630 003A5590 7C 09 03 A6 */ mtctr r0 +/* 803A8634 003A5594 7C 06 40 40 */ cmplw r6, r8 +/* 803A8638 003A5598 40 80 00 10 */ bge lbl_803A8648 +lbl_803A863C: +/* 803A863C 003A559C B0 87 00 02 */ sth r4, 2(r7) +/* 803A8640 003A55A0 38 E7 00 04 */ addi r7, r7, 4 +/* 803A8644 003A55A4 42 00 FF F8 */ bdnz lbl_803A863C +lbl_803A8648: +/* 803A8648 003A55A8 38 00 00 08 */ li r0, 8 +/* 803A864C 003A55AC 38 83 09 00 */ addi r4, r3, 0x900 +/* 803A8650 003A55B0 38 60 00 FF */ li r3, 0xff +/* 803A8654 003A55B4 7C 09 03 A6 */ mtctr r0 +lbl_803A8658: +/* 803A8658 003A55B8 98 64 00 00 */ stb r3, 0(r4) +/* 803A865C 003A55BC 98 64 00 01 */ stb r3, 1(r4) +/* 803A8660 003A55C0 98 64 00 02 */ stb r3, 2(r4) +/* 803A8664 003A55C4 98 64 00 03 */ stb r3, 3(r4) +/* 803A8668 003A55C8 98 64 00 04 */ stb r3, 4(r4) +/* 803A866C 003A55CC 98 64 00 05 */ stb r3, 5(r4) +/* 803A8670 003A55D0 98 64 00 06 */ stb r3, 6(r4) +/* 803A8674 003A55D4 98 64 00 07 */ stb r3, 7(r4) +/* 803A8678 003A55D8 98 64 00 08 */ stb r3, 8(r4) +/* 803A867C 003A55DC 98 64 00 09 */ stb r3, 9(r4) +/* 803A8680 003A55E0 98 64 00 0A */ stb r3, 0xa(r4) +/* 803A8684 003A55E4 98 64 00 0B */ stb r3, 0xb(r4) +/* 803A8688 003A55E8 98 64 00 0C */ stb r3, 0xc(r4) +/* 803A868C 003A55EC 98 64 00 0D */ stb r3, 0xd(r4) +/* 803A8690 003A55F0 98 64 00 0E */ stb r3, 0xe(r4) +/* 803A8694 003A55F4 98 64 00 0F */ stb r3, 0xf(r4) +/* 803A8698 003A55F8 98 64 00 10 */ stb r3, 0x10(r4) +/* 803A869C 003A55FC 98 64 00 11 */ stb r3, 0x11(r4) +/* 803A86A0 003A5600 98 64 00 12 */ stb r3, 0x12(r4) +/* 803A86A4 003A5604 98 64 00 13 */ stb r3, 0x13(r4) +/* 803A86A8 003A5608 98 64 00 14 */ stb r3, 0x14(r4) +/* 803A86AC 003A560C 98 64 00 15 */ stb r3, 0x15(r4) +/* 803A86B0 003A5610 98 64 00 16 */ stb r3, 0x16(r4) +/* 803A86B4 003A5614 98 64 00 17 */ stb r3, 0x17(r4) +/* 803A86B8 003A5618 98 64 00 18 */ stb r3, 0x18(r4) +/* 803A86BC 003A561C 98 64 00 19 */ stb r3, 0x19(r4) +/* 803A86C0 003A5620 98 64 00 1A */ stb r3, 0x1a(r4) +/* 803A86C4 003A5624 98 64 00 1B */ stb r3, 0x1b(r4) +/* 803A86C8 003A5628 98 64 00 1C */ stb r3, 0x1c(r4) +/* 803A86CC 003A562C 98 64 00 1D */ stb r3, 0x1d(r4) +/* 803A86D0 003A5630 98 64 00 1E */ stb r3, 0x1e(r4) +/* 803A86D4 003A5634 98 64 00 1F */ stb r3, 0x1f(r4) +/* 803A86D8 003A5638 38 84 00 20 */ addi r4, r4, 0x20 +/* 803A86DC 003A563C 42 00 FF 7C */ bdnz lbl_803A8658 +/* 803A86E0 003A5640 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 803A86E4 003A5644 38 00 00 00 */ li r0, 0 +/* 803A86E8 003A5648 38 63 FF FF */ addi r3, r3, 0x0000FFFF@l +/* 803A86EC 003A564C 98 0D AF 0F */ stb r0, lbl_805A9ACF@sda21(r13) +/* 803A86F0 003A5650 B0 6D AF 0C */ sth r3, lbl_805A9ACC@sda21(r13) +/* 803A86F4 003A5654 98 0D AF 0E */ stb r0, lbl_805A9ACE@sda21(r13) +/* 803A86F8 003A5658 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A86FC 003A565C 83 C1 00 08 */ lwz r30, 8(r1) +/* 803A8700 003A5660 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A8704 003A5664 4E 80 00 20 */ blr + +.global sub_803a8708 +sub_803a8708: +/* 803A8708 003A5668 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A870C 003A566C 7C 08 02 A6 */ mflr r0 +/* 803A8710 003A5670 3C 80 00 01 */ lis r4, 0x0000FFFF@ha +/* 803A8714 003A5674 38 C0 00 01 */ li r6, 1 +/* 803A8718 003A5678 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A871C 003A567C 38 A4 FF FF */ addi r5, r4, 0x0000FFFF@l +/* 803A8720 003A5680 38 80 00 FF */ li r4, 0xff +/* 803A8724 003A5684 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A8728 003A5688 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A872C 003A568C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A8730 003A5690 7C 7D 1B 78 */ mr r29, r3 +/* 803A8734 003A5694 4B FF F7 11 */ bl sub_803a7e44 +/* 803A8738 003A5698 7C 7E 1B 78 */ mr r30, r3 +/* 803A873C 003A569C 3C 1E 00 01 */ addis r0, r30, 1 +/* 803A8740 003A56A0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8744 003A56A4 41 82 00 A0 */ beq lbl_803A87E4 +/* 803A8748 003A56A8 1F FE 04 04 */ mulli r31, r30, 0x404 +/* 803A874C 003A56AC 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8750 003A56B0 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 803A8754 003A56B4 38 C0 00 01 */ li r6, 1 +/* 803A8758 003A56B8 7C A0 FA 14 */ add r5, r0, r31 +/* 803A875C 003A56BC 38 83 FF FF */ addi r4, r3, 0x0000FFFF@l +/* 803A8760 003A56C0 98 C5 01 1C */ stb r6, 0x11c(r5) +/* 803A8764 003A56C4 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8768 003A56C8 7C 60 FA 14 */ add r3, r0, r31 +/* 803A876C 003A56CC 98 C3 01 1D */ stb r6, 0x11d(r3) +/* 803A8770 003A56D0 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8774 003A56D4 7C 60 FA 14 */ add r3, r0, r31 +/* 803A8778 003A56D8 B0 83 01 00 */ sth r4, 0x100(r3) +/* 803A877C 003A56DC 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8780 003A56E0 7C 60 FA 14 */ add r3, r0, r31 +/* 803A8784 003A56E4 4B FF EF BD */ bl sub_803a7740 +/* 803A8788 003A56E8 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A878C 003A56EC 67 C5 FF FF */ oris r5, r30, 0xffff +/* 803A8790 003A56F0 60 A5 FF 00 */ ori r5, r5, 0xff00 +/* 803A8794 003A56F4 7F C3 F3 78 */ mr r3, r30 +/* 803A8798 003A56F8 7C 80 FA 14 */ add r4, r0, r31 +/* 803A879C 003A56FC 90 A4 00 F4 */ stw r5, 0xf4(r4) +/* 803A87A0 003A5700 48 00 A9 FD */ bl hwIsActive +/* 803A87A4 003A5704 28 03 00 00 */ cmplwi r3, 0 +/* 803A87A8 003A5708 41 82 00 0C */ beq lbl_803A87B4 +/* 803A87AC 003A570C 7F C3 F3 78 */ mr r3, r30 +/* 803A87B0 003A5710 48 00 AB DD */ bl hwBreak +lbl_803A87B4: +/* 803A87B4 003A5714 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A87B8 003A5718 38 80 00 02 */ li r4, 2 +/* 803A87BC 003A571C 7C 60 FA 14 */ add r3, r0, r31 +/* 803A87C0 003A5720 4B FF E9 05 */ bl macMakeInactive +/* 803A87C4 003A5724 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A87C8 003A5728 38 A0 00 00 */ li r5, 0 +/* 803A87CC 003A572C 7F A4 EB 78 */ mr r4, r29 +/* 803A87D0 003A5730 7C 60 FA 14 */ add r3, r0, r31 +/* 803A87D4 003A5734 90 A3 00 34 */ stw r5, 0x34(r3) +/* 803A87D8 003A5738 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A87DC 003A573C 7C 60 FA 14 */ add r3, r0, r31 +/* 803A87E0 003A5740 4B FF F4 19 */ bl voiceSetPriority +lbl_803A87E4: +/* 803A87E4 003A5744 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A87E8 003A5748 7F C3 F3 78 */ mr r3, r30 +/* 803A87EC 003A574C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A87F0 003A5750 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A87F4 003A5754 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A87F8 003A5758 7C 08 03 A6 */ mtlr r0 +/* 803A87FC 003A575C 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A8800 003A5760 4E 80 00 20 */ blr + +.global voiceUnblock +voiceUnblock: +/* 803A8804 003A5764 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A8808 003A5768 7C 08 02 A6 */ mflr r0 +/* 803A880C 003A576C 3C 80 80 56 */ lis r4, lbl_8055D350@ha +/* 803A8810 003A5770 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A8814 003A5774 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A8818 003A5778 3B E4 D3 50 */ addi r31, r4, lbl_8055D350@l +/* 803A881C 003A577C 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A8820 003A5780 7C 7E 1B 78 */ mr r30, r3 +/* 803A8824 003A5784 3C 1E 00 01 */ addis r0, r30, 1 +/* 803A8828 003A5788 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A882C 003A578C 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A8830 003A5790 41 82 01 D0 */ beq lbl_803A8A00 +/* 803A8834 003A5794 48 00 A9 69 */ bl hwIsActive +/* 803A8838 003A5798 28 03 00 00 */ cmplwi r3, 0 +/* 803A883C 003A579C 41 82 00 0C */ beq lbl_803A8848 +/* 803A8840 003A57A0 7F C3 F3 78 */ mr r3, r30 +/* 803A8844 003A57A4 48 00 AB 49 */ bl hwBreak +lbl_803A8848: +/* 803A8848 003A57A8 1F BE 04 04 */ mulli r29, r30, 0x404 +/* 803A884C 003A57AC 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8850 003A57B0 38 80 00 02 */ li r4, 2 +/* 803A8854 003A57B4 7C 60 EA 14 */ add r3, r0, r29 +/* 803A8858 003A57B8 93 C3 00 F4 */ stw r30, 0xf4(r3) +/* 803A885C 003A57BC 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8860 003A57C0 7F C0 EA 14 */ add r30, r0, r29 +/* 803A8864 003A57C4 7F C3 F3 78 */ mr r3, r30 +/* 803A8868 003A57C8 4B FF E8 5D */ bl macMakeInactive +/* 803A886C 003A57CC 80 1E 00 F4 */ lwz r0, 0xf4(r30) +/* 803A8870 003A57D0 38 7F 08 00 */ addi r3, r31, 0x800 +/* 803A8874 003A57D4 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A8878 003A57D8 7C 63 02 14 */ add r3, r3, r0 +/* 803A887C 003A57DC A0 03 00 02 */ lhz r0, 2(r3) +/* 803A8880 003A57E0 28 00 00 01 */ cmplwi r0, 1 +/* 803A8884 003A57E4 40 82 00 C4 */ bne lbl_803A8948 +/* 803A8888 003A57E8 88 03 00 00 */ lbz r0, 0(r3) +/* 803A888C 003A57EC 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8890 003A57F0 41 82 00 1C */ beq lbl_803A88AC +/* 803A8894 003A57F4 38 9F 08 00 */ addi r4, r31, 0x800 +/* 803A8898 003A57F8 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A889C 003A57FC 88 A3 00 01 */ lbz r5, 1(r3) +/* 803A88A0 003A5800 7C 84 02 14 */ add r4, r4, r0 +/* 803A88A4 003A5804 98 A4 00 01 */ stb r5, 1(r4) +/* 803A88A8 003A5808 48 00 00 14 */ b lbl_803A88BC +lbl_803A88AC: +/* 803A88AC 003A580C 88 A3 00 01 */ lbz r5, 1(r3) +/* 803A88B0 003A5810 38 9F 09 00 */ addi r4, r31, 0x900 +/* 803A88B4 003A5814 88 1E 01 0C */ lbz r0, 0x10c(r30) +/* 803A88B8 003A5818 7C A4 01 AE */ stbx r5, r4, r0 +lbl_803A88BC: +/* 803A88BC 003A581C 88 03 00 01 */ lbz r0, 1(r3) +/* 803A88C0 003A5820 28 00 00 FF */ cmplwi r0, 0xff +/* 803A88C4 003A5824 41 82 00 18 */ beq lbl_803A88DC +/* 803A88C8 003A5828 88 A3 00 00 */ lbz r5, 0(r3) +/* 803A88CC 003A582C 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A88D0 003A5830 38 9F 08 00 */ addi r4, r31, 0x800 +/* 803A88D4 003A5834 7C A4 01 AE */ stbx r5, r4, r0 +/* 803A88D8 003A5838 48 00 00 68 */ b lbl_803A8940 +lbl_803A88DC: +/* 803A88DC 003A583C 88 03 00 00 */ lbz r0, 0(r3) +/* 803A88E0 003A5840 28 00 00 FF */ cmplwi r0, 0xff +/* 803A88E4 003A5844 40 82 00 5C */ bne lbl_803A8940 +/* 803A88E8 003A5848 88 1E 01 0C */ lbz r0, 0x10c(r30) +/* 803A88EC 003A584C 38 DF 0A 00 */ addi r6, r31, 0xa00 +/* 803A88F0 003A5850 54 00 10 3A */ slwi r0, r0, 2 +/* 803A88F4 003A5854 7C C6 02 14 */ add r6, r6, r0 +/* 803A88F8 003A5858 A0 06 00 02 */ lhz r0, 2(r6) +/* 803A88FC 003A585C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8900 003A5860 41 82 00 18 */ beq lbl_803A8918 +/* 803A8904 003A5864 A0 A6 00 00 */ lhz r5, 0(r6) +/* 803A8908 003A5868 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d +/* 803A890C 003A586C 38 9F 0A 00 */ addi r4, r31, 0xa00 +/* 803A8910 003A5870 7C A4 03 2E */ sthx r5, r4, r0 +/* 803A8914 003A5874 48 00 00 0C */ b lbl_803A8920 +lbl_803A8918: +/* 803A8918 003A5878 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A891C 003A587C B0 0D AF 0C */ sth r0, lbl_805A9ACC@sda21(r13) +lbl_803A8920: +/* 803A8920 003A5880 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A8924 003A5884 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8928 003A5888 41 82 00 18 */ beq lbl_803A8940 +/* 803A892C 003A588C 38 9F 0A 00 */ addi r4, r31, 0xa00 +/* 803A8930 003A5890 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d +/* 803A8934 003A5894 A0 A6 00 02 */ lhz r5, 2(r6) +/* 803A8938 003A5898 7C 84 02 14 */ add r4, r4, r0 +/* 803A893C 003A589C B0 A4 00 02 */ sth r5, 2(r4) +lbl_803A8940: +/* 803A8940 003A58A0 38 00 00 00 */ li r0, 0 +/* 803A8944 003A58A4 B0 03 00 02 */ sth r0, 2(r3) +lbl_803A8948: +/* 803A8948 003A58A8 38 00 00 00 */ li r0, 0 +/* 803A894C 003A58AC 38 BF 0E 00 */ addi r5, r31, 0xe00 +/* 803A8950 003A58B0 90 1E 00 34 */ stw r0, 0x34(r30) +/* 803A8954 003A58B4 98 1E 01 0C */ stb r0, 0x10c(r30) +/* 803A8958 003A58B8 80 7E 00 F4 */ lwz r3, 0xf4(r30) +/* 803A895C 003A58BC 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d +/* 803A8960 003A58C0 54 66 06 3E */ clrlwi r6, r3, 0x18 +/* 803A8964 003A58C4 7C A5 02 14 */ add r5, r5, r0 +/* 803A8968 003A58C8 A0 05 00 02 */ lhz r0, 2(r5) +/* 803A896C 003A58CC 28 00 00 00 */ cmplwi r0, 0 +/* 803A8970 003A58D0 40 82 00 78 */ bne lbl_803A89E8 +/* 803A8974 003A58D4 88 0D AF 11 */ lbz r0, lbl_805A9AD1@sda21(r13) +/* 803A8978 003A58D8 38 60 00 01 */ li r3, 1 +/* 803A897C 003A58DC B0 65 00 02 */ sth r3, 2(r5) +/* 803A8980 003A58E0 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8984 003A58E4 41 82 00 28 */ beq lbl_803A89AC +/* 803A8988 003A58E8 38 00 00 FF */ li r0, 0xff +/* 803A898C 003A58EC 88 8D AF 10 */ lbz r4, lbl_805A9AD0@sda21(r13) +/* 803A8990 003A58F0 98 05 00 01 */ stb r0, 1(r5) +/* 803A8994 003A58F4 38 7F 0E 00 */ addi r3, r31, 0xe00 +/* 803A8998 003A58F8 54 80 10 3A */ slwi r0, r4, 2 +/* 803A899C 003A58FC 98 85 00 00 */ stb r4, 0(r5) +/* 803A89A0 003A5900 7C 63 02 14 */ add r3, r3, r0 +/* 803A89A4 003A5904 98 C3 00 01 */ stb r6, 1(r3) +/* 803A89A8 003A5908 48 00 00 14 */ b lbl_803A89BC +lbl_803A89AC: +/* 803A89AC 003A590C 38 00 00 FF */ li r0, 0xff +/* 803A89B0 003A5910 98 CD AF 11 */ stb r6, lbl_805A9AD1@sda21(r13) +/* 803A89B4 003A5914 98 05 00 01 */ stb r0, 1(r5) +/* 803A89B8 003A5918 98 05 00 00 */ stb r0, 0(r5) +lbl_803A89BC: +/* 803A89BC 003A591C 98 CD AF 10 */ stb r6, lbl_805A9AD0@sda21(r13) +/* 803A89C0 003A5920 88 1E 01 1D */ lbz r0, 0x11d(r30) +/* 803A89C4 003A5924 28 00 00 00 */ cmplwi r0, 0 +/* 803A89C8 003A5928 41 82 00 14 */ beq lbl_803A89DC +/* 803A89CC 003A592C 88 6D AF 0F */ lbz r3, lbl_805A9ACF@sda21(r13) +/* 803A89D0 003A5930 38 03 FF FF */ addi r0, r3, -1 +/* 803A89D4 003A5934 98 0D AF 0F */ stb r0, lbl_805A9ACF@sda21(r13) +/* 803A89D8 003A5938 48 00 00 10 */ b lbl_803A89E8 +lbl_803A89DC: +/* 803A89DC 003A593C 88 6D AF 0E */ lbz r3, lbl_805A9ACE@sda21(r13) +/* 803A89E0 003A5940 38 03 FF FF */ addi r0, r3, -1 +/* 803A89E4 003A5944 98 0D AF 0E */ stb r0, lbl_805A9ACE@sda21(r13) +lbl_803A89E8: +/* 803A89E8 003A5948 38 00 FF FF */ li r0, -1 +/* 803A89EC 003A594C 38 80 00 00 */ li r4, 0 +/* 803A89F0 003A5950 90 1E 00 F4 */ stw r0, 0xf4(r30) +/* 803A89F4 003A5954 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A89F8 003A5958 7C 60 EA 14 */ add r3, r0, r29 +/* 803A89FC 003A595C 98 83 01 1C */ stb r4, 0x11c(r3) +lbl_803A8A00: +/* 803A8A00 003A5960 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A8A04 003A5964 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A8A08 003A5968 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A8A0C 003A596C 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A8A10 003A5970 7C 08 03 A6 */ mtlr r0 +/* 803A8A14 003A5974 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A8A18 003A5978 4E 80 00 20 */ blr + +.global voiceKill +voiceKill: +/* 803A8A1C 003A597C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A8A20 003A5980 7C 08 02 A6 */ mflr r0 +/* 803A8A24 003A5984 3C 80 80 56 */ lis r4, lbl_8055D350@ha +/* 803A8A28 003A5988 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A8A2C 003A598C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 803A8A30 003A5990 3B E4 D3 50 */ addi r31, r4, lbl_8055D350@l +/* 803A8A34 003A5994 93 C1 00 18 */ stw r30, 0x18(r1) +/* 803A8A38 003A5998 93 A1 00 14 */ stw r29, 0x14(r1) +/* 803A8A3C 003A599C 7C 7D 1B 78 */ mr r29, r3 +/* 803A8A40 003A59A0 1C 1D 04 04 */ mulli r0, r29, 0x404 +/* 803A8A44 003A59A4 80 6D AE 78 */ lwz r3, lbl_805A9A38@sda21(r13) +/* 803A8A48 003A59A8 7F C3 02 14 */ add r30, r3, r0 +/* 803A8A4C 003A59AC 80 1E 00 34 */ lwz r0, 0x34(r30) +/* 803A8A50 003A59B0 28 00 00 00 */ cmplwi r0, 0 +/* 803A8A54 003A59B4 41 82 01 C4 */ beq lbl_803A8C18 +/* 803A8A58 003A59B8 7F C3 F3 78 */ mr r3, r30 +/* 803A8A5C 003A59BC 4B FF EC E5 */ bl sub_803a7740 +/* 803A8A60 003A59C0 80 7E 01 18 */ lwz r3, 0x118(r30) +/* 803A8A64 003A59C4 38 00 FF FC */ li r0, -4 +/* 803A8A68 003A59C8 80 BE 01 14 */ lwz r5, 0x114(r30) +/* 803A8A6C 003A59CC 38 80 FF FF */ li r4, -1 +/* 803A8A70 003A59D0 7C 63 00 38 */ and r3, r3, r0 +/* 803A8A74 003A59D4 38 00 00 00 */ li r0, 0 +/* 803A8A78 003A59D8 90 7E 01 18 */ stw r3, 0x118(r30) +/* 803A8A7C 003A59DC 7C A5 20 38 */ and r5, r5, r4 +/* 803A8A80 003A59E0 7F C3 F3 78 */ mr r3, r30 +/* 803A8A84 003A59E4 38 80 00 02 */ li r4, 2 +/* 803A8A88 003A59E8 90 BE 01 14 */ stw r5, 0x114(r30) +/* 803A8A8C 003A59EC 90 1E 01 10 */ stw r0, 0x110(r30) +/* 803A8A90 003A59F0 4B FF E6 35 */ bl macMakeInactive +/* 803A8A94 003A59F4 80 1E 00 F4 */ lwz r0, 0xf4(r30) +/* 803A8A98 003A59F8 38 7F 08 00 */ addi r3, r31, 0x800 +/* 803A8A9C 003A59FC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A8AA0 003A5A00 7C 63 02 14 */ add r3, r3, r0 +/* 803A8AA4 003A5A04 A0 03 00 02 */ lhz r0, 2(r3) +/* 803A8AA8 003A5A08 28 00 00 01 */ cmplwi r0, 1 +/* 803A8AAC 003A5A0C 40 82 00 C4 */ bne lbl_803A8B70 +/* 803A8AB0 003A5A10 88 03 00 00 */ lbz r0, 0(r3) +/* 803A8AB4 003A5A14 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8AB8 003A5A18 41 82 00 1C */ beq lbl_803A8AD4 +/* 803A8ABC 003A5A1C 38 9F 08 00 */ addi r4, r31, 0x800 +/* 803A8AC0 003A5A20 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A8AC4 003A5A24 88 A3 00 01 */ lbz r5, 1(r3) +/* 803A8AC8 003A5A28 7C 84 02 14 */ add r4, r4, r0 +/* 803A8ACC 003A5A2C 98 A4 00 01 */ stb r5, 1(r4) +/* 803A8AD0 003A5A30 48 00 00 14 */ b lbl_803A8AE4 +lbl_803A8AD4: +/* 803A8AD4 003A5A34 88 A3 00 01 */ lbz r5, 1(r3) +/* 803A8AD8 003A5A38 38 9F 09 00 */ addi r4, r31, 0x900 +/* 803A8ADC 003A5A3C 88 1E 01 0C */ lbz r0, 0x10c(r30) +/* 803A8AE0 003A5A40 7C A4 01 AE */ stbx r5, r4, r0 +lbl_803A8AE4: +/* 803A8AE4 003A5A44 88 03 00 01 */ lbz r0, 1(r3) +/* 803A8AE8 003A5A48 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8AEC 003A5A4C 41 82 00 18 */ beq lbl_803A8B04 +/* 803A8AF0 003A5A50 88 A3 00 00 */ lbz r5, 0(r3) +/* 803A8AF4 003A5A54 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d +/* 803A8AF8 003A5A58 38 9F 08 00 */ addi r4, r31, 0x800 +/* 803A8AFC 003A5A5C 7C A4 01 AE */ stbx r5, r4, r0 +/* 803A8B00 003A5A60 48 00 00 68 */ b lbl_803A8B68 +lbl_803A8B04: +/* 803A8B04 003A5A64 88 03 00 00 */ lbz r0, 0(r3) +/* 803A8B08 003A5A68 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8B0C 003A5A6C 40 82 00 5C */ bne lbl_803A8B68 +/* 803A8B10 003A5A70 88 1E 01 0C */ lbz r0, 0x10c(r30) +/* 803A8B14 003A5A74 38 DF 0A 00 */ addi r6, r31, 0xa00 +/* 803A8B18 003A5A78 54 00 10 3A */ slwi r0, r0, 2 +/* 803A8B1C 003A5A7C 7C C6 02 14 */ add r6, r6, r0 +/* 803A8B20 003A5A80 A0 06 00 02 */ lhz r0, 2(r6) +/* 803A8B24 003A5A84 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8B28 003A5A88 41 82 00 18 */ beq lbl_803A8B40 +/* 803A8B2C 003A5A8C A0 A6 00 00 */ lhz r5, 0(r6) +/* 803A8B30 003A5A90 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d +/* 803A8B34 003A5A94 38 9F 0A 00 */ addi r4, r31, 0xa00 +/* 803A8B38 003A5A98 7C A4 03 2E */ sthx r5, r4, r0 +/* 803A8B3C 003A5A9C 48 00 00 0C */ b lbl_803A8B48 +lbl_803A8B40: +/* 803A8B40 003A5AA0 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A8B44 003A5AA4 B0 0D AF 0C */ sth r0, lbl_805A9ACC@sda21(r13) +lbl_803A8B48: +/* 803A8B48 003A5AA8 A0 06 00 00 */ lhz r0, 0(r6) +/* 803A8B4C 003A5AAC 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8B50 003A5AB0 41 82 00 18 */ beq lbl_803A8B68 +/* 803A8B54 003A5AB4 38 9F 0A 00 */ addi r4, r31, 0xa00 +/* 803A8B58 003A5AB8 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d +/* 803A8B5C 003A5ABC A0 A6 00 02 */ lhz r5, 2(r6) +/* 803A8B60 003A5AC0 7C 84 02 14 */ add r4, r4, r0 +/* 803A8B64 003A5AC4 B0 A4 00 02 */ sth r5, 2(r4) +lbl_803A8B68: +/* 803A8B68 003A5AC8 38 00 00 00 */ li r0, 0 +/* 803A8B6C 003A5ACC B0 03 00 02 */ sth r0, 2(r3) +lbl_803A8B70: +/* 803A8B70 003A5AD0 38 00 00 00 */ li r0, 0 +/* 803A8B74 003A5AD4 38 BF 0E 00 */ addi r5, r31, 0xe00 +/* 803A8B78 003A5AD8 90 1E 00 34 */ stw r0, 0x34(r30) +/* 803A8B7C 003A5ADC 98 1E 01 0C */ stb r0, 0x10c(r30) +/* 803A8B80 003A5AE0 80 7E 00 F4 */ lwz r3, 0xf4(r30) +/* 803A8B84 003A5AE4 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d +/* 803A8B88 003A5AE8 54 66 06 3E */ clrlwi r6, r3, 0x18 +/* 803A8B8C 003A5AEC 7C A5 02 14 */ add r5, r5, r0 +/* 803A8B90 003A5AF0 A0 05 00 02 */ lhz r0, 2(r5) +/* 803A8B94 003A5AF4 28 00 00 00 */ cmplwi r0, 0 +/* 803A8B98 003A5AF8 40 82 00 78 */ bne lbl_803A8C10 +/* 803A8B9C 003A5AFC 88 0D AF 11 */ lbz r0, lbl_805A9AD1@sda21(r13) +/* 803A8BA0 003A5B00 38 60 00 01 */ li r3, 1 +/* 803A8BA4 003A5B04 B0 65 00 02 */ sth r3, 2(r5) +/* 803A8BA8 003A5B08 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8BAC 003A5B0C 41 82 00 28 */ beq lbl_803A8BD4 +/* 803A8BB0 003A5B10 38 00 00 FF */ li r0, 0xff +/* 803A8BB4 003A5B14 88 8D AF 10 */ lbz r4, lbl_805A9AD0@sda21(r13) +/* 803A8BB8 003A5B18 98 05 00 01 */ stb r0, 1(r5) +/* 803A8BBC 003A5B1C 38 7F 0E 00 */ addi r3, r31, 0xe00 +/* 803A8BC0 003A5B20 54 80 10 3A */ slwi r0, r4, 2 +/* 803A8BC4 003A5B24 98 85 00 00 */ stb r4, 0(r5) +/* 803A8BC8 003A5B28 7C 63 02 14 */ add r3, r3, r0 +/* 803A8BCC 003A5B2C 98 C3 00 01 */ stb r6, 1(r3) +/* 803A8BD0 003A5B30 48 00 00 14 */ b lbl_803A8BE4 +lbl_803A8BD4: +/* 803A8BD4 003A5B34 38 00 00 FF */ li r0, 0xff +/* 803A8BD8 003A5B38 98 CD AF 11 */ stb r6, lbl_805A9AD1@sda21(r13) +/* 803A8BDC 003A5B3C 98 05 00 01 */ stb r0, 1(r5) +/* 803A8BE0 003A5B40 98 05 00 00 */ stb r0, 0(r5) +lbl_803A8BE4: +/* 803A8BE4 003A5B44 98 CD AF 10 */ stb r6, lbl_805A9AD0@sda21(r13) +/* 803A8BE8 003A5B48 88 1E 01 1D */ lbz r0, 0x11d(r30) +/* 803A8BEC 003A5B4C 28 00 00 00 */ cmplwi r0, 0 +/* 803A8BF0 003A5B50 41 82 00 14 */ beq lbl_803A8C04 +/* 803A8BF4 003A5B54 88 6D AF 0F */ lbz r3, lbl_805A9ACF@sda21(r13) +/* 803A8BF8 003A5B58 38 03 FF FF */ addi r0, r3, -1 +/* 803A8BFC 003A5B5C 98 0D AF 0F */ stb r0, lbl_805A9ACF@sda21(r13) +/* 803A8C00 003A5B60 48 00 00 10 */ b lbl_803A8C10 +lbl_803A8C04: +/* 803A8C04 003A5B64 88 6D AF 0E */ lbz r3, lbl_805A9ACE@sda21(r13) +/* 803A8C08 003A5B68 38 03 FF FF */ addi r0, r3, -1 +/* 803A8C0C 003A5B6C 98 0D AF 0E */ stb r0, lbl_805A9ACE@sda21(r13) +lbl_803A8C10: +/* 803A8C10 003A5B70 38 00 FF FF */ li r0, -1 +/* 803A8C14 003A5B74 90 1E 00 F4 */ stw r0, 0xf4(r30) +lbl_803A8C18: +/* 803A8C18 003A5B78 88 1E 01 1C */ lbz r0, 0x11c(r30) +/* 803A8C1C 003A5B7C 28 00 00 00 */ cmplwi r0, 0 +/* 803A8C20 003A5B80 41 82 00 0C */ beq lbl_803A8C2C +/* 803A8C24 003A5B84 7F A3 EB 78 */ mr r3, r29 +/* 803A8C28 003A5B88 4B FF 46 35 */ bl streamKill +lbl_803A8C2C: +/* 803A8C2C 003A5B8C 7F A3 EB 78 */ mr r3, r29 +/* 803A8C30 003A5B90 48 00 A7 5D */ bl hwBreak +/* 803A8C34 003A5B94 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A8C38 003A5B98 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 803A8C3C 003A5B9C 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 803A8C40 003A5BA0 83 A1 00 14 */ lwz r29, 0x14(r1) +/* 803A8C44 003A5BA4 7C 08 03 A6 */ mtlr r0 +/* 803A8C48 003A5BA8 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A8C4C 003A5BAC 4E 80 00 20 */ blr + +.global voiceKillSound +voiceKillSound: +/* 803A8C50 003A5BB0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 803A8C54 003A5BB4 7C 08 02 A6 */ mflr r0 +/* 803A8C58 003A5BB8 38 A0 FF FF */ li r5, -1 +/* 803A8C5C 003A5BBC 90 01 00 14 */ stw r0, 0x14(r1) +/* 803A8C60 003A5BC0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 803A8C64 003A5BC4 88 0D AE 48 */ lbz r0, lbl_805A9A08@sda21(r13) +/* 803A8C68 003A5BC8 28 00 00 00 */ cmplwi r0, 0 +/* 803A8C6C 003A5BCC 41 82 00 90 */ beq lbl_803A8CFC +/* 803A8C70 003A5BD0 3C 03 00 01 */ addis r0, r3, 1 +/* 803A8C74 003A5BD4 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8C78 003A5BD8 41 82 00 40 */ beq lbl_803A8CB8 +/* 803A8C7C 003A5BDC 80 8D AF 04 */ lwz r4, lbl_805A9AC4@sda21(r13) +/* 803A8C80 003A5BE0 48 00 00 1C */ b lbl_803A8C9C +lbl_803A8C84: +/* 803A8C84 003A5BE4 80 04 00 08 */ lwz r0, 8(r4) +/* 803A8C88 003A5BE8 7C 00 18 40 */ cmplw r0, r3 +/* 803A8C8C 003A5BEC 40 82 00 08 */ bne lbl_803A8C94 +/* 803A8C90 003A5BF0 48 00 00 18 */ b lbl_803A8CA8 +lbl_803A8C94: +/* 803A8C94 003A5BF4 41 81 00 10 */ bgt lbl_803A8CA4 +/* 803A8C98 003A5BF8 80 84 00 00 */ lwz r4, 0(r4) +lbl_803A8C9C: +/* 803A8C9C 003A5BFC 28 04 00 00 */ cmplwi r4, 0 +/* 803A8CA0 003A5C00 40 82 FF E4 */ bne lbl_803A8C84 +lbl_803A8CA4: +/* 803A8CA4 003A5C04 38 80 00 00 */ li r4, 0 +lbl_803A8CA8: +/* 803A8CA8 003A5C08 28 04 00 00 */ cmplwi r4, 0 +/* 803A8CAC 003A5C0C 41 82 00 0C */ beq lbl_803A8CB8 +/* 803A8CB0 003A5C10 80 04 00 0C */ lwz r0, 0xc(r4) +/* 803A8CB4 003A5C14 48 00 00 08 */ b lbl_803A8CBC +lbl_803A8CB8: +/* 803A8CB8 003A5C18 38 00 FF FF */ li r0, -1 +lbl_803A8CBC: +/* 803A8CBC 003A5C1C 7C 06 03 78 */ mr r6, r0 +/* 803A8CC0 003A5C20 48 00 00 30 */ b lbl_803A8CF0 +lbl_803A8CC4: +/* 803A8CC4 003A5C24 54 C3 06 3E */ clrlwi r3, r6, 0x18 +/* 803A8CC8 003A5C28 80 8D AE 78 */ lwz r4, lbl_805A9A38@sda21(r13) +/* 803A8CCC 003A5C2C 1C 03 04 04 */ mulli r0, r3, 0x404 +/* 803A8CD0 003A5C30 7C 84 02 14 */ add r4, r4, r0 +/* 803A8CD4 003A5C34 80 04 00 F4 */ lwz r0, 0xf4(r4) +/* 803A8CD8 003A5C38 83 E4 00 EC */ lwz r31, 0xec(r4) +/* 803A8CDC 003A5C3C 7C 06 00 40 */ cmplw r6, r0 +/* 803A8CE0 003A5C40 40 82 00 0C */ bne lbl_803A8CEC +/* 803A8CE4 003A5C44 4B FF FD 39 */ bl voiceKill +/* 803A8CE8 003A5C48 38 A0 00 00 */ li r5, 0 +lbl_803A8CEC: +/* 803A8CEC 003A5C4C 7F E6 FB 78 */ mr r6, r31 +lbl_803A8CF0: +/* 803A8CF0 003A5C50 3C 06 00 01 */ addis r0, r6, 1 +/* 803A8CF4 003A5C54 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8CF8 003A5C58 40 82 FF CC */ bne lbl_803A8CC4 +lbl_803A8CFC: +/* 803A8CFC 003A5C5C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 803A8D00 003A5C60 7C A3 2B 78 */ mr r3, r5 +/* 803A8D04 003A5C64 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 803A8D08 003A5C68 7C 08 03 A6 */ mtlr r0 +/* 803A8D0C 003A5C6C 38 21 00 10 */ addi r1, r1, 0x10 +/* 803A8D10 003A5C70 4E 80 00 20 */ blr + +.global synthKillVoicesByMacroReferences +synthKillVoicesByMacroReferences: +/* 803A8D14 003A5C74 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 803A8D18 003A5C78 7C 08 02 A6 */ mflr r0 +/* 803A8D1C 003A5C7C 90 01 00 24 */ stw r0, 0x24(r1) +/* 803A8D20 003A5C80 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A8D24 003A5C84 4B FE 0D 55 */ bl func_80389A78 +/* 803A8D28 003A5C88 3C 80 80 55 */ lis r4, lbl_80550050@ha +/* 803A8D2C 003A5C8C 7C 7E 1B 78 */ mr r30, r3 +/* 803A8D30 003A5C90 3B E4 00 50 */ addi r31, r4, lbl_80550050@l +/* 803A8D34 003A5C94 3B 60 00 00 */ li r27, 0 +/* 803A8D38 003A5C98 3B A0 00 00 */ li r29, 0 +/* 803A8D3C 003A5C9C 48 00 00 34 */ b lbl_803A8D70 +lbl_803A8D40: +/* 803A8D40 003A5CA0 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8D44 003A5CA4 7C 60 EA 14 */ add r3, r0, r29 +/* 803A8D48 003A5CA8 80 03 00 34 */ lwz r0, 0x34(r3) +/* 803A8D4C 003A5CAC 28 00 00 00 */ cmplwi r0, 0 +/* 803A8D50 003A5CB0 40 82 00 18 */ bne lbl_803A8D68 +/* 803A8D54 003A5CB4 88 03 01 1C */ lbz r0, 0x11c(r3) +/* 803A8D58 003A5CB8 28 00 00 00 */ cmplwi r0, 0 +/* 803A8D5C 003A5CBC 40 82 00 0C */ bne lbl_803A8D68 +/* 803A8D60 003A5CC0 7F 63 DB 78 */ mr r3, r27 +/* 803A8D64 003A5CC4 4B FF FC B9 */ bl voiceKill +lbl_803A8D68: +/* 803A8D68 003A5CC8 3B BD 04 04 */ addi r29, r29, 0x404 +/* 803A8D6C 003A5CCC 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803A8D70: +/* 803A8D70 003A5CD0 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 803A8D74 003A5CD4 7C 1B 00 40 */ cmplw r27, r0 +/* 803A8D78 003A5CD8 41 80 FF C8 */ blt lbl_803A8D40 +/* 803A8D7C 003A5CDC 48 00 00 D0 */ b lbl_803A8E4C +lbl_803A8D80: +/* 803A8D80 003A5CE0 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10 +/* 803A8D84 003A5CE4 41 82 00 78 */ beq lbl_803A8DFC +/* 803A8D88 003A5CE8 54 60 04 BE */ clrlwi r0, r3, 0x12 +/* 803A8D8C 003A5CEC 7C 1A 03 78 */ mr r26, r0 +/* 803A8D90 003A5CF0 48 00 00 54 */ b lbl_803A8DE4 +lbl_803A8D94: +/* 803A8D94 003A5CF4 3B 60 00 00 */ li r27, 0 +/* 803A8D98 003A5CF8 57 5D 04 3E */ clrlwi r29, r26, 0x10 +/* 803A8D9C 003A5CFC 7F 7C DB 78 */ mr r28, r27 +/* 803A8DA0 003A5D00 48 00 00 34 */ b lbl_803A8DD4 +lbl_803A8DA4: +/* 803A8DA4 003A5D04 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8DA8 003A5D08 7C 60 E2 14 */ add r3, r0, r28 +/* 803A8DAC 003A5D0C 80 03 00 34 */ lwz r0, 0x34(r3) +/* 803A8DB0 003A5D10 28 00 00 00 */ cmplwi r0, 0 +/* 803A8DB4 003A5D14 41 82 00 18 */ beq lbl_803A8DCC +/* 803A8DB8 003A5D18 A0 03 01 02 */ lhz r0, 0x102(r3) +/* 803A8DBC 003A5D1C 7C 1D 00 40 */ cmplw r29, r0 +/* 803A8DC0 003A5D20 40 82 00 0C */ bne lbl_803A8DCC +/* 803A8DC4 003A5D24 7F 63 DB 78 */ mr r3, r27 +/* 803A8DC8 003A5D28 4B FF FC 55 */ bl voiceKill +lbl_803A8DCC: +/* 803A8DCC 003A5D2C 3B 9C 04 04 */ addi r28, r28, 0x404 +/* 803A8DD0 003A5D30 3B 7B 00 01 */ addi r27, r27, 1 +lbl_803A8DD4: +/* 803A8DD4 003A5D34 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 803A8DD8 003A5D38 7C 1B 00 40 */ cmplw r27, r0 +/* 803A8DDC 003A5D3C 41 80 FF C8 */ blt lbl_803A8DA4 +/* 803A8DE0 003A5D40 3B 5A 00 01 */ addi r26, r26, 1 +lbl_803A8DE4: +/* 803A8DE4 003A5D44 A0 1E 00 02 */ lhz r0, 2(r30) +/* 803A8DE8 003A5D48 57 43 04 3E */ clrlwi r3, r26, 0x10 +/* 803A8DEC 003A5D4C 7C 03 00 40 */ cmplw r3, r0 +/* 803A8DF0 003A5D50 40 81 FF A4 */ ble lbl_803A8D94 +/* 803A8DF4 003A5D54 3B DE 00 04 */ addi r30, r30, 4 +/* 803A8DF8 003A5D58 48 00 00 54 */ b lbl_803A8E4C +lbl_803A8DFC: +/* 803A8DFC 003A5D5C 3B A0 00 00 */ li r29, 0 +/* 803A8E00 003A5D60 7F BC EB 78 */ mr r28, r29 +/* 803A8E04 003A5D64 48 00 00 38 */ b lbl_803A8E3C +lbl_803A8E08: +/* 803A8E08 003A5D68 80 0D AE 78 */ lwz r0, lbl_805A9A38@sda21(r13) +/* 803A8E0C 003A5D6C 7C 80 E2 14 */ add r4, r0, r28 +/* 803A8E10 003A5D70 80 04 00 34 */ lwz r0, 0x34(r4) +/* 803A8E14 003A5D74 28 00 00 00 */ cmplwi r0, 0 +/* 803A8E18 003A5D78 41 82 00 1C */ beq lbl_803A8E34 +/* 803A8E1C 003A5D7C A0 7E 00 00 */ lhz r3, 0(r30) +/* 803A8E20 003A5D80 A0 04 01 02 */ lhz r0, 0x102(r4) +/* 803A8E24 003A5D84 7C 03 00 40 */ cmplw r3, r0 +/* 803A8E28 003A5D88 40 82 00 0C */ bne lbl_803A8E34 +/* 803A8E2C 003A5D8C 7F A3 EB 78 */ mr r3, r29 +/* 803A8E30 003A5D90 4B FF FB ED */ bl voiceKill +lbl_803A8E34: +/* 803A8E34 003A5D94 3B 9C 04 04 */ addi r28, r28, 0x404 +/* 803A8E38 003A5D98 3B BD 00 01 */ addi r29, r29, 1 +lbl_803A8E3C: +/* 803A8E3C 003A5D9C 88 1F 02 10 */ lbz r0, 0x210(r31) +/* 803A8E40 003A5DA0 7C 1D 00 40 */ cmplw r29, r0 +/* 803A8E44 003A5DA4 41 80 FF C4 */ blt lbl_803A8E08 +/* 803A8E48 003A5DA8 3B DE 00 02 */ addi r30, r30, 2 +lbl_803A8E4C: +/* 803A8E4C 003A5DAC A0 7E 00 00 */ lhz r3, 0(r30) +/* 803A8E50 003A5DB0 28 03 FF FF */ cmplwi r3, 0xffff +/* 803A8E54 003A5DB4 40 82 FF 2C */ bne lbl_803A8D80 +/* 803A8E58 003A5DB8 39 61 00 20 */ addi r11, r1, 0x20 +/* 803A8E5C 003A5DBC 4B FE 0C 69 */ bl _restgpr_26 +/* 803A8E60 003A5DC0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 803A8E64 003A5DC4 7C 08 03 A6 */ mtlr r0 +/* 803A8E68 003A5DC8 38 21 00 20 */ addi r1, r1, 0x20 +/* 803A8E6C 003A5DCC 4E 80 00 20 */ blr + +.global voiceIsLastStarted +voiceIsLastStarted: +/* 803A8E70 003A5DD0 80 83 00 F4 */ lwz r4, 0xf4(r3) +/* 803A8E74 003A5DD4 3C 04 00 01 */ addis r0, r4, 1 +/* 803A8E78 003A5DD8 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8E7C 003A5DDC 41 82 00 60 */ beq lbl_803A8EDC +/* 803A8E80 003A5DE0 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803A8E84 003A5DE4 28 05 00 FF */ cmplwi r5, 0xff +/* 803A8E88 003A5DE8 41 82 00 54 */ beq lbl_803A8EDC +/* 803A8E8C 003A5DEC 88 03 01 22 */ lbz r0, 0x122(r3) +/* 803A8E90 003A5DF0 54 86 06 3E */ clrlwi r6, r4, 0x18 +/* 803A8E94 003A5DF4 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8E98 003A5DF8 40 82 00 20 */ bne lbl_803A8EB8 +/* 803A8E9C 003A5DFC 3C 60 80 56 */ lis r3, lbl_8055E250@ha +/* 803A8EA0 003A5E00 38 63 E2 50 */ addi r3, r3, lbl_8055E250@l +/* 803A8EA4 003A5E04 7C 03 30 AE */ lbzx r0, r3, r6 +/* 803A8EA8 003A5E08 7C 00 30 40 */ cmplw r0, r6 +/* 803A8EAC 003A5E0C 40 82 00 30 */ bne lbl_803A8EDC +/* 803A8EB0 003A5E10 38 60 00 01 */ li r3, 1 +/* 803A8EB4 003A5E14 4E 80 00 20 */ blr +lbl_803A8EB8: +/* 803A8EB8 003A5E18 3C 60 80 56 */ lis r3, lbl_8055E290@ha +/* 803A8EBC 003A5E1C 54 04 25 36 */ rlwinm r4, r0, 4, 0x14, 0x1b +/* 803A8EC0 003A5E20 38 03 E2 90 */ addi r0, r3, lbl_8055E290@l +/* 803A8EC4 003A5E24 7C 60 22 14 */ add r3, r0, r4 +/* 803A8EC8 003A5E28 7C 03 28 AE */ lbzx r0, r3, r5 +/* 803A8ECC 003A5E2C 7C 06 00 40 */ cmplw r6, r0 +/* 803A8ED0 003A5E30 40 82 00 0C */ bne lbl_803A8EDC +/* 803A8ED4 003A5E34 38 60 00 01 */ li r3, 1 +/* 803A8ED8 003A5E38 4E 80 00 20 */ blr +lbl_803A8EDC: +/* 803A8EDC 003A5E3C 38 60 00 00 */ li r3, 0 +/* 803A8EE0 003A5E40 4E 80 00 20 */ blr + +.global voiceSetLastStarted +voiceSetLastStarted: +/* 803A8EE4 003A5E44 80 83 00 F4 */ lwz r4, 0xf4(r3) +/* 803A8EE8 003A5E48 3C 04 00 01 */ addis r0, r4, 1 +/* 803A8EEC 003A5E4C 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8EF0 003A5E50 4D 82 00 20 */ beqlr +/* 803A8EF4 003A5E54 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803A8EF8 003A5E58 28 05 00 FF */ cmplwi r5, 0xff +/* 803A8EFC 003A5E5C 4D 82 00 20 */ beqlr +/* 803A8F00 003A5E60 88 03 01 22 */ lbz r0, 0x122(r3) +/* 803A8F04 003A5E64 54 86 06 3E */ clrlwi r6, r4, 0x18 +/* 803A8F08 003A5E68 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8F0C 003A5E6C 40 82 00 14 */ bne lbl_803A8F20 +/* 803A8F10 003A5E70 3C 60 80 56 */ lis r3, lbl_8055E250@ha +/* 803A8F14 003A5E74 38 63 E2 50 */ addi r3, r3, lbl_8055E250@l +/* 803A8F18 003A5E78 7C C3 31 AE */ stbx r6, r3, r6 +/* 803A8F1C 003A5E7C 4E 80 00 20 */ blr +lbl_803A8F20: +/* 803A8F20 003A5E80 3C 60 80 56 */ lis r3, lbl_8055E290@ha +/* 803A8F24 003A5E84 54 04 25 36 */ rlwinm r4, r0, 4, 0x14, 0x1b +/* 803A8F28 003A5E88 38 03 E2 90 */ addi r0, r3, lbl_8055E290@l +/* 803A8F2C 003A5E8C 7C 60 22 14 */ add r3, r0, r4 +/* 803A8F30 003A5E90 7C C3 29 AE */ stbx r6, r3, r5 +/* 803A8F34 003A5E94 4E 80 00 20 */ blr + +.global voiceResetLastStarted +voiceResetLastStarted: +/* 803A8F38 003A5E98 80 83 00 F4 */ lwz r4, 0xf4(r3) +/* 803A8F3C 003A5E9C 3C 04 00 01 */ addis r0, r4, 1 +/* 803A8F40 003A5EA0 28 00 FF FF */ cmplwi r0, 0xffff +/* 803A8F44 003A5EA4 4D 82 00 20 */ beqlr +/* 803A8F48 003A5EA8 88 A3 01 21 */ lbz r5, 0x121(r3) +/* 803A8F4C 003A5EAC 28 05 00 FF */ cmplwi r5, 0xff +/* 803A8F50 003A5EB0 4D 82 00 20 */ beqlr +/* 803A8F54 003A5EB4 88 03 01 22 */ lbz r0, 0x122(r3) +/* 803A8F58 003A5EB8 54 86 06 3E */ clrlwi r6, r4, 0x18 +/* 803A8F5C 003A5EBC 28 00 00 FF */ cmplwi r0, 0xff +/* 803A8F60 003A5EC0 40 82 00 24 */ bne lbl_803A8F84 +/* 803A8F64 003A5EC4 3C 60 80 56 */ lis r3, lbl_8055E250@ha +/* 803A8F68 003A5EC8 38 63 E2 50 */ addi r3, r3, lbl_8055E250@l +/* 803A8F6C 003A5ECC 7C 03 30 AE */ lbzx r0, r3, r6 +/* 803A8F70 003A5ED0 7C 00 30 40 */ cmplw r0, r6 +/* 803A8F74 003A5ED4 4C 82 00 20 */ bnelr +/* 803A8F78 003A5ED8 38 00 00 FF */ li r0, 0xff +/* 803A8F7C 003A5EDC 7C 03 31 AE */ stbx r0, r3, r6 +/* 803A8F80 003A5EE0 4E 80 00 20 */ blr +lbl_803A8F84: +/* 803A8F84 003A5EE4 3C 60 80 56 */ lis r3, lbl_8055E290@ha +/* 803A8F88 003A5EE8 54 04 25 36 */ rlwinm r4, r0, 4, 0x14, 0x1b +/* 803A8F8C 003A5EEC 38 03 E2 90 */ addi r0, r3, lbl_8055E290@l +/* 803A8F90 003A5EF0 7C 60 22 14 */ add r3, r0, r4 +/* 803A8F94 003A5EF4 7C 03 28 AE */ lbzx r0, r3, r5 +/* 803A8F98 003A5EF8 7C 06 00 40 */ cmplw r6, r0 +/* 803A8F9C 003A5EFC 4C 82 00 20 */ bnelr +/* 803A8FA0 003A5F00 38 00 00 FF */ li r0, 0xff +/* 803A8FA4 003A5F04 7C 03 29 AE */ stbx r0, r3, r5 +/* 803A8FA8 003A5F08 4E 80 00 20 */ blr + +.global voiceInitLastStarted +voiceInitLastStarted: +/* 803A8FAC 003A5F0C 3C 60 80 56 */ lis r3, lbl_8055E290@ha +/* 803A8FB0 003A5F10 38 00 00 04 */ li r0, 4 +/* 803A8FB4 003A5F14 38 A3 E2 90 */ addi r5, r3, lbl_8055E290@l +/* 803A8FB8 003A5F18 38 C0 00 00 */ li r6, 0 +/* 803A8FBC 003A5F1C 7C 09 03 A6 */ mtctr r0 +lbl_803A8FC0: +/* 803A8FC0 003A5F20 38 80 00 FF */ li r4, 0xff +/* 803A8FC4 003A5F24 98 85 00 00 */ stb r4, 0(r5) +/* 803A8FC8 003A5F28 98 85 00 01 */ stb r4, 1(r5) +/* 803A8FCC 003A5F2C 98 85 00 02 */ stb r4, 2(r5) +/* 803A8FD0 003A5F30 98 85 00 03 */ stb r4, 3(r5) +/* 803A8FD4 003A5F34 98 85 00 04 */ stb r4, 4(r5) +/* 803A8FD8 003A5F38 98 85 00 05 */ stb r4, 5(r5) +/* 803A8FDC 003A5F3C 98 85 00 06 */ stb r4, 6(r5) +/* 803A8FE0 003A5F40 98 85 00 07 */ stb r4, 7(r5) +/* 803A8FE4 003A5F44 98 85 00 08 */ stb r4, 8(r5) +/* 803A8FE8 003A5F48 98 85 00 09 */ stb r4, 9(r5) +/* 803A8FEC 003A5F4C 98 85 00 0A */ stb r4, 0xa(r5) +/* 803A8FF0 003A5F50 98 85 00 0B */ stb r4, 0xb(r5) +/* 803A8FF4 003A5F54 98 85 00 0C */ stb r4, 0xc(r5) +/* 803A8FF8 003A5F58 98 85 00 0D */ stb r4, 0xd(r5) +/* 803A8FFC 003A5F5C 98 85 00 0E */ stb r4, 0xe(r5) +/* 803A9000 003A5F60 98 85 00 0F */ stb r4, 0xf(r5) +/* 803A9004 003A5F64 38 A5 00 10 */ addi r5, r5, 0x10 +/* 803A9008 003A5F68 98 85 00 00 */ stb r4, 0(r5) +/* 803A900C 003A5F6C 38 C6 00 01 */ addi r6, r6, 1 +/* 803A9010 003A5F70 98 85 00 01 */ stb r4, 1(r5) +/* 803A9014 003A5F74 98 85 00 02 */ stb r4, 2(r5) +/* 803A9018 003A5F78 98 85 00 03 */ stb r4, 3(r5) +/* 803A901C 003A5F7C 98 85 00 04 */ stb r4, 4(r5) +/* 803A9020 003A5F80 98 85 00 05 */ stb r4, 5(r5) +/* 803A9024 003A5F84 98 85 00 06 */ stb r4, 6(r5) +/* 803A9028 003A5F88 98 85 00 07 */ stb r4, 7(r5) +/* 803A902C 003A5F8C 98 85 00 08 */ stb r4, 8(r5) +/* 803A9030 003A5F90 98 85 00 09 */ stb r4, 9(r5) +/* 803A9034 003A5F94 98 85 00 0A */ stb r4, 0xa(r5) +/* 803A9038 003A5F98 98 85 00 0B */ stb r4, 0xb(r5) +/* 803A903C 003A5F9C 98 85 00 0C */ stb r4, 0xc(r5) +/* 803A9040 003A5FA0 98 85 00 0D */ stb r4, 0xd(r5) +/* 803A9044 003A5FA4 98 85 00 0E */ stb r4, 0xe(r5) +/* 803A9048 003A5FA8 98 85 00 0F */ stb r4, 0xf(r5) +/* 803A904C 003A5FAC 38 A5 00 10 */ addi r5, r5, 0x10 +/* 803A9050 003A5FB0 42 00 FF 70 */ bdnz lbl_803A8FC0 +/* 803A9054 003A5FB4 3C 60 80 56 */ lis r3, lbl_8055E250@ha +/* 803A9058 003A5FB8 38 00 00 02 */ li r0, 2 +/* 803A905C 003A5FBC 38 63 E2 50 */ addi r3, r3, lbl_8055E250@l +/* 803A9060 003A5FC0 7C 09 03 A6 */ mtctr r0 +lbl_803A9064: +/* 803A9064 003A5FC4 98 83 00 00 */ stb r4, 0(r3) +/* 803A9068 003A5FC8 98 83 00 01 */ stb r4, 1(r3) +/* 803A906C 003A5FCC 98 83 00 02 */ stb r4, 2(r3) +/* 803A9070 003A5FD0 98 83 00 03 */ stb r4, 3(r3) +/* 803A9074 003A5FD4 98 83 00 04 */ stb r4, 4(r3) +/* 803A9078 003A5FD8 98 83 00 05 */ stb r4, 5(r3) +/* 803A907C 003A5FDC 98 83 00 06 */ stb r4, 6(r3) +/* 803A9080 003A5FE0 98 83 00 07 */ stb r4, 7(r3) +/* 803A9084 003A5FE4 98 83 00 08 */ stb r4, 8(r3) +/* 803A9088 003A5FE8 98 83 00 09 */ stb r4, 9(r3) +/* 803A908C 003A5FEC 98 83 00 0A */ stb r4, 0xa(r3) +/* 803A9090 003A5FF0 98 83 00 0B */ stb r4, 0xb(r3) +/* 803A9094 003A5FF4 98 83 00 0C */ stb r4, 0xc(r3) +/* 803A9098 003A5FF8 98 83 00 0D */ stb r4, 0xd(r3) +/* 803A909C 003A5FFC 98 83 00 0E */ stb r4, 0xe(r3) +/* 803A90A0 003A6000 98 83 00 0F */ stb r4, 0xf(r3) +/* 803A90A4 003A6004 98 83 00 10 */ stb r4, 0x10(r3) +/* 803A90A8 003A6008 98 83 00 11 */ stb r4, 0x11(r3) +/* 803A90AC 003A600C 98 83 00 12 */ stb r4, 0x12(r3) +/* 803A90B0 003A6010 98 83 00 13 */ stb r4, 0x13(r3) +/* 803A90B4 003A6014 98 83 00 14 */ stb r4, 0x14(r3) +/* 803A90B8 003A6018 98 83 00 15 */ stb r4, 0x15(r3) +/* 803A90BC 003A601C 98 83 00 16 */ stb r4, 0x16(r3) +/* 803A90C0 003A6020 98 83 00 17 */ stb r4, 0x17(r3) +/* 803A90C4 003A6024 98 83 00 18 */ stb r4, 0x18(r3) +/* 803A90C8 003A6028 98 83 00 19 */ stb r4, 0x19(r3) +/* 803A90CC 003A602C 98 83 00 1A */ stb r4, 0x1a(r3) +/* 803A90D0 003A6030 98 83 00 1B */ stb r4, 0x1b(r3) +/* 803A90D4 003A6034 98 83 00 1C */ stb r4, 0x1c(r3) +/* 803A90D8 003A6038 98 83 00 1D */ stb r4, 0x1d(r3) +/* 803A90DC 003A603C 98 83 00 1E */ stb r4, 0x1e(r3) +/* 803A90E0 003A6040 98 83 00 1F */ stb r4, 0x1f(r3) +/* 803A90E4 003A6044 38 63 00 20 */ addi r3, r3, 0x20 +/* 803A90E8 003A6048 42 00 FF 7C */ bdnz lbl_803A9064 +/* 803A90EC 003A604C 4E 80 00 20 */ blr diff --git a/asm/text.s.REMOVED.git-id b/asm/text.s.REMOVED.git-id index 15341720..c8e799fe 100644 --- a/asm/text.s.REMOVED.git-id +++ b/asm/text.s.REMOVED.git-id @@ -1 +1 @@ -92c92141887a8835295b62087f828db578e27faf \ No newline at end of file +01ba38ef46688221f69e6b96d1170a971de797f1 \ No newline at end of file diff --git a/obj_files.mk b/obj_files.mk index 278ef2d6..ff2e2aa3 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -5,15 +5,122 @@ INIT_O_FILES :=\ KYOTO_CWD :=\ $(BUILD_DIR)/asm/Kyoto_CWD/main.o + +MSL_PPCEABI_BARE_H :=\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/mem.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/mem_funcs.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/misc_io.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/printf.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/qsort.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/rand.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/sscanf.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/string.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/strtold.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/uart_console_io.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/widechar_io.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/e_acos.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/e_asin.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/e_atan2.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/e_exp.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/e_fmod.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/e_log.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/e_pow.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/e_rem_pio2.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/k_cos.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/k_rem_pio2.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/k_sin.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/k_tan.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_atan.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_copysign.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_cos.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_floor.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_frexp.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_ldexp.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_modf.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_nextafter.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_sin.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_tan.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_acos.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_asin.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_atan2.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_exp.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_fmod.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_log.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_pow.o\ + $(BUILD_DIR)/asm/Runtime/PPCEABI/H/s_cosf.o\ + +MUSYX_FILES :=\ + $(BUILD_DIR)/asm/musyx/seq.o\ + $(BUILD_DIR)/asm/musyx/synth.o\ + $(BUILD_DIR)/asm/musyx/seq_api.o\ + $(BUILD_DIR)/asm/musyx/snd_synthapi.o\ + $(BUILD_DIR)/asm/musyx/stream.o\ + $(BUILD_DIR)/asm/musyx/synthdata.o\ + $(BUILD_DIR)/asm/musyx/synthmacros.o\ + $(BUILD_DIR)/asm/musyx/synthvoice.o\ + $(BUILD_DIR)/asm/musyx/synth_ac.o\ + $(BUILD_DIR)/asm/musyx/synth_adsr.o\ + $(BUILD_DIR)/asm/musyx/synth_vsamples.o\ + $(BUILD_DIR)/asm/musyx/s_data.o\ + $(BUILD_DIR)/asm/musyx/hw_dspctrl.o\ + $(BUILD_DIR)/asm/musyx/hw_volconv.o\ + $(BUILD_DIR)/asm/musyx/snd3d.o\ + $(BUILD_DIR)/asm/musyx/snd_init.o\ + $(BUILD_DIR)/asm/musyx/snd_math.o\ + $(BUILD_DIR)/asm/musyx/snd_midictrl.o\ + $(BUILD_DIR)/asm/musyx/snd_service.o\ + $(BUILD_DIR)/asm/musyx/hardware.o\ + $(BUILD_DIR)/asm/musyx/hw_aramdma.o\ + $(BUILD_DIR)/asm/musyx/hw_dolphin.o\ + $(BUILD_DIR)/asm/musyx/hw_memory.o\ + $(BUILD_DIR)/asm/musyx/creverb_fx.o\ + $(BUILD_DIR)/asm/musyx/creverb.o\ + $(BUILD_DIR)/asm/musyx/reverb_fx.o\ + $(BUILD_DIR)/asm/musyx/reverb.o\ + $(BUILD_DIR)/asm/musyx/delay_fx.o\ + $(BUILD_DIR)/asm/musyx/chorus_fx.o + +DTK_FILES :=\ + $(BUILD_DIR)/asm/Dolphin/dtk.o + +CARD_FILES :=\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDBios.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDUnlock.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDRdwr.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDBlock.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDDir.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDCheck.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDMount.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDFormat.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDOpen.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDCreate.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDRead.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDWrite.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDDelete.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDStat.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDRename.o\ + $(BUILD_DIR)/asm/Dolphin/CARD/CARDNet.o + +SI_FILES :=\ + $(BUILD_DIR)/asm/Dolphin/SIBios.o\ + $(BUILD_DIR)/asm/Dolphin/SISamplingRate.o + +EXI_FILES :=\ + $(BUILD_DIR)/asm/Dolphin/EXIBios.o\ + $(BUILD_DIR)/asm/Dolphin/EXIUart.o -TEXT_O_FILES :=\ - $(BUILD_DIR)/asm/text.o\ +THP_FILES :=\ $(BUILD_DIR)/asm/Dolphin/THPDec.o\ - $(BUILD_DIR)/asm/Dolphin/THPAudio.o\ + $(BUILD_DIR)/asm/Dolphin/THPAudio.o + +GBA_FILES :=\ $(BUILD_DIR)/asm/Dolphin/GBA.o\ $(BUILD_DIR)/asm/Dolphin/GBARead.o\ $(BUILD_DIR)/asm/Dolphin/GBAWrite.o\ $(BUILD_DIR)/asm/Dolphin/GBAXfer.o + +TEXT_O_FILES :=\ + $(BUILD_DIR)/asm/text.o EXTAB_O_FILES :=\ $(BUILD_DIR)/asm/extab.o