Function at 0x14017c950
Capabilities:
Convert ip address from string
Get local ipv4 addresses
Get socket information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x5d0]
sub rsp, 0x6d0
mov rax, qword [0x1402e7900]
xor rax, rsp
mov qword [rbp + 0x5c0], rax
mov r13, qword [rcx + 0x20]
xor eax, eax
mov r14, rcx
mov qword [rsp + 0x58], 0xffffffffffffffff
xor ecx, ecx
mov qword [rbp + 0x10], rax
xorps xmm0, xmm0
mov dword [rbp + 0x18], eax
mov ebx, edx
mov word [rbp + 0x1c], ax
mov rsi, qword [r14 + 0x780]
mov r12d, ecx
mov byte [rbp + 0x1e], al
movzx r15d, cx
mov qword [rsp + 0x60], rcx
mov edi, ecx
mov word [rsp + 0x50], cx
mov byte [rsp + 0x40], 1
mov qword [rsp + 0x48], rcx
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
test rsi, rsi
je 0x14017cbc6
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rsi + rax], cl
jne 0x14017c9e3
cmp rax, 1
jbe 0x14017cbc6
movzx eax, byte [rsi]
cmp al, 0x5b
jne 0x14017ca22
lea r15, [rsi + 1]
mov edx, 0x5d
mov rcx, r15
call fcn.1401d7c4c
mov rsi, rax
test rax, rax
je 0x14017ca6f
mov rdi, rax
mov qword [rsp + 0x48], r15
sub rdi, r15
jmp 0x14017ca7d
cmp al, 0x3a
je 0x14017ca7d
mov edx, 0x3a
mov rcx, rsi
call fcn.1401d7c4c
mov qword [rsp + 0x48], rsi
mov r15, rax
mov r9, rsi
test rax, rax
je 0x14017cb81
mov rdi, rax
lea r8, [rsp + 0x78]
mov rdx, rsi
mov ecx, reloc.WS2_32.dll_socket
sub rdi, rsi
call qword [sym.imp.WS2_32.dll_inet_pton]
mov rsi, r15
mov rdx, r12
cmp eax, 1
cmove rsi, rdx
jmp 0x14017ca71
xor edx, edx
movzx eax, dx
movzx r15d, dx
test rsi, rsi
je 0x14017cadf
mov edx, 0x3a
mov rcx, rsi
call fcn.1401d7c4c
xor edx, edx
mov rsi, rax
mov eax, edx
mov r15d, edx
test rsi, rsi
je 0x14017cadf
lea rcx, [rsi + 1]
lea r8d, [rdx + 0xa]
call fcn.1401dddf8
mov ecx, eax
call fcn.1401477d0
mov edx, 0x2d
mov rcx, rsi
movzx r15d, ax
call fcn.1401d7c4c
xor edx, edx
test rax, rax
je 0x14017cb78
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.1401dddf8
mov ecx, eax
call fcn.1401477d0
xor edx, edx
mov r9, qword [rsp + 0x48]
cmp r15w, ax
mov ecx, edx
cmovbe cx, ax
cmovbe dx, r15w
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x50], edx
test rdi, rdi
je 0x14017cbbb
cmp rdi, 0x32
jae 0x14017d072
mov r8, rdi
lea rcx, [rbp + 0x20]
mov rdx, r9
call fcn.14021a050
mov byte [rbp + rdi + 0x20], r12b
mov rcx, qword [r13 + 0x38]
add rcx, 0x10
call fcn.140192b60
mov r8d, dword [r13 + 0x76c]
lea rcx, [rbp + 0x1b0]
mov edx, eax
mov dword [rsp + 0x28], 0x401
mov rax, qword [r13 + 0x38]
lea r9, [rbp + 0x20]
mov qword [rsp + 0x20], rcx
mov ecx, dword [rax]
call fcn.1400f5740
mov ecx, eax
test eax, eax
je 0x14017cba7
sub ecx, 1
je 0x14017d072
cmp ecx, 1
jne 0x14017cbab
lea r12, [rbp + 0x1b0]
jmp 0x14017cbab
movzx eax, r15w
jmp 0x14017cadf
mov rdi, 0xffffffffffffffff
nop dword [rax + rax]
inc rdi
cmp byte [rsi + rdi], r12b
jne 0x14017cb90
xor edx, edx
movzx eax, dx
movzx r15d, dx
jmp 0x14017cae4
lea r12, [rbp + 0x20]
mov r15d, dword [rsp + 0x48]
test r12, r12
jne 0x14017cc51
jmp 0x14017cbc6
mov dword [rsp + 0x50], edx
mov r15d, ecx
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x44], 0x80
lea r8, [rsp + 0x44]
mov rcx, qword [r13 + 0x220]
lea rdx, [rsp + 0x70]
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x14017cc12
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r8d, 0x100
lea rdx, [rbp + 0xb0]
mov ecx, eax
call fcn.14016c970
mov r8, rax
lea rdx, str.getsockname___failed:__s
jmp 0x14017d06a
movzx eax, word [rsp + 0x70]
lea rcx, [rsp + 0x78]
cmp eax, 0x17
lea rdx, [rsp + 0x74]
mov r9d, 0x401
lea r8, [rbp + 0x1b0]
cmove rdx, rcx
mov ecx, eax
call sub.WS2_32.dll_inet_ntop
test rax, rax
je 0x14017d072
lea r12, [rbp + 0x1b0]
mov byte [rsp + 0x40], 0
lea rax, [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r12
mov rcx, r14
call fcn.14016e220
cmp eax, 1
jne 0x14017cc7e
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.140158ea0
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x14017d060
mov rsi, qword [rdx]
mov rcx, r14
call fcn.14016e810
test rsi, rsi
je 0x14017d060
movzx r9d, byte [r13 + 0x776]
lea rax, [rsp + 0x58]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, r14
call fcn.140167ad0
test eax, eax
je 0x14017ccf6
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rsi, qword [rsi + 0x28]
test rsi, rsi
jne 0x14017cca0
mov r8d, 0x100
lea rdx, [rbp + 0xb0]
mov ecx, eax
call fcn.14016c970
mov r8, rax
lea rdx, str.socket_failure:__s
jmp 0x14017d06a
movsxd r8, dword [rsi + 0x10]
lea rcx, [rsp + 0x70]
mov rdx, qword [rsi + 0x20]
call fcn.14021a050
mov r12d, dword [rsp + 0x50]
movzx edi, r12w
mov eax, dword [rsi + 0x10]
mov dword [rsp + 0x44], eax
cmp r12w, r15w
ja 0x14017cdd5
movzx ecx, di
call qword [sym.imp.WS2_32.dll_htons]
mov r8d, dword [rsp + 0x44]
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
mov word [rsp + 0x72], ax
call qword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x14017ce18
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp byte [rsp + 0x40], 0
je 0x14017cdbc
cmp eax, 0x2741
jne 0x14017cdbc
mov r8d, 0x100
lea rdx, [rbp + 0xb0]
mov ecx, eax
call fcn.14016c970
mov r9, rax
movzx r8d, di
lea rdx, str.bind_port_hu__on_non_local_address_failed:__s
mov rcx, r14
call fcn.140147cc0
mov dword [rsp + 0x44], 0x80
lea r8, [rsp + 0x44]
mov rcx, qword [r13 + 0x220]
lea rdx, [rsp + 0x70]
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x14017cbe9
movzx edi, r12w
mov byte [rsp + 0x40], al
jmp 0x14017cdcb
cmp eax, 0x2740
je 0x14017cdc8
cmp eax, 0xd
jne 0x14017cde9
inc di
cmp di, r15w
jbe 0x14017cd22
lea rdx, str.bind___failed__we_ran_out_of_ports
mov rcx, r14
call fcn.140147bd0
jmp 0x14017d072
mov r8d, 0x100
lea rdx, [rbp + 0xb0]
mov ecx, eax
call fcn.14016c970
mov r9, rax
movzx r8d, di
lea rdx, str.bind_port_hu__failed:__s
mov rcx, r14
call fcn.140147bd0
jmp 0x14017d072
cmp di, r15w
ja 0x14017cdd5
mov rcx, qword [rsp + 0x58]
lea r8, [rsp + 0x44]
lea rdx, [rsp + 0x70]
mov dword [rsp + 0x44], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x14017cbe9
mov rcx, qword [rsp + 0x58]
lea edx, [rax + 1]
call qword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x14017ce7e
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r8d, 0x100
lea rdx, [rbp + 0xb0]
mov ecx, eax
call fcn.14016c970
mov r8, rax
lea rdx, str.socket_failure:__s
jmp 0x14017d06a
mov r8d, 0x2f
lea rdx, [rbp - 0x10]
mov rcx, rsi
call fcn.14016e1e0
cmp byte [r13 + 0x351], 0
jne 0x14017ceac
cmp byte [r13 + 0x34c], 0
je 0x14017ceac
mov byte [r13 + 0x351], 1
lea r9, [rsp + 0x58]
mov r8d, 1
mov rdx, r13
mov rcx, r14
call fcn.140167890
mov edi, eax
test eax, eax
jne 0x14017d077
mov qword [rsp + 0x58], 0xffffffffffffffff
cmp ebx, 2
je 0x14017cf2e
movzx ecx, word [rsp + 0x70]
nop
cmp byte [r13 + 0x351], 0
jne 0x14017ceee
test ebx, ebx
je 0x14017cf27
cmp ebx, 1
jne 0x14017cef9
cmp cx, 2
jne 0x14017cf27
movzx eax, cx
cmp eax, 2
je 0x14017cf06
cmp eax, 0x17
jne 0x14017cf27
movzx ecx, word [rsp + 0x72]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r8d, ax
test ebx, ebx
je 0x14017cff6
cmp ebx, 1
je 0x14017cf53
movzx ecx, word [rsp + 0x70]
inc ebx
cmp ebx, 2
jne 0x14017cee0
lea rsi, [r13 + 0x628]
mov dword [rsi + 0x100], ebx
mov rax, qword [r14 + 0x20]
mov byte [rax + 0x736], 0x1c
test edi, edi
je 0x14017d082
jmp 0x14017d077
lea r10, [rbp + 0x60]
mov r9d, 0x2c
lea rdx, [rbp - 0x10]
movzx ecx, byte [rdx]
test cl, cl
je 0x14017cf7d
cmp cl, 0x2e
mov eax, ecx
cmove eax, r9d
mov byte [r10], al
inc r10
add rdx, 1
jne 0x14017cf61
movzx r9d, r8w
mov edx, reloc.WS2_32.dll_sendto
movzx eax, r9b
lea r8, str.__d__d
shr r9d, 8
mov rcx, r10
mov dword [rsp + 0x20], eax
mov byte [r10], 0
call fcn.1401462a0
lea rax, [rbp + 0x60]
mov rcx, r14
lea rsi, [r13 + 0x628]
mov qword [rsp + 0x20], rax
mov rdx, rsi
lea r9, str.PORT
lea r8, [0x14024e588]
call fcn.140197d50
mov edi, eax
test eax, eax
je 0x14017cf35
mov ecx, eax
call fcn.14016cb50
mov r8, rax
lea rdx, str.Failure_sending_PORT_command:__s
mov rcx, r14
call fcn.140147bd0
jmp 0x14017d077
cmp word [rsp + 0x70], 2
lea rsi, [r13 + 0x628]
movzx eax, r8w
lea r9, str.EPRT
mov dword [rsp + 0x30], eax
lea r8, str._s__d_s_hu
mov ecx, 0
lea rax, [rbp - 0x10]
setne cl
mov qword [rsp + 0x28], rax
inc ecx
mov rdx, rsi
mov dword [rsp + 0x20], ecx
mov rcx, r14
call fcn.140197d50
mov edi, eax
test eax, eax
je 0x14017cf35
mov ecx, eax
call fcn.14016cb50
mov r8, rax
lea rdx, str.Failure_sending_EPRT_command:__s
mov rcx, r14
call fcn.140147bd0
jmp 0x14017d077
mov r8, r12
lea rdx, str.failed_to_resolve_the_address_provided_to_PORT:__s
mov rcx, r14
call fcn.140147bd0
mov edi, 0x1e
mov rax, qword [r14 + 0x20]
mov byte [rax + 0x736], 0
mov r8, qword [rsp + 0x58]
cmp r8, 0xffffffffffffffff
je 0x14017d098
mov rdx, r13
mov rcx, r14
call fcn.140167aa0
mov eax, edi
mov rcx, qword [rbp + 0x5c0]
xor rcx, rsp
call fcn.1401d5b70
mov rbx, qword [rsp + 0x720]
add rsp, 0x6d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret