Function at 0x1400a20d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
mov rbp, rsp
sub rsp, 0x20
cmp dword [0x1400c77b0], 0
je 0x1400a2398
cmp byte [0x1400c77f6], 0
jne 0x1400a2398
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, qword [0x1400c77b8]
jne 0x1400a2382
mov ebx, 1
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x1400a2382
mov rax, qword [rbp + 0x18]
mov edx, dword [0x1400c77e1]
mov r8d, dword [0x1400c77fb]
mov r9d, dword [0x1400c77f7]
mov qword [rbp + 0x10], rax
test edx, edx
jne 0x1400a2180
mov r10d, eax
shr rax, 0x20
sub eax, r8d
sub r10d, r9d
jne 0x1400a2162
test eax, eax
je 0x1400a2180
cdq
mov ecx, eax
mov eax, r10d
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
xor edx, edx
cmp eax, ecx
setle dl
add edx, ebx
mov dword [0x1400c77e1], edx
sub edx, ebx
je 0x1400a2190
cmp edx, ebx
mov edx, dword [rbp + 0x14]
jne 0x1400a2193
mov ecx, r9d
jmp 0x1400a2196
mov edx, r8d
mov ecx, dword [rbp + 0x10]
add ecx, dword [0x1400c77c0]
add edx, dword [0x1400c77c4]
cmp byte [0x1400c77e5], 0
mov dword [rbp + 0x10], ecx
mov dword [rbp + 0x14], edx
mov rax, qword [rbp + 0x10]
mov qword [rbp + 0x18], rax
jne 0x1400a21fa
test byte [0x1400c77b4], 4
je 0x1400a22d5
mov edx, dword [0x1400c77a0]
sub ecx, r9d
shr rax, 0x20
sub eax, r8d
cmp ecx, edx
jg 0x1400a21f4
neg edx
cmp ecx, edx
jl 0x1400a21f4
mov ecx, dword [0x1400c77a4]
cmp eax, ecx
jg 0x1400a21f4
neg ecx
cmp eax, ecx
jge 0x1400a22eb
mov byte [0x1400c77e5], bl
mov ecx, ebx
call fcn.1400a25a4
mov r8d, dword [0x1400c77b4]
mov r9d, 0x200
mov rcx, qword [rbp + 0x18]
test r8b, 0x20
je 0x1400a2253
test r9d, r8d
je 0x1400a2319
cmp byte [0x1400c7828], 0
je 0x1400a22f7
cmp ecx, dword [0x1400c77d0]
jl 0x1400a2327
mov eax, dword [0x1400c77ff]
mov dword [0x1400c77c8], eax
mov byte [0x1400c7828], 0
mov dword [0x1400c77d0], ecx
test r8b, 0x40
je 0x1400a2297
mov edx, dword [rbp + 0x1c]
test r9d, r8d
je 0x1400a2352
cmp byte [0x1400c7829], 0
je 0x1400a2332
cmp edx, dword [0x1400c77d4]
jl 0x1400a2360
mov eax, dword [0x1400c7803]
mov dword [0x1400c77cc], eax
mov byte [0x1400c7829], 0
mov dword [0x1400c77d4], edx
mov rax, qword [0x1400c77a8]
mov rax, qword [rax + 8]
test rax, rax
je 0x1400a22b7
xor edx, edx
lea rcx, [rbp + 0x18]
call qword [0x1400b1958]
mov rcx, qword [rbp + 0x18]
cmp dword [0x1400c77b0], 0
je 0x1400a236b
call fcn.1400a2470
xor ecx, ecx
call fcn.1400a25a4
jmp 0x1400a2398
cmp ecx, r9d
jne 0x1400a21f4
shr rax, 0x20
cmp eax, r8d
jne 0x1400a21f4
mov byte [0x1400c77e5], 0
jmp 0x1400a2398
cmp ecx, dword [0x1400c77c8]
jg 0x1400a224d
mov eax, dword [0x1400c7807]
mov dl, bl
mov dword [0x1400c77d0], eax
mov byte [0x1400c7828], bl
jmp 0x1400a231f
mov dl, byte [0x1400c7828]
test dl, dl
je 0x1400a224d
mov dword [0x1400c77c8], ecx
jmp 0x1400a2253
cmp edx, dword [0x1400c77cc]
jg 0x1400a2291
mov eax, dword [0x1400c780b]
mov dword [0x1400c77d4], eax
mov byte [0x1400c7829], bl
jmp 0x1400a2358
mov bl, byte [0x1400c7829]
test bl, bl
je 0x1400a2291
mov dword [0x1400c77cc], edx
jmp 0x1400a2297
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov rcx, qword [0x1400c77b8]
xor edx, edx
call qword [sym.imp.USER32.dll_KillTimer]
jmp 0x1400a2398
and dword [rbp + 0x10], 0
cmp dword [0x1400c77b0], 0
je 0x1400a2398
lea rcx, [rbp + 0x10]
call fcn.1400a23a4
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rbp
ret