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

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

.global VFipdm_disk_convert_sector_into_block
VFipdm_disk_convert_sector_into_block:
/* 80306B20 00302780  90 87 00 00 */	stw r4, 0(r7)
/* 80306B24 00302784  28 06 02 00 */	cmplwi r6, 0x200
/* 80306B28 00302788  38 60 00 00 */	li r3, 0
/* 80306B2C 0030278C  90 A8 00 00 */	stw r5, 0(r8)
/* 80306B30 00302790  40 81 00 94 */	ble lbl_80306BC4
/* 80306B34 00302794  54 C4 BE 7E */	rlwinm r4, r6, 0x17, 0x19, 0x1f
/* 80306B38 00302798  28 04 00 02 */	cmplwi r4, 2
/* 80306B3C 0030279C  40 82 00 14 */	bne lbl_80306B50
/* 80306B40 003027A0  80 07 00 00 */	lwz r0, 0(r7)
/* 80306B44 003027A4  54 00 08 3C */	slwi r0, r0, 1
/* 80306B48 003027A8  90 07 00 00 */	stw r0, 0(r7)
/* 80306B4C 003027AC  48 00 00 30 */	b lbl_80306B7C
lbl_80306B50:
/* 80306B50 003027B0  28 04 00 04 */	cmplwi r4, 4
/* 80306B54 003027B4  40 82 00 14 */	bne lbl_80306B68
/* 80306B58 003027B8  80 07 00 00 */	lwz r0, 0(r7)
/* 80306B5C 003027BC  54 00 10 3A */	slwi r0, r0, 2
/* 80306B60 003027C0  90 07 00 00 */	stw r0, 0(r7)
/* 80306B64 003027C4  48 00 00 18 */	b lbl_80306B7C
lbl_80306B68:
/* 80306B68 003027C8  28 04 00 08 */	cmplwi r4, 8
/* 80306B6C 003027CC  40 82 00 10 */	bne lbl_80306B7C
/* 80306B70 003027D0  80 07 00 00 */	lwz r0, 0(r7)
/* 80306B74 003027D4  54 00 18 38 */	slwi r0, r0, 3
/* 80306B78 003027D8  90 07 00 00 */	stw r0, 0(r7)
lbl_80306B7C:
/* 80306B7C 003027DC  28 04 00 02 */	cmplwi r4, 2
/* 80306B80 003027E0  40 82 00 14 */	bne lbl_80306B94
/* 80306B84 003027E4  80 08 00 00 */	lwz r0, 0(r8)
/* 80306B88 003027E8  54 00 08 3C */	slwi r0, r0, 1
/* 80306B8C 003027EC  90 08 00 00 */	stw r0, 0(r8)
/* 80306B90 003027F0  4E 80 00 20 */	blr
lbl_80306B94:
/* 80306B94 003027F4  28 04 00 04 */	cmplwi r4, 4
/* 80306B98 003027F8  40 82 00 14 */	bne lbl_80306BAC
/* 80306B9C 003027FC  80 08 00 00 */	lwz r0, 0(r8)
/* 80306BA0 00302800  54 00 10 3A */	slwi r0, r0, 2
/* 80306BA4 00302804  90 08 00 00 */	stw r0, 0(r8)
/* 80306BA8 00302808  4E 80 00 20 */	blr
lbl_80306BAC:
/* 80306BAC 0030280C  28 04 00 08 */	cmplwi r4, 8
/* 80306BB0 00302810  4C 82 00 20 */	bnelr
/* 80306BB4 00302814  80 08 00 00 */	lwz r0, 0(r8)
/* 80306BB8 00302818  54 00 18 38 */	slwi r0, r0, 3
/* 80306BBC 0030281C  90 08 00 00 */	stw r0, 0(r8)
/* 80306BC0 00302820  4E 80 00 20 */	blr
lbl_80306BC4:
/* 80306BC4 00302824  4C 80 00 20 */	bgelr
/* 80306BC8 00302828  38 60 00 04 */	li r3, 4
/* 80306BCC 0030282C  4E 80 00 20 */	blr

.global VFipdm_disk_convert_block_into_sector
VFipdm_disk_convert_block_into_sector:
/* 80306BD0 00302830  90 87 00 00 */	stw r4, 0(r7)
/* 80306BD4 00302834  28 06 02 00 */	cmplwi r6, 0x200
/* 80306BD8 00302838  38 60 00 00 */	li r3, 0
/* 80306BDC 0030283C  90 A8 00 00 */	stw r5, 0(r8)
/* 80306BE0 00302840  40 81 00 94 */	ble lbl_80306C74
/* 80306BE4 00302844  54 C4 BE 7E */	rlwinm r4, r6, 0x17, 0x19, 0x1f
/* 80306BE8 00302848  28 04 00 02 */	cmplwi r4, 2
/* 80306BEC 0030284C  40 82 00 14 */	bne lbl_80306C00
/* 80306BF0 00302850  80 07 00 00 */	lwz r0, 0(r7)
/* 80306BF4 00302854  54 00 F8 7E */	srwi r0, r0, 1
/* 80306BF8 00302858  90 07 00 00 */	stw r0, 0(r7)
/* 80306BFC 0030285C  48 00 00 30 */	b lbl_80306C2C
lbl_80306C00:
/* 80306C00 00302860  28 04 00 04 */	cmplwi r4, 4
/* 80306C04 00302864  40 82 00 14 */	bne lbl_80306C18
/* 80306C08 00302868  80 07 00 00 */	lwz r0, 0(r7)
/* 80306C0C 0030286C  54 00 F0 BE */	srwi r0, r0, 2
/* 80306C10 00302870  90 07 00 00 */	stw r0, 0(r7)
/* 80306C14 00302874  48 00 00 18 */	b lbl_80306C2C
lbl_80306C18:
/* 80306C18 00302878  28 04 00 08 */	cmplwi r4, 8
/* 80306C1C 0030287C  40 82 00 10 */	bne lbl_80306C2C
/* 80306C20 00302880  80 07 00 00 */	lwz r0, 0(r7)
/* 80306C24 00302884  54 00 E8 FE */	srwi r0, r0, 3
/* 80306C28 00302888  90 07 00 00 */	stw r0, 0(r7)
lbl_80306C2C:
/* 80306C2C 0030288C  28 04 00 02 */	cmplwi r4, 2
/* 80306C30 00302890  40 82 00 14 */	bne lbl_80306C44
/* 80306C34 00302894  80 08 00 00 */	lwz r0, 0(r8)
/* 80306C38 00302898  54 00 F8 7E */	srwi r0, r0, 1
/* 80306C3C 0030289C  90 08 00 00 */	stw r0, 0(r8)
/* 80306C40 003028A0  4E 80 00 20 */	blr
lbl_80306C44:
/* 80306C44 003028A4  28 04 00 04 */	cmplwi r4, 4
/* 80306C48 003028A8  40 82 00 14 */	bne lbl_80306C5C
/* 80306C4C 003028AC  80 08 00 00 */	lwz r0, 0(r8)
/* 80306C50 003028B0  54 00 F0 BE */	srwi r0, r0, 2
/* 80306C54 003028B4  90 08 00 00 */	stw r0, 0(r8)
/* 80306C58 003028B8  4E 80 00 20 */	blr
lbl_80306C5C:
/* 80306C5C 003028BC  28 04 00 08 */	cmplwi r4, 8
/* 80306C60 003028C0  4C 82 00 20 */	bnelr
/* 80306C64 003028C4  80 08 00 00 */	lwz r0, 0(r8)
/* 80306C68 003028C8  54 00 E8 FE */	srwi r0, r0, 3
/* 80306C6C 003028CC  90 08 00 00 */	stw r0, 0(r8)
/* 80306C70 003028D0  4E 80 00 20 */	blr
lbl_80306C74:
/* 80306C74 003028D4  4C 80 00 20 */	bgelr
/* 80306C78 003028D8  38 60 00 04 */	li r3, 4
/* 80306C7C 003028DC  4E 80 00 20 */	blr

VFipdm_disk_do_get_permission:
/* 80306C80 003028E0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80306C84 003028E4  7C 08 02 A6 */	mflr r0
/* 80306C88 003028E8  90 01 00 14 */	stw r0, 0x14(r1)
/* 80306C8C 003028EC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80306C90 003028F0  7C 9F 23 78 */	mr r31, r4
/* 80306C94 003028F4  93 C1 00 08 */	stw r30, 8(r1)
/* 80306C98 003028F8  7C 7E 1B 78 */	mr r30, r3
/* 80306C9C 003028FC  A0 04 00 12 */	lhz r0, 0x12(r4)
/* 80306CA0 00302900  2C 00 00 00 */	cmpwi r0, 0
/* 80306CA4 00302904  41 82 00 10 */	beq lbl_80306CB4
/* 80306CA8 00302908  80 04 00 00 */	lwz r0, 0(r4)
/* 80306CAC 0030290C  54 00 06 B5 */	rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80306CB0 00302910  41 82 00 C4 */	beq lbl_80306D74
lbl_80306CB4:
/* 80306CB4 00302914  80 84 00 04 */	lwz r4, 4(r4)
/* 80306CB8 00302918  7F C3 F3 78 */	mr r3, r30
/* 80306CBC 0030291C  81 84 00 08 */	lwz r12, 8(r4)
/* 80306CC0 00302920  7D 89 03 A6 */	mtctr r12
/* 80306CC4 00302924  4E 80 04 21 */	bctrl
/* 80306CC8 00302928  2C 03 00 00 */	cmpwi r3, 0
/* 80306CCC 0030292C  7C 64 1B 78 */	mr r4, r3
/* 80306CD0 00302930  41 82 00 1C */	beq lbl_80306CEC
/* 80306CD4 00302934  80 7F 00 30 */	lwz r3, 0x30(r31)
/* 80306CD8 00302938  2C 03 00 00 */	cmpwi r3, 0
/* 80306CDC 0030293C  41 82 00 08 */	beq lbl_80306CE4
/* 80306CE0 00302940  48 00 1A D9 */	bl VFipdm_part_set_driver_error_code
lbl_80306CE4:
/* 80306CE4 00302944  38 60 00 15 */	li r3, 0x15
/* 80306CE8 00302948  48 00 00 9C */	b lbl_80306D84
lbl_80306CEC:
/* 80306CEC 0030294C  80 BF 00 04 */	lwz r5, 4(r31)
/* 80306CF0 00302950  7F C3 F3 78 */	mr r3, r30
/* 80306CF4 00302954  38 9F 00 18 */	addi r4, r31, 0x18
/* 80306CF8 00302958  81 85 00 1C */	lwz r12, 0x1c(r5)
/* 80306CFC 0030295C  7D 89 03 A6 */	mtctr r12
/* 80306D00 00302960  4E 80 04 21 */	bctrl
/* 80306D04 00302964  2C 03 00 00 */	cmpwi r3, 0
/* 80306D08 00302968  7C 64 1B 78 */	mr r4, r3
/* 80306D0C 0030296C  41 82 00 1C */	beq lbl_80306D28
/* 80306D10 00302970  80 7F 00 30 */	lwz r3, 0x30(r31)
/* 80306D14 00302974  2C 03 00 00 */	cmpwi r3, 0
/* 80306D18 00302978  41 82 00 08 */	beq lbl_80306D20
/* 80306D1C 0030297C  48 00 1A 9D */	bl VFipdm_part_set_driver_error_code
lbl_80306D20:
/* 80306D20 00302980  38 60 00 15 */	li r3, 0x15
/* 80306D24 00302984  48 00 00 60 */	b lbl_80306D84
lbl_80306D28:
/* 80306D28 00302988  A0 1F 00 20 */	lhz r0, 0x20(r31)
/* 80306D2C 0030298C  54 00 05 FF */	clrlwi. r0, r0, 0x17
/* 80306D30 00302990  41 82 00 0C */	beq lbl_80306D3C
/* 80306D34 00302994  38 60 00 16 */	li r3, 0x16
/* 80306D38 00302998  48 00 00 4C */	b lbl_80306D84
lbl_80306D3C:
/* 80306D3C 0030299C  80 1F 00 24 */	lwz r0, 0x24(r31)
/* 80306D40 003029A0  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 80306D44 003029A4  41 82 00 14 */	beq lbl_80306D58
/* 80306D48 003029A8  80 1F 00 00 */	lwz r0, 0(r31)
/* 80306D4C 003029AC  60 00 00 10 */	ori r0, r0, 0x10
/* 80306D50 003029B0  90 1F 00 00 */	stw r0, 0(r31)
/* 80306D54 003029B4  48 00 00 10 */	b lbl_80306D64
lbl_80306D58:
/* 80306D58 003029B8  80 1F 00 00 */	lwz r0, 0(r31)
/* 80306D5C 003029BC  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 80306D60 003029C0  90 1F 00 00 */	stw r0, 0(r31)
lbl_80306D64:
/* 80306D64 003029C4  80 1F 00 00 */	lwz r0, 0(r31)
/* 80306D68 003029C8  60 00 00 02 */	ori r0, r0, 2
/* 80306D6C 003029CC  54 00 06 F2 */	rlwinm r0, r0, 0, 0x1b, 0x19
/* 80306D70 003029D0  90 1F 00 00 */	stw r0, 0(r31)
lbl_80306D74:
/* 80306D74 003029D4  A0 9F 00 12 */	lhz r4, 0x12(r31)
/* 80306D78 003029D8  38 60 00 00 */	li r3, 0
/* 80306D7C 003029DC  38 04 00 01 */	addi r0, r4, 1
/* 80306D80 003029E0  B0 1F 00 12 */	sth r0, 0x12(r31)
lbl_80306D84:
/* 80306D84 003029E4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80306D88 003029E8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80306D8C 003029EC  83 C1 00 08 */	lwz r30, 8(r1)
/* 80306D90 003029F0  7C 08 03 A6 */	mtlr r0
/* 80306D94 003029F4  38 21 00 10 */	addi r1, r1, 0x10
/* 80306D98 003029F8  4E 80 00 20 */	blr

.global VFipdm_disk_check_disk_handle
VFipdm_disk_check_disk_handle:
/* 80306D9C 003029FC  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 80306DA0 00302A00  54 64 04 2E */	rlwinm r4, r3, 0, 0x10, 0x17
/* 80306DA4 00302A04  28 00 00 1A */	cmplwi r0, 0x1a
/* 80306DA8 00302A08  54 65 84 3E */	srwi r5, r3, 0x10
/* 80306DAC 00302A0C  40 80 00 28 */	bge lbl_80306DD4
/* 80306DB0 00302A10  28 04 03 00 */	cmplwi r4, 0x300
/* 80306DB4 00302A14  40 82 00 20 */	bne lbl_80306DD4
/* 80306DB8 00302A18  1C 00 00 34 */	mulli r0, r0, 0x34
/* 80306DBC 00302A1C  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80306DC0 00302A20  38 83 EA 60 */	addi r4, r3, lbl_8057EA60@l
/* 80306DC4 00302A24  7C 64 02 14 */	add r3, r4, r0
/* 80306DC8 00302A28  80 03 01 B0 */	lwz r0, 0x1b0(r3)
/* 80306DCC 00302A2C  7C 05 00 40 */	cmplw r5, r0
/* 80306DD0 00302A30  40 81 00 0C */	ble lbl_80306DDC
lbl_80306DD4:
/* 80306DD4 00302A34  38 60 00 01 */	li r3, 1
/* 80306DD8 00302A38  4E 80 00 20 */	blr
lbl_80306DDC:
/* 80306DDC 00302A3C  38 00 00 0D */	li r0, 0xd
/* 80306DE0 00302A40  38 E3 01 A4 */	addi r7, r3, 0x1a4
/* 80306DE4 00302A44  38 60 00 00 */	li r3, 0
/* 80306DE8 00302A48  7C 09 03 A6 */	mtctr r0
lbl_80306DEC:
/* 80306DEC 00302A4C  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80306DF0 00302A50  7C C4 02 14 */	add r6, r4, r0
/* 80306DF4 00302A54  80 06 00 08 */	lwz r0, 8(r6)
/* 80306DF8 00302A58  7C 00 38 40 */	cmplw r0, r7
/* 80306DFC 00302A5C  40 82 00 10 */	bne lbl_80306E0C
/* 80306E00 00302A60  80 06 00 04 */	lwz r0, 4(r6)
/* 80306E04 00302A64  7C 05 00 40 */	cmplw r5, r0
/* 80306E08 00302A68  41 82 00 30 */	beq lbl_80306E38
lbl_80306E0C:
/* 80306E0C 00302A6C  38 63 00 01 */	addi r3, r3, 1
/* 80306E10 00302A70  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80306E14 00302A74  7C C4 02 14 */	add r6, r4, r0
/* 80306E18 00302A78  80 06 00 08 */	lwz r0, 8(r6)
/* 80306E1C 00302A7C  7C 00 38 40 */	cmplw r0, r7
/* 80306E20 00302A80  40 82 00 10 */	bne lbl_80306E30
/* 80306E24 00302A84  80 06 00 04 */	lwz r0, 4(r6)
/* 80306E28 00302A88  7C 05 00 40 */	cmplw r5, r0
/* 80306E2C 00302A8C  41 82 00 0C */	beq lbl_80306E38
lbl_80306E30:
/* 80306E30 00302A90  38 63 00 01 */	addi r3, r3, 1
/* 80306E34 00302A94  42 00 FF B8 */	bdnz lbl_80306DEC
lbl_80306E38:
/* 80306E38 00302A98  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 80306E3C 00302A9C  38 60 00 1A */	li r3, 0x1a
/* 80306E40 00302AA0  38 04 FF E6 */	addi r0, r4, -26
/* 80306E44 00302AA4  7C 83 1B 38 */	orc r3, r4, r3
/* 80306E48 00302AA8  54 00 F8 7E */	srwi r0, r0, 1
/* 80306E4C 00302AAC  7C 00 18 50 */	subf r0, r0, r3
/* 80306E50 00302AB0  54 03 0F FE */	srwi r3, r0, 0x1f
/* 80306E54 00302AB4  4E 80 00 20 */	blr

.global VFipdm_disk_get_part_permission
VFipdm_disk_get_part_permission:
/* 80306E58 00302AB8  2C 03 00 00 */	cmpwi r3, 0
/* 80306E5C 00302ABC  40 82 00 0C */	bne lbl_80306E68
/* 80306E60 00302AC0  38 60 00 01 */	li r3, 1
/* 80306E64 00302AC4  4E 80 00 20 */	blr
lbl_80306E68:
/* 80306E68 00302AC8  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 80306E6C 00302ACC  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 80306E70 00302AD0  28 07 00 1A */	cmplwi r7, 0x1a
/* 80306E74 00302AD4  54 68 84 3E */	srwi r8, r3, 0x10
/* 80306E78 00302AD8  40 80 00 28 */	bge lbl_80306EA0
/* 80306E7C 00302ADC  28 00 03 00 */	cmplwi r0, 0x300
/* 80306E80 00302AE0  40 82 00 20 */	bne lbl_80306EA0
/* 80306E84 00302AE4  1C 07 00 34 */	mulli r0, r7, 0x34
/* 80306E88 00302AE8  3C 80 80 58 */	lis r4, lbl_8057EA60@ha
/* 80306E8C 00302AEC  38 A4 EA 60 */	addi r5, r4, lbl_8057EA60@l
/* 80306E90 00302AF0  7C 85 02 14 */	add r4, r5, r0
/* 80306E94 00302AF4  80 04 01 B0 */	lwz r0, 0x1b0(r4)
/* 80306E98 00302AF8  7C 08 00 40 */	cmplw r8, r0
/* 80306E9C 00302AFC  40 81 00 0C */	ble lbl_80306EA8
lbl_80306EA0:
/* 80306EA0 00302B00  38 00 00 01 */	li r0, 1
/* 80306EA4 00302B04  48 00 00 7C */	b lbl_80306F20
lbl_80306EA8:
/* 80306EA8 00302B08  38 00 00 0D */	li r0, 0xd
/* 80306EAC 00302B0C  38 C4 01 A4 */	addi r6, r4, 0x1a4
/* 80306EB0 00302B10  38 80 00 00 */	li r4, 0
/* 80306EB4 00302B14  7C 09 03 A6 */	mtctr r0
lbl_80306EB8:
/* 80306EB8 00302B18  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 80306EBC 00302B1C  7D 25 02 14 */	add r9, r5, r0
/* 80306EC0 00302B20  80 09 00 08 */	lwz r0, 8(r9)
/* 80306EC4 00302B24  7C 00 30 40 */	cmplw r0, r6
/* 80306EC8 00302B28  40 82 00 10 */	bne lbl_80306ED8
/* 80306ECC 00302B2C  80 09 00 04 */	lwz r0, 4(r9)
/* 80306ED0 00302B30  7C 08 00 40 */	cmplw r8, r0
/* 80306ED4 00302B34  41 82 00 30 */	beq lbl_80306F04
lbl_80306ED8:
/* 80306ED8 00302B38  38 84 00 01 */	addi r4, r4, 1
/* 80306EDC 00302B3C  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 80306EE0 00302B40  7D 25 02 14 */	add r9, r5, r0
/* 80306EE4 00302B44  80 09 00 08 */	lwz r0, 8(r9)
/* 80306EE8 00302B48  7C 00 30 40 */	cmplw r0, r6
/* 80306EEC 00302B4C  40 82 00 10 */	bne lbl_80306EFC
/* 80306EF0 00302B50  80 09 00 04 */	lwz r0, 4(r9)
/* 80306EF4 00302B54  7C 08 00 40 */	cmplw r8, r0
/* 80306EF8 00302B58  41 82 00 0C */	beq lbl_80306F04
lbl_80306EFC:
/* 80306EFC 00302B5C  38 84 00 01 */	addi r4, r4, 1
/* 80306F00 00302B60  42 00 FF B8 */	bdnz lbl_80306EB8
lbl_80306F04:
/* 80306F04 00302B64  54 85 04 3E */	clrlwi r5, r4, 0x10
/* 80306F08 00302B68  38 80 00 1A */	li r4, 0x1a
/* 80306F0C 00302B6C  38 05 FF E6 */	addi r0, r5, -26
/* 80306F10 00302B70  7C A4 23 38 */	orc r4, r5, r4
/* 80306F14 00302B74  54 00 F8 7E */	srwi r0, r0, 1
/* 80306F18 00302B78  7C 00 20 50 */	subf r0, r0, r4
/* 80306F1C 00302B7C  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_80306F20:
/* 80306F20 00302B80  2C 00 00 00 */	cmpwi r0, 0
/* 80306F24 00302B84  41 82 00 0C */	beq lbl_80306F30
/* 80306F28 00302B88  7C 03 03 78 */	mr r3, r0
/* 80306F2C 00302B8C  4E 80 00 20 */	blr
lbl_80306F30:
/* 80306F30 00302B90  1C 07 00 34 */	mulli r0, r7, 0x34
/* 80306F34 00302B94  3C 80 80 58 */	lis r4, lbl_8057EA60@ha
/* 80306F38 00302B98  38 84 EA 60 */	addi r4, r4, lbl_8057EA60@l
/* 80306F3C 00302B9C  7C 84 02 14 */	add r4, r4, r0
/* 80306F40 00302BA0  38 84 01 A4 */	addi r4, r4, 0x1a4
/* 80306F44 00302BA4  4B FF FD 3C */	b VFipdm_disk_do_get_permission
/* 80306F48 00302BA8  4E 80 00 20 */	blr

.global VFipdm_disk_release_part_permission
VFipdm_disk_release_part_permission:
/* 80306F4C 00302BAC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80306F50 00302BB0  7C 08 02 A6 */	mflr r0
/* 80306F54 00302BB4  2C 03 00 00 */	cmpwi r3, 0
/* 80306F58 00302BB8  90 01 00 14 */	stw r0, 0x14(r1)
/* 80306F5C 00302BBC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80306F60 00302BC0  7C 9F 23 78 */	mr r31, r4
/* 80306F64 00302BC4  93 C1 00 08 */	stw r30, 8(r1)
/* 80306F68 00302BC8  40 82 00 0C */	bne lbl_80306F74
/* 80306F6C 00302BCC  38 60 00 01 */	li r3, 1
/* 80306F70 00302BD0  48 00 01 60 */	b lbl_803070D0
lbl_80306F74:
/* 80306F74 00302BD4  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 80306F78 00302BD8  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 80306F7C 00302BDC  28 07 00 1A */	cmplwi r7, 0x1a
/* 80306F80 00302BE0  54 68 84 3E */	srwi r8, r3, 0x10
/* 80306F84 00302BE4  40 80 00 28 */	bge lbl_80306FAC
/* 80306F88 00302BE8  28 00 03 00 */	cmplwi r0, 0x300
/* 80306F8C 00302BEC  40 82 00 20 */	bne lbl_80306FAC
/* 80306F90 00302BF0  1C 07 00 34 */	mulli r0, r7, 0x34
/* 80306F94 00302BF4  3C 80 80 58 */	lis r4, lbl_8057EA60@ha
/* 80306F98 00302BF8  38 A4 EA 60 */	addi r5, r4, lbl_8057EA60@l
/* 80306F9C 00302BFC  7C 85 02 14 */	add r4, r5, r0
/* 80306FA0 00302C00  80 04 01 B0 */	lwz r0, 0x1b0(r4)
/* 80306FA4 00302C04  7C 08 00 40 */	cmplw r8, r0
/* 80306FA8 00302C08  40 81 00 0C */	ble lbl_80306FB4
lbl_80306FAC:
/* 80306FAC 00302C0C  38 00 00 01 */	li r0, 1
/* 80306FB0 00302C10  48 00 00 7C */	b lbl_8030702C
lbl_80306FB4:
/* 80306FB4 00302C14  38 00 00 0D */	li r0, 0xd
/* 80306FB8 00302C18  38 C4 01 A4 */	addi r6, r4, 0x1a4
/* 80306FBC 00302C1C  38 80 00 00 */	li r4, 0
/* 80306FC0 00302C20  7C 09 03 A6 */	mtctr r0
lbl_80306FC4:
/* 80306FC4 00302C24  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 80306FC8 00302C28  7D 25 02 14 */	add r9, r5, r0
/* 80306FCC 00302C2C  80 09 00 08 */	lwz r0, 8(r9)
/* 80306FD0 00302C30  7C 00 30 40 */	cmplw r0, r6
/* 80306FD4 00302C34  40 82 00 10 */	bne lbl_80306FE4
/* 80306FD8 00302C38  80 09 00 04 */	lwz r0, 4(r9)
/* 80306FDC 00302C3C  7C 08 00 40 */	cmplw r8, r0
/* 80306FE0 00302C40  41 82 00 30 */	beq lbl_80307010
lbl_80306FE4:
/* 80306FE4 00302C44  38 84 00 01 */	addi r4, r4, 1
/* 80306FE8 00302C48  54 80 1B 78 */	rlwinm r0, r4, 3, 0xd, 0x1c
/* 80306FEC 00302C4C  7D 25 02 14 */	add r9, r5, r0
/* 80306FF0 00302C50  80 09 00 08 */	lwz r0, 8(r9)
/* 80306FF4 00302C54  7C 00 30 40 */	cmplw r0, r6
/* 80306FF8 00302C58  40 82 00 10 */	bne lbl_80307008
/* 80306FFC 00302C5C  80 09 00 04 */	lwz r0, 4(r9)
/* 80307000 00302C60  7C 08 00 40 */	cmplw r8, r0
/* 80307004 00302C64  41 82 00 0C */	beq lbl_80307010
lbl_80307008:
/* 80307008 00302C68  38 84 00 01 */	addi r4, r4, 1
/* 8030700C 00302C6C  42 00 FF B8 */	bdnz lbl_80306FC4
lbl_80307010:
/* 80307010 00302C70  54 85 04 3E */	clrlwi r5, r4, 0x10
/* 80307014 00302C74  38 80 00 1A */	li r4, 0x1a
/* 80307018 00302C78  38 05 FF E6 */	addi r0, r5, -26
/* 8030701C 00302C7C  7C A4 23 38 */	orc r4, r5, r4
/* 80307020 00302C80  54 00 F8 7E */	srwi r0, r0, 1
/* 80307024 00302C84  7C 00 20 50 */	subf r0, r0, r4
/* 80307028 00302C88  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_8030702C:
/* 8030702C 00302C8C  2C 00 00 00 */	cmpwi r0, 0
/* 80307030 00302C90  41 82 00 0C */	beq lbl_8030703C
/* 80307034 00302C94  7C 03 03 78 */	mr r3, r0
/* 80307038 00302C98  48 00 00 98 */	b lbl_803070D0
lbl_8030703C:
/* 8030703C 00302C9C  1C 07 00 34 */	mulli r0, r7, 0x34
/* 80307040 00302CA0  3C 80 80 58 */	lis r4, lbl_8057EA60@ha
/* 80307044 00302CA4  38 84 EA 60 */	addi r4, r4, lbl_8057EA60@l
/* 80307048 00302CA8  7F C4 02 14 */	add r30, r4, r0
/* 8030704C 00302CAC  A0 1E 01 B6 */	lhz r0, 0x1b6(r30)
/* 80307050 00302CB0  2C 00 00 00 */	cmpwi r0, 0
/* 80307054 00302CB4  40 82 00 0C */	bne lbl_80307060
/* 80307058 00302CB8  38 60 00 0E */	li r3, 0xe
/* 8030705C 00302CBC  48 00 00 74 */	b lbl_803070D0
lbl_80307060:
/* 80307060 00302CC0  28 00 00 01 */	cmplwi r0, 1
/* 80307064 00302CC4  38 80 00 00 */	li r4, 0
/* 80307068 00302CC8  40 82 00 34 */	bne lbl_8030709C
/* 8030706C 00302CCC  80 9E 01 A8 */	lwz r4, 0x1a8(r30)
/* 80307070 00302CD0  81 84 00 0C */	lwz r12, 0xc(r4)
/* 80307074 00302CD4  7D 89 03 A6 */	mtctr r12
/* 80307078 00302CD8  4E 80 04 21 */	bctrl
/* 8030707C 00302CDC  2C 03 00 00 */	cmpwi r3, 0
/* 80307080 00302CE0  7C 64 1B 78 */	mr r4, r3
/* 80307084 00302CE4  41 82 00 18 */	beq lbl_8030709C
/* 80307088 00302CE8  80 7E 01 D4 */	lwz r3, 0x1d4(r30)
/* 8030708C 00302CEC  2C 03 00 00 */	cmpwi r3, 0
/* 80307090 00302CF0  41 82 00 08 */	beq lbl_80307098
/* 80307094 00302CF4  48 00 17 25 */	bl VFipdm_part_set_driver_error_code
lbl_80307098:
/* 80307098 00302CF8  38 80 00 15 */	li r4, 0x15
lbl_8030709C:
/* 8030709C 00302CFC  2C 04 00 00 */	cmpwi r4, 0
/* 803070A0 00302D00  41 82 00 0C */	beq lbl_803070AC
/* 803070A4 00302D04  28 1F 00 01 */	cmplwi r31, 1
/* 803070A8 00302D08  40 82 00 24 */	bne lbl_803070CC
lbl_803070AC:
/* 803070AC 00302D0C  A0 7E 01 B6 */	lhz r3, 0x1b6(r30)
/* 803070B0 00302D10  38 63 FF FF */	addi r3, r3, -1
/* 803070B4 00302D14  54 60 04 3F */	clrlwi. r0, r3, 0x10
/* 803070B8 00302D18  B0 7E 01 B6 */	sth r3, 0x1b6(r30)
/* 803070BC 00302D1C  40 82 00 10 */	bne lbl_803070CC
/* 803070C0 00302D20  80 1E 01 A4 */	lwz r0, 0x1a4(r30)
/* 803070C4 00302D24  54 00 07 FA */	rlwinm r0, r0, 0, 0x1f, 0x1d
/* 803070C8 00302D28  90 1E 01 A4 */	stw r0, 0x1a4(r30)
lbl_803070CC:
/* 803070CC 00302D2C  7C 83 23 78 */	mr r3, r4
lbl_803070D0:
/* 803070D0 00302D30  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803070D4 00302D34  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803070D8 00302D38  83 C1 00 08 */	lwz r30, 8(r1)
/* 803070DC 00302D3C  7C 08 03 A6 */	mtlr r0
/* 803070E0 00302D40  38 21 00 10 */	addi r1, r1, 0x10
/* 803070E4 00302D44  4E 80 00 20 */	blr

.global VFipdm_disk_physical_read
VFipdm_disk_physical_read:
/* 803070E8 00302D48  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 803070EC 00302D4C  7C 08 02 A6 */	mflr r0
/* 803070F0 00302D50  90 01 00 34 */	stw r0, 0x34(r1)
/* 803070F4 00302D54  39 61 00 30 */	addi r11, r1, 0x30
/* 803070F8 00302D58  4B EC 00 31 */	bl _savegpr_27
/* 803070FC 00302D5C  2C 03 00 00 */	cmpwi r3, 0
/* 80307100 00302D60  7C 7C 1B 78 */	mr r28, r3
/* 80307104 00302D64  7C 9D 23 78 */	mr r29, r4
/* 80307108 00302D68  7C FE 3B 78 */	mr r30, r7
/* 8030710C 00302D6C  7D 1F 43 78 */	mr r31, r8
/* 80307110 00302D70  41 82 00 24 */	beq lbl_80307134
/* 80307114 00302D74  2C 04 00 00 */	cmpwi r4, 0
/* 80307118 00302D78  41 82 00 1C */	beq lbl_80307134
/* 8030711C 00302D7C  2C 06 00 00 */	cmpwi r6, 0
/* 80307120 00302D80  41 82 00 14 */	beq lbl_80307134
/* 80307124 00302D84  2C 07 00 00 */	cmpwi r7, 0
/* 80307128 00302D88  41 82 00 0C */	beq lbl_80307134
/* 8030712C 00302D8C  2C 08 00 00 */	cmpwi r8, 0
/* 80307130 00302D90  40 82 00 0C */	bne lbl_8030713C
lbl_80307134:
/* 80307134 00302D94  38 60 00 01 */	li r3, 1
/* 80307138 00302D98  48 00 01 70 */	b lbl_803072A8
lbl_8030713C:
/* 8030713C 00302D9C  54 68 06 3E */	clrlwi r8, r3, 0x18
/* 80307140 00302DA0  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 80307144 00302DA4  28 08 00 1A */	cmplwi r8, 0x1a
/* 80307148 00302DA8  54 69 84 3E */	srwi r9, r3, 0x10
/* 8030714C 00302DAC  40 80 00 28 */	bge lbl_80307174
/* 80307150 00302DB0  28 00 03 00 */	cmplwi r0, 0x300
/* 80307154 00302DB4  40 82 00 20 */	bne lbl_80307174
/* 80307158 00302DB8  1C 08 00 34 */	mulli r0, r8, 0x34
/* 8030715C 00302DBC  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307160 00302DC0  38 83 EA 60 */	addi r4, r3, lbl_8057EA60@l
/* 80307164 00302DC4  7C 64 02 14 */	add r3, r4, r0
/* 80307168 00302DC8  80 03 01 B0 */	lwz r0, 0x1b0(r3)
/* 8030716C 00302DCC  7C 09 00 40 */	cmplw r9, r0
/* 80307170 00302DD0  40 81 00 0C */	ble lbl_8030717C
lbl_80307174:
/* 80307174 00302DD4  38 60 00 01 */	li r3, 1
/* 80307178 00302DD8  48 00 00 7C */	b lbl_803071F4
lbl_8030717C:
/* 8030717C 00302DDC  38 00 00 0D */	li r0, 0xd
/* 80307180 00302DE0  38 E3 01 A4 */	addi r7, r3, 0x1a4
/* 80307184 00302DE4  38 60 00 00 */	li r3, 0
/* 80307188 00302DE8  7C 09 03 A6 */	mtctr r0
lbl_8030718C:
/* 8030718C 00302DEC  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80307190 00302DF0  7D 44 02 14 */	add r10, r4, r0
/* 80307194 00302DF4  80 0A 00 08 */	lwz r0, 8(r10)
/* 80307198 00302DF8  7C 00 38 40 */	cmplw r0, r7
/* 8030719C 00302DFC  40 82 00 10 */	bne lbl_803071AC
/* 803071A0 00302E00  80 0A 00 04 */	lwz r0, 4(r10)
/* 803071A4 00302E04  7C 09 00 40 */	cmplw r9, r0
/* 803071A8 00302E08  41 82 00 30 */	beq lbl_803071D8
lbl_803071AC:
/* 803071AC 00302E0C  38 63 00 01 */	addi r3, r3, 1
/* 803071B0 00302E10  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 803071B4 00302E14  7D 44 02 14 */	add r10, r4, r0
/* 803071B8 00302E18  80 0A 00 08 */	lwz r0, 8(r10)
/* 803071BC 00302E1C  7C 00 38 40 */	cmplw r0, r7
/* 803071C0 00302E20  40 82 00 10 */	bne lbl_803071D0
/* 803071C4 00302E24  80 0A 00 04 */	lwz r0, 4(r10)
/* 803071C8 00302E28  7C 09 00 40 */	cmplw r9, r0
/* 803071CC 00302E2C  41 82 00 0C */	beq lbl_803071D8
lbl_803071D0:
/* 803071D0 00302E30  38 63 00 01 */	addi r3, r3, 1
/* 803071D4 00302E34  42 00 FF B8 */	bdnz lbl_8030718C
lbl_803071D8:
/* 803071D8 00302E38  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 803071DC 00302E3C  38 60 00 1A */	li r3, 0x1a
/* 803071E0 00302E40  38 04 FF E6 */	addi r0, r4, -26
/* 803071E4 00302E44  7C 83 1B 38 */	orc r3, r4, r3
/* 803071E8 00302E48  54 00 F8 7E */	srwi r0, r0, 1
/* 803071EC 00302E4C  7C 00 18 50 */	subf r0, r0, r3
/* 803071F0 00302E50  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_803071F4:
/* 803071F4 00302E54  2C 03 00 00 */	cmpwi r3, 0
/* 803071F8 00302E58  41 82 00 08 */	beq lbl_80307200
/* 803071FC 00302E5C  48 00 00 AC */	b lbl_803072A8
lbl_80307200:
/* 80307200 00302E60  1C 08 00 34 */	mulli r0, r8, 0x34
/* 80307204 00302E64  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307208 00302E68  7C A4 2B 78 */	mr r4, r5
/* 8030720C 00302E6C  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 80307210 00302E70  7C 63 02 14 */	add r3, r3, r0
/* 80307214 00302E74  7C C5 33 78 */	mr r5, r6
/* 80307218 00302E78  3B 63 01 A4 */	addi r27, r3, 0x1a4
/* 8030721C 00302E7C  7F C6 F3 78 */	mr r6, r30
/* 80307220 00302E80  7F 63 DB 78 */	mr r3, r27
/* 80307224 00302E84  38 E1 00 10 */	addi r7, r1, 0x10
/* 80307228 00302E88  39 01 00 0C */	addi r8, r1, 0xc
/* 8030722C 00302E8C  4B FF F8 F5 */	bl VFipdm_disk_convert_sector_into_block
/* 80307230 00302E90  2C 03 00 00 */	cmpwi r3, 0
/* 80307234 00302E94  41 82 00 08 */	beq lbl_8030723C
/* 80307238 00302E98  48 00 00 70 */	b lbl_803072A8
lbl_8030723C:
/* 8030723C 00302E9C  80 BB 00 04 */	lwz r5, 4(r27)
/* 80307240 00302EA0  7F 83 E3 78 */	mr r3, r28
/* 80307244 00302EA4  7F A4 EB 78 */	mr r4, r29
/* 80307248 00302EA8  7F E7 FB 78 */	mr r7, r31
/* 8030724C 00302EAC  81 85 00 14 */	lwz r12, 0x14(r5)
/* 80307250 00302EB0  80 A1 00 10 */	lwz r5, 0x10(r1)
/* 80307254 00302EB4  80 C1 00 0C */	lwz r6, 0xc(r1)
/* 80307258 00302EB8  7D 89 03 A6 */	mtctr r12
/* 8030725C 00302EBC  4E 80 04 21 */	bctrl
/* 80307260 00302EC0  80 81 00 10 */	lwz r4, 0x10(r1)
/* 80307264 00302EC4  7C 7C 1B 78 */	mr r28, r3
/* 80307268 00302EC8  80 BF 00 00 */	lwz r5, 0(r31)
/* 8030726C 00302ECC  7F 63 DB 78 */	mr r3, r27
/* 80307270 00302ED0  7F C6 F3 78 */	mr r6, r30
/* 80307274 00302ED4  7F E8 FB 78 */	mr r8, r31
/* 80307278 00302ED8  38 E1 00 08 */	addi r7, r1, 8
/* 8030727C 00302EDC  4B FF F9 55 */	bl VFipdm_disk_convert_block_into_sector
/* 80307280 00302EE0  2C 1C 00 00 */	cmpwi r28, 0
/* 80307284 00302EE4  41 82 00 20 */	beq lbl_803072A4
/* 80307288 00302EE8  80 7B 00 30 */	lwz r3, 0x30(r27)
/* 8030728C 00302EEC  2C 03 00 00 */	cmpwi r3, 0
/* 80307290 00302EF0  41 82 00 0C */	beq lbl_8030729C
/* 80307294 00302EF4  7F 84 E3 78 */	mr r4, r28
/* 80307298 00302EF8  48 00 15 21 */	bl VFipdm_part_set_driver_error_code
lbl_8030729C:
/* 8030729C 00302EFC  38 60 00 15 */	li r3, 0x15
/* 803072A0 00302F00  48 00 00 08 */	b lbl_803072A8
lbl_803072A4:
/* 803072A4 00302F04  38 60 00 00 */	li r3, 0
lbl_803072A8:
/* 803072A8 00302F08  39 61 00 30 */	addi r11, r1, 0x30
/* 803072AC 00302F0C  4B EB FE C9 */	bl _restgpr_27
/* 803072B0 00302F10  80 01 00 34 */	lwz r0, 0x34(r1)
/* 803072B4 00302F14  7C 08 03 A6 */	mtlr r0
/* 803072B8 00302F18  38 21 00 30 */	addi r1, r1, 0x30
/* 803072BC 00302F1C  4E 80 00 20 */	blr

.global VFipdm_disk_physical_write
VFipdm_disk_physical_write:
/* 803072C0 00302F20  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 803072C4 00302F24  7C 08 02 A6 */	mflr r0
/* 803072C8 00302F28  90 01 00 34 */	stw r0, 0x34(r1)
/* 803072CC 00302F2C  39 61 00 30 */	addi r11, r1, 0x30
/* 803072D0 00302F30  4B EB FE 59 */	bl _savegpr_27
/* 803072D4 00302F34  2C 03 00 00 */	cmpwi r3, 0
/* 803072D8 00302F38  7C 7C 1B 78 */	mr r28, r3
/* 803072DC 00302F3C  7C 9D 23 78 */	mr r29, r4
/* 803072E0 00302F40  7C FE 3B 78 */	mr r30, r7
/* 803072E4 00302F44  7D 1F 43 78 */	mr r31, r8
/* 803072E8 00302F48  41 82 00 24 */	beq lbl_8030730C
/* 803072EC 00302F4C  2C 04 00 00 */	cmpwi r4, 0
/* 803072F0 00302F50  41 82 00 1C */	beq lbl_8030730C
/* 803072F4 00302F54  2C 06 00 00 */	cmpwi r6, 0
/* 803072F8 00302F58  41 82 00 14 */	beq lbl_8030730C
/* 803072FC 00302F5C  2C 07 00 00 */	cmpwi r7, 0
/* 80307300 00302F60  41 82 00 0C */	beq lbl_8030730C
/* 80307304 00302F64  2C 08 00 00 */	cmpwi r8, 0
/* 80307308 00302F68  40 82 00 0C */	bne lbl_80307314
lbl_8030730C:
/* 8030730C 00302F6C  38 60 00 01 */	li r3, 1
/* 80307310 00302F70  48 00 01 70 */	b lbl_80307480
lbl_80307314:
/* 80307314 00302F74  54 68 06 3E */	clrlwi r8, r3, 0x18
/* 80307318 00302F78  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 8030731C 00302F7C  28 08 00 1A */	cmplwi r8, 0x1a
/* 80307320 00302F80  54 69 84 3E */	srwi r9, r3, 0x10
/* 80307324 00302F84  40 80 00 28 */	bge lbl_8030734C
/* 80307328 00302F88  28 00 03 00 */	cmplwi r0, 0x300
/* 8030732C 00302F8C  40 82 00 20 */	bne lbl_8030734C
/* 80307330 00302F90  1C 08 00 34 */	mulli r0, r8, 0x34
/* 80307334 00302F94  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307338 00302F98  38 83 EA 60 */	addi r4, r3, lbl_8057EA60@l
/* 8030733C 00302F9C  7C 64 02 14 */	add r3, r4, r0
/* 80307340 00302FA0  80 03 01 B0 */	lwz r0, 0x1b0(r3)
/* 80307344 00302FA4  7C 09 00 40 */	cmplw r9, r0
/* 80307348 00302FA8  40 81 00 0C */	ble lbl_80307354
lbl_8030734C:
/* 8030734C 00302FAC  38 60 00 01 */	li r3, 1
/* 80307350 00302FB0  48 00 00 7C */	b lbl_803073CC
lbl_80307354:
/* 80307354 00302FB4  38 00 00 0D */	li r0, 0xd
/* 80307358 00302FB8  38 E3 01 A4 */	addi r7, r3, 0x1a4
/* 8030735C 00302FBC  38 60 00 00 */	li r3, 0
/* 80307360 00302FC0  7C 09 03 A6 */	mtctr r0
lbl_80307364:
/* 80307364 00302FC4  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80307368 00302FC8  7D 44 02 14 */	add r10, r4, r0
/* 8030736C 00302FCC  80 0A 00 08 */	lwz r0, 8(r10)
/* 80307370 00302FD0  7C 00 38 40 */	cmplw r0, r7
/* 80307374 00302FD4  40 82 00 10 */	bne lbl_80307384
/* 80307378 00302FD8  80 0A 00 04 */	lwz r0, 4(r10)
/* 8030737C 00302FDC  7C 09 00 40 */	cmplw r9, r0
/* 80307380 00302FE0  41 82 00 30 */	beq lbl_803073B0
lbl_80307384:
/* 80307384 00302FE4  38 63 00 01 */	addi r3, r3, 1
/* 80307388 00302FE8  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 8030738C 00302FEC  7D 44 02 14 */	add r10, r4, r0
/* 80307390 00302FF0  80 0A 00 08 */	lwz r0, 8(r10)
/* 80307394 00302FF4  7C 00 38 40 */	cmplw r0, r7
/* 80307398 00302FF8  40 82 00 10 */	bne lbl_803073A8
/* 8030739C 00302FFC  80 0A 00 04 */	lwz r0, 4(r10)
/* 803073A0 00303000  7C 09 00 40 */	cmplw r9, r0
/* 803073A4 00303004  41 82 00 0C */	beq lbl_803073B0
lbl_803073A8:
/* 803073A8 00303008  38 63 00 01 */	addi r3, r3, 1
/* 803073AC 0030300C  42 00 FF B8 */	bdnz lbl_80307364
lbl_803073B0:
/* 803073B0 00303010  54 64 04 3E */	clrlwi r4, r3, 0x10
/* 803073B4 00303014  38 60 00 1A */	li r3, 0x1a
/* 803073B8 00303018  38 04 FF E6 */	addi r0, r4, -26
/* 803073BC 0030301C  7C 83 1B 38 */	orc r3, r4, r3
/* 803073C0 00303020  54 00 F8 7E */	srwi r0, r0, 1
/* 803073C4 00303024  7C 00 18 50 */	subf r0, r0, r3
/* 803073C8 00303028  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_803073CC:
/* 803073CC 0030302C  2C 03 00 00 */	cmpwi r3, 0
/* 803073D0 00303030  41 82 00 08 */	beq lbl_803073D8
/* 803073D4 00303034  48 00 00 AC */	b lbl_80307480
lbl_803073D8:
/* 803073D8 00303038  1C 08 00 34 */	mulli r0, r8, 0x34
/* 803073DC 0030303C  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 803073E0 00303040  7C A4 2B 78 */	mr r4, r5
/* 803073E4 00303044  38 63 EA 60 */	addi r3, r3, lbl_8057EA60@l
/* 803073E8 00303048  7C 63 02 14 */	add r3, r3, r0
/* 803073EC 0030304C  7C C5 33 78 */	mr r5, r6
/* 803073F0 00303050  3B 63 01 A4 */	addi r27, r3, 0x1a4
/* 803073F4 00303054  7F C6 F3 78 */	mr r6, r30
/* 803073F8 00303058  7F 63 DB 78 */	mr r3, r27
/* 803073FC 0030305C  38 E1 00 10 */	addi r7, r1, 0x10
/* 80307400 00303060  39 01 00 0C */	addi r8, r1, 0xc
/* 80307404 00303064  4B FF F7 1D */	bl VFipdm_disk_convert_sector_into_block
/* 80307408 00303068  2C 03 00 00 */	cmpwi r3, 0
/* 8030740C 0030306C  41 82 00 08 */	beq lbl_80307414
/* 80307410 00303070  48 00 00 70 */	b lbl_80307480
lbl_80307414:
/* 80307414 00303074  80 BB 00 04 */	lwz r5, 4(r27)
/* 80307418 00303078  7F 83 E3 78 */	mr r3, r28
/* 8030741C 0030307C  7F A4 EB 78 */	mr r4, r29
/* 80307420 00303080  7F E7 FB 78 */	mr r7, r31
/* 80307424 00303084  81 85 00 18 */	lwz r12, 0x18(r5)
/* 80307428 00303088  80 A1 00 10 */	lwz r5, 0x10(r1)
/* 8030742C 0030308C  80 C1 00 0C */	lwz r6, 0xc(r1)
/* 80307430 00303090  7D 89 03 A6 */	mtctr r12
/* 80307434 00303094  4E 80 04 21 */	bctrl
/* 80307438 00303098  80 81 00 10 */	lwz r4, 0x10(r1)
/* 8030743C 0030309C  7C 7C 1B 78 */	mr r28, r3
/* 80307440 003030A0  80 BF 00 00 */	lwz r5, 0(r31)
/* 80307444 003030A4  7F 63 DB 78 */	mr r3, r27
/* 80307448 003030A8  7F C6 F3 78 */	mr r6, r30
/* 8030744C 003030AC  7F E8 FB 78 */	mr r8, r31
/* 80307450 003030B0  38 E1 00 08 */	addi r7, r1, 8
/* 80307454 003030B4  4B FF F7 7D */	bl VFipdm_disk_convert_block_into_sector
/* 80307458 003030B8  2C 1C 00 00 */	cmpwi r28, 0
/* 8030745C 003030BC  41 82 00 20 */	beq lbl_8030747C
/* 80307460 003030C0  80 7B 00 30 */	lwz r3, 0x30(r27)
/* 80307464 003030C4  2C 03 00 00 */	cmpwi r3, 0
/* 80307468 003030C8  41 82 00 0C */	beq lbl_80307474
/* 8030746C 003030CC  7F 84 E3 78 */	mr r4, r28
/* 80307470 003030D0  48 00 13 49 */	bl VFipdm_part_set_driver_error_code
lbl_80307474:
/* 80307474 003030D4  38 60 00 15 */	li r3, 0x15
/* 80307478 003030D8  48 00 00 08 */	b lbl_80307480
lbl_8030747C:
/* 8030747C 003030DC  38 60 00 00 */	li r3, 0
lbl_80307480:
/* 80307480 003030E0  39 61 00 30 */	addi r11, r1, 0x30
/* 80307484 003030E4  4B EB FC F1 */	bl _restgpr_27
/* 80307488 003030E8  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8030748C 003030EC  7C 08 03 A6 */	mtlr r0
/* 80307490 003030F0  38 21 00 30 */	addi r1, r1, 0x30
/* 80307494 003030F4  4E 80 00 20 */	blr

.global VFipdm_disk_format
VFipdm_disk_format:
/* 80307498 003030F8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8030749C 003030FC  7C 08 02 A6 */	mflr r0
/* 803074A0 00303100  2C 03 00 00 */	cmpwi r3, 0
/* 803074A4 00303104  90 01 00 14 */	stw r0, 0x14(r1)
/* 803074A8 00303108  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803074AC 0030310C  40 82 00 0C */	bne lbl_803074B8
/* 803074B0 00303110  38 60 00 01 */	li r3, 1
/* 803074B4 00303114  48 00 01 14 */	b lbl_803075C8
lbl_803074B8:
/* 803074B8 00303118  54 68 06 3E */	clrlwi r8, r3, 0x18
/* 803074BC 0030311C  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 803074C0 00303120  28 08 00 1A */	cmplwi r8, 0x1a
/* 803074C4 00303124  54 69 84 3E */	srwi r9, r3, 0x10
/* 803074C8 00303128  40 80 00 28 */	bge lbl_803074F0
/* 803074CC 0030312C  28 00 03 00 */	cmplwi r0, 0x300
/* 803074D0 00303130  40 82 00 20 */	bne lbl_803074F0
/* 803074D4 00303134  1C 08 00 34 */	mulli r0, r8, 0x34
/* 803074D8 00303138  3C A0 80 58 */	lis r5, lbl_8057EA60@ha
/* 803074DC 0030313C  38 C5 EA 60 */	addi r6, r5, lbl_8057EA60@l
/* 803074E0 00303140  7C A6 02 14 */	add r5, r6, r0
/* 803074E4 00303144  80 05 01 B0 */	lwz r0, 0x1b0(r5)
/* 803074E8 00303148  7C 09 00 40 */	cmplw r9, r0
/* 803074EC 0030314C  40 81 00 0C */	ble lbl_803074F8
lbl_803074F0:
/* 803074F0 00303150  38 00 00 01 */	li r0, 1
/* 803074F4 00303154  48 00 00 7C */	b lbl_80307570
lbl_803074F8:
/* 803074F8 00303158  38 00 00 0D */	li r0, 0xd
/* 803074FC 0030315C  38 E5 01 A4 */	addi r7, r5, 0x1a4
/* 80307500 00303160  38 A0 00 00 */	li r5, 0
/* 80307504 00303164  7C 09 03 A6 */	mtctr r0
lbl_80307508:
/* 80307508 00303168  54 A0 1B 78 */	rlwinm r0, r5, 3, 0xd, 0x1c
/* 8030750C 0030316C  7D 46 02 14 */	add r10, r6, r0
/* 80307510 00303170  80 0A 00 08 */	lwz r0, 8(r10)
/* 80307514 00303174  7C 00 38 40 */	cmplw r0, r7
/* 80307518 00303178  40 82 00 10 */	bne lbl_80307528
/* 8030751C 0030317C  80 0A 00 04 */	lwz r0, 4(r10)
/* 80307520 00303180  7C 09 00 40 */	cmplw r9, r0
/* 80307524 00303184  41 82 00 30 */	beq lbl_80307554
lbl_80307528:
/* 80307528 00303188  38 A5 00 01 */	addi r5, r5, 1
/* 8030752C 0030318C  54 A0 1B 78 */	rlwinm r0, r5, 3, 0xd, 0x1c
/* 80307530 00303190  7D 46 02 14 */	add r10, r6, r0
/* 80307534 00303194  80 0A 00 08 */	lwz r0, 8(r10)
/* 80307538 00303198  7C 00 38 40 */	cmplw r0, r7
/* 8030753C 0030319C  40 82 00 10 */	bne lbl_8030754C
/* 80307540 003031A0  80 0A 00 04 */	lwz r0, 4(r10)
/* 80307544 003031A4  7C 09 00 40 */	cmplw r9, r0
/* 80307548 003031A8  41 82 00 0C */	beq lbl_80307554
lbl_8030754C:
/* 8030754C 003031AC  38 A5 00 01 */	addi r5, r5, 1
/* 80307550 003031B0  42 00 FF B8 */	bdnz lbl_80307508
lbl_80307554:
/* 80307554 003031B4  54 A6 04 3E */	clrlwi r6, r5, 0x10
/* 80307558 003031B8  38 A0 00 1A */	li r5, 0x1a
/* 8030755C 003031BC  38 06 FF E6 */	addi r0, r6, -26
/* 80307560 003031C0  7C C5 2B 38 */	orc r5, r6, r5
/* 80307564 003031C4  54 00 F8 7E */	srwi r0, r0, 1
/* 80307568 003031C8  7C 00 28 50 */	subf r0, r0, r5
/* 8030756C 003031CC  54 00 0F FE */	srwi r0, r0, 0x1f
lbl_80307570:
/* 80307570 003031D0  2C 00 00 00 */	cmpwi r0, 0
/* 80307574 003031D4  41 82 00 0C */	beq lbl_80307580
/* 80307578 003031D8  7C 03 03 78 */	mr r3, r0
/* 8030757C 003031DC  48 00 00 4C */	b lbl_803075C8
lbl_80307580:
/* 80307580 003031E0  1C 08 00 34 */	mulli r0, r8, 0x34
/* 80307584 003031E4  3C A0 80 58 */	lis r5, lbl_8057EA60@ha
/* 80307588 003031E8  38 A5 EA 60 */	addi r5, r5, lbl_8057EA60@l
/* 8030758C 003031EC  7F E5 02 14 */	add r31, r5, r0
/* 80307590 003031F0  80 BF 01 A8 */	lwz r5, 0x1a8(r31)
/* 80307594 003031F4  81 85 00 10 */	lwz r12, 0x10(r5)
/* 80307598 003031F8  7D 89 03 A6 */	mtctr r12
/* 8030759C 003031FC  4E 80 04 21 */	bctrl
/* 803075A0 00303200  2C 03 00 00 */	cmpwi r3, 0
/* 803075A4 00303204  7C 64 1B 78 */	mr r4, r3
/* 803075A8 00303208  41 82 00 1C */	beq lbl_803075C4
/* 803075AC 0030320C  80 7F 01 D4 */	lwz r3, 0x1d4(r31)
/* 803075B0 00303210  2C 03 00 00 */	cmpwi r3, 0
/* 803075B4 00303214  41 82 00 08 */	beq lbl_803075BC
/* 803075B8 00303218  48 00 12 01 */	bl VFipdm_part_set_driver_error_code
lbl_803075BC:
/* 803075BC 0030321C  38 60 00 15 */	li r3, 0x15
/* 803075C0 00303220  48 00 00 08 */	b lbl_803075C8
lbl_803075C4:
/* 803075C4 00303224  38 60 00 00 */	li r3, 0
lbl_803075C8:
/* 803075C8 00303228  80 01 00 14 */	lwz r0, 0x14(r1)
/* 803075CC 0030322C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 803075D0 00303230  7C 08 03 A6 */	mtlr r0
/* 803075D4 00303234  38 21 00 10 */	addi r1, r1, 0x10
/* 803075D8 00303238  4E 80 00 20 */	blr

.global VFipdm_disk_get_lba_size
VFipdm_disk_get_lba_size:
/* 803075DC 0030323C  2C 03 00 00 */	cmpwi r3, 0
/* 803075E0 00303240  41 82 00 0C */	beq lbl_803075EC
/* 803075E4 00303244  2C 04 00 00 */	cmpwi r4, 0
/* 803075E8 00303248  40 82 00 0C */	bne lbl_803075F4
lbl_803075EC:
/* 803075EC 0030324C  38 60 00 01 */	li r3, 1
/* 803075F0 00303250  4E 80 00 20 */	blr
lbl_803075F4:
/* 803075F4 00303254  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 803075F8 00303258  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 803075FC 0030325C  28 07 00 1A */	cmplwi r7, 0x1a
/* 80307600 00303260  54 68 84 3E */	srwi r8, r3, 0x10
/* 80307604 00303264  40 80 00 28 */	bge lbl_8030762C
/* 80307608 00303268  28 00 03 00 */	cmplwi r0, 0x300
/* 8030760C 0030326C  40 82 00 20 */	bne lbl_8030762C
/* 80307610 00303270  1C 07 00 34 */	mulli r0, r7, 0x34
/* 80307614 00303274  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307618 00303278  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 8030761C 0030327C  7C 65 02 14 */	add r3, r5, r0
/* 80307620 00303280  80 03 01 B0 */	lwz r0, 0x1b0(r3)
/* 80307624 00303284  7C 08 00 40 */	cmplw r8, r0
/* 80307628 00303288  40 81 00 0C */	ble lbl_80307634
lbl_8030762C:
/* 8030762C 0030328C  38 60 00 01 */	li r3, 1
/* 80307630 00303290  48 00 00 7C */	b lbl_803076AC
lbl_80307634:
/* 80307634 00303294  38 00 00 0D */	li r0, 0xd
/* 80307638 00303298  38 C3 01 A4 */	addi r6, r3, 0x1a4
/* 8030763C 0030329C  38 60 00 00 */	li r3, 0
/* 80307640 003032A0  7C 09 03 A6 */	mtctr r0
lbl_80307644:
/* 80307644 003032A4  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80307648 003032A8  7D 25 02 14 */	add r9, r5, r0
/* 8030764C 003032AC  80 09 00 08 */	lwz r0, 8(r9)
/* 80307650 003032B0  7C 00 30 40 */	cmplw r0, r6
/* 80307654 003032B4  40 82 00 10 */	bne lbl_80307664
/* 80307658 003032B8  80 09 00 04 */	lwz r0, 4(r9)
/* 8030765C 003032BC  7C 08 00 40 */	cmplw r8, r0
/* 80307660 003032C0  41 82 00 30 */	beq lbl_80307690
lbl_80307664:
/* 80307664 003032C4  38 63 00 01 */	addi r3, r3, 1
/* 80307668 003032C8  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 8030766C 003032CC  7D 25 02 14 */	add r9, r5, r0
/* 80307670 003032D0  80 09 00 08 */	lwz r0, 8(r9)
/* 80307674 003032D4  7C 00 30 40 */	cmplw r0, r6
/* 80307678 003032D8  40 82 00 10 */	bne lbl_80307688
/* 8030767C 003032DC  80 09 00 04 */	lwz r0, 4(r9)
/* 80307680 003032E0  7C 08 00 40 */	cmplw r8, r0
/* 80307684 003032E4  41 82 00 0C */	beq lbl_80307690
lbl_80307688:
/* 80307688 003032E8  38 63 00 01 */	addi r3, r3, 1
/* 8030768C 003032EC  42 00 FF B8 */	bdnz lbl_80307644
lbl_80307690:
/* 80307690 003032F0  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 80307694 003032F4  38 60 00 1A */	li r3, 0x1a
/* 80307698 003032F8  38 05 FF E6 */	addi r0, r5, -26
/* 8030769C 003032FC  7C A3 1B 38 */	orc r3, r5, r3
/* 803076A0 00303300  54 00 F8 7E */	srwi r0, r0, 1
/* 803076A4 00303304  7C 00 18 50 */	subf r0, r0, r3
/* 803076A8 00303308  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_803076AC:
/* 803076AC 0030330C  2C 03 00 00 */	cmpwi r3, 0
/* 803076B0 00303310  4C 82 00 20 */	bnelr
/* 803076B4 00303314  1C 07 00 34 */	mulli r0, r7, 0x34
/* 803076B8 00303318  3C A0 80 58 */	lis r5, lbl_8057EA60@ha
/* 803076BC 0030331C  38 60 00 00 */	li r3, 0
/* 803076C0 00303320  38 A5 EA 60 */	addi r5, r5, lbl_8057EA60@l
/* 803076C4 00303324  7C A5 02 14 */	add r5, r5, r0
/* 803076C8 00303328  A0 05 01 C4 */	lhz r0, 0x1c4(r5)
/* 803076CC 0030332C  B0 04 00 00 */	sth r0, 0(r4)
/* 803076D0 00303330  4E 80 00 20 */	blr

.global VFipdm_disk_get_media_information
VFipdm_disk_get_media_information:
/* 803076D4 00303334  2C 03 00 00 */	cmpwi r3, 0
/* 803076D8 00303338  41 82 00 0C */	beq lbl_803076E4
/* 803076DC 0030333C  2C 04 00 00 */	cmpwi r4, 0
/* 803076E0 00303340  40 82 00 0C */	bne lbl_803076EC
lbl_803076E4:
/* 803076E4 00303344  38 60 00 01 */	li r3, 1
/* 803076E8 00303348  4E 80 00 20 */	blr
lbl_803076EC:
/* 803076EC 0030334C  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 803076F0 00303350  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 803076F4 00303354  28 07 00 1A */	cmplwi r7, 0x1a
/* 803076F8 00303358  54 68 84 3E */	srwi r8, r3, 0x10
/* 803076FC 0030335C  40 80 00 28 */	bge lbl_80307724
/* 80307700 00303360  28 00 03 00 */	cmplwi r0, 0x300
/* 80307704 00303364  40 82 00 20 */	bne lbl_80307724
/* 80307708 00303368  1C 07 00 34 */	mulli r0, r7, 0x34
/* 8030770C 0030336C  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307710 00303370  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 80307714 00303374  7C 65 02 14 */	add r3, r5, r0
/* 80307718 00303378  80 03 01 B0 */	lwz r0, 0x1b0(r3)
/* 8030771C 0030337C  7C 08 00 40 */	cmplw r8, r0
/* 80307720 00303380  40 81 00 0C */	ble lbl_8030772C
lbl_80307724:
/* 80307724 00303384  38 60 00 01 */	li r3, 1
/* 80307728 00303388  48 00 00 7C */	b lbl_803077A4
lbl_8030772C:
/* 8030772C 0030338C  38 00 00 0D */	li r0, 0xd
/* 80307730 00303390  38 C3 01 A4 */	addi r6, r3, 0x1a4
/* 80307734 00303394  38 60 00 00 */	li r3, 0
/* 80307738 00303398  7C 09 03 A6 */	mtctr r0
lbl_8030773C:
/* 8030773C 0030339C  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80307740 003033A0  7D 25 02 14 */	add r9, r5, r0
/* 80307744 003033A4  80 09 00 08 */	lwz r0, 8(r9)
/* 80307748 003033A8  7C 00 30 40 */	cmplw r0, r6
/* 8030774C 003033AC  40 82 00 10 */	bne lbl_8030775C
/* 80307750 003033B0  80 09 00 04 */	lwz r0, 4(r9)
/* 80307754 003033B4  7C 08 00 40 */	cmplw r8, r0
/* 80307758 003033B8  41 82 00 30 */	beq lbl_80307788
lbl_8030775C:
/* 8030775C 003033BC  38 63 00 01 */	addi r3, r3, 1
/* 80307760 003033C0  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80307764 003033C4  7D 25 02 14 */	add r9, r5, r0
/* 80307768 003033C8  80 09 00 08 */	lwz r0, 8(r9)
/* 8030776C 003033CC  7C 00 30 40 */	cmplw r0, r6
/* 80307770 003033D0  40 82 00 10 */	bne lbl_80307780
/* 80307774 003033D4  80 09 00 04 */	lwz r0, 4(r9)
/* 80307778 003033D8  7C 08 00 40 */	cmplw r8, r0
/* 8030777C 003033DC  41 82 00 0C */	beq lbl_80307788
lbl_80307780:
/* 80307780 003033E0  38 63 00 01 */	addi r3, r3, 1
/* 80307784 003033E4  42 00 FF B8 */	bdnz lbl_8030773C
lbl_80307788:
/* 80307788 003033E8  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 8030778C 003033EC  38 60 00 1A */	li r3, 0x1a
/* 80307790 003033F0  38 05 FF E6 */	addi r0, r5, -26
/* 80307794 003033F4  7C A3 1B 38 */	orc r3, r5, r3
/* 80307798 003033F8  54 00 F8 7E */	srwi r0, r0, 1
/* 8030779C 003033FC  7C 00 18 50 */	subf r0, r0, r3
/* 803077A0 00303400  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_803077A4:
/* 803077A4 00303404  2C 03 00 00 */	cmpwi r3, 0
/* 803077A8 00303408  4C 82 00 20 */	bnelr
/* 803077AC 0030340C  1C 07 00 34 */	mulli r0, r7, 0x34
/* 803077B0 00303410  3C A0 80 58 */	lis r5, lbl_8057EA60@ha
/* 803077B4 00303414  38 60 00 00 */	li r3, 0
/* 803077B8 00303418  38 A5 EA 60 */	addi r5, r5, lbl_8057EA60@l
/* 803077BC 0030341C  7C C5 02 14 */	add r6, r5, r0
/* 803077C0 00303420  80 A6 01 BC */	lwz r5, 0x1bc(r6)
/* 803077C4 00303424  80 06 01 C0 */	lwz r0, 0x1c0(r6)
/* 803077C8 00303428  90 A4 00 00 */	stw r5, 0(r4)
/* 803077CC 0030342C  90 04 00 04 */	stw r0, 4(r4)
/* 803077D0 00303430  80 A6 01 C4 */	lwz r5, 0x1c4(r6)
/* 803077D4 00303434  80 06 01 C8 */	lwz r0, 0x1c8(r6)
/* 803077D8 00303438  90 A4 00 08 */	stw r5, 8(r4)
/* 803077DC 0030343C  90 04 00 0C */	stw r0, 0xc(r4)
/* 803077E0 00303440  80 06 01 CC */	lwz r0, 0x1cc(r6)
/* 803077E4 00303444  90 04 00 10 */	stw r0, 0x10(r4)
/* 803077E8 00303448  4E 80 00 20 */	blr

.global VFipdm_disk_set_disk
VFipdm_disk_set_disk:
/* 803077EC 0030344C  2C 03 00 00 */	cmpwi r3, 0
/* 803077F0 00303450  41 82 00 0C */	beq lbl_803077FC
/* 803077F4 00303454  2C 04 00 00 */	cmpwi r4, 0
/* 803077F8 00303458  40 82 00 0C */	bne lbl_80307804
lbl_803077FC:
/* 803077FC 0030345C  38 60 00 01 */	li r3, 1
/* 80307800 00303460  4E 80 00 20 */	blr
lbl_80307804:
/* 80307804 00303464  54 67 06 3E */	clrlwi r7, r3, 0x18
/* 80307808 00303468  54 60 04 2E */	rlwinm r0, r3, 0, 0x10, 0x17
/* 8030780C 0030346C  28 07 00 1A */	cmplwi r7, 0x1a
/* 80307810 00303470  54 68 84 3E */	srwi r8, r3, 0x10
/* 80307814 00303474  40 80 00 28 */	bge lbl_8030783C
/* 80307818 00303478  28 00 03 00 */	cmplwi r0, 0x300
/* 8030781C 0030347C  40 82 00 20 */	bne lbl_8030783C
/* 80307820 00303480  1C 07 00 34 */	mulli r0, r7, 0x34
/* 80307824 00303484  3C 60 80 58 */	lis r3, lbl_8057EA60@ha
/* 80307828 00303488  38 A3 EA 60 */	addi r5, r3, lbl_8057EA60@l
/* 8030782C 0030348C  7C 65 02 14 */	add r3, r5, r0
/* 80307830 00303490  80 03 01 B0 */	lwz r0, 0x1b0(r3)
/* 80307834 00303494  7C 08 00 40 */	cmplw r8, r0
/* 80307838 00303498  40 81 00 0C */	ble lbl_80307844
lbl_8030783C:
/* 8030783C 0030349C  38 60 00 01 */	li r3, 1
/* 80307840 003034A0  48 00 00 7C */	b lbl_803078BC
lbl_80307844:
/* 80307844 003034A4  38 00 00 0D */	li r0, 0xd
/* 80307848 003034A8  38 C3 01 A4 */	addi r6, r3, 0x1a4
/* 8030784C 003034AC  38 60 00 00 */	li r3, 0
/* 80307850 003034B0  7C 09 03 A6 */	mtctr r0
lbl_80307854:
/* 80307854 003034B4  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 80307858 003034B8  7D 25 02 14 */	add r9, r5, r0
/* 8030785C 003034BC  80 09 00 08 */	lwz r0, 8(r9)
/* 80307860 003034C0  7C 00 30 40 */	cmplw r0, r6
/* 80307864 003034C4  40 82 00 10 */	bne lbl_80307874
/* 80307868 003034C8  80 09 00 04 */	lwz r0, 4(r9)
/* 8030786C 003034CC  7C 08 00 40 */	cmplw r8, r0
/* 80307870 003034D0  41 82 00 30 */	beq lbl_803078A0
lbl_80307874:
/* 80307874 003034D4  38 63 00 01 */	addi r3, r3, 1
/* 80307878 003034D8  54 60 1B 78 */	rlwinm r0, r3, 3, 0xd, 0x1c
/* 8030787C 003034DC  7D 25 02 14 */	add r9, r5, r0
/* 80307880 003034E0  80 09 00 08 */	lwz r0, 8(r9)
/* 80307884 003034E4  7C 00 30 40 */	cmplw r0, r6
/* 80307888 003034E8  40 82 00 10 */	bne lbl_80307898
/* 8030788C 003034EC  80 09 00 04 */	lwz r0, 4(r9)
/* 80307890 003034F0  7C 08 00 40 */	cmplw r8, r0
/* 80307894 003034F4  41 82 00 0C */	beq lbl_803078A0
lbl_80307898:
/* 80307898 003034F8  38 63 00 01 */	addi r3, r3, 1
/* 8030789C 003034FC  42 00 FF B8 */	bdnz lbl_80307854
lbl_803078A0:
/* 803078A0 00303500  54 65 04 3E */	clrlwi r5, r3, 0x10
/* 803078A4 00303504  38 60 00 1A */	li r3, 0x1a
/* 803078A8 00303508  38 05 FF E6 */	addi r0, r5, -26
/* 803078AC 0030350C  7C A3 1B 38 */	orc r3, r5, r3
/* 803078B0 00303510  54 00 F8 7E */	srwi r0, r0, 1
/* 803078B4 00303514  7C 00 18 50 */	subf r0, r0, r3
/* 803078B8 00303518  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_803078BC:
/* 803078BC 0030351C  2C 03 00 00 */	cmpwi r3, 0
/* 803078C0 00303520  4C 82 00 20 */	bnelr
/* 803078C4 00303524  1C 07 00 34 */	mulli r0, r7, 0x34
/* 803078C8 00303528  3C A0 80 58 */	lis r5, lbl_8057EA60@ha
/* 803078CC 0030352C  38 60 00 00 */	li r3, 0
/* 803078D0 00303530  38 A5 EA 60 */	addi r5, r5, lbl_8057EA60@l
/* 803078D4 00303534  7C A5 02 14 */	add r5, r5, r0
/* 803078D8 00303538  90 85 01 D4 */	stw r4, 0x1d4(r5)
/* 803078DC 0030353C  4E 80 00 20 */	blr