Function at 0x14006f79c
Capabilities:
Check if file exists
Copy file
Delete file
Move file

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xe0
mov rax, qword [0x1403c2018]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov r13, r9
mov r15, r8
mov dword [rbp - 0x71], edx
mov rdi, rcx
mov qword [rbp - 0x79], rcx
mov ebx, dword [rbp + 0x7f]
mov dword [rbp - 0x51], ebx
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
lea rax, vtable.ClassPtr_class_FSItem_.0
mov qword [rbp - 0x39], rax
xor ecx, ecx
mov r14d, ecx
mov qword [rbp - 0x31], rcx
movups xmmword [rbp - 0x29], xmm0
mov qword [rbp - 0x29], rax
mov qword [rbp - 0x49], rcx
mov qword [rbp - 0x21], rcx
mov esi, ecx
mov byte [rsp + 0x20], cl
mov rcx, r8
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14006f838
mov esi, 0x80070002
mov r8d, 0x518
mov ecx, esi
lea rdx, str.D:dbs_shodct0417_084611_0cmduclientonedriveSetup_standalone_fsmanager_fsmanagerimpl.cpp
call fcn.140064438
jmp 0x14006ff8c
mov rcx, r13
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne byte [rsp + 0x21]
test eax, eax
je 0x14006f85e
test bl, 1
je 0x14006f85e
mov esi, 0x80070050
mov r8d, 0x51c
jmp 0x14006f825
lea rcx, [rdi + 0xc8]
mov qword [rbp - 0x61], rcx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x59], 1
lea rbx, [rdi + 0x10]
mov qword [rbp - 0x69], rbx
xor eax, eax
mov qword [rsp + 0x28], rax
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], ax
or r12, 0xffffffffffffffff
mov r8, r12
inc r8
cmp word [r15 + r8*2], ax
jne 0x14006f89c
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
lea r8, [rsp + 0x28]
lea rdx, [rbp - 0x41]
mov rcx, rbx
call fcn.14006789c
mov rdi, qword [rdi + 0x18]
mov rbx, qword [rax]
lea rcx, [rsp + 0x28]
call fcn.14001b814
cmp rbx, rdi
je 0x14006f949
xor edi, edi
mov qword [rsp + 0x28], rdi
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], di
mov r8, r12
inc r8
cmp word [r15 + r8*2], di
jne 0x14006f8f8
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
lea rdx, [rsp + 0x28]
mov rbx, qword [rbp - 0x69]
mov rcx, rbx
call fcn.1400746c8
mov r14, qword [rax + 8]
test r14, r14
je 0x14006f939
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax]
call qword [str.0B__]
mov qword [rbp - 0x31], r14
lea rcx, [rsp + 0x28]
call fcn.14001b814
jmp 0x14006f94f
mov rbx, qword [rbp - 0x69]
xor edi, edi
mov qword [rsp + 0x28], rdi
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], di
mov r8, r12
inc r8
cmp word [r13 + r8*2], di
jne 0x14006f96a
mov rdx, r13
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
lea r8, [rsp + 0x28]
lea rdx, [rbp - 0x41]
mov rcx, rbx
call fcn.14006789c
mov rcx, qword [rbp - 0x79]
mov rdi, qword [rcx + 0x18]
mov rbx, qword [rax]
lea rcx, [rsp + 0x28]
call fcn.14001b814
cmp rbx, rdi
je 0x14006fa1d
xor edi, edi
mov qword [rsp + 0x28], rdi
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], di
mov r8, r12
inc r8
cmp word [r13 + r8*2], di
jne 0x14006f9cb
mov rdx, r13
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
lea rdx, [rsp + 0x28]
mov rcx, qword [rbp - 0x69]
call fcn.1400746c8
mov rbx, qword [rax + 8]
mov qword [rbp - 0x49], rbx
test rbx, rbx
je 0x14006fa0e
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [str.0B__]
mov qword [rbp - 0x21], rbx
lea rcx, [rsp + 0x28]
call fcn.14001b814
nop
mov rbx, qword [rbp - 0x79]
lea rdi, [rbx + 0xc8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor ecx, ecx
mov byte [rbp - 0x59], cl
test r14, r14
je 0x14006fa48
cmp byte [r14 + 0xb0], cl
jne 0x14006fb6a
mov rax, qword [rbx]
mov rdx, r15
mov rcx, rbx
mov rax, qword [rax + 0x20]
call qword [str.0B__]
mov esi, eax
xor ecx, ecx
test eax, eax
jns 0x14006fa70
mov r8d, 0x52f
mov ecx, eax
jmp 0x14006f827
test r14, r14
jne 0x14006fb7f
mov qword [rbp - 0x61], rdi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x59], 1
xor eax, eax
mov qword [rsp + 0x28], rax
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], ax
mov r8, r12
inc r8
cmp word [r15 + r8*2], ax
jne 0x14006faa7
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
lea r8, [rsp + 0x28]
lea rdx, [rbp - 0x41]
lea rcx, [rbx + 0x10]
call fcn.14006789c
mov rdi, qword [rbx + 0x18]
mov rbx, qword [rax]
lea rcx, [rsp + 0x28]
call fcn.14001b814
cmp rbx, rdi
je 0x14006fb51
xor ebx, ebx
mov qword [rsp + 0x28], rbx
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], bx
mov r8, r12
inc r8
cmp word [r15 + r8*2], bx
jne 0x14006fb04
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
lea rdx, [rsp + 0x28]
mov rcx, qword [rbp - 0x69]
call fcn.1400746c8
mov r14, qword [rax + 8]
test r14, r14
je 0x14006fb42
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax]
call qword [str.0B__]
mov qword [rbp - 0x31], r14
lea rcx, [rsp + 0x28]
call fcn.14001b814
nop
mov rdi, qword [rbp - 0x79]
add rdi, 0xc8
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor ecx, ecx
mov byte [rbp - 0x59], cl
test r14, r14
jne 0x14006fb7f
mov esi, 0x80040b02
mov r8d, 0x53d
jmp 0x14006f825
mov rbx, qword [rbp - 0x49]
cmp r14, rbx
je 0x14006fd80
mov esi, dword [rbp - 0x71]
test esi, esi
jne 0x14006fba1
mov rdx, r15
mov rcx, qword [rbp - 0x79]
call fcn.1400730f4
xor ecx, ecx
mov edi, dword [rbp - 0x51]
mov ebx, edi
and ebx, 1
jne 0x14006fbea
cmp byte [rsp + 0x21], cl
je 0x14006fbea
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14006fbea
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, esi
shr eax, 0x1f
test al, al
je 0x14006ff8c
mov r8d, 0x54e
jmp 0x14006f825
mov rdx, r13
mov rcx, r15
test esi, esi
jne 0x14006fc36
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_CopyFileW]
xor ecx, ecx
test eax, eax
jne 0x14006fc2f
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, esi
shr eax, 0x1f
test al, al
je 0x14006ff8c
mov r8d, 0x555
jmp 0x14006f825
mov esi, ecx
jmp 0x14006ff8c
mov r8d, 2
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
xor esi, esi
test eax, eax
jne 0x14006ff8c
mov r8d, ebx
mov rdx, r13
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x14006fc8b
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
mov eax, esi
shr eax, 0x1f
test al, al
je 0x14006ff8c
mov r8d, 0x55e
jmp 0x14006f825
test r14, r14
je 0x14006fcab
mov rcx, r14
call fcn.1400753dc
mov esi, eax
test eax, eax
jns 0x14006fca9
mov r8d, 0x563
jmp 0x14006fa69
xor esi, esi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14006ff8c
test dil, 4
jne 0x14006ff8c
mov qword [rsp + 0x28], rsi
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], si
inc r12
cmp word [r15 + r12*2], si
jne 0x14006fcde
mov r8, r12
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
mov qword [rbp - 0x19], rsi
xorps xmm0, xmm0
movdqu xmmword [rbp - 9], xmm0
lea rdx, [rsp + 0x28]
lea rcx, [rbp - 0x19]
call fcn.140019c78
mov qword [rbp + 7], 0xffffffff80000001
shr edi, 1
and dil, 1
mov byte [rbp + 0xf], dil
lea rcx, [rsp + 0x28]
call fcn.14001b814
mov rcx, qword [rbp - 0x79]
mov rax, qword [rcx]
lea rdx, [rbp - 0x19]
mov rax, qword [rax + 0xd8]
call qword [str.0B__]
mov esi, eax
test eax, eax
jns 0x14006fd70
mov r8d, 0x568
lea rdx, str.D:dbs_shodct0417_084611_0cmduclientonedriveSetup_standalone_fsmanager_fsmanagerimpl.cpp
mov ecx, eax
call fcn.140064438
nop
lea rcx, [rbp - 0x19]
call fcn.14001b814
jmp 0x14006ff8c
lea rcx, [rbp - 0x19]
call fcn.14001b814
xor esi, esi
jmp 0x14006ff8c
cmp dword [rbp - 0x71], ecx
je 0x14006fe35
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
xor ecx, ecx
test eax, eax
jne 0x14006fe30
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x14006fdcb
cmp eax, 0x20
je 0x14006fdcb
movzx esi, ax
or esi, 0x80070000
xor ecx, ecx
test eax, eax
cmovle esi, eax
test esi, esi
jns 0x14006fe35
mov r8d, 0x583
jmp 0x14006f825
xor eax, eax
test r14, r14
jne 0x14006fdd3
int3
mov qword [rsp + 0x28], rax
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], ax
mov r8, r12
inc r8
cmp word [r15 + r8*2], ax
jne 0x14006fdee
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
lea rdx, [rsp + 0x28]
mov rcx, r14
call fcn.140074cd4
mov esi, eax
lea rcx, [rsp + 0x28]
call fcn.14001b814
xor ecx, ecx
test esi, esi
jns 0x14006fe35
mov r8d, 0x57e
jmp 0x14006f825
mov byte [rsp + 0x20], 1
cmp r14, rbx
je 0x14006fea5
mov qword [rsp + 0x28], rcx
movdqa xmm0, xmmword [0x140364f60]
movdqu xmmword [rsp + 0x38], xmm0
mov word [rsp + 0x28], cx
mov r8, r12
inc r8
cmp word [r13 + r8*2], cx
jne 0x14006fe55
mov rdx, r13
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
mov r8, r14
lea rdx, [rsp + 0x28]
mov rcx, qword [rbp - 0x79]
call fcn.14006ec84
mov esi, eax
lea rcx, [rsp + 0x28]
call fcn.14001b814
xor ecx, ecx
test esi, esi
jns 0x14006fea5
mov edi, esi
lea rbx, str.D:dbs_shodct0417_084611_0cmduclientonedriveSetup_standalone_fsmanager_fsmanagerimpl.cpp
mov r8d, 0x59f
jmp 0x14006ff81
cmp byte [rsp + 0x20], cl
je 0x14006ff8c
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], 7
mov word [rsp + 0x28], cx
inc r12
cmp word [r15 + r12*2], cx
jne 0x14006fec7
mov r8, r12
mov rdx, r15
lea rcx, [rsp + 0x28]
call fcn.14001b664
nop
lea rbx, str.D:dbs_shodct0417_084611_0cmduclientonedriveSetup_standalone_fsmanager_fsmanagerimpl.cpp
xor eax, eax
cmp qword [rsp + 0x38], rax
jne 0x14006ff09
mov r8d, 0x4e5
mov ecx, 0x80070057
mov esi, ecx
mov rdx, rbx
call fcn.140064438
jmp 0x14006ff6b
test r14, r14
jne 0x14006ff16
mov r8d, 0x4e6
jmp 0x14006fef8
lea rdx, [rsp + 0x28]
mov rcx, r14
call fcn.140075300
mov esi, eax
test eax, eax
jns 0x14006ff33
mov r8d, 0x4e9
mov ecx, eax
jmp 0x14006feff
mov rax, qword [r14 + 0x18]
sub rax, qword [r14 + 0x10]
cmp rax, 0x20
jae 0x14006ff6b
mov qword [rbp - 0x61], rdi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rbp - 0x59], 1
lea rdx, [rsp + 0x28]
mov rcx, qword [rbp - 0x69]
call fcn.1400747a0
nop
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov edi, esi
lea rcx, [rsp + 0x28]
call fcn.14001b814
test esi, esi
jns 0x14006ff8c
mov r8d, 0x5a5
mov rdx, rbx
mov ecx, edi
call fcn.140064438
int3
mov rcx, qword [rbp - 0x49]
test rcx, rcx
je 0x14006ffa3
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [str.0B__]
nop
test r14, r14
je 0x14006ffb9
mov rdx, qword [r14]
mov rcx, r14
mov rax, qword [rdx + 8]
call qword [str.0B__]
nop
mov eax, esi
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140038910
mov rbx, qword [rsp + 0x128]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret