1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
|
.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
|