Files
2022-01-28 18:41:20 -06:00

1082 lines
49 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x800065A0 - 0x8010F860
.global __OSThreadInit
__OSThreadInit:
/* 800C8B80 000C4AA0 7C 08 02 A6 */ mflr r0
/* 800C8B84 000C4AA4 3C 60 80 2C */ lis r3, lbl_802C6E78@ha
/* 800C8B88 000C4AA8 90 01 00 04 */ stw r0, 4(r1)
/* 800C8B8C 000C4AAC 38 00 00 02 */ li r0, 2
/* 800C8B90 000C4AB0 38 80 00 10 */ li r4, 0x10
/* 800C8B94 000C4AB4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800C8B98 000C4AB8 BF 41 00 08 */ stmw r26, 8(r1)
/* 800C8B9C 000C4ABC 3B 83 6E 78 */ addi r28, r3, lbl_802C6E78@l
/* 800C8BA0 000C4AC0 3B FC 04 10 */ addi r31, r28, 0x410
/* 800C8BA4 000C4AC4 3B A0 00 00 */ li r29, 0
/* 800C8BA8 000C4AC8 38 7F 02 E8 */ addi r3, r31, 0x2e8
/* 800C8BAC 000C4ACC B0 1C 06 D8 */ sth r0, 0x6d8(r28)
/* 800C8BB0 000C4AD0 38 00 00 01 */ li r0, 1
/* 800C8BB4 000C4AD4 B0 1C 06 DA */ sth r0, 0x6da(r28)
/* 800C8BB8 000C4AD8 38 00 FF FF */ li r0, -1
/* 800C8BBC 000C4ADC 90 9C 06 E4 */ stw r4, 0x6e4(r28)
/* 800C8BC0 000C4AE0 90 9C 06 E0 */ stw r4, 0x6e0(r28)
/* 800C8BC4 000C4AE4 93 BC 06 DC */ stw r29, 0x6dc(r28)
/* 800C8BC8 000C4AE8 90 1C 06 E8 */ stw r0, 0x6e8(r28)
/* 800C8BCC 000C4AEC 93 BC 07 00 */ stw r29, 0x700(r28)
/* 800C8BD0 000C4AF0 48 00 00 D9 */ bl OSInitThreadQueue
/* 800C8BD4 000C4AF4 93 BC 07 08 */ stw r29, 0x708(r28)
/* 800C8BD8 000C4AF8 3F C0 80 00 */ lis r30, 0x800000D8@ha
/* 800C8BDC 000C4AFC 38 7F 00 00 */ addi r3, r31, 0
/* 800C8BE0 000C4B00 93 BC 07 04 */ stw r29, 0x704(r28)
/* 800C8BE4 000C4B04 93 FE 00 D8 */ stw r31, 0x800000D8@l(r30)
/* 800C8BE8 000C4B08 4B FF AC A1 */ bl OSClearContext
/* 800C8BEC 000C4B0C 7F E3 FB 78 */ mr r3, r31
/* 800C8BF0 000C4B10 4B FF AA D1 */ bl OSSetCurrentContext
/* 800C8BF4 000C4B14 3C 60 80 30 */ lis r3, _stack_addr@ha
/* 800C8BF8 000C4B18 38 03 6C 80 */ addi r0, r3, _stack_addr@l
/* 800C8BFC 000C4B1C 3C 60 80 2F */ lis r3, _stack_end@ha
/* 800C8C00 000C4B20 90 1C 07 14 */ stw r0, 0x714(r28)
/* 800C8C04 000C4B24 38 03 6C 80 */ addi r0, r3, _stack_end@l
/* 800C8C08 000C4B28 38 7C 07 18 */ addi r3, r28, 0x718
/* 800C8C0C 000C4B2C 90 1C 07 18 */ stw r0, 0x718(r28)
/* 800C8C10 000C4B30 3C 80 DE AE */ lis r4, 0xDEADBABE@ha
/* 800C8C14 000C4B34 3B 40 00 00 */ li r26, 0
/* 800C8C18 000C4B38 80 63 00 00 */ lwz r3, 0(r3)
/* 800C8C1C 000C4B3C 38 84 BA BE */ addi r4, r4, 0xDEADBABE@l
/* 800C8C20 000C4B40 57 40 18 38 */ slwi r0, r26, 3
/* 800C8C24 000C4B44 90 83 00 00 */ stw r4, 0(r3)
/* 800C8C28 000C4B48 7F 7C 02 14 */ add r27, r28, r0
/* 800C8C2C 000C4B4C 93 AD A1 68 */ stw r29, RunQueueBits@sda21(r13)
/* 800C8C30 000C4B50 93 FE 00 E4 */ stw r31, 0xe4(r30)
/* 800C8C34 000C4B54 93 AD A1 6C */ stw r29, RunQueueHint@sda21(r13)
lbl_800C8C38:
/* 800C8C38 000C4B58 7F 63 DB 78 */ mr r3, r27
/* 800C8C3C 000C4B5C 48 00 00 6D */ bl OSInitThreadQueue
/* 800C8C40 000C4B60 3B 5A 00 01 */ addi r26, r26, 1
/* 800C8C44 000C4B64 2C 1A 00 1F */ cmpwi r26, 0x1f
/* 800C8C48 000C4B68 3B 7B 00 08 */ addi r27, r27, 8
/* 800C8C4C 000C4B6C 40 81 FF EC */ ble lbl_800C8C38
/* 800C8C50 000C4B70 3F C0 80 00 */ lis r30, 0x800000DC@ha
/* 800C8C54 000C4B74 38 7E 00 DC */ addi r3, r30, 0x800000DC@l
/* 800C8C58 000C4B78 48 00 00 51 */ bl OSInitThreadQueue
/* 800C8C5C 000C4B7C 38 9E 00 DC */ addi r4, r30, 0xdc
/* 800C8C60 000C4B80 84 64 00 04 */ lwzu r3, 4(r4)
/* 800C8C64 000C4B84 28 03 00 00 */ cmplwi r3, 0
/* 800C8C68 000C4B88 40 82 00 0C */ bne lbl_800C8C74
/* 800C8C6C 000C4B8C 93 FE 00 DC */ stw r31, 0xdc(r30)
/* 800C8C70 000C4B90 48 00 00 08 */ b lbl_800C8C78
lbl_800C8C74:
/* 800C8C74 000C4B94 93 E3 02 FC */ stw r31, 0x2fc(r3)
lbl_800C8C78:
/* 800C8C78 000C4B98 90 7F 03 00 */ stw r3, 0x300(r31)
/* 800C8C7C 000C4B9C 3B C0 00 00 */ li r30, 0
/* 800C8C80 000C4BA0 38 7C 07 20 */ addi r3, r28, 0x720
/* 800C8C84 000C4BA4 93 DF 02 FC */ stw r30, 0x2fc(r31)
/* 800C8C88 000C4BA8 93 E4 00 00 */ stw r31, 0(r4)
/* 800C8C8C 000C4BAC 4B FF AB FD */ bl OSClearContext
/* 800C8C90 000C4BB0 93 CD A1 70 */ stw r30, Reschedule@sda21(r13)
/* 800C8C94 000C4BB4 BB 41 00 08 */ lmw r26, 8(r1)
/* 800C8C98 000C4BB8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800C8C9C 000C4BBC 38 21 00 20 */ addi r1, r1, 0x20
/* 800C8CA0 000C4BC0 7C 08 03 A6 */ mtlr r0
/* 800C8CA4 000C4BC4 4E 80 00 20 */ blr
.global OSInitThreadQueue
OSInitThreadQueue:
/* 800C8CA8 000C4BC8 38 00 00 00 */ li r0, 0
/* 800C8CAC 000C4BCC 90 03 00 04 */ stw r0, 4(r3)
/* 800C8CB0 000C4BD0 90 03 00 00 */ stw r0, 0(r3)
/* 800C8CB4 000C4BD4 4E 80 00 20 */ blr
.global OSGetCurrentThread
OSGetCurrentThread:
/* 800C8CB8 000C4BD8 3C 60 80 00 */ lis r3, 0x800000E4@ha
/* 800C8CBC 000C4BDC 80 63 00 E4 */ lwz r3, 0x800000E4@l(r3)
/* 800C8CC0 000C4BE0 4E 80 00 20 */ blr
.global OSDisableScheduler
OSDisableScheduler:
/* 800C8CC4 000C4BE4 7C 08 02 A6 */ mflr r0
/* 800C8CC8 000C4BE8 90 01 00 04 */ stw r0, 4(r1)
/* 800C8CCC 000C4BEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C8CD0 000C4BF0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800C8CD4 000C4BF4 4B FF D3 E9 */ bl OSDisableInterrupts
/* 800C8CD8 000C4BF8 80 8D A1 70 */ lwz r4, Reschedule@sda21(r13)
/* 800C8CDC 000C4BFC 38 04 00 01 */ addi r0, r4, 1
/* 800C8CE0 000C4C00 90 0D A1 70 */ stw r0, Reschedule@sda21(r13)
/* 800C8CE4 000C4C04 7C 9F 23 78 */ mr r31, r4
/* 800C8CE8 000C4C08 4B FF D3 FD */ bl OSRestoreInterrupts
/* 800C8CEC 000C4C0C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C8CF0 000C4C10 7F E3 FB 78 */ mr r3, r31
/* 800C8CF4 000C4C14 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800C8CF8 000C4C18 38 21 00 10 */ addi r1, r1, 0x10
/* 800C8CFC 000C4C1C 7C 08 03 A6 */ mtlr r0
/* 800C8D00 000C4C20 4E 80 00 20 */ blr
.global OSEnableScheduler
OSEnableScheduler:
/* 800C8D04 000C4C24 7C 08 02 A6 */ mflr r0
/* 800C8D08 000C4C28 90 01 00 04 */ stw r0, 4(r1)
/* 800C8D0C 000C4C2C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800C8D10 000C4C30 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800C8D14 000C4C34 4B FF D3 A9 */ bl OSDisableInterrupts
/* 800C8D18 000C4C38 80 8D A1 70 */ lwz r4, Reschedule@sda21(r13)
/* 800C8D1C 000C4C3C 38 04 FF FF */ addi r0, r4, -1
/* 800C8D20 000C4C40 90 0D A1 70 */ stw r0, Reschedule@sda21(r13)
/* 800C8D24 000C4C44 7C 9F 23 78 */ mr r31, r4
/* 800C8D28 000C4C48 4B FF D3 BD */ bl OSRestoreInterrupts
/* 800C8D2C 000C4C4C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800C8D30 000C4C50 7F E3 FB 78 */ mr r3, r31
/* 800C8D34 000C4C54 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800C8D38 000C4C58 38 21 00 10 */ addi r1, r1, 0x10
/* 800C8D3C 000C4C5C 7C 08 03 A6 */ mtlr r0
/* 800C8D40 000C4C60 4E 80 00 20 */ blr
.global UnsetRun
UnsetRun:
/* 800C8D44 000C4C64 80 83 02 E0 */ lwz r4, 0x2e0(r3)
/* 800C8D48 000C4C68 80 A3 02 DC */ lwz r5, 0x2dc(r3)
/* 800C8D4C 000C4C6C 28 04 00 00 */ cmplwi r4, 0
/* 800C8D50 000C4C70 80 C3 02 E4 */ lwz r6, 0x2e4(r3)
/* 800C8D54 000C4C74 40 82 00 0C */ bne lbl_800C8D60
/* 800C8D58 000C4C78 90 C5 00 04 */ stw r6, 4(r5)
/* 800C8D5C 000C4C7C 48 00 00 08 */ b lbl_800C8D64
lbl_800C8D60:
/* 800C8D60 000C4C80 90 C4 02 E4 */ stw r6, 0x2e4(r4)
lbl_800C8D64:
/* 800C8D64 000C4C84 28 06 00 00 */ cmplwi r6, 0
/* 800C8D68 000C4C88 40 82 00 0C */ bne lbl_800C8D74
/* 800C8D6C 000C4C8C 90 85 00 00 */ stw r4, 0(r5)
/* 800C8D70 000C4C90 48 00 00 08 */ b lbl_800C8D78
lbl_800C8D74:
/* 800C8D74 000C4C94 90 86 02 E0 */ stw r4, 0x2e0(r6)
lbl_800C8D78:
/* 800C8D78 000C4C98 80 05 00 00 */ lwz r0, 0(r5)
/* 800C8D7C 000C4C9C 28 00 00 00 */ cmplwi r0, 0
/* 800C8D80 000C4CA0 40 82 00 20 */ bne lbl_800C8DA0
/* 800C8D84 000C4CA4 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 800C8D88 000C4CA8 38 80 00 01 */ li r4, 1
/* 800C8D8C 000C4CAC 80 AD A1 68 */ lwz r5, RunQueueBits@sda21(r13)
/* 800C8D90 000C4CB0 20 00 00 1F */ subfic r0, r0, 0x1f
/* 800C8D94 000C4CB4 7C 80 00 30 */ slw r0, r4, r0
/* 800C8D98 000C4CB8 7C A0 00 78 */ andc r0, r5, r0
/* 800C8D9C 000C4CBC 90 0D A1 68 */ stw r0, RunQueueBits@sda21(r13)
lbl_800C8DA0:
/* 800C8DA0 000C4CC0 38 00 00 00 */ li r0, 0
/* 800C8DA4 000C4CC4 90 03 02 DC */ stw r0, 0x2dc(r3)
/* 800C8DA8 000C4CC8 4E 80 00 20 */ blr
.global __OSGetEffectivePriority
__OSGetEffectivePriority:
/* 800C8DAC 000C4CCC 80 83 02 D4 */ lwz r4, 0x2d4(r3)
/* 800C8DB0 000C4CD0 80 A3 02 F4 */ lwz r5, 0x2f4(r3)
/* 800C8DB4 000C4CD4 48 00 00 24 */ b lbl_800C8DD8
lbl_800C8DB8:
/* 800C8DB8 000C4CD8 80 65 00 00 */ lwz r3, 0(r5)
/* 800C8DBC 000C4CDC 28 03 00 00 */ cmplwi r3, 0
/* 800C8DC0 000C4CE0 41 82 00 14 */ beq lbl_800C8DD4
/* 800C8DC4 000C4CE4 80 03 02 D0 */ lwz r0, 0x2d0(r3)
/* 800C8DC8 000C4CE8 7C 00 20 00 */ cmpw r0, r4
/* 800C8DCC 000C4CEC 40 80 00 08 */ bge lbl_800C8DD4
/* 800C8DD0 000C4CF0 7C 04 03 78 */ mr r4, r0
lbl_800C8DD4:
/* 800C8DD4 000C4CF4 80 A5 00 10 */ lwz r5, 0x10(r5)
lbl_800C8DD8:
/* 800C8DD8 000C4CF8 28 05 00 00 */ cmplwi r5, 0
/* 800C8DDC 000C4CFC 40 82 FF DC */ bne lbl_800C8DB8
/* 800C8DE0 000C4D00 7C 83 23 78 */ mr r3, r4
/* 800C8DE4 000C4D04 4E 80 00 20 */ blr
.global SetEffectivePriority
SetEffectivePriority:
/* 800C8DE8 000C4D08 7C 08 02 A6 */ mflr r0
/* 800C8DEC 000C4D0C 90 01 00 04 */ stw r0, 4(r1)
/* 800C8DF0 000C4D10 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800C8DF4 000C4D14 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800C8DF8 000C4D18 7C 7F 1B 78 */ mr r31, r3
/* 800C8DFC 000C4D1C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800C8E00 000C4D20 3B C4 00 00 */ addi r30, r4, 0
/* 800C8E04 000C4D24 A0 03 02 C8 */ lhz r0, 0x2c8(r3)
/* 800C8E08 000C4D28 2C 00 00 03 */ cmpwi r0, 3
/* 800C8E0C 000C4D2C 41 82 01 80 */ beq lbl_800C8F8C
/* 800C8E10 000C4D30 40 80 00 14 */ bge lbl_800C8E24
/* 800C8E14 000C4D34 2C 00 00 01 */ cmpwi r0, 1
/* 800C8E18 000C4D38 41 82 00 18 */ beq lbl_800C8E30
/* 800C8E1C 000C4D3C 40 80 01 64 */ bge lbl_800C8F80
/* 800C8E20 000C4D40 48 00 01 6C */ b lbl_800C8F8C
lbl_800C8E24:
/* 800C8E24 000C4D44 2C 00 00 05 */ cmpwi r0, 5
/* 800C8E28 000C4D48 40 80 01 64 */ bge lbl_800C8F8C
/* 800C8E2C 000C4D4C 48 00 00 7C */ b lbl_800C8EA8
lbl_800C8E30:
/* 800C8E30 000C4D50 7F E3 FB 78 */ mr r3, r31
/* 800C8E34 000C4D54 4B FF FF 11 */ bl UnsetRun
/* 800C8E38 000C4D58 93 DF 02 D0 */ stw r30, 0x2d0(r31)
/* 800C8E3C 000C4D5C 3C 60 80 2C */ lis r3, lbl_802C6E78@ha
/* 800C8E40 000C4D60 38 03 6E 78 */ addi r0, r3, lbl_802C6E78@l
/* 800C8E44 000C4D64 80 7F 02 D0 */ lwz r3, 0x2d0(r31)
/* 800C8E48 000C4D68 54 63 18 38 */ slwi r3, r3, 3
/* 800C8E4C 000C4D6C 7C 00 1A 14 */ add r0, r0, r3
/* 800C8E50 000C4D70 90 1F 02 DC */ stw r0, 0x2dc(r31)
/* 800C8E54 000C4D74 80 9F 02 DC */ lwz r4, 0x2dc(r31)
/* 800C8E58 000C4D78 80 64 00 04 */ lwz r3, 4(r4)
/* 800C8E5C 000C4D7C 28 03 00 00 */ cmplwi r3, 0
/* 800C8E60 000C4D80 40 82 00 0C */ bne lbl_800C8E6C
/* 800C8E64 000C4D84 93 E4 00 00 */ stw r31, 0(r4)
/* 800C8E68 000C4D88 48 00 00 08 */ b lbl_800C8E70
lbl_800C8E6C:
/* 800C8E6C 000C4D8C 93 E3 02 E0 */ stw r31, 0x2e0(r3)
lbl_800C8E70:
/* 800C8E70 000C4D90 90 7F 02 E4 */ stw r3, 0x2e4(r31)
/* 800C8E74 000C4D94 38 00 00 00 */ li r0, 0
/* 800C8E78 000C4D98 38 60 00 01 */ li r3, 1
/* 800C8E7C 000C4D9C 90 1F 02 E0 */ stw r0, 0x2e0(r31)
/* 800C8E80 000C4DA0 80 9F 02 DC */ lwz r4, 0x2dc(r31)
/* 800C8E84 000C4DA4 93 E4 00 04 */ stw r31, 4(r4)
/* 800C8E88 000C4DA8 80 1F 02 D0 */ lwz r0, 0x2d0(r31)
/* 800C8E8C 000C4DAC 80 8D A1 68 */ lwz r4, RunQueueBits@sda21(r13)
/* 800C8E90 000C4DB0 20 00 00 1F */ subfic r0, r0, 0x1f
/* 800C8E94 000C4DB4 7C 60 00 30 */ slw r0, r3, r0
/* 800C8E98 000C4DB8 7C 80 03 78 */ or r0, r4, r0
/* 800C8E9C 000C4DBC 90 0D A1 68 */ stw r0, RunQueueBits@sda21(r13)
/* 800C8EA0 000C4DC0 90 6D A1 6C */ stw r3, RunQueueHint@sda21(r13)
/* 800C8EA4 000C4DC4 48 00 00 E8 */ b lbl_800C8F8C
lbl_800C8EA8:
/* 800C8EA8 000C4DC8 80 9F 02 E0 */ lwz r4, 0x2e0(r31)
/* 800C8EAC 000C4DCC 80 BF 02 E4 */ lwz r5, 0x2e4(r31)
/* 800C8EB0 000C4DD0 28 04 00 00 */ cmplwi r4, 0
/* 800C8EB4 000C4DD4 40 82 00 10 */ bne lbl_800C8EC4
/* 800C8EB8 000C4DD8 80 7F 02 DC */ lwz r3, 0x2dc(r31)
/* 800C8EBC 000C4DDC 90 A3 00 04 */ stw r5, 4(r3)
/* 800C8EC0 000C4DE0 48 00 00 08 */ b lbl_800C8EC8
lbl_800C8EC4:
/* 800C8EC4 000C4DE4 90 A4 02 E4 */ stw r5, 0x2e4(r4)
lbl_800C8EC8:
/* 800C8EC8 000C4DE8 28 05 00 00 */ cmplwi r5, 0
/* 800C8ECC 000C4DEC 40 82 00 10 */ bne lbl_800C8EDC
/* 800C8ED0 000C4DF0 80 7F 02 DC */ lwz r3, 0x2dc(r31)
/* 800C8ED4 000C4DF4 90 83 00 00 */ stw r4, 0(r3)
/* 800C8ED8 000C4DF8 48 00 00 08 */ b lbl_800C8EE0
lbl_800C8EDC:
/* 800C8EDC 000C4DFC 90 85 02 E0 */ stw r4, 0x2e0(r5)
lbl_800C8EE0:
/* 800C8EE0 000C4E00 93 DF 02 D0 */ stw r30, 0x2d0(r31)
/* 800C8EE4 000C4E04 80 9F 02 DC */ lwz r4, 0x2dc(r31)
/* 800C8EE8 000C4E08 80 A4 00 00 */ lwz r5, 0(r4)
/* 800C8EEC 000C4E0C 48 00 00 08 */ b lbl_800C8EF4
lbl_800C8EF0:
/* 800C8EF0 000C4E10 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
lbl_800C8EF4:
/* 800C8EF4 000C4E14 28 05 00 00 */ cmplwi r5, 0
/* 800C8EF8 000C4E18 41 82 00 14 */ beq lbl_800C8F0C
/* 800C8EFC 000C4E1C 80 65 02 D0 */ lwz r3, 0x2d0(r5)
/* 800C8F00 000C4E20 80 1F 02 D0 */ lwz r0, 0x2d0(r31)
/* 800C8F04 000C4E24 7C 03 00 00 */ cmpw r3, r0
/* 800C8F08 000C4E28 40 81 FF E8 */ ble lbl_800C8EF0
lbl_800C8F0C:
/* 800C8F0C 000C4E2C 28 05 00 00 */ cmplwi r5, 0
/* 800C8F10 000C4E30 40 82 00 34 */ bne lbl_800C8F44
/* 800C8F14 000C4E34 80 64 00 04 */ lwz r3, 4(r4)
/* 800C8F18 000C4E38 28 03 00 00 */ cmplwi r3, 0
/* 800C8F1C 000C4E3C 40 82 00 0C */ bne lbl_800C8F28
/* 800C8F20 000C4E40 93 E4 00 00 */ stw r31, 0(r4)
/* 800C8F24 000C4E44 48 00 00 08 */ b lbl_800C8F2C
lbl_800C8F28:
/* 800C8F28 000C4E48 93 E3 02 E0 */ stw r31, 0x2e0(r3)
lbl_800C8F2C:
/* 800C8F2C 000C4E4C 90 7F 02 E4 */ stw r3, 0x2e4(r31)
/* 800C8F30 000C4E50 38 00 00 00 */ li r0, 0
/* 800C8F34 000C4E54 90 1F 02 E0 */ stw r0, 0x2e0(r31)
/* 800C8F38 000C4E58 80 7F 02 DC */ lwz r3, 0x2dc(r31)
/* 800C8F3C 000C4E5C 93 E3 00 04 */ stw r31, 4(r3)
/* 800C8F40 000C4E60 48 00 00 2C */ b lbl_800C8F6C
lbl_800C8F44:
/* 800C8F44 000C4E64 90 BF 02 E0 */ stw r5, 0x2e0(r31)
/* 800C8F48 000C4E68 80 65 02 E4 */ lwz r3, 0x2e4(r5)
/* 800C8F4C 000C4E6C 93 E5 02 E4 */ stw r31, 0x2e4(r5)
/* 800C8F50 000C4E70 28 03 00 00 */ cmplwi r3, 0
/* 800C8F54 000C4E74 90 7F 02 E4 */ stw r3, 0x2e4(r31)
/* 800C8F58 000C4E78 40 82 00 10 */ bne lbl_800C8F68
/* 800C8F5C 000C4E7C 80 7F 02 DC */ lwz r3, 0x2dc(r31)
/* 800C8F60 000C4E80 93 E3 00 00 */ stw r31, 0(r3)
/* 800C8F64 000C4E84 48 00 00 08 */ b lbl_800C8F6C
lbl_800C8F68:
/* 800C8F68 000C4E88 93 E3 02 E0 */ stw r31, 0x2e0(r3)
lbl_800C8F6C:
/* 800C8F6C 000C4E8C 80 7F 02 F0 */ lwz r3, 0x2f0(r31)
/* 800C8F70 000C4E90 28 03 00 00 */ cmplwi r3, 0
/* 800C8F74 000C4E94 41 82 00 18 */ beq lbl_800C8F8C
/* 800C8F78 000C4E98 80 63 00 08 */ lwz r3, 8(r3)
/* 800C8F7C 000C4E9C 48 00 00 14 */ b lbl_800C8F90
lbl_800C8F80:
/* 800C8F80 000C4EA0 38 00 00 01 */ li r0, 1
/* 800C8F84 000C4EA4 90 0D A1 6C */ stw r0, RunQueueHint@sda21(r13)
/* 800C8F88 000C4EA8 93 DF 02 D0 */ stw r30, 0x2d0(r31)
lbl_800C8F8C:
/* 800C8F8C 000C4EAC 38 60 00 00 */ li r3, 0
lbl_800C8F90:
/* 800C8F90 000C4EB0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800C8F94 000C4EB4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800C8F98 000C4EB8 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800C8F9C 000C4EBC 7C 08 03 A6 */ mtlr r0
/* 800C8FA0 000C4EC0 38 21 00 18 */ addi r1, r1, 0x18
/* 800C8FA4 000C4EC4 4E 80 00 20 */ blr
.global SelectThread
SelectThread:
/* 800C8FA8 000C4EC8 7C 08 02 A6 */ mflr r0
/* 800C8FAC 000C4ECC 3C 80 80 2C */ lis r4, lbl_802C6E78@ha
/* 800C8FB0 000C4ED0 90 01 00 04 */ stw r0, 4(r1)
/* 800C8FB4 000C4ED4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800C8FB8 000C4ED8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800C8FBC 000C4EDC 3B E4 6E 78 */ addi r31, r4, lbl_802C6E78@l
/* 800C8FC0 000C4EE0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800C8FC4 000C4EE4 3B C3 00 00 */ addi r30, r3, 0
/* 800C8FC8 000C4EE8 80 0D A1 70 */ lwz r0, Reschedule@sda21(r13)
/* 800C8FCC 000C4EEC 2C 00 00 00 */ cmpwi r0, 0
/* 800C8FD0 000C4EF0 40 81 00 0C */ ble lbl_800C8FDC
/* 800C8FD4 000C4EF4 38 60 00 00 */ li r3, 0
/* 800C8FD8 000C4EF8 48 00 01 B8 */ b lbl_800C9190
lbl_800C8FDC:
/* 800C8FDC 000C4EFC 4B FF A7 41 */ bl OSGetCurrentContext
/* 800C8FE0 000C4F00 3C 80 80 00 */ lis r4, 0x800000E4@ha
/* 800C8FE4 000C4F04 80 C4 00 E4 */ lwz r6, 0x800000E4@l(r4)
/* 800C8FE8 000C4F08 7C 03 30 40 */ cmplw r3, r6
/* 800C8FEC 000C4F0C 38 66 00 00 */ addi r3, r6, 0
/* 800C8FF0 000C4F10 41 82 00 0C */ beq lbl_800C8FFC
/* 800C8FF4 000C4F14 38 60 00 00 */ li r3, 0
/* 800C8FF8 000C4F18 48 00 01 98 */ b lbl_800C9190
lbl_800C8FFC:
/* 800C8FFC 000C4F1C 28 06 00 00 */ cmplwi r6, 0
/* 800C9000 000C4F20 41 82 00 BC */ beq lbl_800C90BC
/* 800C9004 000C4F24 A0 06 02 C8 */ lhz r0, 0x2c8(r6)
/* 800C9008 000C4F28 28 00 00 02 */ cmplwi r0, 2
/* 800C900C 000C4F2C 40 82 00 90 */ bne lbl_800C909C
/* 800C9010 000C4F30 2C 1E 00 00 */ cmpwi r30, 0
/* 800C9014 000C4F34 40 82 00 20 */ bne lbl_800C9034
/* 800C9018 000C4F38 80 8D A1 68 */ lwz r4, RunQueueBits@sda21(r13)
/* 800C901C 000C4F3C 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 800C9020 000C4F40 7C 84 00 34 */ cntlzw r4, r4
/* 800C9024 000C4F44 7C 00 20 00 */ cmpw r0, r4
/* 800C9028 000C4F48 41 81 00 0C */ bgt lbl_800C9034
/* 800C902C 000C4F4C 38 60 00 00 */ li r3, 0
/* 800C9030 000C4F50 48 00 01 60 */ b lbl_800C9190
lbl_800C9034:
/* 800C9034 000C4F54 38 00 00 01 */ li r0, 1
/* 800C9038 000C4F58 B0 06 02 C8 */ sth r0, 0x2c8(r6)
/* 800C903C 000C4F5C 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 800C9040 000C4F60 54 00 18 38 */ slwi r0, r0, 3
/* 800C9044 000C4F64 7C 1F 02 14 */ add r0, r31, r0
/* 800C9048 000C4F68 90 06 02 DC */ stw r0, 0x2dc(r6)
/* 800C904C 000C4F6C 80 A6 02 DC */ lwz r5, 0x2dc(r6)
/* 800C9050 000C4F70 80 85 00 04 */ lwz r4, 4(r5)
/* 800C9054 000C4F74 28 04 00 00 */ cmplwi r4, 0
/* 800C9058 000C4F78 40 82 00 0C */ bne lbl_800C9064
/* 800C905C 000C4F7C 90 C5 00 00 */ stw r6, 0(r5)
/* 800C9060 000C4F80 48 00 00 08 */ b lbl_800C9068
lbl_800C9064:
/* 800C9064 000C4F84 90 C4 02 E0 */ stw r6, 0x2e0(r4)
lbl_800C9068:
/* 800C9068 000C4F88 90 86 02 E4 */ stw r4, 0x2e4(r6)
/* 800C906C 000C4F8C 38 00 00 00 */ li r0, 0
/* 800C9070 000C4F90 38 80 00 01 */ li r4, 1
/* 800C9074 000C4F94 90 06 02 E0 */ stw r0, 0x2e0(r6)
/* 800C9078 000C4F98 80 A6 02 DC */ lwz r5, 0x2dc(r6)
/* 800C907C 000C4F9C 90 C5 00 04 */ stw r6, 4(r5)
/* 800C9080 000C4FA0 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 800C9084 000C4FA4 80 AD A1 68 */ lwz r5, RunQueueBits@sda21(r13)
/* 800C9088 000C4FA8 20 00 00 1F */ subfic r0, r0, 0x1f
/* 800C908C 000C4FAC 7C 80 00 30 */ slw r0, r4, r0
/* 800C9090 000C4FB0 7C A0 03 78 */ or r0, r5, r0
/* 800C9094 000C4FB4 90 0D A1 68 */ stw r0, RunQueueBits@sda21(r13)
/* 800C9098 000C4FB8 90 8D A1 6C */ stw r4, RunQueueHint@sda21(r13)
lbl_800C909C:
/* 800C909C 000C4FBC A0 06 01 A2 */ lhz r0, 0x1a2(r6)
/* 800C90A0 000C4FC0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 800C90A4 000C4FC4 40 82 00 18 */ bne lbl_800C90BC
/* 800C90A8 000C4FC8 4B FF A6 81 */ bl OSSaveContext
/* 800C90AC 000C4FCC 28 03 00 00 */ cmplwi r3, 0
/* 800C90B0 000C4FD0 41 82 00 0C */ beq lbl_800C90BC
/* 800C90B4 000C4FD4 38 60 00 00 */ li r3, 0
/* 800C90B8 000C4FD8 48 00 00 D8 */ b lbl_800C9190
lbl_800C90BC:
/* 800C90BC 000C4FDC 80 0D A1 68 */ lwz r0, RunQueueBits@sda21(r13)
/* 800C90C0 000C4FE0 38 80 00 00 */ li r4, 0
/* 800C90C4 000C4FE4 3C 60 80 00 */ lis r3, 0x800000E4@ha
/* 800C90C8 000C4FE8 28 00 00 00 */ cmplwi r0, 0
/* 800C90CC 000C4FEC 90 83 00 E4 */ stw r4, 0x800000E4@l(r3)
/* 800C90D0 000C4FF0 40 82 00 34 */ bne lbl_800C9104
/* 800C90D4 000C4FF4 38 7F 07 20 */ addi r3, r31, 0x720
/* 800C90D8 000C4FF8 4B FF A5 E9 */ bl OSSetCurrentContext
lbl_800C90DC:
/* 800C90DC 000C4FFC 4B FF CF F5 */ bl OSEnableInterrupts
lbl_800C90E0:
/* 800C90E0 000C5000 80 0D A1 68 */ lwz r0, RunQueueBits@sda21(r13)
/* 800C90E4 000C5004 28 00 00 00 */ cmplwi r0, 0
/* 800C90E8 000C5008 41 82 FF F8 */ beq lbl_800C90E0
/* 800C90EC 000C500C 4B FF CF D1 */ bl OSDisableInterrupts
/* 800C90F0 000C5010 80 0D A1 68 */ lwz r0, RunQueueBits@sda21(r13)
/* 800C90F4 000C5014 28 00 00 00 */ cmplwi r0, 0
/* 800C90F8 000C5018 41 82 FF E4 */ beq lbl_800C90DC
/* 800C90FC 000C501C 38 7F 07 20 */ addi r3, r31, 0x720
/* 800C9100 000C5020 4B FF A7 89 */ bl OSClearContext
lbl_800C9104:
/* 800C9104 000C5024 38 60 00 00 */ li r3, 0
/* 800C9108 000C5028 90 6D A1 6C */ stw r3, RunQueueHint@sda21(r13)
/* 800C910C 000C502C 80 0D A1 68 */ lwz r0, RunQueueBits@sda21(r13)
/* 800C9110 000C5030 7C 07 00 34 */ cntlzw r7, r0
/* 800C9114 000C5034 54 E0 18 38 */ slwi r0, r7, 3
/* 800C9118 000C5038 7C 9F 02 14 */ add r4, r31, r0
/* 800C911C 000C503C 80 A4 00 00 */ lwz r5, 0(r4)
/* 800C9120 000C5040 80 C5 02 E0 */ lwz r6, 0x2e0(r5)
/* 800C9124 000C5044 3B E5 00 00 */ addi r31, r5, 0
/* 800C9128 000C5048 28 06 00 00 */ cmplwi r6, 0
/* 800C912C 000C504C 40 82 00 0C */ bne lbl_800C9138
/* 800C9130 000C5050 90 64 00 04 */ stw r3, 4(r4)
/* 800C9134 000C5054 48 00 00 08 */ b lbl_800C913C
lbl_800C9138:
/* 800C9138 000C5058 90 66 02 E4 */ stw r3, 0x2e4(r6)
lbl_800C913C:
/* 800C913C 000C505C 90 C4 00 00 */ stw r6, 0(r4)
/* 800C9140 000C5060 80 04 00 00 */ lwz r0, 0(r4)
/* 800C9144 000C5064 28 00 00 00 */ cmplwi r0, 0
/* 800C9148 000C5068 40 82 00 1C */ bne lbl_800C9164
/* 800C914C 000C506C 20 07 00 1F */ subfic r0, r7, 0x1f
/* 800C9150 000C5070 80 8D A1 68 */ lwz r4, RunQueueBits@sda21(r13)
/* 800C9154 000C5074 38 60 00 01 */ li r3, 1
/* 800C9158 000C5078 7C 60 00 30 */ slw r0, r3, r0
/* 800C915C 000C507C 7C 80 00 78 */ andc r0, r4, r0
/* 800C9160 000C5080 90 0D A1 68 */ stw r0, RunQueueBits@sda21(r13)
lbl_800C9164:
/* 800C9164 000C5084 38 00 00 00 */ li r0, 0
/* 800C9168 000C5088 90 1F 02 DC */ stw r0, 0x2dc(r31)
/* 800C916C 000C508C 38 00 00 02 */ li r0, 2
/* 800C9170 000C5090 3C 80 80 00 */ lis r4, 0x800000E4@ha
/* 800C9174 000C5094 B0 1F 02 C8 */ sth r0, 0x2c8(r31)
/* 800C9178 000C5098 7F E3 FB 78 */ mr r3, r31
/* 800C917C 000C509C 93 E4 00 E4 */ stw r31, 0x800000E4@l(r4)
/* 800C9180 000C50A0 4B FF A5 41 */ bl OSSetCurrentContext
/* 800C9184 000C50A4 7F E3 FB 78 */ mr r3, r31
/* 800C9188 000C50A8 4B FF A6 21 */ bl OSLoadContext
/* 800C918C 000C50AC 7F E3 FB 78 */ mr r3, r31
lbl_800C9190:
/* 800C9190 000C50B0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800C9194 000C50B4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800C9198 000C50B8 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800C919C 000C50BC 7C 08 03 A6 */ mtlr r0
/* 800C91A0 000C50C0 38 21 00 18 */ addi r1, r1, 0x18
/* 800C91A4 000C50C4 4E 80 00 20 */ blr
.global __OSReschedule
__OSReschedule:
/* 800C91A8 000C50C8 7C 08 02 A6 */ mflr r0
/* 800C91AC 000C50CC 90 01 00 04 */ stw r0, 4(r1)
/* 800C91B0 000C50D0 94 21 FF F8 */ stwu r1, -8(r1)
/* 800C91B4 000C50D4 80 0D A1 6C */ lwz r0, RunQueueHint@sda21(r13)
/* 800C91B8 000C50D8 2C 00 00 00 */ cmpwi r0, 0
/* 800C91BC 000C50DC 41 82 00 0C */ beq lbl_800C91C8
/* 800C91C0 000C50E0 38 60 00 00 */ li r3, 0
/* 800C91C4 000C50E4 4B FF FD E5 */ bl SelectThread
lbl_800C91C8:
/* 800C91C8 000C50E8 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800C91CC 000C50EC 38 21 00 08 */ addi r1, r1, 8
/* 800C91D0 000C50F0 7C 08 03 A6 */ mtlr r0
/* 800C91D4 000C50F4 4E 80 00 20 */ blr
.global OSCancelThread
OSCancelThread:
/* 800C91D8 000C50F8 7C 08 02 A6 */ mflr r0
/* 800C91DC 000C50FC 90 01 00 04 */ stw r0, 4(r1)
/* 800C91E0 000C5100 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800C91E4 000C5104 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800C91E8 000C5108 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800C91EC 000C510C 7C 7E 1B 78 */ mr r30, r3
/* 800C91F0 000C5110 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800C91F4 000C5114 4B FF CE C9 */ bl OSDisableInterrupts
/* 800C91F8 000C5118 A0 1E 02 C8 */ lhz r0, 0x2c8(r30)
/* 800C91FC 000C511C 3B E3 00 00 */ addi r31, r3, 0
/* 800C9200 000C5120 2C 00 00 03 */ cmpwi r0, 3
/* 800C9204 000C5124 41 82 00 DC */ beq lbl_800C92E0
/* 800C9208 000C5128 40 80 00 14 */ bge lbl_800C921C
/* 800C920C 000C512C 2C 00 00 01 */ cmpwi r0, 1
/* 800C9210 000C5130 41 82 00 18 */ beq lbl_800C9228
/* 800C9214 000C5134 40 80 00 2C */ bge lbl_800C9240
/* 800C9218 000C5138 48 00 00 C8 */ b lbl_800C92E0
lbl_800C921C:
/* 800C921C 000C513C 2C 00 00 05 */ cmpwi r0, 5
/* 800C9220 000C5140 40 80 00 C0 */ bge lbl_800C92E0
/* 800C9224 000C5144 48 00 00 28 */ b lbl_800C924C
lbl_800C9228:
/* 800C9228 000C5148 80 1E 02 CC */ lwz r0, 0x2cc(r30)
/* 800C922C 000C514C 2C 00 00 00 */ cmpwi r0, 0
/* 800C9230 000C5150 41 81 00 BC */ bgt lbl_800C92EC
/* 800C9234 000C5154 7F C3 F3 78 */ mr r3, r30
/* 800C9238 000C5158 4B FF FB 0D */ bl UnsetRun
/* 800C923C 000C515C 48 00 00 B0 */ b lbl_800C92EC
lbl_800C9240:
/* 800C9240 000C5160 38 00 00 01 */ li r0, 1
/* 800C9244 000C5164 90 0D A1 6C */ stw r0, RunQueueHint@sda21(r13)
/* 800C9248 000C5168 48 00 00 A4 */ b lbl_800C92EC
lbl_800C924C:
/* 800C924C 000C516C 80 9E 02 E0 */ lwz r4, 0x2e0(r30)
/* 800C9250 000C5170 80 BE 02 E4 */ lwz r5, 0x2e4(r30)
/* 800C9254 000C5174 28 04 00 00 */ cmplwi r4, 0
/* 800C9258 000C5178 40 82 00 10 */ bne lbl_800C9268
/* 800C925C 000C517C 80 7E 02 DC */ lwz r3, 0x2dc(r30)
/* 800C9260 000C5180 90 A3 00 04 */ stw r5, 4(r3)
/* 800C9264 000C5184 48 00 00 08 */ b lbl_800C926C
lbl_800C9268:
/* 800C9268 000C5188 90 A4 02 E4 */ stw r5, 0x2e4(r4)
lbl_800C926C:
/* 800C926C 000C518C 28 05 00 00 */ cmplwi r5, 0
/* 800C9270 000C5190 40 82 00 10 */ bne lbl_800C9280
/* 800C9274 000C5194 80 7E 02 DC */ lwz r3, 0x2dc(r30)
/* 800C9278 000C5198 90 83 00 00 */ stw r4, 0(r3)
/* 800C927C 000C519C 48 00 00 08 */ b lbl_800C9284
lbl_800C9280:
/* 800C9280 000C51A0 90 85 02 E0 */ stw r4, 0x2e0(r5)
lbl_800C9284:
/* 800C9284 000C51A4 38 00 00 00 */ li r0, 0
/* 800C9288 000C51A8 90 1E 02 DC */ stw r0, 0x2dc(r30)
/* 800C928C 000C51AC 80 1E 02 CC */ lwz r0, 0x2cc(r30)
/* 800C9290 000C51B0 2C 00 00 00 */ cmpwi r0, 0
/* 800C9294 000C51B4 41 81 00 58 */ bgt lbl_800C92EC
/* 800C9298 000C51B8 80 7E 02 F0 */ lwz r3, 0x2f0(r30)
/* 800C929C 000C51BC 28 03 00 00 */ cmplwi r3, 0
/* 800C92A0 000C51C0 41 82 00 4C */ beq lbl_800C92EC
/* 800C92A4 000C51C4 83 A3 00 08 */ lwz r29, 8(r3)
lbl_800C92A8:
/* 800C92A8 000C51C8 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 800C92AC 000C51CC 2C 00 00 00 */ cmpwi r0, 0
/* 800C92B0 000C51D0 41 81 00 3C */ bgt lbl_800C92EC
/* 800C92B4 000C51D4 7F A3 EB 78 */ mr r3, r29
/* 800C92B8 000C51D8 4B FF FA F5 */ bl __OSGetEffectivePriority
/* 800C92BC 000C51DC 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 800C92C0 000C51E0 38 83 00 00 */ addi r4, r3, 0
/* 800C92C4 000C51E4 7C 00 20 00 */ cmpw r0, r4
/* 800C92C8 000C51E8 41 82 00 24 */ beq lbl_800C92EC
/* 800C92CC 000C51EC 7F A3 EB 78 */ mr r3, r29
/* 800C92D0 000C51F0 4B FF FB 19 */ bl SetEffectivePriority
/* 800C92D4 000C51F4 7C 7D 1B 79 */ or. r29, r3, r3
/* 800C92D8 000C51F8 40 82 FF D0 */ bne lbl_800C92A8
/* 800C92DC 000C51FC 48 00 00 10 */ b lbl_800C92EC
lbl_800C92E0:
/* 800C92E0 000C5200 7F E3 FB 78 */ mr r3, r31
/* 800C92E4 000C5204 4B FF CE 01 */ bl OSRestoreInterrupts
/* 800C92E8 000C5208 48 00 00 90 */ b lbl_800C9378
lbl_800C92EC:
/* 800C92EC 000C520C 7F C3 F3 78 */ mr r3, r30
/* 800C92F0 000C5210 4B FF A5 99 */ bl OSClearContext
/* 800C92F4 000C5214 A0 1E 02 CA */ lhz r0, 0x2ca(r30)
/* 800C92F8 000C5218 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 800C92FC 000C521C 41 82 00 48 */ beq lbl_800C9344
/* 800C9300 000C5220 80 9E 02 FC */ lwz r4, 0x2fc(r30)
/* 800C9304 000C5224 80 BE 03 00 */ lwz r5, 0x300(r30)
/* 800C9308 000C5228 28 04 00 00 */ cmplwi r4, 0
/* 800C930C 000C522C 40 82 00 10 */ bne lbl_800C931C
/* 800C9310 000C5230 3C 60 80 00 */ lis r3, 0x800000E0@ha
/* 800C9314 000C5234 90 A3 00 E0 */ stw r5, 0x800000E0@l(r3)
/* 800C9318 000C5238 48 00 00 08 */ b lbl_800C9320
lbl_800C931C:
/* 800C931C 000C523C 90 A4 03 00 */ stw r5, 0x300(r4)
lbl_800C9320:
/* 800C9320 000C5240 28 05 00 00 */ cmplwi r5, 0
/* 800C9324 000C5244 40 82 00 10 */ bne lbl_800C9334
/* 800C9328 000C5248 3C 60 80 00 */ lis r3, 0x800000DC@ha
/* 800C932C 000C524C 90 83 00 DC */ stw r4, 0x800000DC@l(r3)
/* 800C9330 000C5250 48 00 00 08 */ b lbl_800C9338
lbl_800C9334:
/* 800C9334 000C5254 90 85 02 FC */ stw r4, 0x2fc(r5)
lbl_800C9338:
/* 800C9338 000C5258 38 00 00 00 */ li r0, 0
/* 800C933C 000C525C B0 1E 02 C8 */ sth r0, 0x2c8(r30)
/* 800C9340 000C5260 48 00 00 0C */ b lbl_800C934C
lbl_800C9344:
/* 800C9344 000C5264 38 00 00 08 */ li r0, 8
/* 800C9348 000C5268 B0 1E 02 C8 */ sth r0, 0x2c8(r30)
lbl_800C934C:
/* 800C934C 000C526C 7F C3 F3 78 */ mr r3, r30
/* 800C9350 000C5270 4B FF DC D9 */ bl __OSUnlockAllMutex
/* 800C9354 000C5274 38 7E 02 E8 */ addi r3, r30, 0x2e8
/* 800C9358 000C5278 48 00 05 21 */ bl OSWakeupThread
/* 800C935C 000C527C 80 0D A1 6C */ lwz r0, RunQueueHint@sda21(r13)
/* 800C9360 000C5280 2C 00 00 00 */ cmpwi r0, 0
/* 800C9364 000C5284 41 82 00 0C */ beq lbl_800C9370
/* 800C9368 000C5288 38 60 00 00 */ li r3, 0
/* 800C936C 000C528C 4B FF FC 3D */ bl SelectThread
lbl_800C9370:
/* 800C9370 000C5290 7F E3 FB 78 */ mr r3, r31
/* 800C9374 000C5294 4B FF CD 71 */ bl OSRestoreInterrupts
lbl_800C9378:
/* 800C9378 000C5298 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800C937C 000C529C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800C9380 000C52A0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800C9384 000C52A4 7C 08 03 A6 */ mtlr r0
/* 800C9388 000C52A8 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800C938C 000C52AC 38 21 00 20 */ addi r1, r1, 0x20
/* 800C9390 000C52B0 4E 80 00 20 */ blr
.global OSResumeThread
OSResumeThread:
/* 800C9394 000C52B4 7C 08 02 A6 */ mflr r0
/* 800C9398 000C52B8 90 01 00 04 */ stw r0, 4(r1)
/* 800C939C 000C52BC 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 800C93A0 000C52C0 93 E1 00 24 */ stw r31, 0x24(r1)
/* 800C93A4 000C52C4 93 C1 00 20 */ stw r30, 0x20(r1)
/* 800C93A8 000C52C8 93 A1 00 1C */ stw r29, 0x1c(r1)
/* 800C93AC 000C52CC 7C 7D 1B 78 */ mr r29, r3
/* 800C93B0 000C52D0 4B FF CD 0D */ bl OSDisableInterrupts
/* 800C93B4 000C52D4 80 9D 02 CC */ lwz r4, 0x2cc(r29)
/* 800C93B8 000C52D8 3B E3 00 00 */ addi r31, r3, 0
/* 800C93BC 000C52DC 38 04 FF FF */ addi r0, r4, -1
/* 800C93C0 000C52E0 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 800C93C4 000C52E4 7C 9E 23 78 */ mr r30, r4
/* 800C93C8 000C52E8 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 800C93CC 000C52EC 2C 00 00 00 */ cmpwi r0, 0
/* 800C93D0 000C52F0 40 80 00 10 */ bge lbl_800C93E0
/* 800C93D4 000C52F4 38 00 00 00 */ li r0, 0
/* 800C93D8 000C52F8 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 800C93DC 000C52FC 48 00 02 18 */ b lbl_800C95F4
lbl_800C93E0:
/* 800C93E0 000C5300 40 82 02 14 */ bne lbl_800C95F4
/* 800C93E4 000C5304 A0 1D 02 C8 */ lhz r0, 0x2c8(r29)
/* 800C93E8 000C5308 2C 00 00 04 */ cmpwi r0, 4
/* 800C93EC 000C530C 41 82 00 B8 */ beq lbl_800C94A4
/* 800C93F0 000C5310 40 80 01 F0 */ bge lbl_800C95E0
/* 800C93F4 000C5314 2C 00 00 01 */ cmpwi r0, 1
/* 800C93F8 000C5318 41 82 00 08 */ beq lbl_800C9400
/* 800C93FC 000C531C 48 00 01 E4 */ b lbl_800C95E0
lbl_800C9400:
/* 800C9400 000C5320 80 1D 02 D4 */ lwz r0, 0x2d4(r29)
/* 800C9404 000C5324 80 7D 02 F4 */ lwz r3, 0x2f4(r29)
/* 800C9408 000C5328 48 00 00 24 */ b lbl_800C942C
lbl_800C940C:
/* 800C940C 000C532C 80 83 00 00 */ lwz r4, 0(r3)
/* 800C9410 000C5330 28 04 00 00 */ cmplwi r4, 0
/* 800C9414 000C5334 41 82 00 14 */ beq lbl_800C9428
/* 800C9418 000C5338 80 84 02 D0 */ lwz r4, 0x2d0(r4)
/* 800C941C 000C533C 7C 04 00 00 */ cmpw r4, r0
/* 800C9420 000C5340 40 80 00 08 */ bge lbl_800C9428
/* 800C9424 000C5344 7C 80 23 78 */ mr r0, r4
lbl_800C9428:
/* 800C9428 000C5348 80 63 00 10 */ lwz r3, 0x10(r3)
lbl_800C942C:
/* 800C942C 000C534C 28 03 00 00 */ cmplwi r3, 0
/* 800C9430 000C5350 40 82 FF DC */ bne lbl_800C940C
/* 800C9434 000C5354 90 1D 02 D0 */ stw r0, 0x2d0(r29)
/* 800C9438 000C5358 3C 60 80 2C */ lis r3, lbl_802C6E78@ha
/* 800C943C 000C535C 38 03 6E 78 */ addi r0, r3, lbl_802C6E78@l
/* 800C9440 000C5360 80 7D 02 D0 */ lwz r3, 0x2d0(r29)
/* 800C9444 000C5364 54 63 18 38 */ slwi r3, r3, 3
/* 800C9448 000C5368 7C 00 1A 14 */ add r0, r0, r3
/* 800C944C 000C536C 90 1D 02 DC */ stw r0, 0x2dc(r29)
/* 800C9450 000C5370 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 800C9454 000C5374 80 64 00 04 */ lwz r3, 4(r4)
/* 800C9458 000C5378 28 03 00 00 */ cmplwi r3, 0
/* 800C945C 000C537C 40 82 00 0C */ bne lbl_800C9468
/* 800C9460 000C5380 93 A4 00 00 */ stw r29, 0(r4)
/* 800C9464 000C5384 48 00 00 08 */ b lbl_800C946C
lbl_800C9468:
/* 800C9468 000C5388 93 A3 02 E0 */ stw r29, 0x2e0(r3)
lbl_800C946C:
/* 800C946C 000C538C 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 800C9470 000C5390 38 00 00 00 */ li r0, 0
/* 800C9474 000C5394 38 60 00 01 */ li r3, 1
/* 800C9478 000C5398 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 800C947C 000C539C 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 800C9480 000C53A0 93 A4 00 04 */ stw r29, 4(r4)
/* 800C9484 000C53A4 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 800C9488 000C53A8 80 8D A1 68 */ lwz r4, RunQueueBits@sda21(r13)
/* 800C948C 000C53AC 20 00 00 1F */ subfic r0, r0, 0x1f
/* 800C9490 000C53B0 7C 60 00 30 */ slw r0, r3, r0
/* 800C9494 000C53B4 7C 80 03 78 */ or r0, r4, r0
/* 800C9498 000C53B8 90 0D A1 68 */ stw r0, RunQueueBits@sda21(r13)
/* 800C949C 000C53BC 90 6D A1 6C */ stw r3, RunQueueHint@sda21(r13)
/* 800C94A0 000C53C0 48 00 01 40 */ b lbl_800C95E0
lbl_800C94A4:
/* 800C94A4 000C53C4 80 9D 02 E0 */ lwz r4, 0x2e0(r29)
/* 800C94A8 000C53C8 80 BD 02 E4 */ lwz r5, 0x2e4(r29)
/* 800C94AC 000C53CC 28 04 00 00 */ cmplwi r4, 0
/* 800C94B0 000C53D0 40 82 00 10 */ bne lbl_800C94C0
/* 800C94B4 000C53D4 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800C94B8 000C53D8 90 A3 00 04 */ stw r5, 4(r3)
/* 800C94BC 000C53DC 48 00 00 08 */ b lbl_800C94C4
lbl_800C94C0:
/* 800C94C0 000C53E0 90 A4 02 E4 */ stw r5, 0x2e4(r4)
lbl_800C94C4:
/* 800C94C4 000C53E4 28 05 00 00 */ cmplwi r5, 0
/* 800C94C8 000C53E8 40 82 00 10 */ bne lbl_800C94D8
/* 800C94CC 000C53EC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800C94D0 000C53F0 90 83 00 00 */ stw r4, 0(r3)
/* 800C94D4 000C53F4 48 00 00 08 */ b lbl_800C94DC
lbl_800C94D8:
/* 800C94D8 000C53F8 90 85 02 E0 */ stw r4, 0x2e0(r5)
lbl_800C94DC:
/* 800C94DC 000C53FC 80 1D 02 D4 */ lwz r0, 0x2d4(r29)
/* 800C94E0 000C5400 80 7D 02 F4 */ lwz r3, 0x2f4(r29)
/* 800C94E4 000C5404 48 00 00 24 */ b lbl_800C9508
lbl_800C94E8:
/* 800C94E8 000C5408 80 83 00 00 */ lwz r4, 0(r3)
/* 800C94EC 000C540C 28 04 00 00 */ cmplwi r4, 0
/* 800C94F0 000C5410 41 82 00 14 */ beq lbl_800C9504
/* 800C94F4 000C5414 80 84 02 D0 */ lwz r4, 0x2d0(r4)
/* 800C94F8 000C5418 7C 04 00 00 */ cmpw r4, r0
/* 800C94FC 000C541C 40 80 00 08 */ bge lbl_800C9504
/* 800C9500 000C5420 7C 80 23 78 */ mr r0, r4
lbl_800C9504:
/* 800C9504 000C5424 80 63 00 10 */ lwz r3, 0x10(r3)
lbl_800C9508:
/* 800C9508 000C5428 28 03 00 00 */ cmplwi r3, 0
/* 800C950C 000C542C 40 82 FF DC */ bne lbl_800C94E8
/* 800C9510 000C5430 90 1D 02 D0 */ stw r0, 0x2d0(r29)
/* 800C9514 000C5434 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 800C9518 000C5438 80 A4 00 00 */ lwz r5, 0(r4)
/* 800C951C 000C543C 48 00 00 08 */ b lbl_800C9524
lbl_800C9520:
/* 800C9520 000C5440 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
lbl_800C9524:
/* 800C9524 000C5444 28 05 00 00 */ cmplwi r5, 0
/* 800C9528 000C5448 41 82 00 14 */ beq lbl_800C953C
/* 800C952C 000C544C 80 65 02 D0 */ lwz r3, 0x2d0(r5)
/* 800C9530 000C5450 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 800C9534 000C5454 7C 03 00 00 */ cmpw r3, r0
/* 800C9538 000C5458 40 81 FF E8 */ ble lbl_800C9520
lbl_800C953C:
/* 800C953C 000C545C 28 05 00 00 */ cmplwi r5, 0
/* 800C9540 000C5460 40 82 00 34 */ bne lbl_800C9574
/* 800C9544 000C5464 80 64 00 04 */ lwz r3, 4(r4)
/* 800C9548 000C5468 28 03 00 00 */ cmplwi r3, 0
/* 800C954C 000C546C 40 82 00 0C */ bne lbl_800C9558
/* 800C9550 000C5470 93 A4 00 00 */ stw r29, 0(r4)
/* 800C9554 000C5474 48 00 00 08 */ b lbl_800C955C
lbl_800C9558:
/* 800C9558 000C5478 93 A3 02 E0 */ stw r29, 0x2e0(r3)
lbl_800C955C:
/* 800C955C 000C547C 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 800C9560 000C5480 38 00 00 00 */ li r0, 0
/* 800C9564 000C5484 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 800C9568 000C5488 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800C956C 000C548C 93 A3 00 04 */ stw r29, 4(r3)
/* 800C9570 000C5490 48 00 00 2C */ b lbl_800C959C
lbl_800C9574:
/* 800C9574 000C5494 90 BD 02 E0 */ stw r5, 0x2e0(r29)
/* 800C9578 000C5498 80 65 02 E4 */ lwz r3, 0x2e4(r5)
/* 800C957C 000C549C 93 A5 02 E4 */ stw r29, 0x2e4(r5)
/* 800C9580 000C54A0 28 03 00 00 */ cmplwi r3, 0
/* 800C9584 000C54A4 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 800C9588 000C54A8 40 82 00 10 */ bne lbl_800C9598
/* 800C958C 000C54AC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800C9590 000C54B0 93 A3 00 00 */ stw r29, 0(r3)
/* 800C9594 000C54B4 48 00 00 08 */ b lbl_800C959C
lbl_800C9598:
/* 800C9598 000C54B8 93 A3 02 E0 */ stw r29, 0x2e0(r3)
lbl_800C959C:
/* 800C959C 000C54BC 80 7D 02 F0 */ lwz r3, 0x2f0(r29)
/* 800C95A0 000C54C0 28 03 00 00 */ cmplwi r3, 0
/* 800C95A4 000C54C4 41 82 00 3C */ beq lbl_800C95E0
/* 800C95A8 000C54C8 83 A3 00 08 */ lwz r29, 8(r3)
lbl_800C95AC:
/* 800C95AC 000C54CC 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 800C95B0 000C54D0 2C 00 00 00 */ cmpwi r0, 0
/* 800C95B4 000C54D4 41 81 00 2C */ bgt lbl_800C95E0
/* 800C95B8 000C54D8 7F A3 EB 78 */ mr r3, r29
/* 800C95BC 000C54DC 4B FF F7 F1 */ bl __OSGetEffectivePriority
/* 800C95C0 000C54E0 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 800C95C4 000C54E4 38 83 00 00 */ addi r4, r3, 0
/* 800C95C8 000C54E8 7C 00 20 00 */ cmpw r0, r4
/* 800C95CC 000C54EC 41 82 00 14 */ beq lbl_800C95E0
/* 800C95D0 000C54F0 7F A3 EB 78 */ mr r3, r29
/* 800C95D4 000C54F4 4B FF F8 15 */ bl SetEffectivePriority
/* 800C95D8 000C54F8 7C 7D 1B 79 */ or. r29, r3, r3
/* 800C95DC 000C54FC 40 82 FF D0 */ bne lbl_800C95AC
lbl_800C95E0:
/* 800C95E0 000C5500 80 0D A1 6C */ lwz r0, RunQueueHint@sda21(r13)
/* 800C95E4 000C5504 2C 00 00 00 */ cmpwi r0, 0
/* 800C95E8 000C5508 41 82 00 0C */ beq lbl_800C95F4
/* 800C95EC 000C550C 38 60 00 00 */ li r3, 0
/* 800C95F0 000C5510 4B FF F9 B9 */ bl SelectThread
lbl_800C95F4:
/* 800C95F4 000C5514 7F E3 FB 78 */ mr r3, r31
/* 800C95F8 000C5518 4B FF CA ED */ bl OSRestoreInterrupts
/* 800C95FC 000C551C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 800C9600 000C5520 7F C3 F3 78 */ mr r3, r30
/* 800C9604 000C5524 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 800C9608 000C5528 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 800C960C 000C552C 7C 08 03 A6 */ mtlr r0
/* 800C9610 000C5530 83 A1 00 1C */ lwz r29, 0x1c(r1)
/* 800C9614 000C5534 38 21 00 28 */ addi r1, r1, 0x28
/* 800C9618 000C5538 4E 80 00 20 */ blr
.global OSSuspendThread
OSSuspendThread:
/* 800C961C 000C553C 7C 08 02 A6 */ mflr r0
/* 800C9620 000C5540 90 01 00 04 */ stw r0, 4(r1)
/* 800C9624 000C5544 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800C9628 000C5548 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 800C962C 000C554C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 800C9630 000C5550 93 A1 00 14 */ stw r29, 0x14(r1)
/* 800C9634 000C5554 7C 7D 1B 78 */ mr r29, r3
/* 800C9638 000C5558 4B FF CA 85 */ bl OSDisableInterrupts
/* 800C963C 000C555C 80 9D 02 CC */ lwz r4, 0x2cc(r29)
/* 800C9640 000C5560 3B E3 00 00 */ addi r31, r3, 0
/* 800C9644 000C5564 38 04 00 01 */ addi r0, r4, 1
/* 800C9648 000C5568 7C 9E 23 79 */ or. r30, r4, r4
/* 800C964C 000C556C 90 1D 02 CC */ stw r0, 0x2cc(r29)
/* 800C9650 000C5570 40 82 01 14 */ bne lbl_800C9764
/* 800C9654 000C5574 A0 1D 02 C8 */ lhz r0, 0x2c8(r29)
/* 800C9658 000C5578 2C 00 00 03 */ cmpwi r0, 3
/* 800C965C 000C557C 41 82 00 F4 */ beq lbl_800C9750
/* 800C9660 000C5580 40 80 00 14 */ bge lbl_800C9674
/* 800C9664 000C5584 2C 00 00 01 */ cmpwi r0, 1
/* 800C9668 000C5588 41 82 00 28 */ beq lbl_800C9690
/* 800C966C 000C558C 40 80 00 14 */ bge lbl_800C9680
/* 800C9670 000C5590 48 00 00 E0 */ b lbl_800C9750
lbl_800C9674:
/* 800C9674 000C5594 2C 00 00 05 */ cmpwi r0, 5
/* 800C9678 000C5598 40 80 00 D8 */ bge lbl_800C9750
/* 800C967C 000C559C 48 00 00 20 */ b lbl_800C969C
lbl_800C9680:
/* 800C9680 000C55A0 38 00 00 01 */ li r0, 1
/* 800C9684 000C55A4 90 0D A1 6C */ stw r0, RunQueueHint@sda21(r13)
/* 800C9688 000C55A8 B0 1D 02 C8 */ sth r0, 0x2c8(r29)
/* 800C968C 000C55AC 48 00 00 C4 */ b lbl_800C9750
lbl_800C9690:
/* 800C9690 000C55B0 7F A3 EB 78 */ mr r3, r29
/* 800C9694 000C55B4 4B FF F6 B1 */ bl UnsetRun
/* 800C9698 000C55B8 48 00 00 B8 */ b lbl_800C9750
lbl_800C969C:
/* 800C969C 000C55BC 80 9D 02 E0 */ lwz r4, 0x2e0(r29)
/* 800C96A0 000C55C0 80 BD 02 E4 */ lwz r5, 0x2e4(r29)
/* 800C96A4 000C55C4 28 04 00 00 */ cmplwi r4, 0
/* 800C96A8 000C55C8 40 82 00 10 */ bne lbl_800C96B8
/* 800C96AC 000C55CC 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800C96B0 000C55D0 90 A3 00 04 */ stw r5, 4(r3)
/* 800C96B4 000C55D4 48 00 00 08 */ b lbl_800C96BC
lbl_800C96B8:
/* 800C96B8 000C55D8 90 A4 02 E4 */ stw r5, 0x2e4(r4)
lbl_800C96BC:
/* 800C96BC 000C55DC 28 05 00 00 */ cmplwi r5, 0
/* 800C96C0 000C55E0 40 82 00 10 */ bne lbl_800C96D0
/* 800C96C4 000C55E4 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800C96C8 000C55E8 90 83 00 00 */ stw r4, 0(r3)
/* 800C96CC 000C55EC 48 00 00 08 */ b lbl_800C96D4
lbl_800C96D0:
/* 800C96D0 000C55F0 90 85 02 E0 */ stw r4, 0x2e0(r5)
lbl_800C96D4:
/* 800C96D4 000C55F4 38 00 00 20 */ li r0, 0x20
/* 800C96D8 000C55F8 90 1D 02 D0 */ stw r0, 0x2d0(r29)
/* 800C96DC 000C55FC 80 9D 02 DC */ lwz r4, 0x2dc(r29)
/* 800C96E0 000C5600 80 64 00 04 */ lwz r3, 4(r4)
/* 800C96E4 000C5604 28 03 00 00 */ cmplwi r3, 0
/* 800C96E8 000C5608 40 82 00 0C */ bne lbl_800C96F4
/* 800C96EC 000C560C 93 A4 00 00 */ stw r29, 0(r4)
/* 800C96F0 000C5610 48 00 00 08 */ b lbl_800C96F8
lbl_800C96F4:
/* 800C96F4 000C5614 93 A3 02 E0 */ stw r29, 0x2e0(r3)
lbl_800C96F8:
/* 800C96F8 000C5618 90 7D 02 E4 */ stw r3, 0x2e4(r29)
/* 800C96FC 000C561C 38 00 00 00 */ li r0, 0
/* 800C9700 000C5620 90 1D 02 E0 */ stw r0, 0x2e0(r29)
/* 800C9704 000C5624 80 7D 02 DC */ lwz r3, 0x2dc(r29)
/* 800C9708 000C5628 93 A3 00 04 */ stw r29, 4(r3)
/* 800C970C 000C562C 80 7D 02 F0 */ lwz r3, 0x2f0(r29)
/* 800C9710 000C5630 28 03 00 00 */ cmplwi r3, 0
/* 800C9714 000C5634 41 82 00 3C */ beq lbl_800C9750
/* 800C9718 000C5638 83 A3 00 08 */ lwz r29, 8(r3)
lbl_800C971C:
/* 800C971C 000C563C 80 1D 02 CC */ lwz r0, 0x2cc(r29)
/* 800C9720 000C5640 2C 00 00 00 */ cmpwi r0, 0
/* 800C9724 000C5644 41 81 00 2C */ bgt lbl_800C9750
/* 800C9728 000C5648 7F A3 EB 78 */ mr r3, r29
/* 800C972C 000C564C 4B FF F6 81 */ bl __OSGetEffectivePriority
/* 800C9730 000C5650 80 1D 02 D0 */ lwz r0, 0x2d0(r29)
/* 800C9734 000C5654 38 83 00 00 */ addi r4, r3, 0
/* 800C9738 000C5658 7C 00 20 00 */ cmpw r0, r4
/* 800C973C 000C565C 41 82 00 14 */ beq lbl_800C9750
/* 800C9740 000C5660 7F A3 EB 78 */ mr r3, r29
/* 800C9744 000C5664 4B FF F6 A5 */ bl SetEffectivePriority
/* 800C9748 000C5668 7C 7D 1B 79 */ or. r29, r3, r3
/* 800C974C 000C566C 40 82 FF D0 */ bne lbl_800C971C
lbl_800C9750:
/* 800C9750 000C5670 80 0D A1 6C */ lwz r0, RunQueueHint@sda21(r13)
/* 800C9754 000C5674 2C 00 00 00 */ cmpwi r0, 0
/* 800C9758 000C5678 41 82 00 0C */ beq lbl_800C9764
/* 800C975C 000C567C 38 60 00 00 */ li r3, 0
/* 800C9760 000C5680 4B FF F8 49 */ bl SelectThread
lbl_800C9764:
/* 800C9764 000C5684 7F E3 FB 78 */ mr r3, r31
/* 800C9768 000C5688 4B FF C9 7D */ bl OSRestoreInterrupts
/* 800C976C 000C568C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800C9770 000C5690 7F C3 F3 78 */ mr r3, r30
/* 800C9774 000C5694 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800C9778 000C5698 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800C977C 000C569C 7C 08 03 A6 */ mtlr r0
/* 800C9780 000C56A0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800C9784 000C56A4 38 21 00 20 */ addi r1, r1, 0x20
/* 800C9788 000C56A8 4E 80 00 20 */ blr
.global OSSleepThread
OSSleepThread:
/* 800C978C 000C56AC 7C 08 02 A6 */ mflr r0
/* 800C9790 000C56B0 90 01 00 04 */ stw r0, 4(r1)
/* 800C9794 000C56B4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800C9798 000C56B8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800C979C 000C56BC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800C97A0 000C56C0 7C 7E 1B 78 */ mr r30, r3
/* 800C97A4 000C56C4 4B FF C9 19 */ bl OSDisableInterrupts
/* 800C97A8 000C56C8 3C 80 80 00 */ lis r4, 0x800000E4@ha
/* 800C97AC 000C56CC 80 84 00 E4 */ lwz r4, 0x800000E4@l(r4)
/* 800C97B0 000C56D0 38 00 00 04 */ li r0, 4
/* 800C97B4 000C56D4 7C 7F 1B 78 */ mr r31, r3
/* 800C97B8 000C56D8 B0 04 02 C8 */ sth r0, 0x2c8(r4)
/* 800C97BC 000C56DC 93 C4 02 DC */ stw r30, 0x2dc(r4)
/* 800C97C0 000C56E0 80 BE 00 00 */ lwz r5, 0(r30)
/* 800C97C4 000C56E4 48 00 00 08 */ b lbl_800C97CC
lbl_800C97C8:
/* 800C97C8 000C56E8 80 A5 02 E0 */ lwz r5, 0x2e0(r5)
lbl_800C97CC:
/* 800C97CC 000C56EC 28 05 00 00 */ cmplwi r5, 0
/* 800C97D0 000C56F0 41 82 00 14 */ beq lbl_800C97E4
/* 800C97D4 000C56F4 80 65 02 D0 */ lwz r3, 0x2d0(r5)
/* 800C97D8 000C56F8 80 04 02 D0 */ lwz r0, 0x2d0(r4)
/* 800C97DC 000C56FC 7C 03 00 00 */ cmpw r3, r0
/* 800C97E0 000C5700 40 81 FF E8 */ ble lbl_800C97C8
lbl_800C97E4:
/* 800C97E4 000C5704 28 05 00 00 */ cmplwi r5, 0
/* 800C97E8 000C5708 40 82 00 30 */ bne lbl_800C9818
/* 800C97EC 000C570C 80 7E 00 04 */ lwz r3, 4(r30)
/* 800C97F0 000C5710 28 03 00 00 */ cmplwi r3, 0
/* 800C97F4 000C5714 40 82 00 0C */ bne lbl_800C9800
/* 800C97F8 000C5718 90 9E 00 00 */ stw r4, 0(r30)
/* 800C97FC 000C571C 48 00 00 08 */ b lbl_800C9804
lbl_800C9800:
/* 800C9800 000C5720 90 83 02 E0 */ stw r4, 0x2e0(r3)
lbl_800C9804:
/* 800C9804 000C5724 90 64 02 E4 */ stw r3, 0x2e4(r4)
/* 800C9808 000C5728 38 00 00 00 */ li r0, 0
/* 800C980C 000C572C 90 04 02 E0 */ stw r0, 0x2e0(r4)
/* 800C9810 000C5730 90 9E 00 04 */ stw r4, 4(r30)
/* 800C9814 000C5734 48 00 00 28 */ b lbl_800C983C
lbl_800C9818:
/* 800C9818 000C5738 90 A4 02 E0 */ stw r5, 0x2e0(r4)
/* 800C981C 000C573C 80 65 02 E4 */ lwz r3, 0x2e4(r5)
/* 800C9820 000C5740 90 85 02 E4 */ stw r4, 0x2e4(r5)
/* 800C9824 000C5744 28 03 00 00 */ cmplwi r3, 0
/* 800C9828 000C5748 90 64 02 E4 */ stw r3, 0x2e4(r4)
/* 800C982C 000C574C 40 82 00 0C */ bne lbl_800C9838
/* 800C9830 000C5750 90 9E 00 00 */ stw r4, 0(r30)
/* 800C9834 000C5754 48 00 00 08 */ b lbl_800C983C
lbl_800C9838:
/* 800C9838 000C5758 90 83 02 E0 */ stw r4, 0x2e0(r3)
lbl_800C983C:
/* 800C983C 000C575C 38 00 00 01 */ li r0, 1
/* 800C9840 000C5760 90 0D A1 6C */ stw r0, RunQueueHint@sda21(r13)
/* 800C9844 000C5764 80 0D A1 6C */ lwz r0, RunQueueHint@sda21(r13)
/* 800C9848 000C5768 2C 00 00 00 */ cmpwi r0, 0
/* 800C984C 000C576C 41 82 00 0C */ beq lbl_800C9858
/* 800C9850 000C5770 38 60 00 00 */ li r3, 0
/* 800C9854 000C5774 4B FF F7 55 */ bl SelectThread
lbl_800C9858:
/* 800C9858 000C5778 7F E3 FB 78 */ mr r3, r31
/* 800C985C 000C577C 4B FF C8 89 */ bl OSRestoreInterrupts
/* 800C9860 000C5780 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800C9864 000C5784 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800C9868 000C5788 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800C986C 000C578C 7C 08 03 A6 */ mtlr r0
/* 800C9870 000C5790 38 21 00 18 */ addi r1, r1, 0x18
/* 800C9874 000C5794 4E 80 00 20 */ blr
.global OSWakeupThread
OSWakeupThread:
/* 800C9878 000C5798 7C 08 02 A6 */ mflr r0
/* 800C987C 000C579C 90 01 00 04 */ stw r0, 4(r1)
/* 800C9880 000C57A0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800C9884 000C57A4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800C9888 000C57A8 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800C988C 000C57AC 7C 7E 1B 78 */ mr r30, r3
/* 800C9890 000C57B0 4B FF C8 2D */ bl OSDisableInterrupts
/* 800C9894 000C57B4 3C 80 80 2C */ lis r4, lbl_802C6E78@ha
/* 800C9898 000C57B8 3B E3 00 00 */ addi r31, r3, 0
/* 800C989C 000C57BC 38 A4 6E 78 */ addi r5, r4, lbl_802C6E78@l
/* 800C98A0 000C57C0 48 00 00 9C */ b lbl_800C993C
lbl_800C98A4:
/* 800C98A4 000C57C4 80 66 02 E0 */ lwz r3, 0x2e0(r6)
/* 800C98A8 000C57C8 28 03 00 00 */ cmplwi r3, 0
/* 800C98AC 000C57CC 40 82 00 10 */ bne lbl_800C98BC
/* 800C98B0 000C57D0 38 00 00 00 */ li r0, 0
/* 800C98B4 000C57D4 90 1E 00 04 */ stw r0, 4(r30)
/* 800C98B8 000C57D8 48 00 00 0C */ b lbl_800C98C4
lbl_800C98BC:
/* 800C98BC 000C57DC 38 00 00 00 */ li r0, 0
/* 800C98C0 000C57E0 90 03 02 E4 */ stw r0, 0x2e4(r3)
lbl_800C98C4:
/* 800C98C4 000C57E4 90 7E 00 00 */ stw r3, 0(r30)
/* 800C98C8 000C57E8 38 00 00 01 */ li r0, 1
/* 800C98CC 000C57EC B0 06 02 C8 */ sth r0, 0x2c8(r6)
/* 800C98D0 000C57F0 80 06 02 CC */ lwz r0, 0x2cc(r6)
/* 800C98D4 000C57F4 2C 00 00 00 */ cmpwi r0, 0
/* 800C98D8 000C57F8 41 81 00 64 */ bgt lbl_800C993C
/* 800C98DC 000C57FC 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 800C98E0 000C5800 54 00 18 38 */ slwi r0, r0, 3
/* 800C98E4 000C5804 7C 05 02 14 */ add r0, r5, r0
/* 800C98E8 000C5808 90 06 02 DC */ stw r0, 0x2dc(r6)
/* 800C98EC 000C580C 80 86 02 DC */ lwz r4, 0x2dc(r6)
/* 800C98F0 000C5810 80 64 00 04 */ lwz r3, 4(r4)
/* 800C98F4 000C5814 28 03 00 00 */ cmplwi r3, 0
/* 800C98F8 000C5818 40 82 00 0C */ bne lbl_800C9904
/* 800C98FC 000C581C 90 C4 00 00 */ stw r6, 0(r4)
/* 800C9900 000C5820 48 00 00 08 */ b lbl_800C9908
lbl_800C9904:
/* 800C9904 000C5824 90 C3 02 E0 */ stw r6, 0x2e0(r3)
lbl_800C9908:
/* 800C9908 000C5828 90 66 02 E4 */ stw r3, 0x2e4(r6)
/* 800C990C 000C582C 38 00 00 00 */ li r0, 0
/* 800C9910 000C5830 38 60 00 01 */ li r3, 1
/* 800C9914 000C5834 90 06 02 E0 */ stw r0, 0x2e0(r6)
/* 800C9918 000C5838 80 86 02 DC */ lwz r4, 0x2dc(r6)
/* 800C991C 000C583C 90 C4 00 04 */ stw r6, 4(r4)
/* 800C9920 000C5840 80 06 02 D0 */ lwz r0, 0x2d0(r6)
/* 800C9924 000C5844 80 8D A1 68 */ lwz r4, RunQueueBits@sda21(r13)
/* 800C9928 000C5848 20 00 00 1F */ subfic r0, r0, 0x1f
/* 800C992C 000C584C 7C 60 00 30 */ slw r0, r3, r0
/* 800C9930 000C5850 7C 80 03 78 */ or r0, r4, r0
/* 800C9934 000C5854 90 0D A1 68 */ stw r0, RunQueueBits@sda21(r13)
/* 800C9938 000C5858 90 6D A1 6C */ stw r3, RunQueueHint@sda21(r13)
lbl_800C993C:
/* 800C993C 000C585C 80 DE 00 00 */ lwz r6, 0(r30)
/* 800C9940 000C5860 28 06 00 00 */ cmplwi r6, 0
/* 800C9944 000C5864 40 82 FF 60 */ bne lbl_800C98A4
/* 800C9948 000C5868 80 0D A1 6C */ lwz r0, RunQueueHint@sda21(r13)
/* 800C994C 000C586C 2C 00 00 00 */ cmpwi r0, 0
/* 800C9950 000C5870 41 82 00 0C */ beq lbl_800C995C
/* 800C9954 000C5874 38 60 00 00 */ li r3, 0
/* 800C9958 000C5878 4B FF F6 51 */ bl SelectThread
lbl_800C995C:
/* 800C995C 000C587C 7F E3 FB 78 */ mr r3, r31
/* 800C9960 000C5880 4B FF C7 85 */ bl OSRestoreInterrupts
/* 800C9964 000C5884 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800C9968 000C5888 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800C996C 000C588C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800C9970 000C5890 7C 08 03 A6 */ mtlr r0
/* 800C9974 000C5894 38 21 00 18 */ addi r1, r1, 0x18
/* 800C9978 000C5898 4E 80 00 20 */ blr
.section .sbss
.global RunQueueBits
RunQueueBits:
.skip 0x4
.global RunQueueHint
RunQueueHint:
.skip 0x4
.global Reschedule
Reschedule:
.skip 0x8
.section .bss
.global lbl_802C6E78
lbl_802C6E78:
.skip 0x9E8