Function at 0x1800c2dbc
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x3f]
sub rsp, 0xc0
movaps xmmword [rax - 0x48], xmm6
mov r14, r8
movaps xmmword [rax - 0x58], xmm7
mov r12, rdx
mov eax, dword [rcx]
mov rsi, rcx
mov dword [rbp + 0x5f], eax
mov rax, qword [rcx + 0x20]
movsxd r13, r9d
mov qword [rbp - 0x51], rax
cmp r13d, 1
jne 0x1800c2e1a
mov rax, qword [rbp + 0x87]
mov r9d, dword [rbp + 0x67]
mov qword [rsp + 0x20], rax
call fcn.1800c2cd0
jmp 0x1800c322f
mov eax, dword [rbp + 0x97]
lea rcx, [rbp + 0x97]
mov r15d, dword [rbp + 0x6f]
lea rdx, [rbp - 0x39]
mov qword [rsp + 0x50], rcx
mov r9, r14
mov ecx, dword [rbp + 0x7f]
mov r8, r12
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], ecx
mov rcx, rsi
mov dword [rsp + 0x38], r15d
mov dword [rbp + 0x47], eax
lea rax, [rbp + 0x67]
mov dword [rsp + 0x30], r15d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
call fcn.1800c0a5c
movd xmm7, dword [rbp - 0x35]
movd xmm6, dword [rbp - 0x31]
cvtdq2ps xmm7, xmm7
cvtdq2ps xmm6, xmm6
mulss xmm7, dword [0x1800f6b20]
mulss xmm6, dword [0x1800f6b20]
cmp r13d, 2
jne 0x1800c303f
mov ecx, dword [rbp - 0x25]
xor edi, edi
test dword [rbp - 0x29], 0xffffbfff
mov r8d, edi
mov r9d, 0x2000
mov ebx, edi
lea eax, [rdi + 8]
cmovne r8d, eax
mov eax, dword [rbp + 0x67]
add ecx, r8d
sub eax, r8d
sub dword [rsi + 0x28], ecx
mov rcx, r14
cmp dword [rbp - 0x29], r9d
mov dword [rbp - 0x59], eax
mov rax, r12
cmovg rax, r14
cmovg rcx, r12
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rcx
test r8d, r8d
je 0x1800c2f27
cmp dword [rbp + 0x5f], edi
je 0x1800c2f17
movss xmm1, dword [rcx + 4]
lea r8d, [r13 - 1]
movss xmm0, dword [rax + 4]
mulss xmm0, dword [rcx]
mov rcx, qword [rbp - 0x51]
mulss xmm1, dword [rax]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
seta bl
mov edx, ebx
call fcn.1800b9fdc
jmp 0x1800c2f27
mov rcx, qword [rbp - 0x51]
mov edx, 1
call fcn.1800cbde0
mov ebx, eax
movss xmm0, dword [0x1800f1ac4]
lea eax, [rbx + rbx]
mov r9d, dword [rbp - 0x59]
mov ebx, 1
mov rdx, qword [rbp - 0x49]
sub ebx, eax
mov eax, dword [rbp + 0x47]
mov r8d, 2
mov dword [rsp + 0x50], eax
mov rcx, rsi
mov rax, qword [rbp + 0x8f]
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0x87]
movss dword [rsp + 0x40], xmm0
mov qword [rsp + 0x38], rax
mov eax, dword [rbp + 0x7f]
mov dword [rsp + 0x30], eax
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r15d
call fcn.1800c2958
mov ecx, ebx
mov r15d, eax
mov rax, qword [rbp - 0x49]
neg ecx
movd xmm0, ecx
mov rcx, qword [rbp - 0x41]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rax + 4]
movss dword [rcx], xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rax]
movss dword [rcx + 4], xmm0
cmp dword [rsi + 4], edi
je 0x1800c322c
movaps xmm2, xmm6
movaps xmm0, xmm7
mulss xmm0, dword [r12]
movaps xmm1, xmm7
mulss xmm1, dword [r12 + 4]
movss dword [r12], xmm0
movss dword [r12 + 4], xmm1
mulss xmm2, dword [r14]
mulss xmm6, dword [r14 + 4]
movss dword [r14], xmm2
movss dword [r14 + 4], xmm6
movss xmm1, dword [r12]
movaps xmm0, xmm1
subss xmm0, xmm2
movss dword [r12], xmm0
addss xmm1, dword [r14]
movss dword [r14], xmm1
movss xmm2, dword [r12 + 4]
movaps xmm0, xmm2
subss xmm0, dword [r14 + 4]
movss dword [r12 + 4], xmm0
addss xmm2, dword [r14 + 4]
movss dword [r14 + 4], xmm2
jmp 0x1800c31e1
mov r15d, dword [rbp + 0x67]
mov eax, r15d
sub eax, dword [rbp - 0x2d]
cdq
sub eax, edx
sar eax, 1
cmp r15d, eax
mov ebx, eax
cmovl eax, r15d
xor edi, edi
test eax, eax
jns 0x1800c3061
mov ebx, edi
jmp 0x1800c3068
cmp r15d, ebx
cmovl ebx, r15d
mov eax, dword [rbp - 0x25]
sub r15d, ebx
sub dword [rsi + 0x28], eax
mov r8d, r13d
mov eax, dword [rsi + 0x28]
mov dword [rbp + 0x47], eax
mov eax, dword [rbp + 0x97]
cmp ebx, r15d
jl 0x1800c312c
movss xmm0, dword [0x1800f1ac4]
mov r9d, ebx
mov dword [rsp + 0x50], eax
mov rdx, r12
mov rax, qword [rbp + 0x8f]
mov rcx, rsi
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0x87]
movss dword [rsp + 0x40], xmm0
mov qword [rsp + 0x38], rax
mov eax, dword [rbp + 0x7f]
mov dword [rsp + 0x30], eax
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0x6f]
mov dword [rsp + 0x20], eax
call fcn.1800c2958
mov ecx, dword [rsi + 0x28]
sub ecx, dword [rbp + 0x47]
add ecx, ebx
mov dword [rbp + 0x5f], eax
cmp ecx, 0x18
jle 0x1800c30f4
cmp dword [rbp - 0x29], edi
je 0x1800c30f4
add r15d, 0xffffffe8
add r15d, ecx
mov edx, dword [rbp + 0x97]
mov r9d, r15d
mov eax, dword [rbp + 0x6f]
mov ecx, eax
sar edx, cl
mov ecx, dword [rbp + 0x7f]
mov dword [rsp + 0x50], edx
mov rdx, r14
mov qword [rsp + 0x48], rdi
movss dword [rsp + 0x40], xmm6
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], ecx
mov qword [rsp + 0x28], rdi
jmp 0x1800c31cb
mov ecx, dword [rbp + 0x6f]
mov r9d, r15d
sar eax, cl
mov rdx, r14
mov dword [rsp + 0x50], eax
mov eax, dword [rbp + 0x7f]
mov qword [rsp + 0x48], rdi
movss dword [rsp + 0x40], xmm6
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], ecx
mov rcx, rsi
call fcn.1800c2958
mov ecx, dword [rsi + 0x28]
sub ecx, dword [rbp + 0x47]
add ecx, r15d
mov dword [rbp + 0x5f], eax
cmp ecx, 0x18
jle 0x1800c3182
cmp dword [rbp - 0x29], 0x4000
je 0x1800c3182
add ebx, 0xffffffe8
add ebx, ecx
mov eax, dword [rbp + 0x97]
mov r9d, ebx
movss xmm0, dword [0x1800f1ac4]
mov rdx, r12
mov dword [rsp + 0x50], eax
mov rax, qword [rbp + 0x8f]
mov qword [rsp + 0x48], rax
mov rax, qword [rbp + 0x87]
movss dword [rsp + 0x40], xmm0
mov qword [rsp + 0x38], rax
mov eax, dword [rbp + 0x7f]
mov dword [rsp + 0x30], eax
mov rax, qword [rbp + 0x77]
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0x6f]
mov r8d, r13d
mov dword [rsp + 0x20], eax
mov rcx, rsi
call fcn.1800c2958
mov r15d, dword [rbp + 0x5f]
or r15d, eax
cmp dword [rsi + 4], edi
je 0x1800c322c
cmp r13d, 2
je 0x1800c3204
mov eax, dword [rsi + 0x3c]
mov r9d, r13d
movaps xmm2, xmm7
mov dword [rsp + 0x20], eax
mov rdx, r14
mov rcx, r12
call fcn.1800c3b6c
cmp dword [rbp - 0x39], edi
je 0x1800c322c
mov rax, r13
test r13d, r13d
jle 0x1800c322c
movss xmm0, dword [r14 + rdi*4]
xorps xmm0, xmmword [0x1800f1cf0]
movss dword [r14 + rdi*4], xmm0
inc rdi
cmp rdi, rax
jl 0x1800c3211
mov eax, r15d
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret