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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global gti2NewOutgoingConnection
gti2NewOutgoingConnection:
/* 8034931C 00344F7C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80349320 00344F80 7C 08 02 A6 */ mflr r0
/* 80349324 00344F84 90 01 00 14 */ stw r0, 0x14(r1)
/* 80349328 00344F88 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034932C 00344F8C 7C 9F 23 78 */ mr r31, r4
/* 80349330 00344F90 48 00 3F D9 */ bl gti2NewSocketConnection
/* 80349334 00344F94 2C 03 00 00 */ cmpwi r3, 0
/* 80349338 00344F98 41 82 00 08 */ beq lbl_80349340
/* 8034933C 00344F9C 48 00 00 20 */ b lbl_8034935C
lbl_80349340:
/* 80349340 00344FA0 80 9F 00 00 */ lwz r4, 0(r31)
/* 80349344 00344FA4 38 A0 00 00 */ li r5, 0
/* 80349348 00344FA8 38 00 00 01 */ li r0, 1
/* 8034934C 00344FAC 38 60 00 00 */ li r3, 0
/* 80349350 00344FB0 90 A4 00 0C */ stw r5, 0xc(r4)
/* 80349354 00344FB4 80 9F 00 00 */ lwz r4, 0(r31)
/* 80349358 00344FB8 90 04 00 10 */ stw r0, 0x10(r4)
lbl_8034935C:
/* 8034935C 00344FBC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80349360 00344FC0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80349364 00344FC4 7C 08 03 A6 */ mtlr r0
/* 80349368 00344FC8 38 21 00 10 */ addi r1, r1, 0x10
/* 8034936C 00344FCC 4E 80 00 20 */ blr
.global gti2NewIncomingConnection
gti2NewIncomingConnection:
/* 80349370 00344FD0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80349374 00344FD4 7C 08 02 A6 */ mflr r0
/* 80349378 00344FD8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8034937C 00344FDC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80349380 00344FE0 7C 9F 23 78 */ mr r31, r4
/* 80349384 00344FE4 48 00 3F 85 */ bl gti2NewSocketConnection
/* 80349388 00344FE8 2C 03 00 00 */ cmpwi r3, 0
/* 8034938C 00344FEC 41 82 00 08 */ beq lbl_80349394
/* 80349390 00344FF0 48 00 00 20 */ b lbl_803493B0
lbl_80349394:
/* 80349394 00344FF4 80 9F 00 00 */ lwz r4, 0(r31)
/* 80349398 00344FF8 38 A0 00 02 */ li r5, 2
/* 8034939C 00344FFC 38 00 00 00 */ li r0, 0
/* 803493A0 00345000 38 60 00 00 */ li r3, 0
/* 803493A4 00345004 90 A4 00 0C */ stw r5, 0xc(r4)
/* 803493A8 00345008 80 9F 00 00 */ lwz r4, 0(r31)
/* 803493AC 0034500C 90 04 00 10 */ stw r0, 0x10(r4)
lbl_803493B0:
/* 803493B0 00345010 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803493B4 00345014 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803493B8 00345018 7C 08 03 A6 */ mtlr r0
/* 803493BC 0034501C 38 21 00 10 */ addi r1, r1, 0x10
/* 803493C0 00345020 4E 80 00 20 */ blr
.global gti2StartConnectionAttempt
gti2StartConnectionAttempt:
/* 803493C4 00345024 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803493C8 00345028 7C 08 02 A6 */ mflr r0
/* 803493CC 0034502C 90 01 00 44 */ stw r0, 0x44(r1)
/* 803493D0 00345030 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 803493D4 00345034 7C DF 33 78 */ mr r31, r6
/* 803493D8 00345038 93 C1 00 38 */ stw r30, 0x38(r1)
/* 803493DC 0034503C 7C 7E 1B 78 */ mr r30, r3
/* 803493E0 00345040 38 61 00 08 */ addi r3, r1, 8
/* 803493E4 00345044 90 81 00 08 */ stw r4, 8(r1)
/* 803493E8 00345048 38 81 00 0C */ addi r4, r1, 0xc
/* 803493EC 0034504C 90 A1 00 0C */ stw r5, 0xc(r1)
/* 803493F0 00345050 48 00 49 E5 */ bl gti2MessageCheck
/* 803493F4 00345054 80 61 00 0C */ lwz r3, 0xc(r1)
/* 803493F8 00345058 2C 03 00 00 */ cmpwi r3, 0
/* 803493FC 0034505C 40 81 00 30 */ ble lbl_8034942C
/* 80349400 00345060 4B FE FF 15 */ bl gsimalloc
/* 80349404 00345064 2C 03 00 00 */ cmpwi r3, 0
/* 80349408 00345068 90 7E 00 38 */ stw r3, 0x38(r30)
/* 8034940C 0034506C 40 82 00 0C */ bne lbl_80349418
/* 80349410 00345070 38 60 00 01 */ li r3, 1
/* 80349414 00345074 48 00 00 6C */ b lbl_80349480
lbl_80349418:
/* 80349418 00345078 80 81 00 08 */ lwz r4, 8(r1)
/* 8034941C 0034507C 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 80349420 00345080 4B CB AB E1 */ bl memcpy
/* 80349424 00345084 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80349428 00345088 90 1E 00 3C */ stw r0, 0x3c(r30)
lbl_8034942C:
/* 8034942C 0034508C 2C 1F 00 00 */ cmpwi r31, 0
/* 80349430 00345090 41 82 00 24 */ beq lbl_80349454
/* 80349434 00345094 80 7F 00 00 */ lwz r3, 0(r31)
/* 80349438 00345098 80 1F 00 04 */ lwz r0, 4(r31)
/* 8034943C 0034509C 90 7E 00 28 */ stw r3, 0x28(r30)
/* 80349440 003450A0 90 1E 00 2C */ stw r0, 0x2c(r30)
/* 80349444 003450A4 80 7F 00 08 */ lwz r3, 8(r31)
/* 80349448 003450A8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 8034944C 003450AC 90 7E 00 30 */ stw r3, 0x30(r30)
/* 80349450 003450B0 90 1E 00 34 */ stw r0, 0x34(r30)
lbl_80349454:
/* 80349454 003450B4 38 61 00 10 */ addi r3, r1, 0x10
/* 80349458 003450B8 4B FF F0 DD */ bl gti2GetChallenge
/* 8034945C 003450BC 38 7E 00 68 */ addi r3, r30, 0x68
/* 80349460 003450C0 38 81 00 10 */ addi r4, r1, 0x10
/* 80349464 003450C4 4B FF F1 E1 */ bl gti2GetResponse
/* 80349468 003450C8 7F C3 F3 78 */ mr r3, r30
/* 8034946C 003450CC 38 81 00 10 */ addi r4, r1, 0x10
/* 80349470 003450D0 48 00 30 E9 */ bl gti2SendClientChallenge
/* 80349474 003450D4 38 00 00 00 */ li r0, 0
/* 80349478 003450D8 38 60 00 00 */ li r3, 0
/* 8034947C 003450DC 90 1E 00 0C */ stw r0, 0xc(r30)
lbl_80349480:
/* 80349480 003450E0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80349484 003450E4 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 80349488 003450E8 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8034948C 003450EC 7C 08 03 A6 */ mtlr r0
/* 80349490 003450F0 38 21 00 40 */ addi r1, r1, 0x40
/* 80349494 003450F4 4E 80 00 20 */ blr
.global gti2AcceptConnection
gti2AcceptConnection:
/* 80349498 003450F8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8034949C 003450FC 7C 08 02 A6 */ mflr r0
/* 803494A0 00345100 90 01 00 14 */ stw r0, 0x14(r1)
/* 803494A4 00345104 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803494A8 00345108 7C 9F 23 78 */ mr r31, r4
/* 803494AC 0034510C 93 C1 00 08 */ stw r30, 8(r1)
/* 803494B0 00345110 7C 7E 1B 78 */ mr r30, r3
/* 803494B4 00345114 80 03 00 14 */ lwz r0, 0x14(r3)
/* 803494B8 00345118 2C 00 00 00 */ cmpwi r0, 0
/* 803494BC 0034511C 41 82 00 14 */ beq lbl_803494D0
/* 803494C0 00345120 38 00 00 00 */ li r0, 0
/* 803494C4 00345124 90 03 00 14 */ stw r0, 0x14(r3)
/* 803494C8 00345128 38 60 00 00 */ li r3, 0
/* 803494CC 0034512C 48 00 00 58 */ b lbl_80349524
lbl_803494D0:
/* 803494D0 00345130 80 03 00 0C */ lwz r0, 0xc(r3)
/* 803494D4 00345134 38 80 00 00 */ li r4, 0
/* 803494D8 00345138 90 83 00 14 */ stw r4, 0x14(r3)
/* 803494DC 0034513C 2C 00 00 04 */ cmpwi r0, 4
/* 803494E0 00345140 41 82 00 0C */ beq lbl_803494EC
/* 803494E4 00345144 38 60 00 00 */ li r3, 0
/* 803494E8 00345148 48 00 00 3C */ b lbl_80349524
lbl_803494EC:
/* 803494EC 0034514C 48 00 31 51 */ bl gti2SendAccept
/* 803494F0 00345150 38 00 00 05 */ li r0, 5
/* 803494F4 00345154 2C 1F 00 00 */ cmpwi r31, 0
/* 803494F8 00345158 90 1E 00 0C */ stw r0, 0xc(r30)
/* 803494FC 0034515C 41 82 00 24 */ beq lbl_80349520
/* 80349500 00345160 80 7F 00 00 */ lwz r3, 0(r31)
/* 80349504 00345164 80 1F 00 04 */ lwz r0, 4(r31)
/* 80349508 00345168 90 7E 00 28 */ stw r3, 0x28(r30)
/* 8034950C 0034516C 90 1E 00 2C */ stw r0, 0x2c(r30)
/* 80349510 00345170 80 7F 00 08 */ lwz r3, 8(r31)
/* 80349514 00345174 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80349518 00345178 90 7E 00 30 */ stw r3, 0x30(r30)
/* 8034951C 0034517C 90 1E 00 34 */ stw r0, 0x34(r30)
lbl_80349520:
/* 80349520 00345180 38 60 00 01 */ li r3, 1
lbl_80349524:
/* 80349524 00345184 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80349528 00345188 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8034952C 0034518C 83 C1 00 08 */ lwz r30, 8(r1)
/* 80349530 00345190 7C 08 03 A6 */ mtlr r0
/* 80349534 00345194 38 21 00 10 */ addi r1, r1, 0x10
/* 80349538 00345198 4E 80 00 20 */ blr
.global gti2RejectConnection
gti2RejectConnection:
/* 8034953C 0034519C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80349540 003451A0 7C 08 02 A6 */ mflr r0
/* 80349544 003451A4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80349548 003451A8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034954C 003451AC 7C 7F 1B 78 */ mr r31, r3
/* 80349550 003451B0 90 81 00 08 */ stw r4, 8(r1)
/* 80349554 003451B4 38 80 00 00 */ li r4, 0
/* 80349558 003451B8 90 A1 00 0C */ stw r5, 0xc(r1)
/* 8034955C 003451BC 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80349560 003451C0 90 83 00 14 */ stw r4, 0x14(r3)
/* 80349564 003451C4 2C 00 00 04 */ cmpwi r0, 4
/* 80349568 003451C8 40 82 00 28 */ bne lbl_80349590
/* 8034956C 003451CC 38 61 00 08 */ addi r3, r1, 8
/* 80349570 003451D0 38 81 00 0C */ addi r4, r1, 0xc
/* 80349574 003451D4 48 00 48 61 */ bl gti2MessageCheck
/* 80349578 003451D8 80 81 00 08 */ lwz r4, 8(r1)
/* 8034957C 003451DC 7F E3 FB 78 */ mr r3, r31
/* 80349580 003451E0 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 80349584 003451E4 48 00 31 81 */ bl gti2SendReject
/* 80349588 003451E8 38 00 00 06 */ li r0, 6
/* 8034958C 003451EC 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_80349590:
/* 80349590 003451F0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80349594 003451F4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80349598 003451F8 7C 08 03 A6 */ mtlr r0
/* 8034959C 003451FC 38 21 00 20 */ addi r1, r1, 0x20
/* 803495A0 00345200 4E 80 00 20 */ blr
.global gti2ConnectionSendData
gti2ConnectionSendData:
/* 803495A4 00345204 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803495A8 00345208 7C 08 02 A6 */ mflr r0
/* 803495AC 0034520C 7C 86 23 78 */ mr r6, r4
/* 803495B0 00345210 7C A7 2B 78 */ mr r7, r5
/* 803495B4 00345214 90 01 00 14 */ stw r0, 0x14(r1)
/* 803495B8 00345218 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803495BC 0034521C 7C 7F 1B 78 */ mr r31, r3
/* 803495C0 00345220 80 63 00 08 */ lwz r3, 8(r3)
/* 803495C4 00345224 80 9F 00 00 */ lwz r4, 0(r31)
/* 803495C8 00345228 A0 BF 00 04 */ lhz r5, 4(r31)
/* 803495CC 0034522C 48 00 40 7D */ bl gti2SocketSend
/* 803495D0 00345230 2C 03 00 00 */ cmpwi r3, 0
/* 803495D4 00345234 40 82 00 0C */ bne lbl_803495E0
/* 803495D8 00345238 38 60 00 00 */ li r3, 0
/* 803495DC 0034523C 48 00 00 10 */ b lbl_803495EC
lbl_803495E0:
/* 803495E0 00345240 4B FE F9 F9 */ bl current_time
/* 803495E4 00345244 90 7F 00 88 */ stw r3, 0x88(r31)
/* 803495E8 00345248 38 60 00 01 */ li r3, 1
lbl_803495EC:
/* 803495EC 0034524C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803495F0 00345250 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803495F4 00345254 7C 08 03 A6 */ mtlr r0
/* 803495F8 00345258 38 21 00 10 */ addi r1, r1, 0x10
/* 803495FC 0034525C 4E 80 00 20 */ blr
.global gti2CheckTimeout
gti2CheckTimeout:
/* 80349600 00345260 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80349604 00345264 7C 08 02 A6 */ mflr r0
/* 80349608 00345268 90 01 00 24 */ stw r0, 0x24(r1)
/* 8034960C 0034526C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80349610 00345270 7C 7F 1B 78 */ mr r31, r3
/* 80349614 00345274 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 80349618 00345278 2C 05 00 05 */ cmpwi r5, 5
/* 8034961C 0034527C 40 80 00 C8 */ bge lbl_803496E4
/* 80349620 00345280 80 03 00 10 */ lwz r0, 0x10(r3)
/* 80349624 00345284 38 C0 00 00 */ li r6, 0
/* 80349628 00345288 2C 00 00 00 */ cmpwi r0, 0
/* 8034962C 0034528C 41 82 00 28 */ beq lbl_80349654
/* 80349630 00345290 80 A3 00 20 */ lwz r5, 0x20(r3)
/* 80349634 00345294 2C 05 00 00 */ cmpwi r5, 0
/* 80349638 00345298 41 82 00 38 */ beq lbl_80349670
/* 8034963C 0034529C 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80349640 003452A0 7C 00 20 50 */ subf r0, r0, r4
/* 80349644 003452A4 7C 00 28 40 */ cmplw r0, r5
/* 80349648 003452A8 40 81 00 28 */ ble lbl_80349670
/* 8034964C 003452AC 38 C0 00 01 */ li r6, 1
/* 80349650 003452B0 48 00 00 20 */ b lbl_80349670
lbl_80349654:
/* 80349654 003452B4 2C 05 00 04 */ cmpwi r5, 4
/* 80349658 003452B8 40 80 00 18 */ bge lbl_80349670
/* 8034965C 003452BC 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80349660 003452C0 7C 00 20 50 */ subf r0, r0, r4
/* 80349664 003452C4 28 00 EA 60 */ cmplwi r0, 0xea60
/* 80349668 003452C8 40 81 00 08 */ ble lbl_80349670
/* 8034966C 003452CC 38 C0 00 01 */ li r6, 1
lbl_80349670:
/* 80349670 003452D0 2C 06 00 00 */ cmpwi r6, 0
/* 80349674 003452D4 41 82 00 70 */ beq lbl_803496E4
/* 80349678 003452D8 7F E3 FB 78 */ mr r3, r31
/* 8034967C 003452DC 48 00 36 D9 */ bl gti2SendClosed
/* 80349680 003452E0 93 E1 00 08 */ stw r31, 8(r1)
/* 80349684 003452E4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80349688 003452E8 2C 00 00 07 */ cmpwi r0, 7
/* 8034968C 003452EC 41 82 00 34 */ beq lbl_803496C0
/* 80349690 003452F0 38 00 00 07 */ li r0, 7
/* 80349694 003452F4 38 81 00 08 */ addi r4, r1, 8
/* 80349698 003452F8 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8034969C 003452FC 80 61 00 08 */ lwz r3, 8(r1)
/* 803496A0 00345300 80 63 00 08 */ lwz r3, 8(r3)
/* 803496A4 00345304 80 63 00 0C */ lwz r3, 0xc(r3)
/* 803496A8 00345308 4B FE D3 D1 */ bl TableRemove
/* 803496AC 0034530C 80 61 00 08 */ lwz r3, 8(r1)
/* 803496B0 00345310 38 81 00 08 */ addi r4, r1, 8
/* 803496B4 00345314 80 63 00 08 */ lwz r3, 8(r3)
/* 803496B8 00345318 80 63 00 10 */ lwz r3, 0x10(r3)
/* 803496BC 0034531C 4B FE C8 65 */ bl ArrayAppend
lbl_803496C0:
/* 803496C0 00345320 7F E3 FB 78 */ mr r3, r31
/* 803496C4 00345324 38 80 00 06 */ li r4, 6
/* 803496C8 00345328 38 A0 00 00 */ li r5, 0
/* 803496CC 0034532C 38 C0 00 00 */ li r6, 0
/* 803496D0 00345330 4B FF F5 49 */ bl gti2ConnectedCallback
/* 803496D4 00345334 2C 03 00 00 */ cmpwi r3, 0
/* 803496D8 00345338 40 82 00 0C */ bne lbl_803496E4
/* 803496DC 0034533C 38 60 00 00 */ li r3, 0
/* 803496E0 00345340 48 00 00 08 */ b lbl_803496E8
lbl_803496E4:
/* 803496E4 00345344 38 60 00 01 */ li r3, 1
lbl_803496E8:
/* 803496E8 00345348 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803496EC 0034534C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803496F0 00345350 7C 08 03 A6 */ mtlr r0
/* 803496F4 00345354 38 21 00 20 */ addi r1, r1, 0x20
/* 803496F8 00345358 4E 80 00 20 */ blr
.global gti2ConnectionThink
gti2ConnectionThink:
/* 803496FC 0034535C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80349700 00345360 7C 08 02 A6 */ mflr r0
/* 80349704 00345364 90 01 00 24 */ stw r0, 0x24(r1)
/* 80349708 00345368 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034970C 0034536C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80349710 00345370 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80349714 00345374 7C 9D 23 78 */ mr r29, r4
/* 80349718 00345378 93 81 00 10 */ stw r28, 0x10(r1)
/* 8034971C 0034537C 7C 7C 1B 78 */ mr r28, r3
/* 80349720 00345380 4B FF FE E1 */ bl gti2CheckTimeout
/* 80349724 00345384 2C 03 00 00 */ cmpwi r3, 0
/* 80349728 00345388 40 82 00 0C */ bne lbl_80349734
/* 8034972C 0034538C 38 60 00 00 */ li r3, 0
/* 80349730 00345390 48 00 00 F8 */ b lbl_80349828
lbl_80349734:
/* 80349734 00345394 80 1C 00 88 */ lwz r0, 0x88(r28)
/* 80349738 00345398 7C 00 E8 50 */ subf r0, r0, r29
/* 8034973C 0034539C 28 00 75 30 */ cmplwi r0, 0x7530
/* 80349740 003453A0 40 81 00 1C */ ble lbl_8034975C
/* 80349744 003453A4 7F 83 E3 78 */ mr r3, r28
/* 80349748 003453A8 48 00 31 79 */ bl gti2SendKeepAlive
/* 8034974C 003453AC 2C 03 00 00 */ cmpwi r3, 0
/* 80349750 003453B0 40 82 00 0C */ bne lbl_8034975C
/* 80349754 003453B4 38 00 00 00 */ li r0, 0
/* 80349758 003453B8 48 00 00 08 */ b lbl_80349760
lbl_8034975C:
/* 8034975C 003453BC 38 00 00 01 */ li r0, 1
lbl_80349760:
/* 80349760 003453C0 2C 00 00 00 */ cmpwi r0, 0
/* 80349764 003453C4 40 82 00 0C */ bne lbl_80349770
/* 80349768 003453C8 38 60 00 00 */ li r3, 0
/* 8034976C 003453CC 48 00 00 BC */ b lbl_80349828
lbl_80349770:
/* 80349770 003453D0 80 7C 00 60 */ lwz r3, 0x60(r28)
/* 80349774 003453D4 4B FE C7 75 */ bl ArrayLength
/* 80349778 003453D8 7C 7F 1B 78 */ mr r31, r3
/* 8034977C 003453DC 3B C0 00 00 */ li r30, 0
/* 80349780 003453E0 48 00 00 40 */ b lbl_803497C0
lbl_80349784:
/* 80349784 003453E4 80 7C 00 60 */ lwz r3, 0x60(r28)
/* 80349788 003453E8 7F C4 F3 78 */ mr r4, r30
/* 8034978C 003453EC 4B FE C7 65 */ bl ArrayNth
/* 80349790 003453F0 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80349794 003453F4 7C 64 1B 78 */ mr r4, r3
/* 80349798 003453F8 7C 00 E8 50 */ subf r0, r0, r29
/* 8034979C 003453FC 28 00 03 E8 */ cmplwi r0, 0x3e8
/* 803497A0 00345400 40 81 00 1C */ ble lbl_803497BC
/* 803497A4 00345404 7F 83 E3 78 */ mr r3, r28
/* 803497A8 00345408 48 00 36 65 */ bl gti2ResendMessage
/* 803497AC 0034540C 2C 03 00 00 */ cmpwi r3, 0
/* 803497B0 00345410 40 82 00 0C */ bne lbl_803497BC
/* 803497B4 00345414 38 00 00 00 */ li r0, 0
/* 803497B8 00345418 48 00 00 14 */ b lbl_803497CC
lbl_803497BC:
/* 803497BC 0034541C 3B DE 00 01 */ addi r30, r30, 1
lbl_803497C0:
/* 803497C0 00345420 7C 1E F8 00 */ cmpw r30, r31
/* 803497C4 00345424 41 80 FF C0 */ blt lbl_80349784
/* 803497C8 00345428 38 00 00 01 */ li r0, 1
lbl_803497CC:
/* 803497CC 0034542C 2C 00 00 00 */ cmpwi r0, 0
/* 803497D0 00345430 40 82 00 0C */ bne lbl_803497DC
/* 803497D4 00345434 38 60 00 00 */ li r3, 0
/* 803497D8 00345438 48 00 00 50 */ b lbl_80349828
lbl_803497DC:
/* 803497DC 0034543C 80 1C 00 90 */ lwz r0, 0x90(r28)
/* 803497E0 00345440 2C 00 00 00 */ cmpwi r0, 0
/* 803497E4 00345444 40 82 00 0C */ bne lbl_803497F0
/* 803497E8 00345448 38 60 00 01 */ li r3, 1
/* 803497EC 0034544C 48 00 00 30 */ b lbl_8034981C
lbl_803497F0:
/* 803497F0 00345450 80 1C 00 94 */ lwz r0, 0x94(r28)
/* 803497F4 00345454 7C 00 E8 50 */ subf r0, r0, r29
/* 803497F8 00345458 28 00 00 64 */ cmplwi r0, 0x64
/* 803497FC 0034545C 40 81 00 1C */ ble lbl_80349818
/* 80349800 00345460 7F 83 E3 78 */ mr r3, r28
/* 80349804 00345464 48 00 32 B1 */ bl gti2SendAck
/* 80349808 00345468 2C 03 00 00 */ cmpwi r3, 0
/* 8034980C 0034546C 40 82 00 0C */ bne lbl_80349818
/* 80349810 00345470 38 60 00 00 */ li r3, 0
/* 80349814 00345474 48 00 00 08 */ b lbl_8034981C
lbl_80349818:
/* 80349818 00345478 38 60 00 01 */ li r3, 1
lbl_8034981C:
/* 8034981C 0034547C 7C 03 00 D0 */ neg r0, r3
/* 80349820 00345480 7C 00 1B 78 */ or r0, r0, r3
/* 80349824 00345484 54 03 0F FE */ srwi r3, r0, 0x1f
lbl_80349828:
/* 80349828 00345488 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8034982C 0034548C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80349830 00345490 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80349834 00345494 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80349838 00345498 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8034983C 0034549C 7C 08 03 A6 */ mtlr r0
/* 80349840 003454A0 38 21 00 20 */ addi r1, r1, 0x20
/* 80349844 003454A4 4E 80 00 20 */ blr
.global func_80349848
func_80349848:
/* 80349848 003454A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8034984C 003454AC 7C 08 02 A6 */ mflr r0
/* 80349850 003454B0 2C 04 00 00 */ cmpwi r4, 0
/* 80349854 003454B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80349858 003454B8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8034985C 003454BC 7C 7F 1B 78 */ mr r31, r3
/* 80349860 003454C0 41 82 00 70 */ beq lbl_803498D0
/* 80349864 003454C4 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80349868 003454C8 2C 00 00 07 */ cmpwi r0, 7
/* 8034986C 003454CC 40 80 00 70 */ bge lbl_803498DC
/* 80349870 003454D0 90 61 00 08 */ stw r3, 8(r1)
/* 80349874 003454D4 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80349878 003454D8 2C 00 00 07 */ cmpwi r0, 7
/* 8034987C 003454DC 41 82 00 34 */ beq lbl_803498B0
/* 80349880 003454E0 38 00 00 07 */ li r0, 7
/* 80349884 003454E4 38 81 00 08 */ addi r4, r1, 8
/* 80349888 003454E8 90 03 00 0C */ stw r0, 0xc(r3)
/* 8034988C 003454EC 80 61 00 08 */ lwz r3, 8(r1)
/* 80349890 003454F0 80 63 00 08 */ lwz r3, 8(r3)
/* 80349894 003454F4 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80349898 003454F8 4B FE D1 E1 */ bl TableRemove
/* 8034989C 003454FC 80 61 00 08 */ lwz r3, 8(r1)
/* 803498A0 00345500 38 81 00 08 */ addi r4, r1, 8
/* 803498A4 00345504 80 63 00 08 */ lwz r3, 8(r3)
/* 803498A8 00345508 80 63 00 10 */ lwz r3, 0x10(r3)
/* 803498AC 0034550C 4B FE C6 75 */ bl ArrayAppend
lbl_803498B0:
/* 803498B0 00345510 7F E3 FB 78 */ mr r3, r31
/* 803498B4 00345514 48 00 34 A1 */ bl gti2SendClosed
/* 803498B8 00345518 7F E3 FB 78 */ mr r3, r31
/* 803498BC 0034551C 38 80 00 00 */ li r4, 0
/* 803498C0 00345520 4B FF F5 0D */ bl gti2ClosedCallback
/* 803498C4 00345524 7F E3 FB 78 */ mr r3, r31
/* 803498C8 00345528 48 00 3C B5 */ bl gti2FreeSocketConnection
/* 803498CC 0034552C 48 00 00 10 */ b lbl_803498DC
lbl_803498D0:
/* 803498D0 00345530 38 00 00 06 */ li r0, 6
/* 803498D4 00345534 90 03 00 0C */ stw r0, 0xc(r3)
/* 803498D8 00345538 48 00 2F 21 */ bl gti2SendClose
lbl_803498DC:
/* 803498DC 0034553C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803498E0 00345540 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803498E4 00345544 7C 08 03 A6 */ mtlr r0
/* 803498E8 00345548 38 21 00 20 */ addi r1, r1, 0x20
/* 803498EC 0034554C 4E 80 00 20 */ blr
.global gti2ConnectionClosed
gti2ConnectionClosed:
/* 803498F0 00345550 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803498F4 00345554 7C 08 02 A6 */ mflr r0
/* 803498F8 00345558 90 01 00 14 */ stw r0, 0x14(r1)
/* 803498FC 0034555C 90 61 00 08 */ stw r3, 8(r1)
/* 80349900 00345560 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80349904 00345564 2C 00 00 07 */ cmpwi r0, 7
/* 80349908 00345568 41 82 00 34 */ beq lbl_8034993C
/* 8034990C 0034556C 38 00 00 07 */ li r0, 7
/* 80349910 00345570 38 81 00 08 */ addi r4, r1, 8
/* 80349914 00345574 90 03 00 0C */ stw r0, 0xc(r3)
/* 80349918 00345578 80 61 00 08 */ lwz r3, 8(r1)
/* 8034991C 0034557C 80 63 00 08 */ lwz r3, 8(r3)
/* 80349920 00345580 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80349924 00345584 4B FE D1 55 */ bl TableRemove
/* 80349928 00345588 80 61 00 08 */ lwz r3, 8(r1)
/* 8034992C 0034558C 38 81 00 08 */ addi r4, r1, 8
/* 80349930 00345590 80 63 00 08 */ lwz r3, 8(r3)
/* 80349934 00345594 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80349938 00345598 4B FE C5 E9 */ bl ArrayAppend
lbl_8034993C:
/* 8034993C 0034559C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80349940 003455A0 7C 08 03 A6 */ mtlr r0
/* 80349944 003455A4 38 21 00 10 */ addi r1, r1, 0x10
/* 80349948 003455A8 4E 80 00 20 */ blr
.global gti2ConnectionCleanup
gti2ConnectionCleanup:
/* 8034994C 003455AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80349950 003455B0 7C 08 02 A6 */ mflr r0
/* 80349954 003455B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80349958 003455B8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8034995C 003455BC 7C 7F 1B 78 */ mr r31, r3
/* 80349960 003455C0 80 03 00 38 */ lwz r0, 0x38(r3)
/* 80349964 003455C4 2C 00 00 00 */ cmpwi r0, 0
/* 80349968 003455C8 41 82 00 0C */ beq lbl_80349974
/* 8034996C 003455CC 7C 03 03 78 */ mr r3, r0
/* 80349970 003455D0 4B FE F9 C9 */ bl gsifree
lbl_80349974:
/* 80349974 003455D4 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 80349978 003455D8 2C 03 00 00 */ cmpwi r3, 0
/* 8034997C 003455DC 41 82 00 08 */ beq lbl_80349984
/* 80349980 003455E0 4B FE F9 B9 */ bl gsifree
lbl_80349984:
/* 80349984 003455E4 80 7F 00 50 */ lwz r3, 0x50(r31)
/* 80349988 003455E8 2C 03 00 00 */ cmpwi r3, 0
/* 8034998C 003455EC 41 82 00 08 */ beq lbl_80349994
/* 80349990 003455F0 4B FE F9 A9 */ bl gsifree
lbl_80349994:
/* 80349994 003455F4 80 7F 00 5C */ lwz r3, 0x5c(r31)
/* 80349998 003455F8 2C 03 00 00 */ cmpwi r3, 0
/* 8034999C 003455FC 41 82 00 08 */ beq lbl_803499A4
/* 803499A0 00345600 4B FE C4 B5 */ bl ArrayFree
lbl_803499A4:
/* 803499A4 00345604 80 7F 00 60 */ lwz r3, 0x60(r31)
/* 803499A8 00345608 2C 03 00 00 */ cmpwi r3, 0
/* 803499AC 0034560C 41 82 00 08 */ beq lbl_803499B4
/* 803499B0 00345610 4B FE C4 A5 */ bl ArrayFree
lbl_803499B4:
/* 803499B4 00345614 80 7F 00 98 */ lwz r3, 0x98(r31)
/* 803499B8 00345618 2C 03 00 00 */ cmpwi r3, 0
/* 803499BC 0034561C 41 82 00 08 */ beq lbl_803499C4
/* 803499C0 00345620 4B FE C4 95 */ bl ArrayFree
lbl_803499C4:
/* 803499C4 00345624 80 7F 00 9C */ lwz r3, 0x9c(r31)
/* 803499C8 00345628 2C 03 00 00 */ cmpwi r3, 0
/* 803499CC 0034562C 41 82 00 08 */ beq lbl_803499D4
/* 803499D0 00345630 4B FE C4 85 */ bl ArrayFree
lbl_803499D4:
/* 803499D4 00345634 7F E3 FB 78 */ mr r3, r31
/* 803499D8 00345638 4B FE F9 61 */ bl gsifree
/* 803499DC 0034563C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803499E0 00345640 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803499E4 00345644 7C 08 03 A6 */ mtlr r0
/* 803499E8 00345648 38 21 00 10 */ addi r1, r1, 0x10
/* 803499EC 0034564C 4E 80 00 20 */ blr
|