Function at 0x140089810
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
xor edi, edi
lea r15, [rdx + 0xb90]
mov qword [rsp + 0x30], r15
mov ebx, r9d
lea r12, [rcx + 0x1808]
mov rbp, r8
mov rax, rcx
test r9d, r9d
jle 0x1400898f8
mov r14, r15
lea r13, [rdx + 0x1d90]
lea r15, [rdx + 0x3f30]
mov rsi, r8
add rbp, 8
nop word [rax + rax]
movzx ebx, word [rbp]
mov r8, rdx
add ebx, dword [rdx + 8]
mov r9, rsi
mov rdx, r15
mov dword [rsp + 0x28], edi
mov rcx, r12
mov qword [rsp + 0x20], r13
call fcn.140087e30
mov rdx, qword [rsp + 0x108]
mov r9, r13
mov r8, rsi
mov dword [rsp + 0x20], ebx
mov rcx, r14
call fcn.140088110
mov ebx, dword [rsp + 0x118]
lea rbp, [rbp + 0x20]
mov rdx, qword [rsp + 0x108]
inc edi
add rsi, 0x20
add r15, 0x27
add r14, 0x900
cmp edi, ebx
jl 0x140089880
mov rbp, qword [rsp + 0x110]
mov r15, qword [rsp + 0x30]
mov rax, qword [rsp + 0x100]
movzx eax, byte [rax + 0x180b]
test al, 0x10
je 0x14008991a
add rdx, 0x3f57
mov r9, r12
mov r8, rbp
mov rcx, r15
call fcn.140088cb0
jmp 0x14008992d
and al, 0xe0
cmp al, 0x60
jne 0x14008992d
mov edx, 0x240
mov rcx, r15
call fcn.140088780
test ebx, ebx
jle 0x140089c14
mov r12, qword [rsp + 0x100]
lea rdi, [0x1400b2940]
mov r9, qword [rsp + 0x108]
lea r13, [rbp + 0x12]
xor r10d, r10d
mov eax, ebx
sub rdi, r9
movaps xmmword [rsp + 0xa0], xmm6
movss xmm6, dword [0x1400b32e0]
lea rcx, [r12 + 0x1809]
lea r8, [r12 + 0x180a]
mov qword [rsp + 0x40], rcx
sub rdi, 0xbd8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x100], r10
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rax
nop dword [rax + rax]
movzx eax, byte [rcx]
mov ecx, eax
shr eax, 3
and eax, 1
shr ecx, 4
and ecx, 1
add ecx, eax
movzx eax, byte [r8]
shr eax, 2
and eax, 3
lea edx, [rcx + rcx*2]
add edx, eax
movzx eax, byte [r13 - 2]
cmp edx, 2
sete cl
neg al
sbb r14d, r14d
and r14d, 2
shl r14d, cl
lea esi, [r14 + r14*8]
add esi, esi
cmp byte [r13], 0
je 0x140089a15
movzx r8d, byte [r13 - 1]
lea rdx, [r9 + 0x1e30]
add r8, qword [r13 - 0x12]
lea ebx, [r14 - 1]
movsxd rax, esi
add rax, 0x2e4
add rax, r10
lea rcx, [r9 + rax*4]
call fcn.140088e60
test ebx, ebx
jg 0x140089a1a
jmp 0x140089a81
mov ebx, 0x1f
mov rcx, rdi
lea r8, [r15 + 0x38]
lea rax, [r8 + 0x10]
mov rdx, r8
mov r9d, 2
nop
movups xmm5, xmmword [rcx + rax - 0x20]
movups xmm4, xmmword [rcx + rax]
movups xmm3, xmmword [rax]
movups xmm2, xmmword [rdx]
movaps xmm0, xmm5
movaps xmm1, xmm4
shufps xmm2, xmm2, 0x1b
mulps xmm5, xmm2
mulps xmm4, xmm3
mulps xmm1, xmm2
mulps xmm0, xmm3
addps xmm5, xmm4
subps xmm0, xmm1
shufps xmm5, xmm5, 0x1b
movups xmmword [rax], xmm0
add rax, 0x10
movups xmmword [rdx], xmm5
sub rdx, 0x10
sub r9, 1
jne 0x140089a30
dec ebx
add r8, 0x48
sub rcx, 0x48
test ebx, ebx
jg 0x140089a21
movzx ebp, byte [r13 - 3]
mov rbx, r15
add rbx, 0x48
mov rdx, r12
mov rdi, r15
test r14d, r14d
je 0x140089ab6
mov r9d, r14d
lea r8, [0x1400b2690]
mov rcx, r15
call fcn.140089240
lea eax, [r14 + r14*8]
lea rdi, [r15 + rsi*4]
lea rdx, [r12 + rax*4]
mov esi, 0x20
sub esi, r14d
cmp bpl, 2
jne 0x140089b55
lea r8, [rdx + 0x18]
nop dword [rax]
movups xmm0, xmmword [rdi]
lea rdx, [rdi + 0x18]
movups xmm1, xmmword [rdi + 0x10]
lea rcx, [rsp + 0x50]
movups xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rdi + 0x20]
movups xmmword [rsp + 0x60], xmm1
movups xmm1, xmmword [rdi + 0x30]
movups xmmword [rsp + 0x70], xmm0
movsd xmm0, qword [rdi + 0x40]
movsd qword [rsp + 0x90], xmm0
movups xmm0, xmmword [r8 - 0x18]
movups xmmword [rsp + 0x80], xmm1
movups xmmword [rdi], xmm0
movsd xmm1, qword [r8 - 8]
movsd qword [rdi + 0x10], xmm1
call fcn.1400895c0
lea rdx, [rdi + 0x30]
lea rcx, [rsp + 0x54]
call fcn.1400895c0
lea rdx, [r8 - 0x18]
lea rcx, [rsp + 0x58]
call fcn.1400895c0
dec esi
lea rdi, [rdi + 0x48]
add r8, 0x24
test esi, esi
jg 0x140089ad0
lea rbx, [r15 + 0x48]
jmp 0x140089b7a
xor r8d, r8d
mov eax, 0x48
cmp bpl, 3
mov r9d, esi
mov rcx, rdi
cmove r8d, eax
lea rax, [0x1400b2690]
add r8, rax
call fcn.140089240
mov ecx, 0x10
nop
mov eax, 1
nop word [rax + rax]
movss xmm0, dword [rbx + rax*4]
xorps xmm0, xmm6
movss dword [rbx + rax*4], xmm0
add rax, 2
cmp rax, 0x12
jl 0x140089b90
add rbx, 0x90
sub rcx, 1
jne 0x140089b80
mov r10, qword [rsp + 0x100]
add r12, 0x480
mov rdi, qword [rsp + 0x38]
add r10, 0x240
mov r9, qword [rsp + 0x108]
sub rdi, 0x900
mov rcx, qword [rsp + 0x40]
add r15, 0x900
mov r8, qword [rsp + 0x48]
add r13, 0x20
sub qword [rsp + 0x30], 1
mov qword [rsp + 0x100], r10
mov qword [rsp + 0x38], rdi
jne 0x1400899a0
movaps xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret