summaryrefslogtreecommitdiff
path: root/asm/SDK/OS
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK/OS')
-rw-r--r--asm/SDK/OS/OS.s10
-rw-r--r--asm/SDK/OS/OSAlarm.s18
-rw-r--r--asm/SDK/OS/OSAudioSystem.s28
-rw-r--r--asm/SDK/OS/OSExec.s8
-rw-r--r--asm/SDK/OS/OSFont.s8
-rw-r--r--asm/SDK/OS/OSIpc.s22
-rw-r--r--asm/SDK/OS/OSNandbootInfo.s208
-rw-r--r--asm/SDK/OS/OSNet.s51
-rw-r--r--asm/SDK/OS/OSPlayRecord.s502
-rw-r--r--asm/SDK/OS/OSReset.s48
-rw-r--r--asm/SDK/OS/OSStateFlags.s148
-rw-r--r--asm/SDK/OS/OSStateTM.s542
-rw-r--r--asm/SDK/OS/OSTime.s471
-rw-r--r--asm/SDK/OS/OSUtf.s184
14 files changed, 2188 insertions, 60 deletions
diff --git a/asm/SDK/OS/OS.s b/asm/SDK/OS/OS.s
index a0102cc..94499e4 100644
--- a/asm/SDK/OS/OS.s
+++ b/asm/SDK/OS/OS.s
@@ -789,7 +789,7 @@ OSInit:
/* 80268E54 00264AB4 40 82 03 C0 */ bne lbl_80269214
/* 80268E58 00264AB8 38 00 00 01 */ li r0, 1
/* 80268E5C 00264ABC 90 0D A7 74 */ stw r0, lbl_8063FA34-_SDA_BASE_(r13)
-/* 80268E60 00264AC0 48 00 99 79 */ bl func_802727D8
+/* 80268E60 00264AC0 48 00 99 79 */ bl __OSGetSystemTime
/* 80268E64 00264AC4 90 8D A7 AC */ stw r4, lbl_8063FA6C-_SDA_BASE_(r13)
/* 80268E68 00264AC8 90 6D A7 A8 */ stw r3, lbl_8063FA68-_SDA_BASE_(r13)
/* 80268E6C 00264ACC 48 00 58 F1 */ bl OSDisableInterrupts
@@ -927,7 +927,7 @@ lbl_80269048:
/* 80269054 00264CB4 41 82 00 08 */ beq lbl_8026905C
/* 80269058 00264CB8 48 00 10 AD */ bl OSSetMEM2ArenaHi
lbl_8026905C:
-/* 8026905C 00264CBC 48 00 A0 59 */ bl func_802730B4
+/* 8026905C 00264CBC 48 00 A0 59 */ bl __OSInitIPCBuffer
/* 80269060 00264CC0 48 00 01 CD */ bl OSExceptionInit
/* 80269064 00264CC4 48 00 7F 9D */ bl __OSInitSystemCall
/* 80269068 00264CC8 48 00 06 65 */ bl __OSInitAlarm
@@ -971,13 +971,13 @@ lbl_802690DC:
/* 802690F8 00264D58 80 0D A7 D0 */ lwz r0, lbl_8063FA90-_SDA_BASE_(r13)
/* 802690FC 00264D5C 2C 00 00 00 */ cmpwi r0, 0
/* 80269100 00264D60 40 82 00 1C */ bne lbl_8026911C
-/* 80269104 00264D64 48 00 A1 F1 */ bl func_802732F4
+/* 80269104 00264D64 48 00 A1 F1 */ bl __OSInitSTM
/* 80269108 00264D68 48 08 18 45 */ bl func_802EA94C
lbl_8026910C:
/* 8026910C 00264D6C 48 08 18 E1 */ bl func_802EA9EC
/* 80269110 00264D70 28 03 00 01 */ cmplwi r3, 1
/* 80269114 00264D74 41 82 FF F8 */ beq lbl_8026910C
-/* 80269118 00264D78 48 00 AF F9 */ bl func_80274110
+/* 80269118 00264D78 48 00 AF F9 */ bl __OSInitNet
lbl_8026911C:
/* 8026911C 00264D7C 80 0D A7 68 */ lwz r0, lbl_8063FA28-_SDA_BASE_(r13)
/* 80269120 00264D80 2C 00 00 00 */ cmpwi r0, 0
@@ -1046,7 +1046,7 @@ lbl_802691EC:
/* 80269204 00264E64 80 0D A7 D0 */ lwz r0, lbl_8063FA90-_SDA_BASE_(r13)
/* 80269208 00264E68 2C 00 00 00 */ cmpwi r0, 0
/* 8026920C 00264E6C 40 82 00 08 */ bne lbl_80269214
-/* 80269210 00264E70 48 00 AA B9 */ bl func_80273CC8
+/* 80269210 00264E70 48 00 AA B9 */ bl __OSStartPlayRecord
lbl_80269214:
/* 80269214 00264E74 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80269218 00264E78 83 E1 00 0C */ lwz r31, 0xc(r1)
diff --git a/asm/SDK/OS/OSAlarm.s b/asm/SDK/OS/OSAlarm.s
index 6ffafbd..83e87eb 100644
--- a/asm/SDK/OS/OSAlarm.s
+++ b/asm/SDK/OS/OSAlarm.s
@@ -54,7 +54,7 @@ InsertAlarm:
/* 8026976C 002653CC 7C 80 01 10 */ subfe r4, r0, r0
/* 80269770 002653D0 7C 84 00 D1 */ neg. r4, r4
/* 80269774 002653D4 41 82 00 7C */ beq lbl_802697F0
-/* 80269778 002653D8 48 00 90 61 */ bl func_802727D8
+/* 80269778 002653D8 48 00 90 61 */ bl __OSGetSystemTime
/* 8026977C 002653DC 83 9E 00 20 */ lwz r28, 0x20(r30)
/* 80269780 002653E0 6C 67 80 00 */ xoris r7, r3, 0x8000
/* 80269784 002653E4 83 7E 00 24 */ lwz r27, 0x24(r30)
@@ -111,7 +111,7 @@ lbl_80269808:
/* 80269848 002654A8 48 00 01 24 */ b lbl_8026996C
lbl_8026984C:
/* 8026984C 002654AC 93 CD A7 B0 */ stw r30, lbl_8063FA70-_SDA_BASE_(r13)
-/* 80269850 002654B0 48 00 8F 89 */ bl func_802727D8
+/* 80269850 002654B0 48 00 8F 89 */ bl __OSGetSystemTime
/* 80269854 002654B4 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 80269858 002654B8 38 E0 00 00 */ li r7, 0
/* 8026985C 002654BC 80 1E 00 08 */ lwz r0, 8(r30)
@@ -160,7 +160,7 @@ lbl_802698C8:
lbl_802698F8:
/* 802698F8 00265558 93 C3 00 04 */ stw r30, 4(r3)
/* 802698FC 0026555C 93 CD A7 B0 */ stw r30, lbl_8063FA70-_SDA_BASE_(r13)
-/* 80269900 00265560 48 00 8E D9 */ bl func_802727D8
+/* 80269900 00265560 48 00 8E D9 */ bl __OSGetSystemTime
/* 80269904 00265564 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 80269908 00265568 6F E6 80 00 */ xoris r6, r31, 0x8000
/* 8026990C 0026556C 80 1E 00 08 */ lwz r0, 8(r30)
@@ -213,7 +213,7 @@ OSSetAlarm:
/* 802699B0 00265610 7C 7F 1B 78 */ mr r31, r3
/* 802699B4 00265614 90 1B 00 1C */ stw r0, 0x1c(r27)
/* 802699B8 00265618 90 1B 00 18 */ stw r0, 0x18(r27)
-/* 802699BC 0026561C 48 00 8E 1D */ bl func_802727D8
+/* 802699BC 0026561C 48 00 8E 1D */ bl __OSGetSystemTime
/* 802699C0 00265620 7C DC 20 14 */ addc r6, r28, r4
/* 802699C4 00265624 7F C7 F3 78 */ mr r7, r30
/* 802699C8 00265628 7C BD 19 14 */ adde r5, r29, r3
@@ -247,7 +247,7 @@ OSSetPeriodicAlarm:
/* 80269A2C 0026568C 7F 64 DB 78 */ mr r4, r27
/* 80269A30 00265690 7F 83 E3 78 */ mr r3, r28
/* 80269A34 00265694 93 BA 00 18 */ stw r29, 0x18(r26)
-/* 80269A38 00265698 48 00 8E 05 */ bl func_8027283C
+/* 80269A38 00265698 48 00 8E 05 */ bl __OSTimeToSystemTime
/* 80269A3C 0026569C 90 7A 00 20 */ stw r3, 0x20(r26)
/* 80269A40 002656A0 7F 43 D3 78 */ mr r3, r26
/* 80269A44 002656A4 7F C7 F3 78 */ mr r7, r30
@@ -301,7 +301,7 @@ lbl_80269AE8:
/* 80269AE8 00265748 2C 1D 00 00 */ cmpwi r29, 0
/* 80269AEC 0026574C 93 AD A7 B0 */ stw r29, lbl_8063FA70-_SDA_BASE_(r13)
/* 80269AF0 00265750 41 82 00 74 */ beq lbl_80269B64
-/* 80269AF4 00265754 48 00 8C E5 */ bl func_802727D8
+/* 80269AF4 00265754 48 00 8C E5 */ bl __OSGetSystemTime
/* 80269AF8 00265758 80 BD 00 0C */ lwz r5, 0xc(r29)
/* 80269AFC 0026575C 38 E0 00 00 */ li r7, 0
/* 80269B00 00265760 80 1D 00 08 */ lwz r0, 8(r29)
@@ -355,7 +355,7 @@ DecrementerExceptionCallback:
/* 80269BA4 00265804 93 A1 02 D4 */ stw r29, 0x2d4(r1)
/* 80269BA8 00265808 7C 9D 23 78 */ mr r29, r4
/* 80269BAC 0026580C 93 81 02 D0 */ stw r28, 0x2d0(r1)
-/* 80269BB0 00265810 48 00 8C 29 */ bl func_802727D8
+/* 80269BB0 00265810 48 00 8C 29 */ bl __OSGetSystemTime
/* 80269BB4 00265814 83 ED A7 B0 */ lwz r31, lbl_8063FA70-_SDA_BASE_(r13)
/* 80269BB8 00265818 7C 9C 23 78 */ mr r28, r4
/* 80269BBC 0026581C 7C 7E 1B 78 */ mr r30, r3
@@ -373,7 +373,7 @@ lbl_80269BD0:
/* 80269BE8 00265848 7C 80 01 10 */ subfe r4, r0, r0
/* 80269BEC 0026584C 7C 84 00 D1 */ neg. r4, r4
/* 80269BF0 00265850 41 82 00 7C */ beq lbl_80269C6C
-/* 80269BF4 00265854 48 00 8B E5 */ bl func_802727D8
+/* 80269BF4 00265854 48 00 8B E5 */ bl __OSGetSystemTime
/* 80269BF8 00265858 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 80269BFC 0026585C 38 E0 00 00 */ li r7, 0
/* 80269C00 00265860 80 1F 00 08 */ lwz r0, 8(r31)
@@ -440,7 +440,7 @@ lbl_80269CD8:
/* 80269CD8 00265938 83 8D A7 B0 */ lwz r28, lbl_8063FA70-_SDA_BASE_(r13)
/* 80269CDC 0026593C 2C 1C 00 00 */ cmpwi r28, 0
/* 80269CE0 00265940 41 82 00 74 */ beq lbl_80269D54
-/* 80269CE4 00265944 48 00 8A F5 */ bl func_802727D8
+/* 80269CE4 00265944 48 00 8A F5 */ bl __OSGetSystemTime
/* 80269CE8 00265948 80 BC 00 0C */ lwz r5, 0xc(r28)
/* 80269CEC 0026594C 38 E0 00 00 */ li r7, 0
/* 80269CF0 00265950 80 1C 00 08 */ lwz r0, 8(r28)
diff --git a/asm/SDK/OS/OSAudioSystem.s b/asm/SDK/OS/OSAudioSystem.s
index 6e77bcf..2b0ba4c 100644
--- a/asm/SDK/OS/OSAudioSystem.s
+++ b/asm/SDK/OS/OSAudioSystem.s
@@ -22,13 +22,13 @@ __AIClockInit:
/* 8026A19C 00265DFC 80 04 01 D0 */ lwz r0, 0x1d0(r4)
/* 8026A1A0 00265E00 54 00 00 BE */ clrlwi r0, r0, 2
/* 8026A1A4 00265E04 90 04 01 D0 */ stw r0, 0x1d0(r4)
-/* 8026A1A8 00265E08 48 00 86 29 */ bl func_802727D0
+/* 8026A1A8 00265E08 48 00 86 29 */ bl OSGetTick
/* 8026A1AC 00265E0C 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 8026A1B0 00265E10 7C 7C 1B 78 */ mr r28, r3
/* 8026A1B4 00265E14 3B C4 DE 83 */ addi r30, r4, 0x431BDE83@l
/* 8026A1B8 00265E18 3F A0 80 00 */ lis r29, 0x8000
lbl_8026A1BC:
-/* 8026A1BC 00265E1C 48 00 86 15 */ bl func_802727D0
+/* 8026A1BC 00265E1C 48 00 86 15 */ bl OSGetTick
/* 8026A1C0 00265E20 80 1D 00 F8 */ lwz r0, 0xf8(r29)
/* 8026A1C4 00265E24 7C 7C 18 50 */ subf r3, r28, r3
/* 8026A1C8 00265E28 54 63 18 38 */ slwi r3, r3, 3
@@ -61,13 +61,13 @@ lbl_8026A214:
/* 8026A230 00265E90 64 00 04 B0 */ oris r0, r0, 0x4b0
/* 8026A234 00265E94 90 03 01 CC */ stw r0, 0x1cc(r3)
lbl_8026A238:
-/* 8026A238 00265E98 48 00 85 99 */ bl func_802727D0
+/* 8026A238 00265E98 48 00 85 99 */ bl OSGetTick
/* 8026A23C 00265E9C 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 8026A240 00265EA0 7C 7F 1B 78 */ mr r31, r3
/* 8026A244 00265EA4 3B C4 DE 83 */ addi r30, r4, 0x431BDE83@l
/* 8026A248 00265EA8 3F A0 80 00 */ lis r29, 0x8000
lbl_8026A24C:
-/* 8026A24C 00265EAC 48 00 85 85 */ bl func_802727D0
+/* 8026A24C 00265EAC 48 00 85 85 */ bl OSGetTick
/* 8026A250 00265EB0 80 1D 00 F8 */ lwz r0, 0xf8(r29)
/* 8026A254 00265EB4 7C 7F 18 50 */ subf r3, r31, r3
/* 8026A258 00265EB8 54 63 18 38 */ slwi r3, r3, 3
@@ -81,13 +81,13 @@ lbl_8026A24C:
/* 8026A278 00265ED8 80 03 01 D0 */ lwz r0, 0xCD8001D0@l(r3)
/* 8026A27C 00265EDC 54 00 01 04 */ rlwinm r0, r0, 0, 4, 2
/* 8026A280 00265EE0 90 03 01 D0 */ stw r0, 0x1d0(r3)
-/* 8026A284 00265EE4 48 00 85 4D */ bl func_802727D0
+/* 8026A284 00265EE4 48 00 85 4D */ bl OSGetTick
/* 8026A288 00265EE8 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 8026A28C 00265EEC 7C 7F 1B 78 */ mr r31, r3
/* 8026A290 00265EF0 3B C4 DE 83 */ addi r30, r4, 0x431BDE83@l
/* 8026A294 00265EF4 3F A0 80 00 */ lis r29, 0x8000
lbl_8026A298:
-/* 8026A298 00265EF8 48 00 85 39 */ bl func_802727D0
+/* 8026A298 00265EF8 48 00 85 39 */ bl OSGetTick
/* 8026A29C 00265EFC 80 1D 00 F8 */ lwz r0, 0xf8(r29)
/* 8026A2A0 00265F00 7C 7F 18 50 */ subf r3, r31, r3
/* 8026A2A4 00265F04 54 63 18 38 */ slwi r3, r3, 3
@@ -102,13 +102,13 @@ lbl_8026A298:
/* 8026A2C8 00265F28 54 00 00 80 */ rlwinm r0, r0, 0, 2, 0
/* 8026A2CC 00265F2C 64 00 40 00 */ oris r0, r0, 0x4000
/* 8026A2D0 00265F30 90 03 01 D0 */ stw r0, 0x1d0(r3)
-/* 8026A2D4 00265F34 48 00 84 FD */ bl func_802727D0
+/* 8026A2D4 00265F34 48 00 84 FD */ bl OSGetTick
/* 8026A2D8 00265F38 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 8026A2DC 00265F3C 7C 7F 1B 78 */ mr r31, r3
/* 8026A2E0 00265F40 3B C4 DE 83 */ addi r30, r4, 0x431BDE83@l
/* 8026A2E4 00265F44 3F A0 80 00 */ lis r29, 0x8000
lbl_8026A2E8:
-/* 8026A2E8 00265F48 48 00 84 E9 */ bl func_802727D0
+/* 8026A2E8 00265F48 48 00 84 E9 */ bl OSGetTick
/* 8026A2EC 00265F4C 80 1D 00 F8 */ lwz r0, 0xf8(r29)
/* 8026A2F0 00265F50 7C 7F 18 50 */ subf r3, r31, r3
/* 8026A2F4 00265F54 54 63 18 38 */ slwi r3, r3, 3
@@ -123,13 +123,13 @@ lbl_8026A2E8:
/* 8026A318 00265F78 54 00 00 7E */ clrlwi r0, r0, 1
/* 8026A31C 00265F7C 64 00 80 00 */ oris r0, r0, 0x8000
/* 8026A320 00265F80 90 03 01 D0 */ stw r0, 0x1d0(r3)
-/* 8026A324 00265F84 48 00 84 AD */ bl func_802727D0
+/* 8026A324 00265F84 48 00 84 AD */ bl OSGetTick
/* 8026A328 00265F88 3C 80 43 1C */ lis r4, 0x431BDE83@ha
/* 8026A32C 00265F8C 7C 7D 1B 78 */ mr r29, r3
/* 8026A330 00265F90 3B C4 DE 83 */ addi r30, r4, 0x431BDE83@l
/* 8026A334 00265F94 3F E0 80 00 */ lis r31, 0x8000
lbl_8026A338:
-/* 8026A338 00265F98 48 00 84 99 */ bl func_802727D0
+/* 8026A338 00265F98 48 00 84 99 */ bl OSGetTick
/* 8026A33C 00265F9C 80 1F 00 F8 */ lwz r0, 0xf8(r31)
/* 8026A340 00265FA0 7C 7D 18 50 */ subf r3, r29, r3
/* 8026A344 00265FA4 54 63 18 38 */ slwi r3, r3, 3
@@ -210,10 +210,10 @@ lbl_8026A44C:
/* 8026A450 002660B0 41 82 FF F8 */ beq lbl_8026A448
/* 8026A454 002660B4 3C 60 CC 00 */ lis r3, 0xCC00500A@ha
/* 8026A458 002660B8 B0 A3 50 0A */ sth r5, 0xCC00500A@l(r3)
-/* 8026A45C 002660BC 48 00 83 75 */ bl func_802727D0
+/* 8026A45C 002660BC 48 00 83 75 */ bl OSGetTick
/* 8026A460 002660C0 7C 7F 1B 78 */ mr r31, r3
lbl_8026A464:
-/* 8026A464 002660C4 48 00 83 6D */ bl func_802727D0
+/* 8026A464 002660C4 48 00 83 6D */ bl OSGetTick
/* 8026A468 002660C8 7C 1F 18 50 */ subf r0, r31, r3
/* 8026A46C 002660CC 2C 00 08 92 */ cmpwi r0, 0x892
/* 8026A470 002660D0 41 80 FF F4 */ blt lbl_8026A464
@@ -315,10 +315,10 @@ lbl_8026A5B0:
/* 8026A5B8 00266218 50 60 80 1E */ rlwimi r0, r3, 0x10, 0, 0xf
/* 8026A5BC 0026621C 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0
/* 8026A5C0 00266220 40 82 FF F0 */ bne lbl_8026A5B0
-/* 8026A5C4 00266224 48 00 82 0D */ bl func_802727D0
+/* 8026A5C4 00266224 48 00 82 0D */ bl OSGetTick
/* 8026A5C8 00266228 7C 7F 1B 78 */ mr r31, r3
lbl_8026A5CC:
-/* 8026A5CC 0026622C 48 00 82 05 */ bl func_802727D0
+/* 8026A5CC 0026622C 48 00 82 05 */ bl OSGetTick
/* 8026A5D0 00266230 7C 1F 18 50 */ subf r0, r31, r3
/* 8026A5D4 00266234 2C 00 00 2C */ cmpwi r0, 0x2c
/* 8026A5D8 00266238 41 80 FF F4 */ blt lbl_8026A5CC
diff --git a/asm/SDK/OS/OSExec.s b/asm/SDK/OS/OSExec.s
index 99f1b84..99c52da 100644
--- a/asm/SDK/OS/OSExec.s
+++ b/asm/SDK/OS/OSExec.s
@@ -324,7 +324,7 @@ lbl_8026BF8C:
/* 8026BF9C 00267BFC 38 63 71 98 */ addi r3, r3, lbl_80427198@l
/* 8026BFA0 00267C00 4C C6 31 82 */ crclr 6
/* 8026BFA4 00267C04 4B D9 BB 21 */ bl func_80007AC4
-/* 8026BFA8 00267C08 48 00 74 DD */ bl func_80273484
+/* 8026BFA8 00267C08 48 00 74 DD */ bl __OSHotReset
lbl_8026BFAC:
/* 8026BFAC 00267C0C 7F 66 DB 78 */ mr r6, r27
/* 8026BFB0 00267C10 7F 85 E3 78 */ mr r5, r28
@@ -343,7 +343,7 @@ lbl_8026BFDC:
/* 8026BFE0 00267C40 38 63 71 98 */ addi r3, r3, lbl_80427198@l
/* 8026BFE4 00267C44 4C C6 31 82 */ crclr 6
/* 8026BFE8 00267C48 4B D9 BA DD */ bl func_80007AC4
-/* 8026BFEC 00267C4C 48 00 74 99 */ bl func_80273484
+/* 8026BFEC 00267C4C 48 00 74 99 */ bl __OSHotReset
lbl_8026BFF0:
/* 8026BFF0 00267C50 7F 66 DB 78 */ mr r6, r27
/* 8026BFF4 00267C54 7F 85 E3 78 */ mr r5, r28
@@ -358,7 +358,7 @@ lbl_8026BFF0:
/* 8026C018 00267C78 38 63 71 98 */ addi r3, r3, lbl_80427198@l
/* 8026C01C 00267C7C 4C C6 31 82 */ crclr 6
/* 8026C020 00267C80 4B D9 BA A5 */ bl func_80007AC4
-/* 8026C024 00267C84 48 00 74 61 */ bl func_80273484
+/* 8026C024 00267C84 48 00 74 61 */ bl __OSHotReset
lbl_8026C028:
/* 8026C028 00267C88 7F 66 DB 78 */ mr r6, r27
/* 8026C02C 00267C8C 7F 85 E3 78 */ mr r5, r28
@@ -372,7 +372,7 @@ lbl_8026C028:
/* 8026C04C 00267CAC 38 63 71 98 */ addi r3, r3, lbl_80427198@l
/* 8026C050 00267CB0 4C C6 31 82 */ crclr 6
/* 8026C054 00267CB4 4B D9 BA 71 */ bl func_80007AC4
-/* 8026C058 00267CB8 48 00 74 2D */ bl func_80273484
+/* 8026C058 00267CB8 48 00 74 2D */ bl __OSHotReset
lbl_8026C05C:
/* 8026C05C 00267CBC 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8026C060 00267CC0 2C 03 00 00 */ cmpwi r3, 0
diff --git a/asm/SDK/OS/OSFont.s b/asm/SDK/OS/OSFont.s
index a6b6233..519a770 100644
--- a/asm/SDK/OS/OSFont.s
+++ b/asm/SDK/OS/OSFont.s
@@ -697,13 +697,13 @@ lbl_8026E3F0:
lbl_8026E40C:
/* 8026E40C 0026A06C 7F 63 DB 78 */ mr r3, r27
/* 8026E410 0026A070 38 81 00 08 */ addi r4, r1, 8
-/* 8026E414 0026A074 48 00 4A 59 */ bl func_80272E6C
+/* 8026E414 0026A074 48 00 4A 59 */ bl OSUTF8to32
/* 8026E418 0026A078 7C 7B 1B 78 */ mr r27, r3
/* 8026E41C 0026A07C 48 00 00 2C */ b lbl_8026E448
lbl_8026E420:
/* 8026E420 0026A080 7F 63 DB 78 */ mr r3, r27
/* 8026E424 0026A084 38 81 00 08 */ addi r4, r1, 8
-/* 8026E428 0026A088 48 00 4B 55 */ bl func_80272F7C
+/* 8026E428 0026A088 48 00 4B 55 */ bl OSUTF16to32
/* 8026E42C 0026A08C 7C 7B 1B 78 */ mr r27, r3
/* 8026E430 0026A090 48 00 00 18 */ b lbl_8026E448
lbl_8026E434:
@@ -718,7 +718,7 @@ lbl_8026E448:
/* 8026E450 0026A0B0 41 82 00 4C */ beq lbl_8026E49C
/* 8026E454 0026A0B4 83 ED A7 F4 */ lwz r31, lbl_8063FAB4-_SDA_BASE_(r13)
/* 8026E458 0026A0B8 3B 40 00 00 */ li r26, 0
-/* 8026E45C 0026A0BC 48 00 4B 91 */ bl func_80272FEC
+/* 8026E45C 0026A0BC 48 00 4B 91 */ bl OSUTF32toANSI
/* 8026E460 0026A0C0 54 7E 06 3F */ clrlwi. r30, r3, 0x18
/* 8026E464 0026A0C4 41 82 00 1C */ beq lbl_8026E480
/* 8026E468 0026A0C8 80 0D A7 EC */ lwz r0, lbl_8063FAAC-_SDA_BASE_(r13)
@@ -729,7 +729,7 @@ lbl_8026E448:
/* 8026E47C 0026A0DC 41 81 00 20 */ bgt lbl_8026E49C
lbl_8026E480:
/* 8026E480 0026A0E0 80 61 00 08 */ lwz r3, 8(r1)
-/* 8026E484 0026A0E4 48 00 4B E1 */ bl func_80273064
+/* 8026E484 0026A0E4 48 00 4B E1 */ bl OSUTF32toSJIS
/* 8026E488 0026A0E8 54 60 04 3F */ clrlwi. r0, r3, 0x10
/* 8026E48C 0026A0EC 7C 7E 1B 78 */ mr r30, r3
/* 8026E490 0026A0F0 41 82 00 0C */ beq lbl_8026E49C
diff --git a/asm/SDK/OS/OSIpc.s b/asm/SDK/OS/OSIpc.s
new file mode 100644
index 0000000..67b68e2
--- /dev/null
+++ b/asm/SDK/OS/OSIpc.s
@@ -0,0 +1,22 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSGetIPCBufferHi
+__OSGetIPCBufferHi:
+/* 802730A4 0026ED04 80 6D A8 38 */ lwz r3, lbl_8063FAF8-_SDA_BASE_(r13)
+/* 802730A8 0026ED08 4E 80 00 20 */ blr
+
+.global __OSGetIPCBufferLo
+__OSGetIPCBufferLo:
+/* 802730AC 0026ED0C 80 6D 87 E8 */ lwz r3, lbl_8063DAA8-_SDA_BASE_(r13)
+/* 802730B0 0026ED10 4E 80 00 20 */ blr
+
+.global __OSInitIPCBuffer
+__OSInitIPCBuffer:
+/* 802730B4 0026ED14 3C 60 80 00 */ lis r3, 0x80003130@ha
+/* 802730B8 0026ED18 80 03 31 30 */ lwz r0, 0x80003130@l(r3)
+/* 802730BC 0026ED1C 90 0D 87 E8 */ stw r0, lbl_8063DAA8-_SDA_BASE_(r13)
+/* 802730C0 0026ED20 80 03 31 34 */ lwz r0, 0x3134(r3)
+/* 802730C4 0026ED24 90 0D A8 38 */ stw r0, lbl_8063FAF8-_SDA_BASE_(r13)
+/* 802730C8 0026ED28 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSNandbootInfo.s b/asm/SDK/OS/OSNandbootInfo.s
new file mode 100644
index 0000000..308da8c
--- /dev/null
+++ b/asm/SDK/OS/OSNandbootInfo.s
@@ -0,0 +1,208 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSWriteNandbootInfo
+__OSWriteNandbootInfo:
+/* 802741B4 0026FE14 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 802741B8 0026FE18 7C 08 02 A6 */ mflr r0
+/* 802741BC 0026FE1C 39 03 00 04 */ addi r8, r3, 4
+/* 802741C0 0026FE20 38 E0 00 00 */ li r7, 0
+/* 802741C4 0026FE24 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 802741C8 0026FE28 38 00 00 40 */ li r0, 0x40
+/* 802741CC 0026FE2C 93 E1 00 9C */ stw r31, 0x9c(r1)
+/* 802741D0 0026FE30 7C 7F 1B 78 */ mr r31, r3
+/* 802741D4 0026FE34 7C 09 03 A6 */ mtctr r0
+lbl_802741D8:
+/* 802741D8 0026FE38 80 88 00 00 */ lwz r4, 0(r8)
+/* 802741DC 0026FE3C 80 08 00 04 */ lwz r0, 4(r8)
+/* 802741E0 0026FE40 7C E7 22 14 */ add r7, r7, r4
+/* 802741E4 0026FE44 80 88 00 08 */ lwz r4, 8(r8)
+/* 802741E8 0026FE48 7C E7 02 14 */ add r7, r7, r0
+/* 802741EC 0026FE4C 80 08 00 0C */ lwz r0, 0xc(r8)
+/* 802741F0 0026FE50 7C E7 22 14 */ add r7, r7, r4
+/* 802741F4 0026FE54 80 88 00 10 */ lwz r4, 0x10(r8)
+/* 802741F8 0026FE58 7C E7 02 14 */ add r7, r7, r0
+/* 802741FC 0026FE5C 80 08 00 14 */ lwz r0, 0x14(r8)
+/* 80274200 0026FE60 7C E7 22 14 */ add r7, r7, r4
+/* 80274204 0026FE64 80 88 00 18 */ lwz r4, 0x18(r8)
+/* 80274208 0026FE68 7C E7 02 14 */ add r7, r7, r0
+/* 8027420C 0026FE6C 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 80274210 0026FE70 7C E7 22 14 */ add r7, r7, r4
+/* 80274214 0026FE74 80 88 00 20 */ lwz r4, 0x20(r8)
+/* 80274218 0026FE78 7C E7 02 14 */ add r7, r7, r0
+/* 8027421C 0026FE7C 80 08 00 24 */ lwz r0, 0x24(r8)
+/* 80274220 0026FE80 7C E7 22 14 */ add r7, r7, r4
+/* 80274224 0026FE84 80 88 00 28 */ lwz r4, 0x28(r8)
+/* 80274228 0026FE88 7C E7 02 14 */ add r7, r7, r0
+/* 8027422C 0026FE8C 80 08 00 2C */ lwz r0, 0x2c(r8)
+/* 80274230 0026FE90 7C E7 22 14 */ add r7, r7, r4
+/* 80274234 0026FE94 80 88 00 30 */ lwz r4, 0x30(r8)
+/* 80274238 0026FE98 7C E7 02 14 */ add r7, r7, r0
+/* 8027423C 0026FE9C 80 08 00 34 */ lwz r0, 0x34(r8)
+/* 80274240 0026FEA0 7C E7 22 14 */ add r7, r7, r4
+/* 80274244 0026FEA4 80 88 00 38 */ lwz r4, 0x38(r8)
+/* 80274248 0026FEA8 7C E7 02 14 */ add r7, r7, r0
+/* 8027424C 0026FEAC 80 08 00 3C */ lwz r0, 0x3c(r8)
+/* 80274250 0026FEB0 7C E7 22 14 */ add r7, r7, r4
+/* 80274254 0026FEB4 39 08 00 40 */ addi r8, r8, 0x40
+/* 80274258 0026FEB8 7C E7 02 14 */ add r7, r7, r0
+/* 8027425C 0026FEBC 42 00 FF 7C */ bdnz lbl_802741D8
+/* 80274260 0026FEC0 80 08 00 00 */ lwz r0, 0(r8)
+/* 80274264 0026FEC4 3C C0 80 43 */ lis r6, lbl_80433F08@ha
+/* 80274268 0026FEC8 80 A8 00 04 */ lwz r5, 4(r8)
+/* 8027426C 0026FECC 38 81 00 08 */ addi r4, r1, 8
+/* 80274270 0026FED0 7C E7 02 14 */ add r7, r7, r0
+/* 80274274 0026FED4 80 08 00 08 */ lwz r0, 8(r8)
+/* 80274278 0026FED8 7C E7 2A 14 */ add r7, r7, r5
+/* 8027427C 0026FEDC 80 A8 00 0C */ lwz r5, 0xc(r8)
+/* 80274280 0026FEE0 7C E7 02 14 */ add r7, r7, r0
+/* 80274284 0026FEE4 80 08 00 10 */ lwz r0, 0x10(r8)
+/* 80274288 0026FEE8 7C E7 2A 14 */ add r7, r7, r5
+/* 8027428C 0026FEEC 80 A8 00 14 */ lwz r5, 0x14(r8)
+/* 80274290 0026FEF0 7C E7 02 14 */ add r7, r7, r0
+/* 80274294 0026FEF4 80 08 00 18 */ lwz r0, 0x18(r8)
+/* 80274298 0026FEF8 7C E7 2A 14 */ add r7, r7, r5
+/* 8027429C 0026FEFC 38 A0 00 02 */ li r5, 2
+/* 802742A0 0026FF00 7C E7 02 14 */ add r7, r7, r0
+/* 802742A4 0026FF04 90 E3 00 00 */ stw r7, 0(r3)
+/* 802742A8 0026FF08 38 66 3F 08 */ addi r3, r6, lbl_80433F08@l
+/* 802742AC 0026FF0C 48 07 41 E9 */ bl func_802E8494
+/* 802742B0 0026FF10 2C 03 00 00 */ cmpwi r3, 0
+/* 802742B4 0026FF14 40 82 00 40 */ bne lbl_802742F4
+/* 802742B8 0026FF18 7F E4 FB 78 */ mr r4, r31
+/* 802742BC 0026FF1C 38 61 00 08 */ addi r3, r1, 8
+/* 802742C0 0026FF20 38 A0 10 20 */ li r5, 0x1020
+/* 802742C4 0026FF24 48 07 36 DD */ bl func_802E79A0
+/* 802742C8 0026FF28 28 03 10 20 */ cmplwi r3, 0x1020
+/* 802742CC 0026FF2C 41 82 00 14 */ beq lbl_802742E0
+/* 802742D0 0026FF30 38 61 00 08 */ addi r3, r1, 8
+/* 802742D4 0026FF34 48 07 43 B5 */ bl func_802E8688
+/* 802742D8 0026FF38 38 60 00 00 */ li r3, 0
+/* 802742DC 0026FF3C 48 00 00 1C */ b lbl_802742F8
+lbl_802742E0:
+/* 802742E0 0026FF40 38 61 00 08 */ addi r3, r1, 8
+/* 802742E4 0026FF44 48 07 43 A5 */ bl func_802E8688
+/* 802742E8 0026FF48 7C 60 00 34 */ cntlzw r0, r3
+/* 802742EC 0026FF4C 54 03 D9 7E */ srwi r3, r0, 5
+/* 802742F0 0026FF50 48 00 00 08 */ b lbl_802742F8
+lbl_802742F4:
+/* 802742F4 0026FF54 38 60 00 00 */ li r3, 0
+lbl_802742F8:
+/* 802742F8 0026FF58 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 802742FC 0026FF5C 83 E1 00 9C */ lwz r31, 0x9c(r1)
+/* 80274300 0026FF60 7C 08 03 A6 */ mtlr r0
+/* 80274304 0026FF64 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 80274308 0026FF68 4E 80 00 20 */ blr
+
+# Still unsure of label for this function
+# (not mentioned in BBA map and not found in Brawl)
+.global func_8027430C
+func_8027430C:
+/* 8027430C 0026FF6C 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 80274310 0026FF70 7C 08 02 A6 */ mflr r0
+/* 80274314 0026FF74 3C 80 80 43 */ lis r4, lbl_80433F08@ha
+/* 80274318 0026FF78 38 A0 00 01 */ li r5, 1
+/* 8027431C 0026FF7C 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 80274320 0026FF80 93 E1 00 9C */ stw r31, 0x9c(r1)
+/* 80274324 0026FF84 7C 7F 1B 78 */ mr r31, r3
+/* 80274328 0026FF88 38 64 3F 08 */ addi r3, r4, lbl_80433F08@l
+/* 8027432C 0026FF8C 38 81 00 08 */ addi r4, r1, 8
+/* 80274330 0026FF90 93 C1 00 98 */ stw r30, 0x98(r1)
+/* 80274334 0026FF94 48 07 41 61 */ bl func_802E8494
+/* 80274338 0026FF98 2C 03 00 00 */ cmpwi r3, 0
+/* 8027433C 0026FF9C 40 82 00 40 */ bne lbl_8027437C
+/* 80274340 0026FFA0 7F E4 FB 78 */ mr r4, r31
+/* 80274344 0026FFA4 38 61 00 08 */ addi r3, r1, 8
+/* 80274348 0026FFA8 38 A0 10 20 */ li r5, 0x1020
+/* 8027434C 0026FFAC 48 07 35 75 */ bl func_802E78C0
+/* 80274350 0026FFB0 7C 7E 1B 78 */ mr r30, r3
+/* 80274354 0026FFB4 38 61 00 08 */ addi r3, r1, 8
+/* 80274358 0026FFB8 48 07 43 31 */ bl func_802E8688
+/* 8027435C 0026FFBC 28 1E 10 20 */ cmplwi r30, 0x1020
+/* 80274360 0026FFC0 41 82 00 34 */ beq lbl_80274394
+/* 80274364 0026FFC4 7F E3 FB 78 */ mr r3, r31
+/* 80274368 0026FFC8 38 80 00 00 */ li r4, 0
+/* 8027436C 0026FFCC 38 A0 10 20 */ li r5, 0x1020
+/* 80274370 0026FFD0 4B D8 FD 95 */ bl memset
+/* 80274374 0026FFD4 38 60 00 00 */ li r3, 0
+/* 80274378 0026FFD8 48 00 01 14 */ b lbl_8027448C
+lbl_8027437C:
+/* 8027437C 0026FFDC 7F E3 FB 78 */ mr r3, r31
+/* 80274380 0026FFE0 38 80 00 00 */ li r4, 0
+/* 80274384 0026FFE4 38 A0 10 20 */ li r5, 0x1020
+/* 80274388 0026FFE8 4B D8 FD 7D */ bl memset
+/* 8027438C 0026FFEC 38 60 00 00 */ li r3, 0
+/* 80274390 0026FFF0 48 00 00 FC */ b lbl_8027448C
+lbl_80274394:
+/* 80274394 0026FFF4 38 00 00 40 */ li r0, 0x40
+/* 80274398 0026FFF8 38 BF 00 04 */ addi r5, r31, 4
+/* 8027439C 0026FFFC 38 80 00 00 */ li r4, 0
+/* 802743A0 00270000 7C 09 03 A6 */ mtctr r0
+lbl_802743A4:
+/* 802743A4 00270004 80 65 00 00 */ lwz r3, 0(r5)
+/* 802743A8 00270008 80 05 00 04 */ lwz r0, 4(r5)
+/* 802743AC 0027000C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743B0 00270010 80 65 00 08 */ lwz r3, 8(r5)
+/* 802743B4 00270014 7C 84 02 14 */ add r4, r4, r0
+/* 802743B8 00270018 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 802743BC 0027001C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743C0 00270020 80 65 00 10 */ lwz r3, 0x10(r5)
+/* 802743C4 00270024 7C 84 02 14 */ add r4, r4, r0
+/* 802743C8 00270028 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 802743CC 0027002C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743D0 00270030 80 65 00 18 */ lwz r3, 0x18(r5)
+/* 802743D4 00270034 7C 84 02 14 */ add r4, r4, r0
+/* 802743D8 00270038 80 05 00 1C */ lwz r0, 0x1c(r5)
+/* 802743DC 0027003C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743E0 00270040 80 65 00 20 */ lwz r3, 0x20(r5)
+/* 802743E4 00270044 7C 84 02 14 */ add r4, r4, r0
+/* 802743E8 00270048 80 05 00 24 */ lwz r0, 0x24(r5)
+/* 802743EC 0027004C 7C 84 1A 14 */ add r4, r4, r3
+/* 802743F0 00270050 80 65 00 28 */ lwz r3, 0x28(r5)
+/* 802743F4 00270054 7C 84 02 14 */ add r4, r4, r0
+/* 802743F8 00270058 80 05 00 2C */ lwz r0, 0x2c(r5)
+/* 802743FC 0027005C 7C 84 1A 14 */ add r4, r4, r3
+/* 80274400 00270060 80 65 00 30 */ lwz r3, 0x30(r5)
+/* 80274404 00270064 7C 84 02 14 */ add r4, r4, r0
+/* 80274408 00270068 80 05 00 34 */ lwz r0, 0x34(r5)
+/* 8027440C 0027006C 7C 84 1A 14 */ add r4, r4, r3
+/* 80274410 00270070 80 65 00 38 */ lwz r3, 0x38(r5)
+/* 80274414 00270074 7C 84 02 14 */ add r4, r4, r0
+/* 80274418 00270078 80 05 00 3C */ lwz r0, 0x3c(r5)
+/* 8027441C 0027007C 7C 84 1A 14 */ add r4, r4, r3
+/* 80274420 00270080 38 A5 00 40 */ addi r5, r5, 0x40
+/* 80274424 00270084 7C 84 02 14 */ add r4, r4, r0
+/* 80274428 00270088 42 00 FF 7C */ bdnz lbl_802743A4
+/* 8027442C 0027008C 80 65 00 00 */ lwz r3, 0(r5)
+/* 80274430 00270090 80 05 00 04 */ lwz r0, 4(r5)
+/* 80274434 00270094 7C 84 1A 14 */ add r4, r4, r3
+/* 80274438 00270098 80 65 00 08 */ lwz r3, 8(r5)
+/* 8027443C 0027009C 7C 84 02 14 */ add r4, r4, r0
+/* 80274440 002700A0 80 05 00 0C */ lwz r0, 0xc(r5)
+/* 80274444 002700A4 7C 84 1A 14 */ add r4, r4, r3
+/* 80274448 002700A8 80 65 00 10 */ lwz r3, 0x10(r5)
+/* 8027444C 002700AC 7C 84 02 14 */ add r4, r4, r0
+/* 80274450 002700B0 80 05 00 14 */ lwz r0, 0x14(r5)
+/* 80274454 002700B4 7C 84 1A 14 */ add r4, r4, r3
+/* 80274458 002700B8 80 65 00 18 */ lwz r3, 0x18(r5)
+/* 8027445C 002700BC 7C 84 02 14 */ add r4, r4, r0
+/* 80274460 002700C0 80 1F 00 00 */ lwz r0, 0(r31)
+/* 80274464 002700C4 7C 84 1A 14 */ add r4, r4, r3
+/* 80274468 002700C8 7C 00 20 40 */ cmplw r0, r4
+/* 8027446C 002700CC 41 82 00 1C */ beq lbl_80274488
+/* 80274470 002700D0 7F E3 FB 78 */ mr r3, r31
+/* 80274474 002700D4 38 80 00 00 */ li r4, 0
+/* 80274478 002700D8 38 A0 10 20 */ li r5, 0x1020
+/* 8027447C 002700DC 4B D8 FC 89 */ bl memset
+/* 80274480 002700E0 38 60 00 00 */ li r3, 0
+/* 80274484 002700E4 48 00 00 08 */ b lbl_8027448C
+lbl_80274488:
+/* 80274488 002700E8 38 60 00 01 */ li r3, 1
+lbl_8027448C:
+/* 8027448C 002700EC 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 80274490 002700F0 83 E1 00 9C */ lwz r31, 0x9c(r1)
+/* 80274494 002700F4 83 C1 00 98 */ lwz r30, 0x98(r1)
+/* 80274498 002700F8 7C 08 03 A6 */ mtlr r0
+/* 8027449C 002700FC 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 802744A0 00270100 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSNet.s b/asm/SDK/OS/OSNet.s
new file mode 100644
index 0000000..4ceeb0e
--- /dev/null
+++ b/asm/SDK/OS/OSNet.s
@@ -0,0 +1,51 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSInitNet
+__OSInitNet:
+/* 80274110 0026FD70 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80274114 0026FD74 7C 08 02 A6 */ mflr r0
+/* 80274118 0026FD78 90 01 00 24 */ stw r0, 0x24(r1)
+/* 8027411C 0026FD7C 38 61 00 08 */ addi r3, r1, 8
+/* 80274120 0026FD80 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80274124 0026FD84 3F E0 80 43 */ lis r31, lbl_80433DA0@ha
+/* 80274128 0026FD88 3B FF 3D A0 */ addi r31, r31, lbl_80433DA0@l
+/* 8027412C 0026FD8C 4B FF 43 95 */ bl __OSGetIOSRev
+/* 80274130 0026FD90 88 01 00 09 */ lbz r0, 9(r1)
+/* 80274134 0026FD94 28 00 00 04 */ cmplwi r0, 4
+/* 80274138 0026FD98 40 81 00 68 */ ble lbl_802741A0
+/* 8027413C 0026FD9C 28 00 00 09 */ cmplwi r0, 9
+/* 80274140 0026FDA0 40 82 00 08 */ bne lbl_80274148
+/* 80274144 0026FDA4 48 00 00 5C */ b lbl_802741A0
+lbl_80274148:
+/* 80274148 0026FDA8 48 09 0B D5 */ bl func_80304D1C
+/* 8027414C 0026FDAC 2C 03 00 00 */ cmpwi r3, 0
+/* 80274150 0026FDB0 41 82 00 34 */ beq lbl_80274184
+/* 80274154 0026FDB4 40 80 00 14 */ bge lbl_80274168
+/* 80274158 0026FDB8 7C 64 1B 78 */ mr r4, r3
+/* 8027415C 0026FDBC 38 7F 00 00 */ addi r3, r31, 0
+/* 80274160 0026FDC0 4C C6 31 82 */ crclr 6
+/* 80274164 0026FDC4 4B D9 39 61 */ bl func_80007AC4
+lbl_80274168:
+/* 80274168 0026FDC8 48 08 F8 8D */ bl func_803039F4
+/* 8027416C 0026FDCC 2C 03 00 00 */ cmpwi r3, 0
+/* 80274170 0026FDD0 40 80 00 14 */ bge lbl_80274184
+/* 80274174 0026FDD4 7C 64 1B 78 */ mr r4, r3
+/* 80274178 0026FDD8 38 7F 00 34 */ addi r3, r31, 0x34
+/* 8027417C 0026FDDC 4C C6 31 82 */ crclr 6
+/* 80274180 0026FDE0 4B D9 39 45 */ bl func_80007AC4
+lbl_80274184:
+/* 80274184 0026FDE4 48 09 04 65 */ bl func_803045E8
+/* 80274188 0026FDE8 2C 03 00 00 */ cmpwi r3, 0
+/* 8027418C 0026FDEC 41 82 00 14 */ beq lbl_802741A0
+/* 80274190 0026FDF0 7C 64 1B 78 */ mr r4, r3
+/* 80274194 0026FDF4 38 7F 00 68 */ addi r3, r31, 0x68
+/* 80274198 0026FDF8 4C C6 31 82 */ crclr 6
+/* 8027419C 0026FDFC 4B D9 39 29 */ bl func_80007AC4
+lbl_802741A0:
+/* 802741A0 0026FE00 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802741A4 0026FE04 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802741A8 0026FE08 7C 08 03 A6 */ mtlr r0
+/* 802741AC 0026FE0C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802741B0 0026FE10 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSPlayRecord.s b/asm/SDK/OS/OSPlayRecord.s
new file mode 100644
index 0000000..6b5468d
--- /dev/null
+++ b/asm/SDK/OS/OSPlayRecord.s
@@ -0,0 +1,502 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global PlayRecordAlarmCallback
+PlayRecordAlarmCallback:
+/* 8027380C 0026F46C 38 60 00 00 */ li r3, 0
+/* 80273810 0026F470 38 80 00 00 */ li r4, 0
+/* 80273814 0026F474 48 00 00 04 */ b PlayRecordCallback
+
+.global PlayRecordCallback
+PlayRecordCallback:
+/* 80273818 0026F478 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027381C 0026F47C 7C 08 02 A6 */ mflr r0
+/* 80273820 0026F480 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80273824 0026F484 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80273828 0026F488 3F E0 80 51 */ lis r31, lbl_805152A0@ha
+/* 8027382C 0026F48C 3B FF 52 A0 */ addi r31, r31, lbl_805152A0@l
+/* 80273830 0026F490 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80273834 0026F494 3B C0 00 00 */ li r30, 0
+/* 80273838 0026F498 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8027383C 0026F49C 80 0D A8 70 */ lwz r0, lbl_8063FB30-_SDA_BASE_(r13)
+/* 80273840 0026F4A0 90 6D A8 7C */ stw r3, lbl_8063FB3C-_SDA_BASE_(r13)
+/* 80273844 0026F4A4 2C 00 00 00 */ cmpwi r0, 0
+/* 80273848 0026F4A8 41 82 00 10 */ beq lbl_80273858
+/* 8027384C 0026F4AC 38 00 00 01 */ li r0, 1
+/* 80273850 0026F4B0 90 0D A8 74 */ stw r0, lbl_8063FB34-_SDA_BASE_(r13)
+/* 80273854 0026F4B4 48 00 04 58 */ b lbl_80273CAC
+lbl_80273858:
+/* 80273858 0026F4B8 80 0D A8 78 */ lwz r0, lbl_8063FB38-_SDA_BASE_(r13)
+/* 8027385C 0026F4BC 2C 00 00 00 */ cmpwi r0, 0
+/* 80273860 0026F4C0 40 82 02 18 */ bne lbl_80273A78
+/* 80273864 0026F4C4 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273868 0026F4C8 28 00 00 06 */ cmplwi r0, 6
+/* 8027386C 0026F4CC 41 81 01 F8 */ bgt lbl_80273A64
+/* 80273870 0026F4D0 3C 80 80 43 */ lis r4, lbl_80433D5C@ha
+/* 80273874 0026F4D4 54 00 10 3A */ slwi r0, r0, 2
+/* 80273878 0026F4D8 38 84 3D 5C */ addi r4, r4, lbl_80433D5C@l
+/* 8027387C 0026F4DC 7C 84 00 2E */ lwzx r4, r4, r0
+/* 80273880 0026F4E0 7C 89 03 A6 */ mtctr r4
+/* 80273884 0026F4E4 4E 80 04 20 */ bctr
+/* 80273888 0026F4E8 38 00 00 01 */ li r0, 1
+/* 8027388C 0026F4EC 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273890 0026F4F0 48 00 01 E8 */ b lbl_80273A78
+/* 80273894 0026F4F4 2C 03 FF F6 */ cmpwi r3, -10
+/* 80273898 0026F4F8 40 82 00 38 */ bne lbl_802738D0
+/* 8027389C 0026F4FC 38 00 00 01 */ li r0, 1
+/* 802738A0 0026F500 38 7F 00 80 */ addi r3, r31, 0x80
+/* 802738A4 0026F504 90 0D A8 78 */ stw r0, lbl_8063FB38-_SDA_BASE_(r13)
+/* 802738A8 0026F508 4B FF 5E 7D */ bl OSCreateAlarm
+/* 802738AC 0026F50C 3C 60 80 00 */ lis r3, 0x800000F8@ha
+/* 802738B0 0026F510 3C E0 80 27 */ lis r7, PlayRecordAlarmCallback@ha
+/* 802738B4 0026F514 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
+/* 802738B8 0026F518 38 7F 00 80 */ addi r3, r31, 0x80
+/* 802738BC 0026F51C 38 E7 38 0C */ addi r7, r7, PlayRecordAlarmCallback@l
+/* 802738C0 0026F520 38 A0 00 00 */ li r5, 0
+/* 802738C4 0026F524 54 06 F0 BE */ srwi r6, r0, 2
+/* 802738C8 0026F528 4B FF 60 BD */ bl OSSetAlarm
+/* 802738CC 0026F52C 48 00 03 E0 */ b lbl_80273CAC
+lbl_802738D0:
+/* 802738D0 0026F530 2C 03 00 00 */ cmpwi r3, 0
+/* 802738D4 0026F534 40 82 00 28 */ bne lbl_802738FC
+/* 802738D8 0026F538 80 0D A8 68 */ lwz r0, lbl_8063FB28-_SDA_BASE_(r13)
+/* 802738DC 0026F53C 2C 00 00 00 */ cmpwi r0, 0
+/* 802738E0 0026F540 40 82 00 10 */ bne lbl_802738F0
+/* 802738E4 0026F544 38 00 00 02 */ li r0, 2
+/* 802738E8 0026F548 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 802738EC 0026F54C 48 00 01 8C */ b lbl_80273A78
+lbl_802738F0:
+/* 802738F0 0026F550 38 00 00 04 */ li r0, 4
+/* 802738F4 0026F554 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 802738F8 0026F558 48 00 01 80 */ b lbl_80273A78
+lbl_802738FC:
+/* 802738FC 0026F55C 38 60 00 01 */ li r3, 1
+/* 80273900 0026F560 38 00 00 07 */ li r0, 7
+/* 80273904 0026F564 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 80273908 0026F568 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 8027390C 0026F56C 48 00 03 A0 */ b lbl_80273CAC
+/* 80273910 0026F570 28 03 00 80 */ cmplwi r3, 0x80
+/* 80273914 0026F574 40 82 00 2C */ bne lbl_80273940
+/* 80273918 0026F578 38 9F 00 00 */ addi r4, r31, 0
+/* 8027391C 0026F57C 38 A0 00 01 */ li r5, 1
+/* 80273920 0026F580 80 64 00 60 */ lwz r3, 0x60(r4)
+/* 80273924 0026F584 38 00 00 03 */ li r0, 3
+/* 80273928 0026F588 80 84 00 64 */ lwz r4, 0x64(r4)
+/* 8027392C 0026F58C 90 AD A8 68 */ stw r5, lbl_8063FB28-_SDA_BASE_(r13)
+/* 80273930 0026F590 90 8D A8 84 */ stw r4, lbl_8063FB44-_SDA_BASE_(r13)
+/* 80273934 0026F594 90 6D A8 80 */ stw r3, lbl_8063FB40-_SDA_BASE_(r13)
+/* 80273938 0026F598 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 8027393C 0026F59C 48 00 01 3C */ b lbl_80273A78
+lbl_80273940:
+/* 80273940 0026F5A0 38 60 00 01 */ li r3, 1
+/* 80273944 0026F5A4 38 00 00 06 */ li r0, 6
+/* 80273948 0026F5A8 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 8027394C 0026F5AC 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273950 0026F5B0 48 00 01 28 */ b lbl_80273A78
+/* 80273954 0026F5B4 2C 03 00 00 */ cmpwi r3, 0
+/* 80273958 0026F5B8 40 82 00 10 */ bne lbl_80273968
+/* 8027395C 0026F5BC 38 00 00 04 */ li r0, 4
+/* 80273960 0026F5C0 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273964 0026F5C4 48 00 01 14 */ b lbl_80273A78
+lbl_80273968:
+/* 80273968 0026F5C8 38 60 00 01 */ li r3, 1
+/* 8027396C 0026F5CC 38 00 00 06 */ li r0, 6
+/* 80273970 0026F5D0 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 80273974 0026F5D4 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273978 0026F5D8 48 00 01 00 */ b lbl_80273A78
+/* 8027397C 0026F5DC 38 00 00 05 */ li r0, 5
+/* 80273980 0026F5E0 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273984 0026F5E4 48 00 00 F4 */ b lbl_80273A78
+/* 80273988 0026F5E8 28 03 00 80 */ cmplwi r3, 0x80
+/* 8027398C 0026F5EC 40 82 00 70 */ bne lbl_802739FC
+/* 80273990 0026F5F0 4B FF EE 29 */ bl OSGetTime
+/* 80273994 0026F5F4 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 80273998 0026F5F8 81 0D A8 84 */ lwz r8, lbl_8063FB44-_SDA_BASE_(r13)
+/* 8027399C 0026F5FC 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 802739A0 0026F600 38 A0 01 2C */ li r5, 0x12c
+/* 802739A4 0026F604 81 2D A8 80 */ lwz r9, lbl_8063FB40-_SDA_BASE_(r13)
+/* 802739A8 0026F608 7D 08 20 10 */ subfc r8, r8, r4
+/* 802739AC 0026F60C 54 07 F0 BE */ srwi r7, r0, 2
+/* 802739B0 0026F610 38 C0 00 00 */ li r6, 0
+/* 802739B4 0026F614 7C 69 19 10 */ subfe r3, r9, r3
+/* 802739B8 0026F618 6C 64 80 00 */ xoris r4, r3, 0x8000
+/* 802739BC 0026F61C 7C 07 28 16 */ mulhwu r0, r7, r5
+/* 802739C0 0026F620 7C 66 29 D6 */ mullw r3, r6, r5
+/* 802739C4 0026F624 7C 00 1A 14 */ add r0, r0, r3
+/* 802739C8 0026F628 1C A7 01 2C */ mulli r5, r7, 0x12c
+/* 802739CC 0026F62C 6C 00 80 00 */ xoris r0, r0, 0x8000
+/* 802739D0 0026F630 7C 68 28 10 */ subfc r3, r8, r5
+/* 802739D4 0026F634 7C 84 01 10 */ subfe r4, r4, r0
+/* 802739D8 0026F638 7C 80 01 10 */ subfe r4, r0, r0
+/* 802739DC 0026F63C 7C 84 00 D1 */ neg. r4, r4
+/* 802739E0 0026F640 41 82 00 10 */ beq lbl_802739F0
+/* 802739E4 0026F644 38 00 00 06 */ li r0, 6
+/* 802739E8 0026F648 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 802739EC 0026F64C 48 00 00 8C */ b lbl_80273A78
+lbl_802739F0:
+/* 802739F0 0026F650 38 00 00 03 */ li r0, 3
+/* 802739F4 0026F654 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 802739F8 0026F658 48 00 00 80 */ b lbl_80273A78
+lbl_802739FC:
+/* 802739FC 0026F65C 38 60 00 01 */ li r3, 1
+/* 80273A00 0026F660 38 00 00 06 */ li r0, 6
+/* 80273A04 0026F664 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 80273A08 0026F668 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273A0C 0026F66C 48 00 00 6C */ b lbl_80273A78
+/* 80273A10 0026F670 80 0D A8 6C */ lwz r0, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 80273A14 0026F674 2C 00 00 00 */ cmpwi r0, 0
+/* 80273A18 0026F678 41 82 00 10 */ beq lbl_80273A28
+/* 80273A1C 0026F67C 38 00 00 07 */ li r0, 7
+/* 80273A20 0026F680 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273A24 0026F684 48 00 02 88 */ b lbl_80273CAC
+lbl_80273A28:
+/* 80273A28 0026F688 2C 03 00 00 */ cmpwi r3, 0
+/* 80273A2C 0026F68C 40 82 00 24 */ bne lbl_80273A50
+/* 80273A30 0026F690 38 9F 00 00 */ addi r4, r31, 0
+/* 80273A34 0026F694 38 00 00 01 */ li r0, 1
+/* 80273A38 0026F698 80 64 00 60 */ lwz r3, 0x60(r4)
+/* 80273A3C 0026F69C 80 84 00 64 */ lwz r4, 0x64(r4)
+/* 80273A40 0026F6A0 90 6D A8 80 */ stw r3, lbl_8063FB40-_SDA_BASE_(r13)
+/* 80273A44 0026F6A4 90 8D A8 84 */ stw r4, lbl_8063FB44-_SDA_BASE_(r13)
+/* 80273A48 0026F6A8 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273A4C 0026F6AC 48 00 00 2C */ b lbl_80273A78
+lbl_80273A50:
+/* 80273A50 0026F6B0 38 60 00 07 */ li r3, 7
+/* 80273A54 0026F6B4 38 00 00 01 */ li r0, 1
+/* 80273A58 0026F6B8 90 6D 87 F0 */ stw r3, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273A5C 0026F6BC 90 0D A8 6C */ stw r0, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 80273A60 0026F6C0 48 00 02 4C */ b lbl_80273CAC
+lbl_80273A64:
+/* 80273A64 0026F6C4 38 60 00 07 */ li r3, 7
+/* 80273A68 0026F6C8 38 00 00 01 */ li r0, 1
+/* 80273A6C 0026F6CC 90 6D 87 F0 */ stw r3, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273A70 0026F6D0 90 0D A8 6C */ stw r0, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 80273A74 0026F6D4 48 00 02 38 */ b lbl_80273CAC
+lbl_80273A78:
+/* 80273A78 0026F6D8 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273A7C 0026F6DC 3B A0 00 00 */ li r29, 0
+/* 80273A80 0026F6E0 93 AD A8 78 */ stw r29, lbl_8063FB38-_SDA_BASE_(r13)
+/* 80273A84 0026F6E4 2C 00 00 04 */ cmpwi r0, 4
+/* 80273A88 0026F6E8 41 82 00 A0 */ beq lbl_80273B28
+/* 80273A8C 0026F6EC 40 80 00 1C */ bge lbl_80273AA8
+/* 80273A90 0026F6F0 2C 00 00 02 */ cmpwi r0, 2
+/* 80273A94 0026F6F4 41 82 00 4C */ beq lbl_80273AE0
+/* 80273A98 0026F6F8 40 80 00 6C */ bge lbl_80273B04
+/* 80273A9C 0026F6FC 2C 00 00 01 */ cmpwi r0, 1
+/* 80273AA0 0026F700 40 80 00 18 */ bge lbl_80273AB8
+/* 80273AA4 0026F704 48 00 01 30 */ b lbl_80273BD4
+lbl_80273AA8:
+/* 80273AA8 0026F708 2C 00 00 06 */ cmpwi r0, 6
+/* 80273AAC 0026F70C 41 82 01 10 */ beq lbl_80273BBC
+/* 80273AB0 0026F710 40 80 01 24 */ bge lbl_80273BD4
+/* 80273AB4 0026F714 48 00 00 B0 */ b lbl_80273B64
+lbl_80273AB8:
+/* 80273AB8 0026F718 3C 60 80 43 */ lis r3, lbl_80433D30@ha
+/* 80273ABC 0026F71C 3C C0 80 27 */ lis r6, PlayRecordCallback@ha
+/* 80273AC0 0026F720 38 63 3D 30 */ addi r3, r3, lbl_80433D30@l
+/* 80273AC4 0026F724 38 9F 00 B0 */ addi r4, r31, 0xb0
+/* 80273AC8 0026F728 38 C6 38 18 */ addi r6, r6, PlayRecordCallback@l
+/* 80273ACC 0026F72C 38 FF 01 40 */ addi r7, r31, 0x140
+/* 80273AD0 0026F730 38 A0 00 03 */ li r5, 3
+/* 80273AD4 0026F734 48 07 4A 4D */ bl func_802E8520
+/* 80273AD8 0026F738 7C 7E 1B 78 */ mr r30, r3
+/* 80273ADC 0026F73C 48 00 00 F8 */ b lbl_80273BD4
+lbl_80273AE0:
+/* 80273AE0 0026F740 3C C0 80 27 */ lis r6, PlayRecordCallback@ha
+/* 80273AE4 0026F744 38 7F 00 B0 */ addi r3, r31, 0xb0
+/* 80273AE8 0026F748 38 9F 00 00 */ addi r4, r31, 0
+/* 80273AEC 0026F74C 38 FF 01 40 */ addi r7, r31, 0x140
+/* 80273AF0 0026F750 38 C6 38 18 */ addi r6, r6, PlayRecordCallback@l
+/* 80273AF4 0026F754 38 A0 00 80 */ li r5, 0x80
+/* 80273AF8 0026F758 48 07 3E 31 */ bl func_802E7928
+/* 80273AFC 0026F75C 7C 7E 1B 78 */ mr r30, r3
+/* 80273B00 0026F760 48 00 00 D4 */ b lbl_80273BD4
+lbl_80273B04:
+/* 80273B04 0026F764 3C C0 80 27 */ lis r6, PlayRecordCallback@ha
+/* 80273B08 0026F768 38 7F 00 B0 */ addi r3, r31, 0xb0
+/* 80273B0C 0026F76C 38 C6 38 18 */ addi r6, r6, PlayRecordCallback@l
+/* 80273B10 0026F770 38 FF 01 40 */ addi r7, r31, 0x140
+/* 80273B14 0026F774 38 80 00 00 */ li r4, 0
+/* 80273B18 0026F778 38 A0 00 00 */ li r5, 0
+/* 80273B1C 0026F77C 48 07 40 05 */ bl func_802E7B20
+/* 80273B20 0026F780 7C 7E 1B 78 */ mr r30, r3
+/* 80273B24 0026F784 48 00 00 B0 */ b lbl_80273BD4
+lbl_80273B28:
+/* 80273B28 0026F788 38 7F 00 80 */ addi r3, r31, 0x80
+/* 80273B2C 0026F78C 4B FF 5B F9 */ bl OSCreateAlarm
+/* 80273B30 0026F790 3C 60 80 00 */ lis r3, 0x800000F8@ha
+/* 80273B34 0026F794 38 00 00 3C */ li r0, 0x3c
+/* 80273B38 0026F798 80 63 00 F8 */ lwz r3, 0x800000F8@l(r3)
+/* 80273B3C 0026F79C 3C E0 80 27 */ lis r7, PlayRecordAlarmCallback@ha
+/* 80273B40 0026F7A0 7C 9D 01 D6 */ mullw r4, r29, r0
+/* 80273B44 0026F7A4 54 65 F0 BE */ srwi r5, r3, 2
+/* 80273B48 0026F7A8 38 7F 00 80 */ addi r3, r31, 0x80
+/* 80273B4C 0026F7AC 38 E7 38 0C */ addi r7, r7, PlayRecordAlarmCallback@l
+/* 80273B50 0026F7B0 7C 05 00 16 */ mulhwu r0, r5, r0
+/* 80273B54 0026F7B4 1C C5 00 3C */ mulli r6, r5, 0x3c
+/* 80273B58 0026F7B8 7C A0 22 14 */ add r5, r0, r4
+/* 80273B5C 0026F7BC 4B FF 5E 29 */ bl OSSetAlarm
+/* 80273B60 0026F7C0 48 00 00 74 */ b lbl_80273BD4
+lbl_80273B64:
+/* 80273B64 0026F7C4 4B FF EC 55 */ bl OSGetTime
+/* 80273B68 0026F7C8 38 BF 00 00 */ addi r5, r31, 0
+/* 80273B6C 0026F7CC 38 00 00 1F */ li r0, 0x1f
+/* 80273B70 0026F7D0 90 85 00 64 */ stw r4, 0x64(r5)
+/* 80273B74 0026F7D4 38 C5 00 04 */ addi r6, r5, 4
+/* 80273B78 0026F7D8 38 80 00 00 */ li r4, 0
+/* 80273B7C 0026F7DC 90 65 00 60 */ stw r3, 0x60(r5)
+/* 80273B80 0026F7E0 7C 09 03 A6 */ mtctr r0
+lbl_80273B84:
+/* 80273B84 0026F7E4 80 06 00 00 */ lwz r0, 0(r6)
+/* 80273B88 0026F7E8 38 C6 00 04 */ addi r6, r6, 4
+/* 80273B8C 0026F7EC 7C 84 02 14 */ add r4, r4, r0
+/* 80273B90 0026F7F0 42 00 FF F4 */ bdnz lbl_80273B84
+/* 80273B94 0026F7F4 3C C0 80 27 */ lis r6, PlayRecordCallback@ha
+/* 80273B98 0026F7F8 90 9F 00 00 */ stw r4, 0(r31)
+/* 80273B9C 0026F7FC 38 7F 00 B0 */ addi r3, r31, 0xb0
+/* 80273BA0 0026F800 38 9F 00 00 */ addi r4, r31, 0
+/* 80273BA4 0026F804 38 C6 38 18 */ addi r6, r6, PlayRecordCallback@l
+/* 80273BA8 0026F808 38 FF 01 40 */ addi r7, r31, 0x140
+/* 80273BAC 0026F80C 38 A0 00 80 */ li r5, 0x80
+/* 80273BB0 0026F810 48 07 3E 59 */ bl func_802E7A08
+/* 80273BB4 0026F814 7C 7E 1B 78 */ mr r30, r3
+/* 80273BB8 0026F818 48 00 00 1C */ b lbl_80273BD4
+lbl_80273BBC:
+/* 80273BBC 0026F81C 3C 80 80 27 */ lis r4, PlayRecordCallback@ha
+/* 80273BC0 0026F820 38 7F 00 B0 */ addi r3, r31, 0xb0
+/* 80273BC4 0026F824 38 84 38 18 */ addi r4, r4, PlayRecordCallback@l
+/* 80273BC8 0026F828 38 BF 01 40 */ addi r5, r31, 0x140
+/* 80273BCC 0026F82C 48 07 4B 29 */ bl func_802E86F4
+/* 80273BD0 0026F830 7C 7E 1B 78 */ mr r30, r3
+lbl_80273BD4:
+/* 80273BD4 0026F834 2C 1E 00 00 */ cmpwi r30, 0
+/* 80273BD8 0026F838 41 82 00 D0 */ beq lbl_80273CA8
+/* 80273BDC 0026F83C 2C 1E FF FD */ cmpwi r30, -3
+/* 80273BE0 0026F840 40 82 00 38 */ bne lbl_80273C18
+/* 80273BE4 0026F844 38 7F 00 80 */ addi r3, r31, 0x80
+/* 80273BE8 0026F848 4B FF 5B 3D */ bl OSCreateAlarm
+/* 80273BEC 0026F84C 3C 60 80 00 */ lis r3, 0x800000F8@ha
+/* 80273BF0 0026F850 3C E0 80 27 */ lis r7, PlayRecordAlarmCallback@ha
+/* 80273BF4 0026F854 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
+/* 80273BF8 0026F858 38 7F 00 80 */ addi r3, r31, 0x80
+/* 80273BFC 0026F85C 38 E7 38 0C */ addi r7, r7, PlayRecordAlarmCallback@l
+/* 80273C00 0026F860 38 A0 00 00 */ li r5, 0
+/* 80273C04 0026F864 54 06 F0 BE */ srwi r6, r0, 2
+/* 80273C08 0026F868 4B FF 5D 7D */ bl OSSetAlarm
+/* 80273C0C 0026F86C 38 00 00 01 */ li r0, 1
+/* 80273C10 0026F870 90 0D A8 78 */ stw r0, lbl_8063FB38-_SDA_BASE_(r13)
+/* 80273C14 0026F874 48 00 00 94 */ b lbl_80273CA8
+lbl_80273C18:
+/* 80273C18 0026F878 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273C1C 0026F87C 38 60 00 01 */ li r3, 1
+/* 80273C20 0026F880 90 6D A8 6C */ stw r3, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 80273C24 0026F884 2C 00 00 04 */ cmpwi r0, 4
+/* 80273C28 0026F888 41 82 00 78 */ beq lbl_80273CA0
+/* 80273C2C 0026F88C 40 80 00 10 */ bge lbl_80273C3C
+/* 80273C30 0026F890 2C 00 00 02 */ cmpwi r0, 2
+/* 80273C34 0026F894 40 80 00 10 */ bge lbl_80273C44
+/* 80273C38 0026F898 48 00 00 68 */ b lbl_80273CA0
+lbl_80273C3C:
+/* 80273C3C 0026F89C 2C 00 00 06 */ cmpwi r0, 6
+/* 80273C40 0026F8A0 40 80 00 60 */ bge lbl_80273CA0
+lbl_80273C44:
+/* 80273C44 0026F8A4 38 00 00 06 */ li r0, 6
+/* 80273C48 0026F8A8 3C 80 80 27 */ lis r4, PlayRecordCallback@ha
+/* 80273C4C 0026F8AC 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273C50 0026F8B0 38 7F 00 B0 */ addi r3, r31, 0xb0
+/* 80273C54 0026F8B4 38 84 38 18 */ addi r4, r4, PlayRecordCallback@l
+/* 80273C58 0026F8B8 38 BF 01 40 */ addi r5, r31, 0x140
+/* 80273C5C 0026F8BC 48 07 4A 99 */ bl func_802E86F4
+/* 80273C60 0026F8C0 2C 03 FF FD */ cmpwi r3, -3
+/* 80273C64 0026F8C4 7C 7E 1B 78 */ mr r30, r3
+/* 80273C68 0026F8C8 40 82 00 40 */ bne lbl_80273CA8
+/* 80273C6C 0026F8CC 38 00 00 01 */ li r0, 1
+/* 80273C70 0026F8D0 38 7F 00 80 */ addi r3, r31, 0x80
+/* 80273C74 0026F8D4 90 0D A8 78 */ stw r0, lbl_8063FB38-_SDA_BASE_(r13)
+/* 80273C78 0026F8D8 4B FF 5A AD */ bl OSCreateAlarm
+/* 80273C7C 0026F8DC 3C 60 80 00 */ lis r3, 0x800000F8@ha
+/* 80273C80 0026F8E0 3C E0 80 27 */ lis r7, PlayRecordAlarmCallback@ha
+/* 80273C84 0026F8E4 80 03 00 F8 */ lwz r0, 0x800000F8@l(r3)
+/* 80273C88 0026F8E8 38 7F 00 80 */ addi r3, r31, 0x80
+/* 80273C8C 0026F8EC 38 E7 38 0C */ addi r7, r7, PlayRecordAlarmCallback@l
+/* 80273C90 0026F8F0 38 A0 00 00 */ li r5, 0
+/* 80273C94 0026F8F4 54 06 F0 BE */ srwi r6, r0, 2
+/* 80273C98 0026F8F8 4B FF 5C ED */ bl OSSetAlarm
+/* 80273C9C 0026F8FC 48 00 00 0C */ b lbl_80273CA8
+lbl_80273CA0:
+/* 80273CA0 0026F900 38 00 00 07 */ li r0, 7
+/* 80273CA4 0026F904 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+lbl_80273CA8:
+/* 80273CA8 0026F908 93 CD A8 7C */ stw r30, lbl_8063FB3C-_SDA_BASE_(r13)
+lbl_80273CAC:
+/* 80273CAC 0026F90C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80273CB0 0026F910 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80273CB4 0026F914 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80273CB8 0026F918 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80273CBC 0026F91C 7C 08 03 A6 */ mtlr r0
+/* 80273CC0 0026F920 38 21 00 20 */ addi r1, r1, 0x20
+/* 80273CC4 0026F924 4E 80 00 20 */ blr
+
+.global __OSStartPlayRecord
+__OSStartPlayRecord:
+/* 80273CC8 0026F928 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80273CCC 0026F92C 7C 08 02 A6 */ mflr r0
+/* 80273CD0 0026F930 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80273CD4 0026F934 48 07 59 71 */ bl func_802E9644
+/* 80273CD8 0026F938 2C 03 00 00 */ cmpwi r3, 0
+/* 80273CDC 0026F93C 40 82 00 30 */ bne lbl_80273D0C
+/* 80273CE0 0026F940 38 00 00 00 */ li r0, 0
+/* 80273CE4 0026F944 38 60 00 00 */ li r3, 0
+/* 80273CE8 0026F948 90 0D A8 70 */ stw r0, lbl_8063FB30-_SDA_BASE_(r13)
+/* 80273CEC 0026F94C 38 80 00 00 */ li r4, 0
+/* 80273CF0 0026F950 90 0D A8 68 */ stw r0, lbl_8063FB28-_SDA_BASE_(r13)
+/* 80273CF4 0026F954 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273CF8 0026F958 90 0D A8 6C */ stw r0, lbl_8063FB2C-_SDA_BASE_(r13)
+/* 80273CFC 0026F95C 90 0D A8 78 */ stw r0, lbl_8063FB38-_SDA_BASE_(r13)
+/* 80273D00 0026F960 90 0D A8 74 */ stw r0, lbl_8063FB34-_SDA_BASE_(r13)
+/* 80273D04 0026F964 90 0D A8 7C */ stw r0, lbl_8063FB3C-_SDA_BASE_(r13)
+/* 80273D08 0026F968 4B FF FB 11 */ bl PlayRecordCallback
+lbl_80273D0C:
+/* 80273D0C 0026F96C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80273D10 0026F970 7C 08 03 A6 */ mtlr r0
+/* 80273D14 0026F974 38 21 00 10 */ addi r1, r1, 0x10
+/* 80273D18 0026F978 4E 80 00 20 */ blr
+
+.global __OSStopPlayRecord
+__OSStopPlayRecord:
+/* 80273D1C 0026F97C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80273D20 0026F980 7C 08 02 A6 */ mflr r0
+/* 80273D24 0026F984 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80273D28 0026F988 39 61 00 20 */ addi r11, r1, 0x20
+/* 80273D2C 0026F98C 4B F5 33 F9 */ bl _savegpr_26
+/* 80273D30 0026F990 3F A0 80 51 */ lis r29, lbl_805152A0@ha
+/* 80273D34 0026F994 3B BD 52 A0 */ addi r29, r29, lbl_805152A0@l
+/* 80273D38 0026F998 4B FF AA 25 */ bl OSDisableInterrupts
+/* 80273D3C 0026F99C 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273D40 0026F9A0 38 80 00 01 */ li r4, 1
+/* 80273D44 0026F9A4 90 8D A8 70 */ stw r4, lbl_8063FB30-_SDA_BASE_(r13)
+/* 80273D48 0026F9A8 7C 7A 1B 78 */ mr r26, r3
+/* 80273D4C 0026F9AC 2C 00 00 07 */ cmpwi r0, 7
+/* 80273D50 0026F9B0 41 82 00 1C */ beq lbl_80273D6C
+/* 80273D54 0026F9B4 2C 00 00 00 */ cmpwi r0, 0
+/* 80273D58 0026F9B8 41 82 00 14 */ beq lbl_80273D6C
+/* 80273D5C 0026F9BC 2C 00 00 09 */ cmpwi r0, 9
+/* 80273D60 0026F9C0 41 82 00 0C */ beq lbl_80273D6C
+/* 80273D64 0026F9C4 2C 00 00 08 */ cmpwi r0, 8
+/* 80273D68 0026F9C8 40 82 00 10 */ bne lbl_80273D78
+lbl_80273D6C:
+/* 80273D6C 0026F9CC 7F 43 D3 78 */ mr r3, r26
+/* 80273D70 0026F9D0 4B FF AA 15 */ bl OSRestoreInterrupts
+/* 80273D74 0026F9D4 48 00 01 70 */ b lbl_80273EE4
+lbl_80273D78:
+/* 80273D78 0026F9D8 2C 00 00 04 */ cmpwi r0, 4
+/* 80273D7C 0026F9DC 40 82 00 64 */ bne lbl_80273DE0
+/* 80273D80 0026F9E0 38 7D 00 80 */ addi r3, r29, 0x80
+/* 80273D84 0026F9E4 4B FF 5C F5 */ bl OSCancelAlarm
+/* 80273D88 0026F9E8 7F 43 D3 78 */ mr r3, r26
+/* 80273D8C 0026F9EC 4B FF A9 F9 */ bl OSRestoreInterrupts
+/* 80273D90 0026F9F0 4B FF EA 29 */ bl OSGetTime
+/* 80273D94 0026F9F4 38 BD 00 00 */ addi r5, r29, 0
+/* 80273D98 0026F9F8 38 00 00 1F */ li r0, 0x1f
+/* 80273D9C 0026F9FC 90 85 00 64 */ stw r4, 0x64(r5)
+/* 80273DA0 0026FA00 38 C5 00 04 */ addi r6, r5, 4
+/* 80273DA4 0026FA04 38 80 00 00 */ li r4, 0
+/* 80273DA8 0026FA08 90 65 00 60 */ stw r3, 0x60(r5)
+/* 80273DAC 0026FA0C 7C 09 03 A6 */ mtctr r0
+lbl_80273DB0:
+/* 80273DB0 0026FA10 80 06 00 00 */ lwz r0, 0(r6)
+/* 80273DB4 0026FA14 38 C6 00 04 */ addi r6, r6, 4
+/* 80273DB8 0026FA18 7C 84 02 14 */ add r4, r4, r0
+/* 80273DBC 0026FA1C 42 00 FF F4 */ bdnz lbl_80273DB0
+/* 80273DC0 0026FA20 90 9D 00 00 */ stw r4, 0(r29)
+/* 80273DC4 0026FA24 38 7D 00 B0 */ addi r3, r29, 0xb0
+/* 80273DC8 0026FA28 38 9D 00 00 */ addi r4, r29, 0
+/* 80273DCC 0026FA2C 38 A0 00 80 */ li r5, 0x80
+/* 80273DD0 0026FA30 48 07 3B D1 */ bl func_802E79A0
+/* 80273DD4 0026FA34 38 7D 00 B0 */ addi r3, r29, 0xb0
+/* 80273DD8 0026FA38 48 07 48 B1 */ bl func_802E8688
+/* 80273DDC 0026FA3C 48 00 01 08 */ b lbl_80273EE4
+lbl_80273DE0:
+/* 80273DE0 0026FA40 80 0D A8 78 */ lwz r0, lbl_8063FB38-_SDA_BASE_(r13)
+/* 80273DE4 0026FA44 2C 00 00 00 */ cmpwi r0, 0
+/* 80273DE8 0026FA48 41 82 00 18 */ beq lbl_80273E00
+/* 80273DEC 0026FA4C 38 7D 00 80 */ addi r3, r29, 0x80
+/* 80273DF0 0026FA50 4B FF 5C 89 */ bl OSCancelAlarm
+/* 80273DF4 0026FA54 7F 43 D3 78 */ mr r3, r26
+/* 80273DF8 0026FA58 4B FF A9 8D */ bl OSRestoreInterrupts
+/* 80273DFC 0026FA5C 48 00 00 78 */ b lbl_80273E74
+lbl_80273E00:
+/* 80273E00 0026FA60 4B FF A9 85 */ bl OSRestoreInterrupts
+/* 80273E04 0026FA64 4B FF E9 B5 */ bl OSGetTime
+/* 80273E08 0026FA68 3C A0 10 62 */ lis r5, 0x10624DD3@ha
+/* 80273E0C 0026FA6C 38 00 00 00 */ li r0, 0
+/* 80273E10 0026FA70 7C 9E 23 78 */ mr r30, r4
+/* 80273E14 0026FA74 7C 7F 1B 78 */ mr r31, r3
+/* 80273E18 0026FA78 3B 45 4D D3 */ addi r26, r5, 0x10624DD3@l
+/* 80273E1C 0026FA7C 6C 1C 80 00 */ xoris r28, r0, 0x8000
+/* 80273E20 0026FA80 3F 60 80 00 */ lis r27, 0x8000
+lbl_80273E24:
+/* 80273E24 0026FA84 80 0D A8 74 */ lwz r0, lbl_8063FB34-_SDA_BASE_(r13)
+/* 80273E28 0026FA88 2C 00 00 00 */ cmpwi r0, 0
+/* 80273E2C 0026FA8C 40 82 00 48 */ bne lbl_80273E74
+/* 80273E30 0026FA90 4B FF E9 89 */ bl OSGetTime
+/* 80273E34 0026FA94 80 1B 00 F8 */ lwz r0, 0xf8(r27)
+/* 80273E38 0026FA98 7C 9E 20 10 */ subfc r4, r30, r4
+/* 80273E3C 0026FA9C 7C 7F 19 10 */ subfe r3, r31, r3
+/* 80273E40 0026FAA0 54 00 F0 BE */ srwi r0, r0, 2
+/* 80273E44 0026FAA4 7C 1A 00 16 */ mulhwu r0, r26, r0
+/* 80273E48 0026FAA8 6C 63 80 00 */ xoris r3, r3, 0x8000
+/* 80273E4C 0026FAAC 54 00 D1 BE */ srwi r0, r0, 6
+/* 80273E50 0026FAB0 1C 00 01 F4 */ mulli r0, r0, 0x1f4
+/* 80273E54 0026FAB4 7C 04 00 10 */ subfc r0, r4, r0
+/* 80273E58 0026FAB8 7C 63 E1 10 */ subfe r3, r3, r28
+/* 80273E5C 0026FABC 7C 7C E1 10 */ subfe r3, r28, r28
+/* 80273E60 0026FAC0 7C 63 00 D1 */ neg. r3, r3
+/* 80273E64 0026FAC4 41 82 FF C0 */ beq lbl_80273E24
+/* 80273E68 0026FAC8 38 00 00 08 */ li r0, 8
+/* 80273E6C 0026FACC 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273E70 0026FAD0 48 00 00 7C */ b lbl_80273EEC
+lbl_80273E74:
+/* 80273E74 0026FAD4 80 0D 87 F0 */ lwz r0, lbl_8063DAB0-_SDA_BASE_(r13)
+/* 80273E78 0026FAD8 2C 00 00 04 */ cmpwi r0, 4
+/* 80273E7C 0026FADC 41 82 00 68 */ beq lbl_80273EE4
+/* 80273E80 0026FAE0 40 80 00 14 */ bge lbl_80273E94
+/* 80273E84 0026FAE4 2C 00 00 01 */ cmpwi r0, 1
+/* 80273E88 0026FAE8 41 82 00 24 */ beq lbl_80273EAC
+/* 80273E8C 0026FAEC 40 80 00 14 */ bge lbl_80273EA0
+/* 80273E90 0026FAF0 48 00 00 54 */ b lbl_80273EE4
+lbl_80273E94:
+/* 80273E94 0026FAF4 2C 00 00 06 */ cmpwi r0, 6
+/* 80273E98 0026FAF8 41 82 00 38 */ beq lbl_80273ED0
+/* 80273E9C 0026FAFC 40 80 00 48 */ bge lbl_80273EE4
+lbl_80273EA0:
+/* 80273EA0 0026FB00 38 7D 00 B0 */ addi r3, r29, 0xb0
+/* 80273EA4 0026FB04 48 07 47 E5 */ bl func_802E8688
+/* 80273EA8 0026FB08 48 00 00 3C */ b lbl_80273EE4
+lbl_80273EAC:
+/* 80273EAC 0026FB0C 80 0D A8 7C */ lwz r0, lbl_8063FB3C-_SDA_BASE_(r13)
+/* 80273EB0 0026FB10 2C 00 00 00 */ cmpwi r0, 0
+/* 80273EB4 0026FB14 40 82 00 30 */ bne lbl_80273EE4
+/* 80273EB8 0026FB18 80 0D A8 78 */ lwz r0, lbl_8063FB38-_SDA_BASE_(r13)
+/* 80273EBC 0026FB1C 2C 00 00 00 */ cmpwi r0, 0
+/* 80273EC0 0026FB20 40 82 00 24 */ bne lbl_80273EE4
+/* 80273EC4 0026FB24 38 7D 00 B0 */ addi r3, r29, 0xb0
+/* 80273EC8 0026FB28 48 07 47 C1 */ bl func_802E8688
+/* 80273ECC 0026FB2C 48 00 00 18 */ b lbl_80273EE4
+lbl_80273ED0:
+/* 80273ED0 0026FB30 80 0D A8 78 */ lwz r0, lbl_8063FB38-_SDA_BASE_(r13)
+/* 80273ED4 0026FB34 2C 00 00 00 */ cmpwi r0, 0
+/* 80273ED8 0026FB38 41 82 00 0C */ beq lbl_80273EE4
+/* 80273EDC 0026FB3C 38 7D 00 B0 */ addi r3, r29, 0xb0
+/* 80273EE0 0026FB40 48 07 47 A9 */ bl func_802E8688
+lbl_80273EE4:
+/* 80273EE4 0026FB44 38 00 00 09 */ li r0, 9
+/* 80273EE8 0026FB48 90 0D 87 F0 */ stw r0, lbl_8063DAB0-_SDA_BASE_(r13)
+lbl_80273EEC:
+/* 80273EEC 0026FB4C 39 61 00 20 */ addi r11, r1, 0x20
+/* 80273EF0 0026FB50 4B F5 32 81 */ bl _restgpr_26
+/* 80273EF4 0026FB54 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80273EF8 0026FB58 7C 08 03 A6 */ mtlr r0
+/* 80273EFC 0026FB5C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80273F00 0026FB60 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSReset.s b/asm/SDK/OS/OSReset.s
index 524e46a..1c45e21 100644
--- a/asm/SDK/OS/OSReset.s
+++ b/asm/SDK/OS/OSReset.s
@@ -224,11 +224,11 @@ 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
+/* 8026FF64 0026BBC4 48 00 3D B9 */ bl __OSStopPlayRecord
+/* 8026FF68 0026BBC8 48 00 36 C5 */ bl __OSUnRegisterStateEvent
/* 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
+/* 8026FF74 0026BBD4 48 00 40 75 */ bl __OSReadStateFlags
/* 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
@@ -258,11 +258,11 @@ lbl_8026FFCC:
/* 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
+/* 8026FFDC 0026BC3C 48 00 3F 29 */ bl __OSWriteStateFlags
/* 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
+/* 8026FFEC 0026BC4C 48 00 34 99 */ bl __OSHotReset
/* 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
@@ -284,11 +284,11 @@ lbl_80270020:
/* 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
+/* 80270034 0026BC94 48 00 3C E9 */ bl __OSStopPlayRecord
+/* 80270038 0026BC98 48 00 35 F5 */ bl __OSUnRegisterStateEvent
/* 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
+/* 80270044 0026BCA4 48 00 3F A5 */ bl __OSReadStateFlags
/* 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
@@ -326,7 +326,7 @@ lbl_802700B4:
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
+/* 802700C4 0026BD24 48 00 3E 41 */ bl __OSWriteStateFlags
/* 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)
@@ -342,7 +342,7 @@ 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
+/* 80270100 0026BD60 48 00 33 0D */ bl __OSShutdownToSBY
lbl_80270104:
/* 80270104 0026BD64 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80270108 0026BD68 7C 08 03 A6 */ mtlr r0
@@ -375,15 +375,15 @@ __OSRebootForNANDAPP:
/* 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
+/* 80270174 0026BDD4 48 00 40 41 */ bl __OSWriteNandbootInfo
/* 80270178 0026BDD8 38 61 00 08 */ addi r3, r1, 8
-/* 8027017C 0026BDDC 48 00 3E 6D */ bl func_80273FE8
+/* 8027017C 0026BDDC 48 00 3E 6D */ bl __OSReadStateFlags
/* 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
+/* 80270194 0026BDF4 48 00 3D 71 */ bl __OSWriteStateFlags
lbl_80270198:
/* 80270198 0026BDF8 48 00 11 AD */ bl OSDisableScheduler
/* 8027019C 0026BDFC 38 60 00 04 */ li r3, 4
@@ -407,8 +407,8 @@ OSRestart:
/* 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
+/* 802701E4 0026BE44 48 00 3B 39 */ bl __OSStopPlayRecord
+/* 802701E8 0026BE48 48 00 34 45 */ bl __OSUnRegisterStateEvent
/* 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
@@ -429,7 +429,7 @@ 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
+/* 80270234 0026BE94 48 00 32 51 */ bl __OSHotReset
/* 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)
@@ -442,11 +442,11 @@ 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
+/* 8027025C 0026BEBC 48 00 3A C1 */ bl __OSStopPlayRecord
+/* 80270260 0026BEC0 48 00 33 CD */ bl __OSUnRegisterStateEvent
/* 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
+/* 8027026C 0026BECC 48 00 3D 7D */ bl __OSReadStateFlags
/* 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
@@ -476,7 +476,7 @@ lbl_802702C4:
/* 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
+/* 802702D4 0026BF34 48 00 3C 31 */ bl __OSWriteStateFlags
/* 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
@@ -484,7 +484,7 @@ lbl_802702C4:
/* 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
+/* 802702F4 0026BF54 48 00 31 91 */ bl __OSHotReset
/* 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
@@ -503,18 +503,18 @@ __OSReturnToMenuForError:
/* 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
+/* 80270334 0026BF94 48 00 3C B5 */ bl __OSReadStateFlags
/* 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
+/* 80270350 0026BFB0 48 00 3B B5 */ bl __OSWriteStateFlags
/* 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
+/* 80270360 0026BFC0 48 00 31 25 */ bl __OSHotReset
/* 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
diff --git a/asm/SDK/OS/OSStateFlags.s b/asm/SDK/OS/OSStateFlags.s
new file mode 100644
index 0000000..7be7ba6
--- /dev/null
+++ b/asm/SDK/OS/OSStateFlags.s
@@ -0,0 +1,148 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global __OSWriteStateFlags
+__OSWriteStateFlags:
+/* 80273F04 0026FB64 94 21 FF 60 */ stwu r1, -0xa0(r1)
+/* 80273F08 0026FB68 7C 08 02 A6 */ mflr r0
+/* 80273F0C 0026FB6C 7C 64 1B 78 */ mr r4, r3
+/* 80273F10 0026FB70 38 A0 00 20 */ li r5, 0x20
+/* 80273F14 0026FB74 90 01 00 A4 */ stw r0, 0xa4(r1)
+/* 80273F18 0026FB78 93 E1 00 9C */ stw r31, 0x9c(r1)
+/* 80273F1C 0026FB7C 93 C1 00 98 */ stw r30, 0x98(r1)
+/* 80273F20 0026FB80 3F C0 80 51 */ lis r30, lbl_805154A0@ha
+/* 80273F24 0026FB84 38 7E 54 A0 */ addi r3, r30, lbl_805154A0@l
+/* 80273F28 0026FB88 4B D9 00 D9 */ bl memcpy
+/* 80273F2C 0026FB8C 3B FE 54 A0 */ addi r31, r30, 0x54a0
+/* 80273F30 0026FB90 3C 60 80 43 */ lis r3, lbl_80433D78@ha
+/* 80273F34 0026FB94 80 DF 00 04 */ lwz r6, 4(r31)
+/* 80273F38 0026FB98 38 63 3D 78 */ addi r3, r3, lbl_80433D78@l
+/* 80273F3C 0026FB9C 80 1F 00 08 */ lwz r0, 8(r31)
+/* 80273F40 0026FBA0 38 81 00 08 */ addi r4, r1, 8
+/* 80273F44 0026FBA4 38 A0 00 02 */ li r5, 2
+/* 80273F48 0026FBA8 7C C6 02 14 */ add r6, r6, r0
+/* 80273F4C 0026FBAC 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 80273F50 0026FBB0 7C C6 02 14 */ add r6, r6, r0
+/* 80273F54 0026FBB4 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 80273F58 0026FBB8 7C C6 02 14 */ add r6, r6, r0
+/* 80273F5C 0026FBBC 80 1F 00 14 */ lwz r0, 0x14(r31)
+/* 80273F60 0026FBC0 7C C6 02 14 */ add r6, r6, r0
+/* 80273F64 0026FBC4 80 1F 00 18 */ lwz r0, 0x18(r31)
+/* 80273F68 0026FBC8 7C C6 02 14 */ add r6, r6, r0
+/* 80273F6C 0026FBCC 80 1F 00 1C */ lwz r0, 0x1c(r31)
+/* 80273F70 0026FBD0 7C C6 02 14 */ add r6, r6, r0
+/* 80273F74 0026FBD4 90 DE 54 A0 */ stw r6, 0x54a0(r30)
+/* 80273F78 0026FBD8 48 07 44 91 */ bl func_802E8408
+/* 80273F7C 0026FBDC 2C 03 00 00 */ cmpwi r3, 0
+/* 80273F80 0026FBE0 40 82 00 44 */ bne lbl_80273FC4
+/* 80273F84 0026FBE4 7F E4 FB 78 */ mr r4, r31
+/* 80273F88 0026FBE8 38 61 00 08 */ addi r3, r1, 8
+/* 80273F8C 0026FBEC 38 A0 00 20 */ li r5, 0x20
+/* 80273F90 0026FBF0 48 07 3A 11 */ bl func_802E79A0
+/* 80273F94 0026FBF4 28 03 00 20 */ cmplwi r3, 0x20
+/* 80273F98 0026FBF8 41 82 00 14 */ beq lbl_80273FAC
+/* 80273F9C 0026FBFC 38 61 00 08 */ addi r3, r1, 8
+/* 80273FA0 0026FC00 48 07 46 E9 */ bl func_802E8688
+/* 80273FA4 0026FC04 38 60 00 00 */ li r3, 0
+/* 80273FA8 0026FC08 48 00 00 28 */ b lbl_80273FD0
+lbl_80273FAC:
+/* 80273FAC 0026FC0C 38 61 00 08 */ addi r3, r1, 8
+/* 80273FB0 0026FC10 48 07 46 D9 */ bl func_802E8688
+/* 80273FB4 0026FC14 2C 03 00 00 */ cmpwi r3, 0
+/* 80273FB8 0026FC18 41 82 00 14 */ beq lbl_80273FCC
+/* 80273FBC 0026FC1C 38 60 00 00 */ li r3, 0
+/* 80273FC0 0026FC20 48 00 00 10 */ b lbl_80273FD0
+lbl_80273FC4:
+/* 80273FC4 0026FC24 38 60 00 00 */ li r3, 0
+/* 80273FC8 0026FC28 48 00 00 08 */ b lbl_80273FD0
+lbl_80273FCC:
+/* 80273FCC 0026FC2C 38 60 00 01 */ li r3, 1
+lbl_80273FD0:
+/* 80273FD0 0026FC30 80 01 00 A4 */ lwz r0, 0xa4(r1)
+/* 80273FD4 0026FC34 83 E1 00 9C */ lwz r31, 0x9c(r1)
+/* 80273FD8 0026FC38 83 C1 00 98 */ lwz r30, 0x98(r1)
+/* 80273FDC 0026FC3C 7C 08 03 A6 */ mtlr r0
+/* 80273FE0 0026FC40 38 21 00 A0 */ addi r1, r1, 0xa0
+/* 80273FE4 0026FC44 4E 80 00 20 */ blr
+
+.global __OSReadStateFlags
+__OSReadStateFlags:
+/* 80273FE8 0026FC48 94 21 FF 50 */ stwu r1, -0xb0(r1)
+/* 80273FEC 0026FC4C 7C 08 02 A6 */ mflr r0
+/* 80273FF0 0026FC50 38 A0 00 01 */ li r5, 1
+/* 80273FF4 0026FC54 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 80273FF8 0026FC58 38 81 00 08 */ addi r4, r1, 8
+/* 80273FFC 0026FC5C 93 E1 00 AC */ stw r31, 0xac(r1)
+/* 80274000 0026FC60 93 C1 00 A8 */ stw r30, 0xa8(r1)
+/* 80274004 0026FC64 93 A1 00 A4 */ stw r29, 0xa4(r1)
+/* 80274008 0026FC68 3F A0 80 43 */ lis r29, lbl_80433D78@ha
+/* 8027400C 0026FC6C 93 81 00 A0 */ stw r28, 0xa0(r1)
+/* 80274010 0026FC70 7C 7C 1B 78 */ mr r28, r3
+/* 80274014 0026FC74 38 7D 3D 78 */ addi r3, r29, lbl_80433D78@l
+/* 80274018 0026FC78 48 07 43 F1 */ bl func_802E8408
+/* 8027401C 0026FC7C 2C 03 00 00 */ cmpwi r3, 0
+/* 80274020 0026FC80 40 82 00 4C */ bne lbl_8027406C
+/* 80274024 0026FC84 3F C0 80 51 */ lis r30, lbl_805154A0@ha
+/* 80274028 0026FC88 38 61 00 08 */ addi r3, r1, 8
+/* 8027402C 0026FC8C 38 9E 54 A0 */ addi r4, r30, lbl_805154A0@l
+/* 80274030 0026FC90 38 A0 00 20 */ li r5, 0x20
+/* 80274034 0026FC94 48 07 38 8D */ bl func_802E78C0
+/* 80274038 0026FC98 7C 7F 1B 78 */ mr r31, r3
+/* 8027403C 0026FC9C 38 61 00 08 */ addi r3, r1, 8
+/* 80274040 0026FCA0 48 07 46 49 */ bl func_802E8688
+/* 80274044 0026FCA4 28 1F 00 20 */ cmplwi r31, 0x20
+/* 80274048 0026FCA8 41 82 00 3C */ beq lbl_80274084
+/* 8027404C 0026FCAC 38 7D 3D 78 */ addi r3, r29, 0x3d78
+/* 80274050 0026FCB0 48 07 37 01 */ bl func_802E7750
+/* 80274054 0026FCB4 7F 83 E3 78 */ mr r3, r28
+/* 80274058 0026FCB8 38 80 00 00 */ li r4, 0
+/* 8027405C 0026FCBC 38 A0 00 20 */ li r5, 0x20
+/* 80274060 0026FCC0 4B D9 00 A5 */ bl memset
+/* 80274064 0026FCC4 38 60 00 00 */ li r3, 0
+/* 80274068 0026FCC8 48 00 00 88 */ b lbl_802740F0
+lbl_8027406C:
+/* 8027406C 0026FCCC 7F 83 E3 78 */ mr r3, r28
+/* 80274070 0026FCD0 38 80 00 00 */ li r4, 0
+/* 80274074 0026FCD4 38 A0 00 20 */ li r5, 0x20
+/* 80274078 0026FCD8 4B D9 00 8D */ bl memset
+/* 8027407C 0026FCDC 38 60 00 00 */ li r3, 0
+/* 80274080 0026FCE0 48 00 00 70 */ b lbl_802740F0
+lbl_80274084:
+/* 80274084 0026FCE4 38 9E 54 A0 */ addi r4, r30, 0x54a0
+/* 80274088 0026FCE8 80 1E 54 A0 */ lwz r0, 0x54a0(r30)
+/* 8027408C 0026FCEC 80 A4 00 04 */ lwz r5, 4(r4)
+/* 80274090 0026FCF0 80 64 00 08 */ lwz r3, 8(r4)
+/* 80274094 0026FCF4 7C A5 1A 14 */ add r5, r5, r3
+/* 80274098 0026FCF8 80 64 00 0C */ lwz r3, 0xc(r4)
+/* 8027409C 0026FCFC 7C A5 1A 14 */ add r5, r5, r3
+/* 802740A0 0026FD00 80 64 00 10 */ lwz r3, 0x10(r4)
+/* 802740A4 0026FD04 7C A5 1A 14 */ add r5, r5, r3
+/* 802740A8 0026FD08 80 64 00 14 */ lwz r3, 0x14(r4)
+/* 802740AC 0026FD0C 7C A5 1A 14 */ add r5, r5, r3
+/* 802740B0 0026FD10 80 64 00 18 */ lwz r3, 0x18(r4)
+/* 802740B4 0026FD14 7C A5 1A 14 */ add r5, r5, r3
+/* 802740B8 0026FD18 80 64 00 1C */ lwz r3, 0x1c(r4)
+/* 802740BC 0026FD1C 7C A5 1A 14 */ add r5, r5, r3
+/* 802740C0 0026FD20 7C 00 28 40 */ cmplw r0, r5
+/* 802740C4 0026FD24 41 82 00 1C */ beq lbl_802740E0
+/* 802740C8 0026FD28 7F 83 E3 78 */ mr r3, r28
+/* 802740CC 0026FD2C 38 80 00 00 */ li r4, 0
+/* 802740D0 0026FD30 38 A0 00 20 */ li r5, 0x20
+/* 802740D4 0026FD34 4B D9 00 31 */ bl memset
+/* 802740D8 0026FD38 38 60 00 00 */ li r3, 0
+/* 802740DC 0026FD3C 48 00 00 14 */ b lbl_802740F0
+lbl_802740E0:
+/* 802740E0 0026FD40 7F 83 E3 78 */ mr r3, r28
+/* 802740E4 0026FD44 38 A0 00 20 */ li r5, 0x20
+/* 802740E8 0026FD48 4B D8 FF 19 */ bl memcpy
+/* 802740EC 0026FD4C 38 60 00 01 */ li r3, 1
+lbl_802740F0:
+/* 802740F0 0026FD50 80 01 00 B4 */ lwz r0, 0xb4(r1)
+/* 802740F4 0026FD54 83 E1 00 AC */ lwz r31, 0xac(r1)
+/* 802740F8 0026FD58 83 C1 00 A8 */ lwz r30, 0xa8(r1)
+/* 802740FC 0026FD5C 83 A1 00 A4 */ lwz r29, 0xa4(r1)
+/* 80274100 0026FD60 83 81 00 A0 */ lwz r28, 0xa0(r1)
+/* 80274104 0026FD64 7C 08 03 A6 */ mtlr r0
+/* 80274108 0026FD68 38 21 00 B0 */ addi r1, r1, 0xb0
+/* 8027410C 0026FD6C 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSStateTM.s b/asm/SDK/OS/OSStateTM.s
new file mode 100644
index 0000000..0285953
--- /dev/null
+++ b/asm/SDK/OS/OSStateTM.s
@@ -0,0 +1,542 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSSetResetCallback
+OSSetResetCallback:
+/* 802730CC 0026ED2C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802730D0 0026ED30 7C 08 02 A6 */ mflr r0
+/* 802730D4 0026ED34 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802730D8 0026ED38 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802730DC 0026ED3C 7C 7F 1B 78 */ mr r31, r3
+/* 802730E0 0026ED40 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802730E4 0026ED44 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802730E8 0026ED48 4B FF B6 75 */ bl OSDisableInterrupts
+/* 802730EC 0026ED4C 80 0D A8 50 */ lwz r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 802730F0 0026ED50 7C 7E 1B 78 */ mr r30, r3
+/* 802730F4 0026ED54 83 AD A8 5C */ lwz r29, lbl_8063FB1C-_SDA_BASE_(r13)
+/* 802730F8 0026ED58 2C 00 00 00 */ cmpwi r0, 0
+/* 802730FC 0026ED5C 93 ED A8 5C */ stw r31, lbl_8063FB1C-_SDA_BASE_(r13)
+/* 80273100 0026ED60 40 82 00 60 */ bne lbl_80273160
+/* 80273104 0026ED64 4B FF B6 59 */ bl OSDisableInterrupts
+/* 80273108 0026ED68 7C 7F 1B 78 */ mr r31, r3
+/* 8027310C 0026ED6C 3C A0 80 51 */ lis r5, lbl_805151E0@ha
+/* 80273110 0026ED70 3C E0 80 51 */ lis r7, lbl_80515200@ha
+/* 80273114 0026ED74 3D 20 80 27 */ lis r9, __OSStateEventHandler@ha
+/* 80273118 0026ED78 80 6D A8 4C */ lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
+/* 8027311C 0026ED7C 38 A5 51 E0 */ addi r5, r5, lbl_805151E0@l
+/* 80273120 0026ED80 38 E7 52 00 */ addi r7, r7, lbl_80515200@l
+/* 80273124 0026ED84 39 29 36 BC */ addi r9, r9, __OSStateEventHandler@l
+/* 80273128 0026ED88 38 80 10 00 */ li r4, 0x1000
+/* 8027312C 0026ED8C 38 C0 00 20 */ li r6, 0x20
+/* 80273130 0026ED90 39 00 00 20 */ li r8, 0x20
+/* 80273134 0026ED94 39 40 00 00 */ li r10, 0
+/* 80273138 0026ED98 48 03 08 81 */ bl func_802A39B8
+/* 8027313C 0026ED9C 2C 03 00 00 */ cmpwi r3, 0
+/* 80273140 0026EDA0 40 82 00 10 */ bne lbl_80273150
+/* 80273144 0026EDA4 38 00 00 01 */ li r0, 1
+/* 80273148 0026EDA8 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 8027314C 0026EDAC 48 00 00 0C */ b lbl_80273158
+lbl_80273150:
+/* 80273150 0026EDB0 38 00 00 00 */ li r0, 0
+/* 80273154 0026EDB4 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+lbl_80273158:
+/* 80273158 0026EDB8 7F E3 FB 78 */ mr r3, r31
+/* 8027315C 0026EDBC 4B FF B6 29 */ bl OSRestoreInterrupts
+lbl_80273160:
+/* 80273160 0026EDC0 7F C3 F3 78 */ mr r3, r30
+/* 80273164 0026EDC4 4B FF B6 21 */ bl OSRestoreInterrupts
+/* 80273168 0026EDC8 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 8027316C 0026EDCC 7F A3 EB 78 */ mr r3, r29
+/* 80273170 0026EDD0 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80273174 0026EDD4 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80273178 0026EDD8 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 8027317C 0026EDDC 7C 08 03 A6 */ mtlr r0
+/* 80273180 0026EDE0 38 21 00 20 */ addi r1, r1, 0x20
+/* 80273184 0026EDE4 4E 80 00 20 */ blr
+
+.global OSSetPowerCallback
+OSSetPowerCallback:
+/* 80273188 0026EDE8 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 8027318C 0026EDEC 7C 08 02 A6 */ mflr r0
+/* 80273190 0026EDF0 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80273194 0026EDF4 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80273198 0026EDF8 7C 7F 1B 78 */ mr r31, r3
+/* 8027319C 0026EDFC 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802731A0 0026EE00 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802731A4 0026EE04 4B FF B5 B9 */ bl OSDisableInterrupts
+/* 802731A8 0026EE08 80 0D A8 50 */ lwz r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 802731AC 0026EE0C 7C 7E 1B 78 */ mr r30, r3
+/* 802731B0 0026EE10 83 AD A8 58 */ lwz r29, lbl_8063FB18-_SDA_BASE_(r13)
+/* 802731B4 0026EE14 2C 00 00 00 */ cmpwi r0, 0
+/* 802731B8 0026EE18 93 ED A8 58 */ stw r31, lbl_8063FB18-_SDA_BASE_(r13)
+/* 802731BC 0026EE1C 40 82 00 60 */ bne lbl_8027321C
+/* 802731C0 0026EE20 4B FF B5 9D */ bl OSDisableInterrupts
+/* 802731C4 0026EE24 7C 7F 1B 78 */ mr r31, r3
+/* 802731C8 0026EE28 3C A0 80 51 */ lis r5, lbl_805151E0@ha
+/* 802731CC 0026EE2C 3C E0 80 51 */ lis r7, lbl_80515200@ha
+/* 802731D0 0026EE30 3D 20 80 27 */ lis r9, __OSStateEventHandler@ha
+/* 802731D4 0026EE34 80 6D A8 4C */ lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
+/* 802731D8 0026EE38 38 A5 51 E0 */ addi r5, r5, lbl_805151E0@l
+/* 802731DC 0026EE3C 38 E7 52 00 */ addi r7, r7, lbl_80515200@l
+/* 802731E0 0026EE40 39 29 36 BC */ addi r9, r9, __OSStateEventHandler@l
+/* 802731E4 0026EE44 38 80 10 00 */ li r4, 0x1000
+/* 802731E8 0026EE48 38 C0 00 20 */ li r6, 0x20
+/* 802731EC 0026EE4C 39 00 00 20 */ li r8, 0x20
+/* 802731F0 0026EE50 39 40 00 00 */ li r10, 0
+/* 802731F4 0026EE54 48 03 07 C5 */ bl func_802A39B8
+/* 802731F8 0026EE58 2C 03 00 00 */ cmpwi r3, 0
+/* 802731FC 0026EE5C 40 82 00 10 */ bne lbl_8027320C
+/* 80273200 0026EE60 38 00 00 01 */ li r0, 1
+/* 80273204 0026EE64 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 80273208 0026EE68 48 00 00 0C */ b lbl_80273214
+lbl_8027320C:
+/* 8027320C 0026EE6C 38 00 00 00 */ li r0, 0
+/* 80273210 0026EE70 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+lbl_80273214:
+/* 80273214 0026EE74 7F E3 FB 78 */ mr r3, r31
+/* 80273218 0026EE78 4B FF B5 6D */ bl OSRestoreInterrupts
+lbl_8027321C:
+/* 8027321C 0026EE7C 7F C3 F3 78 */ mr r3, r30
+/* 80273220 0026EE80 4B FF B5 65 */ bl OSRestoreInterrupts
+/* 80273224 0026EE84 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80273228 0026EE88 7F A3 EB 78 */ mr r3, r29
+/* 8027322C 0026EE8C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80273230 0026EE90 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 80273234 0026EE94 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80273238 0026EE98 7C 08 03 A6 */ mtlr r0
+/* 8027323C 0026EE9C 38 21 00 20 */ addi r1, r1, 0x20
+/* 80273240 0026EEA0 4E 80 00 20 */ blr
+
+# could also be OSGetResetSwitchState
+.global OSGetResetButtonState
+OSGetResetButtonState:
+/* 80273244 0026EEA4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80273248 0026EEA8 7C 08 02 A6 */ mflr r0
+/* 8027324C 0026EEAC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80273250 0026EEB0 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80273254 0026EEB4 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 80273258 0026EEB8 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 8027325C 0026EEBC 4B FF B5 01 */ bl OSDisableInterrupts
+/* 80273260 0026EEC0 83 AD A8 40 */ lwz r29, lbl_8063FB00-_SDA_BASE_(r13)
+/* 80273264 0026EEC4 3B E0 00 00 */ li r31, 0
+/* 80273268 0026EEC8 93 ED A8 40 */ stw r31, lbl_8063FB00-_SDA_BASE_(r13)
+/* 8027326C 0026EECC 4B FF B5 19 */ bl OSRestoreInterrupts
+/* 80273270 0026EED0 80 0D A8 50 */ lwz r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 80273274 0026EED4 2C 00 00 00 */ cmpwi r0, 0
+/* 80273278 0026EED8 40 82 00 5C */ bne lbl_802732D4
+/* 8027327C 0026EEDC 4B FF B4 E1 */ bl OSDisableInterrupts
+/* 80273280 0026EEE0 7C 7E 1B 78 */ mr r30, r3
+/* 80273284 0026EEE4 3C A0 80 51 */ lis r5, lbl_805151E0@ha
+/* 80273288 0026EEE8 3C E0 80 51 */ lis r7, lbl_80515200@ha
+/* 8027328C 0026EEEC 3D 20 80 27 */ lis r9, __OSStateEventHandler@ha
+/* 80273290 0026EEF0 80 6D A8 4C */ lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
+/* 80273294 0026EEF4 38 A5 51 E0 */ addi r5, r5, lbl_805151E0@l
+/* 80273298 0026EEF8 38 E7 52 00 */ addi r7, r7, lbl_80515200@l
+/* 8027329C 0026EEFC 39 29 36 BC */ addi r9, r9, __OSStateEventHandler@l
+/* 802732A0 0026EF00 38 80 10 00 */ li r4, 0x1000
+/* 802732A4 0026EF04 38 C0 00 20 */ li r6, 0x20
+/* 802732A8 0026EF08 39 00 00 20 */ li r8, 0x20
+/* 802732AC 0026EF0C 39 40 00 00 */ li r10, 0
+/* 802732B0 0026EF10 48 03 07 09 */ bl func_802A39B8
+/* 802732B4 0026EF14 2C 03 00 00 */ cmpwi r3, 0
+/* 802732B8 0026EF18 40 82 00 10 */ bne lbl_802732C8
+/* 802732BC 0026EF1C 38 00 00 01 */ li r0, 1
+/* 802732C0 0026EF20 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 802732C4 0026EF24 48 00 00 08 */ b lbl_802732CC
+lbl_802732C8:
+/* 802732C8 0026EF28 93 ED A8 50 */ stw r31, lbl_8063FB10-_SDA_BASE_(r13)
+lbl_802732CC:
+/* 802732CC 0026EF2C 7F C3 F3 78 */ mr r3, r30
+/* 802732D0 0026EF30 4B FF B4 B5 */ bl OSRestoreInterrupts
+lbl_802732D4:
+/* 802732D4 0026EF34 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802732D8 0026EF38 7F A3 EB 78 */ mr r3, r29
+/* 802732DC 0026EF3C 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802732E0 0026EF40 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802732E4 0026EF44 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802732E8 0026EF48 7C 08 03 A6 */ mtlr r0
+/* 802732EC 0026EF4C 38 21 00 20 */ addi r1, r1, 0x20
+/* 802732F0 0026EF50 4E 80 00 20 */ blr
+
+.global __OSInitSTM
+__OSInitSTM:
+/* 802732F4 0026EF54 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802732F8 0026EF58 7C 08 02 A6 */ mflr r0
+/* 802732FC 0026EF5C 3C 80 80 27 */ lis r4, __OSDefaultPowerCallback@ha
+/* 80273300 0026EF60 3C 60 80 27 */ lis r3, __OSDefaultResetCallback@ha
+/* 80273304 0026EF64 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80273308 0026EF68 38 84 36 B8 */ addi r4, r4, __OSDefaultPowerCallback@l
+/* 8027330C 0026EF6C 38 63 36 B4 */ addi r3, r3, __OSDefaultResetCallback@l
+/* 80273310 0026EF70 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80273314 0026EF74 3B E0 00 00 */ li r31, 0
+/* 80273318 0026EF78 93 C1 00 08 */ stw r30, 8(r1)
+/* 8027331C 0026EF7C 80 0D A8 44 */ lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
+/* 80273320 0026EF80 90 8D A8 58 */ stw r4, lbl_8063FB18-_SDA_BASE_(r13)
+/* 80273324 0026EF84 2C 00 00 00 */ cmpwi r0, 0
+/* 80273328 0026EF88 90 6D A8 5C */ stw r3, lbl_8063FB1C-_SDA_BASE_(r13)
+/* 8027332C 0026EF8C 93 ED A8 40 */ stw r31, lbl_8063FB00-_SDA_BASE_(r13)
+/* 80273330 0026EF90 41 82 00 0C */ beq lbl_8027333C
+/* 80273334 0026EF94 38 60 00 01 */ li r3, 1
+/* 80273338 0026EF98 48 00 00 BC */ b lbl_802733F4
+lbl_8027333C:
+/* 8027333C 0026EF9C 3C 60 80 43 */ lis r3, lbl_80433C68@ha
+/* 80273340 0026EFA0 93 ED A8 54 */ stw r31, lbl_8063FB14-_SDA_BASE_(r13)
+/* 80273344 0026EFA4 38 80 00 00 */ li r4, 0
+/* 80273348 0026EFA8 38 63 3C 68 */ addi r3, r3, lbl_80433C68@l
+/* 8027334C 0026EFAC 48 02 FE 0D */ bl func_802A3158
+/* 80273350 0026EFB0 2C 03 00 00 */ cmpwi r3, 0
+/* 80273354 0026EFB4 90 6D A8 48 */ stw r3, lbl_8063FB08-_SDA_BASE_(r13)
+/* 80273358 0026EFB8 40 80 00 10 */ bge lbl_80273368
+/* 8027335C 0026EFBC 93 ED A8 44 */ stw r31, lbl_8063FB04-_SDA_BASE_(r13)
+/* 80273360 0026EFC0 38 60 00 00 */ li r3, 0
+/* 80273364 0026EFC4 48 00 00 90 */ b lbl_802733F4
+lbl_80273368:
+/* 80273368 0026EFC8 3C 60 80 43 */ lis r3, lbl_80433C7C@ha
+/* 8027336C 0026EFCC 38 80 00 00 */ li r4, 0
+/* 80273370 0026EFD0 38 63 3C 7C */ addi r3, r3, lbl_80433C7C@l
+/* 80273374 0026EFD4 48 02 FD E5 */ bl func_802A3158
+/* 80273378 0026EFD8 2C 03 00 00 */ cmpwi r3, 0
+/* 8027337C 0026EFDC 90 6D A8 4C */ stw r3, lbl_8063FB0C-_SDA_BASE_(r13)
+/* 80273380 0026EFE0 40 80 00 10 */ bge lbl_80273390
+/* 80273384 0026EFE4 93 ED A8 44 */ stw r31, lbl_8063FB04-_SDA_BASE_(r13)
+/* 80273388 0026EFE8 38 60 00 00 */ li r3, 0
+/* 8027338C 0026EFEC 48 00 00 68 */ b lbl_802733F4
+lbl_80273390:
+/* 80273390 0026EFF0 4B FF B3 CD */ bl OSDisableInterrupts
+/* 80273394 0026EFF4 7C 7E 1B 78 */ mr r30, r3
+/* 80273398 0026EFF8 3C A0 80 51 */ lis r5, lbl_805151E0@ha
+/* 8027339C 0026EFFC 3C E0 80 51 */ lis r7, lbl_80515200@ha
+/* 802733A0 0026F000 3D 20 80 27 */ lis r9, __OSStateEventHandler@ha
+/* 802733A4 0026F004 80 6D A8 4C */ lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
+/* 802733A8 0026F008 38 A5 51 E0 */ addi r5, r5, lbl_805151E0@l
+/* 802733AC 0026F00C 38 E7 52 00 */ addi r7, r7, lbl_80515200@l
+/* 802733B0 0026F010 39 29 36 BC */ addi r9, r9, __OSStateEventHandler@l
+/* 802733B4 0026F014 38 80 10 00 */ li r4, 0x1000
+/* 802733B8 0026F018 38 C0 00 20 */ li r6, 0x20
+/* 802733BC 0026F01C 39 00 00 20 */ li r8, 0x20
+/* 802733C0 0026F020 39 40 00 00 */ li r10, 0
+/* 802733C4 0026F024 48 03 05 F5 */ bl func_802A39B8
+/* 802733C8 0026F028 2C 03 00 00 */ cmpwi r3, 0
+/* 802733CC 0026F02C 40 82 00 10 */ bne lbl_802733DC
+/* 802733D0 0026F030 38 00 00 01 */ li r0, 1
+/* 802733D4 0026F034 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 802733D8 0026F038 48 00 00 08 */ b lbl_802733E0
+lbl_802733DC:
+/* 802733DC 0026F03C 93 ED A8 50 */ stw r31, lbl_8063FB10-_SDA_BASE_(r13)
+lbl_802733E0:
+/* 802733E0 0026F040 7F C3 F3 78 */ mr r3, r30
+/* 802733E4 0026F044 4B FF B3 A1 */ bl OSRestoreInterrupts
+/* 802733E8 0026F048 38 00 00 01 */ li r0, 1
+/* 802733EC 0026F04C 38 60 00 01 */ li r3, 1
+/* 802733F0 0026F050 90 0D A8 44 */ stw r0, lbl_8063FB04-_SDA_BASE_(r13)
+lbl_802733F4:
+/* 802733F4 0026F054 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 802733F8 0026F058 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802733FC 0026F05C 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80273400 0026F060 7C 08 03 A6 */ mtlr r0
+/* 80273404 0026F064 38 21 00 10 */ addi r1, r1, 0x10
+/* 80273408 0026F068 4E 80 00 20 */ blr
+
+.global __OSShutdownToSBY
+__OSShutdownToSBY:
+/* 8027340C 0026F06C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80273410 0026F070 7C 08 02 A6 */ mflr r0
+/* 80273414 0026F074 3C 60 CC 00 */ lis r3, 0xCC002002@ha
+/* 80273418 0026F078 90 01 00 14 */ stw r0, 0x14(r1)
+/* 8027341C 0026F07C 38 00 00 00 */ li r0, 0
+/* 80273420 0026F080 B0 03 20 02 */ sth r0, 0xCC002002@l(r3)
+/* 80273424 0026F084 80 0D A8 44 */ lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
+/* 80273428 0026F088 2C 00 00 00 */ cmpwi r0, 0
+/* 8027342C 0026F08C 40 82 00 20 */ bne lbl_8027344C
+/* 80273430 0026F090 3C 60 80 43 */ lis r3, lbl_80433C90@ha
+/* 80273434 0026F094 3C A0 80 43 */ lis r5, lbl_80433C9C@ha
+/* 80273438 0026F098 38 63 3C 90 */ addi r3, r3, lbl_80433C90@l
+/* 8027343C 0026F09C 38 80 01 14 */ li r4, 0x114
+/* 80273440 0026F0A0 38 A5 3C 9C */ addi r5, r5, lbl_80433C9C@l
+/* 80273444 0026F0A4 4C C6 31 82 */ crclr 6
+/* 80273448 0026F0A8 4B FF 80 55 */ bl OSPanic
+lbl_8027344C:
+/* 8027344C 0026F0AC 3C 80 80 51 */ lis r4, lbl_80515220@ha
+/* 80273450 0026F0B0 38 00 00 00 */ li r0, 0
+/* 80273454 0026F0B4 3C E0 80 51 */ lis r7, lbl_80515240@ha
+/* 80273458 0026F0B8 90 04 52 20 */ stw r0, lbl_80515220@l(r4)
+/* 8027345C 0026F0BC 38 A4 52 20 */ addi r5, r4, 0x5220
+/* 80273460 0026F0C0 80 6D A8 48 */ lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
+/* 80273464 0026F0C4 38 E7 52 40 */ addi r7, r7, lbl_80515240@l
+/* 80273468 0026F0C8 38 80 20 03 */ li r4, 0x2003
+/* 8027346C 0026F0CC 38 C0 00 20 */ li r6, 0x20
+/* 80273470 0026F0D0 39 00 00 20 */ li r8, 0x20
+/* 80273474 0026F0D4 48 03 06 7D */ bl func_802A3AF0
+/* 80273478 0026F0D8 4B FF B2 E5 */ bl OSDisableInterrupts
+/* 8027347C 0026F0DC 4B FF 72 F1 */ bl ICFlashInvalidate
+lbl_80273480:
+/* 80273480 0026F0E0 48 00 00 00 */ b lbl_80273480
+
+.global __OSHotReset
+__OSHotReset:
+/* 80273484 0026F0E4 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80273488 0026F0E8 7C 08 02 A6 */ mflr r0
+/* 8027348C 0026F0EC 3C 60 CC 00 */ lis r3, 0xCC002002@ha
+/* 80273490 0026F0F0 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80273494 0026F0F4 38 00 00 00 */ li r0, 0
+/* 80273498 0026F0F8 B0 03 20 02 */ sth r0, 0xCC002002@l(r3)
+/* 8027349C 0026F0FC 80 0D A8 44 */ lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
+/* 802734A0 0026F100 2C 00 00 00 */ cmpwi r0, 0
+/* 802734A4 0026F104 40 82 00 20 */ bne lbl_802734C4
+/* 802734A8 0026F108 3C 60 80 43 */ lis r3, lbl_80433C90@ha
+/* 802734AC 0026F10C 3C A0 80 43 */ lis r5, lbl_80433CD4@ha
+/* 802734B0 0026F110 38 63 3C 90 */ addi r3, r3, lbl_80433C90@l
+/* 802734B4 0026F114 38 80 01 54 */ li r4, 0x154
+/* 802734B8 0026F118 38 A5 3C D4 */ addi r5, r5, lbl_80433CD4@l
+/* 802734BC 0026F11C 4C C6 31 82 */ crclr 6
+/* 802734C0 0026F120 4B FF 7F DD */ bl OSPanic
+lbl_802734C4:
+/* 802734C4 0026F124 3C A0 80 51 */ lis r5, lbl_80515220@ha
+/* 802734C8 0026F128 3C E0 80 51 */ lis r7, lbl_80515240@ha
+/* 802734CC 0026F12C 80 6D A8 48 */ lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
+/* 802734D0 0026F130 38 A5 52 20 */ addi r5, r5, lbl_80515220@l
+/* 802734D4 0026F134 38 E7 52 40 */ addi r7, r7, lbl_80515240@l
+/* 802734D8 0026F138 38 80 20 01 */ li r4, 0x2001
+/* 802734DC 0026F13C 38 C0 00 20 */ li r6, 0x20
+/* 802734E0 0026F140 39 00 00 20 */ li r8, 0x20
+/* 802734E4 0026F144 48 03 06 0D */ bl func_802A3AF0
+/* 802734E8 0026F148 4B FF B2 75 */ bl OSDisableInterrupts
+/* 802734EC 0026F14C 4B FF 72 81 */ bl ICFlashInvalidate
+lbl_802734F0:
+/* 802734F0 0026F150 48 00 00 00 */ b lbl_802734F0
+
+.global __OSSetVIForceDimming
+__OSSetVIForceDimming:
+/* 802734F4 0026F154 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802734F8 0026F158 7C 08 02 A6 */ mflr r0
+/* 802734FC 0026F15C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80273500 0026F160 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 80273504 0026F164 7C BF 2B 78 */ mr r31, r5
+/* 80273508 0026F168 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 8027350C 0026F16C 7C 9E 23 78 */ mr r30, r4
+/* 80273510 0026F170 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 80273514 0026F174 7C 7D 1B 78 */ mr r29, r3
+/* 80273518 0026F178 80 0D A8 44 */ lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
+/* 8027351C 0026F17C 2C 00 00 00 */ cmpwi r0, 0
+/* 80273520 0026F180 40 82 00 0C */ bne lbl_8027352C
+/* 80273524 0026F184 38 60 FF F6 */ li r3, -10
+/* 80273528 0026F188 48 00 00 A8 */ b lbl_802735D0
+lbl_8027352C:
+/* 8027352C 0026F18C 4B FF B2 31 */ bl OSDisableInterrupts
+/* 80273530 0026F190 80 0D A8 54 */ lwz r0, lbl_8063FB14-_SDA_BASE_(r13)
+/* 80273534 0026F194 2C 00 00 00 */ cmpwi r0, 0
+/* 80273538 0026F198 41 82 00 10 */ beq lbl_80273548
+/* 8027353C 0026F19C 4B FF B2 49 */ bl OSRestoreInterrupts
+/* 80273540 0026F1A0 38 60 00 00 */ li r3, 0
+/* 80273544 0026F1A4 48 00 00 8C */ b lbl_802735D0
+lbl_80273548:
+/* 80273548 0026F1A8 38 00 00 01 */ li r0, 1
+/* 8027354C 0026F1AC 90 0D A8 54 */ stw r0, lbl_8063FB14-_SDA_BASE_(r13)
+/* 80273550 0026F1B0 4B FF B2 35 */ bl OSRestoreInterrupts
+/* 80273554 0026F1B4 57 A0 38 30 */ slwi r0, r29, 7
+/* 80273558 0026F1B8 3C 60 80 51 */ lis r3, lbl_80515260@ha
+/* 8027355C 0026F1BC 7C 04 FB 78 */ or r4, r0, r31
+/* 80273560 0026F1C0 3C E0 80 51 */ lis r7, lbl_80515280@ha
+/* 80273564 0026F1C4 57 C0 18 38 */ slwi r0, r30, 3
+/* 80273568 0026F1C8 38 A3 52 60 */ addi r5, r3, lbl_80515260@l
+/* 8027356C 0026F1CC 39 80 00 00 */ li r12, 0
+/* 80273570 0026F1D0 39 60 FF FF */ li r11, -1
+/* 80273574 0026F1D4 7C 84 03 78 */ or r4, r4, r0
+/* 80273578 0026F1D8 3C 00 FF FF */ lis r0, 0xffff
+/* 8027357C 0026F1DC 90 83 52 60 */ stw r4, 0x5260(r3)
+/* 80273580 0026F1E0 3D 20 80 27 */ lis r9, __OSVIDimReplyHandler@ha
+/* 80273584 0026F1E4 80 6D A8 48 */ lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
+/* 80273588 0026F1E8 38 E7 52 80 */ addi r7, r7, lbl_80515280@l
+/* 8027358C 0026F1EC 91 85 00 04 */ stw r12, 4(r5)
+/* 80273590 0026F1F0 39 29 36 A4 */ addi r9, r9, __OSVIDimReplyHandler@l
+/* 80273594 0026F1F4 38 80 50 01 */ li r4, 0x5001
+/* 80273598 0026F1F8 38 C0 00 20 */ li r6, 0x20
+/* 8027359C 0026F1FC 91 85 00 08 */ stw r12, 8(r5)
+/* 802735A0 0026F200 39 00 00 20 */ li r8, 0x20
+/* 802735A4 0026F204 39 40 00 00 */ li r10, 0
+/* 802735A8 0026F208 91 85 00 0C */ stw r12, 0xc(r5)
+/* 802735AC 0026F20C 91 85 00 10 */ stw r12, 0x10(r5)
+/* 802735B0 0026F210 91 65 00 14 */ stw r11, 0x14(r5)
+/* 802735B4 0026F214 90 05 00 18 */ stw r0, 0x18(r5)
+/* 802735B8 0026F218 91 85 00 1C */ stw r12, 0x1c(r5)
+/* 802735BC 0026F21C 48 03 03 FD */ bl func_802A39B8
+/* 802735C0 0026F220 2C 03 00 00 */ cmpwi r3, 0
+/* 802735C4 0026F224 41 82 00 08 */ beq lbl_802735CC
+/* 802735C8 0026F228 48 00 00 08 */ b lbl_802735D0
+lbl_802735CC:
+/* 802735CC 0026F22C 38 60 00 01 */ li r3, 1
+lbl_802735D0:
+/* 802735D0 0026F230 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 802735D4 0026F234 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 802735D8 0026F238 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 802735DC 0026F23C 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 802735E0 0026F240 7C 08 03 A6 */ mtlr r0
+/* 802735E4 0026F244 38 21 00 20 */ addi r1, r1, 0x20
+/* 802735E8 0026F248 4E 80 00 20 */ blr
+
+.global __OSSetIdleLEDMode
+__OSSetIdleLEDMode:
+/* 802735EC 0026F24C 80 0D A8 44 */ lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
+/* 802735F0 0026F250 2C 00 00 00 */ cmpwi r0, 0
+/* 802735F4 0026F254 40 82 00 0C */ bne lbl_80273600
+/* 802735F8 0026F258 38 60 FF FA */ li r3, -6
+/* 802735FC 0026F25C 4E 80 00 20 */ blr
+lbl_80273600:
+/* 80273600 0026F260 3C 80 80 51 */ lis r4, lbl_80515220@ha
+/* 80273604 0026F264 3C E0 80 51 */ lis r7, lbl_80515240@ha
+/* 80273608 0026F268 90 64 52 20 */ stw r3, lbl_80515220@l(r4)
+/* 8027360C 0026F26C 38 A4 52 20 */ addi r5, r4, 0x5220
+/* 80273610 0026F270 80 6D A8 48 */ lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
+/* 80273614 0026F274 38 E7 52 40 */ addi r7, r7, lbl_80515240@l
+/* 80273618 0026F278 38 80 60 02 */ li r4, 0x6002
+/* 8027361C 0026F27C 38 C0 00 20 */ li r6, 0x20
+/* 80273620 0026F280 39 00 00 20 */ li r8, 0x20
+/* 80273624 0026F284 48 03 04 CC */ b func_802A3AF0
+/* 80273628 0026F288 4E 80 00 20 */ blr
+
+.global __OSUnRegisterStateEvent
+__OSUnRegisterStateEvent:
+/* 8027362C 0026F28C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80273630 0026F290 7C 08 02 A6 */ mflr r0
+/* 80273634 0026F294 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80273638 0026F298 80 0D A8 50 */ lwz r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 8027363C 0026F29C 2C 00 00 00 */ cmpwi r0, 0
+/* 80273640 0026F2A0 40 82 00 0C */ bne lbl_8027364C
+/* 80273644 0026F2A4 38 60 00 00 */ li r3, 0
+/* 80273648 0026F2A8 48 00 00 4C */ b lbl_80273694
+lbl_8027364C:
+/* 8027364C 0026F2AC 80 0D A8 44 */ lwz r0, lbl_8063FB04-_SDA_BASE_(r13)
+/* 80273650 0026F2B0 2C 00 00 00 */ cmpwi r0, 0
+/* 80273654 0026F2B4 40 82 00 0C */ bne lbl_80273660
+/* 80273658 0026F2B8 38 60 FF FA */ li r3, -6
+/* 8027365C 0026F2BC 48 00 00 38 */ b lbl_80273694
+lbl_80273660:
+/* 80273660 0026F2C0 3C A0 80 51 */ lis r5, lbl_80515220@ha
+/* 80273664 0026F2C4 3C E0 80 51 */ lis r7, lbl_80515240@ha
+/* 80273668 0026F2C8 80 6D A8 48 */ lwz r3, lbl_8063FB08-_SDA_BASE_(r13)
+/* 8027366C 0026F2CC 38 A5 52 20 */ addi r5, r5, lbl_80515220@l
+/* 80273670 0026F2D0 38 E7 52 40 */ addi r7, r7, lbl_80515240@l
+/* 80273674 0026F2D4 38 80 30 02 */ li r4, 0x3002
+/* 80273678 0026F2D8 38 C0 00 20 */ li r6, 0x20
+/* 8027367C 0026F2DC 39 00 00 20 */ li r8, 0x20
+/* 80273680 0026F2E0 48 03 04 71 */ bl func_802A3AF0
+/* 80273684 0026F2E4 2C 03 00 00 */ cmpwi r3, 0
+/* 80273688 0026F2E8 40 82 00 0C */ bne lbl_80273694
+/* 8027368C 0026F2EC 38 00 00 00 */ li r0, 0
+/* 80273690 0026F2F0 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+lbl_80273694:
+/* 80273694 0026F2F4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80273698 0026F2F8 7C 08 03 A6 */ mtlr r0
+/* 8027369C 0026F2FC 38 21 00 10 */ addi r1, r1, 0x10
+/* 802736A0 0026F300 4E 80 00 20 */ blr
+
+.global __OSVIDimReplyHandler
+__OSVIDimReplyHandler:
+/* 802736A4 0026F304 38 00 00 00 */ li r0, 0
+/* 802736A8 0026F308 38 60 00 00 */ li r3, 0
+/* 802736AC 0026F30C 90 0D A8 54 */ stw r0, lbl_8063FB14-_SDA_BASE_(r13)
+/* 802736B0 0026F310 4E 80 00 20 */ blr
+
+.global __OSDefaultResetCallback
+__OSDefaultResetCallback:
+/* 802736B4 0026F314 4E 80 00 20 */ blr
+
+.global __OSDefaultPowerCallback
+__OSDefaultPowerCallback:
+/* 802736B8 0026F318 4E 80 00 20 */ blr
+
+.global __OSStateEventHandler
+__OSStateEventHandler:
+/* 802736BC 0026F31C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 802736C0 0026F320 7C 08 02 A6 */ mflr r0
+/* 802736C4 0026F324 2C 03 00 00 */ cmpwi r3, 0
+/* 802736C8 0026F328 90 01 00 14 */ stw r0, 0x14(r1)
+/* 802736CC 0026F32C 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 802736D0 0026F330 41 82 00 20 */ beq lbl_802736F0
+/* 802736D4 0026F334 3C 60 80 43 */ lis r3, lbl_80433C90@ha
+/* 802736D8 0026F338 3C A0 80 43 */ lis r5, lbl_80433D0C@ha
+/* 802736DC 0026F33C 38 63 3C 90 */ addi r3, r3, lbl_80433C90@l
+/* 802736E0 0026F340 38 80 02 EC */ li r4, 0x2ec
+/* 802736E4 0026F344 38 A5 3D 0C */ addi r5, r5, lbl_80433D0C@l
+/* 802736E8 0026F348 4C C6 31 82 */ crclr 6
+/* 802736EC 0026F34C 4B FF 7D B1 */ bl OSPanic
+lbl_802736F0:
+/* 802736F0 0026F350 3C 60 80 51 */ lis r3, lbl_80515200@ha
+/* 802736F4 0026F354 38 00 00 00 */ li r0, 0
+/* 802736F8 0026F358 80 63 52 00 */ lwz r3, lbl_80515200@l(r3)
+/* 802736FC 0026F35C 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 80273700 0026F360 3C 03 FF FE */ addis r0, r3, 0xfffe
+/* 80273704 0026F364 28 00 00 00 */ cmplwi r0, 0
+/* 80273708 0026F368 40 82 00 B4 */ bne lbl_802737BC
+/* 8027370C 0026F36C 3C 60 CC 00 */ lis r3, 0xCC003000@ha
+/* 80273710 0026F370 80 03 30 00 */ lwz r0, 0xCC003000@l(r3)
+/* 80273714 0026F374 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
+/* 80273718 0026F378 40 82 00 0C */ bne lbl_80273724
+/* 8027371C 0026F37C 38 00 00 01 */ li r0, 1
+/* 80273720 0026F380 48 00 00 08 */ b lbl_80273728
+lbl_80273724:
+/* 80273724 0026F384 38 00 00 00 */ li r0, 0
+lbl_80273728:
+/* 80273728 0026F388 2C 00 00 00 */ cmpwi r0, 0
+/* 8027372C 0026F38C 41 82 00 34 */ beq lbl_80273760
+/* 80273730 0026F390 4B FF B0 2D */ bl OSDisableInterrupts
+/* 80273734 0026F394 3C 80 80 27 */ lis r4, __OSDefaultResetCallback@ha
+/* 80273738 0026F398 81 8D A8 5C */ lwz r12, lbl_8063FB1C-_SDA_BASE_(r13)
+/* 8027373C 0026F39C 38 84 36 B4 */ addi r4, r4, __OSDefaultResetCallback@l
+/* 80273740 0026F3A0 38 00 00 01 */ li r0, 1
+/* 80273744 0026F3A4 7C 7F 1B 78 */ mr r31, r3
+/* 80273748 0026F3A8 90 0D A8 40 */ stw r0, lbl_8063FB00-_SDA_BASE_(r13)
+/* 8027374C 0026F3AC 90 8D A8 5C */ stw r4, lbl_8063FB1C-_SDA_BASE_(r13)
+/* 80273750 0026F3B0 7D 89 03 A6 */ mtctr r12
+/* 80273754 0026F3B4 4E 80 04 21 */ bctrl
+/* 80273758 0026F3B8 7F E3 FB 78 */ mr r3, r31
+/* 8027375C 0026F3BC 4B FF B0 29 */ bl OSRestoreInterrupts
+lbl_80273760:
+/* 80273760 0026F3C0 4B FF AF FD */ bl OSDisableInterrupts
+/* 80273764 0026F3C4 7C 7F 1B 78 */ mr r31, r3
+/* 80273768 0026F3C8 3C A0 80 51 */ lis r5, lbl_805151E0@ha
+/* 8027376C 0026F3CC 3C E0 80 51 */ lis r7, lbl_80515200@ha
+/* 80273770 0026F3D0 3D 20 80 27 */ lis r9, __OSStateEventHandler@ha
+/* 80273774 0026F3D4 80 6D A8 4C */ lwz r3, lbl_8063FB0C-_SDA_BASE_(r13)
+/* 80273778 0026F3D8 38 A5 51 E0 */ addi r5, r5, lbl_805151E0@l
+/* 8027377C 0026F3DC 38 E7 52 00 */ addi r7, r7, lbl_80515200@l
+/* 80273780 0026F3E0 39 29 36 BC */ addi r9, r9, __OSStateEventHandler@l
+/* 80273784 0026F3E4 38 80 10 00 */ li r4, 0x1000
+/* 80273788 0026F3E8 38 C0 00 20 */ li r6, 0x20
+/* 8027378C 0026F3EC 39 00 00 20 */ li r8, 0x20
+/* 80273790 0026F3F0 39 40 00 00 */ li r10, 0
+/* 80273794 0026F3F4 48 03 02 25 */ bl func_802A39B8
+/* 80273798 0026F3F8 2C 03 00 00 */ cmpwi r3, 0
+/* 8027379C 0026F3FC 40 82 00 10 */ bne lbl_802737AC
+/* 802737A0 0026F400 38 00 00 01 */ li r0, 1
+/* 802737A4 0026F404 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+/* 802737A8 0026F408 48 00 00 0C */ b lbl_802737B4
+lbl_802737AC:
+/* 802737AC 0026F40C 38 00 00 00 */ li r0, 0
+/* 802737B0 0026F410 90 0D A8 50 */ stw r0, lbl_8063FB10-_SDA_BASE_(r13)
+lbl_802737B4:
+/* 802737B4 0026F414 7F E3 FB 78 */ mr r3, r31
+/* 802737B8 0026F418 4B FF AF CD */ bl OSRestoreInterrupts
+lbl_802737BC:
+/* 802737BC 0026F41C 3C 60 80 51 */ lis r3, lbl_80515200@ha
+/* 802737C0 0026F420 80 03 52 00 */ lwz r0, lbl_80515200@l(r3)
+/* 802737C4 0026F424 28 00 08 00 */ cmplwi r0, 0x800
+/* 802737C8 0026F428 40 82 00 2C */ bne lbl_802737F4
+/* 802737CC 0026F42C 4B FF AF 91 */ bl OSDisableInterrupts
+/* 802737D0 0026F430 3C 80 80 27 */ lis r4, __OSDefaultPowerCallback@ha
+/* 802737D4 0026F434 81 8D A8 58 */ lwz r12, lbl_8063FB18-_SDA_BASE_(r13)
+/* 802737D8 0026F438 38 84 36 B8 */ addi r4, r4, __OSDefaultPowerCallback@l
+/* 802737DC 0026F43C 7C 7F 1B 78 */ mr r31, r3
+/* 802737E0 0026F440 90 8D A8 58 */ stw r4, lbl_8063FB18-_SDA_BASE_(r13)
+/* 802737E4 0026F444 7D 89 03 A6 */ mtctr r12
+/* 802737E8 0026F448 4E 80 04 21 */ bctrl
+/* 802737EC 0026F44C 7F E3 FB 78 */ mr r3, r31
+/* 802737F0 0026F450 4B FF AF 95 */ bl OSRestoreInterrupts
+lbl_802737F4:
+/* 802737F4 0026F454 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 802737F8 0026F458 38 60 00 00 */ li r3, 0
+/* 802737FC 0026F45C 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80273800 0026F460 7C 08 03 A6 */ mtlr r0
+/* 80273804 0026F464 38 21 00 10 */ addi r1, r1, 0x10
+/* 80273808 0026F468 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSTime.s b/asm/SDK/OS/OSTime.s
new file mode 100644
index 0000000..f8f40fa
--- /dev/null
+++ b/asm/SDK/OS/OSTime.s
@@ -0,0 +1,471 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSGetTime
+OSGetTime:
+/* 802727B8 0026E418 7C 6D 42 E6 */ mftbu r3
+/* 802727BC 0026E41C 7C 8C 42 E6 */ mftb r4, 0x10c
+/* 802727C0 0026E420 7C AD 42 E6 */ mftbu r5
+/* 802727C4 0026E424 7C 03 28 00 */ cmpw r3, r5
+/* 802727C8 0026E428 40 82 FF F0 */ bne OSGetTime
+/* 802727CC 0026E42C 4E 80 00 20 */ blr
+
+.global OSGetTick
+OSGetTick:
+/* 802727D0 0026E430 7C 6C 42 E6 */ mftb r3, 0x10c
+/* 802727D4 0026E434 4E 80 00 20 */ blr
+
+.global __OSGetSystemTime
+__OSGetSystemTime:
+/* 802727D8 0026E438 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 802727DC 0026E43C 7C 08 02 A6 */ mflr r0
+/* 802727E0 0026E440 90 01 00 24 */ stw r0, 0x24(r1)
+/* 802727E4 0026E444 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 802727E8 0026E448 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 802727EC 0026E44C 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 802727F0 0026E450 4B FF BF 6D */ bl OSDisableInterrupts
+/* 802727F4 0026E454 7C 7F 1B 78 */ mr r31, r3
+/* 802727F8 0026E458 4B FF FF C1 */ bl OSGetTime
+/* 802727FC 0026E45C 3C C0 80 00 */ lis r6, 0x800030DC@ha
+/* 80272800 0026E460 80 A6 30 DC */ lwz r5, 0x800030DC@l(r6)
+/* 80272804 0026E464 80 06 30 D8 */ lwz r0, 0x30d8(r6)
+/* 80272808 0026E468 7F A5 20 14 */ addc r29, r5, r4
+/* 8027280C 0026E46C 7F C0 19 14 */ adde r30, r0, r3
+/* 80272810 0026E470 7F E3 FB 78 */ mr r3, r31
+/* 80272814 0026E474 4B FF BF 71 */ bl OSRestoreInterrupts
+/* 80272818 0026E478 7F A4 EB 78 */ mr r4, r29
+/* 8027281C 0026E47C 7F C3 F3 78 */ mr r3, r30
+/* 80272820 0026E480 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 80272824 0026E484 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 80272828 0026E488 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 8027282C 0026E48C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80272830 0026E490 7C 08 03 A6 */ mtlr r0
+/* 80272834 0026E494 38 21 00 20 */ addi r1, r1, 0x20
+/* 80272838 0026E498 4E 80 00 20 */ blr
+
+.global __OSTimeToSystemTime
+__OSTimeToSystemTime:
+/* 8027283C 0026E49C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80272840 0026E4A0 7C 08 02 A6 */ mflr r0
+/* 80272844 0026E4A4 90 01 00 14 */ stw r0, 0x14(r1)
+/* 80272848 0026E4A8 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 8027284C 0026E4AC 7C 7F 1B 78 */ mr r31, r3
+/* 80272850 0026E4B0 93 C1 00 08 */ stw r30, 8(r1)
+/* 80272854 0026E4B4 7C 9E 23 78 */ mr r30, r4
+/* 80272858 0026E4B8 4B FF BF 05 */ bl OSDisableInterrupts
+/* 8027285C 0026E4BC 3C A0 80 00 */ lis r5, 0x800030DC@ha
+/* 80272860 0026E4C0 80 85 30 DC */ lwz r4, 0x800030DC@l(r5)
+/* 80272864 0026E4C4 80 05 30 D8 */ lwz r0, 0x30d8(r5)
+/* 80272868 0026E4C8 7F C4 F0 14 */ addc r30, r4, r30
+/* 8027286C 0026E4CC 7F E0 F9 14 */ adde r31, r0, r31
+/* 80272870 0026E4D0 4B FF BF 15 */ bl OSRestoreInterrupts
+/* 80272874 0026E4D4 7F E3 FB 78 */ mr r3, r31
+/* 80272878 0026E4D8 7F C4 F3 78 */ mr r4, r30
+/* 8027287C 0026E4DC 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80272880 0026E4E0 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80272884 0026E4E4 80 01 00 14 */ lwz r0, 0x14(r1)
+/* 80272888 0026E4E8 7C 08 03 A6 */ mtlr r0
+/* 8027288C 0026E4EC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80272890 0026E4F0 4E 80 00 20 */ blr
+
+.global GetDates
+GetDates:
+/* 80272894 0026E4F4 3C E0 92 49 */ lis r7, 0x92492493@ha
+/* 80272898 0026E4F8 3C C0 B3 8D */ lis r6, 0xB38CF9B1@ha
+/* 8027289C 0026E4FC 39 03 00 06 */ addi r8, r3, 6
+/* 802728A0 0026E500 3C A0 51 EC */ lis r5, 0x51EB851F@ha
+/* 802728A4 0026E504 38 06 F9 B1 */ addi r0, r6, 0xB38CF9B1@l
+/* 802728A8 0026E508 38 E7 24 93 */ addi r7, r7, 0x92492493@l
+/* 802728AC 0026E50C 7C C7 40 96 */ mulhw r6, r7, r8
+/* 802728B0 0026E510 39 45 85 1F */ addi r10, r5, 0x51EB851F@l
+/* 802728B4 0026E514 7C 00 18 96 */ mulhw r0, r0, r3
+/* 802728B8 0026E518 7C A6 42 14 */ add r5, r6, r8
+/* 802728BC 0026E51C 7C A5 16 70 */ srawi r5, r5, 2
+/* 802728C0 0026E520 54 A6 0F FE */ srwi r6, r5, 0x1f
+/* 802728C4 0026E524 7C A5 32 14 */ add r5, r5, r6
+/* 802728C8 0026E528 7C 00 1A 14 */ add r0, r0, r3
+/* 802728CC 0026E52C 1C C5 00 07 */ mulli r6, r5, 7
+/* 802728D0 0026E530 7C 00 46 70 */ srawi r0, r0, 8
+/* 802728D4 0026E534 54 05 0F FE */ srwi r5, r0, 0x1f
+/* 802728D8 0026E538 7C A0 2A 14 */ add r5, r0, r5
+/* 802728DC 0026E53C 7C 06 40 50 */ subf r0, r6, r8
+/* 802728E0 0026E540 1D 65 01 6D */ mulli r11, r5, 0x16d
+/* 802728E4 0026E544 90 04 00 18 */ stw r0, 0x18(r4)
+/* 802728E8 0026E548 48 00 00 0C */ b lbl_802728F4
+lbl_802728EC:
+/* 802728EC 0026E54C 39 6B FE 93 */ addi r11, r11, -365
+/* 802728F0 0026E550 38 A5 FF FF */ addi r5, r5, -1
+lbl_802728F4:
+/* 802728F4 0026E554 2C 05 00 01 */ cmpwi r5, 1
+/* 802728F8 0026E558 41 80 00 3C */ blt lbl_80272934
+/* 802728FC 0026E55C 38 C5 FF FF */ addi r6, r5, -1
+/* 80272900 0026E560 38 05 00 03 */ addi r0, r5, 3
+/* 80272904 0026E564 7C CA 30 96 */ mulhw r6, r10, r6
+/* 80272908 0026E568 7C C8 3E 70 */ srawi r8, r6, 7
+/* 8027290C 0026E56C 7C C6 2E 70 */ srawi r6, r6, 5
+/* 80272910 0026E570 54 C7 0F FE */ srwi r7, r6, 0x1f
+/* 80272914 0026E574 7C 00 16 70 */ srawi r0, r0, 2
+/* 80272918 0026E578 55 09 0F FE */ srwi r9, r8, 0x1f
+/* 8027291C 0026E57C 7C C6 3A 14 */ add r6, r6, r7
+/* 80272920 0026E580 7C 00 01 94 */ addze r0, r0
+/* 80272924 0026E584 7C E8 4A 14 */ add r7, r8, r9
+/* 80272928 0026E588 7C 06 00 50 */ subf r0, r6, r0
+/* 8027292C 0026E58C 7C 07 02 14 */ add r0, r7, r0
+/* 80272930 0026E590 48 00 00 08 */ b lbl_80272938
+lbl_80272934:
+/* 80272934 0026E594 38 00 00 00 */ li r0, 0
+lbl_80272938:
+/* 80272938 0026E598 7D 0B 02 14 */ add r8, r11, r0
+/* 8027293C 0026E59C 7C 03 40 00 */ cmpw r3, r8
+/* 80272940 0026E5A0 41 80 FF AC */ blt lbl_802728EC
+/* 80272944 0026E5A4 54 A0 F0 02 */ slwi r0, r5, 0x1e
+/* 80272948 0026E5A8 54 A7 0F FE */ srwi r7, r5, 0x1f
+/* 8027294C 0026E5AC 7C C7 00 50 */ subf r6, r7, r0
+/* 80272950 0026E5B0 90 A4 00 14 */ stw r5, 0x14(r4)
+/* 80272954 0026E5B4 7C 08 18 50 */ subf r0, r8, r3
+/* 80272958 0026E5B8 54 C3 10 3E */ rotlwi r3, r6, 2
+/* 8027295C 0026E5BC 90 04 00 1C */ stw r0, 0x1c(r4)
+/* 80272960 0026E5C0 7C 63 3A 15 */ add. r3, r3, r7
+/* 80272964 0026E5C4 38 E0 00 00 */ li r7, 0
+/* 80272968 0026E5C8 40 82 00 28 */ bne lbl_80272990
+/* 8027296C 0026E5CC 3C 60 51 EC */ lis r3, 0x51EB851F@ha
+/* 80272970 0026E5D0 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
+/* 80272974 0026E5D4 7C 63 28 96 */ mulhw r3, r3, r5
+/* 80272978 0026E5D8 7C 63 2E 70 */ srawi r3, r3, 5
+/* 8027297C 0026E5DC 54 66 0F FE */ srwi r6, r3, 0x1f
+/* 80272980 0026E5E0 7C 63 32 14 */ add r3, r3, r6
+/* 80272984 0026E5E4 1C 63 00 64 */ mulli r3, r3, 0x64
+/* 80272988 0026E5E8 7C 63 28 51 */ subf. r3, r3, r5
+/* 8027298C 0026E5EC 40 82 00 28 */ bne lbl_802729B4
+lbl_80272990:
+/* 80272990 0026E5F0 3C 60 51 EC */ lis r3, 0x51EB851F@ha
+/* 80272994 0026E5F4 38 63 85 1F */ addi r3, r3, 0x51EB851F@l
+/* 80272998 0026E5F8 7C 63 28 96 */ mulhw r3, r3, r5
+/* 8027299C 0026E5FC 7C 63 3E 70 */ srawi r3, r3, 7
+/* 802729A0 0026E600 54 66 0F FE */ srwi r6, r3, 0x1f
+/* 802729A4 0026E604 7C 63 32 14 */ add r3, r3, r6
+/* 802729A8 0026E608 1C 63 01 90 */ mulli r3, r3, 0x190
+/* 802729AC 0026E60C 7C 63 28 51 */ subf. r3, r3, r5
+/* 802729B0 0026E610 40 82 00 08 */ bne lbl_802729B8
+lbl_802729B4:
+/* 802729B4 0026E614 38 E0 00 01 */ li r7, 1
+lbl_802729B8:
+/* 802729B8 0026E618 2C 07 00 00 */ cmpwi r7, 0
+/* 802729BC 0026E61C 3C C0 80 42 */ lis r6, lbl_80427DC8@ha
+/* 802729C0 0026E620 38 C6 7D C8 */ addi r6, r6, lbl_80427DC8@l
+/* 802729C4 0026E624 41 82 00 0C */ beq lbl_802729D0
+/* 802729C8 0026E628 3C C0 80 42 */ lis r6, lbl_80427DF8@ha
+/* 802729CC 0026E62C 38 C6 7D F8 */ addi r6, r6, lbl_80427DF8@l
+lbl_802729D0:
+/* 802729D0 0026E630 38 E0 00 0C */ li r7, 0xc
+/* 802729D4 0026E634 38 60 00 30 */ li r3, 0x30
+lbl_802729D8:
+/* 802729D8 0026E638 38 63 FF FC */ addi r3, r3, -4
+/* 802729DC 0026E63C 38 E7 FF FF */ addi r7, r7, -1
+/* 802729E0 0026E640 7C A6 18 2E */ lwzx r5, r6, r3
+/* 802729E4 0026E644 7C 00 28 00 */ cmpw r0, r5
+/* 802729E8 0026E648 41 80 FF F0 */ blt lbl_802729D8
+/* 802729EC 0026E64C 90 E4 00 10 */ stw r7, 0x10(r4)
+/* 802729F0 0026E650 7C 66 18 2E */ lwzx r3, r6, r3
+/* 802729F4 0026E654 7C 63 00 50 */ subf r3, r3, r0
+/* 802729F8 0026E658 38 03 00 01 */ addi r0, r3, 1
+/* 802729FC 0026E65C 90 04 00 0C */ stw r0, 0xc(r4)
+/* 80272A00 0026E660 4E 80 00 20 */ blr
+
+.global OSTicksToCalendarTime
+OSTicksToCalendarTime:
+/* 80272A04 0026E664 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80272A08 0026E668 7C 08 02 A6 */ mflr r0
+/* 80272A0C 0026E66C 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80272A10 0026E670 39 61 00 20 */ addi r11, r1, 0x20
+/* 80272A14 0026E674 4B F5 47 11 */ bl _savegpr_26
+/* 80272A18 0026E678 3C C0 80 00 */ lis r6, 0x800000F8@ha
+/* 80272A1C 0026E67C 7C BD 2B 78 */ mr r29, r5
+/* 80272A20 0026E680 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6)
+/* 80272A24 0026E684 7C 7C 1B 78 */ mr r28, r3
+/* 80272A28 0026E688 7C 9B 23 78 */ mr r27, r4
+/* 80272A2C 0026E68C 38 A0 00 00 */ li r5, 0
+/* 80272A30 0026E690 54 1A F0 BE */ srwi r26, r0, 2
+/* 80272A34 0026E694 7F 46 D3 78 */ mr r6, r26
+/* 80272A38 0026E698 4B F5 4A 5D */ bl __mod2i
+/* 80272A3C 0026E69C 38 E0 00 00 */ li r7, 0
+/* 80272A40 0026E6A0 6C 60 80 00 */ xoris r0, r3, 0x8000
+/* 80272A44 0026E6A4 6C E6 80 00 */ xoris r6, r7, 0x8000
+/* 80272A48 0026E6A8 7C 9E 23 78 */ mr r30, r4
+/* 80272A4C 0026E6AC 7C A7 20 10 */ subfc r5, r7, r4
+/* 80272A50 0026E6B0 7C 7F 1B 78 */ mr r31, r3
+/* 80272A54 0026E6B4 7C C6 01 10 */ subfe r6, r6, r0
+/* 80272A58 0026E6B8 7C C0 01 10 */ subfe r6, r0, r0
+/* 80272A5C 0026E6BC 7C C6 00 D1 */ neg. r6, r6
+/* 80272A60 0026E6C0 41 82 00 0C */ beq lbl_80272A6C
+/* 80272A64 0026E6C4 7F C4 D0 14 */ addc r30, r4, r26
+/* 80272A68 0026E6C8 7F E3 39 14 */ adde r31, r3, r7
+lbl_80272A6C:
+/* 80272A6C 0026E6CC 3C 80 43 1C */ lis r4, 0x431BDE83@ha
+/* 80272A70 0026E6D0 57 E3 18 38 */ slwi r3, r31, 3
+/* 80272A74 0026E6D4 38 04 DE 83 */ addi r0, r4, 0x431BDE83@l
+/* 80272A78 0026E6D8 38 A0 00 00 */ li r5, 0
+/* 80272A7C 0026E6DC 7C 00 D0 16 */ mulhwu r0, r0, r26
+/* 80272A80 0026E6E0 57 C4 18 38 */ slwi r4, r30, 3
+/* 80272A84 0026E6E4 53 C3 1F 7E */ rlwimi r3, r30, 3, 0x1d, 0x1f
+/* 80272A88 0026E6E8 54 06 8B FE */ srwi r6, r0, 0xf
+/* 80272A8C 0026E6EC 4B F5 47 ED */ bl __div2i
+/* 80272A90 0026E6F0 38 C0 03 E8 */ li r6, 0x3e8
+/* 80272A94 0026E6F4 38 A0 00 00 */ li r5, 0
+/* 80272A98 0026E6F8 4B F5 49 FD */ bl __mod2i
+/* 80272A9C 0026E6FC 90 9D 00 24 */ stw r4, 0x24(r29)
+/* 80272AA0 0026E700 3F 40 80 00 */ lis r26, 0x800000F8@ha
+/* 80272AA4 0026E704 3C 80 10 62 */ lis r4, 0x10624DD3@ha
+/* 80272AA8 0026E708 7F E3 FB 78 */ mr r3, r31
+/* 80272AAC 0026E70C 80 1A 00 F8 */ lwz r0, 0x800000F8@l(r26)
+/* 80272AB0 0026E710 38 C4 4D D3 */ addi r6, r4, 0x10624DD3@l
+/* 80272AB4 0026E714 7F C4 F3 78 */ mr r4, r30
+/* 80272AB8 0026E718 38 A0 00 00 */ li r5, 0
+/* 80272ABC 0026E71C 54 00 F0 BE */ srwi r0, r0, 2
+/* 80272AC0 0026E720 7C 06 00 16 */ mulhwu r0, r6, r0
+/* 80272AC4 0026E724 54 06 D1 BE */ srwi r6, r0, 6
+/* 80272AC8 0026E728 4B F5 47 B1 */ bl __div2i
+/* 80272ACC 0026E72C 38 C0 03 E8 */ li r6, 0x3e8
+/* 80272AD0 0026E730 38 A0 00 00 */ li r5, 0
+/* 80272AD4 0026E734 4B F5 49 C1 */ bl __mod2i
+/* 80272AD8 0026E738 90 9D 00 20 */ stw r4, 0x20(r29)
+/* 80272ADC 0026E73C 7C 9E D8 10 */ subfc r4, r30, r27
+/* 80272AE0 0026E740 7C 7F E1 10 */ subfe r3, r31, r28
+/* 80272AE4 0026E744 38 A0 00 00 */ li r5, 0
+/* 80272AE8 0026E748 80 1A 00 F8 */ lwz r0, 0xf8(r26)
+/* 80272AEC 0026E74C 54 06 F0 BE */ srwi r6, r0, 2
+/* 80272AF0 0026E750 4B F5 47 89 */ bl __div2i
+/* 80272AF4 0026E754 3F 60 00 01 */ lis r27, 0x00015180@ha
+/* 80272AF8 0026E758 7C 9C 23 78 */ mr r28, r4
+/* 80272AFC 0026E75C 7C 7A 1B 78 */ mr r26, r3
+/* 80272B00 0026E760 38 A0 00 00 */ li r5, 0
+/* 80272B04 0026E764 38 DB 51 80 */ addi r6, r27, 0x00015180@l
+/* 80272B08 0026E768 4B F5 47 71 */ bl __div2i
+/* 80272B0C 0026E76C 3C 60 00 0B */ lis r3, 0x000B2575@ha
+/* 80272B10 0026E770 38 DB 51 80 */ addi r6, r27, 0x5180
+/* 80272B14 0026E774 38 03 25 75 */ addi r0, r3, 0x000B2575@l
+/* 80272B18 0026E778 38 A0 00 00 */ li r5, 0
+/* 80272B1C 0026E77C 7F 43 D3 78 */ mr r3, r26
+/* 80272B20 0026E780 7F 44 00 14 */ addc r26, r4, r0
+/* 80272B24 0026E784 7F 84 E3 78 */ mr r4, r28
+/* 80272B28 0026E788 4B F5 49 6D */ bl __mod2i
+/* 80272B2C 0026E78C 2C 04 00 00 */ cmpwi r4, 0
+/* 80272B30 0026E790 7C 9F 23 78 */ mr r31, r4
+/* 80272B34 0026E794 40 80 00 10 */ bge lbl_80272B44
+/* 80272B38 0026E798 3F E4 00 01 */ addis r31, r4, 1
+/* 80272B3C 0026E79C 3B 5A FF FF */ addi r26, r26, -1
+/* 80272B40 0026E7A0 3B FF 51 80 */ addi r31, r31, 0x5180
+lbl_80272B44:
+/* 80272B44 0026E7A4 7F 43 D3 78 */ mr r3, r26
+/* 80272B48 0026E7A8 7F A4 EB 78 */ mr r4, r29
+/* 80272B4C 0026E7AC 4B FF FD 49 */ bl GetDates
+/* 80272B50 0026E7B0 3C 60 88 89 */ lis r3, 0x88888889@ha
+/* 80272B54 0026E7B4 39 61 00 20 */ addi r11, r1, 0x20
+/* 80272B58 0026E7B8 38 A3 88 89 */ addi r5, r3, 0x88888889@l
+/* 80272B5C 0026E7BC 7C 05 F8 96 */ mulhw r0, r5, r31
+/* 80272B60 0026E7C0 7C 60 FA 14 */ add r3, r0, r31
+/* 80272B64 0026E7C4 7C 60 2E 70 */ srawi r0, r3, 5
+/* 80272B68 0026E7C8 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 80272B6C 0026E7CC 7D 00 22 14 */ add r8, r0, r4
+/* 80272B70 0026E7D0 7C 05 40 96 */ mulhw r0, r5, r8
+/* 80272B74 0026E7D4 7C 00 42 14 */ add r0, r0, r8
+/* 80272B78 0026E7D8 7C 06 2E 70 */ srawi r6, r0, 5
+/* 80272B7C 0026E7DC 7C 04 2E 70 */ srawi r4, r0, 5
+/* 80272B80 0026E7E0 7C 60 2E 70 */ srawi r0, r3, 5
+/* 80272B84 0026E7E4 54 C7 0F FE */ srwi r7, r6, 0x1f
+/* 80272B88 0026E7E8 54 85 0F FE */ srwi r5, r4, 0x1f
+/* 80272B8C 0026E7EC 54 03 0F FE */ srwi r3, r0, 0x1f
+/* 80272B90 0026E7F0 7C C6 3A 14 */ add r6, r6, r7
+/* 80272B94 0026E7F4 7C 00 1A 14 */ add r0, r0, r3
+/* 80272B98 0026E7F8 7C 84 2A 14 */ add r4, r4, r5
+/* 80272B9C 0026E7FC 1C 64 00 3C */ mulli r3, r4, 0x3c
+/* 80272BA0 0026E800 90 DD 00 08 */ stw r6, 8(r29)
+/* 80272BA4 0026E804 1C 00 00 3C */ mulli r0, r0, 0x3c
+/* 80272BA8 0026E808 7C 63 40 50 */ subf r3, r3, r8
+/* 80272BAC 0026E80C 90 7D 00 04 */ stw r3, 4(r29)
+/* 80272BB0 0026E810 7C 00 F8 50 */ subf r0, r0, r31
+/* 80272BB4 0026E814 90 1D 00 00 */ stw r0, 0(r29)
+/* 80272BB8 0026E818 4B F5 45 B9 */ bl _restgpr_26
+/* 80272BBC 0026E81C 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80272BC0 0026E820 7C 08 03 A6 */ mtlr r0
+/* 80272BC4 0026E824 38 21 00 20 */ addi r1, r1, 0x20
+/* 80272BC8 0026E828 4E 80 00 20 */ blr
+
+.global OSCalendarTimeToTicks
+OSCalendarTimeToTicks:
+/* 80272BCC 0026E82C 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 80272BD0 0026E830 7C 08 02 A6 */ mflr r0
+/* 80272BD4 0026E834 90 01 00 44 */ stw r0, 0x44(r1)
+/* 80272BD8 0026E838 39 61 00 40 */ addi r11, r1, 0x40
+/* 80272BDC 0026E83C 4B F5 45 31 */ bl _savegpr_20
+/* 80272BE0 0026E840 3C 80 2A AB */ lis r4, 0x2AAAAAAB@ha
+/* 80272BE4 0026E844 80 A3 00 10 */ lwz r5, 0x10(r3)
+/* 80272BE8 0026E848 38 04 AA AB */ addi r0, r4, 0x2AAAAAAB@l
+/* 80272BEC 0026E84C 7C 00 28 96 */ mulhw r0, r0, r5
+/* 80272BF0 0026E850 7C 00 0E 70 */ srawi r0, r0, 1
+/* 80272BF4 0026E854 54 04 0F FE */ srwi r4, r0, 0x1f
+/* 80272BF8 0026E858 7C C0 22 14 */ add r6, r0, r4
+/* 80272BFC 0026E85C 1C 06 00 0C */ mulli r0, r6, 0xc
+/* 80272C00 0026E860 7C 80 28 51 */ subf. r4, r0, r5
+/* 80272C04 0026E864 40 80 00 0C */ bge lbl_80272C10
+/* 80272C08 0026E868 38 84 00 0C */ addi r4, r4, 0xc
+/* 80272C0C 0026E86C 38 C6 FF FF */ addi r6, r6, -1
+lbl_80272C10:
+/* 80272C10 0026E870 80 03 00 14 */ lwz r0, 0x14(r3)
+/* 80272C14 0026E874 7D 20 32 14 */ add r9, r0, r6
+/* 80272C18 0026E878 2C 09 00 01 */ cmpwi r9, 1
+/* 80272C1C 0026E87C 40 80 00 0C */ bge lbl_80272C28
+/* 80272C20 0026E880 38 E0 00 00 */ li r7, 0
+/* 80272C24 0026E884 48 00 00 40 */ b lbl_80272C64
+lbl_80272C28:
+/* 80272C28 0026E888 3C A0 51 EC */ lis r5, 0x51EB851F@ha
+/* 80272C2C 0026E88C 38 C9 FF FF */ addi r6, r9, -1
+/* 80272C30 0026E890 38 A5 85 1F */ addi r5, r5, 0x51EB851F@l
+/* 80272C34 0026E894 38 09 00 03 */ addi r0, r9, 3
+/* 80272C38 0026E898 7C A5 30 96 */ mulhw r5, r5, r6
+/* 80272C3C 0026E89C 7C A7 3E 70 */ srawi r7, r5, 7
+/* 80272C40 0026E8A0 7C A5 2E 70 */ srawi r5, r5, 5
+/* 80272C44 0026E8A4 54 A6 0F FE */ srwi r6, r5, 0x1f
+/* 80272C48 0026E8A8 7C 00 16 70 */ srawi r0, r0, 2
+/* 80272C4C 0026E8AC 54 E8 0F FE */ srwi r8, r7, 0x1f
+/* 80272C50 0026E8B0 7C A5 32 14 */ add r5, r5, r6
+/* 80272C54 0026E8B4 7C 00 01 94 */ addze r0, r0
+/* 80272C58 0026E8B8 7C C7 42 14 */ add r6, r7, r8
+/* 80272C5C 0026E8BC 7C 05 00 50 */ subf r0, r5, r0
+/* 80272C60 0026E8C0 7C E6 02 14 */ add r7, r6, r0
+lbl_80272C64:
+/* 80272C64 0026E8C4 55 20 F0 02 */ slwi r0, r9, 0x1e
+/* 80272C68 0026E8C8 55 25 0F FE */ srwi r5, r9, 0x1f
+/* 80272C6C 0026E8CC 7C 05 00 50 */ subf r0, r5, r0
+/* 80272C70 0026E8D0 38 C0 00 00 */ li r6, 0
+/* 80272C74 0026E8D4 54 00 10 3E */ rotlwi r0, r0, 2
+/* 80272C78 0026E8D8 7C 00 2A 15 */ add. r0, r0, r5
+/* 80272C7C 0026E8DC 40 82 00 28 */ bne lbl_80272CA4
+/* 80272C80 0026E8E0 3C A0 51 EC */ lis r5, 0x51EB851F@ha
+/* 80272C84 0026E8E4 38 05 85 1F */ addi r0, r5, 0x51EB851F@l
+/* 80272C88 0026E8E8 7C 00 48 96 */ mulhw r0, r0, r9
+/* 80272C8C 0026E8EC 7C 00 2E 70 */ srawi r0, r0, 5
+/* 80272C90 0026E8F0 54 05 0F FE */ srwi r5, r0, 0x1f
+/* 80272C94 0026E8F4 7C 00 2A 14 */ add r0, r0, r5
+/* 80272C98 0026E8F8 1C 00 00 64 */ mulli r0, r0, 0x64
+/* 80272C9C 0026E8FC 7C 00 48 51 */ subf. r0, r0, r9
+/* 80272CA0 0026E900 40 82 00 28 */ bne lbl_80272CC8
+lbl_80272CA4:
+/* 80272CA4 0026E904 3C A0 51 EC */ lis r5, 0x51EB851F@ha
+/* 80272CA8 0026E908 38 05 85 1F */ addi r0, r5, 0x51EB851F@l
+/* 80272CAC 0026E90C 7C 00 48 96 */ mulhw r0, r0, r9
+/* 80272CB0 0026E910 7C 00 3E 70 */ srawi r0, r0, 7
+/* 80272CB4 0026E914 54 05 0F FE */ srwi r5, r0, 0x1f
+/* 80272CB8 0026E918 7C 00 2A 14 */ add r0, r0, r5
+/* 80272CBC 0026E91C 1C 00 01 90 */ mulli r0, r0, 0x190
+/* 80272CC0 0026E920 7C 00 48 51 */ subf. r0, r0, r9
+/* 80272CC4 0026E924 40 82 00 08 */ bne lbl_80272CCC
+lbl_80272CC8:
+/* 80272CC8 0026E928 38 C0 00 01 */ li r6, 1
+lbl_80272CCC:
+/* 80272CCC 0026E92C 2C 06 00 00 */ cmpwi r6, 0
+/* 80272CD0 0026E930 3E C0 80 42 */ lis r22, lbl_80427DC8@ha
+/* 80272CD4 0026E934 3A D6 7D C8 */ addi r22, r22, lbl_80427DC8@l
+/* 80272CD8 0026E938 41 82 00 0C */ beq lbl_80272CE4
+/* 80272CDC 0026E93C 3E C0 80 42 */ lis r22, lbl_80427DF8@ha
+/* 80272CE0 0026E940 3A D6 7D F8 */ addi r22, r22, lbl_80427DF8@l
+lbl_80272CE4:
+/* 80272CE4 0026E944 3C A0 80 00 */ lis r5, 0x800000F8@ha
+/* 80272CE8 0026E948 80 C3 00 24 */ lwz r6, 0x24(r3)
+/* 80272CEC 0026E94C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5)
+/* 80272CF0 0026E950 54 8C 10 3A */ slwi r12, r4, 2
+/* 80272CF4 0026E954 3D 40 43 1C */ lis r10, 0x431BDE83@ha
+/* 80272CF8 0026E958 38 A0 00 00 */ li r5, 0
+/* 80272CFC 0026E95C 54 08 F0 BE */ srwi r8, r0, 2
+/* 80272D00 0026E960 7C D4 FE 70 */ srawi r20, r6, 0x1f
+/* 80272D04 0026E964 38 0A DE 83 */ addi r0, r10, 0x431BDE83@l
+/* 80272D08 0026E968 82 E3 00 0C */ lwz r23, 0xc(r3)
+/* 80272D0C 0026E96C 7C 00 40 16 */ mulhwu r0, r0, r8
+/* 80272D10 0026E970 7E D6 60 2E */ lwzx r22, r22, r12
+/* 80272D14 0026E974 7D 97 3A 14 */ add r12, r23, r7
+/* 80272D18 0026E978 83 63 00 04 */ lwz r27, 4(r3)
+/* 80272D1C 0026E97C 3D 40 00 01 */ lis r10, 0x00015180@ha
+/* 80272D20 0026E980 83 A3 00 08 */ lwz r29, 8(r3)
+/* 80272D24 0026E984 54 04 8B FE */ srwi r4, r0, 0xf
+/* 80272D28 0026E988 3C E0 10 62 */ lis r7, 0x10624DD3@ha
+/* 80272D2C 0026E98C 7E A4 30 16 */ mulhwu r21, r4, r6
+/* 80272D30 0026E990 3D 60 01 E1 */ lis r11, 0x01E13380@ha
+/* 80272D34 0026E994 38 E7 4D D3 */ addi r7, r7, 0x10624DD3@l
+/* 80272D38 0026E998 83 43 00 00 */ lwz r26, 0(r3)
+/* 80272D3C 0026E99C 38 0B 33 80 */ addi r0, r11, 0x01E13380@l
+/* 80272D40 0026E9A0 81 63 00 20 */ lwz r11, 0x20(r3)
+/* 80272D44 0026E9A4 7F 05 31 D6 */ mullw r24, r5, r6
+/* 80272D48 0026E9A8 3A EA 51 80 */ addi r23, r10, 0x00015180@l
+/* 80272D4C 0026E9AC 7C 76 62 14 */ add r3, r22, r12
+/* 80272D50 0026E9B0 3B 80 00 3C */ li r28, 0x3c
+/* 80272D54 0026E9B4 3A C3 FF FF */ addi r22, r3, -1
+/* 80272D58 0026E9B8 3C 60 4E 1E */ lis r3, 0x4E1E4080@ha
+/* 80272D5C 0026E9BC 7F 24 31 D6 */ mullw r25, r4, r6
+/* 80272D60 0026E9C0 7D 55 C2 14 */ add r10, r21, r24
+/* 80272D64 0026E9C4 3B E3 40 80 */ addi r31, r3, 0x4E1E4080@l
+/* 80272D68 0026E9C8 3B C0 0E 10 */ li r30, 0xe10
+/* 80272D6C 0026E9CC 39 80 FF F1 */ li r12, -15
+/* 80272D70 0026E9D0 7C C4 A1 D6 */ mullw r6, r4, r20
+/* 80272D74 0026E9D4 57 24 E8 3E */ rotlwi r4, r25, 0x1d
+/* 80272D78 0026E9D8 7D 4A 32 14 */ add r10, r10, r6
+/* 80272D7C 0026E9DC 7C C7 40 16 */ mulhwu r6, r7, r8
+/* 80272D80 0026E9E0 7D 43 53 78 */ mr r3, r10
+/* 80272D84 0026E9E4 51 44 E8 04 */ rlwimi r4, r10, 0x1d, 0, 2
+/* 80272D88 0026E9E8 53 23 07 7E */ rlwimi r3, r25, 0, 0x1d, 0x1f
+/* 80272D8C 0026E9EC 7C 63 1E 70 */ srawi r3, r3, 3
+/* 80272D90 0026E9F0 54 CA D1 BE */ srwi r10, r6, 6
+/* 80272D94 0026E9F4 7C 84 01 94 */ addze r4, r4
+/* 80272D98 0026E9F8 7C 63 01 94 */ addze r3, r3
+/* 80272D9C 0026E9FC 7D 38 FE 70 */ srawi r24, r9, 0x1f
+/* 80272DA0 0026EA00 7C E0 48 16 */ mulhwu r7, r0, r9
+/* 80272DA4 0026EA04 7E D9 FE 70 */ srawi r25, r22, 0x1f
+/* 80272DA8 0026EA08 7E A5 49 D6 */ mullw r21, r5, r9
+/* 80272DAC 0026EA0C 7E 87 AA 14 */ add r20, r7, r21
+/* 80272DB0 0026EA10 7E A0 C1 D6 */ mullw r21, r0, r24
+/* 80272DB4 0026EA14 7C D7 B0 16 */ mulhwu r6, r23, r22
+/* 80272DB8 0026EA18 7E 94 AA 14 */ add r20, r20, r21
+/* 80272DBC 0026EA1C 7C E5 B1 D6 */ mullw r7, r5, r22
+/* 80272DC0 0026EA20 7F 06 3A 14 */ add r24, r6, r7
+/* 80272DC4 0026EA24 7C E0 49 D6 */ mullw r7, r0, r9
+/* 80272DC8 0026EA28 7C D7 C9 D6 */ mullw r6, r23, r25
+/* 80272DCC 0026EA2C 7C 17 B1 D6 */ mullw r0, r23, r22
+/* 80272DD0 0026EA30 7F 18 32 14 */ add r24, r24, r6
+/* 80272DD4 0026EA34 7F 27 00 14 */ addc r25, r7, r0
+/* 80272DD8 0026EA38 7C FB E0 96 */ mulhw r7, r27, r28
+/* 80272DDC 0026EA3C 7F 94 C1 14 */ adde r28, r20, r24
+/* 80272DE0 0026EA40 7C 1D F0 96 */ mulhw r0, r29, r30
+/* 80272DE4 0026EA44 1D 3B 00 3C */ mulli r9, r27, 0x3c
+/* 80272DE8 0026EA48 1C DD 0E 10 */ mulli r6, r29, 0xe10
+/* 80272DEC 0026EA4C 7C C9 30 14 */ addc r6, r9, r6
+/* 80272DF0 0026EA50 7C E7 01 14 */ adde r7, r7, r0
+/* 80272DF4 0026EA54 7F 40 FE 70 */ srawi r0, r26, 0x1f
+/* 80272DF8 0026EA58 7C C6 D0 14 */ addc r6, r6, r26
+/* 80272DFC 0026EA5C 7C 07 01 14 */ adde r0, r7, r0
+/* 80272E00 0026EA60 7C C6 F8 14 */ addc r6, r6, r31
+/* 80272E04 0026EA64 7C 00 61 14 */ adde r0, r0, r12
+/* 80272E08 0026EA68 7D 99 30 14 */ addc r12, r25, r6
+/* 80272E0C 0026EA6C 7C DC 01 14 */ adde r6, r28, r0
+/* 80272E10 0026EA70 7D 26 41 D6 */ mullw r9, r6, r8
+/* 80272E14 0026EA74 7D 60 FE 70 */ srawi r0, r11, 0x1f
+/* 80272E18 0026EA78 7C EC 40 16 */ mulhwu r7, r12, r8
+/* 80272E1C 0026EA7C 7C CA 58 16 */ mulhwu r6, r10, r11
+/* 80272E20 0026EA80 7D 27 4A 14 */ add r9, r7, r9
+/* 80272E24 0026EA84 7C E5 59 D6 */ mullw r7, r5, r11
+/* 80272E28 0026EA88 7C AC 29 D6 */ mullw r5, r12, r5
+/* 80272E2C 0026EA8C 7C C6 3A 14 */ add r6, r6, r7
+/* 80272E30 0026EA90 7C 0A 01 D6 */ mullw r0, r10, r0
+/* 80272E34 0026EA94 7C E9 2A 14 */ add r7, r9, r5
+/* 80272E38 0026EA98 7C C6 02 14 */ add r6, r6, r0
+/* 80272E3C 0026EA9C 7C 0A 59 D6 */ mullw r0, r10, r11
+/* 80272E40 0026EAA0 39 61 00 40 */ addi r11, r1, 0x40
+/* 80272E44 0026EAA4 7C AC 41 D6 */ mullw r5, r12, r8
+/* 80272E48 0026EAA8 7C A5 00 14 */ addc r5, r5, r0
+/* 80272E4C 0026EAAC 7C 07 31 14 */ adde r0, r7, r6
+/* 80272E50 0026EAB0 7C 84 28 14 */ addc r4, r4, r5
+/* 80272E54 0026EAB4 7C 63 01 14 */ adde r3, r3, r0
+/* 80272E58 0026EAB8 4B F5 43 01 */ bl _restgpr_20
+/* 80272E5C 0026EABC 80 01 00 44 */ lwz r0, 0x44(r1)
+/* 80272E60 0026EAC0 7C 08 03 A6 */ mtlr r0
+/* 80272E64 0026EAC4 38 21 00 40 */ addi r1, r1, 0x40
+/* 80272E68 0026EAC8 4E 80 00 20 */ blr
diff --git a/asm/SDK/OS/OSUtf.s b/asm/SDK/OS/OSUtf.s
new file mode 100644
index 0000000..270d1e0
--- /dev/null
+++ b/asm/SDK/OS/OSUtf.s
@@ -0,0 +1,184 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global OSUTF8to32
+OSUTF8to32:
+/* 80272E6C 0026EACC 88 C3 00 00 */ lbz r6, 0(r3)
+/* 80272E70 0026EAD0 2C 06 00 00 */ cmpwi r6, 0
+/* 80272E74 0026EAD4 41 82 00 08 */ beq lbl_80272E7C
+/* 80272E78 0026EAD8 38 63 00 01 */ addi r3, r3, 1
+lbl_80272E7C:
+/* 80272E7C 0026EADC 54 C0 06 31 */ rlwinm. r0, r6, 0, 0x18, 0x18
+/* 80272E80 0026EAE0 40 82 00 0C */ bne lbl_80272E8C
+/* 80272E84 0026EAE4 38 E0 00 00 */ li r7, 0
+/* 80272E88 0026EAE8 48 00 00 54 */ b lbl_80272EDC
+lbl_80272E8C:
+/* 80272E8C 0026EAEC 54 C0 06 34 */ rlwinm r0, r6, 0, 0x18, 0x1a
+/* 80272E90 0026EAF0 28 00 00 C0 */ cmplwi r0, 0xc0
+/* 80272E94 0026EAF4 40 82 00 10 */ bne lbl_80272EA4
+/* 80272E98 0026EAF8 54 C6 06 FE */ clrlwi r6, r6, 0x1b
+/* 80272E9C 0026EAFC 38 E0 00 01 */ li r7, 1
+/* 80272EA0 0026EB00 48 00 00 3C */ b lbl_80272EDC
+lbl_80272EA4:
+/* 80272EA4 0026EB04 54 C0 06 36 */ rlwinm r0, r6, 0, 0x18, 0x1b
+/* 80272EA8 0026EB08 28 00 00 E0 */ cmplwi r0, 0xe0
+/* 80272EAC 0026EB0C 40 82 00 10 */ bne lbl_80272EBC
+/* 80272EB0 0026EB10 54 C6 07 3E */ clrlwi r6, r6, 0x1c
+/* 80272EB4 0026EB14 38 E0 00 02 */ li r7, 2
+/* 80272EB8 0026EB18 48 00 00 24 */ b lbl_80272EDC
+lbl_80272EBC:
+/* 80272EBC 0026EB1C 54 C0 06 38 */ rlwinm r0, r6, 0, 0x18, 0x1c
+/* 80272EC0 0026EB20 28 00 00 F0 */ cmplwi r0, 0xf0
+/* 80272EC4 0026EB24 40 82 00 10 */ bne lbl_80272ED4
+/* 80272EC8 0026EB28 54 C6 07 7E */ clrlwi r6, r6, 0x1d
+/* 80272ECC 0026EB2C 38 E0 00 03 */ li r7, 3
+/* 80272ED0 0026EB30 48 00 00 0C */ b lbl_80272EDC
+lbl_80272ED4:
+/* 80272ED4 0026EB34 38 60 00 00 */ li r3, 0
+/* 80272ED8 0026EB38 4E 80 00 20 */ blr
+lbl_80272EDC:
+/* 80272EDC 0026EB3C 7C E9 03 A6 */ mtctr r7
+/* 80272EE0 0026EB40 28 07 00 00 */ cmplwi r7, 0
+/* 80272EE4 0026EB44 40 81 00 30 */ ble lbl_80272F14
+lbl_80272EE8:
+/* 80272EE8 0026EB48 88 A3 00 00 */ lbz r5, 0(r3)
+/* 80272EEC 0026EB4C 54 C6 30 32 */ slwi r6, r6, 6
+/* 80272EF0 0026EB50 38 63 00 01 */ addi r3, r3, 1
+/* 80272EF4 0026EB54 54 A0 06 32 */ rlwinm r0, r5, 0, 0x18, 0x19
+/* 80272EF8 0026EB58 28 00 00 80 */ cmplwi r0, 0x80
+/* 80272EFC 0026EB5C 41 82 00 0C */ beq lbl_80272F08
+/* 80272F00 0026EB60 38 60 00 00 */ li r3, 0
+/* 80272F04 0026EB64 4E 80 00 20 */ blr
+lbl_80272F08:
+/* 80272F08 0026EB68 54 A0 06 BE */ clrlwi r0, r5, 0x1a
+/* 80272F0C 0026EB6C 7C C6 03 78 */ or r6, r6, r0
+/* 80272F10 0026EB70 42 00 FF D8 */ bdnz lbl_80272EE8
+lbl_80272F14:
+/* 80272F14 0026EB74 28 06 00 7F */ cmplwi r6, 0x7f
+/* 80272F18 0026EB78 41 81 00 14 */ bgt lbl_80272F2C
+/* 80272F1C 0026EB7C 2C 07 00 00 */ cmpwi r7, 0
+/* 80272F20 0026EB80 41 82 00 3C */ beq lbl_80272F5C
+/* 80272F24 0026EB84 38 60 00 00 */ li r3, 0
+/* 80272F28 0026EB88 4E 80 00 20 */ blr
+lbl_80272F2C:
+/* 80272F2C 0026EB8C 28 06 07 FF */ cmplwi r6, 0x7ff
+/* 80272F30 0026EB90 41 81 00 14 */ bgt lbl_80272F44
+/* 80272F34 0026EB94 28 07 00 01 */ cmplwi r7, 1
+/* 80272F38 0026EB98 41 82 00 24 */ beq lbl_80272F5C
+/* 80272F3C 0026EB9C 38 60 00 00 */ li r3, 0
+/* 80272F40 0026EBA0 4E 80 00 20 */ blr
+lbl_80272F44:
+/* 80272F44 0026EBA4 28 06 FF FF */ cmplwi r6, 0xffff
+/* 80272F48 0026EBA8 41 81 00 14 */ bgt lbl_80272F5C
+/* 80272F4C 0026EBAC 28 07 00 02 */ cmplwi r7, 2
+/* 80272F50 0026EBB0 41 82 00 0C */ beq lbl_80272F5C
+/* 80272F54 0026EBB4 38 60 00 00 */ li r3, 0
+/* 80272F58 0026EBB8 4E 80 00 20 */ blr
+lbl_80272F5C:
+/* 80272F5C 0026EBBC 28 06 D8 00 */ cmplwi r6, 0xd800
+/* 80272F60 0026EBC0 41 80 00 14 */ blt lbl_80272F74
+/* 80272F64 0026EBC4 28 06 DF FF */ cmplwi r6, 0xdfff
+/* 80272F68 0026EBC8 41 81 00 0C */ bgt lbl_80272F74
+/* 80272F6C 0026EBCC 38 60 00 00 */ li r3, 0
+/* 80272F70 0026EBD0 4E 80 00 20 */ blr
+lbl_80272F74:
+/* 80272F74 0026EBD4 90 C4 00 00 */ stw r6, 0(r4)
+/* 80272F78 0026EBD8 4E 80 00 20 */ blr
+
+.global OSUTF16to32
+OSUTF16to32:
+/* 80272F7C 0026EBDC A0 A3 00 00 */ lhz r5, 0(r3)
+/* 80272F80 0026EBE0 2C 05 00 00 */ cmpwi r5, 0
+/* 80272F84 0026EBE4 41 82 00 08 */ beq lbl_80272F8C
+/* 80272F88 0026EBE8 38 63 00 02 */ addi r3, r3, 2
+lbl_80272F8C:
+/* 80272F8C 0026EBEC 28 05 D8 00 */ cmplwi r5, 0xd800
+/* 80272F90 0026EBF0 41 80 00 0C */ blt lbl_80272F9C
+/* 80272F94 0026EBF4 28 05 DF FF */ cmplwi r5, 0xdfff
+/* 80272F98 0026EBF8 40 81 00 0C */ ble lbl_80272FA4
+lbl_80272F9C:
+/* 80272F9C 0026EBFC 7C A6 2B 78 */ mr r6, r5
+/* 80272FA0 0026EC00 48 00 00 44 */ b lbl_80272FE4
+lbl_80272FA4:
+/* 80272FA4 0026EC04 28 05 DB FF */ cmplwi r5, 0xdbff
+/* 80272FA8 0026EC08 41 81 00 34 */ bgt lbl_80272FDC
+/* 80272FAC 0026EC0C A0 03 00 00 */ lhz r0, 0(r3)
+/* 80272FB0 0026EC10 38 63 00 02 */ addi r3, r3, 2
+/* 80272FB4 0026EC14 28 00 DC 00 */ cmplwi r0, 0xdc00
+/* 80272FB8 0026EC18 41 80 00 1C */ blt lbl_80272FD4
+/* 80272FBC 0026EC1C 28 00 DF FF */ cmplwi r0, 0xdfff
+/* 80272FC0 0026EC20 41 81 00 14 */ bgt lbl_80272FD4
+/* 80272FC4 0026EC24 54 06 05 BE */ clrlwi r6, r0, 0x16
+/* 80272FC8 0026EC28 50 A6 53 2A */ rlwimi r6, r5, 0xa, 0xc, 0x15
+/* 80272FCC 0026EC2C 3C C6 00 01 */ addis r6, r6, 1
+/* 80272FD0 0026EC30 48 00 00 14 */ b lbl_80272FE4
+lbl_80272FD4:
+/* 80272FD4 0026EC34 38 60 00 00 */ li r3, 0
+/* 80272FD8 0026EC38 4E 80 00 20 */ blr
+lbl_80272FDC:
+/* 80272FDC 0026EC3C 38 60 00 00 */ li r3, 0
+/* 80272FE0 0026EC40 4E 80 00 20 */ blr
+lbl_80272FE4:
+/* 80272FE4 0026EC44 90 C4 00 00 */ stw r6, 0(r4)
+/* 80272FE8 0026EC48 4E 80 00 20 */ blr
+
+.global OSUTF32toANSI
+OSUTF32toANSI:
+/* 80272FEC 0026EC4C 28 03 00 FF */ cmplwi r3, 0xff
+/* 80272FF0 0026EC50 40 81 00 0C */ ble lbl_80272FFC
+/* 80272FF4 0026EC54 38 60 00 00 */ li r3, 0
+/* 80272FF8 0026EC58 4E 80 00 20 */ blr
+lbl_80272FFC:
+/* 80272FFC 0026EC5C 28 03 00 80 */ cmplwi r3, 0x80
+/* 80273000 0026EC60 41 80 00 0C */ blt lbl_8027300C
+/* 80273004 0026EC64 28 03 00 9F */ cmplwi r3, 0x9f
+/* 80273008 0026EC68 40 81 00 0C */ ble lbl_80273014
+lbl_8027300C:
+/* 8027300C 0026EC6C 54 63 06 3E */ clrlwi r3, r3, 0x18
+/* 80273010 0026EC70 4E 80 00 20 */ blr
+lbl_80273014:
+/* 80273014 0026EC74 28 03 01 52 */ cmplwi r3, 0x152
+/* 80273018 0026EC78 41 80 00 44 */ blt lbl_8027305C
+/* 8027301C 0026EC7C 28 03 21 22 */ cmplwi r3, 0x2122
+/* 80273020 0026EC80 41 81 00 3C */ bgt lbl_8027305C
+/* 80273024 0026EC84 3C 80 80 42 */ lis r4, lbl_80427E28@ha
+/* 80273028 0026EC88 38 00 00 20 */ li r0, 0x20
+/* 8027302C 0026EC8C 38 84 7E 28 */ addi r4, r4, lbl_80427E28@l
+/* 80273030 0026EC90 38 A0 00 00 */ li r5, 0
+/* 80273034 0026EC94 7C 09 03 A6 */ mtctr r0
+lbl_80273038:
+/* 80273038 0026EC98 A0 04 00 00 */ lhz r0, 0(r4)
+/* 8027303C 0026EC9C 7C 03 00 40 */ cmplw r3, r0
+/* 80273040 0026ECA0 40 82 00 10 */ bne lbl_80273050
+/* 80273044 0026ECA4 38 05 00 80 */ addi r0, r5, 0x80
+/* 80273048 0026ECA8 54 03 06 3E */ clrlwi r3, r0, 0x18
+/* 8027304C 0026ECAC 4E 80 00 20 */ blr
+lbl_80273050:
+/* 80273050 0026ECB0 38 84 00 02 */ addi r4, r4, 2
+/* 80273054 0026ECB4 38 A5 00 01 */ addi r5, r5, 1
+/* 80273058 0026ECB8 42 00 FF E0 */ bdnz lbl_80273038
+lbl_8027305C:
+/* 8027305C 0026ECBC 38 60 00 00 */ li r3, 0
+/* 80273060 0026ECC0 4E 80 00 20 */ blr
+
+.global OSUTF32toSJIS
+OSUTF32toSJIS:
+/* 80273064 0026ECC4 3C 00 00 01 */ lis r0, 1
+/* 80273068 0026ECC8 7C 03 00 40 */ cmplw r3, r0
+/* 8027306C 0026ECCC 41 80 00 0C */ blt lbl_80273078
+/* 80273070 0026ECD0 38 60 00 00 */ li r3, 0
+/* 80273074 0026ECD4 4E 80 00 20 */ blr
+lbl_80273078:
+/* 80273078 0026ECD8 3C 80 80 43 */ lis r4, lbl_80433868@ha
+/* 8027307C 0026ECDC 54 60 D5 BA */ rlwinm r0, r3, 0x1a, 0x16, 0x1d
+/* 80273080 0026ECE0 38 84 38 68 */ addi r4, r4, lbl_80433868@l
+/* 80273084 0026ECE4 7C 84 00 2E */ lwzx r4, r4, r0
+/* 80273088 0026ECE8 2C 04 00 00 */ cmpwi r4, 0
+/* 8027308C 0026ECEC 41 82 00 10 */ beq lbl_8027309C
+/* 80273090 0026ECF0 54 60 0D FC */ rlwinm r0, r3, 1, 0x17, 0x1e
+/* 80273094 0026ECF4 7C 64 02 2E */ lhzx r3, r4, r0
+/* 80273098 0026ECF8 4E 80 00 20 */ blr
+lbl_8027309C:
+/* 8027309C 0026ECFC 38 60 00 00 */ li r3, 0
+/* 802730A0 0026ED00 4E 80 00 20 */ blr