Function at 0x469650
Capabilities:
Connect socket
Set socket configuration

Disassembly:
sub esp, 0x2ec
mov eax, dword [0x4f7040]
xor eax, esp
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x2fc]
mov ecx, dword [esp + 0x2f8]
add eax, 0x4c
push ebx
mov ebx, dword [esp + 0x2f4]
push ebp
push esi
push edi
mov edi, dword [esp + 0x304]
lea eax, [edi + eax*4]
mov dword [esp + 0x1c], edi
mov dword [eax], 0xffffffff
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x38], eax
mov al, byte [esi + 0x4b5]
mov byte [esp + 0x13], 0
cmp al, 3
je 0x4696d1
cmp al, 6
je 0x4696c7
mov dword [esp + 0x3c], 2
mov dword [esp + 0x40], 0x11
jmp 0x4696e1
mov dword [esp + 0x40], 0
jmp 0x4696d9
mov dword [esp + 0x40], 6
mov dword [esp + 0x3c], 1
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x44], eax
cmp eax, 0x80
jbe 0x4696fc
mov dword [esp + 0x44], 0x80
mov eax, 0x80
push eax
push dword [ecx + 0x18]
lea eax, [esp + 0x50]
push eax
call fcn.004a69b0
add esp, 0xc
cmp dword [ebx + 0x1b8], 0
je 0x469742
push 1
push ebx
call fcn.004573a0
lea eax, [esp + 0x40]
push eax
mov eax, dword [ebx + 0x1b8]
push 0
push dword [ebx + 0x1bc]
call eax
push 0
push ebx
mov ebp, eax
call fcn.004573a0
add esp, 0x1c
jmp 0x469756
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x40]
call dword [sym.imp.WS2_32.dll_socket]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x469765
mov eax, 7
jmp 0x469ba3
cmp byte [esi + 0x4b5], 5
jne 0x469779
push 1
push ebp
call fcn.00492a40
add esp, 8
mov ecx, dword [esi + 0x4ac]
test ecx, ecx
je 0x469793
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x38], 0x17
cmove eax, ecx
mov dword [esp + 0x60], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x4c]
lea eax, [esp + 0x54]
push eax
call fcn.00467d00
add esp, 0x10
test al, al
jne 0x4697f7
call fcn.004b4dbc
mov esi, dword [eax]
call fcn.004b4dbc
mov edi, eax
lea eax, [esp + 0xf8]
push 0x100
push eax
push esi
call fcn.00452cb0
push eax
push dword [edi]
push str.sa_addr_inet_ntop___failed_with_errno__d:__s
push ebx
call fcn.00466c70
push ebp
push dword [esp + 0x3c]
push ebx
call fcn.00467db0
add esp, 0x28
jmp 0x469ba1
cmp dword [esp + 0x38], 0x17
mov ecx, str.__Trying__s:_d...
push dword [esp + 0x14]
mov eax, str.__Trying___s_:_d...
cmovne eax, ecx
lea ecx, [esp + 0xcc]
push ecx
push eax
push ebx
call fcn.00466d40
mov eax, dword [esp + 0x48]
add esp, 0x10
cmp eax, 2
je 0x46982d
cmp eax, 0x17
jne 0x46989d
cmp dword [esp + 0x3c], 1
jne 0x46989d
mov al, 1
xor esi, esi
cmp byte [ebx + 0x6ec], 0
mov byte [esp + 0x1b], al
mov byte [esp + 0x12], al
je 0x4698a4
push 4
mov byte [esp + 0x16], al
lea eax, [esp + 0x20]
push eax
push 1
push 6
push ebp
mov dword [esp + 0x30], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x4698a4
push 0x100
lea eax, [esp + 0x1fc]
push eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
call fcn.00452cb0
push eax
push str.Could_not_set_TCP_NODELAY:__s
push ebx
call fcn.00466d40
mov al, byte [esp + 0x33]
add esp, 0x18
mov byte [esp + 0x12], al
jmp 0x4698a2
mov byte [esp + 0x12], 0
xor esi, esi
mov eax, dword [0x535854]
mov dword [esp + 0x1c], 0x4020
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], 4
test eax, eax
jne 0x4698f1
push 3
push 2
push eax
push eax
push 6
call fcn.004930e0
add esp, 0x14
test al, al
je 0x4698e5
mov dword [0x535854], 2
jmp 0x469937
mov dword [0x535854], 1
jmp 0x4698f6
cmp eax, 2
je 0x469937
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x18]
push eax
push 0x1001
push 0xffff
push ebp
call dword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x46991f
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jg 0x469937
push 4
lea eax, [esp + 0x20]
push eax
push 0x1001
push 0xffff
push ebp
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp byte [esp + 0x12], 0
je 0x4699f8
cmp byte [ebx + 0x6f3], 0
je 0x4699f8
push 4
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 1
push eax
push 8
push 0xffff
push ebp
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x469981
push ebp
push str.Failed_to_set_SO_KEEPALIVE_on_fd__d
push ebx
call fcn.00466d40
add esp, 0xc
jmp 0x4699f8
push dword [ebx + 0x690]
mov dword [esp + 0x2c], 1
call fcn.00469c70
push dword [ebx + 0x694]
imul eax, eax, 0x3e8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x34], eax
call fcn.00469c70
add esp, 8
imul eax, eax, 0x3e8
push 0
push 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x28]
push eax
push 0
push 0
push 0xc
lea eax, [esp + 0x40]
push eax
push 0x98000004
push ebp
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x4699f8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push ebp
push str.Failed_to_set_SIO_KEEPALIVE_VALS_on_fd__d:__d
push ebx
call fcn.00466d40
add esp, 0x10
cmp dword [ebx + 0x1b0], 0
je 0x469a37
push 1
push ebx
call fcn.004573a0
mov eax, dword [ebx + 0x1b0]
push 0
push ebp
push dword [ebx + 0x1b4]
call eax
push 0
push ebx
mov dword [esp + 0x3c], eax
call fcn.004573a0
mov eax, dword [esp + 0x3c]
add esp, 0x1c
cmp eax, 2
jne 0x469a82
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x38]
cmp eax, 2
je 0x469a45
cmp eax, 0x17
jne 0x469a9b
lea eax, [esp + 0x48]
push eax
call fcn.004929b0
push eax
push dword [esp + 0x40]
push ebp
push edi
push ebx
call fcn.00468c60
mov esi, eax
add esp, 0x18
test esi, esi
je 0x469a9b
push ebp
push edi
push ebx
call fcn.00467db0
add esp, 0xc
mov eax, 7
cmp esi, 1
cmove esi, eax
mov eax, esi
jmp 0x469ba3
test eax, eax
je 0x469a37
push ebp
push edi
push ebx
call fcn.00467db0
add esp, 0xc
mov eax, 0x2a
jmp 0x469ba3
push 1
push ebp
call fcn.00492a40
lea eax, [esp + 0x30]
push eax
call fcn.0046f760
add esp, 0xc
cmp dword [edi + 0x49c], 1
movups xmm0, xmmword [eax]
movups xmmword [edi + 0x218], xmm0
jle 0x469aee
push 3
push dword [edi + 0x22c]
push dword [edi + 0x228]
push ebx
call fcn.00456df0
push 4
push dword [edi + 0x234]
push dword [edi + 0x230]
push ebx
call fcn.00456df0
add esp, 0x20
cmp byte [esp + 0x13], 0
jne 0x469b9b
cmp byte [edi + 0x4b5], 4
je 0x469b9b
cmp byte [edi + 0x210], 0
jne 0x469b32
push dword [esp + 0x44]
lea eax, [esp + 0x4c]
push eax
push ebp
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x469b32
test esi, esi
jne 0x469b97
mov eax, dword [esp + 0x24]
mov dword [eax], ebp
mov eax, esi
jmp 0x469ba3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
mov ecx, esi
sub ecx, 0xb
je 0x469b8f
sub ecx, 0x2728
je 0x469b8f
sub ecx, 1
je 0x469b8f
push 0x100
lea eax, [esp + 0xfc]
push eax
push esi
call fcn.00452cb0
push eax
lea eax, [esp + 0xd8]
push eax
push str.Immediate_connect_fail_for__s:__s
push ebx
call fcn.00466d40
push ebp
push edi
push ebx
mov dword [ebx + 0x938], esi
call fcn.00467db0
mov esi, 7
add esp, 0x28
mov eax, esi
jmp 0x469ba3
mov eax, dword [esp + 0x24]
xor esi, esi
mov dword [eax], ebp
mov eax, esi
jmp 0x469ba3
mov eax, dword [esp + 0x24]
mov dword [eax], ebp
xor eax, eax
mov ecx, dword [esp + 0x2f8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004a3760
add esp, 0x2ec
ret