Function at 0x14002d870
Capabilities:
Check if file exists
Delete directory
Delete file
Get file attributes
Set file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov ebx, edx
mov rsi, rcx
mov rax, qword [0x140102388]
xor rax, rsp
lea rcx, str.DeleteFile.Recursive
lea r12, str.DeleteFile.NonRecursive
test dl, dl
cmovne r12, rcx
mov qword [rsp + 0xb0], rax
mov eax, edx
xor al, 1
movzx eax, al
lea r13, [rax + rax*2]
add r13, 0x14
lea rdx, str.DeleteFileAndRecordMetrics
lea rbp, str..._.._base_files_file_util_win.cc
lea rdi, [rsp + 0x70]
mov rcx, rdi
mov r8, rbp
mov r9d, 0x165
call fcn.140029d80
lea rcx, [rsp + 0x40]
xor r14d, r14d
mov rdx, rdi
xor r8d, r8d
call fcn.140042460
lea rdx, str.DoDeleteFile
lea rdi, [rsp + 0x70]
mov rcx, rdi
mov r8, rbp
mov r9d, 0x12d
call fcn.140029d80
lea rcx, [rsp + 0x98]
mov rdx, rdi
xor r8d, r8d
call fcn.140042460
movzx ecx, byte [rsi + 0x17]
test cl, cl
mov rax, qword [rsi + 8]
mov rdx, rcx
cmovs rdx, rax
mov ebp, 0
test rdx, rdx
je 0x14002d6d5
test cl, cl
jns 0x14002d548
mov ebp, 0xa1
cmp rax, 0x103
ja 0x14002d6d5
mov rcx, rsi
mov rdx, rdi
call fcn.1400290a0
movzx eax, byte [rsp + 0x87]
test al, al
jns 0x14002d569
mov rax, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
mov rbp, 0xffffffffffffffff
test rax, rax
je 0x14002d5a6
add rax, rax
xor ecx, ecx
nop word [rax + rax]
movzx edx, word [rdi + rcx]
cmp dx, 0x3f
je 0x14002d59b
cmp dx, 0x2a
je 0x14002d59b
add rcx, 2
cmp rax, rcx
jne 0x14002d580
jmp 0x14002d5a6
cmp rax, rcx
je 0x14002d5a6
sar rcx, 1
mov rbp, rcx
lea rcx, [rsp + 0x70]
call fcn.140028530
cmp rbp, 0xffffffffffffffff
je 0x14002d5fb
lea r15, [rsp + 0x70]
mov rcx, rsi
mov rdx, r15
call fcn.1400290a0
lea rdi, [rsp + 0x58]
mov rcx, rsi
mov rdx, rdi
call fcn.140028ef0
mov rcx, rdi
mov rdx, r15
mov r8d, ebx
call fcn.14002e360
mov ebp, eax
mov rcx, rdi
call fcn.140028530
mov rcx, r15
call fcn.140028530
jmp 0x14002d6d5
cmp byte [rsi + 0x17], 0
mov rcx, rsi
jns 0x14002d607
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002d6c2
mov edi, eax
test dil, 1
je 0x14002d63d
mov edx, edi
and edx, 0xfffffffe
cmp byte [rsi + 0x17], 0
mov rcx, rsi
jns 0x14002d62f
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x14002d6c2
test dil, 0x10
jne 0x14002d657
cmp byte [rsi + 0x17], 0
mov rcx, rsi
jns 0x14002d64f
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x14002d6b9
test bl, bl
je 0x14002d6a7
xorps xmm0, xmm0
movaps xmmword [rsp + 0x70], xmm0
movabs rax, 0x100000000000000
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x70], 0x2a
lea rdx, [rsp + 0x70]
mov rcx, rsi
mov r8b, 1
call fcn.14002e360
mov ebp, eax
cmp byte [rsp + 0x87], 0
jns 0x14002d6a3
mov rcx, qword [rsp + 0x70]
call fcn.1400aafcc
test ebp, ebp
jne 0x14002d6d5
cmp byte [rsi + 0x17], 0
mov rcx, rsi
jns 0x14002d6b3
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov ebp, 0
test eax, eax
jne 0x14002d6d5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
or ecx, 1
xor ebp, ebp
cmp ecx, 3
cmovne ebp, eax
lea rcx, [rsp + 0x98]
call fcn.140042590
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r13
test ebp, ebp
je 0x14002d748
cmp byte [rsi + 0x17], 0
mov rcx, rsi
jns 0x14002d6fc
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002d727
mov r14d, 7
test al, 0x10
je 0x14002d748
mov rcx, rsi
call fcn.140035a00
movzx eax, al
mov r14d, 6
sub r14d, eax
jmp 0x14002d748
call qword [sym.imp.KERNEL32.dll_GetLastError]
add eax, 0xfffffffe
mov r14d, 4
cmp eax, 4
jae 0x14002d748
cdqe
lea rcx, [0x1400d8aa8]
mov r14d, dword [rcx + rax*4]
mov ecx, 0x20
call fcn.1400aaf70
mov qword [rsp + 0x70], rax
movaps xmm0, xmmword [0x1400d8940]
movups xmmword [rsp + 0x78], xmm0
movups xmm0, xmmword [str.Windows.PostOperationState.]
movups xmmword [rax], xmm0
movups xmm0, xmmword [0x1400d8a7b]
movups xmmword [rax + 0xb], xmm0
mov byte [rax + 0x1b], 0
lea rcx, [rsp + 0x30]
lea rsi, [rsp + 0x70]
mov rdx, rsi
call fcn.140034a80
mov rcx, rsi
mov edx, r14d
mov r8d, 8
call fcn.140042850
cmp byte [rsp + 0x87], 0
js 0x14002d826
test ebp, ebp
je 0x14002d838
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x28], r13
mov ecx, 0x20
call fcn.1400aaf70
mov qword [rsp + 0x70], rax
movaps xmm0, xmmword [0x1400d8770]
movups xmmword [rsp + 0x78], xmm0
movups xmm0, xmmword [str.Windows.FilesystemError.]
movups xmmword [rax], xmm0
movabs rcx, 0x2e726f7272456d65
mov qword [rax + 0x10], rcx
mov byte [rax + 0x18], 0
lea rcx, [rsp + 0x20]
lea rsi, [rsp + 0x70]
mov rdx, rsi
call fcn.140034a80
mov rcx, rsi
mov edx, ebp
call fcn.140042890
cmp byte [rsp + 0x87], 0
jns 0x14002d822
mov rcx, qword [rsp + 0x70]
call fcn.1400aafcc
xor esi, esi
jmp 0x14002d83b
mov rcx, qword [rsp + 0x70]
call fcn.1400aafcc
test ebp, ebp
jne 0x14002d7b1
mov sil, 1
lea rcx, [rsp + 0x40]
call fcn.140042590
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.1400ab340
mov eax, esi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dl, 1
jmp 0x14002d460