Function at 0x140002850
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xb0
lea r13, [rbp + 0x5f]
movabs r15, 0xff00ff00ff00ff00
mov qword [rbp + 0xf], r15
mov qword [rbp + 0x17], r13
mov rsi, qword [r13]
xor rsi, r15
mov qword [rbp + 7], rsi
xor r14d, r14d
mov qword [r13], r14
xorps xmm0, xmm0
movups xmmword [rbp - 0x29], xmm0
movups xmmword [rbp - 0x19], xmm0
movups xmmword [rbp - 9], xmm0
lea rdi, [rbp + 0x5f]
nop dword [rax]
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [0x14003e710]
lea rcx, [rbp - 0x29]
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x1400028e7
lea rcx, [rbp - 0x29]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp - 0x29]
call qword [sym.imp.USER32.dll_DispatchMessageA]
mov rbx, qword [0x14003e728]
lea rcx, [rbp + 0x67]
call qword [sym.imp.USER32.dll_GetCursorPos]
movd xmm0, dword [rbp + 0x67]
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0xe08], xmm0
movd xmm0, dword [rbp + 0x6b]
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0xe0c], xmm0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140002944
mov byte [rbx + 0xe10], 1
mov byte [rbx + 0x3748], 1
mov eax, dword [rbx + 0xe0c]
mov dword [rbx + 0x36f8], eax
jmp 0x14000294b
mov byte [rbx + 0xe10], 0
mov qword [rbp - 0x51], r15
mov qword [rbp - 0x49], rdi
mov rbx, qword [rdi]
xor rbx, r15
mov qword [rbp - 0x59], rbx
mov qword [rdi], r14
mov rax, qword [0x14003e728]
mov byte [rax + 0x78], 0
test rax, rax
je 0x140002979
mov rcx, qword [rax + 0xa0]
jmp 0x14000297c
mov rcx, r14
cmp qword [rcx + 0x48], 0
jne 0x140002988
call fcn.14002c6f0
call fcn.140001990
call fcn.140008b20
call fcn.140002c10
call fcn.14000ac10
xorps xmm0, xmm0
movups xmmword [rbp - 0x41], xmm0
mov rcx, qword [0x14003e6f0]
mov rax, qword [rcx]
xor r9d, r9d
lea r8, [0x14003e708]
lea edx, [r9 + 1]
call qword [rax + 0x108]
mov rcx, qword [0x14003e6f0]
mov rax, qword [rcx]
lea r8, [rbp - 0x41]
mov rdx, qword [0x14003e708]
call qword [rax + 0x190]
mov rax, qword [0x14003e728]
mov rax, qword [rax + 0x48b8]
mov rcx, qword [rax]
add rcx, 0x48
mov rax, r14
cmp byte [rcx], al
cmovne rax, rcx
mov rcx, rax
call fcn.14002bc80
mov rcx, qword [0x14003e700]
mov rax, qword [rcx]
xor r8d, r8d
lea edx, [r8 + 1]
call qword [rax + 0x40]
nop
xor rbx, r15
mov qword [rdi], rbx
cmp dword [rbp - 0x21], 0x12
jne 0x1400028b0
mov rbx, qword [0x14003e728]
test rbx, rbx
je 0x140002a3c
mov rdi, qword [rbx + 0xa0]
jmp 0x140002a3f
mov rdi, r14
call fcn.14002cc30
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x140002a53
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi]
test rcx, rcx
je 0x140002a61
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x140002a70
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 0x90], r14
mov qword [rbx + 0xa0], r14
and dword [rbx + 0xc], 0xfffffff7
mov rax, qword [0x14003e728]
test rax, rax
je 0x140002a94
dec dword [rax + 0xf4]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [0x14003e728]
test rax, rax
je 0x140002ab2
mov rdi, qword [rax + 0x98]
jmp 0x140002ab5
mov rdi, r14
lea rbx, [rax + 8]
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x140002acf
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, qword [0x14003e728]
mov qword [rbx + 0x80], r14
mov qword [rbx + 0x90], r14
and dword [rbx + 4], 0xfffffff8
test rax, rax
je 0x140002aec
dec dword [rax + 0xf4]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [0x14003e728]
mov qword [0x14003e728], rbx
call fcn.140006dc0
mov qword [0x14003e728], r14
test rbx, rbx
je 0x140002b37
mov rcx, rbx
call fcn.14001b560
mov rax, qword [0x14003e728]
test rax, rax
je 0x140002b2e
dec dword [rax + 0xf4]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea r12, [rbp + 0x5f]
mov qword [rbp - 0x51], r15
mov qword [rbp - 0x49], r12
mov rbx, qword [r12]
xor rbx, r15
mov qword [rbp - 0x59], rbx
lea rdi, [rbp + 0x5f]
mov qword [rbp - 0x39], r15
mov qword [rbp - 0x31], rdi
mov qword [rbp - 0x41], r15
mov qword [rdi], r14
mov rcx, qword [0x14003e708]
test rcx, rcx
je 0x140002b7a
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x14003e708], r14
mov qword [rdi], r14
mov rcx, qword [0x14003e700]
test rcx, rcx
je 0x140002b96
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x14003e700], r14
mov rcx, qword [0x14003e6f0]
test rcx, rcx
je 0x140002baf
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x14003e6f0], r14
mov rcx, qword [0x14003e6f8]
test rcx, rcx
je 0x140002bc8
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x14003e6f8], r14
xor rbx, r15
mov qword [r12], rbx
mov rcx, qword [0x14003e710]
call qword [sym.imp.USER32.dll_DestroyWindow]
cmp qword [rbp - 0x19], 0
setne al
xor rsi, r15
mov qword [r13], rsi
mov rbx, qword [rsp + 0x100]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret