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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global ghiFindFreeSlot
ghiFindFreeSlot:
/* 80351754 0034D3B4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80351758 0034D3B8 7C 08 02 A6 */ mflr r0
/* 8035175C 0034D3BC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80351760 0034D3C0 39 61 00 20 */ addi r11, r1, 0x20
/* 80351764 0034D3C4 4B E7 59 C5 */ bl _savegpr_27
/* 80351768 0034D3C8 80 CD B0 D4 */ lwz r6, lbl_80640394-_SDA_BASE_(r13)
/* 8035176C 0034D3CC 38 60 00 00 */ li r3, 0
/* 80351770 0034D3D0 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
/* 80351774 0034D3D4 7C C5 33 78 */ mr r5, r6
/* 80351778 0034D3D8 7C 09 03 A6 */ mtctr r0
/* 8035177C 0034D3DC 2C 00 00 00 */ cmpwi r0, 0
/* 80351780 0034D3E0 40 81 00 24 */ ble lbl_803517A4
lbl_80351784:
/* 80351784 0034D3E4 80 85 00 00 */ lwz r4, 0(r5)
/* 80351788 0034D3E8 80 04 00 00 */ lwz r0, 0(r4)
/* 8035178C 0034D3EC 2C 00 00 00 */ cmpwi r0, 0
/* 80351790 0034D3F0 40 82 00 08 */ bne lbl_80351798
/* 80351794 0034D3F4 48 00 00 B4 */ b lbl_80351848
lbl_80351798:
/* 80351798 0034D3F8 38 A5 00 04 */ addi r5, r5, 4
/* 8035179C 0034D3FC 38 63 00 01 */ addi r3, r3, 1
/* 803517A0 0034D400 42 00 FF E4 */ bdnz lbl_80351784
lbl_803517A4:
/* 803517A4 0034D404 83 AD B0 D0 */ lwz r29, lbl_80640390-_SDA_BASE_(r13)
/* 803517A8 0034D408 7C C3 33 78 */ mr r3, r6
/* 803517AC 0034D40C 3B 7D 00 04 */ addi r27, r29, 4
/* 803517B0 0034D410 57 64 10 3A */ slwi r4, r27, 2
/* 803517B4 0034D414 4B FE 7B 71 */ bl gsirealloc
/* 803517B8 0034D418 2C 03 00 00 */ cmpwi r3, 0
/* 803517BC 0034D41C 40 82 00 0C */ bne lbl_803517C8
/* 803517C0 0034D420 38 60 FF FF */ li r3, -1
/* 803517C4 0034D424 48 00 00 84 */ b lbl_80351848
lbl_803517C8:
/* 803517C8 0034D428 90 6D B0 D4 */ stw r3, lbl_80640394-_SDA_BASE_(r13)
/* 803517CC 0034D42C 7F BC EB 78 */ mr r28, r29
/* 803517D0 0034D430 57 BE 10 3A */ slwi r30, r29, 2
/* 803517D4 0034D434 3B E0 00 00 */ li r31, 0
/* 803517D8 0034D438 48 00 00 60 */ b lbl_80351838
lbl_803517DC:
/* 803517DC 0034D43C 38 60 01 B4 */ li r3, 0x1b4
/* 803517E0 0034D440 4B FE 7B 35 */ bl gsimalloc
/* 803517E4 0034D444 80 8D B0 D4 */ lwz r4, lbl_80640394-_SDA_BASE_(r13)
/* 803517E8 0034D448 7C 64 F1 2E */ stwx r3, r4, r30
/* 803517EC 0034D44C 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
/* 803517F0 0034D450 7C 63 F0 2E */ lwzx r3, r3, r30
/* 803517F4 0034D454 2C 03 00 00 */ cmpwi r3, 0
/* 803517F8 0034D458 40 82 00 34 */ bne lbl_8035182C
/* 803517FC 0034D45C 3B 9C FF FF */ addi r28, r28, -1
/* 80351800 0034D460 57 9E 10 3A */ slwi r30, r28, 2
/* 80351804 0034D464 48 00 00 18 */ b lbl_8035181C
lbl_80351808:
/* 80351808 0034D468 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
/* 8035180C 0034D46C 7C 63 F0 2E */ lwzx r3, r3, r30
/* 80351810 0034D470 4B FE 7B 29 */ bl gsifree
/* 80351814 0034D474 3B DE FF FC */ addi r30, r30, -4
/* 80351818 0034D478 3B 9C FF FF */ addi r28, r28, -1
lbl_8035181C:
/* 8035181C 0034D47C 7C 1C E8 00 */ cmpw r28, r29
/* 80351820 0034D480 40 80 FF E8 */ bge lbl_80351808
/* 80351824 0034D484 38 60 FF FF */ li r3, -1
/* 80351828 0034D488 48 00 00 20 */ b lbl_80351848
lbl_8035182C:
/* 8035182C 0034D48C 93 E3 00 00 */ stw r31, 0(r3)
/* 80351830 0034D490 3B DE 00 04 */ addi r30, r30, 4
/* 80351834 0034D494 3B 9C 00 01 */ addi r28, r28, 1
lbl_80351838:
/* 80351838 0034D498 7C 1C D8 00 */ cmpw r28, r27
/* 8035183C 0034D49C 41 80 FF A0 */ blt lbl_803517DC
/* 80351840 0034D4A0 93 6D B0 D0 */ stw r27, lbl_80640390-_SDA_BASE_(r13)
/* 80351844 0034D4A4 7F A3 EB 78 */ mr r3, r29
lbl_80351848:
/* 80351848 0034D4A8 39 61 00 20 */ addi r11, r1, 0x20
/* 8035184C 0034D4AC 4B E7 59 29 */ bl _restgpr_27
/* 80351850 0034D4B0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80351854 0034D4B4 7C 08 03 A6 */ mtlr r0
/* 80351858 0034D4B8 38 21 00 20 */ addi r1, r1, 0x20
/* 8035185C 0034D4BC 4E 80 00 20 */ blr
.global ghiNewConnection
ghiNewConnection:
/* 80351860 0034D4C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351864 0034D4C4 7C 08 02 A6 */ mflr r0
/* 80351868 0034D4C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8035186C 0034D4CC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80351870 0034D4D0 93 C1 00 08 */ stw r30, 8(r1)
/* 80351874 0034D4D4 4B FF FA 79 */ bl ghiLock
/* 80351878 0034D4D8 4B FF FE DD */ bl ghiFindFreeSlot
/* 8035187C 0034D4DC 2C 03 FF FF */ cmpwi r3, -1
/* 80351880 0034D4E0 7C 7F 1B 78 */ mr r31, r3
/* 80351884 0034D4E4 40 82 00 10 */ bne lbl_80351894
/* 80351888 0034D4E8 4B FF FA 69 */ bl ghiUnlock
/* 8035188C 0034D4EC 38 60 00 00 */ li r3, 0
/* 80351890 0034D4F0 48 00 01 7C */ b lbl_80351A0C
lbl_80351894:
/* 80351894 0034D4F4 80 CD B0 D4 */ lwz r6, lbl_80640394-_SDA_BASE_(r13)
/* 80351898 0034D4F8 54 60 10 3A */ slwi r0, r3, 2
/* 8035189C 0034D4FC 38 80 00 00 */ li r4, 0
/* 803518A0 0034D500 38 A0 01 B4 */ li r5, 0x1b4
/* 803518A4 0034D504 7F C6 00 2E */ lwzx r30, r6, r0
/* 803518A8 0034D508 7F C3 F3 78 */ mr r3, r30
/* 803518AC 0034D50C 4B CB 28 59 */ bl memset
/* 803518B0 0034D510 38 00 00 01 */ li r0, 1
/* 803518B4 0034D514 39 20 00 00 */ li r9, 0
/* 803518B8 0034D518 90 1E 00 00 */ stw r0, 0(r30)
/* 803518BC 0034D51C 39 00 FF FF */ li r8, -1
/* 803518C0 0034D520 38 E0 01 F4 */ li r7, 0x1f4
/* 803518C4 0034D524 38 00 00 50 */ li r0, 0x50
/* 803518C8 0034D528 93 FE 00 04 */ stw r31, 4(r30)
/* 803518CC 0034D52C 7F C3 F3 78 */ mr r3, r30
/* 803518D0 0034D530 38 9E 00 54 */ addi r4, r30, 0x54
/* 803518D4 0034D534 38 A0 08 00 */ li r5, 0x800
/* 803518D8 0034D538 81 4D B0 C8 */ lwz r10, lbl_80640388-_SDA_BASE_(r13)
/* 803518DC 0034D53C 38 C0 10 00 */ li r6, 0x1000
/* 803518E0 0034D540 91 5E 00 08 */ stw r10, 8(r30)
/* 803518E4 0034D544 39 4A 00 01 */ addi r10, r10, 1
/* 803518E8 0034D548 91 4D B0 C8 */ stw r10, lbl_80640388-_SDA_BASE_(r13)
/* 803518EC 0034D54C 91 3E 00 0C */ stw r9, 0xc(r30)
/* 803518F0 0034D550 91 3E 00 10 */ stw r9, 0x10(r30)
/* 803518F4 0034D554 91 3E 00 14 */ stw r9, 0x14(r30)
/* 803518F8 0034D558 91 3E 00 18 */ stw r9, 0x18(r30)
/* 803518FC 0034D55C 91 3E 00 1C */ stw r9, 0x1c(r30)
/* 80351900 0034D560 B1 3E 00 20 */ sth r9, 0x20(r30)
/* 80351904 0034D564 91 3E 00 24 */ stw r9, 0x24(r30)
/* 80351908 0034D568 91 3E 00 2C */ stw r9, 0x2c(r30)
/* 8035190C 0034D56C 91 3E 00 30 */ stw r9, 0x30(r30)
/* 80351910 0034D570 91 3E 00 34 */ stw r9, 0x34(r30)
/* 80351914 0034D574 91 3E 00 38 */ stw r9, 0x38(r30)
/* 80351918 0034D578 91 3E 00 3C */ stw r9, 0x3c(r30)
/* 8035191C 0034D57C 91 3E 00 40 */ stw r9, 0x40(r30)
/* 80351920 0034D580 91 3E 00 44 */ stw r9, 0x44(r30)
/* 80351924 0034D584 91 3E 00 48 */ stw r9, 0x48(r30)
/* 80351928 0034D588 91 1E 00 4C */ stw r8, 0x4c(r30)
/* 8035192C 0034D58C 91 3E 00 50 */ stw r9, 0x50(r30)
/* 80351930 0034D590 91 3E 01 08 */ stw r9, 0x108(r30)
/* 80351934 0034D594 91 3E 01 0C */ stw r9, 0x10c(r30)
/* 80351938 0034D598 91 3E 01 10 */ stw r9, 0x110(r30)
/* 8035193C 0034D59C 91 3E 01 14 */ stw r9, 0x114(r30)
/* 80351940 0034D5A0 91 3E 01 18 */ stw r9, 0x118(r30)
/* 80351944 0034D5A4 91 3E 01 1C */ stw r9, 0x11c(r30)
/* 80351948 0034D5A8 91 3E 01 20 */ stw r9, 0x120(r30)
/* 8035194C 0034D5AC 91 3E 01 24 */ stw r9, 0x124(r30)
/* 80351950 0034D5B0 91 1E 01 28 */ stw r8, 0x128(r30)
/* 80351954 0034D5B4 91 3E 01 2C */ stw r9, 0x12c(r30)
/* 80351958 0034D5B8 91 3E 01 30 */ stw r9, 0x130(r30)
/* 8035195C 0034D5BC 91 3E 01 34 */ stw r9, 0x134(r30)
/* 80351960 0034D5C0 91 3E 01 50 */ stw r9, 0x150(r30)
/* 80351964 0034D5C4 91 3E 01 58 */ stw r9, 0x158(r30)
/* 80351968 0034D5C8 91 3E 01 5C */ stw r9, 0x15c(r30)
/* 8035196C 0034D5CC 91 3E 01 60 */ stw r9, 0x160(r30)
/* 80351970 0034D5D0 90 FE 01 84 */ stw r7, 0x184(r30)
/* 80351974 0034D5D4 B0 1E 01 8C */ sth r0, 0x18c(r30)
/* 80351978 0034D5D8 91 3E 01 88 */ stw r9, 0x188(r30)
/* 8035197C 0034D5DC 91 3E 01 90 */ stw r9, 0x190(r30)
/* 80351980 0034D5E0 91 3E 01 B0 */ stw r9, 0x1b0(r30)
/* 80351984 0034D5E4 4B FF EE F1 */ bl ghiInitBuffer
/* 80351988 0034D5E8 2C 03 00 00 */ cmpwi r3, 0
/* 8035198C 0034D5EC 41 82 00 18 */ beq lbl_803519A4
/* 80351990 0034D5F0 7F C3 F3 78 */ mr r3, r30
/* 80351994 0034D5F4 38 9E 00 78 */ addi r4, r30, 0x78
/* 80351998 0034D5F8 38 A0 08 00 */ li r5, 0x800
/* 8035199C 0034D5FC 38 C0 04 00 */ li r6, 0x400
/* 803519A0 0034D600 4B FF EE D5 */ bl ghiInitBuffer
lbl_803519A4:
/* 803519A4 0034D604 2C 03 00 00 */ cmpwi r3, 0
/* 803519A8 0034D608 41 82 00 18 */ beq lbl_803519C0
/* 803519AC 0034D60C 7F C3 F3 78 */ mr r3, r30
/* 803519B0 0034D610 38 9E 00 9C */ addi r4, r30, 0x9c
/* 803519B4 0034D614 38 A0 08 00 */ li r5, 0x800
/* 803519B8 0034D618 38 C0 08 00 */ li r6, 0x800
/* 803519BC 0034D61C 4B FF EE B9 */ bl ghiInitBuffer
lbl_803519C0:
/* 803519C0 0034D620 2C 03 00 00 */ cmpwi r3, 0
/* 803519C4 0034D624 41 82 00 18 */ beq lbl_803519DC
/* 803519C8 0034D628 7F C3 F3 78 */ mr r3, r30
/* 803519CC 0034D62C 38 9E 00 C0 */ addi r4, r30, 0xc0
/* 803519D0 0034D630 38 A0 08 00 */ li r5, 0x800
/* 803519D4 0034D634 38 C0 04 00 */ li r6, 0x400
/* 803519D8 0034D638 4B FF EE 9D */ bl ghiInitBuffer
lbl_803519DC:
/* 803519DC 0034D63C 2C 03 00 00 */ cmpwi r3, 0
/* 803519E0 0034D640 40 82 00 18 */ bne lbl_803519F8
/* 803519E4 0034D644 7F C3 F3 78 */ mr r3, r30
/* 803519E8 0034D648 48 00 00 3D */ bl ghiFreeConnection
/* 803519EC 0034D64C 4B FF F9 05 */ bl ghiUnlock
/* 803519F0 0034D650 38 60 00 00 */ li r3, 0
/* 803519F4 0034D654 48 00 00 18 */ b lbl_80351A0C
lbl_803519F8:
/* 803519F8 0034D658 80 6D B0 CC */ lwz r3, lbl_8064038C-_SDA_BASE_(r13)
/* 803519FC 0034D65C 38 03 00 01 */ addi r0, r3, 1
/* 80351A00 0034D660 90 0D B0 CC */ stw r0, lbl_8064038C-_SDA_BASE_(r13)
/* 80351A04 0034D664 4B FF F8 ED */ bl ghiUnlock
/* 80351A08 0034D668 7F C3 F3 78 */ mr r3, r30
lbl_80351A0C:
/* 80351A0C 0034D66C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351A10 0034D670 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80351A14 0034D674 83 C1 00 08 */ lwz r30, 8(r1)
/* 80351A18 0034D678 7C 08 03 A6 */ mtlr r0
/* 80351A1C 0034D67C 38 21 00 10 */ addi r1, r1, 0x10
/* 80351A20 0034D680 4E 80 00 20 */ blr
.global ghiFreeConnection
ghiFreeConnection:
/* 80351A24 0034D684 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351A28 0034D688 7C 08 02 A6 */ mflr r0
/* 80351A2C 0034D68C 2C 03 00 00 */ cmpwi r3, 0
/* 80351A30 0034D690 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351A34 0034D694 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80351A38 0034D698 7C 7F 1B 78 */ mr r31, r3
/* 80351A3C 0034D69C 40 82 00 0C */ bne lbl_80351A48
/* 80351A40 0034D6A0 38 60 00 00 */ li r3, 0
/* 80351A44 0034D6A4 48 00 01 40 */ b lbl_80351B84
lbl_80351A48:
/* 80351A48 0034D6A8 80 03 00 00 */ lwz r0, 0(r3)
/* 80351A4C 0034D6AC 2C 00 00 00 */ cmpwi r0, 0
/* 80351A50 0034D6B0 40 82 00 0C */ bne lbl_80351A5C
/* 80351A54 0034D6B4 38 60 00 00 */ li r3, 0
/* 80351A58 0034D6B8 48 00 01 2C */ b lbl_80351B84
lbl_80351A5C:
/* 80351A5C 0034D6BC 80 63 00 04 */ lwz r3, 4(r3)
/* 80351A60 0034D6C0 2C 03 00 00 */ cmpwi r3, 0
/* 80351A64 0034D6C4 40 80 00 0C */ bge lbl_80351A70
/* 80351A68 0034D6C8 38 60 00 00 */ li r3, 0
/* 80351A6C 0034D6CC 48 00 01 18 */ b lbl_80351B84
lbl_80351A70:
/* 80351A70 0034D6D0 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
/* 80351A74 0034D6D4 7C 03 00 00 */ cmpw r3, r0
/* 80351A78 0034D6D8 41 80 00 0C */ blt lbl_80351A84
/* 80351A7C 0034D6DC 38 60 00 00 */ li r3, 0
/* 80351A80 0034D6E0 48 00 01 04 */ b lbl_80351B84
lbl_80351A84:
/* 80351A84 0034D6E4 4B FF F8 69 */ bl ghiLock
/* 80351A88 0034D6E8 80 7F 00 14 */ lwz r3, 0x14(r31)
/* 80351A8C 0034D6EC 4B FE 78 AD */ bl gsifree
/* 80351A90 0034D6F0 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 80351A94 0034D6F4 4B FE 78 A5 */ bl gsifree
/* 80351A98 0034D6F8 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 80351A9C 0034D6FC 4B FE 78 9D */ bl gsifree
/* 80351AA0 0034D700 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 80351AA4 0034D704 4B FE 78 95 */ bl gsifree
/* 80351AA8 0034D708 80 7F 01 2C */ lwz r3, 0x12c(r31)
/* 80351AAC 0034D70C 4B FE 78 8D */ bl gsifree
/* 80351AB0 0034D710 80 7F 01 88 */ lwz r3, 0x188(r31)
/* 80351AB4 0034D714 4B FE 78 85 */ bl gsifree
/* 80351AB8 0034D718 80 7F 00 4C */ lwz r3, 0x4c(r31)
/* 80351ABC 0034D71C 2C 03 FF FF */ cmpwi r3, -1
/* 80351AC0 0034D720 41 82 00 14 */ beq lbl_80351AD4
/* 80351AC4 0034D724 38 80 00 02 */ li r4, 2
/* 80351AC8 0034D728 4B FE 61 69 */ bl shutdown
/* 80351ACC 0034D72C 80 7F 00 4C */ lwz r3, 0x4c(r31)
/* 80351AD0 0034D730 4B FE 61 2D */ bl closesocket
lbl_80351AD4:
/* 80351AD4 0034D734 38 7F 00 54 */ addi r3, r31, 0x54
/* 80351AD8 0034D738 4B FF EF 85 */ bl ghiFreeBuffer
/* 80351ADC 0034D73C 38 7F 00 78 */ addi r3, r31, 0x78
/* 80351AE0 0034D740 4B FF EF 7D */ bl ghiFreeBuffer
/* 80351AE4 0034D744 38 7F 00 9C */ addi r3, r31, 0x9c
/* 80351AE8 0034D748 4B FF EF 75 */ bl ghiFreeBuffer
/* 80351AEC 0034D74C 38 7F 00 C0 */ addi r3, r31, 0xc0
/* 80351AF0 0034D750 4B FF EF 6D */ bl ghiFreeBuffer
/* 80351AF4 0034D754 38 7F 00 E4 */ addi r3, r31, 0xe4
/* 80351AF8 0034D758 4B FF EF 65 */ bl ghiFreeBuffer
/* 80351AFC 0034D75C 80 1F 01 64 */ lwz r0, 0x164(r31)
/* 80351B00 0034D760 2C 00 00 00 */ cmpwi r0, 0
/* 80351B04 0034D764 41 82 00 0C */ beq lbl_80351B10
/* 80351B08 0034D768 7F E3 FB 78 */ mr r3, r31
/* 80351B0C 0034D76C 48 00 2E 81 */ bl ghiPostCleanupState
lbl_80351B10:
/* 80351B10 0034D770 80 7F 01 60 */ lwz r3, 0x160(r31)
/* 80351B14 0034D774 2C 03 00 00 */ cmpwi r3, 0
/* 80351B18 0034D778 41 82 00 20 */ beq lbl_80351B38
/* 80351B1C 0034D77C 48 00 27 25 */ bl ghiIsPostAutoFree
/* 80351B20 0034D780 2C 03 00 00 */ cmpwi r3, 0
/* 80351B24 0034D784 41 82 00 14 */ beq lbl_80351B38
/* 80351B28 0034D788 80 7F 01 60 */ lwz r3, 0x160(r31)
/* 80351B2C 0034D78C 48 00 27 1D */ bl ghiFreePost
/* 80351B30 0034D790 38 00 00 00 */ li r0, 0
/* 80351B34 0034D794 90 1F 01 60 */ stw r0, 0x160(r31)
lbl_80351B38:
/* 80351B38 0034D798 80 1F 01 98 */ lwz r0, 0x198(r31)
/* 80351B3C 0034D79C 2C 00 00 00 */ cmpwi r0, 0
/* 80351B40 0034D7A0 41 82 00 28 */ beq lbl_80351B68
/* 80351B44 0034D7A4 81 9F 01 A4 */ lwz r12, 0x1a4(r31)
/* 80351B48 0034D7A8 2C 0C 00 00 */ cmpwi r12, 0
/* 80351B4C 0034D7AC 41 82 00 14 */ beq lbl_80351B60
/* 80351B50 0034D7B0 7F E3 FB 78 */ mr r3, r31
/* 80351B54 0034D7B4 38 9F 01 90 */ addi r4, r31, 0x190
/* 80351B58 0034D7B8 7D 89 03 A6 */ mtctr r12
/* 80351B5C 0034D7BC 4E 80 04 21 */ bctrl
lbl_80351B60:
/* 80351B60 0034D7C0 38 00 00 00 */ li r0, 0
/* 80351B64 0034D7C4 90 1F 01 98 */ stw r0, 0x198(r31)
lbl_80351B68:
/* 80351B68 0034D7C8 38 00 00 00 */ li r0, 0
/* 80351B6C 0034D7CC 90 1F 00 00 */ stw r0, 0(r31)
/* 80351B70 0034D7D0 80 6D B0 CC */ lwz r3, lbl_8064038C-_SDA_BASE_(r13)
/* 80351B74 0034D7D4 38 03 FF FF */ addi r0, r3, -1
/* 80351B78 0034D7D8 90 0D B0 CC */ stw r0, lbl_8064038C-_SDA_BASE_(r13)
/* 80351B7C 0034D7DC 4B FF F7 75 */ bl ghiUnlock
/* 80351B80 0034D7E0 38 60 00 01 */ li r3, 1
lbl_80351B84:
/* 80351B84 0034D7E4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351B88 0034D7E8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80351B8C 0034D7EC 7C 08 03 A6 */ mtlr r0
/* 80351B90 0034D7F0 38 21 00 10 */ addi r1, r1, 0x10
/* 80351B94 0034D7F4 4E 80 00 20 */ blr
.global ghiRequestToConnection
ghiRequestToConnection:
/* 80351B98 0034D7F8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351B9C 0034D7FC 7C 08 02 A6 */ mflr r0
/* 80351BA0 0034D800 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351BA4 0034D804 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80351BA8 0034D808 7C 7F 1B 78 */ mr r31, r3
/* 80351BAC 0034D80C 4B FF F7 41 */ bl ghiLock
/* 80351BB0 0034D810 2C 1F 00 00 */ cmpwi r31, 0
/* 80351BB4 0034D814 41 80 00 10 */ blt lbl_80351BC4
/* 80351BB8 0034D818 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
/* 80351BBC 0034D81C 7C 1F 00 00 */ cmpw r31, r0
/* 80351BC0 0034D820 41 80 00 10 */ blt lbl_80351BD0
lbl_80351BC4:
/* 80351BC4 0034D824 4B FF F7 2D */ bl ghiUnlock
/* 80351BC8 0034D828 38 60 00 00 */ li r3, 0
/* 80351BCC 0034D82C 48 00 00 28 */ b lbl_80351BF4
lbl_80351BD0:
/* 80351BD0 0034D830 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
/* 80351BD4 0034D834 57 E0 10 3A */ slwi r0, r31, 2
/* 80351BD8 0034D838 7F E3 00 2E */ lwzx r31, r3, r0
/* 80351BDC 0034D83C 80 1F 00 00 */ lwz r0, 0(r31)
/* 80351BE0 0034D840 2C 00 00 00 */ cmpwi r0, 0
/* 80351BE4 0034D844 40 82 00 08 */ bne lbl_80351BEC
/* 80351BE8 0034D848 3B E0 00 00 */ li r31, 0
lbl_80351BEC:
/* 80351BEC 0034D84C 4B FF F7 05 */ bl ghiUnlock
/* 80351BF0 0034D850 7F E3 FB 78 */ mr r3, r31
lbl_80351BF4:
/* 80351BF4 0034D854 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351BF8 0034D858 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80351BFC 0034D85C 7C 08 03 A6 */ mtlr r0
/* 80351C00 0034D860 38 21 00 10 */ addi r1, r1, 0x10
/* 80351C04 0034D864 4E 80 00 20 */ blr
.global ghiEnumConnections
ghiEnumConnections:
/* 80351C08 0034D868 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80351C0C 0034D86C 7C 08 02 A6 */ mflr r0
/* 80351C10 0034D870 90 01 00 24 */ stw r0, 0x24(r1)
/* 80351C14 0034D874 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80351C18 0034D878 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80351C1C 0034D87C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80351C20 0034D880 7C 7D 1B 78 */ mr r29, r3
/* 80351C24 0034D884 80 0D B0 CC */ lwz r0, lbl_8064038C-_SDA_BASE_(r13)
/* 80351C28 0034D888 2C 00 00 00 */ cmpwi r0, 0
/* 80351C2C 0034D88C 40 81 00 4C */ ble lbl_80351C78
/* 80351C30 0034D890 4B FF F6 BD */ bl ghiLock
/* 80351C34 0034D894 3B C0 00 00 */ li r30, 0
/* 80351C38 0034D898 3B E0 00 00 */ li r31, 0
/* 80351C3C 0034D89C 48 00 00 2C */ b lbl_80351C68
lbl_80351C40:
/* 80351C40 0034D8A0 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
/* 80351C44 0034D8A4 7C 63 F8 2E */ lwzx r3, r3, r31
/* 80351C48 0034D8A8 80 03 00 00 */ lwz r0, 0(r3)
/* 80351C4C 0034D8AC 2C 00 00 00 */ cmpwi r0, 0
/* 80351C50 0034D8B0 41 82 00 10 */ beq lbl_80351C60
/* 80351C54 0034D8B4 7F AC EB 78 */ mr r12, r29
/* 80351C58 0034D8B8 7D 89 03 A6 */ mtctr r12
/* 80351C5C 0034D8BC 4E 80 04 21 */ bctrl
lbl_80351C60:
/* 80351C60 0034D8C0 3B FF 00 04 */ addi r31, r31, 4
/* 80351C64 0034D8C4 3B DE 00 01 */ addi r30, r30, 1
lbl_80351C68:
/* 80351C68 0034D8C8 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
/* 80351C6C 0034D8CC 7C 1E 00 00 */ cmpw r30, r0
/* 80351C70 0034D8D0 41 80 FF D0 */ blt lbl_80351C40
/* 80351C74 0034D8D4 4B FF F6 7D */ bl ghiUnlock
lbl_80351C78:
/* 80351C78 0034D8D8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80351C7C 0034D8DC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80351C80 0034D8E0 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80351C84 0034D8E4 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80351C88 0034D8E8 7C 08 03 A6 */ mtlr r0
/* 80351C8C 0034D8EC 38 21 00 20 */ addi r1, r1, 0x20
/* 80351C90 0034D8F0 4E 80 00 20 */ blr
.global ghiRedirectConnection
ghiRedirectConnection:
/* 80351C94 0034D8F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351C98 0034D8F8 7C 08 02 A6 */ mflr r0
/* 80351C9C 0034D8FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351CA0 0034D900 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80351CA4 0034D904 3B E0 00 00 */ li r31, 0
/* 80351CA8 0034D908 93 C1 00 08 */ stw r30, 8(r1)
/* 80351CAC 0034D90C 7C 7E 1B 78 */ mr r30, r3
/* 80351CB0 0034D910 80 03 01 B0 */ lwz r0, 0x1b0(r3)
/* 80351CB4 0034D914 93 E3 00 10 */ stw r31, 0x10(r3)
/* 80351CB8 0034D918 2C 00 00 00 */ cmpwi r0, 0
/* 80351CBC 0034D91C 41 82 00 18 */ beq lbl_80351CD4
/* 80351CC0 0034D920 7C 03 03 78 */ mr r3, r0
/* 80351CC4 0034D924 4B FE 70 85 */ bl gsiCancelResolvingHostname
/* 80351CC8 0034D928 80 7E 01 B0 */ lwz r3, 0x1b0(r30)
/* 80351CCC 0034D92C 4B FE 76 6D */ bl gsifree
/* 80351CD0 0034D930 93 FE 01 B0 */ stw r31, 0x1b0(r30)
lbl_80351CD4:
/* 80351CD4 0034D934 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 80351CD8 0034D938 4B FE 76 61 */ bl gsifree
/* 80351CDC 0034D93C 80 1E 01 2C */ lwz r0, 0x12c(r30)
/* 80351CE0 0034D940 3B E0 00 00 */ li r31, 0
/* 80351CE4 0034D944 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 80351CE8 0034D948 90 1E 00 14 */ stw r0, 0x14(r30)
/* 80351CEC 0034D94C 93 FE 01 2C */ stw r31, 0x12c(r30)
/* 80351CF0 0034D950 4B FE 76 49 */ bl gsifree
/* 80351CF4 0034D954 93 FE 00 18 */ stw r31, 0x18(r30)
/* 80351CF8 0034D958 80 7E 00 24 */ lwz r3, 0x24(r30)
/* 80351CFC 0034D95C 93 FE 00 1C */ stw r31, 0x1c(r30)
/* 80351D00 0034D960 B3 FE 00 20 */ sth r31, 0x20(r30)
/* 80351D04 0034D964 4B FE 76 35 */ bl gsifree
/* 80351D08 0034D968 93 FE 00 24 */ stw r31, 0x24(r30)
/* 80351D0C 0034D96C 38 80 00 02 */ li r4, 2
/* 80351D10 0034D970 80 7E 00 4C */ lwz r3, 0x4c(r30)
/* 80351D14 0034D974 4B FE 5F 1D */ bl shutdown
/* 80351D18 0034D978 80 7E 00 4C */ lwz r3, 0x4c(r30)
/* 80351D1C 0034D97C 4B FE 5E E1 */ bl closesocket
/* 80351D20 0034D980 38 00 FF FF */ li r0, -1
/* 80351D24 0034D984 38 7E 00 54 */ addi r3, r30, 0x54
/* 80351D28 0034D988 90 1E 00 4C */ stw r0, 0x4c(r30)
/* 80351D2C 0034D98C 4B FF F3 05 */ bl ghiResetBuffer
/* 80351D30 0034D990 38 7E 00 78 */ addi r3, r30, 0x78
/* 80351D34 0034D994 4B FF F2 FD */ bl ghiResetBuffer
/* 80351D38 0034D998 38 7E 00 9C */ addi r3, r30, 0x9c
/* 80351D3C 0034D99C 4B FF F2 F5 */ bl ghiResetBuffer
/* 80351D40 0034D9A0 38 7E 00 C0 */ addi r3, r30, 0xc0
/* 80351D44 0034D9A4 4B FF F2 ED */ bl ghiResetBuffer
/* 80351D48 0034D9A8 80 1E 01 98 */ lwz r0, 0x198(r30)
/* 80351D4C 0034D9AC 93 FE 01 0C */ stw r31, 0x10c(r30)
/* 80351D50 0034D9B0 2C 00 00 00 */ cmpwi r0, 0
/* 80351D54 0034D9B4 93 FE 01 10 */ stw r31, 0x110(r30)
/* 80351D58 0034D9B8 93 FE 01 14 */ stw r31, 0x114(r30)
/* 80351D5C 0034D9BC 93 FE 01 18 */ stw r31, 0x118(r30)
/* 80351D60 0034D9C0 93 FE 01 1C */ stw r31, 0x11c(r30)
/* 80351D64 0034D9C4 93 FE 01 54 */ stw r31, 0x154(r30)
/* 80351D68 0034D9C8 41 82 00 4C */ beq lbl_80351DB4
/* 80351D6C 0034D9CC 81 9E 01 A4 */ lwz r12, 0x1a4(r30)
/* 80351D70 0034D9D0 2C 0C 00 00 */ cmpwi r12, 0
/* 80351D74 0034D9D4 41 82 00 14 */ beq lbl_80351D88
/* 80351D78 0034D9D8 7F C3 F3 78 */ mr r3, r30
/* 80351D7C 0034D9DC 38 9E 01 90 */ addi r4, r30, 0x190
/* 80351D80 0034D9E0 7D 89 03 A6 */ mtctr r12
/* 80351D84 0034D9E4 4E 80 04 21 */ bctrl
lbl_80351D88:
/* 80351D88 0034D9E8 3B E0 00 00 */ li r31, 0
/* 80351D8C 0034D9EC 3C 60 80 45 */ lis r3, lbl_8044BF70@ha
/* 80351D90 0034D9F0 93 FE 01 98 */ stw r31, 0x198(r30)
/* 80351D94 0034D9F4 38 63 BF 70 */ addi r3, r3, lbl_8044BF70@l
/* 80351D98 0034D9F8 80 9E 00 14 */ lwz r4, 0x14(r30)
/* 80351D9C 0034D9FC 38 A0 00 08 */ li r5, 8
/* 80351DA0 0034DA00 4B E7 C7 C9 */ bl strncmp
/* 80351DA4 0034DA04 2C 03 00 00 */ cmpwi r3, 0
/* 80351DA8 0034DA08 41 82 00 0C */ beq lbl_80351DB4
/* 80351DAC 0034DA0C 93 FE 01 94 */ stw r31, 0x194(r30)
/* 80351DB0 0034DA10 93 FE 01 90 */ stw r31, 0x190(r30)
lbl_80351DB4:
/* 80351DB4 0034DA14 80 7E 01 30 */ lwz r3, 0x130(r30)
/* 80351DB8 0034DA18 38 03 00 01 */ addi r0, r3, 1
/* 80351DBC 0034DA1C 90 1E 01 30 */ stw r0, 0x130(r30)
/* 80351DC0 0034DA20 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80351DC4 0034DA24 83 C1 00 08 */ lwz r30, 8(r1)
/* 80351DC8 0034DA28 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351DCC 0034DA2C 7C 08 03 A6 */ mtlr r0
/* 80351DD0 0034DA30 38 21 00 10 */ addi r1, r1, 0x10
/* 80351DD4 0034DA34 4E 80 00 20 */ blr
.global ghiCleanupConnections
ghiCleanupConnections:
/* 80351DD8 0034DA38 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80351DDC 0034DA3C 7C 08 02 A6 */ mflr r0
/* 80351DE0 0034DA40 90 01 00 14 */ stw r0, 0x14(r1)
/* 80351DE4 0034DA44 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80351DE8 0034DA48 93 C1 00 08 */ stw r30, 8(r1)
/* 80351DEC 0034DA4C 80 0D B0 D4 */ lwz r0, lbl_80640394-_SDA_BASE_(r13)
/* 80351DF0 0034DA50 2C 00 00 00 */ cmpwi r0, 0
/* 80351DF4 0034DA54 41 82 00 94 */ beq lbl_80351E88
/* 80351DF8 0034DA58 80 0D B0 CC */ lwz r0, lbl_8064038C-_SDA_BASE_(r13)
/* 80351DFC 0034DA5C 2C 00 00 00 */ cmpwi r0, 0
/* 80351E00 0034DA60 40 81 00 44 */ ble lbl_80351E44
/* 80351E04 0034DA64 4B FF F4 E9 */ bl ghiLock
/* 80351E08 0034DA68 3B E0 00 00 */ li r31, 0
/* 80351E0C 0034DA6C 3B C0 00 00 */ li r30, 0
/* 80351E10 0034DA70 48 00 00 24 */ b lbl_80351E34
lbl_80351E14:
/* 80351E14 0034DA74 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
/* 80351E18 0034DA78 7C 63 F0 2E */ lwzx r3, r3, r30
/* 80351E1C 0034DA7C 80 03 00 00 */ lwz r0, 0(r3)
/* 80351E20 0034DA80 2C 00 00 00 */ cmpwi r0, 0
/* 80351E24 0034DA84 41 82 00 08 */ beq lbl_80351E2C
/* 80351E28 0034DA88 4B FF FB FD */ bl ghiFreeConnection
lbl_80351E2C:
/* 80351E2C 0034DA8C 3B DE 00 04 */ addi r30, r30, 4
/* 80351E30 0034DA90 3B FF 00 01 */ addi r31, r31, 1
lbl_80351E34:
/* 80351E34 0034DA94 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
/* 80351E38 0034DA98 7C 1F 00 00 */ cmpw r31, r0
/* 80351E3C 0034DA9C 41 80 FF D8 */ blt lbl_80351E14
/* 80351E40 0034DAA0 4B FF F4 B1 */ bl ghiUnlock
lbl_80351E44:
/* 80351E44 0034DAA4 3B C0 00 00 */ li r30, 0
/* 80351E48 0034DAA8 3B E0 00 00 */ li r31, 0
/* 80351E4C 0034DAAC 48 00 00 18 */ b lbl_80351E64
lbl_80351E50:
/* 80351E50 0034DAB0 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
/* 80351E54 0034DAB4 7C 63 F8 2E */ lwzx r3, r3, r31
/* 80351E58 0034DAB8 4B FE 74 E1 */ bl gsifree
/* 80351E5C 0034DABC 3B FF 00 04 */ addi r31, r31, 4
/* 80351E60 0034DAC0 3B DE 00 01 */ addi r30, r30, 1
lbl_80351E64:
/* 80351E64 0034DAC4 80 0D B0 D0 */ lwz r0, lbl_80640390-_SDA_BASE_(r13)
/* 80351E68 0034DAC8 7C 1E 00 00 */ cmpw r30, r0
/* 80351E6C 0034DACC 41 80 FF E4 */ blt lbl_80351E50
/* 80351E70 0034DAD0 80 6D B0 D4 */ lwz r3, lbl_80640394-_SDA_BASE_(r13)
/* 80351E74 0034DAD4 4B FE 74 C5 */ bl gsifree
/* 80351E78 0034DAD8 38 00 00 00 */ li r0, 0
/* 80351E7C 0034DADC 90 0D B0 D4 */ stw r0, lbl_80640394-_SDA_BASE_(r13)
/* 80351E80 0034DAE0 90 0D B0 D0 */ stw r0, lbl_80640390-_SDA_BASE_(r13)
/* 80351E84 0034DAE4 90 0D B0 CC */ stw r0, lbl_8064038C-_SDA_BASE_(r13)
lbl_80351E88:
/* 80351E88 0034DAE8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80351E8C 0034DAEC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80351E90 0034DAF0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80351E94 0034DAF4 7C 08 03 A6 */ mtlr r0
/* 80351E98 0034DAF8 38 21 00 10 */ addi r1, r1, 0x10
/* 80351E9C 0034DAFC 4E 80 00 20 */ blr
|