summaryrefslogtreecommitdiff
path: root/asm/code_801DAAE0.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_801DAAE0.s')
-rw-r--r--asm/code_801DAAE0.s445
1 files changed, 445 insertions, 0 deletions
diff --git a/asm/code_801DAAE0.s b/asm/code_801DAAE0.s
new file mode 100644
index 0000000..8967364
--- /dev/null
+++ b/asm/code_801DAAE0.s
@@ -0,0 +1,445 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global func_801DAAE0
+func_801DAAE0:
+/* 801DAAE0 001D6740 3C 60 80 49 */ lis r3, lbl_804912B0@ha
+/* 801DAAE4 001D6744 38 00 00 10 */ li r0, 0x10
+/* 801DAAE8 001D6748 38 63 12 B0 */ addi r3, r3, lbl_804912B0@l
+/* 801DAAEC 001D674C 38 80 00 00 */ li r4, 0
+/* 801DAAF0 001D6750 7C 09 03 A6 */ mtctr r0
+lbl_801DAAF4:
+/* 801DAAF4 001D6754 88 03 00 00 */ lbz r0, 0(r3)
+/* 801DAAF8 001D6758 2C 00 00 00 */ cmpwi r0, 0
+/* 801DAAFC 001D675C 40 82 00 18 */ bne lbl_801DAB14
+/* 801DAB00 001D6760 1C 04 00 0C */ mulli r0, r4, 0xc
+/* 801DAB04 001D6764 3C 60 80 49 */ lis r3, lbl_804912B0@ha
+/* 801DAB08 001D6768 38 63 12 B0 */ addi r3, r3, lbl_804912B0@l
+/* 801DAB0C 001D676C 7C 63 02 14 */ add r3, r3, r0
+/* 801DAB10 001D6770 4E 80 00 20 */ blr
+lbl_801DAB14:
+/* 801DAB14 001D6774 38 63 00 0C */ addi r3, r3, 0xc
+/* 801DAB18 001D6778 38 84 00 01 */ addi r4, r4, 1
+/* 801DAB1C 001D677C 42 00 FF D8 */ bdnz lbl_801DAAF4
+/* 801DAB20 001D6780 38 60 00 00 */ li r3, 0
+/* 801DAB24 001D6784 4E 80 00 20 */ blr
+
+.global func_801DAB28
+func_801DAB28:
+/* 801DAB28 001D6788 88 6D A0 16 */ lbz r3, lbl_8063F2D6-_SDA_BASE_(r13)
+/* 801DAB2C 001D678C 4E 80 00 20 */ blr
+
+.global func_801DAB30
+func_801DAB30:
+/* 801DAB30 001D6790 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAB34 001D6794 7C 08 02 A6 */ mflr r0
+/* 801DAB38 001D6798 3C 60 80 49 */ lis r3, lbl_804912B0@ha
+/* 801DAB3C 001D679C 38 80 00 00 */ li r4, 0
+/* 801DAB40 001D67A0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAB44 001D67A4 38 63 12 B0 */ addi r3, r3, lbl_804912B0@l
+/* 801DAB48 001D67A8 38 A0 00 C0 */ li r5, 0xc0
+/* 801DAB4C 001D67AC 4B E2 95 B9 */ bl memset
+/* 801DAB50 001D67B0 38 60 00 00 */ li r3, 0
+/* 801DAB54 001D67B4 38 00 00 01 */ li r0, 1
+/* 801DAB58 001D67B8 90 6D A0 18 */ stw r3, lbl_8063F2D8-_SDA_BASE_(r13)
+/* 801DAB5C 001D67BC B0 6D A0 1C */ sth r3, lbl_8063F2DC-_SDA_BASE_(r13)
+/* 801DAB60 001D67C0 98 0D A0 16 */ stb r0, lbl_8063F2D6-_SDA_BASE_(r13)
+/* 801DAB64 001D67C4 98 6D A0 17 */ stb r3, lbl_8063F2D7-_SDA_BASE_(r13)
+/* 801DAB68 001D67C8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAB6C 001D67CC 7C 08 03 A6 */ mtlr r0
+/* 801DAB70 001D67D0 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAB74 001D67D4 4E 80 00 20 */ blr
+
+.global func_801DAB78
+func_801DAB78:
+/* 801DAB78 001D67D8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801DAB7C 001D67DC 7C 08 02 A6 */ mflr r0
+/* 801DAB80 001D67E0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801DAB84 001D67E4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801DAB88 001D67E8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801DAB8C 001D67EC 7C BE 2B 78 */ mr r30, r5
+/* 801DAB90 001D67F0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 801DAB94 001D67F4 7C 9D 23 78 */ mr r29, r4
+/* 801DAB98 001D67F8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 801DAB9C 001D67FC 7C 7C 1B 78 */ mr r28, r3
+/* 801DABA0 001D6800 4B FF FF 89 */ bl func_801DAB28
+/* 801DABA4 001D6804 2C 03 00 00 */ cmpwi r3, 0
+/* 801DABA8 001D6808 40 82 00 0C */ bne lbl_801DABB4
+/* 801DABAC 001D680C 38 60 00 00 */ li r3, 0
+/* 801DABB0 001D6810 48 00 00 3C */ b lbl_801DABEC
+lbl_801DABB4:
+/* 801DABB4 001D6814 4B FF FF 2D */ bl func_801DAAE0
+/* 801DABB8 001D6818 2C 03 00 00 */ cmpwi r3, 0
+/* 801DABBC 001D681C 7C 7F 1B 78 */ mr r31, r3
+/* 801DABC0 001D6820 40 82 00 0C */ bne lbl_801DABCC
+/* 801DABC4 001D6824 38 60 00 00 */ li r3, 0
+/* 801DABC8 001D6828 48 00 00 24 */ b lbl_801DABEC
+lbl_801DABCC:
+/* 801DABCC 001D682C 7F 83 E3 78 */ mr r3, r28
+/* 801DABD0 001D6830 7F A4 EB 78 */ mr r4, r29
+/* 801DABD4 001D6834 7F C5 F3 78 */ mr r5, r30
+/* 801DABD8 001D6838 48 0B C2 71 */ bl MEMCreateExpHeapEx
+/* 801DABDC 001D683C 38 00 00 01 */ li r0, 1
+/* 801DABE0 001D6840 98 1F 00 00 */ stb r0, 0(r31)
+/* 801DABE4 001D6844 90 7F 00 04 */ stw r3, 4(r31)
+/* 801DABE8 001D6848 93 BF 00 08 */ stw r29, 8(r31)
+lbl_801DABEC:
+/* 801DABEC 001D684C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801DABF0 001D6850 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801DABF4 001D6854 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801DABF8 001D6858 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 801DABFC 001D685C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 801DAC00 001D6860 7C 08 03 A6 */ mtlr r0
+/* 801DAC04 001D6864 38 21 00 20 */ addi r1, r1, 0x20
+/* 801DAC08 001D6868 4E 80 00 20 */ blr
+
+.global func_801DAC0C
+func_801DAC0C:
+/* 801DAC0C 001D686C 80 6D A0 18 */ lwz r3, lbl_8063F2D8-_SDA_BASE_(r13)
+/* 801DAC10 001D6870 4E 80 00 20 */ blr
+
+.global func_801DAC14
+func_801DAC14:
+/* 801DAC14 001D6874 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAC18 001D6878 7C 08 02 A6 */ mflr r0
+/* 801DAC1C 001D687C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAC20 001D6880 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DAC24 001D6884 7C 7F 1B 78 */ mr r31, r3
+/* 801DAC28 001D6888 4B FF FF E5 */ bl func_801DAC0C
+/* 801DAC2C 001D688C 93 ED A0 18 */ stw r31, lbl_8063F2D8-_SDA_BASE_(r13)
+/* 801DAC30 001D6890 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DAC34 001D6894 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAC38 001D6898 7C 08 03 A6 */ mtlr r0
+/* 801DAC3C 001D689C 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAC40 001D68A0 4E 80 00 20 */ blr
+
+.global func_801DAC44
+func_801DAC44:
+/* 801DAC44 001D68A4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAC48 001D68A8 7C 08 02 A6 */ mflr r0
+/* 801DAC4C 001D68AC 54 64 06 3E */ clrlwi r4, r3, 0x18
+/* 801DAC50 001D68B0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAC54 001D68B4 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DAC58 001D68B8 A3 ED A0 1C */ lhz r31, lbl_8063F2DC-_SDA_BASE_(r13)
+/* 801DAC5C 001D68BC B0 6D A0 1C */ sth r3, lbl_8063F2DC-_SDA_BASE_(r13)
+/* 801DAC60 001D68C0 80 6D 96 28 */ lwz r3, lbl_8063E8E8-_SDA_BASE_(r13)
+/* 801DAC64 001D68C4 48 0B C6 A9 */ bl MEMSetGroupIDForExpHeap
+/* 801DAC68 001D68C8 A0 0D A0 1C */ lhz r0, lbl_8063F2DC-_SDA_BASE_(r13)
+/* 801DAC6C 001D68CC 80 6D 96 2C */ lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
+/* 801DAC70 001D68D0 54 04 06 3E */ clrlwi r4, r0, 0x18
+/* 801DAC74 001D68D4 48 0B C6 99 */ bl MEMSetGroupIDForExpHeap
+/* 801DAC78 001D68D8 7F E3 FB 78 */ mr r3, r31
+/* 801DAC7C 001D68DC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DAC80 001D68E0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAC84 001D68E4 7C 08 03 A6 */ mtlr r0
+/* 801DAC88 001D68E8 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAC8C 001D68EC 4E 80 00 20 */ blr
+
+.global func_801DAC90
+func_801DAC90:
+/* 801DAC90 001D68F0 48 0B C6 7C */ b MEMSetGroupIDForExpHeap
+
+.global func_801DAC94
+func_801DAC94:
+/* 801DAC94 001D68F4 38 A0 00 20 */ li r5, 0x20
+/* 801DAC98 001D68F8 48 0B C2 90 */ b MEMAllocFromExpHeapEx
+lbl_801DAC9C:
+/* 801DAC9C 001D68FC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801DACA0 001D6900 7C 08 02 A6 */ mflr r0
+/* 801DACA4 001D6904 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801DACA8 001D6908 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801DACAC 001D690C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801DACB0 001D6910 7C BE 2B 78 */ mr r30, r5
+/* 801DACB4 001D6914 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 801DACB8 001D6918 7C 9D 23 78 */ mr r29, r4
+/* 801DACBC 001D691C 4B FF FF D9 */ bl func_801DAC94
+/* 801DACC0 001D6920 2C 03 00 00 */ cmpwi r3, 0
+/* 801DACC4 001D6924 7C 7F 1B 78 */ mr r31, r3
+/* 801DACC8 001D6928 40 82 00 0C */ bne lbl_801DACD4
+/* 801DACCC 001D692C 38 60 00 00 */ li r3, 0
+/* 801DACD0 001D6930 48 00 00 14 */ b lbl_801DACE4
+lbl_801DACD4:
+/* 801DACD4 001D6934 7F C4 F3 78 */ mr r4, r30
+/* 801DACD8 001D6938 7F A5 EB 78 */ mr r5, r29
+/* 801DACDC 001D693C 4B E2 94 29 */ bl memset
+/* 801DACE0 001D6940 7F E3 FB 78 */ mr r3, r31
+lbl_801DACE4:
+/* 801DACE4 001D6944 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801DACE8 001D6948 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801DACEC 001D694C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801DACF0 001D6950 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 801DACF4 001D6954 7C 08 03 A6 */ mtlr r0
+/* 801DACF8 001D6958 38 21 00 20 */ addi r1, r1, 0x20
+/* 801DACFC 001D695C 4E 80 00 20 */ blr
+
+.global func_801DAD00
+func_801DAD00:
+/* 801DAD00 001D6960 38 A0 00 00 */ li r5, 0
+/* 801DAD04 001D6964 4B FF FF 98 */ b lbl_801DAC9C
+
+.global func_801DAD08
+func_801DAD08:
+/* 801DAD08 001D6968 48 0B C2 20 */ b MEMAllocFromExpHeapEx
+
+.global func_801DAD0C
+func_801DAD0C:
+/* 801DAD0C 001D696C 2C 05 00 00 */ cmpwi r5, 0
+/* 801DAD10 001D6970 40 81 00 08 */ ble lbl_801DAD18
+/* 801DAD14 001D6974 7C A5 00 D0 */ neg r5, r5
+lbl_801DAD18:
+/* 801DAD18 001D6978 48 0B C2 10 */ b MEMAllocFromExpHeapEx
+
+.global func_801DAD1C
+func_801DAD1C:
+/* 801DAD1C 001D697C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAD20 001D6980 7C 08 02 A6 */ mflr r0
+/* 801DAD24 001D6984 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAD28 001D6988 48 0B C2 B1 */ bl MEMResizeForMBlockExpHeap
+/* 801DAD2C 001D698C 7C 03 00 D0 */ neg r0, r3
+/* 801DAD30 001D6990 7C 00 1B 78 */ or r0, r0, r3
+/* 801DAD34 001D6994 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 801DAD38 001D6998 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAD3C 001D699C 7C 08 03 A6 */ mtlr r0
+/* 801DAD40 001D69A0 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAD44 001D69A4 4E 80 00 20 */ blr
+
+.global func_801DAD48
+func_801DAD48:
+/* 801DAD48 001D69A8 2C 04 00 00 */ cmpwi r4, 0
+/* 801DAD4C 001D69AC 4D 82 00 20 */ beqlr
+/* 801DAD50 001D69B0 48 0B C4 74 */ b MEMFreeToExpHeap
+/* 801DAD54 001D69B4 4E 80 00 20 */ blr
+
+.global func_801DAD58
+func_801DAD58:
+/* 801DAD58 001D69B8 7C 83 23 78 */ mr r3, r4
+/* 801DAD5C 001D69BC 48 0B C6 9C */ b MEMGetSizeForMBlockExpHeap
+
+.global func_801DAD60
+func_801DAD60:
+/* 801DAD60 001D69C0 48 0B C5 30 */ b MEMGetTotalFreeSizeForExpHeap
+
+.global func_801DAD64
+func_801DAD64:
+/* 801DAD64 001D69C4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAD68 001D69C8 7C 08 02 A6 */ mflr r0
+/* 801DAD6C 001D69CC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAD70 001D69D0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DAD74 001D69D4 7C 7F 1B 78 */ mr r31, r3
+/* 801DAD78 001D69D8 4B FF FE 95 */ bl func_801DAC0C
+/* 801DAD7C 001D69DC 7F E4 FB 78 */ mr r4, r31
+/* 801DAD80 001D69E0 4B FF FF 15 */ bl func_801DAC94
+/* 801DAD84 001D69E4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAD88 001D69E8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DAD8C 001D69EC 7C 08 03 A6 */ mtlr r0
+/* 801DAD90 001D69F0 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAD94 001D69F4 4E 80 00 20 */ blr
+
+.global func_801DAD98
+func_801DAD98:
+/* 801DAD98 001D69F8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAD9C 001D69FC 7C 08 02 A6 */ mflr r0
+/* 801DADA0 001D6A00 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DADA4 001D6A04 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DADA8 001D6A08 7C 7F 1B 78 */ mr r31, r3
+/* 801DADAC 001D6A0C 4B FF FE 61 */ bl func_801DAC0C
+/* 801DADB0 001D6A10 7F E4 FB 78 */ mr r4, r31
+/* 801DADB4 001D6A14 4B FF FF 4D */ bl func_801DAD00
+/* 801DADB8 001D6A18 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DADBC 001D6A1C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DADC0 001D6A20 7C 08 03 A6 */ mtlr r0
+/* 801DADC4 001D6A24 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DADC8 001D6A28 4E 80 00 20 */ blr
+
+.global func_801DADCC
+func_801DADCC:
+/* 801DADCC 001D6A2C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DADD0 001D6A30 7C 08 02 A6 */ mflr r0
+/* 801DADD4 001D6A34 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DADD8 001D6A38 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DADDC 001D6A3C 7C 9F 23 78 */ mr r31, r4
+/* 801DADE0 001D6A40 93 C1 00 08 */ stw r30, 8(r1)
+/* 801DADE4 001D6A44 7C 7E 1B 78 */ mr r30, r3
+/* 801DADE8 001D6A48 4B FF FE 25 */ bl func_801DAC0C
+/* 801DADEC 001D6A4C 7F C4 F3 78 */ mr r4, r30
+/* 801DADF0 001D6A50 7F E5 FB 78 */ mr r5, r31
+/* 801DADF4 001D6A54 4B FF FF 15 */ bl func_801DAD08
+/* 801DADF8 001D6A58 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DADFC 001D6A5C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DAE00 001D6A60 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801DAE04 001D6A64 7C 08 03 A6 */ mtlr r0
+/* 801DAE08 001D6A68 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAE0C 001D6A6C 4E 80 00 20 */ blr
+
+.global func_801DAE10
+func_801DAE10:
+/* 801DAE10 001D6A70 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAE14 001D6A74 7C 08 02 A6 */ mflr r0
+/* 801DAE18 001D6A78 2C 04 00 00 */ cmpwi r4, 0
+/* 801DAE1C 001D6A7C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAE20 001D6A80 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DAE24 001D6A84 7C 9F 23 78 */ mr r31, r4
+/* 801DAE28 001D6A88 93 C1 00 08 */ stw r30, 8(r1)
+/* 801DAE2C 001D6A8C 7C 7E 1B 78 */ mr r30, r3
+/* 801DAE30 001D6A90 40 81 00 08 */ ble lbl_801DAE38
+/* 801DAE34 001D6A94 7F E4 00 D0 */ neg r31, r4
+lbl_801DAE38:
+/* 801DAE38 001D6A98 4B FF FD D5 */ bl func_801DAC0C
+/* 801DAE3C 001D6A9C 7F C4 F3 78 */ mr r4, r30
+/* 801DAE40 001D6AA0 7F E5 FB 78 */ mr r5, r31
+/* 801DAE44 001D6AA4 4B FF FE C5 */ bl func_801DAD08
+/* 801DAE48 001D6AA8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAE4C 001D6AAC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DAE50 001D6AB0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801DAE54 001D6AB4 7C 08 03 A6 */ mtlr r0
+/* 801DAE58 001D6AB8 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAE5C 001D6ABC 4E 80 00 20 */ blr
+
+.global func_801DAE60
+func_801DAE60:
+/* 801DAE60 001D6AC0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAE64 001D6AC4 7C 08 02 A6 */ mflr r0
+/* 801DAE68 001D6AC8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAE6C 001D6ACC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DAE70 001D6AD0 7C 9F 23 78 */ mr r31, r4
+/* 801DAE74 001D6AD4 93 C1 00 08 */ stw r30, 8(r1)
+/* 801DAE78 001D6AD8 7C 7E 1B 78 */ mr r30, r3
+/* 801DAE7C 001D6ADC 4B FF FD 91 */ bl func_801DAC0C
+/* 801DAE80 001D6AE0 7F C4 F3 78 */ mr r4, r30
+/* 801DAE84 001D6AE4 7F E5 FB 78 */ mr r5, r31
+/* 801DAE88 001D6AE8 4B FF FE 95 */ bl func_801DAD1C
+/* 801DAE8C 001D6AEC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAE90 001D6AF0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DAE94 001D6AF4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801DAE98 001D6AF8 7C 08 03 A6 */ mtlr r0
+/* 801DAE9C 001D6AFC 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAEA0 001D6B00 4E 80 00 20 */ blr
+
+.global func_801DAEA4
+func_801DAEA4:
+/* 801DAEA4 001D6B04 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAEA8 001D6B08 7C 08 02 A6 */ mflr r0
+/* 801DAEAC 001D6B0C 2C 03 00 00 */ cmpwi r3, 0
+/* 801DAEB0 001D6B10 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAEB4 001D6B14 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DAEB8 001D6B18 7C 7F 1B 78 */ mr r31, r3
+/* 801DAEBC 001D6B1C 41 82 00 10 */ beq lbl_801DAECC
+/* 801DAEC0 001D6B20 4B FF FD 4D */ bl func_801DAC0C
+/* 801DAEC4 001D6B24 7F E4 FB 78 */ mr r4, r31
+/* 801DAEC8 001D6B28 4B FF FE 81 */ bl func_801DAD48
+lbl_801DAECC:
+/* 801DAECC 001D6B2C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAED0 001D6B30 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DAED4 001D6B34 7C 08 03 A6 */ mtlr r0
+/* 801DAED8 001D6B38 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAEDC 001D6B3C 4E 80 00 20 */ blr
+
+.global func_801DAEE0
+func_801DAEE0:
+/* 801DAEE0 001D6B40 2C 03 00 00 */ cmpwi r3, 0
+/* 801DAEE4 001D6B44 40 82 00 0C */ bne lbl_801DAEF0
+/* 801DAEE8 001D6B48 38 60 00 00 */ li r3, 0
+/* 801DAEEC 001D6B4C 4E 80 00 20 */ blr
+lbl_801DAEF0:
+/* 801DAEF0 001D6B50 48 0B C5 08 */ b MEMGetSizeForMBlockExpHeap
+/* 801DAEF4 001D6B54 4E 80 00 20 */ blr
+
+.global func_801DAEF8
+func_801DAEF8:
+/* 801DAEF8 001D6B58 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAEFC 001D6B5C 7C 08 02 A6 */ mflr r0
+/* 801DAF00 001D6B60 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAF04 001D6B64 4B FF FD 09 */ bl func_801DAC0C
+/* 801DAF08 001D6B68 4B FF FE 59 */ bl func_801DAD60
+/* 801DAF0C 001D6B6C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAF10 001D6B70 7C 08 03 A6 */ mtlr r0
+/* 801DAF14 001D6B74 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAF18 001D6B78 4E 80 00 20 */ blr
+lbl_801DAF1C:
+/* 801DAF1C 001D6B7C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 801DAF20 001D6B80 7C 08 02 A6 */ mflr r0
+/* 801DAF24 001D6B84 90 01 00 14 */ stw r0, 0x14(r1)
+/* 801DAF28 001D6B88 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 801DAF2C 001D6B8C 7C BF 2B 78 */ mr r31, r5
+/* 801DAF30 001D6B90 93 C1 00 08 */ stw r30, 8(r1)
+/* 801DAF34 001D6B94 7C 7E 1B 78 */ mr r30, r3
+/* 801DAF38 001D6B98 48 0B C4 C9 */ bl MEMGetGroupIDForMBlockExpHeap
+/* 801DAF3C 001D6B9C A0 1F 00 04 */ lhz r0, 4(r31)
+/* 801DAF40 001D6BA0 54 63 04 3E */ clrlwi r3, r3, 0x10
+/* 801DAF44 001D6BA4 7C 00 18 40 */ cmplw r0, r3
+/* 801DAF48 001D6BA8 40 82 00 10 */ bne lbl_801DAF58
+/* 801DAF4C 001D6BAC 80 7F 00 00 */ lwz r3, 0(r31)
+/* 801DAF50 001D6BB0 7F C4 F3 78 */ mr r4, r30
+/* 801DAF54 001D6BB4 48 0B C2 71 */ bl MEMFreeToExpHeap
+lbl_801DAF58:
+/* 801DAF58 001D6BB8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 801DAF5C 001D6BBC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 801DAF60 001D6BC0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 801DAF64 001D6BC4 7C 08 03 A6 */ mtlr r0
+/* 801DAF68 001D6BC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 801DAF6C 001D6BCC 4E 80 00 20 */ blr
+
+.global func_801DAF70
+func_801DAF70:
+/* 801DAF70 001D6BD0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801DAF74 001D6BD4 7C 08 02 A6 */ mflr r0
+/* 801DAF78 001D6BD8 3C C0 80 1E */ lis r6, lbl_801DAF1C@ha
+/* 801DAF7C 001D6BDC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801DAF80 001D6BE0 38 00 00 00 */ li r0, 0
+/* 801DAF84 001D6BE4 38 A1 00 08 */ addi r5, r1, 8
+/* 801DAF88 001D6BE8 B0 81 00 0C */ sth r4, 0xc(r1)
+/* 801DAF8C 001D6BEC 38 86 AF 1C */ addi r4, r6, lbl_801DAF1C@l
+/* 801DAF90 001D6BF0 90 61 00 08 */ stw r3, 8(r1)
+/* 801DAF94 001D6BF4 90 01 00 10 */ stw r0, 0x10(r1)
+/* 801DAF98 001D6BF8 48 0B C3 C5 */ bl MEMVisitAllocatedForExpHeap
+/* 801DAF9C 001D6BFC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801DAFA0 001D6C00 7C 08 03 A6 */ mtlr r0
+/* 801DAFA4 001D6C04 38 21 00 20 */ addi r1, r1, 0x20
+/* 801DAFA8 001D6C08 4E 80 00 20 */ blr
+
+.global func_801DAFAC
+func_801DAFAC:
+/* 801DAFAC 001D6C0C 54 60 06 FF */ clrlwi. r0, r3, 0x1b
+/* 801DAFB0 001D6C10 40 82 00 14 */ bne lbl_801DAFC4
+/* 801DAFB4 001D6C14 54 80 06 FF */ clrlwi. r0, r4, 0x1b
+/* 801DAFB8 001D6C18 40 82 00 0C */ bne lbl_801DAFC4
+/* 801DAFBC 001D6C1C 54 A0 06 FF */ clrlwi. r0, r5, 0x1b
+/* 801DAFC0 001D6C20 41 82 00 08 */ beq lbl_801DAFC8
+lbl_801DAFC4:
+/* 801DAFC4 001D6C24 4B E2 90 3C */ b memcpy
+lbl_801DAFC8:
+/* 801DAFC8 001D6C28 54 A5 D9 7E */ srwi r5, r5, 5
+/* 801DAFCC 001D6C2C 7C A9 03 A6 */ mtctr r5
+/* 801DAFD0 001D6C30 38 63 FF FC */ addi r3, r3, -4
+/* 801DAFD4 001D6C34 38 84 FF FC */ addi r4, r4, -4
+lbl_801DAFD8:
+/* 801DAFD8 001D6C38 84 04 00 04 */ lwzu r0, 4(r4)
+/* 801DAFDC 001D6C3C 84 A4 00 04 */ lwzu r5, 4(r4)
+/* 801DAFE0 001D6C40 84 C4 00 04 */ lwzu r6, 4(r4)
+/* 801DAFE4 001D6C44 84 E4 00 04 */ lwzu r7, 4(r4)
+/* 801DAFE8 001D6C48 85 04 00 04 */ lwzu r8, 4(r4)
+/* 801DAFEC 001D6C4C 85 24 00 04 */ lwzu r9, 4(r4)
+/* 801DAFF0 001D6C50 85 44 00 04 */ lwzu r10, 4(r4)
+/* 801DAFF4 001D6C54 85 64 00 04 */ lwzu r11, 4(r4)
+/* 801DAFF8 001D6C58 94 03 00 04 */ stwu r0, 4(r3)
+/* 801DAFFC 001D6C5C 94 A3 00 04 */ stwu r5, 4(r3)
+/* 801DB000 001D6C60 94 C3 00 04 */ stwu r6, 4(r3)
+/* 801DB004 001D6C64 94 E3 00 04 */ stwu r7, 4(r3)
+/* 801DB008 001D6C68 95 03 00 04 */ stwu r8, 4(r3)
+/* 801DB00C 001D6C6C 95 23 00 04 */ stwu r9, 4(r3)
+/* 801DB010 001D6C70 95 43 00 04 */ stwu r10, 4(r3)
+/* 801DB014 001D6C74 95 63 00 04 */ stwu r11, 4(r3)
+/* 801DB018 001D6C78 42 00 FF C0 */ bdnz lbl_801DAFD8
+/* 801DB01C 001D6C7C 4E 80 00 20 */ blr
+
+.global func_801DB020
+func_801DB020:
+/* 801DB020 001D6C80 38 A0 00 01 */ li r5, 1
+/* 801DB024 001D6C84 38 6D A0 10 */ addi r3, r13, lbl_8063F2D0-_SDA_BASE_
+/* 801DB028 001D6C88 38 80 00 04 */ li r4, 4
+/* 801DB02C 001D6C8C 38 00 00 00 */ li r0, 0
+/* 801DB030 001D6C90 98 AD A0 10 */ stb r5, lbl_8063F2D0-_SDA_BASE_(r13)
+/* 801DB034 001D6C94 B0 83 00 02 */ sth r4, 2(r3)
+/* 801DB038 001D6C98 98 03 00 04 */ stb r0, 4(r3)
+/* 801DB03C 001D6C9C 4E 80 00 20 */ blr