Function at 0x1402166d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
movsxd r11, ecx
xor ebp, ebp
mov r15d, r11d
mov r13d, edx
imul r15d, edx
mov rsi, r9
mov r9, r8
mov r10d, ebp
lea ecx, [r11 + r11]
mov r14d, ebp
mov rbx, r11
mov dword [rsp + 0x60], r15d
mov r12d, r15d
cmp edx, 4
jl 0x140216848
movsxd rax, r15d
lea r9, [rsi - 4]
movsxd rcx, ecx
lea rdi, [r11*4]
lea r14, [r11*8]
lea rdx, [r8 + rax*4]
lea eax, [r13 - 4]
shr eax, 2
lea r9, [r9 + rcx*4]
inc eax
mov r12d, eax
imul eax, r11d
lea r15d, [r15 + rax*4]
lea eax, [r12*4]
mov dword [rsp], eax
nop dword [rax]
nop word [rax + rax]
movss xmm0, dword [rdx]
lea eax, [r10 + r10]
addss xmm0, dword [r8]
movsxd rcx, eax
add r10d, r11d
movss dword [rsi + rcx*4], xmm0
lea eax, [r10 + r10]
movss xmm0, dword [r8]
add r10d, r11d
subss xmm0, dword [rdx]
add rdx, rdi
movsxd rcx, eax
add r8, rdi
lea eax, [r10 + r10]
add r10d, r11d
movss dword [r9], xmm0
add r9, r14
movss xmm0, dword [rdx]
addss xmm0, dword [r8]
movss dword [rsi + rcx*4], xmm0
movss xmm0, dword [r8]
add r8, rdi
subss xmm0, dword [rdx]
add rdx, rdi
movsxd rcx, eax
lea eax, [r10 + r10]
add r10d, r11d
movss dword [r9], xmm0
add r9, r14
movss xmm0, dword [rdx]
addss xmm0, dword [r8]
movss dword [rsi + rcx*4], xmm0
movss xmm0, dword [r8]
add r8, rdi
subss xmm0, dword [rdx]
add rdx, rdi
movsxd rcx, eax
movss dword [r9], xmm0
add r9, r14
movss xmm0, dword [rdx]
addss xmm0, dword [r8]
movss dword [rsi + rcx*4], xmm0
movss xmm0, dword [r8]
add r8, rdi
subss xmm0, dword [rdx]
add rdx, rdi
movss dword [r9], xmm0
add r9, r14
sub r12, 1
jne 0x140216770
mov r14d, dword [rsp]
lea ecx, [r11 + r11]
mov r9, qword [rsp + 0x70]
mov r12d, dword [rsp + 0x60]
cmp r14d, r13d
jge 0x1402168bc
movsxd rax, r15d
lea rdi, [r11*4]
movsxd rdx, r10d
lea r15, [r11*8]
movsxd rcx, ecx
lea r8, [r9 + rax*4]
mov eax, r13d
lea r9, [r9 + rdx*4]
lea rdx, [rdx*2 - 1]
add rdx, rcx
sub eax, r14d
mov r14d, eax
lea rdx, [rsi + rdx*4]
movss xmm0, dword [r9]
lea eax, [r10 + r10]
addss xmm0, dword [r8]
movsxd rcx, eax
add r10d, r11d
movss dword [rsi + rcx*4], xmm0
movss xmm0, dword [r9]
add r9, rdi
subss xmm0, dword [r8]
add r8, rdi
movss dword [rdx], xmm0
add rdx, r15
sub r14, 1
jne 0x140216886
cmp r11d, 2
jl 0x140216a7e
je 0x140216a20
test r13d, r13d
jle 0x140216a0a
mov rdx, qword [rsp + 0x70]
lea r14, [rsi - 4]
mov rcx, rbx
movsxd r10, r12d
neg rcx
lea r12, [r11*8]
shl rcx, 2
lea r15, [r12 + rsi]
mov qword [rsp], rcx
mov rax, rbp
mov rcx, r13
mov rdi, rbp
mov r13, qword [rsp]
sub rdx, rsi
mov qword [rsp + 8], rcx
add rax, rbx
lea r8d, [r11 + rbp]
mov dword [rsp], r8d
mov qword [rsp + 0x10], rax
cmp rbx, 2
jle 0x1402169e3
mov rbp, qword [rsp + 0x70]
mov rax, r10
mov r9, qword [rsp + 0x80]
sub rax, rdi
shl rax, 2
add r9, 4
sub rax, rsi
mov r8, r15
add rbp, rax
mov rcx, r14
lea rax, [r11 - 3]
shr rax, 1
inc rax
nop dword [rax + rax]
movss xmm4, dword [rcx + rbp + 0xc]
add rcx, 8
movaps xmm0, xmm4
sub r8, 8
mulss xmm0, dword [r9]
mulss xmm4, dword [r9 - 4]
movss xmm3, dword [rcx + rbp]
movaps xmm5, xmm3
mulss xmm3, dword [r9]
mulss xmm5, dword [r9 - 4]
add r9, 8
subss xmm4, xmm3
addss xmm5, xmm0
movaps xmm0, xmm4
addss xmm0, dword [rdx + rcx + 4]
movss dword [rcx + 4], xmm0
movaps xmm0, xmm5
subss xmm4, dword [rdx + rcx + 4]
movss dword [r8], xmm4
addss xmm0, dword [rdx + rcx]
movss dword [rcx], xmm0
movss xmm1, dword [rdx + rcx]
subss xmm1, xmm5
movss dword [r8 - 4], xmm1
sub rax, 1
jne 0x140216960
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 8]
mov r8d, dword [rsp]
add r14, r12
lea rdi, [rdi + r11*2]
add r15, r12
add rdx, r13
add r10, rbx
mov ebp, r8d
sub rcx, 1
mov qword [rsp + 8], rcx
jne 0x140216910
mov r13d, dword [rsp + 0x68]
mov eax, r11d
and eax, 0x80000001
jge 0x140216a1b
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x140216a7e
dec r11d
test r13d, r13d
jle 0x140216a7e
mov eax, dword [rsp + 0x60]
lea r10, [rbx*8]
mov rdx, qword [rsp + 0x70]
lea rbx, [rbx*4]
movss xmm1, dword [0x140437d70]
lea rcx, [rbx + rsi]
add eax, r11d
mov r8d, r13d
movsxd r9, eax
movsxd rax, r11d
sub r9, rax
lea rdx, [rdx + rax*4]
movss xmm0, dword [rdx + r9*4]
xorps xmm0, xmm1
movss dword [rcx], xmm0
mov eax, dword [rdx]
add rdx, rbx
mov dword [rcx - 4], eax
add rcx, r10
sub r8, 1
jne 0x140216a60
mov rbx, qword [rsp + 0x78]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret