Function at 0x1800a5b10
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xf0
mov qword [rbp - 0x49], 0xfffffffffffffffe
mov qword [rsp + 0x140], rbx
mov rax, qword [0x1804ca010]
xor rax, rsp
mov qword [rbp + 0x1f], rax
movsxd r12, edx
mov rsi, rcx
mov dword [rsp + 0x40], r12d
xor r13d, r13d
mov qword [rbp - 0x61], r13
mov qword [rbp - 0x59], r13
mov qword [rbp - 0x51], r13
mov qword [rbp - 0x79], r13
mov qword [rbp - 0x71], r13
mov qword [rbp - 0x69], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
lea rdi, [rsi + 0xf0]
mov qword [rsp + 0x48], rdi
test rdi, rdi
je 0x1800a5ba1
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5ba1
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x238]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1800a5c1e
cmp byte [rbx + 0x3c], 0
je 0x1800a5c12
mov dword [rsp + 0x20], 0xffffffff
mov rcx, qword [rsi + 0x1f0]
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
lea rdx, [rbx + 0x10]
call qword [rax + 0x58]
test eax, eax
jne 0x1800a5c12
lea rcx, [rbx + 0x10]
call fcn.180155c00
test al, al
jne 0x1800a5c12
mov rax, qword [rbp - 0x59]
cmp qword [rbp - 0x51], rax
je 0x1800a5c02
lea rdx, [rbx + 0x10]
mov rcx, rax
call fcn.180004aa0
add qword [rbp - 0x59], 0x20
jmp 0x1800a5c12
lea r8, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp - 0x61]
call fcn.180009130
mov rbx, qword [rbx]
cmp rbx, qword [rsi + 0x238]
jne 0x1800a5bb0
test rdi, rdi
je 0x1800a5c36
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5c31
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x48], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rsp + 0x48], rdi
test rdi, rdi
je 0x1800a5c64
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5c64
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x238]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1800a5cd4
cmp byte [rbx + 0x3c], 0
je 0x1800a5cc8
mov dword [rsp + 0x20], 0xffffffff
mov rcx, qword [rsi + 0x1f0]
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
lea rdx, [rbx + 0x10]
call qword [rax + 0x58]
test eax, eax
jne 0x1800a5cc8
mov rax, qword [rbp - 0x71]
cmp qword [rbp - 0x69], rax
je 0x1800a5cb8
lea rdx, [rbx + 0x10]
mov rcx, rax
call fcn.180004aa0
add qword [rbp - 0x71], 0x20
jmp 0x1800a5cc8
lea r8, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp - 0x79]
call fcn.180009130
mov rbx, qword [rbx]
cmp rbx, qword [rsi + 0x238]
jne 0x1800a5c73
test rdi, rdi
je 0x1800a5cec
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5ce7
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x48], r13
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
mov rax, qword [rbp - 0x71]
je 0x1800a636c
cmp qword [rbp - 0x79], rax
je 0x1800a641d
mov rax, qword [rbp - 0x59]
cmp qword [rbp - 0x61], rax
je 0x1800a603b
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r13
mov qword [rsp + 0x38], r13
cmp qword [rsi + 0x1f0], 0
je 0x1800a5dcc
mov dword [rsp + 0x20], r13d
mov rbx, qword [rbp - 0x61]
cmp rbx, qword [rbp - 0x59]
je 0x1800a5dcc
mov rdi, qword [rsp + 0x30]
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [rsi + 0x1f0]
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
mov rdx, rbx
call qword [rax + 0x58]
test eax, eax
jne 0x1800a5daf
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x48], eax
cmp r15, rdi
je 0x1800a5d93
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a5daf
lea r8, [rsp + 0x48]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8ad0
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
add rbx, 0x20
cmp rbx, qword [rbp - 0x59]
jne 0x1800a5d60
cmp r15, rdi
je 0x1800a5dd1
mov dword [rdi], r12d
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a5ded
mov rdi, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8ad0
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
mov rbx, rdi
mov r13, qword [rsp + 0x28]
sub rbx, r13
sar rbx, 2
movzx r9d, byte [rsp + 0x24]
mov r8, rbx
mov rdx, rdi
mov rcx, r13
call fcn.1800a91c0
mov eax, dword [r13]
mov dword [rsp + 0x40], eax
mov ecx, dword [rdi - 4]
mov dword [rsp + 0x48], ecx
cmp rbx, 3
jne 0x1800a5e42
cmp r12d, eax
jne 0x1800a5e42
lea rax, [r13 + 4]
cmp r12d, dword [rax]
jne 0x1800a5e42
cmp rax, rdi
je 0x1800a5e7c
mov rdi, rax
mov qword [rsp + 0x30], rax
jmp 0x1800a5e7c
cmp r13, rdi
je 0x1800a5e7c
mov rax, r13
nop word [rax + rax]
cmp dword [rax], r12d
je 0x1800a5e5e
add rax, 4
cmp rax, rdi
jne 0x1800a5e50
cmp rax, r13
je 0x1800a5e7c
cmp rax, rdi
je 0x1800a5e7c
cmp dword [rax], ecx
je 0x1800a5e7c
add rax, 4
cmp rax, rdi
cmovne rdi, rax
mov qword [rsp + 0x30], rdi
xor edx, edx
mov rcx, rsi
call fcn.1800a0660
xor r12d, r12d
mov qword [rbp - 0x31], r12
mov qword [rbp - 0x29], r12
mov qword [rbp - 0x31], r12
mov ebx, 7
mov qword [rbp - 0x29], rbx
mov word [rbp - 0x41], r12w
mov r14d, dword [r13]
cmp r14d, dword [rdi - 4]
jg 0x1800a5f78
mov r8d, r14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.18009e330
mov rbx, rax
lea rax, [rbp - 0x41]
cmp rax, rbx
je 0x1800a5ef4
lea rcx, [rbp - 0x41]
call fcn.180004df0
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x41], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x31], xmm1
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 7
mov word [rbx], r12w
mov rdx, qword [rbp - 9]
cmp rdx, 8
jb 0x1800a5f34
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a5f2f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800a5fcc
call fcn.180385c70
mov qword [rbp - 0x11], r12
mov qword [rbp - 9], 7
mov word [rbp - 0x21], r12w
cmp qword [rbp - 0x31], 0
je 0x1800a5f67
lea rcx, [rbp - 0x41]
call fcn.180155c00
test al, al
jne 0x1800a5f67
mov r8b, 1
mov edx, r14d
mov rcx, rsi
call fcn.1800a25a0
inc r14d
cmp r14d, dword [rdi - 4]
jle 0x1800a5eb1
mov rbx, qword [rbp - 0x29]
movsxd r9, dword [rsp + 0x48]
movsxd r8, dword [rsp + 0x40]
mov edx, 0x1015
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
nop
cmp rbx, 8
jb 0x1800a5fd8
lea rdx, [rbx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a5fd3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a5fd3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.180385c70
mov qword [rbp - 0x31], r12
mov qword [rbp - 0x29], 7
mov word [rbp - 0x41], r12w
sub r15, r13
sar r15, 2
lea rdx, [r15*4]
mov rax, r13
cmp rdx, 0x1000
jb 0x1800a6020
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a6020
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r13
call fcn.180385c70
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r12
jmp 0x1800a6456
xor edx, edx
mov rcx, rsi
call fcn.1800a0660
mov r8d, r12d
lea rdx, [rbp - 1]
mov rcx, rsi
call fcn.18009e330
nop
lea rcx, [rbp - 1]
call fcn.180155c00
test al, al
je 0x1800a609f
mov r8b, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800a25a0
xor r9d, r9d
mov r8, r12
mov edx, 0x1013
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9, r12
mov r8, r12
mov edx, 0x1015
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1800a6312
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r13
mov qword [rsp + 0x38], r13
cmp qword [rsi + 0x1f0], 0
je 0x1800a614c
mov dword [rsp + 0x20], r13d
mov rbx, qword [rbp - 0x79]
cmp rbx, qword [rbp - 0x71]
je 0x1800a614c
mov rdi, qword [rsp + 0x30]
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rsi + 0x1f0]
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
mov rdx, rbx
call qword [rax + 0x58]
test eax, eax
jne 0x1800a612f
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x48], eax
cmp r15, rdi
je 0x1800a6113
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a612f
lea r8, [rsp + 0x48]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8ad0
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
add rbx, 0x20
cmp rbx, qword [rbp - 0x71]
jne 0x1800a60e0
cmp r15, rdi
je 0x1800a6151
mov dword [rdi], r12d
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a616d
mov rdi, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8ad0
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
mov r8, rdi
mov r12, qword [rsp + 0x28]
sub r8, r12
sar r8, 2
movzx r9d, byte [rsp + 0x24]
mov rdx, rdi
mov rcx, r12
call fcn.1800a91c0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x31], xmm0
movdqa xmm1, xmmword [0x1803e6740]
movdqu xmmword [rbp - 0x31], xmm1
mov word [rbp - 0x41], r13w
mov r14d, dword [r12]
cmp r14d, dword [rdi - 4]
jg 0x1800a626f
mov r8d, r14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.18009e330
mov rbx, rax
lea rax, [rbp - 0x41]
cmp rax, rbx
je 0x1800a61f8
lea rcx, [rbp - 0x41]
call fcn.180004df0
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x41], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x31], xmm1
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], 7
mov word [rbx], r13w
mov rdx, qword [rbp - 9]
cmp rdx, 8
jb 0x1800a6234
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a622f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800a6268
call fcn.180385c70
mov qword [rbp - 0x11], r13
mov qword [rbp - 9], 7
mov word [rbp - 0x21], r13w
lea rcx, [rbp - 0x41]
call fcn.180155c00
test al, al
jne 0x1800a6260
mov r8b, 1
mov edx, r14d
mov rcx, rsi
call fcn.1800a25a0
inc r14d
jmp 0x1800a61ab
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rdx, qword [rbp - 0x29]
cmp rdx, 8
jb 0x1800a62b2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a62ad
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a62ad
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180385c70
movdqa xmm0, xmmword [0x1803e6740]
movdqu xmmword [rbp - 0x31], xmm0
mov word [rbp - 0x41], r13w
sub r15, r12
sar r15, 2
lea rdx, [r15*4]
mov rax, r12
cmp rdx, 0x1000
jb 0x1800a62fc
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a62fc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r12
call fcn.180385c70
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r13
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800a6355
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a6350
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a6350
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180385c70
movdqa xmm0, xmmword [0x1803e6740]
movdqu xmmword [rbp + 0xf], xmm0
mov word [rbp - 1], r13w
jmp 0x1800a6456
cmp qword [rbp - 0x79], rax
je 0x1800a641d
mov rax, qword [rbp - 0x59]
mov rcx, rsi
cmp qword [rbp - 0x61], rax
je 0x1800a6416
mov r8d, r12d
lea rdx, [rbp - 1]
call fcn.18009e330
nop
lea rcx, [rbp - 1]
call fcn.180155c00
movzx ebx, al
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800a63e3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a63de
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a63de
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180385c70
movdqa xmm0, xmmword [0x1803e6740]
movdqu xmmword [rbp + 0xf], xmm0
mov word [rbp - 1], r13w
mov edx, r12d
mov rcx, rsi
test bl, bl
jne 0x1800a640c
call fcn.1800a2740
test al, al
sete r8b
jmp 0x1800a6420
xor r8d, r8d
call fcn.1800a25a0
jmp 0x1800a6440
xor edx, edx
call fcn.1800a0660
mov r8b, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800a25a0
xor r9d, r9d
mov r8, r12
mov edx, 0x1013
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r9, r12
mov r8, r12
mov edx, 0x1015
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
nop
lea rcx, [rbp - 0x79]
call fcn.180004d00
nop
lea rcx, [rbp - 0x61]
call fcn.180004d00
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.180385c10
mov rbx, qword [rsp + 0x140]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret