Function at 0x44d740
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, 0x348
mov r12, qword [rcx]
xor esi, esi
lea r13, [rsp + 0x1b0]
mov qword [r8], 0xffffffffffffffff
mov byte [r9], 0
lea r9, [rsp + 0xa0]
mov r14, r8
mov rbx, rcx
mov r8, r13
call fcn.0044d670
test eax, eax
je 0x44d7a0
mov eax, esi
add rsp, 0x348
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdi, [rbx + 0xde]
lea rcx, [r13 + 0x10]
lea r8, [rbx + 0x10c]
mov rdx, rdi
call fcn.0044d080
test al, al
je 0x44dac0
mov rax, qword [rbx + 0xde]
lea r15, [rbx + 0x60]
lea rdx, str.__Trying__s..._n
mov rcx, r12
mov r8, r15
mov qword [rbx + 0x60], rax
mov rax, qword [rdi + 8]
mov qword [r15 + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [r15 + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [r15 + 0x18], rax
mov rax, qword [rdi + 0x20]
mov qword [r15 + 0x20], rax
mov eax, dword [rdi + 0x28]
mov dword [r15 + 0x28], eax
movzx eax, word [rdi + 0x2c]
mov word [r15 + 0x2c], ax
call fcn.0044e9e0
mov rcx, rbx
call fcn.0044d1d0
cmp byte [r12 + 0x45e], 0
jne 0x44da50
mov rcx, qword [rsp + 0xa0]
call fcn.0044d440
cmp byte [r12 + 0x634], 0
jne 0x44d950
mov rax, qword [r12 + 0x250]
test rax, rax
je 0x44d879
xor r8d, r8d
mov rcx, qword [r12 + 0x258]
mov rdx, qword [rsp + 0xa0]
call rax
cmp eax, 2
je 0x44dab0
test eax, eax
jne 0x44dc02
mov byte [rsp + 0x67], 0
mov rax, qword [rsp + 0xa0]
mov ecx, 0x1f
mov r11d, dword [rsp + 0x1b0]
mov qword [rsp + 0xa8], 0
mov rsi, rax
mov qword [rsp + 0x58], rax
mov rax, qword [rbx]
mov edi, dword [rax + 0x20c]
movzx ebp, word [rax + 0x208]
mov r10, qword [rax + 0x4a0]
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x240], 0
mov dword [rsp + 0x68], edi
lea rdi, [rsp + 0x248]
test bp, bp
rep stosq qword [rdi], rax
jne 0x44db00
test r10, r10
mov rcx, rsi
jne 0x44db00
mov edx, 1
call fcn.0045ed90
call fcn.00458870
cmp dword [rbx + 0x2bc], 1
mov qword [rbx + 0x2b4], rax
jle 0x44d922
mov edx, dword [rbx + 0x2c0]
mov rcx, r12
call fcn.00456e10
cmp byte [rsp + 0x67], 0
jne 0x44d936
cmp dword [rbx + 0x94], 1
je 0x44dd2e
mov rax, qword [rsp + 0xa0]
xor esi, esi
mov qword [r14], rax
jmp 0x44d785
mov rsi, qword [rsp + 0xa0]
mov dword [rsp + 0xb0], 1
lea r9, [rsp + 0xb0]
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 0x44df1c
mov dword [rsp + 0x240], 1
mov ecx, dword [r12 + 0x638]
call fcn.0045ee20
imul eax, eax, 0x3e8
mov dword [rsp + 0x244], eax
mov ecx, dword [r12 + 0x63c]
mov dword [rsp + 0xb0], eax
call fcn.0045ee20
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 + 0x240]
mov edx, 0x98000004
mov rcx, rsi
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0x248], eax
lea rax, [rsp + 0x130]
mov qword [rsp + 0x30], rax
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x44d846
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, r12
call fcn.0044e9e0
jmp 0x44d846
mov rsi, qword [rbx]
lea r9, [rsp + 0x240]
mov r8d, 1
mov edx, 6
mov rcx, qword [rsp + 0xa0]
movzx eax, byte [rsi + 0x45e]
mov dword [rsp + 0x20], 4
mov dword [rsp + 0x240], eax
call qword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
js 0x44df33
lea rdx, str.TCP_NODELAY_set_n
mov rcx, rsi
call fcn.0044e9e0
jmp 0x44d82a
mov byte [rsp + 0x67], 1
jmp 0x44d87e
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov rcx, rbx
mov edx, eax
mov edi, eax
call fcn.0045d930
lea rdx, str.sa_addr_inet_ntop___failed_with_errno__d:__s
mov rcx, r12
mov r9, rax
mov r8d, edi
call fcn.0044ea90
mov rdx, qword [rsp + 0xa0]
mov rcx, rbx
call fcn.0044d600
jmp 0x44d785
lea rdi, [rsp + 0xb0]
xor eax, eax
mov ecx, 0x10
test r10, r10
mov qword [rsp + 0x70], rdi
rep stosq qword [rdi], rax
je 0x44dc20
mov rcx, r10
mov dword [rsp + 0x80], r11d
mov qword [rsp + 0x78], r10
call sub.msvcrt.dll_strlen
cmp rax, 0xfe
mov r10, qword [rsp + 0x78]
mov r11d, dword [rsp + 0x80]
ja 0x44dc20
lea rsi, [0x0065de67]
mov ecx, 3
mov rdi, r10
repe cmpsb byte [rsi], byte [rdi]
jne 0x44de27
add r10, 3
mov edi, 1
lea rsi, [rsp + 0x240]
mov edx, dword [rbx + 0x90]
mov dword [rsp + 0x20], 0x100
mov r8, r10
mov ecx, r11d
mov qword [rsp + 0x80], r10
mov r9, rsi
mov dword [rsp + 0x78], r11d
call fcn.0045eed0
cmp eax, 1
je 0x44dfad
mov r11d, dword [rsp + 0x78]
mov r10, qword [rsp + 0x80]
jb 0x44e06d
cmp eax, 2
jne 0x44de07
mov rcx, qword [rsp + 0x50]
lea rdx, str.Local_Interface__s_is_ip__s_using_address_family__i_n
mov dword [rsp + 0x20], r11d
mov r9, rsi
mov r8, r10
mov dword [rsp + 0x78], r11d
call fcn.0044e9e0
mov r11d, dword [rsp + 0x78]
cmp r11d, 0x17
je 0x44e025
cmp r11d, 2
je 0x44dd65
xor esi, esi
jmp 0x44dc36
mov rdx, qword [rsp + 0xa0]
mov rcx, rbx
mov esi, 0x2a
call fcn.0044d600
jmp 0x44d785
cmp r11d, 0x17
je 0x44dfb7
xor esi, esi
cmp r11d, 2
je 0x44dfe1
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x80], r15
mov r12d, dword [rsp + 0x68]
mov rdi, qword [sym.imp.WS2_32.dll_bind]
mov qword [rsp + 0x68], r14
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x70]
mov qword [rsp + 0x70], r13
mov r13, qword [rsp + 0x58]
jmp 0x44dca4
sub r12d, 1
test r12d, r12d
jle 0x44ddb0
lea rdx, str.Bind_to_local_port__hu_failed__trying_next_n
movzx r8d, bp
mov rcx, r15
add ebp, 1
call fcn.0044e9e0
movzx ecx, bp
call qword [sym.imp.WS2_32.dll_ntohs]
mov word [rsp + 0xb2], ax
mov r8d, esi
mov rdx, r14
mov rcx, r13
call rdi
test eax, eax
js 0x44dc70
lea rdx, [rsp + 0x130]
xor eax, eax
mov ecx, 0x10
mov r12, qword [rsp + 0x78]
mov r15, qword [rsp + 0x80]
lea r8, [rsp + 0x9c]
mov rdi, rdx
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x70]
rep stosq qword [rdi], rax
mov dword [rsp + 0x9c], pe_nt_image_headers64
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
js 0x44df5a
mov rcx, qword [rsp + 0x50]
lea rdx, str.Local_port:__hu_n
movzx r8d, bp
call fcn.0044e9e0
mov byte [rbx + 0x2af], 1
mov rcx, qword [rsp + 0xa0]
jmp 0x44d8f5
lea rdx, [r13 + 0x10]
mov r8d, dword [rsp + 0x1bc]
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x44e094
cmp dword [rsp + 0x1b0], 0x17
sete byte [rbx + 0x29f]
jmp 0x44d936
mov rax, qword [rsp + 0x70]
mov rdx, rsi
mov ecx, 2
lea r8, [rax + 4]
call fcn.0045efe0
test eax, eax
jle 0x44dbfe
mov r9d, 2
movzx ecx, bp
mov esi, 0x10
mov word [rsp + 0xb0], r9w
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0xb2], ax
jmp 0x44dc36
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rdi, qword [rsp + 0x50]
mov esi, eax
mov rcx, rbx
mov edx, esi
mov dword [rdi + 0x880c], esi
call fcn.0045d930
lea rdx, str.bind_failed_with_errno__d:__s
mov r8d, esi
mov r9, rax
mov rcx, rdi
mov esi, 0x2d
call fcn.0044ea90
mov rdx, qword [rsp + 0xa0]
mov rcx, rbx
call fcn.0044d600
cmp esi, 1
mov eax, 0
cmove esi, eax
jmp 0x44d785
test dil, dil
je 0x44de42
mov rcx, qword [rsp + 0x50]
lea rdx, str.Couldnt_bind_to__s
mov r8, r10
mov esi, 0x2d
call fcn.0044ea90
jmp 0x44dde7
lea rsi, str.host_
mov ecx, 5
mov rdi, r10
repe cmpsb byte [rsi], byte [rdi]
jne 0x44dfa6
add r10, 5
cmp r11d, 2
mov esi, dword [rbx + 0x2d8]
je 0x44e007
cmp r11d, 0x17
je 0x44e016
lea r9, [rsp + 0xa8]
xor r8d, r8d
mov rdx, r10
mov rcx, rbx
mov qword [rsp + 0x78], r10
mov dword [rsp + 0x80], r11d
call fcn.0044f370
mov rax, qword [rsp + 0xa8]
mov dword [rbx + 0x2d8], esi
mov r10, qword [rsp + 0x78]
test rax, rax
je 0x44de0c
lea rsi, [rsp + 0x240]
mov rcx, qword [rax]
mov r8d, 0x100
mov qword [rsp + 0x88], r10
mov rdx, rsi
call fcn.0044f1d0
mov rax, qword [rsp + 0xa8]
mov r11d, dword [rsp + 0x80]
lea rdx, str.Name__s_family__i_resolved_to__s_family__i_n
mov r10, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x50]
mov rax, qword [rax]
mov r9d, r11d
mov dword [rsp + 0x78], r11d
mov r8, r10
mov rcx, rdi
mov eax, dword [rax + 4]
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x28], eax
call fcn.0044e9e0
mov rdx, qword [rsp + 0xa8]
mov rcx, rdi
call fcn.0044f590
mov r11d, dword [rsp + 0x78]
jmp 0x44dbea
lea rdx, str.Failed_to_set_SO_KEEPALIVE_on_fd__d_n
mov r8, rsi
mov rcx, r12
call fcn.0044e9e0
jmp 0x44d846
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rbx
mov edx, eax
call fcn.0045d930
lea rdx, str.Could_not_set_TCP_NODELAY:__s_n
mov r8, rax
mov rcx, rsi
call fcn.0044e9e0
jmp 0x44d82a
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rdi, qword [rsp + 0x50]
mov esi, eax
mov rcx, rbx
mov edx, esi
mov dword [rdi + 0x880c], esi
call fcn.0045d930
lea rdx, str.getsockname___failed_with_errno__d:__s
mov r8d, esi
mov r9, rax
mov rcx, rdi
mov esi, 0x2d
call fcn.0044ea90
mov rdx, qword [rsp + 0xa0]
mov rcx, rbx
call fcn.0044d600
jmp 0x44d785
xor edi, edi
jmp 0x44db6e
mov esi, 1
jmp 0x44dde7
mov r8d, 0x17
movzx ecx, bp
mov esi, 0x1c
mov word [rsp + 0xb0], r8w
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0xb2], ax
jmp 0x44dc36
mov ecx, 2
mov sil, 0x10
mov word [rsp + 0xb0], cx
movzx ecx, bp
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0xb2], ax
jmp 0x44dc36
mov dword [rbx + 0x2d8], 1
jmp 0x44de5c
mov dword [rbx + 0x2d8], 2
jmp 0x44de5c
mov rax, qword [rsp + 0x70]
mov rdx, rsi
mov ecx, 0x17
mov esi, 0x1c
lea r8, [rax + 8]
call fcn.0045efe0
test eax, eax
jle 0x44dc36
mov r10d, 0x17
movzx ecx, bp
mov word [rsp + 0xb0], r10w
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0xb2], ax
jmp 0x44dc36
test dil, dil
je 0x44de42
mov rcx, qword [rsp + 0x50]
lea rdx, str.Couldnt_bind_to_interface__s
mov r8, r10
mov esi, 0x2d
call fcn.0044ea90
jmp 0x44dde7
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp dword [rsp + 0x1b0], 0x17
mov esi, eax
sete byte [rbx + 0x29f]
cmp eax, 0xb
je 0x44d936
jl 0x44e0c5
lea eax, [rax - 0x2733]
cmp eax, 1
jbe 0x44d936
mov edx, esi
mov rcx, rbx
call fcn.0045d930
lea rdx, str.Failed_to_connect_to__s:__s
mov r9, rax
mov r8, r15
mov rcx, r12
call fcn.0044ea90
mov rdx, qword [rsp + 0xa0]
mov dword [r12 + 0x880c], esi
mov rcx, rbx
xor esi, esi
call fcn.0044d600
jmp 0x44d785