Function at 0x409280
Capabilities:
Get socket status

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x36c
mov eax, dword [esp + 0x384]
and eax, dword [esp + 0x388]
mov dword [esp + 0x38], 0
and eax, dword [esp + 0x380]
mov dword [esp + 0x3c], 0
mov edi, dword [esp + 0x38c]
cmp eax, 0xffffffff
je 0x4096a6
mov dword [esp + 0x34], 0
test edi, edi
jle 0x4092dc
call sym._Curl_now
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x380], 0xffffffff
mov dword [esp + 0x54], 0
mov dword [esp + 0x25c], 0
je 0x4096d0
mov eax, dword [esp + 0x380]
cmp dword [esp + 0x384], 0xffffffff
mov dword [esp + 0x54], 1
mov dword [esp + 0x25c], 1
mov dword [esp + 0x58], eax
mov dword [esp + 0x260], eax
je 0x409508
mov esi, dword [esp + 0x384]
mov ecx, 2
mov eax, 1
cmp dword [esp + 0x58], esi
je 0x409630
mov esi, dword [esp + 0x384]
mov edx, dword [esp + 0x25c]
mov dword [esp + 0x54], ecx
mov dword [esp + eax*4 + 0x58], esi
test edx, edx
je 0x409715
lea esi, [esi]
mov ebx, dword [esp + 0x384]
xor eax, eax
lea ebp, [esp + 0x25c]
jmp 0x409393
add eax, 1
cmp eax, edx
je 0x409680
cmp dword [ebp + eax*4 + 4], ebx
jne 0x409388
cmp eax, edx
je 0x409680
mov eax, dword [esp + 0x384]
cmp dword [esp + 0x380], eax
mov edx, eax
cmovae edx, dword [esp + 0x380]
mov dword [esp + 0x158], 0
xor ebx, ebx
cmp dword [esp + 0x388], 0xffffffff
je 0x409436
mov eax, dword [esp + 0x388]
mov ebx, dword [esp + 0x25c]
mov dword [esp + 0x158], 1
mov dword [esp + 0x15c], eax
xor eax, eax
test ebx, ebx
je 0x409728
mov esi, dword [esp + 0x388]
jmp 0x40940f
add eax, 1
cmp eax, ebx
je 0x409415
cmp dword [ebp + eax*4 + 4], esi
jne 0x409408
cmp ebx, 0x40
je 0x409422
cmp eax, ebx
je 0x4096f8
cmp edx, dword [esp + 0x388]
cmovb edx, dword [esp + 0x388]
mov ebx, 1
xor eax, eax
lea esi, [esp + 0x4c]
test edi, edi
cmovs esi, eax
lea eax, [edx + 1]
mov dword [esp + 0x2c], eax
mov eax, 0x10624dd3
mul dword [esp + 0x34]
shr edx, 6
imul eax, edx, 0x3e8
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x34]
sub edx, eax
imul eax, edx, 0x3e8
test edi, edi
jle 0x4094ec
mov edx, dword [esp + 0x30]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
xor eax, eax
lea edx, [esp + 0x158]
test ebx, ebx
mov dword [esp + 0x10], esi
cmove edx, eax
lea ebx, [esp + 0x54]
test ecx, ecx
mov dword [esp + 0xc], ebp
cmovne eax, ebx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_select]
sub esp, 0x14
cmp eax, 0xffffffff
jne 0x409520
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x4094d9
mov edx, dword [0x47605c]
test edx, edx
jne 0x40973d
cmp eax, 0x2714
jne 0x40973d
test edi, edi
jg 0x409640
mov ebx, dword [esp + 0x158]
mov ecx, dword [esp + 0x54]
test edi, edi
jne 0x40947a
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
jmp 0x40947a
mov edx, dword [esp + 0x380]
mov ecx, 1
lea ebp, [esp + 0x25c]
jmp 0x4093b9
test eax, eax
js 0x40973d
je 0x4096bc
xor esi, esi
cmp dword [esp + 0x380], 0xffffffff
je 0x40957c
mov eax, dword [esp + 0x380]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sym.___WSAFDIsSet_8
sub esp, 8
test eax, eax
setne al
mov dword [esp + 4], ebp
movzx eax, al
mov esi, eax
mov eax, dword [esp + 0x380]
mov dword [esp], eax
call sym.___WSAFDIsSet_8
mov edx, eax
mov eax, esi
sub esp, 8
or eax, 4
test edx, edx
cmovne esi, eax
cmp dword [esp + 0x384], 0xffffffff
je 0x4095ce
lea eax, [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x384]
mov dword [esp], eax
call sym.___WSAFDIsSet_8
mov edx, eax
mov eax, esi
sub esp, 8
or eax, 8
test edx, edx
mov dword [esp + 4], ebp
cmovne esi, eax
mov eax, dword [esp + 0x384]
mov dword [esp], eax
call sym.___WSAFDIsSet_8
mov edx, eax
mov eax, esi
sub esp, 8
or eax, 4
test edx, edx
cmovne esi, eax
cmp dword [esp + 0x388], 0xffffffff
je 0x409623
lea eax, [esp + 0x158]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x388]
mov dword [esp], eax
call sym.___WSAFDIsSet_8
mov edx, eax
mov eax, esi
sub esp, 8
or eax, 2
test edx, edx
mov dword [esp + 4], ebp
cmovne esi, eax
mov eax, dword [esp + 0x388]
mov dword [esp], eax
call sym.___WSAFDIsSet_8
mov edx, eax
mov eax, esi
sub esp, 8
or eax, 4
test edx, edx
cmovne esi, eax
add esp, 0x36c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 1
mov ecx, 1
jmp 0x409370
call sym._Curl_now
mov ecx, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], edx
mov dword [esp + 0xc], ecx
call sym._Curl_timediff
mov ecx, edi
sub ecx, eax
mov dword [esp + 0x34], ecx
test ecx, ecx
jle 0x4096bc
mov ebx, dword [esp + 0x158]
mov ecx, dword [esp + 0x54]
jmp 0x409448
cmp edx, 0x40
je 0x4093a1
add edx, 1
mov esi, dword [esp + 0x384]
mov dword [esp + 0x25c], edx
mov dword [esp + eax*4 + 0x260], esi
jmp 0x4093a1
test edi, edi
je 0x4096bc
js 0x40972f
mov dword [esp], edi
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esp, 4
add esp, 0x36c
xor esi, esi
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
xor eax, eax
cmp dword [esp + 0x384], 0xffffffff
mov ecx, 1
jne 0x40934b
mov edx, 0xffffffff
xor ecx, ecx
lea ebp, [esp + 0x25c]
jmp 0x4093b9
add ebx, 1
mov esi, dword [esp + 0x388]
mov dword [esp + 0x25c], ebx
mov dword [esp + eax*4 + 0x260], esi
jmp 0x409422
xor eax, eax
mov edx, 1
lea ebp, [esp + 0x25c]
jmp 0x40968c
mov ebx, 1
jmp 0x4096fb
mov dword [esp], 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ecx
or esi, 0xffffffff
jmp 0x409623