Function at 0x440300
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4baf80
mov eax, dword fs:[0]
push eax
sub esp, 0x950
mov eax, dword [0x587614]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x94c]
mov dword [ebp - 4], 2
mov dword [ebp - 0x8e8], 0
call sub.mfc140u.dll_CFile::CFile
lea ecx, [ebp - 0x938]
mov byte [ebp - 4], 3
call sub.mfc140u.dll_CFile::CFile
lea ecx, [ebp - 0x910]
mov byte [ebp - 4], 4
mov dword [ebp - 0x8f4], 0
call sub.mfc140u.dll_CFile::CFile
push 0
push 0x8000
push dword [ebp + 8]
lea ecx, [ebp - 0x94c]
mov byte [ebp - 4], 5
call sub.mfc140u.dll_CFile::Open
test eax, eax
je 0x4403b3
push 0
push 0x8000
push dword [ebp + 0xc]
lea ecx, [ebp - 0x938]
call sub.mfc140u.dll_CFile::Open
test eax, eax
jne 0x44041d
lea ecx, [ebp - 0x94c]
call sub.mfc140u.dll_CFile::Close
mov dword [ebp - 0x8a0], 0
lea ecx, [ebp - 0x910]
call fcn.004b4f4e
lea ecx, [ebp - 0x938]
call fcn.004b4f4e
lea ecx, [ebp - 0x94c]
call fcn.004b4f4e
lea ecx, [ebp + 8]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp + 0xc]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov eax, dword [ebp - 0x8a0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b61c2
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x440453
push 0
push 0x9001
push dword [ebp + 0x10]
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Open
test eax, eax
jne 0x440453
lea ecx, [ebp - 0x94c]
call sub.mfc140u.dll_CFile::Close
lea ecx, [ebp - 0x938]
jmp 0x4403ae
xorps xmm0, xmm0
lea ecx, [ebp - 0x938]
movlpd qword [ebp - 0x1c], xmm0
call sub.mfc140u.dll_CFile::GetLength
lea ecx, [ebp - 0x94c]
mov ebx, eax
mov esi, edx
call sub.mfc140u.dll_CFile::GetLength
mov ecx, dword [0x58cfd8]
add ebx, eax
push ecx
adc esi, edx
mov dword [ebp - 0x924], ecx
xor eax, eax
mov dword [ebp - 0x8f8], ebx
mov dword [ebp - 0x8e0], eax
xor ebx, ebx
mov dword [ebp - 0x8cc], eax
mov eax, dword [ecx + 0x87c]
mov ecx, esp
push 0x4d92f8
mov dword [ebp - 0x950], esi
mov dword [ebp - 0x8c8], 4
mov dword [ebp - 0x8fc], ebx
mov dword [ebp - 0x8f0], eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__19]
mov ecx, dword [0x58cfd8]
lea ecx, [ecx + 0x890]
call fcn.00425000
mov ecx, dword [0x58cfd8]
mov dword [ebp - 0x8d8], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push dword [ecx + 0x894]
mulss xmm0, dword [ecx + 0x888]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x4c09d0]
cvttsd2si eax, xmm0
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x8d4], eax
call fcn.00473030
add esp, 4
mov dword [ebp - 0x8bc], eax
cmp eax, 0x25
je 0x440580
cmp eax, 0x57
je 0x440580
cmp eax, 0x5e
je 0x440580
cmp eax, 0x61
je 0x440580
cmp eax, 0x65
je 0x440580
cmp eax, 0x67
je 0x440580
cmp eax, 0x68
je 0x440580
cmp eax, 0x47
jne 0x440559
mov dword [ebp - 0x8c8], 0x30
jmp 0x440586
cmp eax, 0x62
jne 0x44056a
mov dword [ebp - 0x8c8], 0xb
jmp 0x440586
cmp eax, 0x63
je 0x440574
cmp eax, 0x64
jne 0x440586
mov dword [ebp - 0x8c8], 2
jmp 0x440586
mov dword [ebp - 0x8c8], ebx
mov ecx, dword [0x58cfd8]
lea eax, [ebp - 0x89c]
xor esi, esi
mov dword [ebp - 0x8d0], ebx
push esi
push eax
push esi
add ecx, 0x160
mov byte [ebp - 0x895], 0xd
mov dword [ebp - 0x8b4], ebx
mov dword [ebp - 0x8e4], ebx
mov dword [ebp - 0x8b0], ebx
mov dword [ebp - 0x8c4], ebx
mov dword [ebp - 0x8b8], ebx
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer_1]
push eax
call sub.WINSPOOL.DRV_OpenPrinterW
mov eax, dword [0x58cfd8]
lea ecx, [ebp - 0x450]
push ecx
lea ecx, [ebp - 0x650]
push ecx
push esi
push esi
push dword [eax + 0xc]
call dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wsplitpath]
add esp, 0x14
mov dword [ebp - 0x914], ebx
mov dword [ebp - 0x918], ebx
push 1
push ecx
mov ecx, esp
push str.print
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__19]
call fcn.00491d70
add esp, 8
lea eax, [ebp - 0x918]
push eax
lea eax, [ebp - 0x914]
push eax
push ecx
mov ecx, esp
push str.print
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__19]
call fcn.00491a30
push dword [ebp - 0x918]
lea eax, [ebp - 0x450]
push dword [ebp - 0x914]
push 0x4dd7f0
push eax
lea eax, [ebp - 0x650]
push eax
lea eax, [ebp - 0x250]
push str._s_s_s__d__d_
push eax
call fcn.00427d70
add esp, 0x28
mov dword [ebp - 0x958], ebx
lea eax, [ebp - 0x250]
mov dword [ebp - 0x954], 0x4dd8c0
mov dword [ebp - 0x95c], eax
lea eax, [ebp - 0x95c]
push eax
push 1
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_StartDocPrinterW
push dword [ebp - 0x89c]
mov dword [ebp - 0x8ec], eax
call sub.WINSPOOL.DRV_StartPagePrinter
lea eax, [ebp - 0x89c]
push esi
push eax
call fcn.0044f140
push 0x200
call sub.mfc140u.dll_operator_1
add esp, 0xc
mov dword [ebp - 0x8a0], eax
lea ecx, [ebp - 0x94c]
push esi
push esi
push esi
call sub.mfc140u.dll_CFile::Seek
push 0x200
push dword [ebp - 0x8a0]
lea ecx, [ebp - 0x94c]
call sub.mfc140u.dll_CFile::Read
cmp eax, 0x200
jne 0x440722
mov ecx, dword [ebp - 0x8a0]
xor edx, edx
cmp byte [edx + ecx], 0x1b
jne 0x440719
cmp byte [edx + ecx + 1], 0x28
jne 0x440719
cmp byte [edx + ecx + 2], 0x76
je 0x440816
inc edx
cmp edx, 0x1f4
jl 0x440701
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x8a8], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x8a4], eax
mov eax, dword [ebp - 0x8ec]
mov dword [ebp - 0x8c0], eax
push 0
push 0
push 0
lea ecx, [ebp - 0x938]
call sub.mfc140u.dll_CFile::Seek
push 0x200
push dword [ebp - 0x8a0]
lea ecx, [ebp - 0x938]
call sub.mfc140u.dll_CFile::Read
mov ecx, dword [ebp - 0x8a0]
cmp eax, 0x200
jne 0x4408a4
xor edx, edx
mov dword [ebp - 0x8dc], edx
cmp byte [edx + ecx], 0x1b
jne 0x44088b
cmp byte [edx + ecx + 1], 0x28
jne 0x44088b
mov al, byte [edx + ecx + 2]
cmp al, 0x76
je 0x4409e8
cmp al, 0x63
jne 0x44088b
mov eax, dword [0x58cfd8]
push dword [eax + 0x894]
call fcn.00473090
push eax
call fcn.004189e0
mov edx, eax
add esp, 8
lea ecx, [edx + 1]
mov dword [ebp - 0x18], ecx
nop word [eax + eax]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x4407d0
sub edx, dword [ebp - 0x18]
cmp edx, 0xa
jb 0x4407f4
push 0xa
push 0x4dd8c8
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x440804
mov eax, dword [ebp - 0x8bc]
cmp eax, 0x5f
je 0x440804
cmp eax, 0x60
jne 0x44087f
mov ecx, dword [ebp - 0x8a0]
mov edx, dword [ebp - 0x8dc]
mov dword [edx + ecx + 5], ebx
jmp 0x44088b
movzx eax, byte [edx + ecx + 8]
shl eax, 8
mov dword [ebp - 0x8b0], eax
movzx eax, byte [edx + ecx + 7]
add dword [ebp - 0x8b0], eax
movzx eax, byte [edx + ecx + 6]
shl dword [ebp - 0x8b0], 8
add dword [ebp - 0x8b0], eax
movzx eax, byte [edx + ecx + 5]
shl dword [ebp - 0x8b0], 8
add dword [ebp - 0x8b0], eax
lea eax, [edx + 9]
mov dword [ebp - 0x8c0], eax
cdq
mov ecx, edx
mov dword [ebp - 0x8a4], eax
push 0
push ecx
mov dword [ebp - 0x8a8], ecx
lea ecx, [ebp - 0x94c]
push eax
call sub.mfc140u.dll_CFile::Seek
jmp 0x440740
mov ecx, dword [ebp - 0x8a0]
mov edx, dword [ebp - 0x8dc]
inc edx
mov dword [ebp - 0x8dc], edx
cmp edx, 0x1f4
jl 0x440780
mov ecx, dword [ebp - 0x8a0]
test edi, edi
je 0x4408ba
push dword [ebp - 0x8c0]
push ecx
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push dword [ebp - 0x8c0]
push dword [ebp - 0x8a0]
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
push dword [ebp - 0x8a0]
call sub.mfc140u.dll_operator
add esp, 4
mov dword [ebp - 0x8a0], 1
cmp dword [ebp - 0x8c0], ebx
jle 0x441851
mov eax, dword [ebp - 0x8b0]
lea edi, [ebp - 0x938]
cmp eax, dword [ebp - 0x8c4]
lea ecx, [ebp - 0x94c]
mov dword [ebp - 0x8d4], 0x28
cmovle edi, ecx
mov dword [ebp - 0x8a0], edi
mov ecx, dword [ebp - 0x8a4]
mov edx, dword [ebp - 0x8a8]
push dword [ebp - 0x950]
mov eax, edx
push dword [ebp - 0x8f8]
shld eax, ecx, 4
shl ecx, 4
sub ecx, dword [ebp - 0x8a4]
sbb eax, edx
shld eax, ecx, 2
shl ecx, 2
push eax
push ecx
call fcn.004b6590
add eax, 0x28
cmp eax, dword [ebp - 0x8d4]
je 0x44098c
mov ecx, dword [0x58a570]
mov dword [ebp - 0x8d4], eax
test ecx, ecx
je 0x44098c
push eax
call fcn.00474ad0
mov ecx, dword [0x58a570]
push 1
call fcn.00474980
mov eax, dword [edi]
lea ecx, [ebp - 0x894]
push 2
xorps xmm0, xmm0
mov word [ebp - 0x88c], 0
push ecx
mov ecx, edi
movq qword [ebp - 0x894], xmm0
call dword [eax + 0x40]
add dword [ebp - 0x8a4], 2
mov dl, byte [ebp - 0x894]
adc dword [ebp - 0x8a8], 0
mov cl, byte [ebp - 0x893]
cmp dl, 0xc
je 0x440b4c
cmp dl, 0x1b
jne 0x4409e1
cmp cl, 0x40
je 0x440b4c
xor eax, eax
jmp 0x440b51
movzx esi, byte [edx + ecx + 8]
movzx eax, byte [edx + ecx + 7]
shl esi, 8
add esi, eax
movzx eax, byte [edx + ecx + 6]
shl esi, 8
add esi, eax
movzx eax, byte [edx + ecx + 5]
shl esi, 8
lea ecx, [ebp - 0x938]
add esi, eax
lea eax, [edx + 9]
cdq
push 0
mov edi, edx
mov dword [ebp - 0x8c4], esi
mov esi, eax
push edi
push esi
call sub.mfc140u.dll_CFile::Seek
add dword [ebp - 0x8a4], esi
lea eax, [ebp - 0x18]
push eax
adc dword [ebp - 0x8a8], edi
lea eax, [ebp - 0x8b8]
push eax
mov eax, dword [0x58cfd8]
push dword [eax + 0x894]
call fcn.00472eb0
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov eax, esi
mov edi, esi
cdq
idiv dword [ebp - 0x8d8]
mov edx, esi
mov ecx, eax
mov dword [ebp - 0x18], eax
imul ecx, dword [ebp - 0x8d4]
sub edi, ecx
add ecx, ecx
sub edx, ecx
cmp dword [ebp - 0x8bc], 0x64
jne 0x440a97
cmp dword [ebp - 0x8b8], 0x2d0
jne 0x440a97
cmp esi, 0x168
mov eax, 0xffffff4c
cmove edx, eax
mov ecx, dword [ebp - 0x8f0]
mov eax, edx
mov esi, dword [ebp - 0x8c4]
test ecx, ecx
cmove eax, edi
sub esi, eax
mov eax, dword [ebp - 0x8b0]
test ecx, ecx
mov dword [ebp - 0x8c4], esi
cmove edi, edx
sub eax, edi
cmp eax, esi
mov dword [ebp - 0x8b0], eax
cmovl esi, eax
mov eax, dword [ebp - 0x8d4]
mov dword [ebp - 0x8b8], esi
lea ecx, [eax + eax]
mov eax, dword [ebp - 0x8d8]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
imul eax, dword [ebp - 0x18]
add esi, eax
mov eax, esi
and eax, 0x800000ff
jns 0x440afc
dec eax
or eax, 0xffffff00
inc eax
mov edi, dword [ebp - 0x8dc]
mov ecx, dword [ebp - 0x8a0]
mov byte [edi + ecx + 5], al
mov eax, esi
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov byte [edi + ecx + 6], al
mov eax, esi
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov byte [edi + ecx + 7], al
mov eax, esi
cdq
and edx, 0xffffff
add eax, edx
sar eax, 0x18
xor esi, esi
mov byte [edi + ecx + 8], al
mov edi, dword [ebp + 0x14]
jmp 0x4408a4
mov eax, 1
cmp dl, 0x1b
jne 0x44121c
test eax, eax
jne 0x441224
cmp cl, 0x69
jne 0x440de9
cmp dword [ebp + 0x14], eax
je 0x440b84
push 2
lea eax, [ebp - 0x894]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 2
lea eax, [ebp - 0x894]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
mov eax, dword [edi]
lea ecx, [ebp - 0x894]
push 7
push ecx
mov ecx, edi
call dword [eax + 0x40]
movzx esi, byte [ebp - 0x890]
movzx ecx, byte [ebp - 0x891]
movzx edx, byte [ebp - 0x88e]
shl esi, 8
add esi, ecx
shl edx, 8
movzx ecx, byte [ebp - 0x88f]
add ecx, edx
mov dword [ebp - 0x8b4], ecx
cmp eax, 1
jl 0x441844
cmp byte [ebp - 0x893], 0
jne 0x441844
cmp byte [ebp - 0x892], 2
jne 0x441844
mov edx, dword [ebp - 0x8e0]
movzx eax, byte [ebp - 0x894]
mov byte [ebp - 0x893], 1
mov byte [ebp - 0x88f], cl
mov dword [ebp + edx*4 - 0x888], eax
mov eax, ecx
inc edx
shr eax, 8
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0x8e0], edx
mov byte [ebp - 0x88e], al
je 0x440c4b
push 7
lea eax, [ebp - 0x894]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 7
lea eax, [ebp - 0x894]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
mov eax, dword [ebp - 0x8b4]
imul eax, esi
cmp dword [ebp - 0x8d0], 0
mov dword [ebp - 0x8c0], eax
jne 0x440c94
inc eax
push eax
call sub.mfc140u.dll_operator_1
mov dword [ebp - 0x8d0], eax
add esp, 4
mov eax, dword [ebp - 0x8c0]
mov edx, dword [edi]
mov ecx, edi
push eax
push dword [ebp - 0x8d0]
call dword [edx + 0x40]
mov ecx, eax
mov eax, dword [ebp - 0x8c0]
cdq
add dword [ebp - 0x8a4], eax
adc edx, dword [ebp - 0x8a8]
mov dword [ebp - 0x8a8], edx
cmp ecx, 1
jl 0x441844
cmp dword [0x58d228], 0
je 0x440ce7
movzx eax, byte [ebp - 0x894]
cmp eax, dword [ebp - 0x8c8]
jne 0x440ce7
mov eax, dword [ebp - 0x8d0]
or byte [eax], 0x40
test ebx, ebx
jne 0x440d0b
lea eax, [esi + 0x87]
imul eax, eax, 0x81
shr eax, 7
push eax
call sub.mfc140u.dll_operator_1
mov ebx, eax
add esp, 4
mov dword [ebp - 0x8fc], ebx
mov eax, dword [ebp - 0x8b4]
test eax, eax
je 0x440d94
mov edi, dword [ebp - 0x8d0]
mov dword [ebp - 0x8bc], eax
lea eax, [ebp - 0x920]
push eax
lea eax, [ebp - 0x91c]
push eax
lea eax, [ebp - 0x8cc]
push eax
mov eax, dword [0x58cfd8]
push ebx
push esi
push edi
push dword [eax + 0x894]
call fcn.00408980
add esp, 0x1c
cmp dword [ebp + 0x14], 0
je 0x440d67
mov eax, dword [ebp - 0x8cc]
lea ecx, [ebp - 0x910]
sub eax, ebx
push eax
push ebx
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
mov eax, dword [ebp - 0x8cc]
sub eax, ebx
push eax
push ebx
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
add edi, esi
sub dword [ebp - 0x8bc], 1
jne 0x440d21
mov edi, dword [ebp - 0x8a0]
mov eax, dword [edi]
mov ecx, edi
push 1
push 0
push 1
call dword [eax + 0x34]
add dword [ebp - 0x8a4], 8
adc dword [ebp - 0x8a8], 0
cmp dword [ebp + 0x14], 0
je 0x440dc9
push 1
lea eax, [ebp - 0x895]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 1
lea eax, [ebp - 0x895]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
jmp 0x440927
mov edx, dword [ebp - 0x8a8]
cmp cl, 0x28
mov ecx, dword [ebp - 0x8a4]
jne 0x440933
mov eax, dword [edi]
lea ecx, [ebp - 0x892]
push 1
push ecx
mov ecx, edi
call dword [eax + 0x40]
mov ecx, dword [ebp - 0x8a4]
mov edx, dword [ebp - 0x8a8]
add ecx, 1
mov al, byte [ebp - 0x892]
adc edx, 0
mov dword [ebp - 0x8a4], ecx
mov dword [ebp - 0x8a8], edx
cmp al, 0x24
jne 0x440e8e
mov eax, dword [edi]
lea ecx, [ebp - 0x891]
push 6
push ecx
mov ecx, edi
call dword [eax + 0x40]
add dword [ebp - 0x8a4], 6
adc dword [ebp - 0x8a8], 0
cmp dword [ebp + 0x14], 0
je 0x440e6e
push 9
lea eax, [ebp - 0x894]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 9
lea eax, [ebp - 0x894]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
jmp 0x440927
cmp al, 0x76
jne 0x440933
mov eax, dword [edi]
lea ecx, [ebp - 0x891]
push 6
push ecx
mov ecx, edi
call dword [eax + 0x40]
mov ecx, dword [ebp - 0x8a4]
lea ebx, [ebp - 0x94c]
movzx edx, byte [ebp - 0x88c]
add ecx, 6
movzx eax, byte [ebp - 0x88d]
adc dword [ebp - 0x8a8], 0
shl edx, 8
add edx, eax
mov dword [ebp - 0x8a4], ecx
movzx eax, byte [ebp - 0x88e]
shl edx, 8
add edx, eax
movzx eax, byte [ebp - 0x88f]
shl edx, 8
add edx, eax
mov eax, dword [ebp - 0x8c4]
add eax, edx
mov dword [ebp - 0x8e4], edx
cmp edi, ebx
mov ebx, dword [ebp - 0x8c4]
cmovne ebx, eax
add edx, dword [ebp - 0x8b0]
mov eax, ebx
mov dword [ebp - 0x8c4], ebx
lea ebx, [ebp - 0x94c]
mov dword [ebp - 0x8dc], eax
cmp edi, ebx
mov ebx, dword [ebp - 0x8fc]
cmovne edx, dword [ebp - 0x8b0]
cmp dword [ebp - 0x8e8], 0
mov dword [ebp - 0x8c0], edx
jne 0x440f61
mov dword [ebp - 0x8f4], edi
lea ecx, [ebp - 0x938]
cmp edx, eax
lea edi, [ebp - 0x94c]
cmovg edi, ecx
mov ecx, dword [ebp - 0x8a4]
mov dword [ebp - 0x8a0], edi
cmp edx, eax
je 0x440fa6
cmp dword [ebp - 0x8e8], 0
jne 0x440fa6
cmp edi, dword [ebp - 0x8f4]
je 0x440fa6
mov dword [ebp - 0x8b0], edx
mov dword [ebp - 0x8c4], eax
cmp edx, dword [ebp - 0x8b8]
jle 0x44092d
mov dword [ebp - 0x8b0], edx
mov dword [ebp - 0x8c4], eax
cmp eax, dword [ebp - 0x8b8]
jle 0x44092d
mov ecx, dword [ebp - 0x8e0]
xor eax, eax
mov dword [ebp - 0x8f0], 0
test ecx, ecx
jle 0x440fe9
nop dword [eax]
mov ebx, dword [ebp - 0x8c8]
cmp dword [ebp + eax*4 - 0x888], ebx
mov ebx, dword [ebp - 0x8fc]
je 0x440fe2
inc eax
cmp eax, ecx
jl 0x440fc0
mov eax, dword [ebp - 0x8f0]
jmp 0x440feb
mov eax, 1
jmp 0x440feb
xor eax, eax
cmp dword [0x58d228], 0
je 0x44113e
test eax, eax
jne 0x44113e
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x8b4]
push esi
push dword [ebp - 0x8c8]
call fcn.0043db80
add esp, 0x10
lea eax, [ebp - 0x8ac]
push eax
push 9
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
cmp dword [ebp + 0x14], 0
je 0x441053
push dword [ebp - 0x8b4]
lea eax, [ebp - 0x910]
push esi
push dword [ebp - 0x8c8]
push eax
call fcn.004508f0
add esp, 0x10
mov eax, dword [ebp - 0x8b4]
imul eax, esi
push eax
push 0
push dword [ebp - 0x8d0]
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x8d0]
add esp, 0xc
mov ecx, dword [ebp - 0x8b4]
or byte [eax], 0x40
test ecx, ecx
jle 0x441103
mov edi, eax
mov dword [ebp - 0x8bc], ecx
nop dword [eax]
lea eax, [ebp - 0x920]
push eax
lea eax, [ebp - 0x91c]
push eax
lea eax, [ebp - 0x8cc]
push eax
mov eax, dword [0x58cfd8]
push ebx
push esi
push edi
push dword [eax + 0x894]
call fcn.00408980
add esp, 0x1c
cmp dword [ebp + 0x14], 0
je 0x4410d6
mov eax, dword [ebp - 0x8cc]
lea ecx, [ebp - 0x910]
sub eax, ebx
push eax
push ebx
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
mov eax, dword [ebp - 0x8cc]
sub eax, ebx
push eax
push ebx
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
add edi, esi
sub dword [ebp - 0x8bc], 1
jne 0x441090
mov edi, dword [ebp - 0x8a0]
cmp dword [ebp + 0x14], 0
je 0x44111d
push 1
lea eax, [ebp - 0x895]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 1
lea eax, [ebp - 0x895]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
mov edx, dword [ebp - 0x8c0]
cmp edi, dword [ebp - 0x8f4]
je 0x4411b7
mov eax, dword [ebp - 0x8dc]
cmp edx, eax
je 0x4411b7
mov ecx, eax
sub ecx, dword [ebp - 0x8b8]
mov dword [ebp - 0x8f0], ecx
mov ecx, edx
sub ecx, dword [ebp - 0x8b8]
cmp edx, eax
mov eax, dword [ebp - 0x8f0]
mov dword [ebp - 0x18], ecx
cmovge ecx, eax
cmp dword [ebp - 0x8e8], 0
je 0x44118b
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x938]
cmp edi, edx
cmove ecx, eax
mov eax, ecx
and eax, 0x800000ff
jns 0x44119b
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x88f], al
mov eax, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov byte [ebp - 0x88e], al
jmp 0x4411bd
mov ecx, dword [ebp - 0x8e4]
add dword [ebp - 0x8b8], ecx
xor eax, eax
mov dword [ebp - 0x8e0], eax
cmp dword [ebp + 0x14], eax
je 0x4411e4
push 9
lea eax, [ebp - 0x894]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 9
lea eax, [ebp - 0x894]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
mov eax, dword [ebp - 0x8c0]
mov dword [ebp - 0x8b0], eax
mov eax, dword [ebp - 0x8dc]
mov dword [ebp - 0x8c4], eax
jmp 0x440927
test eax, eax
je 0x441844
cmp dword [ebp - 0x8e8], 0
jne 0x44129f
lea eax, [ebp - 0x938]
cmp edi, eax
jne 0x441468
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x8e4]
call fcn.0043de20
add esp, 8
lea eax, [ebp - 0x8ac]
push eax
push 9
lea eax, [ebp - 0x40]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
cmp dword [ebp + 0x14], 0
je 0x441280
push dword [ebp - 0x8e4]
lea eax, [ebp - 0x910]
push eax
call fcn.00450990
add esp, 8
mov eax, dword [ebp - 0x8b8]
add eax, dword [ebp - 0x8e4]
mov dword [ebp - 0x8b8], eax
xor eax, eax
mov dword [ebp - 0x8e0], eax
jmp 0x441468
mov ecx, dword [ebp - 0x8e0]
xor edx, edx
xor eax, eax
test ecx, ecx
jle 0x4412d1
nop dword [eax]
mov ebx, dword [ebp - 0x8c8]
cmp dword [ebp + eax*4 - 0x888], ebx
mov ebx, dword [ebp - 0x8fc]
je 0x4412cc
inc eax
cmp eax, ecx
jl 0x4412b0
jmp 0x4412d1
mov edx, 1
cmp dword [0x58d228], 0
je 0x441468
test edx, edx
jne 0x441468
mov eax, dword [ebp - 0x8c8]
mov byte [ebp - 0x26], al
mov eax, esi
mov word [ebp - 0x28], 0x691b
mov word [ebp - 0x25], 0x201
and eax, 0x800000ff
jns 0x44130b
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [ebp - 0x8b4]
mov byte [ebp - 0x23], al
mov eax, esi
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov byte [ebp - 0x22], al
mov eax, ecx
and eax, 0x800000ff
jns 0x441335
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x21], al
mov eax, ecx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
mov byte [ebp - 0x20], al
lea eax, [ebp - 0x8ac]
push eax
push 9
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
cmp dword [ebp + 0x14], 0
je 0x441383
push dword [ebp - 0x8b4]
lea eax, [ebp - 0x910]
push esi
push dword [ebp - 0x8c8]
push eax
call fcn.004508f0
add esp, 0x10
mov eax, dword [ebp - 0x8b4]
imul eax, esi
push eax
push 0
push dword [ebp - 0x8d0]
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x8d0]
add esp, 0xc
mov ecx, dword [ebp - 0x8b4]
or byte [eax], 0x40
test ecx, ecx
jle 0x441433
mov edi, eax
mov dword [ebp - 0x8bc], ecx
nop dword [eax]
mov eax, dword [0x58cfd8]
lea ecx, [ebp - 0x920]
push ecx
lea ecx, [ebp - 0x91c]
push ecx
lea ecx, [ebp - 0x8cc]
push ecx
push ebx
push esi
push edi
push dword [eax + 0x894]
call fcn.00408980
add esp, 0x1c
cmp dword [ebp + 0x14], 0
je 0x441406
mov eax, dword [ebp - 0x8cc]
lea ecx, [ebp - 0x910]
sub eax, ebx
push eax
push ebx
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
mov eax, dword [ebp - 0x8cc]
sub eax, ebx
push eax
push ebx
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
add edi, esi
sub dword [ebp - 0x8bc], 1
jne 0x4413c0
mov edi, dword [ebp - 0x8a0]
cmp dword [ebp + 0x14], 0
je 0x44144d
push 1
lea eax, [ebp - 0x895]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 1
lea eax, [ebp - 0x895]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
mov eax, dword [edi]
mov ecx, edi
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
mov dword [ebp - 0x8e8], 1
call dword [eax + 0x34]
lea edx, [ebp - 0x938]
cmp edi, edx
lea ecx, [ebp - 0x94c]
mov eax, edx
cmove eax, ecx
lea ecx, [ebp - 0x894]
mov edi, eax
push 2
push ecx
mov ecx, edi
mov dword [ebp - 0x8a0], edi
mov eax, dword [edi]
call dword [eax + 0x40]
add dword [ebp - 0x8a4], 2
mov edx, eax
mov cl, byte [ebp - 0x894]
adc dword [ebp - 0x8a8], 0
cmp cl, 0xc
je 0x4414d7
cmp cl, 0x1b
jne 0x4414d3
cmp byte [ebp - 0x893], 0x40
je 0x4414d7
xor eax, eax
jmp 0x4414dc
mov eax, 1
cmp edx, 1
jl 0x441844
test eax, eax
jne 0x4414fb
mov eax, dword [edi]
mov ecx, edi
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
call dword [eax + 0x34]
jmp 0x440927
cmp dword [0x58d228], 0
je 0x4417bb
mov eax, dword [ebp - 0x8d8]
mov ecx, dword [ebp - 0x8e4]
cdq
idiv ecx
mov dword [ebp - 0x8b8], eax
test eax, eax
jle 0x4417bb
mov edi, 0x100
mov eax, ecx
cdq
idiv edi
mov dword [ebp - 0x8bc], eax
mov eax, ecx
mov dword [ebp - 0x8d4], edx
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
mov dword [ebp - 0x8d8], eax
mov eax, ecx
cdq
and edx, 0xffffff
add eax, edx
sar eax, 0x18
mov dword [ebp - 0x8f4], eax
mov eax, esi
cdq
idiv edi
mov dword [ebp - 0x8dc], eax
mov eax, dword [ebp - 0x8b4]
mov dword [ebp - 0x8c0], edx
cdq
idiv edi
mov edi, dword [ebp - 0x8b4]
imul edi, esi
mov dword [ebp - 0x8e8], edx
mov dword [ebp - 0x8e4], eax
mov dword [ebp - 0x8f8], edi
nop dword [eax + eax]
mov eax, dword [ebp - 0x8d4]
mov byte [ebp - 0x17], al
mov eax, dword [ebp - 0x8bc]
mov byte [ebp - 0x16], al
mov eax, dword [ebp - 0x8d8]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 0x8f4]
mov byte [ebp - 0x14], al
lea eax, [ebp - 0x8ac]
push eax
push 9
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x476281b
push eax
push dword [ebp - 0x89c]
mov byte [ebp - 0x18], 0
call sub.WINSPOOL.DRV_WritePrinter
mov eax, dword [ebp - 0x8c8]
mov byte [ebp - 0x1a], al
mov eax, dword [ebp - 0x8c0]
mov byte [ebp - 0x17], al
mov eax, dword [ebp - 0x8dc]
mov byte [ebp - 0x16], al
mov eax, dword [ebp - 0x8e8]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 0x8e4]
mov byte [ebp - 0x14], al
lea eax, [ebp - 0x8ac]
push eax
push 9
lea eax, [ebp - 0x1c]
mov word [ebp - 0x1c], 0x691b
push eax
push dword [ebp - 0x89c]
mov word [ebp - 0x19], 0x201
call sub.WINSPOOL.DRV_WritePrinter
cmp dword [ebp + 0x14], 0
je 0x4416d4
mov eax, dword [ebp - 0x8d4]
lea ecx, [ebp - 0x910]
mov byte [ebp - 0x23], al
mov eax, dword [ebp - 0x8bc]
mov byte [ebp - 0x22], al
mov eax, dword [ebp - 0x8d8]
mov byte [ebp - 0x21], al
mov eax, dword [ebp - 0x8f4]
mov byte [ebp - 0x20], al
lea eax, [ebp - 0x28]
push 9
push eax
mov eax, dword [ebp - 0x910]
mov dword [ebp - 0x28], 0x476281b
mov byte [ebp - 0x24], 0
call dword [eax + 0x44]
mov eax, dword [ebp - 0x8c8]
lea ecx, [ebp - 0x910]
mov byte [ebp - 0x32], al
mov eax, dword [ebp - 0x8c0]
mov byte [ebp - 0x2f], al
mov eax, dword [ebp - 0x8dc]
mov byte [ebp - 0x2e], al
mov eax, dword [ebp - 0x8e8]
mov byte [ebp - 0x2d], al
mov eax, dword [ebp - 0x8e4]
mov byte [ebp - 0x2c], al
lea eax, [ebp - 0x34]
push 9
push eax
mov eax, dword [ebp - 0x910]
mov word [ebp - 0x34], 0x691b
mov word [ebp - 0x31], 0x201
call dword [eax + 0x44]
push edi
mov edi, dword [ebp - 0x8d0]
push 0
push edi
call sub.VCRUNTIME140.dll_memset
or byte [edi], 0x40
add esp, 0xc
or byte [esi + edi - 1], 0x40
mov eax, dword [ebp - 0x8b4]
test eax, eax
jle 0x44176d
mov dword [ebp - 0x8e0], eax
nop
mov eax, dword [0x58cfd8]
lea ecx, [ebp - 0x920]
push ecx
lea ecx, [ebp - 0x91c]
push ecx
lea ecx, [ebp - 0x8cc]
push ecx
push ebx
push esi
push edi
push dword [eax + 0x894]
call fcn.00408980
add esp, 0x1c
cmp dword [ebp + 0x14], 0
je 0x441746
mov eax, dword [ebp - 0x8cc]
lea ecx, [ebp - 0x910]
sub eax, ebx
push eax
push ebx
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
mov eax, dword [ebp - 0x8cc]
sub eax, ebx
push eax
push ebx
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
add edi, esi
sub dword [ebp - 0x8e0], 1
jne 0x441700
cmp dword [ebp + 0x14], 0
je 0x441787
push 1
lea eax, [ebp - 0x895]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 1
lea eax, [ebp - 0x895]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
sub dword [ebp - 0x8b8], 1
mov edi, dword [ebp - 0x8f8]
jne 0x4415a0
mov edi, dword [ebp - 0x8a0]
cmp dword [ebp + 0x14], 0
je 0x4417d5
push 2
lea eax, [ebp - 0x894]
push eax
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
lea eax, [ebp - 0x8ac]
push eax
push 2
lea eax, [ebp - 0x894]
push eax
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
mov eax, dword [edi]
mov ecx, edi
mov esi, dword [ebp - 0x8d0]
push 0x64
push esi
call dword [eax + 0x40]
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x8f8], eax
test eax, eax
jle 0x441838
test edi, edi
je 0x441824
push eax
push esi
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Write
mov eax, dword [ebp - 0x8f8]
lea ecx, [ebp - 0x8ac]
push ecx
push eax
push esi
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
mov dword [ebp - 0x8a0], 1
jmp 0x441851
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0x8a0], 0
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_EndPagePrinter
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_EndDocPrinter
mov ecx, dword [0x58a570]
test ecx, ecx
je 0x441885
push 0x64
call fcn.00474ad0
mov ecx, dword [0x58a570]
push 1
call fcn.00474980
mov eax, dword [ebp - 0x924]
mov eax, dword [eax + 0x148]
imul eax, dword [0x51b0fc]
dec eax
mov dword [ebp - 0x8d4], eax
test eax, eax
jle 0x441a79
lea ecx, [ebp - 0x8d8]
call dword [sym.imp.mfc140u.dll_Ordinal_296]
push 0x104
lea eax, [ebp - 0x858]
mov byte [ebp - 4], 6
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push dword [ebp - 0x8ec]
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x8d8]
push str._sSpoolPRINTERS_05d.SPL
push eax
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__18]
add esp, 0x10
lea ecx, [ebp - 0x48]
call sub.mfc140u.dll_CFile::CFile
push 0
push 0x8000
push dword [ebp - 0x8d8]
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 7
call sub.mfc140u.dll_CFile::Open
test eax, eax
je 0x441a61
push 0x4000
call sub.mfc140u.dll_operator_1
add esp, 4
mov esi, eax
cmp dword [ebp - 0x8d4], 0
jle 0x441a50
mov ebx, dword [ebp - 0x8d4]
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x48]
push 0
push 0
push 0
call dword [eax + 0x34]
push 1
push ecx
mov ecx, esp
push str.print
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__19]
call fcn.00491d70
add esp, 8
lea eax, [ebp - 0x918]
push eax
lea eax, [ebp - 0x914]
push eax
push ecx
mov ecx, esp
push str.print
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__19]
call fcn.00491a30
push dword [ebp - 0x918]
lea eax, [ebp - 0x450]
push dword [ebp - 0x914]
push 0x4dd7f0
push eax
lea eax, [ebp - 0x650]
push eax
lea eax, [ebp - 0x250]
push str._s_s_s__d__d_
push eax
call fcn.00427d70
add esp, 0x28
lea eax, [ebp - 0x250]
mov dword [ebp - 0x95c], eax
lea eax, [ebp - 0x95c]
push eax
push 1
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_StartDocPrinterW
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_StartPagePrinter
push 0x4000
push esi
lea ecx, [ebp - 0x48]
call sub.mfc140u.dll_CFile::Read
test eax, eax
je 0x441a2b
lea ecx, [ebp - 0x924]
push ecx
push eax
push esi
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_WritePrinter
test eax, eax
je 0x441a1a
push 0x4000
push esi
lea ecx, [ebp - 0x48]
call sub.mfc140u.dll_CFile::Read
test eax, eax
jne 0x4419ee
jmp 0x441a2b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_AbortPrinter
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_EndPagePrinter
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_EndDocPrinter
sub ebx, 1
jne 0x441936
mov ebx, dword [ebp - 0x8fc]
push esi
call sub.mfc140u.dll_operator
add esp, 4
lea ecx, [ebp - 0x48]
call sub.mfc140u.dll_CFile::Close
lea ecx, [ebp - 0x48]
call fcn.004b4f4e
lea ecx, [ebp - 0x8d8]
mov byte [ebp - 4], 5
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push dword [ebp - 0x89c]
call sub.WINSPOOL.DRV_ClosePrinter
test ebx, ebx
je 0x441a91
push ebx
call sub.mfc140u.dll_operator
add esp, 4
mov eax, dword [ebp - 0x8d0]
test eax, eax
je 0x441aa4
push eax
call sub.mfc140u.dll_operator
add esp, 4
lea ecx, [ebp - 0x94c]
call sub.mfc140u.dll_CFile::Close
lea ecx, [ebp - 0x938]
call sub.mfc140u.dll_CFile::Close
test edi, edi
je 0x4403bd
lea ecx, [ebp - 0x910]
call sub.mfc140u.dll_CFile::Close
jmp 0x4403bd