Function at 0x14001131b
Capabilities:
Convert ip address from string

Disassembly:
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x580
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xc0], r8
mov rdi, r8
mov r12, rdx
mov rsi, rcx
mov rax, qword [0x1400e0a40]
xor rax, rsp
mov qword [rsp + 0x570], rax
push 0xffffffffffffffff
pop r15
xor r13d, r13d
mov dword [rsp + 0x5c], r13d
lea rcx, str.mprapi.dll
call qword [sym.imp.orauts.dll_LoadLibraryA]
mov r10, rax
test r10, r10
jne 0x1400113e6
call qword [sym.imp.orauts.dll_GetLastError]
mov rdi, rsp
mov rcx, rsi
lea rdx, str.LoadLibrary_mprapi_failed.
lea r8, str.QryIPv6Ex01
lea r9, str.return_value:__d__err_no:__d
mov qword [rdi + 0x20], 0
mov dword [rdi + 0x28], eax
call fcn.140014089
mov rcx, qword [rsp + 0x570]
mov qword [rsp + 0x570], 0
xor rcx, rsp
cmp rcx, qword [0x1400e0a40]
jne 0x140011d09
mov eax, r15d
add rsp, 0x580
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret
mov qword [rsp + 0x40], r10
lea rcx, str.iphlpapi.dll
call qword [sym.imp.orauts.dll_LoadLibraryA]
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x60], 0
je 0x140011db7
lea r8, sym.imp.orauts.dll_GetProcAddress
lea rdx, [0x1400b1ab8]
mov rcx, rax
mov qword [rsp + 0x40], r10
call qword [r8]
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x50], rax
lea r8, sym.imp.orauts.dll_GetProcAddress
lea rdx, str.MprConfigGetFriendlyName
mov qword [rsp + 0x40], r10
mov rcx, r10
call qword [r8]
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
lea r8, sym.imp.orauts.dll_GetProcAddress
lea rdx, str.MprConfigServerConnect
mov qword [rsp + 0x40], r10
mov rcx, r10
call qword [r8]
lea r8, sym.imp.orauts.dll_GetProcAddress
lea rdx, str.MprConfigServerDisconnect
mov r10, qword [rsp + 0x40]
mov rcx, r10
call qword [r8]
mov r10, qword [rsp + 0x40]
cmp qword [rsp + 0x48], 0
je 0x140011d8f
lea r8, sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc
mov ecx, 0x1c0
mov qword [rsp + 0x40], r10
xor edx, edx
inc rdx
call qword [r8]
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
je 0x140011d57
mov rdx, rsp
lea r11, [rsp + 0x5c]
push 0x17
pop rcx
xor r8d, r8d
mov qword [rdx + 0x20], r11
mov edx, 0x90
mov r9, rax
mov qword [r11 - 0x1c], r10
call qword [rsp + 0x50]
mov r10, qword [rsp + 0x40]
cmp eax, 0x6f
jne 0x140011520
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x40], r10
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea r8, sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc
xor edx, edx
inc rdx
movsxd rcx, dword [rsp + 0x5c]
call qword [r8]
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x48], rax
cmp dword [rsp + 0x5c], 0
jne 0x14001154d
xor r15d, r15d
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x40], r10
call qword [sym.imp.orauts.dll_FreeLibrary]
mov r10, qword [rsp + 0x40]
mov rcx, r10
call qword [sym.imp.orauts.dll_FreeLibrary]
jmp 0x1400113af
mov rdx, rsp
lea r11, [rsp + 0x5c]
push 0x17
pop rcx
xor r8d, r8d
mov qword [rdx + 0x20], r11
mov edx, 0x90
mov r9, qword [r11 - 0x14]
mov qword [r11 - 0x1c], r10
call qword [rsp + 0x50]
mov r10, qword [rsp + 0x40]
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x50], 0
jne 0x140011d1e
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x50], 0
jmp 0x1400115ac
mov r8, qword [rdx + 0x18]
jmp 0x1400115a3
inc qword [rsp + 0x50]
mov r8, qword [r8 + 8]
test r8, r8
jne 0x14001159a
mov rdx, qword [rdx + 8]
test rdx, rdx
jne 0x140011594
lea r8, sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc
mov ecx, 0x724
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x40], r10
call qword [r8]
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x90], rax
mov r8, rax
mov edx, 0x34c
mov qword [rdi], r8
lea rdi, sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x40], r10
call qword [rdi]
mov r10, qword [rsp + 0x40]
mov qword [r12], rax
test rax, rax
je 0x140011d0e
mov rdx, qword [rsp + 0x90]
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x40], rdx
cmp qword [rsp + 0x48], 0
je 0x140011ce2
mov rax, qword [rsp + 0x48]
mov rsi, qword [rax + 0x48]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
mov r11, rsp
add rax, rax
xor ecx, ecx
mov r8, rsi
xor edx, edx
mov r9d, eax
xor r10d, r10d
lea rdi, [rsp + 0xc8]
mov qword [r11 + 0x20], rdi
mov dword [r11 + 0x28], 0x100
mov qword [r11 + 0x30], r10
mov qword [r11 + 0x38], r10
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov byte [rsp + 0x1c7], 0
lea rcx, [rsp + 0xc8]
xor esi, esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test rax, rax
jbe 0x1400116ae
cmp byte [rsp + rsi + 0xc8], 0x2a
je 0x1400116a8
inc rsi
cmp rsi, rax
jb 0x140011694
jmp 0x1400116ae
xor r13d, r13d
inc r13d
mov rax, qword [rsp + 0x48]
mov r15, qword [rax + 0x18]
jmp 0x140011cc2
mov rdi, qword [r12]
lea r9, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy
mov rsi, qword [rsp + 0x50]
lea rdx, [rsp + 0xc8]
mov rax, qword [r15 + 0x10]
mov r8d, 0x100
mov qword [rdx - 0x30], rax
lea rcx, [rsi + rdi + 0x24c]
call qword [r9]
mov rax, qword [r12]
lea r10, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy
mov rdi, rsi
mov r8d, 0x100
mov rsi, qword [rsp + 0x40]
mov byte [rax + rdi + 0x34b], 0
mov r9, qword [r12]
lea rcx, [rsi + 0x20]
lea rdx, [rdi + r9 + 0x24c]
call qword [r10]
xor eax, eax
lea rdi, [rsp + 0x1c8]
push 0x20
pop rcx
mov dword [rdi - 0x120], 0x100
rep stosq qword [rdi], rax
mov rsi, rsp
lea rdi, sym.imp.WS2_32.dll_WSAAddressToStringA
push 0x1c
pop rdx
lea rax, [rsp + 0xa8]
xor r8d, r8d
lea r9, [rax + 0x120]
mov qword [rsi + 0x20], rax
mov rcx, qword [rax - 0x10]
call qword [rdi]
mov rax, qword [rsp + 0x40]
lea rsi, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy
mov r8d, 0x100
lea rdx, [rsp + 0x1c8]
lea rcx, [rax + 0x220]
mov qword [rsp + 0x60], rcx
call qword [rsi]
lea rax, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp
lea rdx, str.Loopback
push 8
pop r8
lea rcx, [rsp + 0xc8]
call qword [rax]
test eax, eax
je 0x140011ccb
lea rax, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp
lea rdx, str.Teredo
push 6
pop r8
lea rcx, [rsp + 0xc8]
call qword [rax]
test eax, eax
je 0x140011ccb
lea rax, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp
lea rdx, str.isatap
push 6
pop r8
lea rcx, [rsp + 0xc8]
call qword [rax]
test eax, eax
je 0x140011ccb
test r13d, r13d
jne 0x140011ccb
lea rax, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp
lea rdx, str.fe80
push 4
pop r8
lea rcx, [rsp + 0x1c8]
call qword [rax]
test eax, eax
je 0x140011ccb
mov rsi, rsp
lea rdi, sym.imp.WS2_32.dll_WSAAddressToStringA
mov rcx, qword [r15 + 0x10]
lea r9, [rsp + 0x448]
mov qword [rsp + 0x78], rcx
push 0x1c
pop rdx
xor r8d, r8d
lea rax, [rsp + 0x58]
mov dword [rax], 0x100
mov qword [rsi + 0x20], rax
call qword [rdi]
mov rdi, qword [rsp + 0x50]
xor r8b, r8b
xor eax, eax
mov rdx, qword [rsp + 0x78]
inc r8b
mov rsi, qword [r12]
movzx ecx, word [rax + rdx + 8]
add rax, 2
mov word [rsi + rdi + 4], cx
add rdi, 2
cmp r8b, 7
jle 0x140011861
mov rax, qword [rsp + 0x48]
mov r10, rsp
lea r11, sym.imp.WS2_32.dll_WSAAddressToStringA
push 0x1c
pop rdx
xor r8d, r8d
lea r9, [rsp + 0x448]
mov rsi, qword [rax + 0xb0]
lea rdi, [rsp + 0x58]
mov qword [rdi + 0x30], rsi
mov rcx, qword [rsi + 0x10]
mov qword [rdi + 0x48], rcx
mov dword [rdi], 0x100
mov qword [r10 + 0x20], rdi
call qword [r11]
mov rax, qword [rsp + 0x40]
lea rsi, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy
mov r8d, 0x100
lea rdx, [rsp + 0x448]
lea rcx, [rax + 0x320]
call qword [rsi]
mov rdx, qword [rsp + 0x88]
lea rdi, [rsp + 0x3c8]
xor eax, eax
push 0x10
pop rcx
mov edx, dword [rdx + 0x20]
rep stosq qword [rdi], rax
mov esi, edx
sar esi, 3
shr esi, 0x1c
add esi, edx
sar esi, 4
mov dword [rsp + 0x80], 0
test esi, esi
jle 0x140011947
lea rdx, str.ffff:
lea rcx, [rsp + 0x3c8]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
lea rdx, [rsp + 0x80]
mov eax, dword [rdx]
inc eax
mov dword [rdx], eax
cmp eax, esi
jl 0x140011921
lea rdx, [0x1400b2224]
lea rcx, [rsp + 0x3c8]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcat
mov r8, qword [rsp + 0x50]
xor al, al
xor edx, edx
mov rcx, qword [rsp + 0xa0]
inc al
mov rdi, qword [r12]
movzx esi, word [rdx + rcx + 8]
add rdx, 2
mov word [rdi + r8 + 0x14], si
add r8, 2
cmp al, 7
jle 0x140011964
push 0x17
pop rcx
lea r8, [rsp + 0x550]
lea rdx, [r8 - 0x188]
call qword [sym.imp.WS2_32.dll_inet_pton]
imul rdx, qword [rsp + 0x68], 0x34c
mov rax, qword [r12]
lea rsi, [rsp + 0x560]
mov rcx, qword [rsp + 0x78]
movdqu xmm0, xmmword [rax + rdx + 4]
pand xmm0, xmmword [rsi - 0x10]
lea rdi, [rcx + 8]
movdqu xmmword [rsi], xmm0
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
mov r10, rsp
lea r11, sym.imp.WS2_32.dll_WSAAddressToStringA
mov rsi, qword [r12]
lea rdi, [rsp + 0x58]
mov rax, qword [rdi - 8]
push 0x1c
pop rdx
xor r8d, r8d
mov qword [r10 + 0x20], rdi
lea r9, [rax + rsi + 0x46]
mov dword [rdi], 0x100
call qword [r11]
mov rax, qword [rsp + 0x40]
lea r9, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy
mov rsi, qword [rsp + 0x50]
mov r8d, 0x100
mov rdi, qword [r12]
lea rcx, [rax + 0x120]
lea rdx, [rsi + rdi + 0x46]
call qword [r9]
mov rcx, qword [rsp + 0x88]
lea rsi, str.UNKNOWN
mov r10, qword [rsp + 0x50]
mov rdx, qword [r12]
mov eax, dword [rcx + 0x20]
mov r9, qword [rsp + 0x40]
mov dword [rdx + r10 + 0x248], eax
mov r8d, dword [rcx + 0x20]
mov word [r9 + 0x420], r8w
mov r11, qword [r12]
lea rdi, [r10 + r11 + 0x24]
movsd dword [rdi], dword [rsi]
movsb byte [rdi], byte [rsi]
movsb byte [rdi], byte [rsi]
movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0xd0]
test rax, rax
je 0x140011ae2
mov rdx, qword [rax + 0x10]
lea rdi, [rsp + 0x2c8]
xor eax, eax
push 0x20
pop rcx
rep stosq qword [rdi], rax
add rdx, 8
push 0x17
pop rcx
mov r9d, 0x100
lea r8, [rsp + 0x2c8]
call sub.WS2_32.dll_inet_ntop
lea rcx, [rsp + 0x2c8]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test rax, rax
jbe 0x140011ae2
mov rsi, qword [r12]
lea rdi, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy
mov rax, qword [rsp + 0x50]
lea rdx, [rsp + 0x2c8]
mov r8d, 0x100
lea rcx, [rax + rsi + 0x24]
call qword [rdi]
mov rax, qword [rsp + 0x40]
lea r9, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy
mov rsi, qword [rsp + 0x50]
mov r8d, 0x100
mov rdi, qword [r12]
lea rcx, [rax + 0x422]
lea rdx, [rsi + rdi + 0x24]
call qword [r9]
mov rsi, qword [rsp + 0x90]
lea rdx, str.fe80
mov rax, qword [rsp + 0x70]
push 4
pop r8
mov rdi, qword [rsp + 0x48]
mov r11, qword [rsp + 0x50]
mov byte [rax + rsi + 0x521], 0
lea rax, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp
mov r10, qword [r12]
mov rcx, qword [rsp + 0x40]
mov r9d, dword [rdi + 0x6c]
mov dword [r10 + r11], r9d
mov dword [rcx], 2
mov rcx, qword [rsp + 0x60]
call qword [rax]
test eax, eax
je 0x140011bc4
lea rax, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp
lea rdx, str.FE80
mov rcx, qword [rsp + 0x60]
push 4
pop r8
call qword [rax]
test eax, eax
je 0x140011bc4
lea rax, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp
lea rdx, str.fec0
mov rcx, qword [rsp + 0x60]
push 4
pop r8
call qword [rax]
test eax, eax
je 0x140011bc4
lea rax, sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp
lea rdx, str.FEC0
mov rcx, qword [rsp + 0x60]
push 4
pop r8
call qword [rax]
test eax, eax
je 0x140011bc4
mov rax, qword [rsp + 0x40]
mov dword [rax + 4], 2
jmp 0x140011bd0
mov rax, qword [rsp + 0x40]
mov dword [rax + 4], 1
mov rdx, qword [r12]
mov rax, qword [rsp + 0x50]
mov r8, rdi
lea rdi, [rax + rdx + 0x40]
mov ecx, dword [r8 + 0x58]
lea rsi, [r8 + 0x50]
rep movsb byte [rdi], byte [rsi]
mov rsi, qword [rsp + 0x40]
mov rax, rsp
lea rdx, str._02.2X:_02.2X:_02.2X:_02.2X:_02.2X:_02.2X
lea rcx, [rsi + 0x622]
mov rsi, r8
movzx edi, byte [rsi + 0x52]
mov dword [rax + 0x20], edi
movzx r10d, byte [rsi + 0x53]
movzx r11d, byte [rsi + 0x54]
movzx edi, byte [rsi + 0x55]
movzx r8d, byte [rsi + 0x50]
movzx r9d, byte [rsi + 0x51]
mov dword [rax + 0x28], r10d
mov dword [rax + 0x30], r11d
mov dword [rax + 0x38], edi
call fcn.1400012e0
mov rax, rsi
mov eax, dword [rax + 0x68]
cmp eax, 1
je 0x140011c5f
cmp eax, 2
jne 0x140011c51
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 2
jmp 0x140011c6b
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 0
jmp 0x140011c6b
mov rax, qword [rsp + 0x40]
mov dword [rax + 8], 1
mov rdi, rsi
mov r9, qword [rsp + 0x50]
mov rdx, qword [r12]
mov eax, dword [rdi + 0x64]
mov r10, qword [rsp + 0x40]
mov dword [rdx + r9 + 0x34], eax
mov rsi, qword [r12]
mov ecx, dword [rdi + 0x60]
add qword [rsp + 0x70], 0x724
mov dword [rsi + r9 + 0x38], ecx
add r9, 0x34c
mov r8d, dword [rdi + 0x60]
mov dword [r10 + 0xc], r8d
add r10, 0x724
mov r15, qword [r15 + 8]
inc qword [rsp + 0x68]
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x40], r10
test r15, r15
jne 0x1400116bc
mov rax, qword [rsp + 0x48]
mov rdx, qword [rax + 8]
mov qword [rsp + 0x48], rdx
test rdx, rdx
jne 0x140011631
lea rax, [rsp + 0x570]
mov rcx, qword [rax]
mov qword [rax], 0
xor rcx, rsp
mov rax, qword [rsp + 0x68]
cmp rcx, qword [0x1400e0a40]
je 0x1400113d6
call fcn.1400aab50
lea rdx, [0x1400b04f0]
lea r8, str.sclsiidex_alloc_failed
jmp 0x140011d9d
mov qword [rsp + 0x40], r10
call qword [sym.imp.orauts.dll_GetLastError]
mov r10, qword [rsp + 0x40]
mov r11, rsp
lea rdx, str.GetAdaptersAddresses_failed.
mov edi, dword [rsp + 0x50]
lea r8, str.QryIPv6Ex05
lea r9, str.ret._val:__d__errno:__d
mov rcx, rsi
mov dword [r11 + 0x20], edi
mov dword [r11 + 0x28], eax
jmp 0x140011da3
mov qword [rsp + 0x40], r10
call qword [sym.imp.orauts.dll_GetLastError]
mov r10, qword [rsp + 0x40]
mov rdi, rsp
lea rdx, [0x1400b04f0]
lea r8, str.QryIPv6Ex04
lea r9, str.ret._val:__d__errno:__d
mov rcx, rsi
mov qword [rdi + 0x20], 0
mov dword [rdi + 0x28], eax
jmp 0x140011da3
lea rdx, [0x1400b2068]
lea r8, str.QryIPv6Ex03
mov rcx, rsi
xor r9d, r9d
mov qword [rsp + 0x40], r10
call fcn.140014089
mov r10, qword [rsp + 0x40]
jmp 0x14001152a
mov qword [rsp + 0x40], r10
call qword [sym.imp.orauts.dll_GetLastError]
mov r10, qword [rsp + 0x40]
mov rdi, rsp
lea rdx, str.LoadLibrary_iphlpapi_failed.
lea r8, str.QryIPv6Ex02
lea r9, str.return_value:__d__erno:__d
mov rcx, rsi
mov qword [rdi + 0x20], 0
mov dword [rdi + 0x28], eax
mov qword [rsp + 0x40], r10
call fcn.140014089
jmp 0x14001153a