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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x678
movaps xmmword [rsp + 0x660], xmm6
mov r14d, r9d
mov r13d, r8d
mov r15, rdx
mov rdi, rcx
mov rax, qword [0x140213038]
xor rax, rsp
mov qword [rsp + 0x658], rax
movaps xmm6, xmmword [0x1401d9dd0]
lea rbx, [rsp + 0xd0]
movaps xmmword [rbx + 0x40], xmm6
movaps xmmword [rbx + 0x30], xmm6
movaps xmmword [rbx + 0x20], xmm6
movaps xmmword [rbx + 0x10], xmm6
movaps xmmword [rbx], xmm6
lea rdx, str.DoCopyDirectory
lea r8, str..._.._base_files_file_util_win.cc
lea rsi, [rsp + 0x390]
mov rcx, rsi
mov r9d, 0xdd
call fcn.1400d95e0
xor ebp, ebp
mov rcx, rbx
mov rdx, rsi
xor r8d, r8d
call fcn.1400e5a80
movzx eax, byte [rdi + 0x17]
test al, al
jns 0x14015c8fb
mov rax, qword [rdi + 8]
cmp rax, 0x103
jbe 0x14015c93e
lea rcx, [rsp + 0xd0]
call fcn.1400e5c10
mov rcx, qword [rsp + 0x658]
xor rcx, rsp
call fcn.1401013e0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x660]
add rsp, 0x678
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx eax, byte [r15 + 0x17]
test al, al
jns 0x14015c94b
mov rax, qword [r15 + 8]
cmp rax, 0x103
jbe 0x14015c957
xor ebp, ebp
jmp 0x14015c903
movabs r12, 0xaaaaaaaaaaaaaaaa
lea rbp, [rsp + 0xb0]
mov qword [rbp + 0x10], r12
movaps xmmword [rbp], xmm6
mov rcx, rbp
mov rdx, r15
call fcn.1400d7a60
lea rbx, [rsp + 0x390]
movaps xmmword [rbx + 0x40], xmm6
movaps xmmword [rbx + 0x30], xmm6
movaps xmmword [rbx + 0x20], xmm6
movaps xmmword [rbx + 0x10], xmm6
movaps xmmword [rbx], xmm6
lea rdx, str.PathExists
lea r8, str..._.._base_files_file_util_win.cc
lea rsi, [rsp + 0x140]
mov rcx, rsi
mov r9d, 0x1ce
call fcn.1400d95e0
mov rcx, rbx
mov rdx, rsi
xor r8d, r8d
call fcn.1400e5a80
cmp byte [rbp + 0x17], 0
jns 0x14015c9d7
mov rbp, qword [rsp + 0xb0]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov rcx, rbx
call fcn.1400e5c10
cmp esi, 0xffffffff
je 0x14015cabc
lea rsi, [rsp + 0x390]
lea rbx, [rsp + 0xb0]
mov rcx, rsi
mov rdx, rbx
call fcn.140050fe0
mov rcx, rbx
mov rdx, rsi
call fcn.1400d7bd0
mov rcx, rsi
call fcn.1400d7bc0
movzx eax, byte [rbx + 0x17]
test al, al
jns 0x14015ca31
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x14015cb0e
lea rsi, [rsp + 0x90]
mov qword [rsi + 0x10], r12
movaps xmmword [rsi], xmm6
mov rcx, rsi
mov rdx, rdi
call fcn.140050fe0
movzx eax, byte [rsi + 0x17]
test al, al
jns 0x14015ca64
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x14015ca9b
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x90]
call fcn.140048890
test al, al
jne 0x14015ca9b
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xb0]
call fcn.1400489f0
test al, al
je 0x14015cb12
xor ebp, ebp
lea rcx, [rsp + 0x90]
call fcn.1400d7bc0
lea rcx, [rsp + 0xb0]
call fcn.1400d7bc0
jmp 0x14015c903
lea rsi, [rsp + 0xb0]
lea rbx, [rsp + 0x140]
mov rcx, rsi
mov rdx, rbx
call fcn.1400d8410
lea rbp, [rsp + 0x390]
mov rcx, rbp
mov rdx, rbx
call fcn.140050fe0
mov rcx, rsi
mov rdx, rbp
call fcn.1400d7bd0
mov rcx, rbp
call fcn.1400d7bc0
mov rcx, rbx
call fcn.1400d7bc0
movzx eax, byte [rsi + 0x17]
jmp 0x14015ca25
xor ebp, ebp
jmp 0x14015caaa
movzx eax, r13b
lea esi, [rax + rax]
inc esi
lea rbx, [rsp + 0x390]
mov r8d, 0x2c8
mov rcx, rbx
mov dl, 0xaa
call fcn.140103d70
mov rcx, rbx
mov rdx, rdi
mov r8d, r13d
mov r9d, esi
call fcn.140057160
lea rbx, [rsp + 0x140]
movaps xmmword [rbx + 0x40], xmm6
movaps xmmword [rbx + 0x30], xmm6
movaps xmmword [rbx + 0x20], xmm6
movaps xmmword [rbx + 0x10], xmm6
movaps xmmword [rbx], xmm6
lea rdx, str.PathExists
lea r8, str..._.._base_files_file_util_win.cc
lea rsi, [rsp + 0x120]
mov rcx, rsi
mov r9d, 0x1ce
call fcn.1400d95e0
xor ebp, ebp
mov rcx, rbx
mov rdx, rsi
xor r8d, r8d
call fcn.1400e5a80
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x14015cb9f
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov rcx, rbx
call fcn.1400e5c10
cmp esi, 0xffffffff
je 0x14015cf05
lea rcx, [rsp + 0x70]
mov qword [rcx + 0x10], r12
movaps xmmword [rcx], xmm6
mov rdx, rdi
call fcn.1400d7a60
lea r12, [rsp + 0x140]
movaps xmmword [r12 + 0x40], xmm6
movaps xmmword [r12 + 0x30], xmm6
movaps xmmword [r12 + 0x20], xmm6
movaps xmmword [r12 + 0x10], xmm6
movaps xmmword [r12], xmm6
lea rdx, str.DirectoryExists
lea r8, str..._.._base_files_file_util_win.cc
lea rsi, [rsp + 0x120]
mov rcx, rsi
mov r9d, 0x1f6
call fcn.1400d95e0
mov rcx, r12
mov rdx, rsi
xor r8d, r8d
call fcn.1400e5a80
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x14015cc2f
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebp, eax
cmp eax, 0xffffffff
setne byte [rsp + 0x2e]
and ebp, 0x10
shr ebp, 4
mov rcx, r12
call fcn.1400e5c10
lea rcx, [rsp + 0x50]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rcx + 0x10], rax
movaps xmmword [rcx], xmm6
mov rdx, rdi
call fcn.1400d7a60
test r13b, r13b
je 0x14015cd1a
lea r12, [rsp + 0x140]
movaps xmmword [r12 + 0x40], xmm6
movaps xmmword [r12 + 0x30], xmm6
movaps xmmword [r12 + 0x20], xmm6
movaps xmmword [r12 + 0x10], xmm6
movaps xmmword [r12], xmm6
lea rdx, str.DirectoryExists
lea r8, str..._.._base_files_file_util_win.cc
lea rsi, [rsp + 0x120]
mov rcx, rsi
mov r9d, 0x1f6
call fcn.1400d95e0
mov rcx, r12
mov rdx, rsi
xor r8d, r8d
call fcn.1400e5a80
cmp byte [r15 + 0x17], 0
mov rcx, r15
jns 0x14015ccd8
mov rcx, qword [r15]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov rcx, r12
call fcn.1400e5c10
cmp esi, 0xffffffff
je 0x14015cd1a
and esi, 0x10
je 0x14015cd1a
lea rsi, [rsp + 0x140]
mov rcx, rdi
mov rdx, rsi
call fcn.1400d8410
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.1400d7bd0
mov rcx, rsi
call fcn.1400d7bc0
mov byte [rsp + 0x2f], r14b
and byte [rsp + 0x2e], bpl
mov bpl, 1
lea r14, [rsp + 0x30]
lea rsi, [rsp + 0x50]
lea rbx, [rsp + 0x70]
lea r12, [rsp + 0x140]
movzx eax, byte [rsp + 0x87]
test al, al
jns 0x14015cd4f
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14015ceed
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x40], rax
movaps xmmword [rsp + 0x30], xmm6
mov rcx, r14
mov rdx, r15
call fcn.1400d7a60
mov rcx, rsi
mov rdx, rbx
call fcn.1400d7c10
test al, al
je 0x14015cd9c
mov rcx, rsi
mov rdx, rbx
mov r8, r14
call fcn.140048a00
test al, al
je 0x14015cee1
test byte [rsp + 0x2e], 1
je 0x14015cebe
movaps xmmword [rsp + 0x180], xmm6
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm6
movaps xmmword [rsp + 0x140], xmm6
lea rdi, [rsp + 0x120]
mov rcx, rdi
lea rdx, str.DirectoryExists
lea r8, str..._.._base_files_file_util_win.cc
mov r9d, 0x1f6
call fcn.1400d95e0
mov rcx, r12
mov rdx, rdi
xor r8d, r8d
call fcn.1400e5a80
cmp byte [rsp + 0x47], 0
mov rcx, r14
jns 0x14015ce10
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov r13d, eax
mov rcx, r12
call fcn.1400e5c10
cmp r13d, 0xffffffff
je 0x14015ce2d
and r13d, 0x10
jne 0x14015ce4d
cmp byte [rsp + 0x47], 0
mov rcx, r14
jns 0x14015ce3c
mov rcx, qword [rsp + 0x30]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
movzx ebp, bpl
cmove ebp, eax
lea rcx, [rsp + 0x390]
mov rdx, r12
call fcn.1400574e0
mov rcx, rbx
mov rdx, r12
call fcn.1400d7bd0
mov rcx, r12
call fcn.1400d7bc0
movzx eax, byte [rsp + 0x87]
test al, al
jns 0x14015ce81
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14015ceaa
lea rcx, [rsp + 0x390]
mov rdx, r12
call fcn.140057450
mov rcx, r12
call fcn.140057130
mov byte [rsp + 0x2e], al
mov rcx, r12
call fcn.140019a90
mov rcx, r14
call fcn.1400d7bc0
test bpl, 1
jne 0x14015cd3e
jmp 0x14015ceed
mov rcx, rbx
mov rdx, r14
mov r8b, byte [rsp + 0x2f]
call fcn.14015d440
movzx ebp, bpl
test al, al
mov eax, 0
cmove ebp, eax
jmp 0x14015ce4d
lea rcx, [rsp + 0x30]
call fcn.1400d7bc0
xor ebp, ebp
and bpl, 1
lea rcx, [rsp + 0x50]
call fcn.1400d7bc0
lea rcx, [rsp + 0x70]
call fcn.1400d7bc0
lea rcx, [rsp + 0x390]
call fcn.1400572f0
jmp 0x14015ca9d