Function at 0x140001a10
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.140004030
sub rsp, rax
xor r9d, r9d
lea rdi, [0x14000c0a2]
xor edx, edx
mov word [0x14001e0c0], r9w
mov r15d, 0x1000
lea rsi, [0x14001e0c0]
mov eax, 0x25
lea r12, str.TEMP
lea rcx, [rsp + 0x2f0]
mov qword [rsp + 0x40], rcx
jmp 0x140001a88
test rdx, rdx
je 0x140001be0
mov word [rdx], ax
add rdx, 2
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140001bd0
cmp ax, 0x25
jne 0x140001a68
test rdx, rdx
je 0x140001bf8
xor ecx, ecx
lea r14, [rsp + 0x900]
mov word [rdx], cx
mov rdx, r12
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140001ce0
lea rdx, str.PROGRAM
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140001cf8
lea rdx, [0x14000c0f2]
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140001d70
lea rdx, str.HOME
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140001c48
lea rdx, str.CACHE_DIR
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140001c18
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 0x140001c2f
cmp word [rsi], 0
mov rdx, r15
mov rax, rsi
je 0x140001b56
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140001b48
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x140001b99
test rdx, rdx
je 0x14000a2e0
mov r8, qword [rsp + 0x40]
jmp 0x140001b81
test rdx, rdx
je 0x14000a2e0
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x140001b78
xor edx, edx
mov word [rax], dx
movzx eax, word [rsi]
test ax, ax
je 0x140001bbe
nop word cs:[rax + rax]
add rsi, 2
sub r15, 1
cmp word [rsi], 0
jne 0x140001bb0
movzx eax, word [rdi]
xor edx, edx
add rdi, 2
test ax, ax
jne 0x140001a88
xor eax, eax
mov word [rsi], ax
mov eax, 1
jmp 0x140001c31
test r15, r15
je 0x140001c2f
mov word [rsi], ax
sub r15, 1
add rsi, 2
jmp 0x140001a78
xor r8d, r8d
lea rdx, [rsp + 0x900]
mov word [rsp + 0x900], r8w
jmp 0x140001a78
lea rdx, str.TIME
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140001e53
xor eax, eax
add rsp, 0x1108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rbx, [rsp + 0xe0]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rbx
mov edx, 0x28
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140001c2f
cmp word [rsi], 0
mov rdx, r15
mov rax, rsi
je 0x140001c8e
nop dword [rax + rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140001c80
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x140001b99
test rdx, rdx
je 0x14000a2e0
mov rcx, rbx
jmp 0x140001cb9
test rdx, rdx
je 0x14000a2e0
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140001cb0
jmp 0x140001b99
mov rdx, rsi
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
movzx eax, word [rsi]
jmp 0x140001ba1
mov rax, qword [sym.imp.msvcrt.dll___wargv]
cmp word [rsi], 0
mov rdx, r15
mov rax, qword [rax]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, rsi
je 0x140001d26
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140001d18
movzx r8d, word [rcx]
test r8w, r8w
je 0x140001b99
test rdx, rdx
jne 0x140001d49
jmp 0x140001f4c
test rdx, rdx
je 0x14000a2e0
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140001d40
jmp 0x140001b99
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea r13, [rsp + 0x60]
mov edx, pe_nt_image_headers64
mov rbp, r15
mov r9d, eax
lea r8, [0x14000c0fa]
mov rcx, r13
call fcn.140001820
movzx eax, word [rsi]
mov r9, rsi
test ax, ax
je 0x140001daf
add r9, 2
sub rbp, 1
cmp word [r9], 0
jne 0x140001da0
movzx r14d, byte [rsp + 0x60]
lea rbx, [r13 + rbp]
xor ecx, ecx
lea rbp, [rsp + 0x500]
mov qword [rsp + 0x48], rbx
test r14b, r14b
je 0x140001ba1
nop word [rax + rax]
mov rax, qword [rsp + 0x48]
mov rbx, r9
sub rax, r13
test cx, cx
je 0x140001dfe
nop dword [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x140001df0
mov qword [rsp + 0x38], r9
test rax, rax
je 0x14000a2e0
mov rcx, rbx
add r13, 1
call sub.msvcrt.dll_wcslen
mov r8d, 2
mov rdx, rbp
mov byte [rsp + 0x500], r14b
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x501], 0
call sub.msvcrt.dll_mbstowcs
movzx r14d, byte [r13]
mov r9, qword [rsp + 0x38]
test r14b, r14b
je 0x140001cec
movzx ecx, word [r9]
jmp 0x140001dd8
lea rcx, [rsp + 0x58]
lea rbx, [rsp + 0x500]
mov rbp, r15
mov r14, rsi
mov qword [rsp + 0x58], 0
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x58]
mov edx, 0x400
mov rcx, rbx
lea r8, str._lld
call fcn.140001820
movzx eax, word [rsi]
test ax, ax
je 0x140001eaf
nop word cs:[rax + rax]
add r14, 2
sub rbp, 1
cmp word [r14], 0
jne 0x140001ea0
movzx edx, byte [rsp + 0x500]
xor ecx, ecx
mov r9, rbx
add rbp, rbx
test dl, dl
je 0x140001ba1
nop word [rax + rax]
mov rax, rbp
mov rbx, r14
sub rax, r9
test cx, cx
je 0x140001eee
nop
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x140001ee0
mov qword [rsp + 0x48], r9
mov byte [rsp + 0x38], dl
test rax, rax
je 0x14000a2e0
mov rcx, rbx
call sub.msvcrt.dll_wcslen
movzx edx, byte [rsp + 0x38]
mov r8d, 2
mov byte [rsp + 0x2f1], 0
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x2f0], dl
mov rdx, qword [rsp + 0x40]
call sub.msvcrt.dll_mbstowcs
mov r9, qword [rsp + 0x48]
movzx edx, byte [r9 + 1]
add r9, 1
test dl, dl
je 0x140001cec
movzx ecx, word [r14]
jmp 0x140001ed0
jmp 0x14000a2e0
call sub.msvcrt.dll_abort
nop