Function at 0x140051fb0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x10], edx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
movsxd r11, ecx
xor ebx, ebx
mov r15, r9
mov eax, r11d
lea r13d, [r11*2 - 1]
mov r10, r8
mov r9d, edx
mov ecx, ebx
mov r12d, ebx
imul eax, edx
mov r8d, ebx
mov rdi, r11
movsxd r14, eax
cmp edx, 4
jl 0x14005210d
lea eax, [r9 - 4]
movsxd rsi, r13d
shr eax, 2
inc eax
mov ebp, eax
lea r12d, [rax*4]
nop dword [rax]
movsxd rax, ecx
movsxd rdx, r8d
add r8d, r11d
lea rcx, [rax + rsi]
movss xmm0, dword [r10 + rcx*4]
addss xmm0, dword [r10 + rax*4]
movss dword [r15 + rdx*4], xmm0
movss xmm1, dword [r10 + rax*4]
lea rax, [rdx + r14]
add rdx, r11
subss xmm1, dword [r10 + rcx*4]
movss dword [r15 + rax*4], xmm1
lea eax, [r8 + r8]
add r8d, r11d
movsxd rcx, eax
lea rax, [rcx + rsi]
movss xmm0, dword [r10 + rax*4]
addss xmm0, dword [r10 + rcx*4]
movss dword [r15 + rdx*4], xmm0
movss xmm1, dword [r10 + rcx*4]
subss xmm1, dword [r10 + rax*4]
lea rax, [r14 + rdx]
add rdx, r11
movss dword [r15 + rax*4], xmm1
lea eax, [r8 + r8]
add r8d, r11d
movsxd rcx, eax
lea rax, [rcx + rsi]
movss xmm0, dword [r10 + rax*4]
addss xmm0, dword [r10 + rcx*4]
movss dword [r15 + rdx*4], xmm0
movss xmm1, dword [r10 + rcx*4]
subss xmm1, dword [r10 + rax*4]
lea rax, [r14 + rdx]
add rdx, r11
movss dword [r15 + rax*4], xmm1
lea eax, [r8 + r8]
add r8d, r11d
movsxd rcx, eax
lea rax, [rcx + rsi]
movss xmm0, dword [r10 + rax*4]
addss xmm0, dword [r10 + rcx*4]
movss dword [r15 + rdx*4], xmm0
movss xmm1, dword [r10 + rcx*4]
lea ecx, [r8 + r8]
subss xmm1, dword [r10 + rax*4]
lea rax, [r14 + rdx]
movss dword [r15 + rax*4], xmm1
dec rbp
jne 0x140052020
cmp r12d, r9d
jge 0x140052162
movsxd rax, r8d
mov ebx, r9d
movsxd rsi, r13d
lea rdx, [r15 + rax*4]
lea rbp, [r11*4]
sub ebx, r12d
movsxd rax, ecx
add r8d, r11d
lea rcx, [rax + rsi]
movss xmm0, dword [r10 + rcx*4]
addss xmm0, dword [r10 + rax*4]
movss dword [rdx], xmm0
movss xmm1, dword [r10 + rax*4]
subss xmm1, dword [r10 + rcx*4]
lea ecx, [r8 + r8]
movss dword [rdx + r14*4], xmm1
add rdx, rbp
dec rbx
jne 0x14005212a
cmp r11d, 2
jl 0x140052401
je 0x1400522a7
mov r12d, ebx
mov eax, ebx
test r9d, r9d
jle 0x14005228d
mov rcx, r9
mov rbp, rbx
mov qword [rsp], rcx
nop word [rax + rax]
lea edx, [r11 + r11]
add edx, eax
cmp r11, 2
jle 0x14005226f
mov r9, qword [rsp + 0x60]
movsxd rcx, eax
movsxd rax, edx
lea r8, [r10 + rax*4]
mov rbx, r14
mov rax, rbp
sub rbx, rcx
sub rax, rcx
lea rdx, [r10 - 4]
add rbx, rbp
lea rdx, [rdx + rcx*4]
lea r13, [rax*4 + 4]
shl rbx, 2
sub r13, r10
lea rcx, [r11 - 3]
sub rbx, r10
mov rsi, r14
shr rcx, 1
add r13, r15
add r9, 4
neg rsi
add rbx, r15
inc rcx
movss xmm0, dword [r8 - 0xc]
add rdx, 8
sub r8, 8
addss xmm0, dword [rdx]
lea rax, [rbx + rdx]
add r9, 8
movss dword [rax + rsi*4], xmm0
movss xmm0, dword [rdx + 4]
movss xmm3, dword [rdx]
subss xmm0, dword [r8]
subss xmm3, dword [r8 - 4]
movaps xmm1, xmm3
movss dword [r13 + rdx], xmm0
movss xmm2, dword [r8]
mulss xmm1, dword [r9 - 0xc]
addss xmm2, dword [rdx + 4]
movaps xmm0, xmm2
mulss xmm0, dword [r9 - 8]
subss xmm1, xmm0
movss dword [rax], xmm1
mulss xmm2, dword [r9 - 0xc]
mulss xmm3, dword [r9 - 8]
addss xmm2, xmm3
movss dword [rbx + rdx + 4], xmm2
dec rcx
jne 0x1400521f2
mov rcx, qword [rsp]
add r12d, r11d
add rbp, r11
dec rcx
lea eax, [r12 + r12]
mov qword [rsp], rcx
jne 0x140052190
mov r9d, dword [rsp + 0x48]
xor ebx, ebx
mov eax, r11d
and eax, 0x80000001
jge 0x14005229e
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x140052401
movss xmm2, dword [0x1400e2890]
lea esi, [r11 - 1]
mov ebp, esi
cmp r9d, 4
jl 0x1400523af
lea eax, [r9 - 4]
lea r12d, [r11*4]
lea r13d, [r11*8]
shr eax, 2
inc eax
mov r11d, eax
lea ebx, [rax*4]
movsxd r8, ebp
movsxd rcx, esi
add esi, r12d
lea rdx, [rcx + rdi]
lea rax, [rcx + r14]
add ebp, r13d
movss xmm0, dword [r10 + r8*4]
addss xmm0, xmm0
movss dword [r15 + rcx*4], xmm0
movss xmm1, dword [r10 + r8*4 + 4]
lea rcx, [r8 + rdi*2]
lea r8, [rdx + rdi]
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [r15 + rax*4], xmm1
movss xmm0, dword [r10 + rcx*4]
lea rax, [rdx + r14]
addss xmm0, xmm0
movss dword [r15 + rdx*4], xmm0
movss xmm1, dword [r10 + rcx*4 + 4]
lea rdx, [rcx + rdi*2]
lea rcx, [rdi + r8]
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [r15 + rax*4], xmm1
movss xmm0, dword [r10 + rdx*4]
lea rax, [r14 + r8]
addss xmm0, xmm0
movss dword [r15 + r8*4], xmm0
movss xmm1, dword [r10 + rdx*4 + 4]
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [r15 + rax*4], xmm1
lea rax, [rdx + rdi*2]
movss xmm0, dword [r10 + rax*4]
addss xmm0, xmm0
movss dword [r15 + rcx*4], xmm0
movss xmm1, dword [r10 + rax*4 + 4]
lea rax, [r14 + rcx]
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [r15 + rax*4], xmm1
dec r11
jne 0x1400522e2
cmp ebx, r9d
jge 0x140052401
movsxd rax, ebp
movsxd rcx, esi
sub r9d, ebx
lea rdx, [r10 + rax*4]
lea r8, [rdi*8]
lea rax, [r15 + rcx*4]
mov ecx, r9d
lea rdi, [rdi*4]
movss xmm0, dword [rdx]
addss xmm0, xmm0
movss dword [rax], xmm0
movss xmm1, dword [rdx + 4]
add rdx, r8
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [rax + r14*4], xmm1
add rax, rdi
dec rcx
jne 0x1400523d8
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
ret