Function at 0x18005c360
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 [0x180332940]
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 0x18005c69c
mov rax, qword [r14 + 0x18]
lea rbp, [rdi - 1]
test rax, rax
jne 0x18005c43b
cmp qword [r14 + 0x48], rax
je 0x18005c445
cmp qword [rbx + 0x28], rax
je 0x18005c445
mov rax, qword [rbx + 0x18]
lea rcx, [rsp + 0x40]
cmp rcx, rax
je 0x18005c4b3
mov qword [r14 + 0x18], rdi
mov rdx, qword [rbx + 0x18]
test rdx, rdx
je 0x18005c45b
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 0x18005c4b3
lea rcx, [rsp + 0x40]
mov rax, rbp
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [rcx + rax*2], 0
jne 0x18005c480
lea rsi, [rax*2 + 2]
test rsi, rsi
jle 0x18005c4b3
mov rdx, rsi
mov rcx, rbx
call fcn.1800a4d20
mov r8, rsi
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.180246bc0
mov rsi, qword [r14 + 0x18]
test rsi, rsi
je 0x18005c4cc
mov rax, rbp
nop
inc rax
cmp word [rsi + rax*2], 0
jne 0x18005c4c0
jmp 0x18005c4df
mov rax, qword [r14 + 0x48]
test rax, rax
je 0x18005c5a0
shr rax, 1
dec rax
test rax, rax
jle 0x18005c518
test rsi, rsi
je 0x18005c4ee
mov rcx, rsi
jmp 0x18005c50c
cmp qword [r14 + 0x48], 0
jne 0x18005c4fe
lea rcx, [0x1802d7730]
jmp 0x18005c50c
cmp qword [rbx + 0x28], 0
mov rcx, rdi
je 0x18005c50c
mov rcx, qword [rbx + 0x18]
cmp word [rcx + rax*2 - 2], 0x5c
je 0x18005c69c
test rsi, rsi
je 0x18005c5a0
lea rbp, [rbp + 1]
cmp word [rsi + rbp*2], 0
jne 0x18005c521
lea rbp, [rbp*2 + 2]
mov qword [rbx + 0x28], rdi
cmp qword [rbx + 0x20], rbp
jl 0x18005c57e
cmp rbp, 2
jne 0x18005c554
mov rcx, qword [rbx + 0x18]
movzx eax, word [rsi]
mov word [rcx], ax
add qword [rbx + 0x28], rbp
jmp 0x18005c59c
cmp rbp, 4
jne 0x18005c568
mov rcx, qword [rbx + 0x18]
mov eax, dword [rsi]
mov dword [rcx], eax
add qword [rbx + 0x28], rbp
jmp 0x18005c59c
cmp rbp, 8
jne 0x18005c57e
mov rcx, qword [rbx + 0x18]
mov rax, qword [rsi]
mov qword [rcx], rax
add qword [rbx + 0x28], rbp
jmp 0x18005c59c
test rbp, rbp
jle 0x18005c59c
mov rdx, rbp
mov rcx, rbx
call fcn.1800a4d20
mov r8, rbp
mov rdx, rsi
mov rcx, rax
call fcn.180246bc0
mov qword [r14 + 0x18], rdi
mov rsi, qword [rbx + 0x28]
cmp rsi, 2
jb 0x18005c5be
mov rax, qword [rbx + 0x18]
cmp word [rax + rsi - 2], 0
jne 0x18005c5be
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 0x18005c5eb
mov rcx, qword [rbx + 0x18]
mov eax, dword [rsp + 0x20]
mov dword [rsi + rcx], eax
add qword [rbx + 0x28], 4
jmp 0x18005c69c
lea r15, [rsi + 4]
cmp r15, rsi
jne 0x18005c5fd
mov rdi, qword [rbx + 0x18]
jmp 0x18005c695
mov rcx, qword [rbx + 0x18]
test r15, r15
jne 0x18005c625
test rcx, rcx
je 0x18005c617
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 0x18005c695
mov rbp, qword [rbx + 0x30]
test rcx, rcx
jne 0x18005c650
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 0x18005c686
test rbp, rbp
cmovle rbp, r12
cmp rdx, r15
jl 0x18005c669
sub rdx, r15
cmp rdx, rbp
jg 0x18005c669
mov rdi, rcx
jmp 0x18005c691
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.180244420
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