Function at 0x14004c310
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc8
movsxd r14, ecx
mov r13d, edx
mov rdi, r8
xor r8d, r8d
mov r12d, r14d
mov rsi, r9
mov dword [rsp + 0x18], r14d
mov r15, r14
mov qword [rsp + 0x40], r14
imul r12d, edx
lea edx, [r12 + r12]
lea ecx, [r12 + r12*2]
mov dword [rsp], r12d
mov eax, r12d
mov ebp, r8d
mov ebx, r8d
mov dword [rsp + 0x20], edx
mov dword [rsp + 0x28], ecx
cmp r13d, 4
jl 0x14004c5b8
lea eax, [r13 - 4]
mov r13d, dword [rsp + 0x20]
lea r11d, [r14 + r14]
shr eax, 2
inc eax
mov edx, eax
lea eax, [rax*4]
mov qword [rsp + 8], rdx
mov dword [rsp + 0x30], eax
nop
movsxd r10, ecx
lea ecx, [rbp*4]
movsxd rbx, ebp
movsxd rax, ecx
movsxd r8, r13d
movsxd rdx, r12d
movss xmm2, dword [rdi + r10*4]
lea r9, [rdx + r14]
add ebp, r14d
addss xmm2, dword [rdi + rdx*4]
movss xmm1, dword [rdi + r8*4]
addss xmm1, dword [rdi + rbx*4]
movaps xmm0, xmm1
subss xmm1, xmm2
addss xmm0, xmm2
movss dword [rsi + rax*4], xmm0
lea rax, [rax + r14*4]
movss dword [rsi + rax*4 - 4], xmm1
movss xmm0, dword [rdi + rbx*4]
lea eax, [r11 + rcx]
cdqe
add rbx, r14
lea ecx, [rbp*4]
subss xmm0, dword [rdi + r8*4]
add ebp, r14d
movss dword [rsi + rax*4 - 4], xmm0
movss xmm1, dword [rdi + r10*4]
subss xmm1, dword [rdi + rdx*4]
lea rdx, [r10 + r14]
lea r10, [r8 + r14]
lea r8, [r9 + r14]
movss dword [rsi + rax*4], xmm1
movss xmm1, dword [rdi + rbx*4]
movss xmm2, dword [rdi + rdx*4]
movsxd rax, ecx
addss xmm1, dword [rdi + r10*4]
addss xmm2, dword [rdi + r9*4]
movaps xmm0, xmm1
subss xmm1, xmm2
addss xmm0, xmm2
movss dword [rsi + rax*4], xmm0
lea rax, [rax + r14*4]
movss dword [rsi + rax*4 - 4], xmm1
movss xmm0, dword [rdi + rbx*4]
lea eax, [r11 + rcx]
cdqe
lea r11, [rdx + r14]
add rbx, r14
subss xmm0, dword [rdi + r10*4]
lea ecx, [rbp*4]
add ebp, r14d
movss dword [rsi + rax*4 - 4], xmm0
movss xmm1, dword [rdi + rdx*4]
lea rdx, [r10 + r14]
subss xmm1, dword [rdi + r9*4]
lea r9, [r8 + r14]
movss dword [rsi + rax*4], xmm1
movss xmm1, dword [rdi + rbx*4]
movss xmm2, dword [rdi + r8*4]
movsxd rax, ecx
lea ecx, [rcx + r14*2]
addss xmm1, dword [rdi + rdx*4]
addss xmm2, dword [rdi + r11*4]
movaps xmm0, xmm1
addss xmm0, xmm2
subss xmm1, xmm2
movss dword [rsi + rax*4], xmm0
lea rax, [rax + r14*4]
movss dword [rsi + rax*4 - 4], xmm1
movss xmm0, dword [rdi + rbx*4]
movsxd rax, ecx
add rbx, r14
subss xmm0, dword [rdi + rdx*4]
add rdx, r14
movss dword [rsi + rax*4 - 4], xmm0
movss xmm1, dword [rdi + r11*4]
subss xmm1, dword [rdi + r8*4]
lea r8, [r11 + r14]
movss dword [rsi + rax*4], xmm1
movss xmm2, dword [rdi + r9*4]
addss xmm2, dword [rdi + r8*4]
movss xmm1, dword [rdi + rdx*4]
lea ecx, [rbp*4]
add ebp, r14d
addss xmm1, dword [rdi + rbx*4]
movsxd rax, ecx
lea r11d, [r14 + r14]
movaps xmm0, xmm1
subss xmm1, xmm2
addss xmm0, xmm2
movss dword [rsi + rax*4], xmm0
lea rax, [rax + r14*4]
movss dword [rsi + rax*4 - 4], xmm1
movss xmm0, dword [rdi + rbx*4]
lea eax, [rcx + r14*2]
mov ecx, dword [rsp + 0x28]
cdqe
subss xmm0, dword [rdi + rdx*4]
movss dword [rsi + rax*4 - 4], xmm0
movss xmm1, dword [rdi + r8*4]
subss xmm1, dword [rdi + r9*4]
movss dword [rsi + rax*4], xmm1
lea eax, [r14*4]
add ecx, eax
add r12d, eax
add r13d, eax
dec qword [rsp + 8]
mov dword [rsp + 0x28], ecx
jne 0x14004c3a0
mov ebx, dword [rsp + 0x30]
mov dword [rsp + 0x20], r13d
mov r13d, dword [rsp + 0x118]
mov edx, dword [rsp + 0x20]
mov dword [rsp + 0x110], r12d
mov r12d, dword [rsp]
mov eax, dword [rsp + 0x110]
cmp ebx, r13d
jge 0x14004c65e
movsxd r11, eax
movsxd rcx, ecx
movsxd rax, ebp
movsxd r10, edx
lea r8, [rdi + rax*4]
mov eax, r13d
sub r11, rcx
sub r10, rcx
sub eax, ebx
lea r9, [r14*4]
lea rdx, [rdi + rcx*4]
lea r12d, [r14 + r14]
mov ebx, eax
movss xmm1, dword [rdx + r10*4]
movss xmm2, dword [rdx + r11*4]
lea ecx, [rbp*4]
movsxd rax, ecx
add ebp, r14d
addss xmm1, dword [r8]
addss xmm2, dword [rdx]
movaps xmm0, xmm1
addss xmm0, xmm2
subss xmm1, xmm2
movss dword [rsi + rax*4], xmm0
add rax, r9
movss dword [rsi + rax*4 - 4], xmm1
movss xmm0, dword [r8]
lea eax, [r12 + rcx]
add r8, r9
cdqe
subss xmm0, dword [rdx + r10*4]
movss dword [rsi + rax*4 - 4], xmm0
movss xmm1, dword [rdx]
subss xmm1, dword [rdx + r11*4]
add rdx, r9
movss dword [rsi + rax*4], xmm1
dec rbx
jne 0x14004c5ee
mov r12d, dword [rsp]
cmp r14d, 2
jl 0x14004cd20
movsxd rbx, r12d
mov qword [rsp + 0x50], rbx
je 0x14004c99e
xor r11d, r11d
mov ebp, r11d
test r13d, r13d
jle 0x14004c994
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm7
movaps xmmword [rsp + 0x90], xmm8
mov eax, r13d
lea ecx, [r14 + r14]
mov qword [rsp + 0x10], rax
movaps xmmword [rsp + 0x80], xmm9
movaps xmmword [rsp + 0x70], xmm10
movaps xmmword [rsp + 0x60], xmm11
nop
lea edx, [rbp*4]
add ecx, edx
cmp r14d, 2
jle 0x14004c942
mov r15, qword [rsp + 0x130]
movsxd rdx, edx
movsxd rax, ecx
dec rax
lea rcx, [rbx + rbx]
lea r12, [rbx*4]
lea r10, [rsi + rax*4]
lea rax, [r11 - 1]
lea r9, [r15 + 4]
add rax, rcx
lea r8, [rdi + rax*4]
mov rax, rbx
neg rax
mov qword [rsp + 0x38], rax
mov eax, 4
sub rax, r12
mov qword [rsp + 0x30], rax
mov rax, rbx
neg rax
mov qword [rsp + 0x28], rax
lea rax, [rbx*8]
mov ebx, 4
sub rbx, rax
lea eax, [r14 + r14]
movsxd r13, eax
mov qword [rsp + 0x20], rbx
mov rbx, qword [rsp + 0x28]
mov rax, r13
sub rax, rcx
sub rax, r11
add rax, rdx
sub rdx, rcx
mov rcx, qword [rsp + 0x138]
shl rax, 2
sub rdx, r11
sub rcx, r15
sub rax, rdi
shl rdx, 2
add rax, rsi
sub rdx, rdi
mov qword [rsp + 0x58], rax
lea rax, [rdx + rsi]
mov rdx, qword [rsp + 0x140]
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0x48], rax
lea eax, [r14 - 3]
mov r14, qword [rsp + 0x48]
sub rdx, r15
mov r15, qword [rsp + 0x30]
shr eax, 1
inc eax
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x38]
nop dword [rax]
nop dword [rax + rax]
movss xmm1, dword [r9 - 4]
movss xmm4, dword [r9 + rdx - 4]
movss xmm3, dword [r8 + rax*4 + 8]
add r8, 8
sub r10, 8
movaps xmm0, xmm1
mulss xmm0, xmm3
mulss xmm3, dword [r9]
movss xmm8, dword [r9 + rcx - 4]
movss xmm11, dword [r15 + r8]
movss xmm2, dword [r8 + rbx*8]
add r9, 8
dec qword [rsp + 8]
movaps xmm5, xmm11
mulss xmm5, dword [r9 - 8]
mulss xmm11, xmm1
subss xmm11, xmm3
movss xmm3, dword [r9 + rcx - 8]
movaps xmm9, xmm3
mulss xmm3, dword [r8]
mulss xmm9, dword [r8 + 4]
addss xmm5, xmm0
movaps xmm0, xmm8
mulss xmm0, dword [r8]
mulss xmm8, dword [r8 + 4]
addss xmm9, xmm0
subss xmm8, xmm3
movss xmm3, dword [r9 + rdx - 8]
movaps xmm0, xmm4
movaps xmm10, xmm3
mulss xmm0, dword [r12 + r8]
mulss xmm10, dword [r12 + r8 + 4]
mulss xmm4, dword [r12 + r8 + 4]
addss xmm10, xmm0
movaps xmm7, xmm10
subss xmm10, xmm5
addss xmm7, xmm5
movss xmm5, dword [rsi + r8]
mulss xmm3, dword [r12 + r8]
subss xmm4, xmm3
movaps xmm3, xmm2
subss xmm2, xmm9
movaps xmm6, xmm4
addss xmm6, xmm11
subss xmm11, xmm4
addss xmm3, xmm9
movaps xmm4, xmm5
movaps xmm0, xmm3
addss xmm0, xmm7
addss xmm4, xmm8
subss xmm5, xmm8
movaps xmm1, xmm4
movss dword [r14 + r8], xmm0
addss xmm1, xmm6
subss xmm3, xmm7
movaps xmm0, xmm2
movss dword [r14 + r8 + 4], xmm1
subss xmm0, xmm11
addss xmm2, xmm11
movaps xmm1, xmm10
movss dword [r10], xmm0
subss xmm1, xmm5
addss xmm5, xmm10
movss dword [r10 + 4], xmm1
movss dword [rdi + r8], xmm2
movss dword [rdi + r8 + 4], xmm5
subss xmm6, xmm4
movss dword [r10 + r13*4], xmm3
movss dword [r10 + r13*4 + 4], xmm6
jne 0x14004c7c0
mov rdi, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x128]
mov r14d, dword [rsp + 0x18]
mov rbx, qword [rsp + 0x50]
mov r15, qword [rsp + 0x40]
mov rax, qword [rsp + 0x10]
add ebp, r14d
add r11, r15
dec rax
mov qword [rsp + 0x10], rax
lea ecx, [r14 + r14]
jne 0x14004c6c0
mov r13d, dword [rsp + 0x118]
mov r12d, dword [rsp]
movaps xmm11, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xb0]
test r14b, 1
jne 0x14004cd20
movss xmm4, dword [0x1400e788c]
movss xmm5, dword [0x14009cf80]
lea ebp, [r14 - 1]
add ebp, r12d
lea ecx, [r12*2]
lea eax, [r14*4]
add ecx, ebp
lea r10d, [r14 + r14]
mov r8d, r14d
mov dword [rsp + 0x110], ecx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
cmp r13d, 4
jl 0x14004cc6c
movsxd rcx, eax
lea eax, [rax*4]
mov dword [rsp + 0x30], eax
lea eax, [r14*4]
mov qword [rsp + 8], rcx
mov dword [rsp + 0x18], eax
lea eax, [r13 - 4]
mov r13d, dword [rsp + 0x110]
shr eax, 2
movsxd rcx, r10d
inc eax
mov qword [rsp + 0x10], rcx
mov r12d, eax
mov qword [rsp + 0x38], r12
lea r12d, [rax*4]
mov qword [rsp + 0x40], r12
mov r12d, r14d
nop dword [rax + rax]
movsxd r8, r14d
movsxd rdx, ebp
movsxd r11, r12d
add rcx, r8
lea r9, [rdx + r15]
lea rax, [rbx + rdx]
movss xmm1, dword [rdi + rdx*4]
movsxd r10, r13d
movss xmm0, dword [rdi + r10*4]
lea rdx, [r10 + r15]
mov r10, qword [rsp + 8]
add r10, r8
movaps xmm2, xmm0
addss xmm2, xmm1
subss xmm1, xmm0
mulss xmm2, xmm4
mulss xmm1, xmm4
movaps xmm0, xmm1
xorps xmm2, xmm5
addss xmm0, dword [rdi + r11*4 - 4]
movss dword [rsi + r8*4 - 4], xmm0
movss xmm0, dword [rdi + r11*4 - 4]
subss xmm0, xmm1
movss dword [rsi + rcx*4 - 4], xmm0
movaps xmm0, xmm2
subss xmm0, dword [rdi + rax*4]
movss dword [rsi + r8*4], xmm0
addss xmm2, dword [rdi + rax*4]
lea r8, [r11 + r15]
lea rax, [r9 + rbx]
lea r11, [r9 + r15]
movss dword [rsi + rcx*4], xmm2
movss xmm0, dword [rdi + rdx*4]
movss xmm1, dword [rdi + r9*4]
mov rcx, qword [rsp + 0x10]
lea r9, [rdx + r15]
mov rdx, qword [rsp + 8]
movaps xmm2, xmm0
addss xmm2, xmm1
subss xmm1, xmm0
add rcx, r10
add rdx, r10
mulss xmm2, xmm4
mulss xmm1, xmm4
movaps xmm0, xmm1
xorps xmm2, xmm5
addss xmm0, dword [rdi + r8*4 - 4]
movss dword [rsi + r10*4 - 4], xmm0
movss xmm0, dword [rdi + r8*4 - 4]
subss xmm0, xmm1
movss dword [rsi + rcx*4 - 4], xmm0
movaps xmm0, xmm2
subss xmm0, dword [rdi + rax*4]
movss dword [rsi + r10*4], xmm0
addss xmm2, dword [rdi + rax*4]
lea r10, [r8 + r15]
lea rax, [r11 + rbx]
lea r8, [r11 + r15]
movss dword [rsi + rcx*4], xmm2
movss xmm0, dword [rdi + r9*4]
movss xmm1, dword [rdi + r11*4]
mov rcx, qword [rsp + 0x10]
add rcx, rdx
movaps xmm2, xmm0
addss xmm2, xmm1
subss xmm1, xmm0
mulss xmm2, xmm4
mulss xmm1, xmm4
movaps xmm0, xmm1
xorps xmm2, xmm5
addss xmm0, dword [rdi + r10*4 - 4]
movss dword [rsi + rdx*4 - 4], xmm0
movss xmm0, dword [rdi + r10*4 - 4]
subss xmm0, xmm1
movss dword [rsi + rcx*4 - 4], xmm0
movaps xmm0, xmm2
subss xmm0, dword [rdi + rax*4]
movss dword [rsi + rdx*4], xmm0
addss xmm2, dword [rdi + rax*4]
lea rax, [r9 + r15]
movss dword [rsi + rcx*4], xmm2
movss xmm0, dword [rdi + rax*4]
movss xmm1, dword [rdi + r8*4]
mov r9, qword [rsp + 8]
mov rcx, qword [rsp + 0x10]
add r14d, dword [rsp + 0x30]
add r9, rdx
movaps xmm2, xmm0
addss xmm2, xmm1
subss xmm1, xmm0
add rcx, r9
lea rax, [r8 + rbx]
lea rdx, [r10 + r15]
mulss xmm2, xmm4
mulss xmm1, xmm4
movaps xmm0, xmm1
xorps xmm2, xmm5
addss xmm0, dword [rdi + rdx*4 - 4]
movss dword [rsi + r9*4 - 4], xmm0
movss xmm0, dword [rdi + rdx*4 - 4]
subss xmm0, xmm1
movss dword [rsi + rcx*4 - 4], xmm0
movaps xmm0, xmm2
subss xmm0, dword [rdi + rax*4]
movss dword [rsi + r9*4], xmm0
addss xmm2, dword [rdi + rax*4]
mov eax, dword [rsp + 0x18]
add ebp, eax
add r13d, eax
add r12d, eax
dec qword [rsp + 0x38]
movss dword [rsi + rcx*4], xmm2
mov rcx, qword [rsp + 0x10]
jne 0x14004ca40
mov eax, dword [rsp + 0x28]
mov r10d, dword [rsp + 0x20]
mov dword [rsp], r12d
mov r8d, dword [rsp]
mov r12, qword [rsp + 0x40]
mov dword [rsp + 0x110], r13d
mov ecx, dword [rsp + 0x110]
mov r13d, dword [rsp + 0x118]
jmp 0x14004cc6f
xor r12d, r12d
cmp r12d, r13d
jge 0x14004cd20
movsxd rdx, ebp
movsxd r11, ecx
cdqe
sub r11, rbx
movsxd r9, r8d
lea rbp, [rax*4]
lea rax, [rbx + rdx]
sub r9, rbx
movsxd rcx, r14d
dec rcx
sub r11, rdx
sub r9, rdx
neg rbx
sub r13d, r12d
lea r8, [rdi + rax*4]
lea rax, [rsi + rcx*4]
movsxd r10, r10d
lea r15, [r15*4]
mov ecx, r13d
movss xmm2, dword [r8 + rbx*4]
movaps xmm3, xmm2
subss xmm2, dword [r8 + r11*4]
addss xmm3, dword [r8 + r11*4]
mulss xmm2, xmm4
movaps xmm0, xmm2
mulss xmm3, xmm4
addss xmm0, dword [r8 + r9*4 - 4]
xorps xmm3, xmm5
movss dword [rax], xmm0
movss xmm1, dword [r8 + r9*4 - 4]
movaps xmm0, xmm3
subss xmm1, xmm2
movss dword [rax + r10*4], xmm1
subss xmm0, dword [r8]
movss dword [rax + 4], xmm0
addss xmm3, dword [r8]
add r8, r15
movss dword [rax + r10*4 + 4], xmm3
add rax, rbp
dec rcx
jne 0x14004ccbd
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret