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

Disassembly:
cmp dword [0x10089a6c], 0
je 0x10010c53
mov ecx, dword [0x10089828]
sub ecx, dword [0x1008b874]
add ecx, dword [0x1008b9a4]
mov eax, dword [0x1008ba3c]
mov ecx, dword [ecx + eax]
call fcn.100087d0
test eax, eax
jle 0x10010c53
mov eax, dword [0x1008bb8c]
cmp dword [eax], 1
jne 0x10010c53
mov eax, dword [0x10089b14]
cmp dword [eax], 0
je 0x10010c53
mov cl, byte [0x10089914]
mov al, byte [0x10089915]
test cl, cl
je 0x10010a41
test al, al
jne 0x10010a41
mov eax, dword [0x100896b0]
mov byte [0x10089915], 1
movss xmm0, dword [eax + 0x11c]
movss dword [0x100897f8], xmm0
jmp 0x10010a45
cmp al, 1
jne 0x10010a4c
mov byte [0x10089a4d], 1
test cl, cl
jne 0x10010a5c
mov byte [0x10089915], cl
mov byte [0x10089a4d], cl
mov eax, dword [0x10089a6c]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
cmp eax, 1
jne 0x10010b3b
push 0x20
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x10010acd
cmp byte [0x1008c498], 0
je 0x10010aa5
cmp dword [0x1008c49c], 0
je 0x10010ad4
call esi
mov ecx, dword [0x1008c49c]
add ecx, 0xa
cmp ecx, eax
ja 0x10010ad4
mov byte [0x1008c498], 1
call esi
movss xmm0, dword [0x100897f8]
addss xmm0, dword [0x1008499c]
mov dword [0x1008c49c], eax
movss dword [0x100897f8], xmm0
jmp 0x10010ad4
mov byte [0x1008c498], 0
push 0xa2
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x10010bf8
cmp byte [0x1008c8a8], 0
je 0x10010b10
cmp dword [0x1008c8ac], 0
je 0x10010bff
call esi
mov ecx, dword [0x1008c8ac]
add ecx, 0xa
cmp ecx, eax
ja 0x10010bff
mov byte [0x1008c8a8], 1
call esi
movss xmm0, dword [0x100897f8]
subss xmm0, dword [0x1008499c]
mov dword [0x1008c8ac], eax
movss dword [0x100897f8], xmm0
jmp 0x10010bff
cmp eax, 2
jne 0x10010bff
push 0x20
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x10010b99
cmp byte [0x1008c498], 0
je 0x10010b71
cmp dword [0x1008c49c], 0
je 0x10010ba0
call esi
mov ecx, dword [0x1008c49c]
add ecx, 0xa
cmp ecx, eax
ja 0x10010ba0
mov byte [0x1008c498], 1
call esi
movss xmm0, dword [0x100897f8]
addss xmm0, dword [0x10084998]
mov dword [0x1008c49c], eax
movss dword [0x100897f8], xmm0
jmp 0x10010ba0
mov byte [0x1008c498], 0
push 0xa2
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x10010bf8
cmp byte [0x1008c8a8], 0
je 0x10010bd0
cmp dword [0x1008c8ac], 0
je 0x10010bff
call esi
mov ecx, dword [0x1008c8ac]
add ecx, 0xa
cmp ecx, eax
ja 0x10010bff
mov byte [0x1008c8a8], 1
call esi
movss xmm0, dword [0x100897f8]
subss xmm0, dword [0x10084998]
mov dword [0x1008c8ac], eax
movss dword [0x100897f8], xmm0
jmp 0x10010bff
mov byte [0x1008c8a8], 0
push 0x45
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x10010c4a
cmp byte [0x1008c5c0], 0
je 0x10010c2c
cmp dword [0x1008c5c4], 0
je 0x10010c51
call esi
mov ecx, dword [0x1008c5c4]
add ecx, 0x64
cmp ecx, eax
ja 0x10010c51
mov byte [0x1008c5c0], 1
call esi
cmp byte [0x10089914], 0
mov dword [0x1008c5c4], eax
sete byte [0x10089914]
jmp 0x10010c51
mov byte [0x1008c5c0], 0
pop edi
pop esi
mov eax, dword [0x1008bb8c]
mov eax, dword [eax]
cmp eax, 5
je 0x10010c88
cmp eax, 4
je 0x10010c88
mov ecx, dword [0x10089828]
sub ecx, dword [0x1008b874]
add ecx, dword [0x1008b9a4]
mov eax, dword [0x1008ba3c]
mov ecx, dword [ecx + eax]
call fcn.100087d0
cmp eax, 1
jge 0x10010c8f
mov byte [0x10089914], 0
ret