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

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

lbl_80245C60:
/* 80245C60 002418C0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80245C64 002418C4  7C 08 02 A6 */	mflr r0
/* 80245C68 002418C8  90 01 00 14 */	stw r0, 0x14(r1)
/* 80245C6C 002418CC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80245C70 002418D0  7C 7F 1B 78 */	mr r31, r3
/* 80245C74 002418D4  7C 83 23 78 */	mr r3, r4
/* 80245C78 002418D8  48 00 16 FD */	bl func_80247374
/* 80245C7C 002418DC  2C 03 00 00 */	cmpwi r3, 0
/* 80245C80 002418E0  41 82 00 20 */	beq lbl_80245CA0
/* 80245C84 002418E4  2C 1F 00 00 */	cmpwi r31, 0
/* 80245C88 002418E8  40 80 00 10 */	bge lbl_80245C98
/* 80245C8C 002418EC  38 80 FC 1E */	li r4, -994
/* 80245C90 002418F0  48 00 1B A5 */	bl func_80247834
/* 80245C94 002418F4  48 00 00 0C */	b lbl_80245CA0
lbl_80245C98:
/* 80245C98 002418F8  38 80 00 0B */	li r4, 0xb
/* 80245C9C 002418FC  48 00 1B 99 */	bl func_80247834
lbl_80245CA0:
/* 80245CA0 00241900  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80245CA4 00241904  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80245CA8 00241908  7C 08 03 A6 */	mtlr r0
/* 80245CAC 0024190C  38 21 00 10 */	addi r1, r1, 0x10
/* 80245CB0 00241910  4E 80 00 20 */	blr

.global func_80245CB4
func_80245CB4:
/* 80245CB4 00241914  80 0D A5 D4 */	lwz r0, lbl_8063F894-_SDA_BASE_(r13)
/* 80245CB8 00241918  80 8D A5 D0 */	lwz r4, lbl_8063F890-_SDA_BASE_(r13)
/* 80245CBC 0024191C  7C 09 03 A6 */	mtctr r0
/* 80245CC0 00241920  28 00 00 00 */	cmplwi r0, 0
/* 80245CC4 00241924  40 81 00 20 */	ble lbl_80245CE4
lbl_80245CC8:
/* 80245CC8 00241928  80 04 00 04 */	lwz r0, 4(r4)
/* 80245CCC 0024192C  7C 00 18 40 */	cmplw r0, r3
/* 80245CD0 00241930  40 82 00 0C */	bne lbl_80245CDC
/* 80245CD4 00241934  7C 83 23 78 */	mr r3, r4
/* 80245CD8 00241938  4E 80 00 20 */	blr
lbl_80245CDC:
/* 80245CDC 0024193C  38 84 00 10 */	addi r4, r4, 0x10
/* 80245CE0 00241940  42 00 FF E8 */	bdnz lbl_80245CC8
lbl_80245CE4:
/* 80245CE4 00241944  38 60 00 00 */	li r3, 0
/* 80245CE8 00241948  4E 80 00 20 */	blr

.global func_80245CEC
func_80245CEC:
/* 80245CEC 0024194C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80245CF0 00241950  7C 08 02 A6 */	mflr r0
/* 80245CF4 00241954  90 01 00 24 */	stw r0, 0x24(r1)
/* 80245CF8 00241958  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80245CFC 0024195C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80245D00 00241960  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80245D04 00241964  7C 9D 23 78 */	mr r29, r4
/* 80245D08 00241968  93 81 00 10 */	stw r28, 0x10(r1)
/* 80245D0C 0024196C  7C 7C 1B 78 */	mr r28, r3
/* 80245D10 00241970  48 02 8A 4D */	bl OSDisableInterrupts
/* 80245D14 00241974  7C 7F 1B 78 */	mr r31, r3
/* 80245D18 00241978  48 00 19 E5 */	bl func_802476FC
/* 80245D1C 0024197C  2C 03 00 00 */	cmpwi r3, 0
/* 80245D20 00241980  7C 7E 1B 78 */	mr r30, r3
/* 80245D24 00241984  40 82 00 20 */	bne lbl_80245D44
/* 80245D28 00241988  7F A3 EB 78 */	mr r3, r29
/* 80245D2C 0024198C  38 80 00 04 */	li r4, 4
/* 80245D30 00241990  48 00 1B 45 */	bl func_80247874
/* 80245D34 00241994  7F E3 FB 78 */	mr r3, r31
/* 80245D38 00241998  48 02 8A 4D */	bl OSRestoreInterrupts
/* 80245D3C 0024199C  38 60 00 00 */	li r3, 0
/* 80245D40 002419A0  48 00 00 4C */	b lbl_80245D8C
lbl_80245D44:
/* 80245D44 002419A4  7F A3 EB 78 */	mr r3, r29
/* 80245D48 002419A8  38 80 00 01 */	li r4, 1
/* 80245D4C 002419AC  48 00 1B 29 */	bl func_80247874
/* 80245D50 002419B0  93 BE 00 10 */	stw r29, 0x10(r30)
/* 80245D54 002419B4  93 9E 00 0C */	stw r28, 0xc(r30)
/* 80245D58 002419B8  80 1D 00 0C */	lwz r0, 0xc(r29)
/* 80245D5C 002419BC  54 00 00 01 */	rlwinm. r0, r0, 0, 0, 0
/* 80245D60 002419C0  41 82 00 10 */	beq lbl_80245D70
/* 80245D64 002419C4  38 00 00 01 */	li r0, 1
/* 80245D68 002419C8  98 1E 00 0A */	stb r0, 0xa(r30)
/* 80245D6C 002419CC  48 00 00 0C */	b lbl_80245D78
lbl_80245D70:
/* 80245D70 002419D0  38 00 00 00 */	li r0, 0
/* 80245D74 002419D4  98 1E 00 0A */	stb r0, 0xa(r30)
lbl_80245D78:
/* 80245D78 002419D8  7F C3 F3 78 */	mr r3, r30
/* 80245D7C 002419DC  48 00 1A 69 */	bl func_802477E4
/* 80245D80 002419E0  7F E3 FB 78 */	mr r3, r31
/* 80245D84 002419E4  48 02 8A 01 */	bl OSRestoreInterrupts
/* 80245D88 002419E8  38 60 00 01 */	li r3, 1
lbl_80245D8C:
/* 80245D8C 002419EC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80245D90 002419F0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80245D94 002419F4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80245D98 002419F8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80245D9C 002419FC  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80245DA0 00241A00  7C 08 03 A6 */	mtlr r0
/* 80245DA4 00241A04  38 21 00 20 */	addi r1, r1, 0x20
/* 80245DA8 00241A08  4E 80 00 20 */	blr

.global func_80245DAC
func_80245DAC:
/* 80245DAC 00241A0C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80245DB0 00241A10  7C 08 02 A6 */	mflr r0
/* 80245DB4 00241A14  90 01 00 14 */	stw r0, 0x14(r1)
/* 80245DB8 00241A18  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80245DBC 00241A1C  7C 7F 1B 78 */	mr r31, r3
/* 80245DC0 00241A20  48 00 00 F1 */	bl func_80245EB0
/* 80245DC4 00241A24  80 9F 00 28 */	lwz r4, 0x28(r31)
/* 80245DC8 00241A28  80 03 00 0C */	lwz r0, 0xc(r3)
/* 80245DCC 00241A2C  7C 04 00 40 */	cmplw r4, r0
/* 80245DD0 00241A30  41 80 00 0C */	blt lbl_80245DDC
/* 80245DD4 00241A34  38 60 00 00 */	li r3, 0
/* 80245DD8 00241A38  48 00 00 34 */	b lbl_80245E0C
lbl_80245DDC:
/* 80245DDC 00241A3C  7F E3 FB 78 */	mr r3, r31
/* 80245DE0 00241A40  48 00 01 01 */	bl func_80245EE0
/* 80245DE4 00241A44  2C 03 00 00 */	cmpwi r3, 0
/* 80245DE8 00241A48  7C 64 1B 78 */	mr r4, r3
/* 80245DEC 00241A4C  40 82 00 0C */	bne lbl_80245DF8
/* 80245DF0 00241A50  38 60 00 00 */	li r3, 0
/* 80245DF4 00241A54  48 00 00 18 */	b lbl_80245E0C
lbl_80245DF8:
/* 80245DF8 00241A58  80 BF 00 28 */	lwz r5, 0x28(r31)
/* 80245DFC 00241A5C  7F E3 FB 78 */	mr r3, r31
/* 80245E00 00241A60  38 05 00 01 */	addi r0, r5, 1
/* 80245E04 00241A64  90 1F 00 28 */	stw r0, 0x28(r31)
/* 80245E08 00241A68  4B FF FE E5 */	bl func_80245CEC
lbl_80245E0C:
/* 80245E0C 00241A6C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80245E10 00241A70  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80245E14 00241A74  7C 08 03 A6 */	mtlr r0
/* 80245E18 00241A78  38 21 00 10 */	addi r1, r1, 0x10
/* 80245E1C 00241A7C  4E 80 00 20 */	blr

.global func_80245E20
func_80245E20:
/* 80245E20 00241A80  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80245E24 00241A84  7C 08 02 A6 */	mflr r0
/* 80245E28 00241A88  90 01 00 24 */	stw r0, 0x24(r1)
/* 80245E2C 00241A8C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80245E30 00241A90  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80245E34 00241A94  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80245E38 00241A98  7C 7D 1B 78 */	mr r29, r3
/* 80245E3C 00241A9C  48 00 00 75 */	bl func_80245EB0
/* 80245E40 00241AA0  7C 7F 1B 78 */	mr r31, r3
/* 80245E44 00241AA4  3B C0 00 00 */	li r30, 0
/* 80245E48 00241AA8  48 00 00 1C */	b lbl_80245E64
lbl_80245E4C:
/* 80245E4C 00241AAC  80 7D 00 00 */	lwz r3, 0(r29)
/* 80245E50 00241AB0  57 C4 04 3E */	clrlwi r4, r30, 0x10
/* 80245E54 00241AB4  4B FF FB B9 */	bl func_80245A0C
/* 80245E58 00241AB8  2C 03 00 00 */	cmpwi r3, 0
/* 80245E5C 00241ABC  41 82 00 18 */	beq lbl_80245E74
/* 80245E60 00241AC0  3B DE 00 01 */	addi r30, r30, 1
lbl_80245E64:
/* 80245E64 00241AC4  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 80245E68 00241AC8  57 C3 04 3E */	clrlwi r3, r30, 0x10
/* 80245E6C 00241ACC  7C 03 00 40 */	cmplw r3, r0
/* 80245E70 00241AD0  41 80 FF DC */	blt lbl_80245E4C
lbl_80245E74:
/* 80245E74 00241AD4  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 80245E78 00241AD8  57 C3 04 3E */	clrlwi r3, r30, 0x10
/* 80245E7C 00241ADC  7C 03 00 40 */	cmplw r3, r0
/* 80245E80 00241AE0  41 80 00 0C */	blt lbl_80245E8C
/* 80245E84 00241AE4  38 60 00 00 */	li r3, 0
/* 80245E88 00241AE8  48 00 00 0C */	b lbl_80245E94
lbl_80245E8C:
/* 80245E8C 00241AEC  90 7D 00 24 */	stw r3, 0x24(r29)
/* 80245E90 00241AF0  38 60 00 01 */	li r3, 1
lbl_80245E94:
/* 80245E94 00241AF4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80245E98 00241AF8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80245E9C 00241AFC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80245EA0 00241B00  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80245EA4 00241B04  7C 08 03 A6 */	mtlr r0
/* 80245EA8 00241B08  38 21 00 20 */	addi r1, r1, 0x20
/* 80245EAC 00241B0C  4E 80 00 20 */	blr

.global func_80245EB0
func_80245EB0:
/* 80245EB0 00241B10  80 83 00 20 */	lwz r4, 0x20(r3)
/* 80245EB4 00241B14  2C 04 00 00 */	cmpwi r4, 0
/* 80245EB8 00241B18  40 82 00 0C */	bne lbl_80245EC4
/* 80245EBC 00241B1C  38 60 00 00 */	li r3, 0
/* 80245EC0 00241B20  4E 80 00 20 */	blr
lbl_80245EC4:
/* 80245EC4 00241B24  88 03 00 2E */	lbz r0, 0x2e(r3)
/* 80245EC8 00241B28  2C 00 00 00 */	cmpwi r0, 0
/* 80245ECC 00241B2C  40 82 00 0C */	bne lbl_80245ED8
/* 80245ED0 00241B30  38 60 00 00 */	li r3, 0
/* 80245ED4 00241B34  4E 80 00 20 */	blr
lbl_80245ED8:
/* 80245ED8 00241B38  7C 83 23 78 */	mr r3, r4
/* 80245EDC 00241B3C  4E 80 00 20 */	blr

.global func_80245EE0
func_80245EE0:
/* 80245EE0 00241B40  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80245EE4 00241B44  7C 08 02 A6 */	mflr r0
/* 80245EE8 00241B48  90 01 00 14 */	stw r0, 0x14(r1)
/* 80245EEC 00241B4C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80245EF0 00241B50  7C 9F 23 78 */	mr r31, r4
/* 80245EF4 00241B54  4B FF FF BD */	bl func_80245EB0
/* 80245EF8 00241B58  2C 03 00 00 */	cmpwi r3, 0
/* 80245EFC 00241B5C  40 82 00 0C */	bne lbl_80245F08
/* 80245F00 00241B60  38 60 00 00 */	li r3, 0
/* 80245F04 00241B64  48 00 00 2C */	b lbl_80245F30
lbl_80245F08:
/* 80245F08 00241B68  80 03 00 0C */	lwz r0, 0xc(r3)
/* 80245F0C 00241B6C  7C 1F 00 40 */	cmplw r31, r0
/* 80245F10 00241B70  41 80 00 0C */	blt lbl_80245F1C
/* 80245F14 00241B74  38 60 00 00 */	li r3, 0
/* 80245F18 00241B78  48 00 00 18 */	b lbl_80245F30
lbl_80245F1C:
/* 80245F1C 00241B7C  80 03 00 40 */	lwz r0, 0x40(r3)
/* 80245F20 00241B80  57 E4 10 3A */	slwi r4, r31, 2
/* 80245F24 00241B84  7C 03 02 14 */	add r0, r3, r0
/* 80245F28 00241B88  7C 04 00 2E */	lwzx r0, r4, r0
/* 80245F2C 00241B8C  7C 63 02 14 */	add r3, r3, r0
lbl_80245F30:
/* 80245F30 00241B90  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80245F34 00241B94  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80245F38 00241B98  7C 08 03 A6 */	mtlr r0
/* 80245F3C 00241B9C  38 21 00 10 */	addi r1, r1, 0x10
/* 80245F40 00241BA0  4E 80 00 20 */	blr

.global func_80245F44
func_80245F44:
/* 80245F44 00241BA4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80245F48 00241BA8  7C 08 02 A6 */	mflr r0
/* 80245F4C 00241BAC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80245F50 00241BB0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80245F54 00241BB4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80245F58 00241BB8  7C 9E 23 78 */	mr r30, r4
/* 80245F5C 00241BBC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80245F60 00241BC0  7C 7D 1B 78 */	mr r29, r3
/* 80245F64 00241BC4  80 A4 00 28 */	lwz r5, 0x28(r4)
/* 80245F68 00241BC8  80 0D A5 18 */	lwz r0, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80245F6C 00241BCC  7C 05 02 14 */	add r0, r5, r0
/* 80245F70 00241BD0  90 04 00 28 */	stw r0, 0x28(r4)
/* 80245F74 00241BD4  80 03 00 10 */	lwz r0, 0x10(r3)
/* 80245F78 00241BD8  2C 00 00 04 */	cmpwi r0, 4
/* 80245F7C 00241BDC  40 82 01 1C */	bne lbl_80246098
/* 80245F80 00241BE0  80 04 00 0C */	lwz r0, 0xc(r4)
/* 80245F84 00241BE4  54 00 03 5B */	rlwinm. r0, r0, 0, 0xd, 0xd
/* 80245F88 00241BE8  40 82 01 10 */	bne lbl_80246098
/* 80245F8C 00241BEC  48 00 0D 41 */	bl func_80246CCC
/* 80245F90 00241BF0  80 9E 00 44 */	lwz r4, 0x44(r30)
/* 80245F94 00241BF4  7C 7F 1B 78 */	mr r31, r3
/* 80245F98 00241BF8  80 0D A5 18 */	lwz r0, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80245F9C 00241BFC  80 7E 00 48 */	lwz r3, 0x48(r30)
/* 80245FA0 00241C00  7C 04 02 14 */	add r0, r4, r0
/* 80245FA4 00241C04  90 1E 00 44 */	stw r0, 0x44(r30)
/* 80245FA8 00241C08  48 00 10 5D */	bl func_80247004
/* 80245FAC 00241C0C  80 1E 00 4C */	lwz r0, 0x4c(r30)
/* 80245FB0 00241C10  80 9E 00 48 */	lwz r4, 0x48(r30)
/* 80245FB4 00241C14  7C 00 1B 78 */	or r0, r0, r3
/* 80245FB8 00241C18  90 1E 00 4C */	stw r0, 0x4c(r30)
/* 80245FBC 00241C1C  80 0D A5 18 */	lwz r0, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80245FC0 00241C20  7C 04 02 14 */	add r0, r4, r0
/* 80245FC4 00241C24  7C 00 F8 40 */	cmplw r0, r31
/* 80245FC8 00241C28  90 1E 00 48 */	stw r0, 0x48(r30)
/* 80245FCC 00241C2C  41 80 00 0C */	blt lbl_80245FD8
/* 80245FD0 00241C30  38 00 00 00 */	li r0, 0
/* 80245FD4 00241C34  90 1E 00 48 */	stw r0, 0x48(r30)
lbl_80245FD8:
/* 80245FD8 00241C38  88 1D 00 2C */	lbz r0, 0x2c(r29)
/* 80245FDC 00241C3C  2C 00 00 00 */	cmpwi r0, 0
/* 80245FE0 00241C40  41 82 00 14 */	beq lbl_80245FF4
/* 80245FE4 00241C44  7F A3 EB 78 */	mr r3, r29
/* 80245FE8 00241C48  38 80 00 0A */	li r4, 0xa
/* 80245FEC 00241C4C  48 00 3B 6D */	bl func_80249B58
/* 80245FF0 00241C50  48 00 01 B0 */	b lbl_802461A0
lbl_80245FF4:
/* 80245FF4 00241C54  80 9E 00 28 */	lwz r4, 0x28(r30)
/* 80245FF8 00241C58  80 1E 00 54 */	lwz r0, 0x54(r30)
/* 80245FFC 00241C5C  7C 04 00 40 */	cmplw r4, r0
/* 80246000 00241C60  41 80 00 50 */	blt lbl_80246050
/* 80246004 00241C64  80 7E 00 0C */	lwz r3, 0xc(r30)
/* 80246008 00241C68  54 60 05 29 */	rlwinm. r0, r3, 0, 0x14, 0x14
/* 8024600C 00241C6C  41 82 00 14 */	beq lbl_80246020
/* 80246010 00241C70  7F C3 F3 78 */	mr r3, r30
/* 80246014 00241C74  38 80 00 02 */	li r4, 2
/* 80246018 00241C78  48 00 18 5D */	bl func_80247874
/* 8024601C 00241C7C  48 00 01 84 */	b lbl_802461A0
lbl_80246020:
/* 80246020 00241C80  7C 04 F8 40 */	cmplw r4, r31
/* 80246024 00241C84  40 80 00 24 */	bge lbl_80246048
/* 80246028 00241C88  64 60 00 80 */	oris r0, r3, 0x80
/* 8024602C 00241C8C  7F C3 F3 78 */	mr r3, r30
/* 80246030 00241C90  90 1E 00 0C */	stw r0, 0xc(r30)
/* 80246034 00241C94  38 80 00 02 */	li r4, 2
/* 80246038 00241C98  48 00 18 3D */	bl func_80247874
/* 8024603C 00241C9C  38 00 FF FF */	li r0, -1
/* 80246040 00241CA0  90 1E 00 4C */	stw r0, 0x4c(r30)
/* 80246044 00241CA4  48 00 01 5C */	b lbl_802461A0
lbl_80246048:
/* 80246048 00241CA8  80 1E 00 50 */	lwz r0, 0x50(r30)
/* 8024604C 00241CAC  90 1E 00 28 */	stw r0, 0x28(r30)
lbl_80246050:
/* 80246050 00241CB0  80 1E 00 44 */	lwz r0, 0x44(r30)
/* 80246054 00241CB4  7C 00 F8 40 */	cmplw r0, r31
/* 80246058 00241CB8  41 80 00 14 */	blt lbl_8024606C
/* 8024605C 00241CBC  7F C3 F3 78 */	mr r3, r30
/* 80246060 00241CC0  38 80 00 05 */	li r4, 5
/* 80246064 00241CC4  48 00 18 11 */	bl func_80247874
/* 80246068 00241CC8  48 00 01 38 */	b lbl_802461A0
lbl_8024606C:
/* 8024606C 00241CCC  38 60 00 02 */	li r3, 2
/* 80246070 00241CD0  48 00 19 C5 */	bl func_80247A34
/* 80246074 00241CD4  7C 7F 1B 78 */	mr r31, r3
/* 80246078 00241CD8  38 60 00 01 */	li r3, 1
/* 8024607C 00241CDC  48 00 19 B9 */	bl func_80247A34
/* 80246080 00241CE0  7C 03 FA 15 */	add. r0, r3, r31
/* 80246084 00241CE4  41 82 01 10 */	beq lbl_80246194
/* 80246088 00241CE8  7F C3 F3 78 */	mr r3, r30
/* 8024608C 00241CEC  38 80 00 05 */	li r4, 5
/* 80246090 00241CF0  48 00 17 E5 */	bl func_80247874
/* 80246094 00241CF4  48 00 01 0C */	b lbl_802461A0
lbl_80246098:
/* 80246098 00241CF8  80 64 00 28 */	lwz r3, 0x28(r4)
/* 8024609C 00241CFC  80 04 00 14 */	lwz r0, 0x14(r4)
/* 802460A0 00241D00  7C 03 00 40 */	cmplw r3, r0
/* 802460A4 00241D04  41 80 00 F0 */	blt lbl_80246194
/* 802460A8 00241D08  80 64 00 38 */	lwz r3, 0x38(r4)
/* 802460AC 00241D0C  2C 03 00 00 */	cmpwi r3, 0
/* 802460B0 00241D10  41 82 00 10 */	beq lbl_802460C0
/* 802460B4 00241D14  38 00 00 00 */	li r0, 0
/* 802460B8 00241D18  90 04 00 38 */	stw r0, 0x38(r4)
/* 802460BC 00241D1C  4B F9 66 09 */	bl func_801DC6C4
lbl_802460C0:
/* 802460C0 00241D20  80 1D 00 10 */	lwz r0, 0x10(r29)
/* 802460C4 00241D24  2C 00 00 04 */	cmpwi r0, 4
/* 802460C8 00241D28  40 82 00 20 */	bne lbl_802460E8
/* 802460CC 00241D2C  80 9D 00 34 */	lwz r4, 0x34(r29)
/* 802460D0 00241D30  2C 04 00 00 */	cmpwi r4, 0
/* 802460D4 00241D34  41 82 00 14 */	beq lbl_802460E8
/* 802460D8 00241D38  7F A3 EB 78 */	mr r3, r29
/* 802460DC 00241D3C  48 00 1B 81 */	bl func_80247C5C
/* 802460E0 00241D40  90 7D 00 24 */	stw r3, 0x24(r29)
/* 802460E4 00241D44  48 00 00 7C */	b lbl_80246160
lbl_802460E8:
/* 802460E8 00241D48  80 9D 00 08 */	lwz r4, 8(r29)
/* 802460EC 00241D4C  7F A3 EB 78 */	mr r3, r29
/* 802460F0 00241D50  48 00 1B 6D */	bl func_80247C5C
/* 802460F4 00241D54  28 03 FF FF */	cmplwi r3, 0xffff
/* 802460F8 00241D58  41 82 00 5C */	beq lbl_80246154
/* 802460FC 00241D5C  80 7D 00 44 */	lwz r3, 0x44(r29)
/* 80246100 00241D60  2C 03 00 00 */	cmpwi r3, 0
/* 80246104 00241D64  41 82 00 38 */	beq lbl_8024613C
/* 80246108 00241D68  80 83 00 00 */	lwz r4, 0(r3)
/* 8024610C 00241D6C  2C 04 00 00 */	cmpwi r4, 0
/* 80246110 00241D70  41 82 00 2C */	beq lbl_8024613C
/* 80246114 00241D74  38 03 00 04 */	addi r0, r3, 4
/* 80246118 00241D78  90 9D 00 08 */	stw r4, 8(r29)
/* 8024611C 00241D7C  7F A3 EB 78 */	mr r3, r29
/* 80246120 00241D80  90 1D 00 44 */	stw r0, 0x44(r29)
/* 80246124 00241D84  48 00 3A 31 */	bl func_80249B54
/* 80246128 00241D88  90 7D 00 24 */	stw r3, 0x24(r29)
/* 8024612C 00241D8C  90 7D 00 28 */	stw r3, 0x28(r29)
/* 80246130 00241D90  7F A3 EB 78 */	mr r3, r29
/* 80246134 00241D94  48 00 04 89 */	bl func_802465BC
/* 80246138 00241D98  48 00 00 68 */	b lbl_802461A0
lbl_8024613C:
/* 8024613C 00241D9C  38 00 00 00 */	li r0, 0
/* 80246140 00241DA0  7F A3 EB 78 */	mr r3, r29
/* 80246144 00241DA4  90 1D 00 44 */	stw r0, 0x44(r29)
/* 80246148 00241DA8  38 80 00 0A */	li r4, 0xa
/* 8024614C 00241DAC  48 00 3A 0D */	bl func_80249B58
/* 80246150 00241DB0  48 00 00 50 */	b lbl_802461A0
lbl_80246154:
/* 80246154 00241DB4  80 7D 00 24 */	lwz r3, 0x24(r29)
/* 80246158 00241DB8  38 03 00 01 */	addi r0, r3, 1
/* 8024615C 00241DBC  90 1D 00 24 */	stw r0, 0x24(r29)
lbl_80246160:
/* 80246160 00241DC0  7F A3 EB 78 */	mr r3, r29
/* 80246164 00241DC4  4B FF FD 4D */	bl func_80245EB0
/* 80246168 00241DC8  80 9D 00 24 */	lwz r4, 0x24(r29)
/* 8024616C 00241DCC  80 03 00 0C */	lwz r0, 0xc(r3)
/* 80246170 00241DD0  7C 04 00 40 */	cmplw r4, r0
/* 80246174 00241DD4  41 80 00 14 */	blt lbl_80246188
/* 80246178 00241DD8  7F A3 EB 78 */	mr r3, r29
/* 8024617C 00241DDC  38 80 00 0A */	li r4, 0xa
/* 80246180 00241DE0  48 00 39 D9 */	bl func_80249B58
/* 80246184 00241DE4  48 00 00 1C */	b lbl_802461A0
lbl_80246188:
/* 80246188 00241DE8  7F A3 EB 78 */	mr r3, r29
/* 8024618C 00241DEC  48 00 04 31 */	bl func_802465BC
/* 80246190 00241DF0  48 00 00 10 */	b lbl_802461A0
lbl_80246194:
/* 80246194 00241DF4  7F A3 EB 78 */	mr r3, r29
/* 80246198 00241DF8  7F C4 F3 78 */	mr r4, r30
/* 8024619C 00241DFC  48 00 02 4D */	bl func_802463E8
lbl_802461A0:
/* 802461A0 00241E00  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802461A4 00241E04  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802461A8 00241E08  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802461AC 00241E0C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802461B0 00241E10  7C 08 03 A6 */	mtlr r0
/* 802461B4 00241E14  38 21 00 20 */	addi r1, r1, 0x20
/* 802461B8 00241E18  4E 80 00 20 */	blr

.global func_802461BC
func_802461BC:
/* 802461BC 00241E1C  88 03 00 2C */	lbz r0, 0x2c(r3)
/* 802461C0 00241E20  2C 00 00 00 */	cmpwi r0, 0
/* 802461C4 00241E24  40 82 00 30 */	bne lbl_802461F4
/* 802461C8 00241E28  80 03 00 10 */	lwz r0, 0x10(r3)
/* 802461CC 00241E2C  2C 00 00 01 */	cmpwi r0, 1
/* 802461D0 00241E30  41 82 00 18 */	beq lbl_802461E8
/* 802461D4 00241E34  2C 00 00 04 */	cmpwi r0, 4
/* 802461D8 00241E38  40 82 00 1C */	bne lbl_802461F4
/* 802461DC 00241E3C  80 04 00 0C */	lwz r0, 0xc(r4)
/* 802461E0 00241E40  54 00 03 5B */	rlwinm. r0, r0, 0, 0xd, 0xd
/* 802461E4 00241E44  41 82 00 10 */	beq lbl_802461F4
lbl_802461E8:
/* 802461E8 00241E48  38 64 00 30 */	addi r3, r4, 0x30
/* 802461EC 00241E4C  38 84 00 34 */	addi r4, r4, 0x34
/* 802461F0 00241E50  4B FF F0 18 */	b lbl_80245208
lbl_802461F4:
/* 802461F4 00241E54  38 64 00 30 */	addi r3, r4, 0x30
/* 802461F8 00241E58  38 80 00 00 */	li r4, 0
/* 802461FC 00241E5C  4B FF EE 74 */	b func_80245070
lbl_80246200:
/* 80246200 00241E60  2C 03 00 00 */	cmpwi r3, 0
/* 80246204 00241E64  7C 64 1B 78 */	mr r4, r3
/* 80246208 00241E68  4D 82 00 20 */	beqlr
/* 8024620C 00241E6C  80 63 00 10 */	lwz r3, 0x10(r3)
/* 80246210 00241E70  80 84 00 14 */	lwz r4, 0x14(r4)
/* 80246214 00241E74  4B FF FF A8 */	b func_802461BC
/* 80246218 00241E78  4E 80 00 20 */	blr

