Function at 0x18015ac40
Capabilities:
Get common file path

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc60]
sub rsp, 0xd60
mov qword [rbp - 0x50], 0xfffffffffffffffe
mov qword [rsp + 0xdb8], rbx
mov rax, qword [0x180268080]
xor rax, rsp
mov qword [rbp + 0xc50], rax
mov r12, r9
mov rbx, r8
mov r15, rdx
mov r13, rcx
cmp qword [rdx + 0x10], 0
je 0x18015b4b8
cmp qword [r8 + 0x50], 0
je 0x18015b4b8
mov r14, qword [r8 + 0x10]
test r14, r14
je 0x18015b4b8
cmp qword [r8 + 0x30], 0
je 0x18015b4b8
cmp qword [r8 + 0x70], 0
je 0x18015b4b8
cmp qword [r8 + 0x90], 0
je 0x18015b4b8
lea rsi, [r8 + 0x60]
mov r9, rsi
mov r10, qword [rsi + 0x18]
cmp r10, 8
jb 0x18015ace3
mov r9, qword [rsi]
mov r11, qword [rsi + 0x10]
mov edx, 1
cmp r11, rdx
jne 0x18015ad15
mov r8d, edx
lea rcx, [0x1801e3db8]
sub r9, rcx
nop
movzx eax, word [rcx]
cmp word [rcx + r9], ax
jne 0x18015ad15
add rcx, 2
sub r8, rdx
jne 0x18015ad00
jmp 0x18015ad58
mov r8, rsi
cmp r10, 8
jb 0x18015ad21
mov r8, qword [rsi]
cmp r11, rdx
jne 0x18015b4b8
lea rcx, [0x1801dc9a4]
sub r8, rcx
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rcx]
cmp word [rcx + r8], ax
jne 0x18015b4b8
add rcx, 2
sub rdx, 1
jne 0x18015ad40
mov rdi, qword [r13]
add rdi, 8
cmp rdi, rbx
je 0x18015ad7d
mov rdx, rbx
cmp qword [rbx + 0x18], 8
jb 0x18015ad72
mov rdx, qword [rbx]
mov r8, r14
mov rcx, rdi
call fcn.1800099c0
lea r8, [rbx + 0x20]
lea rcx, [rdi + 0x20]
cmp rcx, r8
je 0x18015ada0
mov rdx, r8
cmp qword [r8 + 0x18], 8
jb 0x18015ad97
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.1800099c0
lea r14, [rbx + 0x40]
lea rcx, [rdi + 0x40]
cmp rcx, r14
je 0x18015adc3
mov rdx, r14
cmp qword [r14 + 0x18], 8
jb 0x18015adba
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
call fcn.1800099c0
lea rcx, [rdi + 0x60]
cmp rcx, rsi
je 0x18015ade2
mov rdx, rsi
cmp qword [rsi + 0x18], 8
jb 0x18015add9
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
call fcn.1800099c0
lea r8, [rbx + 0x80]
lea rcx, [rdi + 0x80]
cmp rcx, r8
je 0x18015ae0b
mov rdx, r8
cmp qword [r8 + 0x18], 8
jb 0x18015ae02
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.1800099c0
lea r8, [rbx + 0xa0]
lea rcx, [rdi + 0xa0]
cmp rcx, r8
je 0x18015ae34
mov rdx, r8
cmp qword [r8 + 0x18], 8
jb 0x18015ae2b
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.1800099c0
lea rdx, [rbx + 0xc0]
lea rcx, [rdi + 0xc0]
cmp rcx, rdx
je 0x18015ae53
mov r8, qword [rdx + 8]
mov rdx, qword [rdx]
call fcn.18015b650
mov rax, qword [r13]
mov qword [rax + 0x128], r12
mov rdx, r15
lea rcx, [rbp - 0x48]
call fcn.1800097d0
nop
lea rcx, [rbp - 0x48]
call fcn.180011ea0
test al, al
jne 0x18015ae81
lea rcx, [rbp - 0x48]
call fcn.180012d80
lea rcx, [rbp - 0x48]
call fcn.180011ea0
mov rbx, 0xffffffffffffffff
lea r15, [0x180269870]
xor r12d, r12d
lea rcx, [0x180271048]
test al, al
jne 0x18015afcf
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x28], rcx
mov rcx, qword [0x180271048]
test rcx, rcx
je 0x18015aec5
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov r8, qword [0x180269880]
test r8, r8
je 0x18015aee9
mov rdx, r15
cmp qword [reloc.OLEAUT32.dll_VariantInit], 8
cmovae rdx, qword [0x180269870]
jmp 0x18015afaf
xor edx, edx
mov r8d, 0x20c
lea rcx, [rbp - 0x10]
call fcn.180180df0
lea rdx, [rbp - 0x10]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x18015afb9
mov word [rbp + 0x1fa], r12w
xor edx, edx
mov r8d, 0x412
lea rcx, [rbp + 0x410]
call fcn.180180df0
mov r8d, 0x208
lea rdx, [rbp + 0x410]
lea rcx, [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea ecx, [rax - 1]
cmp ecx, 0x207
ja 0x18015af94
mov eax, eax
add rax, rax
cmp rax, 0x412
jae 0x18015b4e8
mov word [rbp + rax + 0x410], r12w
lea rax, [rbp + 0x410]
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x18015af80
lea rdx, [rbp + 0x410]
jmp 0x18015afaf
lea rax, [rbp - 0x10]
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x18015afa0
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x48]
call fcn.1800099c0
nop
mov rcx, qword [0x180271048]
test rcx, rcx
je 0x18015afcb
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rbp - 0x28], r12
mov rcx, qword [r13]
add rcx, 0x138
lea rax, [rbp - 0x48]
cmp rcx, rax
je 0x18015affa
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rdx, qword [rbp - 0x48]
mov r8, qword [rbp - 0x38]
call fcn.1800099c0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
movdqa xmm1, xmmword [0x1801f4bb0]
movdqu xmmword [rsp + 0x40], xmm1
mov word [rsp + 0x30], r12w
mov r8d, 8
lea rdx, str.download
lea rcx, [rsp + 0x30]
call fcn.1800099c0
nop
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x48]
lea rcx, [rsp + 0x50]
call fcn.180016590
mov rdi, rax
lea rax, [rbp - 0x48]
cmp rax, rdi
je 0x18015b076
lea rcx, [rbp - 0x48]
call fcn.180009930
movups xmm0, xmmword [rdi]
movups xmmword [rbp - 0x48], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbp - 0x38], xmm1
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], 7
mov word [rdi], r12w
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x18015b0b8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b0b3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b4ee
call fcn.18017ebfc
movdqa xmm0, xmmword [0x1801f4bb0]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r12w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x18015b10e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b109
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b4f4
call fcn.18017ebfc
movdqa xmm0, xmmword [0x1801f4bb0]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r12w
mov r8, rsi
lea rdx, [rbp - 0x48]
lea rcx, [rsp + 0x70]
call fcn.180016590
mov rdi, rax
lea rax, [rbp - 0x48]
cmp rax, rdi
je 0x18015b167
lea rcx, [rbp - 0x48]
call fcn.180009930
movups xmm0, xmmword [rdi]
movups xmmword [rbp - 0x48], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbp - 0x38], xmm1
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], 7
mov word [rdi], r12w
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x18015b1a8
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b1a3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b4fa
call fcn.18017ebfc
movdqa xmm0, xmmword [0x1801f4bb0]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], r12w
lea rcx, [rbp - 0x48]
call fcn.180011ea0
test al, al
jne 0x18015b1d1
lea rcx, [rbp - 0x48]
call fcn.180012d80
lea rcx, [rbp - 0x48]
call fcn.180011ea0
test al, al
jne 0x18015b314
mov qword [rbp - 0x20], r12
lea rax, [0x180271048]
mov qword [rbp - 0x20], rax
mov rcx, qword [0x180271048]
test rcx, rcx
je 0x18015b204
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov r8, qword [0x180269880]
test r8, r8
je 0x18015b228
cmp qword [reloc.OLEAUT32.dll_VariantInit], 8
cmovae r15, qword [0x180269870]
mov rdx, r15
jmp 0x18015b2f4
xor edx, edx
mov r8d, 0x20c
lea rcx, [rbp + 0x200]
call fcn.180180df0
lea rdx, [rbp + 0x200]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x18015b2fe
mov word [rbp + 0x40a], r12w
xor edx, edx
mov r8d, 0x412
lea rcx, [rbp + 0x830]
call fcn.180180df0
mov r8d, 0x208
lea rdx, [rbp + 0x830]
lea rcx, [rbp + 0x200]
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea ecx, [rax - 1]
cmp ecx, 0x207
ja 0x18015b2d3
mov eax, eax
add rax, rax
cmp rax, 0x412
jae 0x18015b500
mov word [rbp + rax + 0x830], r12w
lea rax, [rbp + 0x830]
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x18015b2c0
lea rdx, [rbp + 0x830]
jmp 0x18015b2f1
lea rax, [rbp + 0x200]
nop word [rax + rax]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x18015b2e0
lea rdx, [rbp + 0x200]
mov r8, rbx
lea rcx, [rbp - 0x48]
call fcn.1800099c0
nop
mov rcx, qword [0x180271048]
test rcx, rcx
je 0x18015b310
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rbp - 0x20], r12
mov rcx, qword [r13]
add rcx, 0x158
lea rax, [rbp - 0x48]
cmp rcx, rax
je 0x18015b33f
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rdx, qword [rbp - 0x48]
mov r8, qword [rbp - 0x38]
call fcn.1800099c0
mov r8, r14
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x70]
call fcn.180016590
mov rbx, rax
lea rax, [rbp - 0x48]
cmp rax, rbx
je 0x18015b383
lea rcx, [rbp - 0x48]
call fcn.180009930
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x48], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp - 0x38], xmm1
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], 7
mov word [rbx], r12w
mov rdx, qword [rbp - 0x58]
cmp rdx, 8
jb 0x18015b3c3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b3be
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b506
call fcn.18017ebfc
movdqa xmm0, xmmword [0x1801f4bb0]
movdqu xmmword [rbp - 0x60], xmm0
mov word [rbp - 0x70], r12w
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x30]
mov rax, rdx
sub rax, rcx
cmp rax, 0x10
jb 0x18015b41b
lea rdi, [rcx + 0x10]
mov qword [rbp - 0x38], rdi
lea rbx, [rbp - 0x48]
cmp rdx, 8
cmovae rbx, qword [rbp - 0x48]
lea rcx, [rbx + rcx*2]
mov r8d, 0x20
lea rdx, str..NewVersion.data
call fcn.180180990
mov word [rbx + rdi*2], r12w
jmp 0x18015b439
mov qword [rsp + 0x20], 0x10
lea r9, str..NewVersion.data
mov edx, 0x10
lea rcx, [rbp - 0x48]
call fcn.180009f00
mov rcx, qword [r13]
add rcx, 0x100
mov r8b, 1
lea rdx, [rbp - 0x48]
call fcn.18013fcf0
mov rcx, qword [r13]
mov byte [rcx], al
mov rax, qword [r13]
mov rcx, qword [rax + 0x130]
test rcx, rcx
je 0x18015b46a
mov byte [rcx + 8], 0
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x18015b4a6
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b4a1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b4e2
call fcn.18017ebfc
movdqa xmm0, xmmword [0x1801f4bb0]
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r12w
mov rcx, qword [rbp + 0xc50]
xor rcx, rsp
call fcn.18017e6e0
mov rbx, qword [rsp + 0xdb8]
add rsp, 0xd60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.18018341c
nop
call fcn.18017f0a8
nop
call fcn.18018341c
nop
call fcn.18018341c
int3
call fcn.18018341c
nop
call fcn.18017f0a8
nop
call fcn.18018341c
int3