Function at 0x140007580
Capabilities:
Get common file path

Disassembly:
push r15
mov eax, 0x10f8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.140014720
sub rsp, rax
xor r11d, r11d
mov word [rcx], r11w
movzx eax, word [rdx]
mov rbx, rcx
test ax, ax
je 0x140007700
lea rdi, [rdx + 2]
mov r14d, 0x1000
xor edx, edx
jmp 0x1400075e0
test rdx, rdx
je 0x1400076e0
mov word [rdx], ax
add rdx, 2
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140007700
cmp ax, 0x25
jne 0x1400075c0
test rdx, rdx
je 0x140007710
xor r9d, r9d
lea rsi, [rsp + 0x8f0]
mov word [rdx], r9w
mov rcx, rsi
lea rdx, str.TEMP
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140007880
lea rdx, str.PROGRAM
mov rcx, rsi
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400078a0
lea rdx, [0x14001a304]
mov rcx, rsi
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400079c0
lea rdx, str.HOME
mov rcx, rsi
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400077d8
lea rdx, str.CACHE_DIR
mov rcx, rsi
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140007920
lea rdx, str.COMPANY
mov rcx, rsi
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140007b8a
lea rdx, str.PRODUCT
mov rcx, rsi
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140007bf8
lea rdx, str.VERSION
mov rcx, rsi
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140007729
lea rdx, str.TIME
mov rcx, rsi
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140007a9b
xor eax, eax
add rsp, 0x10f8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r14, r14
je 0x1400076c9
mov word [rbx], ax
movzx eax, word [rdi]
sub r14, 1
add rbx, 2
add rdi, 2
test ax, ax
jne 0x1400075e0
xor eax, eax
mov word [rbx], ax
mov eax, 1
jmp 0x1400076cb
xor r10d, r10d
lea rdx, [rsp + 0x8f0]
mov word [rsp + 0x8f0], r10w
jmp 0x1400075d0
cmp word [rbx], 0
mov rdx, r14
mov rax, rbx
je 0x140007746
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140007738
test rdx, rdx
je 0x140018370
mov r8d, 0x31
lea rcx, [0x14001a2da]
jmp 0x140007769
test rdx, rdx
je 0x140018370
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140007760
xor r8d, r8d
mov word [rax], r8w
cmp word [rbx], 0
je 0x1400077aa
xor eax, eax
nop word [rax + rax]
add rbx, 2
sub r14, 1
cmp word [rbx], 0
jne 0x140007798
test al, al
jne 0x1400077c5
xor edx, edx
jmp 0x1400075d0
sub rbx, 2
xor edx, edx
add r14, 1
mov word [rbx], dx
cmp word [rbx - 2], 0x5c
je 0x1400077b8
xor edx, edx
jmp 0x1400075d0
lea rsi, [rsp + 0xd0]
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 0x1400076c9
cmp word [rbx], 0
mov rdx, r14
mov rax, rbx
je 0x14000781e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140007810
movzx r8d, word [rsp + 0xd0]
test r8w, r8w
je 0x140007863
test rdx, rdx
je 0x140018370
mov rcx, rsi
jmp 0x140007849
test rdx, rdx
je 0x140018370
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140007840
xor ecx, ecx
mov word [rax], cx
cmp word [rbx], 0
je 0x1400077c5
mov eax, 1
jmp 0x140007798
mov rdx, rbx
mov ecx, r14d
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp word [rbx], 0
jne 0x140007872
jmp 0x1400077c5
mov rax, qword [sym.imp.msvcrt.dll___wargv]
cmp word [rbx], 0
mov rdx, r14
mov rax, qword [rax]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, rbx
je 0x1400078ce
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x1400078c0
movzx r8d, word [rcx]
test r8w, r8w
je 0x140007783
test rdx, rdx
jne 0x1400078f9
jmp 0x140007c91
test rdx, rdx
je 0x140018370
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x1400078f0
jmp 0x140007783
lea rsi, [rsp + 0x2e0]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rsi
mov edx, 0x1c
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x1400076c9
cmp word [rbx], 0
mov rdx, r14
mov rax, rbx
je 0x140007966
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140007958
movzx r8d, word [rsp + 0x2e0]
test r8w, r8w
je 0x140007863
test rdx, rdx
je 0x140018370
mov rcx, rsi
jmp 0x140007999
test rdx, rdx
je 0x140018370
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140007990
jmp 0x140007863
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea r15, [rsp + 0x50]
mov edx, pe_nt_image_headers64
lea r8, [0x14001a30c]
mov r9d, eax
mov rcx, r15
call fcn.140001590
cmp word [rbx], 0
je 0x140007c58
mov rbp, r14
mov r13, rbx
nop word [rax + rax]
add r13, 2
sub rbp, 1
cmp word [r13], 0
jne 0x1400079f8
movzx r12d, byte [rsp + 0x50]
test r12b, r12b
je 0x140007790
lea rax, [rsp + 0x4f0]
xor ecx, ecx
add rbp, r15
mov qword [rsp + 0x30], rax
nop dword [rax]
mov rax, rbp
mov rsi, r13
sub rax, r15
test cx, cx
je 0x140007a4e
nop
add rsi, 2
sub rax, 1
cmp word [rsi], 0
jne 0x140007a40
test rax, rax
je 0x140018370
mov rcx, rsi
add r15, 1
call sub.msvcrt.dll_wcslen
mov rdx, qword [rsp + 0x30]
mov r8d, 2
mov byte [rsp + 0x4f0], r12b
lea rcx, [rsi + rax*2]
mov byte [rsp + 0x4f1], 0
call sub.msvcrt.dll_mbstowcs
movzx r12d, byte [r15]
test r12b, r12b
je 0x14000778a
movzx ecx, word [r13]
jmp 0x140007a30
lea rcx, [rsp + 0x48]
lea rbp, [rsp + 0x4f0]
mov qword [rsp + 0x48], 0
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x48]
mov edx, 0x400
mov rcx, rbp
lea r8, str._lld
call fcn.140001590
cmp word [rbx], 0
je 0x140007c74
mov rsi, r14
mov r9, rbx
add r9, 2
sub rsi, 1
cmp word [r9], 0
jne 0x140007ae0
movzx edx, byte [rsp + 0x4f0]
test dl, dl
je 0x140007790
xor ecx, ecx
add rsi, rbp
lea r12, [rsp + 0x2e0]
nop dword [rax]
mov rax, rsi
mov r15, r9
sub rax, rbp
test cx, cx
je 0x140007b2f
nop
add r15, 2
sub rax, 1
cmp word [r15], 0
jne 0x140007b20
mov qword [rsp + 0x38], r9
mov byte [rsp + 0x30], dl
test rax, rax
je 0x140018370
mov rcx, r15
add rbp, 1
call sub.msvcrt.dll_wcslen
movzx edx, byte [rsp + 0x30]
mov r8d, 2
mov byte [rsp + 0x2e1], 0
lea rcx, [r15 + rax*2]
mov byte [rsp + 0x2e0], dl
mov rdx, r12
call sub.msvcrt.dll_mbstowcs
movzx edx, byte [rbp]
mov r9, qword [rsp + 0x38]
test dl, dl
je 0x14000778a
movzx ecx, word [r9]
jmp 0x140007b10
cmp word [rbx], 0
mov rdx, r14
mov rax, rbx
je 0x140007bae
nop word cs:[rax + rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140007ba0
test rdx, rdx
je 0x140018370
mov r8d, 0x4d
lea rcx, [0x14001a2b4]
jmp 0x140007bd9
test rdx, rdx
je 0x140018370
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140007bd0
jmp 0x140007783
cmp word [rbx], 0
mov rdx, r14
mov rax, rbx
je 0x140007c16
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140007c08
test rdx, rdx
je 0x140018370
mov r8d, 0x50
lea rcx, [0x14001a2c4]
jmp 0x140007c39
test rdx, rdx
je 0x140018370
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140007c30
jmp 0x140007783
movzx r12d, byte [rsp + 0x50]
mov rbp, r14
mov r13, rbx
test r12b, r12b
jne 0x140007a17
xor edx, edx
jmp 0x1400075d0
movzx edx, byte [rsp + 0x4f0]
mov rsi, r14
mov r9, rbx
test dl, dl
jne 0x140007aff
xor edx, edx
jmp 0x1400075d0
jmp 0x140018370
call sub.msvcrt.dll_abort
nop