Function at 0x14001ee10
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 qword [rbp - 0x50], r8
mov rdi, qword [rbp + 0x70]
mov rax, qword [0x1403486d0]
xor rax, rbp
mov qword [rbp], rax
lea r8, [r9 - 1]
mov qword [rbp - 0x40], rcx
mov rbx, qword [rcx]
lea r13, [rbx + 0xf]
mov rax, r13
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
mov r10, rsp
mov r15, r8
sub r15, rbx
lea rax, [r15 + 7]
and rax, 0xfffffffffffffff8
mov qword [rbp - 0x20], rax
lea rcx, [rax + 0xf]
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400e6f00
sub rsp, rax
mov r12, rsp
mov rax, rcx
call fcn.1400e6f00
sub rsp, rax
mov qword [rbp - 0x30], rsp
mov qword [rbp - 0x38], rbx
lea rcx, [rbx + 7]
and rcx, 0xfffffffffffffff8
add rcx, 0xf
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400e6f00
sub rsp, rax
mov r14, rsp
mov rax, rcx
call fcn.1400e6f00
sub rsp, rax
mov qword [rbp - 0x10], rsp
mov dword [rbp - 4], 0
lea r11, [r9 + 7]
mov rax, r11
and rax, 0xfffffffffffffff8
lea rsi, [rdi + rax]
add rsi, 0xfffffffffffffff8
mov rbx, rdi
cmp rsi, rdi
jbe 0x14001ef0f
mov rbx, qword [rbp + 0x70]
nop word [rax + rax]
mov rcx, qword [rbx]
bswap rcx
mov rdi, qword [rsi]
bswap rdi
mov qword [rbx], rdi
mov qword [rsi], rcx
add rbx, 8
add rsi, 0xfffffffffffffff8
cmp rbx, rsi
jb 0x14001eef0
test r11b, 8
je 0x14001ef1e
mov rcx, qword [rbx]
bswap rcx
mov qword [rbx], rcx
mov rdi, qword [rbp - 0x40]
mov rcx, qword [rdi]
add rcx, rcx
add rcx, 1
mov ebx, 0xffffffe8
cmp r8, rcx
jb 0x14001f37a
mov qword [rbp - 0x18], rdx
mov r8, qword [rbp + 0x80]
mov rdx, qword [rbp + 0x78]
sub rax, r9
mov rcx, qword [rbp + 0x70]
mov rsi, rcx
add rsi, rax
sub rsp, 0x20
mov rcx, rdi
mov qword [rbp - 0x28], r10
mov r9, r10
call fcn.140015da0
add rsp, 0x20
lea rdx, [rsi + 1]
mov rbx, qword [rdi]
sub rsp, 0x20
mov rcx, r14
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov qword [rbp - 0x48], rsi
lea rdx, [rbx + rsi]
add rdx, 1
sub rsp, 0x20
mov rcx, r12
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
sub rsp, 0x10
mov qword [rsp + 0x20], r12
mov rcx, rdi
mov rdx, rbx
mov rsi, qword [rbp - 0x10]
mov r8, rsi
mov r9, r15
call fcn.14002ac50
add rsp, 0x30
and r13, 0xfffffffffffffff8
add r13, 0xffffffffffffffff
mov rax, r13
shr rax, 3
je 0x14001f0e0
cmp r13, 0x20
jb 0x14001f0d0
mov r8, rax
and r8, 0xfffffffffffffffc
lea rcx, [r8 - 4]
mov rdx, rcx
shr rdx, 2
add rdx, 1
mov r9d, edx
and r9d, 1
test rcx, rcx
je 0x14001f3a1
mov r10, rdi
lea rdi, [rsi + rax*8]
add rdi, 0xfffffffffffffff0
lea rcx, [r14 + rax*8]
add rcx, 0xfffffffffffffff0
mov rbx, r9
sub rbx, rdx
xor edx, edx
nop word cs:[rax + rax]
nop
movups xmm0, xmmword [rcx + rdx*8 - 0x30]
movups xmm1, xmmword [rcx + rdx*8 - 0x20]
movups xmm2, xmmword [rcx + rdx*8 - 0x10]
movups xmm3, xmmword [rcx + rdx*8]
movups xmm4, xmmword [rdi + rdx*8 - 0x10]
xorps xmm4, xmm2
movups xmm2, xmmword [rdi + rdx*8]
xorps xmm2, xmm3
movups xmmword [rcx + rdx*8], xmm2
movups xmmword [rcx + rdx*8 - 0x10], xmm4
movups xmm2, xmmword [rdi + rdx*8 - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rdx*8 - 0x20]
xorps xmm0, xmm1
movups xmmword [rcx + rdx*8 - 0x20], xmm0
movups xmmword [rcx + rdx*8 - 0x30], xmm2
add rdx, 0xfffffffffffffff8
add rbx, 2
jne 0x14001f030
neg rdx
mov rsi, qword [rbp - 0x10]
mov rdi, r10
test r9, r9
je 0x14001f0bc
not rdx
add rdx, rax
movups xmm0, xmmword [r14 + rdx*8 - 0x18]
movups xmm1, xmmword [r14 + rdx*8 - 8]
movups xmm2, xmmword [rsi + rdx*8 - 0x18]
xorps xmm2, xmm0
movups xmm0, xmmword [rsi + rdx*8 - 8]
xorps xmm0, xmm1
movups xmmword [r14 + rdx*8 - 8], xmm0
movups xmmword [r14 + rdx*8 - 0x18], xmm2
cmp rax, r8
je 0x14001f0e0
sub rax, r8
nop word cs:[rax + rax]
nop
mov rcx, qword [rsi + rax*8 - 8]
xor qword [r14 + rax*8 - 8], rcx
add rax, 0xffffffffffffffff
jne 0x14001f0d0
mov r9, qword [rdi]
sub rsp, 0x30
mov qword [rsp + 0x20], r14
mov rcx, rdi
mov rdx, r15
mov r13, qword [rbp - 0x30]
mov r8, r13
call fcn.14002ac50
add rsp, 0x30
lea rcx, [r15 + 0xf]
and rcx, 0xfffffffffffffff8
add rcx, 0xffffffffffffffff
mov rax, rcx
shr rax, 3
mov rdx, qword [rbp - 0x28]
je 0x14001f220
cmp rcx, 0x20
jb 0x14001f210
mov r8, rax
and r8, 0xfffffffffffffffc
lea rcx, [r8 - 4]
mov rsi, rcx
shr rsi, 2
add rsi, 1
mov r9d, esi
and r9d, 1
test rcx, rcx
je 0x14001f3b1
mov r10, rdi
lea rdi, [rax*8 - 0x10]
add rdi, r13
lea rcx, [r12 + rax*8]
add rcx, 0xfffffffffffffff0
mov rbx, r9
sub rbx, rsi
mov rsi, 0xfffffffffffffffe
nop word cs:[rax + rax]
nop dword [rax]
movups xmm0, xmmword [rcx + rsi*8 - 0x20]
movups xmm1, xmmword [rcx + rsi*8 - 0x10]
movups xmm2, xmmword [rcx + rsi*8]
movups xmm3, xmmword [rcx + rsi*8 + 0x10]
movups xmm4, xmmword [rdi + rsi*8]
xorps xmm4, xmm2
movups xmm2, xmmword [rdi + rsi*8 + 0x10]
xorps xmm2, xmm3
movups xmmword [rcx + rsi*8 + 0x10], xmm2
movups xmmword [rcx + rsi*8], xmm4
movups xmm2, xmmword [rdi + rsi*8 - 0x20]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rsi*8 - 0x10]
xorps xmm0, xmm1
movups xmmword [rcx + rsi*8 - 0x10], xmm0
movups xmmword [rcx + rsi*8 - 0x20], xmm2
add rsi, 0xfffffffffffffff8
add rbx, 2
jne 0x14001f180
add rsi, 1
mov rdi, r10
test r9, r9
je 0x14001f208
add rsi, rax
movups xmm0, xmmword [r12 + rsi*8 - 0x18]
movups xmm1, xmmword [r12 + rsi*8 - 8]
movups xmm2, xmmword [r13 + rsi*8 - 0x18]
xorps xmm2, xmm0
movups xmm0, xmmword [r13 + rsi*8 - 8]
xorps xmm0, xmm1
movups xmmword [r12 + rsi*8 - 8], xmm0
movups xmmword [r12 + rsi*8 - 0x18], xmm2
cmp rax, r8
je 0x14001f220
sub rax, r8
mov rcx, qword [r13 + rax*8 - 8]
xor qword [r12 + rax*8 - 8], rcx
add rax, 0xffffffffffffffff
jne 0x14001f210
mov r13d, 0xffffffff
mov rax, qword [rbp - 0x48]
movzx eax, byte [rax]
add rax, r13
shr rax, 0x20
mov dword [rbp - 4], eax
sub rsp, 0x20
mov rcx, qword [rbp - 0x38]
mov r8, r12
call fcn.140015c20
add rsp, 0x20
or dword [rbp - 4], eax
mov rcx, qword [rdi]
mov eax, 1
cmp rcx, r15
jae 0x14001f2af
xor ebx, ebx
mov r9, qword [rbp - 0x18]
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx esi, byte [r12 + rcx]
lea rdi, [rsi + r13]
shr rdi, 0x20
xor rsi, 1
add rsi, r13
shr rsi, 0x20
lea edx, [rax - 1]
movsxd rdx, edx
and rbx, rdx
not rdx
and eax, esi
and edi, eax
or dword [rbp - 4], edi
and rdx, rcx
or rdx, rbx
add rcx, 1
mov rbx, rdx
cmp r15, rcx
jne 0x14001f270
jmp 0x14001f2b5
xor edx, edx
mov r9, qword [rbp - 0x18]
or dword [rbp - 4], eax
mov eax, dword [rbp - 4]
test eax, eax
mov rsi, qword [rbp - 0x40]
mov rbx, qword [rbp - 0x30]
jne 0x14001f303
mov rax, rdx
not rax
add r15, rax
cmp qword [r9], r15
jae 0x14001f2e2
mov dword [rbp - 4], 0xffffffe9
mov rdi, qword [rbp - 0x20]
jmp 0x14001f315
add rdx, r12
add rdx, 1
sub rsp, 0x20
mov rcx, qword [rbp - 0x50]
mov r8, r15
mov rdi, r9
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov qword [rdi], r15
mov eax, dword [rbp - 4]
test eax, eax
mov rdi, qword [rbp - 0x20]
je 0x14001f315
mov dword [rbp - 4], 0xffffffe5
sub rsp, 0x20
mov rcx, rdi
mov rdx, r12
call fcn.140016010
mov rcx, rdi
mov rdx, rbx
call fcn.140016010
add rsp, 0x20
mov rcx, qword [rsi]
add rcx, 7
and rcx, 0xfffffffffffffff8
sub rsp, 0x20
mov rdx, qword [rbp - 0x10]
call fcn.140016010
add rsp, 0x20
mov rcx, qword [rsi]
add rcx, 7
and rcx, 0xfffffffffffffff8
sub rsp, 0x20
mov rdx, r14
call fcn.140016010
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x28]
call fcn.140016010
add rsp, 0x20
mov ebx, dword [rbp - 4]
mov rcx, qword [rbp]
xor rcx, rbp
sub rsp, 0x20
call fcn.1400e6b50
add rsp, 0x20
mov eax, ebx
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor edx, edx
test r9, r9
jne 0x14001f08e
jmp 0x14001f0bc
mov rsi, 0xffffffffffffffff
test r9, r9
jne 0x14001f1db
jmp 0x14001f208