Function at 0x409250
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x411c
call fcn.00427e80
mov eax, dword [0x43b3c0]
xor eax, esp
mov dword [esp + 0x4118], eax
push ebx
push esi
xor eax, eax
mov esi, ecx
mov edx, dword [esi + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
mov eax, dword [esi + 0x1c]
push edi
mov dword [esp + 0x10], 0x1e
mov ecx, dword [eax + 0x1bc]
mov eax, dword [edx + 0x1bc]
push ecx
mov ecx, dword [esi + 0xc]
push eax
push ecx
push str.CSocketPairThread__p_:_SockPair__d__d__Start____n
call fcn.00404f40
add esp, 0x10
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov eax, dword [edx + 0x1bc]
mov edi, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edi
mov ecx, dword [ecx + 0x1bc]
xor eax, eax
cmp dword [esp + eax*4 + 0x1c], ecx
je 0x4092dd
add eax, edi
cmp eax, edi
jb 0x4092d1
cmp eax, edi
jne 0x4092ed
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], 2
lea edx, [esp + 0x10]
push edx
push ebx
push ebx
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x409543
cmp eax, ebx
mov eax, dword [esi + 0x18]
jne 0x409357
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + 0x1bc]
mov ecx, dword [eax + 0x1bc]
push edx
mov edx, dword [esi + 0xc]
push ecx
push edx
push str.CSocketPairThread__p_:_select__d__d__timeout_..._n
call fcn.00404f40
add dword [esp + 0x1c], edi
add esp, 0x10
cmp dword [esp + 0xc], 0x1e
jl 0x4092aa
mov edx, dword [esi + 0xc]
push edx
push str.CProxyHttpThread__p_:_timeout__force_Exit._n
call fcn.00404f40
add esp, 8
jmp 0x409495
mov eax, dword [eax + 0x1bc]
lea ecx, [esp + 0x18]
push ecx
push eax
mov dword [esp + 0x14], ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4093e1
push 0x3fff
lea edx, [esp + 0x125]
push ebx
push edx
mov byte [esp + 0x12c], 0
call fcn.0041a300
mov ecx, dword [esi + 0x18]
add esp, 0xc
lea ebx, [esp + 0x120]
call fcn.004088d0
mov edi, eax
cmp edi, 0xffffffff
je 0x409574
test edi, edi
je 0x409593
jle 0x4093e1
push edi
push str._RecvEx:_d_n_n
call fcn.00404f40
mov eax, ebx
push eax
push 0x437338
call fcn.00404f40
mov ecx, dword [esi + 0x1c]
add esp, 0x10
push ecx
mov ecx, ebx
call fcn.00408b10
cmp eax, 0xffffffff
je 0x4095b3
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0x1bc]
lea ecx, [esp + 0x18]
push ecx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4092aa
push 0x3fff
lea edx, [esp + 0x125]
push 0
push edx
mov byte [esp + 0x12c], 0
call fcn.0041a300
mov ecx, dword [esi + 0x1c]
add esp, 0xc
lea ebx, [esp + 0x120]
call fcn.004088d0
mov edi, eax
cmp edi, 0xffffffff
je 0x4095d2
test edi, edi
je 0x4095f1
jle 0x4092aa
push edi
push str._RecvEx:_d_n_n
call fcn.00404f40
mov eax, ebx
push eax
push 0x437338
call fcn.00404f40
mov ecx, dword [esi + 0x18]
add esp, 0x10
push ecx
mov ecx, ebx
call fcn.00408b10
cmp eax, 0xffffffff
jne 0x4092aa
mov eax, dword [esi + 0x18]
mov edi, dword [eax + 0x1bc]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0xc]
push eax
push edi
push ecx
push str.CSocketPairThread__p_:_m_pSocket1__SendEx__d__SOCKET_ERROR___d_n
call fcn.00404f40
add esp, 0x10
mov edx, dword [esi + 0x1c]
mov eax, dword [edx + 0x1bc]
mov ecx, dword [esi + 0x18]
mov edx, dword [ecx + 0x1bc]
push eax
mov eax, dword [esi + 0xc]
push edx
push eax
push str.CSocketPairThread__p_:_SockPair__d__d__Stopped._n
call fcn.00404f40
mov eax, dword [esi + 0x18]
mov ebx, 1
add esp, 0x10
cmp dword [eax + 0x1e0], ebx
je 0x4094db
mov edx, dword [eax + 0x1b8]
lea ecx, [eax + 0x1b8]
mov eax, dword [edx + 0x20]
call eax
mov ecx, dword [esi + 0x18]
xor edi, edi
cmp ecx, edi
je 0x4094eb
mov edx, dword [ecx]
mov eax, dword [edx]
push ebx
call eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x18], edi
cmp dword [eax + 0x1e0], ebx
je 0x40950a
mov edx, dword [eax + 0x1b8]
lea ecx, [eax + 0x1b8]
mov eax, dword [edx + 0x20]
call eax
mov ecx, dword [esi + 0x1c]
cmp ecx, edi
je 0x409518
mov edx, dword [ecx]
mov eax, dword [edx]
push ebx
call eax
mov ecx, dword [esi + 0xc]
push ecx
push str.CSocketPairThread__p_:_Communication_is_Over___n
mov dword [esi + 0x1c], edi
call fcn.00404f40
mov ecx, dword [esp + 0x412c]
add esp, 8
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.004174dc
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x18]
mov edi, dword [eax + 0x1bc]
mov ebx, dword [ecx + 0x1bc]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi + 0xc]
push eax
push edi
push ebx
push edx
push str.CSocketPairThread__p_:_select__d__d__SOCKET_ERROR___d____n
call fcn.00404f40
add esp, 0x14
jmp 0x409495
mov eax, dword [esi + 0x18]
mov edi, dword [eax + 0x1bc]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0xc]
push eax
push edi
push ecx
push str.CSocketPairThread__p_:_m_pSocket1__RecvEx__d__SOCKET_ERROR___d_n
jmp 0x40948d
mov edx, dword [esi + 0x18]
mov eax, dword [edx + 0x1bc]
mov ecx, dword [esi + 0xc]
push eax
push ecx
push str.CSocketPairThread__p_:_Closed_m_pSocket1__d__n
call fcn.00404f40
add esp, 0xc
jmp 0x409495
mov edx, dword [esi + 0x1c]
mov edi, dword [edx + 0x1bc]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [esi + 0xc]
push edi
push eax
push str.CSocketPairThread__p_:_m_pSocket2__SendEx__d__SOCKET_ERROR___d_n
jmp 0x40948d
mov ecx, dword [esi + 0x1c]
mov edi, dword [ecx + 0x1bc]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi + 0xc]
push eax
push edi
push edx
push str.CSocketPairThread__p_:_m_pSocket2__RecvEx__d__SOCKET_ERROR___d_n
jmp 0x40948d
mov eax, dword [esi + 0x1c]
mov ecx, dword [eax + 0x1bc]
mov edx, dword [esi + 0xc]
push ecx
push edx
push str.CSocketPairThread__p_:_Closed_m_pSocket2__d__n
call fcn.00404f40
add esp, 0xc
jmp 0x409495