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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r14
sub rsp, 0x30
mov rax, qword [0x1401080c0]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov r14d, 4
mov rax, qword gs:[0x58]
mov rbx, qword [rax]
lea rsi, [0x14010e4c0]
mov eax, dword [r14 + rbx]
cmp dword [0x14010e4bc], eax
jle 0x14003efb5
lea rcx, [0x14010e4bc]
call fcn.14008425c
cmp dword [0x14010e4bc], 0xffffffff
jne 0x14003efb5
call fcn.140082638
mov dword [0x14010f844], 0xffffffff
mov dword [0x14010e4c4], eax
mov edx, 1
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsi + rdx*4 + 4], eax
inc rdx
cmp rdx, 0x270
jb 0x14003ef80
mov dword [0x14010e4c0], 0x270
lea rcx, [0x14010e4bc]
call fcn.1400841f0
xor edx, edx
lea rcx, str.LWJGL
call qword [sym.imp.USER32.dll_FindWindowA]
mov rdi, rax
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14003eff2
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14003eff2
mov byte [0x14010bc38], al
jmp 0x14003f209
cmp byte [0x14010bc38], 0
jne 0x14003f01f
mov byte [0x14010bc38], 1
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov rcx, qword [rax]
mov qword [0x14010bc30], rcx
cmp byte [0x14010bc38], 0
je 0x14003f041
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov rax, qword [rsp + 0x20]
sub rax, qword [0x14010bc30]
cmp rax, 0x17d78400
jl 0x14003f209
mov eax, dword [r14 + rbx]
cmp dword [0x14010f848], eax
jle 0x14003f07a
lea rcx, [0x14010f848]
call fcn.14008425c
cmp dword [0x14010f848], 0xffffffff
jne 0x14003f07a
lea rcx, [0x14010f850]
call fcn.14003c820
lea rcx, [0x14010f848]
call fcn.1400841f0
mov eax, dword [r14 + rbx]
cmp dword [0x14010f858], eax
jle 0x14003f0c1
lea rcx, [0x14010f858]
call fcn.14008425c
cmp dword [0x14010f858], 0xffffffff
jne 0x14003f0c1
movss xmm0, dword [0x1400f2b94]
divss xmm0, dword [0x140108f84]
cvttss2si eax, xmm0
mov dword [0x14010f85c], eax
lea rcx, [0x14010f858]
call fcn.1400841f0
cmp byte [0x140108f76], 0
je 0x14003f209
cmp byte [0x140108f74], 0
je 0x14003f209
mov rcx, rsi
call fcn.140041280
mov ecx, eax
imul rdx, rcx, 0x12c
cmp edx, 0x12c
jae 0x14003f119
cmp edx, 0xc4
jae 0x14003f119
nop dword [rax]
mov rcx, rsi
call fcn.140041280
mov ecx, eax
imul rdx, rcx, 0x12c
cmp edx, 0xc4
jb 0x14003f100
shr rdx, 0x20
add edx, 0x80000001
mov r8d, 0x80000000
lea eax, [rdx + r8]
lea ecx, [rdx - 0x80000000]
cmp edx, r8d
cmovae ecx, eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss xmm0, dword [0x140108f88]
comiss xmm0, xmm1
jb 0x14003f209
cmp byte [0x140108f8c], 0
je 0x14003f16e
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14003f209
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
movabs rax, 0x431bde82d7b634db
sub rcx, qword [0x14010f850]
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, dword [0x14010f85c]
cmp rdx, rax
jl 0x14003f209
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_GetCursorPos]
movzx r9d, word [rsp + 0x24]
movzx eax, word [rsp + 0x20]
shl r9d, 0x10
or r9, rax
mov r8d, 2
mov edx, 0x204
mov rcx, rdi
call qword [sym.imp.USER32.dll_PostMessageA]
movzx r9d, word [rsp + 0x24]
movzx eax, word [rsp + 0x20]
shl r9d, 0x10
or r9, rax
xor r8d, r8d
mov edx, 0x205
mov rcx, rdi
call qword [sym.imp.USER32.dll_PostMessageA]
mov qword [0x14010f850], rbx
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140083c60
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
add rsp, 0x30
pop r14
ret