Function at 0x140012430
Capabilities:
Get common file path

Disassembly:
push rbx
push rdi
push r14
sub rsp, 0x3c0
mov rax, qword [0x140063848]
xor rax, rsp
mov qword [rsp + 0x3a0], rax
mov rbx, rcx
or rcx, 0xffffffffffffffff
mov rdi, rdx
mov r9, rdx
xor eax, eax
lea r8, [rsp + 0x30]
repne scasb al, byte [rdi]
xor r14d, r14d
not rcx
mov qword [rsp + 0x30], r14
mov rdx, rcx
mov rcx, r9
call fcn.14002e460
test al, al
je 0x140012746
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
lea r9d, [r14 + 2]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], r14
call fcn.14001ebd0
cmp eax, 0x60000000
jne 0x140012718
mov rdx, qword [rsp + 0x38]
mov qword [rsp + 0x3f8], rsi
mov qword [rsp + 0x3b8], r12
mov qword [rsp + 0x3b0], r13
lea r13, [0x14004eb38]
lea r8, str.displayname
lea rcx, [rsp + 0x48]
xor r9d, r9d
mov r12d, r14d
mov qword [rsp + 0x20], r13
call fcn.14001ebf0
lea rcx, [rsp + 0x71]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x70], r12b
mov rsi, rax
call fcn.14003e820
lea rdx, [rsp + 0x70]
xor r9d, r9d
mov r8d, 0x104
xor ecx, ecx
mov edi, r14d
mov qword [rsp + 0x20], r14
call fcn.14001ffc0
test al, al
je 0x14001253f
lea r13, [rsp + 0x70]
lea r12d, [r14 + 1]
jmp 0x14001255b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, 0x41a
mov r8d, 0x47
mov r9d, eax
mov rcx, rbx
call fcn.140003eb0
mov qword [rsp + 0x3f0], rbp
cmp byte [rsi], dil
je 0x14001262e
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasb al, byte [rdi]
not rcx
lea rbp, [rcx - 1]
call fcn.14002e3a0
mov rdi, rax
test rax, rax
je 0x140012613
lea r8, [rbp + 1]
mov rdx, rax
mov rcx, rsi
call fcn.14001ea30
test al, al
je 0x1400125f8
mov r8b, 0x5f
mov dl, 0x5c
mov rcx, rdi
call fcn.140015ce0
mov r8b, 0x5f
mov dl, 0x2f
mov rcx, rdi
call fcn.140015ce0
mov r8b, 0x5f
mov dl, 0x3c
mov rcx, rdi
call fcn.140015ce0
mov r8b, 0x5f
mov dl, 0x3e
mov rcx, rdi
call fcn.140015ce0
mov r8b, 0x5f
mov dl, 0x7c
mov rcx, rdi
call fcn.140015ce0
mov r8b, 0x5f
mov dl, 0x3a
mov rcx, rdi
call fcn.140015ce0
mov rsi, rdi
inc r12d
jmp 0x140012642
mov edx, 0x41a
mov r9d, 0xe000000c
mov r8d, 0x45
mov rcx, rbx
call fcn.140003eb0
jmp 0x140012642
mov edx, 0x41a
mov r9d, 0xe0000002
mov r8d, 0x4e
mov rcx, rbx
call fcn.140003eb0
jmp 0x140012642
xor r9d, r9d
mov edx, 0x41a
mov rcx, rbx
lea r8d, [r9 + 0x43]
call fcn.140003eb0
mov rbp, qword [rsp + 0x3f0]
cmp r12d, 2
mov r12, qword [rsp + 0x3b8]
jne 0x1400126ea
lea rdx, [rsp + 0x180]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x1400126ce
lea r9, [rsp + 0x180]
lea r8, str._s_s.lnk
lea rcx, [rsp + 0x290]
mov edx, 0x104
mov qword [rsp + 0x20], rsi
call fcn.1400073f0
test eax, eax
jle 0x1400126c6
cmp eax, 0x104
jae 0x1400126c6
lea rcx, [rsp + 0x290]
mov r8, rsi
mov rdx, r13
call fcn.140022670
test eax, eax
jns 0x1400126ea
mov r8d, 0x4c
jmp 0x1400126da
mov r8d, 0x53
jmp 0x1400126da
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, 0x50
mov r9d, eax
mov edx, 0x41a
mov rcx, rbx
call fcn.140003eb0
mov r13, qword [rsp + 0x3b0]
mov rsi, qword [rsp + 0x3f8]
test rdi, rdi
je 0x140012735
mov rcx, rdi
call fcn.14002e3f0
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x30], r14
call fcn.14002e3f0
jmp 0x14001275f
mov r9d, dword [rsp + 0x40]
mov edx, 0x41a
mov r8d, 0x51
sub r9d, dword [rsp + 0x30]
mov rcx, rbx
call fcn.140003eb0
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x30], r14
call fcn.14002e3f0
jmp 0x14001275f
mov edx, 0x41a
mov r9d, 0xe0000002
mov r8d, 0x41
mov rcx, rbx
call fcn.140003eb0
mov rcx, qword [rsp + 0x3a0]
xor rcx, rsp
call fcn.14003e7f0
add rsp, 0x3c0
pop r14
pop rdi
pop rbx
ret