summaryrefslogtreecommitdiff
path: root/asm/code_8023EE6C.s
blob: b775509b0e6832bdc9b8f522e6135be2ebb3454b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
.include "macros.inc"

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

lbl_8023EE6C:
/* 8023EE6C 0023AACC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023EE70 0023AAD0  7C 08 02 A6 */	mflr r0
/* 8023EE74 0023AAD4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023EE78 0023AAD8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023EE7C 0023AADC  80 6D A4 C8 */	lwz r3, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EE80 0023AAE0  2C 03 00 00 */	cmpwi r3, 0
/* 8023EE84 0023AAE4  41 82 00 A4 */	beq lbl_8023EF28
/* 8023EE88 0023AAE8  88 03 00 81 */	lbz r0, 0x81(r3)
/* 8023EE8C 0023AAEC  28 00 00 01 */	cmplwi r0, 1
/* 8023EE90 0023AAF0  40 82 00 1C */	bne lbl_8023EEAC
/* 8023EE94 0023AAF4  88 83 00 80 */	lbz r4, 0x80(r3)
/* 8023EE98 0023AAF8  2C 04 00 00 */	cmpwi r4, 0
/* 8023EE9C 0023AAFC  41 82 00 10 */	beq lbl_8023EEAC
/* 8023EEA0 0023AB00  38 04 FF FF */	addi r0, r4, -1
/* 8023EEA4 0023AB04  98 03 00 80 */	stb r0, 0x80(r3)
/* 8023EEA8 0023AB08  48 00 00 80 */	b lbl_8023EF28
lbl_8023EEAC:
/* 8023EEAC 0023AB0C  38 80 00 02 */	li r4, 2
/* 8023EEB0 0023AB10  48 00 0D 5D */	bl func_8023FC0C
/* 8023EEB4 0023AB14  2C 03 00 00 */	cmpwi r3, 0
/* 8023EEB8 0023AB18  7C 7F 1B 78 */	mr r31, r3
/* 8023EEBC 0023AB1C  40 82 00 18 */	bne lbl_8023EED4
/* 8023EEC0 0023AB20  80 8D A4 C8 */	lwz r4, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EEC4 0023AB24  80 64 00 84 */	lwz r3, 0x84(r4)
/* 8023EEC8 0023AB28  38 03 00 01 */	addi r0, r3, 1
/* 8023EECC 0023AB2C  90 04 00 84 */	stw r0, 0x84(r4)
/* 8023EED0 0023AB30  48 00 00 58 */	b lbl_8023EF28
lbl_8023EED4:
/* 8023EED4 0023AB34  80 8D A4 C8 */	lwz r4, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EED8 0023AB38  38 00 00 00 */	li r0, 0
/* 8023EEDC 0023AB3C  98 04 00 5B */	stb r0, 0x5b(r4)
/* 8023EEE0 0023AB40  80 AD A4 C8 */	lwz r5, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EEE4 0023AB44  80 85 00 88 */	lwz r4, 0x88(r5)
/* 8023EEE8 0023AB48  38 04 00 01 */	addi r0, r4, 1
/* 8023EEEC 0023AB4C  90 05 00 88 */	stw r0, 0x88(r5)
/* 8023EEF0 0023AB50  80 63 00 04 */	lwz r3, 4(r3)
/* 8023EEF4 0023AB54  48 03 A8 C9 */	bl VISetNextFrameBuffer
/* 8023EEF8 0023AB58  48 03 A7 B1 */	bl VIFlush
/* 8023EEFC 0023AB5C  38 60 00 01 */	li r3, 1
/* 8023EF00 0023AB60  38 00 00 03 */	li r0, 3
/* 8023EF04 0023AB64  90 7F 00 00 */	stw r3, 0(r31)
/* 8023EF08 0023AB68  80 6D A4 C8 */	lwz r3, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EF0C 0023AB6C  80 63 00 54 */	lwz r3, 0x54(r3)
/* 8023EF10 0023AB70  90 03 00 00 */	stw r0, 0(r3)
/* 8023EF14 0023AB74  80 6D A4 C8 */	lwz r3, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EF18 0023AB78  93 E3 00 54 */	stw r31, 0x54(r3)
/* 8023EF1C 0023AB7C  80 6D A4 C8 */	lwz r3, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EF20 0023AB80  80 03 00 7C */	lwz r0, 0x7c(r3)
/* 8023EF24 0023AB84  98 03 00 80 */	stb r0, 0x80(r3)
lbl_8023EF28:
/* 8023EF28 0023AB88  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023EF2C 0023AB8C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023EF30 0023AB90  7C 08 03 A6 */	mtlr r0
/* 8023EF34 0023AB94  38 21 00 10 */	addi r1, r1, 0x10
/* 8023EF38 0023AB98  4E 80 00 20 */	blr
lbl_8023EF3C:
/* 8023EF3C 0023AB9C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023EF40 0023ABA0  7C 08 02 A6 */	mflr r0
/* 8023EF44 0023ABA4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023EF48 0023ABA8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023EF4C 0023ABAC  80 AD A4 C8 */	lwz r5, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EF50 0023ABB0  2C 05 00 00 */	cmpwi r5, 0
/* 8023EF54 0023ABB4  41 82 00 48 */	beq lbl_8023EF9C
/* 8023EF58 0023ABB8  80 85 00 6C */	lwz r4, 0x6c(r5)
/* 8023EF5C 0023ABBC  38 04 00 01 */	addi r0, r4, 1
/* 8023EF60 0023ABC0  90 05 00 6C */	stw r0, 0x6c(r5)
/* 8023EF64 0023ABC4  80 8D A4 C8 */	lwz r4, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EF68 0023ABC8  80 04 00 74 */	lwz r0, 0x74(r4)
/* 8023EF6C 0023ABCC  2C 00 00 00 */	cmpwi r0, 0
/* 8023EF70 0023ABD0  41 82 00 2C */	beq lbl_8023EF9C
/* 8023EF74 0023ABD4  80 8D A3 D8 */	lwz r4, render_context_ptr-_SDA_BASE_(r13)
/* 8023EF78 0023ABD8  38 00 00 00 */	li r0, 0
/* 8023EF7C 0023ABDC  8B E4 16 F9 */	lbz r31, 0x16f9(r4)
/* 8023EF80 0023ABE0  98 04 16 F9 */	stb r0, 0x16f9(r4)
/* 8023EF84 0023ABE4  80 8D A4 C8 */	lwz r4, lbl_8063F788-_SDA_BASE_(r13)
/* 8023EF88 0023ABE8  81 84 00 74 */	lwz r12, 0x74(r4)
/* 8023EF8C 0023ABEC  7D 89 03 A6 */	mtctr r12
/* 8023EF90 0023ABF0  4E 80 04 21 */	bctrl
/* 8023EF94 0023ABF4  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8023EF98 0023ABF8  9B E3 16 F9 */	stb r31, 0x16f9(r3)
lbl_8023EF9C:
/* 8023EF9C 0023ABFC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023EFA0 0023AC00  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023EFA4 0023AC04  7C 08 03 A6 */	mtlr r0
/* 8023EFA8 0023AC08  38 21 00 10 */	addi r1, r1, 0x10
/* 8023EFAC 0023AC0C  4E 80 00 20 */	blr

.global func_8023EFB0
func_8023EFB0:
/* 8023EFB0 0023AC10  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8023EFB4 0023AC14  7C 08 02 A6 */	mflr r0
/* 8023EFB8 0023AC18  90 01 00 34 */	stw r0, 0x34(r1)
/* 8023EFBC 0023AC1C  39 61 00 30 */	addi r11, r1, 0x30
/* 8023EFC0 0023AC20  4B F8 81 61 */	bl _savegpr_25
/* 8023EFC4 0023AC24  3C E0 80 42 */	lis r7, lbl_8042491C@ha
/* 8023EFC8 0023AC28  38 00 00 00 */	li r0, 0
/* 8023EFCC 0023AC2C  38 E7 49 1C */	addi r7, r7, lbl_8042491C@l
/* 8023EFD0 0023AC30  2C 06 00 01 */	cmpwi r6, 1
/* 8023EFD4 0023AC34  90 E3 00 D8 */	stw r7, 0xd8(r3)
/* 8023EFD8 0023AC38  7C 7F 1B 78 */	mr r31, r3
/* 8023EFDC 0023AC3C  39 60 00 3C */	li r11, 0x3c
/* 8023EFE0 0023AC40  90 03 00 54 */	stw r0, 0x54(r3)
/* 8023EFE4 0023AC44  98 83 00 58 */	stb r4, 0x58(r3)
/* 8023EFE8 0023AC48  40 82 00 08 */	bne lbl_8023EFF0
/* 8023EFEC 0023AC4C  39 60 00 32 */	li r11, 0x32
lbl_8023EFF0:
/* 8023EFF0 0023AC50  3C 00 43 30 */	lis r0, 0x4330
/* 8023EFF4 0023AC54  3B A0 00 00 */	li r29, 0
/* 8023EFF8 0023AC58  90 01 00 08 */	stw r0, 8(r1)
/* 8023EFFC 0023AC5C  39 40 00 01 */	li r10, 1
/* 8023F000 0023AC60  C0 82 9D EC */	lfs f4, lbl_806423EC-_SDA2_BASE_(r2)
/* 8023F004 0023AC64  39 20 02 10 */	li r9, 0x210
/* 8023F008 0023AC68  91 61 00 0C */	stw r11, 0xc(r1)
/* 8023F00C 0023AC6C  39 00 00 0A */	li r8, 0xa
/* 8023F010 0023AC70  C8 42 9E 08 */	lfd f2, lbl_80642408-_SDA2_BASE_(r2)
/* 8023F014 0023AC74  38 E0 02 80 */	li r7, 0x280
/* 8023F018 0023AC78  C8 21 00 08 */	lfd f1, 8(r1)
/* 8023F01C 0023AC7C  38 00 01 E0 */	li r0, 0x1e0
/* 8023F020 0023AC80  C0 02 9E 00 */	lfs f0, lbl_80642400-_SDA2_BASE_(r2)
/* 8023F024 0023AC84  2C 04 00 00 */	cmpwi r4, 0
/* 8023F028 0023AC88  EC 21 10 28 */	fsubs f1, f1, f2
/* 8023F02C 0023AC8C  93 A3 00 C0 */	stw r29, 0xc0(r3)
/* 8023F030 0023AC90  C0 A2 9D E8 */	lfs f5, lbl_806423E8-_SDA2_BASE_(r2)
/* 8023F034 0023AC94  93 A3 00 C4 */	stw r29, 0xc4(r3)
/* 8023F038 0023AC98  EC 01 00 24 */	fdivs f0, f1, f0
/* 8023F03C 0023AC9C  C8 62 9D F0 */	lfd f3, lbl_806423F0-_SDA2_BASE_(r2)
/* 8023F040 0023ACA0  93 A3 00 A8 */	stw r29, 0xa8(r3)
/* 8023F044 0023ACA4  C0 42 9D F8 */	lfs f2, lbl_806423F8-_SDA2_BASE_(r2)
/* 8023F048 0023ACA8  93 A3 00 AC */	stw r29, 0xac(r3)
/* 8023F04C 0023ACAC  C0 22 9D FC */	lfs f1, lbl_806423FC-_SDA2_BASE_(r2)
/* 8023F050 0023ACB0  93 A3 00 B0 */	stw r29, 0xb0(r3)
/* 8023F054 0023ACB4  93 A3 00 B4 */	stw r29, 0xb4(r3)
/* 8023F058 0023ACB8  99 63 00 59 */	stb r11, 0x59(r3)
/* 8023F05C 0023ACBC  9B A3 00 5A */	stb r29, 0x5a(r3)
/* 8023F060 0023ACC0  99 43 00 5B */	stb r10, 0x5b(r3)
/* 8023F064 0023ACC4  B0 A3 00 5C */	sth r5, 0x5c(r3)
/* 8023F068 0023ACC8  B1 23 00 5E */	sth r9, 0x5e(r3)
/* 8023F06C 0023ACCC  93 A3 00 60 */	stw r29, 0x60(r3)
/* 8023F070 0023ACD0  93 A3 00 64 */	stw r29, 0x64(r3)
/* 8023F074 0023ACD4  D0 A3 00 68 */	stfs f5, 0x68(r3)
/* 8023F078 0023ACD8  93 A3 00 6C */	stw r29, 0x6c(r3)
/* 8023F07C 0023ACDC  90 C3 00 70 */	stw r6, 0x70(r3)
/* 8023F080 0023ACE0  93 A3 00 74 */	stw r29, 0x74(r3)
/* 8023F084 0023ACE4  99 03 00 78 */	stb r8, 0x78(r3)
/* 8023F088 0023ACE8  9B A3 00 79 */	stb r29, 0x79(r3)
/* 8023F08C 0023ACEC  9B A3 00 7A */	stb r29, 0x7a(r3)
/* 8023F090 0023ACF0  93 A3 00 7C */	stw r29, 0x7c(r3)
/* 8023F094 0023ACF4  9B A3 00 80 */	stb r29, 0x80(r3)
/* 8023F098 0023ACF8  99 43 00 81 */	stb r10, 0x81(r3)
/* 8023F09C 0023ACFC  9B A3 00 82 */	stb r29, 0x82(r3)
/* 8023F0A0 0023AD00  9B A3 00 83 */	stb r29, 0x83(r3)
/* 8023F0A4 0023AD04  93 A3 00 84 */	stw r29, 0x84(r3)
/* 8023F0A8 0023AD08  93 A3 00 88 */	stw r29, 0x88(r3)
/* 8023F0AC 0023AD0C  D0 83 00 8C */	stfs f4, 0x8c(r3)
/* 8023F0B0 0023AD10  D0 83 00 90 */	stfs f4, 0x90(r3)
/* 8023F0B4 0023AD14  93 A3 00 9C */	stw r29, 0x9c(r3)
/* 8023F0B8 0023AD18  93 A3 00 98 */	stw r29, 0x98(r3)
/* 8023F0BC 0023AD1C  D8 63 00 A0 */	stfd f3, 0xa0(r3)
/* 8023F0C0 0023AD20  93 A3 00 B8 */	stw r29, 0xb8(r3)
/* 8023F0C4 0023AD24  93 A3 00 BC */	stw r29, 0xbc(r3)
/* 8023F0C8 0023AD28  D0 83 00 A8 */	stfs f4, 0xa8(r3)
/* 8023F0CC 0023AD2C  D0 83 00 AC */	stfs f4, 0xac(r3)
/* 8023F0D0 0023AD30  D0 43 00 B0 */	stfs f2, 0xb0(r3)
/* 8023F0D4 0023AD34  D0 23 00 B4 */	stfs f1, 0xb4(r3)
/* 8023F0D8 0023AD38  B3 A3 00 C0 */	sth r29, 0xc0(r3)
/* 8023F0DC 0023AD3C  B3 A3 00 C2 */	sth r29, 0xc2(r3)
/* 8023F0E0 0023AD40  B0 E3 00 C4 */	sth r7, 0xc4(r3)
/* 8023F0E4 0023AD44  B0 03 00 C6 */	sth r0, 0xc6(r3)
/* 8023F0E8 0023AD48  93 A3 00 C8 */	stw r29, 0xc8(r3)
/* 8023F0EC 0023AD4C  93 A3 00 CC */	stw r29, 0xcc(r3)
/* 8023F0F0 0023AD50  D0 0D 86 C8 */	stfs f0, lbl_8063D988-_SDA_BASE_(r13)
/* 8023F0F4 0023AD54  40 82 00 0C */	bne lbl_8023F100
/* 8023F0F8 0023AD58  7F E3 FB 78 */	mr r3, r31
/* 8023F0FC 0023AD5C  48 00 02 40 */	b lbl_8023F33C
lbl_8023F100:
/* 8023F100 0023AD60  28 04 00 03 */	cmplwi r4, 3
/* 8023F104 0023AD64  40 81 00 0C */	ble lbl_8023F110
/* 8023F108 0023AD68  7F E3 FB 78 */	mr r3, r31
/* 8023F10C 0023AD6C  48 00 02 30 */	b lbl_8023F33C
lbl_8023F110:
/* 8023F110 0023AD70  28 05 02 10 */	cmplwi r5, 0x210
/* 8023F114 0023AD74  40 81 00 0C */	ble lbl_8023F120
/* 8023F118 0023AD78  7F E3 FB 78 */	mr r3, r31
/* 8023F11C 0023AD7C  48 00 02 20 */	b lbl_8023F33C
lbl_8023F120:
/* 8023F120 0023AD80  48 03 90 BD */	bl VIInit
/* 8023F124 0023AD84  38 00 00 3C */	li r0, 0x3c
/* 8023F128 0023AD88  98 1F 00 59 */	stb r0, 0x59(r31)
/* 8023F12C 0023AD8C  48 0A D3 89 */	bl SCGetProgressiveMode
/* 8023F130 0023AD90  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8023F134 0023AD94  28 00 00 01 */	cmplwi r0, 1
/* 8023F138 0023AD98  40 82 00 30 */	bne lbl_8023F168
/* 8023F13C 0023AD9C  48 03 A9 59 */	bl VIGetDTVStatus
/* 8023F140 0023ADA0  28 03 00 01 */	cmplwi r3, 1
/* 8023F144 0023ADA4  40 82 00 24 */	bne lbl_8023F168
/* 8023F148 0023ADA8  48 03 A8 ED */	bl VIGetScanMode
/* 8023F14C 0023ADAC  48 03 A8 89 */	bl VIGetTvFormat
/* 8023F150 0023ADB0  2C 03 00 00 */	cmpwi r3, 0
/* 8023F154 0023ADB4  3B 40 00 02 */	li r26, 2
/* 8023F158 0023ADB8  40 82 00 08 */	bne lbl_8023F160
/* 8023F15C 0023ADBC  7F BA EB 78 */	mr r26, r29
lbl_8023F160:
/* 8023F160 0023ADC0  3B 20 00 01 */	li r25, 1
/* 8023F164 0023ADC4  48 00 00 48 */	b lbl_8023F1AC
lbl_8023F168:
/* 8023F168 0023ADC8  48 03 A8 6D */	bl VIGetTvFormat
/* 8023F16C 0023ADCC  2C 03 00 00 */	cmpwi r3, 0
/* 8023F170 0023ADD0  40 82 00 0C */	bne lbl_8023F17C
/* 8023F174 0023ADD4  3B 40 00 00 */	li r26, 0
/* 8023F178 0023ADD8  48 00 00 30 */	b lbl_8023F1A8
lbl_8023F17C:
/* 8023F17C 0023ADDC  48 0A D2 6D */	bl SCGetEuRgb60Mode
/* 8023F180 0023ADE0  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 8023F184 0023ADE4  28 00 00 01 */	cmplwi r0, 1
/* 8023F188 0023ADE8  40 82 00 10 */	bne lbl_8023F198
/* 8023F18C 0023ADEC  48 03 A8 49 */	bl VIGetTvFormat
/* 8023F190 0023ADF0  3B 40 00 02 */	li r26, 2
/* 8023F194 0023ADF4  48 00 00 14 */	b lbl_8023F1A8
lbl_8023F198:
/* 8023F198 0023ADF8  48 03 A8 3D */	bl VIGetTvFormat
/* 8023F19C 0023ADFC  38 00 00 32 */	li r0, 0x32
/* 8023F1A0 0023AE00  3B 40 00 01 */	li r26, 1
/* 8023F1A4 0023AE04  98 1F 00 59 */	stb r0, 0x59(r31)
lbl_8023F1A8:
/* 8023F1A8 0023AE08  3B 20 00 00 */	li r25, 0
lbl_8023F1AC:
/* 8023F1AC 0023AE0C  48 0A D1 75 */	bl SCGetAspectRatio
/* 8023F1B0 0023AE10  88 9F 00 59 */	lbz r4, 0x59(r31)
/* 8023F1B4 0023AE14  3C 00 43 30 */	lis r0, 0x4330
/* 8023F1B8 0023AE18  54 63 06 3E */	clrlwi r3, r3, 0x18
/* 8023F1BC 0023AE1C  90 01 00 08 */	stw r0, 8(r1)
/* 8023F1C0 0023AE20  38 63 FF FF */	addi r3, r3, -1
/* 8023F1C4 0023AE24  C8 42 9E 08 */	lfd f2, lbl_80642408-_SDA2_BASE_(r2)
/* 8023F1C8 0023AE28  90 81 00 0C */	stw r4, 0xc(r1)
/* 8023F1CC 0023AE2C  7C 66 00 34 */	cntlzw r6, r3
/* 8023F1D0 0023AE30  54 C7 D9 7E */	srwi r7, r6, 5
/* 8023F1D4 0023AE34  C0 02 9E 00 */	lfs f0, lbl_80642400-_SDA2_BASE_(r2)
/* 8023F1D8 0023AE38  C8 21 00 08 */	lfd f1, 8(r1)
/* 8023F1DC 0023AE3C  7F E3 FB 78 */	mr r3, r31
/* 8023F1E0 0023AE40  7F 44 D3 78 */	mr r4, r26
/* 8023F1E4 0023AE44  7F 25 CB 78 */	mr r5, r25
/* 8023F1E8 0023AE48  EC 21 10 28 */	fsubs f1, f1, f2
/* 8023F1EC 0023AE4C  38 C0 00 01 */	li r6, 1
/* 8023F1F0 0023AE50  EC 01 00 24 */	fdivs f0, f1, f0
/* 8023F1F4 0023AE54  D0 0D 86 C8 */	stfs f0, lbl_8063D988-_SDA_BASE_(r13)
/* 8023F1F8 0023AE58  48 00 06 61 */	bl func_8023F858
/* 8023F1FC 0023AE5C  2C 1A 00 03 */	cmpwi r26, 3
/* 8023F200 0023AE60  41 82 00 4C */	beq lbl_8023F24C
/* 8023F204 0023AE64  40 80 00 50 */	bge lbl_8023F254
/* 8023F208 0023AE68  2C 1A 00 00 */	cmpwi r26, 0
/* 8023F20C 0023AE6C  41 82 00 0C */	beq lbl_8023F218
/* 8023F210 0023AE70  40 80 00 14 */	bge lbl_8023F224
/* 8023F214 0023AE74  48 00 00 40 */	b lbl_8023F254
lbl_8023F218:
/* 8023F218 0023AE78  38 00 01 E0 */	li r0, 0x1e0
/* 8023F21C 0023AE7C  B0 1F 00 5E */	sth r0, 0x5e(r31)
/* 8023F220 0023AE80  48 00 00 34 */	b lbl_8023F254
lbl_8023F224:
/* 8023F224 0023AE84  2C 1A 00 01 */	cmpwi r26, 1
/* 8023F228 0023AE88  40 82 00 2C */	bne lbl_8023F254
/* 8023F22C 0023AE8C  2C 19 00 01 */	cmpwi r25, 1
/* 8023F230 0023AE90  41 82 00 24 */	beq lbl_8023F254
/* 8023F234 0023AE94  C0 22 9E 04 */	lfs f1, lbl_80642404-_SDA2_BASE_(r2)
/* 8023F238 0023AE98  A0 7F 00 06 */	lhz r3, 6(r31)
/* 8023F23C 0023AE9C  D0 3F 00 68 */	stfs f1, 0x68(r31)
/* 8023F240 0023AEA0  48 04 24 35 */	bl GXGetNumXfbLines
/* 8023F244 0023AEA4  B0 7F 00 5E */	sth r3, 0x5e(r31)
/* 8023F248 0023AEA8  48 00 00 0C */	b lbl_8023F254
lbl_8023F24C:
/* 8023F24C 0023AEAC  38 00 01 E0 */	li r0, 0x1e0
/* 8023F250 0023AEB0  B0 1F 00 5E */	sth r0, 0x5e(r31)
lbl_8023F254:
/* 8023F254 0023AEB4  A0 7F 00 04 */	lhz r3, 4(r31)
/* 8023F258 0023AEB8  7F FC FB 78 */	mr r28, r31
/* 8023F25C 0023AEBC  A0 1F 00 5E */	lhz r0, 0x5e(r31)
/* 8023F260 0023AEC0  3B 7F 00 3C */	addi r27, r31, 0x3c
/* 8023F264 0023AEC4  38 63 00 0F */	addi r3, r3, 0xf
/* 8023F268 0023AEC8  3B 40 00 00 */	li r26, 0
/* 8023F26C 0023AECC  54 63 04 36 */	rlwinm r3, r3, 0, 0x10, 0x1b
/* 8023F270 0023AED0  3B A0 00 03 */	li r29, 3
/* 8023F274 0023AED4  7C 03 01 D6 */	mullw r0, r3, r0
/* 8023F278 0023AED8  3B C0 00 00 */	li r30, 0
/* 8023F27C 0023AEDC  54 19 08 3C */	slwi r25, r0, 1
lbl_8023F280:
/* 8023F280 0023AEE0  88 1F 00 58 */	lbz r0, 0x58(r31)
/* 8023F284 0023AEE4  7C 1A 00 00 */	cmpw r26, r0
/* 8023F288 0023AEE8  40 80 00 28 */	bge lbl_8023F2B0
/* 8023F28C 0023AEEC  7F 23 CB 78 */	mr r3, r25
/* 8023F290 0023AEF0  4B F9 BA D5 */	bl func_801DAD64
/* 8023F294 0023AEF4  90 7C 00 40 */	stw r3, 0x40(r28)
/* 8023F298 0023AEF8  7F E3 FB 78 */	mr r3, r31
/* 8023F29C 0023AEFC  7F 64 DB 78 */	mr r4, r27
/* 8023F2A0 0023AF00  7F 25 CB 78 */	mr r5, r25
/* 8023F2A4 0023AF04  93 BC 00 3C */	stw r29, 0x3c(r28)
/* 8023F2A8 0023AF08  48 00 08 F9 */	bl func_8023FBA0
/* 8023F2AC 0023AF0C  48 00 00 0C */	b lbl_8023F2B8
lbl_8023F2B0:
/* 8023F2B0 0023AF10  93 DC 00 40 */	stw r30, 0x40(r28)
/* 8023F2B4 0023AF14  93 DC 00 3C */	stw r30, 0x3c(r28)
lbl_8023F2B8:
/* 8023F2B8 0023AF18  3B 5A 00 01 */	addi r26, r26, 1
/* 8023F2BC 0023AF1C  3B 7B 00 08 */	addi r27, r27, 8
/* 8023F2C0 0023AF20  2C 1A 00 03 */	cmpwi r26, 3
/* 8023F2C4 0023AF24  3B 9C 00 08 */	addi r28, r28, 8
/* 8023F2C8 0023AF28  41 80 FF B8 */	blt lbl_8023F280
/* 8023F2CC 0023AF2C  3C 60 01 00 */	lis r3, 0x00FFFFFF@ha
/* 8023F2D0 0023AF30  38 80 00 00 */	li r4, 0
/* 8023F2D4 0023AF34  38 03 FF FF */	addi r0, r3, 0x00FFFFFF@l
/* 8023F2D8 0023AF38  98 9F 00 D0 */	stb r4, 0xd0(r31)
/* 8023F2DC 0023AF3C  3C 60 80 24 */	lis r3, lbl_8023EE6C@ha
/* 8023F2E0 0023AF40  98 9F 00 D1 */	stb r4, 0xd1(r31)
/* 8023F2E4 0023AF44  38 63 EE 6C */	addi r3, r3, lbl_8023EE6C@l
/* 8023F2E8 0023AF48  98 9F 00 D2 */	stb r4, 0xd2(r31)
/* 8023F2EC 0023AF4C  98 9F 00 D3 */	stb r4, 0xd3(r31)
/* 8023F2F0 0023AF50  90 1F 00 D4 */	stw r0, 0xd4(r31)
/* 8023F2F4 0023AF54  48 03 8B 49 */	bl VISetPreRetraceCallback
/* 8023F2F8 0023AF58  3C 60 80 24 */	lis r3, lbl_8023EF3C@ha
/* 8023F2FC 0023AF5C  38 63 EF 3C */	addi r3, r3, lbl_8023EF3C@l
/* 8023F300 0023AF60  48 03 8B 81 */	bl VISetPostRetraceCallback
/* 8023F304 0023AF64  38 00 00 01 */	li r0, 1
/* 8023F308 0023AF68  80 7F 00 40 */	lwz r3, 0x40(r31)
/* 8023F30C 0023AF6C  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 8023F310 0023AF70  48 03 A4 AD */	bl VISetNextFrameBuffer
/* 8023F314 0023AF74  38 1F 00 3C */	addi r0, r31, 0x3c
/* 8023F318 0023AF78  90 1F 00 54 */	stw r0, 0x54(r31)
/* 8023F31C 0023AF7C  48 03 34 9D */	bl OSGetTime
/* 8023F320 0023AF80  90 9F 00 9C */	stw r4, 0x9c(r31)
/* 8023F324 0023AF84  38 80 00 00 */	li r4, 0
/* 8023F328 0023AF88  90 7F 00 98 */	stw r3, 0x98(r31)
/* 8023F32C 0023AF8C  7F E3 FB 78 */	mr r3, r31
/* 8023F330 0023AF90  93 ED A4 C8 */	stw r31, lbl_8063F788-_SDA_BASE_(r13)
/* 8023F334 0023AF94  48 00 07 D1 */	bl func_8023FB04
/* 8023F338 0023AF98  7F E3 FB 78 */	mr r3, r31
lbl_8023F33C:
/* 8023F33C 0023AF9C  39 61 00 30 */	addi r11, r1, 0x30
/* 8023F340 0023AFA0  4B F8 7E 2D */	bl _restgpr_25
/* 8023F344 0023AFA4  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8023F348 0023AFA8  7C 08 03 A6 */	mtlr r0
/* 8023F34C 0023AFAC  38 21 00 30 */	addi r1, r1, 0x30
/* 8023F350 0023AFB0  4E 80 00 20 */	blr

