Function at 0x180045790
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbp
push rsi
push r14
push r15
sub rsp, 0x70
mov r15d, dword [rcx + 8]
lea r10, [rsp + 0x30]
xor r9d, r9d
mov dword [rsp + 0x30], 1
test r15d, r15d
lea r8, [rcx + 0xc]
mov r14, rdx
mov rbp, rcx
cmovle r15d, r9d
lea rdx, [rsp + 0x34]
sub rdx, rcx
sub r10, rcx
nop
movsx eax, word [r8]
mov rcx, r8
imul eax, dword [r8 + r10 - 0xc]
movsxd rsi, r9d
inc r9d
mov dword [rdx + r8 - 0xc], eax
add r8, 4
cmp word [rcx + 2], 1
jne 0x1800457d0
lea eax, [r9 + r9]
movsxd rcx, eax
movsx r9d, word [rbp + rcx*2 + 0xa]
test esi, esi
js 0x180045a6b
mov qword [rsp + 0x90], rbx
lea rax, [rsp + 0x30]
mov qword [rsp + 0x98], rdi
lea rbx, [rsp + 0x30]
mov qword [rsp + 0xa0], r12
lea rbx, [rbx + rsi*4]
movaps xmmword [rsp + 0x60], xmm6
mov r12, rbp
movss xmm6, dword [0x1800c1dc8]
sub r12, rax
movaps xmmword [rsp + 0x50], xmm7
movss xmm7, dword [0x1800c23f0]
nop
test esi, esi
je 0x18004585c
movsx edi, word [rbx + r12 + 0xa]
jmp 0x180045861
mov edi, 1
movsx ecx, word [rbx + r12 + 0xc]
sub ecx, 2
je 0x1800458f8
sub ecx, 1
je 0x1800458d1
sub ecx, 1
je 0x1800458aa
cmp ecx, 1
jne 0x180045a39
mov r8d, dword [rbx]
mov ecx, r15d
mov eax, r8d
mov dword [rsp + 0x28], edi
shl eax, cl
mov rcx, r14
mov dword [rsp + 0x20], r8d
mov r8, rbp
movsxd rdx, eax
call fcn.180045250
jmp 0x180045a39
mov r8d, dword [rbx]
mov ecx, r15d
mov eax, r8d
mov dword [rsp + 0x28], edi
shl eax, cl
mov rcx, r14
mov dword [rsp + 0x20], r8d
mov r8, rbp
movsxd rdx, eax
call fcn.1800449a0
jmp 0x180045a39
mov r8d, dword [rbx]
mov ecx, r15d
mov eax, r8d
mov dword [rsp + 0x28], edi
shl eax, cl
mov rcx, r14
mov dword [rsp + 0x20], r8d
mov r8, rbp
movsxd rdx, eax
call fcn.180045050
jmp 0x180045a39
mov ecx, dword [rbx]
test ecx, ecx
jle 0x180045a39
lea rax, [r14 + 0x28]
mov edx, ecx
nop dword [rax + rax]
movss xmm2, dword [rax - 0x28]
movss xmm3, dword [rax - 8]
movaps xmm0, xmm2
movss xmm4, dword [rax - 4]
subss xmm0, xmm3
addss xmm2, xmm3
movss dword [rax - 8], xmm0
movss xmm1, dword [rax - 0x24]
movaps xmm0, xmm1
addss xmm1, xmm4
subss xmm0, xmm4
movss dword [rax - 4], xmm0
movss dword [rax - 0x28], xmm2
movss xmm2, dword [rax - 0x20]
movss dword [rax - 0x24], xmm1
movaps xmm0, xmm2
movss xmm4, dword [rax + 4]
movaps xmm3, xmm4
addss xmm3, dword [rax]
subss xmm4, dword [rax]
mulss xmm3, xmm6
mulss xmm4, xmm6
subss xmm0, xmm3
addss xmm3, xmm2
movss dword [rax], xmm0
movss xmm1, dword [rax - 0x1c]
movaps xmm0, xmm1
subss xmm0, xmm4
addss xmm4, xmm1
movss dword [rax + 4], xmm0
movss xmm2, dword [rax - 0x18]
movss dword [rax - 0x20], xmm3
movaps xmm0, xmm2
movss dword [rax - 0x1c], xmm4
movss xmm3, dword [rax + 0xc]
movss xmm4, dword [rax + 8]
subss xmm0, xmm3
addss xmm2, xmm3
xorps xmm4, xmm7
movss dword [rax + 8], xmm0
movss xmm1, dword [rax - 0x14]
movaps xmm0, xmm1
subss xmm0, xmm4
addss xmm4, xmm1
movss dword [rax + 0xc], xmm0
movss dword [rax - 0x18], xmm2
movss xmm2, dword [rax - 0x10]
movss dword [rax - 0x14], xmm4
movaps xmm0, xmm2
movss xmm5, dword [rax + 0x14]
movaps xmm3, xmm5
addss xmm5, dword [rax + 0x10]
subss xmm3, dword [rax + 0x10]
xorps xmm5, xmm7
mulss xmm3, xmm6
mulss xmm5, xmm6
subss xmm0, xmm3
addss xmm3, xmm2
movss dword [rax + 0x10], xmm0
movss xmm1, dword [rax - 0xc]
movaps xmm0, xmm1
subss xmm0, xmm5
addss xmm5, xmm1
movss dword [rax + 0x14], xmm0
movss dword [rax - 0x10], xmm3
movss dword [rax - 0xc], xmm5
add rax, 0x40
sub rdx, 1
jne 0x180045910
sub rbx, 4
mov r9d, edi
sub esi, 1
jns 0x180045850
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x60]
mov r12, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0x90]
mov rbp, qword [rsp + 0xa8]
add rsp, 0x70
pop r15
pop r14
pop rsi
ret