Function at 0x498fd2
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 [0x0071402c]
cmp eax, 1
jne 0x499017
mov dword [0x0071402c], 2
mov eax, dword [0x0071402c]
cmp eax, 2
jne 0x499017
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x498ffc
mov eax, dword [0x00724114]
test eax, eax
je 0x49902f
mov eax, dword [0x00724110]
test eax, eax
je 0x4993dc
call fcn.00438dd8
mov dword [0x00c88358], eax
mov edx, dword [0x00c88358]
mov eax, dword [0x0072e924]
sub edx, eax
mov eax, edx
mov dword [0x00c88358], eax
mov edx, dword [0x00c88358]
mov eax, dword [0x0072e920]
add eax, edx
mov dword [0x00c88358], eax
mov ecx, dword [0x00c88358]
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 [0x00c88358], eax
mov eax, dword [0x00c88358]
mov edx, eax
test rdx, rdx
js 0x49909c
cvtsi2sd xmm0, rdx
jmp 0x4990b1
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2sd xmm0, rax
addsd xmm0, xmm0
movsd xmm1, qword [0x005b6f88]
mulsd xmm0, xmm1
cvttsd2si rax, xmm0
mov dword [0x00c88358], eax
mov eax, dword [0x00c88358]
mov edx, eax
mov rax, qword [0x005d3890]
mov byte [rax + 0x46c], dl
mov eax, dword [0x00c88358]
shr eax, 8
mov edx, eax
mov rax, qword [0x005d3890]
mov byte [rax + 0x46d], dl
mov eax, dword [0x00c88358]
shr eax, 0x10
mov edx, eax
mov rax, qword [0x005d3890]
mov byte [rax + 0x46e], dl
mov eax, dword [0x00c591bc]
test eax, eax
je 0x499144
mov eax, dword [0x00c591bc]
cmp eax, 0xffffffff
je 0x499131
mov dword [0x00c591bc], 0xffffffff
jmp 0x499267
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x498fe7
mov ecx, 0xf
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov dword [0x0072e930], 1
mov dword [0x0072e92c], 1
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov rax, qword [0x005d3880]
movzx eax, byte [rax]
test al, al
je 0x499191
mov dword [0x0071402c], 2
jmp 0x4993dd
call 0x46c219
xor dword [rbp - 0x54], 1
mov eax, dword [0x007240ac]
test eax, eax
jne 0x499260
mov dword [0x007240c4], 1
mov eax, dword [0x007240c0]
test eax, eax
je 0x499256
mov rax, qword [0x005b6e00]
mov edx, 1
movq xmm0, rax
call fcn.00460344
movapd xmm1, xmm0
movsd xmm0, qword [0x007240b8]
subsd xmm1, xmm0
movapd xmm0, xmm1
movq xmm1, qword [0x005b6d20]
andpd xmm0, xmm1
comisd xmm0, xmmword [0x005b6ec0]
setae al
test al, al
je 0x499256
mov eax, dword [0x007240b0]
mov ecx, eax
call fcn.00481e6e
mov dword [0x007240c0], 0
call fcn.0047261c
mov dword [0x00c88368], eax
mov eax, dword [0x007240b0]
mov ecx, eax
call fcn.0047254e
mov r8d, 2
mov edx, 0xf
mov ecx, 0
call fcn.0045b4e1
mov eax, dword [0x00c88368]
mov ecx, eax
call fcn.0047254e
mov dword [0x007240c4], 0
cmp dword [rbp - 0x54], 1
jne 0x499285
nop
mov eax, dword [0x00588378]
test eax, eax
je 0x499276
call fcn.004994d3
mov eax, dword [0x0072e72c]
add eax, 1
mov dword [0x0072e72c], eax
mov dword [0x0072e92c], 0
mov eax, dword [0x00c591bc]
test eax, eax
je 0x49929e
jmp 0x498fe7
cmp dword [rbp - 0x54], 0
jne 0x498fe7
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.0043915d
cmp ebx, eax
setne al
test al, al
je 0x4992fd
mov ecx, 0x30d4b
call fcn.0043915d
test eax, eax
setne al
test al, al
je 0x4992ee
mov ecx, 0x30d4b
call fcn.004394d3
jmp 0x4992f8
mov ecx, 0x30d4b
call fcn.004393c0
call fcn.0049b88b
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.0043915d
cmp ebx, eax
setne al
test al, al
je 0x499366
mov ecx, 0x187cd
call fcn.0043915d
test eax, eax
setne al
test al, al
je 0x49934d
mov dword [0x00724088], 0x12d
mov ecx, 0x187cd
call fcn.004397ec
jmp 0x499361
mov dword [0x00724088], 0x12d
mov ecx, 0x187cd
call fcn.00439723
call fcn.0049b88b
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.0043915d
cmp ebx, eax
setne al
test al, al
je 0x4993cf
mov ecx, 0x187cc
call fcn.0043915d
test eax, eax
setne al
test al, al
je 0x4993b6
mov dword [0x00724088], 0x12c
mov ecx, 0x187cc
call fcn.004397ec
jmp 0x4993ca
mov dword [0x00724088], 0x12c
mov ecx, 0x187cc
call fcn.00439723
call fcn.0049b88b
mov eax, dword [0x00c591bc]
test eax, eax
jmp 0x498fe7
nop
mov rax, qword [0x005d3ca0]
mov byte [rax], 1
mov rax, qword [0x005d3bf0]
mov dword [rax], 1
mov eax, dword [0x007240a8]
cmp eax, 3
je 0x49940f
mov ecx, 0x10
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x4993f4
mov eax, dword [0x007240c0]
test eax, eax
je 0x499426
mov eax, dword [0x007240b0]
mov ecx, eax
call fcn.00481e6e
mov edx, 0
mov ecx, 0
call fcn.00461151
call 0x46c21d
mov rax, qword [0x00714040]
mov ecx, eax
call sub.msvcrt.dll_exit
nop