Function at 0x4ac390
Capabilities:
Check if file exists
Check os version
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x20374
call fcn.006ab750
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
call fcn.004af5a0
test al, al
jne 0x4ac4d1
lea eax, [esp + 0x60]
push eax
mov dword [esp + 0x64], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp byte [esp + 0x64], 6
setae al
test al, al
je 0x4ac4d1
mov esi, dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4ac4a4
mov edx, esi
lea esi, [esp + 0x380]
call fcn.004011d0
xor edi, edi
mov ecx, dword [ebp + 0x18]
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push ecx
push esi
push ebx
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x390]
call fcn.005504e0
mov edx, dword [eax]
cmp edx, 2
je 0x4ac4d6
lea eax, [esp + 0x380]
lea esi, [eax + 2]
jmp 0x4ac430
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4ac430
sub eax, esi
sar eax, 1
cmp eax, 0xe6
jbe 0x4ac4b3
push edi
push 0xffff
push 2
lea eax, [esp + 0x24]
push eax
push str.Folder_Path_Too_Long
push str.Selected_folder_path_is_too_long._Please_select_a_different_folder__or_move_the_folder_to_make_the_path_shorter.
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
push ebx
mov edi, 0x34
mov dword [esp + 0x34], 6
mov dword [esp + 0x38], str.Choose_again
mov dword [esp + 0x3c], 7
mov dword [esp + 0x40], str.Cancel
call fcn.004f3610
cmp eax, 6
je 0x4ac3f7
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
xor edi, edi
mov word [esp + 0x380], di
jmp 0x4ac3f9
cmp edx, edi
jne 0x4ac499
mov esi, dword [ebp + 0xc]
lea edx, [esp + 0x380]
call fcn.004011d0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, dword [ebp + 0x14]
xor edi, edi
push edi
mov byte [esp + 0x17], 0
call dword [sym.imp.ole32.dll_CoInitialize]
cmp eax, 0x80010106
je 0x4ac4ee
mov byte [esp + 0x13], 1
mov word [esp + 0x178], di
mov word [esp + 0x10380], di
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp + 0x10]
lea edx, [esp + 0x178]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], ecx
mov cl, byte [esi + 4]
mov dword [esp + 0x38], edx
lea eax, [esp + 0x40]
lea edx, [esp + 0x34]
push eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x58], 0x4ac280
mov byte [esp + 0x40], cl
mov dword [esp + 0x5c], edx
call dword [sym.imp.SHELL32.dll_SHBrowseForFolderW]
mov esi, eax
cmp esi, edi
je 0x4ac620
lea ecx, [esp + 0x10380]
push ecx
push esi
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea eax, [esp + 0x10380]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4ac580
sub eax, edx
lea edx, [esp + 0x14]
sar eax, 1
push edx
mov edi, eax
mov dword [esp + 0x18], 0
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push esi
push eax
call edx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp edi, 0xe6
jbe 0x4ac638
xor eax, eax
push eax
push 0xffff
push 2
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x24]
push eax
push str.Folder_Path_Too_Long
push str.Selected_folder_path_is_too_long._Please_select_a_different_folder__or_move_the_folder_to_make_the_path_shorter.
push ebx
mov edi, 0x34
mov dword [esp + 0x34], 6
mov dword [esp + 0x38], str.Choose_again
mov dword [esp + 0x3c], 7
mov dword [esp + 0x40], str.Cancel
call fcn.004f3610
cmp eax, 6
jne 0x4ac620
mov esi, dword [ebp + 0x14]
xor edi, edi
jmp 0x4ac502
cmp byte [esp + 0x13], 0
je 0x4ac62d
call dword [sym.imp.ole32.dll_CoUninitialize]
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov esi, dword [ebp + 0xc]
lea edx, [esp + 0x10380]
call fcn.00497910
cmp byte [esp + 0x13], 0
je 0x4ac654
call dword [sym.imp.ole32.dll_CoUninitialize]
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x14