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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x32c
mov eax, dword [0x101ec05c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
push esi
xor esi, esi
push edi
or ebx, 0xffffffff
xor edi, edi
mov dword [ebp - 0x318], eax
mov dword [ebp - 0x320], esi
mov dword [ebp - 0x31c], esi
cmp dword [ebp + 8], ebx
jne 0x1009aa5b
cmp dword [ebp + 0xc], ebx
jne 0x1009aa5b
cmp dword [ebp + 0x10], ebx
jne 0x1009aa5b
push eax
call fcn.1009a9d0
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1017eae7
mov esp, ebp
pop ebp
ret
cmp eax, esi
jle 0x1009aa72
mov edi, eax
call fcn.100a5640
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x31c], edx
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x314], ebx
mov dword [ebp - 0x20c], esi
cmp eax, 0xffffffff
je 0x1009aab5
mov esi, 1
mov edx, esi
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x20c], esi
mov dword [ebp - 0x104], eax
mov dword [ebp - 0x108], edx
mov ebx, eax
mov dword [ebp - 0x314], eax
mov ecx, dword [ebp + 0xc]
cmp ecx, 0xffffffff
je 0x1009ab2b
xor eax, eax
test esi, esi
je 0x1009aad1
cmp dword [ebp + eax*4 - 0x208], ecx
je 0x1009aad1
inc eax
cmp eax, esi
jb 0x1009aac3
cmp eax, esi
jne 0x1009aaee
cmp esi, 0x40
jae 0x1009aaee
mov dword [ebp + eax*4 - 0x208], ecx
mov esi, dword [ebp - 0x20c]
inc esi
mov dword [ebp - 0x20c], esi
xor eax, eax
test edx, edx
je 0x1009ab02
cmp dword [ebp + eax*4 - 0x104], ecx
je 0x1009ab02
inc eax
cmp eax, edx
jb 0x1009aaf4
cmp eax, edx
jne 0x1009ab1f
cmp edx, 0x40
jae 0x1009ab1f
mov dword [ebp + eax*4 - 0x104], ecx
mov edx, dword [ebp - 0x108]
inc edx
mov dword [ebp - 0x108], edx
cmp ecx, ebx
jbe 0x1009ab2b
mov ebx, ecx
mov dword [ebp - 0x314], ebx
mov eax, dword [ebp + 0x10]
xor ecx, ecx
mov dword [ebp - 0x310], ecx
cmp eax, 0xffffffff
je 0x1009ab8a
mov dword [ebp - 0x30c], eax
mov ecx, 1
xor eax, eax
mov dword [ebp - 0x310], ecx
test edx, edx
je 0x1009ab69
mov ebx, dword [ebp + 0x10]
cmp dword [ebp + eax*4 - 0x104], ebx
je 0x1009ab63
inc eax
cmp eax, edx
jb 0x1009ab52
mov ebx, dword [ebp - 0x314]
cmp eax, edx
jne 0x1009ab82
cmp edx, 0x40
jae 0x1009ab82
mov edx, dword [ebp + 0x10]
mov dword [ebp + eax*4 - 0x104], edx
inc dword [ebp - 0x108]
cmp dword [ebp + 0x10], ebx
jbe 0x1009ab8a
mov ebx, dword [ebp + 0x10]
xor eax, eax
cmp dword [ebp - 0x318], eax
lea edx, [ebp - 0x328]
setl al
dec eax
and eax, edx
inc ebx
mov dword [ebp - 0x314], eax
mov dword [ebp - 0x32c], ebx
jmp 0x1009abc0
mov ecx, dword [ebp - 0x310]
mov esi, dword [ebp - 0x20c]
lea esp, [esp]
mov ebx, dword [ebp - 0x318]
xor eax, eax
cmp ebx, eax
jle 0x1009abfb
mov eax, 0x10624dd3
imul edi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x328], eax
imul eax, eax, 0x3e8
mov edx, edi
sub edx, eax
imul edx, edx, 0x3e8
mov dword [ebp - 0x324], edx
jmp 0x1009ac09
jne 0x1009ac09
mov dword [ebp - 0x328], eax
mov dword [ebp - 0x324], eax
mov eax, dword [ebp - 0x314]
push eax
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x108]
push edx
mov edx, dword [ebp - 0x32c]
lea eax, [ebp - 0x310]
and ecx, eax
push ecx
neg esi
sbb esi, esi
lea ecx, [ebp - 0x20c]
and esi, ecx
push esi
push edx
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x1009ac8f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x1009ac5d
cmp dword [0x101f4fb8], 0
jne 0x1009ac93
cmp eax, 0x2714
jne 0x1009ac93
test ebx, ebx
jle 0x1009abb0
mov eax, dword [ebp - 0x31c]
mov ecx, dword [ebp - 0x320]
push eax
push ecx
call fcn.100a5640
push edx
push eax
call fcn.100a5670
mov edi, ebx
sub edi, eax
add esp, 0x10
test edi, edi
jle 0x1009aca9
jmp 0x1009abb0
test eax, eax
jns 0x1009aca7
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1017eae7
mov esp, ebp
pop ebp
ret
jne 0x1009acbc
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1017eae7
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 8]
xor esi, esi
cmp edi, 0xffffffff
je 0x1009acf0
lea edx, [ebp - 0x20c]
push edx
push edi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009acdc
mov esi, 1
lea eax, [ebp - 0x108]
push eax
push edi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009acf0
or esi, 4
mov edi, dword [ebp + 0xc]
cmp edi, 0xffffffff
je 0x1009ad20
lea ecx, [ebp - 0x20c]
push ecx
push edi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009ad0c
or esi, 8
lea edx, [ebp - 0x108]
push edx
push edi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009ad20
or esi, 4
mov edi, dword [ebp + 0x10]
cmp edi, 0xffffffff
je 0x1009ad50
lea eax, [ebp - 0x310]
push eax
push edi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009ad3c
or esi, 2
lea ecx, [ebp - 0x108]
push ecx
push edi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1009ad50
or esi, 4
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.1017eae7
mov esp, ebp
pop ebp
ret