Function at 0x406e94
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get hostname
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x6f
push 0
push 0
dec ecx
jne 0x406e9d
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
call fcn.004041ec
mov eax, dword [ebp - 0xc]
call fcn.004041ec
mov eax, dword [ebp - 0x10]
call fcn.004041ec
mov eax, dword [ebp + 0xc]
call fcn.004041ec
mov eax, dword [ebp + 8]
call fcn.004041ec
xor eax, eax
push ebp
push 0x407328
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 8], 0
je 0x4072e3
cmp dword [ebp - 0xc], 0
je 0x4072e3
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebp - 8]
mov eax, 0x407344
call fcn.00404340
inc eax
push eax
mov eax, dword [ebp - 8]
call fcn.00403ffc
mov ecx, eax
mov eax, dword [ebp - 8]
pop edx
call fcn.0040425c
mov ecx, dword [ebp - 0x20]
mov dl, 1
mov eax, dword [0x4062b0]
call fcn.004069ec
mov edi, eax
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 8]
test eax, eax
je 0x4072e3
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4072e3
inc ebx
xor esi, esi
lea eax, [ebp - 0x300]
push eax
mov dl, 1
mov al, 2
call fcn.00404fb0
push eax
call sub.wsock32.dll_WSAStartup
push 0x40
lea eax, [ebp - 0x350]
push eax
call sub.wsock32.dll_gethostname
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov dword [ebp - 4], eax
mov word [ebp - 0x310], 2
push 0x19
call sub.wsock32.dll_htons
mov word [ebp - 0x30e], ax
lea ecx, [ebp - 0x358]
mov eax, dword [edi + 0xc]
mov edx, esi
call fcn.0040625c
mov eax, dword [ebp - 0x358]
lea edx, [ebp - 0x354]
call fcn.00406c9c
mov eax, dword [ebp - 0x354]
call fcn.004041fc
push eax
call sub.wsock32.dll_inet_addr
mov dword [ebp - 0x30c], eax
push 0x10
lea eax, [ebp - 0x310]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.wsock32.dll_connect
inc eax
jle 0x4072db
call fcn.004027c4
push 0x407350
mov eax, 0x5f5e0ff
call fcn.00402e60
lea edx, [ebp - 0x35c]
call fcn.00406ad0
push dword [ebp - 0x35c]
push 0x40735c
mov eax, 0x270f
call fcn.00402e60
lea edx, [ebp - 0x360]
call fcn.00406ad0
push dword [ebp - 0x360]
push 0x407368
lea eax, [ebp - 0x24]
mov edx, 5
call fcn.004040bc
push ebp
mov eax, 0x407374
call fcn.00406db8
pop ecx
test eax, eax
je 0x4072e3
push 0x407380
lea eax, [ebp - 0x368]
lea edx, [ebp - 0x350]
mov ecx, 0x40
call fcn.00403fe4
push dword [ebp - 0x368]
push 0x407390
lea eax, [ebp - 0x364]
mov edx, 3
call fcn.004040bc
mov eax, dword [ebp - 0x364]
mov edx, dword [ebp - 4]
call fcn.00406d5c
push ebp
mov eax, 0x40739c
call fcn.00406db8
pop ecx
test eax, eax
je 0x4072e3
push 0x4073a8
push dword [ebp - 0xc]
push 0x4073c0
lea eax, [ebp - 0x36c]
mov edx, 3
call fcn.004040bc
mov eax, dword [ebp - 0x36c]
mov edx, dword [ebp - 4]
call fcn.00406d5c
push ebp
mov eax, 0x40739c
call fcn.00406db8
pop ecx
test eax, eax
je 0x4072e3
push 0x4073cc
push dword [ebp - 8]
push 0x4073c0
lea eax, [ebp - 0x370]
mov edx, 3
call fcn.004040bc
mov eax, dword [ebp - 0x370]
mov edx, dword [ebp - 4]
call fcn.00406d5c
push ebp
mov eax, 0x40739c
call fcn.00406db8
pop ecx
test eax, eax
je 0x4072e3
mov edx, dword [ebp - 4]
mov eax, 0x4073e0
call fcn.00406d5c
push ebp
mov eax, 0x4073f0
call fcn.00406db8
pop ecx
test eax, eax
je 0x4072e3
push 0x4073fc
push dword [ebp - 0xc]
push 0x407390
push 0x40740c
push dword [ebp - 8]
push 0x407390
push 0x40741c
push dword [ebp + 0xc]
push 0x407390
push 0x407430
push 0x40744c
push dword [ebp - 0x24]
push 0x407480
push 0x40735c
push dword [ebp - 0x24]
push 0x407390
push 0x407490
push dword [ebp + 8]
push 0x4074c8
push 0x40735c
push dword [ebp - 0x24]
push 0x407390
push 0x4074d8
push 0x407510
lea edx, [ebp - 0x378]
mov eax, dword [ebp - 0x10]
call fcn.00406b08
push dword [ebp - 0x378]
push 0x407520
push 0x40752c
lea eax, [ebp - 0x374]
mov edx, 0x1b
call fcn.004040bc
mov eax, dword [ebp - 0x374]
mov edx, dword [ebp - 4]
call fcn.00406d5c
mov edx, dword [ebp - 0x10]
lea eax, [ebp - 0x170]
call fcn.00402ac0
mov eax, dword [0x40b1c8]
mov byte [eax], 0
mov edx, 1
lea eax, [ebp - 0x170]
call fcn.00403154
call fcn.00402618
test eax, eax
jne 0x407280
lea eax, [ebp - 0x170]
call fcn.00402df4
mov edx, eax
lea eax, [ebp - 0x18]
call fcn.00404388
push 0
lea eax, [ebp - 0x170]
call fcn.00402df4
push eax
lea eax, [ebp - 0x18]
call fcn.00404254
mov edx, eax
lea eax, [ebp - 0x170]
pop ecx
call fcn.00402c10
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
call fcn.00406c24
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
call fcn.00406d5c
lea eax, [ebp - 0x170]
call fcn.00402c30
push 0x40755c
push dword [ebp - 0x24]
push 0x40756c
lea eax, [ebp - 0x37c]
mov edx, 3
call fcn.004040bc
mov eax, dword [ebp - 0x37c]
mov edx, dword [ebp - 4]
call fcn.00406d5c
push ebp
mov eax, 0x40739c
call fcn.00406db8
pop ecx
test eax, eax
je 0x4072e3
mov edx, dword [ebp - 4]
mov eax, 0x40757c
call fcn.00406d5c
mov dword [ebp - 0x14], 0xffffffff
mov eax, dword [0x40b1d0]
inc dword [eax]
call sub.wsock32.dll_WSACleanup
inc esi
dec ebx
jne 0x406f55
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40732f
lea eax, [ebp - 0x37c]
mov edx, 0xb
call fcn.00403e9c
lea eax, [ebp - 0x24]
mov edx, 4
call fcn.00403e9c
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00403e9c
lea eax, [ebp + 8]
mov edx, 2
call fcn.00403e9c
ret