.global func_8024621C
func_8024621C:
/* 8024621C 00241E7C  80 0D A5 18 */	lwz r0, lbl_8063F7D8-_SDA_BASE_(r13)
/* 80246220 00241E80  7C 64 18 50 */	subf r3, r4, r3
/* 80246224 00241E84  7C 03 00 40 */	cmplw r3, r0
/* 80246228 00241E88  40 81 00 08 */	ble lbl_80246230
/* 8024622C 00241E8C  7C 03 03 78 */	mr r3, r0
lbl_80246230:
/* 80246230 00241E90  38 03 00 1F */	addi r0, r3, 0x1f
/* 80246234 00241E94  54 03 00 34 */	rlwinm r3, r0, 0, 0, 0x1a
/* 80246238 00241E98  4E 80 00 20 */	blr
lbl_8024623C:
/* 8024623C 00241E9C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80246240 00241EA0  7C 08 02 A6 */	mflr r0
/* 80246244 00241EA4  90 01 00 24 */	stw r0, 0x24(r1)
/* 80246248 00241EA8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8024624C 00241EAC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80246250 00241EB0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80246254 00241EB4  7C 7D 1B 78 */	mr r29, r3
/* 80246258 00241EB8  7C 83 23 78 */	mr r3, r4
/* 8024625C 00241EBC  48 00 11 19 */	bl func_80247374
/* 80246260 00241EC0  2C 03 00 00 */	cmpwi r3, 0
/* 80246264 00241EC4  7C 7E 1B 78 */	mr r30, r3
/* 80246268 00241EC8  41 82 01 10 */	beq lbl_80246378
/* 8024626C 00241ECC  2C 1D 00 00 */	cmpwi r29, 0
/* 80246270 00241ED0  40 80 00 10 */	bge lbl_80246280
/* 80246274 00241ED4  38 80 FC 1C */	li r4, -996
/* 80246278 00241ED8  48 00 15 BD */	bl func_80247834
/* 8024627C 00241EDC  48 00 00 FC */	b lbl_80246378
lbl_80246280:
/* 80246280 00241EE0  80 83 00 24 */	lwz r4, 0x24(r3)
/* 80246284 00241EE4  4B FF FC 5D */	bl func_80245EE0
/* 80246288 00241EE8  2C 03 00 00 */	cmpwi r3, 0
/* 8024628C 00241EEC  7C 7D 1B 78 */	mr r29, r3
/* 80246290 00241EF0  41 82 00 E8 */	beq lbl_80246378
/* 80246294 00241EF4  80 83 00 0C */	lwz r4, 0xc(r3)
/* 80246298 00241EF8  54 80 03 DF */	rlwinm. r0, r4, 0, 0xf, 0xf
/* 8024629C 00241EFC  40 82 00 68 */	bne lbl_80246304
/* 802462A0 00241F00  80 1E 00 10 */	lwz r0, 0x10(r30)
/* 802462A4 00241F04  2C 00 00 04 */	cmpwi r0, 4
/* 802462A8 00241F08  40 82 00 38 */	bne lbl_802462E0
/* 802462AC 00241F0C  54 80 03 5B */	rlwinm. r0, r4, 0, 0xd, 0xd
/* 802462B0 00241F10  41 82 00 10 */	beq lbl_802462C0
/* 802462B4 00241F14  38 00 00 00 */	li r0, 0
/* 802462B8 00241F18  90 03 00 2C */	stw r0, 0x2c(r3)
/* 802462BC 00241F1C  48 00 00 3C */	b lbl_802462F8
lbl_802462C0:
/* 802462C0 00241F20  48 00 0A 0D */	bl func_80246CCC
/* 802462C4 00241F24  80 9E 00 24 */	lwz r4, 0x24(r30)
/* 802462C8 00241F28  7C 65 1B 78 */	mr r5, r3
/* 802462CC 00241F2C  80 DE 00 3C */	lwz r6, 0x3c(r30)
/* 802462D0 00241F30  7F C3 F3 78 */	mr r3, r30
/* 802462D4 00241F34  4B FF EB 11 */	bl func_80244DE4
/* 802462D8 00241F38  90 7D 00 2C */	stw r3, 0x2c(r29)
/* 802462DC 00241F3C  48 00 00 1C */	b lbl_802462F8
lbl_802462E0:
/* 802462E0 00241F40  80 9E 00 24 */	lwz r4, 0x24(r30)
/* 802462E4 00241F44  7F C3 F3 78 */	mr r3, r30
/* 802462E8 00241F48  80 BD 00 14 */	lwz r5, 0x14(r29)
/* 802462EC 00241F4C  80 DE 00 3C */	lwz r6, 0x3c(r30)
/* 802462F0 00241F50  4B FF EA F5 */	bl func_80244DE4
/* 802462F4 00241F54  90 7D 00 2C */	stw r3, 0x2c(r29)
lbl_802462F8:
/* 802462F8 00241F58  80 1D 00 0C */	lwz r0, 0xc(r29)
/* 802462FC 00241F5C  64 00 00 01 */	oris r0, r0, 1
/* 80246300 00241F60  90 1D 00 0C */	stw r0, 0xc(r29)
lbl_80246304:
/* 80246304 00241F64  80 1D 00 2C */	lwz r0, 0x2c(r29)
/* 80246308 00241F68  2C 00 00 00 */	cmpwi r0, 0
/* 8024630C 00241F6C  41 82 00 54 */	beq lbl_80246360
/* 80246310 00241F70  80 1E 00 10 */	lwz r0, 0x10(r30)
/* 80246314 00241F74  2C 00 00 04 */	cmpwi r0, 4
/* 80246318 00241F78  40 82 00 0C */	bne lbl_80246324
/* 8024631C 00241F7C  83 FD 00 48 */	lwz r31, 0x48(r29)
/* 80246320 00241F80  48 00 00 08 */	b lbl_80246328
lbl_80246324:
/* 80246324 00241F84  83 FD 00 28 */	lwz r31, 0x28(r29)
lbl_80246328:
/* 80246328 00241F88  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 8024632C 00241F8C  80 9D 00 28 */	lwz r4, 0x28(r29)
/* 80246330 00241F90  4B FF FE ED */	bl func_8024621C
/* 80246334 00241F94  80 9D 00 30 */	lwz r4, 0x30(r29)
/* 80246338 00241F98  3D 20 80 24 */	lis r9, lbl_80246200@ha
/* 8024633C 00241F9C  7C 67 1B 78 */	mr r7, r3
/* 80246340 00241FA0  80 DD 00 2C */	lwz r6, 0x2c(r29)
/* 80246344 00241FA4  80 A4 00 08 */	lwz r5, 8(r4)
/* 80246348 00241FA8  7F C3 F3 78 */	mr r3, r30
/* 8024634C 00241FAC  7F A4 EB 78 */	mr r4, r29
/* 80246350 00241FB0  7F E8 FB 78 */	mr r8, r31
/* 80246354 00241FB4  39 29 62 00 */	addi r9, r9, lbl_80246200@l
/* 80246358 00241FB8  4B FF F8 4D */	bl func_80245BA4
/* 8024635C 00241FBC  48 00 00 10 */	b lbl_8024636C
lbl_80246360:
/* 80246360 00241FC0  7F C3 F3 78 */	mr r3, r30
/* 80246364 00241FC4  7F A4 EB 78 */	mr r4, r29
/* 80246368 00241FC8  4B FF FE 55 */	bl func_802461BC
lbl_8024636C:
/* 8024636C 00241FCC  7F C3 F3 78 */	mr r3, r30
/* 80246370 00241FD0  7F A4 EB 78 */	mr r4, r29
/* 80246374 00241FD4  4B FF FB D1 */	bl func_80245F44
lbl_80246378:
/* 80246378 00241FD8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8024637C 00241FDC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80246380 00241FE0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80246384 00241FE4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80246388 00241FE8  7C 08 03 A6 */	mtlr r0
/* 8024638C 00241FEC  38 21 00 20 */	addi r1, r1, 0x20
/* 80246390 00241FF0  4E 80 00 20 */	blr
lbl_80246394:
/* 80246394 00241FF4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80246398 00241FF8  7C 08 02 A6 */	mflr r0
/* 8024639C 00241FFC  2C 03 00 00 */	cmpwi r3, 0
/* 802463A0 00242000  90 01 00 14 */	stw r0, 0x14(r1)
/* 802463A4 00242004  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802463A8 00242008  93 C1 00 08 */	stw r30, 8(r1)
/* 802463AC 0024200C  41 82 00 24 */	beq lbl_802463D0
/* 802463B0 00242010  83 C3 00 14 */	lwz r30, 0x14(r3)
/* 802463B4 00242014  83 E3 00 10 */	lwz r31, 0x10(r3)
/* 802463B8 00242018  7F C4 F3 78 */	mr r4, r30
/* 802463BC 0024201C  7F E3 FB 78 */	mr r3, r31
/* 802463C0 00242020  4B FF FD FD */	bl func_802461BC
/* 802463C4 00242024  7F E3 FB 78 */	mr r3, r31
/* 802463C8 00242028  7F C4 F3 78 */	mr r4, r30
/* 802463CC 0024202C  4B FF FB 79 */	bl func_80245F44
lbl_802463D0:
/* 802463D0 00242030  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802463D4 00242034  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802463D8 00242038  83 C1 00 08 */	lwz r30, 8(r1)
/* 802463DC 0024203C  7C 08 03 A6 */	mtlr r0
/* 802463E0 00242040  38 21 00 10 */	addi r1, r1, 0x10
/* 802463E4 00242044  4E 80 00 20 */	blr

.global func_802463E8
func_802463E8:
/* 802463E8 00242048  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802463EC 0024204C  7C 08 02 A6 */	mflr r0
/* 802463F0 00242050  90 01 00 34 */	stw r0, 0x34(r1)
/* 802463F4 00242054  39 61 00 30 */	addi r11, r1, 0x30
/* 802463F8 00242058  4B F8 0D 31 */	bl _savegpr_27
/* 802463FC 0024205C  7C 7D 1B 78 */	mr r29, r3
/* 80246400 00242060  7C 9E 23 78 */	mr r30, r4
/* 80246404 00242064  48 02 83 59 */	bl OSDisableInterrupts
/* 80246408 00242068  80 1D 00 10 */	lwz r0, 0x10(r29)
/* 8024640C 0024206C  7C 7F 1B 78 */	mr r31, r3
/* 80246410 00242070  2C 00 00 04 */	cmpwi r0, 4
/* 80246414 00242074  40 82 00 E4 */	bne lbl_802464F8
/* 80246418 00242078  80 1E 00 0C */	lwz r0, 0xc(r30)
/* 8024641C 0024207C  54 00 03 19 */	rlwinm. r0, r0, 0, 0xc, 0xc
/* 80246420 00242080  40 82 00 D8 */	bne lbl_802464F8
/* 80246424 00242084  80 7E 00 20 */	lwz r3, 0x20(r30)
/* 80246428 00242088  4B FF F8 8D */	bl func_80245CB4
/* 8024642C 0024208C  A0 83 00 02 */	lhz r4, 2(r3)
/* 80246430 00242090  7C 7C 1B 78 */	mr r28, r3
/* 80246434 00242094  54 80 07 FF */	clrlwi. r0, r4, 0x1f
/* 80246438 00242098  41 82 00 0C */	beq lbl_80246444
/* 8024643C 0024209C  54 80 07 BD */	rlwinm. r0, r4, 0, 0x1e, 0x1e
/* 80246440 002420A0  41 82 00 B8 */	beq lbl_802464F8
lbl_80246444:
/* 80246444 002420A4  80 9D 00 08 */	lwz r4, 8(r29)
/* 80246448 002420A8  7F A3 EB 78 */	mr r3, r29
/* 8024644C 002420AC  48 00 18 11 */	bl func_80247C5C
/* 80246450 002420B0  28 03 FF FF */	cmplwi r3, 0xffff
/* 80246454 002420B4  41 82 00 20 */	beq lbl_80246474
/* 80246458 002420B8  80 9D 00 08 */	lwz r4, 8(r29)
/* 8024645C 002420BC  7F A3 EB 78 */	mr r3, r29
/* 80246460 002420C0  48 00 17 FD */	bl func_80247C5C
/* 80246464 002420C4  7C 64 1B 78 */	mr r4, r3
/* 80246468 002420C8  7F A3 EB 78 */	mr r3, r29
/* 8024646C 002420CC  4B FF FA 75 */	bl func_80245EE0
/* 80246470 002420D0  48 00 00 10 */	b lbl_80246480
lbl_80246474:
/* 80246474 002420D4  7F A3 EB 78 */	mr r3, r29
/* 80246478 002420D8  38 80 00 00 */	li r4, 0
/* 8024647C 002420DC  4B FF FA 65 */	bl func_80245EE0
lbl_80246480:
/* 80246480 002420E0  2C 03 00 00 */	cmpwi r3, 0
/* 80246484 002420E4  40 82 00 20 */	bne lbl_802464A4
/* 80246488 002420E8  7F C3 F3 78 */	mr r3, r30
/* 8024648C 002420EC  38 80 00 03 */	li r4, 3
/* 80246490 002420F0  48 00 13 E5 */	bl func_80247874
/* 80246494 002420F4  7F E3 FB 78 */	mr r3, r31
/* 80246498 002420F8  48 02 82 ED */	bl OSRestoreInterrupts
/* 8024649C 002420FC  38 60 00 00 */	li r3, 0
/* 802464A0 00242100  48 00 01 04 */	b lbl_802465A4
lbl_802464A4:
/* 802464A4 00242104  80 03 00 0C */	lwz r0, 0xc(r3)
/* 802464A8 00242108  54 00 07 39 */	rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 802464AC 0024210C  40 82 00 20 */	bne lbl_802464CC
/* 802464B0 00242110  7F C3 F3 78 */	mr r3, r30
/* 802464B4 00242114  38 80 00 03 */	li r4, 3
/* 802464B8 00242118  48 00 13 BD */	bl func_80247874
/* 802464BC 0024211C  7F E3 FB 78 */	mr r3, r31
/* 802464C0 00242120  48 02 82 C5 */	bl OSRestoreInterrupts
/* 802464C4 00242124  38 60 00 00 */	li r3, 0
/* 802464C8 00242128  48 00 00 DC */	b lbl_802465A4
lbl_802464CC:
/* 802464CC 0024212C  81 9C 00 08 */	lwz r12, 8(r28)
/* 802464D0 00242130  2C 0C 00 00 */	cmpwi r12, 0
/* 802464D4 00242134  41 82 00 18 */	beq lbl_802464EC
/* 802464D8 00242138  80 7D 00 00 */	lwz r3, 0(r29)
/* 802464DC 0024213C  80 9E 00 00 */	lwz r4, 0(r30)
/* 802464E0 00242140  80 BE 00 14 */	lwz r5, 0x14(r30)
/* 802464E4 00242144  7D 89 03 A6 */	mtctr r12
/* 802464E8 00242148  4E 80 04 21 */	bctrl
lbl_802464EC:
/* 802464EC 0024214C  80 1E 00 0C */	lwz r0, 0xc(r30)
/* 802464F0 00242150  64 00 00 08 */	oris r0, r0, 8
/* 802464F4 00242154  90 1E 00 0C */	stw r0, 0xc(r30)
lbl_802464F8:
/* 802464F8 00242158  4B FF EA D1 */	bl func_80244FC8
/* 802464FC 0024215C  2C 03 00 00 */	cmpwi r3, 0
/* 80246500 00242160  7C 7C 1B 78 */	mr r28, r3
/* 80246504 00242164  40 82 00 20 */	bne lbl_80246524
/* 80246508 00242168  7F C3 F3 78 */	mr r3, r30
/* 8024650C 0024216C  38 80 00 03 */	li r4, 3
/* 80246510 00242170  48 00 13 65 */	bl func_80247874
/* 80246514 00242174  7F E3 FB 78 */	mr r3, r31
/* 80246518 00242178  48 02 82 6D */	bl OSRestoreInterrupts
/* 8024651C 0024217C  38 60 00 00 */	li r3, 0
/* 80246520 00242180  48 00 00 84 */	b lbl_802465A4
lbl_80246524:
/* 80246524 00242184  7F C3 F3 78 */	mr r3, r30
/* 80246528 00242188  38 80 00 01 */	li r4, 1
/* 8024652C 0024218C  48 00 13 49 */	bl func_80247874
/* 80246530 00242190  80 1E 00 28 */	lwz r0, 0x28(r30)
/* 80246534 00242194  7F 84 E3 78 */	mr r4, r28
/* 80246538 00242198  38 7E 00 30 */	addi r3, r30, 0x30
/* 8024653C 0024219C  90 1C 00 0C */	stw r0, 0xc(r28)
/* 80246540 002421A0  4B FF EC 49 */	bl func_80245188
/* 80246544 002421A4  80 1E 00 0C */	lwz r0, 0xc(r30)
/* 80246548 002421A8  83 9E 00 28 */	lwz r28, 0x28(r30)
/* 8024654C 002421AC  80 7E 00 14 */	lwz r3, 0x14(r30)
/* 80246550 002421B0  54 1B 7F FE */	rlwinm r27, r0, 0xf, 0x1f, 0x1f
/* 80246554 002421B4  7F 84 E3 78 */	mr r4, r28
/* 80246558 002421B8  4B FF FC C5 */	bl func_8024621C
/* 8024655C 002421BC  3C 80 80 24 */	lis r4, lbl_80246394@ha
/* 80246560 002421C0  3D 40 80 24 */	lis r10, lbl_8024623C@ha
/* 80246564 002421C4  38 84 63 94 */	addi r4, r4, lbl_80246394@l
/* 80246568 002421C8  7C 68 1B 78 */	mr r8, r3
/* 8024656C 002421CC  90 81 00 08 */	stw r4, 8(r1)
/* 80246570 002421D0  7F A3 EB 78 */	mr r3, r29
/* 80246574 002421D4  7F C4 F3 78 */	mr r4, r30
/* 80246578 002421D8  7F 65 DB 78 */	mr r5, r27
/* 8024657C 002421DC  80 FE 00 30 */	lwz r7, 0x30(r30)
/* 80246580 002421E0  7F 89 E3 78 */	mr r9, r28
/* 80246584 002421E4  80 DD 00 24 */	lwz r6, 0x24(r29)
/* 80246588 002421E8  39 4A 62 3C */	addi r10, r10, lbl_8024623C@l
/* 8024658C 002421EC  80 E7 00 08 */	lwz r7, 8(r7)
/* 80246590 002421F0  48 00 04 3D */	bl func_802469CC
/* 80246594 002421F4  7C 7B 1B 78 */	mr r27, r3
/* 80246598 002421F8  7F E3 FB 78 */	mr r3, r31
/* 8024659C 002421FC  48 02 81 E9 */	bl OSRestoreInterrupts
/* 802465A0 00242200  7F 63 DB 78 */	mr r3, r27
lbl_802465A4:
/* 802465A4 00242204  39 61 00 30 */	addi r11, r1, 0x30
/* 802465A8 00242208  4B F8 0B CD */	bl _restgpr_27
/* 802465AC 0024220C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 802465B0 00242210  7C 08 03 A6 */	mtlr r0
/* 802465B4 00242214  38 21 00 30 */	addi r1, r1, 0x30
/* 802465B8 00242218  4E 80 00 20 */	blr

