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

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x328
mov eax, dword [0x4d4430]
xor eax, ebp
mov dword [ebp + 0x68], eax
push esi
xor esi, esi
push edi
mov edi, dword [ebp + 0x74]
mov dword [ebp - 0x2b4], esi
mov dword [ebp - 0x2b0], esi
mov dword [ebp - 0x2ac], esi
cmp edi, esi
je 0x452dcd
xor eax, eax
cmp dword [ebp + 0x78], esi
jbe 0x452dcd
cmp dword [edi + eax*8], 0xffffffff
jne 0x452ddb
inc eax
cmp eax, dword [ebp + 0x78]
jb 0x452dc1
push dword [ebp + 0x7c]
call fcn.00452aa4
pop ecx
jmp 0x45302f
push ebx
mov ebx, dword [ebp + 0x7c]
cmp ebx, esi
jle 0x452dfa
mov dword [ebp - 0x2ac], ebx
call fcn.0045ae36
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], edx
or dword [ebp - 0x2a8], 0xffffffff
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x1a0], esi
mov dword [ebp - 0x2a4], 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 0x452ef6
movzx edx, word [eax]
test dl, 7
je 0x452ef6
cmp ecx, dword [ebp - 0x2a8]
jbe 0x452e43
mov dword [ebp - 0x2a8], ecx
test dl, 1
je 0x452e82
xor eax, eax
cmp eax, dword [ebp - 0x9c]
jae 0x452e6a
cmp dword [ebp + eax*4 - 0x98], ecx
je 0x452e64
inc eax
cmp eax, dword [ebp - 0x9c]
jb 0x452e52
cmp eax, dword [ebp - 0x9c]
jne 0x452e82
cmp dword [ebp - 0x9c], 0x40
jae 0x452e82
mov dword [ebp + eax*4 - 0x98], ecx
inc dword [ebp - 0x9c]
test dl, 4
je 0x452ec1
xor eax, eax
cmp eax, dword [ebp - 0x1a0]
jae 0x452ea9
cmp dword [ebp + eax*4 - 0x19c], ecx
je 0x452ea3
inc eax
cmp eax, dword [ebp - 0x1a0]
jb 0x452e91
cmp eax, dword [ebp - 0x1a0]
jne 0x452ec1
cmp dword [ebp - 0x1a0], 0x40
jae 0x452ec1
mov dword [ebp + eax*4 - 0x19c], ecx
inc dword [ebp - 0x1a0]
test dl, 2
je 0x452ef6
mov edx, dword [ebp - 0x2a4]
xor eax, eax
test edx, edx
je 0x452ee0
cmp dword [ebp + eax*4 - 0x2a0], ecx
je 0x452ee0
inc eax
cmp eax, edx
jb 0x452ed2
cmp eax, edx
jne 0x452ef6
cmp edx, 0x40
jae 0x452ef6
mov dword [ebp + eax*4 - 0x2a0], ecx
inc dword [ebp - 0x2a4]
inc esi
cmp esi, dword [ebp + 0x78]
jb 0x452e13
test ebx, ebx
jns 0x452f08
xor ebx, ebx
jmp 0x452f0e
lea ebx, [ebp - 0x2bc]
mov esi, dword [ebp - 0x2a8]
inc esi
xor eax, eax
cmp dword [ebp + 0x7c], eax
jle 0x452f38
mov eax, dword [ebp - 0x2ac]
cdq
mov ecx, 0x3e8
idiv ecx
imul edx, edx, 0x3e8
mov dword [ebp - 0x2b8], edx
jmp 0x452f40
jne 0x452f46
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2bc], eax
push ebx
lea eax, [ebp - 0x2a4]
push eax
lea eax, [ebp - 0x1a0]
push eax
lea eax, [ebp - 0x9c]
push eax
push esi
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x452fb8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x452f82
cmp dword [0x4e1d54], 0
jne 0x452fbc
cmp eax, 0x2714
jne 0x452fbc
cmp dword [ebp + 0x7c], 0
jle 0x452f15
push dword [ebp - 0x2b0]
push dword [ebp - 0x2b4]
call fcn.0045ae36
push edx
push eax
call fcn.0045ae4c
mov ecx, dword [ebp + 0x7c]
sub ecx, eax
add esp, 0x10
mov dword [ebp - 0x2ac], ecx
test ecx, ecx
jg 0x452f15
jmp 0x452fbc
test eax, eax
jns 0x452fc1
or eax, 0xffffffff
jmp 0x45302e
jne 0x452fc7
xor eax, eax
jmp 0x45302e
lea esi, [edi + 6]
mov edi, dword [ebp + 0x78]
xor ebx, ebx
xor eax, eax
mov word [esi], ax
mov eax, dword [esi - 6]
cmp eax, 0xffffffff
je 0x453026
lea ecx, [ebp - 0x9c]
push ecx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x452ff1
or word [esi], 1
lea eax, [ebp - 0x1a0]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x453008
or word [esi], 4
lea eax, [ebp - 0x2a4]
push eax
push dword [esi - 6]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x45301f
or word [esi], 2
cmp word [esi], 0
je 0x453026
inc ebx
add esi, 8
dec edi
jne 0x452fcf
mov eax, ebx
pop ebx
mov ecx, dword [ebp + 0x68]
pop edi
xor ecx, ebp
pop esi
call fcn.0040c660
add ebp, 0x6c
leave
ret