Function at 0x1400124d0
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 [0x140036008]
xor rax, rsp
mov qword [rsp + 0xc40], rax
mov word [rcx], 0
movzx eax, word [rdx]
test ax, ax
je 0x140012d28
mov r12, r8
mov rdi, rdx
lea rsi, [rsp + 0x440]
lea rdx, str.TEMP
lea r13, str.PROGRAM_BASE
lea r15, str._PROGRAM_
lea rbx, str..exe
lea rbp, [0x140030ba0]
add rdi, 2
xor ecx, ecx
jmp 0x140012560
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140012d28
cmp ax, 0x25
jne 0x140012580
test rcx, rcx
jne 0x1400125a0
mov word [rsp + 0x440], 0
mov rcx, rsi
jmp 0x140012550
test rcx, rcx
je 0x140012750
mov word [rcx], ax
add rcx, 2
jmp 0x140012550
mov word [rcx], 0
mov rcx, rsi
call fcn.14001afa4
test eax, eax
je 0x140012769
mov rcx, rsi
lea rdx, str.PROGRAM
call fcn.14001afa4
test eax, eax
je 0x140012783
mov rcx, rsi
mov rdx, r13
call fcn.14001afa4
test eax, eax
je 0x140012803
mov rcx, rsi
mov rdx, rbp
call fcn.14001afa4
test eax, eax
je 0x140012872
mov rcx, rsi
lea rdx, str.HOME
call fcn.14001afa4
test eax, eax
je 0x1400129ed
mov rcx, rsi
lea rdx, str.CACHE_DIR
call fcn.14001afa4
test eax, eax
je 0x140012a60
mov rcx, rsi
lea rdx, str.COMPANY
call fcn.14001afa4
test eax, eax
je 0x140012ae8
mov rcx, rsi
lea rdx, str.PRODUCT
call fcn.14001afa4
test eax, eax
je 0x140012b60
mov rcx, rsi
lea rdx, str.VERSION
call fcn.14001afa4
test eax, eax
je 0x140012c28
mov rcx, rsi
lea rdx, str.TIME
call fcn.14001afa4
test eax, eax
jne 0x140012d57
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.140012d70
cmp word [r14], 0
mov rsi, r12
mov r15, r14
je 0x1400126c7
dec rsi
cmp word [r15 + 2], 0
lea r15, [r15 + 2]
jne 0x1400126b8
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x140012948
lea rbp, [rsp + 0x40]
cmp word [r15], 0
mov r13, r15
mov rax, rsi
je 0x140012701
mov rax, rsi
mov rcx, r15
nop dword [rax]
lea r13, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r13
jne 0x1400126f0
test rax, rax
je 0x140012d5b
mov rcx, r13
call fcn.14001bb98
lea rcx, [rax*2]
add rcx, r13
mov byte [rsp + 0x3e], bl
mov byte [rsp + 0x3f], 0
mov r8d, 2
lea rdx, [rsp + 0x3e]
call fcn.14001b26c
add r15, 2
dec rsi
movzx ebx, byte [rbp + 1]
inc rbp
test bl, bl
jne 0x1400126d9
jmp 0x140012948
test r12, r12
je 0x140012d57
mov word [r14], ax
add r14, 2
dec r12
jmp 0x1400129dc
mov ecx, r12d
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
lea rdx, str.TEMP
jmp 0x140012980
call fcn.140016174
cmp word [r14], 0
mov rdx, r12
mov rcx, r14
je 0x1400127ae
nop word cs:[rax + rax]
dec rdx
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x1400127a0
mov rax, qword [rax]
mov rax, qword [rax]
movzx r8d, word [rax]
test r8w, r8w
je 0x1400127f0
xor r9d, r9d
nop word cs:[rax + rax]
cmp rdx, r9
je 0x140012d5b
mov word [rcx], r8w
add rcx, 2
movzx r8d, word [rax + r9*2 + 2]
inc r9
test r8w, r8w
jne 0x1400127d0
mov word [rcx], 0
xor eax, eax
lea rdx, str.TEMP
jmp 0x140012980
mov rcx, r14
call fcn.14001bb98
mov r8, r12
sub r8, rax
mov rcx, r14
mov rdx, r15
call fcn.1400124d0
test al, al
je 0x140012d57
mov rbp, r15
mov r15, r13
mov rcx, r14
call fcn.14001bb98
cmp rax, 4
jb 0x140012857
mov r13, rax
lea rcx, [r14 + rax*2]
add rcx, 0xfffffffffffffff8
mov rdx, rbx
call fcn.14001afa4
test eax, eax
jne 0x140012857
mov word [r14 + r13*2 - 8], 0
xor eax, eax
mov r13, r15
mov r15, rbp
lea rbp, [0x140030ba0]
lea rdx, str.TEMP
jmp 0x140012980
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, 0x80
lea rcx, [rsp + 0x40]
lea r8, [0x1400309be]
mov r9d, eax
call fcn.140012d70
cmp word [r14], 0
mov rsi, r12
mov r15, r14
je 0x1400128af
nop
dec rsi
cmp word [r15 + 2], 0
lea r15, [r15 + 2]
jne 0x1400128a0
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x140012948
lea rbp, [rsp + 0x40]
nop word cs:[rax + rax]
cmp word [r15], 0
mov r13, r15
mov rax, rsi
je 0x140012901
mov rax, rsi
mov rcx, r15
nop word cs:[rax + rax]
lea r13, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r13
jne 0x1400128f0
test rax, rax
je 0x140012d5b
mov rcx, r13
call fcn.14001bb98
lea rcx, [rax*2]
add rcx, r13
mov byte [rsp + 0x30], bl
mov byte [rsp + 0x31], 0
mov r8d, 2
lea rdx, [rsp + 0x30]
call fcn.14001b26c
add r15, 2
dec rsi
movzx ebx, byte [rbp + 1]
inc rbp
test bl, bl
jne 0x1400128d0
xor eax, eax
lea rsi, [rsp + 0x440]
lea rdx, str.TEMP
lea r13, str.PROGRAM_BASE
lea r15, str._PROGRAM_
lea rbx, str..exe
lea rbp, [0x140030ba0]
nop word cs:[rax + rax]
cmp word [r14], 0
je 0x1400129a8
nop word [rax + rax]
lea rcx, [r14 + 2]
dec r12
cmp word [r14 + 2], 0
mov r14, rcx
jne 0x140012990
test al, al
je 0x1400129d9
jmp 0x1400129af
mov rcx, r14
test al, al
je 0x1400129d9
cmp word [rcx - 2], 0x5c
jne 0x1400129d9
nop word cs:[rax + rax]
lea r14, [rcx - 2]
mov word [rcx - 2], 0
inc r12
cmp word [rcx - 4], 0x5c
mov rcx, r14
je 0x1400129c0
jmp 0x1400129dc
mov r14, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x14001253a
jmp 0x140012d28
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 0x140012d57
cmp word [r14], 0
mov rcx, r12
mov rax, r14
je 0x140012a2e
nop
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012a20
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x140012ade
xor r8d, r8d
nop
cmp rcx, r8
je 0x140012d5b
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + r8*2 + 0x42]
inc r8
test dx, dx
jne 0x140012a40
jmp 0x140012ade
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 0x140012d57
cmp word [r14], 0
mov rcx, r12
mov rax, r14
je 0x140012aae
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012aa0
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x140012ade
xor r8d, r8d
nop dword [rax + rax]
cmp rcx, r8
je 0x140012d5b
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + r8*2 + 0x42]
inc r8
test dx, dx
jne 0x140012ac0
mov word [rax], 0
jmp 0x140012775
cmp word [r14], 0
mov rcx, r12
mov rax, r14
je 0x140012b03
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012af5
test rcx, rcx
lea rdx, str.TEMP
je 0x140012d5b
mov word [rax], 0x4d
cmp rcx, 1
je 0x140012d5b
mov word [rax + 2], 0x79
cmp rcx, 2
je 0x140012d5b
mov word [rax + 4], 0x4d
cmp rcx, 3
je 0x140012d5b
mov word [rax + 6], 0x61
cmp rcx, 4
je 0x140012d5b
mov dword [rax + 8], 0x6e
xor eax, eax
jmp 0x140012980
cmp word [r14], 0
mov rcx, r12
mov rax, r14
je 0x140012b7b
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012b6d
test rcx, rcx
lea rdx, str.TEMP
je 0x140012d5b
mov word [rax], 0x64
cmp rcx, 1
je 0x140012d5b
mov word [rax + 2], 0x65
cmp rcx, 2
je 0x140012d5b
mov word [rax + 4], pe_nt_image_headers64
cmp rcx, 3
je 0x140012d5b
mov word [rax + 6], 0x5f
cmp rcx, 4
je 0x140012d5b
mov word [rax + 8], 0x74
cmp rcx, 5
je 0x140012d5b
mov word [rax + 0xa], 0x6f
cmp rcx, 6
je 0x140012d5b
mov word [rax + 0xc], 0x5f
cmp rcx, 7
je 0x140012d5b
mov word [rax + 0xe], 0x62
cmp rcx, 8
je 0x140012d5b
mov word [rax + 0x10], 0x69
cmp rcx, 9
je 0x140012d5b
mov dword [rax + 0x12], 0x6e
xor eax, eax
jmp 0x140012980
cmp word [r14], 0
mov rcx, r12
mov rax, r14
je 0x140012c43
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012c35
test rcx, rcx
lea rdx, str.TEMP
je 0x140012d5b
mov word [rax], 0x30
cmp rcx, 1
je 0x140012d5b
mov word [rax + 2], 0x2e
cmp rcx, 2
je 0x140012d5b
mov word [rax + 4], 0x31
cmp rcx, 3
je 0x140012d5b
mov word [rax + 6], 0x2e
cmp rcx, 4
je 0x140012d5b
mov word [rax + 8], 0x30
cmp rcx, 5
je 0x140012d5b
mov word [rax + 0xa], 0x2e
cmp rcx, 6
je 0x140012d5b
mov word [rax + 0xc], 0x30
cmp rcx, 7
je 0x140012d5b
mov word [rax + 0xe], 0x2d
cmp rcx, 8
je 0x140012d5b
mov word [rax + 0x10], 0x30
cmp rcx, 9
je 0x140012d5b
mov word [rax + 0x12], 0x2e
cmp rcx, 0xa
je 0x140012d5b
mov word [rax + 0x14], 0x34
cmp rcx, 0xb
je 0x140012d5b
mov word [rax + 0x16], 0x2e
cmp rcx, 0xc
je 0x140012d5b
mov word [rax + 0x18], 0x31
cmp rcx, 0xd
je 0x140012d5b
mov word [rax + 0x1a], 0x2e
cmp rcx, 0xe
je 0x140012d5b
mov dword [rax + 0x1c], 0x30
xor eax, eax
jmp 0x140012980
mov word [r14], 0
mov sil, 1
mov rcx, qword [rsp + 0xc40]
xor rcx, rsp
call fcn.140014440
mov eax, esi
add rsp, 0xc48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor esi, esi
jmp 0x140012d31
call fcn.14001b1f0
int3