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 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 0x140013708
mov rsi, r8
mov rdi, rdx
lea r14, [rsp + 0x440]
lea r15, str.TEMP
lea r13, str.PROGRAM
lea rbp, str.PROGRAM_BASE
lea r12, str._PROGRAM_
add rdi, 2
xor ecx, ecx
jmp 0x140013222
test rcx, rcx
jne 0x140013240
mov word [rsp + 0x440], 0
mov rcx, r14
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140013708
cmp ax, 0x25
je 0x140013200
test rcx, rcx
je 0x1400133d0
mov word [rcx], ax
add rcx, 2
jmp 0x140013212
mov word [rcx], 0
mov rcx, r14
mov rdx, r15
call fcn.14001bd44
test eax, eax
je 0x1400133e8
mov rcx, r14
mov rdx, r13
call fcn.14001bd44
test eax, eax
je 0x140013404
mov rcx, r14
mov rdx, rbp
call fcn.14001bd44
test eax, eax
je 0x140013465
mov rcx, r14
lea rdx, [0x140031bbc]
call fcn.14001bd44
test eax, eax
je 0x1400134c3
mov rcx, r14
lea rdx, str.HOME
call fcn.14001bd44
test eax, eax
je 0x1400135ce
mov rcx, r14
lea rdx, str.CACHE_DIR
call fcn.14001bd44
test eax, eax
je 0x14001364f
mov rcx, r14
lea rdx, str.TIME
call fcn.14001bd44
test eax, eax
jne 0x140013736
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.140013740
cmp word [rbx], 0
mov r12, rsi
mov r13, rbx
je 0x14001332f
nop word cs:[rax + rax]
dec r12
cmp word [r13 + 2], 0
lea r13, [r13 + 2]
jne 0x140013320
movzx r15d, byte [rsp + 0x40]
test r15b, r15b
je 0x140013580
lea r14, [rsp + 0x40]
nop word cs:[rax + rax]
cmp word [r13], 0
mov rbp, r13
mov rax, r12
je 0x140013381
mov rax, r12
mov rcx, r13
nop word cs:[rax + rax]
lea rbp, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, rbp
jne 0x140013370
test rax, rax
je 0x14001373a
mov rcx, rbp
call fcn.14001c948
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.14001c018
dec r12
movzx r15d, byte [r14 + 1]
inc r14
test r15b, r15b
jne 0x140013350
jmp 0x140013580
test rsi, rsi
je 0x140013736
mov word [rbx], ax
add rbx, 2
dec rsi
jmp 0x1400136fc
mov ecx, esi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
cmp word [rbx], 0
jne 0x1400135b0
jmp 0x1400136d1
mov r12, rbp
call fcn.140016f14
cmp word [rbx], 0
mov rdx, rsi
mov rcx, rbx
je 0x14001342e
nop dword [rax + rax]
dec rdx
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x140013420
mov rax, qword [rax]
mov r8, qword [rax]
movzx ebp, word [r8]
test bp, bp
je 0x14001345e
xor eax, eax
nop
cmp rdx, rax
je 0x14001373a
mov word [rcx], bp
add rcx, 2
movzx ebp, word [r8 + rax*2 + 2]
inc rax
test bp, bp
jne 0x140013440
mov word [rcx], 0
jmp 0x1400134b9
mov rcx, rbx
call fcn.14001c948
mov r8, rsi
sub r8, rax
mov rcx, rbx
mov rdx, r12
call fcn.140013190
test al, al
je 0x140013736
mov r12, rbp
mov rcx, rbx
call fcn.14001c948
cmp rax, 4
jb 0x1400134b9
mov rbp, rax
lea rcx, [rbx + rax*2]
add rcx, 0xfffffffffffffff8
lea rdx, str..exe
call fcn.14001bd44
test eax, eax
jne 0x1400134b9
mov word [rbx + rbp*2 - 8], 0
xor eax, eax
mov rbp, r12
jmp 0x14001359f
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, 0x80
lea rcx, [rsp + 0x40]
lea r8, [0x140031a0e]
mov r9d, eax
call fcn.140013740
cmp word [rbx], 0
mov rbp, rsi
mov r13, rbx
je 0x1400134ff
nop
dec rbp
cmp word [r13 + 2], 0
lea r13, [r13 + 2]
jne 0x1400134f0
movzx r15d, byte [rsp + 0x40]
test r15b, r15b
je 0x140013580
lea r14, [rsp + 0x40]
nop
cmp word [r13], 0
mov r12, r13
mov rax, rbp
je 0x140013541
mov rax, rbp
mov rcx, r13
nop word cs:[rax + rax]
lea r12, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r12
jne 0x140013530
test rax, rax
je 0x14001373a
mov rcx, r12
call fcn.14001c948
lea rcx, [r12 + rax*2]
mov byte [rsp + 0x30], r15b
mov byte [rsp + 0x31], 0
mov r8d, 2
lea rdx, [rsp + 0x30]
call fcn.14001c018
dec rbp
movzx r15d, byte [r14 + 1]
inc r14
test r15b, r15b
jne 0x140013510
xor eax, eax
lea r14, [rsp + 0x440]
lea r15, str.TEMP
lea r13, str.PROGRAM
lea rbp, str.PROGRAM_BASE
lea r12, str._PROGRAM_
cmp word [rbx], 0
je 0x1400136d1
lea rcx, [rbx + 2]
dec rsi
cmp word [rbx + 2], 0
mov rbx, rcx
jne 0x1400135b0
test al, al
je 0x1400136f9
jmp 0x1400136d8
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 0x140013736
cmp word [rbx], 0
mov rcx, rsi
mov rax, rbx
je 0x14001360e
nop
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013600
mov r8, rbp
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x1400136bd
xor ebp, ebp
nop word cs:[rax + rax]
cmp rcx, rbp
je 0x14001373a
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + rbp*2 + 0x42]
inc rbp
test dx, dx
jne 0x140013630
jmp 0x1400136bd
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 0x140013736
cmp word [rbx], 0
mov rcx, rsi
mov rax, rbx
je 0x14001368e
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 0x1400136bd
xor ebp, ebp
nop dword [rax]
cmp rcx, rbp
je 0x14001373a
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + rbp*2 + 0x42]
inc rbp
test dx, dx
jne 0x1400136a0
mov word [rax], 0
mov al, 1
mov rbp, r8
cmp word [rbx], 0
jne 0x1400135b0
mov rcx, rbx
test al, al
je 0x1400136f9
cmp word [rcx - 2], 0x5c
jne 0x1400136f9
nop
lea rbx, [rcx - 2]
mov word [rcx - 2], 0
inc rsi
cmp word [rcx - 4], 0x5c
mov rcx, rbx
je 0x1400136e0
jmp 0x1400136fc
mov rbx, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x1400131f3
mov word [rbx], 0
mov sil, 1
mov rcx, qword [rsp + 0xc40]
xor rcx, rsp
call fcn.1400151a0
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 0x140013710
call fcn.14001bf9c
int3