Function at 0x180046a30
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
sub rsp, 0xe8
mov rax, qword [0x18005edd0]
mov rcx, qword [0x18005eeb0]
movaps xmmword [r11 - 0x28], xmm6
xorps xmm6, xmm6
movaps xmmword [r11 - 0x38], xmm7
xorps xmm7, xmm7
movss xmm0, dword [rax + 0x10]
movaps xmmword [r11 - 0x78], xmm11
xorps xmm11, xmm11
mov qword [r11 + 0x20], rbp
xor ebp, ebp
mov qword [r11 - 0x10], rdi
mov rdi, qword [0x18005eea8]
mov qword [r11 - 0x18], r14
sub rcx, rdi
movaps xmmword [rsp + 0x60], xmm12
movabs r14, 0x4924924924924925
movss xmm12, dword [0x180055640]
movss dword [0x18005e624], xmm0
movss xmm1, dword [rax + 0x14]
mov rax, r14
imul rcx
movaps xmmword [rsp + 0x40], xmm14
movaps xmm14, xmm12
movss dword [0x18005e628], xmm1
movss dword [rsp + 0xf8], xmm6
movss dword [rsp + 0xf0], xmm7
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x180046fea
mov qword [r11 + 0x18], rbx
mov ebx, ebp
mov qword [r11 - 8], rsi
mov esi, ebp
movaps xmmword [r11 - 0x48], xmm8
movss xmm8, dword [0x1800554e4]
movaps xmmword [rsp + 0x50], xmm13
movss xmm13, dword [0x180055560]
movaps xmmword [rsp + 0x30], xmm15
movss xmm15, dword [0x1800555b0]
movaps xmmword [r11 - 0x58], xmm9
movaps xmmword [r11 - 0x68], xmm10
cmp byte [rbx + rdi], 1
je 0x180046f83
cmp dword [rbx + rdi + 0x14], 1
je 0x180046f83
cmp dword [rbx + rdi + 0x18], 0
jle 0x180046f83
movss xmm7, dword [rbx + rdi + 0x20]
ucomiss xmm7, xmm11
jp 0x180046b56
je 0x180046f7a
movss xmm0, dword [rbx + rdi + 0x24]
ucomiss xmm0, xmm11
jp 0x180046b68
je 0x180046f7a
movss xmm0, dword [rbx + rdi + 0x28]
ucomiss xmm0, xmm11
jp 0x180046b7a
je 0x180046f7a
movss xmm0, dword [rbx + rdi + 0x24]
movaps xmm1, xmm13
subss xmm0, dword [0x18005ee44]
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
subss xmm7, dword [0x18005ee40]
movaps xmm6, xmm0
movaps xmm1, xmm13
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
movaps xmm1, xmm13
movss xmm0, dword [rbx + rdi + 0x28]
subss xmm0, dword [0x18005ee48]
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm6
ja 0x180046bd8
xorps xmm7, xmm7
sqrtss xmm7, xmm6
jmp 0x180046be3
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm7, xmm0
cmp byte [0x18005e067], 0
movss xmm1, dword [0x180055594]
movss xmm6, dword [0x180055574]
minss xmm1, xmm7
maxss xmm6, xmm1
je 0x180046cc8
cmp byte [0x18005e068], 0
je 0x180046c68
cmp dword [rbx + rdi + 0x10], 0
jne 0x180046c68
cmp byte [0x18005e0a8], 0
je 0x180046c3e
imul rax, rsi, 0x70
movss dword [rsp + 0x28], xmm6
lea rcx, [rdi + 0x2c]
add rcx, rax
call fcn.180046140
mov rdi, qword [0x18005eea8]
movss xmm0, dword [0x18005e694]
mulss xmm0, xmm15
imul rcx, rsi, 0x70
divss xmm0, xmm7
add rcx, rdi
movss dword [rsp + 0x28], xmm0
call fcn.180046250
mov rdi, qword [0x18005eea8]
cmp byte [0x18005e078], 0
je 0x180046cc8
cmp dword [rbx + rdi + 0x10], 1
jne 0x180046cc8
cmp byte [0x18005e0a8], 0
je 0x180046c9e
imul rax, rsi, 0x70
movss dword [rsp + 0x28], xmm6
lea rcx, [rdi + 0x2c]
add rcx, rax
call fcn.180046140
mov rdi, qword [0x18005eea8]
movss xmm0, dword [0x18005e694]
mulss xmm0, xmm15
imul rcx, rsi, 0x70
divss xmm0, xmm7
add rcx, rdi
movss dword [rsp + 0x28], xmm0
call fcn.180046250
mov rdi, qword [0x18005eea8]
cmp byte [0x18005e061], 0
je 0x180046f71
mov eax, dword [rbx + rdi + 0x10]
test eax, eax
jne 0x180046ce9
cmp byte [0x18005e062], al
je 0x180046f71
cmp eax, 1
jne 0x180046cfb
cmp byte [0x18005e063], 0
je 0x180046f71
cmp byte [0x18005e065], 0
je 0x180046d6b
movss xmm0, dword [rbx + rdi + 0x2c]
addss xmm0, dword [rbx + rdi + 0x20]
mulss xmm0, xmm8
movss dword [rbx + rdi + 0x50], xmm0
mov rax, qword [0x18005eea8]
movss xmm0, dword [rbx + rax + 0x30]
addss xmm0, dword [rbx + rax + 0x24]
cvtps2pd xmm1, xmm0
addsd xmm1, qword [0x180055540]
mulsd xmm1, qword [0x180055558]
cvtpd2ps xmm0, xmm1
movss dword [rbx + rax + 0x54], xmm0
mov rax, qword [0x18005eea8]
movss xmm0, dword [rbx + rax + 0x34]
addss xmm0, dword [rbx + rax + 0x28]
mulss xmm0, xmm8
movss dword [rbx + rax + 0x58], xmm0
jmp 0x180046dd3
cmp byte [0x18005e064], 0
je 0x180046da4
mov eax, dword [rbx + rdi + 0x2c]
mov dword [rbx + rdi + 0x50], eax
mov rax, qword [0x18005eea8]
movss xmm0, dword [rbx + rax + 0x30]
subss xmm0, dword [0x1800554cc]
movss dword [rbx + rax + 0x54], xmm0
mov rcx, qword [0x18005eea8]
mov eax, dword [rbx + rcx + 0x34]
jmp 0x180046dcf
cmp byte [0x18005e066], 0
je 0x180046dda
mov eax, dword [rbx + rdi + 0x44]
mov dword [rbx + rdi + 0x50], eax
mov rcx, qword [0x18005eea8]
mov eax, dword [rbx + rcx + 0x48]
mov dword [rbx + rcx + 0x54], eax
mov rcx, qword [0x18005eea8]
mov eax, dword [rbx + rcx + 0x4c]
mov dword [rbx + rcx + 0x58], eax
mov rdi, qword [0x18005eea8]
movss xmm7, dword [rbx + rdi + 0x50]
movss xmm6, dword [rbx + rdi + 0x54]
subss xmm7, dword [0x18005ee40]
subss xmm6, dword [0x18005ee44]
movss xmm8, dword [rbx + rdi + 0x58]
subss xmm8, dword [0x18005ee48]
movaps xmm0, xmm7
mulss xmm0, xmm7
movaps xmm2, xmm6
mulss xmm2, xmm6
movaps xmm1, xmm8
mulss xmm1, xmm8
addss xmm2, xmm0
xorps xmm0, xmm0
addss xmm2, xmm1
ucomiss xmm0, xmm2
ja 0x180046e36
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x180046e3e
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm6, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_asinf
movaps xmm9, xmm0
movaps xmm1, xmm8
xorps xmm9, xmmword [0x1800559c0]
movaps xmm0, xmm7
mulss xmm9, dword [0x1800555f4]
divss xmm9, dword [0x18005557c]
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2f
movss xmm7, dword [0x18005ee4c]
movaps xmm10, xmm0
movss xmm0, dword [rbx + rdi + 0x24]
movaps xmm1, xmm13
mulss xmm10, dword [0x1800555d4]
movss xmm8, dword [0x18005ee50]
subss xmm0, dword [0x18005ee44]
subss xmm7, xmm10
subss xmm8, xmm9
andps xmm7, xmmword [0x1800559a0]
andps xmm8, xmmword [0x1800559a0]
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
movaps xmm6, xmm0
movaps xmm1, xmm13
movss xmm0, dword [rbx + rdi + 0x20]
subss xmm0, dword [0x18005ee40]
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
movaps xmm1, xmm13
movss xmm0, dword [rbx + rdi + 0x28]
subss xmm0, dword [0x18005ee48]
call sub.api_ms_win_crt_math_l1_1_0.dll_powf
addss xmm6, xmm0
xorps xmm1, xmm1
ucomiss xmm1, xmm6
ja 0x180046f0c
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x180046f14
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm1, xmm8
addss xmm1, xmm7
comiss xmm14, xmm1
jbe 0x180046f68
movss xmm2, dword [0x18005e62c]
comiss xmm2, xmm7
jbe 0x180046f68
comiss xmm2, xmm8
jbe 0x180046f68
comiss xmm12, xmm0
movss xmm8, dword [0x1800554e4]
movaps xmm14, xmm1
jbe 0x180046f71
movaps xmm6, xmm10
movaps xmm7, xmm9
movss dword [rsp + 0xf8], xmm6
movaps xmm12, xmm0
movss dword [rsp + 0xf0], xmm7
jmp 0x180046f83
movss xmm8, dword [0x1800554e4]
movss xmm6, dword [rsp + 0xf8]
movss xmm7, dword [rsp + 0xf0]
mov rcx, qword [0x18005eeb0]
inc ebp
sub rcx, rdi
movsxd rsi, ebp
mov rax, r14
add rbx, 0x70
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rsi, rdx
jb 0x180046b24
movaps xmm15, xmmword [rsp + 0x30]
movaps xmm13, xmmword [rsp + 0x50]
movaps xmm10, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0x90]
movaps xmm8, xmmword [rsp + 0xa0]
mov rsi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0x100]
cmp byte [0x18005e5ca], 0
movaps xmm14, xmmword [rsp + 0x40]
movaps xmm12, xmmword [rsp + 0x60]
mov r14, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0x108]
je 0x180047051
mov ecx, dword [0x18005e6a0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x180047051
ucomiss xmm6, xmm11
jp 0x180047032
je 0x180047051
ucomiss xmm7, xmm11
jp 0x18004703a
je 0x180047051
movss dword [0x18005ee54], xmm6
movss dword [0x18005ee58], xmm7
mov byte [0x18005e5cb], 1
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm11, xmmword [rsp + 0x70]
add rsp, 0xe8
ret