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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rax, qword [0x1401080c0]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov r12, rcx
mov edi, 4
mov rax, qword gs:[0x58]
mov rbx, qword [rax]
lea r13, [0x14010bd70]
mov eax, dword [rdi + rbx]
cmp dword [0x14010bd68], eax
jle 0x14003e807
lea rcx, [0x14010bd68]
call fcn.14008425c
cmp dword [0x14010bd68], 0xffffffff
jne 0x14003e807
call fcn.140082638
mov dword [0x14010d0f4], 0xffffffff
mov dword [0x14010bd74], eax
mov r8d, 1
nop dword [rax]
nop word [rax + rax]
mov edx, eax
shr edx, 0x1e
xor edx, eax
imul eax, edx, 0x6c078965
add eax, r8d
mov dword [r13 + r8*4 + 4], eax
inc r8
cmp r8, 0x270
jb 0x14003e7d0
mov dword [0x14010bd70], 0x270
lea rcx, [0x14010bd68]
call fcn.1400841f0
mov eax, dword [rdi + rbx]
cmp dword [0x14010d0f8], eax
jle 0x14003e847
lea rcx, [0x14010d0f8]
call fcn.14008425c
cmp dword [0x14010d0f8], 0xffffffff
jne 0x14003e847
mov dword [0x14010d100], 1
mov dword [0x14010d104], 0x64
lea rcx, [0x14010d0f8]
call fcn.1400841f0
mov eax, dword [rdi + rbx]
cmp dword [0x14010d108], eax
jle 0x14003e887
lea rcx, [0x14010d108]
call fcn.14008425c
cmp dword [0x14010d108], 0xffffffff
jne 0x14003e887
mov dword [0x14010d110], 0x38f
mov dword [0x14010d114], 0x4b2
lea rcx, [0x14010d108]
call fcn.1400841f0
mov eax, dword [rdi + rbx]
cmp dword [0x14010d118], eax
jle 0x14003e8bf
lea rcx, [0x14010d118]
call fcn.14008425c
cmp dword [0x14010d118], 0xffffffff
jne 0x14003e8bf
lea rcx, [0x14010d120]
call fcn.14003c820
lea rcx, [0x14010d118]
call fcn.1400841f0
mov eax, dword [rdi + rbx]
cmp dword [0x14010d128], eax
jle 0x14003e8f9
lea rcx, [0x14010d128]
call fcn.14008425c
cmp dword [0x14010d128], 0xffffffff
jne 0x14003e8f9
cvttss2si eax, dword [0x140108f7c]
mov dword [0x14010d12c], eax
lea rcx, [0x14010d128]
call fcn.1400841f0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14003e924
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14003e924
mov byte [0x14010bc48], al
jmp 0x14003ec4d
cmp byte [0x14010bc48], 0
jne 0x14003e951
mov byte [0x14010bc48], 1
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov rcx, qword [rax]
mov qword [0x14010bc40], rcx
cmp byte [0x14010bc48], 0
je 0x14003e973
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov rax, qword [rsp + 0x20]
sub rax, qword [0x14010bc40]
cmp rax, 0x7270e00
jl 0x14003ec4d
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov rbx, qword [rsp + 0x20]
mov rax, rbx
sub rax, qword [0x14010d120]
mov esi, 0x80000000
cmp rax, 0xaba9500
jl 0x14003eada
movss xmm3, dword [0x140108f7c]
cvttss2si edi, xmm3
movss xmm2, dword [0x140108f80]
cvttss2si r14d, xmm2
lea eax, [rdi - 0x80000000]
lea r15d, [rdi + rsi]
cmp edi, esi
cmovae r15d, eax
lea eax, [r14 - 0x80000000]
lea ecx, [r14 + rsi]
cmp r14d, esi
cmovae ecx, eax
sub ecx, r15d
cmp ecx, 0xffffffff
jne 0x14003e9eb
mov rcx, r13
call fcn.140041280
mov ecx, eax
jmp 0x14003ea2b
lea esi, [rcx + 1]
mov rcx, r13
call fcn.140041280
mov ebp, esi
mov ecx, eax
imul rcx, rbp
cmp ecx, esi
jae 0x14003ea22
mov eax, esi
neg eax
xor edx, edx
div esi
mov esi, edx
cmp ecx, edx
jae 0x14003ea22
mov rcx, r13
call fcn.140041280
mov ecx, eax
imul rcx, rbp
cmp ecx, esi
jb 0x14003ea10
shr rcx, 0x20
mov esi, 0x80000000
add ecx, r15d
lea eax, [rcx + rsi]
lea edx, [rcx - 0x80000000]
cmp ecx, esi
cmovae edx, eax
and edx, 0x80000003
jge 0x14003ea4b
dec edx
or edx, 0xfffffffc
inc edx
mov eax, 2
mov ecx, 0xfffffffc
test edx, edx
cmove eax, ecx
add eax, dword [0x14010d12c]
mov dword [0x14010d12c], eax
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm3, xmm0
jbe 0x14003ea81
mov dword [0x14010d12c], edi
jmp 0x14003ea92
mov edi, eax
comiss xmm1, xmm2
jbe 0x14003ea92
mov dword [0x14010d12c], r14d
mov edi, r14d
movd xmm0, edi
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm2
jb 0x14003eac6
cmp byte [0x14010bc3a], 0
jne 0x14003eac6
cmp edi, 0x10
jl 0x14003eac6
lea eax, [rdi - 3]
mov dword [0x14010d12c], eax
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov byte [0x14010bc3a], 1
lea rcx, [rsp + 0x20]
call fcn.14003c820
mov rcx, qword [rax]
mov qword [0x14010d120], rcx
mov ebp, dword [0x14010d12c]
test ebp, ebp
jne 0x14003eaef
mov ebp, 1
mov dword [0x14010d12c], ebp
mov edx, dword [0x14010d114]
mov ecx, dword [0x14010d110]
lea eax, [rcx - 0x80000000]
lea r14d, [rcx + rsi]
cmp ecx, esi
cmovae r14d, eax
lea eax, [rdx - 0x80000000]
lea r8d, [rdx + rsi]
cmp edx, esi
cmovae r8d, eax
sub r8d, r14d
mov rcx, r13
cmp r8d, 0xffffffff
jne 0x14003eb30
call fcn.140041280
mov ecx, eax
jmp 0x14003eb6e
lea edi, [r8 + 1]
call fcn.140041280
mov esi, edi
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jae 0x14003eb65
mov eax, edi
neg eax
xor edx, edx
div edi
mov edi, edx
cmp ecx, edx
jae 0x14003eb65
mov rcx, r13
call fcn.140041280
mov ecx, eax
imul rcx, rsi
cmp ecx, edi
jb 0x14003eb53
shr rcx, 0x20
mov esi, 0x80000000
lea r8d, [r14 + rcx]
mov rcx, rbx
sub rcx, qword [r12]
movabs rax, 0x431bde82d7b634db
imul rcx
mov r9, rdx
sar r9, 0x12
mov rax, r9
shr rax, 0x3f
add r9, rax
lea ecx, [r8 + rsi]
lea eax, [r8 - 0x80000000]
cmp r8d, esi
cmovae eax, ecx
cdq
idiv ebp
movsxd rcx, eax
cmp r9, rcx
je 0x14003ebb9
jl 0x14003ec4d
xor edx, edx
lea rcx, str.LWJGL
call qword [sym.imp.USER32.dll_FindWindowA]
mov rdi, rax
test rax, rax
je 0x14003ec24
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_GetCursorPos]
movzx r9d, word [rsp + 0x24]
shl r9d, 0x10
movzx ecx, word [rsp + 0x20]
or r9, rcx
mov edx, 0x201
mov r8d, 1
mov rcx, rdi
call qword [sym.imp.USER32.dll_PostMessageA]
movzx r9d, word [rsp + 0x24]
shl r9d, 0x10
movzx eax, word [rsp + 0x20]
or r9, rax
xor r8d, r8d
mov edx, 0x202
mov rcx, rdi
call qword [sym.imp.USER32.dll_PostMessageA]
cmp byte [0x140108f98], 0
je 0x14003ec49
mov rcx, qword [0x14010bb98]
cmp rcx, qword [0x14010bba0]
je 0x14003ec49
xor edx, edx
lea r8d, [rdx + 5]
call qword [sym.imp.WINMM.dll_PlaySoundW]
mov qword [r12], rbx
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140083c60
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret