Function at 0x403580
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
push esi
push edi
lea edi, [ebp - 0xe0]
mov ecx, 0x38
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x401324]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 8], ecx
mov esi, esp
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0xc]
add eax, 0x1c
mov esi, esp
push eax
lea ecx, [ebp - 0x20]
push ecx
call dword [sym.imp.USER32.dll_CopyRect]
cmp esi, esp
call fcn.0040a650
mov edx, dword [ebp + 0xc]
add edx, 0x1c
mov esi, esp
push edx
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
cmp esi, esp
call fcn.0040a650
mov esi, esp
push 0
push 0xfffffffffffffff0
lea ecx, [ebp - 0x38]
push ecx
call dword [sym.imp.USER32.dll_InflateRect]
cmp esi, esp
call fcn.0040a650
mov esi, esp
push 0
push 0x10
lea edx, [ebp - 0x38]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0x40], eax
mov esi, esp
mov eax, dword [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0x44], eax
mov esi, esp
push 0
push 0
push 0x31
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0x48], eax
mov esi, esp
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0x4c], eax
mov esi, esp
push 1
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.GDI32.dll_SetBkMode]
cmp esi, esp
call fcn.0040a650
mov byte [ebp - 0x4d], 0
mov byte [ebp - 0x4e], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 0
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0xc], 1
jne 0x40373c
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx + 0x10]
and edx, 0x10
mov byte [ebp - 0x4e], dl
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
and ecx, 4
je 0x4036ee
mov dword [ebp - 0xc4], 0xdeeef1
jmp 0x4036f8
mov dword [ebp - 0xc4], 0xdeebef
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
and ecx, 4
je 0x403718
mov dword [ebp - 0xc8], 0x92a0a3
jmp 0x403722
mov dword [ebp - 0xc8], 0x191a1c
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0x58], edx
mov byte [ebp - 0x4d], 0
mov eax, 1
test eax, eax
jne 0x4037df
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0xc], 2
jne 0x4037b7
mov byte [ebp - 0x4e], 1
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x10]
and eax, 1
je 0x40376d
mov dword [ebp - 0x54], 0xe1ecee
mov dword [ebp - 0x58], 0x773e00
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0xcc], ecx
jmp 0x403784
mov dword [ebp - 0x54], 0xdeebef
mov dword [ebp - 0x58], 0x191a1c
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0xcc], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
and ecx, 1
je 0x40379b
mov dword [ebp - 0xd0], 1
jmp 0x4037a5
mov dword [ebp - 0xd0], 0
mov dl, byte [ebp - 0xd0]
mov byte [ebp - 0x4d], dl
mov eax, 1
test eax, eax
jne 0x4037df
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0xc], 4
jne 0x4037df
mov edx, dword [ebp + 0xc]
movzx eax, byte [edx + 0x10]
and eax, 0x10
mov byte [ebp - 0x4e], al
mov dword [ebp - 0x54], 0xdeebef
mov dword [ebp - 0x58], 0x191a1c
mov byte [ebp - 0x4d], 0
mov esi, esp
push 0xffffffffffffffeb
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x14]
push eax
call dword [sym.imp.USER32.dll_GetWindowLongW]
cmp esi, esp
call fcn.0040a650
test eax, eax
je 0x40380a
movzx ecx, byte [ebp - 0x4d]
test ecx, ecx
jne 0x40380a
mov dword [ebp - 0x58], 0x1014a5
mov esi, esp
mov edx, dword [ebp - 0x54]
push edx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0x5c], eax
mov esi, esp
mov eax, dword [ebp - 0x5c]
push eax
lea ecx, [ebp - 0x20]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.USER32.dll_FillRect]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov eax, dword [ebp - 0x5c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp esi, esp
call fcn.0040a650
movzx ecx, byte [ebp - 0x4d]
push ecx
lea edx, [ebp - 0x20]
push edx
mov eax, dword [ebp - 0xc]
push eax
call fcn.00403de0
xor ecx, ecx
mov word [ebp - 0x80], cx
xor edx, edx
mov dword [ebp - 0x7e], edx
mov dword [ebp - 0x7a], edx
mov dword [ebp - 0x76], edx
mov dword [ebp - 0x72], edx
mov dword [ebp - 0x6e], edx
mov dword [ebp - 0x6a], edx
mov dword [ebp - 0x66], edx
mov word [ebp - 0x62], dx
mov esi, esp
push 0x10
lea eax, [ebp - 0x80]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x14]
push edx
call dword [sym.imp.USER32.dll_GetWindowTextW]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
cmp esi, esp
call fcn.0040a650
mov edx, dword [ebp - 0x38]
sub edx, dword [ebp - 0x20]
sub edx, 0x15
sar edx, 1
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
sub eax, 0x15
sar eax, 1
mov dword [ebp - 0x8c], eax
movzx ecx, byte [ebp - 0x4d]
test ecx, ecx
je 0x403917
mov esi, esp
push 1
push 1
lea edx, [ebp - 0x38]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
cmp esi, esp
call fcn.0040a650
test eax, eax
je 0x403917
mov eax, dword [ebp - 0x90]
add eax, 1
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x8c]
add edx, 1
mov dword [ebp - 0x8c], edx
mov esi, esp
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x14]
push ecx
call dword [sym.imp.USER32.dll_IsWindowEnabled]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
je 0x403948
mov dword [ebp - 0xd4], 0
jmp 0x403952
mov dword [ebp - 0xd4], 1
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov ecx, dword [ebp - 0xd4]
lea edx, [ecx + eax*2 - 2]
mov dword [ebp - 0xc0], edx
mov esi, esp
push 1
mov eax, dword [ebp - 0x8c]
push eax
mov ecx, dword [ebp - 0x90]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0xc0]
push eax
mov edi, esp
push 0x401690
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_GetPropW]
cmp edi, esp
call fcn.0040a650
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_Draw]
cmp esi, esp
call fcn.0040a650
mov esi, esp
push 0x24
lea edx, [ebp - 0x38]
push edx
push 0xffffffffffffffff
lea eax, [ebp - 0x80]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.USER32.dll_DrawTextW]
cmp esi, esp
call fcn.0040a650
movzx edx, byte [ebp - 0x4d]
test edx, edx
je 0x4039de
mov dword [ebp - 0xd8], 0x558255
jmp 0x4039e8
mov dword [ebp - 0xd8], 0xa37219
mov eax, dword [ebp - 0xd8]
push eax
call fcn.00403cf0
mov dword [ebp - 0x98], eax
mov esi, esp
mov ecx, dword [ebp - 0x98]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0x9c], eax
mov esi, esp
push 5
call dword [sym.imp.GDI32.dll_GetStockObject]
cmp esi, esp
call fcn.0040a650
mov esi, esp
push eax
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.0040a650
mov dword [ebp - 0xa0], eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x1c
mov esi, esp
push ecx
lea edx, [ebp - 0xb4]
push edx
call dword [sym.imp.USER32.dll_CopyRect]
cmp esi, esp
call fcn.0040a650
movzx eax, byte [ebp - 0x4d]
test eax, eax
je 0x403a76
mov dword [ebp - 0xdc], 3
jmp 0x403a80
mov dword [ebp - 0xdc], 2
movzx ecx, byte [ebp - 0x4d]
test ecx, ecx
je 0x403a94
mov dword [ebp - 0xe0], 3
jmp 0x403a9e
mov dword [ebp - 0xe0], 2
mov edx, dword [ebp - 0xa8]
sub edx, 3
mov esi, esp
push edx
mov eax, dword [ebp - 0xac]
sub eax, 3
push eax
mov ecx, dword [ebp - 0xb0]
add ecx, dword [ebp - 0xdc]
push ecx
mov edx, dword [ebp - 0xb4]
add edx, dword [ebp - 0xe0]
push edx
lea eax, [ebp - 0xb4]
push eax
call dword [sym.imp.USER32.dll_SetRect]
cmp esi, esp
call fcn.0040a650
movzx ecx, byte [ebp - 0x4e]
test ecx, ecx
je 0x403b19
mov esi, esp
mov edx, dword [ebp - 0xa8]
push edx
mov eax, dword [ebp - 0xac]
push eax
mov ecx, dword [ebp - 0xb0]
push ecx
mov edx, dword [ebp - 0xb4]
push edx
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.GDI32.dll_Rectangle]
cmp esi, esp
call fcn.0040a650
mov esi, esp
push 0xcc0020
push 0
push 0
mov ecx, dword [ebp - 0xc]
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x28]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x24]
push edx
push 0
push 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x18]
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov edx, dword [ebp - 0x9c]
push edx
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov ecx, dword [ebp - 0xa0]
push ecx
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov edx, dword [ebp - 0x44]
push edx
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov edx, dword [ebp - 0x40]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp esi, esp
call fcn.0040a650
mov esi, esp
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
cmp esi, esp
call fcn.0040a650
push edx
mov ecx, ebp
push eax
lea edx, [0x403c1c]
call fcn.0040a5f0
pop eax
pop edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a680
add esp, 0xe0
cmp ebp, esp
call fcn.0040a650
mov esp, ebp
pop ebp
ret 8