.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global DefaultSwitchThreadCallback DefaultSwitchThreadCallback: /* 80271060 0026CCC0 4E 80 00 20 */ blr .global __OSThreadInit __OSThreadInit: /* 80271064 0026CCC4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80271068 0026CCC8 7C 08 02 A6 */ mflr r0 /* 8027106C 0026CCCC 38 60 00 02 */ li r3, 2 /* 80271070 0026CCD0 38 C0 00 01 */ li r6, 1 /* 80271074 0026CCD4 90 01 00 24 */ stw r0, 0x24(r1) /* 80271078 0026CCD8 38 80 00 00 */ li r4, 0 /* 8027107C 0026CCDC 38 A0 00 10 */ li r5, 0x10 /* 80271080 0026CCE0 38 00 FF FF */ li r0, -1 /* 80271084 0026CCE4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80271088 0026CCE8 3F E0 80 51 */ lis r31, lbl_805147D8@ha /* 8027108C 0026CCEC 3B FF 47 D8 */ addi r31, r31, lbl_805147D8@l /* 80271090 0026CCF0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80271094 0026CCF4 3B DF 00 00 */ addi r30, r31, 0 /* 80271098 0026CCF8 93 A1 00 14 */ stw r29, 0x14(r1) /* 8027109C 0026CCFC 3F A0 80 00 */ lis r29, 0x800000D8@ha /* 802710A0 0026CD00 B0 7E 02 C8 */ sth r3, 0x2c8(r30) /* 802710A4 0026CD04 7F C3 F3 78 */ mr r3, r30 /* 802710A8 0026CD08 B0 DE 02 CA */ sth r6, 0x2ca(r30) /* 802710AC 0026CD0C 90 BE 02 D4 */ stw r5, 0x2d4(r30) /* 802710B0 0026CD10 90 BE 02 D0 */ stw r5, 0x2d0(r30) /* 802710B4 0026CD14 90 9E 02 CC */ stw r4, 0x2cc(r30) /* 802710B8 0026CD18 90 1E 02 D8 */ stw r0, 0x2d8(r30) /* 802710BC 0026CD1C 90 9E 02 F0 */ stw r4, 0x2f0(r30) /* 802710C0 0026CD20 90 9E 02 EC */ stw r4, 0x2ec(r30) /* 802710C4 0026CD24 90 9E 02 E8 */ stw r4, 0x2e8(r30) /* 802710C8 0026CD28 90 9E 02 F8 */ stw r4, 0x2f8(r30) /* 802710CC 0026CD2C 90 9E 02 F4 */ stw r4, 0x2f4(r30) /* 802710D0 0026CD30 93 DD 00 D8 */ stw r30, 0x800000D8@l(r29) /* 802710D4 0026CD34 4B FF 9F BD */ bl OSClearContext /* 802710D8 0026CD38 7F C3 F3 78 */ mr r3, r30 /* 802710DC 0026CD3C 4B FF 9D 8D */ bl OSSetCurrentContext /* 802710E0 0026CD40 3C 80 80 65 */ lis r4, 0x80653050@ha /* 802710E4 0026CD44 3C A0 80 64 */ lis r5, 0x80643050@ha /* 802710E8 0026CD48 38 84 30 50 */ addi r4, r4, 0x80653050@l /* 802710EC 0026CD4C 3C 60 DE AE */ lis r3, 0xDEADBABE@ha /* 802710F0 0026CD50 38 A5 30 50 */ addi r5, r5, 0x80643050@l /* 802710F4 0026CD54 90 9E 03 04 */ stw r4, 0x304(r30) /* 802710F8 0026CD58 38 03 BA BE */ addi r0, r3, 0xDEADBABE@l /* 802710FC 0026CD5C 7F C4 F3 78 */ mr r4, r30 /* 80271100 0026CD60 90 BE 03 08 */ stw r5, 0x308(r30) /* 80271104 0026CD64 90 05 00 00 */ stw r0, 0(r5) /* 80271108 0026CD68 81 8D 87 E0 */ lwz r12, lbl_8063DAA0-_SDA_BASE_(r13) /* 8027110C 0026CD6C 80 7D 00 E4 */ lwz r3, 0xe4(r29) /* 80271110 0026CD70 7D 89 03 A6 */ mtctr r12 /* 80271114 0026CD74 4E 80 04 21 */ bctrl /* 80271118 0026CD78 93 DD 00 E4 */ stw r30, 0xe4(r29) /* 8027111C 0026CD7C 4B FF 9F 0D */ bl OSGetStackPointer /* 80271120 0026CD80 80 9D 00 E4 */ lwz r4, 0xe4(r29) /* 80271124 0026CD84 80 84 03 08 */ lwz r4, 0x308(r4) /* 80271128 0026CD88 39 04 00 04 */ addi r8, r4, 4 /* 8027112C 0026CD8C 7C 88 18 40 */ cmplw cr1, r8, r3 /* 80271130 0026CD90 40 84 00 C0 */ bge cr1, lbl_802711F0 /* 80271134 0026CD94 7C A8 18 50 */ subf r5, r8, r3 /* 80271138 0026CD98 38 C3 FF E0 */ addi r6, r3, -32 /* 8027113C 0026CD9C 38 85 00 03 */ addi r4, r5, 3 /* 80271140 0026CDA0 7C 80 16 70 */ srawi r0, r4, 2 /* 80271144 0026CDA4 7C 00 01 94 */ addze r0, r0 /* 80271148 0026CDA8 2C 00 00 08 */ cmpwi r0, 8 /* 8027114C 0026CDAC 40 81 00 7C */ ble lbl_802711C8 /* 80271150 0026CDB0 38 E0 00 00 */ li r7, 0 /* 80271154 0026CDB4 41 85 00 28 */ bgt cr1, lbl_8027117C /* 80271158 0026CDB8 54 A0 00 01 */ rlwinm. r0, r5, 0, 0, 0 /* 8027115C 0026CDBC 38 A0 00 01 */ li r5, 1 /* 80271160 0026CDC0 40 82 00 10 */ bne lbl_80271170 /* 80271164 0026CDC4 54 80 00 01 */ rlwinm. r0, r4, 0, 0, 0 /* 80271168 0026CDC8 41 82 00 08 */ beq lbl_80271170 /* 8027116C 0026CDCC 38 A0 00 00 */ li r5, 0 lbl_80271170: /* 80271170 0026CDD0 2C 05 00 00 */ cmpwi r5, 0 /* 80271174 0026CDD4 41 82 00 08 */ beq lbl_8027117C /* 80271178 0026CDD8 38 E0 00 01 */ li r7, 1 lbl_8027117C: /* 8027117C 0026CDDC 2C 07 00 00 */ cmpwi r7, 0 /* 80271180 0026CDE0 41 82 00 48 */ beq lbl_802711C8 /* 80271184 0026CDE4 38 06 00 1F */ addi r0, r6, 0x1f /* 80271188 0026CDE8 38 80 00 00 */ li r4, 0 /* 8027118C 0026CDEC 7C 08 00 50 */ subf r0, r8, r0 /* 80271190 0026CDF0 54 00 D9 7E */ srwi r0, r0, 5 /* 80271194 0026CDF4 7C 09 03 A6 */ mtctr r0 /* 80271198 0026CDF8 7C 08 30 40 */ cmplw r8, r6 /* 8027119C 0026CDFC 40 80 00 2C */ bge lbl_802711C8 lbl_802711A0: /* 802711A0 0026CE00 90 88 00 00 */ stw r4, 0(r8) /* 802711A4 0026CE04 90 88 00 04 */ stw r4, 4(r8) /* 802711A8 0026CE08 90 88 00 08 */ stw r4, 8(r8) /* 802711AC 0026CE0C 90 88 00 0C */ stw r4, 0xc(r8) /* 802711B0 0026CE10 90 88 00 10 */ stw r4, 0x10(r8) /* 802711B4 0026CE14 90 88 00 14 */ stw r4, 0x14(r8) /* 802711B8 0026CE18 90 88 00 18 */ stw r4, 0x18(r8) /* 802711BC 0026CE1C 90 88 00 1C */ stw r4, 0x1c(r8) /* 802711C0 0026CE20 39 08 00 20 */ addi r8, r8, 0x20 /* 802711C4 0026CE24 42 00 FF DC */ bdnz lbl_802711A0 lbl_802711C8: /* 802711C8 0026CE28 38 03 00 03 */ addi r0, r3, 3 /* 802711CC 0026CE2C 38 80 00 00 */ li r4, 0 /* 802711D0 0026CE30 7C 08 00 50 */ subf r0, r8, r0 /* 802711D4 0026CE34 54 00 F0 BE */ srwi r0, r0, 2 /* 802711D8 0026CE38 7C 09 03 A6 */ mtctr r0 /* 802711DC 0026CE3C 7C 08 18 40 */ cmplw r8, r3 /* 802711E0 0026CE40 40 80 00 10 */ bge lbl_802711F0 lbl_802711E4: /* 802711E4 0026CE44 90 88 00 00 */ stw r4, 0(r8) /* 802711E8 0026CE48 39 08 00 04 */ addi r8, r8, 4 /* 802711EC 0026CE4C 42 00 FF F8 */ bdnz lbl_802711E4 lbl_802711F0: /* 802711F0 0026CE50 38 60 00 00 */ li r3, 0 /* 802711F4 0026CE54 38 00 00 02 */ li r0, 2 /* 802711F8 0026CE58 90 6D A8 30 */ stw r3, lbl_8063FAF0-_SDA_BASE_(r13) /* 802711FC 0026CE5C 38 9F 03 18 */ addi r4, r31, 0x318 /* 80271200 0026CE60 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13) /* 80271204 0026CE64 7C 09 03 A6 */ mtctr r0 lbl_80271208: /* 80271208 0026CE68 90 64 00 04 */ stw r3, 4(r4) /* 8027120C 0026CE6C 90 64 00 00 */ stw r3, 0(r4) /* 80271210 0026CE70 90 64 00 0C */ stw r3, 0xc(r4) /* 80271214 0026CE74 90 64 00 08 */ stw r3, 8(r4) /* 80271218 0026CE78 90 64 00 14 */ stw r3, 0x14(r4) /* 8027121C 0026CE7C 90 64 00 10 */ stw r3, 0x10(r4) /* 80271220 0026CE80 90 64 00 1C */ stw r3, 0x1c(r4) /* 80271224 0026CE84 90 64 00 18 */ stw r3, 0x18(r4) /* 80271228 0026CE88 90 64 00 24 */ stw r3, 0x24(r4) /* 8027122C 0026CE8C 90 64 00 20 */ stw r3, 0x20(r4) /* 80271230 0026CE90 90 64 00 2C */ stw r3, 0x2c(r4) /* 80271234 0026CE94 90 64 00 28 */ stw r3, 0x28(r4) /* 80271238 0026CE98 90 64 00 34 */ stw r3, 0x34(r4) /* 8027123C 0026CE9C 90 64 00 30 */ stw r3, 0x30(r4) /* 80271240 0026CEA0 90 64 00 3C */ stw r3, 0x3c(r4) /* 80271244 0026CEA4 90 64 00 38 */ stw r3, 0x38(r4) /* 80271248 0026CEA8 90 64 00 44 */ stw r3, 0x44(r4) /* 8027124C 0026CEAC 90 64 00 40 */ stw r3, 0x40(r4) /* 80271250 0026CEB0 90 64 00 4C */ stw r3, 0x4c(r4) /* 80271254 0026CEB4 90 64 00 48 */ stw r3, 0x48(r4) /* 80271258 0026CEB8 90 64 00 54 */ stw r3, 0x54(r4) /* 8027125C 0026CEBC 90 64 00 50 */ stw r3, 0x50(r4) /* 80271260 0026CEC0 90 64 00 5C */ stw r3, 0x5c(r4) /* 80271264 0026CEC4 90 64 00 58 */ stw r3, 0x58(r4) /* 80271268 0026CEC8 90 64 00 64 */ stw r3, 0x64(r4) /* 8027126C 0026CECC 90 64 00 60 */ stw r3, 0x60(r4) /* 80271270 0026CED0 90 64 00 6C */ stw r3, 0x6c(r4) /* 80271274 0026CED4 90 64 00 68 */ stw r3, 0x68(r4) /* 80271278 0026CED8 90 64 00 74 */ stw r3, 0x74(r4) /* 8027127C 0026CEDC 90 64 00 70 */ stw r3, 0x70(r4) /* 80271280 0026CEE0 90 64 00 7C */ stw r3, 0x7c(r4) /* 80271284 0026CEE4 90 64 00 78 */ stw r3, 0x78(r4) /* 80271288 0026CEE8 38 84 00 80 */ addi r4, r4, 0x80 /* 8027128C 0026CEEC 42 00 FF 7C */ bdnz lbl_80271208 /* 80271290 0026CEF0 38 80 00 00 */ li r4, 0 /* 80271294 0026CEF4 3C 60 80 00 */ lis r3, 0x800000E0@ha /* 80271298 0026CEF8 90 83 00 E0 */ stw r4, 0x800000E0@l(r3) /* 8027129C 0026CEFC 90 83 00 DC */ stw r4, 0xdc(r3) /* 802712A0 0026CF00 93 C3 00 DC */ stw r30, 0xdc(r3) /* 802712A4 0026CF04 48 00 00 08 */ b lbl_802712AC /* 802712A8 0026CF08 93 C4 02 FC */ stw r30, 0x2fc(r4) lbl_802712AC: /* 802712AC 0026CF0C 3B A0 00 00 */ li r29, 0 /* 802712B0 0026CF10 90 9E 03 00 */ stw r4, 0x300(r30) /* 802712B4 0026CF14 3C 80 80 00 */ lis r4, 0x800000E0@ha /* 802712B8 0026CF18 38 7F 04 18 */ addi r3, r31, 0x418 /* 802712BC 0026CF1C 93 BE 02 FC */ stw r29, 0x2fc(r30) /* 802712C0 0026CF20 93 C4 00 E0 */ stw r30, 0x800000E0@l(r4) /* 802712C4 0026CF24 4B FF 9D CD */ bl OSClearContext /* 802712C8 0026CF28 93 AD A8 28 */ stw r29, lbl_8063FAE8-_SDA_BASE_(r13) /* 802712CC 0026CF2C 80 01 00 24 */ lwz r0, 0x24(r1) /* 802712D0 0026CF30 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802712D4 0026CF34 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802712D8 0026CF38 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802712DC 0026CF3C 7C 08 03 A6 */ mtlr r0 /* 802712E0 0026CF40 38 21 00 20 */ addi r1, r1, 0x20 /* 802712E4 0026CF44 4E 80 00 20 */ blr .global OSInitThreadQueue OSInitThreadQueue: /* 802712E8 0026CF48 38 00 00 00 */ li r0, 0 /* 802712EC 0026CF4C 90 03 00 04 */ stw r0, 4(r3) /* 802712F0 0026CF50 90 03 00 00 */ stw r0, 0(r3) /* 802712F4 0026CF54 4E 80 00 20 */ blr .global OSGetCurrentThread OSGetCurrentThread: /* 802712F8 0026CF58 3C 60 80 00 */ lis r3, 0x800000E4@ha /* 802712FC 0026CF5C 80 63 00 E4 */ lwz r3, 0x800000E4@l(r3) /* 80271300 0026CF60 4E 80 00 20 */ blr .global OSIsThreadSuspended OSIsThreadSuspended: /* 80271304 0026CF64 80 63 02 CC */ lwz r3, 0x2cc(r3) /* 80271308 0026CF68 7C 03 00 D0 */ neg r0, r3 /* 8027130C 0026CF6C 7C 00 18 78 */ andc r0, r0, r3 /* 80271310 0026CF70 54 03 0F FE */ srwi r3, r0, 0x1f /* 80271314 0026CF74 4E 80 00 20 */ blr .global OSIsThreadTerminated OSIsThreadTerminated: /* 80271318 0026CF78 A0 03 02 C8 */ lhz r0, 0x2c8(r3) /* 8027131C 0026CF7C 38 60 00 01 */ li r3, 1 /* 80271320 0026CF80 28 00 00 08 */ cmplwi r0, 8 /* 80271324 0026CF84 41 82 00 10 */ beq lbl_80271334 /* 80271328 0026CF88 2C 00 00 00 */ cmpwi r0, 0 /* 8027132C 0026CF8C 41 82 00 08 */ beq lbl_80271334 /* 80271330 0026CF90 38 60 00 00 */ li r3, 0 lbl_80271334: /* 80271334 0026CF94 7C 03 00 D0 */ neg r0, r3 /* 80271338 0026CF98 7C 00 1B 78 */ or r0, r0, r3 /* 8027133C 0026CF9C 54 03 0F FE */ srwi r3, r0, 0x1f /* 80271340 0026CFA0 4E 80 00 20 */ blr .global OSDisableScheduler OSDisableScheduler: /* 80271344 0026CFA4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80271348 0026CFA8 7C 08 02 A6 */ mflr r0 /* 8027134C 0026CFAC 90 01 00 14 */ stw r0, 0x14(r1) /* 80271350 0026CFB0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80271354 0026CFB4 4B FF D4 09 */ bl OSDisableInterrupts /* 80271358 0026CFB8 83 ED A8 28 */ lwz r31, lbl_8063FAE8-_SDA_BASE_(r13) /* 8027135C 0026CFBC 38 1F 00 01 */ addi r0, r31, 1 /* 80271360 0026CFC0 90 0D A8 28 */ stw r0, lbl_8063FAE8-_SDA_BASE_(r13) /* 80271364 0026CFC4 4B FF D4 21 */ bl OSRestoreInterrupts /* 80271368 0026CFC8 7F E3 FB 78 */ mr r3, r31 /* 8027136C 0026CFCC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80271370 0026CFD0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80271374 0026CFD4 7C 08 03 A6 */ mtlr r0 /* 80271378 0026CFD8 38 21 00 10 */ addi r1, r1, 0x10 /* 8027137C 0026CFDC 4E 80 00 20 */ blr .global OSEnableScheduler OSEnableScheduler: /* 80271380 0026CFE0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80271384 0026CFE4 7C 08 02 A6 */ mflr r0 /* 80271388 0026CFE8 90 01 00 14 */ stw r0, 0x14(r1) /* 8027138C 0026CFEC 93 E1 00 0C */ stw r31, 0xc(r1) /* 80271390 0026CFF0 4B FF D3 CD */ bl OSDisableInterrupts /* 80271394 0026CFF4 83 ED A8 28 */ lwz r31, lbl_8063FAE8-_SDA_BASE_(r13) /* 80271398 0026CFF8 38 1F FF FF */ addi r0, r31, -1 /* 8027139C 0026CFFC 90 0D A8 28 */ stw r0, lbl_8063FAE8-_SDA_BASE_(r13) /* 802713A0 0026D000 4B FF D3 E5 */ bl OSRestoreInterrupts /* 802713A4 0026D004 7F E3 FB 78 */ mr r3, r31 /* 802713A8 0026D008 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802713AC 0026D00C 80 01 00 14 */ lwz r0, 0x14(r1) /* 802713B0 0026D010 7C 08 03 A6 */ mtlr r0 /* 802713B4 0026D014 38 21 00 10 */ addi r1, r1, 0x10 /* 802713B8 0026D018 4E 80 00 20 */ blr .global UnsetRun UnsetRun: /* 802713BC 0026D01C 80 A3 02 E0 */ lwz r5, 0x2e0(r3) /* 802713C0 0026D020 80 83 02 DC */ lwz r4, 0x2dc(r3) /* 802713C4 0026D024 2C 05 00 00 */ cmpwi r5, 0 /* 802713C8 0026D028 80 C3 02 E4 */ lwz r6, 0x2e4(r3) /* 802713CC 0026D02C 40 82 00 0C */ bne lbl_802713D8 /* 802713D0 0026D030 90 C4 00 04 */ stw r6, 4(r4) /* 802713D4 0026D034 48 00 00 08 */ b lbl_802713DC lbl_802713D8: /* 802713D8 0026D038 90 C5 02 E4 */ stw r6, 0x2e4(r5) lbl_802713DC: /* 802713DC 0026D03C 2C 06 00 00 */ cmpwi r6, 0 /* 802713E0 0026D040 40 82 00 0C */ bne lbl_802713EC /* 802713E4 0026D044 90 A4 00 00 */ stw r5, 0(r4) /* 802713E8 0026D048 48 00 00 08 */ b lbl_802713F0 lbl_802713EC: /* 802713EC 0026D04C 90 A6 02 E0 */ stw r5, 0x2e0(r6) lbl_802713F0: /* 802713F0 0026D050 80 04 00 00 */ lwz r0, 0(r4) /* 802713F4 0026D054 2C 00 00 00 */ cmpwi r0, 0 /* 802713F8 0026D058 40 82 00 20 */ bne lbl_80271418 /* 802713FC 0026D05C 80 03 02 D0 */ lwz r0, 0x2d0(r3) /* 80271400 0026D060 38 80 00 01 */ li r4, 1 /* 80271404 0026D064 80 AD A8 30 */ lwz r5, lbl_8063FAF0-_SDA_BASE_(r13) /* 80271408 0026D068 20 00 00 1F */ subfic r0, r0, 0x1f /* 8027140C 0026D06C 7C 80 00 30 */ slw r0, r4, r0 /* 80271410 0026D070 7C A0 00 78 */ andc r0, r5, r0 /* 80271414 0026D074 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13) lbl_80271418: /* 80271418 0026D078 38 00 00 00 */ li r0, 0 /* 8027141C 0026D07C 90 03 02 DC */ stw r0, 0x2dc(r3) /* 80271420 0026D080 4E 80 00 20 */ blr .global __OSGetEffectivePriority __OSGetEffectivePriority: /* 80271424 0026D084 80 83 02 D4 */ lwz r4, 0x2d4(r3) /* 80271428 0026D088 80 63 02 F4 */ lwz r3, 0x2f4(r3) /* 8027142C 0026D08C 48 00 00 24 */ b lbl_80271450 lbl_80271430: /* 80271430 0026D090 80 A3 00 00 */ lwz r5, 0(r3) /* 80271434 0026D094 2C 05 00 00 */ cmpwi r5, 0 /* 80271438 0026D098 41 82 00 14 */ beq lbl_8027144C /* 8027143C 0026D09C 80 05 02 D0 */ lwz r0, 0x2d0(r5) /* 80271440 0026D0A0 7C 00 20 00 */ cmpw r0, r4 /* 80271444 0026D0A4 40 80 00 08 */ bge lbl_8027144C /* 80271448 0026D0A8 7C 04 03 78 */ mr r4, r0 lbl_8027144C: /* 8027144C 0026D0AC 80 63 00 10 */ lwz r3, 0x10(r3) lbl_80271450: /* 80271450 0026D0B0 2C 03 00 00 */ cmpwi r3, 0 /* 80271454 0026D0B4 40 82 FF DC */ bne lbl_80271430 /* 80271458 0026D0B8 7C 83 23 78 */ mr r3, r4 /* 8027145C 0026D0BC 4E 80 00 20 */ blr .global SetEffectivePriority SetEffectivePriority: /* 80271460 0026D0C0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80271464 0026D0C4 7C 08 02 A6 */ mflr r0 /* 80271468 0026D0C8 90 01 00 14 */ stw r0, 0x14(r1) /* 8027146C 0026D0CC 93 E1 00 0C */ stw r31, 0xc(r1) /* 80271470 0026D0D0 7C 9F 23 78 */ mr r31, r4 /* 80271474 0026D0D4 93 C1 00 08 */ stw r30, 8(r1) /* 80271478 0026D0D8 7C 7E 1B 78 */ mr r30, r3 /* 8027147C 0026D0DC A0 03 02 C8 */ lhz r0, 0x2c8(r3) /* 80271480 0026D0E0 2C 00 00 03 */ cmpwi r0, 3 /* 80271484 0026D0E4 41 82 01 74 */ beq lbl_802715F8 /* 80271488 0026D0E8 40 80 00 14 */ bge lbl_8027149C /* 8027148C 0026D0EC 2C 00 00 01 */ cmpwi r0, 1 /* 80271490 0026D0F0 41 82 00 18 */ beq lbl_802714A8 /* 80271494 0026D0F4 40 80 01 58 */ bge lbl_802715EC /* 80271498 0026D0F8 48 00 01 60 */ b lbl_802715F8 lbl_8027149C: /* 8027149C 0026D0FC 2C 00 00 05 */ cmpwi r0, 5 /* 802714A0 0026D100 40 80 01 58 */ bge lbl_802715F8 /* 802714A4 0026D104 48 00 00 70 */ b lbl_80271514 lbl_802714A8: /* 802714A8 0026D108 4B FF FF 15 */ bl UnsetRun /* 802714AC 0026D10C 3C 60 80 51 */ lis r3, lbl_80514AF0@ha /* 802714B0 0026D110 57 E0 18 38 */ slwi r0, r31, 3 /* 802714B4 0026D114 38 63 4A F0 */ addi r3, r3, lbl_80514AF0@l /* 802714B8 0026D118 93 FE 02 D0 */ stw r31, 0x2d0(r30) /* 802714BC 0026D11C 7C 63 02 14 */ add r3, r3, r0 /* 802714C0 0026D120 90 7E 02 DC */ stw r3, 0x2dc(r30) /* 802714C4 0026D124 80 83 00 04 */ lwz r4, 4(r3) /* 802714C8 0026D128 2C 04 00 00 */ cmpwi r4, 0 /* 802714CC 0026D12C 40 82 00 0C */ bne lbl_802714D8 /* 802714D0 0026D130 93 C3 00 00 */ stw r30, 0(r3) /* 802714D4 0026D134 48 00 00 08 */ b lbl_802714DC lbl_802714D8: /* 802714D8 0026D138 93 C4 02 E0 */ stw r30, 0x2e0(r4) lbl_802714DC: /* 802714DC 0026D13C 38 00 00 00 */ li r0, 0 /* 802714E0 0026D140 90 9E 02 E4 */ stw r4, 0x2e4(r30) /* 802714E4 0026D144 80 9E 02 DC */ lwz r4, 0x2dc(r30) /* 802714E8 0026D148 38 60 00 01 */ li r3, 1 /* 802714EC 0026D14C 90 1E 02 E0 */ stw r0, 0x2e0(r30) /* 802714F0 0026D150 93 C4 00 04 */ stw r30, 4(r4) /* 802714F4 0026D154 80 1E 02 D0 */ lwz r0, 0x2d0(r30) /* 802714F8 0026D158 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13) /* 802714FC 0026D15C 20 00 00 1F */ subfic r0, r0, 0x1f /* 80271500 0026D160 7C 60 00 30 */ slw r0, r3, r0 /* 80271504 0026D164 7C 80 03 78 */ or r0, r4, r0 /* 80271508 0026D168 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13) /* 8027150C 0026D16C 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13) /* 80271510 0026D170 48 00 00 E8 */ b lbl_802715F8 lbl_80271514: /* 80271514 0026D174 80 C3 02 E0 */ lwz r6, 0x2e0(r3) /* 80271518 0026D178 80 E3 02 E4 */ lwz r7, 0x2e4(r3) /* 8027151C 0026D17C 2C 06 00 00 */ cmpwi r6, 0 /* 80271520 0026D180 40 82 00 10 */ bne lbl_80271530 /* 80271524 0026D184 80 A3 02 DC */ lwz r5, 0x2dc(r3) /* 80271528 0026D188 90 E5 00 04 */ stw r7, 4(r5) /* 8027152C 0026D18C 48 00 00 08 */ b lbl_80271534 lbl_80271530: /* 80271530 0026D190 90 E6 02 E4 */ stw r7, 0x2e4(r6) lbl_80271534: /* 80271534 0026D194 2C 07 00 00 */ cmpwi r7, 0 /* 80271538 0026D198 40 82 00 10 */ bne lbl_80271548 /* 8027153C 0026D19C 80 A3 02 DC */ lwz r5, 0x2dc(r3) /* 80271540 0026D1A0 90 C5 00 00 */ stw r6, 0(r5) /* 80271544 0026D1A4 48 00 00 08 */ b lbl_8027154C lbl_80271548: /* 80271548 0026D1A8 90 C7 02 E0 */ stw r6, 0x2e0(r7) lbl_8027154C: /* 8027154C 0026D1AC 90 83 02 D0 */ stw r4, 0x2d0(r3) /* 80271550 0026D1B0 80 A3 02 DC */ lwz r5, 0x2dc(r3) /* 80271554 0026D1B4 80 C5 00 00 */ lwz r6, 0(r5) /* 80271558 0026D1B8 48 00 00 08 */ b lbl_80271560 lbl_8027155C: /* 8027155C 0026D1BC 80 C6 02 E0 */ lwz r6, 0x2e0(r6) lbl_80271560: /* 80271560 0026D1C0 2C 06 00 00 */ cmpwi r6, 0 /* 80271564 0026D1C4 41 82 00 14 */ beq lbl_80271578 /* 80271568 0026D1C8 80 86 02 D0 */ lwz r4, 0x2d0(r6) /* 8027156C 0026D1CC 80 03 02 D0 */ lwz r0, 0x2d0(r3) /* 80271570 0026D1D0 7C 04 00 00 */ cmpw r4, r0 /* 80271574 0026D1D4 40 81 FF E8 */ ble lbl_8027155C lbl_80271578: /* 80271578 0026D1D8 2C 06 00 00 */ cmpwi r6, 0 /* 8027157C 0026D1DC 40 82 00 34 */ bne lbl_802715B0 /* 80271580 0026D1E0 80 85 00 04 */ lwz r4, 4(r5) /* 80271584 0026D1E4 2C 04 00 00 */ cmpwi r4, 0 /* 80271588 0026D1E8 40 82 00 0C */ bne lbl_80271594 /* 8027158C 0026D1EC 90 65 00 00 */ stw r3, 0(r5) /* 80271590 0026D1F0 48 00 00 08 */ b lbl_80271598 lbl_80271594: /* 80271594 0026D1F4 90 64 02 E0 */ stw r3, 0x2e0(r4) lbl_80271598: /* 80271598 0026D1F8 38 00 00 00 */ li r0, 0 /* 8027159C 0026D1FC 90 83 02 E4 */ stw r4, 0x2e4(r3) /* 802715A0 0026D200 80 83 02 DC */ lwz r4, 0x2dc(r3) /* 802715A4 0026D204 90 03 02 E0 */ stw r0, 0x2e0(r3) /* 802715A8 0026D208 90 64 00 04 */ stw r3, 4(r4) /* 802715AC 0026D20C 48 00 00 2C */ b lbl_802715D8 lbl_802715B0: /* 802715B0 0026D210 90 C3 02 E0 */ stw r6, 0x2e0(r3) /* 802715B4 0026D214 80 86 02 E4 */ lwz r4, 0x2e4(r6) /* 802715B8 0026D218 90 66 02 E4 */ stw r3, 0x2e4(r6) /* 802715BC 0026D21C 2C 04 00 00 */ cmpwi r4, 0 /* 802715C0 0026D220 90 83 02 E4 */ stw r4, 0x2e4(r3) /* 802715C4 0026D224 40 82 00 10 */ bne lbl_802715D4 /* 802715C8 0026D228 80 83 02 DC */ lwz r4, 0x2dc(r3) /* 802715CC 0026D22C 90 64 00 00 */ stw r3, 0(r4) /* 802715D0 0026D230 48 00 00 08 */ b lbl_802715D8 lbl_802715D4: /* 802715D4 0026D234 90 64 02 E0 */ stw r3, 0x2e0(r4) lbl_802715D8: /* 802715D8 0026D238 80 63 02 F0 */ lwz r3, 0x2f0(r3) /* 802715DC 0026D23C 2C 03 00 00 */ cmpwi r3, 0 /* 802715E0 0026D240 41 82 00 18 */ beq lbl_802715F8 /* 802715E4 0026D244 80 63 00 08 */ lwz r3, 8(r3) /* 802715E8 0026D248 48 00 00 14 */ b lbl_802715FC lbl_802715EC: /* 802715EC 0026D24C 38 00 00 01 */ li r0, 1 /* 802715F0 0026D250 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 802715F4 0026D254 90 83 02 D0 */ stw r4, 0x2d0(r3) lbl_802715F8: /* 802715F8 0026D258 38 60 00 00 */ li r3, 0 lbl_802715FC: /* 802715FC 0026D25C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80271600 0026D260 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80271604 0026D264 83 C1 00 08 */ lwz r30, 8(r1) /* 80271608 0026D268 7C 08 03 A6 */ mtlr r0 /* 8027160C 0026D26C 38 21 00 10 */ addi r1, r1, 0x10 /* 80271610 0026D270 4E 80 00 20 */ blr .global __OSPromoteThread __OSPromoteThread: /* 80271614 0026D274 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80271618 0026D278 7C 08 02 A6 */ mflr r0 /* 8027161C 0026D27C 90 01 00 14 */ stw r0, 0x14(r1) /* 80271620 0026D280 93 E1 00 0C */ stw r31, 0xc(r1) /* 80271624 0026D284 7C 9F 23 78 */ mr r31, r4 lbl_80271628: /* 80271628 0026D288 80 03 02 CC */ lwz r0, 0x2cc(r3) /* 8027162C 0026D28C 2C 00 00 00 */ cmpwi r0, 0 /* 80271630 0026D290 41 81 00 20 */ bgt lbl_80271650 /* 80271634 0026D294 80 03 02 D0 */ lwz r0, 0x2d0(r3) /* 80271638 0026D298 7C 00 F8 00 */ cmpw r0, r31 /* 8027163C 0026D29C 40 81 00 14 */ ble lbl_80271650 /* 80271640 0026D2A0 7F E4 FB 78 */ mr r4, r31 /* 80271644 0026D2A4 4B FF FE 1D */ bl SetEffectivePriority /* 80271648 0026D2A8 2C 03 00 00 */ cmpwi r3, 0 /* 8027164C 0026D2AC 40 82 FF DC */ bne lbl_80271628 lbl_80271650: /* 80271650 0026D2B0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80271654 0026D2B4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80271658 0026D2B8 7C 08 03 A6 */ mtlr r0 /* 8027165C 0026D2BC 38 21 00 10 */ addi r1, r1, 0x10 /* 80271660 0026D2C0 4E 80 00 20 */ blr .global SelectThread SelectThread: /* 80271664 0026D2C4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80271668 0026D2C8 7C 08 02 A6 */ mflr r0 /* 8027166C 0026D2CC 90 01 00 14 */ stw r0, 0x14(r1) /* 80271670 0026D2D0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80271674 0026D2D4 93 C1 00 08 */ stw r30, 8(r1) /* 80271678 0026D2D8 7C 7E 1B 78 */ mr r30, r3 /* 8027167C 0026D2DC 80 0D A8 28 */ lwz r0, lbl_8063FAE8-_SDA_BASE_(r13) /* 80271680 0026D2E0 2C 00 00 00 */ cmpwi r0, 0 /* 80271684 0026D2E4 40 81 00 0C */ ble lbl_80271690 /* 80271688 0026D2E8 38 60 00 00 */ li r3, 0 /* 8027168C 0026D2EC 48 00 01 E8 */ b lbl_80271874 lbl_80271690: /* 80271690 0026D2F0 4B FF 98 35 */ bl OSGetCurrentContext /* 80271694 0026D2F4 3C 80 80 00 */ lis r4, 0x800000E4@ha /* 80271698 0026D2F8 80 A4 00 E4 */ lwz r5, 0x800000E4@l(r4) /* 8027169C 0026D2FC 7C 03 28 40 */ cmplw r3, r5 /* 802716A0 0026D300 41 82 00 0C */ beq lbl_802716AC /* 802716A4 0026D304 38 60 00 00 */ li r3, 0 /* 802716A8 0026D308 48 00 01 CC */ b lbl_80271874 lbl_802716AC: /* 802716AC 0026D30C 2C 05 00 00 */ cmpwi r5, 0 /* 802716B0 0026D310 41 82 00 C4 */ beq lbl_80271774 /* 802716B4 0026D314 A0 05 02 C8 */ lhz r0, 0x2c8(r5) /* 802716B8 0026D318 28 00 00 02 */ cmplwi r0, 2 /* 802716BC 0026D31C 40 82 00 94 */ bne lbl_80271750 /* 802716C0 0026D320 2C 1E 00 00 */ cmpwi r30, 0 /* 802716C4 0026D324 40 82 00 20 */ bne lbl_802716E4 /* 802716C8 0026D328 80 6D A8 30 */ lwz r3, lbl_8063FAF0-_SDA_BASE_(r13) /* 802716CC 0026D32C 80 05 02 D0 */ lwz r0, 0x2d0(r5) /* 802716D0 0026D330 7C 63 00 34 */ cntlzw r3, r3 /* 802716D4 0026D334 7C 00 18 00 */ cmpw r0, r3 /* 802716D8 0026D338 41 81 00 0C */ bgt lbl_802716E4 /* 802716DC 0026D33C 38 60 00 00 */ li r3, 0 /* 802716E0 0026D340 48 00 01 94 */ b lbl_80271874 lbl_802716E4: /* 802716E4 0026D344 38 00 00 01 */ li r0, 1 /* 802716E8 0026D348 3C 60 80 51 */ lis r3, lbl_80514AF0@ha /* 802716EC 0026D34C B0 05 02 C8 */ sth r0, 0x2c8(r5) /* 802716F0 0026D350 38 63 4A F0 */ addi r3, r3, lbl_80514AF0@l /* 802716F4 0026D354 80 05 02 D0 */ lwz r0, 0x2d0(r5) /* 802716F8 0026D358 54 00 18 38 */ slwi r0, r0, 3 /* 802716FC 0026D35C 7C 63 02 14 */ add r3, r3, r0 /* 80271700 0026D360 90 65 02 DC */ stw r3, 0x2dc(r5) /* 80271704 0026D364 80 83 00 04 */ lwz r4, 4(r3) /* 80271708 0026D368 2C 04 00 00 */ cmpwi r4, 0 /* 8027170C 0026D36C 40 82 00 0C */ bne lbl_80271718 /* 80271710 0026D370 90 A3 00 00 */ stw r5, 0(r3) /* 80271714 0026D374 48 00 00 08 */ b lbl_8027171C lbl_80271718: /* 80271718 0026D378 90 A4 02 E0 */ stw r5, 0x2e0(r4) lbl_8027171C: /* 8027171C 0026D37C 90 85 02 E4 */ stw r4, 0x2e4(r5) /* 80271720 0026D380 38 00 00 00 */ li r0, 0 /* 80271724 0026D384 38 60 00 01 */ li r3, 1 /* 80271728 0026D388 90 05 02 E0 */ stw r0, 0x2e0(r5) /* 8027172C 0026D38C 80 85 02 DC */ lwz r4, 0x2dc(r5) /* 80271730 0026D390 90 A4 00 04 */ stw r5, 4(r4) /* 80271734 0026D394 80 05 02 D0 */ lwz r0, 0x2d0(r5) /* 80271738 0026D398 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13) /* 8027173C 0026D39C 20 00 00 1F */ subfic r0, r0, 0x1f /* 80271740 0026D3A0 7C 60 00 30 */ slw r0, r3, r0 /* 80271744 0026D3A4 7C 80 03 78 */ or r0, r4, r0 /* 80271748 0026D3A8 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13) /* 8027174C 0026D3AC 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13) lbl_80271750: /* 80271750 0026D3B0 A0 05 01 A2 */ lhz r0, 0x1a2(r5) /* 80271754 0026D3B4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e /* 80271758 0026D3B8 40 82 00 1C */ bne lbl_80271774 /* 8027175C 0026D3BC 7C A3 2B 78 */ mr r3, r5 /* 80271760 0026D3C0 4B FF 97 71 */ bl OSSaveContext /* 80271764 0026D3C4 2C 03 00 00 */ cmpwi r3, 0 /* 80271768 0026D3C8 41 82 00 0C */ beq lbl_80271774 /* 8027176C 0026D3CC 38 60 00 00 */ li r3, 0 /* 80271770 0026D3D0 48 00 01 04 */ b lbl_80271874 lbl_80271774: /* 80271774 0026D3D4 80 0D A8 30 */ lwz r0, lbl_8063FAF0-_SDA_BASE_(r13) /* 80271778 0026D3D8 2C 00 00 00 */ cmpwi r0, 0 /* 8027177C 0026D3DC 40 82 00 5C */ bne lbl_802717D8 /* 80271780 0026D3E0 81 8D 87 E0 */ lwz r12, lbl_8063DAA0-_SDA_BASE_(r13) /* 80271784 0026D3E4 3F E0 80 00 */ lis r31, 0x800000E4@ha /* 80271788 0026D3E8 80 7F 00 E4 */ lwz r3, 0x800000E4@l(r31) /* 8027178C 0026D3EC 38 80 00 00 */ li r4, 0 /* 80271790 0026D3F0 7D 89 03 A6 */ mtctr r12 /* 80271794 0026D3F4 4E 80 04 21 */ bctrl /* 80271798 0026D3F8 38 00 00 00 */ li r0, 0 /* 8027179C 0026D3FC 3C 60 80 51 */ lis r3, lbl_80514BF0@ha /* 802717A0 0026D400 90 1F 00 E4 */ stw r0, 0xe4(r31) /* 802717A4 0026D404 38 63 4B F0 */ addi r3, r3, lbl_80514BF0@l /* 802717A8 0026D408 4B FF 96 C1 */ bl OSSetCurrentContext lbl_802717AC: /* 802717AC 0026D40C 4B FF CF C5 */ bl OSEnableInterrupts lbl_802717B0: /* 802717B0 0026D410 80 0D A8 30 */ lwz r0, lbl_8063FAF0-_SDA_BASE_(r13) /* 802717B4 0026D414 2C 00 00 00 */ cmpwi r0, 0 /* 802717B8 0026D418 41 82 FF F8 */ beq lbl_802717B0 /* 802717BC 0026D41C 4B FF CF A1 */ bl OSDisableInterrupts /* 802717C0 0026D420 80 0D A8 30 */ lwz r0, lbl_8063FAF0-_SDA_BASE_(r13) /* 802717C4 0026D424 2C 00 00 00 */ cmpwi r0, 0 /* 802717C8 0026D428 41 82 FF E4 */ beq lbl_802717AC /* 802717CC 0026D42C 3C 60 80 51 */ lis r3, lbl_80514BF0@ha /* 802717D0 0026D430 38 63 4B F0 */ addi r3, r3, lbl_80514BF0@l /* 802717D4 0026D434 4B FF 98 BD */ bl OSClearContext lbl_802717D8: /* 802717D8 0026D438 38 80 00 00 */ li r4, 0 /* 802717DC 0026D43C 3C 60 80 51 */ lis r3, lbl_80514AF0@ha /* 802717E0 0026D440 90 8D A8 2C */ stw r4, lbl_8063FAEC-_SDA_BASE_(r13) /* 802717E4 0026D444 38 63 4A F0 */ addi r3, r3, lbl_80514AF0@l /* 802717E8 0026D448 80 0D A8 30 */ lwz r0, lbl_8063FAF0-_SDA_BASE_(r13) /* 802717EC 0026D44C 7C 05 00 34 */ cntlzw r5, r0 /* 802717F0 0026D450 54 A0 18 38 */ slwi r0, r5, 3 /* 802717F4 0026D454 7F C3 00 6E */ lwzux r30, r3, r0 /* 802717F8 0026D458 80 DE 02 E0 */ lwz r6, 0x2e0(r30) /* 802717FC 0026D45C 2C 06 00 00 */ cmpwi r6, 0 /* 80271800 0026D460 40 82 00 0C */ bne lbl_8027180C /* 80271804 0026D464 90 83 00 04 */ stw r4, 4(r3) /* 80271808 0026D468 48 00 00 08 */ b lbl_80271810 lbl_8027180C: /* 8027180C 0026D46C 90 86 02 E4 */ stw r4, 0x2e4(r6) lbl_80271810: /* 80271810 0026D470 2C 06 00 00 */ cmpwi r6, 0 /* 80271814 0026D474 90 C3 00 00 */ stw r6, 0(r3) /* 80271818 0026D478 40 82 00 1C */ bne lbl_80271834 /* 8027181C 0026D47C 20 05 00 1F */ subfic r0, r5, 0x1f /* 80271820 0026D480 38 60 00 01 */ li r3, 1 /* 80271824 0026D484 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13) /* 80271828 0026D488 7C 60 00 30 */ slw r0, r3, r0 /* 8027182C 0026D48C 7C 80 00 78 */ andc r0, r4, r0 /* 80271830 0026D490 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13) lbl_80271834: /* 80271834 0026D494 38 60 00 00 */ li r3, 0 /* 80271838 0026D498 38 00 00 02 */ li r0, 2 /* 8027183C 0026D49C 90 7E 02 DC */ stw r3, 0x2dc(r30) /* 80271840 0026D4A0 3F E0 80 00 */ lis r31, 0x800000E4@ha /* 80271844 0026D4A4 7F C4 F3 78 */ mr r4, r30 /* 80271848 0026D4A8 B0 1E 02 C8 */ sth r0, 0x2c8(r30) /* 8027184C 0026D4AC 81 8D 87 E0 */ lwz r12, lbl_8063DAA0-_SDA_BASE_(r13) /* 80271850 0026D4B0 80 7F 00 E4 */ lwz r3, 0x800000E4@l(r31) /* 80271854 0026D4B4 7D 89 03 A6 */ mtctr r12 /* 80271858 0026D4B8 4E 80 04 21 */ bctrl /* 8027185C 0026D4BC 93 DF 00 E4 */ stw r30, 0xe4(r31) /* 80271860 0026D4C0 7F C3 F3 78 */ mr r3, r30 /* 80271864 0026D4C4 4B FF 96 05 */ bl OSSetCurrentContext /* 80271868 0026D4C8 7F C3 F3 78 */ mr r3, r30 /* 8027186C 0026D4CC 4B FF 96 E5 */ bl OSLoadContext /* 80271870 0026D4D0 7F C3 F3 78 */ mr r3, r30 lbl_80271874: /* 80271874 0026D4D4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80271878 0026D4D8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8027187C 0026D4DC 83 C1 00 08 */ lwz r30, 8(r1) /* 80271880 0026D4E0 7C 08 03 A6 */ mtlr r0 /* 80271884 0026D4E4 38 21 00 10 */ addi r1, r1, 0x10 /* 80271888 0026D4E8 4E 80 00 20 */ blr .global __OSReschedule __OSReschedule: /* 8027188C 0026D4EC 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 80271890 0026D4F0 2C 00 00 00 */ cmpwi r0, 0 /* 80271894 0026D4F4 4D 82 00 20 */ beqlr /* 80271898 0026D4F8 38 60 00 00 */ li r3, 0 /* 8027189C 0026D4FC 4B FF FD C8 */ b SelectThread /* 802718A0 0026D500 4E 80 00 20 */ blr .global OSYieldThread OSYieldThread: /* 802718A4 0026D504 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802718A8 0026D508 7C 08 02 A6 */ mflr r0 /* 802718AC 0026D50C 90 01 00 14 */ stw r0, 0x14(r1) /* 802718B0 0026D510 93 E1 00 0C */ stw r31, 0xc(r1) /* 802718B4 0026D514 4B FF CE A9 */ bl OSDisableInterrupts /* 802718B8 0026D518 7C 7F 1B 78 */ mr r31, r3 /* 802718BC 0026D51C 38 60 00 01 */ li r3, 1 /* 802718C0 0026D520 4B FF FD A5 */ bl SelectThread /* 802718C4 0026D524 7F E3 FB 78 */ mr r3, r31 /* 802718C8 0026D528 4B FF CE BD */ bl OSRestoreInterrupts /* 802718CC 0026D52C 80 01 00 14 */ lwz r0, 0x14(r1) /* 802718D0 0026D530 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802718D4 0026D534 7C 08 03 A6 */ mtlr r0 /* 802718D8 0026D538 38 21 00 10 */ addi r1, r1, 0x10 /* 802718DC 0026D53C 4E 80 00 20 */ blr .global OSCreateThread OSCreateThread: /* 802718E0 0026D540 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802718E4 0026D544 7C 08 02 A6 */ mflr r0 /* 802718E8 0026D548 90 01 00 24 */ stw r0, 0x24(r1) /* 802718EC 0026D54C 39 61 00 20 */ addi r11, r1, 0x20 /* 802718F0 0026D550 4B F5 58 35 */ bl _savegpr_26 /* 802718F4 0026D554 2C 08 00 00 */ cmpwi r8, 0 /* 802718F8 0026D558 7C 7F 1B 78 */ mr r31, r3 /* 802718FC 0026D55C 7C BA 2B 78 */ mr r26, r5 /* 80271900 0026D560 7C DB 33 78 */ mr r27, r6 /* 80271904 0026D564 7C FC 3B 78 */ mr r28, r7 /* 80271908 0026D568 41 80 00 0C */ blt lbl_80271914 /* 8027190C 0026D56C 2C 08 00 1F */ cmpwi r8, 0x1f /* 80271910 0026D570 40 81 00 0C */ ble lbl_8027191C lbl_80271914: /* 80271914 0026D574 38 60 00 00 */ li r3, 0 /* 80271918 0026D578 48 00 02 1C */ b lbl_80271B34 lbl_8027191C: /* 8027191C 0026D57C 3B C0 00 00 */ li r30, 0 /* 80271920 0026D580 38 E0 00 01 */ li r7, 1 /* 80271924 0026D584 55 20 07 FE */ clrlwi r0, r9, 0x1f /* 80271928 0026D588 3B A0 FF FF */ li r29, -1 /* 8027192C 0026D58C 54 C6 00 38 */ rlwinm r6, r6, 0, 0, 0x1c /* 80271930 0026D590 B0 E3 02 C8 */ sth r7, 0x2c8(r3) /* 80271934 0026D594 38 A6 FF F8 */ addi r5, r6, -8 /* 80271938 0026D598 B0 03 02 CA */ sth r0, 0x2ca(r3) /* 8027193C 0026D59C 91 03 02 D4 */ stw r8, 0x2d4(r3) /* 80271940 0026D5A0 91 03 02 D0 */ stw r8, 0x2d0(r3) /* 80271944 0026D5A4 90 E3 02 CC */ stw r7, 0x2cc(r3) /* 80271948 0026D5A8 93 A3 02 D8 */ stw r29, 0x2d8(r3) /* 8027194C 0026D5AC 93 C3 02 F0 */ stw r30, 0x2f0(r3) /* 80271950 0026D5B0 93 C3 02 EC */ stw r30, 0x2ec(r3) /* 80271954 0026D5B4 93 C3 02 E8 */ stw r30, 0x2e8(r3) /* 80271958 0026D5B8 93 C3 02 F8 */ stw r30, 0x2f8(r3) /* 8027195C 0026D5BC 93 C3 02 F4 */ stw r30, 0x2f4(r3) /* 80271960 0026D5C0 93 C6 FF F8 */ stw r30, -8(r6) /* 80271964 0026D5C4 93 C6 FF FC */ stw r30, -4(r6) /* 80271968 0026D5C8 4B FF 97 4D */ bl OSInitContext /* 8027196C 0026D5CC 3C A0 80 27 */ lis r5, OSExitThread@ha /* 80271970 0026D5D0 7C 9C D8 50 */ subf r4, r28, r27 /* 80271974 0026D5D4 38 A5 1B 4C */ addi r5, r5, OSExitThread@l /* 80271978 0026D5D8 3C 60 DE AE */ lis r3, 0xDEADBABE@ha /* 8027197C 0026D5DC 90 BF 00 84 */ stw r5, 0x84(r31) /* 80271980 0026D5E0 38 03 BA BE */ addi r0, r3, 0xDEADBABE@l /* 80271984 0026D5E4 93 5F 00 0C */ stw r26, 0xc(r31) /* 80271988 0026D5E8 93 7F 03 04 */ stw r27, 0x304(r31) /* 8027198C 0026D5EC 90 9F 03 08 */ stw r4, 0x308(r31) /* 80271990 0026D5F0 90 04 00 00 */ stw r0, 0(r4) /* 80271994 0026D5F4 93 DF 03 0C */ stw r30, 0x30c(r31) /* 80271998 0026D5F8 93 DF 03 10 */ stw r30, 0x310(r31) /* 8027199C 0026D5FC 93 DF 03 14 */ stw r30, 0x314(r31) /* 802719A0 0026D600 4B FF CD BD */ bl OSDisableInterrupts /* 802719A4 0026D604 3C 80 80 50 */ lis r4, lbl_80503CF0@ha /* 802719A8 0026D608 38 84 3C F0 */ addi r4, r4, lbl_80503CF0@l /* 802719AC 0026D60C 80 04 00 40 */ lwz r0, 0x40(r4) /* 802719B0 0026D610 2C 00 00 00 */ cmpwi r0, 0 /* 802719B4 0026D614 41 82 01 48 */ beq lbl_80271AFC /* 802719B8 0026D618 80 BF 01 9C */ lwz r5, 0x19c(r31) /* 802719BC 0026D61C 38 00 00 02 */ li r0, 2 /* 802719C0 0026D620 A0 9F 01 A2 */ lhz r4, 0x1a2(r31) /* 802719C4 0026D624 38 DF 00 90 */ addi r6, r31, 0x90 /* 802719C8 0026D628 60 A5 09 00 */ ori r5, r5, 0x900 /* 802719CC 0026D62C 38 FF 01 C8 */ addi r7, r31, 0x1c8 /* 802719D0 0026D630 60 84 00 01 */ ori r4, r4, 1 /* 802719D4 0026D634 90 BF 01 9C */ stw r5, 0x19c(r31) /* 802719D8 0026D638 B0 9F 01 A2 */ sth r4, 0x1a2(r31) /* 802719DC 0026D63C 80 8D 87 B8 */ lwz r4, lbl_8063DA78-_SDA_BASE_(r13) /* 802719E0 0026D640 54 84 06 38 */ rlwinm r4, r4, 0, 0x18, 0x1c /* 802719E4 0026D644 60 84 00 04 */ ori r4, r4, 4 /* 802719E8 0026D648 90 9F 01 94 */ stw r4, 0x194(r31) /* 802719EC 0026D64C 7C 09 03 A6 */ mtctr r0 lbl_802719F0: /* 802719F0 0026D650 93 A6 00 04 */ stw r29, 4(r6) /* 802719F4 0026D654 93 A6 00 00 */ stw r29, 0(r6) /* 802719F8 0026D658 93 A7 00 04 */ stw r29, 4(r7) /* 802719FC 0026D65C 93 A7 00 00 */ stw r29, 0(r7) /* 80271A00 0026D660 93 A6 00 0C */ stw r29, 0xc(r6) /* 80271A04 0026D664 93 A6 00 08 */ stw r29, 8(r6) /* 80271A08 0026D668 93 A7 00 0C */ stw r29, 0xc(r7) /* 80271A0C 0026D66C 93 A7 00 08 */ stw r29, 8(r7) /* 80271A10 0026D670 93 A6 00 14 */ stw r29, 0x14(r6) /* 80271A14 0026D674 93 A6 00 10 */ stw r29, 0x10(r6) /* 80271A18 0026D678 93 A7 00 14 */ stw r29, 0x14(r7) /* 80271A1C 0026D67C 93 A7 00 10 */ stw r29, 0x10(r7) /* 80271A20 0026D680 93 A6 00 1C */ stw r29, 0x1c(r6) /* 80271A24 0026D684 93 A6 00 18 */ stw r29, 0x18(r6) /* 80271A28 0026D688 93 A7 00 1C */ stw r29, 0x1c(r7) /* 80271A2C 0026D68C 93 A7 00 18 */ stw r29, 0x18(r7) /* 80271A30 0026D690 93 A6 00 24 */ stw r29, 0x24(r6) /* 80271A34 0026D694 93 A6 00 20 */ stw r29, 0x20(r6) /* 80271A38 0026D698 93 A7 00 24 */ stw r29, 0x24(r7) /* 80271A3C 0026D69C 93 A7 00 20 */ stw r29, 0x20(r7) /* 80271A40 0026D6A0 93 A6 00 2C */ stw r29, 0x2c(r6) /* 80271A44 0026D6A4 93 A6 00 28 */ stw r29, 0x28(r6) /* 80271A48 0026D6A8 93 A7 00 2C */ stw r29, 0x2c(r7) /* 80271A4C 0026D6AC 93 A7 00 28 */ stw r29, 0x28(r7) /* 80271A50 0026D6B0 93 A6 00 34 */ stw r29, 0x34(r6) /* 80271A54 0026D6B4 93 A6 00 30 */ stw r29, 0x30(r6) /* 80271A58 0026D6B8 93 A7 00 34 */ stw r29, 0x34(r7) /* 80271A5C 0026D6BC 93 A7 00 30 */ stw r29, 0x30(r7) /* 80271A60 0026D6C0 93 A6 00 3C */ stw r29, 0x3c(r6) /* 80271A64 0026D6C4 93 A6 00 38 */ stw r29, 0x38(r6) /* 80271A68 0026D6C8 93 A7 00 3C */ stw r29, 0x3c(r7) /* 80271A6C 0026D6CC 93 A7 00 38 */ stw r29, 0x38(r7) /* 80271A70 0026D6D0 93 A6 00 44 */ stw r29, 0x44(r6) /* 80271A74 0026D6D4 93 A6 00 40 */ stw r29, 0x40(r6) /* 80271A78 0026D6D8 93 A7 00 44 */ stw r29, 0x44(r7) /* 80271A7C 0026D6DC 93 A7 00 40 */ stw r29, 0x40(r7) /* 80271A80 0026D6E0 93 A6 00 4C */ stw r29, 0x4c(r6) /* 80271A84 0026D6E4 93 A6 00 48 */ stw r29, 0x48(r6) /* 80271A88 0026D6E8 93 A7 00 4C */ stw r29, 0x4c(r7) /* 80271A8C 0026D6EC 93 A7 00 48 */ stw r29, 0x48(r7) /* 80271A90 0026D6F0 93 A6 00 54 */ stw r29, 0x54(r6) /* 80271A94 0026D6F4 93 A6 00 50 */ stw r29, 0x50(r6) /* 80271A98 0026D6F8 93 A7 00 54 */ stw r29, 0x54(r7) /* 80271A9C 0026D6FC 93 A7 00 50 */ stw r29, 0x50(r7) /* 80271AA0 0026D700 93 A6 00 5C */ stw r29, 0x5c(r6) /* 80271AA4 0026D704 93 A6 00 58 */ stw r29, 0x58(r6) /* 80271AA8 0026D708 93 A7 00 5C */ stw r29, 0x5c(r7) /* 80271AAC 0026D70C 93 A7 00 58 */ stw r29, 0x58(r7) /* 80271AB0 0026D710 93 A6 00 64 */ stw r29, 0x64(r6) /* 80271AB4 0026D714 93 A6 00 60 */ stw r29, 0x60(r6) /* 80271AB8 0026D718 93 A7 00 64 */ stw r29, 0x64(r7) /* 80271ABC 0026D71C 93 A7 00 60 */ stw r29, 0x60(r7) /* 80271AC0 0026D720 93 A6 00 6C */ stw r29, 0x6c(r6) /* 80271AC4 0026D724 93 A6 00 68 */ stw r29, 0x68(r6) /* 80271AC8 0026D728 93 A7 00 6C */ stw r29, 0x6c(r7) /* 80271ACC 0026D72C 93 A7 00 68 */ stw r29, 0x68(r7) /* 80271AD0 0026D730 93 A6 00 74 */ stw r29, 0x74(r6) /* 80271AD4 0026D734 93 A6 00 70 */ stw r29, 0x70(r6) /* 80271AD8 0026D738 93 A7 00 74 */ stw r29, 0x74(r7) /* 80271ADC 0026D73C 93 A7 00 70 */ stw r29, 0x70(r7) /* 80271AE0 0026D740 93 A6 00 7C */ stw r29, 0x7c(r6) /* 80271AE4 0026D744 93 A6 00 78 */ stw r29, 0x78(r6) /* 80271AE8 0026D748 38 C6 00 80 */ addi r6, r6, 0x80 /* 80271AEC 0026D74C 93 A7 00 7C */ stw r29, 0x7c(r7) /* 80271AF0 0026D750 93 A7 00 78 */ stw r29, 0x78(r7) /* 80271AF4 0026D754 38 E7 00 80 */ addi r7, r7, 0x80 /* 80271AF8 0026D758 42 00 FE F8 */ bdnz lbl_802719F0 lbl_80271AFC: /* 80271AFC 0026D75C 3C 80 80 00 */ lis r4, 0x800000E0@ha /* 80271B00 0026D760 80 A4 00 E0 */ lwz r5, 0x800000E0@l(r4) /* 80271B04 0026D764 2C 05 00 00 */ cmpwi r5, 0 /* 80271B08 0026D768 40 82 00 0C */ bne lbl_80271B14 /* 80271B0C 0026D76C 93 E4 00 DC */ stw r31, 0xdc(r4) /* 80271B10 0026D770 48 00 00 08 */ b lbl_80271B18 lbl_80271B14: /* 80271B14 0026D774 93 E5 02 FC */ stw r31, 0x2fc(r5) lbl_80271B18: /* 80271B18 0026D778 38 00 00 00 */ li r0, 0 /* 80271B1C 0026D77C 90 BF 03 00 */ stw r5, 0x300(r31) /* 80271B20 0026D780 3C 80 80 00 */ lis r4, 0x800000E0@ha /* 80271B24 0026D784 90 1F 02 FC */ stw r0, 0x2fc(r31) /* 80271B28 0026D788 93 E4 00 E0 */ stw r31, 0x800000E0@l(r4) /* 80271B2C 0026D78C 4B FF CC 59 */ bl OSRestoreInterrupts /* 80271B30 0026D790 38 60 00 01 */ li r3, 1 lbl_80271B34: /* 80271B34 0026D794 39 61 00 20 */ addi r11, r1, 0x20 /* 80271B38 0026D798 4B F5 56 39 */ bl _restgpr_26 /* 80271B3C 0026D79C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80271B40 0026D7A0 7C 08 03 A6 */ mtlr r0 /* 80271B44 0026D7A4 38 21 00 20 */ addi r1, r1, 0x20 /* 80271B48 0026D7A8 4E 80 00 20 */ blr .global OSExitThread OSExitThread: /* 80271B4C 0026D7AC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80271B50 0026D7B0 7C 08 02 A6 */ mflr r0 /* 80271B54 0026D7B4 90 01 00 24 */ stw r0, 0x24(r1) /* 80271B58 0026D7B8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80271B5C 0026D7BC 93 C1 00 18 */ stw r30, 0x18(r1) /* 80271B60 0026D7C0 93 A1 00 14 */ stw r29, 0x14(r1) /* 80271B64 0026D7C4 93 81 00 10 */ stw r28, 0x10(r1) /* 80271B68 0026D7C8 7C 7C 1B 78 */ mr r28, r3 /* 80271B6C 0026D7CC 4B FF CB F1 */ bl OSDisableInterrupts /* 80271B70 0026D7D0 3F E0 80 00 */ lis r31, 0x800000E4@ha /* 80271B74 0026D7D4 7C 7D 1B 78 */ mr r29, r3 /* 80271B78 0026D7D8 83 DF 00 E4 */ lwz r30, 0x800000E4@l(r31) /* 80271B7C 0026D7DC 7F C3 F3 78 */ mr r3, r30 /* 80271B80 0026D7E0 4B FF 95 11 */ bl OSClearContext /* 80271B84 0026D7E4 A0 1E 02 CA */ lhz r0, 0x2ca(r30) /* 80271B88 0026D7E8 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80271B8C 0026D7EC 41 82 00 44 */ beq lbl_80271BD0 /* 80271B90 0026D7F0 80 9E 02 FC */ lwz r4, 0x2fc(r30) /* 80271B94 0026D7F4 80 7E 03 00 */ lwz r3, 0x300(r30) /* 80271B98 0026D7F8 2C 04 00 00 */ cmpwi r4, 0 /* 80271B9C 0026D7FC 40 82 00 0C */ bne lbl_80271BA8 /* 80271BA0 0026D800 90 7F 00 E0 */ stw r3, 0xe0(r31) /* 80271BA4 0026D804 48 00 00 08 */ b lbl_80271BAC lbl_80271BA8: /* 80271BA8 0026D808 90 64 03 00 */ stw r3, 0x300(r4) lbl_80271BAC: /* 80271BAC 0026D80C 2C 03 00 00 */ cmpwi r3, 0 /* 80271BB0 0026D810 40 82 00 10 */ bne lbl_80271BC0 /* 80271BB4 0026D814 3C 60 80 00 */ lis r3, 0x800000DC@ha /* 80271BB8 0026D818 90 83 00 DC */ stw r4, 0x800000DC@l(r3) /* 80271BBC 0026D81C 48 00 00 08 */ b lbl_80271BC4 lbl_80271BC0: /* 80271BC0 0026D820 90 83 02 FC */ stw r4, 0x2fc(r3) lbl_80271BC4: /* 80271BC4 0026D824 38 00 00 00 */ li r0, 0 /* 80271BC8 0026D828 B0 1E 02 C8 */ sth r0, 0x2c8(r30) /* 80271BCC 0026D82C 48 00 00 10 */ b lbl_80271BDC lbl_80271BD0: /* 80271BD0 0026D830 38 00 00 08 */ li r0, 8 /* 80271BD4 0026D834 B0 1E 02 C8 */ sth r0, 0x2c8(r30) /* 80271BD8 0026D838 93 9E 02 D8 */ stw r28, 0x2d8(r30) lbl_80271BDC: /* 80271BDC 0026D83C 7F C3 F3 78 */ mr r3, r30 /* 80271BE0 0026D840 4B FF DF 0D */ bl __OSUnlockAllMutex /* 80271BE4 0026D844 38 7E 02 E8 */ addi r3, r30, 0x2e8 /* 80271BE8 0026D848 48 00 08 79 */ bl OSWakeupThread /* 80271BEC 0026D84C 38 00 00 01 */ li r0, 1 /* 80271BF0 0026D850 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 80271BF4 0026D854 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 80271BF8 0026D858 2C 00 00 00 */ cmpwi r0, 0 /* 80271BFC 0026D85C 41 82 00 0C */ beq lbl_80271C08 /* 80271C00 0026D860 38 60 00 00 */ li r3, 0 /* 80271C04 0026D864 4B FF FA 61 */ bl SelectThread lbl_80271C08: /* 80271C08 0026D868 7F A3 EB 78 */ mr r3, r29 /* 80271C0C 0026D86C 4B FF CB 79 */ bl OSRestoreInterrupts /* 80271C10 0026D870 80 01 00 24 */ lwz r0, 0x24(r1) /* 80271C14 0026D874 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80271C18 0026D878 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80271C1C 0026D87C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80271C20 0026D880 83 81 00 10 */ lwz r28, 0x10(r1) /* 80271C24 0026D884 7C 08 03 A6 */ mtlr r0 /* 80271C28 0026D888 38 21 00 20 */ addi r1, r1, 0x20 /* 80271C2C 0026D88C 4E 80 00 20 */ blr .global OSCancelThread OSCancelThread: /* 80271C30 0026D890 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80271C34 0026D894 7C 08 02 A6 */ mflr r0 /* 80271C38 0026D898 90 01 00 14 */ stw r0, 0x14(r1) /* 80271C3C 0026D89C 93 E1 00 0C */ stw r31, 0xc(r1) /* 80271C40 0026D8A0 93 C1 00 08 */ stw r30, 8(r1) /* 80271C44 0026D8A4 7C 7E 1B 78 */ mr r30, r3 /* 80271C48 0026D8A8 4B FF CB 15 */ bl OSDisableInterrupts /* 80271C4C 0026D8AC A0 1E 02 C8 */ lhz r0, 0x2c8(r30) /* 80271C50 0026D8B0 7C 7F 1B 78 */ mr r31, r3 /* 80271C54 0026D8B4 2C 00 00 03 */ cmpwi r0, 3 /* 80271C58 0026D8B8 41 82 01 00 */ beq lbl_80271D58 /* 80271C5C 0026D8BC 40 80 00 14 */ bge lbl_80271C70 /* 80271C60 0026D8C0 2C 00 00 01 */ cmpwi r0, 1 /* 80271C64 0026D8C4 41 82 00 18 */ beq lbl_80271C7C /* 80271C68 0026D8C8 40 80 00 2C */ bge lbl_80271C94 /* 80271C6C 0026D8CC 48 00 00 EC */ b lbl_80271D58 lbl_80271C70: /* 80271C70 0026D8D0 2C 00 00 05 */ cmpwi r0, 5 /* 80271C74 0026D8D4 40 80 00 E4 */ bge lbl_80271D58 /* 80271C78 0026D8D8 48 00 00 28 */ b lbl_80271CA0 lbl_80271C7C: /* 80271C7C 0026D8DC 80 1E 02 CC */ lwz r0, 0x2cc(r30) /* 80271C80 0026D8E0 2C 00 00 00 */ cmpwi r0, 0 /* 80271C84 0026D8E4 41 81 00 E0 */ bgt lbl_80271D64 /* 80271C88 0026D8E8 7F C3 F3 78 */ mr r3, r30 /* 80271C8C 0026D8EC 4B FF F7 31 */ bl UnsetRun /* 80271C90 0026D8F0 48 00 00 D4 */ b lbl_80271D64 lbl_80271C94: /* 80271C94 0026D8F4 38 00 00 01 */ li r0, 1 /* 80271C98 0026D8F8 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 80271C9C 0026D8FC 48 00 00 C8 */ b lbl_80271D64 lbl_80271CA0: /* 80271CA0 0026D900 80 9E 02 E0 */ lwz r4, 0x2e0(r30) /* 80271CA4 0026D904 80 BE 02 E4 */ lwz r5, 0x2e4(r30) /* 80271CA8 0026D908 2C 04 00 00 */ cmpwi r4, 0 /* 80271CAC 0026D90C 40 82 00 10 */ bne lbl_80271CBC /* 80271CB0 0026D910 80 7E 02 DC */ lwz r3, 0x2dc(r30) /* 80271CB4 0026D914 90 A3 00 04 */ stw r5, 4(r3) /* 80271CB8 0026D918 48 00 00 08 */ b lbl_80271CC0 lbl_80271CBC: /* 80271CBC 0026D91C 90 A4 02 E4 */ stw r5, 0x2e4(r4) lbl_80271CC0: /* 80271CC0 0026D920 2C 05 00 00 */ cmpwi r5, 0 /* 80271CC4 0026D924 40 82 00 10 */ bne lbl_80271CD4 /* 80271CC8 0026D928 80 7E 02 DC */ lwz r3, 0x2dc(r30) /* 80271CCC 0026D92C 90 83 00 00 */ stw r4, 0(r3) /* 80271CD0 0026D930 48 00 00 08 */ b lbl_80271CD8 lbl_80271CD4: /* 80271CD4 0026D934 90 85 02 E0 */ stw r4, 0x2e0(r5) lbl_80271CD8: /* 80271CD8 0026D938 80 1E 02 CC */ lwz r0, 0x2cc(r30) /* 80271CDC 0026D93C 38 60 00 00 */ li r3, 0 /* 80271CE0 0026D940 90 7E 02 DC */ stw r3, 0x2dc(r30) /* 80271CE4 0026D944 2C 00 00 00 */ cmpwi r0, 0 /* 80271CE8 0026D948 41 81 00 7C */ bgt lbl_80271D64 /* 80271CEC 0026D94C 80 7E 02 F0 */ lwz r3, 0x2f0(r30) /* 80271CF0 0026D950 2C 03 00 00 */ cmpwi r3, 0 /* 80271CF4 0026D954 41 82 00 70 */ beq lbl_80271D64 /* 80271CF8 0026D958 80 63 00 08 */ lwz r3, 8(r3) lbl_80271CFC: /* 80271CFC 0026D95C 80 03 02 CC */ lwz r0, 0x2cc(r3) /* 80271D00 0026D960 2C 00 00 00 */ cmpwi r0, 0 /* 80271D04 0026D964 41 81 00 60 */ bgt lbl_80271D64 /* 80271D08 0026D968 80 83 02 D4 */ lwz r4, 0x2d4(r3) /* 80271D0C 0026D96C 80 A3 02 F4 */ lwz r5, 0x2f4(r3) /* 80271D10 0026D970 48 00 00 24 */ b lbl_80271D34 lbl_80271D14: /* 80271D14 0026D974 80 C5 00 00 */ lwz r6, 0(r5) /* 80271D18 0026D978 2C 06 00 00 */ cmpwi r6, 0 /* 80271D1C 0026D97C 41 82 00 14 */ beq lbl_80271D30 /* 80271D20 0026D980 80 06 02 D0 */ lwz r0, 0x2d0(r6) /* 80271D24 0026D984 7C 00 20 00 */ cmpw r0, r4 /* 80271D28 0026D988 40 80 00 08 */ bge lbl_80271D30 /* 80271D2C 0026D98C 7C 04 03 78 */ mr r4, r0 lbl_80271D30: /* 80271D30 0026D990 80 A5 00 10 */ lwz r5, 0x10(r5) lbl_80271D34: /* 80271D34 0026D994 2C 05 00 00 */ cmpwi r5, 0 /* 80271D38 0026D998 40 82 FF DC */ bne lbl_80271D14 /* 80271D3C 0026D99C 80 03 02 D0 */ lwz r0, 0x2d0(r3) /* 80271D40 0026D9A0 7C 00 20 00 */ cmpw r0, r4 /* 80271D44 0026D9A4 41 82 00 20 */ beq lbl_80271D64 /* 80271D48 0026D9A8 4B FF F7 19 */ bl SetEffectivePriority /* 80271D4C 0026D9AC 2C 03 00 00 */ cmpwi r3, 0 /* 80271D50 0026D9B0 40 82 FF AC */ bne lbl_80271CFC /* 80271D54 0026D9B4 48 00 00 10 */ b lbl_80271D64 lbl_80271D58: /* 80271D58 0026D9B8 7F E3 FB 78 */ mr r3, r31 /* 80271D5C 0026D9BC 4B FF CA 29 */ bl OSRestoreInterrupts /* 80271D60 0026D9C0 48 00 00 90 */ b lbl_80271DF0 lbl_80271D64: /* 80271D64 0026D9C4 7F C3 F3 78 */ mr r3, r30 /* 80271D68 0026D9C8 4B FF 93 29 */ bl OSClearContext /* 80271D6C 0026D9CC A0 1E 02 CA */ lhz r0, 0x2ca(r30) /* 80271D70 0026D9D0 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80271D74 0026D9D4 41 82 00 48 */ beq lbl_80271DBC /* 80271D78 0026D9D8 80 9E 02 FC */ lwz r4, 0x2fc(r30) /* 80271D7C 0026D9DC 80 BE 03 00 */ lwz r5, 0x300(r30) /* 80271D80 0026D9E0 2C 04 00 00 */ cmpwi r4, 0 /* 80271D84 0026D9E4 40 82 00 10 */ bne lbl_80271D94 /* 80271D88 0026D9E8 3C 60 80 00 */ lis r3, 0x800000E0@ha /* 80271D8C 0026D9EC 90 A3 00 E0 */ stw r5, 0x800000E0@l(r3) /* 80271D90 0026D9F0 48 00 00 08 */ b lbl_80271D98 lbl_80271D94: /* 80271D94 0026D9F4 90 A4 03 00 */ stw r5, 0x300(r4) lbl_80271D98: /* 80271D98 0026D9F8 2C 05 00 00 */ cmpwi r5, 0 /* 80271D9C 0026D9FC 40 82 00 10 */ bne lbl_80271DAC /* 80271DA0 0026DA00 3C 60 80 00 */ lis r3, 0x800000DC@ha /* 80271DA4 0026DA04 90 83 00 DC */ stw r4, 0x800000DC@l(r3) /* 80271DA8 0026DA08 48 00 00 08 */ b lbl_80271DB0 lbl_80271DAC: /* 80271DAC 0026DA0C 90 85 02 FC */ stw r4, 0x2fc(r5) lbl_80271DB0: /* 80271DB0 0026DA10 38 00 00 00 */ li r0, 0 /* 80271DB4 0026DA14 B0 1E 02 C8 */ sth r0, 0x2c8(r30) /* 80271DB8 0026DA18 48 00 00 0C */ b lbl_80271DC4 lbl_80271DBC: /* 80271DBC 0026DA1C 38 00 00 08 */ li r0, 8 /* 80271DC0 0026DA20 B0 1E 02 C8 */ sth r0, 0x2c8(r30) lbl_80271DC4: /* 80271DC4 0026DA24 7F C3 F3 78 */ mr r3, r30 /* 80271DC8 0026DA28 4B FF DD 25 */ bl __OSUnlockAllMutex /* 80271DCC 0026DA2C 38 7E 02 E8 */ addi r3, r30, 0x2e8 /* 80271DD0 0026DA30 48 00 06 91 */ bl OSWakeupThread /* 80271DD4 0026DA34 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 80271DD8 0026DA38 2C 00 00 00 */ cmpwi r0, 0 /* 80271DDC 0026DA3C 41 82 00 0C */ beq lbl_80271DE8 /* 80271DE0 0026DA40 38 60 00 00 */ li r3, 0 /* 80271DE4 0026DA44 4B FF F8 81 */ bl SelectThread lbl_80271DE8: /* 80271DE8 0026DA48 7F E3 FB 78 */ mr r3, r31 /* 80271DEC 0026DA4C 4B FF C9 99 */ bl OSRestoreInterrupts lbl_80271DF0: /* 80271DF0 0026DA50 80 01 00 14 */ lwz r0, 0x14(r1) /* 80271DF4 0026DA54 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80271DF8 0026DA58 83 C1 00 08 */ lwz r30, 8(r1) /* 80271DFC 0026DA5C 7C 08 03 A6 */ mtlr r0 /* 80271E00 0026DA60 38 21 00 10 */ addi r1, r1, 0x10 /* 80271E04 0026DA64 4E 80 00 20 */ blr .global OSJoinThread OSJoinThread: /* 80271E08 0026DA68 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80271E0C 0026DA6C 7C 08 02 A6 */ mflr r0 /* 80271E10 0026DA70 90 01 00 24 */ stw r0, 0x24(r1) /* 80271E14 0026DA74 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80271E18 0026DA78 7C 7F 1B 78 */ mr r31, r3 /* 80271E1C 0026DA7C 93 C1 00 18 */ stw r30, 0x18(r1) /* 80271E20 0026DA80 93 A1 00 14 */ stw r29, 0x14(r1) /* 80271E24 0026DA84 7C 9D 23 78 */ mr r29, r4 /* 80271E28 0026DA88 4B FF C9 35 */ bl OSDisableInterrupts /* 80271E2C 0026DA8C A0 1F 02 CA */ lhz r0, 0x2ca(r31) /* 80271E30 0026DA90 7C 7E 1B 78 */ mr r30, r3 /* 80271E34 0026DA94 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80271E38 0026DA98 40 82 00 7C */ bne lbl_80271EB4 /* 80271E3C 0026DA9C A0 1F 02 C8 */ lhz r0, 0x2c8(r31) /* 80271E40 0026DAA0 28 00 00 08 */ cmplwi r0, 8 /* 80271E44 0026DAA4 41 82 00 70 */ beq lbl_80271EB4 /* 80271E48 0026DAA8 80 1F 02 E8 */ lwz r0, 0x2e8(r31) /* 80271E4C 0026DAAC 2C 00 00 00 */ cmpwi r0, 0 /* 80271E50 0026DAB0 40 82 00 64 */ bne lbl_80271EB4 /* 80271E54 0026DAB4 38 7F 02 E8 */ addi r3, r31, 0x2e8 /* 80271E58 0026DAB8 48 00 05 1D */ bl OSSleepThread /* 80271E5C 0026DABC A0 1F 02 C8 */ lhz r0, 0x2c8(r31) /* 80271E60 0026DAC0 2C 00 00 00 */ cmpwi r0, 0 /* 80271E64 0026DAC4 40 82 00 0C */ bne lbl_80271E70 /* 80271E68 0026DAC8 38 00 00 00 */ li r0, 0 /* 80271E6C 0026DACC 48 00 00 30 */ b lbl_80271E9C lbl_80271E70: /* 80271E70 0026DAD0 3C 60 80 00 */ lis r3, 0x800000DC@ha /* 80271E74 0026DAD4 80 63 00 DC */ lwz r3, 0x800000DC@l(r3) /* 80271E78 0026DAD8 48 00 00 18 */ b lbl_80271E90 lbl_80271E7C: /* 80271E7C 0026DADC 7C 1F 18 40 */ cmplw r31, r3 /* 80271E80 0026DAE0 40 82 00 0C */ bne lbl_80271E8C /* 80271E84 0026DAE4 38 00 00 01 */ li r0, 1 /* 80271E88 0026DAE8 48 00 00 14 */ b lbl_80271E9C lbl_80271E8C: /* 80271E8C 0026DAEC 80 63 02 FC */ lwz r3, 0x2fc(r3) lbl_80271E90: /* 80271E90 0026DAF0 2C 03 00 00 */ cmpwi r3, 0 /* 80271E94 0026DAF4 40 82 FF E8 */ bne lbl_80271E7C /* 80271E98 0026DAF8 38 00 00 00 */ li r0, 0 lbl_80271E9C: /* 80271E9C 0026DAFC 2C 00 00 00 */ cmpwi r0, 0 /* 80271EA0 0026DB00 40 82 00 14 */ bne lbl_80271EB4 /* 80271EA4 0026DB04 7F C3 F3 78 */ mr r3, r30 /* 80271EA8 0026DB08 4B FF C8 DD */ bl OSRestoreInterrupts /* 80271EAC 0026DB0C 38 60 00 00 */ li r3, 0 /* 80271EB0 0026DB10 48 00 00 7C */ b lbl_80271F2C lbl_80271EB4: /* 80271EB4 0026DB14 A0 1F 02 C8 */ lhz r0, 0x2c8(r31) /* 80271EB8 0026DB18 28 00 00 08 */ cmplwi r0, 8 /* 80271EBC 0026DB1C 40 82 00 64 */ bne lbl_80271F20 /* 80271EC0 0026DB20 2C 1D 00 00 */ cmpwi r29, 0 /* 80271EC4 0026DB24 41 82 00 0C */ beq lbl_80271ED0 /* 80271EC8 0026DB28 80 1F 02 D8 */ lwz r0, 0x2d8(r31) /* 80271ECC 0026DB2C 90 1D 00 00 */ stw r0, 0(r29) lbl_80271ED0: /* 80271ED0 0026DB30 80 9F 02 FC */ lwz r4, 0x2fc(r31) /* 80271ED4 0026DB34 80 BF 03 00 */ lwz r5, 0x300(r31) /* 80271ED8 0026DB38 2C 04 00 00 */ cmpwi r4, 0 /* 80271EDC 0026DB3C 40 82 00 10 */ bne lbl_80271EEC /* 80271EE0 0026DB40 3C 60 80 00 */ lis r3, 0x800000E0@ha /* 80271EE4 0026DB44 90 A3 00 E0 */ stw r5, 0x800000E0@l(r3) /* 80271EE8 0026DB48 48 00 00 08 */ b lbl_80271EF0 lbl_80271EEC: /* 80271EEC 0026DB4C 90 A4 03 00 */ stw r5, 0x300(r4) lbl_80271EF0: /* 80271EF0 0026DB50 2C 05 00 00 */ cmpwi r5, 0 /* 80271EF4 0026DB54 40 82 00 10 */ bne lbl_80271F04 /* 80271EF8 0026DB58 3C 60 80 00 */ lis r3, 0x800000DC@ha /* 80271EFC 0026DB5C 90 83 00 DC */ stw r4, 0x800000DC@l(r3) /* 80271F00 0026DB60 48 00 00 08 */ b lbl_80271F08 lbl_80271F04: /* 80271F04 0026DB64 90 85 02 FC */ stw r4, 0x2fc(r5) lbl_80271F08: /* 80271F08 0026DB68 38 00 00 00 */ li r0, 0 /* 80271F0C 0026DB6C 7F C3 F3 78 */ mr r3, r30 /* 80271F10 0026DB70 B0 1F 02 C8 */ sth r0, 0x2c8(r31) /* 80271F14 0026DB74 4B FF C8 71 */ bl OSRestoreInterrupts /* 80271F18 0026DB78 38 60 00 01 */ li r3, 1 /* 80271F1C 0026DB7C 48 00 00 10 */ b lbl_80271F2C lbl_80271F20: /* 80271F20 0026DB80 7F C3 F3 78 */ mr r3, r30 /* 80271F24 0026DB84 4B FF C8 61 */ bl OSRestoreInterrupts /* 80271F28 0026DB88 38 60 00 00 */ li r3, 0 lbl_80271F2C: /* 80271F2C 0026DB8C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80271F30 0026DB90 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80271F34 0026DB94 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80271F38 0026DB98 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80271F3C 0026DB9C 7C 08 03 A6 */ mtlr r0 /* 80271F40 0026DBA0 38 21 00 20 */ addi r1, r1, 0x20 /* 80271F44 0026DBA4 4E 80 00 20 */ blr .global OSResumeThread OSResumeThread: /* 80271F48 0026DBA8 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80271F4C 0026DBAC 7C 08 02 A6 */ mflr r0 /* 80271F50 0026DBB0 90 01 00 24 */ stw r0, 0x24(r1) /* 80271F54 0026DBB4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80271F58 0026DBB8 93 C1 00 18 */ stw r30, 0x18(r1) /* 80271F5C 0026DBBC 93 A1 00 14 */ stw r29, 0x14(r1) /* 80271F60 0026DBC0 7C 7D 1B 78 */ mr r29, r3 /* 80271F64 0026DBC4 4B FF C7 F9 */ bl OSDisableInterrupts /* 80271F68 0026DBC8 83 DD 02 CC */ lwz r30, 0x2cc(r29) /* 80271F6C 0026DBCC 7C 7F 1B 78 */ mr r31, r3 /* 80271F70 0026DBD0 34 1E FF FF */ addic. r0, r30, -1 /* 80271F74 0026DBD4 90 1D 02 CC */ stw r0, 0x2cc(r29) /* 80271F78 0026DBD8 40 80 00 10 */ bge lbl_80271F88 /* 80271F7C 0026DBDC 38 00 00 00 */ li r0, 0 /* 80271F80 0026DBE0 90 1D 02 CC */ stw r0, 0x2cc(r29) /* 80271F84 0026DBE4 48 00 02 34 */ b lbl_802721B8 lbl_80271F88: /* 80271F88 0026DBE8 40 82 02 30 */ bne lbl_802721B8 /* 80271F8C 0026DBEC A0 1D 02 C8 */ lhz r0, 0x2c8(r29) /* 80271F90 0026DBF0 2C 00 00 04 */ cmpwi r0, 4 /* 80271F94 0026DBF4 41 82 00 B0 */ beq lbl_80272044 /* 80271F98 0026DBF8 40 80 02 0C */ bge lbl_802721A4 /* 80271F9C 0026DBFC 2C 00 00 01 */ cmpwi r0, 1 /* 80271FA0 0026DC00 41 82 00 08 */ beq lbl_80271FA8 /* 80271FA4 0026DC04 48 00 02 00 */ b lbl_802721A4 lbl_80271FA8: /* 80271FA8 0026DC08 80 BD 02 D4 */ lwz r5, 0x2d4(r29) /* 80271FAC 0026DC0C 80 9D 02 F4 */ lwz r4, 0x2f4(r29) /* 80271FB0 0026DC10 48 00 00 24 */ b lbl_80271FD4 lbl_80271FB4: /* 80271FB4 0026DC14 80 64 00 00 */ lwz r3, 0(r4) /* 80271FB8 0026DC18 2C 03 00 00 */ cmpwi r3, 0 /* 80271FBC 0026DC1C 41 82 00 14 */ beq lbl_80271FD0 /* 80271FC0 0026DC20 80 03 02 D0 */ lwz r0, 0x2d0(r3) /* 80271FC4 0026DC24 7C 00 28 00 */ cmpw r0, r5 /* 80271FC8 0026DC28 40 80 00 08 */ bge lbl_80271FD0 /* 80271FCC 0026DC2C 7C 05 03 78 */ mr r5, r0 lbl_80271FD0: /* 80271FD0 0026DC30 80 84 00 10 */ lwz r4, 0x10(r4) lbl_80271FD4: /* 80271FD4 0026DC34 2C 04 00 00 */ cmpwi r4, 0 /* 80271FD8 0026DC38 40 82 FF DC */ bne lbl_80271FB4 /* 80271FDC 0026DC3C 3C 60 80 51 */ lis r3, lbl_80514AF0@ha /* 80271FE0 0026DC40 54 A0 18 38 */ slwi r0, r5, 3 /* 80271FE4 0026DC44 38 63 4A F0 */ addi r3, r3, lbl_80514AF0@l /* 80271FE8 0026DC48 90 BD 02 D0 */ stw r5, 0x2d0(r29) /* 80271FEC 0026DC4C 7C 63 02 14 */ add r3, r3, r0 /* 80271FF0 0026DC50 90 7D 02 DC */ stw r3, 0x2dc(r29) /* 80271FF4 0026DC54 80 83 00 04 */ lwz r4, 4(r3) /* 80271FF8 0026DC58 2C 04 00 00 */ cmpwi r4, 0 /* 80271FFC 0026DC5C 40 82 00 0C */ bne lbl_80272008 /* 80272000 0026DC60 93 A3 00 00 */ stw r29, 0(r3) /* 80272004 0026DC64 48 00 00 08 */ b lbl_8027200C lbl_80272008: /* 80272008 0026DC68 93 A4 02 E0 */ stw r29, 0x2e0(r4) lbl_8027200C: /* 8027200C 0026DC6C 38 00 00 00 */ li r0, 0 /* 80272010 0026DC70 90 9D 02 E4 */ stw r4, 0x2e4(r29) /* 80272014 0026DC74 80 9D 02 DC */ lwz r4, 0x2dc(r29) /* 80272018 0026DC78 38 60 00 01 */ li r3, 1 /* 8027201C 0026DC7C 90 1D 02 E0 */ stw r0, 0x2e0(r29) /* 80272020 0026DC80 93 A4 00 04 */ stw r29, 4(r4) /* 80272024 0026DC84 80 1D 02 D0 */ lwz r0, 0x2d0(r29) /* 80272028 0026DC88 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13) /* 8027202C 0026DC8C 20 00 00 1F */ subfic r0, r0, 0x1f /* 80272030 0026DC90 7C 60 00 30 */ slw r0, r3, r0 /* 80272034 0026DC94 7C 80 03 78 */ or r0, r4, r0 /* 80272038 0026DC98 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13) /* 8027203C 0026DC9C 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13) /* 80272040 0026DCA0 48 00 01 64 */ b lbl_802721A4 lbl_80272044: /* 80272044 0026DCA4 80 9D 02 E0 */ lwz r4, 0x2e0(r29) /* 80272048 0026DCA8 80 BD 02 E4 */ lwz r5, 0x2e4(r29) /* 8027204C 0026DCAC 2C 04 00 00 */ cmpwi r4, 0 /* 80272050 0026DCB0 40 82 00 10 */ bne lbl_80272060 /* 80272054 0026DCB4 80 7D 02 DC */ lwz r3, 0x2dc(r29) /* 80272058 0026DCB8 90 A3 00 04 */ stw r5, 4(r3) /* 8027205C 0026DCBC 48 00 00 08 */ b lbl_80272064 lbl_80272060: /* 80272060 0026DCC0 90 A4 02 E4 */ stw r5, 0x2e4(r4) lbl_80272064: /* 80272064 0026DCC4 2C 05 00 00 */ cmpwi r5, 0 /* 80272068 0026DCC8 40 82 00 10 */ bne lbl_80272078 /* 8027206C 0026DCCC 80 7D 02 DC */ lwz r3, 0x2dc(r29) /* 80272070 0026DCD0 90 83 00 00 */ stw r4, 0(r3) /* 80272074 0026DCD4 48 00 00 08 */ b lbl_8027207C lbl_80272078: /* 80272078 0026DCD8 90 85 02 E0 */ stw r4, 0x2e0(r5) lbl_8027207C: /* 8027207C 0026DCDC 80 1D 02 D4 */ lwz r0, 0x2d4(r29) /* 80272080 0026DCE0 80 9D 02 F4 */ lwz r4, 0x2f4(r29) /* 80272084 0026DCE4 48 00 00 24 */ b lbl_802720A8 lbl_80272088: /* 80272088 0026DCE8 80 64 00 00 */ lwz r3, 0(r4) /* 8027208C 0026DCEC 2C 03 00 00 */ cmpwi r3, 0 /* 80272090 0026DCF0 41 82 00 14 */ beq lbl_802720A4 /* 80272094 0026DCF4 80 63 02 D0 */ lwz r3, 0x2d0(r3) /* 80272098 0026DCF8 7C 03 00 00 */ cmpw r3, r0 /* 8027209C 0026DCFC 40 80 00 08 */ bge lbl_802720A4 /* 802720A0 0026DD00 7C 60 1B 78 */ mr r0, r3 lbl_802720A4: /* 802720A4 0026DD04 80 84 00 10 */ lwz r4, 0x10(r4) lbl_802720A8: /* 802720A8 0026DD08 2C 04 00 00 */ cmpwi r4, 0 /* 802720AC 0026DD0C 40 82 FF DC */ bne lbl_80272088 /* 802720B0 0026DD10 90 1D 02 D0 */ stw r0, 0x2d0(r29) /* 802720B4 0026DD14 80 9D 02 DC */ lwz r4, 0x2dc(r29) /* 802720B8 0026DD18 80 A4 00 00 */ lwz r5, 0(r4) /* 802720BC 0026DD1C 48 00 00 08 */ b lbl_802720C4 lbl_802720C0: /* 802720C0 0026DD20 80 A5 02 E0 */ lwz r5, 0x2e0(r5) lbl_802720C4: /* 802720C4 0026DD24 2C 05 00 00 */ cmpwi r5, 0 /* 802720C8 0026DD28 41 82 00 14 */ beq lbl_802720DC /* 802720CC 0026DD2C 80 65 02 D0 */ lwz r3, 0x2d0(r5) /* 802720D0 0026DD30 80 1D 02 D0 */ lwz r0, 0x2d0(r29) /* 802720D4 0026DD34 7C 03 00 00 */ cmpw r3, r0 /* 802720D8 0026DD38 40 81 FF E8 */ ble lbl_802720C0 lbl_802720DC: /* 802720DC 0026DD3C 2C 05 00 00 */ cmpwi r5, 0 /* 802720E0 0026DD40 40 82 00 34 */ bne lbl_80272114 /* 802720E4 0026DD44 80 64 00 04 */ lwz r3, 4(r4) /* 802720E8 0026DD48 2C 03 00 00 */ cmpwi r3, 0 /* 802720EC 0026DD4C 40 82 00 0C */ bne lbl_802720F8 /* 802720F0 0026DD50 93 A4 00 00 */ stw r29, 0(r4) /* 802720F4 0026DD54 48 00 00 08 */ b lbl_802720FC lbl_802720F8: /* 802720F8 0026DD58 93 A3 02 E0 */ stw r29, 0x2e0(r3) lbl_802720FC: /* 802720FC 0026DD5C 38 00 00 00 */ li r0, 0 /* 80272100 0026DD60 90 7D 02 E4 */ stw r3, 0x2e4(r29) /* 80272104 0026DD64 80 7D 02 DC */ lwz r3, 0x2dc(r29) /* 80272108 0026DD68 90 1D 02 E0 */ stw r0, 0x2e0(r29) /* 8027210C 0026DD6C 93 A3 00 04 */ stw r29, 4(r3) /* 80272110 0026DD70 48 00 00 2C */ b lbl_8027213C lbl_80272114: /* 80272114 0026DD74 90 BD 02 E0 */ stw r5, 0x2e0(r29) /* 80272118 0026DD78 80 65 02 E4 */ lwz r3, 0x2e4(r5) /* 8027211C 0026DD7C 93 A5 02 E4 */ stw r29, 0x2e4(r5) /* 80272120 0026DD80 2C 03 00 00 */ cmpwi r3, 0 /* 80272124 0026DD84 90 7D 02 E4 */ stw r3, 0x2e4(r29) /* 80272128 0026DD88 40 82 00 10 */ bne lbl_80272138 /* 8027212C 0026DD8C 80 7D 02 DC */ lwz r3, 0x2dc(r29) /* 80272130 0026DD90 93 A3 00 00 */ stw r29, 0(r3) /* 80272134 0026DD94 48 00 00 08 */ b lbl_8027213C lbl_80272138: /* 80272138 0026DD98 93 A3 02 E0 */ stw r29, 0x2e0(r3) lbl_8027213C: /* 8027213C 0026DD9C 80 7D 02 F0 */ lwz r3, 0x2f0(r29) /* 80272140 0026DDA0 2C 03 00 00 */ cmpwi r3, 0 /* 80272144 0026DDA4 41 82 00 60 */ beq lbl_802721A4 /* 80272148 0026DDA8 80 63 00 08 */ lwz r3, 8(r3) lbl_8027214C: /* 8027214C 0026DDAC 80 03 02 CC */ lwz r0, 0x2cc(r3) /* 80272150 0026DDB0 2C 00 00 00 */ cmpwi r0, 0 /* 80272154 0026DDB4 41 81 00 50 */ bgt lbl_802721A4 /* 80272158 0026DDB8 80 83 02 D4 */ lwz r4, 0x2d4(r3) /* 8027215C 0026DDBC 80 A3 02 F4 */ lwz r5, 0x2f4(r3) /* 80272160 0026DDC0 48 00 00 24 */ b lbl_80272184 lbl_80272164: /* 80272164 0026DDC4 80 C5 00 00 */ lwz r6, 0(r5) /* 80272168 0026DDC8 2C 06 00 00 */ cmpwi r6, 0 /* 8027216C 0026DDCC 41 82 00 14 */ beq lbl_80272180 /* 80272170 0026DDD0 80 06 02 D0 */ lwz r0, 0x2d0(r6) /* 80272174 0026DDD4 7C 00 20 00 */ cmpw r0, r4 /* 80272178 0026DDD8 40 80 00 08 */ bge lbl_80272180 /* 8027217C 0026DDDC 7C 04 03 78 */ mr r4, r0 lbl_80272180: /* 80272180 0026DDE0 80 A5 00 10 */ lwz r5, 0x10(r5) lbl_80272184: /* 80272184 0026DDE4 2C 05 00 00 */ cmpwi r5, 0 /* 80272188 0026DDE8 40 82 FF DC */ bne lbl_80272164 /* 8027218C 0026DDEC 80 03 02 D0 */ lwz r0, 0x2d0(r3) /* 80272190 0026DDF0 7C 00 20 00 */ cmpw r0, r4 /* 80272194 0026DDF4 41 82 00 10 */ beq lbl_802721A4 /* 80272198 0026DDF8 4B FF F2 C9 */ bl SetEffectivePriority /* 8027219C 0026DDFC 2C 03 00 00 */ cmpwi r3, 0 /* 802721A0 0026DE00 40 82 FF AC */ bne lbl_8027214C lbl_802721A4: /* 802721A4 0026DE04 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 802721A8 0026DE08 2C 00 00 00 */ cmpwi r0, 0 /* 802721AC 0026DE0C 41 82 00 0C */ beq lbl_802721B8 /* 802721B0 0026DE10 38 60 00 00 */ li r3, 0 /* 802721B4 0026DE14 4B FF F4 B1 */ bl SelectThread lbl_802721B8: /* 802721B8 0026DE18 7F E3 FB 78 */ mr r3, r31 /* 802721BC 0026DE1C 4B FF C5 C9 */ bl OSRestoreInterrupts /* 802721C0 0026DE20 7F C3 F3 78 */ mr r3, r30 /* 802721C4 0026DE24 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802721C8 0026DE28 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802721CC 0026DE2C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802721D0 0026DE30 80 01 00 24 */ lwz r0, 0x24(r1) /* 802721D4 0026DE34 7C 08 03 A6 */ mtlr r0 /* 802721D8 0026DE38 38 21 00 20 */ addi r1, r1, 0x20 /* 802721DC 0026DE3C 4E 80 00 20 */ blr .global OSSuspendThread OSSuspendThread: /* 802721E0 0026DE40 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802721E4 0026DE44 7C 08 02 A6 */ mflr r0 /* 802721E8 0026DE48 90 01 00 24 */ stw r0, 0x24(r1) /* 802721EC 0026DE4C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802721F0 0026DE50 93 C1 00 18 */ stw r30, 0x18(r1) /* 802721F4 0026DE54 93 A1 00 14 */ stw r29, 0x14(r1) /* 802721F8 0026DE58 7C 7D 1B 78 */ mr r29, r3 /* 802721FC 0026DE5C 4B FF C5 61 */ bl OSDisableInterrupts /* 80272200 0026DE60 83 DD 02 CC */ lwz r30, 0x2cc(r29) /* 80272204 0026DE64 7C 7F 1B 78 */ mr r31, r3 /* 80272208 0026DE68 38 1E 00 01 */ addi r0, r30, 1 /* 8027220C 0026DE6C 2C 1E 00 00 */ cmpwi r30, 0 /* 80272210 0026DE70 90 1D 02 CC */ stw r0, 0x2cc(r29) /* 80272214 0026DE74 40 82 01 38 */ bne lbl_8027234C /* 80272218 0026DE78 A0 1D 02 C8 */ lhz r0, 0x2c8(r29) /* 8027221C 0026DE7C 2C 00 00 03 */ cmpwi r0, 3 /* 80272220 0026DE80 41 82 01 18 */ beq lbl_80272338 /* 80272224 0026DE84 40 80 00 14 */ bge lbl_80272238 /* 80272228 0026DE88 2C 00 00 01 */ cmpwi r0, 1 /* 8027222C 0026DE8C 41 82 00 28 */ beq lbl_80272254 /* 80272230 0026DE90 40 80 00 14 */ bge lbl_80272244 /* 80272234 0026DE94 48 00 01 04 */ b lbl_80272338 lbl_80272238: /* 80272238 0026DE98 2C 00 00 05 */ cmpwi r0, 5 /* 8027223C 0026DE9C 40 80 00 FC */ bge lbl_80272338 /* 80272240 0026DEA0 48 00 00 20 */ b lbl_80272260 lbl_80272244: /* 80272244 0026DEA4 38 00 00 01 */ li r0, 1 /* 80272248 0026DEA8 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 8027224C 0026DEAC B0 1D 02 C8 */ sth r0, 0x2c8(r29) /* 80272250 0026DEB0 48 00 00 E8 */ b lbl_80272338 lbl_80272254: /* 80272254 0026DEB4 7F A3 EB 78 */ mr r3, r29 /* 80272258 0026DEB8 4B FF F1 65 */ bl UnsetRun /* 8027225C 0026DEBC 48 00 00 DC */ b lbl_80272338 lbl_80272260: /* 80272260 0026DEC0 80 9D 02 E0 */ lwz r4, 0x2e0(r29) /* 80272264 0026DEC4 80 BD 02 E4 */ lwz r5, 0x2e4(r29) /* 80272268 0026DEC8 2C 04 00 00 */ cmpwi r4, 0 /* 8027226C 0026DECC 40 82 00 10 */ bne lbl_8027227C /* 80272270 0026DED0 80 7D 02 DC */ lwz r3, 0x2dc(r29) /* 80272274 0026DED4 90 A3 00 04 */ stw r5, 4(r3) /* 80272278 0026DED8 48 00 00 08 */ b lbl_80272280 lbl_8027227C: /* 8027227C 0026DEDC 90 A4 02 E4 */ stw r5, 0x2e4(r4) lbl_80272280: /* 80272280 0026DEE0 2C 05 00 00 */ cmpwi r5, 0 /* 80272284 0026DEE4 40 82 00 10 */ bne lbl_80272294 /* 80272288 0026DEE8 80 7D 02 DC */ lwz r3, 0x2dc(r29) /* 8027228C 0026DEEC 90 83 00 00 */ stw r4, 0(r3) /* 80272290 0026DEF0 48 00 00 08 */ b lbl_80272298 lbl_80272294: /* 80272294 0026DEF4 90 85 02 E0 */ stw r4, 0x2e0(r5) lbl_80272298: /* 80272298 0026DEF8 38 00 00 20 */ li r0, 0x20 /* 8027229C 0026DEFC 80 7D 02 DC */ lwz r3, 0x2dc(r29) /* 802722A0 0026DF00 90 1D 02 D0 */ stw r0, 0x2d0(r29) /* 802722A4 0026DF04 80 83 00 04 */ lwz r4, 4(r3) /* 802722A8 0026DF08 2C 04 00 00 */ cmpwi r4, 0 /* 802722AC 0026DF0C 40 82 00 0C */ bne lbl_802722B8 /* 802722B0 0026DF10 93 A3 00 00 */ stw r29, 0(r3) /* 802722B4 0026DF14 48 00 00 08 */ b lbl_802722BC lbl_802722B8: /* 802722B8 0026DF18 93 A4 02 E0 */ stw r29, 0x2e0(r4) lbl_802722BC: /* 802722BC 0026DF1C 38 00 00 00 */ li r0, 0 /* 802722C0 0026DF20 90 9D 02 E4 */ stw r4, 0x2e4(r29) /* 802722C4 0026DF24 80 7D 02 DC */ lwz r3, 0x2dc(r29) /* 802722C8 0026DF28 90 1D 02 E0 */ stw r0, 0x2e0(r29) /* 802722CC 0026DF2C 93 A3 00 04 */ stw r29, 4(r3) /* 802722D0 0026DF30 80 7D 02 F0 */ lwz r3, 0x2f0(r29) /* 802722D4 0026DF34 2C 03 00 00 */ cmpwi r3, 0 /* 802722D8 0026DF38 41 82 00 60 */ beq lbl_80272338 /* 802722DC 0026DF3C 80 63 00 08 */ lwz r3, 8(r3) lbl_802722E0: /* 802722E0 0026DF40 80 03 02 CC */ lwz r0, 0x2cc(r3) /* 802722E4 0026DF44 2C 00 00 00 */ cmpwi r0, 0 /* 802722E8 0026DF48 41 81 00 50 */ bgt lbl_80272338 /* 802722EC 0026DF4C 80 83 02 D4 */ lwz r4, 0x2d4(r3) /* 802722F0 0026DF50 80 A3 02 F4 */ lwz r5, 0x2f4(r3) /* 802722F4 0026DF54 48 00 00 24 */ b lbl_80272318 lbl_802722F8: /* 802722F8 0026DF58 80 C5 00 00 */ lwz r6, 0(r5) /* 802722FC 0026DF5C 2C 06 00 00 */ cmpwi r6, 0 /* 80272300 0026DF60 41 82 00 14 */ beq lbl_80272314 /* 80272304 0026DF64 80 06 02 D0 */ lwz r0, 0x2d0(r6) /* 80272308 0026DF68 7C 00 20 00 */ cmpw r0, r4 /* 8027230C 0026DF6C 40 80 00 08 */ bge lbl_80272314 /* 80272310 0026DF70 7C 04 03 78 */ mr r4, r0 lbl_80272314: /* 80272314 0026DF74 80 A5 00 10 */ lwz r5, 0x10(r5) lbl_80272318: /* 80272318 0026DF78 2C 05 00 00 */ cmpwi r5, 0 /* 8027231C 0026DF7C 40 82 FF DC */ bne lbl_802722F8 /* 80272320 0026DF80 80 03 02 D0 */ lwz r0, 0x2d0(r3) /* 80272324 0026DF84 7C 00 20 00 */ cmpw r0, r4 /* 80272328 0026DF88 41 82 00 10 */ beq lbl_80272338 /* 8027232C 0026DF8C 4B FF F1 35 */ bl SetEffectivePriority /* 80272330 0026DF90 2C 03 00 00 */ cmpwi r3, 0 /* 80272334 0026DF94 40 82 FF AC */ bne lbl_802722E0 lbl_80272338: /* 80272338 0026DF98 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 8027233C 0026DF9C 2C 00 00 00 */ cmpwi r0, 0 /* 80272340 0026DFA0 41 82 00 0C */ beq lbl_8027234C /* 80272344 0026DFA4 38 60 00 00 */ li r3, 0 /* 80272348 0026DFA8 4B FF F3 1D */ bl SelectThread lbl_8027234C: /* 8027234C 0026DFAC 7F E3 FB 78 */ mr r3, r31 /* 80272350 0026DFB0 4B FF C4 35 */ bl OSRestoreInterrupts /* 80272354 0026DFB4 7F C3 F3 78 */ mr r3, r30 /* 80272358 0026DFB8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8027235C 0026DFBC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80272360 0026DFC0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80272364 0026DFC4 80 01 00 24 */ lwz r0, 0x24(r1) /* 80272368 0026DFC8 7C 08 03 A6 */ mtlr r0 /* 8027236C 0026DFCC 38 21 00 20 */ addi r1, r1, 0x20 /* 80272370 0026DFD0 4E 80 00 20 */ blr .global OSSleepThread OSSleepThread: /* 80272374 0026DFD4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80272378 0026DFD8 7C 08 02 A6 */ mflr r0 /* 8027237C 0026DFDC 90 01 00 14 */ stw r0, 0x14(r1) /* 80272380 0026DFE0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80272384 0026DFE4 93 C1 00 08 */ stw r30, 8(r1) /* 80272388 0026DFE8 7C 7E 1B 78 */ mr r30, r3 /* 8027238C 0026DFEC 4B FF C3 D1 */ bl OSDisableInterrupts /* 80272390 0026DFF0 3C 80 80 00 */ lis r4, 0x800000E4@ha /* 80272394 0026DFF4 38 00 00 04 */ li r0, 4 /* 80272398 0026DFF8 80 84 00 E4 */ lwz r4, 0x800000E4@l(r4) /* 8027239C 0026DFFC 7C 7F 1B 78 */ mr r31, r3 /* 802723A0 0026E000 B0 04 02 C8 */ sth r0, 0x2c8(r4) /* 802723A4 0026E004 93 C4 02 DC */ stw r30, 0x2dc(r4) /* 802723A8 0026E008 80 BE 00 00 */ lwz r5, 0(r30) /* 802723AC 0026E00C 48 00 00 08 */ b lbl_802723B4 lbl_802723B0: /* 802723B0 0026E010 80 A5 02 E0 */ lwz r5, 0x2e0(r5) lbl_802723B4: /* 802723B4 0026E014 2C 05 00 00 */ cmpwi r5, 0 /* 802723B8 0026E018 41 82 00 14 */ beq lbl_802723CC /* 802723BC 0026E01C 80 65 02 D0 */ lwz r3, 0x2d0(r5) /* 802723C0 0026E020 80 04 02 D0 */ lwz r0, 0x2d0(r4) /* 802723C4 0026E024 7C 03 00 00 */ cmpw r3, r0 /* 802723C8 0026E028 40 81 FF E8 */ ble lbl_802723B0 lbl_802723CC: /* 802723CC 0026E02C 2C 05 00 00 */ cmpwi r5, 0 /* 802723D0 0026E030 40 82 00 30 */ bne lbl_80272400 /* 802723D4 0026E034 80 7E 00 04 */ lwz r3, 4(r30) /* 802723D8 0026E038 2C 03 00 00 */ cmpwi r3, 0 /* 802723DC 0026E03C 40 82 00 0C */ bne lbl_802723E8 /* 802723E0 0026E040 90 9E 00 00 */ stw r4, 0(r30) /* 802723E4 0026E044 48 00 00 08 */ b lbl_802723EC lbl_802723E8: /* 802723E8 0026E048 90 83 02 E0 */ stw r4, 0x2e0(r3) lbl_802723EC: /* 802723EC 0026E04C 90 64 02 E4 */ stw r3, 0x2e4(r4) /* 802723F0 0026E050 38 00 00 00 */ li r0, 0 /* 802723F4 0026E054 90 04 02 E0 */ stw r0, 0x2e0(r4) /* 802723F8 0026E058 90 9E 00 04 */ stw r4, 4(r30) /* 802723FC 0026E05C 48 00 00 28 */ b lbl_80272424 lbl_80272400: /* 80272400 0026E060 90 A4 02 E0 */ stw r5, 0x2e0(r4) /* 80272404 0026E064 80 65 02 E4 */ lwz r3, 0x2e4(r5) /* 80272408 0026E068 90 85 02 E4 */ stw r4, 0x2e4(r5) /* 8027240C 0026E06C 2C 03 00 00 */ cmpwi r3, 0 /* 80272410 0026E070 90 64 02 E4 */ stw r3, 0x2e4(r4) /* 80272414 0026E074 40 82 00 0C */ bne lbl_80272420 /* 80272418 0026E078 90 9E 00 00 */ stw r4, 0(r30) /* 8027241C 0026E07C 48 00 00 08 */ b lbl_80272424 lbl_80272420: /* 80272420 0026E080 90 83 02 E0 */ stw r4, 0x2e0(r3) lbl_80272424: /* 80272424 0026E084 38 00 00 01 */ li r0, 1 /* 80272428 0026E088 90 0D A8 2C */ stw r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 8027242C 0026E08C 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 80272430 0026E090 2C 00 00 00 */ cmpwi r0, 0 /* 80272434 0026E094 41 82 00 0C */ beq lbl_80272440 /* 80272438 0026E098 38 60 00 00 */ li r3, 0 /* 8027243C 0026E09C 4B FF F2 29 */ bl SelectThread lbl_80272440: /* 80272440 0026E0A0 7F E3 FB 78 */ mr r3, r31 /* 80272444 0026E0A4 4B FF C3 41 */ bl OSRestoreInterrupts /* 80272448 0026E0A8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8027244C 0026E0AC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80272450 0026E0B0 83 C1 00 08 */ lwz r30, 8(r1) /* 80272454 0026E0B4 7C 08 03 A6 */ mtlr r0 /* 80272458 0026E0B8 38 21 00 10 */ addi r1, r1, 0x10 /* 8027245C 0026E0BC 4E 80 00 20 */ blr .global OSWakeupThread OSWakeupThread: /* 80272460 0026E0C0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80272464 0026E0C4 7C 08 02 A6 */ mflr r0 /* 80272468 0026E0C8 90 01 00 14 */ stw r0, 0x14(r1) /* 8027246C 0026E0CC 93 E1 00 0C */ stw r31, 0xc(r1) /* 80272470 0026E0D0 93 C1 00 08 */ stw r30, 8(r1) /* 80272474 0026E0D4 7C 7E 1B 78 */ mr r30, r3 /* 80272478 0026E0D8 4B FF C2 E5 */ bl OSDisableInterrupts /* 8027247C 0026E0DC 3C A0 80 51 */ lis r5, lbl_80514AF0@ha /* 80272480 0026E0E0 7C 7F 1B 78 */ mr r31, r3 /* 80272484 0026E0E4 38 A5 4A F0 */ addi r5, r5, lbl_80514AF0@l /* 80272488 0026E0E8 38 C0 00 00 */ li r6, 0 /* 8027248C 0026E0EC 38 60 00 01 */ li r3, 1 /* 80272490 0026E0F0 48 00 00 84 */ b lbl_80272514 lbl_80272494: /* 80272494 0026E0F4 80 88 02 E0 */ lwz r4, 0x2e0(r8) /* 80272498 0026E0F8 2C 04 00 00 */ cmpwi r4, 0 /* 8027249C 0026E0FC 40 82 00 0C */ bne lbl_802724A8 /* 802724A0 0026E100 90 DE 00 04 */ stw r6, 4(r30) /* 802724A4 0026E104 48 00 00 08 */ b lbl_802724AC lbl_802724A8: /* 802724A8 0026E108 90 C4 02 E4 */ stw r6, 0x2e4(r4) lbl_802724AC: /* 802724AC 0026E10C 90 9E 00 00 */ stw r4, 0(r30) /* 802724B0 0026E110 B0 68 02 C8 */ sth r3, 0x2c8(r8) /* 802724B4 0026E114 80 08 02 CC */ lwz r0, 0x2cc(r8) /* 802724B8 0026E118 2C 00 00 00 */ cmpwi r0, 0 /* 802724BC 0026E11C 41 81 00 58 */ bgt lbl_80272514 /* 802724C0 0026E120 80 08 02 D0 */ lwz r0, 0x2d0(r8) /* 802724C4 0026E124 54 00 18 38 */ slwi r0, r0, 3 /* 802724C8 0026E128 7C 85 02 14 */ add r4, r5, r0 /* 802724CC 0026E12C 90 88 02 DC */ stw r4, 0x2dc(r8) /* 802724D0 0026E130 80 E4 00 04 */ lwz r7, 4(r4) /* 802724D4 0026E134 2C 07 00 00 */ cmpwi r7, 0 /* 802724D8 0026E138 40 82 00 0C */ bne lbl_802724E4 /* 802724DC 0026E13C 91 04 00 00 */ stw r8, 0(r4) /* 802724E0 0026E140 48 00 00 08 */ b lbl_802724E8 lbl_802724E4: /* 802724E4 0026E144 91 07 02 E0 */ stw r8, 0x2e0(r7) lbl_802724E8: /* 802724E8 0026E148 90 E8 02 E4 */ stw r7, 0x2e4(r8) /* 802724EC 0026E14C 90 C8 02 E0 */ stw r6, 0x2e0(r8) /* 802724F0 0026E150 80 88 02 DC */ lwz r4, 0x2dc(r8) /* 802724F4 0026E154 91 04 00 04 */ stw r8, 4(r4) /* 802724F8 0026E158 80 08 02 D0 */ lwz r0, 0x2d0(r8) /* 802724FC 0026E15C 80 8D A8 30 */ lwz r4, lbl_8063FAF0-_SDA_BASE_(r13) /* 80272500 0026E160 20 00 00 1F */ subfic r0, r0, 0x1f /* 80272504 0026E164 7C 60 00 30 */ slw r0, r3, r0 /* 80272508 0026E168 7C 80 03 78 */ or r0, r4, r0 /* 8027250C 0026E16C 90 0D A8 30 */ stw r0, lbl_8063FAF0-_SDA_BASE_(r13) /* 80272510 0026E170 90 6D A8 2C */ stw r3, lbl_8063FAEC-_SDA_BASE_(r13) lbl_80272514: /* 80272514 0026E174 81 1E 00 00 */ lwz r8, 0(r30) /* 80272518 0026E178 2C 08 00 00 */ cmpwi r8, 0 /* 8027251C 0026E17C 40 82 FF 78 */ bne lbl_80272494 /* 80272520 0026E180 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 80272524 0026E184 2C 00 00 00 */ cmpwi r0, 0 /* 80272528 0026E188 41 82 00 0C */ beq lbl_80272534 /* 8027252C 0026E18C 38 60 00 00 */ li r3, 0 /* 80272530 0026E190 4B FF F1 35 */ bl SelectThread lbl_80272534: /* 80272534 0026E194 7F E3 FB 78 */ mr r3, r31 /* 80272538 0026E198 4B FF C2 4D */ bl OSRestoreInterrupts /* 8027253C 0026E19C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80272540 0026E1A0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80272544 0026E1A4 83 C1 00 08 */ lwz r30, 8(r1) /* 80272548 0026E1A8 7C 08 03 A6 */ mtlr r0 /* 8027254C 0026E1AC 38 21 00 10 */ addi r1, r1, 0x10 /* 80272550 0026E1B0 4E 80 00 20 */ blr .global OSSetThreadPriority OSSetThreadPriority: /* 80272554 0026E1B4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80272558 0026E1B8 7C 08 02 A6 */ mflr r0 /* 8027255C 0026E1BC 2C 04 00 00 */ cmpwi r4, 0 /* 80272560 0026E1C0 90 01 00 24 */ stw r0, 0x24(r1) /* 80272564 0026E1C4 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80272568 0026E1C8 93 C1 00 18 */ stw r30, 0x18(r1) /* 8027256C 0026E1CC 7C 9E 23 78 */ mr r30, r4 /* 80272570 0026E1D0 93 A1 00 14 */ stw r29, 0x14(r1) /* 80272574 0026E1D4 7C 7D 1B 78 */ mr r29, r3 /* 80272578 0026E1D8 41 80 00 0C */ blt lbl_80272584 /* 8027257C 0026E1DC 2C 04 00 1F */ cmpwi r4, 0x1f /* 80272580 0026E1E0 40 81 00 0C */ ble lbl_8027258C lbl_80272584: /* 80272584 0026E1E4 38 60 00 00 */ li r3, 0 /* 80272588 0026E1E8 48 00 00 9C */ b lbl_80272624 lbl_8027258C: /* 8027258C 0026E1EC 4B FF C1 D1 */ bl OSDisableInterrupts /* 80272590 0026E1F0 80 1D 02 D4 */ lwz r0, 0x2d4(r29) /* 80272594 0026E1F4 7C 7F 1B 78 */ mr r31, r3 /* 80272598 0026E1F8 7C 00 F0 00 */ cmpw r0, r30 /* 8027259C 0026E1FC 41 82 00 7C */ beq lbl_80272618 /* 802725A0 0026E200 93 DD 02 D4 */ stw r30, 0x2d4(r29) lbl_802725A4: /* 802725A4 0026E204 80 1D 02 CC */ lwz r0, 0x2cc(r29) /* 802725A8 0026E208 2C 00 00 00 */ cmpwi r0, 0 /* 802725AC 0026E20C 41 81 00 58 */ bgt lbl_80272604 /* 802725B0 0026E210 80 9D 02 D4 */ lwz r4, 0x2d4(r29) /* 802725B4 0026E214 80 7D 02 F4 */ lwz r3, 0x2f4(r29) /* 802725B8 0026E218 48 00 00 24 */ b lbl_802725DC lbl_802725BC: /* 802725BC 0026E21C 80 A3 00 00 */ lwz r5, 0(r3) /* 802725C0 0026E220 2C 05 00 00 */ cmpwi r5, 0 /* 802725C4 0026E224 41 82 00 14 */ beq lbl_802725D8 /* 802725C8 0026E228 80 05 02 D0 */ lwz r0, 0x2d0(r5) /* 802725CC 0026E22C 7C 00 20 00 */ cmpw r0, r4 /* 802725D0 0026E230 40 80 00 08 */ bge lbl_802725D8 /* 802725D4 0026E234 7C 04 03 78 */ mr r4, r0 lbl_802725D8: /* 802725D8 0026E238 80 63 00 10 */ lwz r3, 0x10(r3) lbl_802725DC: /* 802725DC 0026E23C 2C 03 00 00 */ cmpwi r3, 0 /* 802725E0 0026E240 40 82 FF DC */ bne lbl_802725BC /* 802725E4 0026E244 80 1D 02 D0 */ lwz r0, 0x2d0(r29) /* 802725E8 0026E248 7C 00 20 00 */ cmpw r0, r4 /* 802725EC 0026E24C 41 82 00 18 */ beq lbl_80272604 /* 802725F0 0026E250 7F A3 EB 78 */ mr r3, r29 /* 802725F4 0026E254 4B FF EE 6D */ bl SetEffectivePriority /* 802725F8 0026E258 2C 03 00 00 */ cmpwi r3, 0 /* 802725FC 0026E25C 7C 7D 1B 78 */ mr r29, r3 /* 80272600 0026E260 40 82 FF A4 */ bne lbl_802725A4 lbl_80272604: /* 80272604 0026E264 80 0D A8 2C */ lwz r0, lbl_8063FAEC-_SDA_BASE_(r13) /* 80272608 0026E268 2C 00 00 00 */ cmpwi r0, 0 /* 8027260C 0026E26C 41 82 00 0C */ beq lbl_80272618 /* 80272610 0026E270 38 60 00 00 */ li r3, 0 /* 80272614 0026E274 4B FF F0 51 */ bl SelectThread lbl_80272618: /* 80272618 0026E278 7F E3 FB 78 */ mr r3, r31 /* 8027261C 0026E27C 4B FF C1 69 */ bl OSRestoreInterrupts /* 80272620 0026E280 38 60 00 01 */ li r3, 1 lbl_80272624: /* 80272624 0026E284 80 01 00 24 */ lwz r0, 0x24(r1) /* 80272628 0026E288 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8027262C 0026E28C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80272630 0026E290 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80272634 0026E294 7C 08 03 A6 */ mtlr r0 /* 80272638 0026E298 38 21 00 20 */ addi r1, r1, 0x20 /* 8027263C 0026E29C 4E 80 00 20 */ blr .global OSGetThreadPriority OSGetThreadPriority: /* 80272640 0026E2A0 80 63 02 D4 */ lwz r3, 0x2d4(r3) /* 80272644 0026E2A4 4E 80 00 20 */ blr .global OSSetIdleFunction OSSetIdleFunction: /* 80272648 0026E2A8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8027264C 0026E2AC 7C 08 02 A6 */ mflr r0 /* 80272650 0026E2B0 2C 03 00 00 */ cmpwi r3, 0 /* 80272654 0026E2B4 7C 6A 1B 78 */ mr r10, r3 /* 80272658 0026E2B8 90 01 00 14 */ stw r0, 0x14(r1) /* 8027265C 0026E2BC 7C 89 23 78 */ mr r9, r4 /* 80272660 0026E2C0 7C A8 2B 78 */ mr r8, r5 /* 80272664 0026E2C4 7C C7 33 78 */ mr r7, r6 /* 80272668 0026E2C8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8027266C 0026E2CC 41 82 00 44 */ beq lbl_802726B0 /* 80272670 0026E2D0 3F E0 80 51 */ lis r31, lbl_80514EB8@ha /* 80272674 0026E2D4 3B FF 4E B8 */ addi r31, r31, lbl_80514EB8@l /* 80272678 0026E2D8 A0 1F 02 C8 */ lhz r0, 0x2c8(r31) /* 8027267C 0026E2DC 2C 00 00 00 */ cmpwi r0, 0 /* 80272680 0026E2E0 40 82 00 48 */ bne lbl_802726C8 /* 80272684 0026E2E4 7D 25 4B 78 */ mr r5, r9 /* 80272688 0026E2E8 7D 06 43 78 */ mr r6, r8 /* 8027268C 0026E2EC 7F E3 FB 78 */ mr r3, r31 /* 80272690 0026E2F0 7D 44 53 78 */ mr r4, r10 /* 80272694 0026E2F4 39 00 00 1F */ li r8, 0x1f /* 80272698 0026E2F8 39 20 00 01 */ li r9, 1 /* 8027269C 0026E2FC 4B FF F2 45 */ bl OSCreateThread /* 802726A0 0026E300 7F E3 FB 78 */ mr r3, r31 /* 802726A4 0026E304 4B FF F8 A5 */ bl OSResumeThread /* 802726A8 0026E308 7F E3 FB 78 */ mr r3, r31 /* 802726AC 0026E30C 48 00 00 20 */ b lbl_802726CC lbl_802726B0: /* 802726B0 0026E310 3C 60 80 51 */ lis r3, lbl_80514EB8@ha /* 802726B4 0026E314 38 63 4E B8 */ addi r3, r3, lbl_80514EB8@l /* 802726B8 0026E318 A0 03 02 C8 */ lhz r0, 0x2c8(r3) /* 802726BC 0026E31C 2C 00 00 00 */ cmpwi r0, 0 /* 802726C0 0026E320 41 82 00 08 */ beq lbl_802726C8 /* 802726C4 0026E324 4B FF F5 6D */ bl OSCancelThread lbl_802726C8: /* 802726C8 0026E328 38 60 00 00 */ li r3, 0 lbl_802726CC: /* 802726CC 0026E32C 80 01 00 14 */ lwz r0, 0x14(r1) /* 802726D0 0026E330 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802726D4 0026E334 7C 08 03 A6 */ mtlr r0 /* 802726D8 0026E338 38 21 00 10 */ addi r1, r1, 0x10 /* 802726DC 0026E33C 4E 80 00 20 */ blr .global SleepAlarmHandler SleepAlarmHandler: /* 802726E0 0026E340 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802726E4 0026E344 7C 08 02 A6 */ mflr r0 /* 802726E8 0026E348 90 01 00 14 */ stw r0, 0x14(r1) /* 802726EC 0026E34C 4B FF 77 BD */ bl OSGetAlarmUserData /* 802726F0 0026E350 4B FF F8 59 */ bl OSResumeThread /* 802726F4 0026E354 80 01 00 14 */ lwz r0, 0x14(r1) /* 802726F8 0026E358 7C 08 03 A6 */ mtlr r0 /* 802726FC 0026E35C 38 21 00 10 */ addi r1, r1, 0x10 /* 80272700 0026E360 4E 80 00 20 */ blr .global OSSleepTicks OSSleepTicks: /* 80272704 0026E364 94 21 FF B0 */ stwu r1, -0x50(r1) /* 80272708 0026E368 7C 08 02 A6 */ mflr r0 /* 8027270C 0026E36C 90 01 00 54 */ stw r0, 0x54(r1) /* 80272710 0026E370 93 E1 00 4C */ stw r31, 0x4c(r1) /* 80272714 0026E374 93 C1 00 48 */ stw r30, 0x48(r1) /* 80272718 0026E378 93 A1 00 44 */ stw r29, 0x44(r1) /* 8027271C 0026E37C 7C 7D 1B 78 */ mr r29, r3 /* 80272720 0026E380 93 81 00 40 */ stw r28, 0x40(r1) /* 80272724 0026E384 7C 9C 23 78 */ mr r28, r4 /* 80272728 0026E388 4B FF C0 35 */ bl OSDisableInterrupts /* 8027272C 0026E38C 3C 80 80 00 */ lis r4, 0x800000E4@ha /* 80272730 0026E390 7C 7E 1B 78 */ mr r30, r3 /* 80272734 0026E394 83 E4 00 E4 */ lwz r31, 0x800000E4@l(r4) /* 80272738 0026E398 2C 1F 00 00 */ cmpwi r31, 0 /* 8027273C 0026E39C 40 82 00 0C */ bne lbl_80272748 /* 80272740 0026E3A0 4B FF C0 45 */ bl OSRestoreInterrupts /* 80272744 0026E3A4 48 00 00 54 */ b lbl_80272798 lbl_80272748: /* 80272748 0026E3A8 38 61 00 08 */ addi r3, r1, 8 /* 8027274C 0026E3AC 4B FF 6F D9 */ bl OSCreateAlarm /* 80272750 0026E3B0 7F E4 FB 78 */ mr r4, r31 /* 80272754 0026E3B4 38 61 00 08 */ addi r3, r1, 8 /* 80272758 0026E3B8 4B FF 76 B5 */ bl OSSetAlarmTag /* 8027275C 0026E3BC 7F E4 FB 78 */ mr r4, r31 /* 80272760 0026E3C0 38 61 00 08 */ addi r3, r1, 8 /* 80272764 0026E3C4 4B FF 77 3D */ bl OSSetAlarmUserData /* 80272768 0026E3C8 3C E0 80 27 */ lis r7, SleepAlarmHandler@ha /* 8027276C 0026E3CC 7F 86 E3 78 */ mr r6, r28 /* 80272770 0026E3D0 7F A5 EB 78 */ mr r5, r29 /* 80272774 0026E3D4 38 61 00 08 */ addi r3, r1, 8 /* 80272778 0026E3D8 38 E7 26 E0 */ addi r7, r7, SleepAlarmHandler@l /* 8027277C 0026E3DC 4B FF 72 09 */ bl OSSetAlarm /* 80272780 0026E3E0 7F E3 FB 78 */ mr r3, r31 /* 80272784 0026E3E4 4B FF FA 5D */ bl OSSuspendThread /* 80272788 0026E3E8 38 61 00 08 */ addi r3, r1, 8 /* 8027278C 0026E3EC 4B FF 72 ED */ bl OSCancelAlarm /* 80272790 0026E3F0 7F C3 F3 78 */ mr r3, r30 /* 80272794 0026E3F4 4B FF BF F1 */ bl OSRestoreInterrupts lbl_80272798: /* 80272798 0026E3F8 80 01 00 54 */ lwz r0, 0x54(r1) /* 8027279C 0026E3FC 83 E1 00 4C */ lwz r31, 0x4c(r1) /* 802727A0 0026E400 83 C1 00 48 */ lwz r30, 0x48(r1) /* 802727A4 0026E404 83 A1 00 44 */ lwz r29, 0x44(r1) /* 802727A8 0026E408 83 81 00 40 */ lwz r28, 0x40(r1) /* 802727AC 0026E40C 7C 08 03 A6 */ mtlr r0 /* 802727B0 0026E410 38 21 00 50 */ addi r1, r1, 0x50 /* 802727B4 0026E414 4E 80 00 20 */ blr