Function at 0x1400123a0
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 0x140012b50
mov r15, r8
mov rdi, rdx
lea rsi, [rsp + 0x440]
lea rdx, str.TEMP
lea r12, str.PROGRAM_BASE
lea r13, [0x140034422]
lea rbx, str..exe
lea rbp, [0x1400344f6]
add rdi, 2
xor ecx, ecx
jmp 0x14001243d
mov word [rsp + 0x440], 0
mov rcx, rsi
movzx eax, word [rdi]
add rdi, 2
test ax, ax
je 0x140012b50
cmp ax, 0x7b
je 0x140012420
movzx r8d, ax
cmp r8d, 0x7d
je 0x140012460
test rcx, rcx
je 0x140012600
mov word [rcx], ax
add rcx, 2
jmp 0x14001242d
mov word [rcx], 0
mov rcx, rsi
call fcn.14001a4c8
test eax, eax
je 0x140012620
mov rcx, rsi
lea rdx, str.PROGRAM
call fcn.14001a4c8
test eax, eax
je 0x14001263a
mov rcx, rsi
mov rdx, r12
call fcn.14001a4c8
test eax, eax
je 0x1400126b3
mov rcx, rsi
mov rdx, rbp
call fcn.14001a4c8
test eax, eax
je 0x140012722
mov rcx, rsi
lea rdx, str.HOME
call fcn.14001a4c8
test eax, eax
je 0x14001287d
mov rcx, rsi
lea rdx, str.CACHE_DIR
call fcn.14001a4c8
test eax, eax
je 0x1400128f0
mov rcx, rsi
lea rdx, str.PRODUCT
call fcn.14001a4c8
test eax, eax
je 0x140012978
mov rcx, rsi
lea rdx, str.VERSION
call fcn.14001a4c8
test eax, eax
je 0x140012a90
mov rcx, rsi
lea rdx, str.TIME
call fcn.14001a4c8
test eax, eax
jne 0x140012b7f
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.140012310
cmp word [r14], 0
mov rsi, r15
mov rbp, r14
je 0x14001256f
dec rsi
cmp word [rbp + 2], 0
lea rbp, [rbp + 2]
jne 0x140012561
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x1400127e2
lea r13, [rsp + 0x40]
cmp word [rbp], 0
mov r12, rbp
mov rax, rsi
je 0x1400125b1
mov rax, rsi
mov rcx, rbp
nop word cs:[rax + rax]
lea r12, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r12
jne 0x1400125a0
test rax, rax
je 0x140012b83
mov rcx, r12
call fcn.14001b0d8
lea rcx, [r12 + rax*2]
mov byte [rsp + 0x3e], bl
mov byte [rsp + 0x3f], 0
mov r8d, 2
lea rdx, [rsp + 0x3e]
call fcn.14001a79c
add rbp, 2
dec rsi
movzx ebx, byte [r13 + 1]
inc r13
test bl, bl
jne 0x140012581
jmp 0x1400127e2
test r15, r15
je 0x140012b7f
mov word [r14], ax
mov word [r14 + 2], 0
add r14, 2
dec r15
jmp 0x14001286c
mov ecx, r15d
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov al, 1
lea rdx, str.TEMP
jmp 0x140012810
call fcn.14001559c
cmp word [r14], 0
mov rdx, r15
mov rcx, r14
je 0x14001265e
nop dword [rax]
dec rdx
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x140012650
mov rax, qword [rax]
mov rax, qword [rax]
movzx r8d, word [rax]
test r8w, r8w
je 0x1400126a0
xor r9d, r9d
nop word cs:[rax + rax]
cmp rdx, r9
je 0x140012b83
mov word [rcx], r8w
add rcx, 2
movzx r8d, word [rax + r9*2 + 2]
inc r9
test r8w, r8w
jne 0x140012680
mov word [rcx], 0
xor eax, eax
lea rdx, str.TEMP
jmp 0x140012810
mov rcx, r14
call fcn.14001b0d8
mov r8, r15
sub r8, rax
mov rcx, r14
mov rdx, r13
call fcn.1400123a0
test al, al
je 0x140012b7f
mov rbp, r13
mov r13, r12
mov rcx, r14
call fcn.14001b0d8
cmp rax, 4
jb 0x140012707
mov r12, rax
lea rcx, [r14 + rax*2]
add rcx, 0xfffffffffffffff8
mov rdx, rbx
call fcn.14001a4c8
test eax, eax
jne 0x140012707
mov word [r14 + r12*2 - 8], 0
xor eax, eax
mov r12, r13
mov r13, rbp
lea rbp, [0x1400344f6]
lea rdx, str.TEMP
jmp 0x140012810
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov edx, 0x80
lea rcx, [rsp + 0x40]
lea r8, [0x1400342be]
mov r9d, eax
call fcn.140012310
cmp word [r14], 0
mov rsi, r15
mov rbp, r14
je 0x14001275e
nop
dec rsi
cmp word [rbp + 2], 0
lea rbp, [rbp + 2]
jne 0x140012750
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x1400127e2
lea r13, [rsp + 0x40]
nop dword [rax]
cmp word [rbp], 0
mov r12, rbp
mov rax, rsi
je 0x1400127a1
mov rax, rsi
mov rcx, rbp
nop word cs:[rax + rax]
lea r12, [rcx + 2]
dec rax
cmp word [rcx + 2], 0
mov rcx, r12
jne 0x140012790
test rax, rax
je 0x140012b83
mov rcx, r12
call fcn.14001b0d8
lea rcx, [r12 + rax*2]
mov byte [rsp + 0x30], bl
mov byte [rsp + 0x31], 0
mov r8d, 2
lea rdx, [rsp + 0x30]
call fcn.14001a79c
add rbp, 2
dec rsi
movzx ebx, byte [r13 + 1]
inc r13
test bl, bl
jne 0x140012770
xor eax, eax
lea rsi, [rsp + 0x440]
lea rdx, str.TEMP
lea r12, str.PROGRAM_BASE
lea r13, [0x140034422]
lea rbx, str..exe
lea rbp, [0x1400344f6]
nop
cmp word [r14], 0
je 0x140012838
nop word [rax + rax]
lea rcx, [r14 + 2]
dec r15
cmp word [r14 + 2], 0
mov r14, rcx
jne 0x140012820
test al, al
je 0x140012869
jmp 0x14001283f
mov rcx, r14
test al, al
je 0x140012869
cmp word [rcx - 2], 0x5c
jne 0x140012869
nop word cs:[rax + rax]
lea r14, [rcx - 2]
mov word [rcx - 2], 0
inc r15
cmp word [rcx - 4], 0x5c
mov rcx, r14
je 0x140012850
jmp 0x14001286c
mov r14, rcx
movzx eax, word [rdi]
test ax, ax
jne 0x14001240a
jmp 0x140012b50
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 0x140012b7f
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x1400128be
nop
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x1400128b0
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x14001296e
xor r8d, r8d
nop
cmp rcx, r8
je 0x140012b83
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + r8*2 + 0x42]
inc r8
test dx, dx
jne 0x1400128d0
jmp 0x14001296e
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 0x140012b7f
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x14001293e
nop word cs:[rax + rax]
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012930
movzx edx, word [rsp + 0x40]
test dx, dx
je 0x14001296e
xor r8d, r8d
nop dword [rax + rax]
cmp rcx, r8
je 0x140012b83
mov word [rax], dx
add rax, 2
movzx edx, word [rsp + r8*2 + 0x42]
inc r8
test dx, dx
jne 0x140012950
mov word [rax], 0
jmp 0x14001262c
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x140012993
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012985
test rcx, rcx
lea rdx, str.TEMP
je 0x140012b83
mov word [rax], 0x4b
cmp rcx, 1
je 0x140012b83
mov word [rax + 2], 0x6f
cmp rcx, 2
je 0x140012b83
mov word [rax + 4], 0x61
cmp rcx, 3
je 0x140012b83
mov word [rax + 6], 0x6c
cmp rcx, 4
je 0x140012b83
mov word [rax + 8], 0x61
cmp rcx, 5
je 0x140012b83
mov word [rax + 0xa], 0x2d
cmp rcx, 6
je 0x140012b83
mov word [rax + 0xc], 0x4d
cmp rcx, 7
je 0x140012b83
mov word [rax + 0xe], 0x75
cmp rcx, 8
je 0x140012b83
mov word [rax + 0x10], 0x6c
cmp rcx, 9
je 0x140012b83
mov word [rax + 0x12], 0x74
cmp rcx, 0xa
je 0x140012b83
mov word [rax + 0x14], 0x69
cmp rcx, 0xb
je 0x140012b83
mov word [rax + 0x16], 0x74
cmp rcx, 0xc
je 0x140012b83
mov word [rax + 0x18], 0x6f
cmp rcx, 0xd
je 0x140012b83
mov word [rax + 0x1a], 0x6f
cmp rcx, 0xe
je 0x140012b83
mov dword [rax + 0x1c], 0x6c
xor eax, eax
jmp 0x140012810
cmp word [r14], 0
mov rcx, r15
mov rax, r14
je 0x140012aab
dec rcx
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x140012a9d
test rcx, rcx
lea rdx, str.TEMP
je 0x140012b83
mov word [rax], 0x36
cmp rcx, 1
je 0x140012b83
mov word [rax + 2], 0x39
cmp rcx, 2
je 0x140012b83
mov word [rax + 4], 0x2e
cmp rcx, 3
je 0x140012b83
mov word [rax + 6], 0x36
cmp rcx, 4
je 0x140012b83
mov word [rax + 8], 0x39
cmp rcx, 5
je 0x140012b83
mov word [rax + 0xa], 0x2e
cmp rcx, 6
je 0x140012b83
mov word [rax + 0xc], 0x36
cmp rcx, 7
je 0x140012b83
mov word [rax + 0xe], 0x39
cmp rcx, 8
je 0x140012b83
mov word [rax + 0x10], 0x2e
cmp rcx, 9
je 0x140012b83
mov word [rax + 0x12], 0x36
cmp rcx, 0xa
je 0x140012b83
mov dword [rax + 0x14], 0x39
xor eax, eax
jmp 0x140012810
mov word [r14], 0
mov sil, 1
mov rcx, qword [rsp + 0xc40]
xor rcx, rsp
call fcn.1400142c0
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 0x140012b59
call fcn.14001a720
int3