summaryrefslogtreecommitdiff
path: root/asm/code_80031544.s
blob: bd695eb207b576b7e55d4bb347aaae998fe794d5 (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
.include "macros.inc"

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

.global lbl_80031544
lbl_80031544:
/* 80031544 0002D1A4  94 21 FF 40 */	stwu r1, -0xc0(r1)
/* 80031548 0002D1A8  7C 08 02 A6 */	mflr r0
/* 8003154C 0002D1AC  90 01 00 C4 */	stw r0, 0xc4(r1)
/* 80031550 0002D1B0  DB E1 00 B0 */	stfd f31, 0xb0(r1)
/* 80031554 0002D1B4  F3 E1 00 B8 */	psq_st f31, 184(r1), 0, qr0
/* 80031558 0002D1B8  39 61 00 B0 */	addi r11, r1, 0xb0
/* 8003155C 0002D1BC  48 19 5B C9 */	bl _savegpr_26
/* 80031560 0002D1C0  7C 7A 1B 78 */	mr r26, r3
/* 80031564 0002D1C4  7C 9B 23 78 */	mr r27, r4
/* 80031568 0002D1C8  7C BD 2B 78 */	mr r29, r5
/* 8003156C 0002D1CC  7C DE 33 78 */	mr r30, r6
/* 80031570 0002D1D0  3B E0 00 00 */	li r31, 0
/* 80031574 0002D1D4  48 01 C2 99 */	bl func_8004D80C
/* 80031578 0002D1D8  38 00 00 00 */	li r0, 0
/* 8003157C 0002D1DC  2C 03 00 00 */	cmpwi r3, 0
/* 80031580 0002D1E0  90 01 00 40 */	stw r0, 0x40(r1)
/* 80031584 0002D1E4  7C 7C 1B 78 */	mr r28, r3
/* 80031588 0002D1E8  90 01 00 44 */	stw r0, 0x44(r1)
/* 8003158C 0002D1EC  90 01 00 48 */	stw r0, 0x48(r1)
/* 80031590 0002D1F0  40 82 00 0C */	bne lbl_8003159C
/* 80031594 0002D1F4  38 60 00 01 */	li r3, 1
/* 80031598 0002D1F8  48 00 0C 0C */	b lbl_800321A4
lbl_8003159C:
/* 8003159C 0002D1FC  2C 1B 00 01 */	cmpwi r27, 1
/* 800315A0 0002D200  41 82 00 20 */	beq lbl_800315C0
/* 800315A4 0002D204  80 9D 00 04 */	lwz r4, 4(r29)
/* 800315A8 0002D208  48 01 C8 81 */	bl func_8004DE28
/* 800315AC 0002D20C  2C 03 00 00 */	cmpwi r3, 0
/* 800315B0 0002D210  7C 7F 1B 78 */	mr r31, r3
/* 800315B4 0002D214  40 82 00 0C */	bne lbl_800315C0
/* 800315B8 0002D218  38 60 00 01 */	li r3, 1
/* 800315BC 0002D21C  48 00 0B E8 */	b lbl_800321A4
lbl_800315C0:
/* 800315C0 0002D220  28 1B 00 28 */	cmplwi r27, 0x28
/* 800315C4 0002D224  41 81 0B DC */	bgt lbl_800321A0
/* 800315C8 0002D228  3C 60 80 41 */	lis r3, lbl_8040A0F0@ha
/* 800315CC 0002D22C  57 60 10 3A */	slwi r0, r27, 2
/* 800315D0 0002D230  38 63 A0 F0 */	addi r3, r3, lbl_8040A0F0@l
/* 800315D4 0002D234  7C 63 00 2E */	lwzx r3, r3, r0
/* 800315D8 0002D238  7C 69 03 A6 */	mtctr r3
/* 800315DC 0002D23C  4E 80 04 20 */	bctr
/* 800315E0 0002D240  38 60 00 2D */	li r3, 0x2d
/* 800315E4 0002D244  38 00 00 01 */	li r0, 1
/* 800315E8 0002D248  B0 7E 00 00 */	sth r3, 0(r30)
/* 800315EC 0002D24C  7F 83 E3 78 */	mr r3, r28
/* 800315F0 0002D250  B0 1E 00 02 */	sth r0, 2(r30)
/* 800315F4 0002D254  48 01 C6 5D */	bl func_8004DC50
/* 800315F8 0002D258  80 03 00 50 */	lwz r0, 0x50(r3)
/* 800315FC 0002D25C  90 1E 00 04 */	stw r0, 4(r30)
/* 80031600 0002D260  48 00 0B A0 */	b lbl_800321A0
/* 80031604 0002D264  2C 1F 00 00 */	cmpwi r31, 0
/* 80031608 0002D268  41 82 0B 98 */	beq lbl_800321A0
/* 8003160C 0002D26C  7F 83 E3 78 */	mr r3, r28
/* 80031610 0002D270  7F E4 FB 78 */	mr r4, r31
/* 80031614 0002D274  48 01 C6 99 */	bl func_8004DCAC
/* 80031618 0002D278  38 00 00 00 */	li r0, 0
/* 8003161C 0002D27C  B0 1D 00 02 */	sth r0, 2(r29)
/* 80031620 0002D280  90 1D 00 04 */	stw r0, 4(r29)
/* 80031624 0002D284  48 00 0B 7C */	b lbl_800321A0
/* 80031628 0002D288  38 60 01 00 */	li r3, 0x100
/* 8003162C 0002D28C  48 1A 97 39 */	bl func_801DAD64
/* 80031630 0002D290  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031634 0002D294  7C 7C 1B 78 */	mr r28, r3
/* 80031638 0002D298  2C 00 00 03 */	cmpwi r0, 3
/* 8003163C 0002D29C  40 82 00 0C */	bne lbl_80031648
/* 80031640 0002D2A0  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 80031644 0002D2A4  48 00 00 10 */	b lbl_80031654
lbl_80031648:
/* 80031648 0002D2A8  7F 84 E3 78 */	mr r4, r28
/* 8003164C 0002D2AC  38 7D 00 08 */	addi r3, r29, 8
/* 80031650 0002D2B0  4B FF 6D 61 */	bl func_800283B0
lbl_80031654:
/* 80031654 0002D2B4  7C 64 1B 78 */	mr r4, r3
/* 80031658 0002D2B8  7F E3 FB 78 */	mr r3, r31
/* 8003165C 0002D2BC  48 01 C9 E9 */	bl func_8004E044
/* 80031660 0002D2C0  2C 03 00 00 */	cmpwi r3, 0
/* 80031664 0002D2C4  41 82 00 14 */	beq lbl_80031678
/* 80031668 0002D2C8  38 00 00 01 */	li r0, 1
/* 8003166C 0002D2CC  B0 1E 00 00 */	sth r0, 0(r30)
/* 80031670 0002D2D0  90 1E 00 04 */	stw r0, 4(r30)
/* 80031674 0002D2D4  48 00 00 14 */	b lbl_80031688
lbl_80031678:
/* 80031678 0002D2D8  38 60 00 01 */	li r3, 1
/* 8003167C 0002D2DC  38 00 00 00 */	li r0, 0
/* 80031680 0002D2E0  B0 7E 00 00 */	sth r3, 0(r30)
/* 80031684 0002D2E4  90 1E 00 04 */	stw r0, 4(r30)
lbl_80031688:
/* 80031688 0002D2E8  7F 83 E3 78 */	mr r3, r28
/* 8003168C 0002D2EC  48 1A 98 19 */	bl func_801DAEA4
/* 80031690 0002D2F0  48 00 0B 10 */	b lbl_800321A0
/* 80031694 0002D2F4  A8 9D 00 08 */	lha r4, 8(r29)
/* 80031698 0002D2F8  38 60 00 0A */	li r3, 0xa
/* 8003169C 0002D2FC  80 1F 00 50 */	lwz r0, 0x50(r31)
/* 800316A0 0002D300  2C 04 00 01 */	cmpwi r4, 1
/* 800316A4 0002D304  90 61 00 40 */	stw r3, 0x40(r1)
/* 800316A8 0002D308  90 01 00 44 */	stw r0, 0x44(r1)
/* 800316AC 0002D30C  40 82 00 0C */	bne lbl_800316B8
/* 800316B0 0002D310  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 800316B4 0002D314  48 00 00 28 */	b lbl_800316DC
lbl_800316B8:
/* 800316B8 0002D318  2C 04 00 02 */	cmpwi r4, 2
/* 800316BC 0002D31C  40 82 00 18 */	bne lbl_800316D4
/* 800316C0 0002D320  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 800316C4 0002D324  FC 00 00 1E */	fctiwz f0, f0
/* 800316C8 0002D328  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 800316CC 0002D32C  80 61 00 94 */	lwz r3, 0x94(r1)
/* 800316D0 0002D330  48 00 00 0C */	b lbl_800316DC
lbl_800316D4:
/* 800316D4 0002D334  38 7D 00 08 */	addi r3, r29, 8
/* 800316D8 0002D338  48 1F C6 5D */	bl func_8022DD34
lbl_800316DC:
/* 800316DC 0002D33C  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 800316E0 0002D340  90 61 00 48 */	stw r3, 0x48(r1)
/* 800316E4 0002D344  2C 00 00 01 */	cmpwi r0, 1
/* 800316E8 0002D348  40 82 00 0C */	bne lbl_800316F4
/* 800316EC 0002D34C  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 800316F0 0002D350  48 00 00 28 */	b lbl_80031718
lbl_800316F4:
/* 800316F4 0002D354  2C 00 00 02 */	cmpwi r0, 2
/* 800316F8 0002D358  40 82 00 18 */	bne lbl_80031710
/* 800316FC 0002D35C  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 80031700 0002D360  FC 00 00 1E */	fctiwz f0, f0
/* 80031704 0002D364  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031708 0002D368  80 61 00 94 */	lwz r3, 0x94(r1)
/* 8003170C 0002D36C  48 00 00 0C */	b lbl_80031718
lbl_80031710:
/* 80031710 0002D370  38 7D 00 10 */	addi r3, r29, 0x10
/* 80031714 0002D374  48 1F C6 21 */	bl func_8022DD34
lbl_80031718:
/* 80031718 0002D378  81 0D 97 00 */	lwz r8, lbl_8063E9C0-_SDA_BASE_(r13)
/* 8003171C 0002D37C  90 61 00 4C */	stw r3, 0x4c(r1)
/* 80031720 0002D380  80 E8 00 08 */	lwz r7, 8(r8)
/* 80031724 0002D384  80 88 00 00 */	lwz r4, 0(r8)
/* 80031728 0002D388  38 C7 00 01 */	addi r6, r7, 1
/* 8003172C 0002D38C  80 08 00 04 */	lwz r0, 4(r8)
/* 80031730 0002D390  6C 85 80 00 */	xoris r5, r4, 0x8000
/* 80031734 0002D394  7C 84 30 50 */	subf r4, r4, r6
/* 80031738 0002D398  7C 84 28 14 */	addc r4, r4, r5
/* 8003173C 0002D39C  7C 84 21 10 */	subfe r4, r4, r4
/* 80031740 0002D3A0  7C C6 20 78 */	andc r6, r6, r4
/* 80031744 0002D3A4  7C 06 00 00 */	cmpw r6, r0
/* 80031748 0002D3A8  41 82 00 50 */	beq lbl_80031798
/* 8003174C 0002D3AC  80 A8 00 0C */	lwz r5, 0xc(r8)
/* 80031750 0002D3B0  54 E0 28 34 */	slwi r0, r7, 5
/* 80031754 0002D3B4  80 81 00 40 */	lwz r4, 0x40(r1)
/* 80031758 0002D3B8  7C A5 02 14 */	add r5, r5, r0
/* 8003175C 0002D3BC  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80031760 0002D3C0  90 85 00 00 */	stw r4, 0(r5)
/* 80031764 0002D3C4  80 81 00 48 */	lwz r4, 0x48(r1)
/* 80031768 0002D3C8  90 05 00 04 */	stw r0, 4(r5)
/* 8003176C 0002D3CC  80 01 00 50 */	lwz r0, 0x50(r1)
/* 80031770 0002D3D0  90 85 00 08 */	stw r4, 8(r5)
/* 80031774 0002D3D4  80 81 00 54 */	lwz r4, 0x54(r1)
/* 80031778 0002D3D8  90 65 00 0C */	stw r3, 0xc(r5)
/* 8003177C 0002D3DC  80 61 00 58 */	lwz r3, 0x58(r1)
/* 80031780 0002D3E0  90 05 00 10 */	stw r0, 0x10(r5)
/* 80031784 0002D3E4  80 01 00 5C */	lwz r0, 0x5c(r1)
/* 80031788 0002D3E8  90 85 00 14 */	stw r4, 0x14(r5)
/* 8003178C 0002D3EC  90 65 00 18 */	stw r3, 0x18(r5)
/* 80031790 0002D3F0  90 05 00 1C */	stw r0, 0x1c(r5)
/* 80031794 0002D3F4  90 C8 00 08 */	stw r6, 8(r8)
lbl_80031798:
/* 80031798 0002D3F8  80 7F 00 34 */	lwz r3, 0x34(r31)
/* 8003179C 0002D3FC  38 00 00 01 */	li r0, 1
/* 800317A0 0002D400  60 63 00 20 */	ori r3, r3, 0x20
/* 800317A4 0002D404  90 7F 00 34 */	stw r3, 0x34(r31)
/* 800317A8 0002D408  B0 1E 00 00 */	sth r0, 0(r30)
/* 800317AC 0002D40C  90 1E 00 04 */	stw r0, 4(r30)
/* 800317B0 0002D410  48 00 09 F0 */	b lbl_800321A0
/* 800317B4 0002D414  80 1F 00 34 */	lwz r0, 0x34(r31)
/* 800317B8 0002D418  54 00 06 B5 */	rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 800317BC 0002D41C  41 82 00 14 */	beq lbl_800317D0
/* 800317C0 0002D420  38 00 00 01 */	li r0, 1
/* 800317C4 0002D424  B0 1E 00 00 */	sth r0, 0(r30)
/* 800317C8 0002D428  90 1E 00 04 */	stw r0, 4(r30)
/* 800317CC 0002D42C  48 00 09 D4 */	b lbl_800321A0
lbl_800317D0:
/* 800317D0 0002D430  38 60 00 01 */	li r3, 1
/* 800317D4 0002D434  38 00 00 00 */	li r0, 0
/* 800317D8 0002D438  B0 7E 00 00 */	sth r3, 0(r30)
/* 800317DC 0002D43C  90 1E 00 04 */	stw r0, 4(r30)
/* 800317E0 0002D440  48 00 09 C0 */	b lbl_800321A0
/* 800317E4 0002D444  38 60 00 01 */	li r3, 1
/* 800317E8 0002D448  38 00 00 00 */	li r0, 0
/* 800317EC 0002D44C  B0 7E 00 00 */	sth r3, 0(r30)
/* 800317F0 0002D450  90 1E 00 04 */	stw r0, 4(r30)
/* 800317F4 0002D454  A8 1D 00 08 */	lha r0, 8(r29)
/* 800317F8 0002D458  2C 80 00 01 */	cmpwi cr1, r0, 1
/* 800317FC 0002D45C  40 86 09 A4 */	bne cr1, lbl_800321A0
/* 80031800 0002D460  83 8D 96 F0 */	lwz r28, lbl_8063E9B0-_SDA_BASE_(r13)
/* 80031804 0002D464  2C 1C 00 00 */	cmpwi r28, 0
/* 80031808 0002D468  41 82 09 98 */	beq lbl_800321A0
/* 8003180C 0002D46C  40 86 00 0C */	bne cr1, lbl_80031818
/* 80031810 0002D470  83 BD 00 0C */	lwz r29, 0xc(r29)
/* 80031814 0002D474  48 00 00 2C */	b lbl_80031840
lbl_80031818:
/* 80031818 0002D478  2C 00 00 02 */	cmpwi r0, 2
/* 8003181C 0002D47C  40 82 00 18 */	bne lbl_80031834
/* 80031820 0002D480  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 80031824 0002D484  FC 00 00 1E */	fctiwz f0, f0
/* 80031828 0002D488  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 8003182C 0002D48C  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031830 0002D490  48 00 00 0C */	b lbl_8003183C
lbl_80031834:
/* 80031834 0002D494  38 7D 00 08 */	addi r3, r29, 8
/* 80031838 0002D498  48 1F C4 FD */	bl func_8022DD34
lbl_8003183C:
/* 8003183C 0002D49C  7C 7D 1B 78 */	mr r29, r3
lbl_80031840:
/* 80031840 0002D4A0  7F 83 E3 78 */	mr r3, r28
/* 80031844 0002D4A4  4B FF 3B 25 */	bl func_80025368
/* 80031848 0002D4A8  7C 64 1B 78 */	mr r4, r3
/* 8003184C 0002D4AC  7F E3 FB 78 */	mr r3, r31
/* 80031850 0002D4B0  7F A5 EB 78 */	mr r5, r29
/* 80031854 0002D4B4  38 C0 00 00 */	li r6, 0
/* 80031858 0002D4B8  48 01 C9 DD */	bl func_8004E234
/* 8003185C 0002D4BC  2C 03 00 00 */	cmpwi r3, 0
/* 80031860 0002D4C0  41 82 09 40 */	beq lbl_800321A0
/* 80031864 0002D4C4  38 00 00 01 */	li r0, 1
/* 80031868 0002D4C8  B0 1E 00 00 */	sth r0, 0(r30)
/* 8003186C 0002D4CC  90 1E 00 04 */	stw r0, 4(r30)
/* 80031870 0002D4D0  48 00 09 30 */	b lbl_800321A0
/* 80031874 0002D4D4  38 60 00 01 */	li r3, 1
/* 80031878 0002D4D8  38 00 00 00 */	li r0, 0
/* 8003187C 0002D4DC  B0 7E 00 00 */	sth r3, 0(r30)
/* 80031880 0002D4E0  90 1E 00 04 */	stw r0, 4(r30)
/* 80031884 0002D4E4  A8 7D 00 08 */	lha r3, 8(r29)
/* 80031888 0002D4E8  2C 83 00 01 */	cmpwi cr1, r3, 1
/* 8003188C 0002D4EC  40 86 09 14 */	bne cr1, lbl_800321A0
/* 80031890 0002D4F0  80 0D 96 F0 */	lwz r0, lbl_8063E9B0-_SDA_BASE_(r13)
/* 80031894 0002D4F4  2C 00 00 00 */	cmpwi r0, 0
/* 80031898 0002D4F8  41 82 09 08 */	beq lbl_800321A0
/* 8003189C 0002D4FC  40 86 00 0C */	bne cr1, lbl_800318A8
/* 800318A0 0002D500  83 9D 00 0C */	lwz r28, 0xc(r29)
/* 800318A4 0002D504  48 00 00 2C */	b lbl_800318D0
lbl_800318A8:
/* 800318A8 0002D508  2C 03 00 02 */	cmpwi r3, 2
/* 800318AC 0002D50C  40 82 00 18 */	bne lbl_800318C4
/* 800318B0 0002D510  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 800318B4 0002D514  FC 00 00 1E */	fctiwz f0, f0
/* 800318B8 0002D518  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 800318BC 0002D51C  80 61 00 94 */	lwz r3, 0x94(r1)
/* 800318C0 0002D520  48 00 00 0C */	b lbl_800318CC
lbl_800318C4:
/* 800318C4 0002D524  38 7D 00 08 */	addi r3, r29, 8
/* 800318C8 0002D528  48 1F C4 6D */	bl func_8022DD34
lbl_800318CC:
/* 800318CC 0002D52C  7C 7C 1B 78 */	mr r28, r3
lbl_800318D0:
/* 800318D0 0002D530  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 800318D4 0002D534  2C 00 00 01 */	cmpwi r0, 1
/* 800318D8 0002D538  40 82 00 0C */	bne lbl_800318E4
/* 800318DC 0002D53C  80 BD 00 14 */	lwz r5, 0x14(r29)
/* 800318E0 0002D540  48 00 00 2C */	b lbl_8003190C
lbl_800318E4:
/* 800318E4 0002D544  2C 00 00 02 */	cmpwi r0, 2
/* 800318E8 0002D548  40 82 00 18 */	bne lbl_80031900
/* 800318EC 0002D54C  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 800318F0 0002D550  FC 00 00 1E */	fctiwz f0, f0
/* 800318F4 0002D554  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 800318F8 0002D558  80 61 00 94 */	lwz r3, 0x94(r1)
/* 800318FC 0002D55C  48 00 00 0C */	b lbl_80031908
lbl_80031900:
/* 80031900 0002D560  38 7D 00 10 */	addi r3, r29, 0x10
/* 80031904 0002D564  48 1F C4 31 */	bl func_8022DD34
lbl_80031908:
/* 80031908 0002D568  7C 65 1B 78 */	mr r5, r3
lbl_8003190C:
/* 8003190C 0002D56C  7F E3 FB 78 */	mr r3, r31
/* 80031910 0002D570  7F 84 E3 78 */	mr r4, r28
/* 80031914 0002D574  38 C0 00 00 */	li r6, 0
/* 80031918 0002D578  48 01 C9 1D */	bl func_8004E234
/* 8003191C 0002D57C  2C 03 00 00 */	cmpwi r3, 0
/* 80031920 0002D580  41 82 08 80 */	beq lbl_800321A0
/* 80031924 0002D584  38 00 00 01 */	li r0, 1
/* 80031928 0002D588  B0 1E 00 00 */	sth r0, 0(r30)
/* 8003192C 0002D58C  90 1E 00 04 */	stw r0, 4(r30)
/* 80031930 0002D590  48 00 08 70 */	b lbl_800321A0
/* 80031934 0002D594  7F E3 FB 78 */	mr r3, r31
/* 80031938 0002D598  48 01 C6 41 */	bl func_8004DF78
/* 8003193C 0002D59C  48 00 08 64 */	b lbl_800321A0
/* 80031940 0002D5A0  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031944 0002D5A4  2C 00 00 04 */	cmpwi r0, 4
/* 80031948 0002D5A8  40 82 00 0C */	bne lbl_80031954
/* 8003194C 0002D5AC  80 BD 00 0C */	lwz r5, 0xc(r29)
/* 80031950 0002D5B0  48 00 00 10 */	b lbl_80031960
lbl_80031954:
/* 80031954 0002D5B4  38 7D 00 08 */	addi r3, r29, 8
/* 80031958 0002D5B8  4B FF 69 89 */	bl func_800282E0
/* 8003195C 0002D5BC  7C 65 1B 78 */	mr r5, r3
lbl_80031960:
/* 80031960 0002D5C0  80 7F 00 40 */	lwz r3, 0x40(r31)
/* 80031964 0002D5C4  2C 03 00 00 */	cmpwi r3, 0
/* 80031968 0002D5C8  41 82 08 38 */	beq lbl_800321A0
/* 8003196C 0002D5CC  C0 05 00 00 */	lfs f0, 0(r5)
/* 80031970 0002D5D0  38 80 00 01 */	li r4, 1
/* 80031974 0002D5D4  D0 03 00 20 */	stfs f0, 0x20(r3)
/* 80031978 0002D5D8  C0 05 00 04 */	lfs f0, 4(r5)
/* 8003197C 0002D5DC  D0 03 00 24 */	stfs f0, 0x24(r3)
/* 80031980 0002D5E0  C0 05 00 08 */	lfs f0, 8(r5)
/* 80031984 0002D5E4  D0 03 00 28 */	stfs f0, 0x28(r3)
/* 80031988 0002D5E8  48 1C 0D 31 */	bl func_801F26B8
/* 8003198C 0002D5EC  48 00 08 14 */	b lbl_800321A0
/* 80031990 0002D5F0  7F E4 FB 78 */	mr r4, r31
/* 80031994 0002D5F4  38 61 00 28 */	addi r3, r1, 0x28
/* 80031998 0002D5F8  48 01 CB 6D */	bl func_8004E504
/* 8003199C 0002D5FC  C0 41 00 28 */	lfs f2, 0x28(r1)
/* 800319A0 0002D600  38 00 00 04 */	li r0, 4
/* 800319A4 0002D604  C0 21 00 2C */	lfs f1, 0x2c(r1)
/* 800319A8 0002D608  C0 01 00 30 */	lfs f0, 0x30(r1)
/* 800319AC 0002D60C  D0 41 00 34 */	stfs f2, 0x34(r1)
/* 800319B0 0002D610  D0 21 00 38 */	stfs f1, 0x38(r1)
/* 800319B4 0002D614  D0 01 00 3C */	stfs f0, 0x3c(r1)
/* 800319B8 0002D618  80 7A 09 14 */	lwz r3, 0x914(r26)
/* 800319BC 0002D61C  D0 43 01 38 */	stfs f2, 0x138(r3)
/* 800319C0 0002D620  C0 01 00 38 */	lfs f0, 0x38(r1)
/* 800319C4 0002D624  D0 03 01 3C */	stfs f0, 0x13c(r3)
/* 800319C8 0002D628  C0 01 00 3C */	lfs f0, 0x3c(r1)
/* 800319CC 0002D62C  D0 03 01 40 */	stfs f0, 0x140(r3)
/* 800319D0 0002D630  80 9A 09 14 */	lwz r4, 0x914(r26)
/* 800319D4 0002D634  38 64 01 38 */	addi r3, r4, 0x138
/* 800319D8 0002D638  90 64 00 14 */	stw r3, 0x14(r4)
/* 800319DC 0002D63C  80 7A 09 14 */	lwz r3, 0x914(r26)
/* 800319E0 0002D640  B0 03 00 10 */	sth r0, 0x10(r3)
/* 800319E4 0002D644  48 00 07 BC */	b lbl_800321A0
/* 800319E8 0002D648  A8 1D 00 08 */	lha r0, 8(r29)
/* 800319EC 0002D64C  2C 00 00 04 */	cmpwi r0, 4
/* 800319F0 0002D650  40 82 00 0C */	bne lbl_800319FC
/* 800319F4 0002D654  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 800319F8 0002D658  48 00 00 0C */	b lbl_80031A04
lbl_800319FC:
/* 800319FC 0002D65C  38 7D 00 08 */	addi r3, r29, 8
/* 80031A00 0002D660  4B FF 68 E1 */	bl func_800282E0
lbl_80031A04:
/* 80031A04 0002D664  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 80031A08 0002D668  7C 7C 1B 78 */	mr r28, r3
/* 80031A0C 0002D66C  2C 00 00 01 */	cmpwi r0, 1
/* 80031A10 0002D670  40 82 00 28 */	bne lbl_80031A38
/* 80031A14 0002D674  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 80031A18 0002D678  3C 00 43 30 */	lis r0, 0x4330
/* 80031A1C 0002D67C  90 01 00 90 */	stw r0, 0x90(r1)
/* 80031A20 0002D680  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80031A24 0002D684  C8 22 81 A0 */	lfd f1, lbl_806407A0-_SDA2_BASE_(r2)
/* 80031A28 0002D688  90 01 00 94 */	stw r0, 0x94(r1)
/* 80031A2C 0002D68C  C8 01 00 90 */	lfd f0, 0x90(r1)
/* 80031A30 0002D690  EF E0 08 28 */	fsubs f31, f0, f1
/* 80031A34 0002D694  48 00 00 20 */	b lbl_80031A54
lbl_80031A38:
/* 80031A38 0002D698  2C 00 00 02 */	cmpwi r0, 2
/* 80031A3C 0002D69C  40 82 00 0C */	bne lbl_80031A48
/* 80031A40 0002D6A0  C0 3D 00 14 */	lfs f1, 0x14(r29)
/* 80031A44 0002D6A4  48 00 00 0C */	b lbl_80031A50
lbl_80031A48:
/* 80031A48 0002D6A8  38 7D 00 10 */	addi r3, r29, 0x10
/* 80031A4C 0002D6AC  48 1F C3 2D */	bl func_8022DD78
lbl_80031A50:
/* 80031A50 0002D6B0  FF E0 08 90 */	fmr f31, f1
lbl_80031A54:
/* 80031A54 0002D6B4  A8 1D 00 18 */	lha r0, 0x18(r29)
/* 80031A58 0002D6B8  2C 00 00 01 */	cmpwi r0, 1
/* 80031A5C 0002D6BC  40 82 00 0C */	bne lbl_80031A68
/* 80031A60 0002D6C0  80 BD 00 1C */	lwz r5, 0x1c(r29)
/* 80031A64 0002D6C4  48 00 00 2C */	b lbl_80031A90
lbl_80031A68:
/* 80031A68 0002D6C8  2C 00 00 02 */	cmpwi r0, 2
/* 80031A6C 0002D6CC  40 82 00 18 */	bne lbl_80031A84
/* 80031A70 0002D6D0  C0 1D 00 1C */	lfs f0, 0x1c(r29)
/* 80031A74 0002D6D4  FC 00 00 1E */	fctiwz f0, f0
/* 80031A78 0002D6D8  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031A7C 0002D6DC  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031A80 0002D6E0  48 00 00 0C */	b lbl_80031A8C
lbl_80031A84:
/* 80031A84 0002D6E4  38 7D 00 18 */	addi r3, r29, 0x18
/* 80031A88 0002D6E8  48 1F C2 AD */	bl func_8022DD34
lbl_80031A8C:
/* 80031A8C 0002D6EC  7C 65 1B 78 */	mr r5, r3
lbl_80031A90:
/* 80031A90 0002D6F0  FC 20 F8 90 */	fmr f1, f31
/* 80031A94 0002D6F4  7F E3 FB 78 */	mr r3, r31
/* 80031A98 0002D6F8  7F 84 E3 78 */	mr r4, r28
/* 80031A9C 0002D6FC  48 01 CA A5 */	bl func_8004E540
/* 80031AA0 0002D700  48 00 07 00 */	b lbl_800321A0
/* 80031AA4 0002D704  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031AA8 0002D708  2C 00 00 04 */	cmpwi r0, 4
/* 80031AAC 0002D70C  40 82 00 0C */	bne lbl_80031AB8
/* 80031AB0 0002D710  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 80031AB4 0002D714  48 00 00 0C */	b lbl_80031AC0
lbl_80031AB8:
/* 80031AB8 0002D718  38 7D 00 08 */	addi r3, r29, 8
/* 80031ABC 0002D71C  4B FF 68 25 */	bl func_800282E0
lbl_80031AC0:
/* 80031AC0 0002D720  C0 23 00 00 */	lfs f1, 0(r3)
/* 80031AC4 0002D724  C0 02 81 88 */	lfs f0, lbl_80640788-_SDA2_BASE_(r2)
/* 80031AC8 0002D728  D0 21 00 34 */	stfs f1, 0x34(r1)
/* 80031ACC 0002D72C  EC 40 00 72 */	fmuls f2, f0, f1
/* 80031AD0 0002D730  C0 23 00 04 */	lfs f1, 4(r3)
/* 80031AD4 0002D734  D0 21 00 38 */	stfs f1, 0x38(r1)
/* 80031AD8 0002D738  EC 20 00 72 */	fmuls f1, f0, f1
/* 80031ADC 0002D73C  C0 63 00 08 */	lfs f3, 8(r3)
/* 80031AE0 0002D740  EC 00 00 F2 */	fmuls f0, f0, f3
/* 80031AE4 0002D744  D0 41 00 34 */	stfs f2, 0x34(r1)
/* 80031AE8 0002D748  D0 21 00 38 */	stfs f1, 0x38(r1)
/* 80031AEC 0002D74C  D0 01 00 3C */	stfs f0, 0x3c(r1)
/* 80031AF0 0002D750  80 1F 00 40 */	lwz r0, 0x40(r31)
/* 80031AF4 0002D754  2C 00 00 00 */	cmpwi r0, 0
/* 80031AF8 0002D758  41 82 06 A8 */	beq lbl_800321A0
/* 80031AFC 0002D75C  38 61 00 18 */	addi r3, r1, 0x18
/* 80031B00 0002D760  38 81 00 34 */	addi r4, r1, 0x34
/* 80031B04 0002D764  48 1F 1B BD */	bl func_802236C0
/* 80031B08 0002D768  80 7F 00 40 */	lwz r3, 0x40(r31)
/* 80031B0C 0002D76C  38 80 00 01 */	li r4, 1
/* 80031B10 0002D770  C0 01 00 18 */	lfs f0, 0x18(r1)
/* 80031B14 0002D774  D0 03 00 2C */	stfs f0, 0x2c(r3)
/* 80031B18 0002D778  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 80031B1C 0002D77C  D0 03 00 30 */	stfs f0, 0x30(r3)
/* 80031B20 0002D780  C0 01 00 20 */	lfs f0, 0x20(r1)
/* 80031B24 0002D784  D0 03 00 34 */	stfs f0, 0x34(r3)
/* 80031B28 0002D788  C0 01 00 24 */	lfs f0, 0x24(r1)
/* 80031B2C 0002D78C  D0 03 00 38 */	stfs f0, 0x38(r3)
/* 80031B30 0002D790  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80031B34 0002D794  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80031B38 0002D798  B0 03 00 10 */	sth r0, 0x10(r3)
/* 80031B3C 0002D79C  48 1C 0B 7D */	bl func_801F26B8
/* 80031B40 0002D7A0  48 00 06 60 */	b lbl_800321A0
/* 80031B44 0002D7A4  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031B48 0002D7A8  2C 00 00 04 */	cmpwi r0, 4
/* 80031B4C 0002D7AC  40 82 00 0C */	bne lbl_80031B58
/* 80031B50 0002D7B0  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 80031B54 0002D7B4  48 00 00 0C */	b lbl_80031B60
lbl_80031B58:
/* 80031B58 0002D7B8  38 7D 00 08 */	addi r3, r29, 8
/* 80031B5C 0002D7BC  4B FF 67 85 */	bl func_800282E0
lbl_80031B60:
/* 80031B60 0002D7C0  C0 23 00 00 */	lfs f1, 0(r3)
/* 80031B64 0002D7C4  C0 02 81 88 */	lfs f0, lbl_80640788-_SDA2_BASE_(r2)
/* 80031B68 0002D7C8  D0 21 00 34 */	stfs f1, 0x34(r1)
/* 80031B6C 0002D7CC  EC 40 00 72 */	fmuls f2, f0, f1
/* 80031B70 0002D7D0  C0 23 00 04 */	lfs f1, 4(r3)
/* 80031B74 0002D7D4  D0 21 00 38 */	stfs f1, 0x38(r1)
/* 80031B78 0002D7D8  EC 20 00 72 */	fmuls f1, f0, f1
/* 80031B7C 0002D7DC  C0 63 00 08 */	lfs f3, 8(r3)
/* 80031B80 0002D7E0  EC 00 00 F2 */	fmuls f0, f0, f3
/* 80031B84 0002D7E4  D0 41 00 34 */	stfs f2, 0x34(r1)
/* 80031B88 0002D7E8  D0 21 00 38 */	stfs f1, 0x38(r1)
/* 80031B8C 0002D7EC  D0 01 00 3C */	stfs f0, 0x3c(r1)
/* 80031B90 0002D7F0  80 1F 00 40 */	lwz r0, 0x40(r31)
/* 80031B94 0002D7F4  2C 00 00 00 */	cmpwi r0, 0
/* 80031B98 0002D7F8  41 82 06 08 */	beq lbl_800321A0
/* 80031B9C 0002D7FC  38 61 00 60 */	addi r3, r1, 0x60
/* 80031BA0 0002D800  38 81 00 34 */	addi r4, r1, 0x34
/* 80031BA4 0002D804  38 A0 00 05 */	li r5, 5
/* 80031BA8 0002D808  48 1F 18 21 */	bl func_802233C8
/* 80031BAC 0002D80C  38 61 00 08 */	addi r3, r1, 8
/* 80031BB0 0002D810  38 81 00 60 */	addi r4, r1, 0x60
/* 80031BB4 0002D814  48 24 B6 11 */	bl C_QUATMtx
/* 80031BB8 0002D818  80 7F 00 40 */	lwz r3, 0x40(r31)
/* 80031BBC 0002D81C  38 80 00 01 */	li r4, 1
/* 80031BC0 0002D820  C0 01 00 08 */	lfs f0, 8(r1)
/* 80031BC4 0002D824  D0 03 00 2C */	stfs f0, 0x2c(r3)
/* 80031BC8 0002D828  C0 01 00 0C */	lfs f0, 0xc(r1)
/* 80031BCC 0002D82C  D0 03 00 30 */	stfs f0, 0x30(r3)
/* 80031BD0 0002D830  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80031BD4 0002D834  D0 03 00 34 */	stfs f0, 0x34(r3)
/* 80031BD8 0002D838  C0 01 00 14 */	lfs f0, 0x14(r1)
/* 80031BDC 0002D83C  D0 03 00 38 */	stfs f0, 0x38(r3)
/* 80031BE0 0002D840  A0 03 00 10 */	lhz r0, 0x10(r3)
/* 80031BE4 0002D844  54 00 07 B8 */	rlwinm r0, r0, 0, 0x1e, 0x1c
/* 80031BE8 0002D848  B0 03 00 10 */	sth r0, 0x10(r3)
/* 80031BEC 0002D84C  48 1C 0A CD */	bl func_801F26B8
/* 80031BF0 0002D850  48 00 05 B0 */	b lbl_800321A0
/* 80031BF4 0002D854  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031BF8 0002D858  2C 00 00 04 */	cmpwi r0, 4
/* 80031BFC 0002D85C  40 82 00 0C */	bne lbl_80031C08
/* 80031C00 0002D860  80 7D 00 0C */	lwz r3, 0xc(r29)
/* 80031C04 0002D864  48 00 00 0C */	b lbl_80031C10
lbl_80031C08:
/* 80031C08 0002D868  38 7D 00 08 */	addi r3, r29, 8
/* 80031C0C 0002D86C  4B FF 66 D5 */	bl func_800282E0
lbl_80031C10:
/* 80031C10 0002D870  80 9F 00 40 */	lwz r4, 0x40(r31)
/* 80031C14 0002D874  2C 04 00 00 */	cmpwi r4, 0
/* 80031C18 0002D878  41 82 05 88 */	beq lbl_800321A0
/* 80031C1C 0002D87C  C0 03 00 00 */	lfs f0, 0(r3)
/* 80031C20 0002D880  C0 42 81 8C */	lfs f2, lbl_8064078C-_SDA2_BASE_(r2)
/* 80031C24 0002D884  D0 04 00 48 */	stfs f0, 0x48(r4)
/* 80031C28 0002D888  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 80031C2C 0002D88C  C0 03 00 04 */	lfs f0, 4(r3)
/* 80031C30 0002D890  D0 04 00 4C */	stfs f0, 0x4c(r4)
/* 80031C34 0002D894  C0 03 00 08 */	lfs f0, 8(r3)
/* 80031C38 0002D898  D0 04 00 50 */	stfs f0, 0x50(r4)
/* 80031C3C 0002D89C  40 80 00 2C */	bge lbl_80031C68
/* 80031C40 0002D8A0  C0 24 00 48 */	lfs f1, 0x48(r4)
/* 80031C44 0002D8A4  C0 62 81 90 */	lfs f3, lbl_80640790-_SDA2_BASE_(r2)
/* 80031C48 0002D8A8  FC 01 18 40 */	fcmpo cr0, f1, f3
/* 80031C4C 0002D8AC  40 81 00 1C */	ble lbl_80031C68
/* 80031C50 0002D8B0  C0 02 81 94 */	lfs f0, lbl_80640794-_SDA2_BASE_(r2)
/* 80031C54 0002D8B4  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80031C58 0002D8B8  40 80 00 08 */	bge lbl_80031C60
/* 80031C5C 0002D8BC  48 00 00 08 */	b lbl_80031C64
lbl_80031C60:
/* 80031C60 0002D8C0  FC 60 10 90 */	fmr f3, f2
lbl_80031C64:
/* 80031C64 0002D8C4  D0 64 00 48 */	stfs f3, 0x48(r4)
lbl_80031C68:
/* 80031C68 0002D8C8  C0 44 00 4C */	lfs f2, 0x4c(r4)
/* 80031C6C 0002D8CC  C0 22 81 8C */	lfs f1, lbl_8064078C-_SDA2_BASE_(r2)
/* 80031C70 0002D8D0  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 80031C74 0002D8D4  40 80 00 28 */	bge lbl_80031C9C
/* 80031C78 0002D8D8  C0 62 81 90 */	lfs f3, lbl_80640790-_SDA2_BASE_(r2)
/* 80031C7C 0002D8DC  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 80031C80 0002D8E0  40 81 00 1C */	ble lbl_80031C9C
/* 80031C84 0002D8E4  C0 02 81 94 */	lfs f0, lbl_80640794-_SDA2_BASE_(r2)
/* 80031C88 0002D8E8  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80031C8C 0002D8EC  40 80 00 08 */	bge lbl_80031C94
/* 80031C90 0002D8F0  48 00 00 08 */	b lbl_80031C98
lbl_80031C94:
/* 80031C94 0002D8F4  FC 60 08 90 */	fmr f3, f1
lbl_80031C98:
/* 80031C98 0002D8F8  D0 64 00 4C */	stfs f3, 0x4c(r4)
lbl_80031C9C:
/* 80031C9C 0002D8FC  C0 44 00 50 */	lfs f2, 0x50(r4)
/* 80031CA0 0002D900  C0 22 81 8C */	lfs f1, lbl_8064078C-_SDA2_BASE_(r2)
/* 80031CA4 0002D904  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 80031CA8 0002D908  40 80 00 28 */	bge lbl_80031CD0
/* 80031CAC 0002D90C  C0 62 81 90 */	lfs f3, lbl_80640790-_SDA2_BASE_(r2)
/* 80031CB0 0002D910  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 80031CB4 0002D914  40 81 00 1C */	ble lbl_80031CD0
/* 80031CB8 0002D918  C0 02 81 94 */	lfs f0, lbl_80640794-_SDA2_BASE_(r2)
/* 80031CBC 0002D91C  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80031CC0 0002D920  40 80 00 08 */	bge lbl_80031CC8
/* 80031CC4 0002D924  48 00 00 08 */	b lbl_80031CCC
lbl_80031CC8:
/* 80031CC8 0002D928  FC 60 08 90 */	fmr f3, f1
lbl_80031CCC:
/* 80031CCC 0002D92C  D0 64 00 50 */	stfs f3, 0x50(r4)
lbl_80031CD0:
/* 80031CD0 0002D930  7C 83 23 78 */	mr r3, r4
/* 80031CD4 0002D934  38 80 00 01 */	li r4, 1
/* 80031CD8 0002D938  48 1C 09 E1 */	bl func_801F26B8
/* 80031CDC 0002D93C  48 00 04 C4 */	b lbl_800321A0
/* 80031CE0 0002D940  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031CE4 0002D944  2C 00 00 01 */	cmpwi r0, 1
/* 80031CE8 0002D948  40 82 00 0C */	bne lbl_80031CF4
/* 80031CEC 0002D94C  80 9D 00 0C */	lwz r4, 0xc(r29)
/* 80031CF0 0002D950  48 00 00 2C */	b lbl_80031D1C
lbl_80031CF4:
/* 80031CF4 0002D954  2C 00 00 02 */	cmpwi r0, 2
/* 80031CF8 0002D958  40 82 00 18 */	bne lbl_80031D10
/* 80031CFC 0002D95C  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 80031D00 0002D960  FC 00 00 1E */	fctiwz f0, f0
/* 80031D04 0002D964  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031D08 0002D968  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031D0C 0002D96C  48 00 00 0C */	b lbl_80031D18
lbl_80031D10:
/* 80031D10 0002D970  38 7D 00 08 */	addi r3, r29, 8
/* 80031D14 0002D974  48 1F C0 21 */	bl func_8022DD34
lbl_80031D18:
/* 80031D18 0002D978  7C 64 1B 78 */	mr r4, r3
lbl_80031D1C:
/* 80031D1C 0002D97C  C0 22 81 98 */	lfs f1, lbl_80640798-_SDA2_BASE_(r2)
/* 80031D20 0002D980  7F E3 FB 78 */	mr r3, r31
/* 80031D24 0002D984  48 01 C6 31 */	bl func_8004E354
/* 80031D28 0002D988  48 00 04 78 */	b lbl_800321A0
/* 80031D2C 0002D98C  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031D30 0002D990  2C 00 00 01 */	cmpwi r0, 1
/* 80031D34 0002D994  40 82 00 0C */	bne lbl_80031D40
/* 80031D38 0002D998  83 9D 00 0C */	lwz r28, 0xc(r29)
/* 80031D3C 0002D99C  48 00 00 2C */	b lbl_80031D68
lbl_80031D40:
/* 80031D40 0002D9A0  2C 00 00 02 */	cmpwi r0, 2
/* 80031D44 0002D9A4  40 82 00 18 */	bne lbl_80031D5C
/* 80031D48 0002D9A8  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 80031D4C 0002D9AC  FC 00 00 1E */	fctiwz f0, f0
/* 80031D50 0002D9B0  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031D54 0002D9B4  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031D58 0002D9B8  48 00 00 0C */	b lbl_80031D64
lbl_80031D5C:
/* 80031D5C 0002D9BC  38 7D 00 08 */	addi r3, r29, 8
/* 80031D60 0002D9C0  48 1F BF D5 */	bl func_8022DD34
lbl_80031D64:
/* 80031D64 0002D9C4  7C 7C 1B 78 */	mr r28, r3
lbl_80031D68:
/* 80031D68 0002D9C8  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 80031D6C 0002D9CC  2C 00 00 01 */	cmpwi r0, 1
/* 80031D70 0002D9D0  40 82 00 28 */	bne lbl_80031D98
/* 80031D74 0002D9D4  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 80031D78 0002D9D8  3C 00 43 30 */	lis r0, 0x4330
/* 80031D7C 0002D9DC  90 01 00 90 */	stw r0, 0x90(r1)
/* 80031D80 0002D9E0  6C 60 80 00 */	xoris r0, r3, 0x8000
/* 80031D84 0002D9E4  C8 22 81 A0 */	lfd f1, lbl_806407A0-_SDA2_BASE_(r2)
/* 80031D88 0002D9E8  90 01 00 94 */	stw r0, 0x94(r1)
/* 80031D8C 0002D9EC  C8 01 00 90 */	lfd f0, 0x90(r1)
/* 80031D90 0002D9F0  EC 20 08 28 */	fsubs f1, f0, f1
/* 80031D94 0002D9F4  48 00 00 1C */	b lbl_80031DB0
lbl_80031D98:
/* 80031D98 0002D9F8  2C 00 00 02 */	cmpwi r0, 2
/* 80031D9C 0002D9FC  40 82 00 0C */	bne lbl_80031DA8
/* 80031DA0 0002DA00  C0 3D 00 14 */	lfs f1, 0x14(r29)
/* 80031DA4 0002DA04  48 00 00 0C */	b lbl_80031DB0
lbl_80031DA8:
/* 80031DA8 0002DA08  38 7D 00 10 */	addi r3, r29, 0x10
/* 80031DAC 0002DA0C  48 1F BF CD */	bl func_8022DD78
lbl_80031DB0:
/* 80031DB0 0002DA10  7F E3 FB 78 */	mr r3, r31
/* 80031DB4 0002DA14  7F 84 E3 78 */	mr r4, r28
/* 80031DB8 0002DA18  48 01 C5 9D */	bl func_8004E354
/* 80031DBC 0002DA1C  48 00 03 E4 */	b lbl_800321A0
/* 80031DC0 0002DA20  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031DC4 0002DA24  2C 00 00 21 */	cmpwi r0, 0x21
/* 80031DC8 0002DA28  40 82 03 D8 */	bne lbl_800321A0
/* 80031DCC 0002DA2C  83 DD 00 0C */	lwz r30, 0xc(r29)
/* 80031DD0 0002DA30  2C 1E 00 00 */	cmpwi r30, 0
/* 80031DD4 0002DA34  41 82 03 CC */	beq lbl_800321A0
/* 80031DD8 0002DA38  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 80031DDC 0002DA3C  2C 00 00 01 */	cmpwi r0, 1
/* 80031DE0 0002DA40  40 82 00 0C */	bne lbl_80031DEC
/* 80031DE4 0002DA44  83 9D 00 14 */	lwz r28, 0x14(r29)
/* 80031DE8 0002DA48  48 00 00 2C */	b lbl_80031E14
lbl_80031DEC:
/* 80031DEC 0002DA4C  2C 00 00 02 */	cmpwi r0, 2
/* 80031DF0 0002DA50  40 82 00 18 */	bne lbl_80031E08
/* 80031DF4 0002DA54  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 80031DF8 0002DA58  FC 00 00 1E */	fctiwz f0, f0
/* 80031DFC 0002DA5C  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031E00 0002DA60  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031E04 0002DA64  48 00 00 0C */	b lbl_80031E10
lbl_80031E08:
/* 80031E08 0002DA68  38 7D 00 10 */	addi r3, r29, 0x10
/* 80031E0C 0002DA6C  48 1F BF 29 */	bl func_8022DD34
lbl_80031E10:
/* 80031E10 0002DA70  7C 7C 1B 78 */	mr r28, r3
lbl_80031E14:
/* 80031E14 0002DA74  A8 1D 00 18 */	lha r0, 0x18(r29)
/* 80031E18 0002DA78  2C 00 00 01 */	cmpwi r0, 1
/* 80031E1C 0002DA7C  40 82 00 0C */	bne lbl_80031E28
/* 80031E20 0002DA80  83 BD 00 1C */	lwz r29, 0x1c(r29)
/* 80031E24 0002DA84  48 00 00 2C */	b lbl_80031E50
lbl_80031E28:
/* 80031E28 0002DA88  2C 00 00 02 */	cmpwi r0, 2
/* 80031E2C 0002DA8C  40 82 00 18 */	bne lbl_80031E44
/* 80031E30 0002DA90  C0 1D 00 1C */	lfs f0, 0x1c(r29)
/* 80031E34 0002DA94  FC 00 00 1E */	fctiwz f0, f0
/* 80031E38 0002DA98  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031E3C 0002DA9C  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031E40 0002DAA0  48 00 00 0C */	b lbl_80031E4C
lbl_80031E44:
/* 80031E44 0002DAA4  38 7D 00 18 */	addi r3, r29, 0x18
/* 80031E48 0002DAA8  48 1F BE ED */	bl func_8022DD34
lbl_80031E4C:
/* 80031E4C 0002DAAC  7C 7D 1B 78 */	mr r29, r3
lbl_80031E50:
/* 80031E50 0002DAB0  7F C3 F3 78 */	mr r3, r30
/* 80031E54 0002DAB4  7F 84 E3 78 */	mr r4, r28
/* 80031E58 0002DAB8  48 00 7A 95 */	bl func_800398EC
/* 80031E5C 0002DABC  7C 64 1B 78 */	mr r4, r3
/* 80031E60 0002DAC0  7F E3 FB 78 */	mr r3, r31
/* 80031E64 0002DAC4  7F A5 EB 78 */	mr r5, r29
/* 80031E68 0002DAC8  48 01 C3 01 */	bl func_8004E168
/* 80031E6C 0002DACC  48 00 03 34 */	b lbl_800321A0
/* 80031E70 0002DAD0  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031E74 0002DAD4  2C 00 00 21 */	cmpwi r0, 0x21
/* 80031E78 0002DAD8  40 82 03 28 */	bne lbl_800321A0
/* 80031E7C 0002DADC  83 DD 00 0C */	lwz r30, 0xc(r29)
/* 80031E80 0002DAE0  2C 1E 00 00 */	cmpwi r30, 0
/* 80031E84 0002DAE4  41 82 03 1C */	beq lbl_800321A0
/* 80031E88 0002DAE8  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 80031E8C 0002DAEC  2C 00 00 01 */	cmpwi r0, 1
/* 80031E90 0002DAF0  40 82 00 0C */	bne lbl_80031E9C
/* 80031E94 0002DAF4  83 9D 00 14 */	lwz r28, 0x14(r29)
/* 80031E98 0002DAF8  48 00 00 2C */	b lbl_80031EC4
lbl_80031E9C:
/* 80031E9C 0002DAFC  2C 00 00 02 */	cmpwi r0, 2
/* 80031EA0 0002DB00  40 82 00 18 */	bne lbl_80031EB8
/* 80031EA4 0002DB04  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 80031EA8 0002DB08  FC 00 00 1E */	fctiwz f0, f0
/* 80031EAC 0002DB0C  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031EB0 0002DB10  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031EB4 0002DB14  48 00 00 0C */	b lbl_80031EC0
lbl_80031EB8:
/* 80031EB8 0002DB18  38 7D 00 10 */	addi r3, r29, 0x10
/* 80031EBC 0002DB1C  48 1F BE 79 */	bl func_8022DD34
lbl_80031EC0:
/* 80031EC0 0002DB20  7C 7C 1B 78 */	mr r28, r3
lbl_80031EC4:
/* 80031EC4 0002DB24  A8 1D 00 18 */	lha r0, 0x18(r29)
/* 80031EC8 0002DB28  2C 00 00 01 */	cmpwi r0, 1
/* 80031ECC 0002DB2C  40 82 00 0C */	bne lbl_80031ED8
/* 80031ED0 0002DB30  83 BD 00 1C */	lwz r29, 0x1c(r29)
/* 80031ED4 0002DB34  48 00 00 2C */	b lbl_80031F00
lbl_80031ED8:
/* 80031ED8 0002DB38  2C 00 00 02 */	cmpwi r0, 2
/* 80031EDC 0002DB3C  40 82 00 18 */	bne lbl_80031EF4
/* 80031EE0 0002DB40  C0 1D 00 1C */	lfs f0, 0x1c(r29)
/* 80031EE4 0002DB44  FC 00 00 1E */	fctiwz f0, f0
/* 80031EE8 0002DB48  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031EEC 0002DB4C  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031EF0 0002DB50  48 00 00 0C */	b lbl_80031EFC
lbl_80031EF4:
/* 80031EF4 0002DB54  38 7D 00 18 */	addi r3, r29, 0x18
/* 80031EF8 0002DB58  48 1F BE 3D */	bl func_8022DD34
lbl_80031EFC:
/* 80031EFC 0002DB5C  7C 7D 1B 78 */	mr r29, r3
lbl_80031F00:
/* 80031F00 0002DB60  7F C3 F3 78 */	mr r3, r30
/* 80031F04 0002DB64  7F 84 E3 78 */	mr r4, r28
/* 80031F08 0002DB68  48 00 7A 75 */	bl func_8003997C
/* 80031F0C 0002DB6C  7C 64 1B 78 */	mr r4, r3
/* 80031F10 0002DB70  7F E3 FB 78 */	mr r3, r31
/* 80031F14 0002DB74  7F A5 EB 78 */	mr r5, r29
/* 80031F18 0002DB78  48 01 C2 51 */	bl func_8004E168
/* 80031F1C 0002DB7C  48 00 02 84 */	b lbl_800321A0
/* 80031F20 0002DB80  A8 1D 00 08 */	lha r0, 8(r29)
/* 80031F24 0002DB84  2C 00 00 21 */	cmpwi r0, 0x21
/* 80031F28 0002DB88  40 82 00 EC */	bne lbl_80032014
/* 80031F2C 0002DB8C  83 DD 00 0C */	lwz r30, 0xc(r29)
/* 80031F30 0002DB90  2C 1E 00 00 */	cmpwi r30, 0
/* 80031F34 0002DB94  41 82 00 E0 */	beq lbl_80032014
/* 80031F38 0002DB98  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 80031F3C 0002DB9C  2C 00 00 01 */	cmpwi r0, 1
/* 80031F40 0002DBA0  40 82 00 0C */	bne lbl_80031F4C
/* 80031F44 0002DBA4  83 9D 00 14 */	lwz r28, 0x14(r29)
/* 80031F48 0002DBA8  48 00 00 2C */	b lbl_80031F74
lbl_80031F4C:
/* 80031F4C 0002DBAC  2C 00 00 02 */	cmpwi r0, 2
/* 80031F50 0002DBB0  40 82 00 18 */	bne lbl_80031F68
/* 80031F54 0002DBB4  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 80031F58 0002DBB8  FC 00 00 1E */	fctiwz f0, f0
/* 80031F5C 0002DBBC  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031F60 0002DBC0  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031F64 0002DBC4  48 00 00 0C */	b lbl_80031F70
lbl_80031F68:
/* 80031F68 0002DBC8  38 7D 00 10 */	addi r3, r29, 0x10
/* 80031F6C 0002DBCC  48 1F BD C9 */	bl func_8022DD34
lbl_80031F70:
/* 80031F70 0002DBD0  7C 7C 1B 78 */	mr r28, r3
lbl_80031F74:
/* 80031F74 0002DBD4  A8 1D 00 18 */	lha r0, 0x18(r29)
/* 80031F78 0002DBD8  2C 00 00 01 */	cmpwi r0, 1
/* 80031F7C 0002DBDC  40 82 00 0C */	bne lbl_80031F88
/* 80031F80 0002DBE0  80 1D 00 1C */	lwz r0, 0x1c(r29)
/* 80031F84 0002DBE4  48 00 00 2C */	b lbl_80031FB0
lbl_80031F88:
/* 80031F88 0002DBE8  2C 00 00 02 */	cmpwi r0, 2
/* 80031F8C 0002DBEC  40 82 00 18 */	bne lbl_80031FA4
/* 80031F90 0002DBF0  C0 1D 00 1C */	lfs f0, 0x1c(r29)
/* 80031F94 0002DBF4  FC 00 00 1E */	fctiwz f0, f0
/* 80031F98 0002DBF8  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031F9C 0002DBFC  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031FA0 0002DC00  48 00 00 0C */	b lbl_80031FAC
lbl_80031FA4:
/* 80031FA4 0002DC04  38 7D 00 18 */	addi r3, r29, 0x18
/* 80031FA8 0002DC08  48 1F BD 8D */	bl func_8022DD34
lbl_80031FAC:
/* 80031FAC 0002DC0C  7C 60 1B 78 */	mr r0, r3
lbl_80031FB0:
/* 80031FB0 0002DC10  7F C3 F3 78 */	mr r3, r30
/* 80031FB4 0002DC14  57 84 04 3E */	clrlwi r4, r28, 0x10
/* 80031FB8 0002DC18  54 05 04 3E */	clrlwi r5, r0, 0x10
/* 80031FBC 0002DC1C  48 00 BF 81 */	bl func_8003DF3C
/* 80031FC0 0002DC20  2C 03 00 00 */	cmpwi r3, 0
/* 80031FC4 0002DC24  7C 7C 1B 78 */	mr r28, r3
/* 80031FC8 0002DC28  41 82 00 4C */	beq lbl_80032014
/* 80031FCC 0002DC2C  A8 1D 00 20 */	lha r0, 0x20(r29)
/* 80031FD0 0002DC30  2C 00 00 01 */	cmpwi r0, 1
/* 80031FD4 0002DC34  40 82 00 0C */	bne lbl_80031FE0
/* 80031FD8 0002DC38  80 BD 00 24 */	lwz r5, 0x24(r29)
/* 80031FDC 0002DC3C  48 00 00 2C */	b lbl_80032008
lbl_80031FE0:
/* 80031FE0 0002DC40  2C 00 00 02 */	cmpwi r0, 2
/* 80031FE4 0002DC44  40 82 00 18 */	bne lbl_80031FFC
/* 80031FE8 0002DC48  C0 1D 00 24 */	lfs f0, 0x24(r29)
/* 80031FEC 0002DC4C  FC 00 00 1E */	fctiwz f0, f0
/* 80031FF0 0002DC50  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80031FF4 0002DC54  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80031FF8 0002DC58  48 00 00 0C */	b lbl_80032004
lbl_80031FFC:
/* 80031FFC 0002DC5C  38 7D 00 20 */	addi r3, r29, 0x20
/* 80032000 0002DC60  48 1F BD 35 */	bl func_8022DD34
lbl_80032004:
/* 80032004 0002DC64  7C 65 1B 78 */	mr r5, r3
lbl_80032008:
/* 80032008 0002DC68  7F E3 FB 78 */	mr r3, r31
/* 8003200C 0002DC6C  7F 84 E3 78 */	mr r4, r28
/* 80032010 0002DC70  48 01 C1 59 */	bl func_8004E168
lbl_80032014:
/* 80032014 0002DC74  C0 22 81 94 */	lfs f1, lbl_80640794-_SDA2_BASE_(r2)
/* 80032018 0002DC78  7F E3 FB 78 */	mr r3, r31
/* 8003201C 0002DC7C  48 01 C7 AD */	bl func_8004E7C8
/* 80032020 0002DC80  48 00 01 80 */	b lbl_800321A0
/* 80032024 0002DC84  80 7F 00 40 */	lwz r3, 0x40(r31)
/* 80032028 0002DC88  2C 03 00 00 */	cmpwi r3, 0
/* 8003202C 0002DC8C  41 82 01 74 */	beq lbl_800321A0
/* 80032030 0002DC90  80 03 01 04 */	lwz r0, 0x104(r3)
/* 80032034 0002DC94  C0 02 81 94 */	lfs f0, lbl_80640794-_SDA2_BASE_(r2)
/* 80032038 0002DC98  60 00 00 04 */	ori r0, r0, 4
/* 8003203C 0002DC9C  90 03 01 04 */	stw r0, 0x104(r3)
/* 80032040 0002DCA0  D0 03 01 10 */	stfs f0, 0x110(r3)
/* 80032044 0002DCA4  48 00 01 5C */	b lbl_800321A0
/* 80032048 0002DCA8  80 7F 00 40 */	lwz r3, 0x40(r31)
/* 8003204C 0002DCAC  2C 03 00 00 */	cmpwi r3, 0
/* 80032050 0002DCB0  41 82 00 40 */	beq lbl_80032090
/* 80032054 0002DCB4  80 03 01 04 */	lwz r0, 0x104(r3)
/* 80032058 0002DCB8  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8003205C 0002DCBC  41 82 00 0C */	beq lbl_80032068
/* 80032060 0002DCC0  38 60 00 01 */	li r3, 1
/* 80032064 0002DCC4  48 00 00 30 */	b lbl_80032094
lbl_80032068:
/* 80032068 0002DCC8  80 63 01 38 */	lwz r3, 0x138(r3)
/* 8003206C 0002DCCC  2C 03 00 00 */	cmpwi r3, 0
/* 80032070 0002DCD0  41 82 00 18 */	beq lbl_80032088
/* 80032074 0002DCD4  A0 03 01 48 */	lhz r0, 0x148(r3)
/* 80032078 0002DCD8  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 8003207C 0002DCDC  41 82 00 0C */	beq lbl_80032088
/* 80032080 0002DCE0  38 60 00 01 */	li r3, 1
/* 80032084 0002DCE4  48 00 00 10 */	b lbl_80032094
lbl_80032088:
/* 80032088 0002DCE8  38 60 00 00 */	li r3, 0
/* 8003208C 0002DCEC  48 00 00 08 */	b lbl_80032094
lbl_80032090:
/* 80032090 0002DCF0  38 60 00 00 */	li r3, 0
lbl_80032094:
/* 80032094 0002DCF4  38 00 00 01 */	li r0, 1
/* 80032098 0002DCF8  90 7E 00 04 */	stw r3, 4(r30)
/* 8003209C 0002DCFC  B0 1E 00 00 */	sth r0, 0(r30)
/* 800320A0 0002DD00  48 00 01 00 */	b lbl_800321A0
/* 800320A4 0002DD04  A8 1D 00 08 */	lha r0, 8(r29)
/* 800320A8 0002DD08  2C 00 00 01 */	cmpwi r0, 1
/* 800320AC 0002DD0C  40 82 00 0C */	bne lbl_800320B8
/* 800320B0 0002DD10  80 9D 00 0C */	lwz r4, 0xc(r29)
/* 800320B4 0002DD14  48 00 00 2C */	b lbl_800320E0
lbl_800320B8:
/* 800320B8 0002DD18  2C 00 00 02 */	cmpwi r0, 2
/* 800320BC 0002DD1C  40 82 00 18 */	bne lbl_800320D4
/* 800320C0 0002DD20  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 800320C4 0002DD24  FC 00 00 1E */	fctiwz f0, f0
/* 800320C8 0002DD28  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 800320CC 0002DD2C  80 61 00 94 */	lwz r3, 0x94(r1)
/* 800320D0 0002DD30  48 00 00 0C */	b lbl_800320DC
lbl_800320D4:
/* 800320D4 0002DD34  38 7D 00 08 */	addi r3, r29, 8
/* 800320D8 0002DD38  48 1F BC 5D */	bl func_8022DD34
lbl_800320DC:
/* 800320DC 0002DD3C  7C 64 1B 78 */	mr r4, r3
lbl_800320E0:
/* 800320E0 0002DD40  7F E3 FB 78 */	mr r3, r31
/* 800320E4 0002DD44  48 01 C6 9D */	bl func_8004E780
/* 800320E8 0002DD48  48 00 00 B8 */	b lbl_800321A0
/* 800320EC 0002DD4C  7F E3 FB 78 */	mr r3, r31
/* 800320F0 0002DD50  48 01 C6 A5 */	bl func_8004E794
/* 800320F4 0002DD54  48 00 00 AC */	b lbl_800321A0
/* 800320F8 0002DD58  80 1F 00 34 */	lwz r0, 0x34(r31)
/* 800320FC 0002DD5C  60 00 00 04 */	ori r0, r0, 4
/* 80032100 0002DD60  90 1F 00 34 */	stw r0, 0x34(r31)
/* 80032104 0002DD64  48 00 00 9C */	b lbl_800321A0
/* 80032108 0002DD68  A8 1D 00 08 */	lha r0, 8(r29)
/* 8003210C 0002DD6C  2C 00 00 01 */	cmpwi r0, 1
/* 80032110 0002DD70  40 82 00 0C */	bne lbl_8003211C
/* 80032114 0002DD74  83 9D 00 0C */	lwz r28, 0xc(r29)
/* 80032118 0002DD78  48 00 00 2C */	b lbl_80032144
lbl_8003211C:
/* 8003211C 0002DD7C  2C 00 00 02 */	cmpwi r0, 2
/* 80032120 0002DD80  40 82 00 18 */	bne lbl_80032138
/* 80032124 0002DD84  C0 1D 00 0C */	lfs f0, 0xc(r29)
/* 80032128 0002DD88  FC 00 00 1E */	fctiwz f0, f0
/* 8003212C 0002DD8C  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 80032130 0002DD90  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80032134 0002DD94  48 00 00 0C */	b lbl_80032140
lbl_80032138:
/* 80032138 0002DD98  38 7D 00 08 */	addi r3, r29, 8
/* 8003213C 0002DD9C  48 1F BB F9 */	bl func_8022DD34
lbl_80032140:
/* 80032140 0002DDA0  7C 7C 1B 78 */	mr r28, r3
lbl_80032144:
/* 80032144 0002DDA4  A8 1D 00 10 */	lha r0, 0x10(r29)
/* 80032148 0002DDA8  2C 00 00 01 */	cmpwi r0, 1
/* 8003214C 0002DDAC  40 82 00 0C */	bne lbl_80032158
/* 80032150 0002DDB0  80 BD 00 14 */	lwz r5, 0x14(r29)
/* 80032154 0002DDB4  48 00 00 2C */	b lbl_80032180
lbl_80032158:
/* 80032158 0002DDB8  2C 00 00 02 */	cmpwi r0, 2
/* 8003215C 0002DDBC  40 82 00 18 */	bne lbl_80032174
/* 80032160 0002DDC0  C0 1D 00 14 */	lfs f0, 0x14(r29)
/* 80032164 0002DDC4  FC 00 00 1E */	fctiwz f0, f0
/* 80032168 0002DDC8  D8 01 00 90 */	stfd f0, 0x90(r1)
/* 8003216C 0002DDCC  80 61 00 94 */	lwz r3, 0x94(r1)
/* 80032170 0002DDD0  48 00 00 0C */	b lbl_8003217C
lbl_80032174:
/* 80032174 0002DDD4  38 7D 00 10 */	addi r3, r29, 0x10
/* 80032178 0002DDD8  48 1F BB BD */	bl func_8022DD34
lbl_8003217C:
/* 8003217C 0002DDDC  7C 65 1B 78 */	mr r5, r3
lbl_80032180:
/* 80032180 0002DDE0  7C 7C 00 D0 */	neg r3, r28
/* 80032184 0002DDE4  7C 05 00 D0 */	neg r0, r5
/* 80032188 0002DDE8  7C 64 E3 78 */	or r4, r3, r28
/* 8003218C 0002DDEC  7C 00 2B 78 */	or r0, r0, r5
/* 80032190 0002DDF0  7F E3 FB 78 */	mr r3, r31
/* 80032194 0002DDF4  54 84 0F FE */	srwi r4, r4, 0x1f
/* 80032198 0002DDF8  54 05 0F FE */	srwi r5, r0, 0x1f
/* 8003219C 0002DDFC  48 01 C4 DD */	bl func_8004E678
lbl_800321A0:
/* 800321A0 0002DE00  38 60 00 01 */	li r3, 1
lbl_800321A4:
/* 800321A4 0002DE04  E3 E1 00 B8 */	psq_l f31, 184(r1), 0, qr0
/* 800321A8 0002DE08  39 61 00 B0 */	addi r11, r1, 0xb0
/* 800321AC 0002DE0C  CB E1 00 B0 */	lfd f31, 0xb0(r1)
/* 800321B0 0002DE10  48 19 4F C1 */	bl _restgpr_26
/* 800321B4 0002DE14  80 01 00 C4 */	lwz r0, 0xc4(r1)
/* 800321B8 0002DE18  7C 08 03 A6 */	mtlr r0
/* 800321BC 0002DE1C  38 21 00 C0 */	addi r1, r1, 0xc0
/* 800321C0 0002DE20  4E 80 00 20 */	blr

.global func_800321C4
func_800321C4:
/* 800321C4 0002DE24  38 A0 00 01 */	li r5, 1
/* 800321C8 0002DE28  38 6D 97 68 */	addi r3, r13, lbl_8063EA28-_SDA_BASE_
/* 800321CC 0002DE2C  38 80 00 04 */	li r4, 4
/* 800321D0 0002DE30  38 00 00 00 */	li r0, 0
/* 800321D4 0002DE34  98 AD 97 68 */	stb r5, lbl_8063EA28-_SDA_BASE_(r13)
/* 800321D8 0002DE38  B0 83 00 02 */	sth r4, 2(r3)
/* 800321DC 0002DE3C  98 03 00 04 */	stb r0, 4(r3)
/* 800321E0 0002DE40  4E 80 00 20 */	blr