Function at 0x4291a9
Capabilities:
Check for time delay via gettickcount
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3b8
mov dword [ebp - 0x3a8], 0x190
lea eax, [ebp - 0x1cc]
push eax
push 0x101
call sub.WSOCK32.dll_WSAStartup
mov dword [ebp - 0x1d8], eax
cmp dword [ebp - 0x1d8], 0
je 0x4291e3
xor eax, eax
jmp 0x4295b7
push 0x43135c
lea ecx, [ebp - 0x18]
push ecx
call fcn.004263ff
add esp, 8
mov edx, dword [0x4313cc]
mov eax, dword [edx]
mov dword [ebp - 0x3b8], eax
push 0xa
lea ecx, [ebp - 0xf]
push ecx
mov edx, dword [ebp - 0x3b8]
push edx
call fcn.00428a71
add esp, 0xc
push 0x3e8
push 2
push 6
call sub.WSOCK32.dll_socket
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0xffffffff
jne 0x42923a
call sub.WSOCK32.dll_WSACleanup
xor eax, eax
jmp 0x4295b7
push 0xe
push 0
lea eax, [ebp - 0x38]
push eax
call fcn.0042688c
add esp, 0xc
mov word [ebp - 0x38], 6
mov word [ebp - 0x2c], 0
mov dword [ebp - 4], 1
push 4
lea ecx, [ebp - 4]
push ecx
push 4
push 0xffff
mov edx, dword [ebp - 0x3c]
push edx
call sub.WSOCK32.dll_setsockopt
cmp eax, 0xffffffff
jne 0x42928d
mov eax, dword [ebp - 0x3c]
push eax
call sub.WSOCK32.dll_closesocket
call sub.WSOCK32.dll_WSACleanup
xor eax, eax
jmp 0x4295b7
push 0xe
lea ecx, [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
call sub.WSOCK32.dll_bind
cmp eax, 0xffffffff
jne 0x4292b6
mov eax, dword [ebp - 0x3c]
push eax
call sub.WSOCK32.dll_closesocket
call sub.WSOCK32.dll_WSACleanup
xor eax, eax
jmp 0x4295b7
mov dword [ebp - 4], 1
push 4
lea ecx, [ebp - 4]
push ecx
push 0x20
push 0xffff
mov edx, dword [ebp - 0x3c]
push edx
call sub.WSOCK32.dll_setsockopt
cmp eax, 0xffffffff
jne 0x4292ed
mov eax, dword [ebp - 0x3c]
push eax
call sub.WSOCK32.dll_closesocket
call sub.WSOCK32.dll_WSACleanup
xor eax, eax
jmp 0x4295b7
mov dword [ebp - 0x1e0], 1
lea ecx, [ebp - 0x1e0]
push ecx
push 0x8004667e
mov edx, dword [ebp - 0x3c]
push edx
call sub.WSOCK32.dll_ioctlsocket
cmp eax, 0xffffffff
jne 0x429326
mov eax, dword [ebp - 0x3c]
push eax
call sub.WSOCK32.dll_closesocket
call sub.WSOCK32.dll_WSACleanup
xor eax, eax
jmp 0x4295b7
push 0xe
push 0
lea ecx, [ebp - 0x28]
push ecx
call fcn.0042688c
add esp, 0xc
mov word [ebp - 0x28], 6
mov dword [ebp - 0x1dc], 0
jmp 0x429357
mov edx, dword [ebp - 0x1dc]
add edx, 1
mov dword [ebp - 0x1dc], edx
cmp dword [ebp - 0x1dc], 6
jge 0x42936d
mov eax, dword [ebp - 0x1dc]
mov byte [ebp + eax - 0x22], 0xff
jmp 0x429348
mov word [ebp - 0x1c], 0x5204
push 1
call sub.WSOCK32.dll_htons
mov word [ebp - 0x3b4], ax
push 0x920
call sub.WSOCK32.dll_htons
mov word [ebp - 0x3b2], ax
push 0xe
lea ecx, [ebp - 0x28]
push ecx
push 0
push 4
lea edx, [ebp - 0x3b4]
push edx
mov eax, dword [ebp - 0x3c]
push eax
call sub.WSOCK32.dll_sendto
mov dword [ebp - 0x1d8], eax
cmp dword [ebp - 0x1d8], 0xffffffff
jne 0x4293d0
mov ecx, dword [ebp - 0x3c]
push ecx
call sub.WSOCK32.dll_closesocket
call sub.WSOCK32.dll_WSACleanup
xor eax, eax
jmp 0x4295b7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x3b0], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x3ac], eax
mov edx, dword [ebp - 0x3ac]
add edx, dword [ebp - 0x3a8]
cmp edx, dword [ebp - 0x3b0]
jbe 0x4295a7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x3b0], eax
push 0x1c2
push 0
lea eax, [ebp - 0x3a4]
push eax
call fcn.0042688c
add esp, 0xc
mov dword [ebp - 0x1d0], 0xe
lea ecx, [ebp - 0x1d0]
push ecx
lea edx, [ebp - 0x28]
push edx
push 0
push 0x1c2
lea eax, [ebp - 0x3a4]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
call sub.WSOCK32.dll_recvfrom
mov dword [ebp - 0x1d8], eax
cmp dword [ebp - 0x1d8], 0xffffffff
je 0x429466
cmp dword [ebp - 0x1d8], 0
jne 0x429487
call sub.WSOCK32.dll_WSAGetLastError
mov dword [ebp - 0x1d8], eax
cmp dword [ebp - 0x1d8], 0x2733
jne 0x429482
jmp 0x4293e8
jmp 0x4295a7
mov edx, dword [ebp - 0x1d8]
sub edx, 2
shr edx, 6
mov dword [ebp - 0x1d4], edx
mov dword [ebp - 0x1dc], 0
jmp 0x4294b4
mov eax, dword [ebp - 0x1dc]
add eax, 1
mov dword [ebp - 0x1dc], eax
mov ecx, dword [ebp - 0x1dc]
cmp ecx, dword [ebp - 0x1d4]
jge 0x4295a2
mov edx, dword [ebp - 0x1dc]
shl edx, 6
mov ax, word [ebp + edx - 0x3a2]
push eax
call fcn.00429680
add esp, 4
and eax, 0xffff
cmp eax, 0x920
jne 0x42959d
push 0xf
lea ecx, [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x1dc]
shl edx, 6
lea eax, [ebp + edx - 0x3a0]
push eax
call fcn.004295bb
add esp, 0xc
test eax, eax
jne 0x42959d
push 0x10
push 0
push 0x4314bd
call fcn.0042688c
add esp, 0xc
mov word [0x4314bd], 6
push 4
mov ecx, dword [ebp - 0x1dc]
shl ecx, 6
lea edx, [ebp + ecx - 0x370]
push edx
push 0x4314bf
call fcn.00426858
add esp, 0xc
push 6
mov eax, dword [ebp - 0x1dc]
shl eax, 6
lea ecx, [ebp + eax - 0x36c]
push ecx
push 0x4314c3
call fcn.00426858
add esp, 0xc
mov edx, dword [ebp - 0x1dc]
shl edx, 6
mov ax, word [ebp + edx - 0x366]
mov word [0x4314c9], ax
mov ecx, dword [ebp - 0x3c]
push ecx
call sub.WSOCK32.dll_closesocket
call sub.WSOCK32.dll_WSACleanup
mov eax, 1
jmp 0x4295b7
jmp 0x4294a5
jmp 0x4293e8
mov edx, dword [ebp - 0x3c]
push edx
call sub.WSOCK32.dll_closesocket
call sub.WSOCK32.dll_WSACleanup
xor eax, eax
mov esp, ebp
pop ebp
ret