Function at 0x4065c0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x4208ab
mov eax, dword fs:[0]
push eax
sub esp, 0x4b8
mov eax, dword [0x42c2f0]
xor eax, esp
mov dword [esp + 0x4b0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x42c2f0]
xor eax, esp
push eax
lea eax, [esp + 0x4cc]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x4dc]
push 0x54
xor esi, esi
lea eax, [esp + 0x1c]
push esi
push eax
mov edi, ecx
call fcn.00412200
mov edx, dword [0x42e54c]
mov ecx, dword [0x42e548]
add esp, 0xc
xor eax, eax
mov dword [esp + 0x8e], eax
mov dword [esp + 0x92], eax
mov dword [esp + 0x96], eax
mov dword [esp + 0x9a], eax
mov dword [esp + 0x9e], eax
mov dword [esp + 0xa2], eax
mov dword [esp + 0xa6], eax
mov dword [esp + 0xaa], eax
mov dword [esp + 0xae], eax
mov word [esp + 0xb2], ax
mov eax, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], 0x58
mov dword [esp + 0x18], ecx
mov word [esp + 0x8c], si
lea edx, [eax + 2]
jmp 0x406690
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x406690
sub eax, edx
sar eax, 1
lea ecx, [eax - 1]
cmp ecx, esi
jl 0x4066b2
cmp word [edi + ecx*2], 0x2e
je 0x4066b2
sub ecx, 1
jns 0x4066a6
add ecx, 1
sub eax, ecx
push eax
lea eax, [edi + ecx*2]
push eax
lea ecx, [esp + 0x94]
push ecx
call fcn.00410284
add esp, 0xc
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], esi
mov word [esp + 0x74], si
push str.MIXIN_TITLE_FILE_ALL0
push 0x42d890
mov dword [esp + 0x4dc], esi
call fcn.00406bc0
lea edx, [esp + 0x78]
push str.MIXIN_TITLE_FILE_ALL1
push edx
call fcn.00406bc0
push 0x206
lea eax, [esp + 0xca]
push esi
push eax
mov word [esp + 0xd0], si
call fcn.00412200
mov ecx, dword [esp + 0x90]
mov ebx, 8
add esp, 0x1c
cmp dword [esp + 0x88], ebx
jae 0x40673f
lea ecx, [esp + 0x74]
cmp dword [0x42d8a8], ebx
mov eax, dword [0x42d894]
jae 0x406751
mov eax, 0x42d894
push esi
push ecx
push esi
push eax
lea ecx, [esp + 0xc4]
push str._s_c_s_c
push ecx
call fcn.0041074b
push 0x206
lea eax, [esp + 0x2da]
lea edx, [esp + 0xd0]
push esi
push eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], 0x104
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov word [esp + 0x2e0], si
call fcn.00412200
add esp, 0x24
push esi
push 5
lea ecx, [esp + 0x2c4]
push ecx
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x2bc]
lea eax, [esp + 0x8c]
push ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], 0x200006
mov dword [esp + 0x54], eax
call dword [sym.imp.comdlg32.dll_GetSaveFileNameW]
mov edi, eax
cmp edi, esi
je 0x406871
mov edx, dword [esp + 0x30]
push edx
mov ecx, 0x42f50b
mov edx, ebp
call fcn.00408eb0
add esp, 4
test eax, eax
jne 0x406871
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x406871
push str.MIXIN_TITLE_CAPTION_ERROR
push 0x42d890
call fcn.00406bc0
push ebp
push str.MIXIN_TITLE_DIFF_KEY_FAILED
push 0x42d874
call fcn.00406bc0
mov ecx, dword [0x42d894]
add esp, 0x14
cmp dword [0x42d8a8], ebx
jae 0x40684d
mov ecx, 0x42d894
cmp dword [0x42d88c], ebx
mov eax, dword [0x42d878]
jae 0x40685f
mov eax, 0x42d878
push 0x10
push ecx
push eax
mov eax, dword [0x42e548]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
xor edi, edi
cmp dword [esp + 0x88], ebx
jb 0x406887
mov ecx, dword [esp + 0x74]
push ecx
call fcn.0040f9b2
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x4cc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4b0]
xor ecx, esp
call fcn.0040fbc6
add esp, 0x4c4
ret