Function at 0x140014170
Capabilities:
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc48
mov rsi, r8
mov rdi, rdx
mov r13, rcx
mov word [rcx], 0
lea r14, [rsp + 0x440]
lea rdx, str.TEMP
mov rbp, qword [sym.imp.msvcrt.dll___wargv]
lea r12, str.PROGRAM_BASE
lea r15, str._PROGRAM_
lea rbx, str..exe
add rdi, 2
xor eax, eax
nop word cs:[rax + rax]
nop dword [rax]
movzx ecx, word [rdi - 2]
cmp cx, 0x25
je 0x140014200
test cx, cx
je 0x140014b4a
test rax, rax
je 0x140014220
mov word [rax], cx
add rax, 2
add rdi, 2
jmp 0x1400141d0
test rax, rax
jne 0x140014240
mov word [rsp + 0x440], 0
add rdi, 2
mov rax, r14
jmp 0x1400141d0
test rsi, rsi
je 0x140014b67
mov word [r13], cx
add r13, 2
add rsi, 0xffffffffffffffff
jmp 0x1400141bc
mov word [rax], 0
mov rcx, r14
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140014394
mov rcx, r14
lea rdx, str.PROGRAM
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140014427
mov rcx, r14
mov rdx, r12
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400144a5
mov rcx, r14
lea rdx, [0x140025fda]
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140014510
mov rcx, r14
lea rdx, str.HOME
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001461d
mov rcx, r14
lea rdx, str.CACHE_DIR
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400146b1
mov rcx, r14
lea rdx, str.COMPANY
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x1400147ac
mov rcx, r14
lea rdx, str.PRODUCT
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x14001492c
mov rcx, r14
lea rdx, str.VERSION
call sub.msvcrt.dll__wcsicmp
test eax, eax
je 0x140014acc
mov rcx, r14
lea rdx, str.TIME
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x140014b67
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x38]
mov edx, 0x400
lea rcx, [rsp + 0x40]
lea r8, str._lld
call fcn.140014bf0
cmp word [r13], 0
mov r12, r13
mov r14, rsi
je 0x140014372
nop dword [rax]
add r14, 0xffffffffffffffff
cmp word [r12 + 2], 0
lea r12, [r12 + 2]
jne 0x140014360
mov r15b, byte [rsp + 0x40]
test r15b, r15b
je 0x1400145eb
xor ecx, ecx
lea rbx, [rsp + 0x40]
mov rax, r14
mov rbp, r12
test cx, cx
jne 0x1400143c8
jmp 0x1400143e2
mov ecx, esi
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
jmp 0x140014740
add rbx, 1
add r14, 0xffffffffffffffff
movzx ecx, word [r12]
mov rax, r14
mov rbp, r12
test cx, cx
je 0x1400143e2
mov rcx, r12
mov rax, r14
nop
lea rbp, [rcx + 2]
add rax, 0xffffffffffffffff
cmp word [rcx + 2], 0
mov rcx, rbp
jne 0x1400143d0
test rax, rax
je 0x140014b6b
mov rcx, rbp
call sub.msvcrt.dll_wcslen
lea rcx, [rax*2]
add rcx, rbp
mov byte [rsp + 0x36], r15b
mov byte [rsp + 0x37], 0
mov r8d, 2
lea rdx, [rsp + 0x36]
call sub.msvcrt.dll_mbstowcs
movzx r15d, byte [rbx + 1]
test r15b, r15b
jne 0x1400143b0
jmp 0x1400145eb
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x14001444f
nop word cs:[rax + rax]
nop
add rcx, 0xffffffffffffffff
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140014440
mov r10, rbp
mov rdx, qword [rbp]
mov rdx, qword [rdx]
mov r8, qword [rdx]
movzx ebp, word [r8]
test bp, bp
je 0x140014496
mov r11, rbx
xor edx, edx
xor ebx, ebx
nop dword [rax]
cmp rcx, rbx
je 0x140014b6b
mov word [rax + rbx*2], bp
movzx ebp, word [r8 + rbx*2 + 2]
add rbx, 1
add rdx, 0xfffffffffffffffe
test bp, bp
jne 0x140014470
sub rax, rdx
mov rbx, r11
mov word [rax], 0
xor eax, eax
mov rbp, r10
jmp 0x140014740
mov rcx, r13
call sub.msvcrt.dll_wcslen
mov r8, rsi
sub r8, rax
mov rcx, r13
mov rdx, r15
call fcn.140014170
test al, al
je 0x140014b67
mov r15, r12
mov r12, rbp
mov rcx, r13
call sub.msvcrt.dll_wcslen
cmp rax, 4
jb 0x1400144fc
mov rbp, rax
lea rcx, [rax*2 - 8]
add rcx, r13
mov rdx, rbx
call sub.msvcrt.dll__wcsicmp
test eax, eax
jne 0x1400144fc
mov word [r13 + rbp*2 - 8], 0
xor eax, eax
mov rbp, r12
mov r12, r15
lea r15, str._PROGRAM_
jmp 0x140014740
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, pe_nt_image_headers64
lea rcx, [rsp + 0x40]
lea r8, [0x140025fe2]
mov r9d, eax
call fcn.140014bf0
cmp word [r13], 0
mov rbp, r13
mov r14, rsi
je 0x14001454f
nop dword [rax]
add r14, 0xffffffffffffffff
cmp word [rbp + 2], 0
lea rbp, [rbp + 2]
jne 0x140014540
mov r15b, byte [rsp + 0x40]
test r15b, r15b
je 0x1400145eb
xor ecx, ecx
lea rbx, [rsp + 0x40]
mov rax, r14
mov r12, rbp
test cx, cx
jne 0x140014597
jmp 0x1400145b2
add rbx, 1
add r14, 0xffffffffffffffff
movzx ecx, word [rbp]
mov rax, r14
mov r12, rbp
test cx, cx
je 0x1400145b2
mov rcx, rbp
mov rax, r14
nop dword [rax]
lea r12, [rcx + 2]
add rax, 0xffffffffffffffff
cmp word [rcx + 2], 0
mov rcx, r12
jne 0x1400145a0
test rax, rax
je 0x140014b6b
mov rcx, r12
call sub.msvcrt.dll_wcslen
lea rcx, [r12 + rax*2]
mov byte [rsp + 0x38], r15b
mov byte [rsp + 0x39], 0
mov r8d, 2
lea rdx, [rsp + 0x38]
call sub.msvcrt.dll_mbstowcs
movzx r15d, byte [rbx + 1]
test r15b, r15b
jne 0x140014580
xor eax, eax
lea r14, [rsp + 0x440]
lea rdx, str.TEMP
mov rbp, qword [sym.imp.msvcrt.dll___wargv]
lea r12, str.PROGRAM_BASE
lea r15, str._PROGRAM_
lea rbx, str..exe
jmp 0x140014747
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor ecx, ecx
mov edx, 0x28
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140014b67
mov r9, rbp
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x14001466f
nop word cs:[rax + rax]
nop dword [rax]
add rcx, 0xffffffffffffffff
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140014660
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x140014735
mov r10, rbx
xor ebp, ebp
xor ebx, ebx
nop word cs:[rax + rax]
nop
cmp rcx, rbx
je 0x140014b6b
mov word [rax + rbx*2], dx
movzx edx, word [rsp + rbx*2 + 0x42]
add rbx, 1
add rbp, 0xfffffffffffffffe
test dx, dx
jne 0x140014690
jmp 0x14001472f
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor ecx, ecx
mov edx, 0x1c
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140014b67
mov r9, rbp
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x1400146ff
nop word [rax + rax]
add rcx, 0xffffffffffffffff
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400146f0
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x140014735
mov r10, rbx
xor ebp, ebp
xor ebx, ebx
cmp rcx, rbx
je 0x140014b6b
mov word [rax + rbx*2], dx
movzx edx, word [rsp + rbx*2 + 0x42]
add rbx, 1
add rbp, 0xfffffffffffffffe
test dx, dx
jne 0x140014710
sub rax, rbp
mov rbx, r10
mov word [rax], 0
mov al, 1
mov rbp, r9
nop
lea rdx, str.TEMP
cmp word [r13], 0
je 0x140014772
mov rcx, r13
nop word cs:[rax + rax]
nop dword [rax]
lea r13, [rcx + 2]
add rsi, 0xffffffffffffffff
cmp word [rcx + 2], 0
mov rcx, r13
jne 0x140014760
test al, al
je 0x1400141bc
cmp word [r13 - 2], 0x5c
jne 0x1400141bc
nop word cs:[rax + rax]
mov word [r13 - 2], 0
add rsi, 1
cmp word [r13 - 4], 0x5c
lea r13, [r13 - 2]
je 0x140014790
jmp 0x1400141bc
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x1400147cf
nop word [rax + rax]
add rcx, 0xffffffffffffffff
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400147c0
test rcx, rcx
lea rdx, str.TEMP
je 0x140014b6b
mov word [rax], 0x4d
cmp rcx, 1
je 0x140014b6b
mov word [rax + 2], 0x69
cmp rcx, 2
je 0x140014b6b
mov word [rax + 4], 0x63
cmp rcx, 3
je 0x140014b6b
mov word [rax + 6], 0x72
cmp rcx, 4
je 0x140014b6b
mov word [rax + 8], 0x6f
cmp rcx, 5
je 0x140014b6b
mov word [rax + 0xa], 0x73
cmp rcx, 6
je 0x140014b6b
mov word [rax + 0xc], 0x6f
cmp rcx, 7
je 0x140014b6b
mov word [rax + 0xe], 0x66
cmp rcx, 8
je 0x140014b6b
mov word [rax + 0x10], 0x74
cmp rcx, 9
je 0x140014b6b
mov word [rax + 0x12], 0x20
cmp rcx, 0xa
je 0x140014b6b
mov word [rax + 0x14], 0x43
cmp rcx, 0xb
je 0x140014b6b
mov word [rax + 0x16], 0x6f
cmp rcx, 0xc
je 0x140014b6b
mov word [rax + 0x18], 0x72
cmp rcx, 0xd
je 0x140014b6b
mov word [rax + 0x1a], 0x70
cmp rcx, 0xe
je 0x140014b6b
mov word [rax + 0x1c], 0x6f
cmp rcx, 0xf
je 0x140014b6b
mov word [rax + 0x1e], 0x72
cmp rcx, 0x10
je 0x140014b6b
mov word [rax + 0x20], 0x61
cmp rcx, 0x11
je 0x140014b6b
mov word [rax + 0x22], 0x74
cmp rcx, 0x12
je 0x140014b6b
mov word [rax + 0x24], 0x69
cmp rcx, 0x13
je 0x140014b6b
mov word [rax + 0x26], 0x6f
cmp rcx, 0x14
je 0x140014b6b
mov dword [rax + 0x28], 0x6e
xor eax, eax
jmp 0x140014747
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x14001494f
nop word [rax + rax]
add rcx, 0xffffffffffffffff
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140014940
test rcx, rcx
lea rdx, str.TEMP
je 0x140014b6b
mov word [rax], 0x4d
cmp rcx, 1
je 0x140014b6b
mov word [rax + 2], 0x69
cmp rcx, 2
je 0x140014b6b
mov word [rax + 4], 0x63
cmp rcx, 3
je 0x140014b6b
mov word [rax + 6], 0x72
cmp rcx, 4
je 0x140014b6b
mov word [rax + 8], 0x6f
cmp rcx, 5
je 0x140014b6b
mov word [rax + 0xa], 0x73
cmp rcx, 6
je 0x140014b6b
mov word [rax + 0xc], 0x6f
cmp rcx, 7
je 0x140014b6b
mov word [rax + 0xe], 0x66
cmp rcx, 8
je 0x140014b6b
mov word [rax + 0x10], 0x74
cmp rcx, 9
je 0x140014b6b
mov word [rax + 0x12], 0x20
cmp rcx, 0xa
je 0x140014b6b
mov word [rax + 0x14], 0x45
cmp rcx, 0xb
je 0x140014b6b
mov word [rax + 0x16], 0x64
cmp rcx, 0xc
je 0x140014b6b
mov word [rax + 0x18], 0x67
cmp rcx, 0xd
je 0x140014b6b
mov word [rax + 0x1a], 0x65
cmp rcx, 0xe
je 0x140014b6b
mov word [rax + 0x1c], 0x20
cmp rcx, 0xf
je 0x140014b6b
mov word [rax + 0x1e], 0x57
cmp rcx, 0x10
je 0x140014b6b
mov word [rax + 0x20], 0x65
cmp rcx, 0x11
je 0x140014b6b
mov word [rax + 0x22], 0x62
cmp rcx, 0x12
je 0x140014b6b
mov word [rax + 0x24], 0x56
cmp rcx, 0x13
je 0x140014b6b
mov word [rax + 0x26], 0x69
cmp rcx, 0x14
je 0x140014b6b
mov word [rax + 0x28], 0x65
cmp rcx, 0x15
je 0x140014b6b
mov word [rax + 0x2a], 0x77
cmp rcx, 0x16
je 0x140014b6b
mov dword [rax + 0x2c], 0x32
xor eax, eax
jmp 0x140014747
cmp word [r13], 0
mov rax, r13
mov rcx, rsi
je 0x140014ae9
add rcx, 0xffffffffffffffff
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140014ada
test rcx, rcx
lea rdx, str.TEMP
je 0x140014b6b
mov word [rax], 0x31
cmp rcx, 1
je 0x140014b6b
mov word [rax + 2], 0x2e
cmp rcx, 2
je 0x140014b6b
mov word [rax + 4], 0x30
cmp rcx, 3
je 0x140014b6b
mov word [rax + 6], 0x2e
cmp rcx, 4
je 0x140014b6b
mov word [rax + 8], 0x30
cmp rcx, 5
je 0x140014b6b
mov word [rax + 0xa], 0x2e
cmp rcx, 6
je 0x140014b6b
mov dword [rax + 0xc], 0x30
xor eax, eax
jmp 0x140014747
mov word [r13], 0
mov al, 1
add rsp, 0xc48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x140014b53
call sub.msvcrt.dll_abort
int3