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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
cmp dword [ebp + 8], 0x4e
push ebx
push esi
push edi
mov esi, ecx
jne 0x275cc0c5
mov edx, dword [ebp + 0x14]
xor ebx, ebx
cmp edx, ebx
mov dword [ebp - 4], ebx
je 0x27583f88
mov dword [edx], ebx
mov edi, dword [ebp + 0x10]
mov ecx, 0xfffffe64
mov eax, dword [edi + 8]
cmp eax, ecx
jbe 0x27584014
cmp eax, 0xfffffff4
ja 0x27584124
je 0x27584095
cmp eax, 0xfffffe65
je 0x275cc43b
cmp eax, 0xfffffe66
je 0x275cc3c1
cmp eax, 0xfffffe67
je 0x2758406c
cmp eax, 0xfffffe69
je 0x275cc2a8
cmp eax, 0xfffffe6a
je 0x27584046
cmp eax, 0xfffffe6d
jne 0x27584029
mov ecx, dword [edi + 0x30]
cmp ecx, ebx
je 0x2758400a
add edi, 0xc
xor edx, edx
cmp eax, 0xfffffe3c
sete dl
push edx
push edi
call fcn.27584511
mov ecx, esi
call fcn.27583d30
test eax, eax
jne 0x275cc287
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 0x10
jne 0x275cc0cc
test byte [esi + 0x264], 1
jne 0x275cc113
jmp 0x2758400a
cmp eax, 0xfffffe6e
jne 0x2758400a
mov eax, dword [edi + 0x5c]
cmp eax, ebx
mov dword [ebp + 8], eax
je 0x2758400a
test byte [edi + 0xc], 2
jne 0x275cc22b
jmp 0x2758400a
mov ecx, dword [edi + 0x40]
mov eax, dword [edi + 0x5c]
and ecx, 0x20
mov dword [ebp + 8], eax
push ecx
push eax
mov ecx, esi
call fcn.275c669d
mov eax, dword [ebp + 8]
cmp dword [eax + 0x9c], ebx
je 0x275cc292
jmp 0x2758400a
mov edi, dword [edi + 0x34]
cmp edi, ebx
je 0x2758400a
push ebx
mov ecx, edi
call fcn.2758c58f
test byte [esi + 0x268], 1
je 0x2758400a
push edi
lea ecx, [esi + 0x1d0]
call fcn.275a8c58
jmp 0x2758400a
mov eax, dword [edi]
cmp eax, dword [esi + 0xa0]
jne 0x2758410f
mov eax, dword [edi + 0xc]
dec eax
je 0x27584119
sub eax, 0x10000
jne 0x2758410f
mov eax, dword [edi + 0x2c]
cmp eax, ebx
mov dword [ebp + 8], eax
je 0x2758410f
xor ecx, ecx
test byte [edi + 0x28], 7
mov dword [ebp + 0x10], ecx
jne 0x275840f1
mov ecx, dword [esi + 0x1c4]
lea eax, [esi + 0x1c4]
lea edx, [ebp + 0x10]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
add eax, 0x58
cmp ecx, eax
mov eax, dword [ebp + 8]
je 0x275840f1
mov eax, dword [eax + 0xc8]
mov dword [edi + 0x30], eax
mov eax, dword [ebp + 8]
test byte [edi + 0x28], 1
jne 0x27584107
lea edx, [eax + 0x58]
cmp ecx, edx
je 0x27584107
mov eax, dword [eax + 0xc0]
mov dword [edi + 0x34], eax
cmp ecx, ebx
jne 0x275cc50c
mov eax, dword [ebp + 0x14]
mov dword [eax], ebx
jmp 0x2758400a
mov dword [edx], 0x20
jmp 0x2758400a
cmp eax, 0xfffffffb
je 0x275cc517
cmp eax, 0xfffffffe
jne 0x2758400a
push edx
push ebx
push 1
mov ecx, esi
call fcn.275c762d
jmp 0x2758400a
xor eax, eax
jmp 0x2758400d
cmp eax, 0xfffffe34
je 0x275cc43b
cmp eax, 0xfffffe35
je 0x275cc3c1
cmp eax, 0xfffffe36
je 0x2758406c
cmp eax, 0xfffffe39
je 0x27584046
cmp eax, 0xfffffe3c
je 0x27583fe0
cmp eax, 0xfffffe3d
jne 0x2758400a
jmp 0x27584030
cmp word [edi + 0xc], 0x20
jne 0x2758400a
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push 9
push 0x110a
push dword [esi + 0xa0]
call edi
cmp eax, ebx
mov dword [ebp - 0x58], eax
je 0x2758400a
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x5c], 0xc
push eax
push ebx
push 0x110c
mov dword [ebp - 0x50], 0xf000
push dword [esi + 0xa0]
call edi
mov eax, dword [ebp - 0x38]
lea edx, [ebp + 8]
mov dword [ebp - 0xc], eax
add eax, 0x1c
push edx
push 0x27581dc8
mov ecx, dword [eax]
push eax
mov dword [ebp + 0x10], eax
call dword [ecx]
cmp eax, ebx
jl 0x2758400a
mov eax, dword [ebp - 0x54]
xor ecx, ecx
and ax, 0xf000
cmp eax, 0x2000
lea eax, [ebp - 0x5c]
setne cl
push eax
push ebx
inc ecx
push 0x110d
push dword [esi + 0xa0]
shl ecx, 0xc
mov dword [ebp - 0x54], ecx
call edi
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
push dword [ebp + 8]
push 0x276322fc
push esi
call fcn.275a8655
mov eax, dword [ebp - 0xc]
add esp, 0xc
cmp dword [eax + 0x9c], ebx
jne 0x275cc1ff
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x275cc1dd
mov dword [eax], 1
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x2758400a
mov dword [ebp + 8], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x2758400a
mov eax, dword [ebp - 0x54]
xor ecx, ecx
and ax, 0xf000
cmp eax, 0x2000
lea eax, [ebp - 0x5c]
setne cl
push eax
push ebx
inc ecx
push 0x110d
push dword [esi + 0xa0]
shl ecx, 0xc
mov dword [ebp - 0x54], ecx
call edi
jmp 0x275cc1dd
lea edi, [eax + 0x1c]
lea ecx, [ebp + 0x10]
push ecx
push 0x27582600
mov eax, dword [edi]
push edi
mov dword [ebp + 0x10], ebx
call dword [eax]
mov eax, dword [edi]
push edi
call dword [eax + 4]
push dword [ebp + 0x10]
push 0x276322f0
push esi
call fcn.275a8655
mov eax, dword [ebp + 8]
add esp, 0xc
cmp dword [eax + 0x9c], ebx
jne 0x275cc26e
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x275cc26e
mov dword [eax], 1
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x2758400a
mov dword [ebp + 0x10], ebx
jmp 0x275cc1f4
mov dword [edi + 0x18], ebx
mov dword [edi + 0x1c], ebx
jmp 0x2758400a
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x2758400a
mov dword [eax], 1
jmp 0x2758400a
lea eax, [ebp - 0xc]
lea ecx, [esi + 0xd4]
push eax
call fcn.275ab421
cmp edi, ebx
je 0x2758400a
cmp dword [ebp - 0xc], 1
jne 0x2758400a
mov eax, dword [edi + 0x60]
mov byte [ebp + 0x14], bl
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x64]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
push eax
push ebx
push 0x1111
push dword [esi + 0xa0]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x275cc2fb
test byte [ebp - 0x1c], 0x46
setne byte [ebp + 0x14]
nop
cmp byte [ebp + 0x14], bl
je 0x2758400a
push dword [esi + 0x284]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx eax, ax
test eax, 0x80000000
je 0x2758400a
lea eax, [ebp - 0x14]
lea ecx, [esi + 0x1cc]
push eax
mov eax, esi
neg eax
sbb eax, eax
lea edi, [esi + 0xd4]
and eax, ecx
mov ecx, edi
push eax
call fcn.2760523e
cmp eax, ebx
jl 0x2758400a
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.276047d6
cmp dword [ebp - 0x10], 2
jne 0x275cc3b2
mov ecx, dword [esi + 0x1c4]
lea eax, [esi + 0x1c4]
lea edx, [ebp + 0x10]
push edx
push eax
call dword [ecx + 0x78]
cmp eax, ebx
jl 0x275cc3b2
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x275cc3b2
mov ecx, dword [eax]
lea edx, [ebp + 8]
push edx
push eax
call dword [ecx + 0x5c]
mov ax, word [ebp + 8]
mov word [ebp - 0x34], 2
mov word [ebp - 0x2c], ax
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x275cc39e
mov dword [ebp + 0x10], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi + 0x218]
add esi, 0x218
lea ecx, [ebp - 0x34]
push ecx
push esi
call dword [eax + 0x3c]
push dword [ebp - 0x14]
mov ecx, edi
call fcn.276052ad
jmp 0x2758400a
mov edi, dword [edi + 0x30]
mov dword [ebp + 8], edi
add edi, 0x1c
push edi
mov eax, dword [edi]
call dword [eax + 4]
lea eax, [ebp - 4]
push eax
push 0x276322c0
push esi
call fcn.275a8655
mov eax, dword [ebp + 8]
add esp, 0xc
cmp dword [eax + 0x48], ebx
jne 0x275cc3f1
mov dword [ebp - 4], 1
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov edx, dword [esi + 0x268]
xor ecx, ecx
cmp word [ebp - 4], bx
lea eax, [esi + 0x268]
sete cl
and ecx, 1
and edx, 0xfffffffd
shl ecx, 1
or ecx, edx
mov dword [eax], ecx
mov eax, dword [ebp + 0x14]
cmp eax, ebx
je 0x275cc425
movsx ecx, word [ebp - 4]
mov dword [eax], ecx
cmp word [ebp - 4], bx
je 0x2758400a
mov ecx, esi
call fcn.27588a88
jmp 0x2758400a
and dword [esi + 0x268], 0xfffffffd
mov ecx, esi
call fcn.27588a88
cmp dword [edi + 0x1c], ebx
je 0x2758400a
mov eax, dword [edi + 0x30]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
push 0x110f
mov dword [ebp + 8], eax
push dword [esi + 0xa0]
call edi
push ebx
push ebx
push 0xe
push eax
mov dword [ebp - 0x14], eax
call edi
inc eax
push eax
push ebx
push dword [0x2762de00]
mov dword [ebp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push eax
mov dword [ebp + 0x14], eax
push dword [ebp + 0x10]
push 0xd
push dword [ebp - 0x14]
call edi
push ebx
push dword [ebp + 0x14]
call fcn.27596b75
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
pop ecx
lea edi, [eax + 0x1c]
pop ecx
push edi
mov eax, dword [edi]
call dword [eax + 4]
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
push 0x276322cc
push esi
call fcn.275a8655
add esp, 0x10
cmp word [ebp - 4], bx
jne 0x275cc4df
mov eax, dword [ebp + 8]
push dword [ebp - 8]
add eax, 0x58
push eax
mov ecx, dword [eax]
call dword [ecx + 0xb8]
mov eax, dword [edi]
push edi
call dword [eax + 8]
push dword [ebp - 8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp dword [ebp + 0x14], ebx
je 0x2758400a
push dword [ebp + 0x14]
push ebx
push dword [0x2762de00]
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x2758400a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
jmp 0x2758410f
push edx
push ebx
push 2
jmp 0x2758413a