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 0x1400138f8
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 0x140013232
test rcx, rcx
jne 0x140013250
mov word [rsp + 0x440], 0
mov rcx, r15
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x1400138f8
cmp ax, 0x25
je 0x140013210
test rcx, rcx
je 0x140013410
mov word [rcx], ax
add rcx, 2
jmp 0x140013222
mov word [rcx], 0
mov rcx, r15
call fcn.14001bf04
test eax, eax
je 0x140013429
mov rcx, r15
mov rdx, r12
call fcn.14001bf04
test eax, eax
je 0x14001343b
mov rcx, r15
mov rdx, rbp
call fcn.14001bf04
test eax, eax
je 0x1400134b6
mov rcx, r15
mov rdx, rbx
call fcn.14001bf04
test eax, eax
je 0x14001351c
mov rcx, r15
lea rdx, str.HOME
call fcn.14001bf04
test eax, eax
je 0x140013639
mov rcx, r15
lea rdx, str.CACHE_DIR
call fcn.14001bf04
test eax, eax
je 0x1400136bf
mov rcx, r15
lea rdx, str.COMPANY
call fcn.14001bf04
test eax, eax
je 0x14001378f
mov rcx, r15
lea rdx, str.PRODUCT
call fcn.14001bf04
test eax, eax
je 0x1400137ac
mov rcx, r15
lea rdx, str.VERSION
call fcn.14001bf04
test eax, eax
je 0x14001387a
mov rcx, r15
lea rdx, str.TIME
call fcn.14001bf04
test eax, eax
jne 0x140013927
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.140013940
cmp word [r14], 0
mov r13, rsi
mov rbx, r14
je 0x140013372
dec r13
cmp word [rbx + 2], 0
lea rbx, [rbx + 2]
jne 0x140013364
movzx r15d, byte [rsp + 0x40]
test r15b, r15b
je 0x1400135fc
lea r12, [rsp + 0x40]
cmp word [rbx], 0
mov rbp, rbx
mov rax, r13
je 0x1400133b1
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 0x1400133a0
test rax, rax
je 0x14001392b
mov rcx, rbp
call fcn.14001caf8
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.14001c1cc
add rbx, 2
dec r13
movzx r15d, byte [r12 + 1]
inc r12
test r15b, r15b
jne 0x140013386
jmp 0x1400135fc
test rsi, rsi
je 0x140013927
mov word [r14], ax
add r14, 2
dec rsi
jmp 0x14001386c
mov ecx, esi
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
jmp 0x140013750
mov r13, rbp
call fcn.1400170d4
cmp word [r14], 0
mov rdx, rsi
mov rcx, r14
je 0x14001345e
dec rdx
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x140013450
mov rax, qword [rax]
mov rax, qword [rax]
movzx ebp, word [rax]
mov r9, rbx
test bp, bp
je 0x14001349d
xor ebx, ebx
nop word cs:[rax + rax]
cmp rdx, rbx
je 0x14001392b
mov word [rcx], bp
add rcx, 2
movzx ebp, word [rax + rbx*2 + 2]
inc rbx
test bp, bp
jne 0x140013480
mov word [rcx], 0
xor eax, eax
mov rbp, r13
lea r13, str._PROGRAM_
mov rbx, r9
jmp 0x140013750
mov rcx, r14
call fcn.14001caf8
mov r8, rsi
sub r8, rax
mov rcx, r14
mov rdx, r13
call fcn.140013190
test al, al
je 0x140013927
mov rbx, rbp
mov rcx, r14
call fcn.14001caf8
cmp rax, 4
jb 0x14001350b
mov rbp, rax
lea rcx, [r14 + rax*2]
add rcx, 0xfffffffffffffff8
lea rdx, str..exe
call fcn.14001bf04
test eax, eax
jne 0x14001350b
mov word [r14 + rbp*2 - 8], 0
xor eax, eax
mov rbp, rbx
lea rbx, [0x140031be0]
jmp 0x140013750
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, 0x80
lea rcx, [rsp + 0x40]
lea r8, [0x1400319fe]
mov r9d, eax
call fcn.140013940
cmp word [r14], 0
mov rbp, rsi
mov rbx, r14
je 0x14001355e
nop dword [rax + rax]
dec rbp
cmp word [rbx + 2], 0
lea rbx, [rbx + 2]
jne 0x140013550
movzx r15d, byte [rsp + 0x40]
test r15b, r15b
je 0x1400135fc
lea r12, [rsp + 0x40]
nop word cs:[rax + rax]
cmp word [rbx], 0
mov r13, rbx
mov rax, rbp
je 0x1400135b1
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 0x1400135a0
test rax, rax
je 0x14001392b
mov rcx, r13
call fcn.14001caf8
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.14001c1cc
add rbx, 2
dec rbp
movzx r15d, byte [r12 + 1]
inc r12
test r15b, r15b
jne 0x140013580
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 0x140013770
jmp 0x14001383a
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 0x140013927
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x14001367e
nop dword [rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013670
mov r8, rbp
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x14001373d
xor ebp, ebp
nop word cs:[rax + rax]
cmp rcx, rbp
je 0x14001392b
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + rbp*2 + 0x42]
inc rbp
test dx, dx
jne 0x1400136a0
jmp 0x14001373d
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 0x140013927
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x14001370e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013700
mov r8, rbp
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x14001373d
xor ebp, ebp
nop dword [rax]
cmp rcx, rbp
je 0x14001392b
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + rbp*2 + 0x42]
inc rbp
test dx, dx
jne 0x140013720
mov word [rax], 0
mov al, 1
mov rbp, r8
nop word [rax + rax]
lea rdx, str.TEMP
cmp word [r14], 0
je 0x14001383a
nop word cs:[rax + rax]
lea rcx, [r14 + 2]
dec rsi
cmp word [r14 + 2], 0
mov r14, rcx
jne 0x140013770
test al, al
je 0x140013869
jmp 0x140013841
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x1400137c7
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x14001379c
jmp 0x1400137c7
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x1400137c7
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400137b9
test rcx, rcx
lea rdx, str.TEMP
je 0x14001392b
mov word [rax], 0x45
cmp rcx, 1
je 0x14001392b
mov word [rax + 2], 0x72
cmp rcx, 2
je 0x14001392b
mov word [rax + 4], 0x65
cmp rcx, 3
je 0x14001392b
mov word [rax + 6], 0x62
cmp rcx, 4
je 0x14001392b
mov word [rax + 8], 0x75
cmp rcx, 5
je 0x14001392b
mov dword [rax + 0xa], 0x73
xor eax, eax
cmp word [r14], 0
jne 0x140013770
mov rcx, r14
test al, al
je 0x140013869
cmp word [rcx - 2], 0x5c
jne 0x140013869
nop dword [rax + rax]
lea r14, [rcx - 2]
mov word [rcx - 2], 0
inc rsi
cmp word [rcx - 4], 0x5c
mov rcx, r14
je 0x140013850
jmp 0x14001386c
mov r14, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x1400131fa
jmp 0x1400138f8
cmp word [r14], 0
mov rcx, rsi
mov rax, r14
je 0x140013895
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013887
test rcx, rcx
lea rdx, str.TEMP
je 0x14001392b
mov word [rax], 0x31
cmp rcx, 1
je 0x14001392b
mov word [rax + 2], 0x2e
cmp rcx, 2
je 0x14001392b
mov word [rax + 4], 0x30
cmp rcx, 3
je 0x14001392b
mov word [rax + 6], 0x2e
cmp rcx, 4
je 0x14001392b
mov word [rax + 8], 0x30
cmp rcx, 5
je 0x14001392b
mov word [rax + 0xa], 0x2e
cmp rcx, 6
je 0x14001392b
mov dword [rax + 0xc], 0x30
jmp 0x14001382d
mov word [r14], 0
mov sil, 1
mov rcx, qword [rsp + 0xc40]
xor rcx, rsp
call fcn.140015390
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 0x140013901
call fcn.14001c150
int3