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

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x324
push ebx
mov ebx, dword [ebp + 0x70]
push esi
xor esi, esi
push edi
or edi, 0xffffffff
cmp ebx, edi
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x5c], esi
mov dword [ebp + 0x64], esi
jne 0x477fc7
cmp dword [ebp + 0x74], edi
jne 0x477fc7
cmp dword [ebp + 0x78], edi
jne 0x477fc7
push dword [ebp + 0x7c]
call fcn.00477f69
pop ecx
jmp 0x47824c
mov eax, dword [ebp + 0x7c]
cmp eax, esi
jle 0x477fdc
mov dword [ebp + 0x64], eax
call fcn.0047ff7b
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], edx
cmp ebx, 0xffffffff
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0x1b8], esi
je 0x47800a
xor esi, esi
inc esi
mov dword [ebp - 0x1b4], ebx
mov dword [ebp - 0x1b8], esi
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xb4], esi
mov edi, ebx
mov ecx, dword [ebp + 0x74]
cmp ecx, 0xffffffff
je 0x478083
xor eax, eax
test esi, esi
jbe 0x478026
cmp dword [ebp + eax*4 - 0x1b4], ecx
je 0x478026
inc eax
cmp eax, esi
jb 0x478018
cmp eax, esi
jne 0x478043
cmp esi, 0x40
jae 0x478043
mov dword [ebp + eax*4 - 0x1b4], ecx
mov esi, dword [ebp - 0x1b8]
inc esi
mov dword [ebp - 0x1b8], esi
xor eax, eax
cmp dword [ebp - 0xb4], eax
jbe 0x47805f
cmp dword [ebp + eax*4 - 0xb0], ecx
je 0x47805f
inc eax
cmp eax, dword [ebp - 0xb4]
jb 0x47804d
cmp eax, dword [ebp - 0xb4]
jne 0x47807d
cmp dword [ebp - 0xb4], 0x40
jae 0x47807d
mov dword [ebp + eax*4 - 0xb0], ecx
inc dword [ebp - 0xb4]
cmp ecx, edi
jbe 0x478083
mov edi, ecx
mov edx, dword [ebp + 0x78]
xor ecx, ecx
cmp edx, 0xffffffff
mov dword [ebp - 0x2bc], ecx
je 0x4780e0
inc ecx
xor eax, eax
cmp dword [ebp - 0xb4], eax
mov dword [ebp - 0x2b8], edx
mov dword [ebp - 0x2bc], ecx
jbe 0x4780bc
cmp dword [ebp + eax*4 - 0xb0], edx
je 0x4780bc
inc eax
cmp eax, dword [ebp - 0xb4]
jb 0x4780aa
cmp eax, dword [ebp - 0xb4]
jne 0x4780da
cmp dword [ebp - 0xb4], 0x40
jae 0x4780da
mov dword [ebp + eax*4 - 0xb0], edx
inc dword [ebp - 0xb4]
cmp edx, edi
jbe 0x4780e0
mov edi, edx
xor eax, eax
cmp dword [ebp + 0x7c], eax
jge 0x4780ec
mov dword [ebp + 0x60], eax
jmp 0x4780f2
lea edx, [ebp + 0x50]
mov dword [ebp + 0x60], edx
inc edi
jmp 0x478103
mov esi, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x2bc]
xor eax, eax
cmp dword [ebp + 0x7c], eax
jle 0x478121
mov eax, dword [ebp + 0x64]
cdq
mov ebx, 0x3e8
idiv ebx
mov ebx, dword [ebp + 0x70]
imul edx, edx, 0x3e8
mov dword [ebp + 0x54], edx
jmp 0x478126
jne 0x478129
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x50], eax
push dword [ebp + 0x60]
neg ecx
lea eax, [ebp - 0xb4]
push eax
sbb ecx, ecx
lea eax, [ebp - 0x2bc]
and ecx, eax
neg esi
sbb esi, esi
lea eax, [ebp - 0x1b8]
push ecx
and esi, eax
push esi
push edi
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x4781a4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x478173
cmp dword [0x4baa48], 0
jne 0x4781a8
cmp eax, 0x2714
jne 0x4781a8
cmp dword [ebp + 0x7c], 0
jle 0x4780f5
push dword [ebp + 0x5c]
push dword [ebp + 0x58]
call fcn.0047ff7b
push edx
push eax
call fcn.0047ff91
mov ecx, dword [ebp + 0x7c]
sub ecx, eax
add esp, 0x10
test ecx, ecx
mov dword [ebp + 0x64], ecx
jg 0x4780f5
xor eax, eax
test eax, eax
jge 0x4781b0
or eax, 0xffffffff
jmp 0x47824c
jne 0x4781b9
xor eax, eax
jmp 0x47824c
xor esi, esi
cmp ebx, 0xffffffff
je 0x4781e6
lea eax, [ebp - 0x1b8]
push eax
push ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4781d2
inc esi
lea eax, [ebp - 0xb4]
push eax
push ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4781e6
or esi, 4
cmp dword [ebp + 0x74], 0xffffffff
je 0x478218
lea eax, [ebp - 0x1b8]
push eax
push dword [ebp + 0x74]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x478202
or esi, 8
lea eax, [ebp - 0xb4]
push eax
push dword [ebp + 0x74]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x478218
or esi, 4
cmp dword [ebp + 0x78], 0xffffffff
je 0x47824a
lea eax, [ebp - 0x2bc]
push eax
push dword [ebp + 0x78]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x478234
or esi, 2
lea eax, [ebp - 0xb4]
push eax
push dword [ebp + 0x78]
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x47824a
or esi, 4
mov eax, esi
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret