Function at 0x1800012a0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov rax, qword [0x18004f028]
xor rax, rsp
mov qword [rsp + 0x70], rax
cmp byte [0x18004fad9], 0
je 0x180001cc6
mov ecx, 5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180001cc6
mov rcx, qword [0x180053460]
test rcx, rcx
je 0x180001cc6
mov qword [rsp + 0x130], rbx
call fcn.180001220
lea rbx, [0x18004f0a8]
mov r8d, eax
mov rdx, rbx
lea rcx, [0x18004f050]
call fcn.18003bee0
cmp rax, rbx
je 0x180001cbe
mov qword [rsp + 0x118], r14
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x110], r15
mov dword [rsp + 0x30], 0
call fcn.180001ce0
mov r15, qword [0x180053498]
mov r14, rax
test rax, rax
jne 0x180001357
test r15, r15
je 0x180001cae
mov rcx, qword [0x18004fad0]
mov qword [rsp + 0x138], rsi
mov qword [rsp + 0x148], r12
movabs r12, 0x7fffffffffffbfff
movaps xmmword [rsp + 0xf0], xmm7
movaps xmmword [rsp + 0xb0], xmm11
movaps xmmword [rsp + 0xa0], xmm12
movaps xmmword [rsp + 0x90], xmm13
add rcx, 0x336fa70
je 0x180001412
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x180001412
mov rcx, qword [rcx]
add rcx, 0xb8
je 0x180001412
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x180001412
mov rcx, qword [rcx]
test rcx, rcx
je 0x180001412
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x180001412
mov rcx, qword [rcx]
add rcx, 0x10
je 0x180001412
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x180001412
mov rsi, qword [rcx]
add rsi, 0x42c
je 0x180001412
lea rax, [rsi - 0x4000]
cmp rax, r12
ja 0x180001412
movsd xmm7, qword [rsi]
mov esi, dword [rsi + 8]
jmp 0x18000141f
xor esi, esi
mov qword [rsp + 0x50], rsi
movsd xmm7, qword [rsp + 0x50]
cmp byte [0x18004fad8], 0
mov qword [rsp + 0x140], rdi
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0xe0], xmm8
movsd qword [rsp + 0x40], xmm7
movss xmm12, dword [rsp + 0x44]
movss xmm13, dword [rsp + 0x40]
movaps xmmword [rsp + 0xd0], xmm9
movaps xmmword [rsp + 0xc0], xmm10
movd xmm11, esi
je 0x1800016ea
test r15, r15
je 0x1800016ea
mov rdi, qword [0x180053460]
lea rcx, [rdi + 0x5e8]
test rcx, rcx
je 0x1800014b9
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x1800014b9
mov rcx, qword [rcx]
add rcx, 0x1b8
je 0x1800014b9
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x1800014b9
movsd xmm0, qword [rcx]
mov eax, dword [rcx + 8]
jmp 0x1800014c6
xor eax, eax
mov qword [rsp + 0x50], rax
movsd xmm0, qword [rsp + 0x50]
movss xmm8, dword [0x1800534a8]
movss xmm6, dword [0x1800534ac]
movaps xmm2, xmm8
movss xmm9, dword [0x1800534b0]
movaps xmm3, xmm6
movsd qword [rsp + 0x40], xmm0
movaps xmm1, xmm9
subss xmm3, dword [rsp + 0x44]
subss xmm2, dword [rsp + 0x40]
movd xmm0, eax
subss xmm1, xmm0
xorps xmm0, xmm0
mulss xmm3, xmm3
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm3, xmm2
addss xmm3, xmm1
ucomiss xmm0, xmm3
ja 0x18000152a
xorps xmm1, xmm1
sqrtss xmm1, xmm3
jmp 0x180001535
movaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm1, xmm0
movss xmm0, dword [0x180048194]
comiss xmm0, xmm1
jbe 0x1800016f1
movss xmm2, dword [0x1800534a0]
xorps xmm0, xmm0
comiss xmm2, xmm0
movss xmm1, dword [0x1800534a4]
ja 0x180001570
comiss xmm1, xmm0
jbe 0x1800016f1
comiss xmm2, xmm0
jbe 0x180001693
movaps xmm0, xmm8
movd ebx, xmm9
unpcklps xmm0, xmm6
subss xmm8, xmm13
subss xmm6, xmm12
movsd qword [0x1800534a8], xmm0
subss xmm9, xmm11
movsd qword [rsp + 0x40], xmm0
movaps xmm10, xmm0
mov dword [rsp + 0x48], ebx
xorps xmm0, xmm0
mulss xmm8, xmm8
mulss xmm6, xmm6
mulss xmm9, xmm9
addss xmm6, xmm8
addss xmm6, xmm9
ucomiss xmm0, xmm6
ja 0x1800015c7
sqrtss xmm6, xmm6
jmp 0x1800015d2
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm6, xmm0
comiss xmm6, dword [0x180048064]
jbe 0x180001686
mov rcx, rdi
call fcn.18003b0e0
mov rcx, rdi
mov ebx, eax
call fcn.180001220
mov ecx, eax
mov edx, ebx
call fcn.18003b3a0
mov rax, qword [0x18004fad0]
lea rcx, [rsp + 0x50]
add rax, 0x55b5e0
mov rdx, r15
divss xmm6, xmm0
call rax
mov rdi, qword [0x180053460]
movss xmm0, dword [0x1800480ac]
movsd xmm2, qword [rax]
movss xmm3, dword [rax + 8]
movaps xmm10, xmm2
mulss xmm10, xmm0
movaps xmm1, xmm2
mulss xmm3, xmm0
shufps xmm1, xmm1, 0x55
mulss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [0x180048118]
mulss xmm1, xmm6
mulss xmm10, xmm6
addss xmm1, dword [rsp + 0x44]
mulss xmm3, xmm6
addss xmm10, dword [rsp + 0x40]
mulss xmm0, xmm6
addss xmm3, dword [rsp + 0x48]
movsd qword [rsp + 0x50], xmm2
addss xmm1, xmm0
movd ebx, xmm3
unpcklps xmm10, xmm1
movsd qword [rsp + 0x40], xmm10
mov dword [rsp + 0x48], ebx
jmp 0x1800016f1
comiss xmm1, xmm0
jbe 0x1800016f1
mov eax, dword [0x1800534bc]
lea rdx, [rsp + 0x50]
movsd xmm0, qword [0x1800534b4]
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x48], eax
mov r9, r15
lea rax, [rsp + 0x40]
movsd qword [rsp + 0x40], xmm0
mov r8, rdi
mov qword [rsp + 0x20], rax
movsd qword [rsp + 0x50], xmm7
mov dword [rsp + 0x58], esi
call fcn.18003b7b0
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
mov rdi, qword [0x180053460]
lea rcx, [r14 + 0x5e8]
test rcx, rcx
je 0x1800017f4
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x1800017f4
mov rdx, qword [rcx]
add rdx, 0x2c8
je 0x1800017f4
lea rax, [rdx - 0x4000]
cmp rax, r12
ja 0x1800017f4
cmp byte [rdx], 0
je 0x1800017f4
mov rcx, qword [rcx]
add rcx, 0x2c8
je 0x1800018b7
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x1800018b7
cmp byte [rcx], 0
je 0x1800018b7
cmp byte [0x18004fada], 0
je 0x1800018b7
mov eax, dword [0x18004fadc]
test eax, eax
jne 0x18000179f
movsxd rax, dword [rsp + 0x30]
lea rcx, [0x180000000]
lea rax, [rax + rax*8]
movsd xmm0, qword [rcx + rax*4 + 0x51730]
mov eax, dword [rcx + rax*4 + 0x51738]
jmp 0x18000186c
cmp eax, 1
jne 0x1800017c9
movsxd rax, dword [rsp + 0x30]
lea rcx, [0x180000000]
lea rax, [rax + rax*8]
movsd xmm0, qword [rcx + rax*4 + 0x5173c]
mov eax, dword [rcx + rax*4 + 0x51744]
jmp 0x18000186c
cmp eax, 2
jne 0x1800018b7
movsxd rax, dword [rsp + 0x30]
lea rcx, [0x180000000]
lea rax, [rax + rax*8]
movsd xmm0, qword [rcx + rax*4 + 0x51748]
mov eax, dword [rcx + rax*4 + 0x51750]
jmp 0x18000186c
mov eax, dword [0x18004fadc]
test eax, eax
jne 0x180001820
movsxd rax, dword [rsp + 0x30]
lea rcx, [0x180000000]
lea rax, [rax + rax*8]
movsd xmm0, qword [rcx + rax*4 + 0x4fb10]
mov eax, dword [rcx + rax*4 + 0x4fb18]
jmp 0x18000186c
cmp eax, 1
jne 0x180001847
movsxd rax, dword [rsp + 0x30]
lea rcx, [0x180000000]
lea rax, [rax + rax*8]
movsd xmm0, qword [rcx + rax*4 + 0x4fb1c]
mov eax, dword [rcx + rax*4 + 0x4fb24]
jmp 0x18000186c
cmp eax, 2
jne 0x1800018b7
movsxd rax, dword [rsp + 0x30]
lea rcx, [0x180000000]
lea rax, [rax + rax*8]
movsd xmm0, qword [rcx + rax*4 + 0x4fb28]
mov eax, dword [rcx + rax*4 + 0x4fb30]
mov dword [rsp + 0x58], eax
lea rdx, [rsp + 0x30]
lea rax, [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
mov r9, r14
mov qword [rsp + 0x20], rax
mov r8, rdi
movsd qword [rsp + 0x30], xmm7
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x38], esi
call fcn.18003b600
mov rdi, qword [0x180053460]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
mov dword [rsp + 0x48], eax
movsd qword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.18003b1e0
mov rsi, qword [rsp + 0x138]
test al, al
je 0x180001c58
mov ecx, dword [0x18004f040]
mov eax, 0x3c0
movss xmm1, dword [rsp + 0x30]
sub eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x180001c58
lea eax, [rcx + 0x3c0]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x180001c58
movss xmm1, dword [rsp + 0x34]
mov eax, 0x21c
sub eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x180001c58
lea eax, [rcx + 0x21c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x180001c58
lea rbx, [rdi + 0x608]
movaps xmmword [rsp + 0x80], xmm14
test rbx, rbx
je 0x180001988
lea rax, [rbx - 0x4000]
cmp rax, r12
ja 0x180001988
mov rcx, qword [rbx]
add rcx, 0x3c
je 0x180001988
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x180001988
movss xmm9, dword [rcx]
movss xmm10, dword [rcx + 4]
mov rcx, rbx
jmp 0x1800019bd
xor eax, eax
mov rcx, rbx
mov qword [rsp + 0x30], rax
movsd xmm0, qword [rsp + 0x30]
movsd qword [rsp + 0x30], xmm0
test rbx, rbx
je 0x1800019de
lea rax, [rbx - 0x4000]
cmp rax, r12
ja 0x1800019de
movss xmm10, dword [rsp + 0x34]
movss xmm9, dword [rsp + 0x30]
mov rcx, qword [rcx]
add rcx, 0x64
je 0x1800019ec
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x1800019ec
movss xmm6, dword [rcx]
movss xmm14, dword [rcx + 4]
jmp 0x180001a10
movss xmm10, dword [rsp + 0x34]
movss xmm9, dword [rsp + 0x30]
xor eax, eax
mov qword [rsp + 0x30], rax
movsd xmm1, qword [rsp + 0x30]
movaps xmm0, xmm1
movsd qword [rsp + 0x30], xmm1
movss xmm6, dword [rsp + 0x30]
shufps xmm0, xmm0, 0x55
movaps xmm14, xmm0
subss xmm13, dword [rsp + 0x40]
subss xmm12, dword [rsp + 0x44]
subss xmm11, dword [rsp + 0x48]
movaps xmm0, xmm13
mulss xmm0, xmm13
movaps xmm2, xmm12
mulss xmm2, xmm12
movaps xmm1, xmm11
mulss xmm1, xmm11
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x180001a59
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x180001a61
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm12, xmm0
movaps xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_asinf
xorps xmm11, xmmword [0x180048320]
movaps xmm8, xmm0
mulss xmm8, dword [0x180048144]
movaps xmm1, xmm11
movaps xmm0, xmm13
subss xmm8, xmm9
addss xmm8, xmm9
subss xmm8, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movss xmm6, dword [0x18004f044]
movaps xmm1, xmm0
comiss xmm6, dword [0x1800480c0]
xorps xmm1, xmmword [0x180048320]
mulss xmm1, dword [0x180048144]
subss xmm1, xmm10
addss xmm1, xmm10
subss xmm1, xmm14
movaps xmm14, xmmword [rsp + 0x80]
jbe 0x180001bca
movss xmm0, dword [0x1800481e8]
comiss xmm0, xmm8
movss xmm3, dword [0x18004814c]
jbe 0x180001afb
movaps xmm8, xmm0
jmp 0x180001b05
comiss xmm8, xmm3
jbe 0x180001b05
movaps xmm8, xmm3
movss xmm5, dword [0x1800481f0]
comiss xmm5, xmm1
movss xmm2, dword [0x18004816c]
movss xmm4, dword [0x18004815c]
jbe 0x180001b28
addss xmm1, xmm2
jmp 0x180001b31
comiss xmm1, xmm4
jbe 0x180001b31
subss xmm1, xmm2
subss xmm8, xmm9
subss xmm1, xmm10
comiss xmm0, xmm8
ja 0x180001b49
movaps xmm0, xmm3
minss xmm0, xmm8
comiss xmm5, xmm1
jbe 0x180001b54
addss xmm1, xmm2
jmp 0x180001b5d
comiss xmm1, xmm4
jbe 0x180001b5d
subss xmm1, xmm2
divss xmm0, xmm6
divss xmm1, xmm6
addss xmm0, xmm9
addss xmm1, xmm10
ucomiss xmm0, xmm0
setp al
cmp al, 1
je 0x180001c58
ucomiss xmm1, xmm1
setp al
cmp al, 1
je 0x180001c58
test rbx, rbx
je 0x180001c58
lea rax, [rbx - 0x4000]
cmp rax, r12
ja 0x180001c58
mov rcx, qword [rbx]
add rcx, 0x3c
je 0x180001c58
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x180001c58
movss dword [rcx], xmm0
jmp 0x180001c53
movss xmm2, dword [0x1800481e8]
comiss xmm2, xmm8
ja 0x180001bed
movss xmm0, dword [0x18004814c]
movaps xmm2, xmm8
comiss xmm8, xmm0
jbe 0x180001bed
movaps xmm2, xmm0
movss xmm0, dword [0x1800481f0]
comiss xmm0, xmm1
jbe 0x180001c04
addss xmm1, dword [0x18004816c]
jmp 0x180001c15
comiss xmm1, dword [0x18004815c]
jbe 0x180001c15
subss xmm1, dword [0x18004816c]
ucomiss xmm2, xmm2
setp al
cmp al, 1
je 0x180001c58
ucomiss xmm1, xmm1
setp al
cmp al, 1
je 0x180001c58
test rbx, rbx
je 0x180001c58
lea rax, [rbx - 0x4000]
cmp rax, r12
ja 0x180001c58
mov rcx, qword [rbx]
add rcx, 0x3c
je 0x180001c58
lea rax, [rcx - 0x4000]
cmp rax, r12
ja 0x180001c58
movss dword [rcx], xmm2
movss dword [rcx + 4], xmm1
movaps xmm6, xmmword [rsp + 0x100]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm10, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
mov rdi, qword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0xf0]
movaps xmm11, xmmword [rsp + 0xb0]
movaps xmm12, xmmword [rsp + 0xa0]
mov r12, qword [rsp + 0x148]
movaps xmm13, xmmword [rsp + 0x90]
mov r14, qword [rsp + 0x118]
mov r15, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.18003bfa0
add rsp, 0x120
pop rbp
ret