Function at 0x10011450
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x104
push ebx
push esi
push edi
push ebp
mov edi, dword [esp + 0x11c]
cmp edi, 0xf
ja 0x10011499
je 0x100114e5
cmp edi, 1
je 0x100114cf
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x118]
push eax
push ecx
push edi
push edx
call dword [sym.imp.USER32.dll_DefWindowProcA]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x104
ret 0x10
cmp edi, 0x201
ja 0x100114b5
je 0x10011ab2
cmp edi, 0x87
je 0x10011aa8
jmp 0x1001146d
cmp edi, 0x805a
je 0x10011d66
cmp edi, 0x805b
je 0x10011d7b
jmp 0x1001146d
mov eax, dword [esp + 0x118]
push 1
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
xor eax, eax
jmp 0x1001148c
lea eax, [esp + 0xd4]
mov ecx, dword [esp + 0x118]
push eax
push ecx
call dword [sym.imp.USER32.dll_BeginPaint]
mov esi, eax
test esi, esi
je 0x10011a8b
mov eax, dword [esp + 0x118]
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
movzx ecx, ax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x30], ecx
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x24], eax
test eax, eax
je 0x10011a8b
mov dword [esp + 0x28], 0
push 0
push 0
push 0x31
push 0x3e9
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
test eax, eax
je 0x10011560
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x118]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [esp + 0x60]
push ecx
push esi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
push 0x14
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
mov edi, dword [sym.imp.GDI32.dll_CreatePen]
push 1
push 0
call edi
mov dword [esp + 0x4c], eax
push 0x12
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push 1
push 0
call edi
mov dword [esp + 0x48], eax
push 0x10
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push 1
push 0
call edi
mov dword [esp + 0x44], eax
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push 1
push 0
call edi
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x14]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x48]
mov ebx, edx
push eax
mov dword [esp + 0x18], edx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebp, eax
test ebp, ebp
je 0x100116cf
mov eax, dword [esp + 0x14]
push 0
push eax
mov eax, dword [esp + 0x20]
dec eax
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [esp + 0x1c]
mov edi, dword [sym.imp.GDI32.dll_LineTo]
dec eax
push eax
mov eax, dword [esp + 0x1c]
dec eax
push eax
push esi
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
dec eax
push eax
push ecx
push esi
call edi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
push esi
call edi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
dec eax
push eax
push esi
call edi
mov ecx, dword [esp + 0x44]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x14]
push 0
inc eax
push eax
mov eax, dword [esp + 0x20]
sub eax, 2
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [esp + 0x1c]
dec eax
push eax
mov eax, dword [esp + 0x1c]
sub eax, 2
push eax
push esi
call edi
mov eax, dword [esp + 0x1c]
dec eax
push eax
mov eax, dword [esp + 0x14]
inc eax
push eax
push esi
call edi
mov ecx, dword [esp + 0x4c]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x14]
inc eax
push eax
mov eax, dword [esp + 0x14]
inc eax
push eax
push esi
call edi
mov eax, dword [esp + 0x14]
inc eax
push eax
mov eax, dword [esp + 0x1c]
sub eax, 2
push eax
push esi
call edi
push ebp
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
jmp 0x100116d5
mov edi, dword [sym.imp.GDI32.dll_LineTo]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
dec ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x50], 0
mov dword [esp + 0x3c], 0x3e9
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, eax
test ebx, ebx
je 0x10011a4c
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x30]
mov dword [esp + 0x54], eax
cmp eax, 0x3e8
je 0x1001173a
mov eax, dword [esp + 0x34]
add eax, 3
mov dword [esp + 0x14], eax
lea eax, [esp + 0x98]
push 0x3b
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ebp, eax
test ebp, ebp
je 0x10011a43
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
push 0x12
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x98]
push eax
push ebp
push ecx
push esi
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
add eax, dword [esp + 0x58]
add eax, 0x13
mov dword [esp + 0x18], eax
cmp eax, ecx
jle 0x100117a8
lea eax, [ecx - 0xb]
mov dword [esp + 0x18], eax
sub dword [esp + 0x18], 2
add dword [esp + 0x10], 2
sub dword [esp + 0x18], 2
push ebx
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x100117de
lea eax, [esp + 0x10]
push 0x25
lea ecx, [esp + 0x9c]
push eax
push ebp
push ecx
push esi
call dword [sym.imp.USER32.dll_DrawTextA]
jmp 0x1001185f
push 0x14
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
mov ebx, eax
push 1
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
mov dword [esp + 0x20], eax
push 0x25
lea eax, [esp + 0x14]
lea ecx, [esp + 0x9c]
inc dword [esp + 0x14]
push eax
inc dword [esp + 0x1c]
push ebp
push ecx
push esi
call dword [sym.imp.USER32.dll_DrawTextA]
dec dword [esp + 0x10]
push 0x10
dec dword [esp + 0x18]
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
lea ecx, [esp + 0x10]
push 0x25
lea edx, [esp + 0x9c]
push ecx
push ebp
push edx
push esi
call dword [sym.imp.USER32.dll_DrawTextA]
mov ecx, dword [esp + 0x20]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
push ebx
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
sub dword [esp + 0x10], 2
add dword [esp + 0x18], 2
mov eax, dword [esp + 0x40]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x20], eax
test eax, eax
je 0x100119ab
mov ebx, dword [esp + 0x34]
mov ebp, 7
mov eax, dword [esp + 0x10]
push 0
add eax, dword [esp + 0x54]
push ebx
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [esp + 0x18]
push ebx
inc eax
inc ebx
push eax
push esi
call edi
dec ebp
jne 0x1001188a
mov dword [esp + 0x50], 1
mov eax, dword [esp + 0x48]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x1c]
push 0
mov ecx, dword [esp + 0x14]
push eax
push ecx
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
add eax, 3
push eax
push ecx
push esi
call edi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push ecx
add eax, 3
push eax
push esi
call edi
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
sub eax, 3
push eax
push esi
call edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, 3
push eax
push ecx
push esi
call edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
inc eax
push eax
push ecx
push esi
call edi
mov ecx, dword [esp + 0x4c]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x1c]
push 0
mov eax, dword [esp + 0x14]
push ecx
inc eax
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [esp + 0x14]
add eax, 3
push eax
mov eax, dword [esp + 0x14]
inc eax
push eax
push esi
call edi
mov eax, dword [esp + 0x14]
inc eax
push eax
mov eax, dword [esp + 0x14]
add eax, 3
push eax
push esi
call edi
mov eax, dword [esp + 0x14]
inc eax
push eax
mov eax, dword [esp + 0x1c]
sub eax, 3
push eax
push esi
call edi
mov ecx, dword [esp + 0x44]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x14]
add eax, 3
push eax
mov eax, dword [esp + 0x1c]
dec eax
push eax
push esi
call edi
mov eax, dword [esp + 0x1c]
inc eax
push eax
mov eax, dword [esp + 0x1c]
dec eax
push eax
push esi
call edi
mov ecx, dword [esp + 0x20]
push ecx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0x54], 0x3e8
jne 0x10011a3b
mov eax, dword [esp + 0x40]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, eax
test ebx, ebx
je 0x10011a3b
push 0x14
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
mov eax, dword [esp + 0x20]
inc eax
push eax
mov eax, dword [esp + 0x18]
inc eax
push eax
push esi
call dword [sym.imp.GDI32.dll_SetPixel]
mov eax, dword [esp + 0x1c]
push 0
inc eax
push eax
mov eax, dword [esp + 0x18]
add eax, 2
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
inc eax
push eax
push ecx
push esi
call edi
mov eax, dword [esp + 0x1c]
push 0
add eax, 2
mov ecx, dword [esp + 0x1c]
push eax
push ecx
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [esp + 0x1c]
add eax, 2
push eax
mov eax, dword [esp + 0x14]
inc eax
push eax
push esi
call edi
push ebx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
inc dword [esp + 0x3c]
jmp 0x100116fa
mov eax, dword [esp + 0x40]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x44]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x48]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x4c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [esp + 0x28], 0
je 0x10011a8b
mov eax, dword [esp + 0x28]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [esp + 0xd4]
mov ecx, dword [esp + 0x118]
push eax
push ecx
call dword [sym.imp.USER32.dll_EndPaint]
xor eax, eax
jmp 0x1001148c
mov eax, 0x100
jmp 0x1001148c
mov eax, dword [esp + 0x118]
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov dword [esp + 0x24], eax
test eax, eax
je 0x1001146d
mov eax, dword [esp + 0x118]
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
movzx eax, ax
add eax, 0x3e8
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
push eax
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [esp + 0x20], eax
test eax, eax
je 0x1001146d
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x118]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
movsx ebp, word [esp + 0x124]
cmp dword [esp + 0x10], ebp
jg 0x1001146d
cmp dword [esp + 0x18], ebp
jle 0x1001146d
mov eax, dword [esp + 0x124]
shr eax, 0x10
movsx esi, ax
cmp dword [esp + 0x14], esi
jge 0x1001146d
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x118]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x1001146d
mov eax, dword [esp + 0x24]
push 0
push 0
push 0x31
push 0x3e9
push eax
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
test eax, eax
je 0x10011b92
push eax
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x60]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov ecx, dword [esp + 0x64]
lea eax, [ecx + ecx*2]
add eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
cmp eax, esi
jle 0x10011d35
mov esi, dword [esp + 0x18]
mov edi, 0x3e9
mov eax, dword [esp + 0x24]
push edi
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebx, eax
test ebx, ebx
je 0x10011d35
lea eax, [esp + 0x98]
push 0x3b
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
je 0x10011c3d
lea ecx, [esp + 0x58]
mov edx, dword [esp + 0x2c]
push ecx
push eax
lea eax, [esp + 0xa0]
push eax
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x58]
add eax, 0x13
mov dword [esp + 0x18], eax
cmp eax, esi
jle 0x10011c20
lea eax, [esi - 0xb]
mov dword [esp + 0x18], eax
sub dword [esp + 0x18], 2
cmp dword [esp + 0x10], ebp
jg 0x10011d35
cmp dword [esp + 0x18], ebp
jg 0x10011c40
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
inc edi
jmp 0x10011bc2
push ebx
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x10011d35
cmp dword [esp + 0x30], edi
je 0x10011d35
mov eax, dword [esp + 0x64]
push 0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
lea ebp, [eax + eax*2]
mov eax, dword [esp + 0x11c]
push ebp
push ecx
push eax
push edx
call fcn.100111d0
lea ecx, [esp + 0x24]
mov edx, dword [esp + 0x12c]
add esp, 0x14
push ecx
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [ebp + 1]
push 0xf
add dword [esp + 0x18], ecx
dec dword [esp + 0x1c]
add dword [esp + 0x14], 2
dec dword [esp + 0x20]
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov esi, eax
test esi, esi
je 0x10011cd1
lea eax, [esp + 0x10]
push esi
mov ecx, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.USER32.dll_FillRect]
push esi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x118]
push 1
mov ecx, dword [esp + 0x28]
push ebp
push ebx
push eax
push ecx
call fcn.100111d0
mov ecx, dword [esp + 0x12c]
add esp, 0x14
sub edi, 0x3e8
push ecx
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
mov esi, eax
push edi
mov eax, dword [esp + 0x11c]
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [esp + 0x24]
push edi
push esi
push 0x111
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [esp + 0x118]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [esp + 0x28], 0
je 0x10011d4c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x118]
push eax
push ecx
call dword [sym.imp.USER32.dll_ReleaseDC]
xor eax, eax
jmp 0x1001148c
mov eax, dword [esp + 0x118]
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
jmp 0x1001148c
mov eax, dword [esp + 0x118]
push 0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
movzx esi, ax
mov eax, dword [esp + 0x118]
push eax
call dword [sym.imp.USER32.dll_GetParent]
mov ebx, eax
test ebx, ebx
jne 0x10011da9
xor eax, eax
jmp 0x1001148c
xor ebp, ebp
test esi, esi
je 0x10011dbf
add esi, 0x3e8
push esi
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov ebp, eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x20], eax
and dword [esp + 0x20], 0xffff
mov eax, dword [esp + 0x20]
add eax, 0x3e8
push eax
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [esp + 0x30], eax
test eax, eax
jne 0x10011df2
xor eax, eax
jmp 0x1001148c
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x118]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
test esi, esi
jne 0x10011e15
xor eax, eax
jmp 0x1001148c
push 0
push 0
push 0x31
push 0x3e9
push ebx
call dword [sym.imp.USER32.dll_SendDlgItemMessageA]
test eax, eax
je 0x10011e37
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x60]
push eax
push esi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov ecx, dword [esp + 0x64]
test ebp, ebp
lea edi, [ecx + ecx*2]
je 0x10011e63
mov eax, dword [esp + 0x118]
push 0
push edi
push ebp
push eax
push ebx
call fcn.100111d0
add esp, 0x14
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x118]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
lea ecx, [edi + 1]
push 0xf
add dword [esp + 0x14], 2
sub dword [esp + 0x1c], 2
sub dword [esp + 0x20], 2
add dword [esp + 0x18], ecx
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
mov ebp, dword [sym.imp.GDI32.dll_CreateSolidBrush]
call ebp
mov ebp, eax
test ebp, ebp
je 0x10011eb7
lea eax, [esp + 0x10]
push ebp
push eax
push esi
call dword [sym.imp.USER32.dll_FillRect]
push ebp
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x30]
push 1
mov ecx, dword [esp + 0x11c]
push edi
push eax
push ecx
push ebx
call fcn.100111d0
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x12c]
add esp, 0x14
push ecx
push 0
push edx
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, dword [esp + 0x118]
push 0
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
cmp dword [esp + 0x28], 0
je 0x10011f0a
mov eax, dword [esp + 0x28]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x118]
push esi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0x20]
jmp 0x1001148c