Function at 0x1400959c0
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 r10d, ebp
mov r14d, ebp
lea r9d, [r11 + r11]
mov rbx, r11
mov dword [rsp + 0x60], r15d
mov r12d, r15d
cmp edx, 4
jl 0x140095b28
movsxd rax, r15d
lea rdi, [r11*4]
movsxd r9, r9d
lea r14, [r11*8]
dec r9
lea rdx, [r8 + rax*4]
lea eax, [r13 - 4]
shr eax, 2
lea r9, [rsi + r9*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]
movss xmm0, dword [r8]
lea eax, [r10 + r10]
addss xmm0, dword [rdx]
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 r8, rdi
movsxd rcx, eax
add rdx, rdi
lea eax, [r10 + r10]
add r10d, r11d
movss dword [r9], xmm0
add r9, r14
movss xmm0, dword [r8]
addss xmm0, dword [rdx]
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 [r8]
addss xmm0, dword [rdx]
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 [r8]
addss xmm0, dword [rdx]
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 0x140095a50
mov r14d, dword [rsp]
lea r9d, [r11 + r11]
mov r8, qword [rsp + 0x70]
mov r12d, dword [rsp + 0x60]
cmp r14d, r13d
jge 0x140095b9b
movsxd rax, r15d
lea rdi, [r11*4]
movsxd rcx, r10d
lea r15, [r11*8]
lea rdx, [r8 + rax*4]
movsxd rax, r9d
lea r9, [rcx*2 - 1]
add r9, rax
lea r8, [r8 + rcx*4]
mov eax, r13d
sub eax, r14d
mov r14d, eax
lea r9, [rsi + r9*4]
movss xmm0, dword [rdx]
lea eax, [r10 + r10]
addss xmm0, dword [r8]
movsxd rcx, eax
add r10d, r11d
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, r15
sub r14, 1
jne 0x140095b66
cmp r11d, 2
jl 0x140095d5e
je 0x140095d00
test r13d, r13d
jle 0x140095cea
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
nop
add rax, rbx
lea r8d, [r11 + rbp]
mov dword [rsp], r8d
mov qword [rsp + 0x10], rax
cmp rbx, 2
jle 0x140095cc3
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 0x140095c40
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 0x140095bf0
mov r13d, dword [rsp + 0x68]
mov eax, r11d
and eax, 0x80000001
jge 0x140095cfb
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x140095d5e
lea eax, [r11 - 1]
test r13d, r13d
jle 0x140095d5e
add eax, dword [rsp + 0x60]
lea rbx, [r11*4]
mov rdx, qword [rsp + 0x70]
lea r10, [r11*8]
movss xmm1, dword [0x1404109a0]
lea rcx, [rbx + rsi]
movsxd r9, eax
lea rax, [r11 - 1]
sub r9, rax
mov r8d, r13d
lea rdx, [rdx + rax*4]
nop
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 0x140095d40
mov rbx, qword [rsp + 0x78]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret