Function at 0x100f1170
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [0x109be284]
push ebx
xor bl, bl
cmp byte [eax + 0x58], bl
push esi
mov esi, ecx
jne 0x100f144c
cmp byte [0x109be0bf], bl
push edi
je 0x100f1320
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x25
call edi
test ax, ax
jge 0x100f11bc
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x25
mov ecx, dword [0x109b242c]
call fcn.100117e1
jmp 0x100f144b
push 0x27
call edi
test ax, ax
jge 0x100f11d3
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x27
jmp 0x100f11ac
push 0x26
call edi
test ax, ax
jge 0x100f11ea
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x26
jmp 0x100f11ac
push 0x28
call edi
test ax, ax
jge 0x100f1201
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x28
jmp 0x100f11ac
push 0x57
call edi
test ax, ax
jge 0x100f1218
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x57
jmp 0x100f11ac
push 0x53
call edi
test ax, ax
jge 0x100f1232
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x53
jmp 0x100f11ac
push 0x44
call edi
test ax, ax
jge 0x100f124c
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x44
jmp 0x100f11ac
push 0x41
call edi
test ax, ax
jge 0x100f1266
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x41
jmp 0x100f11ac
push 0x58
call edi
test ax, ax
jge 0x100f1280
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x58
jmp 0x100f11ac
push 0x78
call edi
test ax, ax
jge 0x100f129a
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x78
jmp 0x100f11ac
push 0x51
call edi
test ax, ax
jge 0x100f12b4
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x51
jmp 0x100f11ac
push 0x45
call edi
test ax, ax
jge 0x100f12ce
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x45
jmp 0x100f11ac
push 0x5a
call edi
test ax, ax
jge 0x100f12e8
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x5a
jmp 0x100f11ac
push 0x43
call edi
test ax, ax
jge 0x100f1302
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x43
jmp 0x100f11ac
push 0x4c
call edi
test ax, ax
jge 0x100f144b
fld dword [esi + 0x90]
push ecx
fstp dword [esp]
push 0x4c
jmp 0x100f11ac
mov ecx, dword [0x109be1d0]
cmp byte [ecx + 0x242c], bl
je 0x100f144b
call fcn.100ceb7b
test al, al
je 0x100f144b
mov eax, dword [0x109be1d0]
cmp byte [eax + 0x139], bl
jne 0x100f144b
mov ecx, dword [0x109be284]
push 0xe8
call fcn.10081f0a
test al, al
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
jne 0x100f13dc
push 0x57
call ebx
test ax, ax
jge 0x100f1388
fld dword [esi + 0x90]
push ecx
mov ecx, dword [0x109be1d0]
fstp dword [esp]
call fcn.100d1dc7
push 0x44
call ebx
test ax, ax
jge 0x100f139c
mov ecx, dword [0x109be1d0]
call fcn.100d0806
push 0x41
call ebx
test ax, ax
jge 0x100f13b0
mov ecx, dword [0x109be1d0]
call fcn.100d086c
push 0x79
call ebx
test ax, ax
jge 0x100f13dc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [esi + 0x2f8]
mov edx, dword [ecx]
add edx, 0x1f4
cmp eax, edx
jbe 0x100f13dc
mov dword [ecx], eax
push 0x79
mov ecx, esi
call fcn.100f096d
push 0x6b
call ebx
test ax, ax
mov edi, 0x109bee18
jge 0x100f13f8
fld dword [esi + 0x90]
fmul dword [0x10142768]
jmp 0x100f140f
push 0x6d
call ebx
test ax, ax
jge 0x100f141a
fld dword [esi + 0x90]
fmul dword [0x10142768]
fchs
push ecx
mov ecx, edi
fstp dword [esp]
call fcn.100de972
push 0x25
call ebx
test ax, ax
jge 0x100f142f
fld dword [esi + 0x90]
fadd st(0), st(0)
fchs
jmp 0x100f1440
push 0x27
call ebx
test ax, ax
jge 0x100f144b
fld dword [esi + 0x90]
fadd st(0), st(0)
push ecx
mov ecx, edi
fstp dword [esp]
call fcn.100dde97
pop edi
pop esi
pop ebx
ret