Function at 0x140045910
Capabilities:
Check if file exists
Get common file path
Get program files directory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x280]
sub rsp, 0x380
mov rax, qword [0x1401c1050]
xor rax, rsp
mov qword [rbp + 0x270], rax
mov r15, rcx
xor r12d, r12d
mov qword [rbp + 0x18], r12
movdqa xmm0, xmmword [0x1401968d0]
movdqu xmmword [rbp + 0x28], xmm0
mov word [rbp + 0x18], r12w
mov qword [rbp - 0x28], r12
movdqu xmmword [rbp - 0x18], xmm0
mov word [rbp - 0x28], r12w
mov qword [rbp - 0x48], r12
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r12w
mov qword [rbp + 0x38], r12
movdqu xmmword [rbp + 0x48], xmm0
mov word [rbp + 0x38], r12w
mov qword [rbp - 8], r12
movdqu xmmword [rbp + 8], xmm0
mov word [rbp - 8], r12w
lea rcx, [rbp - 0x48]
call fcn.14002da60
lea rcx, [rsp + 0x68]
call fcn.140024610
lea rdx, [rbp - 0x28]
lea rcx, [rsp + 0x68]
call fcn.140024800
lea rdx, [rbp + 0x18]
lea rcx, [rsp + 0x68]
call fcn.14005ef00
lea r9d, [r12 + 0x40]
lea r8, [0x140191c5c]
mov edx, 0x100
lea rcx, [rbp + 0x60]
call fcn.14002c370
mov qword [rsp + 0x48], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
lea rax, [rbp + 0x60]
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x140045a00
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x48]
call fcn.140006890
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x140045a5b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045a56
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462d5
call fcn.14007c190
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
mov qword [rbp - 0x68], r12
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], r12w
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x68]
call fcn.1400243f0
cmp dword [rsp + 0x40], 2
jne 0x140045aa9
lea rcx, [rsp + 0x78]
call fcn.14002ca70
jmp 0x140045ae5
xor r9d, r9d
lea r8d, [r9 + 0x2a]
lea rdx, [rbp + 0x60]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x140045ae5
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x78]
call fcn.140006390
mov r8d, 0x1b
lea rdx, str.AdobeAdobe_Creative_Cloud
lea rcx, [rsp + 0x78]
call fcn.1400065c0
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x38], r12
mov r8d, 0x16
lea rdx, [0x1401941f8]
lea rcx, [rsp + 0x20]
call fcn.140006890
nop
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x140045be6
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x140045be6
lea rbx, [rcx + 0xb]
add rbx, rax
mov eax, 2
mul rbx
cmovo rax, rsi
mov rcx, rax
call fcn.140082c70
mov r14, rax
test rax, rax
je 0x140045be6
lea r8, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae r8, qword [rsp + 0x78]
mov rdx, rbx
mov rcx, rax
call fcn.140082c08
lea rdx, [rsp + 0x20]
cmp qword [rsp + 0x38], 8
cmovae rdx, qword [rsp + 0x20]
mov rcx, r14
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov rdx, rsi
nop word [rax + rax]
inc rdx
cmp word [r14 + rdx*2], 0
jne 0x140045b90
mov rax, qword [rbp - 0x70]
cmp rdx, rax
ja 0x140045bd0
lea rdi, [rsp + 0x78]
cmp rax, 8
cmovae rdi, qword [rsp + 0x78]
mov qword [rbp - 0x78], rdx
lea rbx, [rdx + rdx]
mov r8, rbx
mov rdx, r14
mov rcx, rdi
call fcn.14007e1c0
mov word [rbx + rdi], r12w
jmp 0x140045bdd
mov r9, r14
lea rcx, [rsp + 0x78]
call fcn.140006cd0
mov rcx, r14
call fcn.140082770
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x140045c28
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045c23
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462db
call fcn.14007c190
lea rcx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rcx, qword [rsp + 0x78]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140045d38
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x48]
call fcn.140006070
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.14002d5c0
test al, al
je 0x140045d38
mov qword [rsp + 0x20], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov r8d, 0xd
lea rdx, str.ACC_Version:
lea rcx, [rsp + 0x20]
call fcn.140006890
nop
lea rcx, [r15 + 0xf8]
lea rdx, [rsp + 0x20]
call fcn.140005e10
lea rcx, [rbp - 0x68]
cmp rax, rcx
je 0x140045cf6
lea r9, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae r9, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x58]
mov rcx, qword [rax + 0x18]
cmp rdx, rcx
ja 0x140045ced
mov rdi, rax
cmp rcx, 8
jb 0x140045cd0
mov rdi, qword [rax]
mov qword [rax + 0x10], rdx
lea rbx, [rdx + rdx]
mov r8, rbx
mov rdx, r9
mov rcx, rdi
call fcn.14007e1c0
mov word [rbx + rdi], r12w
jmp 0x140045cf6
mov rcx, rax
call fcn.140006cd0
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x140045d38
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045d33
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462e1
call fcn.14007c190
lea rcx, [r15 + 0xd8]
lea rdx, [0x140194230]
call fcn.140006390
mov qword [rsp + 0x20], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov r8d, 9
lea rdx, str.OS_Name:
lea rcx, [rsp + 0x20]
call fcn.140006890
nop
lea rbx, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rbx, qword [rbp - 0x28]
lea rdx, [rsp + 0x20]
lea rcx, [r15 + 0xf8]
call fcn.140005e10
mov rdx, rbx
mov rcx, rax
call fcn.140006390
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x140045dde
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045dd9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462e7
call fcn.14007c190
mov qword [rsp + 0x20], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov r8d, 0xc
lea rdx, str.OS_Version:
lea rcx, [rsp + 0x20]
call fcn.140006890
nop
lea rbx, [rbp + 0x18]
cmp qword [rbp + 0x30], 8
cmovae rbx, qword [rbp + 0x18]
lea rdx, [rsp + 0x20]
lea rcx, [r15 + 0xf8]
call fcn.140005e10
mov rdx, rbx
mov rcx, rax
call fcn.140006390
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x140045e71
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045e6c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462ed
call fcn.14007c190
mov qword [rsp + 0x20], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov r8d, 0xb
lea rdx, str.OS_Locale:
lea rcx, [rsp + 0x20]
call fcn.140006890
nop
lea rbx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rbx, qword [rbp - 0x48]
lea rdx, [rsp + 0x20]
lea rcx, [r15 + 0xf8]
call fcn.140005e10
mov rdx, rbx
mov rcx, rax
call fcn.140006390
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x140045f04
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045eff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462f3
call fcn.14007c190
mov qword [rsp + 0x48], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov r8d, 5
lea rdx, str.Bit:
lea rcx, [rsp + 0x48]
call fcn.140006890
nop
mov r9d, 0x40
lea r8, [0x140191c5c]
mov edx, 0x100
lea rcx, [rbp + 0x60]
call fcn.14002c370
mov qword [rsp + 0x20], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
lea rax, [rbp + 0x60]
nop word [rax + rax]
inc rsi
cmp word [rax + rsi*2], 0
jne 0x140045f60
mov r8, rsi
lea rdx, [rbp + 0x60]
lea rcx, [rsp + 0x20]
call fcn.140006890
nop
lea rbx, [rsp + 0x20]
cmp qword [rsp + 0x38], 8
cmovae rbx, qword [rsp + 0x20]
lea rdx, [rsp + 0x48]
lea rcx, [r15 + 0xf8]
call fcn.140005e10
mov rdx, rbx
mov rcx, rax
call fcn.140006390
nop
mov rdx, qword [rsp + 0x38]
cmp rdx, 8
jb 0x140045fed
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140045fe7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462f9
call fcn.14007c190
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x14004602f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004602a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462ff
call fcn.14007c190
lea rcx, [rbp - 8]
call fcn.1400246e0
mov qword [rsp + 0x48], r12
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
mov r8d, 0x12
lea rdx, str.OS_Build_Version:
lea rcx, [rsp + 0x48]
call fcn.140006890
nop
lea rbx, [rbp - 8]
cmp qword [rbp + 0x10], 8
cmovae rbx, qword [rbp - 8]
lea rdx, [rsp + 0x48]
lea rcx, [r15 + 0xf8]
call fcn.140005e10
mov rdx, rbx
mov rcx, rax
call fcn.140006390
nop
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x1400460cb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400460c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140046305
call fcn.14007c190
lea rcx, [r15 + 0x108]
lea rdx, [0x140194230]
call fcn.140006390
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x14004611f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004611a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004630b
call fcn.14007c190
mov qword [rbp - 0x58], r12
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], r12w
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x140046171
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004616c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140046311
call fcn.14007c190
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x1400461c4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400461be
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140046317
call fcn.14007c190
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140046204
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400461ff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004631d
call fcn.14007c190
movdqa xmm0, xmmword [0x1401968d0]
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r12w
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x140046256
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140046251
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140046323
call fcn.14007c190
movdqa xmm0, xmmword [0x1401968d0]
movdqu xmmword [rbp - 0x18], xmm0
mov word [rbp - 0x28], r12w
mov rdx, qword [rbp + 0x30]
cmp rdx, 8
jb 0x1400462a4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004629f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400462cf
call fcn.14007c190
mov rcx, qword [rbp + 0x270]
xor rcx, rsp
call fcn.14007bb60
lea r11, [rsp + 0x380]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
call fcn.140082b90
nop
call fcn.140082b90
nop
call fcn.140082b90
int3
call fcn.140082b90
int3
call fcn.140082b90
int3
call fcn.140082b90
int3
call fcn.140082b90
nop
call fcn.140082b90
nop
call fcn.140082b90
int3
call fcn.140082b90
nop
call fcn.140082b90
nop
call fcn.140082b90
nop
call fcn.140082b90
nop
call fcn.140082b90
nop
call fcn.140082b90
int3