Function at 0x140008ed0
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.140016d50
sub rsp, rax
xor r9d, r9d
mov word [rcx], r9w
movzx eax, word [rdx]
mov rbx, rcx
mov rsi, r8
test ax, ax
je 0x140009079
lea rdi, [rsp + 0x2f0]
lea rbp, [rdx + 2]
xor edx, edx
mov qword [rsp + 0x40], rdi
lea r13, str.TEMP
jmp 0x140008f41
test rdx, rdx
je 0x140009058
mov word [rdx], ax
add rdx, 2
movzx eax, word [rbp]
add rbp, 2
test ax, ax
je 0x140009079
cmp ax, 0x25
jne 0x140008f20
test rdx, rdx
je 0x140009090
xor ecx, ecx
lea r12, [rsp + 0x900]
mov word [rdx], cx
mov rdx, r13
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009140
lea rdx, str.PROGRAM
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009198
lea rdx, str.PROGRAM_BASE
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400090b0
lea rdx, [0x14001f364]
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009448
lea rdx, str.HOME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009220
lea rdx, str.CACHE_DIR
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400092c8
lea rdx, str.COMPANY
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400095bb
lea rdx, str.PRODUCT
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009638
lea rdx, str.VERSION
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009533
lea rdx, str.TIME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009356
xor eax, eax
add rsp, 0x1108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test rsi, rsi
je 0x14000903f
mov word [rbx], ax
movzx eax, word [rbp]
sub rsi, 1
add rbx, 2
add rbp, 2
test ax, ax
jne 0x140008f41
xor r11d, r11d
mov eax, 1
mov word [rbx], r11w
jmp 0x140009041
xor r8d, r8d
lea rdx, [rsp + 0x900]
mov word [rsp + 0x900], r8w
jmp 0x140008f30
mov rcx, rbx
call sub.msvcrt.dll_wcslen
mov r8, rsi
lea rdx, str._PROGRAM_
mov rcx, rbx
sub r8, rax
call fcn.140008ed0
test al, al
je 0x14000903f
mov rcx, rbx
call sub.msvcrt.dll_wcslen
cmp rax, 3
jbe 0x140009208
lea rdi, [rbx + rax*2 - 8]
lea rdx, str..exe
mov rcx, rdi
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140009208
xor r15d, r15d
mov word [rdi], r15w
cmp word [rbx], 0
je 0x140009130
xor eax, eax
nop word [rax + rax]
add rbx, 2
sub rsi, 1
cmp word [rbx], 0
jne 0x140009160
test al, al
jne 0x140009185
nop word [rax + rax]
xor edx, edx
jmp 0x140008f30
mov rdx, rbx
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp word [rbx], 0
je 0x140009185
mov eax, 1
nop word cs:[rax + rax]
add rbx, 2
sub rsi, 1
cmp word [rbx], 0
jne 0x140009160
test al, al
je 0x140009130
jmp 0x140009185
sub rbx, 2
xor edi, edi
add rsi, 1
mov word [rbx], di
cmp word [rbx - 2], 0x5c
je 0x140009178
xor edx, edx
jmp 0x140008f30
mov rax, qword [sym.imp.msvcrt.dll___wargv]
cmp word [rbx], 0
mov rdx, rsi
mov rax, qword [rax]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, rbx
je 0x1400091c6
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x1400091b8
movzx r8d, word [rcx]
test r8w, r8w
je 0x140009203
test rdx, rdx
jne 0x1400091e9
jmp 0x1400096e1
test rdx, rdx
je 0x14001d2e0
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x1400091e0
xor edx, edx
mov word [rax], dx
cmp word [rbx], 0
je 0x140009130
xor eax, eax
jmp 0x140009118
lea rdi, [rsp + 0xe0]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rdi
mov edx, 0x28
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x14000903f
cmp word [rbx], 0
mov rdx, rsi
mov rax, rbx
je 0x140009266
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140009258
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x1400092ab
test rdx, rdx
je 0x14001d2e0
mov rcx, rdi
jmp 0x140009291
test rdx, rdx
je 0x14001d2e0
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140009288
xor r14d, r14d
mov word [rax], r14w
cmp word [rbx], 0
jne 0x140009151
jmp 0x140009185
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 0x14000903f
cmp word [rbx], 0
mov rdx, rsi
mov rax, rbx
je 0x14000930e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140009300
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x1400092ab
test rdx, rdx
je 0x14001d2e0
mov r8, qword [rsp + 0x40]
jmp 0x140009339
test rdx, rdx
je 0x14001d2e0
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x140009330
jmp 0x1400092ab
lea rcx, [rsp + 0x58]
lea rdi, [rsp + 0x500]
mov qword [rsp + 0x58], 0
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x58]
mov edx, 0x400
mov rcx, rdi
lea r8, str._lld
call fcn.140001a50
cmp word [rbx], 0
je 0x1400096c4
mov r12, rsi
mov r15, rbx
nop dword [rax + rax]
add r15, 2
sub r12, 1
cmp word [r15], 0
jne 0x1400093a0
movzx edx, byte [rsp + 0x500]
test dl, dl
je 0x140009110
xor ecx, ecx
mov r14, rdi
add r12, rdi
nop word [rax + rax]
mov rax, r12
mov rdi, r15
sub rax, r14
test cx, cx
je 0x1400093ee
nop
add rdi, 2
sub rax, 1
cmp word [rdi], 0
jne 0x1400093e0
mov byte [rsp + 0x38], dl
test rax, rax
je 0x14001d2e0
mov rcx, rdi
add r14, 1
call sub.msvcrt.dll_wcslen
movzx edx, byte [rsp + 0x38]
mov r8d, 2
mov byte [rsp + 0x2f1], 0
lea rcx, [rdi + 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 0x140009208
movzx ecx, word [r15]
jmp 0x1400093d0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rdi, [rsp + 0x60]
mov edx, pe_nt_image_headers64
lea r8, [0x14001f36c]
mov r9d, eax
mov rcx, rdi
call fcn.140001a50
cmp word [rbx], 0
je 0x1400096a8
mov r12, rsi
mov r15, rbx
nop word [rax + rax]
add r15, 2
sub r12, 1
cmp word [r15], 0
jne 0x140009480
movzx r14d, byte [rsp + 0x60]
test r14b, r14b
je 0x140009110
lea rax, [rdi + r12]
xor ecx, ecx
mov r10, rdi
mov qword [rsp + 0x48], rax
lea r12, [rsp + 0x500]
nop dword [rax]
mov rax, qword [rsp + 0x48]
mov rdi, r15
sub rax, r10
test cx, cx
je 0x1400094de
nop dword [rax + rax]
add rdi, 2
sub rax, 1
cmp word [rdi], 0
jne 0x1400094d0
mov qword [rsp + 0x38], r10
test rax, rax
je 0x14001d2e0
mov rcx, rdi
call sub.msvcrt.dll_wcslen
mov r8d, 2
mov rdx, r12
mov byte [rsp + 0x500], r14b
lea rcx, [rdi + rax*2]
mov byte [rsp + 0x501], 0
call sub.msvcrt.dll_mbstowcs
mov r10, qword [rsp + 0x38]
movzx r14d, byte [r10 + 1]
add r10, 1
test r14b, r14b
je 0x140009208
movzx ecx, word [r15]
jmp 0x1400094b8
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x14000954e
nop
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140009540
test rax, rax
je 0x1400096f0
mov r8d, 0x31
lea rcx, [rdx + 2]
sub rax, 1
mov word [rdx], r8w
mov r8d, 0x2e
lea rdx, [0x14001f304]
nop word cs:[rax + rax]
test rax, rax
je 0x14001d2e0
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140009580
xor r12d, r12d
mov word [rcx], r12w
cmp word [rbx], 0
je 0x140009130
xor eax, eax
jmp 0x140009118
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x1400095de
nop word [rax + rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x1400095d0
test rax, rax
je 0x1400096eb
mov r10d, 0x43
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x34
mov word [rdx], r10w
lea rdx, [0x14001f2c2]
nop word cs:[rax + rax]
test rax, rax
je 0x14001d2e0
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140009610
jmp 0x1400095a3
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x140009656
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140009648
test rax, rax
je 0x1400096e6
mov r9d, 0x43
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x61
mov word [rdx], r9w
lea rdx, [0x14001f2e2]
nop
test rax, rax
je 0x14001d2e0
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140009680
jmp 0x1400095a3
movzx r14d, byte [rsp + 0x60]
mov r12, rsi
mov r15, rbx
test r14b, r14b
jne 0x14000949e
xor edx, edx
jmp 0x140008f30
movzx edx, byte [rsp + 0x500]
mov r12, rsi
mov r15, rbx
test dl, dl
jne 0x1400093bf
xor edx, edx
jmp 0x140008f30
jmp 0x14001d2e0
jmp 0x14001d2e0
jmp 0x14001d2e0
jmp 0x14001d2e0
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 0x14000f0cb