Function at 0x403890
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x358
push esi
push edi
mov dword [ebp - 0xec], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x314], 0
mov dword [ebp - 0x310], 0
mov dword [0x41f664], 0
mov dword [0x41f668], 0
mov eax, dword [0x41fb3c]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov ecx, dword [ebp + 8]
push ecx
call fcn.00403060
add esp, 4
push 0x41f670
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [ebp - 0x30c], eax
push 0x104
push 0x40e310
push 0
push 0x41f670
push 2
mov edx, dword [ebp - 0x30c]
push edx
call dword [sym.imp.KERNEL32.dll_GetDateFormatW]
push 0x104
push 0x40e518
push 0
push 0x41f670
push 0
mov eax, dword [ebp - 0x30c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeFormatW]
mov ecx, 0x17
mov esi, 0x41fae0
lea edi, [ebp - 0xe8]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x40ee3c]
imul eax, dword [0x41f66c]
neg eax
cdq
mov ecx, 0x2d0
idiv ecx
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], 0
push 8
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_SetMapMode]
push 0
mov eax, dword [0x41f658]
push eax
mov ecx, dword [0x41f648]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_SetViewportExtEx]
push 0
mov eax, dword [0x41ff58]
push eax
mov ecx, dword [0x41ff54]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
mov eax, dword [0x41ff6c]
mov dword [0x41f690], eax
mov ecx, dword [0x41ff70]
mov dword [0x41f694], ecx
mov edx, dword [0x41ff74]
mov dword [0x41f698], edx
mov eax, dword [0x41ff78]
mov dword [0x41f69c], eax
push 2
push 0x41f690
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.GDI32.dll_LPtoDP]
push 1
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_SetMapMode]
lea eax, [ebp - 0xe8]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x403a38
jmp 0x403cb2
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x403a5a
jmp 0x403cb2
push 1
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.GDI32.dll_SetBkMode]
lea ecx, [ebp - 0x78]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_GetTextMetricsW]
test eax, eax
jne 0x403a7d
jmp 0x403cb2
movzx eax, byte [ebp - 0x41]
and eax, 6
jne 0x403b0f
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0x40
push 0
lea ecx, [ebp - 0xcc]
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
lea edx, [ebp - 0xe8]
push edx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x403ad6
jmp 0x403cb2
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x403af8
jmp 0x403cb2
lea edx, [ebp - 0x78]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.GDI32.dll_GetTextMetricsW]
test eax, eax
jne 0x403b0f
jmp 0x403cb2
mov ecx, dword [ebp - 0x78]
add ecx, dword [ebp - 0x68]
mov dword [0x41f654], ecx
mov edx, dword [ebp - 0x64]
shl edx, 3
mov dword [0x41f64c], edx
mov eax, dword [0x41f690]
sub eax, dword [0x41f644]
test eax, eax
jle 0x403b4a
mov ecx, dword [0x41f690]
sub ecx, dword [0x41f644]
mov dword [ebp - 0x34c], ecx
jmp 0x403b54
mov dword [ebp - 0x34c], 0
mov edx, dword [ebp - 0x34c]
mov dword [0x41f010], edx
mov eax, dword [0x41f648]
sub eax, dword [0x41f6a0]
sub eax, dword [0x41f644]
mov ecx, dword [0x41f698]
sub ecx, eax
test ecx, ecx
jle 0x403b9e
mov edx, dword [0x41f648]
sub edx, dword [0x41f6a0]
sub edx, dword [0x41f644]
mov eax, dword [0x41f698]
sub eax, edx
mov dword [ebp - 0x350], eax
jmp 0x403ba8
mov dword [ebp - 0x350], 0
mov ecx, dword [ebp - 0x350]
mov dword [0x41f640], ecx
mov edx, dword [0x41f694]
sub edx, dword [0x41f660]
test edx, edx
jle 0x403bd7
mov eax, dword [0x41f694]
sub eax, dword [0x41f660]
mov dword [ebp - 0x354], eax
jmp 0x403be1
mov dword [ebp - 0x354], 0
mov ecx, dword [ebp - 0x354]
mov dword [0x41f65c], ecx
mov edx, dword [0x41f658]
sub edx, dword [0x41f63c]
sub edx, dword [0x41f660]
mov eax, dword [0x41f69c]
sub eax, edx
test eax, eax
jle 0x403c2c
mov ecx, dword [0x41f658]
sub ecx, dword [0x41f63c]
sub ecx, dword [0x41f660]
mov edx, dword [0x41f69c]
sub edx, ecx
mov dword [ebp - 0x358], edx
jmp 0x403c36
mov dword [ebp - 0x358], 0
mov eax, dword [ebp - 0x358]
mov dword [0x41f650], eax
mov eax, dword [0x41f63c]
sub eax, dword [0x41f65c]
sub eax, dword [0x41f650]
cdq
idiv dword [0x41f654]
mov dword [ebp - 0x38], eax
movzx ecx, word [0x41f6c0]
test ecx, ecx
je 0x403c70
mov edx, dword [ebp - 0x38]
sub edx, 1
mov dword [ebp - 0x38], edx
movzx eax, word [0x41f710]
test eax, eax
je 0x403c84
mov ecx, dword [ebp - 0x38]
sub ecx, 1
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0
jg 0x403d88
push 0x30
mov edx, dword [0x40ee7c]
push edx
mov eax, dword [0x40eec4]
push eax
mov ecx, dword [0x41efb4]
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x310], eax
cmp dword [ebp - 0x84], 0
je 0x403ce2
mov edx, dword [ebp - 0x84]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [ebp - 0x314], 0
je 0x403cf8
mov edx, dword [ebp - 0xec]
push edx
call dword [sym.imp.KERNEL32.dll_LocalUnlock]
cmp dword [ebp - 0xfc], 0
je 0x403d24
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.GDI32.dll_EndPage]
test eax, eax
jg 0x403d24
cmp dword [ebp - 0x310], 0
jne 0x403d24
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x310], eax
cmp dword [ebp - 0x7c], 0
je 0x403d4d
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.GDI32.dll_EndDoc]
test eax, eax
jg 0x403d4d
cmp dword [ebp - 0x310], 0
jne 0x403d4d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x310], eax
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_DeleteDC]
call fcn.00402f20
mov eax, dword [0x41fa00]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
cmp dword [0x41f664], 0
jne 0x403d7e
mov eax, dword [ebp - 0x310]
jmp 0x4040c9
mov eax, 0xfffffffd
jmp 0x4040c9
push 0x4030e0
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.GDI32.dll_SetAbortProc]
mov dword [ebp - 0x310], eax
cmp dword [ebp - 0x310], 0
jge 0x403dab
jmp 0x403cbe
push 0
push 0
push 0xbd
mov edx, dword [0x41efb8]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0
jne 0x403dd5
jmp 0x403cb2
mov eax, dword [ebp - 0xec]
push eax
call dword [sym.imp.KERNEL32.dll_LocalLock]
mov dword [ebp - 0x314], eax
cmp dword [ebp - 0x314], 0
jne 0x403df6
jmp 0x403cb2
push 0x104
lea ecx, [ebp - 0x308]
push ecx
mov edx, dword [0x41efb4]
push edx
call dword [sym.imp.USER32.dll_GetWindowTextW]
push 0
mov eax, dword [0x41efb4]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 0
push 0x4037d0
mov ecx, dword [0x41efb4]
push ecx
push 0xb
mov edx, dword [0x41ff94]
push edx
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov dword [0x41f668], eax
cmp dword [0x41f668], 0
jne 0x403e4d
jmp 0x403cb2
mov dword [ebp - 0x28], 0x14
lea eax, [ebp - 0x308]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [ebp - 0x28]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_StartDocW]
test eax, eax
jg 0x403e9d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x310], eax
jmp 0x403cbe
mov dword [ebp - 0x7c], 1
mov dword [ebp - 0x31c], 0
mov dword [0x41f680], 1
mov dword [ebp - 0xfc], 0
push 0x10
push 0
lea eax, [ebp - 0x32c]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [0x41f010]
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x41f6a0]
sub edx, dword [0x41f640]
mov dword [ebp - 0x324], edx
mov eax, dword [0x41f65c]
mov dword [ebp - 0x328], eax
mov ecx, dword [0x41f63c]
sub ecx, dword [0x41f650]
mov dword [ebp - 0x320], ecx
movzx edx, word [0x41f6c0]
test edx, edx
je 0x403f2d
mov eax, dword [ebp - 0x328]
add eax, dword [0x41f654]
mov dword [ebp - 0x328], eax
movzx ecx, word [0x41f710]
test ecx, ecx
je 0x403f4a
mov edx, dword [ebp - 0x320]
sub edx, dword [0x41f654]
mov dword [ebp - 0x320], edx
mov eax, dword [ebp - 0x314]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x330], eax
push 0xffffffffffffffec
mov ecx, dword [0x41efb8]
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x2000
je 0x403f7d
mov dword [ebp - 0x31c], 0x20002
cmp dword [0x41f664], 0
jne 0x4040ba
cmp dword [ebp - 0x330], 0
jle 0x4040ba
push 0
mov edx, dword [ebp + 8]
push edx
call fcn.00403660
add esp, 8
push 0x14
push 0
lea eax, [ebp - 0x348]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x348], 0x14
mov ecx, dword [0x41f64c]
mov dword [ebp - 0x344], ecx
mov edx, dword [ebp - 0x31c]
or edx, 0x2850
mov dword [ebp - 0x334], edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.GDI32.dll_StartPage]
test eax, eax
jg 0x403fff
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x310], eax
jmp 0x403cbe
mov dword [ebp - 0xfc], 1
lea ecx, [ebp - 0x348]
push ecx
mov edx, dword [ebp - 0x334]
push edx
lea eax, [ebp - 0x32c]
push eax
mov ecx, dword [ebp - 0x330]
push ecx
mov edx, dword [ebp - 0x314]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_DrawTextExW]
mov dword [ebp - 0x318], eax
push 1
mov ecx, dword [ebp + 8]
push ecx
call fcn.00403660
add esp, 8
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.GDI32.dll_EndPage]
test eax, eax
jg 0x404069
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x310], eax
jmp 0x403cbe
mov dword [ebp - 0xfc], 0
mov eax, dword [0x41f680]
add eax, 1
mov dword [0x41f680], eax
cmp dword [ebp - 0x338], 0
jne 0x40408e
jmp 0x403c8e
mov ecx, dword [ebp - 0x338]
mov edx, dword [ebp - 0x314]
lea eax, [edx + ecx*2]
mov dword [ebp - 0x314], eax
mov ecx, dword [ebp - 0x330]
sub ecx, dword [ebp - 0x338]
mov dword [ebp - 0x330], ecx
jmp 0x403f7d
mov dword [ebp - 0x310], 0
jmp 0x403cbe
pop edi
pop esi
mov esp, ebp
pop ebp
ret