Function at 0x140012e50
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 r14, rcx
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0xc40], rax
mov word [rcx], 0
movzx eax, word [rdx]
test ax, ax
je 0x1400136cc
mov r15, r8
mov rdi, rdx
lea rsi, [rsp + 0x440]
lea rbx, str.TEMP
mov r13, qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rbp, str.PROGRAM
lea r12, str.PROGRAM_BASE
add rdi, 2
xor ecx, ecx
jmp 0x140012ee2
test rcx, rcx
jne 0x140012f00
mov word [rsp + 0x440], 0
mov rcx, rsi
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x1400136cc
cmp ax, 0x25
je 0x140012ec0
test rcx, rcx
je 0x1400130b0
mov word [rcx], ax
add rcx, 2
jmp 0x140012ed2
mov word [rcx], 0
mov rcx, rsi
mov rdx, rbx
call fcn.14001b564
test eax, eax
je 0x1400130d0
mov rcx, rsi
mov rdx, rbp
call fcn.14001b564
test eax, eax
je 0x1400130e1
mov rcx, rsi
mov rdx, r12
call fcn.14001b564
test eax, eax
je 0x1400130ff
mov rcx, rsi
lea rdx, [0x1400351ee]
call fcn.14001b564
test eax, eax
je 0x140013162
mov rcx, rsi
lea rdx, str.HOME
call fcn.14001b564
test eax, eax
je 0x140013246
mov rcx, rsi
lea rdx, str.CACHE_DIR
call fcn.14001b564
test eax, eax
je 0x1400132c0
mov rcx, rsi
lea rdx, str.COMPANY
call fcn.14001b564
test eax, eax
je 0x14001334b
mov rcx, rsi
lea rdx, str.PRODUCT
call fcn.14001b564
test eax, eax
je 0x1400134ca
mov rcx, rsi
lea rdx, str.VERSION
call fcn.14001b564
test eax, eax
je 0x1400135b9
mov rcx, rsi
lea rdx, str.TIME
call fcn.14001b564
test eax, eax
jne 0x1400136fc
mov qword [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov r9, qword [rsp + 0x30]
mov edx, 0x400
lea rcx, [rsp + 0x40]
lea r8, str._lld
call fcn.140013710
cmp word [r14], 0
mov rsi, r15
mov r13, r14
je 0x14001302a
dec rsi
cmp word [r13 + 2], 0
lea r13, [r13 + 2]
jne 0x14001301b
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x140013221
lea rbp, [rsp + 0x40]
cmp word [r13], 0
mov r12, r13
mov rax, rsi
je 0x140013061
mov rax, rsi
mov rcx, r13
lea r12, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r12
jne 0x140013050
test rax, rax
je 0x140013701
mov rcx, r12
call fcn.14001c168
lea rcx, [r12 + rax*2]
mov byte [rsp + 0x3e], bl
mov byte [rsp + 0x3f], 0
mov r8d, 2
lea rdx, [rsp + 0x3e]
call fcn.14001b838
add r13, 2
dec rsi
movzx ebx, byte [rbp + 1]
inc rbp
test bl, bl
jne 0x14001303c
jmp 0x140013221
test r15, r15
je 0x1400136fc
mov word [r14], ax
mov word [r14 + 2], 0
add r14, 2
dec r15
jmp 0x1400136c0
mov ecx, r15d
mov rdx, r14
call r13
mov r12b, 1
jmp 0x140013650
xor r12d, r12d
xor ecx, ecx
mov rdx, r14
mov r8d, r15d
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x140013650
jmp 0x1400136d5
mov rcx, r14
call fcn.14001c168
mov r8, r15
sub r8, rax
mov rcx, r14
lea rdx, str._PROGRAM_
call fcn.140012e50
test al, al
je 0x1400136fc
mov rcx, r14
call fcn.14001c168
cmp rax, 4
jb 0x140013643
mov r12, rax
lea rcx, [r14 + rax*2]
add rcx, 0xfffffffffffffff8
lea rdx, str..exe
call fcn.14001b564
test eax, eax
jne 0x140013643
mov word [r14 + r12*2 - 8], 0
jmp 0x140013643
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, 0x80
lea rcx, [rsp + 0x40]
lea r8, [0x140034fb5]
mov r9d, eax
call fcn.140013710
cmp word [r14], 0
mov rsi, r15
mov r13, r14
je 0x14001319f
nop
dec rsi
cmp word [r13 + 2], 0
lea r13, [r13 + 2]
jne 0x140013190
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x140013221
lea rbp, [rsp + 0x40]
nop dword [rax]
cmp word [r13], 0
mov r12, r13
mov rax, rsi
je 0x1400131e1
mov rax, rsi
mov rcx, r13
nop word cs:[rax + rax]
lea r12, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r12
jne 0x1400131d0
test rax, rax
je 0x140013701
mov rcx, r12
call fcn.14001c168
lea rcx, [r12 + rax*2]
mov byte [rsp + 0x30], bl
mov byte [rsp + 0x31], 0
mov r8d, 2
lea rdx, [rsp + 0x30]
call fcn.14001b838
add r13, 2
dec rsi
movzx ebx, byte [rbp + 1]
inc rbp
test bl, bl
jne 0x1400131b0
xor r12d, r12d
lea rsi, [rsp + 0x440]
lea rbx, str.TEMP
mov r13, qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rbp, str.PROGRAM
jmp 0x140013650
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 0x1400136fc
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x14001328e
nop dword [rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013280
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x14001333e
xor r8d, r8d
nop
cmp rcx, r8
je 0x140013701
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + r8*2 + 0x42]
inc r8
test dx, dx
jne 0x1400132a0
jmp 0x14001333e
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 0x1400136fc
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x14001330e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013300
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x14001333e
xor r8d, r8d
nop dword [rax + rax]
cmp rcx, r8
je 0x140013701
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + r8*2 + 0x42]
inc r8
test dx, dx
jne 0x140013320
mov word [rax], 0
mov r12b, 1
jmp 0x140013650
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x140013366
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140013358
test rcx, rcx
je 0x140013701
mov word [rax], 0x53
cmp rcx, 1
je 0x140013701
mov word [rax + 2], 0x61
cmp rcx, 2
je 0x140013701
mov word [rax + 4], 0x6e
cmp rcx, 3
je 0x140013701
mov word [rax + 6], 0x64
cmp rcx, 4
je 0x140013701
mov word [rax + 8], 0x6e
cmp rcx, 5
je 0x140013701
mov word [rax + 0xa], 0x65
cmp rcx, 6
je 0x140013701
mov word [rax + 0xc], 0x73
cmp rcx, 7
je 0x140013701
mov word [rax + 0xe], 0x20
cmp rcx, 8
je 0x140013701
mov word [rax + 0x10], 0x50
cmp rcx, 9
je 0x140013701
mov word [rax + 0x12], 0x72
cmp rcx, 0xa
je 0x140013701
mov word [rax + 0x14], 0x6f
cmp rcx, 0xb
je 0x140013701
mov word [rax + 0x16], 0x2d
cmp rcx, 0xc
je 0x140013701
mov word [rax + 0x18], 0x53
cmp rcx, 0xd
je 0x140013701
mov word [rax + 0x1a], 0x65
cmp rcx, 0xe
je 0x140013701
mov word [rax + 0x1c], 0x72
cmp rcx, 0xf
je 0x140013701
mov word [rax + 0x1e], 0x76
cmp rcx, 0x10
je 0x140013701
mov word [rax + 0x20], 0x69
cmp rcx, 0x11
je 0x140013701
mov word [rax + 0x22], 0x63
cmp rcx, 0x12
je 0x140013701
mov word [rax + 0x24], 0x65
cmp rcx, 0x13
je 0x140013701
mov word [rax + 0x26], 0x20
cmp rcx, 0x14
je 0x140013701
mov word [rax + 0x28], 0x41
cmp rcx, 0x15
je 0x140013701
mov dword [rax + 0x2a], 0x53
jmp 0x140013643
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x1400134e5
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400134d7
test rcx, rcx
je 0x140013701
mov word [rax], 0x53
cmp rcx, 1
je 0x140013701
mov word [rax + 2], 0x50
cmp rcx, 2
je 0x140013701
mov word [rax + 4], 0x53
cmp rcx, 3
je 0x140013701
mov word [rax + 6], 0x20
cmp rcx, 4
je 0x140013701
mov word [rax + 8], 0x73
cmp rcx, 5
je 0x140013701
mov word [rax + 0xa], 0x6b
cmp rcx, 6
je 0x140013701
mov word [rax + 0xc], 0x69
cmp rcx, 7
je 0x140013701
mov word [rax + 0xe], 0x6c
cmp rcx, 8
je 0x140013701
mov word [rax + 0x10], 0x74
cmp rcx, 9
je 0x140013701
mov word [rax + 0x12], 0x6d
cmp rcx, 0xa
je 0x140013701
mov word [rax + 0x14], 0x65
cmp rcx, 0xb
je 0x140013701
mov word [rax + 0x16], 0x6e
cmp rcx, 0xc
je 0x140013701
mov dword [rax + 0x18], 0x79
jmp 0x140013643
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x1400135d4
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400135c6
test rcx, rcx
je 0x140013701
mov word [rax], 0x30
cmp rcx, 1
je 0x140013701
mov word [rax + 2], 0x2e
cmp rcx, 2
je 0x140013701
mov word [rax + 4], 0x36
cmp rcx, 3
je 0x140013701
mov word [rax + 6], 0x2e
cmp rcx, 4
je 0x140013701
mov word [rax + 8], 0x31
cmp rcx, 5
je 0x140013701
mov word [rax + 0xa], 0x2e
cmp rcx, 6
je 0x140013701
mov dword [rax + 0xc], 0x30
xor r12d, r12d
nop word cs:[rax + rax]
cmp word [r14], 0
je 0x1400136a9
nop word [rax + rax]
lea rax, [r14 + 2]
dec r15
cmp word [r14 + 2], 0
mov r14, rax
jne 0x140013660
test r12b, r12b
je 0x1400136b1
cmp word [rax - 2], 0x5c
lea r12, str.PROGRAM_BASE
jne 0x1400136bd
nop word cs:[rax + rax]
lea r14, [rax - 2]
mov word [rax - 2], 0
inc r15
cmp word [rax - 4], 0x5c
mov rax, r14
je 0x140013690
jmp 0x1400136c0
mov rax, r14
test r12b, r12b
jne 0x140013677
mov r14, rax
lea r12, str.PROGRAM_BASE
jmp 0x1400136c0
mov r14, rax
movzx eax, word [rdi]
test ax, ax
jne 0x140012eb3
mov word [r14], 0
mov r12b, 1
mov rcx, qword [rsp + 0xc40]
xor rcx, rsp
call fcn.140015410
mov eax, r12d
add rsp, 0xc48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r12d, r12d
jmp 0x1400136d5
call fcn.14001b7bc
int3