Function at 0x140008df0
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.140016f90
sub rsp, rax
xor eax, eax
lea rbp, [0x14001f38a]
mov edi, 0x1000
mov word [0x1400320a0], ax
lea rbx, [0x1400320a0]
xor edx, edx
mov eax, 0x25
lea r13, str.TEMP
lea rcx, [rsp + 0x2f0]
mov qword [rsp + 0x48], rcx
jmp 0x140008e69
test rdx, rdx
je 0x140008f70
mov word [rdx], ax
add rdx, 2
movzx eax, word [rbp]
add rbp, 2
test ax, ax
je 0x140008f91
cmp ax, 0x25
jne 0x140008e48
test rdx, rdx
je 0x140008fa0
xor r14d, r14d
lea r12, [rsp + 0x900]
mov word [rdx], r14w
mov rcx, r12
mov rdx, r13
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400090e8
lea rdx, str.PROGRAM
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009100
lea rdx, [0x14001f3da]
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009220
lea rdx, str.HOME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009048
lea rdx, str.CACHE_DIR
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009180
lea rdx, str.COMPANY
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400093ec
lea rdx, str.PRODUCT
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140009468
lea rdx, str.VERSION
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140008fb9
lea rdx, str.TIME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400092f4
xor eax, eax
add rsp, 0x1108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test rdi, rdi
je 0x140008f52
mov word [rbx], ax
movzx eax, word [rbp]
sub rdi, 1
add rbx, 2
add rbp, 2
test ax, ax
jne 0x140008e69
xor r11d, r11d
mov eax, 1
mov word [rbx], r11w
jmp 0x140008f54
xor r15d, r15d
lea rdx, [rsp + 0x900]
mov word [rsp + 0x900], r15w
jmp 0x140008e58
cmp word [rbx], 0
mov rax, rdi
mov rdx, rbx
je 0x140008fd6
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140008fc8
test rax, rax
je 0x1400094e2
mov r8d, 0x30
lea rcx, [rdx + 2]
sub rax, 1
mov word [rdx], r8w
mov r8d, 0x2e
lea rdx, [0x14001f35a]
nop
test rax, rax
je 0x14001d4b0
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140009000
xor esi, esi
mov word [rcx], si
movzx eax, word [rbx]
test ax, ax
je 0x14000903e
add rbx, 2
sub rdi, 1
cmp word [rbx], 0
jne 0x140009030
xor edx, edx
jmp 0x140008e58
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 0x140008f52
cmp word [rbx], 0
mov rdx, rdi
mov rax, rbx
je 0x14000908e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140009080
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x1400090d3
test rdx, rdx
je 0x14001d4b0
mov rcx, rsi
jmp 0x1400090b9
test rdx, rdx
je 0x14001d4b0
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x1400090b0
xor r12d, r12d
mov word [rax], r12w
movzx eax, word [rbx]
jmp 0x14000902b
mov rdx, rbx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
movzx eax, word [rbx]
jmp 0x14000902b
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 0x14000912e
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140009120
movzx r8d, word [rcx]
test r8w, r8w
je 0x1400090d3
test rdx, rdx
jne 0x140009151
jmp 0x1400094dd
test rdx, rdx
je 0x14001d4b0
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140009148
xor r12d, r12d
mov word [rax], r12w
movzx eax, word [rbx]
jmp 0x14000902b
mov rax, qword [rsp + 0x48]
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 0x140008f52
cmp word [rbx], 0
mov rdx, rdi
mov rax, rbx
je 0x1400091c6
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x1400091b8
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x1400090d3
test rdx, rdx
je 0x14001d4b0
mov r8, qword [rsp + 0x48]
jmp 0x1400091f9
test rdx, rdx
je 0x14001d4b0
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x1400091f0
xor r12d, r12d
mov word [rax], r12w
movzx eax, word [rbx]
jmp 0x14000902b
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea r14, [rsp + 0x60]
mov edx, pe_nt_image_headers64
mov r12, rdi
mov r9d, eax
lea r8, [0x14001f3e2]
mov rcx, r14
call fcn.140001a50
movzx eax, word [rbx]
mov r9, rbx
test ax, ax
je 0x14000925f
add r9, 2
sub r12, 1
cmp word [r9], 0
jne 0x140009250
movzx r15d, byte [rsp + 0x60]
lea rsi, [rsp + 0x500]
xor ecx, ecx
add r12, r14
mov qword [rsp + 0x40], rsi
test r15b, r15b
je 0x14000902b
mov rax, r12
mov rsi, r9
sub rax, r14
test cx, cx
je 0x14000929e
nop
add rsi, 2
sub rax, 1
cmp word [rsi], 0
jne 0x140009290
mov qword [rsp + 0x38], r9
test rax, rax
je 0x14001d4b0
mov rcx, rsi
add r14, 1
call sub.msvcrt.dll_wcslen
mov rdx, qword [rsp + 0x40]
mov r8d, 2
mov byte [rsp + 0x500], r15b
lea rcx, [rsi + rax*2]
mov byte [rsp + 0x501], 0
call sub.msvcrt.dll_mbstowcs
movzx r15d, byte [r14]
mov r9, qword [rsp + 0x38]
test r15b, r15b
je 0x1400090f3
movzx ecx, word [r9]
jmp 0x140009280
lea rcx, [rsp + 0x58]
lea rsi, [rsp + 0x500]
mov r12, rdi
mov r14, rbx
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
movzx eax, word [rbx]
test ax, ax
je 0x14000934f
nop word [rax + rax]
add r14, 2
sub r12, 1
cmp word [r14], 0
jne 0x140009340
movzx edx, byte [rsp + 0x500]
xor ecx, ecx
mov r9, rsi
add r12, rsi
test dl, dl
je 0x14000902b
nop word [rax + rax]
mov rax, r12
mov rsi, r14
sub rax, r9
test cx, cx
je 0x14000938e
nop
add rsi, 2
sub rax, 1
cmp word [rsi], 0
jne 0x140009380
mov qword [rsp + 0x40], r9
mov byte [rsp + 0x38], dl
test rax, rax
je 0x14001d4b0
mov rcx, rsi
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 + 0x48]
call sub.msvcrt.dll_mbstowcs
mov r9, qword [rsp + 0x40]
movzx edx, byte [r9 + 1]
add r9, 1
test dl, dl
je 0x1400090f3
movzx ecx, word [r14]
jmp 0x140009370
cmp word [rbx], 0
mov rax, rdi
mov rdx, rbx
je 0x14000940e
nop dword [rax + rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140009400
test rax, rax
je 0x1400094d8
mov r10d, 0x74
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x6f
mov word [rdx], r10w
lea rdx, [0x14001f33a]
nop word cs:[rax + rax]
test rax, rax
je 0x14001d4b0
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140009440
jmp 0x140009023
cmp word [rbx], 0
mov rax, rdi
mov rdx, rbx
je 0x140009486
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140009478
test rax, rax
je 0x1400094e7
mov r9d, 0x74
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x62
mov word [rdx], r9w
lea rdx, [0x14001f348]
nop word [rax + rax]
test rax, rax
je 0x14001d4b0
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x1400094b0
jmp 0x140009023
jmp 0x14001d4b0
jmp 0x14001d4b0
jmp 0x14001d4b0
jmp 0x14001d4b0
call sub.msvcrt.dll_abort
nop