.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