Function at 0x4670b8
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 0x4a00c3
lea eax, [ebp - 0x414]
call fcn.0040b578
push eax
call fcn.0048d8e8
add esp, 8
lea edx, [ebp - 8]
push edx
call sub.SHELL32.DLL_SHGetMalloc
lea eax, [ebp - 0x814]
call fcn.004678ac
lea eax, [ebp - 0x814]
call fcn.0040ba60
push str.WinRAR.lnk
lea edx, [ebp - 0x814]
push edx
call fcn.0048d80c
add esp, 8
cmp byte [esi + 0x14], 0
je 0x46716c
lea eax, [ebp - 0x814]
xor edx, edx
call fcn.0040a0c8
test al, al
je 0x46714a
cmp byte [ebp + 8], 0
je 0x467178
push edi
push 0
mov eax, 0x537
call fcn.004116e8
mov ecx, eax
lea edx, [ebp - 0x814]
lea eax, [ebp - 0x414]
call fcn.004677d4
jmp 0x467178
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.0048d80c
add esp, 8
cmp byte [esi + 0x15], 0
je 0x4671e7
push edi
push 0
mov eax, 0x537
call fcn.004116e8
mov ecx, eax
lea edx, [ebp - 0x814]
lea eax, [ebp - 0x414]
call fcn.004677d4
jmp 0x4671f3
lea edx, [ebp - 0x814]
push edx
call sub.KERNEL32.DLL_DeleteFileA
mov ecx, dword [0x49fecc]
mov eax, 0x38e
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x49fed0]
mov dword [ebp - 0x10], ecx
mov ecx, dword [0x49fed4]
mov dword [ebp - 0xc], ecx
call fcn.004116e8
mov dword [ebp - 0x10], eax
mov eax, 0x38f
call fcn.004116e8
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 0x4a0199
lea edx, [ebp - 0x814]
push edx
call fcn.0048d80c
add esp, 8
cmp byte [esi + 0x16], 0
je 0x467361
test ebx, ebx
je 0x46728d
lea ecx, [ebp - 0x814]
push ecx
push ebx
call fcn.0048d8e8
add esp, 8
push 0
lea eax, [ebp - 0x814]
push eax
call sub.KERNEL32.DLL_CreateDirectoryA
xor ebx, ebx
mov eax, dword [ebx*4 + 0x49fec0]
cmp byte [eax], 0
je 0x467355
lea edx, [ebp - 0x814]
push edx
lea ecx, [ebp - 0xc14]
push ecx
call fcn.0048d8e8
add esp, 8
lea eax, [ebp - 0xc14]
call fcn.0040ba60
push dword [ebp + ebx*4 - 0x14]
lea edx, [ebp - 0xc14]
push edx
call fcn.0048d80c
add esp, 8
push 0x4a042c
lea ecx, [ebp - 0xc14]
push ecx
call fcn.0048d80c
add esp, 8
test ebx, ebx
jne 0x467310
lea eax, [ebp - 0xc14]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
je 0x467310
cmp byte [ebp + 8], 0
je 0x46736c
push dword [ebx*4 + 0x49fec0]
lea eax, [ebp - 0x414]
call fcn.0040b578
push eax
call fcn.0048d8e8
add esp, 8
test ebx, ebx
jne 0x467333
mov edx, edi
jmp 0x467335
xor edx, edx
push edx
push 0
mov eax, 0x537
call fcn.004116e8
mov ecx, eax
lea edx, [ebp - 0xc14]
lea eax, [ebp - 0x414]
call fcn.004677d4
inc ebx
cmp ebx, 3
jl 0x46729d
jmp 0x46736c
lea eax, [ebp - 0x814]
call fcn.004678e4
call fcn.0040f820
test eax, eax
je 0x4674b1
lea edx, [ebp - 4]
push edx
push 0x17
push 0
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
test eax, eax
jne 0x4674b1
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 0x4a0199
lea edx, [ebp - 0x814]
push edx
call fcn.0048d80c
add esp, 8
cmp byte [esi + 0x16], 0
je 0x4674a6
push 0
lea ecx, [ebp - 0x814]
push ecx
call sub.KERNEL32.DLL_CreateDirectoryA
xor ebx, ebx
mov eax, dword [ebx*4 + 0x49fec0]
cmp byte [eax], 0
je 0x46749a
lea edx, [ebp - 0x814]
push edx
lea ecx, [ebp - 0x1014]
push ecx
call fcn.0048d8e8
add esp, 8
lea eax, [ebp - 0x1014]
call fcn.0040ba60
push dword [ebp + ebx*4 - 0x14]
lea edx, [ebp - 0x1014]
push edx
call fcn.0048d80c
add esp, 8
push 0x4a042c
lea ecx, [ebp - 0x1014]
push ecx
call fcn.0048d80c
add esp, 8
test ebx, ebx
jne 0x467455
lea eax, [ebp - 0x1014]
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
je 0x467455
cmp byte [ebp + 8], 0
je 0x4674b1
push dword [ebx*4 + 0x49fec0]
lea eax, [ebp - 0x414]
call fcn.0040b578
push eax
call fcn.0048d8e8
add esp, 8
test ebx, ebx
jne 0x467478
mov edx, edi
jmp 0x46747a
xor edx, edx
push edx
push 0
mov eax, 0x537
call fcn.004116e8
mov ecx, eax
lea edx, [ebp - 0x1014]
lea eax, [ebp - 0x414]
call fcn.004677d4
inc ebx
cmp ebx, 3
jl 0x4673e2
jmp 0x4674b1
lea eax, [ebp - 0x814]
call fcn.004678e4
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