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

Disassembly:
cmp dword [0x10087a2c], 0
je 0x1000f803
mov ecx, dword [0x10087800]
sub ecx, dword [0x10088e1c]
add ecx, dword [0x10088f4c]
mov eax, dword [0x10088fdc]
mov ecx, dword [ecx + eax]
call fcn.10008130
test eax, eax
jle 0x1000f803
mov eax, dword [0x10089138]
cmp dword [eax], 1
jne 0x1000f803
mov eax, dword [0x10087ac8]
cmp dword [eax], 0
je 0x1000f803
mov cl, byte [0x100878e4]
mov al, byte [0x100878e5]
test cl, cl
je 0x1000f5f1
test al, al
jne 0x1000f5f1
mov eax, dword [0x10087698]
mov byte [0x100878e5], 1
movss xmm0, dword [eax + 0x11c]
movss dword [0x100877d4], xmm0
jmp 0x1000f5f5
cmp al, 1
jne 0x1000f5fc
mov byte [0x10087981], 1
test cl, cl
jne 0x1000f60c
mov byte [0x100878e5], cl
mov byte [0x10087981], cl
mov eax, dword [0x10087a2c]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
cmp eax, 1
jne 0x1000f6eb
push 0x20
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000f67d
cmp byte [0x10089a48], 0
je 0x1000f655
cmp dword [0x10089a4c], 0
je 0x1000f684
call esi
mov ecx, dword [0x10089a4c]
add ecx, 0xa
cmp ecx, eax
ja 0x1000f684
mov byte [0x10089a48], 1
call esi
movss xmm0, dword [0x100877d4]
addss xmm0, dword [0x10082754]
mov dword [0x10089a4c], eax
movss dword [0x100877d4], xmm0
jmp 0x1000f684
mov byte [0x10089a48], 0
push 0xa2
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000f7a8
cmp byte [0x10089e58], 0
je 0x1000f6c0
cmp dword [0x10089e5c], 0
je 0x1000f7af
call esi
mov ecx, dword [0x10089e5c]
add ecx, 0xa
cmp ecx, eax
ja 0x1000f7af
mov byte [0x10089e58], 1
call esi
movss xmm0, dword [0x100877d4]
subss xmm0, dword [0x10082754]
mov dword [0x10089e5c], eax
movss dword [0x100877d4], xmm0
jmp 0x1000f7af
cmp eax, 2
jne 0x1000f7af
push 0x20
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000f749
cmp byte [0x10089a48], 0
je 0x1000f721
cmp dword [0x10089a4c], 0
je 0x1000f750
call esi
mov ecx, dword [0x10089a4c]
add ecx, 0xa
cmp ecx, eax
ja 0x1000f750
mov byte [0x10089a48], 1
call esi
movss xmm0, dword [0x100877d4]
addss xmm0, dword [0x10082750]
mov dword [0x10089a4c], eax
movss dword [0x100877d4], xmm0
jmp 0x1000f750
mov byte [0x10089a48], 0
push 0xa2
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000f7a8
cmp byte [0x10089e58], 0
je 0x1000f780
cmp dword [0x10089e5c], 0
je 0x1000f7af
call esi
mov ecx, dword [0x10089e5c]
add ecx, 0xa
cmp ecx, eax
ja 0x1000f7af
mov byte [0x10089e58], 1
call esi
movss xmm0, dword [0x100877d4]
subss xmm0, dword [0x10082750]
mov dword [0x10089e5c], eax
movss dword [0x100877d4], xmm0
jmp 0x1000f7af
mov byte [0x10089e58], 0
push 0x45
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1000f7fa
cmp byte [0x10089b70], 0
je 0x1000f7dc
cmp dword [0x10089b74], 0
je 0x1000f801
call esi
mov ecx, dword [0x10089b74]
add ecx, 0x64
cmp ecx, eax
ja 0x1000f801
mov byte [0x10089b70], 1
call esi
cmp byte [0x100878e4], 0
mov dword [0x10089b74], eax
sete byte [0x100878e4]
jmp 0x1000f801
mov byte [0x10089b70], 0
pop edi
pop esi
mov eax, dword [0x10089138]
mov eax, dword [eax]
cmp eax, 5
je 0x1000f838
cmp eax, 4
je 0x1000f838
mov ecx, dword [0x10087800]
sub ecx, dword [0x10088e1c]
add ecx, dword [0x10088f4c]
mov eax, dword [0x10088fdc]
mov ecx, dword [ecx + eax]
call fcn.10008130
cmp eax, 1
jge 0x1000f83f
mov byte [0x100878e4], 0
ret