Function at 0x4566b0
Capabilities:
Get socket status

Disassembly:
sub esp, 0x114
mov eax, dword [esp + 0x12c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x140]
push edi
mov edi, dword [esp + 0x128]
mov byte [eax], 0
mov eax, dword [esp + 0x140]
mov byte [esi], 0
test edi, edi
mov dword [esp + 0x14], ecx
mov byte [eax], 0
je 0x4566f1
cmp edi, 0x32
jae 0x4566f1
mov edi, 0x32
mov ebp, dword [esp + 0x130]
test ebp, ebp
jne 0x456701
mov ebp, 0x80befc00
mov edx, dword [esp + 0x138]
test edx, edx
je 0x45690d
test edi, edi
je 0x45690d
cmp dword [ecx + 0x54], 0xffffffff
jne 0x456741
mov ecx, dword [esp + 0x134]
push str.invalid_socket__not_ready_for_writing.
mov edx, dword [ecx]
call dword [edx + 0x10]
mov byte [esi], 1
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x114
ret 0x20
mov ebx, dword [esp + 0x12c]
xor eax, eax
test ebx, ebx
mov dword [esp + 0x10], eax
je 0x45678c
cmp edi, ebx
mov esi, edi
jbe 0x45675a
mov esi, ebx
push esi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x138]
push 0x71
push edi
call fcn.004293c0
mov ecx, dword [esp + 0x138]
call fcn.004511e0
test al, al
jne 0x456856
sub ebx, esi
jne 0x456752
mov eax, dword [esp + 0x10]
mov ebx, dword [sym.imp.WS2_32.dll_select]
test ebp, ebp
je 0x45679e
cmp eax, ebp
jae 0x4568b9
test ebp, ebp
mov esi, edi
je 0x4567b2
cmp ebp, eax
jbe 0x4567b2
mov esi, ebp
sub esi, eax
cmp esi, edi
jbe 0x4567b2
mov esi, edi
mov eax, 0x10624dd3
mov dword [esp + 0x20], 1
mul esi
shr edx, 6
mov dword [esp + 0x18], edx
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov ecx, eax
mov eax, esi
sub eax, ecx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x14]
shl edx, 3
mov ecx, dword [eax + 0x54]
mov dword [esp + 0x1c], edx
lea edx, [esp + 0x18]
lea eax, [esp + 0x20]
push edx
push 0
push eax
push 0
push 0
mov dword [esp + 0x38], ecx
call ebx
cmp eax, 0xffffffff
je 0x456880
cmp eax, 1
je 0x4568aa
mov ecx, dword [esp + 0x10]
add ecx, esi
test ebp, ebp
mov dword [esp + 0x10], ecx
je 0x45682d
mov eax, ecx
cmp eax, ebp
jae 0x4568b9
mov esi, dword [esp + 0x138]
push 0x72
push edi
mov ecx, esi
call fcn.004293c0
mov ecx, esi
call fcn.004511e0
test al, al
jne 0x4568e3
mov eax, dword [esp + 0x10]
jmp 0x456792
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x134]
push str.socket_operation_aborted_by_application_callback..
mov byte [eax], 1
mov edx, dword [ecx]
call dword [edx + 0x10]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x114
ret 0x20
mov ecx, dword [esp + 0x134]
push str.select_returned_a_socket_error
mov edx, dword [ecx]
call dword [edx + 0x10]
mov eax, dword [esp + 0x144]
pop edi
pop esi
pop ebp
mov byte [eax], 1
xor al, al
pop ebx
add esp, 0x114
ret 0x20
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x114
ret 0x20
mov ecx, dword [esp + 0x134]
push str.socket_is_not_ready_for_writing_
mov edx, dword [ecx]
call dword [edx + 0x10]
mov eax, dword [esp + 0x140]
pop edi
pop esi
pop ebp
mov byte [eax], 1
xor al, al
pop ebx
add esp, 0x114
ret 0x20
mov ecx, dword [esp + 0x13c]
push str.socket_operation_aborted_by_application_callback
mov byte [ecx], 1
mov ecx, dword [esp + 0x138]
mov edx, dword [ecx]
call dword [edx + 0x10]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x114
ret 0x20
push esi
push eax
mov eax, dword [esp + 0x13c]
push eax
push ebp
call fcn.004565a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret 0x20