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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
fld dword [ebp + 0x18]
push esi
push ecx
fstp dword [esp]
mov esi, eax
call fcn.100178f0
fstp dword [esp + 8]
fld dword [ebp + 0x1c]
push ecx
fmul qword [0x1001ab88]
fstp dword [esp + 8]
fld dword [esp + 8]
fstp dword [esp]
call fcn.100178f0
fstp dword [esp + 4]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
fld dword [ebp + 0x14]
fld dword [ebp + 0x10]
fld dword [ebp + 0xc]
fld dword [ebp + 8]
cmp eax, dword [0xe8c578]
jne 0x10017b3f
fild dword [0x879340c]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcom st(1)
fnstsw ax
test ah, 1
jne 0x10017b3d
fld st(1)
fadd st(4)
fcompp
fnstsw ax
test ah, 1
jne 0x10017b3f
fild dword [0x8793410]
fstp dword [esp + 0xc]
fld dword [esp + 0xc]
fcom st(2)
fnstsw ax
test ah, 1
jne 0x10017b3d
fld st(2)
fadd st(5)
fcompp
fnstsw ax
test ah, 1
jne 0x10017b3f
fstp st(1)
push 1
fstp st(0)
fstp st(1)
fstp st(0)
call dword [sym.imp.USER32.dll_GetKeyState]
fld dword [ebp + 0x1c]
mov ecx, 0x8000
fdiv dword [esp + 4]
push ecx
fldz
fst dword [esp]
fxch st(1)
push 1
push 1
sub esp, 0x20
test cx, ax
je 0x10017a96
fst dword [esp + 0x38]
movzx edx, byte [esi + 2]
fld dword [esp + 0x38]
mov eax, 0x637c60
fstp dword [esp + 0x1c]
fld dword [ebp + 0x18]
fdiv dword [esp + 0x34]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 0x18]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fmulp st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [ebp + 0x14]
fstp dword [esp + 0xc]
fld dword [ebp + 0x10]
fstp dword [esp + 8]
fld dword [ebp + 0xc]
fstp dword [esp + 4]
fld dword [ebp + 8]
fstp dword [esp]
push 0x7a5e
call eax
jmp 0x10017afa
fst dword [esp + 0x38]
movzx ecx, byte [esi + 1]
fld dword [esp + 0x38]
mov edx, 0x637c60
fstp dword [esp + 0x1c]
fld dword [ebp + 0x18]
fdiv dword [esp + 0x34]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 0x18]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
fmulp st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [ebp + 0x14]
fstp dword [esp + 0xc]
fld dword [ebp + 0x10]
fstp dword [esp + 8]
fld dword [ebp + 0xc]
fstp dword [esp + 4]
fld dword [ebp + 8]
fstp dword [esp]
push 0x7a5e
call edx
add esp, 0x30
push 1
mov eax, 0x791050
call eax
add esp, 4
test al, al
je 0x10017bb3
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ecx, dword [0x1015e768]
add ecx, 0x12c
cmp eax, ecx
jbe 0x10017bb3
call esi
mov dword [0x1015e768], eax
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret 0x18
fstp st(0)
fld dword [ebp + 0x1c]
push ecx
fdiv dword [esp + 8]
movzx edx, byte [esi]
mov eax, 0x637c60
fldz
fst dword [esp]
fxch st(1)
fst dword [esp + 0x10]
push 1
fld dword [esp + 0x14]
push 1
sub esp, 0x20
fstp dword [esp + 0x1c]
fld dword [ebp + 0x18]
fdiv dword [esp + 0x34]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 0x18]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fmulp st(1)
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp + 0x14]
fstp dword [esp + 0x10]
fxch st(3)
fstp dword [esp + 0xc]
fxch st(1)
fstp dword [esp + 8]
fstp dword [esp + 4]
fstp dword [esp]
push 0x7a5e
call eax
add esp, 0x30
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 0x18