Function at 0x18009a750
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0xe0
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rsp + 0x70], xmm12
movaps xmmword [rsp + 0x60], xmm13
movaps xmmword [rsp + 0x50], xmm14
mov rax, qword [0x180407040]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r15, rcx
xor r12d, r12d
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x18009a7d1
imul rbx, rax, 0x64
jmp 0x18009a7ed
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
cmp byte [0x180420c58], r12b
jne 0x18009a83a
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
mov dword [0x180420c44], r12d
mov edx, 5
xor ecx, ecx
call fcn.18009aeb0
mov dword [0x180420c60], eax
mov edx, 0xa
lea ecx, [rdx - 4]
call fcn.18009aeb0
mov dword [0x180420c64], eax
mov byte [0x180420c58], 1
mov rcx, rbx
sub rcx, qword [0x180420c68]
movabs rax, 0x431bde82d7b634db
imul rcx
mov rdi, rdx
sar rdi, 0x12
mov rax, rdi
shr rax, 0x3f
add rdi, rax
cmp byte [r15 + 8], r12b
je 0x18009ada1
cmp byte [0x1804210fa], r12b
jne 0x18009ada1
mov ecx, 2
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x18009ada1
lea rdx, [rsp + 0x28]
mov rcx, qword [0x180422b00]
call fcn.18006dcf0
cmp qword [rax + 8], r12
je 0x18009a8b1
cmp byte [r15 + 0x25], r12b
jne 0x18009a8b1
mov sil, 1
jmp 0x18009a8b4
xor sil, sil
cmp byte [rsp + 0x38], 0
je 0x18009a8e2
cmp qword [0x180420930], 0
je 0x18009a8e2
mov rdx, qword [rsp + 0x30]
test rdx, rdx
je 0x18009a8e2
mov rcx, qword [rsp + 0x28]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
test sil, sil
jne 0x18009ada1
mov r8d, dword [r15 + 0x20]
mov eax, 0x3e8
cdq
idiv r8d
movsxd rcx, eax
cmp rdi, rcx
jl 0x18009ada1
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm0
addss xmm1, dword [0x1803f4ec8]
subss xmm0, dword [0x1803f4f18]
call fcn.18009b010
movss xmm1, dword [0x1803f5004]
mulss xmm0, xmm1
divss xmm1, xmm0
cvttss2si r14d, xmm1
xorps xmm14, xmm14
mov edi, dword [0x180420c44]
cmp edi, dword [0x180420c60]
je 0x18009a961
cmp edi, dword [0x180420c64]
je 0x18009a961
cmp edi, 5
je 0x18009a961
cmp edi, 0xa
jne 0x18009aa6d
mov ecx, dword [0x18042091c]
mov rax, qword gs:[0x58]
mov edx, 4
mov rcx, qword [rax + rcx*8]
lea rbp, [0x180427af0]
mov eax, dword [rdx + rcx]
cmp dword [0x180426758], eax
jle 0x18009a9fd
lea rcx, [0x180426758]
call fcn.1800ad2b8
cmp dword [0x180426758], 0xffffffff
jne 0x18009a9f7
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [0x180428e74], 0xffffffff
mov dword [0x180427af4], eax
mov r8d, 1
nop dword [rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, r8d
mov dword [rbp + r8*4 + 4], eax
inc r8
cmp r8, 0x270
jb 0x18009a9c0
mov dword [0x180427af0], 0x270
lea rcx, [0x180426758]
call fcn.1800ad258
mov edi, dword [0x180420c44]
movaps xmm1, xmm14
movsd xmm4, qword [0x1803f4eb0]
movaps xmm2, xmm4
mov esi, 2
movsd xmm3, qword [0x1803f4fa0]
nop dword [rax]
mov rcx, rbp
call fcn.180077870
mov eax, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
subsd xmm0, xmm14
mulsd xmm0, xmm2
addsd xmm1, xmm0
mulsd xmm2, xmm3
sub rsi, 1
jne 0x18009aa20
mov eax, dword [r15 + 0x20]
cdq
sub eax, edx
sar eax, 1
divsd xmm1, xmm2
addsd xmm1, xmm4
ucomisd xmm1, xmm4
jp 0x18009aa67
jne 0x18009aa67
sub r14d, eax
jmp 0x18009aa6a
add r14d, eax
cmp edi, 0xa
jle 0x18009aab1
mov dword [0x180420c44], r12d
movss xmm1, dword [0x1803f4f5c]
xorps xmm0, xmm0
call fcn.18009b010
cvttss2si eax, xmm0
mov dword [0x180420c60], eax
movss xmm1, dword [0x1803f4f74]
movss xmm0, dword [0x1803f4f64]
call fcn.18009b010
cvttss2si eax, xmm0
mov dword [0x180420c64], eax
jmp 0x18009aab9
inc edi
mov dword [0x180420c44], edi
mov dword [rsp + 0x20], r14d
mov rdx, qword [0x180421078]
cmp rdx, qword [0x180421080]
je 0x18009aae5
mov dword [rdx], r14d
mov rdi, qword [0x180421078]
add rdi, 4
mov qword [0x180421078], rdi
jmp 0x18009aafd
lea r8, [rsp + 0x20]
lea rcx, [0x180421070]
call fcn.180095e00
mov rdi, qword [0x180421078]
mov r8, rdi
mov r9, rdi
mov rax, rdi
mov rsi, qword [0x180421070]
sub rax, rsi
sar rax, 2
cmp rax, 0xa
jbe 0x18009ab4b
lea rdx, [rsi + 4]
sub rdi, rdx
mov r8, rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memmove
mov rdi, qword [0x180421078]
add rdi, 0xfffffffffffffffc
mov qword [0x180421078], rdi
mov r8, rdi
mov r9, rdi
mov rsi, qword [0x180421070]
sub r8, rsi
sar r8, 2
cmp r8, 0xa
jb 0x18009ad29
call fcn.18009a650
movaps xmm3, xmm14
mov rax, rsi
cmp rsi, r9
je 0x18009ab99
nop dword [rax]
movd xmm2, dword [rax]
cvtdq2pd xmm2, xmm2
subsd xmm2, xmm0
movd xmm1, dword [rax]
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
mulsd xmm2, xmm1
addsd xmm3, xmm2
add rax, 4
cmp rax, r9
jne 0x18009ab70
xorps xmm7, xmm7
test r8, r8
js 0x18009aba8
cvtsi2sd xmm7, r8
jmp 0x18009abbe
mov rax, r8
shr rax, 1
and r8d, 1
or rax, r8
cvtsi2sd xmm7, rax
addsd xmm7, xmm7
divsd xmm3, xmm7
xorps xmm0, xmm0
ucomisd xmm0, xmm3
ja 0x18009abd6
xorps xmm13, xmm13
sqrtsd xmm13, xmm3
jmp 0x18009abe2
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm13, xmm0
call fcn.18009a650
movaps xmm8, xmm0
call fcn.18009a6c0
movaps xmm9, xmm14
mov rbp, rsi
movsd xmm11, qword [0x1803f4ed8]
cmp rsi, rdi
je 0x18009ac49
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x18009ac17
xorps xmm6, xmm6
sqrtsd xmm6, xmm0
jmp 0x18009ac20
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm6, xmm0
nop
movd xmm0, dword [rbp]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm8
divsd xmm0, xmm6
movaps xmm1, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm9, xmm0
add rbp, 4
cmp rbp, rdi
jne 0x18009ac20
divsd xmm9, xmm7
call fcn.18009a650
movaps xmm12, xmm0
call fcn.18009a6c0
movaps xmm6, xmm14
cmp rsi, rdi
je 0x18009acb8
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x18009ac79
xorps xmm8, xmm8
sqrtsd xmm8, xmm0
jmp 0x18009ac82
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm8, xmm0
movsd xmm10, qword [0x1803f4ee8]
nop dword [rax + rax]
movd xmm0, dword [rsi]
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm12
divsd xmm0, xmm8
movaps xmm1, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
add rsi, 4
cmp rsi, rdi
jne 0x18009ac90
movsd xmm0, qword [0x1803f4e98]
comisd xmm0, xmm13
jbe 0x18009ad29
comisd xmm14, xmm9
jbe 0x18009ad29
divsd xmm6, xmm7
subsd xmm6, xmm11
comisd xmm11, xmm6
jbe 0x18009ad29
call fcn.18009a6c0
movsd xmm3, qword [0x1803f4ef0]
comisd xmm3, xmm0
jbe 0x18009ad29
mov eax, dword [r15 + 0x20]
cdq
sub eax, edx
sar eax, 1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [r15 + 0x20]
cdq
sub eax, edx
sar eax, 1
neg eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
call fcn.18009b010
movd xmm1, r14d
cvtdq2ps xmm1, xmm1
addss xmm0, xmm1
cvttss2si r14d, xmm0
movsxd rax, r14d
imul rcx, rax, 0xf4240
add rcx, rbx
mov qword [0x180420c68], rcx
mov qword [rsp + 0x40], r12
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetCursorPos]
movzx r9d, word [rsp + 0x44]
shl r9d, 0x10
movzx eax, word [rsp + 0x40]
or r9, rax
mov edx, 0x204
mov r8d, 2
mov rcx, qword [0x180421100]
call qword [sym.imp.USER32.dll_PostMessageA]
movzx r9d, word [rsp + 0x44]
shl r9d, 0x10
movzx eax, word [rsp + 0x40]
or r9, rax
mov edx, 0x205
mov r8d, 2
mov rcx, qword [0x180421100]
call qword [sym.imp.USER32.dll_PostMessageA]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1800ad110
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
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 [rsp + 0x50]
mov rsp, r11
pop r15
pop r14
pop r12
ret