Function at 0x5107d0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1bc
mov eax, 0x735
mov word [ebp - 0x134], ax
movsx ecx, word [ebp - 0x134]
mov dword [ebp - 0x1b0], ecx
cmp dword [ebp - 0x1b0], 0x771
je 0x510800
jmp 0x51082a
movzx edx, word [ebp - 0x134]
push edx
movzx eax, word [ebp - 0x134]
push eax
movzx ecx, word [ebp - 0x134]
push ecx
movzx edx, word [ebp - 0x134]
push edx
call fcn.00402500
add esp, 0x10
jmp 0x510887
movsx eax, word [ebp - 0x134]
cmp eax, 0x2a1
jg 0x510887
movsx ecx, word [ebp - 0x134]
sub ecx, 0x68e
mov word [ebp - 0x134], cx
lea edx, [ebp - 0x1a0]
push edx
call dword [sym.imp.COMDLG32.dll_ChooseColorA]
mov dword [ebp - 0x154], eax
movzx eax, word [ebp - 0x134]
push eax
movzx ecx, word [ebp - 0x134]
push ecx
movzx edx, word [ebp - 0x134]
push edx
movzx eax, word [ebp - 0x134]
push eax
call fcn.00402500
add esp, 0x10
mov cx, word [ebp - 0x134]
mov word [ebp - 0x1c], cx
movsx edx, word [ebp - 0x134]
add edx, 0x77c
movsx eax, word [ebp - 0x1c]
cmp edx, eax
jge 0x5108df
movsx ecx, word [ebp - 0x134]
and ecx, 0x367
movsx edx, word [ebp - 0x1c]
cmp ecx, edx
jg 0x5108df
movsx eax, word [ebp - 0x134]
xor eax, 0x2fc
mov word [ebp - 0x1c], ax
movsx ecx, word [ebp - 0x134]
sar ecx, 2
mov word [ebp - 0x1c], cx
call fcn.00510d10
mov dword [ebp - 0xe4], 0xdb9a
cmp dword [ebp - 0xe4], 0xbd13
jne 0x510914
mov dl, byte [0x51b208]
mov byte [ebp + 8], dl
mov eax, dword [ebp - 0xe4]
sub eax, 0x75ad
mov dword [ebp - 0xe4], eax
jmp 0x510cae
movsx ecx, byte [0x51b208]
shl ecx, 0x4b
movsx edx, byte [ebp + 8]
cmp ecx, edx
je 0x510cae
mov dword [ebp - 0x150], 0x7497
mov byte [ebp - 0x135], 0xe6
mov al, byte [0x51b208]
mov byte [ebp - 0x1b4], al
cmp byte [ebp - 0x1b4], 0x37
je 0x510951
jmp 0x51097e
movzx ecx, word [ebp - 0x134]
push ecx
movzx edx, word [ebp - 0x134]
push edx
movzx eax, word [ebp - 0x134]
push eax
movzx ecx, word [ebp - 0x134]
push ecx
call fcn.00402500
add esp, 0x10
jmp 0x510c91
mov edx, dword [ebp - 0xe4]
mov dword [ebp - 0x140], edx
movsx eax, word [ebp - 0x134]
mov dword [ebp - 0x1b8], eax
cmp dword [ebp - 0x1b8], 0x79d
je 0x5109a8
jmp 0x510a2e
cmp dword [ebp - 0x150], 0x148a
jne 0x510a0e
lea ecx, [ebp - 0x135]
push ecx
mov edx, dword [ebp - 0x1a8]
push edx
mov eax, dword [ebp - 0x1a4]
push eax
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryA]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0xe4]
add ecx, 0x62b6
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp - 0x150]
sub edx, 0x2b0f
mov dword [ebp - 0x150], edx
mov al, byte [0x51b208]
mov byte [ebp + 8], al
lea ecx, [ebp - 0x14c]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
push 0x77
mov edx, dword [ebp - 0x140]
push edx
movzx eax, byte [ebp - 0x135]
push eax
movzx ecx, word [ebp - 0x134]
push ecx
call fcn.00402fe0
jmp 0x510a58
lea edx, [ebp - 0x150]
mov dword [ebp - 0x144], edx
mov al, byte [ebp - 0x135]
mov byte [ebp - 0x15], al
lea ecx, [ebp - 0x150]
mov dword [ebp - 0x16c], ecx
lea edx, [ebp - 0x140]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x13c], ecx
mov dl, byte [ebp - 0x15]
mov byte [ebp - 0x1a9], dl
mov eax, 0xf34
mov word [ebp - 0xc], ax
movsx ecx, word [ebp - 0x1c]
sub ecx, 0x3b0
movsx edx, word [ebp - 0x134]
cmp ecx, edx
jl 0x510ad9
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
xor ecx, dword [ebp - 0x140]
mov edx, dword [ebp - 8]
mov dword [edx], ecx
lea eax, [ebp - 0xe0]
push eax
call dword [sym.imp.COMDLG32.dll_PageSetupDlgA]
mov dword [ebp - 0x14], eax
movzx ecx, word [ebp - 0x1c]
push ecx
movzx edx, word [ebp - 0xc]
push edx
movzx eax, word [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x140]
push ecx
movzx edx, byte [ebp - 0x135]
push edx
call fcn.004025e0
jmp 0x510c7c
lea eax, [ebp - 0x140]
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ecx]
shl edx, cl
mov eax, dword [ebp - 0x144]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x13c]
cmp edx, ecx
jge 0x510b23
mov dl, byte [0x51b208]
mov byte [ebp + 8], dl
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x150]
add ecx, dword [eax]
mov dword [ebp - 0x10], ecx
jmp 0x510c0c
movzx edx, word [ebp - 0xc]
mov dword [ebp - 0x1bc], edx
cmp dword [ebp - 0x1bc], 0x629
je 0x510b4a
cmp dword [ebp - 0x1bc], 0x933
je 0x510bae
jmp 0x510bf8
movsx eax, byte [0x51b208]
and eax, 0x68
movsx ecx, byte [ebp + 8]
cmp eax, ecx
jle 0x510b75
lea edx, [ebp - 0x1c]
push edx
push 0x71
push 0xee
call dword [sym.imp.ole32.dll_CoDosDateTimeToFileTime]
mov dword [ebp - 0x154], eax
jmp 0x510bac
mov eax, dword [ebp - 0x140]
add eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x1a9]
movzx eax, byte [ebp - 0x15]
sub edx, eax
mov byte [ebp - 0x135], dl
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x140]
add edx, dword [ecx]
mov eax, dword [ebp - 0x158]
mov dword [eax], edx
jmp 0x510bf8
mov cl, byte [0x51b208]
mov byte [ebp + 8], cl
lea edx, [ebp - 0x168]
push edx
lea eax, [ebp - 0x168]
push eax
lea ecx, [ebp - 0x10]
push ecx
call dword [sym.imp.ole32.dll_CoGetInterfaceAndReleaseStream]
mov dword [ebp - 0x148], eax
movzx edx, word [ebp - 0x134]
push edx
movzx eax, word [ebp - 0xc]
push eax
movzx ecx, word [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0x140]
push edx
movzx eax, byte [ebp - 0x15]
push eax
call fcn.004025e0
lea ecx, [ebp - 0x13c]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 8]
mov eax, dword [edx]
mov dword [ebp - 0xe8], eax
mov ecx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0x144]
mov eax, dword [ecx]
and eax, dword [edx]
mov dword [ebp - 0x10], eax
movzx ecx, byte [0x51b208]
push ecx
call fcn.005107d0
mov edx, dword [ebp - 0x16c]
mov eax, dword [edx]
sub eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x144]
mov dword [ecx], eax
movzx edx, byte [ebp - 0x135]
movzx eax, byte [ebp - 0x1a9]
add edx, eax
mov byte [ebp - 0x15], dl
mov ecx, dword [ebp - 0x84]
push ecx
mov edx, dword [ebp - 0x88]
push edx
call dword [sym.imp.ole32.dll_CoRevokeInitializeSpy]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xe4]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x158]
mov dword [edx], ecx
mov al, byte [0x51b208]
mov byte [ebp + 8], al
mov ecx, dword [ebp - 0x144]
mov ecx, dword [ecx]
call fcn.00511100
lea edx, [ebp - 0x80]
push edx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
mov dword [ebp - 0x14], eax
movzx eax, byte [ebp - 0x135]
and eax, 0x2c
mov byte [ebp - 0x135], al
movsx ecx, word [ebp - 0x1c]
or ecx, 0x2ff
mov word [ebp - 0x134], cx
lea edx, [ebp - 0x134]
push edx
push 0x52
lea eax, [ebp - 0x17c]
push eax
call dword [sym.imp.ole32.dll_OleRegGetMiscStatus]
mov dword [ebp - 0x14c], eax
mov ecx, dword [ebp - 0xe4]
add ecx, 0x7ae1
mov dword [ebp - 0xe4], ecx
lea edx, [ebp - 0x130]
push edx
call dword [sym.imp.COMDLG32.dll_PrintDlgA]
mov dword [ebp - 0x20], eax
movsx eax, byte [0x51b208]
mov esp, ebp
pop ebp
ret 4