summaryrefslogtreecommitdiff
path: root/asm/SDK/NWC24/NWC24FileAPI.s
blob: 41f1625a700ab737bb1f923d3777c338b5b0a7a9 (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
.include "macros.inc"

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

.global NWC24FOpen
NWC24FOpen:
/* 80301B48 002FD7A8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80301B4C 002FD7AC  7C 08 02 A6 */	mflr r0
/* 80301B50 002FD7B0  28 05 00 09 */	cmplwi r5, 9
/* 80301B54 002FD7B4  90 01 00 24 */	stw r0, 0x24(r1)
/* 80301B58 002FD7B8  38 00 00 00 */	li r0, 0
/* 80301B5C 002FD7BC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80301B60 002FD7C0  7C BF 2B 78 */	mr r31, r5
/* 80301B64 002FD7C4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80301B68 002FD7C8  7C 9E 23 78 */	mr r30, r4
/* 80301B6C 002FD7CC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80301B70 002FD7D0  7C 7D 1B 78 */	mr r29, r3
/* 80301B74 002FD7D4  80 CD AF 80 */	lwz r6, lbl_80640240-_SDA_BASE_(r13)
/* 80301B78 002FD7D8  38 C6 00 01 */	addi r6, r6, 1
/* 80301B7C 002FD7DC  64 C4 80 00 */	oris r4, r6, 0x8000
/* 80301B80 002FD7E0  90 8D AF 80 */	stw r4, lbl_80640240-_SDA_BASE_(r13)
/* 80301B84 002FD7E4  90 83 00 00 */	stw r4, 0(r3)
/* 80301B88 002FD7E8  90 03 00 08 */	stw r0, 8(r3)
/* 80301B8C 002FD7EC  90 A3 00 04 */	stw r5, 4(r3)
/* 80301B90 002FD7F0  41 82 00 18 */	beq lbl_80301BA8
/* 80301B94 002FD7F4  28 05 00 0A */	cmplwi r5, 0xa
/* 80301B98 002FD7F8  41 82 00 10 */	beq lbl_80301BA8
/* 80301B9C 002FD7FC  38 05 FE F7 */	addi r0, r5, -265
/* 80301BA0 002FD800  28 00 00 01 */	cmplwi r0, 1
/* 80301BA4 002FD804  41 81 00 24 */	bgt lbl_80301BC8
lbl_80301BA8:
/* 80301BA8 002FD808  48 00 17 3D */	bl NWC24IsMsgLibOpened
/* 80301BAC 002FD80C  2C 03 00 00 */	cmpwi r3, 0
/* 80301BB0 002FD810  40 82 00 18 */	bne lbl_80301BC8
/* 80301BB4 002FD814  48 00 17 45 */	bl NWC24IsMsgLibOpenedByTool
/* 80301BB8 002FD818  2C 03 00 00 */	cmpwi r3, 0
/* 80301BBC 002FD81C  40 82 00 0C */	bne lbl_80301BC8
/* 80301BC0 002FD820  38 60 FF F7 */	li r3, -9
/* 80301BC4 002FD824  48 00 00 5C */	b lbl_80301C20
lbl_80301BC8:
/* 80301BC8 002FD828  28 1F 00 09 */	cmplwi r31, 9
/* 80301BCC 002FD82C  41 82 00 0C */	beq lbl_80301BD8
/* 80301BD0 002FD830  28 1F 01 09 */	cmplwi r31, 0x109
/* 80301BD4 002FD834  40 82 00 20 */	bne lbl_80301BF4
lbl_80301BD8:
/* 80301BD8 002FD838  80 0D AF 7C */	lwz r0, lbl_8064023C-_SDA_BASE_(r13)
/* 80301BDC 002FD83C  2C 00 00 00 */	cmpwi r0, 0
/* 80301BE0 002FD840  41 82 00 0C */	beq lbl_80301BEC
/* 80301BE4 002FD844  38 60 FF EA */	li r3, -22
/* 80301BE8 002FD848  48 00 00 38 */	b lbl_80301C20
lbl_80301BEC:
/* 80301BEC 002FD84C  80 1D 00 00 */	lwz r0, 0(r29)
/* 80301BF0 002FD850  90 0D AF 7C */	stw r0, lbl_8064023C-_SDA_BASE_(r13)
lbl_80301BF4:
/* 80301BF4 002FD854  57 E0 05 EF */	rlwinm. r0, r31, 0, 0x17, 0x17
/* 80301BF8 002FD858  41 82 00 18 */	beq lbl_80301C10
/* 80301BFC 002FD85C  7F A3 EB 78 */	mr r3, r29
/* 80301C00 002FD860  7F C4 F3 78 */	mr r4, r30
/* 80301C04 002FD864  7F E5 FB 78 */	mr r5, r31
/* 80301C08 002FD868  48 00 01 69 */	bl NWC24iFOpenVF
/* 80301C0C 002FD86C  48 00 00 14 */	b lbl_80301C20
lbl_80301C10:
/* 80301C10 002FD870  7F A3 EB 78 */	mr r3, r29
/* 80301C14 002FD874  7F C4 F3 78 */	mr r4, r30
/* 80301C18 002FD878  7F E5 FB 78 */	mr r5, r31
/* 80301C1C 002FD87C  48 00 00 21 */	bl NWC24iFOpenNand
lbl_80301C20:
/* 80301C20 002FD880  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80301C24 002FD884  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80301C28 002FD888  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80301C2C 002FD88C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80301C30 002FD890  7C 08 03 A6 */	mtlr r0
/* 80301C34 002FD894  38 21 00 20 */	addi r1, r1, 0x20
/* 80301C38 002FD898  4E 80 00 20 */	blr

.global NWC24iFOpenNand
NWC24iFOpenNand:
/* 80301C3C 002FD89C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80301C40 002FD8A0  7C 08 02 A6 */	mflr r0
/* 80301C44 002FD8A4  90 01 00 34 */	stw r0, 0x34(r1)
/* 80301C48 002FD8A8  39 61 00 30 */	addi r11, r1, 0x30
/* 80301C4C 002FD8AC  4B EC 54 C9 */	bl _savegpr_22
/* 80301C50 002FD8B0  28 05 00 0A */	cmplwi r5, 0xa
/* 80301C54 002FD8B4  7C 7D 1B 78 */	mr r29, r3
/* 80301C58 002FD8B8  7C 9E 23 78 */	mr r30, r4
/* 80301C5C 002FD8BC  7C BF 2B 78 */	mr r31, r5
/* 80301C60 002FD8C0  41 81 00 5C */	bgt lbl_80301CBC
/* 80301C64 002FD8C4  3C 60 80 44 */	lis r3, lbl_804462D8@ha
/* 80301C68 002FD8C8  54 A0 10 3A */	slwi r0, r5, 2
/* 80301C6C 002FD8CC  38 63 62 D8 */	addi r3, r3, lbl_804462D8@l
/* 80301C70 002FD8D0  7C 63 00 2E */	lwzx r3, r3, r0
/* 80301C74 002FD8D4  7C 69 03 A6 */	mtctr r3
/* 80301C78 002FD8D8  4E 80 04 20 */	bctr
/* 80301C7C 002FD8DC  7F C3 F3 78 */	mr r3, r30
/* 80301C80 002FD8E0  38 80 00 3F */	li r4, 0x3f
/* 80301C84 002FD8E4  38 A0 00 00 */	li r5, 0
/* 80301C88 002FD8E8  4B FE 59 65 */	bl NANDPrivateCreate
/* 80301C8C 002FD8EC  2C 03 00 00 */	cmpwi r3, 0
/* 80301C90 002FD8F0  41 82 00 14 */	beq lbl_80301CA4
/* 80301C94 002FD8F4  2C 03 FF FA */	cmpwi r3, -6
/* 80301C98 002FD8F8  41 82 00 0C */	beq lbl_80301CA4
/* 80301C9C 002FD8FC  38 60 FF EB */	li r3, -21
/* 80301CA0 002FD900  48 00 00 B8 */	b lbl_80301D58
lbl_80301CA4:
/* 80301CA4 002FD904  3A E0 00 02 */	li r23, 2
/* 80301CA8 002FD908  48 00 00 1C */	b lbl_80301CC4
/* 80301CAC 002FD90C  3A E0 00 01 */	li r23, 1
/* 80301CB0 002FD910  48 00 00 14 */	b lbl_80301CC4
/* 80301CB4 002FD914  3A E0 00 03 */	li r23, 3
/* 80301CB8 002FD918  48 00 00 0C */	b lbl_80301CC4
lbl_80301CBC:
/* 80301CBC 002FD91C  38 60 FF FD */	li r3, -3
/* 80301CC0 002FD920  48 00 00 98 */	b lbl_80301D58
lbl_80301CC4:
/* 80301CC4 002FD924  3A C0 00 00 */	li r22, 0
/* 80301CC8 002FD928  3B 60 03 E8 */	li r27, 0x3e8
/* 80301CCC 002FD92C  7F 96 D9 D6 */	mullw r28, r22, r27
/* 80301CD0 002FD930  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 80301CD4 002FD934  3F 40 80 00 */	lis r26, 0x8000
/* 80301CD8 002FD938  3B 23 4D D3 */	addi r25, r3, 0x10624DD3@l
lbl_80301CDC:
/* 80301CDC 002FD93C  7F C3 F3 78 */	mr r3, r30
/* 80301CE0 002FD940  7E E5 BB 78 */	mr r5, r23
/* 80301CE4 002FD944  38 9D 00 0C */	addi r4, r29, 0xc
/* 80301CE8 002FD948  4B FE 67 AD */	bl NANDPrivateOpen
/* 80301CEC 002FD94C  2C 03 FF FD */	cmpwi r3, -3
/* 80301CF0 002FD950  7C 78 1B 78 */	mr r24, r3
/* 80301CF4 002FD954  40 82 00 30 */	bne lbl_80301D24
/* 80301CF8 002FD958  80 1A 00 F8 */	lwz r0, 0xf8(r26)
/* 80301CFC 002FD95C  54 00 F0 BE */	srwi r0, r0, 2
/* 80301D00 002FD960  7C 19 00 16 */	mulhwu r0, r25, r0
/* 80301D04 002FD964  54 03 D1 BE */	srwi r3, r0, 6
/* 80301D08 002FD968  7C 03 D8 16 */	mulhwu r0, r3, r27
/* 80301D0C 002FD96C  1C 83 03 E8 */	mulli r4, r3, 0x3e8
/* 80301D10 002FD970  7C 60 E2 14 */	add r3, r0, r28
/* 80301D14 002FD974  4B F7 09 F1 */	bl OSSleepTicks
/* 80301D18 002FD978  3A D6 00 01 */	addi r22, r22, 1
/* 80301D1C 002FD97C  28 16 00 03 */	cmplwi r22, 3
/* 80301D20 002FD980  41 80 FF BC */	blt lbl_80301CDC
lbl_80301D24:
/* 80301D24 002FD984  2C 18 00 00 */	cmpwi r24, 0
/* 80301D28 002FD988  41 82 00 2C */	beq lbl_80301D54
/* 80301D2C 002FD98C  28 1F 00 09 */	cmplwi r31, 9
/* 80301D30 002FD990  40 82 00 0C */	bne lbl_80301D3C
/* 80301D34 002FD994  38 00 00 00 */	li r0, 0
/* 80301D38 002FD998  90 0D AF 7C */	stw r0, lbl_8064023C-_SDA_BASE_(r13)
lbl_80301D3C:
/* 80301D3C 002FD99C  2C 18 FF F4 */	cmpwi r24, -12
/* 80301D40 002FD9A0  40 82 00 0C */	bne lbl_80301D4C
/* 80301D44 002FD9A4  38 60 FF EC */	li r3, -20
/* 80301D48 002FD9A8  48 00 00 10 */	b lbl_80301D58
lbl_80301D4C:
/* 80301D4C 002FD9AC  38 60 FF F0 */	li r3, -16
/* 80301D50 002FD9B0  48 00 00 08 */	b lbl_80301D58
lbl_80301D54:
/* 80301D54 002FD9B4  38 60 00 00 */	li r3, 0
lbl_80301D58:
/* 80301D58 002FD9B8  39 61 00 30 */	addi r11, r1, 0x30
/* 80301D5C 002FD9BC  4B EC 54 05 */	bl _restgpr_22
/* 80301D60 002FD9C0  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80301D64 002FD9C4  7C 08 03 A6 */	mtlr r0
/* 80301D68 002FD9C8  38 21 00 30 */	addi r1, r1, 0x30
/* 80301D6C 002FD9CC  4E 80 00 20 */	blr

.global NWC24iFOpenVF
NWC24iFOpenVF:
/* 80301D70 002FD9D0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80301D74 002FD9D4  7C 08 02 A6 */	mflr r0
/* 80301D78 002FD9D8  2C 05 01 09 */	cmpwi r5, 0x109
/* 80301D7C 002FD9DC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80301D80 002FD9E0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80301D84 002FD9E4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80301D88 002FD9E8  7C BE 2B 78 */	mr r30, r5
/* 80301D8C 002FD9EC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80301D90 002FD9F0  7C 7D 1B 78 */	mr r29, r3
/* 80301D94 002FD9F4  41 82 00 2C */	beq lbl_80301DC0
/* 80301D98 002FD9F8  40 80 00 1C */	bge lbl_80301DB4
/* 80301D9C 002FD9FC  2C 05 01 02 */	cmpwi r5, 0x102
/* 80301DA0 002FDA00  41 82 00 28 */	beq lbl_80301DC8
/* 80301DA4 002FDA04  40 80 00 2C */	bge lbl_80301DD0
/* 80301DA8 002FDA08  2C 05 01 01 */	cmpwi r5, 0x101
/* 80301DAC 002FDA0C  40 80 00 14 */	bge lbl_80301DC0
/* 80301DB0 002FDA10  48 00 00 20 */	b lbl_80301DD0
lbl_80301DB4:
/* 80301DB4 002FDA14  2C 05 01 0B */	cmpwi r5, 0x10b
/* 80301DB8 002FDA18  40 80 00 18 */	bge lbl_80301DD0
/* 80301DBC 002FDA1C  48 00 00 0C */	b lbl_80301DC8
lbl_80301DC0:
/* 80301DC0 002FDA20  3B ED 8C 80 */	addi r31, r13, lbl_8063DF40-_SDA_BASE_
/* 80301DC4 002FDA24  48 00 00 14 */	b lbl_80301DD8
lbl_80301DC8:
/* 80301DC8 002FDA28  3B ED 8C 84 */	addi r31, r13, lbl_8063DF44-_SDA_BASE_
/* 80301DCC 002FDA2C  48 00 00 0C */	b lbl_80301DD8
lbl_80301DD0:
/* 80301DD0 002FDA30  38 60 FF FD */	li r3, -3
/* 80301DD4 002FDA34  48 00 00 A8 */	b lbl_80301E7C
lbl_80301DD8:
/* 80301DD8 002FDA38  7C 83 23 78 */	mr r3, r4
/* 80301DDC 002FDA3C  7F E4 FB 78 */	mr r4, r31
/* 80301DE0 002FDA40  38 A0 00 00 */	li r5, 0
/* 80301DE4 002FDA44  48 01 88 C1 */	bl VFOpenFile
/* 80301DE8 002FDA48  2C 03 00 00 */	cmpwi r3, 0
/* 80301DEC 002FDA4C  90 7D 00 98 */	stw r3, 0x98(r29)
/* 80301DF0 002FDA50  40 82 00 88 */	bne lbl_80301E78
/* 80301DF4 002FDA54  48 01 8B ED */	bl VFGetLastError
/* 80301DF8 002FDA58  28 1E 01 09 */	cmplwi r30, 0x109
/* 80301DFC 002FDA5C  40 82 00 0C */	bne lbl_80301E08
/* 80301E00 002FDA60  38 00 00 00 */	li r0, 0
/* 80301E04 002FDA64  90 0D AF 7C */	stw r0, lbl_8064023C-_SDA_BASE_(r13)
lbl_80301E08:
/* 80301E08 002FDA68  88 1F 00 00 */	lbz r0, 0(r31)
/* 80301E0C 002FDA6C  2C 00 00 72 */	cmpwi r0, 0x72
/* 80301E10 002FDA70  40 82 00 14 */	bne lbl_80301E24
/* 80301E14 002FDA74  2C 03 00 02 */	cmpwi r3, 2
/* 80301E18 002FDA78  40 82 00 0C */	bne lbl_80301E24
/* 80301E1C 002FDA7C  38 60 FF EC */	li r3, -20
/* 80301E20 002FDA80  48 00 00 5C */	b lbl_80301E7C
lbl_80301E24:
/* 80301E24 002FDA84  2C 03 00 05 */	cmpwi r3, 5
/* 80301E28 002FDA88  40 82 00 48 */	bne lbl_80301E70
/* 80301E2C 002FDA8C  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 80301E30 002FDA90  48 01 8B B5 */	bl VFGetLastDeviceError
/* 80301E34 002FDA94  2C 03 FF FB */	cmpwi r3, -5
/* 80301E38 002FDA98  41 82 00 20 */	beq lbl_80301E58
/* 80301E3C 002FDA9C  40 80 00 10 */	bge lbl_80301E4C
/* 80301E40 002FDAA0  2C 03 FF F1 */	cmpwi r3, -15
/* 80301E44 002FDAA4  41 82 00 14 */	beq lbl_80301E58
/* 80301E48 002FDAA8  48 00 00 20 */	b lbl_80301E68
lbl_80301E4C:
/* 80301E4C 002FDAAC  2C 03 FF FD */	cmpwi r3, -3
/* 80301E50 002FDAB0  40 80 00 18 */	bge lbl_80301E68
/* 80301E54 002FDAB4  48 00 00 0C */	b lbl_80301E60
lbl_80301E58:
/* 80301E58 002FDAB8  38 60 FF D2 */	li r3, -46
/* 80301E5C 002FDABC  48 00 00 20 */	b lbl_80301E7C
lbl_80301E60:
/* 80301E60 002FDAC0  38 60 FF DA */	li r3, -38
/* 80301E64 002FDAC4  48 00 00 18 */	b lbl_80301E7C
lbl_80301E68:
/* 80301E68 002FDAC8  38 60 FF F0 */	li r3, -16
/* 80301E6C 002FDACC  48 00 00 10 */	b lbl_80301E7C
lbl_80301E70:
/* 80301E70 002FDAD0  38 60 FF F0 */	li r3, -16
/* 80301E74 002FDAD4  48 00 00 08 */	b lbl_80301E7C
lbl_80301E78:
/* 80301E78 002FDAD8  38 60 00 00 */	li r3, 0
lbl_80301E7C:
/* 80301E7C 002FDADC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80301E80 002FDAE0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80301E84 002FDAE4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80301E88 002FDAE8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80301E8C 002FDAEC  7C 08 03 A6 */	mtlr r0
/* 80301E90 002FDAF0  38 21 00 20 */	addi r1, r1, 0x20
/* 80301E94 002FDAF4  4E 80 00 20 */	blr

.global NWC24FClose
NWC24FClose:
/* 80301E98 002FDAF8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80301E9C 002FDAFC  7C 08 02 A6 */	mflr r0
/* 80301EA0 002FDB00  90 01 00 14 */	stw r0, 0x14(r1)
/* 80301EA4 002FDB04  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80301EA8 002FDB08  3B E0 00 00 */	li r31, 0
/* 80301EAC 002FDB0C  93 C1 00 08 */	stw r30, 8(r1)
/* 80301EB0 002FDB10  7C 7E 1B 78 */	mr r30, r3
/* 80301EB4 002FDB14  80 03 00 04 */	lwz r0, 4(r3)
/* 80301EB8 002FDB18  28 00 00 09 */	cmplwi r0, 9
/* 80301EBC 002FDB1C  41 82 00 0C */	beq lbl_80301EC8
/* 80301EC0 002FDB20  28 00 01 09 */	cmplwi r0, 0x109
/* 80301EC4 002FDB24  40 82 00 18 */	bne lbl_80301EDC
lbl_80301EC8:
/* 80301EC8 002FDB28  7F C3 F3 78 */	mr r3, r30
/* 80301ECC 002FDB2C  48 00 09 39 */	bl BufferedWriteFlush
/* 80301ED0 002FDB30  38 00 00 00 */	li r0, 0
/* 80301ED4 002FDB34  7C 7F 1B 78 */	mr r31, r3
/* 80301ED8 002FDB38  90 0D AF 7C */	stw r0, lbl_8064023C-_SDA_BASE_(r13)
lbl_80301EDC:
/* 80301EDC 002FDB3C  80 1E 00 04 */	lwz r0, 4(r30)
/* 80301EE0 002FDB40  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 80301EE4 002FDB44  41 82 00 70 */	beq lbl_80301F54
/* 80301EE8 002FDB48  80 7E 00 98 */	lwz r3, 0x98(r30)
/* 80301EEC 002FDB4C  48 01 88 95 */	bl VFCloseFile
/* 80301EF0 002FDB50  2C 03 00 00 */	cmpwi r3, 0
/* 80301EF4 002FDB54  41 82 00 58 */	beq lbl_80301F4C
/* 80301EF8 002FDB58  2C 03 00 05 */	cmpwi r3, 5
/* 80301EFC 002FDB5C  40 82 00 48 */	bne lbl_80301F44
/* 80301F00 002FDB60  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 80301F04 002FDB64  48 01 8A E1 */	bl VFGetLastDeviceError
/* 80301F08 002FDB68  2C 03 FF FB */	cmpwi r3, -5
/* 80301F0C 002FDB6C  41 82 00 20 */	beq lbl_80301F2C
/* 80301F10 002FDB70  40 80 00 10 */	bge lbl_80301F20
/* 80301F14 002FDB74  2C 03 FF F1 */	cmpwi r3, -15
/* 80301F18 002FDB78  41 82 00 14 */	beq lbl_80301F2C
/* 80301F1C 002FDB7C  48 00 00 20 */	b lbl_80301F3C
lbl_80301F20:
/* 80301F20 002FDB80  2C 03 FF FD */	cmpwi r3, -3
/* 80301F24 002FDB84  40 80 00 18 */	bge lbl_80301F3C
/* 80301F28 002FDB88  48 00 00 0C */	b lbl_80301F34
lbl_80301F2C:
/* 80301F2C 002FDB8C  38 60 FF D2 */	li r3, -46
/* 80301F30 002FDB90  48 00 00 2C */	b lbl_80301F5C
lbl_80301F34:
/* 80301F34 002FDB94  38 60 FF DA */	li r3, -38
/* 80301F38 002FDB98  48 00 00 24 */	b lbl_80301F5C
lbl_80301F3C:
/* 80301F3C 002FDB9C  38 60 FF EF */	li r3, -17
/* 80301F40 002FDBA0  48 00 00 1C */	b lbl_80301F5C
lbl_80301F44:
/* 80301F44 002FDBA4  38 60 FF EF */	li r3, -17
/* 80301F48 002FDBA8  48 00 00 14 */	b lbl_80301F5C
lbl_80301F4C:
/* 80301F4C 002FDBAC  38 60 00 00 */	li r3, 0
/* 80301F50 002FDBB0  48 00 00 0C */	b lbl_80301F5C
lbl_80301F54:
/* 80301F54 002FDBB4  7F C3 F3 78 */	mr r3, r30
/* 80301F58 002FDBB8  48 00 00 29 */	bl NWC24iFCloseNand
lbl_80301F5C:
/* 80301F5C 002FDBBC  2C 1F 00 00 */	cmpwi r31, 0
/* 80301F60 002FDBC0  41 82 00 08 */	beq lbl_80301F68
/* 80301F64 002FDBC4  7F E3 FB 78 */	mr r3, r31
lbl_80301F68:
/* 80301F68 002FDBC8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80301F6C 002FDBCC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80301F70 002FDBD0  83 C1 00 08 */	lwz r30, 8(r1)
/* 80301F74 002FDBD4  7C 08 03 A6 */	mtlr r0
/* 80301F78 002FDBD8  38 21 00 10 */	addi r1, r1, 0x10
/* 80301F7C 002FDBDC  4E 80 00 20 */	blr

.global NWC24iFCloseNand
NWC24iFCloseNand:
/* 80301F80 002FDBE0  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80301F84 002FDBE4  7C 08 02 A6 */	mflr r0
/* 80301F88 002FDBE8  90 01 00 34 */	stw r0, 0x34(r1)
/* 80301F8C 002FDBEC  39 61 00 30 */	addi r11, r1, 0x30
/* 80301F90 002FDBF0  4B EC 51 8D */	bl _savegpr_24
/* 80301F94 002FDBF4  3B 40 00 00 */	li r26, 0
/* 80301F98 002FDBF8  3B C0 03 E8 */	li r30, 0x3e8
/* 80301F9C 002FDBFC  7F FA F1 D6 */	mullw r31, r26, r30
/* 80301FA0 002FDC00  3C 80 10 62 */	lis r4, 0x10624DD3@ha
/* 80301FA4 002FDC04  7C 78 1B 78 */	mr r24, r3
/* 80301FA8 002FDC08  3B 84 4D D3 */	addi r28, r4, 0x10624DD3@l
/* 80301FAC 002FDC0C  3B 20 00 00 */	li r25, 0
/* 80301FB0 002FDC10  3F A0 80 00 */	lis r29, 0x8000
lbl_80301FB4:
/* 80301FB4 002FDC14  38 78 00 0C */	addi r3, r24, 0xc
/* 80301FB8 002FDC18  4B FE 66 D1 */	bl NANDClose
/* 80301FBC 002FDC1C  2C 03 FF FD */	cmpwi r3, -3
/* 80301FC0 002FDC20  7C 7B 1B 78 */	mr r27, r3
/* 80301FC4 002FDC24  40 82 00 30 */	bne lbl_80301FF4
/* 80301FC8 002FDC28  80 1D 00 F8 */	lwz r0, 0xf8(r29)
/* 80301FCC 002FDC2C  54 00 F0 BE */	srwi r0, r0, 2
/* 80301FD0 002FDC30  7C 1C 00 16 */	mulhwu r0, r28, r0
/* 80301FD4 002FDC34  54 03 D1 BE */	srwi r3, r0, 6
/* 80301FD8 002FDC38  7C 03 F0 16 */	mulhwu r0, r3, r30
/* 80301FDC 002FDC3C  1C 83 03 E8 */	mulli r4, r3, 0x3e8
/* 80301FE0 002FDC40  7C 60 FA 14 */	add r3, r0, r31
/* 80301FE4 002FDC44  4B F7 07 21 */	bl OSSleepTicks
/* 80301FE8 002FDC48  3B 39 00 01 */	addi r25, r25, 1
/* 80301FEC 002FDC4C  28 19 00 03 */	cmplwi r25, 3
/* 80301FF0 002FDC50  41 80 FF C4 */	blt lbl_80301FB4
lbl_80301FF4:
/* 80301FF4 002FDC54  2C 1B FF FC */	cmpwi r27, -4
/* 80301FF8 002FDC58  40 82 00 0C */	bne lbl_80302004
/* 80301FFC 002FDC5C  3B 40 FF DA */	li r26, -38
/* 80302000 002FDC60  48 00 00 10 */	b lbl_80302010
lbl_80302004:
/* 80302004 002FDC64  2C 1B 00 00 */	cmpwi r27, 0
/* 80302008 002FDC68  41 82 00 08 */	beq lbl_80302010
/* 8030200C 002FDC6C  3B 40 FF EF */	li r26, -17
lbl_80302010:
/* 80302010 002FDC70  39 61 00 30 */	addi r11, r1, 0x30
/* 80302014 002FDC74  7F 43 D3 78 */	mr r3, r26
/* 80302018 002FDC78  4B EC 51 51 */	bl _restgpr_24
/* 8030201C 002FDC7C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80302020 002FDC80  7C 08 03 A6 */	mtlr r0
/* 80302024 002FDC84  38 21 00 30 */	addi r1, r1, 0x30
/* 80302028 002FDC88  4E 80 00 20 */	blr

.global NWC24FSeek
NWC24FSeek:
/* 8030202C 002FDC8C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80302030 002FDC90  7C 08 02 A6 */	mflr r0
/* 80302034 002FDC94  90 01 00 34 */	stw r0, 0x34(r1)
/* 80302038 002FDC98  39 61 00 30 */	addi r11, r1, 0x30
/* 8030203C 002FDC9C  4B EC 50 DD */	bl _savegpr_23
/* 80302040 002FDCA0  80 03 00 04 */	lwz r0, 4(r3)
/* 80302044 002FDCA4  7C 77 1B 78 */	mr r23, r3
/* 80302048 002FDCA8  7C 98 23 78 */	mr r24, r4
/* 8030204C 002FDCAC  7C BF 2B 78 */	mr r31, r5
/* 80302050 002FDCB0  28 00 00 0A */	cmplwi r0, 0xa
/* 80302054 002FDCB4  41 82 00 0C */	beq lbl_80302060
/* 80302058 002FDCB8  28 00 01 0A */	cmplwi r0, 0x10a
/* 8030205C 002FDCBC  40 82 00 BC */	bne lbl_80302118
lbl_80302060:
/* 80302060 002FDCC0  80 03 00 04 */	lwz r0, 4(r3)
/* 80302064 002FDCC4  54 85 D8 08 */	slwi r5, r4, 0x1b
/* 80302068 002FDCC8  54 86 0F FE */	srwi r6, r4, 0x1f
/* 8030206C 002FDCCC  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 80302070 002FDCD0  7C A6 28 50 */	subf r5, r6, r5
/* 80302074 002FDCD4  54 A0 28 3E */	rotlwi r0, r5, 5
/* 80302078 002FDCD8  7C 00 32 14 */	add r0, r0, r6
/* 8030207C 002FDCDC  90 03 00 08 */	stw r0, 8(r3)
/* 80302080 002FDCE0  7C 80 20 50 */	subf r4, r0, r4
/* 80302084 002FDCE4  41 82 00 74 */	beq lbl_803020F8
/* 80302088 002FDCE8  80 63 00 98 */	lwz r3, 0x98(r3)
/* 8030208C 002FDCEC  7F E5 FB 78 */	mr r5, r31
/* 80302090 002FDCF0  48 01 87 5D */	bl VFSeekFile
/* 80302094 002FDCF4  2C 03 00 00 */	cmpwi r3, 0
/* 80302098 002FDCF8  41 82 00 58 */	beq lbl_803020F0
/* 8030209C 002FDCFC  2C 03 00 05 */	cmpwi r3, 5
/* 803020A0 002FDD00  40 82 00 48 */	bne lbl_803020E8
/* 803020A4 002FDD04  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 803020A8 002FDD08  48 01 89 3D */	bl VFGetLastDeviceError
/* 803020AC 002FDD0C  2C 03 FF FB */	cmpwi r3, -5
/* 803020B0 002FDD10  41 82 00 20 */	beq lbl_803020D0
/* 803020B4 002FDD14  40 80 00 10 */	bge lbl_803020C4
/* 803020B8 002FDD18  2C 03 FF F1 */	cmpwi r3, -15
/* 803020BC 002FDD1C  41 82 00 14 */	beq lbl_803020D0
/* 803020C0 002FDD20  48 00 00 20 */	b lbl_803020E0
lbl_803020C4:
/* 803020C4 002FDD24  2C 03 FF FD */	cmpwi r3, -3
/* 803020C8 002FDD28  40 80 00 18 */	bge lbl_803020E0
/* 803020CC 002FDD2C  48 00 00 0C */	b lbl_803020D8
lbl_803020D0:
/* 803020D0 002FDD30  38 60 FF D2 */	li r3, -46
/* 803020D4 002FDD34  48 00 01 2C */	b lbl_80302200
lbl_803020D8:
/* 803020D8 002FDD38  38 60 FF DA */	li r3, -38
/* 803020DC 002FDD3C  48 00 01 24 */	b lbl_80302200
lbl_803020E0:
/* 803020E0 002FDD40  38 60 FF EB */	li r3, -21
/* 803020E4 002FDD44  48 00 01 1C */	b lbl_80302200
lbl_803020E8:
/* 803020E8 002FDD48  38 60 FF EB */	li r3, -21
/* 803020EC 002FDD4C  48 00 01 14 */	b lbl_80302200
lbl_803020F0:
/* 803020F0 002FDD50  38 60 00 00 */	li r3, 0
/* 803020F4 002FDD54  48 00 01 0C */	b lbl_80302200
lbl_803020F8:
/* 803020F8 002FDD58  7F E5 FB 78 */	mr r5, r31
/* 803020FC 002FDD5C  38 63 00 0C */	addi r3, r3, 0xc
/* 80302100 002FDD60  4B FE 59 81 */	bl NANDSeek
/* 80302104 002FDD64  2C 03 00 00 */	cmpwi r3, 0
/* 80302108 002FDD68  38 60 00 00 */	li r3, 0
/* 8030210C 002FDD6C  40 80 00 F4 */	bge lbl_80302200
/* 80302110 002FDD70  38 60 FF EB */	li r3, -21
/* 80302114 002FDD74  48 00 00 EC */	b lbl_80302200
lbl_80302118:
/* 80302118 002FDD78  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 8030211C 002FDD7C  41 82 00 70 */	beq lbl_8030218C
/* 80302120 002FDD80  80 63 00 98 */	lwz r3, 0x98(r3)
/* 80302124 002FDD84  48 01 86 C9 */	bl VFSeekFile
/* 80302128 002FDD88  2C 03 00 00 */	cmpwi r3, 0
/* 8030212C 002FDD8C  41 82 00 58 */	beq lbl_80302184
/* 80302130 002FDD90  2C 03 00 05 */	cmpwi r3, 5
/* 80302134 002FDD94  40 82 00 48 */	bne lbl_8030217C
/* 80302138 002FDD98  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 8030213C 002FDD9C  48 01 88 A9 */	bl VFGetLastDeviceError
/* 80302140 002FDDA0  2C 03 FF FB */	cmpwi r3, -5
/* 80302144 002FDDA4  41 82 00 20 */	beq lbl_80302164
/* 80302148 002FDDA8  40 80 00 10 */	bge lbl_80302158
/* 8030214C 002FDDAC  2C 03 FF F1 */	cmpwi r3, -15
/* 80302150 002FDDB0  41 82 00 14 */	beq lbl_80302164
/* 80302154 002FDDB4  48 00 00 20 */	b lbl_80302174
lbl_80302158:
/* 80302158 002FDDB8  2C 03 FF FD */	cmpwi r3, -3
/* 8030215C 002FDDBC  40 80 00 18 */	bge lbl_80302174
/* 80302160 002FDDC0  48 00 00 0C */	b lbl_8030216C
lbl_80302164:
/* 80302164 002FDDC4  38 60 FF D2 */	li r3, -46
/* 80302168 002FDDC8  48 00 00 98 */	b lbl_80302200
lbl_8030216C:
/* 8030216C 002FDDCC  38 60 FF DA */	li r3, -38
/* 80302170 002FDDD0  48 00 00 90 */	b lbl_80302200
lbl_80302174:
/* 80302174 002FDDD4  38 60 FF EB */	li r3, -21
/* 80302178 002FDDD8  48 00 00 88 */	b lbl_80302200
lbl_8030217C:
/* 8030217C 002FDDDC  38 60 FF EB */	li r3, -21
/* 80302180 002FDDE0  48 00 00 80 */	b lbl_80302200
lbl_80302184:
/* 80302184 002FDDE4  38 60 00 00 */	li r3, 0
/* 80302188 002FDDE8  48 00 00 78 */	b lbl_80302200
lbl_8030218C:
/* 8030218C 002FDDEC  3B 20 00 00 */	li r25, 0
/* 80302190 002FDDF0  3B A0 03 E8 */	li r29, 0x3e8
/* 80302194 002FDDF4  7F D9 E9 D6 */	mullw r30, r25, r29
/* 80302198 002FDDF8  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 8030219C 002FDDFC  3F 80 80 00 */	lis r28, 0x8000
/* 803021A0 002FDE00  3B 63 4D D3 */	addi r27, r3, 0x10624DD3@l
lbl_803021A4:
/* 803021A4 002FDE04  7F 04 C3 78 */	mr r4, r24
/* 803021A8 002FDE08  7F E5 FB 78 */	mr r5, r31
/* 803021AC 002FDE0C  38 77 00 0C */	addi r3, r23, 0xc
/* 803021B0 002FDE10  4B FE 58 D1 */	bl NANDSeek
/* 803021B4 002FDE14  2C 03 FF FD */	cmpwi r3, -3
/* 803021B8 002FDE18  7C 7A 1B 78 */	mr r26, r3
/* 803021BC 002FDE1C  40 82 00 30 */	bne lbl_803021EC
/* 803021C0 002FDE20  80 1C 00 F8 */	lwz r0, 0xf8(r28)
/* 803021C4 002FDE24  54 00 F0 BE */	srwi r0, r0, 2
/* 803021C8 002FDE28  7C 1B 00 16 */	mulhwu r0, r27, r0
/* 803021CC 002FDE2C  54 03 D1 BE */	srwi r3, r0, 6
/* 803021D0 002FDE30  7C 03 E8 16 */	mulhwu r0, r3, r29
/* 803021D4 002FDE34  1C 83 03 E8 */	mulli r4, r3, 0x3e8
/* 803021D8 002FDE38  7C 60 F2 14 */	add r3, r0, r30
/* 803021DC 002FDE3C  4B F7 05 29 */	bl OSSleepTicks
/* 803021E0 002FDE40  3B 39 00 01 */	addi r25, r25, 1
/* 803021E4 002FDE44  28 19 00 03 */	cmplwi r25, 3
/* 803021E8 002FDE48  41 80 FF BC */	blt lbl_803021A4
lbl_803021EC:
/* 803021EC 002FDE4C  2C 1A 00 00 */	cmpwi r26, 0
/* 803021F0 002FDE50  40 80 00 0C */	bge lbl_803021FC
/* 803021F4 002FDE54  38 60 FF EB */	li r3, -21
/* 803021F8 002FDE58  48 00 00 08 */	b lbl_80302200
lbl_803021FC:
/* 803021FC 002FDE5C  38 60 00 00 */	li r3, 0
lbl_80302200:
/* 80302200 002FDE60  39 61 00 30 */	addi r11, r1, 0x30
/* 80302204 002FDE64  4B EC 4F 61 */	bl _restgpr_23
/* 80302208 002FDE68  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8030220C 002FDE6C  7C 08 03 A6 */	mtlr r0
/* 80302210 002FDE70  38 21 00 30 */	addi r1, r1, 0x30
/* 80302214 002FDE74  4E 80 00 20 */	blr

.global NWC24FRead
NWC24FRead:
/* 80302218 002FDE78  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8030221C 002FDE7C  7C 08 02 A6 */	mflr r0
/* 80302220 002FDE80  90 01 00 34 */	stw r0, 0x34(r1)
/* 80302224 002FDE84  39 61 00 30 */	addi r11, r1, 0x30
/* 80302228 002FDE88  4B EC 4E F1 */	bl _savegpr_23
/* 8030222C 002FDE8C  80 05 00 04 */	lwz r0, 4(r5)
/* 80302230 002FDE90  7C 77 1B 78 */	mr r23, r3
/* 80302234 002FDE94  7C 98 23 78 */	mr r24, r4
/* 80302238 002FDE98  7C B9 2B 78 */	mr r25, r5
/* 8030223C 002FDE9C  2C 00 00 0A */	cmpwi r0, 0xa
/* 80302240 002FDEA0  41 82 00 40 */	beq lbl_80302280
/* 80302244 002FDEA4  40 80 00 1C */	bge lbl_80302260
/* 80302248 002FDEA8  2C 00 00 01 */	cmpwi r0, 1
/* 8030224C 002FDEAC  41 82 00 2C */	beq lbl_80302278
/* 80302250 002FDEB0  41 80 00 44 */	blt lbl_80302294
/* 80302254 002FDEB4  2C 00 00 09 */	cmpwi r0, 9
/* 80302258 002FDEB8  40 80 00 20 */	bge lbl_80302278
/* 8030225C 002FDEBC  48 00 00 38 */	b lbl_80302294
lbl_80302260:
/* 80302260 002FDEC0  2C 00 01 0A */	cmpwi r0, 0x10a
/* 80302264 002FDEC4  41 82 00 1C */	beq lbl_80302280
/* 80302268 002FDEC8  40 80 00 2C */	bge lbl_80302294
/* 8030226C 002FDECC  2C 00 01 01 */	cmpwi r0, 0x101
/* 80302270 002FDED0  41 82 00 08 */	beq lbl_80302278
/* 80302274 002FDED4  48 00 00 20 */	b lbl_80302294
lbl_80302278:
/* 80302278 002FDED8  38 60 FF F9 */	li r3, -7
/* 8030227C 002FDEDC  48 00 01 50 */	b lbl_803023CC
lbl_80302280:
/* 80302280 002FDEE0  7E E3 BB 78 */	mr r3, r23
/* 80302284 002FDEE4  7F 04 C3 78 */	mr r4, r24
/* 80302288 002FDEE8  7F 25 CB 78 */	mr r5, r25
/* 8030228C 002FDEEC  48 00 06 E5 */	bl BufferedRead
/* 80302290 002FDEF0  48 00 01 3C */	b lbl_803023CC
lbl_80302294:
/* 80302294 002FDEF4  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 80302298 002FDEF8  41 82 00 7C */	beq lbl_80302314
/* 8030229C 002FDEFC  80 65 00 98 */	lwz r3, 0x98(r5)
/* 803022A0 002FDF00  7E E4 BB 78 */	mr r4, r23
/* 803022A4 002FDF04  7F 05 C3 78 */	mr r5, r24
/* 803022A8 002FDF08  38 C0 00 00 */	li r6, 0
/* 803022AC 002FDF0C  48 01 85 CD */	bl VFReadFile
/* 803022B0 002FDF10  2C 03 00 00 */	cmpwi r3, 0
/* 803022B4 002FDF14  41 82 00 58 */	beq lbl_8030230C
/* 803022B8 002FDF18  2C 03 00 05 */	cmpwi r3, 5
/* 803022BC 002FDF1C  40 82 00 48 */	bne lbl_80302304
/* 803022C0 002FDF20  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 803022C4 002FDF24  48 01 87 21 */	bl VFGetLastDeviceError
/* 803022C8 002FDF28  2C 03 FF FB */	cmpwi r3, -5
/* 803022CC 002FDF2C  41 82 00 20 */	beq lbl_803022EC
/* 803022D0 002FDF30  40 80 00 10 */	bge lbl_803022E0
/* 803022D4 002FDF34  2C 03 FF F1 */	cmpwi r3, -15
/* 803022D8 002FDF38  41 82 00 14 */	beq lbl_803022EC
/* 803022DC 002FDF3C  48 00 00 20 */	b lbl_803022FC
lbl_803022E0:
/* 803022E0 002FDF40  2C 03 FF FD */	cmpwi r3, -3
/* 803022E4 002FDF44  40 80 00 18 */	bge lbl_803022FC
/* 803022E8 002FDF48  48 00 00 0C */	b lbl_803022F4
lbl_803022EC:
/* 803022EC 002FDF4C  38 60 FF D2 */	li r3, -46
/* 803022F0 002FDF50  48 00 00 DC */	b lbl_803023CC
lbl_803022F4:
/* 803022F4 002FDF54  38 60 FF DA */	li r3, -38
/* 803022F8 002FDF58  48 00 00 D4 */	b lbl_803023CC
lbl_803022FC:
/* 803022FC 002FDF5C  38 60 FF EE */	li r3, -18
/* 80302300 002FDF60  48 00 00 CC */	b lbl_803023CC
lbl_80302304:
/* 80302304 002FDF64  38 60 FF EE */	li r3, -18
/* 80302308 002FDF68  48 00 00 C4 */	b lbl_803023CC
lbl_8030230C:
/* 8030230C 002FDF6C  38 60 00 00 */	li r3, 0
/* 80302310 002FDF70  48 00 00 BC */	b lbl_803023CC
lbl_80302314:
/* 80302314 002FDF74  3B 40 00 00 */	li r26, 0
/* 80302318 002FDF78  3B C0 03 E8 */	li r30, 0x3e8
/* 8030231C 002FDF7C  7F FA F1 D6 */	mullw r31, r26, r30
/* 80302320 002FDF80  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 80302324 002FDF84  3F A0 80 00 */	lis r29, 0x8000
/* 80302328 002FDF88  3B 83 4D D3 */	addi r28, r3, 0x10624DD3@l
lbl_8030232C:
/* 8030232C 002FDF8C  7E E4 BB 78 */	mr r4, r23
/* 80302330 002FDF90  7F 05 C3 78 */	mr r5, r24
/* 80302334 002FDF94  38 79 00 0C */	addi r3, r25, 0xc
/* 80302338 002FDF98  4B FE 55 89 */	bl NANDRead
/* 8030233C 002FDF9C  2C 03 FF FD */	cmpwi r3, -3
/* 80302340 002FDFA0  7C 7B 1B 78 */	mr r27, r3
/* 80302344 002FDFA4  40 82 00 30 */	bne lbl_80302374
/* 80302348 002FDFA8  80 1D 00 F8 */	lwz r0, 0xf8(r29)
/* 8030234C 002FDFAC  54 00 F0 BE */	srwi r0, r0, 2
/* 80302350 002FDFB0  7C 1C 00 16 */	mulhwu r0, r28, r0
/* 80302354 002FDFB4  54 03 D1 BE */	srwi r3, r0, 6
/* 80302358 002FDFB8  7C 03 F0 16 */	mulhwu r0, r3, r30
/* 8030235C 002FDFBC  1C 83 03 E8 */	mulli r4, r3, 0x3e8
/* 80302360 002FDFC0  7C 60 FA 14 */	add r3, r0, r31
/* 80302364 002FDFC4  4B F7 03 A1 */	bl OSSleepTicks
/* 80302368 002FDFC8  3B 5A 00 01 */	addi r26, r26, 1
/* 8030236C 002FDFCC  28 1A 00 03 */	cmplwi r26, 3
/* 80302370 002FDFD0  41 80 FF BC */	blt lbl_8030232C
lbl_80302374:
/* 80302374 002FDFD4  2C 1B FF FC */	cmpwi r27, -4
/* 80302378 002FDFD8  40 82 00 0C */	bne lbl_80302384
/* 8030237C 002FDFDC  38 60 FF DA */	li r3, -38
/* 80302380 002FDFE0  48 00 00 4C */	b lbl_803023CC
lbl_80302384:
/* 80302384 002FDFE4  2C 1B 00 00 */	cmpwi r27, 0
/* 80302388 002FDFE8  40 80 00 40 */	bge lbl_803023C8
/* 8030238C 002FDFEC  2C 1B FF FB */	cmpwi r27, -5
/* 80302390 002FDFF0  41 82 00 20 */	beq lbl_803023B0
/* 80302394 002FDFF4  40 80 00 10 */	bge lbl_803023A4
/* 80302398 002FDFF8  2C 1B FF F1 */	cmpwi r27, -15
/* 8030239C 002FDFFC  41 82 00 14 */	beq lbl_803023B0
/* 803023A0 002FE000  48 00 00 20 */	b lbl_803023C0
lbl_803023A4:
/* 803023A4 002FE004  2C 1B FF FD */	cmpwi r27, -3
/* 803023A8 002FE008  40 80 00 18 */	bge lbl_803023C0
/* 803023AC 002FE00C  48 00 00 0C */	b lbl_803023B8
lbl_803023B0:
/* 803023B0 002FE010  38 60 FF D2 */	li r3, -46
/* 803023B4 002FE014  48 00 00 18 */	b lbl_803023CC
lbl_803023B8:
/* 803023B8 002FE018  38 60 FF DA */	li r3, -38
/* 803023BC 002FE01C  48 00 00 10 */	b lbl_803023CC
lbl_803023C0:
/* 803023C0 002FE020  38 60 FF EE */	li r3, -18
/* 803023C4 002FE024  48 00 00 08 */	b lbl_803023CC
lbl_803023C8:
/* 803023C8 002FE028  38 60 00 00 */	li r3, 0
lbl_803023CC:
/* 803023CC 002FE02C  39 61 00 30 */	addi r11, r1, 0x30
/* 803023D0 002FE030  4B EC 4D 95 */	bl _restgpr_23
/* 803023D4 002FE034  80 01 00 34 */	lwz r0, 0x34(r1)
/* 803023D8 002FE038  7C 08 03 A6 */	mtlr r0
/* 803023DC 002FE03C  38 21 00 30 */	addi r1, r1, 0x30
/* 803023E0 002FE040  4E 80 00 20 */	blr

.global NWC24FWrite
NWC24FWrite:
/* 803023E4 002FE044  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 803023E8 002FE048  7C 08 02 A6 */	mflr r0
/* 803023EC 002FE04C  90 01 00 34 */	stw r0, 0x34(r1)
/* 803023F0 002FE050  39 61 00 30 */	addi r11, r1, 0x30
/* 803023F4 002FE054  4B EC 4D 25 */	bl _savegpr_23
/* 803023F8 002FE058  80 05 00 04 */	lwz r0, 4(r5)
/* 803023FC 002FE05C  7C 77 1B 78 */	mr r23, r3
/* 80302400 002FE060  7C 98 23 78 */	mr r24, r4
/* 80302404 002FE064  7C B9 2B 78 */	mr r25, r5
/* 80302408 002FE068  2C 00 00 0A */	cmpwi r0, 0xa
/* 8030240C 002FE06C  41 82 00 4C */	beq lbl_80302458
/* 80302410 002FE070  40 80 00 1C */	bge lbl_8030242C
/* 80302414 002FE074  2C 00 00 02 */	cmpwi r0, 2
/* 80302418 002FE078  41 82 00 40 */	beq lbl_80302458
/* 8030241C 002FE07C  41 80 00 44 */	blt lbl_80302460
/* 80302420 002FE080  2C 00 00 09 */	cmpwi r0, 9
/* 80302424 002FE084  40 80 00 20 */	bge lbl_80302444
/* 80302428 002FE088  48 00 00 38 */	b lbl_80302460
lbl_8030242C:
/* 8030242C 002FE08C  2C 00 01 09 */	cmpwi r0, 0x109
/* 80302430 002FE090  41 82 00 14 */	beq lbl_80302444
/* 80302434 002FE094  40 80 00 2C */	bge lbl_80302460
/* 80302438 002FE098  2C 00 01 02 */	cmpwi r0, 0x102
/* 8030243C 002FE09C  41 82 00 1C */	beq lbl_80302458
/* 80302440 002FE0A0  48 00 00 20 */	b lbl_80302460
lbl_80302444:
/* 80302444 002FE0A4  7E E3 BB 78 */	mr r3, r23
/* 80302448 002FE0A8  7F 04 C3 78 */	mr r4, r24
/* 8030244C 002FE0AC  7F 25 CB 78 */	mr r5, r25
/* 80302450 002FE0B0  48 00 02 25 */	bl BufferedWrite
/* 80302454 002FE0B4  48 00 01 4C */	b lbl_803025A0
lbl_80302458:
/* 80302458 002FE0B8  38 60 FF F9 */	li r3, -7
/* 8030245C 002FE0BC  48 00 01 44 */	b lbl_803025A0
lbl_80302460:
/* 80302460 002FE0C0  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 80302464 002FE0C4  41 82 00 78 */	beq lbl_803024DC
/* 80302468 002FE0C8  80 65 00 98 */	lwz r3, 0x98(r5)
/* 8030246C 002FE0CC  7E E4 BB 78 */	mr r4, r23
/* 80302470 002FE0D0  7F 05 C3 78 */	mr r5, r24
/* 80302474 002FE0D4  48 01 84 A1 */	bl VFWriteFile
/* 80302478 002FE0D8  2C 03 00 00 */	cmpwi r3, 0
/* 8030247C 002FE0DC  41 82 00 58 */	beq lbl_803024D4
/* 80302480 002FE0E0  2C 03 00 05 */	cmpwi r3, 5
/* 80302484 002FE0E4  40 82 00 48 */	bne lbl_803024CC
/* 80302488 002FE0E8  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 8030248C 002FE0EC  48 01 85 59 */	bl VFGetLastDeviceError
/* 80302490 002FE0F0  2C 03 FF FB */	cmpwi r3, -5
/* 80302494 002FE0F4  41 82 00 20 */	beq lbl_803024B4
/* 80302498 002FE0F8  40 80 00 10 */	bge lbl_803024A8
/* 8030249C 002FE0FC  2C 03 FF F1 */	cmpwi r3, -15
/* 803024A0 002FE100  41 82 00 14 */	beq lbl_803024B4
/* 803024A4 002FE104  48 00 00 20 */	b lbl_803024C4
lbl_803024A8:
/* 803024A8 002FE108  2C 03 FF FD */	cmpwi r3, -3
/* 803024AC 002FE10C  40 80 00 18 */	bge lbl_803024C4
/* 803024B0 002FE110  48 00 00 0C */	b lbl_803024BC
lbl_803024B4:
/* 803024B4 002FE114  38 60 FF D2 */	li r3, -46
/* 803024B8 002FE118  48 00 00 E8 */	b lbl_803025A0
lbl_803024BC:
/* 803024BC 002FE11C  38 60 FF DA */	li r3, -38
/* 803024C0 002FE120  48 00 00 E0 */	b lbl_803025A0
lbl_803024C4:
/* 803024C4 002FE124  38 60 FF ED */	li r3, -19
/* 803024C8 002FE128  48 00 00 D8 */	b lbl_803025A0
lbl_803024CC:
/* 803024CC 002FE12C  38 60 FF ED */	li r3, -19
/* 803024D0 002FE130  48 00 00 D0 */	b lbl_803025A0
lbl_803024D4:
/* 803024D4 002FE134  38 60 00 00 */	li r3, 0
/* 803024D8 002FE138  48 00 00 C8 */	b lbl_803025A0
lbl_803024DC:
/* 803024DC 002FE13C  3B 40 00 00 */	li r26, 0
/* 803024E0 002FE140  3B C0 03 E8 */	li r30, 0x3e8
/* 803024E4 002FE144  7F FA F1 D6 */	mullw r31, r26, r30
/* 803024E8 002FE148  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 803024EC 002FE14C  3F A0 80 00 */	lis r29, 0x8000
/* 803024F0 002FE150  3B 83 4D D3 */	addi r28, r3, 0x10624DD3@l
lbl_803024F4:
/* 803024F4 002FE154  7E E4 BB 78 */	mr r4, r23
/* 803024F8 002FE158  7F 05 C3 78 */	mr r5, r24
/* 803024FC 002FE15C  38 79 00 0C */	addi r3, r25, 0xc
/* 80302500 002FE160  4B FE 54 A1 */	bl NANDWrite
/* 80302504 002FE164  2C 03 FF FD */	cmpwi r3, -3
/* 80302508 002FE168  7C 7B 1B 78 */	mr r27, r3
/* 8030250C 002FE16C  40 82 00 30 */	bne lbl_8030253C
/* 80302510 002FE170  80 1D 00 F8 */	lwz r0, 0xf8(r29)
/* 80302514 002FE174  54 00 F0 BE */	srwi r0, r0, 2
/* 80302518 002FE178  7C 1C 00 16 */	mulhwu r0, r28, r0
/* 8030251C 002FE17C  54 03 D1 BE */	srwi r3, r0, 6
/* 80302520 002FE180  7C 03 F0 16 */	mulhwu r0, r3, r30
/* 80302524 002FE184  1C 83 03 E8 */	mulli r4, r3, 0x3e8
/* 80302528 002FE188  7C 60 FA 14 */	add r3, r0, r31
/* 8030252C 002FE18C  4B F7 01 D9 */	bl OSSleepTicks
/* 80302530 002FE190  3B 5A 00 01 */	addi r26, r26, 1
/* 80302534 002FE194  28 1A 00 03 */	cmplwi r26, 3
/* 80302538 002FE198  41 80 FF BC */	blt lbl_803024F4
lbl_8030253C:
/* 8030253C 002FE19C  2C 1B FF FC */	cmpwi r27, -4
/* 80302540 002FE1A0  40 82 00 0C */	bne lbl_8030254C
/* 80302544 002FE1A4  38 60 FF DA */	li r3, -38
/* 80302548 002FE1A8  48 00 00 58 */	b lbl_803025A0
lbl_8030254C:
/* 8030254C 002FE1AC  2C 1B 00 00 */	cmpwi r27, 0
/* 80302550 002FE1B0  40 80 00 40 */	bge lbl_80302590
/* 80302554 002FE1B4  2C 1B FF FB */	cmpwi r27, -5
/* 80302558 002FE1B8  41 82 00 20 */	beq lbl_80302578
/* 8030255C 002FE1BC  40 80 00 10 */	bge lbl_8030256C
/* 80302560 002FE1C0  2C 1B FF F1 */	cmpwi r27, -15
/* 80302564 002FE1C4  41 82 00 14 */	beq lbl_80302578
/* 80302568 002FE1C8  48 00 00 20 */	b lbl_80302588
lbl_8030256C:
/* 8030256C 002FE1CC  2C 1B FF FD */	cmpwi r27, -3
/* 80302570 002FE1D0  40 80 00 18 */	bge lbl_80302588
/* 80302574 002FE1D4  48 00 00 0C */	b lbl_80302580
lbl_80302578:
/* 80302578 002FE1D8  38 60 FF D2 */	li r3, -46
/* 8030257C 002FE1DC  48 00 00 24 */	b lbl_803025A0
lbl_80302580:
/* 80302580 002FE1E0  38 60 FF DA */	li r3, -38
/* 80302584 002FE1E4  48 00 00 1C */	b lbl_803025A0
lbl_80302588:
/* 80302588 002FE1E8  38 60 FF ED */	li r3, -19
/* 8030258C 002FE1EC  48 00 00 14 */	b lbl_803025A0
lbl_80302590:
/* 80302590 002FE1F0  7C 1B C0 00 */	cmpw r27, r24
/* 80302594 002FE1F4  38 60 00 00 */	li r3, 0
/* 80302598 002FE1F8  41 82 00 08 */	beq lbl_803025A0
/* 8030259C 002FE1FC  38 60 FF ED */	li r3, -19
lbl_803025A0:
/* 803025A0 002FE200  39 61 00 30 */	addi r11, r1, 0x30
/* 803025A4 002FE204  4B EC 4B C1 */	bl _restgpr_23
/* 803025A8 002FE208  80 01 00 34 */	lwz r0, 0x34(r1)
/* 803025AC 002FE20C  7C 08 03 A6 */	mtlr r0
/* 803025B0 002FE210  38 21 00 30 */	addi r1, r1, 0x30
/* 803025B4 002FE214  4E 80 00 20 */	blr

.global NWC24FGetLength
NWC24FGetLength:
/* 803025B8 002FE218  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803025BC 002FE21C  7C 08 02 A6 */	mflr r0
/* 803025C0 002FE220  90 01 00 14 */	stw r0, 0x14(r1)
/* 803025C4 002FE224  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803025C8 002FE228  7C 9F 23 78 */	mr r31, r4
/* 803025CC 002FE22C  80 03 00 04 */	lwz r0, 4(r3)
/* 803025D0 002FE230  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 803025D4 002FE234  41 82 00 74 */	beq lbl_80302648
/* 803025D8 002FE238  80 63 00 98 */	lwz r3, 0x98(r3)
/* 803025DC 002FE23C  48 01 83 C5 */	bl VFGetFileSizeByFd
/* 803025E0 002FE240  2C 03 00 00 */	cmpwi r3, 0
/* 803025E4 002FE244  40 80 00 58 */	bge lbl_8030263C
/* 803025E8 002FE248  2C 03 00 05 */	cmpwi r3, 5
/* 803025EC 002FE24C  40 82 00 48 */	bne lbl_80302634
/* 803025F0 002FE250  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 803025F4 002FE254  48 01 83 F1 */	bl VFGetLastDeviceError
/* 803025F8 002FE258  2C 03 FF FB */	cmpwi r3, -5
/* 803025FC 002FE25C  41 82 00 20 */	beq lbl_8030261C
/* 80302600 002FE260  40 80 00 10 */	bge lbl_80302610
/* 80302604 002FE264  2C 03 FF F1 */	cmpwi r3, -15
/* 80302608 002FE268  41 82 00 14 */	beq lbl_8030261C
/* 8030260C 002FE26C  48 00 00 20 */	b lbl_8030262C
lbl_80302610:
/* 80302610 002FE270  2C 03 FF FD */	cmpwi r3, -3
/* 80302614 002FE274  40 80 00 18 */	bge lbl_8030262C
/* 80302618 002FE278  48 00 00 0C */	b lbl_80302624
lbl_8030261C:
/* 8030261C 002FE27C  38 60 FF D2 */	li r3, -46
/* 80302620 002FE280  48 00 00 40 */	b lbl_80302660
lbl_80302624:
/* 80302624 002FE284  38 60 FF DA */	li r3, -38
/* 80302628 002FE288  48 00 00 38 */	b lbl_80302660
lbl_8030262C:
/* 8030262C 002FE28C  38 60 FF EB */	li r3, -21
/* 80302630 002FE290  48 00 00 30 */	b lbl_80302660
lbl_80302634:
/* 80302634 002FE294  38 60 FF EB */	li r3, -21
/* 80302638 002FE298  48 00 00 28 */	b lbl_80302660
lbl_8030263C:
/* 8030263C 002FE29C  90 7F 00 00 */	stw r3, 0(r31)
/* 80302640 002FE2A0  38 60 00 00 */	li r3, 0
/* 80302644 002FE2A4  48 00 00 1C */	b lbl_80302660
lbl_80302648:
/* 80302648 002FE2A8  38 63 00 0C */	addi r3, r3, 0xc
/* 8030264C 002FE2AC  4B FE 58 81 */	bl NANDGetLength
/* 80302650 002FE2B0  2C 03 00 00 */	cmpwi r3, 0
/* 80302654 002FE2B4  38 60 00 00 */	li r3, 0
/* 80302658 002FE2B8  41 82 00 08 */	beq lbl_80302660
/* 8030265C 002FE2BC  38 60 FF EB */	li r3, -21
lbl_80302660:
/* 80302660 002FE2C0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80302664 002FE2C4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80302668 002FE2C8  7C 08 03 A6 */	mtlr r0
/* 8030266C 002FE2CC  38 21 00 10 */	addi r1, r1, 0x10
/* 80302670 002FE2D0  4E 80 00 20 */	blr

.global BufferedWrite
BufferedWrite:
/* 80302674 002FE2D4  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80302678 002FE2D8  7C 08 02 A6 */	mflr r0
/* 8030267C 002FE2DC  90 01 00 44 */	stw r0, 0x44(r1)
/* 80302680 002FE2E0  39 61 00 40 */	addi r11, r1, 0x40
/* 80302684 002FE2E4  4B EC 4A 81 */	bl _savegpr_18
/* 80302688 002FE2E8  80 CD AF 90 */	lwz r6, lbl_80640250-_SDA_BASE_(r13)
/* 8030268C 002FE2EC  7C 7B 1B 78 */	mr r27, r3
/* 80302690 002FE2F0  83 A5 00 08 */	lwz r29, 8(r5)
/* 80302694 002FE2F4  7C 9E 23 78 */	mr r30, r4
/* 80302698 002FE2F8  7C B7 2B 78 */	mr r23, r5
/* 8030269C 002FE2FC  3B 86 0B 00 */	addi r28, r6, 0xb00
/* 803026A0 002FE300  3B 20 00 00 */	li r25, 0
/* 803026A4 002FE304  3E 40 80 00 */	lis r18, 0x8000
/* 803026A8 002FE308  3E 60 10 62 */	lis r19, 0x1062
/* 803026AC 002FE30C  3A 80 00 00 */	li r20, 0
/* 803026B0 002FE310  3A A0 03 E8 */	li r21, 0x3e8
/* 803026B4 002FE314  48 00 01 28 */	b lbl_803027DC
lbl_803026B8:
/* 803026B8 002FE318  22 DD 02 00 */	subfic r22, r29, 0x200
/* 803026BC 002FE31C  7C 1E B0 40 */	cmplw r30, r22
/* 803026C0 002FE320  40 80 00 08 */	bge lbl_803026C8
/* 803026C4 002FE324  7F D6 F3 78 */	mr r22, r30
lbl_803026C8:
/* 803026C8 002FE328  7F 64 DB 78 */	mr r4, r27
/* 803026CC 002FE32C  7E C5 B3 78 */	mr r5, r22
/* 803026D0 002FE330  7C 7C EA 14 */	add r3, r28, r29
/* 803026D4 002FE334  4B D0 19 2D */	bl memcpy
/* 803026D8 002FE338  7F BD B2 14 */	add r29, r29, r22
/* 803026DC 002FE33C  7F D6 F0 50 */	subf r30, r22, r30
/* 803026E0 002FE340  28 1D 02 00 */	cmplwi r29, 0x200
/* 803026E4 002FE344  7F 7B B2 14 */	add r27, r27, r22
/* 803026E8 002FE348  41 80 00 F4 */	blt lbl_803027DC
/* 803026EC 002FE34C  80 17 00 04 */	lwz r0, 4(r23)
/* 803026F0 002FE350  3B A0 00 00 */	li r29, 0
/* 803026F4 002FE354  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 803026F8 002FE358  41 82 00 70 */	beq lbl_80302768
/* 803026FC 002FE35C  80 77 00 98 */	lwz r3, 0x98(r23)
/* 80302700 002FE360  7F 84 E3 78 */	mr r4, r28
/* 80302704 002FE364  38 A0 02 00 */	li r5, 0x200
/* 80302708 002FE368  48 01 82 0D */	bl VFWriteFile
/* 8030270C 002FE36C  2C 03 00 00 */	cmpwi r3, 0
/* 80302710 002FE370  41 82 00 CC */	beq lbl_803027DC
/* 80302714 002FE374  2C 03 00 05 */	cmpwi r3, 5
/* 80302718 002FE378  40 82 00 48 */	bne lbl_80302760
/* 8030271C 002FE37C  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 80302720 002FE380  48 01 82 C5 */	bl VFGetLastDeviceError
/* 80302724 002FE384  2C 03 FF FB */	cmpwi r3, -5
/* 80302728 002FE388  41 82 00 20 */	beq lbl_80302748
/* 8030272C 002FE38C  40 80 00 10 */	bge lbl_8030273C
/* 80302730 002FE390  2C 03 FF F1 */	cmpwi r3, -15
/* 80302734 002FE394  41 82 00 14 */	beq lbl_80302748
/* 80302738 002FE398  48 00 00 20 */	b lbl_80302758
lbl_8030273C:
/* 8030273C 002FE39C  2C 03 FF FD */	cmpwi r3, -3
/* 80302740 002FE3A0  40 80 00 18 */	bge lbl_80302758
/* 80302744 002FE3A4  48 00 00 0C */	b lbl_80302750
lbl_80302748:
/* 80302748 002FE3A8  3B 20 FF D2 */	li r25, -46
/* 8030274C 002FE3AC  48 00 00 98 */	b lbl_803027E4
lbl_80302750:
/* 80302750 002FE3B0  3B 20 FF DA */	li r25, -38
/* 80302754 002FE3B4  48 00 00 90 */	b lbl_803027E4
lbl_80302758:
/* 80302758 002FE3B8  3B 20 FF ED */	li r25, -19
/* 8030275C 002FE3BC  48 00 00 88 */	b lbl_803027E4
lbl_80302760:
/* 80302760 002FE3C0  3B 20 FF ED */	li r25, -19
/* 80302764 002FE3C4  48 00 00 80 */	b lbl_803027E4
lbl_80302768:
/* 80302768 002FE3C8  7E D4 A9 D6 */	mullw r22, r20, r21
/* 8030276C 002FE3CC  3B F3 4D D3 */	addi r31, r19, 0x4dd3
/* 80302770 002FE3D0  3B 00 00 00 */	li r24, 0
lbl_80302774:
/* 80302774 002FE3D4  7F 84 E3 78 */	mr r4, r28
/* 80302778 002FE3D8  38 77 00 0C */	addi r3, r23, 0xc
/* 8030277C 002FE3DC  38 A0 02 00 */	li r5, 0x200
/* 80302780 002FE3E0  4B FE 52 21 */	bl NANDWrite
/* 80302784 002FE3E4  2C 03 FF FD */	cmpwi r3, -3
/* 80302788 002FE3E8  7C 7A 1B 78 */	mr r26, r3
/* 8030278C 002FE3EC  40 82 00 30 */	bne lbl_803027BC
/* 80302790 002FE3F0  80 12 00 F8 */	lwz r0, 0xf8(r18)
/* 80302794 002FE3F4  54 00 F0 BE */	srwi r0, r0, 2
/* 80302798 002FE3F8  7C 1F 00 16 */	mulhwu r0, r31, r0
/* 8030279C 002FE3FC  54 03 D1 BE */	srwi r3, r0, 6
/* 803027A0 002FE400  7C 03 A8 16 */	mulhwu r0, r3, r21
/* 803027A4 002FE404  1C 83 03 E8 */	mulli r4, r3, 0x3e8
/* 803027A8 002FE408  7C 60 B2 14 */	add r3, r0, r22
/* 803027AC 002FE40C  4B F6 FF 59 */	bl OSSleepTicks
/* 803027B0 002FE410  3B 18 00 01 */	addi r24, r24, 1
/* 803027B4 002FE414  28 18 00 03 */	cmplwi r24, 3
/* 803027B8 002FE418  41 80 FF BC */	blt lbl_80302774
lbl_803027BC:
/* 803027BC 002FE41C  2C 1A FF FC */	cmpwi r26, -4
/* 803027C0 002FE420  40 82 00 0C */	bne lbl_803027CC
/* 803027C4 002FE424  38 60 FF DA */	li r3, -38
/* 803027C8 002FE428  48 00 00 24 */	b lbl_803027EC
lbl_803027CC:
/* 803027CC 002FE42C  2C 1A 02 00 */	cmpwi r26, 0x200
/* 803027D0 002FE430  41 82 00 0C */	beq lbl_803027DC
/* 803027D4 002FE434  3B 20 FF ED */	li r25, -19
/* 803027D8 002FE438  48 00 00 0C */	b lbl_803027E4
lbl_803027DC:
/* 803027DC 002FE43C  2C 1E 00 00 */	cmpwi r30, 0
/* 803027E0 002FE440  40 82 FE D8 */	bne lbl_803026B8
lbl_803027E4:
/* 803027E4 002FE444  93 B7 00 08 */	stw r29, 8(r23)
/* 803027E8 002FE448  7F 23 CB 78 */	mr r3, r25
lbl_803027EC:
/* 803027EC 002FE44C  39 61 00 40 */	addi r11, r1, 0x40
/* 803027F0 002FE450  4B EC 49 61 */	bl _restgpr_18
/* 803027F4 002FE454  80 01 00 44 */	lwz r0, 0x44(r1)
/* 803027F8 002FE458  7C 08 03 A6 */	mtlr r0
/* 803027FC 002FE45C  38 21 00 40 */	addi r1, r1, 0x40
/* 80302800 002FE460  4E 80 00 20 */	blr

.global BufferedWriteFlush
BufferedWriteFlush:
/* 80302804 002FE464  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80302808 002FE468  7C 08 02 A6 */	mflr r0
/* 8030280C 002FE46C  90 01 00 34 */	stw r0, 0x34(r1)
/* 80302810 002FE470  39 61 00 30 */	addi r11, r1, 0x30
/* 80302814 002FE474  4B EC 49 01 */	bl _savegpr_22
/* 80302818 002FE478  83 E3 00 08 */	lwz r31, 8(r3)
/* 8030281C 002FE47C  7C 7C 1B 78 */	mr r28, r3
/* 80302820 002FE480  80 8D AF 90 */	lwz r4, lbl_80640250-_SDA_BASE_(r13)
/* 80302824 002FE484  3B A0 00 00 */	li r29, 0
/* 80302828 002FE488  2C 1F 00 00 */	cmpwi r31, 0
/* 8030282C 002FE48C  3B C4 0B 00 */	addi r30, r4, 0xb00
/* 80302830 002FE490  40 82 00 0C */	bne lbl_8030283C
/* 80302834 002FE494  38 60 00 00 */	li r3, 0
/* 80302838 002FE498  48 00 01 20 */	b lbl_80302958
lbl_8030283C:
/* 8030283C 002FE49C  7C 9E FA 14 */	add r4, r30, r31
/* 80302840 002FE4A0  38 A0 00 00 */	li r5, 0
/* 80302844 002FE4A4  48 00 00 10 */	b lbl_80302854
lbl_80302848:
/* 80302848 002FE4A8  98 A4 00 00 */	stb r5, 0(r4)
/* 8030284C 002FE4AC  3B FF 00 01 */	addi r31, r31, 1
/* 80302850 002FE4B0  38 84 00 01 */	addi r4, r4, 1
lbl_80302854:
/* 80302854 002FE4B4  57 E0 06 FF */	clrlwi. r0, r31, 0x1b
/* 80302858 002FE4B8  40 82 FF F0 */	bne lbl_80302848
/* 8030285C 002FE4BC  80 03 00 04 */	lwz r0, 4(r3)
/* 80302860 002FE4C0  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 80302864 002FE4C4  41 82 00 74 */	beq lbl_803028D8
/* 80302868 002FE4C8  80 63 00 98 */	lwz r3, 0x98(r3)
/* 8030286C 002FE4CC  7F C4 F3 78 */	mr r4, r30
/* 80302870 002FE4D0  7F E5 FB 78 */	mr r5, r31
/* 80302874 002FE4D4  48 01 80 A1 */	bl VFWriteFile
/* 80302878 002FE4D8  2C 03 00 00 */	cmpwi r3, 0
/* 8030287C 002FE4DC  41 82 00 54 */	beq lbl_803028D0
/* 80302880 002FE4E0  2C 03 00 05 */	cmpwi r3, 5
/* 80302884 002FE4E4  40 82 00 48 */	bne lbl_803028CC
/* 80302888 002FE4E8  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 8030288C 002FE4EC  48 01 81 59 */	bl VFGetLastDeviceError
/* 80302890 002FE4F0  2C 03 FF FB */	cmpwi r3, -5
/* 80302894 002FE4F4  41 82 00 20 */	beq lbl_803028B4
/* 80302898 002FE4F8  40 80 00 10 */	bge lbl_803028A8
/* 8030289C 002FE4FC  2C 03 FF F1 */	cmpwi r3, -15
/* 803028A0 002FE500  41 82 00 14 */	beq lbl_803028B4
/* 803028A4 002FE504  48 00 00 20 */	b lbl_803028C4
lbl_803028A8:
/* 803028A8 002FE508  2C 03 FF FD */	cmpwi r3, -3
/* 803028AC 002FE50C  40 80 00 18 */	bge lbl_803028C4
/* 803028B0 002FE510  48 00 00 0C */	b lbl_803028BC
lbl_803028B4:
/* 803028B4 002FE514  3B A0 FF D2 */	li r29, -46
/* 803028B8 002FE518  48 00 00 18 */	b lbl_803028D0
lbl_803028BC:
/* 803028BC 002FE51C  3B A0 FF DA */	li r29, -38
/* 803028C0 002FE520  48 00 00 10 */	b lbl_803028D0
lbl_803028C4:
/* 803028C4 002FE524  3B A0 FF ED */	li r29, -19
/* 803028C8 002FE528  48 00 00 08 */	b lbl_803028D0
lbl_803028CC:
/* 803028CC 002FE52C  3B A0 FF ED */	li r29, -19
lbl_803028D0:
/* 803028D0 002FE530  7F A3 EB 78 */	mr r3, r29
/* 803028D4 002FE534  48 00 00 84 */	b lbl_80302958
lbl_803028D8:
/* 803028D8 002FE538  3A C0 00 00 */	li r22, 0
/* 803028DC 002FE53C  3B 40 03 E8 */	li r26, 0x3e8
/* 803028E0 002FE540  7F 76 D1 D6 */	mullw r27, r22, r26
/* 803028E4 002FE544  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 803028E8 002FE548  3F 20 80 00 */	lis r25, 0x8000
/* 803028EC 002FE54C  3B 03 4D D3 */	addi r24, r3, 0x10624DD3@l
lbl_803028F0:
/* 803028F0 002FE550  7F C4 F3 78 */	mr r4, r30
/* 803028F4 002FE554  7F E5 FB 78 */	mr r5, r31
/* 803028F8 002FE558  38 7C 00 0C */	addi r3, r28, 0xc
/* 803028FC 002FE55C  4B FE 50 A5 */	bl NANDWrite
/* 80302900 002FE560  2C 03 FF FD */	cmpwi r3, -3
/* 80302904 002FE564  7C 77 1B 78 */	mr r23, r3
/* 80302908 002FE568  40 82 00 30 */	bne lbl_80302938
/* 8030290C 002FE56C  80 19 00 F8 */	lwz r0, 0xf8(r25)
/* 80302910 002FE570  54 00 F0 BE */	srwi r0, r0, 2
/* 80302914 002FE574  7C 18 00 16 */	mulhwu r0, r24, r0
/* 80302918 002FE578  54 03 D1 BE */	srwi r3, r0, 6
/* 8030291C 002FE57C  7C 03 D0 16 */	mulhwu r0, r3, r26
/* 80302920 002FE580  1C 83 03 E8 */	mulli r4, r3, 0x3e8
/* 80302924 002FE584  7C 60 DA 14 */	add r3, r0, r27
/* 80302928 002FE588  4B F6 FD DD */	bl OSSleepTicks
/* 8030292C 002FE58C  3A D6 00 01 */	addi r22, r22, 1
/* 80302930 002FE590  28 16 00 03 */	cmplwi r22, 3
/* 80302934 002FE594  41 80 FF BC */	blt lbl_803028F0
lbl_80302938:
/* 80302938 002FE598  2C 17 FF FC */	cmpwi r23, -4
/* 8030293C 002FE59C  40 82 00 0C */	bne lbl_80302948
/* 80302940 002FE5A0  38 60 FF DA */	li r3, -38
/* 80302944 002FE5A4  48 00 00 14 */	b lbl_80302958
lbl_80302948:
/* 80302948 002FE5A8  7C 17 F8 40 */	cmplw r23, r31
/* 8030294C 002FE5AC  41 82 00 08 */	beq lbl_80302954
/* 80302950 002FE5B0  3B A0 FF ED */	li r29, -19
lbl_80302954:
/* 80302954 002FE5B4  7F A3 EB 78 */	mr r3, r29
lbl_80302958:
/* 80302958 002FE5B8  39 61 00 30 */	addi r11, r1, 0x30
/* 8030295C 002FE5BC  4B EC 48 05 */	bl _restgpr_22
/* 80302960 002FE5C0  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80302964 002FE5C4  7C 08 03 A6 */	mtlr r0
/* 80302968 002FE5C8  38 21 00 30 */	addi r1, r1, 0x30
/* 8030296C 002FE5CC  4E 80 00 20 */	blr

.global BufferedRead
BufferedRead:
/* 80302970 002FE5D0  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 80302974 002FE5D4  7C 08 02 A6 */	mflr r0
/* 80302978 002FE5D8  90 01 00 64 */	stw r0, 0x64(r1)
/* 8030297C 002FE5DC  39 61 00 60 */	addi r11, r1, 0x60
/* 80302980 002FE5E0  4B EC 47 79 */	bl _savegpr_15
/* 80302984 002FE5E4  80 0D AF 78 */	lwz r0, lbl_80640238-_SDA_BASE_(r13)
/* 80302988 002FE5E8  7C 8F 23 78 */	mr r15, r4
/* 8030298C 002FE5EC  80 8D AF 90 */	lwz r4, lbl_80640250-_SDA_BASE_(r13)
/* 80302990 002FE5F0  7C 73 1B 78 */	mr r19, r3
/* 80302994 002FE5F4  2C 00 00 00 */	cmpwi r0, 0
/* 80302998 002FE5F8  7C B0 2B 78 */	mr r16, r5
/* 8030299C 002FE5FC  7D F9 7B 78 */	mr r25, r15
/* 803029A0 002FE600  3A 84 09 00 */	addi r20, r4, 0x900
/* 803029A4 002FE604  3A 40 00 00 */	li r18, 0
/* 803029A8 002FE608  41 82 00 0C */	beq lbl_803029B4
/* 803029AC 002FE60C  38 60 FF EA */	li r3, -22
/* 803029B0 002FE610  48 00 01 90 */	b lbl_80302B40
lbl_803029B4:
/* 803029B4 002FE614  80 05 00 00 */	lwz r0, 0(r5)
/* 803029B8 002FE618  90 0D AF 78 */	stw r0, lbl_80640238-_SDA_BASE_(r13)
/* 803029BC 002FE61C  82 A5 00 08 */	lwz r21, 8(r5)
/* 803029C0 002FE620  56 A0 00 01 */	rlwinm. r0, r21, 0, 0, 0
/* 803029C4 002FE624  41 82 00 0C */	beq lbl_803029D0
/* 803029C8 002FE628  38 60 FF D8 */	li r3, -40
/* 803029CC 002FE62C  48 00 01 74 */	b lbl_80302B40
lbl_803029D0:
/* 803029D0 002FE630  3F 60 80 00 */	lis r27, 0x8000
/* 803029D4 002FE634  3F 80 10 62 */	lis r28, 0x1062
/* 803029D8 002FE638  3B A0 00 00 */	li r29, 0
/* 803029DC 002FE63C  3B C0 03 E8 */	li r30, 0x3e8
/* 803029E0 002FE640  48 00 01 38 */	b lbl_80302B18
lbl_803029E4:
/* 803029E4 002FE644  22 F5 02 00 */	subfic r23, r21, 0x200
/* 803029E8 002FE648  3B 00 02 00 */	li r24, 0x200
/* 803029EC 002FE64C  7C 19 B8 40 */	cmplw r25, r23
/* 803029F0 002FE650  40 80 00 14 */	bge lbl_80302A04
/* 803029F4 002FE654  7C 79 AA 14 */	add r3, r25, r21
/* 803029F8 002FE658  7F 37 CB 78 */	mr r23, r25
/* 803029FC 002FE65C  38 03 00 1F */	addi r0, r3, 0x1f
/* 80302A00 002FE660  54 18 00 34 */	rlwinm r24, r0, 0, 0, 0x1a
lbl_80302A04:
/* 80302A04 002FE664  80 10 00 04 */	lwz r0, 4(r16)
/* 80302A08 002FE668  54 00 05 EF */	rlwinm. r0, r0, 0, 0x17, 0x17
/* 80302A0C 002FE66C  41 82 00 7C */	beq lbl_80302A88
/* 80302A10 002FE670  80 70 00 98 */	lwz r3, 0x98(r16)
/* 80302A14 002FE674  7E 84 A3 78 */	mr r4, r20
/* 80302A18 002FE678  7F 05 C3 78 */	mr r5, r24
/* 80302A1C 002FE67C  38 C1 00 08 */	addi r6, r1, 8
/* 80302A20 002FE680  48 01 7E 59 */	bl VFReadFile
/* 80302A24 002FE684  2C 03 00 00 */	cmpwi r3, 0
/* 80302A28 002FE688  41 82 00 58 */	beq lbl_80302A80
/* 80302A2C 002FE68C  2C 03 00 05 */	cmpwi r3, 5
/* 80302A30 002FE690  40 82 00 48 */	bne lbl_80302A78
/* 80302A34 002FE694  38 6D 8C 88 */	addi r3, r13, lbl_8063DF48-_SDA_BASE_
/* 80302A38 002FE698  48 01 7F AD */	bl VFGetLastDeviceError
/* 80302A3C 002FE69C  2C 03 FF FB */	cmpwi r3, -5
/* 80302A40 002FE6A0  41 82 00 20 */	beq lbl_80302A60
/* 80302A44 002FE6A4  40 80 00 10 */	bge lbl_80302A54
/* 80302A48 002FE6A8  2C 03 FF F1 */	cmpwi r3, -15
/* 80302A4C 002FE6AC  41 82 00 14 */	beq lbl_80302A60
/* 80302A50 002FE6B0  48 00 00 20 */	b lbl_80302A70
lbl_80302A54:
/* 80302A54 002FE6B4  2C 03 FF FD */	cmpwi r3, -3
/* 80302A58 002FE6B8  40 80 00 18 */	bge lbl_80302A70
/* 80302A5C 002FE6BC  48 00 00 0C */	b lbl_80302A68
lbl_80302A60:
/* 80302A60 002FE6C0  3A 40 FF D2 */	li r18, -46
/* 80302A64 002FE6C4  48 00 00 BC */	b lbl_80302B20
lbl_80302A68:
/* 80302A68 002FE6C8  3A 40 FF DA */	li r18, -38
/* 80302A6C 002FE6CC  48 00 00 B4 */	b lbl_80302B20
lbl_80302A70:
/* 80302A70 002FE6D0  3A 40 FF EE */	li r18, -18
/* 80302A74 002FE6D4  48 00 00 AC */	b lbl_80302B20
lbl_80302A78:
/* 80302A78 002FE6D8  3A 40 FF EE */	li r18, -18
/* 80302A7C 002FE6DC  48 00 00 A4 */	b lbl_80302B20
lbl_80302A80:
/* 80302A80 002FE6E0  82 C1 00 08 */	lwz r22, 8(r1)
/* 80302A84 002FE6E4  48 00 00 68 */	b lbl_80302AEC
lbl_80302A88:
/* 80302A88 002FE6E8  7F FD F1 D6 */	mullw r31, r29, r30
/* 80302A8C 002FE6EC  3B 5C 4D D3 */	addi r26, r28, 0x4dd3
/* 80302A90 002FE6F0  3A 20 00 00 */	li r17, 0
lbl_80302A94:
/* 80302A94 002FE6F4  7E 84 A3 78 */	mr r4, r20
/* 80302A98 002FE6F8  7F 05 C3 78 */	mr r5, r24
/* 80302A9C 002FE6FC  38 70 00 0C */	addi r3, r16, 0xc
/* 80302AA0 002FE700  4B FE 4E 21 */	bl NANDRead
/* 80302AA4 002FE704  2C 03 FF FD */	cmpwi r3, -3
/* 80302AA8 002FE708  7C 76 1B 78 */	mr r22, r3
/* 80302AAC 002FE70C  40 82 00 30 */	bne lbl_80302ADC
/* 80302AB0 002FE710  80 1B 00 F8 */	lwz r0, 0xf8(r27)
/* 80302AB4 002FE714  54 00 F0 BE */	srwi r0, r0, 2
/* 80302AB8 002FE718  7C 1A 00 16 */	mulhwu r0, r26, r0
/* 80302ABC 002FE71C  54 03 D1 BE */	srwi r3, r0, 6
/* 80302AC0 002FE720  7C 03 F0 16 */	mulhwu r0, r3, r30
/* 80302AC4 002FE724  1C 83 03 E8 */	mulli r4, r3, 0x3e8
/* 80302AC8 002FE728  7C 60 FA 14 */	add r3, r0, r31
/* 80302ACC 002FE72C  4B F6 FC 39 */	bl OSSleepTicks
/* 80302AD0 002FE730  3A 31 00 01 */	addi r17, r17, 1
/* 80302AD4 002FE734  28 11 00 03 */	cmplwi r17, 3
/* 80302AD8 002FE738  41 80 FF BC */	blt lbl_80302A94
lbl_80302ADC:
/* 80302ADC 002FE73C  2C 16 FF FC */	cmpwi r22, -4
/* 80302AE0 002FE740  40 82 00 0C */	bne lbl_80302AEC
/* 80302AE4 002FE744  38 60 FF DA */	li r3, -38
/* 80302AE8 002FE748  48 00 00 58 */	b lbl_80302B40
lbl_80302AEC:
/* 80302AEC 002FE74C  7C 16 C0 40 */	cmplw r22, r24
/* 80302AF0 002FE750  41 82 00 0C */	beq lbl_80302AFC
/* 80302AF4 002FE754  3A 40 FF EE */	li r18, -18
/* 80302AF8 002FE758  48 00 00 28 */	b lbl_80302B20
lbl_80302AFC:
/* 80302AFC 002FE75C  7E 63 9B 78 */	mr r3, r19
/* 80302B00 002FE760  7E E5 BB 78 */	mr r5, r23
/* 80302B04 002FE764  7C 94 AA 14 */	add r4, r20, r21
/* 80302B08 002FE768  4B D0 14 F9 */	bl memcpy
/* 80302B0C 002FE76C  7E 73 BA 14 */	add r19, r19, r23
/* 80302B10 002FE770  7F 37 C8 50 */	subf r25, r23, r25
/* 80302B14 002FE774  3A A0 00 00 */	li r21, 0
lbl_80302B18:
/* 80302B18 002FE778  2C 19 00 00 */	cmpwi r25, 0
/* 80302B1C 002FE77C  40 82 FE C8 */	bne lbl_803029E4
lbl_80302B20:
/* 80302B20 002FE780  80 90 00 08 */	lwz r4, 8(r16)
/* 80302B24 002FE784  38 00 00 00 */	li r0, 0
/* 80302B28 002FE788  7E 43 93 78 */	mr r3, r18
/* 80302B2C 002FE78C  7C 84 7A 14 */	add r4, r4, r15
/* 80302B30 002FE790  54 84 06 FE */	clrlwi r4, r4, 0x1b
/* 80302B34 002FE794  64 84 80 00 */	oris r4, r4, 0x8000
/* 80302B38 002FE798  90 90 00 08 */	stw r4, 8(r16)
/* 80302B3C 002FE79C  90 0D AF 78 */	stw r0, lbl_80640238-_SDA_BASE_(r13)
lbl_80302B40:
/* 80302B40 002FE7A0  39 61 00 60 */	addi r11, r1, 0x60
/* 80302B44 002FE7A4  4B EC 46 01 */	bl _restgpr_15
/* 80302B48 002FE7A8  80 01 00 64 */	lwz r0, 0x64(r1)
/* 80302B4C 002FE7AC  7C 08 03 A6 */	mtlr r0
/* 80302B50 002FE7B0  38 21 00 60 */	addi r1, r1, 0x60
/* 80302B54 002FE7B4  4E 80 00 20 */	blr