Function at 0x4576e0
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x404
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebp, dword [edi + 0xfe8]
movzx eax, dx
shr edx, 0x10
xor ebx, ebx
xor esi, esi
cmp ebp, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], esi
je 0x4578b6
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0xc]
cmp esi, ebx
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x1c], ebx
je 0x4578a5
push esi
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x4578a5
mov eax, dword [edi + 0xfd4]
cmp eax, ebx
je 0x45775d
lea ecx, [ecx]
cmp dword [eax + 0xc], esi
je 0x45774e
mov eax, dword [eax + 0x40]
cmp eax, ebx
jne 0x457740
jmp 0x45775d
mov edx, dword [eax + 0x10]
cmp edx, dword [edi + 0xfdc]
jne 0x4578a5
lea eax, [esp + 0x1c]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [edi + 0xc8]
push 2
lea ecx, [esp + 0x20]
push ecx
push edx
push ebx
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x4578a5
mov eax, dword [edi + 0xc8]
push ebx
push ebx
push 0x31
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, eax
test ebx, ebx
je 0x457813
mov ecx, dword [edi + 0xc8]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
test esi, esi
je 0x457813
push ebx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
lea edx, [esp + 0x2c]
push edx
push 0x3e7
mov ebx, eax
mov eax, dword [ebp + 0xc]
push 0xd
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x2c10
lea ecx, [esp + 0x20]
push ecx
push 0xffffffffffffffff
lea edx, [esp + 0x38]
push edx
push esi
call dword [sym.imp.USER32.dll_DrawTextA]
push ebx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [edi + 0xc8]
push esi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x4578a5
mov eax, dword [0x594284]
test eax, eax
jne 0x457860
mov esi, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f89
push eax
call esi
test eax, eax
mov dword [0x594284], eax
jne 0x457860
mov ecx, dword [0x5a1afc]
push 0x32
push ecx
call esi
test eax, eax
mov dword [0x594284], eax
je 0x4578a5
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [0x594280]
test ecx, ecx
jne 0x457876
mov dword [0x594280], eax
mov eax, 1
mov dword [esp + 0x18], eax
mov dword [ebp + 0x1c], eax
mov eax, dword [edi + 0xfec]
test eax, eax
jne 0x4578a5
mov edx, dword [edi + 0xc8]
push 0
push 0x32
push 0x7d
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [edi + 0xfec], eax
mov ebp, dword [ebp + 0x40]
xor ebx, ebx
cmp ebp, ebx
jne 0x457710
mov esi, dword [esp + 0x18]
mov eax, dword [0x594280]
cmp eax, ebx
je 0x4578d6
cmp esi, ebx
jne 0x4578d6
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [0x594280], ebx
mov dword [0x594284], ebx
mov eax, dword [edi + 0xfe8]
cmp eax, ebx
je 0x457907
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [eax + 0x20]
jne 0x4578fc
mov eax, dword [eax + 0x40]
cmp eax, ebx
jne 0x4578e0
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x404
ret
mov ecx, dword [edi + 0xc8]
call fcn.004573e0
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x404
ret