From 67effb9191423d8e5d9e386eaa0f389267c775ce Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Tue, 31 Jan 2023 18:52:49 -0400 Subject: asm: Start work on importing the Dolphin SDK It's a start, but need to import more. --- asm/Dolphin/base/PPCArch.s | 127 ++++ asm/Dolphin/db/db-data.s | 17 + asm/Dolphin/db/db.s | 93 +++ asm/Dolphin/os/OS-data.s | 123 +++ asm/Dolphin/os/OS.s | 746 ++++++++++++++++++ asm/Dolphin/os/OSAlarm.s | 503 +++++++++++++ asm/Dolphin/os/OSAlloc.s | 260 +++++++ asm/Dolphin/os/OSAudioSystem-data.s | 43 ++ asm/Dolphin/os/OSAudioSystem.s | 199 +++++ asm/Dolphin/os/OSCache-data.s | 151 ++++ asm/Dolphin/os/OSCache.s | 476 ++++++++++++ asm/Dolphin/os/OSContext-data.s | 135 ++++ asm/Dolphin/os/OSContext.s | 643 ++++++++++++++++ asm/Dolphin/os/OSError-data.s | 217 ++++++ asm/Dolphin/os/OSError.s | 329 ++++++++ asm/Dolphin/os/OSInit.s | 263 +++++++ asm/Dolphin/os/OSInterrupt-data.s | 23 + asm/Dolphin/os/OSInterrupt.s | 696 +++++++++++++++++ asm/Dolphin/os/OSLink-data.s | 37 + asm/Dolphin/os/OSLink.s | 604 +++++++++++++++ asm/Dolphin/os/OSMemory-data.s | 15 + asm/Dolphin/os/OSMemory.s | 229 ++++++ asm/Dolphin/os/OSMessages.s | 159 ++++ asm/Dolphin/os/OSMutex.s | 190 +++++ asm/Dolphin/os/OSReboot.s | 173 +++++ asm/Dolphin/os/OSReset.s | 330 ++++++++ asm/Dolphin/os/OSResetSW.s | 258 +++++++ asm/Dolphin/os/OSRtc.s | 785 +++++++++++++++++++ asm/Dolphin/os/OSSync.s | 54 ++ asm/Dolphin/os/OSThread.s | 1413 +++++++++++++++++++++++++++++++++++ asm/Dolphin/os/OSTime-data.s | 41 + asm/Dolphin/os/OSTime.s | 312 ++++++++ 32 files changed, 9644 insertions(+) create mode 100644 asm/Dolphin/base/PPCArch.s create mode 100644 asm/Dolphin/db/db-data.s create mode 100644 asm/Dolphin/db/db.s create mode 100644 asm/Dolphin/os/OS-data.s create mode 100644 asm/Dolphin/os/OS.s create mode 100644 asm/Dolphin/os/OSAlarm.s create mode 100644 asm/Dolphin/os/OSAlloc.s create mode 100644 asm/Dolphin/os/OSAudioSystem-data.s create mode 100644 asm/Dolphin/os/OSAudioSystem.s create mode 100644 asm/Dolphin/os/OSCache-data.s create mode 100644 asm/Dolphin/os/OSCache.s create mode 100644 asm/Dolphin/os/OSContext-data.s create mode 100644 asm/Dolphin/os/OSContext.s create mode 100644 asm/Dolphin/os/OSError-data.s create mode 100644 asm/Dolphin/os/OSError.s create mode 100644 asm/Dolphin/os/OSInit.s create mode 100644 asm/Dolphin/os/OSInterrupt-data.s create mode 100644 asm/Dolphin/os/OSInterrupt.s create mode 100644 asm/Dolphin/os/OSLink-data.s create mode 100644 asm/Dolphin/os/OSLink.s create mode 100644 asm/Dolphin/os/OSMemory-data.s create mode 100644 asm/Dolphin/os/OSMemory.s create mode 100644 asm/Dolphin/os/OSMessages.s create mode 100644 asm/Dolphin/os/OSMutex.s create mode 100644 asm/Dolphin/os/OSReboot.s create mode 100644 asm/Dolphin/os/OSReset.s create mode 100644 asm/Dolphin/os/OSResetSW.s create mode 100644 asm/Dolphin/os/OSRtc.s create mode 100644 asm/Dolphin/os/OSSync.s create mode 100644 asm/Dolphin/os/OSThread.s create mode 100644 asm/Dolphin/os/OSTime-data.s create mode 100644 asm/Dolphin/os/OSTime.s (limited to 'asm') diff --git a/asm/Dolphin/base/PPCArch.s b/asm/Dolphin/base/PPCArch.s new file mode 100644 index 0000000..45dc04b --- /dev/null +++ b/asm/Dolphin/base/PPCArch.s @@ -0,0 +1,127 @@ +.include "macros.inc" + +.section .text + +.global func_8036c178 +.type func_8036c178, @function +func_8036c178: +/* 8036C178 7C6000A6 */ mfmsr r3 +/* 8036C17C 4E800020 */ blr +.size func_8036c178, . - func_8036c178 + + +.global func_8036c180 +.type func_8036c180, @function +func_8036c180: +/* 8036C180 7C600124 */ mtmsr r3 +/* 8036C184 4E800020 */ blr +.size func_8036c180, . - func_8036c180 + + +.global func_8036c188 +.type func_8036c188, @function +func_8036c188: +/* 8036C188 7C70FAA6 */ mfspr r3, 0x3f0 +/* 8036C18C 4E800020 */ blr +.size func_8036c188, . - func_8036c188 + + +.global func_8036c190 +.type func_8036c190, @function +func_8036c190: +/* 8036C190 7C70FBA6 */ mtspr 0x3f0, r3 +/* 8036C194 4E800020 */ blr +.size func_8036c190, . - func_8036c190 + + +.global func_8036c198 +.type func_8036c198, @function +func_8036c198: +/* 8036C198 7C79FAA6 */ mfspr r3, 0x3f9 +/* 8036C19C 4E800020 */ blr +.size func_8036c198, . - func_8036c198 + + +.global func_8036c1a0 +.type func_8036c1a0, @function +func_8036c1a0: +/* 8036C1A0 7C79FBA6 */ mtspr 0x3f9, r3 +/* 8036C1A4 4E800020 */ blr +.size func_8036c1a0, . - func_8036c1a0 + + +.global func_8036c1a8 +.type func_8036c1a8, @function +func_8036c1a8: +/* 8036C1A8 7C7603A6 */ mtspr 0x16, r3 +/* 8036C1AC 4E800020 */ blr +.size func_8036c1a8, . - func_8036c1a8 + + +.global func_8036c1b0 +.type func_8036c1b0, @function +func_8036c1b0: +/* 8036C1B0 44000002 */ sc +/* 8036C1B4 4E800020 */ blr +.size func_8036c1b0, . - func_8036c1b0 + + +.global func_8036c1b8 +.type func_8036c1b8, @function +func_8036c1b8: +/* 8036C1B8 7C0004AC */ sync 0 +lbl_8036c1bc: +/* 8036C1BC 60000000 */ nop +/* 8036C1C0 38600000 */ li r3, 0x0 +/* 8036C1C4 60000000 */ nop +/* 8036C1C8 4BFFFFF4 */ b lbl_8036c1bc +.size func_8036c1b8, . - func_8036c1b8 + + +.global func_8036c1cc +.type func_8036c1cc, @function +func_8036c1cc: +/* 8036C1CC 7C78E2A6 */ mfspr r3, 0x398 +/* 8036C1D0 4E800020 */ blr +.size func_8036c1cc, . - func_8036c1cc + + +.global func_8036c1d4 +.type func_8036c1d4, @function +func_8036c1d4: +/* 8036C1D4 7C78E3A6 */ mtspr 0x398, r3 +/* 8036C1D8 4E800020 */ blr +.size func_8036c1d4, . - func_8036c1d4 + + +.global func_8036c1dc +.type func_8036c1dc, @function +func_8036c1dc: +/* 8036C1DC 7C79E3A6 */ mtspr 0x399, r3 +/* 8036C1E0 4E800020 */ blr +.size func_8036c1dc, . - func_8036c1dc + + +.global func_8036c1e4 +.type func_8036c1e4, @function +func_8036c1e4: +/* 8036C1E4 7C0802A6 */ mflr r0 +/* 8036C1E8 90010004 */ stw r0, 4(r1) +/* 8036C1EC 9421FFF8 */ stwu r1, -8(r1) +/* 8036C1F0 4BFFFF99 */ bl func_8036c188 +/* 8036C1F4 60630200 */ ori r3, r3, 0x200 +/* 8036C1F8 4BFFFF99 */ bl func_8036c190 +/* 8036C1FC 8001000C */ lwz r0, 0xc(r1) +/* 8036C200 38210008 */ addi r1, r1, 0x8 +/* 8036C204 7C0803A6 */ mtlr r0 +/* 8036C208 4E800020 */ blr +.size func_8036c1e4, . - func_8036c1e4 + + +.global func_8036c20c +.type func_8036c20c, @function +func_8036c20c: +/* 8036C20C FFA0004C */ mtfsb1 0x1d +/* 8036C210 4E800020 */ blr +.size func_8036c20c, . - func_8036c20c + diff --git a/asm/Dolphin/db/db-data.s b/asm/Dolphin/db/db-data.s new file mode 100644 index 0000000..5d37baa --- /dev/null +++ b/asm/Dolphin/db/db-data.s @@ -0,0 +1,17 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804eeb98 +.type lbl_804eeb98, @object +lbl_804eeb98: +/* 804EEB98 44424578 */ .4byte 0x44424578 +/* 804EEB9C 63657074 */ .4byte 0x63657074 +/* 804EEBA0 696F6E44 */ .4byte 0x696f6e44 +/* 804EEBA4 65737469 */ .4byte 0x65737469 +/* 804EEBA8 6E617469 */ .4byte 0x6e617469 +/* 804EEBAC 6F6E0A00 */ .4byte 0x6f6e0a00 +.size lbl_804eeb98, . - lbl_804eeb98 + diff --git a/asm/Dolphin/db/db.s b/asm/Dolphin/db/db.s new file mode 100644 index 0000000..42438f1 --- /dev/null +++ b/asm/Dolphin/db/db.s @@ -0,0 +1,93 @@ +.include "macros.inc" + +.section .text + +.global func_8036c214 +.type func_8036c214, @function +func_8036c214: +/* 8036C214 3C808000 */ lis r4, 0x8000 +/* 8036C218 38040040 */ addi r0, r4, 0x40 +/* 8036C21C 3C608037 */ lis r3, func_8036c284@ha +/* 8036C220 900DC9F0 */ stw r0, lbl_805c6810@sda21(0) +/* 8036C224 3863C284 */ addi r3, r3, func_8036c284@l +/* 8036C228 3C038000 */ addis r0, r3, 0x8000 +/* 8036C22C 90040048 */ stw r0, 0x48(r4) +/* 8036C230 38000001 */ li r0, 0x1 +/* 8036C234 900DC9F4 */ stw r0, lbl_805c6814@sda21(0) +/* 8036C238 4E800020 */ blr +.size func_8036c214, . - func_8036c214 + + +.global func_8036c23c +.type func_8036c23c, @function +func_8036c23c: +/* 8036C23C 7C0802A6 */ mflr r0 +/* 8036C240 3C60804F */ lis r3, lbl_804eeb98@ha +/* 8036C244 90010004 */ stw r0, 4(r1) +/* 8036C248 3863EB98 */ addi r3, r3, lbl_804eeb98@l +/* 8036C24C 4CC63182 */ crclr 6 +/* 8036C250 9421FFE8 */ stwu r1, -0x18(r1) +/* 8036C254 93E10014 */ stw r31, 0x14(r1) +/* 8036C258 808000C0 */ lwz r4, 0xc0(0) +/* 8036C25C 3FE48000 */ addis r31, r4, 0x8000 +/* 8036C260 48002455 */ bl func_8036e6b4 +/* 8036C264 7FE3FB78 */ mr r3, r31 +/* 8036C268 480020D9 */ bl func_8036e340 +/* 8036C26C 4BFFFF4D */ bl func_8036c1b8 +/* 8036C270 8001001C */ lwz r0, 0x1c(r1) +/* 8036C274 83E10014 */ lwz r31, 0x14(r1) +/* 8036C278 38210018 */ addi r1, r1, 0x18 +/* 8036C27C 7C0803A6 */ mtlr r0 +/* 8036C280 4E800020 */ blr +.size func_8036c23c, . - func_8036c23c + + +.global func_8036c284 +.type func_8036c284, @function +func_8036c284: +/* 8036C284 7C6000A6 */ mfmsr r3 +/* 8036C288 60630030 */ ori r3, r3, 0x30 +/* 8036C28C 7C600124 */ mtmsr r3 +/* 8036C290 4BFFFFAC */ b func_8036c23c +.size func_8036c284, . - func_8036c284 + + +.global func_8036c294 +.type func_8036c294, @function +func_8036c294: +/* 8036C294 808DC9F0 */ lwz r4, lbl_805c6810@sda21(0) +/* 8036C298 5460063E */ clrlwi r0, r3, 0x18 +/* 8036C29C 38600001 */ li r3, 0x1 +/* 8036C2A0 80840004 */ lwz r4, 4(r4) +/* 8036C2A4 7C600030 */ slw r0, r3, r0 +/* 8036C2A8 7C830038 */ and r3, r4, r0 +/* 8036C2AC 4E800020 */ blr +.size func_8036c294, . - func_8036c294 + + +.global func_8036c2b0 +.type func_8036c2b0, @function +func_8036c2b0: +/* 8036C2B0 9421FF90 */ stwu r1, -0x70(r1) +/* 8036C2B4 40860024 */ bne- cr1, lbl_8036c2d8 +/* 8036C2B8 D8210028 */ stfd f1, 0x28(r1) +/* 8036C2BC D8410030 */ stfd f2, 0x30(r1) +/* 8036C2C0 D8610038 */ stfd f3, 0x38(r1) +/* 8036C2C4 D8810040 */ stfd f4, 0x40(r1) +/* 8036C2C8 D8A10048 */ stfd f5, 0x48(r1) +/* 8036C2CC D8C10050 */ stfd f6, 0x50(r1) +/* 8036C2D0 D8E10058 */ stfd f7, 0x58(r1) +/* 8036C2D4 D9010060 */ stfd f8, 0x60(r1) +lbl_8036c2d8: +/* 8036C2D8 90610008 */ stw r3, 8(r1) +/* 8036C2DC 9081000C */ stw r4, 0xc(r1) +/* 8036C2E0 90A10010 */ stw r5, 0x10(r1) +/* 8036C2E4 90C10014 */ stw r6, 0x14(r1) +/* 8036C2E8 90E10018 */ stw r7, 0x18(r1) +/* 8036C2EC 9101001C */ stw r8, 0x1c(r1) +/* 8036C2F0 91210020 */ stw r9, 0x20(r1) +/* 8036C2F4 91410024 */ stw r10, 0x24(r1) +/* 8036C2F8 38210070 */ addi r1, r1, 0x70 +/* 8036C2FC 4E800020 */ blr +.size func_8036c2b0, . - func_8036c2b0 + diff --git a/asm/Dolphin/os/OS-data.s b/asm/Dolphin/os/OS-data.s new file mode 100644 index 0000000..18adc6a --- /dev/null +++ b/asm/Dolphin/os/OS-data.s @@ -0,0 +1,123 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804eebb0 +.type lbl_804eebb0, @object +lbl_804eebb0: +/* 804EEBB0 0A446F6C */ .4byte 0x0a446f6c +/* 804EEBB4 7068696E */ .4byte 0x7068696e +/* 804EEBB8 204F5320 */ .4byte 0x204f5320 +/* 804EEBBC 24526576 */ .4byte 0x24526576 +/* 804EEBC0 6973696F */ .4byte 0x6973696f +/* 804EEBC4 6E3A2035 */ .4byte 0x6e3a2035 +/* 804EEBC8 3420242E */ .4byte 0x3420242e +/* 804EEBCC 0A000000 */ .4byte 0x0a000000 +/* 804EEBD0 4B65726E */ .4byte 0x4b65726e +/* 804EEBD4 656C2062 */ .4byte 0x656c2062 +/* 804EEBD8 75696C74 */ .4byte 0x75696c74 +/* 804EEBDC 203A2025 */ .4byte 0x203a2025 +/* 804EEBE0 73202573 */ .4byte 0x73202573 +/* 804EEBE4 0A000000 */ .4byte 0x0a000000 +/* 804EEBE8 4A756E20 */ .4byte 0x4a756e20 +/* 804EEBEC 20352032 */ .4byte 0x20352032 +/* 804EEBF0 30303200 */ .4byte 0x30303200 +/* 804EEBF4 30323A30 */ .4byte 0x30323a30 +/* 804EEBF8 393A3132 */ .4byte 0x393a3132 +/* 804EEBFC 00000000 */ .4byte 0x00000000 +/* 804EEC00 436F6E73 */ .4byte 0x436f6e73 +/* 804EEC04 6F6C6520 */ .4byte 0x6f6c6520 +/* 804EEC08 54797065 */ .4byte 0x54797065 +/* 804EEC0C 203A2000 */ .4byte 0x203a2000 +/* 804EEC10 52657461 */ .4byte 0x52657461 +/* 804EEC14 696C2025 */ .4byte 0x696c2025 +/* 804EEC18 640A0000 */ .4byte 0x640a0000 +/* 804EEC1C 4D616320 */ .4byte 0x4d616320 +/* 804EEC20 456D756C */ .4byte 0x456d756c +/* 804EEC24 61746F72 */ .4byte 0x61746f72 +/* 804EEC28 0A000000 */ .4byte 0x0a000000 +/* 804EEC2C 50432045 */ .4byte 0x50432045 +/* 804EEC30 6D756C61 */ .4byte 0x6d756c61 +/* 804EEC34 746F720A */ .4byte 0x746f720a +/* 804EEC38 00000000 */ .4byte 0x00000000 +/* 804EEC3C 45505043 */ .4byte 0x45505043 +/* 804EEC40 20417274 */ .4byte 0x20417274 +/* 804EEC44 6875720A */ .4byte 0x6875720a +/* 804EEC48 00000000 */ .4byte 0x00000000 +/* 804EEC4C 45505043 */ .4byte 0x45505043 +/* 804EEC50 204D696E */ .4byte 0x204d696e +/* 804EEC54 6E6F770A */ .4byte 0x6e6f770a +/* 804EEC58 00000000 */ .4byte 0x00000000 +/* 804EEC5C 44657665 */ .4byte 0x44657665 +/* 804EEC60 6C6F706D */ .4byte 0x6c6f706d +/* 804EEC64 656E7420 */ .4byte 0x656e7420 +/* 804EEC68 48572564 */ .4byte 0x48572564 +/* 804EEC6C 0A000000 */ .4byte 0x0a000000 +/* 804EEC70 4D656D6F */ .4byte 0x4d656d6f +/* 804EEC74 72792025 */ .4byte 0x72792025 +/* 804EEC78 64204D42 */ .4byte 0x64204d42 +/* 804EEC7C 0A000000 */ .4byte 0x0a000000 +/* 804EEC80 4172656E */ .4byte 0x4172656e +/* 804EEC84 61203A20 */ .4byte 0x61203a20 +/* 804EEC88 30782578 */ .4byte 0x30782578 +/* 804EEC8C 202D2030 */ .4byte 0x202d2030 +/* 804EEC90 7825780A */ .4byte 0x7825780a +/* 804EEC94 00000000 */ .4byte 0x00000000 +/* 804EEC98 00000100 */ .4byte 0x00000100 +/* 804EEC9C 00000200 */ .4byte 0x00000200 +/* 804EECA0 00000300 */ .4byte 0x00000300 +/* 804EECA4 00000400 */ .4byte 0x00000400 +/* 804EECA8 00000500 */ .4byte 0x00000500 +/* 804EECAC 00000600 */ .4byte 0x00000600 +/* 804EECB0 00000700 */ .4byte 0x00000700 +/* 804EECB4 00000800 */ .4byte 0x00000800 +/* 804EECB8 00000900 */ .4byte 0x00000900 +/* 804EECBC 00000C00 */ .4byte 0x00000c00 +/* 804EECC0 00000D00 */ .4byte 0x00000d00 +/* 804EECC4 00000F00 */ .4byte 0x00000f00 +/* 804EECC8 00001300 */ .4byte 0x00001300 +/* 804EECCC 00001400 */ .4byte 0x00001400 +/* 804EECD0 00001700 */ .4byte 0x00001700 +/* 804EECD4 496E7374 */ .4byte 0x496e7374 +/* 804EECD8 616C6C69 */ .4byte 0x616c6c69 +/* 804EECDC 6E67204F */ .4byte 0x6e67204f +/* 804EECE0 53444249 */ .4byte 0x53444249 +/* 804EECE4 6E746567 */ .4byte 0x6e746567 +/* 804EECE8 7261746F */ .4byte 0x7261746f +/* 804EECEC 720A0000 */ .4byte 0x720a0000 +/* 804EECF0 3E3E3E20 */ .4byte 0x3e3e3e20 +/* 804EECF4 4F53494E */ .4byte 0x4f53494e +/* 804EECF8 49543A20 */ .4byte 0x49543a20 +/* 804EECFC 65786365 */ .4byte 0x65786365 +/* 804EED00 7074696F */ .4byte 0x7074696f +/* 804EED04 6E202564 */ .4byte 0x6e202564 +/* 804EED08 20636F6D */ .4byte 0x20636f6d +/* 804EED0C 6D616E64 */ .4byte 0x6d616e64 +/* 804EED10 65657265 */ .4byte 0x65657265 +/* 804EED14 64206279 */ .4byte 0x64206279 +/* 804EED18 2054524B */ .4byte 0x2054524b +/* 804EED1C 0A000000 */ .4byte 0x0a000000 +/* 804EED20 3E3E3E20 */ .4byte 0x3e3e3e20 +/* 804EED24 4F53494E */ .4byte 0x4f53494e +/* 804EED28 49543A20 */ .4byte 0x49543a20 +/* 804EED2C 65786365 */ .4byte 0x65786365 +/* 804EED30 7074696F */ .4byte 0x7074696f +/* 804EED34 6E202564 */ .4byte 0x6e202564 +/* 804EED38 20766563 */ .4byte 0x20766563 +/* 804EED3C 746F7265 */ .4byte 0x746f7265 +/* 804EED40 6420746F */ .4byte 0x6420746f +/* 804EED44 20646562 */ .4byte 0x20646562 +/* 804EED48 75676765 */ .4byte 0x75676765 +/* 804EED4C 720A0000 */ .4byte 0x720a0000 +/* 804EED50 45786365 */ .4byte 0x45786365 +/* 804EED54 7074696F */ .4byte 0x7074696f +/* 804EED58 6E732069 */ .4byte 0x6e732069 +/* 804EED5C 6E697469 */ .4byte 0x6e697469 +/* 804EED60 616C697A */ .4byte 0x616c697a +/* 804EED64 65642E2E */ .4byte 0x65642e2e +/* 804EED68 2E0A0000 */ .4byte 0x2e0a0000 +/* 804EED6C 00000000 */ .4byte 0x00000000 +.size lbl_804eebb0, . - lbl_804eebb0 + diff --git a/asm/Dolphin/os/OS.s b/asm/Dolphin/os/OS.s new file mode 100644 index 0000000..8d30064 --- /dev/null +++ b/asm/Dolphin/os/OS.s @@ -0,0 +1,746 @@ +.include "macros.inc" + +.section .text + +.global func_8036c300 +.type func_8036c300, @function +func_8036c300: +/* 8036C300 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C304 28030000 */ cmplwi r3, 0 +/* 8036C308 41820010 */ beq- lbl_8036c318 +/* 8036C30C 8063002C */ lwz r3, 0x2c(r3) +/* 8036C310 28030000 */ cmplwi r3, 0 +/* 8036C314 40820010 */ bne- lbl_8036c324 +lbl_8036c318: +/* 8036C318 3C601000 */ lis r3, 0x1000 +/* 8036C31C 38630002 */ addi r3, r3, 0x2 +/* 8036C320 48000004 */ b lbl_8036c324 +lbl_8036c324: +/* 8036C324 4E800020 */ blr +.size func_8036c300, . - func_8036c300 + + +.global func_8036c328 +.type func_8036c328, @function +func_8036c328: +/* 8036C328 7C0802A6 */ mflr r0 +/* 8036C32C 90010004 */ stw r0, 4(r1) +/* 8036C330 9421FFF0 */ stwu r1, -0x10(r1) +/* 8036C334 93E1000C */ stw r31, 0xc(r1) +/* 8036C338 4800447D */ bl func_803707b4 +/* 8036C33C 3C038000 */ addis r0, r3, 0x8000 +/* 8036C340 28000000 */ cmplwi r0, 0 +/* 8036C344 41820034 */ beq- lbl_8036c378 +/* 8036C348 38000000 */ li r0, 0x0 +/* 8036C34C 900DCA14 */ stw r0, lbl_805c6834@sda21(0) +/* 8036C350 900DCA10 */ stw r0, lbl_805c6830@sda21(0) +/* 8036C354 480012C5 */ bl func_8036d618 +/* 8036C358 7C7F1B78 */ mr r31, r3 +/* 8036C35C 480012C5 */ bl func_8036d620 +/* 8036C360 7FE3F850 */ subf r31, r3, r31 +/* 8036C364 480012BD */ bl func_8036d620 +/* 8036C368 7FE5FB78 */ mr r5, r31 +/* 8036C36C 38800000 */ li r4, 0x0 +/* 8036C370 4BCA1FC5 */ bl func_8000e334 +/* 8036C374 480000C8 */ b lbl_8036c43c +lbl_8036c378: +/* 8036C378 3C808130 */ lis r4, 0x8130 +/* 8036C37C 8064DFF0 */ lwz r3, -0x2010(r4) +/* 8036C380 8004DFEC */ lwz r0, -0x2014(r4) +/* 8036C384 28030000 */ cmplwi r3, 0 +/* 8036C388 906DCA14 */ stw r3, lbl_805c6834@sda21(0) +/* 8036C38C 900DCA10 */ stw r0, lbl_805c6830@sda21(0) +/* 8036C390 40820028 */ bne- lbl_8036c3b8 +/* 8036C394 48001285 */ bl func_8036d618 +/* 8036C398 7C7F1B78 */ mr r31, r3 +/* 8036C39C 48001285 */ bl func_8036d620 +/* 8036C3A0 7FE3F850 */ subf r31, r3, r31 +/* 8036C3A4 4800127D */ bl func_8036d620 +/* 8036C3A8 7FE5FB78 */ mr r5, r31 +/* 8036C3AC 38800000 */ li r4, 0x0 +/* 8036C3B0 4BCA1F85 */ bl func_8000e334 +/* 8036C3B4 48000088 */ b lbl_8036c43c +lbl_8036c3b8: +/* 8036C3B8 48001269 */ bl func_8036d620 +/* 8036C3BC 800DCA14 */ lwz r0, lbl_805c6834@sda21(0) +/* 8036C3C0 7C030040 */ cmplw r3, r0 +/* 8036C3C4 40800078 */ bge- lbl_8036c43c +/* 8036C3C8 48001251 */ bl func_8036d618 +/* 8036C3CC 800DCA14 */ lwz r0, lbl_805c6834@sda21(0) +/* 8036C3D0 7C030040 */ cmplw r3, r0 +/* 8036C3D4 41810028 */ bgt- lbl_8036c3fc +/* 8036C3D8 48001241 */ bl func_8036d618 +/* 8036C3DC 7C7F1B78 */ mr r31, r3 +/* 8036C3E0 48001241 */ bl func_8036d620 +/* 8036C3E4 7FE3F850 */ subf r31, r3, r31 +/* 8036C3E8 48001239 */ bl func_8036d620 +/* 8036C3EC 7FE5FB78 */ mr r5, r31 +/* 8036C3F0 38800000 */ li r4, 0x0 +/* 8036C3F4 4BCA1F41 */ bl func_8000e334 +/* 8036C3F8 48000044 */ b lbl_8036c43c +lbl_8036c3fc: +/* 8036C3FC 48001225 */ bl func_8036d620 +/* 8036C400 800DCA14 */ lwz r0, lbl_805c6834@sda21(0) +/* 8036C404 7FE30050 */ subf r31, r3, r0 +/* 8036C408 48001219 */ bl func_8036d620 +/* 8036C40C 7FE5FB78 */ mr r5, r31 +/* 8036C410 38800000 */ li r4, 0x0 +/* 8036C414 4BCA1F21 */ bl func_8000e334 +/* 8036C418 48001201 */ bl func_8036d618 +/* 8036C41C 83EDCA10 */ lwz r31, lbl_805c6830@sda21(0) +/* 8036C420 7C03F840 */ cmplw r3, r31 +/* 8036C424 40810018 */ ble- lbl_8036c43c +/* 8036C428 480011F1 */ bl func_8036d618 +/* 8036C42C 7CBF1850 */ subf r5, r31, r3 +/* 8036C430 7FE3FB78 */ mr r3, r31 +/* 8036C434 38800000 */ li r4, 0x0 +/* 8036C438 4BCA1EFD */ bl func_8000e334 +lbl_8036c43c: +/* 8036C43C 80010014 */ lwz r0, 0x14(r1) +/* 8036C440 83E1000C */ lwz r31, 0xc(r1) +/* 8036C444 38210010 */ addi r1, r1, 0x10 +/* 8036C448 7C0803A6 */ mtlr r0 +/* 8036C44C 4E800020 */ blr +.size func_8036c328, . - func_8036c328 + + +.global func_8036c450 +.type func_8036c450, @function +func_8036c450: +/* 8036C450 8004000C */ lwz r0, 0xc(r4) +/* 8036C454 2C000000 */ cmpwi r0, 0x0 +/* 8036C458 41820008 */ beq- lbl_8036c460 +/* 8036C45C 48000020 */ b lbl_8036c47c +lbl_8036c460: +/* 8036C460 3C608054 */ lis r3, lbl_8053ebe0@ha +/* 8036C464 3863EBE0 */ addi r3, r3, lbl_8053ebe0@l +/* 8036C468 A0030002 */ lhz r0, 2(r3) +/* 8036C46C 3C608000 */ lis r3, 0x8000 +/* 8036C470 60008000 */ ori r0, r0, 0x8000 +/* 8036C474 B00330E6 */ sth r0, 0x30e6(r3) +/* 8036C478 48000010 */ b lbl_8036c488 +lbl_8036c47c: +/* 8036C47C 38000001 */ li r0, 0x1 +/* 8036C480 3C608000 */ lis r3, 0x8000 +/* 8036C484 B00330E6 */ sth r0, 0x30e6(r3) +lbl_8036c488: +/* 8036C488 4E800020 */ blr +.size func_8036c450, . - func_8036c450 + + +.global func_8036c48c +.type func_8036c48c, @function +func_8036c48c: +/* 8036C48C 7C0802A6 */ mflr r0 +/* 8036C490 90010004 */ stw r0, 4(r1) +/* 8036C494 9421FFE8 */ stwu r1, -0x18(r1) +/* 8036C498 93E10014 */ stw r31, 0x14(r1) +/* 8036C49C 93C10010 */ stw r30, 0x10(r1) +/* 8036C4A0 93A1000C */ stw r29, 0xc(r1) +/* 8036C4A4 800DCA08 */ lwz r0, lbl_805c6828@sda21(0) +/* 8036C4A8 3C808054 */ lis r4, lbl_8053ebe0@ha +/* 8036C4AC 3C60804F */ lis r3, lbl_804eebb0@ha +/* 8036C4B0 2C000000 */ cmpwi r0, 0x0 +/* 8036C4B4 3BC4EBE0 */ addi r30, r4, lbl_8053ebe0@l +/* 8036C4B8 3BE3EBB0 */ addi r31, r3, lbl_804eebb0@l +/* 8036C4BC 4082036C */ bne- lbl_8036c828 +/* 8036C4C0 38000001 */ li r0, 0x1 +/* 8036C4C4 900DCA08 */ stw r0, lbl_805c6828@sda21(0) +/* 8036C4C8 4800631D */ bl func_803727e4 +/* 8036C4CC 908DCA24 */ stw r4, lbl_805c6844@sda21(0) +/* 8036C4D0 906DCA20 */ stw r3, lbl_805c6840@sda21(0) +/* 8036C4D4 48002601 */ bl func_8036ead4 +/* 8036C4D8 4BFFFD0D */ bl func_8036c1e4 +/* 8036C4DC 4BFFFD31 */ bl func_8036c20c +/* 8036C4E0 38000000 */ li r0, 0x0 +/* 8036C4E4 3C808000 */ lis r4, 0x8000 +/* 8036C4E8 900DC9FC */ stw r0, lbl_805c681c@sda21(0) +/* 8036C4EC 908DC9F8 */ stw r4, lbl_805c6818@sda21(0) +/* 8036C4F0 900DCB04 */ stw r0, lbl_805c6924@sda21(0) +/* 8036C4F4 806400F4 */ lwz r3, 0xf4(r4) +/* 8036C4F8 28030000 */ cmplwi r3, 0 +/* 8036C4FC 41820034 */ beq- lbl_8036c530 +/* 8036C500 3803000C */ addi r0, r3, 0xc +/* 8036C504 900DC9FC */ stw r0, lbl_805c681c@sda21(0) +/* 8036C508 80030024 */ lwz r0, 0x24(r3) +/* 8036C50C 806DC9FC */ lwz r3, lbl_805c681c@sda21(0) +/* 8036C510 900DCBDC */ stw r0, lbl_805c69fc@sda21(0) +/* 8036C514 80030000 */ lwz r0, 0(r3) +/* 8036C518 5400063E */ clrlwi r0, r0, 0x18 +/* 8036C51C 980430E8 */ stb r0, 0x30e8(r4) +/* 8036C520 800DCBDC */ lwz r0, lbl_805c69fc@sda21(0) +/* 8036C524 5400063E */ clrlwi r0, r0, 0x18 +/* 8036C528 980430E9 */ stb r0, 0x30e9(r4) +/* 8036C52C 48000028 */ b lbl_8036c554 +lbl_8036c530: +/* 8036C530 80040034 */ lwz r0, 0x34(r4) +/* 8036C534 28000000 */ cmplwi r0, 0 +/* 8036C538 4182001C */ beq- lbl_8036c554 +/* 8036C53C 886430E8 */ lbz r3, 0x30e8(r4) +/* 8036C540 380DCA00 */ addi r0, 0, lbl_805c6820@sda21 +/* 8036C544 906DCA00 */ stw r3, lbl_805c6820@sda21(0) +/* 8036C548 900DC9FC */ stw r0, lbl_805c681c@sda21(0) +/* 8036C54C 880430E9 */ lbz r0, 0x30e9(r4) +/* 8036C550 900DCBDC */ stw r0, lbl_805c69fc@sda21(0) +lbl_8036c554: +/* 8036C554 38000001 */ li r0, 0x1 +/* 8036C558 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C55C 900DCB04 */ stw r0, lbl_805c6924@sda21(0) +/* 8036C560 80630030 */ lwz r3, 0x30(r3) +/* 8036C564 28030000 */ cmplwi r3, 0 +/* 8036C568 40820010 */ bne- lbl_8036c578 +/* 8036C56C 3C60805E */ lis r3, 0x805e +/* 8036C570 386329E0 */ addi r3, r3, 0x29e0 +/* 8036C574 48000004 */ b lbl_8036c578 +lbl_8036c578: +/* 8036C578 480010B9 */ bl func_8036d630 +/* 8036C57C 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C580 80030030 */ lwz r0, 0x30(r3) +/* 8036C584 28000000 */ cmplwi r0, 0 +/* 8036C588 40820030 */ bne- lbl_8036c5b8 +/* 8036C58C 806DC9FC */ lwz r3, lbl_805c681c@sda21(0) +/* 8036C590 28030000 */ cmplwi r3, 0 +/* 8036C594 41820024 */ beq- lbl_8036c5b8 +/* 8036C598 80030000 */ lwz r0, 0(r3) +/* 8036C59C 28000002 */ cmplwi r0, 2 +/* 8036C5A0 40800018 */ bge- lbl_8036c5b8 +/* 8036C5A4 3C60805E */ lis r3, 0x805e +/* 8036C5A8 386309C8 */ addi r3, r3, 0x9c8 +/* 8036C5AC 3803001F */ addi r0, r3, 0x1f +/* 8036C5B0 54030034 */ rlwinm r3, r0, 0, 0, 0x1a +/* 8036C5B4 4800107D */ bl func_8036d630 +lbl_8036c5b8: +/* 8036C5B8 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C5BC 80630034 */ lwz r3, 0x34(r3) +/* 8036C5C0 28030000 */ cmplwi r3, 0 +/* 8036C5C4 40820010 */ bne- lbl_8036c5d4 +/* 8036C5C8 3C608170 */ lis r3, 0x8170 +/* 8036C5CC 38630000 */ addi r3, r3, 0x0 +/* 8036C5D0 48000004 */ b lbl_8036c5d4 +lbl_8036c5d4: +/* 8036C5D4 48001055 */ bl func_8036d628 +/* 8036C5D8 4800026D */ bl func_8036c844 +/* 8036C5DC 48004FE1 */ bl func_803715bc +/* 8036C5E0 4800067D */ bl func_8036cc5c +/* 8036C5E4 480034C9 */ bl func_8036faac +/* 8036C5E8 48002569 */ bl func_8036eb50 +/* 8036C5EC 3C608037 */ lis r3, func_803707e4@ha +/* 8036C5F0 388307E4 */ addi r4, r3, func_803707e4@l +/* 8036C5F4 38600016 */ li r3, 0x16 +/* 8036C5F8 48002529 */ bl func_8036eb20 +/* 8036C5FC 48002071 */ bl func_8036e66c +/* 8036C600 48001759 */ bl func_8036dd58 +/* 8036C604 480C0065 */ bl func_8042c668 +/* 8036C608 480C1315 */ bl func_8042d91c +/* 8036C60C 480046DD */ bl func_80370ce8 +/* 8036C610 48005011 */ bl func_80371620 +/* 8036C614 48001025 */ bl func_8036d638 +/* 8036C618 4BFFFBB5 */ bl func_8036c1cc +/* 8036C61C 54630080 */ rlwinm r3, r3, 0, 2, 0 +/* 8036C620 4BFFFBB5 */ bl func_8036c1d4 +/* 8036C624 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C628 3883002C */ addi r4, r3, 0x2c +/* 8036C62C 80040000 */ lwz r0, 0(r4) +/* 8036C630 540000C6 */ rlwinm r0, r0, 0, 3, 3 +/* 8036C634 28000000 */ cmplwi r0, 0 +/* 8036C638 41820014 */ beq- lbl_8036c64c +/* 8036C63C 3C601000 */ lis r3, 0x1000 +/* 8036C640 38030004 */ addi r0, r3, 0x4 +/* 8036C644 90040000 */ stw r0, 0(r4) +/* 8036C648 4800000C */ b lbl_8036c654 +lbl_8036c64c: +/* 8036C64C 38000001 */ li r0, 0x1 +/* 8036C650 90040000 */ stw r0, 0(r4) +lbl_8036c654: +/* 8036C654 3C60CC00 */ lis r3, 0xcc00 +/* 8036C658 808DC9F8 */ lwz r4, lbl_805c6818@sda21(0) +/* 8036C65C 38633000 */ addi r3, r3, 0x3000 +/* 8036C660 8003002C */ lwz r0, 0x2c(r3) +/* 8036C664 8064002C */ lwz r3, 0x2c(r4) +/* 8036C668 54000006 */ rlwinm r0, r0, 0, 0, 3 +/* 8036C66C 5400273E */ srwi r0, r0, 0x1c +/* 8036C670 7C030214 */ add r0, r3, r0 +/* 8036C674 9004002C */ stw r0, 0x2c(r4) +/* 8036C678 800DCA18 */ lwz r0, lbl_805c6838@sda21(0) +/* 8036C67C 2C000000 */ cmpwi r0, 0x0 +/* 8036C680 40820008 */ bne- lbl_8036c688 +/* 8036C684 48003805 */ bl func_8036fe88 +lbl_8036c688: +/* 8036C688 7FE3FB78 */ mr r3, r31 +/* 8036C68C 4CC63182 */ crclr 6 +/* 8036C690 48002025 */ bl func_8036e6b4 +/* 8036C694 387F0020 */ addi r3, r31, 0x20 +/* 8036C698 4CC63182 */ crclr 6 +/* 8036C69C 389F0038 */ addi r4, r31, 0x38 +/* 8036C6A0 38BF0044 */ addi r5, r31, 0x44 +/* 8036C6A4 48002011 */ bl func_8036e6b4 +/* 8036C6A8 387F0050 */ addi r3, r31, 0x50 +/* 8036C6AC 4CC63182 */ crclr 6 +/* 8036C6B0 48002005 */ bl func_8036e6b4 +/* 8036C6B4 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C6B8 28030000 */ cmplwi r3, 0 +/* 8036C6BC 41820010 */ beq- lbl_8036c6cc +/* 8036C6C0 8083002C */ lwz r4, 0x2c(r3) +/* 8036C6C4 28040000 */ cmplwi r4, 0 +/* 8036C6C8 40820010 */ bne- lbl_8036c6d8 +lbl_8036c6cc: +/* 8036C6CC 3C601000 */ lis r3, 0x1000 +/* 8036C6D0 38830002 */ addi r4, r3, 0x2 +/* 8036C6D4 48000004 */ b lbl_8036c6d8 +lbl_8036c6d8: +/* 8036C6D8 548000C6 */ rlwinm r0, r4, 0, 3, 3 +/* 8036C6DC 28000000 */ cmplwi r0, 0 +/* 8036C6E0 40820014 */ bne- lbl_8036c6f4 +/* 8036C6E4 4CC63182 */ crclr 6 +/* 8036C6E8 387F0060 */ addi r3, r31, 0x60 +/* 8036C6EC 48001FC9 */ bl func_8036e6b4 +/* 8036C6F0 4800008C */ b lbl_8036c77c +lbl_8036c6f4: +/* 8036C6F4 3C601000 */ lis r3, 0x1000 +/* 8036C6F8 38030002 */ addi r0, r3, 0x2 +/* 8036C6FC 7C040000 */ cmpw r4, r0 +/* 8036C700 41820048 */ beq- lbl_8036c748 +/* 8036C704 40800014 */ bge- lbl_8036c718 +/* 8036C708 7C041800 */ cmpw r4, r3 +/* 8036C70C 4182001C */ beq- lbl_8036c728 +/* 8036C710 40800028 */ bge- lbl_8036c738 +/* 8036C714 48000054 */ b lbl_8036c768 +lbl_8036c718: +/* 8036C718 38030004 */ addi r0, r3, 0x4 +/* 8036C71C 7C040000 */ cmpw r4, r0 +/* 8036C720 40800048 */ bge- lbl_8036c768 +/* 8036C724 48000034 */ b lbl_8036c758 +lbl_8036c728: +/* 8036C728 387F006C */ addi r3, r31, 0x6c +/* 8036C72C 4CC63182 */ crclr 6 +/* 8036C730 48001F85 */ bl func_8036e6b4 +/* 8036C734 48000048 */ b lbl_8036c77c +lbl_8036c738: +/* 8036C738 387F007C */ addi r3, r31, 0x7c +/* 8036C73C 4CC63182 */ crclr 6 +/* 8036C740 48001F75 */ bl func_8036e6b4 +/* 8036C744 48000038 */ b lbl_8036c77c +lbl_8036c748: +/* 8036C748 387F008C */ addi r3, r31, 0x8c +/* 8036C74C 4CC63182 */ crclr 6 +/* 8036C750 48001F65 */ bl func_8036e6b4 +/* 8036C754 48000028 */ b lbl_8036c77c +lbl_8036c758: +/* 8036C758 387F009C */ addi r3, r31, 0x9c +/* 8036C75C 4CC63182 */ crclr 6 +/* 8036C760 48001F55 */ bl func_8036e6b4 +/* 8036C764 48000018 */ b lbl_8036c77c +lbl_8036c768: +/* 8036C768 3C84F000 */ addis r4, r4, 0xf000 +/* 8036C76C 4CC63182 */ crclr 6 +/* 8036C770 387F00AC */ addi r3, r31, 0xac +/* 8036C774 3884FFFD */ addi r4, r4, -0x3 +/* 8036C778 48001F3D */ bl func_8036e6b4 +lbl_8036c77c: +/* 8036C77C 808DC9F8 */ lwz r4, lbl_805c6818@sda21(0) +/* 8036C780 387F00C0 */ addi r3, r31, 0xc0 +/* 8036C784 4CC63182 */ crclr 6 +/* 8036C788 80040028 */ lwz r0, 0x28(r4) +/* 8036C78C 5404653E */ srwi r4, r0, 0x14 +/* 8036C790 48001F25 */ bl func_8036e6b4 +/* 8036C794 48000E85 */ bl func_8036d618 +/* 8036C798 7C7D1B78 */ mr r29, r3 +/* 8036C79C 48000E85 */ bl func_8036d620 +/* 8036C7A0 7C641B78 */ mr r4, r3 +/* 8036C7A4 4CC63182 */ crclr 6 +/* 8036C7A8 7FA5EB78 */ mr r5, r29 +/* 8036C7AC 387F00D0 */ addi r3, r31, 0xd0 +/* 8036C7B0 48001F05 */ bl func_8036e6b4 +/* 8036C7B4 806DC9FC */ lwz r3, lbl_805c681c@sda21(0) +/* 8036C7B8 28030000 */ cmplwi r3, 0 +/* 8036C7BC 41820014 */ beq- lbl_8036c7d0 +/* 8036C7C0 80030000 */ lwz r0, 0(r3) +/* 8036C7C4 28000002 */ cmplwi r0, 2 +/* 8036C7C8 41800008 */ blt- lbl_8036c7d0 +/* 8036C7CC 48025B45 */ bl func_80392310 +lbl_8036c7d0: +/* 8036C7D0 4BFFFB59 */ bl func_8036c328 +/* 8036C7D4 48002315 */ bl func_8036eae8 +/* 8036C7D8 800DCA18 */ lwz r0, lbl_805c6838@sda21(0) +/* 8036C7DC 2C000000 */ cmpwi r0, 0x0 +/* 8036C7E0 40820048 */ bne- lbl_8036c828 +/* 8036C7E4 48008929 */ bl func_8037510c +/* 8036C7E8 800DCA04 */ lwz r0, lbl_805c6824@sda21(0) +/* 8036C7EC 2C000000 */ cmpwi r0, 0x0 +/* 8036C7F0 41820018 */ beq- lbl_8036c808 +/* 8036C7F4 3C600001 */ lis r3, 1 +/* 8036C7F8 38039000 */ addi r0, r3, -0x7000 +/* 8036C7FC 3C608000 */ lis r3, 0x8000 +/* 8036C800 B00330E6 */ sth r0, 0x30e6(r3) +/* 8036C804 48000024 */ b lbl_8036c828 +lbl_8036c808: +/* 8036C808 7FC3F378 */ mr r3, r30 +/* 8036C80C 38800020 */ li r4, 0x20 +/* 8036C810 480010D1 */ bl func_8036d8e0 +/* 8036C814 3C608037 */ lis r3, func_8036c450@ha +/* 8036C818 38A3C450 */ addi r5, r3, func_8036c450@l +/* 8036C81C 7FC4F378 */ mr r4, r30 +/* 8036C820 387E0020 */ addi r3, r30, 0x20 +/* 8036C824 4800A609 */ bl func_80376e2c +lbl_8036c828: +/* 8036C828 8001001C */ lwz r0, 0x1c(r1) +/* 8036C82C 83E10014 */ lwz r31, 0x14(r1) +/* 8036C830 83C10010 */ lwz r30, 0x10(r1) +/* 8036C834 83A1000C */ lwz r29, 0xc(r1) +/* 8036C838 38210018 */ addi r1, r1, 0x18 +/* 8036C83C 7C0803A6 */ mtlr r0 +/* 8036C840 4E800020 */ blr +.size func_8036c48c, . - func_8036c48c + + +.global func_8036c844 +.type func_8036c844, @function +func_8036c844: +/* 8036C844 7C0802A6 */ mflr r0 +/* 8036C848 90010004 */ stw r0, 4(r1) +/* 8036C84C 9421FFC8 */ stwu r1, -0x38(r1) +/* 8036C850 BE810008 */ stmw r20, 8(r1) +/* 8036C854 3C608000 */ lis r3, 0x8000 +/* 8036C858 80030060 */ lwz r0, 0x60(r3) +/* 8036C85C 3C808037 */ lis r4, func_8036cb84@ha +/* 8036C860 3BC4CB84 */ addi r30, r4, func_8036cb84@l +/* 8036C864 3CA08037 */ lis r5, func_8036cb1c@ha +/* 8036C868 833E0000 */ lwz r25, 0(r30) +/* 8036C86C 3C808037 */ lis r4, func_8036cbb4@ha +/* 8036C870 38A5CB1C */ addi r5, r5, func_8036cb1c@l +/* 8036C874 3884CBB4 */ addi r4, r4, func_8036cbb4@l +/* 8036C878 3CC0804F */ lis r6, lbl_804eebb0@ha +/* 8036C87C 28000000 */ cmplwi r0, 0 +/* 8036C880 7CB82B78 */ mr r24, r5 +/* 8036C884 3BA6EBB0 */ addi r29, r6, lbl_804eebb0@l +/* 8036C888 7EE52050 */ subf r23, r5, r4 +/* 8036C88C 3A830060 */ addi r20, r3, 0x60 +/* 8036C890 4082004C */ bne- lbl_8036c8dc +/* 8036C894 387D0124 */ addi r3, r29, 0x124 +/* 8036C898 4CC63182 */ crclr 6 +/* 8036C89C 4BFFFA15 */ bl func_8036c2b0 +/* 8036C8A0 3C808037 */ lis r4, func_8036cac4@ha +/* 8036C8A4 3C608037 */ lis r3, func_8036cae8@ha +/* 8036C8A8 3803CAE8 */ addi r0, r3, func_8036cae8@l +/* 8036C8AC 3884CAC4 */ addi r4, r4, func_8036cac4@l +/* 8036C8B0 7EA40050 */ subf r21, r4, r0 +/* 8036C8B4 7E83A378 */ mr r3, r20 +/* 8036C8B8 7EA5AB78 */ mr r5, r21 +/* 8036C8BC 4BCA1B61 */ bl func_8000e41c +/* 8036C8C0 7E83A378 */ mr r3, r20 +/* 8036C8C4 7EA4AB78 */ mr r4, r21 +/* 8036C8C8 480010B1 */ bl func_8036d978 +/* 8036C8CC 7C0004AC */ sync 0 +/* 8036C8D0 7E83A378 */ mr r3, r20 +/* 8036C8D4 7EA4AB78 */ mr r4, r21 +/* 8036C8D8 48001101 */ bl func_8036d9d8 +lbl_8036c8dc: +/* 8036C8DC 3C808037 */ lis r4, func_8036cae8@ha +/* 8036C8E0 3C608037 */ lis r3, func_8036caec@ha +/* 8036C8E4 3BE4CAE8 */ addi r31, r4, func_8036cae8@l +/* 8036C8E8 3803CAEC */ addi r0, r3, func_8036caec@l +/* 8036C8EC 3B9D00E8 */ addi r28, r29, 0xe8 +/* 8036C8F0 7F7F0050 */ subf r27, r31, r0 +/* 8036C8F4 3B400000 */ li r26, 0x0 +/* 8036C8F8 48000004 */ b lbl_8036c8fc +lbl_8036c8fc: +/* 8036C8FC 3C608037 */ lis r3, func_8036cb74@ha +/* 8036C900 3AA3CB74 */ addi r21, r3, func_8036cb74@l +/* 8036C904 3EC06000 */ lis r22, 0x6000 +/* 8036C908 48000004 */ b lbl_8036c90c +lbl_8036c90c: +/* 8036C90C 48000148 */ b lbl_8036ca54 +lbl_8036c910: +/* 8036C910 806DC9FC */ lwz r3, lbl_805c681c@sda21(0) +/* 8036C914 28030000 */ cmplwi r3, 0 +/* 8036C918 41820034 */ beq- lbl_8036c94c +/* 8036C91C 80030000 */ lwz r0, 0(r3) +/* 8036C920 28000002 */ cmplwi r0, 2 +/* 8036C924 41800028 */ blt- lbl_8036c94c +/* 8036C928 7F43D378 */ mr r3, r26 +/* 8036C92C 4BFFF969 */ bl func_8036c294 +/* 8036C930 2C030000 */ cmpwi r3, 0x0 +/* 8036C934 41820018 */ beq- lbl_8036c94c +/* 8036C938 387D0140 */ addi r3, r29, 0x140 +/* 8036C93C 4CC63182 */ crclr 6 +/* 8036C940 5744063E */ clrlwi r4, r26, 0x18 +/* 8036C944 4BFFF96D */ bl func_8036c2b0 +/* 8036C948 48000104 */ b lbl_8036ca4c +lbl_8036c94c: +/* 8036C94C 5754063E */ clrlwi r20, r26, 0x18 +/* 8036C950 7F20A378 */ or r0, r25, r20 +/* 8036C954 901E0000 */ stw r0, 0(r30) +/* 8036C958 7F43D378 */ mr r3, r26 +/* 8036C95C 4BFFF939 */ bl func_8036c294 +/* 8036C960 2C030000 */ cmpwi r3, 0x0 +/* 8036C964 41820028 */ beq- lbl_8036c98c +/* 8036C968 7E84A378 */ mr r4, r20 +/* 8036C96C 4CC63182 */ crclr 6 +/* 8036C970 387D0170 */ addi r3, r29, 0x170 +/* 8036C974 4BFFF93D */ bl func_8036c2b0 +/* 8036C978 7EA3AB78 */ mr r3, r21 +/* 8036C97C 7FE4FB78 */ mr r4, r31 +/* 8036C980 7F65DB78 */ mr r5, r27 +/* 8036C984 4BCA1A99 */ bl func_8000e41c +/* 8036C988 48000090 */ b lbl_8036ca18 +lbl_8036c98c: +/* 8036C98C 7EA4AB78 */ mr r4, r21 +/* 8036C990 48000004 */ b lbl_8036c994 +lbl_8036c994: +/* 8036C994 281B0000 */ cmplwi r27, 0 +/* 8036C998 387B0003 */ addi r3, r27, 0x3 +/* 8036C99C 5463F0BE */ srwi r3, r3, 2 +/* 8036C9A0 40810078 */ ble- lbl_8036ca18 +/* 8036C9A4 5460E8FE */ srwi r0, r3, 3 +/* 8036C9A8 28000000 */ cmplwi r0, 0 +/* 8036C9AC 7C0903A6 */ mtctr r0 +/* 8036C9B0 41820054 */ beq- lbl_8036ca04 +/* 8036C9B4 48000004 */ b lbl_8036c9b8 +lbl_8036c9b8: +/* 8036C9B8 92C40000 */ stw r22, 0(r4) +/* 8036C9BC 38840004 */ addi r4, r4, 0x4 +/* 8036C9C0 92C40000 */ stw r22, 0(r4) +/* 8036C9C4 38840004 */ addi r4, r4, 0x4 +/* 8036C9C8 92C40000 */ stw r22, 0(r4) +/* 8036C9CC 38840004 */ addi r4, r4, 0x4 +/* 8036C9D0 92C40000 */ stw r22, 0(r4) +/* 8036C9D4 38840004 */ addi r4, r4, 0x4 +/* 8036C9D8 92C40000 */ stw r22, 0(r4) +/* 8036C9DC 38840004 */ addi r4, r4, 0x4 +/* 8036C9E0 92C40000 */ stw r22, 0(r4) +/* 8036C9E4 38840004 */ addi r4, r4, 0x4 +/* 8036C9E8 92C40000 */ stw r22, 0(r4) +/* 8036C9EC 38840004 */ addi r4, r4, 0x4 +/* 8036C9F0 92C40000 */ stw r22, 0(r4) +/* 8036C9F4 38840004 */ addi r4, r4, 0x4 +/* 8036C9F8 4200FFC0 */ bdnz lbl_8036c9b8 +/* 8036C9FC 70630007 */ andi. r3, r3, 7 +/* 8036CA00 41820018 */ beq- lbl_8036ca18 +lbl_8036ca04: +/* 8036CA04 7C6903A6 */ mtctr r3 +/* 8036CA08 48000004 */ b lbl_8036ca0c +lbl_8036ca0c: +/* 8036CA0C 92C40000 */ stw r22, 0(r4) +/* 8036CA10 38840004 */ addi r4, r4, 0x4 +/* 8036CA14 4200FFF8 */ bdnz lbl_8036ca0c +lbl_8036ca18: +/* 8036CA18 807C0000 */ lwz r3, 0(r28) +/* 8036CA1C 7F04C378 */ mr r4, r24 +/* 8036CA20 7EE5BB78 */ mr r5, r23 +/* 8036CA24 3E838000 */ addis r20, r3, 0x8000 +/* 8036CA28 7E83A378 */ mr r3, r20 +/* 8036CA2C 4BCA19F1 */ bl func_8000e41c +/* 8036CA30 7E83A378 */ mr r3, r20 +/* 8036CA34 7EE4BB78 */ mr r4, r23 +/* 8036CA38 48000F41 */ bl func_8036d978 +/* 8036CA3C 7C0004AC */ sync 0 +/* 8036CA40 7E83A378 */ mr r3, r20 +/* 8036CA44 7EE4BB78 */ mr r4, r23 +/* 8036CA48 48000F91 */ bl func_8036d9d8 +lbl_8036ca4c: +/* 8036CA4C 3B9C0004 */ addi r28, r28, 0x4 +/* 8036CA50 3B5A0001 */ addi r26, r26, 0x1 +lbl_8036ca54: +/* 8036CA54 5740063E */ clrlwi r0, r26, 0x18 +/* 8036CA58 2800000F */ cmplwi r0, 0xf +/* 8036CA5C 4180FEB4 */ blt+ lbl_8036c910 +/* 8036CA60 3C608000 */ lis r3, 0x8000 +/* 8036CA64 38033000 */ addi r0, r3, 0x3000 +/* 8036CA68 900DCA0C */ stw r0, lbl_805c682c@sda21(0) +/* 8036CA6C 3A800000 */ li r20, 0x0 +/* 8036CA70 48000004 */ b lbl_8036ca74 +lbl_8036ca74: +/* 8036CA74 3C608037 */ lis r3, func_8036cbb8@ha +/* 8036CA78 3AE3CBB8 */ addi r23, r3, func_8036cbb8@l +/* 8036CA7C 48000004 */ b lbl_8036ca80 +lbl_8036ca80: +/* 8036CA80 48000014 */ b lbl_8036ca94 +lbl_8036ca84: +/* 8036CA84 7E83A378 */ mr r3, r20 +/* 8036CA88 7EE4BB78 */ mr r4, r23 +/* 8036CA8C 48000061 */ bl func_8036caec +/* 8036CA90 3A940001 */ addi r20, r20, 0x1 +lbl_8036ca94: +/* 8036CA94 5680063E */ clrlwi r0, r20, 0x18 +/* 8036CA98 2800000F */ cmplwi r0, 0xf +/* 8036CA9C 4180FFE8 */ blt+ lbl_8036ca84 +/* 8036CAA0 933E0000 */ stw r25, 0(r30) +/* 8036CAA4 387D01A0 */ addi r3, r29, 0x1a0 +/* 8036CAA8 4CC63182 */ crclr 6 +/* 8036CAAC 4BFFF805 */ bl func_8036c2b0 +/* 8036CAB0 BA810008 */ lmw r20, 8(r1) +/* 8036CAB4 8001003C */ lwz r0, 0x3c(r1) +/* 8036CAB8 38210038 */ addi r1, r1, 0x38 +/* 8036CABC 7C0803A6 */ mtlr r0 +/* 8036CAC0 4E800020 */ blr +.size func_8036c844, . - func_8036c844 + + +.global func_8036cac4 +.type func_8036cac4, @function +func_8036cac4: +/* 8036CAC4 38A00040 */ li r5, 0x40 +/* 8036CAC8 7C6802A6 */ mflr r3 +/* 8036CACC 9065000C */ stw r3, 0xc(r5) +/* 8036CAD0 80650008 */ lwz r3, 8(r5) +/* 8036CAD4 64638000 */ oris r3, r3, 0x8000 +/* 8036CAD8 7C6803A6 */ mtlr r3 +/* 8036CADC 38600030 */ li r3, 0x30 +/* 8036CAE0 7C600124 */ mtmsr r3 +/* 8036CAE4 4E800020 */ blr +.size func_8036cac4, . - func_8036cac4 + + +.global func_8036cae8 +.type func_8036cae8, @function +func_8036cae8: +/* 8036CAE8 48000063 */ bla 0x60 +.size func_8036cae8, . - func_8036cae8 + + +.global func_8036caec +.type func_8036caec, @function +func_8036caec: +/* 8036CAEC 5460063E */ clrlwi r0, r3, 0x18 +/* 8036CAF0 806DCA0C */ lwz r3, lbl_805c682c@sda21(0) +/* 8036CAF4 5400103A */ slwi r0, r0, 2 +/* 8036CAF8 7CA30214 */ add r5, r3, r0 +/* 8036CAFC 80650000 */ lwz r3, 0(r5) +/* 8036CB00 90850000 */ stw r4, 0(r5) +/* 8036CB04 4E800020 */ blr +.size func_8036caec, . - func_8036caec + + +.global func_8036cb08 +.type func_8036cb08, @function +func_8036cb08: +/* 8036CB08 5460063E */ clrlwi r0, r3, 0x18 +/* 8036CB0C 806DCA0C */ lwz r3, lbl_805c682c@sda21(0) +/* 8036CB10 5400103A */ slwi r0, r0, 2 +/* 8036CB14 7C63002E */ lwzx r3, r3, r0 +/* 8036CB18 4E800020 */ blr +.size func_8036cb08, . - func_8036cb08 + + +.global func_8036cb1c +.type func_8036cb1c, @function +func_8036cb1c: +/* 8036CB1C 7C9043A6 */ mtspr 0x110, r4 +/* 8036CB20 808000C0 */ lwz r4, 0xc0(0) +/* 8036CB24 9064000C */ stw r3, 0xc(r4) +/* 8036CB28 7C7042A6 */ mfspr r3, 0x110 +/* 8036CB2C 90640010 */ stw r3, 0x10(r4) +/* 8036CB30 90A40014 */ stw r5, 0x14(r4) +/* 8036CB34 A06401A2 */ lhz r3, 0x1a2(r4) +/* 8036CB38 60630002 */ ori r3, r3, 2 +/* 8036CB3C B06401A2 */ sth r3, 0x1a2(r4) +/* 8036CB40 7C600026 */ mfcr r3 +/* 8036CB44 90640080 */ stw r3, 0x80(r4) +/* 8036CB48 7C6802A6 */ mflr r3 +/* 8036CB4C 90640084 */ stw r3, 0x84(r4) +/* 8036CB50 7C6902A6 */ mfctr r3 +/* 8036CB54 90640088 */ stw r3, 0x88(r4) +/* 8036CB58 7C6102A6 */ mfxer r3 +/* 8036CB5C 9064008C */ stw r3, 0x8c(r4) +/* 8036CB60 7C7A02A6 */ mfspr r3, 0x1a +/* 8036CB64 90640198 */ stw r3, 0x198(r4) +/* 8036CB68 7C7B02A6 */ mfspr r3, 0x1b +/* 8036CB6C 9064019C */ stw r3, 0x19c(r4) +/* 8036CB70 7C651B78 */ mr r5, r3 +.size func_8036cb1c, . - func_8036cb1c + + +.global func_8036cb74 +.type func_8036cb74, @function +func_8036cb74: +/* 8036CB74 60000000 */ nop +/* 8036CB78 7C6000A6 */ mfmsr r3 +/* 8036CB7C 60630030 */ ori r3, r3, 0x30 +/* 8036CB80 7C7B03A6 */ mtspr 0x1b, r3 +.size func_8036cb74, . - func_8036cb74 + + +.global func_8036cb84 +.type func_8036cb84, @function +func_8036cb84: +/* 8036CB84 38600000 */ li r3, 0x0 +/* 8036CB88 808000D4 */ lwz r4, 0xd4(0) +/* 8036CB8C 54A507BD */ rlwinm. r5, r5, 0, 0x1e, 0x1e +/* 8036CB90 40820014 */ bne- lbl_8036cba4 +/* 8036CB94 3CA08037 */ lis r5, func_8036cbb8@ha +/* 8036CB98 38A5CBB8 */ addi r5, r5, func_8036cbb8@l +/* 8036CB9C 7CBA03A6 */ mtspr 0x1a, r5 +/* 8036CBA0 4C000064 */ rfi +lbl_8036cba4: +/* 8036CBA4 546515BA */ rlwinm r5, r3, 2, 0x16, 0x1d +/* 8036CBA8 80A53000 */ lwz r5, 0x3000(r5) +/* 8036CBAC 7CBA03A6 */ mtspr 0x1a, r5 +/* 8036CBB0 4C000064 */ rfi +.size func_8036cb84, . - func_8036cb84 + + +.global func_8036cbb4 +.type func_8036cbb4, @function +func_8036cbb4: +/* 8036CBB4 60000000 */ nop +.size func_8036cbb4, . - func_8036cbb4 + + +.global func_8036cbb8 +.type func_8036cbb8, @function +func_8036cbb8: +/* 8036CBB8 90040000 */ stw r0, 0(r4) +/* 8036CBBC 90240004 */ stw r1, 4(r4) +/* 8036CBC0 90440008 */ stw r2, 8(r4) +/* 8036CBC4 BCC40018 */ stmw r6, 0x18(r4) +/* 8036CBC8 7C11E2A6 */ mfspr r0, 0x391 +/* 8036CBCC 900401A8 */ stw r0, 0x1a8(r4) +/* 8036CBD0 7C12E2A6 */ mfspr r0, 0x392 +/* 8036CBD4 900401AC */ stw r0, 0x1ac(r4) +/* 8036CBD8 7C13E2A6 */ mfspr r0, 0x393 +/* 8036CBDC 900401B0 */ stw r0, 0x1b0(r4) +/* 8036CBE0 7C14E2A6 */ mfspr r0, 0x394 +/* 8036CBE4 900401B4 */ stw r0, 0x1b4(r4) +/* 8036CBE8 7C15E2A6 */ mfspr r0, 0x395 +/* 8036CBEC 900401B8 */ stw r0, 0x1b8(r4) +/* 8036CBF0 7C16E2A6 */ mfspr r0, 0x396 +/* 8036CBF4 900401BC */ stw r0, 0x1bc(r4) +/* 8036CBF8 7C17E2A6 */ mfspr r0, 0x397 +/* 8036CBFC 900401C0 */ stw r0, 0x1c0(r4) +/* 8036CC00 7CB202A6 */ mfdsisr r5 +/* 8036CC04 7CD302A6 */ mfdar r6 +/* 8036CC08 9421FFF8 */ stwu r1, -8(r1) +/* 8036CC0C 48001C70 */ b func_8036e87c +.size func_8036cbb8, . - func_8036cbb8 + + +.global func_8036cc10 +.type func_8036cc10, @function +func_8036cc10: +/* 8036CC10 7C0802A6 */ mflr r0 +/* 8036CC14 90010004 */ stw r0, 4(r1) +/* 8036CC18 9421FFF8 */ stwu r1, -8(r1) +/* 8036CC1C 4BFFF5B1 */ bl func_8036c1cc +/* 8036CC20 6463A000 */ oris r3, r3, 0xa000 +/* 8036CC24 4BFFF5B1 */ bl func_8036c1d4 +/* 8036CC28 48000DE9 */ bl func_8036da10 +/* 8036CC2C 7C0004AC */ sync 0 +/* 8036CC30 38600000 */ li r3, 0x0 +/* 8036CC34 7C70E3A6 */ mtspr 0x390, r3 +/* 8036CC38 8001000C */ lwz r0, 0xc(r1) +/* 8036CC3C 38210008 */ addi r1, r1, 0x8 +/* 8036CC40 7C0803A6 */ mtlr r0 +/* 8036CC44 4E800020 */ blr +.size func_8036cc10, . - func_8036cc10 + + +.global func_8036cc48 +.type func_8036cc48, @function +func_8036cc48: +/* 8036CC48 3C60CC00 */ lis r3, 0xcc00 +/* 8036CC4C 38636000 */ addi r3, r3, 0x6000 +/* 8036CC50 80030024 */ lwz r0, 0x24(r3) +/* 8036CC54 5403063E */ clrlwi r3, r0, 0x18 +/* 8036CC58 4E800020 */ blr +.size func_8036cc48, . - func_8036cc48 + diff --git a/asm/Dolphin/os/OSAlarm.s b/asm/Dolphin/os/OSAlarm.s new file mode 100644 index 0000000..7d9dcff --- /dev/null +++ b/asm/Dolphin/os/OSAlarm.s @@ -0,0 +1,503 @@ +.include "macros.inc" + +.section .text + +.global func_8036cc5c +.type func_8036cc5c, @function +func_8036cc5c: +/* 8036CC5C 7C0802A6 */ mflr r0 +/* 8036CC60 38600008 */ li r3, 0x8 +/* 8036CC64 90010004 */ stw r0, 4(r1) +/* 8036CC68 9421FFF8 */ stwu r1, -8(r1) +/* 8036CC6C 4BFFFE9D */ bl func_8036cb08 +/* 8036CC70 3C808037 */ lis r4, func_8036d2b8@ha +/* 8036CC74 3884D2B8 */ addi r4, r4, func_8036d2b8@l +/* 8036CC78 7C032040 */ cmplw r3, r4 +/* 8036CC7C 4182001C */ beq- lbl_8036cc98 +/* 8036CC80 38000000 */ li r0, 0x0 +/* 8036CC84 386DCA28 */ addi r3, 0, lbl_805c6848@sda21 +/* 8036CC88 90030004 */ stw r0, 4(r3) +/* 8036CC8C 38600008 */ li r3, 0x8 +/* 8036CC90 900DCA28 */ stw r0, lbl_805c6848@sda21(0) +/* 8036CC94 4BFFFE59 */ bl func_8036caec +lbl_8036cc98: +/* 8036CC98 8001000C */ lwz r0, 0xc(r1) +/* 8036CC9C 38210008 */ addi r1, r1, 0x8 +/* 8036CCA0 7C0803A6 */ mtlr r0 +/* 8036CCA4 4E800020 */ blr +.size func_8036cc5c, . - func_8036cc5c + + +.global func_8036cca8 +.type func_8036cca8, @function +func_8036cca8: +/* 8036CCA8 38000000 */ li r0, 0x0 +/* 8036CCAC 90030000 */ stw r0, 0(r3) +/* 8036CCB0 4E800020 */ blr +.size func_8036cca8, . - func_8036cca8 + + +.global func_8036ccb4 +.type func_8036ccb4, @function +func_8036ccb4: +/* 8036CCB4 7C0802A6 */ mflr r0 +/* 8036CCB8 90010004 */ stw r0, 4(r1) +/* 8036CCBC 9421FFC0 */ stwu r1, -0x40(r1) +/* 8036CCC0 BF210024 */ stmw r25, 0x24(r1) +/* 8036CCC4 3B800000 */ li r28, 0x0 +/* 8036CCC8 7C7D1B78 */ mr r29, r3 +/* 8036CCCC 6F848000 */ xoris r4, r28, 0x8000 +/* 8036CCD0 3B250000 */ addi r25, r5, 0x0 +/* 8036CCD4 3BC60000 */ addi r30, r6, 0x0 +/* 8036CCD8 3BE70000 */ addi r31, r7, 0x0 +/* 8036CCDC 80030018 */ lwz r0, 0x18(r3) +/* 8036CCE0 8103001C */ lwz r8, 0x1c(r3) +/* 8036CCE4 6C038000 */ xoris r3, r0, 0x8000 +/* 8036CCE8 7C08E010 */ subfc r0, r8, r28 +/* 8036CCEC 7C632110 */ subfe r3, r3, r4 +/* 8036CCF0 7C642110 */ subfe r3, r4, r4 +/* 8036CCF4 7C6300D1 */ neg. r3, r3 +/* 8036CCF8 4182007C */ beq- lbl_8036cd74 +/* 8036CCFC 48005AE9 */ bl func_803727e4 +/* 8036CD00 80FD0020 */ lwz r7, 0x20(r29) +/* 8036CD04 6C658000 */ xoris r5, r3, 0x8000 +/* 8036CD08 811D0024 */ lwz r8, 0x24(r29) +/* 8036CD0C 6CE68000 */ xoris r6, r7, 0x8000 +/* 8036CD10 7C044010 */ subfc r0, r4, r8 +/* 8036CD14 7CA53110 */ subfe r5, r5, r6 +/* 8036CD18 7CA63110 */ subfe r5, r6, r6 +/* 8036CD1C 7CA500D1 */ neg. r5, r5 +/* 8036CD20 3BC80000 */ addi r30, r8, 0x0 +/* 8036CD24 3B270000 */ addi r25, r7, 0x0 +/* 8036CD28 4182004C */ beq- lbl_8036cd74 +/* 8036CD2C 837D0018 */ lwz r27, 0x18(r29) +/* 8036CD30 7C882010 */ subfc r4, r8, r4 +/* 8036CD34 835D001C */ lwz r26, 0x1c(r29) +/* 8036CD38 7C671910 */ subfe r3, r7, r3 +/* 8036CD3C 38BB0000 */ addi r5, r27, 0x0 +/* 8036CD40 38DA0000 */ addi r6, r26, 0x0 +/* 8036CD44 4802686D */ bl func_803935b0 +/* 8036CD48 38000001 */ li r0, 0x1 +/* 8036CD4C 7CA40014 */ addc r5, r4, r0 +/* 8036CD50 7C9B29D6 */ mullw r4, r27, r5 +/* 8036CD54 7C1A2816 */ mulhwu r0, r26, r5 +/* 8036CD58 7C63E114 */ adde r3, r3, r28 +/* 8036CD5C 7C840214 */ add r4, r4, r0 +/* 8036CD60 7C1A19D6 */ mullw r0, r26, r3 +/* 8036CD64 7C7A29D6 */ mullw r3, r26, r5 +/* 8036CD68 7C040214 */ add r0, r4, r0 +/* 8036CD6C 7FDE1814 */ addc r30, r30, r3 +/* 8036CD70 7F390114 */ adde r25, r25, r0 +lbl_8036cd74: +/* 8036CD74 93FD0000 */ stw r31, 0(r29) +/* 8036CD78 6F248000 */ xoris r4, r25, 0x8000 +/* 8036CD7C 93DD000C */ stw r30, 0xc(r29) +/* 8036CD80 933D0008 */ stw r25, 8(r29) +/* 8036CD84 80CDCA28 */ lwz r6, lbl_805c6848@sda21(0) +/* 8036CD88 480000C4 */ b lbl_8036ce4c +lbl_8036cd8c: +/* 8036CD8C 80060008 */ lwz r0, 8(r6) +/* 8036CD90 80A6000C */ lwz r5, 0xc(r6) +/* 8036CD94 6C038000 */ xoris r3, r0, 0x8000 +/* 8036CD98 7C05F010 */ subfc r0, r5, r30 +/* 8036CD9C 7C632110 */ subfe r3, r3, r4 +/* 8036CDA0 7C642110 */ subfe r3, r4, r4 +/* 8036CDA4 7C6300D1 */ neg. r3, r3 +/* 8036CDA8 418200A0 */ beq- lbl_8036ce48 +/* 8036CDAC 80060010 */ lwz r0, 0x10(r6) +/* 8036CDB0 901D0010 */ stw r0, 0x10(r29) +/* 8036CDB4 93A60010 */ stw r29, 0x10(r6) +/* 8036CDB8 90DD0014 */ stw r6, 0x14(r29) +/* 8036CDBC 807D0010 */ lwz r3, 0x10(r29) +/* 8036CDC0 28030000 */ cmplwi r3, 0 +/* 8036CDC4 4182000C */ beq- lbl_8036cdd0 +/* 8036CDC8 93A30014 */ stw r29, 0x14(r3) +/* 8036CDCC 48000124 */ b lbl_8036cef0 +lbl_8036cdd0: +/* 8036CDD0 93ADCA28 */ stw r29, lbl_805c6848@sda21(0) +/* 8036CDD4 48005A11 */ bl func_803727e4 +/* 8036CDD8 80DD000C */ lwz r6, 0xc(r29) +/* 8036CDDC 38E00000 */ li r7, 0x0 +/* 8036CDE0 801D0008 */ lwz r0, 8(r29) +/* 8036CDE4 6CE58000 */ xoris r5, r7, 0x8000 +/* 8036CDE8 7D043010 */ subfc r8, r4, r6 +/* 8036CDEC 7C030110 */ subfe r0, r3, r0 +/* 8036CDF0 6C068000 */ xoris r6, r0, 0x8000 +/* 8036CDF4 7C074010 */ subfc r0, r7, r8 +/* 8036CDF8 7CA53110 */ subfe r5, r5, r6 +/* 8036CDFC 7CA63110 */ subfe r5, r6, r6 +/* 8036CE00 7CA500D1 */ neg. r5, r5 +/* 8036CE04 41820010 */ beq- lbl_8036ce14 +/* 8036CE08 38600000 */ li r3, 0x0 +/* 8036CE0C 4BFFF39D */ bl func_8036c1a8 +/* 8036CE10 480000E0 */ b lbl_8036cef0 +lbl_8036ce14: +/* 8036CE14 3C808000 */ lis r4, 0x8000 +/* 8036CE18 6CE38000 */ xoris r3, r7, 0x8000 +/* 8036CE1C 7C044010 */ subfc r0, r4, r8 +/* 8036CE20 7C633110 */ subfe r3, r3, r6 +/* 8036CE24 7C663110 */ subfe r3, r6, r6 +/* 8036CE28 7C6300D1 */ neg. r3, r3 +/* 8036CE2C 41820010 */ beq- lbl_8036ce3c +/* 8036CE30 7D034378 */ mr r3, r8 +/* 8036CE34 4BFFF375 */ bl func_8036c1a8 +/* 8036CE38 480000B8 */ b lbl_8036cef0 +lbl_8036ce3c: +/* 8036CE3C 3864FFFF */ addi r3, r4, -0x1 +/* 8036CE40 4BFFF369 */ bl func_8036c1a8 +/* 8036CE44 480000AC */ b lbl_8036cef0 +lbl_8036ce48: +/* 8036CE48 80C60014 */ lwz r6, 0x14(r6) +lbl_8036ce4c: +/* 8036CE4C 28060000 */ cmplwi r6, 0 +/* 8036CE50 4082FF3C */ bne+ lbl_8036cd8c +/* 8036CE54 3BC00000 */ li r30, 0x0 +/* 8036CE58 93DD0014 */ stw r30, 0x14(r29) +/* 8036CE5C 386DCA28 */ addi r3, 0, lbl_805c6848@sda21 +/* 8036CE60 80830004 */ lwz r4, 4(r3) +/* 8036CE64 97A30004 */ stwu r29, 4(r3) +/* 8036CE68 28040000 */ cmplwi r4, 0 +/* 8036CE6C 909D0010 */ stw r4, 0x10(r29) +/* 8036CE70 4182000C */ beq- lbl_8036ce7c +/* 8036CE74 93A40014 */ stw r29, 0x14(r4) +/* 8036CE78 48000078 */ b lbl_8036cef0 +lbl_8036ce7c: +/* 8036CE7C 93A30000 */ stw r29, 0(r3) +/* 8036CE80 93ADCA28 */ stw r29, lbl_805c6848@sda21(0) +/* 8036CE84 48005961 */ bl func_803727e4 +/* 8036CE88 80DD000C */ lwz r6, 0xc(r29) +/* 8036CE8C 6FC58000 */ xoris r5, r30, 0x8000 +/* 8036CE90 801D0008 */ lwz r0, 8(r29) +/* 8036CE94 7CE43010 */ subfc r7, r4, r6 +/* 8036CE98 7C030110 */ subfe r0, r3, r0 +/* 8036CE9C 6C068000 */ xoris r6, r0, 0x8000 +/* 8036CEA0 7C1E3810 */ subfc r0, r30, r7 +/* 8036CEA4 7CA53110 */ subfe r5, r5, r6 +/* 8036CEA8 7CA63110 */ subfe r5, r6, r6 +/* 8036CEAC 7CA500D1 */ neg. r5, r5 +/* 8036CEB0 41820010 */ beq- lbl_8036cec0 +/* 8036CEB4 38600000 */ li r3, 0x0 +/* 8036CEB8 4BFFF2F1 */ bl func_8036c1a8 +/* 8036CEBC 48000034 */ b lbl_8036cef0 +lbl_8036cec0: +/* 8036CEC0 3C808000 */ lis r4, 0x8000 +/* 8036CEC4 6FC38000 */ xoris r3, r30, 0x8000 +/* 8036CEC8 7C043810 */ subfc r0, r4, r7 +/* 8036CECC 7C633110 */ subfe r3, r3, r6 +/* 8036CED0 7C663110 */ subfe r3, r6, r6 +/* 8036CED4 7C6300D1 */ neg. r3, r3 +/* 8036CED8 41820010 */ beq- lbl_8036cee8 +/* 8036CEDC 7CE33B78 */ mr r3, r7 +/* 8036CEE0 4BFFF2C9 */ bl func_8036c1a8 +/* 8036CEE4 4800000C */ b lbl_8036cef0 +lbl_8036cee8: +/* 8036CEE8 3864FFFF */ addi r3, r4, -0x1 +/* 8036CEEC 4BFFF2BD */ bl func_8036c1a8 +lbl_8036cef0: +/* 8036CEF0 BB210024 */ lmw r25, 0x24(r1) +/* 8036CEF4 80010044 */ lwz r0, 0x44(r1) +/* 8036CEF8 38210040 */ addi r1, r1, 0x40 +/* 8036CEFC 7C0803A6 */ mtlr r0 +/* 8036CF00 4E800020 */ blr +.size func_8036ccb4, . - func_8036ccb4 + + +.global func_8036cf04 +.type func_8036cf04, @function +func_8036cf04: +/* 8036CF04 7C0802A6 */ mflr r0 +/* 8036CF08 90010004 */ stw r0, 4(r1) +/* 8036CF0C 9421FFC8 */ stwu r1, -0x38(r1) +/* 8036CF10 BF610024 */ stmw r27, 0x24(r1) +/* 8036CF14 3B630000 */ addi r27, r3, 0x0 +/* 8036CF18 3BA50000 */ addi r29, r5, 0x0 +/* 8036CF1C 3B860000 */ addi r28, r6, 0x0 +/* 8036CF20 3BC70000 */ addi r30, r7, 0x0 +/* 8036CF24 48001BB1 */ bl func_8036ead4 +/* 8036CF28 38000000 */ li r0, 0x0 +/* 8036CF2C 901B001C */ stw r0, 0x1c(r27) +/* 8036CF30 7C7F1B78 */ mr r31, r3 +/* 8036CF34 901B0018 */ stw r0, 0x18(r27) +/* 8036CF38 480058AD */ bl func_803727e4 +/* 8036CF3C 7CDC2014 */ addc r6, r28, r4 +/* 8036CF40 7CBD1914 */ adde r5, r29, r3 +/* 8036CF44 387B0000 */ addi r3, r27, 0x0 +/* 8036CF48 38FE0000 */ addi r7, r30, 0x0 +/* 8036CF4C 4BFFFD69 */ bl func_8036ccb4 +/* 8036CF50 7FE3FB78 */ mr r3, r31 +/* 8036CF54 48001BA9 */ bl func_8036eafc +/* 8036CF58 BB610024 */ lmw r27, 0x24(r1) +/* 8036CF5C 8001003C */ lwz r0, 0x3c(r1) +/* 8036CF60 38210038 */ addi r1, r1, 0x38 +/* 8036CF64 7C0803A6 */ mtlr r0 +/* 8036CF68 4E800020 */ blr +.size func_8036cf04, . - func_8036cf04 + + +.global func_8036cf6c +.type func_8036cf6c, @function +func_8036cf6c: +/* 8036CF6C 7C0802A6 */ mflr r0 +/* 8036CF70 90010004 */ stw r0, 4(r1) +/* 8036CF74 9421FFE0 */ stwu r1, -0x20(r1) +/* 8036CF78 93E1001C */ stw r31, 0x1c(r1) +/* 8036CF7C 93C10018 */ stw r30, 0x18(r1) +/* 8036CF80 7C7E1B78 */ mr r30, r3 +/* 8036CF84 93A10014 */ stw r29, 0x14(r1) +/* 8036CF88 48001B4D */ bl func_8036ead4 +/* 8036CF8C 801E0000 */ lwz r0, 0(r30) +/* 8036CF90 3BE30000 */ addi r31, r3, 0x0 +/* 8036CF94 28000000 */ cmplwi r0, 0 +/* 8036CF98 40820010 */ bne- lbl_8036cfa8 +/* 8036CF9C 7FE3FB78 */ mr r3, r31 +/* 8036CFA0 48001B5D */ bl func_8036eafc +/* 8036CFA4 480000C8 */ b lbl_8036d06c +lbl_8036cfa8: +/* 8036CFA8 83BE0014 */ lwz r29, 0x14(r30) +/* 8036CFAC 281D0000 */ cmplwi r29, 0 +/* 8036CFB0 40820014 */ bne- lbl_8036cfc4 +/* 8036CFB4 801E0010 */ lwz r0, 0x10(r30) +/* 8036CFB8 386DCA28 */ addi r3, 0, lbl_805c6848@sda21 +/* 8036CFBC 90030004 */ stw r0, 4(r3) +/* 8036CFC0 4800000C */ b lbl_8036cfcc +lbl_8036cfc4: +/* 8036CFC4 801E0010 */ lwz r0, 0x10(r30) +/* 8036CFC8 901D0010 */ stw r0, 0x10(r29) +lbl_8036cfcc: +/* 8036CFCC 807E0010 */ lwz r3, 0x10(r30) +/* 8036CFD0 28030000 */ cmplwi r3, 0 +/* 8036CFD4 4182000C */ beq- lbl_8036cfe0 +/* 8036CFD8 93A30014 */ stw r29, 0x14(r3) +/* 8036CFDC 48000080 */ b lbl_8036d05c +lbl_8036cfe0: +/* 8036CFE0 281D0000 */ cmplwi r29, 0 +/* 8036CFE4 93ADCA28 */ stw r29, lbl_805c6848@sda21(0) +/* 8036CFE8 41820074 */ beq- lbl_8036d05c +/* 8036CFEC 480057F9 */ bl func_803727e4 +/* 8036CFF0 80DD000C */ lwz r6, 0xc(r29) +/* 8036CFF4 38E00000 */ li r7, 0x0 +/* 8036CFF8 801D0008 */ lwz r0, 8(r29) +/* 8036CFFC 6CE58000 */ xoris r5, r7, 0x8000 +/* 8036D000 7D043010 */ subfc r8, r4, r6 +/* 8036D004 7C030110 */ subfe r0, r3, r0 +/* 8036D008 6C068000 */ xoris r6, r0, 0x8000 +/* 8036D00C 7C074010 */ subfc r0, r7, r8 +/* 8036D010 7CA53110 */ subfe r5, r5, r6 +/* 8036D014 7CA63110 */ subfe r5, r6, r6 +/* 8036D018 7CA500D1 */ neg. r5, r5 +/* 8036D01C 41820010 */ beq- lbl_8036d02c +/* 8036D020 38600000 */ li r3, 0x0 +/* 8036D024 4BFFF185 */ bl func_8036c1a8 +/* 8036D028 48000034 */ b lbl_8036d05c +lbl_8036d02c: +/* 8036D02C 3C808000 */ lis r4, 0x8000 +/* 8036D030 6CE38000 */ xoris r3, r7, 0x8000 +/* 8036D034 7C044010 */ subfc r0, r4, r8 +/* 8036D038 7C633110 */ subfe r3, r3, r6 +/* 8036D03C 7C663110 */ subfe r3, r6, r6 +/* 8036D040 7C6300D1 */ neg. r3, r3 +/* 8036D044 41820010 */ beq- lbl_8036d054 +/* 8036D048 7D034378 */ mr r3, r8 +/* 8036D04C 4BFFF15D */ bl func_8036c1a8 +/* 8036D050 4800000C */ b lbl_8036d05c +lbl_8036d054: +/* 8036D054 3864FFFF */ addi r3, r4, -0x1 +/* 8036D058 4BFFF151 */ bl func_8036c1a8 +lbl_8036d05c: +/* 8036D05C 38000000 */ li r0, 0x0 +/* 8036D060 901E0000 */ stw r0, 0(r30) +/* 8036D064 7FE3FB78 */ mr r3, r31 +/* 8036D068 48001A95 */ bl func_8036eafc +lbl_8036d06c: +/* 8036D06C 80010024 */ lwz r0, 0x24(r1) +/* 8036D070 83E1001C */ lwz r31, 0x1c(r1) +/* 8036D074 83C10018 */ lwz r30, 0x18(r1) +/* 8036D078 83A10014 */ lwz r29, 0x14(r1) +/* 8036D07C 38210020 */ addi r1, r1, 0x20 +/* 8036D080 7C0803A6 */ mtlr r0 +/* 8036D084 4E800020 */ blr +.size func_8036cf6c, . - func_8036cf6c + + +.global func_8036d088 +.type func_8036d088, @function +func_8036d088: +/* 8036D088 7C0802A6 */ mflr r0 +/* 8036D08C 90010004 */ stw r0, 4(r1) +/* 8036D090 9421FD10 */ stwu r1, -0x2f0(r1) +/* 8036D094 93E102EC */ stw r31, 0x2ec(r1) +/* 8036D098 93C102E8 */ stw r30, 0x2e8(r1) +/* 8036D09C 93A102E4 */ stw r29, 0x2e4(r1) +/* 8036D0A0 7C9D2378 */ mr r29, r4 +/* 8036D0A4 938102E0 */ stw r28, 0x2e0(r1) +/* 8036D0A8 4800573D */ bl func_803727e4 +/* 8036D0AC 800DCA28 */ lwz r0, lbl_805c6848@sda21(0) +/* 8036D0B0 3B840000 */ addi r28, r4, 0x0 +/* 8036D0B4 3BC30000 */ addi r30, r3, 0x0 +/* 8036D0B8 28000000 */ cmplwi r0, 0 +/* 8036D0BC 7C1F0378 */ mr r31, r0 +/* 8036D0C0 4082000C */ bne- lbl_8036d0cc +/* 8036D0C4 7FA3EB78 */ mr r3, r29 +/* 8036D0C8 480010B9 */ bl func_8036e180 +lbl_8036d0cc: +/* 8036D0CC 801F0008 */ lwz r0, 8(r31) +/* 8036D0D0 6FC48000 */ xoris r4, r30, 0x8000 +/* 8036D0D4 80BF000C */ lwz r5, 0xc(r31) +/* 8036D0D8 6C038000 */ xoris r3, r0, 0x8000 +/* 8036D0DC 7C05E010 */ subfc r0, r5, r28 +/* 8036D0E0 7C632110 */ subfe r3, r3, r4 +/* 8036D0E4 7C642110 */ subfe r3, r4, r4 +/* 8036D0E8 7C6300D1 */ neg. r3, r3 +/* 8036D0EC 4182007C */ beq- lbl_8036d168 +/* 8036D0F0 480056F5 */ bl func_803727e4 +/* 8036D0F4 80DF000C */ lwz r6, 0xc(r31) +/* 8036D0F8 38E00000 */ li r7, 0x0 +/* 8036D0FC 801F0008 */ lwz r0, 8(r31) +/* 8036D100 6CE58000 */ xoris r5, r7, 0x8000 +/* 8036D104 7D043010 */ subfc r8, r4, r6 +/* 8036D108 7C030110 */ subfe r0, r3, r0 +/* 8036D10C 6C068000 */ xoris r6, r0, 0x8000 +/* 8036D110 7C074010 */ subfc r0, r7, r8 +/* 8036D114 7CA53110 */ subfe r5, r5, r6 +/* 8036D118 7CA63110 */ subfe r5, r6, r6 +/* 8036D11C 7CA500D1 */ neg. r5, r5 +/* 8036D120 41820010 */ beq- lbl_8036d130 +/* 8036D124 38600000 */ li r3, 0x0 +/* 8036D128 4BFFF081 */ bl func_8036c1a8 +/* 8036D12C 48000034 */ b lbl_8036d160 +lbl_8036d130: +/* 8036D130 3C808000 */ lis r4, 0x8000 +/* 8036D134 6CE38000 */ xoris r3, r7, 0x8000 +/* 8036D138 7C044010 */ subfc r0, r4, r8 +/* 8036D13C 7C633110 */ subfe r3, r3, r6 +/* 8036D140 7C663110 */ subfe r3, r6, r6 +/* 8036D144 7C6300D1 */ neg. r3, r3 +/* 8036D148 41820010 */ beq- lbl_8036d158 +/* 8036D14C 7D034378 */ mr r3, r8 +/* 8036D150 4BFFF059 */ bl func_8036c1a8 +/* 8036D154 4800000C */ b lbl_8036d160 +lbl_8036d158: +/* 8036D158 3864FFFF */ addi r3, r4, -0x1 +/* 8036D15C 4BFFF04D */ bl func_8036c1a8 +lbl_8036d160: +/* 8036D160 7FA3EB78 */ mr r3, r29 +/* 8036D164 4800101D */ bl func_8036e180 +lbl_8036d168: +/* 8036D168 807F0014 */ lwz r3, 0x14(r31) +/* 8036D16C 28030000 */ cmplwi r3, 0 +/* 8036D170 906DCA28 */ stw r3, lbl_805c6848@sda21(0) +/* 8036D174 40820014 */ bne- lbl_8036d188 +/* 8036D178 38000000 */ li r0, 0x0 +/* 8036D17C 386DCA28 */ addi r3, 0, lbl_805c6848@sda21 +/* 8036D180 90030004 */ stw r0, 4(r3) +/* 8036D184 4800000C */ b lbl_8036d190 +lbl_8036d188: +/* 8036D188 38000000 */ li r0, 0x0 +/* 8036D18C 90030010 */ stw r0, 0x10(r3) +lbl_8036d190: +/* 8036D190 83DF0000 */ lwz r30, 0(r31) +/* 8036D194 38C00000 */ li r6, 0x0 +/* 8036D198 6CC48000 */ xoris r4, r6, 0x8000 +/* 8036D19C 90DF0000 */ stw r6, 0(r31) +/* 8036D1A0 801F0018 */ lwz r0, 0x18(r31) +/* 8036D1A4 80BF001C */ lwz r5, 0x1c(r31) +/* 8036D1A8 6C038000 */ xoris r3, r0, 0x8000 +/* 8036D1AC 7C053010 */ subfc r0, r5, r6 +/* 8036D1B0 7C632110 */ subfe r3, r3, r4 +/* 8036D1B4 7C642110 */ subfe r3, r4, r4 +/* 8036D1B8 7C6300D1 */ neg. r3, r3 +/* 8036D1BC 41820018 */ beq- lbl_8036d1d4 +/* 8036D1C0 387F0000 */ addi r3, r31, 0x0 +/* 8036D1C4 38FE0000 */ addi r7, r30, 0x0 +/* 8036D1C8 38C00000 */ li r6, 0x0 +/* 8036D1CC 38A00000 */ li r5, 0x0 +/* 8036D1D0 4BFFFAE5 */ bl func_8036ccb4 +lbl_8036d1d4: +/* 8036D1D4 838DCA28 */ lwz r28, lbl_805c6848@sda21(0) +/* 8036D1D8 281C0000 */ cmplwi r28, 0 +/* 8036D1DC 41820074 */ beq- lbl_8036d250 +/* 8036D1E0 48005605 */ bl func_803727e4 +/* 8036D1E4 80DC000C */ lwz r6, 0xc(r28) +/* 8036D1E8 38E00000 */ li r7, 0x0 +/* 8036D1EC 801C0008 */ lwz r0, 8(r28) +/* 8036D1F0 6CE58000 */ xoris r5, r7, 0x8000 +/* 8036D1F4 7D043010 */ subfc r8, r4, r6 +/* 8036D1F8 7C030110 */ subfe r0, r3, r0 +/* 8036D1FC 6C068000 */ xoris r6, r0, 0x8000 +/* 8036D200 7C074010 */ subfc r0, r7, r8 +/* 8036D204 7CA53110 */ subfe r5, r5, r6 +/* 8036D208 7CA63110 */ subfe r5, r6, r6 +/* 8036D20C 7CA500D1 */ neg. r5, r5 +/* 8036D210 41820010 */ beq- lbl_8036d220 +/* 8036D214 38600000 */ li r3, 0x0 +/* 8036D218 4BFFEF91 */ bl func_8036c1a8 +/* 8036D21C 48000034 */ b lbl_8036d250 +lbl_8036d220: +/* 8036D220 3C808000 */ lis r4, 0x8000 +/* 8036D224 6CE38000 */ xoris r3, r7, 0x8000 +/* 8036D228 7C044010 */ subfc r0, r4, r8 +/* 8036D22C 7C633110 */ subfe r3, r3, r6 +/* 8036D230 7C663110 */ subfe r3, r6, r6 +/* 8036D234 7C6300D1 */ neg. r3, r3 +/* 8036D238 41820010 */ beq- lbl_8036d248 +/* 8036D23C 7D034378 */ mr r3, r8 +/* 8036D240 4BFFEF69 */ bl func_8036c1a8 +/* 8036D244 4800000C */ b lbl_8036d250 +lbl_8036d248: +/* 8036D248 3864FFFF */ addi r3, r4, -0x1 +/* 8036D24C 4BFFEF5D */ bl func_8036c1a8 +lbl_8036d250: +/* 8036D250 48004565 */ bl func_803717b4 +/* 8036D254 38610018 */ addi r3, r1, 0x18 +/* 8036D258 48001009 */ bl func_8036e260 +/* 8036D25C 38610018 */ addi r3, r1, 0x18 +/* 8036D260 48000E39 */ bl func_8036e098 +/* 8036D264 399E0000 */ addi r12, r30, 0x0 +/* 8036D268 7D8803A6 */ mtlr r12 +/* 8036D26C 387F0000 */ addi r3, r31, 0x0 +/* 8036D270 389D0000 */ addi r4, r29, 0x0 +/* 8036D274 4E800021 */ blrl +/* 8036D278 38610018 */ addi r3, r1, 0x18 +/* 8036D27C 48000FE5 */ bl func_8036e260 +/* 8036D280 7FA3EB78 */ mr r3, r29 +/* 8036D284 48000E15 */ bl func_8036e098 +/* 8036D288 4800456D */ bl func_803717f4 +/* 8036D28C 48004A5D */ bl func_80371ce8 +/* 8036D290 7FA3EB78 */ mr r3, r29 +/* 8036D294 48000EED */ bl func_8036e180 +/* 8036D298 800102F4 */ lwz r0, 0x2f4(r1) +/* 8036D29C 83E102EC */ lwz r31, 0x2ec(r1) +/* 8036D2A0 83C102E8 */ lwz r30, 0x2e8(r1) +/* 8036D2A4 83A102E4 */ lwz r29, 0x2e4(r1) +/* 8036D2A8 838102E0 */ lwz r28, 0x2e0(r1) +/* 8036D2AC 382102F0 */ addi r1, r1, 0x2f0 +/* 8036D2B0 7C0803A6 */ mtlr r0 +/* 8036D2B4 4E800020 */ blr +.size func_8036d088, . - func_8036d088 + + +.global func_8036d2b8 +.type func_8036d2b8, @function +func_8036d2b8: +/* 8036D2B8 90040000 */ stw r0, 0(r4) +/* 8036D2BC 90240004 */ stw r1, 4(r4) +/* 8036D2C0 90440008 */ stw r2, 8(r4) +/* 8036D2C4 BCC40018 */ stmw r6, 0x18(r4) +/* 8036D2C8 7C11E2A6 */ mfspr r0, 0x391 +/* 8036D2CC 900401A8 */ stw r0, 0x1a8(r4) +/* 8036D2D0 7C12E2A6 */ mfspr r0, 0x392 +/* 8036D2D4 900401AC */ stw r0, 0x1ac(r4) +/* 8036D2D8 7C13E2A6 */ mfspr r0, 0x393 +/* 8036D2DC 900401B0 */ stw r0, 0x1b0(r4) +/* 8036D2E0 7C14E2A6 */ mfspr r0, 0x394 +/* 8036D2E4 900401B4 */ stw r0, 0x1b4(r4) +/* 8036D2E8 7C15E2A6 */ mfspr r0, 0x395 +/* 8036D2EC 900401B8 */ stw r0, 0x1b8(r4) +/* 8036D2F0 7C16E2A6 */ mfspr r0, 0x396 +/* 8036D2F4 900401BC */ stw r0, 0x1bc(r4) +/* 8036D2F8 7C17E2A6 */ mfspr r0, 0x397 +/* 8036D2FC 900401C0 */ stw r0, 0x1c0(r4) +/* 8036D300 9421FFF8 */ stwu r1, -8(r1) +/* 8036D304 4BFFFD84 */ b func_8036d088 +.size func_8036d2b8, . - func_8036d2b8 + diff --git a/asm/Dolphin/os/OSAlloc.s b/asm/Dolphin/os/OSAlloc.s new file mode 100644 index 0000000..4c5d756 --- /dev/null +++ b/asm/Dolphin/os/OSAlloc.s @@ -0,0 +1,260 @@ +.include "macros.inc" + +.section .text + +.global func_8036d308 +.type func_8036d308, @function +func_8036d308: +/* 8036D308 38E30000 */ addi r7, r3, 0x0 +/* 8036D30C 38C00000 */ li r6, 0x0 +/* 8036D310 48000014 */ b lbl_8036d324 +lbl_8036d314: +/* 8036D314 7C043840 */ cmplw r4, r7 +/* 8036D318 40810014 */ ble- lbl_8036d32c +/* 8036D31C 7CE63B78 */ mr r6, r7 +/* 8036D320 80E70004 */ lwz r7, 4(r7) +lbl_8036d324: +/* 8036D324 28070000 */ cmplwi r7, 0 +/* 8036D328 4082FFEC */ bne+ lbl_8036d314 +lbl_8036d32c: +/* 8036D32C 90E40004 */ stw r7, 4(r4) +/* 8036D330 28070000 */ cmplwi r7, 0 +/* 8036D334 90C40000 */ stw r6, 0(r4) +/* 8036D338 41820038 */ beq- lbl_8036d370 +/* 8036D33C 90870000 */ stw r4, 0(r7) +/* 8036D340 80A40008 */ lwz r5, 8(r4) +/* 8036D344 7C042A14 */ add r0, r4, r5 +/* 8036D348 7C003840 */ cmplw r0, r7 +/* 8036D34C 40820024 */ bne- lbl_8036d370 +/* 8036D350 80070008 */ lwz r0, 8(r7) +/* 8036D354 7C050214 */ add r0, r5, r0 +/* 8036D358 90040008 */ stw r0, 8(r4) +/* 8036D35C 80E70004 */ lwz r7, 4(r7) +/* 8036D360 28070000 */ cmplwi r7, 0 +/* 8036D364 90E40004 */ stw r7, 4(r4) +/* 8036D368 41820008 */ beq- lbl_8036d370 +/* 8036D36C 90870000 */ stw r4, 0(r7) +lbl_8036d370: +/* 8036D370 28060000 */ cmplwi r6, 0 +/* 8036D374 41820038 */ beq- lbl_8036d3ac +/* 8036D378 90860004 */ stw r4, 4(r6) +/* 8036D37C 80A60008 */ lwz r5, 8(r6) +/* 8036D380 7C062A14 */ add r0, r6, r5 +/* 8036D384 7C002040 */ cmplw r0, r4 +/* 8036D388 4C820020 */ bnelr- +/* 8036D38C 80040008 */ lwz r0, 8(r4) +/* 8036D390 28070000 */ cmplwi r7, 0 +/* 8036D394 7C050214 */ add r0, r5, r0 +/* 8036D398 90060008 */ stw r0, 8(r6) +/* 8036D39C 90E60004 */ stw r7, 4(r6) +/* 8036D3A0 4D820020 */ beqlr- +/* 8036D3A4 90C70000 */ stw r6, 0(r7) +/* 8036D3A8 4E800020 */ blr +lbl_8036d3ac: +/* 8036D3AC 7C832378 */ mr r3, r4 +/* 8036D3B0 4E800020 */ blr +.size func_8036d308, . - func_8036d308 + + +.global func_8036d3b4 +.type func_8036d3b4, @function +func_8036d3b4: +/* 8036D3B4 1C03000C */ mulli r0, r3, 0xc +/* 8036D3B8 806DCA30 */ lwz r3, lbl_805c6850@sda21(0) +/* 8036D3BC 7CA30214 */ add r5, r3, r0 +/* 8036D3C0 3804003F */ addi r0, r4, 0x3f +/* 8036D3C4 80C50004 */ lwz r6, 4(r5) +/* 8036D3C8 54030034 */ rlwinm r3, r0, 0, 0, 0x1a +/* 8036D3CC 48000014 */ b lbl_8036d3e0 +lbl_8036d3d0: +/* 8036D3D0 80060008 */ lwz r0, 8(r6) +/* 8036D3D4 7C030000 */ cmpw r3, r0 +/* 8036D3D8 40810010 */ ble- lbl_8036d3e8 +/* 8036D3DC 80C60004 */ lwz r6, 4(r6) +lbl_8036d3e0: +/* 8036D3E0 28060000 */ cmplwi r6, 0 +/* 8036D3E4 4082FFEC */ bne+ lbl_8036d3d0 +lbl_8036d3e8: +/* 8036D3E8 28060000 */ cmplwi r6, 0 +/* 8036D3EC 4082000C */ bne- lbl_8036d3f8 +/* 8036D3F0 38600000 */ li r3, 0x0 +/* 8036D3F4 4E800020 */ blr +lbl_8036d3f8: +/* 8036D3F8 80060008 */ lwz r0, 8(r6) +/* 8036D3FC 7C030050 */ subf r0, r3, r0 +/* 8036D400 28000040 */ cmplwi r0, 0x40 +/* 8036D404 40800040 */ bge- lbl_8036d444 +/* 8036D408 80860004 */ lwz r4, 4(r6) +/* 8036D40C 80650004 */ lwz r3, 4(r5) +/* 8036D410 28040000 */ cmplwi r4, 0 +/* 8036D414 4182000C */ beq- lbl_8036d420 +/* 8036D418 80060000 */ lwz r0, 0(r6) +/* 8036D41C 90040000 */ stw r0, 0(r4) +lbl_8036d420: +/* 8036D420 80860000 */ lwz r4, 0(r6) +/* 8036D424 28040000 */ cmplwi r4, 0 +/* 8036D428 4082000C */ bne- lbl_8036d434 +/* 8036D42C 80660004 */ lwz r3, 4(r6) +/* 8036D430 4800000C */ b lbl_8036d43c +lbl_8036d434: +/* 8036D434 80060004 */ lwz r0, 4(r6) +/* 8036D438 90040004 */ stw r0, 4(r4) +lbl_8036d43c: +/* 8036D43C 90650004 */ stw r3, 4(r5) +/* 8036D440 48000048 */ b lbl_8036d488 +lbl_8036d444: +/* 8036D444 90660008 */ stw r3, 8(r6) +/* 8036D448 7C861A14 */ add r4, r6, r3 +/* 8036D44C 90040008 */ stw r0, 8(r4) +/* 8036D450 80060000 */ lwz r0, 0(r6) +/* 8036D454 90040000 */ stw r0, 0(r4) +/* 8036D458 80060004 */ lwz r0, 4(r6) +/* 8036D45C 90040004 */ stw r0, 4(r4) +/* 8036D460 80640004 */ lwz r3, 4(r4) +/* 8036D464 28030000 */ cmplwi r3, 0 +/* 8036D468 41820008 */ beq- lbl_8036d470 +/* 8036D46C 90830000 */ stw r4, 0(r3) +lbl_8036d470: +/* 8036D470 80640000 */ lwz r3, 0(r4) +/* 8036D474 28030000 */ cmplwi r3, 0 +/* 8036D478 4182000C */ beq- lbl_8036d484 +/* 8036D47C 90830004 */ stw r4, 4(r3) +/* 8036D480 48000008 */ b lbl_8036d488 +lbl_8036d484: +/* 8036D484 90850004 */ stw r4, 4(r5) +lbl_8036d488: +/* 8036D488 80650008 */ lwz r3, 8(r5) +/* 8036D48C 38000000 */ li r0, 0x0 +/* 8036D490 90660004 */ stw r3, 4(r6) +/* 8036D494 28030000 */ cmplwi r3, 0 +/* 8036D498 90060000 */ stw r0, 0(r6) +/* 8036D49C 41820008 */ beq- lbl_8036d4a4 +/* 8036D4A0 90C30000 */ stw r6, 0(r3) +lbl_8036d4a4: +/* 8036D4A4 90C50008 */ stw r6, 8(r5) +/* 8036D4A8 38660020 */ addi r3, r6, 0x20 +/* 8036D4AC 4E800020 */ blr +.size func_8036d3b4, . - func_8036d3b4 + + +.global func_8036d4b0 +.type func_8036d4b0, @function +func_8036d4b0: +/* 8036D4B0 7C0802A6 */ mflr r0 +/* 8036D4B4 38C4FFE0 */ addi r6, r4, -0x20 +/* 8036D4B8 90010004 */ stw r0, 4(r1) +/* 8036D4BC 1C03000C */ mulli r0, r3, 0xc +/* 8036D4C0 9421FFE8 */ stwu r1, -0x18(r1) +/* 8036D4C4 93E10014 */ stw r31, 0x14(r1) +/* 8036D4C8 808DCA30 */ lwz r4, lbl_805c6850@sda21(0) +/* 8036D4CC 80660004 */ lwz r3, 4(r6) +/* 8036D4D0 7FE40214 */ add r31, r4, r0 +/* 8036D4D4 28030000 */ cmplwi r3, 0 +/* 8036D4D8 80BF0008 */ lwz r5, 8(r31) +/* 8036D4DC 7CC43378 */ mr r4, r6 +/* 8036D4E0 4182000C */ beq- lbl_8036d4ec +/* 8036D4E4 80040000 */ lwz r0, 0(r4) +/* 8036D4E8 90030000 */ stw r0, 0(r3) +lbl_8036d4ec: +/* 8036D4EC 80640000 */ lwz r3, 0(r4) +/* 8036D4F0 28030000 */ cmplwi r3, 0 +/* 8036D4F4 4082000C */ bne- lbl_8036d500 +/* 8036D4F8 80A40004 */ lwz r5, 4(r4) +/* 8036D4FC 4800000C */ b lbl_8036d508 +lbl_8036d500: +/* 8036D500 80040004 */ lwz r0, 4(r4) +/* 8036D504 90030004 */ stw r0, 4(r3) +lbl_8036d508: +/* 8036D508 90BF0008 */ stw r5, 8(r31) +/* 8036D50C 807F0004 */ lwz r3, 4(r31) +/* 8036D510 4BFFFDF9 */ bl func_8036d308 +/* 8036D514 907F0004 */ stw r3, 4(r31) +/* 8036D518 8001001C */ lwz r0, 0x1c(r1) +/* 8036D51C 83E10014 */ lwz r31, 0x14(r1) +/* 8036D520 38210018 */ addi r1, r1, 0x18 +/* 8036D524 7C0803A6 */ mtlr r0 +/* 8036D528 4E800020 */ blr +.size func_8036d4b0, . - func_8036d4b0 + + +.global func_8036d52c +.type func_8036d52c, @function +func_8036d52c: +/* 8036D52C 800D9EF8 */ lwz r0, lbl_805c3d18@sda21(0) +/* 8036D530 906D9EF8 */ stw r3, lbl_805c3d18@sda21(0) +/* 8036D534 7C030378 */ mr r3, r0 +/* 8036D538 4E800020 */ blr +.size func_8036d52c, . - func_8036d52c + + +.global func_8036d53c +.type func_8036d53c, @function +func_8036d53c: +/* 8036D53C 1CE5000C */ mulli r7, r5, 0xc +/* 8036D540 906DCA30 */ stw r3, lbl_805c6850@sda21(0) +/* 8036D544 90ADCA34 */ stw r5, lbl_805c6854@sda21(0) +/* 8036D548 38C00000 */ li r6, 0x0 +/* 8036D54C 38660000 */ addi r3, r6, 0x0 +/* 8036D550 39000000 */ li r8, 0x0 +/* 8036D554 38A0FFFF */ li r5, -0x1 +/* 8036D558 48000020 */ b lbl_8036d578 +lbl_8036d55c: +/* 8036D55C 800DCA30 */ lwz r0, lbl_805c6850@sda21(0) +/* 8036D560 39080001 */ addi r8, r8, 0x1 +/* 8036D564 7D203214 */ add r9, r0, r6 +/* 8036D568 90A90000 */ stw r5, 0(r9) +/* 8036D56C 38C6000C */ addi r6, r6, 0xc +/* 8036D570 90690008 */ stw r3, 8(r9) +/* 8036D574 90690004 */ stw r3, 4(r9) +lbl_8036d578: +/* 8036D578 800DCA34 */ lwz r0, lbl_805c6854@sda21(0) +/* 8036D57C 7C080000 */ cmpw r8, r0 +/* 8036D580 4180FFDC */ blt+ lbl_8036d55c +/* 8036D584 806DCA30 */ lwz r3, lbl_805c6850@sda21(0) +/* 8036D588 54800034 */ rlwinm r0, r4, 0, 0, 0x1a +/* 8036D58C 3880FFFF */ li r4, -0x1 +/* 8036D590 900DCA3C */ stw r0, lbl_805c685c@sda21(0) +/* 8036D594 7C633A14 */ add r3, r3, r7 +/* 8036D598 3803001F */ addi r0, r3, 0x1f +/* 8036D59C 908D9EF8 */ stw r4, lbl_805c3d18@sda21(0) +/* 8036D5A0 54030034 */ rlwinm r3, r0, 0, 0, 0x1a +/* 8036D5A4 906DCA38 */ stw r3, lbl_805c6858@sda21(0) +/* 8036D5A8 4E800020 */ blr +.size func_8036d53c, . - func_8036d53c + + +.global func_8036d5ac +.type func_8036d5ac, @function +func_8036d5ac: +/* 8036D5AC 80CDCA34 */ lwz r6, lbl_805c6854@sda21(0) +/* 8036D5B0 3803001F */ addi r0, r3, 0x1f +/* 8036D5B4 80ADCA30 */ lwz r5, lbl_805c6850@sda21(0) +/* 8036D5B8 54070034 */ rlwinm r7, r0, 0, 0, 0x1a +/* 8036D5BC 2C060000 */ cmpwi r6, 0x0 +/* 8036D5C0 7CC903A6 */ mtctr r6 +/* 8036D5C4 54840034 */ rlwinm r4, r4, 0, 0, 0x1a +/* 8036D5C8 38600000 */ li r3, 0x0 +/* 8036D5CC 40810044 */ ble- lbl_8036d610 +lbl_8036d5d0: +/* 8036D5D0 80050000 */ lwz r0, 0(r5) +/* 8036D5D4 2C000000 */ cmpwi r0, 0x0 +/* 8036D5D8 4080002C */ bge- lbl_8036d604 +/* 8036D5DC 7C072050 */ subf r0, r7, r4 +/* 8036D5E0 90050000 */ stw r0, 0(r5) +/* 8036D5E4 38800000 */ li r4, 0x0 +/* 8036D5E8 90870000 */ stw r4, 0(r7) +/* 8036D5EC 90870004 */ stw r4, 4(r7) +/* 8036D5F0 80050000 */ lwz r0, 0(r5) +/* 8036D5F4 90070008 */ stw r0, 8(r7) +/* 8036D5F8 90E50004 */ stw r7, 4(r5) +/* 8036D5FC 90850008 */ stw r4, 8(r5) +/* 8036D600 4E800020 */ blr +lbl_8036d604: +/* 8036D604 38A5000C */ addi r5, r5, 0xc +/* 8036D608 38630001 */ addi r3, r3, 0x1 +/* 8036D60C 4200FFC4 */ bdnz lbl_8036d5d0 +lbl_8036d610: +/* 8036D610 3860FFFF */ li r3, -0x1 +/* 8036D614 4E800020 */ blr +.size func_8036d5ac, . - func_8036d5ac + diff --git a/asm/Dolphin/os/OSAudioSystem-data.s b/asm/Dolphin/os/OSAudioSystem-data.s new file mode 100644 index 0000000..bd5e002 --- /dev/null +++ b/asm/Dolphin/os/OSAudioSystem-data.s @@ -0,0 +1,43 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804eed70 +.type lbl_804eed70, @object +lbl_804eed70: +/* 804EED70 029F0010 */ .4byte 0x029f0010 +/* 804EED74 029F0033 */ .4byte 0x029f0033 +/* 804EED78 029F0034 */ .4byte 0x029f0034 +/* 804EED7C 029F0035 */ .4byte 0x029f0035 +/* 804EED80 029F0036 */ .4byte 0x029f0036 +/* 804EED84 029F0037 */ .4byte 0x029f0037 +/* 804EED88 029F0038 */ .4byte 0x029f0038 +/* 804EED8C 029F0039 */ .4byte 0x029f0039 +/* 804EED90 12061203 */ .4byte 0x12061203 +/* 804EED94 12041205 */ .4byte 0x12041205 +/* 804EED98 00808000 */ .4byte 0x00808000 +/* 804EED9C 0088FFFF */ .4byte 0x0088ffff +/* 804EEDA0 00841000 */ .4byte 0x00841000 +/* 804EEDA4 0064001D */ .4byte 0x0064001d +/* 804EEDA8 02180000 */ .4byte 0x02180000 +/* 804EEDAC 81001C1E */ .4byte 0x81001c1e +/* 804EEDB0 00441B1E */ .4byte 0x00441b1e +/* 804EEDB4 00840800 */ .4byte 0x00840800 +/* 804EEDB8 00640027 */ .4byte 0x00640027 +/* 804EEDBC 191E0000 */ .4byte 0x191e0000 +/* 804EEDC0 00DEFFFC */ .4byte 0x00defffc +/* 804EEDC4 02A08000 */ .4byte 0x02a08000 +/* 804EEDC8 029C0028 */ .4byte 0x029c0028 +/* 804EEDCC 16FC0054 */ .4byte 0x16fc0054 +/* 804EEDD0 16FD4348 */ .4byte 0x16fd4348 +/* 804EEDD4 002102FF */ .4byte 0x002102ff +/* 804EEDD8 02FF02FF */ .4byte 0x02ff02ff +/* 804EEDDC 02FF02FF */ .4byte 0x02ff02ff +/* 804EEDE0 02FF02FF */ .4byte 0x02ff02ff +/* 804EEDE4 00000000 */ .4byte 0x00000000 +/* 804EEDE8 00000000 */ .4byte 0x00000000 +/* 804EEDEC 00000000 */ .4byte 0x00000000 +.size lbl_804eed70, . - lbl_804eed70 + diff --git a/asm/Dolphin/os/OSAudioSystem.s b/asm/Dolphin/os/OSAudioSystem.s new file mode 100644 index 0000000..c3aafe4 --- /dev/null +++ b/asm/Dolphin/os/OSAudioSystem.s @@ -0,0 +1,199 @@ +.include "macros.inc" + +.section .text + +.global func_8036d638 +.type func_8036d638, @function +func_8036d638: +/* 8036D638 7C0802A6 */ mflr r0 +/* 8036D63C 90010004 */ stw r0, 4(r1) +/* 8036D640 9421FFD0 */ stwu r1, -0x30(r1) +/* 8036D644 BF210014 */ stmw r25, 0x14(r1) +/* 8036D648 4BFFFFD1 */ bl func_8036d618 +/* 8036D64C 3C808100 */ lis r4, 0x8100 +/* 8036D650 38A00080 */ li r5, 0x80 +/* 8036D654 3863FF80 */ addi r3, r3, -0x80 +/* 8036D658 4BCA0DC5 */ bl func_8000e41c +/* 8036D65C 3C60804F */ lis r3, lbl_804eed70@ha +/* 8036D660 3883ED70 */ addi r4, r3, lbl_804eed70@l +/* 8036D664 3C608100 */ lis r3, 0x8100 +/* 8036D668 38A00080 */ li r5, 0x80 +/* 8036D66C 4BCA0DB1 */ bl func_8000e41c +/* 8036D670 3C608100 */ lis r3, 0x8100 +/* 8036D674 38800080 */ li r4, 0x80 +/* 8036D678 48000299 */ bl func_8036d910 +/* 8036D67C 3C60CC00 */ lis r3, 0xcc00 +/* 8036D680 38635000 */ addi r3, r3, 0x5000 +/* 8036D684 38000043 */ li r0, 0x43 +/* 8036D688 B0030012 */ sth r0, 0x12(r3) +/* 8036D68C 3BE3000A */ addi r31, r3, 0xa +/* 8036D690 380008AC */ li r0, 0x8ac +/* 8036D694 B003000A */ sth r0, 0xa(r3) +/* 8036D698 A003000A */ lhz r0, 0xa(r3) +/* 8036D69C 60000001 */ ori r0, r0, 1 +/* 8036D6A0 B003000A */ sth r0, 0xa(r3) +lbl_8036d6a4: +/* 8036D6A4 A01F0000 */ lhz r0, 0(r31) +/* 8036D6A8 540007FF */ clrlwi. r0, r0, 0x1f +/* 8036D6AC 4082FFF8 */ bne+ lbl_8036d6a4 +/* 8036D6B0 38000000 */ li r0, 0x0 +/* 8036D6B4 3C80CC00 */ lis r4, 0xcc00 +/* 8036D6B8 B0045000 */ sth r0, 0x5000(r4) +lbl_8036d6bc: +/* 8036D6BC 3BC45000 */ addi r30, r4, 0x5000 +/* 8036D6C0 A47E0004 */ lhzu r3, 4(r30) +/* 8036D6C4 3BA45000 */ addi r29, r4, 0x5000 +/* 8036D6C8 A41D0006 */ lhzu r0, 6(r29) +/* 8036D6CC 5060801E */ rlwimi r0, r3, 0x10, 0, 0xf +/* 8036D6D0 54000001 */ rlwinm. r0, r0, 0, 0, 0 +/* 8036D6D4 4082FFE8 */ bne+ lbl_8036d6bc +/* 8036D6D8 3C60CC00 */ lis r3, 0xcc00 +/* 8036D6DC 3C000100 */ lis r0, 0x100 +/* 8036D6E0 3B635000 */ addi r27, r3, 0x5000 +/* 8036D6E4 941B0020 */ stwu r0, 0x20(r27) +/* 8036D6E8 38000000 */ li r0, 0x0 +/* 8036D6EC 3B435000 */ addi r26, r3, 0x5000 +/* 8036D6F0 941A0024 */ stwu r0, 0x24(r26) +/* 8036D6F4 38000020 */ li r0, 0x20 +/* 8036D6F8 3B235000 */ addi r25, r3, 0x5000 +/* 8036D6FC 94190028 */ stwu r0, 0x28(r25) +/* 8036D700 A07F0000 */ lhz r3, 0(r31) +/* 8036D704 48000008 */ b lbl_8036d70c +lbl_8036d708: +/* 8036D708 A07F0000 */ lhz r3, 0(r31) +lbl_8036d70c: +/* 8036D70C 546006B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a +/* 8036D710 4182FFF8 */ beq+ lbl_8036d708 +/* 8036D714 B07F0000 */ sth r3, 0(r31) +/* 8036D718 480050C5 */ bl func_803727dc +/* 8036D71C 7C7C1B78 */ mr r28, r3 +lbl_8036d720: +/* 8036D720 480050BD */ bl func_803727dc +/* 8036D724 7C1C1850 */ subf r0, r28, r3 +/* 8036D728 2C000892 */ cmpwi r0, 0x892 +/* 8036D72C 4180FFF4 */ blt+ lbl_8036d720 +/* 8036D730 3C000100 */ lis r0, 0x100 +/* 8036D734 901B0000 */ stw r0, 0(r27) +/* 8036D738 38600000 */ li r3, 0x0 +/* 8036D73C 38000020 */ li r0, 0x20 +/* 8036D740 907A0000 */ stw r3, 0(r26) +/* 8036D744 90190000 */ stw r0, 0(r25) +/* 8036D748 A07F0000 */ lhz r3, 0(r31) +/* 8036D74C 48000008 */ b lbl_8036d754 +lbl_8036d750: +/* 8036D750 A07F0000 */ lhz r3, 0(r31) +lbl_8036d754: +/* 8036D754 546006B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a +/* 8036D758 4182FFF8 */ beq+ lbl_8036d750 +/* 8036D75C B07F0000 */ sth r3, 0(r31) +/* 8036D760 A01F0000 */ lhz r0, 0(r31) +/* 8036D764 54000566 */ rlwinm r0, r0, 0, 0x15, 0x13 +/* 8036D768 B01F0000 */ sth r0, 0(r31) +lbl_8036d76c: +/* 8036D76C A01F0000 */ lhz r0, 0(r31) +/* 8036D770 5400056B */ rlwinm. r0, r0, 0, 0x15, 0x15 +/* 8036D774 4082FFF8 */ bne+ lbl_8036d76c +/* 8036D778 A01F0000 */ lhz r0, 0(r31) +/* 8036D77C 540007B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c +/* 8036D780 B01F0000 */ sth r0, 0(r31) +/* 8036D784 A01E0000 */ lhz r0, 0(r30) +/* 8036D788 48000008 */ b lbl_8036d790 +lbl_8036d78c: +/* 8036D78C A01E0000 */ lhz r0, 0(r30) +lbl_8036d790: +/* 8036D790 5405043E */ clrlwi r5, r0, 0x10 +/* 8036D794 54000421 */ rlwinm. r0, r0, 0, 0x10, 0x10 +/* 8036D798 4182FFF4 */ beq+ lbl_8036d78c +/* 8036D79C A01F0000 */ lhz r0, 0(r31) +/* 8036D7A0 A09D0000 */ lhz r4, 0(r29) +/* 8036D7A4 60000004 */ ori r0, r0, 4 +/* 8036D7A8 B01F0000 */ sth r0, 0(r31) +/* 8036D7AC 380008AC */ li r0, 0x8ac +/* 8036D7B0 B01F0000 */ sth r0, 0(r31) +/* 8036D7B4 A01F0000 */ lhz r0, 0(r31) +/* 8036D7B8 60000001 */ ori r0, r0, 1 +/* 8036D7BC B01F0000 */ sth r0, 0(r31) +lbl_8036d7c0: +/* 8036D7C0 A01F0000 */ lhz r0, 0(r31) +/* 8036D7C4 540007FF */ clrlwi. r0, r0, 0x1f +/* 8036D7C8 4082FFF8 */ bne+ lbl_8036d7c0 +/* 8036D7CC 4BFFFE4D */ bl func_8036d618 +/* 8036D7D0 3883FF80 */ addi r4, r3, -0x80 +/* 8036D7D4 3C608100 */ lis r3, 0x8100 +/* 8036D7D8 38A00080 */ li r5, 0x80 +/* 8036D7DC 4BCA0C41 */ bl func_8000e41c +/* 8036D7E0 BB210014 */ lmw r25, 0x14(r1) +/* 8036D7E4 80010034 */ lwz r0, 0x34(r1) +/* 8036D7E8 38210030 */ addi r1, r1, 0x30 +/* 8036D7EC 7C0803A6 */ mtlr r0 +/* 8036D7F0 4E800020 */ blr +.size func_8036d638, . - func_8036d638 + + +.global func_8036d7f4 +.type func_8036d7f4, @function +func_8036d7f4: +/* 8036D7F4 7C0802A6 */ mflr r0 +/* 8036D7F8 3C60CC00 */ lis r3, 0xcc00 +/* 8036D7FC 90010004 */ stw r0, 4(r1) +/* 8036D800 38000804 */ li r0, 0x804 +/* 8036D804 9421FFF0 */ stwu r1, -0x10(r1) +/* 8036D808 93E1000C */ stw r31, 0xc(r1) +/* 8036D80C 3BE35000 */ addi r31, r3, 0x5000 +/* 8036D810 38635000 */ addi r3, r3, 0x5000 +/* 8036D814 93C10008 */ stw r30, 8(r1) +/* 8036D818 B01F000A */ sth r0, 0xa(r31) +/* 8036D81C A0030036 */ lhz r0, 0x36(r3) +/* 8036D820 5400045E */ rlwinm r0, r0, 0, 0x11, 0xf +/* 8036D824 B0030036 */ sth r0, 0x36(r3) +/* 8036D828 A41F000A */ lhzu r0, 0xa(r31) +/* 8036D82C 48000008 */ b lbl_8036d834 +lbl_8036d830: +/* 8036D830 A01F0000 */ lhz r0, 0(r31) +lbl_8036d834: +/* 8036D834 5400056B */ rlwinm. r0, r0, 0, 0x15, 0x15 +/* 8036D838 4082FFF8 */ bne+ lbl_8036d830 +/* 8036D83C A01F0000 */ lhz r0, 0(r31) +/* 8036D840 48000008 */ b lbl_8036d848 +lbl_8036d844: +/* 8036D844 A01F0000 */ lhz r0, 0(r31) +lbl_8036d848: +/* 8036D848 540005AD */ rlwinm. r0, r0, 0, 0x16, 0x16 +/* 8036D84C 4082FFF8 */ bne+ lbl_8036d844 +/* 8036D850 380008AC */ li r0, 0x8ac +/* 8036D854 3C60CC00 */ lis r3, 0xcc00 +/* 8036D858 B01F0000 */ sth r0, 0(r31) +/* 8036D85C 38000000 */ li r0, 0x0 +/* 8036D860 B0035000 */ sth r0, 0x5000(r3) +/* 8036D864 38835000 */ addi r4, r3, 0x5000 +lbl_8036d868: +/* 8036D868 A0640004 */ lhz r3, 4(r4) +/* 8036D86C A0040006 */ lhz r0, 6(r4) +/* 8036D870 5060801E */ rlwimi r0, r3, 0x10, 0, 0xf +/* 8036D874 54000001 */ rlwinm. r0, r0, 0, 0, 0 +/* 8036D878 4082FFF0 */ bne+ lbl_8036d868 +/* 8036D87C 48004F61 */ bl func_803727dc +/* 8036D880 7C7E1B78 */ mr r30, r3 +lbl_8036d884: +/* 8036D884 48004F59 */ bl func_803727dc +/* 8036D888 7C1E1850 */ subf r0, r30, r3 +/* 8036D88C 2C00002C */ cmpwi r0, 0x2c +/* 8036D890 4180FFF4 */ blt+ lbl_8036d884 +/* 8036D894 A01F0000 */ lhz r0, 0(r31) +/* 8036D898 60000001 */ ori r0, r0, 1 +/* 8036D89C B01F0000 */ sth r0, 0(r31) +/* 8036D8A0 A01F0000 */ lhz r0, 0(r31) +/* 8036D8A4 48000008 */ b lbl_8036d8ac +lbl_8036d8a8: +/* 8036D8A8 A01F0000 */ lhz r0, 0(r31) +lbl_8036d8ac: +/* 8036D8AC 540007FF */ clrlwi. r0, r0, 0x1f +/* 8036D8B0 4082FFF8 */ bne+ lbl_8036d8a8 +/* 8036D8B4 80010014 */ lwz r0, 0x14(r1) +/* 8036D8B8 83E1000C */ lwz r31, 0xc(r1) +/* 8036D8BC 83C10008 */ lwz r30, 8(r1) +/* 8036D8C0 38210010 */ addi r1, r1, 0x10 +/* 8036D8C4 7C0803A6 */ mtlr r0 +/* 8036D8C8 4E800020 */ blr +.size func_8036d7f4, . - func_8036d7f4 + diff --git a/asm/Dolphin/os/OSCache-data.s b/asm/Dolphin/os/OSCache-data.s new file mode 100644 index 0000000..a04cf5d --- /dev/null +++ b/asm/Dolphin/os/OSCache-data.s @@ -0,0 +1,151 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804eedf0 +.type lbl_804eedf0, @object +lbl_804eedf0: +/* 804EEDF0 3E3E3E20 */ .4byte 0x3e3e3e20 +/* 804EEDF4 4C322049 */ .4byte 0x4c322049 +/* 804EEDF8 4E56414C */ .4byte 0x4e56414c +/* 804EEDFC 49444154 */ .4byte 0x49444154 +/* 804EEE00 45203A20 */ .4byte 0x45203a20 +/* 804EEE04 53484F55 */ .4byte 0x53484f55 +/* 804EEE08 4C44204E */ .4byte 0x4c44204e +/* 804EEE0C 45564552 */ .4byte 0x45564552 +/* 804EEE10 20484150 */ .4byte 0x20484150 +/* 804EEE14 50454E0A */ .4byte 0x50454e0a +/* 804EEE18 00000000 */ .4byte 0x00000000 +/* 804EEE1C 4D616368 */ .4byte 0x4d616368 +/* 804EEE20 696E6520 */ .4byte 0x696e6520 +/* 804EEE24 63686563 */ .4byte 0x63686563 +/* 804EEE28 6B207265 */ .4byte 0x6b207265 +/* 804EEE2C 63656976 */ .4byte 0x63656976 +/* 804EEE30 65640A00 */ .4byte 0x65640a00 +/* 804EEE34 48494432 */ .4byte 0x48494432 +/* 804EEE38 203D2030 */ .4byte 0x203d2030 +/* 804EEE3C 78257820 */ .4byte 0x78257820 +/* 804EEE40 20205352 */ .4byte 0x20205352 +/* 804EEE44 5231203D */ .4byte 0x5231203d +/* 804EEE48 20307825 */ .4byte 0x20307825 +/* 804EEE4C 780A0000 */ .4byte 0x780a0000 +/* 804EEE50 4D616368 */ .4byte 0x4d616368 +/* 804EEE54 696E6520 */ .4byte 0x696e6520 +/* 804EEE58 63686563 */ .4byte 0x63686563 +/* 804EEE5C 6B207761 */ .4byte 0x6b207761 +/* 804EEE60 73206E6F */ .4byte 0x73206e6f +/* 804EEE64 7420444D */ .4byte 0x7420444d +/* 804EEE68 412F6C6F */ .4byte 0x412f6c6f +/* 804EEE6C 636B6564 */ .4byte 0x636b6564 +/* 804EEE70 20636163 */ .4byte 0x20636163 +/* 804EEE74 68652072 */ .4byte 0x68652072 +/* 804EEE78 656C6174 */ .4byte 0x656c6174 +/* 804EEE7C 65640A00 */ .4byte 0x65640a00 +/* 804EEE80 444D4145 */ .4byte 0x444d4145 +/* 804EEE84 72726F72 */ .4byte 0x72726f72 +/* 804EEE88 48616E64 */ .4byte 0x48616e64 +/* 804EEE8C 6C657228 */ .4byte 0x6c657228 +/* 804EEE90 293A2041 */ .4byte 0x293a2041 +/* 804EEE94 6E206572 */ .4byte 0x6e206572 +/* 804EEE98 726F7220 */ .4byte 0x726f7220 +/* 804EEE9C 6F636375 */ .4byte 0x6f636375 +/* 804EEEA0 72726564 */ .4byte 0x72726564 +/* 804EEEA4 20776869 */ .4byte 0x20776869 +/* 804EEEA8 6C652070 */ .4byte 0x6c652070 +/* 804EEEAC 726F6365 */ .4byte 0x726f6365 +/* 804EEEB0 7373696E */ .4byte 0x7373696e +/* 804EEEB4 6720444D */ .4byte 0x6720444d +/* 804EEEB8 412E0A00 */ .4byte 0x412e0a00 +/* 804EEEBC 54686520 */ .4byte 0x54686520 +/* 804EEEC0 666F6C6C */ .4byte 0x666f6c6c +/* 804EEEC4 6F77696E */ .4byte 0x6f77696e +/* 804EEEC8 67206572 */ .4byte 0x67206572 +/* 804EEECC 726F7273 */ .4byte 0x726f7273 +/* 804EEED0 20686176 */ .4byte 0x20686176 +/* 804EEED4 65206265 */ .4byte 0x65206265 +/* 804EEED8 656E2064 */ .4byte 0x656e2064 +/* 804EEEDC 65746563 */ .4byte 0x65746563 +/* 804EEEE0 74656420 */ .4byte 0x74656420 +/* 804EEEE4 616E6420 */ .4byte 0x616e6420 +/* 804EEEE8 636C6561 */ .4byte 0x636c6561 +/* 804EEEEC 72656420 */ .4byte 0x72656420 +/* 804EEEF0 3A0A0000 */ .4byte 0x3a0a0000 +/* 804EEEF4 092D2052 */ .4byte 0x092d2052 +/* 804EEEF8 65717565 */ .4byte 0x65717565 +/* 804EEEFC 73746564 */ .4byte 0x73746564 +/* 804EEF00 2061206C */ .4byte 0x2061206c +/* 804EEF04 6F636B65 */ .4byte 0x6f636b65 +/* 804EEF08 64206361 */ .4byte 0x64206361 +/* 804EEF0C 63686520 */ .4byte 0x63686520 +/* 804EEF10 74616720 */ .4byte 0x74616720 +/* 804EEF14 74686174 */ .4byte 0x74686174 +/* 804EEF18 20776173 */ .4byte 0x20776173 +/* 804EEF1C 20616C72 */ .4byte 0x20616c72 +/* 804EEF20 65616479 */ .4byte 0x65616479 +/* 804EEF24 20696E20 */ .4byte 0x20696e20 +/* 804EEF28 74686520 */ .4byte 0x74686520 +/* 804EEF2C 63616368 */ .4byte 0x63616368 +/* 804EEF30 650A0000 */ .4byte 0x650a0000 +/* 804EEF34 092D2044 */ .4byte 0x092d2044 +/* 804EEF38 4D412061 */ .4byte 0x4d412061 +/* 804EEF3C 7474656D */ .4byte 0x7474656d +/* 804EEF40 70746564 */ .4byte 0x70746564 +/* 804EEF44 20746F20 */ .4byte 0x20746f20 +/* 804EEF48 61636365 */ .4byte 0x61636365 +/* 804EEF4C 7373206E */ .4byte 0x7373206e +/* 804EEF50 6F726D61 */ .4byte 0x6f726d61 +/* 804EEF54 6C206361 */ .4byte 0x6c206361 +/* 804EEF58 6368650A */ .4byte 0x6368650a +/* 804EEF5C 00000000 */ .4byte 0x00000000 +/* 804EEF60 092D2044 */ .4byte 0x092d2044 +/* 804EEF64 4D41206D */ .4byte 0x4d41206d +/* 804EEF68 69737365 */ .4byte 0x69737365 +/* 804EEF6C 6420696E */ .4byte 0x6420696e +/* 804EEF70 20646174 */ .4byte 0x20646174 +/* 804EEF74 61206361 */ .4byte 0x61206361 +/* 804EEF78 6368650A */ .4byte 0x6368650a +/* 804EEF7C 00000000 */ .4byte 0x00000000 +/* 804EEF80 092D2044 */ .4byte 0x092d2044 +/* 804EEF84 4D412071 */ .4byte 0x4d412071 +/* 804EEF88 75657565 */ .4byte 0x75657565 +/* 804EEF8C 206F7665 */ .4byte 0x206f7665 +/* 804EEF90 72666C6F */ .4byte 0x72666c6f +/* 804EEF94 7765640A */ .4byte 0x7765640a +/* 804EEF98 00000000 */ .4byte 0x00000000 +/* 804EEF9C 4C312069 */ .4byte 0x4c312069 +/* 804EEFA0 2D636163 */ .4byte 0x2d636163 +/* 804EEFA4 68657320 */ .4byte 0x68657320 +/* 804EEFA8 696E6974 */ .4byte 0x696e6974 +/* 804EEFAC 69616C69 */ .4byte 0x69616c69 +/* 804EEFB0 7A65640A */ .4byte 0x7a65640a +/* 804EEFB4 00000000 */ .4byte 0x00000000 +/* 804EEFB8 4C312064 */ .4byte 0x4c312064 +/* 804EEFBC 2D636163 */ .4byte 0x2d636163 +/* 804EEFC0 68657320 */ .4byte 0x68657320 +/* 804EEFC4 696E6974 */ .4byte 0x696e6974 +/* 804EEFC8 69616C69 */ .4byte 0x69616c69 +/* 804EEFCC 7A65640A */ .4byte 0x7a65640a +/* 804EEFD0 00000000 */ .4byte 0x00000000 +/* 804EEFD4 4C322063 */ .4byte 0x4c322063 +/* 804EEFD8 61636865 */ .4byte 0x61636865 +/* 804EEFDC 20696E69 */ .4byte 0x20696e69 +/* 804EEFE0 7469616C */ .4byte 0x7469616c +/* 804EEFE4 697A6564 */ .4byte 0x697a6564 +/* 804EEFE8 0A000000 */ .4byte 0x0a000000 +/* 804EEFEC 4C6F636B */ .4byte 0x4c6f636b +/* 804EEFF0 65642063 */ .4byte 0x65642063 +/* 804EEFF4 61636865 */ .4byte 0x61636865 +/* 804EEFF8 206D6163 */ .4byte 0x206d6163 +/* 804EEFFC 68696E65 */ .4byte 0x68696e65 +/* 804EF000 20636865 */ .4byte 0x20636865 +/* 804EF004 636B2068 */ .4byte 0x636b2068 +/* 804EF008 616E646C */ .4byte 0x616e646c +/* 804EF00C 65722069 */ .4byte 0x65722069 +/* 804EF010 6E737461 */ .4byte 0x6e737461 +/* 804EF014 6C6C6564 */ .4byte 0x6c6c6564 +/* 804EF018 0A000000 */ .4byte 0x0a000000 +/* 804EF01C 00000000 */ .4byte 0x00000000 +.size lbl_804eedf0, . - lbl_804eedf0 + diff --git a/asm/Dolphin/os/OSCache.s b/asm/Dolphin/os/OSCache.s new file mode 100644 index 0000000..dc8cd69 --- /dev/null +++ b/asm/Dolphin/os/OSCache.s @@ -0,0 +1,476 @@ +.include "macros.inc" + +.section .text + +.global func_8036d8cc +.type func_8036d8cc, @function +func_8036d8cc: +/* 8036D8CC 7C0004AC */ sync 0 +/* 8036D8D0 7C70FAA6 */ mfspr r3, 0x3f0 +/* 8036D8D4 60634000 */ ori r3, r3, 0x4000 +/* 8036D8D8 7C70FBA6 */ mtspr 0x3f0, r3 +/* 8036D8DC 4E800020 */ blr +.size func_8036d8cc, . - func_8036d8cc + + +.global func_8036d8e0 +.type func_8036d8e0, @function +func_8036d8e0: +/* 8036D8E0 28040000 */ cmplwi r4, 0 +/* 8036D8E4 4C810020 */ blelr- +/* 8036D8E8 546506FF */ clrlwi. r5, r3, 0x1b +/* 8036D8EC 41820008 */ beq- lbl_8036d8f4 +/* 8036D8F0 38840020 */ addi r4, r4, 0x20 +lbl_8036d8f4: +/* 8036D8F4 3884001F */ addi r4, r4, 0x1f +/* 8036D8F8 5484D97E */ srwi r4, r4, 5 +/* 8036D8FC 7C8903A6 */ mtctr r4 +lbl_8036d900: +/* 8036D900 7C001BAC */ dcbi 0, r3 +/* 8036D904 38630020 */ addi r3, r3, 0x20 +/* 8036D908 4200FFF8 */ bdnz lbl_8036d900 +/* 8036D90C 4E800020 */ blr +.size func_8036d8e0, . - func_8036d8e0 + + +.global func_8036d910 +.type func_8036d910, @function +func_8036d910: +/* 8036D910 28040000 */ cmplwi r4, 0 +/* 8036D914 4C810020 */ blelr- +/* 8036D918 546506FF */ clrlwi. r5, r3, 0x1b +/* 8036D91C 41820008 */ beq- lbl_8036d924 +/* 8036D920 38840020 */ addi r4, r4, 0x20 +lbl_8036d924: +/* 8036D924 3884001F */ addi r4, r4, 0x1f +/* 8036D928 5484D97E */ srwi r4, r4, 5 +/* 8036D92C 7C8903A6 */ mtctr r4 +lbl_8036d930: +/* 8036D930 7C0018AC */ dcbf 0, r3 +/* 8036D934 38630020 */ addi r3, r3, 0x20 +/* 8036D938 4200FFF8 */ bdnz lbl_8036d930 +/* 8036D93C 44000002 */ sc +/* 8036D940 4E800020 */ blr +.size func_8036d910, . - func_8036d910 + + +.global func_8036d944 +.type func_8036d944, @function +func_8036d944: +/* 8036D944 28040000 */ cmplwi r4, 0 +/* 8036D948 4C810020 */ blelr- +/* 8036D94C 546506FF */ clrlwi. r5, r3, 0x1b +/* 8036D950 41820008 */ beq- lbl_8036d958 +/* 8036D954 38840020 */ addi r4, r4, 0x20 +lbl_8036d958: +/* 8036D958 3884001F */ addi r4, r4, 0x1f +/* 8036D95C 5484D97E */ srwi r4, r4, 5 +/* 8036D960 7C8903A6 */ mtctr r4 +lbl_8036d964: +/* 8036D964 7C00186C */ dcbst 0, r3 +/* 8036D968 38630020 */ addi r3, r3, 0x20 +/* 8036D96C 4200FFF8 */ bdnz lbl_8036d964 +/* 8036D970 44000002 */ sc +/* 8036D974 4E800020 */ blr +.size func_8036d944, . - func_8036d944 + + +.global func_8036d978 +.type func_8036d978, @function +func_8036d978: +/* 8036D978 28040000 */ cmplwi r4, 0 +/* 8036D97C 4C810020 */ blelr- +/* 8036D980 546506FF */ clrlwi. r5, r3, 0x1b +/* 8036D984 41820008 */ beq- lbl_8036d98c +/* 8036D988 38840020 */ addi r4, r4, 0x20 +lbl_8036d98c: +/* 8036D98C 3884001F */ addi r4, r4, 0x1f +/* 8036D990 5484D97E */ srwi r4, r4, 5 +/* 8036D994 7C8903A6 */ mtctr r4 +lbl_8036d998: +/* 8036D998 7C0018AC */ dcbf 0, r3 +/* 8036D99C 38630020 */ addi r3, r3, 0x20 +/* 8036D9A0 4200FFF8 */ bdnz lbl_8036d998 +/* 8036D9A4 4E800020 */ blr +.size func_8036d978, . - func_8036d978 + + +.global func_8036d9a8 +.type func_8036d9a8, @function +func_8036d9a8: +/* 8036D9A8 28040000 */ cmplwi r4, 0 +/* 8036D9AC 4C810020 */ blelr- +/* 8036D9B0 546506FF */ clrlwi. r5, r3, 0x1b +/* 8036D9B4 41820008 */ beq- lbl_8036d9bc +/* 8036D9B8 38840020 */ addi r4, r4, 0x20 +lbl_8036d9bc: +/* 8036D9BC 3884001F */ addi r4, r4, 0x1f +/* 8036D9C0 5484D97E */ srwi r4, r4, 5 +/* 8036D9C4 7C8903A6 */ mtctr r4 +lbl_8036d9c8: +/* 8036D9C8 7C00186C */ dcbst 0, r3 +/* 8036D9CC 38630020 */ addi r3, r3, 0x20 +/* 8036D9D0 4200FFF8 */ bdnz lbl_8036d9c8 +/* 8036D9D4 4E800020 */ blr +.size func_8036d9a8, . - func_8036d9a8 + + +.global func_8036d9d8 +.type func_8036d9d8, @function +func_8036d9d8: +/* 8036D9D8 28040000 */ cmplwi r4, 0 +/* 8036D9DC 4C810020 */ blelr- +/* 8036D9E0 546506FF */ clrlwi. r5, r3, 0x1b +/* 8036D9E4 41820008 */ beq- lbl_8036d9ec +/* 8036D9E8 38840020 */ addi r4, r4, 0x20 +lbl_8036d9ec: +/* 8036D9EC 3884001F */ addi r4, r4, 0x1f +/* 8036D9F0 5484D97E */ srwi r4, r4, 5 +/* 8036D9F4 7C8903A6 */ mtctr r4 +lbl_8036d9f8: +/* 8036D9F8 7C001FAC */ icbi 0, r3 +/* 8036D9FC 38630020 */ addi r3, r3, 0x20 +/* 8036DA00 4200FFF8 */ bdnz lbl_8036d9f8 +/* 8036DA04 7C0004AC */ sync 0 +/* 8036DA08 4C00012C */ isync +/* 8036DA0C 4E800020 */ blr +.size func_8036d9d8, . - func_8036d9d8 + + +.global func_8036da10 +.type func_8036da10, @function +func_8036da10: +/* 8036DA10 7C70FAA6 */ mfspr r3, 0x3f0 +/* 8036DA14 60630800 */ ori r3, r3, 0x800 +/* 8036DA18 7C70FBA6 */ mtspr 0x3f0, r3 +/* 8036DA1C 4E800020 */ blr +.size func_8036da10, . - func_8036da10 + + +.global func_8036da20 +.type func_8036da20, @function +func_8036da20: +/* 8036DA20 4C00012C */ isync +/* 8036DA24 7C70FAA6 */ mfspr r3, 0x3f0 +/* 8036DA28 60638000 */ ori r3, r3, 0x8000 +/* 8036DA2C 7C70FBA6 */ mtspr 0x3f0, r3 +/* 8036DA30 4E800020 */ blr +.size func_8036da20, . - func_8036da20 + + +.global func_8036da34 +.type func_8036da34, @function +func_8036da34: +/* 8036DA34 7CA000A6 */ mfmsr r5 +/* 8036DA38 60A51000 */ ori r5, r5, 0x1000 +/* 8036DA3C 7CA00124 */ mtmsr r5 +/* 8036DA40 3C608000 */ lis r3, 0x8000 +/* 8036DA44 38800400 */ li r4, 0x400 +/* 8036DA48 7C8903A6 */ mtctr r4 +lbl_8036da4c: +/* 8036DA4C 7C001A2C */ dcbt 0, r3 +/* 8036DA50 7C00186C */ dcbst 0, r3 +/* 8036DA54 38630020 */ addi r3, r3, 0x20 +/* 8036DA58 4200FFF4 */ bdnz lbl_8036da4c +/* 8036DA5C 7C98E2A6 */ mfspr r4, 0x398 +/* 8036DA60 6484100F */ oris r4, r4, 0x100f +/* 8036DA64 7C98E3A6 */ mtspr 0x398, r4 +/* 8036DA68 60000000 */ nop +/* 8036DA6C 60000000 */ nop +/* 8036DA70 60000000 */ nop +/* 8036DA74 60000000 */ nop +/* 8036DA78 60000000 */ nop +/* 8036DA7C 60000000 */ nop +/* 8036DA80 60000000 */ nop +/* 8036DA84 60000000 */ nop +/* 8036DA88 60000000 */ nop +/* 8036DA8C 60000000 */ nop +/* 8036DA90 60000000 */ nop +/* 8036DA94 60000000 */ nop +/* 8036DA98 3C60E000 */ lis r3, 0xe000 +/* 8036DA9C 60630002 */ ori r3, r3, 2 +/* 8036DAA0 7C7F83A6 */ mtdbatl 3, r3 +/* 8036DAA4 606301FE */ ori r3, r3, 0x1fe +/* 8036DAA8 7C7E83A6 */ mtdbatu 3, r3 +/* 8036DAAC 4C00012C */ isync +/* 8036DAB0 3C60E000 */ lis r3, 0xe000 +/* 8036DAB4 38C00200 */ li r6, 0x200 +/* 8036DAB8 7CC903A6 */ mtctr r6 +/* 8036DABC 38C00000 */ li r6, 0x0 +lbl_8036dac0: +/* 8036DAC0 10061FEC */ .4byte 0x10061fec +/* 8036DAC4 38630020 */ addi r3, r3, 0x20 +/* 8036DAC8 4200FFF8 */ bdnz lbl_8036dac0 +/* 8036DACC 60000000 */ nop +/* 8036DAD0 60000000 */ nop +/* 8036DAD4 60000000 */ nop +/* 8036DAD8 60000000 */ nop +/* 8036DADC 60000000 */ nop +/* 8036DAE0 60000000 */ nop +/* 8036DAE4 60000000 */ nop +/* 8036DAE8 60000000 */ nop +/* 8036DAEC 60000000 */ nop +/* 8036DAF0 60000000 */ nop +/* 8036DAF4 60000000 */ nop +/* 8036DAF8 60000000 */ nop +/* 8036DAFC 4E800020 */ blr +.size func_8036da34, . - func_8036da34 + + +.global func_8036db00 +.type func_8036db00, @function +func_8036db00: +/* 8036DB00 7C0802A6 */ mflr r0 +/* 8036DB04 90010004 */ stw r0, 4(r1) +/* 8036DB08 9421FFF0 */ stwu r1, -0x10(r1) +/* 8036DB0C 93E1000C */ stw r31, 0xc(r1) +/* 8036DB10 48000FC5 */ bl func_8036ead4 +/* 8036DB14 7C7F1B78 */ mr r31, r3 +/* 8036DB18 4BFFFF1D */ bl func_8036da34 +/* 8036DB1C 7FE3FB78 */ mr r3, r31 +/* 8036DB20 48000FDD */ bl func_8036eafc +/* 8036DB24 80010014 */ lwz r0, 0x14(r1) +/* 8036DB28 83E1000C */ lwz r31, 0xc(r1) +/* 8036DB2C 38210010 */ addi r1, r1, 0x10 +/* 8036DB30 7C0803A6 */ mtlr r0 +/* 8036DB34 4E800020 */ blr +.size func_8036db00, . - func_8036db00 + + +.global func_8036db38 +.type func_8036db38, @function +func_8036db38: +/* 8036DB38 3C60E000 */ lis r3, 0xe000 +/* 8036DB3C 38800200 */ li r4, 0x200 +/* 8036DB40 7C8903A6 */ mtctr r4 +lbl_8036db44: +/* 8036DB44 7C001BAC */ dcbi 0, r3 +/* 8036DB48 38630020 */ addi r3, r3, 0x20 +/* 8036DB4C 4200FFF8 */ bdnz lbl_8036db44 +/* 8036DB50 7C98E2A6 */ mfspr r4, 0x398 +/* 8036DB54 54840104 */ rlwinm r4, r4, 0, 4, 2 +/* 8036DB58 7C98E3A6 */ mtspr 0x398, r4 +/* 8036DB5C 4E800020 */ blr +.size func_8036db38, . - func_8036db38 + + +.global func_8036db60 +.type func_8036db60, @function +func_8036db60: +/* 8036DB60 7C0802A6 */ mflr r0 +/* 8036DB64 90010004 */ stw r0, 4(r1) +/* 8036DB68 9421FFF0 */ stwu r1, -0x10(r1) +/* 8036DB6C 93E1000C */ stw r31, 0xc(r1) +/* 8036DB70 7C0004AC */ sync 0 +/* 8036DB74 4BFFE625 */ bl func_8036c198 +/* 8036DB78 5463007E */ clrlwi r3, r3, 1 +/* 8036DB7C 4BFFE625 */ bl func_8036c1a0 +/* 8036DB80 7C0004AC */ sync 0 +/* 8036DB84 4BFFE615 */ bl func_8036c198 +/* 8036DB88 64630020 */ oris r3, r3, 0x20 +/* 8036DB8C 4BFFE615 */ bl func_8036c1a0 +/* 8036DB90 48000004 */ b lbl_8036db94 +lbl_8036db94: +/* 8036DB94 48000004 */ b lbl_8036db98 +lbl_8036db98: +/* 8036DB98 4BFFE601 */ bl func_8036c198 +/* 8036DB9C 546007FE */ clrlwi r0, r3, 0x1f +/* 8036DBA0 28000000 */ cmplwi r0, 0 +/* 8036DBA4 4082FFF4 */ bne+ lbl_8036db98 +/* 8036DBA8 4BFFE5F1 */ bl func_8036c198 +/* 8036DBAC 546302D2 */ rlwinm r3, r3, 0, 0xb, 9 +/* 8036DBB0 4BFFE5F1 */ bl func_8036c1a0 +/* 8036DBB4 48000004 */ b lbl_8036dbb8 +lbl_8036dbb8: +/* 8036DBB8 3C60804F */ lis r3, lbl_804eedf0@ha +/* 8036DBBC 3BE3EDF0 */ addi r31, r3, lbl_804eedf0@l +/* 8036DBC0 48000004 */ b lbl_8036dbc4 +lbl_8036dbc4: +/* 8036DBC4 48000010 */ b lbl_8036dbd4 +lbl_8036dbc8: +/* 8036DBC8 7FE3FB78 */ mr r3, r31 +/* 8036DBCC 4CC63182 */ crclr 6 +/* 8036DBD0 4BFFE6E1 */ bl func_8036c2b0 +lbl_8036dbd4: +/* 8036DBD4 4BFFE5C5 */ bl func_8036c198 +/* 8036DBD8 546007FE */ clrlwi r0, r3, 0x1f +/* 8036DBDC 28000000 */ cmplwi r0, 0 +/* 8036DBE0 4082FFE8 */ bne+ lbl_8036dbc8 +/* 8036DBE4 80010014 */ lwz r0, 0x14(r1) +/* 8036DBE8 83E1000C */ lwz r31, 0xc(r1) +/* 8036DBEC 38210010 */ addi r1, r1, 0x10 +/* 8036DBF0 7C0803A6 */ mtlr r0 +/* 8036DBF4 4E800020 */ blr +.size func_8036db60, . - func_8036db60 + + +.global func_8036dbf8 +.type func_8036dbf8, @function +func_8036dbf8: +/* 8036DBF8 7C0802A6 */ mflr r0 +/* 8036DBFC 90010004 */ stw r0, 4(r1) +/* 8036DC00 9421FF80 */ stwu r1, -0x80(r1) +/* 8036DC04 93E1007C */ stw r31, 0x7c(r1) +/* 8036DC08 93C10078 */ stw r30, 0x78(r1) +/* 8036DC0C 93A10074 */ stw r29, 0x74(r1) +/* 8036DC10 40860024 */ bne- cr1, lbl_8036dc34 +/* 8036DC14 D8210028 */ stfd f1, 0x28(r1) +/* 8036DC18 D8410030 */ stfd f2, 0x30(r1) +/* 8036DC1C D8610038 */ stfd f3, 0x38(r1) +/* 8036DC20 D8810040 */ stfd f4, 0x40(r1) +/* 8036DC24 D8A10048 */ stfd f5, 0x48(r1) +/* 8036DC28 D8C10050 */ stfd f6, 0x50(r1) +/* 8036DC2C D8E10058 */ stfd f7, 0x58(r1) +/* 8036DC30 D9010060 */ stfd f8, 0x60(r1) +lbl_8036dc34: +/* 8036DC34 90610008 */ stw r3, 8(r1) +/* 8036DC38 9081000C */ stw r4, 0xc(r1) +/* 8036DC3C 90A10010 */ stw r5, 0x10(r1) +/* 8036DC40 90C10014 */ stw r6, 0x14(r1) +/* 8036DC44 90E10018 */ stw r7, 0x18(r1) +/* 8036DC48 9101001C */ stw r8, 0x1c(r1) +/* 8036DC4C 91210020 */ stw r9, 0x20(r1) +/* 8036DC50 91410024 */ stw r10, 0x24(r1) +/* 8036DC54 7C9D2378 */ mr r29, r4 +/* 8036DC58 3C60804F */ lis r3, lbl_804eedf0@ha +/* 8036DC5C 3BE3EDF0 */ addi r31, r3, lbl_804eedf0@l +/* 8036DC60 4BFFE56D */ bl func_8036c1cc +/* 8036DC64 7C7E1B78 */ mr r30, r3 +/* 8036DC68 4CC63182 */ crclr 6 +/* 8036DC6C 387F002C */ addi r3, r31, 0x2c +/* 8036DC70 48000A45 */ bl func_8036e6b4 +/* 8036DC74 80BD019C */ lwz r5, 0x19c(r29) +/* 8036DC78 7FC4F378 */ mr r4, r30 +/* 8036DC7C 387F0044 */ addi r3, r31, 0x44 +/* 8036DC80 4CC63182 */ crclr 6 +/* 8036DC84 48000A31 */ bl func_8036e6b4 +/* 8036DC88 57C00216 */ rlwinm r0, r30, 0, 8, 0xb +/* 8036DC8C 28000000 */ cmplwi r0, 0 +/* 8036DC90 41820014 */ beq- lbl_8036dca4 +/* 8036DC94 801D019C */ lwz r0, 0x19c(r29) +/* 8036DC98 54000294 */ rlwinm r0, r0, 0, 0xa, 0xa +/* 8036DC9C 28000000 */ cmplwi r0, 0 +/* 8036DCA0 4082001C */ bne- lbl_8036dcbc +lbl_8036dca4: +/* 8036DCA4 387F0060 */ addi r3, r31, 0x60 +/* 8036DCA8 4CC63182 */ crclr 6 +/* 8036DCAC 48000A09 */ bl func_8036e6b4 +/* 8036DCB0 7FA3EB78 */ mr r3, r29 +/* 8036DCB4 4800068D */ bl func_8036e340 +/* 8036DCB8 4BFFE501 */ bl func_8036c1b8 +lbl_8036dcbc: +/* 8036DCBC 387F0090 */ addi r3, r31, 0x90 +/* 8036DCC0 4CC63182 */ crclr 6 +/* 8036DCC4 480009F1 */ bl func_8036e6b4 +/* 8036DCC8 387F00CC */ addi r3, r31, 0xcc +/* 8036DCCC 4CC63182 */ crclr 6 +/* 8036DCD0 480009E5 */ bl func_8036e6b4 +/* 8036DCD4 57C00210 */ rlwinm r0, r30, 0, 8, 8 +/* 8036DCD8 28000000 */ cmplwi r0, 0 +/* 8036DCDC 41820010 */ beq- lbl_8036dcec +/* 8036DCE0 387F0104 */ addi r3, r31, 0x104 +/* 8036DCE4 4CC63182 */ crclr 6 +/* 8036DCE8 480009CD */ bl func_8036e6b4 +lbl_8036dcec: +/* 8036DCEC 57C00252 */ rlwinm r0, r30, 0, 9, 9 +/* 8036DCF0 28000000 */ cmplwi r0, 0 +/* 8036DCF4 41820010 */ beq- lbl_8036dd04 +/* 8036DCF8 387F0144 */ addi r3, r31, 0x144 +/* 8036DCFC 4CC63182 */ crclr 6 +/* 8036DD00 480009B5 */ bl func_8036e6b4 +lbl_8036dd04: +/* 8036DD04 57C00294 */ rlwinm r0, r30, 0, 0xa, 0xa +/* 8036DD08 28000000 */ cmplwi r0, 0 +/* 8036DD0C 41820010 */ beq- lbl_8036dd1c +/* 8036DD10 387F0170 */ addi r3, r31, 0x170 +/* 8036DD14 4CC63182 */ crclr 6 +/* 8036DD18 4800099D */ bl func_8036e6b4 +lbl_8036dd1c: +/* 8036DD1C 57C002D6 */ rlwinm r0, r30, 0, 0xb, 0xb +/* 8036DD20 28000000 */ cmplwi r0, 0 +/* 8036DD24 41820010 */ beq- lbl_8036dd34 +/* 8036DD28 387F0190 */ addi r3, r31, 0x190 +/* 8036DD2C 4CC63182 */ crclr 6 +/* 8036DD30 48000985 */ bl func_8036e6b4 +lbl_8036dd34: +/* 8036DD34 7FC3F378 */ mr r3, r30 +/* 8036DD38 4BFFE49D */ bl func_8036c1d4 +/* 8036DD3C 80010084 */ lwz r0, 0x84(r1) +/* 8036DD40 83E1007C */ lwz r31, 0x7c(r1) +/* 8036DD44 83C10078 */ lwz r30, 0x78(r1) +/* 8036DD48 83A10074 */ lwz r29, 0x74(r1) +/* 8036DD4C 38210080 */ addi r1, r1, 0x80 +/* 8036DD50 7C0803A6 */ mtlr r0 +/* 8036DD54 4E800020 */ blr +.size func_8036dbf8, . - func_8036dbf8 + + +.global func_8036dd58 +.type func_8036dd58, @function +func_8036dd58: +/* 8036DD58 7C0802A6 */ mflr r0 +/* 8036DD5C 90010004 */ stw r0, 4(r1) +/* 8036DD60 9421FFF0 */ stwu r1, -0x10(r1) +/* 8036DD64 93E1000C */ stw r31, 0xc(r1) +/* 8036DD68 93C10008 */ stw r30, 8(r1) +/* 8036DD6C 3C60804F */ lis r3, lbl_804eedf0@ha +/* 8036DD70 3BE3EDF0 */ addi r31, r3, lbl_804eedf0@l +/* 8036DD74 4BFFE415 */ bl func_8036c188 +/* 8036DD78 54600420 */ rlwinm r0, r3, 0, 0x10, 0x10 +/* 8036DD7C 28000000 */ cmplwi r0, 0 +/* 8036DD80 40820014 */ bne- lbl_8036dd94 +/* 8036DD84 4BFFFC9D */ bl func_8036da20 +/* 8036DD88 387F01AC */ addi r3, r31, 0x1ac +/* 8036DD8C 4CC63182 */ crclr 6 +/* 8036DD90 4BFFE521 */ bl func_8036c2b0 +lbl_8036dd94: +/* 8036DD94 4BFFE3F5 */ bl func_8036c188 +/* 8036DD98 54600462 */ rlwinm r0, r3, 0, 0x11, 0x11 +/* 8036DD9C 28000000 */ cmplwi r0, 0 +/* 8036DDA0 40820014 */ bne- lbl_8036ddb4 +/* 8036DDA4 4BFFFB29 */ bl func_8036d8cc +/* 8036DDA8 387F01C8 */ addi r3, r31, 0x1c8 +/* 8036DDAC 4CC63182 */ crclr 6 +/* 8036DDB0 4BFFE501 */ bl func_8036c2b0 +lbl_8036ddb4: +/* 8036DDB4 4BFFE3E5 */ bl func_8036c198 +/* 8036DDB8 54600000 */ rlwinm r0, r3, 0, 0, 0 +/* 8036DDBC 28000000 */ cmplwi r0, 0 +/* 8036DDC0 40820058 */ bne- lbl_8036de18 +/* 8036DDC4 4BFFE3B5 */ bl func_8036c178 +/* 8036DDC8 7C7E1B78 */ mr r30, r3 +/* 8036DDCC 7C0004AC */ sync 0 +/* 8036DDD0 38600030 */ li r3, 0x30 +/* 8036DDD4 4BFFE3AD */ bl func_8036c180 +/* 8036DDD8 7C0004AC */ sync 0 +/* 8036DDDC 7C0004AC */ sync 0 +/* 8036DDE0 4BFFE3B9 */ bl func_8036c198 +/* 8036DDE4 5463007E */ clrlwi r3, r3, 1 +/* 8036DDE8 4BFFE3B9 */ bl func_8036c1a0 +/* 8036DDEC 7C0004AC */ sync 0 +/* 8036DDF0 4BFFFD71 */ bl func_8036db60 +/* 8036DDF4 7FC3F378 */ mr r3, r30 +/* 8036DDF8 4BFFE389 */ bl func_8036c180 +/* 8036DDFC 4BFFE39D */ bl func_8036c198 +/* 8036DE00 64608000 */ oris r0, r3, 0x8000 +/* 8036DE04 540302D2 */ rlwinm r3, r0, 0, 0xb, 9 +/* 8036DE08 4BFFE399 */ bl func_8036c1a0 +/* 8036DE0C 387F01E4 */ addi r3, r31, 0x1e4 +/* 8036DE10 4CC63182 */ crclr 6 +/* 8036DE14 4BFFE49D */ bl func_8036c2b0 +lbl_8036de18: +/* 8036DE18 3C608037 */ lis r3, func_8036dbf8@ha +/* 8036DE1C 3883DBF8 */ addi r4, r3, func_8036dbf8@l +/* 8036DE20 38600001 */ li r3, 0x1 +/* 8036DE24 48000A3D */ bl func_8036e860 +/* 8036DE28 387F01FC */ addi r3, r31, 0x1fc +/* 8036DE2C 4CC63182 */ crclr 6 +/* 8036DE30 4BFFE481 */ bl func_8036c2b0 +/* 8036DE34 80010014 */ lwz r0, 0x14(r1) +/* 8036DE38 83E1000C */ lwz r31, 0xc(r1) +/* 8036DE3C 83C10008 */ lwz r30, 8(r1) +/* 8036DE40 38210010 */ addi r1, r1, 0x10 +/* 8036DE44 7C0803A6 */ mtlr r0 +/* 8036DE48 4E800020 */ blr +.size func_8036dd58, . - func_8036dd58 + diff --git a/asm/Dolphin/os/OSContext-data.s b/asm/Dolphin/os/OSContext-data.s new file mode 100644 index 0000000..087b4a0 --- /dev/null +++ b/asm/Dolphin/os/OSContext-data.s @@ -0,0 +1,135 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804ef020 +.type lbl_804ef020, @object +lbl_804ef020: +/* 804EF020 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF024 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF028 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF02C 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF030 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF034 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF038 2D20436F */ .4byte 0x2d20436f +/* 804EF03C 6E746578 */ .4byte 0x6e746578 +/* 804EF040 74203078 */ .4byte 0x74203078 +/* 804EF044 25303878 */ .4byte 0x25303878 +/* 804EF048 202D2D2D */ .4byte 0x202d2d2d +/* 804EF04C 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF050 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF054 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF058 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF05C 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF060 2D2D0A00 */ .4byte 0x2d2d0a00 +/* 804EF064 72252D32 */ .4byte 0x72252d32 +/* 804EF068 6420203D */ .4byte 0x6420203d +/* 804EF06C 20307825 */ .4byte 0x20307825 +/* 804EF070 30387820 */ .4byte 0x30387820 +/* 804EF074 28253134 */ .4byte 0x28253134 +/* 804EF078 64292020 */ .4byte 0x64292020 +/* 804EF07C 72252D32 */ .4byte 0x72252d32 +/* 804EF080 6420203D */ .4byte 0x6420203d +/* 804EF084 20307825 */ .4byte 0x20307825 +/* 804EF088 30387820 */ .4byte 0x30387820 +/* 804EF08C 28253134 */ .4byte 0x28253134 +/* 804EF090 64290A00 */ .4byte 0x64290a00 +/* 804EF094 4C522020 */ .4byte 0x4c522020 +/* 804EF098 203D2030 */ .4byte 0x203d2030 +/* 804EF09C 78253038 */ .4byte 0x78253038 +/* 804EF0A0 78202020 */ .4byte 0x78202020 +/* 804EF0A4 20202020 */ .4byte 0x20202020 +/* 804EF0A8 20202020 */ .4byte 0x20202020 +/* 804EF0AC 20202020 */ .4byte 0x20202020 +/* 804EF0B0 20202020 */ .4byte 0x20202020 +/* 804EF0B4 43522020 */ .4byte 0x43522020 +/* 804EF0B8 203D2030 */ .4byte 0x203d2030 +/* 804EF0BC 78253038 */ .4byte 0x78253038 +/* 804EF0C0 780A0000 */ .4byte 0x780a0000 +/* 804EF0C4 53525230 */ .4byte 0x53525230 +/* 804EF0C8 203D2030 */ .4byte 0x203d2030 +/* 804EF0CC 78253038 */ .4byte 0x78253038 +/* 804EF0D0 78202020 */ .4byte 0x78202020 +/* 804EF0D4 20202020 */ .4byte 0x20202020 +/* 804EF0D8 20202020 */ .4byte 0x20202020 +/* 804EF0DC 20202020 */ .4byte 0x20202020 +/* 804EF0E0 20202020 */ .4byte 0x20202020 +/* 804EF0E4 53525231 */ .4byte 0x53525231 +/* 804EF0E8 203D2030 */ .4byte 0x203d2030 +/* 804EF0EC 78253038 */ .4byte 0x78253038 +/* 804EF0F0 780A0000 */ .4byte 0x780a0000 +/* 804EF0F4 0A475152 */ .4byte 0x0a475152 +/* 804EF0F8 732D2D2D */ .4byte 0x732d2d2d +/* 804EF0FC 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF100 2D2D2D0A */ .4byte 0x2d2d2d0a +/* 804EF104 00000000 */ .4byte 0x00000000 +/* 804EF108 67717225 */ .4byte 0x67717225 +/* 804EF10C 64203D20 */ .4byte 0x64203d20 +/* 804EF110 30782530 */ .4byte 0x30782530 +/* 804EF114 38782009 */ .4byte 0x38782009 +/* 804EF118 20677172 */ .4byte 0x20677172 +/* 804EF11C 2564203D */ .4byte 0x2564203d +/* 804EF120 20307825 */ .4byte 0x20307825 +/* 804EF124 3038780A */ .4byte 0x3038780a +/* 804EF128 00000000 */ .4byte 0x00000000 +/* 804EF12C 0A0A4650 */ .4byte 0x0a0a4650 +/* 804EF130 52732D2D */ .4byte 0x52732d2d +/* 804EF134 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF138 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF13C 0A000000 */ .4byte 0x0a000000 +/* 804EF140 66722564 */ .4byte 0x66722564 +/* 804EF144 20093D20 */ .4byte 0x20093d20 +/* 804EF148 25642009 */ .4byte 0x25642009 +/* 804EF14C 20667225 */ .4byte 0x20667225 +/* 804EF150 6420093D */ .4byte 0x6420093d +/* 804EF154 2025640A */ .4byte 0x2025640a +/* 804EF158 00000000 */ .4byte 0x00000000 +/* 804EF15C 0A0A5053 */ .4byte 0x0a0a5053 +/* 804EF160 46732D2D */ .4byte 0x46732d2d +/* 804EF164 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF168 2D2D2D2D */ .4byte 0x2d2d2d2d +/* 804EF16C 0A000000 */ .4byte 0x0a000000 +/* 804EF170 70732564 */ .4byte 0x70732564 +/* 804EF174 20093D20 */ .4byte 0x20093d20 +/* 804EF178 30782578 */ .4byte 0x30782578 +/* 804EF17C 20092070 */ .4byte 0x20092070 +/* 804EF180 73256420 */ .4byte 0x73256420 +/* 804EF184 093D2030 */ .4byte 0x093d2030 +/* 804EF188 7825780A */ .4byte 0x7825780a +/* 804EF18C 00000000 */ .4byte 0x00000000 +/* 804EF190 0A416464 */ .4byte 0x0a416464 +/* 804EF194 72657373 */ .4byte 0x72657373 +/* 804EF198 3A202020 */ .4byte 0x3a202020 +/* 804EF19C 20202042 */ .4byte 0x20202042 +/* 804EF1A0 61636B20 */ .4byte 0x61636b20 +/* 804EF1A4 43686169 */ .4byte 0x43686169 +/* 804EF1A8 6E202020 */ .4byte 0x6e202020 +/* 804EF1AC 204C5220 */ .4byte 0x204c5220 +/* 804EF1B0 53617665 */ .4byte 0x53617665 +/* 804EF1B4 0A000000 */ .4byte 0x0a000000 +/* 804EF1B8 30782530 */ .4byte 0x30782530 +/* 804EF1BC 38783A20 */ .4byte 0x38783a20 +/* 804EF1C0 20203078 */ .4byte 0x20203078 +/* 804EF1C4 25303878 */ .4byte 0x25303878 +/* 804EF1C8 20202020 */ .4byte 0x20202020 +/* 804EF1CC 30782530 */ .4byte 0x30782530 +/* 804EF1D0 38780A00 */ .4byte 0x38780a00 +.size lbl_804ef020, . - lbl_804ef020 + + +.global lbl_804ef1d4 +.type lbl_804ef1d4, @object +lbl_804ef1d4: +/* 804EF1D4 4650552D */ .4byte 0x4650552d +/* 804EF1D8 756E6176 */ .4byte 0x756e6176 +/* 804EF1DC 61696C61 */ .4byte 0x61696c61 +/* 804EF1E0 626C6520 */ .4byte 0x626c6520 +/* 804EF1E4 68616E64 */ .4byte 0x68616e64 +/* 804EF1E8 6C657220 */ .4byte 0x6c657220 +/* 804EF1EC 696E7374 */ .4byte 0x696e7374 +/* 804EF1F0 616C6C65 */ .4byte 0x616c6c65 +/* 804EF1F4 640A0000 */ .4byte 0x640a0000 +.size lbl_804ef1d4, . - lbl_804ef1d4 + diff --git a/asm/Dolphin/os/OSContext.s b/asm/Dolphin/os/OSContext.s new file mode 100644 index 0000000..23fa01a --- /dev/null +++ b/asm/Dolphin/os/OSContext.s @@ -0,0 +1,643 @@ +.include "macros.inc" + +.section .text + +.global func_8036de4c +.type func_8036de4c, @function +func_8036de4c: +/* 8036DE4C A0A401A2 */ lhz r5, 0x1a2(r4) +/* 8036DE50 54A507FF */ clrlwi. r5, r5, 0x1f +/* 8036DE54 41820118 */ beq- lbl_8036df6c +/* 8036DE58 C8040190 */ lfd f0, 0x190(r4) +/* 8036DE5C FDFE058E */ mtfsf 0xff, f0 +/* 8036DE60 7CB8E2A6 */ mfspr r5, 0x398 +/* 8036DE64 54A51FFF */ rlwinm. r5, r5, 3, 0x1f, 0x1f +/* 8036DE68 41820084 */ beq- lbl_8036deec +/* 8036DE6C E00401C8 */ .4byte 0xe00401c8 +/* 8036DE70 E02401D0 */ .4byte 0xe02401d0 +/* 8036DE74 E04401D8 */ .4byte 0xe04401d8 +/* 8036DE78 E06401E0 */ .4byte 0xe06401e0 +/* 8036DE7C E08401E8 */ .4byte 0xe08401e8 +/* 8036DE80 E0A401F0 */ .4byte 0xe0a401f0 +/* 8036DE84 E0C401F8 */ .4byte 0xe0c401f8 +/* 8036DE88 E0E40200 */ .4byte 0xe0e40200 +/* 8036DE8C E1040208 */ .4byte 0xe1040208 +/* 8036DE90 E1240210 */ .4byte 0xe1240210 +/* 8036DE94 E1440218 */ .4byte 0xe1440218 +/* 8036DE98 E1640220 */ .4byte 0xe1640220 +/* 8036DE9C E1840228 */ .4byte 0xe1840228 +/* 8036DEA0 E1A40230 */ .4byte 0xe1a40230 +/* 8036DEA4 E1C40238 */ .4byte 0xe1c40238 +/* 8036DEA8 E1E40240 */ .4byte 0xe1e40240 +/* 8036DEAC E2040248 */ .4byte 0xe2040248 +/* 8036DEB0 E2240250 */ .4byte 0xe2240250 +/* 8036DEB4 E2440258 */ .4byte 0xe2440258 +/* 8036DEB8 E2640260 */ .4byte 0xe2640260 +/* 8036DEBC E2840268 */ .4byte 0xe2840268 +/* 8036DEC0 E2A40270 */ .4byte 0xe2a40270 +/* 8036DEC4 E2C40278 */ .4byte 0xe2c40278 +/* 8036DEC8 E2E40280 */ .4byte 0xe2e40280 +/* 8036DECC E3040288 */ .4byte 0xe3040288 +/* 8036DED0 E3240290 */ .4byte 0xe3240290 +/* 8036DED4 E3440298 */ .4byte 0xe3440298 +/* 8036DED8 E36402A0 */ .4byte 0xe36402a0 +/* 8036DEDC E38402A8 */ .4byte 0xe38402a8 +/* 8036DEE0 E3A402B0 */ .4byte 0xe3a402b0 +/* 8036DEE4 E3C402B8 */ .4byte 0xe3c402b8 +/* 8036DEE8 E3E402C0 */ .4byte 0xe3e402c0 +lbl_8036deec: +/* 8036DEEC C8040090 */ lfd f0, 0x90(r4) +/* 8036DEF0 C8240098 */ lfd f1, 0x98(r4) +/* 8036DEF4 C84400A0 */ lfd f2, 0xa0(r4) +/* 8036DEF8 C86400A8 */ lfd f3, 0xa8(r4) +/* 8036DEFC C88400B0 */ lfd f4, 0xb0(r4) +/* 8036DF00 C8A400B8 */ lfd f5, 0xb8(r4) +/* 8036DF04 C8C400C0 */ lfd f6, 0xc0(r4) +/* 8036DF08 C8E400C8 */ lfd f7, 0xc8(r4) +/* 8036DF0C C90400D0 */ lfd f8, 0xd0(r4) +/* 8036DF10 C92400D8 */ lfd f9, 0xd8(r4) +/* 8036DF14 C94400E0 */ lfd f10, 0xe0(r4) +/* 8036DF18 C96400E8 */ lfd f11, 0xe8(r4) +/* 8036DF1C C98400F0 */ lfd f12, 0xf0(r4) +/* 8036DF20 C9A400F8 */ lfd f13, 0xf8(r4) +/* 8036DF24 C9C40100 */ lfd f14, 0x100(r4) +/* 8036DF28 C9E40108 */ lfd f15, 0x108(r4) +/* 8036DF2C CA040110 */ lfd f16, 0x110(r4) +/* 8036DF30 CA240118 */ lfd f17, 0x118(r4) +/* 8036DF34 CA440120 */ lfd f18, 0x120(r4) +/* 8036DF38 CA640128 */ lfd f19, 0x128(r4) +/* 8036DF3C CA840130 */ lfd f20, 0x130(r4) +/* 8036DF40 CAA40138 */ lfd f21, 0x138(r4) +/* 8036DF44 CAC40140 */ lfd f22, 0x140(r4) +/* 8036DF48 CAE40148 */ lfd f23, 0x148(r4) +/* 8036DF4C CB040150 */ lfd f24, 0x150(r4) +/* 8036DF50 CB240158 */ lfd f25, 0x158(r4) +/* 8036DF54 CB440160 */ lfd f26, 0x160(r4) +/* 8036DF58 CB640168 */ lfd f27, 0x168(r4) +/* 8036DF5C CB840170 */ lfd f28, 0x170(r4) +/* 8036DF60 CBA40178 */ lfd f29, 0x178(r4) +/* 8036DF64 CBC40180 */ lfd f30, 0x180(r4) +/* 8036DF68 CBE40188 */ lfd f31, 0x188(r4) +lbl_8036df6c: +/* 8036DF6C 4E800020 */ blr +.size func_8036de4c, . - func_8036de4c + + +.global func_8036df70 +.type func_8036df70, @function +func_8036df70: +/* 8036DF70 A06501A2 */ lhz r3, 0x1a2(r5) +/* 8036DF74 60630001 */ ori r3, r3, 1 +/* 8036DF78 B06501A2 */ sth r3, 0x1a2(r5) +/* 8036DF7C D8050090 */ stfd f0, 0x90(r5) +/* 8036DF80 D8250098 */ stfd f1, 0x98(r5) +/* 8036DF84 D84500A0 */ stfd f2, 0xa0(r5) +/* 8036DF88 D86500A8 */ stfd f3, 0xa8(r5) +/* 8036DF8C D88500B0 */ stfd f4, 0xb0(r5) +/* 8036DF90 D8A500B8 */ stfd f5, 0xb8(r5) +/* 8036DF94 D8C500C0 */ stfd f6, 0xc0(r5) +/* 8036DF98 D8E500C8 */ stfd f7, 0xc8(r5) +/* 8036DF9C D90500D0 */ stfd f8, 0xd0(r5) +/* 8036DFA0 D92500D8 */ stfd f9, 0xd8(r5) +/* 8036DFA4 D94500E0 */ stfd f10, 0xe0(r5) +/* 8036DFA8 D96500E8 */ stfd f11, 0xe8(r5) +/* 8036DFAC D98500F0 */ stfd f12, 0xf0(r5) +/* 8036DFB0 D9A500F8 */ stfd f13, 0xf8(r5) +/* 8036DFB4 D9C50100 */ stfd f14, 0x100(r5) +/* 8036DFB8 D9E50108 */ stfd f15, 0x108(r5) +/* 8036DFBC DA050110 */ stfd f16, 0x110(r5) +/* 8036DFC0 DA250118 */ stfd f17, 0x118(r5) +/* 8036DFC4 DA450120 */ stfd f18, 0x120(r5) +/* 8036DFC8 DA650128 */ stfd f19, 0x128(r5) +/* 8036DFCC DA850130 */ stfd f20, 0x130(r5) +/* 8036DFD0 DAA50138 */ stfd f21, 0x138(r5) +/* 8036DFD4 DAC50140 */ stfd f22, 0x140(r5) +/* 8036DFD8 DAE50148 */ stfd f23, 0x148(r5) +/* 8036DFDC DB050150 */ stfd f24, 0x150(r5) +/* 8036DFE0 DB250158 */ stfd f25, 0x158(r5) +/* 8036DFE4 DB450160 */ stfd f26, 0x160(r5) +/* 8036DFE8 DB650168 */ stfd f27, 0x168(r5) +/* 8036DFEC DB850170 */ stfd f28, 0x170(r5) +/* 8036DFF0 DBA50178 */ stfd f29, 0x178(r5) +/* 8036DFF4 DBC50180 */ stfd f30, 0x180(r5) +/* 8036DFF8 DBE50188 */ stfd f31, 0x188(r5) +/* 8036DFFC FC00048E */ mffs f0 +/* 8036E000 D8050190 */ stfd f0, 0x190(r5) +/* 8036E004 C8050090 */ lfd f0, 0x90(r5) +/* 8036E008 7C78E2A6 */ mfspr r3, 0x398 +/* 8036E00C 54631FFF */ rlwinm. r3, r3, 3, 0x1f, 0x1f +/* 8036E010 41820084 */ beq- lbl_8036e094 +/* 8036E014 F00501C8 */ .4byte 0xf00501c8 +/* 8036E018 F02501D0 */ .4byte 0xf02501d0 +/* 8036E01C F04501D8 */ .4byte 0xf04501d8 +/* 8036E020 F06501E0 */ .4byte 0xf06501e0 +/* 8036E024 F08501E8 */ .4byte 0xf08501e8 +/* 8036E028 F0A501F0 */ .4byte 0xf0a501f0 +/* 8036E02C F0C501F8 */ .4byte 0xf0c501f8 +/* 8036E030 F0E50200 */ .4byte 0xf0e50200 +/* 8036E034 F1050208 */ .4byte 0xf1050208 +/* 8036E038 F1250210 */ .4byte 0xf1250210 +/* 8036E03C F1450218 */ .4byte 0xf1450218 +/* 8036E040 F1650220 */ .4byte 0xf1650220 +/* 8036E044 F1850228 */ .4byte 0xf1850228 +/* 8036E048 F1A50230 */ .4byte 0xf1a50230 +/* 8036E04C F1C50238 */ .4byte 0xf1c50238 +/* 8036E050 F1E50240 */ .4byte 0xf1e50240 +/* 8036E054 F2050248 */ .4byte 0xf2050248 +/* 8036E058 F2250250 */ .4byte 0xf2250250 +/* 8036E05C F2450258 */ .4byte 0xf2450258 +/* 8036E060 F2650260 */ .4byte 0xf2650260 +/* 8036E064 F2850268 */ .4byte 0xf2850268 +/* 8036E068 F2A50270 */ .4byte 0xf2a50270 +/* 8036E06C F2C50278 */ .4byte 0xf2c50278 +/* 8036E070 F2E50280 */ .4byte 0xf2e50280 +/* 8036E074 F3050288 */ .4byte 0xf3050288 +/* 8036E078 F3250290 */ .4byte 0xf3250290 +/* 8036E07C F3450298 */ .4byte 0xf3450298 +/* 8036E080 F36502A0 */ .4byte 0xf36502a0 +/* 8036E084 F38502A8 */ .4byte 0xf38502a8 +/* 8036E088 F3A502B0 */ .4byte 0xf3a502b0 +/* 8036E08C F3C502B8 */ .4byte 0xf3c502b8 +/* 8036E090 F3E502C0 */ .4byte 0xf3e502c0 +lbl_8036e094: +/* 8036E094 4E800020 */ blr +.size func_8036df70, . - func_8036df70 + + +.global func_8036e098 +.type func_8036e098, @function +func_8036e098: +/* 8036E098 3C808000 */ lis r4, 0x8000 +/* 8036E09C 906400D4 */ stw r3, 0xd4(r4) +/* 8036E0A0 546500BE */ clrlwi r5, r3, 2 +/* 8036E0A4 90A400C0 */ stw r5, 0xc0(r4) +/* 8036E0A8 80A400D8 */ lwz r5, 0xd8(r4) +/* 8036E0AC 7C051800 */ cmpw r5, r3 +/* 8036E0B0 40820020 */ bne- lbl_8036e0d0 +/* 8036E0B4 80C3019C */ lwz r6, 0x19c(r3) +/* 8036E0B8 60C62000 */ ori r6, r6, 0x2000 +/* 8036E0BC 90C3019C */ stw r6, 0x19c(r3) +/* 8036E0C0 7CC000A6 */ mfmsr r6 +/* 8036E0C4 60C60002 */ ori r6, r6, 2 +/* 8036E0C8 7CC00124 */ mtmsr r6 +/* 8036E0CC 4E800020 */ blr +lbl_8036e0d0: +/* 8036E0D0 80C3019C */ lwz r6, 0x19c(r3) +/* 8036E0D4 54C604E2 */ rlwinm r6, r6, 0, 0x13, 0x11 +/* 8036E0D8 90C3019C */ stw r6, 0x19c(r3) +/* 8036E0DC 7CC000A6 */ mfmsr r6 +/* 8036E0E0 54C604E2 */ rlwinm r6, r6, 0, 0x13, 0x11 +/* 8036E0E4 60C60002 */ ori r6, r6, 2 +/* 8036E0E8 7CC00124 */ mtmsr r6 +/* 8036E0EC 4C00012C */ isync +/* 8036E0F0 4E800020 */ blr +.size func_8036e098, . - func_8036e098 + + +.global func_8036e0f4 +.type func_8036e0f4, @function +func_8036e0f4: +/* 8036E0F4 3C608000 */ lis r3, 0x8000 +/* 8036E0F8 806300D4 */ lwz r3, 0xd4(r3) +/* 8036E0FC 4E800020 */ blr +.size func_8036e0f4, . - func_8036e0f4 + + +.global func_8036e100 +.type func_8036e100, @function +func_8036e100: +/* 8036E100 BDA30034 */ stmw r13, 0x34(r3) +/* 8036E104 7C11E2A6 */ mfspr r0, 0x391 +/* 8036E108 900301A8 */ stw r0, 0x1a8(r3) +/* 8036E10C 7C12E2A6 */ mfspr r0, 0x392 +/* 8036E110 900301AC */ stw r0, 0x1ac(r3) +/* 8036E114 7C13E2A6 */ mfspr r0, 0x393 +/* 8036E118 900301B0 */ stw r0, 0x1b0(r3) +/* 8036E11C 7C14E2A6 */ mfspr r0, 0x394 +/* 8036E120 900301B4 */ stw r0, 0x1b4(r3) +/* 8036E124 7C15E2A6 */ mfspr r0, 0x395 +/* 8036E128 900301B8 */ stw r0, 0x1b8(r3) +/* 8036E12C 7C16E2A6 */ mfspr r0, 0x396 +/* 8036E130 900301BC */ stw r0, 0x1bc(r3) +/* 8036E134 7C17E2A6 */ mfspr r0, 0x397 +/* 8036E138 900301C0 */ stw r0, 0x1c0(r3) +/* 8036E13C 7C000026 */ mfcr r0 +/* 8036E140 90030080 */ stw r0, 0x80(r3) +/* 8036E144 7C0802A6 */ mflr r0 +/* 8036E148 90030084 */ stw r0, 0x84(r3) +/* 8036E14C 90030198 */ stw r0, 0x198(r3) +/* 8036E150 7C0000A6 */ mfmsr r0 +/* 8036E154 9003019C */ stw r0, 0x19c(r3) +/* 8036E158 7C0902A6 */ mfctr r0 +/* 8036E15C 90030088 */ stw r0, 0x88(r3) +/* 8036E160 7C0102A6 */ mfxer r0 +/* 8036E164 9003008C */ stw r0, 0x8c(r3) +/* 8036E168 90230004 */ stw r1, 4(r3) +/* 8036E16C 90430008 */ stw r2, 8(r3) +/* 8036E170 38000001 */ li r0, 0x1 +/* 8036E174 9003000C */ stw r0, 0xc(r3) +/* 8036E178 38600000 */ li r3, 0x0 +/* 8036E17C 4E800020 */ blr +.size func_8036e100, . - func_8036e100 + + +.global func_8036e180 +.type func_8036e180, @function +func_8036e180: +/* 8036E180 3C808037 */ lis r4, func_8036ead4@ha +/* 8036E184 80C30198 */ lwz r6, 0x198(r3) +/* 8036E188 38A4EAD4 */ addi r5, r4, func_8036ead4@l +/* 8036E18C 7C062840 */ cmplw r6, r5 +/* 8036E190 41800018 */ blt- lbl_8036e1a8 +/* 8036E194 3C808037 */ lis r4, func_8036eae4@ha +/* 8036E198 3804EAE4 */ addi r0, r4, func_8036eae4@l +/* 8036E19C 7C060040 */ cmplw r6, r0 +/* 8036E1A0 41810008 */ bgt- lbl_8036e1a8 +/* 8036E1A4 90A30198 */ stw r5, 0x198(r3) +lbl_8036e1a8: +/* 8036E1A8 80030000 */ lwz r0, 0(r3) +/* 8036E1AC 80230004 */ lwz r1, 4(r3) +/* 8036E1B0 80430008 */ lwz r2, 8(r3) +/* 8036E1B4 A08301A2 */ lhz r4, 0x1a2(r3) +/* 8036E1B8 548507BD */ rlwinm. r5, r4, 0, 0x1e, 0x1e +/* 8036E1BC 41820014 */ beq- lbl_8036e1d0 +/* 8036E1C0 548407FA */ rlwinm r4, r4, 0, 0x1f, 0x1d +/* 8036E1C4 B08301A2 */ sth r4, 0x1a2(r3) +/* 8036E1C8 B8A30014 */ lmw r5, 0x14(r3) +/* 8036E1CC 48000008 */ b lbl_8036e1d4 +lbl_8036e1d0: +/* 8036E1D0 B9A30034 */ lmw r13, 0x34(r3) +lbl_8036e1d4: +/* 8036E1D4 808301A8 */ lwz r4, 0x1a8(r3) +/* 8036E1D8 7C91E3A6 */ mtspr 0x391, r4 +/* 8036E1DC 808301AC */ lwz r4, 0x1ac(r3) +/* 8036E1E0 7C92E3A6 */ mtspr 0x392, r4 +/* 8036E1E4 808301B0 */ lwz r4, 0x1b0(r3) +/* 8036E1E8 7C93E3A6 */ mtspr 0x393, r4 +/* 8036E1EC 808301B4 */ lwz r4, 0x1b4(r3) +/* 8036E1F0 7C94E3A6 */ mtspr 0x394, r4 +/* 8036E1F4 808301B8 */ lwz r4, 0x1b8(r3) +/* 8036E1F8 7C95E3A6 */ mtspr 0x395, r4 +/* 8036E1FC 808301BC */ lwz r4, 0x1bc(r3) +/* 8036E200 7C96E3A6 */ mtspr 0x396, r4 +/* 8036E204 808301C0 */ lwz r4, 0x1c0(r3) +/* 8036E208 7C97E3A6 */ mtspr 0x397, r4 +/* 8036E20C 80830080 */ lwz r4, 0x80(r3) +/* 8036E210 7C8FF120 */ mtcrf 0xff, r4 +/* 8036E214 80830084 */ lwz r4, 0x84(r3) +/* 8036E218 7C8803A6 */ mtlr r4 +/* 8036E21C 80830088 */ lwz r4, 0x88(r3) +/* 8036E220 7C8903A6 */ mtctr r4 +/* 8036E224 8083008C */ lwz r4, 0x8c(r3) +/* 8036E228 7C8103A6 */ mtxer r4 +/* 8036E22C 7C8000A6 */ mfmsr r4 +/* 8036E230 5484045E */ rlwinm r4, r4, 0, 0x11, 0xf +/* 8036E234 548407FA */ rlwinm r4, r4, 0, 0x1f, 0x1d +/* 8036E238 7C800124 */ mtmsr r4 +/* 8036E23C 80830198 */ lwz r4, 0x198(r3) +/* 8036E240 7C9A03A6 */ mtspr 0x1a, r4 +/* 8036E244 8083019C */ lwz r4, 0x19c(r3) +/* 8036E248 7C9B03A6 */ mtspr 0x1b, r4 +/* 8036E24C 80830010 */ lwz r4, 0x10(r3) +/* 8036E250 8063000C */ lwz r3, 0xc(r3) +/* 8036E254 4C000064 */ rfi +.size func_8036e180, . - func_8036e180 + + +.global func_8036e258 +.type func_8036e258, @function +func_8036e258: +/* 8036E258 7C230B78 */ mr r3, r1 +/* 8036E25C 4E800020 */ blr +.size func_8036e258, . - func_8036e258 + + +.global func_8036e260 +.type func_8036e260, @function +func_8036e260: +/* 8036E260 38A00000 */ li r5, 0x0 +/* 8036E264 B0A301A0 */ sth r5, 0x1a0(r3) +/* 8036E268 3C808000 */ lis r4, 0x8000 +/* 8036E26C B0A301A2 */ sth r5, 0x1a2(r3) +/* 8036E270 800400D8 */ lwz r0, 0xd8(r4) +/* 8036E274 7C030040 */ cmplw r3, r0 +/* 8036E278 40820008 */ bne- lbl_8036e280 +/* 8036E27C 90A400D8 */ stw r5, 0xd8(r4) +lbl_8036e280: +/* 8036E280 4E800020 */ blr +.size func_8036e260, . - func_8036e260 + + +.global func_8036e284 +.type func_8036e284, @function +func_8036e284: +/* 8036E284 90830198 */ stw r4, 0x198(r3) +/* 8036E288 90A30004 */ stw r5, 4(r3) +/* 8036E28C 39600000 */ li r11, 0x0 +/* 8036E290 616B9032 */ ori r11, r11, 0x9032 +/* 8036E294 9163019C */ stw r11, 0x19c(r3) +/* 8036E298 38000000 */ li r0, 0x0 +/* 8036E29C 90030080 */ stw r0, 0x80(r3) +/* 8036E2A0 9003008C */ stw r0, 0x8c(r3) +/* 8036E2A4 90430008 */ stw r2, 8(r3) +/* 8036E2A8 91A30034 */ stw r13, 0x34(r3) +/* 8036E2AC 9003000C */ stw r0, 0xc(r3) +/* 8036E2B0 90030010 */ stw r0, 0x10(r3) +/* 8036E2B4 90030014 */ stw r0, 0x14(r3) +/* 8036E2B8 90030018 */ stw r0, 0x18(r3) +/* 8036E2BC 9003001C */ stw r0, 0x1c(r3) +/* 8036E2C0 90030020 */ stw r0, 0x20(r3) +/* 8036E2C4 90030024 */ stw r0, 0x24(r3) +/* 8036E2C8 90030028 */ stw r0, 0x28(r3) +/* 8036E2CC 9003002C */ stw r0, 0x2c(r3) +/* 8036E2D0 90030030 */ stw r0, 0x30(r3) +/* 8036E2D4 90030038 */ stw r0, 0x38(r3) +/* 8036E2D8 9003003C */ stw r0, 0x3c(r3) +/* 8036E2DC 90030040 */ stw r0, 0x40(r3) +/* 8036E2E0 90030044 */ stw r0, 0x44(r3) +/* 8036E2E4 90030048 */ stw r0, 0x48(r3) +/* 8036E2E8 9003004C */ stw r0, 0x4c(r3) +/* 8036E2EC 90030050 */ stw r0, 0x50(r3) +/* 8036E2F0 90030054 */ stw r0, 0x54(r3) +/* 8036E2F4 90030058 */ stw r0, 0x58(r3) +/* 8036E2F8 9003005C */ stw r0, 0x5c(r3) +/* 8036E2FC 90030060 */ stw r0, 0x60(r3) +/* 8036E300 90030064 */ stw r0, 0x64(r3) +/* 8036E304 90030068 */ stw r0, 0x68(r3) +/* 8036E308 9003006C */ stw r0, 0x6c(r3) +/* 8036E30C 90030070 */ stw r0, 0x70(r3) +/* 8036E310 90030074 */ stw r0, 0x74(r3) +/* 8036E314 90030078 */ stw r0, 0x78(r3) +/* 8036E318 9003007C */ stw r0, 0x7c(r3) +/* 8036E31C 900301A4 */ stw r0, 0x1a4(r3) +/* 8036E320 900301A8 */ stw r0, 0x1a8(r3) +/* 8036E324 900301AC */ stw r0, 0x1ac(r3) +/* 8036E328 900301B0 */ stw r0, 0x1b0(r3) +/* 8036E32C 900301B4 */ stw r0, 0x1b4(r3) +/* 8036E330 900301B8 */ stw r0, 0x1b8(r3) +/* 8036E334 900301BC */ stw r0, 0x1bc(r3) +/* 8036E338 900301C0 */ stw r0, 0x1c0(r3) +/* 8036E33C 4BFFFF24 */ b func_8036e260 +.size func_8036e284, . - func_8036e284 + + +.global func_8036e340 +.type func_8036e340, @function +func_8036e340: +/* 8036E340 7C0802A6 */ mflr r0 +/* 8036E344 90010004 */ stw r0, 4(r1) +/* 8036E348 9421FD08 */ stwu r1, -0x2f8(r1) +/* 8036E34C BF2102DC */ stmw r25, 0x2dc(r1) +/* 8036E350 7C7C1B78 */ mr r28, r3 +/* 8036E354 3C60804F */ lis r3, lbl_804ef020@ha +/* 8036E358 4CC63182 */ crclr 6 +/* 8036E35C 3BE3F020 */ addi r31, r3, lbl_804ef020@l +/* 8036E360 7FE3FB78 */ mr r3, r31 +/* 8036E364 7F84E378 */ mr r4, r28 +/* 8036E368 4800034D */ bl func_8036e6b4 +/* 8036E36C 3B200000 */ li r25, 0x0 +/* 8036E370 5720103A */ slwi r0, r25, 2 +/* 8036E374 7F7C0214 */ add r27, r28, r0 +/* 8036E378 48000004 */ b lbl_8036e37c +lbl_8036e37c: +/* 8036E37C 48000004 */ b lbl_8036e380 +lbl_8036e380: +/* 8036E380 48000004 */ b lbl_8036e384 +lbl_8036e384: +/* 8036E384 811B0040 */ lwz r8, 0x40(r27) +/* 8036E388 7F24CB78 */ mr r4, r25 +/* 8036E38C 80BB0000 */ lwz r5, 0(r27) +/* 8036E390 387F0044 */ addi r3, r31, 0x44 +/* 8036E394 4CC63182 */ crclr 6 +/* 8036E398 7CA62B78 */ mr r6, r5 +/* 8036E39C 7D094378 */ mr r9, r8 +/* 8036E3A0 38F90010 */ addi r7, r25, 0x10 +/* 8036E3A4 48000311 */ bl func_8036e6b4 +/* 8036E3A8 3B7B0004 */ addi r27, r27, 0x4 +/* 8036E3AC 3B390001 */ addi r25, r25, 0x1 +/* 8036E3B0 28190010 */ cmplwi r25, 0x10 +/* 8036E3B4 4180FFD0 */ blt+ lbl_8036e384 +/* 8036E3B8 809C0084 */ lwz r4, 0x84(r28) +/* 8036E3BC 387F0074 */ addi r3, r31, 0x74 +/* 8036E3C0 80BC0080 */ lwz r5, 0x80(r28) +/* 8036E3C4 4CC63182 */ crclr 6 +/* 8036E3C8 480002ED */ bl func_8036e6b4 +/* 8036E3CC 809C0198 */ lwz r4, 0x198(r28) +/* 8036E3D0 387F00A4 */ addi r3, r31, 0xa4 +/* 8036E3D4 80BC019C */ lwz r5, 0x19c(r28) +/* 8036E3D8 4CC63182 */ crclr 6 +/* 8036E3DC 480002D9 */ bl func_8036e6b4 +/* 8036E3E0 387F00D4 */ addi r3, r31, 0xd4 +/* 8036E3E4 4CC63182 */ crclr 6 +/* 8036E3E8 480002CD */ bl func_8036e6b4 +/* 8036E3EC 3B200000 */ li r25, 0x0 +/* 8036E3F0 5720103A */ slwi r0, r25, 2 +/* 8036E3F4 7F7C0214 */ add r27, r28, r0 +/* 8036E3F8 48000004 */ b lbl_8036e3fc +lbl_8036e3fc: +/* 8036E3FC 48000004 */ b lbl_8036e400 +lbl_8036e400: +/* 8036E400 48000004 */ b lbl_8036e404 +lbl_8036e404: +/* 8036E404 80BB01A4 */ lwz r5, 0x1a4(r27) +/* 8036E408 7F24CB78 */ mr r4, r25 +/* 8036E40C 80FB01B4 */ lwz r7, 0x1b4(r27) +/* 8036E410 387F00E8 */ addi r3, r31, 0xe8 +/* 8036E414 38D90004 */ addi r6, r25, 0x4 +/* 8036E418 4CC63182 */ crclr 6 +/* 8036E41C 48000299 */ bl func_8036e6b4 +/* 8036E420 3B7B0004 */ addi r27, r27, 0x4 +/* 8036E424 3B390001 */ addi r25, r25, 0x1 +/* 8036E428 28190004 */ cmplwi r25, 4 +/* 8036E42C 4180FFD8 */ blt+ lbl_8036e404 +/* 8036E430 A01C01A2 */ lhz r0, 0x1a2(r28) +/* 8036E434 540007FE */ clrlwi r0, r0, 0x1f +/* 8036E438 28000000 */ cmplwi r0, 0 +/* 8036E43C 4182013C */ beq- lbl_8036e578 +/* 8036E440 48000695 */ bl func_8036ead4 +/* 8036E444 3CC08000 */ lis r6, 0x8000 +/* 8036E448 800600D4 */ lwz r0, 0xd4(r6) +/* 8036E44C 38A00000 */ li r5, 0x0 +/* 8036E450 38810010 */ addi r4, r1, 0x10 +/* 8036E454 B0A101B0 */ sth r5, 0x1b0(r1) +/* 8036E458 7C1E0378 */ mr r30, r0 +/* 8036E45C 7C7D1B78 */ mr r29, r3 +/* 8036E460 B0A101B2 */ sth r5, 0x1b2(r1) +/* 8036E464 800600D8 */ lwz r0, 0xd8(r6) +/* 8036E468 7C040040 */ cmplw r4, r0 +/* 8036E46C 40820008 */ bne- lbl_8036e474 +/* 8036E470 90A600D8 */ stw r5, 0xd8(r6) +lbl_8036e474: +/* 8036E474 38610010 */ addi r3, r1, 0x10 +/* 8036E478 4BFFFC21 */ bl func_8036e098 +/* 8036E47C 387F010C */ addi r3, r31, 0x10c +/* 8036E480 4CC63182 */ crclr 6 +/* 8036E484 48000231 */ bl func_8036e6b4 +/* 8036E488 3B200000 */ li r25, 0x0 +/* 8036E48C 57201838 */ slwi r0, r25, 3 +/* 8036E490 7F5C0214 */ add r26, r28, r0 +/* 8036E494 48000004 */ b lbl_8036e498 +lbl_8036e498: +/* 8036E498 48000004 */ b lbl_8036e49c +lbl_8036e49c: +/* 8036E49C 48000004 */ b lbl_8036e4a0 +lbl_8036e4a0: +/* 8036E4A0 C83A0098 */ lfd f1, 0x98(r26) +/* 8036E4A4 48024E95 */ bl func_80393338 +/* 8036E4A8 7C7B1B78 */ mr r27, r3 +/* 8036E4AC C83A0090 */ lfd f1, 0x90(r26) +/* 8036E4B0 48024E89 */ bl func_80393338 +/* 8036E4B4 7C651B78 */ mr r5, r3 +/* 8036E4B8 4CC63182 */ crclr 6 +/* 8036E4BC 7F24CB78 */ mr r4, r25 +/* 8036E4C0 7F67DB78 */ mr r7, r27 +/* 8036E4C4 387F0120 */ addi r3, r31, 0x120 +/* 8036E4C8 38D90001 */ addi r6, r25, 0x1 +/* 8036E4CC 480001E9 */ bl func_8036e6b4 +/* 8036E4D0 3B5A0010 */ addi r26, r26, 0x10 +/* 8036E4D4 3B390002 */ addi r25, r25, 0x2 +/* 8036E4D8 28190020 */ cmplwi r25, 0x20 +/* 8036E4DC 4180FFC4 */ blt+ lbl_8036e4a0 +/* 8036E4E0 387F013C */ addi r3, r31, 0x13c +/* 8036E4E4 4CC63182 */ crclr 6 +/* 8036E4E8 480001CD */ bl func_8036e6b4 +/* 8036E4EC 3B200000 */ li r25, 0x0 +/* 8036E4F0 57201838 */ slwi r0, r25, 3 +/* 8036E4F4 7F5C0214 */ add r26, r28, r0 +/* 8036E4F8 48000004 */ b lbl_8036e4fc +lbl_8036e4fc: +/* 8036E4FC 48000004 */ b lbl_8036e500 +lbl_8036e500: +/* 8036E500 48000004 */ b lbl_8036e504 +lbl_8036e504: +/* 8036E504 C83A01D0 */ lfd f1, 0x1d0(r26) +/* 8036E508 48024E31 */ bl func_80393338 +/* 8036E50C 7C7B1B78 */ mr r27, r3 +/* 8036E510 C83A01C8 */ lfd f1, 0x1c8(r26) +/* 8036E514 48024E25 */ bl func_80393338 +/* 8036E518 7C651B78 */ mr r5, r3 +/* 8036E51C 4CC63182 */ crclr 6 +/* 8036E520 7F24CB78 */ mr r4, r25 +/* 8036E524 7F67DB78 */ mr r7, r27 +/* 8036E528 387F0150 */ addi r3, r31, 0x150 +/* 8036E52C 38D90001 */ addi r6, r25, 0x1 +/* 8036E530 48000185 */ bl func_8036e6b4 +/* 8036E534 3B5A0010 */ addi r26, r26, 0x10 +/* 8036E538 3B390002 */ addi r25, r25, 0x2 +/* 8036E53C 28190020 */ cmplwi r25, 0x20 +/* 8036E540 4180FFC4 */ blt+ lbl_8036e504 +/* 8036E544 38A00000 */ li r5, 0x0 +/* 8036E548 B0A101B0 */ sth r5, 0x1b0(r1) +/* 8036E54C 3C608000 */ lis r3, 0x8000 +/* 8036E550 38810010 */ addi r4, r1, 0x10 +/* 8036E554 B0A101B2 */ sth r5, 0x1b2(r1) +/* 8036E558 800300D8 */ lwz r0, 0xd8(r3) +/* 8036E55C 7C040040 */ cmplw r4, r0 +/* 8036E560 40820008 */ bne- lbl_8036e568 +/* 8036E564 90A300D8 */ stw r5, 0xd8(r3) +lbl_8036e568: +/* 8036E568 7FC3F378 */ mr r3, r30 +/* 8036E56C 4BFFFB2D */ bl func_8036e098 +/* 8036E570 7FA3EB78 */ mr r3, r29 +/* 8036E574 48000589 */ bl func_8036eafc +lbl_8036e578: +/* 8036E578 387F0170 */ addi r3, r31, 0x170 +/* 8036E57C 4CC63182 */ crclr 6 +/* 8036E580 48000135 */ bl func_8036e6b4 +/* 8036E584 833C0004 */ lwz r25, 4(r28) +/* 8036E588 3B400000 */ li r26, 0x0 +/* 8036E58C 48000004 */ b lbl_8036e590 +lbl_8036e590: +/* 8036E590 48000004 */ b lbl_8036e594 +lbl_8036e594: +/* 8036E594 48000020 */ b lbl_8036e5b4 +lbl_8036e598: +/* 8036E598 80B90000 */ lwz r5, 0(r25) +/* 8036E59C 7F24CB78 */ mr r4, r25 +/* 8036E5A0 80D90004 */ lwz r6, 4(r25) +/* 8036E5A4 387F0198 */ addi r3, r31, 0x198 +/* 8036E5A8 4CC63182 */ crclr 6 +/* 8036E5AC 48000109 */ bl func_8036e6b4 +/* 8036E5B0 83390000 */ lwz r25, 0(r25) +lbl_8036e5b4: +/* 8036E5B4 28190000 */ cmplwi r25, 0 +/* 8036E5B8 4182001C */ beq- lbl_8036e5d4 +/* 8036E5BC 3C190001 */ addis r0, r25, 1 +/* 8036E5C0 2800FFFF */ cmplwi r0, 0xffff +/* 8036E5C4 41820010 */ beq- lbl_8036e5d4 +/* 8036E5C8 281A0010 */ cmplwi r26, 0x10 +/* 8036E5CC 3B5A0001 */ addi r26, r26, 0x1 +/* 8036E5D0 4180FFC8 */ blt+ lbl_8036e598 +lbl_8036e5d4: +/* 8036E5D4 BB2102DC */ lmw r25, 0x2dc(r1) +/* 8036E5D8 800102FC */ lwz r0, 0x2fc(r1) +/* 8036E5DC 382102F8 */ addi r1, r1, 0x2f8 +/* 8036E5E0 7C0803A6 */ mtlr r0 +/* 8036E5E4 4E800020 */ blr +.size func_8036e340, . - func_8036e340 + + +.global func_8036e5e8 +.type func_8036e5e8, @function +func_8036e5e8: +/* 8036E5E8 7CA000A6 */ mfmsr r5 +/* 8036E5EC 60A52000 */ ori r5, r5, 0x2000 +/* 8036E5F0 7CA00124 */ mtmsr r5 +/* 8036E5F4 4C00012C */ isync +/* 8036E5F8 80A4019C */ lwz r5, 0x19c(r4) +/* 8036E5FC 60A52000 */ ori r5, r5, 0x2000 +/* 8036E600 7CBB03A6 */ mtspr 0x1b, r5 +/* 8036E604 3C608000 */ lis r3, 0x8000 +/* 8036E608 80A300D8 */ lwz r5, 0xd8(r3) +/* 8036E60C 908300D8 */ stw r4, 0xd8(r3) +/* 8036E610 7C052000 */ cmpw r5, r4 +/* 8036E614 41820014 */ beq- lbl_8036e628 +/* 8036E618 2C050000 */ cmpwi r5, 0x0 +/* 8036E61C 41820008 */ beq- lbl_8036e624 +/* 8036E620 4BFFF951 */ bl func_8036df70 +lbl_8036e624: +/* 8036E624 4BFFF829 */ bl func_8036de4c +lbl_8036e628: +/* 8036E628 80640080 */ lwz r3, 0x80(r4) +/* 8036E62C 7C6FF120 */ mtcrf 0xff, r3 +/* 8036E630 80640084 */ lwz r3, 0x84(r4) +/* 8036E634 7C6803A6 */ mtlr r3 +/* 8036E638 80640198 */ lwz r3, 0x198(r4) +/* 8036E63C 7C7A03A6 */ mtspr 0x1a, r3 +/* 8036E640 80640088 */ lwz r3, 0x88(r4) +/* 8036E644 7C6903A6 */ mtctr r3 +/* 8036E648 8064008C */ lwz r3, 0x8c(r4) +/* 8036E64C 7C6103A6 */ mtxer r3 +/* 8036E650 A06401A2 */ lhz r3, 0x1a2(r4) +/* 8036E654 546307FA */ rlwinm r3, r3, 0, 0x1f, 0x1d +/* 8036E658 B06401A2 */ sth r3, 0x1a2(r4) +/* 8036E65C 80A40014 */ lwz r5, 0x14(r4) +/* 8036E660 8064000C */ lwz r3, 0xc(r4) +/* 8036E664 80840010 */ lwz r4, 0x10(r4) +/* 8036E668 4C000064 */ rfi +.size func_8036e5e8, . - func_8036e5e8 + + +.global func_8036e66c +.type func_8036e66c, @function +func_8036e66c: +/* 8036E66C 7C0802A6 */ mflr r0 +/* 8036E670 90010004 */ stw r0, 4(r1) +/* 8036E674 9421FFF8 */ stwu r1, -8(r1) +/* 8036E678 3C608037 */ lis r3, func_8036e5e8@ha +/* 8036E67C 3883E5E8 */ addi r4, r3, func_8036e5e8@l +/* 8036E680 38600007 */ li r3, 0x7 +/* 8036E684 4BFFE469 */ bl func_8036caec +/* 8036E688 38000000 */ li r0, 0x0 +/* 8036E68C 4CC63182 */ crclr 6 +/* 8036E690 3C808000 */ lis r4, 0x8000 +/* 8036E694 3C60804F */ lis r3, lbl_804ef1d4@ha +/* 8036E698 900400D8 */ stw r0, 0xd8(r4) +/* 8036E69C 3863F1D4 */ addi r3, r3, lbl_804ef1d4@l +/* 8036E6A0 4BFFDC11 */ bl func_8036c2b0 +/* 8036E6A4 8001000C */ lwz r0, 0xc(r1) +/* 8036E6A8 38210008 */ addi r1, r1, 0x8 +/* 8036E6AC 7C0803A6 */ mtlr r0 +/* 8036E6B0 4E800020 */ blr +.size func_8036e66c, . - func_8036e66c + diff --git a/asm/Dolphin/os/OSError-data.s b/asm/Dolphin/os/OSError-data.s new file mode 100644 index 0000000..385cc46 --- /dev/null +++ b/asm/Dolphin/os/OSError-data.s @@ -0,0 +1,217 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804ef1f8 +.type lbl_804ef1f8, @object +lbl_804ef1f8: +/* 804EF1F8 20696E20 */ .4byte 0x20696e20 +/* 804EF1FC 22257322 */ .4byte 0x22257322 +/* 804EF200 206F6E20 */ .4byte 0x206f6e20 +/* 804EF204 6C696E65 */ .4byte 0x6c696e65 +/* 804EF208 2025642E */ .4byte 0x2025642e +/* 804EF20C 0A000000 */ .4byte 0x0a000000 +/* 804EF210 0A416464 */ .4byte 0x0a416464 +/* 804EF214 72657373 */ .4byte 0x72657373 +/* 804EF218 3A202020 */ .4byte 0x3a202020 +/* 804EF21C 20202042 */ .4byte 0x20202042 +/* 804EF220 61636B20 */ .4byte 0x61636b20 +/* 804EF224 43686169 */ .4byte 0x43686169 +/* 804EF228 6E202020 */ .4byte 0x6e202020 +/* 804EF22C 204C5220 */ .4byte 0x204c5220 +/* 804EF230 53617665 */ .4byte 0x53617665 +/* 804EF234 0A000000 */ .4byte 0x0a000000 +/* 804EF238 30782530 */ .4byte 0x30782530 +/* 804EF23C 38783A20 */ .4byte 0x38783a20 +/* 804EF240 20203078 */ .4byte 0x20203078 +/* 804EF244 25303878 */ .4byte 0x25303878 +/* 804EF248 20202020 */ .4byte 0x20202020 +/* 804EF24C 30782530 */ .4byte 0x30782530 +/* 804EF250 38780A00 */ .4byte 0x38780a00 +/* 804EF254 4E6F6E2D */ .4byte 0x4e6f6e2d +/* 804EF258 7265636F */ .4byte 0x7265636f +/* 804EF25C 76657261 */ .4byte 0x76657261 +/* 804EF260 626C6520 */ .4byte 0x626c6520 +/* 804EF264 45786365 */ .4byte 0x45786365 +/* 804EF268 7074696F */ .4byte 0x7074696f +/* 804EF26C 6E202564 */ .4byte 0x6e202564 +/* 804EF270 00000000 */ .4byte 0x00000000 +/* 804EF274 556E6861 */ .4byte 0x556e6861 +/* 804EF278 6E646C65 */ .4byte 0x6e646c65 +/* 804EF27C 64204578 */ .4byte 0x64204578 +/* 804EF280 63657074 */ .4byte 0x63657074 +/* 804EF284 696F6E20 */ .4byte 0x696f6e20 +/* 804EF288 25640000 */ .4byte 0x25640000 +/* 804EF28C 0A445349 */ .4byte 0x0a445349 +/* 804EF290 5352203D */ .4byte 0x5352203d +/* 804EF294 20307825 */ .4byte 0x20307825 +/* 804EF298 30387820 */ .4byte 0x30387820 +/* 804EF29C 20202020 */ .4byte 0x20202020 +/* 804EF2A0 20202020 */ .4byte 0x20202020 +/* 804EF2A4 20202020 */ .4byte 0x20202020 +/* 804EF2A8 20202020 */ .4byte 0x20202020 +/* 804EF2AC 20204441 */ .4byte 0x20204441 +/* 804EF2B0 5220203D */ .4byte 0x5220203d +/* 804EF2B4 20307825 */ .4byte 0x20307825 +/* 804EF2B8 3038780A */ .4byte 0x3038780a +/* 804EF2BC 00000000 */ .4byte 0x00000000 +/* 804EF2C0 5442203D */ .4byte 0x5442203d +/* 804EF2C4 20307825 */ .4byte 0x20307825 +/* 804EF2C8 3031366C */ .4byte 0x3031366c +/* 804EF2CC 6C780A00 */ .4byte 0x6c780a00 +/* 804EF2D0 0A496E73 */ .4byte 0x0a496e73 +/* 804EF2D4 74727563 */ .4byte 0x74727563 +/* 804EF2D8 74696F6E */ .4byte 0x74696f6e +/* 804EF2DC 20617420 */ .4byte 0x20617420 +/* 804EF2E0 30782578 */ .4byte 0x30782578 +/* 804EF2E4 20287265 */ .4byte 0x20287265 +/* 804EF2E8 61642066 */ .4byte 0x61642066 +/* 804EF2EC 726F6D20 */ .4byte 0x726f6d20 +/* 804EF2F0 53525230 */ .4byte 0x53525230 +/* 804EF2F4 29206174 */ .4byte 0x29206174 +/* 804EF2F8 74656D70 */ .4byte 0x74656d70 +/* 804EF2FC 74656420 */ .4byte 0x74656420 +/* 804EF300 746F2061 */ .4byte 0x746f2061 +/* 804EF304 63636573 */ .4byte 0x63636573 +/* 804EF308 7320696E */ .4byte 0x7320696e +/* 804EF30C 76616C69 */ .4byte 0x76616c69 +/* 804EF310 64206164 */ .4byte 0x64206164 +/* 804EF314 64726573 */ .4byte 0x64726573 +/* 804EF318 73203078 */ .4byte 0x73203078 +/* 804EF31C 25782028 */ .4byte 0x25782028 +/* 804EF320 72656164 */ .4byte 0x72656164 +/* 804EF324 2066726F */ .4byte 0x2066726f +/* 804EF328 6D204441 */ .4byte 0x6d204441 +/* 804EF32C 52290A00 */ .4byte 0x52290a00 +/* 804EF330 0A417474 */ .4byte 0x0a417474 +/* 804EF334 656D7074 */ .4byte 0x656d7074 +/* 804EF338 65642074 */ .4byte 0x65642074 +/* 804EF33C 6F206665 */ .4byte 0x6f206665 +/* 804EF340 74636820 */ .4byte 0x74636820 +/* 804EF344 696E7374 */ .4byte 0x696e7374 +/* 804EF348 72756374 */ .4byte 0x72756374 +/* 804EF34C 696F6E20 */ .4byte 0x696f6e20 +/* 804EF350 66726F6D */ .4byte 0x66726f6d +/* 804EF354 20696E76 */ .4byte 0x20696e76 +/* 804EF358 616C6964 */ .4byte 0x616c6964 +/* 804EF35C 20616464 */ .4byte 0x20616464 +/* 804EF360 72657373 */ .4byte 0x72657373 +/* 804EF364 20307825 */ .4byte 0x20307825 +/* 804EF368 78202872 */ .4byte 0x78202872 +/* 804EF36C 65616420 */ .4byte 0x65616420 +/* 804EF370 66726F6D */ .4byte 0x66726f6d +/* 804EF374 20535252 */ .4byte 0x20535252 +/* 804EF378 30290A00 */ .4byte 0x30290a00 +/* 804EF37C 0A496E73 */ .4byte 0x0a496e73 +/* 804EF380 74727563 */ .4byte 0x74727563 +/* 804EF384 74696F6E */ .4byte 0x74696f6e +/* 804EF388 20617420 */ .4byte 0x20617420 +/* 804EF38C 30782578 */ .4byte 0x30782578 +/* 804EF390 20287265 */ .4byte 0x20287265 +/* 804EF394 61642066 */ .4byte 0x61642066 +/* 804EF398 726F6D20 */ .4byte 0x726f6d20 +/* 804EF39C 53525230 */ .4byte 0x53525230 +/* 804EF3A0 29206174 */ .4byte 0x29206174 +/* 804EF3A4 74656D70 */ .4byte 0x74656d70 +/* 804EF3A8 74656420 */ .4byte 0x74656420 +/* 804EF3AC 746F2061 */ .4byte 0x746f2061 +/* 804EF3B0 63636573 */ .4byte 0x63636573 +/* 804EF3B4 7320756E */ .4byte 0x7320756e +/* 804EF3B8 616C6967 */ .4byte 0x616c6967 +/* 804EF3BC 6E656420 */ .4byte 0x6e656420 +/* 804EF3C0 61646472 */ .4byte 0x61646472 +/* 804EF3C4 65737320 */ .4byte 0x65737320 +/* 804EF3C8 30782578 */ .4byte 0x30782578 +/* 804EF3CC 20287265 */ .4byte 0x20287265 +/* 804EF3D0 61642066 */ .4byte 0x61642066 +/* 804EF3D4 726F6D20 */ .4byte 0x726f6d20 +/* 804EF3D8 44415229 */ .4byte 0x44415229 +/* 804EF3DC 0A000000 */ .4byte 0x0a000000 +/* 804EF3E0 0A50726F */ .4byte 0x0a50726f +/* 804EF3E4 6772616D */ .4byte 0x6772616d +/* 804EF3E8 20657863 */ .4byte 0x20657863 +/* 804EF3EC 65707469 */ .4byte 0x65707469 +/* 804EF3F0 6F6E203A */ .4byte 0x6f6e203a +/* 804EF3F4 20506F73 */ .4byte 0x20506f73 +/* 804EF3F8 7369626C */ .4byte 0x7369626c +/* 804EF3FC 6520696C */ .4byte 0x6520696c +/* 804EF400 6C656761 */ .4byte 0x6c656761 +/* 804EF404 6C20696E */ .4byte 0x6c20696e +/* 804EF408 73747275 */ .4byte 0x73747275 +/* 804EF40C 6374696F */ .4byte 0x6374696f +/* 804EF410 6E2F6F70 */ .4byte 0x6e2f6f70 +/* 804EF414 65726174 */ .4byte 0x65726174 +/* 804EF418 696F6E20 */ .4byte 0x696f6e20 +/* 804EF41C 6174206F */ .4byte 0x6174206f +/* 804EF420 72206172 */ .4byte 0x72206172 +/* 804EF424 6F756E64 */ .4byte 0x6f756e64 +/* 804EF428 20307825 */ .4byte 0x20307825 +/* 804EF42C 78202872 */ .4byte 0x78202872 +/* 804EF430 65616420 */ .4byte 0x65616420 +/* 804EF434 66726F6D */ .4byte 0x66726f6d +/* 804EF438 20535252 */ .4byte 0x20535252 +/* 804EF43C 30290A00 */ .4byte 0x30290a00 +/* 804EF440 41492044 */ .4byte 0x41492044 +/* 804EF444 4D412041 */ .4byte 0x4d412041 +/* 804EF448 64647265 */ .4byte 0x64647265 +/* 804EF44C 7373203D */ .4byte 0x7373203d +/* 804EF450 20202030 */ .4byte 0x20202030 +/* 804EF454 78253034 */ .4byte 0x78253034 +/* 804EF458 78253034 */ .4byte 0x78253034 +/* 804EF45C 780A0000 */ .4byte 0x780a0000 +/* 804EF460 4152414D */ .4byte 0x4152414d +/* 804EF464 20444D41 */ .4byte 0x20444d41 +/* 804EF468 20416464 */ .4byte 0x20416464 +/* 804EF46C 72657373 */ .4byte 0x72657373 +/* 804EF470 203D2030 */ .4byte 0x203d2030 +/* 804EF474 78253034 */ .4byte 0x78253034 +/* 804EF478 78253034 */ .4byte 0x78253034 +/* 804EF47C 780A0000 */ .4byte 0x780a0000 +/* 804EF480 44492044 */ .4byte 0x44492044 +/* 804EF484 4D412041 */ .4byte 0x4d412041 +/* 804EF488 64647265 */ .4byte 0x64647265 +/* 804EF48C 7373203D */ .4byte 0x7373203d +/* 804EF490 20202030 */ .4byte 0x20202030 +/* 804EF494 78253038 */ .4byte 0x78253038 +/* 804EF498 780A0000 */ .4byte 0x780a0000 +/* 804EF49C 0A4C6173 */ .4byte 0x0a4c6173 +/* 804EF4A0 7420696E */ .4byte 0x7420696e +/* 804EF4A4 74657272 */ .4byte 0x74657272 +/* 804EF4A8 75707420 */ .4byte 0x75707420 +/* 804EF4AC 28256429 */ .4byte 0x28256429 +/* 804EF4B0 3A205352 */ .4byte 0x3a205352 +/* 804EF4B4 5230203D */ .4byte 0x5230203d +/* 804EF4B8 20307825 */ .4byte 0x20307825 +/* 804EF4BC 30387820 */ .4byte 0x30387820 +/* 804EF4C0 20544220 */ .4byte 0x20544220 +/* 804EF4C4 3D203078 */ .4byte 0x3d203078 +/* 804EF4C8 25303136 */ .4byte 0x25303136 +/* 804EF4CC 6C6C780A */ .4byte 0x6c6c780a +/* 804EF4D0 00000000 */ .4byte 0x00000000 +.size lbl_804ef1f8, . - lbl_804ef1f8 + + +.global jtbl_804ef4d4 +.type jtbl_804ef4d4, @object +jtbl_804ef4d4: +/* 804EF4D4 8036EA48 */ .4byte jump_8036ea48 +/* 804EF4D8 8036EA48 */ .4byte jump_8036ea48 +/* 804EF4DC 8036E9A0 */ .4byte jump_8036e9a0 +/* 804EF4E0 8036E9B8 */ .4byte jump_8036e9b8 +/* 804EF4E4 8036EA48 */ .4byte jump_8036ea48 +/* 804EF4E8 8036E9CC */ .4byte jump_8036e9cc +/* 804EF4EC 8036E9E4 */ .4byte jump_8036e9e4 +/* 804EF4F0 8036EA48 */ .4byte jump_8036ea48 +/* 804EF4F4 8036EA48 */ .4byte jump_8036ea48 +/* 804EF4F8 8036EA48 */ .4byte jump_8036ea48 +/* 804EF4FC 8036EA48 */ .4byte jump_8036ea48 +/* 804EF500 8036EA48 */ .4byte jump_8036ea48 +/* 804EF504 8036EA48 */ .4byte jump_8036ea48 +/* 804EF508 8036EA48 */ .4byte jump_8036ea48 +/* 804EF50C 8036EA48 */ .4byte jump_8036ea48 +/* 804EF510 8036E9FC */ .4byte jump_8036e9fc +/* 804EF514 00000000 */ .4byte 0x00000000 +.size jtbl_804ef4d4, . - jtbl_804ef4d4 + diff --git a/asm/Dolphin/os/OSError.s b/asm/Dolphin/os/OSError.s new file mode 100644 index 0000000..49c659e --- /dev/null +++ b/asm/Dolphin/os/OSError.s @@ -0,0 +1,329 @@ +.include "macros.inc" + +.section .text + +.global func_8036e6b4 +.type func_8036e6b4, @function +func_8036e6b4: +/* 8036E6B4 7C0802A6 */ mflr r0 +/* 8036E6B8 90010004 */ stw r0, 4(r1) +/* 8036E6BC 9421FF88 */ stwu r1, -0x78(r1) +/* 8036E6C0 40860024 */ bne- cr1, lbl_8036e6e4 +/* 8036E6C4 D8210028 */ stfd f1, 0x28(r1) +/* 8036E6C8 D8410030 */ stfd f2, 0x30(r1) +/* 8036E6CC D8610038 */ stfd f3, 0x38(r1) +/* 8036E6D0 D8810040 */ stfd f4, 0x40(r1) +/* 8036E6D4 D8A10048 */ stfd f5, 0x48(r1) +/* 8036E6D8 D8C10050 */ stfd f6, 0x50(r1) +/* 8036E6DC D8E10058 */ stfd f7, 0x58(r1) +/* 8036E6E0 D9010060 */ stfd f8, 0x60(r1) +lbl_8036e6e4: +/* 8036E6E4 90610008 */ stw r3, 8(r1) +/* 8036E6E8 3C000100 */ lis r0, 0x100 +/* 8036E6EC 9081000C */ stw r4, 0xc(r1) +/* 8036E6F0 3881006C */ addi r4, r1, 0x6c +/* 8036E6F4 90A10010 */ stw r5, 0x10(r1) +/* 8036E6F8 90C10014 */ stw r6, 0x14(r1) +/* 8036E6FC 90E10018 */ stw r7, 0x18(r1) +/* 8036E700 9101001C */ stw r8, 0x1c(r1) +/* 8036E704 91210020 */ stw r9, 0x20(r1) +/* 8036E708 91410024 */ stw r10, 0x24(r1) +/* 8036E70C 9001006C */ stw r0, 0x6c(r1) +/* 8036E710 38010080 */ addi r0, r1, 0x80 +/* 8036E714 90010070 */ stw r0, 0x70(r1) +/* 8036E718 38010008 */ addi r0, r1, 0x8 +/* 8036E71C 90010074 */ stw r0, 0x74(r1) +/* 8036E720 48028C05 */ bl func_80397324 +/* 8036E724 8001007C */ lwz r0, 0x7c(r1) +/* 8036E728 38210078 */ addi r1, r1, 0x78 +/* 8036E72C 7C0803A6 */ mtlr r0 +/* 8036E730 4E800020 */ blr +.size func_8036e6b4, . - func_8036e6b4 + + +.global func_8036e734 +.type func_8036e734, @function +func_8036e734: +/* 8036E734 7C0802A6 */ mflr r0 +/* 8036E738 90010004 */ stw r0, 4(r1) +/* 8036E73C 9421FF70 */ stwu r1, -0x90(r1) +/* 8036E740 93E1008C */ stw r31, 0x8c(r1) +/* 8036E744 93C10088 */ stw r30, 0x88(r1) +/* 8036E748 93A10084 */ stw r29, 0x84(r1) +/* 8036E74C 93810080 */ stw r28, 0x80(r1) +/* 8036E750 40860024 */ bne- cr1, lbl_8036e774 +/* 8036E754 D8210028 */ stfd f1, 0x28(r1) +/* 8036E758 D8410030 */ stfd f2, 0x30(r1) +/* 8036E75C D8610038 */ stfd f3, 0x38(r1) +/* 8036E760 D8810040 */ stfd f4, 0x40(r1) +/* 8036E764 D8A10048 */ stfd f5, 0x48(r1) +/* 8036E768 D8C10050 */ stfd f6, 0x50(r1) +/* 8036E76C D8E10058 */ stfd f7, 0x58(r1) +/* 8036E770 D9010060 */ stfd f8, 0x60(r1) +lbl_8036e774: +/* 8036E774 90610008 */ stw r3, 8(r1) +/* 8036E778 3B830000 */ addi r28, r3, 0x0 +/* 8036E77C 3BC40000 */ addi r30, r4, 0x0 +/* 8036E780 9081000C */ stw r4, 0xc(r1) +/* 8036E784 3BA50000 */ addi r29, r5, 0x0 +/* 8036E788 90A10010 */ stw r5, 0x10(r1) +/* 8036E78C 90C10014 */ stw r6, 0x14(r1) +/* 8036E790 3CC0804F */ lis r6, lbl_804ef1f8@ha +/* 8036E794 3BE6F1F8 */ addi r31, r6, lbl_804ef1f8@l +/* 8036E798 90E10018 */ stw r7, 0x18(r1) +/* 8036E79C 9101001C */ stw r8, 0x1c(r1) +/* 8036E7A0 91210020 */ stw r9, 0x20(r1) +/* 8036E7A4 91410024 */ stw r10, 0x24(r1) +/* 8036E7A8 4800032D */ bl func_8036ead4 +/* 8036E7AC 3C000300 */ lis r0, 0x300 +/* 8036E7B0 90010074 */ stw r0, 0x74(r1) +/* 8036E7B4 38010098 */ addi r0, r1, 0x98 +/* 8036E7B8 38810074 */ addi r4, r1, 0x74 +/* 8036E7BC 90010078 */ stw r0, 0x78(r1) +/* 8036E7C0 38010008 */ addi r0, r1, 0x8 +/* 8036E7C4 387D0000 */ addi r3, r29, 0x0 +/* 8036E7C8 9001007C */ stw r0, 0x7c(r1) +/* 8036E7CC 48028B59 */ bl func_80397324 +/* 8036E7D0 387F0000 */ addi r3, r31, 0x0 +/* 8036E7D4 4CC63182 */ crclr 6 +/* 8036E7D8 389C0000 */ addi r4, r28, 0x0 +/* 8036E7DC 38BE0000 */ addi r5, r30, 0x0 +/* 8036E7E0 4BFFFED5 */ bl func_8036e6b4 +/* 8036E7E4 387F0018 */ addi r3, r31, 0x18 +/* 8036E7E8 4CC63182 */ crclr 6 +/* 8036E7EC 4BFFFEC9 */ bl func_8036e6b4 +/* 8036E7F0 3BC00000 */ li r30, 0x0 +/* 8036E7F4 4BFFFA65 */ bl func_8036e258 +/* 8036E7F8 7C7D1B78 */ mr r29, r3 +/* 8036E7FC 48000020 */ b lbl_8036e81c +lbl_8036e800: +/* 8036E800 80BD0000 */ lwz r5, 0(r29) +/* 8036E804 7FA4EB78 */ mr r4, r29 +/* 8036E808 80DD0004 */ lwz r6, 4(r29) +/* 8036E80C 387F0040 */ addi r3, r31, 0x40 +/* 8036E810 4CC63182 */ crclr 6 +/* 8036E814 4BFFFEA1 */ bl func_8036e6b4 +/* 8036E818 83BD0000 */ lwz r29, 0(r29) +lbl_8036e81c: +/* 8036E81C 281D0000 */ cmplwi r29, 0 +/* 8036E820 4182001C */ beq- lbl_8036e83c +/* 8036E824 3C1D0001 */ addis r0, r29, 1 +/* 8036E828 2800FFFF */ cmplwi r0, 0xffff +/* 8036E82C 41820010 */ beq- lbl_8036e83c +/* 8036E830 281E0010 */ cmplwi r30, 0x10 +/* 8036E834 3BDE0001 */ addi r30, r30, 0x1 +/* 8036E838 4180FFC8 */ blt+ lbl_8036e800 +lbl_8036e83c: +/* 8036E83C 4BFFD97D */ bl func_8036c1b8 +/* 8036E840 80010094 */ lwz r0, 0x94(r1) +/* 8036E844 83E1008C */ lwz r31, 0x8c(r1) +/* 8036E848 83C10088 */ lwz r30, 0x88(r1) +/* 8036E84C 83A10084 */ lwz r29, 0x84(r1) +/* 8036E850 83810080 */ lwz r28, 0x80(r1) +/* 8036E854 38210090 */ addi r1, r1, 0x90 +/* 8036E858 7C0803A6 */ mtlr r0 +/* 8036E85C 4E800020 */ blr +.size func_8036e734, . - func_8036e734 + + +.global func_8036e860 +.type func_8036e860, @function +func_8036e860: +/* 8036E860 3CA08054 */ lis r5, lbl_8053ec30@ha +/* 8036E864 546313BA */ rlwinm r3, r3, 2, 0xe, 0x1d +/* 8036E868 3805EC30 */ addi r0, r5, lbl_8053ec30@l +/* 8036E86C 7CA01A14 */ add r5, r0, r3 +/* 8036E870 80650000 */ lwz r3, 0(r5) +/* 8036E874 90850000 */ stw r4, 0(r5) +/* 8036E878 4E800020 */ blr +.size func_8036e860, . - func_8036e860 + + +.global func_8036e87c +.type func_8036e87c, @function +func_8036e87c: +/* 8036E87C 7C0802A6 */ mflr r0 +/* 8036E880 90010004 */ stw r0, 4(r1) +/* 8036E884 9421FFC8 */ stwu r1, -0x38(r1) +/* 8036E888 BF21001C */ stmw r25, 0x1c(r1) +/* 8036E88C 7C9F2378 */ mr r31, r4 +/* 8036E890 3B230000 */ addi r25, r3, 0x0 +/* 8036E894 3B450000 */ addi r26, r5, 0x0 +/* 8036E898 3B660000 */ addi r27, r6, 0x0 +/* 8036E89C 8004019C */ lwz r0, 0x19c(r4) +/* 8036E8A0 3C80804F */ lis r4, lbl_804ef1f8@ha +/* 8036E8A4 3BA4F1F8 */ addi r29, r4, lbl_804ef1f8@l +/* 8036E8A8 540007BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 8036E8AC 40820018 */ bne- lbl_8036e8c4 +/* 8036E8B0 387D005C */ addi r3, r29, 0x5c +/* 8036E8B4 4CC63182 */ crclr 6 +/* 8036E8B8 5724063E */ clrlwi r4, r25, 0x18 +/* 8036E8BC 4BFFFDF9 */ bl func_8036e6b4 +/* 8036E8C0 4800007C */ b lbl_8036e93c +lbl_8036e8c4: +/* 8036E8C4 573E063E */ clrlwi r30, r25, 0x18 +/* 8036E8C8 3C608054 */ lis r3, lbl_8053ec30@ha +/* 8036E8CC 572415BA */ rlwinm r4, r25, 2, 0x16, 0x1d +/* 8036E8D0 3803EC30 */ addi r0, r3, lbl_8053ec30@l +/* 8036E8D4 7F802214 */ add r28, r0, r4 +/* 8036E8D8 801C0000 */ lwz r0, 0(r28) +/* 8036E8DC 28000000 */ cmplwi r0, 0 +/* 8036E8E0 41820038 */ beq- lbl_8036e918 +/* 8036E8E4 48002ED1 */ bl func_803717b4 +/* 8036E8E8 819C0000 */ lwz r12, 0(r28) +/* 8036E8EC 387E0000 */ addi r3, r30, 0x0 +/* 8036E8F0 389F0000 */ addi r4, r31, 0x0 +/* 8036E8F4 4CC63182 */ crclr 6 +/* 8036E8F8 7D8803A6 */ mtlr r12 +/* 8036E8FC 38BA0000 */ addi r5, r26, 0x0 +/* 8036E900 38DB0000 */ addi r6, r27, 0x0 +/* 8036E904 4E800021 */ blrl +/* 8036E908 48002EED */ bl func_803717f4 +/* 8036E90C 480033DD */ bl func_80371ce8 +/* 8036E910 7FE3FB78 */ mr r3, r31 +/* 8036E914 4BFFF86D */ bl func_8036e180 +lbl_8036e918: +/* 8036E918 5720063E */ clrlwi r0, r25, 0x18 +/* 8036E91C 28000008 */ cmplwi r0, 8 +/* 8036E920 4082000C */ bne- lbl_8036e92c +/* 8036E924 7FE3FB78 */ mr r3, r31 +/* 8036E928 4BFFF859 */ bl func_8036e180 +lbl_8036e92c: +/* 8036E92C 387D007C */ addi r3, r29, 0x7c +/* 8036E930 4CC63182 */ crclr 6 +/* 8036E934 5724063E */ clrlwi r4, r25, 0x18 +/* 8036E938 4BFFFD7D */ bl func_8036e6b4 +lbl_8036e93c: +/* 8036E93C 386D9F08 */ addi r3, 0, lbl_805c3d28@sda21 +/* 8036E940 4CC63182 */ crclr 6 +/* 8036E944 4BFFFD71 */ bl func_8036e6b4 +/* 8036E948 7FE3FB78 */ mr r3, r31 +/* 8036E94C 4BFFF9F5 */ bl func_8036e340 +/* 8036E950 389A0000 */ addi r4, r26, 0x0 +/* 8036E954 4CC63182 */ crclr 6 +/* 8036E958 38BB0000 */ addi r5, r27, 0x0 +/* 8036E95C 387D0094 */ addi r3, r29, 0x94 +/* 8036E960 4BFFFD55 */ bl func_8036e6b4 +/* 8036E964 48003E61 */ bl func_803727c4 +/* 8036E968 38A30000 */ addi r5, r3, 0x0 +/* 8036E96C 4CC63182 */ crclr 6 +/* 8036E970 38C40000 */ addi r6, r4, 0x0 +/* 8036E974 387D00C8 */ addi r3, r29, 0xc8 +/* 8036E978 4BFFFD3D */ bl func_8036e6b4 +/* 8036E97C 5720063E */ clrlwi r0, r25, 0x18 +/* 8036E980 2800000F */ cmplwi r0, 0xf +/* 8036E984 418100C4 */ bgt- lbl_8036ea48 +/* 8036E988 3C60804F */ lis r3, jtbl_804ef4d4@ha +/* 8036E98C 3863F4D4 */ addi r3, r3, jtbl_804ef4d4@l +/* 8036E990 5400103A */ slwi r0, r0, 2 +/* 8036E994 7C03002E */ lwzx r0, r3, r0 +/* 8036E998 7C0903A6 */ mtctr r0 +/* 8036E99C 4E800420 */ bctr +lbl_8036e9a0: +.global jump_8036e9a0 +jump_8036e9a0: +/* 8036E9A0 809F0198 */ lwz r4, 0x198(r31) +/* 8036E9A4 38BB0000 */ addi r5, r27, 0x0 +/* 8036E9A8 387D00D8 */ addi r3, r29, 0xd8 +/* 8036E9AC 4CC63182 */ crclr 6 +/* 8036E9B0 4BFFFD05 */ bl func_8036e6b4 +/* 8036E9B4 48000094 */ b lbl_8036ea48 +lbl_8036e9b8: +.global jump_8036e9b8 +jump_8036e9b8: +/* 8036E9B8 809F0198 */ lwz r4, 0x198(r31) +/* 8036E9BC 387D0138 */ addi r3, r29, 0x138 +/* 8036E9C0 4CC63182 */ crclr 6 +/* 8036E9C4 4BFFFCF1 */ bl func_8036e6b4 +/* 8036E9C8 48000080 */ b lbl_8036ea48 +lbl_8036e9cc: +.global jump_8036e9cc +jump_8036e9cc: +/* 8036E9CC 809F0198 */ lwz r4, 0x198(r31) +/* 8036E9D0 38BB0000 */ addi r5, r27, 0x0 +/* 8036E9D4 387D0184 */ addi r3, r29, 0x184 +/* 8036E9D8 4CC63182 */ crclr 6 +/* 8036E9DC 4BFFFCD9 */ bl func_8036e6b4 +/* 8036E9E0 48000068 */ b lbl_8036ea48 +lbl_8036e9e4: +.global jump_8036e9e4 +jump_8036e9e4: +/* 8036E9E4 809F0198 */ lwz r4, 0x198(r31) +/* 8036E9E8 38BB0000 */ addi r5, r27, 0x0 +/* 8036E9EC 387D01E8 */ addi r3, r29, 0x1e8 +/* 8036E9F0 4CC63182 */ crclr 6 +/* 8036E9F4 4BFFFCC1 */ bl func_8036e6b4 +/* 8036E9F8 48000050 */ b lbl_8036ea48 +lbl_8036e9fc: +.global jump_8036e9fc +jump_8036e9fc: +/* 8036E9FC 386D9F08 */ addi r3, 0, lbl_805c3d28@sda21 +/* 8036EA00 4CC63182 */ crclr 6 +/* 8036EA04 4BFFFCB1 */ bl func_8036e6b4 +/* 8036EA08 3FC0CC00 */ lis r30, 0xcc00 +/* 8036EA0C 4CC63182 */ crclr 6 +/* 8036EA10 3BFE5000 */ addi r31, r30, 0x5000 +/* 8036EA14 A09E5030 */ lhz r4, 0x5030(r30) +/* 8036EA18 387D0248 */ addi r3, r29, 0x248 +/* 8036EA1C A0BE5032 */ lhz r5, 0x5032(r30) +/* 8036EA20 4BFFFC95 */ bl func_8036e6b4 +/* 8036EA24 A09F0020 */ lhz r4, 0x20(r31) +/* 8036EA28 387D0268 */ addi r3, r29, 0x268 +/* 8036EA2C A0BF0022 */ lhz r5, 0x22(r31) +/* 8036EA30 4CC63182 */ crclr 6 +/* 8036EA34 4BFFFC81 */ bl func_8036e6b4 +/* 8036EA38 809E6014 */ lwz r4, 0x6014(r30) +/* 8036EA3C 4CC63182 */ crclr 6 +/* 8036EA40 387D0288 */ addi r3, r29, 0x288 +/* 8036EA44 4BFFFC71 */ bl func_8036e6b4 +lbl_8036ea48: +.global jump_8036ea48 +jump_8036ea48: +/* 8036EA48 A88DCA50 */ lha r4, lbl_805c6870@sda21(0) +/* 8036EA4C 387D02A4 */ addi r3, r29, 0x2a4 +/* 8036EA50 4CC63182 */ crclr 6 +/* 8036EA54 80ADCA4C */ lwz r5, lbl_805c686c@sda21(0) +/* 8036EA58 80EDCA58 */ lwz r7, lbl_805c6878@sda21(0) +/* 8036EA5C 810DCA5C */ lwz r8, lbl_805c687c@sda21(0) +/* 8036EA60 4BFFFC55 */ bl func_8036e6b4 +/* 8036EA64 4BFFD755 */ bl func_8036c1b8 +/* 8036EA68 BB21001C */ lmw r25, 0x1c(r1) +/* 8036EA6C 8001003C */ lwz r0, 0x3c(r1) +/* 8036EA70 38210038 */ addi r1, r1, 0x38 +/* 8036EA74 7C0803A6 */ mtlr r0 +/* 8036EA78 4E800020 */ blr +.size func_8036e87c, . - func_8036e87c + + +.global func_8036ea7c +.type func_8036ea7c, @function +func_8036ea7c: +/* 8036EA7C A06D9F10 */ lhz r3, lbl_805c3d30@sda21(0) +/* 8036EA80 28030001 */ cmplwi r3, 1 +/* 8036EA84 4C810020 */ blelr- +/* 8036EA88 3C608000 */ lis r3, 0x8000 +/* 8036EA8C 800300CC */ lwz r0, 0xcc(r3) +/* 8036EA90 2C000000 */ cmpwi r0, 0x0 +/* 8036EA94 4182000C */ beq- lbl_8036eaa0 +/* 8036EA98 4180002C */ blt- lbl_8036eac4 +/* 8036EA9C 48000028 */ b lbl_8036eac4 +lbl_8036eaa0: +/* 8036EAA0 3C60CC00 */ lis r3, 0xcc00 +/* 8036EAA4 A003206E */ lhz r0, 0x206e(r3) +/* 8036EAA8 540007BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 8036EAAC 4182000C */ beq- lbl_8036eab8 +/* 8036EAB0 38000001 */ li r0, 0x1 +/* 8036EAB4 48000008 */ b lbl_8036eabc +lbl_8036eab8: +/* 8036EAB8 38000000 */ li r0, 0x0 +lbl_8036eabc: +/* 8036EABC B00D9F10 */ sth r0, lbl_805c3d30@sda21(0) +/* 8036EAC0 4800000C */ b lbl_8036eacc +lbl_8036eac4: +/* 8036EAC4 38000000 */ li r0, 0x0 +/* 8036EAC8 B00D9F10 */ sth r0, lbl_805c3d30@sda21(0) +lbl_8036eacc: +/* 8036EACC A06D9F10 */ lhz r3, lbl_805c3d30@sda21(0) +/* 8036EAD0 4E800020 */ blr +.size func_8036ea7c, . - func_8036ea7c + diff --git a/asm/Dolphin/os/OSInit.s b/asm/Dolphin/os/OSInit.s new file mode 100644 index 0000000..ba4ecba --- /dev/null +++ b/asm/Dolphin/os/OSInit.s @@ -0,0 +1,263 @@ +.global func_8036c48c +.type func_8036c48c, @function +func_8036c48c: +/* 8036C48C 7C0802A6 */ mflr r0 +/* 8036C490 90010004 */ stw r0, 4(r1) +/* 8036C494 9421FFE8 */ stwu r1, -0x18(r1) +/* 8036C498 93E10014 */ stw r31, 0x14(r1) +/* 8036C49C 93C10010 */ stw r30, 0x10(r1) +/* 8036C4A0 93A1000C */ stw r29, 0xc(r1) +/* 8036C4A4 800DCA08 */ lwz r0, lbl_805c6828@sda21(0) +/* 8036C4A8 3C808054 */ lis r4, lbl_8053ebe0@ha +/* 8036C4AC 3C60804F */ lis r3, lbl_804eebb0@ha +/* 8036C4B0 2C000000 */ cmpwi r0, 0x0 +/* 8036C4B4 3BC4EBE0 */ addi r30, r4, lbl_8053ebe0@l +/* 8036C4B8 3BE3EBB0 */ addi r31, r3, lbl_804eebb0@l +/* 8036C4BC 4082036C */ bne- lbl_8036c828 +/* 8036C4C0 38000001 */ li r0, 0x1 +/* 8036C4C4 900DCA08 */ stw r0, lbl_805c6828@sda21(0) +/* 8036C4C8 4800631D */ bl func_803727e4 +/* 8036C4CC 908DCA24 */ stw r4, lbl_805c6844@sda21(0) +/* 8036C4D0 906DCA20 */ stw r3, lbl_805c6840@sda21(0) +/* 8036C4D4 48002601 */ bl func_8036ead4 +/* 8036C4D8 4BFFFD0D */ bl func_8036c1e4 +/* 8036C4DC 4BFFFD31 */ bl func_8036c20c +/* 8036C4E0 38000000 */ li r0, 0x0 +/* 8036C4E4 3C808000 */ lis r4, 0x8000 +/* 8036C4E8 900DC9FC */ stw r0, lbl_805c681c@sda21(0) +/* 8036C4EC 908DC9F8 */ stw r4, lbl_805c6818@sda21(0) +/* 8036C4F0 900DCB04 */ stw r0, lbl_805c6924@sda21(0) +/* 8036C4F4 806400F4 */ lwz r3, 0xf4(r4) +/* 8036C4F8 28030000 */ cmplwi r3, 0 +/* 8036C4FC 41820034 */ beq- lbl_8036c530 +/* 8036C500 3803000C */ addi r0, r3, 0xc +/* 8036C504 900DC9FC */ stw r0, lbl_805c681c@sda21(0) +/* 8036C508 80030024 */ lwz r0, 0x24(r3) +/* 8036C50C 806DC9FC */ lwz r3, lbl_805c681c@sda21(0) +/* 8036C510 900DCBDC */ stw r0, lbl_805c69fc@sda21(0) +/* 8036C514 80030000 */ lwz r0, 0(r3) +/* 8036C518 5400063E */ clrlwi r0, r0, 0x18 +/* 8036C51C 980430E8 */ stb r0, 0x30e8(r4) +/* 8036C520 800DCBDC */ lwz r0, lbl_805c69fc@sda21(0) +/* 8036C524 5400063E */ clrlwi r0, r0, 0x18 +/* 8036C528 980430E9 */ stb r0, 0x30e9(r4) +/* 8036C52C 48000028 */ b lbl_8036c554 +lbl_8036c530: +/* 8036C530 80040034 */ lwz r0, 0x34(r4) +/* 8036C534 28000000 */ cmplwi r0, 0 +/* 8036C538 4182001C */ beq- lbl_8036c554 +/* 8036C53C 886430E8 */ lbz r3, 0x30e8(r4) +/* 8036C540 380DCA00 */ addi r0, 0, lbl_805c6820@sda21 +/* 8036C544 906DCA00 */ stw r3, lbl_805c6820@sda21(0) +/* 8036C548 900DC9FC */ stw r0, lbl_805c681c@sda21(0) +/* 8036C54C 880430E9 */ lbz r0, 0x30e9(r4) +/* 8036C550 900DCBDC */ stw r0, lbl_805c69fc@sda21(0) +lbl_8036c554: +/* 8036C554 38000001 */ li r0, 0x1 +/* 8036C558 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C55C 900DCB04 */ stw r0, lbl_805c6924@sda21(0) +/* 8036C560 80630030 */ lwz r3, 0x30(r3) +/* 8036C564 28030000 */ cmplwi r3, 0 +/* 8036C568 40820010 */ bne- lbl_8036c578 +/* 8036C56C 3C60805E */ lis r3, 0x805e +/* 8036C570 386329E0 */ addi r3, r3, 0x29e0 +/* 8036C574 48000004 */ b lbl_8036c578 +lbl_8036c578: +/* 8036C578 480010B9 */ bl func_8036d630 +/* 8036C57C 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C580 80030030 */ lwz r0, 0x30(r3) +/* 8036C584 28000000 */ cmplwi r0, 0 +/* 8036C588 40820030 */ bne- lbl_8036c5b8 +/* 8036C58C 806DC9FC */ lwz r3, lbl_805c681c@sda21(0) +/* 8036C590 28030000 */ cmplwi r3, 0 +/* 8036C594 41820024 */ beq- lbl_8036c5b8 +/* 8036C598 80030000 */ lwz r0, 0(r3) +/* 8036C59C 28000002 */ cmplwi r0, 2 +/* 8036C5A0 40800018 */ bge- lbl_8036c5b8 +/* 8036C5A4 3C60805E */ lis r3, 0x805e +/* 8036C5A8 386309C8 */ addi r3, r3, 0x9c8 +/* 8036C5AC 3803001F */ addi r0, r3, 0x1f +/* 8036C5B0 54030034 */ rlwinm r3, r0, 0, 0, 0x1a +/* 8036C5B4 4800107D */ bl func_8036d630 +lbl_8036c5b8: +/* 8036C5B8 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C5BC 80630034 */ lwz r3, 0x34(r3) +/* 8036C5C0 28030000 */ cmplwi r3, 0 +/* 8036C5C4 40820010 */ bne- lbl_8036c5d4 +/* 8036C5C8 3C608170 */ lis r3, 0x8170 +/* 8036C5CC 38630000 */ addi r3, r3, 0x0 +/* 8036C5D0 48000004 */ b lbl_8036c5d4 +lbl_8036c5d4: +/* 8036C5D4 48001055 */ bl func_8036d628 +/* 8036C5D8 4800026D */ bl func_8036c844 +/* 8036C5DC 48004FE1 */ bl func_803715bc +/* 8036C5E0 4800067D */ bl func_8036cc5c +/* 8036C5E4 480034C9 */ bl func_8036faac +/* 8036C5E8 48002569 */ bl func_8036eb50 +/* 8036C5EC 3C608037 */ lis r3, func_803707e4@ha +/* 8036C5F0 388307E4 */ addi r4, r3, func_803707e4@l +/* 8036C5F4 38600016 */ li r3, 0x16 +/* 8036C5F8 48002529 */ bl func_8036eb20 +/* 8036C5FC 48002071 */ bl func_8036e66c +/* 8036C600 48001759 */ bl func_8036dd58 +/* 8036C604 480C0065 */ bl func_8042c668 +/* 8036C608 480C1315 */ bl func_8042d91c +/* 8036C60C 480046DD */ bl func_80370ce8 +/* 8036C610 48005011 */ bl func_80371620 +/* 8036C614 48001025 */ bl func_8036d638 +/* 8036C618 4BFFFBB5 */ bl func_8036c1cc +/* 8036C61C 54630080 */ rlwinm r3, r3, 0, 2, 0 +/* 8036C620 4BFFFBB5 */ bl func_8036c1d4 +/* 8036C624 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C628 3883002C */ addi r4, r3, 0x2c +/* 8036C62C 80040000 */ lwz r0, 0(r4) +/* 8036C630 540000C6 */ rlwinm r0, r0, 0, 3, 3 +/* 8036C634 28000000 */ cmplwi r0, 0 +/* 8036C638 41820014 */ beq- lbl_8036c64c +/* 8036C63C 3C601000 */ lis r3, 0x1000 +/* 8036C640 38030004 */ addi r0, r3, 0x4 +/* 8036C644 90040000 */ stw r0, 0(r4) +/* 8036C648 4800000C */ b lbl_8036c654 +lbl_8036c64c: +/* 8036C64C 38000001 */ li r0, 0x1 +/* 8036C650 90040000 */ stw r0, 0(r4) +lbl_8036c654: +/* 8036C654 3C60CC00 */ lis r3, 0xcc00 +/* 8036C658 808DC9F8 */ lwz r4, lbl_805c6818@sda21(0) +/* 8036C65C 38633000 */ addi r3, r3, 0x3000 +/* 8036C660 8003002C */ lwz r0, 0x2c(r3) +/* 8036C664 8064002C */ lwz r3, 0x2c(r4) +/* 8036C668 54000006 */ rlwinm r0, r0, 0, 0, 3 +/* 8036C66C 5400273E */ srwi r0, r0, 0x1c +/* 8036C670 7C030214 */ add r0, r3, r0 +/* 8036C674 9004002C */ stw r0, 0x2c(r4) +/* 8036C678 800DCA18 */ lwz r0, lbl_805c6838@sda21(0) +/* 8036C67C 2C000000 */ cmpwi r0, 0x0 +/* 8036C680 40820008 */ bne- lbl_8036c688 +/* 8036C684 48003805 */ bl func_8036fe88 +lbl_8036c688: +/* 8036C688 7FE3FB78 */ mr r3, r31 +/* 8036C68C 4CC63182 */ crclr 6 +/* 8036C690 48002025 */ bl func_8036e6b4 +/* 8036C694 387F0020 */ addi r3, r31, 0x20 +/* 8036C698 4CC63182 */ crclr 6 +/* 8036C69C 389F0038 */ addi r4, r31, 0x38 +/* 8036C6A0 38BF0044 */ addi r5, r31, 0x44 +/* 8036C6A4 48002011 */ bl func_8036e6b4 +/* 8036C6A8 387F0050 */ addi r3, r31, 0x50 +/* 8036C6AC 4CC63182 */ crclr 6 +/* 8036C6B0 48002005 */ bl func_8036e6b4 +/* 8036C6B4 806DC9F8 */ lwz r3, lbl_805c6818@sda21(0) +/* 8036C6B8 28030000 */ cmplwi r3, 0 +/* 8036C6BC 41820010 */ beq- lbl_8036c6cc +/* 8036C6C0 8083002C */ lwz r4, 0x2c(r3) +/* 8036C6C4 28040000 */ cmplwi r4, 0 +/* 8036C6C8 40820010 */ bne- lbl_8036c6d8 +lbl_8036c6cc: +/* 8036C6CC 3C601000 */ lis r3, 0x1000 +/* 8036C6D0 38830002 */ addi r4, r3, 0x2 +/* 8036C6D4 48000004 */ b lbl_8036c6d8 +lbl_8036c6d8: +/* 8036C6D8 548000C6 */ rlwinm r0, r4, 0, 3, 3 +/* 8036C6DC 28000000 */ cmplwi r0, 0 +/* 8036C6E0 40820014 */ bne- lbl_8036c6f4 +/* 8036C6E4 4CC63182 */ crclr 6 +/* 8036C6E8 387F0060 */ addi r3, r31, 0x60 +/* 8036C6EC 48001FC9 */ bl func_8036e6b4 +/* 8036C6F0 4800008C */ b lbl_8036c77c +lbl_8036c6f4: +/* 8036C6F4 3C601000 */ lis r3, 0x1000 +/* 8036C6F8 38030002 */ addi r0, r3, 0x2 +/* 8036C6FC 7C040000 */ cmpw r4, r0 +/* 8036C700 41820048 */ beq- lbl_8036c748 +/* 8036C704 40800014 */ bge- lbl_8036c718 +/* 8036C708 7C041800 */ cmpw r4, r3 +/* 8036C70C 4182001C */ beq- lbl_8036c728 +/* 8036C710 40800028 */ bge- lbl_8036c738 +/* 8036C714 48000054 */ b lbl_8036c768 +lbl_8036c718: +/* 8036C718 38030004 */ addi r0, r3, 0x4 +/* 8036C71C 7C040000 */ cmpw r4, r0 +/* 8036C720 40800048 */ bge- lbl_8036c768 +/* 8036C724 48000034 */ b lbl_8036c758 +lbl_8036c728: +/* 8036C728 387F006C */ addi r3, r31, 0x6c +/* 8036C72C 4CC63182 */ crclr 6 +/* 8036C730 48001F85 */ bl func_8036e6b4 +/* 8036C734 48000048 */ b lbl_8036c77c +lbl_8036c738: +/* 8036C738 387F007C */ addi r3, r31, 0x7c +/* 8036C73C 4CC63182 */ crclr 6 +/* 8036C740 48001F75 */ bl func_8036e6b4 +/* 8036C744 48000038 */ b lbl_8036c77c +lbl_8036c748: +/* 8036C748 387F008C */ addi r3, r31, 0x8c +/* 8036C74C 4CC63182 */ crclr 6 +/* 8036C750 48001F65 */ bl func_8036e6b4 +/* 8036C754 48000028 */ b lbl_8036c77c +lbl_8036c758: +/* 8036C758 387F009C */ addi r3, r31, 0x9c +/* 8036C75C 4CC63182 */ crclr 6 +/* 8036C760 48001F55 */ bl func_8036e6b4 +/* 8036C764 48000018 */ b lbl_8036c77c +lbl_8036c768: +/* 8036C768 3C84F000 */ addis r4, r4, 0xf000 +/* 8036C76C 4CC63182 */ crclr 6 +/* 8036C770 387F00AC */ addi r3, r31, 0xac +/* 8036C774 3884FFFD */ addi r4, r4, -0x3 +/* 8036C778 48001F3D */ bl func_8036e6b4 +lbl_8036c77c: +/* 8036C77C 808DC9F8 */ lwz r4, lbl_805c6818@sda21(0) +/* 8036C780 387F00C0 */ addi r3, r31, 0xc0 +/* 8036C784 4CC63182 */ crclr 6 +/* 8036C788 80040028 */ lwz r0, 0x28(r4) +/* 8036C78C 5404653E */ srwi r4, r0, 0x14 +/* 8036C790 48001F25 */ bl func_8036e6b4 +/* 8036C794 48000E85 */ bl func_8036d618 +/* 8036C798 7C7D1B78 */ mr r29, r3 +/* 8036C79C 48000E85 */ bl func_8036d620 +/* 8036C7A0 7C641B78 */ mr r4, r3 +/* 8036C7A4 4CC63182 */ crclr 6 +/* 8036C7A8 7FA5EB78 */ mr r5, r29 +/* 8036C7AC 387F00D0 */ addi r3, r31, 0xd0 +/* 8036C7B0 48001F05 */ bl func_8036e6b4 +/* 8036C7B4 806DC9FC */ lwz r3, lbl_805c681c@sda21(0) +/* 8036C7B8 28030000 */ cmplwi r3, 0 +/* 8036C7BC 41820014 */ beq- lbl_8036c7d0 +/* 8036C7C0 80030000 */ lwz r0, 0(r3) +/* 8036C7C4 28000002 */ cmplwi r0, 2 +/* 8036C7C8 41800008 */ blt- lbl_8036c7d0 +/* 8036C7CC 48025B45 */ bl func_80392310 +lbl_8036c7d0: +/* 8036C7D0 4BFFFB59 */ bl func_8036c328 +/* 8036C7D4 48002315 */ bl func_8036eae8 +/* 8036C7D8 800DCA18 */ lwz r0, lbl_805c6838@sda21(0) +/* 8036C7DC 2C000000 */ cmpwi r0, 0x0 +/* 8036C7E0 40820048 */ bne- lbl_8036c828 +/* 8036C7E4 48008929 */ bl func_8037510c +/* 8036C7E8 800DCA04 */ lwz r0, lbl_805c6824@sda21(0) +/* 8036C7EC 2C000000 */ cmpwi r0, 0x0 +/* 8036C7F0 41820018 */ beq- lbl_8036c808 +/* 8036C7F4 3C600001 */ lis r3, 1 +/* 8036C7F8 38039000 */ addi r0, r3, -0x7000 +/* 8036C7FC 3C608000 */ lis r3, 0x8000 +/* 8036C800 B00330E6 */ sth r0, 0x30e6(r3) +/* 8036C804 48000024 */ b lbl_8036c828 +lbl_8036c808: +/* 8036C808 7FC3F378 */ mr r3, r30 +/* 8036C80C 38800020 */ li r4, 0x20 +/* 8036C810 480010D1 */ bl func_8036d8e0 +/* 8036C814 3C608037 */ lis r3, func_8036c450@ha +/* 8036C818 38A3C450 */ addi r5, r3, func_8036c450@l +/* 8036C81C 7FC4F378 */ mr r4, r30 +/* 8036C820 387E0020 */ addi r3, r30, 0x20 +/* 8036C824 4800A609 */ bl func_80376e2c +lbl_8036c828: +/* 8036C828 8001001C */ lwz r0, 0x1c(r1) +/* 8036C82C 83E10014 */ lwz r31, 0x14(r1) +/* 8036C830 83C10010 */ lwz r30, 0x10(r1) +/* 8036C834 83A1000C */ lwz r29, 0xc(r1) +/* 8036C838 38210018 */ addi r1, r1, 0x18 +/* 8036C83C 7C0803A6 */ mtlr r0 +/* 8036C840 4E800020 */ blr +.size func_8036c48c, . - func_8036c48c diff --git a/asm/Dolphin/os/OSInterrupt-data.s b/asm/Dolphin/os/OSInterrupt-data.s new file mode 100644 index 0000000..614d667 --- /dev/null +++ b/asm/Dolphin/os/OSInterrupt-data.s @@ -0,0 +1,23 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804ef518 +.type lbl_804ef518, @object +lbl_804ef518: +/* 804EF518 00000100 */ .4byte 0x00000100 +/* 804EF51C 00000040 */ .4byte 0x00000040 +/* 804EF520 F8000000 */ .4byte 0xf8000000 +/* 804EF524 00000200 */ .4byte 0x00000200 +/* 804EF528 00000080 */ .4byte 0x00000080 +/* 804EF52C 00003000 */ .4byte 0x00003000 +/* 804EF530 00000020 */ .4byte 0x00000020 +/* 804EF534 03FF8C00 */ .4byte 0x03ff8c00 +/* 804EF538 04000000 */ .4byte 0x04000000 +/* 804EF53C 00004000 */ .4byte 0x00004000 +/* 804EF540 FFFFFFFF */ .4byte 0xffffffff +/* 804EF544 00000000 */ .4byte 0x00000000 +.size lbl_804ef518, . - lbl_804ef518 + diff --git a/asm/Dolphin/os/OSInterrupt.s b/asm/Dolphin/os/OSInterrupt.s new file mode 100644 index 0000000..4578586 --- /dev/null +++ b/asm/Dolphin/os/OSInterrupt.s @@ -0,0 +1,696 @@ +.include "macros.inc" + +.section .text + +.global func_8036ead4 +.type func_8036ead4, @function +func_8036ead4: +/* 8036EAD4 7C6000A6 */ mfmsr r3 +/* 8036EAD8 5464045E */ rlwinm r4, r3, 0, 0x11, 0xf +/* 8036EADC 7C800124 */ mtmsr r4 +/* 8036EAE0 54638FFE */ rlwinm r3, r3, 0x11, 0x1f, 0x1f +.size func_8036ead4, . - func_8036ead4 + + +.global func_8036eae4 +.type func_8036eae4, @function +func_8036eae4: +/* 8036EAE4 4E800020 */ blr +.size func_8036eae4, . - func_8036eae4 + + +.global func_8036eae8 +.type func_8036eae8, @function +func_8036eae8: +/* 8036EAE8 7C6000A6 */ mfmsr r3 +/* 8036EAEC 60648000 */ ori r4, r3, 0x8000 +/* 8036EAF0 7C800124 */ mtmsr r4 +/* 8036EAF4 54638FFE */ rlwinm r3, r3, 0x11, 0x1f, 0x1f +/* 8036EAF8 4E800020 */ blr +.size func_8036eae8, . - func_8036eae8 + + +.global func_8036eafc +.type func_8036eafc, @function +func_8036eafc: +/* 8036EAFC 2C030000 */ cmpwi r3, 0x0 +/* 8036EB00 7C8000A6 */ mfmsr r4 +/* 8036EB04 4182000C */ beq- lbl_8036eb10 +/* 8036EB08 60858000 */ ori r5, r4, 0x8000 +/* 8036EB0C 48000008 */ b lbl_8036eb14 +lbl_8036eb10: +/* 8036EB10 5485045E */ rlwinm r5, r4, 0, 0x11, 0xf +lbl_8036eb14: +/* 8036EB14 7CA00124 */ mtmsr r5 +/* 8036EB18 54838FFE */ rlwinm r3, r4, 0x11, 0x1f, 0x1f +/* 8036EB1C 4E800020 */ blr +.size func_8036eafc, . - func_8036eafc + + +.global func_8036eb20 +.type func_8036eb20, @function +func_8036eb20: +/* 8036EB20 7C600734 */ extsh r0, r3 +/* 8036EB24 806DCA48 */ lwz r3, lbl_805c6868@sda21(0) +/* 8036EB28 5400103A */ slwi r0, r0, 2 +/* 8036EB2C 7CA30214 */ add r5, r3, r0 +/* 8036EB30 80650000 */ lwz r3, 0(r5) +/* 8036EB34 90850000 */ stw r4, 0(r5) +/* 8036EB38 4E800020 */ blr +.size func_8036eb20, . - func_8036eb20 + + +.global func_8036eb3c +.type func_8036eb3c, @function +func_8036eb3c: +/* 8036EB3C 7C600734 */ extsh r0, r3 +/* 8036EB40 806DCA48 */ lwz r3, lbl_805c6868@sda21(0) +/* 8036EB44 5400103A */ slwi r0, r0, 2 +/* 8036EB48 7C63002E */ lwzx r3, r3, r0 +/* 8036EB4C 4E800020 */ blr +.size func_8036eb3c, . - func_8036eb3c + + +.global func_8036eb50 +.type func_8036eb50, @function +func_8036eb50: +/* 8036EB50 7C0802A6 */ mflr r0 +/* 8036EB54 90010004 */ stw r0, 4(r1) +/* 8036EB58 9421FFF0 */ stwu r1, -0x10(r1) +/* 8036EB5C 93E1000C */ stw r31, 0xc(r1) +/* 8036EB60 3FE08000 */ lis r31, 0x8000 +/* 8036EB64 381F3040 */ addi r0, r31, 0x3040 +/* 8036EB68 900DCA48 */ stw r0, lbl_805c6868@sda21(0) +/* 8036EB6C 38800000 */ li r4, 0x0 +/* 8036EB70 38A00080 */ li r5, 0x80 +/* 8036EB74 806DCA48 */ lwz r3, lbl_805c6868@sda21(0) +/* 8036EB78 4BC9F7BD */ bl func_8000e334 +/* 8036EB7C 38000000 */ li r0, 0x0 +/* 8036EB80 901F00C4 */ stw r0, 0xc4(r31) +/* 8036EB84 3C60CC00 */ lis r3, 0xcc00 +/* 8036EB88 38833000 */ addi r4, r3, 0x3000 +/* 8036EB8C 901F00C8 */ stw r0, 0xc8(r31) +/* 8036EB90 380000F0 */ li r0, 0xf0 +/* 8036EB94 3860FFE0 */ li r3, -0x20 +/* 8036EB98 90040004 */ stw r0, 4(r4) +/* 8036EB9C 48000301 */ bl func_8036ee9c +/* 8036EBA0 3C608037 */ lis r3, func_8036f2f0@ha +/* 8036EBA4 3883F2F0 */ addi r4, r3, func_8036f2f0@l +/* 8036EBA8 38600004 */ li r3, 0x4 +/* 8036EBAC 4BFFDF41 */ bl func_8036caec +/* 8036EBB0 80010014 */ lwz r0, 0x14(r1) +/* 8036EBB4 83E1000C */ lwz r31, 0xc(r1) +/* 8036EBB8 38210010 */ addi r1, r1, 0x10 +/* 8036EBBC 7C0803A6 */ mtlr r0 +/* 8036EBC0 4E800020 */ blr +.size func_8036eb50, . - func_8036eb50 + + +.global func_8036ebc4 +.type func_8036ebc4, @function +func_8036ebc4: +/* 8036EBC4 7C600034 */ cntlzw r0, r3 +/* 8036EBC8 2C00000C */ cmpwi r0, 0xc +/* 8036EBCC 40800024 */ bge- lbl_8036ebf0 +/* 8036EBD0 2C000008 */ cmpwi r0, 0x8 +/* 8036EBD4 418200FC */ beq- lbl_8036ecd0 +/* 8036EBD8 40800128 */ bge- lbl_8036ed00 +/* 8036EBDC 2C000005 */ cmpwi r0, 0x5 +/* 8036EBE0 4080009C */ bge- lbl_8036ec7c +/* 8036EBE4 2C000000 */ cmpwi r0, 0x0 +/* 8036EBE8 40800028 */ bge- lbl_8036ec10 +/* 8036EBEC 480002AC */ b lbl_8036ee98 +lbl_8036ebf0: +/* 8036EBF0 2C000011 */ cmpwi r0, 0x11 +/* 8036EBF4 40800010 */ bge- lbl_8036ec04 +/* 8036EBF8 2C00000F */ cmpwi r0, 0xf +/* 8036EBFC 408001A8 */ bge- lbl_8036eda4 +/* 8036EC00 48000150 */ b lbl_8036ed50 +lbl_8036ec04: +/* 8036EC04 2C00001B */ cmpwi r0, 0x1b +/* 8036EC08 40800290 */ bge- lbl_8036ee98 +/* 8036EC0C 480001D8 */ b lbl_8036ede4 +lbl_8036ec10: +/* 8036EC10 54800000 */ rlwinm r0, r4, 0, 0, 0 +/* 8036EC14 28000000 */ cmplwi r0, 0 +/* 8036EC18 38A00000 */ li r5, 0x0 +/* 8036EC1C 40820008 */ bne- lbl_8036ec24 +/* 8036EC20 60A50001 */ ori r5, r5, 1 +lbl_8036ec24: +/* 8036EC24 54800042 */ rlwinm r0, r4, 0, 1, 1 +/* 8036EC28 28000000 */ cmplwi r0, 0 +/* 8036EC2C 40820008 */ bne- lbl_8036ec34 +/* 8036EC30 60A50002 */ ori r5, r5, 2 +lbl_8036ec34: +/* 8036EC34 54800084 */ rlwinm r0, r4, 0, 2, 2 +/* 8036EC38 28000000 */ cmplwi r0, 0 +/* 8036EC3C 40820008 */ bne- lbl_8036ec44 +/* 8036EC40 60A50004 */ ori r5, r5, 4 +lbl_8036ec44: +/* 8036EC44 548000C6 */ rlwinm r0, r4, 0, 3, 3 +/* 8036EC48 28000000 */ cmplwi r0, 0 +/* 8036EC4C 40820008 */ bne- lbl_8036ec54 +/* 8036EC50 60A50008 */ ori r5, r5, 8 +lbl_8036ec54: +/* 8036EC54 54800108 */ rlwinm r0, r4, 0, 4, 4 +/* 8036EC58 28000000 */ cmplwi r0, 0 +/* 8036EC5C 40820008 */ bne- lbl_8036ec64 +/* 8036EC60 60A50010 */ ori r5, r5, 0x10 +lbl_8036ec64: +/* 8036EC64 3C80CC00 */ lis r4, 0xcc00 +/* 8036EC68 54A0043E */ clrlwi r0, r5, 0x10 +/* 8036EC6C 38844000 */ addi r4, r4, 0x4000 +/* 8036EC70 B004001C */ sth r0, 0x1c(r4) +/* 8036EC74 5463017E */ clrlwi r3, r3, 5 +/* 8036EC78 48000220 */ b lbl_8036ee98 +lbl_8036ec7c: +/* 8036EC7C 3CA0CC00 */ lis r5, 0xcc00 +/* 8036EC80 38A55000 */ addi r5, r5, 0x5000 +/* 8036EC84 38A5000A */ addi r5, r5, 0xa +/* 8036EC88 5480014A */ rlwinm r0, r4, 0, 5, 5 +/* 8036EC8C A0C50000 */ lhz r6, 0(r5) +/* 8036EC90 28000000 */ cmplwi r0, 0 +/* 8036EC94 54C6076C */ rlwinm r6, r6, 0, 0x1d, 0x16 +/* 8036EC98 40820008 */ bne- lbl_8036eca0 +/* 8036EC9C 60C60010 */ ori r6, r6, 0x10 +lbl_8036eca0: +/* 8036ECA0 5480018C */ rlwinm r0, r4, 0, 6, 6 +/* 8036ECA4 28000000 */ cmplwi r0, 0 +/* 8036ECA8 40820008 */ bne- lbl_8036ecb0 +/* 8036ECAC 60C60040 */ ori r6, r6, 0x40 +lbl_8036ecb0: +/* 8036ECB0 548001CE */ rlwinm r0, r4, 0, 7, 7 +/* 8036ECB4 28000000 */ cmplwi r0, 0 +/* 8036ECB8 40820008 */ bne- lbl_8036ecc0 +/* 8036ECBC 60C60100 */ ori r6, r6, 0x100 +lbl_8036ecc0: +/* 8036ECC0 54C0043E */ clrlwi r0, r6, 0x10 +/* 8036ECC4 B0050000 */ sth r0, 0(r5) +/* 8036ECC8 54630208 */ rlwinm r3, r3, 0, 8, 4 +/* 8036ECCC 480001CC */ b lbl_8036ee98 +lbl_8036ecd0: +/* 8036ECD0 54800210 */ rlwinm r0, r4, 0, 8, 8 +/* 8036ECD4 3C80CC00 */ lis r4, 0xcc00 +/* 8036ECD8 28000000 */ cmplwi r0, 0 +/* 8036ECDC 80A46C00 */ lwz r5, 0x6c00(r4) +/* 8036ECE0 3800FFD3 */ li r0, -0x2d +/* 8036ECE4 7CA50038 */ and r5, r5, r0 +/* 8036ECE8 40820008 */ bne- lbl_8036ecf0 +/* 8036ECEC 60A50004 */ ori r5, r5, 4 +lbl_8036ecf0: +/* 8036ECF0 3C80CC00 */ lis r4, 0xcc00 +/* 8036ECF4 90A46C00 */ stw r5, 0x6c00(r4) +/* 8036ECF8 5463024E */ rlwinm r3, r3, 0, 9, 7 +/* 8036ECFC 4800019C */ b lbl_8036ee98 +lbl_8036ed00: +/* 8036ED00 54800252 */ rlwinm r0, r4, 0, 9, 9 +/* 8036ED04 3CA0CC00 */ lis r5, 0xcc00 +/* 8036ED08 28000000 */ cmplwi r0, 0 +/* 8036ED0C 80A56800 */ lwz r5, 0x6800(r5) +/* 8036ED10 3800D3F0 */ li r0, -0x2c10 +/* 8036ED14 7CA50038 */ and r5, r5, r0 +/* 8036ED18 40820008 */ bne- lbl_8036ed20 +/* 8036ED1C 60A50001 */ ori r5, r5, 1 +lbl_8036ed20: +/* 8036ED20 54800294 */ rlwinm r0, r4, 0, 0xa, 0xa +/* 8036ED24 28000000 */ cmplwi r0, 0 +/* 8036ED28 40820008 */ bne- lbl_8036ed30 +/* 8036ED2C 60A50004 */ ori r5, r5, 4 +lbl_8036ed30: +/* 8036ED30 548002D6 */ rlwinm r0, r4, 0, 0xb, 0xb +/* 8036ED34 28000000 */ cmplwi r0, 0 +/* 8036ED38 40820008 */ bne- lbl_8036ed40 +/* 8036ED3C 60A50400 */ ori r5, r5, 0x400 +lbl_8036ed40: +/* 8036ED40 3C80CC00 */ lis r4, 0xcc00 +/* 8036ED44 90A46800 */ stw r5, 0x6800(r4) +/* 8036ED48 54630310 */ rlwinm r3, r3, 0, 0xc, 8 +/* 8036ED4C 4800014C */ b lbl_8036ee98 +lbl_8036ed50: +/* 8036ED50 3CA0CC00 */ lis r5, 0xcc00 +/* 8036ED54 38C56800 */ addi r6, r5, 0x6800 +/* 8036ED58 38C60014 */ addi r6, r6, 0x14 +/* 8036ED5C 54800318 */ rlwinm r0, r4, 0, 0xc, 0xc +/* 8036ED60 80E60000 */ lwz r7, 0(r6) +/* 8036ED64 38A0F3F0 */ li r5, -0xc10 +/* 8036ED68 28000000 */ cmplwi r0, 0 +/* 8036ED6C 7CE72838 */ and r7, r7, r5 +/* 8036ED70 40820008 */ bne- lbl_8036ed78 +/* 8036ED74 60E70001 */ ori r7, r7, 1 +lbl_8036ed78: +/* 8036ED78 5480035A */ rlwinm r0, r4, 0, 0xd, 0xd +/* 8036ED7C 28000000 */ cmplwi r0, 0 +/* 8036ED80 40820008 */ bne- lbl_8036ed88 +/* 8036ED84 60E70004 */ ori r7, r7, 4 +lbl_8036ed88: +/* 8036ED88 5480039C */ rlwinm r0, r4, 0, 0xe, 0xe +/* 8036ED8C 28000000 */ cmplwi r0, 0 +/* 8036ED90 40820008 */ bne- lbl_8036ed98 +/* 8036ED94 60E70400 */ ori r7, r7, 0x400 +lbl_8036ed98: +/* 8036ED98 90E60000 */ stw r7, 0(r6) +/* 8036ED9C 546303D6 */ rlwinm r3, r3, 0, 0xf, 0xb +/* 8036EDA0 480000F8 */ b lbl_8036ee98 +lbl_8036eda4: +/* 8036EDA4 3CA0CC00 */ lis r5, 0xcc00 +/* 8036EDA8 38A56800 */ addi r5, r5, 0x6800 +/* 8036EDAC 38A50028 */ addi r5, r5, 0x28 +/* 8036EDB0 548003DE */ rlwinm r0, r4, 0, 0xf, 0xf +/* 8036EDB4 80C50000 */ lwz r6, 0(r5) +/* 8036EDB8 28000000 */ cmplwi r0, 0 +/* 8036EDBC 54C60036 */ rlwinm r6, r6, 0, 0, 0x1b +/* 8036EDC0 40820008 */ bne- lbl_8036edc8 +/* 8036EDC4 60C60001 */ ori r6, r6, 1 +lbl_8036edc8: +/* 8036EDC8 54800420 */ rlwinm r0, r4, 0, 0x10, 0x10 +/* 8036EDCC 28000000 */ cmplwi r0, 0 +/* 8036EDD0 40820008 */ bne- lbl_8036edd8 +/* 8036EDD4 60C60004 */ ori r6, r6, 4 +lbl_8036edd8: +/* 8036EDD8 90C50000 */ stw r6, 0(r5) +/* 8036EDDC 5463045C */ rlwinm r3, r3, 0, 0x11, 0xe +/* 8036EDE0 480000B8 */ b lbl_8036ee98 +lbl_8036ede4: +/* 8036EDE4 54800462 */ rlwinm r0, r4, 0, 0x11, 0x11 +/* 8036EDE8 28000000 */ cmplwi r0, 0 +/* 8036EDEC 38A000F0 */ li r5, 0xf0 +/* 8036EDF0 40820008 */ bne- lbl_8036edf8 +/* 8036EDF4 60A50800 */ ori r5, r5, 0x800 +lbl_8036edf8: +/* 8036EDF8 54800528 */ rlwinm r0, r4, 0, 0x14, 0x14 +/* 8036EDFC 28000000 */ cmplwi r0, 0 +/* 8036EE00 40820008 */ bne- lbl_8036ee08 +/* 8036EE04 60A50008 */ ori r5, r5, 8 +lbl_8036ee08: +/* 8036EE08 5480056A */ rlwinm r0, r4, 0, 0x15, 0x15 +/* 8036EE0C 28000000 */ cmplwi r0, 0 +/* 8036EE10 40820008 */ bne- lbl_8036ee18 +/* 8036EE14 60A50004 */ ori r5, r5, 4 +lbl_8036ee18: +/* 8036EE18 548005AC */ rlwinm r0, r4, 0, 0x16, 0x16 +/* 8036EE1C 28000000 */ cmplwi r0, 0 +/* 8036EE20 40820008 */ bne- lbl_8036ee28 +/* 8036EE24 60A50002 */ ori r5, r5, 2 +lbl_8036ee28: +/* 8036EE28 548005EE */ rlwinm r0, r4, 0, 0x17, 0x17 +/* 8036EE2C 28000000 */ cmplwi r0, 0 +/* 8036EE30 40820008 */ bne- lbl_8036ee38 +/* 8036EE34 60A50001 */ ori r5, r5, 1 +lbl_8036ee38: +/* 8036EE38 54800630 */ rlwinm r0, r4, 0, 0x18, 0x18 +/* 8036EE3C 28000000 */ cmplwi r0, 0 +/* 8036EE40 40820008 */ bne- lbl_8036ee48 +/* 8036EE44 60A50100 */ ori r5, r5, 0x100 +lbl_8036ee48: +/* 8036EE48 54800672 */ rlwinm r0, r4, 0, 0x19, 0x19 +/* 8036EE4C 28000000 */ cmplwi r0, 0 +/* 8036EE50 40820008 */ bne- lbl_8036ee58 +/* 8036EE54 60A51000 */ ori r5, r5, 0x1000 +lbl_8036ee58: +/* 8036EE58 548004A4 */ rlwinm r0, r4, 0, 0x12, 0x12 +/* 8036EE5C 28000000 */ cmplwi r0, 0 +/* 8036EE60 40820008 */ bne- lbl_8036ee68 +/* 8036EE64 60A50200 */ ori r5, r5, 0x200 +lbl_8036ee68: +/* 8036EE68 548004E6 */ rlwinm r0, r4, 0, 0x13, 0x13 +/* 8036EE6C 28000000 */ cmplwi r0, 0 +/* 8036EE70 40820008 */ bne- lbl_8036ee78 +/* 8036EE74 60A50400 */ ori r5, r5, 0x400 +lbl_8036ee78: +/* 8036EE78 548006B4 */ rlwinm r0, r4, 0, 0x1a, 0x1a +/* 8036EE7C 28000000 */ cmplwi r0, 0 +/* 8036EE80 40820008 */ bne- lbl_8036ee88 +/* 8036EE84 60A52000 */ ori r5, r5, 0x2000 +lbl_8036ee88: +/* 8036EE88 3C80CC00 */ lis r4, 0xcc00 +/* 8036EE8C 38843000 */ addi r4, r4, 0x3000 +/* 8036EE90 90A40004 */ stw r5, 4(r4) +/* 8036EE94 546306E0 */ rlwinm r3, r3, 0, 0x1b, 0x10 +lbl_8036ee98: +/* 8036EE98 4E800020 */ blr +.size func_8036ebc4, . - func_8036ebc4 + + +.global func_8036ee9c +.type func_8036ee9c, @function +func_8036ee9c: +/* 8036EE9C 7C0802A6 */ mflr r0 +/* 8036EEA0 90010004 */ stw r0, 4(r1) +/* 8036EEA4 9421FFE0 */ stwu r1, -0x20(r1) +/* 8036EEA8 93E1001C */ stw r31, 0x1c(r1) +/* 8036EEAC 93C10018 */ stw r30, 0x18(r1) +/* 8036EEB0 93A10014 */ stw r29, 0x14(r1) +/* 8036EEB4 7C7F1B78 */ mr r31, r3 +/* 8036EEB8 4BFFFC1D */ bl func_8036ead4 +/* 8036EEBC 3C808000 */ lis r4, 0x8000 +/* 8036EEC0 83A400C4 */ lwz r29, 0xc4(r4) +/* 8036EEC4 7C7E1B78 */ mr r30, r3 +/* 8036EEC8 80A400C8 */ lwz r5, 0xc8(r4) +/* 8036EECC 7FA02B78 */ or r0, r29, r5 +/* 8036EED0 7FE30078 */ andc r3, r31, r0 +/* 8036EED4 7FFFEB78 */ or r31, r31, r29 +/* 8036EED8 93E400C4 */ stw r31, 0xc4(r4) +/* 8036EEDC 7FFF2B78 */ or r31, r31, r5 +/* 8036EEE0 48000004 */ b lbl_8036eee4 +lbl_8036eee4: +/* 8036EEE4 48000004 */ b lbl_8036eee8 +lbl_8036eee8: +/* 8036EEE8 4800000C */ b lbl_8036eef4 +lbl_8036eeec: +/* 8036EEEC 7FE4FB78 */ mr r4, r31 +/* 8036EEF0 4BFFFCD5 */ bl func_8036ebc4 +lbl_8036eef4: +/* 8036EEF4 28030000 */ cmplwi r3, 0 +/* 8036EEF8 4082FFF4 */ bne+ lbl_8036eeec +/* 8036EEFC 7FC3F378 */ mr r3, r30 +/* 8036EF00 4BFFFBFD */ bl func_8036eafc +/* 8036EF04 7FA3EB78 */ mr r3, r29 +/* 8036EF08 80010024 */ lwz r0, 0x24(r1) +/* 8036EF0C 83E1001C */ lwz r31, 0x1c(r1) +/* 8036EF10 83C10018 */ lwz r30, 0x18(r1) +/* 8036EF14 83A10014 */ lwz r29, 0x14(r1) +/* 8036EF18 38210020 */ addi r1, r1, 0x20 +/* 8036EF1C 7C0803A6 */ mtlr r0 +/* 8036EF20 4E800020 */ blr +.size func_8036ee9c, . - func_8036ee9c + + +.global func_8036ef24 +.type func_8036ef24, @function +func_8036ef24: +/* 8036EF24 7C0802A6 */ mflr r0 +/* 8036EF28 90010004 */ stw r0, 4(r1) +/* 8036EF2C 9421FFE0 */ stwu r1, -0x20(r1) +/* 8036EF30 93E1001C */ stw r31, 0x1c(r1) +/* 8036EF34 93C10018 */ stw r30, 0x18(r1) +/* 8036EF38 93A10014 */ stw r29, 0x14(r1) +/* 8036EF3C 7C7F1B78 */ mr r31, r3 +/* 8036EF40 4BFFFB95 */ bl func_8036ead4 +/* 8036EF44 3C808000 */ lis r4, 0x8000 +/* 8036EF48 83A400C4 */ lwz r29, 0xc4(r4) +/* 8036EF4C 7C7E1B78 */ mr r30, r3 +/* 8036EF50 80A400C8 */ lwz r5, 0xc8(r4) +/* 8036EF54 7FA02B78 */ or r0, r29, r5 +/* 8036EF58 7FE30038 */ and r3, r31, r0 +/* 8036EF5C 7FBFF878 */ andc r31, r29, r31 +/* 8036EF60 93E400C4 */ stw r31, 0xc4(r4) +/* 8036EF64 7FFF2B78 */ or r31, r31, r5 +/* 8036EF68 48000004 */ b lbl_8036ef6c +lbl_8036ef6c: +/* 8036EF6C 48000004 */ b lbl_8036ef70 +lbl_8036ef70: +/* 8036EF70 4800000C */ b lbl_8036ef7c +lbl_8036ef74: +/* 8036EF74 7FE4FB78 */ mr r4, r31 +/* 8036EF78 4BFFFC4D */ bl func_8036ebc4 +lbl_8036ef7c: +/* 8036EF7C 28030000 */ cmplwi r3, 0 +/* 8036EF80 4082FFF4 */ bne+ lbl_8036ef74 +/* 8036EF84 7FC3F378 */ mr r3, r30 +/* 8036EF88 4BFFFB75 */ bl func_8036eafc +/* 8036EF8C 7FA3EB78 */ mr r3, r29 +/* 8036EF90 80010024 */ lwz r0, 0x24(r1) +/* 8036EF94 83E1001C */ lwz r31, 0x1c(r1) +/* 8036EF98 83C10018 */ lwz r30, 0x18(r1) +/* 8036EF9C 83A10014 */ lwz r29, 0x14(r1) +/* 8036EFA0 38210020 */ addi r1, r1, 0x20 +/* 8036EFA4 7C0803A6 */ mtlr r0 +/* 8036EFA8 4E800020 */ blr +.size func_8036ef24, . - func_8036ef24 + + +.global func_8036efac +.type func_8036efac, @function +func_8036efac: +/* 8036EFAC 7C0802A6 */ mflr r0 +/* 8036EFB0 90010004 */ stw r0, 4(r1) +/* 8036EFB4 9421FFD8 */ stwu r1, -0x28(r1) +/* 8036EFB8 93E10024 */ stw r31, 0x24(r1) +/* 8036EFBC 93C10020 */ stw r30, 0x20(r1) +/* 8036EFC0 93A1001C */ stw r29, 0x1c(r1) +/* 8036EFC4 7C9E2378 */ mr r30, r4 +/* 8036EFC8 3C60CC00 */ lis r3, 0xcc00 +/* 8036EFCC 83E33000 */ lwz r31, 0x3000(r3) +/* 8036EFD0 57FF041C */ rlwinm r31, r31, 0, 0x10, 0xe +/* 8036EFD4 281F0000 */ cmplwi r31, 0 +/* 8036EFD8 41820018 */ beq- lbl_8036eff0 +/* 8036EFDC 38633000 */ addi r3, r3, 0x3000 +/* 8036EFE0 80030004 */ lwz r0, 4(r3) +/* 8036EFE4 7FE00038 */ and r0, r31, r0 +/* 8036EFE8 28000000 */ cmplwi r0, 0 +/* 8036EFEC 4082000C */ bne- lbl_8036eff8 +lbl_8036eff0: +/* 8036EFF0 7FC3F378 */ mr r3, r30 +/* 8036EFF4 4BFFF18D */ bl func_8036e180 +lbl_8036eff8: +/* 8036EFF8 57E00630 */ rlwinm r0, r31, 0, 0x18, 0x18 +/* 8036EFFC 28000000 */ cmplwi r0, 0 +/* 8036F000 38000000 */ li r0, 0x0 +/* 8036F004 41820060 */ beq- lbl_8036f064 +/* 8036F008 3C60CC00 */ lis r3, 0xcc00 +/* 8036F00C 38634000 */ addi r3, r3, 0x4000 +/* 8036F010 A083001E */ lhz r4, 0x1e(r3) +/* 8036F014 548307FE */ clrlwi r3, r4, 0x1f +/* 8036F018 28030000 */ cmplwi r3, 0 +/* 8036F01C 41820008 */ beq- lbl_8036f024 +/* 8036F020 64008000 */ oris r0, r0, 0x8000 +lbl_8036f024: +/* 8036F024 548307BC */ rlwinm r3, r4, 0, 0x1e, 0x1e +/* 8036F028 28030000 */ cmplwi r3, 0 +/* 8036F02C 41820008 */ beq- lbl_8036f034 +/* 8036F030 64004000 */ oris r0, r0, 0x4000 +lbl_8036f034: +/* 8036F034 5483077A */ rlwinm r3, r4, 0, 0x1d, 0x1d +/* 8036F038 28030000 */ cmplwi r3, 0 +/* 8036F03C 41820008 */ beq- lbl_8036f044 +/* 8036F040 64002000 */ oris r0, r0, 0x2000 +lbl_8036f044: +/* 8036F044 54830738 */ rlwinm r3, r4, 0, 0x1c, 0x1c +/* 8036F048 28030000 */ cmplwi r3, 0 +/* 8036F04C 41820008 */ beq- lbl_8036f054 +/* 8036F050 64001000 */ oris r0, r0, 0x1000 +lbl_8036f054: +/* 8036F054 548306F6 */ rlwinm r3, r4, 0, 0x1b, 0x1b +/* 8036F058 28030000 */ cmplwi r3, 0 +/* 8036F05C 41820008 */ beq- lbl_8036f064 +/* 8036F060 64000800 */ oris r0, r0, 0x800 +lbl_8036f064: +/* 8036F064 57E30672 */ rlwinm r3, r31, 0, 0x19, 0x19 +/* 8036F068 28030000 */ cmplwi r3, 0 +/* 8036F06C 41820040 */ beq- lbl_8036f0ac +/* 8036F070 3C60CC00 */ lis r3, 0xcc00 +/* 8036F074 38635000 */ addi r3, r3, 0x5000 +/* 8036F078 A083000A */ lhz r4, 0xa(r3) +/* 8036F07C 54830738 */ rlwinm r3, r4, 0, 0x1c, 0x1c +/* 8036F080 28030000 */ cmplwi r3, 0 +/* 8036F084 41820008 */ beq- lbl_8036f08c +/* 8036F088 64000400 */ oris r0, r0, 0x400 +lbl_8036f08c: +/* 8036F08C 548306B4 */ rlwinm r3, r4, 0, 0x1a, 0x1a +/* 8036F090 28030000 */ cmplwi r3, 0 +/* 8036F094 41820008 */ beq- lbl_8036f09c +/* 8036F098 64000200 */ oris r0, r0, 0x200 +lbl_8036f09c: +/* 8036F09C 54830630 */ rlwinm r3, r4, 0, 0x18, 0x18 +/* 8036F0A0 28030000 */ cmplwi r3, 0 +/* 8036F0A4 41820008 */ beq- lbl_8036f0ac +/* 8036F0A8 64000100 */ oris r0, r0, 0x100 +lbl_8036f0ac: +/* 8036F0AC 57E306B4 */ rlwinm r3, r31, 0, 0x1a, 0x1a +/* 8036F0B0 28030000 */ cmplwi r3, 0 +/* 8036F0B4 4182001C */ beq- lbl_8036f0d0 +/* 8036F0B8 3C60CC00 */ lis r3, 0xcc00 +/* 8036F0BC 80636C00 */ lwz r3, 0x6c00(r3) +/* 8036F0C0 54630738 */ rlwinm r3, r3, 0, 0x1c, 0x1c +/* 8036F0C4 28030000 */ cmplwi r3, 0 +/* 8036F0C8 41820008 */ beq- lbl_8036f0d0 +/* 8036F0CC 64000080 */ oris r0, r0, 0x80 +lbl_8036f0d0: +/* 8036F0D0 57E306F6 */ rlwinm r3, r31, 0, 0x1b, 0x1b +/* 8036F0D4 28030000 */ cmplwi r3, 0 +/* 8036F0D8 418200A4 */ beq- lbl_8036f17c +/* 8036F0DC 3C60CC00 */ lis r3, 0xcc00 +/* 8036F0E0 80836800 */ lwz r4, 0x6800(r3) +/* 8036F0E4 548307BC */ rlwinm r3, r4, 0, 0x1e, 0x1e +/* 8036F0E8 28030000 */ cmplwi r3, 0 +/* 8036F0EC 41820008 */ beq- lbl_8036f0f4 +/* 8036F0F0 64000040 */ oris r0, r0, 0x40 +lbl_8036f0f4: +/* 8036F0F4 54830738 */ rlwinm r3, r4, 0, 0x1c, 0x1c +/* 8036F0F8 28030000 */ cmplwi r3, 0 +/* 8036F0FC 41820008 */ beq- lbl_8036f104 +/* 8036F100 64000020 */ oris r0, r0, 0x20 +lbl_8036f104: +/* 8036F104 54830528 */ rlwinm r3, r4, 0, 0x14, 0x14 +/* 8036F108 28030000 */ cmplwi r3, 0 +/* 8036F10C 41820008 */ beq- lbl_8036f114 +/* 8036F110 64000010 */ oris r0, r0, 0x10 +lbl_8036f114: +/* 8036F114 3C60CC00 */ lis r3, 0xcc00 +/* 8036F118 38636800 */ addi r3, r3, 0x6800 +/* 8036F11C 80830014 */ lwz r4, 0x14(r3) +/* 8036F120 548307BC */ rlwinm r3, r4, 0, 0x1e, 0x1e +/* 8036F124 28030000 */ cmplwi r3, 0 +/* 8036F128 41820008 */ beq- lbl_8036f130 +/* 8036F12C 64000008 */ oris r0, r0, 8 +lbl_8036f130: +/* 8036F130 54830738 */ rlwinm r3, r4, 0, 0x1c, 0x1c +/* 8036F134 28030000 */ cmplwi r3, 0 +/* 8036F138 41820008 */ beq- lbl_8036f140 +/* 8036F13C 64000004 */ oris r0, r0, 4 +lbl_8036f140: +/* 8036F140 54830528 */ rlwinm r3, r4, 0, 0x14, 0x14 +/* 8036F144 28030000 */ cmplwi r3, 0 +/* 8036F148 41820008 */ beq- lbl_8036f150 +/* 8036F14C 64000002 */ oris r0, r0, 2 +lbl_8036f150: +/* 8036F150 3C60CC00 */ lis r3, 0xcc00 +/* 8036F154 38636800 */ addi r3, r3, 0x6800 +/* 8036F158 80830028 */ lwz r4, 0x28(r3) +/* 8036F15C 548307BC */ rlwinm r3, r4, 0, 0x1e, 0x1e +/* 8036F160 28030000 */ cmplwi r3, 0 +/* 8036F164 41820008 */ beq- lbl_8036f16c +/* 8036F168 64000001 */ oris r0, r0, 1 +lbl_8036f16c: +/* 8036F16C 54830738 */ rlwinm r3, r4, 0, 0x1c, 0x1c +/* 8036F170 28030000 */ cmplwi r3, 0 +/* 8036F174 41820008 */ beq- lbl_8036f17c +/* 8036F178 60008000 */ ori r0, r0, 0x8000 +lbl_8036f17c: +/* 8036F17C 57E304A4 */ rlwinm r3, r31, 0, 0x12, 0x12 +/* 8036F180 28030000 */ cmplwi r3, 0 +/* 8036F184 41820008 */ beq- lbl_8036f18c +/* 8036F188 60000020 */ ori r0, r0, 0x20 +lbl_8036f18c: +/* 8036F18C 57E304E6 */ rlwinm r3, r31, 0, 0x13, 0x13 +/* 8036F190 28030000 */ cmplwi r3, 0 +/* 8036F194 41820008 */ beq- lbl_8036f19c +/* 8036F198 60000040 */ ori r0, r0, 0x40 +lbl_8036f19c: +/* 8036F19C 57E3056A */ rlwinm r3, r31, 0, 0x15, 0x15 +/* 8036F1A0 28030000 */ cmplwi r3, 0 +/* 8036F1A4 41820008 */ beq- lbl_8036f1ac +/* 8036F1A8 60001000 */ ori r0, r0, 0x1000 +lbl_8036f1ac: +/* 8036F1AC 57E305AC */ rlwinm r3, r31, 0, 0x16, 0x16 +/* 8036F1B0 28030000 */ cmplwi r3, 0 +/* 8036F1B4 41820008 */ beq- lbl_8036f1bc +/* 8036F1B8 60002000 */ ori r0, r0, 0x2000 +lbl_8036f1bc: +/* 8036F1BC 57E305EE */ rlwinm r3, r31, 0, 0x17, 0x17 +/* 8036F1C0 28030000 */ cmplwi r3, 0 +/* 8036F1C4 41820008 */ beq- lbl_8036f1cc +/* 8036F1C8 60000080 */ ori r0, r0, 0x80 +lbl_8036f1cc: +/* 8036F1CC 57E30738 */ rlwinm r3, r31, 0, 0x1c, 0x1c +/* 8036F1D0 28030000 */ cmplwi r3, 0 +/* 8036F1D4 41820008 */ beq- lbl_8036f1dc +/* 8036F1D8 60000800 */ ori r0, r0, 0x800 +lbl_8036f1dc: +/* 8036F1DC 57E3077A */ rlwinm r3, r31, 0, 0x1d, 0x1d +/* 8036F1E0 28030000 */ cmplwi r3, 0 +/* 8036F1E4 41820008 */ beq- lbl_8036f1ec +/* 8036F1E8 60000400 */ ori r0, r0, 0x400 +lbl_8036f1ec: +/* 8036F1EC 57E307BC */ rlwinm r3, r31, 0, 0x1e, 0x1e +/* 8036F1F0 28030000 */ cmplwi r3, 0 +/* 8036F1F4 41820008 */ beq- lbl_8036f1fc +/* 8036F1F8 60000200 */ ori r0, r0, 0x200 +lbl_8036f1fc: +/* 8036F1FC 57E30528 */ rlwinm r3, r31, 0, 0x14, 0x14 +/* 8036F200 28030000 */ cmplwi r3, 0 +/* 8036F204 41820008 */ beq- lbl_8036f20c +/* 8036F208 60004000 */ ori r0, r0, 0x4000 +lbl_8036f20c: +/* 8036F20C 57E307FE */ clrlwi r3, r31, 0x1f +/* 8036F210 28030000 */ cmplwi r3, 0 +/* 8036F214 41820008 */ beq- lbl_8036f21c +/* 8036F218 60000100 */ ori r0, r0, 0x100 +lbl_8036f21c: +/* 8036F21C 3C608000 */ lis r3, 0x8000 +/* 8036F220 808300C4 */ lwz r4, 0xc4(r3) +/* 8036F224 806300C8 */ lwz r3, 0xc8(r3) +/* 8036F228 7C831B78 */ or r3, r4, r3 +/* 8036F22C 7C041878 */ andc r4, r0, r3 +/* 8036F230 28040000 */ cmplwi r4, 0 +/* 8036F234 41820098 */ beq- lbl_8036f2cc +/* 8036F238 3C60804F */ lis r3, lbl_804ef518@ha +/* 8036F23C 3803F518 */ addi r0, r3, lbl_804ef518@l +/* 8036F240 7C030378 */ mr r3, r0 +/* 8036F244 48000004 */ b lbl_8036f248 +lbl_8036f248: +/* 8036F248 48000004 */ b lbl_8036f24c +lbl_8036f24c: +/* 8036F24C 80030000 */ lwz r0, 0(r3) +/* 8036F250 7C800038 */ and r0, r4, r0 +/* 8036F254 28000000 */ cmplwi r0, 0 +/* 8036F258 41820010 */ beq- lbl_8036f268 +/* 8036F25C 7C000034 */ cntlzw r0, r0 +/* 8036F260 7C1D0734 */ extsh r29, r0 +/* 8036F264 4800000C */ b lbl_8036f270 +lbl_8036f268: +/* 8036F268 38630004 */ addi r3, r3, 0x4 +/* 8036F26C 4BFFFFE0 */ b lbl_8036f24c +lbl_8036f270: +/* 8036F270 806DCA48 */ lwz r3, lbl_805c6868@sda21(0) +/* 8036F274 57A0103A */ slwi r0, r29, 2 +/* 8036F278 7FE3002E */ lwzx r31, r3, r0 +/* 8036F27C 281F0000 */ cmplwi r31, 0 +/* 8036F280 4182004C */ beq- lbl_8036f2cc +/* 8036F284 2C1D0004 */ cmpwi r29, 0x4 +/* 8036F288 4081001C */ ble- lbl_8036f2a4 +/* 8036F28C B3ADCA50 */ sth r29, lbl_805c6870@sda21(0) +/* 8036F290 48003535 */ bl func_803727c4 +/* 8036F294 908DCA5C */ stw r4, lbl_805c687c@sda21(0) +/* 8036F298 906DCA58 */ stw r3, lbl_805c6878@sda21(0) +/* 8036F29C 801E0198 */ lwz r0, 0x198(r30) +/* 8036F2A0 900DCA4C */ stw r0, lbl_805c686c@sda21(0) +lbl_8036f2a4: +/* 8036F2A4 48002511 */ bl func_803717b4 +/* 8036F2A8 7FA3EB78 */ mr r3, r29 +/* 8036F2AC 7FC4F378 */ mr r4, r30 +/* 8036F2B0 7FECFB78 */ mr r12, r31 +/* 8036F2B4 7D8803A6 */ mtlr r12 +/* 8036F2B8 4E800021 */ blrl +/* 8036F2BC 48002539 */ bl func_803717f4 +/* 8036F2C0 48002A29 */ bl func_80371ce8 +/* 8036F2C4 7FC3F378 */ mr r3, r30 +/* 8036F2C8 4BFFEEB9 */ bl func_8036e180 +lbl_8036f2cc: +/* 8036F2CC 7FC3F378 */ mr r3, r30 +/* 8036F2D0 4BFFEEB1 */ bl func_8036e180 +/* 8036F2D4 8001002C */ lwz r0, 0x2c(r1) +/* 8036F2D8 83E10024 */ lwz r31, 0x24(r1) +/* 8036F2DC 83C10020 */ lwz r30, 0x20(r1) +/* 8036F2E0 83A1001C */ lwz r29, 0x1c(r1) +/* 8036F2E4 38210028 */ addi r1, r1, 0x28 +/* 8036F2E8 7C0803A6 */ mtlr r0 +/* 8036F2EC 4E800020 */ blr +.size func_8036efac, . - func_8036efac + + +.global func_8036f2f0 +.type func_8036f2f0, @function +func_8036f2f0: +/* 8036F2F0 90040000 */ stw r0, 0(r4) +/* 8036F2F4 90240004 */ stw r1, 4(r4) +/* 8036F2F8 90440008 */ stw r2, 8(r4) +/* 8036F2FC BCC40018 */ stmw r6, 0x18(r4) +/* 8036F300 7C11E2A6 */ mfspr r0, 0x391 +/* 8036F304 900401A8 */ stw r0, 0x1a8(r4) +/* 8036F308 7C12E2A6 */ mfspr r0, 0x392 +/* 8036F30C 900401AC */ stw r0, 0x1ac(r4) +/* 8036F310 7C13E2A6 */ mfspr r0, 0x393 +/* 8036F314 900401B0 */ stw r0, 0x1b0(r4) +/* 8036F318 7C14E2A6 */ mfspr r0, 0x394 +/* 8036F31C 900401B4 */ stw r0, 0x1b4(r4) +/* 8036F320 7C15E2A6 */ mfspr r0, 0x395 +/* 8036F324 900401B8 */ stw r0, 0x1b8(r4) +/* 8036F328 7C16E2A6 */ mfspr r0, 0x396 +/* 8036F32C 900401BC */ stw r0, 0x1bc(r4) +/* 8036F330 7C17E2A6 */ mfspr r0, 0x397 +/* 8036F334 900401C0 */ stw r0, 0x1c0(r4) +/* 8036F338 9421FFF8 */ stwu r1, -8(r1) +/* 8036F33C 4BFFFC70 */ b func_8036efac +.size func_8036f2f0, . - func_8036f2f0 + diff --git a/asm/Dolphin/os/OSLink-data.s b/asm/Dolphin/os/OSLink-data.s new file mode 100644 index 0000000..0a23f10 --- /dev/null +++ b/asm/Dolphin/os/OSLink-data.s @@ -0,0 +1,37 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804ef548 +.type lbl_804ef548, @object +lbl_804ef548: +/* 804EF548 4F534C69 */ .4byte 0x4f534c69 +/* 804EF54C 6E6B3A20 */ .4byte 0x6e6b3a20 +/* 804EF550 756E6B6E */ .4byte 0x756e6b6e +/* 804EF554 6F776E20 */ .4byte 0x6f776e20 +/* 804EF558 72656C6F */ .4byte 0x72656c6f +/* 804EF55C 63617469 */ .4byte 0x63617469 +/* 804EF560 6F6E2074 */ .4byte 0x6f6e2074 +/* 804EF564 79706520 */ .4byte 0x79706520 +/* 804EF568 2533640A */ .4byte 0x2533640a +/* 804EF56C 00000000 */ .4byte 0x00000000 +.size lbl_804ef548, . - lbl_804ef548 + + +.global lbl_804ef570 +.type lbl_804ef570, @object +lbl_804ef570: +/* 804EF570 4F53556E */ .4byte 0x4f53556e +/* 804EF574 6C696E6B */ .4byte 0x6c696e6b +/* 804EF578 3A20756E */ .4byte 0x3a20756e +/* 804EF57C 6B6E6F77 */ .4byte 0x6b6e6f77 +/* 804EF580 6E207265 */ .4byte 0x6e207265 +/* 804EF584 6C6F6361 */ .4byte 0x6c6f6361 +/* 804EF588 74696F6E */ .4byte 0x74696f6e +/* 804EF58C 20747970 */ .4byte 0x20747970 +/* 804EF590 65202533 */ .4byte 0x65202533 +/* 804EF594 640A0000 */ .4byte 0x640a0000 +.size lbl_804ef570, . - lbl_804ef570 + diff --git a/asm/Dolphin/os/OSLink.s b/asm/Dolphin/os/OSLink.s new file mode 100644 index 0000000..af86ed2 --- /dev/null +++ b/asm/Dolphin/os/OSLink.s @@ -0,0 +1,604 @@ +.include "macros.inc" + +.section .text + +.global func_8036f340 +.type func_8036f340, @function +func_8036f340: +/* 8036F340 4E800020 */ blr +.size func_8036f340, . - func_8036f340 + + +.global func_8036f344 +.type func_8036f344, @function +func_8036f344: +/* 8036F344 4E800020 */ blr +.size func_8036f344, . - func_8036f344 + + +.global func_8036f348 +.type func_8036f348, @function +func_8036f348: +/* 8036F348 7C0802A6 */ mflr r0 +/* 8036F34C 90010004 */ stw r0, 4(r1) +/* 8036F350 9421FFC0 */ stwu r1, -0x40(r1) +/* 8036F354 BEE1001C */ stmw r23, 0x1c(r1) +/* 8036F358 7C7A1B79 */ or. r26, r3, r3 +/* 8036F35C 3B640000 */ addi r27, r4, 0x0 +/* 8036F360 4182000C */ beq- lbl_8036f36c +/* 8036F364 83FA0000 */ lwz r31, 0(r26) +/* 8036F368 48000008 */ b lbl_8036f370 +lbl_8036f36c: +/* 8036F36C 3BE00000 */ li r31, 0x0 +lbl_8036f370: +/* 8036F370 807B0028 */ lwz r3, 0x28(r27) +/* 8036F374 801B002C */ lwz r0, 0x2c(r27) +/* 8036F378 38830000 */ addi r4, r3, 0x0 +/* 8036F37C 7C630214 */ add r3, r3, r0 +/* 8036F380 38030007 */ addi r0, r3, 0x7 +/* 8036F384 7C040050 */ subf r0, r4, r0 +/* 8036F388 5400E8FE */ srwi r0, r0, 3 +/* 8036F38C 7C041840 */ cmplw r4, r3 +/* 8036F390 7C0903A6 */ mtctr r0 +/* 8036F394 40800018 */ bge- lbl_8036f3ac +lbl_8036f398: +/* 8036F398 80040000 */ lwz r0, 0(r4) +/* 8036F39C 7C00F840 */ cmplw r0, r31 +/* 8036F3A0 41820014 */ beq- lbl_8036f3b4 +/* 8036F3A4 38840008 */ addi r4, r4, 0x8 +/* 8036F3A8 4200FFF0 */ bdnz lbl_8036f398 +lbl_8036f3ac: +/* 8036F3AC 38600000 */ li r3, 0x0 +/* 8036F3B0 480001F8 */ b lbl_8036f5a8 +lbl_8036f3b4: +/* 8036F3B4 3C60804F */ lis r3, lbl_804ef548@ha +/* 8036F3B8 83C40004 */ lwz r30, 4(r4) +/* 8036F3BC 3B23F548 */ addi r25, r3, lbl_804ef548@l +/* 8036F3C0 3BA00000 */ li r29, 0x0 +/* 8036F3C4 480001AC */ b lbl_8036f570 +lbl_8036f3c8: +/* 8036F3C8 A01E0000 */ lhz r0, 0(r30) +/* 8036F3CC 281F0000 */ cmplwi r31, 0 +/* 8036F3D0 7F9C0214 */ add r28, r28, r0 +/* 8036F3D4 4182001C */ beq- lbl_8036f3f0 +/* 8036F3D8 881E0003 */ lbz r0, 3(r30) +/* 8036F3DC 807A0010 */ lwz r3, 0x10(r26) +/* 8036F3E0 54001838 */ slwi r0, r0, 3 +/* 8036F3E4 7C03002E */ lwzx r0, r3, r0 +/* 8036F3E8 5405003C */ rlwinm r5, r0, 0, 0, 0x1e +/* 8036F3EC 48000008 */ b lbl_8036f3f4 +lbl_8036f3f0: +/* 8036F3F0 38A00000 */ li r5, 0x0 +lbl_8036f3f4: +/* 8036F3F4 2C040006 */ cmpwi r4, 0x6 +/* 8036F3F8 418200B8 */ beq- lbl_8036f4b0 +/* 8036F3FC 40800030 */ bge- lbl_8036f42c +/* 8036F400 2C040002 */ cmpwi r4, 0x2 +/* 8036F404 4182005C */ beq- lbl_8036f460 +/* 8036F408 40800014 */ bge- lbl_8036f41c +/* 8036F40C 2C040000 */ cmpwi r4, 0x0 +/* 8036F410 4182015C */ beq- lbl_8036f56c +/* 8036F414 4080003C */ bge- lbl_8036f450 +/* 8036F418 48000148 */ b lbl_8036f560 +lbl_8036f41c: +/* 8036F41C 2C040004 */ cmpwi r4, 0x4 +/* 8036F420 4182006C */ beq- lbl_8036f48c +/* 8036F424 40800078 */ bge- lbl_8036f49c +/* 8036F428 48000054 */ b lbl_8036f47c +lbl_8036f42c: +/* 8036F42C 2C0400C9 */ cmpwi r4, 0xc9 +/* 8036F430 4182013C */ beq- lbl_8036f56c +/* 8036F434 40800010 */ bge- lbl_8036f444 +/* 8036F438 2C04000A */ cmpwi r4, 0xa +/* 8036F43C 418200A0 */ beq- lbl_8036f4dc +/* 8036F440 48000120 */ b lbl_8036f560 +lbl_8036f444: +/* 8036F444 2C0400CB */ cmpwi r4, 0xcb +/* 8036F448 40800118 */ bge- lbl_8036f560 +/* 8036F44C 480000B0 */ b lbl_8036f4fc +lbl_8036f450: +/* 8036F450 801E0004 */ lwz r0, 4(r30) +/* 8036F454 7C050214 */ add r0, r5, r0 +/* 8036F458 901C0000 */ stw r0, 0(r28) +/* 8036F45C 48000110 */ b lbl_8036f56c +lbl_8036f460: +/* 8036F460 801E0004 */ lwz r0, 4(r30) +/* 8036F464 807C0000 */ lwz r3, 0(r28) +/* 8036F468 7C050214 */ add r0, r5, r0 +/* 8036F46C 5463078A */ rlwinm r3, r3, 0, 0x1e, 5 +/* 8036F470 500301BA */ rlwimi r3, r0, 0, 6, 0x1d +/* 8036F474 907C0000 */ stw r3, 0(r28) +/* 8036F478 480000F4 */ b lbl_8036f56c +lbl_8036f47c: +/* 8036F47C 801E0004 */ lwz r0, 4(r30) +/* 8036F480 7C050214 */ add r0, r5, r0 +/* 8036F484 B01C0000 */ sth r0, 0(r28) +/* 8036F488 480000E4 */ b lbl_8036f56c +lbl_8036f48c: +/* 8036F48C 801E0004 */ lwz r0, 4(r30) +/* 8036F490 7C050214 */ add r0, r5, r0 +/* 8036F494 B01C0000 */ sth r0, 0(r28) +/* 8036F498 480000D4 */ b lbl_8036f56c +lbl_8036f49c: +/* 8036F49C 801E0004 */ lwz r0, 4(r30) +/* 8036F4A0 7C050214 */ add r0, r5, r0 +/* 8036F4A4 5400843E */ srwi r0, r0, 0x10 +/* 8036F4A8 B01C0000 */ sth r0, 0(r28) +/* 8036F4AC 480000C0 */ b lbl_8036f56c +lbl_8036f4b0: +/* 8036F4B0 801E0004 */ lwz r0, 4(r30) +/* 8036F4B4 7C850214 */ add r4, r5, r0 +/* 8036F4B8 54800421 */ rlwinm. r0, r4, 0, 0x10, 0x10 +/* 8036F4BC 4182000C */ beq- lbl_8036f4c8 +/* 8036F4C0 38600001 */ li r3, 0x1 +/* 8036F4C4 48000008 */ b lbl_8036f4cc +lbl_8036f4c8: +/* 8036F4C8 38600000 */ li r3, 0x0 +lbl_8036f4cc: +/* 8036F4CC 5480843E */ srwi r0, r4, 0x10 +/* 8036F4D0 7C001A14 */ add r0, r0, r3 +/* 8036F4D4 B01C0000 */ sth r0, 0(r28) +/* 8036F4D8 48000094 */ b lbl_8036f56c +lbl_8036f4dc: +/* 8036F4DC 801E0004 */ lwz r0, 4(r30) +/* 8036F4E0 807C0000 */ lwz r3, 0(r28) +/* 8036F4E4 7C050214 */ add r0, r5, r0 +/* 8036F4E8 7C1C0050 */ subf r0, r28, r0 +/* 8036F4EC 5463078A */ rlwinm r3, r3, 0, 0x1e, 5 +/* 8036F4F0 500301BA */ rlwimi r3, r0, 0, 6, 0x1d +/* 8036F4F4 907C0000 */ stw r3, 0(r28) +/* 8036F4F8 48000074 */ b lbl_8036f56c +lbl_8036f4fc: +/* 8036F4FC 881E0003 */ lbz r0, 3(r30) +/* 8036F500 281D0000 */ cmplwi r29, 0 +/* 8036F504 807B0010 */ lwz r3, 0x10(r27) +/* 8036F508 54001838 */ slwi r0, r0, 3 +/* 8036F50C 7C630214 */ add r3, r3, r0 +/* 8036F510 80030000 */ lwz r0, 0(r3) +/* 8036F514 3AE30000 */ addi r23, r3, 0x0 +/* 8036F518 541C003C */ rlwinm r28, r0, 0, 0, 0x1e +/* 8036F51C 41820024 */ beq- lbl_8036f540 +/* 8036F520 801D0000 */ lwz r0, 0(r29) +/* 8036F524 809D0004 */ lwz r4, 4(r29) +/* 8036F528 5418003C */ rlwinm r24, r0, 0, 0, 0x1e +/* 8036F52C 38780000 */ addi r3, r24, 0x0 +/* 8036F530 4BFFE3E1 */ bl func_8036d910 +/* 8036F534 7F03C378 */ mr r3, r24 +/* 8036F538 809D0004 */ lwz r4, 4(r29) +/* 8036F53C 4BFFE49D */ bl func_8036d9d8 +lbl_8036f540: +/* 8036F540 80170000 */ lwz r0, 0(r23) +/* 8036F544 540007FF */ clrlwi. r0, r0, 0x1f +/* 8036F548 4182000C */ beq- lbl_8036f554 +/* 8036F54C 7EE0BB78 */ mr r0, r23 +/* 8036F550 48000008 */ b lbl_8036f558 +lbl_8036f554: +/* 8036F554 38000000 */ li r0, 0x0 +lbl_8036f558: +/* 8036F558 7C1D0378 */ mr r29, r0 +/* 8036F55C 48000010 */ b lbl_8036f56c +lbl_8036f560: +/* 8036F560 38790000 */ addi r3, r25, 0x0 +/* 8036F564 4CC63182 */ crclr 6 +/* 8036F568 4BFFF14D */ bl func_8036e6b4 +lbl_8036f56c: +/* 8036F56C 3BDE0008 */ addi r30, r30, 0x8 +lbl_8036f570: +/* 8036F570 889E0002 */ lbz r4, 2(r30) +/* 8036F574 280400CB */ cmplwi r4, 0xcb +/* 8036F578 4082FE50 */ bne+ lbl_8036f3c8 +/* 8036F57C 281D0000 */ cmplwi r29, 0 +/* 8036F580 41820024 */ beq- lbl_8036f5a4 +/* 8036F584 801D0000 */ lwz r0, 0(r29) +/* 8036F588 809D0004 */ lwz r4, 4(r29) +/* 8036F58C 5419003C */ rlwinm r25, r0, 0, 0, 0x1e +/* 8036F590 38790000 */ addi r3, r25, 0x0 +/* 8036F594 4BFFE37D */ bl func_8036d910 +/* 8036F598 7F23CB78 */ mr r3, r25 +/* 8036F59C 809D0004 */ lwz r4, 4(r29) +/* 8036F5A0 4BFFE439 */ bl func_8036d9d8 +lbl_8036f5a4: +/* 8036F5A4 38600001 */ li r3, 0x1 +lbl_8036f5a8: +/* 8036F5A8 BAE1001C */ lmw r23, 0x1c(r1) +/* 8036F5AC 80010044 */ lwz r0, 0x44(r1) +/* 8036F5B0 38210040 */ addi r1, r1, 0x40 +/* 8036F5B4 7C0803A6 */ mtlr r0 +/* 8036F5B8 4E800020 */ blr +.size func_8036f348, . - func_8036f348 + + +.global func_8036f5bc +.type func_8036f5bc, @function +func_8036f5bc: +/* 8036F5BC 7C0802A6 */ mflr r0 +/* 8036F5C0 90010004 */ stw r0, 4(r1) +/* 8036F5C4 9421FFE0 */ stwu r1, -0x20(r1) +/* 8036F5C8 93E1001C */ stw r31, 0x1c(r1) +/* 8036F5CC 7C7F1B78 */ mr r31, r3 +/* 8036F5D0 93C10018 */ stw r30, 0x18(r1) +/* 8036F5D4 3BC40000 */ addi r30, r4, 0x0 +/* 8036F5D8 93A10014 */ stw r29, 0x14(r1) +/* 8036F5DC 8003001C */ lwz r0, 0x1c(r3) +/* 8036F5E0 28000002 */ cmplwi r0, 2 +/* 8036F5E4 41810040 */ bgt- lbl_8036f624 +/* 8036F5E8 41800044 */ blt- lbl_8036f62c +/* 8036F5EC 807F0040 */ lwz r3, 0x40(r31) +/* 8036F5F0 28030000 */ cmplwi r3, 0 +/* 8036F5F4 41820014 */ beq- lbl_8036f608 +/* 8036F5F8 7C1F1B96 */ divwu r0, r31, r3 +/* 8036F5FC 7C0019D6 */ mullw r0, r0, r3 +/* 8036F600 7C00F851 */ subf. r0, r0, r31 +/* 8036F604 40820020 */ bne- lbl_8036f624 +lbl_8036f608: +/* 8036F608 807F0044 */ lwz r3, 0x44(r31) +/* 8036F60C 28030000 */ cmplwi r3, 0 +/* 8036F610 4182001C */ beq- lbl_8036f62c +/* 8036F614 7C1E1B96 */ divwu r0, r30, r3 +/* 8036F618 7C0019D6 */ mullw r0, r0, r3 +/* 8036F61C 7C00F051 */ subf. r0, r0, r30 +/* 8036F620 4182000C */ beq- lbl_8036f62c +lbl_8036f624: +/* 8036F624 38600000 */ li r3, 0x0 +/* 8036F628 480001C8 */ b lbl_8036f7f0 +lbl_8036f62c: +/* 8036F62C 3C608000 */ lis r3, 0x8000 +/* 8036F630 38A330C8 */ addi r5, r3, 0x30c8 +/* 8036F634 84850004 */ lwzu r4, 4(r5) +/* 8036F638 28040000 */ cmplwi r4, 0 +/* 8036F63C 4082000C */ bne- lbl_8036f648 +/* 8036F640 93E330C8 */ stw r31, 0x30c8(r3) +/* 8036F644 48000008 */ b lbl_8036f64c +lbl_8036f648: +/* 8036F648 93E40004 */ stw r31, 4(r4) +lbl_8036f64c: +/* 8036F64C 909F0008 */ stw r4, 8(r31) +/* 8036F650 3BA00000 */ li r29, 0x0 +/* 8036F654 387E0000 */ addi r3, r30, 0x0 +/* 8036F658 93BF0004 */ stw r29, 4(r31) +/* 8036F65C 38800000 */ li r4, 0x0 +/* 8036F660 93E50000 */ stw r31, 0(r5) +/* 8036F664 80BF0020 */ lwz r5, 0x20(r31) +/* 8036F668 4BC9ECCD */ bl func_8000e334 +/* 8036F66C 801F0010 */ lwz r0, 0x10(r31) +/* 8036F670 38800000 */ li r4, 0x0 +/* 8036F674 7C00FA14 */ add r0, r0, r31 +/* 8036F678 901F0010 */ stw r0, 0x10(r31) +/* 8036F67C 801F0024 */ lwz r0, 0x24(r31) +/* 8036F680 7C00FA14 */ add r0, r0, r31 +/* 8036F684 901F0024 */ stw r0, 0x24(r31) +/* 8036F688 801F0028 */ lwz r0, 0x28(r31) +/* 8036F68C 7C00FA14 */ add r0, r0, r31 +/* 8036F690 901F0028 */ stw r0, 0x28(r31) +/* 8036F694 48000044 */ b lbl_8036f6d8 +lbl_8036f698: +/* 8036F698 801F0010 */ lwz r0, 0x10(r31) +/* 8036F69C 7C60EA14 */ add r3, r0, r29 +/* 8036F6A0 80030000 */ lwz r0, 0(r3) +/* 8036F6A4 28000000 */ cmplwi r0, 0 +/* 8036F6A8 41820010 */ beq- lbl_8036f6b8 +/* 8036F6AC 7C00FA14 */ add r0, r0, r31 +/* 8036F6B0 90030000 */ stw r0, 0(r3) +/* 8036F6B4 4800001C */ b lbl_8036f6d0 +lbl_8036f6b8: +/* 8036F6B8 80030004 */ lwz r0, 4(r3) +/* 8036F6BC 28000000 */ cmplwi r0, 0 +/* 8036F6C0 41820010 */ beq- lbl_8036f6d0 +/* 8036F6C4 93C30000 */ stw r30, 0(r3) +/* 8036F6C8 80030004 */ lwz r0, 4(r3) +/* 8036F6CC 7FDE0214 */ add r30, r30, r0 +lbl_8036f6d0: +/* 8036F6D0 3BBD0008 */ addi r29, r29, 0x8 +/* 8036F6D4 38840001 */ addi r4, r4, 0x1 +lbl_8036f6d8: +/* 8036F6D8 801F000C */ lwz r0, 0xc(r31) +/* 8036F6DC 7C040040 */ cmplw r4, r0 +/* 8036F6E0 4180FFB8 */ blt+ lbl_8036f698 +/* 8036F6E4 809F0028 */ lwz r4, 0x28(r31) +/* 8036F6E8 48000014 */ b lbl_8036f6fc +lbl_8036f6ec: +/* 8036F6EC 80040004 */ lwz r0, 4(r4) +/* 8036F6F0 7C00FA14 */ add r0, r0, r31 +/* 8036F6F4 90040004 */ stw r0, 4(r4) +/* 8036F6F8 38840008 */ addi r4, r4, 0x8 +lbl_8036f6fc: +/* 8036F6FC 807F0028 */ lwz r3, 0x28(r31) +/* 8036F700 801F002C */ lwz r0, 0x2c(r31) +/* 8036F704 7C030214 */ add r0, r3, r0 +/* 8036F708 7C040040 */ cmplw r4, r0 +/* 8036F70C 4180FFE0 */ blt+ lbl_8036f6ec +/* 8036F710 881F0030 */ lbz r0, 0x30(r31) +/* 8036F714 28000000 */ cmplwi r0, 0 +/* 8036F718 41820020 */ beq- lbl_8036f738 +/* 8036F71C 807F0010 */ lwz r3, 0x10(r31) +/* 8036F720 54001838 */ slwi r0, r0, 3 +/* 8036F724 809F0034 */ lwz r4, 0x34(r31) +/* 8036F728 7C03002E */ lwzx r0, r3, r0 +/* 8036F72C 5400003C */ rlwinm r0, r0, 0, 0, 0x1e +/* 8036F730 7C040214 */ add r0, r4, r0 +/* 8036F734 901F0034 */ stw r0, 0x34(r31) +lbl_8036f738: +/* 8036F738 881F0031 */ lbz r0, 0x31(r31) +/* 8036F73C 28000000 */ cmplwi r0, 0 +/* 8036F740 41820020 */ beq- lbl_8036f760 +/* 8036F744 807F0010 */ lwz r3, 0x10(r31) +/* 8036F748 54001838 */ slwi r0, r0, 3 +/* 8036F74C 809F0038 */ lwz r4, 0x38(r31) +/* 8036F750 7C03002E */ lwzx r0, r3, r0 +/* 8036F754 5400003C */ rlwinm r0, r0, 0, 0, 0x1e +/* 8036F758 7C040214 */ add r0, r4, r0 +/* 8036F75C 901F0038 */ stw r0, 0x38(r31) +lbl_8036f760: +/* 8036F760 881F0032 */ lbz r0, 0x32(r31) +/* 8036F764 28000000 */ cmplwi r0, 0 +/* 8036F768 41820020 */ beq- lbl_8036f788 +/* 8036F76C 807F0010 */ lwz r3, 0x10(r31) +/* 8036F770 54001838 */ slwi r0, r0, 3 +/* 8036F774 809F003C */ lwz r4, 0x3c(r31) +/* 8036F778 7C03002E */ lwzx r0, r3, r0 +/* 8036F77C 5400003C */ rlwinm r0, r0, 0, 0, 0x1e +/* 8036F780 7C040214 */ add r0, r4, r0 +/* 8036F784 901F003C */ stw r0, 0x3c(r31) +lbl_8036f788: +/* 8036F788 3C608000 */ lis r3, 0x8000 +/* 8036F78C 806330D0 */ lwz r3, 0x30d0(r3) +/* 8036F790 28030000 */ cmplwi r3, 0 +/* 8036F794 41820010 */ beq- lbl_8036f7a4 +/* 8036F798 801F0014 */ lwz r0, 0x14(r31) +/* 8036F79C 7C001A14 */ add r0, r0, r3 +/* 8036F7A0 901F0014 */ stw r0, 0x14(r31) +lbl_8036f7a4: +/* 8036F7A4 38600000 */ li r3, 0x0 +/* 8036F7A8 389F0000 */ addi r4, r31, 0x0 +/* 8036F7AC 4BFFFB9D */ bl func_8036f348 +/* 8036F7B0 3C608000 */ lis r3, 0x8000 +/* 8036F7B4 83A330C8 */ lwz r29, 0x30c8(r3) +/* 8036F7B8 48000028 */ b lbl_8036f7e0 +lbl_8036f7bc: +/* 8036F7BC 387F0000 */ addi r3, r31, 0x0 +/* 8036F7C0 389D0000 */ addi r4, r29, 0x0 +/* 8036F7C4 4BFFFB85 */ bl func_8036f348 +/* 8036F7C8 7C1DF840 */ cmplw r29, r31 +/* 8036F7CC 41820010 */ beq- lbl_8036f7dc +/* 8036F7D0 387D0000 */ addi r3, r29, 0x0 +/* 8036F7D4 389F0000 */ addi r4, r31, 0x0 +/* 8036F7D8 4BFFFB71 */ bl func_8036f348 +lbl_8036f7dc: +/* 8036F7DC 83BD0004 */ lwz r29, 4(r29) +lbl_8036f7e0: +/* 8036F7E0 281D0000 */ cmplwi r29, 0 +/* 8036F7E4 4082FFD8 */ bne+ lbl_8036f7bc +/* 8036F7E8 4BFFFB59 */ bl func_8036f340 +/* 8036F7EC 38600001 */ li r3, 0x1 +lbl_8036f7f0: +/* 8036F7F0 80010024 */ lwz r0, 0x24(r1) +/* 8036F7F4 83E1001C */ lwz r31, 0x1c(r1) +/* 8036F7F8 83C10018 */ lwz r30, 0x18(r1) +/* 8036F7FC 83A10014 */ lwz r29, 0x14(r1) +/* 8036F800 38210020 */ addi r1, r1, 0x20 +/* 8036F804 7C0803A6 */ mtlr r0 +/* 8036F808 4E800020 */ blr +.size func_8036f5bc, . - func_8036f5bc + + +.global func_8036f80c +.type func_8036f80c, @function +func_8036f80c: +/* 8036F80C 7C0802A6 */ mflr r0 +/* 8036F810 90010004 */ stw r0, 4(r1) +/* 8036F814 9421FFC8 */ stwu r1, -0x38(r1) +/* 8036F818 BF21001C */ stmw r25, 0x1c(r1) +/* 8036F81C 7C9C2378 */ mr r28, r4 +/* 8036F820 80830000 */ lwz r4, 0(r3) +/* 8036F824 807C0028 */ lwz r3, 0x28(r28) +/* 8036F828 801C002C */ lwz r0, 0x2c(r28) +/* 8036F82C 38A30000 */ addi r5, r3, 0x0 +/* 8036F830 7C630214 */ add r3, r3, r0 +/* 8036F834 38030007 */ addi r0, r3, 0x7 +/* 8036F838 7C050050 */ subf r0, r5, r0 +/* 8036F83C 5400E8FE */ srwi r0, r0, 3 +/* 8036F840 7C051840 */ cmplw r5, r3 +/* 8036F844 7C0903A6 */ mtctr r0 +/* 8036F848 40800018 */ bge- lbl_8036f860 +lbl_8036f84c: +/* 8036F84C 80050000 */ lwz r0, 0(r5) +/* 8036F850 7C002040 */ cmplw r0, r4 +/* 8036F854 41820014 */ beq- lbl_8036f868 +/* 8036F858 38A50008 */ addi r5, r5, 0x8 +/* 8036F85C 4200FFF0 */ bdnz lbl_8036f84c +lbl_8036f860: +/* 8036F860 38600000 */ li r3, 0x0 +/* 8036F864 480001A0 */ b lbl_8036fa04 +lbl_8036f868: +/* 8036F868 3C60804F */ lis r3, lbl_804ef570@ha +/* 8036F86C 83E50004 */ lwz r31, 4(r5) +/* 8036F870 3B63F570 */ addi r27, r3, lbl_804ef570@l +/* 8036F874 3BC00000 */ li r30, 0x0 +/* 8036F878 48000154 */ b lbl_8036f9cc +lbl_8036f87c: +/* 8036F87C A01F0000 */ lhz r0, 0(r31) +/* 8036F880 2C040006 */ cmpwi r4, 0x6 +/* 8036F884 38600000 */ li r3, 0x0 +/* 8036F888 7FBD0214 */ add r29, r29, r0 +/* 8036F88C 41820098 */ beq- lbl_8036f924 +/* 8036F890 40800030 */ bge- lbl_8036f8c0 +/* 8036F894 2C040002 */ cmpwi r4, 0x2 +/* 8036F898 41820058 */ beq- lbl_8036f8f0 +/* 8036F89C 40800014 */ bge- lbl_8036f8b0 +/* 8036F8A0 2C040000 */ cmpwi r4, 0x0 +/* 8036F8A4 41820124 */ beq- lbl_8036f9c8 +/* 8036F8A8 4080003C */ bge- lbl_8036f8e4 +/* 8036F8AC 48000110 */ b lbl_8036f9bc +lbl_8036f8b0: +/* 8036F8B0 2C040004 */ cmpwi r4, 0x4 +/* 8036F8B4 41820058 */ beq- lbl_8036f90c +/* 8036F8B8 40800060 */ bge- lbl_8036f918 +/* 8036F8BC 48000044 */ b lbl_8036f900 +lbl_8036f8c0: +/* 8036F8C0 2C0400C9 */ cmpwi r4, 0xc9 +/* 8036F8C4 41820104 */ beq- lbl_8036f9c8 +/* 8036F8C8 40800010 */ bge- lbl_8036f8d8 +/* 8036F8CC 2C04000A */ cmpwi r4, 0xa +/* 8036F8D0 41820060 */ beq- lbl_8036f930 +/* 8036F8D4 480000E8 */ b lbl_8036f9bc +lbl_8036f8d8: +/* 8036F8D8 2C0400CB */ cmpwi r4, 0xcb +/* 8036F8DC 408000E0 */ bge- lbl_8036f9bc +/* 8036F8E0 48000078 */ b lbl_8036f958 +lbl_8036f8e4: +/* 8036F8E4 38000000 */ li r0, 0x0 +/* 8036F8E8 901D0000 */ stw r0, 0(r29) +/* 8036F8EC 480000DC */ b lbl_8036f9c8 +lbl_8036f8f0: +/* 8036F8F0 801D0000 */ lwz r0, 0(r29) +/* 8036F8F4 5400078A */ rlwinm r0, r0, 0, 0x1e, 5 +/* 8036F8F8 901D0000 */ stw r0, 0(r29) +/* 8036F8FC 480000CC */ b lbl_8036f9c8 +lbl_8036f900: +/* 8036F900 38000000 */ li r0, 0x0 +/* 8036F904 B01D0000 */ sth r0, 0(r29) +/* 8036F908 480000C0 */ b lbl_8036f9c8 +lbl_8036f90c: +/* 8036F90C 38000000 */ li r0, 0x0 +/* 8036F910 B01D0000 */ sth r0, 0(r29) +/* 8036F914 480000B4 */ b lbl_8036f9c8 +lbl_8036f918: +/* 8036F918 38000000 */ li r0, 0x0 +/* 8036F91C B01D0000 */ sth r0, 0(r29) +/* 8036F920 480000A8 */ b lbl_8036f9c8 +lbl_8036f924: +/* 8036F924 38000000 */ li r0, 0x0 +/* 8036F928 B01D0000 */ sth r0, 0(r29) +/* 8036F92C 4800009C */ b lbl_8036f9c8 +lbl_8036f930: +/* 8036F930 881C0032 */ lbz r0, 0x32(r28) +/* 8036F934 28000000 */ cmplwi r0, 0 +/* 8036F938 4182000C */ beq- lbl_8036f944 +/* 8036F93C 801C003C */ lwz r0, 0x3c(r28) +/* 8036F940 7C7D0050 */ subf r3, r29, r0 +lbl_8036f944: +/* 8036F944 801D0000 */ lwz r0, 0(r29) +/* 8036F948 5400078A */ rlwinm r0, r0, 0, 0x1e, 5 +/* 8036F94C 506001BA */ rlwimi r0, r3, 0, 6, 0x1d +/* 8036F950 901D0000 */ stw r0, 0(r29) +/* 8036F954 48000074 */ b lbl_8036f9c8 +lbl_8036f958: +/* 8036F958 881F0003 */ lbz r0, 3(r31) +/* 8036F95C 281E0000 */ cmplwi r30, 0 +/* 8036F960 807C0010 */ lwz r3, 0x10(r28) +/* 8036F964 54001838 */ slwi r0, r0, 3 +/* 8036F968 7C630214 */ add r3, r3, r0 +/* 8036F96C 80030000 */ lwz r0, 0(r3) +/* 8036F970 3B430000 */ addi r26, r3, 0x0 +/* 8036F974 541D003C */ rlwinm r29, r0, 0, 0, 0x1e +/* 8036F978 41820024 */ beq- lbl_8036f99c +/* 8036F97C 801E0000 */ lwz r0, 0(r30) +/* 8036F980 809E0004 */ lwz r4, 4(r30) +/* 8036F984 5419003C */ rlwinm r25, r0, 0, 0, 0x1e +/* 8036F988 38790000 */ addi r3, r25, 0x0 +/* 8036F98C 4BFFDF85 */ bl func_8036d910 +/* 8036F990 7F23CB78 */ mr r3, r25 +/* 8036F994 809E0004 */ lwz r4, 4(r30) +/* 8036F998 4BFFE041 */ bl func_8036d9d8 +lbl_8036f99c: +/* 8036F99C 801A0000 */ lwz r0, 0(r26) +/* 8036F9A0 540007FF */ clrlwi. r0, r0, 0x1f +/* 8036F9A4 4182000C */ beq- lbl_8036f9b0 +/* 8036F9A8 7F40D378 */ mr r0, r26 +/* 8036F9AC 48000008 */ b lbl_8036f9b4 +lbl_8036f9b0: +/* 8036F9B0 38000000 */ li r0, 0x0 +lbl_8036f9b4: +/* 8036F9B4 7C1E0378 */ mr r30, r0 +/* 8036F9B8 48000010 */ b lbl_8036f9c8 +lbl_8036f9bc: +/* 8036F9BC 387B0000 */ addi r3, r27, 0x0 +/* 8036F9C0 4CC63182 */ crclr 6 +/* 8036F9C4 4BFFECF1 */ bl func_8036e6b4 +lbl_8036f9c8: +/* 8036F9C8 3BFF0008 */ addi r31, r31, 0x8 +lbl_8036f9cc: +/* 8036F9CC 889F0002 */ lbz r4, 2(r31) +/* 8036F9D0 280400CB */ cmplwi r4, 0xcb +/* 8036F9D4 4082FEA8 */ bne+ lbl_8036f87c +/* 8036F9D8 281E0000 */ cmplwi r30, 0 +/* 8036F9DC 41820024 */ beq- lbl_8036fa00 +/* 8036F9E0 801E0000 */ lwz r0, 0(r30) +/* 8036F9E4 809E0004 */ lwz r4, 4(r30) +/* 8036F9E8 541B003C */ rlwinm r27, r0, 0, 0, 0x1e +/* 8036F9EC 387B0000 */ addi r3, r27, 0x0 +/* 8036F9F0 4BFFDF21 */ bl func_8036d910 +/* 8036F9F4 7F63DB78 */ mr r3, r27 +/* 8036F9F8 809E0004 */ lwz r4, 4(r30) +/* 8036F9FC 4BFFDFDD */ bl func_8036d9d8 +lbl_8036fa00: +/* 8036FA00 38600001 */ li r3, 0x1 +lbl_8036fa04: +/* 8036FA04 BB21001C */ lmw r25, 0x1c(r1) +/* 8036FA08 8001003C */ lwz r0, 0x3c(r1) +/* 8036FA0C 38210038 */ addi r1, r1, 0x38 +/* 8036FA10 7C0803A6 */ mtlr r0 +/* 8036FA14 4E800020 */ blr +.size func_8036f80c, . - func_8036f80c + + +.global func_8036fa18 +.type func_8036fa18, @function +func_8036fa18: +/* 8036FA18 7C0802A6 */ mflr r0 +/* 8036FA1C 90010004 */ stw r0, 4(r1) +/* 8036FA20 9421FFE8 */ stwu r1, -0x18(r1) +/* 8036FA24 93E10014 */ stw r31, 0x14(r1) +/* 8036FA28 7C7F1B78 */ mr r31, r3 +/* 8036FA2C 93C10010 */ stw r30, 0x10(r1) +/* 8036FA30 80830004 */ lwz r4, 4(r3) +/* 8036FA34 80A30008 */ lwz r5, 8(r3) +/* 8036FA38 28040000 */ cmplwi r4, 0 +/* 8036FA3C 40820010 */ bne- lbl_8036fa4c +/* 8036FA40 3C608000 */ lis r3, 0x8000 +/* 8036FA44 90A330CC */ stw r5, 0x30cc(r3) +/* 8036FA48 48000008 */ b lbl_8036fa50 +lbl_8036fa4c: +/* 8036FA4C 90A40008 */ stw r5, 8(r4) +lbl_8036fa50: +/* 8036FA50 28050000 */ cmplwi r5, 0 +/* 8036FA54 40820010 */ bne- lbl_8036fa64 +/* 8036FA58 3C608000 */ lis r3, 0x8000 +/* 8036FA5C 908330C8 */ stw r4, 0x30c8(r3) +/* 8036FA60 48000008 */ b lbl_8036fa68 +lbl_8036fa64: +/* 8036FA64 90850004 */ stw r4, 4(r5) +lbl_8036fa68: +/* 8036FA68 3C608000 */ lis r3, 0x8000 +/* 8036FA6C 83C330C8 */ lwz r30, 0x30c8(r3) +/* 8036FA70 48000014 */ b lbl_8036fa84 +lbl_8036fa74: +/* 8036FA74 387F0000 */ addi r3, r31, 0x0 +/* 8036FA78 389E0000 */ addi r4, r30, 0x0 +/* 8036FA7C 4BFFFD91 */ bl func_8036f80c +/* 8036FA80 83DE0004 */ lwz r30, 4(r30) +lbl_8036fa84: +/* 8036FA84 281E0000 */ cmplwi r30, 0 +/* 8036FA88 4082FFEC */ bne+ lbl_8036fa74 +/* 8036FA8C 4BFFF8B9 */ bl func_8036f344 +/* 8036FA90 8001001C */ lwz r0, 0x1c(r1) +/* 8036FA94 38600001 */ li r3, 0x1 +/* 8036FA98 83E10014 */ lwz r31, 0x14(r1) +/* 8036FA9C 83C10010 */ lwz r30, 0x10(r1) +/* 8036FAA0 38210018 */ addi r1, r1, 0x18 +/* 8036FAA4 7C0803A6 */ mtlr r0 +/* 8036FAA8 4E800020 */ blr +.size func_8036fa18, . - func_8036fa18 + + +.global func_8036faac +.type func_8036faac, @function +func_8036faac: +/* 8036FAAC 3C808000 */ lis r4, 0x8000 +/* 8036FAB0 38000000 */ li r0, 0x0 +/* 8036FAB4 900430CC */ stw r0, 0x30cc(r4) +/* 8036FAB8 900430C8 */ stw r0, 0x30c8(r4) +/* 8036FABC 900430D0 */ stw r0, 0x30d0(r4) +/* 8036FAC0 4E800020 */ blr +.size func_8036faac, . - func_8036faac + diff --git a/asm/Dolphin/os/OSMemory-data.s b/asm/Dolphin/os/OSMemory-data.s new file mode 100644 index 0000000..1b4ff0c --- /dev/null +++ b/asm/Dolphin/os/OSMemory-data.s @@ -0,0 +1,15 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804ef598 +.type lbl_804ef598, @object +lbl_804ef598: +/* 804EF598 8036FCC8 */ .4byte func_8036fcc8 +/* 804EF59C 0000007F */ .4byte 0x0000007f +/* 804EF5A0 00000000 */ .4byte 0x00000000 +/* 804EF5A4 00000000 */ .4byte 0x00000000 +.size lbl_804ef598, . - lbl_804ef598 + diff --git a/asm/Dolphin/os/OSMemory.s b/asm/Dolphin/os/OSMemory.s new file mode 100644 index 0000000..d7c9a45 --- /dev/null +++ b/asm/Dolphin/os/OSMemory.s @@ -0,0 +1,229 @@ +.include "macros.inc" + +.section .text + +.global func_8036fcc8 +.type func_8036fcc8, @function +func_8036fcc8: +/* 8036FCC8 7C0802A6 */ mflr r0 +/* 8036FCCC 2C030000 */ cmpwi r3, 0x0 +/* 8036FCD0 90010004 */ stw r0, 4(r1) +/* 8036FCD4 9421FFF8 */ stwu r1, -8(r1) +/* 8036FCD8 41820018 */ beq- lbl_8036fcf0 +/* 8036FCDC 3C60CC00 */ lis r3, 0xcc00 +/* 8036FCE0 380000FF */ li r0, 0xff +/* 8036FCE4 B0034010 */ sth r0, 0x4010(r3) +/* 8036FCE8 3C60F000 */ lis r3, 0xf000 +/* 8036FCEC 4BFFF1B1 */ bl func_8036ee9c +lbl_8036fcf0: +/* 8036FCF0 38600001 */ li r3, 0x1 +/* 8036FCF4 8001000C */ lwz r0, 0xc(r1) +/* 8036FCF8 38210008 */ addi r1, r1, 0x8 +/* 8036FCFC 7C0803A6 */ mtlr r0 +/* 8036FD00 4E800020 */ blr +.size func_8036fcc8, . - func_8036fcc8 + + +.global func_8036fd04 +.type func_8036fd04, @function +func_8036fd04: +/* 8036FD04 7C0802A6 */ mflr r0 +/* 8036FD08 3C60CC00 */ lis r3, 0xcc00 +/* 8036FD0C 90010004 */ stw r0, 4(r1) +/* 8036FD10 39034000 */ addi r8, r3, 0x4000 +/* 8036FD14 38000000 */ li r0, 0x0 +/* 8036FD18 9421FFF8 */ stwu r1, -8(r1) +/* 8036FD1C A0E34024 */ lhz r7, 0x4024(r3) +/* 8036FD20 3C608054 */ lis r3, lbl_8053ec30@ha +/* 8036FD24 A0C80022 */ lhz r6, 0x22(r8) +/* 8036FD28 3863EC30 */ addi r3, r3, lbl_8053ec30@l +/* 8036FD2C A0A8001E */ lhz r5, 0x1e(r8) +/* 8036FD30 50E6819E */ rlwimi r6, r7, 0x10, 6, 0xf +/* 8036FD34 B0080020 */ sth r0, 0x20(r8) +/* 8036FD38 8183003C */ lwz r12, 0x3c(r3) +/* 8036FD3C 280C0000 */ cmplwi r12, 0 +/* 8036FD40 41820018 */ beq- lbl_8036fd58 +/* 8036FD44 7D8803A6 */ mtlr r12 +/* 8036FD48 3860000F */ li r3, 0xf +/* 8036FD4C 4CC63182 */ crclr 6 +/* 8036FD50 4E800021 */ blrl +/* 8036FD54 4800000C */ b lbl_8036fd60 +lbl_8036fd58: +/* 8036FD58 3860000F */ li r3, 0xf +/* 8036FD5C 4BFFEB21 */ bl func_8036e87c +lbl_8036fd60: +/* 8036FD60 8001000C */ lwz r0, 0xc(r1) +/* 8036FD64 38210008 */ addi r1, r1, 0x8 +/* 8036FD68 7C0803A6 */ mtlr r0 +/* 8036FD6C 4E800020 */ blr +.size func_8036fd04, . - func_8036fd04 + + +.global func_8036fd70 +.type func_8036fd70, @function +func_8036fd70: +/* 8036FD70 38E00000 */ li r7, 0x0 +/* 8036FD74 3C800000 */ lis r4, 0 +/* 8036FD78 38840002 */ addi r4, r4, 0x2 +/* 8036FD7C 3C608000 */ lis r3, 0x8000 +/* 8036FD80 386301FF */ addi r3, r3, 0x1ff +/* 8036FD84 3CC00100 */ lis r6, 0x100 +/* 8036FD88 38C60002 */ addi r6, r6, 0x2 +/* 8036FD8C 3CA08100 */ lis r5, 0x8100 +/* 8036FD90 38A500FF */ addi r5, r5, 0xff +/* 8036FD94 4C00012C */ isync +/* 8036FD98 7CF883A6 */ mtdbatu 0, r7 +/* 8036FD9C 7C9983A6 */ mtdbatl 0, r4 +/* 8036FDA0 7C7883A6 */ mtdbatu 0, r3 +/* 8036FDA4 4C00012C */ isync +/* 8036FDA8 7CF083A6 */ mtibatu 0, r7 +/* 8036FDAC 7C9183A6 */ mtibatl 0, r4 +/* 8036FDB0 7C7083A6 */ mtibatu 0, r3 +/* 8036FDB4 4C00012C */ isync +/* 8036FDB8 7CFC83A6 */ mtdbatu 2, r7 +/* 8036FDBC 7CDD83A6 */ mtdbatl 2, r6 +/* 8036FDC0 7CBC83A6 */ mtdbatu 2, r5 +/* 8036FDC4 4C00012C */ isync +/* 8036FDC8 7CF483A6 */ mtibatu 2, r7 +/* 8036FDCC 7CD583A6 */ mtibatl 2, r6 +/* 8036FDD0 7CB483A6 */ mtibatu 2, r5 +/* 8036FDD4 4C00012C */ isync +/* 8036FDD8 7C6000A6 */ mfmsr r3 +/* 8036FDDC 60630030 */ ori r3, r3, 0x30 +/* 8036FDE0 7C7B03A6 */ mtspr 0x1b, r3 +/* 8036FDE4 7C6802A6 */ mflr r3 +/* 8036FDE8 7C7A03A6 */ mtspr 0x1a, r3 +/* 8036FDEC 4C000064 */ rfi +.size func_8036fd70, . - func_8036fd70 + + +.global func_8036fdf0 +.type func_8036fdf0, @function +func_8036fdf0: +/* 8036FDF0 38E00000 */ li r7, 0x0 +/* 8036FDF4 3C800000 */ lis r4, 0 +/* 8036FDF8 38840002 */ addi r4, r4, 0x2 +/* 8036FDFC 3C608000 */ lis r3, 0x8000 +/* 8036FE00 386303FF */ addi r3, r3, 0x3ff +/* 8036FE04 3CC00200 */ lis r6, 0x200 +/* 8036FE08 38C60002 */ addi r6, r6, 0x2 +/* 8036FE0C 3CA08200 */ lis r5, 0x8200 +/* 8036FE10 38A501FF */ addi r5, r5, 0x1ff +/* 8036FE14 4C00012C */ isync +/* 8036FE18 7CF883A6 */ mtdbatu 0, r7 +/* 8036FE1C 7C9983A6 */ mtdbatl 0, r4 +/* 8036FE20 7C7883A6 */ mtdbatu 0, r3 +/* 8036FE24 4C00012C */ isync +/* 8036FE28 7CF083A6 */ mtibatu 0, r7 +/* 8036FE2C 7C9183A6 */ mtibatl 0, r4 +/* 8036FE30 7C7083A6 */ mtibatu 0, r3 +/* 8036FE34 4C00012C */ isync +/* 8036FE38 7CFC83A6 */ mtdbatu 2, r7 +/* 8036FE3C 7CDD83A6 */ mtdbatl 2, r6 +/* 8036FE40 7CBC83A6 */ mtdbatu 2, r5 +/* 8036FE44 4C00012C */ isync +/* 8036FE48 7CF483A6 */ mtibatu 2, r7 +/* 8036FE4C 7CD583A6 */ mtibatl 2, r6 +/* 8036FE50 7CB483A6 */ mtibatu 2, r5 +/* 8036FE54 4C00012C */ isync +/* 8036FE58 7C6000A6 */ mfmsr r3 +/* 8036FE5C 60630030 */ ori r3, r3, 0x30 +/* 8036FE60 7C7B03A6 */ mtspr 0x1b, r3 +/* 8036FE64 7C6802A6 */ mflr r3 +/* 8036FE68 7C7A03A6 */ mtspr 0x1a, r3 +/* 8036FE6C 4C000064 */ rfi +.size func_8036fdf0, . - func_8036fdf0 + + +.global func_8036fe70 +.type func_8036fe70, @function +func_8036fe70: +/* 8036FE70 546300BE */ clrlwi r3, r3, 2 +/* 8036FE74 7C7A03A6 */ mtspr 0x1a, r3 +/* 8036FE78 7C6000A6 */ mfmsr r3 +/* 8036FE7C 54630732 */ rlwinm r3, r3, 0, 0x1c, 0x19 +/* 8036FE80 7C7B03A6 */ mtspr 0x1b, r3 +/* 8036FE84 4C000064 */ rfi +.size func_8036fe70, . - func_8036fe70 + + +.global func_8036fe88 +.type func_8036fe88, @function +func_8036fe88: +/* 8036FE88 7C0802A6 */ mflr r0 +/* 8036FE8C 90010004 */ stw r0, 4(r1) +/* 8036FE90 9421FFB8 */ stwu r1, -0x48(r1) +/* 8036FE94 93E10044 */ stw r31, 0x44(r1) +/* 8036FE98 93C10040 */ stw r30, 0x40(r1) +/* 8036FE9C 93A1003C */ stw r29, 0x3c(r1) +/* 8036FEA0 3C608000 */ lis r3, 0x8000 +/* 8036FEA4 83A300F0 */ lwz r29, 0xf0(r3) +/* 8036FEA8 4BFFEC2D */ bl func_8036ead4 +/* 8036FEAC 3C000180 */ lis r0, 0x180 +/* 8036FEB0 7C1D0040 */ cmplw r29, r0 +/* 8036FEB4 7C7F1B78 */ mr r31, r3 +/* 8036FEB8 41810014 */ bgt- lbl_8036fecc +/* 8036FEBC 3C608037 */ lis r3, func_8036fd70@ha +/* 8036FEC0 3863FD70 */ addi r3, r3, func_8036fd70@l +/* 8036FEC4 4BFFFFAD */ bl func_8036fe70 +/* 8036FEC8 4800001C */ b lbl_8036fee4 +lbl_8036fecc: +/* 8036FECC 3C000300 */ lis r0, 0x300 +/* 8036FED0 7C1D0040 */ cmplw r29, r0 +/* 8036FED4 41810010 */ bgt- lbl_8036fee4 +/* 8036FED8 3C608037 */ lis r3, func_8036fdf0@ha +/* 8036FEDC 3863FDF0 */ addi r3, r3, func_8036fdf0@l +/* 8036FEE0 4BFFFF91 */ bl func_8036fe70 +lbl_8036fee4: +/* 8036FEE4 3C60CC00 */ lis r3, 0xcc00 +/* 8036FEE8 3BA34000 */ addi r29, r3, 0x4000 +/* 8036FEEC 38000000 */ li r0, 0x0 +/* 8036FEF0 B01D0020 */ sth r0, 0x20(r29) +/* 8036FEF4 380000FF */ li r0, 0xff +/* 8036FEF8 3C60F000 */ lis r3, 0xf000 +/* 8036FEFC B01D0010 */ sth r0, 0x10(r29) +/* 8036FF00 4BFFEF9D */ bl func_8036ee9c +/* 8036FF04 3C608037 */ lis r3, func_8036fd04@ha +/* 8036FF08 3BC3FD04 */ addi r30, r3, func_8036fd04@l +/* 8036FF0C 7FC4F378 */ mr r4, r30 +/* 8036FF10 38600000 */ li r3, 0x0 +/* 8036FF14 4BFFEC0D */ bl func_8036eb20 +/* 8036FF18 7FC4F378 */ mr r4, r30 +/* 8036FF1C 38600001 */ li r3, 0x1 +/* 8036FF20 4BFFEC01 */ bl func_8036eb20 +/* 8036FF24 7FC4F378 */ mr r4, r30 +/* 8036FF28 38600002 */ li r3, 0x2 +/* 8036FF2C 4BFFEBF5 */ bl func_8036eb20 +/* 8036FF30 7FC4F378 */ mr r4, r30 +/* 8036FF34 38600003 */ li r3, 0x3 +/* 8036FF38 4BFFEBE9 */ bl func_8036eb20 +/* 8036FF3C 7FC4F378 */ mr r4, r30 +/* 8036FF40 38600004 */ li r3, 0x4 +/* 8036FF44 4BFFEBDD */ bl func_8036eb20 +/* 8036FF48 3C60804F */ lis r3, lbl_804ef598@ha +/* 8036FF4C 3863F598 */ addi r3, r3, lbl_804ef598@l +/* 8036FF50 480004B1 */ bl func_80370400 +/* 8036FF54 3C608000 */ lis r3, 0x8000 +/* 8036FF58 808300F0 */ lwz r4, 0xf0(r3) +/* 8036FF5C 80030028 */ lwz r0, 0x28(r3) +/* 8036FF60 7C040040 */ cmplw r4, r0 +/* 8036FF64 40800018 */ bge- lbl_8036ff7c +/* 8036FF68 3C04FE80 */ addis r0, r4, 0xfe80 +/* 8036FF6C 28000000 */ cmplwi r0, 0 +/* 8036FF70 4082000C */ bne- lbl_8036ff7c +/* 8036FF74 38000002 */ li r0, 0x2 +/* 8036FF78 B01D0028 */ sth r0, 0x28(r29) +lbl_8036ff7c: +/* 8036FF7C 3C600800 */ lis r3, 0x800 +/* 8036FF80 4BFFEFA5 */ bl func_8036ef24 +/* 8036FF84 7FE3FB78 */ mr r3, r31 +/* 8036FF88 4BFFEB75 */ bl func_8036eafc +/* 8036FF8C 8001004C */ lwz r0, 0x4c(r1) +/* 8036FF90 83E10044 */ lwz r31, 0x44(r1) +/* 8036FF94 83C10040 */ lwz r30, 0x40(r1) +/* 8036FF98 83A1003C */ lwz r29, 0x3c(r1) +/* 8036FF9C 38210048 */ addi r1, r1, 0x48 +/* 8036FFA0 7C0803A6 */ mtlr r0 +/* 8036FFA4 4E800020 */ blr +.size func_8036fe88, . - func_8036fe88 + diff --git a/asm/Dolphin/os/OSMessages.s b/asm/Dolphin/os/OSMessages.s new file mode 100644 index 0000000..1e7d350 --- /dev/null +++ b/asm/Dolphin/os/OSMessages.s @@ -0,0 +1,159 @@ +.include "macros.inc" + +.section .text + +.global func_8036fac4 +.type func_8036fac4, @function +func_8036fac4: +/* 8036FAC4 7C0802A6 */ mflr r0 +/* 8036FAC8 90010004 */ stw r0, 4(r1) +/* 8036FACC 9421FFD8 */ stwu r1, -0x28(r1) +/* 8036FAD0 93E10024 */ stw r31, 0x24(r1) +/* 8036FAD4 3BE50000 */ addi r31, r5, 0x0 +/* 8036FAD8 93C10020 */ stw r30, 0x20(r1) +/* 8036FADC 3BC40000 */ addi r30, r4, 0x0 +/* 8036FAE0 93A1001C */ stw r29, 0x1c(r1) +/* 8036FAE4 3BA30000 */ addi r29, r3, 0x0 +/* 8036FAE8 48001C61 */ bl func_80371748 +/* 8036FAEC 387D0008 */ addi r3, r29, 0x8 +/* 8036FAF0 48001C59 */ bl func_80371748 +/* 8036FAF4 93DD0010 */ stw r30, 0x10(r29) +/* 8036FAF8 38000000 */ li r0, 0x0 +/* 8036FAFC 93FD0014 */ stw r31, 0x14(r29) +/* 8036FB00 901D0018 */ stw r0, 0x18(r29) +/* 8036FB04 901D001C */ stw r0, 0x1c(r29) +/* 8036FB08 8001002C */ lwz r0, 0x2c(r1) +/* 8036FB0C 83E10024 */ lwz r31, 0x24(r1) +/* 8036FB10 83C10020 */ lwz r30, 0x20(r1) +/* 8036FB14 83A1001C */ lwz r29, 0x1c(r1) +/* 8036FB18 38210028 */ addi r1, r1, 0x28 +/* 8036FB1C 7C0803A6 */ mtlr r0 +/* 8036FB20 4E800020 */ blr +.size func_8036fac4, . - func_8036fac4 + + +.global func_8036fb24 +.type func_8036fb24, @function +func_8036fb24: +/* 8036FB24 7C0802A6 */ mflr r0 +/* 8036FB28 90010004 */ stw r0, 4(r1) +/* 8036FB2C 9421FFD8 */ stwu r1, -0x28(r1) +/* 8036FB30 93E10024 */ stw r31, 0x24(r1) +/* 8036FB34 3BE50000 */ addi r31, r5, 0x0 +/* 8036FB38 93C10020 */ stw r30, 0x20(r1) +/* 8036FB3C 93A1001C */ stw r29, 0x1c(r1) +/* 8036FB40 3BA40000 */ addi r29, r4, 0x0 +/* 8036FB44 93810018 */ stw r28, 0x18(r1) +/* 8036FB48 3B830000 */ addi r28, r3, 0x0 +/* 8036FB4C 4BFFEF89 */ bl func_8036ead4 +/* 8036FB50 3BC30000 */ addi r30, r3, 0x0 +/* 8036FB54 57FF07FE */ clrlwi r31, r31, 0x1f +/* 8036FB58 48000024 */ b lbl_8036fb7c +lbl_8036fb5c: +/* 8036FB5C 2C1F0000 */ cmpwi r31, 0x0 +/* 8036FB60 40820014 */ bne- lbl_8036fb74 +/* 8036FB64 7FC3F378 */ mr r3, r30 +/* 8036FB68 4BFFEF95 */ bl func_8036eafc +/* 8036FB6C 38600000 */ li r3, 0x0 +/* 8036FB70 4800005C */ b lbl_8036fbcc +lbl_8036fb74: +/* 8036FB74 7F83E378 */ mr r3, r28 +/* 8036FB78 48002995 */ bl func_8037250c +lbl_8036fb7c: +/* 8036FB7C 80DC0014 */ lwz r6, 0x14(r28) +/* 8036FB80 809C001C */ lwz r4, 0x1c(r28) +/* 8036FB84 7C062000 */ cmpw r6, r4 +/* 8036FB88 4081FFD4 */ ble+ lbl_8036fb5c +/* 8036FB8C 801C0018 */ lwz r0, 0x18(r28) +/* 8036FB90 387C0008 */ addi r3, r28, 0x8 +/* 8036FB94 80BC0010 */ lwz r5, 0x10(r28) +/* 8036FB98 7C802214 */ add r4, r0, r4 +/* 8036FB9C 7C0433D6 */ divw r0, r4, r6 +/* 8036FBA0 7C0031D6 */ mullw r0, r0, r6 +/* 8036FBA4 7C002050 */ subf r0, r0, r4 +/* 8036FBA8 5400103A */ slwi r0, r0, 2 +/* 8036FBAC 7FA5012E */ stwx r29, r5, r0 +/* 8036FBB0 809C001C */ lwz r4, 0x1c(r28) +/* 8036FBB4 38040001 */ addi r0, r4, 0x1 +/* 8036FBB8 901C001C */ stw r0, 0x1c(r28) +/* 8036FBBC 48002A3D */ bl func_803725f8 +/* 8036FBC0 7FC3F378 */ mr r3, r30 +/* 8036FBC4 4BFFEF39 */ bl func_8036eafc +/* 8036FBC8 38600001 */ li r3, 0x1 +lbl_8036fbcc: +/* 8036FBCC 8001002C */ lwz r0, 0x2c(r1) +/* 8036FBD0 83E10024 */ lwz r31, 0x24(r1) +/* 8036FBD4 83C10020 */ lwz r30, 0x20(r1) +/* 8036FBD8 83A1001C */ lwz r29, 0x1c(r1) +/* 8036FBDC 83810018 */ lwz r28, 0x18(r1) +/* 8036FBE0 38210028 */ addi r1, r1, 0x28 +/* 8036FBE4 7C0803A6 */ mtlr r0 +/* 8036FBE8 4E800020 */ blr +.size func_8036fb24, . - func_8036fb24 + + +.global func_8036fbec +.type func_8036fbec, @function +func_8036fbec: +/* 8036FBEC 7C0802A6 */ mflr r0 +/* 8036FBF0 90010004 */ stw r0, 4(r1) +/* 8036FBF4 9421FFD8 */ stwu r1, -0x28(r1) +/* 8036FBF8 93E10024 */ stw r31, 0x24(r1) +/* 8036FBFC 3BE30000 */ addi r31, r3, 0x0 +/* 8036FC00 93C10020 */ stw r30, 0x20(r1) +/* 8036FC04 3BC50000 */ addi r30, r5, 0x0 +/* 8036FC08 93A1001C */ stw r29, 0x1c(r1) +/* 8036FC0C 93810018 */ stw r28, 0x18(r1) +/* 8036FC10 3B840000 */ addi r28, r4, 0x0 +/* 8036FC14 4BFFEEC1 */ bl func_8036ead4 +/* 8036FC18 3BA30000 */ addi r29, r3, 0x0 +/* 8036FC1C 57DE07FE */ clrlwi r30, r30, 0x1f +/* 8036FC20 48000024 */ b lbl_8036fc44 +lbl_8036fc24: +/* 8036FC24 2C1E0000 */ cmpwi r30, 0x0 +/* 8036FC28 40820014 */ bne- lbl_8036fc3c +/* 8036FC2C 7FA3EB78 */ mr r3, r29 +/* 8036FC30 4BFFEECD */ bl func_8036eafc +/* 8036FC34 38600000 */ li r3, 0x0 +/* 8036FC38 48000070 */ b lbl_8036fca8 +lbl_8036fc3c: +/* 8036FC3C 387F0008 */ addi r3, r31, 0x8 +/* 8036FC40 480028CD */ bl func_8037250c +lbl_8036fc44: +/* 8036FC44 801F001C */ lwz r0, 0x1c(r31) +/* 8036FC48 2C000000 */ cmpwi r0, 0x0 +/* 8036FC4C 4182FFD8 */ beq+ lbl_8036fc24 +/* 8036FC50 281C0000 */ cmplwi r28, 0 +/* 8036FC54 41820018 */ beq- lbl_8036fc6c +/* 8036FC58 801F0018 */ lwz r0, 0x18(r31) +/* 8036FC5C 807F0010 */ lwz r3, 0x10(r31) +/* 8036FC60 5400103A */ slwi r0, r0, 2 +/* 8036FC64 7C03002E */ lwzx r0, r3, r0 +/* 8036FC68 901C0000 */ stw r0, 0(r28) +lbl_8036fc6c: +/* 8036FC6C 80BF0018 */ lwz r5, 0x18(r31) +/* 8036FC70 7FE3FB78 */ mr r3, r31 +/* 8036FC74 809F0014 */ lwz r4, 0x14(r31) +/* 8036FC78 38A50001 */ addi r5, r5, 0x1 +/* 8036FC7C 7C0523D6 */ divw r0, r5, r4 +/* 8036FC80 7C0021D6 */ mullw r0, r0, r4 +/* 8036FC84 7C002850 */ subf r0, r0, r5 +/* 8036FC88 901F0018 */ stw r0, 0x18(r31) +/* 8036FC8C 809F001C */ lwz r4, 0x1c(r31) +/* 8036FC90 3804FFFF */ addi r0, r4, -0x1 +/* 8036FC94 901F001C */ stw r0, 0x1c(r31) +/* 8036FC98 48002961 */ bl func_803725f8 +/* 8036FC9C 7FA3EB78 */ mr r3, r29 +/* 8036FCA0 4BFFEE5D */ bl func_8036eafc +/* 8036FCA4 38600001 */ li r3, 0x1 +lbl_8036fca8: +/* 8036FCA8 8001002C */ lwz r0, 0x2c(r1) +/* 8036FCAC 83E10024 */ lwz r31, 0x24(r1) +/* 8036FCB0 83C10020 */ lwz r30, 0x20(r1) +/* 8036FCB4 83A1001C */ lwz r29, 0x1c(r1) +/* 8036FCB8 83810018 */ lwz r28, 0x18(r1) +/* 8036FCBC 38210028 */ addi r1, r1, 0x28 +/* 8036FCC0 7C0803A6 */ mtlr r0 +/* 8036FCC4 4E800020 */ blr +.size func_8036fbec, . - func_8036fbec + diff --git a/asm/Dolphin/os/OSMutex.s b/asm/Dolphin/os/OSMutex.s new file mode 100644 index 0000000..a5d8a48 --- /dev/null +++ b/asm/Dolphin/os/OSMutex.s @@ -0,0 +1,190 @@ +.include "macros.inc" + +.section .text + +.global func_8036ffa8 +.type func_8036ffa8, @function +func_8036ffa8: +/* 8036FFA8 7C0802A6 */ mflr r0 +/* 8036FFAC 90010004 */ stw r0, 4(r1) +/* 8036FFB0 9421FFE8 */ stwu r1, -0x18(r1) +/* 8036FFB4 93E10014 */ stw r31, 0x14(r1) +/* 8036FFB8 7C7F1B78 */ mr r31, r3 +/* 8036FFBC 4800178D */ bl func_80371748 +/* 8036FFC0 38000000 */ li r0, 0x0 +/* 8036FFC4 901F0008 */ stw r0, 8(r31) +/* 8036FFC8 901F000C */ stw r0, 0xc(r31) +/* 8036FFCC 8001001C */ lwz r0, 0x1c(r1) +/* 8036FFD0 83E10014 */ lwz r31, 0x14(r1) +/* 8036FFD4 38210018 */ addi r1, r1, 0x18 +/* 8036FFD8 7C0803A6 */ mtlr r0 +/* 8036FFDC 4E800020 */ blr +.size func_8036ffa8, . - func_8036ffa8 + + +.global func_8036ffe0 +.type func_8036ffe0, @function +func_8036ffe0: +/* 8036FFE0 7C0802A6 */ mflr r0 +/* 8036FFE4 90010004 */ stw r0, 4(r1) +/* 8036FFE8 9421FFE0 */ stwu r1, -0x20(r1) +/* 8036FFEC 93E1001C */ stw r31, 0x1c(r1) +/* 8036FFF0 93C10018 */ stw r30, 0x18(r1) +/* 8036FFF4 93A10014 */ stw r29, 0x14(r1) +/* 8036FFF8 93810010 */ stw r28, 0x10(r1) +/* 8036FFFC 7C7C1B78 */ mr r28, r3 +/* 80370000 4BFFEAD5 */ bl func_8036ead4 +/* 80370004 7C7D1B78 */ mr r29, r3 +/* 80370008 48001751 */ bl func_80371758 +/* 8037000C 3BC30000 */ addi r30, r3, 0x0 +/* 80370010 3BE00000 */ li r31, 0x0 +lbl_80370014: +/* 80370014 801C0008 */ lwz r0, 8(r28) +/* 80370018 28000000 */ cmplwi r0, 0 +/* 8037001C 40820040 */ bne- lbl_8037005c +/* 80370020 93DC0008 */ stw r30, 8(r28) +/* 80370024 807C000C */ lwz r3, 0xc(r28) +/* 80370028 38030001 */ addi r0, r3, 0x1 +/* 8037002C 901C000C */ stw r0, 0xc(r28) +/* 80370030 807E02F8 */ lwz r3, 0x2f8(r30) +/* 80370034 28030000 */ cmplwi r3, 0 +/* 80370038 4082000C */ bne- lbl_80370044 +/* 8037003C 939E02F4 */ stw r28, 0x2f4(r30) +/* 80370040 48000008 */ b lbl_80370048 +lbl_80370044: +/* 80370044 93830010 */ stw r28, 0x10(r3) +lbl_80370048: +/* 80370048 907C0014 */ stw r3, 0x14(r28) +/* 8037004C 38000000 */ li r0, 0x0 +/* 80370050 901C0010 */ stw r0, 0x10(r28) +/* 80370054 939E02F8 */ stw r28, 0x2f8(r30) +/* 80370058 4800003C */ b lbl_80370094 +lbl_8037005c: +/* 8037005C 7C00F040 */ cmplw r0, r30 +/* 80370060 40820014 */ bne- lbl_80370074 +/* 80370064 807C000C */ lwz r3, 0xc(r28) +/* 80370068 38030001 */ addi r0, r3, 0x1 +/* 8037006C 901C000C */ stw r0, 0xc(r28) +/* 80370070 48000024 */ b lbl_80370094 +lbl_80370074: +/* 80370074 939E02F0 */ stw r28, 0x2f0(r30) +/* 80370078 807C0008 */ lwz r3, 8(r28) +/* 8037007C 809E02D0 */ lwz r4, 0x2d0(r30) +/* 80370080 48001A19 */ bl func_80371a98 +/* 80370084 7F83E378 */ mr r3, r28 +/* 80370088 48002485 */ bl func_8037250c +/* 8037008C 93FE02F0 */ stw r31, 0x2f0(r30) +/* 80370090 4BFFFF84 */ b lbl_80370014 +lbl_80370094: +/* 80370094 7FA3EB78 */ mr r3, r29 +/* 80370098 4BFFEA65 */ bl func_8036eafc +/* 8037009C 80010024 */ lwz r0, 0x24(r1) +/* 803700A0 83E1001C */ lwz r31, 0x1c(r1) +/* 803700A4 83C10018 */ lwz r30, 0x18(r1) +/* 803700A8 83A10014 */ lwz r29, 0x14(r1) +/* 803700AC 83810010 */ lwz r28, 0x10(r1) +/* 803700B0 38210020 */ addi r1, r1, 0x20 +/* 803700B4 7C0803A6 */ mtlr r0 +/* 803700B8 4E800020 */ blr +.size func_8036ffe0, . - func_8036ffe0 + + +.global func_803700bc +.type func_803700bc, @function +func_803700bc: +/* 803700BC 7C0802A6 */ mflr r0 +/* 803700C0 90010004 */ stw r0, 4(r1) +/* 803700C4 9421FFE0 */ stwu r1, -0x20(r1) +/* 803700C8 93E1001C */ stw r31, 0x1c(r1) +/* 803700CC 93C10018 */ stw r30, 0x18(r1) +/* 803700D0 93A10014 */ stw r29, 0x14(r1) +/* 803700D4 7C7D1B78 */ mr r29, r3 +/* 803700D8 4BFFE9FD */ bl func_8036ead4 +/* 803700DC 7C7F1B78 */ mr r31, r3 +/* 803700E0 48001679 */ bl func_80371758 +/* 803700E4 801D0008 */ lwz r0, 8(r29) +/* 803700E8 3BC30000 */ addi r30, r3, 0x0 +/* 803700EC 7C00F040 */ cmplw r0, r30 +/* 803700F0 40820070 */ bne- lbl_80370160 +/* 803700F4 807D000C */ lwz r3, 0xc(r29) +/* 803700F8 3403FFFF */ addic. r0, r3, -0x1 +/* 803700FC 901D000C */ stw r0, 0xc(r29) +/* 80370100 40820060 */ bne- lbl_80370160 +/* 80370104 807D0010 */ lwz r3, 0x10(r29) +/* 80370108 809D0014 */ lwz r4, 0x14(r29) +/* 8037010C 28030000 */ cmplwi r3, 0 +/* 80370110 4082000C */ bne- lbl_8037011c +/* 80370114 909E02F8 */ stw r4, 0x2f8(r30) +/* 80370118 48000008 */ b lbl_80370120 +lbl_8037011c: +/* 8037011C 90830014 */ stw r4, 0x14(r3) +lbl_80370120: +/* 80370120 28040000 */ cmplwi r4, 0 +/* 80370124 4082000C */ bne- lbl_80370130 +/* 80370128 907E02F4 */ stw r3, 0x2f4(r30) +/* 8037012C 48000008 */ b lbl_80370134 +lbl_80370130: +/* 80370130 90640010 */ stw r3, 0x10(r4) +lbl_80370134: +/* 80370134 38000000 */ li r0, 0x0 +/* 80370138 901D0008 */ stw r0, 8(r29) +/* 8037013C 807E02D0 */ lwz r3, 0x2d0(r30) +/* 80370140 801E02D4 */ lwz r0, 0x2d4(r30) +/* 80370144 7C030000 */ cmpw r3, r0 +/* 80370148 40800010 */ bge- lbl_80370158 +/* 8037014C 7FC3F378 */ mr r3, r30 +/* 80370150 4800174D */ bl func_8037189c +/* 80370154 907E02D0 */ stw r3, 0x2d0(r30) +lbl_80370158: +/* 80370158 7FA3EB78 */ mr r3, r29 +/* 8037015C 4800249D */ bl func_803725f8 +lbl_80370160: +/* 80370160 7FE3FB78 */ mr r3, r31 +/* 80370164 4BFFE999 */ bl func_8036eafc +/* 80370168 80010024 */ lwz r0, 0x24(r1) +/* 8037016C 83E1001C */ lwz r31, 0x1c(r1) +/* 80370170 83C10018 */ lwz r30, 0x18(r1) +/* 80370174 83A10014 */ lwz r29, 0x14(r1) +/* 80370178 38210020 */ addi r1, r1, 0x20 +/* 8037017C 7C0803A6 */ mtlr r0 +/* 80370180 4E800020 */ blr +.size func_803700bc, . - func_803700bc + + +.global func_80370184 +.type func_80370184, @function +func_80370184: +/* 80370184 7C0802A6 */ mflr r0 +/* 80370188 90010004 */ stw r0, 4(r1) +/* 8037018C 9421FFE8 */ stwu r1, -0x18(r1) +/* 80370190 93E10014 */ stw r31, 0x14(r1) +/* 80370194 3BE00000 */ li r31, 0x0 +/* 80370198 93C10010 */ stw r30, 0x10(r1) +/* 8037019C 3BC30000 */ addi r30, r3, 0x0 +/* 803701A0 48000030 */ b lbl_803701d0 +lbl_803701a4: +/* 803701A4 80A40010 */ lwz r5, 0x10(r4) +/* 803701A8 38640000 */ addi r3, r4, 0x0 +/* 803701AC 28050000 */ cmplwi r5, 0 +/* 803701B0 4082000C */ bne- lbl_803701bc +/* 803701B4 93FE02F8 */ stw r31, 0x2f8(r30) +/* 803701B8 48000008 */ b lbl_803701c0 +lbl_803701bc: +/* 803701BC 93E50014 */ stw r31, 0x14(r5) +lbl_803701c0: +/* 803701C0 90BE02F4 */ stw r5, 0x2f4(r30) +/* 803701C4 93E4000C */ stw r31, 0xc(r4) +/* 803701C8 93E40008 */ stw r31, 8(r4) +/* 803701CC 4800242D */ bl func_803725f8 +lbl_803701d0: +/* 803701D0 809E02F4 */ lwz r4, 0x2f4(r30) +/* 803701D4 28040000 */ cmplwi r4, 0 +/* 803701D8 4082FFCC */ bne+ lbl_803701a4 +/* 803701DC 8001001C */ lwz r0, 0x1c(r1) +/* 803701E0 83E10014 */ lwz r31, 0x14(r1) +/* 803701E4 83C10010 */ lwz r30, 0x10(r1) +/* 803701E8 38210018 */ addi r1, r1, 0x18 +/* 803701EC 7C0803A6 */ mtlr r0 +/* 803701F0 4E800020 */ blr +.size func_80370184, . - func_80370184 + diff --git a/asm/Dolphin/os/OSReboot.s b/asm/Dolphin/os/OSReboot.s new file mode 100644 index 0000000..dded641 --- /dev/null +++ b/asm/Dolphin/os/OSReboot.s @@ -0,0 +1,173 @@ +.include "macros.inc" + +.section .text + +.global func_803701f4 +.type func_803701f4, @function +func_803701f4: +/* 803701F4 7C0802A6 */ mflr r0 +/* 803701F8 90010004 */ stw r0, 4(r1) +/* 803701FC 9421FFE8 */ stwu r1, -0x18(r1) +/* 80370200 93E10014 */ stw r31, 0x14(r1) +/* 80370204 7C7F1B78 */ mr r31, r3 +/* 80370208 4BFFE8CD */ bl func_8036ead4 +/* 8037020C 4BFFD805 */ bl func_8036da10 +/* 80370210 7C0004AC */ sync 0 +/* 80370214 4C00012C */ isync +/* 80370218 7FE803A6 */ mtlr r31 +/* 8037021C 4E800020 */ blr +.size func_803701f4, . - func_803701f4 + + +.global func_80370220 +.type func_80370220, @function +func_80370220: +/* 80370220 8001001C */ lwz r0, 0x1c(r1) +/* 80370224 83E10014 */ lwz r31, 0x14(r1) +/* 80370228 38210018 */ addi r1, r1, 0x18 +/* 8037022C 7C0803A6 */ mtlr r0 +/* 80370230 4E800020 */ blr +.size func_80370220, . - func_80370220 + + +.global func_80370234 +.type func_80370234, @function +func_80370234: +/* 80370234 38000001 */ li r0, 0x1 +/* 80370238 900DCA68 */ stw r0, lbl_805c6888@sda21(0) +/* 8037023C 4E800020 */ blr +.size func_80370234, . - func_80370234 + + +.global func_80370240 +.type func_80370240, @function +func_80370240: +/* 80370240 7C0802A6 */ mflr r0 +/* 80370244 90010004 */ stw r0, 4(r1) +/* 80370248 9421FCC0 */ stwu r1, -0x340(r1) +/* 8037024C 93E1033C */ stw r31, 0x33c(r1) +/* 80370250 93C10338 */ stw r30, 0x338(r1) +/* 80370254 3C608054 */ lis r3, lbl_8053ec80@ha +/* 80370258 3BC3EC80 */ addi r30, r3, lbl_8053ec80@l +/* 8037025C 4BFFE879 */ bl func_8036ead4 +/* 80370260 80ADCA60 */ lwz r5, lbl_805c6880@sda21(0) +/* 80370264 3C808130 */ lis r4, 0x8130 +/* 80370268 800DCA64 */ lwz r0, lbl_805c6884@sda21(0) +/* 8037026C 38600000 */ li r3, 0x0 +/* 80370270 3FE08180 */ lis r31, 0x8180 +/* 80370274 38E00001 */ li r7, 0x1 +/* 80370278 907FFFFC */ stw r3, -4(r31) +/* 8037027C 3CC08000 */ lis r6, 0x8000 +/* 80370280 907FFFF8 */ stw r3, -8(r31) +/* 80370284 38610070 */ addi r3, r1, 0x70 +/* 80370288 98E630E2 */ stb r7, 0x30e2(r6) +/* 8037028C 90A4DFF0 */ stw r5, -0x2010(r4) +/* 80370290 9004DFEC */ stw r0, -0x2014(r4) +/* 80370294 4BFFDFCD */ bl func_8036e260 +/* 80370298 38610070 */ addi r3, r1, 0x70 +/* 8037029C 4BFFDDFD */ bl func_8036e098 +/* 803702A0 48004E6D */ bl func_8037510c +/* 803702A4 38600001 */ li r3, 0x1 +/* 803702A8 48006D91 */ bl func_80377038 +/* 803702AC 3C608037 */ lis r3, func_80370234@ha +/* 803702B0 38630234 */ addi r3, r3, func_80370234@l +/* 803702B4 480071C1 */ bl func_80377474 +/* 803702B8 480070D9 */ bl func_80377390 +/* 803702BC 2C030000 */ cmpwi r3, 0x0 +/* 803702C0 4082000C */ bne- lbl_803702cc +/* 803702C4 807FFFFC */ lwz r3, -4(r31) +/* 803702C8 4800022D */ bl func_803704f4 +lbl_803702cc: +/* 803702CC 3860FFE0 */ li r3, -0x20 +/* 803702D0 4BFFEBCD */ bl func_8036ee9c +/* 803702D4 38600400 */ li r3, 0x400 +/* 803702D8 4BFFEC4D */ bl func_8036ef24 +/* 803702DC 4BFFE80D */ bl func_8036eae8 +/* 803702E0 48000004 */ b lbl_803702e4 +lbl_803702e4: +/* 803702E4 48000004 */ b lbl_803702e8 +lbl_803702e8: +/* 803702E8 800DCA68 */ lwz r0, lbl_805c6888@sda21(0) +/* 803702EC 2C000000 */ cmpwi r0, 0x0 +/* 803702F0 4182FFF8 */ beq+ lbl_803702e8 +/* 803702F4 7FC4F378 */ mr r4, r30 +/* 803702F8 38610040 */ addi r3, r1, 0x40 +/* 803702FC 38A00020 */ li r5, 0x20 +/* 80370300 38C02440 */ li r6, 0x2440 +/* 80370304 38E00000 */ li r7, 0x0 +/* 80370308 48006981 */ bl func_80376c88 +/* 8037030C 3FE08180 */ lis r31, 0x8180 +/* 80370310 48000004 */ b lbl_80370314 +lbl_80370314: +/* 80370314 48000004 */ b lbl_80370318 +lbl_80370318: +/* 80370318 8001004C */ lwz r0, 0x4c(r1) +/* 8037031C 2C000001 */ cmpwi r0, 0x1 +/* 80370320 4182FFF8 */ beq+ lbl_80370318 +/* 80370324 40800014 */ bge- lbl_80370338 +/* 80370328 2C00FFFF */ cmpwi r0, -0x1 +/* 8037032C 41820018 */ beq- lbl_80370344 +/* 80370330 40800020 */ bge- lbl_80370350 +/* 80370334 4BFFFFE4 */ b lbl_80370318 +lbl_80370338: +/* 80370338 2C00000C */ cmpwi r0, 0xc +/* 8037033C 4080FFDC */ bge+ lbl_80370318 +/* 80370340 48000004 */ b lbl_80370344 +lbl_80370344: +/* 80370344 807FFFFC */ lwz r3, -4(r31) +/* 80370348 480001AD */ bl func_803704f4 +/* 8037034C 4BFFFFCC */ b lbl_80370318 +lbl_80370350: +/* 80370350 807E0018 */ lwz r3, 0x18(r30) +/* 80370354 809E0014 */ lwz r4, 0x14(r30) +/* 80370358 3803001F */ addi r0, r3, 0x1f +/* 8037035C 38840020 */ addi r4, r4, 0x20 +/* 80370360 541E0034 */ rlwinm r30, r0, 0, 0, 0x1a +/* 80370364 48000004 */ b lbl_80370368 +lbl_80370368: +/* 80370368 48000004 */ b lbl_8037036c +lbl_8037036c: +/* 8037036C 800DCA68 */ lwz r0, lbl_805c6888@sda21(0) +/* 80370370 2C000000 */ cmpwi r0, 0x0 +/* 80370374 4182FFF8 */ beq+ lbl_8037036c +/* 80370378 7FC5F378 */ mr r5, r30 +/* 8037037C 38610010 */ addi r3, r1, 0x10 +/* 80370380 38C42440 */ addi r6, r4, 0x2440 +/* 80370384 3C808130 */ lis r4, 0x8130 +/* 80370388 38E00000 */ li r7, 0x0 +/* 8037038C 480068FD */ bl func_80376c88 +/* 80370390 3FE08180 */ lis r31, 0x8180 +/* 80370394 48000004 */ b lbl_80370398 +lbl_80370398: +/* 80370398 48000004 */ b lbl_8037039c +lbl_8037039c: +/* 8037039C 8001001C */ lwz r0, 0x1c(r1) +/* 803703A0 2C000001 */ cmpwi r0, 0x1 +/* 803703A4 4182FFF8 */ beq+ lbl_8037039c +/* 803703A8 40800014 */ bge- lbl_803703bc +/* 803703AC 2C00FFFF */ cmpwi r0, -0x1 +/* 803703B0 41820018 */ beq- lbl_803703c8 +/* 803703B4 40800020 */ bge- lbl_803703d4 +/* 803703B8 4BFFFFE4 */ b lbl_8037039c +lbl_803703bc: +/* 803703BC 2C00000C */ cmpwi r0, 0xc +/* 803703C0 4080FFDC */ bge+ lbl_8037039c +/* 803703C4 48000004 */ b lbl_803703c8 +lbl_803703c8: +/* 803703C8 807FFFFC */ lwz r3, -4(r31) +/* 803703CC 48000129 */ bl func_803704f4 +/* 803703D0 4BFFFFCC */ b lbl_8037039c +lbl_803703d4: +/* 803703D4 3C608130 */ lis r3, 0x8130 +/* 803703D8 7FC4F378 */ mr r4, r30 +/* 803703DC 4BFFD5FD */ bl func_8036d9d8 +/* 803703E0 3C608130 */ lis r3, 0x8130 +/* 803703E4 4BFFFE11 */ bl func_803701f4 +/* 803703E8 80010344 */ lwz r0, 0x344(r1) +/* 803703EC 83E1033C */ lwz r31, 0x33c(r1) +/* 803703F0 83C10338 */ lwz r30, 0x338(r1) +/* 803703F4 38210340 */ addi r1, r1, 0x340 +/* 803703F8 7C0803A6 */ mtlr r0 +/* 803703FC 4E800020 */ blr +.size func_80370240, . - func_80370240 + diff --git a/asm/Dolphin/os/OSReset.s b/asm/Dolphin/os/OSReset.s new file mode 100644 index 0000000..a7b42f7 --- /dev/null +++ b/asm/Dolphin/os/OSReset.s @@ -0,0 +1,330 @@ +.include "macros.inc" + +.section .text + +.global func_80370400 +.type func_80370400, @function +func_80370400: +/* 80370400 80ADCA70 */ lwz r5, lbl_805c6890@sda21(0) +/* 80370404 48000008 */ b lbl_8037040c +lbl_80370408: +/* 80370408 80A50008 */ lwz r5, 8(r5) +lbl_8037040c: +/* 8037040C 28050000 */ cmplwi r5, 0 +/* 80370410 41820014 */ beq- lbl_80370424 +/* 80370414 80850004 */ lwz r4, 4(r5) +/* 80370418 80030004 */ lwz r0, 4(r3) +/* 8037041C 7C040040 */ cmplw r4, r0 +/* 80370420 4081FFE8 */ ble+ lbl_80370408 +lbl_80370424: +/* 80370424 28050000 */ cmplwi r5, 0 +/* 80370428 40820034 */ bne- lbl_8037045c +/* 8037042C 38ADCA70 */ addi r5, 0, lbl_805c6890@sda21 +/* 80370430 84850004 */ lwzu r4, 4(r5) +/* 80370434 28040000 */ cmplwi r4, 0 +/* 80370438 4082000C */ bne- lbl_80370444 +/* 8037043C 906DCA70 */ stw r3, lbl_805c6890@sda21(0) +/* 80370440 48000008 */ b lbl_80370448 +lbl_80370444: +/* 80370444 90640008 */ stw r3, 8(r4) +lbl_80370448: +/* 80370448 9083000C */ stw r4, 0xc(r3) +/* 8037044C 38000000 */ li r0, 0x0 +/* 80370450 90030008 */ stw r0, 8(r3) +/* 80370454 90650000 */ stw r3, 0(r5) +/* 80370458 4E800020 */ blr +lbl_8037045c: +/* 8037045C 90A30008 */ stw r5, 8(r3) +/* 80370460 8085000C */ lwz r4, 0xc(r5) +/* 80370464 9065000C */ stw r3, 0xc(r5) +/* 80370468 28040000 */ cmplwi r4, 0 +/* 8037046C 9083000C */ stw r4, 0xc(r3) +/* 80370470 4082000C */ bne- lbl_8037047c +/* 80370474 906DCA70 */ stw r3, lbl_805c6890@sda21(0) +/* 80370478 4E800020 */ blr +lbl_8037047c: +/* 8037047C 90640008 */ stw r3, 8(r4) +/* 80370480 4E800020 */ blr +.size func_80370400, . - func_80370400 + + +.global func_80370484 +.type func_80370484, @function +func_80370484: +/* 80370484 48000020 */ b lbl_803704a4 +lbl_80370488: +/* 80370488 7D10FAA6 */ mfspr r8, 0x3f0 +/* 8037048C 61080008 */ ori r8, r8, 8 +/* 80370490 7D10FBA6 */ mtspr 0x3f0, r8 +/* 80370494 4C00012C */ isync +/* 80370498 7C0004AC */ sync 0 +/* 8037049C 60000000 */ nop +/* 803704A0 48000008 */ b lbl_803704a8 +lbl_803704a4: +/* 803704A4 48000020 */ b lbl_803704c4 +lbl_803704a8: +/* 803704A8 7CAC42E6 */ mftb r5, 0x10c +lbl_803704ac: +/* 803704AC 7CCC42E6 */ mftb r6, 0x10c +/* 803704B0 7CE53050 */ subf r7, r5, r6 +/* 803704B4 28071124 */ cmplwi r7, 0x1124 +/* 803704B8 4180FFF4 */ blt+ lbl_803704ac +/* 803704BC 60000000 */ nop +/* 803704C0 48000008 */ b lbl_803704c8 +lbl_803704c4: +/* 803704C4 48000020 */ b lbl_803704e4 +lbl_803704c8: +/* 803704C8 3D00CC00 */ lis r8, 0xcc00 +/* 803704CC 61083000 */ ori r8, r8, 0x3000 +/* 803704D0 38800003 */ li r4, 0x3 +/* 803704D4 90880024 */ stw r4, 0x24(r8) +/* 803704D8 90680024 */ stw r3, 0x24(r8) +/* 803704DC 60000000 */ nop +/* 803704E0 48000008 */ b lbl_803704e8 +lbl_803704e4: +/* 803704E4 4800000C */ b lbl_803704f0 +lbl_803704e8: +/* 803704E8 60000000 */ nop +/* 803704EC 4BFFFFFC */ b lbl_803704e8 +lbl_803704f0: +/* 803704F0 4BFFFF98 */ b lbl_80370488 +.size func_80370484, . - func_80370484 + + +.global func_803704f4 +.type func_803704f4, @function +func_803704f4: +/* 803704F4 7C0802A6 */ mflr r0 +/* 803704F8 90010004 */ stw r0, 4(r1) +/* 803704FC 9421FFE8 */ stwu r1, -0x18(r1) +/* 80370500 93E10014 */ stw r31, 0x14(r1) +/* 80370504 7C7F1B78 */ mr r31, r3 +/* 80370508 4BFFE5CD */ bl func_8036ead4 +/* 8037050C 3C60CC00 */ lis r3, 0xcc00 +/* 80370510 38632000 */ addi r3, r3, 0x2000 +/* 80370514 38000000 */ li r0, 0x0 +/* 80370518 B0030002 */ sth r0, 2(r3) +/* 8037051C 4BFFD4F5 */ bl func_8036da10 +/* 80370520 57E31838 */ slwi r3, r31, 3 +/* 80370524 4BFFFF61 */ bl func_80370484 +/* 80370528 8001001C */ lwz r0, 0x1c(r1) +/* 8037052C 83E10014 */ lwz r31, 0x14(r1) +/* 80370530 38210018 */ addi r1, r1, 0x18 +/* 80370534 7C0803A6 */ mtlr r0 +/* 80370538 4E800020 */ blr +.size func_803704f4, . - func_803704f4 + + +.global func_8037053c +.type func_8037053c, @function +func_8037053c: +/* 8037053C 7C0802A6 */ mflr r0 +/* 80370540 90010004 */ stw r0, 4(r1) +/* 80370544 9421FFC0 */ stwu r1, -0x40(r1) +/* 80370548 BF410028 */ stmw r26, 0x28(r1) +/* 8037054C 7C7A1B78 */ mr r26, r3 +/* 80370550 7C9D2378 */ mr r29, r4 +/* 80370554 7CBE2B78 */ mr r30, r5 +/* 80370558 4800125D */ bl func_803717b4 +/* 8037055C 4BFFD299 */ bl func_8036d7f4 +/* 80370560 2C1A0002 */ cmpwi r26, 0x2 +/* 80370564 40820010 */ bne- lbl_80370574 +/* 80370568 38600001 */ li r3, 0x1 +/* 8037056C 4800AAC1 */ bl func_8037b02c +/* 80370570 7C7F1B78 */ mr r31, r3 +lbl_80370574: +/* 80370574 48000004 */ b lbl_80370578 +lbl_80370578: +/* 80370578 48000004 */ b lbl_8037057c +lbl_8037057c: +/* 8037057C 836DCA70 */ lwz r27, lbl_805c6890@sda21(0) +/* 80370580 3B800000 */ li r28, 0x0 +/* 80370584 48000004 */ b lbl_80370588 +lbl_80370588: +/* 80370588 48000004 */ b lbl_8037058c +lbl_8037058c: +/* 8037058C 48000024 */ b lbl_803705b0 +lbl_80370590: +/* 80370590 38600000 */ li r3, 0x0 +/* 80370594 819B0000 */ lwz r12, 0(r27) +/* 80370598 7D8803A6 */ mtlr r12 +/* 8037059C 4E800021 */ blrl +/* 803705A0 7C600034 */ cntlzw r0, r3 +/* 803705A4 837B0008 */ lwz r27, 8(r27) +/* 803705A8 5400D97E */ srwi r0, r0, 5 +/* 803705AC 7F9C0378 */ or r28, r28, r0 +lbl_803705b0: +/* 803705B0 281B0000 */ cmplwi r27, 0 +/* 803705B4 4082FFDC */ bne+ lbl_80370590 +/* 803705B8 48000C6D */ bl func_80371224 +/* 803705BC 7C600034 */ cntlzw r0, r3 +/* 803705C0 5400D97E */ srwi r0, r0, 5 +/* 803705C4 7F9C0378 */ or r28, r28, r0 +/* 803705C8 2C1C0000 */ cmpwi r28, 0x0 +/* 803705CC 4182000C */ beq- lbl_803705d8 +/* 803705D0 38000000 */ li r0, 0x0 +/* 803705D4 48000008 */ b lbl_803705dc +lbl_803705d8: +/* 803705D8 38000001 */ li r0, 0x1 +lbl_803705dc: +/* 803705DC 2C000000 */ cmpwi r0, 0x0 +/* 803705E0 4182FF9C */ beq+ lbl_8037057c +/* 803705E4 2C1A0001 */ cmpwi r26, 0x1 +/* 803705E8 40820038 */ bne- lbl_80370620 +/* 803705EC 2C1E0000 */ cmpwi r30, 0x0 +/* 803705F0 41820030 */ beq- lbl_80370620 +/* 803705F4 48000829 */ bl func_80370e1c +/* 803705F8 88030013 */ lbz r0, 0x13(r3) +/* 803705FC 60000040 */ ori r0, r0, 0x40 +/* 80370600 98030013 */ stb r0, 0x13(r3) +/* 80370604 38600001 */ li r3, 0x1 +/* 80370608 48000BD5 */ bl func_803711dc +/* 8037060C 48000004 */ b lbl_80370610 +lbl_80370610: +/* 80370610 48000004 */ b lbl_80370614 +lbl_80370614: +/* 80370614 48000C11 */ bl func_80371224 +/* 80370618 2C030000 */ cmpwi r3, 0x0 +/* 8037061C 4182FFF8 */ beq+ lbl_80370614 +lbl_80370620: +/* 80370620 4BFFE4B5 */ bl func_8036ead4 +/* 80370624 838DCA70 */ lwz r28, lbl_805c6890@sda21(0) +/* 80370628 3B600000 */ li r27, 0x0 +/* 8037062C 48000004 */ b lbl_80370630 +lbl_80370630: +/* 80370630 48000004 */ b lbl_80370634 +lbl_80370634: +/* 80370634 48000024 */ b lbl_80370658 +lbl_80370638: +/* 80370638 38600001 */ li r3, 0x1 +/* 8037063C 819C0000 */ lwz r12, 0(r28) +/* 80370640 7D8803A6 */ mtlr r12 +/* 80370644 4E800021 */ blrl +/* 80370648 7C600034 */ cntlzw r0, r3 +/* 8037064C 839C0008 */ lwz r28, 8(r28) +/* 80370650 5400D97E */ srwi r0, r0, 5 +/* 80370654 7F7B0378 */ or r27, r27, r0 +lbl_80370658: +/* 80370658 281C0000 */ cmplwi r28, 0 +/* 8037065C 4082FFDC */ bne+ lbl_80370638 +/* 80370660 48000BC5 */ bl func_80371224 +/* 80370664 4BFFD4D5 */ bl func_8036db38 +/* 80370668 2C1A0001 */ cmpwi r26, 0x1 +/* 8037066C 40820028 */ bne- lbl_80370694 +/* 80370670 4BFFE465 */ bl func_8036ead4 +/* 80370674 3C60CC00 */ lis r3, 0xcc00 +/* 80370678 38632000 */ addi r3, r3, 0x2000 +/* 8037067C 38000000 */ li r0, 0x0 +/* 80370680 B0030002 */ sth r0, 2(r3) +/* 80370684 4BFFD38D */ bl func_8036da10 +/* 80370688 57A31838 */ slwi r3, r29, 3 +/* 8037068C 4BFFFDF9 */ bl func_80370484 +/* 80370690 48000060 */ b lbl_803706f0 +lbl_80370694: +/* 80370694 2C1A0000 */ cmpwi r26, 0x0 +/* 80370698 40820058 */ bne- lbl_803706f0 +/* 8037069C 3C608000 */ lis r3, 0x8000 +/* 803706A0 806300DC */ lwz r3, 0xdc(r3) +/* 803706A4 48000004 */ b lbl_803706a8 +lbl_803706a8: +/* 803706A8 48000004 */ b lbl_803706ac +lbl_803706ac: +/* 803706AC 4800002C */ b lbl_803706d8 +lbl_803706b0: +/* 803706B0 A00302C8 */ lhz r0, 0x2c8(r3) +/* 803706B4 836302FC */ lwz r27, 0x2fc(r3) +/* 803706B8 2C000004 */ cmpwi r0, 0x4 +/* 803706BC 41820014 */ beq- lbl_803706d0 +/* 803706C0 40800014 */ bge- lbl_803706d4 +/* 803706C4 2C000001 */ cmpwi r0, 0x1 +/* 803706C8 41820008 */ beq- lbl_803706d0 +/* 803706CC 48000008 */ b lbl_803706d4 +lbl_803706d0: +/* 803706D0 48001889 */ bl func_80371f58 +lbl_803706d4: +/* 803706D4 7F63DB78 */ mr r3, r27 +lbl_803706d8: +/* 803706D8 28030000 */ cmplwi r3, 0 +/* 803706DC 4082FFD4 */ bne+ lbl_803706b0 +/* 803706E0 48001115 */ bl func_803717f4 +/* 803706E4 7FA3EB78 */ mr r3, r29 +/* 803706E8 7FC4F378 */ mr r4, r30 +/* 803706EC 4BFFFB55 */ bl func_80370240 +lbl_803706f0: +/* 803706F0 3C608000 */ lis r3, 0x8000 +/* 803706F4 806300DC */ lwz r3, 0xdc(r3) +/* 803706F8 48000004 */ b lbl_803706fc +lbl_803706fc: +/* 803706FC 48000004 */ b lbl_80370700 +lbl_80370700: +/* 80370700 4800002C */ b lbl_8037072c +lbl_80370704: +/* 80370704 A00302C8 */ lhz r0, 0x2c8(r3) +/* 80370708 836302FC */ lwz r27, 0x2fc(r3) +/* 8037070C 2C000004 */ cmpwi r0, 0x4 +/* 80370710 41820014 */ beq- lbl_80370724 +/* 80370714 40800014 */ bge- lbl_80370728 +/* 80370718 2C000001 */ cmpwi r0, 0x1 +/* 8037071C 41820008 */ beq- lbl_80370724 +/* 80370720 48000008 */ b lbl_80370728 +lbl_80370724: +/* 80370724 48001835 */ bl func_80371f58 +lbl_80370728: +/* 80370728 7F63DB78 */ mr r3, r27 +lbl_8037072c: +/* 8037072C 28030000 */ cmplwi r3, 0 +/* 80370730 4082FFD4 */ bne+ lbl_80370704 +/* 80370734 3FA08000 */ lis r29, 0x8000 +/* 80370738 387D0040 */ addi r3, r29, 0x40 +/* 8037073C 38800000 */ li r4, 0x0 +/* 80370740 38A0008C */ li r5, 0x8c +/* 80370744 4BC9DBF1 */ bl func_8000e334 +/* 80370748 387D00D4 */ addi r3, r29, 0xd4 +/* 8037074C 38800000 */ li r4, 0x0 +/* 80370750 38A00014 */ li r5, 0x14 +/* 80370754 4BC9DBE1 */ bl func_8000e334 +/* 80370758 387D00F4 */ addi r3, r29, 0xf4 +/* 8037075C 38800000 */ li r4, 0x0 +/* 80370760 38A00004 */ li r5, 0x4 +/* 80370764 4BC9DBD1 */ bl func_8000e334 +/* 80370768 387D3000 */ addi r3, r29, 0x3000 +/* 8037076C 38800000 */ li r4, 0x0 +/* 80370770 38A000C0 */ li r5, 0xc0 +/* 80370774 4BC9DBC1 */ bl func_8000e334 +/* 80370778 387D30C8 */ addi r3, r29, 0x30c8 +/* 8037077C 38800000 */ li r4, 0x0 +/* 80370780 38A0000C */ li r5, 0xc +/* 80370784 4BC9DBB1 */ bl func_8000e334 +/* 80370788 387D30E2 */ addi r3, r29, 0x30e2 +/* 8037078C 38800000 */ li r4, 0x0 +/* 80370790 38A00001 */ li r5, 0x1 +/* 80370794 4BC9DBA1 */ bl func_8000e334 +/* 80370798 7FE3FB78 */ mr r3, r31 +/* 8037079C 4800A891 */ bl func_8037b02c +/* 803707A0 BB410028 */ lmw r26, 0x28(r1) +/* 803707A4 80010044 */ lwz r0, 0x44(r1) +/* 803707A8 38210040 */ addi r1, r1, 0x40 +/* 803707AC 7C0803A6 */ mtlr r0 +/* 803707B0 4E800020 */ blr +.size func_8037053c, . - func_8037053c + + +.global func_803707b4 +.type func_803707b4, @function +func_803707b4: +/* 803707B4 3C608000 */ lis r3, 0x8000 +/* 803707B8 880330E2 */ lbz r0, 0x30e2(r3) +/* 803707BC 28000000 */ cmplwi r0, 0 +/* 803707C0 4182000C */ beq- lbl_803707cc +/* 803707C4 3C608000 */ lis r3, 0x8000 +/* 803707C8 48000018 */ b lbl_803707e0 +lbl_803707cc: +/* 803707CC 3C60CC00 */ lis r3, 0xcc00 +/* 803707D0 38633000 */ addi r3, r3, 0x3000 +/* 803707D4 80030024 */ lwz r0, 0x24(r3) +/* 803707D8 54000038 */ rlwinm r0, r0, 0, 0, 0x1c +/* 803707DC 5403E8FE */ srwi r3, r0, 3 +lbl_803707e0: +/* 803707E0 4E800020 */ blr +.size func_803707b4, . - func_803707b4 + diff --git a/asm/Dolphin/os/OSResetSW.s b/asm/Dolphin/os/OSResetSW.s new file mode 100644 index 0000000..33dd3ce --- /dev/null +++ b/asm/Dolphin/os/OSResetSW.s @@ -0,0 +1,258 @@ +.include "macros.inc" + +.section .text + +.global func_803707e4 +.type func_803707e4, @function +func_803707e4: +/* 803707E4 7C0802A6 */ mflr r0 +/* 803707E8 90010004 */ stw r0, 4(r1) +/* 803707EC 9421FFD8 */ stwu r1, -0x28(r1) +/* 803707F0 93E10024 */ stw r31, 0x24(r1) +/* 803707F4 93C10020 */ stw r30, 0x20(r1) +/* 803707F8 93A1001C */ stw r29, 0x1c(r1) +/* 803707FC 48001FE9 */ bl func_803727e4 +/* 80370800 3CA08000 */ lis r5, 0x8000 +/* 80370804 908DCA94 */ stw r4, lbl_805c68b4@sda21(0) +/* 80370808 800500F8 */ lwz r0, 0xf8(r5) +/* 8037080C 3C80431C */ lis r4, 0x431c +/* 80370810 3884DE83 */ addi r4, r4, -0x217d +/* 80370814 906DCA90 */ stw r3, lbl_805c68b0@sda21(0) +/* 80370818 5400F0BE */ srwi r0, r0, 2 +/* 8037081C 7C040016 */ mulhwu r0, r4, r0 +/* 80370820 54008BFE */ srwi r0, r0, 0xf +/* 80370824 1C000064 */ mulli r0, r0, 0x64 +/* 80370828 541DE8FE */ srwi r29, r0, 3 +/* 8037082C 3BC00000 */ li r30, 0x0 +/* 80370830 3FE0CC00 */ lis r31, 0xcc00 +lbl_80370834: +/* 80370834 48001FB1 */ bl func_803727e4 +/* 80370838 80CDCA94 */ lwz r6, lbl_805c68b4@sda21(0) +/* 8037083C 6FC58000 */ xoris r5, r30, 0x8000 +/* 80370840 800DCA90 */ lwz r0, lbl_805c68b0@sda21(0) +/* 80370844 7C862010 */ subfc r4, r6, r4 +/* 80370848 7C001910 */ subfe r0, r0, r3 +/* 8037084C 6C038000 */ xoris r3, r0, 0x8000 +/* 80370850 7C1D2010 */ subfc r0, r29, r4 +/* 80370854 7CA51910 */ subfe r5, r5, r3 +/* 80370858 7CA31910 */ subfe r5, r3, r3 +/* 8037085C 7CA500D1 */ neg. r5, r5 +/* 80370860 41820010 */ beq- lbl_80370870 +/* 80370864 801F3000 */ lwz r0, 0x3000(r31) +/* 80370868 540003DF */ rlwinm. r0, r0, 0, 0xf, 0xf +/* 8037086C 4182FFC8 */ beq+ lbl_80370834 +lbl_80370870: +/* 80370870 3C60CC00 */ lis r3, 0xcc00 +/* 80370874 80033000 */ lwz r0, 0x3000(r3) +/* 80370878 540003DF */ rlwinm. r0, r0, 0, 0xf, 0xf +/* 8037087C 40820034 */ bne- lbl_803708b0 +/* 80370880 38000001 */ li r0, 0x1 +/* 80370884 900DCA7C */ stw r0, lbl_805c689c@sda21(0) +/* 80370888 38600200 */ li r3, 0x200 +/* 8037088C 900DCA80 */ stw r0, lbl_805c68a0@sda21(0) +/* 80370890 4BFFE60D */ bl func_8036ee9c +/* 80370894 818DCA78 */ lwz r12, lbl_805c6898@sda21(0) +/* 80370898 280C0000 */ cmplwi r12, 0 +/* 8037089C 41820014 */ beq- lbl_803708b0 +/* 803708A0 38000000 */ li r0, 0x0 +/* 803708A4 7D8803A6 */ mtlr r12 +/* 803708A8 900DCA78 */ stw r0, lbl_805c6898@sda21(0) +/* 803708AC 4E800021 */ blrl +lbl_803708b0: +/* 803708B0 38000002 */ li r0, 0x2 +/* 803708B4 3C60CC00 */ lis r3, 0xcc00 +/* 803708B8 90033000 */ stw r0, 0x3000(r3) +/* 803708BC 8001002C */ lwz r0, 0x2c(r1) +/* 803708C0 83E10024 */ lwz r31, 0x24(r1) +/* 803708C4 83C10020 */ lwz r30, 0x20(r1) +/* 803708C8 83A1001C */ lwz r29, 0x1c(r1) +/* 803708CC 38210028 */ addi r1, r1, 0x28 +/* 803708D0 7C0803A6 */ mtlr r0 +/* 803708D4 4E800020 */ blr +.size func_803707e4, . - func_803707e4 + + +.global func_803708d8 +.type func_803708d8, @function +func_803708d8: +/* 803708D8 7C0802A6 */ mflr r0 +/* 803708DC 90010004 */ stw r0, 4(r1) +/* 803708E0 9421FFE8 */ stwu r1, -0x18(r1) +/* 803708E4 93E10014 */ stw r31, 0x14(r1) +/* 803708E8 93C10010 */ stw r30, 0x10(r1) +/* 803708EC 93A1000C */ stw r29, 0xc(r1) +/* 803708F0 4BFFE1E5 */ bl func_8036ead4 +/* 803708F4 7C7E1B78 */ mr r30, r3 +/* 803708F8 48001EED */ bl func_803727e4 +/* 803708FC 3CA0CC00 */ lis r5, 0xcc00 +/* 80370900 80053000 */ lwz r0, 0x3000(r5) +/* 80370904 540003DF */ rlwinm. r0, r0, 0, 0xf, 0xf +/* 80370908 408200DC */ bne- lbl_803709e4 +/* 8037090C 800DCA7C */ lwz r0, lbl_805c689c@sda21(0) +/* 80370910 2C000000 */ cmpwi r0, 0x0 +/* 80370914 40820040 */ bne- lbl_80370954 +/* 80370918 800DCA88 */ lwz r0, lbl_805c68a8@sda21(0) +/* 8037091C 38C00000 */ li r6, 0x0 +/* 80370920 80ADCA8C */ lwz r5, lbl_805c68ac@sda21(0) +/* 80370924 38E00001 */ li r7, 0x1 +/* 80370928 7C003278 */ xor r0, r0, r6 +/* 8037092C 7CA53278 */ xor r5, r5, r6 +/* 80370930 90EDCA7C */ stw r7, lbl_805c689c@sda21(0) +/* 80370934 7CA00379 */ or. r0, r5, r0 +/* 80370938 41820008 */ beq- lbl_80370940 +/* 8037093C 48000008 */ b lbl_80370944 +lbl_80370940: +/* 80370940 7CC73378 */ mr r7, r6 +lbl_80370944: +/* 80370944 908DCA94 */ stw r4, lbl_805c68b4@sda21(0) +/* 80370948 7CFD3B78 */ mr r29, r7 +/* 8037094C 906DCA90 */ stw r3, lbl_805c68b0@sda21(0) +/* 80370950 48000148 */ b lbl_80370a98 +lbl_80370954: +/* 80370954 800DCA88 */ lwz r0, lbl_805c68a8@sda21(0) +/* 80370958 39200000 */ li r9, 0x0 +/* 8037095C 80ADCA8C */ lwz r5, lbl_805c68ac@sda21(0) +/* 80370960 39400001 */ li r10, 0x1 +/* 80370964 7C004A78 */ xor r0, r0, r9 +/* 80370968 7CA54A78 */ xor r5, r5, r9 +/* 8037096C 7CA00379 */ or. r0, r5, r0 +/* 80370970 40820058 */ bne- lbl_803709c8 +/* 80370974 3CC08000 */ lis r6, 0x8000 +/* 80370978 80ADCA94 */ lwz r5, lbl_805c68b4@sda21(0) +/* 8037097C 80E600F8 */ lwz r7, 0xf8(r6) +/* 80370980 3CC0431C */ lis r6, 0x431c +/* 80370984 3906DE83 */ addi r8, r6, -0x217d +/* 80370988 800DCA90 */ lwz r0, lbl_805c68b0@sda21(0) +/* 8037098C 54E6F0BE */ srwi r6, r7, 2 +/* 80370990 7CC83016 */ mulhwu r6, r8, r6 +/* 80370994 54C68BFE */ srwi r6, r6, 0xf +/* 80370998 1CC60064 */ mulli r6, r6, 0x64 +/* 8037099C 7CE52010 */ subfc r7, r5, r4 +/* 803709A0 7C001910 */ subfe r0, r0, r3 +/* 803709A4 54C8E8FE */ srwi r8, r6, 3 +/* 803709A8 6C058000 */ xoris r5, r0, 0x8000 +/* 803709AC 6D268000 */ xoris r6, r9, 0x8000 +/* 803709B0 7C074010 */ subfc r0, r7, r8 +/* 803709B4 7CA53110 */ subfe r5, r5, r6 +/* 803709B8 7CA63110 */ subfe r5, r6, r6 +/* 803709BC 7CA500D1 */ neg. r5, r5 +/* 803709C0 40820008 */ bne- lbl_803709c8 +/* 803709C4 7D2A4B78 */ mr r10, r9 +lbl_803709c8: +/* 803709C8 2C0A0000 */ cmpwi r10, 0x0 +/* 803709CC 4182000C */ beq- lbl_803709d8 +/* 803709D0 38000001 */ li r0, 0x1 +/* 803709D4 48000008 */ b lbl_803709dc +lbl_803709d8: +/* 803709D8 38000000 */ li r0, 0x0 +lbl_803709dc: +/* 803709DC 7C1D0378 */ mr r29, r0 +/* 803709E0 480000B8 */ b lbl_80370a98 +lbl_803709e4: +/* 803709E4 800DCA7C */ lwz r0, lbl_805c689c@sda21(0) +/* 803709E8 2C000000 */ cmpwi r0, 0x0 +/* 803709EC 41820034 */ beq- lbl_80370a20 +/* 803709F0 80ADCA80 */ lwz r5, lbl_805c68a0@sda21(0) +/* 803709F4 38000000 */ li r0, 0x0 +/* 803709F8 900DCA7C */ stw r0, lbl_805c689c@sda21(0) +/* 803709FC 2C050000 */ cmpwi r5, 0x0 +/* 80370A00 3BA50000 */ addi r29, r5, 0x0 +/* 80370A04 41820010 */ beq- lbl_80370a14 +/* 80370A08 908DCA8C */ stw r4, lbl_805c68ac@sda21(0) +/* 80370A0C 906DCA88 */ stw r3, lbl_805c68a8@sda21(0) +/* 80370A10 48000088 */ b lbl_80370a98 +lbl_80370a14: +/* 80370A14 900DCA8C */ stw r0, lbl_805c68ac@sda21(0) +/* 80370A18 900DCA88 */ stw r0, lbl_805c68a8@sda21(0) +/* 80370A1C 4800007C */ b lbl_80370a98 +lbl_80370a20: +/* 80370A20 80CDCA88 */ lwz r6, lbl_805c68a8@sda21(0) +/* 80370A24 39000000 */ li r8, 0x0 +/* 80370A28 80EDCA8C */ lwz r7, lbl_805c68ac@sda21(0) +/* 80370A2C 7CC04278 */ xor r0, r6, r8 +/* 80370A30 7CE54278 */ xor r5, r7, r8 +/* 80370A34 7CA00379 */ or. r0, r5, r0 +/* 80370A38 41820050 */ beq- lbl_80370a88 +/* 80370A3C 3CA08000 */ lis r5, 0x8000 +/* 80370A40 800500F8 */ lwz r0, 0xf8(r5) +/* 80370A44 3CA01062 */ lis r5, 0x1062 +/* 80370A48 38A54DD3 */ addi r5, r5, 0x4dd3 +/* 80370A4C 5400F0BE */ srwi r0, r0, 2 +/* 80370A50 7C050016 */ mulhwu r0, r5, r0 +/* 80370A54 5400D1BE */ srwi r0, r0, 6 +/* 80370A58 1C000028 */ mulli r0, r0, 0x28 +/* 80370A5C 7CE72010 */ subfc r7, r7, r4 +/* 80370A60 7CA61910 */ subfe r5, r6, r3 +/* 80370A64 6CA68000 */ xoris r6, r5, 0x8000 +/* 80370A68 6D058000 */ xoris r5, r8, 0x8000 +/* 80370A6C 7C003810 */ subfc r0, r0, r7 +/* 80370A70 7CA53110 */ subfe r5, r5, r6 +/* 80370A74 7CA63110 */ subfe r5, r6, r6 +/* 80370A78 7CA500D1 */ neg. r5, r5 +/* 80370A7C 4182000C */ beq- lbl_80370a88 +/* 80370A80 3BA00001 */ li r29, 0x1 +/* 80370A84 48000014 */ b lbl_80370a98 +lbl_80370a88: +/* 80370A88 38000000 */ li r0, 0x0 +/* 80370A8C 900DCA8C */ stw r0, lbl_805c68ac@sda21(0) +/* 80370A90 3BA00000 */ li r29, 0x0 +/* 80370A94 900DCA88 */ stw r0, lbl_805c68a8@sda21(0) +lbl_80370a98: +/* 80370A98 3CA08000 */ lis r5, 0x8000 +/* 80370A9C 93ADCA80 */ stw r29, lbl_805c68a0@sda21(0) +/* 80370AA0 880530E3 */ lbz r0, 0x30e3(r5) +/* 80370AA4 540006BF */ clrlwi. r0, r0, 0x1a +/* 80370AA8 418200A0 */ beq- lbl_80370b48 +/* 80370AAC 1D40003C */ mulli r10, r0, 0x3c +/* 80370AB0 800500F8 */ lwz r0, 0xf8(r5) +/* 80370AB4 812DCA24 */ lwz r9, lbl_805c6844@sda21(0) +/* 80370AB8 810DCA20 */ lwz r8, lbl_805c6840@sda21(0) +/* 80370ABC 5406F0BE */ srwi r6, r0, 2 +/* 80370AC0 7D40FE70 */ srawi r0, r10, 0x1f +/* 80370AC4 7CE031D6 */ mullw r7, r0, r6 +/* 80370AC8 7C0A3016 */ mulhwu r0, r10, r6 +/* 80370ACC 7CAA31D6 */ mullw r5, r10, r6 +/* 80370AD0 7D292814 */ addc r9, r9, r5 +/* 80370AD4 3BE00000 */ li r31, 0x0 +/* 80370AD8 7CE70214 */ add r7, r7, r0 +/* 80370ADC 7C0AF9D6 */ mullw r0, r10, r31 +/* 80370AE0 7C070214 */ add r0, r7, r0 +/* 80370AE4 7D080114 */ adde r8, r8, r0 +/* 80370AE8 6D078000 */ xoris r7, r8, 0x8000 +/* 80370AEC 6C658000 */ xoris r5, r3, 0x8000 +/* 80370AF0 7C044810 */ subfc r0, r4, r9 +/* 80370AF4 7CA53910 */ subfe r5, r5, r7 +/* 80370AF8 7CA73910 */ subfe r5, r7, r7 +/* 80370AFC 7CA500D1 */ neg. r5, r5 +/* 80370B00 41820048 */ beq- lbl_80370b48 +/* 80370B04 7C892010 */ subfc r4, r9, r4 +/* 80370B08 7C681910 */ subfe r3, r8, r3 +/* 80370B0C 38A00000 */ li r5, 0x0 +/* 80370B10 48022AA1 */ bl func_803935b0 +/* 80370B14 38A00000 */ li r5, 0x0 +/* 80370B18 38C00002 */ li r6, 0x2 +/* 80370B1C 48022A95 */ bl func_803935b0 +/* 80370B20 38000001 */ li r0, 0x1 +/* 80370B24 7C840038 */ and r4, r4, r0 +/* 80370B28 7C60F838 */ and r0, r3, r31 +/* 80370B2C 7C83FA78 */ xor r3, r4, r31 +/* 80370B30 7C00FA78 */ xor r0, r0, r31 +/* 80370B34 7C600379 */ or. r0, r3, r0 +/* 80370B38 4082000C */ bne- lbl_80370b44 +/* 80370B3C 3BA00001 */ li r29, 0x1 +/* 80370B40 48000008 */ b lbl_80370b48 +lbl_80370b44: +/* 80370B44 3BA00000 */ li r29, 0x0 +lbl_80370b48: +/* 80370B48 7FC3F378 */ mr r3, r30 +/* 80370B4C 4BFFDFB1 */ bl func_8036eafc +/* 80370B50 7FA3EB78 */ mr r3, r29 +/* 80370B54 8001001C */ lwz r0, 0x1c(r1) +/* 80370B58 83E10014 */ lwz r31, 0x14(r1) +/* 80370B5C 83C10010 */ lwz r30, 0x10(r1) +/* 80370B60 83A1000C */ lwz r29, 0xc(r1) +/* 80370B64 38210018 */ addi r1, r1, 0x18 +/* 80370B68 7C0803A6 */ mtlr r0 +/* 80370B6C 4E800020 */ blr +.size func_803708d8, . - func_803708d8 + diff --git a/asm/Dolphin/os/OSRtc.s b/asm/Dolphin/os/OSRtc.s new file mode 100644 index 0000000..f355f2d --- /dev/null +++ b/asm/Dolphin/os/OSRtc.s @@ -0,0 +1,785 @@ +.include "macros.inc" + +.section .text + +.global func_80370b70 +.type func_80370b70, @function +func_80370b70: +/* 80370B70 7C0802A6 */ mflr r0 +/* 80370B74 3C608054 */ lis r3, lbl_8053eca0@ha +/* 80370B78 90010004 */ stw r0, 4(r1) +/* 80370B7C 9421FFE8 */ stwu r1, -0x18(r1) +/* 80370B80 93E10014 */ stw r31, 0x14(r1) +/* 80370B84 3BE3ECA0 */ addi r31, r3, lbl_8053eca0@l +/* 80370B88 93C10010 */ stw r30, 0x10(r1) +/* 80370B8C 3BDF0040 */ addi r30, r31, 0x40 +/* 80370B90 809F0040 */ lwz r4, 0x40(r31) +/* 80370B94 7C7F2214 */ add r3, r31, r4 +/* 80370B98 20A40040 */ subfic r5, r4, 0x40 +/* 80370B9C 48000035 */ bl func_80370bd0 +/* 80370BA0 907F004C */ stw r3, 0x4c(r31) +/* 80370BA4 801F004C */ lwz r0, 0x4c(r31) +/* 80370BA8 2C000000 */ cmpwi r0, 0x0 +/* 80370BAC 4182000C */ beq- lbl_80370bb8 +/* 80370BB0 38000040 */ li r0, 0x40 +/* 80370BB4 901E0000 */ stw r0, 0(r30) +lbl_80370bb8: +/* 80370BB8 8001001C */ lwz r0, 0x1c(r1) +/* 80370BBC 83E10014 */ lwz r31, 0x14(r1) +/* 80370BC0 83C10010 */ lwz r30, 0x10(r1) +/* 80370BC4 38210018 */ addi r1, r1, 0x18 +/* 80370BC8 7C0803A6 */ mtlr r0 +/* 80370BCC 4E800020 */ blr +.size func_80370b70, . - func_80370b70 + + +.global func_80370bd0 +.type func_80370bd0, @function +func_80370bd0: +/* 80370BD0 7C0802A6 */ mflr r0 +/* 80370BD4 3CC08037 */ lis r6, func_80370b70@ha +/* 80370BD8 90010004 */ stw r0, 4(r1) +/* 80370BDC 38060B70 */ addi r0, r6, func_80370b70@l +/* 80370BE0 9421FFD8 */ stwu r1, -0x28(r1) +/* 80370BE4 93E10024 */ stw r31, 0x24(r1) +/* 80370BE8 3BE40000 */ addi r31, r4, 0x0 +/* 80370BEC 38800001 */ li r4, 0x1 +/* 80370BF0 93C10020 */ stw r30, 0x20(r1) +/* 80370BF4 3BC50000 */ addi r30, r5, 0x0 +/* 80370BF8 7C050378 */ mr r5, r0 +/* 80370BFC 93A1001C */ stw r29, 0x1c(r1) +/* 80370C00 3BA30000 */ addi r29, r3, 0x0 +/* 80370C04 38600000 */ li r3, 0x0 +/* 80370C08 480BBB75 */ bl func_8042c77c +/* 80370C0C 2C030000 */ cmpwi r3, 0x0 +/* 80370C10 4082000C */ bne- lbl_80370c1c +/* 80370C14 38600000 */ li r3, 0x0 +/* 80370C18 480000B4 */ b lbl_80370ccc +lbl_80370c1c: +/* 80370C1C 38600000 */ li r3, 0x0 +/* 80370C20 38800001 */ li r4, 0x1 +/* 80370C24 38A00003 */ li r5, 0x3 +/* 80370C28 480BB455 */ bl func_8042c07c +/* 80370C2C 2C030000 */ cmpwi r3, 0x0 +/* 80370C30 40820014 */ bne- lbl_80370c44 +/* 80370C34 38600000 */ li r3, 0x0 +/* 80370C38 480BBC39 */ bl func_8042c870 +/* 80370C3C 38600000 */ li r3, 0x0 +/* 80370C40 4800008C */ b lbl_80370ccc +lbl_80370c44: +/* 80370C44 57FF3032 */ slwi r31, r31, 6 +/* 80370C48 381F0100 */ addi r0, r31, 0x100 +/* 80370C4C 6400A000 */ oris r0, r0, 0xa000 +/* 80370C50 90010014 */ stw r0, 0x14(r1) +/* 80370C54 38810014 */ addi r4, r1, 0x14 +/* 80370C58 38600000 */ li r3, 0x0 +/* 80370C5C 38A00004 */ li r5, 0x4 +/* 80370C60 38C00001 */ li r6, 0x1 +/* 80370C64 38E00000 */ li r7, 0x0 +/* 80370C68 480BA8C1 */ bl func_8042b528 +/* 80370C6C 7C600034 */ cntlzw r0, r3 +/* 80370C70 541FD97E */ srwi r31, r0, 5 +/* 80370C74 38600000 */ li r3, 0x0 +/* 80370C78 480BAC99 */ bl func_8042b910 +/* 80370C7C 7C600034 */ cntlzw r0, r3 +/* 80370C80 5400D97E */ srwi r0, r0, 5 +/* 80370C84 389D0000 */ addi r4, r29, 0x0 +/* 80370C88 38BE0000 */ addi r5, r30, 0x0 +/* 80370C8C 7FFF0378 */ or r31, r31, r0 +/* 80370C90 38600000 */ li r3, 0x0 +/* 80370C94 38C00001 */ li r6, 0x1 +/* 80370C98 480BAAED */ bl func_8042b784 +/* 80370C9C 7C600034 */ cntlzw r0, r3 +/* 80370CA0 5400D97E */ srwi r0, r0, 5 +/* 80370CA4 7FFF0378 */ or r31, r31, r0 +/* 80370CA8 38600000 */ li r3, 0x0 +/* 80370CAC 480BB4FD */ bl func_8042c1a8 +/* 80370CB0 7C600034 */ cntlzw r0, r3 +/* 80370CB4 5400D97E */ srwi r0, r0, 5 +/* 80370CB8 7FFF0378 */ or r31, r31, r0 +/* 80370CBC 38600000 */ li r3, 0x0 +/* 80370CC0 480BBBB1 */ bl func_8042c870 +/* 80370CC4 7FE00034 */ cntlzw r0, r31 +/* 80370CC8 5403D97E */ srwi r3, r0, 5 +lbl_80370ccc: +/* 80370CCC 8001002C */ lwz r0, 0x2c(r1) +/* 80370CD0 83E10024 */ lwz r31, 0x24(r1) +/* 80370CD4 83C10020 */ lwz r30, 0x20(r1) +/* 80370CD8 83A1001C */ lwz r29, 0x1c(r1) +/* 80370CDC 38210028 */ addi r1, r1, 0x28 +/* 80370CE0 7C0803A6 */ mtlr r0 +/* 80370CE4 4E800020 */ blr +.size func_80370bd0, . - func_80370bd0 + + +.global func_80370ce8 +.type func_80370ce8, @function +func_80370ce8: +/* 80370CE8 7C0802A6 */ mflr r0 +/* 80370CEC 3C608054 */ lis r3, lbl_8053eca0@ha +/* 80370CF0 90010004 */ stw r0, 4(r1) +/* 80370CF4 38800040 */ li r4, 0x40 +/* 80370CF8 9421FFE8 */ stwu r1, -0x18(r1) +/* 80370CFC 93E10014 */ stw r31, 0x14(r1) +/* 80370D00 3BE00000 */ li r31, 0x0 +/* 80370D04 93C10010 */ stw r30, 0x10(r1) +/* 80370D08 3BC3ECA0 */ addi r30, r3, lbl_8053eca0@l +/* 80370D0C 387E0000 */ addi r3, r30, 0x0 +/* 80370D10 93FE0044 */ stw r31, 0x44(r30) +/* 80370D14 93FE0048 */ stw r31, 0x48(r30) +/* 80370D18 4BFFCBC9 */ bl func_8036d8e0 +/* 80370D1C 38600000 */ li r3, 0x0 +/* 80370D20 38800001 */ li r4, 0x1 +/* 80370D24 38A00000 */ li r5, 0x0 +/* 80370D28 480BBA55 */ bl func_8042c77c +/* 80370D2C 2C030000 */ cmpwi r3, 0x0 +/* 80370D30 40820008 */ bne- lbl_80370d38 +/* 80370D34 480000C4 */ b lbl_80370df8 +lbl_80370d38: +/* 80370D38 38600000 */ li r3, 0x0 +/* 80370D3C 38800001 */ li r4, 0x1 +/* 80370D40 38A00003 */ li r5, 0x3 +/* 80370D44 480BB339 */ bl func_8042c07c +/* 80370D48 2C030000 */ cmpwi r3, 0x0 +/* 80370D4C 40820010 */ bne- lbl_80370d5c +/* 80370D50 38600000 */ li r3, 0x0 +/* 80370D54 480BBB1D */ bl func_8042c870 +/* 80370D58 480000A0 */ b lbl_80370df8 +lbl_80370d5c: +/* 80370D5C 3C602000 */ lis r3, 0x2000 +/* 80370D60 38030100 */ addi r0, r3, 0x100 +/* 80370D64 90010008 */ stw r0, 8(r1) +/* 80370D68 38810008 */ addi r4, r1, 0x8 +/* 80370D6C 38600000 */ li r3, 0x0 +/* 80370D70 38A00004 */ li r5, 0x4 +/* 80370D74 38C00001 */ li r6, 0x1 +/* 80370D78 38E00000 */ li r7, 0x0 +/* 80370D7C 480BA7AD */ bl func_8042b528 +/* 80370D80 7C600034 */ cntlzw r0, r3 +/* 80370D84 541FD97E */ srwi r31, r0, 5 +/* 80370D88 38600000 */ li r3, 0x0 +/* 80370D8C 480BAB85 */ bl func_8042b910 +/* 80370D90 7C600034 */ cntlzw r0, r3 +/* 80370D94 5400D97E */ srwi r0, r0, 5 +/* 80370D98 389E0000 */ addi r4, r30, 0x0 +/* 80370D9C 7FFF0378 */ or r31, r31, r0 +/* 80370DA0 38600000 */ li r3, 0x0 +/* 80370DA4 38A00040 */ li r5, 0x40 +/* 80370DA8 38C00000 */ li r6, 0x0 +/* 80370DAC 38E00000 */ li r7, 0x0 +/* 80370DB0 480BAA75 */ bl func_8042b824 +/* 80370DB4 7C600034 */ cntlzw r0, r3 +/* 80370DB8 5400D97E */ srwi r0, r0, 5 +/* 80370DBC 7FFF0378 */ or r31, r31, r0 +/* 80370DC0 38600000 */ li r3, 0x0 +/* 80370DC4 480BAB4D */ bl func_8042b910 +/* 80370DC8 7C600034 */ cntlzw r0, r3 +/* 80370DCC 5400D97E */ srwi r0, r0, 5 +/* 80370DD0 7FFF0378 */ or r31, r31, r0 +/* 80370DD4 38600000 */ li r3, 0x0 +/* 80370DD8 480BB3D1 */ bl func_8042c1a8 +/* 80370DDC 7C600034 */ cntlzw r0, r3 +/* 80370DE0 5400D97E */ srwi r0, r0, 5 +/* 80370DE4 7FFF0378 */ or r31, r31, r0 +/* 80370DE8 38600000 */ li r3, 0x0 +/* 80370DEC 480BBA85 */ bl func_8042c870 +/* 80370DF0 7FE00034 */ cntlzw r0, r31 +/* 80370DF4 541FD97E */ srwi r31, r0, 5 +lbl_80370df8: +/* 80370DF8 93FE004C */ stw r31, 0x4c(r30) +/* 80370DFC 38000040 */ li r0, 0x40 +/* 80370E00 901E0040 */ stw r0, 0x40(r30) +/* 80370E04 8001001C */ lwz r0, 0x1c(r1) +/* 80370E08 83E10014 */ lwz r31, 0x14(r1) +/* 80370E0C 83C10010 */ lwz r30, 0x10(r1) +/* 80370E10 38210018 */ addi r1, r1, 0x18 +/* 80370E14 7C0803A6 */ mtlr r0 +/* 80370E18 4E800020 */ blr +.size func_80370ce8, . - func_80370ce8 + + +.global func_80370e1c +.type func_80370e1c, @function +func_80370e1c: +/* 80370E1C 7C0802A6 */ mflr r0 +/* 80370E20 3C608054 */ lis r3, lbl_8053eca0@ha +/* 80370E24 90010004 */ stw r0, 4(r1) +/* 80370E28 9421FFF0 */ stwu r1, -0x10(r1) +/* 80370E2C 93E1000C */ stw r31, 0xc(r1) +/* 80370E30 3BE3ECA0 */ addi r31, r3, lbl_8053eca0@l +/* 80370E34 4BFFDCA1 */ bl func_8036ead4 +/* 80370E38 801F0048 */ lwz r0, 0x48(r31) +/* 80370E3C 389F0048 */ addi r4, r31, 0x48 +/* 80370E40 2C000000 */ cmpwi r0, 0x0 +/* 80370E44 41820010 */ beq- lbl_80370e54 +/* 80370E48 4BFFDCB5 */ bl func_8036eafc +/* 80370E4C 3BE00000 */ li r31, 0x0 +/* 80370E50 48000010 */ b lbl_80370e60 +lbl_80370e54: +/* 80370E54 907F0044 */ stw r3, 0x44(r31) +/* 80370E58 38000001 */ li r0, 0x1 +/* 80370E5C 90040000 */ stw r0, 0(r4) +lbl_80370e60: +/* 80370E60 7FE3FB78 */ mr r3, r31 +/* 80370E64 80010014 */ lwz r0, 0x14(r1) +/* 80370E68 83E1000C */ lwz r31, 0xc(r1) +/* 80370E6C 38210010 */ addi r1, r1, 0x10 +/* 80370E70 7C0803A6 */ mtlr r0 +/* 80370E74 4E800020 */ blr +.size func_80370e1c, . - func_80370e1c + + +.global func_80370e78 +.type func_80370e78, @function +func_80370e78: +/* 80370E78 7C0802A6 */ mflr r0 +/* 80370E7C 3C608054 */ lis r3, lbl_8053eca0@ha +/* 80370E80 90010004 */ stw r0, 4(r1) +/* 80370E84 9421FFF0 */ stwu r1, -0x10(r1) +/* 80370E88 93E1000C */ stw r31, 0xc(r1) +/* 80370E8C 3BE3ECA0 */ addi r31, r3, lbl_8053eca0@l +/* 80370E90 4BFFDC45 */ bl func_8036ead4 +/* 80370E94 801F0048 */ lwz r0, 0x48(r31) +/* 80370E98 389F0048 */ addi r4, r31, 0x48 +/* 80370E9C 2C000000 */ cmpwi r0, 0x0 +/* 80370EA0 41820010 */ beq- lbl_80370eb0 +/* 80370EA4 4BFFDC59 */ bl func_8036eafc +/* 80370EA8 38600000 */ li r3, 0x0 +/* 80370EAC 48000014 */ b lbl_80370ec0 +lbl_80370eb0: +/* 80370EB0 907F0044 */ stw r3, 0x44(r31) +/* 80370EB4 38000001 */ li r0, 0x1 +/* 80370EB8 387F0014 */ addi r3, r31, 0x14 +/* 80370EBC 90040000 */ stw r0, 0(r4) +lbl_80370ec0: +/* 80370EC0 80010014 */ lwz r0, 0x14(r1) +/* 80370EC4 83E1000C */ lwz r31, 0xc(r1) +/* 80370EC8 38210010 */ addi r1, r1, 0x10 +/* 80370ECC 7C0803A6 */ mtlr r0 +/* 80370ED0 4E800020 */ blr +.size func_80370e78, . - func_80370e78 + + +.global func_80370ed4 +.type func_80370ed4, @function +func_80370ed4: +/* 80370ED4 7C0802A6 */ mflr r0 +/* 80370ED8 2C030000 */ cmpwi r3, 0x0 +/* 80370EDC 90010004 */ stw r0, 4(r1) +/* 80370EE0 3C608054 */ lis r3, lbl_8053eca0@ha +/* 80370EE4 9421FFD0 */ stwu r1, -0x30(r1) +/* 80370EE8 BF61001C */ stmw r27, 0x1c(r1) +/* 80370EEC 3BE3ECA0 */ addi r31, r3, lbl_8053eca0@l +/* 80370EF0 418202C4 */ beq- lbl_803711b4 +/* 80370EF4 28040000 */ cmplwi r4, 0 +/* 80370EF8 408201B0 */ bne- lbl_803710a8 +/* 80370EFC 887F0013 */ lbz r3, 0x13(r31) +/* 80370F00 546007BE */ clrlwi r0, r3, 0x1e +/* 80370F04 28000002 */ cmplwi r0, 2 +/* 80370F08 4081000C */ ble- lbl_80370f14 +/* 80370F0C 5460003A */ rlwinm r0, r3, 0, 0, 0x1d +/* 80370F10 981F0013 */ stb r0, 0x13(r31) +lbl_80370f14: +/* 80370F14 38000000 */ li r0, 0x0 +/* 80370F18 B01F0002 */ sth r0, 2(r31) +/* 80370F1C 38BF0014 */ addi r5, r31, 0x14 +/* 80370F20 38DF000C */ addi r6, r31, 0xc +/* 80370F24 38650001 */ addi r3, r5, 0x1 +/* 80370F28 B01F0000 */ sth r0, 0(r31) +/* 80370F2C 7C661850 */ subf r3, r6, r3 +/* 80370F30 7C062840 */ cmplw r6, r5 +/* 80370F34 5463F87E */ srwi r3, r3, 1 +/* 80370F38 40800170 */ bge- lbl_803710a8 +/* 80370F3C 5460E8FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f +/* 80370F40 7C0903A6 */ mtctr r0 +/* 80370F44 41820134 */ beq- lbl_80371078 +lbl_80370f48: +/* 80370F48 A0BF0000 */ lhz r5, 0(r31) +/* 80370F4C A0060000 */ lhz r0, 0(r6) +/* 80370F50 7C050214 */ add r0, r5, r0 +/* 80370F54 B01F0000 */ sth r0, 0(r31) +/* 80370F58 A0060000 */ lhz r0, 0(r6) +/* 80370F5C A0BF0002 */ lhz r5, 2(r31) +/* 80370F60 7C0000F8 */ nor r0, r0, r0 +/* 80370F64 7C050214 */ add r0, r5, r0 +/* 80370F68 B01F0002 */ sth r0, 2(r31) +/* 80370F6C A0BF0000 */ lhz r5, 0(r31) +/* 80370F70 A0060002 */ lhz r0, 2(r6) +/* 80370F74 7C050214 */ add r0, r5, r0 +/* 80370F78 B01F0000 */ sth r0, 0(r31) +/* 80370F7C A0060002 */ lhz r0, 2(r6) +/* 80370F80 A0BF0002 */ lhz r5, 2(r31) +/* 80370F84 7C0000F8 */ nor r0, r0, r0 +/* 80370F88 7C050214 */ add r0, r5, r0 +/* 80370F8C B01F0002 */ sth r0, 2(r31) +/* 80370F90 A0BF0000 */ lhz r5, 0(r31) +/* 80370F94 A0060004 */ lhz r0, 4(r6) +/* 80370F98 7C050214 */ add r0, r5, r0 +/* 80370F9C B01F0000 */ sth r0, 0(r31) +/* 80370FA0 A0060004 */ lhz r0, 4(r6) +/* 80370FA4 A0BF0002 */ lhz r5, 2(r31) +/* 80370FA8 7C0000F8 */ nor r0, r0, r0 +/* 80370FAC 7C050214 */ add r0, r5, r0 +/* 80370FB0 B01F0002 */ sth r0, 2(r31) +/* 80370FB4 A0BF0000 */ lhz r5, 0(r31) +/* 80370FB8 A0060006 */ lhz r0, 6(r6) +/* 80370FBC 7C050214 */ add r0, r5, r0 +/* 80370FC0 B01F0000 */ sth r0, 0(r31) +/* 80370FC4 A0060006 */ lhz r0, 6(r6) +/* 80370FC8 A0BF0002 */ lhz r5, 2(r31) +/* 80370FCC 7C0000F8 */ nor r0, r0, r0 +/* 80370FD0 7C050214 */ add r0, r5, r0 +/* 80370FD4 B01F0002 */ sth r0, 2(r31) +/* 80370FD8 A0BF0000 */ lhz r5, 0(r31) +/* 80370FDC A0060008 */ lhz r0, 8(r6) +/* 80370FE0 7C050214 */ add r0, r5, r0 +/* 80370FE4 B01F0000 */ sth r0, 0(r31) +/* 80370FE8 A0060008 */ lhz r0, 8(r6) +/* 80370FEC A0BF0002 */ lhz r5, 2(r31) +/* 80370FF0 7C0000F8 */ nor r0, r0, r0 +/* 80370FF4 7C050214 */ add r0, r5, r0 +/* 80370FF8 B01F0002 */ sth r0, 2(r31) +/* 80370FFC A0BF0000 */ lhz r5, 0(r31) +/* 80371000 A006000A */ lhz r0, 0xa(r6) +/* 80371004 7C050214 */ add r0, r5, r0 +/* 80371008 B01F0000 */ sth r0, 0(r31) +/* 8037100C A006000A */ lhz r0, 0xa(r6) +/* 80371010 A0BF0002 */ lhz r5, 2(r31) +/* 80371014 7C0000F8 */ nor r0, r0, r0 +/* 80371018 7C050214 */ add r0, r5, r0 +/* 8037101C B01F0002 */ sth r0, 2(r31) +/* 80371020 A0BF0000 */ lhz r5, 0(r31) +/* 80371024 A006000C */ lhz r0, 0xc(r6) +/* 80371028 7C050214 */ add r0, r5, r0 +/* 8037102C B01F0000 */ sth r0, 0(r31) +/* 80371030 A006000C */ lhz r0, 0xc(r6) +/* 80371034 A0BF0002 */ lhz r5, 2(r31) +/* 80371038 7C0000F8 */ nor r0, r0, r0 +/* 8037103C 7C050214 */ add r0, r5, r0 +/* 80371040 B01F0002 */ sth r0, 2(r31) +/* 80371044 A0BF0000 */ lhz r5, 0(r31) +/* 80371048 A006000E */ lhz r0, 0xe(r6) +/* 8037104C 7C050214 */ add r0, r5, r0 +/* 80371050 B01F0000 */ sth r0, 0(r31) +/* 80371054 A006000E */ lhz r0, 0xe(r6) +/* 80371058 38C60010 */ addi r6, r6, 0x10 +/* 8037105C A0BF0002 */ lhz r5, 2(r31) +/* 80371060 7C0000F8 */ nor r0, r0, r0 +/* 80371064 7C050214 */ add r0, r5, r0 +/* 80371068 B01F0002 */ sth r0, 2(r31) +/* 8037106C 4200FEDC */ bdnz lbl_80370f48 +/* 80371070 70630007 */ andi. r3, r3, 7 +/* 80371074 41820034 */ beq- lbl_803710a8 +lbl_80371078: +/* 80371078 7C6903A6 */ mtctr r3 +lbl_8037107c: +/* 8037107C A0BF0000 */ lhz r5, 0(r31) +/* 80371080 A0060000 */ lhz r0, 0(r6) +/* 80371084 7C050214 */ add r0, r5, r0 +/* 80371088 B01F0000 */ sth r0, 0(r31) +/* 8037108C A0060000 */ lhz r0, 0(r6) +/* 80371090 38C60002 */ addi r6, r6, 0x2 +/* 80371094 A0BF0002 */ lhz r5, 2(r31) +/* 80371098 7C0000F8 */ nor r0, r0, r0 +/* 8037109C 7C050214 */ add r0, r5, r0 +/* 803710A0 B01F0002 */ sth r0, 2(r31) +/* 803710A4 4200FFD8 */ bdnz lbl_8037107c +lbl_803710a8: +/* 803710A8 3BDF0040 */ addi r30, r31, 0x40 +/* 803710AC 801F0040 */ lwz r0, 0x40(r31) +/* 803710B0 7C040040 */ cmplw r4, r0 +/* 803710B4 40800008 */ bge- lbl_803710bc +/* 803710B8 909E0000 */ stw r4, 0(r30) +lbl_803710bc: +/* 803710BC 83BE0000 */ lwz r29, 0(r30) +/* 803710C0 3C608037 */ lis r3, func_80370b70@ha +/* 803710C4 38A30B70 */ addi r5, r3, func_80370b70@l +/* 803710C8 237D0040 */ subfic r27, r29, 0x40 +/* 803710CC 7F9FEA14 */ add r28, r31, r29 +/* 803710D0 38600000 */ li r3, 0x0 +/* 803710D4 38800001 */ li r4, 0x1 +/* 803710D8 480BB6A5 */ bl func_8042c77c +/* 803710DC 2C030000 */ cmpwi r3, 0x0 +/* 803710E0 4082000C */ bne- lbl_803710ec +/* 803710E4 38000000 */ li r0, 0x0 +/* 803710E8 480000B4 */ b lbl_8037119c +lbl_803710ec: +/* 803710EC 38600000 */ li r3, 0x0 +/* 803710F0 38800001 */ li r4, 0x1 +/* 803710F4 38A00003 */ li r5, 0x3 +/* 803710F8 480BAF85 */ bl func_8042c07c +/* 803710FC 2C030000 */ cmpwi r3, 0x0 +/* 80371100 40820014 */ bne- lbl_80371114 +/* 80371104 38600000 */ li r3, 0x0 +/* 80371108 480BB769 */ bl func_8042c870 +/* 8037110C 38000000 */ li r0, 0x0 +/* 80371110 4800008C */ b lbl_8037119c +lbl_80371114: +/* 80371114 57A33032 */ slwi r3, r29, 6 +/* 80371118 38030100 */ addi r0, r3, 0x100 +/* 8037111C 6400A000 */ oris r0, r0, 0xa000 +/* 80371120 90010010 */ stw r0, 0x10(r1) +/* 80371124 38810010 */ addi r4, r1, 0x10 +/* 80371128 38600000 */ li r3, 0x0 +/* 8037112C 38A00004 */ li r5, 0x4 +/* 80371130 38C00001 */ li r6, 0x1 +/* 80371134 38E00000 */ li r7, 0x0 +/* 80371138 480BA3F1 */ bl func_8042b528 +/* 8037113C 7C600034 */ cntlzw r0, r3 +/* 80371140 541DD97E */ srwi r29, r0, 5 +/* 80371144 38600000 */ li r3, 0x0 +/* 80371148 480BA7C9 */ bl func_8042b910 +/* 8037114C 7C600034 */ cntlzw r0, r3 +/* 80371150 5400D97E */ srwi r0, r0, 5 +/* 80371154 389C0000 */ addi r4, r28, 0x0 +/* 80371158 38BB0000 */ addi r5, r27, 0x0 +/* 8037115C 7FBD0378 */ or r29, r29, r0 +/* 80371160 38600000 */ li r3, 0x0 +/* 80371164 38C00001 */ li r6, 0x1 +/* 80371168 480BA61D */ bl func_8042b784 +/* 8037116C 7C600034 */ cntlzw r0, r3 +/* 80371170 5400D97E */ srwi r0, r0, 5 +/* 80371174 7FBD0378 */ or r29, r29, r0 +/* 80371178 38600000 */ li r3, 0x0 +/* 8037117C 480BB02D */ bl func_8042c1a8 +/* 80371180 7C600034 */ cntlzw r0, r3 +/* 80371184 5400D97E */ srwi r0, r0, 5 +/* 80371188 7FBD0378 */ or r29, r29, r0 +/* 8037118C 38600000 */ li r3, 0x0 +/* 80371190 480BB6E1 */ bl func_8042c870 +/* 80371194 7FA00034 */ cntlzw r0, r29 +/* 80371198 5400D97E */ srwi r0, r0, 5 +lbl_8037119c: +/* 8037119C 901F004C */ stw r0, 0x4c(r31) +/* 803711A0 801F004C */ lwz r0, 0x4c(r31) +/* 803711A4 2C000000 */ cmpwi r0, 0x0 +/* 803711A8 4182000C */ beq- lbl_803711b4 +/* 803711AC 38000040 */ li r0, 0x40 +/* 803711B0 901E0000 */ stw r0, 0(r30) +lbl_803711b4: +/* 803711B4 38000000 */ li r0, 0x0 +/* 803711B8 901F0048 */ stw r0, 0x48(r31) +/* 803711BC 807F0044 */ lwz r3, 0x44(r31) +/* 803711C0 4BFFD93D */ bl func_8036eafc +/* 803711C4 807F004C */ lwz r3, 0x4c(r31) +/* 803711C8 BB61001C */ lmw r27, 0x1c(r1) +/* 803711CC 80010034 */ lwz r0, 0x34(r1) +/* 803711D0 38210030 */ addi r1, r1, 0x30 +/* 803711D4 7C0803A6 */ mtlr r0 +/* 803711D8 4E800020 */ blr +.size func_80370ed4, . - func_80370ed4 + + +.global func_803711dc +.type func_803711dc, @function +func_803711dc: +/* 803711DC 7C0802A6 */ mflr r0 +/* 803711E0 38800000 */ li r4, 0x0 +/* 803711E4 90010004 */ stw r0, 4(r1) +/* 803711E8 9421FFF8 */ stwu r1, -8(r1) +/* 803711EC 4BFFFCE9 */ bl func_80370ed4 +/* 803711F0 8001000C */ lwz r0, 0xc(r1) +/* 803711F4 38210008 */ addi r1, r1, 0x8 +/* 803711F8 7C0803A6 */ mtlr r0 +/* 803711FC 4E800020 */ blr +.size func_803711dc, . - func_803711dc + + +.global func_80371200 +.type func_80371200, @function +func_80371200: +/* 80371200 7C0802A6 */ mflr r0 +/* 80371204 38800014 */ li r4, 0x14 +/* 80371208 90010004 */ stw r0, 4(r1) +/* 8037120C 9421FFF8 */ stwu r1, -8(r1) +/* 80371210 4BFFFCC5 */ bl func_80370ed4 +/* 80371214 8001000C */ lwz r0, 0xc(r1) +/* 80371218 38210008 */ addi r1, r1, 0x8 +/* 8037121C 7C0803A6 */ mtlr r0 +/* 80371220 4E800020 */ blr +.size func_80371200, . - func_80371200 + + +.global func_80371224 +.type func_80371224, @function +func_80371224: +/* 80371224 3C608054 */ lis r3, lbl_8053eca0@ha +/* 80371228 3863ECA0 */ addi r3, r3, lbl_8053eca0@l +/* 8037122C 8063004C */ lwz r3, 0x4c(r3) +/* 80371230 4E800020 */ blr +.size func_80371224, . - func_80371224 + + +.global func_80371234 +.type func_80371234, @function +func_80371234: +/* 80371234 7C0802A6 */ mflr r0 +/* 80371238 3C608054 */ lis r3, lbl_8053eca0@ha +/* 8037123C 90010004 */ stw r0, 4(r1) +/* 80371240 9421FFE0 */ stwu r1, -0x20(r1) +/* 80371244 93E1001C */ stw r31, 0x1c(r1) +/* 80371248 3BE3ECA0 */ addi r31, r3, lbl_8053eca0@l +/* 8037124C 4BFFD889 */ bl func_8036ead4 +/* 80371250 801F0048 */ lwz r0, 0x48(r31) +/* 80371254 389F0048 */ addi r4, r31, 0x48 +/* 80371258 2C000000 */ cmpwi r0, 0x0 +/* 8037125C 41820010 */ beq- lbl_8037126c +/* 80371260 4BFFD89D */ bl func_8036eafc +/* 80371264 3BE00000 */ li r31, 0x0 +/* 80371268 48000010 */ b lbl_80371278 +lbl_8037126c: +/* 8037126C 907F0044 */ stw r3, 0x44(r31) +/* 80371270 38000001 */ li r0, 0x1 +/* 80371274 90040000 */ stw r0, 0(r4) +lbl_80371278: +/* 80371278 881F0013 */ lbz r0, 0x13(r31) +/* 8037127C 5400077B */ rlwinm. r0, r0, 0, 0x1d, 0x1d +/* 80371280 4182000C */ beq- lbl_8037128c +/* 80371284 3BE00001 */ li r31, 0x1 +/* 80371288 48000008 */ b lbl_80371290 +lbl_8037128c: +/* 8037128C 3BE00000 */ li r31, 0x0 +lbl_80371290: +/* 80371290 38600000 */ li r3, 0x0 +/* 80371294 38800000 */ li r4, 0x0 +/* 80371298 4BFFFC3D */ bl func_80370ed4 +/* 8037129C 7FE3FB78 */ mr r3, r31 +/* 803712A0 80010024 */ lwz r0, 0x24(r1) +/* 803712A4 83E1001C */ lwz r31, 0x1c(r1) +/* 803712A8 38210020 */ addi r1, r1, 0x20 +/* 803712AC 7C0803A6 */ mtlr r0 +/* 803712B0 4E800020 */ blr +.size func_80371234, . - func_80371234 + + +.global func_803712b4 +.type func_803712b4, @function +func_803712b4: +/* 803712B4 7C0802A6 */ mflr r0 +/* 803712B8 3C808054 */ lis r4, lbl_8053eca0@ha +/* 803712BC 90010004 */ stw r0, 4(r1) +/* 803712C0 9421FFE0 */ stwu r1, -0x20(r1) +/* 803712C4 93E1001C */ stw r31, 0x1c(r1) +/* 803712C8 3BE4ECA0 */ addi r31, r4, lbl_8053eca0@l +/* 803712CC 93C10018 */ stw r30, 0x18(r1) +/* 803712D0 547E177A */ rlwinm r30, r3, 2, 0x1d, 0x1d +/* 803712D4 4BFFD801 */ bl func_8036ead4 +/* 803712D8 801F0048 */ lwz r0, 0x48(r31) +/* 803712DC 389F0048 */ addi r4, r31, 0x48 +/* 803712E0 2C000000 */ cmpwi r0, 0x0 +/* 803712E4 41820010 */ beq- lbl_803712f4 +/* 803712E8 4BFFD815 */ bl func_8036eafc +/* 803712EC 3BE00000 */ li r31, 0x0 +/* 803712F0 48000010 */ b lbl_80371300 +lbl_803712f4: +/* 803712F4 907F0044 */ stw r3, 0x44(r31) +/* 803712F8 38000001 */ li r0, 0x1 +/* 803712FC 90040000 */ stw r0, 0(r4) +lbl_80371300: +/* 80371300 887F0013 */ lbz r3, 0x13(r31) +/* 80371304 5460077A */ rlwinm r0, r3, 0, 0x1d, 0x1d +/* 80371308 7C1E0040 */ cmplw r30, r0 +/* 8037130C 40820014 */ bne- lbl_80371320 +/* 80371310 38600000 */ li r3, 0x0 +/* 80371314 38800000 */ li r4, 0x0 +/* 80371318 4BFFFBBD */ bl func_80370ed4 +/* 8037131C 48000024 */ b lbl_80371340 +lbl_80371320: +/* 80371320 546007B8 */ rlwinm r0, r3, 0, 0x1e, 0x1c +/* 80371324 981F0013 */ stb r0, 0x13(r31) +/* 80371328 38600001 */ li r3, 0x1 +/* 8037132C 38800000 */ li r4, 0x0 +/* 80371330 881F0013 */ lbz r0, 0x13(r31) +/* 80371334 7C00F378 */ or r0, r0, r30 +/* 80371338 981F0013 */ stb r0, 0x13(r31) +/* 8037133C 4BFFFB99 */ bl func_80370ed4 +lbl_80371340: +/* 80371340 80010024 */ lwz r0, 0x24(r1) +/* 80371344 83E1001C */ lwz r31, 0x1c(r1) +/* 80371348 83C10018 */ lwz r30, 0x18(r1) +/* 8037134C 38210020 */ addi r1, r1, 0x20 +/* 80371350 7C0803A6 */ mtlr r0 +/* 80371354 4E800020 */ blr +.size func_803712b4, . - func_803712b4 + + +.global func_80371358 +.type func_80371358, @function +func_80371358: +/* 80371358 7C0802A6 */ mflr r0 +/* 8037135C 3C608054 */ lis r3, lbl_8053eca0@ha +/* 80371360 90010004 */ stw r0, 4(r1) +/* 80371364 9421FFE8 */ stwu r1, -0x18(r1) +/* 80371368 93E10014 */ stw r31, 0x14(r1) +/* 8037136C 3BE3ECA0 */ addi r31, r3, lbl_8053eca0@l +/* 80371370 4BFFD765 */ bl func_8036ead4 +/* 80371374 801F0048 */ lwz r0, 0x48(r31) +/* 80371378 389F0048 */ addi r4, r31, 0x48 +/* 8037137C 2C000000 */ cmpwi r0, 0x0 +/* 80371380 41820010 */ beq- lbl_80371390 +/* 80371384 4BFFD779 */ bl func_8036eafc +/* 80371388 3BE00000 */ li r31, 0x0 +/* 8037138C 48000010 */ b lbl_8037139c +lbl_80371390: +/* 80371390 907F0044 */ stw r3, 0x44(r31) +/* 80371394 38000001 */ li r0, 0x1 +/* 80371398 90040000 */ stw r0, 0(r4) +lbl_8037139c: +/* 8037139C 881F0013 */ lbz r0, 0x13(r31) +/* 803713A0 38600000 */ li r3, 0x0 +/* 803713A4 38800000 */ li r4, 0x0 +/* 803713A8 541FCFFE */ rlwinm r31, r0, 0x19, 0x1f, 0x1f +/* 803713AC 4BFFFB29 */ bl func_80370ed4 +/* 803713B0 7FE3FB78 */ mr r3, r31 +/* 803713B4 8001001C */ lwz r0, 0x1c(r1) +/* 803713B8 83E10014 */ lwz r31, 0x14(r1) +/* 803713BC 38210018 */ addi r1, r1, 0x18 +/* 803713C0 7C0803A6 */ mtlr r0 +/* 803713C4 4E800020 */ blr +.size func_80371358, . - func_80371358 + + +.global func_803713c8 +.type func_803713c8, @function +func_803713c8: +/* 803713C8 7C0802A6 */ mflr r0 +/* 803713CC 3C808054 */ lis r4, lbl_8053eca0@ha +/* 803713D0 90010004 */ stw r0, 4(r1) +/* 803713D4 9421FFE0 */ stwu r1, -0x20(r1) +/* 803713D8 93E1001C */ stw r31, 0x1c(r1) +/* 803713DC 3BE4ECA0 */ addi r31, r4, lbl_8053eca0@l +/* 803713E0 93C10018 */ stw r30, 0x18(r1) +/* 803713E4 547E3E30 */ rlwinm r30, r3, 7, 0x18, 0x18 +/* 803713E8 4BFFD6ED */ bl func_8036ead4 +/* 803713EC 801F0048 */ lwz r0, 0x48(r31) +/* 803713F0 389F0048 */ addi r4, r31, 0x48 +/* 803713F4 2C000000 */ cmpwi r0, 0x0 +/* 803713F8 41820010 */ beq- lbl_80371408 +/* 803713FC 4BFFD701 */ bl func_8036eafc +/* 80371400 3BE00000 */ li r31, 0x0 +/* 80371404 48000010 */ b lbl_80371414 +lbl_80371408: +/* 80371408 907F0044 */ stw r3, 0x44(r31) +/* 8037140C 38000001 */ li r0, 0x1 +/* 80371410 90040000 */ stw r0, 0(r4) +lbl_80371414: +/* 80371414 887F0013 */ lbz r3, 0x13(r31) +/* 80371418 54600630 */ rlwinm r0, r3, 0, 0x18, 0x18 +/* 8037141C 7C1E0040 */ cmplw r30, r0 +/* 80371420 40820014 */ bne- lbl_80371434 +/* 80371424 38600000 */ li r3, 0x0 +/* 80371428 38800000 */ li r4, 0x0 +/* 8037142C 4BFFFAA9 */ bl func_80370ed4 +/* 80371430 48000024 */ b lbl_80371454 +lbl_80371434: +/* 80371434 5460066E */ rlwinm r0, r3, 0, 0x19, 0x17 +/* 80371438 981F0013 */ stb r0, 0x13(r31) +/* 8037143C 38600001 */ li r3, 0x1 +/* 80371440 38800000 */ li r4, 0x0 +/* 80371444 881F0013 */ lbz r0, 0x13(r31) +/* 80371448 7C00F378 */ or r0, r0, r30 +/* 8037144C 981F0013 */ stb r0, 0x13(r31) +/* 80371450 4BFFFA85 */ bl func_80370ed4 +lbl_80371454: +/* 80371454 80010024 */ lwz r0, 0x24(r1) +/* 80371458 83E1001C */ lwz r31, 0x1c(r1) +/* 8037145C 83C10018 */ lwz r30, 0x18(r1) +/* 80371460 38210020 */ addi r1, r1, 0x20 +/* 80371464 7C0803A6 */ mtlr r0 +/* 80371468 4E800020 */ blr +.size func_803713c8, . - func_803713c8 + + +.global func_8037146c +.type func_8037146c, @function +func_8037146c: +/* 8037146C 7C0802A6 */ mflr r0 +/* 80371470 3C808054 */ lis r4, lbl_8053eca0@ha +/* 80371474 90010004 */ stw r0, 4(r1) +/* 80371478 9421FFE0 */ stwu r1, -0x20(r1) +/* 8037147C 93E1001C */ stw r31, 0x1c(r1) +/* 80371480 3BE4ECA0 */ addi r31, r4, lbl_8053eca0@l +/* 80371484 93C10018 */ stw r30, 0x18(r1) +/* 80371488 3BC30000 */ addi r30, r3, 0x0 +/* 8037148C 4BFFD649 */ bl func_8036ead4 +/* 80371490 801F0048 */ lwz r0, 0x48(r31) +/* 80371494 389F0048 */ addi r4, r31, 0x48 +/* 80371498 2C000000 */ cmpwi r0, 0x0 +/* 8037149C 41820010 */ beq- lbl_803714ac +/* 803714A0 4BFFD65D */ bl func_8036eafc +/* 803714A4 38600000 */ li r3, 0x0 +/* 803714A8 48000014 */ b lbl_803714bc +lbl_803714ac: +/* 803714AC 907F0044 */ stw r3, 0x44(r31) +/* 803714B0 38000001 */ li r0, 0x1 +/* 803714B4 387F0014 */ addi r3, r31, 0x14 +/* 803714B8 90040000 */ stw r0, 0(r4) +lbl_803714bc: +/* 803714BC 57C0083C */ slwi r0, r30, 1 +/* 803714C0 7C630214 */ add r3, r3, r0 +/* 803714C4 A3E3001C */ lhz r31, 0x1c(r3) +/* 803714C8 38600000 */ li r3, 0x0 +/* 803714CC 38800014 */ li r4, 0x14 +/* 803714D0 4BFFFA05 */ bl func_80370ed4 +/* 803714D4 7FE3FB78 */ mr r3, r31 +/* 803714D8 80010024 */ lwz r0, 0x24(r1) +/* 803714DC 83E1001C */ lwz r31, 0x1c(r1) +/* 803714E0 83C10018 */ lwz r30, 0x18(r1) +/* 803714E4 38210020 */ addi r1, r1, 0x20 +/* 803714E8 7C0803A6 */ mtlr r0 +/* 803714EC 4E800020 */ blr +.size func_8037146c, . - func_8037146c + + +.global func_803714f0 +.type func_803714f0, @function +func_803714f0: +/* 803714F0 7C0802A6 */ mflr r0 +/* 803714F4 3CA08054 */ lis r5, lbl_8053eca0@ha +/* 803714F8 90010004 */ stw r0, 4(r1) +/* 803714FC 9421FFD8 */ stwu r1, -0x28(r1) +/* 80371500 93E10024 */ stw r31, 0x24(r1) +/* 80371504 3BE5ECA0 */ addi r31, r5, lbl_8053eca0@l +/* 80371508 93C10020 */ stw r30, 0x20(r1) +/* 8037150C 3BC40000 */ addi r30, r4, 0x0 +/* 80371510 93A1001C */ stw r29, 0x1c(r1) +/* 80371514 3BA30000 */ addi r29, r3, 0x0 +/* 80371518 4BFFD5BD */ bl func_8036ead4 +/* 8037151C 801F0048 */ lwz r0, 0x48(r31) +/* 80371520 389F0048 */ addi r4, r31, 0x48 +/* 80371524 2C000000 */ cmpwi r0, 0x0 +/* 80371528 41820010 */ beq- lbl_80371538 +/* 8037152C 4BFFD5D1 */ bl func_8036eafc +/* 80371530 38600000 */ li r3, 0x0 +/* 80371534 48000014 */ b lbl_80371548 +lbl_80371538: +/* 80371538 907F0044 */ stw r3, 0x44(r31) +/* 8037153C 38000001 */ li r0, 0x1 +/* 80371540 387F0014 */ addi r3, r31, 0x14 +/* 80371544 90040000 */ stw r0, 0(r4) +lbl_80371548: +/* 80371548 57A0083C */ slwi r0, r29, 1 +/* 8037154C 7C830214 */ add r4, r3, r0 +/* 80371550 A464001C */ lhzu r3, 0x1c(r4) +/* 80371554 57C0043E */ clrlwi r0, r30, 0x10 +/* 80371558 7C030040 */ cmplw r3, r0 +/* 8037155C 41820018 */ beq- lbl_80371574 +/* 80371560 B3C40000 */ sth r30, 0(r4) +/* 80371564 38600001 */ li r3, 0x1 +/* 80371568 38800014 */ li r4, 0x14 +/* 8037156C 4BFFF969 */ bl func_80370ed4 +/* 80371570 48000010 */ b lbl_80371580 +lbl_80371574: +/* 80371574 38600000 */ li r3, 0x0 +/* 80371578 38800014 */ li r4, 0x14 +/* 8037157C 4BFFF959 */ bl func_80370ed4 +lbl_80371580: +/* 80371580 8001002C */ lwz r0, 0x2c(r1) +/* 80371584 83E10024 */ lwz r31, 0x24(r1) +/* 80371588 83C10020 */ lwz r30, 0x20(r1) +/* 8037158C 83A1001C */ lwz r29, 0x1c(r1) +/* 80371590 38210028 */ addi r1, r1, 0x28 +/* 80371594 7C0803A6 */ mtlr r0 +/* 80371598 4E800020 */ blr +.size func_803714f0, . - func_803714f0 + diff --git a/asm/Dolphin/os/OSSync.s b/asm/Dolphin/os/OSSync.s new file mode 100644 index 0000000..f284b42 --- /dev/null +++ b/asm/Dolphin/os/OSSync.s @@ -0,0 +1,54 @@ +.include "macros.inc" + +.section .text + +.global func_8037159c +.type func_8037159c, @function +func_8037159c: +/* 8037159C 7D30FAA6 */ mfspr r9, 0x3f0 +/* 803715A0 612A0008 */ ori r10, r9, 8 +/* 803715A4 7D50FBA6 */ mtspr 0x3f0, r10 +/* 803715A8 4C00012C */ isync +/* 803715AC 7C0004AC */ sync 0 +/* 803715B0 7D30FBA6 */ mtspr 0x3f0, r9 +/* 803715B4 4C000064 */ rfi +.size func_8037159c, . - func_8037159c + + +.global func_803715b8 +.type func_803715b8, @function +func_803715b8: +/* 803715B8 60000000 */ nop +.size func_803715b8, . - func_803715b8 + + +.global func_803715bc +.type func_803715bc, @function +func_803715bc: +/* 803715BC 7C0802A6 */ mflr r0 +/* 803715C0 90010004 */ stw r0, 4(r1) +/* 803715C4 9421FFF0 */ stwu r1, -0x10(r1) +/* 803715C8 93E1000C */ stw r31, 0xc(r1) +/* 803715CC 3CA08000 */ lis r5, 0x8000 +/* 803715D0 3C808037 */ lis r4, func_8037159c@ha +/* 803715D4 3C608037 */ lis r3, func_803715b8@ha +/* 803715D8 3BE50C00 */ addi r31, r5, 0xc00 +/* 803715DC 380315B8 */ addi r0, r3, func_803715b8@l +/* 803715E0 3884159C */ addi r4, r4, func_8037159c@l +/* 803715E4 7FE3FB78 */ mr r3, r31 +/* 803715E8 7CA40050 */ subf r5, r4, r0 +/* 803715EC 4BC9CE31 */ bl func_8000e41c +/* 803715F0 7FE3FB78 */ mr r3, r31 +/* 803715F4 38800100 */ li r4, 0x100 +/* 803715F8 4BFFC381 */ bl func_8036d978 +/* 803715FC 7C0004AC */ sync 0 +/* 80371600 7FE3FB78 */ mr r3, r31 +/* 80371604 38800100 */ li r4, 0x100 +/* 80371608 4BFFC3D1 */ bl func_8036d9d8 +/* 8037160C 80010014 */ lwz r0, 0x14(r1) +/* 80371610 83E1000C */ lwz r31, 0xc(r1) +/* 80371614 38210010 */ addi r1, r1, 0x10 +/* 80371618 7C0803A6 */ mtlr r0 +/* 8037161C 4E800020 */ blr +.size func_803715bc, . - func_803715bc + diff --git a/asm/Dolphin/os/OSThread.s b/asm/Dolphin/os/OSThread.s new file mode 100644 index 0000000..2880583 --- /dev/null +++ b/asm/Dolphin/os/OSThread.s @@ -0,0 +1,1413 @@ +.include "macros.inc" + +.section .text + +.global func_80371620 +.type func_80371620, @function +func_80371620: +/* 80371620 7C0802A6 */ mflr r0 +/* 80371624 3C608054 */ lis r3, lbl_8053ecf8@ha +/* 80371628 90010004 */ stw r0, 4(r1) +/* 8037162C 38000002 */ li r0, 0x2 +/* 80371630 38800010 */ li r4, 0x10 +/* 80371634 9421FFE0 */ stwu r1, -0x20(r1) +/* 80371638 BF410008 */ stmw r26, 8(r1) +/* 8037163C 3B83ECF8 */ addi r28, r3, lbl_8053ecf8@l +/* 80371640 3BFC0410 */ addi r31, r28, 0x410 +/* 80371644 3BA00000 */ li r29, 0x0 +/* 80371648 387F02E8 */ addi r3, r31, 0x2e8 +/* 8037164C B01C06D8 */ sth r0, 0x6d8(r28) +/* 80371650 38000001 */ li r0, 0x1 +/* 80371654 B01C06DA */ sth r0, 0x6da(r28) +/* 80371658 3800FFFF */ li r0, -0x1 +/* 8037165C 909C06E4 */ stw r4, 0x6e4(r28) +/* 80371660 909C06E0 */ stw r4, 0x6e0(r28) +/* 80371664 93BC06DC */ stw r29, 0x6dc(r28) +/* 80371668 901C06E8 */ stw r0, 0x6e8(r28) +/* 8037166C 93BC0700 */ stw r29, 0x700(r28) +/* 80371670 480000D9 */ bl func_80371748 +/* 80371674 93BC0708 */ stw r29, 0x708(r28) +/* 80371678 3FC08000 */ lis r30, 0x8000 +/* 8037167C 387F0000 */ addi r3, r31, 0x0 +/* 80371680 93BC0704 */ stw r29, 0x704(r28) +/* 80371684 93FE00D8 */ stw r31, 0xd8(r30) +/* 80371688 4BFFCBD9 */ bl func_8036e260 +/* 8037168C 7FE3FB78 */ mr r3, r31 +/* 80371690 4BFFCA09 */ bl func_8036e098 +/* 80371694 3C60805E */ lis r3, 0x805e +/* 80371698 380309C8 */ addi r0, r3, 0x9c8 +/* 8037169C 3C60805D */ lis r3, 0x805d +/* 803716A0 901C0714 */ stw r0, 0x714(r28) +/* 803716A4 380309C4 */ addi r0, r3, 0x9c4 +/* 803716A8 387C0718 */ addi r3, r28, 0x718 +/* 803716AC 901C0718 */ stw r0, 0x718(r28) +/* 803716B0 3C80DEAE */ lis r4, 0xdeae +/* 803716B4 3B400000 */ li r26, 0x0 +/* 803716B8 80630000 */ lwz r3, 0(r3) +/* 803716BC 3884BABE */ addi r4, r4, -0x4542 +/* 803716C0 57401838 */ slwi r0, r26, 3 +/* 803716C4 90830000 */ stw r4, 0(r3) +/* 803716C8 7F7C0214 */ add r27, r28, r0 +/* 803716CC 93ADCA98 */ stw r29, lbl_805c68b8@sda21(0) +/* 803716D0 93FE00E4 */ stw r31, 0xe4(r30) +/* 803716D4 93ADCA9C */ stw r29, lbl_805c68bc@sda21(0) +lbl_803716d8: +/* 803716D8 7F63DB78 */ mr r3, r27 +/* 803716DC 4800006D */ bl func_80371748 +/* 803716E0 3B5A0001 */ addi r26, r26, 0x1 +/* 803716E4 2C1A001F */ cmpwi r26, 0x1f +/* 803716E8 3B7B0008 */ addi r27, r27, 0x8 +/* 803716EC 4081FFEC */ ble+ lbl_803716d8 +/* 803716F0 3FC08000 */ lis r30, 0x8000 +/* 803716F4 387E00DC */ addi r3, r30, 0xdc +/* 803716F8 48000051 */ bl func_80371748 +/* 803716FC 389E00DC */ addi r4, r30, 0xdc +/* 80371700 84640004 */ lwzu r3, 4(r4) +/* 80371704 28030000 */ cmplwi r3, 0 +/* 80371708 4082000C */ bne- lbl_80371714 +/* 8037170C 93FE00DC */ stw r31, 0xdc(r30) +/* 80371710 48000008 */ b lbl_80371718 +lbl_80371714: +/* 80371714 93E302FC */ stw r31, 0x2fc(r3) +lbl_80371718: +/* 80371718 907F0300 */ stw r3, 0x300(r31) +/* 8037171C 3BC00000 */ li r30, 0x0 +/* 80371720 387C0720 */ addi r3, r28, 0x720 +/* 80371724 93DF02FC */ stw r30, 0x2fc(r31) +/* 80371728 93E40000 */ stw r31, 0(r4) +/* 8037172C 4BFFCB35 */ bl func_8036e260 +/* 80371730 93CDCAA0 */ stw r30, lbl_805c68c0@sda21(0) +/* 80371734 BB410008 */ lmw r26, 8(r1) +/* 80371738 80010024 */ lwz r0, 0x24(r1) +/* 8037173C 38210020 */ addi r1, r1, 0x20 +/* 80371740 7C0803A6 */ mtlr r0 +/* 80371744 4E800020 */ blr +.size func_80371620, . - func_80371620 + + +.global func_80371748 +.type func_80371748, @function +func_80371748: +/* 80371748 38000000 */ li r0, 0x0 +/* 8037174C 90030004 */ stw r0, 4(r3) +/* 80371750 90030000 */ stw r0, 0(r3) +/* 80371754 4E800020 */ blr +.size func_80371748, . - func_80371748 + + +.global func_80371758 +.type func_80371758, @function +func_80371758: +/* 80371758 3C608000 */ lis r3, 0x8000 +/* 8037175C 806300E4 */ lwz r3, 0xe4(r3) +/* 80371760 4E800020 */ blr +.size func_80371758, . - func_80371758 + + +.global func_80371764 +.type func_80371764, @function +func_80371764: +/* 80371764 800302CC */ lwz r0, 0x2cc(r3) +/* 80371768 2C000000 */ cmpwi r0, 0x0 +/* 8037176C 4081000C */ ble- lbl_80371778 +/* 80371770 38600001 */ li r3, 0x1 +/* 80371774 4E800020 */ blr +lbl_80371778: +/* 80371778 38600000 */ li r3, 0x0 +/* 8037177C 4E800020 */ blr +.size func_80371764, . - func_80371764 + + +.global func_80371780 +.type func_80371780, @function +func_80371780: +/* 80371780 A06302C8 */ lhz r3, 0x2c8(r3) +/* 80371784 38000001 */ li r0, 0x1 +/* 80371788 28030008 */ cmplwi r3, 8 +/* 8037178C 41820010 */ beq- lbl_8037179c +/* 80371790 28030000 */ cmplwi r3, 0 +/* 80371794 41820008 */ beq- lbl_8037179c +/* 80371798 38000000 */ li r0, 0x0 +lbl_8037179c: +/* 8037179C 2C000000 */ cmpwi r0, 0x0 +/* 803717A0 4182000C */ beq- lbl_803717ac +/* 803717A4 38600001 */ li r3, 0x1 +/* 803717A8 4E800020 */ blr +lbl_803717ac: +/* 803717AC 38600000 */ li r3, 0x0 +/* 803717B0 4E800020 */ blr +.size func_80371780, . - func_80371780 + + +.global func_803717b4 +.type func_803717b4, @function +func_803717b4: +/* 803717B4 7C0802A6 */ mflr r0 +/* 803717B8 90010004 */ stw r0, 4(r1) +/* 803717BC 9421FFF0 */ stwu r1, -0x10(r1) +/* 803717C0 93E1000C */ stw r31, 0xc(r1) +/* 803717C4 4BFFD311 */ bl func_8036ead4 +/* 803717C8 808DCAA0 */ lwz r4, lbl_805c68c0@sda21(0) +/* 803717CC 38040001 */ addi r0, r4, 0x1 +/* 803717D0 900DCAA0 */ stw r0, lbl_805c68c0@sda21(0) +/* 803717D4 7C9F2378 */ mr r31, r4 +/* 803717D8 4BFFD325 */ bl func_8036eafc +/* 803717DC 7FE3FB78 */ mr r3, r31 +/* 803717E0 80010014 */ lwz r0, 0x14(r1) +/* 803717E4 83E1000C */ lwz r31, 0xc(r1) +/* 803717E8 38210010 */ addi r1, r1, 0x10 +/* 803717EC 7C0803A6 */ mtlr r0 +/* 803717F0 4E800020 */ blr +.size func_803717b4, . - func_803717b4 + + +.global func_803717f4 +.type func_803717f4, @function +func_803717f4: +/* 803717F4 7C0802A6 */ mflr r0 +/* 803717F8 90010004 */ stw r0, 4(r1) +/* 803717FC 9421FFF0 */ stwu r1, -0x10(r1) +/* 80371800 93E1000C */ stw r31, 0xc(r1) +/* 80371804 4BFFD2D1 */ bl func_8036ead4 +/* 80371808 808DCAA0 */ lwz r4, lbl_805c68c0@sda21(0) +/* 8037180C 3804FFFF */ addi r0, r4, -0x1 +/* 80371810 900DCAA0 */ stw r0, lbl_805c68c0@sda21(0) +/* 80371814 7C9F2378 */ mr r31, r4 +/* 80371818 4BFFD2E5 */ bl func_8036eafc +/* 8037181C 7FE3FB78 */ mr r3, r31 +/* 80371820 80010014 */ lwz r0, 0x14(r1) +/* 80371824 83E1000C */ lwz r31, 0xc(r1) +/* 80371828 38210010 */ addi r1, r1, 0x10 +/* 8037182C 7C0803A6 */ mtlr r0 +/* 80371830 4E800020 */ blr +.size func_803717f4, . - func_803717f4 + + +.global func_80371834 +.type func_80371834, @function +func_80371834: +/* 80371834 808302E0 */ lwz r4, 0x2e0(r3) +/* 80371838 80A302DC */ lwz r5, 0x2dc(r3) +/* 8037183C 28040000 */ cmplwi r4, 0 +/* 80371840 80C302E4 */ lwz r6, 0x2e4(r3) +/* 80371844 4082000C */ bne- lbl_80371850 +/* 80371848 90C50004 */ stw r6, 4(r5) +/* 8037184C 48000008 */ b lbl_80371854 +lbl_80371850: +/* 80371850 90C402E4 */ stw r6, 0x2e4(r4) +lbl_80371854: +/* 80371854 28060000 */ cmplwi r6, 0 +/* 80371858 4082000C */ bne- lbl_80371864 +/* 8037185C 90850000 */ stw r4, 0(r5) +/* 80371860 48000008 */ b lbl_80371868 +lbl_80371864: +/* 80371864 908602E0 */ stw r4, 0x2e0(r6) +lbl_80371868: +/* 80371868 80050000 */ lwz r0, 0(r5) +/* 8037186C 28000000 */ cmplwi r0, 0 +/* 80371870 40820020 */ bne- lbl_80371890 +/* 80371874 800302D0 */ lwz r0, 0x2d0(r3) +/* 80371878 38800001 */ li r4, 0x1 +/* 8037187C 80ADCA98 */ lwz r5, lbl_805c68b8@sda21(0) +/* 80371880 2000001F */ subfic r0, r0, 0x1f +/* 80371884 7C800030 */ slw r0, r4, r0 +/* 80371888 7CA00078 */ andc r0, r5, r0 +/* 8037188C 900DCA98 */ stw r0, lbl_805c68b8@sda21(0) +lbl_80371890: +/* 80371890 38000000 */ li r0, 0x0 +/* 80371894 900302DC */ stw r0, 0x2dc(r3) +/* 80371898 4E800020 */ blr +.size func_80371834, . - func_80371834 + + +.global func_8037189c +.type func_8037189c, @function +func_8037189c: +/* 8037189C 808302D4 */ lwz r4, 0x2d4(r3) +/* 803718A0 80A302F4 */ lwz r5, 0x2f4(r3) +/* 803718A4 48000024 */ b lbl_803718c8 +lbl_803718a8: +/* 803718A8 80650000 */ lwz r3, 0(r5) +/* 803718AC 28030000 */ cmplwi r3, 0 +/* 803718B0 41820014 */ beq- lbl_803718c4 +/* 803718B4 800302D0 */ lwz r0, 0x2d0(r3) +/* 803718B8 7C002000 */ cmpw r0, r4 +/* 803718BC 40800008 */ bge- lbl_803718c4 +/* 803718C0 7C040378 */ mr r4, r0 +lbl_803718c4: +/* 803718C4 80A50010 */ lwz r5, 0x10(r5) +lbl_803718c8: +/* 803718C8 28050000 */ cmplwi r5, 0 +/* 803718CC 4082FFDC */ bne+ lbl_803718a8 +/* 803718D0 7C832378 */ mr r3, r4 +/* 803718D4 4E800020 */ blr +.size func_8037189c, . - func_8037189c + + +.global func_803718d8 +.type func_803718d8, @function +func_803718d8: +/* 803718D8 7C0802A6 */ mflr r0 +/* 803718DC 90010004 */ stw r0, 4(r1) +/* 803718E0 9421FFE8 */ stwu r1, -0x18(r1) +/* 803718E4 93E10014 */ stw r31, 0x14(r1) +/* 803718E8 7C7F1B78 */ mr r31, r3 +/* 803718EC 93C10010 */ stw r30, 0x10(r1) +/* 803718F0 3BC40000 */ addi r30, r4, 0x0 +/* 803718F4 A00302C8 */ lhz r0, 0x2c8(r3) +/* 803718F8 2C000003 */ cmpwi r0, 0x3 +/* 803718FC 41820180 */ beq- lbl_80371a7c +/* 80371900 40800014 */ bge- lbl_80371914 +/* 80371904 2C000001 */ cmpwi r0, 0x1 +/* 80371908 41820018 */ beq- lbl_80371920 +/* 8037190C 40800164 */ bge- lbl_80371a70 +/* 80371910 4800016C */ b lbl_80371a7c +lbl_80371914: +/* 80371914 2C000005 */ cmpwi r0, 0x5 +/* 80371918 40800164 */ bge- lbl_80371a7c +/* 8037191C 4800007C */ b lbl_80371998 +lbl_80371920: +/* 80371920 7FE3FB78 */ mr r3, r31 +/* 80371924 4BFFFF11 */ bl func_80371834 +/* 80371928 93DF02D0 */ stw r30, 0x2d0(r31) +/* 8037192C 3C608054 */ lis r3, lbl_8053ecf8@ha +/* 80371930 3803ECF8 */ addi r0, r3, lbl_8053ecf8@l +/* 80371934 807F02D0 */ lwz r3, 0x2d0(r31) +/* 80371938 54631838 */ slwi r3, r3, 3 +/* 8037193C 7C001A14 */ add r0, r0, r3 +/* 80371940 901F02DC */ stw r0, 0x2dc(r31) +/* 80371944 809F02DC */ lwz r4, 0x2dc(r31) +/* 80371948 80640004 */ lwz r3, 4(r4) +/* 8037194C 28030000 */ cmplwi r3, 0 +/* 80371950 4082000C */ bne- lbl_8037195c +/* 80371954 93E40000 */ stw r31, 0(r4) +/* 80371958 48000008 */ b lbl_80371960 +lbl_8037195c: +/* 8037195C 93E302E0 */ stw r31, 0x2e0(r3) +lbl_80371960: +/* 80371960 907F02E4 */ stw r3, 0x2e4(r31) +/* 80371964 38000000 */ li r0, 0x0 +/* 80371968 38600001 */ li r3, 0x1 +/* 8037196C 901F02E0 */ stw r0, 0x2e0(r31) +/* 80371970 809F02DC */ lwz r4, 0x2dc(r31) +/* 80371974 93E40004 */ stw r31, 4(r4) +/* 80371978 801F02D0 */ lwz r0, 0x2d0(r31) +/* 8037197C 808DCA98 */ lwz r4, lbl_805c68b8@sda21(0) +/* 80371980 2000001F */ subfic r0, r0, 0x1f +/* 80371984 7C600030 */ slw r0, r3, r0 +/* 80371988 7C800378 */ or r0, r4, r0 +/* 8037198C 900DCA98 */ stw r0, lbl_805c68b8@sda21(0) +/* 80371990 906DCA9C */ stw r3, lbl_805c68bc@sda21(0) +/* 80371994 480000E8 */ b lbl_80371a7c +lbl_80371998: +/* 80371998 809F02E0 */ lwz r4, 0x2e0(r31) +/* 8037199C 80BF02E4 */ lwz r5, 0x2e4(r31) +/* 803719A0 28040000 */ cmplwi r4, 0 +/* 803719A4 40820010 */ bne- lbl_803719b4 +/* 803719A8 807F02DC */ lwz r3, 0x2dc(r31) +/* 803719AC 90A30004 */ stw r5, 4(r3) +/* 803719B0 48000008 */ b lbl_803719b8 +lbl_803719b4: +/* 803719B4 90A402E4 */ stw r5, 0x2e4(r4) +lbl_803719b8: +/* 803719B8 28050000 */ cmplwi r5, 0 +/* 803719BC 40820010 */ bne- lbl_803719cc +/* 803719C0 807F02DC */ lwz r3, 0x2dc(r31) +/* 803719C4 90830000 */ stw r4, 0(r3) +/* 803719C8 48000008 */ b lbl_803719d0 +lbl_803719cc: +/* 803719CC 908502E0 */ stw r4, 0x2e0(r5) +lbl_803719d0: +/* 803719D0 93DF02D0 */ stw r30, 0x2d0(r31) +/* 803719D4 809F02DC */ lwz r4, 0x2dc(r31) +/* 803719D8 80A40000 */ lwz r5, 0(r4) +/* 803719DC 48000008 */ b lbl_803719e4 +lbl_803719e0: +/* 803719E0 80A502E0 */ lwz r5, 0x2e0(r5) +lbl_803719e4: +/* 803719E4 28050000 */ cmplwi r5, 0 +/* 803719E8 41820014 */ beq- lbl_803719fc +/* 803719EC 806502D0 */ lwz r3, 0x2d0(r5) +/* 803719F0 801F02D0 */ lwz r0, 0x2d0(r31) +/* 803719F4 7C030000 */ cmpw r3, r0 +/* 803719F8 4081FFE8 */ ble+ lbl_803719e0 +lbl_803719fc: +/* 803719FC 28050000 */ cmplwi r5, 0 +/* 80371A00 40820034 */ bne- lbl_80371a34 +/* 80371A04 80640004 */ lwz r3, 4(r4) +/* 80371A08 28030000 */ cmplwi r3, 0 +/* 80371A0C 4082000C */ bne- lbl_80371a18 +/* 80371A10 93E40000 */ stw r31, 0(r4) +/* 80371A14 48000008 */ b lbl_80371a1c +lbl_80371a18: +/* 80371A18 93E302E0 */ stw r31, 0x2e0(r3) +lbl_80371a1c: +/* 80371A1C 907F02E4 */ stw r3, 0x2e4(r31) +/* 80371A20 38000000 */ li r0, 0x0 +/* 80371A24 901F02E0 */ stw r0, 0x2e0(r31) +/* 80371A28 807F02DC */ lwz r3, 0x2dc(r31) +/* 80371A2C 93E30004 */ stw r31, 4(r3) +/* 80371A30 4800002C */ b lbl_80371a5c +lbl_80371a34: +/* 80371A34 90BF02E0 */ stw r5, 0x2e0(r31) +/* 80371A38 806502E4 */ lwz r3, 0x2e4(r5) +/* 80371A3C 93E502E4 */ stw r31, 0x2e4(r5) +/* 80371A40 28030000 */ cmplwi r3, 0 +/* 80371A44 907F02E4 */ stw r3, 0x2e4(r31) +/* 80371A48 40820010 */ bne- lbl_80371a58 +/* 80371A4C 807F02DC */ lwz r3, 0x2dc(r31) +/* 80371A50 93E30000 */ stw r31, 0(r3) +/* 80371A54 48000008 */ b lbl_80371a5c +lbl_80371a58: +/* 80371A58 93E302E0 */ stw r31, 0x2e0(r3) +lbl_80371a5c: +/* 80371A5C 807F02F0 */ lwz r3, 0x2f0(r31) +/* 80371A60 28030000 */ cmplwi r3, 0 +/* 80371A64 41820018 */ beq- lbl_80371a7c +/* 80371A68 80630008 */ lwz r3, 8(r3) +/* 80371A6C 48000014 */ b lbl_80371a80 +lbl_80371a70: +/* 80371A70 38000001 */ li r0, 0x1 +/* 80371A74 900DCA9C */ stw r0, lbl_805c68bc@sda21(0) +/* 80371A78 93DF02D0 */ stw r30, 0x2d0(r31) +lbl_80371a7c: +/* 80371A7C 38600000 */ li r3, 0x0 +lbl_80371a80: +/* 80371A80 8001001C */ lwz r0, 0x1c(r1) +/* 80371A84 83E10014 */ lwz r31, 0x14(r1) +/* 80371A88 83C10010 */ lwz r30, 0x10(r1) +/* 80371A8C 38210018 */ addi r1, r1, 0x18 +/* 80371A90 7C0803A6 */ mtlr r0 +/* 80371A94 4E800020 */ blr +.size func_803718d8, . - func_803718d8 + + +.global func_80371a98 +.type func_80371a98, @function +func_80371a98: +/* 80371A98 7C0802A6 */ mflr r0 +/* 80371A9C 90010004 */ stw r0, 4(r1) +/* 80371AA0 9421FFE8 */ stwu r1, -0x18(r1) +/* 80371AA4 93E10014 */ stw r31, 0x14(r1) +/* 80371AA8 7C9F2378 */ mr r31, r4 +lbl_80371aac: +/* 80371AAC 800302CC */ lwz r0, 0x2cc(r3) +/* 80371AB0 2C000000 */ cmpwi r0, 0x0 +/* 80371AB4 41810020 */ bgt- lbl_80371ad4 +/* 80371AB8 800302D0 */ lwz r0, 0x2d0(r3) +/* 80371ABC 7C00F800 */ cmpw r0, r31 +/* 80371AC0 40810014 */ ble- lbl_80371ad4 +/* 80371AC4 7FE4FB78 */ mr r4, r31 +/* 80371AC8 4BFFFE11 */ bl func_803718d8 +/* 80371ACC 28030000 */ cmplwi r3, 0 +/* 80371AD0 4082FFDC */ bne+ lbl_80371aac +lbl_80371ad4: +/* 80371AD4 8001001C */ lwz r0, 0x1c(r1) +/* 80371AD8 83E10014 */ lwz r31, 0x14(r1) +/* 80371ADC 38210018 */ addi r1, r1, 0x18 +/* 80371AE0 7C0803A6 */ mtlr r0 +/* 80371AE4 4E800020 */ blr +.size func_80371a98, . - func_80371a98 + + +.global func_80371ae8 +.type func_80371ae8, @function +func_80371ae8: +/* 80371AE8 7C0802A6 */ mflr r0 +/* 80371AEC 3C808054 */ lis r4, lbl_8053ecf8@ha +/* 80371AF0 90010004 */ stw r0, 4(r1) +/* 80371AF4 9421FFE8 */ stwu r1, -0x18(r1) +/* 80371AF8 93E10014 */ stw r31, 0x14(r1) +/* 80371AFC 3BE4ECF8 */ addi r31, r4, lbl_8053ecf8@l +/* 80371B00 93C10010 */ stw r30, 0x10(r1) +/* 80371B04 3BC30000 */ addi r30, r3, 0x0 +/* 80371B08 800DCAA0 */ lwz r0, lbl_805c68c0@sda21(0) +/* 80371B0C 2C000000 */ cmpwi r0, 0x0 +/* 80371B10 4081000C */ ble- lbl_80371b1c +/* 80371B14 38600000 */ li r3, 0x0 +/* 80371B18 480001B8 */ b lbl_80371cd0 +lbl_80371b1c: +/* 80371B1C 4BFFC5D9 */ bl func_8036e0f4 +/* 80371B20 3C808000 */ lis r4, 0x8000 +/* 80371B24 80C400E4 */ lwz r6, 0xe4(r4) +/* 80371B28 7C033040 */ cmplw r3, r6 +/* 80371B2C 38660000 */ addi r3, r6, 0x0 +/* 80371B30 4182000C */ beq- lbl_80371b3c +/* 80371B34 38600000 */ li r3, 0x0 +/* 80371B38 48000198 */ b lbl_80371cd0 +lbl_80371b3c: +/* 80371B3C 28060000 */ cmplwi r6, 0 +/* 80371B40 418200BC */ beq- lbl_80371bfc +/* 80371B44 A00602C8 */ lhz r0, 0x2c8(r6) +/* 80371B48 28000002 */ cmplwi r0, 2 +/* 80371B4C 40820090 */ bne- lbl_80371bdc +/* 80371B50 2C1E0000 */ cmpwi r30, 0x0 +/* 80371B54 40820020 */ bne- lbl_80371b74 +/* 80371B58 808DCA98 */ lwz r4, lbl_805c68b8@sda21(0) +/* 80371B5C 800602D0 */ lwz r0, 0x2d0(r6) +/* 80371B60 7C840034 */ cntlzw r4, r4 +/* 80371B64 7C002000 */ cmpw r0, r4 +/* 80371B68 4181000C */ bgt- lbl_80371b74 +/* 80371B6C 38600000 */ li r3, 0x0 +/* 80371B70 48000160 */ b lbl_80371cd0 +lbl_80371b74: +/* 80371B74 38000001 */ li r0, 0x1 +/* 80371B78 B00602C8 */ sth r0, 0x2c8(r6) +/* 80371B7C 800602D0 */ lwz r0, 0x2d0(r6) +/* 80371B80 54001838 */ slwi r0, r0, 3 +/* 80371B84 7C1F0214 */ add r0, r31, r0 +/* 80371B88 900602DC */ stw r0, 0x2dc(r6) +/* 80371B8C 80A602DC */ lwz r5, 0x2dc(r6) +/* 80371B90 80850004 */ lwz r4, 4(r5) +/* 80371B94 28040000 */ cmplwi r4, 0 +/* 80371B98 4082000C */ bne- lbl_80371ba4 +/* 80371B9C 90C50000 */ stw r6, 0(r5) +/* 80371BA0 48000008 */ b lbl_80371ba8 +lbl_80371ba4: +/* 80371BA4 90C402E0 */ stw r6, 0x2e0(r4) +lbl_80371ba8: +/* 80371BA8 908602E4 */ stw r4, 0x2e4(r6) +/* 80371BAC 38000000 */ li r0, 0x0 +/* 80371BB0 38800001 */ li r4, 0x1 +/* 80371BB4 900602E0 */ stw r0, 0x2e0(r6) +/* 80371BB8 80A602DC */ lwz r5, 0x2dc(r6) +/* 80371BBC 90C50004 */ stw r6, 4(r5) +/* 80371BC0 800602D0 */ lwz r0, 0x2d0(r6) +/* 80371BC4 80ADCA98 */ lwz r5, lbl_805c68b8@sda21(0) +/* 80371BC8 2000001F */ subfic r0, r0, 0x1f +/* 80371BCC 7C800030 */ slw r0, r4, r0 +/* 80371BD0 7CA00378 */ or r0, r5, r0 +/* 80371BD4 900DCA98 */ stw r0, lbl_805c68b8@sda21(0) +/* 80371BD8 908DCA9C */ stw r4, lbl_805c68bc@sda21(0) +lbl_80371bdc: +/* 80371BDC A00601A2 */ lhz r0, 0x1a2(r6) +/* 80371BE0 540007BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e +/* 80371BE4 40820018 */ bne- lbl_80371bfc +/* 80371BE8 4BFFC519 */ bl func_8036e100 +/* 80371BEC 28030000 */ cmplwi r3, 0 +/* 80371BF0 4182000C */ beq- lbl_80371bfc +/* 80371BF4 38600000 */ li r3, 0x0 +/* 80371BF8 480000D8 */ b lbl_80371cd0 +lbl_80371bfc: +/* 80371BFC 800DCA98 */ lwz r0, lbl_805c68b8@sda21(0) +/* 80371C00 38800000 */ li r4, 0x0 +/* 80371C04 3C608000 */ lis r3, 0x8000 +/* 80371C08 28000000 */ cmplwi r0, 0 +/* 80371C0C 908300E4 */ stw r4, 0xe4(r3) +/* 80371C10 40820034 */ bne- lbl_80371c44 +/* 80371C14 387F0720 */ addi r3, r31, 0x720 +/* 80371C18 4BFFC481 */ bl func_8036e098 +lbl_80371c1c: +/* 80371C1C 4BFFCECD */ bl func_8036eae8 +lbl_80371c20: +/* 80371C20 800DCA98 */ lwz r0, lbl_805c68b8@sda21(0) +/* 80371C24 28000000 */ cmplwi r0, 0 +/* 80371C28 4182FFF8 */ beq+ lbl_80371c20 +/* 80371C2C 4BFFCEA9 */ bl func_8036ead4 +/* 80371C30 800DCA98 */ lwz r0, lbl_805c68b8@sda21(0) +/* 80371C34 28000000 */ cmplwi r0, 0 +/* 80371C38 4182FFE4 */ beq+ lbl_80371c1c +/* 80371C3C 387F0720 */ addi r3, r31, 0x720 +/* 80371C40 4BFFC621 */ bl func_8036e260 +lbl_80371c44: +/* 80371C44 38600000 */ li r3, 0x0 +/* 80371C48 906DCA9C */ stw r3, lbl_805c68bc@sda21(0) +/* 80371C4C 800DCA98 */ lwz r0, lbl_805c68b8@sda21(0) +/* 80371C50 7C070034 */ cntlzw r7, r0 +/* 80371C54 54E01838 */ slwi r0, r7, 3 +/* 80371C58 7C9F0214 */ add r4, r31, r0 +/* 80371C5C 80A40000 */ lwz r5, 0(r4) +/* 80371C60 80C502E0 */ lwz r6, 0x2e0(r5) +/* 80371C64 3BE50000 */ addi r31, r5, 0x0 +/* 80371C68 28060000 */ cmplwi r6, 0 +/* 80371C6C 4082000C */ bne- lbl_80371c78 +/* 80371C70 90640004 */ stw r3, 4(r4) +/* 80371C74 48000008 */ b lbl_80371c7c +lbl_80371c78: +/* 80371C78 906602E4 */ stw r3, 0x2e4(r6) +lbl_80371c7c: +/* 80371C7C 90C40000 */ stw r6, 0(r4) +/* 80371C80 80040000 */ lwz r0, 0(r4) +/* 80371C84 28000000 */ cmplwi r0, 0 +/* 80371C88 4082001C */ bne- lbl_80371ca4 +/* 80371C8C 2007001F */ subfic r0, r7, 0x1f +/* 80371C90 808DCA98 */ lwz r4, lbl_805c68b8@sda21(0) +/* 80371C94 38600001 */ li r3, 0x1 +/* 80371C98 7C600030 */ slw r0, r3, r0 +/* 80371C9C 7C800078 */ andc r0, r4, r0 +/* 80371CA0 900DCA98 */ stw r0, lbl_805c68b8@sda21(0) +lbl_80371ca4: +/* 80371CA4 38000000 */ li r0, 0x0 +/* 80371CA8 901F02DC */ stw r0, 0x2dc(r31) +/* 80371CAC 38000002 */ li r0, 0x2 +/* 80371CB0 3C808000 */ lis r4, 0x8000 +/* 80371CB4 B01F02C8 */ sth r0, 0x2c8(r31) +/* 80371CB8 7FE3FB78 */ mr r3, r31 +/* 80371CBC 93E400E4 */ stw r31, 0xe4(r4) +/* 80371CC0 4BFFC3D9 */ bl func_8036e098 +/* 80371CC4 7FE3FB78 */ mr r3, r31 +/* 80371CC8 4BFFC4B9 */ bl func_8036e180 +/* 80371CCC 7FE3FB78 */ mr r3, r31 +lbl_80371cd0: +/* 80371CD0 8001001C */ lwz r0, 0x1c(r1) +/* 80371CD4 83E10014 */ lwz r31, 0x14(r1) +/* 80371CD8 83C10010 */ lwz r30, 0x10(r1) +/* 80371CDC 38210018 */ addi r1, r1, 0x18 +/* 80371CE0 7C0803A6 */ mtlr r0 +/* 80371CE4 4E800020 */ blr +.size func_80371ae8, . - func_80371ae8 + + +.global func_80371ce8 +.type func_80371ce8, @function +func_80371ce8: +/* 80371CE8 7C0802A6 */ mflr r0 +/* 80371CEC 90010004 */ stw r0, 4(r1) +/* 80371CF0 9421FFF8 */ stwu r1, -8(r1) +/* 80371CF4 800DCA9C */ lwz r0, lbl_805c68bc@sda21(0) +/* 80371CF8 2C000000 */ cmpwi r0, 0x0 +/* 80371CFC 4182000C */ beq- lbl_80371d08 +/* 80371D00 38600000 */ li r3, 0x0 +/* 80371D04 4BFFFDE5 */ bl func_80371ae8 +lbl_80371d08: +/* 80371D08 8001000C */ lwz r0, 0xc(r1) +/* 80371D0C 38210008 */ addi r1, r1, 0x8 +/* 80371D10 7C0803A6 */ mtlr r0 +/* 80371D14 4E800020 */ blr +.size func_80371ce8, . - func_80371ce8 + + +.global func_80371d18 +.type func_80371d18, @function +func_80371d18: +/* 80371D18 7C0802A6 */ mflr r0 +/* 80371D1C 90010004 */ stw r0, 4(r1) +/* 80371D20 9421FFF0 */ stwu r1, -0x10(r1) +/* 80371D24 93E1000C */ stw r31, 0xc(r1) +/* 80371D28 4BFFCDAD */ bl func_8036ead4 +/* 80371D2C 3BE30000 */ addi r31, r3, 0x0 +/* 80371D30 38600001 */ li r3, 0x1 +/* 80371D34 4BFFFDB5 */ bl func_80371ae8 +/* 80371D38 7FE3FB78 */ mr r3, r31 +/* 80371D3C 4BFFCDC1 */ bl func_8036eafc +/* 80371D40 80010014 */ lwz r0, 0x14(r1) +/* 80371D44 83E1000C */ lwz r31, 0xc(r1) +/* 80371D48 38210010 */ addi r1, r1, 0x10 +/* 80371D4C 7C0803A6 */ mtlr r0 +/* 80371D50 4E800020 */ blr +.size func_80371d18, . - func_80371d18 + + +.global func_80371d54 +.type func_80371d54, @function +func_80371d54: +/* 80371D54 7C0802A6 */ mflr r0 +/* 80371D58 2C080000 */ cmpwi r8, 0x0 +/* 80371D5C 90010004 */ stw r0, 4(r1) +/* 80371D60 9421FFC8 */ stwu r1, -0x38(r1) +/* 80371D64 93E10034 */ stw r31, 0x34(r1) +/* 80371D68 3BE30000 */ addi r31, r3, 0x0 +/* 80371D6C 93C10030 */ stw r30, 0x30(r1) +/* 80371D70 3BC70000 */ addi r30, r7, 0x0 +/* 80371D74 93A1002C */ stw r29, 0x2c(r1) +/* 80371D78 3BA60000 */ addi r29, r6, 0x0 +/* 80371D7C 93810028 */ stw r28, 0x28(r1) +/* 80371D80 3B850000 */ addi r28, r5, 0x0 +/* 80371D84 4180000C */ blt- lbl_80371d90 +/* 80371D88 2C08001F */ cmpwi r8, 0x1f +/* 80371D8C 4081000C */ ble- lbl_80371d98 +lbl_80371d90: +/* 80371D90 38600000 */ li r3, 0x0 +/* 80371D94 480000C0 */ b lbl_80371e54 +lbl_80371d98: +/* 80371D98 38E00001 */ li r7, 0x1 +/* 80371D9C B0FF02C8 */ sth r7, 0x2c8(r31) +/* 80371DA0 552007FE */ clrlwi r0, r9, 0x1f +/* 80371DA4 57A90038 */ rlwinm r9, r29, 0, 0, 0x1c +/* 80371DA8 B01F02CA */ sth r0, 0x2ca(r31) +/* 80371DAC 38C0FFFF */ li r6, -0x1 +/* 80371DB0 38000000 */ li r0, 0x0 +/* 80371DB4 911F02D4 */ stw r8, 0x2d4(r31) +/* 80371DB8 387F0000 */ addi r3, r31, 0x0 +/* 80371DBC 38A9FFF8 */ addi r5, r9, -0x8 +/* 80371DC0 911F02D0 */ stw r8, 0x2d0(r31) +/* 80371DC4 90FF02CC */ stw r7, 0x2cc(r31) +/* 80371DC8 90DF02D8 */ stw r6, 0x2d8(r31) +/* 80371DCC 901F02F0 */ stw r0, 0x2f0(r31) +/* 80371DD0 901F02EC */ stw r0, 0x2ec(r31) +/* 80371DD4 901F02E8 */ stw r0, 0x2e8(r31) +/* 80371DD8 901F02F8 */ stw r0, 0x2f8(r31) +/* 80371DDC 901F02F4 */ stw r0, 0x2f4(r31) +/* 80371DE0 9009FFF8 */ stw r0, -8(r9) +/* 80371DE4 9009FFFC */ stw r0, -4(r9) +/* 80371DE8 4BFFC49D */ bl func_8036e284 +/* 80371DEC 3C608037 */ lis r3, func_80371e74@ha +/* 80371DF0 38031E74 */ addi r0, r3, func_80371e74@l +/* 80371DF4 901F0084 */ stw r0, 0x84(r31) +/* 80371DF8 3C60DEAE */ lis r3, 0xdeae +/* 80371DFC 7C9EE850 */ subf r4, r30, r29 +/* 80371E00 939F000C */ stw r28, 0xc(r31) +/* 80371E04 3803BABE */ addi r0, r3, -0x4542 +/* 80371E08 93BF0304 */ stw r29, 0x304(r31) +/* 80371E0C 909F0308 */ stw r4, 0x308(r31) +/* 80371E10 807F0308 */ lwz r3, 0x308(r31) +/* 80371E14 90030000 */ stw r0, 0(r3) +/* 80371E18 4BFFCCBD */ bl func_8036ead4 +/* 80371E1C 3C808000 */ lis r4, 0x8000 +/* 80371E20 38A400DC */ addi r5, r4, 0xdc +/* 80371E24 84C50004 */ lwzu r6, 4(r5) +/* 80371E28 28060000 */ cmplwi r6, 0 +/* 80371E2C 4082000C */ bne- lbl_80371e38 +/* 80371E30 93E400DC */ stw r31, 0xdc(r4) +/* 80371E34 48000008 */ b lbl_80371e3c +lbl_80371e38: +/* 80371E38 93E602FC */ stw r31, 0x2fc(r6) +lbl_80371e3c: +/* 80371E3C 90DF0300 */ stw r6, 0x300(r31) +/* 80371E40 38000000 */ li r0, 0x0 +/* 80371E44 901F02FC */ stw r0, 0x2fc(r31) +/* 80371E48 93E50000 */ stw r31, 0(r5) +/* 80371E4C 4BFFCCB1 */ bl func_8036eafc +/* 80371E50 38600001 */ li r3, 0x1 +lbl_80371e54: +/* 80371E54 8001003C */ lwz r0, 0x3c(r1) +/* 80371E58 83E10034 */ lwz r31, 0x34(r1) +/* 80371E5C 83C10030 */ lwz r30, 0x30(r1) +/* 80371E60 83A1002C */ lwz r29, 0x2c(r1) +/* 80371E64 83810028 */ lwz r28, 0x28(r1) +/* 80371E68 38210038 */ addi r1, r1, 0x38 +/* 80371E6C 7C0803A6 */ mtlr r0 +/* 80371E70 4E800020 */ blr +.size func_80371d54, . - func_80371d54 + + +.global func_80371e74 +.type func_80371e74, @function +func_80371e74: +/* 80371E74 7C0802A6 */ mflr r0 +/* 80371E78 90010004 */ stw r0, 4(r1) +/* 80371E7C 9421FFE0 */ stwu r1, -0x20(r1) +/* 80371E80 93E1001C */ stw r31, 0x1c(r1) +/* 80371E84 93C10018 */ stw r30, 0x18(r1) +/* 80371E88 93A10014 */ stw r29, 0x14(r1) +/* 80371E8C 93810010 */ stw r28, 0x10(r1) +/* 80371E90 7C7C1B78 */ mr r28, r3 +/* 80371E94 4BFFCC41 */ bl func_8036ead4 +/* 80371E98 3FE08000 */ lis r31, 0x8000 +/* 80371E9C 83DF00E4 */ lwz r30, 0xe4(r31) +/* 80371EA0 3BA30000 */ addi r29, r3, 0x0 +/* 80371EA4 387E0000 */ addi r3, r30, 0x0 +/* 80371EA8 4BFFC3B9 */ bl func_8036e260 +/* 80371EAC A01E02CA */ lhz r0, 0x2ca(r30) +/* 80371EB0 540007FF */ clrlwi. r0, r0, 0x1f +/* 80371EB4 41820044 */ beq- lbl_80371ef8 +/* 80371EB8 809E02FC */ lwz r4, 0x2fc(r30) +/* 80371EBC 80BE0300 */ lwz r5, 0x300(r30) +/* 80371EC0 28040000 */ cmplwi r4, 0 +/* 80371EC4 4082000C */ bne- lbl_80371ed0 +/* 80371EC8 90BF00E0 */ stw r5, 0xe0(r31) +/* 80371ECC 48000008 */ b lbl_80371ed4 +lbl_80371ed0: +/* 80371ED0 90A40300 */ stw r5, 0x300(r4) +lbl_80371ed4: +/* 80371ED4 28050000 */ cmplwi r5, 0 +/* 80371ED8 40820010 */ bne- lbl_80371ee8 +/* 80371EDC 3C608000 */ lis r3, 0x8000 +/* 80371EE0 908300DC */ stw r4, 0xdc(r3) +/* 80371EE4 48000008 */ b lbl_80371eec +lbl_80371ee8: +/* 80371EE8 908502FC */ stw r4, 0x2fc(r5) +lbl_80371eec: +/* 80371EEC 38000000 */ li r0, 0x0 +/* 80371EF0 B01E02C8 */ sth r0, 0x2c8(r30) +/* 80371EF4 48000010 */ b lbl_80371f04 +lbl_80371ef8: +/* 80371EF8 38000008 */ li r0, 0x8 +/* 80371EFC B01E02C8 */ sth r0, 0x2c8(r30) +/* 80371F00 939E02D8 */ stw r28, 0x2d8(r30) +lbl_80371f04: +/* 80371F04 7FC3F378 */ mr r3, r30 +/* 80371F08 4BFFE27D */ bl func_80370184 +/* 80371F0C 387E02E8 */ addi r3, r30, 0x2e8 +/* 80371F10 480006E9 */ bl func_803725f8 +/* 80371F14 38000001 */ li r0, 0x1 +/* 80371F18 900DCA9C */ stw r0, lbl_805c68bc@sda21(0) +/* 80371F1C 800DCA9C */ lwz r0, lbl_805c68bc@sda21(0) +/* 80371F20 2C000000 */ cmpwi r0, 0x0 +/* 80371F24 4182000C */ beq- lbl_80371f30 +/* 80371F28 38600000 */ li r3, 0x0 +/* 80371F2C 4BFFFBBD */ bl func_80371ae8 +lbl_80371f30: +/* 80371F30 7FA3EB78 */ mr r3, r29 +/* 80371F34 4BFFCBC9 */ bl func_8036eafc +/* 80371F38 80010024 */ lwz r0, 0x24(r1) +/* 80371F3C 83E1001C */ lwz r31, 0x1c(r1) +/* 80371F40 83C10018 */ lwz r30, 0x18(r1) +/* 80371F44 83A10014 */ lwz r29, 0x14(r1) +/* 80371F48 83810010 */ lwz r28, 0x10(r1) +/* 80371F4C 38210020 */ addi r1, r1, 0x20 +/* 80371F50 7C0803A6 */ mtlr r0 +/* 80371F54 4E800020 */ blr +.size func_80371e74, . - func_80371e74 + + +.global func_80371f58 +.type func_80371f58, @function +func_80371f58: +/* 80371F58 7C0802A6 */ mflr r0 +/* 80371F5C 90010004 */ stw r0, 4(r1) +/* 80371F60 9421FFE0 */ stwu r1, -0x20(r1) +/* 80371F64 93E1001C */ stw r31, 0x1c(r1) +/* 80371F68 93C10018 */ stw r30, 0x18(r1) +/* 80371F6C 7C7E1B78 */ mr r30, r3 +/* 80371F70 93A10014 */ stw r29, 0x14(r1) +/* 80371F74 4BFFCB61 */ bl func_8036ead4 +/* 80371F78 A01E02C8 */ lhz r0, 0x2c8(r30) +/* 80371F7C 3BE30000 */ addi r31, r3, 0x0 +/* 80371F80 2C000003 */ cmpwi r0, 0x3 +/* 80371F84 418200DC */ beq- lbl_80372060 +/* 80371F88 40800014 */ bge- lbl_80371f9c +/* 80371F8C 2C000001 */ cmpwi r0, 0x1 +/* 80371F90 41820018 */ beq- lbl_80371fa8 +/* 80371F94 4080002C */ bge- lbl_80371fc0 +/* 80371F98 480000C8 */ b lbl_80372060 +lbl_80371f9c: +/* 80371F9C 2C000005 */ cmpwi r0, 0x5 +/* 80371FA0 408000C0 */ bge- lbl_80372060 +/* 80371FA4 48000028 */ b lbl_80371fcc +lbl_80371fa8: +/* 80371FA8 801E02CC */ lwz r0, 0x2cc(r30) +/* 80371FAC 2C000000 */ cmpwi r0, 0x0 +/* 80371FB0 418100BC */ bgt- lbl_8037206c +/* 80371FB4 7FC3F378 */ mr r3, r30 +/* 80371FB8 4BFFF87D */ bl func_80371834 +/* 80371FBC 480000B0 */ b lbl_8037206c +lbl_80371fc0: +/* 80371FC0 38000001 */ li r0, 0x1 +/* 80371FC4 900DCA9C */ stw r0, lbl_805c68bc@sda21(0) +/* 80371FC8 480000A4 */ b lbl_8037206c +lbl_80371fcc: +/* 80371FCC 809E02E0 */ lwz r4, 0x2e0(r30) +/* 80371FD0 80BE02E4 */ lwz r5, 0x2e4(r30) +/* 80371FD4 28040000 */ cmplwi r4, 0 +/* 80371FD8 40820010 */ bne- lbl_80371fe8 +/* 80371FDC 807E02DC */ lwz r3, 0x2dc(r30) +/* 80371FE0 90A30004 */ stw r5, 4(r3) +/* 80371FE4 48000008 */ b lbl_80371fec +lbl_80371fe8: +/* 80371FE8 90A402E4 */ stw r5, 0x2e4(r4) +lbl_80371fec: +/* 80371FEC 28050000 */ cmplwi r5, 0 +/* 80371FF0 40820010 */ bne- lbl_80372000 +/* 80371FF4 807E02DC */ lwz r3, 0x2dc(r30) +/* 80371FF8 90830000 */ stw r4, 0(r3) +/* 80371FFC 48000008 */ b lbl_80372004 +lbl_80372000: +/* 80372000 908502E0 */ stw r4, 0x2e0(r5) +lbl_80372004: +/* 80372004 38000000 */ li r0, 0x0 +/* 80372008 901E02DC */ stw r0, 0x2dc(r30) +/* 8037200C 801E02CC */ lwz r0, 0x2cc(r30) +/* 80372010 2C000000 */ cmpwi r0, 0x0 +/* 80372014 41810058 */ bgt- lbl_8037206c +/* 80372018 807E02F0 */ lwz r3, 0x2f0(r30) +/* 8037201C 28030000 */ cmplwi r3, 0 +/* 80372020 4182004C */ beq- lbl_8037206c +/* 80372024 83A30008 */ lwz r29, 8(r3) +lbl_80372028: +/* 80372028 801D02CC */ lwz r0, 0x2cc(r29) +/* 8037202C 2C000000 */ cmpwi r0, 0x0 +/* 80372030 4181003C */ bgt- lbl_8037206c +/* 80372034 7FA3EB78 */ mr r3, r29 +/* 80372038 4BFFF865 */ bl func_8037189c +/* 8037203C 801D02D0 */ lwz r0, 0x2d0(r29) +/* 80372040 38830000 */ addi r4, r3, 0x0 +/* 80372044 7C002000 */ cmpw r0, r4 +/* 80372048 41820024 */ beq- lbl_8037206c +/* 8037204C 7FA3EB78 */ mr r3, r29 +/* 80372050 4BFFF889 */ bl func_803718d8 +/* 80372054 7C7D1B79 */ or. r29, r3, r3 +/* 80372058 4082FFD0 */ bne+ lbl_80372028 +/* 8037205C 48000010 */ b lbl_8037206c +lbl_80372060: +/* 80372060 7FE3FB78 */ mr r3, r31 +/* 80372064 4BFFCA99 */ bl func_8036eafc +/* 80372068 48000090 */ b lbl_803720f8 +lbl_8037206c: +/* 8037206C 7FC3F378 */ mr r3, r30 +/* 80372070 4BFFC1F1 */ bl func_8036e260 +/* 80372074 A01E02CA */ lhz r0, 0x2ca(r30) +/* 80372078 540007FF */ clrlwi. r0, r0, 0x1f +/* 8037207C 41820048 */ beq- lbl_803720c4 +/* 80372080 809E02FC */ lwz r4, 0x2fc(r30) +/* 80372084 80BE0300 */ lwz r5, 0x300(r30) +/* 80372088 28040000 */ cmplwi r4, 0 +/* 8037208C 40820010 */ bne- lbl_8037209c +/* 80372090 3C608000 */ lis r3, 0x8000 +/* 80372094 90A300E0 */ stw r5, 0xe0(r3) +/* 80372098 48000008 */ b lbl_803720a0 +lbl_8037209c: +/* 8037209C 90A40300 */ stw r5, 0x300(r4) +lbl_803720a0: +/* 803720A0 28050000 */ cmplwi r5, 0 +/* 803720A4 40820010 */ bne- lbl_803720b4 +/* 803720A8 3C608000 */ lis r3, 0x8000 +/* 803720AC 908300DC */ stw r4, 0xdc(r3) +/* 803720B0 48000008 */ b lbl_803720b8 +lbl_803720b4: +/* 803720B4 908502FC */ stw r4, 0x2fc(r5) +lbl_803720b8: +/* 803720B8 38000000 */ li r0, 0x0 +/* 803720BC B01E02C8 */ sth r0, 0x2c8(r30) +/* 803720C0 4800000C */ b lbl_803720cc +lbl_803720c4: +/* 803720C4 38000008 */ li r0, 0x8 +/* 803720C8 B01E02C8 */ sth r0, 0x2c8(r30) +lbl_803720cc: +/* 803720CC 7FC3F378 */ mr r3, r30 +/* 803720D0 4BFFE0B5 */ bl func_80370184 +/* 803720D4 387E02E8 */ addi r3, r30, 0x2e8 +/* 803720D8 48000521 */ bl func_803725f8 +/* 803720DC 800DCA9C */ lwz r0, lbl_805c68bc@sda21(0) +/* 803720E0 2C000000 */ cmpwi r0, 0x0 +/* 803720E4 4182000C */ beq- lbl_803720f0 +/* 803720E8 38600000 */ li r3, 0x0 +/* 803720EC 4BFFF9FD */ bl func_80371ae8 +lbl_803720f0: +/* 803720F0 7FE3FB78 */ mr r3, r31 +/* 803720F4 4BFFCA09 */ bl func_8036eafc +lbl_803720f8: +/* 803720F8 80010024 */ lwz r0, 0x24(r1) +/* 803720FC 83E1001C */ lwz r31, 0x1c(r1) +/* 80372100 83C10018 */ lwz r30, 0x18(r1) +/* 80372104 83A10014 */ lwz r29, 0x14(r1) +/* 80372108 38210020 */ addi r1, r1, 0x20 +/* 8037210C 7C0803A6 */ mtlr r0 +/* 80372110 4E800020 */ blr +.size func_80371f58, . - func_80371f58 + + +.global func_80372114 +.type func_80372114, @function +func_80372114: +/* 80372114 7C0802A6 */ mflr r0 +/* 80372118 90010004 */ stw r0, 4(r1) +/* 8037211C 9421FFD8 */ stwu r1, -0x28(r1) +/* 80372120 93E10024 */ stw r31, 0x24(r1) +/* 80372124 93C10020 */ stw r30, 0x20(r1) +/* 80372128 93A1001C */ stw r29, 0x1c(r1) +/* 8037212C 7C7D1B78 */ mr r29, r3 +/* 80372130 4BFFC9A5 */ bl func_8036ead4 +/* 80372134 809D02CC */ lwz r4, 0x2cc(r29) +/* 80372138 3BE30000 */ addi r31, r3, 0x0 +/* 8037213C 3804FFFF */ addi r0, r4, -0x1 +/* 80372140 901D02CC */ stw r0, 0x2cc(r29) +/* 80372144 7C9E2378 */ mr r30, r4 +/* 80372148 801D02CC */ lwz r0, 0x2cc(r29) +/* 8037214C 2C000000 */ cmpwi r0, 0x0 +/* 80372150 40800010 */ bge- lbl_80372160 +/* 80372154 38000000 */ li r0, 0x0 +/* 80372158 901D02CC */ stw r0, 0x2cc(r29) +/* 8037215C 48000218 */ b lbl_80372374 +lbl_80372160: +/* 80372160 40820214 */ bne- lbl_80372374 +/* 80372164 A01D02C8 */ lhz r0, 0x2c8(r29) +/* 80372168 2C000004 */ cmpwi r0, 0x4 +/* 8037216C 418200B8 */ beq- lbl_80372224 +/* 80372170 408001F0 */ bge- lbl_80372360 +/* 80372174 2C000001 */ cmpwi r0, 0x1 +/* 80372178 41820008 */ beq- lbl_80372180 +/* 8037217C 480001E4 */ b lbl_80372360 +lbl_80372180: +/* 80372180 801D02D4 */ lwz r0, 0x2d4(r29) +/* 80372184 807D02F4 */ lwz r3, 0x2f4(r29) +/* 80372188 48000024 */ b lbl_803721ac +lbl_8037218c: +/* 8037218C 80830000 */ lwz r4, 0(r3) +/* 80372190 28040000 */ cmplwi r4, 0 +/* 80372194 41820014 */ beq- lbl_803721a8 +/* 80372198 808402D0 */ lwz r4, 0x2d0(r4) +/* 8037219C 7C040000 */ cmpw r4, r0 +/* 803721A0 40800008 */ bge- lbl_803721a8 +/* 803721A4 7C802378 */ mr r0, r4 +lbl_803721a8: +/* 803721A8 80630010 */ lwz r3, 0x10(r3) +lbl_803721ac: +/* 803721AC 28030000 */ cmplwi r3, 0 +/* 803721B0 4082FFDC */ bne+ lbl_8037218c +/* 803721B4 901D02D0 */ stw r0, 0x2d0(r29) +/* 803721B8 3C608054 */ lis r3, lbl_8053ecf8@ha +/* 803721BC 3803ECF8 */ addi r0, r3, lbl_8053ecf8@l +/* 803721C0 807D02D0 */ lwz r3, 0x2d0(r29) +/* 803721C4 54631838 */ slwi r3, r3, 3 +/* 803721C8 7C001A14 */ add r0, r0, r3 +/* 803721CC 901D02DC */ stw r0, 0x2dc(r29) +/* 803721D0 809D02DC */ lwz r4, 0x2dc(r29) +/* 803721D4 80640004 */ lwz r3, 4(r4) +/* 803721D8 28030000 */ cmplwi r3, 0 +/* 803721DC 4082000C */ bne- lbl_803721e8 +/* 803721E0 93A40000 */ stw r29, 0(r4) +/* 803721E4 48000008 */ b lbl_803721ec +lbl_803721e8: +/* 803721E8 93A302E0 */ stw r29, 0x2e0(r3) +lbl_803721ec: +/* 803721EC 907D02E4 */ stw r3, 0x2e4(r29) +/* 803721F0 38000000 */ li r0, 0x0 +/* 803721F4 38600001 */ li r3, 0x1 +/* 803721F8 901D02E0 */ stw r0, 0x2e0(r29) +/* 803721FC 809D02DC */ lwz r4, 0x2dc(r29) +/* 80372200 93A40004 */ stw r29, 4(r4) +/* 80372204 801D02D0 */ lwz r0, 0x2d0(r29) +/* 80372208 808DCA98 */ lwz r4, lbl_805c68b8@sda21(0) +/* 8037220C 2000001F */ subfic r0, r0, 0x1f +/* 80372210 7C600030 */ slw r0, r3, r0 +/* 80372214 7C800378 */ or r0, r4, r0 +/* 80372218 900DCA98 */ stw r0, lbl_805c68b8@sda21(0) +/* 8037221C 906DCA9C */ stw r3, lbl_805c68bc@sda21(0) +/* 80372220 48000140 */ b lbl_80372360 +lbl_80372224: +/* 80372224 809D02E0 */ lwz r4, 0x2e0(r29) +/* 80372228 80BD02E4 */ lwz r5, 0x2e4(r29) +/* 8037222C 28040000 */ cmplwi r4, 0 +/* 80372230 40820010 */ bne- lbl_80372240 +/* 80372234 807D02DC */ lwz r3, 0x2dc(r29) +/* 80372238 90A30004 */ stw r5, 4(r3) +/* 8037223C 48000008 */ b lbl_80372244 +lbl_80372240: +/* 80372240 90A402E4 */ stw r5, 0x2e4(r4) +lbl_80372244: +/* 80372244 28050000 */ cmplwi r5, 0 +/* 80372248 40820010 */ bne- lbl_80372258 +/* 8037224C 807D02DC */ lwz r3, 0x2dc(r29) +/* 80372250 90830000 */ stw r4, 0(r3) +/* 80372254 48000008 */ b lbl_8037225c +lbl_80372258: +/* 80372258 908502E0 */ stw r4, 0x2e0(r5) +lbl_8037225c: +/* 8037225C 801D02D4 */ lwz r0, 0x2d4(r29) +/* 80372260 807D02F4 */ lwz r3, 0x2f4(r29) +/* 80372264 48000024 */ b lbl_80372288 +lbl_80372268: +/* 80372268 80830000 */ lwz r4, 0(r3) +/* 8037226C 28040000 */ cmplwi r4, 0 +/* 80372270 41820014 */ beq- lbl_80372284 +/* 80372274 808402D0 */ lwz r4, 0x2d0(r4) +/* 80372278 7C040000 */ cmpw r4, r0 +/* 8037227C 40800008 */ bge- lbl_80372284 +/* 80372280 7C802378 */ mr r0, r4 +lbl_80372284: +/* 80372284 80630010 */ lwz r3, 0x10(r3) +lbl_80372288: +/* 80372288 28030000 */ cmplwi r3, 0 +/* 8037228C 4082FFDC */ bne+ lbl_80372268 +/* 80372290 901D02D0 */ stw r0, 0x2d0(r29) +/* 80372294 809D02DC */ lwz r4, 0x2dc(r29) +/* 80372298 80A40000 */ lwz r5, 0(r4) +/* 8037229C 48000008 */ b lbl_803722a4 +lbl_803722a0: +/* 803722A0 80A502E0 */ lwz r5, 0x2e0(r5) +lbl_803722a4: +/* 803722A4 28050000 */ cmplwi r5, 0 +/* 803722A8 41820014 */ beq- lbl_803722bc +/* 803722AC 806502D0 */ lwz r3, 0x2d0(r5) +/* 803722B0 801D02D0 */ lwz r0, 0x2d0(r29) +/* 803722B4 7C030000 */ cmpw r3, r0 +/* 803722B8 4081FFE8 */ ble+ lbl_803722a0 +lbl_803722bc: +/* 803722BC 28050000 */ cmplwi r5, 0 +/* 803722C0 40820034 */ bne- lbl_803722f4 +/* 803722C4 80640004 */ lwz r3, 4(r4) +/* 803722C8 28030000 */ cmplwi r3, 0 +/* 803722CC 4082000C */ bne- lbl_803722d8 +/* 803722D0 93A40000 */ stw r29, 0(r4) +/* 803722D4 48000008 */ b lbl_803722dc +lbl_803722d8: +/* 803722D8 93A302E0 */ stw r29, 0x2e0(r3) +lbl_803722dc: +/* 803722DC 907D02E4 */ stw r3, 0x2e4(r29) +/* 803722E0 38000000 */ li r0, 0x0 +/* 803722E4 901D02E0 */ stw r0, 0x2e0(r29) +/* 803722E8 807D02DC */ lwz r3, 0x2dc(r29) +/* 803722EC 93A30004 */ stw r29, 4(r3) +/* 803722F0 4800002C */ b lbl_8037231c +lbl_803722f4: +/* 803722F4 90BD02E0 */ stw r5, 0x2e0(r29) +/* 803722F8 806502E4 */ lwz r3, 0x2e4(r5) +/* 803722FC 93A502E4 */ stw r29, 0x2e4(r5) +/* 80372300 28030000 */ cmplwi r3, 0 +/* 80372304 907D02E4 */ stw r3, 0x2e4(r29) +/* 80372308 40820010 */ bne- lbl_80372318 +/* 8037230C 807D02DC */ lwz r3, 0x2dc(r29) +/* 80372310 93A30000 */ stw r29, 0(r3) +/* 80372314 48000008 */ b lbl_8037231c +lbl_80372318: +/* 80372318 93A302E0 */ stw r29, 0x2e0(r3) +lbl_8037231c: +/* 8037231C 807D02F0 */ lwz r3, 0x2f0(r29) +/* 80372320 28030000 */ cmplwi r3, 0 +/* 80372324 4182003C */ beq- lbl_80372360 +/* 80372328 83A30008 */ lwz r29, 8(r3) +lbl_8037232c: +/* 8037232C 801D02CC */ lwz r0, 0x2cc(r29) +/* 80372330 2C000000 */ cmpwi r0, 0x0 +/* 80372334 4181002C */ bgt- lbl_80372360 +/* 80372338 7FA3EB78 */ mr r3, r29 +/* 8037233C 4BFFF561 */ bl func_8037189c +/* 80372340 801D02D0 */ lwz r0, 0x2d0(r29) +/* 80372344 38830000 */ addi r4, r3, 0x0 +/* 80372348 7C002000 */ cmpw r0, r4 +/* 8037234C 41820014 */ beq- lbl_80372360 +/* 80372350 7FA3EB78 */ mr r3, r29 +/* 80372354 4BFFF585 */ bl func_803718d8 +/* 80372358 7C7D1B79 */ or. r29, r3, r3 +/* 8037235C 4082FFD0 */ bne+ lbl_8037232c +lbl_80372360: +/* 80372360 800DCA9C */ lwz r0, lbl_805c68bc@sda21(0) +/* 80372364 2C000000 */ cmpwi r0, 0x0 +/* 80372368 4182000C */ beq- lbl_80372374 +/* 8037236C 38600000 */ li r3, 0x0 +/* 80372370 4BFFF779 */ bl func_80371ae8 +lbl_80372374: +/* 80372374 7FE3FB78 */ mr r3, r31 +/* 80372378 4BFFC785 */ bl func_8036eafc +/* 8037237C 7FC3F378 */ mr r3, r30 +/* 80372380 8001002C */ lwz r0, 0x2c(r1) +/* 80372384 83E10024 */ lwz r31, 0x24(r1) +/* 80372388 83C10020 */ lwz r30, 0x20(r1) +/* 8037238C 83A1001C */ lwz r29, 0x1c(r1) +/* 80372390 38210028 */ addi r1, r1, 0x28 +/* 80372394 7C0803A6 */ mtlr r0 +/* 80372398 4E800020 */ blr +.size func_80372114, . - func_80372114 + + +.global func_8037239c +.type func_8037239c, @function +func_8037239c: +/* 8037239C 7C0802A6 */ mflr r0 +/* 803723A0 90010004 */ stw r0, 4(r1) +/* 803723A4 9421FFE0 */ stwu r1, -0x20(r1) +/* 803723A8 93E1001C */ stw r31, 0x1c(r1) +/* 803723AC 93C10018 */ stw r30, 0x18(r1) +/* 803723B0 93A10014 */ stw r29, 0x14(r1) +/* 803723B4 7C7D1B78 */ mr r29, r3 +/* 803723B8 4BFFC71D */ bl func_8036ead4 +/* 803723BC 809D02CC */ lwz r4, 0x2cc(r29) +/* 803723C0 3BE30000 */ addi r31, r3, 0x0 +/* 803723C4 38040001 */ addi r0, r4, 0x1 +/* 803723C8 7C9E2379 */ or. r30, r4, r4 +/* 803723CC 901D02CC */ stw r0, 0x2cc(r29) +/* 803723D0 40820114 */ bne- lbl_803724e4 +/* 803723D4 A01D02C8 */ lhz r0, 0x2c8(r29) +/* 803723D8 2C000003 */ cmpwi r0, 0x3 +/* 803723DC 418200F4 */ beq- lbl_803724d0 +/* 803723E0 40800014 */ bge- lbl_803723f4 +/* 803723E4 2C000001 */ cmpwi r0, 0x1 +/* 803723E8 41820028 */ beq- lbl_80372410 +/* 803723EC 40800014 */ bge- lbl_80372400 +/* 803723F0 480000E0 */ b lbl_803724d0 +lbl_803723f4: +/* 803723F4 2C000005 */ cmpwi r0, 0x5 +/* 803723F8 408000D8 */ bge- lbl_803724d0 +/* 803723FC 48000020 */ b lbl_8037241c +lbl_80372400: +/* 80372400 38000001 */ li r0, 0x1 +/* 80372404 900DCA9C */ stw r0, lbl_805c68bc@sda21(0) +/* 80372408 B01D02C8 */ sth r0, 0x2c8(r29) +/* 8037240C 480000C4 */ b lbl_803724d0 +lbl_80372410: +/* 80372410 7FA3EB78 */ mr r3, r29 +/* 80372414 4BFFF421 */ bl func_80371834 +/* 80372418 480000B8 */ b lbl_803724d0 +lbl_8037241c: +/* 8037241C 809D02E0 */ lwz r4, 0x2e0(r29) +/* 80372420 80BD02E4 */ lwz r5, 0x2e4(r29) +/* 80372424 28040000 */ cmplwi r4, 0 +/* 80372428 40820010 */ bne- lbl_80372438 +/* 8037242C 807D02DC */ lwz r3, 0x2dc(r29) +/* 80372430 90A30004 */ stw r5, 4(r3) +/* 80372434 48000008 */ b lbl_8037243c +lbl_80372438: +/* 80372438 90A402E4 */ stw r5, 0x2e4(r4) +lbl_8037243c: +/* 8037243C 28050000 */ cmplwi r5, 0 +/* 80372440 40820010 */ bne- lbl_80372450 +/* 80372444 807D02DC */ lwz r3, 0x2dc(r29) +/* 80372448 90830000 */ stw r4, 0(r3) +/* 8037244C 48000008 */ b lbl_80372454 +lbl_80372450: +/* 80372450 908502E0 */ stw r4, 0x2e0(r5) +lbl_80372454: +/* 80372454 38000020 */ li r0, 0x20 +/* 80372458 901D02D0 */ stw r0, 0x2d0(r29) +/* 8037245C 809D02DC */ lwz r4, 0x2dc(r29) +/* 80372460 80640004 */ lwz r3, 4(r4) +/* 80372464 28030000 */ cmplwi r3, 0 +/* 80372468 4082000C */ bne- lbl_80372474 +/* 8037246C 93A40000 */ stw r29, 0(r4) +/* 80372470 48000008 */ b lbl_80372478 +lbl_80372474: +/* 80372474 93A302E0 */ stw r29, 0x2e0(r3) +lbl_80372478: +/* 80372478 907D02E4 */ stw r3, 0x2e4(r29) +/* 8037247C 38000000 */ li r0, 0x0 +/* 80372480 901D02E0 */ stw r0, 0x2e0(r29) +/* 80372484 807D02DC */ lwz r3, 0x2dc(r29) +/* 80372488 93A30004 */ stw r29, 4(r3) +/* 8037248C 807D02F0 */ lwz r3, 0x2f0(r29) +/* 80372490 28030000 */ cmplwi r3, 0 +/* 80372494 4182003C */ beq- lbl_803724d0 +/* 80372498 83A30008 */ lwz r29, 8(r3) +lbl_8037249c: +/* 8037249C 801D02CC */ lwz r0, 0x2cc(r29) +/* 803724A0 2C000000 */ cmpwi r0, 0x0 +/* 803724A4 4181002C */ bgt- lbl_803724d0 +/* 803724A8 7FA3EB78 */ mr r3, r29 +/* 803724AC 4BFFF3F1 */ bl func_8037189c +/* 803724B0 801D02D0 */ lwz r0, 0x2d0(r29) +/* 803724B4 38830000 */ addi r4, r3, 0x0 +/* 803724B8 7C002000 */ cmpw r0, r4 +/* 803724BC 41820014 */ beq- lbl_803724d0 +/* 803724C0 7FA3EB78 */ mr r3, r29 +/* 803724C4 4BFFF415 */ bl func_803718d8 +/* 803724C8 7C7D1B79 */ or. r29, r3, r3 +/* 803724CC 4082FFD0 */ bne+ lbl_8037249c +lbl_803724d0: +/* 803724D0 800DCA9C */ lwz r0, lbl_805c68bc@sda21(0) +/* 803724D4 2C000000 */ cmpwi r0, 0x0 +/* 803724D8 4182000C */ beq- lbl_803724e4 +/* 803724DC 38600000 */ li r3, 0x0 +/* 803724E0 4BFFF609 */ bl func_80371ae8 +lbl_803724e4: +/* 803724E4 7FE3FB78 */ mr r3, r31 +/* 803724E8 4BFFC615 */ bl func_8036eafc +/* 803724EC 7FC3F378 */ mr r3, r30 +/* 803724F0 80010024 */ lwz r0, 0x24(r1) +/* 803724F4 83E1001C */ lwz r31, 0x1c(r1) +/* 803724F8 83C10018 */ lwz r30, 0x18(r1) +/* 803724FC 83A10014 */ lwz r29, 0x14(r1) +/* 80372500 38210020 */ addi r1, r1, 0x20 +/* 80372504 7C0803A6 */ mtlr r0 +/* 80372508 4E800020 */ blr +.size func_8037239c, . - func_8037239c + + +.global func_8037250c +.type func_8037250c, @function +func_8037250c: +/* 8037250C 7C0802A6 */ mflr r0 +/* 80372510 90010004 */ stw r0, 4(r1) +/* 80372514 9421FFE8 */ stwu r1, -0x18(r1) +/* 80372518 93E10014 */ stw r31, 0x14(r1) +/* 8037251C 93C10010 */ stw r30, 0x10(r1) +/* 80372520 7C7E1B78 */ mr r30, r3 +/* 80372524 4BFFC5B1 */ bl func_8036ead4 +/* 80372528 3C808000 */ lis r4, 0x8000 +/* 8037252C 808400E4 */ lwz r4, 0xe4(r4) +/* 80372530 38000004 */ li r0, 0x4 +/* 80372534 7C7F1B78 */ mr r31, r3 +/* 80372538 B00402C8 */ sth r0, 0x2c8(r4) +/* 8037253C 93C402DC */ stw r30, 0x2dc(r4) +/* 80372540 80BE0000 */ lwz r5, 0(r30) +/* 80372544 48000008 */ b lbl_8037254c +lbl_80372548: +/* 80372548 80A502E0 */ lwz r5, 0x2e0(r5) +lbl_8037254c: +/* 8037254C 28050000 */ cmplwi r5, 0 +/* 80372550 41820014 */ beq- lbl_80372564 +/* 80372554 806502D0 */ lwz r3, 0x2d0(r5) +/* 80372558 800402D0 */ lwz r0, 0x2d0(r4) +/* 8037255C 7C030000 */ cmpw r3, r0 +/* 80372560 4081FFE8 */ ble+ lbl_80372548 +lbl_80372564: +/* 80372564 28050000 */ cmplwi r5, 0 +/* 80372568 40820030 */ bne- lbl_80372598 +/* 8037256C 807E0004 */ lwz r3, 4(r30) +/* 80372570 28030000 */ cmplwi r3, 0 +/* 80372574 4082000C */ bne- lbl_80372580 +/* 80372578 909E0000 */ stw r4, 0(r30) +/* 8037257C 48000008 */ b lbl_80372584 +lbl_80372580: +/* 80372580 908302E0 */ stw r4, 0x2e0(r3) +lbl_80372584: +/* 80372584 906402E4 */ stw r3, 0x2e4(r4) +/* 80372588 38000000 */ li r0, 0x0 +/* 8037258C 900402E0 */ stw r0, 0x2e0(r4) +/* 80372590 909E0004 */ stw r4, 4(r30) +/* 80372594 48000028 */ b lbl_803725bc +lbl_80372598: +/* 80372598 90A402E0 */ stw r5, 0x2e0(r4) +/* 8037259C 806502E4 */ lwz r3, 0x2e4(r5) +/* 803725A0 908502E4 */ stw r4, 0x2e4(r5) +/* 803725A4 28030000 */ cmplwi r3, 0 +/* 803725A8 906402E4 */ stw r3, 0x2e4(r4) +/* 803725AC 4082000C */ bne- lbl_803725b8 +/* 803725B0 909E0000 */ stw r4, 0(r30) +/* 803725B4 48000008 */ b lbl_803725bc +lbl_803725b8: +/* 803725B8 908302E0 */ stw r4, 0x2e0(r3) +lbl_803725bc: +/* 803725BC 38000001 */ li r0, 0x1 +/* 803725C0 900DCA9C */ stw r0, lbl_805c68bc@sda21(0) +/* 803725C4 800DCA9C */ lwz r0, lbl_805c68bc@sda21(0) +/* 803725C8 2C000000 */ cmpwi r0, 0x0 +/* 803725CC 4182000C */ beq- lbl_803725d8 +/* 803725D0 38600000 */ li r3, 0x0 +/* 803725D4 4BFFF515 */ bl func_80371ae8 +lbl_803725d8: +/* 803725D8 7FE3FB78 */ mr r3, r31 +/* 803725DC 4BFFC521 */ bl func_8036eafc +/* 803725E0 8001001C */ lwz r0, 0x1c(r1) +/* 803725E4 83E10014 */ lwz r31, 0x14(r1) +/* 803725E8 83C10010 */ lwz r30, 0x10(r1) +/* 803725EC 38210018 */ addi r1, r1, 0x18 +/* 803725F0 7C0803A6 */ mtlr r0 +/* 803725F4 4E800020 */ blr +.size func_8037250c, . - func_8037250c + + +.global func_803725f8 +.type func_803725f8, @function +func_803725f8: +/* 803725F8 7C0802A6 */ mflr r0 +/* 803725FC 90010004 */ stw r0, 4(r1) +/* 80372600 9421FFE8 */ stwu r1, -0x18(r1) +/* 80372604 93E10014 */ stw r31, 0x14(r1) +/* 80372608 93C10010 */ stw r30, 0x10(r1) +/* 8037260C 7C7E1B78 */ mr r30, r3 +/* 80372610 4BFFC4C5 */ bl func_8036ead4 +/* 80372614 3C808054 */ lis r4, lbl_8053ecf8@ha +/* 80372618 3BE30000 */ addi r31, r3, 0x0 +/* 8037261C 38A4ECF8 */ addi r5, r4, lbl_8053ecf8@l +/* 80372620 4800009C */ b lbl_803726bc +lbl_80372624: +/* 80372624 806602E0 */ lwz r3, 0x2e0(r6) +/* 80372628 28030000 */ cmplwi r3, 0 +/* 8037262C 40820010 */ bne- lbl_8037263c +/* 80372630 38000000 */ li r0, 0x0 +/* 80372634 901E0004 */ stw r0, 4(r30) +/* 80372638 4800000C */ b lbl_80372644 +lbl_8037263c: +/* 8037263C 38000000 */ li r0, 0x0 +/* 80372640 900302E4 */ stw r0, 0x2e4(r3) +lbl_80372644: +/* 80372644 907E0000 */ stw r3, 0(r30) +/* 80372648 38000001 */ li r0, 0x1 +/* 8037264C B00602C8 */ sth r0, 0x2c8(r6) +/* 80372650 800602CC */ lwz r0, 0x2cc(r6) +/* 80372654 2C000000 */ cmpwi r0, 0x0 +/* 80372658 41810064 */ bgt- lbl_803726bc +/* 8037265C 800602D0 */ lwz r0, 0x2d0(r6) +/* 80372660 54001838 */ slwi r0, r0, 3 +/* 80372664 7C050214 */ add r0, r5, r0 +/* 80372668 900602DC */ stw r0, 0x2dc(r6) +/* 8037266C 808602DC */ lwz r4, 0x2dc(r6) +/* 80372670 80640004 */ lwz r3, 4(r4) +/* 80372674 28030000 */ cmplwi r3, 0 +/* 80372678 4082000C */ bne- lbl_80372684 +/* 8037267C 90C40000 */ stw r6, 0(r4) +/* 80372680 48000008 */ b lbl_80372688 +lbl_80372684: +/* 80372684 90C302E0 */ stw r6, 0x2e0(r3) +lbl_80372688: +/* 80372688 906602E4 */ stw r3, 0x2e4(r6) +/* 8037268C 38000000 */ li r0, 0x0 +/* 80372690 38600001 */ li r3, 0x1 +/* 80372694 900602E0 */ stw r0, 0x2e0(r6) +/* 80372698 808602DC */ lwz r4, 0x2dc(r6) +/* 8037269C 90C40004 */ stw r6, 4(r4) +/* 803726A0 800602D0 */ lwz r0, 0x2d0(r6) +/* 803726A4 808DCA98 */ lwz r4, lbl_805c68b8@sda21(0) +/* 803726A8 2000001F */ subfic r0, r0, 0x1f +/* 803726AC 7C600030 */ slw r0, r3, r0 +/* 803726B0 7C800378 */ or r0, r4, r0 +/* 803726B4 900DCA98 */ stw r0, lbl_805c68b8@sda21(0) +/* 803726B8 906DCA9C */ stw r3, lbl_805c68bc@sda21(0) +lbl_803726bc: +/* 803726BC 80DE0000 */ lwz r6, 0(r30) +/* 803726C0 28060000 */ cmplwi r6, 0 +/* 803726C4 4082FF60 */ bne+ lbl_80372624 +/* 803726C8 800DCA9C */ lwz r0, lbl_805c68bc@sda21(0) +/* 803726CC 2C000000 */ cmpwi r0, 0x0 +/* 803726D0 4182000C */ beq- lbl_803726dc +/* 803726D4 38600000 */ li r3, 0x0 +/* 803726D8 4BFFF411 */ bl func_80371ae8 +lbl_803726dc: +/* 803726DC 7FE3FB78 */ mr r3, r31 +/* 803726E0 4BFFC41D */ bl func_8036eafc +/* 803726E4 8001001C */ lwz r0, 0x1c(r1) +/* 803726E8 83E10014 */ lwz r31, 0x14(r1) +/* 803726EC 83C10010 */ lwz r30, 0x10(r1) +/* 803726F0 38210018 */ addi r1, r1, 0x18 +/* 803726F4 7C0803A6 */ mtlr r0 +/* 803726F8 4E800020 */ blr +.size func_803725f8, . - func_803725f8 + + +.global func_803726fc +.type func_803726fc, @function +func_803726fc: +/* 803726FC 7C0802A6 */ mflr r0 +/* 80372700 90010004 */ stw r0, 4(r1) +/* 80372704 9421FFE0 */ stwu r1, -0x20(r1) +/* 80372708 93E1001C */ stw r31, 0x1c(r1) +/* 8037270C 7C9F2379 */ or. r31, r4, r4 +/* 80372710 93C10018 */ stw r30, 0x18(r1) +/* 80372714 93A10014 */ stw r29, 0x14(r1) +/* 80372718 3BA30000 */ addi r29, r3, 0x0 +/* 8037271C 4180000C */ blt- lbl_80372728 +/* 80372720 2C1F001F */ cmpwi r31, 0x1f +/* 80372724 4081000C */ ble- lbl_80372730 +lbl_80372728: +/* 80372728 38600000 */ li r3, 0x0 +/* 8037272C 48000074 */ b lbl_803727a0 +lbl_80372730: +/* 80372730 4BFFC3A5 */ bl func_8036ead4 +/* 80372734 801D02D4 */ lwz r0, 0x2d4(r29) +/* 80372738 3BC30000 */ addi r30, r3, 0x0 +/* 8037273C 7C00F800 */ cmpw r0, r31 +/* 80372740 41820054 */ beq- lbl_80372794 +/* 80372744 93FD02D4 */ stw r31, 0x2d4(r29) +/* 80372748 7FBFEB78 */ mr r31, r29 +lbl_8037274c: +/* 8037274C 801F02CC */ lwz r0, 0x2cc(r31) +/* 80372750 2C000000 */ cmpwi r0, 0x0 +/* 80372754 4181002C */ bgt- lbl_80372780 +/* 80372758 7FE3FB78 */ mr r3, r31 +/* 8037275C 4BFFF141 */ bl func_8037189c +/* 80372760 801F02D0 */ lwz r0, 0x2d0(r31) +/* 80372764 38830000 */ addi r4, r3, 0x0 +/* 80372768 7C002000 */ cmpw r0, r4 +/* 8037276C 41820014 */ beq- lbl_80372780 +/* 80372770 7FE3FB78 */ mr r3, r31 +/* 80372774 4BFFF165 */ bl func_803718d8 +/* 80372778 7C7F1B79 */ or. r31, r3, r3 +/* 8037277C 4082FFD0 */ bne+ lbl_8037274c +lbl_80372780: +/* 80372780 800DCA9C */ lwz r0, lbl_805c68bc@sda21(0) +/* 80372784 2C000000 */ cmpwi r0, 0x0 +/* 80372788 4182000C */ beq- lbl_80372794 +/* 8037278C 38600000 */ li r3, 0x0 +/* 80372790 4BFFF359 */ bl func_80371ae8 +lbl_80372794: +/* 80372794 7FC3F378 */ mr r3, r30 +/* 80372798 4BFFC365 */ bl func_8036eafc +/* 8037279C 38600001 */ li r3, 0x1 +lbl_803727a0: +/* 803727A0 80010024 */ lwz r0, 0x24(r1) +/* 803727A4 83E1001C */ lwz r31, 0x1c(r1) +/* 803727A8 83C10018 */ lwz r30, 0x18(r1) +/* 803727AC 83A10014 */ lwz r29, 0x14(r1) +/* 803727B0 38210020 */ addi r1, r1, 0x20 +/* 803727B4 7C0803A6 */ mtlr r0 +/* 803727B8 4E800020 */ blr +.size func_803726fc, . - func_803726fc + + +.global func_803727bc +.type func_803727bc, @function +func_803727bc: +/* 803727BC 806302D4 */ lwz r3, 0x2d4(r3) +/* 803727C0 4E800020 */ blr +.size func_803727bc, . - func_803727bc + diff --git a/asm/Dolphin/os/OSTime-data.s b/asm/Dolphin/os/OSTime-data.s new file mode 100644 index 0000000..dc26c61 --- /dev/null +++ b/asm/Dolphin/os/OSTime-data.s @@ -0,0 +1,41 @@ +.include "macros.inc" + +.section .data + +.balign 8 + +.global lbl_804ef5a8 +.type lbl_804ef5a8, @object +lbl_804ef5a8: +/* 804EF5A8 00000000 */ .4byte 0x00000000 +/* 804EF5AC 0000001F */ .4byte 0x0000001f +/* 804EF5B0 0000003B */ .4byte 0x0000003b +/* 804EF5B4 0000005A */ .4byte 0x0000005a +/* 804EF5B8 00000078 */ .4byte 0x00000078 +/* 804EF5BC 00000097 */ .4byte 0x00000097 +/* 804EF5C0 000000B5 */ .4byte 0x000000b5 +/* 804EF5C4 000000D4 */ .4byte 0x000000d4 +/* 804EF5C8 000000F3 */ .4byte 0x000000f3 +/* 804EF5CC 00000111 */ .4byte 0x00000111 +/* 804EF5D0 00000130 */ .4byte 0x00000130 +/* 804EF5D4 0000014E */ .4byte 0x0000014e +.size lbl_804ef5a8, . - lbl_804ef5a8 + + +.global lbl_804ef5d8 +.type lbl_804ef5d8, @object +lbl_804ef5d8: +/* 804EF5D8 00000000 */ .4byte 0x00000000 +/* 804EF5DC 0000001F */ .4byte 0x0000001f +/* 804EF5E0 0000003C */ .4byte 0x0000003c +/* 804EF5E4 0000005B */ .4byte 0x0000005b +/* 804EF5E8 00000079 */ .4byte 0x00000079 +/* 804EF5EC 00000098 */ .4byte 0x00000098 +/* 804EF5F0 000000B6 */ .4byte 0x000000b6 +/* 804EF5F4 000000D5 */ .4byte 0x000000d5 +/* 804EF5F8 000000F4 */ .4byte 0x000000f4 +/* 804EF5FC 00000112 */ .4byte 0x00000112 +/* 804EF600 00000131 */ .4byte 0x00000131 +/* 804EF604 0000014F */ .4byte 0x0000014f +.size lbl_804ef5d8, . - lbl_804ef5d8 + diff --git a/asm/Dolphin/os/OSTime.s b/asm/Dolphin/os/OSTime.s new file mode 100644 index 0000000..f12669d --- /dev/null +++ b/asm/Dolphin/os/OSTime.s @@ -0,0 +1,312 @@ +.include "macros.inc" + +.section .text + +.global func_803727c4 +.type func_803727c4, @function +func_803727c4: +/* 803727C4 7C6D42E6 */ mftbu r3 +/* 803727C8 7C8C42E6 */ mftb r4, 0x10c +/* 803727CC 7CAD42E6 */ mftbu r5 +/* 803727D0 7C032800 */ cmpw r3, r5 +/* 803727D4 4082FFF0 */ bne- func_803727c4 +/* 803727D8 4E800020 */ blr +.size func_803727c4, . - func_803727c4 + + +.global func_803727dc +.type func_803727dc, @function +func_803727dc: +/* 803727DC 7C6C42E6 */ mftb r3, 0x10c +/* 803727E0 4E800020 */ blr +.size func_803727dc, . - func_803727dc + + +.global func_803727e4 +.type func_803727e4, @function +func_803727e4: +/* 803727E4 7C0802A6 */ mflr r0 +/* 803727E8 90010004 */ stw r0, 4(r1) +/* 803727EC 9421FFE0 */ stwu r1, -0x20(r1) +/* 803727F0 93E1001C */ stw r31, 0x1c(r1) +/* 803727F4 93C10018 */ stw r30, 0x18(r1) +/* 803727F8 93A10014 */ stw r29, 0x14(r1) +/* 803727FC 4BFFC2D9 */ bl func_8036ead4 +/* 80372800 7C7F1B78 */ mr r31, r3 +/* 80372804 4BFFFFC1 */ bl func_803727c4 +/* 80372808 3CC08000 */ lis r6, 0x8000 +/* 8037280C 80A630DC */ lwz r5, 0x30dc(r6) +/* 80372810 800630D8 */ lwz r0, 0x30d8(r6) +/* 80372814 7FA52014 */ addc r29, r5, r4 +/* 80372818 7FC01914 */ adde r30, r0, r3 +/* 8037281C 7FE3FB78 */ mr r3, r31 +/* 80372820 4BFFC2DD */ bl func_8036eafc +/* 80372824 7FA4EB78 */ mr r4, r29 +/* 80372828 7FC3F378 */ mr r3, r30 +/* 8037282C 80010024 */ lwz r0, 0x24(r1) +/* 80372830 83E1001C */ lwz r31, 0x1c(r1) +/* 80372834 83C10018 */ lwz r30, 0x18(r1) +/* 80372838 83A10014 */ lwz r29, 0x14(r1) +/* 8037283C 38210020 */ addi r1, r1, 0x20 +/* 80372840 7C0803A6 */ mtlr r0 +/* 80372844 4E800020 */ blr +.size func_803727e4, . - func_803727e4 + + +.global func_80372848 +.type func_80372848, @function +func_80372848: +/* 80372848 3CA09249 */ lis r5, 0x9249 +/* 8037284C 38052493 */ addi r0, r5, 0x2493 +/* 80372850 38E30006 */ addi r7, r3, 0x6 +/* 80372854 7CC03896 */ mulhw r6, r0, r7 +/* 80372858 3CA0B38D */ lis r5, 0xb38d +/* 8037285C 3805F9B1 */ addi r0, r5, -0x64f +/* 80372860 7C001896 */ mulhw r0, r0, r3 +/* 80372864 7CA63A14 */ add r5, r6, r7 +/* 80372868 7CA51670 */ srawi r5, r5, 2 +/* 8037286C 54A60FFE */ srwi r6, r5, 0x1f +/* 80372870 7CA53214 */ add r5, r5, r6 +/* 80372874 7C001A14 */ add r0, r0, r3 +/* 80372878 1CC50007 */ mulli r6, r5, 0x7 +/* 8037287C 7C004670 */ srawi r0, r0, 8 +/* 80372880 54050FFE */ srwi r5, r0, 0x1f +/* 80372884 7CA02A14 */ add r5, r0, r5 +/* 80372888 7C063850 */ subf r0, r6, r7 +/* 8037288C 1D65016D */ mulli r11, r5, 0x16d +/* 80372890 90040018 */ stw r0, 0x18(r4) +/* 80372894 48000004 */ b lbl_80372898 +lbl_80372898: +/* 80372898 3CC051EC */ lis r6, 0x51ec +/* 8037289C 3946851F */ addi r10, r6, -0x7ae1 +/* 803728A0 48000004 */ b lbl_803728a4 +lbl_803728a4: +/* 803728A4 4800000C */ b lbl_803728b0 +lbl_803728a8: +/* 803728A8 396BFE93 */ addi r11, r11, -0x16d +/* 803728AC 38A5FFFF */ addi r5, r5, -0x1 +lbl_803728b0: +/* 803728B0 2C050001 */ cmpwi r5, 0x1 +/* 803728B4 4080000C */ bge- lbl_803728c0 +/* 803728B8 38000000 */ li r0, 0x0 +/* 803728BC 48000038 */ b lbl_803728f4 +lbl_803728c0: +/* 803728C0 3805FFFF */ addi r0, r5, -0x1 +/* 803728C4 7C0A0096 */ mulhw r0, r10, r0 +/* 803728C8 7C083E70 */ srawi r8, r0, 7 +/* 803728CC 7C062E70 */ srawi r6, r0, 5 +/* 803728D0 38050003 */ addi r0, r5, 0x3 +/* 803728D4 54C70FFE */ srwi r7, r6, 0x1f +/* 803728D8 7C001670 */ srawi r0, r0, 2 +/* 803728DC 55090FFE */ srwi r9, r8, 0x1f +/* 803728E0 7CC63A14 */ add r6, r6, r7 +/* 803728E4 7C000194 */ addze r0, r0 +/* 803728E8 7CE84A14 */ add r7, r8, r9 +/* 803728EC 7C060050 */ subf r0, r6, r0 +/* 803728F0 7C070214 */ add r0, r7, r0 +lbl_803728f4: +/* 803728F4 7C0B0214 */ add r0, r11, r0 +/* 803728F8 7C030000 */ cmpw r3, r0 +/* 803728FC 4180FFAC */ blt+ lbl_803728a8 +/* 80372900 7CA61670 */ srawi r6, r5, 2 +/* 80372904 90A40014 */ stw r5, 0x14(r4) +/* 80372908 7CC60194 */ addze r6, r6 +/* 8037290C 54C6103A */ slwi r6, r6, 2 +/* 80372910 7CC62810 */ subfc r6, r6, r5 +/* 80372914 7C001850 */ subf r0, r0, r3 +/* 80372918 2C060000 */ cmpwi r6, 0x0 +/* 8037291C 9004001C */ stw r0, 0x1c(r4) +/* 80372920 38E00001 */ li r7, 0x1 +/* 80372924 39000000 */ li r8, 0x0 +/* 80372928 40820030 */ bne- lbl_80372958 +/* 8037292C 3C6051EC */ lis r3, 0x51ec +/* 80372930 3863851F */ addi r3, r3, -0x7ae1 +/* 80372934 7C632896 */ mulhw r3, r3, r5 +/* 80372938 7C632E70 */ srawi r3, r3, 5 +/* 8037293C 54660FFE */ srwi r6, r3, 0x1f +/* 80372940 7C633214 */ add r3, r3, r6 +/* 80372944 1C630064 */ mulli r3, r3, 0x64 +/* 80372948 7C632850 */ subf r3, r3, r5 +/* 8037294C 2C030000 */ cmpwi r3, 0x0 +/* 80372950 41820008 */ beq- lbl_80372958 +/* 80372954 7CE83B78 */ mr r8, r7 +lbl_80372958: +/* 80372958 2C080000 */ cmpwi r8, 0x0 +/* 8037295C 40820030 */ bne- lbl_8037298c +/* 80372960 3C6051EC */ lis r3, 0x51ec +/* 80372964 3863851F */ addi r3, r3, -0x7ae1 +/* 80372968 7C632896 */ mulhw r3, r3, r5 +/* 8037296C 7C633E70 */ srawi r3, r3, 7 +/* 80372970 54660FFE */ srwi r6, r3, 0x1f +/* 80372974 7C633214 */ add r3, r3, r6 +/* 80372978 1C630190 */ mulli r3, r3, 0x190 +/* 8037297C 7C632850 */ subf r3, r3, r5 +/* 80372980 2C030000 */ cmpwi r3, 0x0 +/* 80372984 41820008 */ beq- lbl_8037298c +/* 80372988 38E00000 */ li r7, 0x0 +lbl_8037298c: +/* 8037298C 2C070000 */ cmpwi r7, 0x0 +/* 80372990 41820010 */ beq- lbl_803729a0 +/* 80372994 3C60804F */ lis r3, lbl_804ef5d8@ha +/* 80372998 38C3F5D8 */ addi r6, r3, lbl_804ef5d8@l +/* 8037299C 4800000C */ b lbl_803729a8 +lbl_803729a0: +/* 803729A0 3C60804F */ lis r3, lbl_804ef5a8@ha +/* 803729A4 38C3F5A8 */ addi r6, r3, lbl_804ef5a8@l +lbl_803729a8: +/* 803729A8 38E0000C */ li r7, 0xc +/* 803729AC 38600030 */ li r3, 0x30 +/* 803729B0 48000004 */ b lbl_803729b4 +lbl_803729b4: +/* 803729B4 48000004 */ b lbl_803729b8 +lbl_803729b8: +/* 803729B8 3863FFFC */ addi r3, r3, -0x4 +/* 803729BC 7CA6182E */ lwzx r5, r6, r3 +/* 803729C0 38E7FFFF */ addi r7, r7, -0x1 +/* 803729C4 7C002800 */ cmpw r0, r5 +/* 803729C8 4180FFF0 */ blt+ lbl_803729b8 +/* 803729CC 90E40010 */ stw r7, 0x10(r4) +/* 803729D0 7C66182E */ lwzx r3, r6, r3 +/* 803729D4 7C630050 */ subf r3, r3, r0 +/* 803729D8 38030001 */ addi r0, r3, 0x1 +/* 803729DC 9004000C */ stw r0, 0xc(r4) +/* 803729E0 4E800020 */ blr +.size func_80372848, . - func_80372848 + + +.global func_803729e4 +.type func_803729e4, @function +func_803729e4: +/* 803729E4 7C0802A6 */ mflr r0 +/* 803729E8 90010004 */ stw r0, 4(r1) +/* 803729EC 9421FFC8 */ stwu r1, -0x38(r1) +/* 803729F0 BF21001C */ stmw r25, 0x1c(r1) +/* 803729F4 7C7D1B78 */ mr r29, r3 +/* 803729F8 7C9E2378 */ mr r30, r4 +/* 803729FC 7CBF2B78 */ mr r31, r5 +/* 80372A00 3F608000 */ lis r27, 0x8000 +/* 80372A04 801B00F8 */ lwz r0, 0xf8(r27) +/* 80372A08 7FA3EB78 */ mr r3, r29 +/* 80372A0C 7FC4F378 */ mr r4, r30 +/* 80372A10 5406F0BE */ srwi r6, r0, 2 +/* 80372A14 38A00000 */ li r5, 0x0 +/* 80372A18 48020DB5 */ bl func_803937cc +/* 80372A1C 7C7A1B78 */ mr r26, r3 +/* 80372A20 38A00000 */ li r5, 0x0 +/* 80372A24 7C992378 */ mr r25, r4 +/* 80372A28 6F448000 */ xoris r4, r26, 0x8000 +/* 80372A2C 6CA38000 */ xoris r3, r5, 0x8000 +/* 80372A30 7C05C810 */ subfc r0, r5, r25 +/* 80372A34 7C632110 */ subfe r3, r3, r4 +/* 80372A38 7C642110 */ subfe r3, r4, r4 +/* 80372A3C 7C6300D0 */ neg r3, r3 +/* 80372A40 2C030000 */ cmpwi r3, 0x0 +/* 80372A44 41820014 */ beq- lbl_80372a58 +/* 80372A48 801B00F8 */ lwz r0, 0xf8(r27) +/* 80372A4C 5400F0BE */ srwi r0, r0, 2 +/* 80372A50 7F390014 */ addc r25, r25, r0 +/* 80372A54 7F5A2914 */ adde r26, r26, r5 +lbl_80372a58: +/* 80372A58 38800008 */ li r4, 0x8 +/* 80372A5C 7C7A21D6 */ mullw r3, r26, r4 +/* 80372A60 7C192016 */ mulhwu r0, r25, r4 +/* 80372A64 3F608000 */ lis r27, 0x8000 +/* 80372A68 80DB00F8 */ lwz r6, 0xf8(r27) +/* 80372A6C 3CA0431C */ lis r5, 0x431c +/* 80372A70 38A5DE83 */ addi r5, r5, -0x217d +/* 80372A74 54C6F0BE */ srwi r6, r6, 2 +/* 80372A78 7CA53016 */ mulhwu r5, r5, r6 +/* 80372A7C 54A68BFE */ srwi r6, r5, 0xf +/* 80372A80 3B800000 */ li r28, 0x0 +/* 80372A84 7C630214 */ add r3, r3, r0 +/* 80372A88 7C19E1D6 */ mullw r0, r25, r28 +/* 80372A8C 7C9921D6 */ mullw r4, r25, r4 +/* 80372A90 7C630214 */ add r3, r3, r0 +/* 80372A94 38A00000 */ li r5, 0x0 +/* 80372A98 48020B19 */ bl func_803935b0 +/* 80372A9C 38A00000 */ li r5, 0x0 +/* 80372AA0 38C003E8 */ li r6, 0x3e8 +/* 80372AA4 48020D29 */ bl func_803937cc +/* 80372AA8 909F0024 */ stw r4, 0x24(r31) +/* 80372AAC 3C601062 */ lis r3, 0x1062 +/* 80372AB0 38A34DD3 */ addi r5, r3, 0x4dd3 +/* 80372AB4 801B00F8 */ lwz r0, 0xf8(r27) +/* 80372AB8 7F43D378 */ mr r3, r26 +/* 80372ABC 7F24CB78 */ mr r4, r25 +/* 80372AC0 5400F0BE */ srwi r0, r0, 2 +/* 80372AC4 7C050016 */ mulhwu r0, r5, r0 +/* 80372AC8 5406D1BE */ srwi r6, r0, 6 +/* 80372ACC 38A00000 */ li r5, 0x0 +/* 80372AD0 48020AE1 */ bl func_803935b0 +/* 80372AD4 38A00000 */ li r5, 0x0 +/* 80372AD8 38C003E8 */ li r6, 0x3e8 +/* 80372ADC 48020CF1 */ bl func_803937cc +/* 80372AE0 909F0020 */ stw r4, 0x20(r31) +/* 80372AE4 7FD9F010 */ subfc r30, r25, r30 +/* 80372AE8 7FBAE910 */ subfe r29, r26, r29 +/* 80372AEC 801B00F8 */ lwz r0, 0xf8(r27) +/* 80372AF0 3CA00001 */ lis r5, 1 +/* 80372AF4 3B255180 */ addi r25, r5, 0x5180 +/* 80372AF8 7FA3EB78 */ mr r3, r29 +/* 80372AFC 5406F0BE */ srwi r6, r0, 2 +/* 80372B00 7FC4F378 */ mr r4, r30 +/* 80372B04 38A00000 */ li r5, 0x0 +/* 80372B08 48020AA9 */ bl func_803935b0 +/* 80372B0C 7F26CB78 */ mr r6, r25 +/* 80372B10 38A00000 */ li r5, 0x0 +/* 80372B14 48020A9D */ bl func_803935b0 +/* 80372B18 3CA0000B */ lis r5, 0xb +/* 80372B1C 801B00F8 */ lwz r0, 0xf8(r27) +/* 80372B20 38A52575 */ addi r5, r5, 0x2575 +/* 80372B24 7F442814 */ addc r26, r4, r5 +/* 80372B28 5406F0BE */ srwi r6, r0, 2 +/* 80372B2C 7C03E114 */ adde r0, r3, r28 +/* 80372B30 7FA3EB78 */ mr r3, r29 +/* 80372B34 7FC4F378 */ mr r4, r30 +/* 80372B38 38A00000 */ li r5, 0x0 +/* 80372B3C 48020A75 */ bl func_803935b0 +/* 80372B40 7F26CB78 */ mr r6, r25 +/* 80372B44 38A00000 */ li r5, 0x0 +/* 80372B48 48020C85 */ bl func_803937cc +/* 80372B4C 7C9B2378 */ mr r27, r4 +/* 80372B50 2C1B0000 */ cmpwi r27, 0x0 +/* 80372B54 40800010 */ bge- lbl_80372b64 +/* 80372B58 3F7B0001 */ addis r27, r27, 1 +/* 80372B5C 3B5AFFFF */ addi r26, r26, -0x1 +/* 80372B60 3B7B5180 */ addi r27, r27, 0x5180 +lbl_80372b64: +/* 80372B64 7F43D378 */ mr r3, r26 +/* 80372B68 7FE4FB78 */ mr r4, r31 +/* 80372B6C 4BFFFCDD */ bl func_80372848 +/* 80372B70 3C608889 */ lis r3, 0x8889 +/* 80372B74 38A38889 */ addi r5, r3, -0x7777 +/* 80372B78 7C05D896 */ mulhw r0, r5, r27 +/* 80372B7C 7C80DA14 */ add r4, r0, r27 +/* 80372B80 7C802E70 */ srawi r0, r4, 5 +/* 80372B84 54030FFE */ srwi r3, r0, 0x1f +/* 80372B88 7CE01A14 */ add r7, r0, r3 +/* 80372B8C 7C053896 */ mulhw r0, r5, r7 +/* 80372B90 7C003A14 */ add r0, r0, r7 +/* 80372B94 7C052E70 */ srawi r5, r0, 5 +/* 80372B98 7C002E70 */ srawi r0, r0, 5 +/* 80372B9C 54030FFE */ srwi r3, r0, 0x1f +/* 80372BA0 7C601A14 */ add r3, r0, r3 +/* 80372BA4 7C802E70 */ srawi r0, r4, 5 +/* 80372BA8 54A60FFE */ srwi r6, r5, 0x1f +/* 80372BAC 1C83003C */ mulli r4, r3, 0x3c +/* 80372BB0 54030FFE */ srwi r3, r0, 0x1f +/* 80372BB4 7CA53214 */ add r5, r5, r6 +/* 80372BB8 7C001A14 */ add r0, r0, r3 +/* 80372BBC 90BF0008 */ stw r5, 8(r31) +/* 80372BC0 1C00003C */ mulli r0, r0, 0x3c +/* 80372BC4 7C643850 */ subf r3, r4, r7 +/* 80372BC8 907F0004 */ stw r3, 4(r31) +/* 80372BCC 7C00D850 */ subf r0, r0, r27 +/* 80372BD0 901F0000 */ stw r0, 0(r31) +/* 80372BD4 BB21001C */ lmw r25, 0x1c(r1) +/* 80372BD8 8001003C */ lwz r0, 0x3c(r1) +/* 80372BDC 38210038 */ addi r1, r1, 0x38 +/* 80372BE0 7C0803A6 */ mtlr r0 +/* 80372BE4 4E800020 */ blr +.size func_803729e4, . - func_803729e4 + -- cgit v1.2.3-13-gbd6f