summaryrefslogtreecommitdiff
path: root/asm/SDK/SSL/ssl_api.s
blob: 45f7d7ad7af251232bb4957825c30722f6ff5281 (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
.include "macros.inc"

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

.global SSLNew
SSLNew:
/* 802FFF1C 002FBB7C  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 802FFF20 002FBB80  7C 2C 0B 78 */	mr r12, r1
/* 802FFF24 002FBB84  21 6B FE 60 */	subfic r11, r11, -416
/* 802FFF28 002FBB88  7C 21 59 6E */	stwux r1, r1, r11
/* 802FFF2C 002FBB8C  7C 08 02 A6 */	mflr r0
/* 802FFF30 002FBB90  3C A0 80 44 */	lis r5, lbl_80446240@ha
/* 802FFF34 002FBB94  90 0C 00 04 */	stw r0, 4(r12)
/* 802FFF38 002FBB98  93 EC FF FC */	stw r31, -4(r12)
/* 802FFF3C 002FBB9C  93 CC FF F8 */	stw r30, -8(r12)
/* 802FFF40 002FBBA0  93 AC FF F4 */	stw r29, -0xc(r12)
/* 802FFF44 002FBBA4  7C 9D 23 78 */	mr r29, r4
/* 802FFF48 002FBBA8  38 80 00 00 */	li r4, 0
/* 802FFF4C 002FBBAC  93 8C FF F0 */	stw r28, -0x10(r12)
/* 802FFF50 002FBBB0  7C 7C 1B 78 */	mr r28, r3
/* 802FFF54 002FBBB4  38 65 62 40 */	addi r3, r5, lbl_80446240@l
/* 802FFF58 002FBBB8  4B FA 32 01 */	bl IOS_Open
/* 802FFF5C 002FBBBC  2C 03 00 00 */	cmpwi r3, 0
/* 802FFF60 002FBBC0  7C 7F 1B 78 */	mr r31, r3
/* 802FFF64 002FBBC4  40 80 00 0C */	bge lbl_802FFF70
/* 802FFF68 002FBBC8  38 60 FF FF */	li r3, -1
/* 802FFF6C 002FBBCC  48 00 00 C8 */	b lbl_80300034
lbl_802FFF70:
/* 802FFF70 002FBBD0  7F A3 EB 78 */	mr r3, r29
/* 802FFF74 002FBBD4  38 80 00 00 */	li r4, 0
/* 802FFF78 002FBBD8  48 00 00 0C */	b lbl_802FFF84
lbl_802FFF7C:
/* 802FFF7C 002FBBDC  38 84 00 01 */	addi r4, r4, 1
/* 802FFF80 002FBBE0  38 63 00 01 */	addi r3, r3, 1
lbl_802FFF84:
/* 802FFF84 002FBBE4  28 04 01 00 */	cmplwi r4, 0x100
/* 802FFF88 002FBBE8  40 80 00 10 */	bge lbl_802FFF98
/* 802FFF8C 002FBBEC  88 03 00 00 */	lbz r0, 0(r3)
/* 802FFF90 002FBBF0  7C 00 07 75 */	extsb. r0, r0
/* 802FFF94 002FBBF4  40 82 FF E8 */	bne lbl_802FFF7C
lbl_802FFF98:
/* 802FFF98 002FBBF8  7F DD 18 51 */	subf. r30, r29, r3
/* 802FFF9C 002FBBFC  40 82 00 0C */	bne lbl_802FFFA8
/* 802FFFA0 002FBC00  38 60 FF FF */	li r3, -1
/* 802FFFA4 002FBC04  48 00 00 90 */	b lbl_80300034
lbl_802FFFA8:
/* 802FFFA8 002FBC08  38 61 00 80 */	addi r3, r1, 0x80
/* 802FFFAC 002FBC0C  38 80 00 00 */	li r4, 0
/* 802FFFB0 002FBC10  38 A0 01 00 */	li r5, 0x100
/* 802FFFB4 002FBC14  4B D0 41 51 */	bl memset
/* 802FFFB8 002FBC18  28 1E 01 00 */	cmplwi r30, 0x100
/* 802FFFBC 002FBC1C  40 81 00 08 */	ble lbl_802FFFC4
/* 802FFFC0 002FBC20  3B C0 01 00 */	li r30, 0x100
lbl_802FFFC4:
/* 802FFFC4 002FBC24  7F A4 EB 78 */	mr r4, r29
/* 802FFFC8 002FBC28  7F C5 F3 78 */	mr r5, r30
/* 802FFFCC 002FBC2C  38 61 00 80 */	addi r3, r1, 0x80
/* 802FFFD0 002FBC30  4B D0 40 31 */	bl memcpy
/* 802FFFD4 002FBC34  39 40 00 20 */	li r10, 0x20
/* 802FFFD8 002FBC38  39 61 00 40 */	addi r11, r1, 0x40
/* 802FFFDC 002FBC3C  39 21 00 20 */	addi r9, r1, 0x20
/* 802FFFE0 002FBC40  39 01 00 80 */	addi r8, r1, 0x80
/* 802FFFE4 002FBC44  38 60 FF FF */	li r3, -1
/* 802FFFE8 002FBC48  38 00 01 00 */	li r0, 0x100
/* 802FFFEC 002FBC4C  90 61 00 40 */	stw r3, 0x40(r1)
/* 802FFFF0 002FBC50  7F E3 FB 78 */	mr r3, r31
/* 802FFFF4 002FBC54  38 E1 00 60 */	addi r7, r1, 0x60
/* 802FFFF8 002FBC58  38 80 00 01 */	li r4, 1
/* 802FFFFC 002FBC5C  93 81 00 20 */	stw r28, 0x20(r1)
/* 80300000 002FBC60  38 A0 00 01 */	li r5, 1
/* 80300004 002FBC64  38 C0 00 02 */	li r6, 2
/* 80300008 002FBC68  91 61 00 60 */	stw r11, 0x60(r1)
/* 8030000C 002FBC6C  91 41 00 64 */	stw r10, 0x64(r1)
/* 80300010 002FBC70  91 21 00 68 */	stw r9, 0x68(r1)
/* 80300014 002FBC74  91 41 00 6C */	stw r10, 0x6c(r1)
/* 80300018 002FBC78  91 01 00 70 */	stw r8, 0x70(r1)
/* 8030001C 002FBC7C  90 01 00 74 */	stw r0, 0x74(r1)
/* 80300020 002FBC80  4B FA 3E 21 */	bl IOS_Ioctlv
/* 80300024 002FBC84  7F E3 FB 78 */	mr r3, r31
/* 80300028 002FBC88  4B FA 33 11 */	bl IOS_Close
/* 8030002C 002FBC8C  80 61 00 60 */	lwz r3, 0x60(r1)
/* 80300030 002FBC90  80 63 00 00 */	lwz r3, 0(r3)
lbl_80300034:
/* 80300034 002FBC94  81 41 00 00 */	lwz r10, 0(r1)
/* 80300038 002FBC98  80 0A 00 04 */	lwz r0, 4(r10)
/* 8030003C 002FBC9C  83 EA FF FC */	lwz r31, -4(r10)
/* 80300040 002FBCA0  83 CA FF F8 */	lwz r30, -8(r10)
/* 80300044 002FBCA4  83 AA FF F4 */	lwz r29, -0xc(r10)
/* 80300048 002FBCA8  83 8A FF F0 */	lwz r28, -0x10(r10)
/* 8030004C 002FBCAC  7C 08 03 A6 */	mtlr r0
/* 80300050 002FBCB0  7D 41 53 78 */	mr r1, r10
/* 80300054 002FBCB4  4E 80 00 20 */	blr

.global SSLConnect
SSLConnect:
/* 80300058 002FBCB8  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 8030005C 002FBCBC  7C 2C 0B 78 */	mr r12, r1
/* 80300060 002FBCC0  21 6B FF 40 */	subfic r11, r11, -192
/* 80300064 002FBCC4  7C 21 59 6E */	stwux r1, r1, r11
/* 80300068 002FBCC8  7C 08 02 A6 */	mflr r0
/* 8030006C 002FBCCC  3C A0 80 44 */	lis r5, lbl_80446240@ha
/* 80300070 002FBCD0  90 0C 00 04 */	stw r0, 4(r12)
/* 80300074 002FBCD4  93 EC FF FC */	stw r31, -4(r12)
/* 80300078 002FBCD8  93 CC FF F8 */	stw r30, -8(r12)
/* 8030007C 002FBCDC  7C 9E 23 78 */	mr r30, r4
/* 80300080 002FBCE0  38 80 00 00 */	li r4, 0
/* 80300084 002FBCE4  93 AC FF F4 */	stw r29, -0xc(r12)
/* 80300088 002FBCE8  7C 7D 1B 78 */	mr r29, r3
/* 8030008C 002FBCEC  38 65 62 40 */	addi r3, r5, lbl_80446240@l
/* 80300090 002FBCF0  4B FA 30 C9 */	bl IOS_Open
/* 80300094 002FBCF4  2C 03 00 00 */	cmpwi r3, 0
/* 80300098 002FBCF8  7C 7F 1B 78 */	mr r31, r3
/* 8030009C 002FBCFC  40 80 00 0C */	bge lbl_803000A8
/* 803000A0 002FBD00  38 60 FF FF */	li r3, -1
/* 803000A4 002FBD04  48 00 00 5C */	b lbl_80300100
lbl_803000A8:
/* 803000A8 002FBD08  39 20 00 20 */	li r9, 0x20
/* 803000AC 002FBD0C  39 41 00 20 */	addi r10, r1, 0x20
/* 803000B0 002FBD10  39 01 00 60 */	addi r8, r1, 0x60
/* 803000B4 002FBD14  38 01 00 40 */	addi r0, r1, 0x40
/* 803000B8 002FBD18  39 60 FF FF */	li r11, -1
/* 803000BC 002FBD1C  93 A1 00 60 */	stw r29, 0x60(r1)
/* 803000C0 002FBD20  38 E1 00 80 */	addi r7, r1, 0x80
/* 803000C4 002FBD24  38 80 00 02 */	li r4, 2
/* 803000C8 002FBD28  93 C1 00 40 */	stw r30, 0x40(r1)
/* 803000CC 002FBD2C  38 A0 00 01 */	li r5, 1
/* 803000D0 002FBD30  38 C0 00 02 */	li r6, 2
/* 803000D4 002FBD34  91 61 00 20 */	stw r11, 0x20(r1)
/* 803000D8 002FBD38  91 41 00 80 */	stw r10, 0x80(r1)
/* 803000DC 002FBD3C  91 21 00 84 */	stw r9, 0x84(r1)
/* 803000E0 002FBD40  91 01 00 88 */	stw r8, 0x88(r1)
/* 803000E4 002FBD44  91 21 00 8C */	stw r9, 0x8c(r1)
/* 803000E8 002FBD48  90 01 00 90 */	stw r0, 0x90(r1)
/* 803000EC 002FBD4C  91 21 00 94 */	stw r9, 0x94(r1)
/* 803000F0 002FBD50  4B FA 3D 51 */	bl IOS_Ioctlv
/* 803000F4 002FBD54  7F E3 FB 78 */	mr r3, r31
/* 803000F8 002FBD58  4B FA 32 41 */	bl IOS_Close
/* 803000FC 002FBD5C  80 61 00 20 */	lwz r3, 0x20(r1)
lbl_80300100:
/* 80300100 002FBD60  81 41 00 00 */	lwz r10, 0(r1)
/* 80300104 002FBD64  80 0A 00 04 */	lwz r0, 4(r10)
/* 80300108 002FBD68  83 EA FF FC */	lwz r31, -4(r10)
/* 8030010C 002FBD6C  83 CA FF F8 */	lwz r30, -8(r10)
/* 80300110 002FBD70  83 AA FF F4 */	lwz r29, -0xc(r10)
/* 80300114 002FBD74  7C 08 03 A6 */	mtlr r0
/* 80300118 002FBD78  7D 41 53 78 */	mr r1, r10
/* 8030011C 002FBD7C  4E 80 00 20 */	blr

.global SSLDoHandshake
SSLDoHandshake:
/* 80300120 002FBD80  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 80300124 002FBD84  7C 2C 0B 78 */	mr r12, r1
/* 80300128 002FBD88  21 6B FF 60 */	subfic r11, r11, -160
/* 8030012C 002FBD8C  7C 21 59 6E */	stwux r1, r1, r11
/* 80300130 002FBD90  7C 08 02 A6 */	mflr r0
/* 80300134 002FBD94  3C 80 80 44 */	lis r4, lbl_80446240@ha
/* 80300138 002FBD98  90 0C 00 04 */	stw r0, 4(r12)
/* 8030013C 002FBD9C  93 EC FF FC */	stw r31, -4(r12)
/* 80300140 002FBDA0  93 CC FF F8 */	stw r30, -8(r12)
/* 80300144 002FBDA4  7C 7E 1B 78 */	mr r30, r3
/* 80300148 002FBDA8  38 64 62 40 */	addi r3, r4, lbl_80446240@l
/* 8030014C 002FBDAC  38 80 00 00 */	li r4, 0
/* 80300150 002FBDB0  4B FA 30 09 */	bl IOS_Open
/* 80300154 002FBDB4  2C 03 00 00 */	cmpwi r3, 0
/* 80300158 002FBDB8  7C 7F 1B 78 */	mr r31, r3
/* 8030015C 002FBDBC  40 80 00 0C */	bge lbl_80300168
/* 80300160 002FBDC0  38 60 FF FF */	li r3, -1
/* 80300164 002FBDC4  48 00 00 4C */	b lbl_803001B0
lbl_80300168:
/* 80300168 002FBDC8  39 00 00 20 */	li r8, 0x20
/* 8030016C 002FBDCC  39 21 00 20 */	addi r9, r1, 0x20
/* 80300170 002FBDD0  38 01 00 40 */	addi r0, r1, 0x40
/* 80300174 002FBDD4  38 C0 FF FF */	li r6, -1
/* 80300178 002FBDD8  90 C1 00 20 */	stw r6, 0x20(r1)
/* 8030017C 002FBDDC  38 E1 00 60 */	addi r7, r1, 0x60
/* 80300180 002FBDE0  38 80 00 03 */	li r4, 3
/* 80300184 002FBDE4  38 A0 00 01 */	li r5, 1
/* 80300188 002FBDE8  93 C1 00 40 */	stw r30, 0x40(r1)
/* 8030018C 002FBDEC  38 C0 00 01 */	li r6, 1
/* 80300190 002FBDF0  91 21 00 60 */	stw r9, 0x60(r1)
/* 80300194 002FBDF4  91 01 00 64 */	stw r8, 0x64(r1)
/* 80300198 002FBDF8  90 01 00 68 */	stw r0, 0x68(r1)
/* 8030019C 002FBDFC  91 01 00 6C */	stw r8, 0x6c(r1)
/* 803001A0 002FBE00  4B FA 3C A1 */	bl IOS_Ioctlv
/* 803001A4 002FBE04  7F E3 FB 78 */	mr r3, r31
/* 803001A8 002FBE08  4B FA 31 91 */	bl IOS_Close
/* 803001AC 002FBE0C  80 61 00 20 */	lwz r3, 0x20(r1)
lbl_803001B0:
/* 803001B0 002FBE10  81 41 00 00 */	lwz r10, 0(r1)
/* 803001B4 002FBE14  80 0A 00 04 */	lwz r0, 4(r10)
/* 803001B8 002FBE18  83 EA FF FC */	lwz r31, -4(r10)
/* 803001BC 002FBE1C  83 CA FF F8 */	lwz r30, -8(r10)
/* 803001C0 002FBE20  7C 08 03 A6 */	mtlr r0
/* 803001C4 002FBE24  7D 41 53 78 */	mr r1, r10
/* 803001C8 002FBE28  4E 80 00 20 */	blr

.global SSLRead
SSLRead:
/* 803001CC 002FBE2C  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 803001D0 002FBE30  7C 2C 0B 78 */	mr r12, r1
/* 803001D4 002FBE34  21 6B FE 80 */	subfic r11, r11, -384
/* 803001D8 002FBE38  7C 21 59 6E */	stwux r1, r1, r11
/* 803001DC 002FBE3C  7C 08 02 A6 */	mflr r0
/* 803001E0 002FBE40  7D 8B 63 78 */	mr r11, r12
/* 803001E4 002FBE44  90 0C 00 04 */	stw r0, 4(r12)
/* 803001E8 002FBE48  4B EC 6F 35 */	bl _savegpr_24
/* 803001EC 002FBE4C  3C C0 80 44 */	lis r6, lbl_80446240@ha
/* 803001F0 002FBE50  7C 7C 1B 78 */	mr r28, r3
/* 803001F4 002FBE54  7C 9D 23 78 */	mr r29, r4
/* 803001F8 002FBE58  7C BE 2B 78 */	mr r30, r5
/* 803001FC 002FBE5C  38 66 62 40 */	addi r3, r6, lbl_80446240@l
/* 80300200 002FBE60  38 80 00 00 */	li r4, 0
/* 80300204 002FBE64  4B FA 2F 55 */	bl IOS_Open
/* 80300208 002FBE68  2C 03 00 00 */	cmpwi r3, 0
/* 8030020C 002FBE6C  7C 7F 1B 78 */	mr r31, r3
/* 80300210 002FBE70  3B 40 FF FF */	li r26, -1
/* 80300214 002FBE74  40 80 00 0C */	bge lbl_80300220
/* 80300218 002FBE78  38 60 FF FF */	li r3, -1
/* 8030021C 002FBE7C  48 00 02 54 */	b lbl_80300470
lbl_80300220:
/* 80300220 002FBE80  57 A0 06 FF */	clrlwi. r0, r29, 0x1b
/* 80300224 002FBE84  41 82 00 0C */	beq lbl_80300230
/* 80300228 002FBE88  23 20 00 20 */	subfic r25, r0, 0x20
/* 8030022C 002FBE8C  48 00 00 08 */	b lbl_80300234
lbl_80300230:
/* 80300230 002FBE90  3B 20 00 00 */	li r25, 0
lbl_80300234:
/* 80300234 002FBE94  38 61 01 40 */	addi r3, r1, 0x140
/* 80300238 002FBE98  3B 00 00 00 */	li r24, 0
/* 8030023C 002FBE9C  38 80 00 00 */	li r4, 0
/* 80300240 002FBEA0  38 A0 00 20 */	li r5, 0x20
/* 80300244 002FBEA4  4B D0 3E C1 */	bl memset
/* 80300248 002FBEA8  2C 19 00 00 */	cmpwi r25, 0
/* 8030024C 002FBEAC  41 82 00 B0 */	beq lbl_803002FC
/* 80300250 002FBEB0  7C 19 F0 40 */	cmplw r25, r30
/* 80300254 002FBEB4  40 81 00 08 */	ble lbl_8030025C
/* 80300258 002FBEB8  7F D9 F3 78 */	mr r25, r30
lbl_8030025C:
/* 8030025C 002FBEBC  39 00 00 20 */	li r8, 0x20
/* 80300260 002FBEC0  39 21 01 20 */	addi r9, r1, 0x120
/* 80300264 002FBEC4  3B 61 01 40 */	addi r27, r1, 0x140
/* 80300268 002FBEC8  38 01 01 00 */	addi r0, r1, 0x100
/* 8030026C 002FBECC  38 80 FF FF */	li r4, -1
/* 80300270 002FBED0  93 81 01 00 */	stw r28, 0x100(r1)
/* 80300274 002FBED4  7F E3 FB 78 */	mr r3, r31
/* 80300278 002FBED8  38 E1 00 E0 */	addi r7, r1, 0xe0
/* 8030027C 002FBEDC  90 81 01 20 */	stw r4, 0x120(r1)
/* 80300280 002FBEE0  38 80 00 04 */	li r4, 4
/* 80300284 002FBEE4  38 A0 00 02 */	li r5, 2
/* 80300288 002FBEE8  38 C0 00 01 */	li r6, 1
/* 8030028C 002FBEEC  91 21 00 E0 */	stw r9, 0xe0(r1)
/* 80300290 002FBEF0  91 01 00 E4 */	stw r8, 0xe4(r1)
/* 80300294 002FBEF4  93 61 00 E8 */	stw r27, 0xe8(r1)
/* 80300298 002FBEF8  93 21 00 EC */	stw r25, 0xec(r1)
/* 8030029C 002FBEFC  90 01 00 F0 */	stw r0, 0xf0(r1)
/* 803002A0 002FBF00  91 01 00 F4 */	stw r8, 0xf4(r1)
/* 803002A4 002FBF04  4B FA 3B 9D */	bl IOS_Ioctlv
/* 803002A8 002FBF08  83 41 01 20 */	lwz r26, 0x120(r1)
/* 803002AC 002FBF0C  2C 1A 00 00 */	cmpwi r26, 0
/* 803002B0 002FBF10  40 81 00 3C */	ble lbl_803002EC
/* 803002B4 002FBF14  7F 58 D3 78 */	mr r24, r26
/* 803002B8 002FBF18  7F A3 EB 78 */	mr r3, r29
/* 803002BC 002FBF1C  7F 64 DB 78 */	mr r4, r27
/* 803002C0 002FBF20  7F 45 D3 78 */	mr r5, r26
/* 803002C4 002FBF24  4B D0 3D 3D */	bl memcpy
/* 803002C8 002FBF28  7C 1A C8 40 */	cmplw r26, r25
/* 803002CC 002FBF2C  40 80 00 14 */	bge lbl_803002E0
/* 803002D0 002FBF30  7F E3 FB 78 */	mr r3, r31
/* 803002D4 002FBF34  4B FA 30 65 */	bl IOS_Close
/* 803002D8 002FBF38  7F 03 C3 78 */	mr r3, r24
/* 803002DC 002FBF3C  48 00 01 94 */	b lbl_80300470
lbl_803002E0:
/* 803002E0 002FBF40  7F BD D2 14 */	add r29, r29, r26
/* 803002E4 002FBF44  7F DA F0 50 */	subf r30, r26, r30
/* 803002E8 002FBF48  48 00 00 14 */	b lbl_803002FC
lbl_803002EC:
/* 803002EC 002FBF4C  7F E3 FB 78 */	mr r3, r31
/* 803002F0 002FBF50  4B FA 30 49 */	bl IOS_Close
/* 803002F4 002FBF54  7F 43 D3 78 */	mr r3, r26
/* 803002F8 002FBF58  48 00 01 78 */	b lbl_80300470
lbl_803002FC:
/* 803002FC 002FBF5C  2C 1E 00 00 */	cmpwi r30, 0
/* 80300300 002FBF60  41 82 00 A8 */	beq lbl_803003A8
/* 80300304 002FBF64  57 D9 00 35 */	rlwinm. r25, r30, 0, 0, 0x1a
/* 80300308 002FBF68  41 82 00 A0 */	beq lbl_803003A8
/* 8030030C 002FBF6C  39 00 00 20 */	li r8, 0x20
/* 80300310 002FBF70  39 21 00 C0 */	addi r9, r1, 0xc0
/* 80300314 002FBF74  38 01 00 A0 */	addi r0, r1, 0xa0
/* 80300318 002FBF78  38 A0 FF FF */	li r5, -1
/* 8030031C 002FBF7C  90 A1 00 C0 */	stw r5, 0xc0(r1)
/* 80300320 002FBF80  7F E3 FB 78 */	mr r3, r31
/* 80300324 002FBF84  38 E1 00 80 */	addi r7, r1, 0x80
/* 80300328 002FBF88  38 80 00 04 */	li r4, 4
/* 8030032C 002FBF8C  93 81 00 A0 */	stw r28, 0xa0(r1)
/* 80300330 002FBF90  38 A0 00 02 */	li r5, 2
/* 80300334 002FBF94  38 C0 00 01 */	li r6, 1
/* 80300338 002FBF98  91 21 00 80 */	stw r9, 0x80(r1)
/* 8030033C 002FBF9C  91 01 00 84 */	stw r8, 0x84(r1)
/* 80300340 002FBFA0  93 A1 00 88 */	stw r29, 0x88(r1)
/* 80300344 002FBFA4  93 21 00 8C */	stw r25, 0x8c(r1)
/* 80300348 002FBFA8  90 01 00 90 */	stw r0, 0x90(r1)
/* 8030034C 002FBFAC  91 01 00 94 */	stw r8, 0x94(r1)
/* 80300350 002FBFB0  4B FA 3A F1 */	bl IOS_Ioctlv
/* 80300354 002FBFB4  83 41 00 C0 */	lwz r26, 0xc0(r1)
/* 80300358 002FBFB8  2C 1A 00 00 */	cmpwi r26, 0
/* 8030035C 002FBFBC  40 81 00 2C */	ble lbl_80300388
/* 80300360 002FBFC0  7C 1A C8 40 */	cmplw r26, r25
/* 80300364 002FBFC4  7F 18 D2 14 */	add r24, r24, r26
/* 80300368 002FBFC8  40 80 00 14 */	bge lbl_8030037C
/* 8030036C 002FBFCC  7F E3 FB 78 */	mr r3, r31
/* 80300370 002FBFD0  4B FA 2F C9 */	bl IOS_Close
/* 80300374 002FBFD4  7F 03 C3 78 */	mr r3, r24
/* 80300378 002FBFD8  48 00 00 F8 */	b lbl_80300470
lbl_8030037C:
/* 8030037C 002FBFDC  7F BD D2 14 */	add r29, r29, r26
/* 80300380 002FBFE0  7F DA F0 50 */	subf r30, r26, r30
/* 80300384 002FBFE4  48 00 00 24 */	b lbl_803003A8
lbl_80300388:
/* 80300388 002FBFE8  7F E3 FB 78 */	mr r3, r31
/* 8030038C 002FBFEC  4B FA 2F AD */	bl IOS_Close
/* 80300390 002FBFF0  2C 18 00 00 */	cmpwi r24, 0
/* 80300394 002FBFF4  40 81 00 0C */	ble lbl_803003A0
/* 80300398 002FBFF8  7F 03 C3 78 */	mr r3, r24
/* 8030039C 002FBFFC  48 00 00 D4 */	b lbl_80300470
lbl_803003A0:
/* 803003A0 002FC000  7F 43 D3 78 */	mr r3, r26
/* 803003A4 002FC004  48 00 00 CC */	b lbl_80300470
lbl_803003A8:
/* 803003A8 002FC008  2C 1E 00 00 */	cmpwi r30, 0
/* 803003AC 002FC00C  41 82 00 AC */	beq lbl_80300458
/* 803003B0 002FC010  57 D9 06 FF */	clrlwi. r25, r30, 0x1b
/* 803003B4 002FC014  41 82 00 A4 */	beq lbl_80300458
/* 803003B8 002FC018  38 61 01 40 */	addi r3, r1, 0x140
/* 803003BC 002FC01C  38 80 00 00 */	li r4, 0
/* 803003C0 002FC020  38 A0 00 20 */	li r5, 0x20
/* 803003C4 002FC024  4B D0 3D 41 */	bl memset
/* 803003C8 002FC028  39 00 00 20 */	li r8, 0x20
/* 803003CC 002FC02C  39 21 00 60 */	addi r9, r1, 0x60
/* 803003D0 002FC030  3B C1 01 40 */	addi r30, r1, 0x140
/* 803003D4 002FC034  38 01 00 40 */	addi r0, r1, 0x40
/* 803003D8 002FC038  38 80 FF FF */	li r4, -1
/* 803003DC 002FC03C  93 81 00 40 */	stw r28, 0x40(r1)
/* 803003E0 002FC040  7F E3 FB 78 */	mr r3, r31
/* 803003E4 002FC044  38 E1 00 20 */	addi r7, r1, 0x20
/* 803003E8 002FC048  90 81 00 60 */	stw r4, 0x60(r1)
/* 803003EC 002FC04C  38 80 00 04 */	li r4, 4
/* 803003F0 002FC050  38 A0 00 02 */	li r5, 2
/* 803003F4 002FC054  38 C0 00 01 */	li r6, 1
/* 803003F8 002FC058  91 21 00 20 */	stw r9, 0x20(r1)
/* 803003FC 002FC05C  91 01 00 24 */	stw r8, 0x24(r1)
/* 80300400 002FC060  93 C1 00 28 */	stw r30, 0x28(r1)
/* 80300404 002FC064  93 21 00 2C */	stw r25, 0x2c(r1)
/* 80300408 002FC068  90 01 00 30 */	stw r0, 0x30(r1)
/* 8030040C 002FC06C  91 01 00 34 */	stw r8, 0x34(r1)
/* 80300410 002FC070  4B FA 3A 31 */	bl IOS_Ioctlv
/* 80300414 002FC074  83 41 00 60 */	lwz r26, 0x60(r1)
/* 80300418 002FC078  2C 1A 00 00 */	cmpwi r26, 0
/* 8030041C 002FC07C  40 81 00 1C */	ble lbl_80300438
/* 80300420 002FC080  7F A3 EB 78 */	mr r3, r29
/* 80300424 002FC084  7F C4 F3 78 */	mr r4, r30
/* 80300428 002FC088  7F 45 D3 78 */	mr r5, r26
/* 8030042C 002FC08C  7F 18 D2 14 */	add r24, r24, r26
/* 80300430 002FC090  4B D0 3B D1 */	bl memcpy
/* 80300434 002FC094  48 00 00 24 */	b lbl_80300458
lbl_80300438:
/* 80300438 002FC098  7F E3 FB 78 */	mr r3, r31
/* 8030043C 002FC09C  4B FA 2E FD */	bl IOS_Close
/* 80300440 002FC0A0  2C 18 00 00 */	cmpwi r24, 0
/* 80300444 002FC0A4  40 81 00 0C */	ble lbl_80300450
/* 80300448 002FC0A8  7F 03 C3 78 */	mr r3, r24
/* 8030044C 002FC0AC  48 00 00 24 */	b lbl_80300470
lbl_80300450:
/* 80300450 002FC0B0  7F 43 D3 78 */	mr r3, r26
/* 80300454 002FC0B4  48 00 00 1C */	b lbl_80300470
lbl_80300458:
/* 80300458 002FC0B8  2C 18 00 00 */	cmpwi r24, 0
/* 8030045C 002FC0BC  40 81 00 08 */	ble lbl_80300464
/* 80300460 002FC0C0  7F 1A C3 78 */	mr r26, r24
lbl_80300464:
/* 80300464 002FC0C4  7F E3 FB 78 */	mr r3, r31
/* 80300468 002FC0C8  4B FA 2E D1 */	bl IOS_Close
/* 8030046C 002FC0CC  7F 43 D3 78 */	mr r3, r26
lbl_80300470:
/* 80300470 002FC0D0  81 41 00 00 */	lwz r10, 0(r1)
/* 80300474 002FC0D4  7D 4B 53 78 */	mr r11, r10
/* 80300478 002FC0D8  4B EC 6C F1 */	bl _restgpr_24
/* 8030047C 002FC0DC  80 0A 00 04 */	lwz r0, 4(r10)
/* 80300480 002FC0E0  7C 08 03 A6 */	mtlr r0
/* 80300484 002FC0E4  7D 41 53 78 */	mr r1, r10
/* 80300488 002FC0E8  4E 80 00 20 */	blr

.global SSLWrite
SSLWrite:
/* 8030048C 002FC0EC  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 80300490 002FC0F0  7C 2C 0B 78 */	mr r12, r1
/* 80300494 002FC0F4  21 6B FE 80 */	subfic r11, r11, -384
/* 80300498 002FC0F8  7C 21 59 6E */	stwux r1, r1, r11
/* 8030049C 002FC0FC  7C 08 02 A6 */	mflr r0
/* 803004A0 002FC100  7D 8B 63 78 */	mr r11, r12
/* 803004A4 002FC104  90 0C 00 04 */	stw r0, 4(r12)
/* 803004A8 002FC108  4B EC 6C 79 */	bl _savegpr_25
/* 803004AC 002FC10C  3C C0 80 44 */	lis r6, lbl_80446240@ha
/* 803004B0 002FC110  7C 7C 1B 78 */	mr r28, r3
/* 803004B4 002FC114  7C 9D 23 78 */	mr r29, r4
/* 803004B8 002FC118  7C BE 2B 78 */	mr r30, r5
/* 803004BC 002FC11C  38 66 62 40 */	addi r3, r6, lbl_80446240@l
/* 803004C0 002FC120  38 80 00 00 */	li r4, 0
/* 803004C4 002FC124  4B FA 2C 95 */	bl IOS_Open
/* 803004C8 002FC128  2C 03 00 00 */	cmpwi r3, 0
/* 803004CC 002FC12C  7C 7F 1B 78 */	mr r31, r3
/* 803004D0 002FC130  3B 60 FF FF */	li r27, -1
/* 803004D4 002FC134  40 80 00 0C */	bge lbl_803004E0
/* 803004D8 002FC138  38 60 FF FF */	li r3, -1
/* 803004DC 002FC13C  48 00 02 54 */	b lbl_80300730
lbl_803004E0:
/* 803004E0 002FC140  57 A0 06 FF */	clrlwi. r0, r29, 0x1b
/* 803004E4 002FC144  41 82 00 0C */	beq lbl_803004F0
/* 803004E8 002FC148  23 40 00 20 */	subfic r26, r0, 0x20
/* 803004EC 002FC14C  48 00 00 08 */	b lbl_803004F4
lbl_803004F0:
/* 803004F0 002FC150  3B 40 00 00 */	li r26, 0
lbl_803004F4:
/* 803004F4 002FC154  38 61 01 40 */	addi r3, r1, 0x140
/* 803004F8 002FC158  3B 20 00 00 */	li r25, 0
/* 803004FC 002FC15C  38 80 00 00 */	li r4, 0
/* 80300500 002FC160  38 A0 00 20 */	li r5, 0x20
/* 80300504 002FC164  4B D0 3C 01 */	bl memset
/* 80300508 002FC168  2C 1A 00 00 */	cmpwi r26, 0
/* 8030050C 002FC16C  41 82 00 B0 */	beq lbl_803005BC
/* 80300510 002FC170  7C 1A F0 40 */	cmplw r26, r30
/* 80300514 002FC174  40 81 00 08 */	ble lbl_8030051C
/* 80300518 002FC178  7F DA F3 78 */	mr r26, r30
lbl_8030051C:
/* 8030051C 002FC17C  7F A4 EB 78 */	mr r4, r29
/* 80300520 002FC180  7F 45 D3 78 */	mr r5, r26
/* 80300524 002FC184  38 61 01 40 */	addi r3, r1, 0x140
/* 80300528 002FC188  4B D0 3A D9 */	bl memcpy
/* 8030052C 002FC18C  39 20 00 20 */	li r9, 0x20
/* 80300530 002FC190  39 41 01 20 */	addi r10, r1, 0x120
/* 80300534 002FC194  39 01 01 00 */	addi r8, r1, 0x100
/* 80300538 002FC198  38 01 01 40 */	addi r0, r1, 0x140
/* 8030053C 002FC19C  38 80 FF FF */	li r4, -1
/* 80300540 002FC1A0  93 81 01 00 */	stw r28, 0x100(r1)
/* 80300544 002FC1A4  7F E3 FB 78 */	mr r3, r31
/* 80300548 002FC1A8  38 E1 00 E0 */	addi r7, r1, 0xe0
/* 8030054C 002FC1AC  90 81 01 20 */	stw r4, 0x120(r1)
/* 80300550 002FC1B0  38 80 00 05 */	li r4, 5
/* 80300554 002FC1B4  38 A0 00 01 */	li r5, 1
/* 80300558 002FC1B8  38 C0 00 02 */	li r6, 2
/* 8030055C 002FC1BC  91 41 00 E0 */	stw r10, 0xe0(r1)
/* 80300560 002FC1C0  91 21 00 E4 */	stw r9, 0xe4(r1)
/* 80300564 002FC1C4  91 01 00 E8 */	stw r8, 0xe8(r1)
/* 80300568 002FC1C8  91 21 00 EC */	stw r9, 0xec(r1)
/* 8030056C 002FC1CC  90 01 00 F0 */	stw r0, 0xf0(r1)
/* 80300570 002FC1D0  93 41 00 F4 */	stw r26, 0xf4(r1)
/* 80300574 002FC1D4  4B FA 38 CD */	bl IOS_Ioctlv
/* 80300578 002FC1D8  83 61 01 20 */	lwz r27, 0x120(r1)
/* 8030057C 002FC1DC  2C 1B 00 00 */	cmpwi r27, 0
/* 80300580 002FC1E0  40 81 00 2C */	ble lbl_803005AC
/* 80300584 002FC1E4  7C 1B D0 40 */	cmplw r27, r26
/* 80300588 002FC1E8  7F 79 DB 78 */	mr r25, r27
/* 8030058C 002FC1EC  40 80 00 14 */	bge lbl_803005A0
/* 80300590 002FC1F0  7F E3 FB 78 */	mr r3, r31
/* 80300594 002FC1F4  4B FA 2D A5 */	bl IOS_Close
/* 80300598 002FC1F8  7F 63 DB 78 */	mr r3, r27
/* 8030059C 002FC1FC  48 00 01 94 */	b lbl_80300730
lbl_803005A0:
/* 803005A0 002FC200  7F BD DA 14 */	add r29, r29, r27
/* 803005A4 002FC204  7F DB F0 50 */	subf r30, r27, r30
/* 803005A8 002FC208  48 00 00 14 */	b lbl_803005BC
lbl_803005AC:
/* 803005AC 002FC20C  7F E3 FB 78 */	mr r3, r31
/* 803005B0 002FC210  4B FA 2D 89 */	bl IOS_Close
/* 803005B4 002FC214  7F 63 DB 78 */	mr r3, r27
/* 803005B8 002FC218  48 00 01 78 */	b lbl_80300730
lbl_803005BC:
/* 803005BC 002FC21C  2C 1E 00 00 */	cmpwi r30, 0
/* 803005C0 002FC220  41 82 00 A8 */	beq lbl_80300668
/* 803005C4 002FC224  57 DA 00 35 */	rlwinm. r26, r30, 0, 0, 0x1a
/* 803005C8 002FC228  41 82 00 A0 */	beq lbl_80300668
/* 803005CC 002FC22C  39 00 00 20 */	li r8, 0x20
/* 803005D0 002FC230  39 21 00 C0 */	addi r9, r1, 0xc0
/* 803005D4 002FC234  38 01 00 A0 */	addi r0, r1, 0xa0
/* 803005D8 002FC238  38 A0 FF FF */	li r5, -1
/* 803005DC 002FC23C  90 A1 00 C0 */	stw r5, 0xc0(r1)
/* 803005E0 002FC240  7F E3 FB 78 */	mr r3, r31
/* 803005E4 002FC244  38 E1 00 80 */	addi r7, r1, 0x80
/* 803005E8 002FC248  38 80 00 05 */	li r4, 5
/* 803005EC 002FC24C  93 81 00 A0 */	stw r28, 0xa0(r1)
/* 803005F0 002FC250  38 A0 00 01 */	li r5, 1
/* 803005F4 002FC254  38 C0 00 02 */	li r6, 2
/* 803005F8 002FC258  91 21 00 80 */	stw r9, 0x80(r1)
/* 803005FC 002FC25C  91 01 00 84 */	stw r8, 0x84(r1)
/* 80300600 002FC260  90 01 00 88 */	stw r0, 0x88(r1)
/* 80300604 002FC264  91 01 00 8C */	stw r8, 0x8c(r1)
/* 80300608 002FC268  93 A1 00 90 */	stw r29, 0x90(r1)
/* 8030060C 002FC26C  93 41 00 94 */	stw r26, 0x94(r1)
/* 80300610 002FC270  4B FA 38 31 */	bl IOS_Ioctlv
/* 80300614 002FC274  83 61 00 C0 */	lwz r27, 0xc0(r1)
/* 80300618 002FC278  2C 1B 00 00 */	cmpwi r27, 0
/* 8030061C 002FC27C  40 81 00 2C */	ble lbl_80300648
/* 80300620 002FC280  7C 1B D0 40 */	cmplw r27, r26
/* 80300624 002FC284  7F 39 DA 14 */	add r25, r25, r27
/* 80300628 002FC288  40 80 00 14 */	bge lbl_8030063C
/* 8030062C 002FC28C  7F E3 FB 78 */	mr r3, r31
/* 80300630 002FC290  4B FA 2D 09 */	bl IOS_Close
/* 80300634 002FC294  7F 23 CB 78 */	mr r3, r25
/* 80300638 002FC298  48 00 00 F8 */	b lbl_80300730
lbl_8030063C:
/* 8030063C 002FC29C  7F BD DA 14 */	add r29, r29, r27
/* 80300640 002FC2A0  7F DB F0 50 */	subf r30, r27, r30
/* 80300644 002FC2A4  48 00 00 24 */	b lbl_80300668
lbl_80300648:
/* 80300648 002FC2A8  7F E3 FB 78 */	mr r3, r31
/* 8030064C 002FC2AC  4B FA 2C ED */	bl IOS_Close
/* 80300650 002FC2B0  2C 19 00 00 */	cmpwi r25, 0
/* 80300654 002FC2B4  40 81 00 0C */	ble lbl_80300660
/* 80300658 002FC2B8  7F 23 CB 78 */	mr r3, r25
/* 8030065C 002FC2BC  48 00 00 D4 */	b lbl_80300730
lbl_80300660:
/* 80300660 002FC2C0  7F 63 DB 78 */	mr r3, r27
/* 80300664 002FC2C4  48 00 00 CC */	b lbl_80300730
lbl_80300668:
/* 80300668 002FC2C8  2C 1E 00 00 */	cmpwi r30, 0
/* 8030066C 002FC2CC  41 82 00 AC */	beq lbl_80300718
/* 80300670 002FC2D0  57 DA 06 FF */	clrlwi. r26, r30, 0x1b
/* 80300674 002FC2D4  41 82 00 A4 */	beq lbl_80300718
/* 80300678 002FC2D8  38 61 01 40 */	addi r3, r1, 0x140
/* 8030067C 002FC2DC  38 80 00 00 */	li r4, 0
/* 80300680 002FC2E0  38 A0 00 20 */	li r5, 0x20
/* 80300684 002FC2E4  4B D0 3A 81 */	bl memset
/* 80300688 002FC2E8  7F A4 EB 78 */	mr r4, r29
/* 8030068C 002FC2EC  7F 45 D3 78 */	mr r5, r26
/* 80300690 002FC2F0  38 61 01 40 */	addi r3, r1, 0x140
/* 80300694 002FC2F4  4B D0 39 6D */	bl memcpy
/* 80300698 002FC2F8  39 20 00 20 */	li r9, 0x20
/* 8030069C 002FC2FC  39 41 00 60 */	addi r10, r1, 0x60
/* 803006A0 002FC300  39 01 00 40 */	addi r8, r1, 0x40
/* 803006A4 002FC304  38 01 01 40 */	addi r0, r1, 0x140
/* 803006A8 002FC308  38 80 FF FF */	li r4, -1
/* 803006AC 002FC30C  93 81 00 40 */	stw r28, 0x40(r1)
/* 803006B0 002FC310  7F E3 FB 78 */	mr r3, r31
/* 803006B4 002FC314  38 E1 00 20 */	addi r7, r1, 0x20
/* 803006B8 002FC318  90 81 00 60 */	stw r4, 0x60(r1)
/* 803006BC 002FC31C  38 80 00 05 */	li r4, 5
/* 803006C0 002FC320  38 A0 00 01 */	li r5, 1
/* 803006C4 002FC324  38 C0 00 02 */	li r6, 2
/* 803006C8 002FC328  91 41 00 20 */	stw r10, 0x20(r1)
/* 803006CC 002FC32C  91 21 00 24 */	stw r9, 0x24(r1)
/* 803006D0 002FC330  91 01 00 28 */	stw r8, 0x28(r1)
/* 803006D4 002FC334  91 21 00 2C */	stw r9, 0x2c(r1)
/* 803006D8 002FC338  90 01 00 30 */	stw r0, 0x30(r1)
/* 803006DC 002FC33C  93 41 00 34 */	stw r26, 0x34(r1)
/* 803006E0 002FC340  4B FA 37 61 */	bl IOS_Ioctlv
/* 803006E4 002FC344  83 61 00 60 */	lwz r27, 0x60(r1)
/* 803006E8 002FC348  2C 1B 00 00 */	cmpwi r27, 0
/* 803006EC 002FC34C  40 81 00 0C */	ble lbl_803006F8
/* 803006F0 002FC350  7F 39 DA 14 */	add r25, r25, r27
/* 803006F4 002FC354  48 00 00 24 */	b lbl_80300718
lbl_803006F8:
/* 803006F8 002FC358  7F E3 FB 78 */	mr r3, r31
/* 803006FC 002FC35C  4B FA 2C 3D */	bl IOS_Close
/* 80300700 002FC360  2C 19 00 00 */	cmpwi r25, 0
/* 80300704 002FC364  40 81 00 0C */	ble lbl_80300710
/* 80300708 002FC368  7F 23 CB 78 */	mr r3, r25
/* 8030070C 002FC36C  48 00 00 24 */	b lbl_80300730
lbl_80300710:
/* 80300710 002FC370  7F 63 DB 78 */	mr r3, r27
/* 80300714 002FC374  48 00 00 1C */	b lbl_80300730
lbl_80300718:
/* 80300718 002FC378  2C 19 00 00 */	cmpwi r25, 0
/* 8030071C 002FC37C  40 81 00 08 */	ble lbl_80300724
/* 80300720 002FC380  7F 3B CB 78 */	mr r27, r25
lbl_80300724:
/* 80300724 002FC384  7F E3 FB 78 */	mr r3, r31
/* 80300728 002FC388  4B FA 2C 11 */	bl IOS_Close
/* 8030072C 002FC38C  7F 63 DB 78 */	mr r3, r27
lbl_80300730:
/* 80300730 002FC390  81 41 00 00 */	lwz r10, 0(r1)
/* 80300734 002FC394  7D 4B 53 78 */	mr r11, r10
/* 80300738 002FC398  4B EC 6A 35 */	bl _restgpr_25
/* 8030073C 002FC39C  80 0A 00 04 */	lwz r0, 4(r10)
/* 80300740 002FC3A0  7C 08 03 A6 */	mtlr r0
/* 80300744 002FC3A4  7D 41 53 78 */	mr r1, r10
/* 80300748 002FC3A8  4E 80 00 20 */	blr

.global SSLShutdown
SSLShutdown:
/* 8030074C 002FC3AC  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 80300750 002FC3B0  7C 2C 0B 78 */	mr r12, r1
/* 80300754 002FC3B4  21 6B FF 60 */	subfic r11, r11, -160
/* 80300758 002FC3B8  7C 21 59 6E */	stwux r1, r1, r11
/* 8030075C 002FC3BC  7C 08 02 A6 */	mflr r0
/* 80300760 002FC3C0  3C 80 80 44 */	lis r4, lbl_80446240@ha
/* 80300764 002FC3C4  90 0C 00 04 */	stw r0, 4(r12)
/* 80300768 002FC3C8  93 EC FF FC */	stw r31, -4(r12)
/* 8030076C 002FC3CC  93 CC FF F8 */	stw r30, -8(r12)
/* 80300770 002FC3D0  7C 7E 1B 78 */	mr r30, r3
/* 80300774 002FC3D4  38 64 62 40 */	addi r3, r4, lbl_80446240@l
/* 80300778 002FC3D8  38 80 00 00 */	li r4, 0
/* 8030077C 002FC3DC  4B FA 29 DD */	bl IOS_Open
/* 80300780 002FC3E0  2C 03 00 00 */	cmpwi r3, 0
/* 80300784 002FC3E4  7C 7F 1B 78 */	mr r31, r3
/* 80300788 002FC3E8  40 80 00 0C */	bge lbl_80300794
/* 8030078C 002FC3EC  38 60 FF FF */	li r3, -1
/* 80300790 002FC3F0  48 00 00 4C */	b lbl_803007DC
lbl_80300794:
/* 80300794 002FC3F4  39 00 00 20 */	li r8, 0x20
/* 80300798 002FC3F8  39 21 00 20 */	addi r9, r1, 0x20
/* 8030079C 002FC3FC  38 01 00 40 */	addi r0, r1, 0x40
/* 803007A0 002FC400  38 C0 FF FF */	li r6, -1
/* 803007A4 002FC404  90 C1 00 20 */	stw r6, 0x20(r1)
/* 803007A8 002FC408  38 E1 00 60 */	addi r7, r1, 0x60
/* 803007AC 002FC40C  38 80 00 06 */	li r4, 6
/* 803007B0 002FC410  38 A0 00 01 */	li r5, 1
/* 803007B4 002FC414  93 C1 00 40 */	stw r30, 0x40(r1)
/* 803007B8 002FC418  38 C0 00 01 */	li r6, 1
/* 803007BC 002FC41C  91 21 00 60 */	stw r9, 0x60(r1)
/* 803007C0 002FC420  91 01 00 64 */	stw r8, 0x64(r1)
/* 803007C4 002FC424  90 01 00 68 */	stw r0, 0x68(r1)
/* 803007C8 002FC428  91 01 00 6C */	stw r8, 0x6c(r1)
/* 803007CC 002FC42C  4B FA 36 75 */	bl IOS_Ioctlv
/* 803007D0 002FC430  7F E3 FB 78 */	mr r3, r31
/* 803007D4 002FC434  4B FA 2B 65 */	bl IOS_Close
/* 803007D8 002FC438  80 61 00 20 */	lwz r3, 0x20(r1)
lbl_803007DC:
/* 803007DC 002FC43C  81 41 00 00 */	lwz r10, 0(r1)
/* 803007E0 002FC440  80 0A 00 04 */	lwz r0, 4(r10)
/* 803007E4 002FC444  83 EA FF FC */	lwz r31, -4(r10)
/* 803007E8 002FC448  83 CA FF F8 */	lwz r30, -8(r10)
/* 803007EC 002FC44C  7C 08 03 A6 */	mtlr r0
/* 803007F0 002FC450  7D 41 53 78 */	mr r1, r10
/* 803007F4 002FC454  4E 80 00 20 */	blr

.global SSLSetClientCert
SSLSetClientCert:
/* 803007F8 002FC458  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 803007FC 002FC45C  7C 2C 0B 78 */	mr r12, r1
/* 80300800 002FC460  21 6B FF 60 */	subfic r11, r11, -160
/* 80300804 002FC464  7C 21 59 6E */	stwux r1, r1, r11
/* 80300808 002FC468  7C 08 02 A6 */	mflr r0
/* 8030080C 002FC46C  7D 8B 63 78 */	mr r11, r12
/* 80300810 002FC470  90 0C 00 04 */	stw r0, 4(r12)
/* 80300814 002FC474  4B EC 69 09 */	bl _savegpr_24
/* 80300818 002FC478  3F E0 80 58 */	lis r31, lbl_8057B780@ha
/* 8030081C 002FC47C  3D 00 80 44 */	lis r8, lbl_80446240@ha
/* 80300820 002FC480  7C 78 1B 78 */	mr r24, r3
/* 80300824 002FC484  7C 99 23 78 */	mr r25, r4
/* 80300828 002FC488  7C BA 2B 78 */	mr r26, r5
/* 8030082C 002FC48C  7C DB 33 78 */	mr r27, r6
/* 80300830 002FC490  7C FC 3B 78 */	mr r28, r7
/* 80300834 002FC494  3B FF B7 80 */	addi r31, r31, lbl_8057B780@l
/* 80300838 002FC498  38 68 62 40 */	addi r3, r8, lbl_80446240@l
/* 8030083C 002FC49C  38 80 00 00 */	li r4, 0
/* 80300840 002FC4A0  4B FA 29 19 */	bl IOS_Open
/* 80300844 002FC4A4  2C 03 00 00 */	cmpwi r3, 0
/* 80300848 002FC4A8  7C 7D 1B 78 */	mr r29, r3
/* 8030084C 002FC4AC  40 80 00 0C */	bge lbl_80300858
/* 80300850 002FC4B0  38 60 FF FF */	li r3, -1
/* 80300854 002FC4B4  48 00 00 F4 */	b lbl_80300948
lbl_80300858:
/* 80300858 002FC4B8  4B F6 DF 05 */	bl OSDisableInterrupts
/* 8030085C 002FC4BC  80 0D AF 70 */	lwz r0, lbl_80640230-_SDA_BASE_(r13)
/* 80300860 002FC4C0  7C 7E 1B 78 */	mr r30, r3
/* 80300864 002FC4C4  2C 00 00 00 */	cmpwi r0, 0
/* 80300868 002FC4C8  40 82 00 44 */	bne lbl_803008AC
/* 8030086C 002FC4CC  38 7F 00 00 */	addi r3, r31, 0
/* 80300870 002FC4D0  48 00 03 95 */	bl SSL_InitMutex
/* 80300874 002FC4D4  38 7F 00 20 */	addi r3, r31, 0x20
/* 80300878 002FC4D8  38 80 00 00 */	li r4, 0
/* 8030087C 002FC4DC  38 A0 10 00 */	li r5, 0x1000
/* 80300880 002FC4E0  4B D0 38 85 */	bl memset
/* 80300884 002FC4E4  38 7F 10 20 */	addi r3, r31, 0x1020
/* 80300888 002FC4E8  38 80 00 00 */	li r4, 0
/* 8030088C 002FC4EC  38 A0 10 00 */	li r5, 0x1000
/* 80300890 002FC4F0  4B D0 38 75 */	bl memset
/* 80300894 002FC4F4  38 7F 20 20 */	addi r3, r31, 0x2020
/* 80300898 002FC4F8  38 80 00 00 */	li r4, 0
/* 8030089C 002FC4FC  38 A0 10 00 */	li r5, 0x1000
/* 803008A0 002FC500  4B D0 38 65 */	bl memset
/* 803008A4 002FC504  38 00 00 01 */	li r0, 1
/* 803008A8 002FC508  90 0D AF 70 */	stw r0, lbl_80640230-_SDA_BASE_(r13)
lbl_803008AC:
/* 803008AC 002FC50C  7F C3 F3 78 */	mr r3, r30
/* 803008B0 002FC510  4B F6 DE D5 */	bl OSRestoreInterrupts
/* 803008B4 002FC514  38 7F 00 00 */	addi r3, r31, 0
/* 803008B8 002FC518  48 00 03 51 */	bl SSL_LockMutex
/* 803008BC 002FC51C  7F 24 CB 78 */	mr r4, r25
/* 803008C0 002FC520  7F 45 D3 78 */	mr r5, r26
/* 803008C4 002FC524  38 7F 00 20 */	addi r3, r31, 0x20
/* 803008C8 002FC528  4B D0 37 39 */	bl memcpy
/* 803008CC 002FC52C  7F 64 DB 78 */	mr r4, r27
/* 803008D0 002FC530  7F 85 E3 78 */	mr r5, r28
/* 803008D4 002FC534  38 7F 10 20 */	addi r3, r31, 0x1020
/* 803008D8 002FC538  4B D0 37 29 */	bl memcpy
/* 803008DC 002FC53C  39 40 00 20 */	li r10, 0x20
/* 803008E0 002FC540  39 61 00 40 */	addi r11, r1, 0x40
/* 803008E4 002FC544  39 21 00 20 */	addi r9, r1, 0x20
/* 803008E8 002FC548  39 1F 00 20 */	addi r8, r31, 0x20
/* 803008EC 002FC54C  38 1F 10 20 */	addi r0, r31, 0x1020
/* 803008F0 002FC550  38 60 FF FF */	li r3, -1
/* 803008F4 002FC554  90 61 00 40 */	stw r3, 0x40(r1)
/* 803008F8 002FC558  7F A3 EB 78 */	mr r3, r29
/* 803008FC 002FC55C  38 E1 00 60 */	addi r7, r1, 0x60
/* 80300900 002FC560  38 80 00 07 */	li r4, 7
/* 80300904 002FC564  93 01 00 20 */	stw r24, 0x20(r1)
/* 80300908 002FC568  38 A0 00 01 */	li r5, 1
/* 8030090C 002FC56C  38 C0 00 03 */	li r6, 3
/* 80300910 002FC570  91 61 00 60 */	stw r11, 0x60(r1)
/* 80300914 002FC574  91 41 00 64 */	stw r10, 0x64(r1)
/* 80300918 002FC578  91 21 00 68 */	stw r9, 0x68(r1)
/* 8030091C 002FC57C  91 41 00 6C */	stw r10, 0x6c(r1)
/* 80300920 002FC580  91 01 00 70 */	stw r8, 0x70(r1)
/* 80300924 002FC584  93 41 00 74 */	stw r26, 0x74(r1)
/* 80300928 002FC588  90 01 00 78 */	stw r0, 0x78(r1)
/* 8030092C 002FC58C  93 81 00 7C */	stw r28, 0x7c(r1)
/* 80300930 002FC590  4B FA 35 11 */	bl IOS_Ioctlv
/* 80300934 002FC594  38 7F 00 00 */	addi r3, r31, 0
/* 80300938 002FC598  48 00 02 D5 */	bl SSL_UnlockMutex
/* 8030093C 002FC59C  7F A3 EB 78 */	mr r3, r29
/* 80300940 002FC5A0  4B FA 29 F9 */	bl IOS_Close
/* 80300944 002FC5A4  80 61 00 40 */	lwz r3, 0x40(r1)
lbl_80300948:
/* 80300948 002FC5A8  81 41 00 00 */	lwz r10, 0(r1)
/* 8030094C 002FC5AC  7D 4B 53 78 */	mr r11, r10
/* 80300950 002FC5B0  4B EC 68 19 */	bl _restgpr_24
/* 80300954 002FC5B4  80 0A 00 04 */	lwz r0, 4(r10)
/* 80300958 002FC5B8  7C 08 03 A6 */	mtlr r0
/* 8030095C 002FC5BC  7D 41 53 78 */	mr r1, r10
/* 80300960 002FC5C0  4E 80 00 20 */	blr

.global SSLSetClientCertDefault
SSLSetClientCertDefault:
/* 80300964 002FC5C4  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 80300968 002FC5C8  7C 2C 0B 78 */	mr r12, r1
/* 8030096C 002FC5CC  21 6B FF 60 */	subfic r11, r11, -160
/* 80300970 002FC5D0  7C 21 59 6E */	stwux r1, r1, r11
/* 80300974 002FC5D4  7C 08 02 A6 */	mflr r0
/* 80300978 002FC5D8  3C 80 80 44 */	lis r4, lbl_80446240@ha
/* 8030097C 002FC5DC  90 0C 00 04 */	stw r0, 4(r12)
/* 80300980 002FC5E0  93 EC FF FC */	stw r31, -4(r12)
/* 80300984 002FC5E4  93 CC FF F8 */	stw r30, -8(r12)
/* 80300988 002FC5E8  7C 7E 1B 78 */	mr r30, r3
/* 8030098C 002FC5EC  38 64 62 40 */	addi r3, r4, lbl_80446240@l
/* 80300990 002FC5F0  38 80 00 00 */	li r4, 0
/* 80300994 002FC5F4  4B FA 27 C5 */	bl IOS_Open
/* 80300998 002FC5F8  2C 03 00 00 */	cmpwi r3, 0
/* 8030099C 002FC5FC  7C 7F 1B 78 */	mr r31, r3
/* 803009A0 002FC600  40 80 00 0C */	bge lbl_803009AC
/* 803009A4 002FC604  38 60 FF FF */	li r3, -1
/* 803009A8 002FC608  48 00 00 4C */	b lbl_803009F4
lbl_803009AC:
/* 803009AC 002FC60C  39 00 00 20 */	li r8, 0x20
/* 803009B0 002FC610  39 21 00 40 */	addi r9, r1, 0x40
/* 803009B4 002FC614  38 01 00 20 */	addi r0, r1, 0x20
/* 803009B8 002FC618  38 80 FF FF */	li r4, -1
/* 803009BC 002FC61C  90 81 00 40 */	stw r4, 0x40(r1)
/* 803009C0 002FC620  38 E1 00 60 */	addi r7, r1, 0x60
/* 803009C4 002FC624  38 80 00 08 */	li r4, 8
/* 803009C8 002FC628  38 A0 00 01 */	li r5, 1
/* 803009CC 002FC62C  93 C1 00 20 */	stw r30, 0x20(r1)
/* 803009D0 002FC630  38 C0 00 01 */	li r6, 1
/* 803009D4 002FC634  91 21 00 60 */	stw r9, 0x60(r1)
/* 803009D8 002FC638  91 01 00 64 */	stw r8, 0x64(r1)
/* 803009DC 002FC63C  90 01 00 68 */	stw r0, 0x68(r1)
/* 803009E0 002FC640  91 01 00 6C */	stw r8, 0x6c(r1)
/* 803009E4 002FC644  4B FA 34 5D */	bl IOS_Ioctlv
/* 803009E8 002FC648  7F E3 FB 78 */	mr r3, r31
/* 803009EC 002FC64C  4B FA 29 4D */	bl IOS_Close
/* 803009F0 002FC650  80 61 00 40 */	lwz r3, 0x40(r1)
lbl_803009F4:
/* 803009F4 002FC654  81 41 00 00 */	lwz r10, 0(r1)
/* 803009F8 002FC658  80 0A 00 04 */	lwz r0, 4(r10)
/* 803009FC 002FC65C  83 EA FF FC */	lwz r31, -4(r10)
/* 80300A00 002FC660  83 CA FF F8 */	lwz r30, -8(r10)
/* 80300A04 002FC664  7C 08 03 A6 */	mtlr r0
/* 80300A08 002FC668  7D 41 53 78 */	mr r1, r10
/* 80300A0C 002FC66C  4E 80 00 20 */	blr

.global SSLSetRootCA
SSLSetRootCA:
/* 80300A10 002FC670  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 80300A14 002FC674  7C 2C 0B 78 */	mr r12, r1
/* 80300A18 002FC678  21 6B FF 60 */	subfic r11, r11, -160
/* 80300A1C 002FC67C  7C 21 59 6E */	stwux r1, r1, r11
/* 80300A20 002FC680  7C 08 02 A6 */	mflr r0
/* 80300A24 002FC684  7D 8B 63 78 */	mr r11, r12
/* 80300A28 002FC688  90 0C 00 04 */	stw r0, 4(r12)
/* 80300A2C 002FC68C  4B EC 66 F9 */	bl _savegpr_26
/* 80300A30 002FC690  3F E0 80 58 */	lis r31, lbl_8057B780@ha
/* 80300A34 002FC694  3C C0 80 44 */	lis r6, lbl_80446240@ha
/* 80300A38 002FC698  7C 7A 1B 78 */	mr r26, r3
/* 80300A3C 002FC69C  7C 9B 23 78 */	mr r27, r4
/* 80300A40 002FC6A0  7C BC 2B 78 */	mr r28, r5
/* 80300A44 002FC6A4  3B FF B7 80 */	addi r31, r31, lbl_8057B780@l
/* 80300A48 002FC6A8  38 66 62 40 */	addi r3, r6, lbl_80446240@l
/* 80300A4C 002FC6AC  38 80 00 00 */	li r4, 0
/* 80300A50 002FC6B0  4B FA 27 09 */	bl IOS_Open
/* 80300A54 002FC6B4  2C 03 00 00 */	cmpwi r3, 0
/* 80300A58 002FC6B8  7C 7D 1B 78 */	mr r29, r3
/* 80300A5C 002FC6BC  40 80 00 0C */	bge lbl_80300A68
/* 80300A60 002FC6C0  38 60 FF FF */	li r3, -1
/* 80300A64 002FC6C4  48 00 00 D8 */	b lbl_80300B3C
lbl_80300A68:
/* 80300A68 002FC6C8  4B F6 DC F5 */	bl OSDisableInterrupts
/* 80300A6C 002FC6CC  80 0D AF 70 */	lwz r0, lbl_80640230-_SDA_BASE_(r13)
/* 80300A70 002FC6D0  7C 7E 1B 78 */	mr r30, r3
/* 80300A74 002FC6D4  2C 00 00 00 */	cmpwi r0, 0
/* 80300A78 002FC6D8  40 82 00 44 */	bne lbl_80300ABC
/* 80300A7C 002FC6DC  38 7F 00 00 */	addi r3, r31, 0
/* 80300A80 002FC6E0  48 00 01 85 */	bl SSL_InitMutex
/* 80300A84 002FC6E4  38 7F 00 20 */	addi r3, r31, 0x20
/* 80300A88 002FC6E8  38 80 00 00 */	li r4, 0
/* 80300A8C 002FC6EC  38 A0 10 00 */	li r5, 0x1000
/* 80300A90 002FC6F0  4B D0 36 75 */	bl memset
/* 80300A94 002FC6F4  38 7F 10 20 */	addi r3, r31, 0x1020
/* 80300A98 002FC6F8  38 80 00 00 */	li r4, 0
/* 80300A9C 002FC6FC  38 A0 10 00 */	li r5, 0x1000
/* 80300AA0 002FC700  4B D0 36 65 */	bl memset
/* 80300AA4 002FC704  38 7F 20 20 */	addi r3, r31, 0x2020
/* 80300AA8 002FC708  38 80 00 00 */	li r4, 0
/* 80300AAC 002FC70C  38 A0 10 00 */	li r5, 0x1000
/* 80300AB0 002FC710  4B D0 36 55 */	bl memset
/* 80300AB4 002FC714  38 00 00 01 */	li r0, 1
/* 80300AB8 002FC718  90 0D AF 70 */	stw r0, lbl_80640230-_SDA_BASE_(r13)
lbl_80300ABC:
/* 80300ABC 002FC71C  7F C3 F3 78 */	mr r3, r30
/* 80300AC0 002FC720  4B F6 DC C5 */	bl OSRestoreInterrupts
/* 80300AC4 002FC724  38 7F 00 00 */	addi r3, r31, 0
/* 80300AC8 002FC728  48 00 01 41 */	bl SSL_LockMutex
/* 80300ACC 002FC72C  7F 64 DB 78 */	mr r4, r27
/* 80300AD0 002FC730  7F 85 E3 78 */	mr r5, r28
/* 80300AD4 002FC734  38 7F 20 20 */	addi r3, r31, 0x2020
/* 80300AD8 002FC738  4B D0 35 29 */	bl memcpy
/* 80300ADC 002FC73C  39 20 00 20 */	li r9, 0x20
/* 80300AE0 002FC740  39 41 00 40 */	addi r10, r1, 0x40
/* 80300AE4 002FC744  39 01 00 20 */	addi r8, r1, 0x20
/* 80300AE8 002FC748  38 1F 20 20 */	addi r0, r31, 0x2020
/* 80300AEC 002FC74C  38 80 FF FF */	li r4, -1
/* 80300AF0 002FC750  93 41 00 20 */	stw r26, 0x20(r1)
/* 80300AF4 002FC754  7F A3 EB 78 */	mr r3, r29
/* 80300AF8 002FC758  38 E1 00 60 */	addi r7, r1, 0x60
/* 80300AFC 002FC75C  90 81 00 40 */	stw r4, 0x40(r1)
/* 80300B00 002FC760  38 80 00 0A */	li r4, 0xa
/* 80300B04 002FC764  38 A0 00 01 */	li r5, 1
/* 80300B08 002FC768  38 C0 00 02 */	li r6, 2
/* 80300B0C 002FC76C  91 41 00 60 */	stw r10, 0x60(r1)
/* 80300B10 002FC770  91 21 00 64 */	stw r9, 0x64(r1)
/* 80300B14 002FC774  91 01 00 68 */	stw r8, 0x68(r1)
/* 80300B18 002FC778  91 21 00 6C */	stw r9, 0x6c(r1)
/* 80300B1C 002FC77C  90 01 00 70 */	stw r0, 0x70(r1)
/* 80300B20 002FC780  93 81 00 74 */	stw r28, 0x74(r1)
/* 80300B24 002FC784  4B FA 33 1D */	bl IOS_Ioctlv
/* 80300B28 002FC788  38 7F 00 00 */	addi r3, r31, 0
/* 80300B2C 002FC78C  48 00 00 E1 */	bl SSL_UnlockMutex
/* 80300B30 002FC790  7F A3 EB 78 */	mr r3, r29
/* 80300B34 002FC794  4B FA 28 05 */	bl IOS_Close
/* 80300B38 002FC798  80 61 00 40 */	lwz r3, 0x40(r1)
lbl_80300B3C:
/* 80300B3C 002FC79C  81 41 00 00 */	lwz r10, 0(r1)
/* 80300B40 002FC7A0  7D 4B 53 78 */	mr r11, r10
/* 80300B44 002FC7A4  4B EC 66 2D */	bl _restgpr_26
/* 80300B48 002FC7A8  80 0A 00 04 */	lwz r0, 4(r10)
/* 80300B4C 002FC7AC  7C 08 03 A6 */	mtlr r0
/* 80300B50 002FC7B0  7D 41 53 78 */	mr r1, r10
/* 80300B54 002FC7B4  4E 80 00 20 */	blr

.global SSLSetBuiltinRootCA
SSLSetBuiltinRootCA:
/* 80300B58 002FC7B8  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 80300B5C 002FC7BC  7C 2C 0B 78 */	mr r12, r1
/* 80300B60 002FC7C0  21 6B FF 60 */	subfic r11, r11, -160
/* 80300B64 002FC7C4  7C 21 59 6E */	stwux r1, r1, r11
/* 80300B68 002FC7C8  7C 08 02 A6 */	mflr r0
/* 80300B6C 002FC7CC  3C 80 80 44 */	lis r4, lbl_80446240@ha
/* 80300B70 002FC7D0  90 0C 00 04 */	stw r0, 4(r12)
/* 80300B74 002FC7D4  93 EC FF FC */	stw r31, -4(r12)
/* 80300B78 002FC7D8  93 CC FF F8 */	stw r30, -8(r12)
/* 80300B7C 002FC7DC  7C 7E 1B 78 */	mr r30, r3
/* 80300B80 002FC7E0  38 64 62 40 */	addi r3, r4, lbl_80446240@l
/* 80300B84 002FC7E4  38 80 00 00 */	li r4, 0
/* 80300B88 002FC7E8  4B FA 25 D1 */	bl IOS_Open
/* 80300B8C 002FC7EC  2C 03 00 00 */	cmpwi r3, 0
/* 80300B90 002FC7F0  7C 7F 1B 78 */	mr r31, r3
/* 80300B94 002FC7F4  40 80 00 0C */	bge lbl_80300BA0
/* 80300B98 002FC7F8  38 60 FF FF */	li r3, -1
/* 80300B9C 002FC7FC  48 00 00 4C */	b lbl_80300BE8
lbl_80300BA0:
/* 80300BA0 002FC800  39 00 00 20 */	li r8, 0x20
/* 80300BA4 002FC804  39 21 00 40 */	addi r9, r1, 0x40
/* 80300BA8 002FC808  38 01 00 20 */	addi r0, r1, 0x20
/* 80300BAC 002FC80C  38 80 FF FF */	li r4, -1
/* 80300BB0 002FC810  90 81 00 40 */	stw r4, 0x40(r1)
/* 80300BB4 002FC814  38 E1 00 60 */	addi r7, r1, 0x60
/* 80300BB8 002FC818  38 80 00 0B */	li r4, 0xb
/* 80300BBC 002FC81C  38 A0 00 01 */	li r5, 1
/* 80300BC0 002FC820  93 C1 00 20 */	stw r30, 0x20(r1)
/* 80300BC4 002FC824  38 C0 00 01 */	li r6, 1
/* 80300BC8 002FC828  91 21 00 60 */	stw r9, 0x60(r1)
/* 80300BCC 002FC82C  91 01 00 64 */	stw r8, 0x64(r1)
/* 80300BD0 002FC830  90 01 00 68 */	stw r0, 0x68(r1)
/* 80300BD4 002FC834  91 01 00 6C */	stw r8, 0x6c(r1)
/* 80300BD8 002FC838  4B FA 32 69 */	bl IOS_Ioctlv
/* 80300BDC 002FC83C  7F E3 FB 78 */	mr r3, r31
/* 80300BE0 002FC840  4B FA 27 59 */	bl IOS_Close
/* 80300BE4 002FC844  80 61 00 40 */	lwz r3, 0x40(r1)
lbl_80300BE8:
/* 80300BE8 002FC848  81 41 00 00 */	lwz r10, 0(r1)
/* 80300BEC 002FC84C  80 0A 00 04 */	lwz r0, 4(r10)
/* 80300BF0 002FC850  83 EA FF FC */	lwz r31, -4(r10)
/* 80300BF4 002FC854  83 CA FF F8 */	lwz r30, -8(r10)
/* 80300BF8 002FC858  7C 08 03 A6 */	mtlr r0
/* 80300BFC 002FC85C  7D 41 53 78 */	mr r1, r10
/* 80300C00 002FC860  4E 80 00 20 */	blr