Function at 0x14004e400
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x28
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e45a
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e45a
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e444
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e45a
cmp byte [0x14008b529], 1
jne 0x14004e45a
movsd xmm0, qword [0x14007f688]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e4a7
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e4a7
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e49a
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e4a7
cmp byte [0x14008b529], 1
je 0x14004e90e
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e4fd
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e4fd
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e4e7
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e4fd
cmp byte [0x14008aecb], 1
jne 0x14004e4fd
movsd xmm0, qword [0x14007f728]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e553
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e553
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e53d
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e553
cmp byte [0x14008aecb], 1
jne 0x14004e553
movsd xmm0, qword [0x14007f618]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e5a9
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e5a9
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e593
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e5a9
cmp byte [0x14008b969], 1
jne 0x14004e5a9
cmp dword [0x14008ae88], 1
je 0x14004e8af
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e5ff
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e5ff
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e5e9
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e5ff
cmp byte [0x14008b969], 1
jne 0x14004e5ff
cmp dword [0x14008ae88], 2
je 0x14004e90e
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e655
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e655
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e63f
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e655
cmp byte [0x14008aeca], 1
jne 0x14004e655
cmp dword [0x14008ae88], 1
je 0x14004e8af
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e6ab
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e6ab
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e695
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e6ab
cmp byte [0x14008aeca], 1
jne 0x14004e6ab
cmp dword [0x14008ae88], 2
je 0x14004e753
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e701
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e701
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e6eb
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e701
cmp byte [0x14008aec5], 1
jne 0x14004e701
cmp dword [0x14008ae88], 1
je 0x14004e8af
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e760
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e760
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e741
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e760
cmp byte [0x14008aec5], 1
jne 0x14004e760
cmp dword [0x14008ae88], 2
jne 0x14004e760
movsd xmm0, qword [0x14007f568]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e7bf
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e7bf
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e7a0
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e7bf
cmp byte [0x14008b0e9], 1
jne 0x14004e7bf
cmp dword [0x14008ae88], 1
jne 0x14004e7bf
movsd xmm0, qword [0x14007f5d8]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e7fe
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e7fe
cmp byte [0x14008b0e9], 1
jne 0x14004e7fe
cmp dword [0x14008ae88], 2
jne 0x14004e7fe
movsd xmm0, qword [0x14007f598]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e85d
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e85d
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e83e
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e85d
cmp byte [0x14008b0e9], 1
jne 0x14004e85d
cmp dword [0x14008ae88], 2
jne 0x14004e85d
movsd xmm0, qword [0x14007f5c0]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e8bc
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e8bc
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e89d
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e8bc
cmp byte [0x14008b529], 1
jne 0x14004e8bc
cmp dword [0x14008ae88], 1
jne 0x14004e8bc
movsd xmm0, qword [0x14007f5e0]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e91b
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e91b
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004e8fc
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e91b
cmp byte [0x14008b529], 1
jne 0x14004e91b
cmp dword [0x14008ae88], 2
jne 0x14004e91b
movsd xmm0, qword [0x14007f5f0]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e978
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e978
cmp byte [0x14008aec7], 1
jne 0x14004e978
cmp byte [0x14008aecf], 1
je 0x14004e963
cmp byte [0x14008aec5], 1
je 0x14004e963
movsd xmm0, qword [0x14008a380]
add rsp, 0x28
ret
movsd xmm0, qword [0x14008a380]
addsd xmm0, qword [0x14007f540]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e9d5
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004e9d5
cmp byte [0x14008b52a], 1
jne 0x14004e9d5
cmp byte [0x14008aecf], 1
je 0x14004e9c0
cmp byte [0x14008aec5], 1
je 0x14004e9c0
movsd xmm0, qword [0x14008a388]
add rsp, 0x28
ret
movsd xmm0, qword [0x14008a388]
addsd xmm0, qword [0x14007f5e0]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ea32
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ea32
cmp byte [0x14008aec8], 1
jne 0x14004ea32
cmp byte [0x14008aecf], 1
je 0x14004ea1d
cmp byte [0x14008aec5], 1
je 0x14004ea1d
movsd xmm0, qword [0x14008a398]
add rsp, 0x28
ret
movsd xmm0, qword [0x14008a398]
addsd xmm0, qword [0x14007f508]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ea95
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ea95
cmp byte [0x14008b52c], 1
jne 0x14004ea95
cmp byte [0x14008aecf], 1
je 0x14004ea7d
cmp byte [0x14008aec5], 1
je 0x14004ea7d
movss xmm0, dword [0x14008a390]
cvtps2pd xmm0, xmm0
add rsp, 0x28
ret
movss xmm0, dword [0x14008a390]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x14007f520]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eb05
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eb05
cmp byte [0x14008aecd], 1
jne 0x14004eb05
cmp byte [0x14008ae2a], 1
jne 0x14004eb05
cmp byte [0x14008b52f], 1
jne 0x14004eb05
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ecb2
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ecb2
movsd xmm0, qword [0x14007f640]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eb7a
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eb7a
cmp byte [0x14008b52d], 1
jne 0x14004eb7a
cmp byte [0x14008ae2a], 1
jne 0x14004eb7a
cmp byte [0x14008b52f], 1
jne 0x14004eb7a
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eb6d
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eb6d
movsd xmm0, qword [0x14007f6e0]
add rsp, 0x28
ret
movsd xmm0, qword [0x14007f720]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ebef
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ebef
cmp byte [0x14008b968], 1
jne 0x14004ebef
cmp byte [0x14008ae2a], 1
jne 0x14004ebef
cmp byte [0x14008b52f], 1
jne 0x14004ebef
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ebe2
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ebe2
movsd xmm0, qword [0x14007f6b8]
add rsp, 0x28
ret
movsd xmm0, qword [0x14007f738]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ec57
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ec57
cmp byte [0x14008b528], 1
jne 0x14004ec57
cmp byte [0x14008ae2a], 1
jne 0x14004ec57
cmp byte [0x14008b52f], 1
jne 0x14004ec57
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ec4a
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ecb2
movsd xmm0, qword [0x14007f710]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eccc
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eccc
cmp byte [0x14008aecc], 1
jne 0x14004eccc
cmp byte [0x14008ae2a], 1
jne 0x14004eccc
cmp byte [0x14008b52f], 1
jne 0x14004eccc
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ecbf
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ecbf
movsd xmm0, qword [0x14007f6f0]
add rsp, 0x28
ret
movsd xmm0, qword [0x14007f730]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ed0b
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ed0b
cmp byte [0x14008b969], 1
jne 0x14004ed0b
cmp byte [0x14008aec7], 1
jne 0x14004ed0b
movsd xmm0, qword [0x14007f740]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ed4a
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ed4a
cmp byte [0x14008b969], 1
jne 0x14004ed4a
cmp byte [0x14008ae2a], 1
jne 0x14004ed4a
movsd xmm0, qword [0x14007f5f8]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ed80
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ed80
cmp byte [0x14008b969], 1
jne 0x14004ed80
movsd xmm0, qword [0x14007f670]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004edbf
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004edbf
cmp byte [0x14008aeca], 1
jne 0x14004edbf
cmp byte [0x14008ae2a], 1
jne 0x14004edbf
movsd xmm0, qword [0x14007f5e8]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004edec
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004edec
cmp byte [0x14008aeca], 1
je 0x14004efd5
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ee2b
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ee2b
cmp byte [0x14008aecf], 1
jne 0x14004ee2b
cmp byte [0x14008ae2a], 1
jne 0x14004ee2b
movsd xmm0, qword [0x14007f6f8]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ee61
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ee61
cmp byte [0x14008aecf], 1
jne 0x14004ee61
movsd xmm0, qword [0x14007f650]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eea0
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eea0
cmp byte [0x14008b0e9], 1
jne 0x14004eea0
cmp byte [0x14008ae2a], 1
jne 0x14004eea0
movsd xmm0, qword [0x14007f6a8]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004eed6
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004eed6
cmp byte [0x14008b0e9], 1
jne 0x14004eed6
movsd xmm0, qword [0x14007f608]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ef05
cmp byte [0x14008b0e9], 0
je 0x14004ef05
cmp byte [0x14008ae2a], 1
jne 0x14004ef05
movsd xmm0, qword [0x14007f578]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ef44
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ef44
cmp byte [0x14008aec5], 1
jne 0x14004ef44
cmp byte [0x14008ae2a], 1
jne 0x14004ef44
movsd xmm0, qword [0x14007f6d0]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004ef6d
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004ef6d
cmp byte [0x14008aec5], 1
je 0x14004efd5
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004efac
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004efac
cmp byte [0x14008aecb], 1
jne 0x14004efac
cmp byte [0x14008ae2a], 1
jne 0x14004efac
movsd xmm0, qword [0x14007f6c0]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004efe2
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004efe2
cmp byte [0x14008aecb], 1
jne 0x14004efe2
movsd xmm0, qword [0x14007f648]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004f00f
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004f00f
movsd xmm0, qword [0x14007f560]
add rsp, 0x28
ret
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004f030
cmp byte [0x14008ae2a], 1
jne 0x14004f030
movsd xmm0, qword [0x14007f550]
add rsp, 0x28
ret