Function at 0x403c50
Capabilities:
Get common file path
Get startup folder
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
call fcn.00403270
push 0
push 0x1a
lea ecx, [ebp - 0x210]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edx, [ebp - 0x210]
push edx
call fcn.00403950
add esp, 4
test eax, eax
je 0x403ca8
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, dword [ebp - 4]
push ecx
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 0x1a
lea edx, [ebp - 0x210]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str.MicrosoftWindows
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea ecx, [ebp - 0x210]
push ecx
call fcn.00403950
add esp, 4
test eax, eax
je 0x403cfe
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 4]
push eax
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 0x1a
lea ecx, [ebp - 0x210]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str.Microsoft
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x210]
push eax
call fcn.00403950
add esp, 4
test eax, eax
je 0x403d54
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edx, dword [ebp - 4]
push edx
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 0x2b
lea eax, [ebp - 0x210]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str._bett2f002
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea edx, [ebp - 0x210]
push edx
call fcn.00403950
add esp, 4
test eax, eax
je 0x403daa
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, dword [ebp - 4]
push ecx
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 0x2b
lea edx, [ebp - 0x210]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str.CreativeAudio
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea ecx, [ebp - 0x210]
push ecx
call fcn.00403950
add esp, 4
test eax, eax
je 0x403e00
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 4]
push eax
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 0x1a
lea ecx, [ebp - 0x210]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push str.Identities
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x210]
push eax
call fcn.00403950
add esp, 4
test eax, eax
je 0x403e56
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edx, dword [ebp - 4]
push edx
call fcn.004037a0
add esp, 4
call fcn.004038d0
call fcn.00402290
test eax, eax
je 0x403e74
push 0
push 0x23
lea eax, [ebp - 0x210]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
jmp 0x403e87
push 0
push 0x28
lea ecx, [ebp - 0x210]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edx, [ebp - 0x210]
push edx
call fcn.00403950
add esp, 4
test eax, eax
je 0x403eb8
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, dword [ebp - 4]
push ecx
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 0x28
lea edx, [ebp - 0x210]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x210]
push eax
call fcn.00403950
add esp, 4
test eax, eax
je 0x403efc
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edx, dword [ebp - 4]
push edx
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 7
lea eax, [ebp - 0x210]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [ebp - 0x210]
push ecx
call fcn.00403950
add esp, 4
test eax, eax
je 0x403f40
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 4]
push eax
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 0x18
lea ecx, [ebp - 0x210]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edx, [ebp - 0x210]
push edx
call fcn.00403950
add esp, 4
test eax, eax
je 0x403f84
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, dword [ebp - 4]
push ecx
call fcn.004037a0
add esp, 4
call fcn.004038d0
push 0
push 7
lea edx, [ebp - 0x210]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x210]
push eax
call fcn.00403950
add esp, 4
test eax, eax
je 0x403fc8
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edx, dword [ebp - 4]
push edx
call fcn.004037a0
add esp, 4
call fcn.004038d0
lea eax, [ebp - 0x210]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x214]
mov word [ebp + edx*2 - 0x212], 0
lea eax, [ebp - 0x210]
push eax
call fcn.00403950
add esp, 4
test eax, eax
je 0x40402e
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edx, dword [ebp - 4]
push edx
call fcn.004037a0
add esp, 4
call fcn.004038d0
mov esp, ebp
pop ebp
ret