Function at 0x1000e860
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a0
mov eax, dword [0x100bae20]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, ecx
push 0xffffffffffffffeb
push esi
mov dword [ebp - 0x470], esi
mov ebx, edx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov edi, eax
xor ecx, ecx
mov dword [ebp - 0x46c], edi
cmp edi, ecx
je 0x1000e8a7
cmp dword [0x100baec8], ecx
je 0x1000e8a7
cmp dword [edi], 0x420042
je 0x1000e8b6
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push ebx
push eax
push ecx
push esi
jmp 0x1000ec92
mov esi, dword [ebp + 8]
cmp esi, 0x20
ja 0x1000eaae
je 0x1000ea83
mov eax, esi
sub eax, 2
je 0x1000ea79
sub eax, 0xd
je 0x1000e8fd
sub eax, 5
jne 0x1000ec85
cmp dword [edi + 0x1c], ecx
je 0x1000ec85
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007cee0
mov esp, ebp
pop ebp
ret 8
cmp dword [edi + 0x1c], ecx
je 0x1000ea66
push edi
xor edi, edi
lea ebx, [ebp - 0x468]
lea esi, [ebp - 0x478]
mov dword [ebp - 0x468], 3
mov dword [ebp - 0x478], ecx
mov dword [ebp - 0x474], ecx
call fcn.1000d300
mov ebx, dword [ebp - 0x470]
add esp, 4
lea edx, [ebp - 0x464]
push edx
push ebx
call dword [sym.imp.USER32.dll_BeginPaint]
mov edi, eax
push 3
push edi
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
cmp dword [ebp - 0x468], 1
jne 0x1000e99d
xor eax, eax
lea ecx, [ecx]
mov byte [ebp + eax*4 - 0x404], al
mov byte [ebp + eax*4 - 0x403], al
mov byte [ebp + eax*4 - 0x402], al
inc eax
cmp eax, 0x100
jl 0x1000e960
mov esi, dword [ebp - 0x46c]
mov ecx, dword [esi + 0x18]
lea eax, [ebp - 0x404]
push eax
push 0xff
push 0
push ecx
call dword [sym.imp.GDI32.dll_SetDIBColorTable]
jmp 0x1000e9a3
mov esi, dword [ebp - 0x46c]
test byte [esi + 0x24], 1
je 0x1000e9f2
mov edx, dword [esi + 0x18]
mov eax, dword [ebp - 0x474]
mov ecx, dword [ebp - 0x478]
push 0xcc0020
push 0
push 0
push edx
push eax
push ecx
push 0
push 0
push edi
call dword [sym.imp.GDI32.dll_BitBlt]
lea eax, [ebp - 0x464]
push eax
push ebx
call dword [sym.imp.USER32.dll_EndPaint]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007cee0
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 4]
lea edx, [ebp - 0x414]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [ebp - 0x474]
mov edx, dword [ebp - 0x478]
mov eax, dword [esi + 0x18]
push 0xcc0020
push ecx
mov ecx, dword [ebp - 0x408]
sub ecx, dword [ebp - 0x410]
push edx
mov edx, dword [ebp - 0x40c]
sub edx, dword [ebp - 0x414]
push 0
push 0
push eax
push ecx
push edx
push 0
push 0
push edi
call dword [sym.imp.GDI32.dll_StretchBlt]
lea eax, [ebp - 0x464]
push eax
push ebx
call dword [sym.imp.USER32.dll_EndPaint]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007cee0
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x470]
push ebx
push ecx
push 0xf
push edx
jmp 0x1000ec92
call fcn.1000e460
jmp 0x1000ec85
mov eax, dword [ebp - 0x470]
push 0xfffffffffffffff4
push eax
call dword [sym.imp.USER32.dll_GetClassLongA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007cee0
mov esp, ebp
pop ebp
ret 8
cmp esi, 0x100
ja 0x1000eb09
je 0x1000eaee
cmp esi, 0x46
jne 0x1000ec85
lea esi, [ebp - 0x4a0]
call fcn.1000d250
mov edx, dword [eax]
mov ecx, dword [eax + 8]
mov esi, dword [eax + 4]
mov eax, dword [eax + 0xc]
sub ecx, edx
inc ecx
sub eax, esi
inc eax
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x14], eax
jmp 0x1000ec82
mov ecx, dword [ebp + 0xc]
mov dword [edi + 0x20], ecx
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1007cee0
mov esp, ebp
pop ebp
ret 8
cmp esi, 0x200
jb 0x1000ec85
cmp esi, 0x209
ja 0x1000ec85
cmp dword [edi + 0x2c], ecx
je 0x1000ec85
push 0x12
call dword [sym.imp.USER32.dll_GetKeyState]
xor edx, edx
test ax, ax
mov eax, dword [ebp + 0xc]
setns dl
mov ecx, eax
shr ecx, 2
and ecx, 4
dec edx
and edx, 0x20
or edx, ecx
mov ecx, eax
and ecx, 4
add ecx, ecx
add ecx, ecx
or edx, ecx
and eax, 0xb
or edx, eax
mov dword [ebp - 0x474], edx
cmp esi, 0x201
jne 0x1000ecab
mov dword [ebp - 0x468], 1
mov eax, dword [ebp - 0x470]
push eax
call dword [sym.imp.USER32.dll_SetCapture]
cmp esi, 0x202
je 0x1000eb9c
cmp esi, 0x205
je 0x1000eb9c
cmp esi, 0x208
jne 0x1000eba2
call dword [sym.imp.USER32.dll_ReleaseCapture]
mov edx, dword [edi + 4]
lea ecx, [ebp - 0x424]
push ecx
mov esi, ebx
push edx
shr esi, 0x10
call dword [sym.imp.USER32.dll_GetClientRect]
call dword [sym.imp.GDI32.dll_GdiFlush]
mov eax, dword [edi + 0x18]
push 7
push eax
call dword [sym.imp.GDI32.dll_GetCurrentObject]
xor ecx, ecx
mov dword [ebp - 0x408], ecx
mov dword [ebp - 0x40c], ecx
cmp eax, ecx
je 0x1000ec12
lea ecx, [ebp - 0x490]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
je 0x1000ec12
mov eax, dword [ebp - 0x48c]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x40c], eax
mov eax, dword [ebp - 0x488]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x408], eax
mov eax, dword [ebp - 0x418]
sub eax, dword [ebp - 0x420]
mov dword [ebp - 0x46c], 1
cmp eax, 1
jl 0x1000ec33
mov dword [ebp - 0x46c], eax
mov ecx, dword [ebp - 0x41c]
sub ecx, dword [ebp - 0x424]
cmp ecx, 1
jge 0x1000ec49
mov ecx, 1
mov edx, dword [edi + 0x30]
mov eax, dword [ebp - 0x474]
push edx
push eax
mov eax, esi
imul eax, dword [ebp - 0x408]
cdq
idiv dword [ebp - 0x46c]
push eax
movzx eax, bx
imul eax, dword [ebp - 0x40c]
cdq
idiv ecx
mov ecx, dword [ebp - 0x468]
mov edx, dword [edi + 0x2c]
push eax
push ecx
call edx
add esp, 0x14
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x470]
push ebx
push eax
push esi
push ecx
call dword [sym.imp.USER32.dll_DefWindowProcA]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1007cee0
mov esp, ebp
pop ebp
ret 8
cmp esi, 0x204
jne 0x1000ecc2
mov dword [ebp - 0x468], 2
jmp 0x1000eb77
cmp esi, 0x207
jne 0x1000ecd9
mov dword [ebp - 0x468], 3
jmp 0x1000eb77
cmp esi, 0x202
jne 0x1000ecf0
mov dword [ebp - 0x468], 4
jmp 0x1000eb9c
cmp esi, 0x205
jne 0x1000ed07
mov dword [ebp - 0x468], 5
jmp 0x1000eb9c
cmp esi, 0x208
jne 0x1000ed1e
mov dword [ebp - 0x468], 6
jmp 0x1000eb9c
cmp esi, 0x203
jne 0x1000ed35
mov dword [ebp - 0x468], 7
jmp 0x1000eba2
cmp esi, 0x206
jne 0x1000ed4c
mov dword [ebp - 0x468], 8
jmp 0x1000eba2
xor edx, edx
cmp esi, 0x209
setne dl
dec edx
and edx, 9
mov dword [ebp - 0x468], edx
jmp 0x1000eb84