Function at 0x18015d580
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
movss dword [rax + 0x10], xmm1
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x68]
sub rsp, 0x130
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
movaps xmm9, xmm1
mov rsi, rcx
cmp byte [rcx + 0x2a0], 0
je 0x18015d941
mov rax, qword [rcx + 0x570]
cmp qword [rcx + 0x568], rax
je 0x18015d941
lea r12, [rcx + 0x258]
mov qword [rbp + 0x70], r12
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 0
mov rcx, r12
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov al, 1
mov byte [rsp + 0x38], al
lea r13, [rsi + 0x260]
mov qword [rbp + 0x88], r13
mov qword [rsp + 0x40], r13
mov byte [rsp + 0x48], 0
mov rcx, r13
call sub.KERNEL32.dll_AcquireSRWLockExclusive
mov al, 1
mov byte [rsp + 0x48], al
xor r12d, r12d
lea r14, [rsi + 0x58]
mov r15, 0xffffffffffffffa8
sub r15, rsi
lea r13d, [r12 + 2]
movss xmm15, dword [0x1803097b0]
movss xmm14, dword [0x180333320]
nop dword [rax]
mov rbx, qword [rsi + 0x568]
lea rdi, [rbx + r14]
movss xmm0, dword [rbx + r12 + 0x34]
call fcn.1802aff70
movaps xmm8, xmm0
movss xmm0, dword [rbx + r12 + 0x38]
call fcn.1802aff70
movaps xmm7, xmm0
movss xmm0, dword [rbx + r12 + 0x2c]
call fcn.1802aff70
movaps xmm6, xmm0
movss xmm0, dword [rbx + r12 + 0x30]
call fcn.1802aff70
movaps xmm3, xmm0
addss xmm3, xmm6
movaps xmm4, xmm7
addss xmm4, xmm8
subss xmm0, xmm6
movaps xmm1, xmm14
divss xmm1, xmm0
subss xmm8, xmm7
movaps xmm2, xmm14
divss xmm2, xmm8
movaps xmm0, xmm1
addss xmm0, xmm1
movss dword [r14 - 8], xmm0
xor eax, eax
mov qword [r14 - 4], rax
mov qword [r14 + 4], rax
movaps xmm0, xmm2
addss xmm0, xmm2
movss dword [r14 + 0xc], xmm0
mov qword [r14 + 0x10], rax
xorps xmm1, xmm15
mulss xmm1, xmm3
movss dword [r14 + 0x18], xmm1
xorps xmm2, xmm15
mulss xmm2, xmm4
movss dword [r14 + 0x1c], xmm2
mov dword [r14 + 0x20], eax
mov qword [r14 + 0x24], 0x3f800000
mov dword [r14 + 0x2c], eax
movss dword [r14 + 0x30], xmm9
mov dword [r14 + 0x34], eax
movss xmm2, dword [rdi + r15 + 0x18]
movss xmm1, dword [rdi + r15 + 0x14]
movss xmm0, dword [rdi + r15 + 0x10]
movss xmm3, dword [rdi + r15 + 0x1c]
movaps xmm9, xmm0
mulss xmm9, xmm0
movaps xmm10, xmm1
mulss xmm10, xmm1
movaps xmm4, xmm2
mulss xmm4, xmm2
movaps xmm6, xmm0
mulss xmm6, xmm2
movaps xmm11, xmm0
mulss xmm11, xmm1
movaps xmm13, xmm1
mulss xmm13, xmm2
movaps xmm5, xmm3
mulss xmm5, xmm0
movaps xmm12, xmm3
mulss xmm12, xmm1
mulss xmm3, xmm2
movaps xmm0, xmm4
addss xmm0, xmm10
addss xmm0, xmm0
movaps xmm1, xmm14
subss xmm1, xmm0
movaps xmm8, xmm3
addss xmm8, xmm11
addss xmm8, xmm8
movaps xmm7, xmm6
subss xmm7, xmm12
addss xmm7, xmm7
subss xmm11, xmm3
addss xmm11, xmm11
addss xmm4, xmm9
addss xmm4, xmm4
movaps xmm3, xmm14
subss xmm3, xmm4
movaps xmm4, xmm13
addss xmm4, xmm5
addss xmm4, xmm4
addss xmm12, xmm6
subss xmm13, xmm5
addss xmm10, xmm9
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x6c], eax
addss xmm12, xmm12
addss xmm13, xmm13
addss xmm10, xmm10
movaps xmm2, xmm14
subss xmm2, xmm10
xorps xmm0, xmm0
movups xmmword [rsp + 0x7c], xmm0
mov dword [rbp - 0x74], 0x3f800000
movups xmm0, xmmword [rsp + 0x50]
movss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm8
shufps xmm0, xmm0, 0xc6
movss xmm0, xmm7
shufps xmm0, xmm0, 0xc9
movups xmmword [rsp + 0x50], xmm0
movups xmmword [r14 + 0x78], xmm0
movups xmm1, xmmword [rsp + 0x60]
movss xmm1, xmm11
shufps xmm1, xmm1, 0xe1
movss xmm1, xmm3
shufps xmm1, xmm1, 0xc6
movss xmm1, xmm4
shufps xmm1, xmm1, 0xc9
movups xmmword [rsp + 0x60], xmm1
movups xmmword [r14 + 0x88], xmm1
movups xmm0, xmmword [rsp + 0x70]
movss xmm0, xmm12
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm13
shufps xmm0, xmm0, 0xc6
movss xmm0, xmm2
shufps xmm0, xmm0, 0xc9
movups xmmword [rsp + 0x70], xmm0
movups xmmword [r14 + 0x98], xmm0
movups xmm0, xmmword [rbp - 0x80]
movups xmmword [r14 + 0xa8], xmm0
movss xmm1, dword [rdi + r15 + 0x20]
movss xmm0, dword [rdi + r15 + 0x24]
movss xmm2, dword [rdi + r15 + 0x28]
mov dword [rsp + 0x2c], 0x3f800000
movups xmm3, xmmword [rsp + 0x20]
movss xmm3, xmm1
shufps xmm3, xmm3, 0xe1
movss xmm3, xmm0
shufps xmm3, xmm3, 0xc6
movss xmm3, xmm2
shufps xmm3, xmm3, 0xc9
movups xmmword [rsp + 0x20], xmm3
movups xmmword [r14 + 0xa8], xmm3
add r12, 0x40
add r14, 0x40
sub r13, 1
movss xmm9, dword [rbp + 0x78]
jne 0x18015d680
mov rcx, qword [rbp + 0x88]
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
nop
mov rcx, qword [rbp + 0x70]
call sub.KERNEL32.dll_ReleaseSRWLockExclusive
xor eax, eax
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret