Function at 0x140014570
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 r13, rcx
mov word [rcx], 0
movzx eax, word [rdx]
test ax, ax
je 0x140014b80
mov rsi, r8
mov rdi, rdx
lea rbx, [rsp + 0x440]
lea r15, [0x1400283a4]
lea r14, [0x1400283ae]
mov r12, qword [sym.imp.msvcrt.dll___wargv]
lea rbp, str.PROGRAM_BASE
add rdi, 2
xor ecx, ecx
jmp 0x1400145ed
mov word [rsp + 0x440], 0
mov rcx, rbx
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140014b80
cmp ax, 0x7b
je 0x1400145d0
movzx edx, ax
cmp edx, 0x7d
je 0x140014610
test rcx, rcx
je 0x1400147a0
mov word [rcx], ax
add rcx, 2
jmp 0x1400145dd
mov word [rcx], 0
mov rcx, rbx
mov rdx, r15
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400147cd
mov rcx, rbx
mov rdx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400147eb
mov rcx, rbx
mov rdx, rbp
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001486c
mov rcx, rbx
lea rdx, [0x1400283f6]
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400148eb
mov rcx, rbx
lea rdx, [0x1400283fe]
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400149f2
mov rcx, rbx
lea rdx, str.CACHE_DIR
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140014a82
mov rcx, rbx
lea rdx, str.TIME
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140014b9d
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.140013e50
cmp word [r13], 0
mov r14, r13
mov r15, rsi
je 0x1400146ff
nop word [rax + rax]
dec r15
cmp word [r14 + 2], 0
lea r14, [r14 + 2]
jne 0x1400146f0
movzx eax, byte [rsp + 0x40]
test al, al
je 0x1400149ca
lea rbp, [rsp + 0x40]
nop word cs:[rax + rax]
mov byte [rsp + 0x32], al
mov byte [rsp + 0x33], 0
mov r8d, 2
lea rcx, [rsp + 0x34]
lea rdx, [rsp + 0x32]
call sub.msvcrt.dll_mbstowcs
cmp rax, 1
jne 0x140014ba1
cmp word [r14], 0
mov rax, r14
mov rcx, r15
je 0x140014771
mov rcx, r15
mov rdx, r14
nop dword [rax + rax]
lea rax, [rdx + 2]
dec rcx
cmp word [rdx + 2], 0
mov rdx, rax
jne 0x140014760
test rcx, rcx
je 0x140014ba1
movzx ecx, word [rsp + 0x34]
mov word [rax], cx
mov word [rax + 2], 0
add r14, 2
dec r15
movzx eax, byte [rbp + 1]
inc rbp
test al, al
jne 0x140014720
jmp 0x1400149ca
test rsi, rsi
je 0x140014b9d
mov word [r13], ax
mov word [r13 + 2], 0
add r13, 2
dec rsi
movzx eax, word [rdi]
test ax, ax
jne 0x1400145c1
jmp 0x140014b80
mov ecx, esi
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
cmp word [r13], 0
jne 0x140014b20
jmp 0x140014b59
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x14001480e
nop dword [rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140014800
mov rdx, qword [r12]
mov rdx, qword [rdx]
mov rdx, qword [rdx]
movzx r8d, word [rdx]
test r8w, r8w
je 0x140014854
xor r9d, r9d
xor r10d, r10d
nop dword [rax + rax]
cmp rcx, r10
je 0x140014ba1
mov word [rax + r10*2], r8w
movzx r8d, word [rdx + r10*2 + 2]
inc r10
add r9, 0xfffffffffffffffe
test r8w, r8w
jne 0x140014830
sub rax, r9
mov word [rax], 0
xor eax, eax
cmp word [r13], 0
jne 0x140014b20
jmp 0x140014b59
mov rcx, r13
call sub.msvcrt.dll_wcslen
mov r8, rsi
sub r8, rax
mov rcx, r13
lea rdx, str.PROGRAM
call fcn.140014570
test al, al
je 0x140014b9d
mov rbp, r12
mov r12, r14
mov rcx, r13
call sub.msvcrt.dll_wcslen
cmp rax, 4
jb 0x1400148cb
mov r14, rax
lea rcx, [rax*2 - 8]
add rcx, r13
lea rdx, str..exe
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x1400148cb
mov word [r13 + r14*2 - 8], 0
xor eax, eax
mov r14, r12
mov r12, rbp
lea rbp, str.PROGRAM_BASE
cmp word [r13], 0
jne 0x140014b20
jmp 0x140014b59
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, pe_nt_image_headers64
lea rcx, [rsp + 0x40]
lea r8, [0x1400283a0]
mov r9d, eax
call fcn.140013e50
cmp word [r13], 0
mov r14, r13
mov r15, rsi
je 0x14001492f
nop dword [rax + rax]
dec r15
cmp word [r14 + 2], 0
lea r14, [r14 + 2]
jne 0x140014920
movzx eax, byte [rsp + 0x40]
test al, al
je 0x1400149ca
lea rbp, [rsp + 0x40]
nop word cs:[rax + rax]
mov byte [rsp + 0x34], al
mov byte [rsp + 0x35], 0
mov r8d, 2
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x34]
call sub.msvcrt.dll_mbstowcs
cmp rax, 1
jne 0x140014ba1
cmp word [r14], 0
mov rax, r14
mov rcx, r15
je 0x1400149a1
mov rcx, r15
mov rdx, r14
nop dword [rax + rax]
lea rax, [rdx + 2]
dec rcx
cmp word [rdx + 2], 0
mov rdx, rax
jne 0x140014990
test rcx, rcx
je 0x140014ba1
movzx ecx, word [rsp + 0x38]
mov word [rax], cx
mov word [rax + 2], 0
add r14, 2
dec r15
movzx eax, byte [rbp + 1]
inc rbp
test al, al
jne 0x140014950
xor eax, eax
lea r15, [0x1400283a4]
lea r14, [0x1400283ae]
lea rbp, str.PROGRAM_BASE
cmp word [r13], 0
jne 0x140014b20
jmp 0x140014b59
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 0x140014b9d
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x140014a3e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140014a30
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x140014b03
xor r8d, r8d
xor r9d, r9d
nop word cs:[rax + rax]
cmp rcx, r9
je 0x140014ba1
mov word [rax + r9*2], dx
movzx edx, word [rsp + r9*2 + 0x42]
inc r9
add r8, 0xfffffffffffffffe
test dx, dx
jne 0x140014a60
jmp 0x140014b00
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 0x140014b9d
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x140014ace
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140014ac0
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x140014b03
xor r8d, r8d
xor r9d, r9d
nop
cmp rcx, r9
je 0x140014ba1
mov word [rax + r9*2], dx
movzx edx, word [rsp + r9*2 + 0x42]
inc r9
add r8, 0xfffffffffffffffe
test dx, dx
jne 0x140014ae0
sub rax, r8
mov word [rax], 0
mov al, 1
cmp word [r13], 0
je 0x140014b59
nop word cs:[rax + rax]
lea rcx, [r13 + 2]
dec rsi
cmp word [r13 + 2], 0
mov r13, rcx
jne 0x140014b20
test al, al
je 0x140014b60
cmp word [rcx - 2], 0x5c
jne 0x140014b71
nop dword [rax]
lea r13, [rcx - 2]
mov word [rcx - 2], 0
inc rsi
cmp word [rcx - 4], 0x5c
mov rcx, r13
je 0x140014b40
jmp 0x140014b63
mov rcx, r13
test al, al
jne 0x140014b36
mov r13, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x1400145c1
jmp 0x140014b80
mov r13, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x1400145c1
mov word [r13], 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 0x140014b89
call sub.msvcrt.dll_abort
int3