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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global gti2ConnectionHash
gti2ConnectionHash:
/* 8034CFB8 00348C18 80 A3 00 00 */ lwz r5, 0(r3)
/* 8034CFBC 00348C1C 80 65 00 00 */ lwz r3, 0(r5)
/* 8034CFC0 00348C20 A0 05 00 04 */ lhz r0, 4(r5)
/* 8034CFC4 00348C24 7C 63 01 D6 */ mullw r3, r3, r0
/* 8034CFC8 00348C28 7C 03 23 96 */ divwu r0, r3, r4
/* 8034CFCC 00348C2C 7C 00 21 D6 */ mullw r0, r0, r4
/* 8034CFD0 00348C30 7C 60 18 50 */ subf r3, r0, r3
/* 8034CFD4 00348C34 4E 80 00 20 */ blr
.global gti2ConnectionCompare
gti2ConnectionCompare:
/* 8034CFD8 00348C38 80 A3 00 00 */ lwz r5, 0(r3)
/* 8034CFDC 00348C3C 80 84 00 00 */ lwz r4, 0(r4)
/* 8034CFE0 00348C40 80 65 00 00 */ lwz r3, 0(r5)
/* 8034CFE4 00348C44 80 04 00 00 */ lwz r0, 0(r4)
/* 8034CFE8 00348C48 7C 03 00 40 */ cmplw r3, r0
/* 8034CFEC 00348C4C 41 82 00 0C */ beq lbl_8034CFF8
/* 8034CFF0 00348C50 7C 60 18 50 */ subf r3, r0, r3
/* 8034CFF4 00348C54 4E 80 00 20 */ blr
lbl_8034CFF8:
/* 8034CFF8 00348C58 A0 64 00 04 */ lhz r3, 4(r4)
/* 8034CFFC 00348C5C A0 05 00 04 */ lhz r0, 4(r5)
/* 8034D000 00348C60 7C 03 00 50 */ subf r0, r3, r0
/* 8034D004 00348C64 7C 03 07 34 */ extsh r3, r0
/* 8034D008 00348C68 4E 80 00 20 */ blr
.global gti2ConnectionFree
gti2ConnectionFree:
/* 8034D00C 00348C6C 80 63 00 00 */ lwz r3, 0(r3)
/* 8034D010 00348C70 4B FF C9 3C */ b gti2ConnectionCleanup
.global gti2SocketFindConnection
gti2SocketFindConnection:
/* 8034D014 00348C74 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 8034D018 00348C78 7C 08 02 A6 */ mflr r0
/* 8034D01C 00348C7C 90 01 00 B4 */ stw r0, 0xb4(r1)
/* 8034D020 00348C80 38 01 00 10 */ addi r0, r1, 0x10
/* 8034D024 00348C84 90 81 00 10 */ stw r4, 0x10(r1)
/* 8034D028 00348C88 38 81 00 08 */ addi r4, r1, 8
/* 8034D02C 00348C8C B0 A1 00 14 */ sth r5, 0x14(r1)
/* 8034D030 00348C90 90 01 00 08 */ stw r0, 8(r1)
/* 8034D034 00348C94 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8034D038 00348C98 4B FE 9A E5 */ bl TableLookup
/* 8034D03C 00348C9C 2C 03 00 00 */ cmpwi r3, 0
/* 8034D040 00348CA0 41 82 00 0C */ beq lbl_8034D04C
/* 8034D044 00348CA4 80 63 00 00 */ lwz r3, 0(r3)
/* 8034D048 00348CA8 48 00 00 08 */ b lbl_8034D050
lbl_8034D04C:
/* 8034D04C 00348CAC 38 60 00 00 */ li r3, 0
lbl_8034D050:
/* 8034D050 00348CB0 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 8034D054 00348CB4 7C 08 03 A6 */ mtlr r0
/* 8034D058 00348CB8 38 21 00 B0 */ addi r1, r1, 0xb0
/* 8034D05C 00348CBC 4E 80 00 20 */ blr
.global gti2CreateSocket
gti2CreateSocket:
/* 8034D060 00348CC0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8034D064 00348CC4 7C 08 02 A6 */ mflr r0
/* 8034D068 00348CC8 90 01 00 44 */ stw r0, 0x44(r1)
/* 8034D06C 00348CCC 39 61 00 40 */ addi r11, r1, 0x40
/* 8034D070 00348CD0 4B E7 A0 B5 */ bl _savegpr_26
/* 8034D074 00348CD4 7C 7A 1B 78 */ mr r26, r3
/* 8034D078 00348CD8 7C 9F 23 78 */ mr r31, r4
/* 8034D07C 00348CDC 7C BB 2B 78 */ mr r27, r5
/* 8034D080 00348CE0 7C DC 33 78 */ mr r28, r6
/* 8034D084 00348CE4 7C FD 3B 78 */ mr r29, r7
/* 8034D088 00348CE8 7D 1E 43 78 */ mr r30, r8
/* 8034D08C 00348CEC 4B FE BF 45 */ bl SocketStartUp
/* 8034D090 00348CF0 2C 1C 00 00 */ cmpwi r28, 0
/* 8034D094 00348CF4 40 82 00 08 */ bne lbl_8034D09C
/* 8034D098 00348CF8 3F 80 00 01 */ lis r28, 1
lbl_8034D09C:
/* 8034D09C 00348CFC 2C 1B 00 00 */ cmpwi r27, 0
/* 8034D0A0 00348D00 40 82 00 08 */ bne lbl_8034D0A8
/* 8034D0A4 00348D04 3F 60 00 01 */ lis r27, 1
lbl_8034D0A8:
/* 8034D0A8 00348D08 7F E3 FB 78 */ mr r3, r31
/* 8034D0AC 00348D0C 38 81 00 10 */ addi r4, r1, 0x10
/* 8034D0B0 00348D10 38 A1 00 08 */ addi r5, r1, 8
/* 8034D0B4 00348D14 48 00 0B 7D */ bl gt2StringToAddress
/* 8034D0B8 00348D18 2C 03 00 00 */ cmpwi r3, 0
/* 8034D0BC 00348D1C 40 82 00 0C */ bne lbl_8034D0C8
/* 8034D0C0 00348D20 38 60 00 04 */ li r3, 4
/* 8034D0C4 00348D24 48 00 01 C0 */ b lbl_8034D284
lbl_8034D0C8:
/* 8034D0C8 00348D28 38 60 00 4C */ li r3, 0x4c
/* 8034D0CC 00348D2C 4B FE C2 49 */ bl gsimalloc
/* 8034D0D0 00348D30 2C 03 00 00 */ cmpwi r3, 0
/* 8034D0D4 00348D34 7C 7F 1B 78 */ mr r31, r3
/* 8034D0D8 00348D38 40 82 00 0C */ bne lbl_8034D0E4
/* 8034D0DC 00348D3C 38 60 00 01 */ li r3, 1
/* 8034D0E0 00348D40 48 00 01 A4 */ b lbl_8034D284
lbl_8034D0E4:
/* 8034D0E4 00348D44 38 80 00 00 */ li r4, 0
/* 8034D0E8 00348D48 38 A0 00 4C */ li r5, 0x4c
/* 8034D0EC 00348D4C 4B CB 70 19 */ bl memset
/* 8034D0F0 00348D50 38 00 FF FF */ li r0, -1
/* 8034D0F4 00348D54 3C C0 80 35 */ lis r6, gti2ConnectionHash@ha
/* 8034D0F8 00348D58 90 1F 00 00 */ stw r0, 0(r31)
/* 8034D0FC 00348D5C 3C E0 80 35 */ lis r7, gti2ConnectionCompare@ha
/* 8034D100 00348D60 38 C6 CF B8 */ addi r6, r6, gti2ConnectionHash@l
/* 8034D104 00348D64 38 60 00 04 */ li r3, 4
/* 8034D108 00348D68 93 9F 00 3C */ stw r28, 0x3c(r31)
/* 8034D10C 00348D6C 38 E7 CF D8 */ addi r7, r7, gti2ConnectionCompare@l
/* 8034D110 00348D70 38 80 00 20 */ li r4, 0x20
/* 8034D114 00348D74 38 A0 00 02 */ li r5, 2
/* 8034D118 00348D78 93 7F 00 38 */ stw r27, 0x38(r31)
/* 8034D11C 00348D7C 39 00 00 00 */ li r8, 0
/* 8034D120 00348D80 93 BF 00 24 */ stw r29, 0x24(r31)
/* 8034D124 00348D84 4B FE 97 05 */ bl TableNew2
/* 8034D128 00348D88 2C 03 00 00 */ cmpwi r3, 0
/* 8034D12C 00348D8C 90 7F 00 0C */ stw r3, 0xc(r31)
/* 8034D130 00348D90 40 82 00 14 */ bne lbl_8034D144
/* 8034D134 00348D94 7F E3 FB 78 */ mr r3, r31
/* 8034D138 00348D98 4B FE C2 01 */ bl gsifree
/* 8034D13C 00348D9C 38 60 00 01 */ li r3, 1
/* 8034D140 00348DA0 48 00 01 44 */ b lbl_8034D284
lbl_8034D144:
/* 8034D144 00348DA4 3C A0 80 35 */ lis r5, gti2ConnectionFree@ha
/* 8034D148 00348DA8 38 60 00 04 */ li r3, 4
/* 8034D14C 00348DAC 38 A5 D0 0C */ addi r5, r5, gti2ConnectionFree@l
/* 8034D150 00348DB0 38 80 00 04 */ li r4, 4
/* 8034D154 00348DB4 4B FE 8C 65 */ bl ArrayNew
/* 8034D158 00348DB8 2C 03 00 00 */ cmpwi r3, 0
/* 8034D15C 00348DBC 90 7F 00 10 */ stw r3, 0x10(r31)
/* 8034D160 00348DC0 40 82 00 1C */ bne lbl_8034D17C
/* 8034D164 00348DC4 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8034D168 00348DC8 4B FE 97 65 */ bl TableFree
/* 8034D16C 00348DCC 7F E3 FB 78 */ mr r3, r31
/* 8034D170 00348DD0 4B FE C1 C9 */ bl gsifree
/* 8034D174 00348DD4 38 60 00 01 */ li r3, 1
/* 8034D178 00348DD8 48 00 01 0C */ b lbl_8034D284
lbl_8034D17C:
/* 8034D17C 00348DDC 38 60 00 02 */ li r3, 2
/* 8034D180 00348DE0 38 80 00 02 */ li r4, 2
/* 8034D184 00348DE4 38 A0 00 11 */ li r5, 0x11
/* 8034D188 00348DE8 4B FE AA 3D */ bl socket
/* 8034D18C 00348DEC 90 7F 00 00 */ stw r3, 0(r31)
/* 8034D190 00348DF0 2C 1E 00 03 */ cmpwi r30, 3
/* 8034D194 00348DF4 93 DF 00 40 */ stw r30, 0x40(r31)
/* 8034D198 00348DF8 40 82 00 10 */ bne lbl_8034D1A8
/* 8034D19C 00348DFC 38 00 00 00 */ li r0, 0
/* 8034D1A0 00348E00 90 1F 00 44 */ stw r0, 0x44(r31)
/* 8034D1A4 00348E04 48 00 00 08 */ b lbl_8034D1AC
lbl_8034D1A8:
/* 8034D1A8 00348E08 93 DF 00 44 */ stw r30, 0x44(r31)
lbl_8034D1AC:
/* 8034D1AC 00348E0C 80 1F 00 00 */ lwz r0, 0(r31)
/* 8034D1B0 00348E10 2C 00 FF FF */ cmpwi r0, -1
/* 8034D1B4 00348E14 40 82 00 24 */ bne lbl_8034D1D8
/* 8034D1B8 00348E18 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8034D1BC 00348E1C 4B FE 97 11 */ bl TableFree
/* 8034D1C0 00348E20 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8034D1C4 00348E24 4B FE 8C 91 */ bl ArrayFree
/* 8034D1C8 00348E28 7F E3 FB 78 */ mr r3, r31
/* 8034D1CC 00348E2C 4B FE C1 6D */ bl gsifree
/* 8034D1D0 00348E30 38 60 00 03 */ li r3, 3
/* 8034D1D4 00348E34 48 00 00 B0 */ b lbl_8034D284
lbl_8034D1D8:
/* 8034D1D8 00348E38 38 61 00 18 */ addi r3, r1, 0x18
/* 8034D1DC 00348E3C 38 80 00 00 */ li r4, 0
/* 8034D1E0 00348E40 38 A0 00 08 */ li r5, 8
/* 8034D1E4 00348E44 4B CB 6F 21 */ bl memset
/* 8034D1E8 00348E48 80 01 00 10 */ lwz r0, 0x10(r1)
/* 8034D1EC 00348E4C 38 60 00 02 */ li r3, 2
/* 8034D1F0 00348E50 98 61 00 19 */ stb r3, 0x19(r1)
/* 8034D1F4 00348E54 A0 61 00 08 */ lhz r3, 8(r1)
/* 8034D1F8 00348E58 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8034D1FC 00348E5C 4B FA 9B 81 */ bl SOHtoNs
/* 8034D200 00348E60 2C 1E 00 03 */ cmpwi r30, 3
/* 8034D204 00348E64 B0 61 00 1A */ sth r3, 0x1a(r1)
/* 8034D208 00348E68 41 82 00 18 */ beq lbl_8034D220
/* 8034D20C 00348E6C 80 7F 00 00 */ lwz r3, 0(r31)
/* 8034D210 00348E70 38 81 00 18 */ addi r4, r1, 0x18
/* 8034D214 00348E74 38 A0 00 08 */ li r5, 8
/* 8034D218 00348E78 4B FE AA 4D */ bl bind
/* 8034D21C 00348E7C 7C 7E 1B 78 */ mr r30, r3
lbl_8034D220:
/* 8034D220 00348E80 2C 1E FF FF */ cmpwi r30, -1
/* 8034D224 00348E84 40 82 00 2C */ bne lbl_8034D250
/* 8034D228 00348E88 80 7F 00 00 */ lwz r3, 0(r31)
/* 8034D22C 00348E8C 4B FE A9 D1 */ bl closesocket
/* 8034D230 00348E90 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8034D234 00348E94 4B FE 96 99 */ bl TableFree
/* 8034D238 00348E98 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8034D23C 00348E9C 4B FE 8C 19 */ bl ArrayFree
/* 8034D240 00348EA0 7F E3 FB 78 */ mr r3, r31
/* 8034D244 00348EA4 4B FE C0 F5 */ bl gsifree
/* 8034D248 00348EA8 38 60 00 03 */ li r3, 3
/* 8034D24C 00348EAC 48 00 00 38 */ b lbl_8034D284
lbl_8034D250:
/* 8034D250 00348EB0 38 00 00 08 */ li r0, 8
/* 8034D254 00348EB4 38 81 00 18 */ addi r4, r1, 0x18
/* 8034D258 00348EB8 90 01 00 0C */ stw r0, 0xc(r1)
/* 8034D25C 00348EBC 38 A1 00 0C */ addi r5, r1, 0xc
/* 8034D260 00348EC0 80 7F 00 00 */ lwz r3, 0(r31)
/* 8034D264 00348EC4 4B FE AC B1 */ bl getsockname
/* 8034D268 00348EC8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8034D26C 00348ECC 90 1F 00 04 */ stw r0, 4(r31)
/* 8034D270 00348ED0 A0 61 00 1A */ lhz r3, 0x1a(r1)
/* 8034D274 00348ED4 4B FA 9A FD */ bl SONtoHs
/* 8034D278 00348ED8 B0 7F 00 08 */ sth r3, 8(r31)
/* 8034D27C 00348EDC 38 60 00 00 */ li r3, 0
/* 8034D280 00348EE0 93 FA 00 00 */ stw r31, 0(r26)
lbl_8034D284:
/* 8034D284 00348EE4 39 61 00 40 */ addi r11, r1, 0x40
/* 8034D288 00348EE8 4B E7 9E E9 */ bl _restgpr_26
/* 8034D28C 00348EEC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8034D290 00348EF0 7C 08 03 A6 */ mtlr r0
/* 8034D294 00348EF4 38 21 00 40 */ addi r1, r1, 0x40
/* 8034D298 00348EF8 4E 80 00 20 */ blr
.global gti2CloseSocket
gti2CloseSocket:
/* 8034D29C 00348EFC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034D2A0 00348F00 7C 08 02 A6 */ mflr r0
/* 8034D2A4 00348F04 90 01 00 14 */ stw r0, 0x14(r1)
/* 8034D2A8 00348F08 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034D2AC 00348F0C 7C 7F 1B 78 */ mr r31, r3
/* 8034D2B0 00348F10 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8034D2B4 00348F14 2C 00 00 00 */ cmpwi r0, 0
/* 8034D2B8 00348F18 41 82 00 10 */ beq lbl_8034D2C8
/* 8034D2BC 00348F1C 38 00 00 01 */ li r0, 1
/* 8034D2C0 00348F20 90 03 00 14 */ stw r0, 0x14(r3)
/* 8034D2C4 00348F24 48 00 00 28 */ b lbl_8034D2EC
lbl_8034D2C8:
/* 8034D2C8 00348F28 80 63 00 00 */ lwz r3, 0(r3)
/* 8034D2CC 00348F2C 4B FE A9 31 */ bl closesocket
/* 8034D2D0 00348F30 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8034D2D4 00348F34 4B FE 95 F9 */ bl TableFree
/* 8034D2D8 00348F38 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8034D2DC 00348F3C 4B FE 8B 79 */ bl ArrayFree
/* 8034D2E0 00348F40 7F E3 FB 78 */ mr r3, r31
/* 8034D2E4 00348F44 4B FE C0 55 */ bl gsifree
/* 8034D2E8 00348F48 4B FE BC ED */ bl SocketShutDown
lbl_8034D2EC:
/* 8034D2EC 00348F4C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8034D2F0 00348F50 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8034D2F4 00348F54 7C 08 03 A6 */ mtlr r0
/* 8034D2F8 00348F58 38 21 00 10 */ addi r1, r1, 0x10
/* 8034D2FC 00348F5C 4E 80 00 20 */ blr
.global gti2Listen
gti2Listen:
/* 8034D300 00348F60 90 83 00 20 */ stw r4, 0x20(r3)
/* 8034D304 00348F64 4E 80 00 20 */ blr
.global gti2NewSocketConnection
gti2NewSocketConnection:
/* 8034D308 00348F68 94 21 FE 90 */ stwu r1, -0x170(r1)
/* 8034D30C 00348F6C 7C 08 02 A6 */ mflr r0
/* 8034D310 00348F70 90 01 01 74 */ stw r0, 0x174(r1)
/* 8034D314 00348F74 39 61 01 70 */ addi r11, r1, 0x170
/* 8034D318 00348F78 4B E7 9E 11 */ bl _savegpr_27
/* 8034D31C 00348F7C 38 01 00 B8 */ addi r0, r1, 0xb8
/* 8034D320 00348F80 3B E0 00 00 */ li r31, 0
/* 8034D324 00348F84 93 E1 00 10 */ stw r31, 0x10(r1)
/* 8034D328 00348F88 7C 9C 23 78 */ mr r28, r4
/* 8034D32C 00348F8C 7C 7B 1B 78 */ mr r27, r3
/* 8034D330 00348F90 7C BD 2B 78 */ mr r29, r5
/* 8034D334 00348F94 90 A1 00 B8 */ stw r5, 0xb8(r1)
/* 8034D338 00348F98 7C DE 33 78 */ mr r30, r6
/* 8034D33C 00348F9C 38 81 00 0C */ addi r4, r1, 0xc
/* 8034D340 00348FA0 B0 C1 00 BC */ sth r6, 0xbc(r1)
/* 8034D344 00348FA4 90 01 00 0C */ stw r0, 0xc(r1)
/* 8034D348 00348FA8 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8034D34C 00348FAC 4B FE 97 D1 */ bl TableLookup
/* 8034D350 00348FB0 2C 03 00 00 */ cmpwi r3, 0
/* 8034D354 00348FB4 41 82 00 08 */ beq lbl_8034D35C
/* 8034D358 00348FB8 83 E3 00 00 */ lwz r31, 0(r3)
lbl_8034D35C:
/* 8034D35C 00348FBC 2C 1F 00 00 */ cmpwi r31, 0
/* 8034D360 00348FC0 41 82 00 0C */ beq lbl_8034D36C
/* 8034D364 00348FC4 38 60 00 05 */ li r3, 5
/* 8034D368 00348FC8 48 00 01 FC */ b lbl_8034D564
lbl_8034D36C:
/* 8034D36C 00348FCC 38 60 00 A0 */ li r3, 0xa0
/* 8034D370 00348FD0 4B FE BF A5 */ bl gsimalloc
/* 8034D374 00348FD4 2C 03 00 00 */ cmpwi r3, 0
/* 8034D378 00348FD8 90 61 00 10 */ stw r3, 0x10(r1)
/* 8034D37C 00348FDC 41 82 01 6C */ beq lbl_8034D4E8
/* 8034D380 00348FE0 38 80 00 00 */ li r4, 0
/* 8034D384 00348FE4 38 A0 00 A0 */ li r5, 0xa0
/* 8034D388 00348FE8 4B CB 6D 7D */ bl memset
/* 8034D38C 00348FEC 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D390 00348FF0 93 A3 00 00 */ stw r29, 0(r3)
/* 8034D394 00348FF4 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D398 00348FF8 B3 C3 00 04 */ sth r30, 4(r3)
/* 8034D39C 00348FFC 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D3A0 00349000 93 63 00 08 */ stw r27, 8(r3)
/* 8034D3A4 00349004 4B FE BC 35 */ bl current_time
/* 8034D3A8 00349008 80 81 00 10 */ lwz r4, 0x10(r1)
/* 8034D3AC 0034900C 3B E0 00 00 */ li r31, 0
/* 8034D3B0 00349010 90 64 00 1C */ stw r3, 0x1c(r4)
/* 8034D3B4 00349014 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D3B8 00349018 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8034D3BC 0034901C 90 03 00 88 */ stw r0, 0x88(r3)
/* 8034D3C0 00349020 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D3C4 00349024 B3 E3 00 64 */ sth r31, 0x64(r3)
/* 8034D3C8 00349028 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D3CC 0034902C B3 E3 00 66 */ sth r31, 0x66(r3)
/* 8034D3D0 00349030 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D3D4 00349034 80 9B 00 3C */ lwz r4, 0x3c(r27)
/* 8034D3D8 00349038 38 63 00 44 */ addi r3, r3, 0x44
/* 8034D3DC 0034903C 4B FF B5 1D */ bl gti2AllocateBuffer
/* 8034D3E0 00349040 2C 03 00 00 */ cmpwi r3, 0
/* 8034D3E4 00349044 41 82 01 04 */ beq lbl_8034D4E8
/* 8034D3E8 00349048 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D3EC 0034904C 80 9B 00 38 */ lwz r4, 0x38(r27)
/* 8034D3F0 00349050 38 63 00 50 */ addi r3, r3, 0x50
/* 8034D3F4 00349054 4B FF B5 05 */ bl gti2AllocateBuffer
/* 8034D3F8 00349058 2C 03 00 00 */ cmpwi r3, 0
/* 8034D3FC 0034905C 41 82 00 EC */ beq lbl_8034D4E8
/* 8034D400 00349060 38 60 00 10 */ li r3, 0x10
/* 8034D404 00349064 38 80 00 40 */ li r4, 0x40
/* 8034D408 00349068 38 A0 00 00 */ li r5, 0
/* 8034D40C 0034906C 4B FE 89 AD */ bl ArrayNew
/* 8034D410 00349070 80 81 00 10 */ lwz r4, 0x10(r1)
/* 8034D414 00349074 90 64 00 5C */ stw r3, 0x5c(r4)
/* 8034D418 00349078 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D41C 0034907C 80 03 00 5C */ lwz r0, 0x5c(r3)
/* 8034D420 00349080 2C 00 00 00 */ cmpwi r0, 0
/* 8034D424 00349084 41 82 00 C4 */ beq lbl_8034D4E8
/* 8034D428 00349088 38 60 00 10 */ li r3, 0x10
/* 8034D42C 0034908C 38 80 00 40 */ li r4, 0x40
/* 8034D430 00349090 38 A0 00 00 */ li r5, 0
/* 8034D434 00349094 4B FE 89 85 */ bl ArrayNew
/* 8034D438 00349098 80 81 00 10 */ lwz r4, 0x10(r1)
/* 8034D43C 0034909C 90 64 00 60 */ stw r3, 0x60(r4)
/* 8034D440 003490A0 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D444 003490A4 80 03 00 60 */ lwz r0, 0x60(r3)
/* 8034D448 003490A8 2C 00 00 00 */ cmpwi r0, 0
/* 8034D44C 003490AC 41 82 00 9C */ beq lbl_8034D4E8
/* 8034D450 003490B0 38 60 00 04 */ li r3, 4
/* 8034D454 003490B4 38 80 00 02 */ li r4, 2
/* 8034D458 003490B8 38 A0 00 00 */ li r5, 0
/* 8034D45C 003490BC 4B FE 89 5D */ bl ArrayNew
/* 8034D460 003490C0 80 81 00 10 */ lwz r4, 0x10(r1)
/* 8034D464 003490C4 90 64 00 98 */ stw r3, 0x98(r4)
/* 8034D468 003490C8 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D46C 003490CC 80 03 00 98 */ lwz r0, 0x98(r3)
/* 8034D470 003490D0 2C 00 00 00 */ cmpwi r0, 0
/* 8034D474 003490D4 41 82 00 74 */ beq lbl_8034D4E8
/* 8034D478 003490D8 38 60 00 04 */ li r3, 4
/* 8034D47C 003490DC 38 80 00 02 */ li r4, 2
/* 8034D480 003490E0 38 A0 00 00 */ li r5, 0
/* 8034D484 003490E4 4B FE 89 35 */ bl ArrayNew
/* 8034D488 003490E8 80 81 00 10 */ lwz r4, 0x10(r1)
/* 8034D48C 003490EC 90 64 00 9C */ stw r3, 0x9c(r4)
/* 8034D490 003490F0 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D494 003490F4 80 03 00 9C */ lwz r0, 0x9c(r3)
/* 8034D498 003490F8 2C 00 00 00 */ cmpwi r0, 0
/* 8034D49C 003490FC 41 82 00 4C */ beq lbl_8034D4E8
/* 8034D4A0 00349100 80 7B 00 0C */ lwz r3, 0xc(r27)
/* 8034D4A4 00349104 38 81 00 10 */ addi r4, r1, 0x10
/* 8034D4A8 00349108 4B FE 95 29 */ bl TableEnter
/* 8034D4AC 0034910C 38 01 00 18 */ addi r0, r1, 0x18
/* 8034D4B0 00349110 93 A1 00 18 */ stw r29, 0x18(r1)
/* 8034D4B4 00349114 38 81 00 08 */ addi r4, r1, 8
/* 8034D4B8 00349118 B3 C1 00 1C */ sth r30, 0x1c(r1)
/* 8034D4BC 0034911C 90 01 00 08 */ stw r0, 8(r1)
/* 8034D4C0 00349120 80 7B 00 0C */ lwz r3, 0xc(r27)
/* 8034D4C4 00349124 4B FE 96 59 */ bl TableLookup
/* 8034D4C8 00349128 2C 03 00 00 */ cmpwi r3, 0
/* 8034D4CC 0034912C 41 82 00 08 */ beq lbl_8034D4D4
/* 8034D4D0 00349130 83 E3 00 00 */ lwz r31, 0(r3)
lbl_8034D4D4:
/* 8034D4D4 00349134 2C 1F 00 00 */ cmpwi r31, 0
/* 8034D4D8 00349138 93 FC 00 00 */ stw r31, 0(r28)
/* 8034D4DC 0034913C 41 82 00 0C */ beq lbl_8034D4E8
/* 8034D4E0 00349140 38 60 00 00 */ li r3, 0
/* 8034D4E4 00349144 48 00 00 80 */ b lbl_8034D564
lbl_8034D4E8:
/* 8034D4E8 00349148 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D4EC 0034914C 2C 03 00 00 */ cmpwi r3, 0
/* 8034D4F0 00349150 41 82 00 70 */ beq lbl_8034D560
/* 8034D4F4 00349154 80 63 00 44 */ lwz r3, 0x44(r3)
/* 8034D4F8 00349158 4B FE BE 41 */ bl gsifree
/* 8034D4FC 0034915C 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D500 00349160 80 63 00 50 */ lwz r3, 0x50(r3)
/* 8034D504 00349164 4B FE BE 35 */ bl gsifree
/* 8034D508 00349168 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D50C 0034916C 80 63 00 5C */ lwz r3, 0x5c(r3)
/* 8034D510 00349170 2C 03 00 00 */ cmpwi r3, 0
/* 8034D514 00349174 41 82 00 08 */ beq lbl_8034D51C
/* 8034D518 00349178 4B FE 89 3D */ bl ArrayFree
lbl_8034D51C:
/* 8034D51C 0034917C 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D520 00349180 80 63 00 60 */ lwz r3, 0x60(r3)
/* 8034D524 00349184 2C 03 00 00 */ cmpwi r3, 0
/* 8034D528 00349188 41 82 00 08 */ beq lbl_8034D530
/* 8034D52C 0034918C 4B FE 89 29 */ bl ArrayFree
lbl_8034D530:
/* 8034D530 00349190 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D534 00349194 80 63 00 98 */ lwz r3, 0x98(r3)
/* 8034D538 00349198 2C 03 00 00 */ cmpwi r3, 0
/* 8034D53C 0034919C 41 82 00 08 */ beq lbl_8034D544
/* 8034D540 003491A0 4B FE 89 15 */ bl ArrayFree
lbl_8034D544:
/* 8034D544 003491A4 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D548 003491A8 80 63 00 9C */ lwz r3, 0x9c(r3)
/* 8034D54C 003491AC 2C 03 00 00 */ cmpwi r3, 0
/* 8034D550 003491B0 41 82 00 08 */ beq lbl_8034D558
/* 8034D554 003491B4 4B FE 89 01 */ bl ArrayFree
lbl_8034D558:
/* 8034D558 003491B8 80 61 00 10 */ lwz r3, 0x10(r1)
/* 8034D55C 003491BC 4B FE BD DD */ bl gsifree
lbl_8034D560:
/* 8034D560 003491C0 38 60 00 01 */ li r3, 1
lbl_8034D564:
/* 8034D564 003491C4 39 61 01 70 */ addi r11, r1, 0x170
/* 8034D568 003491C8 4B E7 9C 0D */ bl _restgpr_27
/* 8034D56C 003491CC 80 01 01 74 */ lwz r0, 0x174(r1)
/* 8034D570 003491D0 7C 08 03 A6 */ mtlr r0
/* 8034D574 003491D4 38 21 01 70 */ addi r1, r1, 0x170
/* 8034D578 003491D8 4E 80 00 20 */ blr
.global gti2FreeSocketConnection
gti2FreeSocketConnection:
/* 8034D57C 003491DC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8034D580 003491E0 7C 08 02 A6 */ mflr r0
/* 8034D584 003491E4 90 01 00 24 */ stw r0, 0x24(r1)
/* 8034D588 003491E8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034D58C 003491EC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8034D590 003491F0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8034D594 003491F4 90 61 00 08 */ stw r3, 8(r1)
/* 8034D598 003491F8 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8034D59C 003491FC 2C 00 00 00 */ cmpwi r0, 0
/* 8034D5A0 00349200 40 82 00 8C */ bne lbl_8034D62C
/* 8034D5A4 00349204 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8034D5A8 00349208 2C 00 00 00 */ cmpwi r0, 0
/* 8034D5AC 0034920C 41 82 00 08 */ beq lbl_8034D5B4
/* 8034D5B0 00349210 48 00 00 7C */ b lbl_8034D62C
lbl_8034D5B4:
/* 8034D5B4 00349214 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8034D5B8 00349218 2C 00 00 07 */ cmpwi r0, 7
/* 8034D5BC 0034921C 40 82 00 60 */ bne lbl_8034D61C
/* 8034D5C0 00349220 80 63 00 08 */ lwz r3, 8(r3)
/* 8034D5C4 00349224 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034D5C8 00349228 4B FE 89 21 */ bl ArrayLength
/* 8034D5CC 0034922C 7C 7F 1B 78 */ mr r31, r3
/* 8034D5D0 00349230 3B A0 00 00 */ li r29, 0
/* 8034D5D4 00349234 48 00 00 3C */ b lbl_8034D610
lbl_8034D5D8:
/* 8034D5D8 00349238 83 C1 00 08 */ lwz r30, 8(r1)
/* 8034D5DC 0034923C 7F A4 EB 78 */ mr r4, r29
/* 8034D5E0 00349240 80 7E 00 08 */ lwz r3, 8(r30)
/* 8034D5E4 00349244 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034D5E8 00349248 4B FE 89 09 */ bl ArrayNth
/* 8034D5EC 0034924C 80 03 00 00 */ lwz r0, 0(r3)
/* 8034D5F0 00349250 7C 1E 00 40 */ cmplw r30, r0
/* 8034D5F4 00349254 40 82 00 18 */ bne lbl_8034D60C
/* 8034D5F8 00349258 80 7E 00 08 */ lwz r3, 8(r30)
/* 8034D5FC 0034925C 7F A4 EB 78 */ mr r4, r29
/* 8034D600 00349260 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034D604 00349264 4B FE 8C 6D */ bl ArrayDeleteAt
/* 8034D608 00349268 48 00 00 24 */ b lbl_8034D62C
lbl_8034D60C:
/* 8034D60C 0034926C 3B BD 00 01 */ addi r29, r29, 1
lbl_8034D610:
/* 8034D610 00349270 7C 1D F8 00 */ cmpw r29, r31
/* 8034D614 00349274 41 80 FF C4 */ blt lbl_8034D5D8
/* 8034D618 00349278 48 00 00 14 */ b lbl_8034D62C
lbl_8034D61C:
/* 8034D61C 0034927C 80 63 00 08 */ lwz r3, 8(r3)
/* 8034D620 00349280 38 81 00 08 */ addi r4, r1, 8
/* 8034D624 00349284 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8034D628 00349288 4B FE 94 51 */ bl TableRemove
lbl_8034D62C:
/* 8034D62C 0034928C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034D630 00349290 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8034D634 00349294 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8034D638 00349298 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8034D63C 0034929C 7C 08 03 A6 */ mtlr r0
/* 8034D640 003492A0 38 21 00 20 */ addi r1, r1, 0x20
/* 8034D644 003492A4 4E 80 00 20 */ blr
.global gti2SocketSend
gti2SocketSend:
/* 8034D648 003492A8 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 8034D64C 003492AC 7C 08 02 A6 */ mflr r0
/* 8034D650 003492B0 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 8034D654 003492B4 93 E1 00 CC */ stw r31, 0xcc(r1)
/* 8034D658 003492B8 7C BF 2B 78 */ mr r31, r5
/* 8034D65C 003492BC 93 C1 00 C8 */ stw r30, 0xc8(r1)
/* 8034D660 003492C0 7C 9E 23 78 */ mr r30, r4
/* 8034D664 003492C4 38 81 00 0C */ addi r4, r1, 0xc
/* 8034D668 003492C8 93 A1 00 C4 */ stw r29, 0xc4(r1)
/* 8034D66C 003492CC 7C 7D 1B 78 */ mr r29, r3
/* 8034D670 003492D0 38 61 00 08 */ addi r3, r1, 8
/* 8034D674 003492D4 90 C1 00 08 */ stw r6, 8(r1)
/* 8034D678 003492D8 90 E1 00 0C */ stw r7, 0xc(r1)
/* 8034D67C 003492DC 48 00 07 59 */ bl gti2MessageCheck
/* 8034D680 003492E0 80 1D 00 40 */ lwz r0, 0x40(r29)
/* 8034D684 003492E4 2C 00 00 03 */ cmpwi r0, 3
/* 8034D688 003492E8 41 82 00 1C */ beq lbl_8034D6A4
/* 8034D68C 003492EC 80 7D 00 00 */ lwz r3, 0(r29)
/* 8034D690 003492F0 4B FE B2 05 */ bl CanSendOnSocket
/* 8034D694 003492F4 2C 03 00 00 */ cmpwi r3, 0
/* 8034D698 003492F8 40 82 00 0C */ bne lbl_8034D6A4
/* 8034D69C 003492FC 38 60 00 01 */ li r3, 1
/* 8034D6A0 00349300 48 00 01 A8 */ b lbl_8034D848
lbl_8034D6A4:
/* 8034D6A4 00349304 38 61 00 18 */ addi r3, r1, 0x18
/* 8034D6A8 00349308 38 80 00 00 */ li r4, 0
/* 8034D6AC 0034930C 38 A0 00 08 */ li r5, 8
/* 8034D6B0 00349310 4B CB 6A 55 */ bl memset
/* 8034D6B4 00349314 38 00 00 02 */ li r0, 2
/* 8034D6B8 00349318 93 C1 00 1C */ stw r30, 0x1c(r1)
/* 8034D6BC 0034931C 7F E3 FB 78 */ mr r3, r31
/* 8034D6C0 00349320 98 01 00 19 */ stb r0, 0x19(r1)
/* 8034D6C4 00349324 4B FA 96 B9 */ bl SOHtoNs
/* 8034D6C8 00349328 B0 61 00 1A */ sth r3, 0x1a(r1)
/* 8034D6CC 0034932C 38 E1 00 18 */ addi r7, r1, 0x18
/* 8034D6D0 00349330 80 81 00 08 */ lwz r4, 8(r1)
/* 8034D6D4 00349334 38 C0 00 00 */ li r6, 0
/* 8034D6D8 00349338 80 7D 00 00 */ lwz r3, 0(r29)
/* 8034D6DC 0034933C 39 00 00 08 */ li r8, 8
/* 8034D6E0 00349340 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 8034D6E4 00349344 4B FE A7 B1 */ bl sendto
/* 8034D6E8 00349348 2C 03 FF FF */ cmpwi r3, -1
/* 8034D6EC 0034934C 40 82 00 EC */ bne lbl_8034D7D8
/* 8034D6F0 00349350 80 7D 00 00 */ lwz r3, 0(r29)
/* 8034D6F4 00349354 4B FE A8 B5 */ bl GOAGetLastError
/* 8034D6F8 00349358 2C 03 FF F1 */ cmpwi r3, -15
/* 8034D6FC 0034935C 40 82 00 24 */ bne lbl_8034D720
/* 8034D700 00349360 7F A3 EB 78 */ mr r3, r29
/* 8034D704 00349364 7F C4 F3 78 */ mr r4, r30
/* 8034D708 00349368 7F E5 FB 78 */ mr r5, r31
/* 8034D70C 0034936C 4B FF E5 41 */ bl gti2HandleConnectionReset
/* 8034D710 00349370 2C 03 00 00 */ cmpwi r3, 0
/* 8034D714 00349374 40 82 01 30 */ bne lbl_8034D844
/* 8034D718 00349378 38 60 00 00 */ li r3, 0
/* 8034D71C 0034937C 48 00 01 2C */ b lbl_8034D848
lbl_8034D720:
/* 8034D720 00349380 2C 03 FF E9 */ cmpwi r3, -23
/* 8034D724 00349384 40 82 00 28 */ bne lbl_8034D74C
/* 8034D728 00349388 7F A3 EB 78 */ mr r3, r29
/* 8034D72C 0034938C 7F C4 F3 78 */ mr r4, r30
/* 8034D730 00349390 7F E5 FB 78 */ mr r5, r31
/* 8034D734 00349394 38 C0 00 01 */ li r6, 1
/* 8034D738 00349398 4B FF E7 2D */ bl gti2HandleHostUnreachable
/* 8034D73C 0034939C 2C 03 00 00 */ cmpwi r3, 0
/* 8034D740 003493A0 40 82 01 04 */ bne lbl_8034D844
/* 8034D744 003493A4 38 60 00 00 */ li r3, 0
/* 8034D748 003493A8 48 00 01 00 */ b lbl_8034D848
lbl_8034D74C:
/* 8034D74C 003493AC 2C 03 FF D6 */ cmpwi r3, -42
/* 8034D750 003493B0 41 82 00 0C */ beq lbl_8034D75C
/* 8034D754 003493B4 2C 03 FF FA */ cmpwi r3, -6
/* 8034D758 003493B8 40 82 00 0C */ bne lbl_8034D764
lbl_8034D75C:
/* 8034D75C 003493BC 38 60 00 01 */ li r3, 1
/* 8034D760 003493C0 48 00 00 E8 */ b lbl_8034D848
lbl_8034D764:
/* 8034D764 003493C4 2C 03 FF DD */ cmpwi r3, -35
/* 8034D768 003493C8 41 82 00 DC */ beq lbl_8034D844
/* 8034D76C 003493CC 80 1D 00 18 */ lwz r0, 0x18(r29)
/* 8034D770 003493D0 2C 00 00 00 */ cmpwi r0, 0
/* 8034D774 003493D4 40 82 00 5C */ bne lbl_8034D7D0
/* 8034D778 003493D8 3B E0 00 01 */ li r31, 1
/* 8034D77C 003493DC 7F A3 EB 78 */ mr r3, r29
/* 8034D780 003493E0 93 FD 00 18 */ stw r31, 0x18(r29)
/* 8034D784 003493E4 4B FF C5 ED */ bl gt2CloseAllConnectionsHard
/* 8034D788 003493E8 7F A3 EB 78 */ mr r3, r29
/* 8034D78C 003493EC 4B FF B3 11 */ bl gti2SocketErrorCallback
/* 8034D790 003493F0 2C 03 00 00 */ cmpwi r3, 0
/* 8034D794 003493F4 41 82 00 3C */ beq lbl_8034D7D0
/* 8034D798 003493F8 80 1D 00 1C */ lwz r0, 0x1c(r29)
/* 8034D79C 003493FC 2C 00 00 00 */ cmpwi r0, 0
/* 8034D7A0 00349400 41 82 00 0C */ beq lbl_8034D7AC
/* 8034D7A4 00349404 93 FD 00 14 */ stw r31, 0x14(r29)
/* 8034D7A8 00349408 48 00 00 28 */ b lbl_8034D7D0
lbl_8034D7AC:
/* 8034D7AC 0034940C 80 7D 00 00 */ lwz r3, 0(r29)
/* 8034D7B0 00349410 4B FE A4 4D */ bl closesocket
/* 8034D7B4 00349414 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8034D7B8 00349418 4B FE 91 15 */ bl TableFree
/* 8034D7BC 0034941C 80 7D 00 10 */ lwz r3, 0x10(r29)
/* 8034D7C0 00349420 4B FE 86 95 */ bl ArrayFree
/* 8034D7C4 00349424 7F A3 EB 78 */ mr r3, r29
/* 8034D7C8 00349428 4B FE BB 71 */ bl gsifree
/* 8034D7CC 0034942C 4B FE B8 09 */ bl SocketShutDown
lbl_8034D7D0:
/* 8034D7D0 00349430 38 60 00 00 */ li r3, 0
/* 8034D7D4 00349434 48 00 00 74 */ b lbl_8034D848
lbl_8034D7D8:
/* 8034D7D8 00349438 80 1D 00 28 */ lwz r0, 0x28(r29)
/* 8034D7DC 0034943C 2C 00 00 00 */ cmpwi r0, 0
/* 8034D7E0 00349440 41 82 00 64 */ beq lbl_8034D844
/* 8034D7E4 00349444 38 01 00 20 */ addi r0, r1, 0x20
/* 8034D7E8 00349448 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8034D7EC 0034944C 38 81 00 10 */ addi r4, r1, 0x10
/* 8034D7F0 00349450 B3 E1 00 24 */ sth r31, 0x24(r1)
/* 8034D7F4 00349454 90 01 00 10 */ stw r0, 0x10(r1)
/* 8034D7F8 00349458 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8034D7FC 0034945C 4B FE 93 21 */ bl TableLookup
/* 8034D800 00349460 7C 64 1B 79 */ or. r4, r3, r3
/* 8034D804 00349464 7F A3 EB 78 */ mr r3, r29
/* 8034D808 00349468 41 82 00 0C */ beq lbl_8034D814
/* 8034D80C 0034946C 80 84 00 00 */ lwz r4, 0(r4)
/* 8034D810 00349470 48 00 00 08 */ b lbl_8034D818
lbl_8034D814:
/* 8034D814 00349474 38 80 00 00 */ li r4, 0
lbl_8034D818:
/* 8034D818 00349478 81 01 00 08 */ lwz r8, 8(r1)
/* 8034D81C 0034947C 7F C5 F3 78 */ mr r5, r30
/* 8034D820 00349480 81 21 00 0C */ lwz r9, 0xc(r1)
/* 8034D824 00349484 7F E6 FB 78 */ mr r6, r31
/* 8034D828 00349488 38 E0 00 00 */ li r7, 0
/* 8034D82C 0034948C 39 40 00 01 */ li r10, 1
/* 8034D830 00349490 4B FF B9 25 */ bl gti2DumpCallback
/* 8034D834 00349494 2C 03 00 00 */ cmpwi r3, 0
/* 8034D838 00349498 40 82 00 0C */ bne lbl_8034D844
/* 8034D83C 0034949C 38 60 00 00 */ li r3, 0
/* 8034D840 003494A0 48 00 00 08 */ b lbl_8034D848
lbl_8034D844:
/* 8034D844 003494A4 38 60 00 01 */ li r3, 1
lbl_8034D848:
/* 8034D848 003494A8 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 8034D84C 003494AC 83 E1 00 CC */ lwz r31, 0xcc(r1)
/* 8034D850 003494B0 83 C1 00 C8 */ lwz r30, 0xc8(r1)
/* 8034D854 003494B4 83 A1 00 C4 */ lwz r29, 0xc4(r1)
/* 8034D858 003494B8 7C 08 03 A6 */ mtlr r0
/* 8034D85C 003494BC 38 21 00 D0 */ addi r1, r1, 0xd0
/* 8034D860 003494C0 4E 80 00 20 */ blr
.global gti2SocketConnectionsThinkMap
gti2SocketConnectionsThinkMap:
/* 8034D864 003494C4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8034D868 003494C8 7C 08 02 A6 */ mflr r0
/* 8034D86C 003494CC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8034D870 003494D0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034D874 003494D4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8034D878 003494D8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8034D87C 003494DC 83 A3 00 00 */ lwz r29, 0(r3)
/* 8034D880 003494E0 80 84 00 00 */ lwz r4, 0(r4)
/* 8034D884 003494E4 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8034D888 003494E8 2C 00 00 07 */ cmpwi r0, 7
/* 8034D88C 003494EC 41 82 00 1C */ beq lbl_8034D8A8
/* 8034D890 003494F0 7F A3 EB 78 */ mr r3, r29
/* 8034D894 003494F4 4B FF BE 69 */ bl gti2ConnectionThink
/* 8034D898 003494F8 2C 03 00 00 */ cmpwi r3, 0
/* 8034D89C 003494FC 40 82 00 0C */ bne lbl_8034D8A8
/* 8034D8A0 00349500 38 60 00 00 */ li r3, 0
/* 8034D8A4 00349504 48 00 00 C0 */ b lbl_8034D964
lbl_8034D8A8:
/* 8034D8A8 00349508 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8034D8AC 0034950C 2C 00 00 07 */ cmpwi r0, 7
/* 8034D8B0 00349510 40 82 00 B0 */ bne lbl_8034D960
/* 8034D8B4 00349514 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 8034D8B8 00349518 2C 00 00 00 */ cmpwi r0, 0
/* 8034D8BC 0034951C 40 82 00 A4 */ bne lbl_8034D960
/* 8034D8C0 00349520 80 1D 00 24 */ lwz r0, 0x24(r29)
/* 8034D8C4 00349524 2C 00 00 00 */ cmpwi r0, 0
/* 8034D8C8 00349528 40 82 00 98 */ bne lbl_8034D960
/* 8034D8CC 0034952C 93 A1 00 08 */ stw r29, 8(r1)
/* 8034D8D0 00349530 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 8034D8D4 00349534 2C 00 00 00 */ cmpwi r0, 0
/* 8034D8D8 00349538 40 82 00 88 */ bne lbl_8034D960
/* 8034D8DC 0034953C 80 1D 00 24 */ lwz r0, 0x24(r29)
/* 8034D8E0 00349540 2C 00 00 00 */ cmpwi r0, 0
/* 8034D8E4 00349544 40 82 00 7C */ bne lbl_8034D960
/* 8034D8E8 00349548 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 8034D8EC 0034954C 2C 00 00 07 */ cmpwi r0, 7
/* 8034D8F0 00349550 40 82 00 60 */ bne lbl_8034D950
/* 8034D8F4 00349554 80 7D 00 08 */ lwz r3, 8(r29)
/* 8034D8F8 00349558 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034D8FC 0034955C 4B FE 85 ED */ bl ArrayLength
/* 8034D900 00349560 7C 7F 1B 78 */ mr r31, r3
/* 8034D904 00349564 3B C0 00 00 */ li r30, 0
/* 8034D908 00349568 48 00 00 3C */ b lbl_8034D944
lbl_8034D90C:
/* 8034D90C 0034956C 83 A1 00 08 */ lwz r29, 8(r1)
/* 8034D910 00349570 7F C4 F3 78 */ mr r4, r30
/* 8034D914 00349574 80 7D 00 08 */ lwz r3, 8(r29)
/* 8034D918 00349578 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034D91C 0034957C 4B FE 85 D5 */ bl ArrayNth
/* 8034D920 00349580 80 03 00 00 */ lwz r0, 0(r3)
/* 8034D924 00349584 7C 1D 00 40 */ cmplw r29, r0
/* 8034D928 00349588 40 82 00 18 */ bne lbl_8034D940
/* 8034D92C 0034958C 80 7D 00 08 */ lwz r3, 8(r29)
/* 8034D930 00349590 7F C4 F3 78 */ mr r4, r30
/* 8034D934 00349594 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034D938 00349598 4B FE 89 39 */ bl ArrayDeleteAt
/* 8034D93C 0034959C 48 00 00 24 */ b lbl_8034D960
lbl_8034D940:
/* 8034D940 003495A0 3B DE 00 01 */ addi r30, r30, 1
lbl_8034D944:
/* 8034D944 003495A4 7C 1E F8 00 */ cmpw r30, r31
/* 8034D948 003495A8 41 80 FF C4 */ blt lbl_8034D90C
/* 8034D94C 003495AC 48 00 00 14 */ b lbl_8034D960
lbl_8034D950:
/* 8034D950 003495B0 80 7D 00 08 */ lwz r3, 8(r29)
/* 8034D954 003495B4 38 81 00 08 */ addi r4, r1, 8
/* 8034D958 003495B8 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8034D95C 003495BC 4B FE 91 1D */ bl TableRemove
lbl_8034D960:
/* 8034D960 003495C0 38 60 00 01 */ li r3, 1
lbl_8034D964:
/* 8034D964 003495C4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034D968 003495C8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8034D96C 003495CC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8034D970 003495D0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8034D974 003495D4 7C 08 03 A6 */ mtlr r0
/* 8034D978 003495D8 38 21 00 20 */ addi r1, r1, 0x20
/* 8034D97C 003495DC 4E 80 00 20 */ blr
.global gti2SocketConnectionsThink
gti2SocketConnectionsThink:
/* 8034D980 003495E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8034D984 003495E4 7C 08 02 A6 */ mflr r0
/* 8034D988 003495E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8034D98C 003495EC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034D990 003495F0 7C 7F 1B 78 */ mr r31, r3
/* 8034D994 003495F4 4B FE B6 45 */ bl current_time
/* 8034D998 003495F8 90 61 00 08 */ stw r3, 8(r1)
/* 8034D99C 003495FC 3C 80 80 35 */ lis r4, gti2SocketConnectionsThinkMap@ha
/* 8034D9A0 00349600 38 84 D8 64 */ addi r4, r4, gti2SocketConnectionsThinkMap@l
/* 8034D9A4 00349604 38 A1 00 08 */ addi r5, r1, 8
/* 8034D9A8 00349608 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8034D9AC 0034960C 4B FE 92 7D */ bl TableMapSafe2
/* 8034D9B0 00349610 7C 60 00 34 */ cntlzw r0, r3
/* 8034D9B4 00349614 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8034D9B8 00349618 54 03 D9 7E */ srwi r3, r0, 5
/* 8034D9BC 0034961C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034D9C0 00349620 7C 08 03 A6 */ mtlr r0
/* 8034D9C4 00349624 38 21 00 20 */ addi r1, r1, 0x20
/* 8034D9C8 00349628 4E 80 00 20 */ blr
.global gti2FreeClosedConnections
gti2FreeClosedConnections:
/* 8034D9CC 0034962C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8034D9D0 00349630 7C 08 02 A6 */ mflr r0
/* 8034D9D4 00349634 90 01 00 34 */ stw r0, 0x34(r1)
/* 8034D9D8 00349638 39 61 00 30 */ addi r11, r1, 0x30
/* 8034D9DC 0034963C 4B E7 97 4D */ bl _savegpr_27
/* 8034D9E0 00349640 7C 7B 1B 78 */ mr r27, r3
/* 8034D9E4 00349644 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034D9E8 00349648 4B FE 85 01 */ bl ArrayLength
/* 8034D9EC 0034964C 3B 83 FF FF */ addi r28, r3, -1
/* 8034D9F0 00349650 48 00 00 AC */ b lbl_8034DA9C
lbl_8034D9F4:
/* 8034D9F4 00349654 80 7B 00 10 */ lwz r3, 0x10(r27)
/* 8034D9F8 00349658 7F 84 E3 78 */ mr r4, r28
/* 8034D9FC 0034965C 4B FE 84 F5 */ bl ArrayNth
/* 8034DA00 00349660 80 63 00 00 */ lwz r3, 0(r3)
/* 8034DA04 00349664 90 61 00 08 */ stw r3, 8(r1)
/* 8034DA08 00349668 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8034DA0C 0034966C 2C 00 00 00 */ cmpwi r0, 0
/* 8034DA10 00349670 40 82 00 88 */ bne lbl_8034DA98
/* 8034DA14 00349674 80 03 00 24 */ lwz r0, 0x24(r3)
/* 8034DA18 00349678 2C 00 00 00 */ cmpwi r0, 0
/* 8034DA1C 0034967C 40 82 00 7C */ bne lbl_8034DA98
/* 8034DA20 00349680 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8034DA24 00349684 2C 00 00 07 */ cmpwi r0, 7
/* 8034DA28 00349688 40 82 00 60 */ bne lbl_8034DA88
/* 8034DA2C 0034968C 80 63 00 08 */ lwz r3, 8(r3)
/* 8034DA30 00349690 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034DA34 00349694 4B FE 84 B5 */ bl ArrayLength
/* 8034DA38 00349698 7C 7F 1B 78 */ mr r31, r3
/* 8034DA3C 0034969C 3B C0 00 00 */ li r30, 0
/* 8034DA40 003496A0 48 00 00 3C */ b lbl_8034DA7C
lbl_8034DA44:
/* 8034DA44 003496A4 83 A1 00 08 */ lwz r29, 8(r1)
/* 8034DA48 003496A8 7F C4 F3 78 */ mr r4, r30
/* 8034DA4C 003496AC 80 7D 00 08 */ lwz r3, 8(r29)
/* 8034DA50 003496B0 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034DA54 003496B4 4B FE 84 9D */ bl ArrayNth
/* 8034DA58 003496B8 80 03 00 00 */ lwz r0, 0(r3)
/* 8034DA5C 003496BC 7C 1D 00 40 */ cmplw r29, r0
/* 8034DA60 003496C0 40 82 00 18 */ bne lbl_8034DA78
/* 8034DA64 003496C4 80 7D 00 08 */ lwz r3, 8(r29)
/* 8034DA68 003496C8 7F C4 F3 78 */ mr r4, r30
/* 8034DA6C 003496CC 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8034DA70 003496D0 4B FE 88 01 */ bl ArrayDeleteAt
/* 8034DA74 003496D4 48 00 00 24 */ b lbl_8034DA98
lbl_8034DA78:
/* 8034DA78 003496D8 3B DE 00 01 */ addi r30, r30, 1
lbl_8034DA7C:
/* 8034DA7C 003496DC 7C 1E F8 00 */ cmpw r30, r31
/* 8034DA80 003496E0 41 80 FF C4 */ blt lbl_8034DA44
/* 8034DA84 003496E4 48 00 00 14 */ b lbl_8034DA98
lbl_8034DA88:
/* 8034DA88 003496E8 80 63 00 08 */ lwz r3, 8(r3)
/* 8034DA8C 003496EC 38 81 00 08 */ addi r4, r1, 8
/* 8034DA90 003496F0 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8034DA94 003496F4 4B FE 8F E5 */ bl TableRemove
lbl_8034DA98:
/* 8034DA98 003496F8 3B 9C FF FF */ addi r28, r28, -1
lbl_8034DA9C:
/* 8034DA9C 003496FC 2C 1C 00 00 */ cmpwi r28, 0
/* 8034DAA0 00349700 40 80 FF 54 */ bge lbl_8034D9F4
/* 8034DAA4 00349704 39 61 00 30 */ addi r11, r1, 0x30
/* 8034DAA8 00349708 4B E7 96 CD */ bl _restgpr_27
/* 8034DAAC 0034970C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8034DAB0 00349710 7C 08 03 A6 */ mtlr r0
/* 8034DAB4 00349714 38 21 00 30 */ addi r1, r1, 0x30
/* 8034DAB8 00349718 4E 80 00 20 */ blr
.global gti2SocketError
gti2SocketError:
/* 8034DABC 0034971C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034DAC0 00349720 7C 08 02 A6 */ mflr r0
/* 8034DAC4 00349724 90 01 00 14 */ stw r0, 0x14(r1)
/* 8034DAC8 00349728 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034DACC 0034972C 93 C1 00 08 */ stw r30, 8(r1)
/* 8034DAD0 00349730 7C 7E 1B 78 */ mr r30, r3
/* 8034DAD4 00349734 80 03 00 18 */ lwz r0, 0x18(r3)
/* 8034DAD8 00349738 2C 00 00 00 */ cmpwi r0, 0
/* 8034DADC 0034973C 40 82 00 58 */ bne lbl_8034DB34
/* 8034DAE0 00349740 3B E0 00 01 */ li r31, 1
/* 8034DAE4 00349744 93 E3 00 18 */ stw r31, 0x18(r3)
/* 8034DAE8 00349748 4B FF C2 89 */ bl gt2CloseAllConnectionsHard
/* 8034DAEC 0034974C 7F C3 F3 78 */ mr r3, r30
/* 8034DAF0 00349750 4B FF AF AD */ bl gti2SocketErrorCallback
/* 8034DAF4 00349754 2C 03 00 00 */ cmpwi r3, 0
/* 8034DAF8 00349758 41 82 00 3C */ beq lbl_8034DB34
/* 8034DAFC 0034975C 80 1E 00 1C */ lwz r0, 0x1c(r30)
/* 8034DB00 00349760 2C 00 00 00 */ cmpwi r0, 0
/* 8034DB04 00349764 41 82 00 0C */ beq lbl_8034DB10
/* 8034DB08 00349768 93 FE 00 14 */ stw r31, 0x14(r30)
/* 8034DB0C 0034976C 48 00 00 28 */ b lbl_8034DB34
lbl_8034DB10:
/* 8034DB10 00349770 80 7E 00 00 */ lwz r3, 0(r30)
/* 8034DB14 00349774 4B FE A0 E9 */ bl closesocket
/* 8034DB18 00349778 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8034DB1C 0034977C 4B FE 8D B1 */ bl TableFree
/* 8034DB20 00349780 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 8034DB24 00349784 4B FE 83 31 */ bl ArrayFree
/* 8034DB28 00349788 7F C3 F3 78 */ mr r3, r30
/* 8034DB2C 0034978C 4B FE B8 0D */ bl gsifree
/* 8034DB30 00349790 4B FE B4 A5 */ bl SocketShutDown
lbl_8034DB34:
/* 8034DB34 00349794 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8034DB38 00349798 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8034DB3C 0034979C 83 C1 00 08 */ lwz r30, 8(r1)
/* 8034DB40 003497A0 7C 08 03 A6 */ mtlr r0
/* 8034DB44 003497A4 38 21 00 10 */ addi r1, r1, 0x10
/* 8034DB48 003497A8 4E 80 00 20 */ blr
|