summaryrefslogtreecommitdiff
path: root/asm/code_8004F37C.s
blob: d51b431a3fbc3ffc5675b6b219bacba8efc36b65 (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
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
.include "macros.inc"

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

.global func_8004F37C
func_8004F37C:
/* 8004F37C 0004AFDC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004F380 0004AFE0  7C 08 02 A6 */	mflr r0
/* 8004F384 0004AFE4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004F388 0004AFE8  80 6D 98 50 */	lwz r3, lbl_8063EB10-_SDA_BASE_(r13)
/* 8004F38C 0004AFEC  2C 03 00 00 */	cmpwi r3, 0
/* 8004F390 0004AFF0  41 82 00 0C */	beq lbl_8004F39C
/* 8004F394 0004AFF4  38 80 00 01 */	li r4, 1
/* 8004F398 0004AFF8  48 00 00 D1 */	bl func_8004F468
lbl_8004F39C:
/* 8004F39C 0004AFFC  38 60 00 08 */	li r3, 8
/* 8004F3A0 0004B000  48 18 B6 91 */	bl __nw__FUl
/* 8004F3A4 0004B004  2C 03 00 00 */	cmpwi r3, 0
/* 8004F3A8 0004B008  41 82 00 08 */	beq lbl_8004F3B0
/* 8004F3AC 0004B00C  48 00 00 79 */	bl func_8004F424
lbl_8004F3B0:
/* 8004F3B0 0004B010  3C 80 80 05 */	lis r4, lbl_8004F3E4@ha
/* 8004F3B4 0004B014  3C A0 80 05 */	lis r5, lbl_8004F418@ha
/* 8004F3B8 0004B018  90 6D 98 50 */	stw r3, lbl_8063EB10-_SDA_BASE_(r13)
/* 8004F3BC 0004B01C  38 84 F3 E4 */	addi r4, r4, lbl_8004F3E4@l
/* 8004F3C0 0004B020  80 6D A4 B8 */	lwz r3, lbl_8063F778-_SDA_BASE_(r13)
/* 8004F3C4 0004B024  38 A5 F4 18 */	addi r5, r5, lbl_8004F418@l
/* 8004F3C8 0004B028  38 C0 00 03 */	li r6, 3
/* 8004F3CC 0004B02C  38 E0 00 0C */	li r7, 0xc
/* 8004F3D0 0004B030  48 1E F7 89 */	bl func_8023EB58
/* 8004F3D4 0004B034  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004F3D8 0004B038  7C 08 03 A6 */	mtlr r0
/* 8004F3DC 0004B03C  38 21 00 10 */	addi r1, r1, 0x10
/* 8004F3E0 0004B040  4E 80 00 20 */	blr
lbl_8004F3E4:
/* 8004F3E4 0004B044  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004F3E8 0004B048  7C 08 02 A6 */	mflr r0
/* 8004F3EC 0004B04C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004F3F0 0004B050  80 0D 98 50 */	lwz r0, lbl_8063EB10-_SDA_BASE_(r13)
/* 8004F3F4 0004B054  2C 00 00 00 */	cmpwi r0, 0
/* 8004F3F8 0004B058  41 82 00 10 */	beq lbl_8004F408
/* 8004F3FC 0004B05C  4B FB 7F A1 */	bl func_8000739C
/* 8004F400 0004B060  80 6D 98 50 */	lwz r3, lbl_8063EB10-_SDA_BASE_(r13)
/* 8004F404 0004B064  48 00 00 C9 */	bl func_8004F4CC
lbl_8004F408:
/* 8004F408 0004B068  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004F40C 0004B06C  7C 08 03 A6 */	mtlr r0
/* 8004F410 0004B070  38 21 00 10 */	addi r1, r1, 0x10
/* 8004F414 0004B074  4E 80 00 20 */	blr
lbl_8004F418:
/* 8004F418 0004B078  4E 80 00 20 */	blr

.global func_8004F41C
func_8004F41C:
/* 8004F41C 0004B07C  80 6D 98 50 */	lwz r3, lbl_8063EB10-_SDA_BASE_(r13)
/* 8004F420 0004B080  4E 80 00 20 */	blr

.global func_8004F424
func_8004F424:
/* 8004F424 0004B084  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004F428 0004B088  7C 08 02 A6 */	mflr r0
/* 8004F42C 0004B08C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004F430 0004B090  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004F434 0004B094  7C 7F 1B 78 */	mr r31, r3
/* 8004F438 0004B098  38 60 01 74 */	li r3, 0x174
/* 8004F43C 0004B09C  48 18 B5 F5 */	bl __nw__FUl
/* 8004F440 0004B0A0  2C 03 00 00 */	cmpwi r3, 0
/* 8004F444 0004B0A4  41 82 00 08 */	beq lbl_8004F44C
/* 8004F448 0004B0A8  48 00 00 8D */	bl func_8004F4D4
lbl_8004F44C:
/* 8004F44C 0004B0AC  90 7F 00 04 */	stw r3, 4(r31)
/* 8004F450 0004B0B0  7F E3 FB 78 */	mr r3, r31
/* 8004F454 0004B0B4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004F458 0004B0B8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004F45C 0004B0BC  7C 08 03 A6 */	mtlr r0
/* 8004F460 0004B0C0  38 21 00 10 */	addi r1, r1, 0x10
/* 8004F464 0004B0C4  4E 80 00 20 */	blr

.global func_8004F468
func_8004F468:
/* 8004F468 0004B0C8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004F46C 0004B0CC  7C 08 02 A6 */	mflr r0
/* 8004F470 0004B0D0  2C 03 00 00 */	cmpwi r3, 0
/* 8004F474 0004B0D4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004F478 0004B0D8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004F47C 0004B0DC  7C 9F 23 78 */	mr r31, r4
/* 8004F480 0004B0E0  93 C1 00 08 */	stw r30, 8(r1)
/* 8004F484 0004B0E4  7C 7E 1B 78 */	mr r30, r3
/* 8004F488 0004B0E8  41 82 00 20 */	beq lbl_8004F4A8
/* 8004F48C 0004B0EC  80 63 00 04 */	lwz r3, 4(r3)
/* 8004F490 0004B0F0  38 80 00 01 */	li r4, 1
/* 8004F494 0004B0F4  48 00 01 29 */	bl func_8004F5BC
/* 8004F498 0004B0F8  2C 1F 00 00 */	cmpwi r31, 0
/* 8004F49C 0004B0FC  40 81 00 0C */	ble lbl_8004F4A8
/* 8004F4A0 0004B100  7F C3 F3 78 */	mr r3, r30
/* 8004F4A4 0004B104  48 18 B6 15 */	bl __dl__FPv
lbl_8004F4A8:
/* 8004F4A8 0004B108  7F C3 F3 78 */	mr r3, r30
/* 8004F4AC 0004B10C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004F4B0 0004B110  83 C1 00 08 */	lwz r30, 8(r1)
/* 8004F4B4 0004B114  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004F4B8 0004B118  7C 08 03 A6 */	mtlr r0
/* 8004F4BC 0004B11C  38 21 00 10 */	addi r1, r1, 0x10
/* 8004F4C0 0004B120  4E 80 00 20 */	blr

.global func_8004F4C4
func_8004F4C4:
/* 8004F4C4 0004B124  80 63 00 04 */	lwz r3, 4(r3)
/* 8004F4C8 0004B128  4E 80 00 20 */	blr

.global func_8004F4CC
func_8004F4CC:
/* 8004F4CC 0004B12C  80 63 00 04 */	lwz r3, 4(r3)
/* 8004F4D0 0004B130  48 00 04 30 */	b lbl_8004F900

.global func_8004F4D4
func_8004F4D4:
/* 8004F4D4 0004B134  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004F4D8 0004B138  7C 08 02 A6 */	mflr r0
/* 8004F4DC 0004B13C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004F4E0 0004B140  38 00 00 00 */	li r0, 0
/* 8004F4E4 0004B144  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8004F4E8 0004B148  3B E3 01 24 */	addi r31, r3, 0x124
/* 8004F4EC 0004B14C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8004F4F0 0004B150  3B C3 00 4C */	addi r30, r3, 0x4c
/* 8004F4F4 0004B154  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004F4F8 0004B158  7C 7D 1B 78 */	mr r29, r3
/* 8004F4FC 0004B15C  90 03 00 00 */	stw r0, 0(r3)
lbl_8004F500:
/* 8004F500 0004B160  7F C3 F3 78 */	mr r3, r30
/* 8004F504 0004B164  48 00 0E 21 */	bl func_80050324
/* 8004F508 0004B168  3B DE 00 24 */	addi r30, r30, 0x24
/* 8004F50C 0004B16C  7C 1E F8 40 */	cmplw r30, r31
/* 8004F510 0004B170  41 80 FF F0 */	blt lbl_8004F500
/* 8004F514 0004B174  7F E3 FB 78 */	mr r3, r31
/* 8004F518 0004B178  48 00 16 1D */	bl func_80050B34
/* 8004F51C 0004B17C  C0 62 84 68 */	lfs f3, lbl_80640A68-_SDA2_BASE_(r2)
/* 8004F520 0004B180  38 A0 00 00 */	li r5, 0
/* 8004F524 0004B184  C0 22 84 70 */	lfs f1, lbl_80640A70-_SDA2_BASE_(r2)
/* 8004F528 0004B188  38 00 FF FF */	li r0, -1
/* 8004F52C 0004B18C  C0 42 84 6C */	lfs f2, lbl_80640A6C-_SDA2_BASE_(r2)
/* 8004F530 0004B190  7F A3 EB 78 */	mr r3, r29
/* 8004F534 0004B194  C0 02 84 74 */	lfs f0, lbl_80640A74-_SDA2_BASE_(r2)
/* 8004F538 0004B198  38 80 00 00 */	li r4, 0
/* 8004F53C 0004B19C  90 BD 00 2C */	stw r5, 0x2c(r29)
/* 8004F540 0004B1A0  90 BD 00 30 */	stw r5, 0x30(r29)
/* 8004F544 0004B1A4  90 BD 00 34 */	stw r5, 0x34(r29)
/* 8004F548 0004B1A8  90 BD 00 38 */	stw r5, 0x38(r29)
/* 8004F54C 0004B1AC  90 BD 00 3C */	stw r5, 0x3c(r29)
/* 8004F550 0004B1B0  90 BD 00 40 */	stw r5, 0x40(r29)
/* 8004F554 0004B1B4  90 BD 00 44 */	stw r5, 0x44(r29)
/* 8004F558 0004B1B8  90 BD 00 48 */	stw r5, 0x48(r29)
/* 8004F55C 0004B1BC  90 1D 01 60 */	stw r0, 0x160(r29)
/* 8004F560 0004B1C0  98 BD 01 70 */	stb r5, 0x170(r29)
/* 8004F564 0004B1C4  D0 7D 00 14 */	stfs f3, 0x14(r29)
/* 8004F568 0004B1C8  D0 5D 00 18 */	stfs f2, 0x18(r29)
/* 8004F56C 0004B1CC  D0 7D 00 1C */	stfs f3, 0x1c(r29)
/* 8004F570 0004B1D0  D0 7D 00 20 */	stfs f3, 0x20(r29)
/* 8004F574 0004B1D4  D0 7D 00 24 */	stfs f3, 0x24(r29)
/* 8004F578 0004B1D8  D0 7D 00 28 */	stfs f3, 0x28(r29)
/* 8004F57C 0004B1DC  D0 3D 00 04 */	stfs f1, 4(r29)
/* 8004F580 0004B1E0  D0 3D 00 08 */	stfs f1, 8(r29)
/* 8004F584 0004B1E4  D0 3D 00 0C */	stfs f1, 0xc(r29)
/* 8004F588 0004B1E8  D0 3D 00 10 */	stfs f1, 0x10(r29)
/* 8004F58C 0004B1EC  D0 1D 01 64 */	stfs f0, 0x164(r29)
/* 8004F590 0004B1F0  D0 7D 01 68 */	stfs f3, 0x168(r29)
/* 8004F594 0004B1F4  D0 7D 01 6C */	stfs f3, 0x16c(r29)
/* 8004F598 0004B1F8  48 00 00 95 */	bl func_8004F62C
/* 8004F59C 0004B1FC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004F5A0 0004B200  7F A3 EB 78 */	mr r3, r29
/* 8004F5A4 0004B204  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8004F5A8 0004B208  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8004F5AC 0004B20C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004F5B0 0004B210  7C 08 03 A6 */	mtlr r0
/* 8004F5B4 0004B214  38 21 00 20 */	addi r1, r1, 0x20
/* 8004F5B8 0004B218  4E 80 00 20 */	blr

.global func_8004F5BC
func_8004F5BC:
/* 8004F5BC 0004B21C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004F5C0 0004B220  7C 08 02 A6 */	mflr r0
/* 8004F5C4 0004B224  2C 03 00 00 */	cmpwi r3, 0
/* 8004F5C8 0004B228  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004F5CC 0004B22C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004F5D0 0004B230  7C 9F 23 78 */	mr r31, r4
/* 8004F5D4 0004B234  93 C1 00 08 */	stw r30, 8(r1)
/* 8004F5D8 0004B238  7C 7E 1B 78 */	mr r30, r3
/* 8004F5DC 0004B23C  41 82 00 34 */	beq lbl_8004F610
/* 8004F5E0 0004B240  80 63 00 00 */	lwz r3, 0(r3)
/* 8004F5E4 0004B244  2C 03 00 00 */	cmpwi r3, 0
/* 8004F5E8 0004B248  41 82 00 18 */	beq lbl_8004F600
/* 8004F5EC 0004B24C  81 83 01 00 */	lwz r12, 0x100(r3)
/* 8004F5F0 0004B250  38 80 00 01 */	li r4, 1
/* 8004F5F4 0004B254  81 8C 00 08 */	lwz r12, 8(r12)
/* 8004F5F8 0004B258  7D 89 03 A6 */	mtctr r12
/* 8004F5FC 0004B25C  4E 80 04 21 */	bctrl
lbl_8004F600:
/* 8004F600 0004B260  2C 1F 00 00 */	cmpwi r31, 0
/* 8004F604 0004B264  40 81 00 0C */	ble lbl_8004F610
/* 8004F608 0004B268  7F C3 F3 78 */	mr r3, r30
/* 8004F60C 0004B26C  48 18 B4 AD */	bl __dl__FPv
lbl_8004F610:
/* 8004F610 0004B270  7F C3 F3 78 */	mr r3, r30
/* 8004F614 0004B274  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004F618 0004B278  83 C1 00 08 */	lwz r30, 8(r1)
/* 8004F61C 0004B27C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004F620 0004B280  7C 08 03 A6 */	mtlr r0
/* 8004F624 0004B284  38 21 00 10 */	addi r1, r1, 0x10
/* 8004F628 0004B288  4E 80 00 20 */	blr

.global func_8004F62C
func_8004F62C:
/* 8004F62C 0004B28C  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8004F630 0004B290  7C 08 02 A6 */	mflr r0
/* 8004F634 0004B294  90 01 00 44 */	stw r0, 0x44(r1)
/* 8004F638 0004B298  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 8004F63C 0004B29C  7C 7F 1B 78 */	mr r31, r3
/* 8004F640 0004B2A0  93 C1 00 38 */	stw r30, 0x38(r1)
/* 8004F644 0004B2A4  7C 9E 23 78 */	mr r30, r4
/* 8004F648 0004B2A8  80 A3 00 00 */	lwz r5, 0(r3)
/* 8004F64C 0004B2AC  2C 05 00 00 */	cmpwi r5, 0
/* 8004F650 0004B2B0  41 82 00 10 */	beq lbl_8004F660
/* 8004F654 0004B2B4  80 03 01 60 */	lwz r0, 0x160(r3)
/* 8004F658 0004B2B8  7C 00 20 00 */	cmpw r0, r4
/* 8004F65C 0004B2BC  41 82 02 8C */	beq lbl_8004F8E8
lbl_8004F660:
/* 8004F660 0004B2C0  2C 05 00 00 */	cmpwi r5, 0
/* 8004F664 0004B2C4  41 82 00 20 */	beq lbl_8004F684
/* 8004F668 0004B2C8  41 82 00 1C */	beq lbl_8004F684
/* 8004F66C 0004B2CC  81 85 01 00 */	lwz r12, 0x100(r5)
/* 8004F670 0004B2D0  7C A3 2B 78 */	mr r3, r5
/* 8004F674 0004B2D4  38 80 00 01 */	li r4, 1
/* 8004F678 0004B2D8  81 8C 00 08 */	lwz r12, 8(r12)
/* 8004F67C 0004B2DC  7D 89 03 A6 */	mtctr r12
/* 8004F680 0004B2E0  4E 80 04 21 */	bctrl
lbl_8004F684:
/* 8004F684 0004B2E4  2C 1E 00 01 */	cmpwi r30, 1
/* 8004F688 0004B2E8  93 DF 01 60 */	stw r30, 0x160(r31)
/* 8004F68C 0004B2EC  41 82 00 18 */	beq lbl_8004F6A4
/* 8004F690 0004B2F0  40 80 00 08 */	bge lbl_8004F698
/* 8004F694 0004B2F4  48 00 00 C0 */	b lbl_8004F754
lbl_8004F698:
/* 8004F698 0004B2F8  2C 1E 00 03 */	cmpwi r30, 3
/* 8004F69C 0004B2FC  40 80 00 B8 */	bge lbl_8004F754
/* 8004F6A0 0004B300  48 00 00 5C */	b lbl_8004F6FC
lbl_8004F6A4:
/* 8004F6A4 0004B304  48 18 B4 85 */	bl func_801DAB28
/* 8004F6A8 0004B308  2C 03 00 00 */	cmpwi r3, 0
/* 8004F6AC 0004B30C  41 82 00 14 */	beq lbl_8004F6C0
/* 8004F6B0 0004B310  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8004F6B4 0004B314  38 80 01 38 */	li r4, 0x138
/* 8004F6B8 0004B318  48 18 B5 DD */	bl func_801DAC94
/* 8004F6BC 0004B31C  48 00 00 08 */	b lbl_8004F6C4
lbl_8004F6C0:
/* 8004F6C0 0004B320  38 60 00 00 */	li r3, 0
lbl_8004F6C4:
/* 8004F6C4 0004B324  2C 03 00 00 */	cmpwi r3, 0
/* 8004F6C8 0004B328  41 82 00 2C */	beq lbl_8004F6F4
/* 8004F6CC 0004B32C  38 00 00 FF */	li r0, 0xff
/* 8004F6D0 0004B330  38 E1 00 10 */	addi r7, r1, 0x10
/* 8004F6D4 0004B334  98 01 00 10 */	stb r0, 0x10(r1)
/* 8004F6D8 0004B338  38 80 00 01 */	li r4, 1
/* 8004F6DC 0004B33C  38 A0 00 01 */	li r5, 1
/* 8004F6E0 0004B340  38 C0 00 00 */	li r6, 0
/* 8004F6E4 0004B344  98 01 00 11 */	stb r0, 0x11(r1)
/* 8004F6E8 0004B348  98 01 00 12 */	stb r0, 0x12(r1)
/* 8004F6EC 0004B34C  98 01 00 13 */	stb r0, 0x13(r1)
/* 8004F6F0 0004B350  48 19 68 8D */	bl func_801E5F7C
lbl_8004F6F4:
/* 8004F6F4 0004B354  90 7F 00 00 */	stw r3, 0(r31)
/* 8004F6F8 0004B358  48 00 00 B8 */	b lbl_8004F7B0
lbl_8004F6FC:
/* 8004F6FC 0004B35C  48 18 B4 2D */	bl func_801DAB28
/* 8004F700 0004B360  2C 03 00 00 */	cmpwi r3, 0
/* 8004F704 0004B364  41 82 00 14 */	beq lbl_8004F718
/* 8004F708 0004B368  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8004F70C 0004B36C  38 80 01 38 */	li r4, 0x138
/* 8004F710 0004B370  48 18 B5 85 */	bl func_801DAC94
/* 8004F714 0004B374  48 00 00 08 */	b lbl_8004F71C
lbl_8004F718:
/* 8004F718 0004B378  38 60 00 00 */	li r3, 0
lbl_8004F71C:
/* 8004F71C 0004B37C  2C 03 00 00 */	cmpwi r3, 0
/* 8004F720 0004B380  41 82 00 2C */	beq lbl_8004F74C
/* 8004F724 0004B384  38 00 00 FF */	li r0, 0xff
/* 8004F728 0004B388  38 E1 00 0C */	addi r7, r1, 0xc
/* 8004F72C 0004B38C  98 01 00 0C */	stb r0, 0xc(r1)
/* 8004F730 0004B390  38 80 00 02 */	li r4, 2
/* 8004F734 0004B394  38 A0 00 01 */	li r5, 1
/* 8004F738 0004B398  38 C0 00 00 */	li r6, 0
/* 8004F73C 0004B39C  98 01 00 0D */	stb r0, 0xd(r1)
/* 8004F740 0004B3A0  98 01 00 0E */	stb r0, 0xe(r1)
/* 8004F744 0004B3A4  98 01 00 0F */	stb r0, 0xf(r1)
/* 8004F748 0004B3A8  48 19 68 35 */	bl func_801E5F7C
lbl_8004F74C:
/* 8004F74C 0004B3AC  90 7F 00 00 */	stw r3, 0(r31)
/* 8004F750 0004B3B0  48 00 00 60 */	b lbl_8004F7B0
lbl_8004F754:
/* 8004F754 0004B3B4  48 18 B3 D5 */	bl func_801DAB28
/* 8004F758 0004B3B8  2C 03 00 00 */	cmpwi r3, 0
/* 8004F75C 0004B3BC  41 82 00 14 */	beq lbl_8004F770
/* 8004F760 0004B3C0  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8004F764 0004B3C4  38 80 01 38 */	li r4, 0x138
/* 8004F768 0004B3C8  48 18 B5 2D */	bl func_801DAC94
/* 8004F76C 0004B3CC  48 00 00 08 */	b lbl_8004F774
lbl_8004F770:
/* 8004F770 0004B3D0  38 60 00 00 */	li r3, 0
lbl_8004F774:
/* 8004F774 0004B3D4  2C 03 00 00 */	cmpwi r3, 0
/* 8004F778 0004B3D8  41 82 00 2C */	beq lbl_8004F7A4
/* 8004F77C 0004B3DC  38 00 00 FF */	li r0, 0xff
/* 8004F780 0004B3E0  38 E1 00 08 */	addi r7, r1, 8
/* 8004F784 0004B3E4  98 01 00 08 */	stb r0, 8(r1)
/* 8004F788 0004B3E8  38 80 00 00 */	li r4, 0
/* 8004F78C 0004B3EC  38 A0 00 01 */	li r5, 1
/* 8004F790 0004B3F0  38 C0 00 01 */	li r6, 1
/* 8004F794 0004B3F4  98 01 00 09 */	stb r0, 9(r1)
/* 8004F798 0004B3F8  98 01 00 0A */	stb r0, 0xa(r1)
/* 8004F79C 0004B3FC  98 01 00 0B */	stb r0, 0xb(r1)
/* 8004F7A0 0004B400  48 19 67 DD */	bl func_801E5F7C
lbl_8004F7A4:
/* 8004F7A4 0004B404  38 00 00 00 */	li r0, 0
/* 8004F7A8 0004B408  90 7F 00 00 */	stw r3, 0(r31)
/* 8004F7AC 0004B40C  90 1F 01 60 */	stw r0, 0x160(r31)
lbl_8004F7B0:
/* 8004F7B0 0004B410  88 9F 01 70 */	lbz r4, 0x170(r31)
/* 8004F7B4 0004B414  7F E3 FB 78 */	mr r3, r31
/* 8004F7B8 0004B418  48 00 02 81 */	bl func_8004FA38
/* 8004F7BC 0004B41C  7F E3 FB 78 */	mr r3, r31
/* 8004F7C0 0004B420  38 9F 00 14 */	addi r4, r31, 0x14
/* 8004F7C4 0004B424  48 00 05 1D */	bl func_8004FCE0
/* 8004F7C8 0004B428  7F E3 FB 78 */	mr r3, r31
/* 8004F7CC 0004B42C  38 9F 00 20 */	addi r4, r31, 0x20
/* 8004F7D0 0004B430  48 00 06 29 */	bl func_8004FDF8
/* 8004F7D4 0004B434  7F E3 FB 78 */	mr r3, r31
/* 8004F7D8 0004B438  38 9F 01 64 */	addi r4, r31, 0x164
/* 8004F7DC 0004B43C  48 00 08 45 */	bl func_80050020
/* 8004F7E0 0004B440  C0 1F 00 04 */	lfs f0, 4(r31)
/* 8004F7E4 0004B444  7F E3 FB 78 */	mr r3, r31
/* 8004F7E8 0004B448  38 81 00 14 */	addi r4, r1, 0x14
/* 8004F7EC 0004B44C  FC 00 00 1E */	fctiwz f0, f0
/* 8004F7F0 0004B450  D8 01 00 18 */	stfd f0, 0x18(r1)
/* 8004F7F4 0004B454  80 01 00 1C */	lwz r0, 0x1c(r1)
/* 8004F7F8 0004B458  98 01 00 14 */	stb r0, 0x14(r1)
/* 8004F7FC 0004B45C  C0 1F 00 08 */	lfs f0, 8(r31)
/* 8004F800 0004B460  FC 00 00 1E */	fctiwz f0, f0
/* 8004F804 0004B464  D8 01 00 20 */	stfd f0, 0x20(r1)
/* 8004F808 0004B468  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004F80C 0004B46C  98 01 00 15 */	stb r0, 0x15(r1)
/* 8004F810 0004B470  C0 1F 00 0C */	lfs f0, 0xc(r31)
/* 8004F814 0004B474  FC 00 00 1E */	fctiwz f0, f0
/* 8004F818 0004B478  D8 01 00 28 */	stfd f0, 0x28(r1)
/* 8004F81C 0004B47C  80 01 00 2C */	lwz r0, 0x2c(r1)
/* 8004F820 0004B480  98 01 00 16 */	stb r0, 0x16(r1)
/* 8004F824 0004B484  C0 1F 00 10 */	lfs f0, 0x10(r31)
/* 8004F828 0004B488  FC 00 00 1E */	fctiwz f0, f0
/* 8004F82C 0004B48C  D8 01 00 30 */	stfd f0, 0x30(r1)
/* 8004F830 0004B490  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8004F834 0004B494  98 01 00 17 */	stb r0, 0x17(r1)
/* 8004F838 0004B498  48 00 06 BD */	bl func_8004FEF4
/* 8004F83C 0004B49C  38 00 00 02 */	li r0, 2
/* 8004F840 0004B4A0  7F E4 FB 78 */	mr r4, r31
/* 8004F844 0004B4A4  38 A0 00 00 */	li r5, 0
/* 8004F848 0004B4A8  7C 09 03 A6 */	mtctr r0
lbl_8004F84C:
/* 8004F84C 0004B4AC  80 64 00 2C */	lwz r3, 0x2c(r4)
/* 8004F850 0004B4B0  2C 03 00 00 */	cmpwi r3, 0
/* 8004F854 0004B4B4  41 82 00 18 */	beq lbl_8004F86C
/* 8004F858 0004B4B8  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 8004F85C 0004B4BC  2C 03 00 00 */	cmpwi r3, 0
/* 8004F860 0004B4C0  41 82 00 0C */	beq lbl_8004F86C
/* 8004F864 0004B4C4  80 1F 00 00 */	lwz r0, 0(r31)
/* 8004F868 0004B4C8  90 03 00 40 */	stw r0, 0x40(r3)
lbl_8004F86C:
/* 8004F86C 0004B4CC  80 64 00 30 */	lwz r3, 0x30(r4)
/* 8004F870 0004B4D0  2C 03 00 00 */	cmpwi r3, 0
/* 8004F874 0004B4D4  41 82 00 18 */	beq lbl_8004F88C
/* 8004F878 0004B4D8  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 8004F87C 0004B4DC  2C 03 00 00 */	cmpwi r3, 0
/* 8004F880 0004B4E0  41 82 00 0C */	beq lbl_8004F88C
/* 8004F884 0004B4E4  80 1F 00 00 */	lwz r0, 0(r31)
/* 8004F888 0004B4E8  90 03 00 40 */	stw r0, 0x40(r3)
lbl_8004F88C:
/* 8004F88C 0004B4EC  80 64 00 34 */	lwz r3, 0x34(r4)
/* 8004F890 0004B4F0  2C 03 00 00 */	cmpwi r3, 0
/* 8004F894 0004B4F4  41 82 00 18 */	beq lbl_8004F8AC
/* 8004F898 0004B4F8  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 8004F89C 0004B4FC  2C 03 00 00 */	cmpwi r3, 0
/* 8004F8A0 0004B500  41 82 00 0C */	beq lbl_8004F8AC
/* 8004F8A4 0004B504  80 1F 00 00 */	lwz r0, 0(r31)
/* 8004F8A8 0004B508  90 03 00 40 */	stw r0, 0x40(r3)
lbl_8004F8AC:
/* 8004F8AC 0004B50C  80 64 00 38 */	lwz r3, 0x38(r4)
/* 8004F8B0 0004B510  2C 03 00 00 */	cmpwi r3, 0
/* 8004F8B4 0004B514  41 82 00 18 */	beq lbl_8004F8CC
/* 8004F8B8 0004B518  80 63 0C 04 */	lwz r3, 0xc04(r3)
/* 8004F8BC 0004B51C  2C 03 00 00 */	cmpwi r3, 0
/* 8004F8C0 0004B520  41 82 00 0C */	beq lbl_8004F8CC
/* 8004F8C4 0004B524  80 1F 00 00 */	lwz r0, 0(r31)
/* 8004F8C8 0004B528  90 03 00 40 */	stw r0, 0x40(r3)
lbl_8004F8CC:
/* 8004F8CC 0004B52C  38 84 00 10 */	addi r4, r4, 0x10
/* 8004F8D0 0004B530  38 A5 00 03 */	addi r5, r5, 3
/* 8004F8D4 0004B534  42 00 FF 78 */	bdnz lbl_8004F84C
/* 8004F8D8 0004B538  80 7F 00 00 */	lwz r3, 0(r31)
/* 8004F8DC 0004B53C  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 8004F8E0 0004B540  60 00 00 02 */	ori r0, r0, 2
/* 8004F8E4 0004B544  B0 03 00 10 */	sth r0, 0x10(r3)
lbl_8004F8E8:
/* 8004F8E8 0004B548  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8004F8EC 0004B54C  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 8004F8F0 0004B550  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 8004F8F4 0004B554  7C 08 03 A6 */	mtlr r0
/* 8004F8F8 0004B558  38 21 00 40 */	addi r1, r1, 0x40
/* 8004F8FC 0004B55C  4E 80 00 20 */	blr
lbl_8004F900:
/* 8004F900 0004B560  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 8004F904 0004B564  7C 08 02 A6 */	mflr r0
/* 8004F908 0004B568  90 01 00 54 */	stw r0, 0x54(r1)
/* 8004F90C 0004B56C  DB E1 00 40 */	stfd f31, 0x40(r1)
/* 8004F910 0004B570  F3 E1 00 48 */	psq_st f31, 72(r1), 0, qr0
/* 8004F914 0004B574  FF E0 08 90 */	fmr f31, f1
/* 8004F918 0004B578  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 8004F91C 0004B57C  3B E3 00 4C */	addi r31, r3, 0x4c
/* 8004F920 0004B580  93 C1 00 38 */	stw r30, 0x38(r1)
/* 8004F924 0004B584  3B C0 00 00 */	li r30, 0
/* 8004F928 0004B588  93 A1 00 34 */	stw r29, 0x34(r1)
/* 8004F92C 0004B58C  7C 7D 1B 78 */	mr r29, r3
lbl_8004F930:
/* 8004F930 0004B590  81 9F 00 20 */	lwz r12, 0x20(r31)
/* 8004F934 0004B594  FC 20 F8 90 */	fmr f1, f31
/* 8004F938 0004B598  7F E3 FB 78 */	mr r3, r31
/* 8004F93C 0004B59C  81 8C 00 08 */	lwz r12, 8(r12)
/* 8004F940 0004B5A0  7D 89 03 A6 */	mtctr r12
/* 8004F944 0004B5A4  4E 80 04 21 */	bctrl
/* 8004F948 0004B5A8  2C 03 00 00 */	cmpwi r3, 0
/* 8004F94C 0004B5AC  41 82 00 3C */	beq lbl_8004F988
/* 8004F950 0004B5B0  80 7D 00 00 */	lwz r3, 0(r29)
/* 8004F954 0004B5B4  2C 03 00 00 */	cmpwi r3, 0
/* 8004F958 0004B5B8  41 82 00 30 */	beq lbl_8004F988
/* 8004F95C 0004B5BC  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 8004F960 0004B5C0  38 80 00 01 */	li r4, 1
/* 8004F964 0004B5C4  D0 03 00 20 */	stfs f0, 0x20(r3)
/* 8004F968 0004B5C8  C0 1D 00 18 */	lfs f0, 0x18(r29)
/* 8004F96C 0004B5CC  D0 03 00 24 */	stfs f0, 0x24(r3)
/* 8004F970 0004B5D0  C0 1D 00 1C */	lfs f0, 0x1c(r29)
/* 8004F974 0004B5D4  D0 03 00 28 */	stfs f0, 0x28(r3)
/* 8004F978 0004B5D8  48 1A 2D 41 */	bl func_801F26B8
/* 8004F97C 0004B5DC  80 7D 00 00 */	lwz r3, 0(r29)
/* 8004F980 0004B5E0  38 9D 00 20 */	addi r4, r29, 0x20
/* 8004F984 0004B5E4  48 19 6B 59 */	bl func_801E64DC
lbl_8004F988:
/* 8004F988 0004B5E8  3B DE 00 01 */	addi r30, r30, 1
/* 8004F98C 0004B5EC  3B FF 00 24 */	addi r31, r31, 0x24
/* 8004F990 0004B5F0  2C 1E 00 06 */	cmpwi r30, 6
/* 8004F994 0004B5F4  41 80 FF 9C */	blt lbl_8004F930
/* 8004F998 0004B5F8  81 9D 01 5C */	lwz r12, 0x15c(r29)
/* 8004F99C 0004B5FC  FC 20 F8 90 */	fmr f1, f31
/* 8004F9A0 0004B600  38 7D 01 24 */	addi r3, r29, 0x124
/* 8004F9A4 0004B604  81 8C 00 08 */	lwz r12, 8(r12)
/* 8004F9A8 0004B608  7D 89 03 A6 */	mtctr r12
/* 8004F9AC 0004B60C  4E 80 04 21 */	bctrl
/* 8004F9B0 0004B610  2C 03 00 00 */	cmpwi r3, 0
/* 8004F9B4 0004B614  41 82 00 60 */	beq lbl_8004FA14
/* 8004F9B8 0004B618  C0 1D 00 04 */	lfs f0, 4(r29)
/* 8004F9BC 0004B61C  C0 5D 00 08 */	lfs f2, 8(r29)
/* 8004F9C0 0004B620  FC 60 00 1E */	fctiwz f3, f0
/* 8004F9C4 0004B624  C0 3D 00 0C */	lfs f1, 0xc(r29)
/* 8004F9C8 0004B628  C0 1D 00 10 */	lfs f0, 0x10(r29)
/* 8004F9CC 0004B62C  FC 40 10 1E */	fctiwz f2, f2
/* 8004F9D0 0004B630  FC 20 08 1E */	fctiwz f1, f1
/* 8004F9D4 0004B634  80 DD 00 00 */	lwz r6, 0(r29)
/* 8004F9D8 0004B638  FC 00 00 1E */	fctiwz f0, f0
/* 8004F9DC 0004B63C  D8 61 00 08 */	stfd f3, 8(r1)
/* 8004F9E0 0004B640  2C 06 00 00 */	cmpwi r6, 0
/* 8004F9E4 0004B644  D8 41 00 10 */	stfd f2, 0x10(r1)
/* 8004F9E8 0004B648  80 01 00 0C */	lwz r0, 0xc(r1)
/* 8004F9EC 0004B64C  D8 21 00 18 */	stfd f1, 0x18(r1)
/* 8004F9F0 0004B650  80 61 00 14 */	lwz r3, 0x14(r1)
/* 8004F9F4 0004B654  D8 01 00 20 */	stfd f0, 0x20(r1)
/* 8004F9F8 0004B658  80 81 00 1C */	lwz r4, 0x1c(r1)
/* 8004F9FC 0004B65C  80 A1 00 24 */	lwz r5, 0x24(r1)
/* 8004FA00 0004B660  41 82 00 14 */	beq lbl_8004FA14
/* 8004FA04 0004B664  98 06 01 10 */	stb r0, 0x110(r6)
/* 8004FA08 0004B668  98 66 01 11 */	stb r3, 0x111(r6)
/* 8004FA0C 0004B66C  98 86 01 12 */	stb r4, 0x112(r6)
/* 8004FA10 0004B670  98 A6 01 13 */	stb r5, 0x113(r6)
lbl_8004FA14:
/* 8004FA14 0004B674  E3 E1 00 48 */	psq_l f31, 72(r1), 0, qr0
/* 8004FA18 0004B678  80 01 00 54 */	lwz r0, 0x54(r1)
/* 8004FA1C 0004B67C  CB E1 00 40 */	lfd f31, 0x40(r1)
/* 8004FA20 0004B680  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 8004FA24 0004B684  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 8004FA28 0004B688  83 A1 00 34 */	lwz r29, 0x34(r1)
/* 8004FA2C 0004B68C  7C 08 03 A6 */	mtlr r0
/* 8004FA30 0004B690  38 21 00 50 */	addi r1, r1, 0x50
/* 8004FA34 0004B694  4E 80 00 20 */	blr

.global func_8004FA38
func_8004FA38:
/* 8004FA38 0004B698  2C 04 00 00 */	cmpwi r4, 0
/* 8004FA3C 0004B69C  98 83 01 70 */	stb r4, 0x170(r3)
/* 8004FA40 0004B6A0  41 82 00 20 */	beq lbl_8004FA60
/* 8004FA44 0004B6A4  80 83 00 00 */	lwz r4, 0(r3)
/* 8004FA48 0004B6A8  2C 04 00 00 */	cmpwi r4, 0
/* 8004FA4C 0004B6AC  41 82 00 14 */	beq lbl_8004FA60
/* 8004FA50 0004B6B0  80 04 01 04 */	lwz r0, 0x104(r4)
/* 8004FA54 0004B6B4  60 00 00 01 */	ori r0, r0, 1
/* 8004FA58 0004B6B8  90 04 01 04 */	stw r0, 0x104(r4)
/* 8004FA5C 0004B6BC  4E 80 00 20 */	blr
lbl_8004FA60:
/* 8004FA60 0004B6C0  80 63 00 00 */	lwz r3, 0(r3)
/* 8004FA64 0004B6C4  2C 03 00 00 */	cmpwi r3, 0
/* 8004FA68 0004B6C8  4D 82 00 20 */	beqlr
/* 8004FA6C 0004B6CC  80 03 01 04 */	lwz r0, 0x104(r3)
/* 8004FA70 0004B6D0  54 00 00 3C */	rlwinm r0, r0, 0, 0, 0x1e
/* 8004FA74 0004B6D4  90 03 01 04 */	stw r0, 0x104(r3)
/* 8004FA78 0004B6D8  4E 80 00 20 */	blr

.global func_8004FA7C
func_8004FA7C:
/* 8004FA7C 0004B6DC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004FA80 0004B6E0  7C 08 02 A6 */	mflr r0
/* 8004FA84 0004B6E4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004FA88 0004B6E8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004FA8C 0004B6EC  7C 9F 23 78 */	mr r31, r4
/* 8004FA90 0004B6F0  93 C1 00 08 */	stw r30, 8(r1)
/* 8004FA94 0004B6F4  7C 7E 1B 78 */	mr r30, r3
/* 8004FA98 0004B6F8  48 00 06 2D */	bl func_800500C4
/* 8004FA9C 0004B6FC  2C 03 FF FF */	cmpwi r3, -1
/* 8004FAA0 0004B700  41 81 00 58 */	bgt lbl_8004FAF8
/* 8004FAA4 0004B704  2C 1F 00 00 */	cmpwi r31, 0
/* 8004FAA8 0004B708  41 82 00 18 */	beq lbl_8004FAC0
/* 8004FAAC 0004B70C  80 7F 0C 04 */	lwz r3, 0xc04(r31)
/* 8004FAB0 0004B710  2C 03 00 00 */	cmpwi r3, 0
/* 8004FAB4 0004B714  41 82 00 0C */	beq lbl_8004FAC0
/* 8004FAB8 0004B718  80 1E 00 00 */	lwz r0, 0(r30)
/* 8004FABC 0004B71C  90 03 00 40 */	stw r0, 0x40(r3)
lbl_8004FAC0:
/* 8004FAC0 0004B720  38 00 00 08 */	li r0, 8
/* 8004FAC4 0004B724  7F C3 F3 78 */	mr r3, r30
/* 8004FAC8 0004B728  38 80 00 00 */	li r4, 0
/* 8004FACC 0004B72C  7C 09 03 A6 */	mtctr r0
lbl_8004FAD0:
/* 8004FAD0 0004B730  80 03 00 2C */	lwz r0, 0x2c(r3)
/* 8004FAD4 0004B734  2C 00 00 00 */	cmpwi r0, 0
/* 8004FAD8 0004B738  40 82 00 14 */	bne lbl_8004FAEC
/* 8004FADC 0004B73C  54 80 10 3A */	slwi r0, r4, 2
/* 8004FAE0 0004B740  7C 7E 02 14 */	add r3, r30, r0
/* 8004FAE4 0004B744  93 E3 00 2C */	stw r31, 0x2c(r3)
/* 8004FAE8 0004B748  48 00 00 10 */	b lbl_8004FAF8
lbl_8004FAEC:
/* 8004FAEC 0004B74C  38 63 00 04 */	addi r3, r3, 4
/* 8004FAF0 0004B750  38 84 00 01 */	addi r4, r4, 1
/* 8004FAF4 0004B754  42 00 FF DC */	bdnz lbl_8004FAD0
lbl_8004FAF8:
/* 8004FAF8 0004B758  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004FAFC 0004B75C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004FB00 0004B760  83 C1 00 08 */	lwz r30, 8(r1)
/* 8004FB04 0004B764  7C 08 03 A6 */	mtlr r0
/* 8004FB08 0004B768  38 21 00 10 */	addi r1, r1, 0x10
/* 8004FB0C 0004B76C  4E 80 00 20 */	blr

.global func_8004FB10
func_8004FB10:
/* 8004FB10 0004B770  38 00 00 02 */	li r0, 2
/* 8004FB14 0004B774  38 C0 00 00 */	li r6, 0
/* 8004FB18 0004B778  38 80 00 00 */	li r4, 0
/* 8004FB1C 0004B77C  7C 09 03 A6 */	mtctr r0
lbl_8004FB20:
/* 8004FB20 0004B780  80 A3 00 2C */	lwz r5, 0x2c(r3)
/* 8004FB24 0004B784  2C 05 00 00 */	cmpwi r5, 0
/* 8004FB28 0004B788  41 82 00 18 */	beq lbl_8004FB40
/* 8004FB2C 0004B78C  80 A5 0C 04 */	lwz r5, 0xc04(r5)
/* 8004FB30 0004B790  2C 05 00 00 */	cmpwi r5, 0
/* 8004FB34 0004B794  41 82 00 08 */	beq lbl_8004FB3C
/* 8004FB38 0004B798  90 85 00 40 */	stw r4, 0x40(r5)
lbl_8004FB3C:
/* 8004FB3C 0004B79C  90 83 00 2C */	stw r4, 0x2c(r3)
lbl_8004FB40:
/* 8004FB40 0004B7A0  80 A3 00 30 */	lwz r5, 0x30(r3)
/* 8004FB44 0004B7A4  2C 05 00 00 */	cmpwi r5, 0
/* 8004FB48 0004B7A8  41 82 00 18 */	beq lbl_8004FB60
/* 8004FB4C 0004B7AC  80 A5 0C 04 */	lwz r5, 0xc04(r5)
/* 8004FB50 0004B7B0  2C 05 00 00 */	cmpwi r5, 0
/* 8004FB54 0004B7B4  41 82 00 08 */	beq lbl_8004FB5C
/* 8004FB58 0004B7B8  90 85 00 40 */	stw r4, 0x40(r5)
lbl_8004FB5C:
/* 8004FB5C 0004B7BC  90 83 00 30 */	stw r4, 0x30(r3)
lbl_8004FB60:
/* 8004FB60 0004B7C0  80 A3 00 34 */	lwz r5, 0x34(r3)
/* 8004FB64 0004B7C4  2C 05 00 00 */	cmpwi r5, 0
/* 8004FB68 0004B7C8  41 82 00 18 */	beq lbl_8004FB80
/* 8004FB6C 0004B7CC  80 A5 0C 04 */	lwz r5, 0xc04(r5)
/* 8004FB70 0004B7D0  2C 05 00 00 */	cmpwi r5, 0
/* 8004FB74 0004B7D4  41 82 00 08 */	beq lbl_8004FB7C
/* 8004FB78 0004B7D8  90 85 00 40 */	stw r4, 0x40(r5)
lbl_8004FB7C:
/* 8004FB7C 0004B7DC  90 83 00 34 */	stw r4, 0x34(r3)
lbl_8004FB80:
/* 8004FB80 0004B7E0  80 A3 00 38 */	lwz r5, 0x38(r3)
/* 8004FB84 0004B7E4  2C 05 00 00 */	cmpwi r5, 0
/* 8004FB88 0004B7E8  41 82 00 18 */	beq lbl_8004FBA0
/* 8004FB8C 0004B7EC  80 A5 0C 04 */	lwz r5, 0xc04(r5)
/* 8004FB90 0004B7F0  2C 05 00 00 */	cmpwi r5, 0
/* 8004FB94 0004B7F4  41 82 00 08 */	beq lbl_8004FB9C
/* 8004FB98 0004B7F8  90 85 00 40 */	stw r4, 0x40(r5)
lbl_8004FB9C:
/* 8004FB9C 0004B7FC  90 83 00 38 */	stw r4, 0x38(r3)
lbl_8004FBA0:
/* 8004FBA0 0004B800  38 63 00 10 */	addi r3, r3, 0x10
/* 8004FBA4 0004B804  38 C6 00 03 */	addi r6, r6, 3
/* 8004FBA8 0004B808  42 00 FF 78 */	bdnz lbl_8004FB20
/* 8004FBAC 0004B80C  4E 80 00 20 */	blr

.global func_8004FBB0
func_8004FBB0:
/* 8004FBB0 0004B810  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004FBB4 0004B814  7C 08 02 A6 */	mflr r0
/* 8004FBB8 0004B818  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004FBBC 0004B81C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004FBC0 0004B820  7C 7F 1B 78 */	mr r31, r3
/* 8004FBC4 0004B824  48 00 05 01 */	bl func_800500C4
/* 8004FBC8 0004B828  2C 03 00 00 */	cmpwi r3, 0
/* 8004FBCC 0004B82C  41 80 00 34 */	blt lbl_8004FC00
/* 8004FBD0 0004B830  54 60 10 3A */	slwi r0, r3, 2
/* 8004FBD4 0004B834  7C 7F 02 14 */	add r3, r31, r0
/* 8004FBD8 0004B838  80 83 00 2C */	lwz r4, 0x2c(r3)
/* 8004FBDC 0004B83C  2C 04 00 00 */	cmpwi r4, 0
/* 8004FBE0 0004B840  41 82 00 08 */	beq lbl_8004FBE8
/* 8004FBE4 0004B844  80 84 0C 04 */	lwz r4, 0xc04(r4)
lbl_8004FBE8:
/* 8004FBE8 0004B848  2C 04 00 00 */	cmpwi r4, 0
/* 8004FBEC 0004B84C  41 82 00 0C */	beq lbl_8004FBF8
/* 8004FBF0 0004B850  38 00 00 00 */	li r0, 0
/* 8004FBF4 0004B854  90 04 00 40 */	stw r0, 0x40(r4)
lbl_8004FBF8:
/* 8004FBF8 0004B858  38 00 00 00 */	li r0, 0
/* 8004FBFC 0004B85C  90 03 00 2C */	stw r0, 0x2c(r3)
lbl_8004FC00:
/* 8004FC00 0004B860  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004FC04 0004B864  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004FC08 0004B868  7C 08 03 A6 */	mtlr r0
/* 8004FC0C 0004B86C  38 21 00 10 */	addi r1, r1, 0x10
/* 8004FC10 0004B870  4E 80 00 20 */	blr

.global func_8004FC14
func_8004FC14:
/* 8004FC14 0004B874  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004FC18 0004B878  7C 08 02 A6 */	mflr r0
/* 8004FC1C 0004B87C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004FC20 0004B880  54 A0 00 01 */	rlwinm. r0, r5, 0, 0, 0
/* 8004FC24 0004B884  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8004FC28 0004B888  7C BF 2B 78 */	mr r31, r5
/* 8004FC2C 0004B88C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8004FC30 0004B890  7C 9E 23 78 */	mr r30, r4
/* 8004FC34 0004B894  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004FC38 0004B898  7C 7D 1B 78 */	mr r29, r3
/* 8004FC3C 0004B89C  40 82 00 4C */	bne lbl_8004FC88
/* 8004FC40 0004B8A0  54 A0 07 39 */	rlwinm. r0, r5, 0, 0x1c, 0x1c
/* 8004FC44 0004B8A4  41 82 00 2C */	beq lbl_8004FC70
/* 8004FC48 0004B8A8  54 A0 07 FF */	clrlwi. r0, r5, 0x1f
/* 8004FC4C 0004B8AC  54 BF 07 76 */	rlwinm r31, r5, 0, 0x1d, 0x1b
/* 8004FC50 0004B8B0  41 82 00 08 */	beq lbl_8004FC58
/* 8004FC54 0004B8B4  63 FF 00 40 */	ori r31, r31, 0x40
lbl_8004FC58:
/* 8004FC58 0004B8B8  57 E0 07 BD */	rlwinm. r0, r31, 0, 0x1e, 0x1e
/* 8004FC5C 0004B8BC  41 82 00 08 */	beq lbl_8004FC64
/* 8004FC60 0004B8C0  63 FF 00 80 */	ori r31, r31, 0x80
lbl_8004FC64:
/* 8004FC64 0004B8C4  57 E0 07 7B */	rlwinm. r0, r31, 0, 0x1d, 0x1d
/* 8004FC68 0004B8C8  41 82 00 08 */	beq lbl_8004FC70
/* 8004FC6C 0004B8CC  63 FF 01 00 */	ori r31, r31, 0x100
lbl_8004FC70:
/* 8004FC70 0004B8D0  57 E0 07 FF */	clrlwi. r0, r31, 0x1f
/* 8004FC74 0004B8D4  40 82 00 08 */	bne lbl_8004FC7C
/* 8004FC78 0004B8D8  63 FF 00 09 */	ori r31, r31, 9
lbl_8004FC7C:
/* 8004FC7C 0004B8DC  57 E0 07 BD */	rlwinm. r0, r31, 0, 0x1e, 0x1e
/* 8004FC80 0004B8E0  40 82 00 08 */	bne lbl_8004FC88
/* 8004FC84 0004B8E4  63 FF 00 12 */	ori r31, r31, 0x12
lbl_8004FC88:
/* 8004FC88 0004B8E8  2C 04 00 00 */	cmpwi r4, 0
/* 8004FC8C 0004B8EC  41 82 00 38 */	beq lbl_8004FCC4
/* 8004FC90 0004B8F0  80 83 00 00 */	lwz r4, 0(r3)
/* 8004FC94 0004B8F4  2C 04 00 00 */	cmpwi r4, 0
/* 8004FC98 0004B8F8  41 82 00 2C */	beq lbl_8004FCC4
/* 8004FC9C 0004B8FC  80 64 00 C0 */	lwz r3, 0xc0(r4)
/* 8004FCA0 0004B900  2C 03 00 00 */	cmpwi r3, 0
/* 8004FCA4 0004B904  41 82 00 08 */	beq lbl_8004FCAC
/* 8004FCA8 0004B908  48 1A 25 81 */	bl func_801F2228
lbl_8004FCAC:
/* 8004FCAC 0004B90C  80 BD 00 00 */	lwz r5, 0(r29)
/* 8004FCB0 0004B910  7F C3 F3 78 */	mr r3, r30
/* 8004FCB4 0004B914  57 E4 06 3E */	clrlwi r4, r31, 0x18
/* 8004FCB8 0004B918  38 C0 00 00 */	li r6, 0
/* 8004FCBC 0004B91C  38 E0 00 03 */	li r7, 3
/* 8004FCC0 0004B920  48 1A 24 CD */	bl func_801F218C
lbl_8004FCC4:
/* 8004FCC4 0004B924  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004FCC8 0004B928  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004FCCC 0004B92C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8004FCD0 0004B930  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8004FCD4 0004B934  7C 08 03 A6 */	mtlr r0
/* 8004FCD8 0004B938  38 21 00 20 */	addi r1, r1, 0x20
/* 8004FCDC 0004B93C  4E 80 00 20 */	blr

.global func_8004FCE0
func_8004FCE0:
/* 8004FCE0 0004B940  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004FCE4 0004B944  7C 08 02 A6 */	mflr r0
/* 8004FCE8 0004B948  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004FCEC 0004B94C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004FCF0 0004B950  7C 9F 23 78 */	mr r31, r4
/* 8004FCF4 0004B954  93 C1 00 08 */	stw r30, 8(r1)
/* 8004FCF8 0004B958  7C 7E 1B 78 */	mr r30, r3
/* 8004FCFC 0004B95C  80 A3 00 00 */	lwz r5, 0(r3)
/* 8004FD00 0004B960  2C 05 00 00 */	cmpwi r5, 0
/* 8004FD04 0004B964  41 82 00 28 */	beq lbl_8004FD2C
/* 8004FD08 0004B968  C0 04 00 00 */	lfs f0, 0(r4)
/* 8004FD0C 0004B96C  7C A3 2B 78 */	mr r3, r5
/* 8004FD10 0004B970  D0 05 00 20 */	stfs f0, 0x20(r5)
/* 8004FD14 0004B974  C0 04 00 04 */	lfs f0, 4(r4)
/* 8004FD18 0004B978  D0 05 00 24 */	stfs f0, 0x24(r5)
/* 8004FD1C 0004B97C  C0 04 00 08 */	lfs f0, 8(r4)
/* 8004FD20 0004B980  38 80 00 01 */	li r4, 1
/* 8004FD24 0004B984  D0 05 00 28 */	stfs f0, 0x28(r5)
/* 8004FD28 0004B988  48 1A 29 91 */	bl func_801F26B8
lbl_8004FD2C:
/* 8004FD2C 0004B98C  C0 1F 00 00 */	lfs f0, 0(r31)
/* 8004FD30 0004B990  D0 1E 00 14 */	stfs f0, 0x14(r30)
/* 8004FD34 0004B994  C0 1F 00 04 */	lfs f0, 4(r31)
/* 8004FD38 0004B998  D0 1E 00 18 */	stfs f0, 0x18(r30)
/* 8004FD3C 0004B99C  C0 1F 00 08 */	lfs f0, 8(r31)
/* 8004FD40 0004B9A0  D0 1E 00 1C */	stfs f0, 0x1c(r30)
/* 8004FD44 0004B9A4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004FD48 0004B9A8  83 C1 00 08 */	lwz r30, 8(r1)
/* 8004FD4C 0004B9AC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004FD50 0004B9B0  7C 08 03 A6 */	mtlr r0
/* 8004FD54 0004B9B4  38 21 00 10 */	addi r1, r1, 0x10
/* 8004FD58 0004B9B8  4E 80 00 20 */	blr

.global func_8004FD5C
func_8004FD5C:
/* 8004FD5C 0004B9BC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004FD60 0004B9C0  7C 08 02 A6 */	mflr r0
/* 8004FD64 0004B9C4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004FD68 0004B9C8  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 8004FD6C 0004B9CC  FF E0 08 90 */	fmr f31, f1
/* 8004FD70 0004B9D0  93 E1 00 14 */	stw r31, 0x14(r1)
/* 8004FD74 0004B9D4  7C BF 2B 78 */	mr r31, r5
/* 8004FD78 0004B9D8  7F E7 FB 78 */	mr r7, r31
/* 8004FD7C 0004B9DC  93 C1 00 10 */	stw r30, 0x10(r1)
/* 8004FD80 0004B9E0  7C 9E 23 78 */	mr r30, r4
/* 8004FD84 0004B9E4  38 83 00 14 */	addi r4, r3, 0x14
/* 8004FD88 0004B9E8  93 A1 00 0C */	stw r29, 0xc(r1)
/* 8004FD8C 0004B9EC  7C 7D 1B 78 */	mr r29, r3
/* 8004FD90 0004B9F0  7F C5 F3 78 */	mr r5, r30
/* 8004FD94 0004B9F4  7C 86 23 78 */	mr r6, r4
/* 8004FD98 0004B9F8  38 63 00 4C */	addi r3, r3, 0x4c
/* 8004FD9C 0004B9FC  48 00 05 A1 */	bl func_8005033C
/* 8004FDA0 0004BA00  FC 20 F8 90 */	fmr f1, f31
/* 8004FDA4 0004BA04  38 9D 00 18 */	addi r4, r29, 0x18
/* 8004FDA8 0004BA08  7C 86 23 78 */	mr r6, r4
/* 8004FDAC 0004BA0C  7F E7 FB 78 */	mr r7, r31
/* 8004FDB0 0004BA10  38 7D 00 70 */	addi r3, r29, 0x70
/* 8004FDB4 0004BA14  38 BE 00 04 */	addi r5, r30, 4
/* 8004FDB8 0004BA18  48 00 05 85 */	bl func_8005033C
/* 8004FDBC 0004BA1C  FC 20 F8 90 */	fmr f1, f31
/* 8004FDC0 0004BA20  38 9D 00 1C */	addi r4, r29, 0x1c
/* 8004FDC4 0004BA24  7C 86 23 78 */	mr r6, r4
/* 8004FDC8 0004BA28  7F E7 FB 78 */	mr r7, r31
/* 8004FDCC 0004BA2C  38 7D 00 94 */	addi r3, r29, 0x94
/* 8004FDD0 0004BA30  38 BE 00 08 */	addi r5, r30, 8
/* 8004FDD4 0004BA34  48 00 05 69 */	bl func_8005033C
/* 8004FDD8 0004BA38  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004FDDC 0004BA3C  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 8004FDE0 0004BA40  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 8004FDE4 0004BA44  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 8004FDE8 0004BA48  83 A1 00 0C */	lwz r29, 0xc(r1)
/* 8004FDEC 0004BA4C  7C 08 03 A6 */	mtlr r0
/* 8004FDF0 0004BA50  38 21 00 20 */	addi r1, r1, 0x20
/* 8004FDF4 0004BA54  4E 80 00 20 */	blr

.global func_8004FDF8
func_8004FDF8:
/* 8004FDF8 0004BA58  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004FDFC 0004BA5C  7C 08 02 A6 */	mflr r0
/* 8004FE00 0004BA60  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004FE04 0004BA64  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004FE08 0004BA68  7C 9F 23 78 */	mr r31, r4
/* 8004FE0C 0004BA6C  93 C1 00 08 */	stw r30, 8(r1)
/* 8004FE10 0004BA70  7C 7E 1B 78 */	mr r30, r3
/* 8004FE14 0004BA74  80 03 00 00 */	lwz r0, 0(r3)
/* 8004FE18 0004BA78  2C 00 00 00 */	cmpwi r0, 0
/* 8004FE1C 0004BA7C  41 82 00 0C */	beq lbl_8004FE28
/* 8004FE20 0004BA80  7C 03 03 78 */	mr r3, r0
/* 8004FE24 0004BA84  48 19 66 B9 */	bl func_801E64DC
lbl_8004FE28:
/* 8004FE28 0004BA88  C0 1F 00 00 */	lfs f0, 0(r31)
/* 8004FE2C 0004BA8C  D0 1E 00 20 */	stfs f0, 0x20(r30)
/* 8004FE30 0004BA90  C0 1F 00 04 */	lfs f0, 4(r31)
/* 8004FE34 0004BA94  D0 1E 00 24 */	stfs f0, 0x24(r30)
/* 8004FE38 0004BA98  C0 1F 00 08 */	lfs f0, 8(r31)
/* 8004FE3C 0004BA9C  D0 1E 00 28 */	stfs f0, 0x28(r30)
/* 8004FE40 0004BAA0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004FE44 0004BAA4  83 C1 00 08 */	lwz r30, 8(r1)
/* 8004FE48 0004BAA8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004FE4C 0004BAAC  7C 08 03 A6 */	mtlr r0
/* 8004FE50 0004BAB0  38 21 00 10 */	addi r1, r1, 0x10
/* 8004FE54 0004BAB4  4E 80 00 20 */	blr

.global func_8004FE58
func_8004FE58:
/* 8004FE58 0004BAB8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004FE5C 0004BABC  7C 08 02 A6 */	mflr r0
/* 8004FE60 0004BAC0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004FE64 0004BAC4  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 8004FE68 0004BAC8  FF E0 08 90 */	fmr f31, f1
/* 8004FE6C 0004BACC  93 E1 00 14 */	stw r31, 0x14(r1)
/* 8004FE70 0004BAD0  7C BF 2B 78 */	mr r31, r5
/* 8004FE74 0004BAD4  7F E7 FB 78 */	mr r7, r31
/* 8004FE78 0004BAD8  93 C1 00 10 */	stw r30, 0x10(r1)
/* 8004FE7C 0004BADC  7C 9E 23 78 */	mr r30, r4
/* 8004FE80 0004BAE0  38 83 00 20 */	addi r4, r3, 0x20
/* 8004FE84 0004BAE4  93 A1 00 0C */	stw r29, 0xc(r1)
/* 8004FE88 0004BAE8  7C 7D 1B 78 */	mr r29, r3
/* 8004FE8C 0004BAEC  7F C5 F3 78 */	mr r5, r30
/* 8004FE90 0004BAF0  7C 86 23 78 */	mr r6, r4
/* 8004FE94 0004BAF4  38 63 00 B8 */	addi r3, r3, 0xb8
/* 8004FE98 0004BAF8  48 00 04 A5 */	bl func_8005033C
/* 8004FE9C 0004BAFC  FC 20 F8 90 */	fmr f1, f31
/* 8004FEA0 0004BB00  38 9D 00 24 */	addi r4, r29, 0x24
/* 8004FEA4 0004BB04  7C 86 23 78 */	mr r6, r4
/* 8004FEA8 0004BB08  7F E7 FB 78 */	mr r7, r31
/* 8004FEAC 0004BB0C  38 7D 00 DC */	addi r3, r29, 0xdc
/* 8004FEB0 0004BB10  38 BE 00 04 */	addi r5, r30, 4
/* 8004FEB4 0004BB14  48 00 04 89 */	bl func_8005033C
/* 8004FEB8 0004BB18  FC 20 F8 90 */	fmr f1, f31
/* 8004FEBC 0004BB1C  38 9D 00 28 */	addi r4, r29, 0x28
/* 8004FEC0 0004BB20  7C 86 23 78 */	mr r6, r4
/* 8004FEC4 0004BB24  7F E7 FB 78 */	mr r7, r31
/* 8004FEC8 0004BB28  38 7D 01 00 */	addi r3, r29, 0x100
/* 8004FECC 0004BB2C  38 BE 00 08 */	addi r5, r30, 8
/* 8004FED0 0004BB30  48 00 04 6D */	bl func_8005033C
/* 8004FED4 0004BB34  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8004FED8 0004BB38  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 8004FEDC 0004BB3C  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 8004FEE0 0004BB40  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 8004FEE4 0004BB44  83 A1 00 0C */	lwz r29, 0xc(r1)
/* 8004FEE8 0004BB48  7C 08 03 A6 */	mtlr r0
/* 8004FEEC 0004BB4C  38 21 00 20 */	addi r1, r1, 0x20
/* 8004FEF0 0004BB50  4E 80 00 20 */	blr

.global func_8004FEF4
func_8004FEF4:
/* 8004FEF4 0004BB54  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004FEF8 0004BB58  3C 00 43 30 */	lis r0, 0x4330
/* 8004FEFC 0004BB5C  80 A3 00 00 */	lwz r5, 0(r3)
/* 8004FF00 0004BB60  90 01 00 08 */	stw r0, 8(r1)
/* 8004FF04 0004BB64  2C 05 00 00 */	cmpwi r5, 0
/* 8004FF08 0004BB68  90 01 00 10 */	stw r0, 0x10(r1)
/* 8004FF0C 0004BB6C  41 82 00 24 */	beq lbl_8004FF30
/* 8004FF10 0004BB70  88 04 00 00 */	lbz r0, 0(r4)
/* 8004FF14 0004BB74  98 05 01 10 */	stb r0, 0x110(r5)
/* 8004FF18 0004BB78  88 04 00 01 */	lbz r0, 1(r4)
/* 8004FF1C 0004BB7C  98 05 01 11 */	stb r0, 0x111(r5)
/* 8004FF20 0004BB80  88 04 00 02 */	lbz r0, 2(r4)
/* 8004FF24 0004BB84  98 05 01 12 */	stb r0, 0x112(r5)
/* 8004FF28 0004BB88  88 04 00 03 */	lbz r0, 3(r4)
/* 8004FF2C 0004BB8C  98 05 01 13 */	stb r0, 0x113(r5)
lbl_8004FF30:
/* 8004FF30 0004BB90  88 04 00 00 */	lbz r0, 0(r4)
/* 8004FF34 0004BB94  C8 22 84 78 */	lfd f1, lbl_80640A78-_SDA2_BASE_(r2)
/* 8004FF38 0004BB98  90 01 00 0C */	stw r0, 0xc(r1)
/* 8004FF3C 0004BB9C  C8 01 00 08 */	lfd f0, 8(r1)
/* 8004FF40 0004BBA0  EC 00 08 28 */	fsubs f0, f0, f1
/* 8004FF44 0004BBA4  D0 03 00 04 */	stfs f0, 4(r3)
/* 8004FF48 0004BBA8  88 04 00 01 */	lbz r0, 1(r4)
/* 8004FF4C 0004BBAC  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004FF50 0004BBB0  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8004FF54 0004BBB4  EC 00 08 28 */	fsubs f0, f0, f1
/* 8004FF58 0004BBB8  D0 03 00 08 */	stfs f0, 8(r3)
/* 8004FF5C 0004BBBC  88 04 00 02 */	lbz r0, 2(r4)
/* 8004FF60 0004BBC0  90 01 00 0C */	stw r0, 0xc(r1)
/* 8004FF64 0004BBC4  C8 01 00 08 */	lfd f0, 8(r1)
/* 8004FF68 0004BBC8  EC 00 08 28 */	fsubs f0, f0, f1
/* 8004FF6C 0004BBCC  D0 03 00 0C */	stfs f0, 0xc(r3)
/* 8004FF70 0004BBD0  88 04 00 03 */	lbz r0, 3(r4)
/* 8004FF74 0004BBD4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004FF78 0004BBD8  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8004FF7C 0004BBDC  EC 00 08 28 */	fsubs f0, f0, f1
/* 8004FF80 0004BBE0  D0 03 00 10 */	stfs f0, 0x10(r3)
/* 8004FF84 0004BBE4  38 21 00 20 */	addi r1, r1, 0x20
/* 8004FF88 0004BBE8  4E 80 00 20 */	blr

.global func_8004FF8C
func_8004FF8C:
/* 8004FF8C 0004BBEC  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8004FF90 0004BBF0  7C 08 02 A6 */	mflr r0
/* 8004FF94 0004BBF4  3C C0 43 30 */	lis r6, 0x4330
/* 8004FF98 0004BBF8  7C A7 2B 78 */	mr r7, r5
/* 8004FF9C 0004BBFC  90 01 00 34 */	stw r0, 0x34(r1)
/* 8004FFA0 0004BC00  38 A1 00 08 */	addi r5, r1, 8
/* 8004FFA4 0004BC04  C8 42 84 78 */	lfd f2, lbl_80640A78-_SDA2_BASE_(r2)
/* 8004FFA8 0004BC08  88 04 00 00 */	lbz r0, 0(r4)
/* 8004FFAC 0004BC0C  90 C1 00 18 */	stw r6, 0x18(r1)
/* 8004FFB0 0004BC10  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8004FFB4 0004BC14  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8004FFB8 0004BC18  90 C1 00 20 */	stw r6, 0x20(r1)
/* 8004FFBC 0004BC1C  EC 00 10 28 */	fsubs f0, f0, f2
/* 8004FFC0 0004BC20  D0 01 00 08 */	stfs f0, 8(r1)
/* 8004FFC4 0004BC24  88 04 00 01 */	lbz r0, 1(r4)
/* 8004FFC8 0004BC28  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004FFCC 0004BC2C  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 8004FFD0 0004BC30  EC 00 10 28 */	fsubs f0, f0, f2
/* 8004FFD4 0004BC34  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 8004FFD8 0004BC38  88 04 00 02 */	lbz r0, 2(r4)
/* 8004FFDC 0004BC3C  90 01 00 1C */	stw r0, 0x1c(r1)
/* 8004FFE0 0004BC40  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8004FFE4 0004BC44  EC 00 10 28 */	fsubs f0, f0, f2
/* 8004FFE8 0004BC48  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 8004FFEC 0004BC4C  88 04 00 03 */	lbz r0, 3(r4)
/* 8004FFF0 0004BC50  38 83 00 04 */	addi r4, r3, 4
/* 8004FFF4 0004BC54  7C 86 23 78 */	mr r6, r4
/* 8004FFF8 0004BC58  38 63 01 24 */	addi r3, r3, 0x124
/* 8004FFFC 0004BC5C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80050000 0004BC60  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 80050004 0004BC64  EC 00 10 28 */	fsubs f0, f0, f2
/* 80050008 0004BC68  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8005000C 0004BC6C  48 00 0B 41 */	bl func_80050B4C
/* 80050010 0004BC70  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80050014 0004BC74  7C 08 03 A6 */	mtlr r0
/* 80050018 0004BC78  38 21 00 30 */	addi r1, r1, 0x30
/* 8005001C 0004BC7C  4E 80 00 20 */	blr

.global func_80050020
func_80050020:
/* 80050020 0004BC80  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80050024 0004BC84  7C 08 02 A6 */	mflr r0
/* 80050028 0004BC88  90 01 00 34 */	stw r0, 0x34(r1)
/* 8005002C 0004BC8C  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80050030 0004BC90  7C 7F 1B 78 */	mr r31, r3
/* 80050034 0004BC94  C0 04 00 00 */	lfs f0, 0(r4)
/* 80050038 0004BC98  D0 03 01 64 */	stfs f0, 0x164(r3)
/* 8005003C 0004BC9C  C0 04 00 04 */	lfs f0, 4(r4)
/* 80050040 0004BCA0  D0 03 01 68 */	stfs f0, 0x168(r3)
/* 80050044 0004BCA4  C0 04 00 08 */	lfs f0, 8(r4)
/* 80050048 0004BCA8  D0 03 01 6C */	stfs f0, 0x16c(r3)
/* 8005004C 0004BCAC  38 61 00 18 */	addi r3, r1, 0x18
/* 80050050 0004BCB0  C0 44 00 08 */	lfs f2, 8(r4)
/* 80050054 0004BCB4  C0 24 00 04 */	lfs f1, 4(r4)
/* 80050058 0004BCB8  C0 04 00 00 */	lfs f0, 0(r4)
/* 8005005C 0004BCBC  38 81 00 08 */	addi r4, r1, 8
/* 80050060 0004BCC0  D0 01 00 08 */	stfs f0, 8(r1)
/* 80050064 0004BCC4  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 80050068 0004BCC8  D0 41 00 10 */	stfs f2, 0x10(r1)
/* 8005006C 0004BCCC  48 1D 36 55 */	bl func_802236C0
/* 80050070 0004BCD0  80 7F 00 00 */	lwz r3, 0(r31)
/* 80050074 0004BCD4  2C 03 00 00 */	cmpwi r3, 0
/* 80050078 0004BCD8  41 82 00 38 */	beq lbl_800500B0
/* 8005007C 0004BCDC  C0 01 00 18 */	lfs f0, 0x18(r1)
/* 80050080 0004BCE0  38 80 00 01 */	li r4, 1
/* 80050084 0004BCE4  D0 03 00 2C */	stfs f0, 0x2c(r3)
/* 80050088 0004BCE8  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 8005008C 0004BCEC  D0 03 00 30 */	stfs f0, 0x30(r3)
/* 80050090 0004BCF0  C0 01 00 20 */	lfs f0, 0x20(r1)
/* 80050094 0004BCF4  D0 03 00 34 */	stfs f0, 0x34(r3)
/* 80050098 0004BCF8  C0 01 00 24 */	lfs f0, 0x24(r1)
/* 8005009C 0004BCFC  D0 03 00 38 */	stfs f0, 0x38(r3)
/* 800500A0 0004BD00  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 800500A4 0004BD04  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 800500A8 0004BD08  B0 03 00 10 */	sth r0, 0x10(r3)
/* 800500AC 0004BD0C  48 1A 26 0D */	bl func_801F26B8
lbl_800500B0:
/* 800500B0 0004BD10  80 01 00 34 */	lwz r0, 0x34(r1)
/* 800500B4 0004BD14  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 800500B8 0004BD18  7C 08 03 A6 */	mtlr r0
/* 800500BC 0004BD1C  38 21 00 30 */	addi r1, r1, 0x30
/* 800500C0 0004BD20  4E 80 00 20 */	blr

.global func_800500C4
func_800500C4:
/* 800500C4 0004BD24  80 03 00 2C */	lwz r0, 0x2c(r3)
/* 800500C8 0004BD28  7C 00 20 40 */	cmplw r0, r4
/* 800500CC 0004BD2C  40 82 00 0C */	bne lbl_800500D8
/* 800500D0 0004BD30  38 60 00 00 */	li r3, 0
/* 800500D4 0004BD34  4E 80 00 20 */	blr
lbl_800500D8:
/* 800500D8 0004BD38  80 03 00 30 */	lwz r0, 0x30(r3)
/* 800500DC 0004BD3C  7C 00 20 40 */	cmplw r0, r4
/* 800500E0 0004BD40  40 82 00 0C */	bne lbl_800500EC
/* 800500E4 0004BD44  38 60 00 01 */	li r3, 1
/* 800500E8 0004BD48  4E 80 00 20 */	blr
lbl_800500EC:
/* 800500EC 0004BD4C  80 03 00 34 */	lwz r0, 0x34(r3)
/* 800500F0 0004BD50  7C 00 20 40 */	cmplw r0, r4
/* 800500F4 0004BD54  40 82 00 0C */	bne lbl_80050100
/* 800500F8 0004BD58  38 60 00 02 */	li r3, 2
/* 800500FC 0004BD5C  4E 80 00 20 */	blr
lbl_80050100:
/* 80050100 0004BD60  80 03 00 38 */	lwz r0, 0x38(r3)
/* 80050104 0004BD64  7C 00 20 40 */	cmplw r0, r4
/* 80050108 0004BD68  40 82 00 0C */	bne lbl_80050114
/* 8005010C 0004BD6C  38 60 00 03 */	li r3, 3
/* 80050110 0004BD70  4E 80 00 20 */	blr
lbl_80050114:
/* 80050114 0004BD74  80 03 00 3C */	lwz r0, 0x3c(r3)
/* 80050118 0004BD78  7C 00 20 40 */	cmplw r0, r4
/* 8005011C 0004BD7C  40 82 00 0C */	bne lbl_80050128
/* 80050120 0004BD80  38 60 00 04 */	li r3, 4
/* 80050124 0004BD84  4E 80 00 20 */	blr
lbl_80050128:
/* 80050128 0004BD88  80 03 00 40 */	lwz r0, 0x40(r3)
/* 8005012C 0004BD8C  7C 00 20 40 */	cmplw r0, r4
/* 80050130 0004BD90  40 82 00 0C */	bne lbl_8005013C
/* 80050134 0004BD94  38 60 00 05 */	li r3, 5
/* 80050138 0004BD98  4E 80 00 20 */	blr
lbl_8005013C:
/* 8005013C 0004BD9C  80 03 00 44 */	lwz r0, 0x44(r3)
/* 80050140 0004BDA0  7C 00 20 40 */	cmplw r0, r4
/* 80050144 0004BDA4  40 82 00 0C */	bne lbl_80050150
/* 80050148 0004BDA8  38 60 00 06 */	li r3, 6
/* 8005014C 0004BDAC  4E 80 00 20 */	blr
lbl_80050150:
/* 80050150 0004BDB0  80 03 00 48 */	lwz r0, 0x48(r3)
/* 80050154 0004BDB4  7C 00 20 40 */	cmplw r0, r4
/* 80050158 0004BDB8  40 82 00 0C */	bne lbl_80050164
/* 8005015C 0004BDBC  38 60 00 07 */	li r3, 7
/* 80050160 0004BDC0  4E 80 00 20 */	blr
lbl_80050164:
/* 80050164 0004BDC4  38 60 FF FF */	li r3, -1
/* 80050168 0004BDC8  4E 80 00 20 */	blr

.global func_8005016C
func_8005016C:
/* 8005016C 0004BDCC  38 A0 00 01 */	li r5, 1
/* 80050170 0004BDD0  38 6D 98 48 */	addi r3, r13, lbl_8063EB08-_SDA_BASE_
/* 80050174 0004BDD4  38 80 00 04 */	li r4, 4
/* 80050178 0004BDD8  38 00 00 00 */	li r0, 0
/* 8005017C 0004BDDC  98 AD 98 48 */	stb r5, lbl_8063EB08-_SDA_BASE_(r13)
/* 80050180 0004BDE0  B0 83 00 02 */	sth r4, 2(r3)
/* 80050184 0004BDE4  98 03 00 04 */	stb r0, 4(r3)
/* 80050188 0004BDE8  4E 80 00 20 */	blr