Function at 0x443330
Capabilities:
Get socket status

Disassembly:
sub esp, 0x32c
mov ecx, dword [esp + 0x334]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x340]
mov ebx, dword [edi]
mov eax, dword [edi + 0x138]
mov ebp, dword [edi + 0x134]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [ecx], 0
call fcn.00443290
push str.Checking_for_server_connect_n
mov ecx, ebx
mov esi, eax
call fcn.00433c20
add esp, 4
test esi, esi
jge 0x44339d
push str.Accept_timeout_occurred_while_waiting_server_connect
mov eax, ebx
call fcn.00433ce0
mov eax, 0xc
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x32c
ret
cmp dword [edi + 0x3cc], 0
je 0x4433e7
mov eax, dword [edi + 0x3c8]
test eax, eax
je 0x4433e7
cmp byte [eax], 0x33
jle 0x4433e7
push str.There_is_negative_response_in_cache_while_serv_connect_n
mov ecx, ebx
call fcn.00433c20
add esp, 4
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x18]
push edi
push eax
call fcn.00443920
add esp, 0xc
mov eax, 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x32c
ret
mov edi, dword [esp + 0x14]
cmp ebp, 0xffffffff
jne 0x4433f8
cmp edi, ebp
je 0x4435ad
xor edx, edx
xor ecx, ecx
or esi, 0xffffffff
mov dword [esp + 0x20], edx
mov dword [esp + 0x128], ecx
cmp ebp, 0xffffffff
je 0x44342e
mov ecx, 1
mov edx, ecx
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x128], ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], edx
mov esi, ebp
cmp edi, 0xffffffff
je 0x443492
xor eax, eax
test ecx, ecx
jbe 0x44344e
lea esp, [esp]
cmp dword [esp + eax*4 + 0x12c], edi
je 0x44344e
inc eax
cmp eax, ecx
jb 0x443440
cmp eax, ecx
jne 0x443465
cmp ecx, 0x40
jae 0x443465
mov dword [esp + eax*4 + 0x12c], edi
inc dword [esp + 0x128]
xor eax, eax
test edx, edx
jbe 0x44347b
jmp 0x443470
cmp dword [esp + eax*4 + 0x24], edi
je 0x44347b
inc eax
cmp eax, edx
jb 0x443470
cmp eax, edx
jne 0x44348c
cmp edx, 0x40
jae 0x44348c
mov dword [esp + eax*4 + 0x24], edi
inc dword [esp + 0x20]
cmp edi, esi
jbe 0x443492
mov esi, edi
mov edi, dword [sym.imp.WS2_32.dll_select]
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp + 0x230], 0
inc esi
lea ebx, [ebx]
xor eax, eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea eax, [esp + 0x238]
push eax
lea ecx, [esp + 0x134]
push ecx
push esi
call edi
cmp eax, 0xffffffff
jne 0x443513
call ebx
test eax, eax
je 0x4434b0
cmp dword [0x4cbda8], 0
jne 0x4434f2
cmp eax, 0x2714
je 0x4434b0
mov eax, dword [esp + 0x10]
push str.Error_while_waiting_for_server_connect
call fcn.00433ce0
mov eax, 0xa
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x32c
ret
test eax, eax
jl 0x4434f2
je 0x4435ad
xor ebx, ebx
cmp ebp, 0xffffffff
je 0x44354d
lea edx, [esp + 0x128]
push edx
push ebp
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x44353b
mov ebx, 1
lea eax, [esp + 0x20]
push eax
push ebp
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x44354d
or ebx, 4
mov esi, dword [esp + 0x14]
cmp esi, 0xffffffff
je 0x44357d
lea ecx, [esp + 0x128]
push ecx
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x44356b
or ebx, 8
lea edx, [esp + 0x20]
push edx
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x44357d
or ebx, 4
cmp ebx, 0xffffffff
je 0x4434f2
test ebx, ebx
je 0x4435ad
test bl, 8
je 0x4435ba
mov ecx, dword [esp + 0x10]
push str.Ready_to_accept_data_connection_from_server_n
call fcn.00433c20
mov eax, dword [esp + 0x348]
add esp, 4
mov dword [eax], 1
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x32c
ret
test bl, 1
je 0x4435ad
mov ecx, dword [esp + 0x10]
push str.Ctrl_conn_has_data_while_waiting_for_data_conn_n
call fcn.00433c20
mov edx, dword [esp + 0x344]
add esp, 4
lea ecx, [esp + 0x10]
push ecx
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00443920
mov ecx, dword [esp + 0x1c]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov ecx, edx
add esp, 0xc
shr ecx, 0x1f
xor eax, eax
add ecx, edx
cmp ecx, 3
setg al
pop edi
pop esi
pop ebp
pop ebx
lea eax, [eax + eax + 8]
add esp, 0x32c
ret