Function at 0x14003f118
Capabilities:
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 - 0x8f0]
sub rsp, 0x9f0
mov rax, qword [0x1400d4130]
xor rax, rsp
mov qword [rbp + 0x8e0], rax
mov r15, qword [rcx]
mov r13d, edx
or qword [rsp + 0x40], 0xffffffffffffffff
mov rbx, rcx
xor edx, edx
lea rcx, [rbp - 0x30]
mov r8d, 0x100
call fcn.14004e050
mov rdi, qword [r15 + 0x628]
xor r14d, r14d
mov qword [rsp + 0x48], r14
mov r12d, r14d
mov rcx, qword [r15 + 0x628]
mov esi, r14d
mov word [rsp + 0x32], r14w
mov word [rsp + 0x34], r14w
mov byte [rsp + 0x30], 1
test rcx, rcx
je 0x14003f31f
call fcn.140051300
cmp rax, 1
jbe 0x14003f31f
mov rcx, rdi
call fcn.140051300
lea ecx, [r14 + 0x16]
cmp rax, rcx
jb 0x14003f1c9
mov rcx, rdi
call fcn.140051300
mov rcx, rax
inc rcx
mov edx, 1
call qword [fcn.140060d00]
mov rsi, rax
test rax, rax
jne 0x14003f1e7
lea eax, [rsi + 0x1b]
jmp 0x14003f7bc
cmp byte [rdi], 0x3a
jne 0x14003f1f1
mov r14, rdi
jmp 0x14003f21e
mov edx, Ordinal_60
mov rcx, rdi
call fcn.14004f8e4
mov r14, rax
mov rdx, rdi
mov rcx, rsi
test rax, rax
je 0x14003f219
mov r8, rax
sub r8, rdi
call fcn.140065570
jmp 0x14003f21e
call fcn.140066100
test r14, r14
je 0x14003f285
mov edx, Ordinal_60
mov rcx, r14
call fcn.14004f8e4
mov rdi, rax
test rax, rax
je 0x14003f285
xor edx, edx
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.1400654cc
mov ecx, eax
call fcn.14002af44
mov edx, reloc.WLDAP32.dll_Ordinal_45
mov rcx, rdi
movzx r14d, ax
call fcn.14004f8e4
test rax, rax
je 0x14003f27f
xor edx, edx
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.1400654cc
mov ecx, eax
call fcn.14002af44
movzx ecx, ax
jmp 0x14003f28d
movzx ecx, r14w
jmp 0x14003f28d
movzx ecx, r12w
movzx r14d, cx
xor edi, edi
cmp r14w, cx
cmovbe di, cx
xor eax, eax
cmp r14w, cx
cmovbe ax, r14w
movzx r14d, ax
mov word [rsp + 0x32], ax
cmp byte [rsi], r12b
je 0x14003f30c
mov rcx, qword [rbx + 0x70]
mov rcx, qword [rcx + 0x20]
call fcn.140042398
mov r8d, dword [rbx + 0xb8]
lea rcx, [rbp + 0xd0]
mov edx, eax
mov dword [rsp + 0x28], 0x401
mov rax, qword [rbx + 0x70]
mov r9, rsi
mov qword [rsp + 0x20], rcx
mov ecx, dword [rax + 4]
call fcn.140042394
xor r14d, r14d
test eax, eax
je 0x14003f307
sub eax, 1
je 0x14003f7b7
cmp eax, 1
jne 0x14003f315
lea r12, [rbp + 0xd0]
jmp 0x14003f315
mov r12, rsi
jmp 0x14003f315
mov word [rsp + 0x32], r14w
xor r14d, r14d
mov word [rsp + 0x34], di
test r12, r12
jne 0x14003f39a
mov rcx, qword [rbx + 0x238]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x38], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x14003f372
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov rcx, rbx
call fcn.14002e090
mov r8, rax
lea rdx, str.getsockname___failed:__s
mov rcx, r15
call fcn.140020898
mov rcx, rsi
call qword [fcn.140058358]
jmp 0x14003f7b7
movzx ecx, word [rsp + 0x50]
lea r8, [rbp + 0xd0]
mov r9d, 0x401
lea rdx, [rsp + 0x54]
call fcn.14002eb58
lea r12, [rbp + 0xd0]
mov byte [rsp + 0x30], r14b
lea r9, [rsp + 0x48]
xor r8d, r8d
mov rdx, r12
mov rcx, rbx
call fcn.140017980
cmp eax, 1
jne 0x14003f3bf
lea rdx, [rsp + 0x48]
mov rcx, rbx
call fcn.140016f30
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x14003f3d6
mov rdi, qword [rdx]
mov rcx, r15
call fcn.140017b14
jmp 0x14003f3d9
mov rdi, r14
test rdi, rdi
jne 0x14003f3ed
mov r8, r12
lea rdx, str.failed_to_resolve_the_address_provided_to_PORT:__s
jmp 0x14003f35c
mov rcx, rsi
call qword [fcn.140058358]
or qword [rsp + 0x40], 0xffffffffffffffff
lea r9, [rsp + 0x40]
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.140021970
mov esi, eax
test eax, eax
je 0x14003f427
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rdi, qword [rdi + 0x28]
mov r14d, eax
test rdi, rdi
jne 0x14003f3fc
test rdi, rdi
jne 0x14003f44e
mov edx, r14d
mov rcx, rbx
call fcn.14002e090
mov r8, rax
lea rdx, str.socket_failure:__s
mov rcx, r15
call fcn.140020898
jmp 0x14003f7b7
movsxd r8, dword [rdi + 0x10]
lea rcx, [rsp + 0x50]
mov rdx, qword [rdi + 0x20]
call fcn.14004dc00
mov eax, dword [rdi + 0x10]
movzx r12d, word [rsp + 0x34]
mov dword [rsp + 0x38], eax
movzx r14d, word [rsp + 0x32]
cmp r14w, r12w
ja 0x14003f79b
mov eax, 2
cmp word [rsp + 0x50], ax
jne 0x14003f498
movzx ecx, r14w
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x52], ax
mov r8d, dword [rsp + 0x38]
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x14003f578
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp byte [rsp + 0x30], 0
je 0x14003f517
mov ecx, 0x2741
cmp eax, ecx
jne 0x14003f517
mov edx, ecx
mov rcx, rbx
call fcn.14002e090
mov r9, rax
movzx r8d, r14w
lea rdx, str.bind_port_hu__on_non_local_address_failed:__s_n
mov rcx, r15
call fcn.140020968
mov rcx, qword [rbx + 0x238]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x38], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x14003f52c
mov byte [rsp + 0x30], al
jmp 0x14003f46d
cmp eax, 0x2740
je 0x14003f523
cmp eax, 0xd
jne 0x14003f553
inc r14w
jmp 0x14003f473
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov rcx, rbx
call fcn.14002e090
lea rdx, str.getsockname___failed:__s
mov r8, rax
mov rcx, r15
call fcn.140020898
jmp 0x14003f7aa
mov edx, eax
mov rcx, rbx
call fcn.14002e090
mov r9, rax
movzx r8d, r14w
lea rdx, str.bind_port_hu__failed:__s
mov rcx, r15
call fcn.140020898
jmp 0x14003f7aa
cmp r14w, r12w
ja 0x14003f79b
mov rcx, qword [rsp + 0x40]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x38], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
xor r14d, r14d
test eax, eax
jne 0x14003f52c
mov rcx, qword [rsp + 0x40]
lea r12d, [r14 + 1]
mov edx, r12d
call qword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x14003f5d8
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov rcx, rbx
call fcn.14002e090
lea rdx, str.socket_failure:__s
jmp 0x14003f543
mov r8d, 0x100
lea rdx, [rbp - 0x30]
mov rcx, rdi
call fcn.14001795c
mov edi, 2
cmp r13d, edi
je 0x14003f640
movzx eax, word [rsp + 0x50]
cmp byte [rbx + 0x565], r14b
jne 0x14003f607
test r13d, r13d
je 0x14003f638
cmp r13d, r12d
jne 0x14003f611
cmp ax, di
jne 0x14003f638
cmp ax, di
jne 0x14003f638
movzx ecx, word [rsp + 0x52]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r8d, ax
test r13d, r13d
je 0x14003f71c
cmp r13d, r12d
je 0x14003f678
movzx eax, word [rsp + 0x50]
add r13d, r12d
cmp r13d, edi
jne 0x14003f5f9
lea rdi, [rbx + 0x8f8]
mov rcx, rbx
mov dword [rdi + 0xac], r13d
call fcn.14003d138
mov rax, qword [rsp + 0x40]
mov qword [rbx + 0x240], rax
mov byte [rbx + 0x55e], r12b
mov dword [rbx + 0x9b0], 0x1c
jmp 0x14003f797
lea rcx, [rbp + 0x4e0]
lea rdx, [rbp - 0x30]
cmp byte [rdx], r14b
je 0x14003f6a2
cmp byte [rdx], 0x2e
mov r9d, Ordinal_46
movzx eax, byte [rdx]
cmove eax, r9d
mov byte [rcx], al
add rcx, r12
add rdx, r12
jne 0x14003f683
movzx r9d, r8w
mov edx, reloc.WS2_32.dll_sendto
movzx eax, r9b
lea r8, str.__d__d
shr r9d, 8
mov dword [rsp + 0x20], eax
mov byte [rcx], r14b
call fcn.14002c138
lea rdi, [rbx + 0x8f8]
mov rcx, rdi
lea r9, [rbp + 0x4e0]
lea r8, str.PORT
lea rdx, [0x1400a3cb8]
call fcn.1400466c0
mov esi, eax
test eax, eax
je 0x14003f647
mov ecx, eax
call fcn.14002e1cc
mov r8, rax
lea rdx, str.Failure_sending_PORT_command:__s
mov rcx, r15
call fcn.140020898
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.140021130
jmp 0x14003f790
cmp word [rsp + 0x50], di
lea rdx, str._s__d_s_hu
movzx eax, r8w
lea rdi, [rbx + 0x8f8]
mov r9d, r14d
mov dword [rsp + 0x28], eax
setne r9b
lea rax, [rbp - 0x30]
add r9d, r12d
mov qword [rsp + 0x20], rax
lea r8, str.EPRT
mov rcx, rdi
call fcn.1400466c0
mov esi, eax
test eax, eax
je 0x14003f647
mov ecx, eax
call fcn.14002e1cc
mov r8, rax
lea rdx, str.Failure_sending_EPRT_command:__s
mov rcx, r15
call fcn.140020898
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.140021130
mov dword [rdi + 0xac], r12d
mov dword [rbx + 0x9b0], r14d
mov eax, esi
jmp 0x14003f7bc
lea rdx, str.bind___failed__we_ran_out_of_ports_
mov rcx, r15
call fcn.140020898
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.140021130
mov eax, reloc.WLDAP32.dll_Ordinal_30
mov rcx, qword [rbp + 0x8e0]
xor rcx, rsp
call fcn.14004d240
mov rbx, qword [rsp + 0xa40]
add rsp, 0x9f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret