Function at 0x140013360
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 rbx, 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 0x140013a2f
mov r14, r8
mov rdi, rdx
lea rsi, [rsp + 0x440]
lea rdx, str.TEMP
lea r15, str.PROGRAM
mov r12, qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rbp, str.PROGRAM_BASE
lea r13, str._PROGRAM_
add rdi, 2
xor ecx, ecx
jmp 0x140013402
test rcx, rcx
jne 0x140013420
mov word [rsp + 0x440], 0
mov rcx, rsi
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140013a2f
cmp ax, 0x25
je 0x1400133e0
test rcx, rcx
je 0x1400135c0
mov word [rcx], ax
add rcx, 2
jmp 0x1400133f2
mov word [rcx], 0
mov rcx, rsi
call fcn.14001beb0
test eax, eax
je 0x1400135d8
mov rcx, rsi
mov rdx, r15
call fcn.14001beb0
test eax, eax
je 0x1400135f3
mov rcx, rsi
mov rdx, rbp
call fcn.14001beb0
test eax, eax
je 0x140013615
mov rcx, rsi
lea rdx, [0x140031bbc]
call fcn.14001beb0
test eax, eax
je 0x14001367c
mov rcx, rsi
lea rdx, str.HOME
call fcn.14001beb0
test eax, eax
je 0x140013801
mov rcx, rsi
lea rdx, str.CACHE_DIR
call fcn.14001beb0
test eax, eax
je 0x14001387f
mov rcx, rsi
lea rdx, str.COMPANY
call fcn.14001beb0
test eax, eax
je 0x1400138f7
mov rcx, rsi
lea rdx, str.VERSION
call fcn.14001beb0
test eax, eax
je 0x1400139af
mov rcx, rsi
lea rdx, str.TIME
call fcn.14001beb0
test eax, eax
jne 0x140013a5e
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.140013a70
cmp word [rbx], 0
mov rsi, r14
mov r13, rbx
je 0x14001352f
dec rsi
cmp word [r13 + 2], 0
lea r13, [r13 + 2]
jne 0x140013520
movzx r15d, byte [rsp + 0x40]
test r15b, r15b
je 0x140013748
lea r12, [rsp + 0x40]
cmp word [r13], 0
mov rbp, r13
mov rax, rsi
je 0x140013571
mov rax, rsi
mov rcx, r13
nop word [rax + rax]
lea rbp, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, rbp
jne 0x140013560
test rax, rax
je 0x140013a63
mov rcx, rbp
call fcn.14001caa8
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.14001c178
dec rsi
movzx r15d, byte [r12 + 1]
inc r12
test r15b, r15b
jne 0x140013543
jmp 0x140013748
test r14, r14
je 0x140013a5e
mov word [rbx], ax
add rbx, 2
dec r14
jmp 0x1400137f0
mov ecx, r14d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov r13b, 1
lea rdx, str.TEMP
jmp 0x140013770
xor r13d, r13d
xor ecx, ecx
mov rdx, rbx
mov r8d, r14d
call r12
test eax, eax
lea rdx, str.TEMP
jne 0x140013770
jmp 0x140013a37
mov rcx, rbx
call fcn.14001caa8
mov r8, r14
sub r8, rax
mov rcx, rbx
mov rdx, r13
call fcn.140013360
test al, al
je 0x140013a5e
mov rcx, rbx
call fcn.14001caa8
cmp rax, 4
jb 0x140013666
mov rbp, rax
lea rcx, [rbx + rax*2]
add rcx, 0xfffffffffffffff8
lea rdx, str..exe
call fcn.14001beb0
test eax, eax
jne 0x140013666
mov word [rbx + rbp*2 - 8], 0
xor r13d, r13d
mov r12, qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rdx, str.TEMP
jmp 0x140013770
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, 0x80
lea rcx, [rsp + 0x40]
lea r8, [0x1400319ee]
mov r9d, eax
call fcn.140013a70
cmp word [rbx], 0
mov rsi, r14
mov r13, rbx
je 0x1400136bf
nop word [rax + rax]
dec rsi
cmp word [r13 + 2], 0
lea r13, [r13 + 2]
jne 0x1400136b0
movzx r15d, byte [rsp + 0x40]
test r15b, r15b
je 0x140013748
lea r12, [rsp + 0x40]
nop
cmp word [r13], 0
mov rbp, r13
mov rax, rsi
je 0x140013701
mov rax, rsi
mov rcx, r13
nop word cs:[rax + rax]
lea rbp, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, rbp
jne 0x1400136f0
test rax, rax
je 0x140013a63
mov rcx, rbp
call fcn.14001caa8
lea rcx, [rax*2]
add rcx, rbp
mov byte [rsp + 0x30], r15b
mov byte [rsp + 0x31], 0
mov r8d, 2
lea rdx, [rsp + 0x30]
call fcn.14001c178
dec rsi
movzx r15d, byte [r12 + 1]
inc r12
test r15b, r15b
jne 0x1400136d0
xor r13d, r13d
lea rsi, [rsp + 0x440]
lea rdx, str.TEMP
lea r15, str.PROGRAM
mov r12, qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
nop dword [rax + rax]
cmp word [rbx], 0
je 0x1400137c9
nop word cs:[rax + rax]
lea rax, [rbx + 2]
dec r14
cmp word [rbx + 2], 0
mov rbx, rax
jne 0x140013780
test r13b, r13b
je 0x1400137d1
cmp word [rax - 2], 0x5c
lea rbp, str.PROGRAM_BASE
lea r13, str._PROGRAM_
jne 0x1400137e4
nop dword [rax + rax]
lea rbx, [rax - 2]
mov word [rax - 2], 0
inc r14
cmp word [rax - 4], 0x5c
mov rax, rbx
je 0x1400137b0
jmp 0x1400137f0
mov rax, rbx
test r13b, r13b
jne 0x140013796
mov rbx, rax
lea rbp, str.PROGRAM_BASE
lea r13, str._PROGRAM_
jmp 0x1400137f0
mov rbx, rax
nop word [rax + rax]
movzx eax, word [rdi]
test ax, ax
jne 0x1400133ca
jmp 0x140013a2f
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 0x140013a5e
cmp word [rbx], 0
mov rcx, r14
mov rax, rbx
je 0x14001384e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013840
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x1400138ed
xor ebp, ebp
nop
cmp rcx, rbp
je 0x140013a63
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + rbp*2 + 0x42]
inc rbp
test dx, dx
jne 0x140013860
jmp 0x1400138ed
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 0x140013a5e
cmp word [rbx], 0
mov rcx, r14
mov rax, rbx
je 0x1400138be
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400138b0
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x1400138ed
xor ebp, ebp
nop word [rax + rax]
cmp rcx, rbp
je 0x140013a63
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + rbp*2 + 0x42]
inc rbp
test dx, dx
jne 0x1400138d0
mov word [rax], 0
jmp 0x1400135e4
cmp word [rbx], 0
mov rcx, r14
mov rax, rbx
je 0x140013911
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013903
test rcx, rcx
lea rdx, str.TEMP
je 0x140013a63
mov word [rax], 0x73
cmp rcx, 1
je 0x140013a63
mov word [rax + 2], 0x65
cmp rcx, 2
je 0x140013a63
mov word [rax + 4], 0x62
cmp rcx, 3
je 0x140013a63
mov word [rax + 6], 0x64
cmp rcx, 4
je 0x140013a63
mov word [rax + 8], 0x65
cmp rcx, 5
je 0x140013a63
mov word [rax + 0xa], 0x6c
cmp rcx, 6
je 0x140013a63
mov word [rax + 0xc], 0x73
cmp rcx, 7
je 0x140013a63
mov word [rax + 0xe], 0x6f
cmp rcx, 8
je 0x140013a63
mov dword [rax + 0x10], 0x6c
xor r13d, r13d
jmp 0x140013770
cmp word [rbx], 0
mov rcx, r14
mov rax, rbx
je 0x1400139c9
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400139bb
test rcx, rcx
lea rdx, str.TEMP
je 0x140013a63
mov word [rax], 0x31
cmp rcx, 1
je 0x140013a63
mov word [rax + 2], 0x2e
cmp rcx, 2
je 0x140013a63
mov word [rax + 4], 0x33
cmp rcx, 3
je 0x140013a63
mov word [rax + 6], 0x2e
cmp rcx, 4
je 0x140013a63
mov word [rax + 8], 0x34
cmp rcx, 5
je 0x140013a63
mov word [rax + 0xa], 0x2e
cmp rcx, 6
je 0x140013a63
mov dword [rax + 0xc], 0x30
xor r13d, r13d
jmp 0x140013770
mov word [rbx], 0
mov r13b, 1
mov rcx, qword [rsp + 0xc40]
xor rcx, rsp
call fcn.140015400
mov eax, r13d
add rsp, 0xc48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r13d, r13d
jmp 0x140013a37
call fcn.14001c0fc
int3