Function at 0x44d410
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
call fcn.0043bb10
call fcn.0043c090
call fcn.0043b580
movss xmm0, dword [0x4899d4]
ucomiss xmm0, dword [0x489950]
mov edi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
lahf
test ah, 0x44
jnp 0x44d47d
mov eax, dword [0x4899c8]
xor eax, dword [0x489950]
push 0
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push 4
push eax
mov eax, dword [0x48c8c8]
add eax, dword [0x48c910]
push eax
push dword [0x48c870]
call edi
movss xmm0, dword [0x489950]
movss dword [0x4899d4], xmm0
call fcn.0044d0e0
cmp byte [0x489954], 0
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov esi, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
je 0x44d52c
cmp dword [0x48c9a0], 0
je 0x44d52c
push 0
push 4
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
mov eax, dword [0x48c8a8]
add eax, dword [0x48c908]
push eax
push dword [0x48c870]
call esi
mov al, byte [ebp - 8]
xor al, byte [0x48c898]
not al
test al, 1
jne 0x44d52c
push 0
push 1
lea eax, [ebp - 1]
mov byte [ebp - 1], 0
push eax
mov eax, dword [0x48c888]
add eax, dword [0x48c9a0]
push eax
push dword [0x48c870]
call esi
test byte [ebp - 1], 1
je 0x44d52c
push 0x20
call ebx
test ax, ax
je 0x44d52c
push 0
push 4
lea eax, [ebp - 8]
mov dword [ebp - 8], 6
push eax
mov eax, dword [0x48c8a0]
add eax, dword [0x48c908]
push eax
push dword [0x48c870]
call edi
cmp byte [0x489956], 0
je 0x44d588
mov eax, dword [0x48c9a0]
test eax, eax
je 0x44d588
add eax, dword [0x48c904]
lea ecx, [ebp - 8]
push 0
push 4
push ecx
push eax
push dword [0x48c870]
mov dword [ebp - 8], 0
call esi
xorps xmm0, xmm0
comiss xmm0, dword [ebp - 8]
jae 0x44d588
push 0
push 4
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
mov eax, dword [0x48c904]
add eax, dword [0x48c9a0]
push eax
push dword [0x48c870]
call edi
cmp dword [0x489958], 0
je 0x44d5df
mov eax, dword [0x48c9a0]
test eax, eax
je 0x44d5df
add eax, dword [0x48c8f0]
lea ecx, [ebp - 1]
push 0
push 1
push ecx
push eax
push dword [0x48c870]
mov byte [ebp - 1], 0
call esi
cmp byte [ebp - 1], 0
jne 0x44d5df
mov eax, dword [0x489958]
push 0
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push 4
push eax
mov eax, dword [0x48c878]
add eax, dword [0x48c9a0]
push eax
push dword [0x48c870]
call edi
cmp byte [0x489955], 0
je case.0x44d66a.5
cmp dword [0x48c9a0], 0
je case.0x44d66a.5
push 0
push 4
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
mov eax, dword [0x48c8a8]
add eax, dword [0x48c908]
push eax
push dword [0x48c870]
call esi
mov al, byte [ebp - 8]
xor al, byte [0x48c898]
not al
test al, 1
jne case.0x44d66a.5
lea eax, [ebp - 0xc]
push eax
call fcn.0043aad0
mov eax, dword [ebp - 0xc]
test eax, eax
je case.0x44d66a.5
add eax, dword [0x48c90c]
lea ecx, [ebp - 8]
push 0
push 2
push ecx
push eax
push dword [0x48c870]
mov dword [ebp - 8], 0
call esi
movsx eax, word [ebp - 8]
dec eax
cmp eax, 0x3f
ja case.0x44d66a.5
movzx eax, byte [eax + 0x44d6e4]
jmp dword [eax*4 + 0x44d6dc]
push 1
call ebx
test ax, ax
jns case.0x44d66a.5
push 0
push 4
lea eax, [ebp - 8]
mov dword [ebp - 8], 6
push eax
mov eax, dword [0x48c89c]
add eax, dword [0x48c908]
push eax
push dword [0x48c870]
call edi
cmp byte [0x489957], 0
je 0x44d6d5
cmp dword [0x48c9a0], 0
je 0x44d6d5
push 4
call ebx
movzx eax, ax
push 0
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push 4
push eax
mov eax, dword [0x48c890]
add eax, dword [0x48c9a0]
push eax
push dword [0x48c870]
call edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret