Function at 0x140028fc0
Capabilities:
Get common file path

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2a0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x218], 0xfffffffffffffffe
lea rsi, [rcx + 0xe0]
cmp qword [rcx + 0xf0], 0
je 0x14002900a
mov rax, rsi
add rsp, 0x2a0
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
mov rdi, rcx
lea rbx, [rbp - 0x50]
mov r8d, 0x208
mov rcx, rbx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x20], rbx
xor ecx, ecx
mov edx, 0x28
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x1400290ba
lea rbx, [rbp + 0x1f8]
lea rdx, [rbp - 0x50]
mov rcx, rbx
mov r8d, 0xffffffff
call fcn.140042940
cmp rsi, rbx
je 0x14002924c
mov rax, qword [rdi + 0xf8]
cmp rax, 0x10
jb 0x1400290a0
mov rcx, qword [rsi]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14002909b
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140029296
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400fa3b8
movups xmm0, xmmword [rbp + 0x1f8]
movups xmm1, xmmword [rbp + 0x208]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
jmp 0x140028ff5
lea rax, str.HOMEDRIVE
mov qword [rbp + 0x1b8], rax
mov qword [rbp + 0x1c0], 9
mov rax, qword [rdi]
lea r14, [rbp + 0x1f8]
lea r8, [rbp + 0x1b8]
mov rcx, rdi
mov rdx, r14
call qword [rax + 0x50]
lea rax, str.HOMEPATH
mov qword [rbp + 0x1c8], rax
mov qword [rbp + 0x1d0], 8
mov rax, qword [rdi]
lea rbx, [rbp + 0x1d8]
lea r8, [rbp + 0x1c8]
mov rcx, rdi
mov rdx, rbx
call qword [rax + 0x50]
mov r15, qword [rbp + 0x208]
test r15, r15
je 0x14002920b
cmp qword [rbp + 0x1e8], 0
je 0x14002920b
cmp rsi, r14
je 0x14002919a
cmp qword [rbp + 0x210], 0x10
jb 0x140029154
mov r14, qword [rbp + 0x1f8]
mov rax, qword [rdi + 0xf8]
cmp rax, r15
jae 0x140029170
mov rcx, rsi
mov rdx, r15
mov r9, r14
call fcn.1400066c0
jmp 0x14002919a
mov r12, rsi
cmp rax, 0x10
jb 0x140029180
mov r12, qword [rdi + 0xe0]
mov qword [rdi + 0xf0], r15
mov rcx, r12
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memmove
mov byte [r12 + r15], 0
mov r8, qword [rbp + 0x1e8]
cmp qword [rbp + 0x1f0], 0x10
jb 0x1400291b2
mov rbx, qword [rbp + 0x1d8]
mov rcx, qword [rdi + 0xf0]
mov rax, qword [rdi + 0xf8]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x1400291e0
mov qword [rsp + 0x20], r8
mov rcx, rsi
mov rdx, r8
mov r9, rbx
call fcn.140006c20
jmp 0x14002920b
lea r14, [rcx + r8]
mov qword [rdi + 0xf0], r14
mov r15, rsi
cmp rax, 0x10
jb 0x1400291fb
mov r15, qword [rdi + 0xe0]
add rcx, r15
mov rdx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [r15 + r14], 0
mov rax, qword [rbp + 0x1f0]
cmp rax, 0x10
jb 0x14002924c
mov rcx, qword [rbp + 0x1d8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x140029247
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140029296
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400fa3b8
mov rax, qword [rbp + 0x210]
cmp rax, 0x10
jb 0x140028ff5
mov rcx, qword [rbp + 0x1f8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14002928c
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140029296
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.1400fa3b8
jmp 0x140028ff5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3