Function at 0x409a00
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x28
push ebx
push edi
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
cmp dword [edi + 0x64], ebx
jle 0x409c4b
push ebp
push esi
jmp 0x409a20
xor ebx, ebx
push dword [esp + 0x10]
lea ecx, [edi + 0x58]
call fcn.00421fe1
mov esi, eax
mov ecx, edi
push dword [esi + 0xc]
call fcn.00407571
mov ebp, eax
cmp ebp, ebx
je 0x409c38
mov eax, dword [ebp + 0x50]
cmp eax, ebx
je 0x409c38
mov ecx, dword [ebp + 8]
cmp ecx, 3
je 0x409b29
cmp ecx, 4
je 0x409b29
cmp ecx, 5
jne 0x409ac3
push eax
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov edi, eax
inc edi
push edi
call fcn.00428bb9
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x409a8f
mov ecx, 0x482e04
call fcn.0041fee9
push eax
call fcn.00420ba1
pop ecx
cmp edi, 1
jne 0x409a99
and byte [ebx], 0
jmp 0x409aa4
push edi
push ebx
push dword [ebp + 0x50]
call dword [sym.imp.USER32.dll_GetWindowTextA]
push ebx
lea ecx, [esi + 0x10]
call fcn.0041f0d0
push ebx
call fcn.00428da3
push ebx
mov dword [esi + 0x1c], eax
call fcn.00428bae
pop ecx
pop ecx
jmp 0x409b6a
cmp ecx, 0xd
jne 0x409aea
lea edi, [esi + 0x10]
push edi
push eax
call fcn.00407015
pop ecx
pop ecx
mov ecx, edi
call fcn.0041fee9
push eax
call fcn.00428e2e
pop ecx
mov dword [esi + 0x1c], eax
jmp 0x409b6a
cmp ecx, 7
je 0x409af4
cmp ecx, 8
jne 0x409b6a
xor edx, edx
cmp ecx, 7
setne dl
dec edx
push ebx
and edx, 0x41
push ebx
add edx, 0x147
push edx
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x18]
push 0xa
push ecx
push eax
mov dword [esi + 0x1c], eax
call fcn.0042b896
add esp, 0xc
lea eax, [esp + 0x18]
jmp 0x409b61
push ebx
push ebx
push 0xf0
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 1
pop ecx
cmp eax, ecx
je 0x409b48
cmp eax, 2
je 0x409b48
mov dword [esi + 0x1c], ebx
jmp 0x409b4b
mov dword [esi + 0x1c], ecx
lea eax, [esp + 0x28]
push 0xa
push eax
push dword [esi + 0x1c]
call fcn.0042b949
add esp, 0xc
lea eax, [esp + 0x28]
push eax
lea ecx, [esi + 0x10]
call fcn.0041f0d0
push 0x58
call fcn.00428bb9
test eax, eax
pop ecx
je 0x409b81
mov ecx, eax
call fcn.00409c59
mov edi, eax
jmp 0x409b83
xor edi, edi
test edi, edi
jne 0x409b98
mov ecx, 0x482e04
call fcn.0041fee9
push eax
call fcn.00420ba1
pop ecx
push esi
mov ecx, edi
call fcn.0041f13e
or dword [edi + 0x10], 0xffffffff
lea ebp, [esi + 0x10]
push ebp
lea ecx, [edi + 0x48]
mov dword [edi + 0xc], 1
call fcn.0041f13e
mov eax, dword [esi + 0x1c]
test esi, esi
mov dword [edi + 0x54], eax
je 0x409bd6
mov ecx, ebp
call fcn.0041f063
mov ecx, esi
call fcn.0041f063
push esi
call fcn.00428bae
pop ecx
xor ebx, ebx
cmp dword [0x48298c], ebx
jle 0x409c25
mov esi, 0x482980
push ebx
mov ecx, esi
call fcn.00421fe1
mov ebp, eax
push 1
push edi
mov ecx, ebp
call fcn.0041f334
test al, al
jne 0x409c08
inc ebx
cmp ebx, dword [0x48298c]
jl 0x409be0
jmp 0x409c2a
test ebp, ebp
je 0x409c1a
mov ecx, ebp
call fcn.00409c8d
push ebp
call fcn.00428bae
pop ecx
push edi
push ebx
mov ecx, esi
call fcn.00422088
jmp 0x409c34
mov esi, 0x482980
push 0xffffffffffffffff
push edi
mov ecx, esi
call fcn.00421ffb
mov edi, dword [esp + 0x14]
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, dword [edi + 0x64]
jl 0x409a1e
pop esi
pop ebp
lea ecx, [edi + 0x58]
call fcn.004220a2
pop edi
pop ebx
add esp, 0x28
ret