Function at 0x10002c15
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push edi
push 0x2d
mov byte [ebp - 4], 0
call esi
xor ebx, ebx
inc ebx
test bl, al
je 0x10002c41
xor eax, eax
cmp dword [0x10022148], eax
sete al
mov dword [0x10022148], eax
xor edi, edi
cmp dword [0x10022148], edi
je 0x10002eb2
push 0x26
call esi
test bl, al
je 0x10002c80
dec dword [0x100266a4]
jns 0x10002c6a
mov eax, dword [0x100266a8]
dec eax
mov dword [0x100266a4], eax
mov eax, dword [0x100266a4]
shl eax, 5
cmp dword [eax + 0x10025a18], 2
je 0x10002c57
jmp 0x10002eb2
push 0x28
call esi
test bl, al
je 0x10002cb7
inc dword [0x100266a4]
mov eax, dword [0x100266a4]
cmp eax, dword [0x100266a8]
jne 0x10002ca1
mov dword [0x100266a4], edi
mov eax, dword [0x100266a4]
shl eax, 5
cmp dword [eax + 0x10025a18], 2
je 0x10002c88
jmp 0x10002eb2
mov eax, dword [0x100266a4]
shl eax, 5
cmp dword [eax + 0x10025a24], edi
jne 0x10002cd4
cmp dword [eax + 0x10025a18], 4
jne 0x10002eb2
cmp dword [eax + 0x10025a18], 4
jne 0x10002df6
push 0x25
call esi
test bl, al
jne 0x10002cf2
push 0x6b
call esi
test ax, ax
je 0x10002d24
mov ecx, dword [0x100266a4]
shl ecx, 5
mov edx, dword [ecx + 0x10025a34]
fld dword [edx + 4]
fld dword [ecx + 0x10025a2c]
fcompp
fnstsw ax
test ah, 5
jp 0x10002d24
mov ecx, dword [ecx + 0x10025a30]
push 0xffffffffffffffff
push edx
call fcn.1000118f
mov byte [ebp - 4], bl
push 0x27
call esi
test bl, al
jne 0x10002d35
push 0x6d
call esi
test ax, ax
je 0x10002d66
mov ecx, dword [0x100266a4]
shl ecx, 5
mov edx, dword [ecx + 0x10025a34]
fld dword [edx + 4]
fld dword [ecx + 0x10025a28]
fcompp
fnstsw ax
test ah, 0x41
jne 0x10002d66
mov ecx, dword [ecx + 0x10025a30]
push ebx
push edx
call fcn.1000118f
mov byte [ebp - 4], bl
push 0xd
call esi
test bl, al
jne 0x10002d99
push 0xc
call esi
test bl, al
jne 0x10002d99
cmp byte [ebp - 4], bl
jne 0x10002eb2
mov eax, dword [0x100266a4]
shl eax, 5
mov eax, dword [eax + 0x10025a34]
cmp byte [eax + 0xa2], bl
jne 0x10002eb2
mov eax, dword [0x100266a4]
shl eax, 5
push dword [eax + 0x10025a34]
mov ecx, dword [eax + 0x10025a30]
call fcn.10001166
mov eax, dword [0x100266a4]
push dword [ebp - 4]
shl eax, 5
push dword [eax + 0x10025a34]
mov ecx, dword [eax + 0x10025a30]
call fcn.10001082
cmp byte [ebp - 4], 0
jne 0x10002eb2
mov eax, dword [0x100266a4]
shl eax, 5
push dword [eax + 0x10025a34]
mov ecx, dword [eax + 0x10025a30]
call fcn.100012b1
jmp 0x10002eb2
push 0xd
call esi
test bl, al
jne 0x10002e06
push 0xc
call esi
test bl, al
je 0x10002e3c
mov eax, dword [0x100266a4]
shl eax, 5
mov ecx, dword [eax + 0x10025a24]
mov ecx, dword [ecx]
mov dword [ebp - 4], ecx
test ecx, ecx
jle 0x10002e22
or edi, 0xffffffff
jmp 0x10002e3c
fild dword [ebp - 4]
fld dword [eax + 0x10025a28]
fsub qword [0x1001caa0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x10002e3c
mov edi, ebx
push 0x25
call esi
test bl, al
je 0x10002e5a
mov eax, dword [0x100266a4]
shl eax, 5
mov eax, dword [eax + 0x10025a24]
cmp dword [eax], 0
jle 0x10002e5a
or edi, 0xffffffff
push 0x27
call esi
mov ecx, dword [0x100266a4]
test bl, al
je 0x10002e8c
mov eax, ecx
shl eax, 5
mov edx, dword [eax + 0x10025a24]
fild dword [edx]
fld dword [eax + 0x10025a28]
fsub qword [0x1001caa0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x10002e8c
mov edi, ebx
test edi, edi
je 0x10002eb2
shl ecx, 5
mov ecx, dword [ecx + 0x10025a24]
add dword [ecx], edi
mov eax, dword [0x100266a4]
shl eax, 5
cmp dword [eax + 0x10025a18], ebx
jne 0x10002eb2
and dword [0x100266a8], 0
pop edi
pop esi
pop ebx
leave
ret