summaryrefslogtreecommitdiff
path: root/asm/code_8004D724.s
blob: 1691ce35e93f54ebc3be3f2aeb11faa01468cb70 (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
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
.include "macros.inc"

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

.global func_8004D724
func_8004D724:
/* 8004D724 00049384  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004D728 00049388  7C 08 02 A6 */	mflr r0
/* 8004D72C 0004938C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004D730 00049390  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004D734 00049394  83 ED 98 30 */	lwz r31, lbl_8063EAF0-_SDA_BASE_(r13)
/* 8004D738 00049398  2C 1F 00 00 */	cmpwi r31, 0
/* 8004D73C 0004939C  41 82 00 80 */	beq lbl_8004D7BC
/* 8004D740 000493A0  41 82 00 7C */	beq lbl_8004D7BC
/* 8004D744 000493A4  34 7F 35 10 */	addic. r3, r31, 0x3510
/* 8004D748 000493A8  41 82 00 18 */	beq lbl_8004D760
/* 8004D74C 000493AC  3C 80 80 05 */	lis r4, lbl_8004ED5C@ha
/* 8004D750 000493B0  38 A0 00 08 */	li r5, 8
/* 8004D754 000493B4  38 84 ED 5C */	addi r4, r4, lbl_8004ED5C@l
/* 8004D758 000493B8  38 C0 00 20 */	li r6, 0x20
/* 8004D75C 000493BC  48 17 98 05 */	bl __destroy_arr
lbl_8004D760:
/* 8004D760 000493C0  38 7F 34 C0 */	addi r3, r31, 0x34c0
/* 8004D764 000493C4  38 80 FF FF */	li r4, -1
/* 8004D768 000493C8  48 00 12 D9 */	bl func_8004EA40
/* 8004D76C 000493CC  3C 80 80 05 */	lis r4, lbl_8004DEF8@ha
/* 8004D770 000493D0  38 7F 27 C0 */	addi r3, r31, 0x27c0
/* 8004D774 000493D4  38 84 DE F8 */	addi r4, r4, lbl_8004DEF8@l
/* 8004D778 000493D8  38 A0 00 68 */	li r5, 0x68
/* 8004D77C 000493DC  38 C0 00 20 */	li r6, 0x20
/* 8004D780 000493E0  48 17 97 E1 */	bl __destroy_arr
/* 8004D784 000493E4  3C 80 80 04 */	lis r4, lbl_80047908@ha
/* 8004D788 000493E8  38 7F 1D 40 */	addi r3, r31, 0x1d40
/* 8004D78C 000493EC  38 84 79 08 */	addi r4, r4, lbl_80047908@l
/* 8004D790 000493F0  38 A0 00 38 */	li r5, 0x38
/* 8004D794 000493F4  38 C0 00 30 */	li r6, 0x30
/* 8004D798 000493F8  48 17 97 C9 */	bl __destroy_arr
/* 8004D79C 000493FC  3C 80 80 05 */	lis r4, lbl_80048748@ha
/* 8004D7A0 00049400  7F E3 FB 78 */	mr r3, r31
/* 8004D7A4 00049404  38 84 87 48 */	addi r4, r4, lbl_80048748@l
/* 8004D7A8 00049408  38 A0 00 9C */	li r5, 0x9c
/* 8004D7AC 0004940C  38 C0 00 30 */	li r6, 0x30
/* 8004D7B0 00049410  48 17 97 B1 */	bl __destroy_arr
/* 8004D7B4 00049414  7F E3 FB 78 */	mr r3, r31
/* 8004D7B8 00049418  48 18 D3 01 */	bl __dl__FPv
lbl_8004D7BC:
/* 8004D7BC 0004941C  38 60 36 94 */	li r3, 0x3694
/* 8004D7C0 00049420  48 18 D2 71 */	bl __nw__FUl
/* 8004D7C4 00049424  2C 03 00 00 */	cmpwi r3, 0
/* 8004D7C8 00049428  41 82 00 08 */	beq lbl_8004D7D0
/* 8004D7CC 0004942C  48 00 00 91 */	bl func_8004D85C
lbl_8004D7D0:
/* 8004D7D0 00049430  3C 80 80 05 */	lis r4, lbl_8004D814@ha
/* 8004D7D4 00049434  3C A0 80 05 */	lis r5, lbl_8004D848@ha
/* 8004D7D8 00049438  90 6D 98 30 */	stw r3, lbl_8063EAF0-_SDA_BASE_(r13)
/* 8004D7DC 0004943C  38 84 D8 14 */	addi r4, r4, lbl_8004D814@l
/* 8004D7E0 00049440  80 6D A4 B8 */	lwz r3, lbl_8063F778-_SDA_BASE_(r13)
/* 8004D7E4 00049444  38 A5 D8 48 */	addi r5, r5, lbl_8004D848@l
/* 8004D7E8 00049448  38 C0 00 03 */	li r6, 3
/* 8004D7EC 0004944C  38 E0 00 0C */	li r7, 0xc
/* 8004D7F0 00049450  48 1F 13 69 */	bl func_8023EB58
/* 8004D7F4 00049454  48 00 11 2D */	bl func_8004E920
/* 8004D7F8 00049458  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004D7FC 0004945C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004D800 00049460  7C 08 03 A6 */	mtlr r0
/* 8004D804 00049464  38 21 00 10 */	addi r1, r1, 0x10
/* 8004D808 00049468  4E 80 00 20 */	blr

.global func_8004D80C
func_8004D80C:
/* 8004D80C 0004946C  80 6D 98 30 */	lwz r3, lbl_8063EAF0-_SDA_BASE_(r13)
/* 8004D810 00049470  4E 80 00 20 */	blr
lbl_8004D814:
/* 8004D814 00049474  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004D818 00049478  7C 08 02 A6 */	mflr r0
/* 8004D81C 0004947C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004D820 00049480  80 0D 98 30 */	lwz r0, lbl_8063EAF0-_SDA_BASE_(r13)
/* 8004D824 00049484  2C 00 00 00 */	cmpwi r0, 0
/* 8004D828 00049488  41 82 00 10 */	beq lbl_8004D838
/* 8004D82C 0004948C  4B FB 9B 71 */	bl func_8000739C
/* 8004D830 00049490  80 6D 98 30 */	lwz r3, lbl_8063EAF0-_SDA_BASE_(r13)
/* 8004D834 00049494  48 00 01 A5 */	bl func_8004D9D8
lbl_8004D838:
/* 8004D838 00049498  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004D83C 0004949C  7C 08 03 A6 */	mtlr r0
/* 8004D840 000494A0  38 21 00 10 */	addi r1, r1, 0x10
/* 8004D844 000494A4  4E 80 00 20 */	blr
lbl_8004D848:
/* 8004D848 000494A8  80 6D 98 30 */	lwz r3, lbl_8063EAF0-_SDA_BASE_(r13)
/* 8004D84C 000494AC  2C 03 00 00 */	cmpwi r3, 0
/* 8004D850 000494B0  4D 82 00 20 */	beqlr
/* 8004D854 000494B4  48 00 02 30 */	b lbl_8004DA84
/* 8004D858 000494B8  4E 80 00 20 */	blr

.global func_8004D85C
func_8004D85C:
/* 8004D85C 000494BC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004D860 000494C0  7C 08 02 A6 */	mflr r0
/* 8004D864 000494C4  3C 80 80 05 */	lis r4, lbl_80048728@ha
/* 8004D868 000494C8  3C A0 80 05 */	lis r5, lbl_80048748@ha
/* 8004D86C 000494CC  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004D870 000494D0  38 C0 00 9C */	li r6, 0x9c
/* 8004D874 000494D4  38 84 87 28 */	addi r4, r4, lbl_80048728@l
/* 8004D878 000494D8  38 A5 87 48 */	addi r5, r5, lbl_80048748@l
/* 8004D87C 000494DC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004D880 000494E0  7C 7F 1B 78 */	mr r31, r3
/* 8004D884 000494E4  38 E0 00 30 */	li r7, 0x30
/* 8004D888 000494E8  48 17 95 E1 */	bl __construct_array
/* 8004D88C 000494EC  3C 80 80 04 */	lis r4, lbl_800478E4@ha
/* 8004D890 000494F0  3C A0 80 04 */	lis r5, lbl_80047908@ha
/* 8004D894 000494F4  38 7F 1D 40 */	addi r3, r31, 0x1d40
/* 8004D898 000494F8  38 C0 00 38 */	li r6, 0x38
/* 8004D89C 000494FC  38 84 78 E4 */	addi r4, r4, lbl_800478E4@l
/* 8004D8A0 00049500  38 A5 79 08 */	addi r5, r5, lbl_80047908@l
/* 8004D8A4 00049504  38 E0 00 30 */	li r7, 0x30
/* 8004D8A8 00049508  48 17 95 C1 */	bl __construct_array
/* 8004D8AC 0004950C  3C 80 80 05 */	lis r4, lbl_8004DE88@ha
/* 8004D8B0 00049510  3C A0 80 05 */	lis r5, lbl_8004DEF8@ha
/* 8004D8B4 00049514  38 7F 27 C0 */	addi r3, r31, 0x27c0
/* 8004D8B8 00049518  38 C0 00 68 */	li r6, 0x68
/* 8004D8BC 0004951C  38 84 DE 88 */	addi r4, r4, lbl_8004DE88@l
/* 8004D8C0 00049520  38 A5 DE F8 */	addi r5, r5, lbl_8004DEF8@l
/* 8004D8C4 00049524  38 E0 00 20 */	li r7, 0x20
/* 8004D8C8 00049528  48 17 95 A1 */	bl __construct_array
/* 8004D8CC 0004952C  38 7F 34 C0 */	addi r3, r31, 0x34c0
/* 8004D8D0 00049530  48 00 11 21 */	bl func_8004E9F0
/* 8004D8D4 00049534  38 7F 35 10 */	addi r3, r31, 0x3510
/* 8004D8D8 00049538  48 00 17 E5 */	bl func_8004F0BC
/* 8004D8DC 0004953C  38 7F 35 10 */	addi r3, r31, 0x3510
/* 8004D8E0 00049540  48 00 18 4D */	bl func_8004F12C
/* 8004D8E4 00049544  7F E3 FB 78 */	mr r3, r31
/* 8004D8E8 00049548  48 00 00 1D */	bl func_8004D904
/* 8004D8EC 0004954C  7F E3 FB 78 */	mr r3, r31
/* 8004D8F0 00049550  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004D8F4 00049554  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004D8F8 00049558  7C 08 03 A6 */	mtlr r0
/* 8004D8FC 0004955C  38 21 00 10 */	addi r1, r1, 0x10
/* 8004D900 00049560  4E 80 00 20 */	blr

.global func_8004D904
func_8004D904:
/* 8004D904 00049564  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004D908 00049568  7C 08 02 A6 */	mflr r0
/* 8004D90C 0004956C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004D910 00049570  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8004D914 00049574  3B E3 1D 40 */	addi r31, r3, 0x1d40
/* 8004D918 00049578  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8004D91C 0004957C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004D920 00049580  7C 7D 1B 78 */	mr r29, r3
/* 8004D924 00049584  7F BE EB 78 */	mr r30, r29
/* 8004D928 00049588  48 00 00 10 */	b lbl_8004D938
lbl_8004D92C:
/* 8004D92C 0004958C  7F C3 F3 78 */	mr r3, r30
/* 8004D930 00049590  4B FF AE 6D */	bl func_8004879C
/* 8004D934 00049594  3B DE 00 9C */	addi r30, r30, 0x9c
lbl_8004D938:
/* 8004D938 00049598  7C 1E F8 40 */	cmplw r30, r31
/* 8004D93C 0004959C  40 82 FF F0 */	bne lbl_8004D92C
/* 8004D940 000495A0  7F A3 EB 78 */	mr r3, r29
/* 8004D944 000495A4  48 00 03 89 */	bl func_8004DCCC
/* 8004D948 000495A8  38 7D 35 10 */	addi r3, r29, 0x3510
/* 8004D94C 000495AC  48 00 19 B5 */	bl func_8004F300
/* 8004D950 000495B0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004D954 000495B4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004D958 000495B8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8004D95C 000495BC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8004D960 000495C0  7C 08 03 A6 */	mtlr r0
/* 8004D964 000495C4  38 21 00 20 */	addi r1, r1, 0x20
/* 8004D968 000495C8  4E 80 00 20 */	blr

.global func_8004D96C
func_8004D96C:
/* 8004D96C 000495CC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004D970 000495D0  7C 08 02 A6 */	mflr r0
/* 8004D974 000495D4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004D978 000495D8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8004D97C 000495DC  3B E3 1D 40 */	addi r31, r3, 0x1d40
/* 8004D980 000495E0  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8004D984 000495E4  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004D988 000495E8  7C 7D 1B 78 */	mr r29, r3
/* 8004D98C 000495EC  7F BE EB 78 */	mr r30, r29
/* 8004D990 000495F0  48 00 00 1C */	b lbl_8004D9AC
lbl_8004D994:
/* 8004D994 000495F4  80 1E 00 8C */	lwz r0, 0x8c(r30)
/* 8004D998 000495F8  28 00 00 0C */	cmplwi r0, 0xc
/* 8004D99C 000495FC  41 82 00 0C */	beq lbl_8004D9A8
/* 8004D9A0 00049600  7F C3 F3 78 */	mr r3, r30
/* 8004D9A4 00049604  4B FF AD F9 */	bl func_8004879C
lbl_8004D9A8:
/* 8004D9A8 00049608  3B DE 00 9C */	addi r30, r30, 0x9c
lbl_8004D9AC:
/* 8004D9AC 0004960C  7C 1E F8 40 */	cmplw r30, r31
/* 8004D9B0 00049610  40 82 FF E4 */	bne lbl_8004D994
/* 8004D9B4 00049614  7F A3 EB 78 */	mr r3, r29
/* 8004D9B8 00049618  48 00 03 6D */	bl func_8004DD24
/* 8004D9BC 0004961C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004D9C0 00049620  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004D9C4 00049624  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8004D9C8 00049628  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8004D9CC 0004962C  7C 08 03 A6 */	mtlr r0
/* 8004D9D0 00049630  38 21 00 20 */	addi r1, r1, 0x20
/* 8004D9D4 00049634  4E 80 00 20 */	blr

.global func_8004D9D8
func_8004D9D8:
/* 8004D9D8 00049638  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004D9DC 0004963C  7C 08 02 A6 */	mflr r0
/* 8004D9E0 00049640  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004D9E4 00049644  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 8004D9E8 00049648  FF E0 08 90 */	fmr f31, f1
/* 8004D9EC 0004964C  93 E1 00 14 */	stw r31, 0x14(r1)
/* 8004D9F0 00049650  3B E3 1D 40 */	addi r31, r3, 0x1d40
/* 8004D9F4 00049654  93 C1 00 10 */	stw r30, 0x10(r1)
/* 8004D9F8 00049658  3B C3 27 C0 */	addi r30, r3, 0x27c0
/* 8004D9FC 0004965C  93 A1 00 0C */	stw r29, 0xc(r1)
/* 8004DA00 00049660  7C 7D 1B 78 */	mr r29, r3
/* 8004DA04 00049664  48 00 00 14 */	b lbl_8004DA18
lbl_8004DA08:
/* 8004DA08 00049668  FC 20 F8 90 */	fmr f1, f31
/* 8004DA0C 0004966C  7F E3 FB 78 */	mr r3, r31
/* 8004DA10 00049670  4B FF A9 41 */	bl func_80048350
/* 8004DA14 00049674  3B FF 00 38 */	addi r31, r31, 0x38
lbl_8004DA18:
/* 8004DA18 00049678  7C 1F F0 40 */	cmplw r31, r30
/* 8004DA1C 0004967C  40 82 FF EC */	bne lbl_8004DA08
/* 8004DA20 00049680  3B FD 34 C0 */	addi r31, r29, 0x34c0
/* 8004DA24 00049684  48 00 00 20 */	b lbl_8004DA44
lbl_8004DA28:
/* 8004DA28 00049688  80 1E 00 34 */	lwz r0, 0x34(r30)
/* 8004DA2C 0004968C  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8004DA30 00049690  41 82 00 10 */	beq lbl_8004DA40
/* 8004DA34 00049694  FC 20 F8 90 */	fmr f1, f31
/* 8004DA38 00049698  7F C3 F3 78 */	mr r3, r30
/* 8004DA3C 0004969C  48 00 0B 99 */	bl func_8004E5D4
lbl_8004DA40:
/* 8004DA40 000496A0  3B DE 00 68 */	addi r30, r30, 0x68
lbl_8004DA44:
/* 8004DA44 000496A4  7C 1E F8 40 */	cmplw r30, r31
/* 8004DA48 000496A8  40 82 FF E0 */	bne lbl_8004DA28
/* 8004DA4C 000496AC  FC 20 F8 90 */	fmr f1, f31
/* 8004DA50 000496B0  7F E3 FB 78 */	mr r3, r31
/* 8004DA54 000496B4  48 00 12 8D */	bl func_8004ECE0
/* 8004DA58 000496B8  FC 20 F8 90 */	fmr f1, f31
/* 8004DA5C 000496BC  38 7D 35 10 */	addi r3, r29, 0x3510
/* 8004DA60 000496C0  48 00 18 45 */	bl func_8004F2A4
/* 8004DA64 000496C4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004DA68 000496C8  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 8004DA6C 000496CC  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 8004DA70 000496D0  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 8004DA74 000496D4  83 A1 00 0C */	lwz r29, 0xc(r1)
/* 8004DA78 000496D8  7C 08 03 A6 */	mtlr r0
/* 8004DA7C 000496DC  38 21 00 20 */	addi r1, r1, 0x20
/* 8004DA80 000496E0  4E 80 00 20 */	blr
lbl_8004DA84:
/* 8004DA84 000496E4  4E 80 00 20 */	blr

.global func_8004DA88
func_8004DA88:
/* 8004DA88 000496E8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004DA8C 000496EC  7C 08 02 A6 */	mflr r0
/* 8004DA90 000496F0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004DA94 000496F4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8004DA98 000496F8  3B E3 1D 40 */	addi r31, r3, 0x1d40
/* 8004DA9C 000496FC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8004DAA0 00049700  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004DAA4 00049704  7C 9D 23 78 */	mr r29, r4
/* 8004DAA8 00049708  93 81 00 10 */	stw r28, 0x10(r1)
/* 8004DAAC 0004970C  7C 7C 1B 78 */	mr r28, r3
/* 8004DAB0 00049710  7F 9E E3 78 */	mr r30, r28
/* 8004DAB4 00049714  48 00 00 3C */	b lbl_8004DAF0
lbl_8004DAB8:
/* 8004DAB8 00049718  88 1E 00 00 */	lbz r0, 0(r30)
/* 8004DABC 0004971C  2C 00 00 00 */	cmpwi r0, 0
/* 8004DAC0 00049720  41 82 00 2C */	beq lbl_8004DAEC
/* 8004DAC4 00049724  7F A4 EB 78 */	mr r4, r29
/* 8004DAC8 00049728  38 7E 00 08 */	addi r3, r30, 8
/* 8004DACC 0004972C  48 18 09 81 */	bl strcmp
/* 8004DAD0 00049730  2C 03 00 00 */	cmpwi r3, 0
/* 8004DAD4 00049734  40 82 00 18 */	bne lbl_8004DAEC
/* 8004DAD8 00049738  80 9E 00 88 */	lwz r4, 0x88(r30)
/* 8004DADC 0004973C  7F C3 F3 78 */	mr r3, r30
/* 8004DAE0 00049740  38 04 00 01 */	addi r0, r4, 1
/* 8004DAE4 00049744  90 1E 00 88 */	stw r0, 0x88(r30)
/* 8004DAE8 00049748  48 00 00 4C */	b lbl_8004DB34
lbl_8004DAEC:
/* 8004DAEC 0004974C  3B DE 00 9C */	addi r30, r30, 0x9c
lbl_8004DAF0:
/* 8004DAF0 00049750  7C 1E F8 40 */	cmplw r30, r31
/* 8004DAF4 00049754  40 82 FF C4 */	bne lbl_8004DAB8
/* 8004DAF8 00049758  7F 83 E3 78 */	mr r3, r28
/* 8004DAFC 0004975C  48 00 01 2D */	bl func_8004DC28
/* 8004DB00 00049760  2C 03 00 00 */	cmpwi r3, 0
/* 8004DB04 00049764  7C 7E 1B 78 */	mr r30, r3
/* 8004DB08 00049768  41 82 00 28 */	beq lbl_8004DB30
/* 8004DB0C 0004976C  7F A4 EB 78 */	mr r4, r29
/* 8004DB10 00049770  4B FF AD 55 */	bl func_80048864
/* 8004DB14 00049774  2C 03 00 00 */	cmpwi r3, 0
/* 8004DB18 00049778  41 82 00 18 */	beq lbl_8004DB30
/* 8004DB1C 0004977C  80 9E 00 88 */	lwz r4, 0x88(r30)
/* 8004DB20 00049780  7F C3 F3 78 */	mr r3, r30
/* 8004DB24 00049784  38 04 00 01 */	addi r0, r4, 1
/* 8004DB28 00049788  90 1E 00 88 */	stw r0, 0x88(r30)
/* 8004DB2C 0004978C  48 00 00 08 */	b lbl_8004DB34
lbl_8004DB30:
/* 8004DB30 00049790  38 60 00 00 */	li r3, 0
lbl_8004DB34:
/* 8004DB34 00049794  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004DB38 00049798  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004DB3C 0004979C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8004DB40 000497A0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8004DB44 000497A4  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8004DB48 000497A8  7C 08 03 A6 */	mtlr r0
/* 8004DB4C 000497AC  38 21 00 20 */	addi r1, r1, 0x20
/* 8004DB50 000497B0  4E 80 00 20 */	blr

.global func_8004DB54
func_8004DB54:
/* 8004DB54 000497B4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004DB58 000497B8  7C 08 02 A6 */	mflr r0
/* 8004DB5C 000497BC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004DB60 000497C0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8004DB64 000497C4  7C BF 2B 78 */	mr r31, r5
/* 8004DB68 000497C8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8004DB6C 000497CC  7C 9E 23 78 */	mr r30, r4
/* 8004DB70 000497D0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004DB74 000497D4  7C 7D 1B 78 */	mr r29, r3
/* 8004DB78 000497D8  48 00 00 71 */	bl func_8004DBE8
/* 8004DB7C 000497DC  2C 03 00 00 */	cmpwi r3, 0
/* 8004DB80 000497E0  40 82 00 20 */	bne lbl_8004DBA0
/* 8004DB84 000497E4  7F A3 EB 78 */	mr r3, r29
/* 8004DB88 000497E8  48 00 00 A1 */	bl func_8004DC28
/* 8004DB8C 000497EC  2C 03 00 00 */	cmpwi r3, 0
/* 8004DB90 000497F0  41 82 00 10 */	beq lbl_8004DBA0
/* 8004DB94 000497F4  7F C4 F3 78 */	mr r4, r30
/* 8004DB98 000497F8  7F E5 FB 78 */	mr r5, r31
/* 8004DB9C 000497FC  4B FF AD 6D */	bl func_80048908
lbl_8004DBA0:
/* 8004DBA0 00049800  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004DBA4 00049804  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004DBA8 00049808  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8004DBAC 0004980C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8004DBB0 00049810  7C 08 03 A6 */	mtlr r0
/* 8004DBB4 00049814  38 21 00 20 */	addi r1, r1, 0x20
/* 8004DBB8 00049818  4E 80 00 20 */	blr

.global func_8004DBBC
func_8004DBBC:
/* 8004DBBC 0004981C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004DBC0 00049820  7C 08 02 A6 */	mflr r0
/* 8004DBC4 00049824  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004DBC8 00049828  48 00 00 21 */	bl func_8004DBE8
/* 8004DBCC 0004982C  2C 03 00 00 */	cmpwi r3, 0
/* 8004DBD0 00049830  41 82 00 08 */	beq lbl_8004DBD8
/* 8004DBD4 00049834  4B FF AB C9 */	bl func_8004879C
lbl_8004DBD8:
/* 8004DBD8 00049838  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004DBDC 0004983C  7C 08 03 A6 */	mtlr r0
/* 8004DBE0 00049840  38 21 00 10 */	addi r1, r1, 0x10
/* 8004DBE4 00049844  4E 80 00 20 */	blr

.global func_8004DBE8
func_8004DBE8:
/* 8004DBE8 00049848  38 03 1D 40 */	addi r0, r3, 0x1d40
/* 8004DBEC 0004984C  48 00 00 2C */	b lbl_8004DC18
lbl_8004DBF0:
/* 8004DBF0 00049850  88 C3 00 00 */	lbz r6, 0(r3)
/* 8004DBF4 00049854  2C 06 00 00 */	cmpwi r6, 0
/* 8004DBF8 00049858  41 82 00 1C */	beq lbl_8004DC14
/* 8004DBFC 0004985C  80 C3 00 8C */	lwz r6, 0x8c(r3)
/* 8004DC00 00049860  7C 04 30 40 */	cmplw r4, r6
/* 8004DC04 00049864  40 82 00 10 */	bne lbl_8004DC14
/* 8004DC08 00049868  80 C3 00 90 */	lwz r6, 0x90(r3)
/* 8004DC0C 0004986C  7C 05 30 40 */	cmplw r5, r6
/* 8004DC10 00049870  4D 82 00 20 */	beqlr
lbl_8004DC14:
/* 8004DC14 00049874  38 63 00 9C */	addi r3, r3, 0x9c
lbl_8004DC18:
/* 8004DC18 00049878  7C 03 00 40 */	cmplw r3, r0
/* 8004DC1C 0004987C  40 82 FF D4 */	bne lbl_8004DBF0
/* 8004DC20 00049880  38 60 00 00 */	li r3, 0
/* 8004DC24 00049884  4E 80 00 20 */	blr

.global func_8004DC28
func_8004DC28:
/* 8004DC28 00049888  38 03 1D 40 */	addi r0, r3, 0x1d40
/* 8004DC2C 0004988C  48 00 00 14 */	b lbl_8004DC40
lbl_8004DC30:
/* 8004DC30 00049890  88 83 00 00 */	lbz r4, 0(r3)
/* 8004DC34 00049894  2C 04 00 00 */	cmpwi r4, 0
/* 8004DC38 00049898  4D 82 00 20 */	beqlr
/* 8004DC3C 0004989C  38 63 00 9C */	addi r3, r3, 0x9c
lbl_8004DC40:
/* 8004DC40 000498A0  7C 03 00 40 */	cmplw r3, r0
/* 8004DC44 000498A4  40 82 FF EC */	bne lbl_8004DC30
/* 8004DC48 000498A8  38 60 00 00 */	li r3, 0
/* 8004DC4C 000498AC  4E 80 00 20 */	blr

.global func_8004DC50
func_8004DC50:
/* 8004DC50 000498B0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004DC54 000498B4  7C 08 02 A6 */	mflr r0
/* 8004DC58 000498B8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004DC5C 000498BC  38 03 34 C0 */	addi r0, r3, 0x34c0
/* 8004DC60 000498C0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004DC64 000498C4  3B E3 27 C0 */	addi r31, r3, 0x27c0
/* 8004DC68 000498C8  48 00 00 24 */	b lbl_8004DC8C
lbl_8004DC6C:
/* 8004DC6C 000498CC  80 7F 00 34 */	lwz r3, 0x34(r31)
/* 8004DC70 000498D0  54 63 07 FF */	clrlwi. r3, r3, 0x1f
/* 8004DC74 000498D4  40 82 00 14 */	bne lbl_8004DC88
/* 8004DC78 000498D8  7F E3 FB 78 */	mr r3, r31
/* 8004DC7C 000498DC  48 00 02 D1 */	bl func_8004DF4C
/* 8004DC80 000498E0  7F E3 FB 78 */	mr r3, r31
/* 8004DC84 000498E4  48 00 00 14 */	b lbl_8004DC98
lbl_8004DC88:
/* 8004DC88 000498E8  3B FF 00 68 */	addi r31, r31, 0x68
lbl_8004DC8C:
/* 8004DC8C 000498EC  7C 1F 00 40 */	cmplw r31, r0
/* 8004DC90 000498F0  40 82 FF DC */	bne lbl_8004DC6C
/* 8004DC94 000498F4  38 60 00 00 */	li r3, 0
lbl_8004DC98:
/* 8004DC98 000498F8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004DC9C 000498FC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004DCA0 00049900  7C 08 03 A6 */	mtlr r0
/* 8004DCA4 00049904  38 21 00 10 */	addi r1, r1, 0x10
/* 8004DCA8 00049908  4E 80 00 20 */	blr

.global func_8004DCAC
func_8004DCAC:
/* 8004DCAC 0004990C  2C 04 00 00 */	cmpwi r4, 0
/* 8004DCB0 00049910  4D 82 00 20 */	beqlr
/* 8004DCB4 00049914  80 04 00 34 */	lwz r0, 0x34(r4)
/* 8004DCB8 00049918  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8004DCBC 0004991C  4D 82 00 20 */	beqlr
/* 8004DCC0 00049920  7C 83 23 78 */	mr r3, r4
/* 8004DCC4 00049924  48 00 02 B4 */	b func_8004DF78
/* 8004DCC8 00049928  4E 80 00 20 */	blr

.global func_8004DCCC
func_8004DCCC:
/* 8004DCCC 0004992C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004DCD0 00049930  7C 08 02 A6 */	mflr r0
/* 8004DCD4 00049934  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004DCD8 00049938  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004DCDC 0004993C  3B E3 34 C0 */	addi r31, r3, 0x34c0
/* 8004DCE0 00049940  93 C1 00 08 */	stw r30, 8(r1)
/* 8004DCE4 00049944  3B C3 27 C0 */	addi r30, r3, 0x27c0
/* 8004DCE8 00049948  48 00 00 1C */	b lbl_8004DD04
lbl_8004DCEC:
/* 8004DCEC 0004994C  80 1E 00 34 */	lwz r0, 0x34(r30)
/* 8004DCF0 00049950  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8004DCF4 00049954  41 82 00 0C */	beq lbl_8004DD00
/* 8004DCF8 00049958  7F C3 F3 78 */	mr r3, r30
/* 8004DCFC 0004995C  48 00 02 7D */	bl func_8004DF78
lbl_8004DD00:
/* 8004DD00 00049960  3B DE 00 68 */	addi r30, r30, 0x68
lbl_8004DD04:
/* 8004DD04 00049964  7C 1E F8 40 */	cmplw r30, r31
/* 8004DD08 00049968  40 82 FF E4 */	bne lbl_8004DCEC
/* 8004DD0C 0004996C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004DD10 00049970  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004DD14 00049974  83 C1 00 08 */	lwz r30, 8(r1)
/* 8004DD18 00049978  7C 08 03 A6 */	mtlr r0
/* 8004DD1C 0004997C  38 21 00 10 */	addi r1, r1, 0x10
/* 8004DD20 00049980  4E 80 00 20 */	blr

.global func_8004DD24
func_8004DD24:
/* 8004DD24 00049984  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004DD28 00049988  7C 08 02 A6 */	mflr r0
/* 8004DD2C 0004998C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004DD30 00049990  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004DD34 00049994  3B E3 34 C0 */	addi r31, r3, 0x34c0
/* 8004DD38 00049998  93 C1 00 08 */	stw r30, 8(r1)
/* 8004DD3C 0004999C  3B C3 27 C0 */	addi r30, r3, 0x27c0
/* 8004DD40 000499A0  48 00 00 38 */	b lbl_8004DD78
lbl_8004DD44:
/* 8004DD44 000499A4  80 1E 00 34 */	lwz r0, 0x34(r30)
/* 8004DD48 000499A8  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8004DD4C 000499AC  41 82 00 28 */	beq lbl_8004DD74
/* 8004DD50 000499B0  80 1E 00 44 */	lwz r0, 0x44(r30)
/* 8004DD54 000499B4  28 00 00 0C */	cmplwi r0, 0xc
/* 8004DD58 000499B8  41 82 00 1C */	beq lbl_8004DD74
/* 8004DD5C 000499BC  28 00 00 64 */	cmplwi r0, 0x64
/* 8004DD60 000499C0  41 80 00 0C */	blt lbl_8004DD6C
/* 8004DD64 000499C4  28 00 00 73 */	cmplwi r0, 0x73
/* 8004DD68 000499C8  40 81 00 0C */	ble lbl_8004DD74
lbl_8004DD6C:
/* 8004DD6C 000499CC  7F C3 F3 78 */	mr r3, r30
/* 8004DD70 000499D0  48 00 02 09 */	bl func_8004DF78
lbl_8004DD74:
/* 8004DD74 000499D4  3B DE 00 68 */	addi r30, r30, 0x68
lbl_8004DD78:
/* 8004DD78 000499D8  7C 1E F8 40 */	cmplw r30, r31
/* 8004DD7C 000499DC  40 82 FF C8 */	bne lbl_8004DD44
/* 8004DD80 000499E0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004DD84 000499E4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004DD88 000499E8  83 C1 00 08 */	lwz r30, 8(r1)
/* 8004DD8C 000499EC  7C 08 03 A6 */	mtlr r0
/* 8004DD90 000499F0  38 21 00 10 */	addi r1, r1, 0x10
/* 8004DD94 000499F4  4E 80 00 20 */	blr

.global func_8004DD98
func_8004DD98:
/* 8004DD98 000499F8  38 83 1D 40 */	addi r4, r3, 0x1d40
/* 8004DD9C 000499FC  38 03 27 C0 */	addi r0, r3, 0x27c0
/* 8004DDA0 00049A00  48 00 00 1C */	b lbl_8004DDBC
lbl_8004DDA4:
/* 8004DDA4 00049A04  80 64 00 00 */	lwz r3, 0(r4)
/* 8004DDA8 00049A08  54 63 07 FF */	clrlwi. r3, r3, 0x1f
/* 8004DDAC 00049A0C  40 82 00 0C */	bne lbl_8004DDB8
/* 8004DDB0 00049A10  7C 83 23 78 */	mr r3, r4
/* 8004DDB4 00049A14  4E 80 00 20 */	blr
lbl_8004DDB8:
/* 8004DDB8 00049A18  38 84 00 38 */	addi r4, r4, 0x38
lbl_8004DDBC:
/* 8004DDBC 00049A1C  7C 04 00 40 */	cmplw r4, r0
/* 8004DDC0 00049A20  40 82 FF E4 */	bne lbl_8004DDA4
/* 8004DDC4 00049A24  38 60 00 00 */	li r3, 0
/* 8004DDC8 00049A28  4E 80 00 20 */	blr

.global func_8004DDCC
func_8004DDCC:
/* 8004DDCC 00049A2C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004DDD0 00049A30  7C 08 02 A6 */	mflr r0
/* 8004DDD4 00049A34  2C 04 00 00 */	cmpwi r4, 0
/* 8004DDD8 00049A38  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004DDDC 00049A3C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004DDE0 00049A40  41 82 00 34 */	beq lbl_8004DE14
/* 8004DDE4 00049A44  80 04 00 00 */	lwz r0, 0(r4)
/* 8004DDE8 00049A48  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8004DDEC 00049A4C  41 82 00 28 */	beq lbl_8004DE14
/* 8004DDF0 00049A50  83 E4 00 24 */	lwz r31, 0x24(r4)
/* 8004DDF4 00049A54  7C 83 23 78 */	mr r3, r4
/* 8004DDF8 00049A58  4B FF 9C B1 */	bl func_80047AA8
/* 8004DDFC 00049A5C  80 1F 00 88 */	lwz r0, 0x88(r31)
/* 8004DE00 00049A60  34 00 FF FF */	addic. r0, r0, -1
/* 8004DE04 00049A64  90 1F 00 88 */	stw r0, 0x88(r31)
/* 8004DE08 00049A68  40 82 00 0C */	bne lbl_8004DE14
/* 8004DE0C 00049A6C  7F E3 FB 78 */	mr r3, r31
/* 8004DE10 00049A70  4B FF A9 8D */	bl func_8004879C
lbl_8004DE14:
/* 8004DE14 00049A74  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004DE18 00049A78  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004DE1C 00049A7C  7C 08 03 A6 */	mtlr r0
/* 8004DE20 00049A80  38 21 00 10 */	addi r1, r1, 0x10
/* 8004DE24 00049A84  4E 80 00 20 */	blr

.global func_8004DE28
func_8004DE28:
/* 8004DE28 00049A88  38 00 00 20 */	li r0, 0x20
/* 8004DE2C 00049A8C  7C 65 1B 78 */	mr r5, r3
/* 8004DE30 00049A90  38 C0 00 00 */	li r6, 0
/* 8004DE34 00049A94  7C 09 03 A6 */	mtctr r0
lbl_8004DE38:
/* 8004DE38 00049A98  80 05 28 10 */	lwz r0, 0x2810(r5)
/* 8004DE3C 00049A9C  7C 04 00 40 */	cmplw r4, r0
/* 8004DE40 00049AA0  40 82 00 14 */	bne lbl_8004DE54
/* 8004DE44 00049AA4  1C 06 00 68 */	mulli r0, r6, 0x68
/* 8004DE48 00049AA8  7C 63 02 14 */	add r3, r3, r0
/* 8004DE4C 00049AAC  38 63 27 C0 */	addi r3, r3, 0x27c0
/* 8004DE50 00049AB0  4E 80 00 20 */	blr
lbl_8004DE54:
/* 8004DE54 00049AB4  38 A5 00 68 */	addi r5, r5, 0x68
/* 8004DE58 00049AB8  38 C6 00 01 */	addi r6, r6, 1
/* 8004DE5C 00049ABC  42 00 FF DC */	bdnz lbl_8004DE38
/* 8004DE60 00049AC0  38 60 00 00 */	li r3, 0
/* 8004DE64 00049AC4  4E 80 00 20 */	blr

.global func_8004DE68
func_8004DE68:
/* 8004DE68 00049AC8  38 A0 00 01 */	li r5, 1
/* 8004DE6C 00049ACC  38 6D 98 28 */	addi r3, r13, lbl_8063EAE8-_SDA_BASE_
/* 8004DE70 00049AD0  38 80 00 04 */	li r4, 4
/* 8004DE74 00049AD4  38 00 00 00 */	li r0, 0
/* 8004DE78 00049AD8  98 AD 98 28 */	stb r5, lbl_8063EAE8-_SDA_BASE_(r13)
/* 8004DE7C 00049ADC  B0 83 00 02 */	sth r4, 2(r3)
/* 8004DE80 00049AE0  98 03 00 04 */	stb r0, 4(r3)
/* 8004DE84 00049AE4  4E 80 00 20 */	blr