summaryrefslogtreecommitdiff
path: root/asm/code_8023AF8C.s
blob: 861e05c15082aae980a94babda0bb067f42efff7 (plain)
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
522
523
524
525
526
527
528
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global func_8023AF8C
func_8023AF8C:
/* 8023AF8C 00236BEC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023AF90 00236BF0  7C 08 02 A6 */	mflr r0
/* 8023AF94 00236BF4  3D 00 80 42 */	lis r8, lbl_80424718@ha
/* 8023AF98 00236BF8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023AF9C 00236BFC  38 00 00 00 */	li r0, 0
/* 8023AFA0 00236C00  39 08 47 18 */	addi r8, r8, lbl_80424718@l
/* 8023AFA4 00236C04  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023AFA8 00236C08  7C 7F 1B 78 */	mr r31, r3
/* 8023AFAC 00236C0C  90 83 00 00 */	stw r4, 0(r3)
/* 8023AFB0 00236C10  91 03 00 1C */	stw r8, 0x1c(r3)
/* 8023AFB4 00236C14  98 A3 00 04 */	stb r5, 4(r3)
/* 8023AFB8 00236C18  98 C3 00 05 */	stb r6, 5(r3)
/* 8023AFBC 00236C1C  B0 03 00 06 */	sth r0, 6(r3)
/* 8023AFC0 00236C20  90 E3 00 08 */	stw r7, 8(r3)
/* 8023AFC4 00236C24  90 03 00 0C */	stw r0, 0xc(r3)
/* 8023AFC8 00236C28  90 03 00 10 */	stw r0, 0x10(r3)
/* 8023AFCC 00236C2C  90 03 00 14 */	stw r0, 0x14(r3)
/* 8023AFD0 00236C30  90 03 00 18 */	stw r0, 0x18(r3)
/* 8023AFD4 00236C34  48 00 00 B5 */	bl func_8023B088
/* 8023AFD8 00236C38  7F E3 FB 78 */	mr r3, r31
/* 8023AFDC 00236C3C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023AFE0 00236C40  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023AFE4 00236C44  7C 08 03 A6 */	mtlr r0
/* 8023AFE8 00236C48  38 21 00 10 */	addi r1, r1, 0x10
/* 8023AFEC 00236C4C  4E 80 00 20 */	blr

.global func_8023AFF0
func_8023AFF0:
/* 8023AFF0 00236C50  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023AFF4 00236C54  7C 08 02 A6 */	mflr r0
/* 8023AFF8 00236C58  2C 03 00 00 */	cmpwi r3, 0
/* 8023AFFC 00236C5C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023B000 00236C60  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023B004 00236C64  7C 9F 23 78 */	mr r31, r4
/* 8023B008 00236C68  93 C1 00 08 */	stw r30, 8(r1)
/* 8023B00C 00236C6C  7C 7E 1B 78 */	mr r30, r3
/* 8023B010 00236C70  41 82 00 2C */	beq lbl_8023B03C
/* 8023B014 00236C74  3C 80 80 42 */	lis r4, lbl_80424718@ha
/* 8023B018 00236C78  38 84 47 18 */	addi r4, r4, lbl_80424718@l
/* 8023B01C 00236C7C  90 83 00 1C */	stw r4, 0x1c(r3)
/* 8023B020 00236C80  48 00 02 D1 */	bl func_8023B2F0
/* 8023B024 00236C84  7F C3 F3 78 */	mr r3, r30
/* 8023B028 00236C88  48 00 00 89 */	bl func_8023B0B0
/* 8023B02C 00236C8C  2C 1F 00 00 */	cmpwi r31, 0
/* 8023B030 00236C90  40 81 00 0C */	ble lbl_8023B03C
/* 8023B034 00236C94  7F C3 F3 78 */	mr r3, r30
/* 8023B038 00236C98  4B F9 FA 81 */	bl __dl__FPv
lbl_8023B03C:
/* 8023B03C 00236C9C  7F C3 F3 78 */	mr r3, r30
/* 8023B040 00236CA0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023B044 00236CA4  83 C1 00 08 */	lwz r30, 8(r1)
/* 8023B048 00236CA8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023B04C 00236CAC  7C 08 03 A6 */	mtlr r0
/* 8023B050 00236CB0  38 21 00 10 */	addi r1, r1, 0x10
/* 8023B054 00236CB4  4E 80 00 20 */	blr

