Function at 0x4025e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x324
mov dword [ebp - 0x1e0], 0x3b29
cmp dword [ebp - 0x1e0], 0x19d5
je 0x402b96
mov ax, word [ebp + 0x18]
mov word [ebp - 0x298], ax
mov cx, word [ebp + 0x14]
mov word [ebp - 0x2b0], cx
mov dl, byte [ebp + 8]
mov byte [ebp - 0x135], dl
mov eax, dword [ebp - 0x1e0]
and eax, 0x1726
cmp eax, 0x16e6
je 0x402ad4
mov cx, word [ebp + 0x10]
mov word [ebp - 0x148], cx
movsx edx, word [ebp - 0x298]
sub edx, 0x59a
movsx eax, word [ebp + 0x18]
cmp edx, eax
jne 0x4026e9
movzx ecx, byte [ebp + 8]
add ecx, 0xa8
mov byte [ebp - 0x135], cl
mov dl, byte [ebp - 0x135]
mov byte [ebp - 0x314], dl
cmp byte [ebp - 0x314], 0x30
je 0x402683
jmp 0x4026c5
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.COMDLG32.dll_PrintDlgExA]
mov dword [ebp - 0x22c], eax
mov cx, word [ebp - 0x298]
mov word [ebp + 0x18], cx
lea edx, [ebp - 0x228]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgA]
mov dword [ebp - 0x2b4], eax
movzx eax, byte [ebp + 8]
sub eax, 0xb6
mov byte [ebp - 0x135], al
jmp 0x4026e7
movsx ecx, word [ebp + 0x18]
add ecx, 0x26e
mov word [ebp - 0x298], cx
movsx edx, word [ebp + 0x18]
sub edx, 0x17b
mov word [ebp - 0x298], dx
jmp 0x40275d
lea eax, [ebp - 0x1e0]
mov dword [ebp - 0xd4], eax
mov cl, byte [ebp - 0x135]
mov byte [ebp - 0x318], cl
cmp byte [ebp - 0x318], 0x6d
je 0x40270c
jmp 0x40275d
lea edx, [ebp - 0x58]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgExA]
mov dword [ebp - 0x2a8], eax
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1e0]
shl edx, cl
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xd4]
mov ecx, dword [ecx]
call fcn.00401fc0
mov dx, word [ebp - 0x2b0]
mov word [ebp + 0x10], dx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x31c], eax
cmp dword [ebp - 0x31c], 0xe3ae
je 0x402774
jmp 0x4027da
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
xor edx, dword [ebp - 0x1e0]
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
movzx ecx, byte [ebp + 8]
and ecx, 0xef
movzx edx, byte [ebp - 0x135]
cmp ecx, edx
je 0x4027a1
jmp 0x4027b7
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0xd4]
mov dword [edx], ecx
mov ax, word [ebp - 0x298]
mov word [ebp + 0x18], ax
lea ecx, [ebp - 0x288]
push ecx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
mov dword [ebp - 0x2ac], eax
jmp 0x402a82
lea edx, [ebp + 8]
mov dword [ebp - 0x2b8], edx
lea eax, [ebp - 0x298]
mov dword [ebp - 0x134], eax
movzx ecx, word [ebp - 0x148]
movzx edx, word [ebp - 0x2b0]
add ecx, edx
movzx eax, word [ebp + 0x14]
movzx edx, word [ebp + 0x10]
sub eax, edx
cmp ecx, eax
je 0x402856
movzx eax, byte [ebp + 8]
push eax
mov dl, byte [ebp - 0x135]
mov cl, byte [ebp - 0x135]
call fcn.00510d90
mov dword [ebp + 0xc], 0x8020
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
and edx, 0x94e
mov dword [ebp - 0x1e0], edx
lea eax, [ebp - 0x184]
push eax
call dword [sym.imp.COMDLG32.dll_ChooseFontA]
mov dword [ebp - 0x2b4], eax
jmp 0x4028dd
cmp dword [ebp + 0xc], 0xcbd7
jne 0x40288c
movsx ecx, word [ebp + 0x18]
movsx edx, word [ebp - 0x298]
sub ecx, edx
mov eax, dword [ebp - 0x134]
mov word [eax], cx
movzx ecx, byte [ebp + 8]
mov edx, dword [ebp - 0x2b8]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x135], cl
jmp 0x4028dd
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
mov dword [ebp - 0x2a0], edx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x144], edx
mov ax, word [ebp - 0x2b0]
mov word [ebp - 0x290], ax
lea ecx, [ebp - 0x135]
mov dword [ebp - 0x2a4], ecx
mov edx, dword [ebp - 0x140]
sub edx, dword [ebp - 0x2a0]
mov dword [ebp - 0x1e0], edx
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x5c], eax
movzx edx, byte [ebp - 0x135]
mov eax, dword [ebp - 0x2a4]
movzx ecx, byte [eax]
shl edx, cl
movzx ecx, byte [ebp + 8]
mov eax, dword [ebp - 0x2b8]
movzx eax, byte [eax]
or ecx, eax
cmp edx, ecx
jl 0x402a13
mov ecx, dword [ebp - 0x2b8]
movzx edx, byte [ecx]
mov eax, dword [ebp - 0x2a4]
movzx ecx, byte [eax]
add edx, ecx
movzx eax, byte [ebp - 0x135]
movzx ecx, byte [ebp + 8]
sub eax, ecx
cmp edx, eax
jg 0x402936
jmp 0x402961
mov edx, dword [ebp - 0x144]
add edx, 0xe592
cmp edx, dword [ebp + 0xc]
ja 0x402961
mov eax, dword [ebp - 0x2b8]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x135]
sub ecx, edx
mov eax, dword [ebp - 0x2b8]
mov byte [eax], cl
mov ecx, dword [ebp - 0x2a4]
mov dl, byte [ecx]
mov byte [ebp - 0x320], dl
cmp byte [ebp - 0x320], 0x1a
je 0x402986
cmp byte [ebp - 0x320], 0x84
je 0x402a00
jmp 0x402a13
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0xd4]
mov dword [edx], ecx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x1e0]
mov edx, dword [ebp - 0x2a0]
add edx, dword [ebp - 0x5c]
cmp ecx, edx
je 0x4029f5
mov eax, dword [ebp - 0x134]
movsx ecx, word [eax]
movsx edx, word [ebp + 0x18]
add ecx, edx
mov word [ebp - 0x298], cx
mov eax, dword [ebp - 0x144]
push eax
mov ecx, dword [ebp - 0x144]
push ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x144]
push ecx
call fcn.00402c00
call fcn.00510d10
mov edx, dword [ebp - 0x144]
mov dword [ebp + 0xc], edx
jmp 0x402a13
lea eax, [ebp - 0x84]
push eax
call dword [sym.imp.COMDLG32.dll_FindTextA]
mov dword [ebp - 0x28c], eax
movsx ecx, byte [0x51b208]
cmp ecx, 0x1e
jge 0x402a21
jmp 0x402a59
mov edx, dword [ebp - 0x2b8]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x2a4]
movzx ecx, byte [ecx]
sar eax, cl
movzx edx, byte [ebp - 0x135]
movzx ecx, byte [ebp + 8]
xor edx, ecx
cmp eax, edx
je 0x402a59
lea edx, [ebp - 0x1d8]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgA]
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x2a4]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x135]
and ecx, edx
mov eax, dword [ebp - 0x2b8]
mov byte [eax], cl
mov ecx, dword [ebp - 0x140]
sub ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x2a0], ecx
cmp dword [ebp + 0xc], 0xb120
ja 0x402ac1
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
or eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0xd4]
mov dword [ecx], eax
lea edx, [ebp - 0xd0]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgA]
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
call fcn.00511100
movsx ecx, word [ebp + 0x18]
sar ecx, 7
mov word [ebp - 0x298], cx
call fcn.004023e0
movsx ecx, word [ebp + 0x18]
xor ecx, 0x2e6
mov word [ebp - 0x298], cx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0x1e0]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00402c00
mov ax, word [ebp - 0x298]
mov word [ebp + 0x18], ax
mov ecx, dword [ebp - 0x1e0]
shl ecx, 0xb
mov dword [ebp - 0x1e0], ecx
lea edx, [ebp - 0x135]
push edx
mov eax, dword [ebp - 0x294]
push eax
call dword [sym.imp.USERENV.dll_GetProfilesDirectoryA]
mov dword [ebp - 0x1dc], eax
mov cl, byte [0x51b208]
mov byte [ebp - 0x324], cl
cmp byte [ebp - 0x324], 0x37
je 0x402b48
jmp 0x402b8f
movzx edx, byte [ebp + 8]
or edx, 0xaa
mov byte [ebp - 0x135], dl
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.COMDLG32.dll_PageSetupDlgA]
mov dword [ebp - 0x188], eax
movzx ecx, byte [ebp - 0x135]
push ecx
mov dl, byte [ebp - 0x135]
mov cl, byte [ebp - 0x135]
call fcn.00510d90
mov dl, byte [ebp - 0x135]
mov byte [ebp + 8], dl
jmp 0x402b94
call fcn.004023e0
jmp 0x402bdb
mov eax, dword [ebp - 0x1e0]
sub eax, 0x6b6d
cmp eax, 0x30a0
jne 0x402bdb
mov ecx, dword [ebp - 0x1e0]
add ecx, 0x2840
mov dword [ebp - 0x1e0], ecx
lea edx, [ebp - 0x18c]
push edx
mov eax, dword [ebp - 0x18c]
push eax
mov ecx, dword [ebp - 0x13c]
push ecx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryA]
mov dword [ebp - 0x2ac], eax
call dword [sym.imp.ole32.dll_CoRevokeMallocSpy]
mov dword [ebp - 0x29c], eax
mov ecx, dword [ebp - 0x1e0]
call fcn.00511100
movsx eax, byte [0x51b208]
mov esp, ebp
pop ebp
ret 0x14