Function at 0x140089210
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x90
lea rbp, [rsp + 0x80]
mov qword [rbp + 8], 0xfffffffffffffffe
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
mov r14, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 0x10
jb 0x140089248
mov rbx, qword [rbx]
cmp r14, 0xf
ja 0x140089260
movups xmm0, xmmword [rbx]
movaps xmmword [rbp - 0x30], xmm0
mov r15d, 0xf
jmp 0x1400893f9
mov r15, r14
or r15, 0xf
movabs rax, 0x7fffffffffffffff
cmp r15, rax
cmovae r15, rax
cmp r15, 0xfff
jb 0x14008929b
mov eax, dword [0x1406122e0]
mov ecx, dword [0x140591cc0]
not ecx
add ecx, eax
imul ecx, eax
test cl, 1
jne 0x1400892f3
jmp 0x1400892b7
lea rcx, [r15 + 1]
mov edx, 0x5aaedcc2
mov r8d, 0xdef8ea07
call fcn.1400a9190
mov rcx, rax
jmp 0x1400893e9
lea rcx, [r15 + 0x28]
mov edx, 0x5aaedcc2
mov r8d, 0xdef8ea07
call fcn.1400a9190
lea rdx, [rax + 0x27]
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
mov eax, dword [0x1406122e4]
cmp eax, 0x17
jl 0x1400893e9
movabs r12, 0x1aed069eca7570c7
nop dword [rax]
mov ecx, 0x28
mov edx, 0x5aaedcc2
mov r8d, 0xdef8ea07
call fcn.1400a9190
mov rdx, qword [0x140591cc8]
lea r9, [rdx + r12]
mov r10, rax
sub r10, r9
mov r11d, 0x27
sub r11, r10
lea ecx, [r11 - 0x27]
add edx, 0xca7570ee
imul edx, ecx
mov r8, r11
mov ecx, edx
shl r8, cl
mov ecx, r8d
shl r11, cl
add r10, 0xffffffffffffffd9
sub r11, r8
imul r11, r8
sub r9, r11
mov ecx, edx
shl r10, cl
sub r9, r10
sub r9, r10
shl r9, 5
mov rcx, 0xfffffffffffffc00
sub rcx, r9
mov rdx, rcx
xor rdx, 0xffffffffffffffe0
sub rcx, rdx
imul rcx, rdx
mov r8, rcx
sub r8, rdx
imul r8, rdx
sub rcx, r8
imul rcx, r8
mov rdx, rcx
sub rdx, r8
imul rdx, r8
sub rdx, rcx
sub rcx, rdx
imul rcx, rdx
mov r8, rcx
sub r8, rdx
lea rdx, [rcx + r8]
lea r9, [rcx + rdx]
neg rdx
imul r9, rdx
mov r10, r9
not r10
add rcx, r8
dec rcx
and rcx, r10
xor r9, rdx
or r9, rcx
not r9
mov qword [r9 - 8], rax
mov eax, dword [0x1406122e4]
cmp eax, 0xc
jge 0x140089300
jmp 0x1400892b7
mov qword [rbp - 0x30], rcx
lea r8, [r14 + 1]
mov rdx, rbx
call fcn.1404ad090
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], r15
movups xmm0, xmmword [rdi]
movaps xmmword [rbp - 0x60], xmm0
lea rbx, [rbp - 0x50]
lea rdx, [rbp - 0x60]
lea r8, [rbp - 0x30]
mov rcx, rbx
call fcn.140089670
cmp qword [rbp - 0x38], 0x10
jb 0x140089427
mov rbx, qword [rbp - 0x50]
lea rax, [0x1404ca6a8]
mov qword [rsi], rax
lea rdx, [rsi + 8]
xorps xmm0, xmm0
movups xmmword [rsi + 8], xmm0
mov qword [rbp - 8], rbx
mov byte [rbp], 1
lea rcx, [rbp - 8]
call fcn.1404adb7c
mov eax, dword [0x1406122e4]
cmp eax, 0x40
jle 0x14008945a
jmp 0x140089473
lea rax, [0x1404cad48]
mov qword [rsi], rax
mov rax, qword [rbp - 0x38]
mov ecx, dword [0x1406122e4]
cmp ecx, 0x50
jle 0x14008947f
lea rax, [0x1404cad48]
mov qword [rsi], rax
jmp 0x14008945a
cmp rax, 0x10
jb 0x1400894d9
mov rcx, qword [rbp - 0x50]
mov r8, qword [0x140591cc8]
add r8, rax
movabs rdx, 0x1aed069eca7570c8
add rdx, r8
cmp rdx, 0x1000
jb 0x1400894d4
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
movabs rdx, 0x1aed069eca7570e7
add rdx, qword [0x140591cc8]
cmp rcx, rdx
jae 0x1400894f9
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400a8b80
mov eax, dword [0x1406122e0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x2d49cab8
add eax, dword [0x140591cc0]
cmp ecx, eax
je 0x1400894fe
jmp 0x14008951a
call fcn.1404652dc
lea rax, [0x1404cad08]
mov qword [rsi], rax
movups xmm0, xmmword [rdi]
movups xmmword [rsi + 0x18], xmm0
mov eax, dword [0x1406122e4]
cmp eax, 0x4f
jle 0x14008952d
lea rax, [0x1404cad08]
mov qword [rsi], rax
movups xmm0, xmmword [rdi]
movups xmmword [rsi + 0x18], xmm0
jmp 0x1400894fe
mov rax, rsi
add rsp, 0x90
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret