Function at 0x428e64
Capabilities:
Check for time delay via gettickcount
Get socket status

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x334
push ebx
push esi
xor esi, esi
push edi
mov edi, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], esi
cmp edi, esi
je 0x428e9a
xor eax, eax
cmp dword [ebp + 8], esi
jbe 0x428e9a
cmp dword [edi + eax*8], 0xffffffff
jne 0x428ea7
inc eax
cmp eax, dword [ebp + 8]
jb 0x428e8e
mov eax, dword [ebp + 0xc]
call fcn.00428bbc
jmp 0x4290d2
mov ebx, dword [ebp + 0xc]
cmp ebx, esi
jle 0x428ebf
mov dword [esp + 0x10], ebx
call fcn.0042f5a7
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
or dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x130], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x238], esi
xor ecx, ecx
lea eax, [edi + esi*8 + 4]
mov word [eax + 2], cx
mov ecx, dword [edi + esi*8]
cmp ecx, 0xffffffff
je 0x428fac
movzx edx, word [eax]
test dl, 7
je 0x428fac
cmp ecx, dword [esp + 0x14]
jbe 0x428f02
mov dword [esp + 0x14], ecx
test dl, 1
je 0x428f46
xor eax, eax
cmp dword [esp + 0x130], eax
jbe 0x428f25
cmp dword [esp + eax*4 + 0x134], ecx
je 0x428f25
inc eax
cmp eax, dword [esp + 0x130]
jb 0x428f12
cmp eax, dword [esp + 0x130]
jne 0x428f46
cmp dword [esp + 0x130], 0x40
jae 0x428f46
mov dword [esp + eax*4 + 0x134], ecx
inc dword [esp + 0x130]
test dl, 4
je 0x428f75
xor eax, eax
cmp dword [esp + 0x28], eax
jbe 0x428f60
cmp dword [esp + eax*4 + 0x2c], ecx
je 0x428f60
inc eax
cmp eax, dword [esp + 0x28]
jb 0x428f53
cmp eax, dword [esp + 0x28]
jne 0x428f75
cmp dword [esp + 0x28], 0x40
jae 0x428f75
mov dword [esp + eax*4 + 0x2c], ecx
inc dword [esp + 0x28]
test dl, 2
je 0x428fac
mov edx, dword [esp + 0x238]
xor eax, eax
test edx, edx
jbe 0x428f95
cmp dword [esp + eax*4 + 0x23c], ecx
je 0x428f95
inc eax
cmp eax, edx
jb 0x428f87
cmp eax, edx
jne 0x428fac
cmp edx, 0x40
jae 0x428fac
mov dword [esp + eax*4 + 0x23c], ecx
inc dword [esp + 0x238]
inc esi
cmp esi, dword [ebp + 8]
jb 0x428ed6
test ebx, ebx
jge 0x428fbe
xor ebx, ebx
jmp 0x428fc2
lea ebx, [esp + 0x20]
mov esi, dword [esp + 0x14]
inc esi
xor eax, eax
cmp dword [ebp + 0xc], eax
jle 0x428fe6
mov eax, dword [esp + 0x10]
cdq
mov ecx, 0x3e8
idiv ecx
imul edx, edx, 0x3e8
mov dword [esp + 0x24], edx
jmp 0x428fec
jne 0x428ff0
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
push ebx
lea eax, [esp + 0x23c]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x13c]
push eax
push esi
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x42905c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x42902c
cmp dword [0x4a3784], 0
jne 0x429060
cmp eax, 0x2714
jne 0x429060
cmp dword [ebp + 0xc], 0
jle 0x428fc7
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call fcn.0042f5a7
push edx
push eax
call fcn.0042f5bd
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add esp, 0x10
mov dword [esp + 0x10], ecx
test ecx, ecx
jg 0x428fc7
jmp 0x429060
test eax, eax
jge 0x429065
or eax, 0xffffffff
jmp 0x4290d2
jne 0x42906b
xor eax, eax
jmp 0x4290d2
lea esi, [edi + 6]
mov edi, dword [ebp + 8]
xor ebx, ebx
xor eax, eax
mov word [esi], ax
mov eax, dword [esi - 6]
cmp eax, 0xffffffff
je 0x4290ca
lea ecx, [esp + 0x130]
push ecx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x429096
or word [esi], 1
lea eax, [esp + 0x28]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4290ab
or word [esi], 4
lea eax, [esp + 0x238]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4290c3
or word [esi], 2
cmp word [esi], 0
je 0x4290ca
inc ebx
add esi, 8
dec edi
jne 0x429073
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret