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
|