.global func_8023F354
func_8023F354:
/* 8023F354 0023AFB4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8023F358 0023AFB8  7C 08 02 A6 */	mflr r0
/* 8023F35C 0023AFBC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8023F360 0023AFC0  39 61 00 20 */	addi r11, r1, 0x20
/* 8023F364 0023AFC4  4B F8 7D C5 */	bl _savegpr_27
/* 8023F368 0023AFC8  2C 03 00 00 */	cmpwi r3, 0
/* 8023F36C 0023AFCC  7C 7B 1B 78 */	mr r27, r3
/* 8023F370 0023AFD0  7C 9C 23 78 */	mr r28, r4
/* 8023F374 0023AFD4  41 82 00 8C */	beq lbl_8023F400
/* 8023F378 0023AFD8  3C 80 80 42 */	lis r4, lbl_8042491C@ha
/* 8023F37C 0023AFDC  38 84 49 1C */	addi r4, r4, lbl_8042491C@l
/* 8023F380 0023AFE0  90 83 00 D8 */	stw r4, 0xd8(r3)
/* 8023F384 0023AFE4  38 60 00 00 */	li r3, 0
/* 8023F388 0023AFE8  48 03 8A B5 */	bl VISetPreRetraceCallback
/* 8023F38C 0023AFEC  38 60 00 00 */	li r3, 0
/* 8023F390 0023AFF0  48 03 8A F1 */	bl VISetPostRetraceCallback
/* 8023F394 0023AFF4  38 60 00 01 */	li r3, 1
/* 8023F398 0023AFF8  48 03 A4 91 */	bl VISetBlack
/* 8023F39C 0023AFFC  48 03 A3 0D */	bl VIFlush
/* 8023F3A0 0023B000  38 00 00 01 */	li r0, 1
/* 8023F3A4 0023B004  7F 63 DB 78 */	mr r3, r27
/* 8023F3A8 0023B008  98 1B 00 5B */	stb r0, 0x5b(r27)
/* 8023F3AC 0023B00C  48 00 00 71 */	bl func_8023F41C
/* 8023F3B0 0023B010  7F 7E DB 78 */	mr r30, r27
/* 8023F3B4 0023B014  3B A0 00 00 */	li r29, 0
/* 8023F3B8 0023B018  3B E0 00 00 */	li r31, 0
/* 8023F3BC 0023B01C  48 00 00 20 */	b lbl_8023F3DC
lbl_8023F3C0:
/* 8023F3C0 0023B020  80 7E 00 40 */	lwz r3, 0x40(r30)
/* 8023F3C4 0023B024  2C 03 00 00 */	cmpwi r3, 0
/* 8023F3C8 0023B028  41 82 00 0C */	beq lbl_8023F3D4
/* 8023F3CC 0023B02C  4B F9 BA D9 */	bl func_801DAEA4
/* 8023F3D0 0023B030  93 FE 00 40 */	stw r31, 0x40(r30)
lbl_8023F3D4:
/* 8023F3D4 0023B034  3B DE 00 08 */	addi r30, r30, 8
/* 8023F3D8 0023B038  3B BD 00 01 */	addi r29, r29, 1
lbl_8023F3DC:
/* 8023F3DC 0023B03C  88 1B 00 58 */	lbz r0, 0x58(r27)
/* 8023F3E0 0023B040  7C 1D 00 00 */	cmpw r29, r0
/* 8023F3E4 0023B044  41 80 FF DC */	blt lbl_8023F3C0
/* 8023F3E8 0023B048  38 00 00 00 */	li r0, 0
/* 8023F3EC 0023B04C  2C 1C 00 00 */	cmpwi r28, 0
/* 8023F3F0 0023B050  90 0D A4 C8 */	stw r0, lbl_8063F788-_SDA_BASE_(r13)
/* 8023F3F4 0023B054  40 81 00 0C */	ble lbl_8023F400
/* 8023F3F8 0023B058  7F 63 DB 78 */	mr r3, r27
/* 8023F3FC 0023B05C  4B F9 B6 BD */	bl __dl__FPv
lbl_8023F400:
/* 8023F400 0023B060  39 61 00 20 */	addi r11, r1, 0x20
/* 8023F404 0023B064  7F 63 DB 78 */	mr r3, r27
/* 8023F408 0023B068  4B F8 7D 6D */	bl _restgpr_27
/* 8023F40C 0023B06C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8023F410 0023B070  7C 08 03 A6 */	mtlr r0
/* 8023F414 0023B074  38 21 00 20 */	addi r1, r1, 0x20
/* 8023F418 0023B078  4E 80 00 20 */	blr

.global func_8023F41C
func_8023F41C:
/* 8023F41C 0023B07C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023F420 0023B080  7C 08 02 A6 */	mflr r0
/* 8023F424 0023B084  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023F428 0023B088  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023F42C 0023B08C  7C 7F 1B 78 */	mr r31, r3
/* 8023F430 0023B090  88 03 00 5B */	lbz r0, 0x5b(r3)
/* 8023F434 0023B094  2C 00 00 00 */	cmpwi r0, 0
/* 8023F438 0023B098  41 82 00 08 */	beq lbl_8023F440
/* 8023F43C 0023B09C  48 03 92 E9 */	bl VIWaitForRetrace
lbl_8023F440:
/* 8023F440 0023B0A0  38 00 00 01 */	li r0, 1
/* 8023F444 0023B0A4  98 1F 00 5B */	stb r0, 0x5b(r31)
/* 8023F448 0023B0A8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023F44C 0023B0AC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023F450 0023B0B0  7C 08 03 A6 */	mtlr r0
/* 8023F454 0023B0B4  38 21 00 10 */	addi r1, r1, 0x10
/* 8023F458 0023B0B8  4E 80 00 20 */	blr

.global func_8023F45C
func_8023F45C:
/* 8023F45C 0023B0BC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023F460 0023B0C0  7C 08 02 A6 */	mflr r0
/* 8023F464 0023B0C4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023F468 0023B0C8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023F46C 0023B0CC  7C 7F 1B 78 */	mr r31, r3
/* 8023F470 0023B0D0  48 00 00 A1 */	bl func_8023F510
/* 8023F474 0023B0D4  80 9F 00 54 */	lwz r4, 0x54(r31)
/* 8023F478 0023B0D8  7F E3 FB 78 */	mr r3, r31
/* 8023F47C 0023B0DC  48 00 01 49 */	bl func_8023F5C4
/* 8023F480 0023B0E0  80 9F 00 54 */	lwz r4, 0x54(r31)
/* 8023F484 0023B0E4  7F E3 FB 78 */	mr r3, r31
/* 8023F488 0023B0E8  48 00 01 3D */	bl func_8023F5C4
/* 8023F48C 0023B0EC  80 9F 00 54 */	lwz r4, 0x54(r31)
/* 8023F490 0023B0F0  38 00 00 01 */	li r0, 1
/* 8023F494 0023B0F4  38 60 00 00 */	li r3, 0
/* 8023F498 0023B0F8  90 04 00 00 */	stw r0, 0(r4)
/* 8023F49C 0023B0FC  48 03 A3 8D */	bl VISetBlack
/* 8023F4A0 0023B100  48 03 A2 09 */	bl VIFlush
/* 8023F4A4 0023B104  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023F4A8 0023B108  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023F4AC 0023B10C  7C 08 03 A6 */	mtlr r0
/* 8023F4B0 0023B110  38 21 00 10 */	addi r1, r1, 0x10
/* 8023F4B4 0023B114  4E 80 00 20 */	blr

.global func_8023F4B8
func_8023F4B8:
/* 8023F4B8 0023B118  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023F4BC 0023B11C  7C 08 02 A6 */	mflr r0
/* 8023F4C0 0023B120  38 80 00 01 */	li r4, 1
/* 8023F4C4 0023B124  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023F4C8 0023B128  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023F4CC 0023B12C  93 C1 00 08 */	stw r30, 8(r1)
/* 8023F4D0 0023B130  7C 7E 1B 78 */	mr r30, r3
/* 8023F4D4 0023B134  48 00 07 81 */	bl func_8023FC54
/* 8023F4D8 0023B138  7C 7F 1B 78 */	mr r31, r3
/* 8023F4DC 0023B13C  38 60 00 00 */	li r3, 0
/* 8023F4E0 0023B140  48 01 C1 D5 */	bl func_8025B6B4
/* 8023F4E4 0023B144  2C 1F 00 00 */	cmpwi r31, 0
/* 8023F4E8 0023B148  41 82 00 10 */	beq lbl_8023F4F8
/* 8023F4EC 0023B14C  7F C3 F3 78 */	mr r3, r30
/* 8023F4F0 0023B150  7F E4 FB 78 */	mr r4, r31
/* 8023F4F4 0023B154  48 00 00 D1 */	bl func_8023F5C4
lbl_8023F4F8:
/* 8023F4F8 0023B158  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023F4FC 0023B15C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023F500 0023B160  83 C1 00 08 */	lwz r30, 8(r1)
/* 8023F504 0023B164  7C 08 03 A6 */	mtlr r0
/* 8023F508 0023B168  38 21 00 10 */	addi r1, r1, 0x10
/* 8023F50C 0023B16C  4E 80 00 20 */	blr

.global func_8023F510
func_8023F510:
/* 8023F510 0023B170  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8023F514 0023B174  7C 08 02 A6 */	mflr r0
/* 8023F518 0023B178  90 01 00 24 */	stw r0, 0x24(r1)
/* 8023F51C 0023B17C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8023F520 0023B180  7C 7F 1B 78 */	mr r31, r3
/* 8023F524 0023B184  80 0D A4 C8 */	lwz r0, lbl_8063F788-_SDA_BASE_(r13)
/* 8023F528 0023B188  2C 00 00 00 */	cmpwi r0, 0
/* 8023F52C 0023B18C  41 82 00 84 */	beq lbl_8023F5B0
/* 8023F530 0023B190  A0 BF 00 04 */	lhz r5, 4(r31)
/* 8023F534 0023B194  38 60 00 00 */	li r3, 0
/* 8023F538 0023B198  A0 DF 00 06 */	lhz r6, 6(r31)
/* 8023F53C 0023B19C  38 80 00 00 */	li r4, 0
/* 8023F540 0023B1A0  48 04 1F 2D */	bl GXSetDispCopySrc
/* 8023F544 0023B1A4  A0 7F 00 04 */	lhz r3, 4(r31)
/* 8023F548 0023B1A8  A0 9F 00 08 */	lhz r4, 8(r31)
/* 8023F54C 0023B1AC  48 04 1F A1 */	bl GXSetDispCopyDst
/* 8023F550 0023B1B0  38 60 00 00 */	li r3, 0
/* 8023F554 0023B1B4  48 04 20 D9 */	bl GXSetDispCopyFrame2Field
/* 8023F558 0023B1B8  80 7F 00 60 */	lwz r3, 0x60(r31)
/* 8023F55C 0023B1BC  48 04 26 FD */	bl GXSetDispCopyGamma
/* 8023F560 0023B1C0  C0 3F 00 68 */	lfs f1, 0x68(r31)
/* 8023F564 0023B1C4  48 04 23 CD */	bl GXSetDispCopyYScale
/* 8023F568 0023B1C8  88 7F 00 19 */	lbz r3, 0x19(r31)
/* 8023F56C 0023B1CC  38 9F 00 1A */	addi r4, r31, 0x1a
/* 8023F570 0023B1D0  38 DF 00 32 */	addi r6, r31, 0x32
/* 8023F574 0023B1D4  38 A0 00 01 */	li r5, 1
/* 8023F578 0023B1D8  48 04 24 FD */	bl GXSetCopyFilter
/* 8023F57C 0023B1DC  38 60 00 03 */	li r3, 3
/* 8023F580 0023B1E0  48 04 20 CD */	bl GXSetCopyClamp
/* 8023F584 0023B1E4  88 1F 00 D0 */	lbz r0, 0xd0(r31)
/* 8023F588 0023B1E8  38 61 00 08 */	addi r3, r1, 8
/* 8023F58C 0023B1EC  98 01 00 08 */	stb r0, 8(r1)
/* 8023F590 0023B1F0  88 1F 00 D1 */	lbz r0, 0xd1(r31)
/* 8023F594 0023B1F4  98 01 00 09 */	stb r0, 9(r1)
/* 8023F598 0023B1F8  88 1F 00 D2 */	lbz r0, 0xd2(r31)
/* 8023F59C 0023B1FC  98 01 00 0A */	stb r0, 0xa(r1)
/* 8023F5A0 0023B200  88 1F 00 D3 */	lbz r0, 0xd3(r31)
/* 8023F5A4 0023B204  98 01 00 0B */	stb r0, 0xb(r1)
/* 8023F5A8 0023B208  80 9F 00 D4 */	lwz r4, 0xd4(r31)
/* 8023F5AC 0023B20C  48 04 24 51 */	bl GXSetCopyClear
lbl_8023F5B0:
/* 8023F5B0 0023B210  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8023F5B4 0023B214  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8023F5B8 0023B218  7C 08 03 A6 */	mtlr r0
/* 8023F5BC 0023B21C  38 21 00 20 */	addi r1, r1, 0x20
/* 8023F5C0 0023B220  4E 80 00 20 */	blr

.global func_8023F5C4
func_8023F5C4:
/* 8023F5C4 0023B224  80 0D A4 C8 */	lwz r0, lbl_8063F788-_SDA_BASE_(r13)
/* 8023F5C8 0023B228  2C 00 00 00 */	cmpwi r0, 0
/* 8023F5CC 0023B22C  4D 82 00 20 */	beqlr
/* 8023F5D0 0023B230  38 00 00 04 */	li r0, 4
/* 8023F5D4 0023B234  80 64 00 04 */	lwz r3, 4(r4)
/* 8023F5D8 0023B238  90 04 00 00 */	stw r0, 0(r4)
/* 8023F5DC 0023B23C  38 80 00 01 */	li r4, 1
/* 8023F5E0 0023B240  48 04 26 8C */	b GXCopyDisp
/* 8023F5E4 0023B244  4E 80 00 20 */	blr

.global func_8023F5E8
func_8023F5E8:
/* 8023F5E8 0023B248  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 8023F5EC 0023B24C  7C 08 02 A6 */	mflr r0
/* 8023F5F0 0023B250  90 01 00 44 */	stw r0, 0x44(r1)
/* 8023F5F4 0023B254  39 61 00 40 */	addi r11, r1, 0x40
/* 8023F5F8 0023B258  4B F8 7B 2D */	bl _savegpr_26
/* 8023F5FC 0023B25C  2C 04 00 00 */	cmpwi r4, 0
/* 8023F600 0023B260  7C 7A 1B 78 */	mr r26, r3
/* 8023F604 0023B264  7C 9B 23 78 */	mr r27, r4
/* 8023F608 0023B268  7C BE 2B 78 */	mr r30, r5
/* 8023F60C 0023B26C  7C DC 33 78 */	mr r28, r6
/* 8023F610 0023B270  7C FD 3B 78 */	mr r29, r7
/* 8023F614 0023B274  41 82 01 4C */	beq lbl_8023F760
/* 8023F618 0023B278  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8023F61C 0023B27C  4B FF B8 39 */	bl func_8023AE54
/* 8023F620 0023B280  7F 63 DB 78 */	mr r3, r27
/* 8023F624 0023B284  7F C4 F3 78 */	mr r4, r30
/* 8023F628 0023B288  4B FF F0 61 */	bl func_8023E688
/* 8023F62C 0023B28C  7F 63 DB 78 */	mr r3, r27
/* 8023F630 0023B290  4B FF EF 11 */	bl func_8023E540
/* 8023F634 0023B294  7C 7F 1B 78 */	mr r31, r3
/* 8023F638 0023B298  7F 63 DB 78 */	mr r3, r27
/* 8023F63C 0023B29C  4B FF EF 0D */	bl func_8023E548
/* 8023F640 0023B2A0  2C 1C 00 00 */	cmpwi r28, 0
/* 8023F644 0023B2A4  7C 7E 1B 78 */	mr r30, r3
/* 8023F648 0023B2A8  7F E5 FB 78 */	mr r5, r31
/* 8023F64C 0023B2AC  7F C6 F3 78 */	mr r6, r30
/* 8023F650 0023B2B0  41 82 00 0C */	beq lbl_8023F65C
/* 8023F654 0023B2B4  57 E5 0C 3C */	rlwinm r5, r31, 1, 0x10, 0x1e
/* 8023F658 0023B2B8  54 66 0C 3C */	rlwinm r6, r3, 1, 0x10, 0x1e
lbl_8023F65C:
/* 8023F65C 0023B2BC  C0 22 9E 10 */	lfs f1, lbl_80642410-_SDA2_BASE_(r2)
/* 8023F660 0023B2C0  C0 1A 00 A8 */	lfs f0, 0xa8(r26)
/* 8023F664 0023B2C4  EC 01 00 2A */	fadds f0, f1, f0
/* 8023F668 0023B2C8  F0 01 B0 14 */	psq_st f0, 20(r1), 1, qr3
/* 8023F66C 0023B2CC  C0 1A 00 AC */	lfs f0, 0xac(r26)
/* 8023F670 0023B2D0  A0 61 00 14 */	lhz r3, 0x14(r1)
/* 8023F674 0023B2D4  EC 01 00 2A */	fadds f0, f1, f0
/* 8023F678 0023B2D8  F0 01 B0 10 */	psq_st f0, 16(r1), 1, qr3
/* 8023F67C 0023B2DC  C0 1A 00 B0 */	lfs f0, 0xb0(r26)
/* 8023F680 0023B2E0  A0 81 00 10 */	lhz r4, 0x10(r1)
/* 8023F684 0023B2E4  EC 01 00 2A */	fadds f0, f1, f0
/* 8023F688 0023B2E8  F0 01 B0 0C */	psq_st f0, 12(r1), 1, qr3
/* 8023F68C 0023B2EC  C0 1A 00 B4 */	lfs f0, 0xb4(r26)
/* 8023F690 0023B2F0  A0 E1 00 0C */	lhz r7, 0xc(r1)
/* 8023F694 0023B2F4  EC 01 00 2A */	fadds f0, f1, f0
/* 8023F698 0023B2F8  F0 01 B0 08 */	psq_st f0, 8(r1), 1, qr3
/* 8023F69C 0023B2FC  54 A0 04 3E */	clrlwi r0, r5, 0x10
/* 8023F6A0 0023B300  7C 07 00 40 */	cmplw r7, r0
/* 8023F6A4 0023B304  A1 01 00 08 */	lhz r8, 8(r1)
/* 8023F6A8 0023B308  40 80 00 0C */	bge lbl_8023F6B4
/* 8023F6AC 0023B30C  38 60 00 00 */	li r3, 0
/* 8023F6B0 0023B310  7C A7 2B 78 */	mr r7, r5
lbl_8023F6B4:
/* 8023F6B4 0023B314  54 C0 04 3E */	clrlwi r0, r6, 0x10
/* 8023F6B8 0023B318  7C 08 00 40 */	cmplw r8, r0
/* 8023F6BC 0023B31C  40 80 00 0C */	bge lbl_8023F6C8
/* 8023F6C0 0023B320  38 80 00 00 */	li r4, 0
/* 8023F6C4 0023B324  7C C8 33 78 */	mr r8, r6
lbl_8023F6C8:
/* 8023F6C8 0023B328  54 E5 04 3E */	clrlwi r5, r7, 0x10
/* 8023F6CC 0023B32C  55 06 04 3E */	clrlwi r6, r8, 0x10
/* 8023F6D0 0023B330  48 04 1D DD */	bl GXSetTexCopySrc
/* 8023F6D4 0023B334  7F 63 DB 78 */	mr r3, r27
/* 8023F6D8 0023B338  38 80 00 00 */	li r4, 0
/* 8023F6DC 0023B33C  4B FF F0 0D */	bl func_8023E6E8
/* 8023F6E0 0023B340  7C 65 1B 78 */	mr r5, r3
/* 8023F6E4 0023B344  57 E3 04 3E */	clrlwi r3, r31, 0x10
/* 8023F6E8 0023B348  57 C4 04 3E */	clrlwi r4, r30, 0x10
/* 8023F6EC 0023B34C  57 86 06 3E */	clrlwi r6, r28, 0x18
/* 8023F6F0 0023B350  48 04 1E 21 */	bl GXSetTexCopyDst
/* 8023F6F4 0023B354  38 60 00 00 */	li r3, 0
/* 8023F6F8 0023B358  38 80 00 00 */	li r4, 0
/* 8023F6FC 0023B35C  38 A0 00 00 */	li r5, 0
/* 8023F700 0023B360  38 C0 00 00 */	li r6, 0
/* 8023F704 0023B364  48 04 23 71 */	bl GXSetCopyFilter
/* 8023F708 0023B368  38 60 00 03 */	li r3, 3
/* 8023F70C 0023B36C  48 04 1F 41 */	bl GXSetCopyClamp
/* 8023F710 0023B370  88 1A 00 D0 */	lbz r0, 0xd0(r26)
/* 8023F714 0023B374  38 61 00 18 */	addi r3, r1, 0x18
/* 8023F718 0023B378  98 01 00 18 */	stb r0, 0x18(r1)
/* 8023F71C 0023B37C  88 1A 00 D1 */	lbz r0, 0xd1(r26)
/* 8023F720 0023B380  98 01 00 19 */	stb r0, 0x19(r1)
/* 8023F724 0023B384  88 1A 00 D2 */	lbz r0, 0xd2(r26)
/* 8023F728 0023B388  98 01 00 1A */	stb r0, 0x1a(r1)
/* 8023F72C 0023B38C  88 1A 00 D3 */	lbz r0, 0xd3(r26)
/* 8023F730 0023B390  98 01 00 1B */	stb r0, 0x1b(r1)
/* 8023F734 0023B394  80 9A 00 D4 */	lwz r4, 0xd4(r26)
/* 8023F738 0023B398  48 04 22 C5 */	bl GXSetCopyClear
/* 8023F73C 0023B39C  7F 63 DB 78 */	mr r3, r27
/* 8023F740 0023B3A0  38 80 00 00 */	li r4, 0
/* 8023F744 0023B3A4  4B FF ED 5D */	bl func_8023E4A0
/* 8023F748 0023B3A8  57 A4 06 3E */	clrlwi r4, r29, 0x18
/* 8023F74C 0023B3AC  48 04 26 5D */	bl GXCopyTex
/* 8023F750 0023B3B0  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8023F754 0023B3B4  7F 64 DB 78 */	mr r4, r27
/* 8023F758 0023B3B8  4B FF C1 F1 */	bl func_8023B948
/* 8023F75C 0023B3BC  90 7B 00 50 */	stw r3, 0x50(r27)
lbl_8023F760:
/* 8023F760 0023B3C0  39 61 00 40 */	addi r11, r1, 0x40
/* 8023F764 0023B3C4  4B F8 7A 0D */	bl _restgpr_26
/* 8023F768 0023B3C8  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8023F76C 0023B3CC  7C 08 03 A6 */	mtlr r0
/* 8023F770 0023B3D0  38 21 00 40 */	addi r1, r1, 0x40
/* 8023F774 0023B3D4  4E 80 00 20 */	blr

.global func_8023F778
func_8023F778:
/* 8023F778 0023B3D8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8023F77C 0023B3DC  7C 08 02 A6 */	mflr r0
/* 8023F780 0023B3E0  38 80 00 04 */	li r4, 4
/* 8023F784 0023B3E4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8023F788 0023B3E8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8023F78C 0023B3EC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8023F790 0023B3F0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8023F794 0023B3F4  93 81 00 10 */	stw r28, 0x10(r1)
/* 8023F798 0023B3F8  7C 7C 1B 78 */	mr r28, r3
/* 8023F79C 0023B3FC  48 00 04 71 */	bl func_8023FC0C
/* 8023F7A0 0023B400  2C 03 00 00 */	cmpwi r3, 0
/* 8023F7A4 0023B404  7C 7D 1B 78 */	mr r29, r3
/* 8023F7A8 0023B408  41 82 00 90 */	beq lbl_8023F838
/* 8023F7AC 0023B40C  88 1C 00 58 */	lbz r0, 0x58(r28)
/* 8023F7B0 0023B410  28 00 00 03 */	cmplwi r0, 3
/* 8023F7B4 0023B414  40 82 00 20 */	bne lbl_8023F7D4
/* 8023F7B8 0023B418  7F 83 E3 78 */	mr r3, r28
/* 8023F7BC 0023B41C  38 80 00 02 */	li r4, 2
/* 8023F7C0 0023B420  48 00 04 4D */	bl func_8023FC0C
/* 8023F7C4 0023B424  2C 03 00 00 */	cmpwi r3, 0
/* 8023F7C8 0023B428  41 82 00 0C */	beq lbl_8023F7D4
/* 8023F7CC 0023B42C  38 00 00 03 */	li r0, 3
/* 8023F7D0 0023B430  90 03 00 00 */	stw r0, 0(r3)
lbl_8023F7D4:
/* 8023F7D4 0023B434  48 03 2F E5 */	bl OSGetTime
/* 8023F7D8 0023B438  80 BC 00 9C */	lwz r5, 0x9c(r28)
/* 8023F7DC 0023B43C  7C 9E 23 78 */	mr r30, r4
/* 8023F7E0 0023B440  80 1C 00 98 */	lwz r0, 0x98(r28)
/* 8023F7E4 0023B444  7C 7F 1B 78 */	mr r31, r3
/* 8023F7E8 0023B448  7C 85 20 10 */	subfc r4, r5, r4
/* 8023F7EC 0023B44C  7C 60 19 10 */	subfe r3, r0, r3
/* 8023F7F0 0023B450  4B F8 7D D5 */	bl __cvt_sll_flt
/* 8023F7F4 0023B454  3C 80 80 00 */	lis r4, 0x800000F8@ha
/* 8023F7F8 0023B458  3C 60 43 30 */	lis r3, 0x4330
/* 8023F7FC 0023B45C  80 A4 00 F8 */	lwz r5, 0x800000F8@l(r4)
/* 8023F800 0023B460  38 00 00 02 */	li r0, 2
/* 8023F804 0023B464  88 9C 00 59 */	lbz r4, 0x59(r28)
/* 8023F808 0023B468  54 A5 F0 BE */	srwi r5, r5, 2
/* 8023F80C 0023B46C  90 61 00 08 */	stw r3, 8(r1)
/* 8023F810 0023B470  7C 65 23 96 */	divwu r3, r5, r4
/* 8023F814 0023B474  C8 42 9E 08 */	lfd f2, lbl_80642408-_SDA2_BASE_(r2)
/* 8023F818 0023B478  93 DC 00 9C */	stw r30, 0x9c(r28)
/* 8023F81C 0023B47C  93 FC 00 98 */	stw r31, 0x98(r28)
/* 8023F820 0023B480  90 61 00 0C */	stw r3, 0xc(r1)
/* 8023F824 0023B484  C8 01 00 08 */	lfd f0, 8(r1)
/* 8023F828 0023B488  EC 00 10 28 */	fsubs f0, f0, f2
/* 8023F82C 0023B48C  EC 01 00 24 */	fdivs f0, f1, f0
/* 8023F830 0023B490  D0 1C 00 8C */	stfs f0, 0x8c(r28)
/* 8023F834 0023B494  90 1D 00 00 */	stw r0, 0(r29)
lbl_8023F838:
/* 8023F838 0023B498  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8023F83C 0023B49C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8023F840 0023B4A0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8023F844 0023B4A4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8023F848 0023B4A8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8023F84C 0023B4AC  7C 08 03 A6 */	mtlr r0
/* 8023F850 0023B4B0  38 21 00 20 */	addi r1, r1, 0x20
/* 8023F854 0023B4B4  4E 80 00 20 */	blr

.global func_8023F858
func_8023F858:
/* 8023F858 0023B4B8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8023F85C 0023B4BC  7C 08 02 A6 */	mflr r0
/* 8023F860 0023B4C0  2C 05 00 02 */	cmpwi r5, 2
/* 8023F864 0023B4C4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8023F868 0023B4C8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8023F86C 0023B4CC  7C 7F 1B 78 */	mr r31, r3
/* 8023F870 0023B4D0  38 60 00 00 */	li r3, 0
/* 8023F874 0023B4D4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8023F878 0023B4D8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8023F87C 0023B4DC  7C FD 3B 78 */	mr r29, r7
/* 8023F880 0023B4E0  93 81 00 10 */	stw r28, 0x10(r1)
/* 8023F884 0023B4E4  7C 9C 23 78 */	mr r28, r4
/* 8023F888 0023B4E8  41 82 00 24 */	beq lbl_8023F8AC
/* 8023F88C 0023B4EC  40 80 00 14 */	bge lbl_8023F8A0
/* 8023F890 0023B4F0  2C 05 00 00 */	cmpwi r5, 0
/* 8023F894 0023B4F4  41 82 00 40 */	beq lbl_8023F8D4
/* 8023F898 0023B4F8  40 80 00 78 */	bge lbl_8023F910
/* 8023F89C 0023B4FC  48 00 00 D4 */	b lbl_8023F970
lbl_8023F8A0:
/* 8023F8A0 0023B500  2C 05 00 04 */	cmpwi r5, 4
/* 8023F8A4 0023B504  40 80 00 CC */	bge lbl_8023F970
/* 8023F8A8 0023B508  48 00 00 A4 */	b lbl_8023F94C
lbl_8023F8AC:
/* 8023F8AC 0023B50C  2C 06 00 02 */	cmpwi r6, 2
/* 8023F8B0 0023B510  41 82 00 1C */	beq lbl_8023F8CC
/* 8023F8B4 0023B514  40 80 00 BC */	bge lbl_8023F970
/* 8023F8B8 0023B518  2C 06 00 00 */	cmpwi r6, 0
/* 8023F8BC 0023B51C  40 80 00 08 */	bge lbl_8023F8C4
/* 8023F8C0 0023B520  48 00 00 B0 */	b lbl_8023F970
lbl_8023F8C4:
/* 8023F8C4 0023B524  38 60 00 01 */	li r3, 1
/* 8023F8C8 0023B528  48 00 00 A8 */	b lbl_8023F970
lbl_8023F8CC:
/* 8023F8CC 0023B52C  38 60 00 02 */	li r3, 2
/* 8023F8D0 0023B530  48 00 00 A0 */	b lbl_8023F970
lbl_8023F8D4:
/* 8023F8D4 0023B534  2C 06 00 01 */	cmpwi r6, 1
/* 8023F8D8 0023B538  41 82 00 28 */	beq lbl_8023F900
/* 8023F8DC 0023B53C  40 80 00 10 */	bge lbl_8023F8EC
/* 8023F8E0 0023B540  2C 06 00 00 */	cmpwi r6, 0
/* 8023F8E4 0023B544  40 80 00 14 */	bge lbl_8023F8F8
/* 8023F8E8 0023B548  48 00 00 88 */	b lbl_8023F970
lbl_8023F8EC:
/* 8023F8EC 0023B54C  2C 06 00 03 */	cmpwi r6, 3
/* 8023F8F0 0023B550  40 80 00 80 */	bge lbl_8023F970
/* 8023F8F4 0023B554  48 00 00 14 */	b lbl_8023F908
lbl_8023F8F8:
/* 8023F8F8 0023B558  38 60 00 05 */	li r3, 5
/* 8023F8FC 0023B55C  48 00 00 74 */	b lbl_8023F970
lbl_8023F900:
/* 8023F900 0023B560  38 60 00 06 */	li r3, 6
/* 8023F904 0023B564  48 00 00 6C */	b lbl_8023F970
lbl_8023F908:
/* 8023F908 0023B568  38 60 00 07 */	li r3, 7
/* 8023F90C 0023B56C  48 00 00 64 */	b lbl_8023F970
lbl_8023F910:
/* 8023F910 0023B570  2C 06 00 01 */	cmpwi r6, 1
/* 8023F914 0023B574  41 82 00 28 */	beq lbl_8023F93C
/* 8023F918 0023B578  40 80 00 10 */	bge lbl_8023F928
/* 8023F91C 0023B57C  2C 06 00 00 */	cmpwi r6, 0
/* 8023F920 0023B580  40 80 00 14 */	bge lbl_8023F934
/* 8023F924 0023B584  48 00 00 4C */	b lbl_8023F970
lbl_8023F928:
/* 8023F928 0023B588  2C 06 00 03 */	cmpwi r6, 3
/* 8023F92C 0023B58C  40 80 00 44 */	bge lbl_8023F970
/* 8023F930 0023B590  48 00 00 14 */	b lbl_8023F944
lbl_8023F934:
/* 8023F934 0023B594  38 60 00 08 */	li r3, 8
/* 8023F938 0023B598  48 00 00 38 */	b lbl_8023F970
lbl_8023F93C:
/* 8023F93C 0023B59C  38 60 00 09 */	li r3, 9
/* 8023F940 0023B5A0  48 00 00 30 */	b lbl_8023F970
lbl_8023F944:
/* 8023F944 0023B5A4  38 60 00 0A */	li r3, 0xa
/* 8023F948 0023B5A8  48 00 00 28 */	b lbl_8023F970
lbl_8023F94C:
/* 8023F94C 0023B5AC  2C 06 00 02 */	cmpwi r6, 2
/* 8023F950 0023B5B0  41 82 00 1C */	beq lbl_8023F96C
/* 8023F954 0023B5B4  40 80 00 1C */	bge lbl_8023F970
/* 8023F958 0023B5B8  2C 06 00 00 */	cmpwi r6, 0
/* 8023F95C 0023B5BC  40 80 00 08 */	bge lbl_8023F964
/* 8023F960 0023B5C0  48 00 00 10 */	b lbl_8023F970
lbl_8023F964:
/* 8023F964 0023B5C4  38 60 00 03 */	li r3, 3
/* 8023F968 0023B5C8  48 00 00 08 */	b lbl_8023F970
lbl_8023F96C:
/* 8023F96C 0023B5CC  38 60 00 04 */	li r3, 4
lbl_8023F970:
/* 8023F970 0023B5D0  2C 03 00 00 */	cmpwi r3, 0
/* 8023F974 0023B5D4  40 82 00 0C */	bne lbl_8023F980
/* 8023F978 0023B5D8  38 60 00 00 */	li r3, 0
/* 8023F97C 0023B5DC  48 00 01 68 */	b lbl_8023FAE4
lbl_8023F980:
/* 8023F980 0023B5E0  3C A0 80 42 */	lis r5, lbl_80424840@ha
/* 8023F984 0023B5E4  38 C0 00 00 */	li r6, 0
/* 8023F988 0023B5E8  38 A5 48 40 */	addi r5, r5, lbl_80424840@l
/* 8023F98C 0023B5EC  48 00 00 68 */	b lbl_8023F9F4
lbl_8023F990:
/* 8023F990 0023B5F0  7C 00 18 00 */	cmpw r0, r3
/* 8023F994 0023B5F4  40 82 00 5C */	bne lbl_8023F9F0
/* 8023F998 0023B5F8  2C 04 00 02 */	cmpwi r4, 2
/* 8023F99C 0023B5FC  41 82 00 3C */	beq lbl_8023F9D8
/* 8023F9A0 0023B600  40 80 00 14 */	bge lbl_8023F9B4
/* 8023F9A4 0023B604  2C 04 00 00 */	cmpwi r4, 0
/* 8023F9A8 0023B608  41 82 00 18 */	beq lbl_8023F9C0
/* 8023F9AC 0023B60C  40 80 00 20 */	bge lbl_8023F9CC
/* 8023F9B0 0023B610  48 00 00 50 */	b lbl_8023FA00
lbl_8023F9B4:
/* 8023F9B4 0023B614  2C 04 00 04 */	cmpwi r4, 4
/* 8023F9B8 0023B618  40 80 00 48 */	bge lbl_8023FA00
/* 8023F9BC 0023B61C  48 00 00 28 */	b lbl_8023F9E4
lbl_8023F9C0:
/* 8023F9C0 0023B620  80 C5 00 04 */	lwz r6, 4(r5)
/* 8023F9C4 0023B624  3B C0 02 D0 */	li r30, 0x2d0
/* 8023F9C8 0023B628  48 00 00 38 */	b lbl_8023FA00
lbl_8023F9CC:
/* 8023F9CC 0023B62C  80 C5 00 08 */	lwz r6, 8(r5)
/* 8023F9D0 0023B630  3B C0 02 D0 */	li r30, 0x2d0
/* 8023F9D4 0023B634  48 00 00 2C */	b lbl_8023FA00
lbl_8023F9D8:
/* 8023F9D8 0023B638  80 C5 00 0C */	lwz r6, 0xc(r5)
/* 8023F9DC 0023B63C  3B C0 02 D0 */	li r30, 0x2d0
/* 8023F9E0 0023B640  48 00 00 20 */	b lbl_8023FA00
lbl_8023F9E4:
/* 8023F9E4 0023B644  80 C5 00 10 */	lwz r6, 0x10(r5)
/* 8023F9E8 0023B648  3B C0 02 D0 */	li r30, 0x2d0
/* 8023F9EC 0023B64C  48 00 00 14 */	b lbl_8023FA00
lbl_8023F9F0:
/* 8023F9F0 0023B650  38 A5 00 14 */	addi r5, r5, 0x14
lbl_8023F9F4:
/* 8023F9F4 0023B654  80 05 00 00 */	lwz r0, 0(r5)
/* 8023F9F8 0023B658  2C 00 00 00 */	cmpwi r0, 0
/* 8023F9FC 0023B65C  40 82 FF 94 */	bne lbl_8023F990
lbl_8023FA00:
/* 8023FA00 0023B660  2C 06 00 00 */	cmpwi r6, 0
/* 8023FA04 0023B664  40 82 00 0C */	bne lbl_8023FA10
/* 8023FA08 0023B668  38 60 00 00 */	li r3, 0
/* 8023FA0C 0023B66C  48 00 00 D8 */	b lbl_8023FAE4
lbl_8023FA10:
/* 8023FA10 0023B670  7F E3 FB 78 */	mr r3, r31
/* 8023FA14 0023B674  7C C4 33 78 */	mr r4, r6
/* 8023FA18 0023B678  38 A0 00 3C */	li r5, 0x3c
/* 8023FA1C 0023B67C  4B DC 45 E5 */	bl memcpy
/* 8023FA20 0023B680  A0 1F 00 5C */	lhz r0, 0x5c(r31)
/* 8023FA24 0023B684  2C 00 00 00 */	cmpwi r0, 0
/* 8023FA28 0023B688  41 82 00 08 */	beq lbl_8023FA30
/* 8023FA2C 0023B68C  B0 1F 00 06 */	sth r0, 6(r31)
lbl_8023FA30:
/* 8023FA30 0023B690  2C 1D 00 00 */	cmpwi r29, 0
/* 8023FA34 0023B694  9B BF 00 7A */	stb r29, 0x7a(r31)
/* 8023FA38 0023B698  41 82 00 1C */	beq lbl_8023FA54
/* 8023FA3C 0023B69C  2C 1C 00 01 */	cmpwi r28, 1
/* 8023FA40 0023B6A0  B3 DF 00 0E */	sth r30, 0xe(r31)
/* 8023FA44 0023B6A4  40 82 00 34 */	bne lbl_8023FA78
/* 8023FA48 0023B6A8  38 1E FF D8 */	addi r0, r30, -40
/* 8023FA4C 0023B6AC  B0 1F 00 0E */	sth r0, 0xe(r31)
/* 8023FA50 0023B6B0  48 00 00 28 */	b lbl_8023FA78
lbl_8023FA54:
/* 8023FA54 0023B6B4  2C 1C 00 01 */	cmpwi r28, 1
/* 8023FA58 0023B6B8  41 82 00 10 */	beq lbl_8023FA68
/* 8023FA5C 0023B6BC  A0 7F 00 0E */	lhz r3, 0xe(r31)
/* 8023FA60 0023B6C0  38 03 00 14 */	addi r0, r3, 0x14
/* 8023FA64 0023B6C4  B0 1F 00 0E */	sth r0, 0xe(r31)
lbl_8023FA68:
/* 8023FA68 0023B6C8  A0 1F 00 0E */	lhz r0, 0xe(r31)
/* 8023FA6C 0023B6CC  7C 00 F0 40 */	cmplw r0, r30
/* 8023FA70 0023B6D0  40 81 00 08 */	ble lbl_8023FA78
/* 8023FA74 0023B6D4  B3 DF 00 0E */	sth r30, 0xe(r31)
lbl_8023FA78:
/* 8023FA78 0023B6D8  A0 1F 00 0E */	lhz r0, 0xe(r31)
/* 8023FA7C 0023B6DC  2C 1C 00 01 */	cmpwi r28, 1
/* 8023FA80 0023B6E0  93 9F 00 70 */	stw r28, 0x70(r31)
/* 8023FA84 0023B6E4  7C 00 F0 50 */	subf r0, r0, r30
/* 8023FA88 0023B6E8  7C 00 0E 70 */	srawi r0, r0, 1
/* 8023FA8C 0023B6EC  B0 1F 00 0A */	sth r0, 0xa(r31)
/* 8023FA90 0023B6F0  40 82 00 10 */	bne lbl_8023FAA0
/* 8023FA94 0023B6F4  38 00 00 32 */	li r0, 0x32
/* 8023FA98 0023B6F8  98 1F 00 59 */	stb r0, 0x59(r31)
/* 8023FA9C 0023B6FC  48 00 00 0C */	b lbl_8023FAA8
lbl_8023FAA0:
/* 8023FAA0 0023B700  38 00 00 3C */	li r0, 0x3c
/* 8023FAA4 0023B704  98 1F 00 59 */	stb r0, 0x59(r31)
lbl_8023FAA8:
/* 8023FAA8 0023B708  88 7F 00 59 */	lbz r3, 0x59(r31)
/* 8023FAAC 0023B70C  3C 00 43 30 */	lis r0, 0x4330
/* 8023FAB0 0023B710  90 01 00 08 */	stw r0, 8(r1)
/* 8023FAB4 0023B714  C8 42 9E 08 */	lfd f2, lbl_80642408-_SDA2_BASE_(r2)
/* 8023FAB8 0023B718  90 61 00 0C */	stw r3, 0xc(r1)
/* 8023FABC 0023B71C  C0 02 9E 00 */	lfs f0, lbl_80642400-_SDA2_BASE_(r2)
/* 8023FAC0 0023B720  C8 21 00 08 */	lfd f1, 8(r1)
/* 8023FAC4 0023B724  EC 21 10 28 */	fsubs f1, f1, f2
/* 8023FAC8 0023B728  EC 01 00 24 */	fdivs f0, f1, f0
/* 8023FACC 0023B72C  D0 0D 86 C8 */	stfs f0, lbl_8063D988-_SDA_BASE_(r13)
/* 8023FAD0 0023B730  A0 7F 00 06 */	lhz r3, 6(r31)
/* 8023FAD4 0023B734  A0 9F 00 08 */	lhz r4, 8(r31)
/* 8023FAD8 0023B738  48 04 1C 29 */	bl GXGetYScaleFactor
/* 8023FADC 0023B73C  D0 3F 00 68 */	stfs f1, 0x68(r31)
/* 8023FAE0 0023B740  38 60 00 01 */	li r3, 1
lbl_8023FAE4:
/* 8023FAE4 0023B744  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8023FAE8 0023B748  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8023FAEC 0023B74C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8023FAF0 0023B750  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8023FAF4 0023B754  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8023FAF8 0023B758  7C 08 03 A6 */	mtlr r0
/* 8023FAFC 0023B75C  38 21 00 20 */	addi r1, r1, 0x20
/* 8023FB00 0023B760  4E 80 00 20 */	blr

.global func_8023FB04
func_8023FB04:
/* 8023FB04 0023B764  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023FB08 0023B768  7C 08 02 A6 */	mflr r0
/* 8023FB0C 0023B76C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023FB10 0023B770  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023FB14 0023B774  7C 9F 23 78 */	mr r31, r4
/* 8023FB18 0023B778  93 C1 00 08 */	stw r30, 8(r1)
/* 8023FB1C 0023B77C  7C 7E 1B 78 */	mr r30, r3
/* 8023FB20 0023B780  38 60 00 00 */	li r3, 0
/* 8023FB24 0023B784  48 03 83 19 */	bl VISetPreRetraceCallback
/* 8023FB28 0023B788  38 60 00 00 */	li r3, 0
/* 8023FB2C 0023B78C  48 03 83 55 */	bl VISetPostRetraceCallback
/* 8023FB30 0023B790  38 60 00 01 */	li r3, 1
/* 8023FB34 0023B794  48 03 9C F5 */	bl VISetBlack
/* 8023FB38 0023B798  7F C3 F3 78 */	mr r3, r30
/* 8023FB3C 0023B79C  48 03 90 85 */	bl VIConfigure
/* 8023FB40 0023B7A0  48 03 9B 69 */	bl VIFlush
/* 8023FB44 0023B7A4  38 00 00 01 */	li r0, 1
/* 8023FB48 0023B7A8  7F C3 F3 78 */	mr r3, r30
/* 8023FB4C 0023B7AC  98 1E 00 5B */	stb r0, 0x5b(r30)
/* 8023FB50 0023B7B0  4B FF F8 CD */	bl func_8023F41C
/* 8023FB54 0023B7B4  7F C3 F3 78 */	mr r3, r30
/* 8023FB58 0023B7B8  4B FF F8 C5 */	bl func_8023F41C
/* 8023FB5C 0023B7BC  3C 60 80 24 */	lis r3, lbl_8023EE6C@ha
/* 8023FB60 0023B7C0  38 63 EE 6C */	addi r3, r3, lbl_8023EE6C@l
/* 8023FB64 0023B7C4  48 03 82 D9 */	bl VISetPreRetraceCallback
/* 8023FB68 0023B7C8  3C 60 80 24 */	lis r3, lbl_8023EF3C@ha
/* 8023FB6C 0023B7CC  38 63 EF 3C */	addi r3, r3, lbl_8023EF3C@l
/* 8023FB70 0023B7D0  48 03 83 11 */	bl VISetPostRetraceCallback
/* 8023FB74 0023B7D4  28 1F 00 01 */	cmplwi r31, 1
/* 8023FB78 0023B7D8  40 82 00 10 */	bne lbl_8023FB88
/* 8023FB7C 0023B7DC  38 60 00 00 */	li r3, 0
/* 8023FB80 0023B7E0  48 03 9C A9 */	bl VISetBlack
/* 8023FB84 0023B7E4  48 03 9B 25 */	bl VIFlush
lbl_8023FB88:
/* 8023FB88 0023B7E8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023FB8C 0023B7EC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023FB90 0023B7F0  83 C1 00 08 */	lwz r30, 8(r1)
/* 8023FB94 0023B7F4  7C 08 03 A6 */	mtlr r0
/* 8023FB98 0023B7F8  38 21 00 10 */	addi r1, r1, 0x10
/* 8023FB9C 0023B7FC  4E 80 00 20 */	blr

.global func_8023FBA0
func_8023FBA0:
/* 8023FBA0 0023B800  54 A7 F0 BF */	rlwinm. r7, r5, 0x1e, 2, 0x1f
/* 8023FBA4 0023B804  3C 60 10 80 */	lis r3, 0x10801080@ha
/* 8023FBA8 0023B808  80 C4 00 04 */	lwz r6, 4(r4)
/* 8023FBAC 0023B80C  38 63 10 80 */	addi r3, r3, 0x10801080@l
/* 8023FBB0 0023B810  41 82 00 50 */	beq lbl_8023FC00
/* 8023FBB4 0023B814  54 E0 E8 FF */	rlwinm. r0, r7, 0x1d, 3, 0x1f
/* 8023FBB8 0023B818  7C 09 03 A6 */	mtctr r0
/* 8023FBBC 0023B81C  41 82 00 34 */	beq lbl_8023FBF0
lbl_8023FBC0:
/* 8023FBC0 0023B820  90 66 00 00 */	stw r3, 0(r6)
/* 8023FBC4 0023B824  90 66 00 04 */	stw r3, 4(r6)
/* 8023FBC8 0023B828  90 66 00 08 */	stw r3, 8(r6)
/* 8023FBCC 0023B82C  90 66 00 0C */	stw r3, 0xc(r6)
/* 8023FBD0 0023B830  90 66 00 10 */	stw r3, 0x10(r6)
/* 8023FBD4 0023B834  90 66 00 14 */	stw r3, 0x14(r6)
/* 8023FBD8 0023B838  90 66 00 18 */	stw r3, 0x18(r6)
/* 8023FBDC 0023B83C  90 66 00 1C */	stw r3, 0x1c(r6)
/* 8023FBE0 0023B840  38 C6 00 20 */	addi r6, r6, 0x20
/* 8023FBE4 0023B844  42 00 FF DC */	bdnz lbl_8023FBC0
/* 8023FBE8 0023B848  70 E7 00 07 */	andi. r7, r7, 7
/* 8023FBEC 0023B84C  41 82 00 14 */	beq lbl_8023FC00
lbl_8023FBF0:
/* 8023FBF0 0023B850  7C E9 03 A6 */	mtctr r7
lbl_8023FBF4:
/* 8023FBF4 0023B854  90 66 00 00 */	stw r3, 0(r6)
/* 8023FBF8 0023B858  38 C6 00 04 */	addi r6, r6, 4
/* 8023FBFC 0023B85C  42 00 FF F8 */	bdnz lbl_8023FBF4
lbl_8023FC00:
/* 8023FC00 0023B860  80 64 00 04 */	lwz r3, 4(r4)
/* 8023FC04 0023B864  7C A4 2B 78 */	mr r4, r5
/* 8023FC08 0023B868  48 02 AA 4C */	b DCFlushRange

.global func_8023FC0C
func_8023FC0C:
/* 8023FC0C 0023B86C  88 03 00 58 */	lbz r0, 0x58(r3)
/* 8023FC10 0023B870  7C 65 1B 78 */	mr r5, r3
/* 8023FC14 0023B874  38 C0 00 00 */	li r6, 0
/* 8023FC18 0023B878  7C 09 03 A6 */	mtctr r0
/* 8023FC1C 0023B87C  2C 00 00 00 */	cmpwi r0, 0
/* 8023FC20 0023B880  40 81 00 2C */	ble lbl_8023FC4C
lbl_8023FC24:
/* 8023FC24 0023B884  80 05 00 3C */	lwz r0, 0x3c(r5)
/* 8023FC28 0023B888  7C 04 00 00 */	cmpw r4, r0
/* 8023FC2C 0023B88C  40 82 00 14 */	bne lbl_8023FC40
/* 8023FC30 0023B890  54 C0 18 38 */	slwi r0, r6, 3
/* 8023FC34 0023B894  7C 63 02 14 */	add r3, r3, r0
/* 8023FC38 0023B898  38 63 00 3C */	addi r3, r3, 0x3c
/* 8023FC3C 0023B89C  4E 80 00 20 */	blr
lbl_8023FC40:
/* 8023FC40 0023B8A0  38 A5 00 08 */	addi r5, r5, 8
/* 8023FC44 0023B8A4  38 C6 00 01 */	addi r6, r6, 1
/* 8023FC48 0023B8A8  42 00 FF DC */	bdnz lbl_8023FC24
lbl_8023FC4C:
/* 8023FC4C 0023B8AC  38 60 00 00 */	li r3, 0
/* 8023FC50 0023B8B0  4E 80 00 20 */	blr

.global func_8023FC54
func_8023FC54:
/* 8023FC54 0023B8B4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8023FC58 0023B8B8  7C 08 02 A6 */	mflr r0
/* 8023FC5C 0023B8BC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8023FC60 0023B8C0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8023FC64 0023B8C4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8023FC68 0023B8C8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8023FC6C 0023B8CC  7C 9D 23 78 */	mr r29, r4
/* 8023FC70 0023B8D0  93 81 00 10 */	stw r28, 0x10(r1)
/* 8023FC74 0023B8D4  7C 7C 1B 78 */	mr r28, r3
/* 8023FC78 0023B8D8  80 AD A3 D8 */	lwz r5, render_context_ptr-_SDA_BASE_(r13)
/* 8023FC7C 0023B8DC  88 05 17 18 */	lbz r0, 0x1718(r5)
/* 8023FC80 0023B8E0  2C 00 00 00 */	cmpwi r0, 0
/* 8023FC84 0023B8E4  41 82 00 0C */	beq lbl_8023FC90
/* 8023FC88 0023B8E8  38 60 00 00 */	li r3, 0
/* 8023FC8C 0023B8EC  48 00 00 B8 */	b lbl_8023FD44
lbl_8023FC90:
/* 8023FC90 0023B8F0  7C A3 2B 78 */	mr r3, r5
/* 8023FC94 0023B8F4  38 81 00 0C */	addi r4, r1, 0xc
/* 8023FC98 0023B8F8  4B FF 15 15 */	bl func_802311AC
lbl_8023FC9C:
/* 8023FC9C 0023B8FC  48 02 EA C1 */	bl OSDisableInterrupts
/* 8023FCA0 0023B900  80 8D A3 D8 */	lwz r4, render_context_ptr-_SDA_BASE_(r13)
/* 8023FCA4 0023B904  7C 7E 1B 78 */	mr r30, r3
/* 8023FCA8 0023B908  88 04 17 18 */	lbz r0, 0x1718(r4)
/* 8023FCAC 0023B90C  2C 00 00 00 */	cmpwi r0, 0
/* 8023FCB0 0023B910  40 82 00 10 */	bne lbl_8023FCC0
/* 8023FCB4 0023B914  88 04 17 19 */	lbz r0, 0x1719(r4)
/* 8023FCB8 0023B918  2C 00 00 00 */	cmpwi r0, 0
/* 8023FCBC 0023B91C  41 82 00 10 */	beq lbl_8023FCCC
lbl_8023FCC0:
/* 8023FCC0 0023B920  3B E0 00 00 */	li r31, 0
/* 8023FCC4 0023B924  3B A0 00 00 */	li r29, 0
/* 8023FCC8 0023B928  48 00 00 14 */	b lbl_8023FCDC
lbl_8023FCCC:
/* 8023FCCC 0023B92C  7F 83 E3 78 */	mr r3, r28
/* 8023FCD0 0023B930  38 80 00 03 */	li r4, 3
/* 8023FCD4 0023B934  4B FF FF 39 */	bl func_8023FC0C
/* 8023FCD8 0023B938  7C 7F 1B 78 */	mr r31, r3
lbl_8023FCDC:
/* 8023FCDC 0023B93C  7F C3 F3 78 */	mr r3, r30
/* 8023FCE0 0023B940  48 02 EA A5 */	bl OSRestoreInterrupts
/* 8023FCE4 0023B944  2C 1D 00 00 */	cmpwi r29, 0
/* 8023FCE8 0023B948  41 82 00 0C */	beq lbl_8023FCF4
/* 8023FCEC 0023B94C  2C 1F 00 00 */	cmpwi r31, 0
/* 8023FCF0 0023B950  41 82 00 18 */	beq lbl_8023FD08
lbl_8023FCF4:
/* 8023FCF4 0023B954  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8023FCF8 0023B958  38 81 00 0C */	addi r4, r1, 0xc
/* 8023FCFC 0023B95C  4B FF 15 61 */	bl func_8023125C
/* 8023FD00 0023B960  7F E3 FB 78 */	mr r3, r31
/* 8023FD04 0023B964  48 00 00 40 */	b lbl_8023FD44
lbl_8023FD08:
/* 8023FD08 0023B968  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8023FD0C 0023B96C  38 81 00 0C */	addi r4, r1, 0xc
/* 8023FD10 0023B970  4B FF 14 AD */	bl func_802311BC
/* 8023FD14 0023B974  38 61 00 08 */	addi r3, r1, 8
/* 8023FD18 0023B978  38 A1 00 09 */	addi r5, r1, 9
/* 8023FD1C 0023B97C  7C 64 1B 78 */	mr r4, r3
/* 8023FD20 0023B980  7C 66 1B 78 */	mr r6, r3
/* 8023FD24 0023B984  7C 67 1B 78 */	mr r7, r3
/* 8023FD28 0023B988  48 03 F3 21 */	bl GXGetGPStatus
/* 8023FD2C 0023B98C  88 01 00 09 */	lbz r0, 9(r1)
/* 8023FD30 0023B990  28 00 00 01 */	cmplwi r0, 1
/* 8023FD34 0023B994  40 82 FF 68 */	bne lbl_8023FC9C
/* 8023FD38 0023B998  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8023FD3C 0023B99C  4B FF 16 39 */	bl func_80231374
/* 8023FD40 0023B9A0  4B FF FF 5C */	b lbl_8023FC9C
lbl_8023FD44:
/* 8023FD44 0023B9A4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8023FD48 0023B9A8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8023FD4C 0023B9AC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8023FD50 0023B9B0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8023FD54 0023B9B4  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8023FD58 0023B9B8  7C 08 03 A6 */	mtlr r0
/* 8023FD5C 0023B9BC  38 21 00 20 */	addi r1, r1, 0x20
/* 8023FD60 0023B9C0  4E 80 00 20 */	blr

.global func_8023FD64
func_8023FD64:
/* 8023FD64 0023B9C4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023FD68 0023B9C8  7C 08 02 A6 */	mflr r0
/* 8023FD6C 0023B9CC  C0 02 9E 14 */	lfs f0, lbl_80642414-_SDA2_BASE_(r2)
/* 8023FD70 0023B9D0  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023FD74 0023B9D4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8023FD78 0023B9D8  7C 7F 1B 78 */	mr r31, r3
/* 8023FD7C 0023B9DC  C0 23 00 8C */	lfs f1, 0x8c(r3)
/* 8023FD80 0023B9E0  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8023FD84 0023B9E4  D0 23 00 90 */	stfs f1, 0x90(r3)
/* 8023FD88 0023B9E8  40 81 00 0C */	ble lbl_8023FD94
/* 8023FD8C 0023B9EC  C0 02 9E 18 */	lfs f0, lbl_80642418-_SDA2_BASE_(r2)
/* 8023FD90 0023B9F0  D0 03 00 90 */	stfs f0, 0x90(r3)
lbl_8023FD94:
/* 8023FD94 0023B9F4  88 03 00 83 */	lbz r0, 0x83(r3)
/* 8023FD98 0023B9F8  2C 00 00 00 */	cmpwi r0, 0
/* 8023FD9C 0023B9FC  40 82 00 24 */	bne lbl_8023FDC0
/* 8023FDA0 0023BA00  88 03 00 82 */	lbz r0, 0x82(r3)
/* 8023FDA4 0023BA04  2C 00 00 00 */	cmpwi r0, 0
/* 8023FDA8 0023BA08  40 82 00 18 */	bne lbl_8023FDC0
/* 8023FDAC 0023BA0C  7F E3 FB 78 */	mr r3, r31
/* 8023FDB0 0023BA10  48 00 02 3D */	bl func_8023FFEC
/* 8023FDB4 0023BA14  C8 1F 00 A0 */	lfd f0, 0xa0(r31)
/* 8023FDB8 0023BA18  FC 00 08 2A */	fadd f0, f0, f1
/* 8023FDBC 0023BA1C  D8 1F 00 A0 */	stfd f0, 0xa0(r31)
lbl_8023FDC0:
/* 8023FDC0 0023BA20  A0 7F 00 08 */	lhz r3, 8(r31)
/* 8023FDC4 0023BA24  A0 DF 00 10 */	lhz r6, 0x10(r31)
/* 8023FDC8 0023BA28  54 60 08 3C */	slwi r0, r3, 1
/* 8023FDCC 0023BA2C  54 64 17 FE */	rlwinm r4, r3, 2, 0x1f, 0x1f
/* 8023FDD0 0023BA30  7C C5 FE 70 */	srawi r5, r6, 0x1f
/* 8023FDD4 0023BA34  88 7F 00 18 */	lbz r3, 0x18(r31)
/* 8023FDD8 0023BA38  7C 00 30 10 */	subfc r0, r0, r6
/* 8023FDDC 0023BA3C  7C 05 21 14 */	adde r0, r5, r4
/* 8023FDE0 0023BA40  54 04 06 3E */	clrlwi r4, r0, 0x18
/* 8023FDE4 0023BA44  48 04 4A FD */	bl GXSetFieldMode
/* 8023FDE8 0023BA48  88 1F 00 19 */	lbz r0, 0x19(r31)
/* 8023FDEC 0023BA4C  28 00 00 01 */	cmplwi r0, 1
/* 8023FDF0 0023BA50  40 82 00 14 */	bne lbl_8023FE04
/* 8023FDF4 0023BA54  38 60 00 02 */	li r3, 2
/* 8023FDF8 0023BA58  38 80 00 00 */	li r4, 0
/* 8023FDFC 0023BA5C  48 04 49 AD */	bl GXSetPixelFmt
/* 8023FE00 0023BA60  48 00 00 10 */	b lbl_8023FE10
lbl_8023FE04:
/* 8023FE04 0023BA64  80 7F 00 64 */	lwz r3, 0x64(r31)
/* 8023FE08 0023BA68  38 80 00 00 */	li r4, 0
/* 8023FE0C 0023BA6C  48 04 49 9D */	bl GXSetPixelFmt
lbl_8023FE10:
/* 8023FE10 0023BA70  48 03 9A 99 */	bl VIGetNextField
/* 8023FE14 0023BA74  98 7F 00 5A */	stb r3, 0x5a(r31)
/* 8023FE18 0023BA78  48 04 08 8D */	bl GXFlush
/* 8023FE1C 0023BA7C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023FE20 0023BA80  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8023FE24 0023BA84  7C 08 03 A6 */	mtlr r0
/* 8023FE28 0023BA88  38 21 00 10 */	addi r1, r1, 0x10
/* 8023FE2C 0023BA8C  4E 80 00 20 */	blr
lbl_8023FE30:
/* 8023FE30 0023BA90  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8023FE34 0023BA94  7C 08 02 A6 */	mflr r0
/* 8023FE38 0023BA98  2C 04 00 00 */	cmpwi r4, 0
/* 8023FE3C 0023BA9C  90 01 00 24 */	stw r0, 0x24(r1)
/* 8023FE40 0023BAA0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8023FE44 0023BAA4  7C 7F 1B 78 */	mr r31, r3
/* 8023FE48 0023BAA8  41 82 00 14 */	beq lbl_8023FE5C
/* 8023FE4C 0023BAAC  38 61 00 0C */	addi r3, r1, 0xc
/* 8023FE50 0023BAB0  38 81 00 08 */	addi r4, r1, 8
/* 8023FE54 0023BAB4  48 01 B8 65 */	bl func_8025B6B8
/* 8023FE58 0023BAB8  48 00 00 10 */	b lbl_8023FE68
lbl_8023FE5C:
/* 8023FE5C 0023BABC  C0 02 9D EC */	lfs f0, lbl_806423EC-_SDA2_BASE_(r2)
/* 8023FE60 0023BAC0  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 8023FE64 0023BAC4  D0 01 00 08 */	stfs f0, 8(r1)
lbl_8023FE68:
/* 8023FE68 0023BAC8  88 1F 00 18 */	lbz r0, 0x18(r31)
/* 8023FE6C 0023BACC  2C 00 00 00 */	cmpwi r0, 0
/* 8023FE70 0023BAD0  41 82 00 38 */	beq lbl_8023FEA8
/* 8023FE74 0023BAD4  C0 7F 00 A8 */	lfs f3, 0xa8(r31)
/* 8023FE78 0023BAD8  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 8023FE7C 0023BADC  C0 5F 00 AC */	lfs f2, 0xac(r31)
/* 8023FE80 0023BAE0  C0 01 00 08 */	lfs f0, 8(r1)
/* 8023FE84 0023BAE4  EC 23 08 2A */	fadds f1, f3, f1
/* 8023FE88 0023BAE8  C0 7F 00 B0 */	lfs f3, 0xb0(r31)
/* 8023FE8C 0023BAEC  EC 42 00 2A */	fadds f2, f2, f0
/* 8023FE90 0023BAF0  C0 9F 00 B4 */	lfs f4, 0xb4(r31)
/* 8023FE94 0023BAF4  C0 BF 00 B8 */	lfs f5, 0xb8(r31)
/* 8023FE98 0023BAF8  C0 DF 00 BC */	lfs f6, 0xbc(r31)
/* 8023FE9C 0023BAFC  88 7F 00 5A */	lbz r3, 0x5a(r31)
/* 8023FEA0 0023BB00  48 04 6D F5 */	bl GXSetViewportJitter
/* 8023FEA4 0023BB04  48 00 00 30 */	b lbl_8023FED4
lbl_8023FEA8:
/* 8023FEA8 0023BB08  C0 7F 00 A8 */	lfs f3, 0xa8(r31)
/* 8023FEAC 0023BB0C  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 8023FEB0 0023BB10  C0 5F 00 AC */	lfs f2, 0xac(r31)
/* 8023FEB4 0023BB14  C0 01 00 08 */	lfs f0, 8(r1)
/* 8023FEB8 0023BB18  EC 23 08 2A */	fadds f1, f3, f1
/* 8023FEBC 0023BB1C  C0 7F 00 B0 */	lfs f3, 0xb0(r31)
/* 8023FEC0 0023BB20  EC 42 00 2A */	fadds f2, f2, f0
/* 8023FEC4 0023BB24  C0 9F 00 B4 */	lfs f4, 0xb4(r31)
/* 8023FEC8 0023BB28  C0 BF 00 B8 */	lfs f5, 0xb8(r31)
/* 8023FECC 0023BB2C  C0 DF 00 BC */	lfs f6, 0xbc(r31)
/* 8023FED0 0023BB30  48 04 6E 01 */	bl GXSetViewport
lbl_8023FED4:
/* 8023FED4 0023BB34  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8023FED8 0023BB38  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8023FEDC 0023BB3C  7C 08 03 A6 */	mtlr r0
/* 8023FEE0 0023BB40  38 21 00 20 */	addi r1, r1, 0x20
/* 8023FEE4 0023BB44  4E 80 00 20 */	blr

.global func_8023FEE8
func_8023FEE8:
/* 8023FEE8 0023BB48  D0 23 00 A8 */	stfs f1, 0xa8(r3)
/* 8023FEEC 0023BB4C  38 80 00 01 */	li r4, 1
/* 8023FEF0 0023BB50  D0 43 00 AC */	stfs f2, 0xac(r3)
/* 8023FEF4 0023BB54  D0 63 00 B0 */	stfs f3, 0xb0(r3)
/* 8023FEF8 0023BB58  D0 83 00 B4 */	stfs f4, 0xb4(r3)
/* 8023FEFC 0023BB5C  D0 A3 00 B8 */	stfs f5, 0xb8(r3)
/* 8023FF00 0023BB60  D0 C3 00 BC */	stfs f6, 0xbc(r3)
/* 8023FF04 0023BB64  4B FF FF 2C */	b lbl_8023FE30

.global func_8023FF08
func_8023FF08:
/* 8023FF08 0023BB68  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023FF0C 0023BB6C  7C 08 02 A6 */	mflr r0
/* 8023FF10 0023BB70  7C AA 2B 78 */	mr r10, r5
/* 8023FF14 0023BB74  90 01 00 14 */	stw r0, 0x14(r1)
/* 8023FF18 0023BB78  34 01 00 0A */	addic. r0, r1, 0xa
/* 8023FF1C 0023BB7C  B0 83 00 C0 */	sth r4, 0xc0(r3)
/* 8023FF20 0023BB80  B0 A3 00 C2 */	sth r5, 0xc2(r3)
/* 8023FF24 0023BB84  B0 C3 00 C4 */	sth r6, 0xc4(r3)
/* 8023FF28 0023BB88  B0 E3 00 C6 */	sth r7, 0xc6(r3)
/* 8023FF2C 0023BB8C  41 82 00 0C */	beq lbl_8023FF38
/* 8023FF30 0023BB90  A0 03 00 04 */	lhz r0, 4(r3)
/* 8023FF34 0023BB94  B0 01 00 0A */	sth r0, 0xa(r1)
lbl_8023FF38:
/* 8023FF38 0023BB98  34 01 00 08 */	addic. r0, r1, 8
/* 8023FF3C 0023BB9C  41 82 00 0C */	beq lbl_8023FF48
/* 8023FF40 0023BBA0  A0 03 00 06 */	lhz r0, 6(r3)
/* 8023FF44 0023BBA4  B0 01 00 08 */	sth r0, 8(r1)
lbl_8023FF48:
/* 8023FF48 0023BBA8  A1 01 00 0A */	lhz r8, 0xa(r1)
/* 8023FF4C 0023BBAC  A0 61 00 08 */	lhz r3, 8(r1)
/* 8023FF50 0023BBB0  39 08 FF FF */	addi r8, r8, -1
/* 8023FF54 0023BBB4  55 09 04 3E */	clrlwi r9, r8, 0x10
/* 8023FF58 0023BBB8  38 03 FF FF */	addi r0, r3, -1
/* 8023FF5C 0023BBBC  7C 04 48 40 */	cmplw r4, r9
/* 8023FF60 0023BBC0  B1 01 00 0A */	sth r8, 0xa(r1)
/* 8023FF64 0023BBC4  B0 01 00 08 */	sth r0, 8(r1)
/* 8023FF68 0023BBC8  40 81 00 08 */	ble lbl_8023FF70
/* 8023FF6C 0023BBCC  7D 24 4B 78 */	mr r4, r9
lbl_8023FF70:
/* 8023FF70 0023BBD0  54 83 04 3E */	clrlwi r3, r4, 0x10
/* 8023FF74 0023BBD4  7C 63 32 14 */	add r3, r3, r6
/* 8023FF78 0023BBD8  7C 03 48 00 */	cmpw r3, r9
/* 8023FF7C 0023BBDC  40 81 00 0C */	ble lbl_8023FF88
/* 8023FF80 0023BBE0  7C 64 48 50 */	subf r3, r4, r9
/* 8023FF84 0023BBE4  54 66 04 3E */	clrlwi r6, r3, 0x10
lbl_8023FF88:
/* 8023FF88 0023BBE8  54 03 04 3E */	clrlwi r3, r0, 0x10
/* 8023FF8C 0023BBEC  7C 05 18 40 */	cmplw r5, r3
/* 8023FF90 0023BBF0  40 81 00 08 */	ble lbl_8023FF98
/* 8023FF94 0023BBF4  7C 6A 1B 78 */	mr r10, r3
lbl_8023FF98:
/* 8023FF98 0023BBF8  55 40 04 3E */	clrlwi r0, r10, 0x10
/* 8023FF9C 0023BBFC  7C 00 3A 14 */	add r0, r0, r7
/* 8023FFA0 0023BC00  7C 00 18 00 */	cmpw r0, r3
/* 8023FFA4 0023BC04  40 81 00 0C */	ble lbl_8023FFB0
/* 8023FFA8 0023BC08  7C 0A 18 50 */	subf r0, r10, r3
/* 8023FFAC 0023BC0C  54 07 04 3E */	clrlwi r7, r0, 0x10
lbl_8023FFB0:
/* 8023FFB0 0023BC10  7C C5 33 78 */	mr r5, r6
/* 8023FFB4 0023BC14  54 83 04 3E */	clrlwi r3, r4, 0x10
/* 8023FFB8 0023BC18  7C E6 3B 78 */	mr r6, r7
/* 8023FFBC 0023BC1C  55 44 04 3E */	clrlwi r4, r10, 0x10
/* 8023FFC0 0023BC20  48 04 6D 3D */	bl GXSetScissor
/* 8023FFC4 0023BC24  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8023FFC8 0023BC28  7C 08 03 A6 */	mtlr r0
/* 8023FFCC 0023BC2C  38 21 00 10 */	addi r1, r1, 0x10
/* 8023FFD0 0023BC30  4E 80 00 20 */	blr

.global func_8023FFD4
func_8023FFD4:
/* 8023FFD4 0023BC34  7C 80 23 78 */	mr r0, r4
/* 8023FFD8 0023BC38  90 83 00 C8 */	stw r4, 0xc8(r3)
/* 8023FFDC 0023BC3C  7C A4 2B 78 */	mr r4, r5
/* 8023FFE0 0023BC40  90 A3 00 CC */	stw r5, 0xcc(r3)
/* 8023FFE4 0023BC44  7C 03 03 78 */	mr r3, r0
/* 8023FFE8 0023BC48  48 04 6D 7C */	b GXSetScissorBoxOffset

.global func_8023FFEC
func_8023FFEC:
/* 8023FFEC 0023BC4C  88 03 00 82 */	lbz r0, 0x82(r3)
/* 8023FFF0 0023BC50  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8023FFF4 0023BC54  2C 00 00 00 */	cmpwi r0, 0
/* 8023FFF8 0023BC58  41 82 00 0C */	beq lbl_80240004
/* 8023FFFC 0023BC5C  C0 22 9D EC */	lfs f1, lbl_806423EC-_SDA2_BASE_(r2)
/* 80240000 0023BC60  48 00 00 38 */	b lbl_80240038
lbl_80240004:
/* 80240004 0023BC64  88 03 00 81 */	lbz r0, 0x81(r3)
/* 80240008 0023BC68  2C 00 00 00 */	cmpwi r0, 0
/* 8024000C 0023BC6C  41 82 00 0C */	beq lbl_80240018
/* 80240010 0023BC70  C0 23 00 90 */	lfs f1, 0x90(r3)
/* 80240014 0023BC74  48 00 00 24 */	b lbl_80240038
lbl_80240018:
/* 80240018 0023BC78  80 63 00 7C */	lwz r3, 0x7c(r3)
/* 8024001C 0023BC7C  3C 00 43 30 */	lis r0, 0x4330
/* 80240020 0023BC80  90 01 00 08 */	stw r0, 8(r1)
/* 80240024 0023BC84  38 03 00 01 */	addi r0, r3, 1
/* 80240028 0023BC88  C8 22 9E 08 */	lfd f1, lbl_80642408-_SDA2_BASE_(r2)
/* 8024002C 0023BC8C  90 01 00 0C */	stw r0, 0xc(r1)
/* 80240030 0023BC90  C8 01 00 08 */	lfd f0, 8(r1)
/* 80240034 0023BC94  EC 20 08 28 */	fsubs f1, f0, f1
lbl_80240038:
/* 80240038 0023BC98  38 21 00 10 */	addi r1, r1, 0x10
/* 8024003C 0023BC9C  4E 80 00 20 */	blr

.global func_80240040
func_80240040:
/* 80240040 0023BCA0  38 A0 00 01 */	li r5, 1
/* 80240044 0023BCA4  38 6D A4 C0 */	addi r3, r13, lbl_8063F780-_SDA_BASE_
/* 80240048 0023BCA8  38 80 00 04 */	li r4, 4
/* 8024004C 0023BCAC  38 00 00 00 */	li r0, 0
/* 80240050 0023BCB0  98 AD A4 C0 */	stb r5, lbl_8063F780-_SDA_BASE_(r13)
/* 80240054 0023BCB4  B0 83 00 02 */	sth r4, 2(r3)
/* 80240058 0023BCB8  98 03 00 04 */	stb r0, 4(r3)
/* 8024005C 0023BCBC  4E 80 00 20 */	blr