summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OS.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/Dolphin/os/OS.s')
-rw-r--r--asm/Dolphin/os/OS.s746
1 files changed, 746 insertions, 0 deletions
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
+