Function at 0x40d6b0
Capabilities:
Check if file exists
Create directory

Disassembly:
mov r11, rsp
sub rsp, 0x198
mov rax, qword [0x00424338]
mov qword [rsp + 0x180], rax
mov rdx, rcx
xor eax, eax
mov qword [r11 + 0x18], rbx
lea rcx, [rsp + 0x28]
lea r8, [rsp + 0x20]
mov qword [r11 + 0x20], rdi
mov byte [rsp + 0x20], al
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64__class_std::allocator_char__const____ptr64____ptr64]
lea rcx, [rsp + 0x28]
call fcn.00405020
xor ebx, ebx
cmp qword [rsp + 0x38], rbx
mov rdi, rbx
jbe 0x40d72e
lea rcx, [rsp + 0x28]
mov rdx, rdi
call qword [sym.imp.msvcp60.dll_public:_char____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator___unsigned_long_long_unsigned___int64_____ptr64]
cmp byte [rax], 0x5c
jne 0x40d724
lea rcx, [rsp + 0x28]
mov rdx, rdi
call qword [sym.imp.msvcp60.dll_public:_char____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator___unsigned_long_long_unsigned___int64_____ptr64]
mov byte [rax], 0x2f
inc rdi
cmp rdi, qword [rsp + 0x38]
jb 0x40d700
lea rdx, [0x0041d194]
lea rcx, [rsp + 0x28]
mov r9d, 2
xor r8d, r8d
call qword [sym.imp.msvcp60.dll_public:_unsigned_long_long_unsigned___int64____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__const___ptr64]
mov rcx, qword [sym.imp.msvcp60.dll_unsigned_long_long_unsigned___int64__const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov rdi, qword [rsp + 0x1b8]
cmp qword [rcx], rax
mov r11, rax
je 0x40d79e
lea rcx, [rsp + 0x28]
mov r8d, 1
mov rdx, r11
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::erase_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64_____ptr64]
lea rdx, [0x0041d198]
lea rcx, [rsp + 0x28]
mov r9d, 2
xor r8d, r8d
call qword [sym.imp.msvcp60.dll_public:_unsigned_long_long_unsigned___int64____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__const___ptr64]
mov r11, rax
mov rax, qword [sym.imp.msvcp60.dll_unsigned_long_long_unsigned___int64__const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp qword [rax], r11
jne 0x40d760
cmp qword [rsp + 0x38], rbx
jbe 0x40d7de
nop
nop
nop
lea rcx, [rsp + 0x28]
mov rdx, rbx
call qword [sym.imp.msvcp60.dll_public:_char____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator___unsigned_long_long_unsigned___int64_____ptr64]
cmp byte [rax], 0x2f
jne 0x40d7d4
lea rcx, [rsp + 0x28]
mov rdx, rbx
call qword [sym.imp.msvcp60.dll_public:_char____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator___unsigned_long_long_unsigned___int64_____ptr64]
mov byte [rax], 0x5c
inc rbx
cmp rbx, qword [rsp + 0x38]
jb 0x40d7b0
mov rcx, qword [rsp + 0x30]
test rcx, rcx
cmove rcx, qword [sym.imp.msvcp60.dll_char_const__private:_static_char_const____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x40d898
lea rcx, [rsp + 0x71]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x70], al
call sub.msvcrt.dll_memset
mov r8, qword [rsp + 0x30]
test r8, r8
lea rdx, [0x0041d19c]
lea rcx, [rsp + 0x70]
cmove r8, qword [sym.imp.msvcp60.dll_char_const__private:_static_char_const____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
call qword [sym.imp.msvcrt.dll_sprintf]
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
test eax, eax
je 0x40d880
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x40d880
lea r8, [rsp + 0x20]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x48]
mov byte [rsp + 0x20], al
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64__class_std::allocator_char__const____ptr64____ptr64]
lea rcx, [rsp + 0x48]
call fcn.0040ce00
lea rcx, [rsp + 0x48]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
cmove rcx, qword [sym.imp.msvcp60.dll_char_const__private:_static_char_const____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
cmove rcx, qword [sym.imp.msvcp60.dll_char_const__private:_static_char_const____ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
lea rcx, [rsp + 0x28]
cmp eax, 1
sete bl
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov al, bl
mov rbx, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x180]
call fcn.00419e60
add rsp, 0x198
ret