Function at 0x140002020
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0xa0
lea r15, [rsp + 0xc8]
movaps xmmword [rsp + 0x70], xmm8
mov rsi, qword [r15]
mov r14, rdx
mov qword [r15], 0
mov rdi, rcx
mov eax, dword [rcx + 0x20]
mov r13d, 1
movaps xmmword [rsp + 0x60], xmm9
movaps xmmword [rsp + 0x50], xmm10
test eax, eax
jne 0x140002074
xor ebx, ebx
jmp 0x14000207f
mov ebx, dword [rsp + 0x30]
cmp eax, r13d
cmove ebx, r13d
mov rax, qword gs:[0x58]
mov ecx, 4
movaps xmmword [rsp + 0x90], xmm6
mov rbp, qword [rax]
mov eax, dword [rcx + rbp]
cmp dword [0x14015eb70], eax
jle 0x1400020f3
lea rcx, [0x14015eb70]
call fcn.14005d080
cmp dword [0x14015eb70], 0xffffffff
jne 0x1400020f3
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor ecx, ecx
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea rcx, [0x14015eb70]
movss dword [0x14015eb7c], xmm6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x14015eb78], xmm0
call fcn.14005d014
mov r9d, ebx
lea rdx, [rsp + 0x30]
mov r8, r14
call fcn.14005c850
mov ecx, 4
mov eax, dword [rcx + rbp]
cmp dword [0x14015eb70], eax
jle 0x140002163
lea rcx, [0x14015eb70]
call fcn.14005d080
cmp dword [0x14015eb70], 0xffffffff
jne 0x140002163
mov ecx, r13d
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor ecx, ecx
movd xmm6, eax
cvtdq2ps xmm6, xmm6
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea rcx, [0x14015eb70]
movss dword [0x14015eb7c], xmm6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [0x14015eb78], xmm0
call fcn.14005d014
movsd xmm0, qword [rsp + 0x30]
lea r8, [rsp + 0x40]
mov eax, dword [rsp + 0x38]
lea rdx, [rsp + 0x30]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
call fcn.14005c990
movss xmm10, dword [rsp + 0x30]
xorps xmm8, xmm8
ucomiss xmm10, xmm8
movss xmm9, dword [rsp + 0x34]
jp 0x1400021ac
jne 0x1400021ac
ucomiss xmm9, xmm8
jp 0x1400021ac
je 0x1400023de
xor ecx, ecx
movaps xmmword [rsp + 0x80], xmm7
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
mov ecx, r13d
sub eax, edx
sar eax, 1
mov ebx, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
sub eax, edx
sar eax, 1
cvtps2pd xmm0, xmm9
mov r14d, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
movsd xmm1, qword [0x1400692d8]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x1400692d8]
movaps xmm7, xmm0
movd xmm2, ebx
cvtdq2pd xmm2, xmm2
cvtps2pd xmm0, xmm10
subsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm7
ucomiss xmm1, xmm0
ja 0x14000222d
xorps xmm5, xmm5
sqrtss xmm5, xmm0
jmp 0x140002235
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm5, xmm0
ucomiss xmm10, xmm8
movsd xmm4, qword [0x1400692b0]
xorps xmm7, xmm7
xorps xmm6, xmm6
jp 0x14000224f
je 0x1400022d0
movd xmm3, ebx
cvtdq2ps xmm3, xmm3
comiss xmm10, xmm3
jbe 0x14000229f
xorps xmm1, xmm1
lea eax, [rbx + rbx]
movaps xmm0, xmm3
movaps xmm2, xmm3
subss xmm0, xmm10
xorps xmm0, xmmword [0x1400697d0]
cvtss2sd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rdi + 4]
subsd xmm0, xmm4
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm7, xmm1
cvtsi2ss xmm0, eax
addss xmm2, xmm7
comiss xmm2, xmm0
jbe 0x14000229f
xorps xmm7, xmm7
comiss xmm3, xmm10
jbe 0x1400022d0
movd xmm0, dword [rdi + 4]
subss xmm10, xmm3
cvtdq2pd xmm0, xmm0
cvtps2pd xmm1, xmm10
subsd xmm0, xmm4
divsd xmm1, xmm0
cvtpd2ps xmm7, xmm1
addss xmm3, xmm7
comiss xmm8, xmm3
jbe 0x1400022d0
xorps xmm7, xmm7
ucomiss xmm9, xmm8
jp 0x1400022dc
je 0x14000235f
movd xmm3, r14d
cvtdq2ps xmm3, xmm3
comiss xmm9, xmm3
jbe 0x14000232e
xorps xmm1, xmm1
lea eax, [r14 + r14]
movaps xmm0, xmm3
movaps xmm2, xmm3
subss xmm0, xmm9
xorps xmm0, xmmword [0x1400697d0]
cvtss2sd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rdi + 4]
subsd xmm0, xmm4
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm6, xmm1
cvtsi2ss xmm0, eax
addss xmm2, xmm6
comiss xmm2, xmm0
jbe 0x14000232e
xorps xmm6, xmm6
comiss xmm3, xmm9
jbe 0x14000235f
movd xmm0, dword [rdi + 4]
subss xmm9, xmm3
cvtdq2pd xmm0, xmm0
cvtps2pd xmm1, xmm9
subsd xmm0, xmm4
divsd xmm1, xmm0
cvtpd2ps xmm6, xmm1
addss xmm3, xmm6
comiss xmm8, xmm3
jbe 0x14000235f
xorps xmm6, xmm6
movd xmm0, dword [rdi]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm5
jbe 0x1400023d6
mov eax, 4
mov eax, dword [rax + rbp]
cmp dword [0x14015e7b0], eax
jle 0x1400023a6
lea rcx, [0x14015e7b0]
call fcn.14005d080
cmp dword [0x14015e7b0], 0xffffffff
jne 0x1400023a6
lea rcx, [0x14015e7b0]
mov dword [0x14015e7a8], 0
call fcn.14005d014
mov ecx, dword [0x14015e7ac]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1400023d6
cvttss2si r8, xmm6
xor r9d, r9d
mov ecx, r13d
mov qword [rsp + 0x20], 0
cvttss2si rdx, xmm7
call qword [sym.imp.USER32.dll_mouse_event]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov qword [r15], rsi
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rsi
ret