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

Disassembly:
cmp dword [0x10098944], 0
je 0x10019723
mov ecx, dword [0x10098718]
sub ecx, dword [0x1009a75c]
add ecx, dword [0x1009a88c]
mov eax, dword [0x1009a934]
mov ecx, dword [ecx + eax]
call fcn.10009720
test eax, eax
jle 0x10019723
mov eax, dword [0x1009aaa0]
cmp dword [eax], 1
jne 0x10019723
mov eax, dword [0x100989ec]
cmp dword [eax], 0
je 0x10019723
mov cl, byte [0x100982bf]
mov al, byte [0x100984b4]
test cl, cl
je 0x10019511
test al, al
jne 0x10019511
mov eax, dword [0x100979c8]
mov byte [0x100984b4], 1
movss xmm0, dword [eax + 0x11c]
movss dword [0x100986ec], xmm0
jmp 0x10019515
cmp al, 1
jne 0x1001951c
mov byte [0x1009883f], 1
test cl, cl
jne 0x1001952c
mov byte [0x100984b4], cl
mov byte [0x1009883f], cl
mov eax, dword [0x10098944]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
cmp eax, 1
jne 0x1001960b
push 0x20
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1001959d
cmp byte [0x1009b3b0], 0
je 0x10019575
cmp dword [0x1009b3b4], 0
je 0x100195a4
call esi
mov ecx, dword [0x1009b3b4]
add ecx, 0xa
cmp ecx, eax
ja 0x100195a4
mov byte [0x1009b3b0], 1
call esi
movss xmm0, dword [0x100986ec]
addss xmm0, dword [0x10090b68]
mov dword [0x1009b3b4], eax
movss dword [0x100986ec], xmm0
jmp 0x100195a4
mov byte [0x1009b3b0], 0
push 0xa2
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x100196c8
cmp byte [0x1009b7c0], 0
je 0x100195e0
cmp dword [0x1009b7c4], 0
je 0x100196cf
call esi
mov ecx, dword [0x1009b7c4]
add ecx, 0xa
cmp ecx, eax
ja 0x100196cf
mov byte [0x1009b7c0], 1
call esi
movss xmm0, dword [0x100986ec]
subss xmm0, dword [0x10090b68]
mov dword [0x1009b7c4], eax
movss dword [0x100986ec], xmm0
jmp 0x100196cf
cmp eax, 2
jne 0x100196cf
push 0x20
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x10019669
cmp byte [0x1009b3b0], 0
je 0x10019641
cmp dword [0x1009b3b4], 0
je 0x10019670
call esi
mov ecx, dword [0x1009b3b4]
add ecx, 0xa
cmp ecx, eax
ja 0x10019670
mov byte [0x1009b3b0], 1
call esi
movss xmm0, dword [0x100986ec]
addss xmm0, dword [0x10090b64]
mov dword [0x1009b3b4], eax
movss dword [0x100986ec], xmm0
jmp 0x10019670
mov byte [0x1009b3b0], 0
push 0xa2
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x100196c8
cmp byte [0x1009b7c0], 0
je 0x100196a0
cmp dword [0x1009b7c4], 0
je 0x100196cf
call esi
mov ecx, dword [0x1009b7c4]
add ecx, 0xa
cmp ecx, eax
ja 0x100196cf
mov byte [0x1009b7c0], 1
call esi
movss xmm0, dword [0x100986ec]
subss xmm0, dword [0x10090b64]
mov dword [0x1009b7c4], eax
movss dword [0x100986ec], xmm0
jmp 0x100196cf
mov byte [0x1009b7c0], 0
push 0x45
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1001971a
cmp byte [0x1009b4d8], 0
je 0x100196fc
cmp dword [0x1009b4dc], 0
je 0x10019721
call esi
mov ecx, dword [0x1009b4dc]
add ecx, 0x64
cmp ecx, eax
ja 0x10019721
mov byte [0x1009b4d8], 1
call esi
cmp byte [0x100982bf], 0
mov dword [0x1009b4dc], eax
sete byte [0x100982bf]
jmp 0x10019721
mov byte [0x1009b4d8], 0
pop edi
pop esi
mov eax, dword [0x1009aaa0]
mov eax, dword [eax]
cmp eax, 5
je 0x10019758
cmp eax, 4
je 0x10019758
mov ecx, dword [0x10098718]
sub ecx, dword [0x1009a75c]
add ecx, dword [0x1009a88c]
mov eax, dword [0x1009a934]
mov ecx, dword [ecx + eax]
call fcn.10009720
cmp eax, 1
jge 0x1001975f
mov byte [0x100982bf], 0
ret