Function at 0x1800c7e20
Capabilities:
Encode data using xor

Disassembly:
push r12
push r13
push r15
sub rsp, 0x150
mov rax, qword [0x18025cbc0]
xor rax, rsp
mov qword [rsp + 0x100], rax
movsd xmm5, qword [rcx]
xor r10d, r10d
mov r13, r9
mov r15, r8
mov r12, rdx
mov r11, rcx
cmp dword [rdx], r10d
jbe 0x1800c81f4
movsd xmm4, qword [0x18015d5e0]
mov qword [rsp + 0x170], rbx
mov qword [rsp + 0x148], rbp
mov qword [rsp + 0x140], rsi
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x130], r14
movaps xmmword [rsp + 0x120], xmm6
xorps xmm6, xmm6
movaps xmmword [rsp + 0x110], xmm7
movsd xmm7, qword [0x180171d88]
nop word [rax + rax]
lea ebp, [r10 + 1]
xor r8d, r8d
movsd xmm3, qword [r11 + rbp*8]
xorps xmm3, xmm4
cmp r10d, 4
jb 0x1800c7f37
xor r9d, r9d
lea ebx, [r10 - 3]
nop dword [rax]
mov eax, r10d
sub eax, r8d
add r8d, 4
mov edx, eax
movsd xmm0, qword [r11 + rax*8]
dec eax
mulsd xmm0, qword [rsp + r9*8]
subsd xmm3, xmm0
movsd xmm0, qword [r11 + rax*8]
mulsd xmm0, qword [rsp + r9*8 + 8]
lea eax, [rdx - 2]
subsd xmm3, xmm0
movsd xmm0, qword [r11 + rax*8]
mulsd xmm0, qword [rsp + r9*8 + 0x10]
lea eax, [rdx - 3]
subsd xmm3, xmm0
movsd xmm0, qword [r11 + rax*8]
mulsd xmm0, qword [rsp + r9*8 + 0x18]
add r9, 4
subsd xmm3, xmm0
cmp r8d, ebx
jb 0x1800c7ed0
cmp r8d, r10d
jb 0x1800c7f3f
jmp 0x1800c7f67
test r10d, r10d
je 0x1800c7f67
xor r9d, r9d
lea rcx, [rsp]
lea rcx, [rcx + r9*8]
mov eax, r10d
sub eax, r8d
inc r8d
movsd xmm0, qword [r11 + rax*8]
mulsd xmm0, qword [rcx]
add rcx, 8
subsd xmm3, xmm0
cmp r8d, r10d
jb 0x1800c7f47
divsd xmm3, xmm5
mov edi, r10d
mov r9d, r10d
shr r9d, 1
xor r8d, r8d
lea r14, [rdi*8]
movsd qword [rsp + r14], xmm3
cmp r9d, 4
jb 0x1800c8061
xor ebx, ebx
lea esi, [r9 - 3]
nop word [rax + rax]
movsd xmm1, qword [rsp + rbx*8]
mov eax, r10d
sub eax, r8d
movaps xmm0, xmm3
mov edx, eax
add r8d, 4
dec eax
mulsd xmm0, qword [rsp + rax*8]
addsd xmm0, xmm1
mulsd xmm1, xmm3
movsd qword [rsp + rbx*8], xmm0
movaps xmm0, xmm3
addsd xmm1, qword [rsp + rax*8]
movsd qword [rsp + rax*8], xmm1
lea eax, [rdx - 2]
mulsd xmm0, qword [rsp + rax*8]
movsd xmm1, qword [rsp + rbx*8 + 8]
addsd xmm0, xmm1
mulsd xmm1, xmm3
movsd qword [rsp + rbx*8 + 8], xmm0
movaps xmm0, xmm3
addsd xmm1, qword [rsp + rax*8]
movsd qword [rsp + rax*8], xmm1
lea eax, [rdx - 3]
mulsd xmm0, qword [rsp + rax*8]
movsd xmm2, qword [rsp + rbx*8 + 0x10]
addsd xmm0, xmm2
mulsd xmm2, xmm3
movsd qword [rsp + rbx*8 + 0x10], xmm0
movaps xmm0, xmm3
addsd xmm2, qword [rsp + rax*8]
movsd qword [rsp + rax*8], xmm2
lea eax, [rdx - 4]
movsd xmm1, qword [rsp + rbx*8 + 0x18]
mulsd xmm0, qword [rsp + rax*8]
addsd xmm0, xmm1
mulsd xmm1, xmm3
movsd qword [rsp + rbx*8 + 0x18], xmm0
add rbx, 4
addsd xmm1, qword [rsp + rax*8]
movsd qword [rsp + rax*8], xmm1
cmp r8d, esi
jb 0x1800c7fa0
cmp r8d, r9d
jb 0x1800c8068
jmp 0x1800c80a6
test r9d, r9d
je 0x1800c80a6
xor ebx, ebx
lea rdx, [rsp]
lea rdx, [rdx + rbx*8]
movsd xmm1, qword [rdx]
mov eax, r10d
sub eax, r8d
movaps xmm0, xmm3
dec eax
inc r8d
mulsd xmm0, qword [rsp + rax*8]
addsd xmm0, xmm1
mulsd xmm1, xmm3
movsd qword [rdx], xmm0
add rdx, 8
addsd xmm1, qword [rsp + rax*8]
movsd qword [rsp + rax*8], xmm1
cmp r8d, r9d
jb 0x1800c8070
test r10b, 1
je 0x1800c80c3
movsd xmm0, qword [rsp + r8*8]
movaps xmm1, xmm0
mulsd xmm1, xmm3
addsd xmm1, xmm0
movsd qword [rsp + r8*8], xmm1
mulsd xmm3, xmm3
movaps xmm0, xmm7
xor r9d, r9d
xor ecx, ecx
subsd xmm0, xmm3
mulsd xmm5, xmm0
cmp ebp, 4
jb 0x1800c8163
mov rdx, rdi
lea r8d, [r10 + 1]
shl rdx, 7
add rdx, 8
add rdx, r15
shr r8, 2
lea r9d, [r8*4]
nop
movsd xmm0, qword [rsp + rcx*8]
lea rdx, [rdx + 0x10]
movsd xmm1, qword [rsp + rcx*8 + 8]
xorps xmm0, xmm4
movsd xmm2, qword [rsp + rcx*8 + 0x10]
xorps xmm1, xmm4
cvtsd2ss xmm0, xmm0
xorps xmm2, xmm4
movss dword [rdx - 0x18], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movsd xmm1, qword [rsp + rcx*8 + 0x18]
add rcx, 4
movss dword [rdx - 0x14], xmm0
xorps xmm0, xmm0
xorps xmm1, xmm4
cvtsd2ss xmm0, xmm2
movss dword [rdx - 0x10], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [rdx - 0xc], xmm0
sub r8, 1
jne 0x1800c8100
cmp r9d, r10d
ja 0x1800c819b
shl rdi, 5
lea rax, [rsp]
add rdi, rcx
lea rax, [rax + rcx*8]
sub r10d, r9d
lea rcx, [r15 + rdi*4]
lea edx, [r10 + 1]
movsd xmm0, qword [rax]
lea rcx, [rcx + 4]
lea rax, [rax + 8]
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [rcx - 4], xmm0
sub rdx, 1
jne 0x1800c817d
ucomisd xmm5, xmm6
movsd qword [r14 + r13], xmm5
jp 0x1800c81a9
je 0x1800c81b8
mov r10d, ebp
cmp ebp, dword [r12]
jb 0x1800c7eb0
jmp 0x1800c81bc
mov dword [r12], ebp
movaps xmm6, xmmword [rsp + 0x120]
mov r14, qword [rsp + 0x130]
mov rdi, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
mov rbx, qword [rsp + 0x170]
movaps xmm7, xmmword [rsp + 0x110]
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.180151320
add rsp, 0x150
pop r15
pop r13
pop r12
ret