.global func_802465BC
func_802465BC:
/* 802465BC 0024221C  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 802465C0 00242220  7C 08 02 A6 */	mflr r0
/* 802465C4 00242224  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 802465C8 00242228  93 E1 00 9C */	stw r31, 0x9c(r1)
/* 802465CC 0024222C  93 C1 00 98 */	stw r30, 0x98(r1)
/* 802465D0 00242230  93 A1 00 94 */	stw r29, 0x94(r1)
/* 802465D4 00242234  7C 7D 1B 78 */	mr r29, r3
/* 802465D8 00242238  88 03 00 2C */	lbz r0, 0x2c(r3)
/* 802465DC 0024223C  28 00 00 01 */	cmplwi r0, 1
/* 802465E0 00242240  40 82 00 14 */	bne lbl_802465F4
/* 802465E4 00242244  38 80 00 0A */	li r4, 0xa
/* 802465E8 00242248  48 00 12 4D */	bl func_80247834
/* 802465EC 0024224C  38 60 00 00 */	li r3, 0
/* 802465F0 00242250  48 00 01 98 */	b lbl_80246788
lbl_802465F4:
/* 802465F4 00242254  80 83 00 24 */	lwz r4, 0x24(r3)
/* 802465F8 00242258  4B FF F8 E9 */	bl func_80245EE0
/* 802465FC 0024225C  2C 03 00 00 */	cmpwi r3, 0
/* 80246600 00242260  7C 7F 1B 78 */	mr r31, r3
/* 80246604 00242264  40 82 00 0C */	bne lbl_80246610
/* 80246608 00242268  38 60 00 00 */	li r3, 0
/* 8024660C 0024226C  48 00 01 7C */	b lbl_80246788
lbl_80246610:
/* 80246610 00242270  81 1D 00 20 */	lwz r8, 0x20(r29)
/* 80246614 00242274  3C A0 00 01 */	lis r5, 0x0000FFFF@ha
/* 80246618 00242278  80 E3 00 1C */	lwz r7, 0x1c(r3)
/* 8024661C 0024227C  38 C0 00 00 */	li r6, 0
/* 80246620 00242280  3C 80 FF 71 */	lis r4, 0xFF70FFF7@ha
/* 80246624 00242284  38 A5 FF FF */	addi r5, r5, 0x0000FFFF@l
/* 80246628 00242288  90 C3 00 28 */	stw r6, 0x28(r3)
/* 8024662C 0024228C  38 04 FF F7 */	addi r0, r4, 0xFF70FFF7@l
/* 80246630 00242290  7F C8 3A 14 */	add r30, r8, r7
/* 80246634 00242294  90 C3 00 2C */	stw r6, 0x2c(r3)
/* 80246638 00242298  90 C3 00 30 */	stw r6, 0x30(r3)
/* 8024663C 0024229C  90 C3 00 34 */	stw r6, 0x34(r3)
/* 80246640 002422A0  90 C3 00 38 */	stw r6, 0x38(r3)
/* 80246644 002422A4  90 C3 00 3C */	stw r6, 0x3c(r3)
/* 80246648 002422A8  90 A3 00 40 */	stw r5, 0x40(r3)
/* 8024664C 002422AC  80 83 00 0C */	lwz r4, 0xc(r3)
/* 80246650 002422B0  7C 80 00 38 */	and r0, r4, r0
/* 80246654 002422B4  60 00 08 00 */	ori r0, r0, 0x800
/* 80246658 002422B8  90 03 00 0C */	stw r0, 0xc(r3)
/* 8024665C 002422BC  90 C3 00 44 */	stw r6, 0x44(r3)
/* 80246660 002422C0  90 C3 00 4C */	stw r6, 0x4c(r3)
/* 80246664 002422C4  90 C3 00 48 */	stw r6, 0x48(r3)
/* 80246668 002422C8  90 C3 00 50 */	stw r6, 0x50(r3)
/* 8024666C 002422CC  80 03 00 14 */	lwz r0, 0x14(r3)
/* 80246670 002422D0  90 03 00 54 */	stw r0, 0x54(r3)
/* 80246674 002422D4  80 1D 00 10 */	lwz r0, 0x10(r29)
/* 80246678 002422D8  2C 00 00 04 */	cmpwi r0, 4
/* 8024667C 002422DC  40 82 00 2C */	bne lbl_802466A8
/* 80246680 002422E0  80 63 00 20 */	lwz r3, 0x20(r3)
/* 80246684 002422E4  4B FF F6 31 */	bl func_80245CB4
/* 80246688 002422E8  A0 63 00 02 */	lhz r3, 2(r3)
/* 8024668C 002422EC  54 60 07 FF */	clrlwi. r0, r3, 0x1f
/* 80246690 002422F0  41 82 00 18 */	beq lbl_802466A8
/* 80246694 002422F4  54 60 07 BD */	rlwinm. r0, r3, 0, 0x1e, 0x1e
/* 80246698 002422F8  40 82 00 10 */	bne lbl_802466A8
/* 8024669C 002422FC  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 802466A0 00242300  64 00 00 04 */	oris r0, r0, 4
/* 802466A4 00242304  90 1F 00 0C */	stw r0, 0xc(r31)
lbl_802466A8:
/* 802466A8 00242308  7F A3 EB 78 */	mr r3, r29
/* 802466AC 0024230C  4B FF F8 05 */	bl func_80245EB0
/* 802466B0 00242310  80 03 00 10 */	lwz r0, 0x10(r3)
/* 802466B4 00242314  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 802466B8 00242318  41 82 00 50 */	beq lbl_80246708
/* 802466BC 0024231C  3C 80 80 42 */	lis r4, lbl_80424958@ha
/* 802466C0 00242320  7F C5 F3 78 */	mr r5, r30
/* 802466C4 00242324  38 61 00 08 */	addi r3, r1, 8
/* 802466C8 00242328  38 84 49 58 */	addi r4, r4, lbl_80424958@l
/* 802466CC 0024232C  4C C6 31 82 */	crclr 6
/* 802466D0 00242330  4B F8 64 2D */	bl sprintf
/* 802466D4 00242334  38 61 00 08 */	addi r3, r1, 8
/* 802466D8 00242338  4B F9 5C A9 */	bl func_801DC380
/* 802466DC 0024233C  28 03 00 01 */	cmplwi r3, 1
/* 802466E0 00242340  40 82 00 28 */	bne lbl_80246708
/* 802466E4 00242344  38 61 00 08 */	addi r3, r1, 8
/* 802466E8 00242348  4B F9 5B E9 */	bl func_801DC2D0
/* 802466EC 0024234C  90 7F 00 38 */	stw r3, 0x38(r31)
/* 802466F0 00242350  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 802466F4 00242354  54 00 00 7E */	clrlwi r0, r0, 1
/* 802466F8 00242358  90 1F 00 0C */	stw r0, 0xc(r31)
/* 802466FC 0024235C  4B F9 60 65 */	bl func_801DC760
/* 80246700 00242360  90 7F 00 14 */	stw r3, 0x14(r31)
/* 80246704 00242364  90 7F 00 08 */	stw r3, 8(r31)
lbl_80246708:
/* 80246708 00242368  80 1D 00 10 */	lwz r0, 0x10(r29)
/* 8024670C 0024236C  2C 00 00 04 */	cmpwi r0, 4
/* 80246710 00242370  41 82 00 34 */	beq lbl_80246744
/* 80246714 00242374  80 7D 00 00 */	lwz r3, 0(r29)
/* 80246718 00242378  80 9D 00 24 */	lwz r4, 0x24(r29)
/* 8024671C 0024237C  4B FF F2 F1 */	bl func_80245A0C
/* 80246720 00242380  28 03 00 01 */	cmplwi r3, 1
/* 80246724 00242384  40 82 00 20 */	bne lbl_80246744
/* 80246728 00242388  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 8024672C 0024238C  38 A0 00 01 */	li r5, 1
/* 80246730 00242390  64 00 00 02 */	oris r0, r0, 2
/* 80246734 00242394  90 1F 00 0C */	stw r0, 0xc(r31)
/* 80246738 00242398  80 7D 00 00 */	lwz r3, 0(r29)
/* 8024673C 0024239C  80 9D 00 24 */	lwz r4, 0x24(r29)
/* 80246740 002423A0  4B FF EF 4D */	bl func_8024568C
lbl_80246744:
/* 80246744 002423A4  80 1D 00 10 */	lwz r0, 0x10(r29)
/* 80246748 002423A8  2C 00 00 01 */	cmpwi r0, 1
/* 8024674C 002423AC  41 82 00 18 */	beq lbl_80246764
/* 80246750 002423B0  2C 00 00 04 */	cmpwi r0, 4
/* 80246754 002423B4  40 82 00 28 */	bne lbl_8024677C
/* 80246758 002423B8  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 8024675C 002423BC  54 00 03 5B */	rlwinm. r0, r0, 0, 0xd, 0xd
/* 80246760 002423C0  41 82 00 1C */	beq lbl_8024677C
lbl_80246764:
/* 80246764 002423C4  7F A3 EB 78 */	mr r3, r29
/* 80246768 002423C8  4B FF F6 45 */	bl func_80245DAC
/* 8024676C 002423CC  2C 03 00 00 */	cmpwi r3, 0
/* 80246770 002423D0  40 82 00 0C */	bne lbl_8024677C
/* 80246774 002423D4  38 60 00 00 */	li r3, 0
/* 80246778 002423D8  48 00 00 10 */	b lbl_80246788
lbl_8024677C:
/* 8024677C 002423DC  7F A3 EB 78 */	mr r3, r29
/* 80246780 002423E0  7F E4 FB 78 */	mr r4, r31
/* 80246784 002423E4  4B FF FC 65 */	bl func_802463E8
lbl_80246788:
/* 80246788 002423E8  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 8024678C 002423EC  83 E1 00 9C */	lwz r31, 0x9c(r1)
/* 80246790 002423F0  83 C1 00 98 */	lwz r30, 0x98(r1)
/* 80246794 002423F4  83 A1 00 94 */	lwz r29, 0x94(r1)
/* 80246798 002423F8  7C 08 03 A6 */	mtlr r0
/* 8024679C 002423FC  38 21 00 A0 */	addi r1, r1, 0xa0
/* 802467A0 00242400  4E 80 00 20 */	blr

