Function at 0x14004ec50
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], rsi
push rbp
push r12
push r15
lea rbp, [rsp - 0x47]
sub rsp, 0xd0
mov rax, qword [0x1400b8080]
xor rax, rsp
mov qword [rbp - 0x19], rax
mov rax, qword gs:[0x58]
mov r12, qword [0x1400b8d08]
mov edx, 4
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x1400b9228], eax
jle 0x14004ecc4
lea rcx, [0x1400b9228]
call fcn.140093bf8
cmp dword [0x1400b9228], 0xffffffff
jne 0x14004ecc4
lea rcx, [0x1400b9238]
call fcn.14004e530
lea rcx, [0x1400b9228]
call fcn.140093b8c
mov rsi, qword [0x1400b9148]
mov r15, qword [0x1400b9150]
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0x100], r14
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xb0], xmm7
movaps xmmword [rsp + 0xa0], xmm8
movaps xmmword [rsp + 0x90], xmm9
movaps xmmword [rsp + 0x80], xmm10
cmp rsi, r15
je 0x14004ee89
movsd xmm10, qword [0x1400aa488]
xor r14d, r14d
movsd xmm7, qword [0x1400aa4c8]
xorps xmm6, xmm6
mov r8, rsi
mov rdx, r12
call fcn.14004fc40
mov rbx, rax
test rax, rax
je 0x14004ee7c
mov rcx, qword [0x1400b9040]
lea rax, [rbp - 0x59]
mov r9d, 8
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x49]
movsd qword [rbp - 0x49], xmm6
mov rdx, rbx
movsd qword [rbp - 0x51], xmm6
mov qword [rbp - 0x59], r14
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x14004ee59
cmp qword [rbp - 0x59], 8
jne 0x14004ee59
mov rcx, qword [0x1400b9040]
lea rax, [rbp - 0x59]
lea rdx, [rbx + 8]
mov qword [rsp + 0x20], rax
mov r9d, 8
mov qword [rbp - 0x59], r14
lea r8, [rbp - 0x51]
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x14004ee59
cmp qword [rbp - 0x59], 8
jne 0x14004ee59
mov rdi, qword [0x1400b91a8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14004ee7c
movsd xmm8, qword [rbp - 0x49]
movsd xmm9, qword [rbp - 0x51]
nop word [rax + rax]
movsd xmm1, qword [rbx + 0x18]
ucomisd xmm1, xmm6
jp 0x14004edfd
je 0x14004ee4f
movsd xmm2, qword [rbx + 0x20]
ucomisd xmm2, xmm6
jp 0x14004ee0a
je 0x14004ee4f
movaps xmm0, xmm8
subsd xmm0, xmm1
movaps xmm1, xmm9
subsd xmm1, xmm2
mulsd xmm0, xmm0
mulsd xmm1, xmm1
mulsd xmm1, xmm10
addsd xmm1, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm1
ja 0x14004ee3d
xorps xmm0, xmm0
sqrtsd xmm0, xmm1
jmp 0x14004ee45
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
comisd xmm7, xmm0
ja 0x14004eef6
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x14004edf0
jmp 0x14004ee7c
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Error_reading_local_player_coordinates
call fcn.14004c900
lea rdx, [0x14004cae0]
mov rcx, rax
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]
add rsi, 0x28
cmp rsi, r15
jne 0x14004ed35
lea rcx, [rbp - 0x59]
call fcn.14004e530
movaps xmm10, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm6, xmmword [rsp + 0xc0]
mov r14, qword [rsp + 0x100]
mov rdi, qword [rsp + 0xf8]
mov rbx, qword [rsp + 0xf0]
mov rcx, qword [rbp - 0x19]
xor rcx, rsp
call fcn.140093b30
mov rsi, qword [rsp + 0x108]
add rsp, 0xd0
pop r15
pop r12
pop rbp
ret
lea rcx, [rbp - 0x59]
call fcn.14004e530
mov rax, qword [rbp - 0x59]
sub rax, qword [0x1400b9238]
cmp rax, 0x17d78400
jl 0x14004ee92
lea rcx, reloc.WS2_32.dll_bind
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x14004ef2f
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
cmp dword [0x1400b816c], 0x7fffffff
jne 0x14004ef51
mov ecx, 6
mov dword [0x1400b816c], 0x7ffffffe
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov eax, 1
lea rcx, reloc.WS2_32.dll_bind
xchg byte [0x1400b8c9a], al
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x41], xmm0
mov cl, 0x5a
mov dword [rbp - 0x41], 1
movups xmmword [rbp - 0x31], xmm0
mov qword [rbp - 0x21], rax
call qword [sym.imp.USER32.dll_VkKeyScanA]
mov r8d, Ordinal_41
mov dword [rbp - 0x35], r14d
lea rdx, [rbp - 0x41]
mov word [rbp - 0x39], ax
mov ecx, 1
call qword [sym.imp.USER32.dll_SendInput]
lea rcx, [rbp - 0x51]
mov qword [rbp - 0x51], 0x64
call fcn.14004fd90
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x41], xmm0
mov cl, 0x5a
mov dword [rbp - 0x41], 1
movups xmmword [rbp - 0x31], xmm0
mov qword [rbp - 0x21], rax
call qword [sym.imp.USER32.dll_VkKeyScanA]
mov r8d, Ordinal_41
mov dword [rbp - 0x35], 2
lea rdx, [rbp - 0x41]
mov word [rbp - 0x39], ax
mov ecx, 1
call qword [sym.imp.USER32.dll_SendInput]
mov rax, qword [rbp - 0x59]
mov qword [0x1400b9238], rax
xchg byte [0x1400b8c9a], r14b
jmp 0x14004ee92