.global func_8023B058
func_8023B058:
/* 8023B058 00236CB8  80 8D A4 68 */	lwz r4, lbl_8063F728-_SDA_BASE_(r13)
/* 8023B05C 00236CBC  48 00 00 1C */	b lbl_8023B078
lbl_8023B060:
/* 8023B060 00236CC0  80 04 00 00 */	lwz r0, 0(r4)
/* 8023B064 00236CC4  7C 00 18 00 */	cmpw r0, r3
/* 8023B068 00236CC8  40 82 00 0C */	bne lbl_8023B074
/* 8023B06C 00236CCC  7C 83 23 78 */	mr r3, r4
/* 8023B070 00236CD0  4E 80 00 20 */	blr
lbl_8023B074:
/* 8023B074 00236CD4  80 84 00 18 */	lwz r4, 0x18(r4)
lbl_8023B078:
/* 8023B078 00236CD8  2C 04 00 00 */	cmpwi r4, 0
/* 8023B07C 00236CDC  40 82 FF E4 */	bne lbl_8023B060
/* 8023B080 00236CE0  38 60 00 00 */	li r3, 0
/* 8023B084 00236CE4  4E 80 00 20 */	blr

.global func_8023B088
func_8023B088:
/* 8023B088 00236CE8  80 0D A4 68 */	lwz r0, lbl_8063F728-_SDA_BASE_(r13)
/* 8023B08C 00236CEC  2C 00 00 00 */	cmpwi r0, 0
/* 8023B090 00236CF0  40 82 00 08 */	bne lbl_8023B098
/* 8023B094 00236CF4  90 6D A4 68 */	stw r3, lbl_8063F728-_SDA_BASE_(r13)
lbl_8023B098:
/* 8023B098 00236CF8  80 8D A4 6C */	lwz r4, lbl_8063F72C-_SDA_BASE_(r13)
/* 8023B09C 00236CFC  2C 04 00 00 */	cmpwi r4, 0
/* 8023B0A0 00236D00  41 82 00 08 */	beq lbl_8023B0A8
/* 8023B0A4 00236D04  90 64 00 18 */	stw r3, 0x18(r4)
lbl_8023B0A8:
/* 8023B0A8 00236D08  90 6D A4 6C */	stw r3, lbl_8063F72C-_SDA_BASE_(r13)
/* 8023B0AC 00236D0C  4E 80 00 20 */	blr

.global func_8023B0B0
func_8023B0B0:
/* 8023B0B0 00236D10  80 8D A4 68 */	lwz r4, lbl_8063F728-_SDA_BASE_(r13)
/* 8023B0B4 00236D14  7C 03 20 40 */	cmplw r3, r4
/* 8023B0B8 00236D18  40 82 00 38 */	bne lbl_8023B0F0
/* 8023B0BC 00236D1C  80 0D A4 6C */	lwz r0, lbl_8063F72C-_SDA_BASE_(r13)
/* 8023B0C0 00236D20  80 83 00 18 */	lwz r4, 0x18(r3)
/* 8023B0C4 00236D24  7C 00 18 40 */	cmplw r0, r3
/* 8023B0C8 00236D28  90 8D A4 68 */	stw r4, lbl_8063F728-_SDA_BASE_(r13)
/* 8023B0CC 00236D2C  40 82 00 48 */	bne lbl_8023B114
/* 8023B0D0 00236D30  38 00 00 00 */	li r0, 0
/* 8023B0D4 00236D34  90 0D A4 6C */	stw r0, lbl_8063F72C-_SDA_BASE_(r13)
/* 8023B0D8 00236D38  48 00 00 3C */	b lbl_8023B114
/* 8023B0DC 00236D3C  48 00 00 14 */	b lbl_8023B0F0
lbl_8023B0E0:
/* 8023B0E0 00236D40  80 04 00 18 */	lwz r0, 0x18(r4)
/* 8023B0E4 00236D44  7C 00 18 40 */	cmplw r0, r3
/* 8023B0E8 00236D48  41 82 00 10 */	beq lbl_8023B0F8
/* 8023B0EC 00236D4C  7C 04 03 78 */	mr r4, r0
lbl_8023B0F0:
/* 8023B0F0 00236D50  2C 04 00 00 */	cmpwi r4, 0
/* 8023B0F4 00236D54  40 82 FF EC */	bne lbl_8023B0E0
lbl_8023B0F8:
/* 8023B0F8 00236D58  80 03 00 18 */	lwz r0, 0x18(r3)
/* 8023B0FC 00236D5C  90 04 00 18 */	stw r0, 0x18(r4)
/* 8023B100 00236D60  80 0D A4 6C */	lwz r0, lbl_8063F72C-_SDA_BASE_(r13)
/* 8023B104 00236D64  7C 00 18 40 */	cmplw r0, r3
/* 8023B108 00236D68  40 82 00 0C */	bne lbl_8023B114
/* 8023B10C 00236D6C  80 03 00 18 */	lwz r0, 0x18(r3)
/* 8023B110 00236D70  90 0D A4 6C */	stw r0, lbl_8063F72C-_SDA_BASE_(r13)
lbl_8023B114:
/* 8023B114 00236D74  38 00 00 00 */	li r0, 0
/* 8023B118 00236D78  90 03 00 18 */	stw r0, 0x18(r3)
/* 8023B11C 00236D7C  4E 80 00 20 */	blr

.global func_8023B120
func_8023B120:
/* 8023B120 00236D80  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8023B124 00236D84  7C 08 02 A6 */	mflr r0
/* 8023B128 00236D88  90 01 00 24 */	stw r0, 0x24(r1)
/* 8023B12C 00236D8C  39 61 00 20 */	addi r11, r1, 0x20
/* 8023B130 00236D90  4B F8 BF F9 */	bl _savegpr_27
/* 8023B134 00236D94  83 E3 00 10 */	lwz r31, 0x10(r3)
/* 8023B138 00236D98  7C 7B 1B 78 */	mr r27, r3
/* 8023B13C 00236D9C  7C 9C 23 78 */	mr r28, r4
/* 8023B140 00236DA0  7C BD 2B 78 */	mr r29, r5
/* 8023B144 00236DA4  3B C0 00 00 */	li r30, 0
/* 8023B148 00236DA8  48 00 00 60 */	b lbl_8023B1A8
lbl_8023B14C:
/* 8023B14C 00236DAC  80 FF 00 00 */	lwz r7, 0(r31)
/* 8023B150 00236DB0  7C 04 38 40 */	cmplw r4, r7
/* 8023B154 00236DB4  40 82 00 30 */	bne lbl_8023B184
/* 8023B158 00236DB8  80 1F 00 04 */	lwz r0, 4(r31)
/* 8023B15C 00236DBC  7C 05 00 40 */	cmplw r5, r0
/* 8023B160 00236DC0  40 82 00 24 */	bne lbl_8023B184
/* 8023B164 00236DC4  80 03 00 00 */	lwz r0, 0(r3)
/* 8023B168 00236DC8  80 64 00 00 */	lwz r3, 0(r4)
/* 8023B16C 00236DCC  54 04 80 1E */	slwi r4, r0, 0x10
/* 8023B170 00236DD0  88 05 00 04 */	lbz r0, 4(r5)
/* 8023B174 00236DD4  54 63 40 2E */	slwi r3, r3, 8
/* 8023B178 00236DD8  7C 83 1B 78 */	or r3, r4, r3
/* 8023B17C 00236DDC  7C 63 03 78 */	or r3, r3, r0
/* 8023B180 00236DE0  48 00 00 A8 */	b lbl_8023B228
lbl_8023B184:
/* 8023B184 00236DE4  2C 06 00 00 */	cmpwi r6, 0
/* 8023B188 00236DE8  41 82 00 18 */	beq lbl_8023B1A0
/* 8023B18C 00236DEC  7C 04 38 40 */	cmplw r4, r7
/* 8023B190 00236DF0  40 80 00 10 */	bge lbl_8023B1A0
/* 8023B194 00236DF4  80 1F 00 04 */	lwz r0, 4(r31)
/* 8023B198 00236DF8  7C 05 00 40 */	cmplw r5, r0
/* 8023B19C 00236DFC  41 80 00 14 */	blt lbl_8023B1B0
lbl_8023B1A0:
/* 8023B1A0 00236E00  7F FE FB 78 */	mr r30, r31
/* 8023B1A4 00236E04  83 FF 00 10 */	lwz r31, 0x10(r31)
lbl_8023B1A8:
/* 8023B1A8 00236E08  2C 1F 00 00 */	cmpwi r31, 0
/* 8023B1AC 00236E0C  40 82 FF A0 */	bne lbl_8023B14C
lbl_8023B1B0:
/* 8023B1B0 00236E10  38 60 00 14 */	li r3, 0x14
/* 8023B1B4 00236E14  4B F9 F8 7D */	bl __nw__FUl
/* 8023B1B8 00236E18  2C 03 00 00 */	cmpwi r3, 0
/* 8023B1BC 00236E1C  40 82 00 0C */	bne lbl_8023B1C8
/* 8023B1C0 00236E20  38 60 00 00 */	li r3, 0
/* 8023B1C4 00236E24  48 00 00 64 */	b lbl_8023B228
lbl_8023B1C8:
/* 8023B1C8 00236E28  93 83 00 00 */	stw r28, 0(r3)
/* 8023B1CC 00236E2C  38 80 00 00 */	li r4, 0
/* 8023B1D0 00236E30  38 00 00 01 */	li r0, 1
/* 8023B1D4 00236E34  2C 1E 00 00 */	cmpwi r30, 0
/* 8023B1D8 00236E38  93 A3 00 04 */	stw r29, 4(r3)
/* 8023B1DC 00236E3C  B0 83 00 08 */	sth r4, 8(r3)
/* 8023B1E0 00236E40  98 03 00 0A */	stb r0, 0xa(r3)
/* 8023B1E4 00236E44  98 83 00 0B */	stb r4, 0xb(r3)
/* 8023B1E8 00236E48  90 83 00 0C */	stw r4, 0xc(r3)
/* 8023B1EC 00236E4C  90 83 00 10 */	stw r4, 0x10(r3)
/* 8023B1F0 00236E50  41 82 00 10 */	beq lbl_8023B200
/* 8023B1F4 00236E54  93 E3 00 10 */	stw r31, 0x10(r3)
/* 8023B1F8 00236E58  90 7E 00 10 */	stw r3, 0x10(r30)
/* 8023B1FC 00236E5C  48 00 00 10 */	b lbl_8023B20C
lbl_8023B200:
/* 8023B200 00236E60  80 1B 00 10 */	lwz r0, 0x10(r27)
/* 8023B204 00236E64  90 03 00 10 */	stw r0, 0x10(r3)
/* 8023B208 00236E68  90 7B 00 10 */	stw r3, 0x10(r27)
lbl_8023B20C:
/* 8023B20C 00236E6C  80 1B 00 00 */	lwz r0, 0(r27)
/* 8023B210 00236E70  80 7C 00 00 */	lwz r3, 0(r28)
/* 8023B214 00236E74  54 04 80 1E */	slwi r4, r0, 0x10
/* 8023B218 00236E78  88 1D 00 04 */	lbz r0, 4(r29)
/* 8023B21C 00236E7C  54 63 40 2E */	slwi r3, r3, 8
/* 8023B220 00236E80  7C 83 1B 78 */	or r3, r4, r3
/* 8023B224 00236E84  7C 63 03 78 */	or r3, r3, r0
lbl_8023B228:
/* 8023B228 00236E88  39 61 00 20 */	addi r11, r1, 0x20
/* 8023B22C 00236E8C  4B F8 BF 49 */	bl _restgpr_27
/* 8023B230 00236E90  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8023B234 00236E94  7C 08 03 A6 */	mtlr r0
/* 8023B238 00236E98  38 21 00 20 */	addi r1, r1, 0x20
/* 8023B23C 00236E9C  4E 80 00 20 */	blr

