Function at 0x43d8c0
Capabilities:
Connect socket
Get local ipv4 addresses
Get socket information
Set socket configuration

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x388
mov rbp, qword [rcx]
movsxd r8, r8d
lea r12, [rsp + 0x1f0]
lea r9, [rsp + 0xb0]
lea r13, [rcx + r8*8]
mov rbx, rcx
mov r8, r12
mov qword [r13 + 0x460], 0xffffffffffffffff
call sym.Curl_socket
test eax, eax
mov esi, eax
je 0x43d920
mov eax, esi
add rsp, 0x388
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r15, [rsp + 0xc0]
mov edx, dword [rsp + 0x1fc]
lea rcx, [r12 + 0x10]
lea r9, [rsp + 0xa8]
mov r8, r15
call sym.Curl_addr2string
test al, al
je 0x43dc80
mov r9d, dword [rsp + 0xa8]
lea rdx, str.__Trying__s:_ld..._n
mov r8, r15
mov rcx, rbp
call sym.Curl_infof
mov eax, dword [rsp + 0x1f0]
cmp eax, 2
je 0x43db01
cmp eax, 0x17
je 0x43db01
mov rcx, qword [rsp + 0xb0]
call sym.Curl_sndbufset
cmp qword [rbp + 0x708], 0
je 0x43d9d8
mov edx, 1
mov rcx, rbp
call sym.Curl_set_in_callback
xor r8d, r8d
mov rcx, qword [rbp + 0x710]
mov rdx, qword [rsp + 0xb0]
call qword [rbp + 0x708]
xor edx, edx
mov esi, eax
mov rcx, rbp
call sym.Curl_set_in_callback
cmp esi, 2
je 0x43df55
test esi, esi
jne 0x43dee0
mov byte [rsp + 0x7b], 0
mov eax, dword [rsp + 0x1f0]
cmp eax, 2
je 0x43dcd0
cmp eax, 0x17
je 0x43dcd0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x58]
mov edx, 1
call sym.curlx_nonblock
lea rcx, [rsp + 0x90]
call sym.Curl_now
cmp dword [rbx + 0x580], 1
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov qword [rbx + 0x570], rax
mov qword [rbx + 0x578], rdx
jle 0x43da70
mov rdx, qword [rbx + 0x588]
mov r8d, 3
mov rcx, rbp
call sym.Curl_expire
mov rdx, qword [rbx + 0x590]
mov r8d, 4
mov rcx, rbp
call sym.Curl_expire
cmp byte [rsp + 0x7b], 0
jne 0x43dc60
cmp dword [rbx + 0x32c], 4
je 0x43dc60
test byte [rbx + 0x56e], 2
je 0x43dc32
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0xb
mov esi, eax
je 0x43dc60
jl 0x43dab7
lea eax, [rax - 0x2733]
cmp eax, 1
jbe 0x43dc60
lea rdx, [rsp + 0x280]
mov ecx, esi
mov r8d, 0x100
call sym.Curl_strerror
lea rdx, str.Immediate_connect_fail_for__s:__s_n
mov r9, rax
mov r8, r15
mov rcx, rbp
call sym.Curl_infof
mov rdx, qword [rsp + 0xb0]
mov dword [rbp + 0x1138], esi
mov rcx, rbx
mov esi, 7
call sym.Curl_closesocket
jmp 0x43d909
cmp dword [rsp + 0x1f4], 1
jne 0x43d97f
test byte [rbp + 0xe83], 0x40
jne 0x43df60
mov rcx, qword [rsp + 0xb0]
call sym.Curl_sndbufset
cmp byte [rbp + 0xe84], 0
jns 0x43d98c
mov rsi, qword [rsp + 0xb0]
mov dword [rsp + 0xf0], 1
lea r9, [rsp + 0xf0]
mov dword [rsp + 0x20], 4
mov r8d, 8
mov edx, 0xffff
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
js 0x43e243
mov dword [rsp + 0x280], 1
mov ecx, dword [rbp + 0xe0c]
call sym.curlx_sltosi
imul eax, eax, 0x3e8
mov dword [rsp + 0x284], eax
mov ecx, dword [rbp + 0xe10]
mov dword [rsp + 0xf0], eax
call sym.curlx_sltosi
imul eax, eax, 0x3e8
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 0xc
lea r8, [rsp + 0x280]
mov edx, 0x98000004
mov rcx, rsi
mov dword [rsp + 0xf0], eax
mov dword [rsp + 0x288], eax
lea rax, [rsp + 0x170]
mov qword [rsp + 0x30], rax
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x43d98c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.Failed_to_set_SIO_KEEPALIVE_VALS_on_fd__d:__d_n
mov r9d, eax
mov r8d, esi
mov rcx, rbp
call sym.Curl_infof
jmp 0x43d98c
lea rdx, [r12 + 0x10]
mov r8d, dword [rsp + 0x1fc]
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x43da95
nop word cs:[rax + rax]
mov rax, qword [rsp + 0xb0]
xor esi, esi
mov qword [r13 + 0x460], rax
jmp 0x43d909
mov rdi, qword [sym.imp.msvcrt.dll__errno]
call rdi
mov ecx, dword [rax]
lea rdx, [rsp + 0x280]
mov r8d, 0x100
call sym.Curl_strerror
mov r12, rax
call rdi
mov r8d, dword [rax]
lea rdx, str.sa_addr_inet_ntop___failed_with_errno__d:__s
mov rcx, rbp
mov r9, r12
call sym.Curl_failf
mov rdx, qword [rsp + 0xb0]
mov rcx, rbx
call sym.Curl_closesocket
jmp 0x43d909
lea rcx, [r12 + 0x10]
call sym.Curl_ipv6_scope
mov edx, eax
mov rax, qword [rsp + 0xb0]
mov r10d, dword [rsp + 0x1f0]
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0x58], rax
mov rax, qword [rbx]
mov r11, qword [rax + 0xb68]
mov qword [rsp + 0x60], rax
movzx r14d, word [rax + 0x6c0]
test r11, r11
jne 0x43dd23
test r14w, r14w
je 0x43da03
mov rax, qword [rsp + 0x60]
lea rdi, [rsp + 0xf0]
xor esi, esi
mov ecx, 0x10
test r11, r11
mov dword [rsp + 0x80], edx
mov qword [rsp + 0x68], rdi
mov eax, dword [rax + 0x6c4]
mov dword [rsp + 0x7c], eax
mov rax, rsi
rep stosq qword [rdi], rax
je 0x43dfd1
mov rcx, r11
mov dword [rsp + 0x70], r10d
mov qword [rsp + 0x88], r11
call sym.strlen
cmp rax, 0xfe
mov r10d, dword [rsp + 0x70]
ja 0x43dfd1
lea rdi, [rsp + 0x288]
mov rax, rsi
mov ecx, 0x1f
mov r11, qword [rsp + 0x88]
lea rsi, [0x00483c2f]
mov qword [rsp + 0x280], 0
rep stosq qword [rdi], rax
mov ecx, 3
mov edx, dword [rsp + 0x80]
mov rdi, r11
repe cmpsb byte [rsi], byte [rdi]
jne 0x43e0c3
lea rdi, [rsp + 0x280]
mov r8d, dword [rbx + 0x328]
add r11, 3
mov dword [rsp + 0x28], 0x100
mov r9, r11
mov ecx, r10d
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x70], r11
mov dword [rsp + 0x80], r10d
call sym.Curl_if2ip
cmp eax, 1
je 0x43e2b1
mov r11, qword [rsp + 0x70]
jb 0x43e30c
cmp eax, 2
mov r10d, dword [rsp + 0x80]
jne 0x43e2bb
mov rcx, qword [rsp + 0x60]
lea rdx, str.Local_Interface__s_is_ip__s_using_address_family__i_n
mov dword [rsp + 0x20], r10d
mov r9, rdi
mov r8, r11
mov dword [rsp + 0x70], r10d
call sym.Curl_infof
mov r10d, dword [rsp + 0x70]
cmp r10d, 0x17
je 0x43e32a
cmp r10d, 2
je 0x43defa
xor edi, edi
mov rax, qword [sym.imp.WS2_32.dll_ntohs]
mov qword [rsp + 0x80], rbp
mov rsi, qword [sym.imp.WS2_32.dll_bind]
mov ebp, dword [rsp + 0x7c]
mov qword [rsp + 0x70], rax
nop
mov r8d, edi
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
call rsi
test eax, eax
jns 0x43dff0
sub ebp, 1
test ebp, ebp
jle 0x43e061
mov rcx, qword [rsp + 0x60]
lea rdx, str.Bind_to_local_port__hu_failed__trying_next_n
movzx r8d, r14w
add r14d, 1
call sym.Curl_infof
cmp word [rsp + 0xf0], 2
movzx ecx, r14w
je 0x43df41
call qword [sym.imp.WS2_32.dll_ntohs]
mov word [rsp + 0xf2], ax
jmp 0x43de80
mov rdx, qword [rsp + 0xb0]
mov rcx, rbx
mov esi, 0x2a
call sym.Curl_closesocket
jmp 0x43d909
mov rax, qword [rsp + 0x68]
mov rdx, rdi
mov ecx, 2
lea r8, [rax + 4]
call sym.Curl_inet_pton
test eax, eax
jle 0x43de5e
mov eax, 2
movzx ecx, r14w
mov edi, 0x10
mov word [rsp + 0xf0], ax
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0xf2], ax
jmp 0x43de60
mov rax, qword [rsp + 0x70]
call rax
mov word [rsp + 0xf2], ax
jmp 0x43de80
mov byte [rsp + 0x7b], 1
jmp 0x43d9dd
mov rsi, qword [rbx]
mov dword [rsp + 0x170], 1
lea r9, [rsp + 0x170]
mov dword [rsp + 0x20], 4
mov r8d, 1
mov edx, 6
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x43db1c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0x280]
mov r8d, 0x100
mov ecx, eax
call sym.Curl_strerror
lea rdx, str.Could_not_set_TCP_NODELAY:__s_n
mov r8, rax
mov rcx, rsi
call sym.Curl_infof
jmp 0x43db1c
cmp r10d, 0x17
je 0x43e2e3
xor edi, edi
cmp r10d, 2
jne 0x43de60
jmp 0x43df18
lea rdx, [rsp + 0x170]
xor eax, eax
mov ecx, 0x10
mov rbp, qword [rsp + 0x80]
mov dword [rsp + 0xac], pe_nt_image_headers64
lea r8, [rsp + 0xac]
mov rdi, rdx
rep stosq qword [rdi], rax
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
js 0x43e25a
mov rcx, qword [rsp + 0x60]
lea rdx, str.Local_port:__hu_n
movzx r8d, r14w
call sym.Curl_infof
mov rax, qword [rsp + 0xb0]
or byte [rbx + 0x56d], 0x80
mov qword [rsp + 0x58], rax
jmp 0x43da03
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rdi, qword [rsp + 0x60]
mov esi, eax
lea rdx, [rsp + 0x280]
mov ecx, esi
mov r8d, 0x100
mov dword [rdi + 0x1138], esi
call sym.Curl_strerror
lea rdx, str.bind_failed_with_errno__d:__s
mov r8d, esi
mov r9, rax
mov rcx, rdi
mov esi, 0x2d
call sym.Curl_failf
mov rdx, qword [rsp + 0xb0]
mov rcx, rbx
call sym.Curl_closesocket
cmp esi, 1
mov eax, 7
cmove esi, eax
jmp 0x43d909
lea rsi, str.host_
mov ecx, 5
mov rdi, r11
repe cmpsb byte [rsi], byte [rdi]
je 0x43e23a
lea rdi, [rsp + 0x280]
mov r8d, dword [rbx + 0x328]
mov dword [rsp + 0x28], 0x100
mov r9, r11
mov ecx, r10d
mov qword [rsp + 0x80], r11
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x70], r10d
call sym.Curl_if2ip
cmp eax, 1
je 0x43e2b1
cmp eax, 2
mov r10d, dword [rsp + 0x70]
mov r11, qword [rsp + 0x80]
je 0x43de24
nop dword [rax]
cmp r10d, 2
mov esi, dword [rbx + 0x5a8]
je 0x43e39e
cmp r10d, 0x17
je 0x43e3ad
lea rdi, [rsp + 0xb8]
xor r9d, r9d
xor r8d, r8d
mov rdx, r11
mov rcx, rbx
mov dword [rsp + 0x80], r10d
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x70], r11
call sym.Curl_resolv
cmp eax, 1
mov r11, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x80]
je 0x43e3c6
mov rax, qword [rsp + 0xb8]
mov dword [rsp + 0x70], r10d
mov dword [rbx + 0x5a8], esi
test rax, rax
je 0x43e2bb
mov rcx, qword [rax]
lea rdi, [rsp + 0x280]
mov r8d, 0x100
mov qword [rsp + 0x80], r11
mov rdx, rdi
call sym.Curl_printable_address
mov rax, qword [rsp + 0xb8]
mov r10d, dword [rsp + 0x70]
lea rdx, str.Name__s_family__i_resolved_to__s_family__i_n
mov rsi, qword [rsp + 0x60]
mov r11, qword [rsp + 0x80]
mov rax, qword [rax]
mov r9d, r10d
mov rcx, rsi
mov r8, r11
mov eax, dword [rax + 4]
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], eax
call sym.Curl_infof
mov rdx, qword [rsp + 0xb8]
mov rcx, rsi
mov esi, 1
call sym.Curl_resolv_unlock
mov rax, qword [rsp + 0xb8]
mov r10d, dword [rsp + 0x70]
mov rax, qword [rax]
cmp r10d, dword [rax + 4]
jne 0x43e0a3
jmp 0x43de4a
add r11, 5
jmp 0x43e130
lea rdx, str.Failed_to_set_SO_KEEPALIVE_on_fd__d_n
mov r8, rsi
mov rcx, rbp
call sym.Curl_infof
jmp 0x43d98c
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rdi, qword [rsp + 0x60]
mov esi, eax
lea rdx, [rsp + 0x280]
mov ecx, esi
mov r8d, 0x100
mov dword [rdi + 0x1138], esi
call sym.Curl_strerror
lea rdx, str.getsockname___failed_with_errno__d:__s
mov r8d, esi
mov r9, rax
mov rcx, rdi
mov esi, 0x2d
call sym.Curl_failf
mov rdx, qword [rsp + 0xb0]
mov rcx, rbx
call sym.Curl_closesocket
jmp 0x43d909
mov esi, 1
jmp 0x43e0a3
mov rax, qword [rsp + 0x60]
lea rdx, str.Couldnt_bind_to__s
mov r8, r11
mov esi, 0x2d
and byte [rax + 0x15c8], 0xf7
mov rcx, rax
call sym.Curl_failf
jmp 0x43e0a3
mov edx, 0x17
movzx ecx, r14w
mov edi, 0x1c
mov word [rsp + 0xf0], dx
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0xf2], ax
jmp 0x43de60
mov rcx, qword [rsp + 0x60]
lea rdx, str.Couldnt_bind_to_interface__s
mov r8, r11
mov esi, 0x2d
call sym.Curl_failf
jmp 0x43e0a3
mov edx, 0x25
mov rcx, rdi
call sym.strchr
test rax, rax
je 0x43e3f0
lea rsi, [rax + 1]
mov byte [rax], 0
mov rax, qword [rsp + 0x68]
mov rdx, rdi
mov ecx, 0x17
lea r8, [rax + 8]
call sym.Curl_inet_pton
test eax, eax
jle 0x43e3bc
mov ecx, 0x17
mov word [rsp + 0xf0], cx
movzx ecx, r14w
call qword [sym.imp.WS2_32.dll_htons]
test rsi, rsi
mov word [rsp + 0xf2], ax
je 0x43e3bc
mov rcx, rsi
mov edi, 0x1c
call sym.atoi
mov dword [rsp + 0x108], eax
jmp 0x43de60
mov dword [rbx + 0x5a8], 1
jmp 0x43e14a
mov dword [rbx + 0x5a8], 2
jmp 0x43e14a
mov edi, 0x1c
jmp 0x43de60
mov rdx, rdi
mov rcx, rbx
mov qword [rsp + 0x80], r11
mov dword [rsp + 0x70], r10d
call sym.Curl_resolver_wait_resolv
mov r11, qword [rsp + 0x80]
mov r10d, dword [rsp + 0x70]
jmp 0x43e18b
xor esi, esi
jmp 0x43e347