Function at 0x1004c8e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x100d6050]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x100da15c], 0
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
je 0x1004cc28
mov eax, dword [0x100d6bf0]
mov ebx, dword [eax + 0x30]
mov cl, byte [eax + 0x30]
shr ebx, 0xb
and cl, 1
and bl, 1
mov byte [ebp - 0x11], cl
cmp dword [0x100d6b98], 0
je 0x1004c962
cmp byte [0x100d6ba8], 0
je 0x1004c962
cmp dword [0x100d6ba4], 0
mov eax, dword [0x100d6b9c]
jne 0x1004c943
cmp eax, 0x1f
je 0x1004c943
mov dl, 1
jmp 0x1004c945
xor dl, dl
test cl, cl
jne 0x1004cc28
test bl, bl
je 0x1004c962
test dl, dl
jne 0x1004cc28
cmp eax, 0x40
je 0x1004cc28
test byte [esi + 0x30], 0x20
jne 0x1004cc28
mov ecx, dword [0x100fb51c]
mov eax, dword [ebp + 0xc]
add ecx, 0xffffffca
xor ecx, 0xb97c4df3
cmp dword [ecx + eax], 9
je 0x1004cc28
mov ecx, dword [0x100fb6e8]
mov edi, dword [0x100fb774]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1004c9b0
mov eax, dword [edi]
test eax, eax
je 0x1004c9b0
mov al, byte [eax + 0x20]
test al, al
jne 0x1004cc28
test byte [0x100d6b18], 0x40
jne 0x1004cc28
cmp dword [0x100d6ba4], 9
xorps xmm0, xmm0
jne 0x1004ca16
mov eax, dword [0x100fb634]
mov ecx, dword [0x100d6b98]
add eax, 0xffffff84
xor eax, 0xb97c4e39
cmp byte [eax + ecx], 0
je 0x1004c9ec
cmp byte [ebp - 0x11], 0
jne 0x1004c9ec
test bl, bl
je 0x1004ca16
mov eax, dword [0x100fb638]
add eax, 0xffffff83
xor eax, 0xb97c4e3a
movss xmm1, dword [eax + ecx]
comiss xmm1, xmm0
jbe 0x1004ca16
mov eax, dword [0x100fb744]
movss xmm0, dword [eax + 0x10]
comiss xmm0, xmm1
ja 0x1004cc28
mov al, byte [0x100da3e4]
movss xmm0, dword [0x100da5b4]
push dword [0x100da9c8]
mov byte [0x100d6ab6], al
mov al, byte [0x100da528]
mov byte [0x100d6ab7], al
mov al, byte [0x100dadcc]
movss dword [0x100d6ac8], xmm0
movss xmm0, dword [0x100da470]
mov byte [0x100d6ab8], al
mov eax, dword [0x100daa84]
movss dword [0x100d6ac4], xmm0
movss xmm0, dword [0x100dac58]
mov dword [0x100d6afc], eax
mov eax, dword [0x100dab24]
movss dword [0x100d6adc], xmm0
movss xmm0, dword [0x100dad14]
mov dword [0x100d6b00], eax
mov al, byte [0x100da7e4]
movss dword [0x100d6ae0], xmm0
movss xmm0, dword [0x100da870]
mov byte [0x100d6aba], al
mov eax, dword [0x100da954]
movss dword [0x100d6acc], xmm0
mov dword [0x100d6b08], eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm0, dword [0x100da270]
test ax, ax
movss dword [0x100d6ae4], xmm0
movss xmm0, dword [0x100da32c]
setne byte [0x100d6abd]
cmp byte [0x100d6ab6], 0
movss dword [0x100d6ae8], xmm0
movss xmm0, dword [0x100db5f8]
movss dword [0x100d6aec], xmm0
movss xmm0, dword [0x100db4ac]
movss dword [0x100d6af0], xmm0
movss xmm0, dword [0x100db744]
movss dword [0x100d6af4], xmm0
je 0x1004cb28
movss xmm0, dword [0x100d6ac4]
movss dword [esi + 0xc], xmm0
cmp byte [0x100dadcc], 0
je 0x1004cc22
mov ecx, dword [0x100d6bc8]
cmp byte [ecx], 0
je 0x1004cc22
cmp byte [0x100d6bd0], 0
je 0x1004cb56
mov byte [ecx], 0
mov ecx, dword [0x100d6bc8]
cmp byte [ecx], 0
je 0x1004cc22
mov eax, dword [0x100d6bcc]
cmp byte [eax], 0
je 0x1004cc22
mov byte [ecx], 1
cmp byte [0x100d6ab8], 0
je 0x1004cc28
cmp byte [0x100d6ab7], 0
je 0x1004cc28
push esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push eax
push dword [0x100d6b10]
mov ecx, 0x100d6ab0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call fcn.1004d1b0
test al, al
je 0x1004cbdd
movss xmm0, dword [ebp - 0xc]
addss xmm0, dword [0x100c8170]
movss dword [esi + 0x10], xmm0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10086ba0
mov esp, ebp
pop ebp
ret 8
mov eax, dword [0x100fb83c]
sub esp, 8
mov dword [ebp - 0x18], eax
mov dword [esp + 4], 0xc2b40000
mov dword [esp], 0x42b40000
call dword [ebp - 0x18]
fstp dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x18]
add esp, 8
addss xmm0, dword [esi + 0x10]
movss dword [esi + 0x10], xmm0
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10086ba0
mov esp, ebp
pop ebp
ret 8
push esi
call fcn.1004cf50
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10086ba0
mov esp, ebp
pop ebp
ret 8