Function at 0x140112650
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xa8
mov rax, qword [0x14028e6b0]
xor rax, rsp
mov qword [rbp - 1], rax
mov r14, qword [rbp + 0x7f]
mov r12, r9
mov r15d, r8d
mov r13, rdx
mov rdi, rcx
cmp r8d, 0x200
ja 0x14011295b
cmp r8d, 0x200
je 0x1401126f1
cmp r8d, 0x2b
je 0x1401126df
cmp r8d, 0x100
jne case.0x14011298f.517
cmp r9, 0xa2
jne 0x140112caa
mov rcx, qword [rcx + 8]
mov edx, 0x57e
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
mov eax, 1
jmp 0x140113001
mov rdx, r14
call fcn.140111460
mov eax, 1
jmp 0x140113001
cmp byte [rcx + 0x58], 0
mov esi, 1
je 0x14011275b
cmp byte [rcx + 0x60], 0
jne 0x14011275b
mov ecx, esi
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x14011271a
xor ebx, ebx
mov byte [rdi + 0x58], 0
mov dword [rdi + 0x5c], ebx
jmp 0x14011275b
inc dword [rdi + 0x5c]
cmp dword [rdi + 0x5c], 2
jle 0x14011275b
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x130b
call qword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
js 0x14011275b
mov dword [rdi + 0x68], eax
mov dword [rdi + 0x64], eax
mov byte [rdi + 0x60], sil
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, qword [rdi + 0x18]
je 0x14011275b
mov rcx, r13
call qword [sym.imp.USER32.dll_SetCapture]
mov rax, r14
movzx ecx, r14w
shr rax, 0x10
cmp byte [rdi + 0x60], 0
movzx eax, ax
mov dword [rbp - 0x55], eax
mov dword [rbp - 0x59], ecx
je 0x14011279f
mov rdx, qword [rbp - 0x59]
mov rcx, rdi
call fcn.140111b60
lea rcx, [rdi + 0x70]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rdx, qword [rdi + 0x70]
mov rcx, rdi
call fcn.140111370
mov rax, rsi
jmp 0x140113001
mov edx, ecx
mov r8d, eax
mov rcx, rdi
xor sil, sil
call fcn.140111e40
mov ecx, dword [rdi + 0x90]
cmp ecx, eax
jne 0x1401127be
cmp ecx, 0xffffffff
jne 0x140112825
cmp eax, 0xffffffff
jne 0x1401127fc
cmp ecx, eax
je 0x140112825
or ecx, eax
mov dword [rbp - 0x39], 0xfffffdcc
mov rax, qword [rdi + 0x18]
lea r9, [rbp - 0x49]
xor r8d, r8d
mov dword [rdi + 0x90], ecx
mov dword [rbp - 0x31], ecx
mov rcx, qword [rdi + 0x10]
mov qword [rbp - 0x49], rax
lea edx, [r8 + 0x4e]
mov qword [rbp - 0x41], rdi
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x140112825
cmp ecx, 0xffffffff
jne 0x140112808
mov edx, 0xfffffdcd
jmp 0x140112814
cmp ecx, eax
je 0x140112825
mov sil, 1
mov edx, 0xfffffdcb
mov r8d, eax
mov dword [rdi + 0x90], eax
mov rcx, rdi
call fcn.1401124c0
cmp byte [0x1402a4d31], 0
je 0x14011292c
movups xmm0, xmmword [rdi + 0x80]
movsxd rcx, dword [rdi + 0x90]
movzx eax, byte [rdi + 0x9c]
mov byte [rbp - 0x61], al
movups xmmword [rbp - 0x49], xmm0
cmp ecx, 0xffffffff
je 0x140112896
mov r8, rcx
lea r9, [rdi + 0x80]
mov rcx, qword [rdi + 0x18]
mov edx, 0x130a
call qword [sym.imp.USER32.dll_SendMessageW]
movzx eax, byte [rdi + 0x54]
lea rcx, [rdi + 0x94]
mov r8d, dword [rbp - 0x55]
lea r9, [rdi + 0x80]
mov edx, dword [rbp - 0x59]
mov byte [rsp + 0x20], al
call fcn.1401123b0
mov byte [rdi + 0x9c], al
jmp 0x1401128aa
lea rcx, [rdi + 0x80]
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov byte [rdi + 0x9c], 0
movzx eax, byte [rbp - 0x61]
test sil, sil
jne 0x1401128bb
cmp byte [rdi + 0x9c], al
je 0x1401128f9
test al, al
je 0x1401128dd
test sil, sil
jne 0x1401128cd
cmp byte [rdi + 0x9c], sil
jne 0x1401128e6
xor r8d, r8d
lea rdx, [rbp - 0x49]
mov rcx, r13
call qword [sym.imp.USER32.dll_InvalidateRect]
cmp byte [rdi + 0x9c], 0
je 0x14011292c
xor r8d, r8d
lea rdx, [rdi + 0x80]
mov rcx, r13
call qword [sym.imp.USER32.dll_InvalidateRect]
cmp byte [rdi + 0x9c], 0
je 0x14011292c
xor eax, eax
lea rcx, [rbp - 0x29]
mov qword [rbp - 0x29], rax
mov qword [rbp - 0x19], rax
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x21], rax
mov dword [rbp - 0x29], 0x18
mov dword [rbp - 0x25], 2
call qword [sym.imp.USER32.dll_TrackMouseEvent]
xor eax, eax
lea rcx, [rbp - 0x49]
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x39], rax
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x41], rax
mov dword [rbp - 0x49], 0x18
mov dword [rbp - 0x45], 2
call qword [sym.imp.USER32.dll_TrackMouseEvent]
jmp case.0x14011298f.517
cmp r15d, 0x215
ja 0x140112f07
je 0x140112eef
lea eax, [r8 - 0x201]
cmp eax, 9
ja case.0x14011298f.517
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x113024]
add rcx, rdx
jmp rcx
cmp byte [rdi + 0x60], 0
jne 0x140112caa
mov rcx, qword [rdi + 0x18]
mov r13, r12
shr r13, 0x10
xor r9d, r9d
xor r8d, r8d
shr r13w, 0xf
mov edx, 0x1304
call qword [sym.imp.USER32.dll_SendMessageW]
mov esi, 1
lea r14d, [rax - 1]
mov rax, r12
and eax, 0xc
cmp rax, 0xc
jne 0x1401129eb
xor ebx, ebx
mov rcx, rdi
test r13b, r13b
cmovne ebx, r14d
mov edx, ebx
call fcn.140113050
mov eax, esi
jmp 0x140113001
test r12b, 4
je 0x140112a45
cmp byte [0x1402a4d30], 0
je 0x140112a45
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x130b
call qword [sym.imp.USER32.dll_SendMessageW]
or ecx, 0xffffffff
test r13b, r13b
cmovne ecx, esi
add ecx, eax
js 0x140112a27
xor ebx, ebx
cmp ecx, r14d
cmovg ecx, ebx
mov r14d, ecx
cmp eax, r14d
je 0x140112f77
mov r8d, r14d
mov edx, eax
mov rcx, rdi
call fcn.140111bf0
mov rax, rsi
jmp 0x140113001
test rax, rax
je 0x140112ab0
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x130b
call qword [sym.imp.USER32.dll_SendMessageW]
or ecx, 0xffffffff
test r13b, r13b
cmovne ecx, esi
add eax, ecx
jns 0x140112a8b
test r12b, 8
je 0x140112f77
mov eax, r14d
mov rcx, rdi
mov edx, eax
call fcn.140113050
mov rax, rsi
jmp 0x140113001
cmp eax, r14d
jle 0x140112a9e
test r12b, 8
je 0x140112f77
xor ebx, ebx
mov eax, ebx
mov edx, eax
mov rcx, rdi
call fcn.140113050
mov rax, rsi
jmp 0x140113001
cmp byte [rdi + 0x55], 0
jne 0x140112f77
mov rcx, qword [rdi + 0x18]
lea r9, [rbp - 0x49]
movsxd r8, r14d
mov edx, 0x130a
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rdi + 0x18]
lea rdx, [rbp - 0x29]
call qword [sym.imp.USER32.dll_GetClientRect]
call fcn.14000cdd0
mov r8d, 0x60
mov edx, dword [rax + 0xc]
lea ecx, [r8 - 0x54]
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov rcx, qword [rdi + 0x18]
lea r9, [rbp - 0x11]
mov dword [rbp - 0x59], eax
xor r8d, r8d
mov dword [rbp - 0x55], eax
mov edx, 0x130d
mov rax, qword [rbp - 0x59]
mov qword [rbp - 0x11], rax
call qword [sym.imp.USER32.dll_SendMessageW]
xor ebx, ebx
mov r15, rax
cmp eax, esi
jge 0x140112b43
mov edx, ebx
cmp byte [rdi + 0x54], bl
je 0x140112b32
mov ecx, dword [rbp - 0x1d]
cmp dword [rbp - 0x3d], ecx
jmp 0x140112b38
mov eax, dword [rbp - 0x21]
cmp dword [rbp - 0x41], eax
setl dl
test edx, edx
jne 0x140112f77
call fcn.14000cdd0
mov r8d, 0x60
mov edx, dword [rax + 0xc]
lea ecx, [r8 - 0x34]
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, eax
cmp byte [rdi + 0x54], bl
je 0x140112b6c
mov ecx, dword [rbp - 0x1d]
sub ecx, dword [rbp - 0x3d]
cmp ecx, eax
jmp 0x140112b74
mov eax, dword [rbp - 0x21]
sub eax, dword [rbp - 0x41]
cmp eax, edx
setl bl
test ebx, ebx
jne 0x140112be3
test r13b, r13b
jne 0x140112f77
dec r15d
test r15d, r15d
js 0x140112f77
cmp r15d, r14d
jg 0x140112f77
cmp byte [rdi + 0x9c], 0
je 0x140112bbd
mov rcx, qword [rdi + 0x18]
lea rdx, [rdi + 0x80]
xor r8d, r8d
mov byte [rdi + 0x9c], 0
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
movzx r8d, r15w
mov edx, 0x114
shl r8, 0x10
or r8, 4
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, rsi
jmp 0x140113001
test r13b, r13b
je 0x140112b84
inc r15d
jmp 0x140112b87
mov rcx, qword [rdi + 0x18]
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
bt rax, 8
jae 0x140112c44
mov rax, r14
movzx edx, r14w
shr rax, 0x10
mov rcx, rdi
movzx r8d, ax
call fcn.140111e40
mov ebx, eax
cmp eax, 0xffffffff
je 0x140112c44
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x130b
call qword [sym.imp.USER32.dll_SendMessageW]
cmp ebx, eax
je 0x140112c44
mov edx, ebx
mov rcx, rdi
call fcn.140113050
cmp byte [0x1402a4d31], 0
je 0x140112cb4
mov rax, r14
movzx ebx, r14w
shr rax, 0x10
lea r9, [rdi + 0x80]
movzx esi, ax
lea rcx, [rdi + 0x94]
movzx eax, byte [rdi + 0x54]
mov r8d, esi
mov edx, ebx
mov byte [rsp + 0x20], al
call fcn.1401123b0
test al, al
je 0x140112cb4
mov r8d, esi
mov edx, ebx
mov rcx, rdi
call fcn.140111e40
mov rcx, qword [rdi + 0x10]
xor r9d, r9d
mov edx, 0x111
mov dword [rdi + 0xa0], eax
mov r8d, 0xac08
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
jmp 0x140113001
mov rcx, qword [rdi + 0x78]
mov r9, r12
mov r8d, r15d
mov qword [rsp + 0x20], r14
mov rdx, r13
call qword [sym.imp.USER32.dll_CallWindowProcW]
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x130b
call qword [sym.imp.USER32.dll_SendMessageW]
cmp r12, 2
je 0x140112caa
cmp byte [0x1402a4d30], 0
je 0x140112cf4
mov byte [rdi + 0x58], 1
mov edx, 0xfffffffe
mov r8d, eax
mov rcx, rdi
call fcn.1401124c0
mov eax, 1
jmp 0x140113001
mov rcx, qword [rdi + 0x18]
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
bt rax, 8
jae 0x140112d65
mov rax, r14
movzx edx, r14w
shr rax, 0x10
mov rcx, rdi
movzx r8d, ax
call fcn.140111e40
mov ebx, eax
cmp eax, 0xffffffff
je 0x140112d65
mov rcx, qword [rdi + 0x18]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x130b
call qword [sym.imp.USER32.dll_SendMessageW]
cmp ebx, eax
je 0x140112d65
mov edx, ebx
mov rcx, rdi
call fcn.140113050
mov rcx, qword [rdi + 0x78]
mov r9, r12
mov r8d, 0x201
mov qword [rsp + 0x20], r14
mov rdx, r13
call qword [sym.imp.USER32.dll_CallWindowProcW]
mov eax, 1
jmp 0x140113001
movzx ecx, r14w
mov rax, r14
shr rax, 0x10
mov edx, ecx
movzx eax, ax
xor ebx, ebx
mov dword [rbp - 0x59], ecx
mov r8d, eax
mov rcx, rdi
mov byte [rdi + 0x58], 0
mov dword [rdi + 0x5c], ebx
mov dword [rbp - 0x51], eax
call fcn.140111e40
mov esi, eax
cmp byte [rdi + 0x60], bl
je 0x140112df8
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, qword [rdi + 0x18]
jne 0x140112de1
call qword [sym.imp.USER32.dll_ReleaseCapture]
cmp byte [rdi + 0x61], bl
mov r8d, esi
setne bl
lea edx, [rbx - 0x231]
jmp 0x140112cfc
cmp byte [rdi + 0x61], bl
mov r8d, esi
mov byte [rdi + 0x60], bl
setne bl
lea edx, [rbx - 0x231]
jmp 0x140112cfc
cmp byte [0x1402a4d31], bl
je case.0x14011298f.517
cmp dword [rdi + 0xa0], esi
jne 0x140112eb3
movzx eax, byte [rdi + 0x54]
lea r9, [rdi + 0x80]
mov ebx, dword [rbp - 0x59]
lea rcx, [rdi + 0x94]
mov r8d, dword [rbp - 0x51]
mov edx, ebx
mov byte [rsp + 0x20], al
call fcn.1401123b0
test al, al
je 0x140112eb3
mov r8d, esi
mov edx, 0xfffffdce
mov rcx, rdi
call fcn.1401124c0
mov esi, dword [rbp - 0x51]
or ecx, 0xffffffff
mov dword [rdi + 0xa0], ecx
mov r8d, esi
mov rcx, rdi
mov edx, ebx
call fcn.140111e40
cmp eax, 0xffffffff
je 0x140112caa
mov rcx, qword [rdi + 0x18]
lea r9, [rdi + 0x80]
movsxd r8, eax
mov edx, 0x130a
call qword [sym.imp.USER32.dll_SendMessageW]
movzx eax, byte [rdi + 0x54]
lea r9, [rdi + 0x80]
mov r8d, esi
mov byte [rsp + 0x20], al
mov edx, ebx
lea rcx, [rdi + 0x94]
call fcn.1401123b0
mov byte [rdi + 0x9c], al
mov eax, 1
jmp 0x140113001
or ecx, 0xffffffff
mov dword [rdi + 0xa0], ecx
jmp case.0x14011298f.517
cmp byte [0x1402a4d32], 0
je 0x140112caa
mov rax, r14
movzx edx, r14w
shr rax, 0x10
mov rcx, rdi
movzx r8d, ax
call fcn.140111e40
mov edx, 0xfffffdce
jmp 0x140112cf9
cmp byte [rcx + 0x60], 0
je case.0x14011298f.517
mov byte [rcx + 0x60], 0
mov eax, 1
jmp 0x140113001
cmp r15d, 0x2a3
je 0x140112f7f
cmp r15d, 0x8024
jne case.0x14011298f.517
mov edx, 0xfffffff0
mov rcx, r13
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov r8, rax
test r12, r12
je 0x140112f38
or r8, r14
jmp 0x140112f3e
not r14
and r8, r14
movzx eax, r8b
mov edx, 0xfffffff0
shr al, 7
mov rcx, r13
and al, 1
mov byte [rdi + 0x54], al
mov rax, r8
shr rax, 9
and al, 1
mov byte [rdi + 0x55], al
call qword [sym.imp.USER32.dll_SetWindowLongPtrW]
mov esi, 1
xor edx, edx
mov r8d, esi
mov rcx, r13
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rax, rsi
jmp 0x140113001
cmp byte [rcx + 0x9c], 0
je 0x140112f9b
lea rdx, [rcx + 0x80]
xor r8d, r8d
mov rcx, r13
call qword [sym.imp.USER32.dll_InvalidateRect]
or ecx, 0xffffffff
mov dword [rdi + 0x90], ecx
lea rcx, [rdi + 0x80]
call qword [sym.imp.USER32.dll_SetRectEmpty]
mov rax, qword [rdi + 0x18]
lea r9, [rbp - 0x49]
mov rcx, qword [rdi + 0x10]
xor r8d, r8d
mov qword [rbp - 0x49], rax
mov eax, dword [rdi + 0x90]
mov byte [rdi + 0x9c], 0
lea edx, [r8 + 0x4e]
mov dword [rbp - 0x39], 0xfffffdcc
mov qword [rbp - 0x41], rdi
mov dword [rbp - 0x31], eax
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rdi + 0x78]
mov r9, r12
mov r8d, r15d
mov qword [rsp + 0x20], r14
mov rdx, r13
call qword [sym.imp.USER32.dll_CallWindowProcW]
mov rcx, qword [rbp - 1]
xor rcx, rsp
call fcn.140168660
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret