.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