Function at 0x14015c120
Capabilities:
Get local ipv4 addresses

Disassembly:
push rbx
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x1403fad18]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rbx, rdx
mov r15, rcx
lea rdx, str.C:_virtualbox_srcVBoxMain_src_serverwinNetIf_win.cpp
mov ecx, 0x730
mov dword [rsp + 0x34], r8d
mov dword [rsp + 0x30], 0x730
call qword [sym.imp.BstkRT.dll_RTMemAllocTag]
mov r14, rax
test rax, rax
jne 0x14015c170
mov eax, 0xfffffff8
jmp 0x14015c3b2
xor r8d, r8d
lea rax, [rsp + 0x30]
mov r9, r14
lea edx, [r8 + 0x10]
xor ecx, ecx
mov qword [rsp + 0x20], rax
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
cmp eax, 0x6f
jne 0x14015c1cd
mov rcx, r14
call qword [sym.imp.BstkRT.dll_RTMemFree]
mov ecx, dword [rsp + 0x30]
lea rdx, str.C:_virtualbox_srcVBoxMain_src_serverwinNetIf_win.cpp
call qword [sym.imp.BstkRT.dll_RTMemAllocTag]
mov r14, rax
test rax, rax
je 0x14015c166
xor r8d, r8d
lea rax, [rsp + 0x30]
mov r9, r14
lea edx, [r8 + 0x10]
xor ecx, ecx
mov qword [rsp + 0x20], rax
call sub.IPHLPAPI.DLL_GetAdaptersAddresses
test eax, eax
jne 0x14015c3a7
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x50], r13
mov rsi, r14
nop word [rax + rax]
mov rcx, qword [rsi + 0x10]
lea rdx, str.C:_virtualbox_srcVBoxMain_src_serverwinNetIf_win.cpp
call qword [sym.imp.BstkRT.dll_RTStrDupTag]
or rcx, 0xffffffffffffffff
mov r13, rax
xor eax, eax
mov rdi, r13
repne scasb al, byte [rdi]
cmp byte [r13], 0x7b
not rcx
jne 0x14015c238
cmp byte [rcx + r13 - 2], 0x7d
jne 0x14015c238
mov byte [rcx + r13 - 2], al
lea rdx, [r13 + 1]
lea rcx, [rbx + 0x50]
call qword [sym.imp.BstkRT.dll_RTUuidCompareStr]
test eax, eax
je 0x14015c24f
mov rcx, r13
call qword [sym.imp.BstkRT.dll_RTStrFree]
mov rsi, qword [rsi + 8]
test rsi, rsi
jne 0x14015c1f0
jmp 0x14015c365
mov rcx, qword [rsi + 0x18]
xor r8b, r8b
xor dil, dil
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0x58], r12
test rcx, rcx
je 0x14015c2b2
nop dword [rax + rax]
mov rdx, qword [rcx + 0x10]
movzx eax, word [rdx]
cmp eax, 2
je 0x14015c29b
cmp eax, 0x17
jne 0x14015c2a9
test r8b, r8b
jne 0x14015c2a9
mov rax, qword [rdx + 8]
mov r8b, 1
mov qword [rbx + 0x10], rax
mov rax, qword [rdx + 0x10]
mov qword [rbx + 0x18], rax
jmp 0x14015c2a9
test dil, dil
jne 0x14015c2a9
mov eax, dword [rdx + 4]
mov dil, 1
mov dword [rbx + 8], eax
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14015c270
mov rdi, qword [rsi + 0xb0]
xor bpl, bpl
xor r12b, r12b
test rdi, rdi
je 0x14015c317
mov rax, qword [rdi + 0x10]
movzx ecx, word [rax]
cmp ecx, 2
je 0x14015c2f4
cmp ecx, 0x17
jne 0x14015c30e
test bpl, bpl
jne 0x14015c30e
mov ecx, dword [rdi + 0x20]
cmp ecx, 0x80
ja 0x14015c30e
lea rdx, [rbx + 0x20]
mov bpl, 1
call qword [sym.imp.BstkRT.dll_RTNetPrefixToMaskIPv6]
jmp 0x14015c30e
test r12b, r12b
jne 0x14015c30e
mov ecx, dword [rdi + 0x20]
cmp ecx, 0x20
ja 0x14015c30e
lea rdx, [rbx + 0xc]
mov r12b, 1
call qword [sym.imp.BstkRT.dll_RTNetPrefixToMaskIPv4]
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x14015c2c4
cmp dword [rsi + 0x58], 6
mov r12, qword [rsp + 0x58]
mov rbp, qword [rsp + 0xa0]
jne 0x14015c338
mov eax, dword [rsi + 0x50]
mov dword [rbx + 0x38], eax
movzx eax, word [rsi + 0x54]
mov word [rbx + 0x3c], ax
mov edx, dword [rsp + 0x34]
xor eax, eax
mov dword [rbx + 0x40], 1
cmp dword [rsi + 0x68], 1
mov rcx, r13
setne al
inc eax
mov dword [rbx + 0x44], eax
xor eax, eax
cmp dword [rsi + 4], edx
sete al
mov dword [rbx + 0x34], eax
call qword [sym.imp.BstkRT.dll_RTStrFree]
lea rdx, [rsp + 0x38]
mov rcx, r15
call fcn.140163d30
mov r13, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
test eax, eax
jne 0x14015c3a0
mov eax, dword [rsp + 0x38]
test eax, eax
je 0x14015c397
mov dword [rbx + 8], eax
mov eax, dword [rsp + 0x3c]
mov dword [rbx + 0xc], eax
mov eax, dword [rsp + 0x40]
mov dword [rbx + 0x30], eax
jmp 0x14015c3a7
mov dword [rbx + 0x30], 0
mov rcx, r14
call qword [sym.imp.BstkRT.dll_RTMemFree]
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14015fe00
add rsp, 0x70
pop r15
pop r14
pop rbx
ret