Function at 0x180004020
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x1800d2040]
xor rax, rsp
mov qword [rbp - 8], rax
mov r15, rcx
mov qword [rbp - 0x60], rcx
xor r12d, r12d
lea r9, [rbp - 0x50]
xor r8d, r8d
xor edx, edx
lea rcx, [0x180085c28]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
mov rsi, qword [rbp - 0x50]
xorps xmm0, xmm0
movups xmmword [rbp - 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x38], xmm1
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp word [rsi + rbx*2], r12w
jne 0x180004090
movabs r14, 0x7ffffffffffffffe
cmp rbx, r14
ja 0x18000438e
movabs r13, 0x7fffffffffffffff
cmp rbx, 7
ja 0x1800040e6
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x30], 7
add rbx, rbx
mov r8, rbx
mov rdx, rsi
lea rcx, [rbp - 0x48]
call sub.VCRUNTIME140.dll_memcpy
mov word [rbp + rbx - 0x48], r12w
jmp 0x180004183
mov rax, rbx
or rax, 7
cmp rax, r14
jbe 0x18000412f
lea rcx, [r13*2]
cmp rcx, 0x1000
jb 0x180004155
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180004388
mov rcx, rax
call fcn.180080500
test rax, rax
je 0x180004340
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x18000415d
mov r14, rax
mov ecx, 0xa
cmp rax, rcx
cmovb r14, rcx
lea rcx, [r14 + 1]
cmp rcx, r13
ja 0x180004388
add rcx, rcx
jne 0x1800040fa
mov rdi, r12
jmp 0x18000415d
call fcn.180080500
mov rdi, rax
mov qword [rbp - 0x48], rdi
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x30], r14
add rbx, rbx
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov word [rbx + rdi], r12w
mov rsi, qword [rbp - 0x50]
mov rcx, rsi
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova rdx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x38]
lea r8, [rdx + rax*2]
lea rdx, [rbp - 0x48]
cmova rdx, qword [rbp - 0x48]
lea rcx, [rbp - 0x28]
call fcn.18000a140
nop
mov rax, r13
mov r13, qword [rbp - 0x18]
sub rax, r13
cmp rax, 0xd
jb 0x18000437c
lea rax, [rbp - 0x28]
mov rsi, qword [rbp - 0x28]
mov r14, qword [rbp - 0x10]
cmp r14, 0xf
cmova rax, rsi
mov qword [rbp - 0x60], rax
xorps xmm0, xmm0
movups xmmword [r15], xmm0
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], r12
lea r12, [r13 + 0xd]
mov ebx, 0xf
mov rdi, r15
cmp r12, rbx
jbe 0x18000428e
mov rbx, r12
or rbx, 0xf
movabs rcx, 0x7fffffffffffffff
cmp rbx, rcx
jbe 0x180004247
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.180080500
test rax, rax
je 0x180004278
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x180004287
mov ecx, 0x16
cmp rbx, rcx
cmovb rbx, rcx
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x180004260
xor edi, edi
jmp 0x18000428b
cmp rcx, 0x1000
jb 0x18000427f
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x180004382
jmp 0x18000422c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180080500
mov rdi, rax
mov rax, qword [rbp - 0x60]
mov qword [r15], rdi
mov qword [r15 + 0x10], r12
mov qword [r15 + 0x18], rbx
mov r8, r13
mov rdx, rax
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
movsd xmm0, qword [0x1800a3030]
movsd qword [rdi + r13], xmm0
mov eax, dword [0x1800a3038]
mov dword [rdi + r13 + 8], eax
movzx eax, byte [0x1800a303c]
mov byte [rdi + r13 + 0xc], al
mov byte [rdi + r12], 0
cmp r14, 0xf
jbe 0x180004309
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x180004300
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180004300
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rsi
call fcn.180080984
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 7
jbe 0x18000434c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004347
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180004347
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180080984
mov rax, r15
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1800804e0
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.180001c60
nop
call fcn.180001bc0
nop
call fcn.180001bc0
int3
call fcn.180001c60
int3