Function at 0x1400088c0
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.140016400
sub rsp, rax
xor r9d, r9d
mov word [rcx], r9w
movzx eax, word [rdx]
mov rbx, rcx
mov rsi, r8
test ax, ax
je 0x140008959
lea rcx, [rsp + 0x2f0]
lea rdi, [rdx + 2]
mov qword [rsp + 0x40], rcx
xor edx, edx
lea r12, str.TEMP
jmp 0x140008923
mov word [rdx], ax
add rdx, 2
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140008959
cmp ax, 0x7b
je 0x140008970
cmp ax, 0x7d
je 0x140008990
test rdx, rdx
jne 0x140008910
test rsi, rsi
je 0x140008b8d
xor ebp, ebp
mov word [rbx], ax
sub rsi, 1
add rbx, 2
mov word [rbx], bp
movzx eax, word [rdi]
add rdi, 2
test ax, ax
jne 0x140008923
xor r11d, r11d
mov eax, 1
mov word [rbx], r11w
jmp 0x140008b8f
lea rdx, [rsp + 0x900]
xor r8d, r8d
mov word [rsp + 0x900], r8w
jmp 0x140008917
lea r14, [rsp + 0x900]
xor ecx, ecx
mov word [rdx], cx
mov rdx, r12
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008ba8
lea rdx, [0x14001d298]
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008c00
lea rdx, str.PROGRAM_BASE
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008b68
lea rdx, [0x14001d2e0]
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008ea0
lea rdx, [0x14001d2ec]
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008e00
lea rdx, str.CACHE_DIR
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008c88
lea rdx, str.COMPANY
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008f8c
lea rdx, str.PRODUCT
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009008
lea rdx, str.VERSION
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008d6c
lea rdx, str.TIME
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140008b8d
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x58]
mov edx, 0x400
lea rbp, [rsp + 0x500]
lea r8, str._lld
mov rcx, rbp
call fcn.1400017b0
cmp word [rbx], 0
je 0x140009094
mov r14, rsi
mov r15, rbx
nop dword [rax]
add r15, 2
sub r14, 1
cmp word [r15], 0
jne 0x140008ac8
movzx edx, byte [rsp + 0x500]
test dl, dl
je 0x140008c7a
mov r13, rbp
add r14, rbp
nop dword [rax]
mov rax, r14
mov rbp, r15
sub rax, r13
cmp word [r15], 0
je 0x140008b0f
add rbp, 2
sub rax, 1
cmp word [rbp], 0
jne 0x140008b00
test rax, rax
mov byte [rsp + 0x38], dl
je 0x14001b670
mov rcx, rbp
add r13, 1
add r15, 2
call sub.msvcrt.dll_wcslen
movzx edx, byte [rsp + 0x38]
mov r8d, 2
mov byte [rsp + 0x2f1], 0
lea rcx, [rbp + rax*2]
mov byte [rsp + 0x2f0], dl
mov rdx, qword [rsp + 0x40]
call sub.msvcrt.dll_mbstowcs
movzx edx, byte [r13]
test dl, dl
jne 0x140008af0
jmp 0x140008c70
mov rcx, rbx
call sub.msvcrt.dll_wcslen
mov r8, rsi
mov rcx, rbx
lea rdx, str.PROGRAM
sub r8, rax
call fcn.1400088c0
test al, al
jne 0x140008d27
xor eax, eax
add rsp, 0x1108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rbx
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp word [rbx], 0
je 0x140008bef
mov eax, 1
nop
add rbx, 2
sub rsi, 1
cmp word [rbx], 0
jne 0x140008bc0
test al, al
jne 0x140008bef
xor edx, edx
jmp 0x140008917
sub rbx, 2
xor r13d, r13d
add rsi, 1
mov word [rbx], r13w
cmp word [rbx - 2], 0x5c
je 0x140008be0
xor edx, edx
jmp 0x140008917
mov rax, qword [sym.imp.msvcrt.dll___wargv]
mov rdx, rsi
cmp word [rbx], 0
mov rax, qword [rax]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, rbx
je 0x140008c2e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140008c20
movzx r8d, word [rcx]
test r8w, r8w
je 0x140008c6b
test rdx, rdx
jne 0x140008c51
jmp 0x1400090b6
test rdx, rdx
je 0x14001b670
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140008c48
xor edx, edx
mov word [rax], dx
cmp word [rbx], 0
je 0x140008bd2
xor eax, eax
jmp 0x140008bc0
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 0x140008b8d
cmp word [rbx], 0
mov rdx, rsi
mov rax, rbx
je 0x140008cce
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140008cc0
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x140008d11
test rdx, rdx
je 0x14001b670
mov r8, qword [rsp + 0x40]
jmp 0x140008cf9
test rdx, rdx
je 0x14001b670
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x140008cf0
xor r15d, r15d
mov word [rax], r15w
cmp word [rbx], 0
jne 0x140008bb9
jmp 0x140008bef
mov rcx, rbx
call sub.msvcrt.dll_wcslen
cmp rax, 3
jbe 0x140008c70
lea rbp, [rbx + rax*2 - 8]
lea rdx, str..exe
mov rcx, rbp
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140008c70
xor eax, eax
mov word [rbp], ax
cmp word [rbx], 0
je 0x140008bd2
xor eax, eax
jmp 0x140008bc0
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x140008d8e
nop dword [rax + rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140008d80
test rax, rax
je 0x1400090bb
lea rcx, [rdx + 2]
mov r8d, 0x31
sub rax, 1
mov word [rdx], r8w
mov r8d, 0x2e
lea rdx, [0x14001d280]
nop word cs:[rax + rax]
test rax, rax
je 0x14001b670
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140008dc0
xor r14d, r14d
mov word [rcx], r14w
cmp word [rbx], 0
je 0x140008bd2
xor eax, eax
jmp 0x140008bc0
lea rbp, [rsp + 0xe0]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rbp
mov edx, 0x28
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140008b8d
cmp word [rbx], 0
mov rdx, rsi
mov rax, rbx
je 0x140008e46
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140008e38
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x140008d11
test rdx, rdx
je 0x14001b670
mov rcx, rbp
jmp 0x140008e79
test rdx, rdx
je 0x14001b670
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140008e70
jmp 0x140008d11
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rbp, [rsp + 0x60]
mov edx, pe_nt_image_headers64
lea r8, [0x14001d2e8]
mov r9d, eax
mov rcx, rbp
call fcn.1400017b0
cmp word [rbx], 0
je 0x140009078
mov r14, rsi
mov r13, rbx
nop word [rax + rax]
add r13, 2
sub r14, 1
cmp word [r13], 0
jne 0x140008ed8
movzx r15d, byte [rsp + 0x60]
test r15b, r15b
je 0x140008c7a
lea rax, [rbp + r14]
mov r10, rbp
mov qword [rsp + 0x48], rax
lea r14, [rsp + 0x500]
nop dword [rax]
mov rax, qword [rsp + 0x48]
mov rbp, r13
sub rax, r10
cmp word [r13], 0
je 0x140008f37
nop dword [rax + rax]
add rbp, 2
sub rax, 1
cmp word [rbp], 0
jne 0x140008f28
test rax, rax
mov qword [rsp + 0x38], r10
je 0x14001b670
mov rcx, rbp
add r13, 2
call sub.msvcrt.dll_wcslen
mov r8d, 2
mov rdx, r14
mov byte [rsp + 0x500], r15b
lea rcx, [rbp + 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
jne 0x140008f10
jmp 0x140008c70
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x140008fae
nop dword [rax + rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140008fa0
test rax, rax
je 0x1400090b1
mov r10d, 0x50
sub rax, 1
mov r8d, 0x44
lea rcx, [rdx + 2]
mov word [rdx], r10w
lea rdx, [0x14001d262]
nop word cs:[rax + rax]
test rax, rax
je 0x14001b670
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140008fe0
jmp 0x140008de3
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x140009026
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140009018
test rax, rax
je 0x1400090c0
mov r9d, 0x57
sub rax, 1
mov r8d, 0x6f
lea rcx, [rdx + 2]
mov word [rdx], r9w
lea rdx, [0x14001d26c]
nop
test rax, rax
je 0x14001b670
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140009050
jmp 0x140008de3
movzx r15d, byte [rsp + 0x60]
mov r14, rsi
mov r13, rbx
test r15b, r15b
jne 0x140008ef7
xor edx, edx
jmp 0x140008917
movzx edx, byte [rsp + 0x500]
mov r14, rsi
mov r15, rbx
test dl, dl
jne 0x140008ae7
xor edx, edx
jmp 0x140008917
jmp 0x14001b670
jmp 0x14001b670
jmp 0x14001b670
jmp 0x14001b670
mov rax, r13
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop r12
pop r13
ret
call sub.msvcrt.dll_abort
nop
or r13, 0xffffffffffffffff
jmp 0x14000e0db