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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x670
mov rax, qword [0x1004c4740]
xor rax, rsp
mov qword [rsp + 0x660], rax
xor r13d, r13d
mov r12, rdx
mov r8, rcx
cmp rcx, r13
je 0x1000bf4ab
mov edi, 0x104
mov ebx, r13d
mov rax, rdi
cmp word [rcx], r13w
je 0x1000bf49c
add rcx, 2
sub rax, 1
jne 0x1000bf48c
cmp rax, r13
jne 0x1000bf4a6
mov rdi, r13
jmp 0x1000bf4b0
sub rdi, rax
jmp 0x1000bf4b5
mov rdi, qword [rsp + 0x20]
mov ebx, 0x80070057
cmp ebx, r13d
lea r9, [0x1004a9500]
cmovl rdi, r13
cmp ebx, r13d
jl 0x1000bf778
lea rax, [rsp + 0x30]
mov edx, 0x105
lea rcx, [rsp + 0x30]
sub r8, rax
mov ebx, r13d
lea rax, [rdx + 0x7ffffef9]
cmp rax, r13
je 0x1000bf505
movzx eax, word [r8 + rcx]
cmp ax, r13w
je 0x1000bf505
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1000bf4e1
cmp rdx, r13
jne 0x1000bf513
sub rcx, 2
mov ebx, 0x8007007a
cmp ebx, r13d
mov word [rcx], r13w
jl 0x1000bf778
lea rax, [rdi - 1]
cmp rax, rdi
ja 0x1000bf531
mov rdi, rax
mov ebx, r13d
jmp 0x1000bf560
mov ebx, 0x80070216
mov rcx, qword [0x1004a9500]
cmp rcx, r9
je 0x1000bf560
test byte [rcx + 0x3c], 2
je 0x1000bf560
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f3e8]
mov edx, 0xb
mov r9d, ebx
call fcn.10005c358
cmp ebx, r13d
jl 0x1000bf778
mov r15d, 0x5c
cmp word [rsp + rdi*2 + 0x30], r15w
jne 0x1000bf57d
mov word [rsp + rdi*2 + 0x30], r13w
cmp word [rsp + 0x30], r15w
lea rax, [rsp + 0x30]
lea rdi, [rsp + 0x32]
mov word [rsp + 0x450], r13w
mov ebp, r13d
cmovne rdi, rax
mov edx, r15d
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_wcschr]
mov rsi, rax
cmp rax, r13
jne 0x1000bf618
lea rax, [rsp + 0x240]
mov r8, rdi
mov edx, 0x105
lea rcx, [rsp + 0x240]
mov ebx, r13d
sub r8, rax
lea rax, [rdx + 0x7ffffef9]
cmp rax, r13
je 0x1000bf5f3
movzx eax, word [r8 + rcx]
cmp ax, r13w
je 0x1000bf5f3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1000bf5cf
cmp rdx, r13
jne 0x1000bf601
sub rcx, 2
mov ebx, 0x8007007a
cmp ebx, r13d
mov word [rcx], r13w
jl 0x1000bf778
mov ebp, 1
jmp 0x1000bf6ab
mov rcx, rax
sub rcx, rdi
sar rcx, 1
cmp rcx, 0x7ffffffe
jbe 0x1000bf63a
mov ebx, 0x80070057
mov word [rsp + 0x240], r13w
jmp 0x1000bf690
lea rdx, [rsp + 0x240]
mov r10, rdi
mov r9, rcx
mov r8d, 0x105
lea rax, [rsp + 0x240]
mov ebx, r13d
sub r10, rdx
cmp r9, r13
je 0x1000bf67e
movzx edx, word [rax + r10]
cmp dx, r13w
je 0x1000bf67e
dec r8
mov word [rax], dx
dec r9
add rax, 2
cmp r8, r13
jne 0x1000bf65c
cmp r8, r13
jne 0x1000bf68c
sub rax, 2
mov ebx, 0x8007007a
mov word [rax], r13w
cmp ebx, r13d
jl 0x1000bf778
cmp rsi, rdi
jb 0x1000bf773
mov word [rsp + rcx*2 + 0x240], r13w
lea r8, [rsp + 0x240]
lea rcx, [rsp + 0x450]
mov edx, 0x105
call fcn.1000bfdf0
cmp eax, r13d
mov ebx, eax
jl 0x1000bf778
lea rcx, [rsp + 0x450]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1000bf6e7
test al, 0x10
jne 0x1000bf717
mov eax, ebp
lea rcx, [rsp + 0x450]
neg eax
sbb rdx, rdx
and rdx, r12
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, r13d
je 0x1000bf74b
lea rcx, [rsp + 0x450]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1000bf74b
cmp rsi, r13
je 0x1000bf740
lea r8, [0x100039ccc]
lea rcx, [rsp + 0x450]
mov edx, 0x105
lea rdi, [rsi + 2]
call fcn.1000bfdf0
cmp eax, r13d
mov ebx, eax
jl 0x1000bf778
cmp ebp, r13d
je 0x1000bf59d
jmp 0x1000bf76c
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r13d
jne 0x1000bf75d
mov ebx, 0x80004005
jmp 0x1000bf778
movzx ebx, ax
or ebx, 0x80070000
cmp eax, r13d
cmovle ebx, eax
cmp ebx, r13d
jge 0x1000bf7a9
jmp 0x1000bf778
mov ebx, 0x80070216
mov rcx, qword [0x1004a9500]
lea rax, [0x1004a9500]
cmp rcx, rax
je 0x1000bf7a9
test byte [rcx + 0x3c], 2
je 0x1000bf7a9
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f500]
mov edx, 0x1c
mov r9d, ebx
call fcn.10005c358
mov eax, ebx
mov rcx, qword [rsp + 0x660]
xor rcx, rsp
call fcn.10027d5f4
lea r11, [rsp + 0x670]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret