Function at 0x409870
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x425590
mov eax, dword fs:[0]
push eax
mov eax, 0x1138
call fcn.00412860
mov eax, dword [0x444624]
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 esi, dword [ebp + 8]
lea eax, [ebp - 0x10c8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
push eax
push esi
mov dword [ebp - 0x10e0], esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0x10c8]
mov ecx, dword [ebp - 0x10c0]
cmp eax, ecx
jle 0x4098db
mov dword [ebp - 0x10c8], ecx
mov dword [ebp - 0x10c0], eax
mov eax, dword [ebp - 0x10c4]
mov ecx, dword [ebp - 0x10bc]
cmp eax, ecx
jle 0x4098f7
mov dword [ebp - 0x10c4], ecx
mov dword [ebp - 0x10bc], eax
lea eax, [ebp - 0x10b8]
mov dword [ebp - method.std::_Func_impl_no_alloc_class__lambda_9aa7ff767761c1ccf1315a8579845e70___void__struct_HDC____.virtual_0], vtable.std::_Func_impl_no_alloc_class__lambda_9aa7ff767761c1ccf1315a8579845e70___void__struct_HDC____.0
mov dword [ebp - 0x1070], eax
lea eax, [ebp - 0x1078]
mov dword [ebp - 0x1054], eax
lea eax, [ebp - 0x10b8]
push eax
push esi
mov dword [ebp - 0x1074], esi
call dword [sym.imp.USER32.dll_BeginPaint]
mov ecx, dword [ebp - 0x1054]
mov esi, eax
mov dword [ebp - 0x102c], 0
test ecx, ecx
je 0x409984
lea eax, [ebp - 0x1078]
cmp ecx, eax
jne 0x40997e
mov eax, dword [ecx]
lea edx, [ebp - 0x1050]
push edx
call dword [eax + 4]
mov ecx, dword [ebp - 0x1054]
mov dword [ebp - 0x102c], eax
test ecx, ecx
je 0x409984
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x1078]
cmp ecx, eax
setne al
push eax
call edx
jmp 0x409984
mov dword [ebp - 0x102c], ecx
mov dword [ebp - 0x1028], esi
test esi, esi
jne 0x40999b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x409f96
push 0
push dword [ebx + 8]
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [ebp - 0x10c0]
sub eax, dword [ebp - 0x10c8]
mov ecx, dword [ebp - 0x10bc]
sub ecx, dword [ebp - 0x10c4]
push 0
push 0
push 0
mov dword [ebp - 0x1018], eax
lea eax, [ebp - 0x1020]
push eax
push 2
push 0
push 0
push dword [ebx + 8]
mov dword [ebp - 0x1020], 0
mov dword [ebp - 0x101c], 0
mov dword [ebp - 0x1014], ecx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
lea eax, [ebp - 0x10d8]
mov dword [ebp - 0x1104], 0
push eax
push 0
push 0
mov dword [ebp - 0x1108], 0
mov dword [ebp - 0x110c], 0
mov dword [ebp - 0x1110], 0
mov dword [ebp - 0x10d8], 0
call sub.gdiplus.dll_GdipCreateStringFormat
mov dword [ebp - 0x10d4], eax
lea eax, [ebp - 0x1124]
push eax
push 0
push 0x426b4c
mov dword [ebp - 0x1124], 0
call sub.gdiplus.dll_GdipCreateFontFamilyFromName
fld dword [0x426c10]
mov dword [ebp - 0x1120], eax
lea eax, [ebp - 0x1114]
push eax
push 3
push 0
push ecx
fstp dword [esp]
push dword [ebp - 0x1124]
mov dword [ebp - 0x1114], 0
call sub.gdiplus.dll_GdipCreateFont
mov eax, dword [ebp - 0x1114]
mov dword [ebp - 0x10fc], eax
lea eax, [ebp - 0x10f0]
push eax
push dword [ebx + 8]
mov dword [ebp - 0x10f0], 0
call sub.gdiplus.dll_GdipCreateFromHDC
mov esi, dword [ebp - 0x10f0]
lea eax, [ebp - 0x1010]
push 0x1000
push 0
push eax
mov dword [ebp - 0x10dc], esi
call fcn.004140a0
add esp, 0xc
lea eax, [ebp - 0x1010]
push 0x800
push eax
push dword [ebp - 0x10e0]
call dword [sym.imp.USER32.dll_GetWindowTextW]
cmp eax, 0x800
jae 0x409dac
cmp word [ebp - 0x1010], 0
je 0x409dac
push 1
push dword [ebp - 0x10d8]
call sub.gdiplus.dll_GdipSetStringFormatAlign
mov ecx, dword [ebp - 0x10d4]
test eax, eax
push 1
push dword [ebp - 0x10d8]
cmovne ecx, eax
mov dword [ebp - 0x10d4], ecx
call sub.gdiplus.dll_GdipSetStringFormatLineAlign
mov ecx, dword [ebp - 0x10d4]
test eax, eax
mov dword [ebp - 0x10e8], 0
cmovne ecx, eax
lea eax, [ebp - 0x10e8]
push eax
push 0
mov dword [ebp - 0x10d4], ecx
call sub.gdiplus.dll_GdipCreatePath
mov esi, dword [ebp - 0x10fc]
mov dword [ebp - 0x10e4], eax
lea eax, [ebp - 0x10cc]
push eax
push esi
call sub.gdiplus.dll_GdipGetFontSize
lea eax, [ebp - 0x10d0]
push eax
push esi
call sub.gdiplus.dll_GdipGetFontStyle
push dword [ebp - 0x10d8]
fld dword [ebp - 0x10cc]
lea eax, [ebp - 0x1144]
push eax
push ecx
fstp dword [esp]
push dword [ebp - 0x10d0]
lea eax, [ebp - 0x1010]
mov dword [ebp - 0x1144], 0
push dword [ebp - 0x1124]
mov dword [ebp - 0x1140], 0
push 0xffffffffffffffff
push eax
push dword [ebp - 0x10e8]
mov dword [ebp - 0x113c], 0
mov dword [ebp - 0x1138], 0
call sub.gdiplus.dll_GdipAddPathStringI
mov ecx, dword [ebp - 0x10e4]
test eax, eax
push 0
cmovne ecx, eax
mov dword [ebp - 0x1014], 0
push 0
lea eax, [ebp - 0x1020]
mov dword [ebp - 0x10e4], ecx
push eax
push dword [ebp - 0x10e8]
mov dword [ebp - 0x1018], 0
mov dword [ebp - 0x101c], 0
mov dword [ebp - 0x1020], 0
call sub.gdiplus.dll_GdipGetPathWorldBoundsI
mov ecx, dword [ebp - 0x10e4]
test eax, eax
cmovne ecx, eax
mov eax, dword [ebp - 0x10c0]
sub eax, dword [ebp - 0x1018]
sub eax, dword [ebp - 0x10c8]
cdq
sub eax, edx
mov dword [ebp - 0x10e4], ecx
sar eax, 1
mov dword [ebp - 0x10cc], eax
fild dword [ebp - 0x10cc]
fstp dword [ebp - 0x10cc]
fld dword [ebp - 0x10cc]
mov eax, dword [ebp - 0x10bc]
sub eax, dword [ebp - 0x1014]
fsub qword [0x426bf0]
sub eax, dword [ebp - 0x10c4]
cdq
sub eax, edx
fstp dword [ebp - 0x1110]
sar eax, 1
mov dword [ebp - 0x10cc], eax
lea eax, [ebp - 0x111c]
fild dword [ebp - 0x10cc]
push eax
push 0
fstp dword [ebp - 0x10cc]
fld dword [ebp - 0x10cc]
fsub qword [0x426bf8]
fstp dword [ebp - 0x110c]
fild dword [ebp - 0x1018]
fstp dword [ebp - 0x10cc]
fld dword [ebp - 0x10cc]
fadd qword [0x426c00]
fstp dword [ebp - 0x1108]
fild dword [ebp - 0x1014]
fstp dword [ebp - 0x10cc]
fld dword [ebp - 0x10cc]
fadd qword [0x426c08]
mov dword [ebp - 0x111c], 0
fstp dword [ebp - 0x1104]
call sub.gdiplus.dll_GdipCreatePath
mov dword [ebp - 0x1118], eax
lea ecx, [ebp - 0x10e9]
cvttss2si eax, dword [ebp - 0x1104]
push 0xa
push 0xa
push eax
cvttss2si eax, dword [ebp - 0x1108]
push eax
cvttss2si eax, dword [ebp - 0x110c]
push eax
cvttss2si eax, dword [ebp - 0x1110]
push eax
lea eax, [ebp - 0x111c]
push eax
call fcn.004089f0
push 2
push dword [ebp - 0x10f0]
call sub.gdiplus.dll_GdipSetSmoothingMode
lea eax, [ebp - 0x10d0]
mov dword [ebp - 0x10d0], 0
push eax
push 0x80ffffff
call sub.gdiplus.dll_GdipCreateSolidFill
push dword [ebp - 0x111c]
mov esi, dword [ebp - 0x10d0]
push esi
push dword [ebp - 0x10dc]
call sub.gdiplus.dll_GdipFillPath
push esi
call sub.gdiplus.dll_GdipDeleteBrush
push dword [ebp - 0x111c]
call sub.gdiplus.dll_GdipDeletePath
push dword [ebp - 0x10e8]
call sub.gdiplus.dll_GdipDeletePath
mov esi, dword [ebp - 0x10dc]
test edi, edi
jne 0x409dbb
mov edi, dword [ebx + 4]
test edi, edi
je 0x409e89
lea eax, [ebp - 0x10f8]
mov dword [ebp - 0x10f8], 0
push eax
call sub.gdiplus.dll_GdipCreateImageAttributes
mov dword [ebp - 0x10f4], eax
mov eax, dword [ebx]
push eax
push eax
push 1
push 1
push dword [ebp - 0x10f8]
call sub.gdiplus.dll_GdipSetImageAttributesColorKeys
mov ecx, dword [ebp - 0x10f4]
test eax, eax
mov dword [ebp - 0x10d0], 0
cmovne ecx, eax
lea eax, [ebp - 0x10d0]
push eax
push dword [edi + 4]
mov dword [ebp - 0x10f4], ecx
call sub.gdiplus.dll_GdipGetImageHeight
test eax, eax
je 0x409e1b
mov dword [edi + 8], eax
lea eax, [ebp - 0x10cc]
mov dword [ebp - 0x10cc], 0
push eax
push dword [edi + 4]
call sub.gdiplus.dll_GdipGetImageWidth
test eax, eax
je 0x409e3b
mov dword [edi + 8], eax
mov ecx, dword [ebp - 0x10bc]
sub ecx, dword [ebp - 0x10c4]
mov eax, dword [ebp - 0x10c0]
sub eax, dword [ebp - 0x10c8]
push 0
push 0
push dword [ebp - 0x10f8]
push 2
push dword [ebp - 0x10d0]
push dword [ebp - 0x10cc]
push 0
push 0
push ecx
push eax
push 0
push 0
push dword [edi + 4]
push esi
call sub.gdiplus.dll_GdipDrawImageRectRectI
push dword [ebp - 0x10f8]
call sub.gdiplus.dll_GdipDisposeImageAttributes
cmp word [ebp - 0x1010], 0
je 0x409eed
push 3
push esi
call sub.gdiplus.dll_GdipSetTextRenderingHint
lea eax, [ebp - 0x10cc]
mov dword [ebp - 0x10cc], 0
push eax
push 0xff000000
call sub.gdiplus.dll_GdipCreateSolidFill
mov esi, dword [ebp - 0x10cc]
lea eax, [ebp - 0x1110]
mov edi, dword [ebp - 0x10fc]
push esi
push dword [ebp - 0x10d8]
push eax
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0x1010]
push eax
push dword [ebp - 0x10dc]
call sub.gdiplus.dll_GdipDrawString
push esi
call sub.gdiplus.dll_GdipDeleteBrush
jmp 0x409ef3
mov edi, dword [ebp - 0x10fc]
mov eax, dword [ebp - 0x10bc]
mov edx, dword [ebp - 0x10c4]
sub eax, edx
mov ecx, dword [ebp - 0x10c0]
mov esi, dword [ebp - 0x10c8]
sub ecx, esi
push 2
mov dword [ebp - 0x1128], eax
lea eax, [ebx + 0x14]
push eax
push 0
lea eax, [ebp - 0x1100]
mov dword [ebp - 0x1100], 0
push eax
push dword [ebx + 8]
lea eax, [ebp - 0x112c]
mov dword [ebp - 0x10fc], 0
push eax
lea eax, [ebp - 0x1134]
mov dword [ebp - 0x112c], ecx
push eax
push dword [ebp - 0x1028]
mov dword [ebp - 0x1134], esi
push dword [ebp - 0x10e0]
mov dword [ebp - 0x1130], edx
call dword [sym.imp.USER32.dll_UpdateLayeredWindow]
push dword [ebp - 0x10dc]
xor esi, esi
call sub.gdiplus.dll_GdipDeleteGraphics
push edi
call sub.gdiplus.dll_GdipDeleteFont
push dword [ebp - 0x1124]
call sub.gdiplus.dll_GdipDeleteFontFamily
push dword [ebp - 0x10d8]
call sub.gdiplus.dll_GdipDeleteStringFormat
mov eax, dword [ebp - 0x1028]
mov dword [ebp - 4], 0
test eax, eax
je 0x409fc3
mov ecx, dword [ebp - 0x102c]
mov dword [ebp - 0x10e0], eax
test ecx, ecx
je 0x409fff
mov eax, dword [ecx]
lea edx, [ebp - 0x10e0]
push edx
call dword [eax + 8]
mov ecx, dword [ebp - 0x102c]
test ecx, ecx
je 0x409fe1
mov edx, dword [ecx]
lea eax, [ebp - 0x1050]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov eax, esi
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 int.0041284a
mov esp, ebp
pop ebp
ret
call fcn.00412550
int3