diff options
-rw-r--r-- | .travis/calcrom/calcrom.cpp | 32 | ||||
-rw-r--r-- | asm/gt2Callback.s | 20 | ||||
-rw-r--r-- | asm/gt2Connection.s | 8 | ||||
-rw-r--r-- | asm/gt2Main.s | 16 | ||||
-rw-r--r-- | asm/gt2Message.s | 30 | ||||
-rw-r--r-- | asm/gt2Socket.s | 847 | ||||
-rw-r--r-- | asm/text_10_2.s | 838 | ||||
-rw-r--r-- | obj_files.mk | 1 |
8 files changed, 916 insertions, 876 deletions
diff --git a/.travis/calcrom/calcrom.cpp b/.travis/calcrom/calcrom.cpp index 17264df..df1d48a 100644 --- a/.travis/calcrom/calcrom.cpp +++ b/.travis/calcrom/calcrom.cpp @@ -2,6 +2,7 @@ * CALCROM.CPP * © PikalaxALT 2020 * © red031000 2020 + * © mparisi20 2020 * * Simple C++ executable to measure the completion rate of Pokémon Battle Revolution * reverse engineering (decompilation). @@ -27,6 +28,7 @@ #include <iostream> #include <fstream> #include <sstream> +#include <regex> #include <elf.h> #include <glob.h> #include <string.h> @@ -99,6 +101,11 @@ void analyze(string basedir, string version) { // data _____|_____ // text | unsigned sizes[2][2] = {{0, 0}, {0, 0}}; + // Accumulate asm sizes + // split unsplit + // data _____|________ + // text | + unsigned split_sizes[2][2] = {{0, 0}, {0, 0}}; char * shstrtab = NULL; size_t shstrsz = 0; stringstream builddir; @@ -111,6 +118,10 @@ void analyze(string basedir, string version) { string fname_s(fname); string ext = fname_s.substr(fname_s.rfind('.'), 4); bool is_asm = ext == ".s"; + string fileroot = fname_s.substr(fname_s.rfind('/') + 1); + string unsplit_regex("(init|extab|extabindex|text|ctors|dtors|rodata|data|sdata|sdata2)(_[^.]*)?[.]s"); + bool is_unsplit = is_asm && regex_match(fileroot, regex(unsplit_regex)); + fname_s = fname_s.replace(fname_s.find(basedir), basedir.length(), basebuilddir.str()); fname_s = fname_s.replace(fname_s.rfind('.'), 4, ".o"); elf.open(fname_s, ios_base::in | ios_base::binary); @@ -151,11 +162,16 @@ void analyze(string basedir, string version) { for (Elf32_Shdr & hdr : shdr) { string shname = shstrtab + hdr.sh_name; bool is_text = (shname == ".text" || shname == ".init"); - bool is_data = (shname == ".data" || shname == ".dtors" || shname == ".ctors" || shname == ".sdata" || shname == ".sdata2"); + bool is_data = (shname == ".data" || shname == ".dtors" || shname == ".ctors" || + shname == ".sdata" || shname == ".sdata2" || shname == ".rodata"); size_t size = hdr.sh_size + (hdr.sh_size & 3 ? 4 - (hdr.sh_size & 3) : 0); if (is_text || is_data) { sizes[is_text][is_asm] += size; + if (is_asm) + { + split_sizes[is_text][is_unsplit] += size; + } } } } @@ -167,18 +183,32 @@ void analyze(string basedir, string version) { double total_text_d = total_text; double src_text_d = sizes[1][0]; double asm_text_d = sizes[1][1]; + double split_asm_text_d = split_sizes[1][0]; + double unsplit_asm_text_d = split_sizes[1][1]; + cout << " " << total_text << " total bytes of code" << endl; cout << " " << sizes[1][0] << " bytes of code in src (" << (src_text_d / total_text_d * 100.0) << "%)" << endl; cout << " " << sizes[1][1] << " bytes of code in asm (" << (asm_text_d / total_text_d * 100.0) << "%)" << endl; + if (sizes[1][1] > 0) { + cout << " " << split_sizes[1][0] << " bytes of asm code in split files (" << (split_asm_text_d / asm_text_d * 100.0) << "%)" << endl; + cout << " " << split_sizes[1][1] << " bytes of asm code in unsplit files (" << (unsplit_asm_text_d / asm_text_d * 100.0) << "%)" << endl; + } cout << endl; // Report data unsigned total_data = sizes[0][0] + sizes[0][1]; double total_data_d = total_data; double src_data_d = sizes[0][0]; double asm_data_d = sizes[0][1]; + double split_asm_data_d = split_sizes[0][0]; + double unsplit_asm_data_d = split_sizes[0][1]; cout << " " << total_data << " total bytes of data" << endl; cout << " " << sizes[0][0] << " bytes of data in src (" << (src_data_d / total_data_d * 100.0) << "%)" << endl; cout << " " << sizes[0][1] << " bytes of data in asm (" << (asm_data_d / total_data_d * 100.0) << "%)" << endl; + if (sizes[0][1] > 0) { + cout << " " << split_sizes[0][0] << " bytes of asm data in split files (" << (split_asm_data_d / asm_data_d * 100.0) << "%)" << endl; + cout << " " << split_sizes[0][1] << " bytes of asm data in unsplit files (" << (unsplit_asm_data_d / asm_data_d * 100.0) << "%)" << endl; + } + // Let vectors fall to gc } diff --git a/asm/gt2Callback.s b/asm/gt2Callback.s index 2ba92ed..fbb959a 100644 --- a/asm/gt2Callback.s +++ b/asm/gt2Callback.s @@ -34,7 +34,7 @@ lbl_80348AD4: /* 80348B00 00344760 2C 03 00 00 */ cmpwi r3, 0
/* 80348B04 00344764 40 82 00 14 */ bne lbl_80348B18
/* 80348B08 00344768 7F E3 FB 78 */ mr r3, r31
-/* 80348B0C 0034476C 48 00 47 91 */ bl func_8034D29C
+/* 80348B0C 0034476C 48 00 47 91 */ bl gti2CloseSocket
/* 80348B10 00344770 38 60 00 00 */ li r3, 0
/* 80348B14 00344774 48 00 00 08 */ b lbl_80348B1C
lbl_80348B18:
@@ -101,7 +101,7 @@ lbl_80348B90: /* 80348BE4 00344844 2C 00 00 00 */ cmpwi r0, 0
/* 80348BE8 00344848 40 82 00 14 */ bne lbl_80348BFC
/* 80348BEC 0034484C 7F C3 F3 78 */ mr r3, r30
-/* 80348BF0 00344850 48 00 46 AD */ bl func_8034D29C
+/* 80348BF0 00344850 48 00 46 AD */ bl gti2CloseSocket
/* 80348BF4 00344854 38 60 00 00 */ li r3, 0
/* 80348BF8 00344858 48 00 00 08 */ b lbl_80348C00
lbl_80348BFC:
@@ -166,7 +166,7 @@ lbl_80348C6C: /* 80348CC4 00344924 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80348CC8 00344928 2C 00 00 00 */ cmpwi r0, 0
/* 80348CCC 0034492C 40 82 00 10 */ bne lbl_80348CDC
-/* 80348CD0 00344930 48 00 45 CD */ bl func_8034D29C
+/* 80348CD0 00344930 48 00 45 CD */ bl gti2CloseSocket
/* 80348CD4 00344934 38 60 00 00 */ li r3, 0
/* 80348CD8 00344938 48 00 00 08 */ b lbl_80348CE0
lbl_80348CDC:
@@ -229,7 +229,7 @@ lbl_80348D44: /* 80348D9C 003449FC 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80348DA0 00344A00 2C 00 00 00 */ cmpwi r0, 0
/* 80348DA4 00344A04 40 82 00 10 */ bne lbl_80348DB4
-/* 80348DA8 00344A08 48 00 44 F5 */ bl func_8034D29C
+/* 80348DA8 00344A08 48 00 44 F5 */ bl gti2CloseSocket
/* 80348DAC 00344A0C 38 60 00 00 */ li r3, 0
/* 80348DB0 00344A10 48 00 00 08 */ b lbl_80348DB8
lbl_80348DB4:
@@ -283,7 +283,7 @@ lbl_80348E04: /* 80348E58 00344AB8 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80348E5C 00344ABC 2C 00 00 00 */ cmpwi r0, 0
/* 80348E60 00344AC0 40 82 00 10 */ bne lbl_80348E70
-/* 80348E64 00344AC4 48 00 44 39 */ bl func_8034D29C
+/* 80348E64 00344AC4 48 00 44 39 */ bl gti2CloseSocket
/* 80348E68 00344AC8 38 60 00 00 */ li r3, 0
/* 80348E6C 00344ACC 48 00 00 08 */ b lbl_80348E74
lbl_80348E70:
@@ -337,7 +337,7 @@ lbl_80348EC0: /* 80348F14 00344B74 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80348F18 00344B78 2C 00 00 00 */ cmpwi r0, 0
/* 80348F1C 00344B7C 40 82 00 10 */ bne lbl_80348F2C
-/* 80348F20 00344B80 48 00 43 7D */ bl func_8034D29C
+/* 80348F20 00344B80 48 00 43 7D */ bl gti2CloseSocket
/* 80348F24 00344B84 38 60 00 00 */ li r3, 0
/* 80348F28 00344B88 48 00 00 08 */ b lbl_80348F30
lbl_80348F2C:
@@ -411,7 +411,7 @@ lbl_80348FB0: /* 80349018 00344C78 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 8034901C 00344C7C 2C 00 00 00 */ cmpwi r0, 0
/* 80349020 00344C80 40 82 00 10 */ bne lbl_80349030
-/* 80349024 00344C84 48 00 42 79 */ bl func_8034D29C
+/* 80349024 00344C84 48 00 42 79 */ bl gti2CloseSocket
/* 80349028 00344C88 38 60 00 00 */ li r3, 0
/* 8034902C 00344C8C 48 00 00 08 */ b lbl_80349034
lbl_80349030:
@@ -486,7 +486,7 @@ lbl_803490B8: /* 80349120 00344D80 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80349124 00344D84 2C 00 00 00 */ cmpwi r0, 0
/* 80349128 00344D88 40 82 00 10 */ bne lbl_80349138
-/* 8034912C 00344D8C 48 00 41 71 */ bl func_8034D29C
+/* 8034912C 00344D8C 48 00 41 71 */ bl gti2CloseSocket
/* 80349130 00344D90 38 60 00 00 */ li r3, 0
/* 80349134 00344D94 48 00 00 08 */ b lbl_8034913C
lbl_80349138:
@@ -562,7 +562,7 @@ lbl_8034920C: /* 8034921C 00344E7C 2C 00 00 00 */ cmpwi r0, 0
/* 80349220 00344E80 40 82 00 14 */ bne lbl_80349234
/* 80349224 00344E84 7F C3 F3 78 */ mr r3, r30
-/* 80349228 00344E88 48 00 40 75 */ bl func_8034D29C
+/* 80349228 00344E88 48 00 40 75 */ bl gti2CloseSocket
/* 8034922C 00344E8C 38 60 00 00 */ li r3, 0
/* 80349230 00344E90 48 00 00 08 */ b lbl_80349238
lbl_80349234:
@@ -622,7 +622,7 @@ lbl_803492B0: /* 803492E8 00344F48 2C 03 00 00 */ cmpwi r3, 0
/* 803492EC 00344F4C 40 82 00 14 */ bne lbl_80349300
/* 803492F0 00344F50 7F C3 F3 78 */ mr r3, r30
-/* 803492F4 00344F54 48 00 3F A9 */ bl func_8034D29C
+/* 803492F4 00344F54 48 00 3F A9 */ bl gti2CloseSocket
/* 803492F8 00344F58 38 60 00 00 */ li r3, 0
/* 803492FC 00344F5C 48 00 00 08 */ b lbl_80349304
lbl_80349300:
diff --git a/asm/gt2Connection.s b/asm/gt2Connection.s index a032d0b..87b48b0 100644 --- a/asm/gt2Connection.s +++ b/asm/gt2Connection.s @@ -9,7 +9,7 @@ gti2NewOutgoingConnection: /* 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 func_8034D308
+/* 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
@@ -35,7 +35,7 @@ gti2NewIncomingConnection: /* 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 func_8034D308
+/* 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
@@ -204,7 +204,7 @@ gti2ConnectionSendData: /* 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 func_8034D648
+/* 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
@@ -425,7 +425,7 @@ lbl_803498B0: /* 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 func_8034D57C
+/* 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
diff --git a/asm/gt2Main.s b/asm/gt2Main.s index 863c499..51f1e01 100644 --- a/asm/gt2Main.s +++ b/asm/gt2Main.s @@ -5,7 +5,7 @@ .global gt2CreateSocket
gt2CreateSocket:
/* 803499F0 00345650 39 00 00 00 */ li r8, 0
-/* 803499F4 00345654 48 00 36 6C */ b func_8034D060
+/* 803499F4 00345654 48 00 36 6C */ b gti2CreateSocket
.global gt2CloseSocket
gt2CloseSocket:
@@ -20,7 +20,7 @@ gt2CloseSocket: /* 80349A18 00345678 80 63 00 0C */ lwz r3, 0xc(r3)
/* 80349A1C 0034567C 4B FE D1 A1 */ bl TableMapSafe
/* 80349A20 00345680 7F E3 FB 78 */ mr r3, r31
-/* 80349A24 00345684 48 00 38 79 */ bl func_8034D29C
+/* 80349A24 00345684 48 00 38 79 */ bl gti2CloseSocket
/* 80349A28 00345688 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80349A2C 0034568C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80349A30 00345690 7C 08 03 A6 */ mtlr r0
@@ -38,11 +38,11 @@ gt2Think: /* 80349A54 003456B4 2C 03 00 00 */ cmpwi r3, 0
/* 80349A58 003456B8 41 82 00 1C */ beq lbl_80349A74
/* 80349A5C 003456BC 7F E3 FB 78 */ mr r3, r31
-/* 80349A60 003456C0 48 00 3F 21 */ bl func_8034D980
+/* 80349A60 003456C0 48 00 3F 21 */ bl gti2SocketConnectionsThink
/* 80349A64 003456C4 2C 03 00 00 */ cmpwi r3, 0
/* 80349A68 003456C8 41 82 00 0C */ beq lbl_80349A74
/* 80349A6C 003456CC 7F E3 FB 78 */ mr r3, r31
-/* 80349A70 003456D0 48 00 3F 5D */ bl func_8034D9CC
+/* 80349A70 003456D0 48 00 3F 5D */ bl gti2FreeClosedConnections
lbl_80349A74:
/* 80349A74 003456D4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80349A78 003456D8 83 E1 00 0C */ lwz r31, 0xc(r1)
@@ -52,7 +52,7 @@ lbl_80349A74: .global gt2Listen
gt2Listen:
-/* 80349A88 003456E8 48 00 38 78 */ b func_8034D300
+/* 80349A88 003456E8 48 00 38 78 */ b gti2Listen
.global gt2Accept
gt2Accept:
@@ -120,7 +120,7 @@ lbl_80349B38: /* 80349B58 003457B8 7C 7C 1B 78 */ mr r28, r3
/* 80349B5C 003457BC 41 82 00 14 */ beq lbl_80349B70
/* 80349B60 003457C0 80 61 00 10 */ lwz r3, 0x10(r1)
-/* 80349B64 003457C4 48 00 3A 19 */ bl func_8034D57C
+/* 80349B64 003457C4 48 00 3A 19 */ bl gti2FreeSocketConnection
/* 80349B68 003457C8 7F 83 E3 78 */ mr r3, r28
/* 80349B6C 003457CC 48 00 00 B8 */ b lbl_80349C24
lbl_80349B70:
@@ -146,11 +146,11 @@ lbl_80349BA8: /* 80349BB0 00345810 2C 03 00 00 */ cmpwi r3, 0
/* 80349BB4 00345814 41 82 00 1C */ beq lbl_80349BD0
/* 80349BB8 00345818 7F C3 F3 78 */ mr r3, r30
-/* 80349BBC 0034581C 48 00 3D C5 */ bl func_8034D980
+/* 80349BBC 0034581C 48 00 3D C5 */ bl gti2SocketConnectionsThink
/* 80349BC0 00345820 2C 03 00 00 */ cmpwi r3, 0
/* 80349BC4 00345824 41 82 00 0C */ beq lbl_80349BD0
/* 80349BC8 00345828 7F C3 F3 78 */ mr r3, r30
-/* 80349BCC 0034582C 48 00 3E 01 */ bl func_8034D9CC
+/* 80349BCC 0034582C 48 00 3E 01 */ bl gti2FreeClosedConnections
lbl_80349BD0:
/* 80349BD0 00345830 80 61 00 10 */ lwz r3, 0x10(r1)
/* 80349BD4 00345834 80 03 00 0C */ lwz r0, 0xc(r3)
diff --git a/asm/gt2Message.s b/asm/gt2Message.s index d7e9a1d..81f9a4f 100644 --- a/asm/gt2Message.s +++ b/asm/gt2Message.s @@ -508,7 +508,7 @@ lbl_8034A4C0: /* 8034A4E8 00346148 7F 84 E3 78 */ mr r4, r28
/* 8034A4EC 0034614C 7F A5 EB 78 */ mr r5, r29
/* 8034A4F0 00346150 38 FE 00 01 */ addi r7, r30, 1
-/* 8034A4F4 00346154 48 00 31 55 */ bl func_8034D648
+/* 8034A4F4 00346154 48 00 31 55 */ bl gti2SocketSend
/* 8034A4F8 00346158 7C 03 00 D0 */ neg r0, r3
/* 8034A4FC 0034615C 7C 00 1B 78 */ or r0, r0, r3
/* 8034A500 00346160 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -985,7 +985,7 @@ lbl_8034AB48: /* 8034AB70 003467D0 7F 84 E3 78 */ mr r4, r28
/* 8034AB74 003467D4 7F 65 DB 78 */ mr r5, r27
/* 8034AB78 003467D8 38 FA 00 01 */ addi r7, r26, 1
-/* 8034AB7C 003467DC 48 00 2A CD */ bl func_8034D648
+/* 8034AB7C 003467DC 48 00 2A CD */ bl gti2SocketSend
/* 8034AB80 003467E0 7C 03 00 D0 */ neg r0, r3
/* 8034AB84 003467E4 7C 00 1B 78 */ or r0, r0, r3
/* 8034AB88 003467E8 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -1037,7 +1037,7 @@ lbl_8034AC08: /* 8034AC30 00346890 7F 64 DB 78 */ mr r4, r27
/* 8034AC34 00346894 7F 85 E3 78 */ mr r5, r28
/* 8034AC38 00346898 38 FD 00 01 */ addi r7, r29, 1
-/* 8034AC3C 0034689C 48 00 2A 0D */ bl func_8034D648
+/* 8034AC3C 0034689C 48 00 2A 0D */ bl gti2SocketSend
/* 8034AC40 003468A0 7C 03 00 D0 */ neg r0, r3
/* 8034AC44 003468A4 7C 00 1B 78 */ or r0, r0, r3
/* 8034AC48 003468A8 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -1485,7 +1485,7 @@ lbl_8034B234: /* 8034B25C 00346EBC 7F 64 DB 78 */ mr r4, r27
/* 8034B260 00346EC0 7F 85 E3 78 */ mr r5, r28
/* 8034B264 00346EC4 38 FD 00 01 */ addi r7, r29, 1
-/* 8034B268 00346EC8 48 00 23 E1 */ bl func_8034D648
+/* 8034B268 00346EC8 48 00 23 E1 */ bl gti2SocketSend
/* 8034B26C 00346ECC 7C 03 00 D0 */ neg r0, r3
/* 8034B270 00346ED0 7C 00 1B 78 */ or r0, r0, r3
/* 8034B274 00346ED4 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -1911,7 +1911,7 @@ gti2HandleMessage: /* 8034B820 00347480 7F 00 28 50 */ subf r24, r0, r5
/* 8034B824 00347484 7F A4 EB 78 */ mr r4, r29
/* 8034B828 00347488 7F C5 F3 78 */ mr r5, r30
-/* 8034B82C 0034748C 48 00 17 E9 */ bl func_8034D014
+/* 8034B82C 0034748C 48 00 17 E9 */ bl gti2SocketFindConnection
/* 8034B830 00347490 90 61 00 14 */ stw r3, 0x14(r1)
/* 8034B834 00347494 7C 64 1B 78 */ mr r4, r3
/* 8034B838 00347498 80 1A 00 2C */ lwz r0, 0x2c(r26)
@@ -1999,7 +1999,7 @@ lbl_8034B93C: /* 8034B964 003475C4 7F A4 EB 78 */ mr r4, r29
/* 8034B968 003475C8 7F C5 F3 78 */ mr r5, r30
/* 8034B96C 003475CC 38 FB 00 01 */ addi r7, r27, 1
-/* 8034B970 003475D0 48 00 1C D9 */ bl func_8034D648
+/* 8034B970 003475D0 48 00 1C D9 */ bl gti2SocketSend
/* 8034B974 003475D4 7C 03 00 D0 */ neg r0, r3
/* 8034B978 003475D8 7C 00 1B 78 */ or r0, r0, r3
/* 8034B97C 003475DC 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -2050,7 +2050,7 @@ lbl_8034B9F8: /* 8034BA20 00347680 7F A4 EB 78 */ mr r4, r29
/* 8034BA24 00347684 7F C5 F3 78 */ mr r5, r30
/* 8034BA28 00347688 38 FB 00 01 */ addi r7, r27, 1
-/* 8034BA2C 0034768C 48 00 1C 1D */ bl func_8034D648
+/* 8034BA2C 0034768C 48 00 1C 1D */ bl gti2SocketSend
/* 8034BA30 00347690 7C 03 00 D0 */ neg r0, r3
/* 8034BA34 00347694 7C 00 1B 78 */ or r0, r0, r3
/* 8034BA38 00347698 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -2100,7 +2100,7 @@ lbl_8034BAB0: /* 8034BAD8 00347738 7F 84 E3 78 */ mr r4, r28
/* 8034BADC 0034773C 7F 65 DB 78 */ mr r5, r27
/* 8034BAE0 00347740 38 FA 00 01 */ addi r7, r26, 1
-/* 8034BAE4 00347744 48 00 1B 65 */ bl func_8034D648
+/* 8034BAE4 00347744 48 00 1B 65 */ bl gti2SocketSend
/* 8034BAE8 00347748 7C 03 00 D0 */ neg r0, r3
/* 8034BAEC 0034774C 7C 00 1B 78 */ or r0, r0, r3
/* 8034BAF0 00347750 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -2213,7 +2213,7 @@ gti2HandleConnectionReset: /* 8034BC68 003478C8 7C 9D 23 78 */ mr r29, r4
/* 8034BC6C 003478CC 93 81 00 10 */ stw r28, 0x10(r1)
/* 8034BC70 003478D0 7C 7C 1B 78 */ mr r28, r3
-/* 8034BC74 003478D4 48 00 13 A1 */ bl func_8034D014
+/* 8034BC74 003478D4 48 00 13 A1 */ bl gti2SocketFindConnection
/* 8034BC78 003478D8 80 1C 00 2C */ lwz r0, 0x2c(r28)
/* 8034BC7C 003478DC 7C 7F 1B 78 */ mr r31, r3
/* 8034BC80 003478E0 2C 00 00 00 */ cmpwi r0, 0
@@ -2366,7 +2366,7 @@ gti2HandleHostUnreachable: /* 8034BE7C 00347ADC 7C 7B 1B 78 */ mr r27, r3
/* 8034BE80 00347AE0 7C 9C 23 78 */ mr r28, r4
/* 8034BE84 00347AE4 7C DE 33 78 */ mr r30, r6
-/* 8034BE88 00347AE8 48 00 11 8D */ bl func_8034D014
+/* 8034BE88 00347AE8 48 00 11 8D */ bl gti2SocketFindConnection
/* 8034BE8C 00347AEC 80 1B 00 2C */ lwz r0, 0x2c(r27)
/* 8034BE90 00347AF0 7C 7F 1B 78 */ mr r31, r3
/* 8034BE94 00347AF4 2C 00 00 00 */ cmpwi r0, 0
@@ -2492,7 +2492,7 @@ lbl_8034C028: /* 8034C040 00347CA0 7F E3 FB 78 */ mr r3, r31
/* 8034C044 00347CA4 7F 24 CB 78 */ mr r4, r25
/* 8034C048 00347CA8 57 A5 04 3E */ clrlwi r5, r29, 0x10
-/* 8034C04C 00347CAC 48 00 0F C9 */ bl func_8034D014
+/* 8034C04C 00347CAC 48 00 0F C9 */ bl gti2SocketFindConnection
/* 8034C050 00347CB0 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 8034C054 00347CB4 7C 78 1B 78 */ mr r24, r3
/* 8034C058 00347CB8 2C 00 00 00 */ cmpwi r0, 0
@@ -2568,7 +2568,7 @@ lbl_8034C14C: /* 8034C14C 00347DAC 2C 03 FF DD */ cmpwi r3, -35
/* 8034C150 00347DB0 41 82 00 48 */ beq lbl_8034C198
/* 8034C154 00347DB4 7F E3 FB 78 */ mr r3, r31
-/* 8034C158 00347DB8 48 00 19 65 */ bl func_8034DABC
+/* 8034C158 00347DB8 48 00 19 65 */ bl gti2SocketError
/* 8034C15C 00347DBC 38 60 00 00 */ li r3, 0
/* 8034C160 00347DC0 48 00 00 4C */ b lbl_8034C1AC
lbl_8034C164:
@@ -2646,7 +2646,7 @@ lbl_8034C240: /* 8034C268 00347EC8 7F 84 E3 78 */ mr r4, r28
/* 8034C26C 00347ECC 7F 65 DB 78 */ mr r5, r27
/* 8034C270 00347ED0 38 FA 00 01 */ addi r7, r26, 1
-/* 8034C274 00347ED4 48 00 13 D5 */ bl func_8034D648
+/* 8034C274 00347ED4 48 00 13 D5 */ bl gti2SocketSend
/* 8034C278 00347ED8 7C 03 00 D0 */ neg r0, r3
/* 8034C27C 00347EDC 7C 00 1B 78 */ or r0, r0, r3
/* 8034C280 00347EE0 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -2757,7 +2757,7 @@ lbl_8034C3D8: /* 8034C400 00348060 7F 64 DB 78 */ mr r4, r27
/* 8034C404 00348064 7F 85 E3 78 */ mr r5, r28
/* 8034C408 00348068 38 FD 00 01 */ addi r7, r29, 1
-/* 8034C40C 0034806C 48 00 12 3D */ bl func_8034D648
+/* 8034C40C 0034806C 48 00 12 3D */ bl gti2SocketSend
/* 8034C410 00348070 7C 03 00 D0 */ neg r0, r3
/* 8034C414 00348074 7C 00 1B 78 */ or r0, r0, r3
/* 8034C418 00348078 54 00 0F FF */ rlwinm. r0, r0, 1, 0x1f, 0x1f
@@ -3473,7 +3473,7 @@ lbl_8034CDA8: /* 8034CDD0 00348A30 7F C4 F3 78 */ mr r4, r30
/* 8034CDD4 00348A34 7F A5 EB 78 */ mr r5, r29
/* 8034CDD8 00348A38 38 FC 00 01 */ addi r7, r28, 1
-/* 8034CDDC 00348A3C 48 00 08 6D */ bl func_8034D648
+/* 8034CDDC 00348A3C 48 00 08 6D */ bl gti2SocketSend
/* 8034CDE0 00348A40 7C 03 00 D0 */ neg r0, r3
/* 8034CDE4 00348A44 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8034CDE8 00348A48 7C 00 1B 78 */ or r0, r0, r3
diff --git a/asm/gt2Socket.s b/asm/gt2Socket.s new file mode 100644 index 0000000..7c06e47 --- /dev/null +++ b/asm/gt2Socket.s @@ -0,0 +1,847 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global gti2ConnectionHash
+gti2ConnectionHash:
+/* 8034CFB8 00348C18 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8034CFBC 00348C1C 80 65 00 00 */ lwz r3, 0(r5)
+/* 8034CFC0 00348C20 A0 05 00 04 */ lhz r0, 4(r5)
+/* 8034CFC4 00348C24 7C 63 01 D6 */ mullw r3, r3, r0
+/* 8034CFC8 00348C28 7C 03 23 96 */ divwu r0, r3, r4
+/* 8034CFCC 00348C2C 7C 00 21 D6 */ mullw r0, r0, r4
+/* 8034CFD0 00348C30 7C 60 18 50 */ subf r3, r0, r3
+/* 8034CFD4 00348C34 4E 80 00 20 */ blr
+
+.global gti2ConnectionCompare
+gti2ConnectionCompare:
+/* 8034CFD8 00348C38 80 A3 00 00 */ lwz r5, 0(r3)
+/* 8034CFDC 00348C3C 80 84 00 00 */ lwz r4, 0(r4)
+/* 8034CFE0 00348C40 80 65 00 00 */ lwz r3, 0(r5)
+/* 8034CFE4 00348C44 80 04 00 00 */ lwz r0, 0(r4)
+/* 8034CFE8 00348C48 7C 03 00 40 */ cmplw r3, r0
+/* 8034CFEC 00348C4C 41 82 00 0C */ beq lbl_8034CFF8
+/* 8034CFF0 00348C50 7C 60 18 50 */ subf r3, r0, r3
+/* 8034CFF4 00348C54 4E 80 00 20 */ blr
+lbl_8034CFF8:
+/* 8034CFF8 00348C58 A0 64 00 04 */ lhz r3, 4(r4)
+/* 8034CFFC 00348C5C A0 05 00 04 */ lhz r0, 4(r5)
+/* 8034D000 00348C60 7C 03 00 50 */ subf r0, r3, r0
+/* 8034D004 00348C64 7C 03 07 34 */ extsh r3, r0
+/* 8034D008 00348C68 4E 80 00 20 */ blr
+
+.global gti2ConnectionFree
+gti2ConnectionFree:
+/* 8034D00C 00348C6C 80 63 00 00 */ lwz r3, 0(r3)
+/* 8034D010 00348C70 4B FF C9 3C */ b gti2ConnectionCleanup
+
+.global gti2SocketFindConnection
+gti2SocketFindConnection:
+/* 8034D014 00348C74 94 21 FF 50 */ stwu r1, -0xb0(r1)
+/* 8034D018 00348C78 7C 08 02 A6 */ mflr r0
+/* 8034D01C 00348C7C 90 01 00 B4 */ stw r0, 0xb4(r1)
+/* 8034D020 00348C80 38 01 00 10 */ addi r0, r1, 0x10
+/* 8034D024 00348C84 90 81 00 10 */ stw r4, 0x10(r1)
+/* 8034D028 00348C88 38 81 00 08 */ addi r4, r1, 8
+/* 8034D02C 00348C8C B0 A1 00 14 */ sth r5, 0x14(r1)
+/* 8034D030 00348C90 90 01 00 08 */ stw r0, 8(r1)
+/* 8034D034 00348C94 80 63 00 0C */ lwz r3, 0xc(r3)
+/* 8034D038 00348C98 4B FE 9A E5 */ bl TableLookup
+/* 8034D03C 00348C9C 2C 03 00 00 */ cmpwi r3, 0
+/* 8034D040 00348CA0 41 82 00 0C */ beq lbl_8034D04C
+/* 8034D044 00348CA4 80 63 00 00 */ lwz r3, 0(r3)
+/* 8034D048 00348CA8 48 00 00 08 */ b lbl_8034D050
+lbl_8034D04C:
+/* 8034D04C 00348CAC 38 60 00 00 */ li r3, 0
+lbl_8034D050:
+/* 8034D050 00348CB0 80 01 00 B4 */ lwz r0, 0xb4(r1)
+/* 8034D054 00348CB4 7C 08 03 A6 */ mtlr r0
+/* 8034D058 00348CB8 38 21 00 B0 */ addi r1, r1, 0xb0
+/* 8034D05C 00348CBC 4E 80 00 20 */ blr
+
+.global gti2CreateSocket
+gti2CreateSocket:
+/* 8034D060 00348CC0 94 21 FF C0 */ stwu r1, -0x40(r1)
+/* 8034D064 00348CC4 7C 08 02 A6 */ mflr r0
+/* 8034D068 00348CC8 90 01 00 44 */ stw r0, 0x44(r1)
+/* 8034D06C 00348CCC 39 61 00 40 */ addi r11, r1, 0x40
+/* 8034D070 00348CD0 4B E7 A0 B5 */ bl func_801C7124
+/* 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 func_8034DC30
+/* 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 func_802F6D7C
+/* 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 func_802F6D70
+/* 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 func_801C7170
+/* 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 func_8034DDD4
+/* 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 func_802F6D7C
+/* 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
diff --git a/asm/text_10_2.s b/asm/text_10_2.s index 6f41524..608133f 100644 --- a/asm/text_10_2.s +++ b/asm/text_10_2.s @@ -2,844 +2,6 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60
-lbl_8034CFB8:
-/* 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
-
-lbl_8034CFD8:
-/* 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
-lbl_8034D00C:
-/* 8034D00C 00348C6C 80 63 00 00 */ lwz r3, 0(r3)
-/* 8034D010 00348C70 4B FF C9 3C */ b gti2ConnectionCleanup
-
-.global func_8034D014
-func_8034D014:
-/* 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 func_8034D060
-func_8034D060:
-/* 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 func_801C7124
-/* 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 func_8034DC30
-/* 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, lbl_8034CFB8@ha
-/* 8034D0F8 00348D58 90 1F 00 00 */ stw r0, 0(r31)
-/* 8034D0FC 00348D5C 3C E0 80 35 */ lis r7, lbl_8034CFD8@ha
-/* 8034D100 00348D60 38 C6 CF B8 */ addi r6, r6, lbl_8034CFB8@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, lbl_8034CFD8@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, lbl_8034D00C@ha
-/* 8034D148 00348DA8 38 60 00 04 */ li r3, 4
-/* 8034D14C 00348DAC 38 A5 D0 0C */ addi r5, r5, lbl_8034D00C@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 func_802F6D7C
-/* 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 func_802F6D70
-/* 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 func_801C7170
-/* 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 func_8034D29C
-func_8034D29C:
-/* 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 func_8034D300
-func_8034D300:
-/* 8034D300 00348F60 90 83 00 20 */ stw r4, 0x20(r3)
-/* 8034D304 00348F64 4E 80 00 20 */ blr
-
-.global func_8034D308
-func_8034D308:
-/* 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 func_8034D57C
-func_8034D57C:
-/* 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 func_8034D648
-func_8034D648:
-/* 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 func_8034DDD4
-/* 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 func_802F6D7C
-/* 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
-lbl_8034D864:
-/* 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 func_8034D980
-func_8034D980:
-/* 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, lbl_8034D864@ha
-/* 8034D9A0 00349600 38 84 D8 64 */ addi r4, r4, lbl_8034D864@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 func_8034D9CC
-func_8034D9CC:
-/* 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 func_8034DABC
-func_8034DABC:
-/* 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
-
.global func_8034DB4C
func_8034DB4C:
/* 8034DB4C 003497AC 94 21 FF E0 */ stwu r1, -0x20(r1)
diff --git a/obj_files.mk b/obj_files.mk index 3f29bfa..4eae807 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -68,6 +68,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/gt2Connection.o \ $(BUILD_DIR)/asm/gt2Main.o \ $(BUILD_DIR)/asm/gt2Message.o \ + $(BUILD_DIR)/asm/gt2Socket.o \ $(BUILD_DIR)/asm/text_10_2.o \ $(BUILD_DIR)/asm/text_11.o |