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

Disassembly:
push 0xffffffffffffffff
push 0x494128
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.00457190
mov dword [esp + 0x2c], 0
movzx eax, word [ebx + ebp*2 - 2]
mov edi, dword [esp + 0x18]
cmp ax, 0x5c
je 0x407db0
cmp ax, 0x2f
jne 0x407db8
xor eax, eax
mov word [edi + ebp*2 - 2], ax
dec ebp
mov esi, ebp
lea ebx, [ebx]
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x407e35
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x407de3
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x407e04
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push edi
call ebx
cmp eax, 0xffffffff
je 0x407e3b
test al, 0x10
jne 0x407e3b
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebx, dword [esp + 0x34]
test esi, esi
jle 0x407e27
jmp 0x407e10
movzx eax, word [edi + esi*2]
cmp ax, 0x2f
je 0x407e25
cmp ax, 0x5c
je 0x407e25
dec esi
test esi, esi
jg 0x407e10
test esi, esi
je 0x407fa0
xor ecx, ecx
mov word [edi + esi*2], cx
jmp 0x407dc0
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 0x407e89
lea eax, [esp + 0x10]
push eax
push edi
call fcn.00407c30
add esp, 8
test eax, eax
je 0x407e89
mov dword [esp + 0x2c], 0xffffffff
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0047247a
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 0x407ed9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x407ea6
push eax
jmp 0x407eb7
push edi
call ebx
cmp eax, 0xffffffff
je 0x407ed9
test al, 0x10
jne 0x407ed9
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push 0xc
push 1
call fcn.0044b160
mov dword [esp + 0x38], 0xffffffff
mov edx, dword [esp + 0x24]
push edx
jmp 0x408001
cmp esi, ebp
jge 0x407f5b
lea ecx, [ecx]
mov ecx, dword [esp + 0x34]
mov eax, ebp
sub eax, esi
inc eax
push eax
lea edx, [ecx + esi*2]
push edx
lea ebx, [edi + esi*2]
push ebx
call fcn.00472e70
add esp, 0xc
cmp word [ebx], 0
je 0x407f01
inc esi
cmp word [edi + esi*2], 0
je 0x407f28
jmp 0x407f10
movzx eax, word [edi + esi*2]
cmp ax, 0x5c
je 0x407f28
cmp ax, 0x2f
je 0x407f28
inc esi
cmp word [edi + esi*2], 0
jne 0x407f10
xor eax, eax
push eax
push edi
mov word [edi + esi*2], ax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x407f57
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x407f88
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x407f57
test al, 0x10
je 0x407f92
cmp esi, ebp
jl 0x407ee0
mov dword [esp + 0x2c], 0xffffffff
mov edx, dword [esp + 0x18]
push edx
call fcn.0047247a
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 eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
jmp 0x407feb
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
jmp 0x407feb
cmp ebp, 2
jne 0x407fea
mov ax, word [ebx]
or ax, 0x20
cmp ax, 0x61
jb 0x407fea
cmp ax, 0x7a
ja 0x407fea
cmp word [ebx + 2], 0x3a
jne 0x407fea
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x18]
push eax
call fcn.0047247a
add esp, 4
pop edi
pop esi
lea eax, [ebp - 1]
pop ebp
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret
push ebx
push 0xc
push 1
call fcn.0044b160
mov dword [esp + 0x38], 0xffffffff
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0047247a
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