Function at 0x14003f290
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
push r13
lea rbp, [r11 - 0x98]
sub rsp, 0x188
mov rax, qword [0x1400e5250]
xor rax, rsp
mov qword [rbp - 0x38], rax
inc dword [rcx + 0x28]
mov r13, rcx
mov rcx, qword [0x1400e5ed0]
xorps xmm0, xmm0
mov qword [r11 + 0x10], rbx
movabs rax, 0x20c49ba5e353f7cf
mov qword [r11 + 0x20], rdi
sub rcx, qword [r13 + 0x180]
imul rcx
mov rcx, qword [r13 + 0x18]
sar rdx, 7
mov rax, rdx
mov qword [r11 - 0x18], r12
shr rax, 0x3f
mov rcx, qword [rcx + 0x1c8]
add rdx, rax
movaps xmmword [r11 - 0x38], xmm6
movaps xmmword [r11 - 0x48], xmm7
movss xmm7, dword [0x1400cb944]
cvtsi2ss xmm0, rdx
movaps xmmword [r11 - 0x88], xmm11
divss xmm0, dword [0x1400cba18]
minss xmm7, xmm0
movss dword [rsp + 0x54], xmm7
call fcn.140010130
mov rax, qword [r13 + 0x18]
xor edx, edx
mov rcx, qword [rax + 0x1c8]
mov byte [rcx + 0x18], 1
mov rcx, r13
call fcn.14003e990
xor edi, edi
lea rdx, [rsp + 0x68]
lea rcx, [rbp - 0x60]
mov qword [rsp + 0x68], rdi
call fcn.14000dc50
mov rdx, qword [r13 + 0x1c0]
lea r8, [rsp + 0x58]
mov rcx, qword [r13 + 0x1b8]
xorps xmm11, xmm11
mov dword [rsp + 0x58], edi
call fcn.1400401a0
mov rdx, qword [r13 + 0x1d8]
lea r8, [rsp + 0x58]
mov rcx, qword [r13 + 0x1d0]
mov dword [rsp + 0x58], edi
call fcn.1400401a0
mov rdx, qword [r13 + 0x208]
lea r8, [rsp + 0x58]
mov rcx, qword [r13 + 0x200]
mov dword [rsp + 0x58], edi
call fcn.1400401a0
mov rdx, qword [r13 + 0x238]
lea r8, [rsp + 0x58]
mov rcx, qword [r13 + 0x230]
mov dword [rsp + 0x58], edi
call fcn.1400401a0
lea rcx, [rbp - 0x78]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov rbx, qword [rbp - 0x78]
mov r12d, dword [rbp - 0x74]
mov eax, ebx
sub eax, dword [r13 + 0x14c]
movd xmm6, eax
mov eax, r12d
sub eax, dword [r13 + 0x150]
cvtdq2ps xmm6, xmm6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm0
movss dword [rsp + 0x60], xmm0
mulss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x14003f42f
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14003f437
movaps xmm0, xmm1
call fcn.1400b3428
cmp dword [r13 + 0xa8], 1
movd xmm1, dword [r13 + 0x40]
cvtdq2ps xmm1, xmm1
mov byte [rsp + 0x50], 1
mov byte [rsp + 0x51], 1
divss xmm0, xmm1
movss dword [rsp + 0x7c], xmm0
jne 0x14003f4b1
mov ecx, 0x43
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r8, qword [r13 + 0x170]
add r8, qword [r13 + 0x160]
movsx edx, ax
shr edx, 0xf
cmp byte [r13 + 0x178], dil
jne 0x14003f494
cmp r8, qword [0x1400e5ed0]
mov byte [rsp + 0x51], 1
jle 0x14003f499
mov byte [rsp + 0x51], dil
mov rbx, qword [rbp - 0x78]
mov al, 1
mov r12d, dword [rbp - 0x74]
and al, dl
mov byte [rsp + 0x50], al
jne 0x14003f4b1
mov byte [rsp + 0x50], al
jmp 0x14003f4b5
mov byte [r13 + 0x2c], dil
mov qword [rsp + 0x1b0], rsi
mov qword [rsp + 0x178], r14
mov qword [rsp + 0x170], r15
movaps xmmword [rsp + 0x140], xmm8
movaps xmmword [rsp + 0x130], xmm9
movaps xmmword [rsp + 0x120], xmm10
movaps xmmword [rsp + 0x100], xmm12
movaps xmmword [rsp + 0xf0], xmm13
movaps xmmword [rsp + 0xe0], xmm14
movaps xmmword [rsp + 0xd0], xmm15
cmp byte [r13 + 0x2c], dil
jne 0x14003fa4f
mov rcx, qword [r13 + 0x10]
lea rdx, [rbp - 0x70]
mov rcx, qword [rcx + 0x2f0]
mov rcx, qword [rcx]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [rbp - 0x70]
mov r9d, dword [r13 + 0x14c]
mov eax, r9d
mov ecx, dword [rbp - 0x6c]
sub eax, edx
mov r8d, dword [r13 + 0x150]
mov rbx, qword [rbp - 0x78]
mov r12d, dword [rbp - 0x74]
movd xmm9, eax
mov eax, r8d
sub eax, ecx
cvtdq2ps xmm9, xmm9
movd xmm10, eax
mov eax, ebx
sub eax, edx
movss dword [rsp + 0x64], xmm9
cvtdq2ps xmm10, xmm10
movd xmm15, eax
mov eax, r12d
sub eax, ecx
movss dword [rsp + 0x58], xmm10
cvtdq2ps xmm15, xmm15
movd xmm7, eax
cvtdq2ps xmm7, xmm7
movss dword [rsp + 0x5c], xmm7
cmp r9d, edx
jl 0x14003fa49
mov r10d, dword [rbp - 0x68]
cmp r9d, r10d
jge 0x14003fa49
cmp r8d, ecx
jl 0x14003fa49
mov eax, dword [rbp - 0x64]
cmp r8d, eax
jge 0x14003fa49
cmp ebx, edx
jl 0x14003fa49
cmp ebx, r10d
jge 0x14003fa49
cmp r12d, ecx
jl 0x14003fa49
cmp r12d, eax
jge 0x14003fa49
cmp dword [r13 + 0xa8], edi
jne 0x14003f61c
movss xmm13, dword [r13 + 0xbc]
movss xmm1, dword [r13 + 0xcc]
movss xmm12, dword [r13 + 0xd4]
mov eax, dword [r13 + 0xac]
mov ecx, dword [r13 + 0xb4]
mov edx, dword [r13 + 0xc4]
jmp 0x14003f647
movss xmm13, dword [r13 + 0x114]
xorps xmm12, xmm12
movss xmm1, dword [r13 + 0x124]
mov eax, dword [r13 + 0x104]
mov ecx, dword [r13 + 0x10c]
mov edx, dword [r13 + 0x11c]
movss xmm2, dword [rsp + 0x60]
mov r15d, dword [r13 + 0x34]
movd xmm8, eax
mov eax, r15d
movd xmm14, ecx
mov ecx, dword [r13 + 0x40]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
imul eax, ecx
movss dword [rsp + 0x74], xmm0
cvtdq2ps xmm8, xmm8
cvtdq2ps xmm14, xmm14
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm6, xmm0
divss xmm2, xmm0
divss xmm6, dword [rsp + 0x54]
divss xmm2, dword [rsp + 0x54]
mulss xmm6, xmm1
movaps xmm0, xmm9
minss xmm0, xmm15
mulss xmm2, xmm1
movss dword [rsp + 0x78], xmm6
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
subss xmm0, xmm8
movss dword [rsp + 0x60], xmm2
divss xmm0, xmm6
call fcn.1400b1ddc
cvttss2si r14d, xmm0
movaps xmm0, xmm10
minss xmm0, xmm7
subss xmm0, xmm8
divss xmm0, xmm6
call fcn.1400b1ddc
cvttss2si esi, xmm0
movaps xmm0, xmm9
maxss xmm0, xmm15
addss xmm0, xmm8
divss xmm0, xmm6
call fcn.1400b1d54
cvttss2si edi, xmm0
movaps xmm0, xmm10
maxss xmm0, xmm7
addss xmm0, xmm8
divss xmm0, xmm6
call fcn.1400b1d54
mov eax, dword [r13 + 0x30]
xor r8d, r8d
test esi, esi
cvttss2si ecx, xmm0
cmovns r8d, esi
cmp edi, eax
lea edx, [rax - 1]
mov dword [rsp + 0x68], r8d
cmovl edx, edi
lea eax, [r15 - 1]
mov dword [rbp - 0x80], edx
cmp ecx, r15d
cmovl eax, ecx
xor edi, edi
test r14d, r14d
mov r15d, edi
cmovns r15d, r14d
movzx r14d, byte [rsp + 0x50]
cmp r15d, edx
jge 0x14003fa41
movss xmm6, dword [0x1400cb99c]
mov r12d, eax
nop dword [rax + rax]
mov ebx, r8d
cmp r8d, r12d
jge 0x14003fa23
movss xmm2, dword [rsp + 0x64]
movaps xmm10, xmm15
movaps xmm9, xmm7
subss xmm10, xmm2
subss xmm9, dword [rsp + 0x58]
movaps xmm0, xmm10
mulss xmm0, xmm10
movaps xmm1, xmm9
mulss xmm1, xmm9
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x14003f7bd
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14003f7cb
movaps xmm0, xmm1
call fcn.1400b3428
movss xmm2, dword [rsp + 0x64]
movaps xmm1, xmm6
lea esi, [rbx + 1]
divss xmm1, xmm0
mulss xmm10, xmm1
mulss xmm9, xmm1
nop
mov ecx, dword [r13 + 0x40]
mov edi, esi
imul edi, dword [r13 + 0x38]
mov eax, ecx
imul eax, r15d
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
add edi, r15d
imul ecx, ebx
mulss xmm0, dword [0x1400cb97c]
movd xmm5, eax
cvtdq2ps xmm5, xmm5
movd xmm3, ecx
addss xmm5, xmm0
cvtdq2ps xmm3, xmm3
movaps xmm6, xmm5
addss xmm3, xmm0
subss xmm6, xmm2
movaps xmm4, xmm3
subss xmm4, dword [rsp + 0x58]
movaps xmm0, xmm6
mulss xmm0, xmm10
movaps xmm1, xmm4
mulss xmm1, xmm9
addss xmm1, xmm0
comiss xmm1, xmm11
jb 0x14003f8a2
movaps xmm2, xmm3
movaps xmm1, xmm5
subss xmm2, dword [rsp + 0x5c]
subss xmm1, xmm15
movaps xmm7, xmm10
xorps xmm7, xmmword [0x1400cbd10]
movaps xmm0, xmm9
xorps xmm0, xmmword [0x1400cbd10]
mulss xmm2, xmm0
mulss xmm1, xmm7
addss xmm2, xmm1
comiss xmm2, xmm11
jb 0x14003f89c
movaps xmm2, xmm6
mulss xmm7, xmm4
mulss xmm2, xmm9
addss xmm2, xmm7
andps xmm2, xmmword [0x1400cbcf0]
comiss xmm8, xmm2
jae 0x14003f90c
movss xmm7, dword [rsp + 0x5c]
mulss xmm4, xmm4
movaps xmm0, xmm8
mulss xmm6, xmm6
mulss xmm0, xmm8
addss xmm4, xmm6
comiss xmm0, xmm4
jb 0x14003f8d2
xorps xmm0, xmm0
ucomiss xmm0, xmm4
ja 0x14003f8cd
xorps xmm2, xmm2
sqrtss xmm2, xmm4
jmp 0x14003f90c
movaps xmm0, xmm4
jmp 0x14003f904
subss xmm3, xmm7
subss xmm5, xmm15
mulss xmm3, xmm3
mulss xmm5, xmm5
addss xmm3, xmm5
comiss xmm0, xmm3
jb 0x14003fa00
xorps xmm0, xmm0
ucomiss xmm0, xmm3
ja 0x14003f901
xorps xmm2, xmm2
sqrtss xmm2, xmm3
jmp 0x14003f90c
movaps xmm0, xmm3
call fcn.1400b3428
movaps xmm2, xmm0
cmp byte [rsp + 0x51], 0
je 0x14003f961
movss xmm0, dword [rsp + 0x74]
comiss xmm0, xmm2
jb 0x14003f961
mov rax, qword [r13 + 0x188]
movss xmm0, dword [rsp + 0x78]
movss xmm1, dword [rsp + 0x60]
movsxd rcx, edi
subss xmm0, dword [rax + rcx*4 + 4]
mov rax, qword [r13 + 0x1b8]
movss dword [rax + rcx*4 + 4], xmm0
mov rax, qword [r13 + 0x1a0]
subss xmm1, dword [rax + rcx*4 + 4]
mov rax, qword [r13 + 0x1d0]
movss dword [rax + rcx*4 + 4], xmm1
test r14b, r14b
je 0x14003f9fa
movaps xmm0, xmm8
movaps xmm1, xmm13
subss xmm0, xmm14
comiss xmm2, xmm0
jbe 0x14003f98e
movaps xmm1, xmm8
subss xmm1, xmm2
divss xmm1, xmm14
mulss xmm1, xmm13
mov rax, qword [r13 + 0x1e8]
movsxd rcx, edi
movss xmm0, dword [rax + rcx*4 + 4]
comiss xmm1, xmm0
jbe 0x14003f9b4
mov rax, qword [r13 + 0x200]
subss xmm1, xmm0
movss dword [rax + rcx*4 + 4], xmm1
mov rax, qword [r13 + 0x218]
movss xmm6, dword [0x1400cb99c]
movss xmm7, dword [rsp + 0x5c]
movss xmm0, dword [rax + rcx*4 + 4]
comiss xmm12, xmm0
jbe 0x14003fa08
mov rax, qword [r13 + 0x230]
movaps xmm1, xmm12
subss xmm1, xmm0
movss xmm0, dword [rsp + 0x7c]
addss xmm0, xmm6
divss xmm1, xmm0
movss dword [rax + rcx*4 + 4], xmm1
jmp 0x14003fa08
movss xmm7, dword [rsp + 0x5c]
movss xmm6, dword [0x1400cb99c]
movss xmm2, dword [rsp + 0x64]
inc ebx
inc esi
cmp ebx, r12d
jl 0x14003f7e0
mov edx, dword [rbp - 0x80]
mov r8d, dword [rsp + 0x68]
inc r15d
cmp r15d, edx
jl 0x14003f770
mov rbx, qword [rbp - 0x78]
xor edi, edi
mov r12d, dword [rbp - 0x74]
movss xmm7, dword [rsp + 0x54]
jmp 0x14003fa55
movss xmm7, dword [rsp + 0x54]
jmp 0x14003fa55
movss xmm7, dword [rsp + 0x54]
movzx r14d, byte [rsp + 0x50]
cmp byte [r13 + 0x2c], 0
movaps xmm15, xmmword [rsp + 0xd0]
movaps xmm14, xmmword [rsp + 0xe0]
movaps xmm13, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm10, xmmword [rsp + 0x120]
movaps xmm9, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x140]
mov r15, qword [rsp + 0x170]
mov rsi, qword [rsp + 0x1b0]
mov dword [r13 + 0x150], r12d
mov r12, qword [rsp + 0x180]
mov dword [r13 + 0x14c], ebx
jne 0x14003fd88
movzx edx, byte [r13 + 0x178]
test r14b, r14b
je 0x14003faf0
test dl, dl
jne 0x14003fb0c
mov rax, qword [0x1400e5ed0]
mov dl, 1
mov qword [r13 + 0x168], rax
mov byte [r13 + 0x178], 1
jmp 0x14003fb0c
test dl, dl
je 0x14003fb0c
mov rax, qword [0x1400e5ed0]
xor dl, dl
mov qword [r13 + 0x170], rax
mov byte [r13 + 0x178], 0
mov r8, qword [r13 + 0x170]
movaps xmm6, xmm7
add r8, qword [r13 + 0x160]
cmp dword [r13 + 0xa8], 1
jne 0x14003fb3f
test dl, dl
jne 0x14003fb34
cmp r8, qword [0x1400e5ed0]
jle 0x14003fb3f
movaps xmm6, xmm7
mulss xmm6, dword [0x1400cb95c]
mov r9, qword [r13 + 0x188]
mov r10d, edi
mov rax, qword [r13 + 0x190]
sub rax, r9
sar rax, 2
test rax, rax
je 0x14003fc70
mov rbx, qword [r13 + 0x218]
mov r8, qword [r13 + 0x1e8]
mov rdx, rbx
mov r11, qword [r13 + 0x1a0]
sub r8, rbx
movss xmm3, dword [0x1400cb998]
nop dword [rax]
nop word [rax + rax]
mov rcx, rdx
sub rcx, rbx
movss xmm0, dword [rcx + r9]
mulss xmm0, xmm3
movss dword [rcx + r9], xmm0
movss xmm1, dword [rcx + r11]
mulss xmm1, xmm3
movss dword [rcx + r11], xmm1
movaps xmm1, xmm6
movss xmm0, dword [rdx]
mulss xmm0, xmm3
movss dword [rdx], xmm0
cmp dword [r13 + 0xa8], 0
movss xmm0, dword [rdx + r8]
jne 0x14003fc02
mulss xmm1, dword [r13 + 0xf4]
movaps xmm2, xmm6
subss xmm0, xmm1
movss dword [rdx + r8], xmm0
mulss xmm2, dword [r13 + 0xfc]
movss xmm0, dword [rdx]
subss xmm0, xmm2
movss dword [rdx], xmm0
jmp 0x14003fc15
mulss xmm1, dword [r13 + 0x144]
subss xmm0, xmm1
movss dword [rdx + r8], xmm0
comiss xmm11, dword [rdx + r8]
jbe 0x14003fc20
mov dword [rdx + r8], edi
movss xmm1, dword [rdx]
comiss xmm11, xmm1
jbe 0x14003fc30
mov dword [rdx], edi
movaps xmm1, xmm11
comiss xmm1, xmm11
jbe 0x14003fc4f
mov rax, qword [r13 + 0x1d0]
mulss xmm1, xmm7
movss xmm0, dword [rcx + rax]
subss xmm0, xmm1
movss dword [rcx + rax], xmm0
mov rcx, qword [r13 + 0x190]
inc r10d
sub rcx, r9
movsxd rax, r10d
sar rcx, 2
add rdx, 4
cmp rax, rcx
jb 0x14003fb90
cmp dword [r13 + 0xa8], 0
jne 0x14003fc97
movss xmm0, dword [r13 + 0xdc]
movss xmm7, dword [r13 + 0xe4]
movss xmm11, dword [r13 + 0xec]
jmp 0x14003fca9
movss xmm0, dword [r13 + 0x134]
movss xmm7, dword [r13 + 0x13c]
mov rax, qword [r13 + 0x1d0]
mov rcx, r13
mov r8d, dword [r13 + 0x34]
mov edx, dword [r13 + 0x30]
movss dword [rsp + 0x40], xmm6
movss dword [rsp + 0x38], xmm0
mov qword [rsp + 0x30], rax
mov rax, qword [r13 + 0x1b8]
mov qword [rsp + 0x28], rax
mov rax, qword [r13 + 0x1a0]
mov qword [rsp + 0x20], rax
call fcn.14003e730
mov rax, qword [r13 + 0x1a0]
mov rcx, r13
mov r9, qword [r13 + 0x1e8]
mov r8d, dword [r13 + 0x34]
mov edx, dword [r13 + 0x30]
movss dword [rsp + 0x40], xmm6
movss dword [rsp + 0x38], xmm7
mov qword [rsp + 0x30], rax
mov rax, qword [r13 + 0x188]
mov qword [rsp + 0x28], rax
mov rax, qword [r13 + 0x200]
mov qword [rsp + 0x20], rax
call fcn.14003e8c0
cmp dword [r13 + 0xa8], 0
jne 0x14003fdc8
mov rax, qword [r13 + 0x1a0]
mov rcx, r13
mov r9, qword [r13 + 0x218]
mov r8d, dword [r13 + 0x34]
mov edx, dword [r13 + 0x30]
movss dword [rsp + 0x40], xmm6
movss dword [rsp + 0x38], xmm11
mov qword [rsp + 0x30], rax
mov rax, qword [r13 + 0x188]
mov qword [rsp + 0x28], rax
mov rax, qword [r13 + 0x230]
mov qword [rsp + 0x20], rax
call fcn.14003e8c0
jmp 0x14003fdc8
mov rdx, qword [r13 + 0x1a8]
lea r8, [rsp + 0x68]
mov rcx, qword [r13 + 0x1a0]
mov dword [rsp + 0x68], 0
call fcn.1400401a0
mov rdx, qword [r13 + 0x190]
lea r8, [rsp + 0x68]
mov rcx, qword [r13 + 0x188]
mov dword [rsp + 0x68], 0
call fcn.1400401a0
movaps xmm11, xmmword [rsp + 0x110]
mov eax, 0x66666667
imul dword [r13 + 0x28]
movaps xmm7, xmmword [rsp + 0x150]
movaps xmm6, xmmword [rsp + 0x160]
mov r14, qword [rsp + 0x178]
mov rdi, qword [rsp + 0x1b8]
mov rbx, qword [rsp + 0x1a8]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
cmp dword [r13 + 0x28], eax
jne 0x14003fe6a
mov rdx, qword [r13 + 0x1f0]
xor al, al
mov rcx, qword [r13 + 0x1e8]
cmp rcx, rdx
je 0x14003fe57
movss xmm1, dword [0x1400cb938]
mov r8d, 1
nop word [rax + rax]
movss xmm0, dword [rcx]
comiss xmm0, xmm1
movzx eax, al
cmova eax, r8d
add rcx, 4
cmp rcx, rdx
jne 0x14003fe40
cmp dword [r13 + 0xa8], 1
jne 0x14003fe6a
test al, al
jne 0x14003fe6a
mov byte [r13 + 0x2c], 1
mov rcx, qword [rbp - 0x38]
xor rcx, rsp
call fcn.140086080
add rsp, 0x188
pop r13
pop rbp
ret