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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
mov rax, qword [0x1400dd180]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov rdi, rcx
call fcn.1400018b0
mov rbp, rax
test rax, rax
je 0x140002e74
mov r13d, 4
mov rdx, qword gs:[0x58]
mov rsi, qword [rdx]
mov ebx, 1
mov ecx, dword [rsi + r13]
cmp dword [0x14011a0f0], ecx
jle 0x140002a31
lea rcx, [0x14011a0f0]
call fcn.1400ad118
cmp dword [0x14011a0f0], 0xffffffff
jne 0x140002a31
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x14011a0f8], xmm0
movss dword [0x14011a0fc], xmm6
lea rcx, [0x14011a0f0]
call fcn.1400ad0ac
xor r9d, r9d
mov r8, rbp
lea rdx, [rsp + 0x30]
call fcn.140062ad0
mov eax, dword [rsi + r13]
cmp dword [0x14011a0f0], eax
jle 0x140002a9c
lea rcx, [0x14011a0f0]
call fcn.1400ad118
cmp dword [0x14011a0f0], 0xffffffff
jne 0x140002a9c
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x14011a0f8], xmm0
movss dword [0x14011a0fc], xmm6
lea rcx, [0x14011a0f0]
call fcn.1400ad0ac
movsd xmm0, qword [rsp + 0x30]
movsd qword [rsp + 0x40], xmm0
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x48], eax
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x30]
call fcn.140062c10
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
sub eax, 5
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mulss xmm7, dword [0x1400c3e88]
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
sub eax, 5
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1400c3e88]
movss xmm3, dword [rsp + 0x34]
cvtps2pd xmm3, xmm3
movss xmm2, dword [rsp + 0x30]
cvtps2pd xmm2, xmm2
cvtps2pd xmm1, xmm0
cvtps2pd xmm0, xmm7
subsd xmm2, xmm0
subsd xmm3, xmm1
mulsd xmm3, xmm3
mulsd xmm2, xmm2
addsd xmm3, xmm2
xorps xmm0, xmm0
ucomisd xmm0, xmm3
ja 0x140002b2f
sqrtpd xmm8, xmm3
jmp 0x140002b3b
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm8, xmm0
lea rdx, [rbp + 0x90]
xor r12d, r12d
mov qword [rsp + 0x20], r12
mov r9d, ntohs
lea r8, [rsp + 0x60]
mov rcx, qword [0x140119c70]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
mov rdx, qword [0x140119c08]
add rdx, 0x90
mov qword [rsp + 0x20], r12
mov r9d, ntohs
lea r8, [rsp + 0x50]
mov rcx, qword [0x140119c70]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
movss xmm0, dword [rsp + 0x54]
subss xmm0, dword [rsp + 0x64]
movss xmm6, dword [0x1400c3f14]
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm7, xmm0
movss xmm0, dword [rsp + 0x50]
subss xmm0, dword [rsp + 0x60]
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm7, xmm0
movss xmm0, dword [rsp + 0x58]
subss xmm0, dword [rsp + 0x68]
movaps xmm1, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm7, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm7
ja 0x140002bed
xorps xmm6, xmm6
sqrtss xmm6, xmm7
jmp 0x140002bf8
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm6, xmm0
mulss xmm6, dword [0x1400c3e94]
mov eax, dword [rsi + r13]
cmp dword [0x140118758], eax
jle 0x140002c39
lea rcx, [0x140118758]
call fcn.1400ad118
cmp dword [0x140118758], 0xffffffff
jne 0x140002c39
lea rcx, [0x140119ae8]
call fcn.1400016d0
lea rcx, [0x140118758]
call fcn.1400ad0ac
cmp byte [0x1401174d0], r12b
je 0x140002c65
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 4
call qword [sym.imp.USER32.dll_mouse_event]
mov qword [rdi + 0x38], r12
mov byte [0x1401174d0], r12b
movss xmm0, dword [rdi + 0x24]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x1400c3ef0]
comisd xmm0, xmm8
jb 0x140002e74
movss xmm0, dword [rdi + 0x28]
comiss xmm0, xmm6
jb 0x140002e5c
mov r14d, dword [rdi + 0x2c]
lea r15, [0x140118760]
mov eax, dword [rsi + r13]
cmp dword [0x140117eb8], eax
jle 0x140002d06
lea rcx, [0x140117eb8]
call fcn.1400ad118
cmp dword [0x140117eb8], 0xffffffff
jne 0x140002d06
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [0x140119ae4], 0xffffffff
mov dword [0x140118764], eax
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, ebx
mov dword [r15 + rbx*4 + 4], eax
inc rbx
cmp rbx, 0x270
jb 0x140002cd0
mov dword [0x140118760], 0x270
lea rcx, [0x140117eb8]
call fcn.1400ad0ac
mov rcx, r15
call fcn.140003ed0
mov ecx, eax
imul rax, rcx, 0x65
cmp eax, 0x43
ja 0x140002d33
nop dword [rax]
mov rcx, r15
call fcn.140003ed0
mov ecx, eax
imul rax, rcx, 0x65
cmp eax, 0x44
jb 0x140002d20
shr rax, 0x20
add eax, 0x80000000
xor eax, 0x80000000
cmp eax, r14d
jg 0x140002e5c
movsxd rbx, dword [rdi + 0x30]
lea rcx, [rsp + 0x30]
call fcn.1400016d0
mov rcx, qword [rsp + 0x30]
mov rdx, rcx
sub rdx, qword [0x140119ae8]
movabs r14, 0x431bde82d7b634db
mov rax, r14
imul rdx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
jl 0x140002e74
mov qword [0x140119ae8], rcx
mov eax, dword [rsi + r13]
cmp dword [0x140119be8], eax
jle 0x140002deb
lea rcx, [0x140119be8]
call fcn.1400ad118
cmp dword [0x140119be8], 0xffffffff
jne 0x140002deb
mov dword [0x140119bcc], 0x72
mov dword [0x140119bd0], 0x2d
mov dword [0x140119bd4], 0x42c80000
mov qword [0x140119bd8], 0x43480000
lea rcx, [0x140119be8]
call fcn.1400ad0ac
mov ecx, dword [0x140119be0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140002e74
mov byte [0x1401174d0], 1
mov qword [rdi + 0x38], rbp
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 2
call qword [sym.imp.USER32.dll_mouse_event]
movsxd rbx, dword [rdi + 0x34]
lea rcx, [rsp + 0x30]
call fcn.1400016d0
mov r8, qword [rsp + 0x30]
mov rcx, r8
sub rcx, qword [0x140119ae8]
mov rax, r14
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
jl 0x140002e74
mov qword [0x140119ae8], r8
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 4
call qword [sym.imp.USER32.dll_mouse_event]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1400ad050
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret