Function at 0x4224d0
Capabilities:
Get socket status

Disassembly:
mov eax, 0x603c
call fcn.0042c5a0
mov eax, dword [0x4a206c]
xor eax, esp
mov dword [esp + 0x6034], eax
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0xc], 0
push esi
mov esi, 1
mov dword [esp + 0x14], 0
push edi
cmp byte [ebp + 0xc4], 0
mov dword [esp + 0x1c], esi
jne 0x422b6c
xor ecx, ecx
or ebx, 0xffffffff
xor edi, edi
mov dword [esp + 0x28], ecx
test dword [ebp + 0xe4], 0x2000
mov dword [esp + 0x4038], ecx
mov dword [esp + 0x2030], ecx
je 0x422558
mov ecx, ebp
call fcn.00421a90
mov ecx, dword [esp + 0x28]
cmp eax, esi
jne 0x422558
test byte [ebp + 0xe4], 4
mov eax, edi
cmove esi, eax
mov dword [esp + 0x1c], esi
test dword [ebp + 0xe4], 4
mov eax, dword [sym.imp.WS2_32.dll___WSAFDIsSet]
jne 0x422855
cmp byte [ebp + 0xc4], 0
mov dword [esp + 0x10], 1
jne 0x42283c
mov esi, dword [ebp + 0xb4]
cmp esi, 0xffffffff
je 0x4225e0
cmp byte [ebp + 0xc5], 0
jne 0x4225e0
mov ecx, dword [esp + 0x28]
cmp ecx, 0x800
jb 0x4225b8
lea ecx, [esp + 0x28]
push ecx
push esi
call eax
mov ecx, dword [esp + 0x28]
test eax, eax
jne 0x4225b8
mov dword [esp + 0x10], edi
jmp 0x4225e4
xor eax, eax
test ecx, ecx
je 0x4225cb
nop
cmp esi, dword [esp + eax*4 + 0x2c]
je 0x4225cb
inc eax
cmp eax, ecx
jb 0x4225c0
cmp eax, ecx
jne 0x4225dc
mov dword [esp + ecx*4 + 0x2c], esi
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x28], ecx
mov ebx, esi
jmp 0x4225e4
mov ecx, dword [esp + 0x28]
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x42279b
nop
mov eax, dword [esi + 0xb0]
mov edi, dword [esi + 4]
sub eax, 0
je 0x422730
sub eax, 1
je 0x42268f
sub eax, 1
jne 0x422791
mov esi, dword [esi + 0xa0]
cmp esi, 0xffffffff
je 0x422789
cmp dword [esp + 0x2030], 0x800
jb 0x42264b
lea eax, [esp + 0x2030]
push eax
push esi
call dword [sym.imp.WS2_32.dll___WSAFDIsSet]
mov ecx, dword [esp + 0x28]
test eax, eax
je 0x422789
xor eax, eax
cmp dword [esp + 0x2030], eax
jbe 0x422669
cmp esi, dword [esp + eax*4 + 0x2034]
je 0x422669
inc eax
cmp eax, dword [esp + 0x2030]
jb 0x422656
mov edx, dword [esp + 0x2030]
cmp eax, edx
jne 0x42277c
mov dword [esp + edx*4 + 0x2034], esi
inc dword [esp + 0x2030]
mov ecx, dword [esp + 0x28]
jmp 0x42277c
mov esi, dword [esi + 0xa0]
cmp esi, 0xffffffff
je 0x42271f
cmp dword [esp + 0x4038], 0x800
jb 0x4226c2
lea eax, [esp + 0x4038]
push eax
push esi
call dword [sym.imp.WS2_32.dll___WSAFDIsSet]
mov ecx, dword [esp + 0x28]
test eax, eax
je 0x42271f
xor eax, eax
cmp dword [esp + 0x4038], eax
jbe 0x4226e3
nop dword [eax]
cmp esi, dword [esp + eax*4 + 0x403c]
je 0x4226e3
inc eax
cmp eax, dword [esp + 0x4038]
jb 0x4226d0
mov edx, dword [esp + 0x4038]
cmp eax, edx
jne 0x422700
mov dword [esp + edx*4 + 0x403c], esi
inc dword [esp + 0x4038]
mov ecx, dword [esp + 0x28]
cmp esi, ebx
ja 0x422709
cmp ebx, 0xffffffff
jne 0x42270b
mov ebx, esi
mov edx, 1
xor eax, eax
test edx, edx
cmovne eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x422791
xor edx, edx
xor eax, eax
test edx, edx
cmovne eax, dword [esp + 0x10]
mov dword [esp + 0x10], eax
jmp 0x422791
mov esi, dword [esi + 0xa0]
cmp esi, 0xffffffff
je 0x422789
cmp ecx, 0x800
jb 0x422757
lea eax, [esp + 0x28]
push eax
push esi
call dword [sym.imp.WS2_32.dll___WSAFDIsSet]
mov ecx, dword [esp + 0x28]
test eax, eax
je 0x422789
xor eax, eax
test ecx, ecx
je 0x42276b
nop dword [eax]
cmp esi, dword [esp + eax*4 + 0x2c]
je 0x42276b
inc eax
cmp eax, ecx
jb 0x422760
cmp eax, ecx
jne 0x42277c
mov dword [esp + ecx*4 + 0x2c], esi
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x28], ecx
cmp esi, ebx
ja 0x422785
cmp ebx, 0xffffffff
jne 0x422791
mov ebx, esi
jmp 0x422791
mov dword [esp + 0x10], 0
mov esi, edi
test edi, edi
jne 0x4225f0
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x422831
nop word [eax + eax]
mov edi, dword [esi + 4]
mov esi, dword [esi + 0xa0]
cmp esi, 0xffffffff
je 0x422827
cmp dword [esp + 0x2030], 0x800
jb 0x4227de
lea eax, [esp + 0x2030]
push eax
push esi
call dword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x422827
xor eax, eax
cmp dword [esp + 0x2030], eax
jbe 0x422803
nop dword [eax]
cmp esi, dword [esp + eax*4 + 0x2034]
je 0x422803
inc eax
cmp eax, dword [esp + 0x2030]
jb 0x4227f0
mov edx, dword [esp + 0x2030]
cmp eax, edx
jne 0x42281c
mov dword [esp + edx*4 + 0x2034], esi
inc dword [esp + 0x2030]
cmp esi, ebx
ja 0x422825
cmp ebx, 0xffffffff
jne 0x422827
mov ebx, esi
mov esi, edi
test edi, edi
jne 0x4227b0
mov ecx, dword [esp + 0x28]
cmp dword [esp + 0x10], 0
jne 0x4228c3
push str.Could_not_obtain_daemon_fdsets
push ebp
call fcn.00428de0
mov ecx, dword [esp + 0x30]
add esp, 8
mov edi, 1
jmp 0x4228c5
mov esi, dword [ebp + 0xb4]
cmp esi, 0xffffffff
je 0x4228ca
cmp byte [ebp + 0xc5], 0
mov ecx, dword [esp + 0x28]
jne 0x4228ca
cmp ecx, 0x800
jb 0x422898
lea ecx, [esp + 0x28]
push ecx
push esi
call eax
test eax, eax
jne 0x422894
push str.Could_not_add_listen_socket_to_fdset
push ebp
call fcn.00428de0
add esp, 8
jmp 0x422b6c
mov ecx, dword [esp + 0x28]
xor eax, eax
test ecx, ecx
je 0x4228ab
nop
cmp esi, dword [esp + eax*4 + 0x2c]
je 0x4228ab
inc eax
cmp eax, ecx
jb 0x4228a0
cmp eax, ecx
mov eax, dword [sym.imp.WS2_32.dll___WSAFDIsSet]
jne 0x4228ca
mov dword [esp + ecx*4 + 0x2c], esi
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x28], ecx
jmp 0x4228ca
xor edi, edi
mov eax, dword [sym.imp.WS2_32.dll___WSAFDIsSet]
mov esi, dword [ebp + 0xbc]
cmp esi, 0xffffffff
je 0x4229cc
cmp ecx, 0x800
jb 0x4229aa
lea ecx, [esp + 0x28]
push ecx
push esi
call eax
test eax, eax
jne 0x4229a6
mov eax, dword [ebp + 0xb4]
cmp eax, 0xffffffff
je 0x4229a0
cmp byte [ebp + 0xc5], 0
jne 0x4229a0
mov ecx, dword [esp + 0x28]
xor edx, edx
test ecx, ecx
je 0x42294d
nop dword [eax + eax]
cmp dword [esp + edx*4 + 0x2c], eax
je 0x42292d
inc edx
cmp edx, ecx
jb 0x422920
jmp 0x42294d
lea eax, [ecx - 1]
cmp edx, eax
jae 0x422948
mov eax, dword [esp + edx*4 + 0x30]
mov dword [esp + edx*4 + 0x2c], eax
inc edx
mov ecx, dword [esp + 0x28]
lea eax, [ecx - 1]
cmp edx, eax
jb 0x422934
dec ecx
mov dword [esp + 0x28], ecx
mov esi, dword [ebp + 0xbc]
cmp esi, 0xffffffff
je 0x42298d
cmp ecx, 0x800
jb 0x422974
lea eax, [esp + 0x28]
push eax
push esi
call dword [sym.imp.WS2_32.dll___WSAFDIsSet]
test eax, eax
je 0x42298d
mov ecx, dword [esp + 0x28]
xor eax, eax
test ecx, ecx
je 0x4229bb
nop word [eax + eax]
cmp esi, dword [esp + eax*4 + 0x2c]
je 0x4229bb
inc eax
cmp eax, ecx
jb 0x422980
jmp 0x4229bb
push str.Could_not_add_control_inter_thread_communication_channel_FD_to_fdset
push ebp
call fcn.00428de0
add esp, 8
mov edi, 1
mov ecx, dword [esp + 0x28]
jmp 0x4229cc
mov ecx, dword [esp + 0x28]
xor eax, eax
test ecx, ecx
je 0x4229bb
cmp esi, dword [esp + eax*4 + 0x2c]
je 0x4229bb
inc eax
cmp eax, ecx
jb 0x4229b0
cmp eax, ecx
jne 0x4229cc
mov dword [esp + ecx*4 + 0x2c], esi
mov ecx, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x28], ecx
mov esi, dword [ebp + 0xb4]
cmp esi, 0xffffffff
je 0x422a2d
cmp dword [ebp + 0xbc], 0xffffffff
je 0x422a2d
mov eax, dword [ebp + 0xcc]
cmp eax, dword [ebp + 0xd0]
je 0x4229f7
cmp byte [ebp + 0xc6], 0
je 0x422a2d
xor edx, edx
test ecx, ecx
je 0x422a2d
nop dword [eax]
cmp dword [esp + edx*4 + 0x2c], esi
je 0x422a0d
inc edx
cmp edx, ecx
jb 0x422a00
jmp 0x422a2d
lea eax, [ecx - 1]
cmp edx, eax
jae 0x422a28
mov eax, dword [esp + edx*4 + 0x30]
mov dword [esp + edx*4 + 0x2c], eax
inc edx
mov ecx, dword [esp + 0x28]
lea eax, [ecx - 1]
cmp edx, eax
jb 0x422a14
dec ecx
mov dword [esp + 0x28], ecx
xor eax, eax
xor esi, esi
cmp edi, 1
cmovne eax, dword [esp + 0x1c]
test eax, eax
jne 0x422a4b
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], esi
lea esi, [esp + 0x14]
jmp 0x422aad
test dword [ebp + 0xe4], 4
jne 0x422aad
lea edx, [esp + 0x20]
mov ecx, ebp
call fcn.00422210
cmp eax, 1
jne 0x422aa9
mov esi, dword [esp + 0x20]
push 0
push 0x3e8
push dword [esp + 0x2c]
push esi
call fcn.0042bfb0
imul ecx, eax, 0x3e8
sub esi, ecx
imul ecx, esi, 0x3e8
mov dword [esp + 0x18], ecx
test edx, edx
jne 0x422a9d
mov dword [esp + 0x14], eax
cmp eax, 0x7fffffff
jbe 0x422aa5
mov dword [esp + 0x14], accept
lea esi, [esp + 0x14]
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x422af0
cmp dword [esp + 0x4038], ecx
jne 0x422af0
cmp dword [esp + 0x2030], ecx
jne 0x422af0
test esi, esi
jne 0x422acb
xor eax, eax
jmp 0x422b0e
mov eax, 0x10624dd3
imul dword [esi + 4]
imul eax, dword [esi], 0x3e8
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
jmp 0x422b0e
push esi
lea eax, [esp + 0x2034]
push eax
lea eax, [esp + 0x4040]
push eax
lea eax, [esp + 0x34]
push eax
push 0
call dword [sym.imp.WS2_32.dll_select]
cmp byte [ebp + 0xc4], 0
jne 0x422b6c
test eax, eax
jns 0x422b49
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
jne 0x422b31
xor eax, eax
test edi, edi
sete al
jmp 0x422b6e
mov ecx, eax
call fcn.00428610
push eax
push str.select_failed:__s_n
push ebp
call fcn.00428de0
add esp, 0xc
jmp 0x422b6c
lea eax, [esp + 0x2030]
mov ecx, ebp
push eax
lea eax, [esp + 0x403c]
push eax
lea edx, [esp + 0x30]
call fcn.004223c0
add esp, 8
cmp eax, 1
je 0x422b28
xor eax, eax
mov ecx, dword [esp + 0x6044]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042b571
add esp, 0x603c
ret