Function at 0x14002c074
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.140006190
xor r14d, r14d
mov r12, rax
and dword [rbp + 0x40], r14d
and qword [rbp + 0x48], r14
mov qword [rbp + 0x50], r14
mov rcx, qword [0x14017a048]
lea rsi, [0x14017a048]
lea r15, [0x14015a530]
cmp rcx, rsi
je 0x14002c0db
test byte [rcx + 0x1c], 1
je 0x14002c0db
cmp byte [rcx + 0x19], 4
jb 0x14002c0db
mov rcx, qword [rcx + 0x10]
mov edx, 0x18f
mov r8, r15
call fcn.140006b98
mov rdx, qword [rdi + 0x190]
test rdx, rdx
jne 0x14002c106
lea r8, str.m_pLocalCatalog
mov edx, 0x23bc
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.14008ac24
mov rdx, qword [rdi + 0x190]
mov rax, qword [r12]
movabs r10, 0xf8188fb71cd23270
mov rax, qword [rax + 0xc0]
mov rcx, r12
call qword [vtable.H_MA8HI.0]
mov ebx, eax
test eax, eax
js 0x14002c1a8
test byte [rdi + 0x154], 1
jne 0x14002c341
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 0x14002c1b4
mov rcx, qword [0x14017a048]
cmp rcx, rsi
je 0x14002c3f1
test byte [rcx + 0x1c], 1
je 0x14002c3f1
cmp byte [rcx + 0x19], 2
jb 0x14002c3f1
mov rcx, qword [rcx + 0x10]
mov edx, 0x190
mov r9d, eax
mov r8, r15
call fcn.140006bc4
mov rcx, qword [0x14017a048]
jmp 0x14002c3f1
mov rcx, qword [rdi + 0x1d8]
test rcx, rcx
jne 0x14002c1df
lea r8, str.m_wszBackupSetDirectory
mov edx, 0x23d5
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.14008ac24
mov rcx, qword [rdi + 0x1d8]
lea rdx, [rdi + 0x128]
xor r8d, r8d
lea r9, [rbp + 0x50]
call fcn.140117bfc
mov r14, qword [rbp + 0x50]
mov ebx, eax
test eax, eax
js 0x14002c3c8
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop dword [rax + rax]
test eax, eax
jne 0x14002c273
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
cmp eax, 2
je 0x14002c273
mov rcx, qword [0x14017a048]
cmp rcx, rsi
je 0x14002c25d
test byte [rcx + 0x1c], 1
je 0x14002c25d
cmp byte [rcx + 0x19], 2
jb 0x14002c25d
mov rcx, qword [rcx + 0x10]
mov edx, 0x191
mov r9, r14
mov dword [rsp + 0x20], eax
mov r8, r15
call fcn.14003d060
mov rcx, qword [0x14017a048]
test ebx, ebx
jle 0x14002c3cf
movzx ebx, bx
or ebx, 0x80070000
jmp 0x14002c3cf
test byte [rdi + 0x154], 0x80
je 0x14002c341
cmp byte [rdi + 0x114], 0
je 0x14002c341
lea rcx, [rdi + 0x2d8]
mov rdx, r14
call fcn.140033b64
test al, al
jne 0x14002c2b8
lea r8, str.m_BackupsetVerifier.Remove_wszLocalCatalogFile_
mov edx, 0x23ec
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.14008ac24
mov ecx, 0x20
call fcn.140001950
mov qword [rbp + 0x50], rax
mov rsi, rax
test rax, rax
je 0x14002c2e8
and qword [rsi + 0x18], 0
lea rax, [0x1401546f0]
and qword [rsi + 0x10], 0
mov qword [rsi], rax
mov byte [rsi + 8], 1
jmp 0x14002c2ea
xor esi, esi
mov rdx, qword [rdi + 0x248]
mov rcx, rsi
call fcn.140027774
mov ebx, eax
test eax, eax
js 0x14002c3c8
lea rbx, [rdi + 0x308]
mov r15, qword [rbx + 8]
cmp r15, qword [rbx + 0x10]
jb 0x14002c328
lea rdx, [r15 + 1]
mov rcx, rbx
call fcn.14000c0fc
test al, al
je 0x14002c4d8
mov rax, qword [rbx]
mov qword [rax + r15*8], rsi
lea rsi, [0x14017a048]
inc qword [rbx + 8]
lea r15, [0x14015a530]
mov rcx, qword [rdi + 0x50]
movups xmm0, xmmword [0x14015f068]
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 0x14002c470
mov rcx, qword [0x14017a048]
cmp rcx, rsi
je 0x14002c3cf
test byte [rcx + 0x1c], 1
je 0x14002c3cf
cmp byte [rcx + 0x19], 2
jb 0x14002c3cf
mov rcx, qword [rcx + 0x10]
mov edx, 0x192
mov r9d, eax
mov r8, r15
call fcn.140006bc4
mov rcx, qword [0x14017a048]
test r14, r14
je 0x14002c3ea
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
mov rcx, qword [0x14017a048]
lea rsi, [0x14017a048]
cmp qword [rbp + 0x48], 0
je 0x14002c40c
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x48]
call fcn.140149f60
mov rcx, qword [0x14017a048]
test ebx, ebx
jns 0x14002c43c
cmp rcx, rsi
je 0x14002c45e
test byte [rcx + 0x1c], 1
je 0x14002c43c
cmp byte [rcx + 0x19], 2
jb 0x14002c43c
mov rcx, qword [rcx + 0x10]
mov edx, 0x194
mov r9d, ebx
mov r8, r15
call fcn.140006cec
mov rcx, qword [0x14017a048]
cmp rcx, rsi
je 0x14002c45e
test byte [rcx + 0x1c], 1
je 0x14002c45e
cmp byte [rcx + 0x19], 4
jb 0x14002c45e
mov rcx, qword [rcx + 0x10]
mov edx, 0x195
mov r8, r15
call fcn.140006b98
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.140085e8c
mov ebx, eax
test eax, eax
jns 0x14002c3c8
mov rcx, qword [0x14017a048]
cmp rcx, rsi
je 0x14002c4d1
test byte [rcx + 0x1c], 1
je 0x14002c4d1
cmp byte [rcx + 0x19], 3
jb 0x14002c4d1
mov rcx, qword [rcx + 0x10]
mov edx, 0x193
mov r9d, eax
mov r8, r15
call fcn.140006bc4
mov rcx, qword [0x14017a048]
xor ebx, ebx
jmp 0x14002c3cf
mov ecx, 0x8007000e
call fcn.140003714
int3