Function at 0x5009074a
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x34
push ebx
push ebp
push esi
push edi
xor ebx, ebx
xor edi, edi
inc ebx
cmp dword [esp + 0x48], edi
mov esi, ecx
push 2
mov dword [esp + 0x14], esi
push ebx
je 0x5009096b
push ebx
push ebx
push edi
call fcn.50272bbe
push ebx
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
mov dword [esp + 0x50], ebx
call fcn.50272bbe
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x18]
push 0xfffffffffffffffe
pop ecx
sub ecx, eax
add dword [esp + 0x20], ecx
push 0xfffffffffffffffe
pop ecx
sub ecx, eax
add dword [esp + 0x18], ecx
mov ecx, esi
call fcn.5010c3a4
push eax
call dword [sym.imp.USER32.dll_SetCapture]
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
push ebx
push 0x20a
push 0x200
push edi
lea eax, [esp + 0x38]
push eax
call esi
test eax, eax
jne 0x50090866
push ebx
mov eax, 0x215
push eax
push eax
push edi
lea eax, [esp + 0x38]
push eax
call esi
test eax, eax
jne 0x50090866
push ebx
mov eax, 0xa0
push eax
push eax
push edi
lea eax, [esp + 0x38]
push eax
call esi
test eax, eax
jne 0x50090866
push ebx
mov eax, 0xa1
push eax
push eax
push edi
lea eax, [esp + 0x38]
push eax
call esi
test eax, eax
jne 0x50090866
push ebx
mov ebp, 0xa2
push ebp
push ebp
push edi
lea eax, [esp + 0x38]
push eax
call esi
test eax, eax
jne 0x5009086b
push edi
push 0xa5
push 0xa4
push edi
lea eax, [esp + 0x38]
push eax
call esi
test eax, eax
jne 0x5009086b
push edi
mov eax, 0x202
push eax
push eax
push edi
lea eax, [esp + 0x38]
push eax
call esi
test eax, eax
jne 0x5009086b
push ebx
push 0x1f
push 0x1f
push edi
lea eax, [esp + 0x38]
push eax
call esi
test eax, eax
jne 0x5009086b
call dword [sym.imp.USER32.dll_WaitMessage]
jmp 0x500907b0
mov ebp, 0xa2
mov eax, dword [esp + 0x2c]
cmp eax, 0xa4
je 0x5009094a
cmp eax, 0xa5
je 0x5009094a
cmp eax, ebp
je 0x50090890
cmp eax, 0x202
jne 0x50090894
mov dword [esp + 0x48], edi
call dword [sym.imp.USER32.dll_GetMessagePos]
mov dword [esp + 0x14], eax
movsx ecx, word [esp + 0x16]
movsx eax, ax
push ecx
push eax
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
mov ebp, eax
cmp ebp, edi
jne 0x50090911
cmp dword [esp + 0x48], edi
jne 0x50090911
xor ecx, ecx
xor eax, eax
push 2
push ecx
mov ecx, dword [esp + 0x18]
push eax
push ebx
push edi
call fcn.50272bbe
push ebx
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x500908e2
cmp ebp, edi
jne 0x50090921
cmp ebp, edi
jne 0x500907b0
cmp dword [esp + 0x48], edi
jne 0x500907b0
mov ecx, dword [esp + 0x10]
call fcn.5010c3a4
mov esi, eax
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, esi
jne 0x50090973
call dword [sym.imp.USER32.dll_ReleaseCapture]
jmp 0x50090973
cmp ebp, edi
mov ecx, ebx
je 0x500908c1
cmp dword [esp + 0x48], edi
je 0x500908c1
mov eax, ebx
jmp 0x500908c3
mov ecx, dword [esp + 0x10]
call fcn.5010c3a4
mov esi, eax
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, esi
jne 0x5009093c
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
call fcn.50272bbe
jmp 0x50090973
mov ecx, dword [esp + 0x10]
call fcn.5010c3a4
mov esi, eax
call dword [sym.imp.USER32.dll_GetCapture]
cmp eax, esi
jne 0x50090965
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov ecx, dword [esp + 0x10]
push edi
push edi
push edi
push ebx
push edi
call fcn.50272bbe
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4