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

Disassembly:
push rsi
mov eax, 0x1420
call fcn.180084af0
sub rsp, rax
mov rax, qword [0x1800a9010]
xor rax, rsp
mov qword [rsp + 0x13e0], rax
cmp byte [rcx + 0x30], 0
mov rsi, rcx
je 0x180005a8a
cmp byte [0x1800ac610], 0
jne 0x180005a8a
mov rax, qword [0x1800ac618]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac840]
mov rdx, qword [rax]
mov rax, qword [rcx]
mov r9, qword [rax + 0x2f8]
call r9
mov rcx, qword [0x1800ac608]
xor r8d, r8d
mov rdx, qword [rcx]
mov r9, qword [rdx + 0xc0]
mov rdx, rax
call r9
test al, al
je 0x180005a8a
xor eax, eax
mov qword [rsp + 0x1430], rbx
mov qword [rsp + 0x1438], rdi
lea rdx, str.net.minecraft.item.ItemBlock
movaps xmmword [rsp + 0x1410], xmm6
lea rcx, [rsp + 0x28]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x1400], xmm7
lea r8d, [rax + 0x1c]
movaps xmmword [rsp + 0x13f0], xmm8
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
call fcn.1800022d0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.1800807e0
mov rax, qword [0x1800ac618]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f0]
inc dword [0x1800ab5fc]
mov rbx, qword [rax + 8]
mov rdi, qword [rax + 0x10]
mov rax, qword [rcx]
mov rdx, qword [rbx]
call qword [rax + 0x338]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f8]
mov rdx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x338]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac878]
mov rdx, qword [rbx]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
call r9
mov rax, qword [0x1800ac618]
xorps xmm8, xmm8
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f0]
cvtsd2ss xmm8, xmm0
mov rbx, qword [rax + 8]
mov rax, qword [rcx]
mov rdx, qword [rbx]
call qword [rax + 0x338]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f8]
mov rdx, qword [rbx]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
call r9
mov rcx, qword [0x1800ac608]
xorps xmm7, xmm7
mov r8, qword [0x1800ac878]
mov rdx, qword [rbx]
cvtsd2ss xmm7, xmm0
mov rax, qword [rcx]
call qword [rax + 0x338]
mov rax, qword [0x1800ac618]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f0]
mov rbx, qword [rax + 8]
mov rax, qword [rcx]
mov rdx, qword [rbx]
mov r9, qword [rax + 0x338]
call r9
mov rcx, qword [0x1800ac608]
xorps xmm6, xmm6
mov r8, qword [0x1800ac8f8]
mov rdx, qword [rbx]
cvtsd2ss xmm6, xmm0
mov rax, qword [rcx]
call qword [rax + 0x338]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac878]
mov rdx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x338]
subss xmm7, dword [0x180098d94]
cvtps2pd xmm3, xmm8
cvtps2pd xmm2, xmm7
mov rcx, rdi
cvtps2pd xmm1, xmm6
call fcn.180083750
test al, al
je 0x18000557d
mov dl, 1
jmp 0x18000557f
xor edx, edx
call fcn.18007a950
cmp byte [rsi + 0x38], 0
je 0x180005850
mov rax, qword [0x1800ac618]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f0]
mov rbx, qword [rax + 8]
mov rdi, qword [rax + 0x10]
mov rax, qword [rcx]
mov rdx, qword [rbx]
call qword [rax + 0x338]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f8]
mov rdx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x338]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac878]
mov rdx, qword [rbx]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
call r9
mov rax, qword [0x1800ac618]
xorps xmm8, xmm8
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f0]
cvtsd2ss xmm8, xmm0
mov rbx, qword [rax + 8]
mov rax, qword [rcx]
mov rdx, qword [rbx]
call qword [rax + 0x338]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f8]
mov rdx, qword [rbx]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
call r9
mov rcx, qword [0x1800ac608]
xorps xmm7, xmm7
mov r8, qword [0x1800ac878]
mov rdx, qword [rbx]
cvtsd2ss xmm7, xmm0
mov rax, qword [rcx]
call qword [rax + 0x338]
mov rax, qword [0x1800ac618]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8f0]
mov rbx, qword [rax + 8]
mov rax, qword [rcx]
mov rdx, qword [rbx]
mov r9, qword [rax + 0x338]
call r9
mov rcx, qword [0x1800ac608]
xorps xmm6, xmm6
mov r8, qword [0x1800ac8f8]
mov rdx, qword [rbx]
cvtsd2ss xmm6, xmm0
mov rax, qword [rcx]
call qword [rax + 0x338]
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac878]
mov rdx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x338]
cvtps2pd xmm2, xmm7
mov rcx, rdi
cvtps2pd xmm3, xmm8
subsd xmm2, qword [0x180098e48]
cvtps2pd xmm1, xmm6
call fcn.180083750
test al, al
jne 0x180005850
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180005850
mov rax, qword [0x1800ac618]
mov rbx, qword [rax + 8]
mov eax, dword [0x1800ab5fc]
and eax, 0x80000001
jge 0x180005715
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x180005723
movsd xmm0, qword [0x180098dc8]
jmp 0x18000572b
movsd xmm0, qword [0x180098e00]
mov rcx, qword [0x1800ac608]
xorps xmm3, xmm3
mov r8, qword [0x1800ac900]
mov rdx, qword [rbx]
cvtpd2ps xmm6, xmm0
mov rax, qword [rcx]
call qword [rax + 0x380]
ucomiss xmm6, dword [0x180098f84]
jp 0x180005757
je 0x180005774
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8b0]
mov rdx, qword [rbx]
cvtps2pd xmm3, xmm6
mov rax, qword [rcx]
call qword [rax + 0x380]
mov rcx, qword [0x1800ac608]
xorps xmm3, xmm3
mov r8, qword [0x1800ac8a8]
mov rdx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x380]
mov rax, qword [0x1800ac618]
mov rbx, qword [rax + 8]
mov rdx, qword [rbx]
test rdx, rdx
je 0x1800057dc
mov rcx, qword [0x1800ac608]
xor r8d, r8d
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
call r9
test al, al
jne 0x1800057dc
mov rcx, qword [0x1800ac608]
mov r9b, 1
mov r8, qword [0x1800ac8c0]
mov rdx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x348]
mov rax, qword [0x1800ac618]
mov rbx, qword [rax + 8]
mov rdx, qword [rbx]
test rdx, rdx
je 0x18000583b
mov rcx, qword [0x1800ac608]
xor r8d, r8d
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
call r9
test al, al
jne 0x18000583b
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac888]
mov rdx, qword [rbx]
mov rax, qword [rcx]
mov r9, qword [rax + 0x330]
call r9
movss dword [rsp + 0x20], xmm0
mov dword [rsp + 0x24], 0x42b40000
jmp 0x18000591d
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x24], 0x42b40000
jmp 0x18000591d
mov rax, qword [0x1800ac618]
mov rbx, qword [rax + 8]
mov rdx, qword [rbx]
test rdx, rdx
je 0x1800058a4
mov rcx, qword [0x1800ac608]
xor r8d, r8d
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
call r9
test al, al
jne 0x1800058a4
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac888]
mov rdx, qword [rbx]
mov rax, qword [rcx]
mov r9, qword [rax + 0x330]
call r9
movss dword [rsp + 0x20], xmm0
jmp 0x1800058ac
mov dword [rsp + 0x20], 0
mov rax, qword [0x1800ac618]
mov rdi, qword [rax + 8]
mov rdx, qword [rdi]
test rdx, rdx
je 0x1800058ff
mov rcx, qword [0x1800ac608]
xor r8d, r8d
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
call r9
test al, al
jne 0x1800058ff
mov rcx, qword [0x1800ac608]
mov r8, qword [0x1800ac8c0]
mov rdx, qword [rdi]
mov rax, qword [rcx]
mov r9, qword [rax + 0x300]
call r9
test al, al
setne cl
jmp 0x180005901
xor cl, cl
test cl, cl
mov eax, 0x4b
mov edx, 0x50
cmovne eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x24], xmm0
mov rdx, qword [rsp + 0x20]
mov rcx, rbx
call fcn.18007c1c0
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
movaps xmm8, xmmword [rsp + 0x13f0]
mov rcx, rax
movaps xmm7, xmmword [rsp + 0x1400]
movabs rax, 0x346dc5d63886594b
movaps xmm6, xmmword [rsp + 0x1410]
mov rdi, qword [rsp + 0x1438]
imul rcx
mov rbx, rdx
sar rbx, 0xb
mov rax, rbx
shr rax, 0x3f
add rbx, rax
mov eax, dword [0x1800ab600]
test eax, eax
jne 0x180005984
mov eax, ebx
mov dword [0x1800ab600], ebx
mov ecx, ebx
sub ecx, eax
mov eax, 0x3e8
cdq
idiv dword [str._n_n_n_n]
cmp ecx, eax
jl 0x180005a82
lea rcx, [rsp + 0x48]
call qword [sym.imp.USER32.dll_GetCursorPos]
movzx r9d, word [rsp + 0x4c]
mov edx, 0x204
movzx eax, word [rsp + 0x48]
mov r8d, 2
mov rcx, qword [0x1800ac638]
shl r9d, 0x10
or r9, rax
call qword [sym.imp.USER32.dll_SendMessageA]
movzx r9d, word [rsp + 0x4c]
xor r8d, r8d
movzx eax, word [rsp + 0x48]
mov edx, 0x205
mov rcx, qword [0x1800ac638]
shl r9d, 0x10
or r9, rax
call qword [sym.imp.USER32.dll_SendMessageA]
mov dword [0x1800ab600], ebx
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rsp + 0x13d4], 0xffffffff
mov edx, 1
mov dword [rsp + 0x54], eax
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rsp + rdx*4 + 0x54], eax
inc rdx
cmp rdx, 0x270
jb 0x180005a20
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x50], 0x270
call fcn.180005d70
mov ecx, eax
imul rax, rcx, 7
cmp eax, 3
ja 0x180005a75
nop dword [rax]
lea rcx, [rsp + 0x50]
call fcn.180005d70
mov ecx, eax
imul rax, rcx, 7
cmp eax, 4
jb 0x180005a60
shr rax, 0x20
add eax, 8
mov dword [str._n_n_n_n], eax
mov rbx, qword [rsp + 0x1430]
mov rcx, qword [rsp + 0x13e0]
xor rcx, rsp
call fcn.180083910
add rsp, 0x1420
pop rsi
ret
mov rcx, qword [rcx + 8]
jmp 0x180005340