Function at 0x1800041c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
sub rsp, 0xc8
cmp byte [0x180096ccd], 0
je 0x1800048f0
mov rcx, qword [0x18008ca40]
mov qword [rax + 0x10], rbx
add rcx, 0x40
mov qword [rax + 0x18], rsi
mov qword [rax - 8], rdi
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rsp + 0x40], xmm13
call fcn.180002a50
mov rcx, qword [0x18008ca40]
movabs rdx, 0xd80958fc74e988a6
call fcn.180002ad0
mov rcx, qword [0x18008ca40]
add rcx, 0x40
mov rax, qword [rcx]
mov ebx, dword [rax]
call fcn.180002a50
mov rdx, qword [0x18008ca40]
xor esi, esi
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], ebx
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 1
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
movabs rdx, 0x3fef770d40960d5a
mov rcx, qword [0x18008ca40]
call fcn.180002ad0
mov rcx, qword [0x18008ca40]
add rcx, 0x40
mov rax, qword [rcx]
movsd xmm0, qword [rax + 0x10]
movups xmm11, xmmword [rax]
movsd qword [rsp + 0x30], xmm0
call fcn.180002a50
mov rcx, qword [0x18008ca40]
movabs rdx, 0x743607648add4587
call fcn.180002ad0
mov rcx, qword [0x18008ca40]
add rcx, 0x40
mov rax, qword [rcx]
movss xmm6, dword [rax]
call fcn.180002a50
mov rdx, qword [0x18008ca40]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], ebx
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
movabs rdx, 0xe83d4f9ba2a38914
mov rcx, qword [0x18008ca40]
call fcn.180002ad0
mov rcx, qword [0x18008ca40]
add rcx, 0x40
mov rax, qword [rcx]
addss xmm6, dword [rax]
call fcn.180002a50
mov rcx, qword [0x18008ca40]
movabs rdx, 0x3a6867b4845beda2
call fcn.180002ad0
movss xmm12, dword [0x1800623e4]
cvtps2pd xmm6, xmm6
mulsd xmm6, qword [0x180062420]
divsd xmm6, qword [0x180062438]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm9, xmm0
xorps xmm9, xmmword [0x180062820]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
mov rdi, qword [0x18008ca40]
movaps xmm10, xmm0
mov rax, qword [rdi + 0x40]
movss xmm0, dword [rax]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x180062420]
divsd xmm0, qword [0x180062438]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm7, xmm0
movaps xmm1, xmm9
mulsd xmm1, xmm9
movaps xmm0, xmm10
mulsd xmm0, xmm10
movaps xmm2, xmm7
mulsd xmm2, xmm7
addsd xmm0, xmm1
xorps xmm1, xmm1
addsd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x18000440d
sqrtsd xmm0, xmm0
jmp 0x180004412
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jp 0x18000441d
je 0x18000442b
divsd xmm9, xmm0
divsd xmm10, xmm0
divsd xmm7, xmm0
movss xmm13, dword [rsp + 0x30]
lea rcx, [rdi + 0x40]
movaps xmm8, xmm11
shufps xmm8, xmm11, 0xaa
call fcn.180002a50
mov rdx, qword [0x18008ca40]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], ebx
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 0x38d1b717
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 0x38d1b717
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 0x38d1b717
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
movabs rdx, 0x1c99bb7b6e96d16f
mov rcx, qword [0x18008ca40]
call fcn.180002ad0
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movabs rdi, 0x91aef906bca88877
test ax, ax
jne 0x1800045c2
mov rcx, qword [0x18008ca40]
add rcx, 0x40
call fcn.180002a50
mov rdx, qword [0x18008ca40]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 2
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 0x15
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, rdi
mov rcx, qword [0x18008ca40]
call fcn.180002ad0
mov rax, qword [0x18008ca40]
mov rcx, qword [rax + 0x40]
cmp dword [rcx], esi
je 0x1800045cb
movss xmm12, dword [0x180062440]
mov ecx, 0x43
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180004671
mov rcx, qword [0x18008ca40]
add rcx, 0x40
call fcn.180002a50
mov r8, qword [0x18008ca40]
mov rdx, rdi
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 2
mov rax, qword [rsp + 0xd0]
mov ecx, dword [r8 + 0x48]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 0x13
mov qword [r8 + rcx*8 + 0x170], rax
inc dword [r8 + 0x48]
mov r8, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov ecx, dword [r8 + 0x48]
mov qword [r8 + rcx*8 + 0x170], rax
inc dword [r8 + 0x48]
mov rcx, qword [0x18008ca40]
call fcn.180002ad0
mov rax, qword [0x18008ca40]
mov rcx, qword [rax + 0x40]
cmp dword [rcx], esi
je 0x180004682
cvtps2pd xmm0, xmm12
subsd xmm0, qword [0x180062408]
cvtpd2ps xmm12, xmm0
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rdi, qword [rsp + 0xc0]
cvtps2pd xmm6, xmm12
test ax, ax
je 0x1800046e4
xorps xmm0, xmm0
movaps xmm1, xmm6
cvtss2sd xmm0, xmm11
mulsd xmm1, xmm9
movaps xmm2, xmm6
mulsd xmm2, xmm10
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm8
cvtpd2ps xmm11, xmm1
addsd xmm2, xmm0
movaps xmm1, xmm6
cvtps2pd xmm0, xmm13
mulsd xmm1, xmm7
cvtpd2ps xmm8, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm13, xmm1
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm12, xmmword [rsp + 0x50]
test ax, ax
je 0x18000473d
xorps xmm1, xmm1
movaps xmm0, xmm6
cvtss2sd xmm1, xmm11
mulsd xmm0, xmm9
xorps xmm2, xmm2
cvtss2sd xmm2, xmm8
subsd xmm1, xmm0
movaps xmm0, xmm6
mulsd xmm0, xmm10
mulsd xmm6, xmm7
cvtpd2ps xmm11, xmm1
cvtps2pd xmm1, xmm13
subsd xmm2, xmm0
subsd xmm1, xmm6
cvtpd2ps xmm8, xmm2
cvtpd2ps xmm13, xmm1
mov rcx, qword [0x18008ca40]
add rcx, 0x40
call fcn.180002a50
mov rdx, qword [0x18008ca40]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], ebx
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rsp + 0xd0], rsi
movss dword [rsp + 0xd0], xmm11
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rsi
movss dword [rsp + 0xd0], xmm8
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rsi
movss dword [rsp + 0xd0], xmm13
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 1
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 1
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd0], rsi
mov dword [rsp + 0xd0], 1
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
mov rdx, qword [0x18008ca40]
mov rax, qword [rsp + 0xd0]
mov ecx, dword [rdx + 0x48]
mov qword [rdx + rcx*8 + 0x170], rax
inc dword [rdx + 0x48]
movabs rdx, 0x239a3351ac1da385
mov rcx, qword [0x18008ca40]
call fcn.180002ad0
movaps xmm13, xmmword [rsp + 0x40]
movaps xmm11, xmmword [rsp + 0x60]
movaps xmm10, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xb0]
mov rsi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xd8]
add rsp, 0xc8
ret