Function at 0x14003a720
Capabilities:
Connect socket

Disassembly:
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x160
mov r12, rcx
mov r14, rdx
mov rbx, r9
test byte [rcx + 0x24], 1
jne 0x14003a7d0
mov r13d, 1
test r8b, r8b
jne 0x14003a7b4
mov rsi, qword [rcx + 0x10]
mov r13d, 7
mov byte [r9], 0
mov r8, qword [rsi + 0x98]
cmp r8, 0xffffffffffffffff
je 0x14003a8d0
xor r9d, r9d
mov rdx, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
call sym.Curl_socket_check
test eax, eax
je 0x14003a9a0
cmp eax, 2
je 0x14003a7e0
mov rdx, qword [r12 + 0x18]
cmp byte [rdx + 0x3ba], 0
js 0x14003a7e0
test al, 4
jne 0x14003ab90
test r13d, r13d
jne 0x14003aa00
xor r13d, r13d
mov eax, r13d
add rsp, 0x160
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
ret
mov byte [rbx], 1
xor r13d, r13d
jmp 0x14003a7b4
mov r15, qword [rsi + 0x98]
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x60], 4
call qword [sym.imp.KERNEL32.dll_SleepEx]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x5c]
mov rcx, r15
mov qword [rsp + 0x20], rax
mov r8d, 0x1007
mov edx, 0xffff
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x14003ab80
mov eax, dword [rsp + 0x5c]
mov dword [rsi + 0x14c], eax
test eax, eax
je 0x14003a845
cmp eax, 0x2748
jne 0x14003a7a8
lea rcx, [rsp + 0x40]
call sym.Curl_now
movdqu xmm0, xmmword [rsp + 0x40]
mov rcx, qword [r12 + 0x10]
mov rdx, r14
movups xmmword [rsi + 0x118], xmm0
call sym.set_local_ip.isra.0
mov byte [rbx], 1
or byte [r12 + 0x24], 1
test r14, r14
je 0x14003a7b1
test byte [r14 + 0xa47], 0x10
je 0x14003a7b1
mov rax, qword [r14 + 0x1270]
test rax, rax
je 0x14003a8a0
mov ecx, dword [rax + 8]
test ecx, ecx
jle 0x14003a7b1
mov rax, qword [r12]
mov edx, dword [rax + 0xc]
test edx, edx
jle 0x14003a7b1
lea r8, str.connected
mov rdx, r12
mov rcx, r14
call sym.Curl_trc_cf_infof
jmp 0x14003a7b1
call sym.cf_socket_open
mov r13d, eax
test eax, eax
jne 0x14003aa00
test byte [r12 + 0x24], 1
jne 0x14003a7d0
mov rdx, qword [r12 + 0x18]
mov rax, qword [r12 + 0x10]
cmp byte [rdx + 0x3ba], 0
js 0x14003ac2e
mov rcx, qword [rax + 0x98]
lea rdx, [rax + 0x18]
mov r8d, dword [rax + 0x14]
call qword [sym.imp.WS2_32.dll_connect]
mov r15d, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, qword [r12 + 0x10]
mov rdx, r14
mov edi, eax
call sym.set_local_ip.isra.0
test r14, r14
je 0x14003a988
test byte [r14 + 0xa47], 0x10
je 0x14003a988
mov rax, qword [r14 + 0x1270]
test rax, rax
je 0x14003a952
mov eax, dword [rax + 8]
test eax, eax
jle 0x14003a988
mov rax, qword [r12]
mov r11d, dword [rax + 0xc]
test r11d, r11d
jle 0x14003a988
mov eax, dword [rsi + 0x100]
lea r9, [rsi + 0xce]
mov rdx, r12
mov rcx, r14
lea r8, str.local_address__s_port__d...
mov dword [rsp + 0x20], eax
call sym.Curl_trc_cf_infof
nop word [rax + rax]
cmp r15d, 0xffffffff
je 0x14003aa60
mov r8, qword [rsi + 0x98]
jmp 0x14003a76f
test r14, r14
je 0x14003a7b1
test byte [r14 + 0xa47], 0x10
je 0x14003a7b1
mov rax, qword [r14 + 0x1270]
test rax, rax
je 0x14003a9d0
mov r9d, dword [rax + 8]
test r9d, r9d
jle 0x14003a7b1
mov rax, qword [r12]
mov r8d, dword [rax + 0xc]
test r8d, r8d
jle 0x14003a7b1
lea r8, str.not_connected_yet
mov rdx, r12
mov rcx, r14
xor r13d, r13d
call sym.Curl_trc_cf_infof
jmp 0x14003a7b4
mov eax, dword [rsi + 0x14c]
test eax, eax
jne 0x14003aae0
mov r15, qword [rsi + 0x98]
cmp r15, 0xffffffffffffffff
je 0x14003aa50
mov r12, qword [r12 + 0x18]
test r12, r12
je 0x14003aa3c
cmp qword [r12 + 0x20], 0
mov rdx, r15
mov rcx, r14
jne 0x14003ac00
call sym.Curl_multi_closed
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rsi + 0x98], 0xffffffffffffffff
mov byte [rbx], 0
jmp 0x14003a7b4
cmp edi, 0xb
je 0x14003a7b4
lea eax, [rdi - 0x2733]
cmp eax, 1
jbe 0x14003a7b4
test r14, r14
je 0x14003aac7
test byte [r14 + 0xa47], 0x10
je 0x14003aac7
mov rax, qword [r14 + 0x1270]
test rax, rax
je 0x14003aa9c
mov r10d, dword [rax + 8]
test r10d, r10d
jle 0x14003aac7
lea rdx, [rsp + 0x60]
mov r8d, 0x100
mov ecx, edi
call sym.Curl_strerror
lea r8, [rsi + 0xa0]
lea rdx, str.Immediate_connect_fail_for__s:__s
mov rcx, r14
mov r9, rax
call sym.Curl_infof
mov dword [r14 + 0xc7c], edi
mov eax, dword [rsi + 0x14c]
mov r13d, 7
jmp 0x14003aa06
mov rcx, qword [r12 + 0x10]
mov rdx, r14
call sym.set_local_ip.isra.0
mov ecx, dword [rsi + 0x14c]
mov dword [r14 + 0xc7c], ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
test byte [r14 + 0xa47], 0x10
je 0x14003aa0e
mov rax, qword [r14 + 0x1270]
test rax, rax
je 0x14003ab25
mov eax, dword [rax + 8]
test eax, eax
jle 0x14003aa0e
mov ecx, dword [rsi + 0x14c]
lea rdx, [rsp + 0x60]
mov r8d, 0x100
call sym.Curl_strerror
mov r9d, dword [rsi + 0xfc]
lea r8, [rsi + 0xa0]
mov rcx, r14
mov qword [rsp + 0x30], rax
mov eax, dword [rsi + 0x100]
lea rdx, str.connect_to__s_port__u_from__s_port__d_failed:__s
mov dword [rsp + 0x28], eax
lea rax, [rsi + 0xce]
mov qword [rsp + 0x20], rax
call sym.Curl_infof
jmp 0x14003aa0e
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x14003a830
mov r13, qword [rsi + 0x98]
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x60], 4
call qword [sym.imp.KERNEL32.dll_SleepEx]
lea rax, [rsp + 0x60]
lea r9, [rsp + 0x5c]
mov rcx, r13
mov qword [rsp + 0x20], rax
mov r8d, 0x1007
mov edx, 0xffff
call qword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x14003abf0
mov eax, dword [rsp + 0x5c]
mov dword [rsi + 0x14c], eax
mov r13d, 7
jmp 0x14003aa06
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x14003abdc
call sym.Curl_multi_closed
mov rcx, r14
mov edx, 1
call sym.Curl_set_in_callback
mov rcx, qword [r12 + 0x28]
mov rdx, r15
call qword [r12 + 0x20]
xor edx, edx
mov rcx, r14
call sym.Curl_set_in_callback
jmp 0x14003aa45
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, qword [r12 + 0x10]
mov rdx, r14
mov edi, eax
call sym.set_local_ip.isra.0
test r14, r14
je 0x14003aa60
test byte [r14 + 0xa47], 0x10
je 0x14003aa60
or r15d, 0xffffffff
jmp 0x14003a93f