Function at 0x180228690
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x18]
sub rsp, 0x118
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov rbx, rcx
movss xmm0, dword [rcx + 0x84]
mulss xmm0, dword [rcx + 0x80]
addss xmm0, dword [0x18039354c]
movss dword [rcx + 0x80], xmm0
cvttss2si edx, xmm0
call fcn.1800bd4e0
lea r13, [rbx + 0x4c]
mov qword [rbp - 0x10], r13
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
lea rax, vtable.juce::OutputStream.0
mov qword [rsp + 0x40], rax
lea rax, [0x180375c60]
mov qword [rbp + 0x70], rax
lea rdx, [rbp + 0x70]
lea rcx, [rsp + 0x48]
call fcn.18001a440
nop
lea rax, vtable.juce::MemoryOutputStream.0
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x50], rax
xor edi, edi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], rdi
xor ecx, ecx
call fcn.1800a09c8
mov ecx, 0x100
call fcn.1800a0a4c
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x18022879d
lea rax, str.bad_allocation
mov qword [rbp + 0x78], rax
lea r8d, [rdi + 1]
lea rdx, [rbp + 0x78]
lea rcx, [rbp - 8]
call fcn.1800a02bc
lea rax, vtable.std::bad_alloc.0
mov qword [rbp - 8], rax
lea rdx, [0x180411c30]
lea rcx, [rbp - 8]
call fcn.1800a6538
int3
mov qword [rsp + 0x60], 0x100
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax]
lea rax, vtable.juce::MemoryInputStream.0
mov qword [rbp - 0x40], rax
mov rax, qword [rcx]
mov qword [rbp - 0x38], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x20], rdi
mov qword [rbp + 0x60], 1
lea rcx, [rbp + 0x60]
call fcn.1800ddd00
movabs r11, 0x5deece66d
mov rax, qword [rbp + 0x60]
imul rax, r11
add rax, 0xb
movabs r10, 0xffffffffffff
and rax, r10
mov rcx, rax
sar rcx, 0x10
mov qword [rbp + 0x78], rcx
mov dword [rsp + 0x20], ecx
imul rax, r11
add rax, 0xb
and rax, r10
mov rdx, rax
sar rdx, 0x10
mov qword [rbp - 0x58], rdx
mov dword [rsp + 0x24], edx
imul rax, r11
add rax, 0xb
and rax, r10
mov r8, rax
sar r8, 0x10
mov qword [rbp - 0x70], r8
mov dword [rsp + 0x28], r8d
imul rax, r11
add rax, 0xb
and rax, r10
mov r9, rax
sar r9, 0x10
mov qword [rbp - 0x50], r9
mov dword [rsp + 0x2c], r9d
imul rax, r11
add rax, 0xb
and rax, r10
mov r14, rax
sar r14, 0x10
mov dword [rsp + 0x30], r14d
imul rax, r11
add rax, 0xb
and rax, r10
mov qword [rbp + 0x60], rax
sar rax, 0x10
mov r12d, eax
shl r12, 3
shr r12, 0x20
add r12d, 8
mov dword [rsp + 0x34], r12d
mov r15d, edi
cmp dword [rbx + 0x2c], edi
jle 0x1802289e7
nop dword [rax]
mov r8d, 8
lea rdx, [rbp - 0x68]
lea rcx, [rbp - 0x40]
mov rax, qword [rbp - 0x40]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov r8, rdi
cmp eax, 8
cmove r8, qword [rbp - 0x68]
mov qword [rbp + 0x68], r8
mov esi, dword [rbx + 0x44]
mov eax, dword [rbx + 0x48]
mov r9, r8
sar r9, 0x20
mov r11d, eax
imul r11d, esi
test eax, eax
je 0x180228945
mov r10d, r11d
mov edi, eax
mov ecx, r8d
shr ecx, 5
mov eax, r8d
shl eax, 4
xor ecx, eax
add ecx, r8d
shr r10, 0xb
and r10d, 3
mov eax, dword [rbx + r10*4 + 0x34]
add eax, r11d
xor ecx, eax
sub r9d, ecx
sub r11d, esi
mov r10d, r11d
mov edx, r9d
shr edx, 5
mov eax, r9d
shl eax, 4
xor edx, eax
add edx, r9d
mov eax, r11d
and eax, 3
mov ecx, dword [rbx + rax*4 + 0x34]
add ecx, r11d
xor edx, ecx
sub r8d, edx
dec rdi
jne 0x1802288f1
mov edx, edi
test r12d, r12d
je 0x1802289a3
mov r10, rdi
mov r11d, r12d
mov ecx, r9d
shr ecx, 5
mov eax, r9d
shl eax, 4
xor ecx, eax
add ecx, r9d
and r10d, 3
mov eax, dword [rsp + r10*4 + 0x20]
add eax, edx
xor ecx, eax
add r8d, ecx
add edx, r14d
mov r10d, edx
mov ecx, r8d
shr ecx, 5
mov eax, r8d
shl eax, 4
xor ecx, eax
add ecx, r8d
mov eax, edx
shr rax, 0xb
and eax, 3
mov eax, dword [rsp + rax*4 + 0x20]
add eax, edx
xor ecx, eax
add r9d, ecx
dec r11
jne 0x180228952
mov dword [rbp + 0x68], r8d
mov dword [rbp + 0x6c], r9d
mov rax, qword [rbp + 0x68]
mov qword [rbp - 0x60], rax
mov r8d, 8
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x40]
mov rax, qword [rsp + 0x40]
call qword [rax + 0x20]
inc r15d
cmp r15d, dword [rbx + 0x2c]
jl 0x1802288b0
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp - 0x58]
mov r8, qword [rbp - 0x70]
mov r9, qword [rbp - 0x50]
mov dword [rbx + 0x34], ecx
mov dword [rbx + 0x38], edx
mov dword [rbx + 0x3c], r8d
mov dword [rbx + 0x40], r9d
mov dword [rbx + 0x44], r14d
mov dword [rbx + 0x48], r12d
mov ecx, 8
call fcn.1800a103c
mov rsi, rax
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call fcn.1800a103c
test rax, rax
je 0x180228a22
mov qword [rax], rdi
mov qword [rax + 8], rdi
jmp 0x180228a25
mov rax, rdi
mov qword [rsi], rax
mov rax, qword [rbx + 0x20]
mov rdi, qword [rax]
test rdi, rdi
je 0x180228a44
mov rcx, qword [rdi]
call fcn.1800a09c8
mov rcx, rdi
call fcn.1800a0ca0
mov rcx, qword [rbx + 0x20]
call fcn.1800a0ca0
mov qword [rbx + 0x20], rsi
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x40]
call fcn.1800dafe0
mov rcx, qword [rbx + 0x20]
mov r8, qword [rcx]
mov rdx, qword [r8]
mov rcx, qword [rax]
mov qword [r8], rcx
mov qword [rax], rdx
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
mov rcx, qword [rbp - 0x50]
call fcn.1800a09c8
nop
lea rax, vtable.juce::MemoryInputStream.0
mov qword [rbp - 0x40], rax
mov rcx, qword [rbp - 0x20]
call fcn.1800a09c8
lea rax, vtable.juce::InputStream.0
mov qword [rbp - 0x40], rax
lea rax, vtable.juce::MemoryOutputStream.0
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
cmp rcx, rax
je 0x180228ad1
test rcx, rcx
je 0x180228ad1
xor r8d, r8d
mov rdx, qword [rsp + 0x78]
call fcn.1800dd960
nop
mov rcx, qword [rsp + 0x58]
call fcn.1800a09c8
nop
lea rax, vtable.juce::OutputStream.0
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x48]
add rcx, 0xfffffffffffffff0
lea rax, [0x1802bccb0]
cmp rcx, rax
je 0x180228b11
or eax, 0xffffffff
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x180228b11
call fcn.1800a0c6c
nop
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add rsp, 0x118
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret