Function at 0x408edb
Capabilities:
Get graphical window text
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x410020]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, edx
push 1
push esi
mov ebx, ecx
mov dword [ebp - 0x118], esi
call dword [sym.imp.GDI32.dll_SetBkMode]
lea eax, [ebp - 0x134]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x128]
sub eax, dword [ebp - 0x130]
mov edi, dword [ebp - 0x12c]
sub edi, dword [ebp - 0x134]
push esi
mov dword [ebp - 0x110], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
test esi, esi
jne 0x408f4a
push str.Create_MemDc_ERROR
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [ebp - 0x118]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
test eax, eax
mov dword [ebp - 0x10c], eax
jne 0x408f6b
push str.Create_MemDc_ERROR
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call dword [sym.imp.GDI32.dll_SaveDC]
push 1
push esi
mov dword [ebp - 0x124], eax
call dword [sym.imp.GDI32.dll_SetBkMode]
push dword [ebp - 0x110]
push edi
push dword [ebp - 0x118]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push esi
mov dword [ebp - 0x120], eax
call dword [sym.imp.GDI32.dll_SelectObject]
xor ecx, ecx
cmp dword [ebx + 0xa8], ecx
jne 0x408fb7
push esi
call fcn.00409318
jmp 0x409127
xor eax, eax
cmp dword [ebx + 0xa0], ecx
je 0x40905a
cmp dword [ebx + 0x98], ecx
jne 0x408fd5
cmp dword [ebx + 0xa4], ecx
je 0x408fd8
xor eax, eax
inc eax
cmp dword [ebx + 0x9c], ecx
je 0x408fe3
push 2
pop eax
push dword [ebp - 0x110]
imul eax, edi
push edi
push eax
push dword [ebp - 0x110]
lea eax, [ebx + 0x4c]
push edi
push esi
call fcn.00403430
push dword [ebp - 0x10c]
call dword [sym.imp.GDI32.dll_DeleteDC]
push 0x100
lea eax, [ebp - 0x108]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
je 0x409037
lea eax, [ebp - 0x108]
push eax
lea eax, [ebx + 0xb4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebx + 0xb4]
push eax
mov dword [ebp - 0x11c], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x409127
push dword [ebx + 0x94]
jmp 0x4090d0
push dword [ebp - 0x110]
mov eax, edi
imul eax, eax, 3
push edi
push eax
push dword [ebp - 0x110]
lea eax, [ebx + 0x4c]
push edi
push esi
call fcn.00403430
push dword [ebp - 0x10c]
call dword [sym.imp.GDI32.dll_DeleteDC]
push 0x100
lea eax, [ebp - 0x108]
push eax
push dword [ebx + 8]
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
je 0x4090b0
lea eax, [ebp - 0x108]
push eax
lea eax, [ebx + 0xb4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebx + 0xb4]
push eax
mov dword [ebp - 0x11c], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x409127
push 0x11
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ebx, dword [ebx + 0x2b4]
test ebx, ebx
mov dword [ebp - 0x114], eax
je 0x4090f5
push ebx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x10c], eax
push 0x25
lea eax, [ebp - 0x134]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x11c]
push esi
call dword [sym.imp.USER32.dll_DrawTextA]
push dword [ebp - 0x114]
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [ebp - 0x10c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xcc0020
xor eax, eax
push eax
push eax
push esi
push dword [ebp - 0x110]
push edi
push eax
push eax
push dword [ebp - 0x118]
call dword [sym.imp.GDI32.dll_BitBlt]
push dword [ebp - 0x124]
push esi
call dword [sym.imp.GDI32.dll_RestoreDC]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
test eax, eax
jne 0x409169
push str.DeleteDC_hdcMem__ERROR
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push dword [ebp - 0x120]
call dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
jne 0x409184
push str.DeleteObject_bmp__ERROR
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 4]
pop edi
xor eax, eax
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.0040aa90
leave
ret