Function at 0x14002f524
Capabilities:
Check if file exists
Delete file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rdi, rcx
add rcx, 0x18
call fcn.14000b6e0
xor r14d, r14d
mov r12, rax
and dword [rbp + 0x40], r14d
and qword [rbp + 0x48], r14
mov qword [rbp + 0x50], r14
mov rcx, qword [0x14016a048]
lea rsi, [0x14016a048]
lea r15, [0x14014a790]
cmp rcx, rsi
je 0x14002f58b
test byte [rcx + 0x1c], 1
je 0x14002f58b
cmp byte [rcx + 0x19], 4
jb 0x14002f58b
mov rcx, qword [rcx + 0x10]
mov edx, 0x18f
mov r8, r15
call fcn.14000c0e8
cmp qword [rdi + 0x190], r14
jne 0x14002f5ac
lea r8, str.m_pLocalCatalog
mov edx, 0x23bc
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.140088f60
mov rax, qword [r12]
movabs r10, 0xf8188fb71cd23270
mov rdx, qword [rdi + 0x190]
mov rcx, r12
mov rax, qword [rax + 0xc0]
call qword [vtable.H_MA8HI.0]
mov ebx, eax
test eax, eax
js 0x14002f655
test byte [rdi + 0x154], 1
jne 0x14002f7f2
mov rax, qword [r12]
xor r8d, r8d
cmp dword [rdi + 0x150], 4
setne r8b
movabs r10, 0xcf2136183258c970
mov rdx, qword [rdi + 0x248]
mov rcx, r12
mov rax, qword [rax + 0xd0]
call qword [vtable.H_MA8HI.0]
mov ebx, eax
test eax, eax
jns 0x14002f661
mov rcx, qword [0x14016a048]
cmp rcx, rsi
je 0x14002f8a2
test byte [rcx + 0x1c], 1
je 0x14002f8a2
cmp byte [rcx + 0x19], 2
jb 0x14002f8a2
mov rcx, qword [rcx + 0x10]
mov edx, 0x190
mov r9d, eax
mov r8, r15
call fcn.14000c114
mov rcx, qword [0x14016a048]
jmp 0x14002f8a2
cmp qword [rdi + 0x1d8], r14
jne 0x14002f682
lea r8, str.m_wszBackupSetDirectory
mov edx, 0x23d5
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.140088f60
mov rcx, qword [rdi + 0x1d8]
lea rdx, [rdi + 0x128]
lea r9, [rbp + 0x50]
xor r8d, r8d
call fcn.14010bd00
mov r14, qword [rbp + 0x50]
mov ebx, eax
test eax, eax
js 0x14002f879
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop dword [rax + rax]
test eax, eax
jne 0x14002f71d
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
cmp eax, 2
je 0x14002f71d
mov rcx, qword [0x14016a048]
cmp rcx, rsi
je 0x14002f707
test byte [rcx + 0x1c], 1
je 0x14002f707
cmp byte [rcx + 0x19], 2
jb 0x14002f707
mov rcx, qword [rcx + 0x10]
mov edx, 0x191
mov r9, r14
mov dword [rsp + 0x20], eax
mov r8, r15
call fcn.14003fbc0
mov rcx, qword [0x14016a048]
test ebx, ebx
jle 0x14002f880
movzx ebx, bx
or ebx, 0x80070000
jmp 0x14002f880
test byte [rdi + 0x154], 0x80
je 0x14002f7f2
cmp byte [rdi + 0x114], 0
je 0x14002f7f2
lea rcx, [rdi + 0x2d8]
mov rdx, r14
call fcn.1400367d4
test al, al
jne 0x14002f762
lea r8, str.m_BackupsetVerifier.Remove_wszLocalCatalogFile_
mov edx, 0x23ec
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.140088f60
mov ecx, 0x20
call fcn.140006d9c
mov qword [rbp + 0x50], rax
mov rsi, rax
test rax, rax
je 0x14002f792
and qword [rsi + 0x18], 0
lea rax, [0x140144a20]
and qword [rsi + 0x10], 0
mov qword [rsi], rax
mov byte [rsi + 8], 1
jmp 0x14002f794
xor esi, esi
mov rdx, qword [rdi + 0x248]
mov rcx, rsi
call fcn.14002b0dc
mov ebx, eax
test eax, eax
js 0x14002f879
lea rbx, [rdi + 0x308]
mov r15, qword [rbx + 8]
cmp r15, qword [rbx + 0x10]
jb 0x14002f7d9
lea rdx, [r15 + 1]
mov rcx, rbx
call fcn.1400107ac
test al, al
jne 0x14002f7d9
mov ecx, 0x8007000e
call fcn.140008c24
int3
mov rax, qword [rbx]
mov qword [rax + r15*8], rsi
lea rsi, [0x14016a048]
inc qword [rbx + 8]
lea r15, [0x14014a790]
mov rcx, qword [rdi + 0x50]
movups xmm0, xmmword [0x140147ba0]
mov rax, qword [rcx]
movdqu xmmword [rbp - 0x10], xmm0
movabs r10, 0xb5882f4034dc3270
mov rax, qword [rax + 0xb0]
lea rdx, [rbp + 0x48]
mov qword [rsp + 0x38], rdx
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x40]
xor r9d, r9d
mov qword [rsp + 0x30], rdx
mov rdx, r12
mov byte [rsp + 0x28], 0
or qword [rsp + 0x20], 0xffffffffffffffff
call qword [vtable.H_MA8HI.0]
mov ebx, eax
test eax, eax
jns 0x14002f921
mov rcx, qword [0x14016a048]
cmp rcx, rsi
je 0x14002f880
test byte [rcx + 0x1c], 1
je 0x14002f880
cmp byte [rcx + 0x19], 2
jb 0x14002f880
mov rcx, qword [rcx + 0x10]
mov edx, 0x192
mov r9d, eax
mov r8, r15
call fcn.14000c114
mov rcx, qword [0x14016a048]
test r14, r14
je 0x14002f89b
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14016a048]
lea rsi, [0x14016a048]
cmp qword [rbp + 0x48], 0
je 0x14002f8bd
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x48]
call fcn.14013a048
mov rcx, qword [0x14016a048]
test ebx, ebx
jns 0x14002f8ed
cmp rcx, rsi
je 0x14002f90f
test byte [rcx + 0x1c], 1
je 0x14002f8ed
cmp byte [rcx + 0x19], 2
jb 0x14002f8ed
mov rcx, qword [rcx + 0x10]
mov edx, 0x194
mov r9d, ebx
mov r8, r15
call fcn.14000c23c
mov rcx, qword [0x14016a048]
cmp rcx, rsi
je 0x14002f90f
test byte [rcx + 0x1c], 1
je 0x14002f90f
cmp byte [rcx + 0x19], 4
jb 0x14002f90f
mov rcx, qword [rcx + 0x10]
mov edx, 0x195
mov r8, r15
call fcn.14000c0e8
mov eax, ebx
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, qword [rbp + 0x48]
lea r8, [rdi + 0x28]
mov r9d, dword [rbp + 0x40]
mov rdx, qword [rdi + 0x330]
mov rcx, qword [rdi + 0x158]
mov qword [rsp + 0x20], rax
call fcn.140084c18
mov ebx, eax
test eax, eax
jns 0x14002f879
mov rcx, qword [0x14016a048]
cmp rcx, rsi
je 0x14002f982
test byte [rcx + 0x1c], 1
je 0x14002f982
cmp byte [rcx + 0x19], 3
jb 0x14002f982
mov rcx, qword [rcx + 0x10]
mov edx, 0x193
mov r9d, eax
mov r8, r15
call fcn.14000c114
mov rcx, qword [0x14016a048]
xor ebx, ebx
jmp 0x14002f880