Function at 0x414160
Capabilities:
Get graphical window text

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x445b68
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
push edi
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x414332
mov eax, dword [0x456050]
mov dword [esp + 0x28], eax
push ebx
mov dword [esp + 0x24], 0
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx - 0xc]
lea ebp, [ecx - 0xc]
cmp edx, 1
jg 0x4141bb
cmp eax, dword [ecx - 4]
jle 0x4141ff
mov esi, dword [ecx - 8]
cmp eax, esi
mov dword [esp + 0x10], esi
jge 0x4141c8
mov eax, esi
push eax
lea ecx, [esp + 0x2c]
call fcn.004044c0
test eax, eax
je 0x4141ff
mov edi, dword [esp + 0x28]
lea ecx, [esi + 1]
mov edx, ecx
lea esi, [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov dword [eax - 8], ecx
call fcn.00404560
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov edx, dword [eax - 0xc]
lea ebp, [eax - 0xc]
cmp edx, 1
jg 0x414222
mov edx, dword [eax - 4]
test edx, edx
jge 0x41426a
mov esi, dword [eax - 8]
test esi, esi
mov dword [esp + 0x10], esi
jle 0x41422f
mov ecx, esi
push ecx
lea ecx, [esp + 0x2c]
call fcn.004044c0
test eax, eax
je 0x41426a
mov edi, dword [esp + 0x28]
lea ecx, [esi + 1]
mov edx, ecx
lea esi, [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov dword [eax - 8], ecx
call fcn.00404560
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
inc edx
push edx
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea ecx, [esp + 0x28]
call fcn.00404590
mov eax, dword [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x28]
push 0
push str.Microsoft_Internet_Explorer
mov dword [ecx - 8], eax
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x30]
mov byte [eax + edx], 0
call fcn.00409240
cmp eax, 0xffffffff
je 0x414303
mov edi, dword [sym.imp.USER32.dll_FindWindowExA]
push 0
push str.WorkerW
push 0
push ebx
call edi
mov ebp, dword [sym.imp.USER32.dll_IsWindow]
mov esi, eax
push esi
call ebp
test eax, eax
jne 0x4142dd
push eax
push str.WorkerA
push eax
push ebx
call edi
mov esi, eax
push esi
call ebp
test eax, eax
jne 0x4142eb
push str.WorkerW_is_Not_Window_n
jmp 0x4142fb
push esi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x414347
push str.WorkerW_is_Not_Visible_n
call fcn.0041e6c0
add esp, 4
mov eax, dword [esp + 0x28]
mov edx, dword [0x456054]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x414332
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x414332
mov edx, dword [esp + 0x28]
add edx, 0xfffffff4
push edx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
mov eax, dword [esp + 0x28]
mov edx, dword [0x456054]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x414376
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x414376
mov edx, dword [esp + 0x28]
add edx, 0xfffffff4
push edx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret