Function at 0x4455a3
Capabilities:
Check if file exists
Create directory
Get common file path
Get file attributes
Set file attributes

Disassembly:
sub esp, 0x44c
push ebx
push ebp
push esi
push edi
push dword [0x48bcac]
xor ebx, ebx
mov edi, edx
push dword [0x48bca4]
push ebx
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
mov esi, 0x48bca0
mov ecx, esi
call fcn.00403c53
push esi
mov esi, 0x48beb8
mov ecx, esi
call fcn.004035f7
push 0x5c
mov ecx, esi
call fcn.004100b9
test eax, eax
jle 0x445607
mov ecx, dword [0x48bebc]
test ecx, ecx
je 0x445607
cmp eax, dword [0x48bec0]
jae 0x445607
xor edx, edx
mov dword [0x48bec0], eax
mov word [ecx + eax*2], dx
push 0x48d8d0
call dword [sym.imp.KERNEL32.DLL_GetTimeZoneInformation]
lea ecx, [esp + 0x240]
call fcn.00403195
lea ecx, [esp + 0x28]
call fcn.00403195
push dword [esp + 0x244]
push ebx
push ebx
push 0x1a
push ebx
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea ecx, [esp + 0x240]
call fcn.00403c53
push dword [esp + 0x244]
lea eax, [esp + 0x2c]
push str._sMetaQuotes
push eax
call fcn.004011fb
mov ebp, dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
add esp, 0xc
push dword [esp + 0x2c]
call ebp
mov esi, dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
mov ebx, dword [sym.imp.KERNEL32.DLL_SetFileAttributesW]
cmp eax, 0xffffffff
jne 0x445685
push 0
push dword [esp + 0x30]
call esi
jmp 0x4456a6
push 0x80
push dword [esp + 0x30]
call ebx
mov ecx, dword [esp + 0x2c]
call fcn.0041001b
test al, al
jne 0x4456a6
mov ecx, dword [esp + 0x2c]
call fcn.0040fbb8
push dword [esp + 0x244]
lea eax, [esp + 0x2c]
push str._sMetaQuotesWebInstall
push eax
call fcn.004011fb
add esp, 0xc
push dword [esp + 0x2c]
call ebp
cmp eax, 0xffffffff
jne 0x4456d4
push 0
push dword [esp + 0x30]
call esi
jmp 0x4456f5
push 0x80
push dword [esp + 0x30]
call ebx
mov ecx, dword [esp + 0x2c]
call fcn.0041001b
test al, al
jne 0x4456f5
mov ecx, dword [esp + 0x2c]
call fcn.0040fbb8
push dword [esp + 0x244]
lea eax, [esp + 0x2c]
push str._sMetaQuotesCrashes
push eax
call fcn.004011fb
add esp, 0xc
push dword [esp + 0x2c]
call ebp
cmp eax, 0xffffffff
jne 0x445724
xor ebx, ebx
push ebx
push dword [esp + 0x30]
call esi
jmp 0x445731
push 0x80
push dword [esp + 0x30]
call ebx
xor ebx, ebx
sub esp, 0x18
push dword [esp + 0x44]
call fcn.0040f96d
push str.core.exe
mov ecx, 0x4b4394
call fcn.00402fc9
push ecx
push str.main
push ebx
mov ecx, 0x4b3d30
call fcn.0040329c
push 1
push 0x46bbe8
push str.acoaoprbuhxvkfywgweedlovptddahwozl
push 0x46bc60
push ecx
call fcn.0043e32a
sub esp, 0xc
call fcn.00442acf
sub esp, 0x10
call fcn.004416ee
call fcn.0040f4aa
xor ebp, ebp
push 0x44589e
inc ebp
push ebp
call dword [sym.imp.KERNEL32.DLL_AddVectoredExceptionHandler]
push 0x4458c1
call dword [sym.imp.KERNEL32.DLL_SetUnhandledExceptionFilter]
test edi, edi
je 0x4457b1
xor eax, eax
cmp word [edi], bx
cmovne eax, edi
jmp 0x4457b3
mov eax, ebx
push ecx
push eax
call fcn.00447e19
call fcn.00447f17
push eax
call fcn.004416a0
push ecx
call fcn.00442aad
cmp dword [0x48d8cc], 0
jne 0x4457f9
lea eax, [esp + 0x10]
mov dword [esp + 0x18], ebp
push eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x20], ebx
push eax
push 0x48d8cc
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcW]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 8
push eax
mov dword [esp + 0x18], 4
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, dword [0x48c6d0]
mov esi, 0x46c58c
mov edi, 0x48d8bc
mov dword [0x4b3d1c], ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [0x48c6cc]
jmp 0x44585c
mov eax, dword [esi]
test eax, eax
je 0x445859
mov eax, dword [eax + 0x1c]
push ebp
call eax
mov ecx, dword [0x48c6d0]
add esi, 4
cmp esi, ecx
jb 0x445847
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
push 0xc
mov dword [0x4b3d20], eax
mov dword [0x4b3d24], ebx
call fcn.0041a77c
pop ecx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [0x4b3d24], eax
mov dword [0x4b3d28], ebx
call fcn.0040ed58
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x44c
ret