Function at 0x414671
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x14
cmp dword [0x42e29c], 0
push ebx
mov ebx, dword [esp + 0x24]
push ebp
push esi
push edi
je 0x414694
push dword [esp + 0x28]
call fcn.00412d5a
pop ecx
jmp 0x414723
push 5
mov esi, 0x42e050
pop ecx
lea edi, [esp + 0x10]
cmp ebx, 1
rep movsd dword es:[edi], dword [esi]
je 0x4146b0
cmp dword [0x42e050], 0
jne 0x4146bb
lea eax, [esp + 0x10]
push eax
call fcn.00414288
pop ecx
mov ebp, dword [esp + 0x2c]
cmp dword [ebp + 0xc], 0
je 0x4146cc
cmp dword [esp + 0x20], 0
jne 0x4146ce
xor ebx, ebx
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 2
call edi
push dword [0x42f19c]
mov esi, dword [esp + 0x2c]
push dword [0x42f11c]
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push esi
call fcn.00415dde
add esp, 0x14
mov dword [0x42e29c], eax
test eax, eax
je 0x41471e
push eax
call dword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jne 0x41472a
push dword [0x42e29c]
call fcn.00416cb9
and dword [0x42e29c], 0
pop ecx
call fcn.00415b4d
xor eax, eax
jmp 0x4149af
push esi
call fcn.00412d5a
dec ebx
lea eax, [esp + 0x1c]
neg ebx
sbb ebx, ebx
not ebx
and ebx, eax
push ebx
push dword [0x42e29c]
push esi
call fcn.00415be3
push dword [0x42e29c]
mov ebx, eax
call fcn.00416cb9
and dword [0x42e29c], 0
push ebx
call fcn.00415c5a
mov esi, eax
xor eax, eax
add esp, 0x18
cmp ebx, eax
jle 0x414990
cmp ebx, 2
je 0x414990
cmp esi, eax
je 0x414990
cmp dword [esi + 0x2c], eax
je 0x414886
push 2
call edi
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
cmp ax, 1
je 0x4147a6
push 0x11
call ebx
test ax, ax
jge 0x4147f9
cmp dword [0x42f23c], 1
jne 0x4147f9
mov esi, dword [esi + 0x2c]
call fcn.00415b4d
push dword [ebp + 0x1c]
push esi
push dword [esp + 0x30]
call fcn.00414a44
add esp, 0xc
cmp eax, 1
lea eax, [esp + 0x10]
push eax
jne 0x4147ee
call fcn.004149b7
pop ecx
push esi
push 0
push 0x8190
push dword [esp + 0x34]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4149ac
call fcn.004149b7
pop ecx
jmp 0x4149ac
lea eax, [esp + 0x10]
push eax
call fcn.004149b7
pop ecx
push dword [esi + 0x2c]
mov esi, dword [esp + 0x2c]
push 0
push 0x8190
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
cmp dword [ebp + 0x1c], 1
jne 0x4149a7
push 0x10
call ebx
test ax, ax
jl 0x4149a7
push 0x12
call edi
test ax, ax
jl 0x41485d
push 0x11
call edi
test ax, ax
jl 0x41485d
push 0x10
call edi
test ax, ax
jl 0x41485d
push 0x5b
call edi
test ax, ax
jl 0x41485d
push 0x5c
call edi
test ax, ax
jge 0x414867
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x414830
push esi
call fcn.0041541d
push dword [esp + 0x14]
call fcn.00419a74
push 0
push esi
call fcn.00415320
add esp, 0x10
jmp 0x4149a7
cmp dword [esi + 0x34], eax
je 0x414968
lea eax, [esp + 0x10]
push eax
call fcn.004149b7
mov eax, dword [esi + 0x34]
pop ecx
push 1
pop ecx
cmp dword [eax + 0x14], ecx
jne 0x41492b
mov dword [0x42e290], ecx
mov eax, dword [esi + 0x34]
push 0x10
mov dword [0x42e294], eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jl 0x4148ce
mov eax, dword [ebp + 0x1c]
mov dword [0x42e298], eax
jmp 0x4148d5
and dword [0x42e298], 0
push 0x12
call edi
test ax, ax
jl 0x414902
push 0x11
call edi
test ax, ax
jl 0x414902
push 0x10
call edi
test ax, ax
jl 0x414902
push 0x5b
call edi
test ax, ax
jl 0x414902
push 0x5c
call edi
test ax, ax
jge 0x41490c
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4148d5
push 0
push dword [0x42f2c4]
push 3
push dword [esp + 0x34]
call dword [sym.imp.USER32.dll_SetTimer]
push dword [esp + 0x10]
call fcn.00419844
jmp 0x4149a6
mov edi, dword [esp + 0x28]
xor ebx, ebx
push ebx
push dword [0x42f11c]
push ecx
push eax
push edi
call fcn.0041a3a8
add esp, 0x14
test al, 4
je 0x4149a7
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push ebx
push 0x812c
push edi
call esi
push dword [0x42f11c]
push ebx
push 0x8190
push edi
call esi
jmp 0x4149a7
mov esi, dword [esi + 0x38]
cmp esi, eax
je 0x41497d
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.00405645
pop ecx
jmp 0x4149a6
push eax
push ebx
push 0x111
push dword [esp + 0x34]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4149a7
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, dword [esp + 0x28]
jne 0x4149a7
lea eax, [esp + 0x10]
push eax
call fcn.004149b7
pop ecx
call fcn.00415b4d
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret