Function at 0x1800a54d0
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 [0x1804cc010]
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 0x1800a5561
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5561
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x238]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1800a55de
cmp byte [rbx + 0x3c], 0
je 0x1800a55d2
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 0x1800a55d2
lea rcx, [rbx + 0x10]
call fcn.180155b10
test al, al
jne 0x1800a55d2
mov rax, qword [rbp - 0x59]
cmp qword [rbp - 0x51], rax
je 0x1800a55c2
lea rdx, [rbx + 0x10]
mov rcx, rax
call fcn.180004ad0
add qword [rbp - 0x59], 0x20
jmp 0x1800a55d2
lea r8, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp - 0x61]
call fcn.180009160
mov rbx, qword [rbx]
cmp rbx, qword [rsi + 0x238]
jne 0x1800a5570
test rdi, rdi
je 0x1800a55f6
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a55f1
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 0x1800a5624
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a5624
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rsi + 0x238]
mov rbx, qword [rax]
cmp rbx, rax
je 0x1800a5694
cmp byte [rbx + 0x3c], 0
je 0x1800a5688
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 0x1800a5688
mov rax, qword [rbp - 0x71]
cmp qword [rbp - 0x69], rax
je 0x1800a5678
lea rdx, [rbx + 0x10]
mov rcx, rax
call fcn.180004ad0
add qword [rbp - 0x71], 0x20
jmp 0x1800a5688
lea r8, [rbx + 0x10]
mov rdx, rax
lea rcx, [rbp - 0x79]
call fcn.180009160
mov rbx, qword [rbx]
cmp rbx, qword [rsi + 0x238]
jne 0x1800a5633
test rdi, rdi
je 0x1800a56ac
mov rcx, qword [rdi]
test rcx, rcx
je 0x1800a56a7
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 0x1800a5d2c
cmp qword [rbp - 0x79], rax
je 0x1800a5ddd
mov rax, qword [rbp - 0x59]
cmp qword [rbp - 0x61], rax
je 0x1800a59fb
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r13
mov qword [rsp + 0x38], r13
cmp qword [rsi + 0x1f0], 0
je 0x1800a578c
mov dword [rsp + 0x20], r13d
mov rbx, qword [rbp - 0x61]
cmp rbx, qword [rbp - 0x59]
je 0x1800a578c
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 0x1800a576f
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x48], eax
cmp r15, rdi
je 0x1800a5753
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a576f
lea r8, [rsp + 0x48]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8490
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
add rbx, 0x20
cmp rbx, qword [rbp - 0x59]
jne 0x1800a5720
cmp r15, rdi
je 0x1800a5791
mov dword [rdi], r12d
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a57ad
mov rdi, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8490
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.1800a8b80
mov eax, dword [r13]
mov dword [rsp + 0x40], eax
mov ecx, dword [rdi - 4]
mov dword [rsp + 0x48], ecx
cmp rbx, 3
jne 0x1800a5802
cmp r12d, eax
jne 0x1800a5802
lea rax, [r13 + 4]
cmp r12d, dword [rax]
jne 0x1800a5802
cmp rax, rdi
je 0x1800a583c
mov rdi, rax
mov qword [rsp + 0x30], rax
jmp 0x1800a583c
cmp r13, rdi
je 0x1800a583c
mov rax, r13
nop word [rax + rax]
cmp dword [rax], r12d
je 0x1800a581e
add rax, 4
cmp rax, rdi
jne 0x1800a5810
cmp rax, r13
je 0x1800a583c
cmp rax, rdi
je 0x1800a583c
cmp dword [rax], ecx
je 0x1800a583c
add rax, 4
cmp rax, rdi
cmovne rdi, rax
mov qword [rsp + 0x30], rdi
xor edx, edx
mov rcx, rsi
call fcn.1800a0020
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 0x1800a5938
mov r8d, r14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.18009dcf0
mov rbx, rax
lea rax, [rbp - 0x41]
cmp rax, rbx
je 0x1800a58b4
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 0x1800a58f4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a58ef
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800a598c
call fcn.180386950
mov qword [rbp - 0x11], r12
mov qword [rbp - 9], 7
mov word [rbp - 0x21], r12w
cmp qword [rbp - 0x31], 0
je 0x1800a5927
lea rcx, [rbp - 0x41]
call fcn.180155b10
test al, al
jne 0x1800a5927
mov r8b, 1
mov edx, r14d
mov rcx, rsi
call fcn.1800a1f60
inc r14d
cmp r14d, dword [rdi - 4]
jle 0x1800a5871
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 0x1800a5998
lea rdx, [rbx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a5993
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a5993
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.180386950
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 0x1800a59e0
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a59e0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r13
call fcn.180386950
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r12
jmp 0x1800a5e16
xor edx, edx
mov rcx, rsi
call fcn.1800a0020
mov r8d, r12d
lea rdx, [rbp - 1]
mov rcx, rsi
call fcn.18009dcf0
nop
lea rcx, [rbp - 1]
call fcn.180155b10
test al, al
je 0x1800a5a5f
mov r8b, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800a1f60
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 0x1800a5cd2
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov r15, r13
mov qword [rsp + 0x38], r13
cmp qword [rsi + 0x1f0], 0
je 0x1800a5b0c
mov dword [rsp + 0x20], r13d
mov rbx, qword [rbp - 0x79]
cmp rbx, qword [rbp - 0x71]
je 0x1800a5b0c
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 0x1800a5aef
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x48], eax
cmp r15, rdi
je 0x1800a5ad3
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a5aef
lea r8, [rsp + 0x48]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8490
mov r15, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
add rbx, 0x20
cmp rbx, qword [rbp - 0x71]
jne 0x1800a5aa0
cmp r15, rdi
je 0x1800a5b11
mov dword [rdi], r12d
add rdi, 4
mov qword [rsp + 0x30], rdi
jmp 0x1800a5b2d
mov rdi, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x28]
call fcn.1800a8490
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.1800a8b80
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x31], xmm0
movdqa xmm1, xmmword [0x1803e7600]
movdqu xmmword [rbp - 0x31], xmm1
mov word [rbp - 0x41], r13w
mov r14d, dword [r12]
cmp r14d, dword [rdi - 4]
jg 0x1800a5c2f
mov r8d, r14d
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.18009dcf0
mov rbx, rax
lea rax, [rbp - 0x41]
cmp rax, rbx
je 0x1800a5bb8
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 0x1800a5bf4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x21]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a5bef
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800a5c28
call fcn.180386950
mov qword [rbp - 0x11], r13
mov qword [rbp - 9], 7
mov word [rbp - 0x21], r13w
lea rcx, [rbp - 0x41]
call fcn.180155b10
test al, al
jne 0x1800a5c20
mov r8b, 1
mov edx, r14d
mov rcx, rsi
call fcn.1800a1f60
inc r14d
jmp 0x1800a5b6b
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 0x1800a5c72
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x41]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a5c6d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a5c6d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180386950
movdqa xmm0, xmmword [0x1803e7600]
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 0x1800a5cbc
add rdx, 0x27
mov r12, qword [r12 - 8]
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a5cbc
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r12
call fcn.180386950
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r13
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800a5d15
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a5d10
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a5d10
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180386950
movdqa xmm0, xmmword [0x1803e7600]
movdqu xmmword [rbp + 0xf], xmm0
mov word [rbp - 1], r13w
jmp 0x1800a5e16
cmp qword [rbp - 0x79], rax
je 0x1800a5ddd
mov rax, qword [rbp - 0x59]
mov rcx, rsi
cmp qword [rbp - 0x61], rax
je 0x1800a5dd6
mov r8d, r12d
lea rdx, [rbp - 1]
call fcn.18009dcf0
nop
lea rcx, [rbp - 1]
call fcn.180155b10
movzx ebx, al
mov rdx, qword [rbp + 0x17]
cmp rdx, 8
jb 0x1800a5da3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 1]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800a5d9e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800a5d9e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180386950
movdqa xmm0, xmmword [0x1803e7600]
movdqu xmmword [rbp + 0xf], xmm0
mov word [rbp - 1], r13w
mov edx, r12d
mov rcx, rsi
test bl, bl
jne 0x1800a5dcc
call fcn.1800a2100
test al, al
sete r8b
jmp 0x1800a5de0
xor r8d, r8d
call fcn.1800a1f60
jmp 0x1800a5e00
xor edx, edx
call fcn.1800a0020
mov r8b, 1
mov edx, r12d
mov rcx, rsi
call fcn.1800a1f60
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.1803868f0
mov rbx, qword [rsp + 0x140]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret