Function at 0x180213ef0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x68
call qword [sym.imp.KERNEL32.dll_GetTickCount]
xor esi, esi
mov ebp, 1
mov ebx, esi
mov edi, eax
cmp dword [reloc.d2d1.dll_Ordinal_1], ebx
je 0x180213fda
xor r9d, r9d
mov dword [rsp + 0x20], ebp
xor r8d, r8d
lea rcx, [rsp + 0x30]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x180213fda
nop word [rax + rax]
mov r10, qword [0x180ae1d90]
test r10, r10
je 0x180213f6f
mov rax, qword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [0x180ae1d98]
mov qword [rsp + 0x20], rax
call r10
cmp dword [rsp + 0x38], 0x200
jne 0x180213f93
mov eax, dword [0x180ae3d38]
test eax, eax
je 0x180213f93
sub eax, dword [rsp + 0x50]
inc eax
test eax, eax
jg 0x180213fbb
mov dword [0x180ae3d38], esi
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_DispatchMessageW]
lea eax, [rdi + 1]
sub eax, dword [rsp + 0x50]
test eax, eax
jg 0x180213fbb
inc ebx
cmp ebx, 3
jg 0x180213fda
xor r9d, r9d
mov dword [rsp + 0x20], ebp
xor r8d, r8d
lea rcx, [rsp + 0x30]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x180213f40
xor ecx, ecx
call fcn.18023b040
mov rbx, rax
cmp byte [rax + 0xe1], bpl
jne 0x180214009
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x180214009
mov edx, 0xe1
xor ecx, ecx
call fcn.18023b710
cmp byte [rbx + 0xe5], bpl
jne 0x18021402e
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x18021402e
mov edx, 0xe5
xor ecx, ecx
call fcn.18023b710
call fcn.18023b030
test rax, rax
je 0x180214041
test dword [rax + 0x40], 0x100000
jne 0x18021408b
cmp byte [rbx + 0xe3], bpl
jne 0x180214066
mov ecx, 0x5b
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x180214066
mov edx, 0xe3
xor ecx, ecx
call fcn.18023b710
cmp byte [rbx + 0xe7], bpl
jne 0x18021408b
mov ecx, 0x5c
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x18021408b
mov edx, 0xe7
xor ecx, ecx
call fcn.18023b710
call fcn.18023f910
mov rbx, rax
call fcn.180260020
mov edi, eax
test rbx, rbx
je 0x1802140e6
mov rbx, qword [rbx + 0x310]
test rbx, rbx
je 0x1802140e6
nop dword [rax + rax]
mov rcx, qword [rbx + 0xd8]
test rcx, rcx
je 0x1802140da
cmp dword [rcx + 0x78], esi
je 0x1802140c6
mov dword [rcx + 0x78], esi
jmp 0x1802140d2
mov eax, edi
sub eax, dword [rcx + 0x7c]
cmp eax, 0xbb8
jb 0x1802140da
mov rcx, rbx
call fcn.18027b2b0
mov rbx, qword [rbx + 0xe8]
test rbx, rbx
jne 0x1802140b0
call fcn.18023b030
test rax, rax
je 0x180214275
test dword [rax + 0x40], 0x4000
je 0x180214275
mov qword [rsp + 0x90], r14
mov r14, qword [rax + 0xd8]
cmp dword [r14 + 0xa4], esi
jne 0x18021426d
lea rcx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x18021426d
mov rcx, qword [r14 + 8]
lea rdx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x18021426d
mov ecx, 0x17
mov qword [rsp + 0x60], r15
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov edi, eax
call fcn.180244a90
mov rcx, qword [rsp + 0xa0]
lea r8, [rsp + 0x9c]
lea rdx, [rsp + 0x98]
mov esi, dword [rax + 0x50]
mov qword [rsp + 0x98], rcx
mov rcx, qword [r14]
call fcn.180279ce0
mov ecx, dword [rsp + 0x9c]
xor r8d, r8d
mov r9d, dword [rsp + 0x98]
mov edx, esi
mov dword [rsp + 0x20], ecx
mov rcx, qword [r14]
call fcn.180245d40
mov r15d, 3
test edi, edi
mov ebx, r15d
mov ecx, ebp
cmove ebx, ebp
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [r14]
movzx r9d, bl
shr eax, 0xf
mov edx, esi
and al, bpl
movzx r8d, al
call fcn.180245d20
test edi, edi
mov ecx, 2
cmove ebp, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [r14]
movzx r9d, bpl
shr eax, 0xf
mov edx, esi
and al, 1
movzx r8d, al
call fcn.180245d20
mov ecx, 4
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [r14]
mov r9b, 2
shr eax, 0xf
mov edx, esi
and al, 1
movzx r8d, al
call fcn.180245d20
mov ecx, 5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [r14]
mov r9b, 4
shr eax, 0xf
mov edx, esi
and al, 1
movzx r8d, al
call fcn.180245d20
mov ecx, 6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [r14]
mov r9b, 5
shr eax, 0xf
mov edx, esi
and al, 1
movzx r8d, al
call fcn.180245d20
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x90]
add rsp, 0x68
pop rdi
pop rsi
pop rbp
pop rbx
ret