Function at 0x140001290
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x2a0]
sub rsp, 0x3a0
mov rax, qword [0x140007010]
xor rax, rsp
mov qword [rbp + 0x290], rax
mov rdx, qword [rdx + 8]
lea rcx, [rsp + 0x30]
call fcn.140002340
nop
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x80]
call sub.VCRUNTIME140.dll_memset
lea rax, [rbp + 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x2e]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xorps xmm0, xmm0
movups xmmword [rbp + 0x60], xmm0
xor r14d, r14d
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], r14
lea rax, [rbp + 0x80]
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rax + rbx*2], r14w
jne 0x140001325
movabs rsi, 0x7ffffffffffffffe
cmp rbx, rsi
ja 0x140001698
movabs r15, 0x7fffffffffffffff
mov qword [rbp + 0x78], 7
cmp rbx, 8
jae 0x14000137f
mov qword [rbp + 0x70], rbx
add rbx, rbx
mov r8, rbx
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x60]
call sub.VCRUNTIME140.dll_memcpy
mov word [rbp + rbx + 0x60], r14w
jmp 0x14000141d
mov rax, rbx
or rax, 7
cmp rax, rsi
jbe 0x140001391
lea rcx, [r15 + r15]
jmp 0x1400013b9
mov rsi, rax
mov ecx, 0xa
cmp rax, rcx
cmovb rsi, rcx
lea rcx, [rsi + 1]
cmp rcx, r15
ja 0x140001692
add rcx, rcx
cmp rcx, 0x1000
jb 0x1400013e5
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140001692
mov rcx, rax
call fcn.140002dd4
test rax, rax
je 0x140001631
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1400013f7
test rcx, rcx
je 0x1400013f4
call fcn.140002dd4
mov rdi, rax
jmp 0x1400013f7
mov rdi, r14
mov qword [rbp + 0x60], rdi
mov qword [rbp + 0x70], rbx
mov qword [rbp + 0x78], rsi
add rbx, rbx
mov r8, rbx
lea rdx, [rbp + 0x80]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov word [rbx + rdi], r14w
lea rdx, [rbp + 0x60]
cmp qword [rbp + 0x78], 8
cmovae rdx, qword [rbp + 0x60]
mov rax, qword [rbp + 0x70]
lea rsi, [rdx + rax*2]
lea rdi, [rbp + 0x60]
cmovae rdi, qword [rbp + 0x60]
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
cmp rdi, rsi
jne 0x140001461
mov r8, r14
mov qword [rbp + 0x50], r14
mov eax, 0xf
mov qword [rbp + 0x58], rax
mov byte [rbp + 0x40], r8b
jmp 0x140001567
mov rax, rsi
sub rax, rdi
sar rax, 1
mov rdx, r14
mov qword [rbp + 0x50], rdx
mov ebx, 0xf
mov qword [rbp + 0x58], rbx
cmp rax, r15
ja 0x140001686
cmp rax, 0x10
jb 0x140001520
mov rbx, rax
or rbx, 0xf
cmp rbx, r15
jbe 0x1400014d0
mov rbx, r15
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140002dd4
mov rcx, rax
test rax, rax
je 0x1400015de
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov rdx, qword [rbp + 0x50]
jmp 0x14000150b
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x1400014f8
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000168c
jmp 0x1400014aa
test rcx, rcx
je 0x140001508
call fcn.140002dd4
mov rdx, qword [rbp + 0x50]
jmp 0x14000150b
mov rax, r14
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x58], rbx
nop dword [rax]
nop word [rax + rax]
lea rcx, [rbp + 0x40]
cmp rbx, 0x10
cmovae rcx, qword [rbp + 0x40]
movzx eax, byte [rdi]
mov byte [rdx + rcx], al
mov rdx, qword [rbp + 0x50]
inc rdx
mov qword [rbp + 0x50], rdx
add rdi, 2
cmp rdi, rsi
je 0x14000154d
mov rbx, qword [rbp + 0x58]
jmp 0x140001520
lea rax, [rbp + 0x40]
cmp qword [rbp + 0x58], 0x10
cmovae rax, qword [rbp + 0x40]
mov byte [rdx + rax], 0
mov rax, qword [rbp + 0x58]
mov r8, qword [rbp + 0x50]
lea rdx, [rbp + 0x40]
cmp rax, 0x10
cmovae rdx, qword [rbp + 0x40]
lea rcx, [rsp + 0x30]
call fcn.140002af0
lea rcx, [rsp + 0x38]
call fcn.1400027b0
test rax, rax
jne 0x1400015ac
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x30]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x1400015ea
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400015e5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400015e5
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140002da0
mov qword [rbp + 0x50], r14
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], 0
mov rdx, qword [rbp + 0x78]
cmp rdx, 8
jb 0x14000163d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001638
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001638
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140002da0
mov qword [rbp + 0x70], r14
mov qword [rbp + 0x78], 7
mov word [rbp + 0x60], r14w
lea rcx, [rsp + 0x30]
call fcn.1400016a0
xor eax, eax
mov rcx, qword [rbp + 0x290]
xor rcx, rsp
call fcn.140002d80
lea r11, [rsp + 0x3a0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.1400011b0
nop
call fcn.140001110
nop
call fcn.140001110
int3
call fcn.1400011b0
int3