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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x13a0]
mov eax, 0x14a0
call fcn.1800af490
sub rsp, rax
movaps xmmword [rsp + 0x1490], xmm6
movaps xmmword [rsp + 0x1480], xmm7
movaps xmmword [rsp + 0x1470], xmm8
movaps xmmword [rsp + 0x1460], xmm9
movaps xmmword [rsp + 0x1450], xmm10
movaps xmmword [rsp + 0x1440], xmm11
movaps xmmword [rsp + 0x1430], xmm12
movaps xmmword [rsp + 0x1420], xmm13
mov rax, qword [0x180352040]
xor rax, rsp
mov qword [rbp + 0x1310], rax
mov r14, rcx
mov edx, dword [0x18035313c]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
xor r12d, r12d
mov eax, dword [rcx + rax]
cmp dword [0x18035c77c], eax
jle 0x18009b45e
lea rcx, [0x18035c77c]
call fcn.1800ae288
cmp dword [0x18035c77c], 0xffffffff
jne 0x18009b45e
mov qword [0x18035c780], r12
lea rcx, [rsp + 0x40]
call fcn.18009abd0
mov rdx, qword [rax]
mov qword [0x18035c780], rdx
mov qword [0x18035c788], 0xa
lea rcx, [0x18035c77c]
call fcn.1800ae21c
cmp byte [r14 + 8], r12b
je 0x18009bc10
lea rcx, [rsp + 0x40]
call fcn.18009abd0
mov rcx, qword [rsp + 0x40]
mov rdx, rcx
sub rdx, qword [0x18035c780]
movabs rax, 0x431bde82d7b634db
imul rdx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov ebx, 1
cmp rdx, qword [0x18035c788]
je 0x18009b4c0
mov r8d, ebx
mov r9d, 0xff
cmovl r8d, r9d
test r8b, r8b
js 0x18009bc10
mov qword [0x18035c780], rcx
mov rcx, qword [0x180357760]
add rcx, 0x18
lea rdx, [rsp + 0x48]
call fcn.18006ab40
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1304], 0xffffffff
mov dword [rbp - 0x7c], eax
nop
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, ebx
mov dword [rbp + rbx*4 - 0x7c], eax
inc rbx
cmp rbx, 0x270
jb 0x18009b4f0
mov dword [rbp - 0x80], 0x270
lea rcx, [rbp - 0x80]
call fcn.180097660
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x5f
ja 0x18009b544
nop word [rax + rax]
lea rcx, [rbp - 0x80]
call fcn.180097660
mov ecx, eax
imul rax, rcx, 0x64
cmp eax, 0x60
jb 0x18009b530
shr rax, 0x20
add eax, 0x80000001
xor eax, 0x80000001
shr eax, 1
cmp eax, dword [0x1803520ec]
jg 0x18009bc10
cmp byte [0x18035336e], r12b
je 0x18009b58d
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x18009b58d
mov ecx, 0x5a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18009bc10
mov rcx, qword [0x180357760]
add rcx, 0x70
lea rdx, [rsp + 0x60]
call fcn.180087bd0
nop
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x68]
cmp rsi, r15
je 0x18009bc06
movsd xmm11, qword [rsp + 0x58]
movsd xmm12, qword [rsp + 0x50]
movsd xmm13, qword [rsp + 0x48]
movsd xmm8, qword [0x18033fea8]
movsd xmm9, qword [0x18033fe60]
movsd xmm10, qword [0x18033fe80]
nop word [rax + rax]
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x18009bbf9
mov rax, qword [0x180357760]
mov r8, qword [rax + 0x28]
cmp rdx, r8
je 0x18009bbf9
test r8, r8
je 0x18009b62f
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
call r9
cmp al, 1
je 0x18009bbf9
mov rcx, rsi
call fcn.18006b720
cmp eax, 0xa
jl 0x18009bbf9
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.18006ab40
movsd xmm1, qword [rax + 0x10]
subsd xmm1, xmm11
movsd xmm0, qword [rax + 8]
subsd xmm0, xmm12
movsd xmm2, qword [rax]
subsd xmm2, xmm13
mulsd xmm2, xmm2
mulsd xmm0, xmm0
addsd xmm2, xmm0
mulsd xmm1, xmm1
addsd xmm2, xmm1
xorps xmm0, xmm0
ucomisd xmm0, xmm2
ja 0x18009b68d
sqrtpd xmm0, xmm2
jmp 0x18009b695
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
comisd xmm0, xmm8
ja 0x18009bbf9
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.18006b7f0
nop
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
test rbx, rbx
jne 0x18009b6d7
xorps xmm6, xmm6
xorps xmm7, xmm7
jmp 0x18009b7f9
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 4
lea rdx, str.maxX
lea rcx, [rsp + 0x20]
call fcn.180005930
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x180357400]
call fcn.180073150
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x338]
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call r9
movaps xmm6, xmm0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x18009b768
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009b763
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009bc63
call fcn.1800ae784
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 4
lea rdx, str.minX
lea rcx, [rsp + 0x20]
call fcn.180005930
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x180357400]
call fcn.180073150
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x338]
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call r9
movaps xmm7, xmm0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x18009b7f9
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009b7f4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009bc6a
call fcn.1800ae784
subsd xmm6, xmm7
comisd xmm6, xmm9
jbe 0x18009b94a
test rbx, rbx
jne 0x18009b818
xorps xmm6, xmm6
xorps xmm7, xmm7
jmp 0x18009b93a
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 4
lea rdx, str.maxY
lea rcx, [rsp + 0x20]
call fcn.180005930
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x180357400]
call fcn.180073150
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x338]
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call r9
movaps xmm6, xmm0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x18009b8a9
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009b8a4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009bc71
call fcn.1800ae784
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 4
lea rdx, str.minY
lea rcx, [rsp + 0x20]
call fcn.180005930
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x180357400]
call fcn.180073150
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x338]
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call r9
movaps xmm7, xmm0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x18009b93a
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009b935
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009bc78
call fcn.1800ae784
subsd xmm6, xmm7
comisd xmm6, xmm10
jbe 0x18009b94a
jmp 0x18009bbcf
test rbx, rbx
jne 0x18009b957
xorps xmm6, xmm6
jmp 0x18009b9e8
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 4
lea rdx, str.minY
lea rcx, [rsp + 0x20]
call fcn.180005930
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x180357400]
call fcn.180073150
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x338]
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call r9
movaps xmm6, xmm0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x18009b9e8
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009b9e3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009bc7f
call fcn.1800ae784
movss xmm0, dword [r14 + 0x2c]
cvtps2pd xmm0, xmm0
subsd xmm6, xmm0
test rbx, rbx
je 0x18009bb23
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 4
lea rdx, str.minY
lea rcx, [rsp + 0x20]
call fcn.180005930
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x180357400]
call fcn.180073150
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x380]
movaps xmm3, xmm6
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call r9
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x18009ba90
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009ba8b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009bc86
call fcn.1800ae784
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 4
lea rdx, str.maxY
lea rcx, [rsp + 0x20]
call fcn.180005930
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x180357400]
call fcn.180073150
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x338]
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call r9
movaps xmm7, xmm0
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x18009bb26
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009bb1c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009bc8d
call fcn.1800ae784
jmp 0x18009bb26
xorps xmm7, xmm7
movss xmm6, dword [r14 + 0x2c]
cvtps2pd xmm6, xmm6
addsd xmm6, xmm7
test rbx, rbx
je 0x18009bbcf
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 4
lea rdx, str.maxY
lea rcx, [rsp + 0x20]
call fcn.180005930
nop
lea rdx, [rsp + 0x20]
lea rcx, [0x180357400]
call fcn.180073150
mov rcx, qword [rdi]
mov r9, qword [rcx + 0x380]
movaps xmm3, xmm6
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call r9
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 0xf
jbe 0x18009bbcf
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18009bbc9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18009bc94
call fcn.1800ae784
nop
cmp byte [rsp + 0x58], 0
je 0x18009bbf9
cmp qword [0x1803570d0], 0
je 0x18009bbf9
test rbx, rbx
je 0x18009bbf9
mov rax, qword [rdi]
mov rdx, rbx
mov rcx, rdi
mov r8, qword [rax + 0xb0]
call r8
nop
add rsi, 0x20
cmp rsi, r15
jne 0x18009b5f0
lea rcx, [rsp + 0x60]
call fcn.180086560
mov rcx, qword [rbp + 0x1310]
xor rcx, rsp
call fcn.1800ae1c0
lea r11, [rsp + 0x14a0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
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]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3