summaryrefslogtreecommitdiff
path: root/asm/SDK/AX/AXFXDelay.s
diff options
context:
space:
mode:
authorMax <mparisi@stevens.edu>2020-10-03 21:32:39 -0400
committerMax <mparisi@stevens.edu>2020-10-03 21:32:39 -0400
commit4c8750d45b08df16f5adf5c817cc30b52b7a2efa (patch)
tree760d3baa237c7d5eb58209e0157eb927455d6b76 /asm/SDK/AX/AXFXDelay.s
parentc4508f3b648a7b095fcba974e69882333fbd2d3b (diff)
split AXFXReverbHiExp and AXFXDelay
Diffstat (limited to 'asm/SDK/AX/AXFXDelay.s')
-rw-r--r--asm/SDK/AX/AXFXDelay.s474
1 files changed, 474 insertions, 0 deletions
diff --git a/asm/SDK/AX/AXFXDelay.s b/asm/SDK/AX/AXFXDelay.s
new file mode 100644
index 0000000..f9ba3b2
--- /dev/null
+++ b/asm/SDK/AX/AXFXDelay.s
@@ -0,0 +1,474 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global AXFXDelayGetMemSize
+AXFXDelayGetMemSize:
+/* 802944C8 00290128 80 A3 00 40 */ lwz r5, 0x40(r3)
+/* 802944CC 0029012C 80 83 00 44 */ lwz r4, 0x44(r3)
+/* 802944D0 00290130 80 03 00 48 */ lwz r0, 0x48(r3)
+/* 802944D4 00290134 7C 65 22 14 */ add r3, r5, r4
+/* 802944D8 00290138 7C 63 02 14 */ add r3, r3, r0
+/* 802944DC 0029013C 54 63 38 30 */ slwi r3, r3, 7
+/* 802944E0 00290140 4E 80 00 20 */ blr
+
+.global AXFXDelayInit
+AXFXDelayInit:
+/* 802944E4 00290144 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802944E8 00290148 7C 08 02 A6 */ mflr r0
+/* 802944EC 0029014C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802944F0 00290150 39 61 00 20 */ addi r11, r1, 0x20
+/* 802944F4 00290154 4B F3 2C 35 */ bl _savegpr_27
+/* 802944F8 00290158 7C 7E 1B 78 */ mr r30, r3
+/* 802944FC 0029015C 4B FD A2 61 */ bl OSDisableInterrupts
+/* 80294500 00290160 38 80 00 01 */ li r4, 1
+/* 80294504 00290164 38 00 00 03 */ li r0, 3
+/* 80294508 00290168 7C 7F 1B 78 */ mr r31, r3
+/* 8029450C 0029016C 7F C3 F3 78 */ mr r3, r30
+/* 80294510 00290170 90 9E 00 3C */ stw r4, 0x3c(r30)
+/* 80294514 00290174 7C 09 03 A6 */ mtctr r0
+lbl_80294518:
+/* 80294518 00290178 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 8029451C 0029017C 2C 00 00 00 */ cmpwi r0, 0
+/* 80294520 00290180 40 82 00 64 */ bne lbl_80294584
+/* 80294524 00290184 4B FD A2 39 */ bl OSDisableInterrupts
+/* 80294528 00290188 80 1E 00 3C */ lwz r0, 0x3c(r30)
+/* 8029452C 0029018C 7C 7B 1B 78 */ mr r27, r3
+/* 80294530 00290190 3B 80 00 00 */ li r28, 0
+/* 80294534 00290194 3B A0 00 00 */ li r29, 0
+/* 80294538 00290198 60 00 00 01 */ ori r0, r0, 1
+/* 8029453C 0029019C 90 1E 00 3C */ stw r0, 0x3c(r30)
+lbl_80294540:
+/* 80294540 002901A0 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80294544 002901A4 2C 03 00 00 */ cmpwi r3, 0
+/* 80294548 002901A8 41 82 00 14 */ beq lbl_8029455C
+/* 8029454C 002901AC 81 8D 88 FC */ lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
+/* 80294550 002901B0 7D 89 03 A6 */ mtctr r12
+/* 80294554 002901B4 4E 80 04 21 */ bctrl
+/* 80294558 002901B8 93 BE 00 00 */ stw r29, 0(r30)
+lbl_8029455C:
+/* 8029455C 002901BC 3B 9C 00 01 */ addi r28, r28, 1
+/* 80294560 002901C0 3B DE 00 04 */ addi r30, r30, 4
+/* 80294564 002901C4 28 1C 00 03 */ cmplwi r28, 3
+/* 80294568 002901C8 41 80 FF D8 */ blt lbl_80294540
+/* 8029456C 002901CC 7F 63 DB 78 */ mr r3, r27
+/* 80294570 002901D0 4B FD A2 15 */ bl OSRestoreInterrupts
+/* 80294574 002901D4 7F E3 FB 78 */ mr r3, r31
+/* 80294578 002901D8 4B FD A2 0D */ bl OSRestoreInterrupts
+/* 8029457C 002901DC 38 60 00 00 */ li r3, 0
+/* 80294580 002901E0 48 00 01 4C */ b lbl_802946CC
+lbl_80294584:
+/* 80294584 002901E4 54 00 28 34 */ slwi r0, r0, 5
+/* 80294588 002901E8 90 03 00 18 */ stw r0, 0x18(r3)
+/* 8029458C 002901EC 38 63 00 04 */ addi r3, r3, 4
+/* 80294590 002901F0 42 00 FF 88 */ bdnz lbl_80294518
+/* 80294594 002901F4 7F DC F3 78 */ mr r28, r30
+/* 80294598 002901F8 3B 60 00 00 */ li r27, 0
+lbl_8029459C:
+/* 8029459C 002901FC 80 1C 00 18 */ lwz r0, 0x18(r28)
+/* 802945A0 00290200 81 8D 88 F8 */ lwz r12, lbl_8063DBB8-_SDA_BASE_(r13)
+/* 802945A4 00290204 54 03 10 3A */ slwi r3, r0, 2
+/* 802945A8 00290208 7D 89 03 A6 */ mtctr r12
+/* 802945AC 0029020C 4E 80 04 21 */ bctrl
+/* 802945B0 00290210 2C 03 00 00 */ cmpwi r3, 0
+/* 802945B4 00290214 90 7C 00 00 */ stw r3, 0(r28)
+/* 802945B8 00290218 40 82 00 0C */ bne lbl_802945C4
+/* 802945BC 0029021C 38 00 00 00 */ li r0, 0
+/* 802945C0 00290220 48 00 00 18 */ b lbl_802945D8
+lbl_802945C4:
+/* 802945C4 00290224 3B 7B 00 01 */ addi r27, r27, 1
+/* 802945C8 00290228 3B 9C 00 04 */ addi r28, r28, 4
+/* 802945CC 0029022C 28 1B 00 03 */ cmplwi r27, 3
+/* 802945D0 00290230 41 80 FF CC */ blt lbl_8029459C
+/* 802945D4 00290234 38 00 00 01 */ li r0, 1
+lbl_802945D8:
+/* 802945D8 00290238 2C 00 00 00 */ cmpwi r0, 0
+/* 802945DC 0029023C 40 82 00 64 */ bne lbl_80294640
+/* 802945E0 00290240 4B FD A1 7D */ bl OSDisableInterrupts
+/* 802945E4 00290244 80 1E 00 3C */ lwz r0, 0x3c(r30)
+/* 802945E8 00290248 7C 7C 1B 78 */ mr r28, r3
+/* 802945EC 0029024C 3B 60 00 00 */ li r27, 0
+/* 802945F0 00290250 3B A0 00 00 */ li r29, 0
+/* 802945F4 00290254 60 00 00 01 */ ori r0, r0, 1
+/* 802945F8 00290258 90 1E 00 3C */ stw r0, 0x3c(r30)
+lbl_802945FC:
+/* 802945FC 0029025C 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80294600 00290260 2C 03 00 00 */ cmpwi r3, 0
+/* 80294604 00290264 41 82 00 14 */ beq lbl_80294618
+/* 80294608 00290268 81 8D 88 FC */ lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
+/* 8029460C 0029026C 7D 89 03 A6 */ mtctr r12
+/* 80294610 00290270 4E 80 04 21 */ bctrl
+/* 80294614 00290274 93 BE 00 00 */ stw r29, 0(r30)
+lbl_80294618:
+/* 80294618 00290278 3B 7B 00 01 */ addi r27, r27, 1
+/* 8029461C 0029027C 3B DE 00 04 */ addi r30, r30, 4
+/* 80294620 00290280 28 1B 00 03 */ cmplwi r27, 3
+/* 80294624 00290284 41 80 FF D8 */ blt lbl_802945FC
+/* 80294628 00290288 7F 83 E3 78 */ mr r3, r28
+/* 8029462C 0029028C 4B FD A1 59 */ bl OSRestoreInterrupts
+/* 80294630 00290290 7F E3 FB 78 */ mr r3, r31
+/* 80294634 00290294 4B FD A1 51 */ bl OSRestoreInterrupts
+/* 80294638 00290298 38 60 00 00 */ li r3, 0
+/* 8029463C 0029029C 48 00 00 90 */ b lbl_802946CC
+lbl_80294640:
+/* 80294640 002902A0 7F C3 F3 78 */ mr r3, r30
+/* 80294644 002902A4 48 00 03 D5 */ bl __InitParams
+/* 80294648 002902A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8029464C 002902AC 40 82 00 64 */ bne lbl_802946B0
+/* 80294650 002902B0 4B FD A1 0D */ bl OSDisableInterrupts
+/* 80294654 002902B4 80 1E 00 3C */ lwz r0, 0x3c(r30)
+/* 80294658 002902B8 7C 7C 1B 78 */ mr r28, r3
+/* 8029465C 002902BC 3B 60 00 00 */ li r27, 0
+/* 80294660 002902C0 3B A0 00 00 */ li r29, 0
+/* 80294664 002902C4 60 00 00 01 */ ori r0, r0, 1
+/* 80294668 002902C8 90 1E 00 3C */ stw r0, 0x3c(r30)
+lbl_8029466C:
+/* 8029466C 002902CC 80 7E 00 00 */ lwz r3, 0(r30)
+/* 80294670 002902D0 2C 03 00 00 */ cmpwi r3, 0
+/* 80294674 002902D4 41 82 00 14 */ beq lbl_80294688
+/* 80294678 002902D8 81 8D 88 FC */ lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
+/* 8029467C 002902DC 7D 89 03 A6 */ mtctr r12
+/* 80294680 002902E0 4E 80 04 21 */ bctrl
+/* 80294684 002902E4 93 BE 00 00 */ stw r29, 0(r30)
+lbl_80294688:
+/* 80294688 002902E8 3B 7B 00 01 */ addi r27, r27, 1
+/* 8029468C 002902EC 3B DE 00 04 */ addi r30, r30, 4
+/* 80294690 002902F0 28 1B 00 03 */ cmplwi r27, 3
+/* 80294694 002902F4 41 80 FF D8 */ blt lbl_8029466C
+/* 80294698 002902F8 7F 83 E3 78 */ mr r3, r28
+/* 8029469C 002902FC 4B FD A0 E9 */ bl OSRestoreInterrupts
+/* 802946A0 00290300 7F E3 FB 78 */ mr r3, r31
+/* 802946A4 00290304 4B FD A0 E1 */ bl OSRestoreInterrupts
+/* 802946A8 00290308 38 60 00 00 */ li r3, 0
+/* 802946AC 0029030C 48 00 00 20 */ b lbl_802946CC
+lbl_802946B0:
+/* 802946B0 00290310 80 1E 00 3C */ lwz r0, 0x3c(r30)
+/* 802946B4 00290314 7F E3 FB 78 */ mr r3, r31
+/* 802946B8 00290318 60 00 00 02 */ ori r0, r0, 2
+/* 802946BC 0029031C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
+/* 802946C0 00290320 90 1E 00 3C */ stw r0, 0x3c(r30)
+/* 802946C4 00290324 4B FD A0 C1 */ bl OSRestoreInterrupts
+/* 802946C8 00290328 38 60 00 01 */ li r3, 1
+lbl_802946CC:
+/* 802946CC 0029032C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802946D0 00290330 4B F3 2A A5 */ bl _restgpr_27
+/* 802946D4 00290334 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802946D8 00290338 7C 08 03 A6 */ mtlr r0
+/* 802946DC 0029033C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802946E0 00290340 4E 80 00 20 */ blr
+
+.global AXFXDelaySettings
+AXFXDelaySettings:
+/* 802946E4 00290344 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802946E8 00290348 7C 08 02 A6 */ mflr r0
+/* 802946EC 0029034C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802946F0 00290350 39 61 00 20 */ addi r11, r1, 0x20
+/* 802946F4 00290354 4B F3 2A 31 */ bl _savegpr_26
+/* 802946F8 00290358 7C 7F 1B 78 */ mr r31, r3
+/* 802946FC 0029035C 4B FD A0 61 */ bl OSDisableInterrupts
+/* 80294700 00290360 80 1F 00 3C */ lwz r0, 0x3c(r31)
+/* 80294704 00290364 7C 7A 1B 78 */ mr r26, r3
+/* 80294708 00290368 60 00 00 01 */ ori r0, r0, 1
+/* 8029470C 0029036C 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 80294710 00290370 4B FD A0 4D */ bl OSDisableInterrupts
+/* 80294714 00290374 80 1F 00 3C */ lwz r0, 0x3c(r31)
+/* 80294718 00290378 7C 7C 1B 78 */ mr r28, r3
+/* 8029471C 0029037C 7F FB FB 78 */ mr r27, r31
+/* 80294720 00290380 3B A0 00 00 */ li r29, 0
+/* 80294724 00290384 60 00 00 01 */ ori r0, r0, 1
+/* 80294728 00290388 3B C0 00 00 */ li r30, 0
+/* 8029472C 0029038C 90 1F 00 3C */ stw r0, 0x3c(r31)
+lbl_80294730:
+/* 80294730 00290390 80 7B 00 00 */ lwz r3, 0(r27)
+/* 80294734 00290394 2C 03 00 00 */ cmpwi r3, 0
+/* 80294738 00290398 41 82 00 14 */ beq lbl_8029474C
+/* 8029473C 0029039C 81 8D 88 FC */ lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
+/* 80294740 002903A0 7D 89 03 A6 */ mtctr r12
+/* 80294744 002903A4 4E 80 04 21 */ bctrl
+/* 80294748 002903A8 93 DB 00 00 */ stw r30, 0(r27)
+lbl_8029474C:
+/* 8029474C 002903AC 3B BD 00 01 */ addi r29, r29, 1
+/* 80294750 002903B0 3B 7B 00 04 */ addi r27, r27, 4
+/* 80294754 002903B4 28 1D 00 03 */ cmplwi r29, 3
+/* 80294758 002903B8 41 80 FF D8 */ blt lbl_80294730
+/* 8029475C 002903BC 7F 83 E3 78 */ mr r3, r28
+/* 80294760 002903C0 4B FD A0 25 */ bl OSRestoreInterrupts
+/* 80294764 002903C4 7F E3 FB 78 */ mr r3, r31
+/* 80294768 002903C8 4B FF FD 7D */ bl AXFXDelayInit
+/* 8029476C 002903CC 2C 03 00 00 */ cmpwi r3, 0
+/* 80294770 002903D0 40 82 00 64 */ bne lbl_802947D4
+/* 80294774 002903D4 4B FD 9F E9 */ bl OSDisableInterrupts
+/* 80294778 002903D8 80 1F 00 3C */ lwz r0, 0x3c(r31)
+/* 8029477C 002903DC 7C 7D 1B 78 */ mr r29, r3
+/* 80294780 002903E0 3B 80 00 00 */ li r28, 0
+/* 80294784 002903E4 3B C0 00 00 */ li r30, 0
+/* 80294788 002903E8 60 00 00 01 */ ori r0, r0, 1
+/* 8029478C 002903EC 90 1F 00 3C */ stw r0, 0x3c(r31)
+lbl_80294790:
+/* 80294790 002903F0 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80294794 002903F4 2C 03 00 00 */ cmpwi r3, 0
+/* 80294798 002903F8 41 82 00 14 */ beq lbl_802947AC
+/* 8029479C 002903FC 81 8D 88 FC */ lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
+/* 802947A0 00290400 7D 89 03 A6 */ mtctr r12
+/* 802947A4 00290404 4E 80 04 21 */ bctrl
+/* 802947A8 00290408 93 DF 00 00 */ stw r30, 0(r31)
+lbl_802947AC:
+/* 802947AC 0029040C 3B 9C 00 01 */ addi r28, r28, 1
+/* 802947B0 00290410 3B FF 00 04 */ addi r31, r31, 4
+/* 802947B4 00290414 28 1C 00 03 */ cmplwi r28, 3
+/* 802947B8 00290418 41 80 FF D8 */ blt lbl_80294790
+/* 802947BC 0029041C 7F A3 EB 78 */ mr r3, r29
+/* 802947C0 00290420 4B FD 9F C5 */ bl OSRestoreInterrupts
+/* 802947C4 00290424 7F 43 D3 78 */ mr r3, r26
+/* 802947C8 00290428 4B FD 9F BD */ bl OSRestoreInterrupts
+/* 802947CC 0029042C 38 60 00 00 */ li r3, 0
+/* 802947D0 00290430 48 00 00 20 */ b lbl_802947F0
+lbl_802947D4:
+/* 802947D4 00290434 80 1F 00 3C */ lwz r0, 0x3c(r31)
+/* 802947D8 00290438 7F 43 D3 78 */ mr r3, r26
+/* 802947DC 0029043C 60 00 00 02 */ ori r0, r0, 2
+/* 802947E0 00290440 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
+/* 802947E4 00290444 90 1F 00 3C */ stw r0, 0x3c(r31)
+/* 802947E8 00290448 4B FD 9F 9D */ bl OSRestoreInterrupts
+/* 802947EC 0029044C 38 60 00 01 */ li r3, 1
+lbl_802947F0:
+/* 802947F0 00290450 39 61 00 20 */ addi r11, r1, 0x20
+/* 802947F4 00290454 4B F3 29 7D */ bl _restgpr_26
+/* 802947F8 00290458 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802947FC 0029045C 7C 08 03 A6 */ mtlr r0
+/* 80294800 00290460 38 21 00 20 */ addi r1, r1, 0x20
+/* 80294804 00290464 4E 80 00 20 */ blr
+
+.global AXFXDelayShutdown
+AXFXDelayShutdown:
+/* 80294808 00290468 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8029480C 0029046C 7C 08 02 A6 */ mflr r0
+/* 80294810 00290470 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80294814 00290474 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80294818 00290478 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8029481C 0029047C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80294820 00290480 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80294824 00290484 7C 7C 1B 78 */ mr r28, r3
+/* 80294828 00290488 4B FD 9F 35 */ bl OSDisableInterrupts
+/* 8029482C 0029048C 80 1C 00 3C */ lwz r0, 0x3c(r28)
+/* 80294830 00290490 7C 7D 1B 78 */ mr r29, r3
+/* 80294834 00290494 3B C0 00 00 */ li r30, 0
+/* 80294838 00290498 3B E0 00 00 */ li r31, 0
+/* 8029483C 0029049C 60 00 00 01 */ ori r0, r0, 1
+/* 80294840 002904A0 90 1C 00 3C */ stw r0, 0x3c(r28)
+lbl_80294844:
+/* 80294844 002904A4 80 7C 00 00 */ lwz r3, 0(r28)
+/* 80294848 002904A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8029484C 002904AC 41 82 00 14 */ beq lbl_80294860
+/* 80294850 002904B0 81 8D 88 FC */ lwz r12, lbl_8063DBBC-_SDA_BASE_(r13)
+/* 80294854 002904B4 7D 89 03 A6 */ mtctr r12
+/* 80294858 002904B8 4E 80 04 21 */ bctrl
+/* 8029485C 002904BC 93 FC 00 00 */ stw r31, 0(r28)
+lbl_80294860:
+/* 80294860 002904C0 3B DE 00 01 */ addi r30, r30, 1
+/* 80294864 002904C4 3B 9C 00 04 */ addi r28, r28, 4
+/* 80294868 002904C8 28 1E 00 03 */ cmplwi r30, 3
+/* 8029486C 002904CC 41 80 FF D8 */ blt lbl_80294844
+/* 80294870 002904D0 7F A3 EB 78 */ mr r3, r29
+/* 80294874 002904D4 4B FD 9F 11 */ bl OSRestoreInterrupts
+/* 80294878 002904D8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8029487C 002904DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80294880 002904E0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80294884 002904E4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80294888 002904E8 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8029488C 002904EC 7C 08 03 A6 */ mtlr r0
+/* 80294890 002904F0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80294894 002904F4 4E 80 00 20 */ blr
+
+.global AXFXDelayCallback
+AXFXDelayCallback:
+/* 80294898 002904F8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8029489C 002904FC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802948A0 00290500 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802948A4 00290504 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802948A8 00290508 93 81 00 10 */ stw r28, 0x10(r1)
+/* 802948AC 0029050C 80 04 00 3C */ lwz r0, 0x3c(r4)
+/* 802948B0 00290510 2C 00 00 00 */ cmpwi r0, 0
+/* 802948B4 00290514 41 82 00 10 */ beq lbl_802948C4
+/* 802948B8 00290518 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d
+/* 802948BC 0029051C 90 04 00 3C */ stw r0, 0x3c(r4)
+/* 802948C0 00290520 48 00 01 40 */ b lbl_80294A00
+lbl_802948C4:
+/* 802948C4 00290524 38 00 00 60 */ li r0, 0x60
+/* 802948C8 00290528 80 A3 00 00 */ lwz r5, 0(r3)
+/* 802948CC 0029052C 80 C3 00 04 */ lwz r6, 4(r3)
+/* 802948D0 00290530 39 60 00 00 */ li r11, 0
+/* 802948D4 00290534 80 63 00 08 */ lwz r3, 8(r3)
+/* 802948D8 00290538 7C 09 03 A6 */ mtctr r0
+lbl_802948DC:
+/* 802948DC 0029053C 80 04 00 0C */ lwz r0, 0xc(r4)
+/* 802948E0 00290540 83 84 00 00 */ lwz r28, 0(r4)
+/* 802948E4 00290544 54 1D 10 3A */ slwi r29, r0, 2
+/* 802948E8 00290548 81 04 00 10 */ lwz r8, 0x10(r4)
+/* 802948EC 0029054C 7C 1C E8 2E */ lwzx r0, r28, r29
+/* 802948F0 00290550 80 E4 00 24 */ lwz r7, 0x24(r4)
+/* 802948F4 00290554 55 1E 10 3A */ slwi r30, r8, 2
+/* 802948F8 00290558 81 24 00 14 */ lwz r9, 0x14(r4)
+/* 802948FC 0029055C 7D 00 39 D6 */ mullw r8, r0, r7
+/* 80294900 00290560 80 E4 00 04 */ lwz r7, 4(r4)
+/* 80294904 00290564 55 2C 10 3A */ slwi r12, r9, 2
+/* 80294908 00290568 83 E4 00 08 */ lwz r31, 8(r4)
+/* 8029490C 0029056C 81 45 00 00 */ lwz r10, 0(r5)
+/* 80294910 00290570 7C E7 F0 2E */ lwzx r7, r7, r30
+/* 80294914 00290574 7D 09 3E 70 */ srawi r9, r8, 7
+/* 80294918 00290578 7D 1F 60 2E */ lwzx r8, r31, r12
+/* 8029491C 0029057C 7D 2A 4A 14 */ add r9, r10, r9
+/* 80294920 00290580 7D 3C E9 2E */ stwx r9, r28, r29
+/* 80294924 00290584 81 44 00 28 */ lwz r10, 0x28(r4)
+/* 80294928 00290588 81 24 00 10 */ lwz r9, 0x10(r4)
+/* 8029492C 0029058C 7D 87 51 D6 */ mullw r12, r7, r10
+/* 80294930 00290590 83 E6 00 00 */ lwz r31, 0(r6)
+/* 80294934 00290594 81 44 00 04 */ lwz r10, 4(r4)
+/* 80294938 00290598 55 29 10 3A */ slwi r9, r9, 2
+/* 8029493C 0029059C 7D 8C 3E 70 */ srawi r12, r12, 7
+/* 80294940 002905A0 7D 9F 62 14 */ add r12, r31, r12
+/* 80294944 002905A4 7D 8A 49 2E */ stwx r12, r10, r9
+/* 80294948 002905A8 81 44 00 2C */ lwz r10, 0x2c(r4)
+/* 8029494C 002905AC 81 24 00 14 */ lwz r9, 0x14(r4)
+/* 80294950 002905B0 7D 88 51 D6 */ mullw r12, r8, r10
+/* 80294954 002905B4 83 E3 00 00 */ lwz r31, 0(r3)
+/* 80294958 002905B8 81 44 00 08 */ lwz r10, 8(r4)
+/* 8029495C 002905BC 55 29 10 3A */ slwi r9, r9, 2
+/* 80294960 002905C0 7D 8C 3E 70 */ srawi r12, r12, 7
+/* 80294964 002905C4 7D 9F 62 14 */ add r12, r31, r12
+/* 80294968 002905C8 7D 8A 49 2E */ stwx r12, r10, r9
+/* 8029496C 002905CC 81 44 00 0C */ lwz r10, 0xc(r4)
+/* 80294970 002905D0 81 24 00 18 */ lwz r9, 0x18(r4)
+/* 80294974 002905D4 39 4A 00 01 */ addi r10, r10, 1
+/* 80294978 002905D8 7C 0A 48 40 */ cmplw r10, r9
+/* 8029497C 002905DC 91 44 00 0C */ stw r10, 0xc(r4)
+/* 80294980 002905E0 41 80 00 08 */ blt lbl_80294988
+/* 80294984 002905E4 91 64 00 0C */ stw r11, 0xc(r4)
+lbl_80294988:
+/* 80294988 002905E8 81 44 00 10 */ lwz r10, 0x10(r4)
+/* 8029498C 002905EC 81 24 00 1C */ lwz r9, 0x1c(r4)
+/* 80294990 002905F0 39 4A 00 01 */ addi r10, r10, 1
+/* 80294994 002905F4 7C 0A 48 40 */ cmplw r10, r9
+/* 80294998 002905F8 91 44 00 10 */ stw r10, 0x10(r4)
+/* 8029499C 002905FC 41 80 00 08 */ blt lbl_802949A4
+/* 802949A0 00290600 91 64 00 10 */ stw r11, 0x10(r4)
+lbl_802949A4:
+/* 802949A4 00290604 81 44 00 14 */ lwz r10, 0x14(r4)
+/* 802949A8 00290608 81 24 00 20 */ lwz r9, 0x20(r4)
+/* 802949AC 0029060C 39 4A 00 01 */ addi r10, r10, 1
+/* 802949B0 00290610 7C 0A 48 40 */ cmplw r10, r9
+/* 802949B4 00290614 91 44 00 14 */ stw r10, 0x14(r4)
+/* 802949B8 00290618 41 80 00 08 */ blt lbl_802949C0
+/* 802949BC 0029061C 91 64 00 14 */ stw r11, 0x14(r4)
+lbl_802949C0:
+/* 802949C0 00290620 81 24 00 30 */ lwz r9, 0x30(r4)
+/* 802949C4 00290624 7C 00 49 D6 */ mullw r0, r0, r9
+/* 802949C8 00290628 7C 00 3E 70 */ srawi r0, r0, 7
+/* 802949CC 0029062C 90 05 00 00 */ stw r0, 0(r5)
+/* 802949D0 00290630 38 A5 00 04 */ addi r5, r5, 4
+/* 802949D4 00290634 80 04 00 34 */ lwz r0, 0x34(r4)
+/* 802949D8 00290638 7C 07 01 D6 */ mullw r0, r7, r0
+/* 802949DC 0029063C 7C 00 3E 70 */ srawi r0, r0, 7
+/* 802949E0 00290640 90 06 00 00 */ stw r0, 0(r6)
+/* 802949E4 00290644 38 C6 00 04 */ addi r6, r6, 4
+/* 802949E8 00290648 80 04 00 38 */ lwz r0, 0x38(r4)
+/* 802949EC 0029064C 7C 08 01 D6 */ mullw r0, r8, r0
+/* 802949F0 00290650 7C 00 3E 70 */ srawi r0, r0, 7
+/* 802949F4 00290654 90 03 00 00 */ stw r0, 0(r3)
+/* 802949F8 00290658 38 63 00 04 */ addi r3, r3, 4
+/* 802949FC 0029065C 42 00 FE E0 */ bdnz lbl_802948DC
+lbl_80294A00:
+/* 80294A00 00290660 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80294A04 00290664 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80294A08 00290668 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80294A0C 0029066C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80294A10 00290670 38 21 00 20 */ addi r1, r1, 0x20
+/* 80294A14 00290674 4E 80 00 20 */ blr
+
+__InitParams:
+/* 80294A18 00290678 94 21 FF 90 */ stwu r1, -0x70(r1)
+/* 80294A1C 0029067C 7C 08 02 A6 */ mflr r0
+/* 80294A20 00290680 90 01 00 74 */ stw r0, 0x74(r1)
+/* 80294A24 00290684 DB E1 00 60 */ stfd f31, 0x60(r1)
+/* 80294A28 00290688 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0
+/* 80294A2C 0029068C DB C1 00 50 */ stfd f30, 0x50(r1)
+/* 80294A30 00290690 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0
+/* 80294A34 00290694 DB A1 00 40 */ stfd f29, 0x40(r1)
+/* 80294A38 00290698 F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0
+/* 80294A3C 0029069C CB A2 A2 D0 */ lfd f29, lbl_806428D0-_SDA2_BASE_(r2)
+/* 80294A40 002906A0 93 E1 00 3C */ stw r31, 0x3c(r1)
+/* 80294A44 002906A4 3F E0 43 30 */ lis r31, 0x4330
+/* 80294A48 002906A8 C3 C2 A2 C8 */ lfs f30, lbl_806428C8-_SDA2_BASE_(r2)
+/* 80294A4C 002906AC 93 C1 00 38 */ stw r30, 0x38(r1)
+/* 80294A50 002906B0 3B C0 00 00 */ li r30, 0
+/* 80294A54 002906B4 C3 E2 A2 CC */ lfs f31, lbl_806428CC-_SDA2_BASE_(r2)
+/* 80294A58 002906B8 93 A1 00 34 */ stw r29, 0x34(r1)
+/* 80294A5C 002906BC 7C 7D 1B 78 */ mr r29, r3
+/* 80294A60 002906C0 93 81 00 30 */ stw r28, 0x30(r1)
+/* 80294A64 002906C4 3B 80 00 00 */ li r28, 0
+lbl_80294A68:
+/* 80294A68 002906C8 80 1D 00 4C */ lwz r0, 0x4c(r29)
+/* 80294A6C 002906CC 28 00 00 64 */ cmplwi r0, 0x64
+/* 80294A70 002906D0 41 80 00 0C */ blt lbl_80294A7C
+/* 80294A74 002906D4 38 60 00 00 */ li r3, 0
+/* 80294A78 002906D8 48 00 00 AC */ b lbl_80294B24
+lbl_80294A7C:
+/* 80294A7C 002906DC 80 1D 00 58 */ lwz r0, 0x58(r29)
+/* 80294A80 002906E0 28 00 00 64 */ cmplwi r0, 0x64
+/* 80294A84 002906E4 40 81 00 0C */ ble lbl_80294A90
+/* 80294A88 002906E8 38 60 00 00 */ li r3, 0
+/* 80294A8C 002906EC 48 00 00 98 */ b lbl_80294B24
+lbl_80294A90:
+/* 80294A90 002906F0 80 7D 00 00 */ lwz r3, 0(r29)
+/* 80294A94 002906F4 2C 03 00 00 */ cmpwi r3, 0
+/* 80294A98 002906F8 40 82 00 0C */ bne lbl_80294AA4
+/* 80294A9C 002906FC 38 60 00 00 */ li r3, 0
+/* 80294AA0 00290700 48 00 00 84 */ b lbl_80294B24
+lbl_80294AA4:
+/* 80294AA4 00290704 80 1D 00 18 */ lwz r0, 0x18(r29)
+/* 80294AA8 00290708 38 80 00 00 */ li r4, 0
+/* 80294AAC 0029070C 54 05 10 3A */ slwi r5, r0, 2
+/* 80294AB0 00290710 4B D6 F6 55 */ bl memset
+/* 80294AB4 00290714 93 DD 00 0C */ stw r30, 0xc(r29)
+/* 80294AB8 00290718 3B 9C 00 01 */ addi r28, r28, 1
+/* 80294ABC 0029071C 28 1C 00 03 */ cmplwi r28, 3
+/* 80294AC0 00290720 80 1D 00 4C */ lwz r0, 0x4c(r29)
+/* 80294AC4 00290724 93 E1 00 08 */ stw r31, 8(r1)
+/* 80294AC8 00290728 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80294ACC 0029072C C8 01 00 08 */ lfd f0, 8(r1)
+/* 80294AD0 00290730 93 E1 00 18 */ stw r31, 0x18(r1)
+/* 80294AD4 00290734 EC 00 E8 28 */ fsubs f0, f0, f29
+/* 80294AD8 00290738 EC 1E 00 32 */ fmuls f0, f30, f0
+/* 80294ADC 0029073C EC 00 F8 24 */ fdivs f0, f0, f31
+/* 80294AE0 00290740 FC 00 00 1E */ fctiwz f0, f0
+/* 80294AE4 00290744 D8 01 00 10 */ stfd f0, 0x10(r1)
+/* 80294AE8 00290748 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80294AEC 0029074C 90 1D 00 24 */ stw r0, 0x24(r29)
+/* 80294AF0 00290750 80 1D 00 58 */ lwz r0, 0x58(r29)
+/* 80294AF4 00290754 90 01 00 1C */ stw r0, 0x1c(r1)
+/* 80294AF8 00290758 C8 01 00 18 */ lfd f0, 0x18(r1)
+/* 80294AFC 0029075C EC 00 E8 28 */ fsubs f0, f0, f29
+/* 80294B00 00290760 EC 1E 00 32 */ fmuls f0, f30, f0
+/* 80294B04 00290764 EC 00 F8 24 */ fdivs f0, f0, f31
+/* 80294B08 00290768 FC 00 00 1E */ fctiwz f0, f0
+/* 80294B0C 0029076C D8 01 00 20 */ stfd f0, 0x20(r1)
+/* 80294B10 00290770 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80294B14 00290774 90 1D 00 30 */ stw r0, 0x30(r29)
+/* 80294B18 00290778 3B BD 00 04 */ addi r29, r29, 4
+/* 80294B1C 0029077C 41 80 FF 4C */ blt lbl_80294A68
+/* 80294B20 00290780 38 60 00 01 */ li r3, 1
+lbl_80294B24:
+/* 80294B24 00290784 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
+/* 80294B28 00290788 CB E1 00 60 */ lfd f31, 0x60(r1)
+/* 80294B2C 0029078C E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0
+/* 80294B30 00290790 CB C1 00 50 */ lfd f30, 0x50(r1)
+/* 80294B34 00290794 E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0
+/* 80294B38 00290798 CB A1 00 40 */ lfd f29, 0x40(r1)
+/* 80294B3C 0029079C 83 E1 00 3C */ lwz r31, 0x3c(r1)
+/* 80294B40 002907A0 83 C1 00 38 */ lwz r30, 0x38(r1)
+/* 80294B44 002907A4 83 A1 00 34 */ lwz r29, 0x34(r1)
+/* 80294B48 002907A8 80 01 00 74 */ lwz r0, 0x74(r1)
+/* 80294B4C 002907AC 83 81 00 30 */ lwz r28, 0x30(r1)
+/* 80294B50 002907B0 7C 08 03 A6 */ mtlr r0
+/* 80294B54 002907B4 38 21 00 70 */ addi r1, r1, 0x70
+/* 80294B58 002907B8 4E 80 00 20 */ blr