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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x670]
sub rsp, 0x770
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x7c8], rbx
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rbp + 0x660], rax
movsxd rbx, r8d
mov rdi, rdx
mov qword [rsp + 0x40], rdx
mov r15, rcx
xor r8d, r8d
lea rdx, str.CBaseInfoCustomDrv::CopyCustomizedUPDFile
lea rcx, [rsp + 0x58]
call fcn.1400075a0
nop
xor esi, esi
test rdi, rdi
je 0x1400b5aed
call fcn.140102a14
mov rcx, rax
mov eax, esi
test rcx, rcx
setne al
test eax, eax
jne 0x1400b570a
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
lea rax, [0x1402dc4e0]
test rax, 0xffffffffffff0000
jne 0x1400b5749
movzx edi, ax
mov ecx, edi
call fcn.1401027e8
test rax, rax
je 0x1400b575a
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140005b00
jmp 0x1400b575a
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140005d50
nop
mov dword [rsp + 0x70], esi
xor edx, edx
mov r8d, 0xb0
lea rcx, [rsp + 0x78]
call fcn.14024b970
mov r13d, esi
mov eax, ebx
lea rax, [rax + rax*4]
mov qword [rsp + 0x48], rax
mov r14, rbx
mov rbx, rsi
or r12, 0xffffffffffffffff
cmp qword [r15 + rax*8 + 0x1a0], rbx
jle 0x1400b5917
lea rax, [r14 + r14*4 + 0x32]
nop dword [rax + rax]
test rbx, rbx
js 0x1400b5911
cmp rbx, qword [r15 + rax*8 + 0x10]
jge 0x1400b5911
mov rax, qword [r15 + rax*8 + 8]
mov rcx, qword [rax + rbx*8]
sub rcx, 0x18
call fcn.140006190
lea rdi, [rax + 0x18]
mov qword [rsp + 0x38], rdi
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rsi, qword [rax]
mov dword [rsp + 0x20], r12d
lea r9, [rsp + 0x70]
mov r8, qword [rsp + 0x40]
mov rdx, rdi
mov rcx, rax
call qword [rsi + VarBstrFromDisp]
test eax, eax
je 0x1400b583e
lea rdx, [rdi - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b5816
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc r13d
inc rbx
lea rax, [r14 + r14*4]
mov rcx, qword [r15 + rax*8 + 0x1a0]
movsxd rax, r13d
cmp rax, rcx
lea rax, [r14 + r14*4 + 0x32]
jl 0x1400b57a0
jmp 0x1400b5917
mov edx, 0x5c
mov rcx, rdi
call fcn.140249468
test rax, rax
jne 0x1400b5855
mov eax, r12d
jmp 0x1400b585b
sub rax, rdi
sar rax, 1
lea r8d, [rax + 1]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.14000d770
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x30]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400b58ce
cmp dword [rdi + 0x10], 0
jl 0x1400b58bf
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400b58bf
call fcn.140006190
mov rsi, rax
mov eax, r12d
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x1400b58b4
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x1400b58ce
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140005d50
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b58ef
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b5917
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400b5917
call fcn.140102ffc
int3
xor eax, eax
lea rdi, [0x1402dc4e0]
mov rsi, qword [rsp + 0x30]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x1400b5934
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
xor esi, esi
test al, al
je 0x1400b5acd
mov rdi, qword [rbp - 0x58]
mov word [rbp + 0x240], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x242]
call fcn.14024b970
test rdi, rdi
je 0x1400b59b9
cmp word [rdi], si
je 0x1400b59b9
mov edx, 0x2e
mov rcx, rdi
call fcn.140249468
test rax, rax
je 0x1400b5992
lea rdx, str..UPD
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x1400b59a5
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cdqe
lea rdi, [rdi + rax*2]
jmp 0x1400b5962
mov r8, rdi
mov edx, 0x104
lea rcx, [rbp + 0x240]
call fcn.140246628
lea rcx, [rbp + 0x240]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jle 0x1400b5acd
mov word [rbp + 0x450], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x452]
call fcn.14024b970
mov word [rbp + 0x30], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x32]
call fcn.14024b970
lea rdx, [rbp + 0x240]
mov qword [rsp + 0x28], rdx
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [0x1402e3978]
mov r8, r12
mov edx, 0x104
lea rcx, [rbp + 0x450]
call fcn.14024679c
mov rcx, qword [rsp + 0x48]
lea rdx, [r15 + rcx*8 + 0x30]
cmp qword [rdx + 0x18], 8
jb 0x1400b5a43
mov rdx, qword [rdx]
lea rax, [rbp + 0x240]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
lea r9, [0x1402e3978]
mov r8, r12
mov edx, 0x104
lea rcx, [rbp + 0x30]
call fcn.14024679c
lea rcx, [rbp + 0x30]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1400b5a93
mov edx, 0x20
lea rcx, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
xor r8d, r8d
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x450]
call qword [sym.imp.SETUPAPI.dll_SetupDecompressOrCopyFileW]
test eax, eax
jne 0x1400b5acd
lea rcx, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x1400b5ac8
and eax, 0xfffffffe
mov edx, eax
lea rcx, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov esi, 1
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x1400b5aed
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r9d, esi
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x58]
call fcn.140007780
nop
lea rcx, [rsp + 0x58]
call fcn.140007730
mov eax, esi
mov rcx, qword [rbp + 0x660]
xor rcx, rsp
call fcn.140245660
mov rbx, qword [rsp + 0x7c8]
add rsp, 0x770
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret