summaryrefslogtreecommitdiff
path: root/asm/SDK/SO/SOCommon.s
blob: 6f5e8ee2ed03667d567a8a907299ea4b6732efc1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
.include "macros.inc"

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

.global SOInit
SOInit:
/* 802F519C 002F0DFC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F51A0 002F0E00  7C 08 02 A6 */	mflr r0
/* 802F51A4 002F0E04  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F51A8 002F0E08  39 61 00 20 */	addi r11, r1, 0x20
/* 802F51AC 002F0E0C  4B ED 1F 7D */	bl _savegpr_27
/* 802F51B0 002F0E10  7C 7B 1B 78 */	mr r27, r3
/* 802F51B4 002F0E14  3B E0 00 00 */	li r31, 0
/* 802F51B8 002F0E18  4B F7 95 A5 */	bl OSDisableInterrupts
/* 802F51BC 002F0E1C  80 0D AF 60 */	lwz r0, lbl_80640220-_SDA_BASE_(r13)
/* 802F51C0 002F0E20  7C 7E 1B 78 */	mr r30, r3
/* 802F51C4 002F0E24  2C 00 00 00 */	cmpwi r0, 0
/* 802F51C8 002F0E28  40 82 00 14 */	bne lbl_802F51DC
/* 802F51CC 002F0E2C  80 6D 8C 08 */	lwz r3, lbl_8063DEC8-_SDA_BASE_(r13)
/* 802F51D0 002F0E30  4B F7 44 81 */	bl OSRegisterVersion
/* 802F51D4 002F0E34  38 00 00 01 */	li r0, 1
/* 802F51D8 002F0E38  90 0D AF 60 */	stw r0, lbl_80640220-_SDA_BASE_(r13)
lbl_802F51DC:
/* 802F51DC 002F0E3C  88 0D AF 58 */	lbz r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F51E0 002F0E40  2C 00 00 00 */	cmpwi r0, 0
/* 802F51E4 002F0E44  41 82 00 18 */	beq lbl_802F51FC
/* 802F51E8 002F0E48  41 80 00 14 */	blt lbl_802F51FC
/* 802F51EC 002F0E4C  2C 00 00 03 */	cmpwi r0, 3
/* 802F51F0 002F0E50  40 80 00 0C */	bge lbl_802F51FC
/* 802F51F4 002F0E54  3B E0 FF F9 */	li r31, -7
/* 802F51F8 002F0E58  48 00 01 30 */	b lbl_802F5328
lbl_802F51FC:
/* 802F51FC 002F0E5C  2C 1B 00 00 */	cmpwi r27, 0
/* 802F5200 002F0E60  41 82 00 1C */	beq lbl_802F521C
/* 802F5204 002F0E64  80 1B 00 00 */	lwz r0, 0(r27)
/* 802F5208 002F0E68  2C 00 00 00 */	cmpwi r0, 0
/* 802F520C 002F0E6C  41 82 00 10 */	beq lbl_802F521C
/* 802F5210 002F0E70  80 1B 00 04 */	lwz r0, 4(r27)
/* 802F5214 002F0E74  2C 00 00 00 */	cmpwi r0, 0
/* 802F5218 002F0E78  40 82 00 0C */	bne lbl_802F5224
lbl_802F521C:
/* 802F521C 002F0E7C  3B E0 FF E4 */	li r31, -28
/* 802F5220 002F0E80  48 00 01 08 */	b lbl_802F5328
lbl_802F5224:
/* 802F5224 002F0E84  3F 80 80 58 */	lis r28, lbl_8057AAB8@ha
/* 802F5228 002F0E88  38 80 00 00 */	li r4, 0
/* 802F522C 002F0E8C  38 7C AA B8 */	addi r3, r28, lbl_8057AAB8@l
/* 802F5230 002F0E90  38 A0 00 18 */	li r5, 0x18
/* 802F5234 002F0E94  4B D0 EE D1 */	bl memset
/* 802F5238 002F0E98  81 9B 00 00 */	lwz r12, 0(r27)
/* 802F523C 002F0E9C  3B BC AA B8 */	addi r29, r28, -21832
/* 802F5240 002F0EA0  38 80 00 00 */	li r4, 0
/* 802F5244 002F0EA4  38 60 FF FE */	li r3, -2
/* 802F5248 002F0EA8  91 9C AA B8 */	stw r12, -0x5548(r28)
/* 802F524C 002F0EAC  2C 0C 00 00 */	cmpwi r12, 0
/* 802F5250 002F0EB0  38 00 FF FF */	li r0, -1
/* 802F5254 002F0EB4  80 BB 00 04 */	lwz r5, 4(r27)
/* 802F5258 002F0EB8  90 BD 00 04 */	stw r5, 4(r29)
/* 802F525C 002F0EBC  90 9D 00 14 */	stw r4, 0x14(r29)
/* 802F5260 002F0EC0  90 7D 00 08 */	stw r3, 8(r29)
/* 802F5264 002F0EC4  90 1D 00 0C */	stw r0, 0xc(r29)
/* 802F5268 002F0EC8  41 82 00 94 */	beq lbl_802F52FC
/* 802F526C 002F0ECC  38 60 00 0B */	li r3, 0xb
/* 802F5270 002F0ED0  38 80 04 60 */	li r4, 0x460
/* 802F5274 002F0ED4  7D 89 03 A6 */	mtctr r12
/* 802F5278 002F0ED8  4E 80 04 21 */	bctrl
/* 802F527C 002F0EDC  2C 03 00 00 */	cmpwi r3, 0
/* 802F5280 002F0EE0  41 82 00 80 */	beq lbl_802F5300
/* 802F5284 002F0EE4  80 9D 00 14 */	lwz r4, 0x14(r29)
/* 802F5288 002F0EE8  80 0D 8C 0C */	lwz r0, lbl_8063DECC-_SDA_BASE_(r13)
/* 802F528C 002F0EEC  38 84 00 01 */	addi r4, r4, 1
/* 802F5290 002F0EF0  2C 00 00 00 */	cmpwi r0, 0
/* 802F5294 002F0EF4  90 9D 00 14 */	stw r4, 0x14(r29)
/* 802F5298 002F0EF8  41 82 00 68 */	beq lbl_802F5300
/* 802F529C 002F0EFC  54 64 00 FE */	clrlwi r4, r3, 3
/* 802F52A0 002F0F00  3C 00 10 00 */	lis r0, 0x1000
/* 802F52A4 002F0F04  7C 04 00 40 */	cmplw r4, r0
/* 802F52A8 002F0F08  41 80 00 10 */	blt lbl_802F52B8
/* 802F52AC 002F0F0C  3C 00 18 00 */	lis r0, 0x1800
/* 802F52B0 002F0F10  7C 04 00 40 */	cmplw r4, r0
/* 802F52B4 002F0F14  41 80 00 4C */	blt lbl_802F5300
lbl_802F52B8:
/* 802F52B8 002F0F18  2C 03 00 00 */	cmpwi r3, 0
/* 802F52BC 002F0F1C  41 82 00 38 */	beq lbl_802F52F4
/* 802F52C0 002F0F20  3C C0 80 58 */	lis r6, lbl_8057AAB8@ha
/* 802F52C4 002F0F24  38 C6 AA B8 */	addi r6, r6, lbl_8057AAB8@l
/* 802F52C8 002F0F28  81 86 00 04 */	lwz r12, 4(r6)
/* 802F52CC 002F0F2C  2C 0C 00 00 */	cmpwi r12, 0
/* 802F52D0 002F0F30  41 82 00 24 */	beq lbl_802F52F4
/* 802F52D4 002F0F34  80 A6 00 14 */	lwz r5, 0x14(r6)
/* 802F52D8 002F0F38  7C 64 1B 78 */	mr r4, r3
/* 802F52DC 002F0F3C  38 60 00 0B */	li r3, 0xb
/* 802F52E0 002F0F40  38 05 FF FF */	addi r0, r5, -1
/* 802F52E4 002F0F44  38 A0 04 60 */	li r5, 0x460
/* 802F52E8 002F0F48  90 06 00 14 */	stw r0, 0x14(r6)
/* 802F52EC 002F0F4C  7D 89 03 A6 */	mtctr r12
/* 802F52F0 002F0F50  4E 80 04 21 */	bctrl
lbl_802F52F4:
/* 802F52F4 002F0F54  38 60 00 00 */	li r3, 0
/* 802F52F8 002F0F58  48 00 00 08 */	b lbl_802F5300
lbl_802F52FC:
/* 802F52FC 002F0F5C  38 60 00 00 */	li r3, 0
lbl_802F5300:
/* 802F5300 002F0F60  3C 80 80 58 */	lis r4, lbl_8057AAB8@ha
/* 802F5304 002F0F64  2C 03 00 00 */	cmpwi r3, 0
/* 802F5308 002F0F68  38 84 AA B8 */	addi r4, r4, lbl_8057AAB8@l
/* 802F530C 002F0F6C  90 64 00 10 */	stw r3, 0x10(r4)
/* 802F5310 002F0F70  40 82 00 08 */	bne lbl_802F5318
/* 802F5314 002F0F74  3B E0 FF CF */	li r31, -49
lbl_802F5318:
/* 802F5318 002F0F78  2C 03 00 00 */	cmpwi r3, 0
/* 802F531C 002F0F7C  41 82 00 0C */	beq lbl_802F5328
/* 802F5320 002F0F80  38 00 00 01 */	li r0, 1
/* 802F5324 002F0F84  98 0D AF 58 */	stb r0, lbl_80640218-_SDA_BASE_(r13)
lbl_802F5328:
/* 802F5328 002F0F88  4B F7 BF D1 */	bl OSGetCurrentThread
/* 802F532C 002F0F8C  2C 03 00 00 */	cmpwi r3, 0
/* 802F5330 002F0F90  41 82 00 0C */	beq lbl_802F533C
/* 802F5334 002F0F94  93 E3 03 0C */	stw r31, 0x30c(r3)
/* 802F5338 002F0F98  48 00 00 08 */	b lbl_802F5340
lbl_802F533C:
/* 802F533C 002F0F9C  93 ED AF 5C */	stw r31, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F5340:
/* 802F5340 002F0FA0  7F C3 F3 78 */	mr r3, r30
/* 802F5344 002F0FA4  4B F7 94 41 */	bl OSRestoreInterrupts
/* 802F5348 002F0FA8  39 61 00 20 */	addi r11, r1, 0x20
/* 802F534C 002F0FAC  7F E3 FB 78 */	mr r3, r31
/* 802F5350 002F0FB0  4B ED 1E 25 */	bl _restgpr_27
/* 802F5354 002F0FB4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F5358 002F0FB8  7C 08 03 A6 */	mtlr r0
/* 802F535C 002F0FBC  38 21 00 20 */	addi r1, r1, 0x20
/* 802F5360 002F0FC0  4E 80 00 20 */	blr

.global SOFinish
SOFinish:
/* 802F5364 002F0FC4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802F5368 002F0FC8  7C 08 02 A6 */	mflr r0
/* 802F536C 002F0FCC  90 01 00 14 */	stw r0, 0x14(r1)
/* 802F5370 002F0FD0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802F5374 002F0FD4  3B E0 00 00 */	li r31, 0
/* 802F5378 002F0FD8  93 C1 00 08 */	stw r30, 8(r1)
/* 802F537C 002F0FDC  4B F7 93 E1 */	bl OSDisableInterrupts
/* 802F5380 002F0FE0  88 0D AF 58 */	lbz r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F5384 002F0FE4  7C 7E 1B 78 */	mr r30, r3
/* 802F5388 002F0FE8  2C 00 00 01 */	cmpwi r0, 1
/* 802F538C 002F0FEC  41 82 00 28 */	beq lbl_802F53B4
/* 802F5390 002F0FF0  40 80 00 10 */	bge lbl_802F53A0
/* 802F5394 002F0FF4  2C 00 00 00 */	cmpwi r0, 0
/* 802F5398 002F0FF8  40 80 00 14 */	bge lbl_802F53AC
/* 802F539C 002F0FFC  48 00 00 88 */	b lbl_802F5424
lbl_802F53A0:
/* 802F53A0 002F1000  2C 00 00 03 */	cmpwi r0, 3
/* 802F53A4 002F1004  40 80 00 80 */	bge lbl_802F5424
/* 802F53A8 002F1008  48 00 00 78 */	b lbl_802F5420
lbl_802F53AC:
/* 802F53AC 002F100C  3B E0 FF F9 */	li r31, -7
/* 802F53B0 002F1010  48 00 00 74 */	b lbl_802F5424
lbl_802F53B4:
/* 802F53B4 002F1014  3C A0 80 58 */	lis r5, lbl_8057AAB8@ha
/* 802F53B8 002F1018  38 A5 AA B8 */	addi r5, r5, lbl_8057AAB8@l
/* 802F53BC 002F101C  80 05 00 08 */	lwz r0, 8(r5)
/* 802F53C0 002F1020  2C 00 FF FE */	cmpwi r0, -2
/* 802F53C4 002F1024  40 81 00 0C */	ble lbl_802F53D0
/* 802F53C8 002F1028  3B E0 FF F6 */	li r31, -10
/* 802F53CC 002F102C  48 00 00 58 */	b lbl_802F5424
lbl_802F53D0:
/* 802F53D0 002F1030  80 65 00 14 */	lwz r3, 0x14(r5)
/* 802F53D4 002F1034  2C 03 00 01 */	cmpwi r3, 1
/* 802F53D8 002F1038  40 81 00 0C */	ble lbl_802F53E4
/* 802F53DC 002F103C  3B E0 FF FA */	li r31, -6
/* 802F53E0 002F1040  48 00 00 44 */	b lbl_802F5424
lbl_802F53E4:
/* 802F53E4 002F1044  80 85 00 10 */	lwz r4, 0x10(r5)
/* 802F53E8 002F1048  38 00 00 00 */	li r0, 0
/* 802F53EC 002F104C  98 0D AF 58 */	stb r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F53F0 002F1050  2C 04 00 00 */	cmpwi r4, 0
/* 802F53F4 002F1054  41 82 00 30 */	beq lbl_802F5424
/* 802F53F8 002F1058  81 85 00 04 */	lwz r12, 4(r5)
/* 802F53FC 002F105C  2C 0C 00 00 */	cmpwi r12, 0
/* 802F5400 002F1060  41 82 00 24 */	beq lbl_802F5424
/* 802F5404 002F1064  38 03 FF FF */	addi r0, r3, -1
/* 802F5408 002F1068  38 60 00 0B */	li r3, 0xb
/* 802F540C 002F106C  90 05 00 14 */	stw r0, 0x14(r5)
/* 802F5410 002F1070  38 A0 04 60 */	li r5, 0x460
/* 802F5414 002F1074  7D 89 03 A6 */	mtctr r12
/* 802F5418 002F1078  4E 80 04 21 */	bctrl
/* 802F541C 002F107C  48 00 00 08 */	b lbl_802F5424
lbl_802F5420:
/* 802F5420 002F1080  3B E0 FF E6 */	li r31, -26
lbl_802F5424:
/* 802F5424 002F1084  4B F7 BE D5 */	bl OSGetCurrentThread
/* 802F5428 002F1088  2C 03 00 00 */	cmpwi r3, 0
/* 802F542C 002F108C  41 82 00 0C */	beq lbl_802F5438
/* 802F5430 002F1090  93 E3 03 0C */	stw r31, 0x30c(r3)
/* 802F5434 002F1094  48 00 00 08 */	b lbl_802F543C
lbl_802F5438:
/* 802F5438 002F1098  93 ED AF 5C */	stw r31, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F543C:
/* 802F543C 002F109C  7F C3 F3 78 */	mr r3, r30
/* 802F5440 002F10A0  4B F7 93 45 */	bl OSRestoreInterrupts
/* 802F5444 002F10A4  7F E3 FB 78 */	mr r3, r31
/* 802F5448 002F10A8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802F544C 002F10AC  83 C1 00 08 */	lwz r30, 8(r1)
/* 802F5450 002F10B0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802F5454 002F10B4  7C 08 03 A6 */	mtlr r0
/* 802F5458 002F10B8  38 21 00 10 */	addi r1, r1, 0x10
/* 802F545C 002F10BC  4E 80 00 20 */	blr

.global SOStartup
SOStartup:
/* 802F5460 002F10C0  3C 60 00 09 */	lis r3, 0x000927C0@ha
/* 802F5464 002F10C4  38 63 27 C0 */	addi r3, r3, 0x000927C0@l
/* 802F5468 002F10C8  48 00 00 04 */	b SOStartupEx

SOStartupEx:
/* 802F546C 002F10CC  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 802F5470 002F10D0  7C 08 02 A6 */	mflr r0
/* 802F5474 002F10D4  90 01 00 64 */	stw r0, 0x64(r1)
/* 802F5478 002F10D8  39 61 00 60 */	addi r11, r1, 0x60
/* 802F547C 002F10DC  4B ED 1C 79 */	bl __save_gpr
/* 802F5480 002F10E0  2C 03 00 00 */	cmpwi r3, 0
/* 802F5484 002F10E4  7C 6E 1B 78 */	mr r14, r3
/* 802F5488 002F10E8  3A 00 00 00 */	li r16, 0
/* 802F548C 002F10EC  3A 20 00 00 */	li r17, 0
/* 802F5490 002F10F0  41 82 00 34 */	beq lbl_802F54C4
/* 802F5494 002F10F4  4B F7 D3 45 */	bl __OSGetSystemTime
/* 802F5498 002F10F8  3C C0 80 00 */	lis r6, 0x800000F8@ha
/* 802F549C 002F10FC  3C A0 10 62 */	lis r5, 0x10624DD3@ha
/* 802F54A0 002F1100  80 C6 00 F8 */	lwz r6, 0x800000F8@l(r6)
/* 802F54A4 002F1104  38 E5 4D D3 */	addi r7, r5, 0x10624DD3@l
/* 802F54A8 002F1108  38 00 00 00 */	li r0, 0
/* 802F54AC 002F110C  54 C5 F0 BE */	srwi r5, r6, 2
/* 802F54B0 002F1110  7C A7 28 16 */	mulhwu r5, r7, r5
/* 802F54B4 002F1114  54 A5 D1 BE */	srwi r5, r5, 6
/* 802F54B8 002F1118  7C AE 29 D6 */	mullw r5, r14, r5
/* 802F54BC 002F111C  7E 05 20 14 */	addc r16, r5, r4
/* 802F54C0 002F1120  7E 20 19 14 */	adde r17, r0, r3
lbl_802F54C4:
/* 802F54C4 002F1124  3C 60 80 58 */	lis r3, lbl_8057AAB8@ha
/* 802F54C8 002F1128  39 E0 00 04 */	li r15, 4
/* 802F54CC 002F112C  3E 80 80 00 */	lis r20, 0x8000
/* 802F54D0 002F1130  3E A0 10 62 */	lis r21, 0x1062
/* 802F54D4 002F1134  3B 23 AA B8 */	addi r25, r3, lbl_8057AAB8@l
/* 802F54D8 002F1138  3A C0 00 00 */	li r22, 0
/* 802F54DC 002F113C  3A E0 00 64 */	li r23, 0x64
/* 802F54E0 002F1140  3F 00 80 44 */	lis r24, 0x8044
/* 802F54E4 002F1144  3A 60 FF FF */	li r19, -1
/* 802F54E8 002F1148  3F E0 80 44 */	lis r31, 0x8044
/* 802F54EC 002F114C  39 C0 00 02 */	li r14, 2
lbl_802F54F0:
/* 802F54F0 002F1150  4B F7 92 6D */	bl OSDisableInterrupts
/* 802F54F4 002F1154  88 0D AF 58 */	lbz r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F54F8 002F1158  7C 7A 1B 78 */	mr r26, r3
/* 802F54FC 002F115C  2C 00 00 01 */	cmpwi r0, 1
/* 802F5500 002F1160  41 82 00 28 */	beq lbl_802F5528
/* 802F5504 002F1164  40 80 00 08 */	bge lbl_802F550C
/* 802F5508 002F1168  48 00 00 10 */	b lbl_802F5518
lbl_802F550C:
/* 802F550C 002F116C  2C 00 00 03 */	cmpwi r0, 3
/* 802F5510 002F1170  40 80 00 08 */	bge lbl_802F5518
/* 802F5514 002F1174  48 00 00 0C */	b lbl_802F5520
lbl_802F5518:
/* 802F5518 002F1178  3A 40 FF D9 */	li r18, -39
/* 802F551C 002F117C  48 00 02 8C */	b lbl_802F57A8
lbl_802F5520:
/* 802F5520 002F1180  3A 40 FF F9 */	li r18, -7
/* 802F5524 002F1184  48 00 02 84 */	b lbl_802F57A8
lbl_802F5528:
/* 802F5528 002F1188  80 19 00 08 */	lwz r0, 8(r25)
/* 802F552C 002F118C  2C 00 FF FE */	cmpwi r0, -2
/* 802F5530 002F1190  40 81 00 0C */	ble lbl_802F553C
/* 802F5534 002F1194  3A 40 FF F6 */	li r18, -10
/* 802F5538 002F1198  48 00 02 70 */	b lbl_802F57A8
lbl_802F553C:
/* 802F553C 002F119C  4B F7 BD BD */	bl OSGetCurrentThread
/* 802F5540 002F11A0  2C 03 00 00 */	cmpwi r3, 0
/* 802F5544 002F11A4  40 82 00 0C */	bne lbl_802F5550
/* 802F5548 002F11A8  3E 40 80 00 */	lis r18, 0x8000
/* 802F554C 002F11AC  48 00 02 5C */	b lbl_802F57A8
lbl_802F5550:
/* 802F5550 002F11B0  92 79 00 08 */	stw r19, 8(r25)
/* 802F5554 002F11B4  7F 43 D3 78 */	mr r3, r26
/* 802F5558 002F11B8  4B F7 92 2D */	bl OSRestoreInterrupts
/* 802F555C 002F11BC  7F 56 B9 D6 */	mullw r26, r22, r23
/* 802F5560 002F11C0  3B 75 4D D3 */	addi r27, r21, 0x4dd3
/* 802F5564 002F11C4  7E 12 8B 78 */	or r18, r16, r17
/* 802F5568 002F11C8  6E 3D 80 00 */	xoris r29, r17, 0x8000
lbl_802F556C:
/* 802F556C 002F11CC  4B FF 7F B9 */	bl NCDGetLinkStatus
/* 802F5570 002F11D0  2C 03 FF F8 */	cmpwi r3, -8
/* 802F5574 002F11D4  7C 7C 1B 78 */	mr r28, r3
/* 802F5578 002F11D8  41 82 00 0C */	beq lbl_802F5584
/* 802F557C 002F11DC  2C 03 00 01 */	cmpwi r3, 1
/* 802F5580 002F11E0  40 82 00 60 */	bne lbl_802F55E0
lbl_802F5584:
/* 802F5584 002F11E4  80 14 00 F8 */	lwz r0, 0xf8(r20)
/* 802F5588 002F11E8  54 00 F0 BE */	srwi r0, r0, 2
/* 802F558C 002F11EC  7C 1B 00 16 */	mulhwu r0, r27, r0
/* 802F5590 002F11F0  54 03 D1 BE */	srwi r3, r0, 6
/* 802F5594 002F11F4  7C 03 B8 16 */	mulhwu r0, r3, r23
/* 802F5598 002F11F8  1C 83 00 64 */	mulli r4, r3, 0x64
/* 802F559C 002F11FC  7C 60 D2 14 */	add r3, r0, r26
/* 802F55A0 002F1200  4B F7 D1 65 */	bl OSSleepTicks
/* 802F55A4 002F1204  2C 12 00 00 */	cmpwi r18, 0
/* 802F55A8 002F1208  41 82 FF C4 */	beq lbl_802F556C
/* 802F55AC 002F120C  4B F7 D2 2D */	bl __OSGetSystemTime
/* 802F55B0 002F1210  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 802F55B4 002F1214  7C 04 80 10 */	subfc r0, r4, r16
/* 802F55B8 002F1218  7C 63 E9 10 */	subfe r3, r3, r29
/* 802F55BC 002F121C  7C 7D E9 10 */	subfe r3, r29, r29
/* 802F55C0 002F1220  7C 63 00 D1 */	neg. r3, r3
/* 802F55C4 002F1224  41 82 FF A8 */	beq lbl_802F556C
/* 802F55C8 002F1228  2C 1C 00 01 */	cmpwi r28, 1
/* 802F55CC 002F122C  40 82 00 0C */	bne lbl_802F55D8
/* 802F55D0 002F1230  3A 40 FF 87 */	li r18, -121
/* 802F55D4 002F1234  48 00 01 9C */	b lbl_802F5770
lbl_802F55D8:
/* 802F55D8 002F1238  3E 40 80 00 */	lis r18, 0x8000
/* 802F55DC 002F123C  48 00 01 94 */	b lbl_802F5770
lbl_802F55E0:
/* 802F55E0 002F1240  2C 03 00 00 */	cmpwi r3, 0
/* 802F55E4 002F1244  40 80 00 0C */	bge lbl_802F55F0
/* 802F55E8 002F1248  3E 40 80 00 */	lis r18, 0x8000
/* 802F55EC 002F124C  48 00 01 84 */	b lbl_802F5770
lbl_802F55F0:
/* 802F55F0 002F1250  2C 03 00 02 */	cmpwi r3, 2
/* 802F55F4 002F1254  40 82 00 0C */	bne lbl_802F5600
/* 802F55F8 002F1258  3A 40 FF D3 */	li r18, -45
/* 802F55FC 002F125C  48 00 01 74 */	b lbl_802F5770
lbl_802F5600:
/* 802F5600 002F1260  7F 56 B9 D6 */	mullw r26, r22, r23
/* 802F5604 002F1264  3B 75 4D D3 */	addi r27, r21, 0x4dd3
/* 802F5608 002F1268  7E 12 8B 78 */	or r18, r16, r17
/* 802F560C 002F126C  6E 3C 80 00 */	xoris r28, r17, 0x8000
lbl_802F5610:
/* 802F5610 002F1270  38 78 5E 48 */	addi r3, r24, 0x5e48
/* 802F5614 002F1274  38 80 00 00 */	li r4, 0
/* 802F5618 002F1278  4B FA DB 41 */	bl IOS_Open
/* 802F561C 002F127C  2C 03 FF FA */	cmpwi r3, -6
/* 802F5620 002F1280  90 79 00 0C */	stw r3, 0xc(r25)
/* 802F5624 002F1284  40 82 00 50 */	bne lbl_802F5674
/* 802F5628 002F1288  80 14 00 F8 */	lwz r0, 0xf8(r20)
/* 802F562C 002F128C  54 00 F0 BE */	srwi r0, r0, 2
/* 802F5630 002F1290  7C 1B 00 16 */	mulhwu r0, r27, r0
/* 802F5634 002F1294  54 03 D1 BE */	srwi r3, r0, 6
/* 802F5638 002F1298  7C 03 B8 16 */	mulhwu r0, r3, r23
/* 802F563C 002F129C  1C 83 00 64 */	mulli r4, r3, 0x64
/* 802F5640 002F12A0  7C 60 D2 14 */	add r3, r0, r26
/* 802F5644 002F12A4  4B F7 D0 C1 */	bl OSSleepTicks
/* 802F5648 002F12A8  2C 12 00 00 */	cmpwi r18, 0
/* 802F564C 002F12AC  41 82 FF C4 */	beq lbl_802F5610
/* 802F5650 002F12B0  4B F7 D1 89 */	bl __OSGetSystemTime
/* 802F5654 002F12B4  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 802F5658 002F12B8  7C 04 80 10 */	subfc r0, r4, r16
/* 802F565C 002F12BC  7C 63 E1 10 */	subfe r3, r3, r28
/* 802F5660 002F12C0  7C 7C E1 10 */	subfe r3, r28, r28
/* 802F5664 002F12C4  7C 63 00 D1 */	neg. r3, r3
/* 802F5668 002F12C8  41 82 FF A8 */	beq lbl_802F5610
/* 802F566C 002F12CC  3E 40 80 00 */	lis r18, 0x8000
/* 802F5670 002F12D0  48 00 01 00 */	b lbl_802F5770
lbl_802F5674:
/* 802F5674 002F12D4  2C 03 00 00 */	cmpwi r3, 0
/* 802F5678 002F12D8  40 80 00 0C */	bge lbl_802F5684
/* 802F567C 002F12DC  3E 40 80 00 */	lis r18, 0x8000
/* 802F5680 002F12E0  48 00 00 F0 */	b lbl_802F5770
lbl_802F5684:
/* 802F5684 002F12E4  7F 96 B9 D6 */	mullw r28, r22, r23
/* 802F5688 002F12E8  3A 40 00 00 */	li r18, 0
/* 802F568C 002F12EC  92 41 00 08 */	stw r18, 8(r1)
/* 802F5690 002F12F0  3B 75 4D D3 */	addi r27, r21, 0x4dd3
/* 802F5694 002F12F4  7E 1D 8B 78 */	or r29, r16, r17
/* 802F5698 002F12F8  6E 3E 80 00 */	xoris r30, r17, 0x8000
lbl_802F569C:
/* 802F569C 002F12FC  38 61 00 08 */	addi r3, r1, 8
/* 802F56A0 002F1300  48 00 E6 D1 */	bl NWC24iStartupSocket
/* 802F56A4 002F1304  2C 03 FF E3 */	cmpwi r3, -29
/* 802F56A8 002F1308  7C 7A 1B 78 */	mr r26, r3
/* 802F56AC 002F130C  40 82 00 4C */	bne lbl_802F56F8
/* 802F56B0 002F1310  80 14 00 F8 */	lwz r0, 0xf8(r20)
/* 802F56B4 002F1314  54 00 F0 BE */	srwi r0, r0, 2
/* 802F56B8 002F1318  7C 1B 00 16 */	mulhwu r0, r27, r0
/* 802F56BC 002F131C  54 03 D1 BE */	srwi r3, r0, 6
/* 802F56C0 002F1320  7C 03 B8 16 */	mulhwu r0, r3, r23
/* 802F56C4 002F1324  1C 83 00 64 */	mulli r4, r3, 0x64
/* 802F56C8 002F1328  7C 60 E2 14 */	add r3, r0, r28
/* 802F56CC 002F132C  4B F7 D0 39 */	bl OSSleepTicks
/* 802F56D0 002F1330  2C 1D 00 00 */	cmpwi r29, 0
/* 802F56D4 002F1334  41 82 FF C8 */	beq lbl_802F569C
/* 802F56D8 002F1338  4B F7 D1 01 */	bl __OSGetSystemTime
/* 802F56DC 002F133C  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 802F56E0 002F1340  7C 04 80 10 */	subfc r0, r4, r16
/* 802F56E4 002F1344  7C 63 F1 10 */	subfe r3, r3, r30
/* 802F56E8 002F1348  7C 7E F1 10 */	subfe r3, r30, r30
/* 802F56EC 002F134C  7C 63 00 D1 */	neg. r3, r3
/* 802F56F0 002F1350  41 82 FF AC */	beq lbl_802F569C
/* 802F56F4 002F1354  3E 40 80 00 */	lis r18, 0x8000
lbl_802F56F8:
/* 802F56F8 002F1358  2C 12 00 00 */	cmpwi r18, 0
/* 802F56FC 002F135C  40 82 00 50 */	bne lbl_802F574C
/* 802F5700 002F1360  38 1A 00 21 */	addi r0, r26, 0x21
/* 802F5704 002F1364  80 81 00 08 */	lwz r4, 8(r1)
/* 802F5708 002F1368  28 00 00 21 */	cmplwi r0, 0x21
/* 802F570C 002F136C  3A 40 FF E4 */	li r18, -28
/* 802F5710 002F1370  41 81 00 3C */	bgt lbl_802F574C
/* 802F5714 002F1374  38 7F 5E 58 */	addi r3, r31, 0x5e58
/* 802F5718 002F1378  54 00 10 3A */	slwi r0, r0, 2
/* 802F571C 002F137C  7C 63 00 2E */	lwzx r3, r3, r0
/* 802F5720 002F1380  7C 69 03 A6 */	mtctr r3
/* 802F5724 002F1384  4E 80 04 20 */	bctr
/* 802F5728 002F1388  3A 40 00 00 */	li r18, 0
/* 802F572C 002F138C  48 00 00 20 */	b lbl_802F574C
/* 802F5730 002F1390  3A 40 FF D0 */	li r18, -48
/* 802F5734 002F1394  48 00 00 18 */	b lbl_802F574C
/* 802F5738 002F1398  7C 92 23 78 */	mr r18, r4
/* 802F573C 002F139C  48 00 00 10 */	b lbl_802F574C
/* 802F5740 002F13A0  3E 40 80 00 */	lis r18, 0x8000
/* 802F5744 002F13A4  48 00 00 08 */	b lbl_802F574C
/* 802F5748 002F13A8  3A 40 FF E6 */	li r18, -26
lbl_802F574C:
/* 802F574C 002F13AC  2C 12 00 00 */	cmpwi r18, 0
/* 802F5750 002F13B0  41 82 00 20 */	beq lbl_802F5770
/* 802F5754 002F13B4  80 79 00 0C */	lwz r3, 0xc(r25)
/* 802F5758 002F13B8  4B FA DB E1 */	bl IOS_Close
/* 802F575C 002F13BC  2C 03 00 00 */	cmpwi r3, 0
/* 802F5760 002F13C0  40 80 00 0C */	bge lbl_802F576C
/* 802F5764 002F13C4  3E 40 80 00 */	lis r18, 0x8000
/* 802F5768 002F13C8  48 00 00 08 */	b lbl_802F5770
lbl_802F576C:
/* 802F576C 002F13CC  92 79 00 0C */	stw r19, 0xc(r25)
lbl_802F5770:
/* 802F5770 002F13D0  4B F7 8F ED */	bl OSDisableInterrupts
/* 802F5774 002F13D4  2C 12 00 00 */	cmpwi r18, 0
/* 802F5778 002F13D8  7C 7A 1B 78 */	mr r26, r3
/* 802F577C 002F13DC  40 82 00 10 */	bne lbl_802F578C
/* 802F5780 002F13E0  99 CD AF 58 */	stb r14, lbl_80640218-_SDA_BASE_(r13)
/* 802F5784 002F13E4  92 D9 00 08 */	stw r22, 8(r25)
/* 802F5788 002F13E8  48 00 00 20 */	b lbl_802F57A8
lbl_802F578C:
/* 802F578C 002F13EC  3C 72 80 00 */	addis r3, r18, 0x8000
/* 802F5790 002F13F0  38 00 00 01 */	li r0, 1
/* 802F5794 002F13F4  28 03 00 00 */	cmplwi r3, 0
/* 802F5798 002F13F8  98 0D AF 58 */	stb r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F579C 002F13FC  41 82 00 0C */	beq lbl_802F57A8
/* 802F57A0 002F1400  38 00 FF FE */	li r0, -2
/* 802F57A4 002F1404  90 19 00 08 */	stw r0, 8(r25)
lbl_802F57A8:
/* 802F57A8 002F1408  4B F7 BB 51 */	bl OSGetCurrentThread
/* 802F57AC 002F140C  2C 03 00 00 */	cmpwi r3, 0
/* 802F57B0 002F1410  41 82 00 0C */	beq lbl_802F57BC
/* 802F57B4 002F1414  92 43 03 0C */	stw r18, 0x30c(r3)
/* 802F57B8 002F1418  48 00 00 08 */	b lbl_802F57C0
lbl_802F57BC:
/* 802F57BC 002F141C  92 4D AF 5C */	stw r18, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F57C0:
/* 802F57C0 002F1420  7F 43 D3 78 */	mr r3, r26
/* 802F57C4 002F1424  4B F7 8F C1 */	bl OSRestoreInterrupts
/* 802F57C8 002F1428  2C 12 00 00 */	cmpwi r18, 0
/* 802F57CC 002F142C  40 82 00 84 */	bne lbl_802F5850
/* 802F57D0 002F1430  7E 00 8B 79 */	or. r0, r16, r17
/* 802F57D4 002F1434  41 82 00 14 */	beq lbl_802F57E8
/* 802F57D8 002F1438  4B F7 D0 01 */	bl __OSGetSystemTime
/* 802F57DC 002F143C  7C 84 80 10 */	subfc r4, r4, r16
/* 802F57E0 002F1440  7C 63 89 10 */	subfe r3, r3, r17
/* 802F57E4 002F1444  48 00 00 0C */	b lbl_802F57F0
lbl_802F57E8:
/* 802F57E8 002F1448  38 80 00 00 */	li r4, 0
/* 802F57EC 002F144C  7C 83 23 78 */	mr r3, r4
lbl_802F57F0:
/* 802F57F0 002F1450  7E 00 8B 79 */	or. r0, r16, r17
/* 802F57F4 002F1454  41 82 00 28 */	beq lbl_802F581C
/* 802F57F8 002F1458  6E C0 80 00 */	xoris r0, r22, 0x8000
/* 802F57FC 002F145C  6C 66 80 00 */	xoris r6, r3, 0x8000
/* 802F5800 002F1460  7C A4 B0 10 */	subfc r5, r4, r22
/* 802F5804 002F1464  7C C6 01 10 */	subfe r6, r6, r0
/* 802F5808 002F1468  7C C0 01 10 */	subfe r6, r0, r0
/* 802F580C 002F146C  7C C6 00 D1 */	neg. r6, r6
/* 802F5810 002F1470  40 82 00 0C */	bne lbl_802F581C
/* 802F5814 002F1474  3A 40 FF B4 */	li r18, -76
/* 802F5818 002F1478  48 00 00 2C */	b lbl_802F5844
lbl_802F581C:
/* 802F581C 002F147C  80 14 00 F8 */	lwz r0, 0xf8(r20)
/* 802F5820 002F1480  38 D5 4D D3 */	addi r6, r21, 0x4dd3
/* 802F5824 002F1484  38 A0 00 00 */	li r5, 0
/* 802F5828 002F1488  54 00 F0 BE */	srwi r0, r0, 2
/* 802F582C 002F148C  7C 06 00 16 */	mulhwu r0, r6, r0
/* 802F5830 002F1490  54 06 D1 BE */	srwi r6, r0, 6
/* 802F5834 002F1494  4B ED 1A 45 */	bl __div2i
/* 802F5838 002F1498  7C 83 23 78 */	mr r3, r4
/* 802F583C 002F149C  48 00 08 89 */	bl SOiWaitForDHCPEx
/* 802F5840 002F14A0  7C 72 1B 78 */	mr r18, r3
lbl_802F5844:
/* 802F5844 002F14A4  2C 12 00 00 */	cmpwi r18, 0
/* 802F5848 002F14A8  41 82 00 08 */	beq lbl_802F5850
/* 802F584C 002F14AC  48 00 00 49 */	bl SOCleanup
lbl_802F5850:
/* 802F5850 002F14B0  4B F7 BA A9 */	bl OSGetCurrentThread
/* 802F5854 002F14B4  2C 03 00 00 */	cmpwi r3, 0
/* 802F5858 002F14B8  41 82 00 0C */	beq lbl_802F5864
/* 802F585C 002F14BC  92 43 03 0C */	stw r18, 0x30c(r3)
/* 802F5860 002F14C0  48 00 00 08 */	b lbl_802F5868
lbl_802F5864:
/* 802F5864 002F14C4  92 4D AF 5C */	stw r18, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F5868:
/* 802F5868 002F14C8  2C 12 FF 90 */	cmpwi r18, -112
/* 802F586C 002F14CC  40 82 00 0C */	bne lbl_802F5878
/* 802F5870 002F14D0  35 EF FF FF */	addic. r15, r15, -1
/* 802F5874 002F14D4  40 80 FC 7C */	bge lbl_802F54F0
lbl_802F5878:
/* 802F5878 002F14D8  39 61 00 60 */	addi r11, r1, 0x60
/* 802F587C 002F14DC  7E 43 93 78 */	mr r3, r18
/* 802F5880 002F14E0  4B ED 18 C1 */	bl __restore_gpr
/* 802F5884 002F14E4  80 01 00 64 */	lwz r0, 0x64(r1)
/* 802F5888 002F14E8  7C 08 03 A6 */	mtlr r0
/* 802F588C 002F14EC  38 21 00 60 */	addi r1, r1, 0x60
/* 802F5890 002F14F0  4E 80 00 20 */	blr

.global SOCleanup
SOCleanup:
/* 802F5894 002F14F4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F5898 002F14F8  7C 08 02 A6 */	mflr r0
/* 802F589C 002F14FC  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F58A0 002F1500  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802F58A4 002F1504  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802F58A8 002F1508  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802F58AC 002F150C  4B F7 8E B1 */	bl OSDisableInterrupts
/* 802F58B0 002F1510  88 0D AF 58 */	lbz r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F58B4 002F1514  38 80 00 00 */	li r4, 0
/* 802F58B8 002F1518  90 81 00 08 */	stw r4, 8(r1)
/* 802F58BC 002F151C  7C 7D 1B 78 */	mr r29, r3
/* 802F58C0 002F1520  2C 00 00 01 */	cmpwi r0, 1
/* 802F58C4 002F1524  41 82 00 20 */	beq lbl_802F58E4
/* 802F58C8 002F1528  40 80 00 08 */	bge lbl_802F58D0
/* 802F58CC 002F152C  48 00 00 10 */	b lbl_802F58DC
lbl_802F58D0:
/* 802F58D0 002F1530  2C 00 00 03 */	cmpwi r0, 3
/* 802F58D4 002F1534  40 80 00 08 */	bge lbl_802F58DC
/* 802F58D8 002F1538  48 00 00 14 */	b lbl_802F58EC
lbl_802F58DC:
/* 802F58DC 002F153C  3B C0 FF D9 */	li r30, -39
/* 802F58E0 002F1540  48 00 01 24 */	b lbl_802F5A04
lbl_802F58E4:
/* 802F58E4 002F1544  3B C0 FF F9 */	li r30, -7
/* 802F58E8 002F1548  48 00 01 1C */	b lbl_802F5A04
lbl_802F58EC:
/* 802F58EC 002F154C  3F E0 80 58 */	lis r31, lbl_8057AAB8@ha
/* 802F58F0 002F1550  3B FF AA B8 */	addi r31, r31, lbl_8057AAB8@l
/* 802F58F4 002F1554  80 1F 00 08 */	lwz r0, 8(r31)
/* 802F58F8 002F1558  2C 00 00 00 */	cmpwi r0, 0
/* 802F58FC 002F155C  40 80 00 0C */	bge lbl_802F5908
/* 802F5900 002F1560  3B C0 FF F6 */	li r30, -10
/* 802F5904 002F1564  48 00 01 00 */	b lbl_802F5A04
lbl_802F5908:
/* 802F5908 002F1568  4B F7 B9 F1 */	bl OSGetCurrentThread
/* 802F590C 002F156C  2C 03 00 00 */	cmpwi r3, 0
/* 802F5910 002F1570  40 82 00 0C */	bne lbl_802F591C
/* 802F5914 002F1574  3F C0 80 00 */	lis r30, 0x8000
/* 802F5918 002F1578  48 00 00 EC */	b lbl_802F5A04
lbl_802F591C:
/* 802F591C 002F157C  38 00 FF FF */	li r0, -1
/* 802F5920 002F1580  7F A3 EB 78 */	mr r3, r29
/* 802F5924 002F1584  90 1F 00 08 */	stw r0, 8(r31)
/* 802F5928 002F1588  4B F7 8E 5D */	bl OSRestoreInterrupts
/* 802F592C 002F158C  38 61 00 08 */	addi r3, r1, 8
/* 802F5930 002F1590  48 00 E4 51 */	bl NWC24iCleanupSocket
/* 802F5934 002F1594  38 03 00 21 */	addi r0, r3, 0x21
/* 802F5938 002F1598  80 81 00 08 */	lwz r4, 8(r1)
/* 802F593C 002F159C  28 00 00 21 */	cmplwi r0, 0x21
/* 802F5940 002F15A0  3B C0 FF E4 */	li r30, -28
/* 802F5944 002F15A4  41 81 00 40 */	bgt lbl_802F5984
/* 802F5948 002F15A8  3C 60 80 44 */	lis r3, lbl_80445EE0@ha
/* 802F594C 002F15AC  54 00 10 3A */	slwi r0, r0, 2
/* 802F5950 002F15B0  38 63 5E E0 */	addi r3, r3, lbl_80445EE0@l
/* 802F5954 002F15B4  7C 63 00 2E */	lwzx r3, r3, r0
/* 802F5958 002F15B8  7C 69 03 A6 */	mtctr r3
/* 802F595C 002F15BC  4E 80 04 20 */	bctr
/* 802F5960 002F15C0  3B C0 00 00 */	li r30, 0
/* 802F5964 002F15C4  48 00 00 20 */	b lbl_802F5984
/* 802F5968 002F15C8  3B C0 FF D0 */	li r30, -48
/* 802F596C 002F15CC  48 00 00 18 */	b lbl_802F5984
/* 802F5970 002F15D0  7C 9E 23 78 */	mr r30, r4
/* 802F5974 002F15D4  48 00 00 10 */	b lbl_802F5984
/* 802F5978 002F15D8  3F C0 80 00 */	lis r30, 0x8000
/* 802F597C 002F15DC  48 00 00 08 */	b lbl_802F5984
/* 802F5980 002F15E0  3B C0 FF E6 */	li r30, -26
lbl_802F5984:
/* 802F5984 002F15E4  2C 1E 00 00 */	cmpwi r30, 0
/* 802F5988 002F15E8  40 82 00 2C */	bne lbl_802F59B4
/* 802F598C 002F15EC  3F E0 80 58 */	lis r31, lbl_8057AAB8@ha
/* 802F5990 002F15F0  3B FF AA B8 */	addi r31, r31, lbl_8057AAB8@l
/* 802F5994 002F15F4  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 802F5998 002F15F8  4B FA D9 A1 */	bl IOS_Close
/* 802F599C 002F15FC  2C 03 00 00 */	cmpwi r3, 0
/* 802F59A0 002F1600  40 80 00 0C */	bge lbl_802F59AC
/* 802F59A4 002F1604  3F C0 80 00 */	lis r30, 0x8000
/* 802F59A8 002F1608  48 00 00 0C */	b lbl_802F59B4
lbl_802F59AC:
/* 802F59AC 002F160C  38 00 FF FF */	li r0, -1
/* 802F59B0 002F1610  90 1F 00 0C */	stw r0, 0xc(r31)
lbl_802F59B4:
/* 802F59B4 002F1614  4B F7 8D A9 */	bl OSDisableInterrupts
/* 802F59B8 002F1618  2C 1E 00 00 */	cmpwi r30, 0
/* 802F59BC 002F161C  7C 7D 1B 78 */	mr r29, r3
/* 802F59C0 002F1620  40 82 00 20 */	bne lbl_802F59E0
/* 802F59C4 002F1624  3C 60 80 58 */	lis r3, lbl_8057AAB8@ha
/* 802F59C8 002F1628  38 80 00 01 */	li r4, 1
/* 802F59CC 002F162C  38 63 AA B8 */	addi r3, r3, lbl_8057AAB8@l
/* 802F59D0 002F1630  38 00 FF FE */	li r0, -2
/* 802F59D4 002F1634  98 8D AF 58 */	stb r4, lbl_80640218-_SDA_BASE_(r13)
/* 802F59D8 002F1638  90 03 00 08 */	stw r0, 8(r3)
/* 802F59DC 002F163C  48 00 00 28 */	b lbl_802F5A04
lbl_802F59E0:
/* 802F59E0 002F1640  3C 1E 80 00 */	addis r0, r30, 0x8000
/* 802F59E4 002F1644  28 00 00 00 */	cmplwi r0, 0
/* 802F59E8 002F1648  41 82 00 1C */	beq lbl_802F5A04
/* 802F59EC 002F164C  3C 60 80 58 */	lis r3, lbl_8057AAB8@ha
/* 802F59F0 002F1650  38 80 00 02 */	li r4, 2
/* 802F59F4 002F1654  38 63 AA B8 */	addi r3, r3, lbl_8057AAB8@l
/* 802F59F8 002F1658  38 00 00 00 */	li r0, 0
/* 802F59FC 002F165C  98 8D AF 58 */	stb r4, lbl_80640218-_SDA_BASE_(r13)
/* 802F5A00 002F1660  90 03 00 08 */	stw r0, 8(r3)
lbl_802F5A04:
/* 802F5A04 002F1664  4B F7 B8 F5 */	bl OSGetCurrentThread
/* 802F5A08 002F1668  2C 03 00 00 */	cmpwi r3, 0
/* 802F5A0C 002F166C  41 82 00 0C */	beq lbl_802F5A18
/* 802F5A10 002F1670  93 C3 03 0C */	stw r30, 0x30c(r3)
/* 802F5A14 002F1674  48 00 00 08 */	b lbl_802F5A1C
lbl_802F5A18:
/* 802F5A18 002F1678  93 CD AF 5C */	stw r30, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F5A1C:
/* 802F5A1C 002F167C  7F A3 EB 78 */	mr r3, r29
/* 802F5A20 002F1680  4B F7 8D 65 */	bl OSRestoreInterrupts
/* 802F5A24 002F1684  7F C3 F3 78 */	mr r3, r30
/* 802F5A28 002F1688  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802F5A2C 002F168C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802F5A30 002F1690  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802F5A34 002F1694  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F5A38 002F1698  7C 08 03 A6 */	mtlr r0
/* 802F5A3C 002F169C  38 21 00 20 */	addi r1, r1, 0x20
/* 802F5A40 002F16A0  4E 80 00 20 */	blr

.global SOiGetSysWork
SOiGetSysWork:
/* 802F5A44 002F16A4  3C 60 80 58 */	lis r3, lbl_8057AAB8@ha
/* 802F5A48 002F16A8  38 63 AA B8 */	addi r3, r3, lbl_8057AAB8@l
/* 802F5A4C 002F16AC  4E 80 00 20 */	blr

.global SOiIsBufferAddrCheck
SOiIsBufferAddrCheck:
/* 802F5A50 002F16B0  80 6D 8C 0C */	lwz r3, lbl_8063DECC-_SDA_BASE_(r13)
/* 802F5A54 002F16B4  4E 80 00 20 */	blr

.global SOiIsInitialized
SOiIsInitialized:
/* 802F5A58 002F16B8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802F5A5C 002F16BC  7C 08 02 A6 */	mflr r0
/* 802F5A60 002F16C0  90 01 00 14 */	stw r0, 0x14(r1)
/* 802F5A64 002F16C4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802F5A68 002F16C8  3B E0 00 00 */	li r31, 0
/* 802F5A6C 002F16CC  4B F7 8C F1 */	bl OSDisableInterrupts
/* 802F5A70 002F16D0  88 0D AF 58 */	lbz r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F5A74 002F16D4  2C 00 00 03 */	cmpwi r0, 3
/* 802F5A78 002F16D8  40 80 00 14 */	bge lbl_802F5A8C
/* 802F5A7C 002F16DC  2C 00 00 01 */	cmpwi r0, 1
/* 802F5A80 002F16E0  40 80 00 08 */	bge lbl_802F5A88
/* 802F5A84 002F16E4  48 00 00 08 */	b lbl_802F5A8C
lbl_802F5A88:
/* 802F5A88 002F16E8  3B E0 00 01 */	li r31, 1
lbl_802F5A8C:
/* 802F5A8C 002F16EC  4B F7 8C F9 */	bl OSRestoreInterrupts
/* 802F5A90 002F16F0  7F E3 FB 78 */	mr r3, r31
/* 802F5A94 002F16F4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802F5A98 002F16F8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802F5A9C 002F16FC  7C 08 03 A6 */	mtlr r0
/* 802F5AA0 002F1700  38 21 00 10 */	addi r1, r1, 0x10
/* 802F5AA4 002F1704  4E 80 00 20 */	blr

.global SOiAlloc
SOiAlloc:
/* 802F5AA8 002F1708  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F5AAC 002F170C  7C 08 02 A6 */	mflr r0
/* 802F5AB0 002F1710  2C 04 00 00 */	cmpwi r4, 0
/* 802F5AB4 002F1714  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F5AB8 002F1718  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802F5ABC 002F171C  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802F5AC0 002F1720  7C 9E 23 78 */	mr r30, r4
/* 802F5AC4 002F1724  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802F5AC8 002F1728  7C 7D 1B 78 */	mr r29, r3
/* 802F5ACC 002F172C  40 81 00 A4 */	ble lbl_802F5B70
/* 802F5AD0 002F1730  3F E0 80 58 */	lis r31, lbl_8057AAB8@ha
/* 802F5AD4 002F1734  81 9F AA B8 */	lwz r12, lbl_8057AAB8@l(r31)
/* 802F5AD8 002F1738  2C 0C 00 00 */	cmpwi r12, 0
/* 802F5ADC 002F173C  41 82 00 94 */	beq lbl_802F5B70
/* 802F5AE0 002F1740  7D 89 03 A6 */	mtctr r12
/* 802F5AE4 002F1744  4E 80 04 21 */	bctrl
/* 802F5AE8 002F1748  2C 03 00 00 */	cmpwi r3, 0
/* 802F5AEC 002F174C  7C 64 1B 78 */	mr r4, r3
/* 802F5AF0 002F1750  41 82 00 78 */	beq lbl_802F5B68
/* 802F5AF4 002F1754  38 DF AA B8 */	addi r6, r31, -21832
/* 802F5AF8 002F1758  80 0D 8C 0C */	lwz r0, lbl_8063DECC-_SDA_BASE_(r13)
/* 802F5AFC 002F175C  80 A6 00 14 */	lwz r5, 0x14(r6)
/* 802F5B00 002F1760  2C 00 00 00 */	cmpwi r0, 0
/* 802F5B04 002F1764  38 05 00 01 */	addi r0, r5, 1
/* 802F5B08 002F1768  90 06 00 14 */	stw r0, 0x14(r6)
/* 802F5B0C 002F176C  41 82 00 5C */	beq lbl_802F5B68
/* 802F5B10 002F1770  54 65 00 FE */	clrlwi r5, r3, 3
/* 802F5B14 002F1774  3C 00 10 00 */	lis r0, 0x1000
/* 802F5B18 002F1778  7C 05 00 40 */	cmplw r5, r0
/* 802F5B1C 002F177C  41 80 00 10 */	blt lbl_802F5B2C
/* 802F5B20 002F1780  3C 00 18 00 */	lis r0, 0x1800
/* 802F5B24 002F1784  7C 05 00 40 */	cmplw r5, r0
/* 802F5B28 002F1788  41 80 00 40 */	blt lbl_802F5B68
lbl_802F5B2C:
/* 802F5B2C 002F178C  2C 03 00 00 */	cmpwi r3, 0
/* 802F5B30 002F1790  41 82 00 34 */	beq lbl_802F5B64
/* 802F5B34 002F1794  3C C0 80 58 */	lis r6, lbl_8057AAB8@ha
/* 802F5B38 002F1798  38 C6 AA B8 */	addi r6, r6, lbl_8057AAB8@l
/* 802F5B3C 002F179C  81 86 00 04 */	lwz r12, 4(r6)
/* 802F5B40 002F17A0  2C 0C 00 00 */	cmpwi r12, 0
/* 802F5B44 002F17A4  41 82 00 20 */	beq lbl_802F5B64
/* 802F5B48 002F17A8  80 A6 00 14 */	lwz r5, 0x14(r6)
/* 802F5B4C 002F17AC  7F A3 EB 78 */	mr r3, r29
/* 802F5B50 002F17B0  38 05 FF FF */	addi r0, r5, -1
/* 802F5B54 002F17B4  7F C5 F3 78 */	mr r5, r30
/* 802F5B58 002F17B8  90 06 00 14 */	stw r0, 0x14(r6)
/* 802F5B5C 002F17BC  7D 89 03 A6 */	mtctr r12
/* 802F5B60 002F17C0  4E 80 04 21 */	bctrl
lbl_802F5B64:
/* 802F5B64 002F17C4  38 80 00 00 */	li r4, 0
lbl_802F5B68:
/* 802F5B68 002F17C8  7C 83 23 78 */	mr r3, r4
/* 802F5B6C 002F17CC  48 00 00 08 */	b lbl_802F5B74
lbl_802F5B70:
/* 802F5B70 002F17D0  38 60 00 00 */	li r3, 0
lbl_802F5B74:
/* 802F5B74 002F17D4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F5B78 002F17D8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802F5B7C 002F17DC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802F5B80 002F17E0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802F5B84 002F17E4  7C 08 03 A6 */	mtlr r0
/* 802F5B88 002F17E8  38 21 00 20 */	addi r1, r1, 0x20
/* 802F5B8C 002F17EC  4E 80 00 20 */	blr

.global SOiFree
SOiFree:
/* 802F5B90 002F17F0  2C 04 00 00 */	cmpwi r4, 0
/* 802F5B94 002F17F4  4D 82 00 20 */	beqlr
/* 802F5B98 002F17F8  3C E0 80 58 */	lis r7, lbl_8057AAB8@ha
/* 802F5B9C 002F17FC  38 E7 AA B8 */	addi r7, r7, lbl_8057AAB8@l
/* 802F5BA0 002F1800  81 87 00 04 */	lwz r12, 4(r7)
/* 802F5BA4 002F1804  2C 0C 00 00 */	cmpwi r12, 0
/* 802F5BA8 002F1808  4D 82 00 20 */	beqlr
/* 802F5BAC 002F180C  80 C7 00 14 */	lwz r6, 0x14(r7)
/* 802F5BB0 002F1810  38 06 FF FF */	addi r0, r6, -1
/* 802F5BB4 002F1814  90 07 00 14 */	stw r0, 0x14(r7)
/* 802F5BB8 002F1818  7D 89 03 A6 */	mtctr r12
/* 802F5BBC 002F181C  4E 80 04 20 */	bctr
/* 802F5BC0 002F1820  4E 80 00 20 */	blr

.global SOiPrepare
SOiPrepare:
/* 802F5BC4 002F1824  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F5BC8 002F1828  7C 08 02 A6 */	mflr r0
/* 802F5BCC 002F182C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F5BD0 002F1830  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802F5BD4 002F1834  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802F5BD8 002F1838  3B C0 00 00 */	li r30, 0
/* 802F5BDC 002F183C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802F5BE0 002F1840  93 81 00 10 */	stw r28, 0x10(r1)
/* 802F5BE4 002F1844  7C 9C 23 78 */	mr r28, r4
/* 802F5BE8 002F1848  4B F7 8B 75 */	bl OSDisableInterrupts
/* 802F5BEC 002F184C  88 0D AF 58 */	lbz r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F5BF0 002F1850  7C 7D 1B 78 */	mr r29, r3
/* 802F5BF4 002F1854  2C 00 00 01 */	cmpwi r0, 1
/* 802F5BF8 002F1858  41 82 00 28 */	beq lbl_802F5C20
/* 802F5BFC 002F185C  40 80 00 10 */	bge lbl_802F5C0C
/* 802F5C00 002F1860  2C 00 00 00 */	cmpwi r0, 0
/* 802F5C04 002F1864  40 80 00 14 */	bge lbl_802F5C18
/* 802F5C08 002F1868  48 00 00 18 */	b lbl_802F5C20
lbl_802F5C0C:
/* 802F5C0C 002F186C  2C 00 00 03 */	cmpwi r0, 3
/* 802F5C10 002F1870  40 80 00 10 */	bge lbl_802F5C20
/* 802F5C14 002F1874  48 00 00 14 */	b lbl_802F5C28
lbl_802F5C18:
/* 802F5C18 002F1878  3B C0 FF D9 */	li r30, -39
/* 802F5C1C 002F187C  48 00 00 44 */	b lbl_802F5C60
lbl_802F5C20:
/* 802F5C20 002F1880  3B C0 FF E4 */	li r30, -28
/* 802F5C24 002F1884  48 00 00 3C */	b lbl_802F5C60
lbl_802F5C28:
/* 802F5C28 002F1888  3F E0 80 58 */	lis r31, lbl_8057AAB8@ha
/* 802F5C2C 002F188C  3B FF AA B8 */	addi r31, r31, lbl_8057AAB8@l
/* 802F5C30 002F1890  80 1F 00 08 */	lwz r0, 8(r31)
/* 802F5C34 002F1894  2C 00 00 00 */	cmpwi r0, 0
/* 802F5C38 002F1898  40 80 00 0C */	bge lbl_802F5C44
/* 802F5C3C 002F189C  3B C0 FF F6 */	li r30, -10
/* 802F5C40 002F18A0  48 00 00 20 */	b lbl_802F5C60
lbl_802F5C44:
/* 802F5C44 002F18A4  4B F7 B6 B5 */	bl OSGetCurrentThread
/* 802F5C48 002F18A8  2C 03 00 00 */	cmpwi r3, 0
/* 802F5C4C 002F18AC  40 82 00 0C */	bne lbl_802F5C58
/* 802F5C50 002F18B0  3F C0 80 00 */	lis r30, 0x8000
/* 802F5C54 002F18B4  48 00 00 0C */	b lbl_802F5C60
lbl_802F5C58:
/* 802F5C58 002F18B8  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 802F5C5C 002F18BC  90 1C 00 00 */	stw r0, 0(r28)
lbl_802F5C60:
/* 802F5C60 002F18C0  2C 1E 00 00 */	cmpwi r30, 0
/* 802F5C64 002F18C4  41 82 00 1C */	beq lbl_802F5C80
/* 802F5C68 002F18C8  4B F7 B6 91 */	bl OSGetCurrentThread
/* 802F5C6C 002F18CC  2C 03 00 00 */	cmpwi r3, 0
/* 802F5C70 002F18D0  41 82 00 0C */	beq lbl_802F5C7C
/* 802F5C74 002F18D4  93 C3 03 0C */	stw r30, 0x30c(r3)
/* 802F5C78 002F18D8  48 00 00 08 */	b lbl_802F5C80
lbl_802F5C7C:
/* 802F5C7C 002F18DC  93 CD AF 5C */	stw r30, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F5C80:
/* 802F5C80 002F18E0  7F A3 EB 78 */	mr r3, r29
/* 802F5C84 002F18E4  4B F7 8B 01 */	bl OSRestoreInterrupts
/* 802F5C88 002F18E8  7F C3 F3 78 */	mr r3, r30
/* 802F5C8C 002F18EC  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802F5C90 002F18F0  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802F5C94 002F18F4  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802F5C98 002F18F8  83 81 00 10 */	lwz r28, 0x10(r1)
/* 802F5C9C 002F18FC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F5CA0 002F1900  7C 08 03 A6 */	mtlr r0
/* 802F5CA4 002F1904  38 21 00 20 */	addi r1, r1, 0x20
/* 802F5CA8 002F1908  4E 80 00 20 */	blr

.global SOiConclude
SOiConclude:
/* 802F5CAC 002F190C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802F5CB0 002F1910  7C 08 02 A6 */	mflr r0
/* 802F5CB4 002F1914  90 01 00 14 */	stw r0, 0x14(r1)
/* 802F5CB8 002F1918  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802F5CBC 002F191C  93 C1 00 08 */	stw r30, 8(r1)
/* 802F5CC0 002F1920  7C 9E 23 78 */	mr r30, r4
/* 802F5CC4 002F1924  4B F7 8A 99 */	bl OSDisableInterrupts
/* 802F5CC8 002F1928  7C 7F 1B 78 */	mr r31, r3
/* 802F5CCC 002F192C  4B F7 B6 2D */	bl OSGetCurrentThread
/* 802F5CD0 002F1930  2C 03 00 00 */	cmpwi r3, 0
/* 802F5CD4 002F1934  41 82 00 0C */	beq lbl_802F5CE0
/* 802F5CD8 002F1938  93 C3 03 0C */	stw r30, 0x30c(r3)
/* 802F5CDC 002F193C  48 00 00 08 */	b lbl_802F5CE4
lbl_802F5CE0:
/* 802F5CE0 002F1940  93 CD AF 5C */	stw r30, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F5CE4:
/* 802F5CE4 002F1944  7F E3 FB 78 */	mr r3, r31
/* 802F5CE8 002F1948  4B F7 8A 9D */	bl OSRestoreInterrupts
/* 802F5CEC 002F194C  7F C3 F3 78 */	mr r3, r30
/* 802F5CF0 002F1950  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802F5CF4 002F1954  83 C1 00 08 */	lwz r30, 8(r1)
/* 802F5CF8 002F1958  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802F5CFC 002F195C  7C 08 03 A6 */	mtlr r0
/* 802F5D00 002F1960  38 21 00 10 */	addi r1, r1, 0x10
/* 802F5D04 002F1964  4E 80 00 20 */	blr

.global SOiPrepareTempRm
SOiPrepareTempRm:
/* 802F5D08 002F1968  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F5D0C 002F196C  7C 08 02 A6 */	mflr r0
/* 802F5D10 002F1970  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F5D14 002F1974  39 61 00 20 */	addi r11, r1, 0x20
/* 802F5D18 002F1978  4B ED 14 0D */	bl _savegpr_26
/* 802F5D1C 002F197C  7C 7A 1B 78 */	mr r26, r3
/* 802F5D20 002F1980  7C 9B 23 78 */	mr r27, r4
/* 802F5D24 002F1984  7C BC 2B 78 */	mr r28, r5
/* 802F5D28 002F1988  3B C0 00 00 */	li r30, 0
/* 802F5D2C 002F198C  4B F7 8A 31 */	bl OSDisableInterrupts
/* 802F5D30 002F1990  88 0D AF 58 */	lbz r0, lbl_80640218-_SDA_BASE_(r13)
/* 802F5D34 002F1994  7C 7D 1B 78 */	mr r29, r3
/* 802F5D38 002F1998  2C 00 00 01 */	cmpwi r0, 1
/* 802F5D3C 002F199C  41 82 00 28 */	beq lbl_802F5D64
/* 802F5D40 002F19A0  40 80 00 10 */	bge lbl_802F5D50
/* 802F5D44 002F19A4  2C 00 00 00 */	cmpwi r0, 0
/* 802F5D48 002F19A8  40 80 00 14 */	bge lbl_802F5D5C
/* 802F5D4C 002F19AC  48 00 00 18 */	b lbl_802F5D64
lbl_802F5D50:
/* 802F5D50 002F19B0  2C 00 00 03 */	cmpwi r0, 3
/* 802F5D54 002F19B4  40 80 00 10 */	bge lbl_802F5D64
/* 802F5D58 002F19B8  48 00 02 04 */	b lbl_802F5F5C
lbl_802F5D5C:
/* 802F5D5C 002F19BC  3B C0 FF D9 */	li r30, -39
/* 802F5D60 002F19C0  48 00 02 3C */	b lbl_802F5F9C
lbl_802F5D64:
/* 802F5D64 002F19C4  3F E0 80 58 */	lis r31, lbl_8057AAB8@ha
/* 802F5D68 002F19C8  3B FF AA B8 */	addi r31, r31, lbl_8057AAB8@l
/* 802F5D6C 002F19CC  80 1F 00 08 */	lwz r0, 8(r31)
/* 802F5D70 002F19D0  2C 00 FF FE */	cmpwi r0, -2
/* 802F5D74 002F19D4  40 81 00 0C */	ble lbl_802F5D80
/* 802F5D78 002F19D8  3B C0 FF F6 */	li r30, -10
/* 802F5D7C 002F19DC  48 00 02 20 */	b lbl_802F5F9C
lbl_802F5D80:
/* 802F5D80 002F19E0  4B F7 B5 79 */	bl OSGetCurrentThread
/* 802F5D84 002F19E4  2C 03 00 00 */	cmpwi r3, 0
/* 802F5D88 002F19E8  40 82 00 0C */	bne lbl_802F5D94
/* 802F5D8C 002F19EC  3F C0 80 00 */	lis r30, 0x8000
/* 802F5D90 002F19F0  48 00 02 0C */	b lbl_802F5F9C
lbl_802F5D94:
/* 802F5D94 002F19F4  38 00 FF FF */	li r0, -1
/* 802F5D98 002F19F8  7F A3 EB 78 */	mr r3, r29
/* 802F5D9C 002F19FC  90 1F 00 08 */	stw r0, 8(r31)
/* 802F5DA0 002F1A00  4B F7 89 E5 */	bl OSRestoreInterrupts
/* 802F5DA4 002F1A04  3C 60 80 44 */	lis r3, lbl_80445E48@ha
/* 802F5DA8 002F1A08  38 80 00 00 */	li r4, 0
/* 802F5DAC 002F1A0C  38 63 5E 48 */	addi r3, r3, lbl_80445E48@l
/* 802F5DB0 002F1A10  4B FA D3 A9 */	bl IOS_Open
/* 802F5DB4 002F1A14  2C 03 00 00 */	cmpwi r3, 0
/* 802F5DB8 002F1A18  90 7F 00 0C */	stw r3, 0xc(r31)
/* 802F5DBC 002F1A1C  40 80 00 30 */	bge lbl_802F5DEC
/* 802F5DC0 002F1A20  4B F7 89 9D */	bl OSDisableInterrupts
/* 802F5DC4 002F1A24  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 802F5DC8 002F1A28  7C 7D 1B 78 */	mr r29, r3
/* 802F5DCC 002F1A2C  2C 00 FF FA */	cmpwi r0, -6
/* 802F5DD0 002F1A30  40 82 00 14 */	bne lbl_802F5DE4
/* 802F5DD4 002F1A34  38 00 FF FE */	li r0, -2
/* 802F5DD8 002F1A38  3B C0 FF E6 */	li r30, -26
/* 802F5DDC 002F1A3C  90 1F 00 08 */	stw r0, 8(r31)
/* 802F5DE0 002F1A40  48 00 01 BC */	b lbl_802F5F9C
lbl_802F5DE4:
/* 802F5DE4 002F1A44  3F C0 80 00 */	lis r30, 0x8000
/* 802F5DE8 002F1A48  48 00 01 B4 */	b lbl_802F5F9C
lbl_802F5DEC:
/* 802F5DEC 002F1A4C  90 7B 00 00 */	stw r3, 0(r27)
/* 802F5DF0 002F1A50  48 00 DF A1 */	bl NWC24iLockSocket
/* 802F5DF4 002F1A54  2C 03 00 00 */	cmpwi r3, 0
/* 802F5DF8 002F1A58  40 82 00 D8 */	bne lbl_802F5ED0
/* 802F5DFC 002F1A5C  4B FF 77 29 */	bl NCDGetLinkStatus
/* 802F5E00 002F1A60  2C 03 00 00 */	cmpwi r3, 0
/* 802F5E04 002F1A64  40 80 00 1C */	bge lbl_802F5E20
/* 802F5E08 002F1A68  2C 03 FF F8 */	cmpwi r3, -8
/* 802F5E0C 002F1A6C  41 82 00 74 */	beq lbl_802F5E80
/* 802F5E10 002F1A70  41 80 00 A0 */	blt lbl_802F5EB0
/* 802F5E14 002F1A74  2C 03 FF FE */	cmpwi r3, -2
/* 802F5E18 002F1A78  40 80 00 80 */	bge lbl_802F5E98
/* 802F5E1C 002F1A7C  48 00 00 94 */	b lbl_802F5EB0
lbl_802F5E20:
/* 802F5E20 002F1A80  2C 03 00 06 */	cmpwi r3, 6
/* 802F5E24 002F1A84  40 80 00 8C */	bge lbl_802F5EB0
/* 802F5E28 002F1A88  2C 03 00 03 */	cmpwi r3, 3
/* 802F5E2C 002F1A8C  40 80 00 08 */	bge lbl_802F5E34
/* 802F5E30 002F1A90  48 00 00 80 */	b lbl_802F5EB0
lbl_802F5E34:
/* 802F5E34 002F1A94  80 7F 00 0C */	lwz r3, 0xc(r31)
/* 802F5E38 002F1A98  38 80 00 1F */	li r4, 0x1f
/* 802F5E3C 002F1A9C  38 A0 00 00 */	li r5, 0
/* 802F5E40 002F1AA0  38 C0 00 00 */	li r6, 0
/* 802F5E44 002F1AA4  38 E0 00 00 */	li r7, 0
/* 802F5E48 002F1AA8  39 00 00 00 */	li r8, 0
/* 802F5E4C 002F1AAC  4B FA DC A5 */	bl IOS_Ioctl
/* 802F5E50 002F1AB0  2C 03 00 00 */	cmpwi r3, 0
/* 802F5E54 002F1AB4  7C 7E 1B 78 */	mr r30, r3
/* 802F5E58 002F1AB8  40 82 00 10 */	bne lbl_802F5E68
/* 802F5E5C 002F1ABC  38 00 00 01 */	li r0, 1
/* 802F5E60 002F1AC0  90 1C 00 00 */	stw r0, 0(r28)
/* 802F5E64 002F1AC4  48 00 00 60 */	b lbl_802F5EC4
lbl_802F5E68:
/* 802F5E68 002F1AC8  7F 43 D3 78 */	mr r3, r26
/* 802F5E6C 002F1ACC  7F C4 F3 78 */	mr r4, r30
/* 802F5E70 002F1AD0  38 A0 00 01 */	li r5, 1
/* 802F5E74 002F1AD4  48 00 01 6D */	bl SOiConcludeTempRm
/* 802F5E78 002F1AD8  7C 7E 1B 78 */	mr r30, r3
/* 802F5E7C 002F1ADC  48 00 00 48 */	b lbl_802F5EC4
lbl_802F5E80:
/* 802F5E80 002F1AE0  7F 43 D3 78 */	mr r3, r26
/* 802F5E84 002F1AE4  38 80 FF E6 */	li r4, -26
/* 802F5E88 002F1AE8  38 A0 00 01 */	li r5, 1
/* 802F5E8C 002F1AEC  48 00 01 55 */	bl SOiConcludeTempRm
/* 802F5E90 002F1AF0  7C 7E 1B 78 */	mr r30, r3
/* 802F5E94 002F1AF4  48 00 00 30 */	b lbl_802F5EC4
lbl_802F5E98:
/* 802F5E98 002F1AF8  7F 43 D3 78 */	mr r3, r26
/* 802F5E9C 002F1AFC  3C 80 80 00 */	lis r4, 0x8000
/* 802F5EA0 002F1B00  38 A0 00 01 */	li r5, 1
/* 802F5EA4 002F1B04  48 00 01 3D */	bl SOiConcludeTempRm
/* 802F5EA8 002F1B08  7C 7E 1B 78 */	mr r30, r3
/* 802F5EAC 002F1B0C  48 00 00 18 */	b lbl_802F5EC4
lbl_802F5EB0:
/* 802F5EB0 002F1B10  7F 43 D3 78 */	mr r3, r26
/* 802F5EB4 002F1B14  38 80 FF D0 */	li r4, -48
/* 802F5EB8 002F1B18  38 A0 00 01 */	li r5, 1
/* 802F5EBC 002F1B1C  48 00 01 25 */	bl SOiConcludeTempRm
/* 802F5EC0 002F1B20  7C 7E 1B 78 */	mr r30, r3
lbl_802F5EC4:
/* 802F5EC4 002F1B24  4B F7 88 99 */	bl OSDisableInterrupts
/* 802F5EC8 002F1B28  7C 7D 1B 78 */	mr r29, r3
/* 802F5ECC 002F1B2C  48 00 00 D0 */	b lbl_802F5F9C
lbl_802F5ED0:
/* 802F5ED0 002F1B30  38 03 00 1D */	addi r0, r3, 0x1d
/* 802F5ED4 002F1B34  28 00 00 1C */	cmplwi r0, 0x1c
/* 802F5ED8 002F1B38  41 81 00 34 */	bgt lbl_802F5F0C
/* 802F5EDC 002F1B3C  3C 60 80 44 */	lis r3, lbl_80445F68@ha
/* 802F5EE0 002F1B40  54 00 10 3A */	slwi r0, r0, 2
/* 802F5EE4 002F1B44  38 63 5F 68 */	addi r3, r3, lbl_80445F68@l
/* 802F5EE8 002F1B48  7C 63 00 2E */	lwzx r3, r3, r0
/* 802F5EEC 002F1B4C  7C 69 03 A6 */	mtctr r3
/* 802F5EF0 002F1B50  4E 80 04 20 */	bctr
/* 802F5EF4 002F1B54  3B C0 FF E6 */	li r30, -26
/* 802F5EF8 002F1B58  48 00 00 18 */	b lbl_802F5F10
/* 802F5EFC 002F1B5C  3B C0 FF D9 */	li r30, -39
/* 802F5F00 002F1B60  48 00 00 10 */	b lbl_802F5F10
/* 802F5F04 002F1B64  3B C0 FF D0 */	li r30, -48
/* 802F5F08 002F1B68  48 00 00 08 */	b lbl_802F5F10
lbl_802F5F0C:
/* 802F5F0C 002F1B6C  3F C0 80 00 */	lis r30, 0x8000
lbl_802F5F10:
/* 802F5F10 002F1B70  3C 60 80 58 */	lis r3, lbl_8057AAB8@ha
/* 802F5F14 002F1B74  38 63 AA B8 */	addi r3, r3, lbl_8057AAB8@l
/* 802F5F18 002F1B78  80 63 00 0C */	lwz r3, 0xc(r3)
/* 802F5F1C 002F1B7C  4B FA D4 1D */	bl IOS_Close
/* 802F5F20 002F1B80  2C 03 00 00 */	cmpwi r3, 0
/* 802F5F24 002F1B84  40 80 00 08 */	bge lbl_802F5F2C
/* 802F5F28 002F1B88  3F C0 80 00 */	lis r30, 0x8000
lbl_802F5F2C:
/* 802F5F2C 002F1B8C  4B F7 88 31 */	bl OSDisableInterrupts
/* 802F5F30 002F1B90  3C 1E 80 00 */	addis r0, r30, 0x8000
/* 802F5F34 002F1B94  7C 7D 1B 78 */	mr r29, r3
/* 802F5F38 002F1B98  28 00 00 00 */	cmplwi r0, 0
/* 802F5F3C 002F1B9C  41 82 00 60 */	beq lbl_802F5F9C
/* 802F5F40 002F1BA0  3C 60 80 58 */	lis r3, lbl_8057AAB8@ha
/* 802F5F44 002F1BA4  38 80 FF FF */	li r4, -1
/* 802F5F48 002F1BA8  38 63 AA B8 */	addi r3, r3, lbl_8057AAB8@l
/* 802F5F4C 002F1BAC  38 00 FF FE */	li r0, -2
/* 802F5F50 002F1BB0  90 83 00 0C */	stw r4, 0xc(r3)
/* 802F5F54 002F1BB4  90 03 00 08 */	stw r0, 8(r3)
/* 802F5F58 002F1BB8  48 00 00 44 */	b lbl_802F5F9C
lbl_802F5F5C:
/* 802F5F5C 002F1BBC  3F E0 80 58 */	lis r31, lbl_8057AAB8@ha
/* 802F5F60 002F1BC0  3B FF AA B8 */	addi r31, r31, lbl_8057AAB8@l
/* 802F5F64 002F1BC4  80 1F 00 08 */	lwz r0, 8(r31)
/* 802F5F68 002F1BC8  2C 00 00 00 */	cmpwi r0, 0
/* 802F5F6C 002F1BCC  40 80 00 0C */	bge lbl_802F5F78
/* 802F5F70 002F1BD0  3B C0 FF F6 */	li r30, -10
/* 802F5F74 002F1BD4  48 00 00 28 */	b lbl_802F5F9C
lbl_802F5F78:
/* 802F5F78 002F1BD8  4B F7 B3 81 */	bl OSGetCurrentThread
/* 802F5F7C 002F1BDC  2C 03 00 00 */	cmpwi r3, 0
/* 802F5F80 002F1BE0  40 82 00 0C */	bne lbl_802F5F8C
/* 802F5F84 002F1BE4  3F C0 80 00 */	lis r30, 0x8000
/* 802F5F88 002F1BE8  48 00 00 14 */	b lbl_802F5F9C
lbl_802F5F8C:
/* 802F5F8C 002F1BEC  38 00 00 00 */	li r0, 0
/* 802F5F90 002F1BF0  90 1C 00 00 */	stw r0, 0(r28)
/* 802F5F94 002F1BF4  80 1F 00 0C */	lwz r0, 0xc(r31)
/* 802F5F98 002F1BF8  90 1B 00 00 */	stw r0, 0(r27)
lbl_802F5F9C:
/* 802F5F9C 002F1BFC  2C 1E 00 00 */	cmpwi r30, 0
/* 802F5FA0 002F1C00  41 82 00 1C */	beq lbl_802F5FBC
/* 802F5FA4 002F1C04  4B F7 B3 55 */	bl OSGetCurrentThread
/* 802F5FA8 002F1C08  2C 03 00 00 */	cmpwi r3, 0
/* 802F5FAC 002F1C0C  41 82 00 0C */	beq lbl_802F5FB8
/* 802F5FB0 002F1C10  93 C3 03 0C */	stw r30, 0x30c(r3)
/* 802F5FB4 002F1C14  48 00 00 08 */	b lbl_802F5FBC
lbl_802F5FB8:
/* 802F5FB8 002F1C18  93 CD AF 5C */	stw r30, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F5FBC:
/* 802F5FBC 002F1C1C  7F A3 EB 78 */	mr r3, r29
/* 802F5FC0 002F1C20  4B F7 87 C5 */	bl OSRestoreInterrupts
/* 802F5FC4 002F1C24  39 61 00 20 */	addi r11, r1, 0x20
/* 802F5FC8 002F1C28  7F C3 F3 78 */	mr r3, r30
/* 802F5FCC 002F1C2C  4B ED 11 A5 */	bl _restgpr_26
/* 802F5FD0 002F1C30  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F5FD4 002F1C34  7C 08 03 A6 */	mtlr r0
/* 802F5FD8 002F1C38  38 21 00 20 */	addi r1, r1, 0x20
/* 802F5FDC 002F1C3C  4E 80 00 20 */	blr

.global SOiConcludeTempRm
SOiConcludeTempRm:
/* 802F5FE0 002F1C40  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802F5FE4 002F1C44  7C 08 02 A6 */	mflr r0
/* 802F5FE8 002F1C48  2C 05 00 01 */	cmpwi r5, 1
/* 802F5FEC 002F1C4C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802F5FF0 002F1C50  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802F5FF4 002F1C54  93 C1 00 08 */	stw r30, 8(r1)
/* 802F5FF8 002F1C58  7C 9E 23 78 */	mr r30, r4
/* 802F5FFC 002F1C5C  40 82 00 84 */	bne lbl_802F6080
/* 802F6000 002F1C60  48 00 DD A1 */	bl NWC24iUnlockSocket
/* 802F6004 002F1C64  2C 03 FF FF */	cmpwi r3, -1
/* 802F6008 002F1C68  41 82 00 28 */	beq lbl_802F6030
/* 802F600C 002F1C6C  40 80 00 10 */	bge lbl_802F601C
/* 802F6010 002F1C70  2C 03 FF E3 */	cmpwi r3, -29
/* 802F6014 002F1C74  41 82 00 14 */	beq lbl_802F6028
/* 802F6018 002F1C78  48 00 00 18 */	b lbl_802F6030
lbl_802F601C:
/* 802F601C 002F1C7C  2C 03 00 01 */	cmpwi r3, 1
/* 802F6020 002F1C80  40 80 00 10 */	bge lbl_802F6030
/* 802F6024 002F1C84  48 00 00 10 */	b lbl_802F6034
lbl_802F6028:
/* 802F6028 002F1C88  3B C0 FF E6 */	li r30, -26
/* 802F602C 002F1C8C  48 00 00 08 */	b lbl_802F6034
lbl_802F6030:
/* 802F6030 002F1C90  3F C0 80 00 */	lis r30, 0x8000
lbl_802F6034:
/* 802F6034 002F1C94  3C 60 80 58 */	lis r3, lbl_8057AAB8@ha
/* 802F6038 002F1C98  38 63 AA B8 */	addi r3, r3, lbl_8057AAB8@l
/* 802F603C 002F1C9C  80 63 00 0C */	lwz r3, 0xc(r3)
/* 802F6040 002F1CA0  4B FA D2 F9 */	bl IOS_Close
/* 802F6044 002F1CA4  2C 03 00 00 */	cmpwi r3, 0
/* 802F6048 002F1CA8  40 80 00 08 */	bge lbl_802F6050
/* 802F604C 002F1CAC  3F C0 80 00 */	lis r30, 0x8000
lbl_802F6050:
/* 802F6050 002F1CB0  4B F7 87 0D */	bl OSDisableInterrupts
/* 802F6054 002F1CB4  3C 1E 80 00 */	addis r0, r30, 0x8000
/* 802F6058 002F1CB8  7C 7F 1B 78 */	mr r31, r3
/* 802F605C 002F1CBC  28 00 00 00 */	cmplwi r0, 0
/* 802F6060 002F1CC0  41 82 00 28 */	beq lbl_802F6088
/* 802F6064 002F1CC4  3C 60 80 58 */	lis r3, lbl_8057AAB8@ha
/* 802F6068 002F1CC8  38 80 FF FF */	li r4, -1
/* 802F606C 002F1CCC  38 63 AA B8 */	addi r3, r3, lbl_8057AAB8@l
/* 802F6070 002F1CD0  38 00 FF FE */	li r0, -2
/* 802F6074 002F1CD4  90 83 00 0C */	stw r4, 0xc(r3)
/* 802F6078 002F1CD8  90 03 00 08 */	stw r0, 8(r3)
/* 802F607C 002F1CDC  48 00 00 0C */	b lbl_802F6088
lbl_802F6080:
/* 802F6080 002F1CE0  4B F7 86 DD */	bl OSDisableInterrupts
/* 802F6084 002F1CE4  7C 7F 1B 78 */	mr r31, r3
lbl_802F6088:
/* 802F6088 002F1CE8  4B F7 B2 71 */	bl OSGetCurrentThread
/* 802F608C 002F1CEC  2C 03 00 00 */	cmpwi r3, 0
/* 802F6090 002F1CF0  41 82 00 0C */	beq lbl_802F609C
/* 802F6094 002F1CF4  93 C3 03 0C */	stw r30, 0x30c(r3)
/* 802F6098 002F1CF8  48 00 00 08 */	b lbl_802F60A0
lbl_802F609C:
/* 802F609C 002F1CFC  93 CD AF 5C */	stw r30, lbl_8064021C-_SDA_BASE_(r13)
lbl_802F60A0:
/* 802F60A0 002F1D00  7F E3 FB 78 */	mr r3, r31
/* 802F60A4 002F1D04  4B F7 86 E1 */	bl OSRestoreInterrupts
/* 802F60A8 002F1D08  7F C3 F3 78 */	mr r3, r30
/* 802F60AC 002F1D0C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 802F60B0 002F1D10  83 C1 00 08 */	lwz r30, 8(r1)
/* 802F60B4 002F1D14  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802F60B8 002F1D18  7C 08 03 A6 */	mtlr r0
/* 802F60BC 002F1D1C  38 21 00 10 */	addi r1, r1, 0x10
/* 802F60C0 002F1D20  4E 80 00 20 */	blr

.global SOiWaitForDHCPEx
SOiWaitForDHCPEx:
/* 802F60C4 002F1D24  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 802F60C8 002F1D28  7C 08 02 A6 */	mflr r0
/* 802F60CC 002F1D2C  90 01 00 44 */	stw r0, 0x44(r1)
/* 802F60D0 002F1D30  39 61 00 40 */	addi r11, r1, 0x40
/* 802F60D4 002F1D34  4B ED 10 41 */	bl _savegpr_22
/* 802F60D8 002F1D38  2C 03 00 00 */	cmpwi r3, 0
/* 802F60DC 002F1D3C  7C 76 1B 78 */	mr r22, r3
/* 802F60E0 002F1D40  3B E0 00 00 */	li r31, 0
/* 802F60E4 002F1D44  3B A0 00 00 */	li r29, 0
/* 802F60E8 002F1D48  3B C0 00 00 */	li r30, 0
/* 802F60EC 002F1D4C  41 82 00 34 */	beq lbl_802F6120
/* 802F60F0 002F1D50  4B F7 C6 E9 */	bl __OSGetSystemTime
/* 802F60F4 002F1D54  3C C0 80 00 */	lis r6, 0x800000F8@ha
/* 802F60F8 002F1D58  3C A0 10 62 */	lis r5, 0x10624DD3@ha
/* 802F60FC 002F1D5C  80 C6 00 F8 */	lwz r6, 0x800000F8@l(r6)
/* 802F6100 002F1D60  38 E5 4D D3 */	addi r7, r5, 0x10624DD3@l
/* 802F6104 002F1D64  38 00 00 00 */	li r0, 0
/* 802F6108 002F1D68  54 C5 F0 BE */	srwi r5, r6, 2
/* 802F610C 002F1D6C  7C A7 28 16 */	mulhwu r5, r7, r5
/* 802F6110 002F1D70  54 A5 D1 BE */	srwi r5, r5, 6
/* 802F6114 002F1D74  7C B6 29 D6 */	mullw r5, r22, r5
/* 802F6118 002F1D78  7F A5 20 14 */	addc r29, r5, r4
/* 802F611C 002F1D7C  7F C0 19 14 */	adde r30, r0, r3
lbl_802F6120:
/* 802F6120 002F1D80  38 00 00 00 */	li r0, 0
/* 802F6124 002F1D84  3B 00 00 0A */	li r24, 0xa
/* 802F6128 002F1D88  7F 20 C1 D6 */	mullw r25, r0, r24
/* 802F612C 002F1D8C  3C 60 10 62 */	lis r3, 0x10624DD3@ha
/* 802F6130 002F1D90  7F BC F3 78 */	or r28, r29, r30
/* 802F6134 002F1D94  3A C3 4D D3 */	addi r22, r3, 0x10624DD3@l
/* 802F6138 002F1D98  3B 40 00 04 */	li r26, 4
/* 802F613C 002F1D9C  3F 60 00 01 */	lis r27, 1
/* 802F6140 002F1DA0  3E E0 80 00 */	lis r23, 0x800000F8@ha
lbl_802F6144:
/* 802F6144 002F1DA4  80 17 00 F8 */	lwz r0, 0x800000F8@l(r23)
/* 802F6148 002F1DA8  54 00 F0 BE */	srwi r0, r0, 2
/* 802F614C 002F1DAC  7C 16 00 16 */	mulhwu r0, r22, r0
/* 802F6150 002F1DB0  54 03 D1 BE */	srwi r3, r0, 6
/* 802F6154 002F1DB4  7C 03 C0 16 */	mulhwu r0, r3, r24
/* 802F6158 002F1DB8  1C 83 00 0A */	mulli r4, r3, 0xa
/* 802F615C 002F1DBC  7C 60 CA 14 */	add r3, r0, r25
/* 802F6160 002F1DC0  4B F7 C5 A5 */	bl OSSleepTicks
/* 802F6164 002F1DC4  93 41 00 08 */	stw r26, 8(r1)
/* 802F6168 002F1DC8  38 9B FF FE */	addi r4, r27, -2
/* 802F616C 002F1DCC  38 C1 00 0C */	addi r6, r1, 0xc
/* 802F6170 002F1DD0  38 E1 00 08 */	addi r7, r1, 8
/* 802F6174 002F1DD4  38 60 00 00 */	li r3, 0
/* 802F6178 002F1DD8  38 A0 10 03 */	li r5, 0x1003
/* 802F617C 002F1DDC  48 00 17 DD */	bl SOGetInterfaceOpt
/* 802F6180 002F1DE0  2C 03 00 00 */	cmpwi r3, 0
/* 802F6184 002F1DE4  41 82 00 0C */	beq lbl_802F6190
/* 802F6188 002F1DE8  7C 7F 1B 78 */	mr r31, r3
/* 802F618C 002F1DEC  48 00 00 54 */	b lbl_802F61E0
lbl_802F6190:
/* 802F6190 002F1DF0  40 82 00 18 */	bne lbl_802F61A8
/* 802F6194 002F1DF4  80 01 00 0C */	lwz r0, 0xc(r1)
/* 802F6198 002F1DF8  2C 00 00 00 */	cmpwi r0, 0
/* 802F619C 002F1DFC  41 82 00 0C */	beq lbl_802F61A8
/* 802F61A0 002F1E00  7C 1F 03 78 */	mr r31, r0
/* 802F61A4 002F1E04  48 00 00 3C */	b lbl_802F61E0
lbl_802F61A8:
/* 802F61A8 002F1E08  48 00 10 A9 */	bl SOGetHostID
/* 802F61AC 002F1E0C  2C 03 00 00 */	cmpwi r3, 0
/* 802F61B0 002F1E10  40 82 00 30 */	bne lbl_802F61E0
/* 802F61B4 002F1E14  2C 1C 00 00 */	cmpwi r28, 0
/* 802F61B8 002F1E18  41 82 FF 8C */	beq lbl_802F6144
/* 802F61BC 002F1E1C  4B F7 C6 1D */	bl __OSGetSystemTime
/* 802F61C0 002F1E20  6C 65 80 00 */	xoris r5, r3, 0x8000
/* 802F61C4 002F1E24  6F C0 80 00 */	xoris r0, r30, 0x8000
/* 802F61C8 002F1E28  7C 64 E8 10 */	subfc r3, r4, r29
/* 802F61CC 002F1E2C  7C A5 01 10 */	subfe r5, r5, r0
/* 802F61D0 002F1E30  7C A0 01 10 */	subfe r5, r0, r0
/* 802F61D4 002F1E34  7C A5 00 D1 */	neg. r5, r5
/* 802F61D8 002F1E38  41 82 FF 6C */	beq lbl_802F6144
/* 802F61DC 002F1E3C  3B E0 FF B4 */	li r31, -76
lbl_802F61E0:
/* 802F61E0 002F1E40  39 61 00 40 */	addi r11, r1, 0x40
/* 802F61E4 002F1E44  7F E3 FB 78 */	mr r3, r31
/* 802F61E8 002F1E48  4B ED 0F 79 */	bl _restgpr_22
/* 802F61EC 002F1E4C  80 01 00 44 */	lwz r0, 0x44(r1)
/* 802F61F0 002F1E50  7C 08 03 A6 */	mtlr r0
/* 802F61F4 002F1E54  38 21 00 40 */	addi r1, r1, 0x40
/* 802F61F8 002F1E58  4E 80 00 20 */	blr