Function at 0x45c0dc
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0xc0
push ebx
push ebp
push esi
push edi
mov esi, dword [esp + 0xd4]
test byte [0x491a0c], 4
jne 0x45c14b
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.DLL_GetWindowLongA]
mov dword [esp + 0x14], eax
test eax, 0x40000
jne 0x45c14b
test eax, 0x400080
je 0x45c129
push 7
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov dword [esp + 0x10], eax
push 8
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov ebp, eax
jmp 0x45c158
test dword [esp + 0x14], 0x800000
je 0x45c14b
push 5
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov dword [esp + 0x10], eax
push 6
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov ebp, eax
jmp 0x45c158
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret
lea ecx, [esp + 0x18]
push ecx
push esi
call dword [sym.imp.USER32.DLL_GetWindowRect]
mov ecx, dword [esp + 0x1c]
inc ecx
sub dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x18]
inc ecx
sub dword [esp + 0x20], ecx
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
push esi
call dword [sym.imp.USER32.DLL_GetWindowDC]
mov ebx, eax
cmp word [esp + 0xd8], 0
je 0x45c31f
push dword [0x49a844]
push ebx
call dword [sym.imp.GDI32.DLL_SelectObject]
push 0
push dword [esp + 0x20]
push dword [esp + 0x28]
push ebx
call dword [sym.imp.GDI32.DLL_MoveToEx]
push dword [esp + 0x24]
push dword [esp + 0x24]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
push dword [esp + 0x24]
push dword [esp + 0x1c]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
push dword [0x49a848]
push ebx
call dword [sym.imp.GDI32.DLL_SelectObject]
push 0
push dword [esp + 0x20]
push dword [esp + 0x20]
push ebx
call dword [sym.imp.GDI32.DLL_MoveToEx]
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
dec ecx
push ecx
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
mov ecx, dword [esp + 0x24]
dec ecx
push ecx
mov ecx, dword [esp + 0x24]
dec ecx
push ecx
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
mov ecx, dword [esp + 0x24]
dec ecx
push ecx
push dword [esp + 0x1c]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
push dword [0x49a850]
push ebx
call dword [sym.imp.GDI32.DLL_SelectObject]
push 0
mov ecx, dword [esp + 0x28]
dec ecx
push ecx
mov ecx, dword [esp + 0x20]
inc ecx
push ecx
push ebx
call dword [sym.imp.GDI32.DLL_MoveToEx]
mov ecx, dword [esp + 0x1c]
inc ecx
push ecx
mov ecx, dword [esp + 0x1c]
inc ecx
push ecx
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
mov ecx, dword [esp + 0x1c]
inc ecx
push ecx
mov ecx, dword [esp + 0x24]
dec ecx
push ecx
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
mov ecx, 2
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x20]
dec edx
mov dword [esp + 0x30], edx
lea edx, [ebp + 1]
mov dword [esp + 0x34], edx
push dword [0x49a840]
lea edx, [esp + 0x2c]
push edx
push ebx
call dword [sym.imp.USER32.DLL_FillRect]
mov ecx, dword [esp + 0x24]
sub ecx, ebp
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x24]
dec ecx
mov dword [esp + 0x34], ecx
push dword [0x49a840]
lea ecx, [esp + 0x2c]
push ecx
push ebx
call dword [sym.imp.USER32.DLL_FillRect]
mov ecx, dword [esp + 0x1c]
add ecx, 2
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x30], ecx
push dword [0x49a840]
lea ecx, [esp + 0x2c]
push ecx
push ebx
call dword [sym.imp.USER32.DLL_FillRect]
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x20]
dec ecx
mov dword [esp + 0x30], ecx
push dword [0x49a840]
lea ecx, [esp + 0x2c]
push ecx
push ebx
call dword [sym.imp.USER32.DLL_FillRect]
test dword [esp + 0x14], 0xc00000
je 0x45c58b
push 4
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov dword [esp + 0x38], eax
push 0x1e
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov dword [esp + 0x3c], eax
push 0x1f
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov dword [esp + 0x40], eax
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x44]
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x44], ecx
mov ecx, ebp
mov dword [esp + 0x48], ebp
mov edx, dword [esp + 0x20]
dec edx
sub edx, dword [esp + 0x10]
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x38]
lea edx, [ecx + ebp - 1]
mov dword [esp + 0x50], edx
push dword [0x49a850]
push ebx
call dword [sym.imp.GDI32.DLL_SelectObject]
push 0
push dword [esp + 0x54]
push dword [esp + 0x4c]
push ebx
call dword [sym.imp.GDI32.DLL_MoveToEx]
push dword [esp + 0x50]
push dword [esp + 0x50]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
push dword [esp + 0x48]
push dword [esp + 0x50]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
push dword [0x49a848]
push ebx
call dword [sym.imp.GDI32.DLL_SelectObject]
push dword [esp + 0x48]
push dword [esp + 0x48]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
push dword [esp + 0x50]
push dword [esp + 0x48]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.DLL_GetWindowLongA]
inc dword [esp + 0x44]
inc dword [esp + 0x48]
test eax, 0x80000
je 0x45c496
push 0x7ff2
push 0
call dword [sym.imp.USER32.DLL_LoadBitmapA]
mov dword [esp + 0x54], eax
push eax
push ebx
call dword [sym.imp.GDI32.DLL_CreateCompatibleDC]
mov edi, eax
push eax
call dword [sym.imp.GDI32.DLL_SelectObject]
push 0xcc0020
push 0
push 0
push edi
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x60]
push dword [esp + 0x60]
push ebx
call dword [sym.imp.GDI32.DLL_BitBlt]
push edi
call dword [sym.imp.GDI32.DLL_DeleteDC]
push dword [esp + 0x54]
call dword [sym.imp.GDI32.DLL_DeleteObject]
push dword [0x49a844]
push ebx
call dword [sym.imp.GDI32.DLL_SelectObject]
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x44], ecx
push 0
push dword [esp + 0x4c]
push dword [esp + 0x4c]
push ebx
call dword [sym.imp.GDI32.DLL_MoveToEx]
push dword [esp + 0x50]
push dword [esp + 0x48]
push ebx
call dword [sym.imp.GDI32.DLL_LineTo]
inc dword [esp + 0x44]
push 0x64
lea ecx, [esp + 0x5c]
push ecx
push esi
call dword [sym.imp.USER32.DLL_GetWindowTextA]
mov dword [esp + 0xc4], eax
push 0xd
call dword [sym.imp.GDI32.DLL_GetStockObject]
push eax
push ebx
call dword [sym.imp.GDI32.DLL_SelectObject]
lea ecx, [esp + 0xbc]
push ecx
push dword [esp + 0xc8]
lea ecx, [esp + 0x60]
push ecx
push ebx
call dword [sym.imp.GDI32.DLL_GetTextExtentPointA]
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x44]
sub eax, dword [esp + 0xbc]
cdq
sub eax, edx
sar eax, 1
add eax, dword [esp + 0x44]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x48]
sub eax, dword [esp + 0xc0]
cdq
sub eax, edx
sar eax, 1
add eax, dword [esp + 0x48]
mov dword [esp + 0xcc], eax
cmp word [esp + 0xdc], 0
je 0x45c541
push 2
call dword [sym.imp.USER32.DLL_GetSysColor]
push eax
push ebx
call dword [sym.imp.GDI32.DLL_SetBkColor]
push 9
call dword [sym.imp.USER32.DLL_GetSysColor]
push eax
push ebx
call dword [sym.imp.GDI32.DLL_SetTextColor]
jmp 0x45c561
push 3
call dword [sym.imp.USER32.DLL_GetSysColor]
push eax
push ebx
call dword [sym.imp.GDI32.DLL_SetBkColor]
push 0x13
call dword [sym.imp.USER32.DLL_GetSysColor]
push eax
push ebx
call dword [sym.imp.GDI32.DLL_SetTextColor]
push 0
push dword [esp + 0xc8]
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x50]
push ecx
push 2
push dword [esp + 0xe0]
push dword [esp + 0xe0]
push ebx
call dword [sym.imp.GDI32.DLL_ExtTextOutA]
push 8
call dword [sym.imp.GDI32.DLL_GetStockObject]
push eax
push ebx
call dword [sym.imp.GDI32.DLL_SelectObject]
push ebx
push esi
call dword [sym.imp.USER32.DLL_ReleaseDC]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc0
ret