Function at 0x14003eff0
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov eax, dword [0x14015e248]
xor ecx, ecx
mov dword [0x14015e66c], eax
mov eax, dword [0x14015e24c]
mov dword [0x14015e640], eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 1
mov dword [0x14015e364], eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [0x14015e368], eax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, rax
lea rdx, [0x14015e258]
call qword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
mov byte [0x14015e650], al
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, rbx
je 0x14003f1ed
mov eax, dword [0x14015e260]
sub eax, dword [0x14015e258]
cmp dword [0x14015e364], eax
jne 0x14003f1ed
mov eax, dword [0x14015e264]
sub eax, dword [0x14015e25c]
cmp dword [0x14015e368], eax
jne 0x14003f1ed
cmp byte [0x14015e312], 0
je 0x14003f1ed
cmp byte [0x14015e30a], 0
je 0x14003f1ed
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14003f1ed
cmp byte [0x14015e310], 0
mov byte [0x14015e650], 0
jne 0x14003f0ee
mov byte [0x14015e6db], 1
jmp 0x14003f12a
mov eax, dword [0x14015e364]
cdq
sub eax, edx
sar eax, 1
cmp dword [0x14015e66c], eax
jne 0x14003f11d
mov eax, dword [0x14015e368]
cdq
sub eax, edx
sar eax, 1
cmp dword [0x14015e640], eax
jne 0x14003f11d
mov byte [0x14015e6db], 1
jmp 0x14003f12a
cmp byte [0x14015e6db], 0
je 0x14003f1f4
cmp byte [0x14015e311], 0
mov byte [0x14015e6d9], 0
jne 0x14003f1a5
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x14015e568]
cmp eax, 0x3e8
jbe 0x14003f1f4
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov edx, 0x204
call qword [sym.imp.USER32.dll_PostMessageA]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14003f197
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov edx, 0x205
call qword [sym.imp.USER32.dll_PostMessageA]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x14015e568], eax
jmp 0x14003f1f4
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov edx, 0x204
call qword [sym.imp.USER32.dll_PostMessageA]
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14003f1f4
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov edx, 0x205
call qword [sym.imp.USER32.dll_PostMessageA]
jmp 0x14003f1f4
mov byte [0x14015e6db], 0
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, rbx
je 0x14003f276
mov eax, dword [0x14015e260]
sub eax, dword [0x14015e258]
cmp dword [0x14015e364], eax
jne 0x14003f276
mov eax, dword [0x14015e264]
sub eax, dword [0x14015e25c]
cmp dword [0x14015e368], eax
jne 0x14003f276
cmp byte [0x14015e30a], 0
jne 0x14003f276
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14003f276
mov ecx, dword [0x14015e314]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x14003f276
call qword [sym.imp.USER32.dll_GetForegroundWindow]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov edx, 0x204
call qword [sym.imp.USER32.dll_PostMessageA]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret