Function at 0x14001e920
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov r15, r9
mov qword [rbp - 0x28], rdx
mov r11, rcx
mov rax, qword [0x1403486d0]
xor rax, rbp
mov qword [rbp], rax
lea rsi, [r8 - 1]
mov r14, qword [rcx]
mov rdi, rsi
sub rdi, r14
lea r9, [rdi + 7]
mov r13, r9
shr r13, 3
lea rcx, [r13*8 + 0xf]
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400e6f00
sub rsp, rax
mov rdx, rsp
mov rax, rcx
call fcn.1400e6f00
sub rsp, rax
mov r10, rsp
lea rcx, [r14 + 7]
mov rbx, rcx
shr rbx, 3
lea rax, [rbx*8 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
mov qword [rbp - 0x48], rsp
lea rax, [r14 + r14]
add rax, 1
mov r12d, 0xffffffe9
cmp rsi, rax
jb 0x14001ede1
mov qword [rbp - 0x40], r8
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x38], r9
mov r8, qword [rbp + 0x70]
lea rax, [r14 + r14]
not rax
add rsi, rax
cmp rsi, r8
jb 0x14001ede1
mov r12, qword [rbp + 0x80]
lea rcx, [rdi + 0xf]
and rcx, 0xfffffffffffffff8
add rcx, 0xffffffffffffffff
and rcx, 0xfffffffffffffff8
sub rsp, 0x20
mov qword [rbp - 0x18], r11
mov qword [rbp - 0x10], rdx
mov qword [rbp - 8], rdi
mov qword [rbp - 0x20], r10
mov rsi, r8
call fcn.140016010
mov rcx, qword [rbp - 0x18]
mov rdx, r12
mov r8, qword [rbp + 0x88]
mov r9, qword [rbp - 0x10]
call fcn.140015da0
add rsp, 0x20
mov rax, rsi
not rax
add rax, qword [rbp - 8]
mov rcx, qword [rbp - 0x10]
mov byte [rcx + rax], 1
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp - 8]
add rcx, rax
sub rcx, rsi
sub rsp, 0x20
mov rdx, qword [rbp + 0x78]
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov rax, qword [rbp - 0x18]
mov rdx, qword [rax]
sub rsp, 0x20
mov rcx, qword [rbp - 0x28]
mov r8, r15
call qword [rcx]
mov r8, qword [rbp - 0x20]
mov rdx, qword [rbp - 8]
mov rcx, qword [rbp - 0x18]
add rsp, 0x20
mov r12d, 0xffffffff
test eax, eax
jne 0x14001ede1
mov r9, qword [rcx]
sub rsp, 0x30
mov qword [rsp + 0x20], r15
call fcn.14002ac50
mov r10, qword [rbp - 0x20]
mov rsi, qword [rbp - 0x10]
add rsp, 0x30
test r13, r13
je 0x14001ebc0
cmp qword [rbp - 0x38], 0x20
jb 0x14001ebb0
mov r8, r13
and r8, 0xfffffffffffffffc
lea rax, [r8 - 4]
mov rcx, rax
shr rcx, 2
add rcx, 1
mov r9d, ecx
and r9d, 1
test rax, rax
je 0x14001eb6a
lea rax, [r10 + r13*8]
add rax, 0xfffffffffffffff0
lea rdx, [rsi + r13*8]
add rdx, 0xfffffffffffffff0
mov rdi, r9
sub rdi, rcx
mov rcx, 0xfffffffffffffffe
nop
movups xmm0, xmmword [rdx + rcx*8 - 0x20]
movups xmm1, xmmword [rdx + rcx*8 - 0x10]
movups xmm2, xmmword [rdx + rcx*8]
movups xmm3, xmmword [rdx + rcx*8 + 0x10]
movups xmm4, xmmword [rax + rcx*8]
xorps xmm4, xmm2
movups xmm2, xmmword [rax + rcx*8 + 0x10]
xorps xmm2, xmm3
movups xmmword [rdx + rcx*8 + 0x10], xmm2
movups xmmword [rdx + rcx*8], xmm4
movups xmm2, xmmword [rax + rcx*8 - 0x20]
xorps xmm2, xmm0
movups xmm0, xmmword [rax + rcx*8 - 0x10]
xorps xmm0, xmm1
movups xmmword [rdx + rcx*8 - 0x10], xmm0
movups xmmword [rdx + rcx*8 - 0x20], xmm2
add rcx, 0xfffffffffffffff8
add rdi, 2
jne 0x14001eb10
add rcx, 1
test r9, r9
jne 0x14001eb76
jmp 0x14001eb9f
mov rcx, 0xffffffffffffffff
test r9, r9
je 0x14001eb9f
add rcx, r13
movups xmm0, xmmword [rsi + rcx*8 - 0x18]
movups xmm1, xmmword [rsi + rcx*8 - 8]
movups xmm2, xmmword [r10 + rcx*8 - 0x18]
xorps xmm2, xmm0
movups xmm0, xmmword [r10 + rcx*8 - 8]
xorps xmm0, xmm1
movups xmmword [rsi + rcx*8 - 8], xmm0
movups xmmword [rsi + rcx*8 - 0x18], xmm2
cmp r13, r8
je 0x14001ebc0
sub r13, r8
nop word [rax + rax]
mov rax, qword [r10 + r13*8 - 8]
xor qword [rsi + r13*8 - 8], rax
add r13, 0xffffffffffffffff
jne 0x14001ebb0
sub rsp, 0x30
mov qword [rsp + 0x20], rsi
mov rcx, qword [rbp - 0x18]
mov rdx, r14
mov r13, qword [rbp - 0x48]
mov r8, r13
mov r9, qword [rbp - 8]
call fcn.14002ac50
add rsp, 0x30
test rbx, rbx
mov r10, qword [rbp - 0x40]
je 0x14001ed00
cmp qword [rbp - 0x30], 0x20
jb 0x14001ecf0
mov r8, rbx
and r8, 0xfffffffffffffffc
lea rax, [r8 - 4]
mov rcx, rax
shr rcx, 2
add rcx, 1
mov r9d, ecx
and r9d, 1
test rax, rax
je 0x14001ecaa
lea rax, [rbx*8 - 0x10]
add rax, r13
lea rdx, [r15 + rbx*8]
add rdx, 0xfffffffffffffff0
mov rdi, r9
sub rdi, rcx
mov rcx, 0xfffffffffffffffe
nop word cs:[rax + rax]
nop dword [rax]
movups xmm0, xmmword [rdx + rcx*8 - 0x20]
movups xmm1, xmmword [rdx + rcx*8 - 0x10]
movups xmm2, xmmword [rdx + rcx*8]
movups xmm3, xmmword [rdx + rcx*8 + 0x10]
movups xmm4, xmmword [rax + rcx*8]
xorps xmm4, xmm2
movups xmm2, xmmword [rax + rcx*8 + 0x10]
xorps xmm2, xmm3
movups xmmword [rdx + rcx*8 + 0x10], xmm2
movups xmmword [rdx + rcx*8], xmm4
movups xmm2, xmmword [rax + rcx*8 - 0x20]
xorps xmm2, xmm0
movups xmm0, xmmword [rax + rcx*8 - 0x10]
xorps xmm0, xmm1
movups xmmword [rdx + rcx*8 - 0x10], xmm0
movups xmmword [rdx + rcx*8 - 0x20], xmm2
add rcx, 0xfffffffffffffff8
add rdi, 2
jne 0x14001ec50
add rcx, 1
test r9, r9
jne 0x14001ecb6
jmp 0x14001ece3
mov rcx, 0xffffffffffffffff
test r9, r9
je 0x14001ece3
add rcx, rbx
movups xmm0, xmmword [r15 + rcx*8 - 0x18]
movups xmm1, xmmword [r15 + rcx*8 - 8]
movups xmm2, xmmword [r13 + rcx*8 - 0x18]
xorps xmm2, xmm0
movups xmm0, xmmword [r13 + rcx*8 - 8]
xorps xmm0, xmm1
movups xmmword [r15 + rcx*8 - 8], xmm0
movups xmmword [r15 + rcx*8 - 0x18], xmm2
cmp rbx, r8
je 0x14001ed00
sub rbx, r8
nop dword [rax + rax]
mov rax, qword [r13 + rbx*8 - 8]
xor qword [r15 + rbx*8 - 8], rax
add rbx, 0xffffffffffffffff
jne 0x14001ecf0
lea r12, [r10 + 7]
mov qword [rbp - 0x28], r12
and r12, 0xfffffffffffffff8
mov rbx, r12
sub rbx, r10
lea r14, [r15 + rbx]
add r14, 1
mov rdi, qword [rbp - 0x18]
mov r8, qword [rdi]
sub rsp, 0x20
mov rcx, r14
mov rdx, r15
call fcn.1400f9752
mov rcx, rbx
mov rdx, r15
call fcn.140016010
add rsp, 0x20
mov byte [r15 + rbx], 0
add r14, qword [rdi]
sub rsp, 0x20
mov rcx, r14
mov rsi, qword [rbp - 0x10]
mov rdx, rsi
mov r8, qword [rbp - 8]
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov rbx, qword [rbp - 0x38]
and rbx, 0xfffffffffffffff8
sub rsp, 0x20
mov rcx, rbx
mov rdx, rsi
call fcn.140016010
mov rcx, rbx
mov rdx, qword [rbp - 0x20]
call fcn.140016010
add rsp, 0x20
mov rcx, qword [rbp - 0x30]
and rcx, 0xfffffffffffffff8
sub rsp, 0x20
mov rdx, r13
call fcn.140016010
add rsp, 0x20
lea rax, [r15 + r12]
add rax, 0xfffffffffffffff8
cmp rax, r15
jbe 0x14001edcf
nop
mov rcx, qword [r15]
bswap rcx
mov rdx, qword [rax]
bswap rdx
mov qword [r15], rdx
mov qword [rax], rcx
add r15, 8
add rax, 0xfffffffffffffff8
cmp r15, rax
jb 0x14001edb0
xor r12d, r12d
test byte [rbp - 0x28], 8
je 0x14001ede1
mov rax, qword [r15]
bswap rax
mov qword [r15], rax
mov rcx, qword [rbp]
xor rcx, rbp
sub rsp, 0x20
call fcn.1400e6b50
add rsp, 0x20
mov eax, r12d
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret