Function at 0x180064b10
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, 0x260
mov rax, qword [0x18033d940]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov r14, rcx
mov qword [rsp + 0x30], rcx
xor edi, edi
mov dword [rsp + 0x28], edi
lea rcx, vtable.CVolObject.0
mov qword [r14], rcx
mov qword [r14 + 8], rdi
mov qword [r14 + 0x10], rdi
lea rax, vtable.CWString.0
mov qword [r14], rax
lea rbx, [r14 + 0x20]
mov qword [rsp + 0x20], rbx
mov qword [rbx], rcx
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rdi
lea rax, vtable.CVolMem.0
mov qword [rbx], rax
mov qword [rbx + 0x18], rdi
mov qword [rbx + 0x28], rdi
mov qword [rbx + 0x20], rdi
mov r12d, 0x40
mov qword [rbx + 0x30], r12
mov qword [r14 + 0x18], rdi
mov qword [r14 + 0x50], 0xfe
mov dword [rsp + 0x28], 1
mov word [rsp + 0x40], di
xor r9d, r9d
lea r8d, [rdi + 0x10]
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x180064e4c
mov rax, qword [r14 + 0x18]
lea rbp, [rdi - 1]
test rax, rax
jne 0x180064beb
cmp qword [r14 + 0x48], rax
je 0x180064bf5
cmp qword [rbx + 0x28], rax
je 0x180064bf5
mov rax, qword [rbx + 0x18]
lea rcx, [rsp + 0x40]
cmp rcx, rax
je 0x180064c63
mov qword [r14 + 0x18], rdi
mov rdx, qword [rbx + 0x18]
test rdx, rdx
je 0x180064c0b
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
mov qword [rbx + 0x18], rdi
mov qword [rbx + 0x28], rdi
mov qword [rbx + 0x20], rdi
cmp word [rsp + 0x40], 0
je 0x180064c63
lea rcx, [rsp + 0x40]
mov rax, rbp
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x180064c30
lea rsi, [rax*2 + 2]
test rsi, rsi
jle 0x180064c63
mov rdx, rsi
mov rcx, rbx
call fcn.1800ad600
mov r8, rsi
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.18024f4a0
mov rsi, qword [r14 + 0x18]
test rsi, rsi
je 0x180064c7c
mov rax, rbp
nop
inc rax
cmp word [rsi + rax*2], 0
jne 0x180064c70
jmp 0x180064c8f
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x180064d50
shr rax, 1
dec rax
test rax, rax
jle 0x180064cc8
test rsi, rsi
je 0x180064c9e
mov rcx, rsi
jmp 0x180064cbc
cmp qword [r14 + 0x48], 0
jne 0x180064cae
lea rcx, [0x1802e0740]
jmp 0x180064cbc
cmp qword [rbx + 0x28], 0
mov rcx, rdi
je 0x180064cbc
mov rcx, qword [rbx + 0x18]
cmp word [rcx + rax*2 - 2], 0x5c
je 0x180064e4c
test rsi, rsi
je 0x180064d50
lea rbp, [rbp + 1]
cmp word [rsi + rbp*2], 0
jne 0x180064cd1
lea rbp, [rbp*2 + 2]
mov qword [rbx + 0x28], rdi
cmp qword [rbx + 0x20], rbp
jl 0x180064d2e
cmp rbp, 2
jne 0x180064d04
mov rcx, qword [rbx + 0x18]
movzx eax, word [rsi]
mov word [rcx], ax
add qword [rbx + 0x28], rbp
jmp 0x180064d4c
cmp rbp, 4
jne 0x180064d18
mov rcx, qword [rbx + 0x18]
mov eax, dword [rsi]
mov dword [rcx], eax
add qword [rbx + 0x28], rbp
jmp 0x180064d4c
cmp rbp, 8
jne 0x180064d2e
mov rcx, qword [rbx + 0x18]
mov rax, qword [rsi]
mov qword [rcx], rax
add qword [rbx + 0x28], rbp
jmp 0x180064d4c
test rbp, rbp
jle 0x180064d4c
mov rdx, rbp
mov rcx, rbx
call fcn.1800ad600
mov r8, rbp
mov rdx, rsi
mov rcx, rax
call fcn.18024f4a0
mov qword [r14 + 0x18], rdi
mov rsi, qword [rbx + 0x28]
cmp rsi, 2
jb 0x180064d6e
mov rax, qword [rbx + 0x18]
cmp word [rax + rsi - 2], 0
jne 0x180064d6e
add rsi, 0xfffffffffffffffe
mov qword [rbx + 0x28], rsi
mov dword [rsp + 0x20], 0x5c
mov rdx, qword [rbx + 0x20]
mov rax, rdx
sub rax, rsi
cmp rax, 4
jl 0x180064d9b
mov rcx, qword [rbx + 0x18]
mov eax, dword [rsp + 0x20]
mov dword [rsi + rcx], eax
add qword [rbx + 0x28], 4
jmp 0x180064e4c
lea r15, [rsi + 4]
cmp r15, rsi
jne 0x180064dad
mov rdi, qword [rbx + 0x18]
jmp 0x180064e45
mov rcx, qword [rbx + 0x18]
test r15, r15
jne 0x180064dd5
test rcx, rcx
je 0x180064dc7
mov rax, qword [rbx]
mov rdx, rcx
mov rcx, rbx
call qword [rax + 0x18]
mov qword [rbx + 0x18], rdi
mov qword [rbx + 0x28], rdi
mov qword [rbx + 0x20], rdi
jmp 0x180064e45
mov rbp, qword [rbx + 0x30]
test rcx, rcx
jne 0x180064e00
test rbp, rbp
cmovle rbp, r12
mov rax, r15
cqo
idiv rbp
sub rbp, rdx
add rbp, r15
mov rax, qword [rbx]
mov rdx, rbp
mov rcx, rbx
call qword [rax]
jmp 0x180064e36
test rbp, rbp
cmovle rbp, r12
cmp rdx, r15
jl 0x180064e19
sub rdx, r15
cmp rdx, rbp
jg 0x180064e19
mov rdi, rcx
jmp 0x180064e41
mov rax, r15
cqo
idiv rbp
sub rbp, rdx
add rbp, r15
mov rax, qword [rbx]
mov r8, rbp
mov rdx, rcx
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov qword [rbx + 0x20], rbp
mov qword [rbx + 0x18], rax
mov rdi, rax
mov qword [rbx + 0x28], r15
mov eax, dword [rsp + 0x20]
mov dword [rdi + rsi], eax
mov rax, r14
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.18024cd00
lea r11, [rsp + 0x260]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret