Function at 0x466f28
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 0x4a0053
lea eax, [ebp - 0x414]
call fcn.0040b578
push eax
call fcn.0048d758
add esp, 8
lea edx, [ebp - 8]
push edx
call sub.SHELL32.DLL_SHGetMalloc
lea eax, [ebp - 0x814]
call fcn.0046771c
lea eax, [ebp - 0x814]
call fcn.0040ba60
push str.WinRAR.lnk
lea edx, [ebp - 0x814]
push edx
call fcn.0048d67c
add esp, 8
cmp byte [esi + 0x14], 0
je 0x466fdc
lea eax, [ebp - 0x814]
xor edx, edx
call fcn.0040a0c8
test al, al
je 0x466fba
cmp byte [ebp + 8], 0
je 0x466fe8
push edi
push 0
mov eax, 0x537
call fcn.004116e0
mov ecx, eax
lea edx, [ebp - 0x814]
lea eax, [ebp - 0x414]
call fcn.00467644
jmp 0x466fe8
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.0040ba60
push str.WinRAR.lnk
lea edx, [ebp - 0x814]
push edx
call fcn.0048d67c
add esp, 8
cmp byte [esi + 0x15], 0
je 0x467057
push edi
push 0
mov eax, 0x537
call fcn.004116e0
mov ecx, eax
lea edx, [ebp - 0x814]
lea eax, [ebp - 0x414]
call fcn.00467644
jmp 0x467063
lea edx, [ebp - 0x814]
push edx
call sub.KERNEL32.DLL_DeleteFileA
mov ecx, dword [0x49fe5c]
mov eax, 0x38e
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x49fe60]
mov dword [ebp - 0x10], ecx
mov ecx, dword [0x49fe64]
mov dword [ebp - 0xc], ecx
call fcn.004116e0
mov dword [ebp - 0x10], eax
mov eax, 0x38f
call fcn.004116e0
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.0040ba60
push 0x4a0129
lea edx, [ebp - 0x814]
push edx
call fcn.0048d67c
add esp, 8
cmp byte [esi + 0x16], 0
je 0x4671d1
test ebx, ebx
je 0x4670fd
lea ecx, [ebp - 0x814]
push ecx
push ebx
call fcn.0048d758
add esp, 8
push 0
lea eax, [ebp - 0x814]
push eax
call sub.KERNEL32.DLL_CreateDirectoryA
xor ebx, ebx
mov eax, dword [ebx*4 + 0x49fe50]
cmp byte [eax], 0
je 0x4671c5
lea edx, [ebp - 0x814]
push edx
lea ecx, [ebp - 0xc14]
push ecx
call fcn.0048d758
add esp, 8
lea eax, [ebp - 0xc14]
call fcn.0040ba60
push dword [ebp + ebx*4 - 0x14]
lea edx, [ebp - 0xc14]
push edx
call fcn.0048d67c
add esp, 8
push 0x4a03bc
lea ecx, [ebp - 0xc14]
push ecx
call fcn.0048d67c
add esp, 8
test ebx, ebx
jne 0x467180
lea eax, [ebp - 0xc14]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
je 0x467180
cmp byte [ebp + 8], 0
je 0x4671dc
push dword [ebx*4 + 0x49fe50]
lea eax, [ebp - 0x414]
call fcn.0040b578
push eax
call fcn.0048d758
add esp, 8
test ebx, ebx
jne 0x4671a3
mov edx, edi
jmp 0x4671a5
xor edx, edx
push edx
push 0
mov eax, 0x537
call fcn.004116e0
mov ecx, eax
lea edx, [ebp - 0xc14]
lea eax, [ebp - 0x414]
call fcn.00467644
inc ebx
cmp ebx, 3
jl 0x46710d
jmp 0x4671dc
lea eax, [ebp - 0x814]
call fcn.00467754
call fcn.0040f818
test eax, eax
je 0x467321
lea edx, [ebp - 4]
push edx
push 0x17
push 0
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
test eax, eax
jne 0x467321
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.0040ba60
push 0x4a0129
lea edx, [ebp - 0x814]
push edx
call fcn.0048d67c
add esp, 8
cmp byte [esi + 0x16], 0
je 0x467316
push 0
lea ecx, [ebp - 0x814]
push ecx
call sub.KERNEL32.DLL_CreateDirectoryA
xor ebx, ebx
mov eax, dword [ebx*4 + 0x49fe50]
cmp byte [eax], 0
je 0x46730a
lea edx, [ebp - 0x814]
push edx
lea ecx, [ebp - 0x1014]
push ecx
call fcn.0048d758
add esp, 8
lea eax, [ebp - 0x1014]
call fcn.0040ba60
push dword [ebp + ebx*4 - 0x14]
lea edx, [ebp - 0x1014]
push edx
call fcn.0048d67c
add esp, 8
push 0x4a03bc
lea ecx, [ebp - 0x1014]
push ecx
call fcn.0048d67c
add esp, 8
test ebx, ebx
jne 0x4672c5
lea eax, [ebp - 0x1014]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
je 0x4672c5
cmp byte [ebp + 8], 0
je 0x467321
push dword [ebx*4 + 0x49fe50]
lea eax, [ebp - 0x414]
call fcn.0040b578
push eax
call fcn.0048d758
add esp, 8
test ebx, ebx
jne 0x4672e8
mov edx, edi
jmp 0x4672ea
xor edx, edx
push edx
push 0
mov eax, 0x537
call fcn.004116e0
mov ecx, eax
lea edx, [ebp - 0x1014]
lea eax, [ebp - 0x414]
call fcn.00467644
inc ebx
cmp ebx, 3
jl 0x467252
jmp 0x467321
lea eax, [ebp - 0x814]
call fcn.00467754
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