Function at 0x410251
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x494cd8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
and dword [ebp - 0x18], 0
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x28], eax
call fcn.00413ed6
test eax, eax
mov ecx, 0x112
cmovne ebx, eax
mov eax, dword [ebp + 0x14]
cmp eax, ecx
ja 0x410676
je 0x4105e2
cmp eax, 0x21
ja 0x410465
je 0x410421
cmp eax, 2
je 0x4103df
cmp eax, 6
je 0x4103a2
cmp eax, 7
je 0x410368
cmp eax, 0xf
jbe 0x410307
cmp eax, 0x11
jbe 0x410311
cmp eax, 0x20
jne 0x410307
cmp byte [0x49c6f9], 0
jne 0x4102f2
push dword [ebp + 0x1c]
push dword [0x49e33c]
call fcn.00401205
xor ebx, ebx
inc ebx
mov eax, ebx
jmp 0x41038a
mov eax, dword [0x49e1e4]
mov ecx, dword [eax + 0x16]
test ecx, ecx
je 0x41030b
push dword [ebp + 0x1c]
push ecx
call fcn.00401205
xor ebx, ebx
jmp 0x410387
and dword [eax + 0x1a], 0
jmp 0x410307
push edi
call fcn.00404c11
test eax, eax
je 0x410330
push 0x24
push 0
push 0
push 0xf0003
call fcn.0040bc11
cmp eax, 7
je 0x410384
mov eax, dword [0x49e294]
test al, 1
je 0x410348
push edi
call fcn.00448575
test eax, eax
jne 0x410307
mov eax, dword [0x49e294]
test al, 2
jne 0x410307
push 0
push 0x23
push 0xd0000
push edi
call fcn.004136a0
cmp eax, 2
jne 0x410307
mov eax, dword [ebp - 0x18]
xor ebx, ebx
inc ebx
jmp 0x41038a
push edi
call fcn.00412dc5
test eax, eax
jne 0x41037d
push edi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
jne 0x410307
push 0
call fcn.0048dcdd
xor ebx, ebx
inc ebx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x28]
pop edi
pop esi
mov dword [ecx], ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.00490511
mov esp, ebp
pop ebp
ret 0x18
push edi
call fcn.00412f57
test eax, eax
je 0x410307
test esi, esi
je 0x4103bc
mov dword [0x49c740], edi
jmp 0x4103d4
xor eax, eax
cmp dword [0x49c740], edi
cmove eax, dword [0x49c738]
and dword [0x49c740], 0
mov edi, eax
push edi
call fcn.004551b1
jmp 0x410307
push ebx
call fcn.00413987
test eax, eax
je 0x4103f3
push dword [eax + 0x28]
push ebx
push edi
call fcn.0041021e
push edi
call fcn.00412f57
test eax, eax
jne 0x410307
and ebx, 0xff00
cmp ebx, 0xc00
je 0x410307
xor ebx, ebx
inc ebx
mov dword [0x49e14c], ebx
jmp 0x410307
push edi
call fcn.00412f57
test eax, eax
jne 0x410452
and ebx, 0xff00
cmp ebx, 0xc00
je 0x410452
xor ebx, ebx
inc ebx
cmp edi, dword [0x49c738]
je 0x410455
cmp word [ebp + 0x1c], bx
jne 0x410455
push 2
pop eax
jmp 0x41038a
xor ebx, ebx
inc ebx
mov eax, dword [0x49e1e4]
cmp byte [eax], 0
je 0x4106c2
jmp 0x41044a
sub eax, 0x22
je 0x4104f9
sub eax, 0x5f
je 0x4104d1
sub eax, 1
je 0x4104b2
sub eax, 0x8f
jne 0x410307
cmp word [ebp + 0x1c], ax
jne 0x410307
cmp esi, 0xf000
jb 0x4104a6
push dword [ebp + 0x1c]
push esi
push ecx
push edi
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x410384
push esi
push edi
call fcn.00411341
jmp 0x410384
push ebx
call fcn.00413987
test eax, eax
je 0x4104c6
push dword [eax + 0x2c]
push ebx
push edi
call fcn.0041021e
push edi
call fcn.00412fec
jmp 0x410307
mov esi, dword [sym.imp.USER32.dll_SetWindowLongA]
push 0
push 0
push edi
call esi
push 0
push 2
push edi
call esi
push ebx
push edi
call fcn.004551ab
test eax, eax
je 0x410384
jmp 0x410307
push 2
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, eax
je 0x410307
cmp dword [0x49c718], 0
jne 0x410307
push edi
call fcn.00412f57
test eax, eax
jne 0x410307
cmp edi, dword [0x49c738]
je 0x410307
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ebx, ebx
inc ebx
push ebx
call esi
mov ecx, 0x8000
test cx, ax
jne 0x410559
push 2
call esi
mov ecx, 0x8000
test cx, ax
je 0x410307
push edi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x410307
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x14]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
push dword [ebp - 0x20]
lea eax, [ebp - 0x14]
push dword [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x410307
movzx ecx, word [ebp - 0x20]
movzx eax, word [ebp - 0x24]
shl ecx, 0x10
or ecx, eax
push ecx
push 0
push 0x84
push edi
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 2
je 0x4105cd
cmp eax, 4
je 0x4105cd
cmp eax, 9
jbe 0x410307
cmp eax, 0x11
ja 0x410307
push 0
push 0
push 0x5f9
push edi
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x410387
cmp dword [0x49c6c4], 0
je 0x4105fa
xor ebx, ebx
inc ebx
push ebx
push esi
call fcn.0040bf53
jmp 0x410387
and esi, 0xfff0
sub esi, 0xf020
je 0x410661
sub esi, 0x10
je 0x410623
sub esi, 0x10
je 0x410649
sub esi, 0x20
je 0x41063f
sub esi, 0xc0
jne 0x410307
cmp edi, dword [0x49c738]
jne 0x410307
xor ebx, ebx
inc ebx
push ebx
push edi
push edi
call fcn.00410875
jmp 0x410307
call fcn.00401235
jmp 0x410307
push edi
call fcn.00412f57
test eax, eax
jne 0x410307
call fcn.00410ebd
jmp 0x410384
push 2
push edi
push edi
call fcn.00410875
push edi
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x410307
mov ecx, 0x222
cmp eax, ecx
ja 0x410785
je 0x410735
cmp eax, 0x114
jb 0x410307
cmp eax, 0x115
jbe 0x41071f
cmp eax, 0x117
je 0x410706
cmp eax, 0x11f
je 0x4106e8
cmp eax, 0x121
je 0x4106d4
cmp eax, 0x201
jne 0x410307
xor ebx, ebx
inc ebx
cmp dword [0x49c6c4], 0
je 0x410307
jmp 0x41044a
xor ebx, ebx
inc ebx
push ebx
call fcn.00411bed
push esi
call fcn.0040ec11
jmp 0x410387
mov eax, dword [0x49e1e4]
mov ecx, dword [ebp + 0x1c]
mov dword [eax + 0x158], esi
mov eax, dword [0x49e1e4]
mov dword [eax + 0x15c], ecx
jmp 0x410384
mov ecx, dword [ebp + 0x1c]
mov eax, ecx
shr eax, 0x10
push eax
movzx eax, cx
push eax
push esi
push edi
call fcn.00411ab2
jmp 0x410384
mov eax, dword [ebp - 0x18]
xor ebx, ebx
cmp dword [0x49c6c4], ebx
jne 0x410365
jmp 0x41038a
cmp dword [ebp + 0x1c], 0
jne 0x410747
push 0
call fcn.0041112f
jmp 0x410307
cmp dword [ebp + 0x1c], edi
jne 0x410307
push 2
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, eax
je 0x410307
push edi
call fcn.00412dc5
test eax, eax
jne 0x410779
push edi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x410779
push edi
jmp 0x41073d
push 0
call fcn.0041112f
jmp 0x410384
sub eax, 0x30f
je 0x4107f2
dec eax
sub eax, 1
je 0x4107d8
sub eax, 0x2e7
je 0x4107c2
sub eax, 1
jne 0x410307
push edi
call fcn.00412f57
test eax, eax
jne 0x410384
push edi
call fcn.00412dc5
test eax, eax
cmovne edi, dword [0x49c738]
push edi
jmp 0x41077b
mov eax, 0xc04
xor ebx, ebx
cmp word [ebp + 0x1c], ax
jne 0x410387
jmp 0x4102ea
cmp esi, dword [0x49c6e4]
je 0x410307
push esi
call fcn.00412eb8
test eax, eax
jne 0x410307
push edi
call fcn.00412f57
test eax, eax
je 0x410307
mov eax, dword [0x49e1e4]
xor esi, esi
cmp dword [eax + 0x72], esi
je 0x410307
push esi
push edi
call fcn.004846ec
mov ebx, eax
mov dword [ebp - 0x1c], ebx
test ebx, ebx
je 0x410307
mov eax, dword [0x49e1e4]
push esi
push dword [eax + 0x72]
push ebx
call dword [sym.imp.GDI32.dll_SelectPalette]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x410860
mov esi, dword [sym.imp.GDI32.dll_RealizePalette]
push ebx
call esi
xor ebx, ebx
mov dword [ebp - 0x18], eax
inc ebx
push ebx
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
call dword [sym.imp.GDI32.dll_SelectPalette]
push dword [ebp - 0x1c]
call esi
xor esi, esi
jmp 0x410866
xor ebx, ebx
mov dword [ebp - 0x18], esi
inc ebx
push esi
push dword [ebp - 0x1c]
push edi
call fcn.0048485d
jmp 0x410387