Function at 0x10001aa0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create raw socket
Create tcp socket
Create udp socket
Print debug messages
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1000eb3d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x12ce8
call fcn.1000e410
mov eax, dword [0x10013150]
mov dword [ebp - 0x14], eax
push edi
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov dword [ebp - 4], 0
push 0
push str.GameTools.exe
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int_const]
mov dword [ebp - 0xc3b8], eax
cmp dword [ebp - 0xc3b8], 0
jge 0x10001b13
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x1000211e
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
push eax
mov ecx, dword [ebp - 0xc3b8]
add ecx, 1
push ecx
lea edx, [ebp - 0x12cd4]
push edx
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::substr_unsigned_int__unsigned_int_]
mov dword [ebp - 0x12ce0], eax
mov eax, dword [ebp - 0x12ce0]
mov dword [ebp - 0x12ce4], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x12ce4]
push ecx
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x12cd4]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x12cd8], esp
push 0x100103bc
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov dword [ebp - 0x12ce8], eax
mov edx, dword [ebp - 0x12ce8]
mov dword [ebp - 0x12cec], edx
mov byte [ebp - 4], 2
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x12cdc], esp
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov dword [ebp - 0x12cf0], eax
lea ecx, [ebp - 0xc410]
push ecx
mov byte [ebp - 4], 0
call fcn.10001970
add esp, 0x3c
mov dword [ebp - 0x12cf4], eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc410]
call fcn.10004b00
cmp eax, 5
je 0x10001c05
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc410]
call fcn.10004ae0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
jmp 0x1000211e
push 3
lea ecx, [ebp - 0xc410]
call fcn.10004b40
push eax
lea ecx, [ebp - 0xc400]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov byte [ebp - 4], 4
push 4
lea ecx, [ebp - 0xc410]
call fcn.10004b40
push eax
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov byte [ebp - 4], 5
push 1
lea ecx, [ebp - 0xc410]
call fcn.10004b40
push eax
lea ecx, [ebp - 0xc3dc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov byte [ebp - 4], 6
push 2
lea ecx, [ebp - 0xc410]
call fcn.10004b40
push eax
lea ecx, [ebp - 0xc6b0]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov byte [ebp - 4], 7
mov byte [ebp - 0xc694], 0
mov ecx, 0x89
xor eax, eax
lea edi, [ebp - 0xc693]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0xc400]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0xc6b0]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0xc3dc]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
push str.name:_s_pass:_s_ip:_s_port:_s_r_n
lea edx, [ebp - 0xc694]
push edx
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0x18
lea eax, [ebp - 0xc694]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0xa
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
call dword [sym.imp.MSVCR71.dll_strtol]
add esp, 0xc
mov dword [ebp - 0x61f8], eax
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0xc3e4], eax
lea ecx, [ebp - 0xc400]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0xc3b0], eax
mov word [ebp - 0xc3b4], 2
mov dx, word [ebp - 0x61f8]
push edx
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0xc3b2], ax
push 0x10
lea eax, [ebp - 0xc3b4]
push eax
mov ecx, dword [ebp - 0xc3e4]
push ecx
call dword [sym.imp.WS2_32.dll_connect]
mov dword [ebp - 0xc3c0], 0x64
push 4
lea edx, [ebp - 0xc3c0]
push edx
push 0x1006
push 0xffff
mov eax, dword [ebp - 0xc3e4]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
push 0
push 0x61a8
lea ecx, [ebp - 0x61f4]
push ecx
mov edx, dword [ebp - 0xc3e4]
push edx
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0xc3bc], eax
push 0x54
push 0
lea eax, [ebp - 0xc46c]
push eax
call sub.MSVCR71.dll_memset
add esp, 0xc
mov byte [ebp - 0xc46c], 0x4b
mov byte [ebp - 0xc46b], 0x48
mov byte [ebp - 0xc46a], 1
mov byte [ebp - 0xc469], 1
mov byte [ebp - 0xc464], 0xd2
mov byte [ebp - 0xc463], 7
mov byte [ebp - 0xc462], 0x48
lea ecx, [ebp - 0xc3dc]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
push eax
lea ecx, [ebp - 0xc3dc]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0xc460]
push ecx
call sub.MSVCR71.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0xc6b0]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
push eax
lea ecx, [ebp - 0xc6b0]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea edx, [ebp - 0xc43c]
push edx
call sub.MSVCR71.dll_memcpy
add esp, 0xc
mov dword [ebp - 0xc6b4], 0xc
jmp 0x10001e5e
mov eax, dword [ebp - 0xc6b4]
add eax, 1
mov dword [ebp - 0xc6b4], eax
cmp dword [ebp - 0xc6b4], 0x54
jge 0x10001e87
mov ecx, dword [ebp - 0xc6b4]
movsx edx, byte [ebp + ecx - 0xc46c]
xor edx, 3
mov eax, dword [ebp - 0xc6b4]
mov byte [ebp + eax - 0xc46c], dl
jmp 0x10001e4f
push 0
push 0x54
lea ecx, [ebp - 0xc46c]
push ecx
mov edx, dword [ebp - 0xc3e4]
push edx
call dword [sym.imp.WS2_32.dll_send]
push 0
push 0x61a8
lea eax, [ebp - 0xc3a4]
push eax
mov ecx, dword [ebp - 0xc3e4]
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0xc3e0], eax
cmp dword [ebp - 0xc3e0], 0x14
jge 0x100020b5
mov edx, dword [ebp - 0xc3e4]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0xc3e4], eax
lea ecx, [ebp - 0xc400]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x12c50], eax
mov word [ebp - 0x12c54], 2
mov ax, word [ebp - 0x61f8]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x12c52], ax
push 0x10
lea ecx, [ebp - 0x12c54]
push ecx
mov edx, dword [ebp - 0xc3e4]
push edx
call dword [sym.imp.WS2_32.dll_connect]
mov dword [ebp - 0x12c58], 0x64
push 4
lea eax, [ebp - 0x12c58]
push eax
push 0x1006
push 0xffff
mov ecx, dword [ebp - 0xc3e4]
push ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
push 0
push 0x3e8
lea edx, [ebp - 0xca9c]
push edx
mov eax, dword [ebp - 0xc3e4]
push eax
call dword [sym.imp.WS2_32.dll_recv]
lea ecx, [ebp - 0xca9c]
push ecx
push 0x100103e0
call dword [sym.imp.MSVCR71.dll_printf]
add esp, 8
push 0x54
push 0
lea edx, [ebp - 0x12cb4]
push edx
call sub.MSVCR71.dll_memset
add esp, 0xc
mov byte [ebp - 0x12cb4], 0x4b
mov byte [ebp - 0x12cb3], 0x48
mov byte [ebp - 0x12cb2], 1
mov byte [ebp - 0x12cb1], 1
mov byte [ebp - 0x12cac], 0xd2
mov byte [ebp - 0x12cab], 7
mov byte [ebp - 0x12caa], 0x48
lea ecx, [ebp - 0xc3dc]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
push eax
lea ecx, [ebp - 0xc3dc]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea eax, [ebp - 0x12ca8]
push eax
call sub.MSVCR71.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0xc6b0]
call dword [sym.imp.MSVCP71.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
push eax
lea ecx, [ebp - 0xc6b0]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [ebp - 0x12c84]
push ecx
call sub.MSVCR71.dll_memcpy
add esp, 0xc
mov dword [ebp - 0x12cb8], 0xc
jmp 0x10002044
mov edx, dword [ebp - 0x12cb8]
add edx, 1
mov dword [ebp - 0x12cb8], edx
cmp dword [ebp - 0x12cb8], 0x54
jge 0x1000206d
mov eax, dword [ebp - 0x12cb8]
movsx ecx, byte [ebp + eax - 0x12cb4]
xor ecx, 3
mov edx, dword [ebp - 0x12cb8]
mov byte [ebp + edx - 0x12cb4], cl
jmp 0x10002035
push 0
push 0x54
lea eax, [ebp - 0x12cb4]
push eax
mov ecx, dword [ebp - 0xc3e4]
push ecx
call dword [sym.imp.WS2_32.dll_send]
push 0
push 0x61a8
lea edx, [ebp - 0x12c44]
push edx
mov eax, dword [ebp - 0xc3e4]
push eax
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x12c5c], eax
mov ecx, dword [ebp - 0xc3e4]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
jmp 0x100020c2
mov edx, dword [ebp - 0xc3e4]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xc6b0]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xc3dc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xc400]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xc410]
call fcn.10004ae0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.1000e3ed
pop edi
mov esp, ebp
pop ebp
ret 8