summaryrefslogtreecommitdiff
path: root/asm/SDK/DWC/gamespy/ghttpProcess.s
blob: 493cbb1741b20c1420631435c762e1c3cfcf3e0f (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
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
.include "macros.inc"

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

.global ghiParseURL
ghiParseURL:
/* 8035593C 0035159C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80355940 003515A0  7C 08 02 A6 */	mflr r0
/* 80355944 003515A4  2C 03 00 00 */	cmpwi r3, 0
/* 80355948 003515A8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8035594C 003515AC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80355950 003515B0  7C 7F 1B 78 */	mr r31, r3
/* 80355954 003515B4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80355958 003515B8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8035595C 003515BC  93 81 00 10 */	stw r28, 0x10(r1)
/* 80355960 003515C0  40 82 00 0C */	bne lbl_8035596C
/* 80355964 003515C4  38 60 00 00 */	li r3, 0
/* 80355968 003515C8  48 00 01 60 */	b lbl_80355AC8
lbl_8035596C:
/* 8035596C 003515CC  83 C3 00 14 */	lwz r30, 0x14(r3)
/* 80355970 003515D0  2C 1E 00 00 */	cmpwi r30, 0
/* 80355974 003515D4  40 82 00 0C */	bne lbl_80355980
/* 80355978 003515D8  38 60 00 00 */	li r3, 0
/* 8035597C 003515DC  48 00 01 4C */	b lbl_80355AC8
lbl_80355980:
/* 80355980 003515E0  7F C3 F3 78 */	mr r3, r30
/* 80355984 003515E4  38 8D 93 D8 */	addi r4, r13, lbl_8063E698-_SDA_BASE_
/* 80355988 003515E8  38 A0 00 07 */	li r5, 7
/* 8035598C 003515EC  4B E7 8B DD */	bl strncmp
/* 80355990 003515F0  2C 03 00 00 */	cmpwi r3, 0
/* 80355994 003515F4  40 82 00 14 */	bne lbl_803559A8
/* 80355998 003515F8  38 00 00 00 */	li r0, 0
/* 8035599C 003515FC  3B BE 00 07 */	addi r29, r30, 7
/* 803559A0 00351600  90 1F 00 28 */	stw r0, 0x28(r31)
/* 803559A4 00351604  48 00 00 38 */	b lbl_803559DC
lbl_803559A8:
/* 803559A8 00351608  3C 80 80 45 */	lis r4, lbl_8044C238@ha
/* 803559AC 0035160C  7F C3 F3 78 */	mr r3, r30
/* 803559B0 00351610  38 84 C2 38 */	addi r4, r4, lbl_8044C238@l
/* 803559B4 00351614  38 A0 00 08 */	li r5, 8
/* 803559B8 00351618  4B E7 8B B1 */	bl strncmp
/* 803559BC 0035161C  2C 03 00 00 */	cmpwi r3, 0
/* 803559C0 00351620  40 82 00 14 */	bne lbl_803559D4
/* 803559C4 00351624  38 00 00 01 */	li r0, 1
/* 803559C8 00351628  3B BE 00 08 */	addi r29, r30, 8
/* 803559CC 0035162C  90 1F 00 28 */	stw r0, 0x28(r31)
/* 803559D0 00351630  48 00 00 0C */	b lbl_803559DC
lbl_803559D4:
/* 803559D4 00351634  38 60 00 00 */	li r3, 0
/* 803559D8 00351638  48 00 00 F0 */	b lbl_80355AC8
lbl_803559DC:
/* 803559DC 0035163C  7F A3 EB 78 */	mr r3, r29
/* 803559E0 00351640  38 8D 93 E0 */	addi r4, r13, lbl_8063E6A0-_SDA_BASE_
/* 803559E4 00351644  4B E7 8B F5 */	bl strcspn
/* 803559E8 00351648  7F 9D 18 AE */	lbzx r28, r29, r3
/* 803559EC 0035164C  38 00 00 00 */	li r0, 0
/* 803559F0 00351650  7C 7E 1B 78 */	mr r30, r3
/* 803559F4 00351654  7C 1D 19 AE */	stbx r0, r29, r3
/* 803559F8 00351658  7F A3 EB 78 */	mr r3, r29
/* 803559FC 0035165C  4B FE 35 09 */	bl goastrdup
/* 80355A00 00351660  2C 03 00 00 */	cmpwi r3, 0
/* 80355A04 00351664  90 7F 00 18 */	stw r3, 0x18(r31)
/* 80355A08 00351668  40 82 00 0C */	bne lbl_80355A14
/* 80355A0C 0035166C  38 60 00 00 */	li r3, 0
/* 80355A10 00351670  48 00 00 B8 */	b lbl_80355AC8
lbl_80355A14:
/* 80355A14 00351674  7F 9D F1 AE */	stbx r28, r29, r30
/* 80355A18 00351678  7C 1D F0 EE */	lbzux r0, r29, r30
/* 80355A1C 0035167C  2C 00 00 3A */	cmpwi r0, 0x3a
/* 80355A20 00351680  40 82 00 3C */	bne lbl_80355A5C
/* 80355A24 00351684  3B BD 00 01 */	addi r29, r29, 1
/* 80355A28 00351688  7F A3 EB 78 */	mr r3, r29
/* 80355A2C 0035168C  4B E7 AC E1 */	bl atoi
/* 80355A30 00351690  54 60 04 3F */	clrlwi. r0, r3, 0x10
/* 80355A34 00351694  B0 7F 00 20 */	sth r3, 0x20(r31)
/* 80355A38 00351698  40 82 00 0C */	bne lbl_80355A44
/* 80355A3C 0035169C  38 60 00 00 */	li r3, 0
/* 80355A40 003516A0  48 00 00 88 */	b lbl_80355AC8
lbl_80355A44:
/* 80355A44 003516A4  8C 1D 00 01 */	lbzu r0, 1(r29)
/* 80355A48 003516A8  7C 00 07 75 */	extsb. r0, r0
/* 80355A4C 003516AC  41 82 00 30 */	beq lbl_80355A7C
/* 80355A50 003516B0  2C 00 00 2F */	cmpwi r0, 0x2f
/* 80355A54 003516B4  40 82 FF F0 */	bne lbl_80355A44
/* 80355A58 003516B8  48 00 00 24 */	b lbl_80355A7C
lbl_80355A5C:
/* 80355A5C 003516BC  80 1F 00 28 */	lwz r0, 0x28(r31)
/* 80355A60 003516C0  2C 00 00 01 */	cmpwi r0, 1
/* 80355A64 003516C4  40 82 00 10 */	bne lbl_80355A74
/* 80355A68 003516C8  38 00 01 BB */	li r0, 0x1bb
/* 80355A6C 003516CC  B0 1F 00 20 */	sth r0, 0x20(r31)
/* 80355A70 003516D0  48 00 00 0C */	b lbl_80355A7C
lbl_80355A74:
/* 80355A74 003516D4  38 00 00 50 */	li r0, 0x50
/* 80355A78 003516D8  B0 1F 00 20 */	sth r0, 0x20(r31)
lbl_80355A7C:
/* 80355A7C 003516DC  88 1D 00 00 */	lbz r0, 0(r29)
/* 80355A80 003516E0  7C 00 07 75 */	extsb. r0, r0
/* 80355A84 003516E4  40 82 00 08 */	bne lbl_80355A8C
/* 80355A88 003516E8  3B AD 93 E4 */	addi r29, r13, lbl_8063E6A4-_SDA_BASE_
lbl_80355A8C:
/* 80355A8C 003516EC  7F A3 EB 78 */	mr r3, r29
/* 80355A90 003516F0  4B FE 34 75 */	bl goastrdup
/* 80355A94 003516F4  90 7F 00 24 */	stw r3, 0x24(r31)
/* 80355A98 003516F8  3B C0 00 2B */	li r30, 0x2b
/* 80355A9C 003516FC  48 00 00 08 */	b lbl_80355AA4
lbl_80355AA0:
/* 80355AA0 00351700  9B C3 00 00 */	stb r30, 0(r3)
lbl_80355AA4:
/* 80355AA4 00351704  83 BF 00 24 */	lwz r29, 0x24(r31)
/* 80355AA8 00351708  38 80 00 20 */	li r4, 0x20
/* 80355AAC 0035170C  7F A3 EB 78 */	mr r3, r29
/* 80355AB0 00351710  4B E7 8A F9 */	bl strchr
/* 80355AB4 00351714  2C 03 00 00 */	cmpwi r3, 0
/* 80355AB8 00351718  40 82 FF E8 */	bne lbl_80355AA0
/* 80355ABC 0035171C  7C 1D 00 D0 */	neg r0, r29
/* 80355AC0 00351720  7C 00 EB 78 */	or r0, r0, r29
/* 80355AC4 00351724  54 03 0F FE */	srwi r3, r0, 0x1f
lbl_80355AC8:
/* 80355AC8 00351728  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80355ACC 0035172C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80355AD0 00351730  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80355AD4 00351734  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80355AD8 00351738  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80355ADC 0035173C  7C 08 03 A6 */	mtlr r0
/* 80355AE0 00351740  38 21 00 20 */	addi r1, r1, 0x20
/* 80355AE4 00351744  4E 80 00 20 */	blr

.global ghiDoSocketInit
ghiDoSocketInit:
/* 80355AE8 00351748  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80355AEC 0035174C  7C 08 02 A6 */	mflr r0
/* 80355AF0 00351750  38 80 00 00 */	li r4, 0
/* 80355AF4 00351754  38 A0 00 00 */	li r5, 0
/* 80355AF8 00351758  90 01 00 14 */	stw r0, 0x14(r1)
/* 80355AFC 0035175C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80355B00 00351760  7C 7F 1B 78 */	mr r31, r3
/* 80355B04 00351764  4B FF B7 49 */	bl ghiCallProgressCallback
/* 80355B08 00351768  4B FE 34 C9 */	bl SocketStartUp
/* 80355B0C 0035176C  7F E3 FB 78 */	mr r3, r31
/* 80355B10 00351770  4B FF FE 2D */	bl ghiParseURL
/* 80355B14 00351774  2C 03 00 00 */	cmpwi r3, 0
/* 80355B18 00351778  40 82 00 18 */	bne lbl_80355B30
/* 80355B1C 0035177C  38 60 00 01 */	li r3, 1
/* 80355B20 00351780  38 00 00 03 */	li r0, 3
/* 80355B24 00351784  90 7F 01 20 */	stw r3, 0x120(r31)
/* 80355B28 00351788  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80355B2C 0035178C  48 00 00 64 */	b lbl_80355B90
lbl_80355B30:
/* 80355B30 00351790  80 7F 00 28 */	lwz r3, 0x28(r31)
/* 80355B34 00351794  2C 03 00 01 */	cmpwi r3, 1
/* 80355B38 00351798  40 82 00 20 */	bne lbl_80355B58
/* 80355B3C 0035179C  80 1F 01 94 */	lwz r0, 0x194(r31)
/* 80355B40 003517A0  2C 00 00 00 */	cmpwi r0, 0
/* 80355B44 003517A4  40 82 00 14 */	bne lbl_80355B58
/* 80355B48 003517A8  80 7F 00 04 */	lwz r3, 4(r31)
/* 80355B4C 003517AC  38 80 00 01 */	li r4, 1
/* 80355B50 003517B0  4B FF C3 51 */	bl ghttpSetRequestEncryptionEngine
/* 80355B54 003517B4  48 00 00 24 */	b lbl_80355B78
lbl_80355B58:
/* 80355B58 003517B8  2C 03 00 01 */	cmpwi r3, 1
/* 80355B5C 003517BC  41 82 00 1C */	beq lbl_80355B78
/* 80355B60 003517C0  80 1F 01 94 */	lwz r0, 0x194(r31)
/* 80355B64 003517C4  2C 00 00 00 */	cmpwi r0, 0
/* 80355B68 003517C8  41 82 00 10 */	beq lbl_80355B78
/* 80355B6C 003517CC  80 7F 00 04 */	lwz r3, 4(r31)
/* 80355B70 003517D0  38 80 00 00 */	li r4, 0
/* 80355B74 003517D4  4B FF C3 2D */	bl ghttpSetRequestEncryptionEngine
lbl_80355B78:
/* 80355B78 003517D8  38 00 00 01 */	li r0, 1
/* 80355B7C 003517DC  7F E3 FB 78 */	mr r3, r31
/* 80355B80 003517E0  90 1F 00 10 */	stw r0, 0x10(r31)
/* 80355B84 003517E4  38 80 00 00 */	li r4, 0
/* 80355B88 003517E8  38 A0 00 00 */	li r5, 0
/* 80355B8C 003517EC  4B FF B6 C1 */	bl ghiCallProgressCallback
lbl_80355B90:
/* 80355B90 003517F0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80355B94 003517F4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80355B98 003517F8  7C 08 03 A6 */	mtlr r0
/* 80355B9C 003517FC  38 21 00 10 */	addi r1, r1, 0x10
/* 80355BA0 00351800  4E 80 00 20 */	blr

.global ghiDoHostLookup
ghiDoHostLookup:
/* 80355BA4 00351804  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80355BA8 00351808  7C 08 02 A6 */	mflr r0
/* 80355BAC 0035180C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80355BB0 00351810  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80355BB4 00351814  93 C1 00 08 */	stw r30, 8(r1)
/* 80355BB8 00351818  7C 7E 1B 78 */	mr r30, r3
/* 80355BBC 0035181C  80 03 01 B0 */	lwz r0, 0x1b0(r3)
/* 80355BC0 00351820  2C 00 00 00 */	cmpwi r0, 0
/* 80355BC4 00351824  41 82 00 1C */	beq lbl_80355BE0
/* 80355BC8 00351828  38 00 00 02 */	li r0, 2
/* 80355BCC 0035182C  38 80 00 00 */	li r4, 0
/* 80355BD0 00351830  90 03 00 10 */	stw r0, 0x10(r3)
/* 80355BD4 00351834  38 A0 00 00 */	li r5, 0
/* 80355BD8 00351838  4B FF B6 75 */	bl ghiCallProgressCallback
/* 80355BDC 0035183C  48 00 00 B4 */	b lbl_80355C90
lbl_80355BE0:
/* 80355BE0 00351840  83 E3 01 88 */	lwz r31, 0x188(r3)
/* 80355BE4 00351844  2C 1F 00 00 */	cmpwi r31, 0
/* 80355BE8 00351848  41 82 00 08 */	beq lbl_80355BF0
/* 80355BEC 0035184C  48 00 00 18 */	b lbl_80355C04
lbl_80355BF0:
/* 80355BF0 00351850  83 ED B0 C4 */	lwz r31, lbl_80640384-_SDA_BASE_(r13)
/* 80355BF4 00351854  2C 1F 00 00 */	cmpwi r31, 0
/* 80355BF8 00351858  41 82 00 08 */	beq lbl_80355C00
/* 80355BFC 0035185C  48 00 00 08 */	b lbl_80355C04
lbl_80355C00:
/* 80355C00 00351860  83 E3 00 18 */	lwz r31, 0x18(r3)
lbl_80355C04:
/* 80355C04 00351864  7F E3 FB 78 */	mr r3, r31
/* 80355C08 00351868  4B FE 23 69 */	bl inet_addr
/* 80355C0C 0035186C  3C 03 00 01 */	addis r0, r3, 1
/* 80355C10 00351870  90 7E 00 1C */	stw r3, 0x1c(r30)
/* 80355C14 00351874  28 00 FF FF */	cmplwi r0, 0xffff
/* 80355C18 00351878  40 82 00 34 */	bne lbl_80355C4C
/* 80355C1C 0035187C  7F E3 FB 78 */	mr r3, r31
/* 80355C20 00351880  38 9E 01 B0 */	addi r4, r30, 0x1b0
/* 80355C24 00351884  4B FE 2F F1 */	bl gsiStartResolvingHostname
/* 80355C28 00351888  2C 03 FF FF */	cmpwi r3, -1
/* 80355C2C 0035188C  40 82 00 20 */	bne lbl_80355C4C
/* 80355C30 00351890  38 80 00 00 */	li r4, 0
/* 80355C34 00351894  38 60 00 01 */	li r3, 1
/* 80355C38 00351898  38 00 00 04 */	li r0, 4
/* 80355C3C 0035189C  90 9E 01 B0 */	stw r4, 0x1b0(r30)
/* 80355C40 003518A0  90 7E 01 20 */	stw r3, 0x120(r30)
/* 80355C44 003518A4  90 1E 00 3C */	stw r0, 0x3c(r30)
/* 80355C48 003518A8  48 00 00 48 */	b lbl_80355C90
lbl_80355C4C:
/* 80355C4C 003518AC  80 7E 00 1C */	lwz r3, 0x1c(r30)
/* 80355C50 003518B0  3C 03 00 01 */	addis r0, r3, 1
/* 80355C54 003518B4  28 00 FF FF */	cmplwi r0, 0xffff
/* 80355C58 003518B8  40 82 00 20 */	bne lbl_80355C78
/* 80355C5C 003518BC  38 00 00 02 */	li r0, 2
/* 80355C60 003518C0  7F C3 F3 78 */	mr r3, r30
/* 80355C64 003518C4  90 1E 00 10 */	stw r0, 0x10(r30)
/* 80355C68 003518C8  38 80 00 00 */	li r4, 0
/* 80355C6C 003518CC  38 A0 00 00 */	li r5, 0
/* 80355C70 003518D0  4B FF B5 DD */	bl ghiCallProgressCallback
/* 80355C74 003518D4  48 00 00 1C */	b lbl_80355C90
lbl_80355C78:
/* 80355C78 003518D8  38 00 00 03 */	li r0, 3
/* 80355C7C 003518DC  7F C3 F3 78 */	mr r3, r30
/* 80355C80 003518E0  90 1E 00 10 */	stw r0, 0x10(r30)
/* 80355C84 003518E4  38 80 00 00 */	li r4, 0
/* 80355C88 003518E8  38 A0 00 00 */	li r5, 0
/* 80355C8C 003518EC  4B FF B5 C1 */	bl ghiCallProgressCallback
lbl_80355C90:
/* 80355C90 003518F0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80355C94 003518F4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80355C98 003518F8  83 C1 00 08 */	lwz r30, 8(r1)
/* 80355C9C 003518FC  7C 08 03 A6 */	mtlr r0
/* 80355CA0 00351900  38 21 00 10 */	addi r1, r1, 0x10
/* 80355CA4 00351904  4E 80 00 20 */	blr

.global ghiDoLookupPending
ghiDoLookupPending:
/* 80355CA8 00351908  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80355CAC 0035190C  7C 08 02 A6 */	mflr r0
/* 80355CB0 00351910  90 01 00 14 */	stw r0, 0x14(r1)
/* 80355CB4 00351914  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80355CB8 00351918  7C 7F 1B 78 */	mr r31, r3
/* 80355CBC 0035191C  80 63 01 B0 */	lwz r3, 0x1b0(r3)
/* 80355CC0 00351920  4B FE 31 51 */	bl gsiGetResolvedIP
/* 80355CC4 00351924  3C 03 00 01 */	addis r0, r3, 1
/* 80355CC8 00351928  90 7F 00 1C */	stw r3, 0x1c(r31)
/* 80355CCC 0035192C  28 00 FF FF */	cmplwi r0, 0xffff
/* 80355CD0 00351930  40 82 00 20 */	bne lbl_80355CF0
/* 80355CD4 00351934  38 80 00 00 */	li r4, 0
/* 80355CD8 00351938  38 60 00 01 */	li r3, 1
/* 80355CDC 0035193C  38 00 00 04 */	li r0, 4
/* 80355CE0 00351940  90 9F 01 B0 */	stw r4, 0x1b0(r31)
/* 80355CE4 00351944  90 7F 01 20 */	stw r3, 0x120(r31)
/* 80355CE8 00351948  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80355CEC 0035194C  48 00 00 48 */	b lbl_80355D34
lbl_80355CF0:
/* 80355CF0 00351950  2C 03 00 00 */	cmpwi r3, 0
/* 80355CF4 00351954  40 82 00 20 */	bne lbl_80355D14
/* 80355CF8 00351958  38 00 00 02 */	li r0, 2
/* 80355CFC 0035195C  7F E3 FB 78 */	mr r3, r31
/* 80355D00 00351960  90 1F 00 10 */	stw r0, 0x10(r31)
/* 80355D04 00351964  38 80 00 00 */	li r4, 0
/* 80355D08 00351968  38 A0 00 00 */	li r5, 0
/* 80355D0C 0035196C  4B FF B5 41 */	bl ghiCallProgressCallback
/* 80355D10 00351970  48 00 00 24 */	b lbl_80355D34
lbl_80355D14:
/* 80355D14 00351974  38 60 00 00 */	li r3, 0
/* 80355D18 00351978  38 00 00 03 */	li r0, 3
/* 80355D1C 0035197C  90 7F 01 B0 */	stw r3, 0x1b0(r31)
/* 80355D20 00351980  7F E3 FB 78 */	mr r3, r31
/* 80355D24 00351984  38 80 00 00 */	li r4, 0
/* 80355D28 00351988  38 A0 00 00 */	li r5, 0
/* 80355D2C 0035198C  90 1F 00 10 */	stw r0, 0x10(r31)
/* 80355D30 00351990  4B FF B5 1D */	bl ghiCallProgressCallback
lbl_80355D34:
/* 80355D34 00351994  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80355D38 00351998  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80355D3C 0035199C  7C 08 03 A6 */	mtlr r0
/* 80355D40 003519A0  38 21 00 10 */	addi r1, r1, 0x10
/* 80355D44 003519A4  4E 80 00 20 */	blr

.global ghiDoConnecting
ghiDoConnecting:
/* 80355D48 003519A8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80355D4C 003519AC  7C 08 02 A6 */	mflr r0
/* 80355D50 003519B0  90 01 00 24 */	stw r0, 0x24(r1)
/* 80355D54 003519B4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80355D58 003519B8  7C 7F 1B 78 */	mr r31, r3
/* 80355D5C 003519BC  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 80355D60 003519C0  2C 00 FF FF */	cmpwi r0, -1
/* 80355D64 003519C4  40 82 01 38 */	bne lbl_80355E9C
/* 80355D68 003519C8  38 60 00 02 */	li r3, 2
/* 80355D6C 003519CC  38 80 00 01 */	li r4, 1
/* 80355D70 003519D0  38 A0 00 06 */	li r5, 6
/* 80355D74 003519D4  4B FE 1E 51 */	bl socket
/* 80355D78 003519D8  2C 03 FF FF */	cmpwi r3, -1
/* 80355D7C 003519DC  90 7F 00 4C */	stw r3, 0x4c(r31)
/* 80355D80 003519E0  40 82 00 20 */	bne lbl_80355DA0
/* 80355D84 003519E4  38 80 00 01 */	li r4, 1
/* 80355D88 003519E8  38 00 00 05 */	li r0, 5
/* 80355D8C 003519EC  90 9F 01 20 */	stw r4, 0x120(r31)
/* 80355D90 003519F0  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80355D94 003519F4  4B FE 22 15 */	bl GOAGetLastError
/* 80355D98 003519F8  90 7F 00 50 */	stw r3, 0x50(r31)
/* 80355D9C 003519FC  48 00 01 A8 */	b lbl_80355F44
lbl_80355DA0:
/* 80355DA0 00351A00  38 80 00 00 */	li r4, 0
/* 80355DA4 00351A04  4B FE 28 B1 */	bl SetSockBlocking
/* 80355DA8 00351A08  2C 03 00 00 */	cmpwi r3, 0
/* 80355DAC 00351A0C  40 82 00 24 */	bne lbl_80355DD0
/* 80355DB0 00351A10  38 60 00 01 */	li r3, 1
/* 80355DB4 00351A14  38 00 00 05 */	li r0, 5
/* 80355DB8 00351A18  90 7F 01 20 */	stw r3, 0x120(r31)
/* 80355DBC 00351A1C  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 80355DC0 00351A20  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80355DC4 00351A24  4B FE 21 E5 */	bl GOAGetLastError
/* 80355DC8 00351A28  90 7F 00 50 */	stw r3, 0x50(r31)
/* 80355DCC 00351A2C  48 00 01 78 */	b lbl_80355F44
lbl_80355DD0:
/* 80355DD0 00351A30  80 1F 01 58 */	lwz r0, 0x158(r31)
/* 80355DD4 00351A34  2C 00 00 00 */	cmpwi r0, 0
/* 80355DD8 00351A38  41 82 00 10 */	beq lbl_80355DE8
/* 80355DDC 00351A3C  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 80355DE0 00351A40  80 8D 93 90 */	lwz r4, lbl_8063E650-_SDA_BASE_(r13)
/* 80355DE4 00351A44  4B FE 28 E9 */	bl SetReceiveBufferSize
lbl_80355DE8:
/* 80355DE8 00351A48  38 61 00 10 */	addi r3, r1, 0x10
/* 80355DEC 00351A4C  38 80 00 00 */	li r4, 0
/* 80355DF0 00351A50  38 A0 00 08 */	li r5, 8
/* 80355DF4 00351A54  4B CA E3 11 */	bl memset
/* 80355DF8 00351A58  38 00 00 02 */	li r0, 2
/* 80355DFC 00351A5C  98 01 00 11 */	stb r0, 0x11(r1)
/* 80355E00 00351A60  80 1F 01 88 */	lwz r0, 0x188(r31)
/* 80355E04 00351A64  2C 00 00 00 */	cmpwi r0, 0
/* 80355E08 00351A68  41 82 00 14 */	beq lbl_80355E1C
/* 80355E0C 00351A6C  A0 7F 01 8C */	lhz r3, 0x18c(r31)
/* 80355E10 00351A70  4B FA 0F 6D */	bl SOHtoNs
/* 80355E14 00351A74  B0 61 00 12 */	sth r3, 0x12(r1)
/* 80355E18 00351A78  48 00 00 2C */	b lbl_80355E44
lbl_80355E1C:
/* 80355E1C 00351A7C  80 0D B0 C4 */	lwz r0, lbl_80640384-_SDA_BASE_(r13)
/* 80355E20 00351A80  2C 00 00 00 */	cmpwi r0, 0
/* 80355E24 00351A84  41 82 00 14 */	beq lbl_80355E38
/* 80355E28 00351A88  A0 6D B0 C0 */	lhz r3, lbl_80640380-_SDA_BASE_(r13)
/* 80355E2C 00351A8C  4B FA 0F 51 */	bl SOHtoNs
/* 80355E30 00351A90  B0 61 00 12 */	sth r3, 0x12(r1)
/* 80355E34 00351A94  48 00 00 10 */	b lbl_80355E44
lbl_80355E38:
/* 80355E38 00351A98  A0 7F 00 20 */	lhz r3, 0x20(r31)
/* 80355E3C 00351A9C  4B FA 0F 41 */	bl SOHtoNs
/* 80355E40 00351AA0  B0 61 00 12 */	sth r3, 0x12(r1)
lbl_80355E44:
/* 80355E44 00351AA4  80 1F 00 1C */	lwz r0, 0x1c(r31)
/* 80355E48 00351AA8  38 81 00 10 */	addi r4, r1, 0x10
/* 80355E4C 00351AAC  38 A0 00 08 */	li r5, 8
/* 80355E50 00351AB0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80355E54 00351AB4  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 80355E58 00351AB8  4B FE 1E 85 */	bl connect
/* 80355E5C 00351ABC  2C 03 FF FF */	cmpwi r3, -1
/* 80355E60 00351AC0  40 82 00 3C */	bne lbl_80355E9C
/* 80355E64 00351AC4  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 80355E68 00351AC8  4B FE 21 41 */	bl GOAGetLastError
/* 80355E6C 00351ACC  2C 03 FF FA */	cmpwi r3, -6
/* 80355E70 00351AD0  41 82 00 2C */	beq lbl_80355E9C
/* 80355E74 00351AD4  2C 03 FF E6 */	cmpwi r3, -26
/* 80355E78 00351AD8  41 82 00 24 */	beq lbl_80355E9C
/* 80355E7C 00351ADC  2C 03 FF B4 */	cmpwi r3, -76
/* 80355E80 00351AE0  41 82 00 1C */	beq lbl_80355E9C
/* 80355E84 00351AE4  38 80 00 01 */	li r4, 1
/* 80355E88 00351AE8  38 00 00 06 */	li r0, 6
/* 80355E8C 00351AEC  90 9F 01 20 */	stw r4, 0x120(r31)
/* 80355E90 00351AF0  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80355E94 00351AF4  90 7F 00 50 */	stw r3, 0x50(r31)
/* 80355E98 00351AF8  48 00 00 AC */	b lbl_80355F44
lbl_80355E9C:
/* 80355E9C 00351AFC  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 80355EA0 00351B00  38 A1 00 0C */	addi r5, r1, 0xc
/* 80355EA4 00351B04  38 C1 00 08 */	addi r6, r1, 8
/* 80355EA8 00351B08  38 80 00 00 */	li r4, 0
/* 80355EAC 00351B0C  4B FE 21 05 */	bl GSISocketSelect
/* 80355EB0 00351B10  2C 03 FF FF */	cmpwi r3, -1
/* 80355EB4 00351B14  41 82 00 18 */	beq lbl_80355ECC
/* 80355EB8 00351B18  2C 03 00 01 */	cmpwi r3, 1
/* 80355EBC 00351B1C  40 82 00 44 */	bne lbl_80355F00
/* 80355EC0 00351B20  80 01 00 08 */	lwz r0, 8(r1)
/* 80355EC4 00351B24  2C 00 00 00 */	cmpwi r0, 0
/* 80355EC8 00351B28  41 82 00 38 */	beq lbl_80355F00
lbl_80355ECC:
/* 80355ECC 00351B2C  38 80 00 01 */	li r4, 1
/* 80355ED0 00351B30  38 00 00 06 */	li r0, 6
/* 80355ED4 00351B34  2C 03 FF FF */	cmpwi r3, -1
/* 80355ED8 00351B38  90 9F 01 20 */	stw r4, 0x120(r31)
/* 80355EDC 00351B3C  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80355EE0 00351B40  40 82 00 14 */	bne lbl_80355EF4
/* 80355EE4 00351B44  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 80355EE8 00351B48  4B FE 20 C1 */	bl GOAGetLastError
/* 80355EEC 00351B4C  90 7F 00 50 */	stw r3, 0x50(r31)
/* 80355EF0 00351B50  48 00 00 54 */	b lbl_80355F44
lbl_80355EF4:
/* 80355EF4 00351B54  38 00 00 00 */	li r0, 0
/* 80355EF8 00351B58  90 1F 00 50 */	stw r0, 0x50(r31)
/* 80355EFC 00351B5C  48 00 00 48 */	b lbl_80355F44
lbl_80355F00:
/* 80355F00 00351B60  2C 03 00 01 */	cmpwi r3, 1
/* 80355F04 00351B64  40 82 00 40 */	bne lbl_80355F44
/* 80355F08 00351B68  80 01 00 0C */	lwz r0, 0xc(r1)
/* 80355F0C 00351B6C  2C 00 00 00 */	cmpwi r0, 0
/* 80355F10 00351B70  41 82 00 34 */	beq lbl_80355F44
/* 80355F14 00351B74  80 1F 01 94 */	lwz r0, 0x194(r31)
/* 80355F18 00351B78  2C 00 00 00 */	cmpwi r0, 0
/* 80355F1C 00351B7C  40 82 00 10 */	bne lbl_80355F2C
/* 80355F20 00351B80  38 00 00 05 */	li r0, 5
/* 80355F24 00351B84  90 1F 00 10 */	stw r0, 0x10(r31)
/* 80355F28 00351B88  48 00 00 0C */	b lbl_80355F34
lbl_80355F2C:
/* 80355F2C 00351B8C  38 00 00 04 */	li r0, 4
/* 80355F30 00351B90  90 1F 00 10 */	stw r0, 0x10(r31)
lbl_80355F34:
/* 80355F34 00351B94  7F E3 FB 78 */	mr r3, r31
/* 80355F38 00351B98  38 80 00 00 */	li r4, 0
/* 80355F3C 00351B9C  38 A0 00 00 */	li r5, 0
/* 80355F40 00351BA0  4B FF B3 0D */	bl ghiCallProgressCallback
lbl_80355F44:
/* 80355F44 00351BA4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80355F48 00351BA8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80355F4C 00351BAC  7C 08 03 A6 */	mtlr r0
/* 80355F50 00351BB0  38 21 00 20 */	addi r1, r1, 0x20
/* 80355F54 00351BB4  4E 80 00 20 */	blr

.global ghiDoSecuringSession
ghiDoSecuringSession:
/* 80355F58 00351BB8  94 21 FB E0 */	stwu r1, -0x420(r1)
/* 80355F5C 00351BBC  7C 08 02 A6 */	mflr r0
/* 80355F60 00351BC0  90 01 04 24 */	stw r0, 0x424(r1)
/* 80355F64 00351BC4  93 E1 04 1C */	stw r31, 0x41c(r1)
/* 80355F68 00351BC8  7C 7F 1B 78 */	mr r31, r3
/* 80355F6C 00351BCC  80 03 01 98 */	lwz r0, 0x198(r3)
/* 80355F70 00351BD0  2C 00 00 00 */	cmpwi r0, 0
/* 80355F74 00351BD4  40 82 00 30 */	bne lbl_80355FA4
/* 80355F78 00351BD8  81 83 01 A0 */	lwz r12, 0x1a0(r3)
/* 80355F7C 00351BDC  38 83 01 90 */	addi r4, r3, 0x190
/* 80355F80 00351BE0  7D 89 03 A6 */	mtctr r12
/* 80355F84 00351BE4  4E 80 04 21 */	bctrl
/* 80355F88 00351BE8  2C 03 00 03 */	cmpwi r3, 3
/* 80355F8C 00351BEC  40 82 00 18 */	bne lbl_80355FA4
/* 80355F90 00351BF0  38 60 00 01 */	li r3, 1
/* 80355F94 00351BF4  38 00 00 11 */	li r0, 0x11
/* 80355F98 00351BF8  90 7F 01 20 */	stw r3, 0x120(r31)
/* 80355F9C 00351BFC  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80355FA0 00351C00  48 00 00 DC */	b lbl_8035607C
lbl_80355FA4:
/* 80355FA4 00351C04  80 7F 00 64 */	lwz r3, 0x64(r31)
/* 80355FA8 00351C08  80 1F 00 60 */	lwz r0, 0x60(r31)
/* 80355FAC 00351C0C  7C 03 00 00 */	cmpw r3, r0
/* 80355FB0 00351C10  40 80 00 2C */	bge lbl_80355FDC
/* 80355FB4 00351C14  7F E3 FB 78 */	mr r3, r31
/* 80355FB8 00351C18  4B FF B0 9D */	bl ghiSendBufferedData
/* 80355FBC 00351C1C  2C 03 00 00 */	cmpwi r3, 0
/* 80355FC0 00351C20  41 82 00 BC */	beq lbl_8035607C
/* 80355FC4 00351C24  80 7F 00 64 */	lwz r3, 0x64(r31)
/* 80355FC8 00351C28  80 1F 00 60 */	lwz r0, 0x60(r31)
/* 80355FCC 00351C2C  7C 03 00 00 */	cmpw r3, r0
/* 80355FD0 00351C30  41 80 00 AC */	blt lbl_8035607C
/* 80355FD4 00351C34  38 7F 00 54 */	addi r3, r31, 0x54
/* 80355FD8 00351C38  4B FF B0 59 */	bl ghiResetBuffer
lbl_80355FDC:
/* 80355FDC 00351C3C  38 00 04 01 */	li r0, 0x401
/* 80355FE0 00351C40  7F E3 FB 78 */	mr r3, r31
/* 80355FE4 00351C44  90 01 00 08 */	stw r0, 8(r1)
/* 80355FE8 00351C48  38 81 00 0C */	addi r4, r1, 0xc
/* 80355FEC 00351C4C  38 A1 00 08 */	addi r5, r1, 8
/* 80355FF0 00351C50  4B FF B4 55 */	bl ghiDoReceive
/* 80355FF4 00351C54  38 03 FF FE */	addi r0, r3, -2
/* 80355FF8 00351C58  28 00 00 01 */	cmplwi r0, 1
/* 80355FFC 00351C5C  41 81 00 18 */	bgt lbl_80356014
/* 80356000 00351C60  38 60 00 01 */	li r3, 1
/* 80356004 00351C64  38 00 00 11 */	li r0, 0x11
/* 80356008 00351C68  90 7F 01 20 */	stw r3, 0x120(r31)
/* 8035600C 00351C6C  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80356010 00351C70  48 00 00 6C */	b lbl_8035607C
lbl_80356014:
/* 80356014 00351C74  2C 03 00 00 */	cmpwi r3, 0
/* 80356018 00351C78  40 82 00 64 */	bne lbl_8035607C
/* 8035601C 00351C7C  80 A1 00 08 */	lwz r5, 8(r1)
/* 80356020 00351C80  38 7F 00 C0 */	addi r3, r31, 0xc0
/* 80356024 00351C84  38 81 00 0C */	addi r4, r1, 0xc
/* 80356028 00351C88  4B FF AA 95 */	bl ghiAppendDataToBuffer
/* 8035602C 00351C8C  2C 03 00 00 */	cmpwi r3, 0
/* 80356030 00351C90  41 82 00 4C */	beq lbl_8035607C
/* 80356034 00351C94  7F E3 FB 78 */	mr r3, r31
/* 80356038 00351C98  4B FF B2 BD */	bl ghiDecryptReceivedData
/* 8035603C 00351C9C  2C 03 00 00 */	cmpwi r3, 0
/* 80356040 00351CA0  40 82 00 18 */	bne lbl_80356058
/* 80356044 00351CA4  38 60 00 01 */	li r3, 1
/* 80356048 00351CA8  38 00 00 11 */	li r0, 0x11
/* 8035604C 00351CAC  90 7F 01 20 */	stw r3, 0x120(r31)
/* 80356050 00351CB0  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80356054 00351CB4  48 00 00 28 */	b lbl_8035607C
lbl_80356058:
/* 80356058 00351CB8  80 1F 01 9C */	lwz r0, 0x19c(r31)
/* 8035605C 00351CBC  2C 00 00 00 */	cmpwi r0, 0
/* 80356060 00351CC0  41 82 00 1C */	beq lbl_8035607C
/* 80356064 00351CC4  38 00 00 05 */	li r0, 5
/* 80356068 00351CC8  7F E3 FB 78 */	mr r3, r31
/* 8035606C 00351CCC  90 1F 00 10 */	stw r0, 0x10(r31)
/* 80356070 00351CD0  38 80 00 00 */	li r4, 0
/* 80356074 00351CD4  38 A0 00 00 */	li r5, 0
/* 80356078 00351CD8  4B FF B1 D5 */	bl ghiCallProgressCallback
lbl_8035607C:
/* 8035607C 00351CDC  80 01 04 24 */	lwz r0, 0x424(r1)
/* 80356080 00351CE0  83 E1 04 1C */	lwz r31, 0x41c(r1)
/* 80356084 00351CE4  7C 08 03 A6 */	mtlr r0
/* 80356088 00351CE8  38 21 04 20 */	addi r1, r1, 0x420
/* 8035608C 00351CEC  4E 80 00 20 */	blr

.global ghiDoSendingRequest
ghiDoSendingRequest:
/* 80356090 00351CF0  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80356094 00351CF4  7C 08 02 A6 */	mflr r0
/* 80356098 00351CF8  90 01 00 34 */	stw r0, 0x34(r1)
/* 8035609C 00351CFC  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 803560A0 00351D00  7C 7F 1B 78 */	mr r31, r3
/* 803560A4 00351D04  93 C1 00 28 */	stw r30, 0x28(r1)
/* 803560A8 00351D08  3F C0 80 45 */	lis r30, lbl_8044C238@ha
/* 803560AC 00351D0C  3B DE C2 38 */	addi r30, r30, lbl_8044C238@l
/* 803560B0 00351D10  93 A1 00 24 */	stw r29, 0x24(r1)
/* 803560B4 00351D14  80 03 00 60 */	lwz r0, 0x60(r3)
/* 803560B8 00351D18  2C 00 00 00 */	cmpwi r0, 0
/* 803560BC 00351D1C  40 82 02 28 */	bne lbl_803562E4
/* 803560C0 00351D20  80 03 01 94 */	lwz r0, 0x194(r3)
/* 803560C4 00351D24  2C 00 00 00 */	cmpwi r0, 0
/* 803560C8 00351D28  40 82 00 0C */	bne lbl_803560D4
/* 803560CC 00351D2C  3B A3 00 54 */	addi r29, r3, 0x54
/* 803560D0 00351D30  48 00 00 08 */	b lbl_803560D8
lbl_803560D4:
/* 803560D4 00351D34  3B A3 00 78 */	addi r29, r3, 0x78
lbl_803560D8:
/* 803560D8 00351D38  80 03 01 60 */	lwz r0, 0x160(r3)
/* 803560DC 00351D3C  2C 00 00 00 */	cmpwi r0, 0
/* 803560E0 00351D40  41 82 00 18 */	beq lbl_803560F8
/* 803560E4 00351D44  80 03 01 80 */	lwz r0, 0x180(r3)
/* 803560E8 00351D48  2C 00 00 00 */	cmpwi r0, 0
/* 803560EC 00351D4C  40 82 00 0C */	bne lbl_803560F8
/* 803560F0 00351D50  38 8D 93 E8 */	addi r4, r13, lbl_8063E6A8-_SDA_BASE_
/* 803560F4 00351D54  48 00 00 18 */	b lbl_8035610C
lbl_803560F8:
/* 803560F8 00351D58  80 03 00 0C */	lwz r0, 0xc(r3)
/* 803560FC 00351D5C  38 8D 93 F8 */	addi r4, r13, lbl_8063E6B8-_SDA_BASE_
/* 80356100 00351D60  2C 00 00 03 */	cmpwi r0, 3
/* 80356104 00351D64  40 82 00 08 */	bne lbl_8035610C
/* 80356108 00351D68  38 8D 93 F0 */	addi r4, r13, lbl_8063E6B0-_SDA_BASE_
lbl_8035610C:
/* 8035610C 00351D6C  7F A3 EB 78 */	mr r3, r29
/* 80356110 00351D70  38 A0 00 00 */	li r5, 0
/* 80356114 00351D74  4B FF A9 A9 */	bl ghiAppendDataToBuffer
/* 80356118 00351D78  80 1F 01 88 */	lwz r0, 0x188(r31)
/* 8035611C 00351D7C  2C 00 00 00 */	cmpwi r0, 0
/* 80356120 00351D80  40 82 00 10 */	bne lbl_80356130
/* 80356124 00351D84  80 0D B0 C4 */	lwz r0, lbl_80640384-_SDA_BASE_(r13)
/* 80356128 00351D88  2C 00 00 00 */	cmpwi r0, 0
/* 8035612C 00351D8C  41 82 00 18 */	beq lbl_80356144
lbl_80356130:
/* 80356130 00351D90  80 9F 00 14 */	lwz r4, 0x14(r31)
/* 80356134 00351D94  7F A3 EB 78 */	mr r3, r29
/* 80356138 00351D98  38 A0 00 00 */	li r5, 0
/* 8035613C 00351D9C  4B FF A9 81 */	bl ghiAppendDataToBuffer
/* 80356140 00351DA0  48 00 00 14 */	b lbl_80356154
lbl_80356144:
/* 80356144 00351DA4  80 9F 00 24 */	lwz r4, 0x24(r31)
/* 80356148 00351DA8  7F A3 EB 78 */	mr r3, r29
/* 8035614C 00351DAC  38 A0 00 00 */	li r5, 0
/* 80356150 00351DB0  4B FF A9 6D */	bl ghiAppendDataToBuffer
lbl_80356154:
/* 80356154 00351DB4  7F A3 EB 78 */	mr r3, r29
/* 80356158 00351DB8  38 9E 00 0C */	addi r4, r30, 0xc
/* 8035615C 00351DBC  38 A0 00 00 */	li r5, 0
/* 80356160 00351DC0  4B FF A9 5D */	bl ghiAppendDataToBuffer
/* 80356164 00351DC4  A0 1F 00 20 */	lhz r0, 0x20(r31)
/* 80356168 00351DC8  28 00 00 50 */	cmplwi r0, 0x50
/* 8035616C 00351DCC  40 82 00 18 */	bne lbl_80356184
/* 80356170 00351DD0  80 BF 00 18 */	lwz r5, 0x18(r31)
/* 80356174 00351DD4  7F A3 EB 78 */	mr r3, r29
/* 80356178 00351DD8  38 8D 94 00 */	addi r4, r13, lbl_8063E6C0-_SDA_BASE_
/* 8035617C 00351DDC  4B FF AC 89 */	bl ghiAppendHeaderToBuffer
/* 80356180 00351DE0  48 00 00 4C */	b lbl_803561CC
lbl_80356184:
/* 80356184 00351DE4  7F A3 EB 78 */	mr r3, r29
/* 80356188 00351DE8  38 8D 94 08 */	addi r4, r13, lbl_8063E6C8-_SDA_BASE_
/* 8035618C 00351DEC  38 A0 00 00 */	li r5, 0
/* 80356190 00351DF0  4B FF A9 2D */	bl ghiAppendDataToBuffer
/* 80356194 00351DF4  80 9F 00 18 */	lwz r4, 0x18(r31)
/* 80356198 00351DF8  7F A3 EB 78 */	mr r3, r29
/* 8035619C 00351DFC  38 A0 00 00 */	li r5, 0
/* 803561A0 00351E00  4B FF A9 1D */	bl ghiAppendDataToBuffer
/* 803561A4 00351E04  7F A3 EB 78 */	mr r3, r29
/* 803561A8 00351E08  38 80 00 3A */	li r4, 0x3a
/* 803561AC 00351E0C  4B FF AD 01 */	bl ghiAppendCharToBuffer
/* 803561B0 00351E10  A0 9F 00 20 */	lhz r4, 0x20(r31)
/* 803561B4 00351E14  7F A3 EB 78 */	mr r3, r29
/* 803561B8 00351E18  4B FF AE 2D */	bl ghiAppendIntToBuffer
/* 803561BC 00351E1C  7F A3 EB 78 */	mr r3, r29
/* 803561C0 00351E20  38 8D 94 10 */	addi r4, r13, lbl_8063E6D0-_SDA_BASE_
/* 803561C4 00351E24  38 A0 00 02 */	li r5, 2
/* 803561C8 00351E28  4B FF A8 F5 */	bl ghiAppendDataToBuffer
lbl_803561CC:
/* 803561CC 00351E2C  80 7F 00 2C */	lwz r3, 0x2c(r31)
/* 803561D0 00351E30  2C 03 00 00 */	cmpwi r3, 0
/* 803561D4 00351E34  41 82 00 14 */	beq lbl_803561E8
/* 803561D8 00351E38  38 9E 00 18 */	addi r4, r30, 0x18
/* 803561DC 00351E3C  4B E7 85 C5 */	bl strstr
/* 803561E0 00351E40  2C 03 00 00 */	cmpwi r3, 0
/* 803561E4 00351E44  40 82 00 14 */	bne lbl_803561F8
lbl_803561E8:
/* 803561E8 00351E48  7F A3 EB 78 */	mr r3, r29
/* 803561EC 00351E4C  38 9E 00 18 */	addi r4, r30, 0x18
/* 803561F0 00351E50  38 BE 00 28 */	addi r5, r30, 0x28
/* 803561F4 00351E54  4B FF AC 11 */	bl ghiAppendHeaderToBuffer
lbl_803561F8:
/* 803561F8 00351E58  80 1F 00 38 */	lwz r0, 0x38(r31)
/* 803561FC 00351E5C  2C 00 00 00 */	cmpwi r0, 0
/* 80356200 00351E60  41 82 00 18 */	beq lbl_80356218
/* 80356204 00351E64  7F A3 EB 78 */	mr r3, r29
/* 80356208 00351E68  38 9E 00 38 */	addi r4, r30, 0x38
/* 8035620C 00351E6C  38 BE 00 44 */	addi r5, r30, 0x44
/* 80356210 00351E70  4B FF AB F5 */	bl ghiAppendHeaderToBuffer
/* 80356214 00351E74  48 00 00 14 */	b lbl_80356228
lbl_80356218:
/* 80356218 00351E78  7F A3 EB 78 */	mr r3, r29
/* 8035621C 00351E7C  38 9E 00 38 */	addi r4, r30, 0x38
/* 80356220 00351E80  38 AD 94 14 */	addi r5, r13, lbl_8063E6D4-_SDA_BASE_
/* 80356224 00351E84  4B FF AB E1 */	bl ghiAppendHeaderToBuffer
lbl_80356228:
/* 80356228 00351E88  80 1F 01 60 */	lwz r0, 0x160(r31)
/* 8035622C 00351E8C  2C 00 00 00 */	cmpwi r0, 0
/* 80356230 00351E90  41 82 00 4C */	beq lbl_8035627C
/* 80356234 00351E94  80 1F 01 80 */	lwz r0, 0x180(r31)
/* 80356238 00351E98  2C 00 00 00 */	cmpwi r0, 0
/* 8035623C 00351E9C  40 82 00 40 */	bne lbl_8035627C
/* 80356240 00351EA0  80 BF 01 70 */	lwz r5, 0x170(r31)
/* 80356244 00351EA4  38 61 00 08 */	addi r3, r1, 8
/* 80356248 00351EA8  38 8D 94 1C */	addi r4, r13, lbl_8063E6DC-_SDA_BASE_
/* 8035624C 00351EAC  4C C6 31 82 */	crclr 6
/* 80356250 00351EB0  4B E7 68 AD */	bl sprintf
/* 80356254 00351EB4  7F A3 EB 78 */	mr r3, r29
/* 80356258 00351EB8  38 9E 00 50 */	addi r4, r30, 0x50
/* 8035625C 00351EBC  38 A1 00 08 */	addi r5, r1, 8
/* 80356260 00351EC0  4B FF AB A5 */	bl ghiAppendHeaderToBuffer
/* 80356264 00351EC4  7F E3 FB 78 */	mr r3, r31
/* 80356268 00351EC8  4B FF E0 19 */	bl ghiPostGetContentType
/* 8035626C 00351ECC  7C 65 1B 78 */	mr r5, r3
/* 80356270 00351ED0  7F A3 EB 78 */	mr r3, r29
/* 80356274 00351ED4  38 9E 00 60 */	addi r4, r30, 0x60
/* 80356278 00351ED8  4B FF AB 8D */	bl ghiAppendHeaderToBuffer
lbl_8035627C:
/* 8035627C 00351EDC  80 9F 00 2C */	lwz r4, 0x2c(r31)
/* 80356280 00351EE0  2C 04 00 00 */	cmpwi r4, 0
/* 80356284 00351EE4  41 82 00 10 */	beq lbl_80356294
/* 80356288 00351EE8  7F A3 EB 78 */	mr r3, r29
/* 8035628C 00351EEC  38 A0 00 00 */	li r5, 0
/* 80356290 00351EF0  4B FF A8 2D */	bl ghiAppendDataToBuffer
lbl_80356294:
/* 80356294 00351EF4  7F A3 EB 78 */	mr r3, r29
/* 80356298 00351EF8  38 8D 94 10 */	addi r4, r13, lbl_8063E6D0-_SDA_BASE_
/* 8035629C 00351EFC  38 A0 00 02 */	li r5, 2
/* 803562A0 00351F00  4B FF A8 1D */	bl ghiAppendDataToBuffer
/* 803562A4 00351F04  80 1F 01 94 */	lwz r0, 0x194(r31)
/* 803562A8 00351F08  2C 00 00 00 */	cmpwi r0, 0
/* 803562AC 00351F0C  41 82 00 38 */	beq lbl_803562E4
/* 803562B0 00351F10  80 9D 00 04 */	lwz r4, 4(r29)
/* 803562B4 00351F14  38 7F 00 54 */	addi r3, r31, 0x54
/* 803562B8 00351F18  80 BD 00 0C */	lwz r5, 0xc(r29)
/* 803562BC 00351F1C  4B FF A9 71 */	bl ghiEncryptDataToBuffer
/* 803562C0 00351F20  2C 03 00 00 */	cmpwi r3, 0
/* 803562C4 00351F24  40 82 00 18 */	bne lbl_803562DC
/* 803562C8 00351F28  38 60 00 01 */	li r3, 1
/* 803562CC 00351F2C  38 00 00 11 */	li r0, 0x11
/* 803562D0 00351F30  90 7F 01 20 */	stw r3, 0x120(r31)
/* 803562D4 00351F34  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 803562D8 00351F38  48 00 00 70 */	b lbl_80356348
lbl_803562DC:
/* 803562DC 00351F3C  7F A3 EB 78 */	mr r3, r29
/* 803562E0 00351F40  4B FF AD 51 */	bl ghiResetBuffer
lbl_803562E4:
/* 803562E4 00351F44  7F E3 FB 78 */	mr r3, r31
/* 803562E8 00351F48  4B FF AD 6D */	bl ghiSendBufferedData
/* 803562EC 00351F4C  2C 03 00 00 */	cmpwi r3, 0
/* 803562F0 00351F50  41 82 00 58 */	beq lbl_80356348
/* 803562F4 00351F54  80 7F 00 64 */	lwz r3, 0x64(r31)
/* 803562F8 00351F58  80 1F 00 60 */	lwz r0, 0x60(r31)
/* 803562FC 00351F5C  7C 03 00 00 */	cmpw r3, r0
/* 80356300 00351F60  41 80 00 48 */	blt lbl_80356348
/* 80356304 00351F64  38 7F 00 54 */	addi r3, r31, 0x54
/* 80356308 00351F68  4B FF AD 29 */	bl ghiResetBuffer
/* 8035630C 00351F6C  80 1F 01 60 */	lwz r0, 0x160(r31)
/* 80356310 00351F70  2C 00 00 00 */	cmpwi r0, 0
/* 80356314 00351F74  41 82 00 1C */	beq lbl_80356330
/* 80356318 00351F78  80 1F 01 80 */	lwz r0, 0x180(r31)
/* 8035631C 00351F7C  2C 00 00 00 */	cmpwi r0, 0
/* 80356320 00351F80  40 82 00 10 */	bne lbl_80356330
/* 80356324 00351F84  38 00 00 06 */	li r0, 6
/* 80356328 00351F88  90 1F 00 10 */	stw r0, 0x10(r31)
/* 8035632C 00351F8C  48 00 00 0C */	b lbl_80356338
lbl_80356330:
/* 80356330 00351F90  38 00 00 07 */	li r0, 7
/* 80356334 00351F94  90 1F 00 10 */	stw r0, 0x10(r31)
lbl_80356338:
/* 80356338 00351F98  7F E3 FB 78 */	mr r3, r31
/* 8035633C 00351F9C  38 80 00 00 */	li r4, 0
/* 80356340 00351FA0  38 A0 00 00 */	li r5, 0
/* 80356344 00351FA4  4B FF AF 09 */	bl ghiCallProgressCallback
lbl_80356348:
/* 80356348 00351FA8  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8035634C 00351FAC  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80356350 00351FB0  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80356354 00351FB4  83 A1 00 24 */	lwz r29, 0x24(r1)
/* 80356358 00351FB8  7C 08 03 A6 */	mtlr r0
/* 8035635C 00351FBC  38 21 00 30 */	addi r1, r1, 0x30
/* 80356360 00351FC0  4E 80 00 20 */	blr

.global ghiDoPosting
ghiDoPosting:
/* 80356364 00351FC4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80356368 00351FC8  7C 08 02 A6 */	mflr r0
/* 8035636C 00351FCC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80356370 00351FD0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80356374 00351FD4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80356378 00351FD8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8035637C 00351FDC  7C 7D 1B 78 */	mr r29, r3
/* 80356380 00351FE0  83 C3 01 6C */	lwz r30, 0x16c(r3)
/* 80356384 00351FE4  4B FF F3 6D */	bl ghiPostDoPosting
/* 80356388 00351FE8  2C 03 00 00 */	cmpwi r3, 0
/* 8035638C 00351FEC  7C 7F 1B 78 */	mr r31, r3
/* 80356390 00351FF0  40 82 00 58 */	bne lbl_803563E8
/* 80356394 00351FF4  38 00 00 00 */	li r0, 0
/* 80356398 00351FF8  7F A3 EB 78 */	mr r3, r29
/* 8035639C 00351FFC  90 01 00 08 */	stw r0, 8(r1)
/* 803563A0 00352000  4B FF E5 ED */	bl ghiPostCleanupState
/* 803563A4 00352004  80 7D 00 4C */	lwz r3, 0x4c(r29)
/* 803563A8 00352008  38 81 00 08 */	addi r4, r1, 8
/* 803563AC 0035200C  38 A0 00 00 */	li r5, 0
/* 803563B0 00352010  38 C0 00 00 */	li r6, 0
/* 803563B4 00352014  4B FE 1B FD */	bl GSISocketSelect
/* 803563B8 00352018  2C 03 00 01 */	cmpwi r3, 1
/* 803563BC 0035201C  40 82 00 84 */	bne lbl_80356440
/* 803563C0 00352020  80 01 00 08 */	lwz r0, 8(r1)
/* 803563C4 00352024  2C 00 00 00 */	cmpwi r0, 0
/* 803563C8 00352028  41 82 00 78 */	beq lbl_80356440
/* 803563CC 0035202C  38 00 00 08 */	li r0, 8
/* 803563D0 00352030  7F A3 EB 78 */	mr r3, r29
/* 803563D4 00352034  90 1D 00 10 */	stw r0, 0x10(r29)
/* 803563D8 00352038  38 80 00 00 */	li r4, 0
/* 803563DC 0035203C  38 A0 00 00 */	li r5, 0
/* 803563E0 00352040  4B FF AE 6D */	bl ghiCallProgressCallback
/* 803563E4 00352044  48 00 00 5C */	b lbl_80356440
lbl_803563E8:
/* 803563E8 00352048  2C 03 00 03 */	cmpwi r3, 3
/* 803563EC 0035204C  40 82 00 10 */	bne lbl_803563FC
/* 803563F0 00352050  38 00 00 00 */	li r0, 0
/* 803563F4 00352054  90 1D 01 7C */	stw r0, 0x17c(r29)
/* 803563F8 00352058  48 00 00 48 */	b lbl_80356440
lbl_803563FC:
/* 803563FC 0035205C  80 1D 01 6C */	lwz r0, 0x16c(r29)
/* 80356400 00352060  7C 1E 00 00 */	cmpw r30, r0
/* 80356404 00352064  41 82 00 0C */	beq lbl_80356410
/* 80356408 00352068  7F A3 EB 78 */	mr r3, r29
/* 8035640C 0035206C  4B FF AE 79 */	bl ghiCallPostCallback
lbl_80356410:
/* 80356410 00352070  2C 1F 00 01 */	cmpwi r31, 1
/* 80356414 00352074  40 82 00 2C */	bne lbl_80356440
/* 80356418 00352078  7F A3 EB 78 */	mr r3, r29
/* 8035641C 0035207C  4B FF E5 71 */	bl ghiPostCleanupState
/* 80356420 00352080  38 60 00 01 */	li r3, 1
/* 80356424 00352084  38 00 00 07 */	li r0, 7
/* 80356428 00352088  90 7D 01 80 */	stw r3, 0x180(r29)
/* 8035642C 0035208C  7F A3 EB 78 */	mr r3, r29
/* 80356430 00352090  38 80 00 00 */	li r4, 0
/* 80356434 00352094  38 A0 00 00 */	li r5, 0
/* 80356438 00352098  90 1D 00 10 */	stw r0, 0x10(r29)
/* 8035643C 0035209C  4B FF AE 11 */	bl ghiCallProgressCallback
lbl_80356440:
/* 80356440 003520A0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80356444 003520A4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80356448 003520A8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8035644C 003520AC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80356450 003520B0  7C 08 03 A6 */	mtlr r0
/* 80356454 003520B4  38 21 00 20 */	addi r1, r1, 0x20
/* 80356458 003520B8  4E 80 00 20 */	blr

.global ghiDoWaiting
ghiDoWaiting:
/* 8035645C 003520BC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80356460 003520C0  7C 08 02 A6 */	mflr r0
/* 80356464 003520C4  38 A0 00 00 */	li r5, 0
/* 80356468 003520C8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8035646C 003520CC  38 81 00 0C */	addi r4, r1, 0xc
/* 80356470 003520D0  38 C1 00 08 */	addi r6, r1, 8
/* 80356474 003520D4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80356478 003520D8  7C 7F 1B 78 */	mr r31, r3
/* 8035647C 003520DC  80 63 00 4C */	lwz r3, 0x4c(r3)
/* 80356480 003520E0  4B FE 1B 31 */	bl GSISocketSelect
/* 80356484 003520E4  2C 03 FF FF */	cmpwi r3, -1
/* 80356488 003520E8  41 82 00 18 */	beq lbl_803564A0
/* 8035648C 003520EC  2C 03 00 01 */	cmpwi r3, 1
/* 80356490 003520F0  40 82 00 44 */	bne lbl_803564D4
/* 80356494 003520F4  80 01 00 08 */	lwz r0, 8(r1)
/* 80356498 003520F8  2C 00 00 00 */	cmpwi r0, 0
/* 8035649C 003520FC  41 82 00 38 */	beq lbl_803564D4
lbl_803564A0:
/* 803564A0 00352100  38 80 00 01 */	li r4, 1
/* 803564A4 00352104  38 00 00 05 */	li r0, 5
/* 803564A8 00352108  2C 03 FF FF */	cmpwi r3, -1
/* 803564AC 0035210C  90 9F 01 20 */	stw r4, 0x120(r31)
/* 803564B0 00352110  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 803564B4 00352114  40 82 00 14 */	bne lbl_803564C8
/* 803564B8 00352118  80 7F 00 4C */	lwz r3, 0x4c(r31)
/* 803564BC 0035211C  4B FE 1A ED */	bl GOAGetLastError
/* 803564C0 00352120  90 7F 00 50 */	stw r3, 0x50(r31)
/* 803564C4 00352124  48 00 00 3C */	b lbl_80356500
lbl_803564C8:
/* 803564C8 00352128  38 00 00 00 */	li r0, 0
/* 803564CC 0035212C  90 1F 00 50 */	stw r0, 0x50(r31)
/* 803564D0 00352130  48 00 00 30 */	b lbl_80356500
lbl_803564D4:
/* 803564D4 00352134  2C 03 00 01 */	cmpwi r3, 1
/* 803564D8 00352138  40 82 00 28 */	bne lbl_80356500
/* 803564DC 0035213C  80 01 00 0C */	lwz r0, 0xc(r1)
/* 803564E0 00352140  2C 00 00 00 */	cmpwi r0, 0
/* 803564E4 00352144  41 82 00 1C */	beq lbl_80356500
/* 803564E8 00352148  38 00 00 08 */	li r0, 8
/* 803564EC 0035214C  7F E3 FB 78 */	mr r3, r31
/* 803564F0 00352150  90 1F 00 10 */	stw r0, 0x10(r31)
/* 803564F4 00352154  38 80 00 00 */	li r4, 0
/* 803564F8 00352158  38 A0 00 00 */	li r5, 0
/* 803564FC 0035215C  4B FF AD 51 */	bl ghiCallProgressCallback
lbl_80356500:
/* 80356500 00352160  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80356504 00352164  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80356508 00352168  7C 08 03 A6 */	mtlr r0
/* 8035650C 0035216C  38 21 00 20 */	addi r1, r1, 0x20
/* 80356510 00352170  4E 80 00 20 */	blr

.global ghiParseStatus
ghiParseStatus:
/* 80356514 00352174  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80356518 00352178  7C 08 02 A6 */	mflr r0
/* 8035651C 0035217C  3C 80 80 45 */	lis r4, lbl_8044C2A8@ha
/* 80356520 00352180  90 01 00 24 */	stw r0, 0x24(r1)
/* 80356524 00352184  38 84 C2 A8 */	addi r4, r4, lbl_8044C2A8@l
/* 80356528 00352188  38 A1 00 14 */	addi r5, r1, 0x14
/* 8035652C 0035218C  38 C1 00 10 */	addi r6, r1, 0x10
/* 80356530 00352190  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80356534 00352194  7C 7F 1B 78 */	mr r31, r3
/* 80356538 00352198  38 E1 00 0C */	addi r7, r1, 0xc
/* 8035653C 0035219C  39 01 00 08 */	addi r8, r1, 8
/* 80356540 003521A0  80 63 00 A0 */	lwz r3, 0xa0(r3)
/* 80356544 003521A4  4C C6 31 82 */	crclr 6
/* 80356548 003521A8  4B E7 7C C1 */	bl sscanf
/* 8035654C 003521AC  2C 03 00 03 */	cmpwi r3, 3
/* 80356550 003521B0  40 82 00 24 */	bne lbl_80356574
/* 80356554 003521B4  80 C1 00 14 */	lwz r6, 0x14(r1)
/* 80356558 003521B8  2C 06 00 01 */	cmpwi r6, 1
/* 8035655C 003521BC  41 80 00 18 */	blt lbl_80356574
/* 80356560 003521C0  80 01 00 0C */	lwz r0, 0xc(r1)
/* 80356564 003521C4  2C 00 00 64 */	cmpwi r0, 0x64
/* 80356568 003521C8  41 80 00 0C */	blt lbl_80356574
/* 8035656C 003521CC  2C 00 02 58 */	cmpwi r0, 0x258
/* 80356570 003521D0  41 80 00 1C */	blt lbl_8035658C
lbl_80356574:
/* 80356574 003521D4  38 60 00 01 */	li r3, 1
/* 80356578 003521D8  38 00 00 07 */	li r0, 7
/* 8035657C 003521DC  90 7F 01 20 */	stw r3, 0x120(r31)
/* 80356580 003521E0  38 60 00 00 */	li r3, 0
/* 80356584 003521E4  90 1F 00 3C */	stw r0, 0x3c(r31)
/* 80356588 003521E8  48 00 00 90 */	b lbl_80356618
lbl_8035658C:
/* 8035658C 003521EC  3C 60 80 42 */	lis r3, lbl_80422D48@ha
/* 80356590 003521F0  80 81 00 08 */	lwz r4, 8(r1)
/* 80356594 003521F4  38 63 2D 48 */	addi r3, r3, lbl_80422D48@l
/* 80356598 003521F8  80 A3 00 38 */	lwz r5, 0x38(r3)
/* 8035659C 003521FC  48 00 00 0C */	b lbl_803565A8
lbl_803565A0:
/* 803565A0 00352200  38 84 00 01 */	addi r4, r4, 1
/* 803565A4 00352204  90 81 00 08 */	stw r4, 8(r1)
lbl_803565A8:
/* 803565A8 00352208  80 7F 00 A0 */	lwz r3, 0xa0(r31)
/* 803565AC 0035220C  7C E3 20 AE */	lbzx r7, r3, r4
/* 803565B0 00352210  7C E3 07 75 */	extsb. r3, r7
/* 803565B4 00352214  41 82 00 44 */	beq lbl_803565F8
/* 803565B8 00352218  38 00 00 00 */	li r0, 0
/* 803565BC 0035221C  41 80 00 0C */	blt lbl_803565C8
/* 803565C0 00352220  2C 03 01 00 */	cmpwi r3, 0x100
/* 803565C4 00352224  41 80 00 08 */	blt lbl_803565CC
lbl_803565C8:
/* 803565C8 00352228  38 00 00 01 */	li r0, 1
lbl_803565CC:
/* 803565CC 0035222C  2C 00 00 00 */	cmpwi r0, 0
/* 803565D0 00352230  41 82 00 0C */	beq lbl_803565DC
/* 803565D4 00352234  38 00 00 00 */	li r0, 0
/* 803565D8 00352238  48 00 00 18 */	b lbl_803565F0
lbl_803565DC:
/* 803565DC 0035223C  7C E0 07 74 */	extsb r0, r7
/* 803565E0 00352240  80 65 00 08 */	lwz r3, 8(r5)
/* 803565E4 00352244  54 00 08 3C */	slwi r0, r0, 1
/* 803565E8 00352248  7C 03 02 2E */	lhzx r0, r3, r0
/* 803565EC 0035224C  54 00 05 EE */	rlwinm r0, r0, 0, 0x17, 0x17
lbl_803565F0:
/* 803565F0 00352250  2C 00 00 00 */	cmpwi r0, 0
/* 803565F4 00352254  40 82 FF AC */	bne lbl_803565A0
lbl_803565F8:
/* 803565F8 00352258  90 DF 01 0C */	stw r6, 0x10c(r31)
/* 803565FC 0035225C  38 60 00 01 */	li r3, 1
/* 80356600 00352260  80 01 00 10 */	lwz r0, 0x10(r1)
/* 80356604 00352264  90 1F 01 10 */	stw r0, 0x110(r31)
/* 80356608 00352268  80 01 00 0C */	lwz r0, 0xc(r1)
/* 8035660C 0035226C  90 1F 01 14 */	stw r0, 0x114(r31)
/* 80356610 00352270  80 01 00 08 */	lwz r0, 8(r1)
/* 80356614 00352274  90 1F 01 18 */	stw r0, 0x118(r31)
lbl_80356618:
/* 80356618 00352278  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8035661C 0035227C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80356620 00352280  7C 08 03 A6 */	mtlr r0
/* 80356624 00352284  38 21 00 20 */	addi r1, r1, 0x20
/* 80356628 00352288  4E 80 00 20 */	blr

.global ghiDoReceivingStatus
ghiDoReceivingStatus:
/* 8035662C 0035228C  94 21 FB E0 */	stwu r1, -0x420(r1)
/* 80356630 00352290  7C 08 02 A6 */	mflr r0
/* 80356634 00352294  90 01 04 24 */	stw r0, 0x424(r1)
/* 80356638 00352298  38 00 04 00 */	li r0, 0x400
/* 8035663C 0035229C  38 81 00 10 */	addi r4, r1, 0x10
/* 80356640 003522A0  38 A1 00 08 */	addi r5, r1, 8
/* 80356644 003522A4  93 E1 04 1C */	stw r31, 0x41c(r1)
/* 80356648 003522A8  93 C1 04 18 */	stw r30, 0x418(r1)
/* 8035664C 003522AC  93 A1 04 14 */	stw r29, 0x414(r1)
/* 80356650 003522B0  7C 7D 1B 78 */	mr r29, r3
/* 80356654 003522B4  90 01 00 08 */	stw r0, 8(r1)
/* 80356658 003522B8  4B FF AD ED */	bl ghiDoReceive
/* 8035665C 003522BC  2C 03 00 03 */	cmpwi r3, 3
/* 80356660 003522C0  7C 7F 1B 78 */	mr r31, r3
/* 80356664 003522C4  41 82 01 30 */	beq lbl_80356794
/* 80356668 003522C8  2C 03 00 01 */	cmpwi r3, 1
/* 8035666C 003522CC  41 82 01 28 */	beq lbl_80356794
/* 80356670 003522D0  2C 03 00 00 */	cmpwi r3, 0
/* 80356674 003522D4  40 82 00 64 */	bne lbl_803566D8
/* 80356678 003522D8  80 1D 01 94 */	lwz r0, 0x194(r29)
/* 8035667C 003522DC  2C 00 00 00 */	cmpwi r0, 0
/* 80356680 003522E0  41 82 00 40 */	beq lbl_803566C0
/* 80356684 003522E4  80 A1 00 08 */	lwz r5, 8(r1)
/* 80356688 003522E8  38 7D 00 C0 */	addi r3, r29, 0xc0
/* 8035668C 003522EC  38 81 00 10 */	addi r4, r1, 0x10
/* 80356690 003522F0  4B FF A4 2D */	bl ghiAppendDataToBuffer
/* 80356694 003522F4  2C 03 00 00 */	cmpwi r3, 0
/* 80356698 003522F8  41 82 00 FC */	beq lbl_80356794
/* 8035669C 003522FC  7F A3 EB 78 */	mr r3, r29
/* 803566A0 00352300  4B FF AC 55 */	bl ghiDecryptReceivedData
/* 803566A4 00352304  2C 03 00 00 */	cmpwi r3, 0
/* 803566A8 00352308  40 82 00 30 */	bne lbl_803566D8
/* 803566AC 0035230C  38 60 00 01 */	li r3, 1
/* 803566B0 00352310  38 00 00 11 */	li r0, 0x11
/* 803566B4 00352314  90 7D 01 20 */	stw r3, 0x120(r29)
/* 803566B8 00352318  90 1D 00 3C */	stw r0, 0x3c(r29)
/* 803566BC 0035231C  48 00 00 D8 */	b lbl_80356794
lbl_803566C0:
/* 803566C0 00352320  80 A1 00 08 */	lwz r5, 8(r1)
/* 803566C4 00352324  38 7D 00 9C */	addi r3, r29, 0x9c
/* 803566C8 00352328  38 81 00 10 */	addi r4, r1, 0x10
/* 803566CC 0035232C  4B FF A3 F1 */	bl ghiAppendDataToBuffer
/* 803566D0 00352330  2C 03 00 00 */	cmpwi r3, 0
/* 803566D4 00352334  41 82 00 C0 */	beq lbl_80356794
lbl_803566D8:
/* 803566D8 00352338  80 7D 00 A0 */	lwz r3, 0xa0(r29)
/* 803566DC 0035233C  38 8D 94 10 */	addi r4, r13, lbl_8063E6D0-_SDA_BASE_
/* 803566E0 00352340  4B E7 80 C1 */	bl strstr
/* 803566E4 00352344  2C 03 00 00 */	cmpwi r3, 0
/* 803566E8 00352348  41 82 00 88 */	beq lbl_80356770
/* 803566EC 0035234C  3B E0 00 00 */	li r31, 0
/* 803566F0 00352350  9B E3 00 00 */	stb r31, 0(r3)
/* 803566F4 00352354  80 1D 00 A0 */	lwz r0, 0xa0(r29)
/* 803566F8 00352358  7F C0 18 50 */	subf r30, r0, r3
/* 803566FC 0035235C  7F A3 EB 78 */	mr r3, r29
/* 80356700 00352360  4B FF FE 15 */	bl ghiParseStatus
/* 80356704 00352364  2C 03 00 00 */	cmpwi r3, 0
/* 80356708 00352368  41 82 00 8C */	beq lbl_80356794
/* 8035670C 0035236C  80 1D 01 14 */	lwz r0, 0x114(r29)
/* 80356710 00352370  38 7E 00 02 */	addi r3, r30, 2
/* 80356714 00352374  90 7D 01 1C */	stw r3, 0x11c(r29)
/* 80356718 00352378  2C 00 00 64 */	cmpwi r0, 0x64
/* 8035671C 0035237C  40 82 00 38 */	bne lbl_80356754
/* 80356720 00352380  80 1D 01 7C */	lwz r0, 0x17c(r29)
/* 80356724 00352384  2C 00 00 00 */	cmpwi r0, 0
/* 80356728 00352388  41 82 00 2C */	beq lbl_80356754
/* 8035672C 0035238C  93 FD 01 7C */	stw r31, 0x17c(r29)
/* 80356730 00352390  38 7D 00 9C */	addi r3, r29, 0x9c
/* 80356734 00352394  4B FF A8 FD */	bl ghiResetBuffer
/* 80356738 00352398  38 00 00 06 */	li r0, 6
/* 8035673C 0035239C  7F A3 EB 78 */	mr r3, r29
/* 80356740 003523A0  90 1D 00 10 */	stw r0, 0x10(r29)
/* 80356744 003523A4  38 80 00 00 */	li r4, 0
/* 80356748 003523A8  38 A0 00 00 */	li r5, 0
/* 8035674C 003523AC  4B FF AB 01 */	bl ghiCallProgressCallback
/* 80356750 003523B0  48 00 00 44 */	b lbl_80356794
lbl_80356754:
/* 80356754 003523B4  38 00 00 09 */	li r0, 9
/* 80356758 003523B8  7F A3 EB 78 */	mr r3, r29
/* 8035675C 003523BC  90 1D 00 10 */	stw r0, 0x10(r29)
/* 80356760 003523C0  38 80 00 00 */	li r4, 0
/* 80356764 003523C4  38 A0 00 00 */	li r5, 0
/* 80356768 003523C8  4B FF AA E5 */	bl ghiCallProgressCallback
/* 8035676C 003523CC  48 00 00 28 */	b lbl_80356794
lbl_80356770:
/* 80356770 003523D0  2C 1F 00 02 */	cmpwi r31, 2
/* 80356774 003523D4  40 82 00 20 */	bne lbl_80356794
/* 80356778 003523D8  38 60 00 01 */	li r3, 1
/* 8035677C 003523DC  38 00 00 07 */	li r0, 7
/* 80356780 003523E0  90 7D 01 20 */	stw r3, 0x120(r29)
/* 80356784 003523E4  80 7D 00 4C */	lwz r3, 0x4c(r29)
/* 80356788 003523E8  90 1D 00 3C */	stw r0, 0x3c(r29)
/* 8035678C 003523EC  4B FE 18 1D */	bl GOAGetLastError
/* 80356790 003523F0  90 7D 00 50 */	stw r3, 0x50(r29)
lbl_80356794:
/* 80356794 003523F4  80 01 04 24 */	lwz r0, 0x424(r1)
/* 80356798 003523F8  83 E1 04 1C */	lwz r31, 0x41c(r1)
/* 8035679C 003523FC  83 C1 04 18 */	lwz r30, 0x418(r1)
/* 803567A0 00352400  83 A1 04 14 */	lwz r29, 0x414(r1)
/* 803567A4 00352404  7C 08 03 A6 */	mtlr r0
/* 803567A8 00352408  38 21 04 20 */	addi r1, r1, 0x420
/* 803567AC 0035240C  4E 80 00 20 */	blr

.global ghiDeliverIncomingFileData
ghiDeliverIncomingFileData:
/* 803567B0 00352410  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 803567B4 00352414  7C 08 02 A6 */	mflr r0
/* 803567B8 00352418  38 E0 00 00 */	li r7, 0
/* 803567BC 0035241C  90 01 00 14 */	stw r0, 0x14(r1)
/* 803567C0 00352420  93 E1 00 0C */	stw r31, 0xc(r1)
/* 803567C4 00352424  7C 7F 1B 78 */	mr r31, r3
/* 803567C8 00352428  80 C3 01 24 */	lwz r6, 0x124(r3)
/* 803567CC 0035242C  80 03 01 28 */	lwz r0, 0x128(r3)
/* 803567D0 00352430  7C C6 2A 14 */	add r6, r6, r5
/* 803567D4 00352434  7C 06 00 00 */	cmpw r6, r0
/* 803567D8 00352438  90 C3 01 24 */	stw r6, 0x124(r3)
/* 803567DC 0035243C  38 C0 00 00 */	li r6, 0
/* 803567E0 00352440  41 82 00 10 */	beq lbl_803567F0
/* 803567E4 00352444  80 03 01 54 */	lwz r0, 0x154(r3)
/* 803567E8 00352448  2C 00 00 00 */	cmpwi r0, 0
/* 803567EC 0035244C  41 82 00 0C */	beq lbl_803567F8
lbl_803567F0:
/* 803567F0 00352450  38 00 00 01 */	li r0, 1
/* 803567F4 00352454  90 03 01 20 */	stw r0, 0x120(r3)
lbl_803567F8:
/* 803567F8 00352458  80 03 00 0C */	lwz r0, 0xc(r3)
/* 803567FC 0035245C  2C 00 00 00 */	cmpwi r0, 0
/* 80356800 00352460  40 82 00 28 */	bne lbl_80356828
/* 80356804 00352464  38 63 00 E4 */	addi r3, r3, 0xe4
/* 80356808 00352468  4B FF A2 B5 */	bl ghiAppendDataToBuffer
/* 8035680C 0035246C  2C 03 00 00 */	cmpwi r3, 0
/* 80356810 00352470  40 82 00 0C */	bne lbl_8035681C
/* 80356814 00352474  38 60 00 00 */	li r3, 0
/* 80356818 00352478  48 00 00 68 */	b lbl_80356880
lbl_8035681C:
/* 8035681C 0035247C  80 DF 00 E8 */	lwz r6, 0xe8(r31)
/* 80356820 00352480  80 FF 00 F0 */	lwz r7, 0xf0(r31)
/* 80356824 00352484  48 00 00 48 */	b lbl_8035686C
lbl_80356828:
/* 80356828 00352488  2C 00 00 01 */	cmpwi r0, 1
/* 8035682C 0035248C  40 82 00 30 */	bne lbl_8035685C
/* 80356830 00352490  2C 05 00 00 */	cmpwi r5, 0
/* 80356834 00352494  41 82 00 1C */	beq lbl_80356850
/* 80356838 00352498  38 80 00 01 */	li r4, 1
/* 8035683C 0035249C  38 00 00 0D */	li r0, 0xd
/* 80356840 003524A0  90 83 01 20 */	stw r4, 0x120(r3)
/* 80356844 003524A4  90 03 00 3C */	stw r0, 0x3c(r3)
/* 80356848 003524A8  38 60 00 00 */	li r3, 0
/* 8035684C 003524AC  48 00 00 34 */	b lbl_80356880
lbl_80356850:
/* 80356850 003524B0  7C 86 23 78 */	mr r6, r4
/* 80356854 003524B4  7C A7 2B 78 */	mr r7, r5
/* 80356858 003524B8  48 00 00 14 */	b lbl_8035686C
lbl_8035685C:
/* 8035685C 003524BC  2C 00 00 02 */	cmpwi r0, 2
/* 80356860 003524C0  40 82 00 0C */	bne lbl_8035686C
/* 80356864 003524C4  7C 86 23 78 */	mr r6, r4
/* 80356868 003524C8  7C A7 2B 78 */	mr r7, r5
lbl_8035686C:
/* 8035686C 003524CC  7F E3 FB 78 */	mr r3, r31
/* 80356870 003524D0  7C C4 33 78 */	mr r4, r6
/* 80356874 003524D4  7C E5 3B 78 */	mr r5, r7
/* 80356878 003524D8  4B FF A9 D5 */	bl ghiCallProgressCallback
/* 8035687C 003524DC  38 60 00 01 */	li r3, 1
lbl_80356880:
/* 80356880 003524E0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80356884 003524E4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80356888 003524E8  7C 08 03 A6 */	mtlr r0
/* 8035688C 003524EC  38 21 00 10 */	addi r1, r1, 0x10
/* 80356890 003524F0  4E 80 00 20 */	blr

.global ghiProcessIncomingFileData
ghiProcessIncomingFileData:
/* 80356894 003524F4  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80356898 003524F8  7C 08 02 A6 */	mflr r0
/* 8035689C 003524FC  90 01 00 44 */	stw r0, 0x44(r1)
/* 803568A0 00352500  39 61 00 40 */	addi r11, r1, 0x40
/* 803568A4 00352504  4B E7 08 75 */	bl _savegpr_23
/* 803568A8 00352508  80 03 01 34 */	lwz r0, 0x134(r3)
/* 803568AC 0035250C  7C 7D 1B 78 */	mr r29, r3
/* 803568B0 00352510  7C 9E 23 78 */	mr r30, r4
/* 803568B4 00352514  7C BF 2B 78 */	mr r31, r5
/* 803568B8 00352518  2C 00 00 00 */	cmpwi r0, 0
/* 803568BC 0035251C  41 82 02 28 */	beq lbl_80356AE4
/* 803568C0 00352520  3B 00 00 00 */	li r24, 0
/* 803568C4 00352524  3B 80 00 02 */	li r28, 2
/* 803568C8 00352528  3B 40 00 01 */	li r26, 1
/* 803568CC 0035252C  3B 20 00 03 */	li r25, 3
/* 803568D0 00352530  48 00 02 04 */	b lbl_80356AD4
lbl_803568D4:
/* 803568D4 00352534  80 1D 01 4C */	lwz r0, 0x14c(r29)
/* 803568D8 00352538  2C 00 00 00 */	cmpwi r0, 0
/* 803568DC 0035253C  40 82 01 34 */	bne lbl_80356A10
/* 803568E0 00352540  7F C3 F3 78 */	mr r3, r30
/* 803568E4 00352544  38 80 00 0A */	li r4, 0xa
/* 803568E8 00352548  4B E7 7C C1 */	bl strchr
/* 803568EC 0035254C  2C 03 00 00 */	cmpwi r3, 0
/* 803568F0 00352550  7C 7B 1B 78 */	mr r27, r3
/* 803568F4 00352554  41 82 00 C4 */	beq lbl_803569B8
/* 803568F8 00352558  7E FE 18 51 */	subf. r23, r30, r3
/* 803568FC 0035255C  41 82 00 48 */	beq lbl_80356944
/* 80356900 00352560  80 1D 01 44 */	lwz r0, 0x144(r29)
/* 80356904 00352564  2C 00 00 0A */	cmpwi r0, 0xa
/* 80356908 00352568  40 80 00 3C */	bge lbl_80356944
/* 8035690C 0035256C  20 60 00 0A */	subfic r3, r0, 0xa
/* 80356910 00352570  7C 03 B8 00 */	cmpw r3, r23
/* 80356914 00352574  40 80 00 08 */	bge lbl_8035691C
/* 80356918 00352578  7C 77 1B 78 */	mr r23, r3
lbl_8035691C:
/* 8035691C 0035257C  7C 7D 02 14 */	add r3, r29, r0
/* 80356920 00352580  7F C4 F3 78 */	mr r4, r30
/* 80356924 00352584  7E E5 BB 78 */	mr r5, r23
/* 80356928 00352588  38 63 01 38 */	addi r3, r3, 0x138
/* 8035692C 0035258C  4B CA D6 D5 */	bl memcpy
/* 80356930 00352590  80 1D 01 44 */	lwz r0, 0x144(r29)
/* 80356934 00352594  7C 00 BA 14 */	add r0, r0, r23
/* 80356938 00352598  90 1D 01 44 */	stw r0, 0x144(r29)
/* 8035693C 0035259C  7C 7D 02 14 */	add r3, r29, r0
/* 80356940 003525A0  9B 03 01 38 */	stb r24, 0x138(r3)
lbl_80356944:
/* 80356944 003525A4  38 9B 00 01 */	addi r4, r27, 1
/* 80356948 003525A8  38 7D 01 38 */	addi r3, r29, 0x138
/* 8035694C 003525AC  7C 1E 20 50 */	subf r0, r30, r4
/* 80356950 003525B0  38 A1 00 08 */	addi r5, r1, 8
/* 80356954 003525B4  7C 9E 23 78 */	mr r30, r4
/* 80356958 003525B8  38 8D 94 20 */	addi r4, r13, lbl_8063E6E0-_SDA_BASE_
/* 8035695C 003525BC  7F E0 F8 50 */	subf r31, r0, r31
/* 80356960 003525C0  4C C6 31 82 */	crclr 6
/* 80356964 003525C4  4B E7 78 A5 */	bl sscanf
/* 80356968 003525C8  2C 03 00 01 */	cmpwi r3, 1
/* 8035696C 003525CC  41 82 00 0C */	beq lbl_80356978
/* 80356970 003525D0  38 00 FF FF */	li r0, -1
/* 80356974 003525D4  48 00 00 08 */	b lbl_8035697C
lbl_80356978:
/* 80356978 003525D8  80 01 00 08 */	lwz r0, 8(r1)
lbl_8035697C:
/* 8035697C 003525DC  2C 00 FF FF */	cmpwi r0, -1
/* 80356980 003525E0  90 1D 01 48 */	stw r0, 0x148(r29)
/* 80356984 003525E4  40 82 00 1C */	bne lbl_803569A0
/* 80356988 003525E8  38 60 00 01 */	li r3, 1
/* 8035698C 003525EC  38 00 00 07 */	li r0, 7
/* 80356990 003525F0  90 7D 01 20 */	stw r3, 0x120(r29)
/* 80356994 003525F4  38 60 00 00 */	li r3, 0
/* 80356998 003525F8  90 1D 00 3C */	stw r0, 0x3c(r29)
/* 8035699C 003525FC  48 00 01 4C */	b lbl_80356AE8
lbl_803569A0:
/* 803569A0 00352600  2C 00 00 00 */	cmpwi r0, 0
/* 803569A4 00352604  40 82 00 0C */	bne lbl_803569B0
/* 803569A8 00352608  93 3D 01 4C */	stw r25, 0x14c(r29)
/* 803569AC 0035260C  48 00 01 28 */	b lbl_80356AD4
lbl_803569B0:
/* 803569B0 00352610  93 5D 01 4C */	stw r26, 0x14c(r29)
/* 803569B4 00352614  48 00 01 20 */	b lbl_80356AD4
lbl_803569B8:
/* 803569B8 00352618  2C 1F 00 00 */	cmpwi r31, 0
/* 803569BC 0035261C  41 82 00 4C */	beq lbl_80356A08
/* 803569C0 00352620  80 1D 01 44 */	lwz r0, 0x144(r29)
/* 803569C4 00352624  2C 00 00 0A */	cmpwi r0, 0xa
/* 803569C8 00352628  40 80 00 40 */	bge lbl_80356A08
/* 803569CC 0035262C  20 60 00 0A */	subfic r3, r0, 0xa
/* 803569D0 00352630  7C 03 F8 00 */	cmpw r3, r31
/* 803569D4 00352634  40 80 00 08 */	bge lbl_803569DC
/* 803569D8 00352638  7C 7F 1B 78 */	mr r31, r3
lbl_803569DC:
/* 803569DC 0035263C  7C 7D 02 14 */	add r3, r29, r0
/* 803569E0 00352640  7F C4 F3 78 */	mr r4, r30
/* 803569E4 00352644  7F E5 FB 78 */	mr r5, r31
/* 803569E8 00352648  38 63 01 38 */	addi r3, r3, 0x138
/* 803569EC 0035264C  4B CA D6 15 */	bl memcpy
/* 803569F0 00352650  80 7D 01 44 */	lwz r3, 0x144(r29)
/* 803569F4 00352654  38 00 00 00 */	li r0, 0
/* 803569F8 00352658  7C 63 FA 14 */	add r3, r3, r31
/* 803569FC 0035265C  90 7D 01 44 */	stw r3, 0x144(r29)
/* 80356A00 00352660  7C 7D 1A 14 */	add r3, r29, r3
/* 80356A04 00352664  98 03 01 38 */	stb r0, 0x138(r3)
lbl_80356A08:
/* 80356A08 00352668  38 60 00 01 */	li r3, 1
/* 80356A0C 0035266C  48 00 00 DC */	b lbl_80356AE8
lbl_80356A10:
/* 80356A10 00352670  2C 00 00 01 */	cmpwi r0, 1
/* 80356A14 00352674  40 82 00 58 */	bne lbl_80356A6C
/* 80356A18 00352678  80 1D 01 48 */	lwz r0, 0x148(r29)
/* 80356A1C 0035267C  7F FB FB 78 */	mr r27, r31
/* 80356A20 00352680  7C 00 F8 00 */	cmpw r0, r31
/* 80356A24 00352684  40 80 00 08 */	bge lbl_80356A2C
/* 80356A28 00352688  7C 1B 03 78 */	mr r27, r0
lbl_80356A2C:
/* 80356A2C 0035268C  7F A3 EB 78 */	mr r3, r29
/* 80356A30 00352690  7F C4 F3 78 */	mr r4, r30
/* 80356A34 00352694  7F 65 DB 78 */	mr r5, r27
/* 80356A38 00352698  4B FF FD 79 */	bl ghiDeliverIncomingFileData
/* 80356A3C 0035269C  2C 03 00 00 */	cmpwi r3, 0
/* 80356A40 003526A0  40 82 00 0C */	bne lbl_80356A4C
/* 80356A44 003526A4  38 60 00 00 */	li r3, 0
/* 80356A48 003526A8  48 00 00 A0 */	b lbl_80356AE8
lbl_80356A4C:
/* 80356A4C 003526AC  80 1D 01 48 */	lwz r0, 0x148(r29)
/* 80356A50 003526B0  7F DE DA 14 */	add r30, r30, r27
/* 80356A54 003526B4  7F FB F8 50 */	subf r31, r27, r31
/* 80356A58 003526B8  7C 1B 00 51 */	subf. r0, r27, r0
/* 80356A5C 003526BC  90 1D 01 48 */	stw r0, 0x148(r29)
/* 80356A60 003526C0  40 82 00 74 */	bne lbl_80356AD4
/* 80356A64 003526C4  93 9D 01 4C */	stw r28, 0x14c(r29)
/* 80356A68 003526C8  48 00 00 6C */	b lbl_80356AD4
lbl_80356A6C:
/* 80356A6C 003526CC  2C 00 00 02 */	cmpwi r0, 2
/* 80356A70 003526D0  40 82 00 44 */	bne lbl_80356AB4
/* 80356A74 003526D4  7F C3 F3 78 */	mr r3, r30
/* 80356A78 003526D8  38 80 00 0A */	li r4, 0xa
/* 80356A7C 003526DC  4B E7 7B 2D */	bl strchr
/* 80356A80 003526E0  2C 03 00 00 */	cmpwi r3, 0
/* 80356A84 003526E4  40 82 00 0C */	bne lbl_80356A90
/* 80356A88 003526E8  38 60 00 01 */	li r3, 1
/* 80356A8C 003526EC  48 00 00 5C */	b lbl_80356AE8
lbl_80356A90:
/* 80356A90 003526F0  38 63 00 01 */	addi r3, r3, 1
/* 80356A94 003526F4  9B 1D 01 38 */	stb r24, 0x138(r29)
/* 80356A98 003526F8  7C 1E 18 50 */	subf r0, r30, r3
/* 80356A9C 003526FC  93 1D 01 44 */	stw r24, 0x144(r29)
/* 80356AA0 00352700  7C 7E 1B 78 */	mr r30, r3
/* 80356AA4 00352704  7F E0 F8 50 */	subf r31, r0, r31
/* 80356AA8 00352708  93 1D 01 48 */	stw r24, 0x148(r29)
/* 80356AAC 0035270C  93 1D 01 4C */	stw r24, 0x14c(r29)
/* 80356AB0 00352710  48 00 00 24 */	b lbl_80356AD4
lbl_80356AB4:
/* 80356AB4 00352714  2C 00 00 03 */	cmpwi r0, 3
/* 80356AB8 00352718  40 82 00 14 */	bne lbl_80356ACC
/* 80356ABC 0035271C  38 00 00 01 */	li r0, 1
/* 80356AC0 00352720  38 60 00 01 */	li r3, 1
/* 80356AC4 00352724  90 1D 01 20 */	stw r0, 0x120(r29)
/* 80356AC8 00352728  48 00 00 20 */	b lbl_80356AE8
lbl_80356ACC:
/* 80356ACC 0035272C  38 60 00 00 */	li r3, 0
/* 80356AD0 00352730  48 00 00 18 */	b lbl_80356AE8
lbl_80356AD4:
/* 80356AD4 00352734  2C 1F 00 00 */	cmpwi r31, 0
/* 80356AD8 00352738  41 81 FD FC */	bgt lbl_803568D4
/* 80356ADC 0035273C  38 60 00 01 */	li r3, 1
/* 80356AE0 00352740  48 00 00 08 */	b lbl_80356AE8
lbl_80356AE4:
/* 80356AE4 00352744  4B FF FC CD */	bl ghiDeliverIncomingFileData
lbl_80356AE8:
/* 80356AE8 00352748  39 61 00 40 */	addi r11, r1, 0x40
/* 80356AEC 0035274C  4B E7 06 79 */	bl _restgpr_23
/* 80356AF0 00352750  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80356AF4 00352754  7C 08 03 A6 */	mtlr r0
/* 80356AF8 00352758  38 21 00 40 */	addi r1, r1, 0x40
/* 80356AFC 0035275C  4E 80 00 20 */	blr

.global ghiDoReceivingHeaders
ghiDoReceivingHeaders:
/* 80356B00 00352760  94 21 EF C0 */	stwu r1, -0x1040(r1)
/* 80356B04 00352764  7C 08 02 A6 */	mflr r0
/* 80356B08 00352768  90 01 10 44 */	stw r0, 0x1044(r1)
/* 80356B0C 0035276C  39 61 10 40 */	addi r11, r1, 0x1040
/* 80356B10 00352770  4B E7 06 05 */	bl _savegpr_22
/* 80356B14 00352774  38 00 10 00 */	li r0, 0x1000
/* 80356B18 00352778  3F C0 80 45 */	lis r30, lbl_8044C238@ha
/* 80356B1C 0035277C  90 01 00 08 */	stw r0, 8(r1)
/* 80356B20 00352780  7C 78 1B 78 */	mr r24, r3
/* 80356B24 00352784  3B DE C2 38 */	addi r30, r30, lbl_8044C238@l
/* 80356B28 00352788  38 81 00 18 */	addi r4, r1, 0x18
/* 80356B2C 0035278C  38 A1 00 08 */	addi r5, r1, 8
/* 80356B30 00352790  3A E0 00 01 */	li r23, 1
/* 80356B34 00352794  4B FF A9 11 */	bl ghiDoReceive
/* 80356B38 00352798  2C 03 00 03 */	cmpwi r3, 3
/* 80356B3C 0035279C  7C 76 1B 78 */	mr r22, r3
/* 80356B40 003527A0  41 82 05 1C */	beq lbl_8035705C
/* 80356B44 003527A4  2C 03 00 01 */	cmpwi r3, 1
/* 80356B48 003527A8  41 82 05 14 */	beq lbl_8035705C
/* 80356B4C 003527AC  2C 03 00 00 */	cmpwi r3, 0
/* 80356B50 003527B0  40 82 00 64 */	bne lbl_80356BB4
/* 80356B54 003527B4  80 18 01 94 */	lwz r0, 0x194(r24)
/* 80356B58 003527B8  2C 00 00 00 */	cmpwi r0, 0
/* 80356B5C 003527BC  41 82 00 40 */	beq lbl_80356B9C
/* 80356B60 003527C0  80 A1 00 08 */	lwz r5, 8(r1)
/* 80356B64 003527C4  38 78 00 C0 */	addi r3, r24, 0xc0
/* 80356B68 003527C8  38 81 00 18 */	addi r4, r1, 0x18
/* 80356B6C 003527CC  4B FF 9F 51 */	bl ghiAppendDataToBuffer
/* 80356B70 003527D0  2C 03 00 00 */	cmpwi r3, 0
/* 80356B74 003527D4  41 82 04 E8 */	beq lbl_8035705C
/* 80356B78 003527D8  7F 03 C3 78 */	mr r3, r24
/* 80356B7C 003527DC  4B FF A7 79 */	bl ghiDecryptReceivedData
/* 80356B80 003527E0  2C 03 00 00 */	cmpwi r3, 0
/* 80356B84 003527E4  40 82 00 30 */	bne lbl_80356BB4
/* 80356B88 003527E8  38 60 00 01 */	li r3, 1
/* 80356B8C 003527EC  38 00 00 11 */	li r0, 0x11
/* 80356B90 003527F0  90 78 01 20 */	stw r3, 0x120(r24)
/* 80356B94 003527F4  90 18 00 3C */	stw r0, 0x3c(r24)
/* 80356B98 003527F8  48 00 04 C4 */	b lbl_8035705C
lbl_80356B9C:
/* 80356B9C 003527FC  80 A1 00 08 */	lwz r5, 8(r1)
/* 80356BA0 00352800  38 78 00 9C */	addi r3, r24, 0x9c
/* 80356BA4 00352804  38 81 00 18 */	addi r4, r1, 0x18
/* 80356BA8 00352808  4B FF 9F 15 */	bl ghiAppendDataToBuffer
/* 80356BAC 0035280C  2C 03 00 00 */	cmpwi r3, 0
/* 80356BB0 00352810  41 82 04 AC */	beq lbl_8035705C
lbl_80356BB4:
/* 80356BB4 00352814  3C 60 51 EC */	lis r3, 0x51EB851F@ha
/* 80356BB8 00352818  80 18 01 14 */	lwz r0, 0x114(r24)
/* 80356BBC 0035281C  38 63 85 1F */	addi r3, r3, 0x51EB851F@l
/* 80356BC0 00352820  80 98 00 A0 */	lwz r4, 0xa0(r24)
/* 80356BC4 00352824  7C 03 00 96 */	mulhw r0, r3, r0
/* 80356BC8 00352828  80 78 01 1C */	lwz r3, 0x11c(r24)
/* 80356BCC 0035282C  7F A4 1A 14 */	add r29, r4, r3
/* 80356BD0 00352830  7C 00 2E 70 */	srawi r0, r0, 5
/* 80356BD4 00352834  54 03 0F FE */	srwi r3, r0, 0x1f
/* 80356BD8 00352838  7C 00 1A 14 */	add r0, r0, r3
/* 80356BDC 0035283C  2C 00 00 01 */	cmpwi r0, 1
/* 80356BE0 00352840  40 82 00 40 */	bne lbl_80356C20
/* 80356BE4 00352844  7F A3 EB 78 */	mr r3, r29
/* 80356BE8 00352848  38 8D 94 10 */	addi r4, r13, lbl_8063E6D0-_SDA_BASE_
/* 80356BEC 0035284C  38 A0 00 02 */	li r5, 2
/* 80356BF0 00352850  4B E7 79 79 */	bl strncmp
/* 80356BF4 00352854  2C 03 00 00 */	cmpwi r3, 0
/* 80356BF8 00352858  41 82 00 1C */	beq lbl_80356C14
/* 80356BFC 0035285C  7F A3 EB 78 */	mr r3, r29
/* 80356C00 00352860  38 8D 94 24 */	addi r4, r13, lbl_8063E6E4-_SDA_BASE_
/* 80356C04 00352864  38 A0 00 02 */	li r5, 2
/* 80356C08 00352868  4B E7 79 61 */	bl strncmp
/* 80356C0C 0035286C  2C 03 00 00 */	cmpwi r3, 0
/* 80356C10 00352870  40 82 00 10 */	bne lbl_80356C20
lbl_80356C14:
/* 80356C14 00352874  7F A3 EB 78 */	mr r3, r29
/* 80356C18 00352878  3A E0 00 00 */	li r23, 0
/* 80356C1C 0035287C  48 00 00 10 */	b lbl_80356C2C
lbl_80356C20:
/* 80356C20 00352880  7F A3 EB 78 */	mr r3, r29
/* 80356C24 00352884  38 8D 94 28 */	addi r4, r13, lbl_8063E6E8-_SDA_BASE_
/* 80356C28 00352888  4B E7 7B 79 */	bl strstr
lbl_80356C2C:
/* 80356C2C 0035288C  2C 03 00 00 */	cmpwi r3, 0
/* 80356C30 00352890  40 82 00 10 */	bne lbl_80356C40
/* 80356C34 00352894  7F A3 EB 78 */	mr r3, r29
/* 80356C38 00352898  38 8D 94 24 */	addi r4, r13, lbl_8063E6E4-_SDA_BASE_
/* 80356C3C 0035289C  4B E7 7B 65 */	bl strstr
lbl_80356C40:
/* 80356C40 003528A0  2C 03 00 00 */	cmpwi r3, 0
/* 80356C44 003528A4  41 82 03 F4 */	beq lbl_80357038
/* 80356C48 003528A8  2C 17 00 01 */	cmpwi r23, 1
/* 80356C4C 003528AC  40 82 00 08 */	bne lbl_80356C54
/* 80356C50 003528B0  38 63 00 02 */	addi r3, r3, 2
lbl_80356C54:
/* 80356C54 003528B4  38 00 00 00 */	li r0, 0
/* 80356C58 003528B8  3C 80 51 EC */	lis r4, 0x51EB851F@ha
/* 80356C5C 003528BC  98 03 00 00 */	stb r0, 0(r3)
/* 80356C60 003528C0  38 84 85 1F */	addi r4, r4, 0x51EB851F@l
/* 80356C64 003528C4  3B 83 00 02 */	addi r28, r3, 2
/* 80356C68 003528C8  80 18 01 14 */	lwz r0, 0x114(r24)
/* 80356C6C 003528CC  80 D8 00 A0 */	lwz r6, 0xa0(r24)
/* 80356C70 003528D0  7C 04 00 96 */	mulhw r0, r4, r0
/* 80356C74 003528D4  80 98 00 A8 */	lwz r4, 0xa8(r24)
/* 80356C78 003528D8  7C 66 18 50 */	subf r3, r6, r3
/* 80356C7C 003528DC  7C A6 E0 50 */	subf r5, r6, r28
/* 80356C80 003528E0  38 63 00 01 */	addi r3, r3, 1
/* 80356C84 003528E4  90 78 00 A8 */	stw r3, 0xa8(r24)
/* 80356C88 003528E8  7C 00 2E 70 */	srawi r0, r0, 5
/* 80356C8C 003528EC  90 78 00 AC */	stw r3, 0xac(r24)
/* 80356C90 003528F0  54 03 0F FE */	srwi r3, r0, 0x1f
/* 80356C94 003528F4  7F 65 20 50 */	subf r27, r5, r4
/* 80356C98 003528F8  7C 00 1A 14 */	add r0, r0, r3
/* 80356C9C 003528FC  2C 00 00 01 */	cmpwi r0, 1
/* 80356CA0 00352900  40 82 00 74 */	bne lbl_80356D14
/* 80356CA4 00352904  2C 1B 00 00 */	cmpwi r27, 0
/* 80356CA8 00352908  41 82 00 1C */	beq lbl_80356CC4
/* 80356CAC 0035290C  7C C3 33 78 */	mr r3, r6
/* 80356CB0 00352910  7F 84 E3 78 */	mr r4, r28
/* 80356CB4 00352914  38 BB 00 01 */	addi r5, r27, 1
/* 80356CB8 00352918  4B E7 35 BD */	bl memmove
/* 80356CBC 0035291C  93 78 00 A8 */	stw r27, 0xa8(r24)
/* 80356CC0 00352920  48 00 00 0C */	b lbl_80356CCC
lbl_80356CC4:
/* 80356CC4 00352924  38 78 00 9C */	addi r3, r24, 0x9c
/* 80356CC8 00352928  4B FF A3 69 */	bl ghiResetBuffer
lbl_80356CCC:
/* 80356CCC 0035292C  80 18 01 7C */	lwz r0, 0x17c(r24)
/* 80356CD0 00352930  2C 00 00 00 */	cmpwi r0, 0
/* 80356CD4 00352934  41 82 00 24 */	beq lbl_80356CF8
/* 80356CD8 00352938  38 60 00 00 */	li r3, 0
/* 80356CDC 0035293C  38 00 00 06 */	li r0, 6
/* 80356CE0 00352940  90 78 01 7C */	stw r3, 0x17c(r24)
/* 80356CE4 00352944  7F 03 C3 78 */	mr r3, r24
/* 80356CE8 00352948  38 80 00 00 */	li r4, 0
/* 80356CEC 0035294C  38 A0 00 00 */	li r5, 0
/* 80356CF0 00352950  90 18 00 10 */	stw r0, 0x10(r24)
/* 80356CF4 00352954  4B FF A5 59 */	bl ghiCallProgressCallback
lbl_80356CF8:
/* 80356CF8 00352958  38 00 00 08 */	li r0, 8
/* 80356CFC 0035295C  7F 03 C3 78 */	mr r3, r24
/* 80356D00 00352960  90 18 00 10 */	stw r0, 0x10(r24)
/* 80356D04 00352964  38 80 00 00 */	li r4, 0
/* 80356D08 00352968  38 A0 00 00 */	li r5, 0
/* 80356D0C 0035296C  4B FF A5 41 */	bl ghiCallProgressCallback
/* 80356D10 00352970  48 00 03 4C */	b lbl_8035705C
lbl_80356D14:
/* 80356D14 00352974  2C 00 00 03 */	cmpwi r0, 3
/* 80356D18 00352978  40 82 01 78 */	bne lbl_80356E90
/* 80356D1C 0035297C  80 18 01 30 */	lwz r0, 0x130(r24)
/* 80356D20 00352980  2C 00 00 0A */	cmpwi r0, 0xa
/* 80356D24 00352984  40 81 00 18 */	ble lbl_80356D3C
/* 80356D28 00352988  38 60 00 01 */	li r3, 1
/* 80356D2C 0035298C  38 00 00 0B */	li r0, 0xb
/* 80356D30 00352990  90 78 01 20 */	stw r3, 0x120(r24)
/* 80356D34 00352994  90 18 00 3C */	stw r0, 0x3c(r24)
/* 80356D38 00352998  48 00 03 24 */	b lbl_8035705C
lbl_80356D3C:
/* 80356D3C 0035299C  7F A3 EB 78 */	mr r3, r29
/* 80356D40 003529A0  38 9E 00 80 */	addi r4, r30, 0x80
/* 80356D44 003529A4  4B E7 7A 5D */	bl strstr
/* 80356D48 003529A8  2C 03 00 00 */	cmpwi r3, 0
/* 80356D4C 003529AC  41 82 01 44 */	beq lbl_80356E90
/* 80356D50 003529B0  3C 80 80 42 */	lis r4, lbl_80422D48@ha
/* 80356D54 003529B4  3B 63 00 09 */	addi r27, r3, 9
/* 80356D58 003529B8  38 84 2D 48 */	addi r4, r4, lbl_80422D48@l
/* 80356D5C 003529BC  80 A4 00 38 */	lwz r5, 0x38(r4)
/* 80356D60 003529C0  48 00 00 08 */	b lbl_80356D68
lbl_80356D64:
/* 80356D64 003529C4  3B 7B 00 01 */	addi r27, r27, 1
lbl_80356D68:
/* 80356D68 003529C8  88 9B 00 00 */	lbz r4, 0(r27)
/* 80356D6C 003529CC  38 00 00 00 */	li r0, 0
/* 80356D70 003529D0  7C 84 07 75 */	extsb. r4, r4
/* 80356D74 003529D4  41 80 00 0C */	blt lbl_80356D80
/* 80356D78 003529D8  2C 04 01 00 */	cmpwi r4, 0x100
/* 80356D7C 003529DC  41 80 00 08 */	blt lbl_80356D84
lbl_80356D80:
/* 80356D80 003529E0  38 00 00 01 */	li r0, 1
lbl_80356D84:
/* 80356D84 003529E4  2C 00 00 00 */	cmpwi r0, 0
/* 80356D88 003529E8  41 82 00 0C */	beq lbl_80356D94
/* 80356D8C 003529EC  38 00 00 00 */	li r0, 0
/* 80356D90 003529F0  48 00 00 14 */	b lbl_80356DA4
lbl_80356D94:
/* 80356D94 003529F4  80 65 00 08 */	lwz r3, 8(r5)
/* 80356D98 003529F8  54 80 08 3C */	slwi r0, r4, 1
/* 80356D9C 003529FC  7C 03 02 2E */	lhzx r0, r3, r0
/* 80356DA0 00352A00  54 00 05 EE */	rlwinm r0, r0, 0, 0x17, 0x17
lbl_80356DA4:
/* 80356DA4 00352A04  2C 00 00 00 */	cmpwi r0, 0
/* 80356DA8 00352A08  40 82 FF BC */	bne lbl_80356D64
/* 80356DAC 00352A0C  7F 66 DB 78 */	mr r6, r27
/* 80356DB0 00352A10  48 00 00 08 */	b lbl_80356DB8
lbl_80356DB4:
/* 80356DB4 00352A14  38 C6 00 01 */	addi r6, r6, 1
lbl_80356DB8:
/* 80356DB8 00352A18  88 06 00 00 */	lbz r0, 0(r6)
/* 80356DBC 00352A1C  7C 04 07 75 */	extsb. r4, r0
/* 80356DC0 00352A20  41 82 00 40 */	beq lbl_80356E00
/* 80356DC4 00352A24  38 00 00 00 */	li r0, 0
/* 80356DC8 00352A28  41 80 00 0C */	blt lbl_80356DD4
/* 80356DCC 00352A2C  2C 04 01 00 */	cmpwi r4, 0x100
/* 80356DD0 00352A30  41 80 00 08 */	blt lbl_80356DD8
lbl_80356DD4:
/* 80356DD4 00352A34  38 00 00 01 */	li r0, 1
lbl_80356DD8:
/* 80356DD8 00352A38  2C 00 00 00 */	cmpwi r0, 0
/* 80356DDC 00352A3C  41 82 00 0C */	beq lbl_80356DE8
/* 80356DE0 00352A40  38 00 00 00 */	li r0, 0
/* 80356DE4 00352A44  48 00 00 14 */	b lbl_80356DF8
lbl_80356DE8:
/* 80356DE8 00352A48  80 65 00 08 */	lwz r3, 8(r5)
/* 80356DEC 00352A4C  54 80 08 3C */	slwi r0, r4, 1
/* 80356DF0 00352A50  7C 03 02 2E */	lhzx r0, r3, r0
/* 80356DF4 00352A54  54 00 05 EE */	rlwinm r0, r0, 0, 0x17, 0x17
lbl_80356DF8:
/* 80356DF8 00352A58  2C 00 00 00 */	cmpwi r0, 0
/* 80356DFC 00352A5C  41 82 FF B8 */	beq lbl_80356DB4
lbl_80356E00:
/* 80356E00 00352A60  38 00 00 00 */	li r0, 0
/* 80356E04 00352A64  98 06 00 00 */	stb r0, 0(r6)
/* 80356E08 00352A68  88 1B 00 00 */	lbz r0, 0(r27)
/* 80356E0C 00352A6C  2C 00 00 2F */	cmpwi r0, 0x2f
/* 80356E10 00352A70  40 82 00 5C */	bne lbl_80356E6C
/* 80356E14 00352A74  7F 63 DB 78 */	mr r3, r27
/* 80356E18 00352A78  4B E6 FD 4D */	bl strlen
/* 80356E1C 00352A7C  7C 76 1B 78 */	mr r22, r3
/* 80356E20 00352A80  80 78 00 18 */	lwz r3, 0x18(r24)
/* 80356E24 00352A84  4B E6 FD 41 */	bl strlen
/* 80356E28 00352A88  7C 63 B2 14 */	add r3, r3, r22
/* 80356E2C 00352A8C  38 63 00 0E */	addi r3, r3, 0xe
/* 80356E30 00352A90  4B FE 24 E5 */	bl gsimalloc
/* 80356E34 00352A94  2C 03 00 00 */	cmpwi r3, 0
/* 80356E38 00352A98  90 78 01 2C */	stw r3, 0x12c(r24)
/* 80356E3C 00352A9C  40 82 00 10 */	bne lbl_80356E4C
/* 80356E40 00352AA0  38 00 00 01 */	li r0, 1
/* 80356E44 00352AA4  90 18 01 20 */	stw r0, 0x120(r24)
/* 80356E48 00352AA8  90 18 00 3C */	stw r0, 0x3c(r24)
lbl_80356E4C:
/* 80356E4C 00352AAC  80 78 01 2C */	lwz r3, 0x12c(r24)
/* 80356E50 00352AB0  7F 67 DB 78 */	mr r7, r27
/* 80356E54 00352AB4  80 B8 00 18 */	lwz r5, 0x18(r24)
/* 80356E58 00352AB8  38 9E 00 8C */	addi r4, r30, 0x8c
/* 80356E5C 00352ABC  A0 D8 00 20 */	lhz r6, 0x20(r24)
/* 80356E60 00352AC0  4C C6 31 82 */	crclr 6
/* 80356E64 00352AC4  4B E7 5C 99 */	bl sprintf
/* 80356E68 00352AC8  48 00 01 F4 */	b lbl_8035705C
lbl_80356E6C:
/* 80356E6C 00352ACC  7F 63 DB 78 */	mr r3, r27
/* 80356E70 00352AD0  4B FE 20 95 */	bl goastrdup
/* 80356E74 00352AD4  2C 03 00 00 */	cmpwi r3, 0
/* 80356E78 00352AD8  90 78 01 2C */	stw r3, 0x12c(r24)
/* 80356E7C 00352ADC  40 82 01 E0 */	bne lbl_8035705C
/* 80356E80 00352AE0  38 00 00 01 */	li r0, 1
/* 80356E84 00352AE4  90 18 01 20 */	stw r0, 0x120(r24)
/* 80356E88 00352AE8  90 18 00 3C */	stw r0, 0x3c(r24)
/* 80356E8C 00352AEC  48 00 01 D0 */	b lbl_8035705C
lbl_80356E90:
/* 80356E90 00352AF0  7F A3 EB 78 */	mr r3, r29
/* 80356E94 00352AF4  38 9E 00 A0 */	addi r4, r30, 0xa0
/* 80356E98 00352AF8  4B E7 79 09 */	bl strstr
/* 80356E9C 00352AFC  2C 03 00 00 */	cmpwi r3, 0
/* 80356EA0 00352B00  7C 7F 1B 78 */	mr r31, r3
/* 80356EA4 00352B04  41 82 01 00 */	beq lbl_80356FA4
/* 80356EA8 00352B08  3E C0 80 40 */	lis r22, lbl_80402580@ha
/* 80356EAC 00352B0C  8E F6 25 80 */	lbzu r23, lbl_80402580@l(r22)
/* 80356EB0 00352B10  3B 43 00 10 */	addi r26, r3, 0x10
/* 80356EB4 00352B14  38 61 00 0C */	addi r3, r1, 0xc
/* 80356EB8 00352B18  89 96 00 01 */	lbz r12, 1(r22)
/* 80356EBC 00352B1C  7F 59 D3 78 */	mr r25, r26
/* 80356EC0 00352B20  89 76 00 02 */	lbz r11, 2(r22)
/* 80356EC4 00352B24  89 56 00 03 */	lbz r10, 3(r22)
/* 80356EC8 00352B28  89 36 00 04 */	lbz r9, 4(r22)
/* 80356ECC 00352B2C  89 16 00 05 */	lbz r8, 5(r22)
/* 80356ED0 00352B30  88 F6 00 06 */	lbz r7, 6(r22)
/* 80356ED4 00352B34  88 D6 00 07 */	lbz r6, 7(r22)
/* 80356ED8 00352B38  88 B6 00 08 */	lbz r5, 8(r22)
/* 80356EDC 00352B3C  88 96 00 09 */	lbz r4, 9(r22)
/* 80356EE0 00352B40  88 16 00 0A */	lbz r0, 0xa(r22)
/* 80356EE4 00352B44  9A E1 00 0C */	stb r23, 0xc(r1)
/* 80356EE8 00352B48  99 81 00 0D */	stb r12, 0xd(r1)
/* 80356EEC 00352B4C  99 61 00 0E */	stb r11, 0xe(r1)
/* 80356EF0 00352B50  99 41 00 0F */	stb r10, 0xf(r1)
/* 80356EF4 00352B54  99 21 00 10 */	stb r9, 0x10(r1)
/* 80356EF8 00352B58  99 01 00 11 */	stb r8, 0x11(r1)
/* 80356EFC 00352B5C  98 E1 00 12 */	stb r7, 0x12(r1)
/* 80356F00 00352B60  98 C1 00 13 */	stb r6, 0x13(r1)
/* 80356F04 00352B64  98 A1 00 14 */	stb r5, 0x14(r1)
/* 80356F08 00352B68  98 81 00 15 */	stb r4, 0x15(r1)
/* 80356F0C 00352B6C  98 01 00 16 */	stb r0, 0x16(r1)
/* 80356F10 00352B70  4B E6 FC 55 */	bl strlen
/* 80356F14 00352B74  48 00 00 08 */	b lbl_80356F1C
lbl_80356F18:
/* 80356F18 00352B78  3B 39 00 01 */	addi r25, r25, 1
lbl_80356F1C:
/* 80356F1C 00352B7C  2C 19 00 00 */	cmpwi r25, 0
/* 80356F20 00352B80  41 82 00 28 */	beq lbl_80356F48
/* 80356F24 00352B84  88 19 00 00 */	lbz r0, 0(r25)
/* 80356F28 00352B88  7C 00 07 75 */	extsb. r0, r0
/* 80356F2C 00352B8C  41 82 00 1C */	beq lbl_80356F48
/* 80356F30 00352B90  2C 00 00 0A */	cmpwi r0, 0xa
/* 80356F34 00352B94  41 82 00 14 */	beq lbl_80356F48
/* 80356F38 00352B98  2C 00 00 0D */	cmpwi r0, 0xd
/* 80356F3C 00352B9C  41 82 00 0C */	beq lbl_80356F48
/* 80356F40 00352BA0  2C 00 00 20 */	cmpwi r0, 0x20
/* 80356F44 00352BA4  40 82 FF D4 */	bne lbl_80356F18
lbl_80356F48:
/* 80356F48 00352BA8  7C BA C8 50 */	subf r5, r26, r25
/* 80356F4C 00352BAC  7C 05 18 00 */	cmpw r5, r3
/* 80356F50 00352BB0  40 81 00 18 */	ble lbl_80356F68
/* 80356F54 00352BB4  38 60 00 01 */	li r3, 1
/* 80356F58 00352BB8  38 00 00 10 */	li r0, 0x10
/* 80356F5C 00352BBC  90 78 01 20 */	stw r3, 0x120(r24)
/* 80356F60 00352BC0  90 18 00 3C */	stw r0, 0x3c(r24)
/* 80356F64 00352BC4  48 00 00 F8 */	b lbl_8035705C
lbl_80356F68:
/* 80356F68 00352BC8  7C 03 28 00 */	cmpw r3, r5
/* 80356F6C 00352BCC  40 82 00 2C */	bne lbl_80356F98
/* 80356F70 00352BD0  7F 43 D3 78 */	mr r3, r26
/* 80356F74 00352BD4  38 81 00 0C */	addi r4, r1, 0xc
/* 80356F78 00352BD8  4B E7 75 F1 */	bl strncmp
/* 80356F7C 00352BDC  2C 03 00 00 */	cmpwi r3, 0
/* 80356F80 00352BE0  41 80 00 18 */	blt lbl_80356F98
/* 80356F84 00352BE4  38 60 00 01 */	li r3, 1
/* 80356F88 00352BE8  38 00 00 10 */	li r0, 0x10
/* 80356F8C 00352BEC  90 78 01 20 */	stw r3, 0x120(r24)
/* 80356F90 00352BF0  90 18 00 3C */	stw r0, 0x3c(r24)
/* 80356F94 00352BF4  48 00 00 C8 */	b lbl_8035705C
lbl_80356F98:
/* 80356F98 00352BF8  7F 43 D3 78 */	mr r3, r26
/* 80356F9C 00352BFC  4B E7 97 71 */	bl atoi
/* 80356FA0 00352C00  90 78 01 28 */	stw r3, 0x128(r24)
lbl_80356FA4:
/* 80356FA4 00352C04  7F A3 EB 78 */	mr r3, r29
/* 80356FA8 00352C08  38 9E 00 B0 */	addi r4, r30, 0xb0
/* 80356FAC 00352C0C  4B E7 77 F5 */	bl strstr
/* 80356FB0 00352C10  7C 03 00 D0 */	neg r0, r3
/* 80356FB4 00352C14  7C 00 1B 78 */	or r0, r0, r3
/* 80356FB8 00352C18  54 00 0F FF */	rlwinm. r0, r0, 1, 0x1f, 0x1f
/* 80356FBC 00352C1C  90 18 01 34 */	stw r0, 0x134(r24)
/* 80356FC0 00352C20  41 82 00 18 */	beq lbl_80356FD8
/* 80356FC4 00352C24  38 00 00 00 */	li r0, 0
/* 80356FC8 00352C28  98 18 01 38 */	stb r0, 0x138(r24)
/* 80356FCC 00352C2C  90 18 01 44 */	stw r0, 0x144(r24)
/* 80356FD0 00352C30  90 18 01 48 */	stw r0, 0x148(r24)
/* 80356FD4 00352C34  90 18 01 4C */	stw r0, 0x14c(r24)
lbl_80356FD8:
/* 80356FD8 00352C38  80 78 00 0C */	lwz r3, 0xc(r24)
/* 80356FDC 00352C3C  38 03 FF FD */	addi r0, r3, -3
/* 80356FE0 00352C40  28 00 00 01 */	cmplwi r0, 1
/* 80356FE4 00352C44  41 81 00 10 */	bgt lbl_80356FF4
/* 80356FE8 00352C48  38 00 00 01 */	li r0, 1
/* 80356FEC 00352C4C  90 18 01 20 */	stw r0, 0x120(r24)
/* 80356FF0 00352C50  48 00 00 6C */	b lbl_8035705C
lbl_80356FF4:
/* 80356FF4 00352C54  38 00 00 0A */	li r0, 0xa
/* 80356FF8 00352C58  2C 1F 00 00 */	cmpwi r31, 0
/* 80356FFC 00352C5C  90 18 00 10 */	stw r0, 0x10(r24)
/* 80357000 00352C60  41 82 00 1C */	beq lbl_8035701C
/* 80357004 00352C64  80 18 01 28 */	lwz r0, 0x128(r24)
/* 80357008 00352C68  2C 00 00 00 */	cmpwi r0, 0
/* 8035700C 00352C6C  40 82 00 10 */	bne lbl_8035701C
/* 80357010 00352C70  38 00 00 01 */	li r0, 1
/* 80357014 00352C74  90 18 01 20 */	stw r0, 0x120(r24)
/* 80357018 00352C78  48 00 00 44 */	b lbl_8035705C
lbl_8035701C:
/* 8035701C 00352C7C  2C 1B 00 00 */	cmpwi r27, 0
/* 80357020 00352C80  40 81 00 3C */	ble lbl_8035705C
/* 80357024 00352C84  7F 03 C3 78 */	mr r3, r24
/* 80357028 00352C88  7F 84 E3 78 */	mr r4, r28
/* 8035702C 00352C8C  7F 65 DB 78 */	mr r5, r27
/* 80357030 00352C90  4B FF F8 65 */	bl ghiProcessIncomingFileData
/* 80357034 00352C94  48 00 00 28 */	b lbl_8035705C
lbl_80357038:
/* 80357038 00352C98  2C 16 00 02 */	cmpwi r22, 2
/* 8035703C 00352C9C  40 82 00 20 */	bne lbl_8035705C
/* 80357040 00352CA0  38 60 00 01 */	li r3, 1
/* 80357044 00352CA4  38 00 00 07 */	li r0, 7
/* 80357048 00352CA8  90 78 01 20 */	stw r3, 0x120(r24)
/* 8035704C 00352CAC  80 78 00 4C */	lwz r3, 0x4c(r24)
/* 80357050 00352CB0  90 18 00 3C */	stw r0, 0x3c(r24)
/* 80357054 00352CB4  4B FE 0F 55 */	bl GOAGetLastError
/* 80357058 00352CB8  90 78 00 50 */	stw r3, 0x50(r24)
lbl_8035705C:
/* 8035705C 00352CBC  39 61 10 40 */	addi r11, r1, 0x1040
/* 80357060 00352CC0  4B E7 01 01 */	bl _restgpr_22
/* 80357064 00352CC4  80 01 10 44 */	lwz r0, 0x1044(r1)
/* 80357068 00352CC8  7C 08 03 A6 */	mtlr r0
/* 8035706C 00352CCC  38 21 10 40 */	addi r1, r1, 0x1040
/* 80357070 00352CD0  4E 80 00 20 */	blr

.global ghiDoReceivingFile
ghiDoReceivingFile:
/* 80357074 00352CD4  94 21 DF E0 */	stwu r1, -0x2020(r1)
/* 80357078 00352CD8  7C 08 02 A6 */	mflr r0
/* 8035707C 00352CDC  90 01 20 24 */	stw r0, 0x2024(r1)
/* 80357080 00352CE0  93 E1 20 1C */	stw r31, 0x201c(r1)
/* 80357084 00352CE4  93 C1 20 18 */	stw r30, 0x2018(r1)
/* 80357088 00352CE8  93 A1 20 14 */	stw r29, 0x2014(r1)
/* 8035708C 00352CEC  7C 7D 1B 78 */	mr r29, r3
/* 80357090 00352CF0  4B FE 1F 49 */	bl current_time
/* 80357094 00352CF4  7C 7E 1B 78 */	mr r30, r3
/* 80357098 00352CF8  38 60 00 00 */	li r3, 0
/* 8035709C 00352CFC  3B E0 20 00 */	li r31, 0x2000
/* 803570A0 00352D00  48 00 00 F8 */	b lbl_80357198
lbl_803570A4:
/* 803570A4 00352D04  93 E1 00 08 */	stw r31, 8(r1)
/* 803570A8 00352D08  7F A3 EB 78 */	mr r3, r29
/* 803570AC 00352D0C  38 81 00 10 */	addi r4, r1, 0x10
/* 803570B0 00352D10  38 A1 00 08 */	addi r5, r1, 8
/* 803570B4 00352D14  4B FF A3 91 */	bl ghiDoReceive
/* 803570B8 00352D18  2C 03 00 03 */	cmpwi r3, 3
/* 803570BC 00352D1C  41 82 00 F4 */	beq lbl_803571B0
/* 803570C0 00352D20  2C 03 00 01 */	cmpwi r3, 1
/* 803570C4 00352D24  41 82 00 EC */	beq lbl_803571B0
/* 803570C8 00352D28  2C 03 00 02 */	cmpwi r3, 2
/* 803570CC 00352D2C  40 82 00 30 */	bne lbl_803570FC
/* 803570D0 00352D30  80 7D 01 28 */	lwz r3, 0x128(r29)
/* 803570D4 00352D34  38 00 00 01 */	li r0, 1
/* 803570D8 00352D38  90 1D 01 20 */	stw r0, 0x120(r29)
/* 803570DC 00352D3C  2C 03 00 00 */	cmpwi r3, 0
/* 803570E0 00352D40  40 81 00 D0 */	ble lbl_803571B0
/* 803570E4 00352D44  80 1D 01 24 */	lwz r0, 0x124(r29)
/* 803570E8 00352D48  7C 00 18 00 */	cmpw r0, r3
/* 803570EC 00352D4C  40 80 00 C4 */	bge lbl_803571B0
/* 803570F0 00352D50  38 00 00 0F */	li r0, 0xf
/* 803570F4 00352D54  90 1D 00 3C */	stw r0, 0x3c(r29)
/* 803570F8 00352D58  48 00 00 B8 */	b lbl_803571B0
lbl_803570FC:
/* 803570FC 00352D5C  80 1D 01 94 */	lwz r0, 0x194(r29)
/* 80357100 00352D60  2C 00 00 00 */	cmpwi r0, 0
/* 80357104 00352D64  41 82 00 74 */	beq lbl_80357178
/* 80357108 00352D68  80 A1 00 08 */	lwz r5, 8(r1)
/* 8035710C 00352D6C  38 7D 00 C0 */	addi r3, r29, 0xc0
/* 80357110 00352D70  38 81 00 10 */	addi r4, r1, 0x10
/* 80357114 00352D74  4B FF 99 A9 */	bl ghiAppendDataToBuffer
/* 80357118 00352D78  2C 03 00 00 */	cmpwi r3, 0
/* 8035711C 00352D7C  41 82 00 94 */	beq lbl_803571B0
/* 80357120 00352D80  80 1D 00 AC */	lwz r0, 0xac(r29)
/* 80357124 00352D84  7F A3 EB 78 */	mr r3, r29
/* 80357128 00352D88  90 1D 00 A8 */	stw r0, 0xa8(r29)
/* 8035712C 00352D8C  4B FF A1 C9 */	bl ghiDecryptReceivedData
/* 80357130 00352D90  2C 03 00 00 */	cmpwi r3, 0
/* 80357134 00352D94  40 82 00 18 */	bne lbl_8035714C
/* 80357138 00352D98  38 60 00 01 */	li r3, 1
/* 8035713C 00352D9C  38 00 00 11 */	li r0, 0x11
/* 80357140 00352DA0  90 7D 01 20 */	stw r3, 0x120(r29)
/* 80357144 00352DA4  90 1D 00 3C */	stw r0, 0x3c(r29)
/* 80357148 00352DA8  48 00 00 68 */	b lbl_803571B0
lbl_8035714C:
/* 8035714C 00352DAC  80 9D 00 AC */	lwz r4, 0xac(r29)
/* 80357150 00352DB0  80 1D 00 A8 */	lwz r0, 0xa8(r29)
/* 80357154 00352DB4  7C A4 00 51 */	subf. r5, r4, r0
/* 80357158 00352DB8  41 82 00 38 */	beq lbl_80357190
/* 8035715C 00352DBC  80 1D 00 A0 */	lwz r0, 0xa0(r29)
/* 80357160 00352DC0  7F A3 EB 78 */	mr r3, r29
/* 80357164 00352DC4  7C 80 22 14 */	add r4, r0, r4
/* 80357168 00352DC8  4B FF F7 2D */	bl ghiProcessIncomingFileData
/* 8035716C 00352DCC  2C 03 00 00 */	cmpwi r3, 0
/* 80357170 00352DD0  40 82 00 20 */	bne lbl_80357190
/* 80357174 00352DD4  48 00 00 3C */	b lbl_803571B0
lbl_80357178:
/* 80357178 00352DD8  80 A1 00 08 */	lwz r5, 8(r1)
/* 8035717C 00352DDC  7F A3 EB 78 */	mr r3, r29
/* 80357180 00352DE0  38 81 00 10 */	addi r4, r1, 0x10
/* 80357184 00352DE4  4B FF F7 11 */	bl ghiProcessIncomingFileData
/* 80357188 00352DE8  2C 03 00 00 */	cmpwi r3, 0
/* 8035718C 00352DEC  41 82 00 24 */	beq lbl_803571B0
lbl_80357190:
/* 80357190 00352DF0  4B FE 1E 49 */	bl current_time
/* 80357194 00352DF4  7C 7E 18 50 */	subf r3, r30, r3
lbl_80357198:
/* 80357198 00352DF8  80 1D 01 20 */	lwz r0, 0x120(r29)
/* 8035719C 00352DFC  2C 00 00 00 */	cmpwi r0, 0
/* 803571A0 00352E00  40 82 00 10 */	bne lbl_803571B0
/* 803571A4 00352E04  80 1D 01 84 */	lwz r0, 0x184(r29)
/* 803571A8 00352E08  7C 03 00 40 */	cmplw r3, r0
/* 803571AC 00352E0C  41 80 FE F8 */	blt lbl_803570A4
lbl_803571B0:
/* 803571B0 00352E10  80 01 20 24 */	lwz r0, 0x2024(r1)
/* 803571B4 00352E14  83 E1 20 1C */	lwz r31, 0x201c(r1)
/* 803571B8 00352E18  83 C1 20 18 */	lwz r30, 0x2018(r1)
/* 803571BC 00352E1C  83 A1 20 14 */	lwz r29, 0x2014(r1)
/* 803571C0 00352E20  7C 08 03 A6 */	mtlr r0
/* 803571C4 00352E24  38 21 20 20 */	addi r1, r1, 0x2020
/* 803571C8 00352E28  4E 80 00 20 */	blr