Function at 0x14001dca0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movdqa xmmword [rsp + 0xf0], xmm15
movdqa xmmword [rsp + 0xe0], xmm14
movdqa xmmword [rsp + 0xd0], xmm13
movdqa xmmword [rsp + 0xc0], xmm12
movdqa xmmword [rsp + 0xb0], xmm11
movdqa xmmword [rsp + 0xa0], xmm10
movdqa xmmword [rsp + 0x90], xmm9
movdqa xmmword [rsp + 0x80], xmm8
movdqa xmmword [rsp + 0x70], xmm7
movdqa xmmword [rsp + 0x60], xmm6
mov rax, r8
shr rax, 2
mov r12d, r8d
and r12d, 3
lea rax, [rax + rax*2]
lea r10d, [r12 + r12*2]
shr r10d, 2
add r10, rax
cmp r10, qword [rsp + 0x170]
jbe 0x14001dd3f
mov byte [rcx + 8], 1
jmp 0x14001e16f
mov r15, rdx
mov qword [rsp + 0x28], rcx
mov rcx, r8
and rcx, 0xfffffffffffffffc
movabs rdx, 0xaaaaaaaaaaaaaaab
mov rax, r10
mul rdx
mov rax, rdx
lea rdx, [r15 + rcx]
shr rax, 1
lea rax, [rax + rax*2]
mov qword [rsp + 0x40], r10
sub r10, rax
mov qword [rsp + 0x58], r10
lea r10, [r9 + rax]
mov qword [rsp + 0x50], r10
test rcx, rcx
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x48], r8
je 0x14001df6d
xor r8d, r8d
movdqa xmm7, xmmword [0x14006c230]
movdqa xmm5, xmmword [0x14006c280]
movdqa xmm9, xmmword [0x14006c290]
movdqa xmm10, xmmword [0x14006c2a0]
movdqa xmm6, xmmword [0x14006c2b0]
movdqa xmm12, xmmword [0x14006c2c0]
movdqa xmm13, xmmword [0x14006c2d0]
movdqa xmm14, xmmword [0x14006c2e0]
pcmpeqd xmm15, xmm15
xor ebp, ebp
nop word cs:[rax + rax]
sub rax, 3
jb 0x14001df6f
movd xmm0, dword [r15 + r8]
punpcklbw xmm0, xmmword [0x14006c2f0]
movdqa xmm1, xmmword [str.....]
psubw xmm1, xmm0
movdqa xmm2, xmm0
paddw xmm2, xmmword [0x14006c220]
pand xmm2, xmm1
movdqa xmm4, xmmword [0x14006c240]
psubw xmm4, xmm0
movdqa xmm1, xmm0
paddw xmm1, xmmword [0x14006c250]
pand xmm1, xmm4
movdqa xmm4, xmm0
paddw xmm4, xmmword [0x14006c270]
movdqa xmm8, xmm5
psubw xmm8, xmm0
pand xmm8, xmm4
psraw xmm8, 8
movdqa xmm4, xmm0
paddw xmm4, xmm9
pand xmm4, xmm8
movdqa xmm8, xmm0
paddw xmm8, xmm10
movdqa xmm11, xmm6
psubw xmm11, xmm0
pand xmm11, xmm8
psraw xmm11, 8
movdqa xmm8, xmm0
paddw xmm8, xmm12
pand xmm8, xmm11
movdqa xmm11, xmm0
paddw xmm11, xmm13
movdqa xmm3, xmm7
psubw xmm3, xmm0
pand xmm3, xmm11
psraw xmm3, 8
paddw xmm0, xmm14
pand xmm0, xmm3
paddw xmm0, xmm8
paddw xmm0, xmm4
psrlw xmm1, 8
pand xmm1, xmmword [0x14006c260]
paddw xmm0, xmm15
paddw xmm0, xmm1
psrlw xmm2, 8
pand xmm2, xmm7
paddw xmm2, xmm0
pextrw r10d, xmm2, 1
pextrw r11d, xmm0, 1
pextrw edi, xmm2, 2
pextrw r13d, xmm0, 2
pextrw esi, xmm2, 3
movd ebx, xmm0
pshufd xmm0, xmm2, 0x55
por xmm0, xmm2
movdqa xmm1, xmm0
psrld xmm1, 0x10
por xmm1, xmm0
movd r14d, xmm1
shl ebx, 2
shr r10d, 4
or r10d, ebx
mov byte [r9], r10b
shl r11d, 4
shr edi, 2
or edi, r11d
mov byte [r9 + 1], dil
shl r13d, 6
or esi, r13d
mov byte [r9 + 2], sil
shr r14d, 8
and r14d, 1
or ebp, r14d
add r8, 4
add r9, 3
cmp rcx, r8
jne 0x14001ddf0
jmp 0x14001df6f
xor ebp, ebp
mov dword [rsp + 0x24], 0x41414141
lea rcx, [rsp + 0x24]
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
movd xmm0, dword [rsp + 0x24]
pxor xmm1, xmm1
punpcklbw xmm0, xmm1
movdqa xmm2, xmmword [0x14006c240]
psubw xmm2, xmm0
movdqa xmm1, xmmword [0x14006c250]
paddw xmm1, xmm0
pand xmm1, xmm2
psrlw xmm1, 8
pand xmm1, xmmword [0x14006c260]
movdqa xmm2, xmmword [0x14006c270]
paddw xmm2, xmm0
movdqa xmm3, xmmword [0x14006c280]
psubw xmm3, xmm0
pand xmm3, xmm2
psraw xmm3, 8
movdqa xmm2, xmmword [0x14006c290]
paddw xmm2, xmm0
pand xmm2, xmm3
movdqa xmm3, xmmword [0x14006c2a0]
paddw xmm3, xmm0
movdqa xmm4, xmmword [0x14006c2b0]
psubw xmm4, xmm0
pand xmm4, xmm3
psraw xmm4, 8
movdqa xmm5, xmmword [0x14006c2c0]
paddw xmm5, xmm0
pand xmm5, xmm4
movdqa xmm4, xmmword [0x14006c2d0]
paddw xmm4, xmm0
movdqa xmm3, xmmword [0x14006c230]
movdqa xmm6, xmm3
psubw xmm6, xmm0
pand xmm6, xmm4
psraw xmm6, 8
movdqa xmm4, xmmword [0x14006c2e0]
paddw xmm4, xmm0
pand xmm4, xmm6
paddw xmm4, xmm5
paddw xmm4, xmm2
pcmpeqd xmm2, xmm2
paddw xmm2, xmm4
paddw xmm2, xmm1
movd eax, xmm2
shl eax, 2
movdqa xmm1, xmmword [str.....]
psubw xmm1, xmm0
paddw xmm0, xmmword [0x14006c220]
pand xmm0, xmm1
psrlw xmm0, 8
pand xmm0, xmm3
paddw xmm0, xmm2
pextrw ecx, xmm0, 1
shr ecx, 4
or ecx, eax
mov byte [rsp + 0x21], cl
pextrw eax, xmm2, 1
shl eax, 4
pextrw ecx, xmm0, 2
shr ecx, 2
or ecx, eax
mov byte [rsp + 0x22], cl
pextrw eax, xmm2, 2
shl eax, 6
pextrw ecx, xmm0, 3
or ecx, eax
mov byte [rsp + 0x23], cl
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movd edi, xmm0
shr edi, 8
and edi, 1
xor eax, eax
cmp r12, 1
sete al
or ebp, eax
lea rdx, [rsp + 0x21]
mov rcx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
call sub.VCRUNTIME140.dll_memcpy
or bp, di
je 0x14001e118
mov rcx, qword [rsp + 0x28]
mov byte [rcx + 8], 0
jmp 0x14001e16f
mov rbx, qword [rsp + 0x40]
mov rax, rbx
mov rdi, qword [rsp + 0x48]
or rax, rdi
je 0x14001e351
mov r8d, 4
mov rcx, r15
mov rdx, rdi
call fcn.14001f810
cmp rax, rdi
ja 0x14001e165
mov r12, rax
mov r8d, 3
mov rsi, qword [rsp + 0x38]
mov rcx, rsi
mov rdx, rbx
call fcn.14001f810
mov rdx, rbx
sub rdx, rax
jae 0x14001e1df
xor eax, eax
mov rcx, qword [rsp + 0x28]
mov byte [rcx + 8], al
mov qword [rcx], 0
mov rax, rcx
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm8, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0x90]
movaps xmm10, xmmword [rsp + 0xa0]
movaps xmm11, xmmword [rsp + 0xb0]
movaps xmm12, xmmword [rsp + 0xc0]
movaps xmm13, xmmword [rsp + 0xd0]
movaps xmm14, xmmword [rsp + 0xe0]
movaps xmm15, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add rax, rsi
mov dword [rsp + 0x34], 0
lea r8, [rsp + 0x34]
mov r9d, 4
mov rcx, rax
call fcn.14001e370
test rax, rax
je 0x14001e22c
lea rcx, [r15 + r12]
add rdi, r15
sub rdi, rcx
cmp rdx, rdi
cmovb rdi, rdx
test rdi, rdi
je 0x14001e351
cmp rdi, 8
jae 0x14001e233
xor r8d, r8d
xor edx, edx
jmp 0x14001e330
mov al, 1
jmp 0x14001e167
cmp rdi, 0x20
jae 0x14001e243
xor r8d, r8d
xor edx, edx
jmp 0x14001e2d4
mov rdx, rdi
and rdx, 0xffffffffffffffe0
lea r8, [r12 + r15]
add r8, 0x10
pxor xmm0, xmm0
xor r9d, r9d
pxor xmm1, xmm1
movdqu xmm2, xmmword [rax + r9]
movdqu xmm3, xmmword [rax + r9 + 0x10]
movdqu xmm4, xmmword [r8 + r9 - 0x10]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm2, xmmword [r8 + r9]
pxor xmm2, xmm3
por xmm1, xmm2
add r9, 0x20
cmp rdx, r9
jne 0x14001e25d
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd r8d, xmm1
cmp rdi, rdx
je 0x14001e348
test dil, 0x18
je 0x14001e330
mov r9, rdx
mov rdx, rdi
and rdx, 0xfffffffffffffff8
movzx r8d, r8b
movd xmm0, r8d
mov r8, qword [rcx + r9]
xor r8, qword [rax + r9]
movq xmm1, r8
por xmm0, xmm1
add r9, 8
cmp rdx, r9
jne 0x14001e2e7
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd r8d, xmm1
cmp rdi, rdx
je 0x14001e348
nop
movzx r9d, byte [rcx + rdx]
xor r9b, byte [rax + rdx]
lea r10, [rdx + 1]
or r8b, r9b
mov rdx, r10
cmp rdi, r10
jne 0x14001e330
test r8b, r8b
jne 0x14001e165
mov rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x38]
mov qword [rcx], rax
mov qword [rcx + 8], rbx
jmp 0x14001e176