Function at 0x1800e4760
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x10], edx
mov dword [rsp + 8], ecx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
movsxd rdi, ecx
xor ebp, ebp
mov ecx, edi
mov rsi, r9
imul ecx, edx
mov rbx, r8
mov r13d, edx
mov r10d, ebp
lea eax, [rdi + rdi]
mov r12d, ebp
cdqe
mov r9, rdi
mov qword [rsp + 0x10], rax
mov dword [rsp], ecx
cmp edx, 4
jl 0x1800e4ad3
lea r11, [rsi - 4]
movsxd r8, ecx
lea r11, [r11 + rax*4]
mov edx, ebp
lea eax, [r13 - 4]
shr eax, 2
lea r14, [rdi*8]
inc eax
mov r15d, eax
lea r12d, [rax*4]
nop word [rax + rax]
movss xmm0, dword [rbx + r8*4]
lea eax, [r10 + r10]
addss xmm0, dword [rbx + rdx*4]
movsxd rcx, eax
add r10d, edi
movss dword [rsi + rcx*4], xmm0
lea eax, [r10 + r10]
movss xmm0, dword [rbx + rdx*4]
add r10d, edi
subss xmm0, dword [rbx + r8*4]
add r8, r9
movsxd rcx, eax
add rdx, r9
lea eax, [r10 + r10]
add r10d, edi
movss dword [r11], xmm0
add r11, r14
movss xmm0, dword [rbx + r8*4]
addss xmm0, dword [rbx + rdx*4]
movss dword [rsi + rcx*4], xmm0
movss xmm0, dword [rbx + rdx*4]
add rdx, r9
subss xmm0, dword [rbx + r8*4]
add r8, r9
movsxd rcx, eax
lea eax, [r10 + r10]
add r10d, edi
movss dword [r11], xmm0
add r11, r14
movss xmm0, dword [rbx + r8*4]
addss xmm0, dword [rbx + rdx*4]
movss dword [rsi + rcx*4], xmm0
movss xmm0, dword [rbx + rdx*4]
add rdx, r9
subss xmm0, dword [rbx + r8*4]
add r8, r9
movsxd rcx, eax
movss dword [r11], xmm0
add r11, r14
movss xmm0, dword [rbx + r8*4]
addss xmm0, dword [rbx + rdx*4]
movss dword [rsi + rcx*4], xmm0
movss xmm0, dword [rbx + rdx*4]
add rdx, r9
subss xmm0, dword [rbx + r8*4]
add r8, r9
movss dword [r11], xmm0
add r11, r14
sub r15, 1
jne 0x1800e47e0
cmp r12d, r13d
jge 0x1800e491e
mov rax, qword [rsp + 0x10]
lea r11, [rbx + r8*4]
lea r8, [rbx + rdx*4]
lea rdx, [rdx*2 - 1]
add rdx, rax
lea r15, [rdi*4]
mov eax, r13d
sub eax, r12d
mov r12d, eax
lea rdx, [rsi + rdx*4]
movss xmm0, dword [r8]
lea eax, [r10 + r10]
addss xmm0, dword [r11]
movsxd rcx, eax
add r10d, edi
movss dword [rsi + rcx*4], xmm0
movss xmm0, dword [r8]
add r8, r15
subss xmm0, dword [r11]
add r11, r15
movss dword [rdx], xmm0
add rdx, r14
sub r12, 1
jne 0x1800e48e8
mov ecx, dword [rsp]
cmp edi, 2
jl 0x1800e4abe
je 0x1800e4a60
test r13d, r13d
jle 0x1800e4a5a
lea r13, [rdi*8]
movsxd r14, ecx
mov rax, r9
lea r8, [rdi + rdi]
mov rdi, qword [rsp + 0x80]
lea r15, [rsi - 4]
neg rax
lea r12, [rsi + r13]
shl rax, 2
mov rdx, rbx
mov qword [rsp + 8], rax
sub rdx, rsi
mov eax, dword [rsp + 0x68]
mov rcx, qword [rsp + 8]
mov qword [rsp + 0x10], rax
nop dword [rax + rax]
cmp r9, 2
jle 0x1800e4a33
mov rax, r14
lea r8, [r9 - 3]
sub rax, rbp
shr r8, 1
shl rax, 2
lea r11, [rdi + 4]
sub rax, rsi
mov r10, r12
add rax, rbx
mov rcx, r15
inc r8
nop
movss xmm4, dword [rax + rcx + 0xc]
add rcx, 8
movaps xmm5, xmm4
sub r10, 8
mulss xmm4, dword [r11 - 4]
mulss xmm5, dword [r11]
movss xmm3, dword [rax + rcx]
movaps xmm0, xmm3
mulss xmm3, dword [r11]
mulss xmm0, dword [r11 - 4]
add r11, 8
subss xmm4, xmm3
addss xmm5, xmm0
movaps xmm0, xmm4
addss xmm0, dword [rcx + rdx + 4]
movss dword [rcx + 4], xmm0
movaps xmm0, xmm5
subss xmm4, dword [rcx + rdx + 4]
movss dword [r10], xmm4
addss xmm0, dword [rdx + rcx]
movss dword [rcx], xmm0
movss xmm1, dword [rdx + rcx]
subss xmm1, xmm5
movss dword [r10 - 4], xmm1
sub r8, 1
jne 0x1800e49b0
mov rax, qword [rsp + 0x10]
lea r8, [r9 + r9]
mov rcx, qword [rsp + 8]
add r15, r13
add rbp, r8
add r12, r13
add rdx, rcx
add r14, r9
sub rax, 1
mov qword [rsp + 0x10], rax
jne 0x1800e4980
mov edi, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x68]
test dil, 1
jne 0x1800e4abe
lea eax, [rdi - 1]
test r13d, r13d
jle 0x1800e4abe
add eax, dword [rsp]
lea r11, [r9*8]
movss xmm1, dword [0x18017cfe0]
lea r9, [r9*4]
movsxd r10, eax
lea rcx, [r9 + rsi]
movsxd rax, edi
dec rax
mov r8d, r13d
sub r10, rax
lea rdx, [rbx + rax*4]
nop word [rax + rax]
movss xmm0, dword [rdx + r10*4]
xorps xmm0, xmm1
movss dword [rcx], xmm0
mov eax, dword [rdx]
add rdx, r9
mov dword [rcx - 4], eax
add rcx, r11
sub r8, 1
jne 0x1800e4aa0
mov rbx, qword [rsp + 0x70]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test r13d, r13d
jle 0x1800e4921
movsxd r8, ecx
lea r14, [rdi*8]
mov rdx, rbp
jmp 0x1800e48c0