Function at 0x7cf7e20e
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
push 1
pop edi
mov eax, dword [ebp + 0x14]
push ebx
mov eax, dword [eax]
mov dword [esi + 0x508], edi
mov dword [ebp + 8], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 0xc
cmp eax, 0x104
jle 0x7cf7e24a
mov dword [ebp + 0x10], 0xce
jmp 0x7cf7e2fb
push 0
push ebx
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
test eax, eax
mov dword [ebp + 0x10], eax
je 0x7cf7e272
push 0
push ebx
push 5
push 8
call sym.SHELL32.dll_SHChangeNotify
and dword [ebp + 0x10], 0
jmp 0x7cf7e2fb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0xb7
xor edx, edx
cmp eax, ecx
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
je 0x7cf7e2e6
cmp eax, edi
je 0x7cf7e2ca
cmp eax, 0x11a
je 0x7cf7e2ca
cmp dword [ebp + 8], 0xffffffff
je 0x7cf7e2c5
test byte [ebp + 9], 4
je 0x7cf7e2c5
push edx
push ebx
call sym.SHELL32.dll_Ordinal_93
test eax, eax
mov dword [ebp - 4], eax
jne 0x7cf7e2bb
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x7cf7e2e9
and dword [ebp + 0x10], 0
and byte [ebp + 9], 0xfb
jmp 0x7cf7e2e9
mov dword [ebp + 0x10], eax
jmp 0x7cf7e2e9
push edx
push ebx
call sym.SHELL32.dll_Ordinal_93
test eax, eax
mov dword [ebp - 4], eax
jne 0x7cf7e2e9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x10], eax
mov dword [ebp - 8], eax
jmp 0x7cf7e2e9
mov dword [ebp + 0x10], ecx
cmp dword [ebp - 4], 0
jne 0x7cf7e2fb
cmp dword [ebp + 0x10], 0
je 0x7cf7e2fb
mov eax, dword [ebp - 8]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], 0x7b
jne 0x7cf7e308
mov dword [ebp + 0x10], 0xb7
mov eax, dword [ebp + 0x10]
sub eax, 0
je 0x7cf7e4a1
sub eax, 5
je 0x7cf7e323
sub eax, 0x6b
je 0x7cf7e323
sub eax, 0x47
jne 0x7cf7e3a1
cmp dword [ebp + 0x1c], 0
jne 0x7cf7e356
push dword [ebp + 0x14]
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0xc]
push 0x100
push esi
call fcn.7cf7e08e
mov ecx, eax
dec ecx
je 0x7cf7e356
dec ecx
je 0x7cf7e3d2
dec ecx
dec ecx
jne 0x7cf7e3b6
mov dword [ebp + 0x1c], edi
jmp 0x7cf7e21f
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x7cf7e3f3
mov ax, word [ebx]
push 0
dec eax
and eax, 0x1f
push eax
call sym.SHELL32.dll_RealDriveType
cmp eax, 2
jne 0x7cf7e3e5
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsSameRootW]
test eax, eax
jne 0x7cf7e3e5
cmp dword [ebp + 0x10], 0x70
jne 0x7cf7e3e5
push eax
push 0x70
push ebx
push esi
call fcn.7cf7d3f2
test eax, eax
jne 0x7cf7e3dd
jmp 0x7cf7e21f
sub eax, 0x17
je 0x7cf7e3c0
sub eax, 0x3f9
je 0x7cf7e40d
or byte [ebp + 0x12], 1
jmp 0x7cf7e4dc
sub ecx, 3
je 0x7cf7e3ce
jmp 0x7cf7e4df
add esi, 0x58
push esi
call fcn.7cf7a9ac
jmp 0x7cf7e4dc
push 7
jmp 0x7cf7e3d7
mov dword [esi + 0x28], edi
push 2
pop eax
jmp 0x7cf7e4df
mov dword [esi + 0x28], edi
jmp 0x7cf7e4df
push 0x300
push 2
push 0x10005
jmp 0x7cf7e403
test al, 0x10
jne 0x7cf7e415
push 0x300
push 2
push 0x1007e
push ebx
push dword [ebp + 0xc]
push esi
call fcn.7cf7d1ad
mov dword [esi + 0x28], edi
jmp 0x7cf7e4dc
mov eax, dword [esi + 0x98]
push 0
push dword [ebp + 0x18]
xor ecx, ecx
cmp dword [eax + 8], ecx
lea eax, [esi + 0x18]
push ebx
push dword [ebp + 0x14]
setne cl
push dword [ebp + 0xc]
push 0x10
push ecx
push dword [esi]
push eax
push esi
push dword [esi + 0x14]
call fcn.7cf7bff9
dec eax
dec eax
je 0x7cf7e47f
sub eax, 4
je 0x7cf7e469
dec eax
jne 0x7cf7e4dc
lea eax, [esi + 0x58]
push eax
call fcn.7cf7a9ac
mov eax, dword [esi + 0x50]
mov dword [ebp + 0x10], 7
mov dword [eax + 0x12], edi
jmp 0x7cf7e488
and dword [ebp + 0x10], 0
mov dword [esi + 0x2c], edi
mov esi, dword [esi + 0x20]
test esi, esi
je 0x7cf7e4dc
push esi
call fcn.7cf7fdff
jmp 0x7cf7e4dc
mov eax, dword [esi + 0x50]
mov dword [eax + 0x12], edi
mov dword [esi + 0x28], edi
mov esi, dword [esi + 0x98]
test byte [esi + 0x30], 4
jne 0x7cf7e4dc
mov esi, dword [esi + 0x34]
test esi, esi
je 0x7cf7e4dc
or dword [esi + 0x30], 2
jmp 0x7cf7e4dc
push dword [ebp + 8]
push ebx
call fcn.7cf7d82a
push ebx
push dword [ebp + 0xc]
call fcn.7cf7cb78
mov eax, dword [esi + 0x20]
test eax, eax
je 0x7cf7e4dc
mov esi, dword [esi + 0x98]
cmp dword [esi + 8], 0
jne 0x7cf7e4dc
test esi, esi
je 0x7cf7e4d0
test byte [esi + 0x30], 4
jne 0x7cf7e4dc
push 0
push ebx
push dword [ebp + 0xc]
push eax
call fcn.7cf7f942
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
leave
ret 0x18