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

Disassembly:
cmp dword [0x10093d6c], 0
je 0x10016473
mov ecx, dword [0x10093b3c]
sub ecx, dword [0x10095b90]
add ecx, dword [0x10095cdc]
mov eax, dword [0x10095da8]
mov ecx, dword [ecx + eax]
call fcn.10007310
test eax, eax
jle 0x10016473
mov eax, dword [0x10095f64]
cmp dword [eax], 1
jne 0x10016473
mov eax, dword [0x10093e20]
cmp dword [eax], 0
je 0x10016473
mov cl, byte [0x10093c1f]
mov al, byte [0x10093c74]
test cl, cl
je 0x10016261
test al, al
jne 0x10016261
mov eax, dword [0x100939c0]
mov byte [0x10093c74], 1
movss xmm0, dword [eax + 0x11c]
movss dword [0x10093b14], xmm0
jmp 0x10016265
cmp al, 1
jne 0x1001626c
mov byte [0x10093cca], 1
test cl, cl
jne 0x1001627c
mov byte [0x10093c74], cl
mov byte [0x10093cca], cl
mov eax, dword [0x10093d6c]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
cmp eax, 1
jne 0x1001635b
push 0x20
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x100162ed
cmp byte [0x10096878], 0
je 0x100162c5
cmp dword [0x1009687c], 0
je 0x100162f4
call esi
mov ecx, dword [0x1009687c]
add ecx, 0xa
cmp ecx, eax
ja 0x100162f4
mov byte [0x10096878], 1
call esi
movss xmm0, dword [0x10093b14]
addss xmm0, dword [0x1008cad4]
mov dword [0x1009687c], eax
movss dword [0x10093b14], xmm0
jmp 0x100162f4
mov byte [0x10096878], 0
push 0xa2
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x10016418
cmp byte [0x10096c88], 0
je 0x10016330
cmp dword [0x10096c8c], 0
je 0x1001641f
call esi
mov ecx, dword [0x10096c8c]
add ecx, 0xa
cmp ecx, eax
ja 0x1001641f
mov byte [0x10096c88], 1
call esi
movss xmm0, dword [0x10093b14]
subss xmm0, dword [0x1008cad4]
mov dword [0x10096c8c], eax
movss dword [0x10093b14], xmm0
jmp 0x1001641f
cmp eax, 2
jne 0x1001641f
push 0x20
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x100163b9
cmp byte [0x10096878], 0
je 0x10016391
cmp dword [0x1009687c], 0
je 0x100163c0
call esi
mov ecx, dword [0x1009687c]
add ecx, 0xa
cmp ecx, eax
ja 0x100163c0
mov byte [0x10096878], 1
call esi
movss xmm0, dword [0x10093b14]
addss xmm0, dword [0x1008cad0]
mov dword [0x1009687c], eax
movss dword [0x10093b14], xmm0
jmp 0x100163c0
mov byte [0x10096878], 0
push 0xa2
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x10016418
cmp byte [0x10096c88], 0
je 0x100163f0
cmp dword [0x10096c8c], 0
je 0x1001641f
call esi
mov ecx, dword [0x10096c8c]
add ecx, 0xa
cmp ecx, eax
ja 0x1001641f
mov byte [0x10096c88], 1
call esi
movss xmm0, dword [0x10093b14]
subss xmm0, dword [0x1008cad0]
mov dword [0x10096c8c], eax
movss dword [0x10093b14], xmm0
jmp 0x1001641f
mov byte [0x10096c88], 0
push 0x45
call edi
cwde
shr eax, 0x10
test eax, eax
je 0x1001646a
cmp byte [0x100969a0], 0
je 0x1001644c
cmp dword [0x100969a4], 0
je 0x10016471
call esi
mov ecx, dword [0x100969a4]
add ecx, 0x64
cmp ecx, eax
ja 0x10016471
mov byte [0x100969a0], 1
call esi
cmp byte [0x10093c1f], 0
mov dword [0x100969a4], eax
sete byte [0x10093c1f]
jmp 0x10016471
mov byte [0x100969a0], 0
pop edi
pop esi
mov eax, dword [0x10095f64]
mov eax, dword [eax]
cmp eax, 5
je 0x100164a8
cmp eax, 4
je 0x100164a8
mov ecx, dword [0x10093b3c]
sub ecx, dword [0x10095b90]
add ecx, dword [0x10095cdc]
mov eax, dword [0x10095da8]
mov ecx, dword [ecx + eax]
call fcn.10007310
cmp eax, 1
jge 0x100164af
mov byte [0x10093c1f], 0
ret