donut-decomp/asm/os/OSThread.s
2022-10-17 09:03:07 +01:00

1873 lines
84 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global DefaultSwitchThreadCallback
DefaultSwitchThreadCallback:
/* 800244A0 000202E0 4E 80 00 20 */ blr
/* 800244A4 000202E4 00 00 00 00 */ .4byte 0x00000000
/* 800244A8 000202E8 00 00 00 00 */ .4byte 0x00000000
/* 800244AC 000202EC 00 00 00 00 */ .4byte 0x00000000
.global __OSThreadInit
__OSThreadInit:
/* 800244B0 000202F0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800244B4 000202F4 7C 08 02 A6 */ mflr r0
/* 800244B8 000202F8 38 60 00 02 */ li r3, 0x2
/* 800244BC 000202FC 38 C0 00 01 */ li r6, 0x1
/* 800244C0 00020300 90 01 00 24 */ stw r0, 0x24(r1)
/* 800244C4 00020304 38 80 00 00 */ li r4, 0x0
/* 800244C8 00020308 38 A0 00 10 */ li r5, 0x10
/* 800244CC 0002030C 38 00 FF FF */ li r0, -0x1
/* 800244D0 00020310 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800244D4 00020314 3F E0 80 4A */ lis r31, DefaultThread@ha
/* 800244D8 00020318 3B FF 94 B8 */ addi r31, r31, DefaultThread@l
/* 800244DC 0002031C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800244E0 00020320 3B DF 00 00 */ addi r30, r31, 0x0
/* 800244E4 00020324 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800244E8 00020328 3F A0 80 00 */ lis r29, 0x800000D8@ha
/* 800244EC 0002032C B0 7E 02 C8 */ sth r3, 0x2c8(r30)
/* 800244F0 00020330 7F C3 F3 78 */ mr r3, r30
/* 800244F4 00020334 B0 DE 02 CA */ sth r6, 0x2ca(r30)
/* 800244F8 00020338 90 BE 02 D4 */ stw r5, 0x2d4(r30)
/* 800244FC 0002033C 90 BE 02 D0 */ stw r5, 0x2d0(r30)
/* 80024500 00020340 90 9E 02 CC */ stw r4, 0x2cc(r30)
/* 80024504 00020344 90 1E 02 D8 */ stw r0, 0x2d8(r30)
/* 80024508 00020348 90 9E 02 F0 */ stw r4, 0x2f0(r30)
/* 8002450C 0002034C 90 9E 02 EC */ stw r4, 0x2ec(r30)
/* 80024510 00020350 90 9E 02 E8 */ stw r4, 0x2e8(r30)
/* 80024514 00020354 90 9E 02 F8 */ stw r4, 0x2f8(r30)
/* 80024518 00020358 90 9E 02 F4 */ stw r4, 0x2f4(r30)
/* 8002451C 0002035C 93 DD 00 D8 */ stw r30, 0x800000D8@l(r29)
/* 80024520 00020360 4B FF 8F 21 */ bl OSClearContext
/* 80024524 00020364 7F C3 F3 78 */ mr r3, r30
/* 80024528 00020368 4B FF 8C D9 */ bl OSSetCurrentContext
/* 8002452C 0002036C 3C 60 80 58 */ lis r3, 0x80585000@ha
/* 80024530 00020370 3C A0 80 57 */ lis r5, 0x80575000@ha
/* 80024534 00020374 38 63 50 00 */ addi r3, r3, 0x80585000@l
/* 80024538 00020378 90 7E 03 04 */ stw r3, 0x304(r30)
/* 8002453C 0002037C 38 A5 50 00 */ addi r5, r5, 0x80575000@l
/* 80024540 00020380 7F C4 F3 78 */ mr r4, r30
/* 80024544 00020384 3C 60 DE AE */ lis r3, 0xDEADBABE@ha
/* 80024548 00020388 90 BE 03 08 */ stw r5, 0x308(r30)
/* 8002454C 0002038C 38 03 BA BE */ addi r0, r3, 0xDEADBABE@l
/* 80024550 00020390 90 05 00 00 */ stw r0, 0x0(r5)
/* 80024554 00020394 81 8D 80 D0 */ lwz r12, SwitchThreadCallback@sda21(r13)
/* 80024558 00020398 80 7D 00 E4 */ lwz r3, 0xe4(r29)
/* 8002455C 0002039C 7D 89 03 A6 */ mtctr r12
/* 80024560 000203A0 4E 80 04 21 */ bctrl
/* 80024564 000203A4 93 DD 00 E4 */ stw r30, 0xe4(r29)
/* 80024568 000203A8 4B FF 8E 69 */ bl OSGetStackPointer
/* 8002456C 000203AC 80 9D 00 E4 */ lwz r4, 0xe4(r29)
/* 80024570 000203B0 80 84 03 08 */ lwz r4, 0x308(r4)
/* 80024574 000203B4 39 04 00 04 */ addi r8, r4, 0x4
/* 80024578 000203B8 7C 88 18 40 */ cmplw cr1, r8, r3
/* 8002457C 000203BC 40 84 00 C0 */ bge cr1, lbl_8002463C
/* 80024580 000203C0 7C A8 18 50 */ subf r5, r8, r3
/* 80024584 000203C4 38 C3 FF E0 */ addi r6, r3, -0x20
/* 80024588 000203C8 38 85 00 03 */ addi r4, r5, 0x3
/* 8002458C 000203CC 7C 80 16 70 */ srawi r0, r4, 2
/* 80024590 000203D0 7C 00 01 94 */ addze r0, r0
/* 80024594 000203D4 2C 00 00 08 */ cmpwi r0, 0x8
/* 80024598 000203D8 40 81 00 7C */ ble lbl_80024614
/* 8002459C 000203DC 38 E0 00 00 */ li r7, 0x0
/* 800245A0 000203E0 41 85 00 28 */ bgt cr1, lbl_800245C8
/* 800245A4 000203E4 54 A0 00 01 */ clrrwi. r0, r5, 31
/* 800245A8 000203E8 38 A0 00 01 */ li r5, 0x1
/* 800245AC 000203EC 40 82 00 10 */ bne lbl_800245BC
/* 800245B0 000203F0 54 80 00 01 */ clrrwi. r0, r4, 31
/* 800245B4 000203F4 41 82 00 08 */ beq lbl_800245BC
/* 800245B8 000203F8 38 A0 00 00 */ li r5, 0x0
.global lbl_800245BC
lbl_800245BC:
/* 800245BC 000203FC 2C 05 00 00 */ cmpwi r5, 0x0
/* 800245C0 00020400 41 82 00 08 */ beq lbl_800245C8
/* 800245C4 00020404 38 E0 00 01 */ li r7, 0x1
.global lbl_800245C8
lbl_800245C8:
/* 800245C8 00020408 2C 07 00 00 */ cmpwi r7, 0x0
/* 800245CC 0002040C 41 82 00 48 */ beq lbl_80024614
/* 800245D0 00020410 38 06 00 1F */ addi r0, r6, 0x1f
/* 800245D4 00020414 38 80 00 00 */ li r4, 0x0
/* 800245D8 00020418 7C 08 00 50 */ subf r0, r8, r0
/* 800245DC 0002041C 54 00 D9 7E */ srwi r0, r0, 5
/* 800245E0 00020420 7C 09 03 A6 */ mtctr r0
/* 800245E4 00020424 7C 08 30 40 */ cmplw r8, r6
/* 800245E8 00020428 40 80 00 2C */ bge lbl_80024614
.global lbl_800245EC
lbl_800245EC:
/* 800245EC 0002042C 90 88 00 00 */ stw r4, 0x0(r8)
/* 800245F0 00020430 90 88 00 04 */ stw r4, 0x4(r8)
/* 800245F4 00020434 90 88 00 08 */ stw r4, 0x8(r8)
/* 800245F8 00020438 90 88 00 0C */ stw r4, 0xc(r8)
/* 800245FC 0002043C 90 88 00 10 */ stw r4, 0x10(r8)
/* 80024600 00020440 90 88 00 14 */ stw r4, 0x14(r8)
/* 80024604 00020444 90 88 00 18 */ stw r4, 0x18(r8)
/* 80024608 00020448 90 88 00 1C */ stw r4, 0x1c(r8)
/* 8002460C 0002044C 39 08 00 20 */ addi r8, r8, 0x20
/* 80024610 00020450 42 00 FF DC */ bdnz lbl_800245EC
.global lbl_80024614
lbl_80024614:
/* 80024614 00020454 38 03 00 03 */ addi r0, r3, 0x3
/* 80024618 00020458 38 80 00 00 */ li r4, 0x0
/* 8002461C 0002045C 7C 08 00 50 */ subf r0, r8, r0
/* 80024620 00020460 54 00 F0 BE */ srwi r0, r0, 2
/* 80024624 00020464 7C 09 03 A6 */ mtctr r0
/* 80024628 00020468 7C 08 18 40 */ cmplw r8, r3
/* 8002462C 0002046C 40 80 00 10 */ bge lbl_8002463C
.global lbl_80024630
lbl_80024630:
/* 80024630 00020470 90 88 00 00 */ stw r4, 0x0(r8)
/* 80024634 00020474 39 08 00 04 */ addi r8, r8, 0x4
/* 80024638 00020478 42 00 FF F8 */ bdnz lbl_80024630
.global lbl_8002463C
lbl_8002463C:
/* 8002463C 0002047C 38 00 00 02 */ li r0, 0x2
/* 80024640 00020480 38 60 00 00 */ li r3, 0x0
/* 80024644 00020484 90 6D E4 28 */ stw r3, RunQueueBits@sda21(r13)
/* 80024648 00020488 38 9F 03 18 */ addi r4, r31, 0x318
/* 8002464C 0002048C 90 6D E4 24 */ stw r3, RunQueueHint@sda21(r13)
/* 80024650 00020490 7C 09 03 A6 */ mtctr r0
.global lbl_80024654
lbl_80024654:
/* 80024654 00020494 90 64 00 04 */ stw r3, 0x4(r4)
/* 80024658 00020498 90 64 00 00 */ stw r3, 0x0(r4)
/* 8002465C 0002049C 90 64 00 0C */ stw r3, 0xc(r4)
/* 80024660 000204A0 90 64 00 08 */ stw r3, 0x8(r4)
/* 80024664 000204A4 90 64 00 14 */ stw r3, 0x14(r4)
/* 80024668 000204A8 90 64 00 10 */ stw r3, 0x10(r4)
/* 8002466C 000204AC 90 64 00 1C */ stw r3, 0x1c(r4)
/* 80024670 000204B0 90 64 00 18 */ stw r3, 0x18(r4)
/* 80024674 000204B4 90 64 00 24 */ stw r3, 0x24(r4)
/* 80024678 000204B8 90 64 00 20 */ stw r3, 0x20(r4)
/* 8002467C 000204BC 90 64 00 2C */ stw r3, 0x2c(r4)
/* 80024680 000204C0 90 64 00 28 */ stw r3, 0x28(r4)
/* 80024684 000204C4 90 64 00 34 */ stw r3, 0x34(r4)
/* 80024688 000204C8 90 64 00 30 */ stw r3, 0x30(r4)
/* 8002468C 000204CC 90 64 00 3C */ stw r3, 0x3c(r4)
/* 80024690 000204D0 90 64 00 38 */ stw r3, 0x38(r4)
/* 80024694 000204D4 90 64 00 44 */ stw r3, 0x44(r4)
/* 80024698 000204D8 90 64 00 40 */ stw r3, 0x40(r4)
/* 8002469C 000204DC 90 64 00 4C */ stw r3, 0x4c(r4)
/* 800246A0 000204E0 90 64 00 48 */ stw r3, 0x48(r4)
/* 800246A4 000204E4 90 64 00 54 */ stw r3, 0x54(r4)
/* 800246A8 000204E8 90 64 00 50 */ stw r3, 0x50(r4)
/* 800246AC 000204EC 90 64 00 5C */ stw r3, 0x5c(r4)
/* 800246B0 000204F0 90 64 00 58 */ stw r3, 0x58(r4)
/* 800246B4 000204F4 90 64 00 64 */ stw r3, 0x64(r4)
/* 800246B8 000204F8 90 64 00 60 */ stw r3, 0x60(r4)
/* 800246BC 000204FC 90 64 00 6C */ stw r3, 0x6c(r4)
/* 800246C0 00020500 90 64 00 68 */ stw r3, 0x68(r4)
/* 800246C4 00020504 90 64 00 74 */ stw r3, 0x74(r4)
/* 800246C8 00020508 90 64 00 70 */ stw r3, 0x70(r4)
/* 800246CC 0002050C 90 64 00 7C */ stw r3, 0x7c(r4)
/* 800246D0 00020510 90 64 00 78 */ stw r3, 0x78(r4)
/* 800246D4 00020514 38 84 00 80 */ addi r4, r4, 0x80
/* 800246D8 00020518 42 00 FF 7C */ bdnz lbl_80024654
/* 800246DC 0002051C 3C 60 80 00 */ lis r3, 0x800000E0@ha
/* 800246E0 00020520 38 80 00 00 */ li r4, 0x0
/* 800246E4 00020524 90 83 00 E0 */ stw r4, 0x800000E0@l(r3)
/* 800246E8 00020528 90 83 00 DC */ stw r4, 0xdc(r3)
/* 800246EC 0002052C 93 C3 00 DC */ stw r30, 0xdc(r3)
/* 800246F0 00020530 48 00 00 08 */ b lbl_800246F8
/* 800246F4 00020534 93 C4 02 FC */ stw r30, 0x2fc(r4)
.global lbl_800246F8
lbl_800246F8:
/* 800246F8 00020538 3B A0 00 00 */ li r29, 0x0
/* 800246FC 0002053C 90 9E 03 00 */ stw r4, 0x300(r30)
/* 80024700 00020540 3C 80 80 00 */ lis r4, 0x800000E0@ha
/* 80024704 00020544 38 7F 04 18 */ addi r3, r31, 0x418
/* 80024708 00020548 93 BE 02 FC */ stw r29, 0x2fc(r30)
/* 8002470C 0002054C 93 C4 00 E0 */ stw r30, 0x800000E0@l(r4)
/* 80024710 00020550 4B FF 8D 31 */ bl OSClearContext
/* 80024714 00020554 93 AD E4 20 */ stw r29, Reschedule@sda21(r13)
/* 80024718 00020558 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002471C 0002055C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80024720 00020560 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80024724 00020564 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80024728 00020568 7C 08 03 A6 */ mtlr r0
/* 8002472C 0002056C 38 21 00 20 */ addi r1, r1, 0x20
/* 80024730 00020570 4E 80 00 20 */ blr
/* 80024734 00020574 00 00 00 00 */ .4byte 0x00000000
/* 80024738 00020578 00 00 00 00 */ .4byte 0x00000000
/* 8002473C 0002057C 00 00 00 00 */ .4byte 0x00000000
.global OSInitThreadQueue
OSInitThreadQueue:
/* 80024740 00020580 38 00 00 00 */ li r0, 0x0
/* 80024744 00020584 90 03 00 04 */ stw r0, 0x4(r3)
/* 80024748 00020588 90 03 00 00 */ stw r0, 0x0(r3)
/* 8002474C 0002058C 4E 80 00 20 */ blr
.global OSGetCurrentThread
OSGetCurrentThread:
/* 80024750 00020590 3C 60 80 00 */ lis r3, 0x800000E4@ha
/* 80024754 00020594 80 63 00 E4 */ lwz r3, 0x800000E4@l(r3)
/* 80024758 00020598 4E 80 00 20 */ blr
/* 8002475C 0002059C 00 00 00 00 */ .4byte 0x00000000
.global OSIsThreadTerminated
OSIsThreadTerminated:
/* 80024760 000205A0 A0 03 02 C8 */ lhz r0, 0x2c8(r3)
/* 80024764 000205A4 38 60 00 01 */ li r3, 0x1
/* 80024768 000205A8 28 00 00 08 */ cmplwi r0, 0x8
/* 8002476C 000205AC 41 82 00 10 */ beq lbl_8002477C
/* 80024770 000205B0 2C 00 00 00 */ cmpwi r0, 0x0
/* 80024774 000205B4 41 82 00 08 */ beq lbl_8002477C
/* 80024778 000205B8 38 60 00 00 */ li r3, 0x0
.global lbl_8002477C
lbl_8002477C:
/* 8002477C 000205BC 7C 03 00 D0 */ neg r0, r3
/* 80024780 000205C0 7C 00 1B 78 */ or r0, r0, r3
/* 80024784 000205C4 54 03 0F FE */ srwi r3, r0, 31
/* 80024788 000205C8 4E 80 00 20 */ blr
/* 8002478C 000205CC 00 00 00 00 */ .4byte 0x00000000
.global OSDisableScheduler
OSDisableScheduler:
/* 80024790 000205D0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80024794 000205D4 7C 08 02 A6 */ mflr r0
/* 80024798 000205D8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002479C 000205DC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800247A0 000205E0 4B FF D0 81 */ bl OSDisableInterrupts
/* 800247A4 000205E4 83 ED E4 20 */ lwz r31, Reschedule@sda21(r13)
/* 800247A8 000205E8 38 1F 00 01 */ addi r0, r31, 0x1
/* 800247AC 000205EC 90 0D E4 20 */ stw r0, Reschedule@sda21(r13)
/* 800247B0 000205F0 4B FF D0 B1 */ bl OSRestoreInterrupts
/* 800247B4 000205F4 7F E3 FB 78 */ mr r3, r31
/* 800247B8 000205F8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800247BC 000205FC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800247C0 00020600 7C 08 03 A6 */ mtlr r0
/* 800247C4 00020604 38 21 00 10 */ addi r1, r1, 0x10
/* 800247C8 00020608 4E 80 00 20 */ blr
/* 800247CC 0002060C 00 00 00 00 */ .4byte 0x00000000
.global OSEnableScheduler
OSEnableScheduler:
/* 800247D0 00020610 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800247D4 00020614 7C 08 02 A6 */ mflr r0
/* 800247D8 00020618 90 01 00 14 */ stw r0, 0x14(r1)
/* 800247DC 0002061C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800247E0 00020620 4B FF D0 41 */ bl OSDisableInterrupts
/* 800247E4 00020624 83 ED E4 20 */ lwz r31, Reschedule@sda21(r13)
/* 800247E8 00020628 38 1F FF FF */ addi r0, r31, -0x1
/* 800247EC 0002062C 90 0D E4 20 */ stw r0, Reschedule@sda21(r13)
/* 800247F0 00020630 4B FF D0 71 */ bl OSRestoreInterrupts
/* 800247F4 00020634 7F E3 FB 78 */ mr r3, r31
/* 800247F8 00020638 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800247FC 0002063C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80024800 00020640 7C 08 03 A6 */ mtlr r0
/* 80024804 00020644 38 21 00 10 */ addi r1, r1, 0x10
/* 80024808 00020648 4E 80 00 20 */ blr
/* 8002480C 0002064C 00 00 00 00 */ .4byte 0x00000000
.global UnsetRun
UnsetRun:
/* 80024810 00020650 80 A3 02 E0 */ lwz r5, 0x2e0(r3)
/* 80024814 00020654 80 83 02 DC */ lwz r4, 0x2dc(r3)
/* 80024818 00020658 2C 05 00 00 */ cmpwi r5, 0x0
/* 8002481C 0002065C 80 C3 02 E4 */ lwz r6, 0x2e4(r3)
/* 80024820 00020660 40 82 00 0C */ bne lbl_8002482C
/* 80024824 00020664 90 C4 00 04 */ stw r6, 0x4(r4)
/* 80024828 00020668 48 00 00 08 */ b lbl_80024830
.global lbl_8002482C
lbl_8002482C:
/* 8002482C 0002066C 90 C5 02 E4 */ stw r6, 0x2e4(r5)
.global lbl_80024830
lbl_80024830:
/* 80024830 00020670 2C 06 00 00 */ cmpwi r6, 0x0
/* 80024834 00020674 40 82 00 0C */ bne lbl_80024840
/* 80024838 00020678 90 A4 00 00 */ stw r5, 0x0(r4)
/* 8002483C 0002067C 48 00 00 08 */ b lbl_80024844
.global lbl_80024840
lbl_80024840:
/* 80024840 00020680 90 A6 02 E0 */ stw r5, 0x2e0(r6)
.global lbl_80024844
lbl_80024844:
/* 80024844 00020684 80 04 00 00 */ lwz r0, 0x0(r4)
/* 80024848 00020688 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002484C 0002068C 40 82 00 20 */ bne lbl_8002486C
/* 80024850 00020690 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 80024854 00020694 38 80 00 01 */ li r4, 0x1
/* 80024858 00020698 80 AD E4 28 */ lwz r5, RunQueueBits@sda21(r13)
/* 8002485C 0002069C 20 00 00 1F */ subfic r0, r0, 0x1f
/* 80024860 000206A0 7C 80 00 30 */ slw r0, r4, r0
/* 80024864 000206A4 7C A0 00 78 */ andc r0, r5, r0
/* 80024868 000206A8 90 0D E4 28 */ stw r0, RunQueueBits@sda21(r13)
.global lbl_8002486C
lbl_8002486C:
/* 8002486C 000206AC 38 00 00 00 */ li r0, 0x0
/* 80024870 000206B0 90 03 02 DC */ stw r0, 0x2dc(r3)
/* 80024874 000206B4 4E 80 00 20 */ blr
/* 80024878 000206B8 00 00 00 00 */ .4byte 0x00000000
/* 8002487C 000206BC 00 00 00 00 */ .4byte 0x00000000
.global __OSGetEffectivePriority
__OSGetEffectivePriority:
/* 80024880 000206C0 80 83 02 D4 */ lwz r4, 0x2d4(r3)
/* 80024884 000206C4 80 63 02 F4 */ lwz r3, 0x2f4(r3)
/* 80024888 000206C8 48 00 00 28 */ b lbl_800248B0
/* 8002488C 000206CC 60 00 00 00 */ nop
.global lbl_80024890
lbl_80024890:
/* 80024890 000206D0 80 A3 00 00 */ lwz r5, 0x0(r3)
/* 80024894 000206D4 2C 05 00 00 */ cmpwi r5, 0x0
/* 80024898 000206D8 41 82 00 14 */ beq lbl_800248AC
/* 8002489C 000206DC 80 05 02 D0 */ lwz r0, 0x2d0(r5)
/* 800248A0 000206E0 7C 00 20 00 */ cmpw r0, r4
/* 800248A4 000206E4 40 80 00 08 */ bge lbl_800248AC
/* 800248A8 000206E8 7C 04 03 78 */ mr r4, r0
.global lbl_800248AC
lbl_800248AC:
/* 800248AC 000206EC 80 63 00 10 */ lwz r3, 0x10(r3)
.global lbl_800248B0
lbl_800248B0:
/* 800248B0 000206F0 2C 03 00 00 */ cmpwi r3, 0x0
/* 800248B4 000206F4 40 82 FF DC */ bne lbl_80024890
/* 800248B8 000206F8 7C 83 23 78 */ mr r3, r4
/* 800248BC 000206FC 4E 80 00 20 */ blr
.global SetEffectivePriority
SetEffectivePriority:
/* 800248C0 00020700 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800248C4 00020704 7C 08 02 A6 */ mflr r0
/* 800248C8 00020708 90 01 00 14 */ stw r0, 0x14(r1)
/* 800248CC 0002070C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800248D0 00020710 7C 9F 23 78 */ mr r31, r4
/* 800248D4 00020714 93 C1 00 08 */ stw r30, 0x8(r1)
/* 800248D8 00020718 7C 7E 1B 78 */ mr r30, r3
/* 800248DC 0002071C A0 03 02 C8 */ lhz r0, 0x2c8(r3)
/* 800248E0 00020720 2C 00 00 01 */ cmpwi r0, 0x1
/* 800248E4 00020724 41 82 00 18 */ beq lbl_800248FC
/* 800248E8 00020728 2C 00 00 04 */ cmpwi r0, 0x4
/* 800248EC 0002072C 41 82 00 7C */ beq lbl_80024968
/* 800248F0 00020730 2C 00 00 02 */ cmpwi r0, 0x2
/* 800248F4 00020734 41 82 01 4C */ beq lbl_80024A40
/* 800248F8 00020738 48 00 01 54 */ b lbl_80024A4C
.global lbl_800248FC
lbl_800248FC:
/* 800248FC 0002073C 4B FF FF 15 */ bl UnsetRun
/* 80024900 00020740 3C 60 80 4A */ lis r3, RunQueue@ha
/* 80024904 00020744 57 E0 18 38 */ slwi r0, r31, 3
/* 80024908 00020748 38 63 97 D0 */ addi r3, r3, RunQueue@l
/* 8002490C 0002074C 93 FE 02 D0 */ stw r31, 0x2d0(r30)
/* 80024910 00020750 7C 63 02 14 */ add r3, r3, r0
/* 80024914 00020754 90 7E 02 DC */ stw r3, 0x2dc(r30)
/* 80024918 00020758 80 83 00 04 */ lwz r4, 0x4(r3)
/* 8002491C 0002075C 2C 04 00 00 */ cmpwi r4, 0x0
/* 80024920 00020760 40 82 00 0C */ bne lbl_8002492C
/* 80024924 00020764 93 C3 00 00 */ stw r30, 0x0(r3)
/* 80024928 00020768 48 00 00 08 */ b lbl_80024930
.global lbl_8002492C
lbl_8002492C:
/* 8002492C 0002076C 93 C4 02 E0 */ stw r30, 0x2e0(r4)
.global lbl_80024930
lbl_80024930:
/* 80024930 00020770 38 00 00 00 */ li r0, 0x0
/* 80024934 00020774 90 9E 02 E4 */ stw r4, 0x2e4(r30)
/* 80024938 00020778 80 9E 02 DC */ lwz r4, 0x2dc(r30)
/* 8002493C 0002077C 38 60 00 01 */ li r3, 0x1
/* 80024940 00020780 90 1E 02 E0 */ stw r0, 0x2e0(r30)
/* 80024944 00020784 93 C4 00 04 */ stw r30, 0x4(r4)
/* 80024948 00020788 80 1E 02 D0 */ lwz r0, 0x2d0(r30)
/* 8002494C 0002078C 80 8D E4 28 */ lwz r4, RunQueueBits@sda21(r13)
/* 80024950 00020790 20 00 00 1F */ subfic r0, r0, 0x1f
/* 80024954 00020794 7C 60 00 30 */ slw r0, r3, r0
/* 80024958 00020798 7C 80 03 78 */ or r0, r4, r0
/* 8002495C 0002079C 90 0D E4 28 */ stw r0, RunQueueBits@sda21(r13)
/* 80024960 000207A0 90 6D E4 24 */ stw r3, RunQueueHint@sda21(r13)
/* 80024964 000207A4 48 00 00 E8 */ b lbl_80024A4C
.global lbl_80024968
lbl_80024968:
/* 80024968 000207A8 80 C3 02 E0 */ lwz r6, 0x2e0(r3)
/* 8002496C 000207AC 80 E3 02 E4 */ lwz r7, 0x2e4(r3)
/* 80024970 000207B0 2C 06 00 00 */ cmpwi r6, 0x0
/* 80024974 000207B4 40 82 00 10 */ bne lbl_80024984
/* 80024978 000207B8 80 A3 02 DC */ lwz r5, 0x2dc(r3)
/* 8002497C 000207BC 90 E5 00 04 */ stw r7, 0x4(r5)
/* 80024980 000207C0 48 00 00 08 */ b lbl_80024988
.global lbl_80024984
lbl_80024984:
/* 80024984 000207C4 90 E6 02 E4 */ stw r7, 0x2e4(r6)
.global lbl_80024988
lbl_80024988:
/* 80024988 000207C8 2C 07 00 00 */ cmpwi r7, 0x0
/* 8002498C 000207CC 40 82 00 10 */ bne lbl_8002499C
/* 80024990 000207D0 80 A3 02 DC */ lwz r5, 0x2dc(r3)
/* 80024994 000207D4 90 C5 00 00 */ stw r6, 0x0(r5)
/* 80024998 000207D8 48 00 00 08 */ b lbl_800249A0
.global lbl_8002499C
lbl_8002499C:
/* 8002499C 000207DC 90 C7 02 E0 */ stw r6, 0x2e0(r7)
.global lbl_800249A0
lbl_800249A0:
/* 800249A0 000207E0 90 83 02 D0 */ stw r4, 0x2d0(r3)
/* 800249A4 000207E4 80 A3 02 DC */ lwz r5, 0x2dc(r3)
/* 800249A8 000207E8 80 C5 00 00 */ lwz r6, 0x0(r5)
/* 800249AC 000207EC 48 00 00 08 */ b lbl_800249B4
.global lbl_800249B0
lbl_800249B0:
/* 800249B0 000207F0 80 C6 02 E0 */ lwz r6, 0x2e0(r6)
.global lbl_800249B4
lbl_800249B4:
/* 800249B4 000207F4 2C 06 00 00 */ cmpwi r6, 0x0
/* 800249B8 000207F8 41 82 00 14 */ beq lbl_800249CC
/* 800249BC 000207FC 80 86 02 D0 */ lwz r4, 0x2d0(r6)
/* 800249C0 00020800 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 800249C4 00020804 7C 04 00 00 */ cmpw r4, r0
/* 800249C8 00020808 40 81 FF E8 */ ble lbl_800249B0
.global lbl_800249CC
lbl_800249CC:
/* 800249CC 0002080C 2C 06 00 00 */ cmpwi r6, 0x0
/* 800249D0 00020810 40 82 00 34 */ bne lbl_80024A04
/* 800249D4 00020814 80 85 00 04 */ lwz r4, 0x4(r5)
/* 800249D8 00020818 2C 04 00 00 */ cmpwi r4, 0x0
/* 800249DC 0002081C 40 82 00 0C */ bne lbl_800249E8
/* 800249E0 00020820 90 65 00 00 */ stw r3, 0x0(r5)
/* 800249E4 00020824 48 00 00 08 */ b lbl_800249EC
.global lbl_800249E8
lbl_800249E8:
/* 800249E8 00020828 90 64 02 E0 */ stw r3, 0x2e0(r4)
.global lbl_800249EC
lbl_800249EC:
/* 800249EC 0002082C 38 00 00 00 */ li r0, 0x0
/* 800249F0 00020830 90 83 02 E4 */ stw r4, 0x2e4(r3)
/* 800249F4 00020834 80 83 02 DC */ lwz r4, 0x2dc(r3)
/* 800249F8 00020838 90 03 02 E0 */ stw r0, 0x2e0(r3)
/* 800249FC 0002083C 90 64 00 04 */ stw r3, 0x4(r4)
/* 80024A00 00020840 48 00 00 2C */ b lbl_80024A2C
.global lbl_80024A04
lbl_80024A04:
/* 80024A04 00020844 90 C3 02 E0 */ stw r6, 0x2e0(r3)
/* 80024A08 00020848 80 86 02 E4 */ lwz r4, 0x2e4(r6)
/* 80024A0C 0002084C 90 66 02 E4 */ stw r3, 0x2e4(r6)
/* 80024A10 00020850 2C 04 00 00 */ cmpwi r4, 0x0
/* 80024A14 00020854 90 83 02 E4 */ stw r4, 0x2e4(r3)
/* 80024A18 00020858 40 82 00 10 */ bne lbl_80024A28
/* 80024A1C 0002085C 80 83 02 DC */ lwz r4, 0x2dc(r3)
/* 80024A20 00020860 90 64 00 00 */ stw r3, 0x0(r4)
/* 80024A24 00020864 48 00 00 08 */ b lbl_80024A2C
.global lbl_80024A28
lbl_80024A28:
/* 80024A28 00020868 90 64 02 E0 */ stw r3, 0x2e0(r4)
.global lbl_80024A2C
lbl_80024A2C:
/* 80024A2C 0002086C 80 63 02 F0 */ lwz r3, 0x2f0(r3)
/* 80024A30 00020870 2C 03 00 00 */ cmpwi r3, 0x0
/* 80024A34 00020874 41 82 00 18 */ beq lbl_80024A4C
/* 80024A38 00020878 80 63 00 08 */ lwz r3, 0x8(r3)
/* 80024A3C 0002087C 48 00 00 14 */ b lbl_80024A50
.global lbl_80024A40
lbl_80024A40:
/* 80024A40 00020880 38 00 00 01 */ li r0, 0x1
/* 80024A44 00020884 90 0D E4 24 */ stw r0, RunQueueHint@sda21(r13)
/* 80024A48 00020888 90 83 02 D0 */ stw r4, 0x2d0(r3)
.global lbl_80024A4C
lbl_80024A4C:
/* 80024A4C 0002088C 38 60 00 00 */ li r3, 0x0
.global lbl_80024A50
lbl_80024A50:
/* 80024A50 00020890 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80024A54 00020894 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80024A58 00020898 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80024A5C 0002089C 7C 08 03 A6 */ mtlr r0
/* 80024A60 000208A0 38 21 00 10 */ addi r1, r1, 0x10
/* 80024A64 000208A4 4E 80 00 20 */ blr
/* 80024A68 000208A8 00 00 00 00 */ .4byte 0x00000000
/* 80024A6C 000208AC 00 00 00 00 */ .4byte 0x00000000
.global __OSPromoteThread
__OSPromoteThread:
/* 80024A70 000208B0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80024A74 000208B4 7C 08 02 A6 */ mflr r0
/* 80024A78 000208B8 90 01 00 14 */ stw r0, 0x14(r1)
/* 80024A7C 000208BC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80024A80 000208C0 7C 9F 23 78 */ mr r31, r4
.global lbl_80024A84
lbl_80024A84:
/* 80024A84 000208C4 80 03 02 CC */ lwz r0, 0x2cc(r3)
/* 80024A88 000208C8 2C 00 00 00 */ cmpwi r0, 0x0
/* 80024A8C 000208CC 41 81 00 20 */ bgt lbl_80024AAC
/* 80024A90 000208D0 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 80024A94 000208D4 7C 00 F8 00 */ cmpw r0, r31
/* 80024A98 000208D8 40 81 00 14 */ ble lbl_80024AAC
/* 80024A9C 000208DC 7F E4 FB 78 */ mr r4, r31
/* 80024AA0 000208E0 4B FF FE 21 */ bl SetEffectivePriority
/* 80024AA4 000208E4 2C 03 00 00 */ cmpwi r3, 0x0
/* 80024AA8 000208E8 40 82 FF DC */ bne lbl_80024A84
.global lbl_80024AAC
lbl_80024AAC:
/* 80024AAC 000208EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80024AB0 000208F0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80024AB4 000208F4 7C 08 03 A6 */ mtlr r0
/* 80024AB8 000208F8 38 21 00 10 */ addi r1, r1, 0x10
/* 80024ABC 000208FC 4E 80 00 20 */ blr
.global SelectThread
SelectThread:
/* 80024AC0 00020900 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80024AC4 00020904 7C 08 02 A6 */ mflr r0
/* 80024AC8 00020908 90 01 00 14 */ stw r0, 0x14(r1)
/* 80024ACC 0002090C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80024AD0 00020910 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80024AD4 00020914 7C 7E 1B 78 */ mr r30, r3
/* 80024AD8 00020918 80 0D E4 20 */ lwz r0, Reschedule@sda21(r13)
/* 80024ADC 0002091C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80024AE0 00020920 40 81 00 0C */ ble lbl_80024AEC
/* 80024AE4 00020924 38 60 00 00 */ li r3, 0x0
/* 80024AE8 00020928 48 00 01 EC */ b lbl_80024CD4
.global lbl_80024AEC
lbl_80024AEC:
/* 80024AEC 0002092C 4B FF 87 75 */ bl OSGetCurrentContext
/* 80024AF0 00020930 3C 80 80 00 */ lis r4, 0x800000E4@ha
/* 80024AF4 00020934 80 A4 00 E4 */ lwz r5, 0x800000E4@l(r4)
/* 80024AF8 00020938 7C 03 28 40 */ cmplw r3, r5
/* 80024AFC 0002093C 41 82 00 0C */ beq lbl_80024B08
/* 80024B00 00020940 38 60 00 00 */ li r3, 0x0
/* 80024B04 00020944 48 00 01 D0 */ b lbl_80024CD4
.global lbl_80024B08
lbl_80024B08:
/* 80024B08 00020948 2C 05 00 00 */ cmpwi r5, 0x0
/* 80024B0C 0002094C 41 82 00 C4 */ beq lbl_80024BD0
/* 80024B10 00020950 A0 05 02 C8 */ lhz r0, 0x2c8(r5)
/* 80024B14 00020954 28 00 00 02 */ cmplwi r0, 0x2
/* 80024B18 00020958 40 82 00 94 */ bne lbl_80024BAC
/* 80024B1C 0002095C 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80024B20 00020960 40 82 00 20 */ bne lbl_80024B40
/* 80024B24 00020964 80 6D E4 28 */ lwz r3, RunQueueBits@sda21(r13)
/* 80024B28 00020968 80 05 02 D0 */ lwz r0, 0x2d0(r5)
/* 80024B2C 0002096C 7C 63 00 34 */ cntlzw r3, r3
/* 80024B30 00020970 7C 00 18 00 */ cmpw r0, r3
/* 80024B34 00020974 41 81 00 0C */ bgt lbl_80024B40
/* 80024B38 00020978 38 60 00 00 */ li r3, 0x0
/* 80024B3C 0002097C 48 00 01 98 */ b lbl_80024CD4
.global lbl_80024B40
lbl_80024B40:
/* 80024B40 00020980 38 00 00 01 */ li r0, 0x1
/* 80024B44 00020984 B0 05 02 C8 */ sth r0, 0x2c8(r5)
/* 80024B48 00020988 3C 60 80 4A */ lis r3, RunQueue@ha
/* 80024B4C 0002098C 80 05 02 D0 */ lwz r0, 0x2d0(r5)
/* 80024B50 00020990 38 63 97 D0 */ addi r3, r3, RunQueue@l
/* 80024B54 00020994 54 00 18 38 */ slwi r0, r0, 3
/* 80024B58 00020998 7C 63 02 14 */ add r3, r3, r0
/* 80024B5C 0002099C 90 65 02 DC */ stw r3, 0x2dc(r5)
/* 80024B60 000209A0 80 83 00 04 */ lwz r4, 0x4(r3)
/* 80024B64 000209A4 2C 04 00 00 */ cmpwi r4, 0x0
/* 80024B68 000209A8 40 82 00 0C */ bne lbl_80024B74
/* 80024B6C 000209AC 90 A3 00 00 */ stw r5, 0x0(r3)
/* 80024B70 000209B0 48 00 00 08 */ b lbl_80024B78
.global lbl_80024B74
lbl_80024B74:
/* 80024B74 000209B4 90 A4 02 E0 */ stw r5, 0x2e0(r4)
.global lbl_80024B78
lbl_80024B78:
/* 80024B78 000209B8 90 85 02 E4 */ stw r4, 0x2e4(r5)
/* 80024B7C 000209BC 38 00 00 00 */ li r0, 0x0
/* 80024B80 000209C0 38 60 00 01 */ li r3, 0x1
/* 80024B84 000209C4 90 05 02 E0 */ stw r0, 0x2e0(r5)
/* 80024B88 000209C8 80 85 02 DC */ lwz r4, 0x2dc(r5)
/* 80024B8C 000209CC 90 A4 00 04 */ stw r5, 0x4(r4)
/* 80024B90 000209D0 80 05 02 D0 */ lwz r0, 0x2d0(r5)
/* 80024B94 000209D4 80 8D E4 28 */ lwz r4, RunQueueBits@sda21(r13)
/* 80024B98 000209D8 20 00 00 1F */ subfic r0, r0, 0x1f
/* 80024B9C 000209DC 7C 60 00 30 */ slw r0, r3, r0
/* 80024BA0 000209E0 7C 80 03 78 */ or r0, r4, r0
/* 80024BA4 000209E4 90 0D E4 28 */ stw r0, RunQueueBits@sda21(r13)
/* 80024BA8 000209E8 90 6D E4 24 */ stw r3, RunQueueHint@sda21(r13)
.global lbl_80024BAC
lbl_80024BAC:
/* 80024BAC 000209EC A0 05 01 A2 */ lhz r0, 0x1a2(r5)
/* 80024BB0 000209F0 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
/* 80024BB4 000209F4 40 82 00 1C */ bne lbl_80024BD0
/* 80024BB8 000209F8 7C A3 2B 78 */ mr r3, r5
/* 80024BBC 000209FC 4B FF 86 B5 */ bl OSSaveContext
/* 80024BC0 00020A00 2C 03 00 00 */ cmpwi r3, 0x0
/* 80024BC4 00020A04 41 82 00 0C */ beq lbl_80024BD0
/* 80024BC8 00020A08 38 60 00 00 */ li r3, 0x0
/* 80024BCC 00020A0C 48 00 01 08 */ b lbl_80024CD4
.global lbl_80024BD0
lbl_80024BD0:
/* 80024BD0 00020A10 80 0D E4 28 */ lwz r0, RunQueueBits@sda21(r13)
/* 80024BD4 00020A14 2C 00 00 00 */ cmpwi r0, 0x0
/* 80024BD8 00020A18 40 82 00 60 */ bne lbl_80024C38
/* 80024BDC 00020A1C 81 8D 80 D0 */ lwz r12, SwitchThreadCallback@sda21(r13)
/* 80024BE0 00020A20 3F E0 80 00 */ lis r31, 0x800000E4@ha
/* 80024BE4 00020A24 80 7F 00 E4 */ lwz r3, 0x800000E4@l(r31)
/* 80024BE8 00020A28 38 80 00 00 */ li r4, 0x0
/* 80024BEC 00020A2C 7D 89 03 A6 */ mtctr r12
/* 80024BF0 00020A30 4E 80 04 21 */ bctrl
/* 80024BF4 00020A34 38 00 00 00 */ li r0, 0x0
/* 80024BF8 00020A38 3C 60 80 4A */ lis r3, IdleContext@ha
/* 80024BFC 00020A3C 90 1F 00 E4 */ stw r0, 0xe4(r31)
/* 80024C00 00020A40 38 63 98 D0 */ addi r3, r3, IdleContext@l
/* 80024C04 00020A44 4B FF 85 FD */ bl OSSetCurrentContext
.global lbl_80024C08
lbl_80024C08:
/* 80024C08 00020A48 4B FF CC 39 */ bl OSEnableInterrupts
/* 80024C0C 00020A4C 60 00 00 00 */ nop
.global lbl_80024C10
lbl_80024C10:
/* 80024C10 00020A50 80 0D E4 28 */ lwz r0, RunQueueBits@sda21(r13)
/* 80024C14 00020A54 2C 00 00 00 */ cmpwi r0, 0x0
/* 80024C18 00020A58 41 82 FF F8 */ beq lbl_80024C10
/* 80024C1C 00020A5C 4B FF CC 05 */ bl OSDisableInterrupts
/* 80024C20 00020A60 80 0D E4 28 */ lwz r0, RunQueueBits@sda21(r13)
/* 80024C24 00020A64 2C 00 00 00 */ cmpwi r0, 0x0
/* 80024C28 00020A68 41 82 FF E0 */ beq lbl_80024C08
/* 80024C2C 00020A6C 3C 60 80 4A */ lis r3, IdleContext@ha
/* 80024C30 00020A70 38 63 98 D0 */ addi r3, r3, IdleContext@l
/* 80024C34 00020A74 4B FF 88 0D */ bl OSClearContext
.global lbl_80024C38
lbl_80024C38:
/* 80024C38 00020A78 38 80 00 00 */ li r4, 0x0
/* 80024C3C 00020A7C 90 8D E4 24 */ stw r4, RunQueueHint@sda21(r13)
/* 80024C40 00020A80 80 0D E4 28 */ lwz r0, RunQueueBits@sda21(r13)
/* 80024C44 00020A84 3C 60 80 4A */ lis r3, RunQueue@ha
/* 80024C48 00020A88 38 63 97 D0 */ addi r3, r3, RunQueue@l
/* 80024C4C 00020A8C 7C 05 00 34 */ cntlzw r5, r0
/* 80024C50 00020A90 54 A0 18 38 */ slwi r0, r5, 3
/* 80024C54 00020A94 7F C3 00 6E */ lwzux r30, r3, r0
/* 80024C58 00020A98 80 DE 02 E0 */ lwz r6, 0x2e0(r30)
/* 80024C5C 00020A9C 2C 06 00 00 */ cmpwi r6, 0x0
/* 80024C60 00020AA0 40 82 00 0C */ bne lbl_80024C6C
/* 80024C64 00020AA4 90 83 00 04 */ stw r4, 0x4(r3)
/* 80024C68 00020AA8 48 00 00 08 */ b lbl_80024C70
.global lbl_80024C6C
lbl_80024C6C:
/* 80024C6C 00020AAC 90 86 02 E4 */ stw r4, 0x2e4(r6)
.global lbl_80024C70
lbl_80024C70:
/* 80024C70 00020AB0 2C 06 00 00 */ cmpwi r6, 0x0
/* 80024C74 00020AB4 90 C3 00 00 */ stw r6, 0x0(r3)
/* 80024C78 00020AB8 40 82 00 1C */ bne lbl_80024C94
/* 80024C7C 00020ABC 20 05 00 1F */ subfic r0, r5, 0x1f
/* 80024C80 00020AC0 38 60 00 01 */ li r3, 0x1
/* 80024C84 00020AC4 80 8D E4 28 */ lwz r4, RunQueueBits@sda21(r13)
/* 80024C88 00020AC8 7C 60 00 30 */ slw r0, r3, r0
/* 80024C8C 00020ACC 7C 80 00 78 */ andc r0, r4, r0
/* 80024C90 00020AD0 90 0D E4 28 */ stw r0, RunQueueBits@sda21(r13)
.global lbl_80024C94
lbl_80024C94:
/* 80024C94 00020AD4 38 00 00 00 */ li r0, 0x0
/* 80024C98 00020AD8 90 1E 02 DC */ stw r0, 0x2dc(r30)
/* 80024C9C 00020ADC 38 00 00 02 */ li r0, 0x2
/* 80024CA0 00020AE0 3F E0 80 00 */ lis r31, 0x800000E4@ha
/* 80024CA4 00020AE4 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 80024CA8 00020AE8 7F C4 F3 78 */ mr r4, r30
/* 80024CAC 00020AEC 81 8D 80 D0 */ lwz r12, SwitchThreadCallback@sda21(r13)
/* 80024CB0 00020AF0 80 7F 00 E4 */ lwz r3, 0x800000E4@l(r31)
/* 80024CB4 00020AF4 7D 89 03 A6 */ mtctr r12
/* 80024CB8 00020AF8 4E 80 04 21 */ bctrl
/* 80024CBC 00020AFC 93 DF 00 E4 */ stw r30, 0xe4(r31)
/* 80024CC0 00020B00 7F C3 F3 78 */ mr r3, r30
/* 80024CC4 00020B04 4B FF 85 3D */ bl OSSetCurrentContext
/* 80024CC8 00020B08 7F C3 F3 78 */ mr r3, r30
/* 80024CCC 00020B0C 4B FF 86 25 */ bl OSLoadContext
/* 80024CD0 00020B10 7F C3 F3 78 */ mr r3, r30
.global lbl_80024CD4
lbl_80024CD4:
/* 80024CD4 00020B14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80024CD8 00020B18 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80024CDC 00020B1C 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80024CE0 00020B20 7C 08 03 A6 */ mtlr r0
/* 80024CE4 00020B24 38 21 00 10 */ addi r1, r1, 0x10
/* 80024CE8 00020B28 4E 80 00 20 */ blr
/* 80024CEC 00020B2C 00 00 00 00 */ .4byte 0x00000000
.global __OSReschedule
__OSReschedule:
/* 80024CF0 00020B30 80 0D E4 24 */ lwz r0, RunQueueHint@sda21(r13)
/* 80024CF4 00020B34 2C 00 00 00 */ cmpwi r0, 0x0
/* 80024CF8 00020B38 4D 82 00 20 */ beqlr
/* 80024CFC 00020B3C 38 60 00 00 */ li r3, 0x0
/* 80024D00 00020B40 4B FF FD C0 */ b SelectThread
/* 80024D04 00020B44 4E 80 00 20 */ blr
/* 80024D08 00020B48 00 00 00 00 */ .4byte 0x00000000
/* 80024D0C 00020B4C 00 00 00 00 */ .4byte 0x00000000
.global OSYieldThread
OSYieldThread:
/* 80024D10 00020B50 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80024D14 00020B54 7C 08 02 A6 */ mflr r0
/* 80024D18 00020B58 90 01 00 14 */ stw r0, 0x14(r1)
/* 80024D1C 00020B5C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80024D20 00020B60 4B FF CB 01 */ bl OSDisableInterrupts
/* 80024D24 00020B64 7C 7F 1B 78 */ mr r31, r3
/* 80024D28 00020B68 38 60 00 01 */ li r3, 0x1
/* 80024D2C 00020B6C 4B FF FD 95 */ bl SelectThread
/* 80024D30 00020B70 7F E3 FB 78 */ mr r3, r31
/* 80024D34 00020B74 4B FF CB 2D */ bl OSRestoreInterrupts
/* 80024D38 00020B78 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80024D3C 00020B7C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80024D40 00020B80 7C 08 03 A6 */ mtlr r0
/* 80024D44 00020B84 38 21 00 10 */ addi r1, r1, 0x10
/* 80024D48 00020B88 4E 80 00 20 */ blr
/* 80024D4C 00020B8C 00 00 00 00 */ .4byte 0x00000000
.global OSCreateThread
OSCreateThread:
/* 80024D50 00020B90 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80024D54 00020B94 7C 08 02 A6 */ mflr r0
/* 80024D58 00020B98 90 01 00 24 */ stw r0, 0x24(r1)
/* 80024D5C 00020B9C 39 61 00 20 */ addi r11, r1, 0x20
/* 80024D60 00020BA0 4B FE 25 D9 */ bl lbl_80007338
/* 80024D64 00020BA4 2C 08 00 00 */ cmpwi r8, 0x0
/* 80024D68 00020BA8 7C 7F 1B 78 */ mr r31, r3
/* 80024D6C 00020BAC 7C BA 2B 78 */ mr r26, r5
/* 80024D70 00020BB0 7C DB 33 78 */ mr r27, r6
/* 80024D74 00020BB4 7C FC 3B 78 */ mr r28, r7
/* 80024D78 00020BB8 41 80 00 0C */ blt lbl_80024D84
/* 80024D7C 00020BBC 2C 08 00 1F */ cmpwi r8, 0x1f
/* 80024D80 00020BC0 40 81 00 0C */ ble lbl_80024D8C
.global lbl_80024D84
lbl_80024D84:
/* 80024D84 00020BC4 38 60 00 00 */ li r3, 0x0
/* 80024D88 00020BC8 48 00 02 1C */ b lbl_80024FA4
.global lbl_80024D8C
lbl_80024D8C:
/* 80024D8C 00020BCC 38 E0 00 01 */ li r7, 0x1
/* 80024D90 00020BD0 55 20 07 FE */ clrlwi r0, r9, 31
/* 80024D94 00020BD4 3B C0 00 00 */ li r30, 0x0
/* 80024D98 00020BD8 3B A0 FF FF */ li r29, -0x1
/* 80024D9C 00020BDC 54 C6 00 38 */ clrrwi r6, r6, 3
/* 80024DA0 00020BE0 B0 E3 02 C8 */ sth r7, 0x2c8(r3)
/* 80024DA4 00020BE4 38 A6 FF F8 */ addi r5, r6, -0x8
/* 80024DA8 00020BE8 B0 03 02 CA */ sth r0, 0x2ca(r3)
/* 80024DAC 00020BEC 91 03 02 D4 */ stw r8, 0x2d4(r3)
/* 80024DB0 00020BF0 91 03 02 D0 */ stw r8, 0x2d0(r3)
/* 80024DB4 00020BF4 90 E3 02 CC */ stw r7, 0x2cc(r3)
/* 80024DB8 00020BF8 93 A3 02 D8 */ stw r29, 0x2d8(r3)
/* 80024DBC 00020BFC 93 C3 02 F0 */ stw r30, 0x2f0(r3)
/* 80024DC0 00020C00 93 C3 02 EC */ stw r30, 0x2ec(r3)
/* 80024DC4 00020C04 93 C3 02 E8 */ stw r30, 0x2e8(r3)
/* 80024DC8 00020C08 93 C3 02 F8 */ stw r30, 0x2f8(r3)
/* 80024DCC 00020C0C 93 C3 02 F4 */ stw r30, 0x2f4(r3)
/* 80024DD0 00020C10 93 C6 FF F8 */ stw r30, -0x8(r6)
/* 80024DD4 00020C14 93 C6 FF FC */ stw r30, -0x4(r6)
/* 80024DD8 00020C18 4B FF 86 99 */ bl OSInitContext
/* 80024DDC 00020C1C 3C 60 80 02 */ lis r3, OSExitThread@ha
/* 80024DE0 00020C20 7C 9C D8 50 */ subf r4, r28, r27
/* 80024DE4 00020C24 38 63 4F C0 */ addi r3, r3, OSExitThread@l
/* 80024DE8 00020C28 90 7F 00 84 */ stw r3, 0x84(r31)
/* 80024DEC 00020C2C 3C 60 DE AE */ lis r3, 0xDEADBABE@ha
/* 80024DF0 00020C30 93 5F 00 0C */ stw r26, 0xc(r31)
/* 80024DF4 00020C34 38 03 BA BE */ addi r0, r3, 0xDEADBABE@l
/* 80024DF8 00020C38 93 7F 03 04 */ stw r27, 0x304(r31)
/* 80024DFC 00020C3C 90 9F 03 08 */ stw r4, 0x308(r31)
/* 80024E00 00020C40 90 04 00 00 */ stw r0, 0x0(r4)
/* 80024E04 00020C44 93 DF 03 0C */ stw r30, 0x30c(r31)
/* 80024E08 00020C48 93 DF 03 10 */ stw r30, 0x310(r31)
/* 80024E0C 00020C4C 93 DF 03 14 */ stw r30, 0x314(r31)
/* 80024E10 00020C50 4B FF CA 11 */ bl OSDisableInterrupts
/* 80024E14 00020C54 3C 80 80 4A */ lis r4, __OSErrorTable@ha
/* 80024E18 00020C58 38 84 91 10 */ addi r4, r4, __OSErrorTable@l
/* 80024E1C 00020C5C 80 04 00 40 */ lwz r0, 0x40(r4)
/* 80024E20 00020C60 2C 00 00 00 */ cmpwi r0, 0x0
/* 80024E24 00020C64 41 82 01 48 */ beq lbl_80024F6C
/* 80024E28 00020C68 80 BF 01 9C */ lwz r5, 0x19c(r31)
/* 80024E2C 00020C6C 38 00 00 02 */ li r0, 0x2
/* 80024E30 00020C70 A0 9F 01 A2 */ lhz r4, 0x1a2(r31)
/* 80024E34 00020C74 38 DF 00 90 */ addi r6, r31, 0x90
/* 80024E38 00020C78 60 A5 09 00 */ ori r5, r5, 0x900
/* 80024E3C 00020C7C 90 BF 01 9C */ stw r5, 0x19c(r31)
/* 80024E40 00020C80 60 84 00 01 */ ori r4, r4, 0x1
/* 80024E44 00020C84 B0 9F 01 A2 */ sth r4, 0x1a2(r31)
/* 80024E48 00020C88 38 BF 01 C8 */ addi r5, r31, 0x1c8
/* 80024E4C 00020C8C 80 8D 80 A8 */ lwz r4, __OSFpscrEnableBits@sda21(r13)
/* 80024E50 00020C90 54 84 06 38 */ rlwinm r4, r4, 0, 24, 28
/* 80024E54 00020C94 60 84 00 04 */ ori r4, r4, 0x4
/* 80024E58 00020C98 90 9F 01 94 */ stw r4, 0x194(r31)
/* 80024E5C 00020C9C 7C 09 03 A6 */ mtctr r0
.global lbl_80024E60
lbl_80024E60:
/* 80024E60 00020CA0 93 A6 00 04 */ stw r29, 0x4(r6)
/* 80024E64 00020CA4 93 A6 00 00 */ stw r29, 0x0(r6)
/* 80024E68 00020CA8 93 A5 00 04 */ stw r29, 0x4(r5)
/* 80024E6C 00020CAC 93 A5 00 00 */ stw r29, 0x0(r5)
/* 80024E70 00020CB0 93 A6 00 0C */ stw r29, 0xc(r6)
/* 80024E74 00020CB4 93 A6 00 08 */ stw r29, 0x8(r6)
/* 80024E78 00020CB8 93 A5 00 0C */ stw r29, 0xc(r5)
/* 80024E7C 00020CBC 93 A5 00 08 */ stw r29, 0x8(r5)
/* 80024E80 00020CC0 93 A6 00 14 */ stw r29, 0x14(r6)
/* 80024E84 00020CC4 93 A6 00 10 */ stw r29, 0x10(r6)
/* 80024E88 00020CC8 93 A5 00 14 */ stw r29, 0x14(r5)
/* 80024E8C 00020CCC 93 A5 00 10 */ stw r29, 0x10(r5)
/* 80024E90 00020CD0 93 A6 00 1C */ stw r29, 0x1c(r6)
/* 80024E94 00020CD4 93 A6 00 18 */ stw r29, 0x18(r6)
/* 80024E98 00020CD8 93 A5 00 1C */ stw r29, 0x1c(r5)
/* 80024E9C 00020CDC 93 A5 00 18 */ stw r29, 0x18(r5)
/* 80024EA0 00020CE0 93 A6 00 24 */ stw r29, 0x24(r6)
/* 80024EA4 00020CE4 93 A6 00 20 */ stw r29, 0x20(r6)
/* 80024EA8 00020CE8 93 A5 00 24 */ stw r29, 0x24(r5)
/* 80024EAC 00020CEC 93 A5 00 20 */ stw r29, 0x20(r5)
/* 80024EB0 00020CF0 93 A6 00 2C */ stw r29, 0x2c(r6)
/* 80024EB4 00020CF4 93 A6 00 28 */ stw r29, 0x28(r6)
/* 80024EB8 00020CF8 93 A5 00 2C */ stw r29, 0x2c(r5)
/* 80024EBC 00020CFC 93 A5 00 28 */ stw r29, 0x28(r5)
/* 80024EC0 00020D00 93 A6 00 34 */ stw r29, 0x34(r6)
/* 80024EC4 00020D04 93 A6 00 30 */ stw r29, 0x30(r6)
/* 80024EC8 00020D08 93 A5 00 34 */ stw r29, 0x34(r5)
/* 80024ECC 00020D0C 93 A5 00 30 */ stw r29, 0x30(r5)
/* 80024ED0 00020D10 93 A6 00 3C */ stw r29, 0x3c(r6)
/* 80024ED4 00020D14 93 A6 00 38 */ stw r29, 0x38(r6)
/* 80024ED8 00020D18 93 A5 00 3C */ stw r29, 0x3c(r5)
/* 80024EDC 00020D1C 93 A5 00 38 */ stw r29, 0x38(r5)
/* 80024EE0 00020D20 93 A6 00 44 */ stw r29, 0x44(r6)
/* 80024EE4 00020D24 93 A6 00 40 */ stw r29, 0x40(r6)
/* 80024EE8 00020D28 93 A5 00 44 */ stw r29, 0x44(r5)
/* 80024EEC 00020D2C 93 A5 00 40 */ stw r29, 0x40(r5)
/* 80024EF0 00020D30 93 A6 00 4C */ stw r29, 0x4c(r6)
/* 80024EF4 00020D34 93 A6 00 48 */ stw r29, 0x48(r6)
/* 80024EF8 00020D38 93 A5 00 4C */ stw r29, 0x4c(r5)
/* 80024EFC 00020D3C 93 A5 00 48 */ stw r29, 0x48(r5)
/* 80024F00 00020D40 93 A6 00 54 */ stw r29, 0x54(r6)
/* 80024F04 00020D44 93 A6 00 50 */ stw r29, 0x50(r6)
/* 80024F08 00020D48 93 A5 00 54 */ stw r29, 0x54(r5)
/* 80024F0C 00020D4C 93 A5 00 50 */ stw r29, 0x50(r5)
/* 80024F10 00020D50 93 A6 00 5C */ stw r29, 0x5c(r6)
/* 80024F14 00020D54 93 A6 00 58 */ stw r29, 0x58(r6)
/* 80024F18 00020D58 93 A5 00 5C */ stw r29, 0x5c(r5)
/* 80024F1C 00020D5C 93 A5 00 58 */ stw r29, 0x58(r5)
/* 80024F20 00020D60 93 A6 00 64 */ stw r29, 0x64(r6)
/* 80024F24 00020D64 93 A6 00 60 */ stw r29, 0x60(r6)
/* 80024F28 00020D68 93 A5 00 64 */ stw r29, 0x64(r5)
/* 80024F2C 00020D6C 93 A5 00 60 */ stw r29, 0x60(r5)
/* 80024F30 00020D70 93 A6 00 6C */ stw r29, 0x6c(r6)
/* 80024F34 00020D74 93 A6 00 68 */ stw r29, 0x68(r6)
/* 80024F38 00020D78 93 A5 00 6C */ stw r29, 0x6c(r5)
/* 80024F3C 00020D7C 93 A5 00 68 */ stw r29, 0x68(r5)
/* 80024F40 00020D80 93 A6 00 74 */ stw r29, 0x74(r6)
/* 80024F44 00020D84 93 A6 00 70 */ stw r29, 0x70(r6)
/* 80024F48 00020D88 93 A5 00 74 */ stw r29, 0x74(r5)
/* 80024F4C 00020D8C 93 A5 00 70 */ stw r29, 0x70(r5)
/* 80024F50 00020D90 93 A6 00 7C */ stw r29, 0x7c(r6)
/* 80024F54 00020D94 93 A6 00 78 */ stw r29, 0x78(r6)
/* 80024F58 00020D98 38 C6 00 80 */ addi r6, r6, 0x80
/* 80024F5C 00020D9C 93 A5 00 7C */ stw r29, 0x7c(r5)
/* 80024F60 00020DA0 93 A5 00 78 */ stw r29, 0x78(r5)
/* 80024F64 00020DA4 38 A5 00 80 */ addi r5, r5, 0x80
/* 80024F68 00020DA8 42 00 FE F8 */ bdnz lbl_80024E60
.global lbl_80024F6C
lbl_80024F6C:
/* 80024F6C 00020DAC 3C 80 80 00 */ lis r4, 0x800000E0@ha
/* 80024F70 00020DB0 80 A4 00 E0 */ lwz r5, 0x800000E0@l(r4)
/* 80024F74 00020DB4 2C 05 00 00 */ cmpwi r5, 0x0
/* 80024F78 00020DB8 40 82 00 0C */ bne lbl_80024F84
/* 80024F7C 00020DBC 93 E4 00 DC */ stw r31, 0xdc(r4)
/* 80024F80 00020DC0 48 00 00 08 */ b lbl_80024F88
.global lbl_80024F84
lbl_80024F84:
/* 80024F84 00020DC4 93 E5 02 FC */ stw r31, 0x2fc(r5)
.global lbl_80024F88
lbl_80024F88:
/* 80024F88 00020DC8 38 00 00 00 */ li r0, 0x0
/* 80024F8C 00020DCC 90 BF 03 00 */ stw r5, 0x300(r31)
/* 80024F90 00020DD0 3C 80 80 00 */ lis r4, 0x800000E0@ha
/* 80024F94 00020DD4 90 1F 02 FC */ stw r0, 0x2fc(r31)
/* 80024F98 00020DD8 93 E4 00 E0 */ stw r31, 0x800000E0@l(r4)
/* 80024F9C 00020DDC 4B FF C8 C5 */ bl OSRestoreInterrupts
/* 80024FA0 00020DE0 38 60 00 01 */ li r3, 0x1
.global lbl_80024FA4
lbl_80024FA4:
/* 80024FA4 00020DE4 39 61 00 20 */ addi r11, r1, 0x20
/* 80024FA8 00020DE8 4B FE 23 DD */ bl lbl_80007384
/* 80024FAC 00020DEC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80024FB0 00020DF0 7C 08 03 A6 */ mtlr r0
/* 80024FB4 00020DF4 38 21 00 20 */ addi r1, r1, 0x20
/* 80024FB8 00020DF8 4E 80 00 20 */ blr
/* 80024FBC 00020DFC 00 00 00 00 */ .4byte 0x00000000
.global OSExitThread
OSExitThread:
/* 80024FC0 00020E00 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80024FC4 00020E04 7C 08 02 A6 */ mflr r0
/* 80024FC8 00020E08 90 01 00 24 */ stw r0, 0x24(r1)
/* 80024FCC 00020E0C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80024FD0 00020E10 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80024FD4 00020E14 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80024FD8 00020E18 93 81 00 10 */ stw r28, 0x10(r1)
/* 80024FDC 00020E1C 7C 7C 1B 78 */ mr r28, r3
/* 80024FE0 00020E20 4B FF C8 41 */ bl OSDisableInterrupts
/* 80024FE4 00020E24 3F E0 80 00 */ lis r31, 0x800000E4@ha
/* 80024FE8 00020E28 7C 7D 1B 78 */ mr r29, r3
/* 80024FEC 00020E2C 83 DF 00 E4 */ lwz r30, 0x800000E4@l(r31)
/* 80024FF0 00020E30 7F C3 F3 78 */ mr r3, r30
/* 80024FF4 00020E34 4B FF 84 4D */ bl OSClearContext
/* 80024FF8 00020E38 A0 1E 02 CA */ lhz r0, 0x2ca(r30)
/* 80024FFC 00020E3C 54 00 07 FF */ clrlwi. r0, r0, 31
/* 80025000 00020E40 41 82 00 44 */ beq lbl_80025044
/* 80025004 00020E44 80 9E 02 FC */ lwz r4, 0x2fc(r30)
/* 80025008 00020E48 80 7E 03 00 */ lwz r3, 0x300(r30)
/* 8002500C 00020E4C 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025010 00020E50 40 82 00 0C */ bne lbl_8002501C
/* 80025014 00020E54 90 7F 00 E0 */ stw r3, 0xe0(r31)
/* 80025018 00020E58 48 00 00 08 */ b lbl_80025020
.global lbl_8002501C
lbl_8002501C:
/* 8002501C 00020E5C 90 64 03 00 */ stw r3, 0x300(r4)
.global lbl_80025020
lbl_80025020:
/* 80025020 00020E60 2C 03 00 00 */ cmpwi r3, 0x0
/* 80025024 00020E64 40 82 00 10 */ bne lbl_80025034
/* 80025028 00020E68 3C 60 80 00 */ lis r3, 0x800000DC@ha
/* 8002502C 00020E6C 90 83 00 DC */ stw r4, 0x800000DC@l(r3)
/* 80025030 00020E70 48 00 00 08 */ b lbl_80025038
.global lbl_80025034
lbl_80025034:
/* 80025034 00020E74 90 83 02 FC */ stw r4, 0x2fc(r3)
.global lbl_80025038
lbl_80025038:
/* 80025038 00020E78 38 00 00 00 */ li r0, 0x0
/* 8002503C 00020E7C B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 80025040 00020E80 48 00 00 10 */ b lbl_80025050
.global lbl_80025044
lbl_80025044:
/* 80025044 00020E84 38 00 00 08 */ li r0, 0x8
/* 80025048 00020E88 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 8002504C 00020E8C 93 9E 02 D8 */ stw r28, 0x2d8(r30)
.global lbl_80025050
lbl_80025050:
/* 80025050 00020E90 7F C3 F3 78 */ mr r3, r30
/* 80025054 00020E94 4B FF DC FD */ bl __OSUnlockAllMutex
/* 80025058 00020E98 38 7E 02 E8 */ addi r3, r30, 0x2e8
/* 8002505C 00020E9C 48 00 08 A5 */ bl OSWakeupThread
/* 80025060 00020EA0 38 00 00 01 */ li r0, 0x1
/* 80025064 00020EA4 90 0D E4 24 */ stw r0, RunQueueHint@sda21(r13)
/* 80025068 00020EA8 80 0D E4 24 */ lwz r0, RunQueueHint@sda21(r13)
/* 8002506C 00020EAC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025070 00020EB0 41 82 00 0C */ beq lbl_8002507C
/* 80025074 00020EB4 38 60 00 00 */ li r3, 0x0
/* 80025078 00020EB8 4B FF FA 49 */ bl SelectThread
.global lbl_8002507C
lbl_8002507C:
/* 8002507C 00020EBC 7F A3 EB 78 */ mr r3, r29
/* 80025080 00020EC0 4B FF C7 E1 */ bl OSRestoreInterrupts
/* 80025084 00020EC4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80025088 00020EC8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8002508C 00020ECC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80025090 00020ED0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80025094 00020ED4 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80025098 00020ED8 7C 08 03 A6 */ mtlr r0
/* 8002509C 00020EDC 38 21 00 20 */ addi r1, r1, 0x20
/* 800250A0 00020EE0 4E 80 00 20 */ blr
/* 800250A4 00020EE4 00 00 00 00 */ .4byte 0x00000000
/* 800250A8 00020EE8 00 00 00 00 */ .4byte 0x00000000
/* 800250AC 00020EEC 00 00 00 00 */ .4byte 0x00000000
.global OSCancelThread
OSCancelThread:
/* 800250B0 00020EF0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800250B4 00020EF4 7C 08 02 A6 */ mflr r0
/* 800250B8 00020EF8 90 01 00 14 */ stw r0, 0x14(r1)
/* 800250BC 00020EFC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800250C0 00020F00 93 C1 00 08 */ stw r30, 0x8(r1)
/* 800250C4 00020F04 7C 7E 1B 78 */ mr r30, r3
/* 800250C8 00020F08 4B FF C7 59 */ bl OSDisableInterrupts
/* 800250CC 00020F0C 7C 7F 1B 78 */ mr r31, r3
/* 800250D0 00020F10 7F C3 F3 78 */ mr r3, r30
/* 800250D4 00020F14 4B FF 6E CD */ bl __OSCancelInternalAlarms
/* 800250D8 00020F18 A0 1E 02 C8 */ lhz r0, 0x2c8(r30)
/* 800250DC 00020F1C 2C 00 00 01 */ cmpwi r0, 0x1
/* 800250E0 00020F20 41 82 00 18 */ beq lbl_800250F8
/* 800250E4 00020F24 2C 00 00 02 */ cmpwi r0, 0x2
/* 800250E8 00020F28 41 82 00 28 */ beq lbl_80025110
/* 800250EC 00020F2C 2C 00 00 04 */ cmpwi r0, 0x4
/* 800250F0 00020F30 41 82 00 2C */ beq lbl_8002511C
/* 800250F4 00020F34 48 00 00 E0 */ b lbl_800251D4
.global lbl_800250F8
lbl_800250F8:
/* 800250F8 00020F38 80 1E 02 CC */ lwz r0, 0x2cc(r30)
/* 800250FC 00020F3C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025100 00020F40 41 81 00 E0 */ bgt lbl_800251E0
/* 80025104 00020F44 7F C3 F3 78 */ mr r3, r30
/* 80025108 00020F48 4B FF F7 09 */ bl UnsetRun
/* 8002510C 00020F4C 48 00 00 D4 */ b lbl_800251E0
.global lbl_80025110
lbl_80025110:
/* 80025110 00020F50 38 00 00 01 */ li r0, 0x1
/* 80025114 00020F54 90 0D E4 24 */ stw r0, RunQueueHint@sda21(r13)
/* 80025118 00020F58 48 00 00 C8 */ b lbl_800251E0
.global lbl_8002511C
lbl_8002511C:
/* 8002511C 00020F5C 80 9E 02 E0 */ lwz r4, 0x2e0(r30)
/* 80025120 00020F60 80 BE 02 E4 */ lwz r5, 0x2e4(r30)
/* 80025124 00020F64 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025128 00020F68 40 82 00 10 */ bne lbl_80025138
/* 8002512C 00020F6C 80 7E 02 DC */ lwz r3, 0x2dc(r30)
/* 80025130 00020F70 90 A3 00 04 */ stw r5, 0x4(r3)
/* 80025134 00020F74 48 00 00 08 */ b lbl_8002513C
.global lbl_80025138
lbl_80025138:
/* 80025138 00020F78 90 A4 02 E4 */ stw r5, 0x2e4(r4)
.global lbl_8002513C
lbl_8002513C:
/* 8002513C 00020F7C 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025140 00020F80 40 82 00 10 */ bne lbl_80025150
/* 80025144 00020F84 80 7E 02 DC */ lwz r3, 0x2dc(r30)
/* 80025148 00020F88 90 83 00 00 */ stw r4, 0x0(r3)
/* 8002514C 00020F8C 48 00 00 08 */ b lbl_80025154
.global lbl_80025150
lbl_80025150:
/* 80025150 00020F90 90 85 02 E0 */ stw r4, 0x2e0(r5)
.global lbl_80025154
lbl_80025154:
/* 80025154 00020F94 80 1E 02 CC */ lwz r0, 0x2cc(r30)
/* 80025158 00020F98 38 60 00 00 */ li r3, 0x0
/* 8002515C 00020F9C 90 7E 02 DC */ stw r3, 0x2dc(r30)
/* 80025160 00020FA0 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025164 00020FA4 41 81 00 7C */ bgt lbl_800251E0
/* 80025168 00020FA8 80 7E 02 F0 */ lwz r3, 0x2f0(r30)
/* 8002516C 00020FAC 2C 03 00 00 */ cmpwi r3, 0x0
/* 80025170 00020FB0 41 82 00 70 */ beq lbl_800251E0
/* 80025174 00020FB4 80 63 00 08 */ lwz r3, 0x8(r3)
.global lbl_80025178
lbl_80025178:
/* 80025178 00020FB8 80 03 02 CC */ lwz r0, 0x2cc(r3)
/* 8002517C 00020FBC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025180 00020FC0 41 81 00 60 */ bgt lbl_800251E0
/* 80025184 00020FC4 80 83 02 D4 */ lwz r4, 0x2d4(r3)
/* 80025188 00020FC8 80 A3 02 F4 */ lwz r5, 0x2f4(r3)
/* 8002518C 00020FCC 48 00 00 24 */ b lbl_800251B0
.global lbl_80025190
lbl_80025190:
/* 80025190 00020FD0 80 C5 00 00 */ lwz r6, 0x0(r5)
/* 80025194 00020FD4 2C 06 00 00 */ cmpwi r6, 0x0
/* 80025198 00020FD8 41 82 00 14 */ beq lbl_800251AC
/* 8002519C 00020FDC 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 800251A0 00020FE0 7C 00 20 00 */ cmpw r0, r4
/* 800251A4 00020FE4 40 80 00 08 */ bge lbl_800251AC
/* 800251A8 00020FE8 7C 04 03 78 */ mr r4, r0
.global lbl_800251AC
lbl_800251AC:
/* 800251AC 00020FEC 80 A5 00 10 */ lwz r5, 0x10(r5)
.global lbl_800251B0
lbl_800251B0:
/* 800251B0 00020FF0 2C 05 00 00 */ cmpwi r5, 0x0
/* 800251B4 00020FF4 40 82 FF DC */ bne lbl_80025190
/* 800251B8 00020FF8 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 800251BC 00020FFC 7C 00 20 00 */ cmpw r0, r4
/* 800251C0 00021000 41 82 00 20 */ beq lbl_800251E0
/* 800251C4 00021004 4B FF F6 FD */ bl SetEffectivePriority
/* 800251C8 00021008 2C 03 00 00 */ cmpwi r3, 0x0
/* 800251CC 0002100C 40 82 FF AC */ bne lbl_80025178
/* 800251D0 00021010 48 00 00 10 */ b lbl_800251E0
.global lbl_800251D4
lbl_800251D4:
/* 800251D4 00021014 7F E3 FB 78 */ mr r3, r31
/* 800251D8 00021018 4B FF C6 89 */ bl OSRestoreInterrupts
/* 800251DC 0002101C 48 00 00 90 */ b lbl_8002526C
.global lbl_800251E0
lbl_800251E0:
/* 800251E0 00021020 7F C3 F3 78 */ mr r3, r30
/* 800251E4 00021024 4B FF 82 5D */ bl OSClearContext
/* 800251E8 00021028 A0 1E 02 CA */ lhz r0, 0x2ca(r30)
/* 800251EC 0002102C 54 00 07 FF */ clrlwi. r0, r0, 31
/* 800251F0 00021030 41 82 00 48 */ beq lbl_80025238
/* 800251F4 00021034 80 9E 02 FC */ lwz r4, 0x2fc(r30)
/* 800251F8 00021038 80 BE 03 00 */ lwz r5, 0x300(r30)
/* 800251FC 0002103C 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025200 00021040 40 82 00 10 */ bne lbl_80025210
/* 80025204 00021044 3C 60 80 00 */ lis r3, 0x800000E0@ha
/* 80025208 00021048 90 A3 00 E0 */ stw r5, 0x800000E0@l(r3)
/* 8002520C 0002104C 48 00 00 08 */ b lbl_80025214
.global lbl_80025210
lbl_80025210:
/* 80025210 00021050 90 A4 03 00 */ stw r5, 0x300(r4)
.global lbl_80025214
lbl_80025214:
/* 80025214 00021054 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025218 00021058 40 82 00 10 */ bne lbl_80025228
/* 8002521C 0002105C 3C 60 80 00 */ lis r3, 0x800000DC@ha
/* 80025220 00021060 90 83 00 DC */ stw r4, 0x800000DC@l(r3)
/* 80025224 00021064 48 00 00 08 */ b lbl_8002522C
.global lbl_80025228
lbl_80025228:
/* 80025228 00021068 90 85 02 FC */ stw r4, 0x2fc(r5)
.global lbl_8002522C
lbl_8002522C:
/* 8002522C 0002106C 38 00 00 00 */ li r0, 0x0
/* 80025230 00021070 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 80025234 00021074 48 00 00 0C */ b lbl_80025240
.global lbl_80025238
lbl_80025238:
/* 80025238 00021078 38 00 00 08 */ li r0, 0x8
/* 8002523C 0002107C B0 1E 02 C8 */ sth r0, 0x2c8(r30)
.global lbl_80025240
lbl_80025240:
/* 80025240 00021080 7F C3 F3 78 */ mr r3, r30
/* 80025244 00021084 4B FF DB 0D */ bl __OSUnlockAllMutex
/* 80025248 00021088 38 7E 02 E8 */ addi r3, r30, 0x2e8
/* 8002524C 0002108C 48 00 06 B5 */ bl OSWakeupThread
/* 80025250 00021090 80 0D E4 24 */ lwz r0, RunQueueHint@sda21(r13)
/* 80025254 00021094 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025258 00021098 41 82 00 0C */ beq lbl_80025264
/* 8002525C 0002109C 38 60 00 00 */ li r3, 0x0
/* 80025260 000210A0 4B FF F8 61 */ bl SelectThread
.global lbl_80025264
lbl_80025264:
/* 80025264 000210A4 7F E3 FB 78 */ mr r3, r31
/* 80025268 000210A8 4B FF C5 F9 */ bl OSRestoreInterrupts
.global lbl_8002526C
lbl_8002526C:
/* 8002526C 000210AC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80025270 000210B0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80025274 000210B4 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80025278 000210B8 7C 08 03 A6 */ mtlr r0
/* 8002527C 000210BC 38 21 00 10 */ addi r1, r1, 0x10
/* 80025280 000210C0 4E 80 00 20 */ blr
/* 80025284 000210C4 00 00 00 00 */ .4byte 0x00000000
/* 80025288 000210C8 00 00 00 00 */ .4byte 0x00000000
/* 8002528C 000210CC 00 00 00 00 */ .4byte 0x00000000
.global OSJoinThread
OSJoinThread:
/* 80025290 000210D0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80025294 000210D4 7C 08 02 A6 */ mflr r0
/* 80025298 000210D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002529C 000210DC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800252A0 000210E0 7C 7F 1B 78 */ mr r31, r3
/* 800252A4 000210E4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800252A8 000210E8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800252AC 000210EC 7C 9D 23 78 */ mr r29, r4
/* 800252B0 000210F0 4B FF C5 71 */ bl OSDisableInterrupts
/* 800252B4 000210F4 A0 1F 02 CA */ lhz r0, 0x2ca(r31)
/* 800252B8 000210F8 7C 7E 1B 78 */ mr r30, r3
/* 800252BC 000210FC 54 00 07 FF */ clrlwi. r0, r0, 31
/* 800252C0 00021100 40 82 00 80 */ bne lbl_80025340
/* 800252C4 00021104 A0 1F 02 C8 */ lhz r0, 0x2c8(r31)
/* 800252C8 00021108 28 00 00 08 */ cmplwi r0, 0x8
/* 800252CC 0002110C 41 82 00 74 */ beq lbl_80025340
/* 800252D0 00021110 80 1F 02 E8 */ lwz r0, 0x2e8(r31)
/* 800252D4 00021114 2C 00 00 00 */ cmpwi r0, 0x0
/* 800252D8 00021118 40 82 00 68 */ bne lbl_80025340
/* 800252DC 0002111C 38 7F 02 E8 */ addi r3, r31, 0x2e8
/* 800252E0 00021120 48 00 05 31 */ bl OSSleepThread
/* 800252E4 00021124 A0 1F 02 C8 */ lhz r0, 0x2c8(r31)
/* 800252E8 00021128 2C 00 00 00 */ cmpwi r0, 0x0
/* 800252EC 0002112C 40 82 00 0C */ bne lbl_800252F8
/* 800252F0 00021130 38 00 00 00 */ li r0, 0x0
/* 800252F4 00021134 48 00 00 34 */ b lbl_80025328
.global lbl_800252F8
lbl_800252F8:
/* 800252F8 00021138 3C 60 80 00 */ lis r3, 0x800000DC@ha
/* 800252FC 0002113C 80 63 00 DC */ lwz r3, 0x800000DC@l(r3)
/* 80025300 00021140 48 00 00 1C */ b lbl_8002531C
/* 80025304 00021144 60 00 00 00 */ nop
.global lbl_80025308
lbl_80025308:
/* 80025308 00021148 7C 1F 18 40 */ cmplw r31, r3
/* 8002530C 0002114C 40 82 00 0C */ bne lbl_80025318
/* 80025310 00021150 38 00 00 01 */ li r0, 0x1
/* 80025314 00021154 48 00 00 14 */ b lbl_80025328
.global lbl_80025318
lbl_80025318:
/* 80025318 00021158 80 63 02 FC */ lwz r3, 0x2fc(r3)
.global lbl_8002531C
lbl_8002531C:
/* 8002531C 0002115C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80025320 00021160 40 82 FF E8 */ bne lbl_80025308
/* 80025324 00021164 38 00 00 00 */ li r0, 0x0
.global lbl_80025328
lbl_80025328:
/* 80025328 00021168 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002532C 0002116C 40 82 00 14 */ bne lbl_80025340
/* 80025330 00021170 7F C3 F3 78 */ mr r3, r30
/* 80025334 00021174 4B FF C5 2D */ bl OSRestoreInterrupts
/* 80025338 00021178 38 60 00 00 */ li r3, 0x0
/* 8002533C 0002117C 48 00 00 7C */ b lbl_800253B8
.global lbl_80025340
lbl_80025340:
/* 80025340 00021180 A0 1F 02 C8 */ lhz r0, 0x2c8(r31)
/* 80025344 00021184 28 00 00 08 */ cmplwi r0, 0x8
/* 80025348 00021188 40 82 00 64 */ bne lbl_800253AC
/* 8002534C 0002118C 2C 1D 00 00 */ cmpwi r29, 0x0
/* 80025350 00021190 41 82 00 0C */ beq lbl_8002535C
/* 80025354 00021194 80 1F 02 D8 */ lwz r0, 0x2d8(r31)
/* 80025358 00021198 90 1D 00 00 */ stw r0, 0x0(r29)
.global lbl_8002535C
lbl_8002535C:
/* 8002535C 0002119C 80 9F 02 FC */ lwz r4, 0x2fc(r31)
/* 80025360 000211A0 80 BF 03 00 */ lwz r5, 0x300(r31)
/* 80025364 000211A4 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025368 000211A8 40 82 00 10 */ bne lbl_80025378
/* 8002536C 000211AC 3C 60 80 00 */ lis r3, 0x800000E0@ha
/* 80025370 000211B0 90 A3 00 E0 */ stw r5, 0x800000E0@l(r3)
/* 80025374 000211B4 48 00 00 08 */ b lbl_8002537C
.global lbl_80025378
lbl_80025378:
/* 80025378 000211B8 90 A4 03 00 */ stw r5, 0x300(r4)
.global lbl_8002537C
lbl_8002537C:
/* 8002537C 000211BC 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025380 000211C0 40 82 00 10 */ bne lbl_80025390
/* 80025384 000211C4 3C 60 80 00 */ lis r3, 0x800000DC@ha
/* 80025388 000211C8 90 83 00 DC */ stw r4, 0x800000DC@l(r3)
/* 8002538C 000211CC 48 00 00 08 */ b lbl_80025394
.global lbl_80025390
lbl_80025390:
/* 80025390 000211D0 90 85 02 FC */ stw r4, 0x2fc(r5)
.global lbl_80025394
lbl_80025394:
/* 80025394 000211D4 38 00 00 00 */ li r0, 0x0
/* 80025398 000211D8 B0 1F 02 C8 */ sth r0, 0x2c8(r31)
/* 8002539C 000211DC 7F C3 F3 78 */ mr r3, r30
/* 800253A0 000211E0 4B FF C4 C1 */ bl OSRestoreInterrupts
/* 800253A4 000211E4 38 60 00 01 */ li r3, 0x1
/* 800253A8 000211E8 48 00 00 10 */ b lbl_800253B8
.global lbl_800253AC
lbl_800253AC:
/* 800253AC 000211EC 7F C3 F3 78 */ mr r3, r30
/* 800253B0 000211F0 4B FF C4 B1 */ bl OSRestoreInterrupts
/* 800253B4 000211F4 38 60 00 00 */ li r3, 0x0
.global lbl_800253B8
lbl_800253B8:
/* 800253B8 000211F8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800253BC 000211FC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800253C0 00021200 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800253C4 00021204 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800253C8 00021208 7C 08 03 A6 */ mtlr r0
/* 800253CC 0002120C 38 21 00 20 */ addi r1, r1, 0x20
/* 800253D0 00021210 4E 80 00 20 */ blr
/* 800253D4 00021214 00 00 00 00 */ .4byte 0x00000000
/* 800253D8 00021218 00 00 00 00 */ .4byte 0x00000000
/* 800253DC 0002121C 00 00 00 00 */ .4byte 0x00000000
.global OSResumeThread
OSResumeThread:
/* 800253E0 00021220 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800253E4 00021224 7C 08 02 A6 */ mflr r0
/* 800253E8 00021228 90 01 00 24 */ stw r0, 0x24(r1)
/* 800253EC 0002122C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800253F0 00021230 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800253F4 00021234 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800253F8 00021238 7C 7D 1B 78 */ mr r29, r3
/* 800253FC 0002123C 4B FF C4 25 */ bl OSDisableInterrupts
/* 80025400 00021240 83 DD 02 CC */ lwz r30, 0x2cc(r29)
/* 80025404 00021244 7C 7F 1B 78 */ mr r31, r3
/* 80025408 00021248 34 1E FF FF */ addic. r0, r30, -0x1
/* 8002540C 0002124C 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 80025410 00021250 40 80 00 10 */ bge lbl_80025420
/* 80025414 00021254 38 00 00 00 */ li r0, 0x0
/* 80025418 00021258 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 8002541C 0002125C 48 00 02 38 */ b lbl_80025654
.global lbl_80025420
lbl_80025420:
/* 80025420 00021260 40 82 02 34 */ bne lbl_80025654
/* 80025424 00021264 A0 1D 02 C8 */ lhz r0, 0x2c8(r29)
/* 80025428 00021268 2C 00 00 01 */ cmpwi r0, 0x1
/* 8002542C 0002126C 41 82 00 10 */ beq lbl_8002543C
/* 80025430 00021270 2C 00 00 04 */ cmpwi r0, 0x4
/* 80025434 00021274 41 82 00 A4 */ beq lbl_800254D8
/* 80025438 00021278 48 00 02 08 */ b lbl_80025640
.global lbl_8002543C
lbl_8002543C:
/* 8002543C 0002127C 80 BD 02 D4 */ lwz r5, 0x2d4(r29)
/* 80025440 00021280 80 9D 02 F4 */ lwz r4, 0x2f4(r29)
/* 80025444 00021284 48 00 00 24 */ b lbl_80025468
.global lbl_80025448
lbl_80025448:
/* 80025448 00021288 80 64 00 00 */ lwz r3, 0x0(r4)
/* 8002544C 0002128C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80025450 00021290 41 82 00 14 */ beq lbl_80025464
/* 80025454 00021294 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 80025458 00021298 7C 00 28 00 */ cmpw r0, r5
/* 8002545C 0002129C 40 80 00 08 */ bge lbl_80025464
/* 80025460 000212A0 7C 05 03 78 */ mr r5, r0
.global lbl_80025464
lbl_80025464:
/* 80025464 000212A4 80 84 00 10 */ lwz r4, 0x10(r4)
.global lbl_80025468
lbl_80025468:
/* 80025468 000212A8 2C 04 00 00 */ cmpwi r4, 0x0
/* 8002546C 000212AC 40 82 FF DC */ bne lbl_80025448
/* 80025470 000212B0 3C 60 80 4A */ lis r3, RunQueue@ha
/* 80025474 000212B4 54 A0 18 38 */ slwi r0, r5, 3
/* 80025478 000212B8 38 63 97 D0 */ addi r3, r3, RunQueue@l
/* 8002547C 000212BC 90 BD 02 D0 */ stw r5, 0x2d0(r29)
/* 80025480 000212C0 7C 63 02 14 */ add r3, r3, r0
/* 80025484 000212C4 90 7D 02 DC */ stw r3, 0x2dc(r29)
/* 80025488 000212C8 80 83 00 04 */ lwz r4, 0x4(r3)
/* 8002548C 000212CC 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025490 000212D0 40 82 00 0C */ bne lbl_8002549C
/* 80025494 000212D4 93 A3 00 00 */ stw r29, 0x0(r3)
/* 80025498 000212D8 48 00 00 08 */ b lbl_800254A0
.global lbl_8002549C
lbl_8002549C:
/* 8002549C 000212DC 93 A4 02 E0 */ stw r29, 0x2e0(r4)
.global lbl_800254A0
lbl_800254A0:
/* 800254A0 000212E0 38 00 00 00 */ li r0, 0x0
/* 800254A4 000212E4 90 9D 02 E4 */ stw r4, 0x2e4(r29)
/* 800254A8 000212E8 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 800254AC 000212EC 38 60 00 01 */ li r3, 0x1
/* 800254B0 000212F0 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 800254B4 000212F4 93 A4 00 04 */ stw r29, 0x4(r4)
/* 800254B8 000212F8 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 800254BC 000212FC 80 8D E4 28 */ lwz r4, RunQueueBits@sda21(r13)
/* 800254C0 00021300 20 00 00 1F */ subfic r0, r0, 0x1f
/* 800254C4 00021304 7C 60 00 30 */ slw r0, r3, r0
/* 800254C8 00021308 7C 80 03 78 */ or r0, r4, r0
/* 800254CC 0002130C 90 0D E4 28 */ stw r0, RunQueueBits@sda21(r13)
/* 800254D0 00021310 90 6D E4 24 */ stw r3, RunQueueHint@sda21(r13)
/* 800254D4 00021314 48 00 01 6C */ b lbl_80025640
.global lbl_800254D8
lbl_800254D8:
/* 800254D8 00021318 80 9D 02 E0 */ lwz r4, 0x2e0(r29)
/* 800254DC 0002131C 80 BD 02 E4 */ lwz r5, 0x2e4(r29)
/* 800254E0 00021320 2C 04 00 00 */ cmpwi r4, 0x0
/* 800254E4 00021324 40 82 00 10 */ bne lbl_800254F4
/* 800254E8 00021328 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800254EC 0002132C 90 A3 00 04 */ stw r5, 0x4(r3)
/* 800254F0 00021330 48 00 00 08 */ b lbl_800254F8
.global lbl_800254F4
lbl_800254F4:
/* 800254F4 00021334 90 A4 02 E4 */ stw r5, 0x2e4(r4)
.global lbl_800254F8
lbl_800254F8:
/* 800254F8 00021338 2C 05 00 00 */ cmpwi r5, 0x0
/* 800254FC 0002133C 40 82 00 10 */ bne lbl_8002550C
/* 80025500 00021340 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80025504 00021344 90 83 00 00 */ stw r4, 0x0(r3)
/* 80025508 00021348 48 00 00 08 */ b lbl_80025510
.global lbl_8002550C
lbl_8002550C:
/* 8002550C 0002134C 90 85 02 E0 */ stw r4, 0x2e0(r5)
.global lbl_80025510
lbl_80025510:
/* 80025510 00021350 80 1D 02 D4 */ lwz r0, 0x2d4(r29)
/* 80025514 00021354 80 9D 02 F4 */ lwz r4, 0x2f4(r29)
/* 80025518 00021358 48 00 00 28 */ b lbl_80025540
/* 8002551C 0002135C 60 00 00 00 */ nop
.global lbl_80025520
lbl_80025520:
/* 80025520 00021360 80 64 00 00 */ lwz r3, 0x0(r4)
/* 80025524 00021364 2C 03 00 00 */ cmpwi r3, 0x0
/* 80025528 00021368 41 82 00 14 */ beq lbl_8002553C
/* 8002552C 0002136C 80 63 02 D0 */ lwz r3, 0x2d0(r3)
/* 80025530 00021370 7C 03 00 00 */ cmpw r3, r0
/* 80025534 00021374 40 80 00 08 */ bge lbl_8002553C
/* 80025538 00021378 7C 60 1B 78 */ mr r0, r3
.global lbl_8002553C
lbl_8002553C:
/* 8002553C 0002137C 80 84 00 10 */ lwz r4, 0x10(r4)
.global lbl_80025540
lbl_80025540:
/* 80025540 00021380 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025544 00021384 40 82 FF DC */ bne lbl_80025520
/* 80025548 00021388 90 1D 02 D0 */ stw r0, 0x2d0(r29)
/* 8002554C 0002138C 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 80025550 00021390 80 A4 00 00 */ lwz r5, 0x0(r4)
/* 80025554 00021394 48 00 00 08 */ b lbl_8002555C
.global lbl_80025558
lbl_80025558:
/* 80025558 00021398 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
.global lbl_8002555C
lbl_8002555C:
/* 8002555C 0002139C 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025560 000213A0 41 82 00 14 */ beq lbl_80025574
/* 80025564 000213A4 80 65 02 D0 */ lwz r3, 0x2d0(r5)
/* 80025568 000213A8 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 8002556C 000213AC 7C 03 00 00 */ cmpw r3, r0
/* 80025570 000213B0 40 81 FF E8 */ ble lbl_80025558
.global lbl_80025574
lbl_80025574:
/* 80025574 000213B4 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025578 000213B8 40 82 00 34 */ bne lbl_800255AC
/* 8002557C 000213BC 80 64 00 04 */ lwz r3, 0x4(r4)
/* 80025580 000213C0 2C 03 00 00 */ cmpwi r3, 0x0
/* 80025584 000213C4 40 82 00 0C */ bne lbl_80025590
/* 80025588 000213C8 93 A4 00 00 */ stw r29, 0x0(r4)
/* 8002558C 000213CC 48 00 00 08 */ b lbl_80025594
.global lbl_80025590
lbl_80025590:
/* 80025590 000213D0 93 A3 02 E0 */ stw r29, 0x2e0(r3)
.global lbl_80025594
lbl_80025594:
/* 80025594 000213D4 38 00 00 00 */ li r0, 0x0
/* 80025598 000213D8 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 8002559C 000213DC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800255A0 000213E0 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 800255A4 000213E4 93 A3 00 04 */ stw r29, 0x4(r3)
/* 800255A8 000213E8 48 00 00 2C */ b lbl_800255D4
.global lbl_800255AC
lbl_800255AC:
/* 800255AC 000213EC 90 BD 02 E0 */ stw r5, 0x2e0(r29)
/* 800255B0 000213F0 80 65 02 E4 */ lwz r3, 0x2e4(r5)
/* 800255B4 000213F4 93 A5 02 E4 */ stw r29, 0x2e4(r5)
/* 800255B8 000213F8 2C 03 00 00 */ cmpwi r3, 0x0
/* 800255BC 000213FC 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 800255C0 00021400 40 82 00 10 */ bne lbl_800255D0
/* 800255C4 00021404 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800255C8 00021408 93 A3 00 00 */ stw r29, 0x0(r3)
/* 800255CC 0002140C 48 00 00 08 */ b lbl_800255D4
.global lbl_800255D0
lbl_800255D0:
/* 800255D0 00021410 93 A3 02 E0 */ stw r29, 0x2e0(r3)
.global lbl_800255D4
lbl_800255D4:
/* 800255D4 00021414 80 7D 02 F0 */ lwz r3, 0x2f0(r29)
/* 800255D8 00021418 2C 03 00 00 */ cmpwi r3, 0x0
/* 800255DC 0002141C 41 82 00 64 */ beq lbl_80025640
/* 800255E0 00021420 80 63 00 08 */ lwz r3, 0x8(r3)
.global lbl_800255E4
lbl_800255E4:
/* 800255E4 00021424 80 03 02 CC */ lwz r0, 0x2cc(r3)
/* 800255E8 00021428 2C 00 00 00 */ cmpwi r0, 0x0
/* 800255EC 0002142C 41 81 00 54 */ bgt lbl_80025640
/* 800255F0 00021430 80 83 02 D4 */ lwz r4, 0x2d4(r3)
/* 800255F4 00021434 80 A3 02 F4 */ lwz r5, 0x2f4(r3)
/* 800255F8 00021438 48 00 00 28 */ b lbl_80025620
/* 800255FC 0002143C 60 00 00 00 */ nop
.global lbl_80025600
lbl_80025600:
/* 80025600 00021440 80 C5 00 00 */ lwz r6, 0x0(r5)
/* 80025604 00021444 2C 06 00 00 */ cmpwi r6, 0x0
/* 80025608 00021448 41 82 00 14 */ beq lbl_8002561C
/* 8002560C 0002144C 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 80025610 00021450 7C 00 20 00 */ cmpw r0, r4
/* 80025614 00021454 40 80 00 08 */ bge lbl_8002561C
/* 80025618 00021458 7C 04 03 78 */ mr r4, r0
.global lbl_8002561C
lbl_8002561C:
/* 8002561C 0002145C 80 A5 00 10 */ lwz r5, 0x10(r5)
.global lbl_80025620
lbl_80025620:
/* 80025620 00021460 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025624 00021464 40 82 FF DC */ bne lbl_80025600
/* 80025628 00021468 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 8002562C 0002146C 7C 00 20 00 */ cmpw r0, r4
/* 80025630 00021470 41 82 00 10 */ beq lbl_80025640
/* 80025634 00021474 4B FF F2 8D */ bl SetEffectivePriority
/* 80025638 00021478 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002563C 0002147C 40 82 FF A8 */ bne lbl_800255E4
.global lbl_80025640
lbl_80025640:
/* 80025640 00021480 80 0D E4 24 */ lwz r0, RunQueueHint@sda21(r13)
/* 80025644 00021484 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025648 00021488 41 82 00 0C */ beq lbl_80025654
/* 8002564C 0002148C 38 60 00 00 */ li r3, 0x0
/* 80025650 00021490 4B FF F4 71 */ bl SelectThread
.global lbl_80025654
lbl_80025654:
/* 80025654 00021494 7F E3 FB 78 */ mr r3, r31
/* 80025658 00021498 4B FF C2 09 */ bl OSRestoreInterrupts
/* 8002565C 0002149C 7F C3 F3 78 */ mr r3, r30
/* 80025660 000214A0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80025664 000214A4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80025668 000214A8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8002566C 000214AC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80025670 000214B0 7C 08 03 A6 */ mtlr r0
/* 80025674 000214B4 38 21 00 20 */ addi r1, r1, 0x20
/* 80025678 000214B8 4E 80 00 20 */ blr
/* 8002567C 000214BC 00 00 00 00 */ .4byte 0x00000000
.global OSSuspendThread
OSSuspendThread:
/* 80025680 000214C0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80025684 000214C4 7C 08 02 A6 */ mflr r0
/* 80025688 000214C8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002568C 000214CC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80025690 000214D0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80025694 000214D4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80025698 000214D8 7C 7D 1B 78 */ mr r29, r3
/* 8002569C 000214DC 4B FF C1 85 */ bl OSDisableInterrupts
/* 800256A0 000214E0 83 DD 02 CC */ lwz r30, 0x2cc(r29)
/* 800256A4 000214E4 7C 7F 1B 78 */ mr r31, r3
/* 800256A8 000214E8 2C 1E 00 00 */ cmpwi r30, 0x0
/* 800256AC 000214EC 38 1E 00 01 */ addi r0, r30, 0x1
/* 800256B0 000214F0 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 800256B4 000214F4 40 82 01 30 */ bne lbl_800257E4
/* 800256B8 000214F8 A0 1D 02 C8 */ lhz r0, 0x2c8(r29)
/* 800256BC 000214FC 2C 00 00 02 */ cmpwi r0, 0x2
/* 800256C0 00021500 41 82 00 18 */ beq lbl_800256D8
/* 800256C4 00021504 2C 00 00 01 */ cmpwi r0, 0x1
/* 800256C8 00021508 41 82 00 20 */ beq lbl_800256E8
/* 800256CC 0002150C 2C 00 00 04 */ cmpwi r0, 0x4
/* 800256D0 00021510 41 82 00 24 */ beq lbl_800256F4
/* 800256D4 00021514 48 00 00 FC */ b lbl_800257D0
.global lbl_800256D8
lbl_800256D8:
/* 800256D8 00021518 38 00 00 01 */ li r0, 0x1
/* 800256DC 0002151C 90 0D E4 24 */ stw r0, RunQueueHint@sda21(r13)
/* 800256E0 00021520 B0 1D 02 C8 */ sth r0, 0x2c8(r29)
/* 800256E4 00021524 48 00 00 EC */ b lbl_800257D0
.global lbl_800256E8
lbl_800256E8:
/* 800256E8 00021528 7F A3 EB 78 */ mr r3, r29
/* 800256EC 0002152C 4B FF F1 25 */ bl UnsetRun
/* 800256F0 00021530 48 00 00 E0 */ b lbl_800257D0
.global lbl_800256F4
lbl_800256F4:
/* 800256F4 00021534 80 9D 02 E0 */ lwz r4, 0x2e0(r29)
/* 800256F8 00021538 80 BD 02 E4 */ lwz r5, 0x2e4(r29)
/* 800256FC 0002153C 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025700 00021540 40 82 00 10 */ bne lbl_80025710
/* 80025704 00021544 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80025708 00021548 90 A3 00 04 */ stw r5, 0x4(r3)
/* 8002570C 0002154C 48 00 00 08 */ b lbl_80025714
.global lbl_80025710
lbl_80025710:
/* 80025710 00021550 90 A4 02 E4 */ stw r5, 0x2e4(r4)
.global lbl_80025714
lbl_80025714:
/* 80025714 00021554 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025718 00021558 40 82 00 10 */ bne lbl_80025728
/* 8002571C 0002155C 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80025720 00021560 90 83 00 00 */ stw r4, 0x0(r3)
/* 80025724 00021564 48 00 00 08 */ b lbl_8002572C
.global lbl_80025728
lbl_80025728:
/* 80025728 00021568 90 85 02 E0 */ stw r4, 0x2e0(r5)
.global lbl_8002572C
lbl_8002572C:
/* 8002572C 0002156C 38 00 00 20 */ li r0, 0x20
/* 80025730 00021570 90 1D 02 D0 */ stw r0, 0x2d0(r29)
/* 80025734 00021574 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 80025738 00021578 80 83 00 04 */ lwz r4, 0x4(r3)
/* 8002573C 0002157C 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025740 00021580 40 82 00 0C */ bne lbl_8002574C
/* 80025744 00021584 93 A3 00 00 */ stw r29, 0x0(r3)
/* 80025748 00021588 48 00 00 08 */ b lbl_80025750
.global lbl_8002574C
lbl_8002574C:
/* 8002574C 0002158C 93 A4 02 E0 */ stw r29, 0x2e0(r4)
.global lbl_80025750
lbl_80025750:
/* 80025750 00021590 38 00 00 00 */ li r0, 0x0
/* 80025754 00021594 90 9D 02 E4 */ stw r4, 0x2e4(r29)
/* 80025758 00021598 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 8002575C 0002159C 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 80025760 000215A0 93 A3 00 04 */ stw r29, 0x4(r3)
/* 80025764 000215A4 80 7D 02 F0 */ lwz r3, 0x2f0(r29)
/* 80025768 000215A8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002576C 000215AC 41 82 00 64 */ beq lbl_800257D0
/* 80025770 000215B0 80 63 00 08 */ lwz r3, 0x8(r3)
.global lbl_80025774
lbl_80025774:
/* 80025774 000215B4 80 03 02 CC */ lwz r0, 0x2cc(r3)
/* 80025778 000215B8 2C 00 00 00 */ cmpwi r0, 0x0
/* 8002577C 000215BC 41 81 00 54 */ bgt lbl_800257D0
/* 80025780 000215C0 80 83 02 D4 */ lwz r4, 0x2d4(r3)
/* 80025784 000215C4 80 A3 02 F4 */ lwz r5, 0x2f4(r3)
/* 80025788 000215C8 48 00 00 28 */ b lbl_800257B0
/* 8002578C 000215CC 60 00 00 00 */ nop
.global lbl_80025790
lbl_80025790:
/* 80025790 000215D0 80 C5 00 00 */ lwz r6, 0x0(r5)
/* 80025794 000215D4 2C 06 00 00 */ cmpwi r6, 0x0
/* 80025798 000215D8 41 82 00 14 */ beq lbl_800257AC
/* 8002579C 000215DC 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 800257A0 000215E0 7C 00 20 00 */ cmpw r0, r4
/* 800257A4 000215E4 40 80 00 08 */ bge lbl_800257AC
/* 800257A8 000215E8 7C 04 03 78 */ mr r4, r0
.global lbl_800257AC
lbl_800257AC:
/* 800257AC 000215EC 80 A5 00 10 */ lwz r5, 0x10(r5)
.global lbl_800257B0
lbl_800257B0:
/* 800257B0 000215F0 2C 05 00 00 */ cmpwi r5, 0x0
/* 800257B4 000215F4 40 82 FF DC */ bne lbl_80025790
/* 800257B8 000215F8 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 800257BC 000215FC 7C 00 20 00 */ cmpw r0, r4
/* 800257C0 00021600 41 82 00 10 */ beq lbl_800257D0
/* 800257C4 00021604 4B FF F0 FD */ bl SetEffectivePriority
/* 800257C8 00021608 2C 03 00 00 */ cmpwi r3, 0x0
/* 800257CC 0002160C 40 82 FF A8 */ bne lbl_80025774
.global lbl_800257D0
lbl_800257D0:
/* 800257D0 00021610 80 0D E4 24 */ lwz r0, RunQueueHint@sda21(r13)
/* 800257D4 00021614 2C 00 00 00 */ cmpwi r0, 0x0
/* 800257D8 00021618 41 82 00 0C */ beq lbl_800257E4
/* 800257DC 0002161C 38 60 00 00 */ li r3, 0x0
/* 800257E0 00021620 4B FF F2 E1 */ bl SelectThread
.global lbl_800257E4
lbl_800257E4:
/* 800257E4 00021624 7F E3 FB 78 */ mr r3, r31
/* 800257E8 00021628 4B FF C0 79 */ bl OSRestoreInterrupts
/* 800257EC 0002162C 7F C3 F3 78 */ mr r3, r30
/* 800257F0 00021630 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800257F4 00021634 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800257F8 00021638 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800257FC 0002163C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80025800 00021640 7C 08 03 A6 */ mtlr r0
/* 80025804 00021644 38 21 00 20 */ addi r1, r1, 0x20
/* 80025808 00021648 4E 80 00 20 */ blr
/* 8002580C 0002164C 00 00 00 00 */ .4byte 0x00000000
.global OSSleepThread
OSSleepThread:
/* 80025810 00021650 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80025814 00021654 7C 08 02 A6 */ mflr r0
/* 80025818 00021658 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002581C 0002165C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80025820 00021660 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80025824 00021664 7C 7E 1B 78 */ mr r30, r3
/* 80025828 00021668 4B FF BF F9 */ bl OSDisableInterrupts
/* 8002582C 0002166C 3C 80 80 00 */ lis r4, 0x800000E4@ha
/* 80025830 00021670 38 00 00 04 */ li r0, 0x4
/* 80025834 00021674 80 84 00 E4 */ lwz r4, 0x800000E4@l(r4)
/* 80025838 00021678 7C 7F 1B 78 */ mr r31, r3
/* 8002583C 0002167C B0 04 02 C8 */ sth r0, 0x2c8(r4)
/* 80025840 00021680 93 C4 02 DC */ stw r30, 0x2dc(r4)
/* 80025844 00021684 80 BE 00 00 */ lwz r5, 0x0(r30)
/* 80025848 00021688 48 00 00 0C */ b lbl_80025854
/* 8002584C 0002168C 60 00 00 00 */ nop
.global lbl_80025850
lbl_80025850:
/* 80025850 00021690 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
.global lbl_80025854
lbl_80025854:
/* 80025854 00021694 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025858 00021698 41 82 00 14 */ beq lbl_8002586C
/* 8002585C 0002169C 80 65 02 D0 */ lwz r3, 0x2d0(r5)
/* 80025860 000216A0 80 04 02 D0 */ lwz r0, 0x2d0(r4)
/* 80025864 000216A4 7C 03 00 00 */ cmpw r3, r0
/* 80025868 000216A8 40 81 FF E8 */ ble lbl_80025850
.global lbl_8002586C
lbl_8002586C:
/* 8002586C 000216AC 2C 05 00 00 */ cmpwi r5, 0x0
/* 80025870 000216B0 40 82 00 30 */ bne lbl_800258A0
/* 80025874 000216B4 80 7E 00 04 */ lwz r3, 0x4(r30)
/* 80025878 000216B8 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002587C 000216BC 40 82 00 0C */ bne lbl_80025888
/* 80025880 000216C0 90 9E 00 00 */ stw r4, 0x0(r30)
/* 80025884 000216C4 48 00 00 08 */ b lbl_8002588C
.global lbl_80025888
lbl_80025888:
/* 80025888 000216C8 90 83 02 E0 */ stw r4, 0x2e0(r3)
.global lbl_8002588C
lbl_8002588C:
/* 8002588C 000216CC 90 64 02 E4 */ stw r3, 0x2e4(r4)
/* 80025890 000216D0 38 00 00 00 */ li r0, 0x0
/* 80025894 000216D4 90 04 02 E0 */ stw r0, 0x2e0(r4)
/* 80025898 000216D8 90 9E 00 04 */ stw r4, 0x4(r30)
/* 8002589C 000216DC 48 00 00 28 */ b lbl_800258C4
.global lbl_800258A0
lbl_800258A0:
/* 800258A0 000216E0 90 A4 02 E0 */ stw r5, 0x2e0(r4)
/* 800258A4 000216E4 80 65 02 E4 */ lwz r3, 0x2e4(r5)
/* 800258A8 000216E8 90 85 02 E4 */ stw r4, 0x2e4(r5)
/* 800258AC 000216EC 2C 03 00 00 */ cmpwi r3, 0x0
/* 800258B0 000216F0 90 64 02 E4 */ stw r3, 0x2e4(r4)
/* 800258B4 000216F4 40 82 00 0C */ bne lbl_800258C0
/* 800258B8 000216F8 90 9E 00 00 */ stw r4, 0x0(r30)
/* 800258BC 000216FC 48 00 00 08 */ b lbl_800258C4
.global lbl_800258C0
lbl_800258C0:
/* 800258C0 00021700 90 83 02 E0 */ stw r4, 0x2e0(r3)
.global lbl_800258C4
lbl_800258C4:
/* 800258C4 00021704 38 00 00 01 */ li r0, 0x1
/* 800258C8 00021708 90 0D E4 24 */ stw r0, RunQueueHint@sda21(r13)
/* 800258CC 0002170C 80 0D E4 24 */ lwz r0, RunQueueHint@sda21(r13)
/* 800258D0 00021710 2C 00 00 00 */ cmpwi r0, 0x0
/* 800258D4 00021714 41 82 00 0C */ beq lbl_800258E0
/* 800258D8 00021718 38 60 00 00 */ li r3, 0x0
/* 800258DC 0002171C 4B FF F1 E5 */ bl SelectThread
.global lbl_800258E0
lbl_800258E0:
/* 800258E0 00021720 7F E3 FB 78 */ mr r3, r31
/* 800258E4 00021724 4B FF BF 7D */ bl OSRestoreInterrupts
/* 800258E8 00021728 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800258EC 0002172C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800258F0 00021730 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 800258F4 00021734 7C 08 03 A6 */ mtlr r0
/* 800258F8 00021738 38 21 00 10 */ addi r1, r1, 0x10
/* 800258FC 0002173C 4E 80 00 20 */ blr
.global OSWakeupThread
OSWakeupThread:
/* 80025900 00021740 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80025904 00021744 7C 08 02 A6 */ mflr r0
/* 80025908 00021748 90 01 00 14 */ stw r0, 0x14(r1)
/* 8002590C 0002174C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80025910 00021750 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80025914 00021754 7C 7E 1B 78 */ mr r30, r3
/* 80025918 00021758 4B FF BF 09 */ bl OSDisableInterrupts
/* 8002591C 0002175C 3C A0 80 4A */ lis r5, RunQueue@ha
/* 80025920 00021760 7C 7F 1B 78 */ mr r31, r3
/* 80025924 00021764 38 A5 97 D0 */ addi r5, r5, RunQueue@l
/* 80025928 00021768 38 C0 00 00 */ li r6, 0x0
/* 8002592C 0002176C 38 60 00 01 */ li r3, 0x1
/* 80025930 00021770 48 00 00 88 */ b lbl_800259B8
/* 80025934 00021774 60 00 00 00 */ nop
.global lbl_80025938
lbl_80025938:
/* 80025938 00021778 80 88 02 E0 */ lwz r4, 0x2e0(r8)
/* 8002593C 0002177C 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025940 00021780 40 82 00 0C */ bne lbl_8002594C
/* 80025944 00021784 90 DE 00 04 */ stw r6, 0x4(r30)
/* 80025948 00021788 48 00 00 08 */ b lbl_80025950
.global lbl_8002594C
lbl_8002594C:
/* 8002594C 0002178C 90 C4 02 E4 */ stw r6, 0x2e4(r4)
.global lbl_80025950
lbl_80025950:
/* 80025950 00021790 90 9E 00 00 */ stw r4, 0x0(r30)
/* 80025954 00021794 B0 68 02 C8 */ sth r3, 0x2c8(r8)
/* 80025958 00021798 80 08 02 CC */ lwz r0, 0x2cc(r8)
/* 8002595C 0002179C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025960 000217A0 41 81 00 58 */ bgt lbl_800259B8
/* 80025964 000217A4 80 08 02 D0 */ lwz r0, 0x2d0(r8)
/* 80025968 000217A8 54 00 18 38 */ slwi r0, r0, 3
/* 8002596C 000217AC 7C 85 02 14 */ add r4, r5, r0
/* 80025970 000217B0 90 88 02 DC */ stw r4, 0x2dc(r8)
/* 80025974 000217B4 80 E4 00 04 */ lwz r7, 0x4(r4)
/* 80025978 000217B8 2C 07 00 00 */ cmpwi r7, 0x0
/* 8002597C 000217BC 40 82 00 0C */ bne lbl_80025988
/* 80025980 000217C0 91 04 00 00 */ stw r8, 0x0(r4)
/* 80025984 000217C4 48 00 00 08 */ b lbl_8002598C
.global lbl_80025988
lbl_80025988:
/* 80025988 000217C8 91 07 02 E0 */ stw r8, 0x2e0(r7)
.global lbl_8002598C
lbl_8002598C:
/* 8002598C 000217CC 90 E8 02 E4 */ stw r7, 0x2e4(r8)
/* 80025990 000217D0 90 C8 02 E0 */ stw r6, 0x2e0(r8)
/* 80025994 000217D4 80 88 02 DC */ lwz r4, 0x2dc(r8)
/* 80025998 000217D8 91 04 00 04 */ stw r8, 0x4(r4)
/* 8002599C 000217DC 80 08 02 D0 */ lwz r0, 0x2d0(r8)
/* 800259A0 000217E0 80 8D E4 28 */ lwz r4, RunQueueBits@sda21(r13)
/* 800259A4 000217E4 20 00 00 1F */ subfic r0, r0, 0x1f
/* 800259A8 000217E8 7C 60 00 30 */ slw r0, r3, r0
/* 800259AC 000217EC 7C 80 03 78 */ or r0, r4, r0
/* 800259B0 000217F0 90 0D E4 28 */ stw r0, RunQueueBits@sda21(r13)
/* 800259B4 000217F4 90 6D E4 24 */ stw r3, RunQueueHint@sda21(r13)
.global lbl_800259B8
lbl_800259B8:
/* 800259B8 000217F8 81 1E 00 00 */ lwz r8, 0x0(r30)
/* 800259BC 000217FC 2C 08 00 00 */ cmpwi r8, 0x0
/* 800259C0 00021800 40 82 FF 78 */ bne lbl_80025938
/* 800259C4 00021804 80 0D E4 24 */ lwz r0, RunQueueHint@sda21(r13)
/* 800259C8 00021808 2C 00 00 00 */ cmpwi r0, 0x0
/* 800259CC 0002180C 41 82 00 0C */ beq lbl_800259D8
/* 800259D0 00021810 38 60 00 00 */ li r3, 0x0
/* 800259D4 00021814 4B FF F0 ED */ bl SelectThread
.global lbl_800259D8
lbl_800259D8:
/* 800259D8 00021818 7F E3 FB 78 */ mr r3, r31
/* 800259DC 0002181C 4B FF BE 85 */ bl OSRestoreInterrupts
/* 800259E0 00021820 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800259E4 00021824 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800259E8 00021828 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 800259EC 0002182C 7C 08 03 A6 */ mtlr r0
/* 800259F0 00021830 38 21 00 10 */ addi r1, r1, 0x10
/* 800259F4 00021834 4E 80 00 20 */ blr
/* 800259F8 00021838 00 00 00 00 */ .4byte 0x00000000
/* 800259FC 0002183C 00 00 00 00 */ .4byte 0x00000000
.global OSGetThreadPriority
OSGetThreadPriority:
/* 80025A00 00021840 80 63 02 D4 */ lwz r3, 0x2d4(r3)
/* 80025A04 00021844 4E 80 00 20 */ blr
/* 80025A08 00021848 00 00 00 00 */ .4byte 0x00000000
/* 80025A0C 0002184C 00 00 00 00 */ .4byte 0x00000000
.global SleepAlarmHandler
SleepAlarmHandler:
/* 80025A10 00021850 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80025A14 00021854 7C 08 02 A6 */ mflr r0
/* 80025A18 00021858 90 01 00 14 */ stw r0, 0x14(r1)
/* 80025A1C 0002185C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80025A20 00021860 7C 7F 1B 78 */ mr r31, r3
/* 80025A24 00021864 48 0C E0 7D */ bl GetMaterial__Q34nw4r3lyt4PaneCFv
/* 80025A28 00021868 A0 03 02 C8 */ lhz r0, 0x2c8(r3)
/* 80025A2C 0002186C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025A30 00021870 40 82 00 0C */ bne lbl_80025A3C
/* 80025A34 00021874 38 00 00 00 */ li r0, 0x0
/* 80025A38 00021878 48 00 00 30 */ b lbl_80025A68
.global lbl_80025A3C
lbl_80025A3C:
/* 80025A3C 0002187C 3C 80 80 00 */ lis r4, 0x800000DC@ha
/* 80025A40 00021880 80 84 00 DC */ lwz r4, 0x800000DC@l(r4)
/* 80025A44 00021884 48 00 00 18 */ b lbl_80025A5C
.global lbl_80025A48
lbl_80025A48:
/* 80025A48 00021888 7C 03 20 40 */ cmplw r3, r4
/* 80025A4C 0002188C 40 82 00 0C */ bne lbl_80025A58
/* 80025A50 00021890 38 00 00 01 */ li r0, 0x1
/* 80025A54 00021894 48 00 00 14 */ b lbl_80025A68
.global lbl_80025A58
lbl_80025A58:
/* 80025A58 00021898 80 84 02 FC */ lwz r4, 0x2fc(r4)
.global lbl_80025A5C
lbl_80025A5C:
/* 80025A5C 0002189C 2C 04 00 00 */ cmpwi r4, 0x0
/* 80025A60 000218A0 40 82 FF E8 */ bne lbl_80025A48
/* 80025A64 000218A4 38 00 00 00 */ li r0, 0x0
.global lbl_80025A68
lbl_80025A68:
/* 80025A68 000218A8 2C 00 00 00 */ cmpwi r0, 0x0
/* 80025A6C 000218AC 41 82 00 10 */ beq lbl_80025A7C
/* 80025A70 000218B0 7F E3 FB 78 */ mr r3, r31
/* 80025A74 000218B4 48 0C E0 2D */ bl GetMaterial__Q34nw4r3lyt4PaneCFv
/* 80025A78 000218B8 4B FF F9 69 */ bl OSResumeThread
.global lbl_80025A7C
lbl_80025A7C:
/* 80025A7C 000218BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80025A80 000218C0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80025A84 000218C4 7C 08 03 A6 */ mtlr r0
/* 80025A88 000218C8 38 21 00 10 */ addi r1, r1, 0x10
/* 80025A8C 000218CC 4E 80 00 20 */ blr
.global OSSleepTicks
OSSleepTicks:
/* 80025A90 000218D0 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80025A94 000218D4 7C 08 02 A6 */ mflr r0
/* 80025A98 000218D8 90 01 00 54 */ stw r0, 0x54(r1)
/* 80025A9C 000218DC 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 80025AA0 000218E0 93 C1 00 48 */ stw r30, 0x48(r1)
/* 80025AA4 000218E4 93 A1 00 44 */ stw r29, 0x44(r1)
/* 80025AA8 000218E8 7C 7D 1B 78 */ mr r29, r3
/* 80025AAC 000218EC 93 81 00 40 */ stw r28, 0x40(r1)
/* 80025AB0 000218F0 7C 9C 23 78 */ mr r28, r4
/* 80025AB4 000218F4 4B FF BD 6D */ bl OSDisableInterrupts
/* 80025AB8 000218F8 3C 80 80 00 */ lis r4, 0x800000E4@ha
/* 80025ABC 000218FC 7C 7E 1B 78 */ mr r30, r3
/* 80025AC0 00021900 83 E4 00 E4 */ lwz r31, 0x800000E4@l(r4)
/* 80025AC4 00021904 2C 1F 00 00 */ cmpwi r31, 0x0
/* 80025AC8 00021908 40 82 00 0C */ bne lbl_80025AD4
/* 80025ACC 0002190C 4B FF BD 95 */ bl OSRestoreInterrupts
/* 80025AD0 00021910 48 00 00 48 */ b lbl_80025B18
.global lbl_80025AD4
lbl_80025AD4:
/* 80025AD4 00021914 38 61 00 08 */ addi r3, r1, 0x8
/* 80025AD8 00021918 4B FF 5D 29 */ bl OSCreateAlarm
/* 80025ADC 0002191C 7F E4 FB 78 */ mr r4, r31
/* 80025AE0 00021920 38 61 00 08 */ addi r3, r1, 0x8
/* 80025AE4 00021924 4B FF 64 AD */ bl __OSSetInternalAlarmUserData
/* 80025AE8 00021928 3C E0 80 02 */ lis r7, SleepAlarmHandler@ha
/* 80025AEC 0002192C 7F 86 E3 78 */ mr r6, r28
/* 80025AF0 00021930 7F A5 EB 78 */ mr r5, r29
/* 80025AF4 00021934 38 61 00 08 */ addi r3, r1, 0x8
/* 80025AF8 00021938 38 E7 5A 10 */ addi r7, r7, SleepAlarmHandler@l
/* 80025AFC 0002193C 4B FF 5F 65 */ bl OSSetAlarm
/* 80025B00 00021940 7F E3 FB 78 */ mr r3, r31
/* 80025B04 00021944 4B FF FB 7D */ bl OSSuspendThread
/* 80025B08 00021948 38 61 00 08 */ addi r3, r1, 0x8
/* 80025B0C 0002194C 4B FF 60 55 */ bl OSCancelAlarm
/* 80025B10 00021950 7F C3 F3 78 */ mr r3, r30
/* 80025B14 00021954 4B FF BD 4D */ bl OSRestoreInterrupts
.global lbl_80025B18
lbl_80025B18:
/* 80025B18 00021958 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80025B1C 0002195C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 80025B20 00021960 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80025B24 00021964 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 80025B28 00021968 83 81 00 40 */ lwz r28, 0x40(r1)
/* 80025B2C 0002196C 7C 08 03 A6 */ mtlr r0
/* 80025B30 00021970 38 21 00 50 */ addi r1, r1, 0x50
/* 80025B34 00021974 4E 80 00 20 */ blr
/* 80025B38 00021978 00 00 00 00 */ .4byte 0x00000000
/* 80025B3C 0002197C 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .bss, "", @nobits # 0x80496700 - 0x80556420 ; 0x000BFD20
.global DefaultThread
DefaultThread:
.skip 0x318
.global RunQueue
RunQueue:
.skip 0x100
.global IdleContext
IdleContext:
.skip 0x5F0
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global SwitchThreadCallback
SwitchThreadCallback:
.4byte DefaultSwitchThreadCallback
.4byte 0
.include "macros.inc"
.section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0
.global Reschedule
Reschedule:
.skip 0x4
.global RunQueueHint
RunQueueHint:
.skip 0x4
.global RunQueueBits
RunQueueBits:
.skip 0x8