Function at 0x14001e198
Capabilities:
Delete file

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x88
mov qword [rbp - 0x31], 0xfffffffffffffffe
mov rbx, rcx
xor r13d, r13d
mov r12d, r13d
mov qword [rbp + 0x7f], r13
mov esi, r13d
mov qword [rbp + 0x67], r13
mov r14d, r13d
mov qword [rbp - 0x39], r13
mov qword [rbp + 0x6f], r13
mov qword [rbp + 0x77], r13
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x21], r13
mov qword [rbp - 0x19], r13
mov dword [rbp - 0x11], r13d
mov qword [rbp - 9], r13
mov qword [rbp - 1], r13
mov qword [rbp + 7], r13
mov dword [rbp + 0xf], r13d
cmp qword [rcx + 0x1d8], r13
jne 0x14001e21d
lea r8, str.m_wszBackupSetDirectory
mov edx, 0x1dfb
lea rcx, str.base_stor_blbengine_service_backup.cpp
call fcn.140087b08
lea r15, [0x14017b048]
test byte [rbx + 0x154], 4
je 0x14001e320
lea r9, [rbp + 0x7f]
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbx + 0x1d8]
call fcn.1401126dc
mov edi, eax
mov r12, qword [rbp + 0x7f]
test eax, eax
js 0x14001e534
lea rdx, [rbp + 0x67]
mov rcx, r12
call fcn.1400ff030
mov edi, eax
test eax, eax
jns 0x14001e2af
mov rcx, qword [0x14017b048]
cmp rcx, r15
je 0x14001e2a6
test byte [rcx + 0x1c], 1
je 0x14001e2a6
cmp byte [rcx + 0x19], 2
jb 0x14001e2a6
mov edx, 0x16a
mov dword [rsp + 0x28], eax
mov rax, qword [rbx + 0x1d8]
mov qword [rsp + 0x20], rax
mov r9, r12
lea r8, [0x1401563e0]
mov rcx, qword [rcx + 0x10]
call fcn.140005e80
mov rsi, qword [rbp + 0x67]
jmp 0x14001e50c
mov rsi, qword [rbp + 0x67]
test rsi, rsi
je 0x14001e320
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
nop dword [rax + rax]
test eax, eax
jne 0x14001e320
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
mov rcx, qword [0x14017b048]
cmp rcx, r15
je 0x14001e30d
test byte [rcx + 0x1c], 1
je 0x14001e30d
cmp byte [rcx + 0x19], 2
jb 0x14001e30d
mov edx, 0x16b
mov dword [rsp + 0x20], eax
mov r9, rsi
lea r8, [0x1401563e0]
mov rcx, qword [rcx + 0x10]
call fcn.140005d40
movzx edi, bx
or edi, 0x80070000
test ebx, ebx
cmovle edi, ebx
jmp 0x14001e50c
lea r15, [rbx + 0x128]
lea r9, [rbp - 0x39]
xor r8d, r8d
mov rdx, r15
mov rcx, qword [rbx + 0x1d8]
call fcn.1401126dc
mov edi, eax
mov r14, qword [rbp - 0x39]
test eax, eax
js 0x14001e505
test byte [rbx + 0x154], 1
je 0x14001e365
xor r8d, r8d
lea rdx, [rbp + 0x6f]
mov rcx, r14
call fcn.1400889dc
jmp 0x14001e37b
lea r9, [rbp + 0x6f]
mov r8b, 1
mov rdx, r15
mov rcx, qword [rbx + 0x1d8]
call fcn.1401126dc
test eax, eax
mov edi, eax
js 0x14001e4e7
mov rcx, qword [rbx + 0x1c8]
test rcx, rcx
je 0x14001e3a4
lea rdx, [rbp - 0x29]
call fcn.14012bec4
mov edi, eax
test eax, eax
js 0x14001e4e7
lea rcx, [rbx + 0x3e8]
lea rdx, [rbp - 9]
call fcn.140103908
mov edi, eax
test eax, eax
jns 0x14001e402
mov rcx, qword [0x14017b048]
lea r15, [0x14017b048]
cmp rcx, r15
je 0x14001e4ee
test byte [rcx + 0x1c], 1
je 0x14001e4ee
cmp byte [rcx + 0x19], 2
jb 0x14001e4ee
mov edx, 0x16c
mov r9d, eax
lea r8, [0x1401563e0]
mov rcx, qword [rcx + 0x10]
call fcn.140004c3c
jmp 0x14001e4ee
lea r8, [rbp + 0x77]
lea rdx, [rbp - 9]
lea rcx, [rbp - 0x29]
call fcn.14013d540
mov edi, eax
test eax, eax
js 0x14001e4e7
mov r9, qword [rbp + 0x77]
mov r8d, dword [rbx + 0x150]
mov rdx, qword [rbp + 0x6f]
mov rcx, r14
call fcn.1400fe688
mov edi, eax
test eax, eax
js 0x14001e4e7
test byte [rbx + 0x154], 0x80
je 0x14001e4e7
cmp byte [rbx + 0x114], r13b
je 0x14001e4e7
mov ecx, 0x40
call fcn.14014b734
mov qword [rbp + 0x67], rax
test rax, rax
je 0x14001e478
mov rcx, rax
call fcn.14003bf6c
mov r15, rax
jmp 0x14001e47b
mov r15, r13
mov rdx, r14
mov rcx, r15
call fcn.140011548
mov edi, eax
test eax, eax
js 0x14001e4e7
mov rdx, qword [rbp + 0x77]
or r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], r13w
jne 0x14001e494
lea r8, [r8*2 + 2]
mov rcx, r15
call fcn.14001189c
mov edi, eax
test eax, eax
js 0x14001e4e7
add rbx, 0x308
mov r13, qword [rbx + 8]
cmp r13, qword [rbx + 0x10]
jb 0x14001e4d9
lea rdx, [r13 + 1]
mov rcx, rbx
call fcn.14000fbf0
test al, al
je 0x14001e637
mov rax, qword [rbx]
mov qword [rax + r13*8], r15
inc qword [rbx + 8]
xor r13d, r13d
lea r15, [0x14017b048]
mov rcx, qword [rbp + 0x6f]
test rcx, rcx
je 0x14001e50c
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
jmp 0x14001e50c
lea r15, [0x14017b048]
test rsi, rsi
je 0x14001e520
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
test r14, r14
je 0x14001e534
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
test r12, r12
je 0x14001e548
mov rcx, r12
call qword [sym.imp.ole32.dll_CoTaskMemFree]
nop dword [rax + rax]
lea rcx, [rbp - 9]
call fcn.140133e2c
mov r14d, r13d
cmp qword [rbp - 0x21], r13
jbe 0x14001e58b
mov rsi, r13
cmp rsi, qword [rbp - 0x21]
jae 0x14001e642
mov rbx, qword [rbp - 0x29]
mov rcx, qword [rbx + rsi*8]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop dword [rax + rax]
mov qword [rbx + rsi*8], r13
inc r14d
mov esi, r14d
cmp rsi, qword [rbp - 0x21]
jb 0x14001e55d
mov rbx, qword [rbp - 0x29]
test rbx, rbx
je 0x14001e5b3
mov rdx, qword [rbp - 0x21]
mov rcx, rbx
call fcn.14003adfc
mov rcx, rbx
call qword [sym.imp.msvcrt.dll_free]
nop dword [rax + rax]
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x21], r13
mov qword [rbp - 0x19], r13
test edi, edi
jns 0x14001e5f0
mov rcx, qword [0x14017b048]
cmp rcx, r15
je 0x14001e5f0
test byte [rcx + 0x1c], 1
je 0x14001e5f0
cmp byte [rcx + 0x19], 2
jb 0x14001e5f0
mov edx, 0x16d
mov r9d, edi
lea r8, [0x1401563e0]
mov rcx, qword [rcx + 0x10]
call fcn.140004c3c
nop
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x14001e606
call qword [sym.imp.msvcrt.dll_free]
nop dword [rax + rax]
nop
lea rcx, [rbp - 0x29]
call fcn.14003a2b8
nop
mov rcx, qword [rbp + 0x77]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop dword [rax + rax]
mov eax, edi
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x8007000e
call fcn.140001950
int3
lea r8, str.iElement___m_nSize
mov edx, 0x2cf
lea rcx, str.onecoreexternal_sdkinc_atlmfc_atlcoll.h
call fcn.140087b08
mov ecx, 0x80070057
call fcn.140001950
int3