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

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x90]
sub rsp, 0x190
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0x1d0], rbx
mov rax, qword [0x1401750a0]
xor rax, rsp
mov qword [rbp + 0x80], rax
mov rsi, rdx
mov qword [rsp + 0x48], rdx
xor ebx, ebx
mov dword [rsp + 0x20], ebx
lea rdi, [rcx + 8]
mov rcx, rdi
call sym.OverwolfLauncher.exe_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
test rax, rax
jne 0x140016ee6
lea rdx, [0x14013c890]
mov rcx, rsi
call fcn.140002e90
nop
mov edi, 1
mov dword [rsp + 0x20], edi
jmp 0x1400171a7
call sym.OverwolfLauncher.exe_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
lea rcx, [rax + 0x68]
call fcn.140002e40
mov rdx, rax
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
test eax, eax
je 0x140016f2b
cmp eax, 0xb7
je 0x140016f2b
lea rdx, [0x14013c890]
mov rcx, rsi
call fcn.140002e90
nop
mov edi, 1
mov dword [rsp + 0x20], edi
jmp 0x1400171a7
xor ecx, ecx
call fcn.1400e9380
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x28]
lea rcx, [rbp - 0x30]
call fcn.1400e787c
lea r9, [rbp - 0x30]
lea r8, str._Y__m__d__H__M__S
mov edx, 0x21
lea rcx, [rbp]
call fcn.1400e9364
mov rcx, rdi
call sym.OverwolfLauncher.exe_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
lea rcx, [rax + 8]
call fcn.140002e40
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140002e90
nop
lea rcx, [0x14013e024]
call fcn.1400042c0
mov r8, rax
lea rdx, [0x14013e024]
lea rcx, [rsp + 0x70]
call fcn.140007160
lea rcx, [rbp]
call fcn.1400042c0
mov r8, rax
lea rdx, [rbp]
lea rcx, [rsp + 0x70]
call fcn.140007160
xor r14b, r14b
mov edi, 1
lea r8, [0x14013e028]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.140009ea0
nop
movabs r15, 0xcccccccccccccccd
lea rcx, [rsp + 0x50]
call fcn.140002e40
mov rcx, rax
call fcn.140017e20
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140007d60
lea rcx, [rsp + 0x30]
call fcn.140008010
nop
lea rcx, [rsp + 0x30]
call sym.OverwolfLauncher.exe_public:_char_const____ptr64___cdecl_Json::StaticString::operator_char_const____ptr64_void_const___ptr64
lea rcx, [rax + 8]
call fcn.140002e40
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140017033
mov r14b, 1
jmp 0x14001716b
lea rcx, [rsp + 0x70]
call sym.OverwolfLauncher.exe_public:_class_Json::CharReader____ptr64___cdecl_Json::CharReader::operator_class_Json::CharReader_const____ptr64____ptr64
lea rcx, [rsp + 0x50]
cmp rcx, rax
je 0x14001706d
lea rcx, [rsp + 0x70]
call sym.OverwolfLauncher.exe_public:_class_Json::CharReader____ptr64___cdecl_Json::CharReader::operator_class_Json::CharReader_const____ptr64____ptr64
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x14001705e
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
lea rcx, [rsp + 0x50]
call fcn.140003d30
nop
lea rcx, [rbp + 0x50]
call fcn.1400103b0
mov r11, rax
mov r10, rax
mov rcx, rdi
nop
sub r10, 2
mov rax, r15
mul rcx
shr rdx, 3
movzx r8d, dx
shl r8w, 2
lea r9d, [r8 + rdx]
add r9w, r9w
sub cx, r9w
add cx, 0x30
mov word [r10], cx
mov rcx, rdx
test rdx, rdx
jne 0x140017080
mov r8, r11
mov rdx, r10
lea rcx, [rbp - 0x70]
call fcn.1400103c0
or ebx, 4
mov dword [rsp + 0x20], ebx
and ebx, 0xfffffffb
mov dword [rsp + 0x20], ebx
or ebx, 2
mov dword [rsp + 0x20], ebx
lea r8, [0x14013e024]
xor edx, edx
lea rcx, [rbp - 0x70]
call fcn.140017a40
mov rcx, rax
call sym.OverwolfLauncher.exe_public:_class_Json::CharReader____ptr64___cdecl_Json::CharReader::operator_class_Json::CharReader_const____ptr64____ptr64
mov rdx, rax
lea rcx, [rbp - 0x50]
call fcn.140002e60
or ebx, 8
mov dword [rsp + 0x20], ebx
mov rcx, rax
call sym.OverwolfLauncher.exe_public:_class_Json::CharReader____ptr64___cdecl_Json::CharReader::operator_class_Json::CharReader_const____ptr64____ptr64
mov rdx, rax
cmp qword [rax + 0x18], 8
jb 0x140017119
mov rdx, qword [rax]
mov r8, qword [rax + 0x10]
lea rcx, [rsp + 0x50]
call fcn.140007160
inc rdi
and ebx, 0xfffffff7
mov dword [rsp + 0x20], ebx
lea rcx, [rbp - 0x50]
call fcn.140002e50
and ebx, 0xfffffffd
mov dword [rsp + 0x20], ebx
lea rcx, [rbp - 0x70]
call fcn.140002e50
lea rcx, [0x14013e028]
call fcn.1400042c0
mov r8, rax
lea rdx, [0x14013e028]
lea rcx, [rsp + 0x50]
call fcn.140007160
nop
lea rcx, [rsp + 0x30]
call fcn.140005a50
test r14b, r14b
je 0x140016fe0
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.140002e60
or ebx, 1
mov dword [rsp + 0x20], ebx
lea rcx, [rsp + 0x50]
call fcn.140002e50
nop
lea rcx, [rsp + 0x70]
call fcn.140002e50
mov rax, rsi
mov rcx, qword [rbp + 0x80]
xor rcx, rsp
call fcn.1400dd420
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x190
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret