Function at 0x409870
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x164
mov eax, dword [0x42f278]
xor eax, esp
mov dword [esp + 0x15c], eax
mov eax, dword [esp + 0x174]
push ebx
push ebp
mov ebp, dword [esp + 0x170]
push esi
mov esi, dword [esp + 0x178]
push edi
mov edi, dword [0x43778c]
push 0x100
mov ebx, edx
lea edx, [esp + 0x6c]
push 0
push edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
call fcn.00416890
push 0x40
lea eax, [esp + 0x38]
push 0
push eax
call fcn.00416890
add esp, 0x18
xor eax, eax
lea ecx, [esp + 0x28]
push ecx
push ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
call dword [sym.imp.USER32.dll_BeginPaint]
lea edx, [esp + 0x10]
push edx
push ebp
call dword [sym.imp.USER32.dll_GetClientRect]
mov ecx, dword [esp + 0x28]
push ebx
lea eax, [esp + 0x14]
push eax
push ecx
call dword [sym.imp.USER32.dll_FillRect]
mov edx, dword [esp + 0x180]
mov eax, dword [esp + 0x28]
push edx
push eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ecx, dword [esp + 0x28]
push 1
push ecx
call dword [sym.imp.GDI32.dll_SetBkMode]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
lea edx, [esp + 0x68]
push edx
push 0x100
push 0xd
push ebp
call ebx
test esi, esi
mov eax, esi
jne 0x40994c
push esi
push esi
push 0x31
push ebp
call ebx
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
push eax
mov eax, dword [esp + 0x2c]
push eax
call ebx
mov esi, eax
lea eax, [esp + 0x68]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x409963
sub eax, edx
sar eax, 1
neg edi
sbb edi, edi
push 0
and edi, 0xfff00000
add edi, 0x100025
push edi
lea ecx, [esp + 0x18]
push ecx
push eax
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x78]
push edx
push eax
call dword [sym.imp.USER32.dll_DrawTextExW]
test esi, esi
je 0x4099a7
mov ecx, dword [esp + 0x28]
push esi
push ecx
call ebx
mov eax, dword [esp + 0x20]
test eax, eax
mov esi, dword [sym.imp.GDI32.dll_MoveToEx]
mov edi, dword [sym.imp.GDI32.dll_LineTo]
je 0x409a72
mov edx, dword [esp + 0x28]
push eax
push edx
call ebx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
push 0
mov ebx, eax
mov eax, dword [esp + 0x18]
push eax
push ecx
push edx
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
push eax
push ecx
push edx
call edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
push 0
push eax
push ecx
push edx
call esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
push eax
push ecx
push edx
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
push 0
push eax
push ecx
push edx
call esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
push eax
push ecx
push edx
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
push 0
push eax
push ecx
push edx
call esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
add eax, 0xffffffff
push eax
push ecx
push edx
call edi
test ebx, ebx
je 0x409a6c
mov eax, dword [esp + 0x28]
push ebx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x409b58
mov ecx, dword [esp + 0x28]
push eax
push ecx
call ebx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov ebx, eax
mov eax, dword [esp + 0x10]
push 0
add edx, 3
push edx
add eax, 3
push eax
push ecx
call esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
add edx, 3
push edx
add eax, 0xfffffffc
push eax
push ecx
call edi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push 0
add edx, 3
push edx
add eax, 0xfffffffc
push eax
push ecx
call esi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
add edx, 0xfffffffc
push edx
add eax, 0xfffffffc
push eax
push ecx
call edi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push 0
add edx, 0xfffffffc
push edx
add eax, 0xfffffffc
push eax
push ecx
call esi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
add edx, 0xfffffffc
push edx
add eax, 3
push eax
push ecx
call edi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
push 0
add edx, 0xfffffffc
push edx
add eax, 3
push eax
push ecx
call esi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
add edx, 3
push edx
add eax, 3
push eax
push ecx
call edi
test ebx, ebx
je 0x409b58
mov edx, dword [esp + 0x28]
push ebx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [esp + 0x28]
push eax
push ebp
call dword [sym.imp.USER32.dll_EndPaint]
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004104f3
add esp, 0x164
ret