Function at 0x140047a60
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x28
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047ac1
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047ac1
cmp byte [0x14015e56e], 1
jne 0x140047ac1
cmp byte [0x14015e63f], 1
je 0x140047aac
cmp byte [0x14015e56c], 1
je 0x140047aac
movsd xmm0, qword [0x14015c148]
add rsp, 0x28
ret
movsd xmm0, qword [0x14015c148]
addsd xmm0, qword [0x14012d908]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047b1e
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047b1e
cmp byte [0x14015e688], 1
jne 0x140047b1e
cmp byte [0x14015e63f], 1
je 0x140047b09
cmp byte [0x14015e56c], 1
je 0x140047b09
movsd xmm0, qword [0x14015c150]
add rsp, 0x28
ret
movsd xmm0, qword [0x14015c150]
addsd xmm0, qword [0x14012d960]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047b7b
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047b7b
cmp byte [0x14015e625], 1
jne 0x140047b7b
cmp byte [0x14015e63f], 1
je 0x140047b66
cmp byte [0x14015e56c], 1
je 0x140047b66
movsd xmm0, qword [0x14015c160]
add rsp, 0x28
ret
movsd xmm0, qword [0x14015c160]
addsd xmm0, qword [0x14012d8d8]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047bde
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047bde
cmp byte [0x14015e6a5], 1
jne 0x140047bde
cmp byte [0x14015e63f], 1
je 0x140047bc6
cmp byte [0x14015e56c], 1
je 0x140047bc6
movss xmm0, dword [0x14015c158]
cvtps2pd xmm0, xmm0
add rsp, 0x28
ret
movss xmm0, dword [0x14015c158]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x14012d8f0]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047c99
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047c99
cmp byte [0x14015e63d], 1
jne 0x140047c99
cmp byte [0x14015e6d4], 1
jne 0x140047c99
cmp byte [0x14015e6d8], 1
jne 0x140047c5b
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f52
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f52
movsd xmm0, qword [0x14012d9d8]
add rsp, 0x28
ret
cmp byte [0x14015e21f], 1
ja 0x140047c99
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d37
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d37
movsd xmm0, qword [0x14012d9d8]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d51
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d51
cmp byte [0x14015e6d5], 1
jne 0x140047d51
cmp byte [0x14015e6d4], 1
jne 0x140047d51
cmp byte [0x14015e6d8], 1
jne 0x140047d0e
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d44
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d44
movsd xmm0, qword [0x14012da78]
add rsp, 0x28
ret
cmp byte [0x14015e21f], 1
ja 0x140047d51
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d44
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d44
movsd xmm0, qword [0x14012da88]
add rsp, 0x28
ret
movsd xmm0, qword [0x14012dab8]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047e09
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047e09
cmp byte [0x14015e6da], 1
jne 0x140047e09
cmp byte [0x14015e6d4], 1
jne 0x140047e09
cmp byte [0x14015e6d8], 1
jne 0x140047dc6
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047db9
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047def
movsd xmm0, qword [0x14012dad8]
add rsp, 0x28
ret
cmp byte [0x14015e21f], 1
ja 0x140047e09
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047dfc
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047dfc
movsd xmm0, qword [0x14012da50]
add rsp, 0x28
ret
movsd xmm0, qword [0x14012dac0]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047eb4
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047eb4
cmp byte [0x14015e674], 1
jne 0x140047eb4
cmp byte [0x14015e6d4], 1
jne 0x140047eb4
cmp byte [0x14015e6d8], 1
jne 0x140047e7a
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047ea7
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047ea7
movsd xmm0, qword [0x14012da90]
add rsp, 0x28
ret
cmp byte [0x14015e21f], 1
ja 0x140047eb4
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047ea7
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047f52
movsd xmm0, qword [0x14012dab0]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f6c
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f6c
cmp byte [0x14015e63c], 1
jne 0x140047f6c
cmp byte [0x14015e6d4], 1
jne 0x140047f6c
cmp byte [0x14015e6d8], 1
jne 0x140047f29
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f1c
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047f52
movsd xmm0, qword [0x14012dad0]
add rsp, 0x28
ret
cmp byte [0x14015e21f], 1
ja 0x140047f6c
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f5f
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f5f
movsd xmm0, qword [0x14012da90]
add rsp, 0x28
ret
movsd xmm0, qword [0x14012dac8]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047fac
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140047fac
cmp byte [0x14015e6e8], 1
jne 0x140047fac
cmp byte [0x14015e56e], 1
jne 0x140047fac
movsd xmm0, qword [0x14012dae0]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047fec
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047fec
cmp byte [0x14015e6e8], 1
jne 0x140047fec
cmp byte [0x14015e6d4], 1
jne 0x140047fec
movsd xmm0, qword [0x14012d988]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048023
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140048023
cmp byte [0x14015e6e8], 1
jne 0x140048023
movsd xmm0, qword [0x14012da10]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048063
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048063
cmp byte [0x14015e63a], 1
jne 0x140048063
cmp byte [0x14015e6d4], 1
jne 0x140048063
movsd xmm0, qword [0x14012d968]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048091
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140048091
cmp byte [0x14015e63a], 1
je 0x140048283
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400480d1
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400480d1
cmp byte [0x14015e63f], 1
jne 0x1400480d1
cmp byte [0x14015e6d4], 1
jne 0x1400480d1
movsd xmm0, qword [0x14012da98]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048108
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140048108
cmp byte [0x14015e63f], 1
jne 0x140048108
movsd xmm0, qword [0x14012d9e8]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048148
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048148
cmp byte [0x14015e651], 1
jne 0x140048148
cmp byte [0x14015e6d4], 1
jne 0x140048148
movsd xmm0, qword [0x14012da40]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14004817f
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14004817f
cmp byte [0x14015e651], 1
jne 0x14004817f
movsd xmm0, qword [0x14012d9a8]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400481af
cmp byte [0x14015e651], 0
je 0x1400481af
cmp byte [0x14015e6d4], 1
jne 0x1400481af
movsd xmm0, qword [0x14012d930]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400481ef
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1400481ef
cmp byte [0x14015e56c], 1
jne 0x1400481ef
cmp byte [0x14015e6d4], 1
jne 0x1400481ef
movsd xmm0, qword [0x14012da68]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048219
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140048219
cmp byte [0x14015e56c], 1
je 0x140048283
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048259
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048259
cmp byte [0x14015e63b], 1
jne 0x140048259
cmp byte [0x14015e6d4], 1
jne 0x140048259
movsd xmm0, qword [0x14012da58]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048290
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140048290
cmp byte [0x14015e63b], 1
jne 0x140048290
movsd xmm0, qword [0x14012d9e0]
add rsp, 0x28
ret
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400482bd
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400482bd
movsd xmm0, qword [0x14012d920]
add rsp, 0x28
ret
mov ecx, dword [0x14015c13c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400482df
cmp byte [0x14015e6d4], 1
jne 0x1400482df
movsd xmm0, qword [0x14012d910]
add rsp, 0x28
ret