Function at 0x14004e990
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, 0x98
movsxd r15, ecx
xor edi, edi
mov ebx, edx
mov eax, r15d
mov r14, r9
lea r9d, [r15 + r15]
mov rsi, r8
mov dword [rsp + 4], r15d
mov r13d, edi
imul eax, edx
lea edx, [r15*4]
movsxd r11, eax
mov ecx, edi
mov dword [rsp + 8], r9d
mov ebp, edi
mov dword [rsp], edi
mov qword [rsp + 0x30], r11
mov dword [rsp + 0xe0], edx
mov r12, r15
mov qword [rsp + 0x28], r15
cmp ebx, 4
jl 0x14004ec36
lea eax, [rdx*4]
movsxd r10, r9d
movsxd rdi, edx
mov dword [rsp + 0x20], eax
lea eax, [rbx - 4]
mov ebx, r13d
shr eax, 2
inc eax
mov ecx, eax
lea ebp, [rax*4]
mov qword [rsp + 0x18], rcx
mov dword [rsp], ebp
mov ebp, ecx
nop dword [rax]
nop word [rax + rax]
movsxd r9, ebx
movsxd rdx, r13d
lea r8, [rdx + r15]
lea rax, [r9 + r10]
movss xmm0, dword [rsi + r9*4]
movaps xmm3, xmm0
movss xmm5, dword [rsi + rax*4 - 4]
movss xmm4, dword [rsi + rax*4]
add rax, r10
movss xmm2, dword [rsi + rax*4 - 4]
addss xmm5, xmm5
addss xmm4, xmm4
lea rax, [rdx + r11]
lea rcx, [rax + r11]
subss xmm3, xmm2
addss xmm2, xmm0
movaps xmm0, xmm2
movaps xmm1, xmm3
addss xmm0, xmm5
subss xmm2, xmm5
addss xmm3, xmm4
movss dword [r14 + rdx*4], xmm0
subss xmm1, xmm4
lea rdx, [rdi + r9]
lea r9, [r8 + r15]
movss dword [r14 + rax*4], xmm1
movss dword [r14 + rcx*4], xmm2
lea rax, [rcx + r11]
movss dword [r14 + rax*4], xmm3
movss xmm0, dword [rsi + rdx*4]
lea rax, [rdx + r10]
add rdx, rdi
movss xmm5, dword [rsi + rax*4 - 4]
movss xmm4, dword [rsi + rax*4]
movaps xmm3, xmm0
add rax, r10
movss xmm2, dword [rsi + rax*4 - 4]
addss xmm5, xmm5
addss xmm4, xmm4
lea rax, [r8 + r11]
lea rcx, [rax + r11]
subss xmm3, xmm2
addss xmm2, xmm0
movaps xmm0, xmm2
movaps xmm1, xmm3
addss xmm0, xmm5
subss xmm2, xmm5
addss xmm3, xmm4
movss dword [r14 + r8*4], xmm0
subss xmm1, xmm4
movss dword [r14 + rax*4], xmm1
movss dword [r14 + rcx*4], xmm2
lea rax, [rcx + r11]
movss dword [r14 + rax*4], xmm3
movss xmm0, dword [rsi + rdx*4]
lea rax, [rdx + r10]
movss xmm5, dword [rsi + rax*4 - 4]
movss xmm4, dword [rsi + rax*4]
movaps xmm3, xmm0
add rax, r10
movss xmm2, dword [rsi + rax*4 - 4]
addss xmm5, xmm5
addss xmm4, xmm4
lea rax, [r9 + r11]
lea rcx, [rax + r11]
subss xmm3, xmm2
addss xmm2, xmm0
movaps xmm0, xmm2
movaps xmm1, xmm3
addss xmm0, xmm5
subss xmm1, xmm4
subss xmm2, xmm5
movss dword [r14 + r9*4], xmm0
movss dword [r14 + rax*4], xmm1
movss dword [r14 + rcx*4], xmm2
lea rax, [rcx + r11]
lea rcx, [rdx + rdi]
lea rdx, [r9 + r15]
addss xmm3, xmm4
movss dword [r14 + rax*4], xmm3
lea rax, [rcx + r10]
movss xmm5, dword [rsi + rax*4 - 4]
movss xmm4, dword [rsi + rax*4]
movss xmm0, dword [rsi + rcx*4]
add ebx, dword [rsp + 0x20]
add rax, r10
movaps xmm3, xmm0
movss xmm2, dword [rsi + rax*4 - 4]
addss xmm5, xmm5
addss xmm4, xmm4
lea rax, [rdx + r11]
lea rcx, [rax + r11]
subss xmm3, xmm2
addss xmm2, xmm0
movaps xmm0, xmm2
movaps xmm1, xmm3
addss xmm0, xmm5
subss xmm1, xmm4
subss xmm2, xmm5
movss dword [r14 + rdx*4], xmm0
movss dword [r14 + rax*4], xmm1
addss xmm3, xmm4
lea rax, [rcx + r11]
movss dword [r14 + rcx*4], xmm2
movss dword [r14 + rax*4], xmm3
lea eax, [r15*4]
add r13d, eax
dec rbp
jne 0x14004ea40
mov ebp, dword [rsp]
mov dword [rsp + 0x10], ebx
mov ebx, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0x10]
lea r9d, [r15 + r15]
xor edi, edi
cmp ebp, ebx
jge 0x14004ecfc
movsxd rax, dword [rsp + 0xe0]
movsxd rdx, ecx
movsxd rcx, r13d
lea rax, [rax*4]
movsxd r8, r9d
mov r10d, 4
mov qword [rsp + 0x18], rax
lea r13, [r8*4]
lea rax, [rcx + r11*2]
lea rcx, [r14 + rax*4]
lea rax, [rdx - 1]
mov rdi, r11
add rax, r8
mov rbp, r11
mov r8d, ebx
sub r10, r13
neg rdi
lea rdx, [rsi + rax*4]
neg rbp
sub r8d, dword [rsp]
lea rax, [r15*4]
movss xmm2, dword [r10 + rdx]
movss xmm5, dword [rdx]
movss xmm4, dword [rdx + 4]
movaps xmm3, xmm2
addss xmm2, dword [r13 + rdx]
subss xmm3, dword [r13 + rdx]
addss xmm5, xmm5
add rdx, qword [rsp + 0x18]
movaps xmm0, xmm2
movaps xmm1, xmm3
addss xmm4, xmm4
addss xmm0, xmm5
subss xmm2, xmm5
movss dword [rcx + rbp*8], xmm0
subss xmm1, xmm4
addss xmm3, xmm4
movss dword [rcx + rdi*4], xmm1
movss dword [rcx], xmm2
movss dword [rcx + r11*4], xmm3
add rcx, rax
dec r8
jne 0x14004ec9b
xor edi, edi
cmp r15d, 2
jl 0x14004f326
movaps xmmword [rsp + 0x80], xmm6
je 0x14004efe5
mov eax, edi
mov dword [rsp], eax
test ebx, ebx
jle 0x14004efcb
movaps xmmword [rsp + 0x70], xmm7
mov r8d, ebx
movaps xmmword [rsp + 0x60], xmm8
mov r13, rdi
mov qword [rsp + 0x10], r8
movaps xmmword [rsp + 0x50], xmm9
nop dword [rax]
lea ecx, [rax*4]
mov dword [rsp + 0x20], ecx
lea edx, [r9 + rcx]
lea ecx, [r9 + rdx]
cmp r12, 2
jle 0x14004ef9a
mov r15, qword [rsp + 0x100]
movsxd rdi, edx
movsxd rdx, ecx
lea rcx, [r11 + r11]
lea r10, [rsi + rdx*4]
lea rax, [r13 - 1]
add rax, rcx
lea rbp, [r11*4]
lea rbx, [rsi + rdi*4]
lea r9, [r14 + rax*4]
mov rax, r11
sub rdi, rdx
neg rax
lea rdx, [r12 - 3]
lea r8, [r15 + 4]
mov qword [rsp + 0x18], rax
movsxd rax, dword [rsp + 0x20]
shr rdx, 1
sub rax, rcx
mov ecx, 4
sub rax, r13
shl rax, 2
sub rax, r14
mov r14, qword [rsp + 0x18]
add rax, rsi
mov qword [rsp + 0x48], rax
mov rax, r11
mov r12, qword [rsp + 0x48]
neg rax
mov qword [rsp + 0x20], rax
mov eax, 4
sub rax, rbp
mov qword [rsp + 0x40], rax
lea rax, [r11*8]
mov r11, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x40]
sub rcx, rax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0x110]
sub rax, r15
sub rcx, r15
mov r15, qword [rsp + 0x38]
inc rdx
nop dword [rax]
movss xmm6, dword [r12 + r9 + 8]
movss xmm1, dword [rbx + 8]
movss xmm8, dword [r12 + r9 + 0xc]
add r9, 8
sub r10, 8
add rbx, 8
add r8, 8
movaps xmm2, xmm1
movaps xmm7, xmm6
movaps xmm9, xmm8
subss xmm8, dword [r10]
addss xmm9, dword [r10]
addss xmm6, dword [r10 - 4]
movaps xmm0, xmm6
subss xmm7, dword [r10 - 4]
movss xmm5, dword [r10 + rdi*4]
subss xmm2, xmm5
addss xmm5, xmm1
movss xmm1, dword [rbx - 4]
movaps xmm3, xmm7
movaps xmm4, xmm1
addss xmm1, dword [r10 + rdi*4 - 4]
subss xmm4, dword [r10 + rdi*4 - 4]
subss xmm3, xmm5
addss xmm0, xmm1
subss xmm6, xmm1
addss xmm7, xmm5
movaps xmm1, xmm3
movss dword [r9 + r11*8], xmm0
movaps xmm0, xmm2
addss xmm0, xmm8
subss xmm8, xmm2
movaps xmm2, xmm4
movss dword [r15 + r9], xmm0
addss xmm2, xmm9
subss xmm9, xmm4
mulss xmm1, dword [r8 - 0xc]
movaps xmm0, xmm2
mulss xmm0, dword [r8 - 8]
subss xmm1, xmm0
movaps xmm0, xmm8
movss dword [r9 + r14*4], xmm1
mulss xmm2, dword [r8 - 0xc]
mulss xmm3, dword [r8 - 8]
movaps xmm1, xmm6
addss xmm2, xmm3
movss dword [rsi + r9], xmm2
mulss xmm1, dword [rax + r8 - 0xc]
mulss xmm0, dword [rax + r8 - 8]
subss xmm1, xmm0
movaps xmm0, xmm9
movss dword [r9], xmm1
mulss xmm8, dword [rax + r8 - 0xc]
mulss xmm6, dword [rax + r8 - 8]
movaps xmm1, xmm7
addss xmm8, xmm6
movss dword [r9 + 4], xmm8
mulss xmm1, dword [rcx + r8 - 0xc]
mulss xmm0, dword [rcx + r8 - 8]
subss xmm1, xmm0
movss dword [r9 + rbp], xmm1
mulss xmm9, dword [rcx + r8 - 0xc]
mulss xmm7, dword [rcx + r8 - 8]
addss xmm9, xmm7
movss dword [r9 + rbp + 4], xmm9
dec rdx
jne 0x14004ee20
mov r11, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xf0]
mov r14, qword [rsp + 0xf8]
mov r15d, dword [rsp + 4]
mov r12, qword [rsp + 0x28]
mov eax, dword [rsp]
mov r9d, dword [rsp + 8]
mov r8, qword [rsp + 0x10]
add eax, r15d
add r13, r12
dec r8
mov qword [rsp + 0x10], r8
mov dword [rsp], eax
jne 0x14004ed40
mov ebx, dword [rsp + 0xe8]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
xor edi, edi
movaps xmm7, xmmword [rsp + 0x70]
mov eax, r15d
and eax, 0x80000001
jge 0x14004efdc
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
je 0x14004f31e
movss xmm5, dword [0x1401344e4]
movss xmm6, dword [0x1400de890]
lea eax, [r15 + r15*2]
lea r13d, [r15 - 1]
mov dword [rsp], eax
cmp ebx, 4
jl 0x14004f263
movsxd rbp, dword [rsp + 0xe0]
lea eax, [r15*4]
mov dword [rsp + 8], eax
lea eax, [rbp*4]
mov qword [rsp + 0x28], rbp
mov ebp, dword [rsp]
mov dword [rsp + 4], eax
lea eax, [rbx - 4]
shr eax, 2
inc eax
mov ebx, eax
lea edi, [rax*4]
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + 0x28]
nop dword [rax + rax]
movsxd r8, r15d
movsxd r10, ebp
movsxd rdx, r13d
lea rax, [rdx + r11]
lea r9, [rdx + r12]
movss xmm0, dword [rsi + r8*4]
movss xmm1, dword [rsi + r8*4 - 4]
movss xmm3, dword [rsi + r10*4]
lea rcx, [r11 + rax]
movaps xmm4, xmm0
movaps xmm2, xmm1
addss xmm4, xmm3
subss xmm3, xmm0
movss xmm0, dword [rsi + r10*4 - 4]
subss xmm2, xmm0
addss xmm0, xmm1
addss xmm3, xmm3
addss xmm0, xmm0
movss dword [r14 + rdx*4], xmm0
movaps xmm0, xmm2
subss xmm0, xmm4
addss xmm4, xmm2
lea rdx, [r8 + rdi]
lea r8, [r10 + rdi]
lea r10, [r12 + r9]
mulss xmm0, xmm5
mulss xmm4, xmm5
movss dword [r14 + rax*4], xmm0
movss dword [r14 + rcx*4], xmm3
lea rax, [r11 + rcx]
xorps xmm4, xmm6
movss dword [r14 + rax*4], xmm4
movss xmm0, dword [rsi + rdx*4]
movss xmm3, dword [rsi + r8*4]
lea rax, [r11 + r9]
movaps xmm4, xmm0
lea rcx, [r11 + rax]
movss xmm1, dword [rsi + rdx*4 - 4]
addss xmm4, xmm3
subss xmm3, xmm0
add rdx, rdi
movaps xmm2, xmm1
movss xmm0, dword [rsi + r8*4 - 4]
addss xmm3, xmm3
add r8, rdi
subss xmm2, xmm0
addss xmm0, xmm1
addss xmm0, xmm0
movss dword [r14 + r9*4], xmm0
movaps xmm0, xmm2
subss xmm0, xmm4
addss xmm4, xmm2
mulss xmm0, xmm5
mulss xmm4, xmm5
movss dword [r14 + rax*4], xmm0
movss dword [r14 + rcx*4], xmm3
lea rax, [r11 + rcx]
xorps xmm4, xmm6
movss dword [r14 + rax*4], xmm4
movss xmm0, dword [rsi + rdx*4]
movss xmm3, dword [rsi + r8*4]
lea rax, [r11 + r10]
movaps xmm4, xmm0
lea rcx, [rax + r11]
movss xmm1, dword [rsi + rdx*4 - 4]
addss xmm4, xmm3
subss xmm3, xmm0
movaps xmm2, xmm1
movss xmm0, dword [rsi + r8*4 - 4]
addss xmm3, xmm3
subss xmm2, xmm0
addss xmm0, xmm1
addss xmm0, xmm0
movss dword [r14 + r10*4], xmm0
movaps xmm0, xmm2
subss xmm0, xmm4
addss xmm4, xmm2
mulss xmm0, xmm5
mulss xmm4, xmm5
movss dword [r14 + rax*4], xmm0
movss dword [r14 + rcx*4], xmm3
add r13d, dword [rsp + 8]
add r15d, dword [rsp + 4]
add ebp, dword [rsp + 4]
xorps xmm4, xmm6
lea rax, [rcx + r11]
lea rcx, [rdi + r8]
movss dword [r14 + rax*4], xmm4
movss xmm3, dword [rsi + rcx*4]
lea rax, [rdi + rdx]
lea rdx, [r12 + r10]
movss xmm0, dword [rsi + rax*4]
movss xmm1, dword [rsi + rax*4 - 4]
movaps xmm4, xmm0
addss xmm4, xmm3
subss xmm3, xmm0
lea rax, [rdx + r11]
movaps xmm2, xmm1
movss xmm0, dword [rsi + rcx*4 - 4]
addss xmm3, xmm3
lea rcx, [rax + r11]
subss xmm2, xmm0
addss xmm0, xmm1
addss xmm0, xmm0
movss dword [r14 + rdx*4], xmm0
movaps xmm0, xmm2
subss xmm0, xmm4
addss xmm4, xmm2
mulss xmm0, xmm5
mulss xmm4, xmm5
movss dword [r14 + rax*4], xmm0
movss dword [r14 + rcx*4], xmm3
lea rax, [rcx + r11]
xorps xmm4, xmm6
movss dword [r14 + rax*4], xmm4
dec rbx
jne 0x14004f050
mov ebx, dword [rsp + 0xe8]
mov rdi, qword [rsp + 0x30]
mov dword [rsp], ebp
mov eax, ebp
mov ebp, dword [rsp + 0xe0]
cmp edi, ebx
jge 0x14004f31e
movsxd rdx, eax
movsxd rax, ebp
movsxd rcx, r13d
lea rbp, [rax*4]
lea rax, [rcx + r11*2]
mov r10, r11
lea r8, [rsi - 4]
movsxd r9, r15d
lea rsi, [r11*4]
neg r10
neg r11
sub r9, rdx
sub ebx, edi
lea rcx, [r14 + rax*4]
lea r12, [r12*4]
mov eax, ebx
lea r8, [r8 + rdx*4]
movss xmm1, dword [r8 + r9*4]
movss xmm3, dword [r8 + 4]
movaps xmm2, xmm1
subss xmm2, dword [r8]
addss xmm1, dword [r8]
movaps xmm4, xmm3
movaps xmm0, xmm2
addss xmm4, dword [r8 + r9*4 + 4]
subss xmm3, dword [r8 + r9*4 + 4]
addss xmm1, xmm1
add r8, rbp
subss xmm0, xmm4
movss dword [rcx + r11*8], xmm1
addss xmm4, xmm2
mulss xmm4, xmm5
mulss xmm0, xmm5
movss dword [rcx + r10*4], xmm0
addss xmm3, xmm3
xorps xmm4, xmm6
movss dword [rcx], xmm3
movss dword [rsi + rcx], xmm4
add rcx, r12
dec rax
jne 0x14004f2b6
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret