Function at 0x1800a5c10
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 [0x1804cd010]
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 0x1800a5ca1
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5ca1
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x238]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1800a5d1e
cmp byte [rbx + 0x3c], 0
je 0x1800a5d12
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 0x1800a5d12
lea rcx, [rbx + 0x10]
call fcn.1801561c0
test al, al
jne 0x1800a5d12
mov rax, qword [rbp - 0x59]
cmp qword [rbp - 0x51], rax
je 0x1800a5d02
lea rdx, [rbx + 0x10]
mov rcx, rax
call fcn.180004ad0
add qword [rbp - 0x59], 0x20
jmp 0x1800a5d12
lea r8, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp - 0x61]
call fcn.180009160
mov rbx, qword [rbx]
cmp rbx, qword [rsi + 0x238]
jne 0x1800a5cb0
test rdi, rdi
je 0x1800a5d36
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5d31
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 0x1800a5d64
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5d64
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x238]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1800a5dd4
cmp byte [rbx + 0x3c], 0
je 0x1800a5dc8
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 0x1800a5dc8
mov rax, qword [rbp - 0x71]
cmp qword [rbp - 0x69], rax
je 0x1800a5db8
lea rdx, [rbx + 0x10]
mov rcx, rax
call fcn.180004ad0
add qword [rbp - 0x71], 0x20
jmp 0x1800a5dc8
lea r8, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp - 0x79]
call fcn.180009160
mov rbx, qword [rbx]
cmp rbx, qword [rsi + 0x238]
jne 0x1800a5d73
test rdi, rdi
je 0x1800a5dec
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5de7
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 0x1800a646c
cmp qword [rbp - 0x79], rax
je 0x1800a651d
mov rax, qword [rbp - 0x59]
cmp qword [rbp - 0x61], rax
je 0x1800a613b
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r13
mov qword [rsp + 0x38], r13
cmp qword [rsi + 0x1f0], 0
je 0x1800a5ecc
mov dword [rsp + 0x20], r13d
mov rbx, qword [rbp - 0x61]
cmp rbx, qword [rbp - 0x59]
je 0x1800a5ecc
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 0x1800a5eaf
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x48], eax
cmp r15, rdi
je 0x1800a5e93
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a5eaf
lea r8, [rsp + 0x48]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8bd0
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
add rbx, 0x20
cmp rbx, qword [rbp - 0x59]
jne 0x1800a5e60
cmp r15, rdi
je 0x1800a5ed1
mov dword [rdi], r12d
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a5eed
mov rdi, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8bd0
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.1800a92c0
mov eax, dword [r13]
mov dword [rsp + 0x40], eax
mov ecx, dword [rdi - 4]
mov dword [rsp + 0x48], ecx
cmp rbx, 3
jne 0x1800a5f42
cmp r12d, eax
jne 0x1800a5f42
lea rax, [r13 + 4]
cmp r12d, dword [rax]
jne 0x1800a5f42
cmp rax, rdi
je 0x1800a5f7c
mov rdi, rax
mov qword [rsp + 0x30], rax
jmp 0x1800a5f7c
cmp r13, rdi
je 0x1800a5f7c
mov rax, r13
nop word [rax + rax]
cmp dword [rax], r12d
je 0x1800a5f5e
add rax, 4
cmp rax, rdi
jne 0x1800a5f50
cmp rax, r13
je 0x1800a5f7c
cmp rax, rdi
je 0x1800a5f7c
cmp dword [rax], ecx
je 0x1800a5f7c
add rax, 4
cmp rax, rdi
cmovne rdi, rax
mov qword [rsp + 0x30], rdi
xor edx, edx
mov rcx, rsi
call fcn.1800a0760
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 0x1800a6078
mov r8d, r14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.18009e430
mov rbx, rax
lea rax, [rbp - 0x41]
cmp rax, rbx
je 0x1800a5ff4
lea rcx, [rbp - 0x41]
call fcn.180004e20
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 0x1800a6034
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a602f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800a60cc
call fcn.180388460
mov qword [rbp - 0x11], r12
mov qword [rbp - 9], 7
mov word [rbp - 0x21], r12w
cmp qword [rbp - 0x31], 0
je 0x1800a6067
lea rcx, [rbp - 0x41]
call fcn.1801561c0
test al, al
jne 0x1800a6067
mov r8b, 1
mov edx, r14d
mov rcx, rsi
call fcn.1800a26a0
inc r14d
cmp r14d, dword [rdi - 4]
jle 0x1800a5fb1
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 0x1800a60d8
lea rdx, [rbx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a60d3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a60d3
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.180388460
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 0x1800a6120
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a6120
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r13
call fcn.180388460
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r12
jmp 0x1800a6556
xor edx, edx
mov rcx, rsi
call fcn.1800a0760
mov r8d, r12d
lea rdx, [rbp - 1]
mov rcx, rsi
call fcn.18009e430
nop
lea rcx, [rbp - 1]
call fcn.1801561c0
test al, al
je 0x1800a619f
mov r8b, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800a26a0
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 0x1800a6412
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r13
mov qword [rsp + 0x38], r13
cmp qword [rsi + 0x1f0], 0
je 0x1800a624c
mov dword [rsp + 0x20], r13d
mov rbx, qword [rbp - 0x79]
cmp rbx, qword [rbp - 0x71]
je 0x1800a624c
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 0x1800a622f
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x48], eax
cmp r15, rdi
je 0x1800a6213
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a622f
lea r8, [rsp + 0x48]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8bd0
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
add rbx, 0x20
cmp rbx, qword [rbp - 0x71]
jne 0x1800a61e0
cmp r15, rdi
je 0x1800a6251
mov dword [rdi], r12d
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a626d
mov rdi, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8bd0
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.1800a92c0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x31], xmm0
movdqa xmm1, xmmword [0x1803e8770]
movdqu xmmword [rbp - 0x31], xmm1
mov word [rbp - 0x41], r13w
mov r14d, dword [r12]
cmp r14d, dword [rdi - 4]
jg 0x1800a636f
mov r8d, r14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.18009e430
mov rbx, rax
lea rax, [rbp - 0x41]
cmp rax, rbx
je 0x1800a62f8
lea rcx, [rbp - 0x41]
call fcn.180004e20
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 0x1800a6334
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a632f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800a6368
call fcn.180388460
mov qword [rbp - 0x11], r13
mov qword [rbp - 9], 7
mov word [rbp - 0x21], r13w
lea rcx, [rbp - 0x41]
call fcn.1801561c0
test al, al
jne 0x1800a6360
mov r8b, 1
mov edx, r14d
mov rcx, rsi
call fcn.1800a26a0
inc r14d
jmp 0x1800a62ab
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 0x1800a63b2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a63ad
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a63ad
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180388460
movdqa xmm0, xmmword [0x1803e8770]
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 0x1800a63fc
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a63fc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r12
call fcn.180388460
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r13
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800a6455
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a6450
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a6450
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180388460
movdqa xmm0, xmmword [0x1803e8770]
movdqu xmmword [rbp + 0xf], xmm0
mov word [rbp - 1], r13w
jmp 0x1800a6556
cmp qword [rbp - 0x79], rax
je 0x1800a651d
mov rax, qword [rbp - 0x59]
mov rcx, rsi
cmp qword [rbp - 0x61], rax
je 0x1800a6516
mov r8d, r12d
lea rdx, [rbp - 1]
call fcn.18009e430
nop
lea rcx, [rbp - 1]
call fcn.1801561c0
movzx ebx, al
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800a64e3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a64de
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a64de
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180388460
movdqa xmm0, xmmword [0x1803e8770]
movdqu xmmword [rbp + 0xf], xmm0
mov word [rbp - 1], r13w
mov edx, r12d
mov rcx, rsi
test bl, bl
jne 0x1800a650c
call fcn.1800a2840
test al, al
sete r8b
jmp 0x1800a6520
xor r8d, r8d
call fcn.1800a26a0
jmp 0x1800a6540
xor edx, edx
call fcn.1800a0760
mov r8b, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800a26a0
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.180004d30
nop
lea rcx, [rbp - 0x61]
call fcn.180004d30
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.180388400
mov rbx, qword [rsp + 0x140]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret