Function at 0x140001550
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xa0]
sub rsp, 0x1a0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140001c70
mov rcx, rax
lea rdx, [0x140001e20]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
xor r13d, r13d
mov r12d, r13d
mov qword [rsp + 0x60], r13
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
movabs r9, 0xb2f4fc0794908cf3
cmp rbx, 0x989680
jne 0x1400015e3
imul rbx, rcx, 0x64
jmp 0x140001653
cmp rbx, 0x16e3600
jne 0x140001637
mov rax, r9
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, r9
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rbx, rdx
shr rbx, 0x3f
add rbx, rdx
add rbx, r8
jmp 0x140001653
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
mov qword [rsp + 0x38], rbx
mov r14, qword [rsp + 0x58]
movabs r15, 0x77ff83ffffff
movabs rsi, 0x3e0000007f
mov edi, 8
mov ebx, 0xffff8001
nop dword [rax + rax]
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp ax, bx
jne 0x140001791
lea eax, [rdi - 0x20]
cmp eax, 0x19
jbe 0x1400016c0
lea eax, [rdi - 0x41]
cmp eax, 0x2e
ja 0x1400016a7
bt r15, rax
jb 0x1400016c0
lea eax, [rdi - 0xba]
cmp eax, 0x25
ja 0x140001791
bt rsi, rax
jae 0x140001791
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
movzx esi, ax
shr esi, 0xf
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetKeyState]
movzx r15d, ax
and r15b, 1
lea rcx, [rbp - 0x70]
call qword [sym.imp.USER32.dll_GetKeyboardState]
xor edx, edx
mov ecx, edi
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov edx, eax
mov dword [rsp + 0x20], r13d
lea r9, [rsp + 0x48]
lea r8, [rbp - 0x70]
mov ecx, edi
call qword [sym.imp.USER32.dll_ToAscii]
test sil, 1
je 0x14000174f
test r15b, r15b
je 0x140001754
movsx ecx, byte [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov esi, eax
mov byte [rsp + 0x30], sil
movzx edx, sil
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140001e60
cmp r14, r12
je 0x140001761
mov byte [r14], sil
inc r14
mov qword [rsp + 0x58], r14
jmp 0x14000177d
test r15b, r15b
je 0x14000171b
movsx ecx, byte [rsp + 0x48]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_toupper]
jmp 0x140001726
lea r8, [rsp + 0x30]
mov rdx, r14
lea rcx, [rsp + 0x50]
call fcn.140002230
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x58]
movabs r15, 0x77ff83ffffff
movabs rsi, 0x3e0000007f
inc edi
cmp edi, 0xff
jle 0x140001680
mov rbx, qword [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rdi, 0x989680
jne 0x1400017c5
imul rax, rcx, 0x64
jmp 0x14000183e
cmp rdi, 0x16e3600
jne 0x140001823
movabs r9, 0xb2f4fc0794908cf3
mov rax, r9
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, r9
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rax, rdx
add rax, r8
jmp 0x14000183e
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
sub rax, rbx
movabs rcx, 0x2540be400
cmp rax, rcx
jl 0x140001a55
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r13
mov qword [rbp - 0x80], r13
mov r15, qword [rsp + 0x50]
cmp r15, r14
jne 0x140001886
mov qword [rsp + 0x78], r13
mov qword [rbp - 0x80], 0xf
mov byte [rsp + 0x68], 0
jmp 0x140001963
mov rdi, r14
sub rdi, r15
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
ja 0x140001b9c
cmp rdi, 0xf
ja 0x1400018cc
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], 0xf
mov r8, rdi
mov rdx, r15
lea rcx, [rsp + 0x68]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rdi + 0x68], 0
jmp 0x140001963
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
jbe 0x1400018eb
mov rbx, rax
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x140001912
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140001931
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140001b8f
mov rcx, rax
call fcn.1400023f0
test rax, rax
je 0x140001b95
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x140001943
test rcx, rcx
je 0x140001940
call fcn.1400023f0
mov rsi, rax
jmp 0x140001943
mov rsi, r13
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], rbx
mov r8, rdi
mov rdx, r15
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + rdi], 0
lea rcx, [rsp + 0x68]
call fcn.1400012a0
cmp r15, r14
cmovne r14, r15
mov qword [rsp + 0x58], r14
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rbx, 0x989680
jne 0x14000199a
imul rbx, rcx, 0x64
jmp 0x140001a14
cmp rbx, 0x16e3600
jne 0x1400019f8
movabs r9, 0xb2f4fc0794908cf3
mov rax, r9
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, r9
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rbx, rdx
shr rbx, 0x3f
add rbx, rdx
add rbx, r8
jmp 0x140001a14
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
mov qword [rsp + 0x38], rbx
mov rdx, qword [rbp - 0x80]
cmp rdx, 0xf
jbe 0x140001a55
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001a50
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140001b95
call fcn.14000242c
lea rcx, [rsp + 0x40]
call fcn.1400011c0
mov rax, qword [rsp + 0x40]
movabs rcx, 0x7ffffffffa0a1eff
cmp rax, rcx
lea rsi, [rax + 0x5f5e100]
jl 0x140001a84
movabs rsi, 0x7fffffffffffffff
movabs rbx, 0xb2f4fc0794908cf3
movabs r13, 0x4e94914f0000
movabs r12, 0x431bde82d7b634db
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rdi, 0x989680
jne 0x140001ac3
imul rax, rcx, 0x64
jmp 0x140001b34
cmp rdi, 0x16e3600
jne 0x140001b16
mov rax, rbx
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rbx
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x140001b31
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
imul rcx, rcx, 0x3b9aca00
add rax, rcx
cmp rax, rsi
jge 0x140001b82
mov rcx, rsi
sub rcx, rax
cmp rcx, r13
jl 0x140001b53
mov ecx, 0x5265c00
call sub.KERNEL32.dll_Sleep
jmp 0x140001aa2
mov rax, r12
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul rax, rdx, 0xf4240
cmp rax, rcx
jge 0x140001b76
inc rdx
mov ecx, edx
call sub.KERNEL32.dll_Sleep
jmp 0x140001aa2
mov r12, qword [rsp + 0x60]
xor r13d, r13d
jmp 0x14000165d
call fcn.140001100
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400011a0
int3