Function at 0x14001a820
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push r14
sub rsp, 0xf0
mov rax, qword [0x1400f9b40]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov r14, qword [rcx + 0x238]
mov rdi, rcx
test r14, r14
jne 0x14001a851
lea r14, [rcx + 0x40]
mov rsi, qword [rcx + 0x210]
cmp rsi, 0xf0
jbe 0x14001adc9
mov qword [rsp + 0x120], rbp
mov ebp, dword [rcx + 0x200]
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xd0], xmm7
movaps xmmword [rsp + 0xc0], xmm8
movaps xmmword [rsp + 0xb0], xmm9
mov qword [rsp + 0x118], rbx
movups xmm9, xmmword [rcx + 0x20]
movups xmm7, xmmword [rcx]
movdqa xmmword [rsp + 0x40], xmm9
movdqa xmmword [rsp + 0x20], xmm7
movups xmm8, xmmword [rcx + 0x10]
movups xmm6, xmmword [rcx + 0x30]
movdqa xmmword [rsp + 0x30], xmm8
movdqa xmmword [rsp + 0x50], xmm6
cmp ebp, 0x40
jb 0x14001abe8
mov rbx, qword [rcx + 0x218]
lea r9d, [rbp - 1]
mov rax, qword [rcx + 0x208]
lea r11, [rcx + 0x100]
mov r8, rbx
shr r9, 6
sub r8, rax
mov qword [rsp + 0x128], r15
mov r15, qword [rcx + 0x220]
xor r10d, r10d
lea rcx, [r14 + rax*8]
cmp r9, r8
jb 0x14001aaee
mov rdx, r10
test r8, r8
je 0x14001a9f5
add rcx, 0x20
lea rax, [r11 + 0x10]
nop word [rax + rax]
prefetcht0 byte [rax + 0x170]
movdqu xmm0, xmmword [rax - 0x10]
inc rdx
lea rax, [rax + 0x40]
movdqu xmm2, xmmword [rcx - 0x20]
lea rcx, [rcx + 8]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm7, xmm0
pmuludq xmm1, xmm2
paddq xmm7, xmm1
movdqa xmmword [rsp + 0x20], xmm7
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm2, xmmword [rcx - 0x18]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm8, xmm0
pmuludq xmm1, xmm2
paddq xmm8, xmm1
movdqa xmmword [rsp + 0x30], xmm8
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm2, xmmword [rcx - 8]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm9, xmm0
pmuludq xmm1, xmm2
paddq xmm9, xmm1
movdqa xmmword [rsp + 0x40], xmm9
movdqu xmm1, xmmword [rax - 0x20]
movdqu xmm0, xmmword [rcx + 8]
xorps xmm0, xmm1
pshufd xmm2, xmm0, 0x31
pmuludq xmm2, xmm0
pshufd xmm0, xmm1, 0x4e
paddq xmm6, xmm0
paddq xmm6, xmm2
movdqa xmmword [rsp + 0x50], xmm6
cmp rdx, r8
jb 0x14001a930
movdqa xmm2, xmmword [0x1400bb970]
movdqa xmm1, xmm7
movdqu xmm0, xmmword [r15 + r14]
mov rax, r8
sub r9, r8
psrlq xmm1, 0x2f
mov r8, rbx
xorps xmm1, xmm7
shl rax, 6
xorps xmm1, xmm0
add r11, rax
pshufd xmm7, xmm1, 0x31
mov rcx, r14
pmuludq xmm1, xmm2
pmuludq xmm7, xmm2
psllq xmm7, 0x20
paddq xmm7, xmm1
movdqa xmm1, xmm8
psrlq xmm1, 0x2f
movdqa xmmword [rsp + 0x20], xmm7
xorps xmm1, xmm8
movdqu xmm0, xmmword [r15 + r14 + 0x10]
xorps xmm1, xmm0
pshufd xmm8, xmm1, 0x31
pmuludq xmm1, xmm2
pmuludq xmm8, xmm2
psllq xmm8, 0x20
paddq xmm8, xmm1
movdqa xmm1, xmm9
psrlq xmm1, 0x2f
movdqa xmmword [rsp + 0x30], xmm8
xorps xmm1, xmm9
movdqu xmm0, xmmword [r15 + r14 + 0x20]
xorps xmm1, xmm0
movdqa xmm0, xmm6
psrlq xmm0, 0x2f
pshufd xmm9, xmm1, 0x31
xorps xmm6, xmm0
pmuludq xmm9, xmm2
pmuludq xmm1, xmm2
psllq xmm9, 0x20
paddq xmm9, xmm1
movdqa xmmword [rsp + 0x40], xmm9
movdqu xmm0, xmmword [r15 + r14 + 0x30]
xorps xmm0, xmm6
pshufd xmm6, xmm0, 0x31
pmuludq xmm6, xmm2
pmuludq xmm0, xmm2
psllq xmm6, 0x20
paddq xmm6, xmm0
movdqa xmmword [rsp + 0x50], xmm6
cmp r9, rbx
jae 0x14001a913
mov r15, qword [rsp + 0x128]
test r9, r9
je 0x14001abdc
add rcx, 0x20
lea rax, [r11 + 0x10]
nop word [rax + rax]
prefetcht0 byte [rax + 0x170]
movdqu xmm0, xmmword [rax - 0x10]
inc r10
lea rax, [rax + 0x40]
movdqu xmm2, xmmword [rcx - 0x20]
lea rcx, [rcx + 8]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm7, xmm0
pmuludq xmm1, xmm2
paddq xmm7, xmm1
movdqa xmmword [rsp + 0x20], xmm7
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm2, xmmword [rcx - 0x18]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm8, xmm0
pmuludq xmm1, xmm2
paddq xmm8, xmm1
movdqa xmmword [rsp + 0x30], xmm8
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm2, xmmword [rcx - 8]
xorps xmm2, xmm0
pshufd xmm0, xmm0, 0x4e
pshufd xmm1, xmm2, 0x31
paddq xmm9, xmm0
pmuludq xmm1, xmm2
paddq xmm9, xmm1
movdqa xmmword [rsp + 0x40], xmm9
movdqu xmm1, xmmword [rax - 0x20]
movdqu xmm0, xmmword [rcx + 8]
xorps xmm0, xmm1
pshufd xmm2, xmm0, 0x31
pmuludq xmm2, xmm0
pshufd xmm0, xmm1, 0x4e
paddq xmm6, xmm0
paddq xmm6, xmm2
movdqa xmmword [rsp + 0x50], xmm6
cmp r10, r9
jb 0x14001ab10
mov rsi, qword [rdi + 0x210]
lea rcx, [rbp + 0xc0]
add rcx, rdi
jmp 0x14001ac27
mov eax, 0x40
lea rcx, [rsp + 0x60]
sub eax, ebp
mov rdx, rdi
mov ebx, eax
sub rdx, rbx
mov r8d, eax
add rdx, 0x200
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x60]
mov r8, rbp
add rcx, rbx
lea rdx, [rdi + 0x100]
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsp + 0x60]
movdqu xmm0, xmmword [rcx]
mov rax, qword [rdi + 0x220]
pshufd xmm2, xmm0, 0x4e
paddq xmm2, xmm7
movdqu xmm1, xmmword [rax + r14 - 7]
xorps xmm1, xmm0
pshufd xmm0, xmm1, 0x31
pmuludq xmm0, xmm1
paddq xmm2, xmm0
movdqa xmmword [rsp + 0x20], xmm2
movdqu xmm1, xmmword [rax + r14 + 9]
movdqu xmm0, xmmword [rcx + 0x10]
xorps xmm1, xmm0
pshufd xmm3, xmm0, 0x4e
pshufd xmm0, xmm1, 0x31
paddq xmm3, xmm8
pmuludq xmm0, xmm1
paddq xmm3, xmm0
movdqa xmmword [rsp + 0x30], xmm3
movdqu xmm1, xmmword [rax + r14 + 0x19]
movdqu xmm0, xmmword [rcx + 0x20]
xorps xmm1, xmm0
pshufd xmm4, xmm0, 0x4e
pshufd xmm0, xmm1, 0x31
paddq xmm4, xmm9
pmuludq xmm0, xmm1
paddq xmm4, xmm0
movdqa xmmword [rsp + 0x40], xmm4
movdqu xmm1, xmmword [rax + r14 + 0x29]
movabs rax, 0x9e3779b185ebca87
movdqu xmm0, xmmword [rcx + 0x30]
imul rsi, rax
pshufd xmm5, xmm0, 0x4e
xorps xmm1, xmm0
pshufd xmm0, xmm1, 0x31
paddq xmm5, xmm6
pmuludq xmm0, xmm1
movq rcx, xmm2
xor rcx, qword [r14 + 0xb]
paddq xmm5, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 8
movq rax, xmm0
movdqa xmm0, xmm3
xor rax, qword [r14 + 0x13]
mul rcx
psrldq xmm0, 8
movq rcx, xmm3
xor rcx, qword [r14 + 0x1b]
xor rax, rdx
add rsi, rax
movq rax, xmm0
xor rax, qword [r14 + 0x23]
movdqa xmm0, xmm4
mul rcx
psrldq xmm0, 8
movq rcx, xmm4
xor rcx, qword [r14 + 0x2b]
xor rax, rdx
add rsi, rax
movq rax, xmm0
xor rax, qword [r14 + 0x33]
movdqa xmm0, xmm5
mul rcx
psrldq xmm0, 8
movq rcx, xmm5
xor rcx, qword [r14 + 0x3b]
xor rax, rdx
add rsi, rax
movq rax, xmm0
xor rax, qword [r14 + 0x43]
mul rcx
xor rax, rdx
add rsi, rax
movabs rax, 0x165667919e3779f9
mov rcx, rsi
shr rcx, 0x25
xor rcx, rsi
imul rcx, rax
mov rax, rcx
shr rax, 0x20
movaps xmm9, xmmword [rsp + 0xb0]
xor rax, rcx
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm6, xmmword [rsp + 0xe0]
mov rbp, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x118]
jmp 0x14001adfd
add rcx, 0x100
mov rdx, rsi
cmp dword [rdi + 0x204], 0
je 0x14001adea
mov r8, qword [rdi + 0x228]
call fcn.14001bec0
jmp 0x14001adfd
mov r9, qword [rdi + 0x220]
mov r8, r14
add r9, 0x40
call fcn.14001b6c0
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.14009a250
add rsp, 0xf0
pop r14
pop rdi
pop rsi
ret