Function at 0x180003000
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbx
push rsi
push rdi
push r14
sub rsp, 0xf8
mov rbx, qword [rsp + 0x140]
mov rsi, rcx
movaps xmmword [rax - 0x38], xmm6
lea rcx, [rsp + 0x40]
movaps xmmword [rax - 0x48], xmm7
movaps xmm7, xmm1
movaps xmmword [rax - 0x58], xmm8
movaps xmm8, xmm3
movaps xmmword [rax - 0x78], xmm10
lea r14, [rbx + 0x50]
movaps xmmword [rax - 0x88], xmm11
mov rdx, r14
movaps xmmword [rsp + 0x60], xmm14
movaps xmm10, xmm2
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rsp + 0x70], xmm13
call fcn.180001950
mov rdx, rax
mov rcx, rbx
call fcn.180005970
mov rcx, qword [rsi]
xor edi, edi
movss xmm11, dword [0x180013f70]
movaps xmm3, xmm8
mov dword [rsp + 0x30], edi
movaps xmm2, xmm10
movd xmm0, eax
movaps xmm1, xmm7
mov eax, dword [0x180016010]
mov rdx, qword [rcx]
cvtdq2ps xmm0, xmm0
mov dword [rsp + 0x28], eax
movaps xmm6, xmm0
mulss xmm0, xmm11
mulss xmm6, dword [0x180013f94]
addss xmm6, dword [0x180013f94]
addss xmm6, xmm0
movss dword [rsp + 0x20], xmm6
call qword [rdx + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm8
mov dword [rsp + 0x28], eax
movaps xmm2, xmm10
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rcx, rsi
call fcn.18000f7b0
movaps xmm3, xmm8
mov byte [rsp + 0x28], dil
movaps xmm2, xmm10
movss dword [rsp + 0x20], xmm6
movaps xmm1, xmm7
mov rcx, rsi
call fcn.1800039f0
cmp qword [rbx + 0x18], 8
mov rax, rbx
jb 0x180003118
mov rax, qword [rbx]
movss xmm13, dword [0x180013f84]
movaps xmm9, xmm10
addss xmm9, dword [0x180013f7c]
mov rcx, qword [rsi]
movaps xmm1, xmm7
addss xmm1, dword [0x180013f78]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
mov dword [rsp + 0x128], 0xffbfbfbf
mov eax, dword [rsp + 0x128]
movaps xmm12, xmm9
subss xmm12, dword [0x180013f74]
movd r9d, xmm3
movd edx, xmm1
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
movaps xmm2, xmm12
movd r8d, xmm2
call fcn.180003d30
mov ecx, dword [rbx + 0x20]
movss xmm14, dword [0x180013f88]
sub ecx, 1
je 0x1800037b6
sub ecx, 2
je 0x1800035d7
sub ecx, 1
je 0x1800033cd
cmp ecx, 2
jne 0x180003915
movzx r8d, byte [rbx + 0x4a]
test r8b, r8b
je 0x1800031c6
mov rax, qword [rbx + 0x30]
mov edx, dword [rax]
jmp 0x1800031c9
mov edx, dword [rbx + 0x28]
mov rcx, qword [rbx + 0x40]
mov eax, dword [rcx]
cmp eax, edx
jle 0x1800031eb
test r8b, r8b
je 0x1800031e0
mov rax, qword [rbx + 0x30]
mov edx, dword [rax]
jmp 0x1800031e3
mov edx, dword [rbx + 0x28]
mov dword [rcx], edx
mov rcx, qword [rbx + 0x40]
mov eax, dword [rcx]
mov edx, dword [rbx + 0x24]
cmp eax, edx
jge 0x1800031fd
mov dword [rcx], edx
mov rax, qword [rbx + 0x40]
mov edx, dword [rbx + 0x24]
mov eax, dword [rax]
movss xmm9, dword [0x180013f58]
movss xmm11, dword [0x180013f2c]
cmp eax, edx
jle 0x18000325f
movaps xmm1, xmm7
movaps xmm0, xmm6
addss xmm1, xmm8
movaps xmm2, xmm10
subss xmm0, xmm9
movaps xmm3, xmm14
addss xmm2, xmm11
mov rcx, rsi
subss xmm1, dword [0x180013fc8]
movss dword [rsp + 0x20], xmm0
call fcn.18000fb30
test al, al
je 0x18000325f
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18000325f
mov rax, qword [rbx + 0x40]
dec dword [rax]
cmp byte [rbx + 0x4a], dil
je 0x18000326d
mov rax, qword [rbx + 0x30]
mov ecx, dword [rax]
jmp 0x180003270
mov ecx, dword [rbx + 0x28]
mov rax, qword [rbx + 0x40]
cmp dword [rax], ecx
jge 0x1800032c1
movaps xmm1, xmm7
subss xmm6, xmm9
addss xmm1, xmm8
movaps xmm2, xmm10
addss xmm2, xmm11
movaps xmm3, xmm14
mov rcx, rsi
movss dword [rsp + 0x20], xmm6
subss xmm1, dword [0x180013f98]
call fcn.18000fb30
test al, al
je 0x1800032c1
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800032c1
mov rax, qword [rbx + 0x40]
inc dword [rax]
mov rcx, qword [rsi]
lea rax, [0x180012370]
mov qword [rsp + 0x30], rax
movaps xmm6, xmm7
movaps xmm3, xmm13
mov dword [rsp + 0x128], 0xffbfbfbf
mov eax, dword [rsp + 0x128]
addss xmm6, xmm8
movaps xmm2, xmm12
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], eax
movaps xmm1, xmm6
subss xmm1, dword [0x180013fc4]
movd edx, xmm1
call fcn.180003d30
subss xmm6, dword [0x180013fa4]
mov rcx, qword [rsi]
lea rax, [0x180012378]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
movaps xmm2, xmm12
mov dword [rsp + 0x128], 0xffbfbfbf
mov eax, dword [rsp + 0x128]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.180003d30
mov rax, qword [rbx + 0x40]
movaps xmm3, xmm13
subss xmm6, dword [0x180013fb0]
mov rcx, qword [rsi]
movaps xmm2, xmm12
mov qword [rsp + 0x38], rax
lea rax, [0x180012380]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x128], 0xffbfbfbf
mov eax, dword [rsp + 0x128]
movaps xmm1, xmm6
movd edx, xmm1
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003d30
jmp 0x18000390c
addss xmm7, dword [0x180013fb4]
addss xmm8, dword [0x180014008]
lea rcx, [rsp + 0x140]
mov qword [rsp + 0x130], rbp
call qword [sym.imp.USER32.dll_GetCursorPos]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
lea rdx, [rsp + 0x140]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov rcx, qword [rsi]
movaps xmm3, xmm8
mov dword [rsp + 0x30], edi
movaps xmm2, xmm10
mov dword [rsp + 0x28], 0xff10232e
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rdx, qword [rbx + 0x40]
mov ecx, dword [rbx + 0x28]
mov eax, dword [rdx]
cmp eax, ecx
jle 0x180003446
mov dword [rdx], ecx
mov rdx, qword [rbx + 0x40]
mov eax, dword [rdx]
mov ecx, dword [rbx + 0x24]
cmp eax, ecx
jge 0x180003458
mov dword [rdx], ecx
mov rax, qword [rbx + 0x40]
mov ecx, dword [rbx + 0x24]
mov eax, dword [rax]
movd xmm2, dword [rsp + 0x140]
sub eax, ecx
cvtdq2ps xmm2, xmm2
movd xmm1, eax
mov eax, dword [rbx + 0x28]
sub eax, ecx
comiss xmm2, xmm7
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm8
divss xmm1, xmm0
cvttss2si ebp, xmm1
jb 0x180003503
movaps xmm0, xmm7
addss xmm0, xmm8
comiss xmm0, xmm2
jb 0x180003503
movd xmm1, dword [rsp + 0x144]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm10
jb 0x180003503
movaps xmm0, xmm10
addss xmm0, dword [0x180013f9c]
comiss xmm0, xmm1
jb 0x180003503
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x180003503
mov eax, dword [rbx + 0x28]
sub eax, dword [rbx + 0x24]
movd xmm0, dword [rsp + 0x140]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
mov rax, qword [rbx + 0x40]
subss xmm0, xmm7
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
divss xmm1, xmm8
addss xmm1, dword [0x180013f2c]
cvttss2si ecx, xmm1
mov dword [rax], ecx
mov rcx, qword [rsi]
movaps xmm2, xmm10
movss xmm6, dword [0x180013fa0]
movaps xmm1, xmm7
movd xmm3, ebp
mov dword [rsp + 0x30], edi
mov rax, qword [rcx]
cvtdq2ps xmm3, xmm3
mov dword [rsp + 0x28], 0xff20bfd4
movss dword [rsp + 0x20], xmm6
call qword [rax + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm8
mov dword [rsp + 0x28], eax
movaps xmm2, xmm10
movaps xmm1, xmm7
movss dword [rsp + 0x20], xmm6
mov rcx, rsi
call fcn.18000f7b0
mov rax, qword [rbx + 0x40]
movaps xmm1, xmm8
mulss xmm1, dword [0x180013f28]
movaps xmm3, xmm13
mov rcx, qword [rsi]
movaps xmm2, xmm9
mov dword [rsp + 0x128], 0xffbfbfbf
mov eax, dword [rax]
mov dword [rsp + 0x38], eax
addss xmm1, xmm7
lea rax, [0x180012380]
movd r9d, xmm3
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x128]
movd r8d, xmm2
movd edx, xmm1
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003d30
addss xmm7, dword [0x180014004]
addss xmm8, dword [0x180013fb8]
mov rbp, qword [rsp + 0x130]
jmp 0x180003915
mov rax, qword [rbx + 0x40]
movss xmm11, dword [0x180013f58]
movss xmm12, dword [0x180013f2c]
cmp dword [rax], edi
jle 0x18000363d
movaps xmm1, xmm7
movaps xmm0, xmm6
addss xmm1, xmm8
movaps xmm2, xmm10
subss xmm0, xmm11
movaps xmm3, xmm14
addss xmm2, xmm12
mov rcx, rsi
subss xmm1, dword [0x180013fc8]
movss dword [rsp + 0x20], xmm0
call fcn.18000fb30
test al, al
je 0x18000363d
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18000363d
mov rax, qword [rbx + 0x40]
dec dword [rax]
mov rdx, qword [rbx + 0x70]
sub rdx, qword [rbx + 0x68]
mov rax, qword [rbx + 0x40]
sar rdx, 5
dec rdx
movsxd rcx, dword [rax]
cmp rcx, rdx
jae 0x1800036a1
movaps xmm1, xmm7
subss xmm6, xmm11
addss xmm1, xmm8
movaps xmm2, xmm10
addss xmm2, xmm12
movaps xmm3, xmm14
mov rcx, rsi
movss dword [rsp + 0x20], xmm6
subss xmm1, dword [0x180013f98]
call fcn.18000fb30
test al, al
je 0x1800036a1
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1800036a1
mov rax, qword [rbx + 0x40]
inc dword [rax]
mov rcx, qword [rsi]
lea rax, [0x180012370]
mov qword [rsp + 0x30], rax
movaps xmm6, xmm7
movaps xmm3, xmm13
mov dword [rsp + 0x128], 0xffbfbfbf
mov eax, dword [rsp + 0x128]
addss xmm6, xmm8
movaps xmm2, xmm9
movd r9d, xmm3
movd r8d, xmm2
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], eax
movaps xmm1, xmm6
subss xmm1, dword [0x180013fc4]
movd edx, xmm1
call fcn.180003d30
subss xmm6, dword [0x180013fa4]
mov rcx, qword [rsi]
lea rax, [0x180012378]
mov qword [rsp + 0x30], rax
movaps xmm3, xmm13
movaps xmm2, xmm9
mov dword [rsp + 0x128], 0xffbfbfbf
mov eax, dword [rsp + 0x128]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], eax
call fcn.180003d30
mov rax, qword [rbx + 0x40]
movsxd rcx, dword [rax]
shl rcx, 5
add rcx, qword [rbx + 0x68]
cmp qword [rcx + 0x18], 8
jb 0x180003765
mov rcx, qword [rcx]
subss xmm6, dword [0x180013fb0]
mov qword [rsp + 0x30], rcx
movaps xmm3, xmm13
mov rcx, qword [rsi]
movaps xmm2, xmm9
mov dword [rsp + 0x128], 0xffbfbfbf
mov eax, dword [rsp + 0x128]
movaps xmm1, xmm6
movd r9d, xmm3
movd edx, xmm1
movd r8d, xmm2
mov dword [rsp + 0x28], 0xc
mov dword [rsp + 0x20], eax
call fcn.180003d30
jmp 0x18000390c
movss xmm13, dword [0x180013fc0]
movaps xmm9, xmm7
mov eax, dword [0x180016014]
addss xmm9, xmm8
movss xmm12, dword [0x180013f8c]
movaps xmm6, xmm10
addss xmm6, dword [0x180013f58]
mov dword [rsp + 0x28], eax
movaps xmm3, xmm13
mov rcx, rsi
movss dword [rsp + 0x20], xmm12
subss xmm9, xmm13
mov qword [rsp + 0xf0], r15
movaps xmm11, xmm6
addss xmm11, dword [0x180013f58]
subss xmm9, dword [0x180013f78]
movaps xmm2, xmm11
movaps xmm1, xmm9
call fcn.18000f7b0
mov r15, qword [rbx + 0x40]
movaps xmm3, xmm13
movaps xmm2, xmm6
movss dword [rsp + 0x20], xmm12
movaps xmm1, xmm9
mov rcx, rsi
call fcn.18000fb30
test al, al
je 0x180003861
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x180003861
cmp dword [r15], edi
mov eax, edi
sete al
mov dword [r15], eax
mov rcx, qword [rsi]
movaps xmm3, xmm13
mov dword [rsp + 0x30], edi
movaps xmm2, xmm11
mov dword [rsp + 0x28], 0xff10232e
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm12
mov rax, qword [rcx]
call qword [rax + 0x50]
mov ecx, dword [r15]
mov r15, qword [rsp + 0xf0]
test ecx, ecx
je 0x1800038bb
cmp ecx, 1
jne 0x1800038e7
movss xmm3, dword [0x180013fac]
movaps xmm1, xmm9
mov dword [rsp + 0x30], edi
addss xmm1, xmm3
mov dword [rsp + 0x28], 0xff47c3b8
jmp 0x1800038d3
movss xmm3, dword [0x180013fac]
movaps xmm1, xmm9
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], 0xff838b98
mov rcx, qword [rsi]
movaps xmm2, xmm11
movss dword [rsp + 0x20], xmm12
mov rax, qword [rcx]
call qword [rax + 0x50]
mov eax, dword [0x180016014]
movaps xmm3, xmm13
mov dword [rsp + 0x28], eax
movaps xmm2, xmm11
movaps xmm1, xmm9
movss dword [rsp + 0x20], xmm12
mov rcx, rsi
call fcn.18000f7b0
movss xmm11, dword [0x180013f70]
cmp dword [rbx + 0x20], 1
movaps xmm6, xmm10
addss xmm6, dword [0x180013f94]
movaps xmm13, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm9, xmmword [rsp + 0xb0]
jne 0x180003947
mov rax, qword [rbx + 0x40]
cmp dword [rax], edi
jle 0x1800039ab
mov rax, qword [r14 + 8]
sub rax, qword [r14]
sar rax, 3
test rax, rax
je 0x1800039ab
addss xmm7, dword [0x180013f78]
subss xmm8, xmm14
mov rbx, rdi
nop word [rax + rax]
mov rax, qword [r14]
movaps xmm3, xmm8
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, rsi
mov rax, qword [rbx + rax]
mov qword [rsp + 0x20], rax
call fcn.180003000
mov rcx, qword [r14 + 8]
addss xmm6, xmm0
sub rcx, qword [r14]
inc edi
sar rcx, 3
add rbx, 8
movsxd rax, edi
cmp rax, rcx
jb 0x180003970
movaps xmm14, xmmword [rsp + 0x60]
lea r11, [rsp + 0xf8]
movaps xmm7, xmmword [r11 - 0x28]
subss xmm6, xmm10
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm10, xmmword [r11 - 0x58]
addss xmm6, xmm11
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm0, xmm6
movaps xmm6, xmmword [r11 - 0x18]
mov rsp, r11
pop r14
pop rdi
pop rsi
pop rbx
ret