summaryrefslogtreecommitdiff
path: root/asm/SDK/VF/pdm_partition.s
blob: 3d2b758bccd35fc5fcba76df849b38fb8390a02d (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
.include "macros.inc"

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

.global VFipdm_part_get_start_sector
VFipdm_part_get_start_sector:
/* 803078E0 00303540  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 803078E4 00303544  7C 08 02 A6 */	mflr r0
/* 803078E8 00303548  90 01 00 94 */	stw r0, 0x94(r1)
/* 803078EC 0030354C  38 81 00 20 */	addi r4, r1, 0x20
/* 803078F0 00303550  93 E1 00 8C */	stw r31, 0x8c(r1)
/* 803078F4 00303554  7C 7F 1B 78 */	mr r31, r3
/* 803078F8 00303558  93 C1 00 88 */	stw r30, 0x88(r1)
/* 803078FC 0030355C  93 A1 00 84 */	stw r29, 0x84(r1)
/* 80307900 00303560  A3 C3 00 0C */	lhz r30, 0xc(r3)
/* 80307904 00303564  80 63 00 04 */	lwz r3, 4(r3)
/* 80307908 00303568  48 00 0F FD */	bl VFipdm_mbr_get_mbr_part_table
/* 8030790C 0030356C  2C 03 00 00 */	cmpwi r3, 0
/* 80307910 00303570  41 82 00 10 */	beq lbl_80307920
/* 80307914 00303574  2C 03 00 05 */	cmpwi r3, 5
/* 80307918 00303578  41 82 00 08 */	beq lbl_80307920
/* 8030791C 0030357C  48 00 01 08 */	b lbl_80307A24
lbl_80307920:
/* 80307920 00303580  2C 03 00 05 */	cmpwi r3, 5
/* 80307924 00303584  41 82 00 BC */	beq lbl_803079E0
/* 80307928 00303588  28 1E 00 04 */	cmplwi r30, 4
/* 8030792C 0030358C  40 80 00 48 */	bge lbl_80307974
/* 80307930 00303590  1C BE 00 14 */	mulli r5, r30, 0x14
/* 80307934 00303594  38 61 00 34 */	addi r3, r1, 0x34
/* 80307938 00303598  7C 03 28 2E */	lwzx r0, r3, r5
/* 8030793C 0030359C  2C 00 00 00 */	cmpwi r0, 0
/* 80307940 003035A0  40 82 00 0C */	bne lbl_8030794C
/* 80307944 003035A4  38 60 00 07 */	li r3, 7
/* 80307948 003035A8  48 00 00 DC */	b lbl_80307A24
lbl_8030794C:
/* 8030794C 003035AC  90 1F 00 14 */	stw r0, 0x14(r31)
/* 80307950 003035B0  38 81 00 38 */	addi r4, r1, 0x38
/* 80307954 003035B4  38 61 00 29 */	addi r3, r1, 0x29
/* 80307958 003035B8  7C 04 28 2E */	lwzx r0, r4, r5
/* 8030795C 003035BC  90 1F 00 18 */	stw r0, 0x18(r31)
/* 80307960 003035C0  7C 03 28 AE */	lbzx r0, r3, r5
/* 80307964 003035C4  98 1F 00 20 */	stb r0, 0x20(r31)
/* 80307968 003035C8  80 01 00 20 */	lwz r0, 0x20(r1)
/* 8030796C 003035CC  90 1F 00 1C */	stw r0, 0x1c(r31)
/* 80307970 003035D0  48 00 00 B0 */	b lbl_80307A20
lbl_80307974:
/* 80307974 003035D4  3B A0 00 04 */	li r29, 4
lbl_80307978:
/* 80307978 003035D8  80 7F 00 04 */	lwz r3, 4(r31)
/* 8030797C 003035DC  38 81 00 20 */	addi r4, r1, 0x20
/* 80307980 003035E0  48 00 10 45 */	bl VFipdm_mbr_get_epbr_part_table
/* 80307984 003035E4  2C 03 00 00 */	cmpwi r3, 0
/* 80307988 003035E8  41 82 00 10 */	beq lbl_80307998
/* 8030798C 003035EC  2C 03 00 06 */	cmpwi r3, 6
/* 80307990 003035F0  41 82 00 08 */	beq lbl_80307998
/* 80307994 003035F4  48 00 00 90 */	b lbl_80307A24
lbl_80307998:
/* 80307998 003035F8  2C 03 00 06 */	cmpwi r3, 6
/* 8030799C 003035FC  41 82 00 34 */	beq lbl_803079D0
/* 803079A0 00303600  57 A0 04 3E */	clrlwi r0, r29, 0x10
/* 803079A4 00303604  7C 1E 00 40 */	cmplw r30, r0
/* 803079A8 00303608  40 82 00 30 */	bne lbl_803079D8
/* 803079AC 0030360C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 803079B0 00303610  90 1F 00 14 */	stw r0, 0x14(r31)
/* 803079B4 00303614  80 01 00 38 */	lwz r0, 0x38(r1)
/* 803079B8 00303618  90 1F 00 18 */	stw r0, 0x18(r31)
/* 803079BC 0030361C  88 01 00 29 */	lbz r0, 0x29(r1)
/* 803079C0 00303620  98 1F 00 20 */	stb r0, 0x20(r31)
/* 803079C4 00303624  80 01 00 20 */	lwz r0, 0x20(r1)
/* 803079C8 00303628  90 1F 00 1C */	stw r0, 0x1c(r31)
/* 803079CC 0030362C  48 00 00 54 */	b lbl_80307A20
lbl_803079D0:
/* 803079D0 00303630  38 60 00 07 */	li r3, 7
/* 803079D4 00303634  48 00 00 50 */	b lbl_80307A24
lbl_803079D8:
/* 803079D8 00303638  3B BD 00 01 */	addi r29, r29, 1
/* 803079DC 0030363C  4B FF FF 9C */	b lbl_80307978
lbl_803079E0:
/* 803079E0 00303640  28 1E 00 01 */	cmplwi r30, 1
/* 803079E4 00303644  41 80 00 0C */	blt lbl_803079F0
/* 803079E8 00303648  38 60 00 07 */	li r3, 7
/* 803079EC 0030364C  48 00 00 38 */	b lbl_80307A24
lbl_803079F0:
/* 803079F0 00303650  80 7F 00 04 */	lwz r3, 4(r31)
/* 803079F4 00303654  38 81 00 08 */	addi r4, r1, 8
/* 803079F8 00303658  4B FF FC DD */	bl VFipdm_disk_get_media_information
/* 803079FC 0030365C  2C 03 00 00 */	cmpwi r3, 0
/* 80307A00 00303660  41 82 00 08 */	beq lbl_80307A08
/* 80307A04 00303664  48 00 00 20 */	b lbl_80307A24
lbl_80307A08:
/* 80307A08 00303668  38 60 00 00 */	li r3, 0
/* 80307A0C 0030366C  90 7F 00 14 */	stw r3, 0x14(r31)
/* 80307A10 00303670  80 01 00 08 */	lwz r0, 8(r1)
/* 80307A14 00303674  90 1F 00 18 */	stw r0, 0x18(r31)
/* 80307A18 00303678  98 7F 00 20 */	stb r3, 0x20(r31)
/* 80307A1C 0030367C  90 7F 00 1C */	stw r3, 0x1c(r31)
lbl_80307A20:
/* 80307A20 00303680  38 60 00 00 */	li r3, 0
lbl_80307A24:
/* 80307A24 00303684  80 01 00 94 */	lwz r0, 0x94(r1)
/* 80307A28 00303688  83 E1 00 8C */	lwz r31, 0x8c(r1)
/* 80307A2C 0030368C  83 C1 00 88 */	lwz r30, 0x88(r1)
/* 80307A30 00303690  83 A1 00 84 */	lwz r29, 0x84(r1)
/* 80307A34 00303694  7C 08 03 A6 */	mtlr r0
/* 80307A38 00303698  38 21 00 90 */	addi r1, r1, 0x90
/* 80307A3C 0030369C  4E 80 00 20 */	blr

.global VFipdm_part_chg_ltop
VFipdm_part_chg_ltop:
/* 80307A40 003036A0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80307A44 003036A4  7C 08 02 A6 */	mflr r0
/* 80307A48 003036A8  90 01 00 24 */	stw r0, 0x24(r1)
/* 80307A4C 003036AC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80307A50 003036B0  7C BF 2B 78 */	mr r31, r5
/* 80307A54 003036B4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80307A58 003036B8  7C 9E 23 78 */	mr r30, r4
/* 80307A5C 003036BC  38 81 00 08 */	addi r4, r1, 8
/* 80307A60 003036C0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80307A64 003036C4  7C 7D 1B 78 */	mr r29, r3
/* 80307A68 003036C8  80 63 00 04 */	lwz r3, 4(r3)
/* 80307A6C 003036CC  4B FF FB 71 */	bl VFipdm_disk_get_lba_size
/* 80307A70 003036D0  A0 01 00 08 */	lhz r0, 8(r1)
/* 80307A74 003036D4  7C 1F 00 40 */	cmplw r31, r0
/* 80307A78 003036D8  40 82 00 18 */	bne lbl_80307A90
/* 80307A7C 003036DC  80 1D 00 1C */	lwz r0, 0x1c(r29)
/* 80307A80 003036E0  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 80307A84 003036E4  7C 00 F2 14 */	add r0, r0, r30
/* 80307A88 003036E8  7C 63 02 14 */	add r3, r3, r0
/* 80307A8C 003036EC  48 00 00 74 */	b lbl_80307B00
lbl_80307A90:
/* 80307A90 003036F0  54 04 BE 7E */	rlwinm r4, r0, 0x17, 0x19, 0x1f
/* 80307A94 003036F4  80 7D 00 14 */	lwz r3, 0x14(r29)
/* 80307A98 003036F8  80 1D 00 1C */	lwz r0, 0x1c(r29)
/* 80307A9C 003036FC  28 04 00 02 */	cmplwi r4, 2
/* 80307AA0 00303700  7C 03 02 14 */	add r0, r3, r0
/* 80307AA4 00303704  40 82 00 0C */	bne lbl_80307AB0
/* 80307AA8 00303708  54 00 08 3C */	slwi r0, r0, 1
/* 80307AAC 0030370C  48 00 00 20 */	b lbl_80307ACC
lbl_80307AB0:
/* 80307AB0 00303710  28 04 00 04 */	cmplwi r4, 4
/* 80307AB4 00303714  40 82 00 0C */	bne lbl_80307AC0
/* 80307AB8 00303718  54 00 10 3A */	slwi r0, r0, 2
/* 80307ABC 0030371C  48 00 00 10 */	b lbl_80307ACC
lbl_80307AC0:
/* 80307AC0 00303720  28 04 00 08 */	cmplwi r4, 8
/* 80307AC4 00303724  40 82 00 08 */	bne lbl_80307ACC
/* 80307AC8 00303728  54 00 18 38 */	slwi r0, r0, 3
lbl_80307ACC:
/* 80307ACC 0030372C  57 E3 BE 7E */	rlwinm r3, r31, 0x17, 0x19, 0x1f
/* 80307AD0 00303730  28 03 00 02 */	cmplwi r3, 2
/* 80307AD4 00303734  40 82 00 0C */	bne lbl_80307AE0
/* 80307AD8 00303738  54 00 F8 7E */	srwi r0, r0, 1
/* 80307ADC 0030373C  48 00 00 20 */	b lbl_80307AFC
lbl_80307AE0:
/* 80307AE0 00303740  28 03 00 04 */	cmplwi r3, 4
/* 80307AE4 00303744  40 82 00 0C */	bne lbl_80307AF0
/* 80307AE8 00303748  54 00 F0 BE */	srwi r0, r0, 2
/* 80307AEC 0030374C  48 00 00 10 */	b lbl_80307AFC
lbl_80307AF0:
/* 80307AF0 00303750  28 03 00 08 */	cmplwi r3, 8
/* 80307AF4 00303754  40 82 00 08 */	bne lbl_80307AFC
/* 80307AF8 00303758  54 00 E8 FE */	srwi r0, r0, 3
lbl_80307AFC:
/* 80307AFC 0030375C  7C 7E 02 14 */	add r3, r30, r0
lbl_80307B00:
/* 80307B00 00303760  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80307B04 00303764  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80307B08 00303768  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80307B0C 0030376C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80307B10 00303770  7C 08 03 A6 */	mtlr r0
/* 80307B14 00303774  38 21 00 20 */	addi r1, r1, 0x20
/* 80307B18 00303778  4E 80 00 20 */	blr

.global VFipdm_part_get_permission
VFipdm_part_get_permission:
/* 80307B1C 0030377C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80307B20 00303780  7C 08 02 A6 */	mflr r0
/* 80307B24 00303784  2C 03 00 00 */	cmpwi r3, 0
/* 80307B28 00303788  7C 64 1B 78 */	mr r4, r3
/* 80307B2C 0030378C  90 01 00 34 */	stw r0, 0x34(r1)
/* 80307B30 00303790  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80307B34 00303794  93 C1 00 28 */	stw r30, 0x28(r1)
/* 80307B38 00303798  40 82 00 0C */	bne lbl_80307B44
/* 80307B3C 0030379C  38 60 00 01 */	li r3, 1
/* 80307B40 003037A0  48 00 01 A8 */	b lbl_80307CE8
lbl_80307B44:
/* 80307B44 003037A4  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 80307B48 003037A8  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 80307B4C 003037AC  28 07 00 1A */	cmplwi r7, 0x1a
/* 80307B50 003037B0  54 68 84 3E */	srwi r8, r3, 0x10
/* 80307B54 003037B4  40 80 00 28 */	bge lbl_80307B7C
/* 80307B58 003037B8  28 00 04 00 */	cmplwi r0, 0x400
/* 80307B5C 003037BC  40 82 00 20 */	bne lbl_80307B7C
/* 80307B60 003037C0  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80307B64 003037C4  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307B68 003037C8  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 80307B6C 003037CC  7C 65 02 14 */	add r3, r5, r0
/* 80307B70 003037D0  80 03 06 F4 */	lwz r0, 0x6f4(r3)
/* 80307B74 003037D4  7C 08 00 40 */	cmplw r8, r0
/* 80307B78 003037D8  40 81 00 0C */	ble lbl_80307B84
lbl_80307B7C:
/* 80307B7C 003037DC  38 60 00 01 */	li r3, 1
/* 80307B80 003037E0  48 00 00 7C */	b lbl_80307BFC
lbl_80307B84:
/* 80307B84 003037E4  38 00 00 0D */	li r0, 0xd
/* 80307B88 003037E8  38 C3 06 EC */	addi r6, r3, 0x6ec
/* 80307B8C 003037EC  38 60 00 00 */	li r3, 0
/* 80307B90 003037F0  7C 09 03 A6 */	mtctr r0
lbl_80307B94:
/* 80307B94 003037F4  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80307B98 003037F8  7D 25 02 14 */	add r9, r5, r0
/* 80307B9C 003037FC  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80307BA0 00303800  7C 00 30 40 */	cmplw r0, r6
/* 80307BA4 00303804  40 82 00 10 */	bne lbl_80307BB4
/* 80307BA8 00303808  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80307BAC 0030380C  7C 08 00 40 */	cmplw r8, r0
/* 80307BB0 00303810  41 82 00 30 */	beq lbl_80307BE0
lbl_80307BB4:
/* 80307BB4 00303814  38 63 00 01 */	addi r3, r3, 1
/* 80307BB8 00303818  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80307BBC 0030381C  7D 25 02 14 */	add r9, r5, r0
/* 80307BC0 00303820  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80307BC4 00303824  7C 00 30 40 */	cmplw r0, r6
/* 80307BC8 00303828  40 82 00 10 */	bne lbl_80307BD8
/* 80307BCC 0030382C  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80307BD0 00303830  7C 08 00 40 */	cmplw r8, r0
/* 80307BD4 00303834  41 82 00 0C */	beq lbl_80307BE0
lbl_80307BD8:
/* 80307BD8 00303838  38 63 00 01 */	addi r3, r3, 1
/* 80307BDC 0030383C  42 00 FF B8 */	bdnz lbl_80307B94
lbl_80307BE0:
/* 80307BE0 00303840  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 80307BE4 00303844  38 60 00 1A */	li r3, 0x1a
/* 80307BE8 00303848  38 05 FF E6 */	addi r0, r5, -26
/* 80307BEC 0030384C  7C A3 1B 38 */	orc r3, r5, r3
/* 80307BF0 00303850  54 00 F8 7E */	srwi r0, r0, 1
/* 80307BF4 00303854  7C 00 18 50 */	subf r0, r0, r3
/* 80307BF8 00303858  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_80307BFC:
/* 80307BFC 0030385C  2C 03 00 00 */	cmpwi r3, 0
/* 80307C00 00303860  41 82 00 08 */	beq lbl_80307C08
/* 80307C04 00303864  48 00 00 E4 */	b lbl_80307CE8
lbl_80307C08:
/* 80307C08 00303868  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80307C0C 0030386C  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307C10 00303870  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 80307C14 00303874  7C 63 02 14 */	add r3, r3, r0
/* 80307C18 00303878  80 03 06 EC */	lwz r0, 0x6ec(r3)
/* 80307C1C 0030387C  3B C3 06 EC */	addi r30, r3, 0x6ec
/* 80307C20 00303880  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80307C24 00303884  40 82 00 A8 */	bne lbl_80307CCC
/* 80307C28 00303888  80 7E 00 04 */	lwz r3, 4(r30)
/* 80307C2C 0030388C  4B FF FB C1 */	bl VFipdm_disk_set_disk
/* 80307C30 00303890  2C 03 00 00 */	cmpwi r3, 0
/* 80307C34 00303894  41 82 00 08 */	beq lbl_80307C3C
/* 80307C38 00303898  48 00 00 B0 */	b lbl_80307CE8
lbl_80307C3C:
/* 80307C3C 0030389C  80 7E 00 04 */	lwz r3, 4(r30)
/* 80307C40 003038A0  4B FF F2 19 */	bl VFipdm_disk_get_part_permission
/* 80307C44 003038A4  2C 03 00 00 */	cmpwi r3, 0
/* 80307C48 003038A8  41 82 00 08 */	beq lbl_80307C50
/* 80307C4C 003038AC  48 00 00 9C */	b lbl_80307CE8
lbl_80307C50:
/* 80307C50 003038B0  80 7E 00 04 */	lwz r3, 4(r30)
/* 80307C54 003038B4  38 81 00 08 */	addi r4, r1, 8
/* 80307C58 003038B8  4B FF FA 7D */	bl VFipdm_disk_get_media_information
/* 80307C5C 003038BC  2C 03 00 00 */	cmpwi r3, 0
/* 80307C60 003038C0  7C 7F 1B 78 */	mr r31, r3
/* 80307C64 003038C4  41 82 00 18 */	beq lbl_80307C7C
/* 80307C68 003038C8  80 7E 00 04 */	lwz r3, 4(r30)
/* 80307C6C 003038CC  38 80 00 01 */	li r4, 1
/* 80307C70 003038D0  4B FF F2 DD */	bl VFipdm_disk_release_part_permission
/* 80307C74 003038D4  7F E3 FB 78 */	mr r3, r31
/* 80307C78 003038D8  48 00 00 70 */	b lbl_80307CE8
lbl_80307C7C:
/* 80307C7C 003038DC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80307C80 003038E0  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 80307C84 003038E4  41 82 00 14 */	beq lbl_80307C98
/* 80307C88 003038E8  80 1E 00 00 */	lwz r0, 0(r30)
/* 80307C8C 003038EC  60 00 00 10 */	ori r0, r0, 0x10
/* 80307C90 003038F0  90 1E 00 00 */	stw r0, 0(r30)
/* 80307C94 003038F4  48 00 00 10 */	b lbl_80307CA4
lbl_80307C98:
/* 80307C98 003038F8  80 1E 00 00 */	lwz r0, 0(r30)
/* 80307C9C 003038FC  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 80307CA0 00303900  90 1E 00 00 */	stw r0, 0(r30)
lbl_80307CA4:
/* 80307CA4 00303904  7F C3 F3 78 */	mr r3, r30
/* 80307CA8 00303908  4B FF FC 39 */	bl VFipdm_part_get_start_sector
/* 80307CAC 0030390C  2C 03 00 00 */	cmpwi r3, 0
/* 80307CB0 00303910  7C 7F 1B 78 */	mr r31, r3
/* 80307CB4 00303914  41 82 00 20 */	beq lbl_80307CD4
/* 80307CB8 00303918  80 7E 00 04 */	lwz r3, 4(r30)
/* 80307CBC 0030391C  38 80 00 01 */	li r4, 1
/* 80307CC0 00303920  4B FF F2 8D */	bl VFipdm_disk_release_part_permission
/* 80307CC4 00303924  7F E3 FB 78 */	mr r3, r31
/* 80307CC8 00303928  48 00 00 20 */	b lbl_80307CE8
lbl_80307CCC:
/* 80307CCC 0030392C  38 60 00 0D */	li r3, 0xd
/* 80307CD0 00303930  48 00 00 18 */	b lbl_80307CE8
lbl_80307CD4:
/* 80307CD4 00303934  80 1E 00 00 */	lwz r0, 0(r30)
/* 80307CD8 00303938  38 60 00 00 */	li r3, 0
/* 80307CDC 0030393C  60 00 00 02 */	ori r0, r0, 2
/* 80307CE0 00303940  54 00 07 76 */	rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80307CE4 00303944  90 1E 00 00 */	stw r0, 0(r30)
lbl_80307CE8:
/* 80307CE8 00303948  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80307CEC 0030394C  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80307CF0 00303950  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80307CF4 00303954  7C 08 03 A6 */	mtlr r0
/* 80307CF8 00303958  38 21 00 30 */	addi r1, r1, 0x30
/* 80307CFC 0030395C  4E 80 00 20 */	blr

.global VFipdm_part_release_permission
VFipdm_part_release_permission:
/* 80307D00 00303960  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80307D04 00303964  7C 08 02 A6 */	mflr r0
/* 80307D08 00303968  2C 03 00 00 */	cmpwi r3, 0
/* 80307D0C 0030396C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80307D10 00303970  7C 60 1B 78 */	mr r0, r3
/* 80307D14 00303974  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80307D18 00303978  3B E0 00 00 */	li r31, 0
/* 80307D1C 0030397C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80307D20 00303980  7C 9E 23 78 */	mr r30, r4
/* 80307D24 00303984  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80307D28 00303988  40 82 00 0C */	bne lbl_80307D34
/* 80307D2C 0030398C  38 60 00 01 */	li r3, 1
/* 80307D30 00303990  48 00 01 40 */	b lbl_80307E70
lbl_80307D34:
/* 80307D34 00303994  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 80307D38 00303998  54 64 04 2E */	rlwinm r4, r3, 0, 0x10, 0x17
/* 80307D3C 0030399C  28 07 00 1A */	cmplwi r7, 0x1a
/* 80307D40 003039A0  54 68 84 3E */	srwi r8, r3, 0x10
/* 80307D44 003039A4  40 80 00 28 */	bge lbl_80307D6C
/* 80307D48 003039A8  28 04 04 00 */	cmplwi r4, 0x400
/* 80307D4C 003039AC  40 82 00 20 */	bne lbl_80307D6C
/* 80307D50 003039B0  1C 87 00 2C */	mulli r4, r7, 0x2c
/* 80307D54 003039B4  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307D58 003039B8  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 80307D5C 003039BC  7C 85 22 14 */	add r4, r5, r4
/* 80307D60 003039C0  80 64 06 F4 */	lwz r3, 0x6f4(r4)
/* 80307D64 003039C4  7C 08 18 40 */	cmplw r8, r3
/* 80307D68 003039C8  40 81 00 0C */	ble lbl_80307D74
lbl_80307D6C:
/* 80307D6C 003039CC  38 60 00 01 */	li r3, 1
/* 80307D70 003039D0  48 00 00 7C */	b lbl_80307DEC
lbl_80307D74:
/* 80307D74 003039D4  38 60 00 0D */	li r3, 0xd
/* 80307D78 003039D8  38 C4 06 EC */	addi r6, r4, 0x6ec
/* 80307D7C 003039DC  38 80 00 00 */	li r4, 0
/* 80307D80 003039E0  7C 69 03 A6 */	mtctr r3
lbl_80307D84:
/* 80307D84 003039E4  54 83 1B 78 */	rlwinm r3, r4, 3, 0xd, 0x1c
/* 80307D88 003039E8  7D 25 1A 14 */	add r9, r5, r3
/* 80307D8C 003039EC  80 69 00 D8 */	lwz r3, 0xd8(r9)
/* 80307D90 003039F0  7C 03 30 40 */	cmplw r3, r6
/* 80307D94 003039F4  40 82 00 10 */	bne lbl_80307DA4
/* 80307D98 003039F8  80 69 00 D4 */	lwz r3, 0xd4(r9)
/* 80307D9C 003039FC  7C 08 18 40 */	cmplw r8, r3
/* 80307DA0 00303A00  41 82 00 30 */	beq lbl_80307DD0
lbl_80307DA4:
/* 80307DA4 00303A04  38 84 00 01 */	addi r4, r4, 1
/* 80307DA8 00303A08  54 83 1B 78 */	rlwinm r3, r4, 3, 0xd, 0x1c
/* 80307DAC 00303A0C  7D 25 1A 14 */	add r9, r5, r3
/* 80307DB0 00303A10  80 69 00 D8 */	lwz r3, 0xd8(r9)
/* 80307DB4 00303A14  7C 03 30 40 */	cmplw r3, r6
/* 80307DB8 00303A18  40 82 00 10 */	bne lbl_80307DC8
/* 80307DBC 00303A1C  80 69 00 D4 */	lwz r3, 0xd4(r9)
/* 80307DC0 00303A20  7C 08 18 40 */	cmplw r8, r3
/* 80307DC4 00303A24  41 82 00 0C */	beq lbl_80307DD0
lbl_80307DC8:
/* 80307DC8 00303A28  38 84 00 01 */	addi r4, r4, 1
/* 80307DCC 00303A2C  42 00 FF B8 */	bdnz lbl_80307D84
lbl_80307DD0:
/* 80307DD0 00303A30  54 85 04 3E */	clrlwi r5, r4, 0x10
/* 80307DD4 00303A34  38 80 00 1A */	li r4, 0x1a
/* 80307DD8 00303A38  38 65 FF E6 */	addi r3, r5, -26
/* 80307DDC 00303A3C  7C A4 23 38 */	orc r4, r5, r4
/* 80307DE0 00303A40  54 63 F8 7E */	srwi r3, r3, 1
/* 80307DE4 00303A44  7C 63 20 50 */	subf r3, r3, r4
/* 80307DE8 00303A48  54 63 0F FE */	srwi r3, r3, 0x1f
lbl_80307DEC:
/* 80307DEC 00303A4C  2C 03 00 00 */	cmpwi r3, 0
/* 80307DF0 00303A50  41 82 00 08 */	beq lbl_80307DF8
/* 80307DF4 00303A54  48 00 00 7C */	b lbl_80307E70
lbl_80307DF8:
/* 80307DF8 00303A58  1C 67 00 2C */	mulli r3, r7, 0x2c
/* 80307DFC 00303A5C  3C 80 80 58 */	lis r4, lbl_8057EA60@ha
/* 80307E00 00303A60  38 84 EA 60 */	addi r4, r4, lbl_8057EA60@l
/* 80307E04 00303A64  7F A4 1A 14 */	add r29, r4, r3
/* 80307E08 00303A68  80 7D 06 EC */	lwz r3, 0x6ec(r29)
/* 80307E0C 00303A6C  54 63 07 BD */	rlwinm. r3, r3, 0, 0x1e, 0x1e
/* 80307E10 00303A70  40 82 00 0C */	bne lbl_80307E1C
/* 80307E14 00303A74  38 60 00 0E */	li r3, 0xe
/* 80307E18 00303A78  48 00 00 58 */	b lbl_80307E70
lbl_80307E1C:
/* 80307E1C 00303A7C  80 7D 06 F0 */	lwz r3, 0x6f0(r29)
/* 80307E20 00303A80  7C 04 03 78 */	mr r4, r0
/* 80307E24 00303A84  4B FF F9 C9 */	bl VFipdm_disk_set_disk
/* 80307E28 00303A88  2C 03 00 00 */	cmpwi r3, 0
/* 80307E2C 00303A8C  41 82 00 08 */	beq lbl_80307E34
/* 80307E30 00303A90  48 00 00 40 */	b lbl_80307E70
lbl_80307E34:
/* 80307E34 00303A94  80 7D 06 F0 */	lwz r3, 0x6f0(r29)
/* 80307E38 00303A98  7F C4 F3 78 */	mr r4, r30
/* 80307E3C 00303A9C  4B FF F1 11 */	bl VFipdm_disk_release_part_permission
/* 80307E40 00303AA0  2C 03 00 00 */	cmpwi r3, 0
/* 80307E44 00303AA4  41 82 00 08 */	beq lbl_80307E4C
/* 80307E48 00303AA8  7C 7F 1B 78 */	mr r31, r3
lbl_80307E4C:
/* 80307E4C 00303AAC  2C 1F 00 00 */	cmpwi r31, 0
/* 80307E50 00303AB0  41 82 00 0C */	beq lbl_80307E5C
/* 80307E54 00303AB4  28 1E 00 01 */	cmplwi r30, 1
/* 80307E58 00303AB8  40 82 00 14 */	bne lbl_80307E6C
lbl_80307E5C:
/* 80307E5C 00303ABC  80 1D 06 EC */	lwz r0, 0x6ec(r29)
/* 80307E60 00303AC0  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 80307E64 00303AC4  54 00 07 74 */	rlwinm r0, r0, 0, 0x1d, 0x1a
/* 80307E68 00303AC8  90 1D 06 EC */	stw r0, 0x6ec(r29)
lbl_80307E6C:
/* 80307E6C 00303ACC  7F E3 FB 78 */	mr r3, r31
lbl_80307E70:
/* 80307E70 00303AD0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80307E74 00303AD4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80307E78 00303AD8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80307E7C 00303ADC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80307E80 00303AE0  7C 08 03 A6 */	mtlr r0
/* 80307E84 00303AE4  38 21 00 20 */	addi r1, r1, 0x20
/* 80307E88 00303AE8  4E 80 00 20 */	blr

.global VFipdm_part_format
VFipdm_part_format:
/* 80307E8C 00303AEC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80307E90 00303AF0  7C 08 02 A6 */	mflr r0
/* 80307E94 00303AF4  2C 03 00 00 */	cmpwi r3, 0
/* 80307E98 00303AF8  90 01 00 14 */	stw r0, 0x14(r1)
/* 80307E9C 00303AFC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80307EA0 00303B00  7C 9F 23 78 */	mr r31, r4
/* 80307EA4 00303B04  93 C1 00 08 */	stw r30, 8(r1)
/* 80307EA8 00303B08  40 82 00 0C */	bne lbl_80307EB4
/* 80307EAC 00303B0C  38 60 00 01 */	li r3, 1
/* 80307EB0 00303B10  48 00 01 10 */	b lbl_80307FC0
lbl_80307EB4:
/* 80307EB4 00303B14  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 80307EB8 00303B18  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 80307EBC 00303B1C  28 07 00 1A */	cmplwi r7, 0x1a
/* 80307EC0 00303B20  54 68 84 3E */	srwi r8, r3, 0x10
/* 80307EC4 00303B24  40 80 00 28 */	bge lbl_80307EEC
/* 80307EC8 00303B28  28 00 04 00 */	cmplwi r0, 0x400
/* 80307ECC 00303B2C  40 82 00 20 */	bne lbl_80307EEC
/* 80307ED0 00303B30  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80307ED4 00303B34  3C 80 80 58 */	lis r4, lbl_8057EA60@ha
/* 80307ED8 00303B38  38 A4 EA 60 */	addi r5, r4, lbl_8057EA60@l
/* 80307EDC 00303B3C  7C 85 02 14 */	add r4, r5, r0
/* 80307EE0 00303B40  80 04 06 F4 */	lwz r0, 0x6f4(r4)
/* 80307EE4 00303B44  7C 08 00 40 */	cmplw r8, r0
/* 80307EE8 00303B48  40 81 00 0C */	ble lbl_80307EF4
lbl_80307EEC:
/* 80307EEC 00303B4C  38 00 00 01 */	li r0, 1
/* 80307EF0 00303B50  48 00 00 7C */	b lbl_80307F6C
lbl_80307EF4:
/* 80307EF4 00303B54  38 00 00 0D */	li r0, 0xd
/* 80307EF8 00303B58  38 C4 06 EC */	addi r6, r4, 0x6ec
/* 80307EFC 00303B5C  38 80 00 00 */	li r4, 0
/* 80307F00 00303B60  7C 09 03 A6 */	mtctr r0
lbl_80307F04:
/* 80307F04 00303B64  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 80307F08 00303B68  7D 25 02 14 */	add r9, r5, r0
/* 80307F0C 00303B6C  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80307F10 00303B70  7C 00 30 40 */	cmplw r0, r6
/* 80307F14 00303B74  40 82 00 10 */	bne lbl_80307F24
/* 80307F18 00303B78  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80307F1C 00303B7C  7C 08 00 40 */	cmplw r8, r0
/* 80307F20 00303B80  41 82 00 30 */	beq lbl_80307F50
lbl_80307F24:
/* 80307F24 00303B84  38 84 00 01 */	addi r4, r4, 1
/* 80307F28 00303B88  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 80307F2C 00303B8C  7D 25 02 14 */	add r9, r5, r0
/* 80307F30 00303B90  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80307F34 00303B94  7C 00 30 40 */	cmplw r0, r6
/* 80307F38 00303B98  40 82 00 10 */	bne lbl_80307F48
/* 80307F3C 00303B9C  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80307F40 00303BA0  7C 08 00 40 */	cmplw r8, r0
/* 80307F44 00303BA4  41 82 00 0C */	beq lbl_80307F50
lbl_80307F48:
/* 80307F48 00303BA8  38 84 00 01 */	addi r4, r4, 1
/* 80307F4C 00303BAC  42 00 FF B8 */	bdnz lbl_80307F04
lbl_80307F50:
/* 80307F50 00303BB0  54 85 04 3E */	clrlwi r5, r4, 0x10
/* 80307F54 00303BB4  38 80 00 1A */	li r4, 0x1a
/* 80307F58 00303BB8  38 05 FF E6 */	addi r0, r5, -26
/* 80307F5C 00303BBC  7C A4 23 38 */	orc r4, r5, r4
/* 80307F60 00303BC0  54 00 F8 7E */	srwi r0, r0, 1
/* 80307F64 00303BC4  7C 00 20 50 */	subf r0, r0, r4
/* 80307F68 00303BC8  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_80307F6C:
/* 80307F6C 00303BCC  2C 00 00 00 */	cmpwi r0, 0
/* 80307F70 00303BD0  41 82 00 0C */	beq lbl_80307F7C
/* 80307F74 00303BD4  7C 03 03 78 */	mr r3, r0
/* 80307F78 00303BD8  48 00 00 48 */	b lbl_80307FC0
lbl_80307F7C:
/* 80307F7C 00303BDC  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80307F80 00303BE0  3C A0 80 58 */	lis r5, lbl_8057EA60@ha
/* 80307F84 00303BE4  7C 64 1B 78 */	mr r4, r3
/* 80307F88 00303BE8  38 A5 EA 60 */	addi r5, r5, lbl_8057EA60@l
/* 80307F8C 00303BEC  7F C5 02 14 */	add r30, r5, r0
/* 80307F90 00303BF0  80 7E 06 F0 */	lwz r3, 0x6f0(r30)
/* 80307F94 00303BF4  4B FF F8 59 */	bl VFipdm_disk_set_disk
/* 80307F98 00303BF8  2C 03 00 00 */	cmpwi r3, 0
/* 80307F9C 00303BFC  41 82 00 08 */	beq lbl_80307FA4
/* 80307FA0 00303C00  48 00 00 20 */	b lbl_80307FC0
lbl_80307FA4:
/* 80307FA4 00303C04  80 7E 06 F0 */	lwz r3, 0x6f0(r30)
/* 80307FA8 00303C08  7F E4 FB 78 */	mr r4, r31
/* 80307FAC 00303C0C  4B FF F4 ED */	bl VFipdm_disk_format
/* 80307FB0 00303C10  7C 03 00 D0 */	neg r0, r3
/* 80307FB4 00303C14  7C 00 1B 78 */	or r0, r0, r3
/* 80307FB8 00303C18  7C 00 FE 70 */	srawi r0, r0, 0x1f
/* 80307FBC 00303C1C  7C 63 00 38 */	and r3, r3, r0
lbl_80307FC0:
/* 80307FC0 00303C20  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80307FC4 00303C24  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80307FC8 00303C28  83 C1 00 08 */	lwz r30, 8(r1)
/* 80307FCC 00303C2C  7C 08 03 A6 */	mtlr r0
/* 80307FD0 00303C30  38 21 00 10 */	addi r1, r1, 0x10
/* 80307FD4 00303C34  4E 80 00 20 */	blr

.global VFipdm_part_logical_read
VFipdm_part_logical_read:
/* 80307FD8 00303C38  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80307FDC 00303C3C  7C 08 02 A6 */	mflr r0
/* 80307FE0 00303C40  90 01 00 24 */	stw r0, 0x24(r1)
/* 80307FE4 00303C44  39 61 00 20 */	addi r11, r1, 0x20
/* 80307FE8 00303C48  4B EB F1 3D */	bl _savegpr_26
/* 80307FEC 00303C4C  2C 03 00 00 */	cmpwi r3, 0
/* 80307FF0 00303C50  7C 9B 23 78 */	mr r27, r4
/* 80307FF4 00303C54  7C BC 2B 78 */	mr r28, r5
/* 80307FF8 00303C58  7C DD 33 78 */	mr r29, r6
/* 80307FFC 00303C5C  7C FE 3B 78 */	mr r30, r7
/* 80308000 00303C60  7D 1F 43 78 */	mr r31, r8
/* 80308004 00303C64  41 82 00 24 */	beq lbl_80308028
/* 80308008 00303C68  2C 04 00 00 */	cmpwi r4, 0
/* 8030800C 00303C6C  41 82 00 1C */	beq lbl_80308028
/* 80308010 00303C70  2C 06 00 00 */	cmpwi r6, 0
/* 80308014 00303C74  41 82 00 14 */	beq lbl_80308028
/* 80308018 00303C78  2C 07 00 00 */	cmpwi r7, 0
/* 8030801C 00303C7C  41 82 00 0C */	beq lbl_80308028
/* 80308020 00303C80  2C 08 00 00 */	cmpwi r8, 0
/* 80308024 00303C84  40 82 00 0C */	bne lbl_80308030
lbl_80308028:
/* 80308028 00303C88  38 60 00 01 */	li r3, 1
/* 8030802C 00303C8C  48 00 01 5C */	b lbl_80308188
lbl_80308030:
/* 80308030 00303C90  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 80308034 00303C94  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 80308038 00303C98  28 07 00 1A */	cmplwi r7, 0x1a
/* 8030803C 00303C9C  54 68 84 3E */	srwi r8, r3, 0x10
/* 80308040 00303CA0  40 80 00 28 */	bge lbl_80308068
/* 80308044 00303CA4  28 00 04 00 */	cmplwi r0, 0x400
/* 80308048 00303CA8  40 82 00 20 */	bne lbl_80308068
/* 8030804C 00303CAC  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80308050 00303CB0  3C 80 80 58 */	lis r4, lbl_8057EA60@ha
/* 80308054 00303CB4  38 A4 EA 60 */	addi r5, r4, lbl_8057EA60@l
/* 80308058 00303CB8  7C 85 02 14 */	add r4, r5, r0
/* 8030805C 00303CBC  80 04 06 F4 */	lwz r0, 0x6f4(r4)
/* 80308060 00303CC0  7C 08 00 40 */	cmplw r8, r0
/* 80308064 00303CC4  40 81 00 0C */	ble lbl_80308070
lbl_80308068:
/* 80308068 00303CC8  38 00 00 01 */	li r0, 1
/* 8030806C 00303CCC  48 00 00 7C */	b lbl_803080E8
lbl_80308070:
/* 80308070 00303CD0  38 00 00 0D */	li r0, 0xd
/* 80308074 00303CD4  38 C4 06 EC */	addi r6, r4, 0x6ec
/* 80308078 00303CD8  38 80 00 00 */	li r4, 0
/* 8030807C 00303CDC  7C 09 03 A6 */	mtctr r0
lbl_80308080:
/* 80308080 00303CE0  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 80308084 00303CE4  7D 25 02 14 */	add r9, r5, r0
/* 80308088 00303CE8  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 8030808C 00303CEC  7C 00 30 40 */	cmplw r0, r6
/* 80308090 00303CF0  40 82 00 10 */	bne lbl_803080A0
/* 80308094 00303CF4  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80308098 00303CF8  7C 08 00 40 */	cmplw r8, r0
/* 8030809C 00303CFC  41 82 00 30 */	beq lbl_803080CC
lbl_803080A0:
/* 803080A0 00303D00  38 84 00 01 */	addi r4, r4, 1
/* 803080A4 00303D04  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 803080A8 00303D08  7D 25 02 14 */	add r9, r5, r0
/* 803080AC 00303D0C  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 803080B0 00303D10  7C 00 30 40 */	cmplw r0, r6
/* 803080B4 00303D14  40 82 00 10 */	bne lbl_803080C4
/* 803080B8 00303D18  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 803080BC 00303D1C  7C 08 00 40 */	cmplw r8, r0
/* 803080C0 00303D20  41 82 00 0C */	beq lbl_803080CC
lbl_803080C4:
/* 803080C4 00303D24  38 84 00 01 */	addi r4, r4, 1
/* 803080C8 00303D28  42 00 FF B8 */	bdnz lbl_80308080
lbl_803080CC:
/* 803080CC 00303D2C  54 85 04 3E */	clrlwi r5, r4, 0x10
/* 803080D0 00303D30  38 80 00 1A */	li r4, 0x1a
/* 803080D4 00303D34  38 05 FF E6 */	addi r0, r5, -26
/* 803080D8 00303D38  7C A4 23 38 */	orc r4, r5, r4
/* 803080DC 00303D3C  54 00 F8 7E */	srwi r0, r0, 1
/* 803080E0 00303D40  7C 00 20 50 */	subf r0, r0, r4
/* 803080E4 00303D44  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_803080E8:
/* 803080E8 00303D48  2C 00 00 00 */	cmpwi r0, 0
/* 803080EC 00303D4C  41 82 00 0C */	beq lbl_803080F8
/* 803080F0 00303D50  7C 03 03 78 */	mr r3, r0
/* 803080F4 00303D54  48 00 00 94 */	b lbl_80308188
lbl_803080F8:
/* 803080F8 00303D58  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 803080FC 00303D5C  3C A0 80 58 */	lis r5, lbl_8057EA60@ha
/* 80308100 00303D60  7C 64 1B 78 */	mr r4, r3
/* 80308104 00303D64  38 A5 EA 60 */	addi r5, r5, lbl_8057EA60@l
/* 80308108 00303D68  7C 65 02 14 */	add r3, r5, r0
/* 8030810C 00303D6C  3B 43 06 EC */	addi r26, r3, 0x6ec
/* 80308110 00303D70  80 63 06 F0 */	lwz r3, 0x6f0(r3)
/* 80308114 00303D74  4B FF F6 D9 */	bl VFipdm_disk_set_disk
/* 80308118 00303D78  2C 03 00 00 */	cmpwi r3, 0
/* 8030811C 00303D7C  41 82 00 08 */	beq lbl_80308124
/* 80308120 00303D80  48 00 00 68 */	b lbl_80308188
lbl_80308124:
/* 80308124 00303D84  80 1A 00 18 */	lwz r0, 0x18(r26)
/* 80308128 00303D88  7C 00 E0 40 */	cmplw r0, r28
/* 8030812C 00303D8C  41 81 00 0C */	bgt lbl_80308138
/* 80308130 00303D90  38 60 00 12 */	li r3, 0x12
/* 80308134 00303D94  48 00 00 54 */	b lbl_80308188
lbl_80308138:
/* 80308138 00303D98  7C 7C EA 14 */	add r3, r28, r29
/* 8030813C 00303D9C  7C 00 18 40 */	cmplw r0, r3
/* 80308140 00303DA0  40 80 00 0C */	bge lbl_8030814C
/* 80308144 00303DA4  7C 00 18 50 */	subf r0, r0, r3
/* 80308148 00303DA8  7F A0 E8 50 */	subf r29, r0, r29
lbl_8030814C:
/* 8030814C 00303DAC  7F 43 D3 78 */	mr r3, r26
/* 80308150 00303DB0  7F 84 E3 78 */	mr r4, r28
/* 80308154 00303DB4  7F C5 F3 78 */	mr r5, r30
/* 80308158 00303DB8  4B FF F8 E9 */	bl VFipdm_part_chg_ltop
/* 8030815C 00303DBC  7C 65 1B 78 */	mr r5, r3
/* 80308160 00303DC0  80 7A 00 04 */	lwz r3, 4(r26)
/* 80308164 00303DC4  7F 64 DB 78 */	mr r4, r27
/* 80308168 00303DC8  7F A6 EB 78 */	mr r6, r29
/* 8030816C 00303DCC  7F C7 F3 78 */	mr r7, r30
/* 80308170 00303DD0  7F E8 FB 78 */	mr r8, r31
/* 80308174 00303DD4  4B FF EF 75 */	bl VFipdm_disk_physical_read
/* 80308178 00303DD8  2C 03 00 00 */	cmpwi r3, 0
/* 8030817C 00303DDC  41 82 00 08 */	beq lbl_80308184
/* 80308180 00303DE0  48 00 00 08 */	b lbl_80308188
lbl_80308184:
/* 80308184 00303DE4  38 60 00 00 */	li r3, 0
lbl_80308188:
/* 80308188 00303DE8  39 61 00 20 */	addi r11, r1, 0x20
/* 8030818C 00303DEC  4B EB EF E5 */	bl _restgpr_26
/* 80308190 00303DF0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80308194 00303DF4  7C 08 03 A6 */	mtlr r0
/* 80308198 00303DF8  38 21 00 20 */	addi r1, r1, 0x20
/* 8030819C 00303DFC  4E 80 00 20 */	blr

.global VFipdm_part_logical_write
VFipdm_part_logical_write:
/* 803081A0 00303E00  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 803081A4 00303E04  7C 08 02 A6 */	mflr r0
/* 803081A8 00303E08  90 01 00 24 */	stw r0, 0x24(r1)
/* 803081AC 00303E0C  39 61 00 20 */	addi r11, r1, 0x20
/* 803081B0 00303E10  4B EB EF 75 */	bl _savegpr_26
/* 803081B4 00303E14  2C 03 00 00 */	cmpwi r3, 0
/* 803081B8 00303E18  7C 9B 23 78 */	mr r27, r4
/* 803081BC 00303E1C  7C BC 2B 78 */	mr r28, r5
/* 803081C0 00303E20  7C DD 33 78 */	mr r29, r6
/* 803081C4 00303E24  7C FE 3B 78 */	mr r30, r7
/* 803081C8 00303E28  7D 1F 43 78 */	mr r31, r8
/* 803081CC 00303E2C  41 82 00 24 */	beq lbl_803081F0
/* 803081D0 00303E30  2C 04 00 00 */	cmpwi r4, 0
/* 803081D4 00303E34  41 82 00 1C */	beq lbl_803081F0
/* 803081D8 00303E38  2C 06 00 00 */	cmpwi r6, 0
/* 803081DC 00303E3C  41 82 00 14 */	beq lbl_803081F0
/* 803081E0 00303E40  2C 07 00 00 */	cmpwi r7, 0
/* 803081E4 00303E44  41 82 00 0C */	beq lbl_803081F0
/* 803081E8 00303E48  2C 08 00 00 */	cmpwi r8, 0
/* 803081EC 00303E4C  40 82 00 0C */	bne lbl_803081F8
lbl_803081F0:
/* 803081F0 00303E50  38 60 00 01 */	li r3, 1
/* 803081F4 00303E54  48 00 01 5C */	b lbl_80308350
lbl_803081F8:
/* 803081F8 00303E58  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 803081FC 00303E5C  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 80308200 00303E60  28 07 00 1A */	cmplwi r7, 0x1a
/* 80308204 00303E64  54 68 84 3E */	srwi r8, r3, 0x10
/* 80308208 00303E68  40 80 00 28 */	bge lbl_80308230
/* 8030820C 00303E6C  28 00 04 00 */	cmplwi r0, 0x400
/* 80308210 00303E70  40 82 00 20 */	bne lbl_80308230
/* 80308214 00303E74  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80308218 00303E78  3C 80 80 58 */	lis r4, lbl_8057EA60@ha
/* 8030821C 00303E7C  38 A4 EA 60 */	addi r5, r4, lbl_8057EA60@l
/* 80308220 00303E80  7C 85 02 14 */	add r4, r5, r0
/* 80308224 00303E84  80 04 06 F4 */	lwz r0, 0x6f4(r4)
/* 80308228 00303E88  7C 08 00 40 */	cmplw r8, r0
/* 8030822C 00303E8C  40 81 00 0C */	ble lbl_80308238
lbl_80308230:
/* 80308230 00303E90  38 00 00 01 */	li r0, 1
/* 80308234 00303E94  48 00 00 7C */	b lbl_803082B0
lbl_80308238:
/* 80308238 00303E98  38 00 00 0D */	li r0, 0xd
/* 8030823C 00303E9C  38 C4 06 EC */	addi r6, r4, 0x6ec
/* 80308240 00303EA0  38 80 00 00 */	li r4, 0
/* 80308244 00303EA4  7C 09 03 A6 */	mtctr r0
lbl_80308248:
/* 80308248 00303EA8  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 8030824C 00303EAC  7D 25 02 14 */	add r9, r5, r0
/* 80308250 00303EB0  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80308254 00303EB4  7C 00 30 40 */	cmplw r0, r6
/* 80308258 00303EB8  40 82 00 10 */	bne lbl_80308268
/* 8030825C 00303EBC  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80308260 00303EC0  7C 08 00 40 */	cmplw r8, r0
/* 80308264 00303EC4  41 82 00 30 */	beq lbl_80308294
lbl_80308268:
/* 80308268 00303EC8  38 84 00 01 */	addi r4, r4, 1
/* 8030826C 00303ECC  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 80308270 00303ED0  7D 25 02 14 */	add r9, r5, r0
/* 80308274 00303ED4  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80308278 00303ED8  7C 00 30 40 */	cmplw r0, r6
/* 8030827C 00303EDC  40 82 00 10 */	bne lbl_8030828C
/* 80308280 00303EE0  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80308284 00303EE4  7C 08 00 40 */	cmplw r8, r0
/* 80308288 00303EE8  41 82 00 0C */	beq lbl_80308294
lbl_8030828C:
/* 8030828C 00303EEC  38 84 00 01 */	addi r4, r4, 1
/* 80308290 00303EF0  42 00 FF B8 */	bdnz lbl_80308248
lbl_80308294:
/* 80308294 00303EF4  54 85 04 3E */	clrlwi r5, r4, 0x10
/* 80308298 00303EF8  38 80 00 1A */	li r4, 0x1a
/* 8030829C 00303EFC  38 05 FF E6 */	addi r0, r5, -26
/* 803082A0 00303F00  7C A4 23 38 */	orc r4, r5, r4
/* 803082A4 00303F04  54 00 F8 7E */	srwi r0, r0, 1
/* 803082A8 00303F08  7C 00 20 50 */	subf r0, r0, r4
/* 803082AC 00303F0C  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_803082B0:
/* 803082B0 00303F10  2C 00 00 00 */	cmpwi r0, 0
/* 803082B4 00303F14  41 82 00 0C */	beq lbl_803082C0
/* 803082B8 00303F18  7C 03 03 78 */	mr r3, r0
/* 803082BC 00303F1C  48 00 00 94 */	b lbl_80308350
lbl_803082C0:
/* 803082C0 00303F20  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 803082C4 00303F24  3C A0 80 58 */	lis r5, lbl_8057EA60@ha
/* 803082C8 00303F28  7C 64 1B 78 */	mr r4, r3
/* 803082CC 00303F2C  38 A5 EA 60 */	addi r5, r5, lbl_8057EA60@l
/* 803082D0 00303F30  7C 65 02 14 */	add r3, r5, r0
/* 803082D4 00303F34  3B 43 06 EC */	addi r26, r3, 0x6ec
/* 803082D8 00303F38  80 63 06 F0 */	lwz r3, 0x6f0(r3)
/* 803082DC 00303F3C  4B FF F5 11 */	bl VFipdm_disk_set_disk
/* 803082E0 00303F40  2C 03 00 00 */	cmpwi r3, 0
/* 803082E4 00303F44  41 82 00 08 */	beq lbl_803082EC
/* 803082E8 00303F48  48 00 00 68 */	b lbl_80308350
lbl_803082EC:
/* 803082EC 00303F4C  80 1A 00 18 */	lwz r0, 0x18(r26)
/* 803082F0 00303F50  7C 00 E0 40 */	cmplw r0, r28
/* 803082F4 00303F54  41 81 00 0C */	bgt lbl_80308300
/* 803082F8 00303F58  38 60 00 12 */	li r3, 0x12
/* 803082FC 00303F5C  48 00 00 54 */	b lbl_80308350
lbl_80308300:
/* 80308300 00303F60  7C 7C EA 14 */	add r3, r28, r29
/* 80308304 00303F64  7C 00 18 40 */	cmplw r0, r3
/* 80308308 00303F68  40 80 00 0C */	bge lbl_80308314
/* 8030830C 00303F6C  7C 00 18 50 */	subf r0, r0, r3
/* 80308310 00303F70  7F A0 E8 50 */	subf r29, r0, r29
lbl_80308314:
/* 80308314 00303F74  7F 43 D3 78 */	mr r3, r26
/* 80308318 00303F78  7F 84 E3 78 */	mr r4, r28
/* 8030831C 00303F7C  7F C5 F3 78 */	mr r5, r30
/* 80308320 00303F80  4B FF F7 21 */	bl VFipdm_part_chg_ltop
/* 80308324 00303F84  7C 65 1B 78 */	mr r5, r3
/* 80308328 00303F88  80 7A 00 04 */	lwz r3, 4(r26)
/* 8030832C 00303F8C  7F 64 DB 78 */	mr r4, r27
/* 80308330 00303F90  7F A6 EB 78 */	mr r6, r29
/* 80308334 00303F94  7F C7 F3 78 */	mr r7, r30
/* 80308338 00303F98  7F E8 FB 78 */	mr r8, r31
/* 8030833C 00303F9C  4B FF EF 85 */	bl VFipdm_disk_physical_write
/* 80308340 00303FA0  2C 03 00 00 */	cmpwi r3, 0
/* 80308344 00303FA4  41 82 00 08 */	beq lbl_8030834C
/* 80308348 00303FA8  48 00 00 08 */	b lbl_80308350
lbl_8030834C:
/* 8030834C 00303FAC  38 60 00 00 */	li r3, 0
lbl_80308350:
/* 80308350 00303FB0  39 61 00 20 */	addi r11, r1, 0x20
/* 80308354 00303FB4  4B EB EE 1D */	bl _restgpr_26
/* 80308358 00303FB8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8030835C 00303FBC  7C 08 03 A6 */	mtlr r0
/* 80308360 00303FC0  38 21 00 20 */	addi r1, r1, 0x20
/* 80308364 00303FC4  4E 80 00 20 */	blr

.global VFipdm_part_get_media_information
VFipdm_part_get_media_information:
/* 80308368 00303FC8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8030836C 00303FCC  7C 08 02 A6 */	mflr r0
/* 80308370 00303FD0  2C 03 00 00 */	cmpwi r3, 0
/* 80308374 00303FD4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80308378 00303FD8  41 82 00 0C */	beq lbl_80308384
/* 8030837C 00303FDC  2C 04 00 00 */	cmpwi r4, 0
/* 80308380 00303FE0  40 82 00 0C */	bne lbl_8030838C
lbl_80308384:
/* 80308384 00303FE4  38 60 00 01 */	li r3, 1
/* 80308388 00303FE8  48 00 00 F0 */	b lbl_80308478
lbl_8030838C:
/* 8030838C 00303FEC  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 80308390 00303FF0  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 80308394 00303FF4  28 07 00 1A */	cmplwi r7, 0x1a
/* 80308398 00303FF8  54 68 84 3E */	srwi r8, r3, 0x10
/* 8030839C 00303FFC  40 80 00 28 */	bge lbl_803083C4
/* 803083A0 00304000  28 00 04 00 */	cmplwi r0, 0x400
/* 803083A4 00304004  40 82 00 20 */	bne lbl_803083C4
/* 803083A8 00304008  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 803083AC 0030400C  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 803083B0 00304010  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 803083B4 00304014  7C 65 02 14 */	add r3, r5, r0
/* 803083B8 00304018  80 03 06 F4 */	lwz r0, 0x6f4(r3)
/* 803083BC 0030401C  7C 08 00 40 */	cmplw r8, r0
/* 803083C0 00304020  40 81 00 0C */	ble lbl_803083CC
lbl_803083C4:
/* 803083C4 00304024  38 60 00 01 */	li r3, 1
/* 803083C8 00304028  48 00 00 7C */	b lbl_80308444
lbl_803083CC:
/* 803083CC 0030402C  38 00 00 0D */	li r0, 0xd
/* 803083D0 00304030  38 C3 06 EC */	addi r6, r3, 0x6ec
/* 803083D4 00304034  38 60 00 00 */	li r3, 0
/* 803083D8 00304038  7C 09 03 A6 */	mtctr r0
lbl_803083DC:
/* 803083DC 0030403C  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 803083E0 00304040  7D 25 02 14 */	add r9, r5, r0
/* 803083E4 00304044  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 803083E8 00304048  7C 00 30 40 */	cmplw r0, r6
/* 803083EC 0030404C  40 82 00 10 */	bne lbl_803083FC
/* 803083F0 00304050  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 803083F4 00304054  7C 08 00 40 */	cmplw r8, r0
/* 803083F8 00304058  41 82 00 30 */	beq lbl_80308428
lbl_803083FC:
/* 803083FC 0030405C  38 63 00 01 */	addi r3, r3, 1
/* 80308400 00304060  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80308404 00304064  7D 25 02 14 */	add r9, r5, r0
/* 80308408 00304068  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 8030840C 0030406C  7C 00 30 40 */	cmplw r0, r6
/* 80308410 00304070  40 82 00 10 */	bne lbl_80308420
/* 80308414 00304074  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80308418 00304078  7C 08 00 40 */	cmplw r8, r0
/* 8030841C 0030407C  41 82 00 0C */	beq lbl_80308428
lbl_80308420:
/* 80308420 00304080  38 63 00 01 */	addi r3, r3, 1
/* 80308424 00304084  42 00 FF B8 */	bdnz lbl_803083DC
lbl_80308428:
/* 80308428 00304088  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 8030842C 0030408C  38 60 00 1A */	li r3, 0x1a
/* 80308430 00304090  38 05 FF E6 */	addi r0, r5, -26
/* 80308434 00304094  7C A3 1B 38 */	orc r3, r5, r3
/* 80308438 00304098  54 00 F8 7E */	srwi r0, r0, 1
/* 8030843C 0030409C  7C 00 18 50 */	subf r0, r0, r3
/* 80308440 003040A0  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_80308444:
/* 80308444 003040A4  2C 03 00 00 */	cmpwi r3, 0
/* 80308448 003040A8  41 82 00 08 */	beq lbl_80308450
/* 8030844C 003040AC  48 00 00 2C */	b lbl_80308478
lbl_80308450:
/* 80308450 003040B0  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80308454 003040B4  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80308458 003040B8  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 8030845C 003040BC  7C 63 02 14 */	add r3, r3, r0
/* 80308460 003040C0  80 63 06 F0 */	lwz r3, 0x6f0(r3)
/* 80308464 003040C4  4B FF F2 71 */	bl VFipdm_disk_get_media_information
/* 80308468 003040C8  7C 03 00 D0 */	neg r0, r3
/* 8030846C 003040CC  7C 00 1B 78 */	or r0, r0, r3
/* 80308470 003040D0  7C 00 FE 70 */	srawi r0, r0, 0x1f
/* 80308474 003040D4  7C 63 00 38 */	and r3, r3, r0
lbl_80308478:
/* 80308478 003040D8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8030847C 003040DC  7C 08 03 A6 */	mtlr r0
/* 80308480 003040E0  38 21 00 10 */	addi r1, r1, 0x10
/* 80308484 003040E4  4E 80 00 20 */	blr

.global VFipdm_part_check_media_write_protect
VFipdm_part_check_media_write_protect:
/* 80308488 003040E8  2C 03 00 00 */	cmpwi r3, 0
/* 8030848C 003040EC  41 82 00 0C */	beq lbl_80308498
/* 80308490 003040F0  2C 04 00 00 */	cmpwi r4, 0
/* 80308494 003040F4  40 82 00 0C */	bne lbl_803084A0
lbl_80308498:
/* 80308498 003040F8  38 60 00 01 */	li r3, 1
/* 8030849C 003040FC  4E 80 00 20 */	blr
lbl_803084A0:
/* 803084A0 00304100  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 803084A4 00304104  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 803084A8 00304108  28 07 00 1A */	cmplwi r7, 0x1a
/* 803084AC 0030410C  54 68 84 3E */	srwi r8, r3, 0x10
/* 803084B0 00304110  40 80 00 28 */	bge lbl_803084D8
/* 803084B4 00304114  28 00 04 00 */	cmplwi r0, 0x400
/* 803084B8 00304118  40 82 00 20 */	bne lbl_803084D8
/* 803084BC 0030411C  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 803084C0 00304120  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 803084C4 00304124  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 803084C8 00304128  7C 65 02 14 */	add r3, r5, r0
/* 803084CC 0030412C  80 03 06 F4 */	lwz r0, 0x6f4(r3)
/* 803084D0 00304130  7C 08 00 40 */	cmplw r8, r0
/* 803084D4 00304134  40 81 00 0C */	ble lbl_803084E0
lbl_803084D8:
/* 803084D8 00304138  38 60 00 01 */	li r3, 1
/* 803084DC 0030413C  48 00 00 7C */	b lbl_80308558
lbl_803084E0:
/* 803084E0 00304140  38 00 00 0D */	li r0, 0xd
/* 803084E4 00304144  38 C3 06 EC */	addi r6, r3, 0x6ec
/* 803084E8 00304148  38 60 00 00 */	li r3, 0
/* 803084EC 0030414C  7C 09 03 A6 */	mtctr r0
lbl_803084F0:
/* 803084F0 00304150  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 803084F4 00304154  7D 25 02 14 */	add r9, r5, r0
/* 803084F8 00304158  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 803084FC 0030415C  7C 00 30 40 */	cmplw r0, r6
/* 80308500 00304160  40 82 00 10 */	bne lbl_80308510
/* 80308504 00304164  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80308508 00304168  7C 08 00 40 */	cmplw r8, r0
/* 8030850C 0030416C  41 82 00 30 */	beq lbl_8030853C
lbl_80308510:
/* 80308510 00304170  38 63 00 01 */	addi r3, r3, 1
/* 80308514 00304174  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80308518 00304178  7D 25 02 14 */	add r9, r5, r0
/* 8030851C 0030417C  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80308520 00304180  7C 00 30 40 */	cmplw r0, r6
/* 80308524 00304184  40 82 00 10 */	bne lbl_80308534
/* 80308528 00304188  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 8030852C 0030418C  7C 08 00 40 */	cmplw r8, r0
/* 80308530 00304190  41 82 00 0C */	beq lbl_8030853C
lbl_80308534:
/* 80308534 00304194  38 63 00 01 */	addi r3, r3, 1
/* 80308538 00304198  42 00 FF B8 */	bdnz lbl_803084F0
lbl_8030853C:
/* 8030853C 0030419C  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 80308540 003041A0  38 60 00 1A */	li r3, 0x1a
/* 80308544 003041A4  38 05 FF E6 */	addi r0, r5, -26
/* 80308548 003041A8  7C A3 1B 38 */	orc r3, r5, r3
/* 8030854C 003041AC  54 00 F8 7E */	srwi r0, r0, 1
/* 80308550 003041B0  7C 00 18 50 */	subf r0, r0, r3
/* 80308554 003041B4  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_80308558:
/* 80308558 003041B8  2C 03 00 00 */	cmpwi r3, 0
/* 8030855C 003041BC  4C 82 00 20 */	bnelr
/* 80308560 003041C0  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80308564 003041C4  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80308568 003041C8  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 8030856C 003041CC  7C 63 02 14 */	add r3, r3, r0
/* 80308570 003041D0  80 03 06 EC */	lwz r0, 0x6ec(r3)
/* 80308574 003041D4  54 00 06 F7 */	rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80308578 003041D8  41 82 00 10 */	beq lbl_80308588
/* 8030857C 003041DC  38 00 00 01 */	li r0, 1
/* 80308580 003041E0  90 04 00 00 */	stw r0, 0(r4)
/* 80308584 003041E4  48 00 00 0C */	b lbl_80308590
lbl_80308588:
/* 80308588 003041E8  38 00 00 00 */	li r0, 0
/* 8030858C 003041EC  90 04 00 00 */	stw r0, 0(r4)
lbl_80308590:
/* 80308590 003041F0  38 60 00 00 */	li r3, 0
/* 80308594 003041F4  4E 80 00 20 */	blr

.global VFipdm_part_check_media_insert
VFipdm_part_check_media_insert:
/* 80308598 003041F8  2C 03 00 00 */	cmpwi r3, 0
/* 8030859C 003041FC  41 82 00 0C */	beq lbl_803085A8
/* 803085A0 00304200  2C 04 00 00 */	cmpwi r4, 0
/* 803085A4 00304204  40 82 00 0C */	bne lbl_803085B0
lbl_803085A8:
/* 803085A8 00304208  38 60 00 01 */	li r3, 1
/* 803085AC 0030420C  4E 80 00 20 */	blr
lbl_803085B0:
/* 803085B0 00304210  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 803085B4 00304214  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 803085B8 00304218  28 07 00 1A */	cmplwi r7, 0x1a
/* 803085BC 0030421C  54 68 84 3E */	srwi r8, r3, 0x10
/* 803085C0 00304220  40 80 00 28 */	bge lbl_803085E8
/* 803085C4 00304224  28 00 04 00 */	cmplwi r0, 0x400
/* 803085C8 00304228  40 82 00 20 */	bne lbl_803085E8
/* 803085CC 0030422C  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 803085D0 00304230  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 803085D4 00304234  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 803085D8 00304238  7C 65 02 14 */	add r3, r5, r0
/* 803085DC 0030423C  80 03 06 F4 */	lwz r0, 0x6f4(r3)
/* 803085E0 00304240  7C 08 00 40 */	cmplw r8, r0
/* 803085E4 00304244  40 81 00 0C */	ble lbl_803085F0
lbl_803085E8:
/* 803085E8 00304248  38 60 00 01 */	li r3, 1
/* 803085EC 0030424C  48 00 00 7C */	b lbl_80308668
lbl_803085F0:
/* 803085F0 00304250  38 00 00 0D */	li r0, 0xd
/* 803085F4 00304254  38 C3 06 EC */	addi r6, r3, 0x6ec
/* 803085F8 00304258  38 60 00 00 */	li r3, 0
/* 803085FC 0030425C  7C 09 03 A6 */	mtctr r0
lbl_80308600:
/* 80308600 00304260  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80308604 00304264  7D 25 02 14 */	add r9, r5, r0
/* 80308608 00304268  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 8030860C 0030426C  7C 00 30 40 */	cmplw r0, r6
/* 80308610 00304270  40 82 00 10 */	bne lbl_80308620
/* 80308614 00304274  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80308618 00304278  7C 08 00 40 */	cmplw r8, r0
/* 8030861C 0030427C  41 82 00 30 */	beq lbl_8030864C
lbl_80308620:
/* 80308620 00304280  38 63 00 01 */	addi r3, r3, 1
/* 80308624 00304284  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80308628 00304288  7D 25 02 14 */	add r9, r5, r0
/* 8030862C 0030428C  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80308630 00304290  7C 00 30 40 */	cmplw r0, r6
/* 80308634 00304294  40 82 00 10 */	bne lbl_80308644
/* 80308638 00304298  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 8030863C 0030429C  7C 08 00 40 */	cmplw r8, r0
/* 80308640 003042A0  41 82 00 0C */	beq lbl_8030864C
lbl_80308644:
/* 80308644 003042A4  38 63 00 01 */	addi r3, r3, 1
/* 80308648 003042A8  42 00 FF B8 */	bdnz lbl_80308600
lbl_8030864C:
/* 8030864C 003042AC  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 80308650 003042B0  38 60 00 1A */	li r3, 0x1a
/* 80308654 003042B4  38 05 FF E6 */	addi r0, r5, -26
/* 80308658 003042B8  7C A3 1B 38 */	orc r3, r5, r3
/* 8030865C 003042BC  54 00 F8 7E */	srwi r0, r0, 1
/* 80308660 003042C0  7C 00 18 50 */	subf r0, r0, r3
/* 80308664 003042C4  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_80308668:
/* 80308668 003042C8  2C 03 00 00 */	cmpwi r3, 0
/* 8030866C 003042CC  4C 82 00 20 */	bnelr
/* 80308670 003042D0  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80308674 003042D4  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80308678 003042D8  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 8030867C 003042DC  7C 63 02 14 */	add r3, r3, r0
/* 80308680 003042E0  80 03 06 EC */	lwz r0, 0x6ec(r3)
/* 80308684 003042E4  54 00 07 7B */	rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80308688 003042E8  41 82 00 10 */	beq lbl_80308698
/* 8030868C 003042EC  38 00 00 01 */	li r0, 1
/* 80308690 003042F0  90 04 00 00 */	stw r0, 0(r4)
/* 80308694 003042F4  48 00 00 0C */	b lbl_803086A0
lbl_80308698:
/* 80308698 003042F8  38 00 00 00 */	li r0, 0
/* 8030869C 003042FC  90 04 00 00 */	stw r0, 0(r4)
lbl_803086A0:
/* 803086A0 00304300  38 60 00 00 */	li r3, 0
/* 803086A4 00304304  4E 80 00 20 */	blr

.global VFipdm_part_check_media_detect
VFipdm_part_check_media_detect:
/* 803086A8 00304308  2C 03 00 00 */	cmpwi r3, 0
/* 803086AC 0030430C  41 82 00 0C */	beq lbl_803086B8
/* 803086B0 00304310  2C 04 00 00 */	cmpwi r4, 0
/* 803086B4 00304314  40 82 00 0C */	bne lbl_803086C0
lbl_803086B8:
/* 803086B8 00304318  38 60 00 01 */	li r3, 1
/* 803086BC 0030431C  4E 80 00 20 */	blr
lbl_803086C0:
/* 803086C0 00304320  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 803086C4 00304324  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 803086C8 00304328  28 07 00 1A */	cmplwi r7, 0x1a
/* 803086CC 0030432C  54 68 84 3E */	srwi r8, r3, 0x10
/* 803086D0 00304330  40 80 00 28 */	bge lbl_803086F8
/* 803086D4 00304334  28 00 04 00 */	cmplwi r0, 0x400
/* 803086D8 00304338  40 82 00 20 */	bne lbl_803086F8
/* 803086DC 0030433C  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 803086E0 00304340  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 803086E4 00304344  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 803086E8 00304348  7C 65 02 14 */	add r3, r5, r0
/* 803086EC 0030434C  80 03 06 F4 */	lwz r0, 0x6f4(r3)
/* 803086F0 00304350  7C 08 00 40 */	cmplw r8, r0
/* 803086F4 00304354  40 81 00 0C */	ble lbl_80308700
lbl_803086F8:
/* 803086F8 00304358  38 60 00 01 */	li r3, 1
/* 803086FC 0030435C  48 00 00 7C */	b lbl_80308778
lbl_80308700:
/* 80308700 00304360  38 00 00 0D */	li r0, 0xd
/* 80308704 00304364  38 C3 06 EC */	addi r6, r3, 0x6ec
/* 80308708 00304368  38 60 00 00 */	li r3, 0
/* 8030870C 0030436C  7C 09 03 A6 */	mtctr r0
lbl_80308710:
/* 80308710 00304370  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80308714 00304374  7D 25 02 14 */	add r9, r5, r0
/* 80308718 00304378  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 8030871C 0030437C  7C 00 30 40 */	cmplw r0, r6
/* 80308720 00304380  40 82 00 10 */	bne lbl_80308730
/* 80308724 00304384  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 80308728 00304388  7C 08 00 40 */	cmplw r8, r0
/* 8030872C 0030438C  41 82 00 30 */	beq lbl_8030875C
lbl_80308730:
/* 80308730 00304390  38 63 00 01 */	addi r3, r3, 1
/* 80308734 00304394  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80308738 00304398  7D 25 02 14 */	add r9, r5, r0
/* 8030873C 0030439C  80 09 00 D8 */	lwz r0, 0xd8(r9)
/* 80308740 003043A0  7C 00 30 40 */	cmplw r0, r6
/* 80308744 003043A4  40 82 00 10 */	bne lbl_80308754
/* 80308748 003043A8  80 09 00 D4 */	lwz r0, 0xd4(r9)
/* 8030874C 003043AC  7C 08 00 40 */	cmplw r8, r0
/* 80308750 003043B0  41 82 00 0C */	beq lbl_8030875C
lbl_80308754:
/* 80308754 003043B4  38 63 00 01 */	addi r3, r3, 1
/* 80308758 003043B8  42 00 FF B8 */	bdnz lbl_80308710
lbl_8030875C:
/* 8030875C 003043BC  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 80308760 003043C0  38 60 00 1A */	li r3, 0x1a
/* 80308764 003043C4  38 05 FF E6 */	addi r0, r5, -26
/* 80308768 003043C8  7C A3 1B 38 */	orc r3, r5, r3
/* 8030876C 003043CC  54 00 F8 7E */	srwi r0, r0, 1
/* 80308770 003043D0  7C 00 18 50 */	subf r0, r0, r3
/* 80308774 003043D4  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_80308778:
/* 80308778 003043D8  2C 03 00 00 */	cmpwi r3, 0
/* 8030877C 003043DC  4C 82 00 20 */	bnelr
/* 80308780 003043E0  1C 07 00 2C */	mulli r0, r7, 0x2c
/* 80308784 003043E4  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80308788 003043E8  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 8030878C 003043EC  7C 63 02 14 */	add r3, r3, r0
/* 80308790 003043F0  80 03 06 EC */	lwz r0, 0x6ec(r3)
/* 80308794 003043F4  54 00 07 39 */	rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80308798 003043F8  41 82 00 10 */	beq lbl_803087A8
/* 8030879C 003043FC  38 00 00 01 */	li r0, 1
/* 803087A0 00304400  90 04 00 00 */	stw r0, 0(r4)
/* 803087A4 00304404  48 00 00 0C */	b lbl_803087B0
lbl_803087A8:
/* 803087A8 00304408  38 00 00 00 */	li r0, 0
/* 803087AC 0030440C  90 04 00 00 */	stw r0, 0(r4)
lbl_803087B0:
/* 803087B0 00304410  38 60 00 00 */	li r3, 0
/* 803087B4 00304414  4E 80 00 20 */	blr

.global VFipdm_part_set_driver_error_code
VFipdm_part_set_driver_error_code:
/* 803087B8 00304418  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 803087BC 0030441C  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 803087C0 00304420  1C 00 00 2C */	mulli r0, r0, 0x2c
/* 803087C4 00304424  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 803087C8 00304428  7C 63 02 14 */	add r3, r3, r0
/* 803087CC 0030442C  90 83 07 10 */	stw r4, 0x710(r3)
/* 803087D0 00304430  4E 80 00 20 */	blr

.global VFipdm_part_get_driver_error_code
VFipdm_part_get_driver_error_code:
/* 803087D4 00304434  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 803087D8 00304438  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 803087DC 0030443C  1C 00 00 2C */	mulli r0, r0, 0x2c
/* 803087E0 00304440  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 803087E4 00304444  7C 63 02 14 */	add r3, r3, r0
/* 803087E8 00304448  80 63 07 10 */	lwz r3, 0x710(r3)
/* 803087EC 0030444C  4E 80 00 20 */	blr