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

Disassembly:
push 0xffffffffffffffff
push 0x48f388
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x28]
push ebp
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push ebx
lea ecx, [esp + 0x1c]
mov ebp, eax
call fcn.00404790
mov dword [esp + 0x2c], 0
cmp dword [esp + 0x20], 0
jg 0x40effd
push 0
lea ecx, [esp + 0x1c]
call fcn.004010b0
movzx eax, word [ebx + ebp*2 - 2]
mov edi, dword [esp + 0x18]
cmp ax, 0x5c
je 0x40f012
cmp ax, 0x2f
jne 0x40f01a
xor eax, eax
mov word [edi + ebp*2 - 2], ax
dec ebp
mov esi, ebp
lea esp, [esp]
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40f095
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40f043
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x40f064
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push edi
call ebx
cmp eax, 0xffffffff
je 0x40f09b
test al, 0x10
jne 0x40f09b
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebx, dword [esp + 0x34]
test esi, esi
jle 0x40f087
jmp 0x40f070
movzx eax, word [edi + esi*2]
cmp ax, 0x2f
je 0x40f085
cmp ax, 0x5c
je 0x40f085
dec esi
test esi, esi
jg 0x40f070
test esi, esi
je 0x40f1b9
xor ecx, ecx
mov word [edi + esi*2], cx
jmp 0x40f020
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push edi
call ebx
test al, 0x10
jne 0x40f0e5
lea eax, [esp + 0x10]
push eax
push edi
call fcn.0040e420
add esp, 8
test eax, eax
je 0x40f0e5
mov dword [esp + 0x2c], 0xffffffff
push edi
call fcn.0046d942
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40f129
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40f10c
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
jmp 0x40f202
push edi
call ebx
cmp eax, 0xffffffff
je 0x40f129
test al, 0x10
jne 0x40f129
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
jmp 0x40f202
cmp esi, ebp
jge 0x40f1d8
mov edx, dword [esp + 0x34]
mov ecx, ebp
sub ecx, esi
inc ecx
push ecx
lea eax, [edx + esi*2]
push eax
lea ebx, [edi + esi*2]
push ebx
call fcn.0046de90
add esp, 0xc
cmp word [ebx], 0
je 0x40f152
inc esi
cmp word [edi + esi*2], 0
je 0x40f178
lea esp, [esp]
movzx eax, word [edi + esi*2]
cmp ax, 0x5c
je 0x40f178
cmp ax, 0x2f
je 0x40f178
inc esi
cmp word [edi + esi*2], 0
jne 0x40f160
xor ecx, ecx
push ecx
push edi
mov word [edi + esi*2], cx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x40f1af
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40f0ff
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40f1af
test al, 0x10
je 0x40f118
cmp esi, ebp
jl 0x40f131
jmp 0x40f1d8
cmp ebp, 2
jne 0x40f201
mov ax, word [ebx]
or ax, 0x20
cmp ax, 0x61
jb 0x40f201
cmp ax, 0x7a
ja 0x40f201
cmp word [ebx + 2], 0x3a
jne 0x40f201
mov dword [esp + 0x2c], 0xffffffff
push edi
call fcn.0046d942
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret
push ebx
push 0xc
push 1
call fcn.0044a5f0
mov dword [esp + 0x38], 0xffffffff
push edi
call fcn.0046d942
mov ecx, dword [esp + 0x34]
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret