Function at 0x14004c8f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x1a8]
sub rsp, 0x290
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rax - 0x98], xmm13
movaps xmmword [rax - 0xa8], xmm14
mov rax, qword [0x14007b010]
xor rax, rsp
mov qword [rbp + 0xf8], rax
mov rdi, rdx
mov qword [rbp + 8], rdx
ucomisd xmm0, qword [0x1400712a0]
jp 0x14004c96e
je 0x14004d297
mov rax, qword [0x14009fca0]
cmp byte [rax], 0
je 0x14004d297
mov rcx, qword [0x14009fd80]
cmp qword [rcx + 0x20], 0
je 0x14004d297
xorps xmm9, xmm9
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
xorps xmm10, xmm10
xorps xmm14, xmm14
mov ecx, dword [rax + 0x10]
test ecx, ecx
jne 0x14004ca53
mov rax, qword [rdx]
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x14004c9c9
movups xmmword [rsp + 0x58], xmm0
movsd qword [rsp + 0x68], xmm10
jmp 0x14004c9de
mov r8d, 0x6d
lea rdx, [rsp + 0x58]
call fcn.1400407e0
movups xmm0, xmmword [rsp + 0x58]
movaps xmmword [rbp - 0x50], xmm0
movsd xmm0, qword [rsp + 0x68]
movsd qword [rbp - 0x40], xmm0
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x20]
call fcn.14003fd50
movsd xmm8, qword [rax]
movsd xmm7, qword [rax + 8]
mov rax, qword [rdi]
mov rcx, qword [rax + 8]
test rcx, rcx
jne 0x14004ca1f
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
movsd qword [rbp - 0x60], xmm10
jmp 0x14004ca32
mov r8d, 0x6d
lea rdx, [rbp - 0x70]
call fcn.1400407e0
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rsp + 0x70], xmm0
movsd xmm0, qword [rbp - 0x60]
movaps xmm9, xmm8
unpcklpd xmm9, xmm7
movaps xmm14, xmm0
movsd qword [rbp - 0x80], xmm0
jmp 0x14004cb79
cmp ecx, 1
jne 0x14004cacf
mov rax, qword [rdx]
lea r8d, [rcx + 0x41]
lea rdx, [rbp - 0x70]
mov rcx, qword [rax + 8]
call fcn.1400407e0
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x50], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp - 0x40], xmm1
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x20]
call fcn.14003fd50
movsd xmm8, qword [rax]
movsd xmm7, qword [rax + 8]
mov rax, qword [rdi]
mov r8d, 0x42
lea rdx, [rsp + 0x58]
mov rcx, qword [rax + 8]
call fcn.1400407e0
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x70], xmm0
movsd xmm1, qword [rax + 0x10]
movaps xmm9, xmm8
unpcklpd xmm9, xmm7
movaps xmm14, xmm1
movsd qword [rbp - 0x80], xmm1
jmp 0x14004cb79
cmp ecx, 2
jne 0x14004cb6d
mov rax, qword [rdx]
lea r8d, [rcx + 0x23]
lea rdx, [rbp + 0x38]
mov rcx, qword [rax + 8]
call fcn.1400407e0
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x50], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp - 0x40], xmm1
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x58]
call fcn.14003fd50
mov rax, qword [rdi]
mov r8d, 8
lea rdx, [rbp + 0x50]
mov rcx, qword [rax + 8]
call fcn.1400407e0
movups xmm0, xmmword [rax]
movaps xmmword [rbp - 0x70], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp - 0x60], xmm1
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x20]
call fcn.14003fd50
movsd xmm8, qword [rbp - 0x20]
subsd xmm8, qword [rsp + 0x58]
mulsd xmm8, qword [0x140071050]
addsd xmm8, qword [rsp + 0x58]
movsd xmm7, qword [rsp + 0x60]
movaps xmm9, xmm8
unpcklpd xmm9, xmm7
jmp 0x14004cb79
xorps xmm7, xmm7
unpckhpd xmm7, xmm9
xorps xmm8, xmm8
mov rax, qword [0x14009fcc0]
cmp byte [rax + 0xc], 0
je 0x14004cc32
mov rax, qword [0x14009fba0]
mov rax, qword [rax + 0x4088]
lea r8, str.Foreground
mov edx, 1
mov rcx, qword [rax]
call fcn.140007290
mov r10, rax
mov rcx, qword [0x14009fcb8]
movss xmm6, dword [rcx + 0x14]
movups xmm0, xmmword [rcx + 0xa0]
movups xmmword [rbp - 0x30], xmm0
lea rcx, [rbp - 0x30]
call fcn.140004810
mov r9d, eax
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm7
cvtpd2ps xmm0, xmm8
movss dword [rsp + 0x44], xmm0
movss dword [rsp + 0x48], xmm1
mov eax, dword [0x14009fe94]
cdq
sub eax, edx
sar eax, 1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mov eax, dword [0x14009fe90]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rsp + 0x4c], xmm0
movss dword [rsp + 0x50], xmm1
movss dword [rsp + 0x20], xmm6
lea r8, [rsp + 0x44]
lea rdx, [rsp + 0x4c]
mov rcx, r10
call fcn.1400248e0
mov ebx, dword [0x14009fc98]
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
movaps xmm2, xmm8
subsd xmm2, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [0x14009fc9c]
movaps xmm0, xmm7
subsd xmm0, xmm1
mulsd xmm0, xmm0
mulsd xmm2, xmm2
addsd xmm0, xmm2
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x14004cc7f
xorps xmm12, xmm12
sqrtss xmm12, xmm1
jmp 0x14004cc8b
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm12, xmm0
movd xmm6, ebx
cvtdq2ps xmm6, xmm6
mov rax, qword [0x14009fca0]
mulss xmm6, dword [rax + 0x14]
divss xmm6, dword [0x14009f060]
movzx ecx, byte [0x14009fd20]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jb 0x14004ccfc
mov rax, qword [0x14009fc80]
cmp byte [rax + 3], 0
je 0x14004d297
mov rbx, qword [0x14009fc70]
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
mov rdx, rbx
mov ecx, dword [rbx + 0x10]
call qword [sym.imp.XINPUT1_4.dll_Ordinal_2]
movups xmm0, xmmword [rbx]
movups xmmword [rbp + 0x28], xmm0
movq rax, xmm0
shr rax, 0x30
test al, al
je 0x14004d297
xor r14d, r14d
movss xmm13, dword [0x140071060]
mov rbx, qword [0x14009fca0]
cmp byte [rbx + 0x28], r14b
je 0x14004cf74
mov rax, qword [rdi]
mov rsi, qword [rax + 8]
test rsi, rsi
jne 0x14004cd2e
xorps xmm11, xmm11
xorps xmm0, xmm0
jmp 0x14004cd5f
lea rdx, [rsi + 0x368]
mov rcx, qword [0x14009fd60]
call fcn.140065e40
movaps xmm11, xmm0
lea rdx, [rsi + 0x370]
mov rcx, qword [0x14009fd60]
call fcn.140065e40
mov rbx, qword [0x14009fca0]
addss xmm0, dword [0x140070fb4]
comiss xmm0, xmm11
setae al
test al, al
je 0x14004cf74
movd xmm0, dword [0x14009fe90]
cvtdq2pd xmm0, xmm0
comisd xmm8, xmm0
ja 0x14004cf74
movd xmm0, dword [0x14009fe94]
cvtdq2pd xmm0, xmm0
comisd xmm7, xmm0
ja 0x14004cf74
comisd xmm10, xmm8
jae 0x14004cf74
comisd xmm10, xmm7
jae 0x14004cf74
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll__dclass
cmp ax, 2
je 0x14004cf74
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll__dclass
cmp ax, 2
je 0x14004cf74
cvtps2pd xmm2, xmm6
movd xmm1, dword [0x14009fc9c]
cvtdq2pd xmm1, xmm1
movd xmm3, dword [0x14009fc98]
cvtdq2pd xmm3, xmm3
movaps xmm0, xmm3
subsd xmm0, xmm2
comisd xmm8, xmm0
jb 0x14004cf74
addsd xmm3, xmm2
comisd xmm3, xmm8
jb 0x14004cf74
movaps xmm0, xmm1
subsd xmm0, xmm2
comisd xmm7, xmm0
jb 0x14004cf74
addsd xmm1, xmm2
comisd xmm1, xmm7
jb 0x14004cf74
movss xmm0, dword [rbx + 0x14]
addss xmm0, xmm0
comiss xmm0, xmm12
jb 0x14004cf74
subsd xmm7, qword [0x14009f038]
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm7
movaps xmm1, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm6, xmm0
subsd xmm8, qword [0x14009f030]
cvtpd2ps xmm0, xmm8
movaps xmm1, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
xorps xmm1, xmm1
subsd xmm1, qword [0x14009f040]
cvtpd2ps xmm0, xmm1
movaps xmm1, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm6
ja 0x14004ceaf
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x14004ceb7
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
divsd xmm1, qword [0x1400710b0]
movss xmm0, dword [rbx + 0x18]
cvtps2pd xmm0, xmm0
comisd xmm0, xmm1
jb 0x14004cf74
cmp byte [rbx + 0x29], r14b
je 0x14004cf3b
mov rdx, qword [0x14009fd80]
mov rdx, qword [rdx + 0x20]
lea rcx, [rbp + 0xd8]
call fcn.140040340
mov rdx, qword [rbp + 0xf0]
cmp rdx, 0x10
jb 0x14004cf6d
inc rdx
mov rcx, qword [rbp + 0xd8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004cf34
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004cf34
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140067560
jmp 0x14004cf6d
mov qword [rsp + 0x20], r14
mov r9d, 2
xor r8d, r8d
xor edx, edx
mov ecx, r9d
call qword [sym.imp.USER32.dll_mouse_event]
mov qword [rsp + 0x20], r14
mov r9d, 4
xor r8d, r8d
xor edx, edx
mov ecx, r9d
call qword [sym.imp.USER32.dll_mouse_event]
mov rbx, qword [0x14009fca0]
cmp byte [rbx + 0x30], r14b
je 0x14004d279
mov esi, 4
mov rax, qword gs:[0x58]
mov rbx, qword [rax]
movabs r15, 0x8000000000000000
mov eax, dword [rsi + rbx]
cmp dword [0x14009feb0], eax
jle 0x14004d0ab
lea rcx, [0x14009feb0]
call fcn.140067760
cmp dword [0x14009feb0], 0xffffffff
jne 0x14004d0ab
mov rax, qword [0x14009fd80]
mov rcx, qword [rax + 0x20]
test rcx, rcx
jne 0x14004cfdc
xor eax, eax
mov byte [rsp + 0x40], al
jmp 0x14004d062
add rcx, 0x9f8
mov byte [rbp + 0xd0], 0
mov dword [rbp + 0x94], r14d
mov r10, qword [0x14009fd60]
mov eax, dword [r10]
mov dword [rbp + 0x90], eax
mov qword [rbp + 0x98], rcx
lea rax, [rbp + 0xd0]
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xa8], 1
mov dword [rbp + 0x70], 1
lea rax, [rbp + 0x90]
mov qword [rbp + 0x78], rax
mov dword [rbp + 0x74], 3
mov rax, qword [r10 + 0x10]
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], 0x56
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8, [rbp + 0x70]
mov edx, 0x404
mov rcx, qword [r10 + 8]
call rax
lea rdx, [rbp + 0xb4]
mov rcx, qword [0x14009fd60]
call fcn.140065e40
xor edx, edx
movss xmm1, dword [0x140071294]
comiss xmm0, xmm1
jb 0x14004d090
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x14004d090
mov rdx, r15
cvttss2si rax, xmm0
add rax, rdx
mov qword [0x14009fea8], rax
lea rcx, [0x14009feb0]
call fcn.140067700
mov eax, dword [rsi + rbx]
cmp dword [0x14009fe98], eax
jle 0x14004d1b9
lea rcx, [0x14009fe98]
call fcn.140067760
cmp dword [0x14009fe98], 0xffffffff
jne 0x14004d1b9
mov rax, qword [0x14009fd80]
mov rdx, qword [rax]
mov rbx, qword [0x14009fd60]
add rdx, 0x110
mov rcx, rbx
call fcn.140065ac0
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
movsd qword [rbp], xmm10
mov r9d, 0x18
lea r8, [rbp - 0x10]
mov rdx, rax
mov rcx, rbx
call fcn.14003ee10
movsd xmm0, qword [rsp + 0x78]
subsd xmm0, qword [rbp - 8]
cvtpd2ps xmm0, xmm0
movaps xmm1, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm6, xmm0
movsd xmm0, qword [rsp + 0x70]
subsd xmm0, qword [rbp - 0x10]
cvtpd2ps xmm0, xmm0
movaps xmm1, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
subsd xmm14, qword [rbp]
cvtpd2ps xmm0, xmm14
movaps xmm1, xmm13
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm6
ja 0x14004d175
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x14004d17d
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
cvtss2sd xmm0, xmm0
xor edx, edx
movsd xmm1, qword [0x140071260]
comisd xmm0, xmm1
jb 0x14004d19e
subsd xmm0, xmm1
comisd xmm0, xmm1
jae 0x14004d19e
mov rdx, r15
cvttsd2si rax, xmm0
add rax, rdx
mov qword [0x14009fea0], rax
lea rcx, [0x14009fe98]
call fcn.140067700
mov qword [rbp + 0x68], r14
mov dword [rbp + 0xb4], r14d
mov rcx, qword [0x14009fd60]
mov eax, dword [rcx]
mov dword [rbp + 0xb0], eax
lea rax, [rbp + 0x269]
mov qword [rbp + 0xb8], rax
lea rax, [rbp + 0x68]
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], 8
mov dword [rbp + 0x80], 1
lea rax, [rbp + 0xb0]
mov qword [rbp + 0x88], rax
mov dword [rbp + 0x84], 3
mov rax, qword [rcx + 0x10]
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], 0x56
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8, [rbp + 0x80]
mov edx, 0x404
mov rcx, qword [rcx + 8]
call rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
movsd qword [rbp + 0x20], xmm10
mov rdx, qword [rbp + 0x68]
add rdx, 0x170
mov r9d, 0x18
lea r8, [rbp + 0x10]
mov rcx, qword [0x14009fd60]
call fcn.14003ee10
mov rbx, qword [0x14009fca0]
cvttss2si rcx, dword [rbx + 0x1c]
call qword [sym.imp.KERNEL32.dll_Sleep]
movdqa xmmword [rsp + 0x70], xmm9
lea rcx, [rsp + 0x70]
call fcn.14004c240
nop
mov rbx, qword [rdi + 8]
test rbx, rbx
je 0x14004d2cc
mov edi, 0xffffffff
mov eax, edi
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14004d2cc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], edi
cmp edi, 1
jne 0x14004d2cc
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov rcx, qword [rbp + 0xf8]
xor rcx, rsp
call fcn.140067470
lea r11, [rsp + 0x290]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop rbp
ret