Function at 0x180105830
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
sub rsp, 0xe8
cmp byte [0x18029c618], 0
je 0x180105ca9
mov rcx, qword [0x180217fa8]
mov qword [rax + 8], rbx
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 + 0x60], xmm13
call fcn.18001a360
mov rcx, qword [0x180217fa8]
movabs rdx, 0xd80958fc74e988a6
call fcn.18001a3e0
mov rax, qword [0x180217fa8]
xor r8d, r8d
mov rcx, qword [rax]
mov edx, dword [rcx]
movabs rcx, 0x9a9112a0fe9a4713
call fcn.180070ca0
mov rcx, qword [0x180217fa8]
mov ebx, eax
call fcn.18001a360
mov r8, qword [0x180217fa8]
xor edi, edi
mov qword [rsp + 0xf8], rdi
mov dword [rsp + 0xf8], ebx
mov rcx, qword [rsp + 0xf8]
mov edx, dword [r8 + 8]
mov qword [rsp + 0xf8], rdi
mov byte [rsp + 0xf8], 1
mov rax, qword [rsp + 0xf8]
mov qword [r8 + rdx*8 + 0x130], rcx
inc dword [r8 + 8]
mov rdx, qword [0x180217fa8]
mov ecx, dword [rdx + 8]
mov qword [rdx + rcx*8 + 0x130], rax
inc dword [rdx + 8]
movabs rdx, 0x3fef770d40960d5a
mov rcx, qword [0x180217fa8]
call fcn.18001a3e0
mov rcx, qword [0x180217fa8]
mov rax, qword [rcx]
movsd xmm0, qword [rax + 0x10]
movups xmm10, xmmword [rax]
movsd qword [rsp + 0x50], xmm0
call fcn.18001a360
mov rcx, qword [0x180217fa8]
movabs rdx, 0x743607648add4587
call fcn.18001a3e0
mov rcx, qword [0x180217fa8]
mov rax, qword [rcx]
movss xmm6, dword [rax]
call fcn.18001a360
mov rdx, qword [0x180217fa8]
mov qword [rsp + 0xf8], rdi
mov dword [rsp + 0xf8], ebx
mov rax, qword [rsp + 0xf8]
mov ecx, dword [rdx + 8]
mov qword [rdx + rcx*8 + 0x130], rax
inc dword [rdx + 8]
movabs rdx, 0xe83d4f9ba2a38914
mov rcx, qword [0x180217fa8]
call fcn.18001a3e0
mov rcx, qword [0x180217fa8]
mov rax, qword [rcx]
addss xmm6, dword [rax]
call fcn.18001a360
mov rcx, qword [0x180217fa8]
movabs rdx, 0x3a6867b4845beda2
call fcn.18001a3e0
mov rax, qword [0x180217fa8]
mov edx, ebx
movss xmm2, dword [0x1801b74b0]
mov rcx, qword [rax]
movss xmm9, dword [rcx]
movabs rcx, 0x8e2530aa8ada980e
call fcn.180070ff0
movss xmm13, dword [0x1801b7374]
cvtps2pd xmm6, xmm6
mulsd xmm6, qword [0x1801b7498]
divsd xmm6, qword [0x1801b74e0]
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm11, xmm0
movaps xmm0, xmm6
xorps xmm11, xmmword [0x1801b7910]
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movaps xmm12, xmm0
cvtps2pd xmm0, xmm9
mulsd xmm0, qword [0x1801b7498]
divsd xmm0, qword [0x1801b74e0]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm8, xmm0
movaps xmm1, xmm11
mulsd xmm1, xmm11
movaps xmm0, xmm12
mulsd xmm0, xmm12
movaps xmm2, xmm8
mulsd xmm2, xmm8
addsd xmm0, xmm1
xorps xmm1, xmm1
addsd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x180105a9c
sqrtsd xmm0, xmm0
jmp 0x180105aa1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jp 0x180105aac
je 0x180105abb
divsd xmm11, xmm0
divsd xmm12, xmm0
divsd xmm8, xmm0
movss xmm2, dword [0x1801b7218]
movaps xmm7, xmm10
movss xmm9, dword [rsp + 0x50]
movaps xmm3, xmm2
mov edx, ebx
movss dword [rsp + 0x20], xmm2
movabs rcx, 0x1c99bb7b6e96d16f
shufps xmm7, xmm10, 0xaa
call fcn.180078f80
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movabs rdi, 0x91aef906bca88877
test ax, ax
jne 0x180105b1c
mov edx, 2
mov rcx, rdi
lea r8d, [rdx + 0x13]
call fcn.180070900
test eax, eax
je 0x180105b25
movss xmm13, dword [0x1801b74ec]
mov ecx, 0x43
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180105b4a
mov edx, 2
mov rcx, rdi
lea r8d, [rdx + 0x11]
call fcn.180070900
test eax, eax
je 0x180105b5b
cvtps2pd xmm0, xmm13
subsd xmm0, qword [0x1801b7430]
cvtpd2ps xmm13, xmm0
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x180105b86
mov edx, 2
mov rcx, rdi
lea r8d, [rdx + 0x1e]
call fcn.180070900
test eax, eax
jne 0x180105b86
cvtps2pd xmm6, xmm13
jmp 0x180105bcf
xorps xmm0, xmm0
cvtss2sd xmm0, xmm10
cvtps2pd xmm6, xmm13
movaps xmm1, xmm6
movaps xmm2, xmm6
mulsd xmm1, xmm11
mulsd xmm2, xmm12
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm7
cvtpd2ps xmm10, xmm1
addsd xmm2, xmm0
movaps xmm1, xmm6
cvtps2pd xmm0, xmm9
mulsd xmm1, xmm8
cvtpd2ps xmm7, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm9, xmm1
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm13, xmmword [rsp + 0x60]
test ax, ax
jne 0x180105bfc
mov edx, 2
mov r8d, 0x10d
mov rcx, rdi
call fcn.180070900
test eax, eax
je 0x180105c3e
xorps xmm1, xmm1
movaps xmm0, xmm6
mulsd xmm0, xmm11
xorps xmm2, xmm2
cvtss2sd xmm1, xmm10
cvtps2pd xmm3, xmm9
subsd xmm1, xmm0
movaps xmm0, xmm6
cvtss2sd xmm2, xmm7
mulsd xmm0, xmm12
mulsd xmm6, xmm8
cvtpd2ps xmm10, xmm1
subsd xmm2, xmm0
subsd xmm3, xmm6
cvtpd2ps xmm7, xmm2
cvtpd2ps xmm9, xmm3
mov byte [rsp + 0x30], 1
movaps xmm3, xmm9
mov byte [rsp + 0x28], 1
movaps xmm2, xmm7
movaps xmm1, xmm10
mov byte [rsp + 0x20], 1
mov ecx, ebx
call fcn.18007a3c0
movaps xmm12, xmmword [rsp + 0x70]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0xd0]
mov rdi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xf0]
add rsp, 0xe8
ret