Function at 0x50e3f4
Capabilities:
Act as tcp client
Check for time delay via gettickcount
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get socket status
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffecc
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 1
lea eax, [ebp - 0x134]
xor ecx, ecx
mov edx, 0x104
call fcn.00402f00
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x98], eax
jmp 0x50e668
push 1
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34], 0
jne 0x50e668
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
je 0x50e668
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0xffffffff
jne 0x50e5c7
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x38]
cmp eax, 0xbb8
jbe 0x50e668
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov edx, dword [ebp - 4]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0xffffffff
je 0x50e668
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0050ea18
mov byte [ebp - 0x19], 1
push 1
lea eax, [ebp - 0x19]
push eax
push 1
push 6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_setsockopt
mov word [ebp - 0x1e], 1
mov word [ebp - 0x1c], 0
push 4
lea eax, [ebp - 0x1e]
push eax
push 0x80
push 0xffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_setsockopt
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
call fcn.00404880
push eax
call sub.wsock32.dll_gethostbyname
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x50e515
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0050ea18
mov eax, dword [ebp - 4]
call fcn.0050e970
mov eax, dword [ebp - 4]
mov dword [eax + 0x34], 0xffffffff
jmp 0x50e668
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
lea edx, [ebp - 0x2c]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov ax, word [eax + 8]
mov word [ebp - 0x30], ax
mov eax, dword [ebp - 4]
mov ax, word [eax + 0xc]
push eax
call sub.wsock32.dll_htons
mov word [ebp - 0x2e], ax
mov word [ebp - 0x30], 2
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0050ea18
push 0x10
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_connect
inc eax
jne 0x50e586
mov eax, dword [ebp - 4]
call fcn.0050e970
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0050ea18
mov eax, dword [ebp - 4]
mov dword [eax + 0x34], 0xffffffff
jmp 0x50e668
lea eax, [ebp - 0x10]
push eax
push 0x8004667e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.wsock32.dll_ioctlsocket
inc eax
jne 0x50e5bf
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.0050ea18
mov eax, dword [ebp - 4]
call fcn.0050e970
mov eax, dword [ebp - 4]
mov dword [eax + 0x34], 0xffffffff
jmp 0x50e668
mov eax, dword [ebp - 4]
call fcn.0050df50
mov dword [ebp - 0x134], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x130], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0x14
lea eax, [ebp - 0x18]
push eax
push 0
push 0
lea eax, [ebp - 0x134]
push eax
push 0
call sub.wsock32.dll_select
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x50e64f
call sub.wsock32.dll_WSAGetLastError
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0x2733
jne 0x50e622
push 0xa
call sub.kernel32.dll_Sleep_1
jmp 0x50e668
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0xffffffff
push 0x64
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebp - 4]
call fcn.0050df94
mov eax, dword [ebp - 4]
call fcn.0050e970
mov eax, dword [ebp - 4]
mov dword [eax + 0x34], 0xffffffff
jmp 0x50e668
cmp dword [ebp - 0xc], 0
jle 0x50e668
cmp dword [ebp - 0xc], 0
jle 0x50e668
mov eax, dword [ebp - 4]
call fcn.0050dfa8
dec dword [ebp - 0xc]
jmp 0x50e655
mov eax, dword [ebp - 4]
cmp dword [eax + 0x9c], 0
je 0x50e42c
mov eax, dword [ebp - 4]
lea edx, [eax + 0x90]
mov eax, dword [ebp - 4]
call fcn.0050e324
mov esp, ebp
pop ebp
ret