Function at 0x466d8c
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, 0xffffffec
push ebx
push esi
push edi
mov edi, ecx
mov ebx, edx
mov esi, eax
push 0x400
lea eax, [ebp - 0x414]
push eax
push 0
call sub.KERNEL32.DLL_GetModuleFileNameA
push 0x49ffdb
lea eax, [ebp - 0x414]
call fcn.0040b590
push eax
call fcn.0048d424
add esp, 8
lea edx, [ebp - 8]
push edx
call sub.SHELL32.DLL_SHGetMalloc
lea eax, [ebp - 0x814]
call fcn.00467580
lea eax, [ebp - 0x814]
call fcn.0040ba78
push 0x4a03c7
lea edx, [ebp - 0x814]
push edx
call fcn.0048d348
add esp, 8
cmp byte [esi + 0x14], 0
je 0x466e40
lea eax, [ebp - 0x814]
xor edx, edx
call fcn.0040a0e0
test al, al
je 0x466e1e
cmp byte [ebp + 8], 0
je 0x466e4c
push edi
push 0
mov eax, 0x537
call fcn.004117b8
mov ecx, eax
lea edx, [ebp - 0x814]
lea eax, [ebp - 0x414]
call fcn.004674a8
jmp 0x466e4c
lea edx, [ebp - 0x814]
push edx
call sub.KERNEL32.DLL_DeleteFileA
lea ecx, [ebp - 4]
push ecx
push 0xb
push 0
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
lea eax, [ebp - 0x814]
push eax
push dword [ebp - 4]
call sub.SHELL32.DLL_SHGetPathFromIDListA
push dword [ebp - 4]
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [edx]
call dword [ecx + 0x14]
lea eax, [ebp - 0x814]
call fcn.0040ba78
push 0x4a03c7
lea edx, [ebp - 0x814]
push edx
call fcn.0048d348
add esp, 8
cmp byte [esi + 0x15], 0
je 0x466ebb
push edi
push 0
mov eax, 0x537
call fcn.004117b8
mov ecx, eax
lea edx, [ebp - 0x814]
lea eax, [ebp - 0x414]
call fcn.004674a8
jmp 0x466ec7
lea edx, [ebp - 0x814]
push edx
call sub.KERNEL32.DLL_DeleteFileA
mov ecx, dword [0x49fde4]
mov eax, 0x38e
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x49fde8]
mov dword [ebp - 0x10], ecx
mov ecx, dword [0x49fdec]
mov dword [ebp - 0xc], ecx
call fcn.004117b8
mov dword [ebp - 0x10], eax
mov eax, 0x38f
call fcn.004117b8
mov dword [ebp - 0xc], eax
lea edx, [ebp - 4]
push edx
push 2
push 0
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
lea ecx, [ebp - 0x814]
push ecx
push dword [ebp - 4]
call sub.SHELL32.DLL_SHGetPathFromIDListA
push dword [ebp - 4]
mov eax, dword [ebp - 8]
push eax
mov edx, dword [eax]
call dword [edx + 0x14]
lea eax, [ebp - 0x814]
call fcn.0040ba78
push 0x4a0062
lea edx, [ebp - 0x814]
push edx
call fcn.0048d348
add esp, 8
cmp byte [esi + 0x16], 0
je 0x467035
test ebx, ebx
je 0x466f61
lea ecx, [ebp - 0x814]
push ecx
push ebx
call fcn.0048d424
add esp, 8
push 0
lea eax, [ebp - 0x814]
push eax
call sub.KERNEL32.DLL_CreateDirectoryA
xor ebx, ebx
mov eax, dword [ebx*4 + 0x49fdd8]
cmp byte [eax], 0
je 0x467029
lea edx, [ebp - 0x814]
push edx
lea ecx, [ebp - 0xc14]
push ecx
call fcn.0048d424
add esp, 8
lea eax, [ebp - 0xc14]
call fcn.0040ba78
push dword [ebp + ebx*4 - 0x14]
lea edx, [ebp - 0xc14]
push edx
call fcn.0048d348
add esp, 8
push 0x4a03cd
lea ecx, [ebp - 0xc14]
push ecx
call fcn.0048d348
add esp, 8
test ebx, ebx
jne 0x466fe4
lea eax, [ebp - 0xc14]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
je 0x466fe4
cmp byte [ebp + 8], 0
je 0x467040
push dword [ebx*4 + 0x49fdd8]
lea eax, [ebp - 0x414]
call fcn.0040b590
push eax
call fcn.0048d424
add esp, 8
test ebx, ebx
jne 0x467007
mov edx, edi
jmp 0x467009
xor edx, edx
push edx
push 0
mov eax, 0x537
call fcn.004117b8
mov ecx, eax
lea edx, [ebp - 0xc14]
lea eax, [ebp - 0x414]
call fcn.004674a8
inc ebx
cmp ebx, 3
jl 0x466f71
jmp 0x467040
lea eax, [ebp - 0x814]
call fcn.004675b8
call fcn.0040f8f0
test eax, eax
je 0x467185
lea edx, [ebp - 4]
push edx
push 0x17
push 0
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
test eax, eax
jne 0x467185
lea ecx, [ebp - 0x814]
push ecx
push dword [ebp - 4]
call sub.SHELL32.DLL_SHGetPathFromIDListA
push dword [ebp - 4]
mov eax, dword [ebp - 8]
push eax
mov edx, dword [eax]
call dword [edx + 0x14]
lea eax, [ebp - 0x814]
call fcn.0040ba78
push 0x4a0062
lea edx, [ebp - 0x814]
push edx
call fcn.0048d348
add esp, 8
cmp byte [esi + 0x16], 0
je 0x46717a
push 0
lea ecx, [ebp - 0x814]
push ecx
call sub.KERNEL32.DLL_CreateDirectoryA
xor ebx, ebx
mov eax, dword [ebx*4 + 0x49fdd8]
cmp byte [eax], 0
je 0x46716e
lea edx, [ebp - 0x814]
push edx
lea ecx, [ebp - 0x1014]
push ecx
call fcn.0048d424
add esp, 8
lea eax, [ebp - 0x1014]
call fcn.0040ba78
push dword [ebp + ebx*4 - 0x14]
lea edx, [ebp - 0x1014]
push edx
call fcn.0048d348
add esp, 8
push 0x4a03cd
lea ecx, [ebp - 0x1014]
push ecx
call fcn.0048d348
add esp, 8
test ebx, ebx
jne 0x467129
lea eax, [ebp - 0x1014]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
je 0x467129
cmp byte [ebp + 8], 0
je 0x467185
push dword [ebx*4 + 0x49fdd8]
lea eax, [ebp - 0x414]
call fcn.0040b590
push eax
call fcn.0048d424
add esp, 8
test ebx, ebx
jne 0x46714c
mov edx, edi
jmp 0x46714e
xor edx, edx
push edx
push 0
mov eax, 0x537
call fcn.004117b8
mov ecx, eax
lea edx, [ebp - 0x1014]
lea eax, [ebp - 0x414]
call fcn.004674a8
inc ebx
cmp ebx, 3
jl 0x4670b6
jmp 0x467185
lea eax, [ebp - 0x814]
call fcn.004675b8
mov edx, dword [ebp - 8]
push edx
mov ecx, dword [edx]
call dword [ecx + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4