Function at 0x140013f40
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 word [rcx], 0
movzx eax, word [rdx]
test ax, ax
je 0x140014530
mov rsi, r8
mov rdi, rdx
lea rbx, [rsp + 0x440]
lea r12, str.TEMP
lea rbp, str.PROGRAM
mov r15, qword [sym.imp.msvcrt.dll___wargv]
lea r13, str.PROGRAM_BASE
add rdi, 2
xor ecx, ecx
jmp 0x140013fc2
test rcx, rcx
jne 0x140013fe0
mov word [rsp + 0x440], 0
mov rcx, rbx
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140014530
cmp ax, 0x25
je 0x140013fa0
test rcx, rcx
je 0x140014170
mov word [rcx], ax
add rcx, 2
jmp 0x140013fb2
mov word [rcx], 0
mov rcx, rbx
mov rdx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001419c
mov rcx, rbx
mov rdx, rbp
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400141b9
mov rcx, rbx
mov rdx, r13
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001423b
mov rcx, rbx
lea rdx, [0x1400273f2]
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400142b0
mov rcx, rbx
lea rdx, str.HOME
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400143a7
mov rcx, rbx
lea rdx, str.CACHE_DIR
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140014432
mov rcx, rbx
lea rdx, str.TIME
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x14001454c
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x38]
mov edx, 0x400
lea rcx, [rsp + 0x40]
lea r8, str._lld
call fcn.1400145d0
cmp word [r14], 0
mov r13, r14
mov r12, rsi
je 0x1400140cf
nop word cs:[rax + rax]
dec r12
cmp word [r13 + 2], 0
lea r13, [r13 + 2]
jne 0x1400140c0
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x140014371
lea rbp, [rsp + 0x40]
nop word cs:[rax + rax]
cmp word [r13], 0
mov rax, r12
mov r15, r13
je 0x140014121
mov rcx, r13
mov rax, r12
nop word cs:[rax + rax]
lea r15, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r15
jne 0x140014110
test rax, rax
je 0x140014550
mov rcx, r15
call sub.msvcrt.dll_wcslen
lea rcx, [r15 + rax*2]
mov byte [rsp + 0x36], bl
mov byte [rsp + 0x37], 0
mov r8d, 2
lea rdx, [rsp + 0x36]
call sub.msvcrt.dll_mbstowcs
add r13, 2
dec r12
movzx ebx, byte [rbp + 1]
inc rbp
test bl, bl
jne 0x1400140f0
jmp 0x140014371
test rsi, rsi
je 0x14001454c
mov word [r14], ax
mov word [r14 + 2], 0
add r14, 2
dec rsi
movzx eax, word [rdi]
test ax, ax
jne 0x140013f91
jmp 0x140014530
mov ecx, esi
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
cmp word [r14], 0
jne 0x1400144d0
jmp 0x140014509
cmp word [r14], 0
mov rax, r14
mov rcx, rsi
je 0x1400141de
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400141d0
mov rdx, qword [r15]
mov rdx, qword [rdx]
mov rdx, qword [rdx]
movzx r8d, word [rdx]
test r8w, r8w
je 0x140014224
xor r9d, r9d
xor r10d, r10d
nop word [rax + rax]
cmp rcx, r10
je 0x140014550
mov word [rax + r10*2], r8w
movzx r8d, word [rdx + r10*2 + 2]
inc r10
add r9, 0xfffffffffffffffe
test r8w, r8w
jne 0x140014200
sub rax, r9
mov word [rax], 0
xor eax, eax
cmp word [r14], 0
jne 0x1400144d0
jmp 0x140014509
mov rcx, r14
call sub.msvcrt.dll_wcslen
mov r8, rsi
sub r8, rax
mov rcx, r14
lea rdx, str._PROGRAM_
call fcn.140013f40
test al, al
je 0x14001454c
mov r13, r15
mov rcx, r14
call sub.msvcrt.dll_wcslen
cmp rax, 4
jb 0x140014294
mov r15, rax
lea rcx, [r14 + rax*2]
add rcx, 0xfffffffffffffff8
lea rdx, str..exe
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140014294
mov word [r14 + r15*2 - 8], 0
xor eax, eax
mov r15, r13
lea r13, str.PROGRAM_BASE
cmp word [r14], 0
jne 0x1400144d0
jmp 0x140014509
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, pe_nt_image_headers64
lea rcx, [rsp + 0x40]
lea r8, [0x1400273fa]
mov r9d, eax
call fcn.1400145d0
cmp word [r14], 0
mov r13, r14
mov r12, rsi
je 0x1400142ef
nop dword [rax]
dec r12
cmp word [r13 + 2], 0
lea r13, [r13 + 2]
jne 0x1400142e0
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x140014371
lea rbp, [rsp + 0x40]
nop dword [rax]
cmp word [r13], 0
mov rax, r12
mov r15, r13
je 0x140014331
mov rcx, r13
mov rax, r12
nop word cs:[rax + rax]
lea r15, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r15
jne 0x140014320
test rax, rax
je 0x140014550
mov rcx, r15
call sub.msvcrt.dll_wcslen
lea rcx, [r15 + rax*2]
mov byte [rsp + 0x38], bl
mov byte [rsp + 0x39], 0
mov r8d, 2
lea rdx, [rsp + 0x38]
call sub.msvcrt.dll_mbstowcs
add r13, 2
dec r12
movzx ebx, byte [rbp + 1]
inc rbp
test bl, bl
jne 0x140014300
xor eax, eax
lea rbx, [rsp + 0x440]
lea r12, str.TEMP
lea rbp, str.PROGRAM
mov r15, qword [sym.imp.msvcrt.dll___wargv]
lea r13, str.PROGRAM_BASE
cmp word [r14], 0
jne 0x1400144d0
jmp 0x140014509
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 0x14001454c
cmp word [r14], 0
mov rax, r14
mov rcx, rsi
je 0x1400143ee
nop dword [rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400143e0
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x1400144b3
xor r8d, r8d
xor r9d, r9d
nop word cs:[rax + rax]
cmp rcx, r9
je 0x140014550
mov word [rax + r9*2], dx
movzx edx, word [rsp + r9*2 + 0x42]
inc r9
add r8, 0xfffffffffffffffe
test dx, dx
jne 0x140014410
jmp 0x1400144b0
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 0x14001454c
cmp word [r14], 0
mov rax, r14
mov rcx, rsi
je 0x14001447e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140014470
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x1400144b3
xor r8d, r8d
xor r9d, r9d
nop
cmp rcx, r9
je 0x140014550
mov word [rax + r9*2], dx
movzx edx, word [rsp + r9*2 + 0x42]
inc r9
add r8, 0xfffffffffffffffe
test dx, dx
jne 0x140014490
sub rax, r8
mov word [rax], 0
mov al, 1
cmp word [r14], 0
je 0x140014509
nop word cs:[rax + rax]
lea rcx, [r14 + 2]
dec rsi
cmp word [r14 + 2], 0
mov r14, rcx
jne 0x1400144d0
test al, al
je 0x140014510
cmp word [rcx - 2], 0x5c
jne 0x140014521
nop dword [rax]
lea r14, [rcx - 2]
mov word [rcx - 2], 0
inc rsi
cmp word [rcx - 4], 0x5c
mov rcx, r14
je 0x1400144f0
jmp 0x140014513
mov rcx, r14
test al, al
jne 0x1400144e6
mov r14, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x140013f91
jmp 0x140014530
mov r14, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x140013f91
mov word [r14], 0
mov al, 1
add rsp, 0xc48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x140014538
call sub.msvcrt.dll_abort
int3