.global func_802467A4
func_802467A4:
/* 802467A4 00242404  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802467A8 00242408  7C 08 02 A6 */	mflr r0
/* 802467AC 0024240C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802467B0 00242410  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802467B4 00242414  93 C1 00 08 */	stw r30, 8(r1)
/* 802467B8 00242418  7C 7E 1B 78 */	mr r30, r3
/* 802467BC 0024241C  48 02 7F A1 */	bl OSDisableInterrupts
/* 802467C0 00242420  80 1E 00 10 */	lwz r0, 0x10(r30)
/* 802467C4 00242424  38 80 00 01 */	li r4, 1
/* 802467C8 00242428  98 9E 00 2E */	stb r4, 0x2e(r30)
/* 802467CC 0024242C  7C 7F 1B 78 */	mr r31, r3
/* 802467D0 00242430  2C 00 00 03 */	cmpwi r0, 3
/* 802467D4 00242434  41 82 01 20 */	beq lbl_802468F4
/* 802467D8 00242438  40 80 00 14 */	bge lbl_802467EC
/* 802467DC 0024243C  2C 00 00 01 */	cmpwi r0, 1
/* 802467E0 00242440  41 82 00 14 */	beq lbl_802467F4
/* 802467E4 00242444  40 80 00 84 */	bge lbl_80246868
/* 802467E8 00242448  48 00 01 0C */	b lbl_802468F4
lbl_802467EC:
/* 802467EC 0024244C  2C 00 00 05 */	cmpwi r0, 5
/* 802467F0 00242450  40 80 01 04 */	bge lbl_802468F4
lbl_802467F4:
/* 802467F4 00242454  80 9E 00 08 */	lwz r4, 8(r30)
/* 802467F8 00242458  7F C3 F3 78 */	mr r3, r30
/* 802467FC 0024245C  48 00 14 61 */	bl func_80247C5C
/* 80246800 00242460  28 03 FF FF */	cmplwi r3, 0xffff
/* 80246804 00242464  41 82 00 58 */	beq lbl_8024685C
/* 80246808 00242468  80 9E 00 44 */	lwz r4, 0x44(r30)
/* 8024680C 0024246C  2C 04 00 00 */	cmpwi r4, 0
/* 80246810 00242470  41 82 00 38 */	beq lbl_80246848
/* 80246814 00242474  80 64 00 00 */	lwz r3, 0(r4)
/* 80246818 00242478  2C 03 00 00 */	cmpwi r3, 0
/* 8024681C 0024247C  41 82 00 14 */	beq lbl_80246830
/* 80246820 00242480  38 04 00 04 */	addi r0, r4, 4
/* 80246824 00242484  90 7E 00 08 */	stw r3, 8(r30)
/* 80246828 00242488  90 1E 00 44 */	stw r0, 0x44(r30)
/* 8024682C 0024248C  48 00 00 1C */	b lbl_80246848
lbl_80246830:
/* 80246830 00242490  38 00 00 00 */	li r0, 0
/* 80246834 00242494  7F C3 F3 78 */	mr r3, r30
/* 80246838 00242498  90 1E 00 44 */	stw r0, 0x44(r30)
/* 8024683C 0024249C  38 80 00 0A */	li r4, 0xa
/* 80246840 002424A0  48 00 0F F5 */	bl func_80247834
/* 80246844 002424A4  48 00 00 B0 */	b lbl_802468F4
lbl_80246848:
/* 80246848 002424A8  80 9E 00 08 */	lwz r4, 8(r30)
/* 8024684C 002424AC  7F C3 F3 78 */	mr r3, r30
/* 80246850 002424B0  48 00 33 05 */	bl func_80249B54
/* 80246854 002424B4  90 7E 00 24 */	stw r3, 0x24(r30)
/* 80246858 002424B8  90 7E 00 28 */	stw r3, 0x28(r30)
lbl_8024685C:
/* 8024685C 002424BC  7F C3 F3 78 */	mr r3, r30
/* 80246860 002424C0  4B FF FD 5D */	bl func_802465BC
/* 80246864 002424C4  48 00 00 90 */	b lbl_802468F4
lbl_80246868:
/* 80246868 002424C8  80 9E 00 08 */	lwz r4, 8(r30)
/* 8024686C 002424CC  7F C3 F3 78 */	mr r3, r30
/* 80246870 002424D0  48 00 13 ED */	bl func_80247C5C
/* 80246874 002424D4  28 03 FF FF */	cmplwi r3, 0xffff
/* 80246878 002424D8  41 82 00 54 */	beq lbl_802468CC
/* 8024687C 002424DC  80 9E 00 08 */	lwz r4, 8(r30)
/* 80246880 002424E0  7F C3 F3 78 */	mr r3, r30
/* 80246884 002424E4  48 00 13 D9 */	bl func_80247C5C
/* 80246888 002424E8  7C 64 1B 78 */	mr r4, r3
/* 8024688C 002424EC  80 7E 00 00 */	lwz r3, 0(r30)
/* 80246890 002424F0  4B FF F1 7D */	bl func_80245A0C
/* 80246894 002424F4  28 03 00 01 */	cmplwi r3, 1
/* 80246898 002424F8  40 82 00 14 */	bne lbl_802468AC
/* 8024689C 002424FC  7F C3 F3 78 */	mr r3, r30
/* 802468A0 00242500  38 80 00 0A */	li r4, 0xa
/* 802468A4 00242504  48 00 0F 91 */	bl func_80247834
/* 802468A8 00242508  48 00 00 4C */	b lbl_802468F4
lbl_802468AC:
/* 802468AC 0024250C  80 9E 00 08 */	lwz r4, 8(r30)
/* 802468B0 00242510  7F C3 F3 78 */	mr r3, r30
/* 802468B4 00242514  48 00 13 A9 */	bl func_80247C5C
/* 802468B8 00242518  90 7E 00 24 */	stw r3, 0x24(r30)
/* 802468BC 0024251C  90 7E 00 28 */	stw r3, 0x28(r30)
/* 802468C0 00242520  7F C3 F3 78 */	mr r3, r30
/* 802468C4 00242524  4B FF FC F9 */	bl func_802465BC
/* 802468C8 00242528  48 00 00 2C */	b lbl_802468F4
lbl_802468CC:
/* 802468CC 0024252C  7F C3 F3 78 */	mr r3, r30
/* 802468D0 00242530  4B FF F5 51 */	bl func_80245E20
/* 802468D4 00242534  28 03 00 01 */	cmplwi r3, 1
/* 802468D8 00242538  40 82 00 10 */	bne lbl_802468E8
/* 802468DC 0024253C  7F C3 F3 78 */	mr r3, r30
/* 802468E0 00242540  4B FF FC DD */	bl func_802465BC
/* 802468E4 00242544  48 00 00 10 */	b lbl_802468F4
lbl_802468E8:
/* 802468E8 00242548  7F C3 F3 78 */	mr r3, r30
/* 802468EC 0024254C  38 80 00 0A */	li r4, 0xa
/* 802468F0 00242550  48 00 0F 45 */	bl func_80247834
lbl_802468F4:
/* 802468F4 00242554  7F E3 FB 78 */	mr r3, r31
/* 802468F8 00242558  48 02 7E 8D */	bl OSRestoreInterrupts
/* 802468FC 0024255C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80246900 00242560  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80246904 00242564  83 C1 00 08 */	lwz r30, 8(r1)
/* 80246908 00242568  7C 08 03 A6 */	mtlr r0
/* 8024690C 0024256C  38 21 00 10 */	addi r1, r1, 0x10
/* 80246910 00242570  4E 80 00 20 */	blr
lbl_80246914:
/* 80246914 00242574  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80246918 00242578  7C 08 02 A6 */	mflr r0
/* 8024691C 0024257C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80246920 00242580  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80246924 00242584  93 C1 00 08 */	stw r30, 8(r1)
/* 80246928 00242588  7C 7E 1B 78 */	mr r30, r3
/* 8024692C 0024258C  7C 83 23 78 */	mr r3, r4
/* 80246930 00242590  48 00 0A 45 */	bl func_80247374
/* 80246934 00242594  2C 03 00 00 */	cmpwi r3, 0
/* 80246938 00242598  7C 7F 1B 78 */	mr r31, r3
/* 8024693C 0024259C  41 82 00 64 */	beq lbl_802469A0
/* 80246940 002425A0  2C 1E 00 00 */	cmpwi r30, 0
/* 80246944 002425A4  40 80 00 10 */	bge lbl_80246954
/* 80246948 002425A8  38 80 FC 1C */	li r4, -996
/* 8024694C 002425AC  48 00 0E E9 */	bl func_80247834
/* 80246950 002425B0  48 00 00 50 */	b lbl_802469A0
lbl_80246954:
/* 80246954 002425B4  80 A3 00 1C */	lwz r5, 0x1c(r3)
/* 80246958 002425B8  3C 80 00 01 */	lis r4, 0x0000FFFF@ha
/* 8024695C 002425BC  80 C3 00 3C */	lwz r6, 0x3c(r3)
/* 80246960 002425C0  38 84 FF FF */	addi r4, r4, 0x0000FFFF@l
/* 80246964 002425C4  80 A5 00 08 */	lwz r5, 8(r5)
/* 80246968 002425C8  4B FF E4 7D */	bl func_80244DE4
/* 8024696C 002425CC  2C 03 00 00 */	cmpwi r3, 0
/* 80246970 002425D0  7C 66 1B 78 */	mr r6, r3
/* 80246974 002425D4  41 82 00 24 */	beq lbl_80246998
/* 80246978 002425D8  80 9F 00 1C */	lwz r4, 0x1c(r31)
/* 8024697C 002425DC  7F E3 FB 78 */	mr r3, r31
/* 80246980 002425E0  80 BF 00 20 */	lwz r5, 0x20(r31)
/* 80246984 002425E4  39 00 00 00 */	li r8, 0
/* 80246988 002425E8  80 E4 00 08 */	lwz r7, 8(r4)
/* 8024698C 002425EC  38 80 00 00 */	li r4, 0
/* 80246990 002425F0  39 20 00 00 */	li r9, 0
/* 80246994 002425F4  4B FF F2 11 */	bl func_80245BA4
lbl_80246998:
/* 80246998 002425F8  7F E3 FB 78 */	mr r3, r31
/* 8024699C 002425FC  4B FF FE 09 */	bl func_802467A4
lbl_802469A0:
/* 802469A0 00242600  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802469A4 00242604  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802469A8 00242608  83 C1 00 08 */	lwz r30, 8(r1)
/* 802469AC 0024260C  7C 08 03 A6 */	mtlr r0
/* 802469B0 00242610  38 21 00 10 */	addi r1, r1, 0x10
/* 802469B4 00242614  4E 80 00 20 */	blr
lbl_802469B8:
/* 802469B8 00242618  2C 03 00 00 */	cmpwi r3, 0
/* 802469BC 0024261C  4D 82 00 20 */	beqlr
/* 802469C0 00242620  80 63 00 10 */	lwz r3, 0x10(r3)
/* 802469C4 00242624  4B FF FD E0 */	b func_802467A4
/* 802469C8 00242628  4E 80 00 20 */	blr

.global func_802469CC
func_802469CC:
/* 802469CC 0024262C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 802469D0 00242630  7C 08 02 A6 */	mflr r0
/* 802469D4 00242634  90 01 00 34 */	stw r0, 0x34(r1)
/* 802469D8 00242638  39 61 00 30 */	addi r11, r1, 0x30
/* 802469DC 0024263C  4B F8 07 45 */	bl _savegpr_25
/* 802469E0 00242640  28 05 00 01 */	cmplwi r5, 1
/* 802469E4 00242644  90 C3 00 04 */	stw r6, 4(r3)
/* 802469E8 00242648  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 802469EC 0024264C  7C 79 1B 78 */	mr r25, r3
/* 802469F0 00242650  7C 9A 23 78 */	mr r26, r4
/* 802469F4 00242654  7C FB 3B 78 */	mr r27, r7
/* 802469F8 00242658  7D 1C 43 78 */	mr r28, r8
/* 802469FC 0024265C  7D 3D 4B 78 */	mr r29, r9
/* 80246A00 00242660  40 82 00 7C */	bne lbl_80246A7C
/* 80246A04 00242664  80 0D A5 78 */	lwz r0, lbl_8063F838-_SDA_BASE_(r13)
/* 80246A08 00242668  2C 00 00 00 */	cmpwi r0, 0
/* 80246A0C 0024266C  40 82 00 0C */	bne lbl_80246A18
/* 80246A10 00242670  48 02 7D 61 */	bl OSEnableInterrupts
/* 80246A14 00242674  7C 7F 1B 78 */	mr r31, r3
lbl_80246A18:
/* 80246A18 00242678  7F 23 CB 78 */	mr r3, r25
/* 80246A1C 0024267C  7F 44 D3 78 */	mr r4, r26
/* 80246A20 00242680  7F 65 DB 78 */	mr r5, r27
/* 80246A24 00242684  7F 86 E3 78 */	mr r6, r28
/* 80246A28 00242688  7F A7 EB 78 */	mr r7, r29
/* 80246A2C 0024268C  7F C8 F3 78 */	mr r8, r30
/* 80246A30 00242690  4B FF F1 1D */	bl func_80245B4C
/* 80246A34 00242694  2C 03 00 00 */	cmpwi r3, 0
/* 80246A38 00242698  40 82 00 2C */	bne lbl_80246A64
/* 80246A3C 0024269C  7F 23 CB 78 */	mr r3, r25
/* 80246A40 002426A0  38 80 FC 1C */	li r4, -996
/* 80246A44 002426A4  48 00 0D F1 */	bl func_80247834
/* 80246A48 002426A8  80 0D A5 78 */	lwz r0, lbl_8063F838-_SDA_BASE_(r13)
/* 80246A4C 002426AC  2C 00 00 00 */	cmpwi r0, 0
/* 80246A50 002426B0  40 82 00 0C */	bne lbl_80246A5C
/* 80246A54 002426B4  7F E3 FB 78 */	mr r3, r31
/* 80246A58 002426B8  48 02 7D 2D */	bl OSRestoreInterrupts
lbl_80246A5C:
/* 80246A5C 002426BC  38 60 00 00 */	li r3, 0
/* 80246A60 002426C0  48 00 00 AC */	b lbl_80246B0C
lbl_80246A64:
/* 80246A64 002426C4  80 0D A5 78 */	lwz r0, lbl_8063F838-_SDA_BASE_(r13)
/* 80246A68 002426C8  2C 00 00 00 */	cmpwi r0, 0
/* 80246A6C 002426CC  40 82 00 9C */	bne lbl_80246B08
/* 80246A70 002426D0  7F E3 FB 78 */	mr r3, r31
/* 80246A74 002426D4  48 02 7D 11 */	bl OSRestoreInterrupts
/* 80246A78 002426D8  48 00 00 90 */	b lbl_80246B08
lbl_80246A7C:
/* 80246A7C 002426DC  2C 04 00 00 */	cmpwi r4, 0
/* 80246A80 002426E0  41 82 00 44 */	beq lbl_80246AC4
/* 80246A84 002426E4  80 04 00 38 */	lwz r0, 0x38(r4)
/* 80246A88 002426E8  2C 00 00 00 */	cmpwi r0, 0
/* 80246A8C 002426EC  41 82 00 38 */	beq lbl_80246AC4
/* 80246A90 002426F0  7C 03 03 78 */	mr r3, r0
/* 80246A94 002426F4  7F 64 DB 78 */	mr r4, r27
/* 80246A98 002426F8  7F 85 E3 78 */	mr r5, r28
/* 80246A9C 002426FC  7F A6 EB 78 */	mr r6, r29
/* 80246AA0 00242700  7D 47 53 78 */	mr r7, r10
/* 80246AA4 00242704  4B F9 5A 4D */	bl func_801DC4F0
/* 80246AA8 00242708  2C 03 00 00 */	cmpwi r3, 0
/* 80246AAC 0024270C  40 82 00 5C */	bne lbl_80246B08
/* 80246AB0 00242710  7F 23 CB 78 */	mr r3, r25
/* 80246AB4 00242714  38 80 FC 1C */	li r4, -996
/* 80246AB8 00242718  48 00 0D 7D */	bl func_80247834
/* 80246ABC 0024271C  38 60 00 00 */	li r3, 0
/* 80246AC0 00242720  48 00 00 4C */	b lbl_80246B0C
lbl_80246AC4:
/* 80246AC4 00242724  2C 04 00 00 */	cmpwi r4, 0
/* 80246AC8 00242728  41 82 00 0C */	beq lbl_80246AD4
/* 80246ACC 0024272C  80 04 00 04 */	lwz r0, 4(r4)
/* 80246AD0 00242730  7F A9 02 14 */	add r29, r9, r0
lbl_80246AD4:
/* 80246AD4 00242734  80 63 00 0C */	lwz r3, 0xc(r3)
/* 80246AD8 00242738  7F 64 DB 78 */	mr r4, r27
/* 80246ADC 0024273C  7F 85 E3 78 */	mr r5, r28
/* 80246AE0 00242740  7F A6 EB 78 */	mr r6, r29
/* 80246AE4 00242744  7D 47 53 78 */	mr r7, r10
/* 80246AE8 00242748  4B F9 5A 09 */	bl func_801DC4F0
/* 80246AEC 0024274C  2C 03 00 00 */	cmpwi r3, 0
/* 80246AF0 00242750  40 82 00 18 */	bne lbl_80246B08
/* 80246AF4 00242754  7F 23 CB 78 */	mr r3, r25
/* 80246AF8 00242758  38 80 FC 1C */	li r4, -996
/* 80246AFC 0024275C  48 00 0D 39 */	bl func_80247834
/* 80246B00 00242760  38 60 00 00 */	li r3, 0
/* 80246B04 00242764  48 00 00 08 */	b lbl_80246B0C
lbl_80246B08:
/* 80246B08 00242768  38 60 00 01 */	li r3, 1
lbl_80246B0C:
/* 80246B0C 0024276C  39 61 00 30 */	addi r11, r1, 0x30
/* 80246B10 00242770  4B F8 06 5D */	bl _restgpr_25
/* 80246B14 00242774  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80246B18 00242778  7C 08 03 A6 */	mtlr r0
/* 80246B1C 0024277C  38 21 00 30 */	addi r1, r1, 0x30
/* 80246B20 00242780  4E 80 00 20 */	blr

.global func_80246B24
func_80246B24:
/* 80246B24 00242784  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80246B28 00242788  7C 08 02 A6 */	mflr r0
/* 80246B2C 0024278C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80246B30 00242790  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80246B34 00242794  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80246B38 00242798  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80246B3C 0024279C  93 81 00 10 */	stw r28, 0x10(r1)
/* 80246B40 002427A0  7C 7C 1B 78 */	mr r28, r3
/* 80246B44 002427A4  80 03 00 20 */	lwz r0, 0x20(r3)
/* 80246B48 002427A8  2C 00 00 00 */	cmpwi r0, 0
/* 80246B4C 002427AC  41 82 00 18 */	beq lbl_80246B64
/* 80246B50 002427B0  88 03 00 2E */	lbz r0, 0x2e(r3)
/* 80246B54 002427B4  28 00 00 01 */	cmplwi r0, 1
/* 80246B58 002427B8  40 82 00 0C */	bne lbl_80246B64
/* 80246B5C 002427BC  4B FF FC 49 */	bl func_802467A4
/* 80246B60 002427C0  48 00 00 DC */	b lbl_80246C3C
lbl_80246B64:
/* 80246B64 002427C4  3B E0 00 00 */	li r31, 0
lbl_80246B68:
/* 80246B68 002427C8  7F 83 E3 78 */	mr r3, r28
/* 80246B6C 002427CC  4B FF DF 45 */	bl func_80244AB0
/* 80246B70 002427D0  28 03 00 01 */	cmplwi r3, 1
/* 80246B74 002427D4  41 82 00 4C */	beq lbl_80246BC0
/* 80246B78 002427D8  48 02 7B E5 */	bl OSDisableInterrupts
/* 80246B7C 002427DC  7C 7D 1B 78 */	mr r29, r3
/* 80246B80 002427E0  48 00 0A 41 */	bl func_802475C0
/* 80246B84 002427E4  2C 03 00 00 */	cmpwi r3, 0
/* 80246B88 002427E8  7C 7E 1B 78 */	mr r30, r3
/* 80246B8C 002427EC  40 82 00 24 */	bne lbl_80246BB0
/* 80246B90 002427F0  7F A3 EB 78 */	mr r3, r29
/* 80246B94 002427F4  48 02 7B F1 */	bl OSRestoreInterrupts
/* 80246B98 002427F8  2C 1E 00 00 */	cmpwi r30, 0
/* 80246B9C 002427FC  41 82 00 A0 */	beq lbl_80246C3C
/* 80246BA0 00242800  7F 83 E3 78 */	mr r3, r28
/* 80246BA4 00242804  38 80 FC 1C */	li r4, -996
/* 80246BA8 00242808  48 00 0C 8D */	bl func_80247834
/* 80246BAC 0024280C  48 00 00 90 */	b lbl_80246C3C
lbl_80246BB0:
/* 80246BB0 00242810  93 E3 00 14 */	stw r31, 0x14(r3)
/* 80246BB4 00242814  7F A3 EB 78 */	mr r3, r29
/* 80246BB8 00242818  48 02 7B CD */	bl OSRestoreInterrupts
/* 80246BBC 0024281C  4B FF FF AC */	b lbl_80246B68
lbl_80246BC0:
/* 80246BC0 00242820  48 02 7B 9D */	bl OSDisableInterrupts
/* 80246BC4 00242824  7C 7E 1B 78 */	mr r30, r3
/* 80246BC8 00242828  3F E0 00 01 */	lis r31, 0x0000FFFF@ha
/* 80246BCC 0024282C  80 7C 00 00 */	lwz r3, 0(r28)
/* 80246BD0 00242830  38 9F FF FF */	addi r4, r31, 0x0000FFFF@l
/* 80246BD4 00242834  3B A0 00 00 */	li r29, 0
/* 80246BD8 00242838  4B FF EE 35 */	bl func_80245A0C
/* 80246BDC 0024283C  28 03 00 01 */	cmplwi r3, 1
/* 80246BE0 00242840  40 82 00 18 */	bne lbl_80246BF8
/* 80246BE4 00242844  80 7C 00 00 */	lwz r3, 0(r28)
/* 80246BE8 00242848  38 9F FF FF */	addi r4, r31, -1
/* 80246BEC 0024284C  38 A0 00 01 */	li r5, 1
/* 80246BF0 00242850  4B FF EA 9D */	bl func_8024568C
/* 80246BF4 00242854  3B A0 00 01 */	li r29, 1
lbl_80246BF8:
/* 80246BF8 00242858  7F C3 F3 78 */	mr r3, r30
/* 80246BFC 0024285C  48 02 7B 89 */	bl OSRestoreInterrupts
/* 80246C00 00242860  3C 60 80 24 */	lis r3, lbl_802469B8@ha
/* 80246C04 00242864  3C 80 00 01 */	lis r4, 0x0000FFFF@ha
/* 80246C08 00242868  38 63 69 B8 */	addi r3, r3, lbl_802469B8@l
/* 80246C0C 0024286C  3D 40 80 24 */	lis r10, lbl_80246914@ha
/* 80246C10 00242870  90 61 00 08 */	stw r3, 8(r1)
/* 80246C14 00242874  38 C4 FF FF */	addi r6, r4, 0x0000FFFF@l
/* 80246C18 00242878  7F 83 E3 78 */	mr r3, r28
/* 80246C1C 0024287C  7F A5 EB 78 */	mr r5, r29
/* 80246C20 00242880  81 1C 00 1C */	lwz r8, 0x1c(r28)
/* 80246C24 00242884  39 4A 69 14 */	addi r10, r10, lbl_80246914@l
/* 80246C28 00242888  80 FC 00 20 */	lwz r7, 0x20(r28)
/* 80246C2C 0024288C  38 80 00 00 */	li r4, 0
/* 80246C30 00242890  81 08 00 08 */	lwz r8, 8(r8)
/* 80246C34 00242894  39 20 00 00 */	li r9, 0
/* 80246C38 00242898  4B FF FD 95 */	bl func_802469CC
lbl_80246C3C:
/* 80246C3C 0024289C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80246C40 002428A0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80246C44 002428A4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80246C48 002428A8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80246C4C 002428AC  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80246C50 002428B0  7C 08 03 A6 */	mtlr r0
/* 80246C54 002428B4  38 21 00 20 */	addi r1, r1, 0x20
/* 80246C58 002428B8  4E 80 00 20 */	blr

.global func_80246C5C
func_80246C5C:
/* 80246C5C 002428BC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80246C60 002428C0  7C 08 02 A6 */	mflr r0
/* 80246C64 002428C4  3C A0 80 24 */	lis r5, lbl_80245C60@ha
/* 80246C68 002428C8  38 80 00 00 */	li r4, 0
/* 80246C6C 002428CC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80246C70 002428D0  38 A5 5C 60 */	addi r5, r5, lbl_80245C60@l
/* 80246C74 002428D4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80246C78 002428D8  7C 7F 1B 78 */	mr r31, r3
/* 80246C7C 002428DC  80 63 00 0C */	lwz r3, 0xc(r3)
/* 80246C80 002428E0  4B F9 5B 79 */	bl func_801DC7F8
/* 80246C84 002428E4  2C 03 00 00 */	cmpwi r3, 0
/* 80246C88 002428E8  40 82 00 10 */	bne lbl_80246C98
/* 80246C8C 002428EC  7F E3 FB 78 */	mr r3, r31
/* 80246C90 002428F0  38 80 FC 1E */	li r4, -994
/* 80246C94 002428F4  48 00 0B A1 */	bl func_80247834
lbl_80246C98:
/* 80246C98 002428F8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80246C9C 002428FC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80246CA0 00242900  7C 08 03 A6 */	mtlr r0
/* 80246CA4 00242904  38 21 00 10 */	addi r1, r1, 0x10
/* 80246CA8 00242908  4E 80 00 20 */	blr

.global func_80246CAC
func_80246CAC:
/* 80246CAC 0024290C  38 A0 00 01 */	li r5, 1
/* 80246CB0 00242910  38 6D A5 70 */	addi r3, r13, lbl_8063F830-_SDA_BASE_
/* 80246CB4 00242914  38 80 00 04 */	li r4, 4
/* 80246CB8 00242918  38 00 00 00 */	li r0, 0
/* 80246CBC 0024291C  98 AD A5 70 */	stb r5, lbl_8063F830-_SDA_BASE_(r13)
/* 80246CC0 00242920  B0 83 00 02 */	sth r4, 2(r3)
/* 80246CC4 00242924  98 03 00 04 */	stb r0, 4(r3)
/* 80246CC8 00242928  4E 80 00 20 */	blr