diff options
author | red031000 <rubenru09@aol.com> | 2020-10-19 01:40:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-19 01:40:03 +0100 |
commit | c9d369b8d0abf7d75943e25e79e11df3e941e69a (patch) | |
tree | 15117926ef46a611e602ecf3cdd0edad5939f081 | |
parent | 4965b8101131432139e8d2e9e309440ad2acbd2f (diff) | |
parent | fbd635cb89c6e6f8f0e1e9603a515b902e69de06 (diff) |
Merge pull request #149 from mparisi20/master
Decompile code_801DAAE0.cpp
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | asm/bss.s | 861 | ||||
-rw-r--r-- | asm/bss_2.s | 860 | ||||
-rw-r--r-- | asm/code_801DAAE0.s | 446 | ||||
-rw-r--r-- | asm/ctors_2.s | 2 | ||||
-rw-r--r-- | asm/sbss_2.s | 18 | ||||
-rw-r--r-- | include/Runtime/__mem.h | 16 | ||||
-rw-r--r-- | include/SDK/MEM/mem_expHeap.h | 31 | ||||
-rw-r--r-- | include/SDK/mem.h | 14 | ||||
-rw-r--r-- | include/code_801DAA30.h | 9 | ||||
-rw-r--r-- | include/code_801DAAE0.h | 27 | ||||
-rw-r--r-- | include/unkStruct.h | 5 | ||||
-rw-r--r-- | obj_files.mk | 7 | ||||
-rw-r--r-- | src/code_801DAA30.cpp | 6 | ||||
-rw-r--r-- | src/code_801DAAE0.cpp | 260 |
15 files changed, 1219 insertions, 1345 deletions
@@ -65,7 +65,7 @@ include obj_files.mk O_FILES := $(EXTAB_O_FILES) $(EXTABINDEX_O_FILES) $(SPLIT_O_FILES) \ $(DTORS_O_FILES) $(RODATA_O_FILES) $(DATA_O_FILES) \ - $(BSS_O_FILES) $(SDATA_O_FILES) $(SDATA2_O_FILES) \ + $(SDATA_O_FILES) $(SDATA2_O_FILES) \ $(SBSS2_O_FILES) #------------------------------------------------------------------------------- @@ -447,864 +447,3 @@ lbl_80490D90: .global lbl_80491290 lbl_80491290: .skip 0x20 -.global lbl_804912B0 -lbl_804912B0: - .skip 0xC0 -.global lbl_80491370 -lbl_80491370: - .skip 0x100 -.global lbl_80491470 -lbl_80491470: - .skip 0x380 -.global lbl_804917F0 -lbl_804917F0: - .skip 0x40 -.global lbl_80491830 -lbl_80491830: - .skip 0x10 -.global lbl_80491840 -lbl_80491840: - .skip 0x30 -.global lbl_80491870 -lbl_80491870: - .skip 0x1C -.global lbl_8049188C -lbl_8049188C: - .skip 0x1C -.global lbl_804918A8 -lbl_804918A8: - .skip 0xC -.global lbl_804918B4 -lbl_804918B4: - .skip 0xC -.global lbl_804918C0 -lbl_804918C0: - .skip 0x10 -.global lbl_804918D0 -lbl_804918D0: - .skip 0xA0 -.global lbl_80491970 -lbl_80491970: - .skip 0x30 -.global lbl_804919A0 -lbl_804919A0: - .skip 0x10 -.global lbl_804919B0 -lbl_804919B0: - .skip 0x8C -.global lbl_80491A3C -lbl_80491A3C: - .skip 0x64 -.global lbl_80491AA0 -lbl_80491AA0: - .skip 0x5F0 -.global lbl_80492090 -lbl_80492090: - .skip 0x20 -.global lbl_804920B0 -lbl_804920B0: - .skip 0x20 -.global lbl_804920D0 -lbl_804920D0: - .skip 0x20 -.global lbl_804920F0 -lbl_804920F0: - .skip 0x100 -.global lbl_804921F0 -lbl_804921F0: - .skip 0x30 -.global lbl_80492220 -lbl_80492220: - .skip 0x10 -.global lbl_80492230 -lbl_80492230: - .skip 0xC -.global lbl_8049223C -lbl_8049223C: - .skip 0xC -.global lbl_80492248 -lbl_80492248: - .skip 0xC -.global lbl_80492254 -lbl_80492254: - .skip 0xC -.global lbl_80492260 -lbl_80492260: - .skip 0x18 -.global lbl_80492278 -lbl_80492278: - .skip 0x10 -.global lbl_80492288 -lbl_80492288: - .skip 0x48 -.global lbl_804922D0 -lbl_804922D0: - .skip 0xC -.global lbl_804922DC -lbl_804922DC: - .skip 0x3E0 -.global lbl_804926BC -lbl_804926BC: - .skip 0x3D4 -.global lbl_80492A90 -lbl_80492A90: - .skip 0xC -.global lbl_80492A9C -lbl_80492A9C: - .skip 0x3E0 -.global lbl_80492E7C -lbl_80492E7C: - .skip 0x3D4 -.global lbl_80493250 -lbl_80493250: - .skip 0x60 -.global lbl_804932B0 -lbl_804932B0: - .skip 0x30 -.global lbl_804932E0 -lbl_804932E0: - .skip 0x30 -.global lbl_80493310 -lbl_80493310: - .skip 0x10 -.global lbl_80493320 -lbl_80493320: - .skip 0x10 -.global lbl_80493330 -lbl_80493330: - .skip 0x2D8 -.global lbl_80493608 -lbl_80493608: - .skip 0xC -.global lbl_80493614 -lbl_80493614: - .skip 0xC -.global lbl_80493620 -lbl_80493620: - .skip 0xC -.global lbl_8049362C -lbl_8049362C: - .skip 0xC -.global lbl_80493638 -lbl_80493638: - .skip 0x10 -.global lbl_80493648 -lbl_80493648: - .skip 0x10 -.global lbl_80493658 -lbl_80493658: - .skip 0x800 -.global lbl_80493E58 -lbl_80493E58: - .skip 0x110 -.global lbl_80493F68 -lbl_80493F68: - .skip 0x100 -.global lbl_80494068 -lbl_80494068: - .skip 0x400 -.global lbl_80494468 -lbl_80494468: - .skip 0x6C -.global lbl_804944D4 -lbl_804944D4: - .skip 0x2274 -.global lbl_80496748 -lbl_80496748: - .skip 0xC -.global lbl_80496754 -lbl_80496754: - .skip 0xC -.global lbl_80496760 -lbl_80496760: - .skip 0x40 -.global lbl_804967A0 -lbl_804967A0: - .skip 0x20 -.global lbl_804967C0 -lbl_804967C0: - .skip 0xC -.global lbl_804967CC -lbl_804967CC: - .skip 0x17D4 -.global lbl_80497FA0 -lbl_80497FA0: - .skip 0x20 -.global lbl_80497FC0 -lbl_80497FC0: - .skip 0x20 -.global lbl_80497FE0 -lbl_80497FE0: - .skip 0xC -.global lbl_80497FEC -lbl_80497FEC: - .skip 0x654B4 -.global lbl_804FD4A0 -lbl_804FD4A0: - .skip 0x200 -.global lbl_804FD6A0 -lbl_804FD6A0: - .skip 0x200 -.global lbl_804FD8A0 -lbl_804FD8A0: - .skip 0x200 -.global lbl_804FDAA0 -lbl_804FDAA0: - .skip 0x10 -.global lbl_804FDAB0 -lbl_804FDAB0: - .skip 0x170 -.global lbl_804FDC20 -lbl_804FDC20: - .skip 0x780 -.global lbl_804FE3A0 -lbl_804FE3A0: - .skip 0x180 -.global lbl_804FE520 -lbl_804FE520: - .skip 0x410 -.global lbl_804FE930 -lbl_804FE930: - .skip 0x3C00 -.global lbl_80502530 -lbl_80502530: - .skip 0x18 -.global lbl_80502548 -lbl_80502548: - .skip 0x5B0 -.global lbl_80502AF8 -lbl_80502AF8: - .skip 0x1000 -.global lbl_80503AF8 -lbl_80503AF8: - .skip 0x100 -.global lbl_80503BF8 -lbl_80503BF8: - .skip 0x88 -.global lbl_80503C80 -lbl_80503C80: - .skip 0x20 -.global lbl_80503CA0 -lbl_80503CA0: - .skip 0x50 -.global lbl_80503CF0 -lbl_80503CF0: - .skip 0x50 -.global lbl_80503D40 -lbl_80503D40: - .skip 0xC2C4 -.global lbl_80510004 -lbl_80510004: - .skip 0x449C -.global lbl_805144A0 -lbl_805144A0: - .skip 0x2C8 -.global lbl_80514768 -lbl_80514768: - .skip 0x18 -.global lbl_80514780 -lbl_80514780: - .skip 0x58 -.global lbl_805147D8 -lbl_805147D8: - .skip 0x318 -.global lbl_80514AF0 -lbl_80514AF0: - .skip 0x100 -.global lbl_80514BF0 -lbl_80514BF0: - .skip 0x2C8 -.global lbl_80514EB8 -lbl_80514EB8: - .skip 0x328 -.global lbl_805151E0 -lbl_805151E0: - .skip 0x20 -.global lbl_80515200 -lbl_80515200: - .skip 0x20 -.global lbl_80515220 -lbl_80515220: - .skip 0x20 -.global lbl_80515240 -lbl_80515240: - .skip 0x20 -.global lbl_80515260 -lbl_80515260: - .skip 0x20 -.global lbl_80515280 -lbl_80515280: - .skip 0x20 -.global lbl_805152A0 -lbl_805152A0: - .skip 0x200 -.global lbl_805154A0 -lbl_805154A0: - .skip 0x20 -.global lbl_805154C0 -lbl_805154C0: - .skip 0xC0 -.global lbl_80515580 -lbl_80515580: - .skip 0x80 -.global lbl_80515600 -lbl_80515600: - .skip 0x20 -.global lbl_80515620 -lbl_80515620: - .skip 0x20 -.global lbl_80515640 -lbl_80515640: - .skip 0x160 -.global lbl_805157A0 -lbl_805157A0: - .skip 0x78 -.global lbl_80515818 -lbl_80515818: - .skip 0x78 -.global lbl_80515890 -lbl_80515890: - .skip 0x80 -.global lbl_80515910 -lbl_80515910: - .skip 0x20 -.global lbl_80515930 -lbl_80515930: - .skip 0x680 -.global lbl_80515FB0 -lbl_80515FB0: - .skip 0x24 -.global lbl_80515FD4 -lbl_80515FD4: - .skip 0x24 -.global lbl_80515FF8 -lbl_80515FF8: - .skip 0xD8 -.global lbl_805160D0 -lbl_805160D0: - .skip 0x1B0 -.global lbl_80516280 -lbl_80516280: - .skip 0x700 -.global lbl_80516980 -lbl_80516980: - .skip 0x20 -.global lbl_805169A0 -lbl_805169A0: - .skip 0x30 -.global lbl_805169D0 -lbl_805169D0: - .skip 0x30 -.global lbl_80516A00 -lbl_80516A00: - .skip 0x40 -.global lbl_80516A40 -lbl_80516A40: - .skip 0x20 -.global lbl_80516A60 -lbl_80516A60: - .skip 0x20 -.global lbl_80516A80 -lbl_80516A80: - .skip 0x4A40 -.global lbl_8051B4C0 -lbl_8051B4C0: - .skip 0x30 -.global lbl_8051B4F0 -lbl_8051B4F0: - .skip 0x60 -.global lbl_8051B550 -lbl_8051B550: - .skip 0x30 -.global lbl_8051B580 -lbl_8051B580: - .skip 0x90 -.global lbl_8051B610 -lbl_8051B610: - .skip 0xD0 -.global lbl_8051B6E0 -lbl_8051B6E0: - .skip 0x80 -.global lbl_8051B760 -lbl_8051B760: - .skip 0x80 -.global lbl_8051B7E0 -lbl_8051B7E0: - .skip 0x20 -.global lbl_8051B800 -lbl_8051B800: - .skip 0xC0 -.global lbl_8051B8C0 -lbl_8051B8C0: - .skip 0x80 -.global lbl_8051B940 -lbl_8051B940: - .skip 0x80 -.global lbl_8051B9C0 -lbl_8051B9C0: - .skip 0x1200 -.global lbl_8051CBC0 -lbl_8051CBC0: - .skip 0x1200 -.global lbl_8051DDC0 -lbl_8051DDC0: - .skip 0xD80 -.global lbl_8051EB40 -lbl_8051EB40: - .skip 0x100 -.global lbl_8051EC40 -lbl_8051EC40: - .skip 0x40 -.global lbl_8051EC80 -lbl_8051EC80: - .skip 0x8A0 -.global lbl_8051F520 -lbl_8051F520: - .skip 0x480 -.global lbl_8051F9A0 -lbl_8051F9A0: - .skip 0x60 -.global lbl_8051FA00 -lbl_8051FA00: - .skip 0x40 -.global lbl_8051FA40 -lbl_8051FA40: - .skip 0x80 -.global lbl_8051FAC0 -lbl_8051FAC0: - .skip 0x7800 -.global lbl_805272C0 -lbl_805272C0: - .skip 0x1800 -.global lbl_80528AC0 -lbl_80528AC0: - .skip 0x8700 -.global lbl_805311C0 -lbl_805311C0: - .skip 0x10 -.global lbl_805311D0 -lbl_805311D0: - .skip 0x18 -.global lbl_805311E8 -lbl_805311E8: - .skip 0x2A00 -.global lbl_80533BE8 -lbl_80533BE8: - .skip 0x1998 -.global lbl_80535580 -lbl_80535580: - .skip 0x18 -.global lbl_80535598 -lbl_80535598: - .skip 0x28 -.global lbl_805355C0 -lbl_805355C0: - .skip 0x100 -.global lbl_805356C0 -lbl_805356C0: - .skip 0x10 -.global lbl_805356D0 -lbl_805356D0: - .skip 0x1490 -.global lbl_80536B60 -lbl_80536B60: - .skip 0x50 -.global lbl_80536BB0 -lbl_80536BB0: - .skip 0x80 -.global lbl_80536C30 -lbl_80536C30: - .skip 0x80 -.global lbl_80536CB0 -lbl_80536CB0: - .skip 0x90 -.global lbl_80536D40 -lbl_80536D40: - .skip 0x30 -.global lbl_80536D70 -lbl_80536D70: - .skip 0x10 -.global lbl_80536D80 -lbl_80536D80: - .skip 0x1000 -.global lbl_80537D80 -lbl_80537D80: - .skip 0x26C0 -.global lbl_8053A440 -lbl_8053A440: - .skip 0x28 -.global lbl_8053A468 -lbl_8053A468: - .skip 0x18 -.global lbl_8053A480 -lbl_8053A480: - .skip 0x60 -.global lbl_8053A4E0 -lbl_8053A4E0: - .skip 0x748 -.global lbl_8053AC28 -lbl_8053AC28: - .skip 0x468 -.global lbl_8053B090 -lbl_8053B090: - .skip 0x138 -.global lbl_8053B1C8 -lbl_8053B1C8: - .skip 0x60 -.global lbl_8053B228 -lbl_8053B228: - .skip 0x58 -.global lbl_8053B280 -lbl_8053B280: - .skip 0x1000 -.global lbl_8053C280 -lbl_8053C280: - .skip 0x20 -.global lbl_8053C2A0 -lbl_8053C2A0: - .skip 0x20 -.global lbl_8053C2C0 -lbl_8053C2C0: - .skip 0x28AE0 -.global lbl_80564DA0 -lbl_80564DA0: - .skip 0x40 -.global lbl_80564DE0 -lbl_80564DE0: - .skip 0x60 -.global lbl_80564E40 -lbl_80564E40: - .skip 0x1000 -.global lbl_80565E40 -lbl_80565E40: - .skip 0x1000 -.global lbl_80566E40 -lbl_80566E40: - .skip 0x7E0 -.global lbl_80567620 -lbl_80567620: - .skip 0x1000 -.global lbl_80568620 -lbl_80568620: - .skip 0x30 -.global lbl_80568650 -lbl_80568650: - .skip 0x88 -.global lbl_805686D8 -lbl_805686D8: - .skip 0x90 -.global lbl_80568768 -lbl_80568768: - .skip 0x30 -.global lbl_80568798 -lbl_80568798: - .skip 0x7C -.global lbl_80568814 -lbl_80568814: - .skip 0x104 -.global lbl_80568918 -lbl_80568918: - .skip 0x30 -.global lbl_80568948 -lbl_80568948: - .skip 0x230 -.global lbl_80568B78 -lbl_80568B78: - .skip 0x27C8 -.global lbl_8056B340 -lbl_8056B340: - .skip 0x3B0 -.global lbl_8056B6F0 -lbl_8056B6F0: - .skip 0x148 -.global lbl_8056B838 -lbl_8056B838: - .skip 0x408 -.global lbl_8056BC40 -lbl_8056BC40: - .skip 0x7E8 -.global lbl_8056C428 -lbl_8056C428: - .skip 0x418 -.global lbl_8056C840 -lbl_8056C840: - .skip 0x4640 -.global lbl_80570E80 -lbl_80570E80: - .skip 0x40 -.global lbl_80570EC0 -lbl_80570EC0: - .skip 0x1A0 -.global lbl_80571060 -lbl_80571060: - .skip 0x4000 -.global lbl_80575060 -lbl_80575060: - .skip 0x4000 -.global lbl_80579060 -lbl_80579060: - .skip 0x20 -.global lbl_80579080 -lbl_80579080: - .skip 0x40 -.global lbl_805790C0 -lbl_805790C0: - .skip 0xA0 -.global lbl_80579160 -lbl_80579160: - .skip 0xA0 -.global lbl_80579200 -lbl_80579200: - .skip 0x280 -.global lbl_80579480 -lbl_80579480: - .skip 0xC0 -.global lbl_80579540 -lbl_80579540: - .skip 0x40 -.global lbl_80579580 -lbl_80579580: - .skip 0x220 -.global lbl_805797A0 -lbl_805797A0: - .skip 0x1318 -.global lbl_8057AAB8 -lbl_8057AAB8: - .skip 0x18 -.global lbl_8057AAD0 -lbl_8057AAD0: - .skip 0x10 -.global lbl_8057AAE0 -lbl_8057AAE0: - .skip 0xCA0 -.global lbl_8057B780 -lbl_8057B780: - .skip 0x3020 -.global lbl_8057E7A0 -lbl_8057E7A0: - .skip 0x180 -.global lbl_8057E920 -lbl_8057E920: - .skip 0xE0 -.global lbl_8057EA00 -lbl_8057EA00: - .skip 0x20 -.global lbl_8057EA20 -lbl_8057EA20: - .skip 0x20 -.global lbl_8057EA40 -lbl_8057EA40: - .skip 0x20 -.global lbl_8057EA60 -lbl_8057EA60: - .skip 0xB68 -.global lbl_8057F5C8 -lbl_8057F5C8: - .skip 0x27FB8 -.global lbl_805A7580 -lbl_805A7580: - .skip 0x20 -.global lbl_805A75A0 -lbl_805A75A0: - .skip 0x68000 -.global lbl_8060F5A0 -lbl_8060F5A0: - .skip 0x68 -.global lbl_8060F608 -lbl_8060F608: - .skip 0x10 -.global lbl_8060F618 -lbl_8060F618: - .skip 0x230 -.global lbl_8060F848 -lbl_8060F848: - .skip 0x208 -.global lbl_8060FA50 -lbl_8060FA50: - .skip 0x1A0 -.global lbl_8060FBF0 -lbl_8060FBF0: - .skip 0x18 -.global lbl_8060FC08 -lbl_8060FC08: - .skip 0x80 -.global lbl_8060FC88 -lbl_8060FC88: - .skip 0x100 -.global lbl_8060FD88 -lbl_8060FD88: - .skip 0x738 -.global lbl_806104C0 -lbl_806104C0: - .skip 0x20 -.global lbl_806104E0 -lbl_806104E0: - .skip 0x1D0 -.global lbl_806106B0 -lbl_806106B0: - .skip 0x174 -.global lbl_80610824 -lbl_80610824: - .skip 0x104 -.global lbl_80610928 -lbl_80610928: - .skip 0x178 -.global lbl_80610AA0 -lbl_80610AA0: - .skip 0x58 -.global lbl_80610AF8 -lbl_80610AF8: - .skip 0x80 -.global lbl_80610B78 -lbl_80610B78: - .skip 0x58 -.global lbl_80610BD0 -lbl_80610BD0: - .skip 0x10090 -.global lbl_80620C60 -lbl_80620C60: - .skip 0x30 -.global lbl_80620C90 -lbl_80620C90: - .skip 0x18 -.global lbl_80620CA8 -lbl_80620CA8: - .skip 0x40 -.global lbl_80620CE8 -lbl_80620CE8: - .skip 0x100 -.global lbl_80620DE8 -lbl_80620DE8: - .skip 0x100 -.global lbl_80620EE8 -lbl_80620EE8: - .skip 0x100 -.global lbl_80620FE8 -lbl_80620FE8: - .skip 0x200 -.global lbl_806211E8 -lbl_806211E8: - .skip 0x30 -.global lbl_80621218 -lbl_80621218: - .skip 0x200 -.global lbl_80621418 -lbl_80621418: - .skip 0x2D8 -.global lbl_806216F0 -lbl_806216F0: - .skip 0x18 -.global lbl_80621708 -lbl_80621708: - .skip 0x10 -.global lbl_80621718 -lbl_80621718: - .skip 0x10 -.global lbl_80621728 -lbl_80621728: - .skip 0xC -.global lbl_80621734 -lbl_80621734: - .skip 0xC -.global lbl_80621740 -lbl_80621740: - .skip 0x100 -.global lbl_80621840 -lbl_80621840: - .skip 0xC -.global lbl_8062184C -lbl_8062184C: - .skip 0xF4 -.global lbl_80621940 -lbl_80621940: - .skip 0xC -.global lbl_8062194C -lbl_8062194C: - .skip 0x2C -.global lbl_80621978 -lbl_80621978: - .skip 0x10 -.global lbl_80621988 -lbl_80621988: - .skip 0x38 -.global lbl_806219C0 -lbl_806219C0: - .skip 0xC -.global lbl_806219CC -lbl_806219CC: - .skip 0x24 -.global lbl_806219F0 -lbl_806219F0: - .skip 0x2D8 -.global lbl_80621CC8 -lbl_80621CC8: - .skip 0x38 -.global lbl_80621D00 -lbl_80621D00: - .skip 0x10 -.global lbl_80621D10 -lbl_80621D10: - .skip 0x330 -.global lbl_80622040 -lbl_80622040: - .skip 0x16970 -.global lbl_806389B0 -lbl_806389B0: - .skip 0x10 -.global lbl_806389C0 -lbl_806389C0: - .skip 0x3A0 -.global lbl_80638D60 -lbl_80638D60: - .skip 0x4020 -.global lbl_8063CD80 -lbl_8063CD80: - .skip 0x18 -.global lbl_8063CD98 -lbl_8063CD98: - .skip 0xC -.global lbl_8063CDA4 -lbl_8063CDA4: - .skip 0x3C -.global lbl_8063CDE0 -lbl_8063CDE0: - .skip 0xC -.global lbl_8063CDEC -lbl_8063CDEC: - .skip 0x1C -.global lbl_8063CE08 -lbl_8063CE08: - .skip 0x20 -.global lbl_8063CE28 -lbl_8063CE28: - .skip 0xC -.global lbl_8063CE34 -lbl_8063CE34: - .skip 0x84 -.global lbl_8063CEB8 -lbl_8063CEB8: - .skip 0x10 -.global lbl_8063CEC8 -lbl_8063CEC8: - .skip 0x10 -.global lbl_8063CED8 -lbl_8063CED8: - .skip 0x18 -.global lbl_8063CEF0 -lbl_8063CEF0: - .skip 0xC0 -.global lbl_8063CFB0 -lbl_8063CFB0: - .skip 0xC0 -.global lbl_8063D070 -lbl_8063D070: - .skip 0x10 -.global lbl_8063D080 -lbl_8063D080: - .skip 0x18 -.global lbl_8063D098 -lbl_8063D098: - .skip 0x198 -.global lbl_8063D230 -lbl_8063D230: - .skip 0x90 diff --git a/asm/bss_2.s b/asm/bss_2.s new file mode 100644 index 0000000..bcde67a --- /dev/null +++ b/asm/bss_2.s @@ -0,0 +1,860 @@ +.section .bss, "wa" # 0x80474F00 - 0x80643050
+
+.global lbl_80491370
+lbl_80491370:
+ .skip 0x100
+.global lbl_80491470
+lbl_80491470:
+ .skip 0x380
+.global lbl_804917F0
+lbl_804917F0:
+ .skip 0x40
+.global lbl_80491830
+lbl_80491830:
+ .skip 0x10
+.global lbl_80491840
+lbl_80491840:
+ .skip 0x30
+.global lbl_80491870
+lbl_80491870:
+ .skip 0x1C
+.global lbl_8049188C
+lbl_8049188C:
+ .skip 0x1C
+.global lbl_804918A8
+lbl_804918A8:
+ .skip 0xC
+.global lbl_804918B4
+lbl_804918B4:
+ .skip 0xC
+.global lbl_804918C0
+lbl_804918C0:
+ .skip 0x10
+.global lbl_804918D0
+lbl_804918D0:
+ .skip 0xA0
+.global lbl_80491970
+lbl_80491970:
+ .skip 0x30
+.global lbl_804919A0
+lbl_804919A0:
+ .skip 0x10
+.global lbl_804919B0
+lbl_804919B0:
+ .skip 0x8C
+.global lbl_80491A3C
+lbl_80491A3C:
+ .skip 0x64
+.global lbl_80491AA0
+lbl_80491AA0:
+ .skip 0x5F0
+.global lbl_80492090
+lbl_80492090:
+ .skip 0x20
+.global lbl_804920B0
+lbl_804920B0:
+ .skip 0x20
+.global lbl_804920D0
+lbl_804920D0:
+ .skip 0x20
+.global lbl_804920F0
+lbl_804920F0:
+ .skip 0x100
+.global lbl_804921F0
+lbl_804921F0:
+ .skip 0x30
+.global lbl_80492220
+lbl_80492220:
+ .skip 0x10
+.global lbl_80492230
+lbl_80492230:
+ .skip 0xC
+.global lbl_8049223C
+lbl_8049223C:
+ .skip 0xC
+.global lbl_80492248
+lbl_80492248:
+ .skip 0xC
+.global lbl_80492254
+lbl_80492254:
+ .skip 0xC
+.global lbl_80492260
+lbl_80492260:
+ .skip 0x18
+.global lbl_80492278
+lbl_80492278:
+ .skip 0x10
+.global lbl_80492288
+lbl_80492288:
+ .skip 0x48
+.global lbl_804922D0
+lbl_804922D0:
+ .skip 0xC
+.global lbl_804922DC
+lbl_804922DC:
+ .skip 0x3E0
+.global lbl_804926BC
+lbl_804926BC:
+ .skip 0x3D4
+.global lbl_80492A90
+lbl_80492A90:
+ .skip 0xC
+.global lbl_80492A9C
+lbl_80492A9C:
+ .skip 0x3E0
+.global lbl_80492E7C
+lbl_80492E7C:
+ .skip 0x3D4
+.global lbl_80493250
+lbl_80493250:
+ .skip 0x60
+.global lbl_804932B0
+lbl_804932B0:
+ .skip 0x30
+.global lbl_804932E0
+lbl_804932E0:
+ .skip 0x30
+.global lbl_80493310
+lbl_80493310:
+ .skip 0x10
+.global lbl_80493320
+lbl_80493320:
+ .skip 0x10
+.global lbl_80493330
+lbl_80493330:
+ .skip 0x2D8
+.global lbl_80493608
+lbl_80493608:
+ .skip 0xC
+.global lbl_80493614
+lbl_80493614:
+ .skip 0xC
+.global lbl_80493620
+lbl_80493620:
+ .skip 0xC
+.global lbl_8049362C
+lbl_8049362C:
+ .skip 0xC
+.global lbl_80493638
+lbl_80493638:
+ .skip 0x10
+.global lbl_80493648
+lbl_80493648:
+ .skip 0x10
+.global lbl_80493658
+lbl_80493658:
+ .skip 0x800
+.global lbl_80493E58
+lbl_80493E58:
+ .skip 0x110
+.global lbl_80493F68
+lbl_80493F68:
+ .skip 0x100
+.global lbl_80494068
+lbl_80494068:
+ .skip 0x400
+.global lbl_80494468
+lbl_80494468:
+ .skip 0x6C
+.global lbl_804944D4
+lbl_804944D4:
+ .skip 0x2274
+.global lbl_80496748
+lbl_80496748:
+ .skip 0xC
+.global lbl_80496754
+lbl_80496754:
+ .skip 0xC
+.global lbl_80496760
+lbl_80496760:
+ .skip 0x40
+.global lbl_804967A0
+lbl_804967A0:
+ .skip 0x20
+.global lbl_804967C0
+lbl_804967C0:
+ .skip 0xC
+.global lbl_804967CC
+lbl_804967CC:
+ .skip 0x17D4
+.global lbl_80497FA0
+lbl_80497FA0:
+ .skip 0x20
+.global lbl_80497FC0
+lbl_80497FC0:
+ .skip 0x20
+.global lbl_80497FE0
+lbl_80497FE0:
+ .skip 0xC
+.global lbl_80497FEC
+lbl_80497FEC:
+ .skip 0x654B4
+.global lbl_804FD4A0
+lbl_804FD4A0:
+ .skip 0x200
+.global lbl_804FD6A0
+lbl_804FD6A0:
+ .skip 0x200
+.global lbl_804FD8A0
+lbl_804FD8A0:
+ .skip 0x200
+.global lbl_804FDAA0
+lbl_804FDAA0:
+ .skip 0x10
+.global lbl_804FDAB0
+lbl_804FDAB0:
+ .skip 0x170
+.global lbl_804FDC20
+lbl_804FDC20:
+ .skip 0x780
+.global lbl_804FE3A0
+lbl_804FE3A0:
+ .skip 0x180
+.global lbl_804FE520
+lbl_804FE520:
+ .skip 0x410
+.global lbl_804FE930
+lbl_804FE930:
+ .skip 0x3C00
+.global lbl_80502530
+lbl_80502530:
+ .skip 0x18
+.global lbl_80502548
+lbl_80502548:
+ .skip 0x5B0
+.global lbl_80502AF8
+lbl_80502AF8:
+ .skip 0x1000
+.global lbl_80503AF8
+lbl_80503AF8:
+ .skip 0x100
+.global lbl_80503BF8
+lbl_80503BF8:
+ .skip 0x88
+.global lbl_80503C80
+lbl_80503C80:
+ .skip 0x20
+.global lbl_80503CA0
+lbl_80503CA0:
+ .skip 0x50
+.global lbl_80503CF0
+lbl_80503CF0:
+ .skip 0x50
+.global lbl_80503D40
+lbl_80503D40:
+ .skip 0xC2C4
+.global lbl_80510004
+lbl_80510004:
+ .skip 0x449C
+.global lbl_805144A0
+lbl_805144A0:
+ .skip 0x2C8
+.global lbl_80514768
+lbl_80514768:
+ .skip 0x18
+.global lbl_80514780
+lbl_80514780:
+ .skip 0x58
+.global lbl_805147D8
+lbl_805147D8:
+ .skip 0x318
+.global lbl_80514AF0
+lbl_80514AF0:
+ .skip 0x100
+.global lbl_80514BF0
+lbl_80514BF0:
+ .skip 0x2C8
+.global lbl_80514EB8
+lbl_80514EB8:
+ .skip 0x328
+.global lbl_805151E0
+lbl_805151E0:
+ .skip 0x20
+.global lbl_80515200
+lbl_80515200:
+ .skip 0x20
+.global lbl_80515220
+lbl_80515220:
+ .skip 0x20
+.global lbl_80515240
+lbl_80515240:
+ .skip 0x20
+.global lbl_80515260
+lbl_80515260:
+ .skip 0x20
+.global lbl_80515280
+lbl_80515280:
+ .skip 0x20
+.global lbl_805152A0
+lbl_805152A0:
+ .skip 0x200
+.global lbl_805154A0
+lbl_805154A0:
+ .skip 0x20
+.global lbl_805154C0
+lbl_805154C0:
+ .skip 0xC0
+.global lbl_80515580
+lbl_80515580:
+ .skip 0x80
+.global lbl_80515600
+lbl_80515600:
+ .skip 0x20
+.global lbl_80515620
+lbl_80515620:
+ .skip 0x20
+.global lbl_80515640
+lbl_80515640:
+ .skip 0x160
+.global lbl_805157A0
+lbl_805157A0:
+ .skip 0x78
+.global lbl_80515818
+lbl_80515818:
+ .skip 0x78
+.global lbl_80515890
+lbl_80515890:
+ .skip 0x80
+.global lbl_80515910
+lbl_80515910:
+ .skip 0x20
+.global lbl_80515930
+lbl_80515930:
+ .skip 0x680
+.global lbl_80515FB0
+lbl_80515FB0:
+ .skip 0x24
+.global lbl_80515FD4
+lbl_80515FD4:
+ .skip 0x24
+.global lbl_80515FF8
+lbl_80515FF8:
+ .skip 0xD8
+.global lbl_805160D0
+lbl_805160D0:
+ .skip 0x1B0
+.global lbl_80516280
+lbl_80516280:
+ .skip 0x700
+.global lbl_80516980
+lbl_80516980:
+ .skip 0x20
+.global lbl_805169A0
+lbl_805169A0:
+ .skip 0x30
+.global lbl_805169D0
+lbl_805169D0:
+ .skip 0x30
+.global lbl_80516A00
+lbl_80516A00:
+ .skip 0x40
+.global lbl_80516A40
+lbl_80516A40:
+ .skip 0x20
+.global lbl_80516A60
+lbl_80516A60:
+ .skip 0x20
+.global lbl_80516A80
+lbl_80516A80:
+ .skip 0x4A40
+.global lbl_8051B4C0
+lbl_8051B4C0:
+ .skip 0x30
+.global lbl_8051B4F0
+lbl_8051B4F0:
+ .skip 0x60
+.global lbl_8051B550
+lbl_8051B550:
+ .skip 0x30
+.global lbl_8051B580
+lbl_8051B580:
+ .skip 0x90
+.global lbl_8051B610
+lbl_8051B610:
+ .skip 0xD0
+.global lbl_8051B6E0
+lbl_8051B6E0:
+ .skip 0x80
+.global lbl_8051B760
+lbl_8051B760:
+ .skip 0x80
+.global lbl_8051B7E0
+lbl_8051B7E0:
+ .skip 0x20
+.global lbl_8051B800
+lbl_8051B800:
+ .skip 0xC0
+.global lbl_8051B8C0
+lbl_8051B8C0:
+ .skip 0x80
+.global lbl_8051B940
+lbl_8051B940:
+ .skip 0x80
+.global lbl_8051B9C0
+lbl_8051B9C0:
+ .skip 0x1200
+.global lbl_8051CBC0
+lbl_8051CBC0:
+ .skip 0x1200
+.global lbl_8051DDC0
+lbl_8051DDC0:
+ .skip 0xD80
+.global lbl_8051EB40
+lbl_8051EB40:
+ .skip 0x100
+.global lbl_8051EC40
+lbl_8051EC40:
+ .skip 0x40
+.global lbl_8051EC80
+lbl_8051EC80:
+ .skip 0x8A0
+.global lbl_8051F520
+lbl_8051F520:
+ .skip 0x480
+.global lbl_8051F9A0
+lbl_8051F9A0:
+ .skip 0x60
+.global lbl_8051FA00
+lbl_8051FA00:
+ .skip 0x40
+.global lbl_8051FA40
+lbl_8051FA40:
+ .skip 0x80
+.global lbl_8051FAC0
+lbl_8051FAC0:
+ .skip 0x7800
+.global lbl_805272C0
+lbl_805272C0:
+ .skip 0x1800
+.global lbl_80528AC0
+lbl_80528AC0:
+ .skip 0x8700
+.global lbl_805311C0
+lbl_805311C0:
+ .skip 0x10
+.global lbl_805311D0
+lbl_805311D0:
+ .skip 0x18
+.global lbl_805311E8
+lbl_805311E8:
+ .skip 0x2A00
+.global lbl_80533BE8
+lbl_80533BE8:
+ .skip 0x1998
+.global lbl_80535580
+lbl_80535580:
+ .skip 0x18
+.global lbl_80535598
+lbl_80535598:
+ .skip 0x28
+.global lbl_805355C0
+lbl_805355C0:
+ .skip 0x100
+.global lbl_805356C0
+lbl_805356C0:
+ .skip 0x10
+.global lbl_805356D0
+lbl_805356D0:
+ .skip 0x1490
+.global lbl_80536B60
+lbl_80536B60:
+ .skip 0x50
+.global lbl_80536BB0
+lbl_80536BB0:
+ .skip 0x80
+.global lbl_80536C30
+lbl_80536C30:
+ .skip 0x80
+.global lbl_80536CB0
+lbl_80536CB0:
+ .skip 0x90
+.global lbl_80536D40
+lbl_80536D40:
+ .skip 0x30
+.global lbl_80536D70
+lbl_80536D70:
+ .skip 0x10
+.global lbl_80536D80
+lbl_80536D80:
+ .skip 0x1000
+.global lbl_80537D80
+lbl_80537D80:
+ .skip 0x26C0
+.global lbl_8053A440
+lbl_8053A440:
+ .skip 0x28
+.global lbl_8053A468
+lbl_8053A468:
+ .skip 0x18
+.global lbl_8053A480
+lbl_8053A480:
+ .skip 0x60
+.global lbl_8053A4E0
+lbl_8053A4E0:
+ .skip 0x748
+.global lbl_8053AC28
+lbl_8053AC28:
+ .skip 0x468
+.global lbl_8053B090
+lbl_8053B090:
+ .skip 0x138
+.global lbl_8053B1C8
+lbl_8053B1C8:
+ .skip 0x60
+.global lbl_8053B228
+lbl_8053B228:
+ .skip 0x58
+.global lbl_8053B280
+lbl_8053B280:
+ .skip 0x1000
+.global lbl_8053C280
+lbl_8053C280:
+ .skip 0x20
+.global lbl_8053C2A0
+lbl_8053C2A0:
+ .skip 0x20
+.global lbl_8053C2C0
+lbl_8053C2C0:
+ .skip 0x28AE0
+.global lbl_80564DA0
+lbl_80564DA0:
+ .skip 0x40
+.global lbl_80564DE0
+lbl_80564DE0:
+ .skip 0x60
+.global lbl_80564E40
+lbl_80564E40:
+ .skip 0x1000
+.global lbl_80565E40
+lbl_80565E40:
+ .skip 0x1000
+.global lbl_80566E40
+lbl_80566E40:
+ .skip 0x7E0
+.global lbl_80567620
+lbl_80567620:
+ .skip 0x1000
+.global lbl_80568620
+lbl_80568620:
+ .skip 0x30
+.global lbl_80568650
+lbl_80568650:
+ .skip 0x88
+.global lbl_805686D8
+lbl_805686D8:
+ .skip 0x90
+.global lbl_80568768
+lbl_80568768:
+ .skip 0x30
+.global lbl_80568798
+lbl_80568798:
+ .skip 0x7C
+.global lbl_80568814
+lbl_80568814:
+ .skip 0x104
+.global lbl_80568918
+lbl_80568918:
+ .skip 0x30
+.global lbl_80568948
+lbl_80568948:
+ .skip 0x230
+.global lbl_80568B78
+lbl_80568B78:
+ .skip 0x27C8
+.global lbl_8056B340
+lbl_8056B340:
+ .skip 0x3B0
+.global lbl_8056B6F0
+lbl_8056B6F0:
+ .skip 0x148
+.global lbl_8056B838
+lbl_8056B838:
+ .skip 0x408
+.global lbl_8056BC40
+lbl_8056BC40:
+ .skip 0x7E8
+.global lbl_8056C428
+lbl_8056C428:
+ .skip 0x418
+.global lbl_8056C840
+lbl_8056C840:
+ .skip 0x4640
+.global lbl_80570E80
+lbl_80570E80:
+ .skip 0x40
+.global lbl_80570EC0
+lbl_80570EC0:
+ .skip 0x1A0
+.global lbl_80571060
+lbl_80571060:
+ .skip 0x4000
+.global lbl_80575060
+lbl_80575060:
+ .skip 0x4000
+.global lbl_80579060
+lbl_80579060:
+ .skip 0x20
+.global lbl_80579080
+lbl_80579080:
+ .skip 0x40
+.global lbl_805790C0
+lbl_805790C0:
+ .skip 0xA0
+.global lbl_80579160
+lbl_80579160:
+ .skip 0xA0
+.global lbl_80579200
+lbl_80579200:
+ .skip 0x280
+.global lbl_80579480
+lbl_80579480:
+ .skip 0xC0
+.global lbl_80579540
+lbl_80579540:
+ .skip 0x40
+.global lbl_80579580
+lbl_80579580:
+ .skip 0x220
+.global lbl_805797A0
+lbl_805797A0:
+ .skip 0x1318
+.global lbl_8057AAB8
+lbl_8057AAB8:
+ .skip 0x18
+.global lbl_8057AAD0
+lbl_8057AAD0:
+ .skip 0x10
+.global lbl_8057AAE0
+lbl_8057AAE0:
+ .skip 0xCA0
+.global lbl_8057B780
+lbl_8057B780:
+ .skip 0x3020
+.global lbl_8057E7A0
+lbl_8057E7A0:
+ .skip 0x180
+.global lbl_8057E920
+lbl_8057E920:
+ .skip 0xE0
+.global lbl_8057EA00
+lbl_8057EA00:
+ .skip 0x20
+.global lbl_8057EA20
+lbl_8057EA20:
+ .skip 0x20
+.global lbl_8057EA40
+lbl_8057EA40:
+ .skip 0x20
+.global lbl_8057EA60
+lbl_8057EA60:
+ .skip 0xB68
+.global lbl_8057F5C8
+lbl_8057F5C8:
+ .skip 0x27FB8
+.global lbl_805A7580
+lbl_805A7580:
+ .skip 0x20
+.global lbl_805A75A0
+lbl_805A75A0:
+ .skip 0x68000
+.global lbl_8060F5A0
+lbl_8060F5A0:
+ .skip 0x68
+.global lbl_8060F608
+lbl_8060F608:
+ .skip 0x10
+.global lbl_8060F618
+lbl_8060F618:
+ .skip 0x230
+.global lbl_8060F848
+lbl_8060F848:
+ .skip 0x208
+.global lbl_8060FA50
+lbl_8060FA50:
+ .skip 0x1A0
+.global lbl_8060FBF0
+lbl_8060FBF0:
+ .skip 0x18
+.global lbl_8060FC08
+lbl_8060FC08:
+ .skip 0x80
+.global lbl_8060FC88
+lbl_8060FC88:
+ .skip 0x100
+.global lbl_8060FD88
+lbl_8060FD88:
+ .skip 0x738
+.global lbl_806104C0
+lbl_806104C0:
+ .skip 0x20
+.global lbl_806104E0
+lbl_806104E0:
+ .skip 0x1D0
+.global lbl_806106B0
+lbl_806106B0:
+ .skip 0x174
+.global lbl_80610824
+lbl_80610824:
+ .skip 0x104
+.global lbl_80610928
+lbl_80610928:
+ .skip 0x178
+.global lbl_80610AA0
+lbl_80610AA0:
+ .skip 0x58
+.global lbl_80610AF8
+lbl_80610AF8:
+ .skip 0x80
+.global lbl_80610B78
+lbl_80610B78:
+ .skip 0x58
+.global lbl_80610BD0
+lbl_80610BD0:
+ .skip 0x10090
+.global lbl_80620C60
+lbl_80620C60:
+ .skip 0x30
+.global lbl_80620C90
+lbl_80620C90:
+ .skip 0x18
+.global lbl_80620CA8
+lbl_80620CA8:
+ .skip 0x40
+.global lbl_80620CE8
+lbl_80620CE8:
+ .skip 0x100
+.global lbl_80620DE8
+lbl_80620DE8:
+ .skip 0x100
+.global lbl_80620EE8
+lbl_80620EE8:
+ .skip 0x100
+.global lbl_80620FE8
+lbl_80620FE8:
+ .skip 0x200
+.global lbl_806211E8
+lbl_806211E8:
+ .skip 0x30
+.global lbl_80621218
+lbl_80621218:
+ .skip 0x200
+.global lbl_80621418
+lbl_80621418:
+ .skip 0x2D8
+.global lbl_806216F0
+lbl_806216F0:
+ .skip 0x18
+.global lbl_80621708
+lbl_80621708:
+ .skip 0x10
+.global lbl_80621718
+lbl_80621718:
+ .skip 0x10
+.global lbl_80621728
+lbl_80621728:
+ .skip 0xC
+.global lbl_80621734
+lbl_80621734:
+ .skip 0xC
+.global lbl_80621740
+lbl_80621740:
+ .skip 0x100
+.global lbl_80621840
+lbl_80621840:
+ .skip 0xC
+.global lbl_8062184C
+lbl_8062184C:
+ .skip 0xF4
+.global lbl_80621940
+lbl_80621940:
+ .skip 0xC
+.global lbl_8062194C
+lbl_8062194C:
+ .skip 0x2C
+.global lbl_80621978
+lbl_80621978:
+ .skip 0x10
+.global lbl_80621988
+lbl_80621988:
+ .skip 0x38
+.global lbl_806219C0
+lbl_806219C0:
+ .skip 0xC
+.global lbl_806219CC
+lbl_806219CC:
+ .skip 0x24
+.global lbl_806219F0
+lbl_806219F0:
+ .skip 0x2D8
+.global lbl_80621CC8
+lbl_80621CC8:
+ .skip 0x38
+.global lbl_80621D00
+lbl_80621D00:
+ .skip 0x10
+.global lbl_80621D10
+lbl_80621D10:
+ .skip 0x330
+.global lbl_80622040
+lbl_80622040:
+ .skip 0x16970
+.global lbl_806389B0
+lbl_806389B0:
+ .skip 0x10
+.global lbl_806389C0
+lbl_806389C0:
+ .skip 0x3A0
+.global lbl_80638D60
+lbl_80638D60:
+ .skip 0x4020
+.global lbl_8063CD80
+lbl_8063CD80:
+ .skip 0x18
+.global lbl_8063CD98
+lbl_8063CD98:
+ .skip 0xC
+.global lbl_8063CDA4
+lbl_8063CDA4:
+ .skip 0x3C
+.global lbl_8063CDE0
+lbl_8063CDE0:
+ .skip 0xC
+.global lbl_8063CDEC
+lbl_8063CDEC:
+ .skip 0x1C
+.global lbl_8063CE08
+lbl_8063CE08:
+ .skip 0x20
+.global lbl_8063CE28
+lbl_8063CE28:
+ .skip 0xC
+.global lbl_8063CE34
+lbl_8063CE34:
+ .skip 0x84
+.global lbl_8063CEB8
+lbl_8063CEB8:
+ .skip 0x10
+.global lbl_8063CEC8
+lbl_8063CEC8:
+ .skip 0x10
+.global lbl_8063CED8
+lbl_8063CED8:
+ .skip 0x18
+.global lbl_8063CEF0
+lbl_8063CEF0:
+ .skip 0xC0
+.global lbl_8063CFB0
+lbl_8063CFB0:
+ .skip 0xC0
+.global lbl_8063D070
+lbl_8063D070:
+ .skip 0x10
+.global lbl_8063D080
+lbl_8063D080:
+ .skip 0x18
+.global lbl_8063D098
+lbl_8063D098:
+ .skip 0x198
+.global lbl_8063D230
+lbl_8063D230:
+ .skip 0x90
diff --git a/asm/code_801DAAE0.s b/asm/code_801DAAE0.s deleted file mode 100644 index eef5524..0000000 --- a/asm/code_801DAAE0.s +++ /dev/null @@ -1,446 +0,0 @@ -.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
diff --git a/asm/ctors_2.s b/asm/ctors_2.s index ae5eae4..5f24e74 100644 --- a/asm/ctors_2.s +++ b/asm/ctors_2.s @@ -2,7 +2,7 @@ .section .ctors, "wa" # 0x803E1E60 - 0x803E22A0
-.4byte func_801DB020, func_801DB7FC, func_801DBB1C, func_801DBE70
+.4byte func_801DB7FC, func_801DBB1C, func_801DBE70
.4byte func_801DCE4C, func_801DD5A8, func_801DD8A0, func_801DDF58
.4byte func_801DF020, func_801E07C8, func_801E07F0, func_801E0A34
.4byte func_801E4308, func_801E472C, func_801E5F5C, func_801E6BD8
diff --git a/asm/sbss_2.s b/asm/sbss_2.s index eb7438a..ec0565e 100644 --- a/asm/sbss_2.s +++ b/asm/sbss_2.s @@ -1,20 +1,8 @@ .section .sbss, "wa" # 0x80474F00 - 0x80643050
-.global lbl_8063F2D0
-lbl_8063F2D0:
- .skip 0x6
-.global lbl_8063F2D6
-lbl_8063F2D6:
- .skip 0x1
-.global lbl_8063F2D7
-lbl_8063F2D7:
- .skip 0x1
-.global lbl_8063F2D8
-lbl_8063F2D8:
- .skip 0x4
-.global lbl_8063F2DC
-lbl_8063F2DC:
- .skip 0x4
+.global lbl_8063F2DE
+lbl_8063F2DE:
+ .skip 0x2
.global lbl_8063F2E0
lbl_8063F2E0:
.skip 0x8
diff --git a/include/Runtime/__mem.h b/include/Runtime/__mem.h new file mode 100644 index 0000000..99d53b0 --- /dev/null +++ b/include/Runtime/__mem.h @@ -0,0 +1,16 @@ +#ifndef POKEREVO___MEM_H
+#define POKEREVO___MEM_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *memset(void *s, int c, size_t n);
+void *memcpy(void *dest, const void *src, size_t n);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO___MEM_H
diff --git a/include/SDK/MEM/mem_expHeap.h b/include/SDK/MEM/mem_expHeap.h new file mode 100644 index 0000000..f28b02c --- /dev/null +++ b/include/SDK/MEM/mem_expHeap.h @@ -0,0 +1,31 @@ +#ifndef POKEREVO_MEM_EXPHEAP_H
+#define POKEREVO_MEM_EXPHEAP_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// TODO: replace void* with type definition
+typedef void *MEMHeapHandle;
+typedef void (*MEMHeapVisitor)(void *memBlock, MEMHeapHandle heap, u32 userParam);
+
+extern MEMHeapHandle lbl_8063E8E8;
+extern MEMHeapHandle lbl_8063E8EC;
+
+MEMHeapHandle MEMCreateExpHeapEx(void* p1, u32 p2, u16 p3);
+u16 MEMSetGroupIDForExpHeap(MEMHeapHandle heap, u16 groupID);
+void *MEMAllocFromExpHeapEx(MEMHeapHandle heap, u32 size, int alignment);
+u32 MEMResizeForMBlockExpHeap(MEMHeapHandle heap, void *memBlock, u32 size);
+void MEMFreeToExpHeap(MEMHeapHandle heap, void *memBlock);
+u32 MEMGetSizeForMBlockExpHeap(const void *memBlock);
+u32 MEMGetTotalFreeSizeForExpHeap(MEMHeapHandle heap);
+u16 MEMGetGroupIDForMBlockExpHeap(const void *memBlock);
+void MEMVisitAllocatedForExpHeap(MEMHeapHandle heap, MEMHeapVisitor visitor, u32 userParam);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO_MEM_EXPHEAP_H
diff --git a/include/SDK/mem.h b/include/SDK/mem.h new file mode 100644 index 0000000..7bcbe6d --- /dev/null +++ b/include/SDK/mem.h @@ -0,0 +1,14 @@ +#ifndef POKEREVO_MEM_H
+#define POKEREVO_MEM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "MEM/mem_expHeap.h"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //POKEREVO_MEM_H
diff --git a/include/code_801DAA30.h b/include/code_801DAA30.h deleted file mode 100644 index 167f01c..0000000 --- a/include/code_801DAA30.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef POKEREVO_CODE_801DAA30_H
-#define POKEREVO_CODE_801DAA30_H
-
-void* operator new(size_t sz);
-void* operator new[](size_t sz);
-void operator delete(void* ptr);
-void operator delete[](void* ptr);
-
-#endif //POKEREVO_CODE_801DAA30_H
diff --git a/include/code_801DAAE0.h b/include/code_801DAAE0.h index 34bafa0..8d3d09d 100644 --- a/include/code_801DAAE0.h +++ b/include/code_801DAAE0.h @@ -5,9 +5,32 @@ extern "C" {
#endif
+#include "SDK/mem.h"
+
BOOL func_801DAB28(void);
-void *func_801DAD64(size_t);
-void func_801DAEA4(void *);
+void func_801DAB30(void);
+MEMHeapHandle func_801DAB78(void* p1, u32 p2, u16 p3);
+MEMHeapHandle func_801DAC0C(void);
+MEMHeapHandle func_801DAC14(MEMHeapHandle p1);
+u16 func_801DAC44(u16 p1);
+u16 func_801DAC90(MEMHeapHandle heap, u16 groupID);
+void* func_801DAC94(MEMHeapHandle heap, u32 size);
+void* func_801DAD00(MEMHeapHandle heap, u32 size);
+void* func_801DAD08(MEMHeapHandle heap, u32 size, int alignment);
+void* func_801DAD0C(MEMHeapHandle heap, u32 size, int alignment);
+void func_801DAD48(MEMHeapHandle heap, void* memBlock);
+u32 func_801DAD58(u32, const void* memBlock);
+void* func_801DAD64(size_t size);
+void* func_801DAD98(u32 size);
+void* func_801DADCC(u32 size, int alignment);
+void* func_801DAE10(u32 size, int alignment);
+BOOL func_801DAE60(void* memBlock, u32 size);
+void func_801DAEA4(void* memBlock);
+u32 func_801DAEE0(const void* memBlock);
+u32 func_801DAEF8(void);
+void func_801DAF70(MEMHeapHandle heap, u16 groupID);
+void func_801DAFAC(u32* dest, const u32* src, size_t n);
+void func_801DAEA4(void*);
#ifdef __cplusplus
}
diff --git a/include/unkStruct.h b/include/unkStruct.h index 73d3cfc..d1c304f 100644 --- a/include/unkStruct.h +++ b/include/unkStruct.h @@ -4,15 +4,12 @@ // Note: Many instances of this class appear in .sbss, and they are partially initialized
// by the static initializers in .ctors
-class unkStruct
+struct unkStruct
{
u8 unk0;
u16 unk2;
u8 unk4;
u8 unk5;
- u8 unk6;
- u8 unk7;
-public:
unkStruct(u8 p1, u16 p2, u8 p3)
: unk0(p1), unk2(p2), unk4(p3) { }
};
diff --git a/obj_files.mk b/obj_files.mk index 8a9c578..aeee1b5 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -8,6 +8,7 @@ EXTABINDEX_O_FILES := \ #todo fix with makefile implementation SPLIT_O_FILES := \ $(BUILD_DIR)/asm/ctors.o \ + $(BUILD_DIR)/asm/bss.o \ $(BUILD_DIR)/asm/sbss.o \ $(BUILD_DIR)/asm/code_80006980.o \ $(BUILD_DIR)/asm/code_8000748C.o \ @@ -217,7 +218,7 @@ SPLIT_O_FILES := \ $(BUILD_DIR)/asm/SDK/NdevExi2A/DebuggerDriver.o \ $(BUILD_DIR)/asm/SDK/NdevExi2A/exi2.o \ $(BUILD_DIR)/src/code_801DAA30.o \ - $(BUILD_DIR)/asm/code_801DAAE0.o \ + $(BUILD_DIR)/src/code_801DAAE0.o \ $(BUILD_DIR)/asm/code_801DB040.o \ $(BUILD_DIR)/asm/code_801DB81C.o \ $(BUILD_DIR)/asm/code_801DBB3C.o \ @@ -815,6 +816,7 @@ SPLIT_O_FILES := \ $(BUILD_DIR)/asm/code_803D9208.o \ $(BUILD_DIR)/asm/text_11_2.o \ $(BUILD_DIR)/asm/ctors_2.o \ + $(BUILD_DIR)/asm/bss_2.o \ $(BUILD_DIR)/asm/sbss_2.o \ @@ -827,9 +829,6 @@ RODATA_O_FILES := \ DATA_O_FILES := \ $(BUILD_DIR)/asm/data.o -BSS_O_FILES := \ - $(BUILD_DIR)/asm/bss.o - SDATA_O_FILES := \ $(BUILD_DIR)/asm/sdata.o diff --git a/src/code_801DAA30.cpp b/src/code_801DAA30.cpp index 4a24614..17375d9 100644 --- a/src/code_801DAA30.cpp +++ b/src/code_801DAA30.cpp @@ -1,9 +1,11 @@ #include "types.h"
#include "unkStruct.h"
#include "code_801DAAE0.h"
-#include "code_801DAA30.h"
-unkStruct gUnk8063F2C8(1, 4, 0);
+namespace
+{
+ unkStruct gUnk8063F2C8(1, 4, 0);
+}
void* operator new(size_t sz)
{
diff --git a/src/code_801DAAE0.cpp b/src/code_801DAAE0.cpp new file mode 100644 index 0000000..c03d384 --- /dev/null +++ b/src/code_801DAAE0.cpp @@ -0,0 +1,260 @@ +#include "types.h"
+#include "unkStruct.h"
+#include "code_801DAAE0.h"
+#include "Runtime/__mem.h"
+#include "SDK/mem.h"
+
+namespace
+{
+ struct unkClass
+ {
+ u8 unk0;
+ MEMHeapHandle unk4;
+ u32 unk8;
+ };
+
+ struct unkClass2
+ {
+ MEMHeapHandle heap;
+ u16 groupID;
+ u32 unk8;
+ };
+
+ const size_t ARR_SIZE = 16;
+ unkClass gUnk804912B0[ARR_SIZE];
+
+ unkStruct gUnk8063F2D0(1, 4, 0);
+ u8 gUnk8063F2D6;
+ u8 gUnk8063F2D7;
+ MEMHeapHandle gUnk8063F2D8;
+ u16 gUnk8063F2DC;
+}
+
+extern "C" {
+
+static unkClass* func_801DAAE0(void)
+{
+ for (u32 i = 0; i < ARR_SIZE; i++)
+ if (gUnk804912B0[i].unk0 == 0)
+ return &gUnk804912B0[i];
+ return NULL;
+}
+
+BOOL func_801DAB28(void)
+{
+ return gUnk8063F2D6;
+}
+
+void func_801DAB30(void)
+{
+ memset(gUnk804912B0, 0, sizeof(gUnk804912B0));
+ gUnk8063F2D8 = 0;
+ gUnk8063F2DC = 0;
+ gUnk8063F2D6 = 1;
+ gUnk8063F2D7 = 0;
+}
+
+MEMHeapHandle func_801DAB78(void* p1, u32 p2, u16 p3)
+{
+ if (!func_801DAB28())
+ return 0;
+ unkClass* r31 = func_801DAAE0();
+ if (!r31)
+ return 0;
+ MEMHeapHandle r3 = MEMCreateExpHeapEx(p1, p2, p3);
+ r31->unk0 = 1;
+ r31->unk4 = r3;
+ r31->unk8 = p2;
+ return r3;
+}
+
+MEMHeapHandle func_801DAC0C(void)
+{
+ return gUnk8063F2D8;
+}
+
+MEMHeapHandle func_801DAC14(MEMHeapHandle p1)
+{
+ MEMHeapHandle r3 = func_801DAC0C();
+ gUnk8063F2D8 = p1;
+ return r3;
+}
+
+u16 func_801DAC44(u16 p1)
+{
+ u16 r31 = gUnk8063F2DC;
+ gUnk8063F2DC = p1;
+ MEMSetGroupIDForExpHeap(lbl_8063E8E8, (u16)(p1 & 0xff));
+ MEMSetGroupIDForExpHeap(lbl_8063E8EC, (u16)(gUnk8063F2DC & 0xff));
+ return r31;
+}
+
+u16 func_801DAC90(MEMHeapHandle heap, u16 groupID)
+{
+ return MEMSetGroupIDForExpHeap(heap, groupID);
+}
+
+void* func_801DAC94(MEMHeapHandle heap, u32 size)
+{
+ return MEMAllocFromExpHeapEx(heap, size, 32);
+}
+
+static void* lbl_801DAC9C(MEMHeapHandle heap, u32 size, int fill)
+{
+ void* r31 = func_801DAC94(heap, size);
+ if (!r31)
+ return NULL;
+ memset(r31, fill, size);
+ return r31;
+}
+
+void* func_801DAD00(MEMHeapHandle heap, u32 size)
+{
+ return lbl_801DAC9C(heap, size, 0);
+}
+
+void* func_801DAD08(MEMHeapHandle heap, u32 size, int alignment)
+{
+ return MEMAllocFromExpHeapEx(heap, size, alignment);
+}
+
+void* func_801DAD0C(MEMHeapHandle heap, u32 size, int alignment)
+{
+ return MEMAllocFromExpHeapEx(heap, size, (alignment > 0) ? -alignment : alignment);
+}
+
+static BOOL func_801DAD1C(MEMHeapHandle heap, void* memBlock, u32 size)
+{
+ return MEMResizeForMBlockExpHeap(heap, memBlock, size) != 0;
+}
+
+void func_801DAD48(MEMHeapHandle heap, void* memBlock)
+{
+ if (memBlock)
+ MEMFreeToExpHeap(heap, memBlock);
+}
+
+u32 func_801DAD58(u32, const void* memBlock)
+{
+ return MEMGetSizeForMBlockExpHeap(memBlock);
+}
+
+static u32 func_801DAD60(MEMHeapHandle heap)
+{
+ return MEMGetTotalFreeSizeForExpHeap(heap);
+}
+
+void* func_801DAD64(size_t size)
+{
+ return func_801DAC94(func_801DAC0C(), size);
+}
+
+void* func_801DAD98(u32 size)
+{
+ return func_801DAD00(func_801DAC0C(), size);
+}
+
+void* func_801DADCC(u32 size, int alignment)
+{
+ return func_801DAD08(func_801DAC0C(), size, alignment);
+}
+
+void* func_801DAE10(u32 size, int alignment)
+{
+ return func_801DAD08(func_801DAC0C(), size, (alignment > 0) ? -alignment : alignment);
+}
+
+BOOL func_801DAE60(void* memBlock, u32 size)
+{
+ return func_801DAD1C(func_801DAC0C(), memBlock, size);
+}
+
+void func_801DAEA4(void* memBlock)
+{
+ if (memBlock)
+ func_801DAD48(func_801DAC0C(), memBlock);
+}
+
+u32 func_801DAEE0(const void* memBlock)
+{
+ if (memBlock == NULL)
+ return 0;
+ return MEMGetSizeForMBlockExpHeap(memBlock);
+}
+
+u32 func_801DAEF8(void)
+{
+ return func_801DAD60(func_801DAC0C());
+}
+
+static void lbl_801DAF1C(void* memBlock, MEMHeapHandle, u32 p3)
+{
+ if (MEMGetGroupIDForMBlockExpHeap(memBlock) == ((unkClass2 *)p3)->groupID)
+ MEMFreeToExpHeap(((unkClass2 *)p3)->heap, memBlock);
+}
+
+void func_801DAF70(MEMHeapHandle heap, u16 groupID)
+{
+ unkClass2 param;
+ param.heap = heap;
+ param.groupID = groupID;
+ param.unk8 = 0;
+ MEMVisitAllocatedForExpHeap(heap, lbl_801DAF1C, (u32)¶m);
+}
+
+void func_801DAFAC(register u32* dest, register const u32* src, register size_t n)
+{
+ if ((u32)dest & 0x1f || (u32)src & 0x1f || n & 0x1f) {
+ memcpy(dest, src, n);
+ } else {
+ n /= 32;
+ #ifdef NONMATCHING
+ // 1. instruction order of loads and stores is not right
+ // 2. branch instruction should be bdnz, not bne
+ dest--;
+ src--;
+ do
+ {
+ *++dest = *++src;
+ *++dest = *++src;
+ *++dest = *++src;
+ *++dest = *++src;
+ *++dest = *++src;
+ *++dest = *++src;
+ *++dest = *++src;
+ *++dest = *++src;
+ } while (--n > 0);
+ #else
+ // Note: reg0 prevents the previous if condition from using
+ // r12 as its scratch register instead of r0
+ register u32 reg0;
+ asm
+ {
+ mtctr n
+ addi r3, dest, -4
+ addi r4, src, -4
+ lbl_801DAFD8:
+ lwzu reg0, 4(r4)
+ lwzu r5, 4(r4)
+ lwzu r6, 4(r4)
+ lwzu r7, 4(r4)
+ lwzu r8, 4(r4)
+ lwzu r9, 4(r4)
+ lwzu r10, 4(r4)
+ lwzu r11, 4(r4)
+ stwu reg0, 4(r3)
+ stwu r5, 4(r3)
+ stwu r6, 4(r3)
+ stwu r7, 4(r3)
+ stwu r8, 4(r3)
+ stwu r9, 4(r3)
+ stwu r10, 4(r3)
+ stwu r11, 4(r3)
+ bdnz lbl_801DAFD8
+ }
+ #pragma peephole on
+ #endif
+ }
+}
+
+} //extern "C"
|