Function at 0x1400016b0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rdi, rcx
mov qword [rsp + 0x28], rcx
xor ebp, ebp
lea r9, [rsp + 0x28]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1400033a0]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
xorps xmm0, xmm0
test eax, eax
js 0x140001976
mov r14, qword [rsp + 0x28]
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
mov rbx, 0xffffffffffffffff
nop dword [rax + rax]
inc rbx
cmp word [r14 + rbx*2], bp
jne 0x140001720
movabs r15, 0x7ffffffffffffffe
cmp rbx, r15
ja 0x1400019be
movabs r12, 0x7fffffffffffffff
cmp rbx, 7
ja 0x140001778
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], 7
add rbx, rbx
mov r8, rbx
mov rdx, r14
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memcpy
mov word [rsp + rbx + 0x30], bp
jmp 0x140001814
mov rax, rbx
or rax, 7
cmp rax, r15
jbe 0x1400017bd
lea rcx, [r12 + r12]
cmp rcx, 0x1000
jb 0x1400017e3
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1400019b2
mov rcx, rax
call fcn.140001f00
test rax, rax
je 0x140001965
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x1400017eb
mov r15, rax
mov ecx, 0xa
cmp rax, rcx
cmovb r15, rcx
lea rcx, [r15 + 1]
cmp rcx, r12
ja 0x1400019b2
add rcx, rcx
jne 0x140001788
mov rsi, rbp
jmp 0x1400017eb
call fcn.140001f00
mov rsi, rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], r15
add rbx, rbx
mov r8, rbx
mov rdx, r14
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov word [rbx + rsi], bp
mov r14, qword [rsp + 0x28]
mov rcx, r14
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rcx, [rsp + 0x30]
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x48]
cmp rdx, 7
cmova rcx, r8
mov rax, qword [rsp + 0x40]
lea r14, [rcx + rax*2]
lea rsi, [rsp + 0x30]
cmova rsi, r8
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rbp
mov ebx, 0xf
mov qword [rdi + 0x18], rbx
cmp rsi, r14
jne 0x140001866
mov byte [rdi], 0
jmp 0x140001936
sub r14, rsi
sar r14, 1
cmp r14, r12
ja 0x1400019c4
cmp r14, rbx
jbe 0x1400018f5
mov rbx, r14
or rbx, 0xf
cmp rbx, r12
jbe 0x1400018b2
mov rbx, r12
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140001f00
test rax, rax
je 0x1400018df
lea rbp, [rax + 0x27]
and rbp, 0xffffffffffffffe0
mov qword [rbp - 8], rax
jmp 0x1400018ee
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
je 0x1400018ee
cmp rcx, 0x1000
jb 0x1400018e6
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1400019b8
jmp 0x140001897
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140001f00
mov rbp, rax
mov qword [rdi], rbp
mov qword [rdi + 0x18], rbx
mov r8, rdi
cmp rbx, 0xf
jbe 0x140001901
mov r8, qword [rdi]
mov rcx, r8
mov rdx, r14
test r14, r14
je 0x140001923
nop dword [rax]
movzx eax, byte [rsi]
mov byte [rcx], al
lea rcx, [rcx + 1]
lea rsi, [rsi + 2]
sub rdx, 1
jne 0x140001910
mov qword [rdi + 0x10], r14
mov byte [r8 + r14], 0
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x30]
cmp rdx, 7
jbe 0x140001989
lea rdx, [rdx*2 + 2]
mov rax, r8
cmp rdx, 0x1000
jb 0x14000196c
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000196c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.140001f3c
jmp 0x140001989
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], rbp
mov ebx, 0xf
mov qword [rdi + 0x18], rbx
mov byte [rdi], bpl
mov rax, rdi
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140001ee0
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
call fcn.140001100
nop
call fcn.140001100
nop
call fcn.1400011a0
nop
call fcn.1400011a0
int3