diff options
author | Revo <projectrevotpp@hotmail.com> | 2020-10-02 01:04:51 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-02 01:04:51 -0400 |
commit | d889181a5de7fe2a00a8743455b42faaac2c9fc0 (patch) | |
tree | cd02e76a68a4b6b2278883849f85e7b03ee6654c /asm/SDK | |
parent | 9dee5dad1c54fe3ed3e3045ab4f1da960172e644 (diff) | |
parent | af9e714edb2080f2f4ef4cccc5789235a7682b31 (diff) |
Merge pull request #114 from mparisi20/master
More OS splits
Diffstat (limited to 'asm/SDK')
-rw-r--r-- | asm/SDK/DebuggerDriver.s | 8 | ||||
-rw-r--r-- | asm/SDK/HBM/HBMBase.s | 206 | ||||
-rw-r--r-- | asm/SDK/OS/OS.s | 18 | ||||
-rw-r--r-- | asm/SDK/OS/OSAlarm.s | 8 | ||||
-rw-r--r-- | asm/SDK/OS/OSContext.s | 4 | ||||
-rw-r--r-- | asm/SDK/OS/OSError.s | 12 | ||||
-rw-r--r-- | asm/SDK/OS/OSExec.s | 40 | ||||
-rw-r--r-- | asm/SDK/OS/OSFatal.s | 8 | ||||
-rw-r--r-- | asm/SDK/OS/OSFont.s | 4 | ||||
-rw-r--r-- | asm/SDK/OS/OSInterrupt.s | 599 | ||||
-rw-r--r-- | asm/SDK/OS/OSLink.s | 12 | ||||
-rw-r--r-- | asm/SDK/OS/OSMemory.s | 582 | ||||
-rw-r--r-- | asm/SDK/OS/OSMessage.s | 150 | ||||
-rw-r--r-- | asm/SDK/OS/OSMutex.s | 240 | ||||
-rw-r--r-- | asm/SDK/OS/OSReboot.s | 38 | ||||
-rw-r--r-- | asm/SDK/OS/OSReset.s | 554 | ||||
-rw-r--r-- | asm/SDK/OS/OSRtc.s | 747 | ||||
-rw-r--r-- | asm/SDK/OS/OSSemaphore.s | 112 | ||||
-rw-r--r-- | asm/SDK/OS/OSSync.s | 44 | ||||
-rw-r--r-- | asm/SDK/OS/OSThread.s | 1758 | ||||
-rw-r--r-- | asm/SDK/exi2.s | 2 |
21 files changed, 4991 insertions, 155 deletions
diff --git a/asm/SDK/DebuggerDriver.s b/asm/SDK/DebuggerDriver.s index 19913f4..bf83ef9 100644 --- a/asm/SDK/DebuggerDriver.s +++ b/asm/SDK/DebuggerDriver.s @@ -59,18 +59,18 @@ DBInitInterrupts: /* 801DA01C 001D5C7C 3C 60 00 02 */ lis r3, 0x00018000@ha
/* 801DA020 001D5C80 90 01 00 14 */ stw r0, 0x14(r1)
/* 801DA024 001D5C84 38 63 80 00 */ addi r3, r3, 0x00018000@l
-/* 801DA028 001D5C88 48 09 4A C5 */ bl func_8026EAEC
+/* 801DA028 001D5C88 48 09 4A C5 */ bl __OSMaskInterrupts
/* 801DA02C 001D5C8C 38 60 00 40 */ li r3, 0x40
-/* 801DA030 001D5C90 48 09 4A BD */ bl func_8026EAEC
+/* 801DA030 001D5C90 48 09 4A BD */ bl __OSMaskInterrupts
/* 801DA034 001D5C94 3C 60 80 1E */ lis r3, __DBMtrHandler@ha
/* 801DA038 001D5C98 3C 80 80 1E */ lis r4, __DBIntrHandler@ha
/* 801DA03C 001D5C9C 38 63 9F 70 */ addi r3, r3, __DBMtrHandler@l
/* 801DA040 001D5CA0 90 6D 9F F4 */ stw r3, lbl_8063F2B4-_SDA_BASE_(r13)
/* 801DA044 001D5CA4 38 84 9F 94 */ addi r4, r4, __DBIntrHandler@l
/* 801DA048 001D5CA8 38 60 00 19 */ li r3, 0x19
-/* 801DA04C 001D5CAC 48 09 47 5D */ bl func_8026E7A8
+/* 801DA04C 001D5CAC 48 09 47 5D */ bl __OSSetInterruptHandler
/* 801DA050 001D5CB0 38 60 00 40 */ li r3, 0x40
-/* 801DA054 001D5CB4 48 09 4B 19 */ bl func_8026EB6C
+/* 801DA054 001D5CB4 48 09 4B 19 */ bl __OSUnmaskInterrupts
/* 801DA058 001D5CB8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801DA05C 001D5CBC 7C 08 03 A6 */ mtlr r0
/* 801DA060 001D5CC0 38 21 00 10 */ addi r1, r1, 0x10
diff --git a/asm/SDK/HBM/HBMBase.s b/asm/SDK/HBM/HBMBase.s index a7e9302..30c1e56 100644 --- a/asm/SDK/HBM/HBMBase.s +++ b/asm/SDK/HBM/HBMBase.s @@ -310,7 +310,7 @@ HBMCreateMemorySound: /* 8039A450 003960B0 83 AD B2 E0 */ lwz r29, lbl_806405A0-_SDA_BASE_(r13)
/* 8039A454 003960B4 3B FF CE D8 */ addi r31, r31, lbl_8063CED8@l
/* 8039A458 003960B8 7F E3 FB 78 */ mr r3, r31
-/* 8039A45C 003960BC 4B ED 54 ED */ bl func_8026F948
+/* 8039A45C 003960BC 4B ED 54 ED */ bl OSLockMutex
/* 8039A460 003960C0 38 7E CE C8 */ addi r3, r30, -12600
/* 8039A464 003960C4 38 80 01 8C */ li r4, 0x18c
/* 8039A468 003960C8 4B EF D2 BD */ bl func_80297724
@@ -339,7 +339,7 @@ lbl_8039A480: /* 8039A4BC 0039611C 38 A0 00 01 */ li r5, 1
/* 8039A4C0 00396120 48 00 8F 5D */ bl create_sound__Q210homebutton10HomeButtonFPQ34nw4r3snd12SoundArchiveb
/* 8039A4C4 00396124 7F E3 FB 78 */ mr r3, r31
-/* 8039A4C8 00396128 4B ED 55 5D */ bl func_8026FA24
+/* 8039A4C8 00396128 4B ED 55 5D */ bl OSUnlockMutex
/* 8039A4CC 0039612C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8039A4D0 00396130 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8039A4D4 00396134 83 C1 00 18 */ lwz r30, 0x18(r1)
@@ -379,11 +379,11 @@ HBMUpdateSound: /* 8039A544 003961A4 3F E0 80 64 */ lis r31, lbl_8063CED8@ha
/* 8039A548 003961A8 3B FF CE D8 */ addi r31, r31, lbl_8063CED8@l
/* 8039A54C 003961AC 7F E3 FB 78 */ mr r3, r31
-/* 8039A550 003961B0 4B ED 53 F9 */ bl func_8026F948
+/* 8039A550 003961B0 4B ED 53 F9 */ bl OSLockMutex
/* 8039A554 003961B4 80 7E 05 D0 */ lwz r3, 0x5d0(r30)
/* 8039A558 003961B8 4B FD EF BD */ bl Update__Q34nw4r3snd18SoundArchivePlayerFv
/* 8039A55C 003961BC 7F E3 FB 78 */ mr r3, r31
-/* 8039A560 003961C0 4B ED 54 C5 */ bl func_8026FA24
+/* 8039A560 003961C0 4B ED 54 C5 */ bl OSUnlockMutex
lbl_8039A564:
/* 8039A564 003961C4 3B E0 00 00 */ li r31, 0
lbl_8039A568:
@@ -455,7 +455,7 @@ lbl_8039A630: /* 8039A65C 003962BC 4B EC F0 C9 */ bl OSCreateAlarm
/* 8039A660 003962C0 3C 60 80 64 */ lis r3, lbl_8063CED8@ha
/* 8039A664 003962C4 38 63 CE D8 */ addi r3, r3, lbl_8063CED8@l
-/* 8039A668 003962C8 4B ED 52 A9 */ bl func_8026F910
+/* 8039A668 003962C8 4B ED 52 A9 */ bl OSInitMutex
/* 8039A66C 003962CC 38 00 00 00 */ li r0, 0
/* 8039A670 003962D0 7F 83 E3 78 */ mr r3, r28
/* 8039A674 003962D4 90 1C 05 D0 */ stw r0, 0x5d0(r28)
@@ -1653,7 +1653,7 @@ lbl_8039B718: /* 8039B768 003973C8 3F E0 80 64 */ lis r31, lbl_8063CED8@ha
/* 8039B76C 003973CC 3B FF CE D8 */ addi r31, r31, lbl_8063CED8@l
/* 8039B770 003973D0 7F E3 FB 78 */ mr r3, r31
-/* 8039B774 003973D4 4B ED 41 D5 */ bl func_8026F948
+/* 8039B774 003973D4 4B ED 41 D5 */ bl OSLockMutex
/* 8039B778 003973D8 3B 80 00 00 */ li r28, 0
/* 8039B77C 003973DC 48 00 00 18 */ b lbl_8039B794
lbl_8039B780:
@@ -1668,7 +1668,7 @@ lbl_8039B794: /* 8039B79C 003973FC 7C 1C 00 40 */ cmplw r28, r0
/* 8039B7A0 00397400 41 80 FF E0 */ blt lbl_8039B780
/* 8039B7A4 00397404 7F E3 FB 78 */ mr r3, r31
-/* 8039B7A8 00397408 4B ED 42 7D */ bl func_8026FA24
+/* 8039B7A8 00397408 4B ED 42 7D */ bl OSUnlockMutex
lbl_8039B7AC:
/* 8039B7AC 0039740C 7F C3 F3 78 */ mr r3, r30
/* 8039B7B0 00397410 38 80 00 00 */ li r4, 0
@@ -2510,7 +2510,7 @@ lbl_8039C35C: /* 8039C37C 00397FDC 3F 60 80 64 */ lis r27, lbl_8063CED8@ha
/* 8039C380 00397FE0 3B 7B CE D8 */ addi r27, r27, lbl_8063CED8@l
/* 8039C384 00397FE4 7F 63 DB 78 */ mr r3, r27
-/* 8039C388 00397FE8 4B ED 35 C1 */ bl func_8026F948
+/* 8039C388 00397FE8 4B ED 35 C1 */ bl OSLockMutex
/* 8039C38C 00397FEC 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 8039C390 00397FF0 4B FD E6 5D */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039C394 00397FF4 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -2522,7 +2522,7 @@ lbl_8039C35C: /* 8039C3AC 0039800C 39 00 00 00 */ li r8, 0
/* 8039C3B0 00398010 4B FD FD 6D */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039C3B4 00398014 7F 63 DB 78 */ mr r3, r27
-/* 8039C3B8 00398018 4B ED 36 6D */ bl func_8026FA24
+/* 8039C3B8 00398018 4B ED 36 6D */ bl OSUnlockMutex
lbl_8039C3BC:
/* 8039C3BC 0039801C 38 00 00 02 */ li r0, 2
/* 8039C3C0 00398020 90 1D 00 10 */ stw r0, 0x10(r29)
@@ -2905,7 +2905,7 @@ lbl_8039C930: /* 8039C950 003985B0 3F 80 80 64 */ lis r28, lbl_8063CED8@ha
/* 8039C954 003985B4 3B 9C CE D8 */ addi r28, r28, lbl_8063CED8@l
/* 8039C958 003985B8 7F 83 E3 78 */ mr r3, r28
-/* 8039C95C 003985BC 4B ED 2F ED */ bl func_8026F948
+/* 8039C95C 003985BC 4B ED 2F ED */ bl OSLockMutex
/* 8039C960 003985C0 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 8039C964 003985C4 4B FD E0 89 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039C968 003985C8 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -2917,7 +2917,7 @@ lbl_8039C930: /* 8039C980 003985E0 39 00 00 00 */ li r8, 0
/* 8039C984 003985E4 4B FD F7 99 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039C988 003985E8 7F 83 E3 78 */ mr r3, r28
-/* 8039C98C 003985EC 4B ED 30 99 */ bl func_8026FA24
+/* 8039C98C 003985EC 4B ED 30 99 */ bl OSUnlockMutex
/* 8039C990 003985F0 48 00 0D FC */ b lbl_8039D78C
/* 8039C994 003985F4 80 9D 00 14 */ lwz r4, 0x14(r29)
/* 8039C998 003985F8 54 80 10 3A */ slwi r0, r4, 2
@@ -3132,7 +3132,7 @@ lbl_8039CC80: /* 8039CCA0 00398900 3F 80 80 64 */ lis r28, lbl_8063CED8@ha
/* 8039CCA4 00398904 3B 9C CE D8 */ addi r28, r28, lbl_8063CED8@l
/* 8039CCA8 00398908 7F 83 E3 78 */ mr r3, r28
-/* 8039CCAC 0039890C 4B ED 2C 9D */ bl func_8026F948
+/* 8039CCAC 0039890C 4B ED 2C 9D */ bl OSLockMutex
/* 8039CCB0 00398910 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 8039CCB4 00398914 4B FD DD 39 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039CCB8 00398918 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -3144,7 +3144,7 @@ lbl_8039CC80: /* 8039CCD0 00398930 39 00 00 00 */ li r8, 0
/* 8039CCD4 00398934 4B FD F4 49 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039CCD8 00398938 7F 83 E3 78 */ mr r3, r28
-/* 8039CCDC 0039893C 4B ED 2D 49 */ bl func_8026FA24
+/* 8039CCDC 0039893C 4B ED 2D 49 */ bl OSUnlockMutex
lbl_8039CCE0:
/* 8039CCE0 00398940 38 00 00 08 */ li r0, 8
/* 8039CCE4 00398944 90 1D 00 10 */ stw r0, 0x10(r29)
@@ -3416,7 +3416,7 @@ lbl_8039D0C4: /* 8039D0D0 00398D30 3F 80 80 64 */ lis r28, lbl_8063CED8@ha
/* 8039D0D4 00398D34 3B 9C CE D8 */ addi r28, r28, lbl_8063CED8@l
/* 8039D0D8 00398D38 7F 83 E3 78 */ mr r3, r28
-/* 8039D0DC 00398D3C 4B ED 28 6D */ bl func_8026F948
+/* 8039D0DC 00398D3C 4B ED 28 6D */ bl OSLockMutex
/* 8039D0E0 00398D40 3B 20 00 00 */ li r25, 0
/* 8039D0E4 00398D44 48 00 00 18 */ b lbl_8039D0FC
lbl_8039D0E8:
@@ -3431,7 +3431,7 @@ lbl_8039D0FC: /* 8039D104 00398D64 7C 19 00 40 */ cmplw r25, r0
/* 8039D108 00398D68 41 80 FF E0 */ blt lbl_8039D0E8
/* 8039D10C 00398D6C 7F 83 E3 78 */ mr r3, r28
-/* 8039D110 00398D70 4B ED 29 15 */ bl func_8026FA24
+/* 8039D110 00398D70 4B ED 29 15 */ bl OSUnlockMutex
/* 8039D114 00398D74 48 00 06 78 */ b lbl_8039D78C
lbl_8039D118:
/* 8039D118 00398D78 C0 03 00 0C */ lfs f0, 0xc(r3)
@@ -3459,7 +3459,7 @@ lbl_8039D160: /* 8039D16C 00398DCC 3F 80 80 64 */ lis r28, lbl_8063CED8@ha
/* 8039D170 00398DD0 3B 9C CE D8 */ addi r28, r28, lbl_8063CED8@l
/* 8039D174 00398DD4 7F 83 E3 78 */ mr r3, r28
-/* 8039D178 00398DD8 4B ED 27 D1 */ bl func_8026F948
+/* 8039D178 00398DD8 4B ED 27 D1 */ bl OSLockMutex
/* 8039D17C 00398DDC 3B 20 00 00 */ li r25, 0
/* 8039D180 00398DE0 48 00 00 18 */ b lbl_8039D198
lbl_8039D184:
@@ -3474,7 +3474,7 @@ lbl_8039D198: /* 8039D1A0 00398E00 7C 19 00 40 */ cmplw r25, r0
/* 8039D1A4 00398E04 41 80 FF E0 */ blt lbl_8039D184
/* 8039D1A8 00398E08 7F 83 E3 78 */ mr r3, r28
-/* 8039D1AC 00398E0C 4B ED 28 79 */ bl func_8026FA24
+/* 8039D1AC 00398E0C 4B ED 28 79 */ bl OSUnlockMutex
/* 8039D1B0 00398E10 48 00 05 DC */ b lbl_8039D78C
/* 8039D1B4 00398E14 80 1D 00 B0 */ lwz r0, 0xb0(r29)
/* 8039D1B8 00398E18 38 60 00 12 */ li r3, 0x12
@@ -3487,7 +3487,7 @@ lbl_8039D198: /* 8039D1D4 00398E34 3F 80 80 64 */ lis r28, lbl_8063CED8@ha
/* 8039D1D8 00398E38 3B 9C CE D8 */ addi r28, r28, lbl_8063CED8@l
/* 8039D1DC 00398E3C 7F 83 E3 78 */ mr r3, r28
-/* 8039D1E0 00398E40 4B ED 27 69 */ bl func_8026F948
+/* 8039D1E0 00398E40 4B ED 27 69 */ bl OSLockMutex
/* 8039D1E4 00398E44 3B 20 00 00 */ li r25, 0
/* 8039D1E8 00398E48 48 00 00 18 */ b lbl_8039D200
lbl_8039D1EC:
@@ -3502,7 +3502,7 @@ lbl_8039D200: /* 8039D208 00398E68 7C 19 00 40 */ cmplw r25, r0
/* 8039D20C 00398E6C 41 80 FF E0 */ blt lbl_8039D1EC
/* 8039D210 00398E70 7F 83 E3 78 */ mr r3, r28
-/* 8039D214 00398E74 4B ED 28 11 */ bl func_8026FA24
+/* 8039D214 00398E74 4B ED 28 11 */ bl OSUnlockMutex
lbl_8039D218:
/* 8039D218 00398E78 88 1D 00 8E */ lbz r0, 0x8e(r29)
/* 8039D21C 00398E7C 2C 00 00 00 */ cmpwi r0, 0
@@ -3824,7 +3824,7 @@ lbl_8039D68C: /* 8039D698 003992F8 3F E0 80 64 */ lis r31, lbl_8063CED8@ha
/* 8039D69C 003992FC 3B FF CE D8 */ addi r31, r31, lbl_8063CED8@l
/* 8039D6A0 00399300 7F E3 FB 78 */ mr r3, r31
-/* 8039D6A4 00399304 4B ED 22 A5 */ bl func_8026F948
+/* 8039D6A4 00399304 4B ED 22 A5 */ bl OSLockMutex
/* 8039D6A8 00399308 3B 20 00 00 */ li r25, 0
/* 8039D6AC 0039930C 48 00 00 18 */ b lbl_8039D6C4
lbl_8039D6B0:
@@ -3839,7 +3839,7 @@ lbl_8039D6C4: /* 8039D6CC 0039932C 7C 19 00 40 */ cmplw r25, r0
/* 8039D6D0 00399330 41 80 FF E0 */ blt lbl_8039D6B0
/* 8039D6D4 00399334 7F E3 FB 78 */ mr r3, r31
-/* 8039D6D8 00399338 4B ED 23 4D */ bl func_8026FA24
+/* 8039D6D8 00399338 4B ED 23 4D */ bl OSUnlockMutex
/* 8039D6DC 0039933C 48 00 00 B0 */ b lbl_8039D78C
lbl_8039D6E0:
/* 8039D6E0 00399340 80 9D 04 04 */ lwz r4, 0x404(r29)
@@ -3872,7 +3872,7 @@ lbl_8039D73C: /* 8039D748 003993A8 3F E0 80 64 */ lis r31, lbl_8063CED8@ha
/* 8039D74C 003993AC 3B FF CE D8 */ addi r31, r31, lbl_8063CED8@l
/* 8039D750 003993B0 7F E3 FB 78 */ mr r3, r31
-/* 8039D754 003993B4 4B ED 21 F5 */ bl func_8026F948
+/* 8039D754 003993B4 4B ED 21 F5 */ bl OSLockMutex
/* 8039D758 003993B8 3B 20 00 00 */ li r25, 0
/* 8039D75C 003993BC 48 00 00 18 */ b lbl_8039D774
lbl_8039D760:
@@ -3887,7 +3887,7 @@ lbl_8039D774: /* 8039D77C 003993DC 7C 19 00 40 */ cmplw r25, r0
/* 8039D780 003993E0 41 80 FF E0 */ blt lbl_8039D760
/* 8039D784 003993E4 7F E3 FB 78 */ mr r3, r31
-/* 8039D788 003993E8 4B ED 22 9D */ bl func_8026FA24
+/* 8039D788 003993E8 4B ED 22 9D */ bl OSUnlockMutex
lbl_8039D78C:
/* 8039D78C 003993EC 80 BD 00 68 */ lwz r5, 0x68(r29)
/* 8039D790 003993F0 2C 05 00 00 */ cmpwi r5, 0
@@ -4734,7 +4734,7 @@ lbl_8039E32C: /* 8039E344 00399FA4 2C 00 00 00 */ cmpwi r0, 0
/* 8039E348 00399FA8 41 82 00 3C */ beq lbl_8039E384
/* 8039E34C 00399FAC 7F E3 FB 78 */ mr r3, r31
-/* 8039E350 00399FB0 4B ED 15 F9 */ bl func_8026F948
+/* 8039E350 00399FB0 4B ED 15 F9 */ bl OSLockMutex
/* 8039E354 00399FB4 80 6F 05 E4 */ lwz r3, 0x5e4(r15)
/* 8039E358 00399FB8 4B FD C6 95 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039E35C 00399FBC 80 6F 05 D0 */ lwz r3, 0x5d0(r15)
@@ -4746,7 +4746,7 @@ lbl_8039E32C: /* 8039E374 00399FD4 39 00 00 00 */ li r8, 0
/* 8039E378 00399FD8 4B FD DD A5 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039E37C 00399FDC 7F E3 FB 78 */ mr r3, r31
-/* 8039E380 00399FE0 4B ED 16 A5 */ bl func_8026FA24
+/* 8039E380 00399FE0 4B ED 16 A5 */ bl OSUnlockMutex
lbl_8039E384:
/* 8039E384 00399FE4 80 7A 02 5C */ lwz r3, 0x25c(r26)
/* 8039E388 00399FE8 48 00 70 7D */ bl connect__Q210homebutton10ControllerFv
@@ -5212,7 +5212,7 @@ lbl_8039EA28: /* 8039EA48 0039A6A8 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 8039EA4C 0039A6AC 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 8039EA50 0039A6B0 7F C3 F3 78 */ mr r3, r30
-/* 8039EA54 0039A6B4 4B ED 0E F5 */ bl func_8026F948
+/* 8039EA54 0039A6B4 4B ED 0E F5 */ bl OSLockMutex
/* 8039EA58 0039A6B8 80 7F 05 E4 */ lwz r3, 0x5e4(r31)
/* 8039EA5C 0039A6BC 4B FD BF 91 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039EA60 0039A6C0 80 7F 05 D0 */ lwz r3, 0x5d0(r31)
@@ -5224,7 +5224,7 @@ lbl_8039EA28: /* 8039EA78 0039A6D8 39 00 00 00 */ li r8, 0
/* 8039EA7C 0039A6DC 4B FD D6 A1 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039EA80 0039A6E0 7F C3 F3 78 */ mr r3, r30
-/* 8039EA84 0039A6E4 4B ED 0F A1 */ bl func_8026FA24
+/* 8039EA84 0039A6E4 4B ED 0F A1 */ bl OSUnlockMutex
/* 8039EA88 0039A6E8 48 00 09 24 */ b lbl_8039F3AC
lbl_8039EA8C:
/* 8039EA8C 0039A6EC 2C 00 00 00 */ cmpwi r0, 0
@@ -5275,7 +5275,7 @@ lbl_8039EB14: /* 8039EB34 0039A794 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 8039EB38 0039A798 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 8039EB3C 0039A79C 7F C3 F3 78 */ mr r3, r30
-/* 8039EB40 0039A7A0 4B ED 0E 09 */ bl func_8026F948
+/* 8039EB40 0039A7A0 4B ED 0E 09 */ bl OSLockMutex
/* 8039EB44 0039A7A4 80 7F 05 E4 */ lwz r3, 0x5e4(r31)
/* 8039EB48 0039A7A8 4B FD BE A5 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039EB4C 0039A7AC 80 7F 05 D0 */ lwz r3, 0x5d0(r31)
@@ -5287,7 +5287,7 @@ lbl_8039EB14: /* 8039EB64 0039A7C4 39 00 00 00 */ li r8, 0
/* 8039EB68 0039A7C8 4B FD D5 B5 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039EB6C 0039A7CC 7F C3 F3 78 */ mr r3, r30
-/* 8039EB70 0039A7D0 4B ED 0E B5 */ bl func_8026FA24
+/* 8039EB70 0039A7D0 4B ED 0E B5 */ bl OSUnlockMutex
/* 8039EB74 0039A7D4 48 00 08 38 */ b lbl_8039F3AC
lbl_8039EB78:
/* 8039EB78 0039A7D8 80 1F 00 00 */ lwz r0, 0(r31)
@@ -5436,7 +5436,7 @@ lbl_8039ED5C: /* 8039ED7C 0039A9DC 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 8039ED80 0039A9E0 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 8039ED84 0039A9E4 7F C3 F3 78 */ mr r3, r30
-/* 8039ED88 0039A9E8 4B ED 0B C1 */ bl func_8026F948
+/* 8039ED88 0039A9E8 4B ED 0B C1 */ bl OSLockMutex
/* 8039ED8C 0039A9EC 80 7F 05 E4 */ lwz r3, 0x5e4(r31)
/* 8039ED90 0039A9F0 4B FD BC 5D */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039ED94 0039A9F4 80 7F 05 D0 */ lwz r3, 0x5d0(r31)
@@ -5448,7 +5448,7 @@ lbl_8039ED5C: /* 8039EDAC 0039AA0C 39 00 00 00 */ li r8, 0
/* 8039EDB0 0039AA10 4B FD D3 6D */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039EDB4 0039AA14 7F C3 F3 78 */ mr r3, r30
-/* 8039EDB8 0039AA18 4B ED 0C 6D */ bl func_8026FA24
+/* 8039EDB8 0039AA18 4B ED 0C 6D */ bl OSUnlockMutex
lbl_8039EDBC:
/* 8039EDBC 0039AA1C CB E2 A9 68 */ lfd f31, lbl_80642F68-_SDA2_BASE_(r2)
/* 8039EDC0 0039AA20 7F FD FB 78 */ mr r29, r31
@@ -5494,7 +5494,7 @@ lbl_8039EE34: /* 8039EE54 0039AAB4 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 8039EE58 0039AAB8 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 8039EE5C 0039AABC 7F C3 F3 78 */ mr r3, r30
-/* 8039EE60 0039AAC0 4B ED 0A E9 */ bl func_8026F948
+/* 8039EE60 0039AAC0 4B ED 0A E9 */ bl OSLockMutex
/* 8039EE64 0039AAC4 80 7F 05 E4 */ lwz r3, 0x5e4(r31)
/* 8039EE68 0039AAC8 4B FD BB 85 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039EE6C 0039AACC 80 7F 05 D0 */ lwz r3, 0x5d0(r31)
@@ -5506,7 +5506,7 @@ lbl_8039EE34: /* 8039EE84 0039AAE4 39 00 00 00 */ li r8, 0
/* 8039EE88 0039AAE8 4B FD D2 95 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039EE8C 0039AAEC 7F C3 F3 78 */ mr r3, r30
-/* 8039EE90 0039AAF0 4B ED 0B 95 */ bl func_8026FA24
+/* 8039EE90 0039AAF0 4B ED 0B 95 */ bl OSUnlockMutex
lbl_8039EE94:
/* 8039EE94 0039AAF4 CB E2 A9 68 */ lfd f31, lbl_80642F68-_SDA2_BASE_(r2)
/* 8039EE98 0039AAF8 7F FD FB 78 */ mr r29, r31
@@ -5552,7 +5552,7 @@ lbl_8039EF0C: /* 8039EF2C 0039AB8C 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 8039EF30 0039AB90 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 8039EF34 0039AB94 7F C3 F3 78 */ mr r3, r30
-/* 8039EF38 0039AB98 4B ED 0A 11 */ bl func_8026F948
+/* 8039EF38 0039AB98 4B ED 0A 11 */ bl OSLockMutex
/* 8039EF3C 0039AB9C 80 7F 05 E4 */ lwz r3, 0x5e4(r31)
/* 8039EF40 0039ABA0 4B FD BA AD */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039EF44 0039ABA4 80 7F 05 D0 */ lwz r3, 0x5d0(r31)
@@ -5564,7 +5564,7 @@ lbl_8039EF0C: /* 8039EF5C 0039ABBC 39 00 00 00 */ li r8, 0
/* 8039EF60 0039ABC0 4B FD D1 BD */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039EF64 0039ABC4 7F C3 F3 78 */ mr r3, r30
-/* 8039EF68 0039ABC8 4B ED 0A BD */ bl func_8026FA24
+/* 8039EF68 0039ABC8 4B ED 0A BD */ bl OSUnlockMutex
/* 8039EF6C 0039ABCC 48 00 04 40 */ b lbl_8039F3AC
lbl_8039EF70:
/* 8039EF70 0039ABD0 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b
@@ -5708,7 +5708,7 @@ lbl_8039F140: /* 8039F160 0039ADC0 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 8039F164 0039ADC4 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 8039F168 0039ADC8 7F C3 F3 78 */ mr r3, r30
-/* 8039F16C 0039ADCC 4B ED 07 DD */ bl func_8026F948
+/* 8039F16C 0039ADCC 4B ED 07 DD */ bl OSLockMutex
/* 8039F170 0039ADD0 80 7F 05 E4 */ lwz r3, 0x5e4(r31)
/* 8039F174 0039ADD4 4B FD B8 79 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039F178 0039ADD8 80 7F 05 D0 */ lwz r3, 0x5d0(r31)
@@ -5720,7 +5720,7 @@ lbl_8039F140: /* 8039F190 0039ADF0 39 00 00 00 */ li r8, 0
/* 8039F194 0039ADF4 4B FD CF 89 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039F198 0039ADF8 7F C3 F3 78 */ mr r3, r30
-/* 8039F19C 0039ADFC 4B ED 08 89 */ bl func_8026FA24
+/* 8039F19C 0039ADFC 4B ED 08 89 */ bl OSUnlockMutex
lbl_8039F1A0:
/* 8039F1A0 0039AE00 CB E2 A9 68 */ lfd f31, lbl_80642F68-_SDA2_BASE_(r2)
/* 8039F1A4 0039AE04 7F FD FB 78 */ mr r29, r31
@@ -5766,7 +5766,7 @@ lbl_8039F218: /* 8039F238 0039AE98 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 8039F23C 0039AE9C 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 8039F240 0039AEA0 7F C3 F3 78 */ mr r3, r30
-/* 8039F244 0039AEA4 4B ED 07 05 */ bl func_8026F948
+/* 8039F244 0039AEA4 4B ED 07 05 */ bl OSLockMutex
/* 8039F248 0039AEA8 80 7F 05 E4 */ lwz r3, 0x5e4(r31)
/* 8039F24C 0039AEAC 4B FD B7 A1 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039F250 0039AEB0 80 7F 05 D0 */ lwz r3, 0x5d0(r31)
@@ -5778,7 +5778,7 @@ lbl_8039F218: /* 8039F268 0039AEC8 39 00 00 00 */ li r8, 0
/* 8039F26C 0039AECC 4B FD CE B1 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039F270 0039AED0 7F C3 F3 78 */ mr r3, r30
-/* 8039F274 0039AED4 4B ED 07 B1 */ bl func_8026FA24
+/* 8039F274 0039AED4 4B ED 07 B1 */ bl OSUnlockMutex
lbl_8039F278:
/* 8039F278 0039AED8 CB C2 A9 68 */ lfd f30, lbl_80642F68-_SDA2_BASE_(r2)
/* 8039F27C 0039AEDC 7F FD FB 78 */ mr r29, r31
@@ -5824,7 +5824,7 @@ lbl_8039F2F0: /* 8039F310 0039AF70 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 8039F314 0039AF74 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 8039F318 0039AF78 7F C3 F3 78 */ mr r3, r30
-/* 8039F31C 0039AF7C 4B ED 06 2D */ bl func_8026F948
+/* 8039F31C 0039AF7C 4B ED 06 2D */ bl OSLockMutex
/* 8039F320 0039AF80 80 7F 05 E4 */ lwz r3, 0x5e4(r31)
/* 8039F324 0039AF84 4B FD B6 C9 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039F328 0039AF88 80 7F 05 D0 */ lwz r3, 0x5d0(r31)
@@ -5836,7 +5836,7 @@ lbl_8039F2F0: /* 8039F340 0039AFA0 39 00 00 00 */ li r8, 0
/* 8039F344 0039AFA4 4B FD CD D9 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039F348 0039AFA8 7F C3 F3 78 */ mr r3, r30
-/* 8039F34C 0039AFAC 4B ED 06 D9 */ bl func_8026FA24
+/* 8039F34C 0039AFAC 4B ED 06 D9 */ bl OSUnlockMutex
/* 8039F350 0039AFB0 48 00 00 5C */ b lbl_8039F3AC
lbl_8039F354:
/* 8039F354 0039AFB4 80 03 00 00 */ lwz r0, 0(r3)
@@ -6157,7 +6157,7 @@ lbl_8039F7A8: /* 8039F7C8 0039B428 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 8039F7CC 0039B42C 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 8039F7D0 0039B430 7F A3 EB 78 */ mr r3, r29
-/* 8039F7D4 0039B434 4B ED 01 75 */ bl func_8026F948
+/* 8039F7D4 0039B434 4B ED 01 75 */ bl OSLockMutex
/* 8039F7D8 0039B438 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 8039F7DC 0039B43C 4B FD B2 11 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039F7E0 0039B440 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -6169,7 +6169,7 @@ lbl_8039F7A8: /* 8039F7F8 0039B458 39 00 00 00 */ li r8, 0
/* 8039F7FC 0039B45C 4B FD C9 21 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039F800 0039B460 7F A3 EB 78 */ mr r3, r29
-/* 8039F804 0039B464 4B ED 02 21 */ bl func_8026FA24
+/* 8039F804 0039B464 4B ED 02 21 */ bl OSUnlockMutex
lbl_8039F808:
/* 8039F808 0039B468 38 00 00 00 */ li r0, 0
/* 8039F80C 0039B46C 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -6238,7 +6238,7 @@ lbl_8039F8D4: /* 8039F8F4 0039B554 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 8039F8F8 0039B558 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 8039F8FC 0039B55C 7F A3 EB 78 */ mr r3, r29
-/* 8039F900 0039B560 4B ED 00 49 */ bl func_8026F948
+/* 8039F900 0039B560 4B ED 00 49 */ bl OSLockMutex
/* 8039F904 0039B564 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 8039F908 0039B568 4B FD B0 E5 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039F90C 0039B56C 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -6250,7 +6250,7 @@ lbl_8039F8D4: /* 8039F924 0039B584 39 00 00 00 */ li r8, 0
/* 8039F928 0039B588 4B FD C7 F5 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039F92C 0039B58C 7F A3 EB 78 */ mr r3, r29
-/* 8039F930 0039B590 4B ED 00 F5 */ bl func_8026FA24
+/* 8039F930 0039B590 4B ED 00 F5 */ bl OSUnlockMutex
lbl_8039F934:
/* 8039F934 0039B594 38 00 00 00 */ li r0, 0
/* 8039F938 0039B598 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -6469,7 +6469,7 @@ lbl_8039FC08: /* 8039FC28 0039B888 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 8039FC2C 0039B88C 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 8039FC30 0039B890 7F A3 EB 78 */ mr r3, r29
-/* 8039FC34 0039B894 4B EC FD 15 */ bl func_8026F948
+/* 8039FC34 0039B894 4B EC FD 15 */ bl OSLockMutex
/* 8039FC38 0039B898 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 8039FC3C 0039B89C 4B FD AD B1 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039FC40 0039B8A0 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -6481,7 +6481,7 @@ lbl_8039FC08: /* 8039FC58 0039B8B8 39 00 00 00 */ li r8, 0
/* 8039FC5C 0039B8BC 4B FD C4 C1 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039FC60 0039B8C0 7F A3 EB 78 */ mr r3, r29
-/* 8039FC64 0039B8C4 4B EC FD C1 */ bl func_8026FA24
+/* 8039FC64 0039B8C4 4B EC FD C1 */ bl OSUnlockMutex
lbl_8039FC68:
/* 8039FC68 0039B8C8 38 00 00 00 */ li r0, 0
/* 8039FC6C 0039B8CC 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -6700,7 +6700,7 @@ lbl_8039FF38: /* 8039FF58 0039BBB8 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 8039FF5C 0039BBBC 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 8039FF60 0039BBC0 7F A3 EB 78 */ mr r3, r29
-/* 8039FF64 0039BBC4 4B EC F9 E5 */ bl func_8026F948
+/* 8039FF64 0039BBC4 4B EC F9 E5 */ bl OSLockMutex
/* 8039FF68 0039BBC8 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 8039FF6C 0039BBCC 4B FD AA 81 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 8039FF70 0039BBD0 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -6712,7 +6712,7 @@ lbl_8039FF38: /* 8039FF88 0039BBE8 39 00 00 00 */ li r8, 0
/* 8039FF8C 0039BBEC 4B FD C1 91 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 8039FF90 0039BBF0 7F A3 EB 78 */ mr r3, r29
-/* 8039FF94 0039BBF4 4B EC FA 91 */ bl func_8026FA24
+/* 8039FF94 0039BBF4 4B EC FA 91 */ bl OSUnlockMutex
lbl_8039FF98:
/* 8039FF98 0039BBF8 38 00 00 00 */ li r0, 0
/* 8039FF9C 0039BBFC 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -6783,7 +6783,7 @@ lbl_803A0064: /* 803A0084 0039BCE4 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 803A0088 0039BCE8 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 803A008C 0039BCEC 7F A3 EB 78 */ mr r3, r29
-/* 803A0090 0039BCF0 4B EC F8 B9 */ bl func_8026F948
+/* 803A0090 0039BCF0 4B EC F8 B9 */ bl OSLockMutex
/* 803A0094 0039BCF4 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 803A0098 0039BCF8 4B FD A9 55 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A009C 0039BCFC 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -6795,7 +6795,7 @@ lbl_803A0064: /* 803A00B4 0039BD14 39 00 00 00 */ li r8, 0
/* 803A00B8 0039BD18 4B FD C0 65 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A00BC 0039BD1C 7F A3 EB 78 */ mr r3, r29
-/* 803A00C0 0039BD20 4B EC F9 65 */ bl func_8026FA24
+/* 803A00C0 0039BD20 4B EC F9 65 */ bl OSUnlockMutex
lbl_803A00C4:
/* 803A00C4 0039BD24 38 00 00 00 */ li r0, 0
/* 803A00C8 0039BD28 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -6863,7 +6863,7 @@ lbl_803A0188: /* 803A01A8 0039BE08 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 803A01AC 0039BE0C 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 803A01B0 0039BE10 7F A3 EB 78 */ mr r3, r29
-/* 803A01B4 0039BE14 4B EC F7 95 */ bl func_8026F948
+/* 803A01B4 0039BE14 4B EC F7 95 */ bl OSLockMutex
/* 803A01B8 0039BE18 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 803A01BC 0039BE1C 4B FD A8 31 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A01C0 0039BE20 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -6875,7 +6875,7 @@ lbl_803A0188: /* 803A01D8 0039BE38 39 00 00 00 */ li r8, 0
/* 803A01DC 0039BE3C 4B FD BF 41 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A01E0 0039BE40 7F A3 EB 78 */ mr r3, r29
-/* 803A01E4 0039BE44 4B EC F8 41 */ bl func_8026FA24
+/* 803A01E4 0039BE44 4B EC F8 41 */ bl OSUnlockMutex
lbl_803A01E8:
/* 803A01E8 0039BE48 38 00 00 00 */ li r0, 0
/* 803A01EC 0039BE4C 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -6943,7 +6943,7 @@ lbl_803A02AC: /* 803A02CC 0039BF2C 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 803A02D0 0039BF30 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 803A02D4 0039BF34 7F A3 EB 78 */ mr r3, r29
-/* 803A02D8 0039BF38 4B EC F6 71 */ bl func_8026F948
+/* 803A02D8 0039BF38 4B EC F6 71 */ bl OSLockMutex
/* 803A02DC 0039BF3C 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 803A02E0 0039BF40 4B FD A7 0D */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A02E4 0039BF44 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -6955,7 +6955,7 @@ lbl_803A02AC: /* 803A02FC 0039BF5C 39 00 00 00 */ li r8, 0
/* 803A0300 0039BF60 4B FD BE 1D */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A0304 0039BF64 7F A3 EB 78 */ mr r3, r29
-/* 803A0308 0039BF68 4B EC F7 1D */ bl func_8026FA24
+/* 803A0308 0039BF68 4B EC F7 1D */ bl OSUnlockMutex
lbl_803A030C:
/* 803A030C 0039BF6C 38 00 00 00 */ li r0, 0
/* 803A0310 0039BF70 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -7023,7 +7023,7 @@ lbl_803A03D0: /* 803A03F0 0039C050 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 803A03F4 0039C054 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 803A03F8 0039C058 7F A3 EB 78 */ mr r3, r29
-/* 803A03FC 0039C05C 4B EC F5 4D */ bl func_8026F948
+/* 803A03FC 0039C05C 4B EC F5 4D */ bl OSLockMutex
/* 803A0400 0039C060 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 803A0404 0039C064 4B FD A5 E9 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A0408 0039C068 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -7035,7 +7035,7 @@ lbl_803A03D0: /* 803A0420 0039C080 39 00 00 00 */ li r8, 0
/* 803A0424 0039C084 4B FD BC F9 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A0428 0039C088 7F A3 EB 78 */ mr r3, r29
-/* 803A042C 0039C08C 4B EC F5 F9 */ bl func_8026FA24
+/* 803A042C 0039C08C 4B EC F5 F9 */ bl OSUnlockMutex
lbl_803A0430:
/* 803A0430 0039C090 38 00 00 00 */ li r0, 0
/* 803A0434 0039C094 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -7103,7 +7103,7 @@ lbl_803A04F4: /* 803A0514 0039C174 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 803A0518 0039C178 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 803A051C 0039C17C 7F A3 EB 78 */ mr r3, r29
-/* 803A0520 0039C180 4B EC F4 29 */ bl func_8026F948
+/* 803A0520 0039C180 4B EC F4 29 */ bl OSLockMutex
/* 803A0524 0039C184 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 803A0528 0039C188 4B FD A4 C5 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A052C 0039C18C 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -7115,7 +7115,7 @@ lbl_803A04F4: /* 803A0544 0039C1A4 39 00 00 00 */ li r8, 0
/* 803A0548 0039C1A8 4B FD BB D5 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A054C 0039C1AC 7F A3 EB 78 */ mr r3, r29
-/* 803A0550 0039C1B0 4B EC F4 D5 */ bl func_8026FA24
+/* 803A0550 0039C1B0 4B EC F4 D5 */ bl OSUnlockMutex
lbl_803A0554:
/* 803A0554 0039C1B4 38 00 00 00 */ li r0, 0
/* 803A0558 0039C1B8 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -7183,7 +7183,7 @@ lbl_803A0618: /* 803A0638 0039C298 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 803A063C 0039C29C 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 803A0640 0039C2A0 7F A3 EB 78 */ mr r3, r29
-/* 803A0644 0039C2A4 4B EC F3 05 */ bl func_8026F948
+/* 803A0644 0039C2A4 4B EC F3 05 */ bl OSLockMutex
/* 803A0648 0039C2A8 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 803A064C 0039C2AC 4B FD A3 A1 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A0650 0039C2B0 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -7195,7 +7195,7 @@ lbl_803A0618: /* 803A0668 0039C2C8 39 00 00 00 */ li r8, 0
/* 803A066C 0039C2CC 4B FD BA B1 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A0670 0039C2D0 7F A3 EB 78 */ mr r3, r29
-/* 803A0674 0039C2D4 4B EC F3 B1 */ bl func_8026FA24
+/* 803A0674 0039C2D4 4B EC F3 B1 */ bl OSUnlockMutex
lbl_803A0678:
/* 803A0678 0039C2D8 38 00 00 00 */ li r0, 0
/* 803A067C 0039C2DC 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -7263,7 +7263,7 @@ lbl_803A073C: /* 803A075C 0039C3BC 3F A0 80 64 */ lis r29, lbl_8063CED8@ha
/* 803A0760 0039C3C0 3B BD CE D8 */ addi r29, r29, lbl_8063CED8@l
/* 803A0764 0039C3C4 7F A3 EB 78 */ mr r3, r29
-/* 803A0768 0039C3C8 4B EC F1 E1 */ bl func_8026F948
+/* 803A0768 0039C3C8 4B EC F1 E1 */ bl OSLockMutex
/* 803A076C 0039C3CC 80 7B 05 E4 */ lwz r3, 0x5e4(r27)
/* 803A0770 0039C3D0 4B FD A2 7D */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A0774 0039C3D4 80 7B 05 D0 */ lwz r3, 0x5d0(r27)
@@ -7275,7 +7275,7 @@ lbl_803A073C: /* 803A078C 0039C3EC 39 00 00 00 */ li r8, 0
/* 803A0790 0039C3F0 4B FD B9 8D */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A0794 0039C3F4 7F A3 EB 78 */ mr r3, r29
-/* 803A0798 0039C3F8 4B EC F2 8D */ bl func_8026FA24
+/* 803A0798 0039C3F8 4B EC F2 8D */ bl OSUnlockMutex
lbl_803A079C:
/* 803A079C 0039C3FC 38 00 00 00 */ li r0, 0
/* 803A07A0 0039C400 90 1B 00 64 */ stw r0, 0x64(r27)
@@ -8203,7 +8203,7 @@ lbl_803A1448: /* 803A1468 0039D0C8 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A146C 0039D0CC 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A1470 0039D0D0 7F C3 F3 78 */ mr r3, r30
-/* 803A1474 0039D0D4 4B EC E4 D5 */ bl func_8026F948
+/* 803A1474 0039D0D4 4B EC E4 D5 */ bl OSLockMutex
/* 803A1478 0039D0D8 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A147C 0039D0DC 4B FD 95 71 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A1480 0039D0E0 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8215,7 +8215,7 @@ lbl_803A1448: /* 803A1498 0039D0F8 39 00 00 00 */ li r8, 0
/* 803A149C 0039D0FC 4B FD AC 81 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A14A0 0039D100 7F C3 F3 78 */ mr r3, r30
-/* 803A14A4 0039D104 4B EC E5 81 */ bl func_8026FA24
+/* 803A14A4 0039D104 4B EC E5 81 */ bl OSUnlockMutex
lbl_803A14A8:
/* 803A14A8 0039D108 57 E0 10 3A */ slwi r0, r31, 2
/* 803A14AC 0039D10C 7C 7D 02 14 */ add r3, r29, r0
@@ -8391,7 +8391,7 @@ lbl_803A16F8: /* 803A1718 0039D378 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A171C 0039D37C 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A1720 0039D380 7F C3 F3 78 */ mr r3, r30
-/* 803A1724 0039D384 4B EC E2 25 */ bl func_8026F948
+/* 803A1724 0039D384 4B EC E2 25 */ bl OSLockMutex
/* 803A1728 0039D388 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A172C 0039D38C 4B FD 92 C1 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A1730 0039D390 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8403,7 +8403,7 @@ lbl_803A16F8: /* 803A1748 0039D3A8 39 00 00 00 */ li r8, 0
/* 803A174C 0039D3AC 4B FD A9 D1 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A1750 0039D3B0 7F C3 F3 78 */ mr r3, r30
-/* 803A1754 0039D3B4 4B EC E2 D1 */ bl func_8026FA24
+/* 803A1754 0039D3B4 4B EC E2 D1 */ bl OSUnlockMutex
/* 803A1758 0039D3B8 48 00 13 D8 */ b lbl_803A2B30
/* 803A175C 0039D3BC 2C 04 00 01 */ cmpwi r4, 1
/* 803A1760 0039D3C0 40 82 00 D8 */ bne lbl_803A1838
@@ -8447,7 +8447,7 @@ lbl_803A17D4: /* 803A17F4 0039D454 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A17F8 0039D458 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A17FC 0039D45C 7F C3 F3 78 */ mr r3, r30
-/* 803A1800 0039D460 4B EC E1 49 */ bl func_8026F948
+/* 803A1800 0039D460 4B EC E1 49 */ bl OSLockMutex
/* 803A1804 0039D464 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A1808 0039D468 4B FD 91 E5 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A180C 0039D46C 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8459,7 +8459,7 @@ lbl_803A17D4: /* 803A1824 0039D484 39 00 00 00 */ li r8, 0
/* 803A1828 0039D488 4B FD A8 F5 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A182C 0039D48C 7F C3 F3 78 */ mr r3, r30
-/* 803A1830 0039D490 4B EC E1 F5 */ bl func_8026FA24
+/* 803A1830 0039D490 4B EC E1 F5 */ bl OSUnlockMutex
/* 803A1834 0039D494 48 00 12 FC */ b lbl_803A2B30
lbl_803A1838:
/* 803A1838 0039D498 2C 04 00 00 */ cmpwi r4, 0
@@ -8521,7 +8521,7 @@ lbl_803A18F0: /* 803A1910 0039D570 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A1914 0039D574 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A1918 0039D578 7F C3 F3 78 */ mr r3, r30
-/* 803A191C 0039D57C 4B EC E0 2D */ bl func_8026F948
+/* 803A191C 0039D57C 4B EC E0 2D */ bl OSLockMutex
/* 803A1920 0039D580 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A1924 0039D584 4B FD 90 C9 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A1928 0039D588 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8533,7 +8533,7 @@ lbl_803A18F0: /* 803A1940 0039D5A0 39 00 00 00 */ li r8, 0
/* 803A1944 0039D5A4 4B FD A7 D9 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A1948 0039D5A8 7F C3 F3 78 */ mr r3, r30
-/* 803A194C 0039D5AC 4B EC E0 D9 */ bl func_8026FA24
+/* 803A194C 0039D5AC 4B EC E0 D9 */ bl OSUnlockMutex
/* 803A1950 0039D5B0 48 00 11 E0 */ b lbl_803A2B30
/* 803A1954 0039D5B4 80 7D 00 80 */ lwz r3, 0x80(r29)
/* 803A1958 0039D5B8 2C 03 00 00 */ cmpwi r3, 0
@@ -8635,7 +8635,7 @@ lbl_803A1A94: /* 803A1AB4 0039D714 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A1AB8 0039D718 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A1ABC 0039D71C 7F C3 F3 78 */ mr r3, r30
-/* 803A1AC0 0039D720 4B EC DE 89 */ bl func_8026F948
+/* 803A1AC0 0039D720 4B EC DE 89 */ bl OSLockMutex
/* 803A1AC4 0039D724 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A1AC8 0039D728 4B FD 8F 25 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A1ACC 0039D72C 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8647,7 +8647,7 @@ lbl_803A1A94: /* 803A1AE4 0039D744 39 00 00 00 */ li r8, 0
/* 803A1AE8 0039D748 4B FD A6 35 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A1AEC 0039D74C 7F C3 F3 78 */ mr r3, r30
-/* 803A1AF0 0039D750 4B EC DF 35 */ bl func_8026FA24
+/* 803A1AF0 0039D750 4B EC DF 35 */ bl OSUnlockMutex
lbl_803A1AF4:
/* 803A1AF4 0039D754 CB E2 A9 68 */ lfd f31, lbl_80642F68-_SDA2_BASE_(r2)
/* 803A1AF8 0039D758 7F BC EB 78 */ mr r28, r29
@@ -8693,7 +8693,7 @@ lbl_803A1B6C: /* 803A1B8C 0039D7EC 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A1B90 0039D7F0 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A1B94 0039D7F4 7F C3 F3 78 */ mr r3, r30
-/* 803A1B98 0039D7F8 4B EC DD B1 */ bl func_8026F948
+/* 803A1B98 0039D7F8 4B EC DD B1 */ bl OSLockMutex
/* 803A1B9C 0039D7FC 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A1BA0 0039D800 4B FD 8E 4D */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A1BA4 0039D804 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8705,7 +8705,7 @@ lbl_803A1B6C: /* 803A1BBC 0039D81C 39 00 00 00 */ li r8, 0
/* 803A1BC0 0039D820 4B FD A5 5D */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A1BC4 0039D824 7F C3 F3 78 */ mr r3, r30
-/* 803A1BC8 0039D828 4B EC DE 5D */ bl func_8026FA24
+/* 803A1BC8 0039D828 4B EC DE 5D */ bl OSUnlockMutex
lbl_803A1BCC:
/* 803A1BCC 0039D82C CB E2 A9 68 */ lfd f31, lbl_80642F68-_SDA2_BASE_(r2)
/* 803A1BD0 0039D830 7F BC EB 78 */ mr r28, r29
@@ -8787,7 +8787,7 @@ lbl_803A1CC0: /* 803A1CE0 0039D940 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A1CE4 0039D944 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A1CE8 0039D948 7F C3 F3 78 */ mr r3, r30
-/* 803A1CEC 0039D94C 4B EC DC 5D */ bl func_8026F948
+/* 803A1CEC 0039D94C 4B EC DC 5D */ bl OSLockMutex
/* 803A1CF0 0039D950 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A1CF4 0039D954 4B FD 8C F9 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A1CF8 0039D958 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8799,7 +8799,7 @@ lbl_803A1CC0: /* 803A1D10 0039D970 39 00 00 00 */ li r8, 0
/* 803A1D14 0039D974 4B FD A4 09 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A1D18 0039D978 7F C3 F3 78 */ mr r3, r30
-/* 803A1D1C 0039D97C 4B EC DD 09 */ bl func_8026FA24
+/* 803A1D1C 0039D97C 4B EC DD 09 */ bl OSUnlockMutex
/* 803A1D20 0039D980 48 00 0E 10 */ b lbl_803A2B30
/* 803A1D24 0039D984 80 7D 00 80 */ lwz r3, 0x80(r29)
/* 803A1D28 0039D988 2C 03 00 0A */ cmpwi r3, 0xa
@@ -8901,7 +8901,7 @@ lbl_803A1E64: /* 803A1E84 0039DAE4 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A1E88 0039DAE8 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A1E8C 0039DAEC 7F C3 F3 78 */ mr r3, r30
-/* 803A1E90 0039DAF0 4B EC DA B9 */ bl func_8026F948
+/* 803A1E90 0039DAF0 4B EC DA B9 */ bl OSLockMutex
/* 803A1E94 0039DAF4 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A1E98 0039DAF8 4B FD 8B 55 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A1E9C 0039DAFC 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8913,7 +8913,7 @@ lbl_803A1E64: /* 803A1EB4 0039DB14 39 00 00 00 */ li r8, 0
/* 803A1EB8 0039DB18 4B FD A2 65 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A1EBC 0039DB1C 7F C3 F3 78 */ mr r3, r30
-/* 803A1EC0 0039DB20 4B EC DB 65 */ bl func_8026FA24
+/* 803A1EC0 0039DB20 4B EC DB 65 */ bl OSUnlockMutex
lbl_803A1EC4:
/* 803A1EC4 0039DB24 CB E2 A9 68 */ lfd f31, lbl_80642F68-_SDA2_BASE_(r2)
/* 803A1EC8 0039DB28 7F BC EB 78 */ mr r28, r29
@@ -8959,7 +8959,7 @@ lbl_803A1F3C: /* 803A1F5C 0039DBBC 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A1F60 0039DBC0 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A1F64 0039DBC4 7F C3 F3 78 */ mr r3, r30
-/* 803A1F68 0039DBC8 4B EC D9 E1 */ bl func_8026F948
+/* 803A1F68 0039DBC8 4B EC D9 E1 */ bl OSLockMutex
/* 803A1F6C 0039DBCC 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A1F70 0039DBD0 4B FD 8A 7D */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A1F74 0039DBD4 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -8971,7 +8971,7 @@ lbl_803A1F3C: /* 803A1F8C 0039DBEC 39 00 00 00 */ li r8, 0
/* 803A1F90 0039DBF0 4B FD A1 8D */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A1F94 0039DBF4 7F C3 F3 78 */ mr r3, r30
-/* 803A1F98 0039DBF8 4B EC DA 8D */ bl func_8026FA24
+/* 803A1F98 0039DBF8 4B EC DA 8D */ bl OSUnlockMutex
lbl_803A1F9C:
/* 803A1F9C 0039DBFC CB C2 A9 68 */ lfd f30, lbl_80642F68-_SDA2_BASE_(r2)
/* 803A1FA0 0039DC00 7F BC EB 78 */ mr r28, r29
@@ -9053,7 +9053,7 @@ lbl_803A2090: /* 803A20B0 0039DD10 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A20B4 0039DD14 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A20B8 0039DD18 7F C3 F3 78 */ mr r3, r30
-/* 803A20BC 0039DD1C 4B EC D8 8D */ bl func_8026F948
+/* 803A20BC 0039DD1C 4B EC D8 8D */ bl OSLockMutex
/* 803A20C0 0039DD20 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A20C4 0039DD24 4B FD 89 29 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A20C8 0039DD28 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9065,7 +9065,7 @@ lbl_803A2090: /* 803A20E0 0039DD40 39 00 00 00 */ li r8, 0
/* 803A20E4 0039DD44 4B FD A0 39 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A20E8 0039DD48 7F C3 F3 78 */ mr r3, r30
-/* 803A20EC 0039DD4C 4B EC D9 39 */ bl func_8026FA24
+/* 803A20EC 0039DD4C 4B EC D9 39 */ bl OSUnlockMutex
/* 803A20F0 0039DD50 48 00 0A 40 */ b lbl_803A2B30
/* 803A20F4 0039DD54 88 1D 00 84 */ lbz r0, 0x84(r29)
/* 803A20F8 0039DD58 2C 00 00 00 */ cmpwi r0, 0
@@ -9166,7 +9166,7 @@ lbl_803A2230: /* 803A2250 0039DEB0 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A2254 0039DEB4 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A2258 0039DEB8 7F C3 F3 78 */ mr r3, r30
-/* 803A225C 0039DEBC 4B EC D6 ED */ bl func_8026F948
+/* 803A225C 0039DEBC 4B EC D6 ED */ bl OSLockMutex
/* 803A2260 0039DEC0 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A2264 0039DEC4 4B FD 87 89 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A2268 0039DEC8 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9178,7 +9178,7 @@ lbl_803A2230: /* 803A2280 0039DEE0 39 00 00 00 */ li r8, 0
/* 803A2284 0039DEE4 4B FD 9E 99 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A2288 0039DEE8 7F C3 F3 78 */ mr r3, r30
-/* 803A228C 0039DEEC 4B EC D7 99 */ bl func_8026FA24
+/* 803A228C 0039DEEC 4B EC D7 99 */ bl OSUnlockMutex
/* 803A2290 0039DEF0 48 00 01 08 */ b lbl_803A2398
lbl_803A2294:
/* 803A2294 0039DEF4 3C 80 80 40 */ lis r4, lbl_80404DF8@ha
@@ -9238,7 +9238,7 @@ lbl_803A2338: /* 803A2358 0039DFB8 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A235C 0039DFBC 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A2360 0039DFC0 7F C3 F3 78 */ mr r3, r30
-/* 803A2364 0039DFC4 4B EC D5 E5 */ bl func_8026F948
+/* 803A2364 0039DFC4 4B EC D5 E5 */ bl OSLockMutex
/* 803A2368 0039DFC8 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A236C 0039DFCC 4B FD 86 81 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A2370 0039DFD0 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9250,7 +9250,7 @@ lbl_803A2338: /* 803A2388 0039DFE8 39 00 00 00 */ li r8, 0
/* 803A238C 0039DFEC 4B FD 9D 91 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A2390 0039DFF0 7F C3 F3 78 */ mr r3, r30
-/* 803A2394 0039DFF4 4B EC D6 91 */ bl func_8026FA24
+/* 803A2394 0039DFF4 4B EC D6 91 */ bl OSUnlockMutex
lbl_803A2398:
/* 803A2398 0039DFF8 C3 E2 A9 34 */ lfs f31, lbl_80642F34-_SDA2_BASE_(r2)
/* 803A239C 0039DFFC 7F BC EB 78 */ mr r28, r29
@@ -9366,7 +9366,7 @@ lbl_803A250C: /* 803A252C 0039E18C 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A2530 0039E190 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A2534 0039E194 7F C3 F3 78 */ mr r3, r30
-/* 803A2538 0039E198 4B EC D4 11 */ bl func_8026F948
+/* 803A2538 0039E198 4B EC D4 11 */ bl OSLockMutex
/* 803A253C 0039E19C 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A2540 0039E1A0 4B FD 84 AD */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A2544 0039E1A4 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9378,7 +9378,7 @@ lbl_803A250C: /* 803A255C 0039E1BC 39 00 00 00 */ li r8, 0
/* 803A2560 0039E1C0 4B FD 9B BD */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A2564 0039E1C4 7F C3 F3 78 */ mr r3, r30
-/* 803A2568 0039E1C8 4B EC D4 BD */ bl func_8026FA24
+/* 803A2568 0039E1C8 4B EC D4 BD */ bl OSUnlockMutex
/* 803A256C 0039E1CC 48 00 00 88 */ b lbl_803A25F4
lbl_803A2570:
/* 803A2570 0039E1D0 80 9D 00 04 */ lwz r4, 4(r29)
@@ -9402,7 +9402,7 @@ lbl_803A2594: /* 803A25B4 0039E214 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A25B8 0039E218 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A25BC 0039E21C 7F C3 F3 78 */ mr r3, r30
-/* 803A25C0 0039E220 4B EC D3 89 */ bl func_8026F948
+/* 803A25C0 0039E220 4B EC D3 89 */ bl OSLockMutex
/* 803A25C4 0039E224 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A25C8 0039E228 4B FD 84 25 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A25CC 0039E22C 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9414,7 +9414,7 @@ lbl_803A2594: /* 803A25E4 0039E244 39 00 00 00 */ li r8, 0
/* 803A25E8 0039E248 4B FD 9B 35 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A25EC 0039E24C 7F C3 F3 78 */ mr r3, r30
-/* 803A25F0 0039E250 4B EC D4 35 */ bl func_8026FA24
+/* 803A25F0 0039E250 4B EC D4 35 */ bl OSUnlockMutex
lbl_803A25F4:
/* 803A25F4 0039E254 38 00 00 09 */ li r0, 9
/* 803A25F8 0039E258 90 1D 00 10 */ stw r0, 0x10(r29)
@@ -9530,7 +9530,7 @@ lbl_803A2778: /* 803A2798 0039E3F8 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A279C 0039E3FC 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A27A0 0039E400 7F C3 F3 78 */ mr r3, r30
-/* 803A27A4 0039E404 4B EC D1 A5 */ bl func_8026F948
+/* 803A27A4 0039E404 4B EC D1 A5 */ bl OSLockMutex
/* 803A27A8 0039E408 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A27AC 0039E40C 4B FD 82 41 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A27B0 0039E410 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9542,7 +9542,7 @@ lbl_803A2778: /* 803A27C8 0039E428 39 00 00 00 */ li r8, 0
/* 803A27CC 0039E42C 4B FD 99 51 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A27D0 0039E430 7F C3 F3 78 */ mr r3, r30
-/* 803A27D4 0039E434 4B EC D2 51 */ bl func_8026FA24
+/* 803A27D4 0039E434 4B EC D2 51 */ bl OSUnlockMutex
lbl_803A27D8:
/* 803A27D8 0039E438 80 9D 00 04 */ lwz r4, 4(r29)
/* 803A27DC 0039E43C 38 60 00 00 */ li r3, 0
@@ -9565,7 +9565,7 @@ lbl_803A27FC: /* 803A281C 0039E47C 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A2820 0039E480 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A2824 0039E484 7F C3 F3 78 */ mr r3, r30
-/* 803A2828 0039E488 4B EC D1 21 */ bl func_8026F948
+/* 803A2828 0039E488 4B EC D1 21 */ bl OSLockMutex
/* 803A282C 0039E48C 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A2830 0039E490 4B FD 81 BD */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A2834 0039E494 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9577,7 +9577,7 @@ lbl_803A27FC: /* 803A284C 0039E4AC 39 00 00 00 */ li r8, 0
/* 803A2850 0039E4B0 4B FD 98 CD */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A2854 0039E4B4 7F C3 F3 78 */ mr r3, r30
-/* 803A2858 0039E4B8 4B EC D1 CD */ bl func_8026FA24
+/* 803A2858 0039E4B8 4B EC D1 CD */ bl OSUnlockMutex
/* 803A285C 0039E4BC 48 00 02 D4 */ b lbl_803A2B30
/* 803A2860 0039E4C0 3C 80 80 40 */ lis r4, lbl_80404DF8@ha
/* 803A2864 0039E4C4 38 00 00 25 */ li r0, 0x25
@@ -9643,7 +9643,7 @@ lbl_803A2920: /* 803A2940 0039E5A0 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A2944 0039E5A4 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A2948 0039E5A8 7F C3 F3 78 */ mr r3, r30
-/* 803A294C 0039E5AC 4B EC CF FD */ bl func_8026F948
+/* 803A294C 0039E5AC 4B EC CF FD */ bl OSLockMutex
/* 803A2950 0039E5B0 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A2954 0039E5B4 4B FD 80 99 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A2958 0039E5B8 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9655,7 +9655,7 @@ lbl_803A2920: /* 803A2970 0039E5D0 39 00 00 00 */ li r8, 0
/* 803A2974 0039E5D4 4B FD 97 A9 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A2978 0039E5D8 7F C3 F3 78 */ mr r3, r30
-/* 803A297C 0039E5DC 4B EC D0 A9 */ bl func_8026FA24
+/* 803A297C 0039E5DC 4B EC D0 A9 */ bl OSUnlockMutex
/* 803A2980 0039E5E0 48 00 01 B0 */ b lbl_803A2B30
lbl_803A2984:
/* 803A2984 0039E5E4 2C 04 00 02 */ cmpwi r4, 2
@@ -9681,7 +9681,7 @@ lbl_803A29B0: /* 803A29D0 0039E630 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A29D4 0039E634 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A29D8 0039E638 7F C3 F3 78 */ mr r3, r30
-/* 803A29DC 0039E63C 4B EC CF 6D */ bl func_8026F948
+/* 803A29DC 0039E63C 4B EC CF 6D */ bl OSLockMutex
/* 803A29E0 0039E640 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A29E4 0039E644 4B FD 80 09 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A29E8 0039E648 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9693,7 +9693,7 @@ lbl_803A29B0: /* 803A2A00 0039E660 39 00 00 00 */ li r8, 0
/* 803A2A04 0039E664 4B FD 97 19 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A2A08 0039E668 7F C3 F3 78 */ mr r3, r30
-/* 803A2A0C 0039E66C 4B EC D0 19 */ bl func_8026FA24
+/* 803A2A0C 0039E66C 4B EC D0 19 */ bl OSUnlockMutex
/* 803A2A10 0039E670 48 00 01 20 */ b lbl_803A2B30
/* 803A2A14 0039E674 3C 80 80 40 */ lis r4, lbl_80404DF8@ha
/* 803A2A18 0039E678 38 00 00 25 */ li r0, 0x25
@@ -9758,7 +9758,7 @@ lbl_803A2AD0: /* 803A2AF0 0039E750 3F C0 80 64 */ lis r30, lbl_8063CED8@ha
/* 803A2AF4 0039E754 3B DE CE D8 */ addi r30, r30, lbl_8063CED8@l
/* 803A2AF8 0039E758 7F C3 F3 78 */ mr r3, r30
-/* 803A2AFC 0039E75C 4B EC CE 4D */ bl func_8026F948
+/* 803A2AFC 0039E75C 4B EC CE 4D */ bl OSLockMutex
/* 803A2B00 0039E760 80 7D 05 E4 */ lwz r3, 0x5e4(r29)
/* 803A2B04 0039E764 4B FD 7E E9 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
/* 803A2B08 0039E768 80 7D 05 D0 */ lwz r3, 0x5d0(r29)
@@ -9770,7 +9770,7 @@ lbl_803A2AD0: /* 803A2B20 0039E780 39 00 00 00 */ li r8, 0
/* 803A2B24 0039E784 4B FD 95 F9 */ bl detail_StartSound__Q34nw4r3snd14SoundStartableFPQ34nw4r3snd11SoundHandleUlPQ54nw4r3snd6detail10BasicSound14AmbientArgInfoPQ44nw4r3snd6detail19ExternalSoundPlayerPCQ44nw4r3snd14SoundStartable9StartInfo
/* 803A2B28 0039E788 7F C3 F3 78 */ mr r3, r30
-/* 803A2B2C 0039E78C 4B EC CE F9 */ bl func_8026FA24
+/* 803A2B2C 0039E78C 4B EC CE F9 */ bl OSUnlockMutex
lbl_803A2B30:
/* 803A2B30 0039E790 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0
/* 803A2B34 0039E794 CB E1 00 40 */ lfd f31, 0x40(r1)
@@ -10521,7 +10521,7 @@ delete_sound__Q210homebutton10HomeButtonFv: /* 803A3594 0039F1F4 93 C1 00 08 */ stw r30, 8(r1)
/* 803A3598 0039F1F8 7C 7E 1B 78 */ mr r30, r3
/* 803A359C 0039F1FC 7F E3 FB 78 */ mr r3, r31
-/* 803A35A0 0039F200 4B EC C3 A9 */ bl func_8026F948
+/* 803A35A0 0039F200 4B EC C3 A9 */ bl OSLockMutex
/* 803A35A4 0039F204 80 7E 05 D4 */ lwz r3, 0x5d4(r30)
/* 803A35A8 0039F208 2C 03 00 00 */ cmpwi r3, 0
/* 803A35AC 0039F20C 41 82 00 20 */ beq lbl_803A35CC
@@ -10584,7 +10584,7 @@ lbl_803A366C: /* 803A367C 0039F2DC 4B FD 73 71 */ bl DetachSound__Q34nw4r3snd11SoundHandleFv
lbl_803A3680:
/* 803A3680 0039F2E0 7F E3 FB 78 */ mr r3, r31
-/* 803A3684 0039F2E4 4B EC C3 A1 */ bl func_8026FA24
+/* 803A3684 0039F2E4 4B EC C3 A1 */ bl OSUnlockMutex
/* 803A3688 0039F2E8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803A368C 0039F2EC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803A3690 0039F2F0 83 C1 00 08 */ lwz r30, 8(r1)
diff --git a/asm/SDK/OS/OS.s b/asm/SDK/OS/OS.s index 623dfb7..a0102cc 100644 --- a/asm/SDK/OS/OS.s +++ b/asm/SDK/OS/OS.s @@ -223,7 +223,7 @@ lbl_80268684: /* 80268690 002642F0 38 63 00 21 */ addi r3, r3, 0x10000021@l /* 80268694 002642F4 48 00 00 F4 */ b lbl_80268788 lbl_80268698: -/* 80268698 002642F8 48 00 6A 71 */ bl func_8026F108 +/* 80268698 002642F8 48 00 6A 71 */ bl OSGetPhysicalMem2Size /* 8026869C 002642FC 2C 1F 00 02 */ cmpwi r31, 2 /* 802686A0 00264300 41 82 00 68 */ beq lbl_80268708 /* 802686A4 00264304 40 80 00 14 */ bge lbl_802686B8 @@ -742,9 +742,9 @@ lbl_80268D40: /* 80268DA4 00264A04 54 05 06 3E */ clrlwi r5, r0, 0x18 /* 80268DA8 00264A08 4C C6 31 82 */ crclr 6 /* 80268DAC 00264A0C 4B D9 ED 19 */ bl func_80007AC4 -/* 80268DB0 00264A10 48 00 63 71 */ bl func_8026F120 +/* 80268DB0 00264A10 48 00 63 71 */ bl OSGetConsoleSimulatedMem2Size /* 80268DB4 00264A14 7C 7E 1B 78 */ mr r30, r3 -/* 80268DB8 00264A18 48 00 63 5D */ bl func_8026F114 +/* 80268DB8 00264A18 48 00 63 5D */ bl OSGetConsoleSimulatedMem1Size /* 80268DBC 00264A1C 7C 03 F2 14 */ add r0, r3, r30 /* 80268DC0 00264A20 38 7F 01 A8 */ addi r3, r31, 0x1a8 /* 80268DC4 00264A24 54 04 65 3E */ srwi r4, r0, 0x14 @@ -929,16 +929,16 @@ lbl_80269048: lbl_8026905C: /* 8026905C 00264CBC 48 00 A0 59 */ bl func_802730B4 /* 80269060 00264CC0 48 00 01 CD */ bl OSExceptionInit -/* 80269064 00264CC4 48 00 7F 9D */ bl func_80271000 +/* 80269064 00264CC4 48 00 7F 9D */ bl __OSInitSystemCall /* 80269068 00264CC8 48 00 06 65 */ bl __OSInitAlarm -/* 8026906C 00264CCC 48 00 5E 75 */ bl func_8026EEE0 -/* 80269070 00264CD0 48 00 57 5D */ bl func_8026E7CC +/* 8026906C 00264CCC 48 00 5E 75 */ bl __OSModuleInit +/* 80269070 00264CD0 48 00 57 5D */ bl __OSInterruptInit /* 80269074 00264CD4 48 00 23 E1 */ bl __OSContextInit /* 80269078 00264CD8 48 00 1A 65 */ bl __OSCacheInit /* 8026907C 00264CDC 48 00 C6 05 */ bl func_80275680 /* 80269080 00264CE0 48 00 D9 0D */ bl func_8027698C -/* 80269084 00264CE4 48 00 74 91 */ bl func_80270514 -/* 80269088 00264CE8 48 00 7F DD */ bl func_80271064 +/* 80269084 00264CE4 48 00 74 91 */ bl __OSInitSram +/* 80269088 00264CE8 48 00 7F DD */ bl __OSThreadInit /* 8026908C 00264CEC 48 00 12 F5 */ bl __OSInitAudioSystem /* 80269090 00264CF0 4B FF F2 65 */ bl PPCMfhid2 /* 80269094 00264CF4 54 63 00 80 */ rlwinm r3, r3, 0, 2, 0 @@ -946,7 +946,7 @@ lbl_8026905C: /* 8026909C 00264CFC 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13) /* 802690A0 00264D00 2C 00 00 00 */ cmpwi r0, 0 /* 802690A4 00264D04 40 82 00 08 */ bne lbl_802690AC -/* 802690A8 00264D08 48 00 67 B9 */ bl func_8026F860 +/* 802690A8 00264D08 48 00 67 B9 */ bl __OSInitMemoryProtection lbl_802690AC: /* 802690AC 00264D0C 4B FF FA ED */ bl ReportOSInfo /* 802690B0 00264D10 80 8D 87 80 */ lwz r4, lbl_8063DA40-_SDA_BASE_(r13) diff --git a/asm/SDK/OS/OSAlarm.s b/asm/SDK/OS/OSAlarm.s index b5112aa..6ffafbd 100644 --- a/asm/SDK/OS/OSAlarm.s +++ b/asm/SDK/OS/OSAlarm.s @@ -21,7 +21,7 @@ __OSInitAlarm: /* 80269704 00265364 4B FF FD D1 */ bl __OSSetExceptionHandler /* 80269708 00265368 3C 60 80 42 */ lis r3, lbl_804269D0@ha /* 8026970C 0026536C 38 63 69 D0 */ addi r3, r3, lbl_804269D0@l -/* 80269710 00265370 48 00 65 81 */ bl func_8026FC90 +/* 80269710 00265370 48 00 65 81 */ bl OSRegisterShutdownFunction lbl_80269714: /* 80269714 00265374 80 01 00 14 */ lwz r0, 0x14(r1) /* 80269718 00265378 7C 08 03 A6 */ mtlr r0 @@ -471,7 +471,7 @@ lbl_80269D4C: /* 80269D4C 002659AC 38 64 FF FF */ addi r3, r4, -1 /* 80269D50 002659B0 4B FF E5 09 */ bl PPCMtdec lbl_80269D54: -/* 80269D54 002659B4 48 00 75 F1 */ bl func_80271344 +/* 80269D54 002659B4 48 00 75 F1 */ bl OSDisableScheduler /* 80269D58 002659B8 38 61 00 08 */ addi r3, r1, 8 /* 80269D5C 002659BC 48 00 13 35 */ bl OSClearContext /* 80269D60 002659C0 38 61 00 08 */ addi r3, r1, 8 @@ -485,8 +485,8 @@ lbl_80269D54: /* 80269D80 002659E0 48 00 13 11 */ bl OSClearContext /* 80269D84 002659E4 7F A3 EB 78 */ mr r3, r29 /* 80269D88 002659E8 48 00 10 E1 */ bl OSSetCurrentContext -/* 80269D8C 002659EC 48 00 75 F5 */ bl func_80271380 -/* 80269D90 002659F0 48 00 7A FD */ bl func_8027188C +/* 80269D8C 002659EC 48 00 75 F5 */ bl OSEnableScheduler +/* 80269D90 002659F0 48 00 7A FD */ bl __OSReschedule /* 80269D94 002659F4 7F A3 EB 78 */ mr r3, r29 /* 80269D98 002659F8 48 00 11 B9 */ bl OSLoadContext /* 80269D9C 002659FC 80 01 02 E4 */ lwz r0, 0x2e4(r1) diff --git a/asm/SDK/OS/OSContext.s b/asm/SDK/OS/OSContext.s index 718a60b..5279d5a 100644 --- a/asm/SDK/OS/OSContext.s +++ b/asm/SDK/OS/OSContext.s @@ -238,8 +238,8 @@ OSLoadContext: /* 8026AF58 00266BB8 38 A4 E7 5C */ addi r5, r4, OSDisableInterrupts@l /* 8026AF5C 00266BBC 7C 06 28 40 */ cmplw r6, r5 /* 8026AF60 00266BC0 40 81 00 18 */ ble lbl_8026AF78 -/* 8026AF64 00266BC4 3C 80 80 27 */ lis r4, lbl_8026E768@ha -/* 8026AF68 00266BC8 38 04 E7 68 */ addi r0, r4, lbl_8026E768@l +/* 8026AF64 00266BC4 3C 80 80 27 */ lis r4, __RAS_OSDisableInterrupts_end@ha +/* 8026AF68 00266BC8 38 04 E7 68 */ addi r0, r4, __RAS_OSDisableInterrupts_end@l /* 8026AF6C 00266BCC 7C 06 00 40 */ cmplw r6, r0 /* 8026AF70 00266BD0 40 80 00 08 */ bge lbl_8026AF78 /* 8026AF74 00266BD4 90 A3 01 98 */ stw r5, 0x198(r3) diff --git a/asm/SDK/OS/OSError.s b/asm/SDK/OS/OSError.s index a8a8453..951134b 100644 --- a/asm/SDK/OS/OSError.s +++ b/asm/SDK/OS/OSError.s @@ -314,7 +314,7 @@ lbl_8026B8F4: /* 8026B914 00267574 80 17 00 D8 */ lwz r0, 0x800000D8@l(r23) /* 8026B918 00267578 7C 00 D0 40 */ cmplw r0, r26 /* 8026B91C 0026757C 40 82 00 60 */ bne lbl_8026B97C -/* 8026B920 00267580 48 00 5A 25 */ bl func_80271344 +/* 8026B920 00267580 48 00 5A 25 */ bl OSDisableScheduler /* 8026B924 00267584 7F 44 D3 78 */ mr r4, r26 /* 8026B928 00267588 7F 65 DB 78 */ mr r5, r27 /* 8026B92C 0026758C 7F 86 E3 78 */ mr r6, r28 @@ -334,8 +334,8 @@ lbl_8026B8F4: /* 8026B964 002675C4 80 7A 01 94 */ lwz r3, 0x194(r26) /* 8026B968 002675C8 7C 60 00 38 */ and r0, r3, r0 /* 8026B96C 002675CC 90 1A 01 94 */ stw r0, 0x194(r26) -/* 8026B970 002675D0 48 00 5A 11 */ bl func_80271380 -/* 8026B974 002675D4 48 00 5F 19 */ bl func_8027188C +/* 8026B970 002675D0 48 00 5A 11 */ bl OSEnableScheduler +/* 8026B974 002675D4 48 00 5F 19 */ bl __OSReschedule /* 8026B978 002675D8 48 00 00 18 */ b lbl_8026B990 lbl_8026B97C: /* 8026B97C 002675DC 80 7A 01 9C */ lwz r3, 0x19c(r26) @@ -353,7 +353,7 @@ lbl_8026B998: /* 8026B9A4 00267604 7C 18 B8 2E */ lwzx r0, r24, r23 /* 8026B9A8 00267608 2C 00 00 00 */ cmpwi r0, 0 /* 8026B9AC 0026760C 41 82 00 38 */ beq lbl_8026B9E4 -/* 8026B9B0 00267610 48 00 59 95 */ bl func_80271344 +/* 8026B9B0 00267610 48 00 59 95 */ bl OSDisableScheduler /* 8026B9B4 00267614 7F 23 CB 78 */ mr r3, r25 /* 8026B9B8 00267618 7F 44 D3 78 */ mr r4, r26 /* 8026B9BC 0026761C 7F 65 DB 78 */ mr r5, r27 @@ -362,8 +362,8 @@ lbl_8026B998: /* 8026B9C8 00267628 7D 98 B8 2E */ lwzx r12, r24, r23 /* 8026B9CC 0026762C 7D 89 03 A6 */ mtctr r12 /* 8026B9D0 00267630 4E 80 04 21 */ bctrl -/* 8026B9D4 00267634 48 00 59 AD */ bl func_80271380 -/* 8026B9D8 00267638 48 00 5E B5 */ bl func_8027188C +/* 8026B9D4 00267634 48 00 59 AD */ bl OSEnableScheduler +/* 8026B9D8 00267638 48 00 5E B5 */ bl __OSReschedule /* 8026B9DC 0026763C 7F 43 D3 78 */ mr r3, r26 /* 8026B9E0 00267640 4B FF F5 71 */ bl OSLoadContext lbl_8026B9E4: diff --git a/asm/SDK/OS/OSExec.s b/asm/SDK/OS/OSExec.s index 35e59dd..99f1b84 100644 --- a/asm/SDK/OS/OSExec.s +++ b/asm/SDK/OS/OSExec.s @@ -191,7 +191,7 @@ lbl_8026BD9C: /* 8026BDBC 00267A1C 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026BDC0 00267A20 4C C6 31 82 */ crclr 6 /* 8026BDC4 00267A24 4B D9 BD 01 */ bl func_80007AC4 -/* 8026BDC8 00267A28 48 00 45 5D */ bl func_80270324 +/* 8026BDC8 00267A28 48 00 45 5D */ bl __OSReturnToMenuForError lbl_8026BDCC: /* 8026BDCC 00267A2C 38 7F BD 00 */ addi r3, r31, -17152 /* 8026BDD0 00267A30 38 00 00 00 */ li r0, 0 @@ -214,7 +214,7 @@ lbl_8026BDF0: /* 8026BE10 00267A70 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026BE14 00267A74 4C C6 31 82 */ crclr 6 /* 8026BE18 00267A78 4B D9 BC AD */ bl func_80007AC4 -/* 8026BE1C 00267A7C 48 00 45 09 */ bl func_80270324 +/* 8026BE1C 00267A7C 48 00 45 09 */ bl __OSReturnToMenuForError lbl_8026BE20: /* 8026BE20 00267A80 38 7F BD 20 */ addi r3, r31, -17120 /* 8026BE24 00267A84 38 00 00 00 */ li r0, 0 @@ -238,7 +238,7 @@ lbl_8026BE48: /* 8026BE68 00267AC8 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026BE6C 00267ACC 4C C6 31 82 */ crclr 6 /* 8026BE70 00267AD0 4B D9 BC 55 */ bl func_80007AC4 -/* 8026BE74 00267AD4 48 00 44 B1 */ bl func_80270324 +/* 8026BE74 00267AD4 48 00 44 B1 */ bl __OSReturnToMenuForError lbl_8026BE78: /* 8026BE78 00267AD8 38 60 00 00 */ li r3, 0 /* 8026BE7C 00267ADC 80 CD A7 DC */ lwz r6, lbl_8063FA9C-_SDA_BASE_(r13) @@ -283,7 +283,7 @@ lbl_8026BEE8: /* 8026BF08 00267B68 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026BF0C 00267B6C 4C C6 31 82 */ crclr 6 /* 8026BF10 00267B70 4B D9 BB B5 */ bl func_80007AC4 -/* 8026BF14 00267B74 48 00 44 11 */ bl func_80270324 +/* 8026BF14 00267B74 48 00 44 11 */ bl __OSReturnToMenuForError lbl_8026BF18: /* 8026BF18 00267B78 38 00 00 00 */ li r0, 0 /* 8026BF1C 00267B7C 3C 60 80 27 */ lis r3, callback@ha @@ -302,7 +302,7 @@ lbl_8026BF2C: /* 8026BF4C 00267BAC 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026BF50 00267BB0 4C C6 31 82 */ crclr 6 /* 8026BF54 00267BB4 4B D9 BB 71 */ bl func_80007AC4 -/* 8026BF58 00267BB8 48 00 43 CD */ bl func_80270324 +/* 8026BF58 00267BB8 48 00 43 CD */ bl __OSReturnToMenuForError lbl_8026BF5C: /* 8026BF5C 00267BBC 38 BF BD 40 */ addi r5, r31, -17088 /* 8026BF60 00267BC0 3B A0 00 00 */ li r29, 0 @@ -402,7 +402,7 @@ lbl_8026C098: /* 8026C0B8 00267D18 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026C0BC 00267D1C 4C C6 31 82 */ crclr 6 /* 8026C0C0 00267D20 4B D9 BA 05 */ bl func_80007AC4 -/* 8026C0C4 00267D24 48 00 42 61 */ bl func_80270324 +/* 8026C0C4 00267D24 48 00 42 61 */ bl __OSReturnToMenuForError lbl_8026C0C8: /* 8026C0C8 00267D28 38 7F BD 00 */ addi r3, r31, -17152 /* 8026C0CC 00267D2C 38 00 00 00 */ li r0, 0 @@ -425,7 +425,7 @@ lbl_8026C0EC: /* 8026C10C 00267D6C 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026C110 00267D70 4C C6 31 82 */ crclr 6 /* 8026C114 00267D74 4B D9 B9 B1 */ bl func_80007AC4 -/* 8026C118 00267D78 48 00 42 0D */ bl func_80270324 +/* 8026C118 00267D78 48 00 42 0D */ bl __OSReturnToMenuForError lbl_8026C11C: /* 8026C11C 00267D7C 38 7F BD 20 */ addi r3, r31, -17120 /* 8026C120 00267D80 38 00 00 00 */ li r0, 0 @@ -449,7 +449,7 @@ lbl_8026C144: /* 8026C164 00267DC4 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026C168 00267DC8 4C C6 31 82 */ crclr 6 /* 8026C16C 00267DCC 4B D9 B9 59 */ bl func_80007AC4 -/* 8026C170 00267DD0 48 00 41 B5 */ bl func_80270324 +/* 8026C170 00267DD0 48 00 41 B5 */ bl __OSReturnToMenuForError lbl_8026C174: /* 8026C174 00267DD4 38 60 00 00 */ li r3, 0 /* 8026C178 00267DD8 80 CD A7 DC */ lwz r6, lbl_8063FA9C-_SDA_BASE_(r13) @@ -494,7 +494,7 @@ lbl_8026C1E4: /* 8026C204 00267E64 38 63 71 98 */ addi r3, r3, lbl_80427198@l /* 8026C208 00267E68 4C C6 31 82 */ crclr 6 /* 8026C20C 00267E6C 4B D9 B8 B9 */ bl func_80007AC4 -/* 8026C210 00267E70 48 00 41 15 */ bl func_80270324 +/* 8026C210 00267E70 48 00 41 15 */ bl __OSReturnToMenuForError lbl_8026C214: /* 8026C214 00267E74 39 61 00 30 */ addi r11, r1, 0x30 /* 8026C218 00267E78 4B F5 AF 5D */ bl _restgpr_27 @@ -711,9 +711,9 @@ lbl_8026C4F4: /* 8026C510 00268170 38 63 BC FC */ addi r3, r3, Callback@l /* 8026C514 00268174 48 02 01 F1 */ bl func_8028C704 /* 8026C518 00268178 38 60 FF F0 */ li r3, -16 -/* 8026C51C 0026817C 48 00 25 D1 */ bl func_8026EAEC +/* 8026C51C 0026817C 48 00 25 D1 */ bl __OSMaskInterrupts /* 8026C520 00268180 38 60 00 10 */ li r3, 0x10 -/* 8026C524 00268184 48 00 26 49 */ bl func_8026EB6C +/* 8026C524 00268184 48 00 26 49 */ bl __OSUnmaskInterrupts /* 8026C528 00268188 48 00 22 49 */ bl OSEnableInterrupts lbl_8026C52C: /* 8026C52C 0026818C 80 0D A7 E4 */ lwz r0, lbl_8063FAA4-_SDA_BASE_(r13) @@ -756,7 +756,7 @@ lbl_8026C5A0: /* 8026C5B8 00268218 2C 03 00 00 */ cmpwi r3, 0 /* 8026C5BC 0026821C 40 80 00 08 */ bge lbl_8026C5C4 lbl_8026C5C0: -/* 8026C5C0 00268220 48 00 3D 65 */ bl func_80270324 +/* 8026C5C0 00268220 48 00 3D 65 */ bl __OSReturnToMenuForError lbl_8026C5C4: /* 8026C5C4 00268224 38 61 00 E0 */ addi r3, r1, 0xe0 /* 8026C5C8 00268228 48 01 F8 3D */ bl func_8028BE04 @@ -790,7 +790,7 @@ lbl_8026C614: /* 8026C62C 0026828C 2C 03 00 00 */ cmpwi r3, 0 /* 8026C630 00268290 40 80 00 08 */ bge lbl_8026C638 lbl_8026C634: -/* 8026C634 00268294 48 00 3C F1 */ bl func_80270324 +/* 8026C634 00268294 48 00 3C F1 */ bl __OSReturnToMenuForError lbl_8026C638: /* 8026C638 00268298 38 61 01 10 */ addi r3, r1, 0x110 /* 8026C63C 0026829C 48 01 F7 C9 */ bl func_8028BE04 @@ -828,7 +828,7 @@ lbl_8026C69C: /* 8026C6B4 00268314 2C 03 00 00 */ cmpwi r3, 0 /* 8026C6B8 00268318 40 80 00 08 */ bge lbl_8026C6C0 lbl_8026C6BC: -/* 8026C6BC 0026831C 48 00 3C 69 */ bl func_80270324 +/* 8026C6BC 0026831C 48 00 3C 69 */ bl __OSReturnToMenuForError lbl_8026C6C0: /* 8026C6C0 00268320 38 61 01 40 */ addi r3, r1, 0x140 /* 8026C6C4 00268324 48 01 F7 41 */ bl func_8028BE04 @@ -865,7 +865,7 @@ lbl_8026C71C: /* 8026C734 00268394 2C 03 00 00 */ cmpwi r3, 0 /* 8026C738 00268398 40 80 00 08 */ bge lbl_8026C740 lbl_8026C73C: -/* 8026C73C 0026839C 48 00 3B E9 */ bl func_80270324 +/* 8026C73C 0026839C 48 00 3B E9 */ bl __OSReturnToMenuForError lbl_8026C740: /* 8026C740 002683A0 38 61 01 70 */ addi r3, r1, 0x170 /* 8026C744 002683A4 48 01 F6 C1 */ bl func_8028BE04 @@ -920,7 +920,7 @@ lbl_8026C7E8: /* 8026C800 00268460 2C 03 00 00 */ cmpwi r3, 0 /* 8026C804 00268464 40 80 00 08 */ bge lbl_8026C80C lbl_8026C808: -/* 8026C808 00268468 48 00 3B 1D */ bl func_80270324 +/* 8026C808 00268468 48 00 3B 1D */ bl __OSReturnToMenuForError lbl_8026C80C: /* 8026C80C 0026846C 38 61 00 B0 */ addi r3, r1, 0xb0 /* 8026C810 00268470 48 01 F5 F5 */ bl func_8028BE04 @@ -987,7 +987,7 @@ lbl_8026C8D8: /* 8026C8F0 00268550 2C 03 00 00 */ cmpwi r3, 0 /* 8026C8F4 00268554 40 80 00 08 */ bge lbl_8026C8FC lbl_8026C8F8: -/* 8026C8F8 00268558 48 00 3A 2D */ bl func_80270324 +/* 8026C8F8 00268558 48 00 3A 2D */ bl __OSReturnToMenuForError lbl_8026C8FC: /* 8026C8FC 0026855C 38 61 00 80 */ addi r3, r1, 0x80 /* 8026C900 00268560 48 01 F5 05 */ bl func_8028BE04 @@ -1060,7 +1060,7 @@ lbl_8026C9E4: /* 8026C9FC 0026865C 2C 03 00 00 */ cmpwi r3, 0 /* 8026CA00 00268660 40 80 00 08 */ bge lbl_8026CA08 lbl_8026CA04: -/* 8026CA04 00268664 48 00 39 21 */ bl func_80270324 +/* 8026CA04 00268664 48 00 39 21 */ bl __OSReturnToMenuForError lbl_8026CA08: /* 8026CA08 00268668 38 61 00 50 */ addi r3, r1, 0x50 /* 8026CA0C 0026866C 48 01 F3 F9 */ bl func_8028BE04 @@ -1100,7 +1100,7 @@ lbl_8026CA70: /* 8026CA88 002686E8 2C 03 00 00 */ cmpwi r3, 0 /* 8026CA8C 002686EC 40 80 00 08 */ bge lbl_8026CA94 lbl_8026CA90: -/* 8026CA90 002686F0 48 00 38 95 */ bl func_80270324 +/* 8026CA90 002686F0 48 00 38 95 */ bl __OSReturnToMenuForError lbl_8026CA94: /* 8026CA94 002686F4 38 61 00 20 */ addi r3, r1, 0x20 /* 8026CA98 002686F8 48 01 F3 6D */ bl func_8028BE04 @@ -1136,7 +1136,7 @@ __OSBootDol: /* 8026CB00 00268760 93 A1 00 34 */ stw r29, 0x34(r1) /* 8026CB04 00268764 7C 9D 23 78 */ mr r29, r4 /* 8026CB08 00268768 38 81 00 08 */ addi r4, r1, 8 -/* 8026CB0C 0026876C 48 00 31 71 */ bl func_8026FC7C +/* 8026CB0C 0026876C 48 00 31 71 */ bl OSGetSaveRegion /* 8026CB10 00268770 7F E5 FB 78 */ mr r5, r31 /* 8026CB14 00268774 38 61 00 10 */ addi r3, r1, 0x10 /* 8026CB18 00268778 38 8D 87 C8 */ addi r4, r13, lbl_8063DA88-_SDA_BASE_ diff --git a/asm/SDK/OS/OSFatal.s b/asm/SDK/OS/OSFatal.s index 611f14c..9423b85 100644 --- a/asm/SDK/OS/OSFatal.s +++ b/asm/SDK/OS/OSFatal.s @@ -300,7 +300,7 @@ OSFatal: /* 8026D2A8 00268F08 7C 9C 23 78 */ mr r28, r4
/* 8026D2AC 00268F0C 7C BD 2B 78 */ mr r29, r5
/* 8026D2B0 00268F10 48 00 14 AD */ bl OSDisableInterrupts
-/* 8026D2B4 00268F14 48 00 40 91 */ bl func_80271344
+/* 8026D2B4 00268F14 48 00 40 91 */ bl OSDisableScheduler
/* 8026D2B8 00268F18 3F 00 80 51 */ lis r24, lbl_805144A0@ha
/* 8026D2BC 00268F1C 38 78 44 A0 */ addi r3, r24, lbl_805144A0@l
/* 8026D2C0 00268F20 4B FF DD D1 */ bl OSClearContext
@@ -309,7 +309,7 @@ OSFatal: /* 8026D2CC 00268F2C 4B FF D2 7D */ bl __OSStopAudioSystem
/* 8026D2D0 00268F30 48 00 AF 0D */ bl func_802781DC
/* 8026D2D4 00268F34 38 60 00 80 */ li r3, 0x80
-/* 8026D2D8 00268F38 48 00 18 95 */ bl func_8026EB6C
+/* 8026D2D8 00268F38 48 00 18 95 */ bl __OSUnmaskInterrupts
/* 8026D2DC 00268F3C 38 60 00 01 */ li r3, 1
/* 8026D2E0 00268F40 48 00 C5 49 */ bl func_80279828
/* 8026D2E4 00268F44 48 00 C3 C5 */ bl func_802796A8
@@ -335,7 +335,7 @@ lbl_8026D304: lbl_8026D330:
/* 8026D330 00268F90 38 60 00 00 */ li r3, 0
/* 8026D334 00268F94 38 80 00 00 */ li r4, 0
-/* 8026D338 00268F98 48 00 29 E1 */ bl func_8026FD18
+/* 8026D338 00268F98 48 00 29 E1 */ bl __OSCallShutdownFunctions
/* 8026D33C 00268F9C 2C 03 00 00 */ cmpwi r3, 0
/* 8026D340 00268FA0 40 82 00 40 */ bne lbl_8026D380
/* 8026D344 00268FA4 48 00 54 75 */ bl OSGetTime
@@ -357,7 +357,7 @@ lbl_8026D380: /* 8026D380 00268FE0 48 00 13 DD */ bl OSDisableInterrupts
/* 8026D384 00268FE4 38 60 00 01 */ li r3, 1
/* 8026D388 00268FE8 38 80 00 00 */ li r4, 0
-/* 8026D38C 00268FEC 48 00 29 8D */ bl func_8026FD18
+/* 8026D38C 00268FEC 48 00 29 8D */ bl __OSCallShutdownFunctions
/* 8026D390 00268FF0 38 60 00 00 */ li r3, 0
/* 8026D394 00268FF4 38 80 00 00 */ li r4, 0
/* 8026D398 00268FF8 48 00 79 45 */ bl func_80274CDC
diff --git a/asm/SDK/OS/OSFont.s b/asm/SDK/OS/OSFont.s index 8b05f8b..a6b6233 100644 --- a/asm/SDK/OS/OSFont.s +++ b/asm/SDK/OS/OSFont.s @@ -280,7 +280,7 @@ lbl_8026DE40: /* 8026DE40 00269AA0 7F 63 DB 78 */ mr r3, r27
/* 8026DE44 00269AA4 7F 24 CB 78 */ mr r4, r25
/* 8026DE48 00269AA8 7F E5 FB 78 */ mr r5, r31
-/* 8026DE4C 00269AAC 48 00 2B B9 */ bl func_80270A04
+/* 8026DE4C 00269AAC 48 00 2B B9 */ bl __OSReadROM
/* 8026DE50 00269AB0 2C 03 00 00 */ cmpwi r3, 0
/* 8026DE54 00269AB4 41 82 FF EC */ beq lbl_8026DE40
/* 8026DE58 00269AB8 7F FF CA 14 */ add r31, r31, r25
@@ -306,7 +306,7 @@ lbl_8026DE94: /* 8026DE94 00269AF4 7F 63 DB 78 */ mr r3, r27
/* 8026DE98 00269AF8 7F 24 CB 78 */ mr r4, r25
/* 8026DE9C 00269AFC 7F E5 FB 78 */ mr r5, r31
-/* 8026DEA0 00269B00 48 00 2B 65 */ bl func_80270A04
+/* 8026DEA0 00269B00 48 00 2B 65 */ bl __OSReadROM
/* 8026DEA4 00269B04 2C 03 00 00 */ cmpwi r3, 0
/* 8026DEA8 00269B08 41 82 FF EC */ beq lbl_8026DE94
/* 8026DEAC 00269B0C 7F FF CA 14 */ add r31, r31, r25
diff --git a/asm/SDK/OS/OSInterrupt.s b/asm/SDK/OS/OSInterrupt.s new file mode 100644 index 0000000..d8f3da5 --- /dev/null +++ b/asm/SDK/OS/OSInterrupt.s @@ -0,0 +1,599 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSDisableInterrupts
+OSDisableInterrupts:
+/* 8026E75C 0026A3BC 7C 60 00 A6 */ mfmsr r3
+/* 8026E760 0026A3C0 54 64 04 5E */ rlwinm r4, r3, 0, 0x11, 0xf
+/* 8026E764 0026A3C4 7C 80 01 24 */ mtmsr r4
+.global __RAS_OSDisableInterrupts_end
+__RAS_OSDisableInterrupts_end:
+/* 8026E768 0026A3C8 54 63 8F FE */ rlwinm r3, r3, 0x11, 0x1f, 0x1f
+/* 8026E76C 0026A3CC 4E 80 00 20 */ blr
+
+.global OSEnableInterrupts
+OSEnableInterrupts:
+/* 8026E770 0026A3D0 7C 60 00 A6 */ mfmsr r3
+/* 8026E774 0026A3D4 60 64 80 00 */ ori r4, r3, 0x8000
+/* 8026E778 0026A3D8 7C 80 01 24 */ mtmsr r4
+/* 8026E77C 0026A3DC 54 63 8F FE */ rlwinm r3, r3, 0x11, 0x1f, 0x1f
+/* 8026E780 0026A3E0 4E 80 00 20 */ blr
+
+.global OSRestoreInterrupts
+OSRestoreInterrupts:
+/* 8026E784 0026A3E4 2C 03 00 00 */ cmpwi r3, 0
+/* 8026E788 0026A3E8 7C 80 00 A6 */ mfmsr r4
+/* 8026E78C 0026A3EC 41 82 00 0C */ beq lbl_8026E798
+/* 8026E790 0026A3F0 60 85 80 00 */ ori r5, r4, 0x8000
+/* 8026E794 0026A3F4 48 00 00 08 */ b lbl_8026E79C
+lbl_8026E798:
+/* 8026E798 0026A3F8 54 85 04 5E */ rlwinm r5, r4, 0, 0x11, 0xf
+lbl_8026E79C:
+/* 8026E79C 0026A3FC 7C A0 01 24 */ mtmsr r5
+/* 8026E7A0 0026A400 54 83 8F FE */ rlwinm r3, r4, 0x11, 0x1f, 0x1f
+/* 8026E7A4 0026A404 4E 80 00 20 */ blr
+
+.global __OSSetInterruptHandler
+__OSSetInterruptHandler:
+/* 8026E7A8 0026A408 80 AD A8 08 */ lwz r5, lbl_8063FAC8-_SDA_BASE_(r13)
+/* 8026E7AC 0026A40C 54 60 10 3A */ slwi r0, r3, 2
+/* 8026E7B0 0026A410 7C 65 00 2E */ lwzx r3, r5, r0
+/* 8026E7B4 0026A414 7C 85 01 2E */ stwx r4, r5, r0
+/* 8026E7B8 0026A418 4E 80 00 20 */ blr
+
+.global __OSGetInterruptHandler
+__OSGetInterruptHandler:
+/* 8026E7BC 0026A41C 80 8D A8 08 */ lwz r4, lbl_8063FAC8-_SDA_BASE_(r13)
+/* 8026E7C0 0026A420 54 60 10 3A */ slwi r0, r3, 2
+/* 8026E7C4 0026A424 7C 64 00 2E */ lwzx r3, r4, r0
+/* 8026E7C8 0026A428 4E 80 00 20 */ blr
+
+.global __OSInterruptInit
+__OSInterruptInit:
+/* 8026E7CC 0026A42C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026E7D0 0026A430 7C 08 02 A6 */ mflr r0
+/* 8026E7D4 0026A434 38 80 00 00 */ li r4, 0
+/* 8026E7D8 0026A438 38 A0 00 80 */ li r5, 0x80
+/* 8026E7DC 0026A43C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026E7E0 0026A440 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026E7E4 0026A444 3F E0 80 00 */ lis r31, 0x80003040@ha
+/* 8026E7E8 0026A448 38 7F 30 40 */ addi r3, r31, 0x80003040@l
+/* 8026E7EC 0026A44C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026E7F0 0026A450 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026E7F4 0026A454 90 6D A8 08 */ stw r3, lbl_8063FAC8-_SDA_BASE_(r13)
+/* 8026E7F8 0026A458 4B D9 59 0D */ bl memset
+/* 8026E7FC 0026A45C 38 C0 00 00 */ li r6, 0
+/* 8026E800 0026A460 38 A0 00 F0 */ li r5, 0xf0
+/* 8026E804 0026A464 90 DF 00 C4 */ stw r6, 0xc4(r31)
+/* 8026E808 0026A468 3C 80 CC 00 */ lis r4, 0xCC003004@ha
+/* 8026E80C 0026A46C 3C 00 40 00 */ lis r0, 0x4000
+/* 8026E810 0026A470 3C 60 CD 00 */ lis r3, 0xCD000034@ha
+/* 8026E814 0026A474 90 DF 00 C8 */ stw r6, 0xc8(r31)
+/* 8026E818 0026A478 3B C0 FF F0 */ li r30, -16
+/* 8026E81C 0026A47C 90 A4 30 04 */ stw r5, 0xCC003004@l(r4)
+/* 8026E820 0026A480 90 03 00 34 */ stw r0, 0xCD000034@l(r3)
+/* 8026E824 0026A484 4B FF FF 39 */ bl OSDisableInterrupts
+/* 8026E828 0026A488 80 1F 00 C4 */ lwz r0, 0xc4(r31)
+/* 8026E82C 0026A48C 7C 7D 1B 78 */ mr r29, r3
+/* 8026E830 0026A490 80 9F 00 C8 */ lwz r4, 0xc8(r31)
+/* 8026E834 0026A494 7F DE 03 78 */ or r30, r30, r0
+/* 8026E838 0026A498 7C 00 20 F8 */ nor r0, r0, r4
+/* 8026E83C 0026A49C 93 DF 00 C4 */ stw r30, 0xc4(r31)
+/* 8026E840 0026A4A0 54 03 00 36 */ rlwinm r3, r0, 0, 0, 0x1b
+/* 8026E844 0026A4A4 7F DE 23 78 */ or r30, r30, r4
+/* 8026E848 0026A4A8 48 00 00 0C */ b lbl_8026E854
+lbl_8026E84C:
+/* 8026E84C 0026A4AC 7F C4 F3 78 */ mr r4, r30
+/* 8026E850 0026A4B0 48 00 00 41 */ bl SetInterruptMask
+lbl_8026E854:
+/* 8026E854 0026A4B4 2C 03 00 00 */ cmpwi r3, 0
+/* 8026E858 0026A4B8 40 82 FF F4 */ bne lbl_8026E84C
+/* 8026E85C 0026A4BC 7F A3 EB 78 */ mr r3, r29
+/* 8026E860 0026A4C0 4B FF FF 25 */ bl OSRestoreInterrupts
+/* 8026E864 0026A4C4 3C 80 80 27 */ lis r4, ExternalInterruptHandler@ha
+/* 8026E868 0026A4C8 38 60 00 04 */ li r3, 4
+/* 8026E86C 0026A4CC 38 84 EE 90 */ addi r4, r4, ExternalInterruptHandler@l
+/* 8026E870 0026A4D0 4B FF AC 65 */ bl __OSSetExceptionHandler
+/* 8026E874 0026A4D4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026E878 0026A4D8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026E87C 0026A4DC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026E880 0026A4E0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026E884 0026A4E4 7C 08 03 A6 */ mtlr r0
+/* 8026E888 0026A4E8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026E88C 0026A4EC 4E 80 00 20 */ blr
+
+.global SetInterruptMask
+SetInterruptMask:
+/* 8026E890 0026A4F0 7C 60 00 34 */ cntlzw r0, r3
+/* 8026E894 0026A4F4 2C 00 00 0C */ cmpwi r0, 0xc
+/* 8026E898 0026A4F8 40 80 00 24 */ bge lbl_8026E8BC
+/* 8026E89C 0026A4FC 2C 00 00 08 */ cmpwi r0, 8
+/* 8026E8A0 0026A500 41 82 00 CC */ beq lbl_8026E96C
+/* 8026E8A4 0026A504 40 80 00 F4 */ bge lbl_8026E998
+/* 8026E8A8 0026A508 2C 00 00 05 */ cmpwi r0, 5
+/* 8026E8AC 0026A50C 40 80 00 80 */ bge lbl_8026E92C
+/* 8026E8B0 0026A510 2C 00 00 00 */ cmpwi r0, 0
+/* 8026E8B4 0026A514 40 80 00 28 */ bge lbl_8026E8DC
+/* 8026E8B8 0026A518 4E 80 00 20 */ blr
+lbl_8026E8BC:
+/* 8026E8BC 0026A51C 2C 00 00 11 */ cmpwi r0, 0x11
+/* 8026E8C0 0026A520 40 80 00 10 */ bge lbl_8026E8D0
+/* 8026E8C4 0026A524 2C 00 00 0F */ cmpwi r0, 0xf
+/* 8026E8C8 0026A528 40 80 01 58 */ bge lbl_8026EA20
+/* 8026E8CC 0026A52C 48 00 01 10 */ b lbl_8026E9DC
+lbl_8026E8D0:
+/* 8026E8D0 0026A530 2C 00 00 1C */ cmpwi r0, 0x1c
+/* 8026E8D4 0026A534 4C 80 00 20 */ bgelr
+/* 8026E8D8 0026A538 48 00 01 7C */ b lbl_8026EA54
+lbl_8026E8DC:
+/* 8026E8DC 0026A53C 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0
+/* 8026E8E0 0026A540 38 A0 00 00 */ li r5, 0
+/* 8026E8E4 0026A544 40 82 00 08 */ bne lbl_8026E8EC
+/* 8026E8E8 0026A548 60 A5 00 01 */ ori r5, r5, 1
+lbl_8026E8EC:
+/* 8026E8EC 0026A54C 54 80 00 43 */ rlwinm. r0, r4, 0, 1, 1
+/* 8026E8F0 0026A550 40 82 00 08 */ bne lbl_8026E8F8
+/* 8026E8F4 0026A554 60 A5 00 02 */ ori r5, r5, 2
+lbl_8026E8F8:
+/* 8026E8F8 0026A558 54 80 00 85 */ rlwinm. r0, r4, 0, 2, 2
+/* 8026E8FC 0026A55C 40 82 00 08 */ bne lbl_8026E904
+/* 8026E900 0026A560 60 A5 00 04 */ ori r5, r5, 4
+lbl_8026E904:
+/* 8026E904 0026A564 54 80 00 C7 */ rlwinm. r0, r4, 0, 3, 3
+/* 8026E908 0026A568 40 82 00 08 */ bne lbl_8026E910
+/* 8026E90C 0026A56C 60 A5 00 08 */ ori r5, r5, 8
+lbl_8026E910:
+/* 8026E910 0026A570 54 80 01 09 */ rlwinm. r0, r4, 0, 4, 4
+/* 8026E914 0026A574 40 82 00 08 */ bne lbl_8026E91C
+/* 8026E918 0026A578 60 A5 00 10 */ ori r5, r5, 0x10
+lbl_8026E91C:
+/* 8026E91C 0026A57C 3C 80 CC 00 */ lis r4, 0xCC00401C@ha
+/* 8026E920 0026A580 54 63 01 7E */ clrlwi r3, r3, 5
+/* 8026E924 0026A584 B0 A4 40 1C */ sth r5, 0xCC00401C@l(r4)
+/* 8026E928 0026A588 4E 80 00 20 */ blr
+lbl_8026E92C:
+/* 8026E92C 0026A58C 3C A0 CC 00 */ lis r5, 0xCC00500A@ha
+/* 8026E930 0026A590 54 80 01 4B */ rlwinm. r0, r4, 0, 5, 5
+/* 8026E934 0026A594 A0 A5 50 0A */ lhz r5, 0xCC00500A@l(r5)
+/* 8026E938 0026A598 54 A5 07 6C */ rlwinm r5, r5, 0, 0x1d, 0x16
+/* 8026E93C 0026A59C 40 82 00 08 */ bne lbl_8026E944
+/* 8026E940 0026A5A0 60 A5 00 10 */ ori r5, r5, 0x10
+lbl_8026E944:
+/* 8026E944 0026A5A4 54 80 01 8D */ rlwinm. r0, r4, 0, 6, 6
+/* 8026E948 0026A5A8 40 82 00 08 */ bne lbl_8026E950
+/* 8026E94C 0026A5AC 60 A5 00 40 */ ori r5, r5, 0x40
+lbl_8026E950:
+/* 8026E950 0026A5B0 54 80 01 CF */ rlwinm. r0, r4, 0, 7, 7
+/* 8026E954 0026A5B4 40 82 00 08 */ bne lbl_8026E95C
+/* 8026E958 0026A5B8 60 A5 01 00 */ ori r5, r5, 0x100
+lbl_8026E95C:
+/* 8026E95C 0026A5BC 3C 80 CC 00 */ lis r4, 0xCC00500A@ha
+/* 8026E960 0026A5C0 54 63 02 08 */ rlwinm r3, r3, 0, 8, 4
+/* 8026E964 0026A5C4 B0 A4 50 0A */ sth r5, 0xCC00500A@l(r4)
+/* 8026E968 0026A5C8 4E 80 00 20 */ blr
+lbl_8026E96C:
+/* 8026E96C 0026A5CC 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8
+/* 8026E970 0026A5D0 3C 80 CD 00 */ lis r4, 0xCD006C00@ha
+/* 8026E974 0026A5D4 80 A4 6C 00 */ lwz r5, 0xCD006C00@l(r4)
+/* 8026E978 0026A5D8 38 00 FF D3 */ li r0, -45
+/* 8026E97C 0026A5DC 7C A5 00 38 */ and r5, r5, r0
+/* 8026E980 0026A5E0 40 82 00 08 */ bne lbl_8026E988
+/* 8026E984 0026A5E4 60 A5 00 04 */ ori r5, r5, 4
+lbl_8026E988:
+/* 8026E988 0026A5E8 3C 80 CD 00 */ lis r4, 0xCD006C00@ha
+/* 8026E98C 0026A5EC 54 63 02 4E */ rlwinm r3, r3, 0, 9, 7
+/* 8026E990 0026A5F0 90 A4 6C 00 */ stw r5, 0xCD006C00@l(r4)
+/* 8026E994 0026A5F4 4E 80 00 20 */ blr
+lbl_8026E998:
+/* 8026E998 0026A5F8 54 80 02 53 */ rlwinm. r0, r4, 0, 9, 9
+/* 8026E99C 0026A5FC 3C A0 CD 00 */ lis r5, 0xCD006800@ha
+/* 8026E9A0 0026A600 80 A5 68 00 */ lwz r5, 0xCD006800@l(r5)
+/* 8026E9A4 0026A604 38 00 D3 F0 */ li r0, -11280
+/* 8026E9A8 0026A608 7C A5 00 38 */ and r5, r5, r0
+/* 8026E9AC 0026A60C 40 82 00 08 */ bne lbl_8026E9B4
+/* 8026E9B0 0026A610 60 A5 00 01 */ ori r5, r5, 1
+lbl_8026E9B4:
+/* 8026E9B4 0026A614 54 80 02 95 */ rlwinm. r0, r4, 0, 0xa, 0xa
+/* 8026E9B8 0026A618 40 82 00 08 */ bne lbl_8026E9C0
+/* 8026E9BC 0026A61C 60 A5 00 04 */ ori r5, r5, 4
+lbl_8026E9C0:
+/* 8026E9C0 0026A620 54 80 02 D7 */ rlwinm. r0, r4, 0, 0xb, 0xb
+/* 8026E9C4 0026A624 40 82 00 08 */ bne lbl_8026E9CC
+/* 8026E9C8 0026A628 60 A5 04 00 */ ori r5, r5, 0x400
+lbl_8026E9CC:
+/* 8026E9CC 0026A62C 3C 80 CD 00 */ lis r4, 0xCD006800@ha
+/* 8026E9D0 0026A630 54 63 03 10 */ rlwinm r3, r3, 0, 0xc, 8
+/* 8026E9D4 0026A634 90 A4 68 00 */ stw r5, 0xCD006800@l(r4)
+/* 8026E9D8 0026A638 4E 80 00 20 */ blr
+lbl_8026E9DC:
+/* 8026E9DC 0026A63C 54 80 03 19 */ rlwinm. r0, r4, 0, 0xc, 0xc
+/* 8026E9E0 0026A640 3C A0 CD 00 */ lis r5, 0xCD006814@ha
+/* 8026E9E4 0026A644 80 A5 68 14 */ lwz r5, 0xCD006814@l(r5)
+/* 8026E9E8 0026A648 38 00 F3 F0 */ li r0, -3088
+/* 8026E9EC 0026A64C 7C A5 00 38 */ and r5, r5, r0
+/* 8026E9F0 0026A650 40 82 00 08 */ bne lbl_8026E9F8
+/* 8026E9F4 0026A654 60 A5 00 01 */ ori r5, r5, 1
+lbl_8026E9F8:
+/* 8026E9F8 0026A658 54 80 03 5B */ rlwinm. r0, r4, 0, 0xd, 0xd
+/* 8026E9FC 0026A65C 40 82 00 08 */ bne lbl_8026EA04
+/* 8026EA00 0026A660 60 A5 00 04 */ ori r5, r5, 4
+lbl_8026EA04:
+/* 8026EA04 0026A664 54 80 03 9D */ rlwinm. r0, r4, 0, 0xe, 0xe
+/* 8026EA08 0026A668 40 82 00 08 */ bne lbl_8026EA10
+/* 8026EA0C 0026A66C 60 A5 04 00 */ ori r5, r5, 0x400
+lbl_8026EA10:
+/* 8026EA10 0026A670 3C 80 CD 00 */ lis r4, 0xCD006814@ha
+/* 8026EA14 0026A674 54 63 03 D6 */ rlwinm r3, r3, 0, 0xf, 0xb
+/* 8026EA18 0026A678 90 A4 68 14 */ stw r5, 0xCD006814@l(r4)
+/* 8026EA1C 0026A67C 4E 80 00 20 */ blr
+lbl_8026EA20:
+/* 8026EA20 0026A680 3C A0 CD 00 */ lis r5, 0xCD006828@ha
+/* 8026EA24 0026A684 54 80 03 DF */ rlwinm. r0, r4, 0, 0xf, 0xf
+/* 8026EA28 0026A688 80 A5 68 28 */ lwz r5, 0xCD006828@l(r5)
+/* 8026EA2C 0026A68C 54 A5 00 36 */ rlwinm r5, r5, 0, 0, 0x1b
+/* 8026EA30 0026A690 40 82 00 08 */ bne lbl_8026EA38
+/* 8026EA34 0026A694 60 A5 00 01 */ ori r5, r5, 1
+lbl_8026EA38:
+/* 8026EA38 0026A698 54 80 04 21 */ rlwinm. r0, r4, 0, 0x10, 0x10
+/* 8026EA3C 0026A69C 40 82 00 08 */ bne lbl_8026EA44
+/* 8026EA40 0026A6A0 60 A5 00 04 */ ori r5, r5, 4
+lbl_8026EA44:
+/* 8026EA44 0026A6A4 3C 80 CD 00 */ lis r4, 0xCD006828@ha
+/* 8026EA48 0026A6A8 54 63 04 5C */ rlwinm r3, r3, 0, 0x11, 0xe
+/* 8026EA4C 0026A6AC 90 A4 68 28 */ stw r5, 0xCD006828@l(r4)
+/* 8026EA50 0026A6B0 4E 80 00 20 */ blr
+lbl_8026EA54:
+/* 8026EA54 0026A6B4 54 80 04 63 */ rlwinm. r0, r4, 0, 0x11, 0x11
+/* 8026EA58 0026A6B8 38 A0 00 F0 */ li r5, 0xf0
+/* 8026EA5C 0026A6BC 40 82 00 08 */ bne lbl_8026EA64
+/* 8026EA60 0026A6C0 60 A5 08 00 */ ori r5, r5, 0x800
+lbl_8026EA64:
+/* 8026EA64 0026A6C4 54 80 05 29 */ rlwinm. r0, r4, 0, 0x14, 0x14
+/* 8026EA68 0026A6C8 40 82 00 08 */ bne lbl_8026EA70
+/* 8026EA6C 0026A6CC 60 A5 00 08 */ ori r5, r5, 8
+lbl_8026EA70:
+/* 8026EA70 0026A6D0 54 80 05 6B */ rlwinm. r0, r4, 0, 0x15, 0x15
+/* 8026EA74 0026A6D4 40 82 00 08 */ bne lbl_8026EA7C
+/* 8026EA78 0026A6D8 60 A5 00 04 */ ori r5, r5, 4
+lbl_8026EA7C:
+/* 8026EA7C 0026A6DC 54 80 05 AD */ rlwinm. r0, r4, 0, 0x16, 0x16
+/* 8026EA80 0026A6E0 40 82 00 08 */ bne lbl_8026EA88
+/* 8026EA84 0026A6E4 60 A5 00 02 */ ori r5, r5, 2
+lbl_8026EA88:
+/* 8026EA88 0026A6E8 54 80 05 EF */ rlwinm. r0, r4, 0, 0x17, 0x17
+/* 8026EA8C 0026A6EC 40 82 00 08 */ bne lbl_8026EA94
+/* 8026EA90 0026A6F0 60 A5 00 01 */ ori r5, r5, 1
+lbl_8026EA94:
+/* 8026EA94 0026A6F4 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18
+/* 8026EA98 0026A6F8 40 82 00 08 */ bne lbl_8026EAA0
+/* 8026EA9C 0026A6FC 60 A5 01 00 */ ori r5, r5, 0x100
+lbl_8026EAA0:
+/* 8026EAA0 0026A700 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19
+/* 8026EAA4 0026A704 40 82 00 08 */ bne lbl_8026EAAC
+/* 8026EAA8 0026A708 60 A5 10 00 */ ori r5, r5, 0x1000
+lbl_8026EAAC:
+/* 8026EAAC 0026A70C 54 80 04 A5 */ rlwinm. r0, r4, 0, 0x12, 0x12
+/* 8026EAB0 0026A710 40 82 00 08 */ bne lbl_8026EAB8
+/* 8026EAB4 0026A714 60 A5 02 00 */ ori r5, r5, 0x200
+lbl_8026EAB8:
+/* 8026EAB8 0026A718 54 80 04 E7 */ rlwinm. r0, r4, 0, 0x13, 0x13
+/* 8026EABC 0026A71C 40 82 00 08 */ bne lbl_8026EAC4
+/* 8026EAC0 0026A720 60 A5 04 00 */ ori r5, r5, 0x400
+lbl_8026EAC4:
+/* 8026EAC4 0026A724 54 80 06 B5 */ rlwinm. r0, r4, 0, 0x1a, 0x1a
+/* 8026EAC8 0026A728 40 82 00 08 */ bne lbl_8026EAD0
+/* 8026EACC 0026A72C 60 A5 20 00 */ ori r5, r5, 0x2000
+lbl_8026EAD0:
+/* 8026EAD0 0026A730 54 80 06 F7 */ rlwinm. r0, r4, 0, 0x1b, 0x1b
+/* 8026EAD4 0026A734 40 82 00 08 */ bne lbl_8026EADC
+/* 8026EAD8 0026A738 60 A5 40 00 */ ori r5, r5, 0x4000
+lbl_8026EADC:
+/* 8026EADC 0026A73C 3C 80 CC 00 */ lis r4, 0xCC003004@ha
+/* 8026EAE0 0026A740 54 63 07 20 */ rlwinm r3, r3, 0, 0x1c, 0x10
+/* 8026EAE4 0026A744 90 A4 30 04 */ stw r5, 0xCC003004@l(r4)
+/* 8026EAE8 0026A748 4E 80 00 20 */ blr
+
+.global __OSMaskInterrupts
+__OSMaskInterrupts:
+/* 8026EAEC 0026A74C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026EAF0 0026A750 7C 08 02 A6 */ mflr r0
+/* 8026EAF4 0026A754 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026EAF8 0026A758 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026EAFC 0026A75C 7C 7F 1B 78 */ mr r31, r3
+/* 8026EB00 0026A760 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026EB04 0026A764 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026EB08 0026A768 4B FF FC 55 */ bl OSDisableInterrupts
+/* 8026EB0C 0026A76C 3C 80 80 00 */ lis r4, 0x800000C4@ha
+/* 8026EB10 0026A770 7C 7E 1B 78 */ mr r30, r3
+/* 8026EB14 0026A774 83 A4 00 C4 */ lwz r29, 0x800000C4@l(r4)
+/* 8026EB18 0026A778 80 A4 00 C8 */ lwz r5, 0xc8(r4)
+/* 8026EB1C 0026A77C 7F A0 2B 78 */ or r0, r29, r5
+/* 8026EB20 0026A780 7F E3 00 78 */ andc r3, r31, r0
+/* 8026EB24 0026A784 7F FF EB 78 */ or r31, r31, r29
+/* 8026EB28 0026A788 93 E4 00 C4 */ stw r31, 0xc4(r4)
+/* 8026EB2C 0026A78C 7F FF 2B 78 */ or r31, r31, r5
+/* 8026EB30 0026A790 48 00 00 0C */ b lbl_8026EB3C
+lbl_8026EB34:
+/* 8026EB34 0026A794 7F E4 FB 78 */ mr r4, r31
+/* 8026EB38 0026A798 4B FF FD 59 */ bl SetInterruptMask
+lbl_8026EB3C:
+/* 8026EB3C 0026A79C 2C 03 00 00 */ cmpwi r3, 0
+/* 8026EB40 0026A7A0 40 82 FF F4 */ bne lbl_8026EB34
+/* 8026EB44 0026A7A4 7F C3 F3 78 */ mr r3, r30
+/* 8026EB48 0026A7A8 4B FF FC 3D */ bl OSRestoreInterrupts
+/* 8026EB4C 0026A7AC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026EB50 0026A7B0 7F A3 EB 78 */ mr r3, r29
+/* 8026EB54 0026A7B4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026EB58 0026A7B8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026EB5C 0026A7BC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026EB60 0026A7C0 7C 08 03 A6 */ mtlr r0
+/* 8026EB64 0026A7C4 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026EB68 0026A7C8 4E 80 00 20 */ blr
+
+.global __OSUnmaskInterrupts
+__OSUnmaskInterrupts:
+/* 8026EB6C 0026A7CC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026EB70 0026A7D0 7C 08 02 A6 */ mflr r0
+/* 8026EB74 0026A7D4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026EB78 0026A7D8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026EB7C 0026A7DC 7C 7F 1B 78 */ mr r31, r3
+/* 8026EB80 0026A7E0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026EB84 0026A7E4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026EB88 0026A7E8 4B FF FB D5 */ bl OSDisableInterrupts
+/* 8026EB8C 0026A7EC 3C 80 80 00 */ lis r4, 0x800000C4@ha
+/* 8026EB90 0026A7F0 7C 7E 1B 78 */ mr r30, r3
+/* 8026EB94 0026A7F4 83 A4 00 C4 */ lwz r29, 0x800000C4@l(r4)
+/* 8026EB98 0026A7F8 80 A4 00 C8 */ lwz r5, 0xc8(r4)
+/* 8026EB9C 0026A7FC 7F A0 2B 78 */ or r0, r29, r5
+/* 8026EBA0 0026A800 7F E3 00 38 */ and r3, r31, r0
+/* 8026EBA4 0026A804 7F BF F8 78 */ andc r31, r29, r31
+/* 8026EBA8 0026A808 93 E4 00 C4 */ stw r31, 0xc4(r4)
+/* 8026EBAC 0026A80C 7F FF 2B 78 */ or r31, r31, r5
+/* 8026EBB0 0026A810 48 00 00 0C */ b lbl_8026EBBC
+lbl_8026EBB4:
+/* 8026EBB4 0026A814 7F E4 FB 78 */ mr r4, r31
+/* 8026EBB8 0026A818 4B FF FC D9 */ bl SetInterruptMask
+lbl_8026EBBC:
+/* 8026EBBC 0026A81C 2C 03 00 00 */ cmpwi r3, 0
+/* 8026EBC0 0026A820 40 82 FF F4 */ bne lbl_8026EBB4
+/* 8026EBC4 0026A824 7F C3 F3 78 */ mr r3, r30
+/* 8026EBC8 0026A828 4B FF FB BD */ bl OSRestoreInterrupts
+/* 8026EBCC 0026A82C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026EBD0 0026A830 7F A3 EB 78 */ mr r3, r29
+/* 8026EBD4 0026A834 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026EBD8 0026A838 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026EBDC 0026A83C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026EBE0 0026A840 7C 08 03 A6 */ mtlr r0
+/* 8026EBE4 0026A844 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026EBE8 0026A848 4E 80 00 20 */ blr
+
+.global __OSDispatchInterrupt
+__OSDispatchInterrupt:
+/* 8026EBEC 0026A84C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026EBF0 0026A850 7C 08 02 A6 */ mflr r0
+/* 8026EBF4 0026A854 3C 60 CC 00 */ lis r3, 0xCC003000@ha
+/* 8026EBF8 0026A858 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026EBFC 0026A85C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026EC00 0026A860 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026EC04 0026A864 7C 9E 23 78 */ mr r30, r4
+/* 8026EC08 0026A868 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026EC0C 0026A86C 83 E3 30 00 */ lwz r31, 0xCC003000@l(r3)
+/* 8026EC10 0026A870 80 03 30 04 */ lwz r0, 0x3004(r3)
+/* 8026EC14 0026A874 57 FF 04 1D */ rlwinm. r31, r31, 0, 0x10, 0xe
+/* 8026EC18 0026A878 41 82 00 0C */ beq lbl_8026EC24
+/* 8026EC1C 0026A87C 7F E0 00 39 */ and. r0, r31, r0
+/* 8026EC20 0026A880 40 82 00 0C */ bne lbl_8026EC2C
+lbl_8026EC24:
+/* 8026EC24 0026A884 7F C3 F3 78 */ mr r3, r30
+/* 8026EC28 0026A888 4B FF C3 29 */ bl OSLoadContext
+lbl_8026EC2C:
+/* 8026EC2C 0026A88C 57 E0 06 31 */ rlwinm. r0, r31, 0, 0x18, 0x18
+/* 8026EC30 0026A890 38 00 00 00 */ li r0, 0
+/* 8026EC34 0026A894 41 82 00 48 */ beq lbl_8026EC7C
+/* 8026EC38 0026A898 3C 60 CC 00 */ lis r3, 0xCC00401E@ha
+/* 8026EC3C 0026A89C A0 83 40 1E */ lhz r4, 0xCC00401E@l(r3)
+/* 8026EC40 0026A8A0 54 83 07 FF */ clrlwi. r3, r4, 0x1f
+/* 8026EC44 0026A8A4 41 82 00 08 */ beq lbl_8026EC4C
+/* 8026EC48 0026A8A8 64 00 80 00 */ oris r0, r0, 0x8000
+lbl_8026EC4C:
+/* 8026EC4C 0026A8AC 54 83 07 BD */ rlwinm. r3, r4, 0, 0x1e, 0x1e
+/* 8026EC50 0026A8B0 41 82 00 08 */ beq lbl_8026EC58
+/* 8026EC54 0026A8B4 64 00 40 00 */ oris r0, r0, 0x4000
+lbl_8026EC58:
+/* 8026EC58 0026A8B8 54 83 07 7B */ rlwinm. r3, r4, 0, 0x1d, 0x1d
+/* 8026EC5C 0026A8BC 41 82 00 08 */ beq lbl_8026EC64
+/* 8026EC60 0026A8C0 64 00 20 00 */ oris r0, r0, 0x2000
+lbl_8026EC64:
+/* 8026EC64 0026A8C4 54 83 07 39 */ rlwinm. r3, r4, 0, 0x1c, 0x1c
+/* 8026EC68 0026A8C8 41 82 00 08 */ beq lbl_8026EC70
+/* 8026EC6C 0026A8CC 64 00 10 00 */ oris r0, r0, 0x1000
+lbl_8026EC70:
+/* 8026EC70 0026A8D0 54 83 06 F7 */ rlwinm. r3, r4, 0, 0x1b, 0x1b
+/* 8026EC74 0026A8D4 41 82 00 08 */ beq lbl_8026EC7C
+/* 8026EC78 0026A8D8 64 00 08 00 */ oris r0, r0, 0x800
+lbl_8026EC7C:
+/* 8026EC7C 0026A8DC 57 E3 06 73 */ rlwinm. r3, r31, 0, 0x19, 0x19
+/* 8026EC80 0026A8E0 41 82 00 30 */ beq lbl_8026ECB0
+/* 8026EC84 0026A8E4 3C 60 CC 00 */ lis r3, 0xCC00500A@ha
+/* 8026EC88 0026A8E8 A0 83 50 0A */ lhz r4, 0xCC00500A@l(r3)
+/* 8026EC8C 0026A8EC 54 83 07 39 */ rlwinm. r3, r4, 0, 0x1c, 0x1c
+/* 8026EC90 0026A8F0 41 82 00 08 */ beq lbl_8026EC98
+/* 8026EC94 0026A8F4 64 00 04 00 */ oris r0, r0, 0x400
+lbl_8026EC98:
+/* 8026EC98 0026A8F8 54 83 06 B5 */ rlwinm. r3, r4, 0, 0x1a, 0x1a
+/* 8026EC9C 0026A8FC 41 82 00 08 */ beq lbl_8026ECA4
+/* 8026ECA0 0026A900 64 00 02 00 */ oris r0, r0, 0x200
+lbl_8026ECA4:
+/* 8026ECA4 0026A904 54 83 06 31 */ rlwinm. r3, r4, 0, 0x18, 0x18
+/* 8026ECA8 0026A908 41 82 00 08 */ beq lbl_8026ECB0
+/* 8026ECAC 0026A90C 64 00 01 00 */ oris r0, r0, 0x100
+lbl_8026ECB0:
+/* 8026ECB0 0026A910 57 E3 06 B5 */ rlwinm. r3, r31, 0, 0x1a, 0x1a
+/* 8026ECB4 0026A914 41 82 00 18 */ beq lbl_8026ECCC
+/* 8026ECB8 0026A918 3C 60 CD 00 */ lis r3, 0xCD006C00@ha
+/* 8026ECBC 0026A91C 80 63 6C 00 */ lwz r3, 0xCD006C00@l(r3)
+/* 8026ECC0 0026A920 54 63 07 39 */ rlwinm. r3, r3, 0, 0x1c, 0x1c
+/* 8026ECC4 0026A924 41 82 00 08 */ beq lbl_8026ECCC
+/* 8026ECC8 0026A928 64 00 00 80 */ oris r0, r0, 0x80
+lbl_8026ECCC:
+/* 8026ECCC 0026A92C 57 E3 06 F7 */ rlwinm. r3, r31, 0, 0x1b, 0x1b
+/* 8026ECD0 0026A930 41 82 00 7C */ beq lbl_8026ED4C
+/* 8026ECD4 0026A934 3C 60 CD 00 */ lis r3, 0xCD006800@ha
+/* 8026ECD8 0026A938 80 83 68 00 */ lwz r4, 0xCD006800@l(r3)
+/* 8026ECDC 0026A93C 54 83 07 BD */ rlwinm. r3, r4, 0, 0x1e, 0x1e
+/* 8026ECE0 0026A940 41 82 00 08 */ beq lbl_8026ECE8
+/* 8026ECE4 0026A944 64 00 00 40 */ oris r0, r0, 0x40
+lbl_8026ECE8:
+/* 8026ECE8 0026A948 54 83 07 39 */ rlwinm. r3, r4, 0, 0x1c, 0x1c
+/* 8026ECEC 0026A94C 41 82 00 08 */ beq lbl_8026ECF4
+/* 8026ECF0 0026A950 64 00 00 20 */ oris r0, r0, 0x20
+lbl_8026ECF4:
+/* 8026ECF4 0026A954 54 83 05 29 */ rlwinm. r3, r4, 0, 0x14, 0x14
+/* 8026ECF8 0026A958 41 82 00 08 */ beq lbl_8026ED00
+/* 8026ECFC 0026A95C 64 00 00 10 */ oris r0, r0, 0x10
+lbl_8026ED00:
+/* 8026ED00 0026A960 3C 60 CD 00 */ lis r3, 0xCD006814@ha
+/* 8026ED04 0026A964 80 83 68 14 */ lwz r4, 0xCD006814@l(r3)
+/* 8026ED08 0026A968 54 83 07 BD */ rlwinm. r3, r4, 0, 0x1e, 0x1e
+/* 8026ED0C 0026A96C 41 82 00 08 */ beq lbl_8026ED14
+/* 8026ED10 0026A970 64 00 00 08 */ oris r0, r0, 8
+lbl_8026ED14:
+/* 8026ED14 0026A974 54 83 07 39 */ rlwinm. r3, r4, 0, 0x1c, 0x1c
+/* 8026ED18 0026A978 41 82 00 08 */ beq lbl_8026ED20
+/* 8026ED1C 0026A97C 64 00 00 04 */ oris r0, r0, 4
+lbl_8026ED20:
+/* 8026ED20 0026A980 54 83 05 29 */ rlwinm. r3, r4, 0, 0x14, 0x14
+/* 8026ED24 0026A984 41 82 00 08 */ beq lbl_8026ED2C
+/* 8026ED28 0026A988 64 00 00 02 */ oris r0, r0, 2
+lbl_8026ED2C:
+/* 8026ED2C 0026A98C 3C 60 CD 00 */ lis r3, 0xCD006828@ha
+/* 8026ED30 0026A990 80 83 68 28 */ lwz r4, 0xCD006828@l(r3)
+/* 8026ED34 0026A994 54 83 07 BD */ rlwinm. r3, r4, 0, 0x1e, 0x1e
+/* 8026ED38 0026A998 41 82 00 08 */ beq lbl_8026ED40
+/* 8026ED3C 0026A99C 64 00 00 01 */ oris r0, r0, 1
+lbl_8026ED40:
+/* 8026ED40 0026A9A0 54 83 07 39 */ rlwinm. r3, r4, 0, 0x1c, 0x1c
+/* 8026ED44 0026A9A4 41 82 00 08 */ beq lbl_8026ED4C
+/* 8026ED48 0026A9A8 60 00 80 00 */ ori r0, r0, 0x8000
+lbl_8026ED4C:
+/* 8026ED4C 0026A9AC 57 E3 04 A5 */ rlwinm. r3, r31, 0, 0x12, 0x12
+/* 8026ED50 0026A9B0 41 82 00 08 */ beq lbl_8026ED58
+/* 8026ED54 0026A9B4 60 00 00 20 */ ori r0, r0, 0x20
+lbl_8026ED58:
+/* 8026ED58 0026A9B8 57 E3 04 E7 */ rlwinm. r3, r31, 0, 0x13, 0x13
+/* 8026ED5C 0026A9BC 41 82 00 08 */ beq lbl_8026ED64
+/* 8026ED60 0026A9C0 60 00 00 40 */ ori r0, r0, 0x40
+lbl_8026ED64:
+/* 8026ED64 0026A9C4 57 E3 05 6B */ rlwinm. r3, r31, 0, 0x15, 0x15
+/* 8026ED68 0026A9C8 41 82 00 08 */ beq lbl_8026ED70
+/* 8026ED6C 0026A9CC 60 00 10 00 */ ori r0, r0, 0x1000
+lbl_8026ED70:
+/* 8026ED70 0026A9D0 57 E3 05 AD */ rlwinm. r3, r31, 0, 0x16, 0x16
+/* 8026ED74 0026A9D4 41 82 00 08 */ beq lbl_8026ED7C
+/* 8026ED78 0026A9D8 60 00 20 00 */ ori r0, r0, 0x2000
+lbl_8026ED7C:
+/* 8026ED7C 0026A9DC 57 E3 05 EF */ rlwinm. r3, r31, 0, 0x17, 0x17
+/* 8026ED80 0026A9E0 41 82 00 08 */ beq lbl_8026ED88
+/* 8026ED84 0026A9E4 60 00 00 80 */ ori r0, r0, 0x80
+lbl_8026ED88:
+/* 8026ED88 0026A9E8 57 E3 07 39 */ rlwinm. r3, r31, 0, 0x1c, 0x1c
+/* 8026ED8C 0026A9EC 41 82 00 08 */ beq lbl_8026ED94
+/* 8026ED90 0026A9F0 60 00 08 00 */ ori r0, r0, 0x800
+lbl_8026ED94:
+/* 8026ED94 0026A9F4 57 E3 07 7B */ rlwinm. r3, r31, 0, 0x1d, 0x1d
+/* 8026ED98 0026A9F8 41 82 00 08 */ beq lbl_8026EDA0
+/* 8026ED9C 0026A9FC 60 00 04 00 */ ori r0, r0, 0x400
+lbl_8026EDA0:
+/* 8026EDA0 0026AA00 57 E3 07 BD */ rlwinm. r3, r31, 0, 0x1e, 0x1e
+/* 8026EDA4 0026AA04 41 82 00 08 */ beq lbl_8026EDAC
+/* 8026EDA8 0026AA08 60 00 02 00 */ ori r0, r0, 0x200
+lbl_8026EDAC:
+/* 8026EDAC 0026AA0C 57 E3 05 29 */ rlwinm. r3, r31, 0, 0x14, 0x14
+/* 8026EDB0 0026AA10 41 82 00 08 */ beq lbl_8026EDB8
+/* 8026EDB4 0026AA14 60 00 40 00 */ ori r0, r0, 0x4000
+lbl_8026EDB8:
+/* 8026EDB8 0026AA18 57 E3 07 FF */ clrlwi. r3, r31, 0x1f
+/* 8026EDBC 0026AA1C 41 82 00 08 */ beq lbl_8026EDC4
+/* 8026EDC0 0026AA20 60 00 01 00 */ ori r0, r0, 0x100
+lbl_8026EDC4:
+/* 8026EDC4 0026AA24 57 E3 04 63 */ rlwinm. r3, r31, 0, 0x11, 0x11
+/* 8026EDC8 0026AA28 41 82 00 08 */ beq lbl_8026EDD0
+/* 8026EDCC 0026AA2C 60 00 00 10 */ ori r0, r0, 0x10
+lbl_8026EDD0:
+/* 8026EDD0 0026AA30 3C 60 80 00 */ lis r3, 0x800000C4@ha
+/* 8026EDD4 0026AA34 80 83 00 C4 */ lwz r4, 0x800000C4@l(r3)
+/* 8026EDD8 0026AA38 80 63 00 C8 */ lwz r3, 0xc8(r3)
+/* 8026EDDC 0026AA3C 7C 83 1B 78 */ or r3, r4, r3
+/* 8026EDE0 0026AA40 7C 03 18 79 */ andc. r3, r0, r3
+/* 8026EDE4 0026AA44 41 82 00 88 */ beq lbl_8026EE6C
+/* 8026EDE8 0026AA48 3C 80 80 42 */ lis r4, lbl_80427CD8@ha
+/* 8026EDEC 0026AA4C 38 84 7C D8 */ addi r4, r4, lbl_80427CD8@l
+lbl_8026EDF0:
+/* 8026EDF0 0026AA50 80 04 00 00 */ lwz r0, 0(r4)
+/* 8026EDF4 0026AA54 7C 60 00 39 */ and. r0, r3, r0
+/* 8026EDF8 0026AA58 41 82 00 10 */ beq lbl_8026EE08
+/* 8026EDFC 0026AA5C 7C 00 00 34 */ cntlzw r0, r0
+/* 8026EE00 0026AA60 7C 1D 07 34 */ extsh r29, r0
+/* 8026EE04 0026AA64 48 00 00 0C */ b lbl_8026EE10
+lbl_8026EE08:
+/* 8026EE08 0026AA68 38 84 00 04 */ addi r4, r4, 4
+/* 8026EE0C 0026AA6C 4B FF FF E4 */ b lbl_8026EDF0
+lbl_8026EE10:
+/* 8026EE10 0026AA70 80 6D A8 08 */ lwz r3, lbl_8063FAC8-_SDA_BASE_(r13)
+/* 8026EE14 0026AA74 57 A0 10 3A */ slwi r0, r29, 2
+/* 8026EE18 0026AA78 7F E3 00 2E */ lwzx r31, r3, r0
+/* 8026EE1C 0026AA7C 2C 1F 00 00 */ cmpwi r31, 0
+/* 8026EE20 0026AA80 41 82 00 4C */ beq lbl_8026EE6C
+/* 8026EE24 0026AA84 2C 1D 00 04 */ cmpwi r29, 4
+/* 8026EE28 0026AA88 40 81 00 1C */ ble lbl_8026EE44
+/* 8026EE2C 0026AA8C B3 AD A7 FC */ sth r29, lbl_8063FABC-_SDA_BASE_(r13)
+/* 8026EE30 0026AA90 48 00 39 89 */ bl OSGetTime
+/* 8026EE34 0026AA94 90 8D A8 04 */ stw r4, lbl_8063FAC4-_SDA_BASE_(r13)
+/* 8026EE38 0026AA98 90 6D A8 00 */ stw r3, lbl_8063FAC0-_SDA_BASE_(r13)
+/* 8026EE3C 0026AA9C 80 1E 01 98 */ lwz r0, 0x198(r30)
+/* 8026EE40 0026AAA0 90 0D A7 F8 */ stw r0, lbl_8063FAB8-_SDA_BASE_(r13)
+lbl_8026EE44:
+/* 8026EE44 0026AAA4 48 00 25 01 */ bl OSDisableScheduler
+/* 8026EE48 0026AAA8 7F EC FB 78 */ mr r12, r31
+/* 8026EE4C 0026AAAC 7F A3 EB 78 */ mr r3, r29
+/* 8026EE50 0026AAB0 7F C4 F3 78 */ mr r4, r30
+/* 8026EE54 0026AAB4 7D 89 03 A6 */ mtctr r12
+/* 8026EE58 0026AAB8 4E 80 04 21 */ bctrl
+/* 8026EE5C 0026AABC 48 00 25 25 */ bl OSEnableScheduler
+/* 8026EE60 0026AAC0 48 00 2A 2D */ bl __OSReschedule
+/* 8026EE64 0026AAC4 7F C3 F3 78 */ mr r3, r30
+/* 8026EE68 0026AAC8 4B FF C0 E9 */ bl OSLoadContext
+lbl_8026EE6C:
+/* 8026EE6C 0026AACC 7F C3 F3 78 */ mr r3, r30
+/* 8026EE70 0026AAD0 4B FF C0 E1 */ bl OSLoadContext
+/* 8026EE74 0026AAD4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026EE78 0026AAD8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026EE7C 0026AADC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026EE80 0026AAE0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026EE84 0026AAE4 7C 08 03 A6 */ mtlr r0
+/* 8026EE88 0026AAE8 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026EE8C 0026AAEC 4E 80 00 20 */ blr
+
+.global ExternalInterruptHandler
+ExternalInterruptHandler:
+/* 8026EE90 0026AAF0 90 04 00 00 */ stw r0, 0(r4)
+/* 8026EE94 0026AAF4 90 24 00 04 */ stw r1, 4(r4)
+/* 8026EE98 0026AAF8 90 44 00 08 */ stw r2, 8(r4)
+/* 8026EE9C 0026AAFC BC C4 00 18 */ stmw r6, 0x18(r4)
+/* 8026EEA0 0026AB00 7C 11 E2 A6 */ mfspr r0, 0x391
+/* 8026EEA4 0026AB04 90 04 01 A8 */ stw r0, 0x1a8(r4)
+/* 8026EEA8 0026AB08 7C 12 E2 A6 */ mfspr r0, 0x392
+/* 8026EEAC 0026AB0C 90 04 01 AC */ stw r0, 0x1ac(r4)
+/* 8026EEB0 0026AB10 7C 13 E2 A6 */ mfspr r0, 0x393
+/* 8026EEB4 0026AB14 90 04 01 B0 */ stw r0, 0x1b0(r4)
+/* 8026EEB8 0026AB18 7C 14 E2 A6 */ mfspr r0, 0x394
+/* 8026EEBC 0026AB1C 90 04 01 B4 */ stw r0, 0x1b4(r4)
+/* 8026EEC0 0026AB20 7C 15 E2 A6 */ mfspr r0, 0x395
+/* 8026EEC4 0026AB24 90 04 01 B8 */ stw r0, 0x1b8(r4)
+/* 8026EEC8 0026AB28 7C 16 E2 A6 */ mfspr r0, 0x396
+/* 8026EECC 0026AB2C 90 04 01 BC */ stw r0, 0x1bc(r4)
+/* 8026EED0 0026AB30 7C 17 E2 A6 */ mfspr r0, 0x397
+/* 8026EED4 0026AB34 90 04 01 C0 */ stw r0, 0x1c0(r4)
+/* 8026EED8 0026AB38 94 21 FF F8 */ stwu r1, -8(r1)
+/* 8026EEDC 0026AB3C 4B FF FD 10 */ b __OSDispatchInterrupt
diff --git a/asm/SDK/OS/OSLink.s b/asm/SDK/OS/OSLink.s new file mode 100644 index 0000000..cd134ae --- /dev/null +++ b/asm/SDK/OS/OSLink.s @@ -0,0 +1,12 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSModuleInit
+__OSModuleInit:
+/* 8026EEE0 0026AB40 38 00 00 00 */ li r0, 0
+/* 8026EEE4 0026AB44 3C 60 80 00 */ lis r3, 0x800030CC@ha
+/* 8026EEE8 0026AB48 90 03 30 CC */ stw r0, 0x800030CC@l(r3)
+/* 8026EEEC 0026AB4C 90 03 30 C8 */ stw r0, 0x30c8(r3)
+/* 8026EEF0 0026AB50 90 03 30 D0 */ stw r0, 0x30d0(r3)
+/* 8026EEF4 0026AB54 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSMemory.s b/asm/SDK/OS/OSMemory.s new file mode 100644 index 0000000..0ab90cb --- /dev/null +++ b/asm/SDK/OS/OSMemory.s @@ -0,0 +1,582 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSGetPhysicalMem1Size
+OSGetPhysicalMem1Size:
+/* 8026F0FC 0026AD5C 3C 60 80 00 */ lis r3, 0x80003100@ha
+/* 8026F100 0026AD60 80 63 31 00 */ lwz r3, 0x80003100@l(r3)
+/* 8026F104 0026AD64 4E 80 00 20 */ blr
+
+.global OSGetPhysicalMem2Size
+OSGetPhysicalMem2Size:
+/* 8026F108 0026AD68 3C 60 80 00 */ lis r3, 0x80003118@ha
+/* 8026F10C 0026AD6C 80 63 31 18 */ lwz r3, 0x80003118@l(r3)
+/* 8026F110 0026AD70 4E 80 00 20 */ blr
+
+.global OSGetConsoleSimulatedMem1Size
+OSGetConsoleSimulatedMem1Size:
+/* 8026F114 0026AD74 3C 60 80 00 */ lis r3, 0x80003104@ha
+/* 8026F118 0026AD78 80 63 31 04 */ lwz r3, 0x80003104@l(r3)
+/* 8026F11C 0026AD7C 4E 80 00 20 */ blr
+
+.global OSGetConsoleSimulatedMem2Size
+OSGetConsoleSimulatedMem2Size:
+/* 8026F120 0026AD80 3C 60 80 00 */ lis r3, 0x8000311C@ha
+/* 8026F124 0026AD84 80 63 31 1C */ lwz r3, 0x8000311C@l(r3)
+/* 8026F128 0026AD88 4E 80 00 20 */ blr
+
+.global OnShutdown
+OnShutdown:
+/* 8026F12C 0026AD8C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F130 0026AD90 7C 08 02 A6 */ mflr r0
+/* 8026F134 0026AD94 2C 03 00 00 */ cmpwi r3, 0
+/* 8026F138 0026AD98 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F13C 0026AD9C 41 82 00 18 */ beq lbl_8026F154
+/* 8026F140 0026ADA0 38 00 00 FF */ li r0, 0xff
+/* 8026F144 0026ADA4 3C 60 CC 00 */ lis r3, 0xCC004010@ha
+/* 8026F148 0026ADA8 B0 03 40 10 */ sth r0, 0xCC004010@l(r3)
+/* 8026F14C 0026ADAC 3C 60 F0 00 */ lis r3, 0xf000
+/* 8026F150 0026ADB0 4B FF F9 9D */ bl __OSMaskInterrupts
+lbl_8026F154:
+/* 8026F154 0026ADB4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F158 0026ADB8 38 60 00 01 */ li r3, 1
+/* 8026F15C 0026ADBC 7C 08 03 A6 */ mtlr r0
+/* 8026F160 0026ADC0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F164 0026ADC4 4E 80 00 20 */ blr
+
+.global MEMIntrruptHandler
+MEMIntrruptHandler:
+/* 8026F168 0026ADC8 3D 00 CC 00 */ lis r8, 0xCC00401E@ha
+/* 8026F16C 0026ADCC 3C 60 80 50 */ lis r3, lbl_80503CF0@ha
+/* 8026F170 0026ADD0 A0 A8 40 1E */ lhz r5, 0xCC00401E@l(r8)
+/* 8026F174 0026ADD4 38 00 00 00 */ li r0, 0
+/* 8026F178 0026ADD8 A0 E8 40 24 */ lhz r7, 0x4024(r8)
+/* 8026F17C 0026ADDC 38 63 3C F0 */ addi r3, r3, lbl_80503CF0@l
+/* 8026F180 0026ADE0 A0 C8 40 22 */ lhz r6, 0x4022(r8)
+/* 8026F184 0026ADE4 50 E6 81 9E */ rlwimi r6, r7, 0x10, 6, 0xf
+/* 8026F188 0026ADE8 B0 08 40 20 */ sth r0, 0x4020(r8)
+/* 8026F18C 0026ADEC 81 83 00 3C */ lwz r12, 0x3c(r3)
+/* 8026F190 0026ADF0 2C 0C 00 00 */ cmpwi r12, 0
+/* 8026F194 0026ADF4 41 82 00 14 */ beq lbl_8026F1A8
+/* 8026F198 0026ADF8 38 60 00 0F */ li r3, 0xf
+/* 8026F19C 0026ADFC 4C C6 31 82 */ crclr 6
+/* 8026F1A0 0026AE00 7D 89 03 A6 */ mtctr r12
+/* 8026F1A4 0026AE04 4E 80 04 20 */ bctr
+lbl_8026F1A8:
+/* 8026F1A8 0026AE08 38 60 00 0F */ li r3, 0xf
+/* 8026F1AC 0026AE0C 4B FF C6 A4 */ b __OSUnhandledException
+
+.global ConfigMEM1_24MB
+ConfigMEM1_24MB:
+/* 8026F1B0 0026AE10 38 E0 00 00 */ li r7, 0
+/* 8026F1B4 0026AE14 3C 80 00 00 */ lis r4, 0x00000002@ha
+/* 8026F1B8 0026AE18 38 84 00 02 */ addi r4, r4, 0x00000002@l
+/* 8026F1BC 0026AE1C 3C 60 80 00 */ lis r3, 0x800001FF@ha
+/* 8026F1C0 0026AE20 38 63 01 FF */ addi r3, r3, 0x800001FF@l
+/* 8026F1C4 0026AE24 3C C0 01 00 */ lis r6, 0x01000002@ha
+/* 8026F1C8 0026AE28 38 C6 00 02 */ addi r6, r6, 0x01000002@l
+/* 8026F1CC 0026AE2C 3C A0 81 00 */ lis r5, 0x810000FF@ha
+/* 8026F1D0 0026AE30 38 A5 00 FF */ addi r5, r5, 0x810000FF@l
+/* 8026F1D4 0026AE34 4C 00 01 2C */ isync
+/* 8026F1D8 0026AE38 7C F8 83 A6 */ mtdbatu 0, r7
+/* 8026F1DC 0026AE3C 7C 99 83 A6 */ mtdbatl 0, r4
+/* 8026F1E0 0026AE40 7C 78 83 A6 */ mtdbatu 0, r3
+/* 8026F1E4 0026AE44 4C 00 01 2C */ isync
+/* 8026F1E8 0026AE48 7C F0 83 A6 */ mtibatu 0, r7
+/* 8026F1EC 0026AE4C 7C 91 83 A6 */ mtibatl 0, r4
+/* 8026F1F0 0026AE50 7C 70 83 A6 */ mtibatu 0, r3
+/* 8026F1F4 0026AE54 4C 00 01 2C */ isync
+/* 8026F1F8 0026AE58 7C FC 83 A6 */ mtdbatu 2, r7
+/* 8026F1FC 0026AE5C 7C DD 83 A6 */ mtdbatl 2, r6
+/* 8026F200 0026AE60 7C BC 83 A6 */ mtdbatu 2, r5
+/* 8026F204 0026AE64 4C 00 01 2C */ isync
+/* 8026F208 0026AE68 7C F4 83 A6 */ mtibatu 2, r7
+/* 8026F20C 0026AE6C 7C D5 83 A6 */ mtibatl 2, r6
+/* 8026F210 0026AE70 7C B4 83 A6 */ mtibatu 2, r5
+/* 8026F214 0026AE74 4C 00 01 2C */ isync
+/* 8026F218 0026AE78 7C 60 00 A6 */ mfmsr r3
+/* 8026F21C 0026AE7C 60 63 00 30 */ ori r3, r3, 0x30
+/* 8026F220 0026AE80 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F224 0026AE84 7C 68 02 A6 */ mflr r3
+/* 8026F228 0026AE88 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F22C 0026AE8C 4C 00 00 64 */ rfi
+
+.global ConfigMEM1_48MB
+ConfigMEM1_48MB:
+/* 8026F230 0026AE90 38 E0 00 00 */ li r7, 0
+/* 8026F234 0026AE94 3C 80 00 00 */ lis r4, 0x00000002@ha
+/* 8026F238 0026AE98 38 84 00 02 */ addi r4, r4, 0x00000002@l
+/* 8026F23C 0026AE9C 3C 60 80 00 */ lis r3, 0x800003FF@ha
+/* 8026F240 0026AEA0 38 63 03 FF */ addi r3, r3, 0x800003FF@l
+/* 8026F244 0026AEA4 3C C0 02 00 */ lis r6, 0x02000002@ha
+/* 8026F248 0026AEA8 38 C6 00 02 */ addi r6, r6, 0x02000002@l
+/* 8026F24C 0026AEAC 3C A0 82 00 */ lis r5, 0x820001FF@ha
+/* 8026F250 0026AEB0 38 A5 01 FF */ addi r5, r5, 0x820001FF@l
+/* 8026F254 0026AEB4 4C 00 01 2C */ isync
+/* 8026F258 0026AEB8 7C F8 83 A6 */ mtdbatu 0, r7
+/* 8026F25C 0026AEBC 7C 99 83 A6 */ mtdbatl 0, r4
+/* 8026F260 0026AEC0 7C 78 83 A6 */ mtdbatu 0, r3
+/* 8026F264 0026AEC4 4C 00 01 2C */ isync
+/* 8026F268 0026AEC8 7C F0 83 A6 */ mtibatu 0, r7
+/* 8026F26C 0026AECC 7C 91 83 A6 */ mtibatl 0, r4
+/* 8026F270 0026AED0 7C 70 83 A6 */ mtibatu 0, r3
+/* 8026F274 0026AED4 4C 00 01 2C */ isync
+/* 8026F278 0026AED8 7C FC 83 A6 */ mtdbatu 2, r7
+/* 8026F27C 0026AEDC 7C DD 83 A6 */ mtdbatl 2, r6
+/* 8026F280 0026AEE0 7C BC 83 A6 */ mtdbatu 2, r5
+/* 8026F284 0026AEE4 4C 00 01 2C */ isync
+/* 8026F288 0026AEE8 7C F4 83 A6 */ mtibatu 2, r7
+/* 8026F28C 0026AEEC 7C D5 83 A6 */ mtibatl 2, r6
+/* 8026F290 0026AEF0 7C B4 83 A6 */ mtibatu 2, r5
+/* 8026F294 0026AEF4 4C 00 01 2C */ isync
+/* 8026F298 0026AEF8 7C 60 00 A6 */ mfmsr r3
+/* 8026F29C 0026AEFC 60 63 00 30 */ ori r3, r3, 0x30
+/* 8026F2A0 0026AF00 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F2A4 0026AF04 7C 68 02 A6 */ mflr r3
+/* 8026F2A8 0026AF08 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F2AC 0026AF0C 4C 00 00 64 */ rfi
+
+.global ConfigMEM2_52MB
+ConfigMEM2_52MB:
+/* 8026F2B0 0026AF10 38 E0 00 00 */ li r7, 0
+/* 8026F2B4 0026AF14 3C 80 10 00 */ lis r4, 0x10000002@ha
+/* 8026F2B8 0026AF18 38 84 00 02 */ addi r4, r4, 0x10000002@l
+/* 8026F2BC 0026AF1C 3C 60 90 00 */ lis r3, 0x900003FF@ha
+/* 8026F2C0 0026AF20 38 63 03 FF */ addi r3, r3, 0x900003FF@l
+/* 8026F2C4 0026AF24 3C C0 10 00 */ lis r6, 0x1000002A@ha
+/* 8026F2C8 0026AF28 38 C6 00 2A */ addi r6, r6, 0x1000002A@l
+/* 8026F2CC 0026AF2C 3C A0 D0 00 */ lis r5, 0xD00007FF@ha
+/* 8026F2D0 0026AF30 38 A5 07 FF */ addi r5, r5, 0xD00007FF@l
+/* 8026F2D4 0026AF34 4C 00 01 2C */ isync
+/* 8026F2D8 0026AF38 7C F8 8B A6 */ mtspr 0x238, r7
+/* 8026F2DC 0026AF3C 7C 99 8B A6 */ mtspr 0x239, r4
+/* 8026F2E0 0026AF40 7C 78 8B A6 */ mtspr 0x238, r3
+/* 8026F2E4 0026AF44 4C 00 01 2C */ isync
+/* 8026F2E8 0026AF48 7C F0 8B A6 */ mtspr 0x230, r7
+/* 8026F2EC 0026AF4C 7C 91 8B A6 */ mtspr 0x231, r4
+/* 8026F2F0 0026AF50 7C 70 8B A6 */ mtspr 0x230, r3
+/* 8026F2F4 0026AF54 4C 00 01 2C */ isync
+/* 8026F2F8 0026AF58 7C FA 8B A6 */ mtspr 0x23a, r7
+/* 8026F2FC 0026AF5C 7C DB 8B A6 */ mtspr 0x23b, r6
+/* 8026F300 0026AF60 7C BA 8B A6 */ mtspr 0x23a, r5
+/* 8026F304 0026AF64 4C 00 01 2C */ isync
+/* 8026F308 0026AF68 7C F2 8B A6 */ mtspr 0x232, r7
+/* 8026F30C 0026AF6C 7C F3 8B A6 */ mtspr 0x233, r7
+/* 8026F310 0026AF70 4C 00 01 2C */ isync
+/* 8026F314 0026AF74 3C 80 12 00 */ lis r4, 0x12000002@ha
+/* 8026F318 0026AF78 38 84 00 02 */ addi r4, r4, 0x12000002@l
+/* 8026F31C 0026AF7C 3C 60 92 00 */ lis r3, 0x920001FF@ha
+/* 8026F320 0026AF80 38 63 01 FF */ addi r3, r3, 0x920001FF@l
+/* 8026F324 0026AF84 3C C0 13 00 */ lis r6, 0x13000002@ha
+/* 8026F328 0026AF88 38 C6 00 02 */ addi r6, r6, 0x13000002@l
+/* 8026F32C 0026AF8C 3C A0 93 00 */ lis r5, 0x9300007F@ha
+/* 8026F330 0026AF90 38 A5 00 7F */ addi r5, r5, 0x9300007F@l
+/* 8026F334 0026AF94 4C 00 01 2C */ isync
+/* 8026F338 0026AF98 7C FC 8B A6 */ mtspr 0x23c, r7
+/* 8026F33C 0026AF9C 7C 9D 8B A6 */ mtspr 0x23d, r4
+/* 8026F340 0026AFA0 7C 7C 8B A6 */ mtspr 0x23c, r3
+/* 8026F344 0026AFA4 4C 00 01 2C */ isync
+/* 8026F348 0026AFA8 7C F4 8B A6 */ mtspr 0x234, r7
+/* 8026F34C 0026AFAC 7C 95 8B A6 */ mtspr 0x235, r4
+/* 8026F350 0026AFB0 7C 74 8B A6 */ mtspr 0x234, r3
+/* 8026F354 0026AFB4 4C 00 01 2C */ isync
+/* 8026F358 0026AFB8 7C FE 8B A6 */ mtspr 0x23e, r7
+/* 8026F35C 0026AFBC 7C DF 8B A6 */ mtspr 0x23f, r6
+/* 8026F360 0026AFC0 7C BE 8B A6 */ mtspr 0x23e, r5
+/* 8026F364 0026AFC4 4C 00 01 2C */ isync
+/* 8026F368 0026AFC8 7C F6 8B A6 */ mtspr 0x236, r7
+/* 8026F36C 0026AFCC 7C D7 8B A6 */ mtspr 0x237, r6
+/* 8026F370 0026AFD0 7C B6 8B A6 */ mtspr 0x236, r5
+/* 8026F374 0026AFD4 4C 00 01 2C */ isync
+/* 8026F378 0026AFD8 7C 60 00 A6 */ mfmsr r3
+/* 8026F37C 0026AFDC 60 63 00 30 */ ori r3, r3, 0x30
+/* 8026F380 0026AFE0 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F384 0026AFE4 7C 68 02 A6 */ mflr r3
+/* 8026F388 0026AFE8 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F38C 0026AFEC 4C 00 00 64 */ rfi
+
+.global ConfigMEM2_56MB
+ConfigMEM2_56MB:
+/* 8026F390 0026AFF0 38 E0 00 00 */ li r7, 0
+/* 8026F394 0026AFF4 3C 80 10 00 */ lis r4, 0x10000002@ha
+/* 8026F398 0026AFF8 38 84 00 02 */ addi r4, r4, 0x10000002@l
+/* 8026F39C 0026AFFC 3C 60 90 00 */ lis r3, 0x900003FF@ha
+/* 8026F3A0 0026B000 38 63 03 FF */ addi r3, r3, 0x900003FF@l
+/* 8026F3A4 0026B004 3C C0 10 00 */ lis r6, 0x1000002A@ha
+/* 8026F3A8 0026B008 38 C6 00 2A */ addi r6, r6, 0x1000002A@l
+/* 8026F3AC 0026B00C 3C A0 D0 00 */ lis r5, 0xD00007FF@ha
+/* 8026F3B0 0026B010 38 A5 07 FF */ addi r5, r5, 0xD00007FF@l
+/* 8026F3B4 0026B014 4C 00 01 2C */ isync
+/* 8026F3B8 0026B018 7C F8 8B A6 */ mtspr 0x238, r7
+/* 8026F3BC 0026B01C 7C 99 8B A6 */ mtspr 0x239, r4
+/* 8026F3C0 0026B020 7C 78 8B A6 */ mtspr 0x238, r3
+/* 8026F3C4 0026B024 4C 00 01 2C */ isync
+/* 8026F3C8 0026B028 7C F0 8B A6 */ mtspr 0x230, r7
+/* 8026F3CC 0026B02C 7C 91 8B A6 */ mtspr 0x231, r4
+/* 8026F3D0 0026B030 7C 70 8B A6 */ mtspr 0x230, r3
+/* 8026F3D4 0026B034 4C 00 01 2C */ isync
+/* 8026F3D8 0026B038 7C FA 8B A6 */ mtspr 0x23a, r7
+/* 8026F3DC 0026B03C 7C DB 8B A6 */ mtspr 0x23b, r6
+/* 8026F3E0 0026B040 7C BA 8B A6 */ mtspr 0x23a, r5
+/* 8026F3E4 0026B044 4C 00 01 2C */ isync
+/* 8026F3E8 0026B048 7C F2 8B A6 */ mtspr 0x232, r7
+/* 8026F3EC 0026B04C 7C F3 8B A6 */ mtspr 0x233, r7
+/* 8026F3F0 0026B050 4C 00 01 2C */ isync
+/* 8026F3F4 0026B054 3C 80 12 00 */ lis r4, 0x12000002@ha
+/* 8026F3F8 0026B058 38 84 00 02 */ addi r4, r4, 0x12000002@l
+/* 8026F3FC 0026B05C 3C 60 92 00 */ lis r3, 0x920001FF@ha
+/* 8026F400 0026B060 38 63 01 FF */ addi r3, r3, 0x920001FF@l
+/* 8026F404 0026B064 3C C0 13 00 */ lis r6, 0x13000002@ha
+/* 8026F408 0026B068 38 C6 00 02 */ addi r6, r6, 0x13000002@l
+/* 8026F40C 0026B06C 3C A0 93 00 */ lis r5, 0x930000FF@ha
+/* 8026F410 0026B070 38 A5 00 FF */ addi r5, r5, 0x930000FF@l
+/* 8026F414 0026B074 4C 00 01 2C */ isync
+/* 8026F418 0026B078 7C FC 8B A6 */ mtspr 0x23c, r7
+/* 8026F41C 0026B07C 7C 9D 8B A6 */ mtspr 0x23d, r4
+/* 8026F420 0026B080 7C 7C 8B A6 */ mtspr 0x23c, r3
+/* 8026F424 0026B084 4C 00 01 2C */ isync
+/* 8026F428 0026B088 7C F4 8B A6 */ mtspr 0x234, r7
+/* 8026F42C 0026B08C 7C 95 8B A6 */ mtspr 0x235, r4
+/* 8026F430 0026B090 7C 74 8B A6 */ mtspr 0x234, r3
+/* 8026F434 0026B094 4C 00 01 2C */ isync
+/* 8026F438 0026B098 7C FE 8B A6 */ mtspr 0x23e, r7
+/* 8026F43C 0026B09C 7C DF 8B A6 */ mtspr 0x23f, r6
+/* 8026F440 0026B0A0 7C BE 8B A6 */ mtspr 0x23e, r5
+/* 8026F444 0026B0A4 4C 00 01 2C */ isync
+/* 8026F448 0026B0A8 7C F6 8B A6 */ mtspr 0x236, r7
+/* 8026F44C 0026B0AC 7C D7 8B A6 */ mtspr 0x237, r6
+/* 8026F450 0026B0B0 7C B6 8B A6 */ mtspr 0x236, r5
+/* 8026F454 0026B0B4 4C 00 01 2C */ isync
+/* 8026F458 0026B0B8 7C 60 00 A6 */ mfmsr r3
+/* 8026F45C 0026B0BC 60 63 00 30 */ ori r3, r3, 0x30
+/* 8026F460 0026B0C0 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F464 0026B0C4 7C 68 02 A6 */ mflr r3
+/* 8026F468 0026B0C8 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F46C 0026B0CC 4C 00 00 64 */ rfi
+
+.global ConfigMEM2_64MB
+ConfigMEM2_64MB:
+/* 8026F470 0026B0D0 38 E0 00 00 */ li r7, 0
+/* 8026F474 0026B0D4 3C 80 10 00 */ lis r4, 0x10000002@ha
+/* 8026F478 0026B0D8 38 84 00 02 */ addi r4, r4, 0x10000002@l
+/* 8026F47C 0026B0DC 3C 60 90 00 */ lis r3, 0x900007FF@ha
+/* 8026F480 0026B0E0 38 63 07 FF */ addi r3, r3, 0x900007FF@l
+/* 8026F484 0026B0E4 3C C0 10 00 */ lis r6, 0x1000002A@ha
+/* 8026F488 0026B0E8 38 C6 00 2A */ addi r6, r6, 0x1000002A@l
+/* 8026F48C 0026B0EC 3C A0 D0 00 */ lis r5, 0xD00007FF@ha
+/* 8026F490 0026B0F0 38 A5 07 FF */ addi r5, r5, 0xD00007FF@l
+/* 8026F494 0026B0F4 4C 00 01 2C */ isync
+/* 8026F498 0026B0F8 7C F8 8B A6 */ mtspr 0x238, r7
+/* 8026F49C 0026B0FC 7C 99 8B A6 */ mtspr 0x239, r4
+/* 8026F4A0 0026B100 7C 78 8B A6 */ mtspr 0x238, r3
+/* 8026F4A4 0026B104 4C 00 01 2C */ isync
+/* 8026F4A8 0026B108 7C F0 8B A6 */ mtspr 0x230, r7
+/* 8026F4AC 0026B10C 7C 91 8B A6 */ mtspr 0x231, r4
+/* 8026F4B0 0026B110 7C 70 8B A6 */ mtspr 0x230, r3
+/* 8026F4B4 0026B114 4C 00 01 2C */ isync
+/* 8026F4B8 0026B118 7C FA 8B A6 */ mtspr 0x23a, r7
+/* 8026F4BC 0026B11C 7C DB 8B A6 */ mtspr 0x23b, r6
+/* 8026F4C0 0026B120 7C BA 8B A6 */ mtspr 0x23a, r5
+/* 8026F4C4 0026B124 4C 00 01 2C */ isync
+/* 8026F4C8 0026B128 7C F2 8B A6 */ mtspr 0x232, r7
+/* 8026F4CC 0026B12C 7C F3 8B A6 */ mtspr 0x233, r7
+/* 8026F4D0 0026B130 4C 00 01 2C */ isync
+/* 8026F4D4 0026B134 7C F4 8B A6 */ mtspr 0x234, r7
+/* 8026F4D8 0026B138 7C F5 8B A6 */ mtspr 0x235, r7
+/* 8026F4DC 0026B13C 4C 00 01 2C */ isync
+/* 8026F4E0 0026B140 7C F6 8B A6 */ mtspr 0x236, r7
+/* 8026F4E4 0026B144 7C F7 8B A6 */ mtspr 0x237, r7
+/* 8026F4E8 0026B148 4C 00 01 2C */ isync
+/* 8026F4EC 0026B14C 7C FC 8B A6 */ mtspr 0x23c, r7
+/* 8026F4F0 0026B150 7C FD 8B A6 */ mtspr 0x23d, r7
+/* 8026F4F4 0026B154 4C 00 01 2C */ isync
+/* 8026F4F8 0026B158 7C FE 8B A6 */ mtspr 0x23e, r7
+/* 8026F4FC 0026B15C 7C FF 8B A6 */ mtspr 0x23f, r7
+/* 8026F500 0026B160 4C 00 01 2C */ isync
+/* 8026F504 0026B164 7C 60 00 A6 */ mfmsr r3
+/* 8026F508 0026B168 60 63 00 30 */ ori r3, r3, 0x30
+/* 8026F50C 0026B16C 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F510 0026B170 7C 68 02 A6 */ mflr r3
+/* 8026F514 0026B174 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F518 0026B178 4C 00 00 64 */ rfi
+
+.global ConfigMEM2_112MB
+ConfigMEM2_112MB:
+/* 8026F51C 0026B17C 38 E0 00 00 */ li r7, 0
+/* 8026F520 0026B180 3C 80 10 00 */ lis r4, 0x10000002@ha
+/* 8026F524 0026B184 38 84 00 02 */ addi r4, r4, 0x10000002@l
+/* 8026F528 0026B188 3C 60 90 00 */ lis r3, 0x900007FF@ha
+/* 8026F52C 0026B18C 38 63 07 FF */ addi r3, r3, 0x900007FF@l
+/* 8026F530 0026B190 3C C0 10 00 */ lis r6, 0x1000002A@ha
+/* 8026F534 0026B194 38 C6 00 2A */ addi r6, r6, 0x1000002A@l
+/* 8026F538 0026B198 3C A0 D0 00 */ lis r5, 0xD0000FFF@ha
+/* 8026F53C 0026B19C 38 A5 0F FF */ addi r5, r5, 0xD0000FFF@l
+/* 8026F540 0026B1A0 4C 00 01 2C */ isync
+/* 8026F544 0026B1A4 7C F8 8B A6 */ mtspr 0x238, r7
+/* 8026F548 0026B1A8 7C 99 8B A6 */ mtspr 0x239, r4
+/* 8026F54C 0026B1AC 7C 78 8B A6 */ mtspr 0x238, r3
+/* 8026F550 0026B1B0 4C 00 01 2C */ isync
+/* 8026F554 0026B1B4 7C F0 8B A6 */ mtspr 0x230, r7
+/* 8026F558 0026B1B8 7C 91 8B A6 */ mtspr 0x231, r4
+/* 8026F55C 0026B1BC 7C 70 8B A6 */ mtspr 0x230, r3
+/* 8026F560 0026B1C0 4C 00 01 2C */ isync
+/* 8026F564 0026B1C4 7C FA 8B A6 */ mtspr 0x23a, r7
+/* 8026F568 0026B1C8 7C DB 8B A6 */ mtspr 0x23b, r6
+/* 8026F56C 0026B1CC 7C BA 8B A6 */ mtspr 0x23a, r5
+/* 8026F570 0026B1D0 4C 00 01 2C */ isync
+/* 8026F574 0026B1D4 7C F2 8B A6 */ mtspr 0x232, r7
+/* 8026F578 0026B1D8 7C F3 8B A6 */ mtspr 0x233, r7
+/* 8026F57C 0026B1DC 4C 00 01 2C */ isync
+/* 8026F580 0026B1E0 3C 80 14 00 */ lis r4, 0x14000002@ha
+/* 8026F584 0026B1E4 38 84 00 02 */ addi r4, r4, 0x14000002@l
+/* 8026F588 0026B1E8 3C 60 94 00 */ lis r3, 0x940003FF@ha
+/* 8026F58C 0026B1EC 38 63 03 FF */ addi r3, r3, 0x940003FF@l
+/* 8026F590 0026B1F0 3C C0 16 00 */ lis r6, 0x16000002@ha
+/* 8026F594 0026B1F4 38 C6 00 02 */ addi r6, r6, 0x16000002@l
+/* 8026F598 0026B1F8 3C A0 96 00 */ lis r5, 0x960001FF@ha
+/* 8026F59C 0026B1FC 38 A5 01 FF */ addi r5, r5, 0x960001FF@l
+/* 8026F5A0 0026B200 4C 00 01 2C */ isync
+/* 8026F5A4 0026B204 7C FC 8B A6 */ mtspr 0x23c, r7
+/* 8026F5A8 0026B208 7C 9D 8B A6 */ mtspr 0x23d, r4
+/* 8026F5AC 0026B20C 7C 7C 8B A6 */ mtspr 0x23c, r3
+/* 8026F5B0 0026B210 4C 00 01 2C */ isync
+/* 8026F5B4 0026B214 7C F4 8B A6 */ mtspr 0x234, r7
+/* 8026F5B8 0026B218 7C 95 8B A6 */ mtspr 0x235, r4
+/* 8026F5BC 0026B21C 7C 74 8B A6 */ mtspr 0x234, r3
+/* 8026F5C0 0026B220 4C 00 01 2C */ isync
+/* 8026F5C4 0026B224 7C FE 8B A6 */ mtspr 0x23e, r7
+/* 8026F5C8 0026B228 7C DF 8B A6 */ mtspr 0x23f, r6
+/* 8026F5CC 0026B22C 7C BE 8B A6 */ mtspr 0x23e, r5
+/* 8026F5D0 0026B230 4C 00 01 2C */ isync
+/* 8026F5D4 0026B234 7C F6 8B A6 */ mtspr 0x236, r7
+/* 8026F5D8 0026B238 7C D7 8B A6 */ mtspr 0x237, r6
+/* 8026F5DC 0026B23C 7C B6 8B A6 */ mtspr 0x236, r5
+/* 8026F5E0 0026B240 4C 00 01 2C */ isync
+/* 8026F5E4 0026B244 7C 60 00 A6 */ mfmsr r3
+/* 8026F5E8 0026B248 60 63 00 30 */ ori r3, r3, 0x30
+/* 8026F5EC 0026B24C 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F5F0 0026B250 7C 68 02 A6 */ mflr r3
+/* 8026F5F4 0026B254 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F5F8 0026B258 4C 00 00 64 */ rfi
+
+.global ConfigMEM2_128MB
+ConfigMEM2_128MB:
+/* 8026F5FC 0026B25C 38 E0 00 00 */ li r7, 0
+/* 8026F600 0026B260 3C 80 10 00 */ lis r4, 0x10000002@ha
+/* 8026F604 0026B264 38 84 00 02 */ addi r4, r4, 0x10000002@l
+/* 8026F608 0026B268 3C 60 90 00 */ lis r3, 0x90000FFF@ha
+/* 8026F60C 0026B26C 38 63 0F FF */ addi r3, r3, 0x90000FFF@l
+/* 8026F610 0026B270 3C C0 10 00 */ lis r6, 0x1000002A@ha
+/* 8026F614 0026B274 38 C6 00 2A */ addi r6, r6, 0x1000002A@l
+/* 8026F618 0026B278 3C A0 D0 00 */ lis r5, 0xD0000FFF@ha
+/* 8026F61C 0026B27C 38 A5 0F FF */ addi r5, r5, 0xD0000FFF@l
+/* 8026F620 0026B280 4C 00 01 2C */ isync
+/* 8026F624 0026B284 7C F8 8B A6 */ mtspr 0x238, r7
+/* 8026F628 0026B288 7C 99 8B A6 */ mtspr 0x239, r4
+/* 8026F62C 0026B28C 7C 78 8B A6 */ mtspr 0x238, r3
+/* 8026F630 0026B290 4C 00 01 2C */ isync
+/* 8026F634 0026B294 7C F0 8B A6 */ mtspr 0x230, r7
+/* 8026F638 0026B298 7C 91 8B A6 */ mtspr 0x231, r4
+/* 8026F63C 0026B29C 7C 70 8B A6 */ mtspr 0x230, r3
+/* 8026F640 0026B2A0 4C 00 01 2C */ isync
+/* 8026F644 0026B2A4 7C FA 8B A6 */ mtspr 0x23a, r7
+/* 8026F648 0026B2A8 7C DB 8B A6 */ mtspr 0x23b, r6
+/* 8026F64C 0026B2AC 7C BA 8B A6 */ mtspr 0x23a, r5
+/* 8026F650 0026B2B0 4C 00 01 2C */ isync
+/* 8026F654 0026B2B4 7C F2 8B A6 */ mtspr 0x232, r7
+/* 8026F658 0026B2B8 7C F3 8B A6 */ mtspr 0x233, r7
+/* 8026F65C 0026B2BC 4C 00 01 2C */ isync
+/* 8026F660 0026B2C0 7C F4 8B A6 */ mtspr 0x234, r7
+/* 8026F664 0026B2C4 7C F5 8B A6 */ mtspr 0x235, r7
+/* 8026F668 0026B2C8 4C 00 01 2C */ isync
+/* 8026F66C 0026B2CC 7C F6 8B A6 */ mtspr 0x236, r7
+/* 8026F670 0026B2D0 7C F7 8B A6 */ mtspr 0x237, r7
+/* 8026F674 0026B2D4 4C 00 01 2C */ isync
+/* 8026F678 0026B2D8 7C FC 8B A6 */ mtspr 0x23c, r7
+/* 8026F67C 0026B2DC 7C FD 8B A6 */ mtspr 0x23d, r7
+/* 8026F680 0026B2E0 4C 00 01 2C */ isync
+/* 8026F684 0026B2E4 7C FE 8B A6 */ mtspr 0x23e, r7
+/* 8026F688 0026B2E8 7C FF 8B A6 */ mtspr 0x23f, r7
+/* 8026F68C 0026B2EC 4C 00 01 2C */ isync
+/* 8026F690 0026B2F0 7C 60 00 A6 */ mfmsr r3
+/* 8026F694 0026B2F4 60 63 00 30 */ ori r3, r3, 0x30
+/* 8026F698 0026B2F8 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F69C 0026B2FC 7C 68 02 A6 */ mflr r3
+/* 8026F6A0 0026B300 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F6A4 0026B304 4C 00 00 64 */ rfi
+
+.global ConfigMEM_ES1_0
+ConfigMEM_ES1_0:
+/* 8026F6A8 0026B308 38 E0 00 00 */ li r7, 0
+/* 8026F6AC 0026B30C 3C 80 00 00 */ lis r4, 0x00000002@ha
+/* 8026F6B0 0026B310 38 84 00 02 */ addi r4, r4, 0x00000002@l
+/* 8026F6B4 0026B314 3C 60 80 00 */ lis r3, 0x80000FFF@ha
+/* 8026F6B8 0026B318 38 63 0F FF */ addi r3, r3, 0x80000FFF@l
+/* 8026F6BC 0026B31C 4C 00 01 2C */ isync
+/* 8026F6C0 0026B320 7C F8 83 A6 */ mtdbatu 0, r7
+/* 8026F6C4 0026B324 7C 99 83 A6 */ mtdbatl 0, r4
+/* 8026F6C8 0026B328 7C 78 83 A6 */ mtdbatu 0, r3
+/* 8026F6CC 0026B32C 4C 00 01 2C */ isync
+/* 8026F6D0 0026B330 7C F0 83 A6 */ mtibatu 0, r7
+/* 8026F6D4 0026B334 7C 91 83 A6 */ mtibatl 0, r4
+/* 8026F6D8 0026B338 7C 70 83 A6 */ mtibatu 0, r3
+/* 8026F6DC 0026B33C 4C 00 01 2C */ isync
+/* 8026F6E0 0026B340 7C 60 00 A6 */ mfmsr r3
+/* 8026F6E4 0026B344 60 63 00 30 */ ori r3, r3, 0x30
+/* 8026F6E8 0026B348 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F6EC 0026B34C 7C 68 02 A6 */ mflr r3
+/* 8026F6F0 0026B350 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F6F4 0026B354 4C 00 00 64 */ rfi
+
+.global RealMode
+RealMode:
+/* 8026F6F8 0026B358 54 63 00 BE */ clrlwi r3, r3, 2
+/* 8026F6FC 0026B35C 7C 7A 03 A6 */ mtspr 0x1a, r3
+/* 8026F700 0026B360 7C 60 00 A6 */ mfmsr r3
+/* 8026F704 0026B364 54 63 07 32 */ rlwinm r3, r3, 0, 0x1c, 0x19
+/* 8026F708 0026B368 7C 7B 03 A6 */ mtspr 0x1b, r3
+/* 8026F70C 0026B36C 4C 00 00 64 */ rfi
+
+.global BATConfig
+BATConfig:
+/* 8026F710 0026B370 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F714 0026B374 7C 08 02 A6 */ mflr r0
+/* 8026F718 0026B378 3C 60 80 00 */ lis r3, 0x80003138@ha
+/* 8026F71C 0026B37C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F720 0026B380 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026F724 0026B384 80 03 31 38 */ lwz r0, 0x80003138@l(r3)
+/* 8026F728 0026B388 2C 00 00 00 */ cmpwi r0, 0
+/* 8026F72C 0026B38C 40 82 00 20 */ bne lbl_8026F74C
+/* 8026F730 0026B390 3C 00 80 27 */ lis r0, 0x8027
+/* 8026F734 0026B394 34 00 F0 FC */ addic. r0, r0, -3844
+/* 8026F738 0026B398 40 82 00 14 */ bne lbl_8026F74C
+/* 8026F73C 0026B39C 3C 60 80 27 */ lis r3, ConfigMEM_ES1_0@ha
+/* 8026F740 0026B3A0 38 63 F6 A8 */ addi r3, r3, ConfigMEM_ES1_0@l
+/* 8026F744 0026B3A4 4B FF FF B5 */ bl RealMode
+/* 8026F748 0026B3A8 48 00 01 04 */ b lbl_8026F84C
+lbl_8026F74C:
+/* 8026F74C 0026B3AC 3C 60 80 00 */ lis r3, 0x80003104@ha
+/* 8026F750 0026B3B0 83 E3 31 04 */ lwz r31, 0x80003104@l(r3)
+/* 8026F754 0026B3B4 80 03 31 00 */ lwz r0, 0x3100(r3)
+/* 8026F758 0026B3B8 7C 1F 00 40 */ cmplw r31, r0
+/* 8026F75C 0026B3BC 40 80 00 28 */ bge lbl_8026F784
+/* 8026F760 0026B3C0 3C 1F FE 80 */ addis r0, r31, 0xfe80
+/* 8026F764 0026B3C4 28 00 00 00 */ cmplwi r0, 0
+/* 8026F768 0026B3C8 40 82 00 1C */ bne lbl_8026F784
+/* 8026F76C 0026B3CC 3C 60 81 80 */ lis r3, 0x8180
+/* 8026F770 0026B3D0 3C 80 01 80 */ lis r4, 0x180
+/* 8026F774 0026B3D4 4B FF AE B5 */ bl DCInvalidateRange
+/* 8026F778 0026B3D8 38 00 00 02 */ li r0, 2
+/* 8026F77C 0026B3DC 3C 60 CC 00 */ lis r3, 0xCC004028@ha
+/* 8026F780 0026B3E0 B0 03 40 28 */ sth r0, 0xCC004028@l(r3)
+lbl_8026F784:
+/* 8026F784 0026B3E4 3C 00 01 80 */ lis r0, 0x180
+/* 8026F788 0026B3E8 7C 1F 00 40 */ cmplw r31, r0
+/* 8026F78C 0026B3EC 41 81 00 14 */ bgt lbl_8026F7A0
+/* 8026F790 0026B3F0 3C 60 80 27 */ lis r3, ConfigMEM1_24MB@ha
+/* 8026F794 0026B3F4 38 63 F1 B0 */ addi r3, r3, ConfigMEM1_24MB@l
+/* 8026F798 0026B3F8 4B FF FF 61 */ bl RealMode
+/* 8026F79C 0026B3FC 48 00 00 1C */ b lbl_8026F7B8
+lbl_8026F7A0:
+/* 8026F7A0 0026B400 3C 00 03 00 */ lis r0, 0x300
+/* 8026F7A4 0026B404 7C 1F 00 40 */ cmplw r31, r0
+/* 8026F7A8 0026B408 41 81 00 10 */ bgt lbl_8026F7B8
+/* 8026F7AC 0026B40C 3C 60 80 27 */ lis r3, ConfigMEM1_48MB@ha
+/* 8026F7B0 0026B410 38 63 F2 30 */ addi r3, r3, ConfigMEM1_48MB@l
+/* 8026F7B4 0026B414 4B FF FF 45 */ bl RealMode
+lbl_8026F7B8:
+/* 8026F7B8 0026B418 3C 60 80 00 */ lis r3, 0x8000311C@ha
+/* 8026F7BC 0026B41C 3C 00 04 00 */ lis r0, 0x400
+/* 8026F7C0 0026B420 80 83 31 1C */ lwz r4, 0x8000311C@l(r3)
+/* 8026F7C4 0026B424 80 63 31 20 */ lwz r3, 0x3120(r3)
+/* 8026F7C8 0026B428 7C 04 00 40 */ cmplw r4, r0
+/* 8026F7CC 0026B42C 41 81 00 4C */ bgt lbl_8026F818
+/* 8026F7D0 0026B430 3C 00 93 40 */ lis r0, 0x9340
+/* 8026F7D4 0026B434 7C 03 00 40 */ cmplw r3, r0
+/* 8026F7D8 0026B438 41 81 00 14 */ bgt lbl_8026F7EC
+/* 8026F7DC 0026B43C 3C 60 80 27 */ lis r3, ConfigMEM2_52MB@ha
+/* 8026F7E0 0026B440 38 63 F2 B0 */ addi r3, r3, ConfigMEM2_52MB@l
+/* 8026F7E4 0026B444 4B FF FF 15 */ bl RealMode
+/* 8026F7E8 0026B448 48 00 00 64 */ b lbl_8026F84C
+lbl_8026F7EC:
+/* 8026F7EC 0026B44C 3C 00 93 80 */ lis r0, 0x9380
+/* 8026F7F0 0026B450 7C 03 00 40 */ cmplw r3, r0
+/* 8026F7F4 0026B454 41 81 00 14 */ bgt lbl_8026F808
+/* 8026F7F8 0026B458 3C 60 80 27 */ lis r3, ConfigMEM2_56MB@ha
+/* 8026F7FC 0026B45C 38 63 F3 90 */ addi r3, r3, ConfigMEM2_56MB@l
+/* 8026F800 0026B460 4B FF FE F9 */ bl RealMode
+/* 8026F804 0026B464 48 00 00 48 */ b lbl_8026F84C
+lbl_8026F808:
+/* 8026F808 0026B468 3C 60 80 27 */ lis r3, ConfigMEM2_64MB@ha
+/* 8026F80C 0026B46C 38 63 F4 70 */ addi r3, r3, ConfigMEM2_64MB@l
+/* 8026F810 0026B470 4B FF FE E9 */ bl RealMode
+/* 8026F814 0026B474 48 00 00 38 */ b lbl_8026F84C
+lbl_8026F818:
+/* 8026F818 0026B478 3C 00 08 00 */ lis r0, 0x800
+/* 8026F81C 0026B47C 7C 04 00 40 */ cmplw r4, r0
+/* 8026F820 0026B480 41 81 00 2C */ bgt lbl_8026F84C
+/* 8026F824 0026B484 3C 00 97 00 */ lis r0, 0x9700
+/* 8026F828 0026B488 7C 03 00 40 */ cmplw r3, r0
+/* 8026F82C 0026B48C 41 81 00 14 */ bgt lbl_8026F840
+/* 8026F830 0026B490 3C 60 80 27 */ lis r3, ConfigMEM2_112MB@ha
+/* 8026F834 0026B494 38 63 F5 1C */ addi r3, r3, ConfigMEM2_112MB@l
+/* 8026F838 0026B498 4B FF FE C1 */ bl RealMode
+/* 8026F83C 0026B49C 48 00 00 10 */ b lbl_8026F84C
+lbl_8026F840:
+/* 8026F840 0026B4A0 3C 60 80 27 */ lis r3, ConfigMEM2_128MB@ha
+/* 8026F844 0026B4A4 38 63 F5 FC */ addi r3, r3, ConfigMEM2_128MB@l
+/* 8026F848 0026B4A8 4B FF FE B1 */ bl RealMode
+lbl_8026F84C:
+/* 8026F84C 0026B4AC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F850 0026B4B0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026F854 0026B4B4 7C 08 03 A6 */ mtlr r0
+/* 8026F858 0026B4B8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F85C 0026B4BC 4E 80 00 20 */ blr
+
+.global __OSInitMemoryProtection
+__OSInitMemoryProtection:
+/* 8026F860 0026B4C0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F864 0026B4C4 7C 08 02 A6 */ mflr r0
+/* 8026F868 0026B4C8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F86C 0026B4CC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026F870 0026B4D0 93 C1 00 08 */ stw r30, 8(r1)
+/* 8026F874 0026B4D4 4B FF EE E9 */ bl OSDisableInterrupts
+/* 8026F878 0026B4D8 3C 80 CC 00 */ lis r4, 0xCC004020@ha
+/* 8026F87C 0026B4DC 38 00 00 00 */ li r0, 0
+/* 8026F880 0026B4E0 B0 04 40 20 */ sth r0, 0xCC004020@l(r4)
+/* 8026F884 0026B4E4 38 00 00 FF */ li r0, 0xff
+/* 8026F888 0026B4E8 7C 7E 1B 78 */ mr r30, r3
+/* 8026F88C 0026B4EC 3C 60 F0 00 */ lis r3, 0xf000
+/* 8026F890 0026B4F0 B0 04 40 10 */ sth r0, 0x4010(r4)
+/* 8026F894 0026B4F4 4B FF F2 59 */ bl __OSMaskInterrupts
+/* 8026F898 0026B4F8 3F E0 80 27 */ lis r31, MEMIntrruptHandler@ha
+/* 8026F89C 0026B4FC 38 60 00 00 */ li r3, 0
+/* 8026F8A0 0026B500 38 9F F1 68 */ addi r4, r31, MEMIntrruptHandler@l
+/* 8026F8A4 0026B504 4B FF EF 05 */ bl __OSSetInterruptHandler
+/* 8026F8A8 0026B508 38 9F F1 68 */ addi r4, r31, -3736
+/* 8026F8AC 0026B50C 38 60 00 01 */ li r3, 1
+/* 8026F8B0 0026B510 4B FF EE F9 */ bl __OSSetInterruptHandler
+/* 8026F8B4 0026B514 38 9F F1 68 */ addi r4, r31, -3736
+/* 8026F8B8 0026B518 38 60 00 02 */ li r3, 2
+/* 8026F8BC 0026B51C 4B FF EE ED */ bl __OSSetInterruptHandler
+/* 8026F8C0 0026B520 38 9F F1 68 */ addi r4, r31, -3736
+/* 8026F8C4 0026B524 38 60 00 03 */ li r3, 3
+/* 8026F8C8 0026B528 4B FF EE E1 */ bl __OSSetInterruptHandler
+/* 8026F8CC 0026B52C 38 9F F1 68 */ addi r4, r31, -3736
+/* 8026F8D0 0026B530 38 60 00 04 */ li r3, 4
+/* 8026F8D4 0026B534 4B FF EE D5 */ bl __OSSetInterruptHandler
+/* 8026F8D8 0026B538 3C 60 80 42 */ lis r3, lbl_80427D08@ha
+/* 8026F8DC 0026B53C 38 63 7D 08 */ addi r3, r3, lbl_80427D08@l
+/* 8026F8E0 0026B540 48 00 03 B1 */ bl OSRegisterShutdownFunction
+/* 8026F8E4 0026B544 4B FF FE 2D */ bl BATConfig
+/* 8026F8E8 0026B548 3C 60 08 00 */ lis r3, 0x800
+/* 8026F8EC 0026B54C 4B FF F2 81 */ bl __OSUnmaskInterrupts
+/* 8026F8F0 0026B550 7F C3 F3 78 */ mr r3, r30
+/* 8026F8F4 0026B554 4B FF EE 91 */ bl OSRestoreInterrupts
+/* 8026F8F8 0026B558 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F8FC 0026B55C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026F900 0026B560 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8026F904 0026B564 7C 08 03 A6 */ mtlr r0
+/* 8026F908 0026B568 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F90C 0026B56C 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSMessage.s b/asm/SDK/OS/OSMessage.s new file mode 100644 index 0000000..5821baa --- /dev/null +++ b/asm/SDK/OS/OSMessage.s @@ -0,0 +1,150 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSInitMessageQueue
+OSInitMessageQueue:
+/* 8026EEF8 0026AB58 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026EEFC 0026AB5C 7C 08 02 A6 */ mflr r0
+/* 8026EF00 0026AB60 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026EF04 0026AB64 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026EF08 0026AB68 7C BF 2B 78 */ mr r31, r5
+/* 8026EF0C 0026AB6C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026EF10 0026AB70 7C 9E 23 78 */ mr r30, r4
+/* 8026EF14 0026AB74 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026EF18 0026AB78 7C 7D 1B 78 */ mr r29, r3
+/* 8026EF1C 0026AB7C 48 00 23 CD */ bl OSInitThreadQueue
+/* 8026EF20 0026AB80 38 7D 00 08 */ addi r3, r29, 8
+/* 8026EF24 0026AB84 48 00 23 C5 */ bl OSInitThreadQueue
+/* 8026EF28 0026AB88 38 00 00 00 */ li r0, 0
+/* 8026EF2C 0026AB8C 93 DD 00 10 */ stw r30, 0x10(r29)
+/* 8026EF30 0026AB90 93 FD 00 14 */ stw r31, 0x14(r29)
+/* 8026EF34 0026AB94 90 1D 00 18 */ stw r0, 0x18(r29)
+/* 8026EF38 0026AB98 90 1D 00 1C */ stw r0, 0x1c(r29)
+/* 8026EF3C 0026AB9C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026EF40 0026ABA0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026EF44 0026ABA4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026EF48 0026ABA8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026EF4C 0026ABAC 7C 08 03 A6 */ mtlr r0
+/* 8026EF50 0026ABB0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026EF54 0026ABB4 4E 80 00 20 */ blr
+
+.global OSSendMessage
+OSSendMessage:
+/* 8026EF58 0026ABB8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026EF5C 0026ABBC 7C 08 02 A6 */ mflr r0
+/* 8026EF60 0026ABC0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026EF64 0026ABC4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026EF68 0026ABC8 7C BF 2B 78 */ mr r31, r5
+/* 8026EF6C 0026ABCC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026EF70 0026ABD0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026EF74 0026ABD4 7C 9D 23 78 */ mr r29, r4
+/* 8026EF78 0026ABD8 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8026EF7C 0026ABDC 7C 7C 1B 78 */ mr r28, r3
+/* 8026EF80 0026ABE0 4B FF F7 DD */ bl OSDisableInterrupts
+/* 8026EF84 0026ABE4 7C 7E 1B 78 */ mr r30, r3
+/* 8026EF88 0026ABE8 57 FF 07 FE */ clrlwi r31, r31, 0x1f
+/* 8026EF8C 0026ABEC 48 00 00 24 */ b lbl_8026EFB0
+lbl_8026EF90:
+/* 8026EF90 0026ABF0 2C 1F 00 00 */ cmpwi r31, 0
+/* 8026EF94 0026ABF4 40 82 00 14 */ bne lbl_8026EFA8
+/* 8026EF98 0026ABF8 7F C3 F3 78 */ mr r3, r30
+/* 8026EF9C 0026ABFC 4B FF F7 E9 */ bl OSRestoreInterrupts
+/* 8026EFA0 0026AC00 38 60 00 00 */ li r3, 0
+/* 8026EFA4 0026AC04 48 00 00 5C */ b lbl_8026F000
+lbl_8026EFA8:
+/* 8026EFA8 0026AC08 7F 83 E3 78 */ mr r3, r28
+/* 8026EFAC 0026AC0C 48 00 33 C9 */ bl OSSleepThread
+lbl_8026EFB0:
+/* 8026EFB0 0026AC10 80 9C 00 1C */ lwz r4, 0x1c(r28)
+/* 8026EFB4 0026AC14 80 DC 00 14 */ lwz r6, 0x14(r28)
+/* 8026EFB8 0026AC18 7C 06 20 00 */ cmpw r6, r4
+/* 8026EFBC 0026AC1C 40 81 FF D4 */ ble lbl_8026EF90
+/* 8026EFC0 0026AC20 80 1C 00 18 */ lwz r0, 0x18(r28)
+/* 8026EFC4 0026AC24 38 7C 00 08 */ addi r3, r28, 8
+/* 8026EFC8 0026AC28 80 BC 00 10 */ lwz r5, 0x10(r28)
+/* 8026EFCC 0026AC2C 7C 80 22 14 */ add r4, r0, r4
+/* 8026EFD0 0026AC30 7C 04 33 D6 */ divw r0, r4, r6
+/* 8026EFD4 0026AC34 7C 00 31 D6 */ mullw r0, r0, r6
+/* 8026EFD8 0026AC38 7C 00 20 50 */ subf r0, r0, r4
+/* 8026EFDC 0026AC3C 54 00 10 3A */ slwi r0, r0, 2
+/* 8026EFE0 0026AC40 7F A5 01 2E */ stwx r29, r5, r0
+/* 8026EFE4 0026AC44 80 9C 00 1C */ lwz r4, 0x1c(r28)
+/* 8026EFE8 0026AC48 38 04 00 01 */ addi r0, r4, 1
+/* 8026EFEC 0026AC4C 90 1C 00 1C */ stw r0, 0x1c(r28)
+/* 8026EFF0 0026AC50 48 00 34 71 */ bl OSWakeupThread
+/* 8026EFF4 0026AC54 7F C3 F3 78 */ mr r3, r30
+/* 8026EFF8 0026AC58 4B FF F7 8D */ bl OSRestoreInterrupts
+/* 8026EFFC 0026AC5C 38 60 00 01 */ li r3, 1
+lbl_8026F000:
+/* 8026F000 0026AC60 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026F004 0026AC64 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026F008 0026AC68 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026F00C 0026AC6C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026F010 0026AC70 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8026F014 0026AC74 7C 08 03 A6 */ mtlr r0
+/* 8026F018 0026AC78 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026F01C 0026AC7C 4E 80 00 20 */ blr
+
+.global OSReceiveMessage
+OSReceiveMessage:
+/* 8026F020 0026AC80 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026F024 0026AC84 7C 08 02 A6 */ mflr r0
+/* 8026F028 0026AC88 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026F02C 0026AC8C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026F030 0026AC90 7C 7F 1B 78 */ mr r31, r3
+/* 8026F034 0026AC94 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026F038 0026AC98 7C BE 2B 78 */ mr r30, r5
+/* 8026F03C 0026AC9C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026F040 0026ACA0 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8026F044 0026ACA4 7C 9C 23 78 */ mr r28, r4
+/* 8026F048 0026ACA8 4B FF F7 15 */ bl OSDisableInterrupts
+/* 8026F04C 0026ACAC 7C 7D 1B 78 */ mr r29, r3
+/* 8026F050 0026ACB0 57 DE 07 FE */ clrlwi r30, r30, 0x1f
+/* 8026F054 0026ACB4 48 00 00 24 */ b lbl_8026F078
+lbl_8026F058:
+/* 8026F058 0026ACB8 2C 1E 00 00 */ cmpwi r30, 0
+/* 8026F05C 0026ACBC 40 82 00 14 */ bne lbl_8026F070
+/* 8026F060 0026ACC0 7F A3 EB 78 */ mr r3, r29
+/* 8026F064 0026ACC4 4B FF F7 21 */ bl OSRestoreInterrupts
+/* 8026F068 0026ACC8 38 60 00 00 */ li r3, 0
+/* 8026F06C 0026ACCC 48 00 00 70 */ b lbl_8026F0DC
+lbl_8026F070:
+/* 8026F070 0026ACD0 38 7F 00 08 */ addi r3, r31, 8
+/* 8026F074 0026ACD4 48 00 33 01 */ bl OSSleepThread
+lbl_8026F078:
+/* 8026F078 0026ACD8 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 8026F07C 0026ACDC 2C 00 00 00 */ cmpwi r0, 0
+/* 8026F080 0026ACE0 41 82 FF D8 */ beq lbl_8026F058
+/* 8026F084 0026ACE4 2C 1C 00 00 */ cmpwi r28, 0
+/* 8026F088 0026ACE8 41 82 00 18 */ beq lbl_8026F0A0
+/* 8026F08C 0026ACEC 80 1F 00 18 */ lwz r0, 0x18(r31)
+/* 8026F090 0026ACF0 80 7F 00 10 */ lwz r3, 0x10(r31)
+/* 8026F094 0026ACF4 54 00 10 3A */ slwi r0, r0, 2
+/* 8026F098 0026ACF8 7C 03 00 2E */ lwzx r0, r3, r0
+/* 8026F09C 0026ACFC 90 1C 00 00 */ stw r0, 0(r28)
+lbl_8026F0A0:
+/* 8026F0A0 0026AD00 80 9F 00 18 */ lwz r4, 0x18(r31)
+/* 8026F0A4 0026AD04 7F E3 FB 78 */ mr r3, r31
+/* 8026F0A8 0026AD08 80 DF 00 14 */ lwz r6, 0x14(r31)
+/* 8026F0AC 0026AD0C 38 E4 00 01 */ addi r7, r4, 1
+/* 8026F0B0 0026AD10 80 9F 00 1C */ lwz r4, 0x1c(r31)
+/* 8026F0B4 0026AD14 7C A7 33 D6 */ divw r5, r7, r6
+/* 8026F0B8 0026AD18 38 04 FF FF */ addi r0, r4, -1
+/* 8026F0BC 0026AD1C 90 1F 00 1C */ stw r0, 0x1c(r31)
+/* 8026F0C0 0026AD20 7C 05 31 D6 */ mullw r0, r5, r6
+/* 8026F0C4 0026AD24 7C 00 38 50 */ subf r0, r0, r7
+/* 8026F0C8 0026AD28 90 1F 00 18 */ stw r0, 0x18(r31)
+/* 8026F0CC 0026AD2C 48 00 33 95 */ bl OSWakeupThread
+/* 8026F0D0 0026AD30 7F A3 EB 78 */ mr r3, r29
+/* 8026F0D4 0026AD34 4B FF F6 B1 */ bl OSRestoreInterrupts
+/* 8026F0D8 0026AD38 38 60 00 01 */ li r3, 1
+lbl_8026F0DC:
+/* 8026F0DC 0026AD3C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026F0E0 0026AD40 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026F0E4 0026AD44 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026F0E8 0026AD48 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026F0EC 0026AD4C 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8026F0F0 0026AD50 7C 08 03 A6 */ mtlr r0
+/* 8026F0F4 0026AD54 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026F0F8 0026AD58 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSMutex.s b/asm/SDK/OS/OSMutex.s new file mode 100644 index 0000000..fdd39f8 --- /dev/null +++ b/asm/SDK/OS/OSMutex.s @@ -0,0 +1,240 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSInitMutex
+OSInitMutex:
+/* 8026F910 0026B570 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026F914 0026B574 7C 08 02 A6 */ mflr r0
+/* 8026F918 0026B578 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026F91C 0026B57C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026F920 0026B580 7C 7F 1B 78 */ mr r31, r3
+/* 8026F924 0026B584 48 00 19 C5 */ bl OSInitThreadQueue
+/* 8026F928 0026B588 38 00 00 00 */ li r0, 0
+/* 8026F92C 0026B58C 90 1F 00 08 */ stw r0, 8(r31)
+/* 8026F930 0026B590 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 8026F934 0026B594 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026F938 0026B598 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026F93C 0026B59C 7C 08 03 A6 */ mtlr r0
+/* 8026F940 0026B5A0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026F944 0026B5A4 4E 80 00 20 */ blr
+
+.global OSLockMutex
+OSLockMutex:
+/* 8026F948 0026B5A8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026F94C 0026B5AC 7C 08 02 A6 */ mflr r0
+/* 8026F950 0026B5B0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026F954 0026B5B4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026F958 0026B5B8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026F95C 0026B5BC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026F960 0026B5C0 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8026F964 0026B5C4 7C 7C 1B 78 */ mr r28, r3
+/* 8026F968 0026B5C8 4B FF ED F5 */ bl OSDisableInterrupts
+/* 8026F96C 0026B5CC 7C 7D 1B 78 */ mr r29, r3
+/* 8026F970 0026B5D0 48 00 19 89 */ bl OSGetCurrentThread
+/* 8026F974 0026B5D4 7C 7E 1B 78 */ mr r30, r3
+/* 8026F978 0026B5D8 3B E0 00 00 */ li r31, 0
+lbl_8026F97C:
+/* 8026F97C 0026B5DC 80 1C 00 08 */ lwz r0, 8(r28)
+/* 8026F980 0026B5E0 2C 00 00 00 */ cmpwi r0, 0
+/* 8026F984 0026B5E4 40 82 00 40 */ bne lbl_8026F9C4
+/* 8026F988 0026B5E8 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8026F98C 0026B5EC 93 DC 00 08 */ stw r30, 8(r28)
+/* 8026F990 0026B5F0 38 03 00 01 */ addi r0, r3, 1
+/* 8026F994 0026B5F4 90 1C 00 0C */ stw r0, 0xc(r28)
+/* 8026F998 0026B5F8 80 7E 02 F8 */ lwz r3, 0x2f8(r30)
+/* 8026F99C 0026B5FC 2C 03 00 00 */ cmpwi r3, 0
+/* 8026F9A0 0026B600 40 82 00 0C */ bne lbl_8026F9AC
+/* 8026F9A4 0026B604 93 9E 02 F4 */ stw r28, 0x2f4(r30)
+/* 8026F9A8 0026B608 48 00 00 08 */ b lbl_8026F9B0
+lbl_8026F9AC:
+/* 8026F9AC 0026B60C 93 83 00 10 */ stw r28, 0x10(r3)
+lbl_8026F9B0:
+/* 8026F9B0 0026B610 38 00 00 00 */ li r0, 0
+/* 8026F9B4 0026B614 90 7C 00 14 */ stw r3, 0x14(r28)
+/* 8026F9B8 0026B618 90 1C 00 10 */ stw r0, 0x10(r28)
+/* 8026F9BC 0026B61C 93 9E 02 F8 */ stw r28, 0x2f8(r30)
+/* 8026F9C0 0026B620 48 00 00 3C */ b lbl_8026F9FC
+lbl_8026F9C4:
+/* 8026F9C4 0026B624 7C 00 F0 40 */ cmplw r0, r30
+/* 8026F9C8 0026B628 40 82 00 14 */ bne lbl_8026F9DC
+/* 8026F9CC 0026B62C 80 7C 00 0C */ lwz r3, 0xc(r28)
+/* 8026F9D0 0026B630 38 03 00 01 */ addi r0, r3, 1
+/* 8026F9D4 0026B634 90 1C 00 0C */ stw r0, 0xc(r28)
+/* 8026F9D8 0026B638 48 00 00 24 */ b lbl_8026F9FC
+lbl_8026F9DC:
+/* 8026F9DC 0026B63C 93 9E 02 F0 */ stw r28, 0x2f0(r30)
+/* 8026F9E0 0026B640 80 7C 00 08 */ lwz r3, 8(r28)
+/* 8026F9E4 0026B644 80 9E 02 D0 */ lwz r4, 0x2d0(r30)
+/* 8026F9E8 0026B648 48 00 1C 2D */ bl __OSPromoteThread
+/* 8026F9EC 0026B64C 7F 83 E3 78 */ mr r3, r28
+/* 8026F9F0 0026B650 48 00 29 85 */ bl OSSleepThread
+/* 8026F9F4 0026B654 93 FE 02 F0 */ stw r31, 0x2f0(r30)
+/* 8026F9F8 0026B658 4B FF FF 84 */ b lbl_8026F97C
+lbl_8026F9FC:
+/* 8026F9FC 0026B65C 7F A3 EB 78 */ mr r3, r29
+/* 8026FA00 0026B660 4B FF ED 85 */ bl OSRestoreInterrupts
+/* 8026FA04 0026B664 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026FA08 0026B668 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026FA0C 0026B66C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026FA10 0026B670 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026FA14 0026B674 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8026FA18 0026B678 7C 08 03 A6 */ mtlr r0
+/* 8026FA1C 0026B67C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026FA20 0026B680 4E 80 00 20 */ blr
+
+.global OSUnlockMutex
+OSUnlockMutex:
+/* 8026FA24 0026B684 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026FA28 0026B688 7C 08 02 A6 */ mflr r0
+/* 8026FA2C 0026B68C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026FA30 0026B690 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026FA34 0026B694 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026FA38 0026B698 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026FA3C 0026B69C 7C 7D 1B 78 */ mr r29, r3
+/* 8026FA40 0026B6A0 4B FF ED 1D */ bl OSDisableInterrupts
+/* 8026FA44 0026B6A4 7C 7F 1B 78 */ mr r31, r3
+/* 8026FA48 0026B6A8 48 00 18 B1 */ bl OSGetCurrentThread
+/* 8026FA4C 0026B6AC 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8026FA50 0026B6B0 7C 7E 1B 78 */ mr r30, r3
+/* 8026FA54 0026B6B4 7C 00 18 40 */ cmplw r0, r3
+/* 8026FA58 0026B6B8 40 82 00 70 */ bne lbl_8026FAC8
+/* 8026FA5C 0026B6BC 80 1D 00 0C */ lwz r0, 0xc(r29)
+/* 8026FA60 0026B6C0 34 00 FF FF */ addic. r0, r0, -1
+/* 8026FA64 0026B6C4 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 8026FA68 0026B6C8 40 82 00 60 */ bne lbl_8026FAC8
+/* 8026FA6C 0026B6CC 80 9D 00 10 */ lwz r4, 0x10(r29)
+/* 8026FA70 0026B6D0 80 BD 00 14 */ lwz r5, 0x14(r29)
+/* 8026FA74 0026B6D4 2C 04 00 00 */ cmpwi r4, 0
+/* 8026FA78 0026B6D8 40 82 00 0C */ bne lbl_8026FA84
+/* 8026FA7C 0026B6DC 90 A3 02 F8 */ stw r5, 0x2f8(r3)
+/* 8026FA80 0026B6E0 48 00 00 08 */ b lbl_8026FA88
+lbl_8026FA84:
+/* 8026FA84 0026B6E4 90 A4 00 14 */ stw r5, 0x14(r4)
+lbl_8026FA88:
+/* 8026FA88 0026B6E8 2C 05 00 00 */ cmpwi r5, 0
+/* 8026FA8C 0026B6EC 40 82 00 0C */ bne lbl_8026FA98
+/* 8026FA90 0026B6F0 90 83 02 F4 */ stw r4, 0x2f4(r3)
+/* 8026FA94 0026B6F4 48 00 00 08 */ b lbl_8026FA9C
+lbl_8026FA98:
+/* 8026FA98 0026B6F8 90 85 00 10 */ stw r4, 0x10(r5)
+lbl_8026FA9C:
+/* 8026FA9C 0026B6FC 38 00 00 00 */ li r0, 0
+/* 8026FAA0 0026B700 90 1D 00 08 */ stw r0, 8(r29)
+/* 8026FAA4 0026B704 80 83 02 D0 */ lwz r4, 0x2d0(r3)
+/* 8026FAA8 0026B708 80 03 02 D4 */ lwz r0, 0x2d4(r3)
+/* 8026FAAC 0026B70C 7C 04 00 00 */ cmpw r4, r0
+/* 8026FAB0 0026B710 40 80 00 10 */ bge lbl_8026FAC0
+/* 8026FAB4 0026B714 7F C3 F3 78 */ mr r3, r30
+/* 8026FAB8 0026B718 48 00 19 6D */ bl __OSGetEffectivePriority
+/* 8026FABC 0026B71C 90 7E 02 D0 */ stw r3, 0x2d0(r30)
+lbl_8026FAC0:
+/* 8026FAC0 0026B720 7F A3 EB 78 */ mr r3, r29
+/* 8026FAC4 0026B724 48 00 29 9D */ bl OSWakeupThread
+lbl_8026FAC8:
+/* 8026FAC8 0026B728 7F E3 FB 78 */ mr r3, r31
+/* 8026FACC 0026B72C 4B FF EC B9 */ bl OSRestoreInterrupts
+/* 8026FAD0 0026B730 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026FAD4 0026B734 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026FAD8 0026B738 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026FADC 0026B73C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026FAE0 0026B740 7C 08 03 A6 */ mtlr r0
+/* 8026FAE4 0026B744 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026FAE8 0026B748 4E 80 00 20 */ blr
+
+.global __OSUnlockAllMutex
+__OSUnlockAllMutex:
+/* 8026FAEC 0026B74C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8026FAF0 0026B750 7C 08 02 A6 */ mflr r0
+/* 8026FAF4 0026B754 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8026FAF8 0026B758 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8026FAFC 0026B75C 3B E0 00 00 */ li r31, 0
+/* 8026FB00 0026B760 93 C1 00 08 */ stw r30, 8(r1)
+/* 8026FB04 0026B764 7C 7E 1B 78 */ mr r30, r3
+/* 8026FB08 0026B768 48 00 00 2C */ b lbl_8026FB34
+lbl_8026FB0C:
+/* 8026FB0C 0026B76C 80 83 00 10 */ lwz r4, 0x10(r3)
+/* 8026FB10 0026B770 2C 04 00 00 */ cmpwi r4, 0
+/* 8026FB14 0026B774 40 82 00 0C */ bne lbl_8026FB20
+/* 8026FB18 0026B778 93 FE 02 F8 */ stw r31, 0x2f8(r30)
+/* 8026FB1C 0026B77C 48 00 00 08 */ b lbl_8026FB24
+lbl_8026FB20:
+/* 8026FB20 0026B780 93 E4 00 14 */ stw r31, 0x14(r4)
+lbl_8026FB24:
+/* 8026FB24 0026B784 90 9E 02 F4 */ stw r4, 0x2f4(r30)
+/* 8026FB28 0026B788 93 E3 00 0C */ stw r31, 0xc(r3)
+/* 8026FB2C 0026B78C 93 E3 00 08 */ stw r31, 8(r3)
+/* 8026FB30 0026B790 48 00 29 31 */ bl OSWakeupThread
+lbl_8026FB34:
+/* 8026FB34 0026B794 80 7E 02 F4 */ lwz r3, 0x2f4(r30)
+/* 8026FB38 0026B798 2C 03 00 00 */ cmpwi r3, 0
+/* 8026FB3C 0026B79C 40 82 FF D0 */ bne lbl_8026FB0C
+/* 8026FB40 0026B7A0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8026FB44 0026B7A4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8026FB48 0026B7A8 83 C1 00 08 */ lwz r30, 8(r1)
+/* 8026FB4C 0026B7AC 7C 08 03 A6 */ mtlr r0
+/* 8026FB50 0026B7B0 38 21 00 10 */ addi r1, r1, 0x10
+/* 8026FB54 0026B7B4 4E 80 00 20 */ blr
+
+.global OSTryLockMutex
+OSTryLockMutex:
+/* 8026FB58 0026B7B8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026FB5C 0026B7BC 7C 08 02 A6 */ mflr r0
+/* 8026FB60 0026B7C0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026FB64 0026B7C4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026FB68 0026B7C8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026FB6C 0026B7CC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026FB70 0026B7D0 7C 7D 1B 78 */ mr r29, r3
+/* 8026FB74 0026B7D4 4B FF EB E9 */ bl OSDisableInterrupts
+/* 8026FB78 0026B7D8 7C 7F 1B 78 */ mr r31, r3
+/* 8026FB7C 0026B7DC 48 00 17 7D */ bl OSGetCurrentThread
+/* 8026FB80 0026B7E0 80 1D 00 08 */ lwz r0, 8(r29)
+/* 8026FB84 0026B7E4 2C 00 00 00 */ cmpwi r0, 0
+/* 8026FB88 0026B7E8 40 82 00 44 */ bne lbl_8026FBCC
+/* 8026FB8C 0026B7EC 80 9D 00 0C */ lwz r4, 0xc(r29)
+/* 8026FB90 0026B7F0 90 7D 00 08 */ stw r3, 8(r29)
+/* 8026FB94 0026B7F4 38 04 00 01 */ addi r0, r4, 1
+/* 8026FB98 0026B7F8 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 8026FB9C 0026B7FC 80 83 02 F8 */ lwz r4, 0x2f8(r3)
+/* 8026FBA0 0026B800 2C 04 00 00 */ cmpwi r4, 0
+/* 8026FBA4 0026B804 40 82 00 0C */ bne lbl_8026FBB0
+/* 8026FBA8 0026B808 93 A3 02 F4 */ stw r29, 0x2f4(r3)
+/* 8026FBAC 0026B80C 48 00 00 08 */ b lbl_8026FBB4
+lbl_8026FBB0:
+/* 8026FBB0 0026B810 93 A4 00 10 */ stw r29, 0x10(r4)
+lbl_8026FBB4:
+/* 8026FBB4 0026B814 38 00 00 00 */ li r0, 0
+/* 8026FBB8 0026B818 90 9D 00 14 */ stw r4, 0x14(r29)
+/* 8026FBBC 0026B81C 3B C0 00 01 */ li r30, 1
+/* 8026FBC0 0026B820 90 1D 00 10 */ stw r0, 0x10(r29)
+/* 8026FBC4 0026B824 93 A3 02 F8 */ stw r29, 0x2f8(r3)
+/* 8026FBC8 0026B828 48 00 00 24 */ b lbl_8026FBEC
+lbl_8026FBCC:
+/* 8026FBCC 0026B82C 7C 00 18 40 */ cmplw r0, r3
+/* 8026FBD0 0026B830 40 82 00 18 */ bne lbl_8026FBE8
+/* 8026FBD4 0026B834 80 7D 00 0C */ lwz r3, 0xc(r29)
+/* 8026FBD8 0026B838 3B C0 00 01 */ li r30, 1
+/* 8026FBDC 0026B83C 38 03 00 01 */ addi r0, r3, 1
+/* 8026FBE0 0026B840 90 1D 00 0C */ stw r0, 0xc(r29)
+/* 8026FBE4 0026B844 48 00 00 08 */ b lbl_8026FBEC
+lbl_8026FBE8:
+/* 8026FBE8 0026B848 3B C0 00 00 */ li r30, 0
+lbl_8026FBEC:
+/* 8026FBEC 0026B84C 7F E3 FB 78 */ mr r3, r31
+/* 8026FBF0 0026B850 4B FF EB 95 */ bl OSRestoreInterrupts
+/* 8026FBF4 0026B854 7F C3 F3 78 */ mr r3, r30
+/* 8026FBF8 0026B858 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026FBFC 0026B85C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026FC00 0026B860 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026FC04 0026B864 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026FC08 0026B868 7C 08 03 A6 */ mtlr r0
+/* 8026FC0C 0026B86C 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026FC10 0026B870 4E 80 00 20 */ blr
+
+.global OSInitCond
+OSInitCond:
+/* 8026FC14 0026B874 48 00 16 D4 */ b OSInitThreadQueue
+
+.global OSSignalCond
+OSSignalCond:
+/* 8026FC18 0026B878 48 00 28 48 */ b OSWakeupThread
diff --git a/asm/SDK/OS/OSReboot.s b/asm/SDK/OS/OSReboot.s new file mode 100644 index 0000000..fe42ffe --- /dev/null +++ b/asm/SDK/OS/OSReboot.s @@ -0,0 +1,38 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSReboot
+__OSReboot:
+/* 8026FC1C 0026B87C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026FC20 0026B880 7C 08 02 A6 */ mflr r0
+/* 8026FC24 0026B884 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026FC28 0026B888 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026FC2C 0026B88C 7C 9F 23 78 */ mr r31, r4
+/* 8026FC30 0026B890 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026FC34 0026B894 7C 7E 1B 78 */ mr r30, r3
+/* 8026FC38 0026B898 4B FF EB 25 */ bl OSDisableInterrupts
+/* 8026FC3C 0026B89C 3C 60 81 28 */ lis r3, 0x8128
+/* 8026FC40 0026B8A0 4B FF A4 E5 */ bl OSSetArenaLo
+/* 8026FC44 0026B8A4 3C 60 81 2F */ lis r3, 0x812f
+/* 8026FC48 0026B8A8 4B FF A4 C5 */ bl OSSetArenaHi
+/* 8026FC4C 0026B8AC 38 00 00 00 */ li r0, 0
+/* 8026FC50 0026B8B0 7F E3 FB 78 */ mr r3, r31
+/* 8026FC54 0026B8B4 90 01 00 08 */ stw r0, 8(r1)
+/* 8026FC58 0026B8B8 67 C4 80 00 */ oris r4, r30, 0x8000
+/* 8026FC5C 0026B8BC 38 A1 00 08 */ addi r5, r1, 8
+/* 8026FC60 0026B8C0 4B FF CE 81 */ bl __OSBootDol
+/* 8026FC64 0026B8C4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026FC68 0026B8C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026FC6C 0026B8CC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026FC70 0026B8D0 7C 08 03 A6 */ mtlr r0
+/* 8026FC74 0026B8D4 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026FC78 0026B8D8 4E 80 00 20 */ blr
+
+.global OSGetSaveRegion
+OSGetSaveRegion:
+/* 8026FC7C 0026B8DC 80 0D A8 10 */ lwz r0, lbl_8063FAD0-_SDA_BASE_(r13)
+/* 8026FC80 0026B8E0 90 03 00 00 */ stw r0, 0(r3)
+/* 8026FC84 0026B8E4 80 0D A8 14 */ lwz r0, lbl_8063FAD4-_SDA_BASE_(r13)
+/* 8026FC88 0026B8E8 90 04 00 00 */ stw r0, 0(r4)
+/* 8026FC8C 0026B8EC 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSReset.s b/asm/SDK/OS/OSReset.s new file mode 100644 index 0000000..524e46a --- /dev/null +++ b/asm/SDK/OS/OSReset.s @@ -0,0 +1,554 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSRegisterShutdownFunction
+OSRegisterShutdownFunction:
+/* 8026FC90 0026B8F0 80 AD A8 20 */ lwz r5, lbl_8063FAE0-_SDA_BASE_(r13)
+/* 8026FC94 0026B8F4 48 00 00 08 */ b lbl_8026FC9C
+lbl_8026FC98:
+/* 8026FC98 0026B8F8 80 A5 00 08 */ lwz r5, 8(r5)
+lbl_8026FC9C:
+/* 8026FC9C 0026B8FC 2C 05 00 00 */ cmpwi r5, 0
+/* 8026FCA0 0026B900 41 82 00 14 */ beq lbl_8026FCB4
+/* 8026FCA4 0026B904 80 85 00 04 */ lwz r4, 4(r5)
+/* 8026FCA8 0026B908 80 03 00 04 */ lwz r0, 4(r3)
+/* 8026FCAC 0026B90C 7C 04 00 40 */ cmplw r4, r0
+/* 8026FCB0 0026B910 40 81 FF E8 */ ble lbl_8026FC98
+lbl_8026FCB4:
+/* 8026FCB4 0026B914 2C 05 00 00 */ cmpwi r5, 0
+/* 8026FCB8 0026B918 40 82 00 38 */ bne lbl_8026FCF0
+/* 8026FCBC 0026B91C 38 8D A8 20 */ addi r4, r13, lbl_8063FAE0-_SDA_BASE_
+/* 8026FCC0 0026B920 80 84 00 04 */ lwz r4, 4(r4)
+/* 8026FCC4 0026B924 2C 04 00 00 */ cmpwi r4, 0
+/* 8026FCC8 0026B928 40 82 00 0C */ bne lbl_8026FCD4
+/* 8026FCCC 0026B92C 90 6D A8 20 */ stw r3, lbl_8063FAE0-_SDA_BASE_(r13)
+/* 8026FCD0 0026B930 48 00 00 08 */ b lbl_8026FCD8
+lbl_8026FCD4:
+/* 8026FCD4 0026B934 90 64 00 08 */ stw r3, 8(r4)
+lbl_8026FCD8:
+/* 8026FCD8 0026B938 38 00 00 00 */ li r0, 0
+/* 8026FCDC 0026B93C 90 83 00 0C */ stw r4, 0xc(r3)
+/* 8026FCE0 0026B940 38 8D A8 20 */ addi r4, r13, lbl_8063FAE0-_SDA_BASE_
+/* 8026FCE4 0026B944 90 03 00 08 */ stw r0, 8(r3)
+/* 8026FCE8 0026B948 90 64 00 04 */ stw r3, 4(r4)
+/* 8026FCEC 0026B94C 4E 80 00 20 */ blr
+lbl_8026FCF0:
+/* 8026FCF0 0026B950 90 A3 00 08 */ stw r5, 8(r3)
+/* 8026FCF4 0026B954 80 85 00 0C */ lwz r4, 0xc(r5)
+/* 8026FCF8 0026B958 90 65 00 0C */ stw r3, 0xc(r5)
+/* 8026FCFC 0026B95C 2C 04 00 00 */ cmpwi r4, 0
+/* 8026FD00 0026B960 90 83 00 0C */ stw r4, 0xc(r3)
+/* 8026FD04 0026B964 40 82 00 0C */ bne lbl_8026FD10
+/* 8026FD08 0026B968 90 6D A8 20 */ stw r3, lbl_8063FAE0-_SDA_BASE_(r13)
+/* 8026FD0C 0026B96C 4E 80 00 20 */ blr
+lbl_8026FD10:
+/* 8026FD10 0026B970 90 64 00 08 */ stw r3, 8(r4)
+/* 8026FD14 0026B974 4E 80 00 20 */ blr
+
+.global __OSCallShutdownFunctions
+__OSCallShutdownFunctions:
+/* 8026FD18 0026B978 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026FD1C 0026B97C 7C 08 02 A6 */ mflr r0
+/* 8026FD20 0026B980 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026FD24 0026B984 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8026FD28 0026B988 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8026FD2C 0026B98C 3B C0 00 00 */ li r30, 0
+/* 8026FD30 0026B990 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8026FD34 0026B994 7C 9D 23 78 */ mr r29, r4
+/* 8026FD38 0026B998 93 81 00 10 */ stw r28, 0x10(r1)
+/* 8026FD3C 0026B99C 7C 7C 1B 78 */ mr r28, r3
+/* 8026FD40 0026B9A0 38 60 00 00 */ li r3, 0
+/* 8026FD44 0026B9A4 83 ED A8 20 */ lwz r31, lbl_8063FAE0-_SDA_BASE_(r13)
+/* 8026FD48 0026B9A8 48 00 00 40 */ b lbl_8026FD88
+lbl_8026FD4C:
+/* 8026FD4C 0026B9AC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8026FD50 0026B9B0 41 82 00 10 */ beq lbl_8026FD60
+/* 8026FD54 0026B9B4 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8026FD58 0026B9B8 7C 03 00 40 */ cmplw r3, r0
+/* 8026FD5C 0026B9BC 40 82 00 34 */ bne lbl_8026FD90
+lbl_8026FD60:
+/* 8026FD60 0026B9C0 81 9F 00 00 */ lwz r12, 0(r31)
+/* 8026FD64 0026B9C4 7F 83 E3 78 */ mr r3, r28
+/* 8026FD68 0026B9C8 7F A4 EB 78 */ mr r4, r29
+/* 8026FD6C 0026B9CC 7D 89 03 A6 */ mtctr r12
+/* 8026FD70 0026B9D0 4E 80 04 21 */ bctrl
+/* 8026FD74 0026B9D4 7C 60 00 34 */ cntlzw r0, r3
+/* 8026FD78 0026B9D8 80 7F 00 04 */ lwz r3, 4(r31)
+/* 8026FD7C 0026B9DC 54 00 D9 7E */ srwi r0, r0, 5
+/* 8026FD80 0026B9E0 83 FF 00 08 */ lwz r31, 8(r31)
+/* 8026FD84 0026B9E4 7F DE 03 78 */ or r30, r30, r0
+lbl_8026FD88:
+/* 8026FD88 0026B9E8 2C 1F 00 00 */ cmpwi r31, 0
+/* 8026FD8C 0026B9EC 40 82 FF C0 */ bne lbl_8026FD4C
+lbl_8026FD90:
+/* 8026FD90 0026B9F0 48 00 0C 65 */ bl __OSSyncSram
+/* 8026FD94 0026B9F4 7C 60 00 34 */ cntlzw r0, r3
+/* 8026FD98 0026B9F8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8026FD9C 0026B9FC 54 00 D9 7E */ srwi r0, r0, 5
+/* 8026FDA0 0026BA00 7F DE 03 78 */ or r30, r30, r0
+/* 8026FDA4 0026BA04 7F C0 00 34 */ cntlzw r0, r30
+/* 8026FDA8 0026BA08 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 8026FDAC 0026BA0C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8026FDB0 0026BA10 54 03 D9 7E */ srwi r3, r0, 5
+/* 8026FDB4 0026BA14 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 8026FDB8 0026BA18 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026FDBC 0026BA1C 7C 08 03 A6 */ mtlr r0
+/* 8026FDC0 0026BA20 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026FDC4 0026BA24 4E 80 00 20 */ blr
+
+.global __OSShutdownDevices
+__OSShutdownDevices:
+/* 8026FDC8 0026BA28 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8026FDCC 0026BA2C 7C 08 02 A6 */ mflr r0
+/* 8026FDD0 0026BA30 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8026FDD4 0026BA34 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026FDD8 0026BA38 4B F5 73 51 */ bl _savegpr_27
+/* 8026FDDC 0026BA3C 2C 03 00 04 */ cmpwi r3, 4
+/* 8026FDE0 0026BA40 7C 7B 1B 78 */ mr r27, r3
+/* 8026FDE4 0026BA44 40 80 00 10 */ bge lbl_8026FDF4
+/* 8026FDE8 0026BA48 2C 03 00 00 */ cmpwi r3, 0
+/* 8026FDEC 0026BA4C 41 82 00 10 */ beq lbl_8026FDFC
+/* 8026FDF0 0026BA50 48 00 00 14 */ b lbl_8026FE04
+lbl_8026FDF4:
+/* 8026FDF4 0026BA54 2C 03 00 07 */ cmpwi r3, 7
+/* 8026FDF8 0026BA58 40 80 00 0C */ bge lbl_8026FE04
+lbl_8026FDFC:
+/* 8026FDFC 0026BA5C 3B 80 00 00 */ li r28, 0
+/* 8026FE00 0026BA60 48 00 00 08 */ b lbl_8026FE08
+lbl_8026FE04:
+/* 8026FE04 0026BA64 3B 80 00 01 */ li r28, 1
+lbl_8026FE08:
+/* 8026FE08 0026BA68 4B FF A7 41 */ bl __OSStopAudioSystem
+/* 8026FE0C 0026BA6C 2C 1C 00 00 */ cmpwi r28, 0
+/* 8026FE10 0026BA70 40 82 00 10 */ bne lbl_8026FE20
+/* 8026FE14 0026BA74 38 60 00 01 */ li r3, 1
+/* 8026FE18 0026BA78 48 03 5D 11 */ bl func_802A5B28
+/* 8026FE1C 0026BA7C 7C 7D 1B 78 */ mr r29, r3
+lbl_8026FE20:
+/* 8026FE20 0026BA80 83 CD A8 20 */ lwz r30, lbl_8063FAE0-_SDA_BASE_(r13)
+/* 8026FE24 0026BA84 38 60 00 00 */ li r3, 0
+/* 8026FE28 0026BA88 3B E0 00 00 */ li r31, 0
+/* 8026FE2C 0026BA8C 48 00 00 40 */ b lbl_8026FE6C
+lbl_8026FE30:
+/* 8026FE30 0026BA90 2C 1F 00 00 */ cmpwi r31, 0
+/* 8026FE34 0026BA94 41 82 00 10 */ beq lbl_8026FE44
+/* 8026FE38 0026BA98 80 1E 00 04 */ lwz r0, 4(r30)
+/* 8026FE3C 0026BA9C 7C 03 00 40 */ cmplw r3, r0
+/* 8026FE40 0026BAA0 40 82 00 34 */ bne lbl_8026FE74
+lbl_8026FE44:
+/* 8026FE44 0026BAA4 81 9E 00 00 */ lwz r12, 0(r30)
+/* 8026FE48 0026BAA8 7F 64 DB 78 */ mr r4, r27
+/* 8026FE4C 0026BAAC 38 60 00 00 */ li r3, 0
+/* 8026FE50 0026BAB0 7D 89 03 A6 */ mtctr r12
+/* 8026FE54 0026BAB4 4E 80 04 21 */ bctrl
+/* 8026FE58 0026BAB8 7C 60 00 34 */ cntlzw r0, r3
+/* 8026FE5C 0026BABC 80 7E 00 04 */ lwz r3, 4(r30)
+/* 8026FE60 0026BAC0 54 00 D9 7E */ srwi r0, r0, 5
+/* 8026FE64 0026BAC4 83 DE 00 08 */ lwz r30, 8(r30)
+/* 8026FE68 0026BAC8 7F FF 03 78 */ or r31, r31, r0
+lbl_8026FE6C:
+/* 8026FE6C 0026BACC 2C 1E 00 00 */ cmpwi r30, 0
+/* 8026FE70 0026BAD0 40 82 FF C0 */ bne lbl_8026FE30
+lbl_8026FE74:
+/* 8026FE74 0026BAD4 48 00 0B 81 */ bl __OSSyncSram
+/* 8026FE78 0026BAD8 7C 60 00 34 */ cntlzw r0, r3
+/* 8026FE7C 0026BADC 54 00 D9 7E */ srwi r0, r0, 5
+/* 8026FE80 0026BAE0 7F FF 03 79 */ or. r31, r31, r0
+/* 8026FE84 0026BAE4 40 82 FF 9C */ bne lbl_8026FE20
+lbl_8026FE88:
+/* 8026FE88 0026BAE8 48 00 0B 6D */ bl __OSSyncSram
+/* 8026FE8C 0026BAEC 2C 03 00 00 */ cmpwi r3, 0
+/* 8026FE90 0026BAF0 41 82 FF F8 */ beq lbl_8026FE88
+/* 8026FE94 0026BAF4 4B FF E8 C9 */ bl OSDisableInterrupts
+/* 8026FE98 0026BAF8 83 ED A8 20 */ lwz r31, lbl_8063FAE0-_SDA_BASE_(r13)
+/* 8026FE9C 0026BAFC 38 60 00 00 */ li r3, 0
+/* 8026FEA0 0026BB00 3B C0 00 00 */ li r30, 0
+/* 8026FEA4 0026BB04 48 00 00 40 */ b lbl_8026FEE4
+lbl_8026FEA8:
+/* 8026FEA8 0026BB08 2C 1E 00 00 */ cmpwi r30, 0
+/* 8026FEAC 0026BB0C 41 82 00 10 */ beq lbl_8026FEBC
+/* 8026FEB0 0026BB10 80 1F 00 04 */ lwz r0, 4(r31)
+/* 8026FEB4 0026BB14 7C 03 00 40 */ cmplw r3, r0
+/* 8026FEB8 0026BB18 40 82 00 34 */ bne lbl_8026FEEC
+lbl_8026FEBC:
+/* 8026FEBC 0026BB1C 81 9F 00 00 */ lwz r12, 0(r31)
+/* 8026FEC0 0026BB20 7F 64 DB 78 */ mr r4, r27
+/* 8026FEC4 0026BB24 38 60 00 01 */ li r3, 1
+/* 8026FEC8 0026BB28 7D 89 03 A6 */ mtctr r12
+/* 8026FECC 0026BB2C 4E 80 04 21 */ bctrl
+/* 8026FED0 0026BB30 7C 60 00 34 */ cntlzw r0, r3
+/* 8026FED4 0026BB34 80 7F 00 04 */ lwz r3, 4(r31)
+/* 8026FED8 0026BB38 54 00 D9 7E */ srwi r0, r0, 5
+/* 8026FEDC 0026BB3C 83 FF 00 08 */ lwz r31, 8(r31)
+/* 8026FEE0 0026BB40 7F DE 03 78 */ or r30, r30, r0
+lbl_8026FEE4:
+/* 8026FEE4 0026BB44 2C 1F 00 00 */ cmpwi r31, 0
+/* 8026FEE8 0026BB48 40 82 FF C0 */ bne lbl_8026FEA8
+lbl_8026FEEC:
+/* 8026FEEC 0026BB4C 48 00 0B 09 */ bl __OSSyncSram
+/* 8026FEF0 0026BB50 4B FF A9 A5 */ bl LCDisable
+/* 8026FEF4 0026BB54 2C 1C 00 00 */ cmpwi r28, 0
+/* 8026FEF8 0026BB58 40 82 00 0C */ bne lbl_8026FF04
+/* 8026FEFC 0026BB5C 7F A3 EB 78 */ mr r3, r29
+/* 8026FF00 0026BB60 48 03 5C 29 */ bl func_802A5B28
+lbl_8026FF04:
+/* 8026FF04 0026BB64 3C 60 80 00 */ lis r3, 0x800000DC@ha
+/* 8026FF08 0026BB68 80 63 00 DC */ lwz r3, 0x800000DC@l(r3)
+/* 8026FF0C 0026BB6C 48 00 00 2C */ b lbl_8026FF38
+lbl_8026FF10:
+/* 8026FF10 0026BB70 A0 03 02 C8 */ lhz r0, 0x2c8(r3)
+/* 8026FF14 0026BB74 83 C3 02 FC */ lwz r30, 0x2fc(r3)
+/* 8026FF18 0026BB78 2C 00 00 04 */ cmpwi r0, 4
+/* 8026FF1C 0026BB7C 41 82 00 14 */ beq lbl_8026FF30
+/* 8026FF20 0026BB80 40 80 00 14 */ bge lbl_8026FF34
+/* 8026FF24 0026BB84 2C 00 00 01 */ cmpwi r0, 1
+/* 8026FF28 0026BB88 41 82 00 08 */ beq lbl_8026FF30
+/* 8026FF2C 0026BB8C 48 00 00 08 */ b lbl_8026FF34
+lbl_8026FF30:
+/* 8026FF30 0026BB90 48 00 1D 01 */ bl OSCancelThread
+lbl_8026FF34:
+/* 8026FF34 0026BB94 7F C3 F3 78 */ mr r3, r30
+lbl_8026FF38:
+/* 8026FF38 0026BB98 2C 03 00 00 */ cmpwi r3, 0
+/* 8026FF3C 0026BB9C 40 82 FF D4 */ bne lbl_8026FF10
+/* 8026FF40 0026BBA0 39 61 00 20 */ addi r11, r1, 0x20
+/* 8026FF44 0026BBA4 4B F5 72 31 */ bl _restgpr_27
+/* 8026FF48 0026BBA8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8026FF4C 0026BBAC 7C 08 03 A6 */ mtlr r0
+/* 8026FF50 0026BBB0 38 21 00 20 */ addi r1, r1, 0x20
+/* 8026FF54 0026BBB4 4E 80 00 20 */ blr
+
+.global OSRebootSystem
+OSRebootSystem:
+/* 8026FF58 0026BBB8 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 8026FF5C 0026BBBC 7C 08 02 A6 */ mflr r0
+/* 8026FF60 0026BBC0 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8026FF64 0026BBC4 48 00 3D B9 */ bl func_80273D1C
+/* 8026FF68 0026BBC8 48 00 36 C5 */ bl func_8027362C
+/* 8026FF6C 0026BBCC 48 01 C8 C1 */ bl func_8028C82C
+/* 8026FF70 0026BBD0 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026FF74 0026BBD4 48 00 40 75 */ bl func_80273FE8
+/* 8026FF78 0026BBD8 48 01 C4 89 */ bl func_8028C400
+/* 8026FF7C 0026BBDC 28 03 00 02 */ cmplwi r3, 2
+/* 8026FF80 0026BBE0 41 82 00 10 */ beq lbl_8026FF90
+/* 8026FF84 0026BBE4 38 00 00 03 */ li r0, 3
+/* 8026FF88 0026BBE8 98 01 00 16 */ stb r0, 0x16(r1)
+/* 8026FF8C 0026BBEC 48 00 00 40 */ b lbl_8026FFCC
+lbl_8026FF90:
+/* 8026FF90 0026BBF0 88 01 00 16 */ lbz r0, 0x16(r1)
+/* 8026FF94 0026BBF4 28 00 00 01 */ cmplwi r0, 1
+/* 8026FF98 0026BBF8 40 82 00 20 */ bne lbl_8026FFB8
+/* 8026FF9C 0026BBFC 38 61 00 08 */ addi r3, r1, 8
+/* 8026FFA0 0026BC00 48 00 0C 9D */ bl __OSGetRTCFlags
+/* 8026FFA4 0026BC04 2C 03 00 00 */ cmpwi r3, 0
+/* 8026FFA8 0026BC08 41 82 00 1C */ beq lbl_8026FFC4
+/* 8026FFAC 0026BC0C 80 01 00 08 */ lwz r0, 8(r1)
+/* 8026FFB0 0026BC10 2C 00 00 00 */ cmpwi r0, 0
+/* 8026FFB4 0026BC14 41 82 00 10 */ beq lbl_8026FFC4
+lbl_8026FFB8:
+/* 8026FFB8 0026BC18 38 00 00 02 */ li r0, 2
+/* 8026FFBC 0026BC1C 98 01 00 16 */ stb r0, 0x16(r1)
+/* 8026FFC0 0026BC20 48 00 00 0C */ b lbl_8026FFCC
+lbl_8026FFC4:
+/* 8026FFC4 0026BC24 38 00 00 01 */ li r0, 1
+/* 8026FFC8 0026BC28 98 01 00 16 */ stb r0, 0x16(r1)
+lbl_8026FFCC:
+/* 8026FFCC 0026BC2C 38 00 00 02 */ li r0, 2
+/* 8026FFD0 0026BC30 98 01 00 15 */ stb r0, 0x15(r1)
+/* 8026FFD4 0026BC34 48 00 0D 85 */ bl __OSClearRTCFlags
+/* 8026FFD8 0026BC38 38 61 00 10 */ addi r3, r1, 0x10
+/* 8026FFDC 0026BC3C 48 00 3F 29 */ bl func_80273F04
+/* 8026FFE0 0026BC40 48 00 13 65 */ bl OSDisableScheduler
+/* 8026FFE4 0026BC44 38 60 00 01 */ li r3, 1
+/* 8026FFE8 0026BC48 4B FF FD E1 */ bl __OSShutdownDevices
+/* 8026FFEC 0026BC4C 48 00 34 99 */ bl func_80273484
+/* 8026FFF0 0026BC50 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 8026FFF4 0026BC54 7C 08 03 A6 */ mtlr r0
+/* 8026FFF8 0026BC58 38 21 00 30 */ addi r1, r1, 0x30
+/* 8026FFFC 0026BC5C 4E 80 00 20 */ blr
+
+.global OSShutdownSystem
+OSShutdownSystem:
+/* 80270000 0026BC60 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80270004 0026BC64 7C 08 02 A6 */ mflr r0
+/* 80270008 0026BC68 38 80 00 00 */ li r4, 0
+/* 8027000C 0026BC6C 38 A0 00 02 */ li r5, 2
+/* 80270010 0026BC70 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80270014 0026BC74 38 61 00 08 */ addi r3, r1, 8
+/* 80270018 0026BC78 4B D9 40 ED */ bl memset
+/* 8027001C 0026BC7C 48 07 A9 31 */ bl func_802EA94C
+lbl_80270020:
+/* 80270020 0026BC80 48 07 A9 CD */ bl func_802EA9EC
+/* 80270024 0026BC84 28 03 00 01 */ cmplwi r3, 1
+/* 80270028 0026BC88 41 82 FF F8 */ beq lbl_80270020
+/* 8027002C 0026BC8C 38 61 00 08 */ addi r3, r1, 8
+/* 80270030 0026BC90 48 07 C4 0D */ bl func_802EC43C
+/* 80270034 0026BC94 48 00 3C E9 */ bl func_80273D1C
+/* 80270038 0026BC98 48 00 35 F5 */ bl func_8027362C
+/* 8027003C 0026BC9C 48 01 C7 F1 */ bl func_8028C82C
+/* 80270040 0026BCA0 38 61 00 18 */ addi r3, r1, 0x18
+/* 80270044 0026BCA4 48 00 3F A5 */ bl func_80273FE8
+/* 80270048 0026BCA8 48 01 C3 B9 */ bl func_8028C400
+/* 8027004C 0026BCAC 28 03 00 02 */ cmplwi r3, 2
+/* 80270050 0026BCB0 41 82 00 10 */ beq lbl_80270060
+/* 80270054 0026BCB4 38 00 00 03 */ li r0, 3
+/* 80270058 0026BCB8 98 01 00 1E */ stb r0, 0x1e(r1)
+/* 8027005C 0026BCBC 48 00 00 40 */ b lbl_8027009C
+lbl_80270060:
+/* 80270060 0026BCC0 88 01 00 1E */ lbz r0, 0x1e(r1)
+/* 80270064 0026BCC4 28 00 00 01 */ cmplwi r0, 1
+/* 80270068 0026BCC8 40 82 00 20 */ bne lbl_80270088
+/* 8027006C 0026BCCC 38 61 00 0C */ addi r3, r1, 0xc
+/* 80270070 0026BCD0 48 00 0B CD */ bl __OSGetRTCFlags
+/* 80270074 0026BCD4 2C 03 00 00 */ cmpwi r3, 0
+/* 80270078 0026BCD8 41 82 00 1C */ beq lbl_80270094
+/* 8027007C 0026BCDC 80 01 00 0C */ lwz r0, 0xc(r1)
+/* 80270080 0026BCE0 2C 00 00 00 */ cmpwi r0, 0
+/* 80270084 0026BCE4 41 82 00 10 */ beq lbl_80270094
+lbl_80270088:
+/* 80270088 0026BCE8 38 00 00 02 */ li r0, 2
+/* 8027008C 0026BCEC 98 01 00 1E */ stb r0, 0x1e(r1)
+/* 80270090 0026BCF0 48 00 00 0C */ b lbl_8027009C
+lbl_80270094:
+/* 80270094 0026BCF4 38 00 00 01 */ li r0, 1
+/* 80270098 0026BCF8 98 01 00 1E */ stb r0, 0x1e(r1)
+lbl_8027009C:
+/* 8027009C 0026BCFC 88 01 00 08 */ lbz r0, 8(r1)
+/* 802700A0 0026BD00 28 00 00 01 */ cmplwi r0, 1
+/* 802700A4 0026BD04 40 82 00 10 */ bne lbl_802700B4
+/* 802700A8 0026BD08 38 00 00 05 */ li r0, 5
+/* 802700AC 0026BD0C 98 01 00 1D */ stb r0, 0x1d(r1)
+/* 802700B0 0026BD10 48 00 00 0C */ b lbl_802700BC
+lbl_802700B4:
+/* 802700B4 0026BD14 38 00 00 01 */ li r0, 1
+/* 802700B8 0026BD18 98 01 00 1D */ stb r0, 0x1d(r1)
+lbl_802700BC:
+/* 802700BC 0026BD1C 48 00 0C 9D */ bl __OSClearRTCFlags
+/* 802700C0 0026BD20 38 61 00 18 */ addi r3, r1, 0x18
+/* 802700C4 0026BD24 48 00 3E 41 */ bl func_80273F04
+/* 802700C8 0026BD28 38 61 00 10 */ addi r3, r1, 0x10
+/* 802700CC 0026BD2C 4B FF 83 F5 */ bl __OSGetIOSRev
+/* 802700D0 0026BD30 88 01 00 08 */ lbz r0, 8(r1)
+/* 802700D4 0026BD34 28 00 00 01 */ cmplwi r0, 1
+/* 802700D8 0026BD38 40 82 00 1C */ bne lbl_802700F4
+/* 802700DC 0026BD3C 48 00 12 69 */ bl OSDisableScheduler
+/* 802700E0 0026BD40 38 60 00 05 */ li r3, 5
+/* 802700E4 0026BD44 4B FF FC E5 */ bl __OSShutdownDevices
+/* 802700E8 0026BD48 48 00 12 99 */ bl OSEnableScheduler
+/* 802700EC 0026BD4C 4B FF C1 41 */ bl __OSLaunchMenu
+/* 802700F0 0026BD50 48 00 00 14 */ b lbl_80270104
+lbl_802700F4:
+/* 802700F4 0026BD54 48 00 12 51 */ bl OSDisableScheduler
+/* 802700F8 0026BD58 38 60 00 02 */ li r3, 2
+/* 802700FC 0026BD5C 4B FF FC CD */ bl __OSShutdownDevices
+/* 80270100 0026BD60 48 00 33 0D */ bl func_8027340C
+lbl_80270104:
+/* 80270104 0026BD64 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80270108 0026BD68 7C 08 03 A6 */ mtlr r0
+/* 8027010C 0026BD6C 38 21 00 40 */ addi r1, r1, 0x40
+/* 80270110 0026BD70 4E 80 00 20 */ blr
+
+.global __OSRebootForNANDAPP
+__OSRebootForNANDAPP:
+/* 80270114 0026BD74 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80270118 0026BD78 7C 08 02 A6 */ mflr r0
+/* 8027011C 0026BD7C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80270120 0026BD80 93 E1 00 2C */ stw r31, 0x2c(r1)
+/* 80270124 0026BD84 93 C1 00 28 */ stw r30, 0x28(r1)
+/* 80270128 0026BD88 7C 7E 1B 78 */ mr r30, r3
+/* 8027012C 0026BD8C 3C 60 81 28 */ lis r3, 0x8128
+/* 80270130 0026BD90 4B FF 9F F5 */ bl OSSetArenaLo
+/* 80270134 0026BD94 3C 60 81 2F */ lis r3, 0x812f
+/* 80270138 0026BD98 4B FF 9F D5 */ bl OSSetArenaHi
+/* 8027013C 0026BD9C 38 60 10 20 */ li r3, 0x1020
+/* 80270140 0026BDA0 38 80 00 20 */ li r4, 0x20
+/* 80270144 0026BDA4 4B FF 9F E9 */ bl OSAllocFromMEM1ArenaLo
+/* 80270148 0026BDA8 7C 7F 1B 78 */ mr r31, r3
+/* 8027014C 0026BDAC 38 80 00 00 */ li r4, 0
+/* 80270150 0026BDB0 38 A0 10 20 */ li r5, 0x1020
+/* 80270154 0026BDB4 4B D9 3F B1 */ bl memset
+/* 80270158 0026BDB8 7F E3 FB 78 */ mr r3, r31
+/* 8027015C 0026BDBC 48 00 41 B1 */ bl func_8027430C
+/* 80270160 0026BDC0 38 60 00 01 */ li r3, 1
+/* 80270164 0026BDC4 67 C0 80 00 */ oris r0, r30, 0x8000
+/* 80270168 0026BDC8 90 7F 00 08 */ stw r3, 8(r31)
+/* 8027016C 0026BDCC 7F E3 FB 78 */ mr r3, r31
+/* 80270170 0026BDD0 90 1F 00 0C */ stw r0, 0xc(r31)
+/* 80270174 0026BDD4 48 00 40 41 */ bl func_802741B4
+/* 80270178 0026BDD8 38 61 00 08 */ addi r3, r1, 8
+/* 8027017C 0026BDDC 48 00 3E 6D */ bl func_80273FE8
+/* 80270180 0026BDE0 2C 03 00 00 */ cmpwi r3, 0
+/* 80270184 0026BDE4 41 82 00 14 */ beq lbl_80270198
+/* 80270188 0026BDE8 38 00 00 03 */ li r0, 3
+/* 8027018C 0026BDEC 38 61 00 08 */ addi r3, r1, 8
+/* 80270190 0026BDF0 98 01 00 0D */ stb r0, 0xd(r1)
+/* 80270194 0026BDF4 48 00 3D 71 */ bl func_80273F04
+lbl_80270198:
+/* 80270198 0026BDF8 48 00 11 AD */ bl OSDisableScheduler
+/* 8027019C 0026BDFC 38 60 00 04 */ li r3, 4
+/* 802701A0 0026BE00 4B FF FC 29 */ bl __OSShutdownDevices
+/* 802701A4 0026BE04 48 00 11 DD */ bl OSEnableScheduler
+/* 802701A8 0026BE08 4B FF C1 81 */ bl func_8026C328
+/* 802701AC 0026BE0C 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 802701B0 0026BE10 83 E1 00 2C */ lwz r31, 0x2c(r1)
+/* 802701B4 0026BE14 83 C1 00 28 */ lwz r30, 0x28(r1)
+/* 802701B8 0026BE18 7C 08 03 A6 */ mtlr r0
+/* 802701BC 0026BE1C 38 21 00 30 */ addi r1, r1, 0x30
+/* 802701C0 0026BE20 4E 80 00 20 */ blr
+
+.global OSRestart
+OSRestart:
+/* 802701C4 0026BE24 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802701C8 0026BE28 7C 08 02 A6 */ mflr r0
+/* 802701CC 0026BE2C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802701D0 0026BE30 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802701D4 0026BE34 93 C1 00 08 */ stw r30, 8(r1)
+/* 802701D8 0026BE38 7C 7E 1B 78 */ mr r30, r3
+/* 802701DC 0026BE3C 4B FF 94 D1 */ bl OSGetAppType
+/* 802701E0 0026BE40 7C 7F 1B 78 */ mr r31, r3
+/* 802701E4 0026BE44 48 00 3B 39 */ bl func_80273D1C
+/* 802701E8 0026BE48 48 00 34 45 */ bl func_8027362C
+/* 802701EC 0026BE4C 57 E0 06 3E */ clrlwi r0, r31, 0x18
+/* 802701F0 0026BE50 28 00 00 81 */ cmplwi r0, 0x81
+/* 802701F4 0026BE54 40 82 00 10 */ bne lbl_80270204
+/* 802701F8 0026BE58 7F C3 F3 78 */ mr r3, r30
+/* 802701FC 0026BE5C 4B FF FF 19 */ bl __OSRebootForNANDAPP
+/* 80270200 0026BE60 48 00 00 28 */ b lbl_80270228
+lbl_80270204:
+/* 80270204 0026BE64 28 00 00 80 */ cmplwi r0, 0x80
+/* 80270208 0026BE68 40 82 00 20 */ bne lbl_80270228
+/* 8027020C 0026BE6C 48 00 11 39 */ bl OSDisableScheduler
+/* 80270210 0026BE70 38 60 00 04 */ li r3, 4
+/* 80270214 0026BE74 4B FF FB B5 */ bl __OSShutdownDevices
+/* 80270218 0026BE78 48 00 11 69 */ bl OSEnableScheduler
+/* 8027021C 0026BE7C 80 8D A8 18 */ lwz r4, lbl_8063FAD8-_SDA_BASE_(r13)
+/* 80270220 0026BE80 7F C3 F3 78 */ mr r3, r30
+/* 80270224 0026BE84 4B FF F9 F9 */ bl __OSReboot
+lbl_80270228:
+/* 80270228 0026BE88 48 00 11 1D */ bl OSDisableScheduler
+/* 8027022C 0026BE8C 38 60 00 01 */ li r3, 1
+/* 80270230 0026BE90 4B FF FB 99 */ bl __OSShutdownDevices
+/* 80270234 0026BE94 48 00 32 51 */ bl func_80273484
+/* 80270238 0026BE98 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027023C 0026BE9C 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80270240 0026BEA0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80270244 0026BEA4 7C 08 03 A6 */ mtlr r0
+/* 80270248 0026BEA8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027024C 0026BEAC 4E 80 00 20 */ blr
+
+.global OSReturnToMenu
+OSReturnToMenu:
+/* 80270250 0026BEB0 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80270254 0026BEB4 7C 08 02 A6 */ mflr r0
+/* 80270258 0026BEB8 90 01 00 34 */ stw r0, 0x34(r1)
+/* 8027025C 0026BEBC 48 00 3A C1 */ bl func_80273D1C
+/* 80270260 0026BEC0 48 00 33 CD */ bl func_8027362C
+/* 80270264 0026BEC4 48 01 C5 C9 */ bl func_8028C82C
+/* 80270268 0026BEC8 38 61 00 10 */ addi r3, r1, 0x10
+/* 8027026C 0026BECC 48 00 3D 7D */ bl func_80273FE8
+/* 80270270 0026BED0 48 01 C1 91 */ bl func_8028C400
+/* 80270274 0026BED4 28 03 00 02 */ cmplwi r3, 2
+/* 80270278 0026BED8 41 82 00 10 */ beq lbl_80270288
+/* 8027027C 0026BEDC 38 00 00 03 */ li r0, 3
+/* 80270280 0026BEE0 98 01 00 16 */ stb r0, 0x16(r1)
+/* 80270284 0026BEE4 48 00 00 40 */ b lbl_802702C4
+lbl_80270288:
+/* 80270288 0026BEE8 88 01 00 16 */ lbz r0, 0x16(r1)
+/* 8027028C 0026BEEC 28 00 00 01 */ cmplwi r0, 1
+/* 80270290 0026BEF0 40 82 00 20 */ bne lbl_802702B0
+/* 80270294 0026BEF4 38 61 00 08 */ addi r3, r1, 8
+/* 80270298 0026BEF8 48 00 09 A5 */ bl __OSGetRTCFlags
+/* 8027029C 0026BEFC 2C 03 00 00 */ cmpwi r3, 0
+/* 802702A0 0026BF00 41 82 00 1C */ beq lbl_802702BC
+/* 802702A4 0026BF04 80 01 00 08 */ lwz r0, 8(r1)
+/* 802702A8 0026BF08 2C 00 00 00 */ cmpwi r0, 0
+/* 802702AC 0026BF0C 41 82 00 10 */ beq lbl_802702BC
+lbl_802702B0:
+/* 802702B0 0026BF10 38 00 00 02 */ li r0, 2
+/* 802702B4 0026BF14 98 01 00 16 */ stb r0, 0x16(r1)
+/* 802702B8 0026BF18 48 00 00 0C */ b lbl_802702C4
+lbl_802702BC:
+/* 802702BC 0026BF1C 38 00 00 01 */ li r0, 1
+/* 802702C0 0026BF20 98 01 00 16 */ stb r0, 0x16(r1)
+lbl_802702C4:
+/* 802702C4 0026BF24 38 00 00 03 */ li r0, 3
+/* 802702C8 0026BF28 98 01 00 15 */ stb r0, 0x15(r1)
+/* 802702CC 0026BF2C 48 00 0A 8D */ bl __OSClearRTCFlags
+/* 802702D0 0026BF30 38 61 00 10 */ addi r3, r1, 0x10
+/* 802702D4 0026BF34 48 00 3C 31 */ bl func_80273F04
+/* 802702D8 0026BF38 48 00 10 6D */ bl OSDisableScheduler
+/* 802702DC 0026BF3C 38 60 00 05 */ li r3, 5
+/* 802702E0 0026BF40 4B FF FA E9 */ bl __OSShutdownDevices
+/* 802702E4 0026BF44 48 00 10 9D */ bl OSEnableScheduler
+/* 802702E8 0026BF48 4B FF BF 45 */ bl __OSLaunchMenu
+/* 802702EC 0026BF4C 48 00 10 59 */ bl OSDisableScheduler
+/* 802702F0 0026BF50 48 00 B7 C9 */ bl func_8027BAB8
+/* 802702F4 0026BF54 48 00 31 91 */ bl func_80273484
+/* 802702F8 0026BF58 3C 60 80 42 */ lis r3, lbl_80427D18@ha
+/* 802702FC 0026BF5C 3C A0 80 42 */ lis r5, lbl_80427D24@ha
+/* 80270300 0026BF60 38 63 7D 18 */ addi r3, r3, lbl_80427D18@l
+/* 80270304 0026BF64 38 80 03 4B */ li r4, 0x34b
+/* 80270308 0026BF68 38 A5 7D 24 */ addi r5, r5, lbl_80427D24@l
+/* 8027030C 0026BF6C 4C C6 31 82 */ crclr 6
+/* 80270310 0026BF70 4B FF B1 8D */ bl OSPanic
+/* 80270314 0026BF74 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80270318 0026BF78 7C 08 03 A6 */ mtlr r0
+/* 8027031C 0026BF7C 38 21 00 30 */ addi r1, r1, 0x30
+/* 80270320 0026BF80 4E 80 00 20 */ blr
+
+.global __OSReturnToMenuForError
+__OSReturnToMenuForError:
+/* 80270324 0026BF84 94 21 FF D0 */ stwu r1, -0x30(r1)
+/* 80270328 0026BF88 7C 08 02 A6 */ mflr r0
+/* 8027032C 0026BF8C 90 01 00 34 */ stw r0, 0x34(r1)
+/* 80270330 0026BF90 38 61 00 08 */ addi r3, r1, 8
+/* 80270334 0026BF94 48 00 3C B5 */ bl func_80273FE8
+/* 80270338 0026BF98 38 60 00 02 */ li r3, 2
+/* 8027033C 0026BF9C 38 00 00 03 */ li r0, 3
+/* 80270340 0026BFA0 98 61 00 0E */ stb r3, 0xe(r1)
+/* 80270344 0026BFA4 98 01 00 0D */ stb r0, 0xd(r1)
+/* 80270348 0026BFA8 48 00 0A 11 */ bl __OSClearRTCFlags
+/* 8027034C 0026BFAC 38 61 00 08 */ addi r3, r1, 8
+/* 80270350 0026BFB0 48 00 3B B5 */ bl func_80273F04
+/* 80270354 0026BFB4 4B FF BE D9 */ bl __OSLaunchMenu
+/* 80270358 0026BFB8 48 00 0F ED */ bl OSDisableScheduler
+/* 8027035C 0026BFBC 48 00 B7 5D */ bl func_8027BAB8
+/* 80270360 0026BFC0 48 00 31 25 */ bl func_80273484
+/* 80270364 0026BFC4 3C 60 80 42 */ lis r3, lbl_80427D18@ha
+/* 80270368 0026BFC8 3C A0 80 42 */ lis r5, lbl_80427D54@ha
+/* 8027036C 0026BFCC 38 63 7D 18 */ addi r3, r3, lbl_80427D18@l
+/* 80270370 0026BFD0 38 80 03 65 */ li r4, 0x365
+/* 80270374 0026BFD4 38 A5 7D 54 */ addi r5, r5, lbl_80427D54@l
+/* 80270378 0026BFD8 4C C6 31 82 */ crclr 6
+/* 8027037C 0026BFDC 4B FF B1 21 */ bl OSPanic
+/* 80270380 0026BFE0 80 01 00 34 */ lwz r0, 0x34(r1)
+/* 80270384 0026BFE4 7C 08 03 A6 */ mtlr r0
+/* 80270388 0026BFE8 38 21 00 30 */ addi r1, r1, 0x30
+/* 8027038C 0026BFEC 4E 80 00 20 */ blr
+
+.global OSGetResetCode
+OSGetResetCode:
+/* 80270390 0026BFF0 3C 60 80 50 */ lis r3, lbl_80503C80@ha
+/* 80270394 0026BFF4 80 03 3C 80 */ lwz r0, lbl_80503C80@l(r3)
+/* 80270398 0026BFF8 2C 00 00 00 */ cmpwi r0, 0
+/* 8027039C 0026BFFC 41 82 00 14 */ beq lbl_802703B0
+/* 802703A0 0026C000 38 63 3C 80 */ addi r3, r3, 0x3c80
+/* 802703A4 0026C004 80 03 00 04 */ lwz r0, 4(r3)
+/* 802703A8 0026C008 64 03 80 00 */ oris r3, r0, 0x8000
+/* 802703AC 0026C00C 4E 80 00 20 */ blr
+lbl_802703B0:
+/* 802703B0 0026C010 3C 60 CC 00 */ lis r3, 0xCC003024@ha
+/* 802703B4 0026C014 80 03 30 24 */ lwz r0, 0xCC003024@l(r3)
+/* 802703B8 0026C018 54 03 E8 FE */ srwi r3, r0, 3
+/* 802703BC 0026C01C 4E 80 00 20 */ blr
+
+.global OSResetSystem
+OSResetSystem:
+/* 802703C0 0026C020 3C 60 80 42 */ lis r3, lbl_80427D18@ha
+/* 802703C4 0026C024 3C A0 80 42 */ lis r5, lbl_80427D88@ha
+/* 802703C8 0026C028 38 63 7D 18 */ addi r3, r3, lbl_80427D18@l
+/* 802703CC 0026C02C 38 80 03 FC */ li r4, 0x3fc
+/* 802703D0 0026C030 38 A5 7D 88 */ addi r5, r5, lbl_80427D88@l
+/* 802703D4 0026C034 4C C6 31 82 */ crclr 6
+/* 802703D8 0026C038 4B FF B0 C4 */ b OSPanic
diff --git a/asm/SDK/OS/OSRtc.s b/asm/SDK/OS/OSRtc.s new file mode 100644 index 0000000..276030f --- /dev/null +++ b/asm/SDK/OS/OSRtc.s @@ -0,0 +1,747 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global WriteSramCallback
+WriteSramCallback:
+/* 802703DC 0026C03C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802703E0 0026C040 7C 08 02 A6 */ mflr r0
+/* 802703E4 0026C044 3C C0 80 51 */ lis r6, lbl_80514780@ha
+/* 802703E8 0026C048 3C A0 80 27 */ lis r5, WriteSramCallback@ha
+/* 802703EC 0026C04C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802703F0 0026C050 38 C6 47 80 */ addi r6, r6, lbl_80514780@l
+/* 802703F4 0026C054 38 60 00 00 */ li r3, 0
+/* 802703F8 0026C058 38 A5 03 DC */ addi r5, r5, WriteSramCallback@l
+/* 802703FC 0026C05C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80270400 0026C060 38 80 00 01 */ li r4, 1
+/* 80270404 0026C064 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80270408 0026C068 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8027040C 0026C06C 83 E6 00 40 */ lwz r31, 0x40(r6)
+/* 80270410 0026C070 23 BF 00 40 */ subfic r29, r31, 0x40
+/* 80270414 0026C074 7F C6 FA 14 */ add r30, r6, r31
+/* 80270418 0026C078 48 00 54 2D */ bl func_80275844
+/* 8027041C 0026C07C 2C 03 00 00 */ cmpwi r3, 0
+/* 80270420 0026C080 40 82 00 0C */ bne lbl_8027042C
+/* 80270424 0026C084 38 00 00 00 */ li r0, 0
+/* 80270428 0026C088 48 00 00 B4 */ b lbl_802704DC
+lbl_8027042C:
+/* 8027042C 0026C08C 38 60 00 00 */ li r3, 0
+/* 80270430 0026C090 38 80 00 01 */ li r4, 1
+/* 80270434 0026C094 38 A0 00 03 */ li r5, 3
+/* 80270438 0026C098 48 00 4C 79 */ bl func_802750B0
+/* 8027043C 0026C09C 2C 03 00 00 */ cmpwi r3, 0
+/* 80270440 0026C0A0 40 82 00 14 */ bne lbl_80270454
+/* 80270444 0026C0A4 38 60 00 00 */ li r3, 0
+/* 80270448 0026C0A8 48 00 54 F9 */ bl func_80275940
+/* 8027044C 0026C0AC 38 00 00 00 */ li r0, 0
+/* 80270450 0026C0B0 48 00 00 8C */ b lbl_802704DC
+lbl_80270454:
+/* 80270454 0026C0B4 57 E3 30 32 */ slwi r3, r31, 6
+/* 80270458 0026C0B8 38 81 00 08 */ addi r4, r1, 8
+/* 8027045C 0026C0BC 38 03 01 00 */ addi r0, r3, 0x100
+/* 80270460 0026C0C0 38 A0 00 04 */ li r5, 4
+/* 80270464 0026C0C4 64 00 A0 00 */ oris r0, r0, 0xa000
+/* 80270468 0026C0C8 38 60 00 00 */ li r3, 0
+/* 8027046C 0026C0CC 90 01 00 08 */ stw r0, 8(r1)
+/* 80270470 0026C0D0 38 C0 00 01 */ li r6, 1
+/* 80270474 0026C0D4 38 E0 00 00 */ li r7, 0
+/* 80270478 0026C0D8 48 00 41 D1 */ bl func_80274648
+/* 8027047C 0026C0DC 7C 60 00 34 */ cntlzw r0, r3
+/* 80270480 0026C0E0 38 60 00 00 */ li r3, 0
+/* 80270484 0026C0E4 54 1F D9 7E */ srwi r31, r0, 5
+/* 80270488 0026C0E8 48 00 45 D9 */ bl func_80274A60
+/* 8027048C 0026C0EC 7C 60 00 34 */ cntlzw r0, r3
+/* 80270490 0026C0F0 7F C4 F3 78 */ mr r4, r30
+/* 80270494 0026C0F4 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270498 0026C0F8 7F A5 EB 78 */ mr r5, r29
+/* 8027049C 0026C0FC 7F FD 03 78 */ or r29, r31, r0
+/* 802704A0 0026C100 38 60 00 00 */ li r3, 0
+/* 802704A4 0026C104 38 C0 00 01 */ li r6, 1
+/* 802704A8 0026C108 48 00 44 1D */ bl func_802748C4
+/* 802704AC 0026C10C 7C 60 00 34 */ cntlzw r0, r3
+/* 802704B0 0026C110 38 60 00 00 */ li r3, 0
+/* 802704B4 0026C114 54 00 D9 7E */ srwi r0, r0, 5
+/* 802704B8 0026C118 7F BD 03 78 */ or r29, r29, r0
+/* 802704BC 0026C11C 48 00 4D 25 */ bl func_802751E0
+/* 802704C0 0026C120 7C 60 00 34 */ cntlzw r0, r3
+/* 802704C4 0026C124 38 60 00 00 */ li r3, 0
+/* 802704C8 0026C128 54 00 D9 7E */ srwi r0, r0, 5
+/* 802704CC 0026C12C 7F BD 03 78 */ or r29, r29, r0
+/* 802704D0 0026C130 48 00 54 71 */ bl func_80275940
+/* 802704D4 0026C134 7F A0 00 34 */ cntlzw r0, r29
+/* 802704D8 0026C138 54 00 D9 7E */ srwi r0, r0, 5
+lbl_802704DC:
+/* 802704DC 0026C13C 3C 60 80 51 */ lis r3, lbl_80514780@ha
+/* 802704E0 0026C140 2C 00 00 00 */ cmpwi r0, 0
+/* 802704E4 0026C144 38 63 47 80 */ addi r3, r3, lbl_80514780@l
+/* 802704E8 0026C148 90 03 00 4C */ stw r0, 0x4c(r3)
+/* 802704EC 0026C14C 41 82 00 0C */ beq lbl_802704F8
+/* 802704F0 0026C150 38 00 00 40 */ li r0, 0x40
+/* 802704F4 0026C154 90 03 00 40 */ stw r0, 0x40(r3)
+lbl_802704F8:
+/* 802704F8 0026C158 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802704FC 0026C15C 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80270500 0026C160 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80270504 0026C164 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80270508 0026C168 7C 08 03 A6 */ mtlr r0
+/* 8027050C 0026C16C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80270510 0026C170 4E 80 00 20 */ blr
+
+.global __OSInitSram
+__OSInitSram:
+/* 80270514 0026C174 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80270518 0026C178 7C 08 02 A6 */ mflr r0
+/* 8027051C 0026C17C 38 80 00 40 */ li r4, 0x40
+/* 80270520 0026C180 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80270524 0026C184 38 00 00 00 */ li r0, 0
+/* 80270528 0026C188 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 8027052C 0026C18C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80270530 0026C190 3F C0 80 51 */ lis r30, lbl_80514780@ha
+/* 80270534 0026C194 3B DE 47 80 */ addi r30, r30, lbl_80514780@l
+/* 80270538 0026C198 90 1E 00 44 */ stw r0, 0x44(r30)
+/* 8027053C 0026C19C 7F C3 F3 78 */ mr r3, r30
+/* 80270540 0026C1A0 90 1E 00 48 */ stw r0, 0x48(r30)
+/* 80270544 0026C1A4 4B FF A0 E5 */ bl DCInvalidateRange
+/* 80270548 0026C1A8 38 60 00 00 */ li r3, 0
+/* 8027054C 0026C1AC 38 80 00 01 */ li r4, 1
+/* 80270550 0026C1B0 38 A0 00 00 */ li r5, 0
+/* 80270554 0026C1B4 48 00 52 F1 */ bl func_80275844
+/* 80270558 0026C1B8 2C 03 00 00 */ cmpwi r3, 0
+/* 8027055C 0026C1BC 40 82 00 0C */ bne lbl_80270568
+/* 80270560 0026C1C0 38 60 00 00 */ li r3, 0
+/* 80270564 0026C1C4 48 00 00 C8 */ b lbl_8027062C
+lbl_80270568:
+/* 80270568 0026C1C8 38 60 00 00 */ li r3, 0
+/* 8027056C 0026C1CC 38 80 00 01 */ li r4, 1
+/* 80270570 0026C1D0 38 A0 00 03 */ li r5, 3
+/* 80270574 0026C1D4 48 00 4B 3D */ bl func_802750B0
+/* 80270578 0026C1D8 2C 03 00 00 */ cmpwi r3, 0
+/* 8027057C 0026C1DC 40 82 00 14 */ bne lbl_80270590
+/* 80270580 0026C1E0 38 60 00 00 */ li r3, 0
+/* 80270584 0026C1E4 48 00 53 BD */ bl func_80275940
+/* 80270588 0026C1E8 38 60 00 00 */ li r3, 0
+/* 8027058C 0026C1EC 48 00 00 A0 */ b lbl_8027062C
+lbl_80270590:
+/* 80270590 0026C1F0 3C 60 20 00 */ lis r3, 0x20000100@ha
+/* 80270594 0026C1F4 38 81 00 08 */ addi r4, r1, 8
+/* 80270598 0026C1F8 38 03 01 00 */ addi r0, r3, 0x20000100@l
+/* 8027059C 0026C1FC 38 A0 00 04 */ li r5, 4
+/* 802705A0 0026C200 90 01 00 08 */ stw r0, 8(r1)
+/* 802705A4 0026C204 38 60 00 00 */ li r3, 0
+/* 802705A8 0026C208 38 C0 00 01 */ li r6, 1
+/* 802705AC 0026C20C 38 E0 00 00 */ li r7, 0
+/* 802705B0 0026C210 48 00 40 99 */ bl func_80274648
+/* 802705B4 0026C214 7C 60 00 34 */ cntlzw r0, r3
+/* 802705B8 0026C218 38 60 00 00 */ li r3, 0
+/* 802705BC 0026C21C 54 1F D9 7E */ srwi r31, r0, 5
+/* 802705C0 0026C220 48 00 44 A1 */ bl func_80274A60
+/* 802705C4 0026C224 7C 60 00 34 */ cntlzw r0, r3
+/* 802705C8 0026C228 7F C4 F3 78 */ mr r4, r30
+/* 802705CC 0026C22C 54 00 D9 7E */ srwi r0, r0, 5
+/* 802705D0 0026C230 38 60 00 00 */ li r3, 0
+/* 802705D4 0026C234 7F FE 03 78 */ or r30, r31, r0
+/* 802705D8 0026C238 38 A0 00 40 */ li r5, 0x40
+/* 802705DC 0026C23C 38 C0 00 00 */ li r6, 0
+/* 802705E0 0026C240 38 E0 00 00 */ li r7, 0
+/* 802705E4 0026C244 48 00 43 85 */ bl func_80274968
+/* 802705E8 0026C248 7C 60 00 34 */ cntlzw r0, r3
+/* 802705EC 0026C24C 38 60 00 00 */ li r3, 0
+/* 802705F0 0026C250 54 00 D9 7E */ srwi r0, r0, 5
+/* 802705F4 0026C254 7F DE 03 78 */ or r30, r30, r0
+/* 802705F8 0026C258 48 00 44 69 */ bl func_80274A60
+/* 802705FC 0026C25C 7C 60 00 34 */ cntlzw r0, r3
+/* 80270600 0026C260 38 60 00 00 */ li r3, 0
+/* 80270604 0026C264 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270608 0026C268 7F DE 03 78 */ or r30, r30, r0
+/* 8027060C 0026C26C 48 00 4B D5 */ bl func_802751E0
+/* 80270610 0026C270 7C 60 00 34 */ cntlzw r0, r3
+/* 80270614 0026C274 38 60 00 00 */ li r3, 0
+/* 80270618 0026C278 54 00 D9 7E */ srwi r0, r0, 5
+/* 8027061C 0026C27C 7F DE 03 78 */ or r30, r30, r0
+/* 80270620 0026C280 48 00 53 21 */ bl func_80275940
+/* 80270624 0026C284 7F C0 00 34 */ cntlzw r0, r30
+/* 80270628 0026C288 54 03 D9 7E */ srwi r3, r0, 5
+lbl_8027062C:
+/* 8027062C 0026C28C 3F E0 80 51 */ lis r31, lbl_80514780@ha
+/* 80270630 0026C290 38 00 00 40 */ li r0, 0x40
+/* 80270634 0026C294 3B FF 47 80 */ addi r31, r31, lbl_80514780@l
+/* 80270638 0026C298 90 7F 00 4C */ stw r3, 0x4c(r31)
+/* 8027063C 0026C29C 90 1F 00 40 */ stw r0, 0x40(r31)
+/* 80270640 0026C2A0 4B FF E1 1D */ bl OSDisableInterrupts
+/* 80270644 0026C2A4 80 1F 00 48 */ lwz r0, 0x48(r31)
+/* 80270648 0026C2A8 2C 00 00 00 */ cmpwi r0, 0
+/* 8027064C 0026C2AC 41 82 00 10 */ beq lbl_8027065C
+/* 80270650 0026C2B0 4B FF E1 35 */ bl OSRestoreInterrupts
+/* 80270654 0026C2B4 38 60 00 00 */ li r3, 0
+/* 80270658 0026C2B8 48 00 00 14 */ b lbl_8027066C
+lbl_8027065C:
+/* 8027065C 0026C2BC 38 00 00 01 */ li r0, 1
+/* 80270660 0026C2C0 90 7F 00 44 */ stw r3, 0x44(r31)
+/* 80270664 0026C2C4 38 7F 00 14 */ addi r3, r31, 0x14
+/* 80270668 0026C2C8 90 1F 00 48 */ stw r0, 0x48(r31)
+lbl_8027066C:
+/* 8027066C 0026C2CC A3 C3 00 28 */ lhz r30, 0x28(r3)
+/* 80270670 0026C2D0 38 60 00 00 */ li r3, 0
+/* 80270674 0026C2D4 38 80 00 14 */ li r4, 0x14
+/* 80270678 0026C2D8 48 00 00 9D */ bl UnlockSram
+/* 8027067C 0026C2DC 57 C0 04 6A */ rlwinm r0, r30, 0, 0x11, 0x15
+/* 80270680 0026C2E0 28 00 50 00 */ cmplwi r0, 0x5000
+/* 80270684 0026C2E4 41 82 00 10 */ beq lbl_80270694
+/* 80270688 0026C2E8 57 C0 06 32 */ rlwinm r0, r30, 0, 0x18, 0x19
+/* 8027068C 0026C2EC 28 00 00 C0 */ cmplwi r0, 0xc0
+/* 80270690 0026C2F0 40 82 00 08 */ bne lbl_80270698
+lbl_80270694:
+/* 80270694 0026C2F4 3B C0 00 00 */ li r30, 0
+lbl_80270698:
+/* 80270698 0026C2F8 4B FF E0 C5 */ bl OSDisableInterrupts
+/* 8027069C 0026C2FC 3C 80 80 51 */ lis r4, lbl_80514780@ha
+/* 802706A0 0026C300 38 84 47 80 */ addi r4, r4, lbl_80514780@l
+/* 802706A4 0026C304 80 04 00 48 */ lwz r0, 0x48(r4)
+/* 802706A8 0026C308 2C 00 00 00 */ cmpwi r0, 0
+/* 802706AC 0026C30C 41 82 00 10 */ beq lbl_802706BC
+/* 802706B0 0026C310 4B FF E0 D5 */ bl OSRestoreInterrupts
+/* 802706B4 0026C314 38 A0 00 00 */ li r5, 0
+/* 802706B8 0026C318 48 00 00 14 */ b lbl_802706CC
+lbl_802706BC:
+/* 802706BC 0026C31C 38 00 00 01 */ li r0, 1
+/* 802706C0 0026C320 90 64 00 44 */ stw r3, 0x44(r4)
+/* 802706C4 0026C324 38 A4 00 14 */ addi r5, r4, 0x14
+/* 802706C8 0026C328 90 04 00 48 */ stw r0, 0x48(r4)
+lbl_802706CC:
+/* 802706CC 0026C32C A0 05 00 28 */ lhz r0, 0x28(r5)
+/* 802706D0 0026C330 57 C3 04 3E */ clrlwi r3, r30, 0x10
+/* 802706D4 0026C334 7C 03 00 40 */ cmplw r3, r0
+/* 802706D8 0026C338 40 82 00 14 */ bne lbl_802706EC
+/* 802706DC 0026C33C 38 60 00 00 */ li r3, 0
+/* 802706E0 0026C340 38 80 00 14 */ li r4, 0x14
+/* 802706E4 0026C344 48 00 00 31 */ bl UnlockSram
+/* 802706E8 0026C348 48 00 00 14 */ b lbl_802706FC
+lbl_802706EC:
+/* 802706EC 0026C34C B3 C5 00 28 */ sth r30, 0x28(r5)
+/* 802706F0 0026C350 38 60 00 01 */ li r3, 1
+/* 802706F4 0026C354 38 80 00 14 */ li r4, 0x14
+/* 802706F8 0026C358 48 00 00 1D */ bl UnlockSram
+lbl_802706FC:
+/* 802706FC 0026C35C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80270700 0026C360 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80270704 0026C364 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80270708 0026C368 7C 08 03 A6 */ mtlr r0
+/* 8027070C 0026C36C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80270710 0026C370 4E 80 00 20 */ blr
+
+.global UnlockSram
+UnlockSram:
+/* 80270714 0026C374 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80270718 0026C378 7C 08 02 A6 */ mflr r0
+/* 8027071C 0026C37C 2C 03 00 00 */ cmpwi r3, 0
+/* 80270720 0026C380 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80270724 0026C384 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80270728 0026C388 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027072C 0026C38C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80270730 0026C390 41 82 02 8C */ beq lbl_802709BC
+/* 80270734 0026C394 2C 04 00 00 */ cmpwi r4, 0
+/* 80270738 0026C398 40 82 01 30 */ bne lbl_80270868
+/* 8027073C 0026C39C 3D 00 80 51 */ lis r8, lbl_80514780@ha
+/* 80270740 0026C3A0 39 08 47 80 */ addi r8, r8, lbl_80514780@l
+/* 80270744 0026C3A4 88 68 00 13 */ lbz r3, 0x13(r8)
+/* 80270748 0026C3A8 54 60 07 BE */ clrlwi r0, r3, 0x1e
+/* 8027074C 0026C3AC 28 00 00 02 */ cmplwi r0, 2
+/* 80270750 0026C3B0 40 81 00 0C */ ble lbl_8027075C
+/* 80270754 0026C3B4 54 60 06 3A */ rlwinm r0, r3, 0, 0x18, 0x1d
+/* 80270758 0026C3B8 98 08 00 13 */ stb r0, 0x13(r8)
+lbl_8027075C:
+/* 8027075C 0026C3BC 3C 60 80 51 */ lis r3, lbl_80514780@ha
+/* 80270760 0026C3C0 38 00 00 00 */ li r0, 0
+/* 80270764 0026C3C4 38 63 47 80 */ addi r3, r3, lbl_80514780@l
+/* 80270768 0026C3C8 38 E8 00 0C */ addi r7, r8, 0xc
+/* 8027076C 0026C3CC 38 A3 00 14 */ addi r5, r3, 0x14
+/* 80270770 0026C3D0 B0 08 00 02 */ sth r0, 2(r8)
+/* 80270774 0026C3D4 38 65 00 01 */ addi r3, r5, 1
+/* 80270778 0026C3D8 7C 67 18 50 */ subf r3, r7, r3
+/* 8027077C 0026C3DC 7C 07 28 40 */ cmplw r7, r5
+/* 80270780 0026C3E0 B0 08 00 00 */ sth r0, 0(r8)
+/* 80270784 0026C3E4 54 63 F8 7E */ srwi r3, r3, 1
+/* 80270788 0026C3E8 40 80 00 E0 */ bge lbl_80270868
+/* 8027078C 0026C3EC 54 60 F0 BF */ rlwinm. r0, r3, 0x1e, 2, 0x1f
+/* 80270790 0026C3F0 7C 09 03 A6 */ mtctr r0
+/* 80270794 0026C3F4 41 82 00 A4 */ beq lbl_80270838
+lbl_80270798:
+/* 80270798 0026C3F8 A0 C8 00 00 */ lhz r6, 0(r8)
+/* 8027079C 0026C3FC A0 07 00 00 */ lhz r0, 0(r7)
+/* 802707A0 0026C400 A0 A8 00 02 */ lhz r5, 2(r8)
+/* 802707A4 0026C404 7C 06 02 14 */ add r0, r6, r0
+/* 802707A8 0026C408 B0 08 00 00 */ sth r0, 0(r8)
+/* 802707AC 0026C40C 54 06 04 3E */ clrlwi r6, r0, 0x10
+/* 802707B0 0026C410 A0 07 00 00 */ lhz r0, 0(r7)
+/* 802707B4 0026C414 7C 00 00 F8 */ nor r0, r0, r0
+/* 802707B8 0026C418 7C 05 02 14 */ add r0, r5, r0
+/* 802707BC 0026C41C B0 08 00 02 */ sth r0, 2(r8)
+/* 802707C0 0026C420 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 802707C4 0026C424 A0 07 00 02 */ lhz r0, 2(r7)
+/* 802707C8 0026C428 7C 06 02 14 */ add r0, r6, r0
+/* 802707CC 0026C42C B0 08 00 00 */ sth r0, 0(r8)
+/* 802707D0 0026C430 54 06 04 3E */ clrlwi r6, r0, 0x10
+/* 802707D4 0026C434 A0 07 00 02 */ lhz r0, 2(r7)
+/* 802707D8 0026C438 7C 00 00 F8 */ nor r0, r0, r0
+/* 802707DC 0026C43C 7C 05 02 14 */ add r0, r5, r0
+/* 802707E0 0026C440 B0 08 00 02 */ sth r0, 2(r8)
+/* 802707E4 0026C444 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 802707E8 0026C448 A0 07 00 04 */ lhz r0, 4(r7)
+/* 802707EC 0026C44C 7C 06 02 14 */ add r0, r6, r0
+/* 802707F0 0026C450 B0 08 00 00 */ sth r0, 0(r8)
+/* 802707F4 0026C454 54 06 04 3E */ clrlwi r6, r0, 0x10
+/* 802707F8 0026C458 A0 07 00 04 */ lhz r0, 4(r7)
+/* 802707FC 0026C45C 7C 00 00 F8 */ nor r0, r0, r0
+/* 80270800 0026C460 7C 05 02 14 */ add r0, r5, r0
+/* 80270804 0026C464 B0 08 00 02 */ sth r0, 2(r8)
+/* 80270808 0026C468 54 05 04 3E */ clrlwi r5, r0, 0x10
+/* 8027080C 0026C46C A0 07 00 06 */ lhz r0, 6(r7)
+/* 80270810 0026C470 7C 06 02 14 */ add r0, r6, r0
+/* 80270814 0026C474 B0 08 00 00 */ sth r0, 0(r8)
+/* 80270818 0026C478 A0 07 00 06 */ lhz r0, 6(r7)
+/* 8027081C 0026C47C 38 E7 00 08 */ addi r7, r7, 8
+/* 80270820 0026C480 7C 00 00 F8 */ nor r0, r0, r0
+/* 80270824 0026C484 7C 05 02 14 */ add r0, r5, r0
+/* 80270828 0026C488 B0 08 00 02 */ sth r0, 2(r8)
+/* 8027082C 0026C48C 42 00 FF 6C */ bdnz lbl_80270798
+/* 80270830 0026C490 70 63 00 03 */ andi. r3, r3, 3
+/* 80270834 0026C494 41 82 00 34 */ beq lbl_80270868
+lbl_80270838:
+/* 80270838 0026C498 7C 69 03 A6 */ mtctr r3
+lbl_8027083C:
+/* 8027083C 0026C49C A0 C8 00 00 */ lhz r6, 0(r8)
+/* 80270840 0026C4A0 A0 07 00 00 */ lhz r0, 0(r7)
+/* 80270844 0026C4A4 A0 A8 00 02 */ lhz r5, 2(r8)
+/* 80270848 0026C4A8 7C 06 02 14 */ add r0, r6, r0
+/* 8027084C 0026C4AC B0 08 00 00 */ sth r0, 0(r8)
+/* 80270850 0026C4B0 A0 07 00 00 */ lhz r0, 0(r7)
+/* 80270854 0026C4B4 38 E7 00 02 */ addi r7, r7, 2
+/* 80270858 0026C4B8 7C 00 00 F8 */ nor r0, r0, r0
+/* 8027085C 0026C4BC 7C 05 02 14 */ add r0, r5, r0
+/* 80270860 0026C4C0 B0 08 00 02 */ sth r0, 2(r8)
+/* 80270864 0026C4C4 42 00 FF D8 */ bdnz lbl_8027083C
+lbl_80270868:
+/* 80270868 0026C4C8 3C 60 80 51 */ lis r3, lbl_80514780@ha
+/* 8027086C 0026C4CC 38 63 47 80 */ addi r3, r3, lbl_80514780@l
+/* 80270870 0026C4D0 80 03 00 40 */ lwz r0, 0x40(r3)
+/* 80270874 0026C4D4 7C 04 00 40 */ cmplw r4, r0
+/* 80270878 0026C4D8 40 80 00 08 */ bge lbl_80270880
+/* 8027087C 0026C4DC 90 83 00 40 */ stw r4, 0x40(r3)
+lbl_80270880:
+/* 80270880 0026C4E0 3C 80 80 51 */ lis r4, lbl_80514780@ha
+/* 80270884 0026C4E4 38 84 47 80 */ addi r4, r4, lbl_80514780@l
+/* 80270888 0026C4E8 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 8027088C 0026C4EC 28 00 00 14 */ cmplwi r0, 0x14
+/* 80270890 0026C4F0 41 81 00 28 */ bgt lbl_802708B8
+/* 80270894 0026C4F4 A0 64 00 3C */ lhz r3, 0x3c(r4)
+/* 80270898 0026C4F8 54 60 04 6A */ rlwinm r0, r3, 0, 0x11, 0x15
+/* 8027089C 0026C4FC 28 00 50 00 */ cmplwi r0, 0x5000
+/* 802708A0 0026C500 41 82 00 10 */ beq lbl_802708B0
+/* 802708A4 0026C504 54 60 06 32 */ rlwinm r0, r3, 0, 0x18, 0x19
+/* 802708A8 0026C508 28 00 00 C0 */ cmplwi r0, 0xc0
+/* 802708AC 0026C50C 40 82 00 0C */ bne lbl_802708B8
+lbl_802708B0:
+/* 802708B0 0026C510 38 00 00 00 */ li r0, 0
+/* 802708B4 0026C514 B0 04 00 3C */ sth r0, 0x3c(r4)
+lbl_802708B8:
+/* 802708B8 0026C518 3C C0 80 51 */ lis r6, lbl_80514780@ha
+/* 802708BC 0026C51C 3C A0 80 27 */ lis r5, WriteSramCallback@ha
+/* 802708C0 0026C520 38 C6 47 80 */ addi r6, r6, lbl_80514780@l
+/* 802708C4 0026C524 38 60 00 00 */ li r3, 0
+/* 802708C8 0026C528 83 E6 00 40 */ lwz r31, 0x40(r6)
+/* 802708CC 0026C52C 38 A5 03 DC */ addi r5, r5, WriteSramCallback@l
+/* 802708D0 0026C530 38 80 00 01 */ li r4, 1
+/* 802708D4 0026C534 23 BF 00 40 */ subfic r29, r31, 0x40
+/* 802708D8 0026C538 7F C6 FA 14 */ add r30, r6, r31
+/* 802708DC 0026C53C 48 00 4F 69 */ bl func_80275844
+/* 802708E0 0026C540 2C 03 00 00 */ cmpwi r3, 0
+/* 802708E4 0026C544 40 82 00 0C */ bne lbl_802708F0
+/* 802708E8 0026C548 38 00 00 00 */ li r0, 0
+/* 802708EC 0026C54C 48 00 00 B4 */ b lbl_802709A0
+lbl_802708F0:
+/* 802708F0 0026C550 38 60 00 00 */ li r3, 0
+/* 802708F4 0026C554 38 80 00 01 */ li r4, 1
+/* 802708F8 0026C558 38 A0 00 03 */ li r5, 3
+/* 802708FC 0026C55C 48 00 47 B5 */ bl func_802750B0
+/* 80270900 0026C560 2C 03 00 00 */ cmpwi r3, 0
+/* 80270904 0026C564 40 82 00 14 */ bne lbl_80270918
+/* 80270908 0026C568 38 60 00 00 */ li r3, 0
+/* 8027090C 0026C56C 48 00 50 35 */ bl func_80275940
+/* 80270910 0026C570 38 00 00 00 */ li r0, 0
+/* 80270914 0026C574 48 00 00 8C */ b lbl_802709A0
+lbl_80270918:
+/* 80270918 0026C578 57 E3 30 32 */ slwi r3, r31, 6
+/* 8027091C 0026C57C 38 81 00 08 */ addi r4, r1, 8
+/* 80270920 0026C580 38 03 01 00 */ addi r0, r3, 0x100
+/* 80270924 0026C584 38 A0 00 04 */ li r5, 4
+/* 80270928 0026C588 64 00 A0 00 */ oris r0, r0, 0xa000
+/* 8027092C 0026C58C 38 60 00 00 */ li r3, 0
+/* 80270930 0026C590 90 01 00 08 */ stw r0, 8(r1)
+/* 80270934 0026C594 38 C0 00 01 */ li r6, 1
+/* 80270938 0026C598 38 E0 00 00 */ li r7, 0
+/* 8027093C 0026C59C 48 00 3D 0D */ bl func_80274648
+/* 80270940 0026C5A0 7C 60 00 34 */ cntlzw r0, r3
+/* 80270944 0026C5A4 38 60 00 00 */ li r3, 0
+/* 80270948 0026C5A8 54 1F D9 7E */ srwi r31, r0, 5
+/* 8027094C 0026C5AC 48 00 41 15 */ bl func_80274A60
+/* 80270950 0026C5B0 7C 60 00 34 */ cntlzw r0, r3
+/* 80270954 0026C5B4 7F C4 F3 78 */ mr r4, r30
+/* 80270958 0026C5B8 54 00 D9 7E */ srwi r0, r0, 5
+/* 8027095C 0026C5BC 7F A5 EB 78 */ mr r5, r29
+/* 80270960 0026C5C0 7F FD 03 78 */ or r29, r31, r0
+/* 80270964 0026C5C4 38 60 00 00 */ li r3, 0
+/* 80270968 0026C5C8 38 C0 00 01 */ li r6, 1
+/* 8027096C 0026C5CC 48 00 3F 59 */ bl func_802748C4
+/* 80270970 0026C5D0 7C 60 00 34 */ cntlzw r0, r3
+/* 80270974 0026C5D4 38 60 00 00 */ li r3, 0
+/* 80270978 0026C5D8 54 00 D9 7E */ srwi r0, r0, 5
+/* 8027097C 0026C5DC 7F BD 03 78 */ or r29, r29, r0
+/* 80270980 0026C5E0 48 00 48 61 */ bl func_802751E0
+/* 80270984 0026C5E4 7C 60 00 34 */ cntlzw r0, r3
+/* 80270988 0026C5E8 38 60 00 00 */ li r3, 0
+/* 8027098C 0026C5EC 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270990 0026C5F0 7F BD 03 78 */ or r29, r29, r0
+/* 80270994 0026C5F4 48 00 4F AD */ bl func_80275940
+/* 80270998 0026C5F8 7F A0 00 34 */ cntlzw r0, r29
+/* 8027099C 0026C5FC 54 00 D9 7E */ srwi r0, r0, 5
+lbl_802709A0:
+/* 802709A0 0026C600 3C 60 80 51 */ lis r3, lbl_80514780@ha
+/* 802709A4 0026C604 2C 00 00 00 */ cmpwi r0, 0
+/* 802709A8 0026C608 38 63 47 80 */ addi r3, r3, lbl_80514780@l
+/* 802709AC 0026C60C 90 03 00 4C */ stw r0, 0x4c(r3)
+/* 802709B0 0026C610 41 82 00 0C */ beq lbl_802709BC
+/* 802709B4 0026C614 38 00 00 40 */ li r0, 0x40
+/* 802709B8 0026C618 90 03 00 40 */ stw r0, 0x40(r3)
+lbl_802709BC:
+/* 802709BC 0026C61C 3F E0 80 51 */ lis r31, lbl_80514780@ha
+/* 802709C0 0026C620 38 00 00 00 */ li r0, 0
+/* 802709C4 0026C624 3B FF 47 80 */ addi r31, r31, lbl_80514780@l
+/* 802709C8 0026C628 90 1F 00 48 */ stw r0, 0x48(r31)
+/* 802709CC 0026C62C 80 7F 00 44 */ lwz r3, 0x44(r31)
+/* 802709D0 0026C630 4B FF DD B5 */ bl OSRestoreInterrupts
+/* 802709D4 0026C634 80 7F 00 4C */ lwz r3, 0x4c(r31)
+/* 802709D8 0026C638 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802709DC 0026C63C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802709E0 0026C640 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802709E4 0026C644 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802709E8 0026C648 7C 08 03 A6 */ mtlr r0
+/* 802709EC 0026C64C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802709F0 0026C650 4E 80 00 20 */ blr
+
+.global __OSSyncSram
+__OSSyncSram:
+/* 802709F4 0026C654 3C 60 80 51 */ lis r3, lbl_80514780@ha
+/* 802709F8 0026C658 38 63 47 80 */ addi r3, r3, lbl_80514780@l
+/* 802709FC 0026C65C 80 63 00 4C */ lwz r3, 0x4c(r3)
+/* 80270A00 0026C660 4E 80 00 20 */ blr
+
+.global __OSReadROM
+__OSReadROM:
+/* 80270A04 0026C664 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80270A08 0026C668 7C 08 02 A6 */ mflr r0
+/* 80270A0C 0026C66C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80270A10 0026C670 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80270A14 0026C674 7C BF 2B 78 */ mr r31, r5
+/* 80270A18 0026C678 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80270A1C 0026C67C 7C 9E 23 78 */ mr r30, r4
+/* 80270A20 0026C680 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80270A24 0026C684 7C 7D 1B 78 */ mr r29, r3
+/* 80270A28 0026C688 4B FF 9C 01 */ bl DCInvalidateRange
+/* 80270A2C 0026C68C 38 60 00 00 */ li r3, 0
+/* 80270A30 0026C690 38 80 00 01 */ li r4, 1
+/* 80270A34 0026C694 38 A0 00 00 */ li r5, 0
+/* 80270A38 0026C698 48 00 4E 0D */ bl func_80275844
+/* 80270A3C 0026C69C 2C 03 00 00 */ cmpwi r3, 0
+/* 80270A40 0026C6A0 40 82 00 0C */ bne lbl_80270A4C
+/* 80270A44 0026C6A4 38 60 00 00 */ li r3, 0
+/* 80270A48 0026C6A8 48 00 00 C4 */ b lbl_80270B0C
+lbl_80270A4C:
+/* 80270A4C 0026C6AC 38 60 00 00 */ li r3, 0
+/* 80270A50 0026C6B0 38 80 00 01 */ li r4, 1
+/* 80270A54 0026C6B4 38 A0 00 03 */ li r5, 3
+/* 80270A58 0026C6B8 48 00 46 59 */ bl func_802750B0
+/* 80270A5C 0026C6BC 2C 03 00 00 */ cmpwi r3, 0
+/* 80270A60 0026C6C0 40 82 00 14 */ bne lbl_80270A74
+/* 80270A64 0026C6C4 38 60 00 00 */ li r3, 0
+/* 80270A68 0026C6C8 48 00 4E D9 */ bl func_80275940
+/* 80270A6C 0026C6CC 38 60 00 00 */ li r3, 0
+/* 80270A70 0026C6D0 48 00 00 9C */ b lbl_80270B0C
+lbl_80270A74:
+/* 80270A74 0026C6D4 57 E0 30 32 */ slwi r0, r31, 6
+/* 80270A78 0026C6D8 38 81 00 08 */ addi r4, r1, 8
+/* 80270A7C 0026C6DC 90 01 00 08 */ stw r0, 8(r1)
+/* 80270A80 0026C6E0 38 60 00 00 */ li r3, 0
+/* 80270A84 0026C6E4 38 A0 00 04 */ li r5, 4
+/* 80270A88 0026C6E8 38 C0 00 01 */ li r6, 1
+/* 80270A8C 0026C6EC 38 E0 00 00 */ li r7, 0
+/* 80270A90 0026C6F0 48 00 3B B9 */ bl func_80274648
+/* 80270A94 0026C6F4 7C 60 00 34 */ cntlzw r0, r3
+/* 80270A98 0026C6F8 38 60 00 00 */ li r3, 0
+/* 80270A9C 0026C6FC 54 1F D9 7E */ srwi r31, r0, 5
+/* 80270AA0 0026C700 48 00 3F C1 */ bl func_80274A60
+/* 80270AA4 0026C704 7C 60 00 34 */ cntlzw r0, r3
+/* 80270AA8 0026C708 7F A4 EB 78 */ mr r4, r29
+/* 80270AAC 0026C70C 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270AB0 0026C710 7F C5 F3 78 */ mr r5, r30
+/* 80270AB4 0026C714 7F FF 03 78 */ or r31, r31, r0
+/* 80270AB8 0026C718 38 60 00 00 */ li r3, 0
+/* 80270ABC 0026C71C 38 C0 00 00 */ li r6, 0
+/* 80270AC0 0026C720 38 E0 00 00 */ li r7, 0
+/* 80270AC4 0026C724 48 00 3E A5 */ bl func_80274968
+/* 80270AC8 0026C728 7C 60 00 34 */ cntlzw r0, r3
+/* 80270ACC 0026C72C 38 60 00 00 */ li r3, 0
+/* 80270AD0 0026C730 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270AD4 0026C734 7F FF 03 78 */ or r31, r31, r0
+/* 80270AD8 0026C738 48 00 3F 89 */ bl func_80274A60
+/* 80270ADC 0026C73C 7C 60 00 34 */ cntlzw r0, r3
+/* 80270AE0 0026C740 38 60 00 00 */ li r3, 0
+/* 80270AE4 0026C744 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270AE8 0026C748 7F FF 03 78 */ or r31, r31, r0
+/* 80270AEC 0026C74C 48 00 46 F5 */ bl func_802751E0
+/* 80270AF0 0026C750 7C 60 00 34 */ cntlzw r0, r3
+/* 80270AF4 0026C754 38 60 00 00 */ li r3, 0
+/* 80270AF8 0026C758 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270AFC 0026C75C 7F FF 03 78 */ or r31, r31, r0
+/* 80270B00 0026C760 48 00 4E 41 */ bl func_80275940
+/* 80270B04 0026C764 7F E0 00 34 */ cntlzw r0, r31
+/* 80270B08 0026C768 54 03 D9 7E */ srwi r3, r0, 5
+lbl_80270B0C:
+/* 80270B0C 0026C76C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80270B10 0026C770 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80270B14 0026C774 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80270B18 0026C778 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80270B1C 0026C77C 7C 08 03 A6 */ mtlr r0
+/* 80270B20 0026C780 38 21 00 20 */ addi r1, r1, 0x20
+/* 80270B24 0026C784 4E 80 00 20 */ blr
+
+.global OSGetWirelessID
+OSGetWirelessID:
+/* 80270B28 0026C788 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80270B2C 0026C78C 7C 08 02 A6 */ mflr r0
+/* 80270B30 0026C790 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80270B34 0026C794 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80270B38 0026C798 7C 7F 1B 78 */ mr r31, r3
+/* 80270B3C 0026C79C 4B FF DC 21 */ bl OSDisableInterrupts
+/* 80270B40 0026C7A0 3C 80 80 51 */ lis r4, lbl_80514780@ha
+/* 80270B44 0026C7A4 38 84 47 80 */ addi r4, r4, lbl_80514780@l
+/* 80270B48 0026C7A8 80 04 00 48 */ lwz r0, 0x48(r4)
+/* 80270B4C 0026C7AC 2C 00 00 00 */ cmpwi r0, 0
+/* 80270B50 0026C7B0 41 82 00 10 */ beq lbl_80270B60
+/* 80270B54 0026C7B4 4B FF DC 31 */ bl OSRestoreInterrupts
+/* 80270B58 0026C7B8 38 A0 00 00 */ li r5, 0
+/* 80270B5C 0026C7BC 48 00 00 14 */ b lbl_80270B70
+lbl_80270B60:
+/* 80270B60 0026C7C0 38 00 00 01 */ li r0, 1
+/* 80270B64 0026C7C4 90 64 00 44 */ stw r3, 0x44(r4)
+/* 80270B68 0026C7C8 38 A4 00 14 */ addi r5, r4, 0x14
+/* 80270B6C 0026C7CC 90 04 00 48 */ stw r0, 0x48(r4)
+lbl_80270B70:
+/* 80270B70 0026C7D0 57 E0 08 3C */ slwi r0, r31, 1
+/* 80270B74 0026C7D4 38 60 00 00 */ li r3, 0
+/* 80270B78 0026C7D8 7C A5 02 14 */ add r5, r5, r0
+/* 80270B7C 0026C7DC 38 80 00 14 */ li r4, 0x14
+/* 80270B80 0026C7E0 A3 E5 00 1C */ lhz r31, 0x1c(r5)
+/* 80270B84 0026C7E4 4B FF FB 91 */ bl UnlockSram
+/* 80270B88 0026C7E8 7F E3 FB 78 */ mr r3, r31
+/* 80270B8C 0026C7EC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80270B90 0026C7F0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80270B94 0026C7F4 7C 08 03 A6 */ mtlr r0
+/* 80270B98 0026C7F8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80270B9C 0026C7FC 4E 80 00 20 */ blr
+
+.global OSSetWirelessID
+OSSetWirelessID:
+/* 80270BA0 0026C800 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80270BA4 0026C804 7C 08 02 A6 */ mflr r0
+/* 80270BA8 0026C808 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80270BAC 0026C80C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80270BB0 0026C810 7C 9F 23 78 */ mr r31, r4
+/* 80270BB4 0026C814 93 C1 00 08 */ stw r30, 8(r1)
+/* 80270BB8 0026C818 7C 7E 1B 78 */ mr r30, r3
+/* 80270BBC 0026C81C 4B FF DB A1 */ bl OSDisableInterrupts
+/* 80270BC0 0026C820 3C 80 80 51 */ lis r4, lbl_80514780@ha
+/* 80270BC4 0026C824 38 84 47 80 */ addi r4, r4, lbl_80514780@l
+/* 80270BC8 0026C828 80 04 00 48 */ lwz r0, 0x48(r4)
+/* 80270BCC 0026C82C 2C 00 00 00 */ cmpwi r0, 0
+/* 80270BD0 0026C830 41 82 00 10 */ beq lbl_80270BE0
+/* 80270BD4 0026C834 4B FF DB B1 */ bl OSRestoreInterrupts
+/* 80270BD8 0026C838 38 60 00 00 */ li r3, 0
+/* 80270BDC 0026C83C 48 00 00 14 */ b lbl_80270BF0
+lbl_80270BE0:
+/* 80270BE0 0026C840 38 00 00 01 */ li r0, 1
+/* 80270BE4 0026C844 90 64 00 44 */ stw r3, 0x44(r4)
+/* 80270BE8 0026C848 38 64 00 14 */ addi r3, r4, 0x14
+/* 80270BEC 0026C84C 90 04 00 48 */ stw r0, 0x48(r4)
+lbl_80270BF0:
+/* 80270BF0 0026C850 57 C0 08 3C */ slwi r0, r30, 1
+/* 80270BF4 0026C854 7C 63 02 14 */ add r3, r3, r0
+/* 80270BF8 0026C858 A0 03 00 1C */ lhz r0, 0x1c(r3)
+/* 80270BFC 0026C85C 7C 1F 00 40 */ cmplw r31, r0
+/* 80270C00 0026C860 41 82 00 18 */ beq lbl_80270C18
+/* 80270C04 0026C864 B3 E3 00 1C */ sth r31, 0x1c(r3)
+/* 80270C08 0026C868 38 60 00 01 */ li r3, 1
+/* 80270C0C 0026C86C 38 80 00 14 */ li r4, 0x14
+/* 80270C10 0026C870 4B FF FB 05 */ bl UnlockSram
+/* 80270C14 0026C874 48 00 00 10 */ b lbl_80270C24
+lbl_80270C18:
+/* 80270C18 0026C878 38 60 00 00 */ li r3, 0
+/* 80270C1C 0026C87C 38 80 00 14 */ li r4, 0x14
+/* 80270C20 0026C880 4B FF FA F5 */ bl UnlockSram
+lbl_80270C24:
+/* 80270C24 0026C884 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80270C28 0026C888 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80270C2C 0026C88C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80270C30 0026C890 7C 08 03 A6 */ mtlr r0
+/* 80270C34 0026C894 38 21 00 10 */ addi r1, r1, 0x10
+/* 80270C38 0026C898 4E 80 00 20 */ blr
+
+.global __OSGetRTCFlags
+__OSGetRTCFlags:
+/* 80270C3C 0026C89C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80270C40 0026C8A0 7C 08 02 A6 */ mflr r0
+/* 80270C44 0026C8A4 38 80 00 01 */ li r4, 1
+/* 80270C48 0026C8A8 38 A0 00 00 */ li r5, 0
+/* 80270C4C 0026C8AC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80270C50 0026C8B0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80270C54 0026C8B4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80270C58 0026C8B8 7C 7E 1B 78 */ mr r30, r3
+/* 80270C5C 0026C8BC 38 60 00 00 */ li r3, 0
+/* 80270C60 0026C8C0 48 00 4B E5 */ bl func_80275844
+/* 80270C64 0026C8C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80270C68 0026C8C8 40 82 00 0C */ bne lbl_80270C74
+/* 80270C6C 0026C8CC 38 60 00 00 */ li r3, 0
+/* 80270C70 0026C8D0 48 00 00 D0 */ b lbl_80270D40
+lbl_80270C74:
+/* 80270C74 0026C8D4 38 60 00 00 */ li r3, 0
+/* 80270C78 0026C8D8 38 80 00 01 */ li r4, 1
+/* 80270C7C 0026C8DC 38 A0 00 03 */ li r5, 3
+/* 80270C80 0026C8E0 48 00 44 31 */ bl func_802750B0
+/* 80270C84 0026C8E4 2C 03 00 00 */ cmpwi r3, 0
+/* 80270C88 0026C8E8 40 82 00 14 */ bne lbl_80270C9C
+/* 80270C8C 0026C8EC 38 60 00 00 */ li r3, 0
+/* 80270C90 0026C8F0 48 00 4C B1 */ bl func_80275940
+/* 80270C94 0026C8F4 38 60 00 00 */ li r3, 0
+/* 80270C98 0026C8F8 48 00 00 A8 */ b lbl_80270D40
+lbl_80270C9C:
+/* 80270C9C 0026C8FC 3C 60 21 00 */ lis r3, 0x21000800@ha
+/* 80270CA0 0026C900 38 81 00 08 */ addi r4, r1, 8
+/* 80270CA4 0026C904 38 03 08 00 */ addi r0, r3, 0x21000800@l
+/* 80270CA8 0026C908 38 A0 00 04 */ li r5, 4
+/* 80270CAC 0026C90C 90 01 00 08 */ stw r0, 8(r1)
+/* 80270CB0 0026C910 38 60 00 00 */ li r3, 0
+/* 80270CB4 0026C914 38 C0 00 01 */ li r6, 1
+/* 80270CB8 0026C918 38 E0 00 00 */ li r7, 0
+/* 80270CBC 0026C91C 48 00 39 8D */ bl func_80274648
+/* 80270CC0 0026C920 7C 60 00 34 */ cntlzw r0, r3
+/* 80270CC4 0026C924 38 60 00 00 */ li r3, 0
+/* 80270CC8 0026C928 54 1F D9 7E */ srwi r31, r0, 5
+/* 80270CCC 0026C92C 48 00 3D 95 */ bl func_80274A60
+/* 80270CD0 0026C930 7C 60 00 34 */ cntlzw r0, r3
+/* 80270CD4 0026C934 38 81 00 08 */ addi r4, r1, 8
+/* 80270CD8 0026C938 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270CDC 0026C93C 38 60 00 00 */ li r3, 0
+/* 80270CE0 0026C940 7F FF 03 78 */ or r31, r31, r0
+/* 80270CE4 0026C944 38 A0 00 04 */ li r5, 4
+/* 80270CE8 0026C948 38 C0 00 00 */ li r6, 0
+/* 80270CEC 0026C94C 38 E0 00 00 */ li r7, 0
+/* 80270CF0 0026C950 48 00 39 59 */ bl func_80274648
+/* 80270CF4 0026C954 7C 60 00 34 */ cntlzw r0, r3
+/* 80270CF8 0026C958 38 60 00 00 */ li r3, 0
+/* 80270CFC 0026C95C 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270D00 0026C960 7F FF 03 78 */ or r31, r31, r0
+/* 80270D04 0026C964 48 00 3D 5D */ bl func_80274A60
+/* 80270D08 0026C968 7C 60 00 34 */ cntlzw r0, r3
+/* 80270D0C 0026C96C 38 60 00 00 */ li r3, 0
+/* 80270D10 0026C970 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270D14 0026C974 7F FF 03 78 */ or r31, r31, r0
+/* 80270D18 0026C978 48 00 44 C9 */ bl func_802751E0
+/* 80270D1C 0026C97C 7C 60 00 34 */ cntlzw r0, r3
+/* 80270D20 0026C980 38 60 00 00 */ li r3, 0
+/* 80270D24 0026C984 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270D28 0026C988 7F FF 03 78 */ or r31, r31, r0
+/* 80270D2C 0026C98C 48 00 4C 15 */ bl func_80275940
+/* 80270D30 0026C990 80 81 00 08 */ lwz r4, 8(r1)
+/* 80270D34 0026C994 7F E0 00 34 */ cntlzw r0, r31
+/* 80270D38 0026C998 54 03 D9 7E */ srwi r3, r0, 5
+/* 80270D3C 0026C99C 90 9E 00 00 */ stw r4, 0(r30)
+lbl_80270D40:
+/* 80270D40 0026C9A0 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80270D44 0026C9A4 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80270D48 0026C9A8 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80270D4C 0026C9AC 7C 08 03 A6 */ mtlr r0
+/* 80270D50 0026C9B0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80270D54 0026C9B4 4E 80 00 20 */ blr
+
+.global __OSClearRTCFlags
+__OSClearRTCFlags:
+/* 80270D58 0026C9B8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80270D5C 0026C9BC 7C 08 02 A6 */ mflr r0
+/* 80270D60 0026C9C0 38 60 00 00 */ li r3, 0
+/* 80270D64 0026C9C4 38 80 00 01 */ li r4, 1
+/* 80270D68 0026C9C8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80270D6C 0026C9CC 38 00 00 00 */ li r0, 0
+/* 80270D70 0026C9D0 38 A0 00 00 */ li r5, 0
+/* 80270D74 0026C9D4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80270D78 0026C9D8 90 01 00 08 */ stw r0, 8(r1)
+/* 80270D7C 0026C9DC 48 00 4A C9 */ bl func_80275844
+/* 80270D80 0026C9E0 2C 03 00 00 */ cmpwi r3, 0
+/* 80270D84 0026C9E4 40 82 00 0C */ bne lbl_80270D90
+/* 80270D88 0026C9E8 38 60 00 00 */ li r3, 0
+/* 80270D8C 0026C9EC 48 00 00 C8 */ b lbl_80270E54
+lbl_80270D90:
+/* 80270D90 0026C9F0 38 60 00 00 */ li r3, 0
+/* 80270D94 0026C9F4 38 80 00 01 */ li r4, 1
+/* 80270D98 0026C9F8 38 A0 00 03 */ li r5, 3
+/* 80270D9C 0026C9FC 48 00 43 15 */ bl func_802750B0
+/* 80270DA0 0026CA00 2C 03 00 00 */ cmpwi r3, 0
+/* 80270DA4 0026CA04 40 82 00 14 */ bne lbl_80270DB8
+/* 80270DA8 0026CA08 38 60 00 00 */ li r3, 0
+/* 80270DAC 0026CA0C 48 00 4B 95 */ bl func_80275940
+/* 80270DB0 0026CA10 38 60 00 00 */ li r3, 0
+/* 80270DB4 0026CA14 48 00 00 A0 */ b lbl_80270E54
+lbl_80270DB8:
+/* 80270DB8 0026CA18 3C 60 A1 00 */ lis r3, 0xA1000800@ha
+/* 80270DBC 0026CA1C 38 81 00 0C */ addi r4, r1, 0xc
+/* 80270DC0 0026CA20 38 03 08 00 */ addi r0, r3, 0xA1000800@l
+/* 80270DC4 0026CA24 38 A0 00 04 */ li r5, 4
+/* 80270DC8 0026CA28 90 01 00 0C */ stw r0, 0xc(r1)
+/* 80270DCC 0026CA2C 38 60 00 00 */ li r3, 0
+/* 80270DD0 0026CA30 38 C0 00 01 */ li r6, 1
+/* 80270DD4 0026CA34 38 E0 00 00 */ li r7, 0
+/* 80270DD8 0026CA38 48 00 38 71 */ bl func_80274648
+/* 80270DDC 0026CA3C 7C 60 00 34 */ cntlzw r0, r3
+/* 80270DE0 0026CA40 38 60 00 00 */ li r3, 0
+/* 80270DE4 0026CA44 54 1F D9 7E */ srwi r31, r0, 5
+/* 80270DE8 0026CA48 48 00 3C 79 */ bl func_80274A60
+/* 80270DEC 0026CA4C 7C 60 00 34 */ cntlzw r0, r3
+/* 80270DF0 0026CA50 38 81 00 08 */ addi r4, r1, 8
+/* 80270DF4 0026CA54 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270DF8 0026CA58 38 60 00 00 */ li r3, 0
+/* 80270DFC 0026CA5C 7F FF 03 78 */ or r31, r31, r0
+/* 80270E00 0026CA60 38 A0 00 04 */ li r5, 4
+/* 80270E04 0026CA64 38 C0 00 01 */ li r6, 1
+/* 80270E08 0026CA68 38 E0 00 00 */ li r7, 0
+/* 80270E0C 0026CA6C 48 00 38 3D */ bl func_80274648
+/* 80270E10 0026CA70 7C 60 00 34 */ cntlzw r0, r3
+/* 80270E14 0026CA74 38 60 00 00 */ li r3, 0
+/* 80270E18 0026CA78 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270E1C 0026CA7C 7F FF 03 78 */ or r31, r31, r0
+/* 80270E20 0026CA80 48 00 3C 41 */ bl func_80274A60
+/* 80270E24 0026CA84 7C 60 00 34 */ cntlzw r0, r3
+/* 80270E28 0026CA88 38 60 00 00 */ li r3, 0
+/* 80270E2C 0026CA8C 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270E30 0026CA90 7F FF 03 78 */ or r31, r31, r0
+/* 80270E34 0026CA94 48 00 43 AD */ bl func_802751E0
+/* 80270E38 0026CA98 7C 60 00 34 */ cntlzw r0, r3
+/* 80270E3C 0026CA9C 38 60 00 00 */ li r3, 0
+/* 80270E40 0026CAA0 54 00 D9 7E */ srwi r0, r0, 5
+/* 80270E44 0026CAA4 7F FF 03 78 */ or r31, r31, r0
+/* 80270E48 0026CAA8 48 00 4A F9 */ bl func_80275940
+/* 80270E4C 0026CAAC 7F E0 00 34 */ cntlzw r0, r31
+/* 80270E50 0026CAB0 54 03 D9 7E */ srwi r3, r0, 5
+lbl_80270E54:
+/* 80270E54 0026CAB4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80270E58 0026CAB8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80270E5C 0026CABC 7C 08 03 A6 */ mtlr r0
+/* 80270E60 0026CAC0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80270E64 0026CAC4 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSSemaphore.s b/asm/SDK/OS/OSSemaphore.s new file mode 100644 index 0000000..404f964 --- /dev/null +++ b/asm/SDK/OS/OSSemaphore.s @@ -0,0 +1,112 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSInitSemaphore
+OSInitSemaphore:
+/* 80270E68 0026CAC8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80270E6C 0026CACC 7C 08 02 A6 */ mflr r0
+/* 80270E70 0026CAD0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80270E74 0026CAD4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80270E78 0026CAD8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80270E7C 0026CADC 7C 9E 23 78 */ mr r30, r4
+/* 80270E80 0026CAE0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80270E84 0026CAE4 7C 7D 1B 78 */ mr r29, r3
+/* 80270E88 0026CAE8 4B FF D8 D5 */ bl OSDisableInterrupts
+/* 80270E8C 0026CAEC 7C 7F 1B 78 */ mr r31, r3
+/* 80270E90 0026CAF0 38 7D 00 04 */ addi r3, r29, 4
+/* 80270E94 0026CAF4 48 00 04 55 */ bl OSInitThreadQueue
+/* 80270E98 0026CAF8 93 DD 00 00 */ stw r30, 0(r29)
+/* 80270E9C 0026CAFC 7F E3 FB 78 */ mr r3, r31
+/* 80270EA0 0026CB00 4B FF D8 E5 */ bl OSRestoreInterrupts
+/* 80270EA4 0026CB04 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80270EA8 0026CB08 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80270EAC 0026CB0C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80270EB0 0026CB10 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80270EB4 0026CB14 7C 08 03 A6 */ mtlr r0
+/* 80270EB8 0026CB18 38 21 00 20 */ addi r1, r1, 0x20
+/* 80270EBC 0026CB1C 4E 80 00 20 */ blr
+
+.global OSWaitSemaphore
+OSWaitSemaphore:
+/* 80270EC0 0026CB20 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80270EC4 0026CB24 7C 08 02 A6 */ mflr r0
+/* 80270EC8 0026CB28 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80270ECC 0026CB2C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80270ED0 0026CB30 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80270ED4 0026CB34 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80270ED8 0026CB38 7C 7D 1B 78 */ mr r29, r3
+/* 80270EDC 0026CB3C 4B FF D8 81 */ bl OSDisableInterrupts
+/* 80270EE0 0026CB40 7C 7F 1B 78 */ mr r31, r3
+/* 80270EE4 0026CB44 48 00 00 0C */ b lbl_80270EF0
+lbl_80270EE8:
+/* 80270EE8 0026CB48 38 7D 00 04 */ addi r3, r29, 4
+/* 80270EEC 0026CB4C 48 00 14 89 */ bl OSSleepThread
+lbl_80270EF0:
+/* 80270EF0 0026CB50 83 DD 00 00 */ lwz r30, 0(r29)
+/* 80270EF4 0026CB54 2C 1E 00 00 */ cmpwi r30, 0
+/* 80270EF8 0026CB58 40 81 FF F0 */ ble lbl_80270EE8
+/* 80270EFC 0026CB5C 80 9D 00 00 */ lwz r4, 0(r29)
+/* 80270F00 0026CB60 7F E3 FB 78 */ mr r3, r31
+/* 80270F04 0026CB64 38 04 FF FF */ addi r0, r4, -1
+/* 80270F08 0026CB68 90 1D 00 00 */ stw r0, 0(r29)
+/* 80270F0C 0026CB6C 4B FF D8 79 */ bl OSRestoreInterrupts
+/* 80270F10 0026CB70 7F C3 F3 78 */ mr r3, r30
+/* 80270F14 0026CB74 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80270F18 0026CB78 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80270F1C 0026CB7C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80270F20 0026CB80 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80270F24 0026CB84 7C 08 03 A6 */ mtlr r0
+/* 80270F28 0026CB88 38 21 00 20 */ addi r1, r1, 0x20
+/* 80270F2C 0026CB8C 4E 80 00 20 */ blr
+
+.global OSTryWaitSemaphore
+OSTryWaitSemaphore:
+/* 80270F30 0026CB90 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80270F34 0026CB94 7C 08 02 A6 */ mflr r0
+/* 80270F38 0026CB98 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80270F3C 0026CB9C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80270F40 0026CBA0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80270F44 0026CBA4 7C 7E 1B 78 */ mr r30, r3
+/* 80270F48 0026CBA8 4B FF D8 15 */ bl OSDisableInterrupts
+/* 80270F4C 0026CBAC 83 FE 00 00 */ lwz r31, 0(r30)
+/* 80270F50 0026CBB0 2C 1F 00 00 */ cmpwi r31, 0
+/* 80270F54 0026CBB4 40 81 00 0C */ ble lbl_80270F60
+/* 80270F58 0026CBB8 38 1F FF FF */ addi r0, r31, -1
+/* 80270F5C 0026CBBC 90 1E 00 00 */ stw r0, 0(r30)
+lbl_80270F60:
+/* 80270F60 0026CBC0 4B FF D8 25 */ bl OSRestoreInterrupts
+/* 80270F64 0026CBC4 7F E3 FB 78 */ mr r3, r31
+/* 80270F68 0026CBC8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80270F6C 0026CBCC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80270F70 0026CBD0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80270F74 0026CBD4 7C 08 03 A6 */ mtlr r0
+/* 80270F78 0026CBD8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80270F7C 0026CBDC 4E 80 00 20 */ blr
+
+.global OSSignalSemaphore
+OSSignalSemaphore:
+/* 80270F80 0026CBE0 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80270F84 0026CBE4 7C 08 02 A6 */ mflr r0
+/* 80270F88 0026CBE8 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80270F8C 0026CBEC 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80270F90 0026CBF0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80270F94 0026CBF4 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80270F98 0026CBF8 7C 7D 1B 78 */ mr r29, r3
+/* 80270F9C 0026CBFC 4B FF D7 C1 */ bl OSDisableInterrupts
+/* 80270FA0 0026CC00 83 DD 00 00 */ lwz r30, 0(r29)
+/* 80270FA4 0026CC04 7C 7F 1B 78 */ mr r31, r3
+/* 80270FA8 0026CC08 38 7D 00 04 */ addi r3, r29, 4
+/* 80270FAC 0026CC0C 38 1E 00 01 */ addi r0, r30, 1
+/* 80270FB0 0026CC10 90 1D 00 00 */ stw r0, 0(r29)
+/* 80270FB4 0026CC14 48 00 14 AD */ bl OSWakeupThread
+/* 80270FB8 0026CC18 7F E3 FB 78 */ mr r3, r31
+/* 80270FBC 0026CC1C 4B FF D7 C9 */ bl OSRestoreInterrupts
+/* 80270FC0 0026CC20 7F C3 F3 78 */ mr r3, r30
+/* 80270FC4 0026CC24 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80270FC8 0026CC28 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80270FCC 0026CC2C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80270FD0 0026CC30 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80270FD4 0026CC34 7C 08 03 A6 */ mtlr r0
+/* 80270FD8 0026CC38 38 21 00 20 */ addi r1, r1, 0x20
+/* 80270FDC 0026CC3C 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSSync.s b/asm/SDK/OS/OSSync.s new file mode 100644 index 0000000..d3db855 --- /dev/null +++ b/asm/SDK/OS/OSSync.s @@ -0,0 +1,44 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global SystemCallVector
+SystemCallVector:
+/* 80270FE0 0026CC40 7D 30 FA A6 */ mfspr r9, 0x3f0
+/* 80270FE4 0026CC44 61 2A 00 08 */ ori r10, r9, 8
+/* 80270FE8 0026CC48 7D 50 FB A6 */ mtspr 0x3f0, r10
+/* 80270FEC 0026CC4C 4C 00 01 2C */ isync
+/* 80270FF0 0026CC50 7C 00 04 AC */ sync 0
+/* 80270FF4 0026CC54 7D 30 FB A6 */ mtspr 0x3f0, r9
+/* 80270FF8 0026CC58 4C 00 00 64 */ rfi
+
+.global __OSSystemCallVectorEnd
+__OSSystemCallVectorEnd:
+/* 80270FFC 0026CC5C 60 00 00 00 */ nop
+
+.global __OSInitSystemCall
+__OSInitSystemCall:
+/* 80271000 0026CC60 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271004 0026CC64 7C 08 02 A6 */ mflr r0
+/* 80271008 0026CC68 3C 80 80 27 */ lis r4, SystemCallVector@ha
+/* 8027100C 0026CC6C 3C A0 80 27 */ lis r5, __OSSystemCallVectorEnd@ha
+/* 80271010 0026CC70 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80271014 0026CC74 38 84 0F E0 */ addi r4, r4, SystemCallVector@l
+/* 80271018 0026CC78 38 A5 0F FC */ addi r5, r5, __OSSystemCallVectorEnd@l
+/* 8027101C 0026CC7C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80271020 0026CC80 3F E0 80 00 */ lis r31, 0x80000C00@ha
+/* 80271024 0026CC84 38 7F 0C 00 */ addi r3, r31, 0x80000C00@l
+/* 80271028 0026CC88 7C A4 28 50 */ subf r5, r4, r5
+/* 8027102C 0026CC8C 4B D9 2F D5 */ bl memcpy
+/* 80271030 0026CC90 38 7F 0C 00 */ addi r3, r31, 0xc00
+/* 80271034 0026CC94 38 80 01 00 */ li r4, 0x100
+/* 80271038 0026CC98 4B FF 96 7D */ bl DCFlushRangeNoSync
+/* 8027103C 0026CC9C 7C 00 04 AC */ sync 0
+/* 80271040 0026CCA0 38 7F 0C 00 */ addi r3, r31, 0xc00
+/* 80271044 0026CCA4 38 80 01 00 */ li r4, 0x100
+/* 80271048 0026CCA8 4B FF 96 F1 */ bl ICInvalidateRange
+/* 8027104C 0026CCAC 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80271050 0026CCB0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80271054 0026CCB4 7C 08 03 A6 */ mtlr r0
+/* 80271058 0026CCB8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027105C 0026CCBC 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSThread.s b/asm/SDK/OS/OSThread.s new file mode 100644 index 0000000..a98f9a9 --- /dev/null +++ b/asm/SDK/OS/OSThread.s @@ -0,0 +1,1758 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global DefaultSwitchThreadCallback
+DefaultSwitchThreadCallback:
+/* 80271060 0026CCC0 4E 80 00 20 */ blr
+
+.global __OSThreadInit
+__OSThreadInit:
+/* 80271064 0026CCC4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80271068 0026CCC8 7C 08 02 A6 */ mflr r0
+/* 8027106C 0026CCCC 38 60 00 02 */ li r3, 2
+/* 80271070 0026CCD0 38 C0 00 01 */ li r6, 1
+/* 80271074 0026CCD4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80271078 0026CCD8 38 80 00 00 */ li r4, 0
+/* 8027107C 0026CCDC 38 A0 00 10 */ li r5, 0x10
+/* 80271080 0026CCE0 38 00 FF FF */ li r0, -1
+/* 80271084 0026CCE4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80271088 0026CCE8 3F E0 80 51 */ lis r31, lbl_805147D8@ha
+/* 8027108C 0026CCEC 3B FF 47 D8 */ addi r31, r31, lbl_805147D8@l
+/* 80271090 0026CCF0 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80271094 0026CCF4 3B DF 00 00 */ addi r30, r31, 0
+/* 80271098 0026CCF8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8027109C 0026CCFC 3F A0 80 00 */ lis r29, 0x800000D8@ha
+/* 802710A0 0026CD00 B0 7E 02 C8 */ sth r3, 0x2c8(r30)
+/* 802710A4 0026CD04 7F C3 F3 78 */ mr r3, r30
+/* 802710A8 0026CD08 B0 DE 02 CA */ sth r6, 0x2ca(r30)
+/* 802710AC 0026CD0C 90 BE 02 D4 */ stw r5, 0x2d4(r30)
+/* 802710B0 0026CD10 90 BE 02 D0 */ stw r5, 0x2d0(r30)
+/* 802710B4 0026CD14 90 9E 02 CC */ stw r4, 0x2cc(r30)
+/* 802710B8 0026CD18 90 1E 02 D8 */ stw r0, 0x2d8(r30)
+/* 802710BC 0026CD1C 90 9E 02 F0 */ stw r4, 0x2f0(r30)
+/* 802710C0 0026CD20 90 9E 02 EC */ stw r4, 0x2ec(r30)
+/* 802710C4 0026CD24 90 9E 02 E8 */ stw r4, 0x2e8(r30)
+/* 802710C8 0026CD28 90 9E 02 F8 */ stw r4, 0x2f8(r30)
+/* 802710CC 0026CD2C 90 9E 02 F4 */ stw r4, 0x2f4(r30)
+/* 802710D0 0026CD30 93 DD 00 D8 */ stw r30, 0x800000D8@l(r29)
+/* 802710D4 0026CD34 4B FF 9F BD */ bl OSClearContext
+/* 802710D8 0026CD38 7F C3 F3 78 */ mr r3, r30
+/* 802710DC 0026CD3C 4B FF 9D 8D */ bl OSSetCurrentContext
+/* 802710E0 0026CD40 3C 80 80 65 */ lis r4, 0x80653050@ha
+/* 802710E4 0026CD44 3C A0 80 64 */ lis r5, 0x80643050@ha
+/* 802710E8 0026CD48 38 84 30 50 */ addi r4, r4, 0x80653050@l
+/* 802710EC 0026CD4C 3C 60 DE AE */ lis r3, 0xDEADBABE@ha
+/* 802710F0 0026CD50 38 A5 30 50 */ addi r5, r5, 0x80643050@l
+/* 802710F4 0026CD54 90 9E 03 04 */ stw r4, 0x304(r30)
+/* 802710F8 0026CD58 38 03 BA BE */ addi r0, r3, 0xDEADBABE@l
+/* 802710FC 0026CD5C 7F C4 F3 78 */ mr r4, r30
+/* 80271100 0026CD60 90 BE 03 08 */ stw r5, 0x308(r30)
+/* 80271104 0026CD64 90 05 00 00 */ stw r0, 0(r5)
+/* 80271108 0026CD68 81 8D 87 E0 */ lwz r12, lbl_8063DAA0-_SDA_BASE_(r13)
+/* 8027110C 0026CD6C 80 7D 00 E4 */ lwz r3, 0xe4(r29)
+/* 80271110 0026CD70 7D 89 03 A6 */ mtctr r12
+/* 80271114 0026CD74 4E 80 04 21 */ bctrl
+/* 80271118 0026CD78 93 DD 00 E4 */ stw r30, 0xe4(r29)
+/* 8027111C 0026CD7C 4B FF 9F 0D */ bl OSGetStackPointer
+/* 80271120 0026CD80 80 9D 00 E4 */ lwz r4, 0xe4(r29)
+/* 80271124 0026CD84 80 84 03 08 */ lwz r4, 0x308(r4)
+/* 80271128 0026CD88 39 04 00 04 */ addi r8, r4, 4
+/* 8027112C 0026CD8C 7C 88 18 40 */ cmplw cr1, r8, r3
+/* 80271130 0026CD90 40 84 00 C0 */ bge cr1, lbl_802711F0
+/* 80271134 0026CD94 7C A8 18 50 */ subf r5, r8, r3
+/* 80271138 0026CD98 38 C3 FF E0 */ addi r6, r3, -32
+/* 8027113C 0026CD9C 38 85 00 03 */ addi r4, r5, 3
+/* 80271140 0026CDA0 7C 80 16 70 */ srawi r0, r4, 2
+/* 80271144 0026CDA4 7C 00 01 94 */ addze r0, r0
+/* 80271148 0026CDA8 2C 00 00 08 */ cmpwi r0, 8
+/* 8027114C 0026CDAC 40 81 00 7C */ ble lbl_802711C8
+/* 80271150 0026CDB0 38 E0 00 00 */ li r7, 0
+/* 80271154 0026CDB4 41 85 00 28 */ bgt cr1, lbl_8027117C
+/* 80271158 0026CDB8 54 A0 00 01 */ rlwinm. r0, r5, 0, 0, 0
+/* 8027115C 0026CDBC 38 A0 00 01 */ li r5, 1
+/* 80271160 0026CDC0 40 82 00 10 */ bne lbl_80271170
+/* 80271164 0026CDC4 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0
+/* 80271168 0026CDC8 41 82 00 08 */ beq lbl_80271170
+/* 8027116C 0026CDCC 38 A0 00 00 */ li r5, 0
+lbl_80271170:
+/* 80271170 0026CDD0 2C 05 00 00 */ cmpwi r5, 0
+/* 80271174 0026CDD4 41 82 00 08 */ beq lbl_8027117C
+/* 80271178 0026CDD8 38 E0 00 01 */ li r7, 1
+lbl_8027117C:
+/* 8027117C 0026CDDC 2C 07 00 00 */ cmpwi r7, 0
+/* 80271180 0026CDE0 41 82 00 48 */ beq lbl_802711C8
+/* 80271184 0026CDE4 38 06 00 1F */ addi r0, r6, 0x1f
+/* 80271188 0026CDE8 38 80 00 00 */ li r4, 0
+/* 8027118C 0026CDEC 7C 08 00 50 */ subf r0, r8, r0
+/* 80271190 0026CDF0 54 00 D9 7E */ srwi r0, r0, 5
+/* 80271194 0026CDF4 7C 09 03 A6 */ mtctr r0
+/* 80271198 0026CDF8 7C 08 30 40 */ cmplw r8, r6
+/* 8027119C 0026CDFC 40 80 00 2C */ bge lbl_802711C8
+lbl_802711A0:
+/* 802711A0 0026CE00 90 88 00 00 */ stw r4, 0(r8)
+/* 802711A4 0026CE04 90 88 00 04 */ stw r4, 4(r8)
+/* 802711A8 0026CE08 90 88 00 08 */ stw r4, 8(r8)
+/* 802711AC 0026CE0C 90 88 00 0C */ stw r4, 0xc(r8)
+/* 802711B0 0026CE10 90 88 00 10 */ stw r4, 0x10(r8)
+/* 802711B4 0026CE14 90 88 00 14 */ stw r4, 0x14(r8)
+/* 802711B8 0026CE18 90 88 00 18 */ stw r4, 0x18(r8)
+/* 802711BC 0026CE1C 90 88 00 1C */ stw r4, 0x1c(r8)
+/* 802711C0 0026CE20 39 08 00 20 */ addi r8, r8, 0x20
+/* 802711C4 0026CE24 42 00 FF DC */ bdnz lbl_802711A0
+lbl_802711C8:
+/* 802711C8 0026CE28 38 03 00 03 */ addi r0, r3, 3
+/* 802711CC 0026CE2C 38 80 00 00 */ li r4, 0
+/* 802711D0 0026CE30 7C 08 00 50 */ subf r0, r8, r0
+/* 802711D4 0026CE34 54 00 F0 BE */ srwi r0, r0, 2
+/* 802711D8 0026CE38 7C 09 03 A6 */ mtctr r0
+/* 802711DC 0026CE3C 7C 08 18 40 */ cmplw r8, r3
+/* 802711E0 0026CE40 40 80 00 10 */ bge lbl_802711F0
+lbl_802711E4:
+/* 802711E4 0026CE44 90 88 00 00 */ stw r4, 0(r8)
+/* 802711E8 0026CE48 39 08 00 04 */ addi r8, r8, 4
+/* 802711EC 0026CE4C 42 00 FF F8 */ bdnz lbl_802711E4
+lbl_802711F0:
+/* 802711F0 0026CE50 38 60 00 00 */ li r3, 0
+/* 802711F4 0026CE54 38 00 00 02 */ li r0, 2
+/* 802711F8 0026CE58 90 6D A8 30 */ stw r3, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 802711FC 0026CE5C 38 9F 03 18 */ addi r4, r31, 0x318
+/* 80271200 0026CE60 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80271204 0026CE64 7C 09 03 A6 */ mtctr r0
+lbl_80271208:
+/* 80271208 0026CE68 90 64 00 04 */ stw r3, 4(r4)
+/* 8027120C 0026CE6C 90 64 00 00 */ stw r3, 0(r4)
+/* 80271210 0026CE70 90 64 00 0C */ stw r3, 0xc(r4)
+/* 80271214 0026CE74 90 64 00 08 */ stw r3, 8(r4)
+/* 80271218 0026CE78 90 64 00 14 */ stw r3, 0x14(r4)
+/* 8027121C 0026CE7C 90 64 00 10 */ stw r3, 0x10(r4)
+/* 80271220 0026CE80 90 64 00 1C */ stw r3, 0x1c(r4)
+/* 80271224 0026CE84 90 64 00 18 */ stw r3, 0x18(r4)
+/* 80271228 0026CE88 90 64 00 24 */ stw r3, 0x24(r4)
+/* 8027122C 0026CE8C 90 64 00 20 */ stw r3, 0x20(r4)
+/* 80271230 0026CE90 90 64 00 2C */ stw r3, 0x2c(r4)
+/* 80271234 0026CE94 90 64 00 28 */ stw r3, 0x28(r4)
+/* 80271238 0026CE98 90 64 00 34 */ stw r3, 0x34(r4)
+/* 8027123C 0026CE9C 90 64 00 30 */ stw r3, 0x30(r4)
+/* 80271240 0026CEA0 90 64 00 3C */ stw r3, 0x3c(r4)
+/* 80271244 0026CEA4 90 64 00 38 */ stw r3, 0x38(r4)
+/* 80271248 0026CEA8 90 64 00 44 */ stw r3, 0x44(r4)
+/* 8027124C 0026CEAC 90 64 00 40 */ stw r3, 0x40(r4)
+/* 80271250 0026CEB0 90 64 00 4C */ stw r3, 0x4c(r4)
+/* 80271254 0026CEB4 90 64 00 48 */ stw r3, 0x48(r4)
+/* 80271258 0026CEB8 90 64 00 54 */ stw r3, 0x54(r4)
+/* 8027125C 0026CEBC 90 64 00 50 */ stw r3, 0x50(r4)
+/* 80271260 0026CEC0 90 64 00 5C */ stw r3, 0x5c(r4)
+/* 80271264 0026CEC4 90 64 00 58 */ stw r3, 0x58(r4)
+/* 80271268 0026CEC8 90 64 00 64 */ stw r3, 0x64(r4)
+/* 8027126C 0026CECC 90 64 00 60 */ stw r3, 0x60(r4)
+/* 80271270 0026CED0 90 64 00 6C */ stw r3, 0x6c(r4)
+/* 80271274 0026CED4 90 64 00 68 */ stw r3, 0x68(r4)
+/* 80271278 0026CED8 90 64 00 74 */ stw r3, 0x74(r4)
+/* 8027127C 0026CEDC 90 64 00 70 */ stw r3, 0x70(r4)
+/* 80271280 0026CEE0 90 64 00 7C */ stw r3, 0x7c(r4)
+/* 80271284 0026CEE4 90 64 00 78 */ stw r3, 0x78(r4)
+/* 80271288 0026CEE8 38 84 00 80 */ addi r4, r4, 0x80
+/* 8027128C 0026CEEC 42 00 FF 7C */ bdnz lbl_80271208
+/* 80271290 0026CEF0 38 80 00 00 */ li r4, 0
+/* 80271294 0026CEF4 3C 60 80 00 */ lis r3, 0x800000E0@ha
+/* 80271298 0026CEF8 90 83 00 E0 */ stw r4, 0x800000E0@l(r3)
+/* 8027129C 0026CEFC 90 83 00 DC */ stw r4, 0xdc(r3)
+/* 802712A0 0026CF00 93 C3 00 DC */ stw r30, 0xdc(r3)
+/* 802712A4 0026CF04 48 00 00 08 */ b lbl_802712AC
+/* 802712A8 0026CF08 93 C4 02 FC */ stw r30, 0x2fc(r4)
+lbl_802712AC:
+/* 802712AC 0026CF0C 3B A0 00 00 */ li r29, 0
+/* 802712B0 0026CF10 90 9E 03 00 */ stw r4, 0x300(r30)
+/* 802712B4 0026CF14 3C 80 80 00 */ lis r4, 0x800000E0@ha
+/* 802712B8 0026CF18 38 7F 04 18 */ addi r3, r31, 0x418
+/* 802712BC 0026CF1C 93 BE 02 FC */ stw r29, 0x2fc(r30)
+/* 802712C0 0026CF20 93 C4 00 E0 */ stw r30, 0x800000E0@l(r4)
+/* 802712C4 0026CF24 4B FF 9D CD */ bl OSClearContext
+/* 802712C8 0026CF28 93 AD A8 28 */ stw r29, lbl_8063FAE8-_SDA_BASE_(r13)
+/* 802712CC 0026CF2C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802712D0 0026CF30 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802712D4 0026CF34 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802712D8 0026CF38 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802712DC 0026CF3C 7C 08 03 A6 */ mtlr r0
+/* 802712E0 0026CF40 38 21 00 20 */ addi r1, r1, 0x20
+/* 802712E4 0026CF44 4E 80 00 20 */ blr
+
+.global OSInitThreadQueue
+OSInitThreadQueue:
+/* 802712E8 0026CF48 38 00 00 00 */ li r0, 0
+/* 802712EC 0026CF4C 90 03 00 04 */ stw r0, 4(r3)
+/* 802712F0 0026CF50 90 03 00 00 */ stw r0, 0(r3)
+/* 802712F4 0026CF54 4E 80 00 20 */ blr
+
+.global OSGetCurrentThread
+OSGetCurrentThread:
+/* 802712F8 0026CF58 3C 60 80 00 */ lis r3, 0x800000E4@ha
+/* 802712FC 0026CF5C 80 63 00 E4 */ lwz r3, 0x800000E4@l(r3)
+/* 80271300 0026CF60 4E 80 00 20 */ blr
+
+.global OSIsThreadSuspended
+OSIsThreadSuspended:
+/* 80271304 0026CF64 80 63 02 CC */ lwz r3, 0x2cc(r3)
+/* 80271308 0026CF68 7C 03 00 D0 */ neg r0, r3
+/* 8027130C 0026CF6C 7C 00 18 78 */ andc r0, r0, r3
+/* 80271310 0026CF70 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80271314 0026CF74 4E 80 00 20 */ blr
+
+.global OSIsThreadTerminated
+OSIsThreadTerminated:
+/* 80271318 0026CF78 A0 03 02 C8 */ lhz r0, 0x2c8(r3)
+/* 8027131C 0026CF7C 38 60 00 01 */ li r3, 1
+/* 80271320 0026CF80 28 00 00 08 */ cmplwi r0, 8
+/* 80271324 0026CF84 41 82 00 10 */ beq lbl_80271334
+/* 80271328 0026CF88 2C 00 00 00 */ cmpwi r0, 0
+/* 8027132C 0026CF8C 41 82 00 08 */ beq lbl_80271334
+/* 80271330 0026CF90 38 60 00 00 */ li r3, 0
+lbl_80271334:
+/* 80271334 0026CF94 7C 03 00 D0 */ neg r0, r3
+/* 80271338 0026CF98 7C 00 1B 78 */ or r0, r0, r3
+/* 8027133C 0026CF9C 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80271340 0026CFA0 4E 80 00 20 */ blr
+
+.global OSDisableScheduler
+OSDisableScheduler:
+/* 80271344 0026CFA4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271348 0026CFA8 7C 08 02 A6 */ mflr r0
+/* 8027134C 0026CFAC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80271350 0026CFB0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80271354 0026CFB4 4B FF D4 09 */ bl OSDisableInterrupts
+/* 80271358 0026CFB8 83 ED A8 28 */ lwz r31, lbl_8063FAE8-_SDA_BASE_(r13)
+/* 8027135C 0026CFBC 38 1F 00 01 */ addi r0, r31, 1
+/* 80271360 0026CFC0 90 0D A8 28 */ stw r0, lbl_8063FAE8-_SDA_BASE_(r13)
+/* 80271364 0026CFC4 4B FF D4 21 */ bl OSRestoreInterrupts
+/* 80271368 0026CFC8 7F E3 FB 78 */ mr r3, r31
+/* 8027136C 0026CFCC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80271370 0026CFD0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80271374 0026CFD4 7C 08 03 A6 */ mtlr r0
+/* 80271378 0026CFD8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027137C 0026CFDC 4E 80 00 20 */ blr
+
+.global OSEnableScheduler
+OSEnableScheduler:
+/* 80271380 0026CFE0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271384 0026CFE4 7C 08 02 A6 */ mflr r0
+/* 80271388 0026CFE8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027138C 0026CFEC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80271390 0026CFF0 4B FF D3 CD */ bl OSDisableInterrupts
+/* 80271394 0026CFF4 83 ED A8 28 */ lwz r31, lbl_8063FAE8-_SDA_BASE_(r13)
+/* 80271398 0026CFF8 38 1F FF FF */ addi r0, r31, -1
+/* 8027139C 0026CFFC 90 0D A8 28 */ stw r0, lbl_8063FAE8-_SDA_BASE_(r13)
+/* 802713A0 0026D000 4B FF D3 E5 */ bl OSRestoreInterrupts
+/* 802713A4 0026D004 7F E3 FB 78 */ mr r3, r31
+/* 802713A8 0026D008 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802713AC 0026D00C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802713B0 0026D010 7C 08 03 A6 */ mtlr r0
+/* 802713B4 0026D014 38 21 00 10 */ addi r1, r1, 0x10
+/* 802713B8 0026D018 4E 80 00 20 */ blr
+
+.global UnsetRun
+UnsetRun:
+/* 802713BC 0026D01C 80 A3 02 E0 */ lwz r5, 0x2e0(r3)
+/* 802713C0 0026D020 80 83 02 DC */ lwz r4, 0x2dc(r3)
+/* 802713C4 0026D024 2C 05 00 00 */ cmpwi r5, 0
+/* 802713C8 0026D028 80 C3 02 E4 */ lwz r6, 0x2e4(r3)
+/* 802713CC 0026D02C 40 82 00 0C */ bne lbl_802713D8
+/* 802713D0 0026D030 90 C4 00 04 */ stw r6, 4(r4)
+/* 802713D4 0026D034 48 00 00 08 */ b lbl_802713DC
+lbl_802713D8:
+/* 802713D8 0026D038 90 C5 02 E4 */ stw r6, 0x2e4(r5)
+lbl_802713DC:
+/* 802713DC 0026D03C 2C 06 00 00 */ cmpwi r6, 0
+/* 802713E0 0026D040 40 82 00 0C */ bne lbl_802713EC
+/* 802713E4 0026D044 90 A4 00 00 */ stw r5, 0(r4)
+/* 802713E8 0026D048 48 00 00 08 */ b lbl_802713F0
+lbl_802713EC:
+/* 802713EC 0026D04C 90 A6 02 E0 */ stw r5, 0x2e0(r6)
+lbl_802713F0:
+/* 802713F0 0026D050 80 04 00 00 */ lwz r0, 0(r4)
+/* 802713F4 0026D054 2C 00 00 00 */ cmpwi r0, 0
+/* 802713F8 0026D058 40 82 00 20 */ bne lbl_80271418
+/* 802713FC 0026D05C 80 03 02 D0 */ lwz r0, 0x2d0(r3)
+/* 80271400 0026D060 38 80 00 01 */ li r4, 1
+/* 80271404 0026D064 80 AD A8 30 */ lwz r5, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 80271408 0026D068 20 00 00 1F */ subfic r0, r0, 0x1f
+/* 8027140C 0026D06C 7C 80 00 30 */ slw r0, r4, r0
+/* 80271410 0026D070 7C A0 00 78 */ andc r0, r5, r0
+/* 80271414 0026D074 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13)
+lbl_80271418:
+/* 80271418 0026D078 38 00 00 00 */ li r0, 0
+/* 8027141C 0026D07C 90 03 02 DC */ stw r0, 0x2dc(r3)
+/* 80271420 0026D080 4E 80 00 20 */ blr
+
+.global __OSGetEffectivePriority
+__OSGetEffectivePriority:
+/* 80271424 0026D084 80 83 02 D4 */ lwz r4, 0x2d4(r3)
+/* 80271428 0026D088 80 63 02 F4 */ lwz r3, 0x2f4(r3)
+/* 8027142C 0026D08C 48 00 00 24 */ b lbl_80271450
+lbl_80271430:
+/* 80271430 0026D090 80 A3 00 00 */ lwz r5, 0(r3)
+/* 80271434 0026D094 2C 05 00 00 */ cmpwi r5, 0
+/* 80271438 0026D098 41 82 00 14 */ beq lbl_8027144C
+/* 8027143C 0026D09C 80 05 02 D0 */ lwz r0, 0x2d0(r5)
+/* 80271440 0026D0A0 7C 00 20 00 */ cmpw r0, r4
+/* 80271444 0026D0A4 40 80 00 08 */ bge lbl_8027144C
+/* 80271448 0026D0A8 7C 04 03 78 */ mr r4, r0
+lbl_8027144C:
+/* 8027144C 0026D0AC 80 63 00 10 */ lwz r3, 0x10(r3)
+lbl_80271450:
+/* 80271450 0026D0B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80271454 0026D0B4 40 82 FF DC */ bne lbl_80271430
+/* 80271458 0026D0B8 7C 83 23 78 */ mr r3, r4
+/* 8027145C 0026D0BC 4E 80 00 20 */ blr
+
+.global SetEffectivePriority
+SetEffectivePriority:
+/* 80271460 0026D0C0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271464 0026D0C4 7C 08 02 A6 */ mflr r0
+/* 80271468 0026D0C8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027146C 0026D0CC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80271470 0026D0D0 7C 9F 23 78 */ mr r31, r4
+/* 80271474 0026D0D4 93 C1 00 08 */ stw r30, 8(r1)
+/* 80271478 0026D0D8 7C 7E 1B 78 */ mr r30, r3
+/* 8027147C 0026D0DC A0 03 02 C8 */ lhz r0, 0x2c8(r3)
+/* 80271480 0026D0E0 2C 00 00 03 */ cmpwi r0, 3
+/* 80271484 0026D0E4 41 82 01 74 */ beq lbl_802715F8
+/* 80271488 0026D0E8 40 80 00 14 */ bge lbl_8027149C
+/* 8027148C 0026D0EC 2C 00 00 01 */ cmpwi r0, 1
+/* 80271490 0026D0F0 41 82 00 18 */ beq lbl_802714A8
+/* 80271494 0026D0F4 40 80 01 58 */ bge lbl_802715EC
+/* 80271498 0026D0F8 48 00 01 60 */ b lbl_802715F8
+lbl_8027149C:
+/* 8027149C 0026D0FC 2C 00 00 05 */ cmpwi r0, 5
+/* 802714A0 0026D100 40 80 01 58 */ bge lbl_802715F8
+/* 802714A4 0026D104 48 00 00 70 */ b lbl_80271514
+lbl_802714A8:
+/* 802714A8 0026D108 4B FF FF 15 */ bl UnsetRun
+/* 802714AC 0026D10C 3C 60 80 51 */ lis r3, lbl_80514AF0@ha
+/* 802714B0 0026D110 57 E0 18 38 */ slwi r0, r31, 3
+/* 802714B4 0026D114 38 63 4A F0 */ addi r3, r3, lbl_80514AF0@l
+/* 802714B8 0026D118 93 FE 02 D0 */ stw r31, 0x2d0(r30)
+/* 802714BC 0026D11C 7C 63 02 14 */ add r3, r3, r0
+/* 802714C0 0026D120 90 7E 02 DC */ stw r3, 0x2dc(r30)
+/* 802714C4 0026D124 80 83 00 04 */ lwz r4, 4(r3)
+/* 802714C8 0026D128 2C 04 00 00 */ cmpwi r4, 0
+/* 802714CC 0026D12C 40 82 00 0C */ bne lbl_802714D8
+/* 802714D0 0026D130 93 C3 00 00 */ stw r30, 0(r3)
+/* 802714D4 0026D134 48 00 00 08 */ b lbl_802714DC
+lbl_802714D8:
+/* 802714D8 0026D138 93 C4 02 E0 */ stw r30, 0x2e0(r4)
+lbl_802714DC:
+/* 802714DC 0026D13C 38 00 00 00 */ li r0, 0
+/* 802714E0 0026D140 90 9E 02 E4 */ stw r4, 0x2e4(r30)
+/* 802714E4 0026D144 80 9E 02 DC */ lwz r4, 0x2dc(r30)
+/* 802714E8 0026D148 38 60 00 01 */ li r3, 1
+/* 802714EC 0026D14C 90 1E 02 E0 */ stw r0, 0x2e0(r30)
+/* 802714F0 0026D150 93 C4 00 04 */ stw r30, 4(r4)
+/* 802714F4 0026D154 80 1E 02 D0 */ lwz r0, 0x2d0(r30)
+/* 802714F8 0026D158 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 802714FC 0026D15C 20 00 00 1F */ subfic r0, r0, 0x1f
+/* 80271500 0026D160 7C 60 00 30 */ slw r0, r3, r0
+/* 80271504 0026D164 7C 80 03 78 */ or r0, r4, r0
+/* 80271508 0026D168 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 8027150C 0026D16C 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80271510 0026D170 48 00 00 E8 */ b lbl_802715F8
+lbl_80271514:
+/* 80271514 0026D174 80 C3 02 E0 */ lwz r6, 0x2e0(r3)
+/* 80271518 0026D178 80 E3 02 E4 */ lwz r7, 0x2e4(r3)
+/* 8027151C 0026D17C 2C 06 00 00 */ cmpwi r6, 0
+/* 80271520 0026D180 40 82 00 10 */ bne lbl_80271530
+/* 80271524 0026D184 80 A3 02 DC */ lwz r5, 0x2dc(r3)
+/* 80271528 0026D188 90 E5 00 04 */ stw r7, 4(r5)
+/* 8027152C 0026D18C 48 00 00 08 */ b lbl_80271534
+lbl_80271530:
+/* 80271530 0026D190 90 E6 02 E4 */ stw r7, 0x2e4(r6)
+lbl_80271534:
+/* 80271534 0026D194 2C 07 00 00 */ cmpwi r7, 0
+/* 80271538 0026D198 40 82 00 10 */ bne lbl_80271548
+/* 8027153C 0026D19C 80 A3 02 DC */ lwz r5, 0x2dc(r3)
+/* 80271540 0026D1A0 90 C5 00 00 */ stw r6, 0(r5)
+/* 80271544 0026D1A4 48 00 00 08 */ b lbl_8027154C
+lbl_80271548:
+/* 80271548 0026D1A8 90 C7 02 E0 */ stw r6, 0x2e0(r7)
+lbl_8027154C:
+/* 8027154C 0026D1AC 90 83 02 D0 */ stw r4, 0x2d0(r3)
+/* 80271550 0026D1B0 80 A3 02 DC */ lwz r5, 0x2dc(r3)
+/* 80271554 0026D1B4 80 C5 00 00 */ lwz r6, 0(r5)
+/* 80271558 0026D1B8 48 00 00 08 */ b lbl_80271560
+lbl_8027155C:
+/* 8027155C 0026D1BC 80 C6 02 E0 */ lwz r6, 0x2e0(r6)
+lbl_80271560:
+/* 80271560 0026D1C0 2C 06 00 00 */ cmpwi r6, 0
+/* 80271564 0026D1C4 41 82 00 14 */ beq lbl_80271578
+/* 80271568 0026D1C8 80 86 02 D0 */ lwz r4, 0x2d0(r6)
+/* 8027156C 0026D1CC 80 03 02 D0 */ lwz r0, 0x2d0(r3)
+/* 80271570 0026D1D0 7C 04 00 00 */ cmpw r4, r0
+/* 80271574 0026D1D4 40 81 FF E8 */ ble lbl_8027155C
+lbl_80271578:
+/* 80271578 0026D1D8 2C 06 00 00 */ cmpwi r6, 0
+/* 8027157C 0026D1DC 40 82 00 34 */ bne lbl_802715B0
+/* 80271580 0026D1E0 80 85 00 04 */ lwz r4, 4(r5)
+/* 80271584 0026D1E4 2C 04 00 00 */ cmpwi r4, 0
+/* 80271588 0026D1E8 40 82 00 0C */ bne lbl_80271594
+/* 8027158C 0026D1EC 90 65 00 00 */ stw r3, 0(r5)
+/* 80271590 0026D1F0 48 00 00 08 */ b lbl_80271598
+lbl_80271594:
+/* 80271594 0026D1F4 90 64 02 E0 */ stw r3, 0x2e0(r4)
+lbl_80271598:
+/* 80271598 0026D1F8 38 00 00 00 */ li r0, 0
+/* 8027159C 0026D1FC 90 83 02 E4 */ stw r4, 0x2e4(r3)
+/* 802715A0 0026D200 80 83 02 DC */ lwz r4, 0x2dc(r3)
+/* 802715A4 0026D204 90 03 02 E0 */ stw r0, 0x2e0(r3)
+/* 802715A8 0026D208 90 64 00 04 */ stw r3, 4(r4)
+/* 802715AC 0026D20C 48 00 00 2C */ b lbl_802715D8
+lbl_802715B0:
+/* 802715B0 0026D210 90 C3 02 E0 */ stw r6, 0x2e0(r3)
+/* 802715B4 0026D214 80 86 02 E4 */ lwz r4, 0x2e4(r6)
+/* 802715B8 0026D218 90 66 02 E4 */ stw r3, 0x2e4(r6)
+/* 802715BC 0026D21C 2C 04 00 00 */ cmpwi r4, 0
+/* 802715C0 0026D220 90 83 02 E4 */ stw r4, 0x2e4(r3)
+/* 802715C4 0026D224 40 82 00 10 */ bne lbl_802715D4
+/* 802715C8 0026D228 80 83 02 DC */ lwz r4, 0x2dc(r3)
+/* 802715CC 0026D22C 90 64 00 00 */ stw r3, 0(r4)
+/* 802715D0 0026D230 48 00 00 08 */ b lbl_802715D8
+lbl_802715D4:
+/* 802715D4 0026D234 90 64 02 E0 */ stw r3, 0x2e0(r4)
+lbl_802715D8:
+/* 802715D8 0026D238 80 63 02 F0 */ lwz r3, 0x2f0(r3)
+/* 802715DC 0026D23C 2C 03 00 00 */ cmpwi r3, 0
+/* 802715E0 0026D240 41 82 00 18 */ beq lbl_802715F8
+/* 802715E4 0026D244 80 63 00 08 */ lwz r3, 8(r3)
+/* 802715E8 0026D248 48 00 00 14 */ b lbl_802715FC
+lbl_802715EC:
+/* 802715EC 0026D24C 38 00 00 01 */ li r0, 1
+/* 802715F0 0026D250 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 802715F4 0026D254 90 83 02 D0 */ stw r4, 0x2d0(r3)
+lbl_802715F8:
+/* 802715F8 0026D258 38 60 00 00 */ li r3, 0
+lbl_802715FC:
+/* 802715FC 0026D25C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80271600 0026D260 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80271604 0026D264 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80271608 0026D268 7C 08 03 A6 */ mtlr r0
+/* 8027160C 0026D26C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80271610 0026D270 4E 80 00 20 */ blr
+
+.global __OSPromoteThread
+__OSPromoteThread:
+/* 80271614 0026D274 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271618 0026D278 7C 08 02 A6 */ mflr r0
+/* 8027161C 0026D27C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80271620 0026D280 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80271624 0026D284 7C 9F 23 78 */ mr r31, r4
+lbl_80271628:
+/* 80271628 0026D288 80 03 02 CC */ lwz r0, 0x2cc(r3)
+/* 8027162C 0026D28C 2C 00 00 00 */ cmpwi r0, 0
+/* 80271630 0026D290 41 81 00 20 */ bgt lbl_80271650
+/* 80271634 0026D294 80 03 02 D0 */ lwz r0, 0x2d0(r3)
+/* 80271638 0026D298 7C 00 F8 00 */ cmpw r0, r31
+/* 8027163C 0026D29C 40 81 00 14 */ ble lbl_80271650
+/* 80271640 0026D2A0 7F E4 FB 78 */ mr r4, r31
+/* 80271644 0026D2A4 4B FF FE 1D */ bl SetEffectivePriority
+/* 80271648 0026D2A8 2C 03 00 00 */ cmpwi r3, 0
+/* 8027164C 0026D2AC 40 82 FF DC */ bne lbl_80271628
+lbl_80271650:
+/* 80271650 0026D2B0 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80271654 0026D2B4 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80271658 0026D2B8 7C 08 03 A6 */ mtlr r0
+/* 8027165C 0026D2BC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80271660 0026D2C0 4E 80 00 20 */ blr
+
+.global SelectThread
+SelectThread:
+/* 80271664 0026D2C4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271668 0026D2C8 7C 08 02 A6 */ mflr r0
+/* 8027166C 0026D2CC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80271670 0026D2D0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80271674 0026D2D4 93 C1 00 08 */ stw r30, 8(r1)
+/* 80271678 0026D2D8 7C 7E 1B 78 */ mr r30, r3
+/* 8027167C 0026D2DC 80 0D A8 28 */ lwz r0, lbl_8063FAE8-_SDA_BASE_(r13)
+/* 80271680 0026D2E0 2C 00 00 00 */ cmpwi r0, 0
+/* 80271684 0026D2E4 40 81 00 0C */ ble lbl_80271690
+/* 80271688 0026D2E8 38 60 00 00 */ li r3, 0
+/* 8027168C 0026D2EC 48 00 01 E8 */ b lbl_80271874
+lbl_80271690:
+/* 80271690 0026D2F0 4B FF 98 35 */ bl OSGetCurrentContext
+/* 80271694 0026D2F4 3C 80 80 00 */ lis r4, 0x800000E4@ha
+/* 80271698 0026D2F8 80 A4 00 E4 */ lwz r5, 0x800000E4@l(r4)
+/* 8027169C 0026D2FC 7C 03 28 40 */ cmplw r3, r5
+/* 802716A0 0026D300 41 82 00 0C */ beq lbl_802716AC
+/* 802716A4 0026D304 38 60 00 00 */ li r3, 0
+/* 802716A8 0026D308 48 00 01 CC */ b lbl_80271874
+lbl_802716AC:
+/* 802716AC 0026D30C 2C 05 00 00 */ cmpwi r5, 0
+/* 802716B0 0026D310 41 82 00 C4 */ beq lbl_80271774
+/* 802716B4 0026D314 A0 05 02 C8 */ lhz r0, 0x2c8(r5)
+/* 802716B8 0026D318 28 00 00 02 */ cmplwi r0, 2
+/* 802716BC 0026D31C 40 82 00 94 */ bne lbl_80271750
+/* 802716C0 0026D320 2C 1E 00 00 */ cmpwi r30, 0
+/* 802716C4 0026D324 40 82 00 20 */ bne lbl_802716E4
+/* 802716C8 0026D328 80 6D A8 30 */ lwz r3, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 802716CC 0026D32C 80 05 02 D0 */ lwz r0, 0x2d0(r5)
+/* 802716D0 0026D330 7C 63 00 34 */ cntlzw r3, r3
+/* 802716D4 0026D334 7C 00 18 00 */ cmpw r0, r3
+/* 802716D8 0026D338 41 81 00 0C */ bgt lbl_802716E4
+/* 802716DC 0026D33C 38 60 00 00 */ li r3, 0
+/* 802716E0 0026D340 48 00 01 94 */ b lbl_80271874
+lbl_802716E4:
+/* 802716E4 0026D344 38 00 00 01 */ li r0, 1
+/* 802716E8 0026D348 3C 60 80 51 */ lis r3, lbl_80514AF0@ha
+/* 802716EC 0026D34C B0 05 02 C8 */ sth r0, 0x2c8(r5)
+/* 802716F0 0026D350 38 63 4A F0 */ addi r3, r3, lbl_80514AF0@l
+/* 802716F4 0026D354 80 05 02 D0 */ lwz r0, 0x2d0(r5)
+/* 802716F8 0026D358 54 00 18 38 */ slwi r0, r0, 3
+/* 802716FC 0026D35C 7C 63 02 14 */ add r3, r3, r0
+/* 80271700 0026D360 90 65 02 DC */ stw r3, 0x2dc(r5)
+/* 80271704 0026D364 80 83 00 04 */ lwz r4, 4(r3)
+/* 80271708 0026D368 2C 04 00 00 */ cmpwi r4, 0
+/* 8027170C 0026D36C 40 82 00 0C */ bne lbl_80271718
+/* 80271710 0026D370 90 A3 00 00 */ stw r5, 0(r3)
+/* 80271714 0026D374 48 00 00 08 */ b lbl_8027171C
+lbl_80271718:
+/* 80271718 0026D378 90 A4 02 E0 */ stw r5, 0x2e0(r4)
+lbl_8027171C:
+/* 8027171C 0026D37C 90 85 02 E4 */ stw r4, 0x2e4(r5)
+/* 80271720 0026D380 38 00 00 00 */ li r0, 0
+/* 80271724 0026D384 38 60 00 01 */ li r3, 1
+/* 80271728 0026D388 90 05 02 E0 */ stw r0, 0x2e0(r5)
+/* 8027172C 0026D38C 80 85 02 DC */ lwz r4, 0x2dc(r5)
+/* 80271730 0026D390 90 A4 00 04 */ stw r5, 4(r4)
+/* 80271734 0026D394 80 05 02 D0 */ lwz r0, 0x2d0(r5)
+/* 80271738 0026D398 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 8027173C 0026D39C 20 00 00 1F */ subfic r0, r0, 0x1f
+/* 80271740 0026D3A0 7C 60 00 30 */ slw r0, r3, r0
+/* 80271744 0026D3A4 7C 80 03 78 */ or r0, r4, r0
+/* 80271748 0026D3A8 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 8027174C 0026D3AC 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13)
+lbl_80271750:
+/* 80271750 0026D3B0 A0 05 01 A2 */ lhz r0, 0x1a2(r5)
+/* 80271754 0026D3B4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
+/* 80271758 0026D3B8 40 82 00 1C */ bne lbl_80271774
+/* 8027175C 0026D3BC 7C A3 2B 78 */ mr r3, r5
+/* 80271760 0026D3C0 4B FF 97 71 */ bl OSSaveContext
+/* 80271764 0026D3C4 2C 03 00 00 */ cmpwi r3, 0
+/* 80271768 0026D3C8 41 82 00 0C */ beq lbl_80271774
+/* 8027176C 0026D3CC 38 60 00 00 */ li r3, 0
+/* 80271770 0026D3D0 48 00 01 04 */ b lbl_80271874
+lbl_80271774:
+/* 80271774 0026D3D4 80 0D A8 30 */ lwz r0, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 80271778 0026D3D8 2C 00 00 00 */ cmpwi r0, 0
+/* 8027177C 0026D3DC 40 82 00 5C */ bne lbl_802717D8
+/* 80271780 0026D3E0 81 8D 87 E0 */ lwz r12, lbl_8063DAA0-_SDA_BASE_(r13)
+/* 80271784 0026D3E4 3F E0 80 00 */ lis r31, 0x800000E4@ha
+/* 80271788 0026D3E8 80 7F 00 E4 */ lwz r3, 0x800000E4@l(r31)
+/* 8027178C 0026D3EC 38 80 00 00 */ li r4, 0
+/* 80271790 0026D3F0 7D 89 03 A6 */ mtctr r12
+/* 80271794 0026D3F4 4E 80 04 21 */ bctrl
+/* 80271798 0026D3F8 38 00 00 00 */ li r0, 0
+/* 8027179C 0026D3FC 3C 60 80 51 */ lis r3, lbl_80514BF0@ha
+/* 802717A0 0026D400 90 1F 00 E4 */ stw r0, 0xe4(r31)
+/* 802717A4 0026D404 38 63 4B F0 */ addi r3, r3, lbl_80514BF0@l
+/* 802717A8 0026D408 4B FF 96 C1 */ bl OSSetCurrentContext
+lbl_802717AC:
+/* 802717AC 0026D40C 4B FF CF C5 */ bl OSEnableInterrupts
+lbl_802717B0:
+/* 802717B0 0026D410 80 0D A8 30 */ lwz r0, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 802717B4 0026D414 2C 00 00 00 */ cmpwi r0, 0
+/* 802717B8 0026D418 41 82 FF F8 */ beq lbl_802717B0
+/* 802717BC 0026D41C 4B FF CF A1 */ bl OSDisableInterrupts
+/* 802717C0 0026D420 80 0D A8 30 */ lwz r0, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 802717C4 0026D424 2C 00 00 00 */ cmpwi r0, 0
+/* 802717C8 0026D428 41 82 FF E4 */ beq lbl_802717AC
+/* 802717CC 0026D42C 3C 60 80 51 */ lis r3, lbl_80514BF0@ha
+/* 802717D0 0026D430 38 63 4B F0 */ addi r3, r3, lbl_80514BF0@l
+/* 802717D4 0026D434 4B FF 98 BD */ bl OSClearContext
+lbl_802717D8:
+/* 802717D8 0026D438 38 80 00 00 */ li r4, 0
+/* 802717DC 0026D43C 3C 60 80 51 */ lis r3, lbl_80514AF0@ha
+/* 802717E0 0026D440 90 8D A8 2C */ stw r4, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 802717E4 0026D444 38 63 4A F0 */ addi r3, r3, lbl_80514AF0@l
+/* 802717E8 0026D448 80 0D A8 30 */ lwz r0, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 802717EC 0026D44C 7C 05 00 34 */ cntlzw r5, r0
+/* 802717F0 0026D450 54 A0 18 38 */ slwi r0, r5, 3
+/* 802717F4 0026D454 7F C3 00 6E */ lwzux r30, r3, r0
+/* 802717F8 0026D458 80 DE 02 E0 */ lwz r6, 0x2e0(r30)
+/* 802717FC 0026D45C 2C 06 00 00 */ cmpwi r6, 0
+/* 80271800 0026D460 40 82 00 0C */ bne lbl_8027180C
+/* 80271804 0026D464 90 83 00 04 */ stw r4, 4(r3)
+/* 80271808 0026D468 48 00 00 08 */ b lbl_80271810
+lbl_8027180C:
+/* 8027180C 0026D46C 90 86 02 E4 */ stw r4, 0x2e4(r6)
+lbl_80271810:
+/* 80271810 0026D470 2C 06 00 00 */ cmpwi r6, 0
+/* 80271814 0026D474 90 C3 00 00 */ stw r6, 0(r3)
+/* 80271818 0026D478 40 82 00 1C */ bne lbl_80271834
+/* 8027181C 0026D47C 20 05 00 1F */ subfic r0, r5, 0x1f
+/* 80271820 0026D480 38 60 00 01 */ li r3, 1
+/* 80271824 0026D484 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 80271828 0026D488 7C 60 00 30 */ slw r0, r3, r0
+/* 8027182C 0026D48C 7C 80 00 78 */ andc r0, r4, r0
+/* 80271830 0026D490 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13)
+lbl_80271834:
+/* 80271834 0026D494 38 60 00 00 */ li r3, 0
+/* 80271838 0026D498 38 00 00 02 */ li r0, 2
+/* 8027183C 0026D49C 90 7E 02 DC */ stw r3, 0x2dc(r30)
+/* 80271840 0026D4A0 3F E0 80 00 */ lis r31, 0x800000E4@ha
+/* 80271844 0026D4A4 7F C4 F3 78 */ mr r4, r30
+/* 80271848 0026D4A8 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
+/* 8027184C 0026D4AC 81 8D 87 E0 */ lwz r12, lbl_8063DAA0-_SDA_BASE_(r13)
+/* 80271850 0026D4B0 80 7F 00 E4 */ lwz r3, 0x800000E4@l(r31)
+/* 80271854 0026D4B4 7D 89 03 A6 */ mtctr r12
+/* 80271858 0026D4B8 4E 80 04 21 */ bctrl
+/* 8027185C 0026D4BC 93 DF 00 E4 */ stw r30, 0xe4(r31)
+/* 80271860 0026D4C0 7F C3 F3 78 */ mr r3, r30
+/* 80271864 0026D4C4 4B FF 96 05 */ bl OSSetCurrentContext
+/* 80271868 0026D4C8 7F C3 F3 78 */ mr r3, r30
+/* 8027186C 0026D4CC 4B FF 96 E5 */ bl OSLoadContext
+/* 80271870 0026D4D0 7F C3 F3 78 */ mr r3, r30
+lbl_80271874:
+/* 80271874 0026D4D4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80271878 0026D4D8 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 8027187C 0026D4DC 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80271880 0026D4E0 7C 08 03 A6 */ mtlr r0
+/* 80271884 0026D4E4 38 21 00 10 */ addi r1, r1, 0x10
+/* 80271888 0026D4E8 4E 80 00 20 */ blr
+
+.global __OSReschedule
+__OSReschedule:
+/* 8027188C 0026D4EC 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80271890 0026D4F0 2C 00 00 00 */ cmpwi r0, 0
+/* 80271894 0026D4F4 4D 82 00 20 */ beqlr
+/* 80271898 0026D4F8 38 60 00 00 */ li r3, 0
+/* 8027189C 0026D4FC 4B FF FD C8 */ b SelectThread
+/* 802718A0 0026D500 4E 80 00 20 */ blr
+
+.global OSYieldThread
+OSYieldThread:
+/* 802718A4 0026D504 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802718A8 0026D508 7C 08 02 A6 */ mflr r0
+/* 802718AC 0026D50C 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802718B0 0026D510 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802718B4 0026D514 4B FF CE A9 */ bl OSDisableInterrupts
+/* 802718B8 0026D518 7C 7F 1B 78 */ mr r31, r3
+/* 802718BC 0026D51C 38 60 00 01 */ li r3, 1
+/* 802718C0 0026D520 4B FF FD A5 */ bl SelectThread
+/* 802718C4 0026D524 7F E3 FB 78 */ mr r3, r31
+/* 802718C8 0026D528 4B FF CE BD */ bl OSRestoreInterrupts
+/* 802718CC 0026D52C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802718D0 0026D530 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802718D4 0026D534 7C 08 03 A6 */ mtlr r0
+/* 802718D8 0026D538 38 21 00 10 */ addi r1, r1, 0x10
+/* 802718DC 0026D53C 4E 80 00 20 */ blr
+
+.global OSCreateThread
+OSCreateThread:
+/* 802718E0 0026D540 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802718E4 0026D544 7C 08 02 A6 */ mflr r0
+/* 802718E8 0026D548 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802718EC 0026D54C 39 61 00 20 */ addi r11, r1, 0x20
+/* 802718F0 0026D550 4B F5 58 35 */ bl _savegpr_26
+/* 802718F4 0026D554 2C 08 00 00 */ cmpwi r8, 0
+/* 802718F8 0026D558 7C 7F 1B 78 */ mr r31, r3
+/* 802718FC 0026D55C 7C BA 2B 78 */ mr r26, r5
+/* 80271900 0026D560 7C DB 33 78 */ mr r27, r6
+/* 80271904 0026D564 7C FC 3B 78 */ mr r28, r7
+/* 80271908 0026D568 41 80 00 0C */ blt lbl_80271914
+/* 8027190C 0026D56C 2C 08 00 1F */ cmpwi r8, 0x1f
+/* 80271910 0026D570 40 81 00 0C */ ble lbl_8027191C
+lbl_80271914:
+/* 80271914 0026D574 38 60 00 00 */ li r3, 0
+/* 80271918 0026D578 48 00 02 1C */ b lbl_80271B34
+lbl_8027191C:
+/* 8027191C 0026D57C 3B C0 00 00 */ li r30, 0
+/* 80271920 0026D580 38 E0 00 01 */ li r7, 1
+/* 80271924 0026D584 55 20 07 FE */ clrlwi r0, r9, 0x1f
+/* 80271928 0026D588 3B A0 FF FF */ li r29, -1
+/* 8027192C 0026D58C 54 C6 00 38 */ rlwinm r6, r6, 0, 0, 0x1c
+/* 80271930 0026D590 B0 E3 02 C8 */ sth r7, 0x2c8(r3)
+/* 80271934 0026D594 38 A6 FF F8 */ addi r5, r6, -8
+/* 80271938 0026D598 B0 03 02 CA */ sth r0, 0x2ca(r3)
+/* 8027193C 0026D59C 91 03 02 D4 */ stw r8, 0x2d4(r3)
+/* 80271940 0026D5A0 91 03 02 D0 */ stw r8, 0x2d0(r3)
+/* 80271944 0026D5A4 90 E3 02 CC */ stw r7, 0x2cc(r3)
+/* 80271948 0026D5A8 93 A3 02 D8 */ stw r29, 0x2d8(r3)
+/* 8027194C 0026D5AC 93 C3 02 F0 */ stw r30, 0x2f0(r3)
+/* 80271950 0026D5B0 93 C3 02 EC */ stw r30, 0x2ec(r3)
+/* 80271954 0026D5B4 93 C3 02 E8 */ stw r30, 0x2e8(r3)
+/* 80271958 0026D5B8 93 C3 02 F8 */ stw r30, 0x2f8(r3)
+/* 8027195C 0026D5BC 93 C3 02 F4 */ stw r30, 0x2f4(r3)
+/* 80271960 0026D5C0 93 C6 FF F8 */ stw r30, -8(r6)
+/* 80271964 0026D5C4 93 C6 FF FC */ stw r30, -4(r6)
+/* 80271968 0026D5C8 4B FF 97 4D */ bl OSInitContext
+/* 8027196C 0026D5CC 3C A0 80 27 */ lis r5, OSExitThread@ha
+/* 80271970 0026D5D0 7C 9C D8 50 */ subf r4, r28, r27
+/* 80271974 0026D5D4 38 A5 1B 4C */ addi r5, r5, OSExitThread@l
+/* 80271978 0026D5D8 3C 60 DE AE */ lis r3, 0xDEADBABE@ha
+/* 8027197C 0026D5DC 90 BF 00 84 */ stw r5, 0x84(r31)
+/* 80271980 0026D5E0 38 03 BA BE */ addi r0, r3, 0xDEADBABE@l
+/* 80271984 0026D5E4 93 5F 00 0C */ stw r26, 0xc(r31)
+/* 80271988 0026D5E8 93 7F 03 04 */ stw r27, 0x304(r31)
+/* 8027198C 0026D5EC 90 9F 03 08 */ stw r4, 0x308(r31)
+/* 80271990 0026D5F0 90 04 00 00 */ stw r0, 0(r4)
+/* 80271994 0026D5F4 93 DF 03 0C */ stw r30, 0x30c(r31)
+/* 80271998 0026D5F8 93 DF 03 10 */ stw r30, 0x310(r31)
+/* 8027199C 0026D5FC 93 DF 03 14 */ stw r30, 0x314(r31)
+/* 802719A0 0026D600 4B FF CD BD */ bl OSDisableInterrupts
+/* 802719A4 0026D604 3C 80 80 50 */ lis r4, lbl_80503CF0@ha
+/* 802719A8 0026D608 38 84 3C F0 */ addi r4, r4, lbl_80503CF0@l
+/* 802719AC 0026D60C 80 04 00 40 */ lwz r0, 0x40(r4)
+/* 802719B0 0026D610 2C 00 00 00 */ cmpwi r0, 0
+/* 802719B4 0026D614 41 82 01 48 */ beq lbl_80271AFC
+/* 802719B8 0026D618 80 BF 01 9C */ lwz r5, 0x19c(r31)
+/* 802719BC 0026D61C 38 00 00 02 */ li r0, 2
+/* 802719C0 0026D620 A0 9F 01 A2 */ lhz r4, 0x1a2(r31)
+/* 802719C4 0026D624 38 DF 00 90 */ addi r6, r31, 0x90
+/* 802719C8 0026D628 60 A5 09 00 */ ori r5, r5, 0x900
+/* 802719CC 0026D62C 38 FF 01 C8 */ addi r7, r31, 0x1c8
+/* 802719D0 0026D630 60 84 00 01 */ ori r4, r4, 1
+/* 802719D4 0026D634 90 BF 01 9C */ stw r5, 0x19c(r31)
+/* 802719D8 0026D638 B0 9F 01 A2 */ sth r4, 0x1a2(r31)
+/* 802719DC 0026D63C 80 8D 87 B8 */ lwz r4, lbl_8063DA78-_SDA_BASE_(r13)
+/* 802719E0 0026D640 54 84 06 38 */ rlwinm r4, r4, 0, 0x18, 0x1c
+/* 802719E4 0026D644 60 84 00 04 */ ori r4, r4, 4
+/* 802719E8 0026D648 90 9F 01 94 */ stw r4, 0x194(r31)
+/* 802719EC 0026D64C 7C 09 03 A6 */ mtctr r0
+lbl_802719F0:
+/* 802719F0 0026D650 93 A6 00 04 */ stw r29, 4(r6)
+/* 802719F4 0026D654 93 A6 00 00 */ stw r29, 0(r6)
+/* 802719F8 0026D658 93 A7 00 04 */ stw r29, 4(r7)
+/* 802719FC 0026D65C 93 A7 00 00 */ stw r29, 0(r7)
+/* 80271A00 0026D660 93 A6 00 0C */ stw r29, 0xc(r6)
+/* 80271A04 0026D664 93 A6 00 08 */ stw r29, 8(r6)
+/* 80271A08 0026D668 93 A7 00 0C */ stw r29, 0xc(r7)
+/* 80271A0C 0026D66C 93 A7 00 08 */ stw r29, 8(r7)
+/* 80271A10 0026D670 93 A6 00 14 */ stw r29, 0x14(r6)
+/* 80271A14 0026D674 93 A6 00 10 */ stw r29, 0x10(r6)
+/* 80271A18 0026D678 93 A7 00 14 */ stw r29, 0x14(r7)
+/* 80271A1C 0026D67C 93 A7 00 10 */ stw r29, 0x10(r7)
+/* 80271A20 0026D680 93 A6 00 1C */ stw r29, 0x1c(r6)
+/* 80271A24 0026D684 93 A6 00 18 */ stw r29, 0x18(r6)
+/* 80271A28 0026D688 93 A7 00 1C */ stw r29, 0x1c(r7)
+/* 80271A2C 0026D68C 93 A7 00 18 */ stw r29, 0x18(r7)
+/* 80271A30 0026D690 93 A6 00 24 */ stw r29, 0x24(r6)
+/* 80271A34 0026D694 93 A6 00 20 */ stw r29, 0x20(r6)
+/* 80271A38 0026D698 93 A7 00 24 */ stw r29, 0x24(r7)
+/* 80271A3C 0026D69C 93 A7 00 20 */ stw r29, 0x20(r7)
+/* 80271A40 0026D6A0 93 A6 00 2C */ stw r29, 0x2c(r6)
+/* 80271A44 0026D6A4 93 A6 00 28 */ stw r29, 0x28(r6)
+/* 80271A48 0026D6A8 93 A7 00 2C */ stw r29, 0x2c(r7)
+/* 80271A4C 0026D6AC 93 A7 00 28 */ stw r29, 0x28(r7)
+/* 80271A50 0026D6B0 93 A6 00 34 */ stw r29, 0x34(r6)
+/* 80271A54 0026D6B4 93 A6 00 30 */ stw r29, 0x30(r6)
+/* 80271A58 0026D6B8 93 A7 00 34 */ stw r29, 0x34(r7)
+/* 80271A5C 0026D6BC 93 A7 00 30 */ stw r29, 0x30(r7)
+/* 80271A60 0026D6C0 93 A6 00 3C */ stw r29, 0x3c(r6)
+/* 80271A64 0026D6C4 93 A6 00 38 */ stw r29, 0x38(r6)
+/* 80271A68 0026D6C8 93 A7 00 3C */ stw r29, 0x3c(r7)
+/* 80271A6C 0026D6CC 93 A7 00 38 */ stw r29, 0x38(r7)
+/* 80271A70 0026D6D0 93 A6 00 44 */ stw r29, 0x44(r6)
+/* 80271A74 0026D6D4 93 A6 00 40 */ stw r29, 0x40(r6)
+/* 80271A78 0026D6D8 93 A7 00 44 */ stw r29, 0x44(r7)
+/* 80271A7C 0026D6DC 93 A7 00 40 */ stw r29, 0x40(r7)
+/* 80271A80 0026D6E0 93 A6 00 4C */ stw r29, 0x4c(r6)
+/* 80271A84 0026D6E4 93 A6 00 48 */ stw r29, 0x48(r6)
+/* 80271A88 0026D6E8 93 A7 00 4C */ stw r29, 0x4c(r7)
+/* 80271A8C 0026D6EC 93 A7 00 48 */ stw r29, 0x48(r7)
+/* 80271A90 0026D6F0 93 A6 00 54 */ stw r29, 0x54(r6)
+/* 80271A94 0026D6F4 93 A6 00 50 */ stw r29, 0x50(r6)
+/* 80271A98 0026D6F8 93 A7 00 54 */ stw r29, 0x54(r7)
+/* 80271A9C 0026D6FC 93 A7 00 50 */ stw r29, 0x50(r7)
+/* 80271AA0 0026D700 93 A6 00 5C */ stw r29, 0x5c(r6)
+/* 80271AA4 0026D704 93 A6 00 58 */ stw r29, 0x58(r6)
+/* 80271AA8 0026D708 93 A7 00 5C */ stw r29, 0x5c(r7)
+/* 80271AAC 0026D70C 93 A7 00 58 */ stw r29, 0x58(r7)
+/* 80271AB0 0026D710 93 A6 00 64 */ stw r29, 0x64(r6)
+/* 80271AB4 0026D714 93 A6 00 60 */ stw r29, 0x60(r6)
+/* 80271AB8 0026D718 93 A7 00 64 */ stw r29, 0x64(r7)
+/* 80271ABC 0026D71C 93 A7 00 60 */ stw r29, 0x60(r7)
+/* 80271AC0 0026D720 93 A6 00 6C */ stw r29, 0x6c(r6)
+/* 80271AC4 0026D724 93 A6 00 68 */ stw r29, 0x68(r6)
+/* 80271AC8 0026D728 93 A7 00 6C */ stw r29, 0x6c(r7)
+/* 80271ACC 0026D72C 93 A7 00 68 */ stw r29, 0x68(r7)
+/* 80271AD0 0026D730 93 A6 00 74 */ stw r29, 0x74(r6)
+/* 80271AD4 0026D734 93 A6 00 70 */ stw r29, 0x70(r6)
+/* 80271AD8 0026D738 93 A7 00 74 */ stw r29, 0x74(r7)
+/* 80271ADC 0026D73C 93 A7 00 70 */ stw r29, 0x70(r7)
+/* 80271AE0 0026D740 93 A6 00 7C */ stw r29, 0x7c(r6)
+/* 80271AE4 0026D744 93 A6 00 78 */ stw r29, 0x78(r6)
+/* 80271AE8 0026D748 38 C6 00 80 */ addi r6, r6, 0x80
+/* 80271AEC 0026D74C 93 A7 00 7C */ stw r29, 0x7c(r7)
+/* 80271AF0 0026D750 93 A7 00 78 */ stw r29, 0x78(r7)
+/* 80271AF4 0026D754 38 E7 00 80 */ addi r7, r7, 0x80
+/* 80271AF8 0026D758 42 00 FE F8 */ bdnz lbl_802719F0
+lbl_80271AFC:
+/* 80271AFC 0026D75C 3C 80 80 00 */ lis r4, 0x800000E0@ha
+/* 80271B00 0026D760 80 A4 00 E0 */ lwz r5, 0x800000E0@l(r4)
+/* 80271B04 0026D764 2C 05 00 00 */ cmpwi r5, 0
+/* 80271B08 0026D768 40 82 00 0C */ bne lbl_80271B14
+/* 80271B0C 0026D76C 93 E4 00 DC */ stw r31, 0xdc(r4)
+/* 80271B10 0026D770 48 00 00 08 */ b lbl_80271B18
+lbl_80271B14:
+/* 80271B14 0026D774 93 E5 02 FC */ stw r31, 0x2fc(r5)
+lbl_80271B18:
+/* 80271B18 0026D778 38 00 00 00 */ li r0, 0
+/* 80271B1C 0026D77C 90 BF 03 00 */ stw r5, 0x300(r31)
+/* 80271B20 0026D780 3C 80 80 00 */ lis r4, 0x800000E0@ha
+/* 80271B24 0026D784 90 1F 02 FC */ stw r0, 0x2fc(r31)
+/* 80271B28 0026D788 93 E4 00 E0 */ stw r31, 0x800000E0@l(r4)
+/* 80271B2C 0026D78C 4B FF CC 59 */ bl OSRestoreInterrupts
+/* 80271B30 0026D790 38 60 00 01 */ li r3, 1
+lbl_80271B34:
+/* 80271B34 0026D794 39 61 00 20 */ addi r11, r1, 0x20
+/* 80271B38 0026D798 4B F5 56 39 */ bl _restgpr_26
+/* 80271B3C 0026D79C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80271B40 0026D7A0 7C 08 03 A6 */ mtlr r0
+/* 80271B44 0026D7A4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80271B48 0026D7A8 4E 80 00 20 */ blr
+
+.global OSExitThread
+OSExitThread:
+/* 80271B4C 0026D7AC 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80271B50 0026D7B0 7C 08 02 A6 */ mflr r0
+/* 80271B54 0026D7B4 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80271B58 0026D7B8 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80271B5C 0026D7BC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80271B60 0026D7C0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80271B64 0026D7C4 93 81 00 10 */ stw r28, 0x10(r1)
+/* 80271B68 0026D7C8 7C 7C 1B 78 */ mr r28, r3
+/* 80271B6C 0026D7CC 4B FF CB F1 */ bl OSDisableInterrupts
+/* 80271B70 0026D7D0 3F E0 80 00 */ lis r31, 0x800000E4@ha
+/* 80271B74 0026D7D4 7C 7D 1B 78 */ mr r29, r3
+/* 80271B78 0026D7D8 83 DF 00 E4 */ lwz r30, 0x800000E4@l(r31)
+/* 80271B7C 0026D7DC 7F C3 F3 78 */ mr r3, r30
+/* 80271B80 0026D7E0 4B FF 95 11 */ bl OSClearContext
+/* 80271B84 0026D7E4 A0 1E 02 CA */ lhz r0, 0x2ca(r30)
+/* 80271B88 0026D7E8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80271B8C 0026D7EC 41 82 00 44 */ beq lbl_80271BD0
+/* 80271B90 0026D7F0 80 9E 02 FC */ lwz r4, 0x2fc(r30)
+/* 80271B94 0026D7F4 80 7E 03 00 */ lwz r3, 0x300(r30)
+/* 80271B98 0026D7F8 2C 04 00 00 */ cmpwi r4, 0
+/* 80271B9C 0026D7FC 40 82 00 0C */ bne lbl_80271BA8
+/* 80271BA0 0026D800 90 7F 00 E0 */ stw r3, 0xe0(r31)
+/* 80271BA4 0026D804 48 00 00 08 */ b lbl_80271BAC
+lbl_80271BA8:
+/* 80271BA8 0026D808 90 64 03 00 */ stw r3, 0x300(r4)
+lbl_80271BAC:
+/* 80271BAC 0026D80C 2C 03 00 00 */ cmpwi r3, 0
+/* 80271BB0 0026D810 40 82 00 10 */ bne lbl_80271BC0
+/* 80271BB4 0026D814 3C 60 80 00 */ lis r3, 0x800000DC@ha
+/* 80271BB8 0026D818 90 83 00 DC */ stw r4, 0x800000DC@l(r3)
+/* 80271BBC 0026D81C 48 00 00 08 */ b lbl_80271BC4
+lbl_80271BC0:
+/* 80271BC0 0026D820 90 83 02 FC */ stw r4, 0x2fc(r3)
+lbl_80271BC4:
+/* 80271BC4 0026D824 38 00 00 00 */ li r0, 0
+/* 80271BC8 0026D828 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
+/* 80271BCC 0026D82C 48 00 00 10 */ b lbl_80271BDC
+lbl_80271BD0:
+/* 80271BD0 0026D830 38 00 00 08 */ li r0, 8
+/* 80271BD4 0026D834 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
+/* 80271BD8 0026D838 93 9E 02 D8 */ stw r28, 0x2d8(r30)
+lbl_80271BDC:
+/* 80271BDC 0026D83C 7F C3 F3 78 */ mr r3, r30
+/* 80271BE0 0026D840 4B FF DF 0D */ bl __OSUnlockAllMutex
+/* 80271BE4 0026D844 38 7E 02 E8 */ addi r3, r30, 0x2e8
+/* 80271BE8 0026D848 48 00 08 79 */ bl OSWakeupThread
+/* 80271BEC 0026D84C 38 00 00 01 */ li r0, 1
+/* 80271BF0 0026D850 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80271BF4 0026D854 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80271BF8 0026D858 2C 00 00 00 */ cmpwi r0, 0
+/* 80271BFC 0026D85C 41 82 00 0C */ beq lbl_80271C08
+/* 80271C00 0026D860 38 60 00 00 */ li r3, 0
+/* 80271C04 0026D864 4B FF FA 61 */ bl SelectThread
+lbl_80271C08:
+/* 80271C08 0026D868 7F A3 EB 78 */ mr r3, r29
+/* 80271C0C 0026D86C 4B FF CB 79 */ bl OSRestoreInterrupts
+/* 80271C10 0026D870 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80271C14 0026D874 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80271C18 0026D878 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80271C1C 0026D87C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80271C20 0026D880 83 81 00 10 */ lwz r28, 0x10(r1)
+/* 80271C24 0026D884 7C 08 03 A6 */ mtlr r0
+/* 80271C28 0026D888 38 21 00 20 */ addi r1, r1, 0x20
+/* 80271C2C 0026D88C 4E 80 00 20 */ blr
+
+.global OSCancelThread
+OSCancelThread:
+/* 80271C30 0026D890 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80271C34 0026D894 7C 08 02 A6 */ mflr r0
+/* 80271C38 0026D898 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80271C3C 0026D89C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80271C40 0026D8A0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80271C44 0026D8A4 7C 7E 1B 78 */ mr r30, r3
+/* 80271C48 0026D8A8 4B FF CB 15 */ bl OSDisableInterrupts
+/* 80271C4C 0026D8AC A0 1E 02 C8 */ lhz r0, 0x2c8(r30)
+/* 80271C50 0026D8B0 7C 7F 1B 78 */ mr r31, r3
+/* 80271C54 0026D8B4 2C 00 00 03 */ cmpwi r0, 3
+/* 80271C58 0026D8B8 41 82 01 00 */ beq lbl_80271D58
+/* 80271C5C 0026D8BC 40 80 00 14 */ bge lbl_80271C70
+/* 80271C60 0026D8C0 2C 00 00 01 */ cmpwi r0, 1
+/* 80271C64 0026D8C4 41 82 00 18 */ beq lbl_80271C7C
+/* 80271C68 0026D8C8 40 80 00 2C */ bge lbl_80271C94
+/* 80271C6C 0026D8CC 48 00 00 EC */ b lbl_80271D58
+lbl_80271C70:
+/* 80271C70 0026D8D0 2C 00 00 05 */ cmpwi r0, 5
+/* 80271C74 0026D8D4 40 80 00 E4 */ bge lbl_80271D58
+/* 80271C78 0026D8D8 48 00 00 28 */ b lbl_80271CA0
+lbl_80271C7C:
+/* 80271C7C 0026D8DC 80 1E 02 CC */ lwz r0, 0x2cc(r30)
+/* 80271C80 0026D8E0 2C 00 00 00 */ cmpwi r0, 0
+/* 80271C84 0026D8E4 41 81 00 E0 */ bgt lbl_80271D64
+/* 80271C88 0026D8E8 7F C3 F3 78 */ mr r3, r30
+/* 80271C8C 0026D8EC 4B FF F7 31 */ bl UnsetRun
+/* 80271C90 0026D8F0 48 00 00 D4 */ b lbl_80271D64
+lbl_80271C94:
+/* 80271C94 0026D8F4 38 00 00 01 */ li r0, 1
+/* 80271C98 0026D8F8 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80271C9C 0026D8FC 48 00 00 C8 */ b lbl_80271D64
+lbl_80271CA0:
+/* 80271CA0 0026D900 80 9E 02 E0 */ lwz r4, 0x2e0(r30)
+/* 80271CA4 0026D904 80 BE 02 E4 */ lwz r5, 0x2e4(r30)
+/* 80271CA8 0026D908 2C 04 00 00 */ cmpwi r4, 0
+/* 80271CAC 0026D90C 40 82 00 10 */ bne lbl_80271CBC
+/* 80271CB0 0026D910 80 7E 02 DC */ lwz r3, 0x2dc(r30)
+/* 80271CB4 0026D914 90 A3 00 04 */ stw r5, 4(r3)
+/* 80271CB8 0026D918 48 00 00 08 */ b lbl_80271CC0
+lbl_80271CBC:
+/* 80271CBC 0026D91C 90 A4 02 E4 */ stw r5, 0x2e4(r4)
+lbl_80271CC0:
+/* 80271CC0 0026D920 2C 05 00 00 */ cmpwi r5, 0
+/* 80271CC4 0026D924 40 82 00 10 */ bne lbl_80271CD4
+/* 80271CC8 0026D928 80 7E 02 DC */ lwz r3, 0x2dc(r30)
+/* 80271CCC 0026D92C 90 83 00 00 */ stw r4, 0(r3)
+/* 80271CD0 0026D930 48 00 00 08 */ b lbl_80271CD8
+lbl_80271CD4:
+/* 80271CD4 0026D934 90 85 02 E0 */ stw r4, 0x2e0(r5)
+lbl_80271CD8:
+/* 80271CD8 0026D938 80 1E 02 CC */ lwz r0, 0x2cc(r30)
+/* 80271CDC 0026D93C 38 60 00 00 */ li r3, 0
+/* 80271CE0 0026D940 90 7E 02 DC */ stw r3, 0x2dc(r30)
+/* 80271CE4 0026D944 2C 00 00 00 */ cmpwi r0, 0
+/* 80271CE8 0026D948 41 81 00 7C */ bgt lbl_80271D64
+/* 80271CEC 0026D94C 80 7E 02 F0 */ lwz r3, 0x2f0(r30)
+/* 80271CF0 0026D950 2C 03 00 00 */ cmpwi r3, 0
+/* 80271CF4 0026D954 41 82 00 70 */ beq lbl_80271D64
+/* 80271CF8 0026D958 80 63 00 08 */ lwz r3, 8(r3)
+lbl_80271CFC:
+/* 80271CFC 0026D95C 80 03 02 CC */ lwz r0, 0x2cc(r3)
+/* 80271D00 0026D960 2C 00 00 00 */ cmpwi r0, 0
+/* 80271D04 0026D964 41 81 00 60 */ bgt lbl_80271D64
+/* 80271D08 0026D968 80 83 02 D4 */ lwz r4, 0x2d4(r3)
+/* 80271D0C 0026D96C 80 A3 02 F4 */ lwz r5, 0x2f4(r3)
+/* 80271D10 0026D970 48 00 00 24 */ b lbl_80271D34
+lbl_80271D14:
+/* 80271D14 0026D974 80 C5 00 00 */ lwz r6, 0(r5)
+/* 80271D18 0026D978 2C 06 00 00 */ cmpwi r6, 0
+/* 80271D1C 0026D97C 41 82 00 14 */ beq lbl_80271D30
+/* 80271D20 0026D980 80 06 02 D0 */ lwz r0, 0x2d0(r6)
+/* 80271D24 0026D984 7C 00 20 00 */ cmpw r0, r4
+/* 80271D28 0026D988 40 80 00 08 */ bge lbl_80271D30
+/* 80271D2C 0026D98C 7C 04 03 78 */ mr r4, r0
+lbl_80271D30:
+/* 80271D30 0026D990 80 A5 00 10 */ lwz r5, 0x10(r5)
+lbl_80271D34:
+/* 80271D34 0026D994 2C 05 00 00 */ cmpwi r5, 0
+/* 80271D38 0026D998 40 82 FF DC */ bne lbl_80271D14
+/* 80271D3C 0026D99C 80 03 02 D0 */ lwz r0, 0x2d0(r3)
+/* 80271D40 0026D9A0 7C 00 20 00 */ cmpw r0, r4
+/* 80271D44 0026D9A4 41 82 00 20 */ beq lbl_80271D64
+/* 80271D48 0026D9A8 4B FF F7 19 */ bl SetEffectivePriority
+/* 80271D4C 0026D9AC 2C 03 00 00 */ cmpwi r3, 0
+/* 80271D50 0026D9B0 40 82 FF AC */ bne lbl_80271CFC
+/* 80271D54 0026D9B4 48 00 00 10 */ b lbl_80271D64
+lbl_80271D58:
+/* 80271D58 0026D9B8 7F E3 FB 78 */ mr r3, r31
+/* 80271D5C 0026D9BC 4B FF CA 29 */ bl OSRestoreInterrupts
+/* 80271D60 0026D9C0 48 00 00 90 */ b lbl_80271DF0
+lbl_80271D64:
+/* 80271D64 0026D9C4 7F C3 F3 78 */ mr r3, r30
+/* 80271D68 0026D9C8 4B FF 93 29 */ bl OSClearContext
+/* 80271D6C 0026D9CC A0 1E 02 CA */ lhz r0, 0x2ca(r30)
+/* 80271D70 0026D9D0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80271D74 0026D9D4 41 82 00 48 */ beq lbl_80271DBC
+/* 80271D78 0026D9D8 80 9E 02 FC */ lwz r4, 0x2fc(r30)
+/* 80271D7C 0026D9DC 80 BE 03 00 */ lwz r5, 0x300(r30)
+/* 80271D80 0026D9E0 2C 04 00 00 */ cmpwi r4, 0
+/* 80271D84 0026D9E4 40 82 00 10 */ bne lbl_80271D94
+/* 80271D88 0026D9E8 3C 60 80 00 */ lis r3, 0x800000E0@ha
+/* 80271D8C 0026D9EC 90 A3 00 E0 */ stw r5, 0x800000E0@l(r3)
+/* 80271D90 0026D9F0 48 00 00 08 */ b lbl_80271D98
+lbl_80271D94:
+/* 80271D94 0026D9F4 90 A4 03 00 */ stw r5, 0x300(r4)
+lbl_80271D98:
+/* 80271D98 0026D9F8 2C 05 00 00 */ cmpwi r5, 0
+/* 80271D9C 0026D9FC 40 82 00 10 */ bne lbl_80271DAC
+/* 80271DA0 0026DA00 3C 60 80 00 */ lis r3, 0x800000DC@ha
+/* 80271DA4 0026DA04 90 83 00 DC */ stw r4, 0x800000DC@l(r3)
+/* 80271DA8 0026DA08 48 00 00 08 */ b lbl_80271DB0
+lbl_80271DAC:
+/* 80271DAC 0026DA0C 90 85 02 FC */ stw r4, 0x2fc(r5)
+lbl_80271DB0:
+/* 80271DB0 0026DA10 38 00 00 00 */ li r0, 0
+/* 80271DB4 0026DA14 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
+/* 80271DB8 0026DA18 48 00 00 0C */ b lbl_80271DC4
+lbl_80271DBC:
+/* 80271DBC 0026DA1C 38 00 00 08 */ li r0, 8
+/* 80271DC0 0026DA20 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
+lbl_80271DC4:
+/* 80271DC4 0026DA24 7F C3 F3 78 */ mr r3, r30
+/* 80271DC8 0026DA28 4B FF DD 25 */ bl __OSUnlockAllMutex
+/* 80271DCC 0026DA2C 38 7E 02 E8 */ addi r3, r30, 0x2e8
+/* 80271DD0 0026DA30 48 00 06 91 */ bl OSWakeupThread
+/* 80271DD4 0026DA34 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80271DD8 0026DA38 2C 00 00 00 */ cmpwi r0, 0
+/* 80271DDC 0026DA3C 41 82 00 0C */ beq lbl_80271DE8
+/* 80271DE0 0026DA40 38 60 00 00 */ li r3, 0
+/* 80271DE4 0026DA44 4B FF F8 81 */ bl SelectThread
+lbl_80271DE8:
+/* 80271DE8 0026DA48 7F E3 FB 78 */ mr r3, r31
+/* 80271DEC 0026DA4C 4B FF C9 99 */ bl OSRestoreInterrupts
+lbl_80271DF0:
+/* 80271DF0 0026DA50 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80271DF4 0026DA54 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80271DF8 0026DA58 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80271DFC 0026DA5C 7C 08 03 A6 */ mtlr r0
+/* 80271E00 0026DA60 38 21 00 10 */ addi r1, r1, 0x10
+/* 80271E04 0026DA64 4E 80 00 20 */ blr
+
+.global OSJoinThread
+OSJoinThread:
+/* 80271E08 0026DA68 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80271E0C 0026DA6C 7C 08 02 A6 */ mflr r0
+/* 80271E10 0026DA70 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80271E14 0026DA74 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80271E18 0026DA78 7C 7F 1B 78 */ mr r31, r3
+/* 80271E1C 0026DA7C 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80271E20 0026DA80 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80271E24 0026DA84 7C 9D 23 78 */ mr r29, r4
+/* 80271E28 0026DA88 4B FF C9 35 */ bl OSDisableInterrupts
+/* 80271E2C 0026DA8C A0 1F 02 CA */ lhz r0, 0x2ca(r31)
+/* 80271E30 0026DA90 7C 7E 1B 78 */ mr r30, r3
+/* 80271E34 0026DA94 54 00 07 FF */ clrlwi. r0, r0, 0x1f
+/* 80271E38 0026DA98 40 82 00 7C */ bne lbl_80271EB4
+/* 80271E3C 0026DA9C A0 1F 02 C8 */ lhz r0, 0x2c8(r31)
+/* 80271E40 0026DAA0 28 00 00 08 */ cmplwi r0, 8
+/* 80271E44 0026DAA4 41 82 00 70 */ beq lbl_80271EB4
+/* 80271E48 0026DAA8 80 1F 02 E8 */ lwz r0, 0x2e8(r31)
+/* 80271E4C 0026DAAC 2C 00 00 00 */ cmpwi r0, 0
+/* 80271E50 0026DAB0 40 82 00 64 */ bne lbl_80271EB4
+/* 80271E54 0026DAB4 38 7F 02 E8 */ addi r3, r31, 0x2e8
+/* 80271E58 0026DAB8 48 00 05 1D */ bl OSSleepThread
+/* 80271E5C 0026DABC A0 1F 02 C8 */ lhz r0, 0x2c8(r31)
+/* 80271E60 0026DAC0 2C 00 00 00 */ cmpwi r0, 0
+/* 80271E64 0026DAC4 40 82 00 0C */ bne lbl_80271E70
+/* 80271E68 0026DAC8 38 00 00 00 */ li r0, 0
+/* 80271E6C 0026DACC 48 00 00 30 */ b lbl_80271E9C
+lbl_80271E70:
+/* 80271E70 0026DAD0 3C 60 80 00 */ lis r3, 0x800000DC@ha
+/* 80271E74 0026DAD4 80 63 00 DC */ lwz r3, 0x800000DC@l(r3)
+/* 80271E78 0026DAD8 48 00 00 18 */ b lbl_80271E90
+lbl_80271E7C:
+/* 80271E7C 0026DADC 7C 1F 18 40 */ cmplw r31, r3
+/* 80271E80 0026DAE0 40 82 00 0C */ bne lbl_80271E8C
+/* 80271E84 0026DAE4 38 00 00 01 */ li r0, 1
+/* 80271E88 0026DAE8 48 00 00 14 */ b lbl_80271E9C
+lbl_80271E8C:
+/* 80271E8C 0026DAEC 80 63 02 FC */ lwz r3, 0x2fc(r3)
+lbl_80271E90:
+/* 80271E90 0026DAF0 2C 03 00 00 */ cmpwi r3, 0
+/* 80271E94 0026DAF4 40 82 FF E8 */ bne lbl_80271E7C
+/* 80271E98 0026DAF8 38 00 00 00 */ li r0, 0
+lbl_80271E9C:
+/* 80271E9C 0026DAFC 2C 00 00 00 */ cmpwi r0, 0
+/* 80271EA0 0026DB00 40 82 00 14 */ bne lbl_80271EB4
+/* 80271EA4 0026DB04 7F C3 F3 78 */ mr r3, r30
+/* 80271EA8 0026DB08 4B FF C8 DD */ bl OSRestoreInterrupts
+/* 80271EAC 0026DB0C 38 60 00 00 */ li r3, 0
+/* 80271EB0 0026DB10 48 00 00 7C */ b lbl_80271F2C
+lbl_80271EB4:
+/* 80271EB4 0026DB14 A0 1F 02 C8 */ lhz r0, 0x2c8(r31)
+/* 80271EB8 0026DB18 28 00 00 08 */ cmplwi r0, 8
+/* 80271EBC 0026DB1C 40 82 00 64 */ bne lbl_80271F20
+/* 80271EC0 0026DB20 2C 1D 00 00 */ cmpwi r29, 0
+/* 80271EC4 0026DB24 41 82 00 0C */ beq lbl_80271ED0
+/* 80271EC8 0026DB28 80 1F 02 D8 */ lwz r0, 0x2d8(r31)
+/* 80271ECC 0026DB2C 90 1D 00 00 */ stw r0, 0(r29)
+lbl_80271ED0:
+/* 80271ED0 0026DB30 80 9F 02 FC */ lwz r4, 0x2fc(r31)
+/* 80271ED4 0026DB34 80 BF 03 00 */ lwz r5, 0x300(r31)
+/* 80271ED8 0026DB38 2C 04 00 00 */ cmpwi r4, 0
+/* 80271EDC 0026DB3C 40 82 00 10 */ bne lbl_80271EEC
+/* 80271EE0 0026DB40 3C 60 80 00 */ lis r3, 0x800000E0@ha
+/* 80271EE4 0026DB44 90 A3 00 E0 */ stw r5, 0x800000E0@l(r3)
+/* 80271EE8 0026DB48 48 00 00 08 */ b lbl_80271EF0
+lbl_80271EEC:
+/* 80271EEC 0026DB4C 90 A4 03 00 */ stw r5, 0x300(r4)
+lbl_80271EF0:
+/* 80271EF0 0026DB50 2C 05 00 00 */ cmpwi r5, 0
+/* 80271EF4 0026DB54 40 82 00 10 */ bne lbl_80271F04
+/* 80271EF8 0026DB58 3C 60 80 00 */ lis r3, 0x800000DC@ha
+/* 80271EFC 0026DB5C 90 83 00 DC */ stw r4, 0x800000DC@l(r3)
+/* 80271F00 0026DB60 48 00 00 08 */ b lbl_80271F08
+lbl_80271F04:
+/* 80271F04 0026DB64 90 85 02 FC */ stw r4, 0x2fc(r5)
+lbl_80271F08:
+/* 80271F08 0026DB68 38 00 00 00 */ li r0, 0
+/* 80271F0C 0026DB6C 7F C3 F3 78 */ mr r3, r30
+/* 80271F10 0026DB70 B0 1F 02 C8 */ sth r0, 0x2c8(r31)
+/* 80271F14 0026DB74 4B FF C8 71 */ bl OSRestoreInterrupts
+/* 80271F18 0026DB78 38 60 00 01 */ li r3, 1
+/* 80271F1C 0026DB7C 48 00 00 10 */ b lbl_80271F2C
+lbl_80271F20:
+/* 80271F20 0026DB80 7F C3 F3 78 */ mr r3, r30
+/* 80271F24 0026DB84 4B FF C8 61 */ bl OSRestoreInterrupts
+/* 80271F28 0026DB88 38 60 00 00 */ li r3, 0
+lbl_80271F2C:
+/* 80271F2C 0026DB8C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80271F30 0026DB90 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80271F34 0026DB94 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80271F38 0026DB98 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80271F3C 0026DB9C 7C 08 03 A6 */ mtlr r0
+/* 80271F40 0026DBA0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80271F44 0026DBA4 4E 80 00 20 */ blr
+
+.global OSResumeThread
+OSResumeThread:
+/* 80271F48 0026DBA8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80271F4C 0026DBAC 7C 08 02 A6 */ mflr r0
+/* 80271F50 0026DBB0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80271F54 0026DBB4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80271F58 0026DBB8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80271F5C 0026DBBC 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80271F60 0026DBC0 7C 7D 1B 78 */ mr r29, r3
+/* 80271F64 0026DBC4 4B FF C7 F9 */ bl OSDisableInterrupts
+/* 80271F68 0026DBC8 83 DD 02 CC */ lwz r30, 0x2cc(r29)
+/* 80271F6C 0026DBCC 7C 7F 1B 78 */ mr r31, r3
+/* 80271F70 0026DBD0 34 1E FF FF */ addic. r0, r30, -1
+/* 80271F74 0026DBD4 90 1D 02 CC */ stw r0, 0x2cc(r29)
+/* 80271F78 0026DBD8 40 80 00 10 */ bge lbl_80271F88
+/* 80271F7C 0026DBDC 38 00 00 00 */ li r0, 0
+/* 80271F80 0026DBE0 90 1D 02 CC */ stw r0, 0x2cc(r29)
+/* 80271F84 0026DBE4 48 00 02 34 */ b lbl_802721B8
+lbl_80271F88:
+/* 80271F88 0026DBE8 40 82 02 30 */ bne lbl_802721B8
+/* 80271F8C 0026DBEC A0 1D 02 C8 */ lhz r0, 0x2c8(r29)
+/* 80271F90 0026DBF0 2C 00 00 04 */ cmpwi r0, 4
+/* 80271F94 0026DBF4 41 82 00 B0 */ beq lbl_80272044
+/* 80271F98 0026DBF8 40 80 02 0C */ bge lbl_802721A4
+/* 80271F9C 0026DBFC 2C 00 00 01 */ cmpwi r0, 1
+/* 80271FA0 0026DC00 41 82 00 08 */ beq lbl_80271FA8
+/* 80271FA4 0026DC04 48 00 02 00 */ b lbl_802721A4
+lbl_80271FA8:
+/* 80271FA8 0026DC08 80 BD 02 D4 */ lwz r5, 0x2d4(r29)
+/* 80271FAC 0026DC0C 80 9D 02 F4 */ lwz r4, 0x2f4(r29)
+/* 80271FB0 0026DC10 48 00 00 24 */ b lbl_80271FD4
+lbl_80271FB4:
+/* 80271FB4 0026DC14 80 64 00 00 */ lwz r3, 0(r4)
+/* 80271FB8 0026DC18 2C 03 00 00 */ cmpwi r3, 0
+/* 80271FBC 0026DC1C 41 82 00 14 */ beq lbl_80271FD0
+/* 80271FC0 0026DC20 80 03 02 D0 */ lwz r0, 0x2d0(r3)
+/* 80271FC4 0026DC24 7C 00 28 00 */ cmpw r0, r5
+/* 80271FC8 0026DC28 40 80 00 08 */ bge lbl_80271FD0
+/* 80271FCC 0026DC2C 7C 05 03 78 */ mr r5, r0
+lbl_80271FD0:
+/* 80271FD0 0026DC30 80 84 00 10 */ lwz r4, 0x10(r4)
+lbl_80271FD4:
+/* 80271FD4 0026DC34 2C 04 00 00 */ cmpwi r4, 0
+/* 80271FD8 0026DC38 40 82 FF DC */ bne lbl_80271FB4
+/* 80271FDC 0026DC3C 3C 60 80 51 */ lis r3, lbl_80514AF0@ha
+/* 80271FE0 0026DC40 54 A0 18 38 */ slwi r0, r5, 3
+/* 80271FE4 0026DC44 38 63 4A F0 */ addi r3, r3, lbl_80514AF0@l
+/* 80271FE8 0026DC48 90 BD 02 D0 */ stw r5, 0x2d0(r29)
+/* 80271FEC 0026DC4C 7C 63 02 14 */ add r3, r3, r0
+/* 80271FF0 0026DC50 90 7D 02 DC */ stw r3, 0x2dc(r29)
+/* 80271FF4 0026DC54 80 83 00 04 */ lwz r4, 4(r3)
+/* 80271FF8 0026DC58 2C 04 00 00 */ cmpwi r4, 0
+/* 80271FFC 0026DC5C 40 82 00 0C */ bne lbl_80272008
+/* 80272000 0026DC60 93 A3 00 00 */ stw r29, 0(r3)
+/* 80272004 0026DC64 48 00 00 08 */ b lbl_8027200C
+lbl_80272008:
+/* 80272008 0026DC68 93 A4 02 E0 */ stw r29, 0x2e0(r4)
+lbl_8027200C:
+/* 8027200C 0026DC6C 38 00 00 00 */ li r0, 0
+/* 80272010 0026DC70 90 9D 02 E4 */ stw r4, 0x2e4(r29)
+/* 80272014 0026DC74 80 9D 02 DC */ lwz r4, 0x2dc(r29)
+/* 80272018 0026DC78 38 60 00 01 */ li r3, 1
+/* 8027201C 0026DC7C 90 1D 02 E0 */ stw r0, 0x2e0(r29)
+/* 80272020 0026DC80 93 A4 00 04 */ stw r29, 4(r4)
+/* 80272024 0026DC84 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
+/* 80272028 0026DC88 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 8027202C 0026DC8C 20 00 00 1F */ subfic r0, r0, 0x1f
+/* 80272030 0026DC90 7C 60 00 30 */ slw r0, r3, r0
+/* 80272034 0026DC94 7C 80 03 78 */ or r0, r4, r0
+/* 80272038 0026DC98 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 8027203C 0026DC9C 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80272040 0026DCA0 48 00 01 64 */ b lbl_802721A4
+lbl_80272044:
+/* 80272044 0026DCA4 80 9D 02 E0 */ lwz r4, 0x2e0(r29)
+/* 80272048 0026DCA8 80 BD 02 E4 */ lwz r5, 0x2e4(r29)
+/* 8027204C 0026DCAC 2C 04 00 00 */ cmpwi r4, 0
+/* 80272050 0026DCB0 40 82 00 10 */ bne lbl_80272060
+/* 80272054 0026DCB4 80 7D 02 DC */ lwz r3, 0x2dc(r29)
+/* 80272058 0026DCB8 90 A3 00 04 */ stw r5, 4(r3)
+/* 8027205C 0026DCBC 48 00 00 08 */ b lbl_80272064
+lbl_80272060:
+/* 80272060 0026DCC0 90 A4 02 E4 */ stw r5, 0x2e4(r4)
+lbl_80272064:
+/* 80272064 0026DCC4 2C 05 00 00 */ cmpwi r5, 0
+/* 80272068 0026DCC8 40 82 00 10 */ bne lbl_80272078
+/* 8027206C 0026DCCC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
+/* 80272070 0026DCD0 90 83 00 00 */ stw r4, 0(r3)
+/* 80272074 0026DCD4 48 00 00 08 */ b lbl_8027207C
+lbl_80272078:
+/* 80272078 0026DCD8 90 85 02 E0 */ stw r4, 0x2e0(r5)
+lbl_8027207C:
+/* 8027207C 0026DCDC 80 1D 02 D4 */ lwz r0, 0x2d4(r29)
+/* 80272080 0026DCE0 80 9D 02 F4 */ lwz r4, 0x2f4(r29)
+/* 80272084 0026DCE4 48 00 00 24 */ b lbl_802720A8
+lbl_80272088:
+/* 80272088 0026DCE8 80 64 00 00 */ lwz r3, 0(r4)
+/* 8027208C 0026DCEC 2C 03 00 00 */ cmpwi r3, 0
+/* 80272090 0026DCF0 41 82 00 14 */ beq lbl_802720A4
+/* 80272094 0026DCF4 80 63 02 D0 */ lwz r3, 0x2d0(r3)
+/* 80272098 0026DCF8 7C 03 00 00 */ cmpw r3, r0
+/* 8027209C 0026DCFC 40 80 00 08 */ bge lbl_802720A4
+/* 802720A0 0026DD00 7C 60 1B 78 */ mr r0, r3
+lbl_802720A4:
+/* 802720A4 0026DD04 80 84 00 10 */ lwz r4, 0x10(r4)
+lbl_802720A8:
+/* 802720A8 0026DD08 2C 04 00 00 */ cmpwi r4, 0
+/* 802720AC 0026DD0C 40 82 FF DC */ bne lbl_80272088
+/* 802720B0 0026DD10 90 1D 02 D0 */ stw r0, 0x2d0(r29)
+/* 802720B4 0026DD14 80 9D 02 DC */ lwz r4, 0x2dc(r29)
+/* 802720B8 0026DD18 80 A4 00 00 */ lwz r5, 0(r4)
+/* 802720BC 0026DD1C 48 00 00 08 */ b lbl_802720C4
+lbl_802720C0:
+/* 802720C0 0026DD20 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
+lbl_802720C4:
+/* 802720C4 0026DD24 2C 05 00 00 */ cmpwi r5, 0
+/* 802720C8 0026DD28 41 82 00 14 */ beq lbl_802720DC
+/* 802720CC 0026DD2C 80 65 02 D0 */ lwz r3, 0x2d0(r5)
+/* 802720D0 0026DD30 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
+/* 802720D4 0026DD34 7C 03 00 00 */ cmpw r3, r0
+/* 802720D8 0026DD38 40 81 FF E8 */ ble lbl_802720C0
+lbl_802720DC:
+/* 802720DC 0026DD3C 2C 05 00 00 */ cmpwi r5, 0
+/* 802720E0 0026DD40 40 82 00 34 */ bne lbl_80272114
+/* 802720E4 0026DD44 80 64 00 04 */ lwz r3, 4(r4)
+/* 802720E8 0026DD48 2C 03 00 00 */ cmpwi r3, 0
+/* 802720EC 0026DD4C 40 82 00 0C */ bne lbl_802720F8
+/* 802720F0 0026DD50 93 A4 00 00 */ stw r29, 0(r4)
+/* 802720F4 0026DD54 48 00 00 08 */ b lbl_802720FC
+lbl_802720F8:
+/* 802720F8 0026DD58 93 A3 02 E0 */ stw r29, 0x2e0(r3)
+lbl_802720FC:
+/* 802720FC 0026DD5C 38 00 00 00 */ li r0, 0
+/* 80272100 0026DD60 90 7D 02 E4 */ stw r3, 0x2e4(r29)
+/* 80272104 0026DD64 80 7D 02 DC */ lwz r3, 0x2dc(r29)
+/* 80272108 0026DD68 90 1D 02 E0 */ stw r0, 0x2e0(r29)
+/* 8027210C 0026DD6C 93 A3 00 04 */ stw r29, 4(r3)
+/* 80272110 0026DD70 48 00 00 2C */ b lbl_8027213C
+lbl_80272114:
+/* 80272114 0026DD74 90 BD 02 E0 */ stw r5, 0x2e0(r29)
+/* 80272118 0026DD78 80 65 02 E4 */ lwz r3, 0x2e4(r5)
+/* 8027211C 0026DD7C 93 A5 02 E4 */ stw r29, 0x2e4(r5)
+/* 80272120 0026DD80 2C 03 00 00 */ cmpwi r3, 0
+/* 80272124 0026DD84 90 7D 02 E4 */ stw r3, 0x2e4(r29)
+/* 80272128 0026DD88 40 82 00 10 */ bne lbl_80272138
+/* 8027212C 0026DD8C 80 7D 02 DC */ lwz r3, 0x2dc(r29)
+/* 80272130 0026DD90 93 A3 00 00 */ stw r29, 0(r3)
+/* 80272134 0026DD94 48 00 00 08 */ b lbl_8027213C
+lbl_80272138:
+/* 80272138 0026DD98 93 A3 02 E0 */ stw r29, 0x2e0(r3)
+lbl_8027213C:
+/* 8027213C 0026DD9C 80 7D 02 F0 */ lwz r3, 0x2f0(r29)
+/* 80272140 0026DDA0 2C 03 00 00 */ cmpwi r3, 0
+/* 80272144 0026DDA4 41 82 00 60 */ beq lbl_802721A4
+/* 80272148 0026DDA8 80 63 00 08 */ lwz r3, 8(r3)
+lbl_8027214C:
+/* 8027214C 0026DDAC 80 03 02 CC */ lwz r0, 0x2cc(r3)
+/* 80272150 0026DDB0 2C 00 00 00 */ cmpwi r0, 0
+/* 80272154 0026DDB4 41 81 00 50 */ bgt lbl_802721A4
+/* 80272158 0026DDB8 80 83 02 D4 */ lwz r4, 0x2d4(r3)
+/* 8027215C 0026DDBC 80 A3 02 F4 */ lwz r5, 0x2f4(r3)
+/* 80272160 0026DDC0 48 00 00 24 */ b lbl_80272184
+lbl_80272164:
+/* 80272164 0026DDC4 80 C5 00 00 */ lwz r6, 0(r5)
+/* 80272168 0026DDC8 2C 06 00 00 */ cmpwi r6, 0
+/* 8027216C 0026DDCC 41 82 00 14 */ beq lbl_80272180
+/* 80272170 0026DDD0 80 06 02 D0 */ lwz r0, 0x2d0(r6)
+/* 80272174 0026DDD4 7C 00 20 00 */ cmpw r0, r4
+/* 80272178 0026DDD8 40 80 00 08 */ bge lbl_80272180
+/* 8027217C 0026DDDC 7C 04 03 78 */ mr r4, r0
+lbl_80272180:
+/* 80272180 0026DDE0 80 A5 00 10 */ lwz r5, 0x10(r5)
+lbl_80272184:
+/* 80272184 0026DDE4 2C 05 00 00 */ cmpwi r5, 0
+/* 80272188 0026DDE8 40 82 FF DC */ bne lbl_80272164
+/* 8027218C 0026DDEC 80 03 02 D0 */ lwz r0, 0x2d0(r3)
+/* 80272190 0026DDF0 7C 00 20 00 */ cmpw r0, r4
+/* 80272194 0026DDF4 41 82 00 10 */ beq lbl_802721A4
+/* 80272198 0026DDF8 4B FF F2 C9 */ bl SetEffectivePriority
+/* 8027219C 0026DDFC 2C 03 00 00 */ cmpwi r3, 0
+/* 802721A0 0026DE00 40 82 FF AC */ bne lbl_8027214C
+lbl_802721A4:
+/* 802721A4 0026DE04 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 802721A8 0026DE08 2C 00 00 00 */ cmpwi r0, 0
+/* 802721AC 0026DE0C 41 82 00 0C */ beq lbl_802721B8
+/* 802721B0 0026DE10 38 60 00 00 */ li r3, 0
+/* 802721B4 0026DE14 4B FF F4 B1 */ bl SelectThread
+lbl_802721B8:
+/* 802721B8 0026DE18 7F E3 FB 78 */ mr r3, r31
+/* 802721BC 0026DE1C 4B FF C5 C9 */ bl OSRestoreInterrupts
+/* 802721C0 0026DE20 7F C3 F3 78 */ mr r3, r30
+/* 802721C4 0026DE24 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802721C8 0026DE28 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802721CC 0026DE2C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802721D0 0026DE30 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802721D4 0026DE34 7C 08 03 A6 */ mtlr r0
+/* 802721D8 0026DE38 38 21 00 20 */ addi r1, r1, 0x20
+/* 802721DC 0026DE3C 4E 80 00 20 */ blr
+
+.global OSSuspendThread
+OSSuspendThread:
+/* 802721E0 0026DE40 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802721E4 0026DE44 7C 08 02 A6 */ mflr r0
+/* 802721E8 0026DE48 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802721EC 0026DE4C 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802721F0 0026DE50 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802721F4 0026DE54 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802721F8 0026DE58 7C 7D 1B 78 */ mr r29, r3
+/* 802721FC 0026DE5C 4B FF C5 61 */ bl OSDisableInterrupts
+/* 80272200 0026DE60 83 DD 02 CC */ lwz r30, 0x2cc(r29)
+/* 80272204 0026DE64 7C 7F 1B 78 */ mr r31, r3
+/* 80272208 0026DE68 38 1E 00 01 */ addi r0, r30, 1
+/* 8027220C 0026DE6C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80272210 0026DE70 90 1D 02 CC */ stw r0, 0x2cc(r29)
+/* 80272214 0026DE74 40 82 01 38 */ bne lbl_8027234C
+/* 80272218 0026DE78 A0 1D 02 C8 */ lhz r0, 0x2c8(r29)
+/* 8027221C 0026DE7C 2C 00 00 03 */ cmpwi r0, 3
+/* 80272220 0026DE80 41 82 01 18 */ beq lbl_80272338
+/* 80272224 0026DE84 40 80 00 14 */ bge lbl_80272238
+/* 80272228 0026DE88 2C 00 00 01 */ cmpwi r0, 1
+/* 8027222C 0026DE8C 41 82 00 28 */ beq lbl_80272254
+/* 80272230 0026DE90 40 80 00 14 */ bge lbl_80272244
+/* 80272234 0026DE94 48 00 01 04 */ b lbl_80272338
+lbl_80272238:
+/* 80272238 0026DE98 2C 00 00 05 */ cmpwi r0, 5
+/* 8027223C 0026DE9C 40 80 00 FC */ bge lbl_80272338
+/* 80272240 0026DEA0 48 00 00 20 */ b lbl_80272260
+lbl_80272244:
+/* 80272244 0026DEA4 38 00 00 01 */ li r0, 1
+/* 80272248 0026DEA8 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 8027224C 0026DEAC B0 1D 02 C8 */ sth r0, 0x2c8(r29)
+/* 80272250 0026DEB0 48 00 00 E8 */ b lbl_80272338
+lbl_80272254:
+/* 80272254 0026DEB4 7F A3 EB 78 */ mr r3, r29
+/* 80272258 0026DEB8 4B FF F1 65 */ bl UnsetRun
+/* 8027225C 0026DEBC 48 00 00 DC */ b lbl_80272338
+lbl_80272260:
+/* 80272260 0026DEC0 80 9D 02 E0 */ lwz r4, 0x2e0(r29)
+/* 80272264 0026DEC4 80 BD 02 E4 */ lwz r5, 0x2e4(r29)
+/* 80272268 0026DEC8 2C 04 00 00 */ cmpwi r4, 0
+/* 8027226C 0026DECC 40 82 00 10 */ bne lbl_8027227C
+/* 80272270 0026DED0 80 7D 02 DC */ lwz r3, 0x2dc(r29)
+/* 80272274 0026DED4 90 A3 00 04 */ stw r5, 4(r3)
+/* 80272278 0026DED8 48 00 00 08 */ b lbl_80272280
+lbl_8027227C:
+/* 8027227C 0026DEDC 90 A4 02 E4 */ stw r5, 0x2e4(r4)
+lbl_80272280:
+/* 80272280 0026DEE0 2C 05 00 00 */ cmpwi r5, 0
+/* 80272284 0026DEE4 40 82 00 10 */ bne lbl_80272294
+/* 80272288 0026DEE8 80 7D 02 DC */ lwz r3, 0x2dc(r29)
+/* 8027228C 0026DEEC 90 83 00 00 */ stw r4, 0(r3)
+/* 80272290 0026DEF0 48 00 00 08 */ b lbl_80272298
+lbl_80272294:
+/* 80272294 0026DEF4 90 85 02 E0 */ stw r4, 0x2e0(r5)
+lbl_80272298:
+/* 80272298 0026DEF8 38 00 00 20 */ li r0, 0x20
+/* 8027229C 0026DEFC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
+/* 802722A0 0026DF00 90 1D 02 D0 */ stw r0, 0x2d0(r29)
+/* 802722A4 0026DF04 80 83 00 04 */ lwz r4, 4(r3)
+/* 802722A8 0026DF08 2C 04 00 00 */ cmpwi r4, 0
+/* 802722AC 0026DF0C 40 82 00 0C */ bne lbl_802722B8
+/* 802722B0 0026DF10 93 A3 00 00 */ stw r29, 0(r3)
+/* 802722B4 0026DF14 48 00 00 08 */ b lbl_802722BC
+lbl_802722B8:
+/* 802722B8 0026DF18 93 A4 02 E0 */ stw r29, 0x2e0(r4)
+lbl_802722BC:
+/* 802722BC 0026DF1C 38 00 00 00 */ li r0, 0
+/* 802722C0 0026DF20 90 9D 02 E4 */ stw r4, 0x2e4(r29)
+/* 802722C4 0026DF24 80 7D 02 DC */ lwz r3, 0x2dc(r29)
+/* 802722C8 0026DF28 90 1D 02 E0 */ stw r0, 0x2e0(r29)
+/* 802722CC 0026DF2C 93 A3 00 04 */ stw r29, 4(r3)
+/* 802722D0 0026DF30 80 7D 02 F0 */ lwz r3, 0x2f0(r29)
+/* 802722D4 0026DF34 2C 03 00 00 */ cmpwi r3, 0
+/* 802722D8 0026DF38 41 82 00 60 */ beq lbl_80272338
+/* 802722DC 0026DF3C 80 63 00 08 */ lwz r3, 8(r3)
+lbl_802722E0:
+/* 802722E0 0026DF40 80 03 02 CC */ lwz r0, 0x2cc(r3)
+/* 802722E4 0026DF44 2C 00 00 00 */ cmpwi r0, 0
+/* 802722E8 0026DF48 41 81 00 50 */ bgt lbl_80272338
+/* 802722EC 0026DF4C 80 83 02 D4 */ lwz r4, 0x2d4(r3)
+/* 802722F0 0026DF50 80 A3 02 F4 */ lwz r5, 0x2f4(r3)
+/* 802722F4 0026DF54 48 00 00 24 */ b lbl_80272318
+lbl_802722F8:
+/* 802722F8 0026DF58 80 C5 00 00 */ lwz r6, 0(r5)
+/* 802722FC 0026DF5C 2C 06 00 00 */ cmpwi r6, 0
+/* 80272300 0026DF60 41 82 00 14 */ beq lbl_80272314
+/* 80272304 0026DF64 80 06 02 D0 */ lwz r0, 0x2d0(r6)
+/* 80272308 0026DF68 7C 00 20 00 */ cmpw r0, r4
+/* 8027230C 0026DF6C 40 80 00 08 */ bge lbl_80272314
+/* 80272310 0026DF70 7C 04 03 78 */ mr r4, r0
+lbl_80272314:
+/* 80272314 0026DF74 80 A5 00 10 */ lwz r5, 0x10(r5)
+lbl_80272318:
+/* 80272318 0026DF78 2C 05 00 00 */ cmpwi r5, 0
+/* 8027231C 0026DF7C 40 82 FF DC */ bne lbl_802722F8
+/* 80272320 0026DF80 80 03 02 D0 */ lwz r0, 0x2d0(r3)
+/* 80272324 0026DF84 7C 00 20 00 */ cmpw r0, r4
+/* 80272328 0026DF88 41 82 00 10 */ beq lbl_80272338
+/* 8027232C 0026DF8C 4B FF F1 35 */ bl SetEffectivePriority
+/* 80272330 0026DF90 2C 03 00 00 */ cmpwi r3, 0
+/* 80272334 0026DF94 40 82 FF AC */ bne lbl_802722E0
+lbl_80272338:
+/* 80272338 0026DF98 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 8027233C 0026DF9C 2C 00 00 00 */ cmpwi r0, 0
+/* 80272340 0026DFA0 41 82 00 0C */ beq lbl_8027234C
+/* 80272344 0026DFA4 38 60 00 00 */ li r3, 0
+/* 80272348 0026DFA8 4B FF F3 1D */ bl SelectThread
+lbl_8027234C:
+/* 8027234C 0026DFAC 7F E3 FB 78 */ mr r3, r31
+/* 80272350 0026DFB0 4B FF C4 35 */ bl OSRestoreInterrupts
+/* 80272354 0026DFB4 7F C3 F3 78 */ mr r3, r30
+/* 80272358 0026DFB8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8027235C 0026DFBC 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80272360 0026DFC0 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80272364 0026DFC4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80272368 0026DFC8 7C 08 03 A6 */ mtlr r0
+/* 8027236C 0026DFCC 38 21 00 20 */ addi r1, r1, 0x20
+/* 80272370 0026DFD0 4E 80 00 20 */ blr
+
+.global OSSleepThread
+OSSleepThread:
+/* 80272374 0026DFD4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80272378 0026DFD8 7C 08 02 A6 */ mflr r0
+/* 8027237C 0026DFDC 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80272380 0026DFE0 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80272384 0026DFE4 93 C1 00 08 */ stw r30, 8(r1)
+/* 80272388 0026DFE8 7C 7E 1B 78 */ mr r30, r3
+/* 8027238C 0026DFEC 4B FF C3 D1 */ bl OSDisableInterrupts
+/* 80272390 0026DFF0 3C 80 80 00 */ lis r4, 0x800000E4@ha
+/* 80272394 0026DFF4 38 00 00 04 */ li r0, 4
+/* 80272398 0026DFF8 80 84 00 E4 */ lwz r4, 0x800000E4@l(r4)
+/* 8027239C 0026DFFC 7C 7F 1B 78 */ mr r31, r3
+/* 802723A0 0026E000 B0 04 02 C8 */ sth r0, 0x2c8(r4)
+/* 802723A4 0026E004 93 C4 02 DC */ stw r30, 0x2dc(r4)
+/* 802723A8 0026E008 80 BE 00 00 */ lwz r5, 0(r30)
+/* 802723AC 0026E00C 48 00 00 08 */ b lbl_802723B4
+lbl_802723B0:
+/* 802723B0 0026E010 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
+lbl_802723B4:
+/* 802723B4 0026E014 2C 05 00 00 */ cmpwi r5, 0
+/* 802723B8 0026E018 41 82 00 14 */ beq lbl_802723CC
+/* 802723BC 0026E01C 80 65 02 D0 */ lwz r3, 0x2d0(r5)
+/* 802723C0 0026E020 80 04 02 D0 */ lwz r0, 0x2d0(r4)
+/* 802723C4 0026E024 7C 03 00 00 */ cmpw r3, r0
+/* 802723C8 0026E028 40 81 FF E8 */ ble lbl_802723B0
+lbl_802723CC:
+/* 802723CC 0026E02C 2C 05 00 00 */ cmpwi r5, 0
+/* 802723D0 0026E030 40 82 00 30 */ bne lbl_80272400
+/* 802723D4 0026E034 80 7E 00 04 */ lwz r3, 4(r30)
+/* 802723D8 0026E038 2C 03 00 00 */ cmpwi r3, 0
+/* 802723DC 0026E03C 40 82 00 0C */ bne lbl_802723E8
+/* 802723E0 0026E040 90 9E 00 00 */ stw r4, 0(r30)
+/* 802723E4 0026E044 48 00 00 08 */ b lbl_802723EC
+lbl_802723E8:
+/* 802723E8 0026E048 90 83 02 E0 */ stw r4, 0x2e0(r3)
+lbl_802723EC:
+/* 802723EC 0026E04C 90 64 02 E4 */ stw r3, 0x2e4(r4)
+/* 802723F0 0026E050 38 00 00 00 */ li r0, 0
+/* 802723F4 0026E054 90 04 02 E0 */ stw r0, 0x2e0(r4)
+/* 802723F8 0026E058 90 9E 00 04 */ stw r4, 4(r30)
+/* 802723FC 0026E05C 48 00 00 28 */ b lbl_80272424
+lbl_80272400:
+/* 80272400 0026E060 90 A4 02 E0 */ stw r5, 0x2e0(r4)
+/* 80272404 0026E064 80 65 02 E4 */ lwz r3, 0x2e4(r5)
+/* 80272408 0026E068 90 85 02 E4 */ stw r4, 0x2e4(r5)
+/* 8027240C 0026E06C 2C 03 00 00 */ cmpwi r3, 0
+/* 80272410 0026E070 90 64 02 E4 */ stw r3, 0x2e4(r4)
+/* 80272414 0026E074 40 82 00 0C */ bne lbl_80272420
+/* 80272418 0026E078 90 9E 00 00 */ stw r4, 0(r30)
+/* 8027241C 0026E07C 48 00 00 08 */ b lbl_80272424
+lbl_80272420:
+/* 80272420 0026E080 90 83 02 E0 */ stw r4, 0x2e0(r3)
+lbl_80272424:
+/* 80272424 0026E084 38 00 00 01 */ li r0, 1
+/* 80272428 0026E088 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 8027242C 0026E08C 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80272430 0026E090 2C 00 00 00 */ cmpwi r0, 0
+/* 80272434 0026E094 41 82 00 0C */ beq lbl_80272440
+/* 80272438 0026E098 38 60 00 00 */ li r3, 0
+/* 8027243C 0026E09C 4B FF F2 29 */ bl SelectThread
+lbl_80272440:
+/* 80272440 0026E0A0 7F E3 FB 78 */ mr r3, r31
+/* 80272444 0026E0A4 4B FF C3 41 */ bl OSRestoreInterrupts
+/* 80272448 0026E0A8 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 8027244C 0026E0AC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80272450 0026E0B0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80272454 0026E0B4 7C 08 03 A6 */ mtlr r0
+/* 80272458 0026E0B8 38 21 00 10 */ addi r1, r1, 0x10
+/* 8027245C 0026E0BC 4E 80 00 20 */ blr
+
+.global OSWakeupThread
+OSWakeupThread:
+/* 80272460 0026E0C0 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80272464 0026E0C4 7C 08 02 A6 */ mflr r0
+/* 80272468 0026E0C8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027246C 0026E0CC 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80272470 0026E0D0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80272474 0026E0D4 7C 7E 1B 78 */ mr r30, r3
+/* 80272478 0026E0D8 4B FF C2 E5 */ bl OSDisableInterrupts
+/* 8027247C 0026E0DC 3C A0 80 51 */ lis r5, lbl_80514AF0@ha
+/* 80272480 0026E0E0 7C 7F 1B 78 */ mr r31, r3
+/* 80272484 0026E0E4 38 A5 4A F0 */ addi r5, r5, lbl_80514AF0@l
+/* 80272488 0026E0E8 38 C0 00 00 */ li r6, 0
+/* 8027248C 0026E0EC 38 60 00 01 */ li r3, 1
+/* 80272490 0026E0F0 48 00 00 84 */ b lbl_80272514
+lbl_80272494:
+/* 80272494 0026E0F4 80 88 02 E0 */ lwz r4, 0x2e0(r8)
+/* 80272498 0026E0F8 2C 04 00 00 */ cmpwi r4, 0
+/* 8027249C 0026E0FC 40 82 00 0C */ bne lbl_802724A8
+/* 802724A0 0026E100 90 DE 00 04 */ stw r6, 4(r30)
+/* 802724A4 0026E104 48 00 00 08 */ b lbl_802724AC
+lbl_802724A8:
+/* 802724A8 0026E108 90 C4 02 E4 */ stw r6, 0x2e4(r4)
+lbl_802724AC:
+/* 802724AC 0026E10C 90 9E 00 00 */ stw r4, 0(r30)
+/* 802724B0 0026E110 B0 68 02 C8 */ sth r3, 0x2c8(r8)
+/* 802724B4 0026E114 80 08 02 CC */ lwz r0, 0x2cc(r8)
+/* 802724B8 0026E118 2C 00 00 00 */ cmpwi r0, 0
+/* 802724BC 0026E11C 41 81 00 58 */ bgt lbl_80272514
+/* 802724C0 0026E120 80 08 02 D0 */ lwz r0, 0x2d0(r8)
+/* 802724C4 0026E124 54 00 18 38 */ slwi r0, r0, 3
+/* 802724C8 0026E128 7C 85 02 14 */ add r4, r5, r0
+/* 802724CC 0026E12C 90 88 02 DC */ stw r4, 0x2dc(r8)
+/* 802724D0 0026E130 80 E4 00 04 */ lwz r7, 4(r4)
+/* 802724D4 0026E134 2C 07 00 00 */ cmpwi r7, 0
+/* 802724D8 0026E138 40 82 00 0C */ bne lbl_802724E4
+/* 802724DC 0026E13C 91 04 00 00 */ stw r8, 0(r4)
+/* 802724E0 0026E140 48 00 00 08 */ b lbl_802724E8
+lbl_802724E4:
+/* 802724E4 0026E144 91 07 02 E0 */ stw r8, 0x2e0(r7)
+lbl_802724E8:
+/* 802724E8 0026E148 90 E8 02 E4 */ stw r7, 0x2e4(r8)
+/* 802724EC 0026E14C 90 C8 02 E0 */ stw r6, 0x2e0(r8)
+/* 802724F0 0026E150 80 88 02 DC */ lwz r4, 0x2dc(r8)
+/* 802724F4 0026E154 91 04 00 04 */ stw r8, 4(r4)
+/* 802724F8 0026E158 80 08 02 D0 */ lwz r0, 0x2d0(r8)
+/* 802724FC 0026E15C 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 80272500 0026E160 20 00 00 1F */ subfic r0, r0, 0x1f
+/* 80272504 0026E164 7C 60 00 30 */ slw r0, r3, r0
+/* 80272508 0026E168 7C 80 03 78 */ or r0, r4, r0
+/* 8027250C 0026E16C 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13)
+/* 80272510 0026E170 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13)
+lbl_80272514:
+/* 80272514 0026E174 81 1E 00 00 */ lwz r8, 0(r30)
+/* 80272518 0026E178 2C 08 00 00 */ cmpwi r8, 0
+/* 8027251C 0026E17C 40 82 FF 78 */ bne lbl_80272494
+/* 80272520 0026E180 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80272524 0026E184 2C 00 00 00 */ cmpwi r0, 0
+/* 80272528 0026E188 41 82 00 0C */ beq lbl_80272534
+/* 8027252C 0026E18C 38 60 00 00 */ li r3, 0
+/* 80272530 0026E190 4B FF F1 35 */ bl SelectThread
+lbl_80272534:
+/* 80272534 0026E194 7F E3 FB 78 */ mr r3, r31
+/* 80272538 0026E198 4B FF C2 4D */ bl OSRestoreInterrupts
+/* 8027253C 0026E19C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80272540 0026E1A0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80272544 0026E1A4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80272548 0026E1A8 7C 08 03 A6 */ mtlr r0
+/* 8027254C 0026E1AC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80272550 0026E1B0 4E 80 00 20 */ blr
+
+.global OSSetThreadPriority
+OSSetThreadPriority:
+/* 80272554 0026E1B4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80272558 0026E1B8 7C 08 02 A6 */ mflr r0
+/* 8027255C 0026E1BC 2C 04 00 00 */ cmpwi r4, 0
+/* 80272560 0026E1C0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80272564 0026E1C4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80272568 0026E1C8 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027256C 0026E1CC 7C 9E 23 78 */ mr r30, r4
+/* 80272570 0026E1D0 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80272574 0026E1D4 7C 7D 1B 78 */ mr r29, r3
+/* 80272578 0026E1D8 41 80 00 0C */ blt lbl_80272584
+/* 8027257C 0026E1DC 2C 04 00 1F */ cmpwi r4, 0x1f
+/* 80272580 0026E1E0 40 81 00 0C */ ble lbl_8027258C
+lbl_80272584:
+/* 80272584 0026E1E4 38 60 00 00 */ li r3, 0
+/* 80272588 0026E1E8 48 00 00 9C */ b lbl_80272624
+lbl_8027258C:
+/* 8027258C 0026E1EC 4B FF C1 D1 */ bl OSDisableInterrupts
+/* 80272590 0026E1F0 80 1D 02 D4 */ lwz r0, 0x2d4(r29)
+/* 80272594 0026E1F4 7C 7F 1B 78 */ mr r31, r3
+/* 80272598 0026E1F8 7C 00 F0 00 */ cmpw r0, r30
+/* 8027259C 0026E1FC 41 82 00 7C */ beq lbl_80272618
+/* 802725A0 0026E200 93 DD 02 D4 */ stw r30, 0x2d4(r29)
+lbl_802725A4:
+/* 802725A4 0026E204 80 1D 02 CC */ lwz r0, 0x2cc(r29)
+/* 802725A8 0026E208 2C 00 00 00 */ cmpwi r0, 0
+/* 802725AC 0026E20C 41 81 00 58 */ bgt lbl_80272604
+/* 802725B0 0026E210 80 9D 02 D4 */ lwz r4, 0x2d4(r29)
+/* 802725B4 0026E214 80 7D 02 F4 */ lwz r3, 0x2f4(r29)
+/* 802725B8 0026E218 48 00 00 24 */ b lbl_802725DC
+lbl_802725BC:
+/* 802725BC 0026E21C 80 A3 00 00 */ lwz r5, 0(r3)
+/* 802725C0 0026E220 2C 05 00 00 */ cmpwi r5, 0
+/* 802725C4 0026E224 41 82 00 14 */ beq lbl_802725D8
+/* 802725C8 0026E228 80 05 02 D0 */ lwz r0, 0x2d0(r5)
+/* 802725CC 0026E22C 7C 00 20 00 */ cmpw r0, r4
+/* 802725D0 0026E230 40 80 00 08 */ bge lbl_802725D8
+/* 802725D4 0026E234 7C 04 03 78 */ mr r4, r0
+lbl_802725D8:
+/* 802725D8 0026E238 80 63 00 10 */ lwz r3, 0x10(r3)
+lbl_802725DC:
+/* 802725DC 0026E23C 2C 03 00 00 */ cmpwi r3, 0
+/* 802725E0 0026E240 40 82 FF DC */ bne lbl_802725BC
+/* 802725E4 0026E244 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
+/* 802725E8 0026E248 7C 00 20 00 */ cmpw r0, r4
+/* 802725EC 0026E24C 41 82 00 18 */ beq lbl_80272604
+/* 802725F0 0026E250 7F A3 EB 78 */ mr r3, r29
+/* 802725F4 0026E254 4B FF EE 6D */ bl SetEffectivePriority
+/* 802725F8 0026E258 2C 03 00 00 */ cmpwi r3, 0
+/* 802725FC 0026E25C 7C 7D 1B 78 */ mr r29, r3
+/* 80272600 0026E260 40 82 FF A4 */ bne lbl_802725A4
+lbl_80272604:
+/* 80272604 0026E264 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13)
+/* 80272608 0026E268 2C 00 00 00 */ cmpwi r0, 0
+/* 8027260C 0026E26C 41 82 00 0C */ beq lbl_80272618
+/* 80272610 0026E270 38 60 00 00 */ li r3, 0
+/* 80272614 0026E274 4B FF F0 51 */ bl SelectThread
+lbl_80272618:
+/* 80272618 0026E278 7F E3 FB 78 */ mr r3, r31
+/* 8027261C 0026E27C 4B FF C1 69 */ bl OSRestoreInterrupts
+/* 80272620 0026E280 38 60 00 01 */ li r3, 1
+lbl_80272624:
+/* 80272624 0026E284 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80272628 0026E288 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8027262C 0026E28C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80272630 0026E290 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80272634 0026E294 7C 08 03 A6 */ mtlr r0
+/* 80272638 0026E298 38 21 00 20 */ addi r1, r1, 0x20
+/* 8027263C 0026E29C 4E 80 00 20 */ blr
+
+.global OSGetThreadPriority
+OSGetThreadPriority:
+/* 80272640 0026E2A0 80 63 02 D4 */ lwz r3, 0x2d4(r3)
+/* 80272644 0026E2A4 4E 80 00 20 */ blr
+
+.global OSSetIdleFunction
+OSSetIdleFunction:
+/* 80272648 0026E2A8 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 8027264C 0026E2AC 7C 08 02 A6 */ mflr r0
+/* 80272650 0026E2B0 2C 03 00 00 */ cmpwi r3, 0
+/* 80272654 0026E2B4 7C 6A 1B 78 */ mr r10, r3
+/* 80272658 0026E2B8 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027265C 0026E2BC 7C 89 23 78 */ mr r9, r4
+/* 80272660 0026E2C0 7C A8 2B 78 */ mr r8, r5
+/* 80272664 0026E2C4 7C C7 33 78 */ mr r7, r6
+/* 80272668 0026E2C8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8027266C 0026E2CC 41 82 00 44 */ beq lbl_802726B0
+/* 80272670 0026E2D0 3F E0 80 51 */ lis r31, lbl_80514EB8@ha
+/* 80272674 0026E2D4 3B FF 4E B8 */ addi r31, r31, lbl_80514EB8@l
+/* 80272678 0026E2D8 A0 1F 02 C8 */ lhz r0, 0x2c8(r31)
+/* 8027267C 0026E2DC 2C 00 00 00 */ cmpwi r0, 0
+/* 80272680 0026E2E0 40 82 00 48 */ bne lbl_802726C8
+/* 80272684 0026E2E4 7D 25 4B 78 */ mr r5, r9
+/* 80272688 0026E2E8 7D 06 43 78 */ mr r6, r8
+/* 8027268C 0026E2EC 7F E3 FB 78 */ mr r3, r31
+/* 80272690 0026E2F0 7D 44 53 78 */ mr r4, r10
+/* 80272694 0026E2F4 39 00 00 1F */ li r8, 0x1f
+/* 80272698 0026E2F8 39 20 00 01 */ li r9, 1
+/* 8027269C 0026E2FC 4B FF F2 45 */ bl OSCreateThread
+/* 802726A0 0026E300 7F E3 FB 78 */ mr r3, r31
+/* 802726A4 0026E304 4B FF F8 A5 */ bl OSResumeThread
+/* 802726A8 0026E308 7F E3 FB 78 */ mr r3, r31
+/* 802726AC 0026E30C 48 00 00 20 */ b lbl_802726CC
+lbl_802726B0:
+/* 802726B0 0026E310 3C 60 80 51 */ lis r3, lbl_80514EB8@ha
+/* 802726B4 0026E314 38 63 4E B8 */ addi r3, r3, lbl_80514EB8@l
+/* 802726B8 0026E318 A0 03 02 C8 */ lhz r0, 0x2c8(r3)
+/* 802726BC 0026E31C 2C 00 00 00 */ cmpwi r0, 0
+/* 802726C0 0026E320 41 82 00 08 */ beq lbl_802726C8
+/* 802726C4 0026E324 4B FF F5 6D */ bl OSCancelThread
+lbl_802726C8:
+/* 802726C8 0026E328 38 60 00 00 */ li r3, 0
+lbl_802726CC:
+/* 802726CC 0026E32C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802726D0 0026E330 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802726D4 0026E334 7C 08 03 A6 */ mtlr r0
+/* 802726D8 0026E338 38 21 00 10 */ addi r1, r1, 0x10
+/* 802726DC 0026E33C 4E 80 00 20 */ blr
+
+.global SleepAlarmHandler
+SleepAlarmHandler:
+/* 802726E0 0026E340 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802726E4 0026E344 7C 08 02 A6 */ mflr r0
+/* 802726E8 0026E348 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802726EC 0026E34C 4B FF 77 BD */ bl OSGetAlarmUserData
+/* 802726F0 0026E350 4B FF F8 59 */ bl OSResumeThread
+/* 802726F4 0026E354 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802726F8 0026E358 7C 08 03 A6 */ mtlr r0
+/* 802726FC 0026E35C 38 21 00 10 */ addi r1, r1, 0x10
+/* 80272700 0026E360 4E 80 00 20 */ blr
+
+.global OSSleepTicks
+OSSleepTicks:
+/* 80272704 0026E364 94 21 FF B0 */ stwu r1, -0x50(r1)
+/* 80272708 0026E368 7C 08 02 A6 */ mflr r0
+/* 8027270C 0026E36C 90 01 00 54 */ stw r0, 0x54(r1)
+/* 80272710 0026E370 93 E1 00 4C */ stw r31, 0x4c(r1)
+/* 80272714 0026E374 93 C1 00 48 */ stw r30, 0x48(r1)
+/* 80272718 0026E378 93 A1 00 44 */ stw r29, 0x44(r1)
+/* 8027271C 0026E37C 7C 7D 1B 78 */ mr r29, r3
+/* 80272720 0026E380 93 81 00 40 */ stw r28, 0x40(r1)
+/* 80272724 0026E384 7C 9C 23 78 */ mr r28, r4
+/* 80272728 0026E388 4B FF C0 35 */ bl OSDisableInterrupts
+/* 8027272C 0026E38C 3C 80 80 00 */ lis r4, 0x800000E4@ha
+/* 80272730 0026E390 7C 7E 1B 78 */ mr r30, r3
+/* 80272734 0026E394 83 E4 00 E4 */ lwz r31, 0x800000E4@l(r4)
+/* 80272738 0026E398 2C 1F 00 00 */ cmpwi r31, 0
+/* 8027273C 0026E39C 40 82 00 0C */ bne lbl_80272748
+/* 80272740 0026E3A0 4B FF C0 45 */ bl OSRestoreInterrupts
+/* 80272744 0026E3A4 48 00 00 54 */ b lbl_80272798
+lbl_80272748:
+/* 80272748 0026E3A8 38 61 00 08 */ addi r3, r1, 8
+/* 8027274C 0026E3AC 4B FF 6F D9 */ bl OSCreateAlarm
+/* 80272750 0026E3B0 7F E4 FB 78 */ mr r4, r31
+/* 80272754 0026E3B4 38 61 00 08 */ addi r3, r1, 8
+/* 80272758 0026E3B8 4B FF 76 B5 */ bl OSSetAlarmTag
+/* 8027275C 0026E3BC 7F E4 FB 78 */ mr r4, r31
+/* 80272760 0026E3C0 38 61 00 08 */ addi r3, r1, 8
+/* 80272764 0026E3C4 4B FF 77 3D */ bl OSSetAlarmUserData
+/* 80272768 0026E3C8 3C E0 80 27 */ lis r7, SleepAlarmHandler@ha
+/* 8027276C 0026E3CC 7F 86 E3 78 */ mr r6, r28
+/* 80272770 0026E3D0 7F A5 EB 78 */ mr r5, r29
+/* 80272774 0026E3D4 38 61 00 08 */ addi r3, r1, 8
+/* 80272778 0026E3D8 38 E7 26 E0 */ addi r7, r7, SleepAlarmHandler@l
+/* 8027277C 0026E3DC 4B FF 72 09 */ bl OSSetAlarm
+/* 80272780 0026E3E0 7F E3 FB 78 */ mr r3, r31
+/* 80272784 0026E3E4 4B FF FA 5D */ bl OSSuspendThread
+/* 80272788 0026E3E8 38 61 00 08 */ addi r3, r1, 8
+/* 8027278C 0026E3EC 4B FF 72 ED */ bl OSCancelAlarm
+/* 80272790 0026E3F0 7F C3 F3 78 */ mr r3, r30
+/* 80272794 0026E3F4 4B FF BF F1 */ bl OSRestoreInterrupts
+lbl_80272798:
+/* 80272798 0026E3F8 80 01 00 54 */ lwz r0, 0x54(r1)
+/* 8027279C 0026E3FC 83 E1 00 4C */ lwz r31, 0x4c(r1)
+/* 802727A0 0026E400 83 C1 00 48 */ lwz r30, 0x48(r1)
+/* 802727A4 0026E404 83 A1 00 44 */ lwz r29, 0x44(r1)
+/* 802727A8 0026E408 83 81 00 40 */ lwz r28, 0x40(r1)
+/* 802727AC 0026E40C 7C 08 03 A6 */ mtlr r0
+/* 802727B0 0026E410 38 21 00 50 */ addi r1, r1, 0x50
+/* 802727B4 0026E414 4E 80 00 20 */ blr
diff --git a/asm/SDK/exi2.s b/asm/SDK/exi2.s index ddcdbee..d69761e 100644 --- a/asm/SDK/exi2.s +++ b/asm/SDK/exi2.s @@ -211,7 +211,7 @@ __DBEXIInit: /* 801DA598 001D61F8 90 01 00 24 */ stw r0, 0x24(r1)
/* 801DA59C 001D61FC 38 63 80 00 */ addi r3, r3, 0x00018000@l
/* 801DA5A0 001D6200 93 E1 00 1C */ stw r31, 0x1c(r1)
-/* 801DA5A4 001D6204 48 09 45 49 */ bl func_8026EAEC
+/* 801DA5A4 001D6204 48 09 45 49 */ bl __OSMaskInterrupts
/* 801DA5A8 001D6208 3C 60 CD 00 */ lis r3, 0xCD006834@ha
lbl_801DA5AC:
/* 801DA5AC 001D620C 80 03 68 34 */ lwz r0, 0xCD006834@l(r3)
|