Function at 0x42ca50
Capabilities:
Check for time delay via gettickcount
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x541821
mov eax, dword fs:[0]
push eax
sub esp, 0x978
mov eax, dword [0x5a5784]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor ebx, ebx
mov edi, ecx
mov dword [ebp - 0x974], edi
mov dword [ebp - 0x964], eax
mov dword [ebp - 0x984], 1
mov dword [ebp - 0x640], ebx
mov dword [ebp - 0x63c], ebx
mov dword [ebp - 0x638], ebx
lea ecx, [ebp - 0x968]
mov dword [ebp - 4], ebx
call fcn.0042fbd0
push 0x3e8
push 2
push 6
mov byte [ebp - 4], 1
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
mov dword [ebp - 0x980], esi
cmp esi, 0xffffffff
je 0x42cb1c
push 0x10
xor eax, eax
lea edx, [ebp - 0x62c]
push edx
mov ecx, 6
push esi
mov word [ebp - 0x62c], cx
mov dword [ebp - 0x62a], eax
mov dword [ebp - 0x626], eax
mov dword [ebp - 0x622], eax
mov byte [ebp - 0x61e], al
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, ebx
je 0x42cb45
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
lea ecx, [ebp - 0x968]
mov byte [ebp - 4], 0
call fcn.0042fbe0
mov eax, dword [ebp - 0x640]
cmp eax, ebx
je 0x42cb3e
push eax
call fcn.00430e1b
add esp, 4
xor eax, eax
jmp 0x42ccf8
mov eax, dword [ebp - 0x964]
mov dword [ebp - 0x964], eax
mov edx, dword [ebp - 0x964]
lea ecx, [ebp - 0x96c]
push ecx
push 0x555624
push edx
call fcn.00525cc1
add esp, 0xc
cmp eax, 1
jne 0x42cbce
mov al, byte [ebp - 0x96c]
add dword [ebp - 0x964], 2
mov byte [ebp + ebx - 0x62a], al
inc ebx
cmp ebx, 4
jl 0x42cb51
lea ecx, [ebp - 0x97c]
push ecx
or eax, 0xffffffff
push 0x8004667e
push esi
mov dword [ebp - 0x626], eax
mov word [ebp - 0x622], ax
mov dword [ebp - 0x620], 0xf90
mov dword [ebp - 0x97c], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x42cbea
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
lea ecx, [ebp - 0x968]
mov byte [ebp - 4], 0
call fcn.0042fbe0
mov eax, dword [ebp - 0x640]
test eax, eax
jmp 0x42cb33
push 4
lea edx, [ebp - 0x984]
push edx
push 0x20
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x42cbc7
lea ecx, [ebp - 0x978]
call fcn.004304d0
lea eax, [ebp - 0x970]
push eax
lea ecx, [ebp - 0x61c]
push ecx
push edi
lea ecx, [ebp - 0x978]
mov byte [ebp - 4], 2
call fcn.004308f0
movzx eax, word [ebp - 0x970]
push 0x10
lea edx, [ebp - 0x62c]
push edx
push 0
push eax
lea eax, [ebp - 0x61c]
push eax
push esi
call dword [sym.imp.WS2_32.dll_sendto]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x964], eax
lea esp, [esp]
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x96c]
push ecx
lea edx, [ebp - 0x62c]
push edx
push 0
push 0x5dc
lea ebx, [edi + 0x658]
push ebx
push esi
mov dword [ebp - 0x96c], 0x10
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp eax, 0xffffffff
je 0x42ccb1
push eax
push ebx
push edi
lea ecx, [ebp - 0x968]
call fcn.00430070
test eax, eax
jne 0x42ccb1
cmp dword [edi + 0x10], eax
je 0x42cd16
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x964]
cmp eax, dword [ebp + 0xc]
jb 0x42cc60
lea ecx, [ebp - 0x978]
mov byte [ebp - 4], 1
call fcn.004304e0
lea ecx, [ebp - 0x968]
mov byte [ebp - 4], 0
call fcn.0042fbe0
mov eax, dword [ebp - 0x640]
test eax, eax
je 0x42ccf3
push eax
call fcn.00430e1b
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0052442d
mov esp, ebp
pop ebp
ret 8
movzx eax, byte [ebp - 0x621]
movzx ecx, byte [ebp - 0x622]
movzx edx, byte [ebp - 0x623]
push eax
movzx eax, byte [ebp - 0x624]
push ecx
movzx ecx, byte [ebp - 0x625]
push edx
movzx edx, byte [ebp - 0x626]
push eax
movzx eax, byte [ebp - 0x627]
push ecx
movzx ecx, byte [ebp - 0x628]
push edx
movzx edx, byte [ebp - 0x629]
push eax
movzx eax, byte [ebp - 0x62a]
push ecx
push edx
push eax
push str._02x_02x_02x_02x:_02x_02x_02x_02x_02x_02x
lea ecx, [ebp - 0x1c]
push 0xb
push ecx
call fcn.00526cb7
mov ecx, dword [edi + 0x48]
mov eax, dword [edi + 0x4c]
sub eax, ecx
sar eax, 2
add esp, 0x34
xor esi, esi
test eax, eax
je 0x42cdeb
cmp eax, esi
jbe 0x42cf74
mov ecx, dword [ecx + esi*4]
cmp dword [ecx + 4], 4
jne 0x42cdbd
mov eax, dword [ecx + 0x1c]
mov edx, dword [ecx + 0x2c]
mov ax, word [eax + 2]
cmp ax, word [edx]
jae 0x42cdbd
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x964]
cmp eax, dword [ebp + 0xc]
jae 0x42cdeb
jmp 0x42cddb
lea edx, [ebp - 0x960]
push edx
call fcn.0042dcf0
lea eax, [ebp - 0x960]
push eax
lea ecx, [ebp - 0x640]
call fcn.0042bc40
mov ecx, dword [edi + 0x48]
mov eax, dword [edi + 0x4c]
sub eax, ecx
inc esi
sar eax, 2
cmp eax, esi
ja 0x42cd92
lea ecx, [ebp - 0x1c]
push ecx
lea edx, [ebp - 0x658]
push 0x15
push edx
call fcn.00525bd2
mov ecx, dword [edi + 0xc64]
mov eax, dword [edi + 0x10]
lea ebx, [edi + 0xc60]
lea edx, [ebp - 0x658]
add esp, 0xc
mov dword [ebp - 0x630], eax
cmp edx, ecx
jae 0x42cebc
mov eax, dword [ebx]
cmp eax, edx
ja 0x42cebc
mov esi, dword [ebx + 8]
sub edx, eax
mov eax, 0x2e8ba2e9
imul edx
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp ecx, esi
jne 0x42cea1
sub ecx, dword [ebx]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x5d1745c
ja 0x42cf7e
sub esi, dword [ebx]
mov eax, 0x2e8ba2e9
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x42cea1
mov edx, eax
shr edx, 1
mov esi, 0x5d1745d
sub esi, edx
cmp esi, eax
jae 0x42ce91
xor eax, eax
jmp 0x42ce93
add eax, edx
cmp eax, ecx
jae 0x42ce99
mov eax, ecx
push eax
mov ecx, ebx
call fcn.0042c1a0
mov eax, dword [ebx + 4]
imul edi, edi, 0x2c
add edi, dword [ebx]
lea ecx, [ebx + 0xc]
push edi
push eax
push ecx
call fcn.0042bec0
mov edi, dword [ebp - 0x974]
jmp 0x42cf39
mov esi, dword [ebx + 8]
cmp ecx, esi
jne 0x42cf25
mov edi, dword [ebx]
sub ecx, edi
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x5d1745c
ja 0x42cf7e
sub esi, edi
mov eax, 0x2e8ba2e9
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x42cf1f
mov edx, eax
shr edx, 1
mov esi, 0x5d1745d
sub esi, edx
cmp esi, eax
jae 0x42cf0f
xor eax, eax
jmp 0x42cf11
add eax, edx
cmp eax, ecx
jae 0x42cf17
mov eax, ecx
push eax
mov ecx, ebx
call fcn.0042c1a0
mov edi, dword [ebp - 0x974]
mov eax, dword [ebx + 4]
lea edx, [ebp - 0x658]
push edx
push eax
lea ecx, [ebx + 0xc]
push ecx
call fcn.0042bfa0
mov eax, dword [ebp - 0x640]
add dword [ebx + 4], 0x2c
add esp, 0xc
cmp eax, dword [ebp - 0x63c]
je 0x42cf54
mov dword [ebp - 0x63c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x964]
cmp eax, dword [ebp + 0xc]
jae 0x42ccc2
mov esi, dword [ebp - 0x980]
jmp 0x42cc60
push str.invalid_vector_T__subscript
call fcn.005414fa
push str.vector_T__too_long
call fcn.005414ad
int3