Function at 0x140008f60
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.140016b20
sub rsp, rax
xor r11d, r11d
mov word [rcx], r11w
movzx eax, word [rdx]
mov rbx, rcx
test ax, ax
je 0x140009128
lea rbp, [rdx + 2]
mov edi, 0x1000
xor edx, edx
lea rcx, [rsp + 0x2f0]
lea r13, str.TEMP
mov qword [rsp + 0x40], rcx
jmp 0x140008fd1
test rdx, rdx
je 0x140009138
mov word [rdx], ax
add rdx, 2
movzx eax, word [rbp]
add rbp, 2
test ax, ax
je 0x140009128
cmp ax, 0x25
jne 0x140008fb0
test rdx, rdx
je 0x140009150
xor r9d, r9d
lea r12, [rsp + 0x900]
mov word [rdx], r9w
mov rcx, r12
mov rdx, r13
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009250
lea rdx, str.PROGRAM
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009270
lea rdx, [0x14001f32e]
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400092f8
lea rdx, str.HOME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400091c0
lea rdx, str.CACHE_DIR
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140009170
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 0x140009187
cmp word [rbx], 0
mov rdx, rdi
mov rax, rbx
je 0x14000909e
nop
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140009090
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x1400090e1
test rdx, rdx
je 0x14001d0a0
mov r8, qword [rsp + 0x40]
jmp 0x1400090c9
test rdx, rdx
je 0x14001d0a0
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x1400090c0
xor ecx, ecx
mov word [rax], cx
cmp word [rbx], 0
je 0x1400091ad
mov eax, 1
nop dword [rax]
add rbx, 2
sub rdi, 1
cmp word [rbx], 0
jne 0x1400090f8
test al, al
jne 0x1400091ad
xor edx, edx
movzx eax, word [rbp]
add rbp, 2
test ax, ax
jne 0x140008fd1
nop dword [rax]
xor eax, eax
mov word [rbx], ax
mov eax, 1
jmp 0x140009189
test rdi, rdi
je 0x140009187
mov word [rbx], ax
sub rdi, 1
add rbx, 2
jmp 0x140008fc0
xor r10d, r10d
lea rdx, [rsp + 0x900]
mov word [rsp + 0x900], r10w
jmp 0x140008fc0
lea rdx, str.TIME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400093d3
xor eax, eax
add rsp, 0x1108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
sub rbx, 2
xor edx, edx
add rdi, 1
mov word [rbx], dx
cmp word [rbx - 2], 0x5c
je 0x1400091a0
xor edx, edx
jmp 0x140009110
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 0x140009187
cmp word [rbx], 0
mov rdx, rdi
mov rax, rbx
je 0x1400091fe
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x1400091f0
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x1400090e1
test rdx, rdx
je 0x14001d0a0
mov rcx, rsi
jmp 0x140009229
test rdx, rdx
je 0x14001d0a0
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140009220
jmp 0x1400090e1
mov rdx, rbx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp word [rbx], 0
jne 0x1400090f0
jmp 0x1400091ad
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 0x14000929e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140009290
movzx r8d, word [rcx]
test r8w, r8w
je 0x1400092db
test rdx, rdx
jne 0x1400092c1
jmp 0x1400094fa
test rdx, rdx
je 0x14001d0a0
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x1400092b8
xor r8d, r8d
mov word [rax], r8w
cmp word [rbx], 0
je 0x14000910e
xor eax, eax
jmp 0x1400090f8
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rsi, [rsp + 0x60]
mov edx, pe_nt_image_headers64
lea r8, [0x14001f336]
mov r9d, eax
mov rcx, rsi
call fcn.140001a50
cmp word [rbx], 0
je 0x1400094c1
mov r12, rdi
mov r14, rbx
nop word [rax + rax]
add r14, 2
sub r12, 1
cmp word [r14], 0
jne 0x140009330
movzx r15d, byte [rsp + 0x60]
test r15b, r15b
je 0x1400092ec
lea rax, [rsi + r12]
xor ecx, ecx
mov r10, rsi
mov qword [rsp + 0x48], rax
lea r12, [rsp + 0x500]
mov rax, qword [rsp + 0x48]
mov rsi, r14
sub rax, r10
test cx, cx
je 0x14000937e
add rsi, 2
sub rax, 1
cmp word [rsi], 0
jne 0x140009370
mov qword [rsp + 0x38], r10
test rax, rax
je 0x14001d0a0
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 0x1400092e2
movzx ecx, word [r14]
jmp 0x140009360
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.140001a50
cmp word [rbx], 0
je 0x1400094dd
mov r12, rdi
mov r15, rbx
nop dword [rax + rax]
add r15, 2
sub r12, 1
cmp word [r15], 0
jne 0x140009420
movzx edx, byte [rsp + 0x500]
test dl, dl
je 0x1400092ec
xor ecx, ecx
mov r14, rsi
add r12, rsi
nop word [rax + rax]
mov rax, r12
mov rsi, r15
sub rax, r14
test cx, cx
je 0x14000946e
nop
add rsi, 2
sub rax, 1
cmp word [rsi], 0
jne 0x140009460
mov byte [rsp + 0x38], dl
test rax, rax
je 0x14001d0a0
mov rcx, rsi
add r14, 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 + 0x40]
call sub.msvcrt.dll_mbstowcs
movzx edx, byte [r14]
test dl, dl
je 0x1400092e2
movzx ecx, word [r15]
jmp 0x140009450
movzx r15d, byte [rsp + 0x60]
mov r12, rdi
mov r14, rbx
test r15b, r15b
jne 0x14000934a
xor edx, edx
jmp 0x140009110
movzx edx, byte [rsp + 0x500]
mov r12, rdi
mov r15, rbx
test dl, dl
jne 0x14000943f
xor edx, edx
jmp 0x140009110
jmp 0x14001d0a0
call sub.msvcrt.dll_abort
nop