Function at 0x18000f804
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rdi, rcx
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
mov ebp, 1
movzx r12d, ax
shr r12d, 7
and r12b, bpl
lea ecx, [rbp + 0x11]
call qword [sym.imp.USER32.dll_GetKeyState]
mov rcx, qword [rsp + 0x78]
lea ebx, [rbp + 7]
mov r15b, 0x80
and al, r15b
neg al
mov rax, rcx
sbb r14d, r14d
and r14d, 3
mov dword [rsp + 0x88], r14d
sub rax, rbx
je 0x18000fdd3
sub rax, 0x19
je 0x18000fb86
sub rax, rbp
je 0x18000fb86
sub rax, rbp
je 0x18000f95f
cmp rax, rbp
je 0x18000f897
mov eax, ebp
jmp 0x18000fe1f
xor esi, esi
lea ecx, [rsi + 0x11]
call qword [sym.imp.USER32.dll_GetKeyState]
test r12b, r12b
jne 0x18000f8f3
test r15b, al
je 0x18000f8be
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.180012d74
jmp 0x18000fe1d
mov rdx, qword [rdi + 0x108]
mov rcx, rdi
cmp dword [rdx + 0x228], esi
mov edx, dword [rdx + 0x250]
jne 0x18000f8e6
xor r9d, r9d
mov r8d, ebp
call fcn.1800127c4
jmp 0x18000fe1d
xor r8d, r8d
call fcn.180012604
jmp 0x18000fe1d
mov rcx, rdi
test r15b, al
je 0x18000f916
call fcn.18000f660
xor r8d, r8d
xor edx, edx
mov rcx, rdi
mov ebx, eax
call fcn.180012cd0
xor r8d, r8d
mov edx, ebx
jmp 0x18000f94b
call fcn.18000f660
mov rcx, qword [rdi + 0x108]
mov edx, dword [rcx + 0x250]
cmp dword [rcx + 0x25c], edx
movsx r8d, word [rcx + 0x21e]
movsx ecx, word [rcx + 0x21c]
setb sil
imul r8d, ecx
imul r8d, edx
mov edx, eax
mov dword [rsp + 0x20], esi
mov r9d, r14d
mov rcx, rdi
call fcn.180012ed4
jmp 0x18000fe1d
xor esi, esi
lea ecx, [rsi + 0x11]
call qword [sym.imp.USER32.dll_GetKeyState]
test r12b, r12b
jne 0x18000fb03
test r15b, al
je 0x18000f986
mov edx, dword [rdi + 0x100]
xor r8d, r8d
jmp 0x18000f8b1
mov rax, qword [rdi + 0x108]
cmp dword [rax + 0x228], esi
jne 0x18000fa8a
test rax, rax
jne 0x18000f9a2
mov eax, esi
jmp 0x18000f9b9
mov rcx, qword [rdi + 0x60]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
call qword [sym.imp.USER32.dll_SendMessageW]
sub eax, ebp
mov r8, qword [rdi + 0x108]
mov r14d, dword [r8 + 0x250]
cmp r14d, eax
jne 0x18000fa2a
movsx r10d, word [r8 + 0x21e]
xor edx, edx
movsx r9d, word [r8 + 0x21c]
mov r11d, r10d
mov r15d, dword [rdi + 0x100]
mov ecx, r9d
imul ecx, r10d
mov eax, r15d
div ecx
mov eax, edx
test edx, edx
je 0x18000fa3a
mov ecx, dword [r8 + 0x220]
cmp ecx, ebp
je 0x18000fa14
add ecx, 0xfffffffd
and ecx, 0xfffffffd
neg ecx
sbb ecx, ecx
neg ecx
lea ebx, [rcx + rbp]
xor edx, edx
div r11d
xor edx, edx
lea r8d, [rax + rbp]
mov eax, r15d
div r11d
imul edx, ebx
jmp 0x18000fa7c
movzx r9d, word [r8 + 0x21c]
movzx r10d, word [r8 + 0x21e]
mov ecx, dword [r8 + 0x220]
cmp ecx, ebp
jne 0x18000fa49
mov ebp, ebx
jmp 0x18000fa6f
lea eax, [rcx - 3]
mov r8d, 2
test eax, 0xfffffffd
je 0x18000fa5e
mov ebp, r8d
jmp 0x18000fa68
cmp ecx, 3
je 0x18000fa6d
cmp ecx, 5
je 0x18000fa6d
mov ebx, r8d
jmp 0x18000fa6f
mov ebx, ebp
movsx edx, r10w
imul edx, ebp
movsx r8d, r9w
sub edx, ebx
mov r9d, edx
mov rcx, rdi
mov edx, r14d
jmp 0x18000f8dc
test rax, rax
jne 0x18000fa93
mov eax, esi
jmp 0x18000faaa
mov rcx, qword [rdi + 0x60]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
call qword [sym.imp.USER32.dll_SendMessageW]
sub eax, ebp
mov rcx, qword [rdi + 0x108]
mov r10d, dword [rcx + 0x250]
lea r8, [rcx + 0x21e]
lea r9, [rcx + 0x21c]
cmp r10d, eax
jne 0x18000faf2
movsx eax, word [r9]
xor edx, edx
movsx ecx, word [r8]
imul ecx, eax
mov eax, dword [rdi + 0x100]
div ecx
test edx, edx
je 0x18000faf2
mov r8d, edx
mov edx, r10d
mov rcx, rdi
jmp 0x18000f8e9
movsx r8d, word [r8]
movsx eax, word [r9]
imul r8d, eax
sub r8d, ebp
jmp 0x18000fae7
mov rcx, rdi
test r15b, al
je 0x18000fb4b
call fcn.18000f660
mov rcx, qword [rdi + 0x60]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
mov ebx, eax
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8d, 2
mov rcx, rdi
sub eax, ebp
mov edx, eax
call fcn.180012cd0
mov r8d, dword [rdi + 0x100]
mov edx, ebx
mov dword [rsp + 0x20], ebp
jmp 0x18000f94f
call fcn.18000f660
mov rcx, qword [rdi + 0x108]
mov edx, dword [rcx + 0x250]
cmp dword [rcx + 0x25c], edx
movsx r8d, word [rcx + 0x21e]
movsx ecx, word [rcx + 0x21c]
setbe sil
imul r8d, ecx
lea ecx, [rdx + 1]
imul r8d, ecx
jmp 0x18000f949
lea r13, [rdi + 0x108]
xor esi, esi
cmp qword [r13], rsi
je 0x18000fbd8
mov rcx, qword [rdi + 0x18]
mov edx, 0x4e22
mov dword [rdi + 0x12c], esi
call qword [sym.imp.USER32.dll_KillTimer]
mov rax, qword [r13]
lea r14, [rdi + 0x60]
mov rcx, qword [r14]
mov edx, 0x1015
movsxd r8, dword [rax + 0x250]
mov r9, r8
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rsp + 0x78]
lea r15, [rdi + 0x108]
jmp 0x18000fbdf
lea r14, [rdi + 0x60]
mov r15, r13
test r12b, r12b
jne 0x18000fcdb
cmp rcx, 0x22
jne 0x18000fc73
cmp qword [r13], rsi
jne 0x18000fbfd
mov r12d, esi
jmp 0x18000fc17
mov rcx, qword [r14]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
call qword [sym.imp.USER32.dll_SendMessageW]
mov r12, rax
sub r12d, ebp
mov rcx, qword [r14]
xor r9d, r9d
mov rbx, qword [r15]
xor r8d, r8d
mov edx, 0x1028
call qword [sym.imp.USER32.dll_SendMessageW]
add dword [rbx + 0x250], eax
mov rax, qword [r15]
cmp dword [rax + 0x250], r12d
jb 0x18000fc66
mov dword [rax + 0x250], r12d
mov rcx, rdi
mov ebx, dword [rdi + 0x100]
call fcn.18000f6fc
cmp eax, ebx
jbe 0x18000fc66
xor r8d, r8d
mov edx, ebx
mov rcx, rdi
call fcn.180012d74
lea r15, [rdi + 0x108]
lea r14, [rdi + 0x60]
jmp 0x18000fca2
mov rcx, qword [r14]
xor r9d, r9d
mov rbx, qword [r13]
xor r8d, r8d
mov edx, 0x1028
call qword [sym.imp.USER32.dll_SendMessageW]
sub dword [rbx + 0x250], eax
mov rax, qword [r15]
cmp dword [rax + 0x250], esi
jge 0x18000fca2
mov dword [rax + 0x250], esi
mov rax, qword [r15]
xor r9d, r9d
mov rcx, qword [r14]
mov edx, 0x1013
movsxd r8, dword [rax + 0x250]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.18000f7bc
mov rax, qword [r15]
mov rcx, rdi
mov dword [rax + 0x248], esi
call fcn.18000fe34
jmp 0x18000fe1d
cmp rcx, 0x22
mov rcx, rdi
jne 0x18000fd3d
call fcn.18000f660
mov rcx, rdi
mov r12d, eax
call fcn.18000f6fc
mov rcx, qword [r14]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1028
mov ebp, eax
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8, qword [r13]
movsx edx, word [r8 + 0x21c]
movsx ecx, word [r8 + 0x21e]
imul ecx, edx
imul ecx, eax
mov eax, dword [rdi + 0x100]
add ebp, ecx
cmp ebp, eax
cmova ebp, eax
lea eax, [rdx + 1]
cmp dword [r8 + 0x254], eax
jmp 0x18000fd90
call fcn.18000f660
mov rcx, rdi
mov r12d, eax
call fcn.18000f6fc
mov rcx, qword [r14]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1028
mov ebx, eax
call qword [sym.imp.USER32.dll_SendMessageW]
mov r10, qword [r13]
mov ebp, esi
movsx r9d, word [r10 + 0x21c]
movsx ecx, word [r10 + 0x21e]
imul ecx, eax
lea eax, [r9 + 1]
imul ecx, r9d
sub ebx, ecx
cmovns ebp, ebx
cmp dword [r10 + 0x254], eax
mov r9d, dword [rsp + 0x88]
sete sil
mov r8d, ebp
mov dword [rsp + 0x20], esi
mov edx, r12d
mov rcx, rdi
call fcn.180012ed4
mov rax, qword [r15]
xor r9d, r9d
mov rcx, qword [r14]
mov edx, 0x1013
movsxd r8, dword [rax + 0x250]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rdi
call fcn.18000f7bc
jmp 0x18000fe1d
mov rax, qword [rdi + 0x108]
xor esi, esi
mov ebx, 0x25
mov r14d, 0x100
cmp dword [rax + 0x228], esi
jne 0x18000fe0a
cmp dword [rax + 0x248], ebp
jne 0x18000fe0a
mov rcx, qword [rdi + 0x60]
xor r9d, r9d
mov r8d, ebx
mov edx, r14d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rdi + 0x60]
xor r9d, r9d
mov r8, rbx
mov edx, r14d
call qword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret