Function at 0x478ad0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get socket status
Initialize winsock library
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x61
push 0
push 0
dec ecx
jne 0x478ad9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
test dl, dl
je 0x478af3
add esp, 0xfffffff0
call fcn.00408168
mov edi, ecx
mov byte [ebp - 0xd], dl
mov ebx, eax
xor eax, eax
push ebp
push 0x479276
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, ebx
call fcn.00407bc8
lea eax, [ebp - 0x1bc]
push eax
push 0x101
call sub.wsock32.dll_WSAStartup
lea eax, [ebx + 4]
mov edx, edi
call fcn.0040aa1c
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov esi, eax
mov dword [ebx + 0x50], esi
inc esi
je 0x4791e4
mov eax, edi
call fcn.0040a3a8
push eax
call sub.wsock32.dll_inet_addr
mov esi, eax
cmp esi, 0xffffffff
jne 0x478b6f
mov eax, edi
call fcn.0040a3a8
push eax
call sub.wsock32.dll_gethostbyname
test eax, eax
je 0x478b6f
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov esi, dword [eax]
cmp esi, 0xffffffff
je 0x4791b4
cmp word [ebp + 0x18], 0
jne 0x478bad
cmp byte [ebp + 0x14], 0
je 0x478b8d
mov word [ebp + 0x18], 0x1d1
jmp 0x478bad
cmp byte [ebp + 0x10], 0
je 0x478ba7
cmp dword [ebp + 0xc], 0
jne 0x478b9f
cmp dword [ebp + 8], 0
je 0x478ba7
mov word [ebp + 0x18], 0x24b
jmp 0x478bad
mov word [ebp + 0x18], 0x19
mov word [ebp - 0x2c], 2
movzx eax, word [ebp + 0x18]
push eax
call sub.wsock32.dll_htons
mov word [ebp - 0x2a], ax
mov dword [ebp - 0x28], esi
mov esi, 0x10000
mov dword [ebx + 0x74], esi
push 4
push 0x1000
push esi
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov dword [ebx + 0x78], eax
mov dword [ebp - 0x14], 1
lea eax, [ebp - 0x14]
push eax
push 0x8004667e
mov eax, dword [ebx + 0x50]
push eax
call sub.wsock32.dll_ioctlsocket
push 0x10
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebx + 0x50]
push eax
call sub.wsock32.dll_connect
mov dword [ebp - 0x2c0], 1
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x2bc], eax
mov eax, dword [0x76350c]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
push 0
lea eax, [ebp - 0x2c0]
push eax
push 0
push 0
call sub.wsock32.dll_select
test eax, eax
jle 0x4791a2
xor eax, eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push 0x8004667e
mov eax, dword [ebx + 0x50]
push eax
call sub.wsock32.dll_ioctlsocket
cmp byte [ebp + 0x14], 0
je 0x478c70
mov eax, ebx
call fcn.0047956c
test al, al
je 0x479190
cmp dword [0x763508], 0
je 0x478c89
lea eax, [ebp - 0xc]
mov edx, dword [0x763508]
call fcn.00409de0
jmp 0x478ca7
lea eax, [ebp - 0x2c4]
call fcn.0045f5a0
mov edx, dword [ebp - 0x2c4]
lea eax, [ebp - 0xc]
mov ecx, 0
call fcn.0040a554
lea eax, [ebp - 4]
call fcn.00409938
mov ecx, eax
mov edx, 0x4792b0
mov eax, ebx
call fcn.00479f10
test al, al
je 0x47912c
lea eax, [ebp - 4]
call fcn.00409938
push eax
lea eax, [ebp - 0x2c8]
mov ecx, dword [ebp - 0xc]
mov edx, 0x4792c0
call fcn.0040a1dc
mov edx, dword [ebp - 0x2c8]
mov ecx, 0x4792d4
mov eax, ebx
call fcn.00479da4
test al, al
jne 0x478d2d
lea eax, [ebp - 4]
call fcn.00409938
push eax
lea eax, [ebp - 0x2cc]
mov ecx, dword [ebp - 0xc]
mov edx, 0x4792e4
call fcn.0040a1dc
mov edx, dword [ebp - 0x2cc]
mov ecx, 0x4792d4
mov eax, ebx
call fcn.00479da4
test al, al
je 0x47912c
mov byte [ebx + 0x88], 1
cmp byte [ebp + 0x14], 0
jne 0x478d7a
push 0x7fffffff
mov esi, dword [0x768d78]
mov esi, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 4]
mov eax, 0x4792f8
call esi
test eax, eax
jne 0x478d7e
push 0x7fffffff
mov esi, dword [0x768d78]
mov esi, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 4]
mov eax, 0x479314
call esi
test eax, eax
jne 0x478d7e
xor eax, eax
jmp 0x478d80
mov al, 1
mov byte [ebx + 0x8a], al
cmp byte [ebx + 0x8a], 0
je 0x478ddb
cmp byte [ebp + 0x10], 0
jne 0x478ddf
cmp dword [ebp + 0xc], 0
je 0x478ddb
push 0x7fffffff
mov esi, dword [0x768d78]
mov esi, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 4]
mov eax, 0x479330
call esi
test eax, eax
jne 0x478ddb
push 0x7fffffff
mov esi, dword [0x768d78]
mov esi, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 4]
mov eax, 0x479348
call esi
test eax, eax
je 0x478ddf
xor eax, eax
jmp 0x478de1
mov al, 1
mov byte [ebx + 0x8b], al
cmp byte [ebx + 0x8b], 0
je 0x478e8d
lea eax, [ebp - 4]
call fcn.00409938
push eax
mov ecx, 0x4792b0
mov edx, 0x479360
mov eax, ebx
call fcn.00479da4
test al, al
je 0x4790a7
mov eax, ebx
call fcn.0047956c
test al, al
je 0x4790a7
lea eax, [ebp - 4]
call fcn.00409938
push eax
lea eax, [ebp - 0x2d0]
mov ecx, dword [ebp - 0xc]
mov edx, 0x4792c0
call fcn.0040a1dc
mov edx, dword [ebp - 0x2d0]
mov ecx, 0x4792d4
mov eax, ebx
call fcn.00479da4
test al, al
jne 0x478e8d
lea eax, [ebp - 8]
call fcn.00409938
push eax
lea eax, [ebp - 0x2d4]
mov ecx, dword [ebp - 0xc]
mov edx, 0x4792e4
call fcn.0040a1dc
mov edx, dword [ebp - 0x2d4]
mov ecx, 0x4792d4
mov eax, ebx
call fcn.00479da4
test al, al
je 0x4790a7
mov byte [ebx + 0x8c], 1
mov byte [ebx + 0x8e], 1
push 0
mov esi, dword [0x768f4c]
mov esi, dword [esi]
lea eax, [ebp - 4]
mov ecx, 0x479378
mov edx, 0x479388
call esi
push 0
mov esi, dword [0x768f4c]
mov esi, dword [esi]
lea eax, [ebp - 4]
mov ecx, 0x479378
mov edx, 0x479398
call esi
push 0x7fffffff
mov esi, dword [0x768d78]
mov esi, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 4]
mov eax, 0x4793a8
call esi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jle 0x4791e4
mov ecx, dword [ebp - 0x14]
inc ecx
lea eax, [ebp - 4]
mov edx, 1
call fcn.0040a420
push 0x7fffffff
mov esi, dword [0x768ef8]
mov esi, dword [esi]
mov ecx, 1
mov edx, dword [ebp - 4]
mov eax, 0x4793c0
call esi
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jle 0x478f3c
lea eax, [ebp - 4]
mov ecx, 0x7fffffff
mov edx, dword [ebp - 0x14]
call fcn.0040a420
push 0x7fffffff
lea eax, [ebp - 0x2d8]
mov ecx, 0x479378
mov edx, dword [ebp - 4]
call fcn.0040a1dc
mov edx, dword [ebp - 0x2d8]
mov esi, dword [0x768d78]
mov esi, dword [esi]
mov ecx, 1
mov eax, 0x4793d0
call esi
test eax, eax
jle 0x4791e4
mov byte [ebx + 0x8d], 1
cmp dword [ebp + 0xc], 0
jne 0x478f8d
cmp dword [ebp + 8], 0
je 0x47902b
lea eax, [ebp - 4]
call fcn.00409938
push eax
mov ecx, 0x4793e4
mov edx, 0x4793f4
mov eax, ebx
call fcn.00479da4
test al, al
je 0x479027
lea eax, [ebp - 4]
call fcn.00409938
push eax
lea edx, [ebp - 0x2e0]
mov eax, dword [ebp + 0xc]
call fcn.004160a0
mov eax, dword [ebp - 0x2e0]
lea edx, [ebp - 0x2dc]
call fcn.00424264
mov edx, dword [ebp - 0x2dc]
mov ecx, 0x4793e4
mov eax, ebx
call fcn.00479da4
test al, al
je 0x479027
lea eax, [ebp - 4]
call fcn.00409938
push eax
lea edx, [ebp - 0x2e8]
mov eax, dword [ebp + 8]
call fcn.004160a0
mov eax, dword [ebp - 0x2e8]
lea edx, [ebp - 0x2e4]
call fcn.00424264
mov edx, dword [ebp - 0x2e4]
mov ecx, 0x47940c
mov eax, ebx
call fcn.00479da4
test al, al
jne 0x47902b
xor eax, eax
jmp 0x47902d
mov al, 1
mov byte [ebx + 0x8e], al
cmp byte [ebx + 0x8e], 0
jne 0x4791e4
push 0x47941c
lea eax, [ebp - 0x2f4]
push eax
mov esi, dword [0x7689bc]
mov esi, dword [esi]
mov cl, 0xa
mov edx, 1
mov eax, dword [ebp - 4]
call esi
mov eax, dword [ebp - 0x2f4]
mov esi, dword [0x768e44]
mov esi, dword [esi]
lea edx, [ebp - 0x2f0]
call esi
mov edx, dword [ebp - 0x2f0]
lea eax, [ebp - 0x2ec]
call fcn.0040aa1c
push dword [ebp - 0x2ec]
push 0x479458
lea eax, [ebx + 0x94]
mov edx, 3
call fcn.0040ac38
jmp 0x4791e4
cmp byte [ebx + 0x89], 0
jne 0x4790c5
lea eax, [ebx + 0x94]
mov edx, 0x479468
call fcn.00409cf4
jmp 0x4791e4
push 0x47948c
lea eax, [ebp - 0x300]
push eax
mov esi, dword [0x7689bc]
mov esi, dword [esi]
mov cl, 0xa
mov edx, 1
mov eax, dword [ebp - 4]
call esi
mov eax, dword [ebp - 0x300]
mov esi, dword [0x768e44]
mov esi, dword [esi]
lea edx, [ebp - 0x2fc]
call esi
mov edx, dword [ebp - 0x2fc]
lea eax, [ebp - 0x2f8]
call fcn.0040aa1c
push dword [ebp - 0x2f8]
push 0x479458
lea eax, [ebx + 0x94]
mov edx, 3
call fcn.0040ac38
jmp 0x4791e4
push 0x4794bc
lea eax, [ebp - 0x30c]
push eax
mov esi, dword [0x7689bc]
mov esi, dword [esi]
mov cl, 0xa
mov edx, 1
mov eax, dword [ebp - 4]
call esi
mov eax, dword [ebp - 0x30c]
mov esi, dword [0x768e44]
mov esi, dword [esi]
lea edx, [ebp - 0x308]
call esi
mov edx, dword [ebp - 0x308]
lea eax, [ebp - 0x304]
call fcn.0040aa1c
push dword [ebp - 0x304]
push 0x479458
lea eax, [ebx + 0x94]
mov edx, 3
call fcn.0040ac38
jmp 0x4791e4
lea eax, [ebx + 0x94]
mov edx, 0x4794e4
call fcn.00409cf4
jmp 0x4791e4
lea eax, [ebx + 0x94]
mov edx, 0x479508
call fcn.00409cf4
jmp 0x4791e4
push 0x479544
call sub.wsock32.dll_WSAGetLastError
lea edx, [ebp - 0x310]
call fcn.00415b08
push dword [ebp - 0x310]
push 0x479458
lea eax, [ebx + 0x94]
mov edx, 3
call fcn.0040ac38
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x479280
lea eax, [ebp - 0x310]
call fcn.00409914
lea eax, [ebp - 0x30c]
mov edx, 2
call fcn.004099a4
lea eax, [ebp - 0x304]
call fcn.00409914
lea eax, [ebp - 0x300]
mov edx, 2
call fcn.004099a4
lea eax, [ebp - 0x2f8]
call fcn.00409914
lea eax, [ebp - 0x2f4]
mov edx, 2
call fcn.004099a4
lea eax, [ebp - 0x2ec]
call fcn.00409914
lea eax, [ebp - 0x2e8]
mov edx, 9
call fcn.004099a4
lea eax, [ebp - 0x2c4]
call fcn.00409914
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004099a4
ret