Function at 0x40be29
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
cmp dword [0x562234], 0
je 0x40c0c5
call fcn.004127e5
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40c0c5
test ebx, ebx
jne 0x40be61
mov dword [ebp - 0xc], 1
jmp 0x40be66
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp + 0xc], 0
je 0x40be8d
push 0x11
call sub.USER32.dll_GetKeyState
movsx edx, ax
and edx, 0x8000
cmp edx, 0x8000
sete cl
and ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x40be92
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x40beb1
cmp dword [0x562238], 0
je 0x40beaa
mov dword [ebp - 0x10], 1
jmp 0x40bec8
xor edx, edx
mov dword [ebp - 0x10], edx
jmp 0x40bec8
cmp dword [0x562238], 0
je 0x40bec1
xor ecx, ecx
mov dword [ebp - 0x10], ecx
jmp 0x40bec8
mov dword [ebp - 0x10], 1
push 0xa
call sub.USER32.dll_BeginDeferWindowPos
mov edi, eax
test edi, edi
je 0x40c0c5
test ebx, ebx
jne 0x40bf8d
cmp dword [ebp - 0x10], 0
je 0x40bf36
mov ebx, dword [0x56cee0]
test ebx, ebx
je 0x40bf8d
mov eax, dword [ebx + 0xb6c]
cmp eax, dword [ebp - 4]
jne 0x40bf2a
push dword [ebx]
call fcn.0051e0ad
test eax, eax
je 0x40bf2a
push 0x13
push 0
push 0
push 0
push 0
push dword [ebp - 0xc]
push dword [ebx]
push edi
call sub.USER32.dll_DeferWindowPos
mov edi, eax
test edi, edi
je 0x40c0c5
mov ebx, dword [ebx + 0xd18]
test ebx, ebx
jne 0x40bef5
jmp 0x40bf8d
push 5
push dword [0x56ceec]
call sub.USER32.dll_GetWindow
mov esi, eax
test esi, esi
je 0x40bf8d
push esi
call fcn.0051dd0a
mov ebx, eax
test ebx, ebx
je 0x40bf7f
mov eax, dword [ebx + 0xb6c]
cmp eax, dword [ebp - 4]
jne 0x40bf7f
push 0x13
push 0
push 0
push 0
push 0
push dword [ebp - 0xc]
push dword [ebx]
push edi
call sub.USER32.dll_DeferWindowPos
mov edi, eax
test edi, edi
je 0x40c0c5
push 2
push esi
call sub.USER32.dll_GetWindow
mov esi, eax
test esi, esi
jne 0x40bf49
mov edx, dword [0x55d264]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0
je 0x40c06a
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 4]
je 0x40c054
cmp dword [ebp - 0x10], 0
je 0x40c001
mov ebx, dword [0x56cee0]
test ebx, ebx
je 0x40c054
mov eax, dword [ebx + 0xb6c]
cmp eax, dword [ebp - 8]
jne 0x40bff5
push dword [ebx]
call fcn.0051e0ad
test eax, eax
je 0x40bff5
push 0x13
push 0
push 0
push 0
push 0
push dword [ebp - 0xc]
push dword [ebx]
push edi
call sub.USER32.dll_DeferWindowPos
mov edi, eax
test edi, edi
je 0x40c0c5
mov ebx, dword [ebx + 0xd18]
test ebx, ebx
jne 0x40bfc0
jmp 0x40c054
push 5
push dword [0x56ceec]
call sub.USER32.dll_GetWindow
mov esi, eax
test esi, esi
je 0x40c054
push esi
call fcn.0051dd0a
mov ebx, eax
test ebx, ebx
je 0x40c046
mov eax, dword [ebx + 0xb6c]
cmp eax, dword [ebp - 8]
jne 0x40c046
push 0x13
push 0
push 0
push 0
push 0
push dword [ebp - 0xc]
push dword [ebx]
push edi
call sub.USER32.dll_DeferWindowPos
mov edi, eax
test edi, edi
je 0x40c0c5
push 2
push esi
call sub.USER32.dll_GetWindow
mov esi, eax
test esi, esi
jne 0x40c014
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x1db0]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0
jne 0x40bfa0
push 5
push dword [0x56ceec]
call sub.USER32.dll_GetWindow
mov esi, eax
test esi, esi
je 0x40c0bb
push esi
call fcn.0051dd0a
mov ebx, eax
test ebx, ebx
je 0x40c0ad
cmp dword [ebx + 0x9d8], 0
je 0x40c0ad
push 0x13
push 0
push 0
push 0
push 0
push dword [ebp - 0xc]
push dword [ebx]
push edi
call sub.USER32.dll_DeferWindowPos
mov edi, eax
test edi, edi
je 0x40c0c5
push 2
push esi
call sub.USER32.dll_GetWindow
mov esi, eax
test esi, esi
jne 0x40c07d
test edi, edi
je 0x40c0c5
push edi
call sub.USER32.dll_EndDeferWindowPos
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8