Function at 0x4fd8f7
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x44
mov eax, 0x5819da
call fcn.0055ac26
mov esi, ecx
lea eax, [esi + 0x294]
cmp byte [eax], 0
je 0x4fd913
mov byte [eax], 0
cmp dword [esi + 0x328], 0
je 0x4fdc59
mov eax, dword [esi]
call dword [eax + 0x174]
push eax
mov ecx, 0x5ed9b0
call fcn.004f4bc6
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x4fd947
cmp dword [0x5ed9b4], eax
jne 0x4fd947
call fcn.0045e880
mov eax, dword [esi + 0x324]
mov edi, dword [esi + 0x328]
mov dword [ebp + 8], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x36c]
mov ecx, esi
call fcn.004fb337
mov ebx, eax
cmp dword [ebp + 8], edi
jne 0x4fd990
mov eax, edi
sub eax, 8
je 0x4fdba5
dec eax
je 0x4fda29
sub eax, 0xa
je 0x4fd99c
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x35c]
mov ecx, esi
call fcn.00462a5f
jmp 0x4fdc67
push esi
call fcn.0047fadf
mov edi, eax
pop ecx
test edi, edi
je 0x4fda1a
push edi
push 0x596360
call fcn.0046a8c8
pop ecx
pop ecx
test eax, eax
je 0x4fd9c7
mov edx, dword [eax]
push esi
mov ecx, eax
call dword [edx + 0x1ec]
jmp 0x4fda12
push edi
push 0x59692c
call fcn.0046a8c8
pop ecx
pop ecx
test eax, eax
je 0x4fd9e5
mov edx, dword [eax]
push esi
mov ecx, eax
call dword [edx + 0x1cc]
jmp 0x4fda12
push edi
push 0x595fd4
call fcn.0046a8c8
pop ecx
pop ecx
test eax, eax
jne 0x4fda07
push edi
push 0x595c44
call fcn.0046a8c8
pop ecx
pop ecx
test eax, eax
je 0x4fda1a
mov edx, dword [eax]
push esi
mov ecx, eax
call dword [edx + 0x1e4]
test eax, eax
je 0x4fd990
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x2b8]
jmp 0x4fd990
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x4fdb4e
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x31c]
test eax, eax
je 0x4fdb4e
mov ecx, dword [esi + 0x78]
xor edi, edi
push edi
call fcn.00489e30
cmp dword [esi + 0x2c4], edi
jne 0x4fdae6
push 0xa
lea ecx, [ebp - 0x50]
call fcn.004c2918
lea eax, [ebp - 0x50]
push eax
mov ecx, ebx
mov dword [ebp - 4], edi
call fcn.004f96e8
mov eax, dword [ebp - 0x4c]
mov dword [ebp + 8], eax
cmp eax, edi
je 0x4fdad8
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x50]
call fcn.004715d2
push dword [eax]
push 0x5edbc4
call fcn.0046a8c8
mov edi, eax
mov eax, dword [edi]
pop ecx
pop ecx
mov ecx, edi
mov dword [ebp - 0x10], edi
call dword [eax + 0x31c]
test eax, eax
je 0x4fdad0
mov edi, dword [edi]
mov eax, dword [ebx]
push 0
push 0
mov ecx, ebx
add edi, 0x344
call dword [eax + 0x16c]
mov ecx, dword [ebp - 0x10]
push eax
push 1
call dword [edi]
cmp dword [ebp + 8], 0
jne 0x4fda85
xor edi, edi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x50]
call fcn.004c2940
jmp 0x4fdb0d
mov ecx, dword [esi + 0x2fc]
mov eax, dword [ecx]
call dword [eax + 0x178]
push eax
push 0x5aa744
call fcn.0046a8c8
pop ecx
pop ecx
cmp eax, edi
je 0x4fdb0d
push edi
mov ecx, eax
call fcn.0052c335
mov ecx, dword [esi + 0x78]
push 1
call fcn.00489e30
push dword [esi + 0x78]
push 0x59e28c
call fcn.0046a8c8
pop ecx
pop ecx
cmp eax, edi
je 0x4fdb36
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx + 0x150]
mov eax, dword [esi + 0x78]
push 0x181
push edi
push edi
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_RedrawWindow]
jmp 0x4fdc67
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x4fdc67
test ebx, ebx
je 0x4fdc67
mov edi, dword [eax + 0x11c]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x16c]
test edi, eax
je 0x4fdc67
mov edi, dword [esi]
mov eax, dword [ebx]
push 1
push 0
mov ecx, ebx
add edi, 0x344
call dword [eax + 0x16c]
push eax
xor eax, eax
cmp dword [esi + 0x2c4], eax
mov ecx, esi
sete al
push eax
call dword [edi]
jmp 0x4fdc67
cmp dword [0x5f5900], 0
je 0x4fdc67
push 8
mov ecx, esi
call fcn.004fd2b1
mov edi, eax
test edi, edi
je 0x4fdc67
mov eax, dword [edi]
lea ecx, [ebp - 0x24]
push ecx
mov ecx, edi
call dword [eax + 0xc]
lea eax, [ebp - 0x34]
push eax
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x34]
push eax
mov ecx, esi
call fcn.00468796
push dword [ebp - 0x30]
lea eax, [ebp - 0x24]
push dword [ebp - 0x34]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
lea eax, [ebp - 0x24]
push eax
mov ecx, esi
call fcn.004687d7
mov dword [edi + 0x14], 1
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x24]
inc eax
mov ecx, esi
mov dword [ebp - 0x10], eax
call fcn.00465f79
test eax, 0x400000
je 0x4fdc2a
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24]
add ebx, eax
mov eax, dword [esi + 0x20]
push dword [ebp - 0x10]
mov dword [ebp + 8], eax
mov eax, dword [esi]
push ebx
mov ecx, esi
call dword [eax + 0x2c0]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4fdc67
and dword [edi + 0x14], 0
push edi
mov ecx, esi
call fcn.004fce70
jmp 0x4fdc67
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004c341c
call fcn.0055acfe
ret 0xc