Function at 0x42e540
Capabilities:
Get graphical window text
Log keystrokes via polling

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x11c
mov eax, dword [0x47f400]
xor eax, esp
mov dword [esp + 0x118], eax
mov eax, dword [0x493444]
cmp eax, ecx
je 0x42e5aa
test eax, eax
je 0x42e5aa
lea eax, [esp + 0x98]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x40
mov esi, dword [sym.imp.USER32.dll_GetWindowTextW]
call esi
sub esp, 0xc
mov eax, dword [0x493444]
lea ecx, [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x40
call esi
sub esp, 0xc
xor ebx, ebx
jmp 0x42e8db
mov edi, dword [esp + 0x134]
mov esi, edx
or esi, 4
cmp esi, 0x104
jne 0x42e5c8
mov ebp, edi
shr ebp, 0x1e
and ebp, 1
jmp 0x42e5ca
xor ebp, ebp
mov esi, dword [esp + 0x130]
mov dword [esp + 0x10], 0
lea ebx, [edx - 0x200]
cmp ebx, 0xc
ja case.default.0x42e5e4
jmp dword [ebx*4 + 0x473480]
movsx eax, di
sar edi, 0x10
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
xor ecx, ecx
mov edx, 3
jmp 0x42e6cb
lea ebx, [edx - 0x100]
cmp ebx, 5
ja case.default.0x42e623
jmp dword [ebx*4 + 0x473468]
mov ecx, esi
call fcn.00429990
mov esi, eax
mov ecx, edi
call fcn.004299b0
cmp eax, 0xffffffff
je 0x42e7bf
mov edi, eax
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 0xc], 0
mov ecx, eax
xor edx, edx
call fcn.0042e360
mov ebx, eax
cmp edi, 0x43
je 0x42e886
cmp edi, 0x44
je 0x42e87b
mov dword [esp + 0x10], ebx
cmp edi, 0x46
jne case.0x42e623.258
mov eax, 0x91
mov cx, 0x69
mov dword [esp + 0x14], ecx
mov ebx, dword [esp + 0x10]
jmp 0x42e893
mov ecx, edi
call fcn.004299b0
cmp eax, 0xffffffff
je 0x42e7bf
mov edi, eax
mov ecx, esi
call fcn.00429990
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 0xc], 0
mov ecx, edi
mov edx, 1
call fcn.0042e360
jmp 0x42e8cf
cmp edx, 0x1c
jne case.0x42e623.258
xor ebx, ebx
cmp eax, ecx
jne 0x42e8db
cmp esi, 1
je 0x42e8db
call fcn.0042e290
xor ebx, ebx
jmp 0x42e8db
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6c
jmp 0x42e84a
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6b
jmp 0x42e84a
shr esi, 0x10
cmp esi, 2
je 0x42e83e
cmp esi, 1
jne 0x42e7bf
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6d
jmp 0x42e84a
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6a
jmp 0x42e84a
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6b
mov edx, 1
jmp 0x42e84c
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6a
mov edx, 1
jmp 0x42e84c
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6c
mov edx, 1
jmp 0x42e84c
shr esi, 0x10
cmp esi, 2
je 0x42e868
cmp esi, 1
jne 0x42e7bf
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6d
mov edx, 1
jmp 0x42e84c
mov dword [esp + 0x10], 0
jmp case.0x42e623.258
sar esi, 0x10
xor ebx, ebx
test esi, esi
xorps xmm0, xmm0
movups xmmword [esp], xmm0
setle bl
add ebx, 0x6f
mov ecx, ebx
xor edx, edx
call fcn.0042e360
mov byte [esp + 0x10], al
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, ebx
mov edx, 1
call fcn.0042e360
mov ebx, eax
or bl, byte [esp + 0x10]
imul eax, esi, 0xffff8889
shr eax, 0x10
add eax, esi
movzx eax, ax
movsx ecx, ax
shr eax, 0xf
sar ecx, 6
add ecx, eax
add cx, word [0x485786]
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov edx, 4
call fcn.0042e360
or al, bl
jmp 0x42e8cf
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6e
xor edx, edx
call fcn.0042e360
mov ebx, eax
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.0043b6ab
mov eax, ebx
jmp 0x42e8eb
xorps xmm0, xmm0
movups xmmword [esp], xmm0
mov ecx, 0x6e
mov edx, 1
jmp 0x42e84c
mov eax, 0x90
mov cx, 0x68
jmp 0x42e88f
mov eax, 0x14
mov cx, 0x67
mov dword [esp + 0x14], ecx
mov dword [esp], eax
call dword [sym.imp.USER32.dll_GetKeyState]
sub esp, 4
not al
and al, 1
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], esi
mov dword [esp + 0xc], 0
movzx edx, al
mov ecx, dword [esp + 0x14]
call fcn.0042e360
movzx ecx, bl
test al, al
mov eax, 1
cmove eax, ecx
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
setne bl
mov ecx, dword [esp + 0x118]
xor ecx, esp
call fcn.0043b6ab
mov eax, ebx
add esp, 0x11c
pop esi
pop edi
pop ebx
pop ebp
ret