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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x412020]
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 0x409e3a
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 0x409e5b
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 0x409ea7
push esi
call fcn.0040a208
jmp 0x40a017
xor eax, eax
cmp dword [ebx + 0xa0], ecx
je 0x409f4a
cmp dword [ebx + 0x98], ecx
jne 0x409ec5
cmp dword [ebx + 0xa4], ecx
je 0x409ec8
xor eax, eax
inc eax
cmp dword [ebx + 0x9c], ecx
je 0x409ed3
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.00403614
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 0x409f27
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 0x40a017
push dword [ebx + 0x94]
jmp 0x409fc0
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.00403614
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 0x409fa0
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 0x40a017
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 0x409fe5
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 0x40a059
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 0x40a074
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.0040bfb6
leave
ret