Function at 0x1401515f0
Capabilities:
Resolve dns

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x70
mov r14, rcx
mov rsi, qword [rdx]
mov rdi, qword [rdx + 8]
movzx ebp, word [rdx + 0x10]
mov rax, qword [0x1402cef10]
cmp rax, 3
jne 0x1401518e4
lea rcx, [rsp + 0x28]
mov rdx, rsi
mov r8, rdi
call fcn.140142bc0
mov rdi, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jae 0x140151668
test rdx, rdx
je 0x140151723
xor eax, eax
nop word cs:[rax + rax]
nop
cmp byte [rdi + rax], 0
je 0x1401517c7
add rax, 1
cmp rdx, rax
jne 0x140151650
jmp 0x140151723
lea rcx, [rdi + 7]
and rcx, 0xfffffffffffffff8
sub rcx, rdi
je 0x14015169e
cmp rcx, rdx
cmova rcx, rdx
xor eax, eax
nop
cmp byte [rdi + rax], 0
je 0x1401517c7
add rax, 1
cmp rcx, rax
jne 0x140151680
lea rax, [rdx - 0x10]
cmp rcx, rax
jbe 0x1401516a4
jmp 0x1401516f7
lea rax, [rdx - 0x10]
xor ecx, ecx
movdqa xmm0, xmmword [0x140220730]
movdqa xmm1, xmmword [0x140220740]
pxor xmm2, xmm2
nop dword [rax + rax]
movdqu xmm3, xmmword [rdi + rcx]
movdqa xmm4, xmm3
paddq xmm4, xmm0
pandn xmm3, xmm4
pand xmm3, xmm1
pcmpeqb xmm3, xmm2
pmovmskb ebx, xmm3
cmp ebx, 0xffff
jne 0x1401516ee
add rcx, 0x10
cmp rcx, rax
jbe 0x1401516c0
cmp rcx, rdx
ja 0x140151932
sub rdx, rcx
je 0x140151723
add rcx, rdi
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax + rax]
cmp byte [rcx + rax], 0
je 0x1401517c7
add rax, 1
cmp rdx, rax
jne 0x140151710
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rsp + 0x28]
movaps xmmword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x40]
call fcn.140142030
mov rdi, rax
mov rbx, rdx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x48], 1
mov qword [rsp + 0x28], 0
lea r8, [rsp + 0x40]
lea r9, [rsp + 0x28]
mov rcx, rax
xor edx, edx
call sub.WS2_32.dll_getaddrinfo
test eax, eax
je 0x1401518a7
call sub.WS2_32.dll_WSAGetLastError
mov eax, eax
shl rax, 0x18
mov byte [r14 + 8], 0
mov qword [r14 + 9], rax
mov byte [r14 + 0x17], 0
mov word [r14 + 0x15], 0
mov dword [r14 + 0x11], 0
mov eax, 1
mov qword [r14], rax
mov byte [rdi], 0
test rbx, rbx
jne 0x1401518c6
jmp 0x1401518d8
mov rbp, qword [rsp + 0x30]
call sub.KERNEL32.dll_GetProcessHeap
mov r8d, 0x21
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x140151921
mov rbx, rax
mov al, byte [0x140274aa5]
mov byte [rbx + 0x20], al
movups xmm0, xmmword [0x140274a95]
movups xmmword [rbx + 0x10], xmm0
movups xmm0, xmmword [0x140274a85]
movups xmmword [rbx], xmm0
call sub.KERNEL32.dll_GetProcessHeap
mov r8d, 0x18
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x140151910
mov rsi, rax
mov qword [rax], rbx
movaps xmm0, xmmword [0x140220c40]
movups xmmword [rax + 8], xmm0
call sub.KERNEL32.dll_GetProcessHeap
mov r8d, 0x18
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x140151910
mov rbx, rax
mov qword [rax], rsi
lea rax, [0x140272fb0]
mov qword [rbx + 8], rax
mov byte [rbx + 0x10], 0xb
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x43]
mov dword [rbx + 0x11], eax
mov dword [rbx + 0x14], ecx
test rbp, rbp
je 0x140151892
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rdi
call fcn.14021dfcd
mov qword [r14 + 0x10], rbx
mov qword [r14 + 8], 2
mov qword [r14], 1
jmp 0x1401518d8
mov rax, qword [rsp + 0x28]
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rax
mov word [r14 + 0x18], bp
xor eax, eax
mov qword [r14], rax
mov byte [rdi], 0
test rbx, rbx
je 0x1401518d8
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rdi
call fcn.14021dfcd
nop
add rsp, 0x70
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov byte [rsp + 0x28], 1
lea rax, [rsp + 0x28]
mov qword [rsp + 0x40], rax
lea rcx, [0x1402cef10]
lea r8, [0x1402750b0]
lea rdx, [rsp + 0x40]
call fcn.14014eb60
jmp 0x140151619
mov ecx, 0x18
mov edx, 8
call fcn.1400182a0
ud2
mov ecx, 0x21
mov edx, 1
call fcn.1400182a0
ud2
lea r8, [0x140224150]
call fcn.1400214d0
ud2