Function at 0x458c40
Capabilities:
Get socket status

Disassembly:
sub esp, 0x218
mov eax, dword [esp + 0x238]
mov edx, dword [esp + 0x234]
push ebx
push ebp
mov ebp, dword [esp + 0x224]
test ebp, ebp
mov byte [eax], 0
mov eax, dword [esp + 0x244]
push esi
mov esi, dword [esp + 0x24c]
mov byte [esi], 0
mov byte [eax], 0
mov dword [esp + 0x10], ecx
mov byte [edx], 0
je 0x458c8a
cmp ebp, 0x32
jae 0x458c8a
mov ebp, 0x32
mov ebx, dword [esp + 0x230]
test ebx, ebx
jne 0x458c9a
mov ebx, 0x1499700
cmp dword [esp + 0x23c], 0
je 0x458f54
test ebp, ebp
je 0x458f54
cmp dword [ecx + 0xa4], 0xffffffff
jne 0x458cdd
mov ecx, dword [esp + 0x238]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push str.invalid_socket__not_ready_for_writing.
call eax
mov byte [esi], 1
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x218
ret 0x28
push edi
mov edi, dword [esp + 0x230]
xor eax, eax
test edi, edi
mov dword [esp + 0x10], eax
je 0x458d30
nop
cmp ebp, edi
mov esi, ebp
jbe 0x458cf8
mov esi, edi
push esi
call fcn.0041e160
mov ecx, dword [esp + 0x244]
add esp, 4
push 0x71
push ebp
call fcn.0044e7f0
mov ecx, dword [esp + 0x240]
call fcn.0044e700
test al, al
jne 0x458e2e
sub edi, esi
jne 0x458cf0
mov eax, dword [esp + 0x10]
lea esp, [esp]
test ebx, ebx
je 0x458d3c
cmp eax, ebx
jae 0x458efe
test ebx, ebx
mov esi, ebp
je 0x458d50
cmp ebx, eax
jbe 0x458d50
mov esi, ebx
sub esi, eax
cmp esi, ebp
jbe 0x458d50
mov esi, ebp
mov eax, 0x10624dd3
mul esi
shr edx, 6
mov dword [esp + 0x18], edx
imul edx, edx, 0x3e8
mov ecx, esi
sub ecx, edx
mov edx, dword [esp + 0x14]
imul ecx, ecx, 0x3e8
mov eax, dword [edx + 0xa4]
mov dword [esp + 0x1c], ecx
mov ecx, 1
xor edi, edi
cmp byte [esp + 0x238], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
je 0x458daa
mov dword [esp + 0x128], eax
mov dword [esp + 0x124], ecx
lea edi, [esp + 0x124]
lea eax, [esp + 0x18]
push eax
push edi
lea ecx, [esp + 0x28]
push ecx
push 0
push 0
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x458e5a
test eax, eax
jg 0x458e86
add dword [esp + 0x10], esi
test ebx, ebx
je 0x458de2
cmp dword [esp + 0x10], ebx
jae 0x458efe
mov esi, dword [esp + 0x240]
push 0x72
push ebp
mov ecx, esi
call fcn.0044e7f0
mov ecx, esi
call fcn.0044e700
test al, al
je 0x458d28
mov ecx, dword [esp + 0x248]
mov byte [ecx], 1
mov ecx, dword [esp + 0x23c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push str.socket_operation_aborted_by_application_callback
call eax
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x218
ret 0x28
mov ecx, dword [esp + 0x248]
mov byte [ecx], 1
mov ecx, dword [esp + 0x23c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push str.socket_operation_aborted_by_application_callback..
call eax
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x218
ret 0x28
mov ecx, dword [esp + 0x23c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
push str.select_returned_a_socket_error
call eax
mov ecx, dword [esp + 0x250]
pop edi
pop esi
pop ebp
mov byte [ecx], 1
xor al, al
pop ebx
add esp, 0x218
ret 0x28
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0xa4]
lea edx, [esp + 0x20]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x458eae
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x218
ret 0x28
test edi, edi
je 0x458edc
mov ecx, dword [esi + 0xa4]
push edi
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x458edc
mov edx, dword [esp + 0x244]
pop edi
pop esi
pop ebp
mov byte [edx], 1
xor al, al
pop ebx
add esp, 0x218
ret 0x28
mov ecx, dword [esp + 0x23c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.Socket_select_after_connect_returned_0.
call edx
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x218
ret 0x28
cmp byte [esp + 0x238], 0
mov ecx, dword [esp + 0x23c]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
je 0x458f34
push str.timeout_waiting_for_connect_to_complete_
call edx
mov eax, dword [esp + 0x24c]
pop edi
pop esi
pop ebp
mov byte [eax], 1
xor al, al
pop ebx
add esp, 0x218
ret 0x28
push str.socket_is_not_ready_for_writing_
call edx
mov eax, dword [esp + 0x24c]
pop edi
pop esi
pop ebp
mov byte [eax], 1
xor al, al
pop ebx
add esp, 0x218
ret 0x28
push esi
push eax
mov eax, dword [esp + 0x23c]
push edx
mov edx, dword [esp + 0x244]
push edx
push eax
push ebx
call fcn.00458a90
pop esi
pop ebp
pop ebx
add esp, 0x218
ret 0x28