Function at 0x4771f4
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x830
mov eax, dword [0x514d34]
xor eax, esp
mov dword [esp + 0x82c], eax
push ebx
mov bx, word [esp + 0x83c]
mov ecx, str.unspecified
push esi
mov esi, dword [esp + 0x83c]
mov eax, ecx
push edi
mov edi, dword [esp + 0x854]
test edi, edi
cmovne eax, edi
test esi, esi
push eax
movzx eax, bx
cmovne ecx, esi
push eax
push ecx
push str.Beginning_printer_session___device___str__flags__0x_word__4_prntype___str_
call fcn.00477865
add esp, 0x10
mov word [0x55338c], bx
xor eax, eax
mov word [0x5532ac], ax
mov word [0x5532c0], ax
push 0xa
pop eax
mov word [0x5532b0], ax
push 6
pop eax
mov word [0x5532b4], ax
xor eax, eax
test bl, 0x40
je 0x4773ff
mov word [0x5532a8], ax
push ebp
push 0x42
pop ebx
push ebx
push 0
mov ebp, 0x5532d8
push ebp
call fcn.00443240
mov eax, dword [0x50d234]
add esp, 0xc
mov cx, word [0x55338c]
mov dword [0x5532d8], ebx
mov dl, cl
test cl, 0x40
mov eax, dword [eax]
push dword [0x553394]
mov dword [0x5532dc], eax
movzx eax, cx
push eax
push 0
pop ecx
cmovne ecx, esi
mov dword [0x5532ec], 0x14c
and dl, 0x80
mov eax, str.PDFcamp_Printer
cmove eax, ecx
lea ecx, [esp + 0x2c]
push eax
push edi
call fcn.004795d5
push dword [esp + 0x854]
lea ecx, [esp + 0x28]
push dword [esp + 0x854]
push dword [esp + 0x854]
push ebp
call fcn.00479957
test ax, ax
je 0x4773d8
push 0
lea ecx, [esp + 0x28]
call fcn.00479914
mov ecx, eax
call fcn.0047a2b6
push eax
push 0x5533a0
call fcn.00446f90
pop ecx
pop ecx
lea ecx, [esp + 0x24]
call fcn.00479928
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x70
push dword [0x5532e8]
mov word [0x553398], ax
call esi
push 0x71
push dword [0x5532e8]
mov word [0x553330], ax
call esi
push 0x477086
push dword [0x5532e8]
mov word [0x553334], ax
call dword [sym.imp.GDI32.dll_SetAbortProc]
push 0x14
pop edi
push edi
lea eax, [esp + 0x14]
push 0
push eax
call fcn.00443240
add esp, 0xc
mov dword [esp + 0x10], edi
lea eax, [esp + 0x7d4]
push 0x65
push eax
mov eax, dword [0x50d234]
push dword [eax]
call dword [sym.imp.USER32.dll_GetWindowTextA]
and dword [esp + 0x18], 0
lea eax, [esp + 0x7d4]
push str.StartDoc
mov dword [esp + 0x18], eax
call fcn.00477865
pop ecx
lea eax, [esp + 0x10]
push eax
push dword [0x5532e8]
call dword [sym.imp.GDI32.dll_StartDocA]
cmp eax, 0xffffffff
jne 0x477439
push dword [0x5532e8]
call dword [sym.imp.GDI32.dll_DeleteDC]
xor edi, edi
lea ecx, [esp + 0x24]
call fcn.00477014
mov ax, di
pop ebp
mov ecx, dword [esp + 0x838]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00441a5e
add esp, 0x830
ret
test esi, esi
setne al
mov word [0x5532a8], ax
test ax, ax
je 0x47727d
push esi
call fcn.004a8024
movzx eax, ax
pop ecx
test ax, ax
je 0x477434
push eax
call fcn.004a7f99
push eax
call fcn.00413845
pop ecx
pop ecx
xor eax, eax
jmp 0x4773e7
xor eax, eax
inc eax
jmp 0x4773e7
push 8
push dword [0x5532e8]
xor eax, eax
mov word [0x5532c4], ax
mov word [0x5532c0], ax
call esi
push 0xa
push dword [0x5532e8]
mov word [0x5532d4], ax
call esi
push 0x58
push dword [0x5532e8]
mov word [0x55331c], ax
call esi
push 0x5a
push dword [0x5532e8]
mov word [0x553320], ax
call esi
movzx ecx, word [0x5532d4]
mov si, ax
imul eax, ecx, 0xa
movzx ecx, word [0x553320]
push dword [0x5532e8]
mov word [0x553324], si
cdq
idiv ecx
movzx ecx, word [0x55331c]
mov word [0x5532bc], ax
imul eax, ecx, 0xa
movzx ecx, si
cdq
idiv ecx
mov word [0x5532b8], ax
call fcn.004770c9
xor edi, edi
inc edi
cmp word [0x553388], 0
pop ecx
jne 0x4775b2
mov bx, word [0x55338c]
test bl, 4
je 0x4774f4
xor eax, eax
mov word [0x553328], ax
mov word [0x55332c], ax
jmp 0x477545
mov si, word [0x5532d4]
movzx eax, si
cdq
push 0x28
pop ebp
idiv ebp
mov cx, word [0x55331c]
mov word [0x553328], ax
movzx eax, cx
cdq
idiv ebp
mov word [0x55332c], ax
imul eax, dword [0x553328], 0xfffe
add si, ax
imul eax, dword [0x55332c], 0xfffe
mov word [0x5532d4], si
add cx, ax
mov word [0x55331c], cx
mov eax, 0x190
mov ebp, str.printing
mov word [0x553348], ax
test bl, bl
js 0x477595
lea eax, [esp + 0x780]
mov esi, str.bold
push eax
push esi
push str.weight
push ebp
push 0
push edi
call fcn.00463f23
lea eax, [esp + 0x798]
push esi
push eax
call fcn.00447146
add esp, 0x20
test eax, eax
jne 0x477595
mov eax, 0x2bc
mov word [0x553348], ax
push 0x5534a8
push str.Courier_New
push str.font
push ebp
push 0
push edi
call fcn.00463f23
add esp, 0x18
jmp 0x477601
xor eax, eax
test byte [0x55338c], 0x10
mov word [0x553328], ax
mov word [0x55332c], ax
mov eax, 0x190
mov word [0x553348], ax
je 0x477601
mov cx, word [0x5532bc]
push 0x55
pop esi
cmp cx, si
jbe 0x477601
movzx eax, word [0x5532d4]
xor edx, edx
imul eax, eax, 0x55
movzx ecx, cx
mov word [0x5532bc], si
div ecx
mov word [0x5532d4], ax
mov cx, word [0x50e7c0]
mov eax, 0xffff
cmp cx, ax
jne 0x47761c
xor eax, eax
mov word [0x5532d0], ax
jmp 0x477668
mov ax, word [0x52d7e4]
mov word [0x5532cc], ax
mov ax, word [0x52dd3c]
mov word [0x5532c8], ax
movzx eax, word [0x531370]
push eax
movzx eax, word [0x531368]
push eax
movzx eax, word [0x53136c]
push eax
movzx eax, word [0x531364]
push eax
movzx eax, word [0x53130c]
push eax
movzx eax, cx
push eax
call fcn.0047a0cc
add esp, 0x18
call fcn.004776cb
push eax
push dword [0x5532e8]
mov dword [0x553338], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x55334c
push dword [0x5532e8]
mov dword [0x55333c], eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov esi, 0x1000
push esi
call fcn.00441cd2
mov dword [0x553384], eax
pop ecx
test eax, eax
jne 0x4776ba
push str.Insufficient_memory_for_buffer
call fcn.00413845
pop ecx
jmp 0x4773d8
push esi
push 0x20
push eax
call fcn.00443240
add esp, 0xc
jmp 0x4773da