Function at 0x457f37
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x48de14]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, ecx
push esi
lea esi, [ebx - 0x374]
mov dword [ebp - 0x24], eax
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0xdc]
test al, al
je 0x45813d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xe8]
test al, al
je 0x45813d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xf0]
mov edi, dword [ebp + 8]
test al, al
jne 0x457f9c
lea eax, [edi - 0x200]
cmp eax, 0xd
jbe 0x45813d
cmp edi, 0x20a
jne 0x457fae
test byte [ebp + 0xc], 8
je 0x45813d
mov byte [ebp - 0x15], 1
cmp edi, 0x200
jb 0x457fc2
cmp edi, 0x20d
jbe 0x457fcb
cmp edi, 0x20
jne 0x4580cc
mov ecx, dword [ebx + 4]
call fcn.004564a0
test eax, eax
jne 0x458012
cmp edi, 0x201
jb 0x458012
cmp edi, 0x205
ja 0x458012
mov ecx, dword [ebp + 0x10]
movsx eax, word [ebp + 0x10]
shr ecx, 0x10
movsx ecx, cx
push ecx
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov ecx, eax
call fcn.0043d6cc
lea ecx, [ebx - 0x374]
cmp eax, ecx
jne 0x45813d
mov ecx, dword [ebx + 4]
call fcn.004564a0
neg eax
sbb eax, eax
and eax, 3
jne 0x45808f
lea eax, [ebp - 0x14]
push eax
call fcn.00456610
movsx eax, word [ebp + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x10]
shr eax, 0x10
cwde
mov dword [ebp - 0x1c], eax
cmp edi, 0x20a
jne 0x45805e
lea eax, [ebp - 0x20]
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov ecx, eax
call fcn.00439451
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x1c]
lea eax, [ebp - 0x14]
push dword [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x45813d
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov ecx, eax
call fcn.0043c0c9
test al, al
jne 0x45813d
push 3
pop eax
cmp eax, 3
jne 0x45813d
cmp edi, 0x20
je 0x458155
cmp edi, 0x201
je 0x4580bd
cmp edi, 0x203
je 0x4580bd
cmp edi, 0x204
jne 0x458169
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x104]
jmp 0x458169
cmp edi, 0x100
jb 0x4580dc
cmp edi, 0x108
jbe 0x45815b
cmp edi, 0x102
je 0x45815b
cmp edi, 0x286
je 0x45815b
cmp edi, 0x7b
jne 0x458150
movsx eax, word [ebp + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x10]
shr eax, 0x10
cwde
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
mov ecx, eax
call fcn.00439451
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push dword [ebp - 0x1c]
mov eax, dword [esi]
push dword [ebp - 0x20]
mov ecx, esi
call dword [eax + 0x1c]
mov ecx, eax
call fcn.0043d6cc
lea ecx, [ebx - 0x374]
cmp eax, ecx
je 0x4581bf
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046bbe4
leave
ret 0x10
cmp edi, 0x53
jne 0x45813d
mov byte [ebp - 0x15], 0
jmp 0x4581bf
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x100]
test al, al
je 0x45813d
cmp edi, 0x102
jne 0x4581bf
mov ecx, esi
call fcn.0045768d
test al, al
je 0x4581bf
push 0x15
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je 0x458193
push 0
mov ecx, esi
call fcn.0045767d
jmp 0x4581bb
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x4581b3
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_IsDBCSLeadByte]
test eax, eax
je 0x4581bf
movzx eax, word [ebp + 0xc]
shl eax, 8
mov dword [ebx + 0x24], eax
jmp 0x45813d
or dword [ebp + 0xc], eax
mov edi, 0x286
and dword [ebx + 0x24], 0
mov eax, dword [esi]
and dword [ebp - 0x28], 0
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp + 0x10]
mov ecx, esi
push dword [ebp + 0xc]
push edi
call dword [eax + 0x1e4]
test eax, eax
je 0x458239
cmp edi, 0x100
jb 0x4581ec
cmp edi, 0x108
jbe 0x458215
cmp edi, 0x102
je 0x458215
cmp edi, 0x286
je 0x458215
add edi, 0xfffffe00
cmp edi, 0xd
ja 0x458241
mov ecx, dword [ebx + 4]
call fcn.004564a0
test eax, eax
je 0x458241
jmp 0x458239
cmp edi, 0x101
jne 0x458239
mov ebx, dword [ebx - 0x334]
xor eax, eax
cmp ebx, eax
je 0x458239
push eax
push eax
push eax
push str.textchanged
push esi
mov ecx, ebx
call fcn.0043d439
mov ecx, dword [ebp - 0x24]
mov al, byte [ebp - 0x15]
mov byte [ecx], al
mov eax, dword [ebp - 0x28]
jmp 0x45813f