Start splitting system libraries

Former-commit-id: e1ad16dcc8
This commit is contained in:
Phillip Stephens 2022-04-02 02:50:35 -07:00
parent 23aeba93b9
commit bbc460f786
95 changed files with 60649 additions and 5 deletions

View File

@ -55,7 +55,10 @@ endif
O_FILES := $(INIT_O_FILES) $(EXTAB_O_FILES) $(EXTABINDEX_O_FILES) $(KYOTO_CWD) \ 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) \ $(CTORS_O_FILES) $(DTORS_O_FILES) $(RODATA_O_FILES) $(DATA_O_FILES) \
$(BSS_O_FILES) $(SDATA_O_FILES) $(SBSS_O_FILES) $(SDATA2_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) ifeq ($(EPILOGUE_PROCESS),1)
E_FILES := $(EPILOGUE_UNSCHEDULED) E_FILES := $(EPILOGUE_UNSCHEDULED)
endif endif

1331
asm/Dolphin/CARD/CARDBios.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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

1093
asm/Dolphin/CARD/CARDCheck.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

176
asm/Dolphin/CARD/CARDDir.s Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

339
asm/Dolphin/CARD/CARDOpen.s Normal file
View File

@ -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

185
asm/Dolphin/CARD/CARDRdwr.s Normal file
View File

@ -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

307
asm/Dolphin/CARD/CARDRead.s Normal file
View File

@ -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

View File

@ -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

345
asm/Dolphin/CARD/CARDStat.s Normal file
View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

1794
asm/Dolphin/EXIBios.s Normal file

File diff suppressed because it is too large Load Diff

189
asm/Dolphin/EXIUart.s Normal file
View File

@ -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

1753
asm/Dolphin/SIBios.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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

695
asm/Dolphin/dtk.s Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

125
asm/Runtime/PPCEABI/H/mem.s Normal file
View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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

583
asm/musyx/chorus_fx.s Normal file
View File

@ -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

623
asm/musyx/creverb.s Normal file
View File

@ -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

61
asm/musyx/creverb_fx.s Normal file
View File

@ -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

260
asm/musyx/delay_fx.s Normal file
View File

@ -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

1229
asm/musyx/hardware.s Normal file

File diff suppressed because it is too large Load Diff

917
asm/musyx/hw_aramdma.s Normal file
View File

@ -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

383
asm/musyx/hw_dolphin.s Normal file
View File

@ -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

3643
asm/musyx/hw_dspctrl.s Normal file

File diff suppressed because it is too large Load Diff

30
asm/musyx/hw_memory.s Normal file
View File

@ -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

456
asm/musyx/hw_volconv.s Normal file
View File

@ -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

938
asm/musyx/reverb.s Normal file
View File

@ -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

62
asm/musyx/reverb_fx.s Normal file
View File

@ -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

1158
asm/musyx/s_data.s Normal file

File diff suppressed because it is too large Load Diff

4633
asm/musyx/seq.s Normal file

File diff suppressed because it is too large Load Diff

122
asm/musyx/seq_api.s Normal file
View File

@ -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

2569
asm/musyx/snd3d.s Normal file

File diff suppressed because it is too large Load Diff

97
asm/musyx/snd_init.s Normal file
View File

@ -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

256
asm/musyx/snd_math.s Normal file
View File

@ -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

2137
asm/musyx/snd_midictrl.s Normal file

File diff suppressed because it is too large Load Diff

137
asm/musyx/snd_service.s Normal file
View File

@ -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

498
asm/musyx/snd_synthapi.s Normal file
View File

@ -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

4796
asm/musyx/stream.s Normal file

File diff suppressed because it is too large Load Diff

3634
asm/musyx/synth.s Normal file

File diff suppressed because it is too large Load Diff

86
asm/musyx/synth_ac.s Normal file
View File

@ -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

565
asm/musyx/synth_adsr.s Normal file
View File

@ -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

266
asm/musyx/synth_vsamples.s Normal file
View File

@ -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

2171
asm/musyx/synthdata.s Normal file

File diff suppressed because it is too large Load Diff

5403
asm/musyx/synthmacros.s Normal file

File diff suppressed because it is too large Load Diff

1948
asm/musyx/synthvoice.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
92c92141887a8835295b62087f828db578e27faf 01ba38ef46688221f69e6b96d1170a971de797f1

View File

@ -6,15 +6,122 @@ INIT_O_FILES :=\
KYOTO_CWD :=\ KYOTO_CWD :=\
$(BUILD_DIR)/asm/Kyoto_CWD/main.o $(BUILD_DIR)/asm/Kyoto_CWD/main.o
TEXT_O_FILES :=\ MSL_PPCEABI_BARE_H :=\
$(BUILD_DIR)/asm/text.o\ $(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
THP_FILES :=\
$(BUILD_DIR)/asm/Dolphin/THPDec.o\ $(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/GBA.o\
$(BUILD_DIR)/asm/Dolphin/GBARead.o\ $(BUILD_DIR)/asm/Dolphin/GBARead.o\
$(BUILD_DIR)/asm/Dolphin/GBAWrite.o\ $(BUILD_DIR)/asm/Dolphin/GBAWrite.o\
$(BUILD_DIR)/asm/Dolphin/GBAXfer.o $(BUILD_DIR)/asm/Dolphin/GBAXfer.o
TEXT_O_FILES :=\
$(BUILD_DIR)/asm/text.o
EXTAB_O_FILES :=\ EXTAB_O_FILES :=\
$(BUILD_DIR)/asm/extab.o $(BUILD_DIR)/asm/extab.o