Function at 0x1800a8390
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 [0x1804e0010]
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 0x1800a8421
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a8421
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x238]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1800a849e
cmp byte [rbx + 0x3c], 0
je 0x1800a8492
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 0x1800a8492
lea rcx, [rbx + 0x10]
call fcn.18015b200
test al, al
jne 0x1800a8492
mov rax, qword [rbp - 0x59]
cmp qword [rbp - 0x51], rax
je 0x1800a8482
lea rdx, [rbx + 0x10]
mov rcx, rax
call fcn.180005900
add qword [rbp - 0x59], 0x20
jmp 0x1800a8492
lea r8, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp - 0x61]
call fcn.18000a0d0
mov rbx, qword [rbx]
cmp rbx, qword [rsi + 0x238]
jne 0x1800a8430
test rdi, rdi
je 0x1800a84b6
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a84b1
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 0x1800a84e4
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a84e4
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x238]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1800a8554
cmp byte [rbx + 0x3c], 0
je 0x1800a8548
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 0x1800a8548
mov rax, qword [rbp - 0x71]
cmp qword [rbp - 0x69], rax
je 0x1800a8538
lea rdx, [rbx + 0x10]
mov rcx, rax
call fcn.180005900
add qword [rbp - 0x71], 0x20
jmp 0x1800a8548
lea r8, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp - 0x79]
call fcn.18000a0d0
mov rbx, qword [rbx]
cmp rbx, qword [rsi + 0x238]
jne 0x1800a84f3
test rdi, rdi
je 0x1800a856c
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a8567
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 0x1800a8bec
cmp qword [rbp - 0x79], rax
je 0x1800a8c9d
mov rax, qword [rbp - 0x59]
cmp qword [rbp - 0x61], rax
je 0x1800a88bb
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r13
mov qword [rsp + 0x38], r13
cmp qword [rsi + 0x1f0], 0
je 0x1800a864c
mov dword [rsp + 0x20], r13d
mov rbx, qword [rbp - 0x61]
cmp rbx, qword [rbp - 0x59]
je 0x1800a864c
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 0x1800a862f
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x48], eax
cmp r15, rdi
je 0x1800a8613
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a862f
lea r8, [rsp + 0x48]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800ab350
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
add rbx, 0x20
cmp rbx, qword [rbp - 0x59]
jne 0x1800a85e0
cmp r15, rdi
je 0x1800a8651
mov dword [rdi], r12d
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a866d
mov rdi, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800ab350
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.1800aba40
mov eax, dword [r13]
mov dword [rsp + 0x40], eax
mov ecx, dword [rdi - 4]
mov dword [rsp + 0x48], ecx
cmp rbx, 3
jne 0x1800a86c2
cmp r12d, eax
jne 0x1800a86c2
lea rax, [r13 + 4]
cmp r12d, dword [rax]
jne 0x1800a86c2
cmp rax, rdi
je 0x1800a86fc
mov rdi, rax
mov qword [rsp + 0x30], rax
jmp 0x1800a86fc
cmp r13, rdi
je 0x1800a86fc
mov rax, r13
nop word [rax + rax]
cmp dword [rax], r12d
je 0x1800a86de
add rax, 4
cmp rax, rdi
jne 0x1800a86d0
cmp rax, r13
je 0x1800a86fc
cmp rax, rdi
je 0x1800a86fc
cmp dword [rax], ecx
je 0x1800a86fc
add rax, 4
cmp rax, rdi
cmovne rdi, rax
mov qword [rsp + 0x30], rdi
xor edx, edx
mov rcx, rsi
call fcn.1800a2ee0
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 0x1800a87f8
mov r8d, r14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.1800a0bb0
mov rbx, rax
lea rax, [rbp - 0x41]
cmp rax, rbx
je 0x1800a8774
lea rcx, [rbp - 0x41]
call fcn.180005c50
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 0x1800a87b4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a87af
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800a884c
call fcn.180393fb0
mov qword [rbp - 0x11], r12
mov qword [rbp - 9], 7
mov word [rbp - 0x21], r12w
cmp qword [rbp - 0x31], 0
je 0x1800a87e7
lea rcx, [rbp - 0x41]
call fcn.18015b200
test al, al
jne 0x1800a87e7
mov r8b, 1
mov edx, r14d
mov rcx, rsi
call fcn.1800a4e20
inc r14d
cmp r14d, dword [rdi - 4]
jle 0x1800a8731
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 0x1800a8858
lea rdx, [rbx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a8853
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a8853
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.180393fb0
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 0x1800a88a0
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a88a0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r13
call fcn.180393fb0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r12
jmp 0x1800a8cd6
xor edx, edx
mov rcx, rsi
call fcn.1800a2ee0
mov r8d, r12d
lea rdx, [rbp - 1]
mov rcx, rsi
call fcn.1800a0bb0
nop
lea rcx, [rbp - 1]
call fcn.18015b200
test al, al
je 0x1800a891f
mov r8b, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800a4e20
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 0x1800a8b92
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r13
mov qword [rsp + 0x38], r13
cmp qword [rsi + 0x1f0], 0
je 0x1800a89cc
mov dword [rsp + 0x20], r13d
mov rbx, qword [rbp - 0x79]
cmp rbx, qword [rbp - 0x71]
je 0x1800a89cc
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 0x1800a89af
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x48], eax
cmp r15, rdi
je 0x1800a8993
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a89af
lea r8, [rsp + 0x48]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800ab350
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
add rbx, 0x20
cmp rbx, qword [rbp - 0x71]
jne 0x1800a8960
cmp r15, rdi
je 0x1800a89d1
mov dword [rdi], r12d
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a89ed
mov rdi, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800ab350
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.1800aba40
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x31], xmm0
movdqa xmm1, xmmword [0x1803f7240]
movdqu xmmword [rbp - 0x31], xmm1
mov word [rbp - 0x41], r13w
mov r14d, dword [r12]
cmp r14d, dword [rdi - 4]
jg 0x1800a8aef
mov r8d, r14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.1800a0bb0
mov rbx, rax
lea rax, [rbp - 0x41]
cmp rax, rbx
je 0x1800a8a78
lea rcx, [rbp - 0x41]
call fcn.180005c50
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 0x1800a8ab4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a8aaf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800a8ae8
call fcn.180393fb0
mov qword [rbp - 0x11], r13
mov qword [rbp - 9], 7
mov word [rbp - 0x21], r13w
lea rcx, [rbp - 0x41]
call fcn.18015b200
test al, al
jne 0x1800a8ae0
mov r8b, 1
mov edx, r14d
mov rcx, rsi
call fcn.1800a4e20
inc r14d
jmp 0x1800a8a2b
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 0x1800a8b32
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a8b2d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a8b2d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180393fb0
movdqa xmm0, xmmword [0x1803f7240]
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 0x1800a8b7c
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a8b7c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r12
call fcn.180393fb0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r13
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800a8bd5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a8bd0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a8bd0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180393fb0
movdqa xmm0, xmmword [0x1803f7240]
movdqu xmmword [rbp + 0xf], xmm0
mov word [rbp - 1], r13w
jmp 0x1800a8cd6
cmp qword [rbp - 0x79], rax
je 0x1800a8c9d
mov rax, qword [rbp - 0x59]
mov rcx, rsi
cmp qword [rbp - 0x61], rax
je 0x1800a8c96
mov r8d, r12d
lea rdx, [rbp - 1]
call fcn.1800a0bb0
nop
lea rcx, [rbp - 1]
call fcn.18015b200
movzx ebx, al
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800a8c63
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a8c5e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a8c5e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180393fb0
movdqa xmm0, xmmword [0x1803f7240]
movdqu xmmword [rbp + 0xf], xmm0
mov word [rbp - 1], r13w
mov edx, r12d
mov rcx, rsi
test bl, bl
jne 0x1800a8c8c
call fcn.1800a4fc0
test al, al
sete r8b
jmp 0x1800a8ca0
xor r8d, r8d
call fcn.1800a4e20
jmp 0x1800a8cc0
xor edx, edx
call fcn.1800a2ee0
mov r8b, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800a4e20
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.180005b60
nop
lea rcx, [rbp - 0x61]
call fcn.180005b60
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.180393f50
mov rbx, qword [rsp + 0x140]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret