.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 lbl_80224104: /* 80224104 0021FD64 80 6D A3 40 */ lwz r3, lbl_8063F600-_SDA_BASE_(r13) /* 80224108 0021FD68 48 00 02 34 */ b lbl_8022433C .global func_8022410C func_8022410C: /* 8022410C 0021FD6C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80224110 0021FD70 7C 08 02 A6 */ mflr r0 /* 80224114 0021FD74 90 01 00 14 */ stw r0, 0x14(r1) /* 80224118 0021FD78 93 E1 00 0C */ stw r31, 0xc(r1) /* 8022411C 0021FD7C 7C 7F 1B 78 */ mr r31, r3 /* 80224120 0021FD80 38 60 00 1C */ li r3, 0x1c /* 80224124 0021FD84 4B FB 69 0D */ bl __nw__FUl /* 80224128 0021FD88 2C 03 00 00 */ cmpwi r3, 0 /* 8022412C 0021FD8C 41 82 00 0C */ beq lbl_80224138 /* 80224130 0021FD90 7F E4 FB 78 */ mr r4, r31 /* 80224134 0021FD94 48 00 00 41 */ bl func_80224174 lbl_80224138: /* 80224138 0021FD98 3C C0 80 22 */ lis r6, lbl_80224104@ha /* 8022413C 0021FD9C 90 6D A3 40 */ stw r3, lbl_8063F600-_SDA_BASE_(r13) /* 80224140 0021FDA0 38 C6 41 04 */ addi r6, r6, lbl_80224104@l /* 80224144 0021FDA4 38 60 00 01 */ li r3, 1 /* 80224148 0021FDA8 38 80 00 00 */ li r4, 0 /* 8022414C 0021FDAC 38 A0 00 00 */ li r5, 0 /* 80224150 0021FDB0 4B FF FE 81 */ bl func_80223FD0 /* 80224154 0021FDB4 3C 80 80 42 */ lis r4, lbl_80423C10@ha /* 80224158 0021FDB8 38 84 3C 10 */ addi r4, r4, lbl_80423C10@l /* 8022415C 0021FDBC 4B FF FF 31 */ bl func_8022408C /* 80224160 0021FDC0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80224164 0021FDC4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80224168 0021FDC8 7C 08 03 A6 */ mtlr r0 /* 8022416C 0021FDCC 38 21 00 10 */ addi r1, r1, 0x10 /* 80224170 0021FDD0 4E 80 00 20 */ blr .global func_80224174 func_80224174: /* 80224174 0021FDD4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80224178 0021FDD8 7C 08 02 A6 */ mflr r0 /* 8022417C 0021FDDC 90 01 00 14 */ stw r0, 0x14(r1) /* 80224180 0021FDE0 38 00 00 00 */ li r0, 0 /* 80224184 0021FDE4 93 E1 00 0C */ stw r31, 0xc(r1) /* 80224188 0021FDE8 7C 9F 23 78 */ mr r31, r4 /* 8022418C 0021FDEC 93 C1 00 08 */ stw r30, 8(r1) /* 80224190 0021FDF0 7C 7E 1B 78 */ mr r30, r3 /* 80224194 0021FDF4 90 83 00 00 */ stw r4, 0(r3) /* 80224198 0021FDF8 90 03 00 14 */ stw r0, 0x14(r3) /* 8022419C 0021FDFC 48 04 D1 5D */ bl OSGetCurrentThread /* 802241A0 0021FE00 48 04 E4 A1 */ bl OSGetThreadPriority /* 802241A4 0021FE04 90 7E 00 08 */ stw r3, 8(r30) /* 802241A8 0021FE08 1C 7F 03 70 */ mulli r3, r31, 0x370 /* 802241AC 0021FE0C 4B FB 6B ED */ bl func_801DAD98 /* 802241B0 0021FE10 90 7E 00 04 */ stw r3, 4(r30) /* 802241B4 0021FE14 48 04 D1 45 */ bl OSGetCurrentThread /* 802241B8 0021FE18 90 7E 00 18 */ stw r3, 0x18(r30) /* 802241BC 0021FE1C 38 7E 00 0C */ addi r3, r30, 0xc /* 802241C0 0021FE20 48 04 D1 29 */ bl OSInitThreadQueue /* 802241C4 0021FE24 7F C3 F3 78 */ mr r3, r30 /* 802241C8 0021FE28 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802241CC 0021FE2C 83 C1 00 08 */ lwz r30, 8(r1) /* 802241D0 0021FE30 80 01 00 14 */ lwz r0, 0x14(r1) /* 802241D4 0021FE34 7C 08 03 A6 */ mtlr r0 /* 802241D8 0021FE38 38 21 00 10 */ addi r1, r1, 0x10 /* 802241DC 0021FE3C 4E 80 00 20 */ blr .global func_802241E0 func_802241E0: /* 802241E0 0021FE40 80 03 00 00 */ lwz r0, 0(r3) /* 802241E4 0021FE44 80 63 00 04 */ lwz r3, 4(r3) /* 802241E8 0021FE48 1C 00 03 70 */ mulli r0, r0, 0x370 /* 802241EC 0021FE4C 7C 83 02 14 */ add r4, r3, r0 /* 802241F0 0021FE50 48 00 00 14 */ b lbl_80224204 lbl_802241F4: /* 802241F4 0021FE54 80 03 03 1C */ lwz r0, 0x31c(r3) /* 802241F8 0021FE58 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 802241FC 0021FE5C 4D 82 00 20 */ beqlr /* 80224200 0021FE60 38 63 03 70 */ addi r3, r3, 0x370 lbl_80224204: /* 80224204 0021FE64 7C 03 20 40 */ cmplw r3, r4 /* 80224208 0021FE68 40 82 FF EC */ bne lbl_802241F4 /* 8022420C 0021FE6C 38 60 00 00 */ li r3, 0 /* 80224210 0021FE70 4E 80 00 20 */ blr .global func_80224214 func_80224214: /* 80224214 0021FE74 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80224218 0021FE78 7C 08 02 A6 */ mflr r0 /* 8022421C 0021FE7C 90 01 00 34 */ stw r0, 0x34(r1) /* 80224220 0021FE80 39 61 00 30 */ addi r11, r1, 0x30 /* 80224224 0021FE84 4B FA 2E F5 */ bl _savegpr_23 /* 80224228 0021FE88 7C 77 1B 78 */ mr r23, r3 /* 8022422C 0021FE8C 7C 98 23 78 */ mr r24, r4 /* 80224230 0021FE90 7C B9 2B 78 */ mr r25, r5 /* 80224234 0021FE94 7C DA 33 78 */ mr r26, r6 /* 80224238 0021FE98 7C FB 3B 78 */ mr r27, r7 /* 8022423C 0021FE9C 7D 1C 43 78 */ mr r28, r8 /* 80224240 0021FEA0 7D 3D 4B 78 */ mr r29, r9 /* 80224244 0021FEA4 4B FF FF 9D */ bl func_802241E0 /* 80224248 0021FEA8 2C 03 00 00 */ cmpwi r3, 0 /* 8022424C 0021FEAC 7C 7E 1B 78 */ mr r30, r3 /* 80224250 0021FEB0 40 82 00 0C */ bne lbl_8022425C /* 80224254 0021FEB4 38 60 00 00 */ li r3, 0 /* 80224258 0021FEB8 48 00 00 CC */ b lbl_80224324 lbl_8022425C: /* 8022425C 0021FEBC 80 17 00 08 */ lwz r0, 8(r23) /* 80224260 0021FEC0 7C 7C 02 14 */ add r3, r28, r0 /* 80224264 0021FEC4 3B 83 00 01 */ addi r28, r3, 1 /* 80224268 0021FEC8 2C 1C 00 1E */ cmpwi r28, 0x1e /* 8022426C 0021FECC 41 80 00 08 */ blt lbl_80224274 /* 80224270 0021FED0 3B 80 00 1D */ li r28, 0x1d lbl_80224274: /* 80224274 0021FED4 7F 63 DB 78 */ mr r3, r27 /* 80224278 0021FED8 4B FB 6A ED */ bl func_801DAD64 /* 8022427C 0021FEDC 2C 03 00 00 */ cmpwi r3, 0 /* 80224280 0021FEE0 7C 7F 1B 78 */ mr r31, r3 /* 80224284 0021FEE4 40 82 00 0C */ bne lbl_80224290 /* 80224288 0021FEE8 38 60 00 00 */ li r3, 0 /* 8022428C 0021FEEC 48 00 00 98 */ b lbl_80224324 lbl_80224290: /* 80224290 0021FEF0 2C 1E 00 00 */ cmpwi r30, 0 /* 80224294 0021FEF4 41 82 00 0C */ beq lbl_802242A0 /* 80224298 0021FEF8 7F C3 F3 78 */ mr r3, r30 /* 8022429C 0021FEFC 48 00 03 95 */ bl func_80224630 lbl_802242A0: /* 802242A0 0021FF00 2C 1A 00 00 */ cmpwi r26, 0 /* 802242A4 0021FF04 40 82 00 08 */ bne lbl_802242AC /* 802242A8 0021FF08 7F DA F3 78 */ mr r26, r30 lbl_802242AC: /* 802242AC 0021FF0C 7F C3 F3 78 */ mr r3, r30 /* 802242B0 0021FF10 7F 24 CB 78 */ mr r4, r25 /* 802242B4 0021FF14 7F 45 D3 78 */ mr r5, r26 /* 802242B8 0021FF18 7F 67 DB 78 */ mr r7, r27 /* 802242BC 0021FF1C 7F 88 E3 78 */ mr r8, r28 /* 802242C0 0021FF20 7F A9 EB 78 */ mr r9, r29 /* 802242C4 0021FF24 7C DF DA 14 */ add r6, r31, r27 /* 802242C8 0021FF28 48 04 D6 19 */ bl OSCreateThread /* 802242CC 0021FF2C 2C 03 00 00 */ cmpwi r3, 0 /* 802242D0 0021FF30 40 82 00 0C */ bne lbl_802242DC /* 802242D4 0021FF34 38 60 00 00 */ li r3, 0 /* 802242D8 0021FF38 48 00 00 4C */ b lbl_80224324 lbl_802242DC: /* 802242DC 0021FF3C 38 60 00 01 */ li r3, 1 /* 802242E0 0021FF40 38 00 00 00 */ li r0, 0 /* 802242E4 0021FF44 90 7E 03 1C */ stw r3, 0x31c(r30) /* 802242E8 0021FF48 93 FE 03 18 */ stw r31, 0x318(r30) /* 802242EC 0021FF4C 93 1E 03 20 */ stw r24, 0x320(r30) /* 802242F0 0021FF50 90 1E 03 68 */ stw r0, 0x368(r30) /* 802242F4 0021FF54 80 77 00 14 */ lwz r3, 0x14(r23) /* 802242F8 0021FF58 2C 03 00 00 */ cmpwi r3, 0 /* 802242FC 0021FF5C 40 82 00 14 */ bne lbl_80224310 /* 80224300 0021FF60 93 D7 00 14 */ stw r30, 0x14(r23) /* 80224304 0021FF64 48 00 00 1C */ b lbl_80224320 /* 80224308 0021FF68 48 00 00 08 */ b lbl_80224310 lbl_8022430C: /* 8022430C 0021FF6C 7C 03 03 78 */ mr r3, r0 lbl_80224310: /* 80224310 0021FF70 80 03 03 68 */ lwz r0, 0x368(r3) /* 80224314 0021FF74 2C 00 00 00 */ cmpwi r0, 0 /* 80224318 0021FF78 40 82 FF F4 */ bne lbl_8022430C /* 8022431C 0021FF7C 93 C3 03 68 */ stw r30, 0x368(r3) lbl_80224320: /* 80224320 0021FF80 7F C3 F3 78 */ mr r3, r30 lbl_80224324: /* 80224324 0021FF84 39 61 00 30 */ addi r11, r1, 0x30 /* 80224328 0021FF88 4B FA 2E 3D */ bl _restgpr_23 /* 8022432C 0021FF8C 80 01 00 34 */ lwz r0, 0x34(r1) /* 80224330 0021FF90 7C 08 03 A6 */ mtlr r0 /* 80224334 0021FF94 38 21 00 30 */ addi r1, r1, 0x30 /* 80224338 0021FF98 4E 80 00 20 */ blr lbl_8022433C: /* 8022433C 0021FF9C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80224340 0021FFA0 7C 08 02 A6 */ mflr r0 /* 80224344 0021FFA4 90 01 00 14 */ stw r0, 0x14(r1) /* 80224348 0021FFA8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8022434C 0021FFAC 93 C1 00 08 */ stw r30, 8(r1) /* 80224350 0021FFB0 7C 7E 1B 78 */ mr r30, r3 /* 80224354 0021FFB4 83 E3 00 04 */ lwz r31, 4(r3) /* 80224358 0021FFB8 48 00 00 24 */ b lbl_8022437C lbl_8022435C: /* 8022435C 0021FFBC 7F E3 FB 78 */ mr r3, r31 /* 80224360 0021FFC0 48 00 03 E1 */ bl func_80224740 /* 80224364 0021FFC4 80 1F 03 1C */ lwz r0, 0x31c(r31) /* 80224368 0021FFC8 7C 00 18 39 */ and. r0, r0, r3 /* 8022436C 0021FFCC 41 82 00 0C */ beq lbl_80224378 /* 80224370 0021FFD0 7F E3 FB 78 */ mr r3, r31 /* 80224374 0021FFD4 48 00 02 D1 */ bl func_80224644 lbl_80224378: /* 80224378 0021FFD8 3B FF 03 70 */ addi r31, r31, 0x370 lbl_8022437C: /* 8022437C 0021FFDC 80 1E 00 00 */ lwz r0, 0(r30) /* 80224380 0021FFE0 80 7E 00 04 */ lwz r3, 4(r30) /* 80224384 0021FFE4 1C 00 03 70 */ mulli r0, r0, 0x370 /* 80224388 0021FFE8 7C 03 02 14 */ add r0, r3, r0 /* 8022438C 0021FFEC 7C 1F 00 40 */ cmplw r31, r0 /* 80224390 0021FFF0 40 82 FF CC */ bne lbl_8022435C /* 80224394 0021FFF4 38 7E 00 0C */ addi r3, r30, 0xc /* 80224398 0021FFF8 48 04 E0 C9 */ bl OSWakeupThread /* 8022439C 0021FFFC 48 04 CF 5D */ bl OSGetCurrentThread /* 802243A0 00220000 38 80 00 1E */ li r4, 0x1e /* 802243A4 00220004 48 04 E1 B1 */ bl OSSetThreadPriority /* 802243A8 00220008 83 FE 00 14 */ lwz r31, 0x14(r30) /* 802243AC 0022000C 48 00 00 20 */ b lbl_802243CC lbl_802243B0: /* 802243B0 00220010 7F E3 FB 78 */ mr r3, r31 /* 802243B4 00220014 48 04 CF 51 */ bl OSIsThreadSuspended /* 802243B8 00220018 2C 03 00 00 */ cmpwi r3, 0 /* 802243BC 0022001C 41 82 00 0C */ beq lbl_802243C8 /* 802243C0 00220020 7F E3 FB 78 */ mr r3, r31 /* 802243C4 00220024 48 04 DB 85 */ bl OSResumeThread lbl_802243C8: /* 802243C8 00220028 83 FF 03 68 */ lwz r31, 0x368(r31) lbl_802243CC: /* 802243CC 0022002C 2C 1F 00 00 */ cmpwi r31, 0 /* 802243D0 00220030 40 82 FF E0 */ bne lbl_802243B0 /* 802243D4 00220034 38 00 00 00 */ li r0, 0 /* 802243D8 00220038 90 1E 00 14 */ stw r0, 0x14(r30) /* 802243DC 0022003C 48 04 CF 1D */ bl OSGetCurrentThread /* 802243E0 00220040 80 9E 00 08 */ lwz r4, 8(r30) /* 802243E4 00220044 48 04 E1 71 */ bl OSSetThreadPriority /* 802243E8 00220048 80 01 00 14 */ lwz r0, 0x14(r1) /* 802243EC 0022004C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802243F0 00220050 83 C1 00 08 */ lwz r30, 8(r1) /* 802243F4 00220054 7C 08 03 A6 */ mtlr r0 /* 802243F8 00220058 38 21 00 10 */ addi r1, r1, 0x10 /* 802243FC 0022005C 4E 80 00 20 */ blr .global func_80224400 func_80224400: /* 80224400 00220060 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80224404 00220064 7C 08 02 A6 */ mflr r0 /* 80224408 00220068 90 01 00 24 */ stw r0, 0x24(r1) /* 8022440C 0022006C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80224410 00220070 93 C1 00 18 */ stw r30, 0x18(r1) /* 80224414 00220074 7C 9E 23 78 */ mr r30, r4 /* 80224418 00220078 93 A1 00 14 */ stw r29, 0x14(r1) /* 8022441C 0022007C 7C 7D 1B 78 */ mr r29, r3 /* 80224420 00220080 83 E3 00 04 */ lwz r31, 4(r3) /* 80224424 00220084 48 00 00 28 */ b lbl_8022444C lbl_80224428: /* 80224428 00220088 80 1F 03 1C */ lwz r0, 0x31c(r31) /* 8022442C 0022008C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80224430 00220090 41 82 00 18 */ beq lbl_80224448 /* 80224434 00220094 80 1F 03 20 */ lwz r0, 0x320(r31) /* 80224438 00220098 7C 1E 00 40 */ cmplw r30, r0 /* 8022443C 0022009C 40 82 00 0C */ bne lbl_80224448 /* 80224440 002200A0 7F E3 FB 78 */ mr r3, r31 /* 80224444 002200A4 48 00 02 E9 */ bl func_8022472C lbl_80224448: /* 80224448 002200A8 3B FF 03 70 */ addi r31, r31, 0x370 lbl_8022444C: /* 8022444C 002200AC 80 1D 00 00 */ lwz r0, 0(r29) /* 80224450 002200B0 80 7D 00 04 */ lwz r3, 4(r29) /* 80224454 002200B4 1C 00 03 70 */ mulli r0, r0, 0x370 /* 80224458 002200B8 7C 03 02 14 */ add r0, r3, r0 /* 8022445C 002200BC 7C 1F 00 40 */ cmplw r31, r0 /* 80224460 002200C0 40 82 FF C8 */ bne lbl_80224428 /* 80224464 002200C4 80 01 00 24 */ lwz r0, 0x24(r1) /* 80224468 002200C8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8022446C 002200CC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80224470 002200D0 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80224474 002200D4 7C 08 03 A6 */ mtlr r0 /* 80224478 002200D8 38 21 00 20 */ addi r1, r1, 0x20 /* 8022447C 002200DC 4E 80 00 20 */ blr .global func_80224480 func_80224480: /* 80224480 002200E0 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80224484 002200E4 7C 08 02 A6 */ mflr r0 /* 80224488 002200E8 90 01 00 24 */ stw r0, 0x24(r1) /* 8022448C 002200EC 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80224490 002200F0 93 C1 00 18 */ stw r30, 0x18(r1) /* 80224494 002200F4 7C 9E 23 78 */ mr r30, r4 /* 80224498 002200F8 93 A1 00 14 */ stw r29, 0x14(r1) /* 8022449C 002200FC 7C 7D 1B 78 */ mr r29, r3 /* 802244A0 00220100 83 E3 00 04 */ lwz r31, 4(r3) /* 802244A4 00220104 48 00 00 28 */ b lbl_802244CC lbl_802244A8: /* 802244A8 00220108 80 1F 03 1C */ lwz r0, 0x31c(r31) /* 802244AC 0022010C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 802244B0 00220110 41 82 00 18 */ beq lbl_802244C8 /* 802244B4 00220114 80 1F 03 20 */ lwz r0, 0x320(r31) /* 802244B8 00220118 7C 1E 00 40 */ cmplw r30, r0 /* 802244BC 0022011C 40 82 00 0C */ bne lbl_802244C8 /* 802244C0 00220120 7F E3 FB 78 */ mr r3, r31 /* 802244C4 00220124 48 00 01 D5 */ bl func_80224698 lbl_802244C8: /* 802244C8 00220128 3B FF 03 70 */ addi r31, r31, 0x370 lbl_802244CC: /* 802244CC 0022012C 80 1D 00 00 */ lwz r0, 0(r29) /* 802244D0 00220130 80 7D 00 04 */ lwz r3, 4(r29) /* 802244D4 00220134 1C 00 03 70 */ mulli r0, r0, 0x370 /* 802244D8 00220138 7C 03 02 14 */ add r0, r3, r0 /* 802244DC 0022013C 7C 1F 00 40 */ cmplw r31, r0 /* 802244E0 00220140 40 82 FF C8 */ bne lbl_802244A8 /* 802244E4 00220144 80 01 00 24 */ lwz r0, 0x24(r1) /* 802244E8 00220148 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802244EC 0022014C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802244F0 00220150 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802244F4 00220154 7C 08 03 A6 */ mtlr r0 /* 802244F8 00220158 38 21 00 20 */ addi r1, r1, 0x20 /* 802244FC 0022015C 4E 80 00 20 */ blr .global func_80224500 func_80224500: /* 80224500 00220160 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80224504 00220164 7C 08 02 A6 */ mflr r0 /* 80224508 00220168 90 01 00 24 */ stw r0, 0x24(r1) /* 8022450C 0022016C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80224510 00220170 93 C1 00 18 */ stw r30, 0x18(r1) /* 80224514 00220174 7C 9E 23 78 */ mr r30, r4 /* 80224518 00220178 93 A1 00 14 */ stw r29, 0x14(r1) /* 8022451C 0022017C 7C 7D 1B 78 */ mr r29, r3 /* 80224520 00220180 83 E3 00 04 */ lwz r31, 4(r3) /* 80224524 00220184 48 00 00 2C */ b lbl_80224550 lbl_80224528: /* 80224528 00220188 80 1F 03 1C */ lwz r0, 0x31c(r31) /* 8022452C 0022018C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80224530 00220190 41 82 00 1C */ beq lbl_8022454C /* 80224534 00220194 80 1F 03 20 */ lwz r0, 0x320(r31) /* 80224538 00220198 7C 1E 00 40 */ cmplw r30, r0 /* 8022453C 0022019C 40 82 00 10 */ bne lbl_8022454C /* 80224540 002201A0 7F E3 FB 78 */ mr r3, r31 /* 80224544 002201A4 38 80 00 00 */ li r4, 0 /* 80224548 002201A8 48 00 01 65 */ bl func_802246AC lbl_8022454C: /* 8022454C 002201AC 3B FF 03 70 */ addi r31, r31, 0x370 lbl_80224550: /* 80224550 002201B0 80 1D 00 00 */ lwz r0, 0(r29) /* 80224554 002201B4 80 7D 00 04 */ lwz r3, 4(r29) /* 80224558 002201B8 1C 00 03 70 */ mulli r0, r0, 0x370 /* 8022455C 002201BC 7C 03 02 14 */ add r0, r3, r0 /* 80224560 002201C0 7C 1F 00 40 */ cmplw r31, r0 /* 80224564 002201C4 40 82 FF C4 */ bne lbl_80224528 /* 80224568 002201C8 80 01 00 24 */ lwz r0, 0x24(r1) /* 8022456C 002201CC 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80224570 002201D0 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80224574 002201D4 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80224578 002201D8 7C 08 03 A6 */ mtlr r0 /* 8022457C 002201DC 38 21 00 20 */ addi r1, r1, 0x20 /* 80224580 002201E0 4E 80 00 20 */ blr .global func_80224584 func_80224584: /* 80224584 002201E4 4E 80 00 20 */ blr .global func_80224588 func_80224588: /* 80224588 002201E8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8022458C 002201EC 7C 08 02 A6 */ mflr r0 /* 80224590 002201F0 90 01 00 14 */ stw r0, 0x14(r1) /* 80224594 002201F4 93 E1 00 0C */ stw r31, 0xc(r1) /* 80224598 002201F8 7C 7F 1B 78 */ mr r31, r3 /* 8022459C 002201FC 48 00 00 29 */ bl func_802245C4 /* 802245A0 00220200 2C 03 00 00 */ cmpwi r3, 0 /* 802245A4 00220204 41 82 00 0C */ beq lbl_802245B0 /* 802245A8 00220208 38 7F 00 0C */ addi r3, r31, 0xc /* 802245AC 0022020C 48 04 DD C9 */ bl OSSleepThread lbl_802245B0: /* 802245B0 00220210 80 01 00 14 */ lwz r0, 0x14(r1) /* 802245B4 00220214 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802245B8 00220218 7C 08 03 A6 */ mtlr r0 /* 802245BC 0022021C 38 21 00 10 */ addi r1, r1, 0x10 /* 802245C0 00220220 4E 80 00 20 */ blr .global func_802245C4 func_802245C4: /* 802245C4 00220224 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802245C8 00220228 7C 08 02 A6 */ mflr r0 /* 802245CC 0022022C 90 01 00 14 */ stw r0, 0x14(r1) /* 802245D0 00220230 93 E1 00 0C */ stw r31, 0xc(r1) /* 802245D4 00220234 7C 7F 1B 78 */ mr r31, r3 /* 802245D8 00220238 48 04 CD 21 */ bl OSGetCurrentThread /* 802245DC 0022023C 80 1F 00 00 */ lwz r0, 0(r31) /* 802245E0 00220240 80 BF 00 04 */ lwz r5, 4(r31) /* 802245E4 00220244 1C 00 03 70 */ mulli r0, r0, 0x370 /* 802245E8 00220248 7C 85 02 14 */ add r4, r5, r0 /* 802245EC 0022024C 48 00 00 24 */ b lbl_80224610 lbl_802245F0: /* 802245F0 00220250 80 05 03 1C */ lwz r0, 0x31c(r5) /* 802245F4 00220254 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 802245F8 00220258 41 82 00 14 */ beq lbl_8022460C /* 802245FC 0022025C 7C 03 28 40 */ cmplw r3, r5 /* 80224600 00220260 40 82 00 0C */ bne lbl_8022460C /* 80224604 00220264 38 60 00 01 */ li r3, 1 /* 80224608 00220268 48 00 00 14 */ b lbl_8022461C lbl_8022460C: /* 8022460C 0022026C 38 A5 03 70 */ addi r5, r5, 0x370 lbl_80224610: /* 80224610 00220270 7C 05 20 40 */ cmplw r5, r4 /* 80224614 00220274 40 82 FF DC */ bne lbl_802245F0 /* 80224618 00220278 38 60 00 00 */ li r3, 0 lbl_8022461C: /* 8022461C 0022027C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80224620 00220280 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80224624 00220284 7C 08 03 A6 */ mtlr r0 /* 80224628 00220288 38 21 00 10 */ addi r1, r1, 0x10 /* 8022462C 0022028C 4E 80 00 20 */ blr .global func_80224630 func_80224630: /* 80224630 00220290 38 00 00 00 */ li r0, 0 /* 80224634 00220294 90 03 03 1C */ stw r0, 0x31c(r3) /* 80224638 00220298 4E 80 00 20 */ blr .global func_8022463C func_8022463C: /* 8022463C 0022029C 80 6D A3 40 */ lwz r3, lbl_8063F600-_SDA_BASE_(r13) /* 80224640 002202A0 4B FF FF 48 */ b func_80224588 .global func_80224644 func_80224644: /* 80224644 002202A4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80224648 002202A8 7C 08 02 A6 */ mflr r0 /* 8022464C 002202AC 90 01 00 14 */ stw r0, 0x14(r1) /* 80224650 002202B0 93 E1 00 0C */ stw r31, 0xc(r1) /* 80224654 002202B4 7C 7F 1B 78 */ mr r31, r3 /* 80224658 002202B8 80 03 03 18 */ lwz r0, 0x318(r3) /* 8022465C 002202BC 2C 00 00 00 */ cmpwi r0, 0 /* 80224660 002202C0 41 82 00 14 */ beq lbl_80224674 /* 80224664 002202C4 7C 03 03 78 */ mr r3, r0 /* 80224668 002202C8 4B FB 68 3D */ bl func_801DAEA4 /* 8022466C 002202CC 38 00 00 00 */ li r0, 0 /* 80224670 002202D0 90 1F 03 18 */ stw r0, 0x318(r31) lbl_80224674: /* 80224674 002202D4 38 00 00 00 */ li r0, 0 /* 80224678 002202D8 90 1F 03 1C */ stw r0, 0x31c(r31) /* 8022467C 002202DC 90 1F 03 20 */ stw r0, 0x320(r31) /* 80224680 002202E0 98 1F 03 48 */ stb r0, 0x348(r31) /* 80224684 002202E4 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80224688 002202E8 80 01 00 14 */ lwz r0, 0x14(r1) /* 8022468C 002202EC 7C 08 03 A6 */ mtlr r0 /* 80224690 002202F0 38 21 00 10 */ addi r1, r1, 0x10 /* 80224694 002202F4 4E 80 00 20 */ blr .global func_80224698 func_80224698: /* 80224698 002202F8 80 03 03 1C */ lwz r0, 0x31c(r3) /* 8022469C 002202FC 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 802246A0 00220300 4D 82 00 20 */ beqlr /* 802246A4 00220304 48 04 D8 A4 */ b OSResumeThread /* 802246A8 00220308 4E 80 00 20 */ blr .global func_802246AC func_802246AC: /* 802246AC 0022030C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802246B0 00220310 7C 08 02 A6 */ mflr r0 /* 802246B4 00220314 90 01 00 24 */ stw r0, 0x24(r1) /* 802246B8 00220318 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802246BC 0022031C 7C 9F 23 78 */ mr r31, r4 /* 802246C0 00220320 93 C1 00 18 */ stw r30, 0x18(r1) /* 802246C4 00220324 7C 7E 1B 78 */ mr r30, r3 /* 802246C8 00220328 80 03 03 1C */ lwz r0, 0x31c(r3) /* 802246CC 0022032C 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 802246D0 00220330 41 82 00 44 */ beq lbl_80224714 /* 802246D4 00220334 80 03 03 1C */ lwz r0, 0x31c(r3) /* 802246D8 00220338 60 00 00 02 */ ori r0, r0, 2 /* 802246DC 0022033C 90 03 03 1C */ stw r0, 0x31c(r3) /* 802246E0 00220340 48 04 CC 19 */ bl OSGetCurrentThread /* 802246E4 00220344 7C 03 F0 40 */ cmplw r3, r30 /* 802246E8 00220348 40 82 00 10 */ bne lbl_802246F8 /* 802246EC 0022034C 38 60 00 00 */ li r3, 0 /* 802246F0 00220350 48 04 D4 5D */ bl OSExitThread /* 802246F4 00220354 48 00 00 20 */ b lbl_80224714 lbl_802246F8: /* 802246F8 00220358 7F C3 F3 78 */ mr r3, r30 /* 802246FC 0022035C 48 04 D5 35 */ bl OSCancelThread /* 80224700 00220360 2C 1F 00 00 */ cmpwi r31, 0 /* 80224704 00220364 41 82 00 10 */ beq lbl_80224714 /* 80224708 00220368 7F C3 F3 78 */ mr r3, r30 /* 8022470C 0022036C 38 81 00 08 */ addi r4, r1, 8 /* 80224710 00220370 48 04 D6 F9 */ bl OSJoinThread lbl_80224714: /* 80224714 00220374 80 01 00 24 */ lwz r0, 0x24(r1) /* 80224718 00220378 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8022471C 0022037C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80224720 00220380 7C 08 03 A6 */ mtlr r0 /* 80224724 00220384 38 21 00 20 */ addi r1, r1, 0x20 /* 80224728 00220388 4E 80 00 20 */ blr .global func_8022472C func_8022472C: /* 8022472C 0022038C 80 03 03 1C */ lwz r0, 0x31c(r3) /* 80224730 00220390 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80224734 00220394 4D 82 00 20 */ beqlr /* 80224738 00220398 48 04 DA A8 */ b OSSuspendThread /* 8022473C 0022039C 4E 80 00 20 */ blr .global func_80224740 func_80224740: /* 80224740 002203A0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80224744 002203A4 7C 08 02 A6 */ mflr r0 /* 80224748 002203A8 90 01 00 14 */ stw r0, 0x14(r1) /* 8022474C 002203AC 80 03 03 1C */ lwz r0, 0x31c(r3) /* 80224750 002203B0 54 00 07 FF */ clrlwi. r0, r0, 0x1f /* 80224754 002203B4 40 82 00 0C */ bne lbl_80224760 /* 80224758 002203B8 38 60 00 01 */ li r3, 1 /* 8022475C 002203BC 48 00 00 14 */ b lbl_80224770 lbl_80224760: /* 80224760 002203C0 48 04 CB B9 */ bl OSIsThreadTerminated /* 80224764 002203C4 38 03 FF FF */ addi r0, r3, -1 /* 80224768 002203C8 7C 00 00 34 */ cntlzw r0, r0 /* 8022476C 002203CC 54 03 D9 7E */ srwi r3, r0, 5 lbl_80224770: /* 80224770 002203D0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80224774 002203D4 7C 08 03 A6 */ mtlr r0 /* 80224778 002203D8 38 21 00 10 */ addi r1, r1, 0x10 /* 8022477C 002203DC 4E 80 00 20 */ blr .global func_80224780 func_80224780: /* 80224780 002203E0 38 A0 00 01 */ li r5, 1 /* 80224784 002203E4 38 6D A3 38 */ addi r3, r13, lbl_8063F5F8-_SDA_BASE_ /* 80224788 002203E8 38 80 00 04 */ li r4, 4 /* 8022478C 002203EC 38 00 00 00 */ li r0, 0 /* 80224790 002203F0 98 AD A3 38 */ stb r5, lbl_8063F5F8-_SDA_BASE_(r13) /* 80224794 002203F4 B0 83 00 02 */ sth r4, 2(r3) /* 80224798 002203F8 98 03 00 04 */ stb r0, 4(r3) /* 8022479C 002203FC 4E 80 00 20 */ blr