Function at 0x409750
Capabilities:
Get socket status

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x35c
mov eax, dword [esp + 0x370]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
test eax, eax
je 0x409b10
mov eax, dword [esp + 0x374]
test eax, eax
je 0x409b10
mov edx, dword [esp + 0x370]
mov ecx, dword [esp + 0x374]
xor eax, eax
jmp 0x4097ab
add eax, 1
cmp ecx, eax
je 0x409b10
cmp dword [edx + eax*8], 0xffffffff
je 0x4097a0
mov eax, dword [esp + 0x378]
xor edi, edi
test eax, eax
jg 0x409af0
mov eax, dword [esp + 0x370]
mov dword [esp + 0x2c], edi
xor ecx, ecx
xor ebp, ebp
mov esi, dword [esp + 0x374]
mov dword [esp + 0x44], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x24c], 0
lea ebx, [eax + esi*8]
mov dword [esp + 0x20], ebx
xor ebx, ebx
nop
mov edx, dword [eax]
xor edi, edi
mov word [eax + 6], di
cmp edx, 0xffffffff
je 0x40983a
movzx edi, word [eax + 4]
test di, 0x710
je 0x40983a
test di, 0x300
jne 0x409ab0
test edi, 0x10
jne 0x409a60
test di, 0x600
jne 0x409a10
mov edi, dword [esp + 0x20]
add eax, 8
cmp eax, edi
jne 0x409800
mov eax, ebp
mov edi, dword [esp + 0x2c]
or eax, ecx
or eax, ebx
je 0x409b10
mov esi, dword [esp + 0x378]
xor eax, eax
lea edx, [esp + 0x3c]
test esi, esi
mov esi, edi
mov edi, dword [esp + 0x378]
cmovns eax, edx
mov dword [esp + 0x20], eax
mov eax, 0x10624dd3
mul esi
shr edx, 6
imul eax, edx, 0x3e8
sub esi, eax
imul eax, esi, 0x3e8
test edi, edi
jle 0x409927
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
xor eax, eax
lea edx, [esp + 0x24c]
test ebx, ebx
mov dword [esp], 0
cmove edx, eax
lea esi, [esp + 0x148]
lea ebx, [esp + 0x44]
test ecx, ecx
mov ecx, eax
cmovne ecx, esi
test ebp, ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0xc], edx
cmovne eax, ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
call dword [sym.imp.WS2_32.dll_select]
sub esp, 0x14
cmp eax, 0xffffffff
jne 0x409948
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x40990d
mov ecx, dword [0x47605c]
test ecx, ecx
jne 0x409ba0
cmp eax, 0x2714
jne 0x409ba0
test edi, edi
jg 0x409b50
mov ebx, dword [esp + 0x24c]
mov ecx, dword [esp + 0x148]
mov ebp, dword [esp + 0x44]
test edi, edi
jne 0x40989c
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
jmp 0x40989c
test eax, eax
js 0x409ba0
je 0x409b39
mov eax, dword [esp + 0x370]
xor edx, edx
xor edi, edi
mov dword [esp + 0x20], edx
lea ebp, [eax + 6]
jmp 0x40998a
or word [ebp], 0x400
add dword [esp + 0x20], 1
add edi, 1
add ebp, 8
cmp dword [esp + 0x374], edi
je 0x4099ff
mov eax, dword [ebp - 6]
xor edx, edx
mov word [ebp], dx
cmp eax, 0xffffffff
je 0x40997b
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym.___WSAFDIsSet_8
sub esp, 8
test eax, eax
je 0x4099b1
or word [ebp], 0x300
mov dword [esp + 4], esi
mov eax, dword [ebp - 6]
mov dword [esp], eax
call sym.___WSAFDIsSet_8
sub esp, 8
test eax, eax
je 0x4099cc
or word [ebp], 0x10
lea eax, [esp + 0x24c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 6]
mov dword [esp], eax
call sym.___WSAFDIsSet_8
sub esp, 8
test eax, eax
jne 0x409970
cmp word [ebp], 0
jne 0x409976
add edi, 1
add ebp, 8
cmp dword [esp + 0x374], edi
jne 0x40998a
mov edx, dword [esp + 0x20]
add esp, 0x35c
pop ebx
pop esi
mov eax, edx
pop edi
pop ebp
ret
xor esi, esi
test ebx, ebx
jne 0x409a27
mov ebx, 1
jmp 0x409a44
add esi, 1
cmp ebx, esi
je 0x409a38
cmp edx, dword [esp + esi*4 + 0x250]
jne 0x409a20
cmp ebx, esi
jne 0x40983a
cmp ebx, 0x40
je 0x40983a
add ebx, 1
mov dword [esp + esi*4 + 0x250], edx
mov dword [esp + 0x24c], ebx
jmp 0x40983a
xor esi, esi
test ecx, ecx
jne 0x409a77
mov ecx, 1
jmp 0x409a94
add esi, 1
cmp esi, ecx
je 0x409a80
cmp edx, dword [esp + esi*4 + 0x14c]
jne 0x409a70
cmp ecx, esi
jne 0x40982f
cmp ecx, 0x40
je 0x40982f
add ecx, 1
mov dword [esp + esi*4 + 0x14c], edx
mov dword [esp + 0x148], ecx
jmp 0x40982f
xor esi, esi
test ebp, ebp
jne 0x409ac7
mov ebp, 1
jmp 0x409ae1
add esi, 1
cmp ebp, esi
je 0x409acd
cmp edx, dword [esp + esi*4 + 0x48]
jne 0x409ac0
cmp ebp, 0x40
je 0x409823
cmp ebp, esi
jne 0x409823
add ebp, 1
mov dword [esp + esi*4 + 0x48], edx
mov dword [esp + 0x44], ebp
jmp 0x409823
call sym._Curl_now
mov edi, dword [esp + 0x378]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
jmp 0x4097c2
mov eax, dword [esp + 0x378]
test eax, eax
je 0x409b39
mov ebp, dword [esp + 0x378]
test ebp, ebp
js 0x409b90
mov eax, dword [esp + 0x378]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esp, 4
xor edx, edx
add esp, 0x35c
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
call sym._Curl_now
mov ebx, dword [esp + 0x24]
mov esi, edi
mov dword [esp], eax
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 4], edx
mov dword [esp + 0xc], ebx
call sym._Curl_timediff
sub esi, eax
test esi, esi
jle 0x409b39
mov ebx, dword [esp + 0x24c]
mov ecx, dword [esp + 0x148]
mov ebp, dword [esp + 0x44]
jmp 0x409874
mov dword [esp], 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
sub esp, 4
mov edx, 0xffffffff
jmp 0x409b3b