Function at 0x1400e7350
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x3e8]
sub rsp, 0x4c0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x1404280e0]
xor rax, rsp
mov qword [rbp + 0x310], rax
mov edx, 2
lea rcx, [rbp + 0x280]
call qword [sym.imp.MSVCP140.dll__Mtx_init_in_situ]
nop
lea rcx, [rbp + 0x280]
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x1400e73f6
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cmp dword [rbp + 0x2cc], 0x7fffffff
jne 0x1400e7418
mov dword [rbp + 0x2cc], 0x7ffffffe
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
xor r13d, r13d
xorps xmm9, xmm9
nop
movss xmm8, dword [0x1403fe444]
movsx ecx, byte [0x14042d9d0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1400e7429
mov r8, qword [0x14042d7a8]
add r8, 0x1881d70
lea rdx, [rbp + 0x2d0]
lea rcx, [0x140436b20]
call fcn.1400e7f50
mov rbx, qword [0x14042d7a8]
add rbx, 0x1793dc8
je 0x1400e74b6
mov qword [rsp + 0x38], r13
mov dword [rbp - 0x58], r13d
mov eax, dword [0x140436b30]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x78], rbx
lea rax, [rsp + 0x38]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 8
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov r12, qword [rsp + 0x38]
jmp 0x1400e74b9
mov r12, r13
mov edi, 1
lea ebx, [rdi + 7]
mov esi, edi
and esi, 0x7fff
shl esi, 3
sar esi, 9
add rsi, 0x10
add rsi, r12
je 0x1400e7522
mov qword [rsp + 0x38], r13
mov dword [rbp - 0x58], r13d
mov eax, dword [0x140436b30]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x78], rsi
lea rax, [rsp + 0x38]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 8
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov rax, qword [rsp + 0x38]
jmp 0x1400e7525
mov rax, r13
mov rcx, qword [0x140436af0]
cmp rax, qword [rcx + rbx]
je 0x1400e7536
mov qword [rcx + rbx], rax
inc edi
add rbx, 8
cmp edi, 0x80
jl 0x1400e74c1
lea rcx, [rbp - 0x50]
call qword [sym.imp.USER32.dll_GetCursorPos]
movaps xmm12, xmm9
movaps xmm11, xmm9
movss xmm10, dword [0x1403fe568]
mov r14d, 1
lea r15d, [r14 + 7]
movss xmm13, dword [rbp + 0x30c]
movss xmm14, dword [rbp + 0x308]
movss xmm15, dword [rbp + 0x304]
nop dword [rax + rax]
mov rax, qword [0x140436af0]
mov rcx, qword [rax + r15]
test rcx, rcx
je 0x1400e7cac
mov eax, r14d
and eax, 0x1ff
imul ebx, eax, 0x78
add rbx, rcx
je 0x1400e7cac
mov qword [rsp + 0x38], r13
mov dword [rbp - 0x58], r13d
mov eax, dword [0x140436b30]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x78], rbx
lea rax, [rsp + 0x38]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 8
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov rsi, qword [rsp + 0x38]
test rsi, rsi
je 0x1400e7cac
lea rbx, [rsi + 0x5dc]
test rbx, rbx
je 0x1400e765e
mov dword [rsp + 0x40], r13d
mov dword [rbp - 0x58], r13d
mov eax, dword [0x140436b30]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x78], rbx
lea rax, [rsp + 0x40]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 4
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov ebx, dword [rsp + 0x40]
jmp 0x1400e7661
mov ebx, r13d
mov edi, ebx
shr edi, 9
and edi, 0x3f
shl edi, 3
add rdi, 0x10
add rdi, r12
je 0x1400e7cac
mov qword [rsp + 0x38], r13
mov dword [rbp - 0x58], r13d
mov eax, dword [0x140436b30]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x78], rdi
lea rax, [rsp + 0x38]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 8
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400e7cac
and ebx, 0x1ff
imul ebx, ebx, 0x78
add rbx, rcx
je 0x1400e7722
mov qword [rsp + 0x38], r13
mov dword [rbp - 0x58], r13d
mov eax, dword [0x140436b30]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x78], rbx
lea rax, [rsp + 0x38]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 8
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov rbx, qword [rsp + 0x38]
jmp 0x1400e7725
mov rbx, r13
mov rdi, qword [0x14042d7a8]
add rdi, 0x17e27c8
je 0x1400e777f
mov qword [rsp + 0x38], r13
mov dword [rbp - 0x58], r13d
mov eax, dword [0x140436b30]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x78], rdi
lea rax, [rsp + 0x38]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 8
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov rax, qword [rsp + 0x38]
jmp 0x1400e7782
mov rax, r13
cmp rbx, rax
je 0x1400e7cac
lea rdi, [rsi + 0x3bf]
test rdi, rdi
je 0x1400e77e0
mov dword [rsp + 0x40], r13d
mov dword [rbp - 0x58], r13d
mov eax, dword [0x140436b30]
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rsp + 0x58], rax
mov qword [rbp - 0x78], rdi
lea rax, [rsp + 0x40]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 4
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov esi, dword [rsp + 0x40]
jmp 0x1400e77e3
mov esi, r13d
call fcn.1400e71a0
mov rdi, rax
add rdi, 0x3bf
je 0x1400e783d
mov dword [rsp + 0x48], r13d
mov dword [rbp - 0x58], r13d
mov ecx, dword [0x140436b30]
mov qword [rsp + 0x50], rcx
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, eax
mov qword [rsp + 0x58], rcx
mov qword [rbp - 0x78], rdi
lea rax, [rsp + 0x48]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x70], 4
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x140436b28]
mov eax, dword [rsp + 0x48]
jmp 0x1400e7840
mov eax, r13d
cmp esi, eax
je 0x1400e7cac
lea rdi, [rbx + 0x32c]
test rdi, rdi
je 0x1400e7cac
mov dword [rsp + 0x40], r13d
mov dword [rbp + 0x38], r13d
mov eax, dword [0x140436b30]
mov qword [rbp - 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rbp - 0x18], rax
mov qword [rbp + 0x18], rdi
lea rax, [rsp + 0x40]
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x20], 4
xor edx, edx
lea rcx, [rbp - 0x20]
call qword [0x140436b28]
cmp dword [rsp + 0x40], r13d
jle 0x1400e7cac
mov dword [rsp + 0x44], r13d
mov dword [rbp + 0x98], r13d
mov eax, dword [0x140436b30]
mov qword [rbp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x78], rdi
lea rax, [rsp + 0x44]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x80], 4
xor edx, edx
lea rcx, [rbp + 0x40]
call qword [0x140436b28]
cmp dword [rsp + 0x44], 0x64
jg 0x1400e7cac
cmp byte [0x14042d9d2], r13b
je 0x1400e79e7
lea rdi, [rbx + 0x197c]
test rdi, rdi
je 0x1400e7cac
mov byte [rsp + 0x30], r13b
mov dword [rbp + 0xf8], r13d
mov eax, dword [0x140436b30]
mov qword [rbp + 0xa0], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0xd8], rdi
lea rax, [rsp + 0x30]
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xe0], 1
xor edx, edx
lea rcx, [rbp + 0xa0]
call qword [0x140436b28]
cmp byte [rsp + 0x30], r13b
je 0x1400e7cac
mov rdi, qword [0x14042d7a8]
add rdi, 0x17e27c8
je 0x1400e79e7
mov qword [rbp - 0x38], r13
mov dword [rbp + 0x158], r13d
mov eax, dword [0x140436b30]
mov qword [rbp + 0x100], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x138], rdi
lea rax, [rbp - 0x38]
mov qword [rbp + 0x130], rax
mov qword [rbp + 0x140], 8
xor edx, edx
lea rcx, [rbp + 0x100]
call qword [0x140436b28]
mov rcx, qword [rbp - 0x38]
mov eax, 1
shl eax, cl
test eax, eax
je 0x1400e7cac
add rbx, 0x310
je 0x1400e7a49
mov qword [rbp - 0x30], r13
mov dword [rbp + 0x1b8], r13d
mov eax, dword [0x140436b30]
mov qword [rbp + 0x160], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x198], rbx
lea rax, [rbp - 0x30]
mov qword [rbp + 0x190], rax
mov qword [rbp + 0x1a0], 8
xor edx, edx
lea rcx, [rbp + 0x160]
call qword [0x140436b28]
mov rax, qword [rbp - 0x30]
jmp 0x1400e7a4c
mov rax, r13
lea rbx, [rax + 0x1e0]
test rbx, rbx
je 0x1400e7ab1
mov qword [rbp - 0x28], r13
mov dword [rbp + 0x218], r13d
mov eax, dword [0x140436b30]
mov qword [rbp + 0x1c0], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rbp + 0x1c8], rax
mov qword [rbp + 0x1f8], rbx
lea rax, [rbp - 0x28]
mov qword [rbp + 0x1f0], rax
mov qword [rbp + 0x200], 8
xor edx, edx
lea rcx, [rbp + 0x1c0]
call qword [0x140436b28]
mov rax, qword [rbp - 0x28]
jmp 0x1400e7ab4
mov rax, r13
lea rbx, [rax + 0xc0]
test rbx, rbx
je 0x1400e7b28
mov qword [rbp - 0x48], r13
mov dword [rbp - 0x40], r13d
mov dword [rbp + 0x278], r13d
mov eax, dword [0x140436b30]
mov qword [rbp + 0x220], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov eax, eax
mov qword [rbp + 0x228], rax
mov qword [rbp + 0x258], rbx
lea rax, [rbp - 0x48]
mov qword [rbp + 0x250], rax
mov qword [rbp + 0x260], reloc.WS2_32.dll_inet_ntoa
xor edx, edx
lea rcx, [rbp + 0x220]
call qword [0x140436b28]
movss xmm5, dword [rbp - 0x48]
movss xmm6, dword [rbp - 0x44]
movss xmm7, dword [rbp - 0x40]
jmp 0x1400e7b34
movaps xmm5, xmm9
movaps xmm6, xmm9
movaps xmm7, xmm9
movss xmm3, dword [rbp + 0x300]
mulss xmm3, xmm5
movaps xmm0, xmm15
mulss xmm0, xmm6
addss xmm3, xmm0
movaps xmm1, xmm14
mulss xmm1, xmm7
addss xmm3, xmm1
addss xmm3, xmm13
movss xmm0, dword [0x1403fe418]
comiss xmm0, xmm3
ja 0x1400e7cac
movss xmm2, dword [0x1403fe478]
divss xmm2, xmm3
movss xmm4, dword [rbp + 0x2d0]
mulss xmm4, xmm5
movss xmm0, dword [rbp + 0x2d4]
mulss xmm0, xmm6
addss xmm4, xmm0
movss xmm1, dword [rbp + 0x2d8]
mulss xmm1, xmm7
addss xmm4, xmm1
addss xmm4, dword [rbp + 0x2dc]
mulss xmm4, xmm2
movss xmm3, dword [rbp + 0x2e0]
mulss xmm3, xmm5
movss xmm0, dword [rbp + 0x2e4]
mulss xmm0, xmm6
addss xmm3, xmm0
movss xmm1, dword [rbp + 0x2e8]
mulss xmm1, xmm7
addss xmm3, xmm1
addss xmm3, dword [rbp + 0x2ec]
mulss xmm3, xmm2
mov rax, qword [0x14042bc58]
movss xmm0, dword [rax + 0x10]
movss xmm1, dword [rax + 0x14]
mulss xmm0, xmm8
movaps xmm7, xmm4
mulss xmm7, xmm0
addss xmm4, xmm0
addss xmm7, xmm4
mulss xmm1, xmm8
movaps xmm8, xmm3
addss xmm8, xmm1
mulss xmm3, xmm1
subss xmm8, xmm3
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [rbp - 0x4c]
movaps xmm1, xmm8
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd xmm1, qword [0x1403fe4a8]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm6, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [rbp - 0x50]
movaps xmm1, xmm7
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd xmm1, qword [0x1403fe4a8]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x1400e7c7e
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x1400e7c86
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
comiss xmm10, xmm1
jbe 0x1400e7cac
movss xmm0, dword [0x14042d9c0]
comiss xmm0, xmm1
jb 0x1400e7cac
movaps xmm10, xmm1
movaps xmm12, xmm7
movaps xmm11, xmm8
inc r14d
add r15, 8
cmp r14d, 0x80
movss xmm8, dword [0x1403fe444]
jl 0x1400e7590
cmp byte [0x14042d9bd], r13b
je 0x1400e7429
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [rbp - 0x4c]
movaps xmm7, xmm11
subss xmm7, xmm0
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [rbp - 0x50]
movaps xmm8, xmm12
subss xmm8, xmm1
xorps xmm0, xmm0
cvtss2sd xmm0, xmm8
movsd xmm1, qword [0x1403fe4a8]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm6, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm7
movsd xmm1, qword [0x1403fe4a8]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x1400e7d39
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x1400e7d41
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x14042d9c0]
comiss xmm0, xmm1
jb 0x1400e7420
cvttss2si eax, xmm8
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x14042d9c4]
cvttss2si edx, xmm0
mov dword [rsp + 0x40], edx
cvttss2si eax, xmm7
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x14042d9c4]
cvttss2si r9d, xmm0
mov dword [rsp + 0x38], r9d
mov r8d, dword [0x14042d9c8]
mov ecx, r8d
neg ecx
mov dword [rsp + 0x44], ecx
lea rax, [rsp + 0x44]
lea r10, [rsp + 0x40]
cmp edx, ecx
cmovge rax, r10
cmp r8d, edx
lea rbx, [0x14042d9c8]
cmovl rax, rbx
mov edx, dword [rax]
mov dword [rsp + 0x44], ecx
lea rax, [rsp + 0x44]
lea r10, [rsp + 0x38]
cmp r9d, ecx
cmovge rax, r10
cmp r8d, r9d
cmovl rax, rbx
ucomiss xmm12, xmm9
jp 0x1400e7dfb
jne 0x1400e7dfb
ucomiss xmm11, xmm9
jp 0x1400e7dfb
movss xmm8, dword [0x1403fe444]
je 0x1400e7429
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov r8d, dword [rax]
lea ecx, [r9 + 1]
call qword [sym.imp.USER32.dll_mouse_event]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1400e7e2e
imul rax, rax, 0x64
jmp 0x1400e7e4c
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rcx, rcx, 0x3b9aca00
add rax, rcx
movabs rcx, 0x7fffffffff67697f
cmp rax, rcx
jge 0x1400e7e75
add rax, 0x989680
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
call fcn.1400e8040
jmp 0x1400e7420
movabs rax, 0x7fffffffffffffff
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
call fcn.1400e8040
jmp 0x1400e7420