Function at 0x14012cc00
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0x20], rax
mov r15d, r8d
mov rbx, rdx
mov r14, rcx
xor edi, edi
lea rdx, str.CBaseInfoCustomDrv::CopyCustomizedUPDFile
lea rcx, [rbp - 0x30]
call fcn.14001abe0
nop
lea r12, [0x1402a8360]
lea rsi, [0x1402bbdb0]
mov rax, qword [0x1402a8360]
cmp rax, r12
je 0x14012cc8e
test byte [rax + 0x1c], 1
je 0x14012cc8e
mov r9, rsi
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
lea edx, [rdi + 0x5b]
lea r8, [0x140261908]
mov rcx, qword [rax + 0x10]
call fcn.140001ad0
mov rax, qword [0x1402a8360]
test rbx, rbx
je 0x14012cf66
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x68], xmm1
xor r8d, r8d
lea rdx, [0x140251dfc]
lea rcx, [rbp - 0x78]
call fcn.140005520
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], rdi
mov qword [rbp - 0x80], rdi
xor r8d, r8d
lea rdx, [0x140251dfc]
lea rcx, [rsp + 0x68]
call fcn.140005520
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x48], xmm1
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rbx + r8*2], 0
jne 0x14012cd00
mov rdx, rbx
lea rcx, [rbp - 0x58]
call fcn.140005520
nop
lea rax, [rbp - 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x68]
mov r8d, r15d
lea rdx, [rbp - 0x58]
mov rcx, r14
call fcn.14012c260
mov ebx, eax
mov rdx, qword [rbp - 0x40]
cmp rdx, 8
jb 0x14012cd77
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012cd72
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012d039
call fcn.1400079c0
test ebx, ebx
je 0x14012cedd
mov r9, r15
shl r9, 5
add r9, 0x28
add r9, r14
mov rdx, qword [r9 + 0x10]
movabs rax, 0x7ffffffffffffffe
sub rax, rdx
cmp rax, qword [rsp + 0x78]
jb 0x14012d03f
lfence
cmp qword [r9 + 0x18], 8
jb 0x14012cdb6
mov r9, qword [r9]
lea rcx, [rsp + 0x68]
cmp qword [rbp - 0x80], 8
cmovae rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
lea rcx, [rsp + 0x48]
call fcn.14001fad0
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rcx, qword [rsp + 0x48]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14012ce32
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rcx, qword [rsp + 0x48]
mov edx, 0x20
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rdx, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rdx, qword [rsp + 0x48]
lea rcx, [rbp - 0x78]
cmp qword [rbp - 0x60], 8
cmovae rcx, qword [rbp - 0x78]
xor r8d, r8d
call qword [sym.imp.SETUPAPI.dll_SetupDecompressOrCopyFileW]
test eax, eax
jne 0x14012ce9a
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x14012ce95
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rcx, qword [rsp + 0x48]
and eax, 0xfffffffe
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov edi, 1
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x14012cedd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012ced7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012d045
call fcn.1400079c0
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 8
jb 0x14012cf1f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012cf19
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012d04b
call fcn.1400079c0
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 8
jb 0x14012cf5f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14012cf5a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14012d033
call fcn.1400079c0
mov rax, qword [0x1402a8360]
mov cl, 1
mov byte [rbp - 0x28], cl
cmp rax, r12
je 0x14012cfac
test byte [rax + 0x1c], cl
je 0x14012cfac
mov r9, rsi
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x5c
mov dword [rsp + 0x20], edi
lea r8, [0x140261908]
mov rcx, qword [rax + 0x10]
call fcn.140001b40
movzx ecx, byte [rbp - 0x28]
mov rax, qword [0x1402a8360]
lea rdx, vtable.WppTrace.0
mov qword [rbp - 0x30], rdx
test cl, cl
jne 0x14012d001
cmp rax, r12
je 0x14012d001
test byte [rax + 0x1c], 1
je 0x14012d001
lea rcx, [rbp - 0x20]
cmp qword [rbp - 8], 8
cmovae rcx, qword [rbp - 0x20]
cmp qword [0x1402bbdc8], 8
cmovae rsi, qword [0x1402bbdb0]
mov edx, 0xa
mov qword [rsp + 0x20], rcx
mov r9, rsi
lea r8, [0x140252818]
mov rcx, qword [rax + 0x10]
call fcn.140006c90
lea rcx, [rbp]
call fcn.1400048a0
lea rcx, [rbp - 0x20]
call fcn.1400048a0
mov eax, edi
mov rcx, qword [rbp + 0x20]
xor rcx, rsp
call fcn.1401e2900
add rsp, 0x130
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1401ec41c
nop
call fcn.1401ec41c
int3
call fcn.140001a90
int3
call fcn.1401ec41c
nop
call fcn.1401ec41c
int3