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

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
mov eax, 0x1450
call fcn.14004b710
sub rsp, rax
movaps xmmword [rsp + 0x1420], xmm8
mov rax, qword [0x14014ab80]
xor rax, rsp
mov qword [rsp + 0x13f0], rax
mov rbx, rdx
mov rdi, rcx
call fcn.14004ae40
mov r9d, dword [rdi + 0x10]
lea rdx, [rsp + 0x48]
mov r8, rbx
mov rcx, rax
call fcn.14004ad00
call fcn.14004ae40
mov ecx, dword [rsp + 0x50]
lea r8, [rsp + 0x30]
movsd xmm0, qword [rsp + 0x48]
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x38], ecx
mov rcx, rax
movsd qword [rsp + 0x30], xmm0
call fcn.14004aee0
movss xmm0, dword [rsp + 0x40]
xorps xmm8, xmm8
ucomiss xmm0, xmm8
jp 0x140001cdc
jne 0x140001cdc
movss xmm0, dword [rsp + 0x44]
ucomiss xmm0, xmm8
jp 0x140001cdc
je 0x140002020
mov qword [rsp + 0x1470], rsi
xor ecx, ecx
movaps xmmword [rsp + 0x1440], xmm6
movaps xmmword [rsp + 0x1430], xmm7
movaps xmmword [rsp + 0x1410], xmm9
movaps xmmword [rsp + 0x1400], xmm10
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
mov ecx, 1
sub eax, edx
sar eax, 1
mov ebx, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movss xmm0, dword [rsp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtps2pd xmm0, xmm0
mov esi, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
movsd xmm1, qword [0x14004e858]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x14004e858]
movaps xmm7, xmm0
movss xmm0, dword [rsp + 0x40]
movd xmm2, ebx
cvtps2pd xmm0, xmm0
cvtdq2pd xmm2, xmm2
subsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm7
ucomiss xmm1, xmm0
ja 0x140001d8c
xorps xmm10, xmm10
sqrtss xmm10, xmm0
jmp 0x140001d95
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm10, xmm0
xorps xmm7, xmm7
xorps xmm6, xmm6
call sub.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_
mov dword [rsp + 0x64], eax
mov edx, 1
mov r9d, 0x270
mov dword [rsp + 0x13e4], 0xffffffff
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x64], eax
inc rdx
cmp rdx, r9
jb 0x140001dc0
mov dword [rsp + 0x60], r9d
lea r8, [rsp + 0x68]
nop word [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x140001df0
mov ecx, dword [rsp + 0x60]
xorps xmm9, xmm9
mov edx, dword [rsp + rcx*4 + 0x64]
mov eax, edx
shr eax, 0xb
inc ecx
and eax, dword [rsp + 0x13e4]
xor edx, eax
mov dword [rsp + 0x60], ecx
mov eax, edx
lea rcx, [rsp + 0x60]
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
cvtsi2ss xmm9, rax
subss xmm9, xmm8
addss xmm9, xmm8
mulss xmm9, dword [0x14004e848]
mulss xmm9, dword [0x14004e854]
addss xmm9, dword [0x14004e854]
call fcn.1400012f0
movss xmm3, dword [rsp + 0x40]
movaps xmm4, xmm0
ucomiss xmm3, xmm8
mulss xmm4, dword [0x14004e850]
movss xmm5, dword [0x14004e870]
addss xmm4, dword [0x14004e84c]
jp 0x140001ec5
je 0x140001f3c
movd xmm2, ebx
cvtdq2ps xmm2, xmm2
comiss xmm3, xmm2
jbe 0x140001f0d
movaps xmm0, xmm4
lea eax, [rbx + rbx]
addss xmm0, xmm3
movaps xmm7, xmm2
movaps xmm1, xmm2
subss xmm7, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [rdi + 4]
xorps xmm7, xmm5
subss xmm0, xmm9
divss xmm7, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
addss xmm1, xmm7
comiss xmm1, xmm0
jbe 0x140001f0d
movaps xmm7, xmm8
comiss xmm2, xmm3
jbe 0x140001f3c
movd xmm0, dword [rdi + 4]
movaps xmm7, xmm4
addss xmm7, xmm3
cvtdq2ps xmm0, xmm0
subss xmm7, xmm2
subss xmm0, xmm9
divss xmm7, xmm0
addss xmm2, xmm7
comiss xmm8, xmm2
jbe 0x140001f3c
movaps xmm7, xmm8
movss xmm3, dword [rsp + 0x44]
ucomiss xmm3, xmm8
jp 0x140001f4a
je 0x140001fb6
movd xmm2, esi
cvtdq2ps xmm2, xmm2
comiss xmm3, xmm2
jbe 0x140001f8b
movd xmm0, dword [rdi + 4]
lea eax, [rsi + rsi]
cvtdq2ps xmm0, xmm0
movaps xmm6, xmm2
movaps xmm1, xmm2
subss xmm0, xmm9
subss xmm6, xmm3
xorps xmm6, xmm5
divss xmm6, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm6
comiss xmm1, xmm0
jbe 0x140001f8b
movaps xmm6, xmm8
comiss xmm2, xmm3
jbe 0x140001fb6
movd xmm0, dword [rdi + 4]
movaps xmm6, xmm3
subss xmm6, xmm2
cvtdq2ps xmm0, xmm0
subss xmm0, xmm9
divss xmm6, xmm0
addss xmm2, xmm6
comiss xmm8, xmm2
jbe 0x140001fb6
movaps xmm6, xmm8
movd xmm0, dword [rdi]
movaps xmm9, xmmword [rsp + 0x1410]
mov rsi, qword [rsp + 0x1470]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm10
movaps xmm10, xmmword [rsp + 0x1400]
jbe 0x140002010
call fcn.1400196c0
mov ecx, dword [rax + 4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140002010
xor r9d, r9d
mov qword [rsp + 0x20], 0
cvttss2si r8, xmm6
lea ecx, [r9 + 1]
cvttss2si rdx, xmm7
call qword [sym.imp.USER32.dll_mouse_event]
movaps xmm6, xmmword [rsp + 0x1440]
movaps xmm7, xmmword [rsp + 0x1430]
mov rcx, qword [rsp + 0x13f0]
xor rcx, rsp
call fcn.14004b770
lea r11, [rsp + 0x1450]
mov rbx, qword [r11 + 0x28]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop rdi
ret
push rbx
sub rsp, 0x20
mov rbx, rcx
call fcn.140019b70
cmp qword [rax + 0x18], 0
je 0x1400020b7
cmp byte [rbx + 0xc], 0
je 0x1400020b7
mov edx, dword [0x14014b730]
mov rax, qword gs:[0x58]
mov ecx, 4
mov rax, qword [rax + rdx*8]
mov eax, dword [rcx + rax]
cmp dword [0x14014b360], eax
jg 0x1400020bd
lea rcx, section..data
call fcn.140001660
test rax, rax
je 0x1400020b7
mov rcx, rbx
call fcn.140001660
mov rdx, rax
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x140001c40
add rsp, 0x20
pop rbx
ret
lea rcx, [0x14014b360]
call fcn.14004b580
cmp dword [0x14014b360], 0xffffffff
jne 0x14000208e
lea rcx, [0x14004db80]
call fcn.14004b4c0
lea rcx, [0x14014b360]
call fcn.14004b514
jmp 0x14000208e