Function at 0x140013190
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc48
mov r14, rcx
mov rax, qword [0x140037008]
xor rax, rsp
mov qword [rsp + 0xc40], rax
mov word [rcx], 0
movzx eax, word [rdx]
test ax, ax
je 0x140013918
mov rsi, r8
mov rdi, rdx
lea r15, [rsp + 0x440]
lea rdx, str.TEMP
lea r12, str.PROGRAM
lea rbp, str.PROGRAM_BASE
lea r13, str._PROGRAM_
lea rbx, [0x140031be0]
add rdi, 2
xor ecx, ecx
jmp 0x140013220
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140013918
cmp ax, 0x25
jne 0x140013240
test rcx, rcx
jne 0x140013260
mov word [rsp + 0x440], 0
mov rcx, r15
jmp 0x140013210
test rcx, rcx
je 0x140013420
mov word [rcx], ax
add rcx, 2
jmp 0x140013210
mov word [rcx], 0
mov rcx, r15
call fcn.14001bf24
test eax, eax
je 0x140013439
mov rcx, r15
mov rdx, r12
call fcn.14001bf24
test eax, eax
je 0x14001344b
mov rcx, r15
mov rdx, rbp
call fcn.14001bf24
test eax, eax
je 0x1400134c6
mov rcx, r15
mov rdx, rbx
call fcn.14001bf24
test eax, eax
je 0x14001352c
mov rcx, r15
lea rdx, str.HOME
call fcn.14001bf24
test eax, eax
je 0x140013649
mov rcx, r15
lea rdx, str.CACHE_DIR
call fcn.14001bf24
test eax, eax
je 0x1400136cf
mov rcx, r15
lea rdx, str.COMPANY
call fcn.14001bf24
test eax, eax
je 0x14001379f
mov rcx, r15
lea rdx, str.PRODUCT
call fcn.14001bf24
test eax, eax
je 0x1400137bc
mov rcx, r15
lea rdx, str.VERSION
call fcn.14001bf24
test eax, eax
je 0x14001389a
mov rcx, r15
lea rdx, str.TIME
call fcn.14001bf24
test eax, eax
jne 0x140013947
mov qword [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x30]
mov edx, 0x400
lea rcx, [rsp + 0x40]
lea r8, str._lld
call fcn.140013960
cmp word [r14], 0
mov r13, rsi
mov rbx, r14
je 0x140013382
dec r13
cmp word [rbx + 2], 0
lea rbx, [rbx + 2]
jne 0x140013374
movzx r15d, byte [rsp + 0x40]
test r15b, r15b
je 0x14001360c
lea r12, [rsp + 0x40]
cmp word [rbx], 0
mov rbp, rbx
mov rax, r13
je 0x1400133c1
mov rax, r13
mov rcx, rbx
nop dword [rax + rax]
lea rbp, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, rbp
jne 0x1400133b0
test rax, rax
je 0x14001394b
mov rcx, rbp
call fcn.14001cb18
lea rcx, [rax*2]
add rcx, rbp
mov byte [rsp + 0x3e], r15b
mov byte [rsp + 0x3f], 0
mov r8d, 2
lea rdx, [rsp + 0x3e]
call fcn.14001c1ec
add rbx, 2
dec r13
movzx r15d, byte [r12 + 1]
inc r12
test r15b, r15b
jne 0x140013396
jmp 0x14001360c
test rsi, rsi
je 0x140013947
mov word [r14], ax
add r14, 2
dec rsi
jmp 0x14001388c
mov ecx, esi
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
jmp 0x140013760
mov r13, rbp
call fcn.1400170f4
cmp word [r14], 0
mov rdx, rsi
mov rcx, r14
je 0x14001346e
dec rdx
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x140013460
mov rax, qword [rax]
mov rax, qword [rax]
movzx ebp, word [rax]
mov r9, rbx
test bp, bp
je 0x1400134ad
xor ebx, ebx
nop word cs:[rax + rax]
cmp rdx, rbx
je 0x14001394b
mov word [rcx], bp
add rcx, 2
movzx ebp, word [rax + rbx*2 + 2]
inc rbx
test bp, bp
jne 0x140013490
mov word [rcx], 0
xor eax, eax
mov rbp, r13
lea r13, str._PROGRAM_
mov rbx, r9
jmp 0x140013760
mov rcx, r14
call fcn.14001cb18
mov r8, rsi
sub r8, rax
mov rcx, r14
mov rdx, r13
call fcn.140013190
test al, al
je 0x140013947
mov rbx, rbp
mov rcx, r14
call fcn.14001cb18
cmp rax, 4
jb 0x14001351b
mov rbp, rax
lea rcx, [r14 + rax*2]
add rcx, 0xfffffffffffffff8
lea rdx, str..exe
call fcn.14001bf24
test eax, eax
jne 0x14001351b
mov word [r14 + rbp*2 - 8], 0
xor eax, eax
mov rbp, rbx
lea rbx, [0x140031be0]
jmp 0x140013760
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, 0x80
lea rcx, [rsp + 0x40]
lea r8, [0x1400319fe]
mov r9d, eax
call fcn.140013960
cmp word [r14], 0
mov rbp, rsi
mov rbx, r14
je 0x14001356e
nop dword [rax + rax]
dec rbp
cmp word [rbx + 2], 0
lea rbx, [rbx + 2]
jne 0x140013560
movzx r15d, byte [rsp + 0x40]
test r15b, r15b
je 0x14001360c
lea r12, [rsp + 0x40]
nop word cs:[rax + rax]
cmp word [rbx], 0
mov r13, rbx
mov rax, rbp
je 0x1400135c1
mov rax, rbp
mov rcx, rbx
nop word cs:[rax + rax]
lea r13, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r13
jne 0x1400135b0
test rax, rax
je 0x14001394b
mov rcx, r13
call fcn.14001cb18
lea rcx, [rax*2]
add rcx, r13
mov byte [rsp + 0x30], r15b
mov byte [rsp + 0x31], 0
mov r8d, 2
lea rdx, [rsp + 0x30]
call fcn.14001c1ec
add rbx, 2
dec rbp
movzx r15d, byte [r12 + 1]
inc r12
test r15b, r15b
jne 0x140013590
xor eax, eax
lea r15, [rsp + 0x440]
lea rdx, str.TEMP
lea r12, str.PROGRAM
lea rbp, str.PROGRAM_BASE
lea r13, str._PROGRAM_
lea rbx, [0x140031be0]
cmp word [r14], 0
jne 0x140013780
jmp 0x14001385a
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor ecx, ecx
mov edx, 0x28
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140013947
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x14001368e
nop dword [rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013680
mov r8, rbp
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x14001374d
xor ebp, ebp
nop word cs:[rax + rax]
cmp rcx, rbp
je 0x14001394b
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + rbp*2 + 0x42]
inc rbp
test dx, dx
jne 0x1400136b0
jmp 0x14001374d
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor ecx, ecx
mov edx, 0x1c
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140013947
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x14001371e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013710
mov r8, rbp
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x14001374d
xor ebp, ebp
nop dword [rax]
cmp rcx, rbp
je 0x14001394b
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + rbp*2 + 0x42]
inc rbp
test dx, dx
jne 0x140013730
mov word [rax], 0
mov al, 1
mov rbp, r8
nop word [rax + rax]
lea rdx, str.TEMP
cmp word [r14], 0
je 0x14001385a
nop word cs:[rax + rax]
lea rcx, [r14 + 2]
dec rsi
cmp word [r14 + 2], 0
mov r14, rcx
jne 0x140013780
test al, al
je 0x140013889
jmp 0x140013861
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x1400137d7
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400137ac
jmp 0x1400137d7
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x1400137d7
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400137c9
test rcx, rcx
lea rdx, str.TEMP
je 0x14001394b
mov word [rax], 0x43
cmp rcx, 1
je 0x14001394b
mov word [rax + 2], 0x72
cmp rcx, 2
je 0x14001394b
mov word [rax + 4], 0x61
cmp rcx, 3
je 0x14001394b
mov word [rax + 6], 0x63
cmp rcx, 4
je 0x14001394b
mov word [rax + 8], 0x6b
cmp rcx, 5
je 0x14001394b
mov word [rax + 0xa], 0x65
cmp rcx, 6
je 0x14001394b
mov dword [rax + 0xc], 0x72
xor eax, eax
cmp word [r14], 0
jne 0x140013780
mov rcx, r14
test al, al
je 0x140013889
cmp word [rcx - 2], 0x5c
jne 0x140013889
nop dword [rax + rax]
lea r14, [rcx - 2]
mov word [rcx - 2], 0
inc rsi
cmp word [rcx - 4], 0x5c
mov rcx, r14
je 0x140013870
jmp 0x14001388c
mov r14, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x1400131fa
jmp 0x140013918
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x1400138b5
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400138a7
test rcx, rcx
lea rdx, str.TEMP
je 0x14001394b
mov word [rax], 0x31
cmp rcx, 1
je 0x14001394b
mov word [rax + 2], 0x2e
cmp rcx, 2
je 0x14001394b
mov word [rax + 4], 0x30
cmp rcx, 3
je 0x14001394b
mov word [rax + 6], 0x2e
cmp rcx, 4
je 0x14001394b
mov word [rax + 8], 0x30
cmp rcx, 5
je 0x14001394b
mov word [rax + 0xa], 0x2e
cmp rcx, 6
je 0x14001394b
mov dword [rax + 0xc], 0x30
jmp 0x14001384d
mov word [r14], 0
mov sil, 1
mov rcx, qword [rsp + 0xc40]
xor rcx, rsp
call fcn.1400153b0
mov eax, esi
add rsp, 0xc48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor esi, esi
jmp 0x140013921
call fcn.14001c170
int3