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

Disassembly:
push rbp
push rbx
push r12
lea rbp, [rsp - 0x60]
sub rsp, 0x160
movaps xmmword [rsp + 0x100], xmm10
mov rax, qword [0x14005c040]
xor rax, rsp
mov qword [rbp - 0x58], rax
xor r12d, r12d
xorps xmm10, xmm10
cmp byte [0x140060869], r12b
je 0x140046111
mov rax, qword [0x1400607c8]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax + 0x4890]
mov rcx, qword [rcx]
call fcn.14000f030
movss xmm0, dword [0x140052150]
mov rbx, rax
movss xmm2, dword [0x14005c0e0]
comiss xmm0, xmm2
mov dword [rsp + 0x30], 0x44700000
mov dword [rsp + 0x34], 0x44070000
ja 0x140046111
subss xmm2, xmm0
mov dword [rsp + 0x28], 0x63
movss xmm0, dword [0x1400521f0]
lea rdx, [rsp + 0x30]
xorps xmm3, xmm3
movss dword [rsp + 0x20], xmm0
mov rcx, rax
call fcn.14002cb10
movss xmm0, dword [0x140052188]
mov r9d, 0xffffffff
mov r8d, dword [rbx + 0x78]
mov rcx, rbx
mov rdx, qword [rbx + 0x80]
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], 1
call fcn.14002b0b0
lea rcx, [rsp + 0x30]
mov dword [rbx + 0x78], r12d
call fcn.140043140
mov rax, qword [rsp + 0x30]
jmp 0x140046125
lea rcx, [rsp + 0x30]
call fcn.140043140
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], rax
movabs r8, 0x7ffffffffffffffe
cmp rax, r8
je 0x14004614a
mov ecx, 1
mov edx, 0xff
cmovl ecx, edx
test cl, cl
jns 0x14004614a
inc rax
jmp 0x140046154
movabs rax, 0x7fffffffffffffff
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
call fcn.140047f50
cmp byte [0x140060868], r12b
je 0x1400466b2
mov rdx, qword [0x1400607e8]
mov qword [rsp + 0x180], rsi
add rdx, 0x24342b8
movabs rsi, 0xffffffffffffff
cmp rdx, rsi
ja 0x1400466aa
mov rcx, qword [0x1400607f0]
lea r8, [rsp + 0x30]
mov r9d, 8
mov qword [rsp + 0x158], r14
mov qword [rsp + 0x30], r12
call fcn.1400032a0
mov r14, qword [rsp + 0x30]
test r14, r14
je 0x1400466a2
movaps xmmword [rsp + 0xf0], xmm11
lea rdx, [r14 + 0x17c]
movaps xmmword [rsp + 0xe0], xmm12
movaps xmmword [rsp + 0xd0], xmm13
cmp rdx, rsi
ja 0x140046240
mov rcx, qword [0x1400607f0]
lea r8, [rsp + 0x40]
mov r9d, 0xc
mov qword [rsp + 0x40], r12
mov dword [rsp + 0x48], r12d
call fcn.1400032a0
movss xmm13, dword [rsp + 0x40]
ucomiss xmm13, xmm10
movss xmm12, dword [rsp + 0x48]
movss xmm11, dword [rsp + 0x44]
jp 0x14004624c
jne 0x14004624c
ucomiss xmm11, xmm10
jp 0x14004624c
jne 0x14004624c
ucomiss xmm12, xmm10
jp 0x14004624c
jne 0x14004624c
xorps xmm13, xmm13
xorps xmm11, xmm11
xorps xmm12, xmm12
mov ecx, 5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140046270
mov ecx, 6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140046687
mov rbx, qword [0x140060838]
mov qword [rsp + 0x150], r15
mov r15, qword [0x140060840]
cmp rbx, r15
je 0x14004667f
mov qword [rsp + 0x190], r13
lea r13, [0x140060880]
movaps xmmword [rsp + 0xc0], xmm14
movss xmm14, dword [0x140052138]
movaps xmmword [rsp + 0xb0], xmm15
movsd xmm15, qword [0x1400521b8]
mov qword [rsp + 0x188], rdi
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x130], xmm7
movaps xmmword [rsp + 0x120], xmm8
movaps xmmword [rsp + 0x110], xmm9
nop dword [rax]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14004662e
lea rdx, [rsp + 0x50]
call fcn.1400438e0
movsd xmm0, qword [rsp + 0x50]
lea rdx, [rsp + 0x60]
mov edi, dword [rsp + 0x58]
lea rcx, [rsp + 0x70]
movsd qword [rsp + 0x60], xmm0
mov dword [rsp + 0x68], edi
call fcn.1400433b0
movss xmm0, dword [0x140060810]
movaps xmm1, xmm15
movss xmm7, dword [rsp + 0x74]
subss xmm0, xmm7
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movss xmm8, dword [rsp + 0x70]
movaps xmm6, xmm0
movss xmm0, dword [0x14006080c]
movaps xmm1, xmm15
subss xmm0, xmm8
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x140046380
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x140046388
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x14005c0e0]
ja 0x14004662e
movd xmm0, edi
movaps xmm2, xmm13
subss xmm2, dword [rsp + 0x50]
movaps xmm3, xmm11
movaps xmm1, xmm12
subss xmm3, dword [rsp + 0x54]
subss xmm1, xmm0
xorps xmm0, xmm0
mulss xmm2, xmm2
mulss xmm3, xmm3
mulss xmm1, xmm1
addss xmm3, xmm2
addss xmm3, xmm1
ucomiss xmm0, xmm3
ja 0x1400463e0
xorps xmm9, xmm9
sqrtss xmm9, xmm3
jmp 0x1400463ec
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm9, xmm0
lea rdx, [r14 + 0x2088]
cmp rdx, rsi
ja 0x14004641c
mov rcx, qword [0x1400607f0]
lea r8, [rsp + 0x38]
mov r9d, 4
mov dword [rsp + 0x38], r12d
call fcn.1400032a0
movss xmm6, dword [rsp + 0x38]
jmp 0x140046420
movaps xmm6, xmm10
mov rdx, qword [rbx]
add rdx, 0x19a0
cmp rdx, rsi
ja 0x140046453
mov rcx, qword [0x1400607f0]
lea r8, [rsp + 0x30]
mov r9d, 4
mov dword [rsp + 0x30], r12d
call fcn.1400032a0
movss xmm1, dword [rsp + 0x30]
jmp 0x140046457
movaps xmm1, xmm10
movss xmm0, dword [0x14005c0d8]
comiss xmm0, xmm9
jbe 0x14004662e
addss xmm1, xmm14
comiss xmm1, xmm6
jb 0x14004662e
movd xmm0, dword [0x14005c0dc]
mov rax, qword gs:[0x58]
subss xmm8, dword [0x14006080c]
subss xmm7, dword [0x140060810]
cvtdq2ps xmm0, xmm0
mov rcx, qword [rax]
mov edx, 4
mov eax, dword [rdx + rcx]
cmp dword [0x140061c08], eax
divss xmm8, xmm0
divss xmm7, xmm0
cvttss2si edi, xmm8
cvttss2si esi, xmm7
jle 0x140046536
lea rcx, [0x140061c08]
call fcn.1400483fc
cmp dword [0x140061c08], 0xffffffff
jne 0x140046536
lea rcx, [rsp + 0x40]
call fcn.140043140
mov ecx, 1
mov edx, dword [rax]
mov dword [0x140061c04], 0xffffffff
mov dword [0x140060884], edx
nop word [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [r13 + rcx*4 + 4], edx
inc rcx
cmp rcx, 0x270
jb 0x140046500
lea rcx, [0x140061c08]
mov dword [0x140060880], 0x270
call fcn.140048390
mov rcx, r13
call fcn.1400481b0
xorps xmm0, xmm0
mov eax, eax
xorps xmm1, xmm1
mov rcx, r13
cvtsi2ss xmm1, edi
cvtsi2ss xmm0, rax
subss xmm0, xmm10
addss xmm0, xmm10
mulss xmm0, dword [0x140052110]
mulss xmm0, dword [0x140052214]
subss xmm0, dword [0x140052208]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x1400521d0]
addsd xmm0, qword [0x1400521a8]
cvtpd2ps xmm0, xmm0
mulss xmm1, xmm0
cvttss2si edi, xmm1
call fcn.1400481b0
mov eax, eax
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
subss xmm0, xmm10
addss xmm0, xmm10
mulss xmm0, dword [0x140052110]
mulss xmm0, dword [0x140052214]
subss xmm0, dword [0x140052208]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x1400521d0]
addsd xmm0, qword [0x1400521a8]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, esi
mulss xmm1, xmm0
cvttss2si eax, xmm1
test edi, edi
jne 0x1400465f2
test eax, eax
je 0x140046624
mov r8d, 0x28
mov dword [rbp - 0x80], r12d
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x78], edi
mov ecx, 1
mov dword [rbp - 0x74], eax
mov dword [rbp - 0x6c], 1
mov dword [rbp - 0x70], r12d
mov qword [rbp - 0x60], r12
mov dword [rbp - 0x68], r12d
call qword [sym.imp.USER32.dll_SendInput]
movabs rsi, 0xffffffffffffff
add rbx, 8
cmp rbx, r15
jne 0x1400462f0
movaps xmm15, xmmword [rsp + 0xb0]
movaps xmm14, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0x110]
movaps xmm8, xmmword [rsp + 0x120]
movaps xmm7, xmmword [rsp + 0x130]
movaps xmm6, xmmword [rsp + 0x140]
mov r13, qword [rsp + 0x190]
mov rdi, qword [rsp + 0x188]
mov r15, qword [rsp + 0x150]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0xe0]
movaps xmm13, xmmword [rsp + 0xd0]
mov r14, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x180]
mov rcx, qword [rbp - 0x58]
xor rcx, rsp
call fcn.140048370
movaps xmm10, xmmword [rsp + 0x100]
add rsp, 0x160
pop r12
pop rbx
pop rbp
ret