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

Disassembly:
mov r11, rsp
sub rsp, 0x198
mov rax, qword [0x10050650]
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.10020400
xor ebx, ebx
cmp qword [rsp + 0x38], rbx
mov rdi, rbx
jbe 0x10022c6e
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 0x10022c64
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 0x10022c40
lea rdx, [0x10041644]
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 0x10022cde
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, [0x10041648]
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 0x10022ca0
cmp qword [rsp + 0x38], rbx
jbe 0x10022d1e
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 0x10022d14
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 0x10022cf0
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 0x10022dd8
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, [0x1004164c]
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 0x10022dc0
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x10022dc0
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.10022360
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.1003b040
add rsp, 0x198
ret