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

Disassembly:
mov eax, 0x13f8
call fcn.140002520
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x13b0], rax
mov qword [rsp + 0x1400], rbx
xor ecx, ecx
mov qword [rsp + 0x1410], rsi
mov qword [rsp + 0x13f0], rdi
mov qword [rsp + 0x13e8], r12
mov qword [rsp + 0x13e0], r13
mov qword [rsp + 0x13d8], r14
mov qword [rsp + 0x13d0], r15
movaps xmmword [rsp + 0x13c0], xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ebx, 1
mov r12d, eax
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cmp r12d, eax
mov r15d, r12d
mov r13d, eax
cmovl r15d, eax
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
mov dword [rsp + 0x24], eax
mov dword [rsp + 0x13a4], 0xffffffff
nop dword [rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, ebx
mov dword [rsp + rbx*4 + 0x24], eax
inc rbx
cmp rbx, 0x270
jb 0x1400010a0
movss xmm6, dword [0x140003320]
btc r15d, 0x1f
mov dword [rsp + 0x20], 0x270
mov qword [rsp + 0x1408], rbp
lea esi, [r15 - 0x7fffffff]
lea rcx, [rsp + 0x20]
call fcn.140001560
cmp r15d, 0x7fffffff
jne 0x140001118
add eax, 0x80000000
lea rcx, [rsp + 0x20]
xor eax, 0x80000000
cdq
idiv r12d
mov r14d, edx
call fcn.140001560
mov ecx, eax
jmp 0x14000119a
mov ebx, esi
mov ecx, eax
imul rcx, rbx
cmp ecx, esi
jae 0x140001146
xor edx, edx
mov eax, esi
neg eax
div esi
mov edi, edx
cmp ecx, edx
jae 0x140001146
lea rcx, [rsp + 0x20]
call fcn.140001560
mov ecx, eax
imul rcx, rbx
cmp ecx, edi
jb 0x140001132
shr rcx, 0x20
lea eax, [rcx - 0x80000000]
xor eax, 0x80000000
lea rcx, [rsp + 0x20]
cdq
idiv r12d
mov ebp, edx
call fcn.140001560
mov ecx, eax
mov r14d, ebp
mov edi, esi
imul rcx, rdi
cmp ecx, esi
jae 0x140001196
xor edx, edx
mov eax, esi
neg eax
div esi
mov ebx, edx
cmp ecx, edx
jae 0x140001196
lea rcx, [rsp + 0x20]
call fcn.140001560
mov ecx, eax
imul rcx, rdi
cmp ecx, ebx
jb 0x140001182
shr rcx, 0x20
lea eax, [rcx - 0x80000000]
mov ecx, r14d
xor eax, 0x80000000
cdq
idiv r13d
call qword [sym.imp.USER32.dll_SetCursorPos]
lea rcx, [rsp + 0x20]
call fcn.140001560
mov ecx, eax
imul rax, rcx, 0xb
cmp eax, 3
ja 0x1400011e5
nop word [rax + rax]
lea rcx, [rsp + 0x20]
call fcn.140001560
mov ecx, eax
imul rax, rcx, 0xb
cmp eax, 4
jb 0x1400011d0
shr rax, 0x20
add eax, 0x80000000
xor eax, 0x80000000
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
cvttss2si rcx, xmm0
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400010e3
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.exiting_movr
movaps xmm6, xmmword [rsp + 0x13c0]
mov r15, qword [rsp + 0x13d0]
mov r14, qword [rsp + 0x13d8]
mov r13, qword [rsp + 0x13e0]
mov r12, qword [rsp + 0x13e8]
mov rdi, qword [rsp + 0x13f0]
mov rsi, qword [rsp + 0x1410]
mov rbp, qword [rsp + 0x1408]
mov rbx, qword [rsp + 0x1400]
call fcn.1400012d0
mov rcx, rax
lea rdx, [0x1400014b0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, qword [rsp + 0x13b0]
xor rcx, rsp
call fcn.140001700
add rsp, 0x13f8
ret