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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global lbl_8016E2B8
lbl_8016E2B8:
/* 8016E2B8 00169F18 80 0D 9F 08 */ lwz r0, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E2BC 00169F1C 7C 65 1B 78 */ mr r5, r3
/* 8016E2C0 00169F20 2C 00 00 00 */ cmpwi r0, 0
/* 8016E2C4 00169F24 4D 82 00 20 */ beqlr
/* 8016E2C8 00169F28 7C 03 03 78 */ mr r3, r0
/* 8016E2CC 00169F2C 38 80 00 03 */ li r4, 3
/* 8016E2D0 00169F30 4C C6 31 82 */ crclr 6
/* 8016E2D4 00169F34 48 00 03 48 */ b lbl_8016E61C
/* 8016E2D8 00169F38 4E 80 00 20 */ blr
.global func_8016E2DC
func_8016E2DC:
/* 8016E2DC 00169F3C 38 60 00 01 */ li r3, 1
/* 8016E2E0 00169F40 48 00 00 04 */ b func_8016E2E4
.global func_8016E2E4
func_8016E2E4:
/* 8016E2E4 00169F44 80 0D 9F 0C */ lwz r0, lbl_8063F1CC-_SDA_BASE_(r13)
/* 8016E2E8 00169F48 3C 80 80 49 */ lis r4, lbl_8048CDD8@ha
/* 8016E2EC 00169F4C 38 84 CD D8 */ addi r4, r4, lbl_8048CDD8@l
/* 8016E2F0 00169F50 7C 09 03 A6 */ mtctr r0
/* 8016E2F4 00169F54 2C 00 00 00 */ cmpwi r0, 0
/* 8016E2F8 00169F58 40 81 00 18 */ ble lbl_8016E310
lbl_8016E2FC:
/* 8016E2FC 00169F5C 80 04 00 00 */ lwz r0, 0(r4)
/* 8016E300 00169F60 7C 03 00 00 */ cmpw r3, r0
/* 8016E304 00169F64 4D 82 00 20 */ beqlr
/* 8016E308 00169F68 38 84 00 04 */ addi r4, r4, 4
/* 8016E30C 00169F6C 42 00 FF F0 */ bdnz lbl_8016E2FC
lbl_8016E310:
/* 8016E310 00169F70 80 AD 9F 0C */ lwz r5, lbl_8063F1CC-_SDA_BASE_(r13)
/* 8016E314 00169F74 3C 80 80 49 */ lis r4, lbl_8048CDD8@ha
/* 8016E318 00169F78 38 84 CD D8 */ addi r4, r4, lbl_8048CDD8@l
/* 8016E31C 00169F7C 54 A0 10 3A */ slwi r0, r5, 2
/* 8016E320 00169F80 38 A5 00 01 */ addi r5, r5, 1
/* 8016E324 00169F84 7C 64 01 2E */ stwx r3, r4, r0
/* 8016E328 00169F88 90 AD 9F 0C */ stw r5, lbl_8063F1CC-_SDA_BASE_(r13)
/* 8016E32C 00169F8C 4E 80 00 20 */ blr
.global func_8016E330
func_8016E330:
/* 8016E330 00169F90 80 0D 9F 08 */ lwz r0, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E334 00169F94 54 89 10 3A */ slwi r9, r4, 2
/* 8016E338 00169F98 3C E0 00 01 */ lis r7, 0x0000FFFF@ha
/* 8016E33C 00169F9C 2C 03 00 07 */ cmpwi r3, 7
/* 8016E340 00169FA0 7D 00 4A 14 */ add r8, r0, r9
/* 8016E344 00169FA4 90 68 00 10 */ stw r3, 0x10(r8)
/* 8016E348 00169FA8 38 07 FF FF */ addi r0, r7, 0x0000FFFF@l
/* 8016E34C 00169FAC 80 ED 9F 08 */ lwz r7, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E350 00169FB0 7C E7 4A 14 */ add r7, r7, r9
/* 8016E354 00169FB4 90 67 00 20 */ stw r3, 0x20(r7)
/* 8016E358 00169FB8 80 6D 9F 08 */ lwz r3, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E35C 00169FBC 7C 63 4A 14 */ add r3, r3, r9
/* 8016E360 00169FC0 90 83 00 40 */ stw r4, 0x40(r3)
/* 8016E364 00169FC4 80 6D 9F 08 */ lwz r3, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E368 00169FC8 7C 63 4A 14 */ add r3, r3, r9
/* 8016E36C 00169FCC 90 A3 00 50 */ stw r5, 0x50(r3)
/* 8016E370 00169FD0 80 6D 9F 08 */ lwz r3, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E374 00169FD4 7C 63 4A 14 */ add r3, r3, r9
/* 8016E378 00169FD8 90 C3 00 30 */ stw r6, 0x30(r3)
/* 8016E37C 00169FDC 80 6D 9F 08 */ lwz r3, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E380 00169FE0 7C 03 49 2E */ stwx r0, r3, r9
/* 8016E384 00169FE4 4D 82 00 20 */ beqlr
/* 8016E388 00169FE8 38 60 00 03 */ li r3, 3
/* 8016E38C 00169FEC 4B FF FF 58 */ b func_8016E2E4
/* 8016E390 00169FF0 4E 80 00 20 */ blr
.global func_8016E394
func_8016E394:
/* 8016E394 00169FF4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8016E398 00169FF8 7C 08 02 A6 */ mflr r0
/* 8016E39C 00169FFC 54 68 10 3A */ slwi r8, r3, 2
/* 8016E3A0 0016A000 38 E0 00 0B */ li r7, 0xb
/* 8016E3A4 0016A004 90 01 00 24 */ stw r0, 0x24(r1)
/* 8016E3A8 0016A008 38 60 00 01 */ li r3, 1
/* 8016E3AC 0016A00C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8016E3B0 0016A010 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8016E3B4 0016A014 7C DE 33 78 */ mr r30, r6
/* 8016E3B8 0016A018 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8016E3BC 0016A01C 7C BD 2B 78 */ mr r29, r5
/* 8016E3C0 0016A020 80 0D 9F 08 */ lwz r0, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E3C4 0016A024 7C A0 42 14 */ add r5, r0, r8
/* 8016E3C8 0016A028 38 00 00 00 */ li r0, 0
/* 8016E3CC 0016A02C 90 E5 00 10 */ stw r7, 0x10(r5)
/* 8016E3D0 0016A030 38 A0 00 24 */ li r5, 0x24
/* 8016E3D4 0016A034 80 CD 9F 08 */ lwz r6, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E3D8 0016A038 7C C6 42 14 */ add r6, r6, r8
/* 8016E3DC 0016A03C 83 E6 00 60 */ lwz r31, 0x60(r6)
/* 8016E3E0 0016A040 98 7F 00 00 */ stb r3, 0(r31)
/* 8016E3E4 0016A044 98 1F 00 01 */ stb r0, 1(r31)
/* 8016E3E8 0016A048 98 1F 00 02 */ stb r0, 2(r31)
/* 8016E3EC 0016A04C 98 1F 00 03 */ stb r0, 3(r31)
/* 8016E3F0 0016A050 3B FF 00 04 */ addi r31, r31, 4
/* 8016E3F4 0016A054 7F E3 FB 78 */ mr r3, r31
/* 8016E3F8 0016A058 4B E9 5C 09 */ bl memcpy
/* 8016E3FC 0016A05C 7F A4 EB 78 */ mr r4, r29
/* 8016E400 0016A060 7F C5 F3 78 */ mr r5, r30
/* 8016E404 0016A064 38 7F 00 24 */ addi r3, r31, 0x24
/* 8016E408 0016A068 4B E9 5B F9 */ bl memcpy
/* 8016E40C 0016A06C 38 60 00 0B */ li r3, 0xb
/* 8016E410 0016A070 4B FF FE D5 */ bl func_8016E2E4
/* 8016E414 0016A074 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8016E418 0016A078 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8016E41C 0016A07C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8016E420 0016A080 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8016E424 0016A084 7C 08 03 A6 */ mtlr r0
/* 8016E428 0016A088 38 21 00 20 */ addi r1, r1, 0x20
/* 8016E42C 0016A08C 4E 80 00 20 */ blr
.global func_8016E430
func_8016E430:
/* 8016E430 0016A090 80 8D 9F 08 */ lwz r4, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E434 0016A094 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
/* 8016E438 0016A098 7C 64 02 14 */ add r3, r4, r0
/* 8016E43C 0016A09C 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8016E440 0016A0A0 4E 80 00 20 */ blr
.global func_8016E444
func_8016E444:
/* 8016E444 0016A0A4 80 0D 9F 08 */ lwz r0, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E448 0016A0A8 38 80 00 01 */ li r4, 1
/* 8016E44C 0016A0AC 7C 60 1A 14 */ add r3, r0, r3
/* 8016E450 0016A0B0 98 83 00 78 */ stb r4, 0x78(r3)
/* 8016E454 0016A0B4 4E 80 00 20 */ blr
.global func_8016E458
func_8016E458:
/* 8016E458 0016A0B8 80 0D 9F 08 */ lwz r0, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E45C 0016A0BC 38 A0 00 01 */ li r5, 1
/* 8016E460 0016A0C0 7C 80 1A 14 */ add r4, r0, r3
/* 8016E464 0016A0C4 98 A4 00 7C */ stb r5, 0x7c(r4)
/* 8016E468 0016A0C8 80 0D 9F 08 */ lwz r0, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E46C 0016A0CC 7C 60 1A 14 */ add r3, r0, r3
/* 8016E470 0016A0D0 98 A3 00 80 */ stb r5, 0x80(r3)
/* 8016E474 0016A0D4 4E 80 00 20 */ blr
.global VMBASEGetVirtualAddrFromPageInMRAM
VMBASEGetVirtualAddrFromPageInMRAM:
/* 8016E478 0016A0D8 80 8D 9F 08 */ lwz r4, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E47C 0016A0DC 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
/* 8016E480 0016A0E0 7C 64 00 2E */ lwzx r3, r4, r0
/* 8016E484 0016A0E4 4E 80 00 20 */ blr
.global func_8016E488
func_8016E488:
/* 8016E488 0016A0E8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8016E48C 0016A0EC 7C 08 02 A6 */ mflr r0
/* 8016E490 0016A0F0 38 80 05 14 */ li r4, 0x514
/* 8016E494 0016A0F4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8016E498 0016A0F8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8016E49C 0016A0FC 93 C1 00 08 */ stw r30, 8(r1)
/* 8016E4A0 0016A100 7C 7E 1B 78 */ mr r30, r3
/* 8016E4A4 0016A104 90 6D 9F 08 */ stw r3, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E4A8 0016A108 80 6D 96 2C */ lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 8016E4AC 0016A10C 48 06 C7 E9 */ bl func_801DAC94
/* 8016E4B0 0016A110 7C 7F 1B 78 */ mr r31, r3
/* 8016E4B4 0016A114 38 80 00 00 */ li r4, 0
/* 8016E4B8 0016A118 38 A0 05 14 */ li r5, 0x514
/* 8016E4BC 0016A11C 4B E9 5C 49 */ bl memset
/* 8016E4C0 0016A120 38 80 00 00 */ li r4, 0
/* 8016E4C4 0016A124 38 00 00 FF */ li r0, 0xff
/* 8016E4C8 0016A128 90 9E 00 00 */ stw r4, 0(r30)
/* 8016E4CC 0016A12C 3C A0 80 49 */ lis r5, lbl_8048CDD8@ha
/* 8016E4D0 0016A130 7F C3 F3 78 */ mr r3, r30
/* 8016E4D4 0016A134 90 9E 00 10 */ stw r4, 0x10(r30)
/* 8016E4D8 0016A138 90 9E 00 20 */ stw r4, 0x20(r30)
/* 8016E4DC 0016A13C 90 9E 00 30 */ stw r4, 0x30(r30)
/* 8016E4E0 0016A140 90 1E 00 40 */ stw r0, 0x40(r30)
/* 8016E4E4 0016A144 90 9E 00 50 */ stw r4, 0x50(r30)
/* 8016E4E8 0016A148 94 85 CD D8 */ stwu r4, lbl_8048CDD8@l(r5)
/* 8016E4EC 0016A14C 98 9E 00 74 */ stb r4, 0x74(r30)
/* 8016E4F0 0016A150 98 9E 00 78 */ stb r4, 0x78(r30)
/* 8016E4F4 0016A154 98 9E 00 7C */ stb r4, 0x7c(r30)
/* 8016E4F8 0016A158 98 9E 00 80 */ stb r4, 0x80(r30)
/* 8016E4FC 0016A15C 93 FE 00 60 */ stw r31, 0x60(r30)
/* 8016E500 0016A160 3B FF 01 04 */ addi r31, r31, 0x104
/* 8016E504 0016A164 90 9E 00 04 */ stw r4, 4(r30)
/* 8016E508 0016A168 90 9E 00 14 */ stw r4, 0x14(r30)
/* 8016E50C 0016A16C 90 9E 00 24 */ stw r4, 0x24(r30)
/* 8016E510 0016A170 90 9E 00 34 */ stw r4, 0x34(r30)
/* 8016E514 0016A174 90 1E 00 44 */ stw r0, 0x44(r30)
/* 8016E518 0016A178 90 9E 00 54 */ stw r4, 0x54(r30)
/* 8016E51C 0016A17C 90 85 00 04 */ stw r4, 4(r5)
/* 8016E520 0016A180 98 9E 00 75 */ stb r4, 0x75(r30)
/* 8016E524 0016A184 98 9E 00 79 */ stb r4, 0x79(r30)
/* 8016E528 0016A188 98 9E 00 7D */ stb r4, 0x7d(r30)
/* 8016E52C 0016A18C 98 9E 00 81 */ stb r4, 0x81(r30)
/* 8016E530 0016A190 93 FE 00 64 */ stw r31, 0x64(r30)
/* 8016E534 0016A194 3B FF 01 04 */ addi r31, r31, 0x104
/* 8016E538 0016A198 90 9E 00 08 */ stw r4, 8(r30)
/* 8016E53C 0016A19C 90 9E 00 18 */ stw r4, 0x18(r30)
/* 8016E540 0016A1A0 90 9E 00 28 */ stw r4, 0x28(r30)
/* 8016E544 0016A1A4 90 9E 00 38 */ stw r4, 0x38(r30)
/* 8016E548 0016A1A8 90 1E 00 48 */ stw r0, 0x48(r30)
/* 8016E54C 0016A1AC 90 9E 00 58 */ stw r4, 0x58(r30)
/* 8016E550 0016A1B0 90 85 00 08 */ stw r4, 8(r5)
/* 8016E554 0016A1B4 98 9E 00 76 */ stb r4, 0x76(r30)
/* 8016E558 0016A1B8 98 9E 00 7A */ stb r4, 0x7a(r30)
/* 8016E55C 0016A1BC 98 9E 00 7E */ stb r4, 0x7e(r30)
/* 8016E560 0016A1C0 98 9E 00 82 */ stb r4, 0x82(r30)
/* 8016E564 0016A1C4 93 FE 00 68 */ stw r31, 0x68(r30)
/* 8016E568 0016A1C8 3B FF 01 04 */ addi r31, r31, 0x104
/* 8016E56C 0016A1CC 90 9E 00 0C */ stw r4, 0xc(r30)
/* 8016E570 0016A1D0 90 9E 00 1C */ stw r4, 0x1c(r30)
/* 8016E574 0016A1D4 90 9E 00 2C */ stw r4, 0x2c(r30)
/* 8016E578 0016A1D8 90 9E 00 3C */ stw r4, 0x3c(r30)
/* 8016E57C 0016A1DC 90 1E 00 4C */ stw r0, 0x4c(r30)
/* 8016E580 0016A1E0 90 9E 00 5C */ stw r4, 0x5c(r30)
/* 8016E584 0016A1E4 90 85 00 0C */ stw r4, 0xc(r5)
/* 8016E588 0016A1E8 98 9E 00 77 */ stb r4, 0x77(r30)
/* 8016E58C 0016A1EC 98 9E 00 7B */ stb r4, 0x7b(r30)
/* 8016E590 0016A1F0 98 9E 00 7F */ stb r4, 0x7f(r30)
/* 8016E594 0016A1F4 98 9E 00 83 */ stb r4, 0x83(r30)
/* 8016E598 0016A1F8 93 FE 00 6C */ stw r31, 0x6c(r30)
/* 8016E59C 0016A1FC 3B FF 01 04 */ addi r31, r31, 0x104
/* 8016E5A0 0016A200 93 FE 00 70 */ stw r31, 0x70(r30)
/* 8016E5A4 0016A204 90 8D 9F 0C */ stw r4, lbl_8063F1CC-_SDA_BASE_(r13)
/* 8016E5A8 0016A208 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8016E5AC 0016A20C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8016E5B0 0016A210 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8016E5B4 0016A214 7C 08 03 A6 */ mtlr r0
/* 8016E5B8 0016A218 38 21 00 10 */ addi r1, r1, 0x10
/* 8016E5BC 0016A21C 4E 80 00 20 */ blr
.global func_8016E5C0
func_8016E5C0:
/* 8016E5C0 0016A220 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8016E5C4 0016A224 7C 08 02 A6 */ mflr r0
/* 8016E5C8 0016A228 2C 03 00 00 */ cmpwi r3, 0
/* 8016E5CC 0016A22C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8016E5D0 0016A230 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8016E5D4 0016A234 7C 9F 23 78 */ mr r31, r4
/* 8016E5D8 0016A238 93 C1 00 08 */ stw r30, 8(r1)
/* 8016E5DC 0016A23C 7C 7E 1B 78 */ mr r30, r3
/* 8016E5E0 0016A240 41 82 00 20 */ beq lbl_8016E600
/* 8016E5E4 0016A244 80 6D 96 2C */ lwz r3, lbl_8063E8EC-_SDA_BASE_(r13)
/* 8016E5E8 0016A248 80 9E 00 60 */ lwz r4, 0x60(r30)
/* 8016E5EC 0016A24C 48 06 C7 5D */ bl func_801DAD48
/* 8016E5F0 0016A250 2C 1F 00 00 */ cmpwi r31, 0
/* 8016E5F4 0016A254 40 81 00 0C */ ble lbl_8016E600
/* 8016E5F8 0016A258 7F C3 F3 78 */ mr r3, r30
/* 8016E5FC 0016A25C 48 06 C4 BD */ bl __dl__FPv
lbl_8016E600:
/* 8016E600 0016A260 7F C3 F3 78 */ mr r3, r30
/* 8016E604 0016A264 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8016E608 0016A268 83 C1 00 08 */ lwz r30, 8(r1)
/* 8016E60C 0016A26C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8016E610 0016A270 7C 08 03 A6 */ mtlr r0
/* 8016E614 0016A274 38 21 00 10 */ addi r1, r1, 0x10
/* 8016E618 0016A278 4E 80 00 20 */ blr
lbl_8016E61C: #__blank?
/* 8016E61C 0016A27C 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8016E620 0016A280 40 86 00 24 */ bne cr1, lbl_8016E644
/* 8016E624 0016A284 D8 21 00 28 */ stfd f1, 0x28(r1)
/* 8016E628 0016A288 D8 41 00 30 */ stfd f2, 0x30(r1)
/* 8016E62C 0016A28C D8 61 00 38 */ stfd f3, 0x38(r1)
/* 8016E630 0016A290 D8 81 00 40 */ stfd f4, 0x40(r1)
/* 8016E634 0016A294 D8 A1 00 48 */ stfd f5, 0x48(r1)
/* 8016E638 0016A298 D8 C1 00 50 */ stfd f6, 0x50(r1)
/* 8016E63C 0016A29C D8 E1 00 58 */ stfd f7, 0x58(r1)
/* 8016E640 0016A2A0 D9 01 00 60 */ stfd f8, 0x60(r1)
lbl_8016E644:
/* 8016E644 0016A2A4 90 61 00 08 */ stw r3, 8(r1)
/* 8016E648 0016A2A8 90 81 00 0C */ stw r4, 0xc(r1)
/* 8016E64C 0016A2AC 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8016E650 0016A2B0 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8016E654 0016A2B4 90 E1 00 18 */ stw r7, 0x18(r1)
/* 8016E658 0016A2B8 91 01 00 1C */ stw r8, 0x1c(r1)
/* 8016E65C 0016A2BC 91 21 00 20 */ stw r9, 0x20(r1)
/* 8016E660 0016A2C0 91 41 00 24 */ stw r10, 0x24(r1)
/* 8016E664 0016A2C4 38 21 00 70 */ addi r1, r1, 0x70
/* 8016E668 0016A2C8 4E 80 00 20 */ blr
.global func_8016E66C
func_8016E66C:
/* 8016E66C 0016A2CC 80 6D 9F 08 */ lwz r3, lbl_8063F1C8-_SDA_BASE_(r13)
/* 8016E670 0016A2D0 48 00 00 04 */ b lbl_8016E674
lbl_8016E674:
/* 8016E674 0016A2D4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8016E678 0016A2D8 7C 08 02 A6 */ mflr r0
/* 8016E67C 0016A2DC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8016E680 0016A2E0 48 26 B7 89 */ bl func_803D9E08
/* 8016E684 0016A2E4 2C 03 00 00 */ cmpwi r3, 0
/* 8016E688 0016A2E8 41 82 00 14 */ beq lbl_8016E69C
/* 8016E68C 0016A2EC 38 60 00 06 */ li r3, 6
/* 8016E690 0016A2F0 4B FF FC 55 */ bl func_8016E2E4
/* 8016E694 0016A2F4 38 60 00 06 */ li r3, 6
/* 8016E698 0016A2F8 48 00 00 08 */ b lbl_8016E6A0
lbl_8016E69C:
/* 8016E69C 0016A2FC 80 6D 9F 0C */ lwz r3, lbl_8063F1CC-_SDA_BASE_(r13)
lbl_8016E6A0:
/* 8016E6A0 0016A300 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8016E6A4 0016A304 7C 08 03 A6 */ mtlr r0
/* 8016E6A8 0016A308 38 21 00 10 */ addi r1, r1, 0x10
/* 8016E6AC 0016A30C 4E 80 00 20 */ blr
.global func_8016E6B0
func_8016E6B0:
/* 8016E6B0 0016A310 80 0D 9F 0C */ lwz r0, lbl_8063F1CC-_SDA_BASE_(r13)
/* 8016E6B4 0016A314 2C 00 00 00 */ cmpwi r0, 0
/* 8016E6B8 0016A318 41 82 00 4C */ beq lbl_8016E704
/* 8016E6BC 0016A31C 34 00 FF FF */ addic. r0, r0, -1
/* 8016E6C0 0016A320 3D 00 80 49 */ lis r8, lbl_8048CDD8@ha
/* 8016E6C4 0016A324 80 68 CD D8 */ lwz r3, lbl_8048CDD8@l(r8)
/* 8016E6C8 0016A328 90 0D 9F 0C */ stw r0, lbl_8063F1CC-_SDA_BASE_(r13)
/* 8016E6CC 0016A32C 41 82 00 2C */ beq lbl_8016E6F8
/* 8016E6D0 0016A330 38 E8 CD D8 */ addi r7, r8, -12840
/* 8016E6D4 0016A334 38 00 00 00 */ li r0, 0
/* 8016E6D8 0016A338 80 C7 00 04 */ lwz r6, 4(r7)
/* 8016E6DC 0016A33C 80 A7 00 08 */ lwz r5, 8(r7)
/* 8016E6E0 0016A340 80 87 00 0C */ lwz r4, 0xc(r7)
/* 8016E6E4 0016A344 90 C8 CD D8 */ stw r6, -0x3228(r8)
/* 8016E6E8 0016A348 90 A7 00 04 */ stw r5, 4(r7)
/* 8016E6EC 0016A34C 90 87 00 08 */ stw r4, 8(r7)
/* 8016E6F0 0016A350 90 07 00 0C */ stw r0, 0xc(r7)
/* 8016E6F4 0016A354 4E 80 00 20 */ blr
lbl_8016E6F8:
/* 8016E6F8 0016A358 38 00 00 00 */ li r0, 0
/* 8016E6FC 0016A35C 90 08 CD D8 */ stw r0, -0x3228(r8)
/* 8016E700 0016A360 4E 80 00 20 */ blr
lbl_8016E704:
/* 8016E704 0016A364 38 60 00 00 */ li r3, 0
/* 8016E708 0016A368 4E 80 00 20 */ blr
.global cPlayer_PostPhysicsUpdate
cPlayer_PostPhysicsUpdate:
/* 8016E70C 0016A36C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8016E710 0016A370 7C 08 02 A6 */ mflr r0
/* 8016E714 0016A374 90 01 00 14 */ stw r0, 0x14(r1)
/* 8016E718 0016A378 48 00 00 15 */ bl func_8016E72C
/* 8016E71C 0016A37C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8016E720 0016A380 7C 08 03 A6 */ mtlr r0
/* 8016E724 0016A384 38 21 00 10 */ addi r1, r1, 0x10
/* 8016E728 0016A388 4E 80 00 20 */ blr
.global func_8016E72C
func_8016E72C:
/* 8016E72C 0016A38C 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8016E730 0016A390 7C 08 02 A6 */ mflr r0
/* 8016E734 0016A394 90 01 00 74 */ stw r0, 0x74(r1)
/* 8016E738 0016A398 39 61 00 70 */ addi r11, r1, 0x70
/* 8016E73C 0016A39C 48 05 89 B9 */ bl __save_gpr
/* 8016E740 0016A3A0 7C 6F 1B 78 */ mr r15, r3
/* 8016E744 0016A3A4 4B EC 76 59 */ bl func_80035D9C
/* 8016E748 0016A3A8 4B ED 6E 49 */ bl func_80045590
/* 8016E74C 0016A3AC 7C 7C 1B 78 */ mr r28, r3
/* 8016E750 0016A3B0 4B E9 C3 ED */ bl func_8000AB3C
/* 8016E754 0016A3B4 7C 6E 1B 78 */ mr r14, r3
/* 8016E758 0016A3B8 4B FA E2 1D */ bl func_8011C974
/* 8016E75C 0016A3BC 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8016E760 0016A3C0 7C 7D 1B 78 */ mr r29, r3
/* 8016E764 0016A3C4 3A 00 00 00 */ li r16, 0
/* 8016E768 0016A3C8 28 00 03 EF */ cmplwi r0, 0x3ef
/* 8016E76C 0016A3CC 40 82 00 34 */ bne lbl_8016E7A0
/* 8016E770 0016A3D0 48 0B 50 C1 */ bl func_80223830
/* 8016E774 0016A3D4 3C 80 00 03 */ lis r4, 0x000343FD@ha
/* 8016E778 0016A3D8 80 A3 00 00 */ lwz r5, 0(r3)
/* 8016E77C 0016A3DC 38 04 43 FD */ addi r0, r4, 0x000343FD@l
/* 8016E780 0016A3E0 7C 85 01 D6 */ mullw r4, r5, r0
/* 8016E784 0016A3E4 3C 84 00 27 */ addis r4, r4, 0x27
/* 8016E788 0016A3E8 38 84 9E C3 */ addi r4, r4, -24893
/* 8016E78C 0016A3EC 54 80 87 3E */ rlwinm r0, r4, 0x10, 0x1c, 0x1f
/* 8016E790 0016A3F0 90 83 00 00 */ stw r4, 0(r3)
/* 8016E794 0016A3F4 2C 00 00 04 */ cmpwi r0, 4
/* 8016E798 0016A3F8 40 80 00 08 */ bge lbl_8016E7A0
/* 8016E79C 0016A3FC 3A 00 00 0E */ li r16, 0xe
lbl_8016E7A0:
/* 8016E7A0 0016A400 7D C3 73 78 */ mr r3, r14
/* 8016E7A4 0016A404 4B E9 C3 8D */ bl func_8000AB30
/* 8016E7A8 0016A408 54 6E 06 3E */ clrlwi r14, r3, 0x18
/* 8016E7AC 0016A40C 38 7D 00 8A */ addi r3, r29, 0x8a
/* 8016E7B0 0016A410 48 00 07 A1 */ bl func_8016EF50
/* 8016E7B4 0016A414 80 8F 00 00 */ lwz r4, 0(r15)
/* 8016E7B8 0016A418 7C 66 1B 78 */ mr r6, r3
/* 8016E7BC 0016A41C 7E 05 83 78 */ mr r5, r16
/* 8016E7C0 0016A420 7D C7 73 78 */ mr r7, r14
/* 8016E7C4 0016A424 38 60 00 00 */ li r3, 0
/* 8016E7C8 0016A428 48 26 B9 AD */ bl func_803DA174
/* 8016E7CC 0016A42C 90 6F 00 04 */ stw r3, 4(r15)
/* 8016E7D0 0016A430 3B C0 00 02 */ li r30, 2
/* 8016E7D4 0016A434 80 1D 00 08 */ lwz r0, 8(r29)
/* 8016E7D8 0016A438 2C 00 00 04 */ cmpwi r0, 4
/* 8016E7DC 0016A43C 40 82 00 08 */ bne lbl_8016E7E4
/* 8016E7E0 0016A440 3B C0 00 04 */ li r30, 4
lbl_8016E7E4:
/* 8016E7E4 0016A444 88 1D 09 91 */ lbz r0, 0x991(r29)
/* 8016E7E8 0016A448 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f
/* 8016E7EC 0016A44C 40 82 00 0C */ bne lbl_8016E7F8
/* 8016E7F0 0016A450 38 60 00 00 */ li r3, 0
/* 8016E7F4 0016A454 48 00 04 B4 */ b lbl_8016ECA8
lbl_8016E7F8:
/* 8016E7F8 0016A458 3E E0 80 49 */ lis r23, lbl_8048DFC8@ha
/* 8016E7FC 0016A45C 3A 60 00 00 */ li r19, 0
/* 8016E800 0016A460 3A F7 DF C8 */ addi r23, r23, lbl_8048DFC8@l
/* 8016E804 0016A464 3B 20 00 00 */ li r25, 0
/* 8016E808 0016A468 3B 00 00 00 */ li r24, 0
/* 8016E80C 0016A46C 39 C0 00 00 */ li r14, 0
/* 8016E810 0016A470 48 00 02 F4 */ b lbl_8016EB04
lbl_8016E814:
/* 8016E814 0016A474 56 64 07 FF */ clrlwi. r4, r19, 0x1f
/* 8016E818 0016A478 41 82 00 18 */ beq lbl_8016E830
/* 8016E81C 0016A47C 56 60 FF FE */ rlwinm r0, r19, 0x1f, 0x1f, 0x1f
/* 8016E820 0016A480 1C 00 06 EC */ mulli r0, r0, 0x6ec
/* 8016E824 0016A484 7C 7D 02 14 */ add r3, r29, r0
/* 8016E828 0016A488 3B 63 12 24 */ addi r27, r3, 0x1224
/* 8016E82C 0016A48C 48 00 00 14 */ b lbl_8016E840
lbl_8016E830:
/* 8016E830 0016A490 56 60 FF FE */ rlwinm r0, r19, 0x1f, 0x1f, 0x1f
/* 8016E834 0016A494 1C 00 06 EC */ mulli r0, r0, 0x6ec
/* 8016E838 0016A498 7C 7D 02 14 */ add r3, r29, r0
/* 8016E83C 0016A49C 3B 63 04 4C */ addi r27, r3, 0x44c
lbl_8016E840:
/* 8016E840 0016A4A0 2C 04 00 00 */ cmpwi r4, 0
/* 8016E844 0016A4A4 41 82 00 10 */ beq lbl_8016E854
/* 8016E848 0016A4A8 7C 7D 02 14 */ add r3, r29, r0
/* 8016E84C 0016A4AC 3B 43 2D D4 */ addi r26, r3, 0x2dd4
/* 8016E850 0016A4B0 48 00 00 0C */ b lbl_8016E85C
lbl_8016E854:
/* 8016E854 0016A4B4 7C 7D 02 14 */ add r3, r29, r0
/* 8016E858 0016A4B8 3B 43 1F FC */ addi r26, r3, 0x1ffc
lbl_8016E85C:
/* 8016E85C 0016A4BC 8A 9D 00 19 */ lbz r20, 0x19(r29)
/* 8016E860 0016A4C0 2C 14 00 00 */ cmpwi r20, 0
/* 8016E864 0016A4C4 40 82 00 08 */ bne lbl_8016E86C
/* 8016E868 0016A4C8 3A 80 00 06 */ li r20, 6
lbl_8016E86C:
/* 8016E86C 0016A4CC 38 61 00 08 */ addi r3, r1, 8
/* 8016E870 0016A4D0 38 9B 00 04 */ addi r4, r27, 4
/* 8016E874 0016A4D4 38 A0 00 0C */ li r5, 0xc
/* 8016E878 0016A4D8 48 00 86 3D */ bl func_80176EB4
/* 8016E87C 0016A4DC A0 1B 00 04 */ lhz r0, 4(r27)
/* 8016E880 0016A4E0 2C 00 00 00 */ cmpwi r0, 0
/* 8016E884 0016A4E4 40 82 00 18 */ bne lbl_8016E89C
/* 8016E888 0016A4E8 38 61 00 08 */ addi r3, r1, 8
/* 8016E88C 0016A4EC 38 8D 83 68 */ addi r4, r13, lbl_8063D628-_SDA_BASE_
/* 8016E890 0016A4F0 38 A0 00 0C */ li r5, 0xc
/* 8016E894 0016A4F4 48 00 86 21 */ bl func_80176EB4
/* 8016E898 0016A4F8 48 00 00 14 */ b lbl_8016E8AC
lbl_8016E89C:
/* 8016E89C 0016A4FC 38 61 00 08 */ addi r3, r1, 8
/* 8016E8A0 0016A500 38 9B 00 04 */ addi r4, r27, 4
/* 8016E8A4 0016A504 38 A0 00 0C */ li r5, 0xc
/* 8016E8A8 0016A508 48 00 86 0D */ bl func_80176EB4
lbl_8016E8AC:
/* 8016E8AC 0016A50C 80 0F 00 04 */ lwz r0, 4(r15)
/* 8016E8B0 0016A510 38 81 00 08 */ addi r4, r1, 8
/* 8016E8B4 0016A514 7C 60 CA 14 */ add r3, r0, r25
/* 8016E8B8 0016A518 80 63 00 D8 */ lwz r3, 0xd8(r3)
/* 8016E8BC 0016A51C 48 26 B7 B9 */ bl func_803DA074
/* 8016E8C0 0016A520 80 0F 00 04 */ lwz r0, 4(r15)
/* 8016E8C4 0016A524 38 81 00 08 */ addi r4, r1, 8
/* 8016E8C8 0016A528 7C 60 C2 14 */ add r3, r0, r24
/* 8016E8CC 0016A52C 38 63 00 3C */ addi r3, r3, 0x3c
/* 8016E8D0 0016A530 48 27 03 55 */ bl func_803DEC24
/* 8016E8D4 0016A534 99 D7 00 00 */ stb r14, 0(r23)
/* 8016E8D8 0016A538 38 00 00 01 */ li r0, 1
/* 8016E8DC 0016A53C 3A 40 00 00 */ li r18, 0
/* 8016E8E0 0016A540 98 17 00 01 */ stb r0, 1(r23)
/* 8016E8E4 0016A544 38 00 00 02 */ li r0, 2
/* 8016E8E8 0016A548 98 17 00 02 */ stb r0, 2(r23)
/* 8016E8EC 0016A54C 38 00 00 03 */ li r0, 3
/* 8016E8F0 0016A550 98 17 00 03 */ stb r0, 3(r23)
/* 8016E8F4 0016A554 38 00 00 04 */ li r0, 4
/* 8016E8F8 0016A558 98 17 00 04 */ stb r0, 4(r23)
/* 8016E8FC 0016A55C 38 00 00 05 */ li r0, 5
/* 8016E900 0016A560 98 17 00 05 */ stb r0, 5(r23)
/* 8016E904 0016A564 88 1D 00 1B */ lbz r0, 0x1b(r29)
/* 8016E908 0016A568 28 00 00 01 */ cmplwi r0, 1
/* 8016E90C 0016A56C 40 82 00 B8 */ bne lbl_8016E9C4
/* 8016E910 0016A570 2C 13 00 01 */ cmpwi r19, 1
/* 8016E914 0016A574 41 82 00 0C */ beq lbl_8016E920
/* 8016E918 0016A578 2C 13 00 03 */ cmpwi r19, 3
/* 8016E91C 0016A57C 40 82 00 A8 */ bne lbl_8016E9C4
lbl_8016E920:
/* 8016E920 0016A580 80 1D 00 10 */ lwz r0, 0x10(r29)
/* 8016E924 0016A584 7E 92 A3 78 */ mr r18, r20
/* 8016E928 0016A588 28 00 03 EF */ cmplwi r0, 0x3ef
/* 8016E92C 0016A58C 40 82 00 6C */ bne lbl_8016E998
/* 8016E930 0016A590 88 1D 00 14 */ lbz r0, 0x14(r29)
/* 8016E934 0016A594 28 00 00 0B */ cmplwi r0, 0xb
/* 8016E938 0016A598 40 82 00 60 */ bne lbl_8016E998
/* 8016E93C 0016A59C A0 7D 00 16 */ lhz r3, 0x16(r29)
/* 8016E940 0016A5A0 28 03 00 0A */ cmplwi r3, 0xa
/* 8016E944 0016A5A4 40 80 00 0C */ bge lbl_8016E950
/* 8016E948 0016A5A8 3A 40 00 01 */ li r18, 1
/* 8016E94C 0016A5AC 48 00 00 24 */ b lbl_8016E970
lbl_8016E950:
/* 8016E950 0016A5B0 28 03 00 1E */ cmplwi r3, 0x1e
/* 8016E954 0016A5B4 40 80 00 0C */ bge lbl_8016E960
/* 8016E958 0016A5B8 3A 40 00 02 */ li r18, 2
/* 8016E95C 0016A5BC 48 00 00 14 */ b lbl_8016E970
lbl_8016E960:
/* 8016E960 0016A5C0 38 00 00 28 */ li r0, 0x28
/* 8016E964 0016A5C4 7C 00 18 10 */ subfc r0, r0, r3
/* 8016E968 0016A5C8 7C 60 01 10 */ subfe r3, r0, r0
/* 8016E96C 0016A5CC 3A 43 00 04 */ addi r18, r3, 4
lbl_8016E970:
/* 8016E970 0016A5D0 56 40 06 3E */ clrlwi r0, r18, 0x18
/* 8016E974 0016A5D4 28 00 00 04 */ cmplwi r0, 4
/* 8016E978 0016A5D8 40 81 00 08 */ ble lbl_8016E980
/* 8016E97C 0016A5DC 3A 40 00 04 */ li r18, 4
lbl_8016E980:
/* 8016E980 0016A5E0 80 1D 00 08 */ lwz r0, 8(r29)
/* 8016E984 0016A5E4 2C 00 00 01 */ cmpwi r0, 1
/* 8016E988 0016A5E8 40 82 00 10 */ bne lbl_8016E998
/* 8016E98C 0016A5EC 56 43 06 3E */ clrlwi r3, r18, 0x18
/* 8016E990 0016A5F0 38 03 00 01 */ addi r0, r3, 1
/* 8016E994 0016A5F4 54 12 06 3E */ clrlwi r18, r0, 0x18
lbl_8016E998:
/* 8016E998 0016A5F8 48 05 2D 51 */ bl func_801C16E8
/* 8016E99C 0016A5FC 2C 03 00 00 */ cmpwi r3, 0
/* 8016E9A0 0016A600 40 82 00 24 */ bne lbl_8016E9C4
/* 8016E9A4 0016A604 88 1D 00 14 */ lbz r0, 0x14(r29)
/* 8016E9A8 0016A608 28 00 00 04 */ cmplwi r0, 4
/* 8016E9AC 0016A60C 41 82 00 18 */ beq lbl_8016E9C4
/* 8016E9B0 0016A610 80 DD 00 08 */ lwz r6, 8(r29)
/* 8016E9B4 0016A614 7F 63 DB 78 */ mr r3, r27
/* 8016E9B8 0016A618 7E E4 BB 78 */ mr r4, r23
/* 8016E9BC 0016A61C 56 45 06 3E */ clrlwi r5, r18, 0x18
/* 8016E9C0 0016A620 48 00 FB 2D */ bl func_8017E4EC
lbl_8016E9C4:
/* 8016E9C4 0016A624 88 1D 00 14 */ lbz r0, 0x14(r29)
/* 8016E9C8 0016A628 28 00 00 03 */ cmplwi r0, 3
/* 8016E9CC 0016A62C 40 82 00 A4 */ bne lbl_8016EA70
/* 8016E9D0 0016A630 88 1D 00 18 */ lbz r0, 0x18(r29)
/* 8016E9D4 0016A634 28 00 00 01 */ cmplwi r0, 1
/* 8016E9D8 0016A638 40 82 00 98 */ bne lbl_8016EA70
/* 8016E9DC 0016A63C 1E B4 00 8C */ mulli r21, r20, 0x8c
/* 8016E9E0 0016A640 7E A3 AB 78 */ mr r3, r21
/* 8016E9E4 0016A644 48 06 C3 81 */ bl func_801DAD64
/* 8016E9E8 0016A648 7C 71 1B 78 */ mr r17, r3
/* 8016E9EC 0016A64C 7E FF BB 78 */ mr r31, r23
/* 8016E9F0 0016A650 7E 36 8B 78 */ mr r22, r17
/* 8016E9F4 0016A654 3A 00 00 00 */ li r16, 0
/* 8016E9F8 0016A658 48 00 00 34 */ b lbl_8016EA2C
lbl_8016E9FC:
/* 8016E9FC 0016A65C 88 1F 00 00 */ lbz r0, 0(r31)
/* 8016EA00 0016A660 28 00 00 FF */ cmplwi r0, 0xff
/* 8016EA04 0016A664 41 82 00 1C */ beq lbl_8016EA20
/* 8016EA08 0016A668 1C 00 00 8C */ mulli r0, r0, 0x8c
/* 8016EA0C 0016A66C 7E C3 B3 78 */ mr r3, r22
/* 8016EA10 0016A670 38 A0 00 8C */ li r5, 0x8c
/* 8016EA14 0016A674 7C 9B 02 14 */ add r4, r27, r0
/* 8016EA18 0016A678 38 84 01 FC */ addi r4, r4, 0x1fc
/* 8016EA1C 0016A67C 4B E9 55 E5 */ bl memcpy
lbl_8016EA20:
/* 8016EA20 0016A680 3A D6 00 8C */ addi r22, r22, 0x8c
/* 8016EA24 0016A684 3A 10 00 01 */ addi r16, r16, 1
/* 8016EA28 0016A688 3B FF 00 01 */ addi r31, r31, 1
lbl_8016EA2C:
/* 8016EA2C 0016A68C 7C 10 A0 00 */ cmpw r16, r20
/* 8016EA30 0016A690 41 80 FF CC */ blt lbl_8016E9FC
/* 8016EA34 0016A694 7E 24 8B 78 */ mr r4, r17
/* 8016EA38 0016A698 7E A5 AB 78 */ mr r5, r21
/* 8016EA3C 0016A69C 38 7A 01 FC */ addi r3, r26, 0x1fc
/* 8016EA40 0016A6A0 4B E9 55 C1 */ bl memcpy
/* 8016EA44 0016A6A4 7E 23 8B 78 */ mr r3, r17
/* 8016EA48 0016A6A8 48 06 C4 5D */ bl func_801DAEA4
/* 8016EA4C 0016A6AC 80 1D 00 08 */ lwz r0, 8(r29)
/* 8016EA50 0016A6B0 2C 00 00 01 */ cmpwi r0, 1
/* 8016EA54 0016A6B4 41 82 00 0C */ beq lbl_8016EA60
/* 8016EA58 0016A6B8 2C 00 00 04 */ cmpwi r0, 4
/* 8016EA5C 0016A6BC 40 82 00 08 */ bne lbl_8016EA64
lbl_8016EA60:
/* 8016EA60 0016A6C0 3A 80 00 02 */ li r20, 2
lbl_8016EA64:
/* 8016EA64 0016A6C4 2C 00 00 02 */ cmpwi r0, 2
/* 8016EA68 0016A6C8 40 82 00 08 */ bne lbl_8016EA70
/* 8016EA6C 0016A6CC 3A 80 00 01 */ li r20, 1
lbl_8016EA70:
/* 8016EA70 0016A6D0 7E F1 BB 78 */ mr r17, r23
/* 8016EA74 0016A6D4 3A 00 00 00 */ li r16, 0
/* 8016EA78 0016A6D8 48 00 00 74 */ b lbl_8016EAEC
lbl_8016EA7C:
/* 8016EA7C 0016A6DC 88 11 00 00 */ lbz r0, 0(r17)
/* 8016EA80 0016A6E0 28 00 00 FF */ cmplwi r0, 0xff
/* 8016EA84 0016A6E4 41 82 00 60 */ beq lbl_8016EAE4
/* 8016EA88 0016A6E8 1C 00 00 8C */ mulli r0, r0, 0x8c
/* 8016EA8C 0016A6EC 7C 7B 02 14 */ add r3, r27, r0
/* 8016EA90 0016A6F0 38 63 01 FC */ addi r3, r3, 0x1fc
/* 8016EA94 0016A6F4 88 03 00 8A */ lbz r0, 0x8a(r3)
/* 8016EA98 0016A6F8 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8016EA9C 0016A6FC 41 82 00 48 */ beq lbl_8016EAE4
/* 8016EAA0 0016A700 56 40 06 3F */ clrlwi. r0, r18, 0x18
/* 8016EAA4 0016A704 41 82 00 0C */ beq lbl_8016EAB0
/* 8016EAA8 0016A708 7C 10 00 00 */ cmpw r16, r0
/* 8016EAAC 0016A70C 40 80 00 38 */ bge lbl_8016EAE4
lbl_8016EAB0:
/* 8016EAB0 0016A710 80 8F 00 08 */ lwz r4, 8(r15)
/* 8016EAB4 0016A714 48 26 DC 95 */ bl func_803DC748
/* 8016EAB8 0016A718 80 6F 00 08 */ lwz r3, 8(r15)
/* 8016EABC 0016A71C 38 80 00 05 */ li r4, 5
/* 8016EAC0 0016A720 38 A0 00 00 */ li r5, 0
/* 8016EAC4 0016A724 48 26 EF 19 */ bl func_803DD9DC
/* 8016EAC8 0016A728 2C 03 00 00 */ cmpwi r3, 0
/* 8016EACC 0016A72C 41 82 00 18 */ beq lbl_8016EAE4
/* 8016EAD0 0016A730 80 0F 00 04 */ lwz r0, 4(r15)
/* 8016EAD4 0016A734 80 8F 00 08 */ lwz r4, 8(r15)
/* 8016EAD8 0016A738 7C 79 02 14 */ add r3, r25, r0
/* 8016EADC 0016A73C 80 63 00 04 */ lwz r3, 4(r3)
/* 8016EAE0 0016A740 48 26 FD B1 */ bl func_803DE890
lbl_8016EAE4:
/* 8016EAE4 0016A744 3A 10 00 01 */ addi r16, r16, 1
/* 8016EAE8 0016A748 3A 31 00 01 */ addi r17, r17, 1
lbl_8016EAEC:
/* 8016EAEC 0016A74C 7C 10 A0 00 */ cmpw r16, r20
/* 8016EAF0 0016A750 41 80 FF 8C */ blt lbl_8016EA7C
/* 8016EAF4 0016A754 3B 39 00 04 */ addi r25, r25, 4
/* 8016EAF8 0016A758 3B 18 00 2C */ addi r24, r24, 0x2c
/* 8016EAFC 0016A75C 3A F7 00 06 */ addi r23, r23, 6
/* 8016EB00 0016A760 3A 73 00 01 */ addi r19, r19, 1
lbl_8016EB04:
/* 8016EB04 0016A764 7C 13 F0 00 */ cmpw r19, r30
/* 8016EB08 0016A768 41 80 FD 0C */ blt lbl_8016E814
/* 8016EB0C 0016A76C 88 1D 00 14 */ lbz r0, 0x14(r29)
/* 8016EB10 0016A770 28 00 00 0B */ cmplwi r0, 0xb
/* 8016EB14 0016A774 40 82 00 1C */ bne lbl_8016EB30
/* 8016EB18 0016A778 A0 1D 00 16 */ lhz r0, 0x16(r29)
/* 8016EB1C 0016A77C 28 00 00 01 */ cmplwi r0, 1
/* 8016EB20 0016A780 41 82 00 10 */ beq lbl_8016EB30
/* 8016EB24 0016A784 80 6F 00 04 */ lwz r3, 4(r15)
/* 8016EB28 0016A788 80 63 00 04 */ lwz r3, 4(r3)
/* 8016EB2C 0016A78C 4B FE 1D E5 */ bl func_80150910
lbl_8016EB30:
/* 8016EB30 0016A790 80 1D 00 08 */ lwz r0, 8(r29)
/* 8016EB34 0016A794 2C 00 00 03 */ cmpwi r0, 3
/* 8016EB38 0016A798 41 82 00 68 */ beq lbl_8016EBA0
/* 8016EB3C 0016A79C 40 80 00 14 */ bge lbl_8016EB50
/* 8016EB40 0016A7A0 2C 00 00 01 */ cmpwi r0, 1
/* 8016EB44 0016A7A4 41 82 00 18 */ beq lbl_8016EB5C
/* 8016EB48 0016A7A8 40 80 00 2C */ bge lbl_8016EB74
/* 8016EB4C 0016A7AC 48 00 00 54 */ b lbl_8016EBA0
lbl_8016EB50:
/* 8016EB50 0016A7B0 2C 00 00 05 */ cmpwi r0, 5
/* 8016EB54 0016A7B4 40 80 00 4C */ bge lbl_8016EBA0
/* 8016EB58 0016A7B8 48 00 00 34 */ b lbl_8016EB8C
lbl_8016EB5C:
/* 8016EB5C 0016A7BC 80 6F 00 00 */ lwz r3, 0(r15)
/* 8016EB60 0016A7C0 38 00 00 01 */ li r0, 1
/* 8016EB64 0016A7C4 60 63 00 03 */ ori r3, r3, 3
/* 8016EB68 0016A7C8 90 6F 00 00 */ stw r3, 0(r15)
/* 8016EB6C 0016A7CC 90 1C 00 00 */ stw r0, 0(r28)
/* 8016EB70 0016A7D0 48 00 00 30 */ b lbl_8016EBA0
lbl_8016EB74:
/* 8016EB74 0016A7D4 80 6F 00 00 */ lwz r3, 0(r15)
/* 8016EB78 0016A7D8 38 00 00 00 */ li r0, 0
/* 8016EB7C 0016A7DC 60 63 00 01 */ ori r3, r3, 1
/* 8016EB80 0016A7E0 90 6F 00 00 */ stw r3, 0(r15)
/* 8016EB84 0016A7E4 90 1C 00 00 */ stw r0, 0(r28)
/* 8016EB88 0016A7E8 48 00 00 18 */ b lbl_8016EBA0
lbl_8016EB8C:
/* 8016EB8C 0016A7EC 80 6F 00 00 */ lwz r3, 0(r15)
/* 8016EB90 0016A7F0 38 00 00 02 */ li r0, 2
/* 8016EB94 0016A7F4 60 63 00 0B */ ori r3, r3, 0xb
/* 8016EB98 0016A7F8 90 6F 00 00 */ stw r3, 0(r15)
/* 8016EB9C 0016A7FC 90 1C 00 00 */ stw r0, 0(r28)
lbl_8016EBA0:
/* 8016EBA0 0016A800 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8016EBA4 0016A804 2C 00 00 02 */ cmpwi r0, 2
/* 8016EBA8 0016A808 41 82 00 20 */ beq lbl_8016EBC8
/* 8016EBAC 0016A80C 40 80 00 10 */ bge lbl_8016EBBC
/* 8016EBB0 0016A810 2C 00 00 01 */ cmpwi r0, 1
/* 8016EBB4 0016A814 40 80 00 60 */ bge lbl_8016EC14
/* 8016EBB8 0016A818 48 00 00 7C */ b lbl_8016EC34
lbl_8016EBBC:
/* 8016EBBC 0016A81C 2C 00 00 04 */ cmpwi r0, 4
/* 8016EBC0 0016A820 40 80 00 74 */ bge lbl_8016EC34
/* 8016EBC4 0016A824 48 00 00 18 */ b lbl_8016EBDC
lbl_8016EBC8:
/* 8016EBC8 0016A828 80 0F 00 00 */ lwz r0, 0(r15)
/* 8016EBCC 0016A82C 60 00 08 00 */ ori r0, r0, 0x800
/* 8016EBD0 0016A830 64 00 00 08 */ oris r0, r0, 8
/* 8016EBD4 0016A834 90 0F 00 00 */ stw r0, 0(r15)
/* 8016EBD8 0016A838 48 00 00 5C */ b lbl_8016EC34
lbl_8016EBDC:
/* 8016EBDC 0016A83C 4B FF 9F 39 */ bl func_80168B14
/* 8016EBE0 0016A840 2C 03 00 00 */ cmpwi r3, 0
/* 8016EBE4 0016A844 41 82 00 14 */ beq lbl_8016EBF8
/* 8016EBE8 0016A848 80 0F 00 00 */ lwz r0, 0(r15)
/* 8016EBEC 0016A84C 60 00 20 00 */ ori r0, r0, 0x2000
/* 8016EBF0 0016A850 90 0F 00 00 */ stw r0, 0(r15)
/* 8016EBF4 0016A854 48 00 00 40 */ b lbl_8016EC34
lbl_8016EBF8:
/* 8016EBF8 0016A858 4B FF 9F 31 */ bl func_80168B28
/* 8016EBFC 0016A85C 2C 03 00 00 */ cmpwi r3, 0
/* 8016EC00 0016A860 41 82 00 34 */ beq lbl_8016EC34
/* 8016EC04 0016A864 80 0F 00 00 */ lwz r0, 0(r15)
/* 8016EC08 0016A868 64 00 00 04 */ oris r0, r0, 4
/* 8016EC0C 0016A86C 90 0F 00 00 */ stw r0, 0(r15)
/* 8016EC10 0016A870 48 00 00 24 */ b lbl_8016EC34
lbl_8016EC14:
/* 8016EC14 0016A874 80 0F 00 00 */ lwz r0, 0(r15)
/* 8016EC18 0016A878 60 03 10 00 */ ori r3, r0, 0x1000
/* 8016EC1C 0016A87C 90 6F 00 00 */ stw r3, 0(r15)
/* 8016EC20 0016A880 88 1D 00 1B */ lbz r0, 0x1b(r29)
/* 8016EC24 0016A884 28 00 00 02 */ cmplwi r0, 2
/* 8016EC28 0016A888 40 82 00 0C */ bne lbl_8016EC34
/* 8016EC2C 0016A88C 64 60 00 08 */ oris r0, r3, 8
/* 8016EC30 0016A890 90 0F 00 00 */ stw r0, 0(r15)
lbl_8016EC34:
/* 8016EC34 0016A894 88 1D 00 1B */ lbz r0, 0x1b(r29)
/* 8016EC38 0016A898 2C 00 00 04 */ cmpwi r0, 4
/* 8016EC3C 0016A89C 41 82 00 4C */ beq lbl_8016EC88
/* 8016EC40 0016A8A0 40 80 00 1C */ bge lbl_8016EC5C
/* 8016EC44 0016A8A4 2C 00 00 02 */ cmpwi r0, 2
/* 8016EC48 0016A8A8 41 82 00 30 */ beq lbl_8016EC78
/* 8016EC4C 0016A8AC 40 80 00 58 */ bge lbl_8016ECA4
/* 8016EC50 0016A8B0 2C 00 00 01 */ cmpwi r0, 1
/* 8016EC54 0016A8B4 40 80 00 14 */ bge lbl_8016EC68
/* 8016EC58 0016A8B8 48 00 00 4C */ b lbl_8016ECA4
lbl_8016EC5C:
/* 8016EC5C 0016A8BC 2C 00 00 08 */ cmpwi r0, 8
/* 8016EC60 0016A8C0 41 82 00 38 */ beq lbl_8016EC98
/* 8016EC64 0016A8C4 48 00 00 40 */ b lbl_8016ECA4
lbl_8016EC68:
/* 8016EC68 0016A8C8 80 0F 00 00 */ lwz r0, 0(r15)
/* 8016EC6C 0016A8CC 60 00 40 00 */ ori r0, r0, 0x4000
/* 8016EC70 0016A8D0 90 0F 00 00 */ stw r0, 0(r15)
/* 8016EC74 0016A8D4 48 00 00 30 */ b lbl_8016ECA4
lbl_8016EC78:
/* 8016EC78 0016A8D8 80 0F 00 00 */ lwz r0, 0(r15)
/* 8016EC7C 0016A8DC 60 00 80 00 */ ori r0, r0, 0x8000
/* 8016EC80 0016A8E0 90 0F 00 00 */ stw r0, 0(r15)
/* 8016EC84 0016A8E4 48 00 00 20 */ b lbl_8016ECA4
lbl_8016EC88:
/* 8016EC88 0016A8E8 80 0F 00 00 */ lwz r0, 0(r15)
/* 8016EC8C 0016A8EC 64 00 00 01 */ oris r0, r0, 1
/* 8016EC90 0016A8F0 90 0F 00 00 */ stw r0, 0(r15)
/* 8016EC94 0016A8F4 48 00 00 10 */ b lbl_8016ECA4
lbl_8016EC98:
/* 8016EC98 0016A8F8 80 0F 00 00 */ lwz r0, 0(r15)
/* 8016EC9C 0016A8FC 60 00 40 00 */ ori r0, r0, 0x4000
/* 8016ECA0 0016A900 90 0F 00 00 */ stw r0, 0(r15)
lbl_8016ECA4:
/* 8016ECA4 0016A904 38 60 00 01 */ li r3, 1
lbl_8016ECA8:
/* 8016ECA8 0016A908 39 61 00 70 */ addi r11, r1, 0x70
/* 8016ECAC 0016A90C 48 05 84 95 */ bl __restore_gpr
/* 8016ECB0 0016A910 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8016ECB4 0016A914 7C 08 03 A6 */ mtlr r0
/* 8016ECB8 0016A918 38 21 00 70 */ addi r1, r1, 0x70
/* 8016ECBC 0016A91C 4E 80 00 20 */ blr
.global func_8016ECC0
func_8016ECC0:
/* 8016ECC0 0016A920 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8016ECC4 0016A924 7C 08 02 A6 */ mflr r0
/* 8016ECC8 0016A928 90 01 00 34 */ stw r0, 0x34(r1)
/* 8016ECCC 0016A92C 39 61 00 30 */ addi r11, r1, 0x30
/* 8016ECD0 0016A930 48 05 84 45 */ bl _savegpr_22
/* 8016ECD4 0016A934 80 03 00 00 */ lwz r0, 0(r3)
/* 8016ECD8 0016A938 7C 7D 1B 78 */ mr r29, r3
/* 8016ECDC 0016A93C 54 03 07 39 */ rlwinm. r3, r0, 0, 0x1c, 0x1c
/* 8016ECE0 0016A940 54 04 FF FE */ rlwinm r4, r0, 0x1f, 0x1f, 0x1f
/* 8016ECE4 0016A944 54 03 EF FE */ rlwinm r3, r0, 0x1d, 0x1f, 0x1f
/* 8016ECE8 0016A948 3B E4 00 01 */ addi r31, r4, 1
/* 8016ECEC 0016A94C 38 03 00 01 */ addi r0, r3, 1
/* 8016ECF0 0016A950 41 82 00 74 */ beq lbl_8016ED64
/* 8016ECF4 0016A954 54 1B 0D FC */ rlwinm r27, r0, 1, 0x17, 0x1e
/* 8016ECF8 0016A958 3A C0 00 00 */ li r22, 0
/* 8016ECFC 0016A95C 48 00 00 58 */ b lbl_8016ED54
lbl_8016ED00:
/* 8016ED00 0016A960 56 DC 15 BA */ rlwinm r28, r22, 2, 0x16, 0x1d
/* 8016ED04 0016A964 3A E0 00 00 */ li r23, 0
lbl_8016ED08:
/* 8016ED08 0016A968 80 1D 00 04 */ lwz r0, 4(r29)
/* 8016ED0C 0016A96C 56 E4 06 3E */ clrlwi r4, r23, 0x18
/* 8016ED10 0016A970 7C 7C 02 14 */ add r3, r28, r0
/* 8016ED14 0016A974 80 63 00 04 */ lwz r3, 4(r3)
/* 8016ED18 0016A978 48 26 FC 35 */ bl func_803DE94C
/* 8016ED1C 0016A97C 7C 78 1B 78 */ mr r24, r3
/* 8016ED20 0016A980 38 80 00 A2 */ li r4, 0xa2
/* 8016ED24 0016A984 38 A0 00 00 */ li r5, 0
/* 8016ED28 0016A988 48 26 EC B5 */ bl func_803DD9DC
/* 8016ED2C 0016A98C 2C 03 00 00 */ cmpwi r3, 0
/* 8016ED30 0016A990 41 82 00 14 */ beq lbl_8016ED44
/* 8016ED34 0016A994 7F 03 C3 78 */ mr r3, r24
/* 8016ED38 0016A998 56 C4 06 3E */ clrlwi r4, r22, 0x18
/* 8016ED3C 0016A99C 4B FF E2 75 */ bl func_8016CFB0
/* 8016ED40 0016A9A0 48 00 00 10 */ b lbl_8016ED50
lbl_8016ED44:
/* 8016ED44 0016A9A4 3A F7 00 01 */ addi r23, r23, 1
/* 8016ED48 0016A9A8 28 17 00 06 */ cmplwi r23, 6
/* 8016ED4C 0016A9AC 41 80 FF BC */ blt lbl_8016ED08
lbl_8016ED50:
/* 8016ED50 0016A9B0 3A D6 00 01 */ addi r22, r22, 1
lbl_8016ED54:
/* 8016ED54 0016A9B4 56 C0 06 3E */ clrlwi r0, r22, 0x18
/* 8016ED58 0016A9B8 7C 00 D8 00 */ cmpw r0, r27
/* 8016ED5C 0016A9BC 41 80 FF A4 */ blt lbl_8016ED00
/* 8016ED60 0016A9C0 48 00 01 50 */ b lbl_8016EEB0
lbl_8016ED64:
/* 8016ED64 0016A9C4 54 1E 0D FC */ rlwinm r30, r0, 1, 0x17, 0x1e
/* 8016ED68 0016A9C8 3B 20 00 00 */ li r25, 0
/* 8016ED6C 0016A9CC 48 00 00 94 */ b lbl_8016EE00
lbl_8016ED70:
/* 8016ED70 0016A9D0 57 20 07 FF */ clrlwi. r0, r25, 0x1f
/* 8016ED74 0016A9D4 40 82 00 88 */ bne lbl_8016EDFC
/* 8016ED78 0016A9D8 57 3B 15 BA */ rlwinm r27, r25, 2, 0x16, 0x1d
/* 8016ED7C 0016A9DC 57 FC 06 3E */ clrlwi r28, r31, 0x18
/* 8016ED80 0016A9E0 3B 40 00 00 */ li r26, 0
/* 8016ED84 0016A9E4 3A C0 00 00 */ li r22, 0
/* 8016ED88 0016A9E8 48 00 00 68 */ b lbl_8016EDF0
lbl_8016ED8C:
/* 8016ED8C 0016A9EC 7F 58 D3 78 */ mr r24, r26
/* 8016ED90 0016A9F0 48 00 00 50 */ b lbl_8016EDE0
lbl_8016ED94:
/* 8016ED94 0016A9F4 80 1D 00 04 */ lwz r0, 4(r29)
/* 8016ED98 0016A9F8 57 04 06 3E */ clrlwi r4, r24, 0x18
/* 8016ED9C 0016A9FC 3B 5A 00 01 */ addi r26, r26, 1
/* 8016EDA0 0016AA00 7C 7B 02 14 */ add r3, r27, r0
/* 8016EDA4 0016AA04 80 63 00 04 */ lwz r3, 4(r3)
/* 8016EDA8 0016AA08 48 26 FB A5 */ bl func_803DE94C
/* 8016EDAC 0016AA0C 7C 77 1B 78 */ mr r23, r3
/* 8016EDB0 0016AA10 38 80 00 A2 */ li r4, 0xa2
/* 8016EDB4 0016AA14 38 A0 00 00 */ li r5, 0
/* 8016EDB8 0016AA18 48 26 EC 25 */ bl func_803DD9DC
/* 8016EDBC 0016AA1C 2C 03 00 00 */ cmpwi r3, 0
/* 8016EDC0 0016AA20 41 82 00 1C */ beq lbl_8016EDDC
/* 8016EDC4 0016AA24 57 24 06 3E */ clrlwi r4, r25, 0x18
/* 8016EDC8 0016AA28 56 C0 0D FC */ rlwinm r0, r22, 1, 0x17, 0x1e
/* 8016EDCC 0016AA2C 7E E3 BB 78 */ mr r3, r23
/* 8016EDD0 0016AA30 7C 84 02 14 */ add r4, r4, r0
/* 8016EDD4 0016AA34 4B FF E1 DD */ bl func_8016CFB0
/* 8016EDD8 0016AA38 48 00 00 14 */ b lbl_8016EDEC
lbl_8016EDDC:
/* 8016EDDC 0016AA3C 3B 18 00 01 */ addi r24, r24, 1
lbl_8016EDE0:
/* 8016EDE0 0016AA40 57 00 06 3E */ clrlwi r0, r24, 0x18
/* 8016EDE4 0016AA44 28 00 00 06 */ cmplwi r0, 6
/* 8016EDE8 0016AA48 41 80 FF AC */ blt lbl_8016ED94
lbl_8016EDEC:
/* 8016EDEC 0016AA4C 3A D6 00 01 */ addi r22, r22, 1
lbl_8016EDF0:
/* 8016EDF0 0016AA50 56 C0 06 3E */ clrlwi r0, r22, 0x18
/* 8016EDF4 0016AA54 7C 00 E0 40 */ cmplw r0, r28
/* 8016EDF8 0016AA58 41 80 FF 94 */ blt lbl_8016ED8C
lbl_8016EDFC:
/* 8016EDFC 0016AA5C 3B 39 00 01 */ addi r25, r25, 1
lbl_8016EE00:
/* 8016EE00 0016AA60 57 20 06 3E */ clrlwi r0, r25, 0x18
/* 8016EE04 0016AA64 7C 00 F0 00 */ cmpw r0, r30
/* 8016EE08 0016AA68 41 80 FF 68 */ blt lbl_8016ED70
/* 8016EE0C 0016AA6C 3B 20 00 00 */ li r25, 0
/* 8016EE10 0016AA70 48 00 00 94 */ b lbl_8016EEA4
lbl_8016EE14:
/* 8016EE14 0016AA74 57 20 07 FF */ clrlwi. r0, r25, 0x1f
/* 8016EE18 0016AA78 41 82 00 88 */ beq lbl_8016EEA0
/* 8016EE1C 0016AA7C 57 3B 15 BA */ rlwinm r27, r25, 2, 0x16, 0x1d
/* 8016EE20 0016AA80 57 FC 06 3E */ clrlwi r28, r31, 0x18
/* 8016EE24 0016AA84 3B 40 00 00 */ li r26, 0
/* 8016EE28 0016AA88 3A C0 00 00 */ li r22, 0
/* 8016EE2C 0016AA8C 48 00 00 68 */ b lbl_8016EE94
lbl_8016EE30:
/* 8016EE30 0016AA90 7F 58 D3 78 */ mr r24, r26
/* 8016EE34 0016AA94 48 00 00 50 */ b lbl_8016EE84
lbl_8016EE38:
/* 8016EE38 0016AA98 80 1D 00 04 */ lwz r0, 4(r29)
/* 8016EE3C 0016AA9C 57 04 06 3E */ clrlwi r4, r24, 0x18
/* 8016EE40 0016AAA0 3B 5A 00 01 */ addi r26, r26, 1
/* 8016EE44 0016AAA4 7C 7B 02 14 */ add r3, r27, r0
/* 8016EE48 0016AAA8 80 63 00 04 */ lwz r3, 4(r3)
/* 8016EE4C 0016AAAC 48 26 FB 01 */ bl func_803DE94C
/* 8016EE50 0016AAB0 7C 77 1B 78 */ mr r23, r3
/* 8016EE54 0016AAB4 38 80 00 A2 */ li r4, 0xa2
/* 8016EE58 0016AAB8 38 A0 00 00 */ li r5, 0
/* 8016EE5C 0016AABC 48 26 EB 81 */ bl func_803DD9DC
/* 8016EE60 0016AAC0 2C 03 00 00 */ cmpwi r3, 0
/* 8016EE64 0016AAC4 41 82 00 1C */ beq lbl_8016EE80
/* 8016EE68 0016AAC8 57 24 06 3E */ clrlwi r4, r25, 0x18
/* 8016EE6C 0016AACC 56 C0 0D FC */ rlwinm r0, r22, 1, 0x17, 0x1e
/* 8016EE70 0016AAD0 7E E3 BB 78 */ mr r3, r23
/* 8016EE74 0016AAD4 7C 84 02 14 */ add r4, r4, r0
/* 8016EE78 0016AAD8 4B FF E1 39 */ bl func_8016CFB0
/* 8016EE7C 0016AADC 48 00 00 14 */ b lbl_8016EE90
lbl_8016EE80:
/* 8016EE80 0016AAE0 3B 18 00 01 */ addi r24, r24, 1
lbl_8016EE84:
/* 8016EE84 0016AAE4 57 00 06 3E */ clrlwi r0, r24, 0x18
/* 8016EE88 0016AAE8 28 00 00 06 */ cmplwi r0, 6
/* 8016EE8C 0016AAEC 41 80 FF AC */ blt lbl_8016EE38
lbl_8016EE90:
/* 8016EE90 0016AAF0 3A D6 00 01 */ addi r22, r22, 1
lbl_8016EE94:
/* 8016EE94 0016AAF4 56 C0 06 3E */ clrlwi r0, r22, 0x18
/* 8016EE98 0016AAF8 7C 00 E0 40 */ cmplw r0, r28
/* 8016EE9C 0016AAFC 41 80 FF 94 */ blt lbl_8016EE30
lbl_8016EEA0:
/* 8016EEA0 0016AB00 3B 39 00 01 */ addi r25, r25, 1
lbl_8016EEA4:
/* 8016EEA4 0016AB04 57 20 06 3E */ clrlwi r0, r25, 0x18
/* 8016EEA8 0016AB08 7C 00 F0 00 */ cmpw r0, r30
/* 8016EEAC 0016AB0C 41 80 FF 68 */ blt lbl_8016EE14
lbl_8016EEB0:
/* 8016EEB0 0016AB10 39 61 00 30 */ addi r11, r1, 0x30
/* 8016EEB4 0016AB14 48 05 82 AD */ bl _restgpr_22
/* 8016EEB8 0016AB18 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8016EEBC 0016AB1C 7C 08 03 A6 */ mtlr r0
/* 8016EEC0 0016AB20 38 21 00 30 */ addi r1, r1, 0x30
/* 8016EEC4 0016AB24 4E 80 00 20 */ blr
.global func_8016EEC8
func_8016EEC8:
/* 8016EEC8 0016AB28 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8016EECC 0016AB2C 7C 08 02 A6 */ mflr r0
/* 8016EED0 0016AB30 90 01 00 14 */ stw r0, 0x14(r1)
/* 8016EED4 0016AB34 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8016EED8 0016AB38 3B E0 00 00 */ li r31, 0
/* 8016EEDC 0016AB3C 93 C1 00 08 */ stw r30, 8(r1)
/* 8016EEE0 0016AB40 7C 7E 1B 78 */ mr r30, r3
lbl_8016EEE4:
/* 8016EEE4 0016AB44 80 7E 00 00 */ lwz r3, 0(r30)
/* 8016EEE8 0016AB48 57 E4 06 3E */ clrlwi r4, r31, 0x18
/* 8016EEEC 0016AB4C 48 25 A3 DD */ bl func_803C92C8
/* 8016EEF0 0016AB50 54 64 06 3E */ clrlwi r4, r3, 0x18
/* 8016EEF4 0016AB54 28 04 00 FF */ cmplwi r4, 0xff
/* 8016EEF8 0016AB58 41 82 00 34 */ beq lbl_8016EF2C
/* 8016EEFC 0016AB5C 80 BE 00 04 */ lwz r5, 4(r30)
/* 8016EF00 0016AB60 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d
/* 8016EF04 0016AB64 80 7E 00 00 */ lwz r3, 0(r30)
/* 8016EF08 0016AB68 7C A5 02 14 */ add r5, r5, r0
/* 8016EF0C 0016AB6C 80 A5 00 04 */ lwz r5, 4(r5)
/* 8016EF10 0016AB70 48 00 85 49 */ bl func_80177458
/* 8016EF14 0016AB74 80 1E 00 00 */ lwz r0, 0(r30)
/* 8016EF18 0016AB78 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 8016EF1C 0016AB7C 40 82 00 10 */ bne lbl_8016EF2C
/* 8016EF20 0016AB80 57 E0 06 3E */ clrlwi r0, r31, 0x18
/* 8016EF24 0016AB84 28 00 00 01 */ cmplwi r0, 1
/* 8016EF28 0016AB88 40 80 00 10 */ bge lbl_8016EF38
lbl_8016EF2C:
/* 8016EF2C 0016AB8C 3B FF 00 01 */ addi r31, r31, 1
/* 8016EF30 0016AB90 28 1F 00 04 */ cmplwi r31, 4
/* 8016EF34 0016AB94 41 80 FF B0 */ blt lbl_8016EEE4
lbl_8016EF38:
/* 8016EF38 0016AB98 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8016EF3C 0016AB9C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8016EF40 0016ABA0 83 C1 00 08 */ lwz r30, 8(r1)
/* 8016EF44 0016ABA4 7C 08 03 A6 */ mtlr r0
/* 8016EF48 0016ABA8 38 21 00 10 */ addi r1, r1, 0x10
/* 8016EF4C 0016ABAC 4E 80 00 20 */ blr
.global func_8016EF50
func_8016EF50:
/* 8016EF50 0016ABB0 A0 03 00 0C */ lhz r0, 0xc(r3)
/* 8016EF54 0016ABB4 38 80 00 00 */ li r4, 0
/* 8016EF58 0016ABB8 54 00 9F FF */ rlwinm. r0, r0, 0x13, 0x1f, 0x1f
/* 8016EF5C 0016ABBC 40 82 00 08 */ bne lbl_8016EF64
/* 8016EF60 0016ABC0 60 84 00 02 */ ori r4, r4, 2
lbl_8016EF64:
/* 8016EF64 0016ABC4 A0 03 00 0C */ lhz r0, 0xc(r3)
/* 8016EF68 0016ABC8 54 00 A7 FF */ rlwinm. r0, r0, 0x14, 0x1f, 0x1f
/* 8016EF6C 0016ABCC 40 82 00 08 */ bne lbl_8016EF74
/* 8016EF70 0016ABD0 60 84 00 04 */ ori r4, r4, 4
lbl_8016EF74:
/* 8016EF74 0016ABD4 A0 03 00 0C */ lhz r0, 0xc(r3)
/* 8016EF78 0016ABD8 54 00 AF FF */ rlwinm. r0, r0, 0x15, 0x1f, 0x1f
/* 8016EF7C 0016ABDC 41 82 00 08 */ beq lbl_8016EF84
/* 8016EF80 0016ABE0 60 84 00 08 */ ori r4, r4, 8
lbl_8016EF84:
/* 8016EF84 0016ABE4 A0 03 00 0C */ lhz r0, 0xc(r3)
/* 8016EF88 0016ABE8 54 00 B7 FF */ rlwinm. r0, r0, 0x16, 0x1f, 0x1f
/* 8016EF8C 0016ABEC 41 82 00 08 */ beq lbl_8016EF94
/* 8016EF90 0016ABF0 60 84 00 10 */ ori r4, r4, 0x10
lbl_8016EF94:
/* 8016EF94 0016ABF4 A0 03 00 0C */ lhz r0, 0xc(r3)
/* 8016EF98 0016ABF8 54 00 BF FF */ rlwinm. r0, r0, 0x17, 0x1f, 0x1f
/* 8016EF9C 0016ABFC 41 82 00 08 */ beq lbl_8016EFA4
/* 8016EFA0 0016AC00 60 84 00 01 */ ori r4, r4, 1
lbl_8016EFA4:
/* 8016EFA4 0016AC04 7C 83 23 78 */ mr r3, r4
/* 8016EFA8 0016AC08 4E 80 00 20 */ blr
.global func_8016EFAC
func_8016EFAC:
/* 8016EFAC 0016AC0C 38 A0 00 01 */ li r5, 1
/* 8016EFB0 0016AC10 38 6D 9F 10 */ addi r3, r13, lbl_8063F1D0-_SDA_BASE_
/* 8016EFB4 0016AC14 38 80 00 04 */ li r4, 4
/* 8016EFB8 0016AC18 38 00 00 00 */ li r0, 0
/* 8016EFBC 0016AC1C 98 AD 9F 10 */ stb r5, lbl_8063F1D0-_SDA_BASE_(r13)
/* 8016EFC0 0016AC20 B0 83 00 02 */ sth r4, 2(r3)
/* 8016EFC4 0016AC24 98 03 00 04 */ stb r0, 4(r3)
/* 8016EFC8 0016AC28 4E 80 00 20 */ blr
|