Function at 0x18009a0f0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
mov rbp, r8
mov r15, rdx
mov rsi, rcx
mov r9d, dword [0x18031e2c8]
mov rax, qword gs:[0x58]
mov r13d, 4
mov r14, qword [rax + r9*8]
movabs rbx, 0x5555555555555555
mov edi, 1
movabs r12, 0x5851f42d4c957f2d
mov eax, dword [r14 + r13]
cmp dword [0x18032db60], eax
jle 0x18009a1d7
lea rcx, [0x18032db60]
call fcn.1800a91d8
cmp dword [0x18032db60], 0xffffffff
jne 0x18009a1d7
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov ecx, eax
mov qword [0x18032b418], rbx
mov qword [0x18032a098], rcx
mov edx, edi
lea r8, [0x18032a098]
nop
mov rax, rcx
shr rax, 0x3e
xor rcx, rax
imul rcx, r12
add rcx, rdx
mov qword [r8 + rdx*8], rcx
inc rdx
cmp rdx, 0x138
jb 0x18009a1a0
mov dword [0x18032a090], 0x138
lea rcx, [0x18032db60]
call fcn.1800a916c
movsd xmm7, qword [rbp]
lea rbx, [0x180328d00]
mov eax, dword [r14 + r13]
cmp dword [0x18032b420], eax
jle 0x18009a268
lea rcx, [0x18032b420]
call fcn.1800a91d8
cmp dword [0x18032b420], 0xffffffff
jne 0x18009a268
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov ecx, eax
movabs rax, 0x5555555555555555
mov qword [0x18032a088], rax
mov qword [0x180328d08], rcx
mov rdx, rdi
nop word [rax + rax]
mov rax, rcx
shr rax, 0x3e
xor rcx, rax
imul rcx, r12
add rcx, rdx
mov qword [rbx + rdx*8 + 8], rcx
inc rdx
cmp rdx, 0x138
jb 0x18009a230
mov dword [0x180328d00], 0x138
lea rcx, [0x18032b420]
call fcn.1800a916c
movss xmm1, dword [rsi + 0x30]
cvtps2pd xmm1, xmm1
movss xmm2, dword [rsi + 0x2c]
cvtps2pd xmm2, xmm2
mov rcx, rbx
call fcn.180087450
mov rcx, rax
xorps xmm0, xmm0
test rax, rax
js 0x18009a292
cvtsi2sd xmm0, rax
jmp 0x18009a2a4
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
xorps xmm9, xmm9
subsd xmm0, xmm9
addsd xmm0, xmm9
mulsd xmm0, qword [0x18030b410]
subsd xmm1, xmm2
mulsd xmm0, xmm1
addsd xmm0, xmm2
movsd xmm10, qword [0x18030b648]
mov ebx, 0x1e
cmp byte [rsi + 0x44], 0
jne 0x18009a308
mov eax, ebx
movaps xmm1, xmm7
andps xmm1, xmmword [0x18030b7e0]
nop word [rax + rax]
movd xmm6, eax
cvtdq2pd xmm6, xmm6
comisd xmm1, xmm6
ja 0x18009a3d2
dec eax
test eax, eax
jg 0x18009a2f0
movaps xmm6, xmm0
mulsd xmm6, xmm7
movsd xmm7, qword [0x18030b560]
divsd xmm6, xmm7
movsd xmm8, qword [rbp + 8]
lea rbp, [0x18032c7d0]
mov eax, dword [r14 + r13]
cmp dword [0x180328cf8], eax
jle 0x18009a3a8
lea rcx, [0x180328cf8]
call fcn.1800a91d8
cmp dword [0x180328cf8], 0xffffffff
jne 0x18009a3a8
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov ecx, eax
movabs rax, 0x5555555555555555
mov qword [0x18032db58], rax
mov qword [0x18032c7d8], rcx
nop dword [rax]
mov rax, rcx
shr rax, 0x3e
xor rcx, rax
imul rcx, r12
add rcx, rdi
mov qword [rbp + rdi*8 + 8], rcx
inc rdi
cmp rdi, 0x138
jb 0x18009a370
mov dword [0x18032c7d0], 0x138
lea rcx, [0x180328cf8]
call fcn.1800a916c
movss xmm2, dword [rsi + 0x34]
cvtps2pd xmm2, xmm2
movss xmm0, dword [rsi + 0x38]
cvtps2pd xmm0, xmm0
mov rcx, rbp
call fcn.180087450
mov rcx, rax
xorps xmm1, xmm1
test rax, rax
js 0x18009a400
cvtsi2sd xmm1, rax
jmp 0x18009a412
comisd xmm9, xmm7
jbe 0x18009a3df
movaps xmm1, xmm10
jmp 0x18009a3e7
movsd xmm1, qword [0x18030b500]
movsd xmm7, qword [0x18030b560]
divsd xmm6, xmm7
mulsd xmm6, xmm0
mulsd xmm6, xmm1
jmp 0x18009a31b
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2sd xmm1, rax
addsd xmm1, xmm1
subsd xmm1, xmm9
addsd xmm1, xmm9
mulsd xmm1, qword [0x18030b410]
subsd xmm0, xmm2
mulsd xmm1, xmm0
addsd xmm1, xmm2
cmp byte [rsi + 0x44], 0
jne 0x18009a455
movaps xmm2, xmm8
andps xmm2, xmmword [0x18030b7e0]
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
comisd xmm2, xmm0
ja 0x18009a4a6
dec ebx
test ebx, ebx
jg 0x18009a441
movaps xmm0, xmm1
mulsd xmm0, xmm8
divsd xmm0, xmm7
movsd qword [r15], xmm6
movsd qword [r15 + 8], xmm0
mov rax, r15
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
comisd xmm9, xmm8
ja 0x18009a4b6
movsd xmm10, qword [0x18030b500]
divsd xmm0, xmm7
mulsd xmm0, xmm1
mulsd xmm0, xmm10
jmp 0x18009a461