Function at 0x4067b0
Capabilities:
Check if file exists
Create directory
Delete file
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xffffff8c
lea eax, [ebp - 0x434]
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
push 0x400
push eax
push 0
mov ebx, 0x45db94
call sub.KERNEL32.dll_GetModuleFileNameA
lea edx, [ebp - 8]
push edx
call sub.SHELL32.DLL_SHGetMalloc
push 0x6a
push esi
call sub.USER32.dll_IsDlgButtonChecked
mov edi, eax
push 0x6b
push esi
call sub.USER32.dll_IsDlgButtonChecked
mov dword [ebp - 0xc], eax
push 0x6c
push esi
call sub.USER32.dll_IsDlgButtonChecked
mov dword [ebp - 0x10], eax
push 0x6d
push esi
call sub.USER32.dll_IsDlgButtonChecked
mov dword [ebp - 0x14], eax
push 0x6e
push esi
call sub.USER32.dll_IsDlgButtonChecked
mov dword [ebp - 0x18], eax
push 0x6f
push esi
call sub.USER32.dll_IsDlgButtonChecked
mov dword [ebp - 0x1c], eax
push 0x80000001
call fcn.0040b9a8
push edi
lea eax, [ebx + 0x130e]
push eax
lea edx, [ebx + 0x1302]
push edx
call fcn.0040ba20
mov ecx, dword [ebp - 0xc]
push ecx
lea eax, [ebx + 0x1322]
push eax
lea edx, [ebx + 0x1316]
push edx
call fcn.0040ba20
mov ecx, dword [ebp - 0x10]
push ecx
lea eax, [ebx + 0x1338]
push eax
lea edx, [ebx + 0x132c]
push edx
call fcn.0040ba20
mov ecx, dword [ebp - 0x14]
push ecx
lea eax, [ebx + 0x1347]
push eax
lea edx, [ebx + 0x1341]
push edx
call fcn.0040ba20
mov ecx, dword [ebp - 0x18]
push ecx
lea eax, [ebx + 0x1356]
push eax
lea edx, [ebx + 0x1350]
push edx
call fcn.0040ba20
mov ecx, dword [ebp - 0x1c]
push ecx
lea eax, [ebx + 0x1369]
push eax
lea edx, [ebx + 0x1363]
push edx
call fcn.0040ba20
push 0x80000000
call fcn.0040b9a8
lea ecx, [ebp - 0x834]
push ecx
call fcn.0040914c
lea eax, [ebp - 0x834]
push eax
call fcn.004080c8
lea edx, [ebx + 0x1373]
push edx
lea ecx, [ebp - 0x834]
push ecx
call fcn.00452e5c
add esp, 8
test edi, edi
je 0x40690e
lea eax, [ebx + 0x137e]
push eax
lea edx, [ebp - 0x834]
push edx
lea ecx, [ebp - 0x434]
push ecx
call fcn.0040670c
jmp 0x40691a
lea eax, [ebp - 0x834]
push eax
call sub.KERNEL32.dll_DeleteFileA
lea edx, [ebp - 4]
push edx
push 0xb
push esi
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
lea ecx, [ebp - 0x834]
push ecx
mov eax, dword [ebp - 4]
push eax
call sub.SHELL32.DLL_SHGetPathFromIDList
mov edx, dword [ebp - 4]
push edx
mov ecx, dword [ebp - 8]
push ecx
mov eax, dword [ecx]
call dword [eax + 0x14]
lea edx, [ebp - 0x834]
push edx
call fcn.004080c8
lea ecx, [ebx + 0x1385]
push ecx
lea eax, [ebp - 0x834]
push eax
call fcn.00452e5c
add esp, 8
cmp dword [ebp - 0xc], 0
je 0x406987
lea edx, [ebx + 0x1390]
push edx
lea ecx, [ebp - 0x834]
push ecx
lea eax, [ebp - 0x434]
push eax
call fcn.0040670c
jmp 0x406993
lea edx, [ebp - 0x834]
push edx
call sub.KERNEL32.dll_DeleteFileA
mov ecx, dword [0x45d14c]
mov dword [ebp - 0x28], ecx
mov ecx, dword [0x45d150]
mov dword [ebp - 0x24], ecx
mov ecx, dword [0x45d154]
mov dword [ebp - 0x20], ecx
push 0x38e
call fcn.00408028
mov dword [ebp - 0x24], eax
push 0x38f
call fcn.00408028
mov dword [ebp - 0x20], eax
lea eax, [ebp - 4]
push eax
push 2
push esi
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
lea edx, [ebp - 0x834]
push edx
mov ecx, dword [ebp - 4]
push ecx
call sub.SHELL32.DLL_SHGetPathFromIDList
mov eax, dword [ebp - 4]
push eax
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x14]
lea eax, [ebp - 0x834]
push eax
call fcn.004080c8
lea edx, [ebx + 0x13bc]
push edx
lea ecx, [ebp - 0x834]
push ecx
call fcn.00452e5c
add esp, 8
cmp dword [ebp - 0x10], 0
je 0x406b01
push 0
lea eax, [ebp - 0x834]
push eax
call sub.KERNEL32.dll_CreateDirectoryA
xor edx, edx
lea edi, [ebp - 0x28]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x34], 0x45d140
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x834]
or ecx, 0xffffffff
lea esi, [ebp - 0xc34]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0xc34]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push eax
call fcn.004080c8
mov edx, dword [edi]
push edx
lea ecx, [ebp - 0xc34]
push ecx
call fcn.00452e5c
add esp, 8
lea eax, [ebx + 0x13c3]
push eax
lea edx, [ebp - 0xc34]
push edx
call fcn.00452e5c
add esp, 8
lea ecx, [ebp - 0x434]
push ecx
call fcn.0040809c
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx]
push esi
push edi
mov esi, eax
xor eax, eax
mov edi, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebx + 0x13c8]
and ecx, 3
lea edx, [ebp - 0xc34]
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push eax
push edx
lea ecx, [ebp - 0x434]
push ecx
call fcn.0040670c
inc dword [ebp - 0x2c]
add dword [ebp - 0x34], 4
add edi, 4
cmp dword [ebp - 0x2c], 3
jl 0x406a3a
jmp 0x406b6d
lea eax, [ebp - 0x834]
push eax
call sub.KERNEL32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x406b6d
lea edx, [ebp - 0x834]
push edx
call fcn.00452eec
pop ecx
mov byte [ebp + eax - 0x833], 0
push 0x1e
push 0
lea ecx, [ebp - 0xc54]
push ecx
call fcn.00452e2c
add esp, 0xc
xor eax, eax
mov dword [ebp - 0xc54], eax
lea edx, [ebp - 0x834]
mov dword [ebp - 0xc50], 3
mov word [ebp - 0xc44], 0x14
mov dword [ebp - 0xc4c], edx
lea ecx, [ebp - 0xc54]
push ecx
call sub.SHELL32.DLL_SHFileOperationA
cmp dword [0x466a14], 2
jne 0x406d21
lea eax, [ebp - 4]
push eax
push 0x17
push esi
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
test eax, eax
jne 0x406d21
lea edx, [ebp - 0x834]
push edx
mov ecx, dword [ebp - 4]
push ecx
call sub.SHELL32.DLL_SHGetPathFromIDList
mov eax, dword [ebp - 4]
push eax
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x14]
lea eax, [ebp - 0x834]
push eax
call fcn.004080c8
lea edx, [ebx + 0x13cf]
push edx
lea ecx, [ebp - 0x834]
push ecx
call fcn.00452e5c
add esp, 8
cmp dword [ebp - 0x10], 0
je 0x406cb5
push 0
lea eax, [ebp - 0x834]
push eax
call sub.KERNEL32.dll_CreateDirectoryA
xor edx, edx
mov edi, 0x45d140
mov dword [ebp - 0x30], edx
lea esi, [ebp - 0x28]
push esi
push edi
xor eax, eax
lea edi, [ebp - 0x834]
or ecx, 0xffffffff
lea esi, [ebp - 0x1054]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x1054]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push eax
call fcn.004080c8
mov edx, dword [esi]
push edx
lea ecx, [ebp - 0x1054]
push ecx
call fcn.00452e5c
add esp, 8
lea eax, [ebx + 0x13d6]
push eax
lea edx, [ebp - 0x1054]
push edx
call fcn.00452e5c
add esp, 8
lea ecx, [ebp - 0x434]
push ecx
call fcn.0040809c
mov edx, dword [edi]
push esi
mov esi, eax
push edi
xor eax, eax
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebx + 0x13db]
and ecx, 3
lea edx, [ebp - 0x1054]
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
push eax
push edx
lea ecx, [ebp - 0x434]
push ecx
call fcn.0040670c
inc dword [ebp - 0x30]
add edi, 4
add esi, 4
cmp dword [ebp - 0x30], 3
jl 0x406bf2
jmp 0x406d21
lea eax, [ebp - 0x834]
push eax
call sub.KERNEL32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x406d21
lea edx, [ebp - 0x834]
push edx
call fcn.00452eec
pop ecx
mov byte [ebp + eax - 0x833], 0
push 0x1e
push 0
lea ecx, [ebp - 0x1074]
push ecx
call fcn.00452e2c
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x1074], eax
lea edx, [ebp - 0x834]
mov dword [ebp - 0x1070], 3
mov word [ebp - 0x1064], 0x14
mov dword [ebp - 0x106c], edx
lea ecx, [ebp - 0x1074]
push ecx
call sub.SHELL32.DLL_SHFileOperationA
push 0x80000001
call fcn.0040b9a8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4