Function at 0x499082
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 [0x0071400c]
cmp eax, 1
jne 0x4990c7
mov dword [0x0071400c], 2
mov eax, dword [0x0071400c]
cmp eax, 2
jne 0x4990c7
mov ecx, 1
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x4990ac
mov eax, dword [0x007240f4]
test eax, eax
je 0x4990df
mov eax, dword [0x007240f0]
test eax, eax
je 0x49948c
call fcn.00438e88
mov dword [0x00c88338], eax
mov edx, dword [0x00c88338]
mov eax, dword [0x0072e904]
sub edx, eax
mov eax, edx
mov dword [0x00c88338], eax
mov edx, dword [0x00c88338]
mov eax, dword [0x0072e900]
add eax, edx
mov dword [0x00c88338], eax
mov ecx, dword [0x00c88338]
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 [0x00c88338], eax
mov eax, dword [0x00c88338]
mov edx, eax
test rdx, rdx
js 0x49914c
cvtsi2sd xmm0, rdx
jmp 0x499161
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 [0x00c88338], eax
mov eax, dword [0x00c88338]
mov edx, eax
mov rax, qword [0x005d3890]
mov byte [rax + 0x46c], dl
mov eax, dword [0x00c88338]
shr eax, 8
mov edx, eax
mov rax, qword [0x005d3890]
mov byte [rax + 0x46d], dl
mov eax, dword [0x00c88338]
shr eax, 0x10
mov edx, eax
mov rax, qword [0x005d3890]
mov byte [rax + 0x46e], dl
mov eax, dword [0x00c5919c]
test eax, eax
je 0x4991f4
mov eax, dword [0x00c5919c]
cmp eax, 0xffffffff
je 0x4991e1
mov dword [0x00c5919c], 0xffffffff
jmp 0x499317
mov ecx, 0x40
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x499097
mov ecx, 0xf
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov dword [0x0072e910], 1
mov dword [0x0072e90c], 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 0x499241
mov dword [0x0071400c], 2
jmp 0x49948d
call 0x46c2c9
xor dword [rbp - 0x54], 1
mov eax, dword [0x0072408c]
test eax, eax
jne 0x499310
mov dword [0x007240a4], 1
mov eax, dword [0x007240a0]
test eax, eax
je 0x499306
mov rax, qword [0x005b6e00]
mov edx, 1
movq xmm0, rax
call fcn.004603f4
movapd xmm1, xmm0
movsd xmm0, qword [0x00724098]
subsd xmm1, xmm0
movapd xmm0, xmm1
movq xmm1, qword [0x005b6d20]
andpd xmm0, xmm1
comisd xmm0, xmmword [0x005b6ec0]
setae al
test al, al
je 0x499306
mov eax, dword [0x00724090]
mov ecx, eax
call fcn.00481f1e
mov dword [0x007240a0], 0
call fcn.004726cc
mov dword [0x00c88348], eax
mov eax, dword [0x00724090]
mov ecx, eax
call fcn.004725fe
mov r8d, 2
mov edx, 0xf
mov ecx, 0
call fcn.0045b591
mov eax, dword [0x00c88348]
mov ecx, eax
call fcn.004725fe
mov dword [0x007240a4], 0
cmp dword [rbp - 0x54], 1
jne 0x499335
nop
mov eax, dword [0x00588378]
test eax, eax
je 0x499326
call fcn.00499583
mov eax, dword [0x0072e70c]
add eax, 1
mov dword [0x0072e70c], eax
mov dword [0x0072e90c], 0
mov eax, dword [0x00c5919c]
test eax, eax
je 0x49934e
jmp 0x499097
cmp dword [rbp - 0x54], 0
jne 0x499097
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.0043920d
cmp ebx, eax
setne al
test al, al
je 0x4993ad
mov ecx, 0x30d4b
call fcn.0043920d
test eax, eax
setne al
test al, al
je 0x49939e
mov ecx, 0x30d4b
call fcn.00439583
jmp 0x4993a8
mov ecx, 0x30d4b
call fcn.00439470
call fcn.0049b93b
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.0043920d
cmp ebx, eax
setne al
test al, al
je 0x499416
mov ecx, 0x187cd
call fcn.0043920d
test eax, eax
setne al
test al, al
je 0x4993fd
mov dword [0x00724068], 0x12d
mov ecx, 0x187cd
call fcn.0043989c
jmp 0x499411
mov dword [0x00724068], 0x12d
mov ecx, 0x187cd
call fcn.004397d3
call fcn.0049b93b
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.0043920d
cmp ebx, eax
setne al
test al, al
je 0x49947f
mov ecx, 0x187cc
call fcn.0043920d
test eax, eax
setne al
test al, al
je 0x499466
mov dword [0x00724068], 0x12c
mov ecx, 0x187cc
call fcn.0043989c
jmp 0x49947a
mov dword [0x00724068], 0x12c
mov ecx, 0x187cc
call fcn.004397d3
call fcn.0049b93b
mov eax, dword [0x00c5919c]
test eax, eax
jmp 0x499097
nop
mov rax, qword [0x005d3ca0]
mov byte [rax], 1
mov rax, qword [0x005d3bf0]
mov dword [rax], 1
mov eax, dword [0x00724088]
cmp eax, 3
je 0x4994bf
mov ecx, 0x10
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x4994a4
mov eax, dword [0x007240a0]
test eax, eax
je 0x4994d6
mov eax, dword [0x00724090]
mov ecx, eax
call fcn.00481f1e
mov edx, 0
mov ecx, 0
call fcn.00461201
call 0x46c2cd
mov rax, qword [0x00714020]
mov ecx, eax
call sub.msvcrt.dll_exit
nop