Function at 0x498872
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x80]
mov dword [rbp - 0x54], 0
mov eax, dword [0x0071300c]
cmp eax, 1
jne 0x4988b7
mov dword [0x0071300c], 2
mov eax, dword [0x0071300c]
cmp eax, 2
jne 0x4988b7
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x49889c
mov eax, dword [0x007230f4]
test eax, eax
je 0x4988cf
mov eax, dword [0x007230f0]
test eax, eax
je 0x498c7c
call fcn.00438678
mov dword [0x00c87338], eax
mov edx, dword [0x00c87338]
mov eax, dword [0x0072d904]
sub edx, eax
mov eax, edx
mov dword [0x00c87338], eax
mov edx, dword [0x00c87338]
mov eax, dword [0x0072d900]
add eax, edx
mov dword [0x00c87338], eax
mov ecx, dword [0x00c87338]
mov edx, 0x31b5d43b
mov eax, ecx
mul edx
mov eax, edx
shr eax, 0x18
imul eax, eax, 0x5265c00
sub ecx, eax
mov eax, ecx
mov dword [0x00c87338], eax
mov eax, dword [0x00c87338]
mov edx, eax
test rdx, rdx
js 0x49893c
cvtsi2sd xmm0, rdx
jmp 0x498951
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
movsd xmm1, qword [0x005b5ea8]
mulsd xmm0, xmm1
cvttsd2si rax, xmm0
mov dword [0x00c87338], eax
mov eax, dword [0x00c87338]
mov edx, eax
mov rax, qword [0x005d27b0]
mov byte [rax + 0x46c], dl
mov eax, dword [0x00c87338]
shr eax, 8
mov edx, eax
mov rax, qword [0x005d27b0]
mov byte [rax + 0x46d], dl
mov eax, dword [0x00c87338]
shr eax, 0x10
mov edx, eax
mov rax, qword [0x005d27b0]
mov byte [rax + 0x46e], dl
mov eax, dword [0x00c5819c]
test eax, eax
je 0x4989e4
mov eax, dword [0x00c5819c]
cmp eax, 0xffffffff
je 0x4989d1
mov dword [0x00c5819c], 0xffffffff
jmp 0x498b07
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x498887
mov ecx, 0xf
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov dword [0x0072d910], 1
mov dword [0x0072d90c], 1
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [0x005d27a0]
movzx eax, byte [rax]
test al, al
je 0x498a31
mov dword [0x0071300c], 2
jmp 0x498c7d
call 0x46bab9
xor dword [rbp - 0x54], 1
mov eax, dword [0x0072308c]
test eax, eax
jne 0x498b00
mov dword [0x007230a4], 1
mov eax, dword [0x007230a0]
test eax, eax
je 0x498af6
mov rax, qword [0x005b5d20]
mov edx, 1
movq xmm0, rax
call fcn.0045fbe4
movapd xmm1, xmm0
movsd xmm0, qword [0x00723098]
subsd xmm1, xmm0
movapd xmm0, xmm1
movq xmm1, qword [0x005b5c40]
andpd xmm0, xmm1
comisd xmm0, xmmword [0x005b5de0]
setae al
test al, al
je 0x498af6
mov eax, dword [0x00723090]
mov ecx, eax
call fcn.0048170e
mov dword [0x007230a0], 0
call fcn.00471ebc
mov dword [0x00c87348], eax
mov eax, dword [0x00723090]
mov ecx, eax
call fcn.00471dee
mov r8d, 2
mov edx, 0xf
mov ecx, 0
call fcn.0045ad81
mov eax, dword [0x00c87348]
mov ecx, eax
call fcn.00471dee
mov dword [0x007230a4], 0
cmp dword [rbp - 0x54], 1
jne 0x498b25
nop
mov eax, dword [0x00587378]
test eax, eax
je 0x498b16
call fcn.00498d73
mov eax, dword [0x0072d70c]
add eax, 1
mov dword [0x0072d70c], eax
mov dword [0x0072d90c], 0
mov eax, dword [0x00c5819c]
test eax, eax
je 0x498b3e
jmp 0x498887
cmp dword [rbp - 0x54], 0
jne 0x498887
mov ecx, 0x91
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
call rax
cwde
and eax, 1
mov ebx, eax
mov ecx, 0x30d4b
call fcn.004389fd
cmp ebx, eax
setne al
test al, al
je 0x498b9d
mov ecx, 0x30d4b
call fcn.004389fd
test eax, eax
setne al
test al, al
je 0x498b8e
mov ecx, 0x30d4b
call fcn.00438d73
jmp 0x498b98
mov ecx, 0x30d4b
call fcn.00438c60
call fcn.0049b12b
mov ecx, 0x14
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
call rax
cwde
and eax, 1
mov ebx, eax
mov ecx, 0x187cd
call fcn.004389fd
cmp ebx, eax
setne al
test al, al
je 0x498c06
mov ecx, 0x187cd
call fcn.004389fd
test eax, eax
setne al
test al, al
je 0x498bed
mov dword [0x00723068], 0x12d
mov ecx, 0x187cd
call fcn.0043908c
jmp 0x498c01
mov dword [0x00723068], 0x12d
mov ecx, 0x187cd
call fcn.00438fc3
call fcn.0049b12b
mov ecx, 0x90
mov rax, qword [sym.imp.USER32.dll_GetKeyState]
call rax
cwde
and eax, 1
mov ebx, eax
mov ecx, 0x187cc
call fcn.004389fd
cmp ebx, eax
setne al
test al, al
je 0x498c6f
mov ecx, 0x187cc
call fcn.004389fd
test eax, eax
setne al
test al, al
je 0x498c56
mov dword [0x00723068], 0x12c
mov ecx, 0x187cc
call fcn.0043908c
jmp 0x498c6a
mov dword [0x00723068], 0x12c
mov ecx, 0x187cc
call fcn.00438fc3
call fcn.0049b12b
mov eax, dword [0x00c5819c]
test eax, eax
jmp 0x498887
nop
mov rax, qword [0x005d2bc0]
mov byte [rax], 1
mov rax, qword [0x005d2b10]
mov dword [rax], 1
mov eax, dword [0x00723088]
cmp eax, 3
je 0x498caf
mov ecx, 0x10
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x498c94
mov eax, dword [0x007230a0]
test eax, eax
je 0x498cc6
mov eax, dword [0x00723090]
mov ecx, eax
call fcn.0048170e
mov edx, 0
mov ecx, 0
call fcn.004609f1
call 0x46babd
mov rax, qword [0x00713020]
mov ecx, eax
call sub.msvcrt.dll_exit
nop