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.140016d40
sub rsp, rax
xor eax, eax
mov word [rcx], ax
movzx eax, word [rdx]
mov rbx, rcx
mov rsi, r8
test ax, ax
je 0x140009141
lea rbp, [rdx + 2]
lea r12, str.TEMP
xor edx, edx
lea r13, [rsp + 0x2f0]
jmp 0x140008f41
test rdx, rdx
je 0x140009120
mov word [rdx], ax
add rdx, 2
movzx eax, word [rbp]
add rbp, 2
test ax, ax
je 0x140009141
cmp ax, 0x25
jne 0x140008f20
test rdx, rdx
je 0x140009180
xor eax, eax
lea r14, [rsp + 0x900]
mov word [rdx], ax
mov rcx, r14
mov rdx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009220
lea rdx, str.PROGRAM
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009150
lea rdx, str.PROGRAM_BASE
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400091a0
lea rdx, [0x14001f336]
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009400
lea rdx, str.HOME
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009240
lea rdx, str.CACHE_DIR
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009370
lea rdx, str.COMPANY
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400094f0
lea rdx, str.VERSION
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400092e8
lea rdx, str.TIME
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140009162
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 0x1400095ac
mov r14, rsi
mov r15, rbx
nop dword [rax]
add r15, 2
sub r14, 1
cmp word [r15], 0
jne 0x140009070
movzx edx, byte [rsp + 0x500]
test dl, dl
je 0x1400091de
xor ecx, ecx
mov r9, rdi
add r14, rdi
nop word [rax + rax]
mov rax, r14
mov rdi, r15
sub rax, r9
test cx, cx
je 0x1400090be
nop
add rdi, 2
sub rax, 1
cmp word [rdi], 0
jne 0x1400090b0
mov qword [rsp + 0x40], r9
mov byte [rsp + 0x38], dl
test rax, rax
je 0x14001d2c0
mov rcx, rdi
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, r13
call sub.msvcrt.dll_mbstowcs
mov r9, qword [rsp + 0x40]
movzx edx, byte [r9 + 1]
add r9, 1
test dl, dl
je 0x1400091d8
movzx ecx, word [r15]
jmp 0x1400090a0
test rsi, rsi
je 0x140009162
mov word [rbx], ax
movzx eax, word [rbp]
sub rsi, 1
add rbx, 2
add rbp, 2
test ax, ax
jne 0x140008f41
xor r10d, r10d
mov eax, 1
mov word [rbx], r10w
jmp 0x140009164
xor ecx, ecx
mov r8d, esi
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1400091d8
xor eax, eax
add rsp, 0x1108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
lea rdx, [rsp + 0x900]
mov word [rsp + 0x900], ax
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 0x140009162
mov rcx, rbx
call sub.msvcrt.dll_wcslen
cmp rax, 3
ja 0x140009568
nop dword [rax + rax]
cmp word [rbx], 0
je 0x1400091f2
xor eax, eax
add rbx, 2
sub rsi, 1
cmp word [rbx], 0
jne 0x1400091e0
test al, al
jne 0x14000920f
xor edx, edx
jmp 0x140008f30
sub rbx, 2
xor r11d, r11d
add rsi, 1
mov word [rbx], r11w
cmp word [rbx - 2], 0x5c
je 0x140009200
xor edx, edx
jmp 0x140008f30
mov rdx, rbx
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp word [rbx], 0
je 0x14000920f
mov eax, 1
jmp 0x1400091e0
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 0x140009162
cmp word [rbx], 0
mov rdx, rsi
mov rax, rbx
je 0x140009286
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140009278
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x1400092cb
test rdx, rdx
je 0x1400095d3
mov rcx, rdi
jmp 0x1400092b1
test rdx, rdx
je 0x1400095ce
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x1400092a8
xor r14d, r14d
mov word [rax], r14w
cmp word [rbx], 0
jne 0x140009231
jmp 0x14000920f
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x140009306
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x1400092f8
test rax, rax
je 0x1400095d8
mov r8d, 0x31
lea rcx, [rdx + 2]
sub rax, 1
mov word [rdx], r8w
mov r8d, 0x2e
lea rdx, [0x14001f2d6]
nop
test rax, rax
je 0x14001d2c0
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140009330
xor edi, edi
mov word [rcx], di
cmp word [rbx], 0
jne 0x1400091de
xor edx, edx
jmp 0x140008f30
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], r13
mov edx, 0x1c
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140009162
cmp word [rbx], 0
mov rdx, rsi
mov rax, rbx
je 0x1400093ae
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x1400093a0
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x1400092cb
test rdx, rdx
je 0x14001d2c0
mov r8, r13
jmp 0x1400093d9
test rdx, rdx
je 0x14001d2c0
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x1400093d0
jmp 0x1400092cb
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rdi, [rsp + 0x60]
mov edx, pe_nt_image_headers64
lea r8, [0x14001f33e]
mov r9d, eax
mov rcx, rdi
call fcn.140001a50
cmp word [rbx], 0
je 0x140009590
mov r14, rsi
mov r9, rbx
nop word [rax + rax]
add r9, 2
sub r14, 1
cmp word [r9], 0
jne 0x140009438
movzx r15d, byte [rsp + 0x60]
test r15b, r15b
je 0x1400091de
lea rax, [rdi + r14]
xor ecx, ecx
mov r10, rdi
mov qword [rsp + 0x48], rax
lea r14, [rsp + 0x500]
nop dword [rax]
mov rax, qword [rsp + 0x48]
mov rdi, r9
sub rax, r10
test cx, cx
je 0x14000948e
add rdi, 2
sub rax, 1
cmp word [rdi], 0
jne 0x140009480
test rax, rax
je 0x14001d2c0
mov rcx, rdi
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r9
call sub.msvcrt.dll_wcslen
mov r8d, 2
mov rdx, r14
mov byte [rsp + 0x500], r15b
lea rcx, [rdi + rax*2]
mov byte [rsp + 0x501], 0
call sub.msvcrt.dll_mbstowcs
mov r10, qword [rsp + 0x40]
mov r9, qword [rsp + 0x38]
movzx r15d, byte [r10 + 1]
add r10, 1
test r15b, r15b
je 0x1400091d8
movzx ecx, word [r9]
jmp 0x140009470
cmp word [rbx], 0
mov rax, rsi
mov rdx, rbx
je 0x14000950e
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140009500
test rax, rax
je 0x1400095c9
mov r9d, 0x74
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x65
mov word [rdx], r9w
lea rdx, [0x14001f2c2]
nop word cs:[rax + rax]
test rax, rax
je 0x14001d2c0
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140009540
jmp 0x140009353
lea rdi, [rbx + rax*2 - 8]
lea rdx, str..exe
mov rcx, rdi
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x1400091d8
xor r15d, r15d
mov word [rdi], r15w
jmp 0x1400091d8
movzx r15d, byte [rsp + 0x60]
mov r14, rsi
mov r9, rbx
test r15b, r15b
jne 0x140009456
xor edx, edx
jmp 0x140008f30
movzx edx, byte [rsp + 0x500]
mov r14, rsi
mov r15, rbx
test dl, dl
jne 0x14000908f
xor edx, edx
jmp 0x140008f30
jmp 0x14001d2c0
jmp 0x14001d2c0
jmp 0x14001d2c0
jmp 0x14001d2c0
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 0x14000eeab