Function at 0x498792
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 [0x00712fec]
cmp eax, 1
jne 0x4987d7
mov dword [0x00712fec], 2
mov eax, dword [0x00712fec]
cmp eax, 2
jne 0x4987d7
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x4987bc
mov eax, dword [0x007230d4]
test eax, eax
je 0x4987ef
mov eax, dword [0x007230d0]
test eax, eax
je 0x498b9c
call fcn.00438598
mov dword [0x00c87318], eax
mov edx, dword [0x00c87318]
mov eax, dword [0x0072d8e4]
sub edx, eax
mov eax, edx
mov dword [0x00c87318], eax
mov edx, dword [0x00c87318]
mov eax, dword [0x0072d8e0]
add eax, edx
mov dword [0x00c87318], eax
mov ecx, dword [0x00c87318]
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 [0x00c87318], eax
mov eax, dword [0x00c87318]
mov edx, eax
test rdx, rdx
js 0x49885c
cvtsi2sd xmm0, rdx
jmp 0x498871
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 [0x00c87318], eax
mov eax, dword [0x00c87318]
mov edx, eax
mov rax, qword [0x005d27b0]
mov byte [rax + 0x46c], dl
mov eax, dword [0x00c87318]
shr eax, 8
mov edx, eax
mov rax, qword [0x005d27b0]
mov byte [rax + 0x46d], dl
mov eax, dword [0x00c87318]
shr eax, 0x10
mov edx, eax
mov rax, qword [0x005d27b0]
mov byte [rax + 0x46e], dl
mov eax, dword [0x00c5817c]
test eax, eax
je 0x498904
mov eax, dword [0x00c5817c]
cmp eax, 0xffffffff
je 0x4988f1
mov dword [0x00c5817c], 0xffffffff
jmp 0x498a27
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x4987a7
mov ecx, 0xf
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov dword [0x0072d8f0], 1
mov dword [0x0072d8ec], 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 0x498951
mov dword [0x00712fec], 2
jmp 0x498b9d
call 0x46b9d9
xor dword [rbp - 0x54], 1
mov eax, dword [0x0072306c]
test eax, eax
jne 0x498a20
mov dword [0x00723084], 1
mov eax, dword [0x00723080]
test eax, eax
je 0x498a16
mov rax, qword [0x005b5d20]
mov edx, 1
movq xmm0, rax
call fcn.0045fb04
movapd xmm1, xmm0
movsd xmm0, qword [0x00723078]
subsd xmm1, xmm0
movapd xmm0, xmm1
movq xmm1, qword [0x005b5c40]
andpd xmm0, xmm1
comisd xmm0, xmmword [0x005b5de0]
setae al
test al, al
je 0x498a16
mov eax, dword [0x00723070]
mov ecx, eax
call fcn.0048162e
mov dword [0x00723080], 0
call fcn.00471ddc
mov dword [0x00c87328], eax
mov eax, dword [0x00723070]
mov ecx, eax
call fcn.00471d0e
mov r8d, 2
mov edx, 0xf
mov ecx, 0
call fcn.0045aca1
mov eax, dword [0x00c87328]
mov ecx, eax
call fcn.00471d0e
mov dword [0x00723084], 0
cmp dword [rbp - 0x54], 1
jne 0x498a45
nop
mov eax, dword [0x00587378]
test eax, eax
je 0x498a36
call fcn.00498c93
mov eax, dword [0x0072d6ec]
add eax, 1
mov dword [0x0072d6ec], eax
mov dword [0x0072d8ec], 0
mov eax, dword [0x00c5817c]
test eax, eax
je 0x498a5e
jmp 0x4987a7
cmp dword [rbp - 0x54], 0
jne 0x4987a7
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.0043891d
cmp ebx, eax
setne al
test al, al
je 0x498abd
mov ecx, 0x30d4b
call fcn.0043891d
test eax, eax
setne al
test al, al
je 0x498aae
mov ecx, 0x30d4b
call fcn.00438c93
jmp 0x498ab8
mov ecx, 0x30d4b
call fcn.00438b80
call fcn.0049b04b
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.0043891d
cmp ebx, eax
setne al
test al, al
je 0x498b26
mov ecx, 0x187cd
call fcn.0043891d
test eax, eax
setne al
test al, al
je 0x498b0d
mov dword [0x00723048], 0x12d
mov ecx, 0x187cd
call fcn.00438fac
jmp 0x498b21
mov dword [0x00723048], 0x12d
mov ecx, 0x187cd
call fcn.00438ee3
call fcn.0049b04b
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.0043891d
cmp ebx, eax
setne al
test al, al
je 0x498b8f
mov ecx, 0x187cc
call fcn.0043891d
test eax, eax
setne al
test al, al
je 0x498b76
mov dword [0x00723048], 0x12c
mov ecx, 0x187cc
call fcn.00438fac
jmp 0x498b8a
mov dword [0x00723048], 0x12c
mov ecx, 0x187cc
call fcn.00438ee3
call fcn.0049b04b
mov eax, dword [0x00c5817c]
test eax, eax
jmp 0x4987a7
nop
mov rax, qword [0x005d2bc0]
mov byte [rax], 1
mov rax, qword [0x005d2b10]
mov dword [rax], 1
mov eax, dword [0x00723068]
cmp eax, 3
je 0x498bcf
mov ecx, 0x10
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x498bb4
mov eax, dword [0x00723080]
test eax, eax
je 0x498be6
mov eax, dword [0x00723070]
mov ecx, eax
call fcn.0048162e
mov edx, 0
mov ecx, 0
call fcn.00460911
call 0x46b9dd
mov rax, qword [0x00713000]
mov ecx, eax
call sub.msvcrt.dll_exit
nop