Function at 0x140047d10
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x48
mov ecx, dword [0x140080c3c]
mov qword [rsp + 0x50], rbx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ebx, ebx
test ax, ax
jne 0x140047d34
cmp dword [0x140080c04], ebx
jne 0x140047d46
lea rdx, [0x14007eff0]
mov dword [0x140080c04], ebx
call fcn.140048340
mov ecx, dword [0x140080c4c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d60
cmp dword [0x140080c04], 1
jne 0x140047d76
lea rdx, [0x14007fe10]
mov dword [0x140080c04], 1
call fcn.140048340
mov ecx, dword [0x140080c1c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047d90
cmp dword [0x140080c04], 2
jne 0x140047da6
lea rdx, [0x14007f1c0]
mov dword [0x140080c04], 2
call fcn.140048340
mov ecx, dword [0x140080c34]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047dc0
cmp dword [0x140080c04], 3
jne 0x140047dd6
lea rdx, [0x14007f0e0]
mov dword [0x140080c04], 3
call fcn.140048340
mov ecx, dword [0x140080c38]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047df0
cmp dword [0x140080c04], 4
jne 0x140047e06
lea rdx, [0x14007efa0]
mov dword [0x140080c04], 4
call fcn.140048340
mov ecx, dword [0x140080c14]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047e20
cmp dword [0x140080c04], 5
jne 0x140047e36
lea rdx, [0x14007f210]
mov dword [0x140080c04], 5
call fcn.140048340
mov ecx, dword [0x140080c08]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047e50
cmp dword [0x140080c04], 6
jne 0x140047e66
lea rdx, [0x14007f090]
mov dword [0x140080c04], 6
call fcn.140048340
mov ecx, dword [0x140080c0c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047e80
cmp dword [0x140080c04], 7
jne 0x140047e96
lea rdx, [0x14007f040]
mov dword [0x140080c04], 7
call fcn.140048340
mov ecx, dword [0x140080c18]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047eb0
cmp dword [0x140080c04], 8
jne 0x140047ec6
lea rdx, [0x14007f170]
mov dword [0x140080c04], 8
call fcn.140048340
mov ecx, dword [0x140080c28]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047edf
cmp dword [0x140080c54], ebx
jne 0x140047eeb
mov dword [0x140080c54], ebx
mov dword [0x14007eddc], ebx
mov ecx, dword [0x140080c10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f05
cmp dword [0x140080c54], 1
jne 0x140047f19
mov dword [0x140080c54], 1
mov dword [0x14007eddc], 1
mov ecx, dword [0x140080c2c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f33
cmp dword [0x140080c54], 2
jne 0x140047f47
mov dword [0x140080c54], 2
mov dword [0x14007eddc], 2
mov ecx, dword [0x140080c24]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f61
cmp dword [0x140080c54], 3
jne 0x140047f75
mov dword [0x140080c54], 3
mov dword [0x14007eddc], 3
mov ecx, dword [0x140080c40]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047f8f
cmp dword [0x140080c54], 4
jne 0x140047fa3
mov dword [0x140080c54], 4
mov dword [0x14007eddc], 4
mov ecx, dword [0x140080c20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047fbc
cmp dword [0x140080c58], ebx
jne 0x140047fc2
mov dword [0x140080c58], ebx
mov ecx, dword [0x140080c30]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140047fdc
cmp dword [0x140080c58], 1
jne 0x140047fe6
mov dword [0x140080c58], 1
mov ecx, dword [0x140080c44]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x140048000
cmp dword [0x140080c58], 2
jne 0x14004800a
mov dword [0x140080c58], 2
mov ecx, dword [0x140080c48]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140048028
cmp byte [0x140080c51], bl
sete byte [0x140080c51]
mov rax, qword [0x140080d60]
mov rax, qword [rax]
cmp byte [rax + 0x19], bl
jne 0x14004822c
mov r8d, dword [0x140080ce8]
mov r9d, dword [0x140080c70]
mov r10d, dword [0x140080c78]
mov r11d, dword [0x140080be8]
mov ebx, dword [0x140080cd8]
mov qword [rsp + 0x58], rbp
mov ebp, dword [0x140080bf0]
mov qword [rsp + 0x60], rsi
mov esi, dword [0x140080c80]
mov qword [rsp + 0x40], rdi
mov edi, dword [0x140080c84]
mov qword [rsp + 0x38], r12
mov r12d, dword [0x140080c74]
mov qword [rsp + 0x30], r13
mov r13d, dword [0x140080bdc]
mov qword [rsp + 0x28], r14
mov r14d, dword [0x140080bfc]
mov qword [rsp + 0x20], r15
mov r15d, dword [0x140080ce0]
nop
mov edx, dword [rax + 0x1c]
cmp r8d, edx
jne 0x1400480c1
mov ecx, dword [rax + 0x20]
mov dword [0x140080c3c], ecx
cmp r9d, edx
jne 0x1400480cf
mov ecx, dword [rax + 0x20]
mov dword [0x140080c4c], ecx
cmp r10d, edx
jne 0x1400480dd
mov ecx, dword [rax + 0x20]
mov dword [0x140080c1c], ecx
cmp r11d, edx
jne 0x1400480eb
mov ecx, dword [rax + 0x20]
mov dword [0x140080c34], ecx
cmp ebx, edx
jne 0x1400480f8
mov ecx, dword [rax + 0x20]
mov dword [0x140080c14], ecx
cmp edi, edx
jne 0x140048105
mov ecx, dword [rax + 0x20]
mov dword [0x140080c38], ecx
cmp esi, edx
jne 0x140048112
mov ecx, dword [rax + 0x20]
mov dword [0x140080c08], ecx
cmp ebp, edx
jne 0x14004811f
mov ecx, dword [rax + 0x20]
mov dword [0x140080c0c], ecx
cmp r14d, edx
jne 0x14004812d
mov ecx, dword [rax + 0x20]
mov dword [0x140080c18], ecx
cmp r15d, edx
jne 0x14004813b
mov ecx, dword [rax + 0x20]
mov dword [0x140080c28], ecx
cmp r12d, edx
jne 0x140048149
mov ecx, dword [rax + 0x20]
mov dword [0x140080c10], ecx
cmp r13d, edx
jne 0x140048157
mov ecx, dword [rax + 0x20]
mov dword [0x140080c2c], ecx
cmp dword [0x140080cdc], edx
jne 0x140048168
mov ecx, dword [rax + 0x20]
mov dword [0x140080c24], ecx
cmp dword [0x140080c7c], edx
jne 0x140048179
mov ecx, dword [rax + 0x20]
mov dword [0x140080c40], ecx
cmp dword [0x140080bec], edx
jne 0x14004818a
mov ecx, dword [rax + 0x20]
mov dword [0x140080c44], ecx
cmp dword [0x140080c00], edx
jne 0x14004819b
mov ecx, dword [rax + 0x20]
mov dword [0x140080c30], ecx
cmp dword [0x140080bf4], edx
jne 0x1400481ac
mov ecx, dword [rax + 0x20]
mov dword [0x140080c48], ecx
mov rcx, qword [rax + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400481d8
mov rcx, qword [rax + 8]
cmp byte [rcx + 0x19], 0
jne 0x1400481d3
cmp rax, qword [rcx + 0x10]
jne 0x1400481d3
mov rax, rcx
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x19], 0
je 0x1400481c0
mov rax, rcx
jmp 0x1400481ff
mov rdx, qword [rcx]
mov rax, rcx
cmp byte [rdx + 0x19], 0
jne 0x1400481ff
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rdx]
mov rax, rdx
mov rdx, rcx
cmp byte [rcx + 0x19], 0
je 0x1400481f0
cmp byte [rax + 0x19], 0
je 0x1400480b0
mov r15, qword [rsp + 0x20]
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rax, qword [0x140080d88]
mov rbx, qword [rsp + 0x50]
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
jne 0x1400482b5
mov r8d, dword [0x140080ce4]
cmp r8d, dword [rax + 0x1c]
jne 0x140048257
mov ecx, dword [rax + 0x20]
mov dword [0x14007ed18], ecx
mov rcx, qword [rax + 0x10]
cmp byte [rcx + 0x19], 0
je 0x140048288
mov rcx, qword [rax + 8]
cmp byte [rcx + 0x19], 0
jne 0x140048283
nop dword [rax + rax]
cmp rax, qword [rcx + 0x10]
jne 0x140048283
mov rax, rcx
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x19], 0
je 0x140048270
mov rax, rcx
jmp 0x1400482af
mov rdx, qword [rcx]
mov rax, rcx
cmp byte [rdx + 0x19], 0
jne 0x1400482af
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rdx]
mov rax, rdx
mov rdx, rcx
cmp byte [rcx + 0x19], 0
je 0x1400482a0
cmp byte [rax + 0x19], 0
je 0x140048248
mov rax, qword [0x140080d50]
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
jne 0x140048335
mov r8d, dword [0x140080bf8]
nop dword [rax]
cmp r8d, dword [rax + 0x1c]
jne 0x1400482df
mov ecx, dword [rax + 0x20]
mov dword [0x14007ed74], ecx
mov rcx, qword [rax + 0x10]
cmp byte [rcx + 0x19], 0
je 0x14004830b
mov rcx, qword [rax + 8]
cmp byte [rcx + 0x19], 0
jne 0x140048306
cmp rax, qword [rcx + 0x10]
jne 0x140048306
mov rax, rcx
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x19], 0
je 0x1400482f3
mov rax, rcx
jmp 0x14004832f
mov rdx, qword [rcx]
mov rax, rcx
cmp byte [rdx + 0x19], 0
jne 0x14004832f
nop word [rax + rax]
mov rcx, qword [rdx]
mov rax, rdx
mov rdx, rcx
cmp byte [rcx + 0x19], 0
je 0x140048320
cmp byte [rax + 0x19], 0
je 0x1400482d0
add rsp, 0x48
ret