Function at 0x140035748
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov dword [rax + 0x10], edx
mov dword [rax + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movsxd r10, ecx
mov r11d, r10d
xor r15d, r15d
mov rdi, r9
mov r14, r8
mov ebx, edx
mov rsi, r10
imul r11d, edx
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
mov dword [rsp + 4], r11d
movaps xmmword [rax - 0x98], xmm10
test edx, edx
jle 0x140035844
lea eax, [r11 + r11*2]
movsxd rbp, r11d
mov r12, r10
movsxd r8, eax
lea eax, [r11 + r11]
shl r12, 2
movsxd r9, eax
lea rdx, [r14 + r8*4]
sub rbp, r8
sub r9, r8
mov r13d, ebx
lea esi, [r10 + r10]
neg r8
movss xmm1, dword [rdx + r8*4]
movss xmm2, dword [rdx]
mov ecx, r15d
shl ecx, 2
add r15d, r10d
movsxd rax, ecx
addss xmm1, dword [rdx + r9*4]
addss xmm2, dword [rdx + rbp*4]
movaps xmm0, xmm1
addss xmm0, xmm2
subss xmm1, xmm2
movss dword [rdi + rax*4], xmm0
add rax, r12
movss dword [rdi + rax*4 - 4], xmm1
movss xmm0, dword [rdx + r8*4]
lea eax, [rsi + rcx]
cdqe
subss xmm0, dword [rdx + r9*4]
movss dword [rdi + rax*4 - 4], xmm0
movss xmm1, dword [rdx]
subss xmm1, dword [rdx + rbp*4]
add rdx, r12
movss dword [rdi + rax*4], xmm1
dec r13
jne 0x1400357da
mov rsi, r10
cmp r10d, 2
jl 0x140035c46
movsxd r9, r11d
mov ebp, 4
mov qword [rsp + 0x78], r9
je 0x140035b6f
xor r12d, r12d
mov dword [rsp], r12d
test ebx, ebx
jle 0x140035b65
mov r11, qword [rsp + 0x140]
mov r13, rbx
mov qword [rsp + 0x10], rbx
lea ebx, [r10 + r10]
xor r15d, r15d
mov edx, r12d
shl edx, 2
cmp r10d, 2
jle 0x140035b41
lea eax, [rbx + rdx]
movsxd r8, ebx
movsxd rdx, edx
cdqe
lea rcx, [r9 + r9]
mov rbx, r9
dec rax
shl rbx, 2
mov rsi, rbp
add rax, r8
mov qword [rsp + 0x28], rbx
lea rax, [rdi + rax*4]
mov qword [rsp + 0x48], rax
lea rax, [r11 + 4]
mov qword [rsp + 0x38], rax
lea rax, [rcx - 1]
add rax, r15
lea rax, [r14 + rax*4]
mov qword [rsp + 0x20], rax
mov rax, r9
neg rax
mov qword [rsp + 0x40], rax
mov rax, rbp
sub rax, rbx
mov qword [rsp + 0x50], rax
mov rax, r9
neg rax
mov qword [rsp + 0x30], rax
mov rax, r9
shl rax, 3
sub rsi, rax
mov rax, r8
sub rax, r15
mov qword [rsp + 0x70], rsi
mov rsi, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x70]
sub rax, rcx
add rax, rdx
sub rdx, r15
shl rax, 2
sub rdx, rcx
mov rcx, qword [rsp + 0x148]
sub rax, r14
shl rdx, 2
sub rcx, r11
add rax, rdi
sub rdx, r14
mov r14, qword [rsp + 0x28]
mov qword [rsp + 0x58], rax
lea rax, [rdx + rdi]
mov rdx, qword [rsp + 0x150]
mov rdi, qword [rsp + 0x20]
mov r13, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov r12, qword [rsp + 0x68]
mov rax, r8
sub rdx, r11
neg rax
mov qword [rsp + 0x18], rax
mov rax, r8
mov r8, rbp
mov r11, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x38]
shl rax, 2
sub r8, rax
lea eax, [r10 - 3]
mov r10, qword [rsp + 0x48]
shr eax, 1
mov qword [rsp + 0x60], r8
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x60]
inc eax
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x40]
movss xmm1, dword [rbp]
movss xmm3, dword [rcx + rbp - 4]
movss xmm10, dword [rbp - 4]
add rdi, 8
sub r10, 8
movaps xmm4, xmm10
mulss xmm10, dword [rdi + r8]
mulss xmm4, dword [rdi + rax*4]
movss xmm2, dword [r14 + rdi]
movss xmm0, dword [rdi + r8]
movss xmm8, dword [rcx + rbp]
mulss xmm8, dword [rdi + 4]
mulss xmm0, xmm1
mulss xmm1, dword [rdi + rax*4]
movaps xmm9, xmm2
addss xmm4, xmm0
movaps xmm0, xmm3
subss xmm10, xmm1
movss xmm1, dword [rdi]
mulss xmm2, dword [rdx + rbp]
mulss xmm3, dword [rdi + 4]
mulss xmm0, xmm1
addss xmm8, xmm0
movss xmm0, dword [rdx + rbp]
mulss xmm1, dword [rcx + rbp]
mulss xmm0, dword [r14 + rdi + 4]
add rbp, 8
dec qword [rsp + 8]
subss xmm3, xmm1
movss xmm1, dword [rdx + rbp - 0xc]
mulss xmm9, xmm1
mulss xmm1, dword [r14 + rdi + 4]
addss xmm9, xmm0
subss xmm1, xmm2
movss xmm2, dword [rdi + rsi*8]
movaps xmm7, xmm9
addss xmm7, xmm4
movaps xmm6, xmm1
subss xmm9, xmm4
movss xmm4, dword [rdi + rbx]
addss xmm6, xmm10
subss xmm10, xmm1
movaps xmm5, xmm4
addss xmm5, xmm3
subss xmm4, xmm3
movaps xmm3, xmm2
movaps xmm1, xmm5
addss xmm1, xmm6
addss xmm3, xmm8
subss xmm2, xmm8
movaps xmm0, xmm3
movss dword [r12 + rdi + 4], xmm1
addss xmm0, xmm7
subss xmm3, xmm7
movaps xmm1, xmm9
movss dword [rdi + r12], xmm0
subss xmm1, xmm4
addss xmm4, xmm9
movaps xmm0, xmm2
movss dword [r9 + r10], xmm1
subss xmm0, xmm10
addss xmm2, xmm10
movss dword [r10 + r11*4], xmm0
movss dword [r13 + rdi], xmm2
movss dword [r13 + rdi + 4], xmm4
subss xmm6, xmm5
movss dword [r10], xmm3
movss dword [r10 + 4], xmm6
jne 0x1400359ba
movsxd r10, dword [rsp + 0x120]
mov r9, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x138]
mov r14, qword [rsp + 0x130]
mov r12d, dword [rsp]
mov r13, qword [rsp + 0x10]
mov r11, qword [rsp + 0x140]
lea ebx, [r10 + r10]
mov rsi, r10
mov ebp, 4
add r12d, r10d
add r15, rsi
dec r13
mov qword [rsp + 0x10], r13
mov dword [rsp], r12d
jne 0x140035887
mov r11d, dword [rsp + 4]
mov ebx, dword [rsp + 0x128]
test r10b, 1
jne 0x140035c46
lea eax, [r10 - 1]
mov r8d, r10d
add eax, r11d
shl r8d, 2
lea ecx, [rax + r11*2]
test ebx, ebx
jle 0x140035c46
movss xmm4, dword [0x1400a2998]
movsxd rdx, eax
lea eax, [r10 + r10]
movsxd r12, r8d
movsxd r8, eax
lea rax, [r9 + rdx]
movsxd r11, ecx
lea rcx, [r14 + rax*4]
lea rax, [rsi - 1]
add rax, r8
sub r11, r9
mov r15, rsi
lea r10, [rdi + rax*4]
sub r11, rdx
mov rax, r8
shl rax, 2
lea rdi, [rsi - 1]
mov rdx, r8
sub rbp, rax
shl r12, 2
shl r15, 2
neg rdx
lea rdi, [r14 + rdi*4]
neg r9
mov eax, ebx
movss xmm2, dword [rcx + r9*4]
movss xmm3, dword [rcx + r11*4]
addss xmm3, xmm2
subss xmm2, dword [rcx + r11*4]
mulss xmm3, xmm4
xorps xmm3, xmmword [0x14007ff30]
mulss xmm2, xmm4
movaps xmm0, xmm2
addss xmm0, dword [rdi]
movss dword [r10 + rdx*4], xmm0
movss xmm1, dword [rdi]
movaps xmm0, xmm3
add rdi, r15
subss xmm1, xmm2
movss dword [r10], xmm1
subss xmm0, dword [rcx]
movss dword [r10 + rbp], xmm0
addss xmm3, dword [rcx]
add rcx, r15
movss dword [r10 + 4], xmm3
add r10, r12
dec rax
jne 0x140035be2
lea r11, [rsp + 0xd8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret