Function at 0x401540
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x268
lea eax, [ebp - 8]
mov dword [ebp - 0x214], esp
mov dword [ebp - 0x224], 0x47c700
mov dword [ebp - 0x220], 0x47d070
mov dword [ebp - 0x218], 0x4018d5
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x23c]
mov dword [esp], eax
call fcn.0040ed20
lea eax, [ebp - 0x10c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 5
mov dword [esp], 0
mov dword [esp + 0x10], eax
mov dword [ebp - 0x238], 0xffffffff
call dword [sym.imp.SHELL32.DLL_SHGetFolderPathA]
sub esp, 0x14
test eax, eax
jne 0x401830
lea eax, [ebp - 0x200]
lea ecx, [ebp - 0x204]
mov dword [esp + 4], eax
lea eax, [ebp - 0x10c]
mov dword [esp], eax
mov dword [ebp - 0x238], 0xffffffff
call fcn.00452110
lea ecx, [ebp - 0x204]
sub esp, 8
mov dword [esp + 4], 0xc
mov dword [esp], str.Read_me.txt
mov dword [ebp - 0x238], 1
call fcn.00450e70
lea ecx, [ebp - 0x194]
sub esp, 8
call fcn.00471c70
mov eax, dword [0x48b0d4]
mov byte [ebp - 0x120], 0
lea ecx, [ebp - 0x200]
mov dword [ebp - 0x194], 0x48c410
mov dword [ebp - 0x124], 0
mov byte [ebp - 0x11f], 0
mov dword [ebp - 0x11c], 0
add ecx, dword [eax - 0xc]
mov dword [ebp - 0x200], eax
mov eax, dword [0x48b0d8]
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x110], 0
mov dword [ecx], eax
mov dword [esp], 0
mov dword [ebp - 0x238], 3
call fcn.004734a0
lea ecx, [ebp - 0x1fc]
sub esp, 4
mov dword [ebp - 0x194], 0x48b980
mov dword [ebp - 0x238], 4
mov dword [ebp - fcn.004650d0], 0x48b96c
call fcn.00457e20
lea eax, [ebp - 0x1fc]
lea ecx, [ebp - 0x194]
mov dword [esp], eax
mov dword [ebp - 0x238], 5
call fcn.004734a0
sub esp, 4
lea ecx, [ebp - 0x1fc]
mov dword [esp + 4], 0x30
mov eax, dword [ebp - 0x204]
mov dword [esp], eax
call fcn.00456970
sub esp, 8
test eax, eax
lea ecx, [ebp - 0x200]
mov eax, dword [ebp - 0x200]
je 0x401894
add ecx, dword [eax - 0xc]
mov dword [esp], 0
mov dword [ebp - 0x238], 5
call fcn.004734f0
lea ecx, [ebp - 0x1d8]
sub esp, 4
call fcn.004270d0
test al, al
je 0x401786
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, dword [eax - 0xc]
mov dword [esp + 4], eax
lea eax, [ebp - 0x200]
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [ebp - 0x238], 2
call fcn.00475470
lea ecx, [ebp - 0x1fc]
call fcn.00456ae0
test eax, eax
je 0x4018b0
lea ecx, [ebp - 0x1fc]
mov dword [ebp - 0x194], 0x48b980
mov dword [ebp - fcn.004581b0], 0x48b708
mov dword [ebp - 0x238], 0
mov dword [ebp - fcn.004650d0], 0x48b96c
call fcn.00456ae0
lea ecx, [ebp - 0x1d8]
call fcn.00456050
lea ecx, [ebp - 0x1e0]
mov dword [ebp - method.c_streambufIwSt11char_traitsIwEE.virtual_0], vtable.c_streambufIwSt11char_traitsIwEE.0
call fcn.004708c0
mov eax, dword [0x48b0d4]
mov edx, dword [0x48b0d8]
lea ecx, [ebp - 0x194]
mov dword [ebp - 0x200], eax
mov eax, dword [eax - 0xc]
mov dword [ebp + eax - 0x200], edx
mov dword [ebp - 0x194], 0x48c410
call fcn.00471d10
mov ecx, dword [ebp - 0x204]
mov eax, 0xffffffff
lock xadd dword [ecx - 4], eax
test eax, eax
jle 0x401870
lea eax, [ebp - 0x23c]
mov dword [esp], eax
call fcn.0040ee90
leave
ret
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error
mov dword [esp + 4], str.Failed_to_get_Documents_folder_path_
mov dword [esp], 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea eax, [ebp - 0x23c]
sub esp, 0x10
mov dword [esp], eax
call fcn.0040ee90
leave
ret
lea eax, [ebp - 0x200]
sub ecx, 0xc
mov dword [esp], eax
call fcn.00450a50
lea eax, [ebp - 0x23c]
sub esp, 4
mov dword [esp], eax
call fcn.0040ee90
leave
ret
add ecx, dword [eax - 0xc]
mov eax, dword [ecx + 0x14]
or eax, 4
mov dword [esp], eax
call fcn.004734f0
jmp 0x401739
mov eax, dword [ebp - 0x200]
lea ecx, [ebp - 0x200]
add ecx, dword [eax - 0xc]
mov eax, dword [ecx + 0x14]
or eax, 4
mov dword [esp], eax
call fcn.004734f0
sub esp, 4
jmp 0x401786