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

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

.global func_803D9208
func_803D9208:
/* 803D9208 003D4E68  80 AD B3 18 */	lwz r5, lbl_806405D8-_SDA_BASE_(r13)
/* 803D920C 003D4E6C  2C 05 00 00 */	cmpwi r5, 0
/* 803D9210 003D4E70  40 82 00 0C */	bne lbl_803D921C
/* 803D9214 003D4E74  38 60 00 00 */	li r3, 0
/* 803D9218 003D4E78  4E 80 00 20 */	blr 
lbl_803D921C:
/* 803D921C 003D4E7C  1C 03 00 22 */	mulli r0, r3, 0x22
/* 803D9220 003D4E80  7C 65 02 14 */	add r3, r5, r0
/* 803D9224 003D4E84  48 00 00 08 */	b func_803D922C
/* 803D9228 003D4E88  4E 80 00 20 */	blr 

.global func_803D922C
func_803D922C:
/* 803D922C 003D4E8C  28 04 00 0E */	cmplwi r4, 0xe
/* 803D9230 003D4E90  41 81 00 A8 */	bgt lbl_803D92D8
/* 803D9234 003D4E94  3C A0 80 47 */	lis r5, lbl_80474468@ha
/* 803D9238 003D4E98  54 80 10 3A */	slwi r0, r4, 2
/* 803D923C 003D4E9C  38 A5 44 68 */	addi r5, r5, lbl_80474468@l
/* 803D9240 003D4EA0  7C A5 00 2E */	lwzx r5, r5, r0
/* 803D9244 003D4EA4  7C A9 03 A6 */	mtctr r5
/* 803D9248 003D4EA8  4E 80 04 20 */	bctr 
/* 803D924C 003D4EAC  A0 63 00 00 */	lhz r3, 0(r3)
/* 803D9250 003D4EB0  4E 80 00 20 */	blr 
/* 803D9254 003D4EB4  88 63 00 02 */	lbz r3, 2(r3)
/* 803D9258 003D4EB8  4E 80 00 20 */	blr 
/* 803D925C 003D4EBC  88 63 00 03 */	lbz r3, 3(r3)
/* 803D9260 003D4EC0  4E 80 00 20 */	blr 
/* 803D9264 003D4EC4  A0 03 00 08 */	lhz r0, 8(r3)
/* 803D9268 003D4EC8  54 03 B7 FE */	rlwinm r3, r0, 0x16, 0x1f, 0x1f
/* 803D926C 003D4ECC  4E 80 00 20 */	blr 
/* 803D9270 003D4ED0  A0 03 00 08 */	lhz r0, 8(r3)
/* 803D9274 003D4ED4  54 03 BF FE */	rlwinm r3, r0, 0x17, 0x1f, 0x1f
/* 803D9278 003D4ED8  4E 80 00 20 */	blr 
/* 803D927C 003D4EDC  A0 03 00 08 */	lhz r0, 8(r3)
/* 803D9280 003D4EE0  54 03 DF 3E */	rlwinm r3, r0, 0x1b, 0x1c, 0x1f
/* 803D9284 003D4EE4  4E 80 00 20 */	blr 
/* 803D9288 003D4EE8  88 63 00 0A */	lbz r3, 0xa(r3)
/* 803D928C 003D4EEC  4E 80 00 20 */	blr 
/* 803D9290 003D4EF0  88 63 00 0B */	lbz r3, 0xb(r3)
/* 803D9294 003D4EF4  4E 80 00 20 */	blr 
/* 803D9298 003D4EF8  88 63 00 04 */	lbz r3, 4(r3)
/* 803D929C 003D4EFC  4E 80 00 20 */	blr 
/* 803D92A0 003D4F00  88 63 00 05 */	lbz r3, 5(r3)
/* 803D92A4 003D4F04  4E 80 00 20 */	blr 
/* 803D92A8 003D4F08  88 63 00 06 */	lbz r3, 6(r3)
/* 803D92AC 003D4F0C  4E 80 00 20 */	blr 
/* 803D92B0 003D4F10  88 63 00 07 */	lbz r3, 7(r3)
/* 803D92B4 003D4F14  4E 80 00 20 */	blr 
/* 803D92B8 003D4F18  A0 03 00 08 */	lhz r0, 8(r3)
/* 803D92BC 003D4F1C  54 03 AE FE */	rlwinm r3, r0, 0x15, 0x1b, 0x1f
/* 803D92C0 003D4F20  4E 80 00 20 */	blr 
/* 803D92C4 003D4F24  A0 03 00 08 */	lhz r0, 8(r3)
/* 803D92C8 003D4F28  54 03 06 FE */	clrlwi r3, r0, 0x1b
/* 803D92CC 003D4F2C  4E 80 00 20 */	blr 
/* 803D92D0 003D4F30  88 63 00 0C */	lbz r3, 0xc(r3)
/* 803D92D4 003D4F34  4E 80 00 20 */	blr 
lbl_803D92D8:
/* 803D92D8 003D4F38  88 03 00 0C */	lbz r0, 0xc(r3)
/* 803D92DC 003D4F3C  2C 00 00 01 */	cmpwi r0, 1
/* 803D92E0 003D4F40  41 82 00 1C */	beq lbl_803D92FC
/* 803D92E4 003D4F44  40 80 02 4C */	bge lbl_803D9530
/* 803D92E8 003D4F48  2C 00 00 00 */	cmpwi r0, 0
/* 803D92EC 003D4F4C  40 80 00 08 */	bge lbl_803D92F4
/* 803D92F0 003D4F50  48 00 02 40 */	b lbl_803D9530
lbl_803D92F4:
/* 803D92F4 003D4F54  88 63 00 0E */	lbz r3, 0xe(r3)
/* 803D92F8 003D4F58  4E 80 00 20 */	blr 
lbl_803D92FC:
/* 803D92FC 003D4F5C  38 04 FF F1 */	addi r0, r4, -15
/* 803D9300 003D4F60  28 00 00 2B */	cmplwi r0, 0x2b
/* 803D9304 003D4F64  41 81 02 24 */	bgt lbl_803D9528
/* 803D9308 003D4F68  3C 80 80 47 */	lis r4, lbl_804743B8@ha
/* 803D930C 003D4F6C  54 00 10 3A */	slwi r0, r0, 2
/* 803D9310 003D4F70  38 84 43 B8 */	addi r4, r4, lbl_804743B8@l
/* 803D9314 003D4F74  7C 84 00 2E */	lwzx r4, r4, r0
/* 803D9318 003D4F78  7C 89 03 A6 */	mtctr r4
/* 803D931C 003D4F7C  4E 80 04 20 */	bctr 
/* 803D9320 003D4F80  88 03 00 0E */	lbz r0, 0xe(r3)
/* 803D9324 003D4F84  54 03 CF FE */	rlwinm r3, r0, 0x19, 0x1f, 0x1f
/* 803D9328 003D4F88  4E 80 00 20 */	blr 
/* 803D932C 003D4F8C  88 03 00 0E */	lbz r0, 0xe(r3)
/* 803D9330 003D4F90  54 03 D7 FE */	rlwinm r3, r0, 0x1a, 0x1f, 0x1f
/* 803D9334 003D4F94  4E 80 00 20 */	blr 
/* 803D9338 003D4F98  88 03 00 0E */	lbz r0, 0xe(r3)
/* 803D933C 003D4F9C  54 03 DF FE */	rlwinm r3, r0, 0x1b, 0x1f, 0x1f
/* 803D9340 003D4FA0  4E 80 00 20 */	blr 
/* 803D9344 003D4FA4  88 03 00 0E */	lbz r0, 0xe(r3)
/* 803D9348 003D4FA8  54 03 E7 FE */	rlwinm r3, r0, 0x1c, 0x1f, 0x1f
/* 803D934C 003D4FAC  4E 80 00 20 */	blr 
/* 803D9350 003D4FB0  88 03 00 0E */	lbz r0, 0xe(r3)
/* 803D9354 003D4FB4  54 03 EF FE */	rlwinm r3, r0, 0x1d, 0x1f, 0x1f
/* 803D9358 003D4FB8  4E 80 00 20 */	blr 
/* 803D935C 003D4FBC  88 03 00 0E */	lbz r0, 0xe(r3)
/* 803D9360 003D4FC0  54 03 F7 FE */	rlwinm r3, r0, 0x1e, 0x1f, 0x1f
/* 803D9364 003D4FC4  4E 80 00 20 */	blr 
/* 803D9368 003D4FC8  88 03 00 0E */	lbz r0, 0xe(r3)
/* 803D936C 003D4FCC  54 03 FF FE */	rlwinm r3, r0, 0x1f, 0x1f, 0x1f
/* 803D9370 003D4FD0  4E 80 00 20 */	blr 
/* 803D9374 003D4FD4  88 03 00 0E */	lbz r0, 0xe(r3)
/* 803D9378 003D4FD8  54 03 07 FE */	clrlwi r3, r0, 0x1f
/* 803D937C 003D4FDC  4E 80 00 20 */	blr 
/* 803D9380 003D4FE0  88 03 00 0F */	lbz r0, 0xf(r3)
/* 803D9384 003D4FE4  54 03 CF FE */	rlwinm r3, r0, 0x19, 0x1f, 0x1f
/* 803D9388 003D4FE8  4E 80 00 20 */	blr 
/* 803D938C 003D4FEC  88 03 00 0F */	lbz r0, 0xf(r3)
/* 803D9390 003D4FF0  54 03 D7 FE */	rlwinm r3, r0, 0x1a, 0x1f, 0x1f
/* 803D9394 003D4FF4  4E 80 00 20 */	blr 
/* 803D9398 003D4FF8  88 03 00 0F */	lbz r0, 0xf(r3)
/* 803D939C 003D4FFC  54 03 DF FE */	rlwinm r3, r0, 0x1b, 0x1f, 0x1f
/* 803D93A0 003D5000  4E 80 00 20 */	blr 
/* 803D93A4 003D5004  88 03 00 0F */	lbz r0, 0xf(r3)
/* 803D93A8 003D5008  54 03 E7 FE */	rlwinm r3, r0, 0x1c, 0x1f, 0x1f
/* 803D93AC 003D500C  4E 80 00 20 */	blr 
/* 803D93B0 003D5010  88 03 00 0F */	lbz r0, 0xf(r3)
/* 803D93B4 003D5014  54 03 07 3E */	clrlwi r3, r0, 0x1c
/* 803D93B8 003D5018  4E 80 00 20 */	blr 
/* 803D93BC 003D501C  88 03 00 10 */	lbz r0, 0x10(r3)
/* 803D93C0 003D5020  54 03 E7 3E */	rlwinm r3, r0, 0x1c, 0x1c, 0x1f
/* 803D93C4 003D5024  4E 80 00 20 */	blr 
/* 803D93C8 003D5028  88 03 00 10 */	lbz r0, 0x10(r3)
/* 803D93CC 003D502C  54 03 07 3E */	clrlwi r3, r0, 0x1c
/* 803D93D0 003D5030  4E 80 00 20 */	blr 
/* 803D93D4 003D5034  88 03 00 11 */	lbz r0, 0x11(r3)
/* 803D93D8 003D5038  54 03 E7 3E */	rlwinm r3, r0, 0x1c, 0x1c, 0x1f
/* 803D93DC 003D503C  4E 80 00 20 */	blr 
/* 803D93E0 003D5040  88 03 00 11 */	lbz r0, 0x11(r3)
/* 803D93E4 003D5044  54 03 07 3E */	clrlwi r3, r0, 0x1c
/* 803D93E8 003D5048  4E 80 00 20 */	blr 
/* 803D93EC 003D504C  88 03 00 12 */	lbz r0, 0x12(r3)
/* 803D93F0 003D5050  54 03 E7 3E */	rlwinm r3, r0, 0x1c, 0x1c, 0x1f
/* 803D93F4 003D5054  4E 80 00 20 */	blr 
/* 803D93F8 003D5058  88 03 00 12 */	lbz r0, 0x12(r3)
/* 803D93FC 003D505C  54 03 F7 BE */	rlwinm r3, r0, 0x1e, 0x1e, 0x1f
/* 803D9400 003D5060  4E 80 00 20 */	blr 
/* 803D9404 003D5064  88 03 00 12 */	lbz r0, 0x12(r3)
/* 803D9408 003D5068  54 03 FF FE */	rlwinm r3, r0, 0x1f, 0x1f, 0x1f
/* 803D940C 003D506C  4E 80 00 20 */	blr 
/* 803D9410 003D5070  88 03 00 12 */	lbz r0, 0x12(r3)
/* 803D9414 003D5074  54 03 07 FE */	clrlwi r3, r0, 0x1f
/* 803D9418 003D5078  4E 80 00 20 */	blr 
/* 803D941C 003D507C  88 03 00 13 */	lbz r0, 0x13(r3)
/* 803D9420 003D5080  54 03 CF FE */	rlwinm r3, r0, 0x19, 0x1f, 0x1f
/* 803D9424 003D5084  4E 80 00 20 */	blr 
/* 803D9428 003D5088  88 03 00 13 */	lbz r0, 0x13(r3)
/* 803D942C 003D508C  54 03 D7 FE */	rlwinm r3, r0, 0x1a, 0x1f, 0x1f
/* 803D9430 003D5090  4E 80 00 20 */	blr 
/* 803D9434 003D5094  88 03 00 13 */	lbz r0, 0x13(r3)
/* 803D9438 003D5098  54 03 DF FE */	rlwinm r3, r0, 0x1b, 0x1f, 0x1f
/* 803D943C 003D509C  4E 80 00 20 */	blr 
/* 803D9440 003D50A0  88 03 00 13 */	lbz r0, 0x13(r3)
/* 803D9444 003D50A4  54 03 E7 FE */	rlwinm r3, r0, 0x1c, 0x1f, 0x1f
/* 803D9448 003D50A8  4E 80 00 20 */	blr 
/* 803D944C 003D50AC  88 03 00 13 */	lbz r0, 0x13(r3)
/* 803D9450 003D50B0  54 03 EF FE */	rlwinm r3, r0, 0x1d, 0x1f, 0x1f
/* 803D9454 003D50B4  4E 80 00 20 */	blr 
/* 803D9458 003D50B8  88 03 00 13 */	lbz r0, 0x13(r3)
/* 803D945C 003D50BC  54 03 F7 FE */	rlwinm r3, r0, 0x1e, 0x1f, 0x1f
/* 803D9460 003D50C0  4E 80 00 20 */	blr 
/* 803D9464 003D50C4  88 03 00 13 */	lbz r0, 0x13(r3)
/* 803D9468 003D50C8  54 03 FF FE */	rlwinm r3, r0, 0x1f, 0x1f, 0x1f
/* 803D946C 003D50CC  4E 80 00 20 */	blr 
/* 803D9470 003D50D0  88 03 00 13 */	lbz r0, 0x13(r3)
/* 803D9474 003D50D4  54 03 07 FE */	clrlwi r3, r0, 0x1f
/* 803D9478 003D50D8  4E 80 00 20 */	blr 
/* 803D947C 003D50DC  88 03 00 14 */	lbz r0, 0x14(r3)
/* 803D9480 003D50E0  54 03 CF FE */	rlwinm r3, r0, 0x19, 0x1f, 0x1f
/* 803D9484 003D50E4  4E 80 00 20 */	blr 
/* 803D9488 003D50E8  88 03 00 14 */	lbz r0, 0x14(r3)
/* 803D948C 003D50EC  54 03 D7 FE */	rlwinm r3, r0, 0x1a, 0x1f, 0x1f
/* 803D9490 003D50F0  4E 80 00 20 */	blr 
/* 803D9494 003D50F4  88 03 00 14 */	lbz r0, 0x14(r3)
/* 803D9498 003D50F8  54 03 DF FE */	rlwinm r3, r0, 0x1b, 0x1f, 0x1f
/* 803D949C 003D50FC  4E 80 00 20 */	blr 
/* 803D94A0 003D5100  88 03 00 14 */	lbz r0, 0x14(r3)
/* 803D94A4 003D5104  54 03 E7 FE */	rlwinm r3, r0, 0x1c, 0x1f, 0x1f
/* 803D94A8 003D5108  4E 80 00 20 */	blr 
/* 803D94AC 003D510C  88 63 00 15 */	lbz r3, 0x15(r3)
/* 803D94B0 003D5110  7C 63 07 74 */	extsb r3, r3
/* 803D94B4 003D5114  4E 80 00 20 */	blr 
/* 803D94B8 003D5118  88 63 00 16 */	lbz r3, 0x16(r3)
/* 803D94BC 003D511C  7C 63 07 74 */	extsb r3, r3
/* 803D94C0 003D5120  4E 80 00 20 */	blr 
/* 803D94C4 003D5124  88 63 00 17 */	lbz r3, 0x17(r3)
/* 803D94C8 003D5128  7C 63 07 74 */	extsb r3, r3
/* 803D94CC 003D512C  4E 80 00 20 */	blr 
/* 803D94D0 003D5130  88 63 00 18 */	lbz r3, 0x18(r3)
/* 803D94D4 003D5134  7C 63 07 74 */	extsb r3, r3
/* 803D94D8 003D5138  4E 80 00 20 */	blr 
/* 803D94DC 003D513C  88 63 00 19 */	lbz r3, 0x19(r3)
/* 803D94E0 003D5140  7C 63 07 74 */	extsb r3, r3
/* 803D94E4 003D5144  4E 80 00 20 */	blr 
/* 803D94E8 003D5148  88 63 00 1A */	lbz r3, 0x1a(r3)
/* 803D94EC 003D514C  7C 63 07 74 */	extsb r3, r3
/* 803D94F0 003D5150  4E 80 00 20 */	blr 
/* 803D94F4 003D5154  88 63 00 1B */	lbz r3, 0x1b(r3)
/* 803D94F8 003D5158  4E 80 00 20 */	blr 
/* 803D94FC 003D515C  88 63 00 1C */	lbz r3, 0x1c(r3)
/* 803D9500 003D5160  4E 80 00 20 */	blr 
/* 803D9504 003D5164  88 63 00 1D */	lbz r3, 0x1d(r3)
/* 803D9508 003D5168  7C 63 07 74 */	extsb r3, r3
/* 803D950C 003D516C  4E 80 00 20 */	blr 
/* 803D9510 003D5170  88 63 00 1E */	lbz r3, 0x1e(r3)
/* 803D9514 003D5174  7C 63 07 74 */	extsb r3, r3
/* 803D9518 003D5178  4E 80 00 20 */	blr 
/* 803D951C 003D517C  88 63 00 1F */	lbz r3, 0x1f(r3)
/* 803D9520 003D5180  7C 63 07 74 */	extsb r3, r3
/* 803D9524 003D5184  4E 80 00 20 */	blr 
lbl_803D9528:
/* 803D9528 003D5188  38 60 00 00 */	li r3, 0
/* 803D952C 003D518C  4E 80 00 20 */	blr 
lbl_803D9530:
/* 803D9530 003D5190  38 60 00 00 */	li r3, 0
/* 803D9534 003D5194  4E 80 00 20 */	blr 

.global func_803D9538
func_803D9538:
/* 803D9538 003D5198  3C A0 80 40 */	lis r5, lbl_80405B38@ha
/* 803D953C 003D519C  38 00 00 0C */	li r0, 0xc
/* 803D9540 003D51A0  38 A5 5B 38 */	addi r5, r5, lbl_80405B38@l
/* 803D9544 003D51A4  38 80 00 00 */	li r4, 0
/* 803D9548 003D51A8  7C 09 03 A6 */	mtctr r0
lbl_803D954C:
/* 803D954C 003D51AC  7C 05 22 2E */	lhzx r0, r5, r4
/* 803D9550 003D51B0  7C 03 00 40 */	cmplw r3, r0
/* 803D9554 003D51B4  40 82 00 0C */	bne lbl_803D9560
/* 803D9558 003D51B8  38 60 00 01 */	li r3, 1
/* 803D955C 003D51BC  4E 80 00 20 */	blr 
lbl_803D9560:
/* 803D9560 003D51C0  38 84 00 02 */	addi r4, r4, 2
/* 803D9564 003D51C4  42 00 FF E8 */	bdnz lbl_803D954C
/* 803D9568 003D51C8  38 60 00 00 */	li r3, 0
/* 803D956C 003D51CC  4E 80 00 20 */	blr 

.global func_803D9570
func_803D9570:
/* 803D9570 003D51D0  3C A0 80 40 */	lis r5, lbl_80405B50@ha
/* 803D9574 003D51D4  38 00 00 40 */	li r0, 0x40
/* 803D9578 003D51D8  38 A5 5B 50 */	addi r5, r5, lbl_80405B50@l
/* 803D957C 003D51DC  38 80 00 00 */	li r4, 0
/* 803D9580 003D51E0  7C 09 03 A6 */	mtctr r0
lbl_803D9584:
/* 803D9584 003D51E4  7C 05 22 2E */	lhzx r0, r5, r4
/* 803D9588 003D51E8  7C 03 00 40 */	cmplw r3, r0
/* 803D958C 003D51EC  40 82 00 0C */	bne lbl_803D9598
/* 803D9590 003D51F0  38 60 00 01 */	li r3, 1
/* 803D9594 003D51F4  4E 80 00 20 */	blr 
lbl_803D9598:
/* 803D9598 003D51F8  38 84 00 02 */	addi r4, r4, 2
/* 803D959C 003D51FC  42 00 FF E8 */	bdnz lbl_803D9584
/* 803D95A0 003D5200  38 60 00 00 */	li r3, 0
/* 803D95A4 003D5204  4E 80 00 20 */	blr 

.global func_803D95A8
func_803D95A8:
/* 803D95A8 003D5208  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803D95AC 003D520C  7C 08 02 A6 */	mflr r0
/* 803D95B0 003D5210  90 01 00 24 */	stw r0, 0x24(r1)
/* 803D95B4 003D5214  39 61 00 20 */	addi r11, r1, 0x20
/* 803D95B8 003D5218  4B DE DB 6D */	bl _savegpr_26
/* 803D95BC 003D521C  7C 65 1B 78 */	mr r5, r3
/* 803D95C0 003D5220  38 60 00 10 */	li r3, 0x10
/* 803D95C4 003D5224  38 80 00 00 */	li r4, 0
/* 803D95C8 003D5228  38 C0 00 00 */	li r6, 0
/* 803D95CC 003D522C  38 E0 3D A0 */	li r7, 0x3da0
/* 803D95D0 003D5230  48 00 03 F5 */	bl func_803D99C4
/* 803D95D4 003D5234  3C 80 80 64 */	lis r4, lbl_8063CE34@ha
/* 803D95D8 003D5238  90 6D B3 18 */	stw r3, lbl_806405D8-_SDA_BASE_(r13)
/* 803D95DC 003D523C  7C 7A 1B 78 */	mr r26, r3
/* 803D95E0 003D5240  3B 80 00 00 */	li r28, 0
/* 803D95E4 003D5244  3B C4 CE 34 */	addi r30, r4, lbl_8063CE34@l
/* 803D95E8 003D5248  3B E0 00 00 */	li r31, 0
lbl_803D95EC:
/* 803D95EC 003D524C  7F 84 E3 78 */	mr r4, r28
/* 803D95F0 003D5250  7F BA FA 14 */	add r29, r26, r31
/* 803D95F4 003D5254  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D95F8 003D5258  4B FB 67 4D */	bl func_8038FD44
/* 803D95FC 003D525C  B0 7D 00 00 */	sth r3, 0(r29)
/* 803D9600 003D5260  7F 84 E3 78 */	mr r4, r28
/* 803D9604 003D5264  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9608 003D5268  4B FB 67 71 */	bl func_8038FD78
/* 803D960C 003D526C  98 7D 00 02 */	stb r3, 2(r29)
/* 803D9610 003D5270  7F 84 E3 78 */	mr r4, r28
/* 803D9614 003D5274  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9618 003D5278  4B FB 67 95 */	bl func_8038FDAC
/* 803D961C 003D527C  98 7D 00 03 */	stb r3, 3(r29)
/* 803D9620 003D5280  7F 84 E3 78 */	mr r4, r28
/* 803D9624 003D5284  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9628 003D5288  4B FB 67 B9 */	bl func_8038FDE0
/* 803D962C 003D528C  98 7D 00 04 */	stb r3, 4(r29)
/* 803D9630 003D5290  7F 84 E3 78 */	mr r4, r28
/* 803D9634 003D5294  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9638 003D5298  4B FB 67 DD */	bl func_8038FE14
/* 803D963C 003D529C  98 7D 00 05 */	stb r3, 5(r29)
/* 803D9640 003D52A0  7F 84 E3 78 */	mr r4, r28
/* 803D9644 003D52A4  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9648 003D52A8  4B FB 68 01 */	bl func_8038FE48
/* 803D964C 003D52AC  98 7D 00 06 */	stb r3, 6(r29)
/* 803D9650 003D52B0  7F 84 E3 78 */	mr r4, r28
/* 803D9654 003D52B4  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9658 003D52B8  4B FB 68 25 */	bl func_8038FE7C
/* 803D965C 003D52BC  98 7D 00 07 */	stb r3, 7(r29)
/* 803D9660 003D52C0  7F 84 E3 78 */	mr r4, r28
/* 803D9664 003D52C4  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9668 003D52C8  4B FB 68 49 */	bl func_8038FEB0
/* 803D966C 003D52CC  A0 1D 00 08 */	lhz r0, 8(r29)
/* 803D9670 003D52D0  50 60 5C 28 */	rlwimi r0, r3, 0xb, 0x10, 0x14
/* 803D9674 003D52D4  7F 84 E3 78 */	mr r4, r28
/* 803D9678 003D52D8  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D967C 003D52DC  B0 1D 00 08 */	sth r0, 8(r29)
/* 803D9680 003D52E0  4B FB 68 69 */	bl func_8038FEE8
/* 803D9684 003D52E4  A0 1D 00 08 */	lhz r0, 8(r29)
/* 803D9688 003D52E8  50 60 55 6A */	rlwimi r0, r3, 0xa, 0x15, 0x15
/* 803D968C 003D52EC  7F 84 E3 78 */	mr r4, r28
/* 803D9690 003D52F0  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9694 003D52F4  B0 1D 00 08 */	sth r0, 8(r29)
/* 803D9698 003D52F8  4B FB 68 89 */	bl func_8038FF20
/* 803D969C 003D52FC  A0 1D 00 08 */	lhz r0, 8(r29)
/* 803D96A0 003D5300  50 60 4D AC */	rlwimi r0, r3, 9, 0x16, 0x16
/* 803D96A4 003D5304  7F 84 E3 78 */	mr r4, r28
/* 803D96A8 003D5308  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D96AC 003D530C  B0 1D 00 08 */	sth r0, 8(r29)
/* 803D96B0 003D5310  4B FB 68 A9 */	bl func_8038FF58
/* 803D96B4 003D5314  A0 1D 00 08 */	lhz r0, 8(r29)
/* 803D96B8 003D5318  50 60 2D F4 */	rlwimi r0, r3, 5, 0x17, 0x1a
/* 803D96BC 003D531C  7F 84 E3 78 */	mr r4, r28
/* 803D96C0 003D5320  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D96C4 003D5324  B0 1D 00 08 */	sth r0, 8(r29)
/* 803D96C8 003D5328  4B FB 68 C9 */	bl func_8038FF90
/* 803D96CC 003D532C  A0 1D 00 08 */	lhz r0, 8(r29)
/* 803D96D0 003D5330  50 60 06 FE */	rlwimi r0, r3, 0, 0x1b, 0x1f
/* 803D96D4 003D5334  7F 84 E3 78 */	mr r4, r28
/* 803D96D8 003D5338  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D96DC 003D533C  B0 1D 00 08 */	sth r0, 8(r29)
/* 803D96E0 003D5340  4B FB 68 E9 */	bl func_8038FFC8
/* 803D96E4 003D5344  98 7D 00 0A */	stb r3, 0xa(r29)
/* 803D96E8 003D5348  7F 84 E3 78 */	mr r4, r28
/* 803D96EC 003D534C  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D96F0 003D5350  4B FB 69 0D */	bl func_8038FFFC
/* 803D96F4 003D5354  98 7D 00 0B */	stb r3, 0xb(r29)
/* 803D96F8 003D5358  7F 84 E3 78 */	mr r4, r28
/* 803D96FC 003D535C  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9700 003D5360  4B FB 69 31 */	bl func_80390030
/* 803D9704 003D5364  98 7D 00 0C */	stb r3, 0xc(r29)
/* 803D9708 003D5368  7F 84 E3 78 */	mr r4, r28
/* 803D970C 003D536C  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9710 003D5370  4B FB 69 55 */	bl func_80390064
/* 803D9714 003D5374  98 7D 00 0D */	stb r3, 0xd(r29)
/* 803D9718 003D5378  3B 60 00 00 */	li r27, 0
lbl_803D971C:
/* 803D971C 003D537C  7F 84 E3 78 */	mr r4, r28
/* 803D9720 003D5380  7F 65 DB 78 */	mr r5, r27
/* 803D9724 003D5384  38 7E 00 0C */	addi r3, r30, 0xc
/* 803D9728 003D5388  4B FB 69 71 */	bl func_80390098
/* 803D972C 003D538C  7C 9D DA 14 */	add r4, r29, r27
/* 803D9730 003D5390  3B 7B 00 01 */	addi r27, r27, 1
/* 803D9734 003D5394  2C 1B 00 14 */	cmpwi r27, 0x14
/* 803D9738 003D5398  98 64 00 0E */	stb r3, 0xe(r4)
/* 803D973C 003D539C  41 80 FF E0 */	blt lbl_803D971C
/* 803D9740 003D53A0  3B 9C 00 01 */	addi r28, r28, 1
/* 803D9744 003D53A4  3B FF 00 22 */	addi r31, r31, 0x22
/* 803D9748 003D53A8  2C 1C 01 D0 */	cmpwi r28, 0x1d0
/* 803D974C 003D53AC  41 80 FE A0 */	blt lbl_803D95EC
/* 803D9750 003D53B0  39 61 00 20 */	addi r11, r1, 0x20
/* 803D9754 003D53B4  7F 43 D3 78 */	mr r3, r26
/* 803D9758 003D53B8  4B DE DA 19 */	bl _restgpr_26
/* 803D975C 003D53BC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803D9760 003D53C0  7C 08 03 A6 */	mtlr r0
/* 803D9764 003D53C4  38 21 00 20 */	addi r1, r1, 0x20
/* 803D9768 003D53C8  4E 80 00 20 */	blr 

.global func_803D976C
func_803D976C:
/* 803D976C 003D53CC  1C 04 00 22 */	mulli r0, r4, 0x22
/* 803D9770 003D53D0  7C 63 02 14 */	add r3, r3, r0
/* 803D9774 003D53D4  4E 80 00 20 */	blr 

.global func_803D9778
func_803D9778:
/* 803D9778 003D53D8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803D977C 003D53DC  7C 08 02 A6 */	mflr r0
/* 803D9780 003D53E0  38 80 07 74 */	li r4, 0x774
/* 803D9784 003D53E4  90 01 00 14 */	stw r0, 0x14(r1)
/* 803D9788 003D53E8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803D978C 003D53EC  4B D9 47 E5 */	bl func_8016DF70
/* 803D9790 003D53F0  7C 7F 1B 78 */	mr r31, r3
/* 803D9794 003D53F4  38 80 00 00 */	li r4, 0
/* 803D9798 003D53F8  38 A0 07 74 */	li r5, 0x774
/* 803D979C 003D53FC  4B C2 A9 69 */	bl memset
/* 803D97A0 003D5400  7F E3 FB 78 */	mr r3, r31
/* 803D97A4 003D5404  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803D97A8 003D5408  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803D97AC 003D540C  7C 08 03 A6 */	mtlr r0
/* 803D97B0 003D5410  38 21 00 10 */	addi r1, r1, 0x10
/* 803D97B4 003D5414  4E 80 00 20 */	blr 

.global func_803D97B8
func_803D97B8:
/* 803D97B8 003D5418  3C 60 41 C6 */	lis r3, 0x41C64E6D@ha
/* 803D97BC 003D541C  80 8D B3 20 */	lwz r4, lbl_806405E0-_SDA_BASE_(r13)
/* 803D97C0 003D5420  38 03 4E 6D */	addi r0, r3, 0x41C64E6D@l
/* 803D97C4 003D5424  80 6D B3 24 */	lwz r3, lbl_806405E4-_SDA_BASE_(r13)
/* 803D97C8 003D5428  7C 84 01 D6 */	mullw r4, r4, r0
/* 803D97CC 003D542C  38 03 00 01 */	addi r0, r3, 1
/* 803D97D0 003D5430  90 0D B3 24 */	stw r0, lbl_806405E4-_SDA_BASE_(r13)
/* 803D97D4 003D5434  38 04 60 73 */	addi r0, r4, 0x6073
/* 803D97D8 003D5438  90 0D B3 20 */	stw r0, lbl_806405E0-_SDA_BASE_(r13)
/* 803D97DC 003D543C  54 03 84 3E */	srwi r3, r0, 0x10
/* 803D97E0 003D5440  4E 80 00 20 */	blr 

.global lbl_803D97E4
lbl_803D97E4:
/* 803D97E4 003D5444  38 60 00 01 */	li r3, 1
/* 803D97E8 003D5448  4E 80 00 20 */	blr 

.global func_803D97EC
func_803D97EC:
/* 803D97EC 003D544C  38 60 00 00 */	li r3, 0
/* 803D97F0 003D5450  4E 80 00 20 */	blr 

.global func_803D97F4
func_803D97F4:
/* 803D97F4 003D5454  4E 80 00 20 */	blr 

.global func_803D97F8
func_803D97F8:
/* 803D97F8 003D5458  4E 80 00 20 */	blr 

.global func_803D97FC
func_803D97FC:
/* 803D97FC 003D545C  38 60 00 00 */	li r3, 0
/* 803D9800 003D5460  4E 80 00 20 */	blr 

.global func_803D9804
func_803D9804:
/* 803D9804 003D5464  4E 80 00 20 */	blr 

.global func_803D9808
func_803D9808:
/* 803D9808 003D5468  4E 80 00 20 */	blr 

.global func_803D980C
func_803D980C:
/* 803D980C 003D546C  4E 80 00 20 */	blr 

.global func_803D9810
func_803D9810:
/* 803D9810 003D5470  38 60 00 00 */	li r3, 0
/* 803D9814 003D5474  4E 80 00 20 */	blr 

.global func_803D9818
func_803D9818:
/* 803D9818 003D5478  38 60 00 01 */	li r3, 1
/* 803D981C 003D547C  4E 80 00 20 */	blr 

.global func_803D9820
func_803D9820:
/* 803D9820 003D5480  38 60 00 01 */	li r3, 1
/* 803D9824 003D5484  4E 80 00 20 */	blr 

.global func_803D9828
func_803D9828:
/* 803D9828 003D5488  38 60 00 00 */	li r3, 0
/* 803D982C 003D548C  4E 80 00 20 */	blr 

.global func_803D9830
func_803D9830:
/* 803D9830 003D5490  4E 80 00 20 */	blr 

.global func_803D9834
func_803D9834:
/* 803D9834 003D5494  4E 80 00 20 */	blr 

.global func_803D9838
func_803D9838:
/* 803D9838 003D5498  4E 80 00 20 */	blr 

.global func_803D983C
func_803D983C:
/* 803D983C 003D549C  38 60 00 00 */	li r3, 0
/* 803D9840 003D54A0  4E 80 00 20 */	blr 

.global func_803D9844
func_803D9844:
/* 803D9844 003D54A4  4E 80 00 20 */	blr 

.global func_803D9848
func_803D9848:
/* 803D9848 003D54A8  38 60 00 00 */	li r3, 0
/* 803D984C 003D54AC  4E 80 00 20 */	blr 

.global func_803D9850
func_803D9850:
/* 803D9850 003D54B0  4E 80 00 20 */	blr 

.global func_803D9854
func_803D9854:
/* 803D9854 003D54B4  4E 80 00 20 */	blr 

.global func_803D9858
func_803D9858:
/* 803D9858 003D54B8  4E 80 00 20 */	blr 

.global func_803D985C
func_803D985C:
/* 803D985C 003D54BC  38 60 00 00 */	li r3, 0
/* 803D9860 003D54C0  4E 80 00 20 */	blr 

.global func_803D9864
func_803D9864:
/* 803D9864 003D54C4  38 60 00 01 */	li r3, 1
/* 803D9868 003D54C8  4E 80 00 20 */	blr 

.global func_803D986C
func_803D986C:
/* 803D986C 003D54CC  4E 80 00 20 */	blr 

.global func_803D9870
func_803D9870:
/* 803D9870 003D54D0  38 60 00 00 */	li r3, 0
/* 803D9874 003D54D4  4E 80 00 20 */	blr 

.global func_803D9878
func_803D9878:
/* 803D9878 003D54D8  7C 03 29 D6 */	mullw r0, r3, r5
/* 803D987C 003D54DC  7C 00 23 D6 */	divw r0, r0, r4
/* 803D9880 003D54E0  54 00 06 3F */	clrlwi. r0, r0, 0x18
/* 803D9884 003D54E4  40 82 00 10 */	bne lbl_803D9894
/* 803D9888 003D54E8  2C 03 00 00 */	cmpwi r3, 0
/* 803D988C 003D54EC  40 81 00 08 */	ble lbl_803D9894
/* 803D9890 003D54F0  38 00 00 01 */	li r0, 1
lbl_803D9894:
/* 803D9894 003D54F4  7C 03 03 78 */	mr r3, r0
/* 803D9898 003D54F8  4E 80 00 20 */	blr 

.global func_803D989C
func_803D989C:
/* 803D989C 003D54FC  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 803D98A0 003D5500  40 86 00 24 */	bne cr1, lbl_803D98C4
/* 803D98A4 003D5504  D8 21 00 28 */	stfd f1, 0x28(r1)
/* 803D98A8 003D5508  D8 41 00 30 */	stfd f2, 0x30(r1)
/* 803D98AC 003D550C  D8 61 00 38 */	stfd f3, 0x38(r1)
/* 803D98B0 003D5510  D8 81 00 40 */	stfd f4, 0x40(r1)
/* 803D98B4 003D5514  D8 A1 00 48 */	stfd f5, 0x48(r1)
/* 803D98B8 003D5518  D8 C1 00 50 */	stfd f6, 0x50(r1)
/* 803D98BC 003D551C  D8 E1 00 58 */	stfd f7, 0x58(r1)
/* 803D98C0 003D5520  D9 01 00 60 */	stfd f8, 0x60(r1)
lbl_803D98C4:
/* 803D98C4 003D5524  2C 03 00 00 */	cmpwi r3, 0
/* 803D98C8 003D5528  90 61 00 08 */	stw r3, 8(r1)
/* 803D98CC 003D552C  90 81 00 0C */	stw r4, 0xc(r1)
/* 803D98D0 003D5530  90 A1 00 10 */	stw r5, 0x10(r1)
/* 803D98D4 003D5534  90 C1 00 14 */	stw r6, 0x14(r1)
/* 803D98D8 003D5538  90 E1 00 18 */	stw r7, 0x18(r1)
/* 803D98DC 003D553C  91 01 00 1C */	stw r8, 0x1c(r1)
/* 803D98E0 003D5540  91 21 00 20 */	stw r9, 0x20(r1)
/* 803D98E4 003D5544  91 41 00 24 */	stw r10, 0x24(r1)
/* 803D98E8 003D5548  40 82 00 1C */	bne lbl_803D9904
/* 803D98EC 003D554C  38 61 00 88 */	addi r3, r1, 0x88
/* 803D98F0 003D5550  38 01 00 08 */	addi r0, r1, 8
/* 803D98F4 003D5554  3C 80 02 00 */	lis r4, 0x200
/* 803D98F8 003D5558  90 61 00 6C */	stw r3, 0x6c(r1)
/* 803D98FC 003D555C  90 81 00 68 */	stw r4, 0x68(r1)
/* 803D9900 003D5560  90 01 00 70 */	stw r0, 0x70(r1)
lbl_803D9904:
/* 803D9904 003D5564  38 21 00 80 */	addi r1, r1, 0x80
/* 803D9908 003D5568  4E 80 00 20 */	blr 

.global lbl_803D990C
lbl_803D990C:
/* 803D990C 003D556C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803D9910 003D5570  7C 08 02 A6 */	mflr r0
/* 803D9914 003D5574  90 01 00 24 */	stw r0, 0x24(r1)
/* 803D9918 003D5578  38 C1 00 08 */	addi r6, r1, 8
/* 803D991C 003D557C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 803D9920 003D5580  7C 7F 1B 78 */	mr r31, r3
/* 803D9924 003D5584  80 6D 9F 18 */	lwz r3, lbl_8063F1D8-_SDA_BASE_(r13)
/* 803D9928 003D5588  4B D9 57 CD */	bl func_8016F0F4
/* 803D992C 003D558C  2C 03 00 00 */	cmpwi r3, 0
/* 803D9930 003D5590  7C 64 1B 78 */	mr r4, r3
/* 803D9934 003D5594  40 82 00 0C */	bne lbl_803D9940
/* 803D9938 003D5598  38 60 00 01 */	li r3, 1
/* 803D993C 003D559C  48 00 00 14 */	b lbl_803D9950
lbl_803D9940:
/* 803D9940 003D55A0  80 A1 00 08 */	lwz r5, 8(r1)
/* 803D9944 003D55A4  7F E3 FB 78 */	mr r3, r31
/* 803D9948 003D55A8  4B C2 A6 B9 */	bl memcpy
/* 803D994C 003D55AC  38 60 00 00 */	li r3, 0
lbl_803D9950:
/* 803D9950 003D55B0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803D9954 003D55B4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 803D9958 003D55B8  7C 08 03 A6 */	mtlr r0
/* 803D995C 003D55BC  38 21 00 20 */	addi r1, r1, 0x20
/* 803D9960 003D55C0  4E 80 00 20 */	blr 

.global func_803D9964
func_803D9964:
/* 803D9964 003D55C4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803D9968 003D55C8  7C 08 02 A6 */	mflr r0
/* 803D996C 003D55CC  90 01 00 24 */	stw r0, 0x24(r1)
/* 803D9970 003D55D0  39 61 00 20 */	addi r11, r1, 0x20
/* 803D9974 003D55D4  4B DE D7 BD */	bl _savegpr_29
/* 803D9978 003D55D8  7C 7D 1B 78 */	mr r29, r3
/* 803D997C 003D55DC  80 6D 9F 18 */	lwz r3, lbl_8063F1D8-_SDA_BASE_(r13)
/* 803D9980 003D55E0  7C DE 33 78 */	mr r30, r6
/* 803D9984 003D55E4  7C FF 3B 78 */	mr r31, r7
/* 803D9988 003D55E8  38 C1 00 08 */	addi r6, r1, 8
/* 803D998C 003D55EC  4B D9 57 69 */	bl func_8016F0F4
/* 803D9990 003D55F0  2C 03 00 00 */	cmpwi r3, 0
/* 803D9994 003D55F4  7C 60 1B 78 */	mr r0, r3
/* 803D9998 003D55F8  41 82 00 14 */	beq lbl_803D99AC
/* 803D999C 003D55FC  7F A3 EB 78 */	mr r3, r29
/* 803D99A0 003D5600  7F E5 FB 78 */	mr r5, r31
/* 803D99A4 003D5604  7C 80 F2 14 */	add r4, r0, r30
/* 803D99A8 003D5608  4B C2 A6 59 */	bl memcpy
lbl_803D99AC:
/* 803D99AC 003D560C  39 61 00 20 */	addi r11, r1, 0x20
/* 803D99B0 003D5610  4B DE D7 CD */	bl _restgpr_29
/* 803D99B4 003D5614  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803D99B8 003D5618  7C 08 03 A6 */	mtlr r0
/* 803D99BC 003D561C  38 21 00 20 */	addi r1, r1, 0x20
/* 803D99C0 003D5620  4E 80 00 20 */	blr 

.global func_803D99C4
func_803D99C4:
/* 803D99C4 003D5624  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 803D99C8 003D5628  7C 08 02 A6 */	mflr r0
/* 803D99CC 003D562C  90 01 00 34 */	stw r0, 0x34(r1)
/* 803D99D0 003D5630  39 61 00 30 */	addi r11, r1, 0x30
/* 803D99D4 003D5634  4B DE D7 55 */	bl _savegpr_27
/* 803D99D8 003D5638  7C FE 3B 78 */	mr r30, r7
/* 803D99DC 003D563C  7C 7B 1B 78 */	mr r27, r3
/* 803D99E0 003D5640  7C 9C 23 78 */	mr r28, r4
/* 803D99E4 003D5644  7C A3 2B 78 */	mr r3, r5
/* 803D99E8 003D5648  7C DD 33 78 */	mr r29, r6
/* 803D99EC 003D564C  7F C4 F3 78 */	mr r4, r30
/* 803D99F0 003D5650  4B D9 45 81 */	bl func_8016DF70
/* 803D99F4 003D5654  7C 7F 1B 78 */	mr r31, r3
/* 803D99F8 003D5658  80 6D 9F 18 */	lwz r3, lbl_8063F1D8-_SDA_BASE_(r13)
/* 803D99FC 003D565C  7F 64 DB 78 */	mr r4, r27
/* 803D9A00 003D5660  7F 85 E3 78 */	mr r5, r28
/* 803D9A04 003D5664  38 C1 00 08 */	addi r6, r1, 8
/* 803D9A08 003D5668  4B D9 56 ED */	bl func_8016F0F4
/* 803D9A0C 003D566C  2C 03 00 00 */	cmpwi r3, 0
/* 803D9A10 003D5670  7C 60 1B 78 */	mr r0, r3
/* 803D9A14 003D5674  41 82 00 14 */	beq lbl_803D9A28
/* 803D9A18 003D5678  7F E3 FB 78 */	mr r3, r31
/* 803D9A1C 003D567C  7F C5 F3 78 */	mr r5, r30
/* 803D9A20 003D5680  7C 80 EA 14 */	add r4, r0, r29
/* 803D9A24 003D5684  4B C2 A5 DD */	bl memcpy
lbl_803D9A28:
/* 803D9A28 003D5688  39 61 00 30 */	addi r11, r1, 0x30
/* 803D9A2C 003D568C  7F E3 FB 78 */	mr r3, r31
/* 803D9A30 003D5690  4B DE D7 45 */	bl _restgpr_27
/* 803D9A34 003D5694  80 01 00 34 */	lwz r0, 0x34(r1)
/* 803D9A38 003D5698  7C 08 03 A6 */	mtlr r0
/* 803D9A3C 003D569C  38 21 00 30 */	addi r1, r1, 0x30
/* 803D9A40 003D56A0  4E 80 00 20 */	blr 

.global func_803D9A44
func_803D9A44:
/* 803D9A44 003D56A4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803D9A48 003D56A8  7C 08 02 A6 */	mflr r0
/* 803D9A4C 003D56AC  90 01 00 24 */	stw r0, 0x24(r1)
/* 803D9A50 003D56B0  39 61 00 20 */	addi r11, r1, 0x20
/* 803D9A54 003D56B4  4B DE D6 D9 */	bl _savegpr_28
/* 803D9A58 003D56B8  7C 7C 1B 78 */	mr r28, r3
/* 803D9A5C 003D56BC  7C 9D 23 78 */	mr r29, r4
/* 803D9A60 003D56C0  4B D9 48 7D */	bl func_8016E2DC
/* 803D9A64 003D56C4  3F C0 80 49 */	lis r30, lbl_8048CE28@ha
/* 803D9A68 003D56C8  3B DE CE 28 */	addi r30, r30, lbl_8048CE28@l
/* 803D9A6C 003D56CC  80 1E 00 04 */	lwz r0, 4(r30)
/* 803D9A70 003D56D0  2C 00 00 00 */	cmpwi r0, 0
/* 803D9A74 003D56D4  41 82 00 5C */	beq lbl_803D9AD0
/* 803D9A78 003D56D8  7F 83 E3 78 */	mr r3, r28
/* 803D9A7C 003D56DC  48 00 59 9D */	bl func_803DF418
/* 803D9A80 003D56E0  3F E0 80 49 */	lis r31, lbl_8048CDE8@ha
/* 803D9A84 003D56E4  90 7F CD E8 */	stw r3, lbl_8048CDE8@l(r31)
/* 803D9A88 003D56E8  7F 83 E3 78 */	mr r3, r28
/* 803D9A8C 003D56EC  48 00 57 E9 */	bl func_803DF274
/* 803D9A90 003D56F0  38 63 00 01 */	addi r3, r3, 1
/* 803D9A94 003D56F4  80 BE 00 0C */	lwz r5, 0xc(r30)
/* 803D9A98 003D56F8  38 9F CD E8 */	addi r4, r31, -12824
/* 803D9A9C 003D56FC  80 1E 00 18 */	lwz r0, 0x18(r30)
/* 803D9AA0 003D5700  54 63 08 3C */	slwi r3, r3, 1
/* 803D9AA4 003D5704  3B E0 00 00 */	li r31, 0
/* 803D9AA8 003D5708  90 64 00 04 */	stw r3, 4(r4)
/* 803D9AAC 003D570C  80 7E 00 04 */	lwz r3, 4(r30)
/* 803D9AB0 003D5710  93 E4 00 08 */	stw r31, 8(r4)
/* 803D9AB4 003D5714  93 A4 00 0C */	stw r29, 0xc(r4)
/* 803D9AB8 003D5718  90 A4 00 10 */	stw r5, 0x10(r4)
/* 803D9ABC 003D571C  90 04 00 14 */	stw r0, 0x14(r4)
/* 803D9AC0 003D5720  4B D9 5F 8D */	bl func_8016FA4C
/* 803D9AC4 003D5724  38 00 00 FF */	li r0, 0xff
/* 803D9AC8 003D5728  93 FE 00 04 */	stw r31, 4(r30)
/* 803D9ACC 003D572C  90 1E 00 0C */	stw r0, 0xc(r30)
lbl_803D9AD0:
/* 803D9AD0 003D5730  39 61 00 20 */	addi r11, r1, 0x20
/* 803D9AD4 003D5734  38 60 00 00 */	li r3, 0
/* 803D9AD8 003D5738  4B DE D6 A1 */	bl _restgpr_28
/* 803D9ADC 003D573C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803D9AE0 003D5740  7C 08 03 A6 */	mtlr r0
/* 803D9AE4 003D5744  38 21 00 20 */	addi r1, r1, 0x20
/* 803D9AE8 003D5748  4E 80 00 20 */	blr 

.global func_803D9AEC
func_803D9AEC:
/* 803D9AEC 003D574C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803D9AF0 003D5750  7C 08 02 A6 */	mflr r0
/* 803D9AF4 003D5754  90 01 00 24 */	stw r0, 0x24(r1)
/* 803D9AF8 003D5758  39 61 00 20 */	addi r11, r1, 0x20
/* 803D9AFC 003D575C  4B DE D6 35 */	bl _savegpr_29
/* 803D9B00 003D5760  7C 7F 1B 78 */	mr r31, r3
/* 803D9B04 003D5764  7C 9D 23 78 */	mr r29, r4
/* 803D9B08 003D5768  48 00 03 41 */	bl func_803D9E48
/* 803D9B0C 003D576C  48 00 52 A5 */	bl func_803DEDB0
/* 803D9B10 003D5770  88 1F 00 00 */	lbz r0, 0(r31)
/* 803D9B14 003D5774  7C 7E 1B 78 */	mr r30, r3
/* 803D9B18 003D5778  2C 00 00 15 */	cmpwi r0, 0x15
/* 803D9B1C 003D577C  41 82 00 2C */	beq lbl_803D9B48
/* 803D9B20 003D5780  40 80 00 10 */	bge lbl_803D9B30
/* 803D9B24 003D5784  2C 00 00 14 */	cmpwi r0, 0x14
/* 803D9B28 003D5788  40 80 00 14 */	bge lbl_803D9B3C
/* 803D9B2C 003D578C  48 00 00 2C */	b lbl_803D9B58
lbl_803D9B30:
/* 803D9B30 003D5790  2C 00 00 25 */	cmpwi r0, 0x25
/* 803D9B34 003D5794  41 82 00 14 */	beq lbl_803D9B48
/* 803D9B38 003D5798  48 00 00 20 */	b lbl_803D9B58
lbl_803D9B3C:
/* 803D9B3C 003D579C  4B FD 2F 2D */	bl func_803ACA68
/* 803D9B40 003D57A0  7C 65 1B 78 */	mr r5, r3
/* 803D9B44 003D57A4  48 00 00 20 */	b lbl_803D9B64
lbl_803D9B48:
/* 803D9B48 003D57A8  7F C3 F3 78 */	mr r3, r30
/* 803D9B4C 003D57AC  4B FD 2F 15 */	bl func_803ACA60
/* 803D9B50 003D57B0  7C 65 1B 78 */	mr r5, r3
/* 803D9B54 003D57B4  48 00 00 10 */	b lbl_803D9B64
lbl_803D9B58:
/* 803D9B58 003D57B8  7F C3 F3 78 */	mr r3, r30
/* 803D9B5C 003D57BC  4B FD 2F 05 */	bl func_803ACA60
/* 803D9B60 003D57C0  7C 65 1B 78 */	mr r5, r3
lbl_803D9B64:
/* 803D9B64 003D57C4  7F C3 F3 78 */	mr r3, r30
/* 803D9B68 003D57C8  7F E4 FB 78 */	mr r4, r31
/* 803D9B6C 003D57CC  4B FD 58 21 */	bl func_803AF38C
/* 803D9B70 003D57D0  80 7E 00 18 */	lwz r3, 0x18(r30)
/* 803D9B74 003D57D4  48 00 58 A5 */	bl func_803DF418
/* 803D9B78 003D57D8  7C 7F 1B 78 */	mr r31, r3
/* 803D9B7C 003D57DC  80 7E 00 18 */	lwz r3, 0x18(r30)
/* 803D9B80 003D57E0  48 00 56 F5 */	bl func_803DF274
/* 803D9B84 003D57E4  38 03 00 01 */	addi r0, r3, 1
/* 803D9B88 003D57E8  39 61 00 20 */	addi r11, r1, 0x20
/* 803D9B8C 003D57EC  54 00 08 3C */	slwi r0, r0, 1
/* 803D9B90 003D57F0  7F E3 FB 78 */	mr r3, r31
/* 803D9B94 003D57F4  90 1D 00 00 */	stw r0, 0(r29)
/* 803D9B98 003D57F8  4B DE D5 E5 */	bl _restgpr_29
/* 803D9B9C 003D57FC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 803D9BA0 003D5800  7C 08 03 A6 */	mtlr r0
/* 803D9BA4 003D5804  38 21 00 20 */	addi r1, r1, 0x20
/* 803D9BA8 003D5808  4E 80 00 20 */	blr 

.global func_803D9BAC
func_803D9BAC:
/* 803D9BAC 003D580C  80 6D B3 38 */	lwz r3, lbl_806405F8-_SDA_BASE_(r13)
/* 803D9BB0 003D5810  4E 80 00 20 */	blr 

.global func_803D9BB4
func_803D9BB4:
/* 803D9BB4 003D5814  90 6D B3 38 */	stw r3, lbl_806405F8-_SDA_BASE_(r13)
/* 803D9BB8 003D5818  4E 80 00 20 */	blr 

.global func_803D9BBC
func_803D9BBC:
/* 803D9BBC 003D581C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803D9BC0 003D5820  7C 08 02 A6 */	mflr r0
/* 803D9BC4 003D5824  38 60 00 14 */	li r3, 0x14
/* 803D9BC8 003D5828  90 01 00 14 */	stw r0, 0x14(r1)
/* 803D9BCC 003D582C  4B E0 0E 65 */	bl __nw__FUl
/* 803D9BD0 003D5830  90 6D B3 30 */	stw r3, lbl_806405F0-_SDA_BASE_(r13)
/* 803D9BD4 003D5834  38 80 00 00 */	li r4, 0
/* 803D9BD8 003D5838  38 A0 00 14 */	li r5, 0x14
/* 803D9BDC 003D583C  4B C2 A5 29 */	bl memset
/* 803D9BE0 003D5840  80 6D B3 30 */	lwz r3, lbl_806405F0-_SDA_BASE_(r13)
/* 803D9BE4 003D5844  38 80 FF FF */	li r4, -1
/* 803D9BE8 003D5848  38 00 00 00 */	li r0, 0
/* 803D9BEC 003D584C  90 83 00 00 */	stw r4, 0(r3)
/* 803D9BF0 003D5850  80 6D B3 30 */	lwz r3, lbl_806405F0-_SDA_BASE_(r13)
/* 803D9BF4 003D5854  90 03 00 04 */	stw r0, 4(r3)
/* 803D9BF8 003D5858  80 6D B3 30 */	lwz r3, lbl_806405F0-_SDA_BASE_(r13)
/* 803D9BFC 003D585C  90 83 00 08 */	stw r4, 8(r3)
/* 803D9C00 003D5860  80 6D B3 30 */	lwz r3, lbl_806405F0-_SDA_BASE_(r13)
/* 803D9C04 003D5864  90 03 00 0C */	stw r0, 0xc(r3)
/* 803D9C08 003D5868  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803D9C0C 003D586C  7C 08 03 A6 */	mtlr r0
/* 803D9C10 003D5870  38 21 00 10 */	addi r1, r1, 0x10
/* 803D9C14 003D5874  4E 80 00 20 */	blr 

.global func_803D9C18
func_803D9C18:
/* 803D9C18 003D5878  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803D9C1C 003D587C  7C 08 02 A6 */	mflr r0
/* 803D9C20 003D5880  38 60 00 18 */	li r3, 0x18
/* 803D9C24 003D5884  90 01 00 14 */	stw r0, 0x14(r1)
/* 803D9C28 003D5888  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803D9C2C 003D588C  4B E0 0E 05 */	bl __nw__FUl
/* 803D9C30 003D5890  90 6D B3 34 */	stw r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9C34 003D5894  38 80 00 00 */	li r4, 0
/* 803D9C38 003D5898  38 A0 00 18 */	li r5, 0x18
/* 803D9C3C 003D589C  4B C2 A4 C9 */	bl memset
/* 803D9C40 003D58A0  38 60 00 00 */	li r3, 0
/* 803D9C44 003D58A4  48 00 06 29 */	bl func_803DA26C
/* 803D9C48 003D58A8  80 8D B3 34 */	lwz r4, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9C4C 003D58AC  90 64 00 08 */	stw r3, 8(r4)
/* 803D9C50 003D58B0  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9C54 003D58B4  4B D9 4A B9 */	bl cPlayer_PostPhysicsUpdate
/* 803D9C58 003D58B8  4B C5 C1 45 */	bl func_80035D9C
/* 803D9C5C 003D58BC  80 8D B3 34 */	lwz r4, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9C60 003D58C0  7C 7F 1B 78 */	mr r31, r3
/* 803D9C64 003D58C4  80 04 00 00 */	lwz r0, 0(r4)
/* 803D9C68 003D58C8  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 803D9C6C 003D58CC  41 82 00 10 */	beq lbl_803D9C7C
/* 803D9C70 003D58D0  38 80 00 01 */	li r4, 1
/* 803D9C74 003D58D4  4B C5 C1 ED */	bl func_80035E60
/* 803D9C78 003D58D8  48 00 00 0C */	b lbl_803D9C84
lbl_803D9C7C:
/* 803D9C7C 003D58DC  38 80 00 00 */	li r4, 0
/* 803D9C80 003D58E0  4B C5 C1 E1 */	bl func_80035E60
lbl_803D9C84:
/* 803D9C84 003D58E4  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9C88 003D58E8  80 03 00 00 */	lwz r0, 0(r3)
/* 803D9C8C 003D58EC  54 00 07 39 */	rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 803D9C90 003D58F0  41 82 00 14 */	beq lbl_803D9CA4
/* 803D9C94 003D58F4  7F E3 FB 78 */	mr r3, r31
/* 803D9C98 003D58F8  38 80 00 03 */	li r4, 3
/* 803D9C9C 003D58FC  4B C5 C1 D5 */	bl func_80035E70
/* 803D9CA0 003D5900  48 00 00 10 */	b lbl_803D9CB0
lbl_803D9CA4:
/* 803D9CA4 003D5904  7F E3 FB 78 */	mr r3, r31
/* 803D9CA8 003D5908  38 80 00 02 */	li r4, 2
/* 803D9CAC 003D590C  4B C5 C1 C5 */	bl func_80035E70
lbl_803D9CB0:
/* 803D9CB0 003D5910  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9CB4 003D5914  4B D9 50 0D */	bl func_8016ECC0
/* 803D9CB8 003D5918  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9CBC 003D591C  4B D9 52 0D */	bl func_8016EEC8
/* 803D9CC0 003D5920  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9CC4 003D5924  80 63 00 00 */	lwz r3, 0(r3)
/* 803D9CC8 003D5928  4B DA 2F C5 */	bl func_8017CC8C
/* 803D9CCC 003D592C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803D9CD0 003D5930  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803D9CD4 003D5934  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9CD8 003D5938  7C 08 03 A6 */	mtlr r0
/* 803D9CDC 003D593C  38 21 00 10 */	addi r1, r1, 0x10
/* 803D9CE0 003D5940  4E 80 00 20 */	blr 
/* 803D9CE4 003D5944  38 60 00 01 */	li r3, 1
/* 803D9CE8 003D5948  4E 80 00 20 */	blr 
/* 803D9CEC 003D594C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803D9CF0 003D5950  7C 08 02 A6 */	mflr r0
/* 803D9CF4 003D5954  90 01 00 14 */	stw r0, 0x14(r1)
/* 803D9CF8 003D5958  4B FD 18 3D */	bl func_803AB534
/* 803D9CFC 003D595C  30 03 FF FF */	addic r0, r3, -1
/* 803D9D00 003D5960  7C 60 19 10 */	subfe r3, r0, r3
/* 803D9D04 003D5964  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803D9D08 003D5968  7C 08 03 A6 */	mtlr r0
/* 803D9D0C 003D596C  38 21 00 10 */	addi r1, r1, 0x10
/* 803D9D10 003D5970  4E 80 00 20 */	blr 
/* 803D9D14 003D5974  38 60 00 01 */	li r3, 1
/* 803D9D18 003D5978  4E 80 00 20 */	blr 

.global func_803D9D1C
func_803D9D1C:
/* 803D9D1C 003D597C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803D9D20 003D5980  7C 08 02 A6 */	mflr r0
/* 803D9D24 003D5984  90 01 00 14 */	stw r0, 0x14(r1)
/* 803D9D28 003D5988  4B FF FE 95 */	bl func_803D9BBC
/* 803D9D2C 003D598C  48 00 51 79 */	bl func_803DEEA4
/* 803D9D30 003D5990  4B FF FE E9 */	bl func_803D9C18
/* 803D9D34 003D5994  80 8D B3 34 */	lwz r4, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9D38 003D5998  3C 60 80 40 */	lis r3, lbl_80405BD0@ha
/* 803D9D3C 003D599C  38 63 5B D0 */	addi r3, r3, lbl_80405BD0@l
/* 803D9D40 003D59A0  38 A0 00 1B */	li r5, 0x1b
/* 803D9D44 003D59A4  80 04 00 00 */	lwz r0, 0(r4)
/* 803D9D48 003D59A8  80 84 00 04 */	lwz r4, 4(r4)
/* 803D9D4C 003D59AC  90 04 00 00 */	stw r0, 0(r4)
/* 803D9D50 003D59B0  80 8D B3 34 */	lwz r4, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9D54 003D59B4  80 84 00 04 */	lwz r4, 4(r4)
/* 803D9D58 003D59B8  48 00 4F A5 */	bl func_803DECFC
/* 803D9D5C 003D59BC  80 8D B3 34 */	lwz r4, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9D60 003D59C0  90 64 00 14 */	stw r3, 0x14(r4)
/* 803D9D64 003D59C4  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9D68 003D59C8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803D9D6C 003D59CC  80 63 00 00 */	lwz r3, 0(r3)
/* 803D9D70 003D59D0  7C 08 03 A6 */	mtlr r0
/* 803D9D74 003D59D4  38 21 00 10 */	addi r1, r1, 0x10
/* 803D9D78 003D59D8  4E 80 00 20 */	blr 

.global func_803D9D7C
func_803D9D7C:
/* 803D9D7C 003D59DC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803D9D80 003D59E0  7C 08 02 A6 */	mflr r0
/* 803D9D84 003D59E4  90 01 00 14 */	stw r0, 0x14(r1)
/* 803D9D88 003D59E8  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9D8C 003D59EC  80 63 00 14 */	lwz r3, 0x14(r3)
/* 803D9D90 003D59F0  2C 03 00 00 */	cmpwi r3, 0
/* 803D9D94 003D59F4  41 82 00 14 */	beq lbl_803D9DA8
/* 803D9D98 003D59F8  48 00 4F E1 */	bl func_803DED78
/* 803D9D9C 003D59FC  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9DA0 003D5A00  38 00 00 00 */	li r0, 0
/* 803D9DA4 003D5A04  90 03 00 14 */	stw r0, 0x14(r3)
lbl_803D9DA8:
/* 803D9DA8 003D5A08  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9DAC 003D5A0C  80 63 00 08 */	lwz r3, 8(r3)
/* 803D9DB0 003D5A10  2C 03 00 00 */	cmpwi r3, 0
/* 803D9DB4 003D5A14  41 82 00 14 */	beq lbl_803D9DC8
/* 803D9DB8 003D5A18  4B D9 42 E9 */	bl func_8016E0A0
/* 803D9DBC 003D5A1C  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9DC0 003D5A20  38 00 00 00 */	li r0, 0
/* 803D9DC4 003D5A24  90 03 00 08 */	stw r0, 8(r3)
lbl_803D9DC8:
/* 803D9DC8 003D5A28  80 6D B3 30 */	lwz r3, lbl_806405F0-_SDA_BASE_(r13)
/* 803D9DCC 003D5A2C  2C 03 00 00 */	cmpwi r3, 0
/* 803D9DD0 003D5A30  41 82 00 10 */	beq lbl_803D9DE0
/* 803D9DD4 003D5A34  4B E0 0C E5 */	bl __dl__FPv
/* 803D9DD8 003D5A38  38 00 00 00 */	li r0, 0
/* 803D9DDC 003D5A3C  90 0D B3 30 */	stw r0, lbl_806405F0-_SDA_BASE_(r13)
lbl_803D9DE0:
/* 803D9DE0 003D5A40  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9DE4 003D5A44  2C 03 00 00 */	cmpwi r3, 0
/* 803D9DE8 003D5A48  41 82 00 10 */	beq lbl_803D9DF8
/* 803D9DEC 003D5A4C  4B E0 0C CD */	bl __dl__FPv
/* 803D9DF0 003D5A50  38 00 00 00 */	li r0, 0
/* 803D9DF4 003D5A54  90 0D B3 34 */	stw r0, lbl_806405F4-_SDA_BASE_(r13)
lbl_803D9DF8:
/* 803D9DF8 003D5A58  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803D9DFC 003D5A5C  7C 08 03 A6 */	mtlr r0
/* 803D9E00 003D5A60  38 21 00 10 */	addi r1, r1, 0x10
/* 803D9E04 003D5A64  4E 80 00 20 */	blr 

.global func_803D9E08
func_803D9E08:
/* 803D9E08 003D5A68  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803D9E0C 003D5A6C  7C 08 02 A6 */	mflr r0
/* 803D9E10 003D5A70  90 01 00 14 */	stw r0, 0x14(r1)
/* 803D9E14 003D5A74  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9E18 003D5A78  80 63 00 14 */	lwz r3, 0x14(r3)
/* 803D9E1C 003D5A7C  48 00 4F A5 */	bl func_803DEDC0
/* 803D9E20 003D5A80  2C 03 00 00 */	cmpwi r3, 0
/* 803D9E24 003D5A84  41 82 00 0C */	beq lbl_803D9E30
/* 803D9E28 003D5A88  38 60 00 01 */	li r3, 1
/* 803D9E2C 003D5A8C  48 00 00 0C */	b lbl_803D9E38
lbl_803D9E30:
/* 803D9E30 003D5A90  48 00 51 41 */	bl func_803DEF70
/* 803D9E34 003D5A94  38 60 00 00 */	li r3, 0
lbl_803D9E38:
/* 803D9E38 003D5A98  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803D9E3C 003D5A9C  7C 08 03 A6 */	mtlr r0
/* 803D9E40 003D5AA0  38 21 00 10 */	addi r1, r1, 0x10
/* 803D9E44 003D5AA4  4E 80 00 20 */	blr 

.global func_803D9E48
func_803D9E48:
/* 803D9E48 003D5AA8  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9E4C 003D5AAC  80 63 00 14 */	lwz r3, 0x14(r3)
/* 803D9E50 003D5AB0  4E 80 00 20 */	blr 

.global func_803D9E54
func_803D9E54:
/* 803D9E54 003D5AB4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803D9E58 003D5AB8  7C 08 02 A6 */	mflr r0
/* 803D9E5C 003D5ABC  90 01 00 14 */	stw r0, 0x14(r1)
/* 803D9E60 003D5AC0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803D9E64 003D5AC4  80 6D B3 34 */	lwz r3, lbl_806405F4-_SDA_BASE_(r13)
/* 803D9E68 003D5AC8  80 63 00 14 */	lwz r3, 0x14(r3)
/* 803D9E6C 003D5ACC  48 00 50 31 */	bl func_803DEE9C
/* 803D9E70 003D5AD0  7C 7F 1B 78 */	mr r31, r3
/* 803D9E74 003D5AD4  4B FD 29 BD */	bl func_803AC830
/* 803D9E78 003D5AD8  7F E0 1A 78 */	xor r0, r31, r3
/* 803D9E7C 003D5ADC  7C 03 0E 70 */	srawi r3, r0, 1
/* 803D9E80 003D5AE0  7C 00 F8 38 */	and r0, r0, r31
/* 803D9E84 003D5AE4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803D9E88 003D5AE8  7C 00 18 50 */	subf r0, r0, r3
/* 803D9E8C 003D5AEC  54 03 0F FE */	srwi r3, r0, 0x1f
/* 803D9E90 003D5AF0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803D9E94 003D5AF4  7C 08 03 A6 */	mtlr r0
/* 803D9E98 003D5AF8  38 21 00 10 */	addi r1, r1, 0x10
/* 803D9E9C 003D5AFC  4E 80 00 20 */	blr 

.global func_803D9EA0
func_803D9EA0:
/* 803D9EA0 003D5B00  38 6D B3 28 */	addi r3, r13, lbl_806405E8-_SDA_BASE_
/* 803D9EA4 003D5B04  38 80 00 01 */	li r4, 1
/* 803D9EA8 003D5B08  38 A0 00 04 */	li r5, 4
/* 803D9EAC 003D5B0C  38 C0 00 00 */	li r6, 0
/* 803D9EB0 003D5B10  4B C4 AA 64 */	b func_80024914