Function at 0x1801e1e80
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
xor ebx, ebx
mov byte [0x1805b1ceb], 0
cmp byte [0x1805b1ce3], bl
movabs rdi, 0xe2587f8cbbd87b1d
mov byte [0x1805b1cea], 0
mov byte [0x1805b1ce9], 0
je 0x1801e1f19
cmp byte [0x1805b1ce2], bl
je 0x1801e1ee0
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [0x1805b3128]
movsxd rcx, dword [0x180570940]
cmp rax, rcx
ja 0x1801e1f19
cmp byte [0x1805b1ce2], bl
jne 0x1801e2388
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
movsxd rcx, dword [0x1805d70bc]
sub rax, rcx
movsxd rcx, dword [0x180570940]
cmp rax, rcx
jbe 0x1801e2388
mov byte [0x1805b1ce2], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov qword [0x1805b3128], rax
jmp 0x1801e2388
mov ecx, dword [0x180570920]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e230b
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xe3
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
je 0x1801e1fb2
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xaf
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e230b
mov ecx, dword [str._bdefhjI]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2282
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xca
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2282
mov ecx, dword [0x18057091c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e225f
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xbc
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e225f
mov ecx, dword [0x18057090c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e223a
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xbb
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e223a
mov ecx, dword [0x180570918]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2231
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xaf
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2231
mov ecx, dword [0x180570910]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e220d
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xae
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e220d
mov ecx, dword [0x180570914]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e21c4
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xc9
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
je 0x1801e2388
cmp byte [0x1805b1ceb], bl
je 0x1801e21e9
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [0x1805b3128]
movsxd rcx, dword [0x180570940]
cmp rax, rcx
jbe 0x1801e2388
cmp dword [0x1805b5098], ebx
mov byte [0x1805b1ceb], 1
jle 0x1801e236f
lea rdx, str.SELECT
call fcn.1801e3790
jmp 0x1801e236f
mov byte [0x1805b1ce9], 1
cmp dword [0x1805b5098], ebx
jle 0x1801e236f
lea rdx, str.NAV_UP_DOWN
call fcn.1801e3790
jmp 0x1801e236f
mov byte [0x1805b1cea], 1
jmp 0x1801e2214
mov eax, dword [0x1805b5094]
cmp eax, dword [0x1805b5090]
jge 0x1801e2252
inc eax
mov dword [0x1805b5094], eax
jmp 0x1801e2214
mov eax, 1
mov dword [0x1805b5094], eax
jmp 0x1801e2214
mov eax, dword [0x1805b5094]
cmp eax, 1
jle 0x1801e2274
dec eax
mov dword [0x1805b5094], eax
jmp 0x1801e2214
mov eax, dword [0x1805b5090]
mov dword [0x1805b5094], eax
jmp 0x1801e2214
cmp byte [0x1805b1ce3], bl
je 0x1801e22aa
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
movsxd rcx, dword [0x1805d70bc]
sub rax, rcx
movsxd rcx, dword [0x18057093c]
cmp rax, rcx
jbe 0x1801e2388
mov ecx, dword [0x1805b5098]
test ecx, ecx
jle 0x1801e236f
sub ecx, 1
lea rdx, [0x180000000]
movsxd rax, ecx
mov dword [0x1805b5098], ecx
mov eax, dword [rdx + rax*4 + 0x5b3150]
mov dword [0x1805b509c], eax
movsxd rax, ecx
mov eax, dword [rdx + rax*4 + 0x5b40f0]
mov dword [0x1805b5094], eax
jne 0x1801e22f2
mov byte [0x1805b1cef], bl
jmp 0x1801e236f
mov byte [0x1805b1cef], 1
test ecx, ecx
jle 0x1801e236f
lea rdx, str.BACK
call fcn.1801e3790
jmp 0x1801e236f
mov eax, dword [0x1805b5098]
test eax, eax
jne 0x1801e2346
mov eax, dword [0x1805b509c]
mov dword [0x1805b3150], eax
mov eax, dword [0x1805b5094]
mov dword [0x1805b40f0], eax
mov eax, 1
mov dword [0x1805b5098], eax
mov dword [0x1805b509c], eax
mov byte [0x1805b1cef], al
jmp 0x1801e2369
cmp eax, 1
jne 0x1801e236f
mov eax, dword [0x1805b3150]
mov dword [0x1805b509c], eax
mov eax, dword [0x1805b40f0]
mov dword [0x1805b5098], ebx
mov byte [0x1805b1cef], bl
mov dword [0x1805b5094], eax
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov dword [0x1805d70bc], eax
mov byte [0x1805b1ce3], 1
mov byte [0x1805b1ce2], bl
mov ecx, dword [0x180570920]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2637
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xe3
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
je 0x1801e2421
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xaf
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2637
mov ecx, dword [str._bdefhjI]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2637
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xca
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2637
mov ecx, dword [0x18057091c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2637
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xbc
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2637
mov ecx, dword [0x18057090c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2637
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xbb
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2637
mov ecx, dword [0x180570918]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2637
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xaf
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2637
mov ecx, dword [0x180570910]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2637
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xae
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2637
mov ecx, dword [0x180570914]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1801e2637
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xc9
mov rax, qword [rsp + 0x30]
mov qword [0x180587128], rax
mov dword [0x1805870f8], ebx
mov qword [0x1805dd278], rdi
mov qword [0x180587120], rbx
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], ebx
jne 0x1801e2637
mov byte [0x1805b1ce3], bl
mov byte [0x1805b1ce2], bl
mov dword [0x1805b5090], ebx
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret