Function at 0x1400a2b40
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x30
cmp dword [rcx + 0x368], 0
mov esi, edx
mov rdi, rcx
jle case.0x1400a2bff.37
cmp qword [rcx + 0x258], 0
lea rbx, [rcx + 0x388]
je 0x1400a2b84
mov r14d, dword [rcx + 0x3b4]
jmp 0x1400a2bd5
call fcn.1400a2700
cmp dword [rbx], 0
mov r14d, eax
mov r15, rbx
je 0x1400a2bd8
cmp dword [rdi + 0x3a4], 0
jl 0x1400a2bd8
cmp dword [rdi + 0x3a8], 0
jl 0x1400a2bd8
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jb 0x1400a2bce
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae 0x1400a2bd8
mov r14d, dword [rdi + 0x3a8]
mov r15, rbx
lea eax, [rsi - 0x21]
cmp eax, 0x20
ja case.0x1400a2bff.37
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0xa2fb0]
mov ecx, dword [rdx + rax*4 + 0xa2f90]
add rcx, rdx
xor ebp, ebp
jmp rcx
cmp r14d, 0xffffffff
lea eax, [r14 + 1]
mov ecx, ebp
cmovne ecx, eax
mov eax, dword [rdi + 0x368]
cmp dword [rdi + 0x3b8], ebp
jne 0x1400a2c29
lea esi, [rax - 1]
cmp esi, ecx
cmovge esi, ecx
jmp 0x1400a2cac
cmp eax, ecx
mov esi, ecx
cmovle esi, ebp
jmp 0x1400a2cac
cmp r14d, 0xffffffff
lea eax, [r14 - 1]
mov ecx, ebp
cmovne ecx, eax
mov esi, ecx
cmp dword [rdi + 0x3b8], ebp
jne 0x1400a2c4d
test ecx, ecx
jmp 0x1400a2ca9
test ecx, ecx
jns 0x1400a2cac
mov esi, dword [rdi + 0x368]
dec esi
jmp 0x1400a2cac
mov esi, ebp
jmp 0x1400a2cb4
cmp r14d, 0xffffffff
jne 0x1400a2c76
mov esi, dword [rdi + 0x368]
mov eax, ebp
dec esi
cmp esi, eax
cmovge esi, eax
jmp 0x1400a2cac
mov rcx, rdi
call fcn.1400a2a40
mov esi, dword [rdi + 0x368]
add eax, r14d
dec esi
cmp esi, eax
cmovge esi, eax
jmp 0x1400a2cac
cmp r14d, 0xffffffff
jne 0x1400a2c9a
mov esi, ebp
jmp 0x1400a2ca7
mov rcx, rdi
call fcn.1400a2a40
mov esi, r14d
sub esi, eax
test esi, esi
cmovs esi, ebp
test esi, esi
js case.0x1400a2bff.37
mov eax, dword [r15]
test eax, eax
jne 0x1400a2cc4
cmp esi, r14d
je case.0x1400a2bff.37
cmp qword [rdi + 0x258], 0
je 0x1400a2d94
test eax, eax
je 0x1400a2d4b
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
movsx edx, ax
bt edx, 0x10
jb 0x1400a2cfe
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae 0x1400a2d4b
mov ebx, dword [rdi + 0x3a4]
mov rcx, rdi
test ebx, ebx
jns 0x1400a2d2d
mov edx, dword [rdi + 0x3b4]
mov r8d, edx
mov dword [rdi + 0x3a4], edx
mov dword [rdi + 0x3a8], edx
call fcn.1400a29c0
mov esi, dword [rdi + 0x3b4]
jmp 0x1400a2d4b
call fcn.1400a28e0
mov r8d, esi
mov edx, ebx
mov rcx, rdi
call fcn.1400a29c0
mov dword [rdi + 0x3a4], ebx
mov dword [rdi + 0x3a8], esi
mov dword [rdi + 0x3b0], esi
test esi, esi
js 0x1400a2e16
cmp esi, dword [rdi + 0x368]
jge 0x1400a2e16
mov ebx, dword [rdi + 0x168]
mov edx, esi
mov rcx, rdi
mov dword [rdi + 0x168], ebp
call fcn.1400a2aa0
mov rcx, rdi
mov dword [rdi + 0x168], ebx
mov dword [rdi + 0x3b4], esi
call fcn.1400a2240
jmp 0x1400a2e16
test eax, eax
je 0x1400a2dec
cmp dword [rdi + 0x3a4], 0
jl 0x1400a2dec
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jb 0x1400a2dc9
mov ecx, 0xa1
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae 0x1400a2dec
mov ebx, dword [rdi + 0x3a4]
mov rcx, rdi
call fcn.1400a28e0
mov r8d, esi
mov edx, ebx
mov rcx, rdi
call fcn.1400a29c0
mov dword [rdi + 0x3a4], ebx
jmp 0x1400a2e0a
mov rcx, rdi
call fcn.1400a28e0
mov r8d, 1
mov edx, esi
mov rcx, rdi
call fcn.1400a21d0
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 [0x140306144]
mov rcx, rdi
call fcn.1400982a0
mov rcx, qword [rdi + 0x398]
test rcx, rcx
je 0x1400a2e4c
mov r8, qword [rcx]
mov edx, dword [rdi + 0x188]
mov rax, qword [r8]
call qword [case.0x140038716.0]
mov edx, esi
mov rcx, rdi
call fcn.1400a2aa0
mov eax, 1
jmp 0x1400a2f6b
cmp dword [r15], ebp
je case.0x1400a2bff.37
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
bt ecx, 0x10
jae case.0x1400a2bff.37
movsxd r8, dword [rdi + 0x368]
test r8d, r8d
jle 0x1400a2eb7
nop dword [rax]
cmp rbp, qword [rdi + 0x368]
jae 0x1400a2f84
mov rax, qword [rdi + 0x360]
mov rcx, qword [rax + rbp*8]
inc rbp
mov dword [rcx + 0x20], 1
cmp rbp, r8
jl 0x1400a2e90
xor edx, edx
mov dword [rdi + 0x3a0], r8d
mov rcx, rdi
call fcn.1400a0ef0
mov rcx, qword [rdi + 0x1d0]
test rcx, rcx
je 0x1400a2ee0
lea rdx, [rdi + 0xe8]
call fcn.1400c3a20
mov rbx, qword [rdi + 0x1d0]
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub rax, qword [rbx + 0x6d8]
cmp rax, 0x1e
jl 0x1400a2f02
mov rcx, rbx
call fcn.1400c5000
mov rbx, qword [rdi + 0x1d0]
xor r9d, r9d
mov esi, dword [rdi + 0x188]
mov ebp, dword [0x140306144]
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 0x1400a2f4b
mov rax, qword [rcx]
xor r9d, r9d
mov r8d, esi
mov edx, ebp
mov rax, qword [rax + 0x10]
call qword [case.0x140038716.0]
mov rcx, qword [rdi + 0x398]
test rcx, rcx
je case.0x1400a2bff.37
mov rax, qword [rcx]
mov edx, dword [rdi + 0x188]
mov rax, qword [rax]
call qword [case.0x140038716.0]
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret
mov ecx, 0x80070057
call fcn.140019320
int3