Function at 0x40fc70
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45e217
mov eax, dword fs:[0]
push eax
sub esp, 0x1b4
mov eax, dword [0x46e320]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 4]
lea ecx, [ebp - 0x130]
push ecx
xor ebx, ebx
push eax
mov dword [ebp - 0x13c], edi
mov dword [ebp - 0x138], ebx
mov dword [ebp - 0x134], eax
call dword [sym.imp.USER32.dll_BeginPaint]
mov dword [ebp - 0x138], eax
mov dword [ebp - 4], ebx
mov esi, eax
mov eax, dword [edi + 4]
lea edx, [ebp - 0x180]
push edx
push eax
mov dword [ebp - 0x184], esi
mov dword [ebp - 0x180], ebx
mov dword [ebp - 0x17c], ebx
mov dword [ebp - 0x178], ebx
mov dword [ebp - 0x174], ebx
call dword [sym.imp.USER32.dll_GetClientRect]
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov ebx, eax
mov dword [ebp - 0x1b4], ebx
mov eax, dword [ebp - 0x174]
sub eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x178]
sub ecx, dword [ebp - 0x180]
push eax
push ecx
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x154], eax
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebx
call esi
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x1bc], ebx
mov dword [ebp - 0x1b8], eax
push 1
push ebx
call dword [sym.imp.GDI32.dll_SetBkMode]
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x1a8], ebx
mov dword [ebp - 0x1a4], eax
push 0xb08566
push 1
push 0
mov byte [ebp - 4], 4
call dword [sym.imp.GDI32.dll_CreatePen]
push eax
push ebx
mov dword [ebp - 0x15c], eax
call esi
push 0xfcf7f2
mov dword [ebp - 0x144], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push eax
push ebx
mov dword [ebp - 0x140], eax
call esi
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0x178]
dec ecx
push ecx
mov ecx, dword [ebp - 0x180]
dec edx
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x17c]
push edx
push eax
push ecx
push ebx
call dword [sym.imp.GDI32.dll_Rectangle]
mov edx, dword [ebp - 0x188]
push edx
push ebx
call esi
mov eax, dword [ebp - 0x140]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [ebp - 0x144]
push ecx
push ebx
call esi
mov edx, dword [ebp - 0x15c]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, 1
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], eax
lea eax, [ebp - 0x150]
push eax
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x144], 0xddccaa
call dword [sym.imp.GDI32.dll_CreatePenIndirect]
push eax
push ebx
mov dword [ebp - 0x190], eax
call esi
mov dword [ebp - 0x188], eax
xor eax, eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x164], eax
mov eax, dword [edi + 4]
push 0x3ea
push eax
mov dword [ebp - 0x140], eax
call dword [sym.imp.USER32.dll_GetDlgItem]
test eax, eax
je 0x40febf
lea ecx, [ebp - 0x170]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [ebp - 0x140]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40febf
mov ecx, dword [ebp - 0x140]
lea eax, [ebp - 0x170]
push eax
push ecx
call dword [sym.imp.USER32.dll_ScreenToClient]
mov eax, dword [ebp - 0x140]
lea edx, [ebp - 0x168]
push edx
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [ebp - 0x164]
mov edx, dword [ebp - 0x180]
push 0
dec ecx
push ecx
push edx
push ebx
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 0x164]
mov ecx, dword [ebp - 0x178]
dec eax
push eax
push ecx
push ebx
call dword [sym.imp.GDI32.dll_LineTo]
mov eax, dword [ebp - 0x188]
test eax, eax
je 0x40fefb
push eax
push ebx
call esi
mov eax, dword [ebp - 0x190]
test eax, eax
je 0x40ff0e
push eax
call fcn.00430080
add esp, 4
lea eax, [edi + 0x4c8]
test eax, eax
je 0x40ff27
mov edx, dword [eax + 8]
cmp edx, dword [eax]
jle 0x40ff5e
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax + 4]
jle 0x40ff5e
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x14c], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x150], edx
mov edx, dword [eax + 0xc]
dec ecx
lea eax, [ebp - 0x150]
push eax
mov dword [ebp - 0x148], ecx
push ebx
lea ecx, [edi + 0x3b0]
mov dword [ebp - 0x144], edx
call fcn.0042f250
xor eax, eax
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], eax
mov dword [ebp - 0x164], eax
cmp dword [edi + 0x3dc], eax
je 0x4101a7
lea esi, [edi + 0x3c8]
lea edi, [ebp - 0x160]
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], eax
call fcn.0042f120
mov eax, dword [ebp - 0x160]
test eax, eax
jle 0x410017
mov ecx, dword [ebp - 0x15c]
test ecx, ecx
jle 0x410017
push ecx
push eax
push 0
push 0
lea ecx, [ebp - 0x170]
push ecx
call dword [sym.imp.USER32.dll_SetRect]
mov edi, dword [ebp - 0x13c]
mov eax, dword [edi + 0x4d4]
add eax, dword [edi + 0x4cc]
lea esi, [ebp - 0x170]
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.0042fa70
mov edx, dword [edi + 0x4c8]
sub edx, dword [ebp - 0x170]
push 0
add edx, 5
push edx
mov eax, esi
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, esi
push ecx
push ebx
lea ecx, [edi + 0x3c8]
call fcn.0042f190
jmp 0x41001d
mov edi, dword [ebp - 0x13c]
xor edx, edx
push 0x7e
push edx
lea eax, [ebp - 0x8e]
push eax
mov word [ebp - 0x90], dx
call fcn.004480d0
mov edx, dword [edi + 4]
add esp, 0xc
push 0x40
lea ecx, [ebp - 0x90]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowTextW]
cmp word [ebp - 0x90], 0
je 0x41019b
mov eax, dword [ebp - 0x168]
add eax, 5
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x13c]
mov ecx, dword [eax + 0x4cc]
mov edx, dword [eax + 0x4d0]
mov eax, dword [eax + 0x4d4]
mov dword [ebp - 0x1a4], eax
xor eax, eax
sub edx, 0x32
push 0x3a
push eax
mov dword [ebp - 0xec], eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], eax
mov byte [ebp - 0xdc], al
mov byte [ebp - 0xdb], al
mov byte [ebp - 0xda], al
mov byte [ebp - 0xd7], al
mov byte [ebp - 0xd6], al
mov byte [ebp - 0xd5], al
mov dword [ebp - 0x1ac], ecx
mov ecx, dword [0x462b58]
mov dword [ebp - 0x1a8], edx
mov dx, word [0x462b5c]
lea eax, [ebp - 0xce]
push eax
mov dword [ebp - 0xf0], 0xfffffff4
mov dword [ebp - 0xe0], 0x190
mov byte [ebp - 0xd9], 1
mov byte [ebp - 0xd8], 6
mov dword [ebp - 0xd4], ecx
mov word [ebp - 0xd0], dx
call fcn.004480d0
add esp, 0xc
lea ecx, [ebp - 0xf0]
push ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
mov esi, eax
push esi
push ebx
call edi
push 0xffffff
push ebx
mov dword [ebp - 0x188], eax
call dword [sym.imp.GDI32.dll_SetTextColor]
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0x90]
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x410155
push 0x24
sub eax, ecx
lea edx, [ebp - 0x1b0]
push edx
sar eax, 1
push eax
lea eax, [ebp - 0x90]
push eax
push ebx
call dword [sym.imp.USER32.dll_DrawTextW]
mov ecx, dword [ebp - 0x144]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [ebp - 0x188]
push edx
push ebx
call edi
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edi, dword [ebp - 0x13c]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [edi + 0x4e8]
test eax, eax
je 0x4101c8
mov ecx, dword [eax + 8]
cmp ecx, dword [eax]
jle 0x4102a5
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 4]
jle 0x4102a5
cmp dword [edi + 0x3f4], 0
je 0x4102a5
xor eax, eax
lea esi, [edi + 0x3e0]
lea edi, [ebp - 0x158]
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x15c], esi
call fcn.0042f120
mov eax, dword [ebp - 0x158]
test eax, eax
jle 0x410299
mov ecx, dword [ebp - 0x154]
test ecx, ecx
jle 0x410299
mov edi, dword [ebp - 0x13c]
cdq
and edx, 3
add eax, edx
mov dword [ebp - 0x144], ecx
movzx ecx, word [edi + 0x74]
xor esi, esi
sar eax, 2
mov edx, 0x2001
mov dword [ebp - 0x150], esi
mov dword [ebp - 0x14c], esi
mov dword [ebp - 0x148], eax
cmp cx, dx
jne 0x41025c
cmp word [edi + 0x90], dx
jne 0x41025c
push esi
add eax, eax
push eax
jmp 0x410272
mov edx, 0x2001
push esi
cmp cx, dx
jne 0x410271
push eax
lea eax, [ebp - 0x150]
push eax
jmp 0x410279
push esi
lea ecx, [ebp - 0x150]
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
mov edx, dword [ebp - 0x15c]
lea eax, [edi + 0x4e8]
push eax
push ebx
push edx
lea edi, [ebp - 0x150]
call fcn.0042f310
mov edi, dword [ebp - 0x13c]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [edi + 0x4d8]
mov dword [ebp - 0x15c], eax
test eax, eax
je 0x4102cc
mov ecx, dword [eax + 8]
cmp ecx, dword [eax]
jle 0x4103a8
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 4]
jle 0x4103a8
cmp dword [edi + 0x40c], 0
je 0x4103a8
xor eax, eax
lea esi, [edi + 0x3f8]
lea edi, [ebp - 0x158]
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x140], esi
call fcn.0042f120
mov ecx, dword [ebp - 0x158]
test ecx, ecx
jle 0x4103a2
mov edi, dword [ebp - 0x154]
test edi, edi
jle 0x4103a2
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x13c]
movzx ecx, word [edx + 0x74]
xor esi, esi
mov dword [ebp - 0x144], edi
mov edi, 0x2002
mov dword [ebp - 0x150], esi
mov dword [ebp - 0x14c], esi
mov dword [ebp - 0x148], eax
cmp cx, di
jne 0x410365
cmp word [edx + 0x90], di
jne 0x410365
push esi
add eax, eax
push eax
jmp 0x41037b
mov edx, 0x2002
push esi
cmp cx, dx
jne 0x41037a
push eax
lea eax, [ebp - 0x150]
push eax
jmp 0x410382
push esi
lea ecx, [ebp - 0x150]
push ecx
call dword [sym.imp.USER32.dll_OffsetRect]
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x140]
push edx
push ebx
push eax
lea edi, [ebp - 0x150]
call fcn.0042f310
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebp - 0x17c]
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0x178]
push 0xcc0020
push 0
push 0
push ebx
sub ecx, eax
push ecx
mov ecx, dword [ebp - 0x180]
sub edx, ecx
push edx
push eax
mov eax, dword [ebp - 0x184]
push ecx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [ebp - 0x198]
push ecx
push ebx
call dword [sym.imp.GDI32.dll_SetBkMode]
mov edx, dword [ebp - 0x1a0]
push edx
push ebx
call esi
mov eax, dword [ebp - 0x19c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [ebp - 0x134]
lea ecx, [ebp - 0x130]
push ecx
push edx
call dword [sym.imp.USER32.dll_EndPaint]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00441af5
mov esp, ebp
pop ebp
ret