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

Disassembly:
push 0x5c
mov eax, 0x5ff32dc6
call fcn.5ff1f8cb
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x3c], eax
call fcn.5feec33d
xor edi, edi
mov dword [ebp - 4], edi
push esi
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 2
push eax
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], edi
call fcn.5fefa88b
push esi
mov esi, dword [ebp - 0x24]
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push esi
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
push 0x5c
pop edi
push 0x5ff36ff4
push esi
mov dword [ebp - 0x38], edi
call fcn.5ff21e01
pop ecx
pop ecx
push esi
test eax, eax
je 0x5fefa411
call dword [sym.imp.SHLWAPI.dll_PathSkipRootW]
mov esi, eax
movzx eax, word [esi]
mov dword [ebp - 0x38], eax
jmp 0x5fefa437
call dword [sym.imp.SHLWAPI.dll_PathIsUNCW]
test eax, eax
je 0x5fefa42c
push esi
call dword [sym.imp.SHLWAPI.dll_PathSkipRootW]
push eax
push esi
call dword [sym.imp.USER32.dll_CharPrevW]
jmp 0x5fefa435
push edi
push esi
call fcn.5ff1e8b9
pop ecx
pop ecx
mov esi, eax
xor ebx, ebx
inc ebx
mov edi, 0x5ff36fb4
test esi, esi
je 0x5fefa5b6
test ebx, ebx
je 0x5fefa5b6
push dword [ebp - 0x24]
xor eax, eax
mov word [esi], ax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x5fefa569
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x5fefa50a
cmp eax, 3
je 0x5fefa50a
cmp eax, 5
jne 0x5fefa4d7
mov eax, dword [0x5ff4320c]
cmp eax, 0x5ff4320c
je 0x5fefa4b1
test byte [eax + 0x1c], 1
je 0x5fefa4b1
cmp byte [eax + 0x19], 3
jb 0x5fefa4b1
push 5
push dword [ebp - 0x24]
push edi
push 0x18
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.5fee39e5
add esp, 0x18
mov ax, word [ebp - 0x38]
push esi
mov word [esi], ax
mov dword [ebp - 0x38], 0x5c
call dword [sym.imp.USER32.dll_CharNextW]
push 0x5c
push eax
call fcn.5ff1e8b9
pop ecx
pop ecx
mov esi, eax
jmp 0x5fefa43f
mov ecx, dword [0x5ff4320c]
cmp ecx, 0x5ff4320c
je 0x5fefa506
test byte [ecx + 0x1c], 1
je 0x5fefa506
cmp byte [ecx + 0x19], 2
jb 0x5fefa506
push eax
push dword [ebp - 0x24]
push edi
push 0x19
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.5fee39e5
add esp, 0x18
xor ebx, ebx
jmp 0x5fefa4b1
push dword [ebp - 0x3c]
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ebx, eax
test ebx, ebx
jne 0x5fefa4b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x5ff4320c]
cmp ecx, 0x5ff4320c
je 0x5fefa551
test byte [ecx + 0x1c], 1
je 0x5fefa551
cmp byte [ecx + 0x19], 2
jb 0x5fefa551
push eax
push dword [ebp - 0x24]
push edi
push 0x17
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.5fee39e5
add esp, 0x18
lea ecx, [ebp - 0x24]
call fcn.5fefa77c
lea ecx, [ebp - 0x60]
call fcn.5feec2fb
xor eax, eax
call fcn.5ff1f927
ret
test al, 0x10
jne 0x5fefa4b1
mov ecx, dword [0x5ff4320c]
cmp ecx, 0x5ff4320c
je 0x5fefa5a0
test byte [ecx + 0x1c], 1
je 0x5fefa5a0
cmp byte [ecx + 0x19], 2
jb 0x5fefa5a0
push eax
push dword [ebp - 0x24]
push edi
push 0x1a
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.5fee39e5
add esp, 0x18
lea ecx, [ebp - 0x24]
call fcn.5fefa77c
xor esi, esi
lea ecx, [ebp - 0x60]
call fcn.5feec2fb
mov eax, esi
jmp 0x5fefa563
lea ecx, [ebp - 0x24]
call fcn.5fefa77c
mov esi, ebx
jmp 0x5fefa5aa