Function at 0x1400040a0
Capabilities:
Check if file exists
Delete directory
Delete file

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
movaps xmmword [rsp + 0x120], xmm6
mov r14d, edx
mov rdi, rcx
mov rax, qword [0x14028f028]
xor rax, rsp
mov qword [rsp + 0x118], rax
xor r13d, r13d
test r14b, 1
sete r13b
lea rax, str.DeleteFile.NonRecursive
lea rcx, str.DeleteFile.Recursive
cmove rcx, rax
mov qword [rsp + 0x20], rcx
movabs r12, 0xaaaaaaaaaaaaaaaa
lea rbx, [rsp + 0x60]
mov qword [rbx + 0x50], r12
movaps xmm6, xmmword [0x140257270]
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.DeleteFileAndRecordMetrics
lea rbp, str..._.._base_files_file_util_win.cc
lea rsi, [rsp + 0xc0]
mov rcx, rsi
mov r8, rbp
mov r9d, 0x1ab
call fcn.14007e2d0
xor r15d, r15d
mov rcx, rbx
mov rdx, rsi
xor r8d, r8d
call fcn.14008e970
mov qword [rsi + 0x50], r12
movaps xmmword [rsi + 0x40], xmm6
movaps xmmword [rsi + 0x30], xmm6
movaps xmmword [rsi + 0x20], xmm6
movaps xmmword [rsi + 0x10], xmm6
movaps xmmword [rsi], xmm6
lea rdx, str.DoDeleteFile
lea rbx, [rsp + 0x40]
mov rcx, rbx
mov r8, rbp
mov r9d, 0x16b
call fcn.14007e2d0
lea rcx, [rsp + 0xc0]
mov rdx, rbx
xor r8d, r8d
call fcn.14008e970
movzx eax, byte [rdi + 0x17]
test al, al
jns 0x1400041ad
mov rax, qword [rdi + 8]
test rax, rax
je 0x14000425b
cmp rax, 0x103
ja 0x1400043ca
mov rcx, rdi
mov rdx, rbx
call fcn.140008790
movzx eax, byte [rsp + 0x57]
test al, al
jns 0x1400041e0
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
test rax, rax
je 0x1400043d5
lea rbp, [rbx + rax*2]
add rax, rax
mov rsi, rbx
movzx ecx, word [rsi]
cmp cx, 0x3f
je 0x14000420f
cmp cx, 0x2a
je 0x14000420f
add rsi, 2
add rax, 0xfffffffffffffffe
jne 0x1400041f3
mov rsi, rbp
lea rcx, [rsp + 0x40]
call fcn.14007cab0
cmp rsi, rbp
je 0x14000422b
sub rsi, rbx
cmp rsi, 0xfffffffffffffffe
jne 0x14000449b
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x140004237
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140004346
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
and ecx, 0xfffffffe
xor r15d, r15d
cmp ecx, 2
cmovne r15d, eax
lea r12, [r13*2 + 0x14]
add r12, r13
lea r14, [rsp + 0xc0]
mov rcx, r14
call fcn.14007d0f0
xor ebp, ebp
test r15d, r15d
jne 0x1400043e4
lea rsi, [rsp + 0x40]
movabs rdi, 0xaaaaaaaaaaaaaaaa
mov qword [rsi + 0x10], rdi
movaps xmmword [rsi], xmm6
lea rax, str.Windows.PostOperationState.
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 0x1b
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xd8], r12
lea rdx, [rsp + 0x28]
mov qword [rdx], 2
mov qword [rdx + 8], r14
mov rcx, rsi
call fcn.14007c5c0
mov rcx, rsi
mov edx, ebp
mov r8d, 8
call fcn.14010a560
cmp byte [rsi + 0x17], 0
jns 0x1400042ff
mov rcx, qword [rsp + 0x40]
call fcn.1400c9cac
test r15d, r15d
jne 0x140004423
test r15d, r15d
sete bl
lea rcx, [rsp + 0x60]
call fcn.14007d0f0
mov rcx, qword [rsp + 0x118]
xor rcx, rsp
call fcn.1400ccfe0
mov eax, ebx
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, eax
test bl, 1
jne 0x140004509
test bl, 0x10
jne 0x14000437f
test r14b, 2
jne 0x14000452d
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x14000436c
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14000425b
jmp 0x140004246
test r14b, 1
je 0x1400043b6
lea rsi, [rsp + 0x40]
mov byte [rsi + 0x17], 1
mov dword [rsi], 0x2a
mov rcx, rdi
mov rdx, rsi
mov r8d, r14d
call fcn.14010a840
mov ebx, eax
cmp byte [rsi + 0x17], 0
js 0x140004542
test ebx, ebx
jne 0x140004551
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x1400043c2
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
jmp 0x140004372
mov r15d, 0xa1
jmp 0x14000425b
lea rcx, [rsp + 0x40]
call fcn.14007cab0
jmp 0x14000422b
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x1400043f0
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400044e1
mov ebp, 7
test al, 0x10
je 0x140004281
mov rcx, rdi
call fcn.14012b100
movzx eax, al
mov ebp, 6
sub ebp, eax
jmp 0x140004281
lea rsi, [rsp + 0x40]
mov qword [rsi + 0x10], rdi
movaps xmmword [rsi], xmm6
lea rax, str.Windows.FilesystemError.
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 0x18
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xd8], r12
lea rdx, [rsp + 0x28]
mov qword [rdx], 2
mov qword [rdx + 8], r14
mov rcx, rsi
call fcn.14007c5c0
mov rcx, rsi
mov edx, r15d
call fcn.140140410
cmp byte [rsi + 0x17], 0
jns 0x14000448d
mov rcx, qword [rsp + 0x40]
call fcn.1400c9cac
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140004308
lea rsi, [rsp + 0x40]
mov rcx, rdi
mov rdx, rsi
call fcn.140008790
lea rbx, [rsp + 0x28]
mov rcx, rdi
mov rdx, rbx
call fcn.140009a00
mov rcx, rbx
mov rdx, rsi
mov r8d, r14d
call fcn.14010a840
mov r15d, eax
mov rcx, rbx
call fcn.14007cab0
mov rcx, rsi
call fcn.14007cab0
jmp 0x14000425b
call qword [sym.imp.KERNEL32.dll_GetLastError]
add eax, 0xfffffffe
mov ebp, 4
cmp eax, 4
jae 0x140004281
cdqe
lea rcx, [0x14025cd94]
mov ebp, dword [rcx + rax*4]
jmp 0x140004281
mov edx, ebx
and edx, 0xfffffffe
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x14000451a
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x140004351
jmp 0x140004246
mov rcx, rdi
call fcn.1401820c0
test al, al
jne 0x14000425b
jmp 0x140004246
mov rcx, qword [rsp + 0x40]
call fcn.1400c9cac
jmp 0x1400043ae
mov r15d, ebx
jmp 0x14000425b
xor edx, edx
jmp 0x1400040a0