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

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x12f0]
mov eax, 0x13f0
call fcn.140084960
sub rsp, rax
mov rax, qword [0x1401080c0]
xor rax, rsp
mov qword [rbp + 0x12d0], rax
call fcn.140082638
mov dword [rsp + 0x44], eax
mov edx, 1
mov dword [rbp + 0x12c4], 0xffffffff
nop dword [rax]
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 + 0x44], eax
inc rdx
cmp rdx, 0x270
jb 0x14003de10
mov rax, qword gs:[0x58]
mov edi, 4
mov dword [rsp + 0x40], 0x270
mov rbx, qword [rax]
mov eax, dword [rdi + rbx]
cmp dword [0x14010bd30], eax
jle 0x14003de80
lea rcx, [0x14010bd30]
call fcn.14008425c
cmp dword [0x14010bd30], 0xffffffff
jne 0x14003de80
lea rcx, [0x14010bd38]
call fcn.14003c820
lea rcx, [0x14010bd30]
call fcn.1400841f0
mov eax, dword [rdi + rbx]
cmp dword [0x14010bd40], eax
jle 0x14003deba
lea rcx, [0x14010bd40]
call fcn.14008425c
cmp dword [0x14010bd40], 0xffffffff
jne 0x14003deba
cvttss2si eax, dword [0x140108f7c]
lea rcx, [0x14010bd40]
mov dword [0x14010bd44], eax
call fcn.1400841f0
mov eax, dword [rdi + rbx]
cmp dword [0x14010bd48], eax
jle 0x14003df02
lea rcx, [0x14010bd48]
call fcn.14008425c
cmp dword [0x14010bd48], 0xffffffff
jne 0x14003df02
cvttss2si eax, dword [0x140108f7c]
lea rcx, [0x14010bd48]
mov dword [0x14010bd50], eax
cvttss2si eax, dword [0x140108f80]
mov dword [0x14010bd54], eax
call fcn.1400841f0
mov eax, dword [rdi + rbx]
cmp dword [0x14010bd58], eax
jle 0x14003df3a
lea rcx, [0x14010bd58]
call fcn.14008425c
cmp dword [0x14010bd58], 0xffffffff
jne 0x14003df3a
lea rcx, [0x14010bd60]
call fcn.14003c820
lea rcx, [0x14010bd58]
call fcn.1400841f0
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14003df6f
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14003df6f
mov byte [0x14010bc68], al
jmp 0x14003e31e
cmp byte [0x14010bc68], 0
jne 0x14003df9c
lea rcx, [rsp + 0x28]
mov byte [0x14010bc68], 1
call fcn.14003c820
cmp byte [0x14010bc68], 0
mov rcx, qword [rax]
mov qword [0x14010bc60], rcx
je 0x14003dfbe
lea rcx, [rsp + 0x28]
call fcn.14003c820
mov rax, qword [rsp + 0x28]
sub rax, qword [0x14010bc60]
cmp rax, 0x5f5e100
jl 0x14003e31e
mov rbx, qword [rsp + 0x20]
mov rax, rbx
mov qword [rsp + 0x1420], r13
sub rax, qword [0x14010bd38]
mov r13d, 0x80000000
cmp rax, 0xaba9500
jl 0x14003e1a8
movzx edi, byte [0x14010bc58]
mov qword [rsp + 0x1410], rsi
mov qword [rsp + 0x1418], r12
test dil, dil
je 0x14003e02a
mov rax, rbx
sub rax, qword [0x14010bc50]
cmp rax, 0x3b9aca00
jl 0x14003e02a
mov esi, dword [0x14010bd44]
add esi, 3
xor dil, dil
mov byte [0x14010bc58], dil
jmp 0x14003e030
mov esi, dword [0x14010bd44]
mov ecx, dword [0x14010bd50]
cmp ecx, r13d
mov edx, dword [0x14010bd54]
lea eax, [rcx - 0x80000000]
lea r12d, [rcx + r13]
cmovae r12d, eax
lea ecx, [rdx + r13]
cmp edx, r13d
lea eax, [rdx - 0x80000000]
cmovae ecx, eax
sub ecx, r12d
cmp ecx, 0xffffffff
jne 0x14003e073
lea rcx, [rsp + 0x40]
call fcn.140041280
mov ecx, eax
jmp 0x14003e0d9
mov qword [rsp + 0x13e8], r14
lea r14d, [rcx + 1]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x13e0], r15
call fcn.140041280
mov ecx, eax
mov r15d, r14d
imul rcx, r15
cmp ecx, r14d
jae 0x14003e0c5
mov eax, r14d
xor edx, edx
neg eax
div r14d
mov r14d, edx
cmp ecx, edx
jae 0x14003e0c5
lea rcx, [rsp + 0x40]
call fcn.140041280
mov ecx, eax
imul rcx, r15
cmp ecx, r14d
jb 0x14003e0b0
mov r15, qword [rsp + 0x13e0]
mov r14, qword [rsp + 0x13e8]
shr rcx, 0x20
add ecx, r12d
mov r12, qword [rsp + 0x1418]
cmp ecx, r13d
lea eax, [rcx + r13]
lea edx, [rcx - 0x80000000]
cmovae edx, eax
and edx, 0x80000003
jge 0x14003e103
dec edx
or edx, 0xfffffffc
inc edx
movss xmm2, dword [0x140108f7c]
test edx, edx
movss xmm1, dword [0x140108f80]
mov eax, 2
mov ecx, 0xfffffffc
cmove eax, ecx
add eax, esi
mov rsi, qword [rsp + 0x1410]
mov dword [0x14010bd44], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movd xmm3, eax
comiss xmm2, xmm0
cvtdq2ps xmm3, xmm3
jbe 0x14003e14b
cvttss2si eax, xmm2
jmp 0x14003e154
comiss xmm3, xmm1
jbe 0x14003e15a
cvttss2si eax, xmm1
mov dword [0x14010bd44], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jb 0x14003e194
test dil, dil
jne 0x14003e194
cmp eax, 0x10
jl 0x14003e194
add eax, 0xfffffffd
lea rcx, [rsp + 0x20]
mov dword [0x14010bd44], eax
call fcn.14003c820
mov byte [0x14010bc58], 1
mov rcx, qword [rax]
mov qword [0x14010bc50], rcx
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov rcx, qword [rax]
mov qword [0x14010bd38], rcx
lea rcx, [rsp + 0x40]
call fcn.140041280
mov ecx, eax
imul rdi, rcx, 0x124
cmp edi, 0x1f
ja 0x14003e1d8
lea rcx, [rsp + 0x40]
call fcn.140041280
mov ecx, eax
imul rdi, rcx, 0x124
cmp edi, 0x20
jb 0x14003e1c0
shr rdi, 0x20
lea rcx, [rsp + 0x40]
add edi, 0x38f
call fcn.140041280
mov ecx, eax
imul rdx, rcx, 0x64
cmp edx, 0x64
jae 0x14003e215
cmp edx, 0x60
jae 0x14003e215
nop dword [rax]
lea rcx, [rsp + 0x40]
call fcn.140041280
mov ecx, eax
imul rdx, rcx, 0x64
cmp edx, 0x60
jb 0x14003e200
shr rdx, 0x20
add edx, 0x80000001
cmp edx, r13d
lea eax, [rdx + r13]
mov r13, qword [rsp + 0x1420]
lea ecx, [rdx - 0x80000000]
cmovae ecx, eax
cmp ecx, 0x78
jg 0x14003e276
lea rcx, [rsp + 0x40]
call fcn.140041280
mov ecx, eax
imul rax, rcx, 0x124
cmp eax, 0x1f
ja 0x14003e26c
lea rcx, [rsp + 0x40]
call fcn.140041280
mov ecx, eax
imul rax, rcx, 0x124
cmp eax, 0x20
jb 0x14003e254
shr rax, 0x20
lea edi, [rax + 0x38f]
mov rcx, rbx
movabs rax, 0x431bde82d7b634db
sub rcx, qword [0x14010bd60]
imul rcx
mov eax, edi
mov r8, rdx
cdq
idiv dword [0x14010bd44]
sar r8, 0x12
mov rcx, r8
shr rcx, 0x3f
add r8, rcx
movsxd rcx, eax
cmp r8, rcx
je 0x14003e2b1
jl 0x14003e31e
xor edx, edx
lea rcx, str.LWJGL
call qword [sym.imp.USER32.dll_FindWindowA]
lea rcx, [rsp + 0x30]
mov rdi, rax
call qword [sym.imp.USER32.dll_GetCursorPos]
movzx r9d, word [rsp + 0x34]
mov edx, 0x201
movzx ecx, word [rsp + 0x30]
mov r8d, 1
shl r9d, 0x10
or r9, rcx
mov rcx, rdi
call qword [sym.imp.USER32.dll_PostMessageA]
movzx r9d, word [rsp + 0x34]
xor r8d, r8d
movzx eax, word [rsp + 0x30]
mov edx, 0x202
shl r9d, 0x10
mov rcx, rdi
or r9, rax
call qword [sym.imp.USER32.dll_PostMessageA]
mov qword [0x14010bd60], rbx
mov rcx, qword [rbp + 0x12d0]
xor rcx, rsp
call fcn.140083c60
add rsp, 0x13f0
pop rdi
pop rbx
pop rbp
ret