Function at 0x14006dbe0
Capabilities:
Resolve dns

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x210
movdqa xmmword [rsp + 0x200], xmm6
mov r15, r8
mov rbx, rdx
mov rsi, rcx
lea rcx, [rsp + 0x80]
call fcn.140012e10
cmp word [rsp + 0x80], 2
jne 0x14006dd7d
movabs r12, 0x8080808080808080
lea rax, [rbx + 7]
and rax, 0xfffffffffffffff8
sub rax, rbx
movdqa xmm0, xmmword [str.::::::::::::::::]
movdqa xmm6, xmmword [0x14018dcd0]
lea rcx, [0x1401ae568]
mov rdi, r15
jmp 0x14006dc69
cmp rdi, r15
ja 0x14006e032
mov rdx, rdi
mov r8, rdi
cmp rdi, rax
jb 0x14006dc8d
mov r9d, edi
sub r9d, eax
and r9d, 0xf
mov rdx, rdi
mov r8, rax
sub rdx, r9
jb 0x14006df4a
mov r9, rdx
neg r9
mov r11, rdi
nop word cs:[rax + rax]
mov r10, r11
mov r11, r9
add r11, r10
je 0x14006dcd0
lea r11, [r10 - 1]
cmp byte [rbx + r10 - 1], 0x3a
jne 0x14006dca0
lea rdi, [r9 + r10]
dec rdi
add rdi, rdx
jmp 0x14006dd28
mov r9, rdx
cmp rdx, r8
jbe 0x14006dd06
lea rdx, [r9 - 0x10]
movdqu xmm1, xmmword [rbx + r9 - 0x10]
movdqa xmm2, xmm1
pxor xmm2, xmm0
paddq xmm2, xmm6
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r10, xmm2
test r10, r12
je 0x14006dcd0
cmp r9, rdi
ja 0x14006df4a
nop
test r9, r9
je 0x14006e032
lea rdi, [r9 - 1]
cmp byte [rbx + r9 - 1], 0x3a
mov r9, rdi
jne 0x14006dd10
cmp rdi, r15
jae 0x14006dc60
cmp byte [rbx + rdi], 0x3a
jne 0x14006dc60
lea r13, [rdi + 1]
lea rcx, str.invalid_port_value
sub r15, r13
je 0x14006e032
lea r8, [rbx + rdi]
inc r8
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x14006ddf8
cmp eax, 0x2b
jne 0x14006de02
dec r15
je 0x14006e032
inc r8
jmp 0x14006de02
movzx eax, byte [0x140228121]
mov rcx, qword [0x140228110]
test rcx, rcx
jne 0x14006dda8
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006df4a
mov rcx, rax
mov qword [0x140228110], rax
mov r8d, 0x20
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006df4a
movdqu xmm0, xmmword [rsp + 0x80]
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
mov rcx, rax
add rcx, 0x20
mov qword [rsi], rax
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rcx
jmp 0x14006df4c
cmp r15, 1
je 0x14006e032
cmp r15, 5
jae 0x14006de93
xor eax, eax
xor r14d, r14d
movzx edx, byte [r8 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x14006e032
add r14d, r14d
lea r14d, [r14 + r14*4]
add r14d, edx
inc rax
cmp r15, rax
jne 0x14006de11
mov rax, qword [0x1402280f0]
cmp rax, 3
jne 0x14006df12
cmp rdi, 0x17f
ja 0x14006df24
lea r15, [rsp + 0x80]
mov rcx, r15
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov byte [rsp + rdi + 0x80], 0
cmp rdi, 0xe
ja 0x14006ded9
xor ecx, ecx
cmp byte [rsp + rcx + 0x80], 0
je 0x14006dfbf
inc rcx
cmp r13, rcx
jne 0x14006de78
jmp 0x14006e017
xor r9d, r9d
mov r10w, 0xa
xor r14d, r14d
cmp r15, r9
je 0x14006de34
movzx r11d, byte [r8 + r9]
mov eax, r14d
mul r10w
seto dl
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x14006e032
test dl, dl
jne 0x14006e032
mov r14d, eax
inc r9
add r14w, r11w
jae 0x14006de9e
jmp 0x14006e032
lea rax, [rsp + 0x87]
and rax, 0xfffffffffffffff8
sub rax, r15
je 0x14006df0a
je 0x14006df0a
xor ecx, ecx
cmp byte [rsp + rcx + 0x80], 0
je 0x14006dfbf
inc rcx
cmp rax, rcx
jne 0x14006deee
lea rcx, [rdi - 0xf]
jmp 0x14006df67
lea rcx, [rdi - 0xf]
xor eax, eax
jmp 0x14006df6c
call fcn.14006c870
cmp rdi, 0x17f
jbe 0x14006de52
lea rcx, [rsp + 0x28]
mov rdx, rbx
mov r8, rdi
mov r9d, r14d
call fcn.140072330
mov rax, qword [rsp + 0x28]
test rax, rax
jne 0x14006e02d
jmp 0x14006e05e
ud2
movaps xmm6, xmmword [rsp + 0x200]
add rsp, 0x210
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, rcx
ja 0x14006df9a
movdqu xmm0, xmmword [rsp + rax + 0x80]
movdqa xmm1, xmm0
paddq xmm1, xmm6
pandn xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rdx, xmm1
test rdx, r12
jne 0x14006df9a
add rax, 0x10
jmp 0x14006df67
sub r13, rax
je 0x14006e017
lea rdx, [rsp + rax]
add rdx, 0x80
xor ecx, ecx
cmp byte [rdx + rcx], 0
je 0x14006dfbc
inc rcx
cmp r13, rcx
jne 0x14006dfac
jmp 0x14006e017
add rcx, rax
cmp rcx, rdi
jne 0x14006e017
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x60], xmm0
mov dword [rsp + 0x58], 1
mov qword [rsp + 0x48], 0
lea rcx, [rsp + 0x80]
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x48]
xor edx, edx
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x14006e042
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
jmp 0x14006e01e
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsp + 0x30], rax
mov eax, 1
test rax, rax
je 0x14006e05e
mov rcx, qword [rsp + 0x30]
mov qword [rsi + 8], rcx
mov qword [rsi], 0
jmp 0x14006df4c
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov word [rsp + 0x40], r14w
xor eax, eax
test rax, rax
jne 0x14006e02d
movzx eax, word [rsp + 0x40]
movzx ecx, word [rsp + 0x46]
mov word [rsp + 0x9e], cx
mov ecx, dword [rsp + 0x42]
mov dword [rsp + 0x9a], ecx
movdqu xmm0, xmmword [rsp + 0x30]
mov word [rsp + 0x28], ax
movdqu xmmword [rsp + 0x88], xmm0
mov word [rsp + 0x98], ax
lea rax, [rsp + 0x28]
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x80]
call fcn.140078e10
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
shl rdx, 5
add rdx, rcx
mov qword [rsi], rcx
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rdx
jmp 0x14006df4c