Function at 0x413bd0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x52a5d2
mov eax, dword fs:[0]
push eax
mov eax, 0x16cc
call fcn.00505a10
mov eax, dword [0x568fd0]
xor eax, esp
mov dword [esp + 0x16c8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x568fd0]
xor eax, esp
push eax
lea eax, [esp + 0x16e0]
mov dword fs:[0], eax
cmp byte [esp + 0x16f4], 0
mov eax, dword [esp + 0x16f0]
mov dword [esp + 0x18], eax
mov edi, ecx
mov dword [esp + 0x14], 0
jne 0x413c67
lea ebp, [edi + 0x10]
lea esi, [esp + 0x38]
mov eax, ebp
call fcn.0040f650
cmp dword [eax + 0x14], 0
sete bl
cmp dword [esp + 0x50], 8
jb 0x413c57
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00501b8f
add esp, 4
test bl, bl
je 0x413d9e
mov byte [esp + 0x16f4], 1
lea ebp, [edi + 0x10]
lea esi, [esp + 0x38]
mov eax, ebp
call fcn.0040f650
mov ebx, 8
cmp dword [edi + 0x80], ebx
jb 0x413c87
mov esi, dword [edi + 0x6c]
jmp 0x413c8a
lea esi, [edi + 0x6c]
cmp dword [eax + 0x18], ebx
jb 0x413c94
mov eax, dword [eax + 4]
jmp 0x413c97
add eax, 4
test eax, eax
je 0x413cb4
cmp word [eax], 0
je 0x413cb4
mov ecx, 0x400
lea edx, [esp + 0xedc]
call fcn.0040de30
jmp 0x413cdb
push 0
push 5
lea edx, [esp + 0xee4]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x413cdb
push esi
lea eax, [esp + 0xee0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp dword [esp + 0x50], ebx
jb 0x413cee
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.00501b8f
add esp, 4
cmp dword [edi + 0x80], ebx
jb 0x413cfb
mov eax, dword [edi + 0x6c]
jmp 0x413cfe
lea eax, [edi + 0x6c]
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x28]
push ecx
push eax
push 0
mov eax, 2
lea esi, [esp + 0x60]
call fcn.004171d0
cmp dword [esp + 0xbc], 0
je 0x413d2e
lea edx, [esp + 0x58]
push edx
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
jmp 0x413d39
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
test eax, eax
jne 0x413d44
xor al, al
jmp 0x413e80
mov esi, dword [esp + 0x74]
lea eax, [esp + 0xedc]
mov ecx, eax
mov edx, 0x3ff
sub esi, ecx
jmp 0x413d60
lea ecx, [edx + 0x7ffffbff]
test ecx, ecx
je 0x413d80
movzx ecx, word [esi + eax]
test cx, cx
je 0x413d80
mov word [eax], cx
add eax, 2
sub edx, 1
jne 0x413d60
jmp 0x413d84
test edx, edx
jne 0x413d87
sub eax, 2
xor edx, edx
mov word [eax], dx
cmp byte [esp + 0x16f4], dl
je 0x413d9e
lea eax, [esp + 0xedc]
jmp 0x413dca
lea esi, [esp + 0x1c]
mov eax, ebp
call fcn.0040f650
mov dword [esp + 0x16e8], 0
cmp dword [eax + 0x18], 8
mov dword [esp + 0x14], 1
jb 0x413dc7
mov eax, dword [eax + 4]
jmp 0x413dca
add eax, 4
mov edx, dword [ebp]
mov ecx, dword [edi + 8]
push edx
push ecx
mov ecx, eax
call fcn.00413eb0
mov dword [esp + 0x16e8], 0xffffffff
test byte [esp + 0x14], 1
mov bl, al
je 0x413e18
cmp dword [esp + 0x34], 8
jb 0x413e01
mov edx, dword [esp + 0x20]
push edx
call fcn.00501b8f
add esp, 4
xor eax, eax
mov dword [esp + 0x34], 7
mov dword [esp + 0x30], 0
mov word [esp + 0x20], ax
test bl, bl
je 0x413e7e
cmp byte [esp + 0x16f4], 0
mov byte [edi + 0x84], 0
je 0x413e7e
cmp word [esp + 0xedc], 0
je 0x413e64
lea eax, [esp + 0xedc]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x413e42
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0xee0]
push ecx
lea ecx, [ebp + 4]
call fcn.00401260
jmp 0x413e6c
lea ecx, [ebp + 4]
call fcn.00401970
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xedc]
push edx
push eax
call fcn.00413340
mov al, bl
mov ecx, dword [esp + 0x16e0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x16c8]
xor ecx, esp
call fcn.00501b9a
add esp, 0x16d8
ret 8