Function at 0x465160
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0xc40
push edi
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [0x4f2658]
lea ecx, [esp + 0x40]
push ecx
mov dword [esp + 0x44], 0x42
mov word [esp + 0x64], 1
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], 0x10c
call dword [sym.imp.comdlg32.dll_PrintDlgA]
test eax, eax
je 0x4656b9
push ebx
push ebp
push esi
xor ebx, ebx
push 0x7f02
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov edx, dword [0x4f2658]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebx
call fcn.00445c60
mov eax, dword [esp + 0x60]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
add esp, 4
push 8
push eax
call esi
mov ecx, dword [esp + 0x5c]
push 0xa
push ecx
mov dword [esp + 0x28], eax
call esi
mov edx, dword [esp + 0x5c]
push 0x58
push edx
mov dword [esp + 0x24], eax
call esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
push 0x5a
push eax
call esi
mov ecx, dword [esp + 0x5c]
mov edi, eax
push 0x70
push ecx
mov dword [esp + 0x38], edi
call esi
mov edx, dword [esp + 0x5c]
push 0x71
push edx
mov dword [esp + 0x34], eax
call esi
mov dword [esp + 0x28], eax
push str.Courier_New
mov eax, edi
push 1
push ebx
push ebx
cdq
push 7
push 1
and edx, 7
push ebx
push ebx
add eax, edx
push ebx
push 0x2bc
sar eax, 3
push ebx
push ebx
neg eax
push ebx
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
mov esi, eax
cmp esi, ebx
mov dword [esp + 0x34], esi
je 0x465275
mov eax, dword [esp + 0x5c]
push esi
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x18], eax
jmp 0x465279
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x98]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov eax, dword [0x4b5314]
mov ebp, dword [esp + 0x98]
mov cx, word [eax]
cmp cx, 0xffff
je 0x4652d8
cmp cx, bx
je 0x4652d8
add eax, 6
push ebx
push eax
call fcn.0047e290
inc eax
push ebx
push eax
call fcn.0047e290
inc eax
push ebx
push eax
call fcn.0047e290
inc eax
push ebx
push eax
call fcn.0047e290
mov cx, word [eax + 1]
add esp, 0x20
inc eax
cmp cx, 0xffff
jne 0x4652a2
mov edx, dword [0x4f2658]
xor eax, eax
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x550]
mov dword [esp + 0x3c], eax
push pe_nt_image_headers32
mov dword [esp + 0x44], eax
push ecx
mov dword [esp + 0x4c], eax
push edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], 0x14
mov dword [esp + 0x48], 0x4d44b8
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov edx, dword [esp + 0x5c]
lea ecx, [esp + 0x38]
lea eax, [esp + 0x550]
push ecx
push edx
mov dword [esp + 0x4c], eax
call dword [sym.imp.GDI32.dll_StartDocA]
test eax, eax
jle 0x465697
mov ecx, dword [0x4b5314]
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], ecx
mov ax, word [ecx]
cmp ax, 0xffff
je 0x465671
jmp 0x465368
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
test ax, ax
je 0x465662
test ebx, ebx
jne 0x46548e
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.GDI32.dll_StartPage]
mov ecx, dword [esp + 0x5c]
push esi
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, edi
mov ecx, dword [esp + 0x28]
cdq
sub eax, edx
lea edi, [esp + 0x550]
mov ebx, eax
xor eax, eax
sar ebx, 1
sub ebx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x650]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x650]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.___Page__d
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x14]
mov ecx, edx
and ecx, 3
and eax, 0xffff
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x650]
push eax
lea edx, [esp + 0xd4]
push ecx
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x90]
lea edi, [esp + 0xd0]
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0x60]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0xd8]
push ecx
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
lea edi, [esp + 0xd0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0xd0]
push ecx
push eax
push ebx
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x9c]
sub eax, edi
mov ecx, dword [esp + 0x68]
cdq
sub eax, edx
sar eax, 1
push eax
push ecx
call dword [sym.imp.GDI32.dll_TextOutA]
mov ecx, dword [esp + 0x10]
lea edx, [ebx + ebp]
lea ebx, [edx + ebp*2]
mov si, word [ecx]
lea eax, [esp + 0x850]
lea edx, [esp + 0x4d0]
push eax
push edx
push ecx
call fcn.00464fc0
add esp, 0xc
cmp si, 0x76c
jbe 0x4654ce
mov eax, dword [str.Error]
mov cx, word [0x4ad9cc]
mov dword [esp + 0xd0], eax
mov word [esp + 0xd4], cx
jmp 0x46550a
cmp si, 0x708
jbe 0x4654f0
mov edx, dword [str.Warning]
mov eax, dword [0x4ad9c4]
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], eax
jmp 0x46550a
mov ecx, dword [str.Info]
mov dl, byte [0x4ad9bc]
mov dword [esp + 0xd0], ecx
mov byte [esp + 0xd4], dl
or ecx, 0xffffffff
mov edi, 0x49f184
xor eax, eax
lea edx, [esp + 0xd0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xd0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
lea edi, [esp + 0x4d0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xd0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x49f184
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0xd0]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x850]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xd0]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0xd0]
push ecx
push eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
cdq
sub eax, edx
push ebx
sar eax, 1
sub eax, ecx
mov ecx, dword [esp + 0x68]
push eax
push ecx
call dword [sym.imp.GDI32.dll_TextOutA]
mov edx, dword [esp + 0x10]
push 0
add edx, 6
add ebx, ebp
push edx
call fcn.0047e290
inc eax
push 0
push eax
call fcn.0047e290
inc eax
push 0
push eax
call fcn.0047e290
inc eax
push 0
push eax
call fcn.0047e290
mov ecx, dword [esp + 0x3c]
add esp, 0x20
inc eax
mov esi, eax
lea eax, [ebp + ebp]
sub ecx, eax
mov dword [esp + 0x10], esi
cmp ebx, ecx
jle 0x465655
mov edx, dword [esp + 0x5c]
xor ebx, ebx
push edx
call dword [sym.imp.GDI32.dll_EndPage]
inc dword [esp + 0x14]
mov ax, word [esi]
cmp ax, 0xffff
jne 0x46535c
test ebx, ebx
jle 0x465671
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.GDI32.dll_EndPage]
mov ecx, dword [esp + 0x5c]
push ecx
call dword [sym.imp.GDI32.dll_EndDoc]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x465697
mov edx, dword [esp + 0x5c]
push eax
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
pop esi
pop ebp
pop ebx
pop edi
add esp, 0xc40
ret