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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global lbl_8004DE88
lbl_8004DE88:
/* 8004DE88 00049AE8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004DE8C 00049AEC 7C 08 02 A6 */ mflr r0
/* 8004DE90 00049AF0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004DE94 00049AF4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004DE98 00049AF8 7C 7F 1B 78 */ mr r31, r3
/* 8004DE9C 00049AFC 48 00 26 91 */ bl func_8005052C
/* 8004DEA0 00049B00 C0 02 84 30 */ lfs f0, lbl_80640A30-_SDA2_BASE_(r2)
/* 8004DEA4 00049B04 38 00 00 00 */ li r0, 0
/* 8004DEA8 00049B08 90 1F 00 40 */ stw r0, 0x40(r31)
/* 8004DEAC 00049B0C 7F E3 FB 78 */ mr r3, r31
/* 8004DEB0 00049B10 90 1F 00 3C */ stw r0, 0x3c(r31)
/* 8004DEB4 00049B14 90 1F 00 38 */ stw r0, 0x38(r31)
/* 8004DEB8 00049B18 D0 1F 00 4C */ stfs f0, 0x4c(r31)
/* 8004DEBC 00049B1C 90 1F 00 34 */ stw r0, 0x34(r31)
/* 8004DEC0 00049B20 90 1F 00 44 */ stw r0, 0x44(r31)
/* 8004DEC4 00049B24 90 1F 00 48 */ stw r0, 0x48(r31)
/* 8004DEC8 00049B28 90 1F 00 54 */ stw r0, 0x54(r31)
/* 8004DECC 00049B2C 48 00 00 81 */ bl func_8004DF4C
/* 8004DED0 00049B30 C0 02 84 30 */ lfs f0, lbl_80640A30-_SDA2_BASE_(r2)
/* 8004DED4 00049B34 7F E3 FB 78 */ mr r3, r31
/* 8004DED8 00049B38 D0 1F 00 5C */ stfs f0, 0x5c(r31)
/* 8004DEDC 00049B3C D0 1F 00 60 */ stfs f0, 0x60(r31)
/* 8004DEE0 00049B40 D0 1F 00 64 */ stfs f0, 0x64(r31)
/* 8004DEE4 00049B44 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004DEE8 00049B48 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004DEEC 00049B4C 7C 08 03 A6 */ mtlr r0
/* 8004DEF0 00049B50 38 21 00 10 */ addi r1, r1, 0x10
/* 8004DEF4 00049B54 4E 80 00 20 */ blr
.global lbl_8004DEF8
lbl_8004DEF8:
/* 8004DEF8 00049B58 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004DEFC 00049B5C 7C 08 02 A6 */ mflr r0
/* 8004DF00 00049B60 2C 03 00 00 */ cmpwi r3, 0
/* 8004DF04 00049B64 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004DF08 00049B68 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004DF0C 00049B6C 7C 9F 23 78 */ mr r31, r4
/* 8004DF10 00049B70 93 C1 00 08 */ stw r30, 8(r1)
/* 8004DF14 00049B74 7C 7E 1B 78 */ mr r30, r3
/* 8004DF18 00049B78 41 82 00 18 */ beq lbl_8004DF30
/* 8004DF1C 00049B7C 48 00 00 5D */ bl func_8004DF78
/* 8004DF20 00049B80 2C 1F 00 00 */ cmpwi r31, 0
/* 8004DF24 00049B84 40 81 00 0C */ ble lbl_8004DF30
/* 8004DF28 00049B88 7F C3 F3 78 */ mr r3, r30
/* 8004DF2C 00049B8C 48 18 CB 8D */ bl __dl__FPv
lbl_8004DF30:
/* 8004DF30 00049B90 7F C3 F3 78 */ mr r3, r30
/* 8004DF34 00049B94 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004DF38 00049B98 83 C1 00 08 */ lwz r30, 8(r1)
/* 8004DF3C 00049B9C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004DF40 00049BA0 7C 08 03 A6 */ mtlr r0
/* 8004DF44 00049BA4 38 21 00 10 */ addi r1, r1, 0x10
/* 8004DF48 00049BA8 4E 80 00 20 */ blr
.global func_8004DF4C
func_8004DF4C:
/* 8004DF4C 00049BAC 80 AD 81 88 */ lwz r5, lbl_8063D448-_SDA_BASE_(r13)
/* 8004DF50 00049BB0 3C 00 00 01 */ lis r0, 1
/* 8004DF54 00049BB4 64 A4 82 90 */ oris r4, r5, 0x8290
/* 8004DF58 00049BB8 38 A5 00 01 */ addi r5, r5, 1
/* 8004DF5C 00049BBC 90 83 00 50 */ stw r4, 0x50(r3)
/* 8004DF60 00049BC0 7C 05 00 40 */ cmplw r5, r0
/* 8004DF64 00049BC4 90 AD 81 88 */ stw r5, lbl_8063D448-_SDA_BASE_(r13)
/* 8004DF68 00049BC8 4C 81 00 20 */ blelr
/* 8004DF6C 00049BCC 38 00 00 01 */ li r0, 1
/* 8004DF70 00049BD0 90 0D 81 88 */ stw r0, lbl_8063D448-_SDA_BASE_(r13)
/* 8004DF74 00049BD4 4E 80 00 20 */ blr
.global func_8004DF78
func_8004DF78:
/* 8004DF78 00049BD8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004DF7C 00049BDC 7C 08 02 A6 */ mflr r0
/* 8004DF80 00049BE0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004DF84 00049BE4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004DF88 00049BE8 93 C1 00 08 */ stw r30, 8(r1)
/* 8004DF8C 00049BEC 7C 7E 1B 78 */ mr r30, r3
/* 8004DF90 00049BF0 80 03 00 40 */ lwz r0, 0x40(r3)
/* 8004DF94 00049BF4 2C 00 00 00 */ cmpwi r0, 0
/* 8004DF98 00049BF8 41 82 00 28 */ beq lbl_8004DFC0
/* 8004DF9C 00049BFC 41 82 00 1C */ beq lbl_8004DFB8
/* 8004DFA0 00049C00 7C 03 03 78 */ mr r3, r0
/* 8004DFA4 00049C04 38 80 00 01 */ li r4, 1
/* 8004DFA8 00049C08 81 83 01 00 */ lwz r12, 0x100(r3)
/* 8004DFAC 00049C0C 81 8C 00 08 */ lwz r12, 8(r12)
/* 8004DFB0 00049C10 7D 89 03 A6 */ mtctr r12
/* 8004DFB4 00049C14 4E 80 04 21 */ bctrl
lbl_8004DFB8:
/* 8004DFB8 00049C18 38 00 00 00 */ li r0, 0
/* 8004DFBC 00049C1C 90 1E 00 40 */ stw r0, 0x40(r30)
lbl_8004DFC0:
/* 8004DFC0 00049C20 80 7E 00 3C */ lwz r3, 0x3c(r30)
/* 8004DFC4 00049C24 2C 03 00 00 */ cmpwi r3, 0
/* 8004DFC8 00049C28 41 82 00 1C */ beq lbl_8004DFE4
/* 8004DFCC 00049C2C 80 9E 00 34 */ lwz r4, 0x34(r30)
/* 8004DFD0 00049C30 54 80 07 BD */ rlwinm. r0, r4, 0, 0x1e, 0x1e
/* 8004DFD4 00049C34 41 82 00 10 */ beq lbl_8004DFE4
/* 8004DFD8 00049C38 54 80 07 FA */ rlwinm r0, r4, 0, 0x1f, 0x1d
/* 8004DFDC 00049C3C 90 1E 00 34 */ stw r0, 0x34(r30)
/* 8004DFE0 00049C40 48 1B 8E 15 */ bl func_80206DF4
lbl_8004DFE4:
/* 8004DFE4 00049C44 80 7E 00 38 */ lwz r3, 0x38(r30)
/* 8004DFE8 00049C48 3B E0 00 00 */ li r31, 0
/* 8004DFEC 00049C4C 93 FE 00 3C */ stw r31, 0x3c(r30)
/* 8004DFF0 00049C50 2C 03 00 00 */ cmpwi r3, 0
/* 8004DFF4 00049C54 41 82 00 0C */ beq lbl_8004E000
/* 8004DFF8 00049C58 48 18 CE AD */ bl func_801DAEA4
/* 8004DFFC 00049C5C 93 FE 00 38 */ stw r31, 0x38(r30)
lbl_8004E000:
/* 8004E000 00049C60 80 1E 00 34 */ lwz r0, 0x34(r30)
/* 8004E004 00049C64 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 8004E008 00049C68 41 82 00 1C */ beq lbl_8004E024
/* 8004E00C 00049C6C 80 7E 00 44 */ lwz r3, 0x44(r30)
/* 8004E010 00049C70 80 9E 00 48 */ lwz r4, 0x48(r30)
/* 8004E014 00049C74 48 18 D5 35 */ bl func_801DB548
/* 8004E018 00049C78 38 00 00 00 */ li r0, 0
/* 8004E01C 00049C7C 90 1E 00 44 */ stw r0, 0x44(r30)
/* 8004E020 00049C80 90 1E 00 48 */ stw r0, 0x48(r30)
lbl_8004E024:
/* 8004E024 00049C84 38 00 00 00 */ li r0, 0
/* 8004E028 00049C88 90 1E 00 34 */ stw r0, 0x34(r30)
/* 8004E02C 00049C8C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004E030 00049C90 83 C1 00 08 */ lwz r30, 8(r1)
/* 8004E034 00049C94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004E038 00049C98 7C 08 03 A6 */ mtlr r0
/* 8004E03C 00049C9C 38 21 00 10 */ addi r1, r1, 0x10
/* 8004E040 00049CA0 4E 80 00 20 */ blr
.global func_8004E044
func_8004E044:
/* 8004E044 00049CA4 94 21 FE D0 */ stwu r1, -0x130(r1)
/* 8004E048 00049CA8 7C 08 02 A6 */ mflr r0
/* 8004E04C 00049CAC 90 01 01 34 */ stw r0, 0x134(r1)
/* 8004E050 00049CB0 39 61 01 30 */ addi r11, r1, 0x130
/* 8004E054 00049CB4 48 17 90 D5 */ bl _savegpr_27
/* 8004E058 00049CB8 3C A0 80 41 */ lis r5, lbl_8040AAF8@ha
/* 8004E05C 00049CBC 7C 7B 1B 78 */ mr r27, r3
/* 8004E060 00049CC0 7C 86 23 78 */ mr r6, r4
/* 8004E064 00049CC4 38 61 00 10 */ addi r3, r1, 0x10
/* 8004E068 00049CC8 38 85 AA F8 */ addi r4, r5, lbl_8040AAF8@l
/* 8004E06C 00049CCC 38 AD 81 90 */ addi r5, r13, lbl_8063D450-_SDA_BASE_
/* 8004E070 00049CD0 4C C6 31 82 */ crclr 6
/* 8004E074 00049CD4 48 17 EA 89 */ bl sprintf
/* 8004E078 00049CD8 38 61 00 10 */ addi r3, r1, 0x10
/* 8004E07C 00049CDC 38 81 00 08 */ addi r4, r1, 8
/* 8004E080 00049CE0 48 18 EB 41 */ bl func_801DCBC0
/* 8004E084 00049CE4 2C 03 00 00 */ cmpwi r3, 0
/* 8004E088 00049CE8 7C 7E 1B 78 */ mr r30, r3
/* 8004E08C 00049CEC 40 82 00 0C */ bne lbl_8004E098
/* 8004E090 00049CF0 38 60 00 00 */ li r3, 0
/* 8004E094 00049CF4 48 00 00 BC */ b lbl_8004E150
lbl_8004E098:
/* 8004E098 00049CF8 48 1B 8C F5 */ bl func_80206D8C
/* 8004E09C 00049CFC 2C 03 00 00 */ cmpwi r3, 0
/* 8004E0A0 00049D00 7C 7D 1B 78 */ mr r29, r3
/* 8004E0A4 00049D04 40 82 00 14 */ bne lbl_8004E0B8
/* 8004E0A8 00049D08 7F C3 F3 78 */ mr r3, r30
/* 8004E0AC 00049D0C 48 18 CD F9 */ bl func_801DAEA4
/* 8004E0B0 00049D10 38 60 00 00 */ li r3, 0
/* 8004E0B4 00049D14 48 00 00 9C */ b lbl_8004E150
lbl_8004E0B8:
/* 8004E0B8 00049D18 48 18 CA 71 */ bl func_801DAB28
/* 8004E0BC 00049D1C 2C 03 00 00 */ cmpwi r3, 0
/* 8004E0C0 00049D20 41 82 00 14 */ beq lbl_8004E0D4
/* 8004E0C4 00049D24 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8004E0C8 00049D28 38 80 01 40 */ li r4, 0x140
/* 8004E0CC 00049D2C 48 18 CB C9 */ bl func_801DAC94
/* 8004E0D0 00049D30 48 00 00 08 */ b lbl_8004E0D8
lbl_8004E0D4:
/* 8004E0D4 00049D34 38 60 00 00 */ li r3, 0
lbl_8004E0D8:
/* 8004E0D8 00049D38 2C 03 00 00 */ cmpwi r3, 0
/* 8004E0DC 00049D3C 7C 7F 1B 78 */ mr r31, r3
/* 8004E0E0 00049D40 41 82 00 10 */ beq lbl_8004E0F0
/* 8004E0E4 00049D44 7F A4 EB 78 */ mr r4, r29
/* 8004E0E8 00049D48 48 1A B8 05 */ bl func_801F98EC
/* 8004E0EC 00049D4C 7C 7F 1B 78 */ mr r31, r3
lbl_8004E0F0:
/* 8004E0F0 00049D50 2C 1F 00 00 */ cmpwi r31, 0
/* 8004E0F4 00049D54 40 82 00 1C */ bne lbl_8004E110
/* 8004E0F8 00049D58 7F A3 EB 78 */ mr r3, r29
/* 8004E0FC 00049D5C 48 1B 8C F9 */ bl func_80206DF4
/* 8004E100 00049D60 7F C3 F3 78 */ mr r3, r30
/* 8004E104 00049D64 48 18 CD A1 */ bl func_801DAEA4
/* 8004E108 00049D68 38 60 00 00 */ li r3, 0
/* 8004E10C 00049D6C 48 00 00 44 */ b lbl_8004E150
lbl_8004E110:
/* 8004E110 00049D70 80 1B 00 34 */ lwz r0, 0x34(r27)
/* 8004E114 00049D74 7F 63 DB 78 */ mr r3, r27
/* 8004E118 00049D78 54 1C 07 7A */ rlwinm r28, r0, 0, 0x1d, 0x1d
/* 8004E11C 00049D7C 4B FF FE 5D */ bl func_8004DF78
/* 8004E120 00049D80 80 BB 00 34 */ lwz r5, 0x34(r27)
/* 8004E124 00049D84 63 83 00 03 */ ori r3, r28, 3
/* 8004E128 00049D88 38 80 1E DC */ li r4, 0x1edc
/* 8004E12C 00049D8C 38 00 00 00 */ li r0, 0
/* 8004E130 00049D90 7C A5 1B 78 */ or r5, r5, r3
/* 8004E134 00049D94 93 DB 00 38 */ stw r30, 0x38(r27)
/* 8004E138 00049D98 38 60 00 01 */ li r3, 1
/* 8004E13C 00049D9C 93 BB 00 3C */ stw r29, 0x3c(r27)
/* 8004E140 00049DA0 93 FB 00 40 */ stw r31, 0x40(r27)
/* 8004E144 00049DA4 90 BB 00 34 */ stw r5, 0x34(r27)
/* 8004E148 00049DA8 90 9B 00 44 */ stw r4, 0x44(r27)
/* 8004E14C 00049DAC 90 1B 00 48 */ stw r0, 0x48(r27)
lbl_8004E150:
/* 8004E150 00049DB0 39 61 01 30 */ addi r11, r1, 0x130
/* 8004E154 00049DB4 48 17 90 21 */ bl _restgpr_27
/* 8004E158 00049DB8 80 01 01 34 */ lwz r0, 0x134(r1)
/* 8004E15C 00049DBC 7C 08 03 A6 */ mtlr r0
/* 8004E160 00049DC0 38 21 01 30 */ addi r1, r1, 0x130
/* 8004E164 00049DC4 4E 80 00 20 */ blr
.global func_8004E168
func_8004E168:
/* 8004E168 00049DC8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004E16C 00049DCC 7C 08 02 A6 */ mflr r0
/* 8004E170 00049DD0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004E174 00049DD4 54 A0 00 01 */ rlwinm. r0, r5, 0, 0, 0
/* 8004E178 00049DD8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8004E17C 00049DDC 7C BF 2B 78 */ mr r31, r5
/* 8004E180 00049DE0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8004E184 00049DE4 7C 9E 23 78 */ mr r30, r4
/* 8004E188 00049DE8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8004E18C 00049DEC 7C 7D 1B 78 */ mr r29, r3
/* 8004E190 00049DF0 40 82 00 4C */ bne lbl_8004E1DC
/* 8004E194 00049DF4 54 A0 07 39 */ rlwinm. r0, r5, 0, 0x1c, 0x1c
/* 8004E198 00049DF8 41 82 00 2C */ beq lbl_8004E1C4
/* 8004E19C 00049DFC 54 A0 07 FF */ clrlwi. r0, r5, 0x1f
/* 8004E1A0 00049E00 54 BF 07 76 */ rlwinm r31, r5, 0, 0x1d, 0x1b
/* 8004E1A4 00049E04 41 82 00 08 */ beq lbl_8004E1AC
/* 8004E1A8 00049E08 63 FF 00 40 */ ori r31, r31, 0x40
lbl_8004E1AC:
/* 8004E1AC 00049E0C 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e
/* 8004E1B0 00049E10 41 82 00 08 */ beq lbl_8004E1B8
/* 8004E1B4 00049E14 63 FF 00 80 */ ori r31, r31, 0x80
lbl_8004E1B8:
/* 8004E1B8 00049E18 57 E0 07 7B */ rlwinm. r0, r31, 0, 0x1d, 0x1d
/* 8004E1BC 00049E1C 41 82 00 08 */ beq lbl_8004E1C4
/* 8004E1C0 00049E20 63 FF 01 00 */ ori r31, r31, 0x100
lbl_8004E1C4:
/* 8004E1C4 00049E24 57 E0 07 FF */ clrlwi. r0, r31, 0x1f
/* 8004E1C8 00049E28 40 82 00 08 */ bne lbl_8004E1D0
/* 8004E1CC 00049E2C 63 FF 00 09 */ ori r31, r31, 9
lbl_8004E1D0:
/* 8004E1D0 00049E30 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e
/* 8004E1D4 00049E34 40 82 00 08 */ bne lbl_8004E1DC
/* 8004E1D8 00049E38 63 FF 00 12 */ ori r31, r31, 0x12
lbl_8004E1DC:
/* 8004E1DC 00049E3C 2C 04 00 00 */ cmpwi r4, 0
/* 8004E1E0 00049E40 41 82 00 38 */ beq lbl_8004E218
/* 8004E1E4 00049E44 80 83 00 40 */ lwz r4, 0x40(r3)
/* 8004E1E8 00049E48 2C 04 00 00 */ cmpwi r4, 0
/* 8004E1EC 00049E4C 41 82 00 2C */ beq lbl_8004E218
/* 8004E1F0 00049E50 80 64 00 C0 */ lwz r3, 0xc0(r4)
/* 8004E1F4 00049E54 2C 03 00 00 */ cmpwi r3, 0
/* 8004E1F8 00049E58 41 82 00 08 */ beq lbl_8004E200
/* 8004E1FC 00049E5C 48 1A 40 2D */ bl func_801F2228
lbl_8004E200:
/* 8004E200 00049E60 80 BD 00 40 */ lwz r5, 0x40(r29)
/* 8004E204 00049E64 7F C3 F3 78 */ mr r3, r30
/* 8004E208 00049E68 57 E4 04 3E */ clrlwi r4, r31, 0x10
/* 8004E20C 00049E6C 38 C0 00 00 */ li r6, 0
/* 8004E210 00049E70 38 E0 00 03 */ li r7, 3
/* 8004E214 00049E74 48 1A 3F 79 */ bl func_801F218C
lbl_8004E218:
/* 8004E218 00049E78 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004E21C 00049E7C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8004E220 00049E80 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8004E224 00049E84 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8004E228 00049E88 7C 08 03 A6 */ mtlr r0
/* 8004E22C 00049E8C 38 21 00 20 */ addi r1, r1, 0x20
/* 8004E230 00049E90 4E 80 00 20 */ blr
.global func_8004E234
func_8004E234:
/* 8004E234 00049E94 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004E238 00049E98 7C 08 02 A6 */ mflr r0
/* 8004E23C 00049E9C 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004E240 00049EA0 39 61 00 30 */ addi r11, r1, 0x30
/* 8004E244 00049EA4 48 17 8E DD */ bl _savegpr_25
/* 8004E248 00049EA8 54 A0 BE BE */ rlwinm r0, r5, 0x17, 0x1a, 0x1f
/* 8004E24C 00049EAC 7C 79 1B 78 */ mr r25, r3
/* 8004E250 00049EB0 28 00 00 05 */ cmplwi r0, 5
/* 8004E254 00049EB4 7C 9A 23 78 */ mr r26, r4
/* 8004E258 00049EB8 7C DC 33 78 */ mr r28, r6
/* 8004E25C 00049EBC 41 82 00 0C */ beq lbl_8004E268
/* 8004E260 00049EC0 38 60 00 00 */ li r3, 0
/* 8004E264 00049EC4 48 00 00 D8 */ b lbl_8004E33C
lbl_8004E268:
/* 8004E268 00049EC8 54 A0 00 5E */ rlwinm r0, r5, 0, 1, 0xf
/* 8004E26C 00049ECC 7F 43 D3 78 */ mr r3, r26
/* 8004E270 00049ED0 60 1B 0E 00 */ ori r27, r0, 0xe00
/* 8004E274 00049ED4 7F 64 DB 78 */ mr r4, r27
/* 8004E278 00049ED8 48 18 D2 45 */ bl func_801DB4BC
/* 8004E27C 00049EDC 2C 03 00 00 */ cmpwi r3, 0
/* 8004E280 00049EE0 7C 7E 1B 78 */ mr r30, r3
/* 8004E284 00049EE4 40 82 00 0C */ bne lbl_8004E290
/* 8004E288 00049EE8 38 60 00 00 */ li r3, 0
/* 8004E28C 00049EEC 48 00 00 B0 */ b lbl_8004E33C
lbl_8004E290:
/* 8004E290 00049EF0 48 18 C8 99 */ bl func_801DAB28
/* 8004E294 00049EF4 2C 03 00 00 */ cmpwi r3, 0
/* 8004E298 00049EF8 41 82 00 14 */ beq lbl_8004E2AC
/* 8004E29C 00049EFC 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8004E2A0 00049F00 38 80 01 40 */ li r4, 0x140
/* 8004E2A4 00049F04 48 18 C9 F1 */ bl func_801DAC94
/* 8004E2A8 00049F08 48 00 00 08 */ b lbl_8004E2B0
lbl_8004E2AC:
/* 8004E2AC 00049F0C 38 60 00 00 */ li r3, 0
lbl_8004E2B0:
/* 8004E2B0 00049F10 2C 03 00 00 */ cmpwi r3, 0
/* 8004E2B4 00049F14 7C 7F 1B 78 */ mr r31, r3
/* 8004E2B8 00049F18 41 82 00 10 */ beq lbl_8004E2C8
/* 8004E2BC 00049F1C 7F C4 F3 78 */ mr r4, r30
/* 8004E2C0 00049F20 48 1A B6 2D */ bl func_801F98EC
/* 8004E2C4 00049F24 7C 7F 1B 78 */ mr r31, r3
lbl_8004E2C8:
/* 8004E2C8 00049F28 2C 1F 00 00 */ cmpwi r31, 0
/* 8004E2CC 00049F2C 40 82 00 0C */ bne lbl_8004E2D8
/* 8004E2D0 00049F30 38 60 00 00 */ li r3, 0
/* 8004E2D4 00049F34 48 00 00 68 */ b lbl_8004E33C
lbl_8004E2D8:
/* 8004E2D8 00049F38 80 19 00 50 */ lwz r0, 0x50(r25)
/* 8004E2DC 00049F3C 7F 23 CB 78 */ mr r3, r25
/* 8004E2E0 00049F40 90 1F 01 3C */ stw r0, 0x13c(r31)
/* 8004E2E4 00049F44 80 19 00 34 */ lwz r0, 0x34(r25)
/* 8004E2E8 00049F48 54 1D 07 7A */ rlwinm r29, r0, 0, 0x1d, 0x1d
/* 8004E2EC 00049F4C 4B FF FC 8D */ bl func_8004DF78
/* 8004E2F0 00049F50 38 00 00 00 */ li r0, 0
/* 8004E2F4 00049F54 2C 1C 00 00 */ cmpwi r28, 0
/* 8004E2F8 00049F58 90 19 00 38 */ stw r0, 0x38(r25)
/* 8004E2FC 00049F5C 93 D9 00 3C */ stw r30, 0x3c(r25)
/* 8004E300 00049F60 93 F9 00 40 */ stw r31, 0x40(r25)
/* 8004E304 00049F64 93 59 00 44 */ stw r26, 0x44(r25)
/* 8004E308 00049F68 93 79 00 48 */ stw r27, 0x48(r25)
/* 8004E30C 00049F6C 41 82 00 1C */ beq lbl_8004E328
/* 8004E310 00049F70 7F 43 D3 78 */ mr r3, r26
/* 8004E314 00049F74 7F 64 DB 78 */ mr r4, r27
/* 8004E318 00049F78 48 18 D1 E5 */ bl func_801DB4FC
/* 8004E31C 00049F7C 80 19 00 34 */ lwz r0, 0x34(r25)
/* 8004E320 00049F80 60 00 00 40 */ ori r0, r0, 0x40
/* 8004E324 00049F84 90 19 00 34 */ stw r0, 0x34(r25)
lbl_8004E328:
/* 8004E328 00049F88 80 99 00 34 */ lwz r4, 0x34(r25)
/* 8004E32C 00049F8C 63 A0 00 01 */ ori r0, r29, 1
/* 8004E330 00049F90 38 60 00 01 */ li r3, 1
/* 8004E334 00049F94 7C 80 03 78 */ or r0, r4, r0
/* 8004E338 00049F98 90 19 00 34 */ stw r0, 0x34(r25)
lbl_8004E33C:
/* 8004E33C 00049F9C 39 61 00 30 */ addi r11, r1, 0x30
/* 8004E340 00049FA0 48 17 8E 2D */ bl _restgpr_25
/* 8004E344 00049FA4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004E348 00049FA8 7C 08 03 A6 */ mtlr r0
/* 8004E34C 00049FAC 38 21 00 30 */ addi r1, r1, 0x30
/* 8004E350 00049FB0 4E 80 00 20 */ blr
.global func_8004E354
func_8004E354:
/* 8004E354 00049FB4 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004E358 00049FB8 7C 08 02 A6 */ mflr r0
/* 8004E35C 00049FBC 3D 40 80 40 */ lis r10, lbl_80400004@ha
/* 8004E360 00049FC0 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004E364 00049FC4 85 2A B7 78 */ lwzu r9, -0x4888(r10)
/* 8004E368 00049FC8 80 63 00 40 */ lwz r3, 0x40(r3)
/* 8004E36C 00049FCC 81 0A 00 04 */ lwz r8, lbl_80400004@l(r10)
/* 8004E370 00049FD0 80 EA 00 08 */ lwz r7, 8(r10)
/* 8004E374 00049FD4 2C 03 00 00 */ cmpwi r3, 0
/* 8004E378 00049FD8 80 CA 00 0C */ lwz r6, 0xc(r10)
/* 8004E37C 00049FDC 80 AA 00 10 */ lwz r5, 0x10(r10)
/* 8004E380 00049FE0 80 0A 00 14 */ lwz r0, 0x14(r10)
/* 8004E384 00049FE4 91 21 00 18 */ stw r9, 0x18(r1)
/* 8004E388 00049FE8 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8004E38C 00049FEC 90 E1 00 20 */ stw r7, 0x20(r1)
/* 8004E390 00049FF0 90 C1 00 24 */ stw r6, 0x24(r1)
/* 8004E394 00049FF4 90 A1 00 28 */ stw r5, 0x28(r1)
/* 8004E398 00049FF8 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8004E39C 00049FFC 41 82 00 F0 */ beq lbl_8004E48C
/* 8004E3A0 0004A000 2C 04 00 01 */ cmpwi r4, 1
/* 8004E3A4 0004A004 41 80 00 0C */ blt lbl_8004E3B0
/* 8004E3A8 0004A008 2C 04 00 06 */ cmpwi r4, 6
/* 8004E3AC 0004A00C 40 81 00 08 */ ble lbl_8004E3B4
lbl_8004E3B0:
/* 8004E3B0 0004A010 38 80 00 03 */ li r4, 3
lbl_8004E3B4:
/* 8004E3B4 0004A014 38 04 FF FF */ addi r0, r4, -1
/* 8004E3B8 0004A018 38 81 00 18 */ addi r4, r1, 0x18
/* 8004E3BC 0004A01C 54 00 10 3A */ slwi r0, r0, 2
/* 8004E3C0 0004A020 2C 03 00 00 */ cmpwi r3, 0
/* 8004E3C4 0004A024 7C 04 04 2E */ lfsx f0, r4, r0
/* 8004E3C8 0004A028 EC 01 00 32 */ fmuls f0, f1, f0
/* 8004E3CC 0004A02C D0 01 00 08 */ stfs f0, 8(r1)
/* 8004E3D0 0004A030 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8004E3D4 0004A034 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8004E3D8 0004A038 41 82 00 B4 */ beq lbl_8004E48C
/* 8004E3DC 0004A03C D0 03 00 48 */ stfs f0, 0x48(r3)
/* 8004E3E0 0004A040 C0 42 84 34 */ lfs f2, lbl_80640A34-_SDA2_BASE_(r2)
/* 8004E3E4 0004A044 D0 03 00 4C */ stfs f0, 0x4c(r3)
/* 8004E3E8 0004A048 FC 00 10 40 */ fcmpo cr0, f0, f2
/* 8004E3EC 0004A04C D0 03 00 50 */ stfs f0, 0x50(r3)
/* 8004E3F0 0004A050 40 80 00 2C */ bge lbl_8004E41C
/* 8004E3F4 0004A054 C0 23 00 48 */ lfs f1, 0x48(r3)
/* 8004E3F8 0004A058 C0 62 84 38 */ lfs f3, lbl_80640A38-_SDA2_BASE_(r2)
/* 8004E3FC 0004A05C FC 01 18 40 */ fcmpo cr0, f1, f3
/* 8004E400 0004A060 40 81 00 1C */ ble lbl_8004E41C
/* 8004E404 0004A064 C0 02 84 30 */ lfs f0, lbl_80640A30-_SDA2_BASE_(r2)
/* 8004E408 0004A068 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8004E40C 0004A06C 40 80 00 08 */ bge lbl_8004E414
/* 8004E410 0004A070 48 00 00 08 */ b lbl_8004E418
lbl_8004E414:
/* 8004E414 0004A074 FC 60 10 90 */ fmr f3, f2
lbl_8004E418:
/* 8004E418 0004A078 D0 63 00 48 */ stfs f3, 0x48(r3)
lbl_8004E41C:
/* 8004E41C 0004A07C C0 43 00 4C */ lfs f2, 0x4c(r3)
/* 8004E420 0004A080 C0 22 84 34 */ lfs f1, lbl_80640A34-_SDA2_BASE_(r2)
/* 8004E424 0004A084 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 8004E428 0004A088 40 80 00 28 */ bge lbl_8004E450
/* 8004E42C 0004A08C C0 62 84 38 */ lfs f3, lbl_80640A38-_SDA2_BASE_(r2)
/* 8004E430 0004A090 FC 02 18 40 */ fcmpo cr0, f2, f3
/* 8004E434 0004A094 40 81 00 1C */ ble lbl_8004E450
/* 8004E438 0004A098 C0 02 84 30 */ lfs f0, lbl_80640A30-_SDA2_BASE_(r2)
/* 8004E43C 0004A09C FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8004E440 0004A0A0 40 80 00 08 */ bge lbl_8004E448
/* 8004E444 0004A0A4 48 00 00 08 */ b lbl_8004E44C
lbl_8004E448:
/* 8004E448 0004A0A8 FC 60 08 90 */ fmr f3, f1
lbl_8004E44C:
/* 8004E44C 0004A0AC D0 63 00 4C */ stfs f3, 0x4c(r3)
lbl_8004E450:
/* 8004E450 0004A0B0 C0 43 00 50 */ lfs f2, 0x50(r3)
/* 8004E454 0004A0B4 C0 22 84 34 */ lfs f1, lbl_80640A34-_SDA2_BASE_(r2)
/* 8004E458 0004A0B8 FC 02 08 40 */ fcmpo cr0, f2, f1
/* 8004E45C 0004A0BC 40 80 00 28 */ bge lbl_8004E484
/* 8004E460 0004A0C0 C0 62 84 38 */ lfs f3, lbl_80640A38-_SDA2_BASE_(r2)
/* 8004E464 0004A0C4 FC 02 18 40 */ fcmpo cr0, f2, f3
/* 8004E468 0004A0C8 40 81 00 1C */ ble lbl_8004E484
/* 8004E46C 0004A0CC C0 02 84 30 */ lfs f0, lbl_80640A30-_SDA2_BASE_(r2)
/* 8004E470 0004A0D0 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8004E474 0004A0D4 40 80 00 08 */ bge lbl_8004E47C
/* 8004E478 0004A0D8 48 00 00 08 */ b lbl_8004E480
lbl_8004E47C:
/* 8004E47C 0004A0DC FC 60 08 90 */ fmr f3, f1
lbl_8004E480:
/* 8004E480 0004A0E0 D0 63 00 50 */ stfs f3, 0x50(r3)
lbl_8004E484:
/* 8004E484 0004A0E4 38 80 00 01 */ li r4, 1
/* 8004E488 0004A0E8 48 1A 42 31 */ bl func_801F26B8
lbl_8004E48C:
/* 8004E48C 0004A0EC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004E490 0004A0F0 7C 08 03 A6 */ mtlr r0
/* 8004E494 0004A0F4 38 21 00 30 */ addi r1, r1, 0x30
/* 8004E498 0004A0F8 4E 80 00 20 */ blr
.global func_8004E49C
func_8004E49C:
/* 8004E49C 0004A0FC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004E4A0 0004A100 3D 20 80 40 */ lis r9, lbl_80400004@ha
/* 8004E4A4 0004A104 2C 03 00 01 */ cmpwi r3, 1
/* 8004E4A8 0004A108 85 09 B7 90 */ lwzu r8, -0x4870(r9)
/* 8004E4AC 0004A10C 80 E9 00 04 */ lwz r7, lbl_80400004@l(r9)
/* 8004E4B0 0004A110 80 C9 00 08 */ lwz r6, 8(r9)
/* 8004E4B4 0004A114 80 A9 00 0C */ lwz r5, 0xc(r9)
/* 8004E4B8 0004A118 80 89 00 10 */ lwz r4, 0x10(r9)
/* 8004E4BC 0004A11C 80 09 00 14 */ lwz r0, 0x14(r9)
/* 8004E4C0 0004A120 91 01 00 08 */ stw r8, 8(r1)
/* 8004E4C4 0004A124 90 E1 00 0C */ stw r7, 0xc(r1)
/* 8004E4C8 0004A128 90 C1 00 10 */ stw r6, 0x10(r1)
/* 8004E4CC 0004A12C 90 A1 00 14 */ stw r5, 0x14(r1)
/* 8004E4D0 0004A130 90 81 00 18 */ stw r4, 0x18(r1)
/* 8004E4D4 0004A134 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8004E4D8 0004A138 41 80 00 0C */ blt lbl_8004E4E4
/* 8004E4DC 0004A13C 2C 03 00 06 */ cmpwi r3, 6
/* 8004E4E0 0004A140 40 81 00 08 */ ble lbl_8004E4E8
lbl_8004E4E4:
/* 8004E4E4 0004A144 38 60 00 03 */ li r3, 3
lbl_8004E4E8:
/* 8004E4E8 0004A148 38 03 FF FF */ addi r0, r3, -1
/* 8004E4EC 0004A14C 38 61 00 08 */ addi r3, r1, 8
/* 8004E4F0 0004A150 54 00 10 3A */ slwi r0, r0, 2
/* 8004E4F4 0004A154 7C 03 04 2E */ lfsx f0, r3, r0
/* 8004E4F8 0004A158 EC 21 00 32 */ fmuls f1, f1, f0
/* 8004E4FC 0004A15C 38 21 00 20 */ addi r1, r1, 0x20
/* 8004E500 0004A160 4E 80 00 20 */ blr
.global func_8004E504
func_8004E504:
/* 8004E504 0004A164 80 84 00 40 */ lwz r4, 0x40(r4)
/* 8004E508 0004A168 2C 04 00 00 */ cmpwi r4, 0
/* 8004E50C 0004A16C 41 82 00 20 */ beq lbl_8004E52C
/* 8004E510 0004A170 C0 04 00 20 */ lfs f0, 0x20(r4)
/* 8004E514 0004A174 D0 03 00 00 */ stfs f0, 0(r3)
/* 8004E518 0004A178 C0 04 00 24 */ lfs f0, 0x24(r4)
/* 8004E51C 0004A17C D0 03 00 04 */ stfs f0, 4(r3)
/* 8004E520 0004A180 C0 04 00 28 */ lfs f0, 0x28(r4)
/* 8004E524 0004A184 D0 03 00 08 */ stfs f0, 8(r3)
/* 8004E528 0004A188 4E 80 00 20 */ blr
lbl_8004E52C:
/* 8004E52C 0004A18C C0 02 84 30 */ lfs f0, lbl_80640A30-_SDA2_BASE_(r2)
/* 8004E530 0004A190 D0 03 00 00 */ stfs f0, 0(r3)
/* 8004E534 0004A194 D0 03 00 04 */ stfs f0, 4(r3)
/* 8004E538 0004A198 D0 03 00 08 */ stfs f0, 8(r3)
/* 8004E53C 0004A19C 4E 80 00 20 */ blr
.global func_8004E540
func_8004E540:
/* 8004E540 0004A1A0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8004E544 0004A1A4 7C 08 02 A6 */ mflr r0
/* 8004E548 0004A1A8 90 01 00 44 */ stw r0, 0x44(r1)
/* 8004E54C 0004A1AC DB E1 00 30 */ stfd f31, 0x30(r1)
/* 8004E550 0004A1B0 F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 8004E554 0004A1B4 FF E0 08 90 */ fmr f31, f1
/* 8004E558 0004A1B8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8004E55C 0004A1BC 7C BF 2B 78 */ mr r31, r5
/* 8004E560 0004A1C0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8004E564 0004A1C4 7C 9E 23 78 */ mr r30, r4
/* 8004E568 0004A1C8 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8004E56C 0004A1CC 7C 7D 1B 78 */ mr r29, r3
/* 8004E570 0004A1D0 7F A4 EB 78 */ mr r4, r29
/* 8004E574 0004A1D4 38 61 00 08 */ addi r3, r1, 8
/* 8004E578 0004A1D8 4B FF FF 8D */ bl func_8004E504
/* 8004E57C 0004A1DC C0 01 00 08 */ lfs f0, 8(r1)
/* 8004E580 0004A1E0 38 9D 00 5C */ addi r4, r29, 0x5c
/* 8004E584 0004A1E4 FC 20 F8 90 */ fmr f1, f31
/* 8004E588 0004A1E8 7F A3 EB 78 */ mr r3, r29
/* 8004E58C 0004A1EC D0 1D 00 5C */ stfs f0, 0x5c(r29)
/* 8004E590 0004A1F0 7F C5 F3 78 */ mr r5, r30
/* 8004E594 0004A1F4 7C 86 23 78 */ mr r6, r4
/* 8004E598 0004A1F8 7F E7 FB 78 */ mr r7, r31
/* 8004E59C 0004A1FC C0 01 00 0C */ lfs f0, 0xc(r1)
/* 8004E5A0 0004A200 D0 1D 00 60 */ stfs f0, 0x60(r29)
/* 8004E5A4 0004A204 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8004E5A8 0004A208 D0 1D 00 64 */ stfs f0, 0x64(r29)
/* 8004E5AC 0004A20C 48 00 1F 99 */ bl func_80050544
/* 8004E5B0 0004A210 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 8004E5B4 0004A214 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8004E5B8 0004A218 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 8004E5BC 0004A21C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8004E5C0 0004A220 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8004E5C4 0004A224 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8004E5C8 0004A228 7C 08 03 A6 */ mtlr r0
/* 8004E5CC 0004A22C 38 21 00 40 */ addi r1, r1, 0x40
/* 8004E5D0 0004A230 4E 80 00 20 */ blr
.global func_8004E5D4
func_8004E5D4:
/* 8004E5D4 0004A234 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004E5D8 0004A238 7C 08 02 A6 */ mflr r0
/* 8004E5DC 0004A23C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004E5E0 0004A240 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004E5E4 0004A244 7C 7F 1B 78 */ mr r31, r3
/* 8004E5E8 0004A248 C0 03 00 4C */ lfs f0, 0x4c(r3)
/* 8004E5EC 0004A24C EC 00 08 28 */ fsubs f0, f0, f1
/* 8004E5F0 0004A250 D0 03 00 4C */ stfs f0, 0x4c(r3)
/* 8004E5F4 0004A254 81 83 00 30 */ lwz r12, 0x30(r3)
/* 8004E5F8 0004A258 81 8C 00 08 */ lwz r12, 8(r12)
/* 8004E5FC 0004A25C 7D 89 03 A6 */ mtctr r12
/* 8004E600 0004A260 4E 80 04 21 */ bctrl
/* 8004E604 0004A264 2C 03 00 00 */ cmpwi r3, 0
/* 8004E608 0004A268 41 82 00 30 */ beq lbl_8004E638
/* 8004E60C 0004A26C 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 8004E610 0004A270 2C 03 00 00 */ cmpwi r3, 0
/* 8004E614 0004A274 41 82 00 24 */ beq lbl_8004E638
/* 8004E618 0004A278 C0 1F 00 5C */ lfs f0, 0x5c(r31)
/* 8004E61C 0004A27C 38 80 00 01 */ li r4, 1
/* 8004E620 0004A280 D0 03 00 20 */ stfs f0, 0x20(r3)
/* 8004E624 0004A284 C0 1F 00 60 */ lfs f0, 0x60(r31)
/* 8004E628 0004A288 D0 03 00 24 */ stfs f0, 0x24(r3)
/* 8004E62C 0004A28C C0 1F 00 64 */ lfs f0, 0x64(r31)
/* 8004E630 0004A290 D0 03 00 28 */ stfs f0, 0x28(r3)
/* 8004E634 0004A294 48 1A 40 85 */ bl func_801F26B8
lbl_8004E638:
/* 8004E638 0004A298 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 8004E63C 0004A29C 54 60 07 7B */ rlwinm. r0, r3, 0, 0x1d, 0x1d
/* 8004E640 0004A2A0 41 82 00 24 */ beq lbl_8004E664
/* 8004E644 0004A2A4 54 60 07 39 */ rlwinm. r0, r3, 0, 0x1c, 0x1c
/* 8004E648 0004A2A8 41 82 00 1C */ beq lbl_8004E664
/* 8004E64C 0004A2AC C0 3F 00 4C */ lfs f1, 0x4c(r31)
/* 8004E650 0004A2B0 C0 02 84 30 */ lfs f0, lbl_80640A30-_SDA2_BASE_(r2)
/* 8004E654 0004A2B4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8004E658 0004A2B8 40 80 00 0C */ bge lbl_8004E664
/* 8004E65C 0004A2BC 7F E3 FB 78 */ mr r3, r31
/* 8004E660 0004A2C0 4B FF F9 19 */ bl func_8004DF78
lbl_8004E664:
/* 8004E664 0004A2C4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004E668 0004A2C8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004E66C 0004A2CC 7C 08 03 A6 */ mtlr r0
/* 8004E670 0004A2D0 38 21 00 10 */ addi r1, r1, 0x10
/* 8004E674 0004A2D4 4E 80 00 20 */ blr
.global func_8004E678
func_8004E678:
/* 8004E678 0004A2D8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004E67C 0004A2DC 7C 08 02 A6 */ mflr r0
/* 8004E680 0004A2E0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004E684 0004A2E4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8004E688 0004A2E8 7C BF 2B 78 */ mr r31, r5
/* 8004E68C 0004A2EC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8004E690 0004A2F0 7C 9E 23 78 */ mr r30, r4
/* 8004E694 0004A2F4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8004E698 0004A2F8 7C 7D 1B 78 */ mr r29, r3
/* 8004E69C 0004A2FC 80 03 00 40 */ lwz r0, 0x40(r3)
/* 8004E6A0 0004A300 2C 00 00 00 */ cmpwi r0, 0
/* 8004E6A4 0004A304 41 82 00 C0 */ beq lbl_8004E764
/* 8004E6A8 0004A308 4B FE 49 E1 */ bl func_80033088
/* 8004E6AC 0004A30C 80 9D 00 40 */ lwz r4, 0x40(r29)
/* 8004E6B0 0004A310 80 84 01 38 */ lwz r4, 0x138(r4)
/* 8004E6B4 0004A314 2C 04 00 00 */ cmpwi r4, 0
/* 8004E6B8 0004A318 41 82 00 10 */ beq lbl_8004E6C8
/* 8004E6BC 0004A31C A0 04 01 48 */ lhz r0, 0x148(r4)
/* 8004E6C0 0004A320 60 00 00 08 */ ori r0, r0, 8
/* 8004E6C4 0004A324 B0 04 01 48 */ sth r0, 0x148(r4)
lbl_8004E6C8:
/* 8004E6C8 0004A328 2C 1E 00 00 */ cmpwi r30, 0
/* 8004E6CC 0004A32C 41 82 00 1C */ beq lbl_8004E6E8
/* 8004E6D0 0004A330 2C 1F 00 00 */ cmpwi r31, 0
/* 8004E6D4 0004A334 41 82 00 14 */ beq lbl_8004E6E8
/* 8004E6D8 0004A338 80 7D 00 40 */ lwz r3, 0x40(r29)
/* 8004E6DC 0004A33C 38 00 00 00 */ li r0, 0
/* 8004E6E0 0004A340 90 03 01 2C */ stw r0, 0x12c(r3)
/* 8004E6E4 0004A344 48 00 00 80 */ b lbl_8004E764
lbl_8004E6E8:
/* 8004E6E8 0004A348 2C 1E 00 00 */ cmpwi r30, 0
/* 8004E6EC 0004A34C 41 82 00 2C */ beq lbl_8004E718
/* 8004E6F0 0004A350 2C 03 00 00 */ cmpwi r3, 0
/* 8004E6F4 0004A354 41 82 00 0C */ beq lbl_8004E700
/* 8004E6F8 0004A358 38 80 00 00 */ li r4, 0
/* 8004E6FC 0004A35C 4B FE 54 81 */ bl func_80033B7C
lbl_8004E700:
/* 8004E700 0004A360 2C 03 00 00 */ cmpwi r3, 0
/* 8004E704 0004A364 41 82 00 60 */ beq lbl_8004E764
/* 8004E708 0004A368 4B FE 72 69 */ bl func_80035970
/* 8004E70C 0004A36C 80 9D 00 40 */ lwz r4, 0x40(r29)
/* 8004E710 0004A370 90 64 01 2C */ stw r3, 0x12c(r4)
/* 8004E714 0004A374 48 00 00 50 */ b lbl_8004E764
lbl_8004E718:
/* 8004E718 0004A378 2C 1F 00 00 */ cmpwi r31, 0
/* 8004E71C 0004A37C 41 82 00 2C */ beq lbl_8004E748
/* 8004E720 0004A380 2C 03 00 00 */ cmpwi r3, 0
/* 8004E724 0004A384 41 82 00 0C */ beq lbl_8004E730
/* 8004E728 0004A388 38 80 00 01 */ li r4, 1
/* 8004E72C 0004A38C 4B FE 54 51 */ bl func_80033B7C
lbl_8004E730:
/* 8004E730 0004A390 2C 03 00 00 */ cmpwi r3, 0
/* 8004E734 0004A394 41 82 00 30 */ beq lbl_8004E764
/* 8004E738 0004A398 4B FE 72 39 */ bl func_80035970
/* 8004E73C 0004A39C 80 9D 00 40 */ lwz r4, 0x40(r29)
/* 8004E740 0004A3A0 90 64 01 2C */ stw r3, 0x12c(r4)
/* 8004E744 0004A3A4 48 00 00 20 */ b lbl_8004E764
lbl_8004E748:
/* 8004E748 0004A3A8 80 7D 00 40 */ lwz r3, 0x40(r29)
/* 8004E74C 0004A3AC 80 63 01 38 */ lwz r3, 0x138(r3)
/* 8004E750 0004A3B0 2C 03 00 00 */ cmpwi r3, 0
/* 8004E754 0004A3B4 41 82 00 10 */ beq lbl_8004E764
/* 8004E758 0004A3B8 A0 03 01 48 */ lhz r0, 0x148(r3)
/* 8004E75C 0004A3BC 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
/* 8004E760 0004A3C0 B0 03 01 48 */ sth r0, 0x148(r3)
lbl_8004E764:
/* 8004E764 0004A3C4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004E768 0004A3C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8004E76C 0004A3CC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8004E770 0004A3D0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8004E774 0004A3D4 7C 08 03 A6 */ mtlr r0
/* 8004E778 0004A3D8 38 21 00 20 */ addi r1, r1, 0x20
/* 8004E77C 0004A3DC 4E 80 00 20 */ blr
.global func_8004E780
func_8004E780:
/* 8004E780 0004A3E0 80 03 00 34 */ lwz r0, 0x34(r3)
/* 8004E784 0004A3E4 90 83 00 54 */ stw r4, 0x54(r3)
/* 8004E788 0004A3E8 60 00 00 10 */ ori r0, r0, 0x10
/* 8004E78C 0004A3EC 90 03 00 34 */ stw r0, 0x34(r3)
/* 8004E790 0004A3F0 4E 80 00 20 */ blr
.global func_8004E794
func_8004E794:
/* 8004E794 0004A3F4 80 03 00 34 */ lwz r0, 0x34(r3)
/* 8004E798 0004A3F8 80 83 00 40 */ lwz r4, 0x40(r3)
/* 8004E79C 0004A3FC 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
/* 8004E7A0 0004A400 2C 04 00 00 */ cmpwi r4, 0
/* 8004E7A4 0004A404 90 03 00 34 */ stw r0, 0x34(r3)
/* 8004E7A8 0004A408 4D 82 00 20 */ beqlr
/* 8004E7AC 0004A40C 80 64 01 38 */ lwz r3, 0x138(r4)
/* 8004E7B0 0004A410 2C 03 00 00 */ cmpwi r3, 0
/* 8004E7B4 0004A414 4D 82 00 20 */ beqlr
/* 8004E7B8 0004A418 A0 03 01 48 */ lhz r0, 0x148(r3)
/* 8004E7BC 0004A41C 54 00 06 F2 */ rlwinm r0, r0, 0, 0x1b, 0x19
/* 8004E7C0 0004A420 B0 03 01 48 */ sth r0, 0x148(r3)
/* 8004E7C4 0004A424 4E 80 00 20 */ blr
.global func_8004E7C8
func_8004E7C8:
/* 8004E7C8 0004A428 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8004E7CC 0004A42C 7C 08 02 A6 */ mflr r0
/* 8004E7D0 0004A430 90 01 00 14 */ stw r0, 0x14(r1)
/* 8004E7D4 0004A434 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8004E7D8 0004A438 7C 7F 1B 78 */ mr r31, r3
/* 8004E7DC 0004A43C 80 83 00 40 */ lwz r4, 0x40(r3)
/* 8004E7E0 0004A440 2C 04 00 00 */ cmpwi r4, 0
/* 8004E7E4 0004A444 41 82 00 64 */ beq lbl_8004E848
/* 8004E7E8 0004A448 80 04 01 04 */ lwz r0, 0x104(r4)
/* 8004E7EC 0004A44C 60 00 00 01 */ ori r0, r0, 1
/* 8004E7F0 0004A450 54 00 07 F8 */ rlwinm r0, r0, 0, 0x1f, 0x1c
/* 8004E7F4 0004A454 90 04 01 04 */ stw r0, 0x104(r4)
/* 8004E7F8 0004A458 D0 24 01 08 */ stfs f1, 0x108(r4)
/* 8004E7FC 0004A45C 80 63 00 40 */ lwz r3, 0x40(r3)
/* 8004E800 0004A460 80 63 01 38 */ lwz r3, 0x138(r3)
/* 8004E804 0004A464 48 1B 90 3D */ bl func_80207840
/* 8004E808 0004A468 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 8004E80C 0004A46C D0 3F 00 4C */ stfs f1, 0x4c(r31)
/* 8004E810 0004A470 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 8004E814 0004A474 41 82 00 20 */ beq lbl_8004E834
/* 8004E818 0004A478 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 8004E81C 0004A47C 80 63 01 38 */ lwz r3, 0x138(r3)
/* 8004E820 0004A480 2C 03 00 00 */ cmpwi r3, 0
/* 8004E824 0004A484 41 82 00 10 */ beq lbl_8004E834
/* 8004E828 0004A488 A0 03 01 48 */ lhz r0, 0x148(r3)
/* 8004E82C 0004A48C 60 00 00 20 */ ori r0, r0, 0x20
/* 8004E830 0004A490 B0 03 01 48 */ sth r0, 0x148(r3)
lbl_8004E834:
/* 8004E834 0004A494 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 8004E838 0004A498 38 00 00 00 */ li r0, 0
/* 8004E83C 0004A49C 90 1F 00 58 */ stw r0, 0x58(r31)
/* 8004E840 0004A4A0 60 60 00 08 */ ori r0, r3, 8
/* 8004E844 0004A4A4 90 1F 00 34 */ stw r0, 0x34(r31)
lbl_8004E848:
/* 8004E848 0004A4A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8004E84C 0004A4AC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8004E850 0004A4B0 7C 08 03 A6 */ mtlr r0
/* 8004E854 0004A4B4 38 21 00 10 */ addi r1, r1, 0x10
/* 8004E858 0004A4B8 4E 80 00 20 */ blr
.global func_8004E85C
func_8004E85C:
/* 8004E85C 0004A4BC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8004E860 0004A4C0 7C 08 02 A6 */ mflr r0
/* 8004E864 0004A4C4 90 01 00 34 */ stw r0, 0x34(r1)
/* 8004E868 0004A4C8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8004E86C 0004A4CC 7C DF 33 78 */ mr r31, r6
/* 8004E870 0004A4D0 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8004E874 0004A4D4 7C 9E 23 78 */ mr r30, r4
/* 8004E878 0004A4D8 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8004E87C 0004A4DC 7C 7D 1B 78 */ mr r29, r3
/* 8004E880 0004A4E0 80 03 00 34 */ lwz r0, 0x34(r3)
/* 8004E884 0004A4E4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 8004E888 0004A4E8 41 82 00 7C */ beq lbl_8004E904
/* 8004E88C 0004A4EC 4B FF 6D 05 */ bl func_80045590
/* 8004E890 0004A4F0 80 8D A4 C8 */ lwz r4, lbl_8063F788-_SDA_BASE_(r13)
/* 8004E894 0004A4F4 80 BD 00 58 */ lwz r5, 0x58(r29)
/* 8004E898 0004A4F8 80 04 00 88 */ lwz r0, 0x88(r4)
/* 8004E89C 0004A4FC 7C 05 00 40 */ cmplw r5, r0
/* 8004E8A0 0004A500 41 82 00 64 */ beq lbl_8004E904
/* 8004E8A4 0004A504 7F C4 F3 78 */ mr r4, r30
/* 8004E8A8 0004A508 4B FF 79 E5 */ bl func_8004628C
/* 8004E8AC 0004A50C 2C 03 00 00 */ cmpwi r3, 0
/* 8004E8B0 0004A510 41 82 00 54 */ beq lbl_8004E904
/* 8004E8B4 0004A514 80 6D A4 C8 */ lwz r3, lbl_8063F788-_SDA_BASE_(r13)
/* 8004E8B8 0004A518 80 03 00 88 */ lwz r0, 0x88(r3)
/* 8004E8BC 0004A51C 90 1D 00 58 */ stw r0, 0x58(r29)
/* 8004E8C0 0004A520 4B FF EF 4D */ bl func_8004D80C
/* 8004E8C4 0004A524 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8004E8C8 0004A528 38 A1 00 10 */ addi r5, r1, 0x10
/* 8004E8CC 0004A52C C0 02 84 3C */ lfs f0, lbl_80640A3C-_SDA2_BASE_(r2)
/* 8004E8D0 0004A530 38 C1 00 08 */ addi r6, r1, 8
/* 8004E8D4 0004A534 C0 7F 00 08 */ lfs f3, 8(r31)
/* 8004E8D8 0004A538 38 63 35 10 */ addi r3, r3, 0x3510
/* 8004E8DC 0004A53C C0 5F 00 00 */ lfs f2, 0(r31)
/* 8004E8E0 0004A540 EC 21 00 28 */ fsubs f1, f1, f0
/* 8004E8E4 0004A544 C0 02 84 40 */ lfs f0, lbl_80640A40-_SDA2_BASE_(r2)
/* 8004E8E8 0004A548 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8004E8EC 0004A54C D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8004E8F0 0004A550 D0 61 00 18 */ stfs f3, 0x18(r1)
/* 8004E8F4 0004A554 D0 01 00 08 */ stfs f0, 8(r1)
/* 8004E8F8 0004A558 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 8004E8FC 0004A55C 80 9D 00 54 */ lwz r4, 0x54(r29)
/* 8004E900 0004A560 48 00 08 D9 */ bl func_8004F1D8
lbl_8004E904:
/* 8004E904 0004A564 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8004E908 0004A568 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8004E90C 0004A56C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8004E910 0004A570 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8004E914 0004A574 7C 08 03 A6 */ mtlr r0
/* 8004E918 0004A578 38 21 00 30 */ addi r1, r1, 0x30
/* 8004E91C 0004A57C 4E 80 00 20 */ blr
.global func_8004E920
func_8004E920:
/* 8004E920 0004A580 3C 60 80 05 */ lis r3, lbl_8004E92C@ha
/* 8004E924 0004A584 38 63 E9 2C */ addi r3, r3, lbl_8004E92C@l
/* 8004E928 0004A588 48 1B 6B B8 */ b func_802054E0
lbl_8004E92C:
/* 8004E92C 0004A58C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8004E930 0004A590 7C 08 02 A6 */ mflr r0
/* 8004E934 0004A594 2C 03 00 00 */ cmpwi r3, 0
/* 8004E938 0004A598 90 01 00 24 */ stw r0, 0x24(r1)
/* 8004E93C 0004A59C DB E1 00 18 */ stfd f31, 0x18(r1)
/* 8004E940 0004A5A0 FF E0 08 90 */ fmr f31, f1
/* 8004E944 0004A5A4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8004E948 0004A5A8 7C DF 33 78 */ mr r31, r6
/* 8004E94C 0004A5AC 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8004E950 0004A5B0 7C BE 2B 78 */ mr r30, r5
/* 8004E954 0004A5B4 93 A1 00 0C */ stw r29, 0xc(r1)
/* 8004E958 0004A5B8 7C 9D 23 78 */ mr r29, r4
/* 8004E95C 0004A5BC 93 81 00 08 */ stw r28, 8(r1)
/* 8004E960 0004A5C0 7C 7C 1B 78 */ mr r28, r3
/* 8004E964 0004A5C4 40 82 00 0C */ bne lbl_8004E970
/* 8004E968 0004A5C8 38 60 00 00 */ li r3, 0
/* 8004E96C 0004A5CC 48 00 00 40 */ b lbl_8004E9AC
lbl_8004E970:
/* 8004E970 0004A5D0 4B FF EE 9D */ bl func_8004D80C
/* 8004E974 0004A5D4 2C 03 00 00 */ cmpwi r3, 0
/* 8004E978 0004A5D8 41 82 00 30 */ beq lbl_8004E9A8
/* 8004E97C 0004A5DC 2C 1C 00 00 */ cmpwi r28, 0
/* 8004E980 0004A5E0 41 82 00 28 */ beq lbl_8004E9A8
/* 8004E984 0004A5E4 80 9C 01 3C */ lwz r4, 0x13c(r28)
/* 8004E988 0004A5E8 4B FF F4 A1 */ bl func_8004DE28
/* 8004E98C 0004A5EC 2C 03 00 00 */ cmpwi r3, 0
/* 8004E990 0004A5F0 41 82 00 18 */ beq lbl_8004E9A8
/* 8004E994 0004A5F4 FC 20 F8 90 */ fmr f1, f31
/* 8004E998 0004A5F8 7F A4 EB 78 */ mr r4, r29
/* 8004E99C 0004A5FC 7F C5 F3 78 */ mr r5, r30
/* 8004E9A0 0004A600 7F E6 FB 78 */ mr r6, r31
/* 8004E9A4 0004A604 4B FF FE B9 */ bl func_8004E85C
lbl_8004E9A8:
/* 8004E9A8 0004A608 38 60 00 00 */ li r3, 0
lbl_8004E9AC:
/* 8004E9AC 0004A60C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8004E9B0 0004A610 CB E1 00 18 */ lfd f31, 0x18(r1)
/* 8004E9B4 0004A614 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8004E9B8 0004A618 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8004E9BC 0004A61C 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 8004E9C0 0004A620 83 81 00 08 */ lwz r28, 8(r1)
/* 8004E9C4 0004A624 7C 08 03 A6 */ mtlr r0
/* 8004E9C8 0004A628 38 21 00 20 */ addi r1, r1, 0x20
/* 8004E9CC 0004A62C 4E 80 00 20 */ blr
.global func_8004E9D0
func_8004E9D0:
/* 8004E9D0 0004A630 38 A0 00 01 */ li r5, 1
/* 8004E9D4 0004A634 38 6D 98 38 */ addi r3, r13, lbl_8063EAF8-_SDA_BASE_
/* 8004E9D8 0004A638 38 80 00 04 */ li r4, 4
/* 8004E9DC 0004A63C 38 00 00 00 */ li r0, 0
/* 8004E9E0 0004A640 98 AD 98 38 */ stb r5, lbl_8063EAF8-_SDA_BASE_(r13)
/* 8004E9E4 0004A644 B0 83 00 02 */ sth r4, 2(r3)
/* 8004E9E8 0004A648 98 03 00 04 */ stb r0, 4(r3)
/* 8004E9EC 0004A64C 4E 80 00 20 */ blr
|