Function at 0x1401f5ae0
Capabilities:
Convert ip address from string

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
mov byte [r8], 0
test rcx, rcx
je 0x1401f5f1c
mov r12, rdx
mov rbx, rcx
xor ecx, ecx
test rdx, rdx
je 0x1401f5f1e
movzx esi, byte [rbx]
test sil, sil
je 0x1401f5f1e
movzx ebp, byte [r12]
test bpl, bpl
je 0x1401f5f1c
mov rdi, r8
lea rcx, [0x140278697]
mov rdx, r12
call sub.msvcrt.dll_strcmp
mov cl, 1
test eax, eax
je 0x1401f5f1e
mov rcx, rbx
cmp sil, 0x5b
jne 0x1401f5ba4
mov edx, 0x5d
call sub.msvcrt.dll_strchr
test rax, rax
je 0x1401f5f1c
inc rbx
sub rax, rbx
cmp rax, 0x7f
ja 0x1401f5f1c
mov rsi, rax
lea r13, [rsp + 0xd0]
mov rcx, r13
mov rdx, rbx
mov r8, rax
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x28], rsi
mov byte [rsp + rsi + 0xd0], 0
mov r9d, 2
mov rbx, r13
jmp 0x1401f5bf4
call sub.msvcrt.dll_strlen
mov rsi, rax
lea r8, [rsp + 0x50]
mov ecx, 2
mov rdx, rbx
call qword [sym.imp.WS2_32.dll_inet_pton]
mov r9d, 1
cmp eax, 1
jne 0x1401f5bd1
mov qword [rsp + 0x28], rsi
jmp 0x1401f5be6
cmp byte [rbx + rsi - 1], 0x2e
lea rax, [rsi - 1]
cmove rsi, rax
mov qword [rsp + 0x28], rsi
xor r9d, r9d
movzx ebp, byte [r12]
test bpl, bpl
je 0x1401f5f1c
movabs r15, 0x100100000201
mov qword [rsp + 0x20], r9
jmp 0x1401f5c19
movzx ebp, byte [r12 + 1]
inc r12
cmp bpl, 9
je 0x1401f5c10
movzx eax, bpl
cmp eax, 0x20
je 0x1401f5c10
lea r14, [r12 - 1]
mov r13, 0xffffffffffffffff
xor esi, esi
mov eax, ebp
jmp 0x1401f5c4f
movzx eax, byte [r12 + r13 + 2]
dec rsi
inc r13
inc r14
cmp al, 0x2c
ja 0x1401f5c40
movzx eax, al
bt r15, rax
jae 0x1401f5c40
test rsi, rsi
je 0x1401f5ea0
mov r8, rsi
neg r8
lea eax, [r9 - 1]
cmp eax, 2
jae 0x1401f5ccf
cmp r8, 0x80
jae 0x1401f5ea0
lea rbp, [rsp + 0x50]
mov rcx, rbp
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov byte [rsp + r13 + 0x51], 0
mov rcx, rbp
mov edx, 0x2f
call sub.msvcrt.dll_strchr
test rax, rax
je 0x1401f5d01
mov r13, rax
mov rcx, rax
inc rcx
call sub.msvcrt.dll_atoi
mov ebp, eax
mov byte [r13], 0
cmp dword [rsp + 0x20], 2
jne 0x1401f5dc5
test ebp, ebp
jne 0x1401f5d11
jmp 0x1401f5d0c
test r9d, r9d
jne 0x1401f5ea0
cmp byte [r12 + r13], 0x2e
cmove r8, r13
test r8, r8
je 0x1401f5dbd
cmp bpl, 0x2e
jne 0x1401f5ddf
lea rcx, [r12 + 1]
dec r8
jmp 0x1401f5de2
cmp dword [rsp + 0x20], 2
jne 0x1401f5e22
mov ebp, 0x80
mov ecx, 0x17
mov rdx, rbx
lea r8, [rsp + 0x40]
call qword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x1401f5e98
mov ecx, 0x17
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_inet_pton]
cmp ebp, 0x87
ja 0x1401f5e98
cmp eax, 1
jne 0x1401f5e98
mov r13d, ebp
shr r13, 3
mov edx, ebp
and edx, 7
cmp r13d, 0x10
jne 0x1401f5d71
test edx, edx
jne 0x1401f5e98
cmp ebp, 8
jb 0x1401f5d94
mov r8d, r13d
lea rcx, [rsp + 0x40]
mov ebp, edx
lea rdx, [rsp + 0x30]
call sub.msvcrt.dll_memcmp
mov edx, ebp
test eax, eax
jne 0x1401f5e98
test edx, edx
je 0x1401f5f18
movzx eax, byte [rsp + r13 + 0x30]
xor al, byte [rsp + r13 + 0x40]
movzx eax, al
mov cl, 8
sub cl, dl
shr eax, cl
test eax, eax
je 0x1401f5e98
jmp 0x1401f5f18
mov rcx, r12
xor r8d, r8d
jmp 0x1401f5de2
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x30], 0
cmp ebp, 0x20
jbe 0x1401f5e34
jmp 0x1401f5e98
mov rcx, r12
mov rax, qword [rsp + 0x28]
mov rdx, rax
sub rdx, r8
jne 0x1401f5e0c
mov rdx, rbx
mov r8, rax
call fcn.1401aa790
mov r9, qword [rsp + 0x20]
test eax, eax
je 0x1401f5ea0
jmp 0x1401f5f18
jbe 0x1401f5ea0
cmp byte [rdx + rbx - 1], 0x2e
jne 0x1401f5ea0
add rdx, rbx
jmp 0x1401f5df5
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x30], 0
xor ebp, ebp
mov ecx, 2
mov rdx, rbx
lea r8, [rsp + 0x40]
call qword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x1401f5e98
mov ecx, 2
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x30]
call qword [sym.imp.WS2_32.dll_inet_pton]
cmp eax, 1
jne 0x1401f5e98
test bpl, 0x1f
je 0x1401f5f09
mov ecx, dword [rsp + 0x40]
mov r13, qword [sym.imp.WS2_32.dll_htonl]
call r13
mov rdx, r13
mov r13d, eax
mov ecx, dword [rsp + 0x30]
call rdx
xor eax, r13d
neg bpl
mov ecx, ebp
shr eax, cl
test eax, eax
jmp 0x1401f5f11
mov r9, qword [rsp + 0x20]
nop dword [rax]
sub r12, rsi
jmp 0x1401f5ebb
cmp eax, 0x20
jne 0x1401f5ed0
inc r12
inc r14
movzx eax, byte [r12]
cmp eax, 0x1f
jg 0x1401f5eb0
cmp eax, 9
je 0x1401f5eb5
test eax, eax
je 0x1401f5ee0
jmp 0x1401f5ef0
cmp eax, 0x2c
jne 0x1401f5ef0
nop word cs:[rax + rax]
movzx ebp, byte [r14 + 1]
inc r14
cmp bpl, 0x2c
je 0x1401f5ee0
jmp 0x1401f5efb
mov byte [rdi], 1
movzx ebp, byte [r12]
mov r14, r12
mov r12, r14
test bpl, bpl
jne 0x1401f5c19
jmp 0x1401f5f1c
mov eax, dword [rsp + 0x40]
cmp eax, dword [rsp + 0x30]
mov r9, qword [rsp + 0x20]
jne 0x1401f5ea0
mov cl, 1
jmp 0x1401f5f1e
xor ecx, ecx
mov eax, ecx
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret