Function at 0x140144bc0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x688
mov rbp, qword [rcx + 0x7c8]
mov r14, qword [rcx + 0x18]
mov qword [rsp + 0x68], 0xffffffffffffffff
mov rbx, rcx
mov r15d, edx
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x8f], 0
mov qword [rsp + 0x97], 0
mov qword [rsp + 0x60], 0
test rbp, rbp
je 0x140144d62
mov rcx, rbp
call sub.msvcrt.dll_strlen
cmp rax, 1
jbe 0x140144d60
mov edx, 0x41
cmp rax, rdx
cmovb rax, rdx
mov edx, 1
lea rcx, [rax + 1]
mov rax, qword [0x14048b5a0]
call qword [rax]
mov rsi, rax
test rax, rax
je 0x1401451f0
movzx r12d, byte [rbp]
cmp r12b, 0x5b
je 0x1401450a0
mov edx, 0x3a
mov rcx, rbp
call sub.msvcrt.dll_strchr
mov rdi, rax
cmp r12b, 0x3a
je 0x140144cde
test rax, rax
je 0x1401451d0
lea r8, [rsp + 0xf0]
mov rdx, rbp
mov ecx, 0x17
call qword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
je 0x1401451d0
mov r8, rdi
mov rdx, rbp
mov rcx, rsi
sub r8, rbp
mov rbp, rdi
call sub.msvcrt.dll_strncpy
mov edx, 0x3a
mov rcx, rbp
call sub.msvcrt.dll_strchr
mov rdi, rax
test rax, rax
je 0x1401451db
lea rcx, [rax + 1]
mov r8d, 0xa
xor edx, edx
call sub.msvcrt.dll_strtoul
mov edx, 0x2d
mov rcx, rdi
mov ebp, eax
mov word [rsp + 0x46], ax
call sub.msvcrt.dll_strchr
mov word [rsp + 0x42], bp
test rax, rax
je 0x140144d48
lea rcx, [rax + 1]
mov r8d, 0xa
xor edx, edx
call sub.msvcrt.dll_strtoul
mov word [rsp + 0x42], ax
cmp ax, bp
jb 0x1401451db
nop dword [rax]
cmp byte [rsi], 0
mov rbp, rsi
je 0x140144d70
mov byte [rsp + 0x45], 1
jmp 0x140144dd9
xor ebp, ebp
xor eax, eax
xor edx, edx
mov word [rsp + 0x42], ax
mov word [rsp + 0x46], dx
mov dword [rsp + 0x5c], pe_nt_image_headers64
mov rcx, qword [r14 + 0x1b8]
lea r8, [rsp + 0x5c]
lea rdx, [rsp + 0xf0]
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x140144f78
movzx ecx, word [rsp + 0xf0]
lea rsi, [rsp + 0x270]
cmp cx, 0x17
je 0x140144f50
lea rdx, [rsp + 0xf4]
mov r9d, 0x401
mov r8, rsi
call qword [sym.imp.WS2_32.dll_inet_ntop]
mov byte [rsp + 0x45], 0
test rax, rax
je 0x140144fa5
lea rdi, [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov qword [rsp + 0x20], rdi
mov rcx, rbx
call fcn.1401522c0
cmp eax, 1
je 0x140145070
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x140145030
mov r12, qword [rdx]
mov rcx, rbx
call fcn.14014bdd0
test r12, r12
je 0x140145030
mov qword [rsp + 0x68], 0xffffffffffffffff
lea rax, [rsp + 0x68]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov r9, qword [r12 + 0x20]
mov rcx, rbx
mov r8d, dword [r12 + 0x10]
mov edx, dword [r12 + 4]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rax
call fcn.1402c3380
test eax, eax
jne 0x140145080
mov rdx, qword [r12 + 0x20]
movsxd r8, dword [r12 + 0x10]
lea r13, [rsp + 0xf0]
mov rcx, r13
call sub.msvcrt.dll_memcpy
mov eax, dword [r12 + 0x10]
movzx edi, word [rsp + 0x46]
movzx esi, word [rsp + 0x46]
mov dword [rsp + 0x5c], eax
cmp word [rsp + 0x42], di
jb 0x140145016
nop dword [rax]
movzx edi, si
mov ecx, edi
call qword [sym.imp.WS2_32.dll_htons]
mov r8d, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x68]
mov rdx, r13
mov word [rsp + 0xf2], ax
call qword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x1401450d8
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2741
jne 0x140144ff8
cmp byte [rsp + 0x45], 0
je 0x140144ff8
lea rsi, [rsp + 0x170]
mov r8d, 0x100
mov ecx, 0x2741
mov rdx, rsi
call fcn.140127c70
mov r8d, edi
lea rdx, str.bind_port_hu__on_non_local_address_failed:__s
mov rcx, rbx
mov r9, rax
call fcn.140123250
mov dword [rsp + 0x5c], pe_nt_image_headers64
lea r8, [rsp + 0x5c]
mov rdx, r13
mov rcx, qword [r14 + 0x1b8]
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x140145050
mov byte [rsp + 0x45], 0
movzx esi, word [rsp + 0x46]
jmp 0x140144ea0
lea rdx, [rsp + 0xf8]
mov r9d, 0x401
mov r8, rsi
mov ecx, 0x17
call qword [sym.imp.WS2_32.dll_inet_ntop]
jmp 0x140144dcb
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0x170]
mov r8d, 0x100
mov ecx, eax
call fcn.140127c70
lea rdx, str.getsockname___failed:__s
mov rcx, rbx
mov r8, rax
call fcn.1401234a0
mov rsi, rbp
mov edi, 0x1e
mov rax, qword [rbx + 0x18]
mov r8, qword [rsp + 0x68]
mov dword [rax + 0x510], 0
cmp r8, 0xffffffffffffffff
je 0x140144fd1
mov rdx, r14
mov rcx, rbx
call fcn.1402c35a0
mov rax, qword [0x14048b5b0]
mov rcx, rsi
call qword [rax]
mov eax, edi
add rsp, 0x688
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp eax, 0x2740
je 0x140145008
cmp eax, 0xd
jne 0x140145370
add esi, 1
cmp word [rsp + 0x42], si
jae 0x140144ea0
lea rdx, str.bind___failed__we_ran_out_of_ports
mov rcx, rbx
call fcn.1401234a0
jmp 0x140144fa5
mov r8, rsi
lea rdx, str.failed_to_resolve_the_address_provided_to_PORT:__s
mov rcx, rbx
call fcn.1401234a0
jmp 0x140144fa5
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r8d, 0x100
mov rdx, rsi
mov ecx, eax
jmp 0x140144f8e
mov rdx, rdi
mov rcx, rbx
call fcn.1402c3790
jmp 0x140144dfd
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r12, qword [r12 + 0x28]
test r12, r12
jne 0x140144e32
jmp 0x140145200
mov edx, 0x5d
mov rcx, rbp
call sub.msvcrt.dll_strchr
mov rdi, rax
test rax, rax
je 0x1401451db
lea rdx, [rbp + 1]
mov r8, rax
mov rcx, rsi
mov rbp, rdi
sub r8, rdx
call sub.msvcrt.dll_strncpy
jmp 0x140144cde
cmp word [rsp + 0x42], si
jb 0x140145016
mov dword [rsp + 0x5c], pe_nt_image_headers64
mov rcx, qword [rsp + 0x68]
lea r8, [rsp + 0x5c]
mov rdx, r13
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x140144f78
mov rcx, qword [rsp + 0x68]
mov edx, 1
call qword [sym.imp.WS2_32.dll_listen]
mov esi, eax
test eax, eax
jne 0x1401451fa
mov eax, dword [r12 + 4]
mov byte [rsp + 0x70], 0
cmp eax, 2
je 0x14014539f
cmp eax, 0x17
jne 0x140145157
mov rdx, qword [r12 + 0x20]
mov r9d, 0x2f
lea r8, [rsp + 0x70]
mov ecx, 0x17
add rdx, 8
call qword [sym.imp.WS2_32.dll_inet_ntop]
mov eax, dword [r14 + 0x360]
and eax, 0x41000
cmp eax, 0x1000
jne 0x140145172
or byte [r14 + 0x362], 4
cmp r15d, 2
je 0x140145360
movzx eax, word [rsp + 0xf0]
movzx edx, byte [r14 + 0x362]
mov rdi, qword [sym.imp.WS2_32.dll_ntohs]
nop dword [rax + rax]
test dl, 4
jne 0x1401451a6
test r15d, r15d
je 0x140145350
cmp r15d, 1
je 0x140145260
cmp ax, 2
je 0x140145230
cmp ax, 0x17
je 0x140145230
add r15d, 1
test dl, 4
je 0x14014519d
jmp 0x1401451a6
mov rdx, rbp
mov rcx, rsi
call sub.msvcrt.dll_strcpy
xor ecx, ecx
xor r8d, r8d
mov word [rsp + 0x42], cx
mov word [rsp + 0x46], r8w
jmp 0x140144d48
mov edi, 0x1b
jmp 0x140144fad
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0x170]
mov ecx, eax
mov r8d, 0x100
call fcn.140127c70
lea rdx, str.socket_failure:__s
mov rcx, rbx
mov r8, rax
call fcn.1401234a0
jmp 0x140144fa5
movzx ecx, word [rsp + 0xf2]
call rdi
test r15d, r15d
je 0x1401453cb
movzx eax, word [rsp + 0xf0]
movzx edx, byte [r14 + 0x362]
add r15d, 1
jmp 0x140145198
cmp ax, 2
jne 0x140145360
movzx ecx, word [rsp + 0xf2]
lea rsi, [rsp + 0xa0]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx edx, byte [rsp + 0x70]
mov rcx, rsi
lea r8, [rsp + 0x70]
mov r9d, 0x2c
test dl, dl
je 0x1401452b1
cmp dl, 0x2e
cmove edx, r9d
add r8, 1
add rcx, 1
mov byte [rcx - 1], dl
movzx edx, byte [r8]
test dl, dl
jne 0x140145297
mov r9d, eax
movzx eax, al
mov byte [rcx], 0
mov edx, 0x14
mov dword [rsp + 0x20], eax
shr r9w, 8
lea r8, str.__d__d
movzx r9d, r9b
call fcn.14011e860
mov qword [rsp + 0x20], rsi
mov rcx, rbx
lea rdx, [r14 + 0x440]
lea r9, str.PORT
lea r8, [0x1403f3ca8]
mov esi, 1
call fcn.1401593a0
mov edi, eax
test eax, eax
jne 0x14014543c
nop dword [rax]
mov dword [r14 + 0x504], esi
mov r8, qword [rsp + 0x48]
mov rdx, r14
mov rcx, rbx
call fcn.14027aba0
mov edi, eax
test eax, eax
jne 0x1401453c3
mov qword [rsp + 0x68], 0xffffffffffffffff
mov rax, qword [rbx + 0x18]
mov rsi, rbp
mov dword [rax + 0x510], 0x1c
jmp 0x140144fd1
mov r15d, 1
jmp 0x140145198
mov esi, 2
jmp 0x140145310
lea rdx, [rsp + 0x170]
mov r8d, 0x100
mov ecx, eax
call fcn.140127c70
mov r8d, edi
lea rdx, str.bind_port_hu__failed:__s
mov rcx, rbx
mov r9, rax
call fcn.1401234a0
jmp 0x140144fa5
mov rdx, qword [r12 + 0x20]
mov r9d, 0x2f
lea r8, [rsp + 0x70]
mov ecx, 2
add rdx, 4
call qword [sym.imp.WS2_32.dll_inet_ntop]
jmp 0x140145157
mov rsi, rbp
jmp 0x140144fad
xor edx, edx
movzx eax, ax
cmp word [rsp + 0xf0], 2
setne dl
mov dword [rsp + 0x30], eax
lea rax, [rsp + 0x70]
lea rcx, [r14 + 0x440]
add edx, 1
mov qword [rsp + 0x28], rax
lea r9, str.EPRT
lea r8, str._s__d_s_hu
mov dword [rsp + 0x20], edx
mov rdx, rcx
mov rcx, rbx
call fcn.1401593a0
mov edi, eax
test eax, eax
je 0x140145310
mov ecx, eax
mov rsi, rbp
call fcn.1401276d0
lea rdx, str.Failure_sending_EPRT_command:__s
mov rcx, rbx
mov r8, rax
call fcn.1401234a0
jmp 0x140144fad
mov ecx, eax
mov rsi, rbp
call fcn.1401276d0
lea rdx, str.Failure_sending_PORT_command:__s
mov rcx, rbx
mov r8, rax
call fcn.1401234a0
jmp 0x140144fad