Function at 0x18015abb0
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 [0x180267080]
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 0x18015b428
cmp qword [r8 + 0x50], 0
je 0x18015b428
mov r14, qword [r8 + 0x10]
test r14, r14
je 0x18015b428
cmp qword [r8 + 0x30], 0
je 0x18015b428
cmp qword [r8 + 0x70], 0
je 0x18015b428
cmp qword [r8 + 0x90], 0
je 0x18015b428
lea rsi, [r8 + 0x60]
mov r9, rsi
mov r10, qword [rsi + 0x18]
cmp r10, 8
jb 0x18015ac53
mov r9, qword [rsi]
mov r11, qword [rsi + 0x10]
mov edx, 1
cmp r11, rdx
jne 0x18015ac85
mov r8d, edx
lea rcx, [0x1801e2c88]
sub r9, rcx
nop
movzx eax, word [rcx]
cmp word [rcx + r9], ax
jne 0x18015ac85
add rcx, 2
sub r8, rdx
jne 0x18015ac70
jmp 0x18015acc8
mov r8, rsi
cmp r10, 8
jb 0x18015ac91
mov r8, qword [rsi]
cmp r11, rdx
jne 0x18015b428
lea rcx, [0x1801db874]
sub r8, rcx
nop dword [rax]
nop dword [rax + rax]
movzx eax, word [rcx]
cmp word [rcx + r8], ax
jne 0x18015b428
add rcx, 2
sub rdx, 1
jne 0x18015acb0
mov rdi, qword [r13]
add rdi, 8
cmp rdi, rbx
je 0x18015aced
mov rdx, rbx
cmp qword [rbx + 0x18], 8
jb 0x18015ace2
mov rdx, qword [rbx]
mov r8, r14
mov rcx, rdi
call fcn.180009930
lea r8, [rbx + 0x20]
lea rcx, [rdi + 0x20]
cmp rcx, r8
je 0x18015ad10
mov rdx, r8
cmp qword [r8 + 0x18], 8
jb 0x18015ad07
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.180009930
lea r14, [rbx + 0x40]
lea rcx, [rdi + 0x40]
cmp rcx, r14
je 0x18015ad33
mov rdx, r14
cmp qword [r14 + 0x18], 8
jb 0x18015ad2a
mov rdx, qword [r14]
mov r8, qword [r14 + 0x10]
call fcn.180009930
lea rcx, [rdi + 0x60]
cmp rcx, rsi
je 0x18015ad52
mov rdx, rsi
cmp qword [rsi + 0x18], 8
jb 0x18015ad49
mov rdx, qword [rsi]
mov r8, qword [rsi + 0x10]
call fcn.180009930
lea r8, [rbx + 0x80]
lea rcx, [rdi + 0x80]
cmp rcx, r8
je 0x18015ad7b
mov rdx, r8
cmp qword [r8 + 0x18], 8
jb 0x18015ad72
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.180009930
lea r8, [rbx + 0xa0]
lea rcx, [rdi + 0xa0]
cmp rcx, r8
je 0x18015ada4
mov rdx, r8
cmp qword [r8 + 0x18], 8
jb 0x18015ad9b
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.180009930
lea rdx, [rbx + 0xc0]
lea rcx, [rdi + 0xc0]
cmp rcx, rdx
je 0x18015adc3
mov r8, qword [rdx + 8]
mov rdx, qword [rdx]
call fcn.18015b5c0
mov rax, qword [r13]
mov qword [rax + 0x128], r12
mov rdx, r15
lea rcx, [rbp - 0x48]
call fcn.180009740
nop
lea rcx, [rbp - 0x48]
call fcn.180011e10
test al, al
jne 0x18015adf1
lea rcx, [rbp - 0x48]
call fcn.180012cf0
lea rcx, [rbp - 0x48]
call fcn.180011e10
mov rbx, 0xffffffffffffffff
lea r15, [0x180268820]
xor r12d, r12d
lea rcx, [0x18026fff8]
test al, al
jne 0x18015af3f
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x28], rcx
mov rcx, qword [0x18026fff8]
test rcx, rcx
je 0x18015ae35
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov r8, qword [0x180268830]
test r8, r8
je 0x18015ae59
mov rdx, r15
cmp qword [reloc.OLEAUT32.dll_VariantInit], 8
cmovae rdx, qword [0x180268820]
jmp 0x18015af1f
xor edx, edx
mov r8d, 0x20c
lea rcx, [rbp - 0x10]
call fcn.180180610
lea rdx, [rbp - 0x10]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x18015af29
mov word [rbp + 0x1fa], r12w
xor edx, edx
mov r8d, 0x412
lea rcx, [rbp + 0x410]
call fcn.180180610
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 0x18015af04
mov eax, eax
add rax, rax
cmp rax, 0x412
jae 0x18015b458
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 0x18015aef0
lea rdx, [rbp + 0x410]
jmp 0x18015af1f
lea rax, [rbp - 0x10]
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x18015af10
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x48]
call fcn.180009930
nop
mov rcx, qword [0x18026fff8]
test rcx, rcx
je 0x18015af3b
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 0x18015af6a
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rdx, qword [rbp - 0x48]
mov r8, qword [rbp - 0x38]
call fcn.180009930
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
movdqa xmm1, xmmword [0x1801f3a80]
movdqu xmmword [rsp + 0x40], xmm1
mov word [rsp + 0x30], r12w
mov r8d, 8
lea rdx, str.download
lea rcx, [rsp + 0x30]
call fcn.180009930
nop
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x48]
lea rcx, [rsp + 0x50]
call fcn.180016500
mov rdi, rax
lea rax, [rbp - 0x48]
cmp rax, rdi
je 0x18015afe6
lea rcx, [rbp - 0x48]
call fcn.1800098a0
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 0x18015b028
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b023
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b45e
call fcn.18017e41c
movdqa xmm0, xmmword [0x1801f3a80]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r12w
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x18015b07e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b079
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b464
call fcn.18017e41c
movdqa xmm0, xmmword [0x1801f3a80]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], r12w
mov r8, rsi
lea rdx, [rbp - 0x48]
lea rcx, [rsp + 0x70]
call fcn.180016500
mov rdi, rax
lea rax, [rbp - 0x48]
cmp rax, rdi
je 0x18015b0d7
lea rcx, [rbp - 0x48]
call fcn.1800098a0
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 0x18015b118
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b113
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b46a
call fcn.18017e41c
movdqa xmm0, xmmword [0x1801f3a80]
movdqu xmmword [rbp - 0x80], xmm0
mov word [rsp + 0x70], r12w
lea rcx, [rbp - 0x48]
call fcn.180011e10
test al, al
jne 0x18015b141
lea rcx, [rbp - 0x48]
call fcn.180012cf0
lea rcx, [rbp - 0x48]
call fcn.180011e10
test al, al
jne 0x18015b284
mov qword [rbp - 0x20], r12
lea rax, [0x18026fff8]
mov qword [rbp - 0x20], rax
mov rcx, qword [0x18026fff8]
test rcx, rcx
je 0x18015b174
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov r8, qword [0x180268830]
test r8, r8
je 0x18015b198
cmp qword [reloc.OLEAUT32.dll_VariantInit], 8
cmovae r15, qword [0x180268820]
mov rdx, r15
jmp 0x18015b264
xor edx, edx
mov r8d, 0x20c
lea rcx, [rbp + 0x200]
call fcn.180180610
lea rdx, [rbp + 0x200]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x18015b26e
mov word [rbp + 0x40a], r12w
xor edx, edx
mov r8d, 0x412
lea rcx, [rbp + 0x830]
call fcn.180180610
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 0x18015b243
mov eax, eax
add rax, rax
cmp rax, 0x412
jae 0x18015b470
mov word [rbp + rax + 0x830], r12w
lea rax, [rbp + 0x830]
nop dword [rax]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x18015b230
lea rdx, [rbp + 0x830]
jmp 0x18015b261
lea rax, [rbp + 0x200]
nop word [rax + rax]
inc rbx
cmp word [rax + rbx*2], 0
jne 0x18015b250
lea rdx, [rbp + 0x200]
mov r8, rbx
lea rcx, [rbp - 0x48]
call fcn.180009930
nop
mov rcx, qword [0x18026fff8]
test rcx, rcx
je 0x18015b280
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 0x18015b2af
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 8
cmovae rdx, qword [rbp - 0x48]
mov r8, qword [rbp - 0x38]
call fcn.180009930
mov r8, r14
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x70]
call fcn.180016500
mov rbx, rax
lea rax, [rbp - 0x48]
cmp rax, rbx
je 0x18015b2f3
lea rcx, [rbp - 0x48]
call fcn.1800098a0
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 0x18015b333
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b32e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b476
call fcn.18017e41c
movdqa xmm0, xmmword [0x1801f3a80]
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 0x18015b38b
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.1801801b0
mov word [rbx + rdi*2], r12w
jmp 0x18015b3a9
mov qword [rsp + 0x20], 0x10
lea r9, str..NewVersion.data
mov edx, 0x10
lea rcx, [rbp - 0x48]
call fcn.180009e70
mov rcx, qword [r13]
add rcx, 0x100
mov r8b, 1
lea rdx, [rbp - 0x48]
call fcn.18013fc60
mov rcx, qword [r13]
mov byte [rcx], al
mov rax, qword [r13]
mov rcx, qword [rax + 0x130]
test rcx, rcx
je 0x18015b3da
mov byte [rcx + 8], 0
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x18015b416
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18015b411
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18015b452
call fcn.18017e41c
movdqa xmm0, xmmword [0x1801f3a80]
movdqu xmmword [rbp - 0x38], xmm0
mov word [rbp - 0x48], r12w
mov rcx, qword [rbp + 0xc50]
xor rcx, rsp
call fcn.18017df00
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.180182c3c
nop
call fcn.18017e8c8
nop
call fcn.180182c3c
nop
call fcn.180182c3c
int3
call fcn.180182c3c
nop
call fcn.18017e8c8
nop
call fcn.180182c3c
int3