.global func_8023B240
func_8023B240:
/* 8023B240 00236EA0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023B244 00236EA4  7C 08 02 A6 */	mflr r0
/* 8023B248 00236EA8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023B24C 00236EAC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023B250 00236EB0  93 C1 00 08 */	stw r30, 8(r1)
/* 8023B254 00236EB4  7C 9E 23 78 */	mr r30, r4
/* 8023B258 00236EB8  80 63 00 10 */	lwz r3, 0x10(r3)
/* 8023B25C 00236EBC  48 00 00 1C */	b lbl_8023B278
lbl_8023B260:
/* 8023B260 00236EC0  80 03 00 00 */	lwz r0, 0(r3)
/* 8023B264 00236EC4  83 E3 00 10 */	lwz r31, 0x10(r3)
/* 8023B268 00236EC8  7C 00 F0 40 */	cmplw r0, r30
/* 8023B26C 00236ECC  40 82 00 08 */	bne lbl_8023B274
/* 8023B270 00236ED0  4B F9 F8 49 */	bl __dl__FPv
lbl_8023B274:
/* 8023B274 00236ED4  7F E3 FB 78 */	mr r3, r31
lbl_8023B278:
/* 8023B278 00236ED8  2C 03 00 00 */	cmpwi r3, 0
/* 8023B27C 00236EDC  40 82 FF E4 */	bne lbl_8023B260
/* 8023B280 00236EE0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023B284 00236EE4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023B288 00236EE8  83 C1 00 08 */	lwz r30, 8(r1)
/* 8023B28C 00236EEC  7C 08 03 A6 */	mtlr r0
/* 8023B290 00236EF0  38 21 00 10 */	addi r1, r1, 0x10
/* 8023B294 00236EF4  4E 80 00 20 */	blr

.global func_8023B298
func_8023B298:
/* 8023B298 00236EF8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023B29C 00236EFC  7C 08 02 A6 */	mflr r0
/* 8023B2A0 00236F00  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023B2A4 00236F04  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023B2A8 00236F08  93 C1 00 08 */	stw r30, 8(r1)
/* 8023B2AC 00236F0C  7C 9E 23 78 */	mr r30, r4
/* 8023B2B0 00236F10  80 63 00 10 */	lwz r3, 0x10(r3)
/* 8023B2B4 00236F14  48 00 00 1C */	b lbl_8023B2D0
lbl_8023B2B8:
/* 8023B2B8 00236F18  80 03 00 04 */	lwz r0, 4(r3)
/* 8023B2BC 00236F1C  83 E3 00 10 */	lwz r31, 0x10(r3)
/* 8023B2C0 00236F20  7C 00 F0 40 */	cmplw r0, r30
/* 8023B2C4 00236F24  40 82 00 08 */	bne lbl_8023B2CC
/* 8023B2C8 00236F28  4B F9 F7 F1 */	bl __dl__FPv
lbl_8023B2CC:
/* 8023B2CC 00236F2C  7F E3 FB 78 */	mr r3, r31
lbl_8023B2D0:
/* 8023B2D0 00236F30  2C 03 00 00 */	cmpwi r3, 0
/* 8023B2D4 00236F34  40 82 FF E4 */	bne lbl_8023B2B8
/* 8023B2D8 00236F38  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023B2DC 00236F3C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023B2E0 00236F40  83 C1 00 08 */	lwz r30, 8(r1)
/* 8023B2E4 00236F44  7C 08 03 A6 */	mtlr r0
/* 8023B2E8 00236F48  38 21 00 10 */	addi r1, r1, 0x10
/* 8023B2EC 00236F4C  4E 80 00 20 */	blr

.global func_8023B2F0
func_8023B2F0:
/* 8023B2F0 00236F50  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023B2F4 00236F54  7C 08 02 A6 */	mflr r0
/* 8023B2F8 00236F58  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023B2FC 00236F5C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023B300 00236F60  80 63 00 10 */	lwz r3, 0x10(r3)
/* 8023B304 00236F64  48 00 00 10 */	b lbl_8023B314
lbl_8023B308:
/* 8023B308 00236F68  83 E3 00 10 */	lwz r31, 0x10(r3)
/* 8023B30C 00236F6C  4B F9 F7 AD */	bl __dl__FPv
/* 8023B310 00236F70  7F E3 FB 78 */	mr r3, r31
lbl_8023B314:
/* 8023B314 00236F74  2C 03 00 00 */	cmpwi r3, 0
/* 8023B318 00236F78  40 82 FF F0 */	bne lbl_8023B308
/* 8023B31C 00236F7C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023B320 00236F80  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023B324 00236F84  7C 08 03 A6 */	mtlr r0
/* 8023B328 00236F88  38 21 00 10 */	addi r1, r1, 0x10
/* 8023B32C 00236F8C  4E 80 00 20 */	blr

.global func_8023B330
func_8023B330:
/* 8023B330 00236F90  80 03 00 00 */	lwz r0, 0(r3)
/* 8023B334 00236F94  54 85 86 3E */	rlwinm r5, r4, 0x10, 0x18, 0x1f
/* 8023B338 00236F98  7C 05 00 00 */	cmpw r5, r0
/* 8023B33C 00236F9C  41 82 00 0C */	beq lbl_8023B348
/* 8023B340 00236FA0  38 60 00 00 */	li r3, 0
/* 8023B344 00236FA4  4E 80 00 20 */	blr
lbl_8023B348:
/* 8023B348 00236FA8  54 85 C6 3F */	rlwinm. r5, r4, 0x18, 0x18, 0x1f
/* 8023B34C 00236FAC  40 82 00 0C */	bne lbl_8023B358
/* 8023B350 00236FB0  38 60 00 00 */	li r3, 0
/* 8023B354 00236FB4  4E 80 00 20 */	blr
lbl_8023B358:
/* 8023B358 00236FB8  54 84 06 3F */	clrlwi. r4, r4, 0x18
/* 8023B35C 00236FBC  40 82 00 0C */	bne lbl_8023B368
/* 8023B360 00236FC0  38 60 00 00 */	li r3, 0
/* 8023B364 00236FC4  4E 80 00 20 */	blr
lbl_8023B368:
/* 8023B368 00236FC8  80 C3 00 10 */	lwz r6, 0x10(r3)
/* 8023B36C 00236FCC  48 00 00 3C */	b lbl_8023B3A8
lbl_8023B370:
/* 8023B370 00236FD0  80 66 00 00 */	lwz r3, 0(r6)
/* 8023B374 00236FD4  80 03 00 00 */	lwz r0, 0(r3)
/* 8023B378 00236FD8  7C 05 00 00 */	cmpw r5, r0
/* 8023B37C 00236FDC  40 82 00 28 */	bne lbl_8023B3A4
/* 8023B380 00236FE0  80 66 00 04 */	lwz r3, 4(r6)
/* 8023B384 00236FE4  88 03 00 04 */	lbz r0, 4(r3)
/* 8023B388 00236FE8  7C 04 00 40 */	cmplw r4, r0
/* 8023B38C 00236FEC  40 82 00 18 */	bne lbl_8023B3A4
/* 8023B390 00236FF0  A0 66 00 08 */	lhz r3, 8(r6)
/* 8023B394 00236FF4  7C 03 00 D0 */	neg r0, r3
/* 8023B398 00236FF8  7C 00 1B 78 */	or r0, r0, r3
/* 8023B39C 00236FFC  54 03 0F FE */	srwi r3, r0, 0x1f
/* 8023B3A0 00237000  4E 80 00 20 */	blr
lbl_8023B3A4:
/* 8023B3A4 00237004  80 C6 00 10 */	lwz r6, 0x10(r6)
lbl_8023B3A8:
/* 8023B3A8 00237008  2C 06 00 00 */	cmpwi r6, 0
/* 8023B3AC 0023700C  40 82 FF C4 */	bne lbl_8023B370
/* 8023B3B0 00237010  38 60 00 00 */	li r3, 0
/* 8023B3B4 00237014  4E 80 00 20 */	blr

.global func_8023B3B8
func_8023B3B8:
/* 8023B3B8 00237018  80 03 00 00 */	lwz r0, 0(r3)
/* 8023B3BC 0023701C  54 85 86 3E */	rlwinm r5, r4, 0x10, 0x18, 0x1f
/* 8023B3C0 00237020  7C 05 00 00 */	cmpw r5, r0
/* 8023B3C4 00237024  4C 82 00 20 */	bnelr
/* 8023B3C8 00237028  54 85 C6 3F */	rlwinm. r5, r4, 0x18, 0x18, 0x1f
/* 8023B3CC 0023702C  4D 82 00 20 */	beqlr
/* 8023B3D0 00237030  54 84 06 3F */	clrlwi. r4, r4, 0x18
/* 8023B3D4 00237034  4D 82 00 20 */	beqlr
/* 8023B3D8 00237038  80 C3 00 10 */	lwz r6, 0x10(r3)
/* 8023B3DC 0023703C  48 00 00 38 */	b lbl_8023B414
lbl_8023B3E0:
/* 8023B3E0 00237040  80 66 00 00 */	lwz r3, 0(r6)
/* 8023B3E4 00237044  80 03 00 00 */	lwz r0, 0(r3)
/* 8023B3E8 00237048  7C 05 00 00 */	cmpw r5, r0
/* 8023B3EC 0023704C  40 82 00 24 */	bne lbl_8023B410
/* 8023B3F0 00237050  80 66 00 04 */	lwz r3, 4(r6)
/* 8023B3F4 00237054  88 03 00 04 */	lbz r0, 4(r3)
/* 8023B3F8 00237058  7C 04 00 40 */	cmplw r4, r0
/* 8023B3FC 0023705C  40 82 00 14 */	bne lbl_8023B410
/* 8023B400 00237060  A0 66 00 08 */	lhz r3, 8(r6)
/* 8023B404 00237064  38 03 00 01 */	addi r0, r3, 1
/* 8023B408 00237068  B0 06 00 08 */	sth r0, 8(r6)
/* 8023B40C 0023706C  4E 80 00 20 */	blr
lbl_8023B410:
/* 8023B410 00237070  80 C6 00 10 */	lwz r6, 0x10(r6)
lbl_8023B414:
/* 8023B414 00237074  2C 06 00 00 */	cmpwi r6, 0
/* 8023B418 00237078  40 82 FF C8 */	bne lbl_8023B3E0
/* 8023B41C 0023707C  4E 80 00 20 */	blr

.global func_8023B420
func_8023B420:
/* 8023B420 00237080  80 03 00 00 */	lwz r0, 0(r3)
/* 8023B424 00237084  54 85 86 3E */	rlwinm r5, r4, 0x10, 0x18, 0x1f
/* 8023B428 00237088  7C 05 00 00 */	cmpw r5, r0
/* 8023B42C 0023708C  4C 82 00 20 */	bnelr
/* 8023B430 00237090  54 85 C6 3F */	rlwinm. r5, r4, 0x18, 0x18, 0x1f
/* 8023B434 00237094  4D 82 00 20 */	beqlr
/* 8023B438 00237098  54 84 06 3F */	clrlwi. r4, r4, 0x18
/* 8023B43C 0023709C  4D 82 00 20 */	beqlr
/* 8023B440 002370A0  80 C3 00 10 */	lwz r6, 0x10(r3)
/* 8023B444 002370A4  48 00 00 40 */	b lbl_8023B484
lbl_8023B448:
/* 8023B448 002370A8  80 66 00 00 */	lwz r3, 0(r6)
/* 8023B44C 002370AC  80 03 00 00 */	lwz r0, 0(r3)
/* 8023B450 002370B0  7C 05 00 00 */	cmpw r5, r0
/* 8023B454 002370B4  40 82 00 2C */	bne lbl_8023B480
/* 8023B458 002370B8  80 66 00 04 */	lwz r3, 4(r6)
/* 8023B45C 002370BC  88 03 00 04 */	lbz r0, 4(r3)
/* 8023B460 002370C0  7C 04 00 40 */	cmplw r4, r0
/* 8023B464 002370C4  40 82 00 1C */	bne lbl_8023B480
/* 8023B468 002370C8  A0 66 00 08 */	lhz r3, 8(r6)
/* 8023B46C 002370CC  2C 03 00 00 */	cmpwi r3, 0
/* 8023B470 002370D0  4D 82 00 20 */	beqlr
/* 8023B474 002370D4  38 03 FF FF */	addi r0, r3, -1
/* 8023B478 002370D8  B0 06 00 08 */	sth r0, 8(r6)
/* 8023B47C 002370DC  4E 80 00 20 */	blr
lbl_8023B480:
/* 8023B480 002370E0  80 C6 00 10 */	lwz r6, 0x10(r6)
lbl_8023B484:
/* 8023B484 002370E4  2C 06 00 00 */	cmpwi r6, 0
/* 8023B488 002370E8  40 82 FF C0 */	bne lbl_8023B448
/* 8023B48C 002370EC  4E 80 00 20 */	blr

.global func_8023B490
func_8023B490:
/* 8023B490 002370F0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8023B494 002370F4  7C 08 02 A6 */	mflr r0
/* 8023B498 002370F8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8023B49C 002370FC  39 61 00 20 */	addi r11, r1, 0x20
/* 8023B4A0 00237100  4B F8 BC 85 */	bl _savegpr_26
/* 8023B4A4 00237104  80 0D A4 74 */	lwz r0, lbl_8063F734-_SDA_BASE_(r13)
/* 8023B4A8 00237108  7C 7A 1B 78 */	mr r26, r3
/* 8023B4AC 0023710C  2C 00 00 00 */	cmpwi r0, 0
/* 8023B4B0 00237110  41 82 00 D4 */	beq lbl_8023B584
/* 8023B4B4 00237114  98 8D A4 4D */	stb r4, lbl_8063F70D-_SDA_BASE_(r13)
/* 8023B4B8 00237118  7C 04 03 78 */	mr r4, r0
/* 8023B4BC 0023711C  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8023B4C0 00237120  4B FF 7E 1D */	bl func_802332DC
/* 8023B4C4 00237124  83 FA 00 10 */	lwz r31, 0x10(r26)
/* 8023B4C8 00237128  3B C0 00 00 */	li r30, 0
/* 8023B4CC 0023712C  3B 60 00 00 */	li r27, 0
/* 8023B4D0 00237130  48 00 00 88 */	b lbl_8023B558
lbl_8023B4D4:
/* 8023B4D4 00237134  93 FA 00 14 */	stw r31, 0x14(r26)
/* 8023B4D8 00237138  7F E3 FB 78 */	mr r3, r31
/* 8023B4DC 0023713C  A0 03 00 08 */	lhz r0, 8(r3)
/* 8023B4E0 00237140  83 FF 00 10 */	lwz r31, 0x10(r31)
/* 8023B4E4 00237144  2C 00 00 00 */	cmpwi r0, 0
/* 8023B4E8 00237148  41 82 00 70 */	beq lbl_8023B558
/* 8023B4EC 0023714C  88 03 00 0A */	lbz r0, 0xa(r3)
/* 8023B4F0 00237150  2C 00 00 00 */	cmpwi r0, 0
/* 8023B4F4 00237154  41 82 00 64 */	beq lbl_8023B558
/* 8023B4F8 00237158  83 A3 00 00 */	lwz r29, 0(r3)
/* 8023B4FC 0023715C  3B 60 00 01 */	li r27, 1
/* 8023B500 00237160  83 83 00 04 */	lwz r28, 4(r3)
/* 8023B504 00237164  7C 1D F0 40 */	cmplw r29, r30
/* 8023B508 00237168  41 82 00 38 */	beq lbl_8023B540
/* 8023B50C 0023716C  2C 1E 00 00 */	cmpwi r30, 0
/* 8023B510 00237170  41 82 00 18 */	beq lbl_8023B528
/* 8023B514 00237174  81 9E 00 10 */	lwz r12, 0x10(r30)
/* 8023B518 00237178  7F C3 F3 78 */	mr r3, r30
/* 8023B51C 0023717C  81 8C 00 0C */	lwz r12, 0xc(r12)
/* 8023B520 00237180  7D 89 03 A6 */	mtctr r12
/* 8023B524 00237184  4E 80 04 21 */	bctrl
lbl_8023B528:
/* 8023B528 00237188  81 9D 00 10 */	lwz r12, 0x10(r29)
/* 8023B52C 0023718C  7F A3 EB 78 */	mr r3, r29
/* 8023B530 00237190  81 8C 00 08 */	lwz r12, 8(r12)
/* 8023B534 00237194  7D 89 03 A6 */	mtctr r12
/* 8023B538 00237198  4E 80 04 21 */	bctrl
/* 8023B53C 0023719C  7F BE EB 78 */	mr r30, r29
lbl_8023B540:
/* 8023B540 002371A0  81 9C 00 0C */	lwz r12, 0xc(r28)
/* 8023B544 002371A4  7F 83 E3 78 */	mr r3, r28
/* 8023B548 002371A8  80 8D A4 74 */	lwz r4, lbl_8063F734-_SDA_BASE_(r13)
/* 8023B54C 002371AC  81 8C 00 10 */	lwz r12, 0x10(r12)
/* 8023B550 002371B0  7D 89 03 A6 */	mtctr r12
/* 8023B554 002371B4  4E 80 04 21 */	bctrl
lbl_8023B558:
/* 8023B558 002371B8  2C 1F 00 00 */	cmpwi r31, 0
/* 8023B55C 002371BC  40 82 FF 78 */	bne lbl_8023B4D4
/* 8023B560 002371C0  38 00 00 00 */	li r0, 0
/* 8023B564 002371C4  2C 1B 00 00 */	cmpwi r27, 0
/* 8023B568 002371C8  90 1A 00 14 */	stw r0, 0x14(r26)
/* 8023B56C 002371CC  41 82 00 18 */	beq lbl_8023B584
/* 8023B570 002371D0  81 9E 00 10 */	lwz r12, 0x10(r30)
/* 8023B574 002371D4  7F C3 F3 78 */	mr r3, r30
/* 8023B578 002371D8  81 8C 00 0C */	lwz r12, 0xc(r12)
/* 8023B57C 002371DC  7D 89 03 A6 */	mtctr r12
/* 8023B580 002371E0  4E 80 04 21 */	bctrl
lbl_8023B584:
/* 8023B584 002371E4  39 61 00 20 */	addi r11, r1, 0x20
/* 8023B588 002371E8  4B F8 BB E9 */	bl _restgpr_26
/* 8023B58C 002371EC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8023B590 002371F0  7C 08 03 A6 */	mtlr r0
/* 8023B594 002371F4  38 21 00 20 */	addi r1, r1, 0x20
/* 8023B598 002371F8  4E 80 00 20 */	blr
/* 8023B59C 002371FC  4E 80 00 20 */	blr

.global func_8023B5A0
func_8023B5A0:
/* 8023B5A0 00237200  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023B5A4 00237204  7C 08 02 A6 */	mflr r0
/* 8023B5A8 00237208  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023B5AC 0023720C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023B5B0 00237210  7C 7F 1B 78 */	mr r31, r3
/* 8023B5B4 00237214  80 03 00 0C */	lwz r0, 0xc(r3)
/* 8023B5B8 00237218  2C 00 00 00 */	cmpwi r0, 0
/* 8023B5BC 0023721C  41 82 00 5C */	beq lbl_8023B618
/* 8023B5C0 00237220  A0 03 00 06 */	lhz r0, 6(r3)
/* 8023B5C4 00237224  2C 00 00 00 */	cmpwi r0, 0
/* 8023B5C8 00237228  41 82 00 08 */	beq lbl_8023B5D0
/* 8023B5CC 0023722C  48 00 00 4C */	b lbl_8023B618
lbl_8023B5D0:
/* 8023B5D0 00237230  90 6D A4 70 */	stw r3, lbl_8063F730-_SDA_BASE_(r13)
/* 8023B5D4 00237234  38 80 00 00 */	li r4, 0
/* 8023B5D8 00237238  80 03 00 0C */	lwz r0, 0xc(r3)
/* 8023B5DC 0023723C  90 0D A4 74 */	stw r0, lbl_8063F734-_SDA_BASE_(r13)
/* 8023B5E0 00237240  4B FF FE B1 */	bl func_8023B490
/* 8023B5E4 00237244  88 9F 00 04 */	lbz r4, 4(r31)
/* 8023B5E8 00237248  2C 04 00 00 */	cmpwi r4, 0
/* 8023B5EC 0023724C  40 82 00 10 */	bne lbl_8023B5FC
/* 8023B5F0 00237250  88 1F 00 05 */	lbz r0, 5(r31)
/* 8023B5F4 00237254  2C 00 00 00 */	cmpwi r0, 0
/* 8023B5F8 00237258  41 82 00 14 */	beq lbl_8023B60C
lbl_8023B5FC:
/* 8023B5FC 0023725C  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8023B600 00237260  7C 85 23 78 */	mr r5, r4
/* 8023B604 00237264  88 DF 00 05 */	lbz r6, 5(r31)
/* 8023B608 00237268  4B FF 92 15 */	bl func_8023481C
lbl_8023B60C:
/* 8023B60C 0023726C  38 00 00 00 */	li r0, 0
/* 8023B610 00237270  90 0D A4 70 */	stw r0, lbl_8063F730-_SDA_BASE_(r13)
/* 8023B614 00237274  90 0D A4 74 */	stw r0, lbl_8063F734-_SDA_BASE_(r13)
lbl_8023B618:
/* 8023B618 00237278  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023B61C 0023727C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023B620 00237280  7C 08 03 A6 */	mtlr r0
/* 8023B624 00237284  38 21 00 10 */	addi r1, r1, 0x10
/* 8023B628 00237288  4E 80 00 20 */	blr

.global func_8023B62C
func_8023B62C:
/* 8023B62C 0023728C  38 A0 00 01 */	li r5, 1
/* 8023B630 00237290  38 6D A4 60 */	addi r3, r13, lbl_8063F720-_SDA_BASE_
/* 8023B634 00237294  38 80 00 04 */	li r4, 4
/* 8023B638 00237298  38 00 00 00 */	li r0, 0
/* 8023B63C 0023729C  98 AD A4 60 */	stb r5, lbl_8063F720-_SDA_BASE_(r13)
/* 8023B640 002372A0  B0 83 00 02 */	sth r4, 2(r3)
/* 8023B644 002372A4  98 03 00 04 */	stb r0, 4(r3)
/* 8023B648 002372A8  4E 80 00 20 */	blr