Function at 0x14001a320
Capabilities:
Get common file path

Disassembly:
push r15
mov eax, 0x1108
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.14001d2d0
sub rsp, rax
xor r9d, r9d
mov word [rcx], r9w
movzx eax, word [rdx]
mov rbx, rcx
mov rsi, r8
test ax, ax
je 0x14001a4c9
lea rdi, [rsp + 0x2f0]
lea rbp, [rdx + 2]
xor edx, edx
mov qword [rsp + 0x40], rdi
lea r13, str.TEMP
jmp 0x14001a391
test rdx, rdx
je 0x14001a4a8
mov word [rdx], ax
add rdx, 2
movzx eax, word [rbp]
add rbp, 2
test ax, ax
je 0x14001a4c9
cmp ax, 0x25
jne 0x14001a370
test rdx, rdx
je 0x14001a4e0
xor ecx, ecx
lea r12, [rsp + 0x900]
mov word [rdx], cx
mov rdx, r13
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a590
lea rdx, str.PROGRAM
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a5e8
lea rdx, str.PROGRAM_BASE
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a500
lea rdx, [0x140025f56]
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a898
lea rdx, str.HOME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a670
lea rdx, str.CACHE_DIR
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a718
lea rdx, str.COMPANY
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001aa0b
lea rdx, str.PRODUCT
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001aa88
lea rdx, str.VERSION
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a983
lea rdx, str.TIME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a7a6
xor eax, eax
add rsp, 0x1108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test rsi, rsi
je 0x14001a48f
mov word [rbx], ax
movzx eax, word [rbp]
sub rsi, 1
add rbx, 2
add rbp, 2
test ax, ax
jne 0x14001a391
xor r11d, r11d
mov eax, 1
mov word [rbx], r11w
jmp 0x14001a491
xor r8d, r8d
lea rdx, [rsp + 0x900]
mov word [rsp + 0x900], r8w
jmp 0x14001a380
mov rcx, rbx
call sub.msvcrt.dll_wcslen
mov r8, rsi
lea rdx, str._PROGRAM_
mov rcx, rbx
sub r8, rax
call fcn.14001a320
test al, al
je 0x14001a48f
mov rcx, rbx
call sub.msvcrt.dll_wcslen
cmp rax, 3
jbe 0x14001a658
lea rdi, [rbx + rax*2 - 8]
lea rdx, str..exe
mov rcx, rdi
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x14001a658
xor r15d, r15d
mov word [rdi], r15w
cmp word [rbx], 0
je 0x14001a580
xor eax, eax
nop word [rax + rax]
add rbx, 2
sub rsi, 1
cmp word [rbx], 0
jne 0x14001a5b0
test al, al
jne 0x14001a5d5
nop word [rax + rax]
xor edx, edx
jmp 0x14001a380
mov rdx, rbx
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp word [rbx], 0
je 0x14001a5d5
mov eax, 1
nop word cs:[rax + rax]
add rbx, 2
sub rsi, 1
cmp word [rbx], 0
jne 0x14001a5b0
test al, al
je 0x14001a580
jmp 0x14001a5d5
sub rbx, 2
xor edi, edi
add rsi, 1
mov word [rbx], di
cmp word [rbx - 2], 0x5c
je 0x14001a5c8
xor edx, edx
jmp 0x14001a380
mov rax, qword [sym.imp.msvcrt.dll___wargv]
cmp word [rbx], 0
mov rdx, rsi
mov rax, qword [rax]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, rbx
je 0x14001a616
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x14001a608
movzx r8d, word [rcx]
test r8w, r8w
je 0x14001a653
test rdx, rdx
jne 0x14001a639
jmp 0x14001ab31
test rdx, rdx
je 0x140023874
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x14001a630
xor edx, edx
mov word [rax], dx
cmp word [rbx], 0
je 0x14001a580
xor eax, eax
jmp 0x14001a568
lea rdi, [rsp + 0xe0]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rdi
mov edx, 0x28
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x14001a48f
cmp word [rbx], 0
mov rdx, rsi
mov rax, rbx
je 0x14001a6b6
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x14001a6a8
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x14001a6fb
test rdx, rdx
je 0x140023874
mov rcx, rdi
jmp 0x14001a6e1
test rdx, rdx
je 0x140023874
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x14001a6d8
xor r14d, r14d
mov word [rax], r14w
cmp word [rbx], 0
jne 0x14001a5a1
jmp 0x14001a5d5
mov rax, qword [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov edx, 0x1c
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x14001a48f
cmp word [rbx], 0
mov rdx, rsi
mov rax, rbx
je 0x14001a75e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x14001a750
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x14001a6fb
test rdx, rdx
je 0x140023874
mov r8, qword [rsp + 0x40]
jmp 0x14001a789
test rdx, rdx
je 0x140023874
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x14001a780
jmp 0x14001a6fb
lea rcx, [rsp + 0x58]
lea rdi, [rsp + 0x500]
mov qword [rsp + 0x58], 0
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x58]
mov edx, 0x400
mov rcx, rdi
lea r8, str._lld
call fcn.1400020f0
cmp word [rbx], 0
je 0x14001ab14
mov r12, rsi
mov r15, rbx
nop dword [rax + rax]
add r15, 2
sub r12, 1
cmp word [r15], 0
jne 0x14001a7f0
movzx edx, byte [rsp + 0x500]
test dl, dl
je 0x14001a560
xor ecx, ecx
mov r14, rdi
add r12, rdi
nop word [rax + rax]
mov rax, r12
mov rdi, r15
sub rax, r14
test cx, cx
je 0x14001a83e
nop
add rdi, 2
sub rax, 1
cmp word [rdi], 0
jne 0x14001a830
mov byte [rsp + 0x38], dl
test rax, rax
je 0x140023874
mov rcx, rdi
add r14, 1
call sub.msvcrt.dll_wcslen
movzx edx, byte [rsp + 0x38]
mov r8d, 2
mov byte [rsp + 0x2f1], 0
lea rcx, [rdi + rax*2]
mov byte [rsp + 0x2f0], dl
mov rdx, qword [rsp + 0x40]
call sub.msvcrt.dll_mbstowcs
movzx edx, byte [r14]
test dl, dl
je 0x14001a658
movzx ecx, word [r15]
jmp 0x14001a820
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rdi, [rsp + 0x60]
mov edx, pe_nt_image_headers64
lea r8, [0x140025f5e]
mov r9d, eax
mov rcx, rdi
call fcn.1400020f0
cmp word [rbx], 0
je 0x14001aaf8
mov r12, rsi
mov r15, rbx
nop word [rax + rax]
add r15, 2
sub r12, 1
cmp word [r15], 0
jne 0x14001a8d0
movzx r14d, byte [rsp + 0x60]
test r14b, r14b
je 0x14001a560
lea rax, [rdi + r12]
xor ecx, ecx
mov r10, rdi
mov qword [rsp + 0x48], rax
lea r12, [rsp + 0x500]
nop dword [rax]
mov rax, qword [rsp + 0x48]
mov rdi, r15
sub rax, r10
test cx, cx
je 0x14001a92e
nop dword [rax + rax]
add rdi, 2
sub rax, 1
cmp word [rdi], 0
jne 0x14001a920
mov qword [rsp + 0x38], r10
test rax, rax
je 0x140023874
mov rcx, rdi
call sub.msvcrt.dll_wcslen
mov r8d, 2
mov rdx, r12
mov byte [rsp + 0x500], r14b
lea rcx, [rdi + rax*2]
mov byte [rsp + 0x501], 0
call sub.msvcrt.dll_mbstowcs
mov r10, qword [rsp + 0x38]
movzx r14d, byte [r10 + 1]
add r10, 1
test r14b, r14b
je 0x14001a658
movzx ecx, word [r15]
jmp 0x14001a908
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x14001a99e
nop
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x14001a990
test rax, rax
je 0x14001ab40
mov r8d, 0x34
lea rcx, [rdx + 2]
sub rax, 1
mov word [rdx], r8w
mov r8d, 0x2e
lea rdx, [0x140025ef6]
nop word cs:[rax + rax]
test rax, rax
je 0x140023874
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x14001a9d0
xor r12d, r12d
mov word [rcx], r12w
cmp word [rbx], 0
je 0x14001a580
xor eax, eax
jmp 0x14001a568
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x14001aa2e
nop word [rax + rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x14001aa20
test rax, rax
je 0x14001ab3b
mov r10d, 0x4b
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x6f
mov word [rdx], r10w
lea rdx, [0x140025ea6]
nop word cs:[rax + rax]
test rax, rax
je 0x140023874
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x14001aa60
jmp 0x14001a9f3
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x14001aaa6
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x14001aa98
test rax, rax
je 0x14001ab36
mov r9d, 0x65
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x6e
mov word [rdx], r9w
lea rdx, [0x140025eba]
nop
test rax, rax
je 0x140023874
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x14001aad0
jmp 0x14001a9f3
movzx r14d, byte [rsp + 0x60]
mov r12, rsi
mov r15, rbx
test r14b, r14b
jne 0x14001a8ee
xor edx, edx
jmp 0x14001a380
movzx edx, byte [rsp + 0x500]
mov r12, rsi
mov r15, rbx
test dl, dl
jne 0x14001a80f
xor edx, edx
jmp 0x14001a380
jmp 0x140023874
jmp 0x140023874
jmp 0x140023874
jmp 0x140023874
call sub.msvcrt.dll_abort
nop