Function at 0x14001a310
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.14001ced0
sub rsp, rax
xor eax, eax
mov word [rcx], ax
movzx eax, word [rdx]
mov rbx, rcx
mov rdi, r8
test ax, ax
je 0x14001a4a1
lea rcx, [rsp + 0x2f0]
lea rbp, [rdx + 2]
xor edx, edx
mov qword [rsp + 0x48], rcx
lea r13, str.TEMP
jmp 0x14001a381
test rdx, rdx
je 0x14001a480
mov word [rdx], ax
add rdx, 2
movzx eax, word [rbp]
add rbp, 2
test ax, ax
je 0x14001a4a1
cmp ax, 0x25
jne 0x14001a360
test rdx, rdx
je 0x14001a4b0
xor eax, eax
lea r12, [rsp + 0x900]
mov word [rdx], ax
mov rcx, r12
mov rdx, r13
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a630
lea rdx, str.PROGRAM
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a650
lea rdx, [0x140025ee2]
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a770
lea rdx, str.HOME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a588
lea rdx, str.CACHE_DIR
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a6d8
lea rdx, str.COMPANY
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a941
lea rdx, str.PRODUCT
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a9c9
lea rdx, str.VERSION
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a4c7
lea rdx, str.TIME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001a853
xor eax, eax
add rsp, 0x1108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test rdi, rdi
je 0x14001a464
mov word [rbx], ax
movzx eax, word [rbp]
sub rdi, 1
add rbx, 2
add rbp, 2
test ax, ax
jne 0x14001a381
xor r11d, r11d
mov eax, 1
mov word [rbx], r11w
jmp 0x14001a466
xor eax, eax
lea rdx, [rsp + 0x900]
mov word [rsp + 0x900], ax
jmp 0x14001a370
cmp word [rbx], 0
mov rax, rdi
mov rdx, rbx
je 0x14001a4e6
nop dword [rax + rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x14001a4d8
test rax, rax
je 0x14001aa82
mov r8d, 0x31
lea rcx, [rdx + 2]
sub rax, 1
mov word [rdx], r8w
mov r8d, 0x2e
lea rdx, [0x140025eb8]
nop
test rax, rax
je 0x140023498
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x14001a510
xor r12d, r12d
mov word [rcx], r12w
cmp word [rbx], 0
je 0x14001a55a
xor eax, eax
nop word [rax + rax]
add rbx, 2
sub rdi, 1
cmp word [rbx], 0
jne 0x14001a548
test al, al
jne 0x14001a575
xor edx, edx
jmp 0x14001a370
sub rbx, 2
xor esi, esi
add rdi, 1
mov word [rbx], si
cmp word [rbx - 2], 0x5c
je 0x14001a568
xor edx, edx
jmp 0x14001a370
lea rsi, [rsp + 0xe0]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rsi
mov edx, 0x28
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x14001a464
cmp word [rbx], 0
mov rdx, rdi
mov rax, rbx
je 0x14001a5ce
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x14001a5c0
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x14001a613
test rdx, rdx
je 0x140023498
mov rcx, rsi
jmp 0x14001a5f9
test rdx, rdx
je 0x140023498
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x14001a5f0
xor r14d, r14d
mov word [rax], r14w
cmp word [rbx], 0
je 0x14001a575
mov eax, 1
jmp 0x14001a548
mov rdx, rbx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp word [rbx], 0
jne 0x14001a624
jmp 0x14001a575
mov rax, qword [sym.imp.msvcrt.dll___wargv]
cmp word [rbx], 0
mov rdx, rdi
mov rax, qword [rax]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, rbx
je 0x14001a67e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x14001a670
movzx r8d, word [rcx]
test r8w, r8w
je 0x14001a6bb
test rdx, rdx
jne 0x14001a6a1
jmp 0x14001aa91
test rdx, rdx
je 0x140023498
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x14001a698
xor r15d, r15d
mov word [rax], r15w
cmp word [rbx], 0
jne 0x14001a540
xor edx, edx
jmp 0x14001a370
mov rax, qword [rsp + 0x48]
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 0x14001a464
cmp word [rbx], 0
mov rdx, rdi
mov rax, rbx
je 0x14001a71e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x14001a710
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x14001a613
test rdx, rdx
je 0x140023498
mov r8, qword [rsp + 0x48]
jmp 0x14001a749
test rdx, rdx
je 0x140023498
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x14001a740
jmp 0x14001a613
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rsi, [rsp + 0x60]
mov edx, pe_nt_image_headers64
lea r8, [0x140025eea]
mov r9d, eax
mov rcx, rsi
call fcn.1400020f0
cmp word [rbx], 0
je 0x14001aa49
mov r12, rdi
mov r14, rbx
nop word [rax + rax]
add r14, 2
sub r12, 1
cmp word [r14], 0
jne 0x14001a7a8
movzx r15d, byte [rsp + 0x60]
test r15b, r15b
je 0x14001a540
lea rax, [rsi + r12]
xor ecx, ecx
mov r10, rsi
mov qword [rsp + 0x40], rax
lea r12, [rsp + 0x500]
nop dword [rax]
mov rax, qword [rsp + 0x40]
mov rsi, r14
sub rax, r10
test cx, cx
je 0x14001a7fe
add rsi, 2
sub rax, 1
cmp word [rsi], 0
jne 0x14001a7f0
mov qword [rsp + 0x38], r10
test rax, rax
je 0x140023498
mov rcx, rsi
call sub.msvcrt.dll_wcslen
mov r8d, 2
mov rdx, r12
mov byte [rsp + 0x500], r15b
lea rcx, [rsi + rax*2]
mov byte [rsp + 0x501], 0
call sub.msvcrt.dll_mbstowcs
mov r10, qword [rsp + 0x38]
movzx r15d, byte [r10 + 1]
add r10, 1
test r15b, r15b
je 0x14001a6c2
movzx ecx, word [r14]
jmp 0x14001a7e0
lea rcx, [rsp + 0x58]
lea rsi, [rsp + 0x500]
mov qword [rsp + 0x58], 0
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x58]
mov edx, 0x400
mov rcx, rsi
lea r8, str._lld
call fcn.1400020f0
cmp word [rbx], 0
je 0x14001aa65
mov r12, rdi
mov r14, rbx
nop dword [rax + rax]
add r14, 2
sub r12, 1
cmp word [r14], 0
jne 0x14001a8a0
movzx edx, byte [rsp + 0x500]
test dl, dl
je 0x14001a540
xor ecx, ecx
mov r15, rsi
add r12, rsi
nop word [rax + rax]
mov rax, r12
mov rsi, r14
sub rax, r15
test cx, cx
je 0x14001a8ee
nop
add rsi, 2
sub rax, 1
cmp word [rsi], 0
jne 0x14001a8e0
mov byte [rsp + 0x38], dl
test rax, rax
je 0x140023498
mov rcx, rsi
add r15, 1
call sub.msvcrt.dll_wcslen
movzx edx, byte [rsp + 0x38]
mov r8d, 2
mov byte [rsp + 0x2f1], 0
lea rcx, [rsi + rax*2]
mov byte [rsp + 0x2f0], dl
mov rdx, qword [rsp + 0x48]
call sub.msvcrt.dll_mbstowcs
movzx edx, byte [r15]
test dl, dl
je 0x14001a6c2
movzx ecx, word [r14]
jmp 0x14001a8d0
cmp word [rbx], 0
mov rax, rdi
mov rdx, rbx
je 0x14001a95e
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x14001a950
test rax, rax
je 0x14001aa8c
mov r10d, 0x4b
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x6f
mov word [rdx], r10w
lea rdx, [0x140025e66]
nop word cs:[rax + rax]
test rax, rax
je 0x140023498
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x14001a990
xor r12d, r12d
mov word [rcx], r12w
cmp word [rbx], 0
jne 0x14001a540
jmp 0x14001a55a
cmp word [rbx], 0
mov rax, rdi
mov rdx, rbx
je 0x14001a9e6
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x14001a9d8
test rax, rax
je 0x14001aa87
mov r9d, 0x49
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x6e
mov word [rdx], r9w
lea rdx, [0x140025e7a]
nop
test rax, rax
je 0x140023498
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x14001aa10
xor r12d, r12d
mov word [rcx], r12w
cmp word [rbx], 0
jne 0x14001a540
jmp 0x14001a55a
movzx r15d, byte [rsp + 0x60]
mov r12, rdi
mov r14, rbx
test r15b, r15b
jne 0x14001a7c6
xor edx, edx
jmp 0x14001a370
movzx edx, byte [rsp + 0x500]
mov r12, rdi
mov r14, rbx
test dl, dl
jne 0x14001a8bf
xor edx, edx
jmp 0x14001a370
jmp 0x140023498
jmp 0x140023498
jmp 0x140023498
jmp 0x140023498
call sub.msvcrt.dll_abort
nop