Function at 0x180208b50
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 0x180208c3a
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 0x180208c3a
nop word [rax + rax]
mov r10, qword [0x180a52f50]
test r10, r10
je 0x180208bcf
mov rax, qword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
mov rcx, qword [0x180a52f58]
mov qword [rsp + 0x20], rax
call r10
cmp dword [rsp + 0x38], 0x200
jne 0x180208bf3
mov eax, dword [0x180a54ef8]
test eax, eax
je 0x180208bf3
sub eax, dword [rsp + 0x50]
inc eax
test eax, eax
jg 0x180208c1b
mov dword [0x180a54ef8], 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 0x180208c1b
inc ebx
cmp ebx, 3
jg 0x180208c3a
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 0x180208ba0
xor ecx, ecx
call fcn.18022fca0
mov rbx, rax
cmp byte [rax + 0xe1], bpl
jne 0x180208c69
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x180208c69
mov edx, 0xe1
xor ecx, ecx
call fcn.180230370
cmp byte [rbx + 0xe5], bpl
jne 0x180208c8e
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x180208c8e
mov edx, 0xe5
xor ecx, ecx
call fcn.180230370
call fcn.18022fc90
test rax, rax
je 0x180208ca1
test dword [rax + 0x40], 0x100000
jne 0x180208ceb
cmp byte [rbx + 0xe3], bpl
jne 0x180208cc6
mov ecx, 0x5b
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x180208cc6
mov edx, 0xe3
xor ecx, ecx
call fcn.180230370
cmp byte [rbx + 0xe7], bpl
jne 0x180208ceb
mov ecx, 0x5c
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x180208ceb
mov edx, 0xe7
xor ecx, ecx
call fcn.180230370
call fcn.180234570
mov rbx, rax
call fcn.180254c80
mov edi, eax
test rbx, rbx
je 0x180208d46
mov rbx, qword [rbx + 0x310]
test rbx, rbx
je 0x180208d46
nop dword [rax + rax]
mov rcx, qword [rbx + 0xd8]
test rcx, rcx
je 0x180208d3a
cmp dword [rcx + 0x78], esi
je 0x180208d26
mov dword [rcx + 0x78], esi
jmp 0x180208d32
mov eax, edi
sub eax, dword [rcx + 0x7c]
cmp eax, 0xbb8
jb 0x180208d3a
mov rcx, rbx
call fcn.18026ff10
mov rbx, qword [rbx + 0xe8]
test rbx, rbx
jne 0x180208d10
call fcn.18022fc90
test rax, rax
je 0x180208ed5
test dword [rax + 0x40], 0x4000
je 0x180208ed5
mov qword [rsp + 0x90], r14
mov r14, qword [rax + 0xd8]
cmp dword [r14 + 0xa4], esi
jne 0x180208ecd
lea rcx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x180208ecd
mov rcx, qword [r14 + 8]
lea rdx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x180208ecd
mov ecx, 0x17
mov qword [rsp + 0x60], r15
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov edi, eax
call fcn.1802396f0
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.18026e940
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.18023a9a0
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.18023a980
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.18023a980
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.18023a980
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.18023a980
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.18023a980
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x90]
add rsp, 0x68
pop rdi
pop rsi
pop rbp
pop rbx
ret