Function at 0x50d510
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
mov eax, dword [0x67f864]
xor eax, esp
mov dword [esp + 0xb0], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x10], edi
push 0x27f
fldcw word [esp]
pop edx
cmp dword [0x6926fc], 0
je 0x50d593
push 0x17
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x50d565
push 2
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ecx, ecx
test ax, ax
setl cl
mov eax, ecx
jmp 0x50d577
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
xor edx, edx
test ax, ax
setl dl
mov eax, edx
test eax, eax
jne 0x50d593
mov eax, dword [0x6926fc]
push eax
push 0
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [0x6926fc], 0
cmp dword [edi + 0xb4], 0
mov ebx, dword [ebp + 8]
jne 0x50d88c
mov eax, dword [ebx + 4]
cmp eax, 0x207
je 0x50d5b8
cmp eax, 0xa7
jne 0x50d67a
call fcn.0057ee1a
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x50d67a
mov eax, dword [eax + 0xe0]
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
sub eax, 1
neg eax
sbb eax, eax
inc eax
je 0x50d67a
mov eax, dword [0x690ca0]
test eax, eax
je 0x50d621
lea edx, [esp + 0x10]
call fcn.00404050
mov eax, dword [0x690ca0]
test eax, eax
je 0x50d621
mov ecx, dword [eax + 0x570]
test ecx, ecx
je 0x50d621
push 1
push 3
call fcn.0046bb20
add esp, 8
call fcn.0049e4b0
jmp 0x50d639
call fcn.00457810
test eax, eax
je 0x50d639
push 1
mov ecx, 1
call fcn.004579b0
add esp, 4
cmp dword [0x690ca0], 0
mov eax, 0xffff8001
mov word [0x695364], ax
mov word [0x695366], ax
je 0x50d65e
mov eax, dword [esp + 0x10]
xor edx, edx
call fcn.00404050
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx + 4], 0x100
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
jne 0x50d6e8
push 0x11
call esi
test ax, ax
jge 0x50d6e8
push 0x12
call esi
test ax, ax
jl 0x50d6e8
cmp dword [ebx + 8], 0x11
je 0x50d6e8
mov ax, word [ebx + 8]
lea edx, [esp + 0x14]
push edx
call fcn.00516280
add esp, 4
test eax, eax
je 0x50d6e8
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x20]
push 0
push eax
push 0x111
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx + 4], 0x106
jne 0x50d752
push 0x12
call esi
test ax, ax
jge 0x50d752
push 0x11
call esi
test ax, ax
jl 0x50d752
mov di, word [ebx + 8]
lea edx, [esp + 0x14]
push edx
call fcn.00516320
add esp, 4
test eax, eax
je 0x50d74e
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x20]
push 0
push eax
push 0x111
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
mov edi, dword [esp + 0x10]
mov eax, dword [ebx + 4]
cmp eax, 0x104
jne 0x50d78c
mov eax, dword [ebx + 8]
push eax
call fcn.004f1300
add esp, 4
test eax, eax
je 0x50d88c
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x100
jne 0x50d88c
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call fcn.0056eb4e
mov esi, eax
test esi, esi
je 0x50d878
mov eax, dword [esi + 0x20]
test eax, eax
je 0x50d878
push 0x50
lea ecx, [esp + 0x1c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClassNameW]
mov ecx, 0x63a528
lea eax, [esp + 0x18]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x50d7f6
test dx, dx
je 0x50d7f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x50d7f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x50d7d0
xor eax, eax
jmp 0x50d7fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x50d80f
push 0x61a6dc
mov ecx, esi
call fcn.00580b10
test eax, eax
je 0x50d878
mov eax, dword [ebx + 8]
cmp eax, 8
jne 0x50d845
mov edx, dword [esi + 0x20]
push 0
push eax
push 0x102
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x2e
jne 0x50d88c
push 0
push eax
mov eax, dword [esi + 0x20]
push 0x100
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebx + 8]
push ecx
call fcn.004f1300
add esp, 4
test eax, eax
jne 0x50d65e
push ebx
mov ecx, edi
call fcn.0057fed3
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005ce60a
mov esp, ebp
pop ebp
ret 4