Function at 0x1400d8380
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov eax, dword [rsp + 0xb0]
mov rdi, rcx
mov ebp, 1
test eax, eax
mov r10d, ebp
mov ebx, r9d
cmovne r10d, eax
mov esi, r8d
mov r14, rdx
mov dword [rcx + 0x98], r10d
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x1400d83e5
call fcn.1400f02e0
mov r8, r14
mov rcx, rdi
mov rdx, rax
call fcn.1400d81a0
xor r13d, r13d
mov r12d, r13d
mov r15d, r13d
mov dword [rsp + 0xb0], r13d
test r14, r14
je 0x1400d845a
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x1400d845a
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0xd0]
xor r8d, r8d
xor edx, edx
mov rcx, r14
mov r12d, eax
call fcn.1400bbe70
bt eax, 0x19
jae 0x1400d842f
mov dword [rsp + 0xb0], ebp
jmp 0x1400d845a
test r12d, r12d
je 0x1400d845d
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400bbe70
bt eax, 0xc
jae 0x1400d845a
call fcn.1400f2f50
test eax, eax
cmove r15d, ebp
mov dword [rsp + 0xb0], r15d
test r12d, r12d
sete r13b
test r13d, r13d
jne 0x1400d8488
test r14, r14
je 0x1400d847c
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400bbe70
test al, 4
jne 0x1400d8485
cmp byte [rdi + 0xa8], 0
je 0x1400d8488
mov r13d, ebp
or r15d, 0xffffffff
xor r8d, r8d
mov dword [rdi + 0x90], esi
test ebx, ebx
je 0x1400d84c7
mov eax, dword [rdi + 0x60]
test eax, eax
jns 0x1400d84a5
mov edx, r15d
jmp 0x1400d84ad
test eax, eax
mov edx, r8d
setg dl
test ebx, ebx
jns 0x1400d84b6
mov ecx, r15d
jmp 0x1400d84be
test ebx, ebx
mov ecx, r8d
setg cl
cmp edx, ecx
cmovne eax, r8d
mov dword [rdi + 0x60], eax
mov esi, dword [rdi + 0x10]
cmp esi, ebp
jne 0x1400d84da
cmp qword [rdi + 0x48], 0
jne 0x1400d84eb
mov esi, r8d
jmp 0x1400d84eb
cmp esi, 3
jne 0x1400d84eb
cmp qword [rdi + 0x48], 0
mov esi, r8d
setne sil
test byte [rdi + 0x3c], 8
jne 0x1400d8521
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400d8521
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x1400d8521
lea rcx, [0x140295650]
call fcn.140097dd0
test eax, eax
je 0x1400d8523
xor esi, esi
mov ecx, dword [rdi + 0x3c]
mov eax, 4
test cl, 0x40
cmovne esi, eax
mov eax, dword [rdi + 0x7c]
test bpl, al
je 0x1400d8546
test r12d, r12d
jne 0x1400d8546
mov esi, eax
shr esi, 0xa
and esi, 4
bt ecx, 0x1a
cmovb esi, ebp
cmp byte [rdi + 0xa9], 0
je 0x1400d8560
cmp dword [rsp + 0xb8], 6
je 0x1400d8573
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400bc150
bt eax, 0xf
jae 0x1400d8578
mov esi, 4
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400bbe70
bt eax, 0xf
jb 0x1400d85aa
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400bbe70
bt eax, 0x12
jae 0x1400d85af
xor ecx, ecx
call fcn.1400f1590
cmp eax, 0xa
jne 0x1400d85af
mov esi, 4
test ebx, ebx
je 0x1400d863a
mov r8d, dword [rdi + 0x98]
cmp r8d, ebp
je 0x1400d863a
mov eax, ebx
cdq
xor eax, edx
sub eax, edx
cmp eax, r8d
jge 0x1400d8618
add dword [rdi + 0x9c], ebx
mov ecx, dword [rdi + 0x9c]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, r8d
jl 0x1400d86b3
test r12d, r12d
je 0x1400d85f4
mov ebx, ecx
jmp 0x1400d863a
test ebx, ebx
jns 0x1400d8606
mov eax, r15d
imul eax, ecx
cdq
idiv r8d
mov ebx, eax
jmp 0x1400d863a
xor eax, eax
test ebx, ebx
setg al
imul eax, ecx
cdq
idiv r8d
mov ebx, eax
jmp 0x1400d863a
test esi, esi
jne 0x1400d8622
test byte [rdi + 0x3c], 2
jne 0x1400d863a
xor ecx, ecx
lea eax, [r8 - 1]
cmp dword [rdi + 0x9c], eax
mov eax, ebx
setge cl
cdq
idiv r8d
lea ebx, [rax + rcx]
test r13d, r13d
mov r13d, dword [rsp + 0xb8]
mov dword [rsp + 0x90], ebx
je 0x1400d865d
mov r8d, r13d
mov edx, ebx
mov rcx, rdi
call fcn.1400d9bf0
mov ebx, eax
add dword [rdi + 0x60], ebx
cmp dword [rsp + 0xa8], 0
mov r9d, dword [rdi + 0x60]
je 0x1400d86bd
mov eax, dword [rdi + 0x64]
test eax, eax
je 0x1400d86bd
cmp dword [rsp + 0xc0], 0
je 0x1400d86b3
cdq
mov r8d, eax
mov eax, r9d
xor r8d, edx
sub r8d, edx
cdq
xor eax, edx
lea ecx, [r8 + r8]
sub eax, edx
cmp eax, ecx
jle 0x1400d86b3
test r9d, r9d
js 0x1400d86a8
xor r15d, r15d
test r9d, r9d
setg r15b
imul r8d, r15d
add r8d, r8d
mov dword [rdi + 0x60], r8d
mov eax, 2
jmp 0x1400d88b2
mov eax, dword [rsp + 0xd8]
mov r8d, dword [rsp + 0xd0]
mov r9d, 2
mov rdx, r14
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.1400d8f60
cmp eax, ebp
jne 0x1400d872b
cmp qword [r14 + 0x38], 0
jne 0x1400d8705
lea rdx, str.f:checkpoints_tpdrv_buildersuperman1_syntpenhCZone.h
lea rcx, str.m_pManagedPointingDevice
mov r8d, 0x1a9
call fcn.1400eb260
mov rbx, qword [r14 + 0x38]
mov rcx, r14
call fcn.1400bc2d0
mov rcx, rbx
mov edx, eax
call fcn.14002fc70
test eax, eax
je 0x1400d8736
mov dword [rdi + 0x60], 0
jmp 0x1400d88b0
test eax, 0xfffffffd
je 0x1400d88b2
cmp dword [rdi + 0x3c], 0
jne 0x1400d8767
cmp dword [rdi + 0x8c], 0
je 0x1400d8767
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400bbe70
xor r15d, r15d
bt eax, 0xe
jae 0x1400d876a
cmp esi, 4
mov r12d, r15d
cmovne esi, r15d
jmp 0x1400d876a
xor r15d, r15d
mov eax, r15d
test r12d, r12d
jne 0x1400d877b
test dword [rdi + 0x3c], 0x200000
je 0x1400d878d
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400bc150
and eax, 0x10000
mov ebx, r15d
test esi, esi
je 0x1400d8837
dec esi
je 0x1400d87fc
dec esi
je 0x1400d87de
sub esi, 2
je 0x1400d87c2
dec esi
jne 0x1400d888e
mov r8, qword [rdi + 8]
movzx edx, bpl
mov rcx, rdi
call fcn.1400da4b0
jmp 0x1400d8874
mov r9d, r12d
movzx r8d, bpl
mov rdx, r14
mov rcx, rdi
mov dword [rsp + 0x20], r13d
call fcn.1400da740
jmp 0x1400d8874
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x20]
mov r8, qword [rdi + 8]
movzx edx, bpl
mov r9d, eax
mov rcx, rdi
call fcn.1400da250
jmp 0x1400d8874
test dword [rdi + 0x3c], 0x400000
mov rax, qword [rsp + 0xc8]
mov r8, qword [rdi + 0x40]
mov dword [rsp + 0x28], ebp
movzx edx, bpl
mov rcx, rdi
mov qword [rsp + 0x20], rax
je 0x1400d882c
mov r9, qword [rdi + 8]
call fcn.1400da0d0
jmp 0x1400d8874
mov r9, qword [rdi + 0x48]
call fcn.1400da0d0
jmp 0x1400d8874
mov rcx, qword [rsp + 0xc8]
mov r8d, dword [rsp + 0xa0]
mov rdx, qword [rdi + 8]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x38], r13d
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rcx
mov rcx, rdi
mov r9d, ebp
mov dword [rsp + 0x20], r12d
call fcn.1400d9d50
mov ebx, eax
test eax, eax
jle 0x1400d888e
mov eax, dword [rsp + 0x90]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebp
jg 0x1400d888e
mov dword [rdi + 0x60], r15d
mov r8d, 3
mov rdx, r14
mov rcx, rdi
mov dword [rdi + 0x64], ebx
call fcn.1400da6c0
test ebx, ebx
jg 0x1400d88b0
mov ebp, r15d
sets bpl
add ebp, 2
mov eax, ebp
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret