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

Disassembly:
push 0xffffffffffffffff
push 0x4912a8
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.00456800
mov dword [esp + 0x2c], 0
movzx eax, word [ebx + ebp*2 - 2]
mov edi, dword [esp + 0x18]
cmp ax, 0x5c
je 0x407bd0
cmp ax, 0x2f
jne 0x407bd8
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 0x407c55
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x407c03
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x407c24
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push edi
call ebx
cmp eax, 0xffffffff
je 0x407c5b
test al, 0x10
jne 0x407c5b
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebx, dword [esp + 0x34]
test esi, esi
jle 0x407c47
jmp 0x407c30
movzx eax, word [edi + esi*2]
cmp ax, 0x2f
je 0x407c45
cmp ax, 0x5c
je 0x407c45
dec esi
test esi, esi
jg 0x407c30
test esi, esi
je 0x407dc0
xor ecx, ecx
mov word [edi + esi*2], cx
jmp 0x407be0
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 0x407ca9
lea eax, [esp + 0x10]
push eax
push edi
call fcn.00407a50
add esp, 8
test eax, eax
je 0x407ca9
mov dword [esp + 0x2c], 0xffffffff
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0046f7da
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 0x407cf9
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x407cc6
push eax
jmp 0x407cd7
push edi
call ebx
cmp eax, 0xffffffff
je 0x407cf9
test al, 0x10
jne 0x407cf9
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push 0xc
push 1
call fcn.0044ac50
mov dword [esp + 0x38], 0xffffffff
mov edx, dword [esp + 0x24]
push edx
jmp 0x407e21
cmp esi, ebp
jge 0x407d7b
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.004701d0
add esp, 0xc
cmp word [ebx], 0
je 0x407d21
inc esi
cmp word [edi + esi*2], 0
je 0x407d48
jmp 0x407d30
movzx eax, word [edi + esi*2]
cmp ax, 0x5c
je 0x407d48
cmp ax, 0x2f
je 0x407d48
inc esi
cmp word [edi + esi*2], 0
jne 0x407d30
xor eax, eax
push eax
push edi
mov word [edi + esi*2], ax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x407d77
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x407da8
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x407d77
test al, 0x10
je 0x407db2
cmp esi, ebp
jl 0x407d00
mov dword [esp + 0x2c], 0xffffffff
mov edx, dword [esp + 0x18]
push edx
call fcn.0046f7da
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 0x407e0b
push 0xb7
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
jmp 0x407e0b
cmp ebp, 2
jne 0x407e0a
mov ax, word [ebx]
or ax, 0x20
cmp ax, 0x61
jb 0x407e0a
cmp ax, 0x7a
ja 0x407e0a
cmp word [ebx + 2], 0x3a
jne 0x407e0a
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x18]
push eax
call fcn.0046f7da
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.0044ac50
mov dword [esp + 0x38], 0xffffffff
mov ecx, dword [esp + 0x24]
push ecx
call fcn.0046f7da
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