Function at 0x14004c810
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
xor r15d, r15d
movsxd rdi, ecx
mov r13d, edx
mov r10d, edi
lea eax, [rdi + rdi - 1]
mov r12, r9
mov r11, r8
mov ecx, r15d
mov rbx, rdi
imul r10d, edx
mov r9d, r15d
movsxd rsi, eax
mov edx, r15d
movsxd r10, r10d
mov r8d, r15d
cmp r13d, 4
jl 0x14004c978
lea eax, [r13 - 4]
lea rbp, [r12 + r10*4]
lea r15, [rdi*4]
shr eax, 2
inc eax
mov r14d, eax
lea r9d, [rax*4]
nop word [rax + rax]
movsxd rax, ecx
add r8d, edi
lea rcx, [rax + rsi]
movss xmm0, dword [r11 + rcx*4]
addss xmm0, dword [r11 + rax*4]
movss dword [r12 + rdx*4], xmm0
movss xmm1, dword [r11 + rax*4]
lea eax, [r8 + r8]
add rdx, rbx
add r8d, edi
subss xmm1, dword [r11 + rcx*4]
movsxd rcx, eax
movss dword [rbp], xmm1
lea rax, [rcx + rsi]
add rbp, r15
movss xmm0, dword [r11 + rax*4]
addss xmm0, dword [r11 + rcx*4]
movss dword [r12 + rdx*4], xmm0
movss xmm1, dword [r11 + rcx*4]
add rdx, rbx
subss xmm1, dword [r11 + rax*4]
lea eax, [r8 + r8]
add r8d, edi
movsxd rcx, eax
movss dword [rbp], xmm1
add rbp, r15
lea rax, [rcx + rsi]
movss xmm0, dword [r11 + rax*4]
addss xmm0, dword [r11 + rcx*4]
movss dword [r12 + rdx*4], xmm0
movss xmm1, dword [r11 + rcx*4]
add rdx, rbx
subss xmm1, dword [r11 + rax*4]
lea eax, [r8 + r8]
add r8d, edi
movsxd rcx, eax
movss dword [rbp], xmm1
add rbp, r15
lea rax, [rcx + rsi]
movss xmm0, dword [r11 + rax*4]
addss xmm0, dword [r11 + rcx*4]
movss dword [r12 + rdx*4], xmm0
movss xmm1, dword [r11 + rcx*4]
add rdx, rbx
lea ecx, [r8 + r8]
subss xmm1, dword [r11 + rax*4]
movss dword [rbp], xmm1
add rbp, r15
dec r14
jne 0x14004c890
xor r15d, r15d
cmp r9d, r13d
jge 0x14004c9ca
mov eax, r13d
lea rbp, [rdi*4]
lea rdx, [r12 + rdx*4]
sub eax, r9d
mov r9d, eax
movsxd rax, ecx
add r8d, edi
lea rcx, [rax + rsi]
movss xmm0, dword [r11 + rcx*4]
addss xmm0, dword [r11 + rax*4]
movss dword [rdx], xmm0
movss xmm1, dword [r11 + rax*4]
subss xmm1, dword [r11 + rcx*4]
lea ecx, [r8 + r8]
movss dword [rdx + r10*4], xmm1
add rdx, rbp
dec r9
jne 0x14004c992
cmp edi, 2
jl 0x14004cc31
je 0x14004caec
mov ebp, r15d
mov ecx, r15d
mov rsi, r15
test r13d, r13d
jle 0x14004cad3
mov r14, r13
mov r13, qword [rsp + 0x50]
lea r15d, [rdi + rdi]
nop word [rax + rax]
lea eax, [r15 + rcx]
movsxd rdx, eax
cmp rbx, 2
jle 0x14004cab9
movsxd r9, ecx
lea rax, [rdi - 3]
lea rdx, [r11 + rdx*4]
sub r9, rsi
shr rax, 1
lea r8, [r13 + 4]
shl r9, 2
lea rcx, [r12 + rsi*4]
sub r9, r12
add r9, r11
inc rax
nop word [rax + rax]
movss xmm0, dword [rdx - 0xc]
add rcx, 8
sub rdx, 8
addss xmm0, dword [r9 + rcx - 4]
add r8, 8
dec rax
movss dword [rcx - 4], xmm0
movss xmm0, dword [r9 + rcx]
movss xmm3, dword [r9 + rcx - 4]
subss xmm0, dword [rdx]
subss xmm3, dword [rdx - 4]
movaps xmm1, xmm3
movss dword [rcx], xmm0
movss xmm2, dword [rdx]
mulss xmm1, dword [r8 - 0xc]
addss xmm2, dword [r9 + rcx]
movaps xmm0, xmm2
mulss xmm0, dword [r8 - 8]
subss xmm1, xmm0
movss dword [rcx + r10*4 - 4], xmm1
mulss xmm2, dword [r8 - 0xc]
mulss xmm3, dword [r8 - 8]
addss xmm2, xmm3
movss dword [rcx + r10*4], xmm2
jne 0x14004ca40
add ebp, edi
add rsi, rbx
dec r14
lea ecx, [rbp + rbp]
jne 0x14004ca00
mov r13d, dword [rsp + 0x38]
xor r15d, r15d
mov eax, edi
and eax, 0x80000001
jge 0x14004cae3
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x14004cc31
movss xmm2, dword [0x140087f40]
lea eax, [rdi - 1]
movsxd rcx, eax
movsxd rdx, eax
cmp r13d, 4
jl 0x14004cbe9
lea rax, [rdx + r10]
lea r9, [rdi + rdi]
lea rdi, [rdi*4]
lea r8, [r12 + rax*4]
lea eax, [r13 - 4]
shr eax, 2
inc eax
lea r15d, [rax*4]
nop dword [rax]
movss xmm0, dword [r11 + rcx*4]
addss xmm0, xmm0
movss dword [r12 + rdx*4], xmm0
movss xmm1, dword [r11 + rcx*4 + 4]
add rcx, r9
add rdx, rbx
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [r8], xmm1
movss xmm0, dword [r11 + rcx*4]
add r8, rdi
addss xmm0, xmm0
movss dword [r12 + rdx*4], xmm0
movss xmm1, dword [r11 + rcx*4 + 4]
add rcx, r9
add rdx, rbx
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [r8], xmm1
movss xmm0, dword [r11 + rcx*4]
add r8, rdi
addss xmm0, xmm0
movss dword [r12 + rdx*4], xmm0
movss xmm1, dword [r11 + rcx*4 + 4]
add rcx, r9
add rdx, rbx
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [r8], xmm1
movss xmm0, dword [r11 + rcx*4]
add r8, rdi
addss xmm0, xmm0
movss dword [r12 + rdx*4], xmm0
movss xmm1, dword [r11 + rcx*4 + 4]
add rdx, rbx
add rcx, r9
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [r8], xmm1
add r8, rdi
dec rax
jne 0x14004cb30
cmp r15d, r13d
jge 0x14004cc31
lea r8, [rbx*8]
shl rbx, 2
sub r13d, r15d
lea rax, [r11 + rcx*4]
lea rcx, [r12 + rdx*4]
mov edx, r13d
movss xmm0, dword [rax]
addss xmm0, xmm0
movss dword [rcx], xmm0
movss xmm1, dword [rax + 4]
add rax, r8
addss xmm1, xmm1
xorps xmm1, xmm2
movss dword [rcx + r10*4], xmm1
add rcx, rbx
dec rdx
jne 0x14004cc08
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
pop r15
pop r14
pop r13
pop r12
pop rdi
ret