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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov qword [rsp + 0xb0], rbx
mov rdi, rcx
mov r12d, 1
lea r8, str.GlobalVAIO_Update_Offline_Mode_7FDE6909_32D8_48ad_A5C1_F6B18305F378
xor edx, edx
mov ecx, 0x100000
call qword [sym.imp.KERNEL32.dll_OpenMutexW]
test rax, rax
je 0x14006ce57
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movsxd rcx, dword [rdi + 0x18]
shl rcx, 6
add rcx, qword [rdi + 0xa8]
mov rcx, qword [rcx + 0x28]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14006ce57
mov dword [rdi + 0x20], 0xa0010000
jmp 0x14006d5d3
lea rcx, [0x14011d880]
mov rax, qword [0x14011d880]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x50], rbx
movsxd rsi, dword [rdi + 0x18]
shl rsi, 6
add rsi, qword [rdi + 0xa8]
mov edx, 0x5c
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.MSVCR100.dll_wcsrchr]
mov r11, rax
test rax, rax
je 0x14006d5aa
sub r11, qword [rsi + 0x28]
sar r11, 1
cmp r11d, 0xffffffff
je 0x14006d5aa
movsxd rdx, dword [rdi + 0x18]
shl rdx, 6
mov rcx, qword [rdi + 0xa8]
mov rax, qword [rdx + rcx + 0x28]
mov r8d, dword [rax - 0x10]
sub r8d, r11d
dec r8d
lea rcx, [rdx + rcx + 0x28]
lea rdx, [rbp - 0x30]
call fcn.140001c80
nop
mov r15, qword [rax]
lea rcx, [r15 - 0x18]
lea r12, [rbx - 0x18]
or rsi, 0xffffffffffffffff
xor r14d, r14d
cmp rcx, r12
je 0x14006d043
cmp dword [r12 + 0x10], r14d
jl 0x14006cf30
mov rax, qword [r12]
cmp qword [rcx], rax
jne 0x14006cf30
call fcn.140001b90
mov rbx, rax
mov eax, esi
lock xadd dword [r12 + 0x10], eax
dec eax
test eax, eax
jg 0x14006cf27
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 8]
lea rax, [rbx + 0x18]
jmp 0x14006d03f
movsxd r13, dword [r15 - 0x10]
test r13d, r13d
jne 0x14006cf9c
mov r13, qword [r12]
cmp dword [r12 + 8], r14d
je 0x14006d043
cmp dword [r12 + 0x10], r14d
jge 0x14006cf6d
cmp dword [rbx - 0xc], r14d
jge 0x14006cf60
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
jmp 0x14006d043
mov eax, esi
lock xadd dword [r12 + 0x10], eax
dec eax
test eax, eax
jg 0x14006cf89
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 8]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x18]
add rax, 0x18
jmp 0x14006d03f
test r15, r15
jne 0x14006cfac
mov ecx, 0x80070057
call fcn.140001000
int3
mov eax, dword [rbx - 0x10]
mov dword [rbp + 0x48], eax
mov r14, r15
sub r14, rbx
sar r14, 1
test r13d, r13d
jns 0x14006cfcb
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 1
sub ecx, dword [r12 + 0x10]
mov eax, dword [r12 + 0xc]
sub eax, r13d
or eax, ecx
jge 0x14006cff1
mov edx, r13d
lea rcx, [rbp + 0x50]
call fcn.140001c20
mov rbx, qword [rbp + 0x50]
mov eax, dword [rbp + 0x48]
lea r12, [r13 + r13]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
mov r9, r12
add rdx, rdx
cmp r14, rax
ja 0x14006d017
lea r8, [rbx + r14*2]
call qword [sym.imp.MSVCR100.dll_memmove_s]
jmp 0x14006d020
mov r8, r15
call qword [sym.imp.MSVCR100.dll_memcpy_s]
cmp r13d, dword [rbx - 0xc]
jg 0x14006d034
mov dword [rbx - 0x10], r13d
xor r14d, r14d
mov word [r12 + rbx], r14w
jmp 0x14006d043
mov ecx, 0x80070057
call fcn.140001000
int3
mov qword [rbp + 0x50], rax
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006d061
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov edx, Ordinal_49
mov rbx, qword [rbp + 0x50]
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsrchr]
test rax, rax
jne 0x14006d07c
mov eax, esi
jmp 0x14006d082
sub rax, rbx
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x50]
call fcn.140001d30
nop
mov rdx, qword [rax]
mov rcx, rdi
call fcn.140067800
test al, al
sete bl
mov rdx, qword [rbp - 0x28]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006d0c1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test bl, bl
je 0x14006d0e4
lea rcx, str.CPatchUpdateController::Download:Create_Patch_Directory_Error
call fcn.1400191f0
mov r12d, 1
mov rdx, qword [rbp + 0x50]
add rdx, 0xffffffffffffffe8
jmp 0x14006d5bf
mov qword [rdi + 0x40], r14
mov r12d, 3
cmp byte [rdi + 0xb], 0
je 0x14006d1a0
mov rdx, rsi
lea rcx, [rbp - 0x40]
call fcn.140001030
nop
movsxd rcx, dword [rdi + 0x18]
shl rcx, 6
mov rax, qword [rdi + 0xa8]
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
mov r9d, r12d
mov r8d, 0xc0000000
mov rdx, qword [rcx + rax + 0x30]
lea rcx, [rbp - 0x40]
call fcn.14003fc20
lea rcx, [rbp - 0x40]
call fcn.14003fbb0
mov qword [rdi + 0x40], rax
add qword [rdi + 0x50], rax
movsxd rdx, dword [rdi + 0x18]
shl rdx, 6
mov r8, qword [rdi + 0xa8]
mov rcx, qword [rdx + r8]
cmp rcx, rax
jne 0x14006d197
test rcx, rcx
je 0x14006d197
mov rdx, qword [rdx + r8 + 0x30]
mov rcx, rdi
call fcn.1400687d0
test al, al
jne 0x14006d197
mov r12d, 1
lea rcx, [rbp - 0x40]
call fcn.14003faa0
nop
mov rdx, qword [rbp + 0x50]
add rdx, 0xffffffffffffffe8
jmp 0x14006d5bf
lea rcx, [rbp - 0x40]
call fcn.14003faa0
mov dword [rbp + 0x48], r14d
movsxd rax, dword [rdi + 0x18]
shl rax, 6
add rax, qword [rdi + 0xa8]
mov rbx, qword [rax + 0x18]
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
call qword [rax + reloc.ATL100.DLL_Ordinal_32]
mov rcx, rax
cmp dword [rbx - 8], 0
jl 0x14006d1da
cmp rax, qword [rbx - 0x18]
jne 0x14006d1da
lea r13, [rbx - 0x18]
lock inc dword [rbx - 8]
jmp 0x14006d219
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx - 0x10]
call qword [rax]
mov r13, rax
test rax, rax
jne 0x14006d1f6
call fcn.140001920
int3
mov eax, dword [rbx - 0x10]
mov dword [r13 + 8], eax
mov eax, dword [rbx - 0x10]
inc eax
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rbx
add rdx, rdx
lea rcx, [r13 + 0x18]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
lea rax, [r13 + 0x18]
mov qword [rbp + 0x58], rax
lea rdx, [rbp + 0x58]
mov rcx, rdi
call fcn.140069b00
mov rbx, qword [rbp + 0x58]
movsxd r13, dword [rbx - 0x10]
test r13d, r13d
jns 0x14006d245
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r13d
or eax, ecx
jge 0x14006d267
mov edx, r13d
lea rcx, [rbp + 0x58]
call fcn.140001c20
mov rbx, qword [rbp + 0x58]
lea eax, [r13 + 1]
movsxd rdx, eax
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll__wcslwr_s]
cmp r13d, dword [rbx - 0xc]
jg 0x14006d59f
mov dword [rbx - 0x10], r13d
mov word [rbx + r13*2], r14w
lea r13, [rbx - 0x18]
mov rcx, qword [r13]
mov rax, qword [rcx]
call qword [rax + reloc.ATL100.DLL_Ordinal_32]
mov rcx, rax
cmp dword [r13 + 0x10], 0
jl 0x14006d2b2
cmp rax, qword [r13]
jne 0x14006d2b2
mov rbx, r13
lock inc dword [r13 + 0x10]
jmp 0x14006d2f4
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [r13 + 8]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x14006d2cf
call fcn.140001920
int3
mov eax, dword [r13 + 8]
mov dword [rbx + 8], eax
mov eax, dword [r13 + 8]
inc eax
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [r13 + 0x18]
add rdx, rdx
lea rcx, [rbx + 0x18]
call qword [sym.imp.MSVCR100.dll_memcpy_s]
add rbx, 0x18
mov qword [rbp - 0x10], rbx
cmp dword [rbx - 0x10], 0
jl 0x14006d398
lea rdx, str.http:__
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsstr]
test rax, rax
je 0x14006d326
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x14006d372
cmp dword [rbx - 0x10], 0
jl 0x14006d398
lea rdx, str.https:__
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsstr]
test rax, rax
je 0x14006d34c
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
jne 0x14006d372
cmp dword [rbx - 0x10], 0
jl 0x14006d398
lea rdx, str.ftp:__
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsstr]
test rax, rax
je 0x14006d398
sub rax, rbx
sar rax, 1
cmp eax, 0xffffffff
je 0x14006d398
movsxd rdx, dword [rdi + 0x18]
shl rdx, 6
mov rax, qword [rdi + 0xa8]
lea r8, [rbp + 0x48]
mov rdx, qword [rdx + rax + 0x18]
mov rcx, rdi
call fcn.1400672e0
mov r12d, dword [rbp + 0x48]
jmp 0x14006d39c
mov dword [rbp + 0x48], r12d
mov rax, qword [rdi + 0xb0]
sub rax, qword [rdi + 0xa8]
sar rax, 6
mov dword [rdi + 0x1c], eax
cmp qword [rdi + 0x30], 0
je 0x14006d40c
cmp dword [rdi + 0x18], 0
je 0x14006d3d0
cmp byte [rdi + 0x70], 0
je 0x14006d3d0
mov byte [rdi + 8], 0
mov r8d, 8
jmp 0x14006d3da
mov byte [rdi + 0x70], 1
mov r8d, 7
xor r9d, r9d
mov edx, 0x8003
mov rcx, qword [0x14011e1e0]
call qword [sym.imp.USER32.dll_PostMessageW]
movsxd rcx, dword [rdi + 0x18]
shl rcx, 6
mov rax, qword [rdi + 0xa8]
lea rdx, [rcx + rax + 8]
mov rcx, qword [rdi + 0x30]
call fcn.1400230c0
dec r12d
je 0x14006d44e
dec r12d
je 0x14006d444
dec r12d
je 0x14006d436
mov r12d, 1
lea rcx, str.CPatchUpdateController::Download:ServiceType_error
call fcn.1400191f0
mov dword [rdi + 0x20], 0xa0010000
jmp 0x14006d459
lea rdx, [rbp + 0x58]
mov rcx, rdi
call fcn.140065eb0
jmp 0x14006d456
mov rcx, rdi
call fcn.14006c970
jmp 0x14006d456
mov rcx, rdi
call fcn.14006a3d0
mov r12d, eax
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006d474
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov eax, esi
lock xadd dword [r13 + 0x10], eax
dec eax
test eax, eax
jg 0x14006d490
mov rcx, qword [r13]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006d4ae
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test r12d, r12d
jne 0x14006d5d3
movsxd rdx, dword [rdi + 0x18]
shl rdx, 6
mov rcx, qword [rdi + 0xa8]
mov rax, qword [rdi + 0x40]
cmp qword [rdx + rcx], rax
je 0x14006d56f
mov r12d, 1
mov dword [rdi + 0x20], 0xa0010003
mov rcx, qword [rdx + rcx + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
movsxd rcx, dword [rdi + 0x18]
shl rcx, 6
add rcx, qword [rdi + 0xa8]
mov rcx, qword [rcx + 0x30]
sub rcx, 0x18
call fcn.140001b90
lea rbx, [rax + 0x18]
mov qword [rbp - 0x38], rbx
lea edx, [r12 + 0x5b]
mov rcx, rbx
call qword [sym.imp.MSVCR100.dll_wcsrchr]
test rax, rax
jne 0x14006d527
mov eax, esi
jmp 0x14006d52d
sub rax, rbx
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x38]
call fcn.140001d30
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14006d565
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
jmp 0x14006d5bf
mov rdx, qword [rdx + rcx + 0x30]
mov rcx, rdi
call fcn.1400687d0
test al, al
jne 0x14006d5d3
mov r12d, 1
mov dword [rdi + 0x20], 0xa0011000
mov dword [rdi + 0x24], r12d
lea rcx, str.CPatchUpdateController::Download:Rename_for_patch_error
call fcn.1400191f0
jmp 0x14006d5d3
mov ecx, 0x80070057
call fcn.140001000
nop
mov dword [rdi + 0x20], 0xa0010000
mov r12d, 1
lea rdx, [rbx - 0x18]
or rsi, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x14006d5d3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, r12d
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret