Function at 0x140002110
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.1400038e0
sub rsp, rax
xor r15d, r15d
lea rbp, [0x14000b1b2]
mov edi, 0x1000
mov word [0x14001c060], r15w
lea rsi, [0x14001c060]
xor edx, edx
mov eax, 0x25
lea r13, str.TEMP
lea rcx, [rsp + 0x2f0]
mov qword [rsp + 0x40], rcx
jmp 0x140002189
test rdx, rdx
je 0x140002278
mov word [rdx], ax
add rdx, 2
movzx eax, word [rbp]
add rbp, 2
test ax, ax
je 0x140002299
cmp ax, 0x25
jne 0x140002168
test rdx, rdx
je 0x1400022b0
xor r12d, r12d
mov word [rdx], r12w
lea r12, [rsp + 0x900]
mov rdx, r13
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140002410
lea rdx, str.PROGRAM
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140002428
lea rdx, [0x14000b202]
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140002540
lea rdx, str.HOME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140002370
lea rdx, str.CACHE_DIR
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400024a0
lea rdx, str.COMPANY
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14000270c
lea rdx, str.VERSION
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400022d0
lea rdx, str.TIME
mov rcx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140002614
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 0x14000225b
mov word [rsi], ax
movzx eax, word [rbp]
sub rdi, 1
add rsi, 2
add rbp, 2
test ax, ax
jne 0x140002189
xor r10d, r10d
mov eax, 1
mov word [rsi], r10w
jmp 0x14000225d
xor r14d, r14d
lea rdx, [rsp + 0x900]
mov word [rsp + 0x900], r14w
jmp 0x140002178
cmp word [rsi], 0
mov rax, rdi
mov rdx, rsi
je 0x1400022ee
nop dword [rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x1400022e0
test rax, rax
je 0x140002785
mov r8d, 0x31
lea rcx, [rdx + 2]
sub rax, 1
mov word [rdx], r8w
mov r8d, 0x2e
lea rdx, [0x14000b182]
nop word cs:[rax + rax]
test rax, rax
je 0x140009026
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140002320
xor r11d, r11d
mov word [rcx], r11w
movzx eax, word [rsi]
nop dword [rax]
test ax, ax
je 0x140002366
nop dword [rax]
add rsi, 2
sub rdi, 1
cmp word [rsi], 0
jne 0x140002358
xor edx, edx
jmp 0x140002178
lea rbx, [rsp + 0xe0]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rbx
mov edx, 0x28
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x14000225b
cmp word [rsi], 0
mov rdx, rdi
mov rax, rsi
je 0x1400023b6
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x1400023a8
movzx r8d, word [rsp + 0xe0]
test r8w, r8w
je 0x1400023fb
test rdx, rdx
je 0x140009026
mov rcx, rbx
jmp 0x1400023e1
test rdx, rdx
je 0x140009026
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x1400023d8
xor ebx, ebx
mov word [rax], bx
movzx eax, word [rsi]
jmp 0x140002350
mov rdx, rsi
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
movzx eax, word [rsi]
jmp 0x140002350
mov rax, qword [sym.imp.msvcrt.dll___wargv]
cmp word [rsi], 0
mov rdx, rdi
mov rax, qword [rax]
mov rax, qword [rax]
mov rcx, qword [rax]
mov rax, rsi
je 0x140002456
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x140002448
movzx r8d, word [rcx]
test r8w, r8w
je 0x1400023fb
test rdx, rdx
jne 0x140002479
jmp 0x14000278a
test rdx, rdx
je 0x140009026
add rcx, 2
mov word [rax], r8w
add rax, 2
sub rdx, 1
movzx r8d, word [rcx]
test r8w, r8w
jne 0x140002470
xor ebx, ebx
mov word [rax], bx
movzx eax, word [rsi]
jmp 0x140002350
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 0x14000225b
cmp word [rsi], 0
mov rdx, rdi
mov rax, rsi
je 0x1400024e6
nop dword [rax]
add rax, 2
sub rdx, 1
cmp word [rax], 0
jne 0x1400024d8
movzx ecx, word [rsp + 0x2f0]
test cx, cx
je 0x1400023fb
test rdx, rdx
je 0x140009026
mov r8, qword [rsp + 0x40]
jmp 0x140002519
test rdx, rdx
je 0x140009026
add r8, 2
mov word [rax], cx
add rax, 2
sub rdx, 1
movzx ecx, word [r8]
test cx, cx
jne 0x140002510
xor ebx, ebx
mov word [rax], bx
movzx eax, word [rsi]
jmp 0x140002350
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea r15, [rsp + 0x60]
mov edx, pe_nt_image_headers64
mov r12, rdi
mov r9d, eax
lea r8, [0x14000b140]
mov rcx, r15
call fcn.140001590
movzx eax, word [rsi]
mov r9, rsi
test ax, ax
je 0x14000257f
add r9, 2
sub r12, 1
cmp word [r9], 0
jne 0x140002570
movzx r14d, byte [rsp + 0x60]
lea rbx, [rsp + 0x500]
xor ecx, ecx
add r12, r15
mov qword [rsp + 0x48], rbx
test r14b, r14b
je 0x140002350
mov rax, r12
mov rbx, r9
sub rax, r15
test cx, cx
je 0x1400025be
nop
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x1400025b0
mov qword [rsp + 0x38], r9
test rax, rax
je 0x140009026
mov rcx, rbx
add r15, 1
call sub.msvcrt.dll_wcslen
mov rdx, qword [rsp + 0x48]
mov r8d, 2
mov byte [rsp + 0x500], r14b
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x501], 0
call sub.msvcrt.dll_mbstowcs
movzx r14d, byte [r15]
mov r9, qword [rsp + 0x38]
test r14b, r14b
je 0x14000241b
movzx ecx, word [r9]
jmp 0x1400025a0
lea rcx, [rsp + 0x58]
lea rbx, [rsp + 0x500]
mov r12, rdi
mov r15, rsi
mov qword [rsp + 0x58], 0
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x58]
mov edx, 0x400
mov rcx, rbx
lea r8, str._lld
call fcn.140001590
movzx eax, word [rsi]
test ax, ax
je 0x14000266f
nop word [rax + rax]
add r15, 2
sub r12, 1
cmp word [r15], 0
jne 0x140002660
movzx edx, byte [rsp + 0x500]
xor ecx, ecx
mov r9, rbx
add r12, rbx
test dl, dl
je 0x140002350
nop word [rax + rax]
mov rax, r12
mov rbx, r15
sub rax, r9
test cx, cx
je 0x1400026ae
nop
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x1400026a0
mov qword [rsp + 0x48], r9
mov byte [rsp + 0x38], dl
test rax, rax
je 0x140009026
mov rcx, rbx
call sub.msvcrt.dll_wcslen
movzx edx, byte [rsp + 0x38]
mov r8d, 2
mov byte [rsp + 0x2f1], 0
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x2f0], dl
mov rdx, qword [rsp + 0x40]
call sub.msvcrt.dll_mbstowcs
mov r9, qword [rsp + 0x48]
movzx edx, byte [r9 + 1]
add r9, 1
test dl, dl
je 0x14000241b
movzx ecx, word [r15]
jmp 0x140002690
cmp word [rsi], 0
mov rax, rdi
mov rdx, rsi
je 0x14000272e
nop dword [rax + rax]
add rdx, 2
sub rax, 1
cmp word [rdx], 0
jne 0x140002720
test rax, rax
je 0x140002780
mov r9d, 0x52
lea rcx, [rdx + 2]
sub rax, 1
mov r8d, 0x41
mov word [rdx], r9w
lea rdx, [0x14000b17a]
nop word [rax + rax]
test rax, rax
je 0x140009026
add rdx, 2
mov word [rcx], r8w
add rcx, 2
sub rax, 1
movzx r8d, word [rdx]
test r8w, r8w
jne 0x140002758
jmp 0x140002343
jmp 0x140009026
jmp 0x140009026
jmp 0x140009026