Function at 0x1400a4ee0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x30
cmp dword [rcx + 0x368], 0
mov ebp, edx
mov rdi, rcx
jle case.0x1400a4faf.37
cmp qword [rcx + 0x258], 0
je 0x1400a4f25
mov ebx, dword [rcx + 0x3b4]
lea r14, [rcx + 0x388]
jmp 0x1400a4f88
mov ebx, dword [rcx + 0x3b0]
test ebx, ebx
jns 0x1400a4f36
call fcn.1400a4ab0
mov ebx, eax
lea rsi, [rdi + 0x388]
cmp dword [rsi], 0
mov r14, rsi
je 0x1400a4f88
cmp dword [rdi + 0x3a4], 0
jl 0x1400a4f88
cmp dword [rdi + 0x3a8], 0
jl 0x1400a4f88
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jb 0x1400a4f7f
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae 0x1400a4f88
mov ebx, dword [rdi + 0x3a8]
mov r14, rsi
lea eax, [rbp - 0x21]
cmp eax, 0x20
ja case.0x1400a4faf.37
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0xa5354]
mov ecx, dword [rdx + rax*4 + 0xa5334]
add rcx, rdx
xor ebp, ebp
jmp rcx
cmp ebx, 0xffffffff
lea eax, [rbx + 1]
mov ecx, ebp
cmovne ecx, eax
mov eax, dword [rdi + 0x368]
cmp dword [rdi + 0x3b8], ebp
jne 0x1400a4fd4
lea esi, [rax - 1]
cmp esi, ecx
cmovge esi, ecx
jmp 0x1400a5051
cmp eax, ecx
mov esi, ecx
cmovle esi, ebp
jmp 0x1400a5051
cmp ebx, 0xffffffff
lea eax, [rbx - 1]
mov ecx, ebp
cmovne ecx, eax
mov esi, ecx
cmp dword [rdi + 0x3b8], ebp
jne 0x1400a4ff6
test ecx, ecx
jmp 0x1400a504e
test ecx, ecx
jns 0x1400a5051
mov esi, dword [rdi + 0x368]
dec esi
jmp 0x1400a5051
mov esi, ebp
jmp 0x1400a5059
cmp ebx, 0xffffffff
jne 0x1400a501e
mov esi, dword [rdi + 0x368]
mov eax, ebp
dec esi
cmp esi, eax
cmovge esi, eax
jmp 0x1400a5051
mov rcx, rdi
call fcn.1400a4de0
mov esi, dword [rdi + 0x368]
add eax, ebx
dec esi
cmp esi, eax
cmovge esi, eax
jmp 0x1400a5051
cmp ebx, 0xffffffff
jne 0x1400a5040
mov esi, ebp
jmp 0x1400a504c
mov rcx, rdi
call fcn.1400a4de0
mov esi, ebx
sub esi, eax
test esi, esi
cmovs esi, ebp
test esi, esi
js case.0x1400a4faf.37
mov eax, dword [r14]
test eax, eax
jne 0x1400a5068
cmp esi, ebx
je case.0x1400a4faf.37
cmp qword [rdi + 0x258], rbp
je 0x1400a5137
test eax, eax
je 0x1400a50ee
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
bt edx, 0x10
jb 0x1400a50a1
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae 0x1400a50ee
mov ebx, dword [rdi + 0x3a4]
mov rcx, rdi
test ebx, ebx
jns 0x1400a50d0
mov edx, dword [rdi + 0x3b4]
mov r8d, edx
mov dword [rdi + 0x3a4], edx
mov dword [rdi + 0x3a8], edx
call fcn.1400a4d60
mov esi, dword [rdi + 0x3b4]
jmp 0x1400a50ee
call fcn.1400a4c80
mov r8d, esi
mov edx, ebx
mov rcx, rdi
call fcn.1400a4d60
mov dword [rdi + 0x3a4], ebx
mov dword [rdi + 0x3a8], esi
mov dword [rdi + 0x3b0], esi
test esi, esi
js 0x1400a51b8
cmp esi, dword [rdi + 0x368]
jge 0x1400a51b8
mov ebx, dword [rdi + 0x168]
mov edx, esi
mov rcx, rdi
mov dword [rdi + 0x168], ebp
call fcn.1400a4e40
mov rcx, rdi
mov dword [rdi + 0x168], ebx
mov dword [rdi + 0x3b4], esi
call fcn.1400a45f0
jmp 0x1400a51b8
test eax, eax
je 0x1400a518e
cmp dword [rdi + 0x3a4], ebp
jl 0x1400a518e
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jb 0x1400a516b
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae 0x1400a518e
mov ebx, dword [rdi + 0x3a4]
mov rcx, rdi
call fcn.1400a4c80
mov r8d, esi
mov edx, ebx
mov rcx, rdi
call fcn.1400a4d60
mov dword [rdi + 0x3a4], ebx
jmp 0x1400a51ac
mov rcx, rdi
call fcn.1400a4c80
mov r8d, 1
mov edx, esi
mov rcx, rdi
call fcn.1400a4580
mov dword [rdi + 0x3a4], esi
mov dword [rdi + 0x3b0], esi
mov dword [rdi + 0x3a8], esi
mov r8d, dword [rdi + 0x188]
xor r9d, r9d
mov edx, dword [0x14030c244]
mov rcx, rdi
call fcn.14009a620
mov rcx, qword [rdi + 0x398]
test rcx, rcx
je 0x1400a51ee
mov r8, qword [rcx]
mov edx, dword [rdi + 0x188]
mov rax, qword [r8]
call qword [case.0x140038ca6.0]
mov edx, esi
mov rcx, rdi
call fcn.1400a4e40
mov eax, 1
jmp 0x1400a530b
cmp dword [r14], ebp
je case.0x1400a4faf.37
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae case.0x1400a4faf.37
movsxd r8, dword [rdi + 0x368]
test r8d, r8d
jle 0x1400a5257
nop
cmp rbp, qword [rdi + 0x368]
jae 0x1400a5326
mov rax, qword [rdi + 0x360]
mov rcx, qword [rax + rbp*8]
inc rbp
mov dword [rcx + 0x20], 1
cmp rbp, r8
jl 0x1400a5230
xor edx, edx
mov dword [rdi + 0x3a0], r8d
mov rcx, rdi
call fcn.1400a3280
mov rcx, qword [rdi + 0x1d0]
test rcx, rcx
je 0x1400a5280
lea rdx, [rdi + 0xe8]
call fcn.1400c5e10
mov rbx, qword [rdi + 0x1d0]
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [rbx + 0x6d8]
cmp rax, 0x1e
jl 0x1400a52a2
mov rcx, rbx
call fcn.1400c7400
mov rbx, qword [rdi + 0x1d0]
xor r9d, r9d
mov esi, dword [rdi + 0x188]
mov ebp, dword [0x14030c244]
mov r8d, esi
mov edx, ebp
mov rcx, qword [rbx + 0x428]
call qword [sym.imp.USER32.dll_PostMessageW]
mov rcx, qword [rbx + 0x6a0]
test rcx, rcx
je 0x1400a52eb
mov rax, qword [rcx]
xor r9d, r9d
mov r8d, esi
mov edx, ebp
mov rax, qword [rax + 0x10]
call qword [case.0x140038ca6.0]
mov rcx, qword [rdi + 0x398]
test rcx, rcx
je case.0x1400a4faf.37
mov rax, qword [rcx]
mov edx, dword [rdi + 0x188]
mov rax, qword [rax]
call qword [case.0x140038ca6.0]
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret
mov ecx, 0x80070057
call fcn.140019300
int3