Function at 0x415307
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
movzx eax, byte [0x417194]
movzx eax, al
sub eax, 0x3aef43a2
mov dword [0x417198], eax
mov eax, dword [0x417198]
xor eax, 0xfffffffe
mov byte [0x417194], al
mov dword [esp], 0x87
mov eax, dword [sym.imp.USER32.dll_GetSysColorBrush]
call eax
sub esp, 4
movzx eax, byte [0x417194]
or eax, 0x31
mov byte [0x417194], al
mov eax, dword [0x417198]
or eax, 0xb515d5ee
mov dword [0x417198], eax
movzx eax, byte [0x417194]
xor eax, 1
mov byte [0x417194], al
movzx eax, byte [0x417194]
mov edx, 0xffffffd3
imul eax, edx
mov byte [0x417194], al
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
movzx edx, byte [0x417194]
mov eax, 0
sub eax, edx
shl eax, 2
mov byte [0x417194], al
movzx eax, byte [0x417194]
add eax, 7
mov byte [0x417194], al
movzx eax, byte [0x417194]
mov edx, 0x35
imul eax, edx
mov byte [0x417194], al
mov eax, dword [0x417198]
and eax, 0x27637153
mov dword [0x417198], eax
mov eax, dword [0x417198]
sub eax, 0x36a1a87d
mov dword [0x417198], eax
mov eax, dword [ebp + 0xc]
shr eax, 2
mov dword [ebp - 0x10], eax
mov eax, dword [0x417198]
xor eax, 0xe
mov byte [0x417194], al
mov eax, dword [0x417198]
or eax, 2
mov byte [0x417194], al
mov eax, dword [0x417198]
sub eax, 0x1639036b
mov dword [0x417198], eax
movzx eax, byte [0x417194]
mov edx, 0x1e
imul eax, edx
mov byte [0x417194], al
mov eax, dword [0x417198]
sub eax, 0xa22dd97
mov dword [0x417198], eax
mov eax, dword [0x417198]
sub eax, 0x5d
mov byte [0x417194], al
jmp 0x4155db
movzx eax, byte [0x417194]
xor eax, 0xffffffa7
mov byte [0x417194], al
mov eax, dword [0x417198]
and eax, 0x1d
mov byte [0x417194], al
movzx eax, byte [0x417194]
movzx eax, al
or eax, 0xa6069a5b
mov dword [0x417198], eax
movzx eax, byte [0x417194]
add eax, 0x13
mov byte [0x417194], al
movzx eax, byte [0x417194]
and eax, 0xffffffb6
mov byte [0x417194], al
mov eax, dword [0x417198]
add eax, 0x3eb82ea8
mov dword [0x417198], eax
mov eax, dword [0x417198]
imul eax, eax, 0xdf5afcf0
mov dword [0x417198], eax
mov eax, dword [0x417198]
sub eax, 4
mov byte [0x417194], al
movzx eax, byte [0x417194]
sub eax, 4
mov byte [0x417194], al
movzx eax, byte [0x417194]
add eax, 0x33
mov byte [0x417194], al
movzx eax, byte [0x417194]
and eax, 0x3f
mov byte [0x417194], al
mov eax, dword [0x417198]
add eax, 0x425f88aa
mov dword [0x417198], eax
mov eax, dword [ebp - 0xc]
mov dword [eax], 0
mov eax, dword [0x417198]
add eax, 0x444dbd7e
mov dword [0x417198], eax
movzx eax, byte [0x417194]
movzx eax, al
xor eax, 0xffba920e
mov dword [0x417198], eax
mov eax, dword [0x417198]
xor eax, 0x23
mov byte [0x417194], al
mov eax, dword [0x417198]
or eax, 0xe3f739e5
mov dword [0x417198], eax
movzx eax, byte [0x417194]
xor eax, 5
mov byte [0x417194], al
mov eax, dword [0x417198]
and eax, 0xfffffff5
mov byte [0x417194], al
mov eax, dword [0x417198]
sub eax, 0x5a84f1b0
mov dword [0x417198], eax
add dword [ebp - 0xc], 4
mov eax, dword [0x417198]
imul eax, eax, 0x19f4e152
mov dword [0x417198], eax
movzx eax, byte [0x417194]
movzx eax, al
imul eax, eax, 0xce3832b3
mov dword [0x417198], eax
movzx eax, byte [0x417194]
mov edx, 0x58
imul eax, edx
mov byte [0x417194], al
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_GetKeyboardState]
call eax
sub esp, 4
mov eax, dword [0x417198]
sub eax, 0x30
mov byte [0x417194], al
mov eax, dword [0x417198]
and eax, 0x415a7f96
mov dword [0x417198], eax
sub dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
jne 0x415444
mov eax, dword [0x417198]
and eax, 0x47
mov byte [0x417194], al
mov dword [esp], 0x76
mov eax, dword [sym.imp.USER32.dll_IsWindow]
call eax
sub esp, 4
mov eax, dword [0x417198]
xor eax, 0xb26ff222
mov dword [0x417198], eax
movzx eax, byte [0x417194]
movzx eax, al
xor eax, 0x84da7bfa
mov dword [0x417198], eax
nop
leave
ret