Function at 0x18008af90
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rdi, rdx
mov rsi, rcx
xor r15d, r15d
mov dword [rbp + 0x48], r15d
mov rax, qword [rdx]
lea rdx, [rbp + 0x48]
mov rcx, rdi
call qword [rax + 0x50]
test eax, eax
js 0x18008b176
mov edx, dword [rbp + 0x48]
mov eax, edx
or eax, 0x20
and edx, 0xffffffdf
cmp byte [rsi + 0x280], r15b
cmovne edx, eax
mov eax, edx
and eax, 0xfffffffd
or edx, 2
cmp byte [rsi + 0x282], r15b
cmove edx, eax
mov eax, edx
btr eax, 9
bts edx, 9
cmp byte [rsi + 0x283], r15b
cmove edx, eax
mov eax, edx
btr eax, 0x1e
bts edx, 0x1e
cmp qword [rsi + 0x238], r15
cmove edx, eax
mov dword [rbp + 0x48], edx
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x48]
test eax, eax
js 0x18008b176
mov rax, qword [rdi]
mov rbx, qword [rax + 0x88]
lea rdx, [rsi + 0x228]
lea rcx, [rbp + 0x58]
call fcn.180017f90
mov rdx, qword [rbp + 0x58]
mov rcx, rdi
call rbx
test eax, eax
js 0x18008b176
mov qword [rbp + 0x50], r15
lea rdx, [rsi + 0x240]
lea rcx, [rbp + 0x58]
call fcn.180017f90
mov qword [rsp + 0x20], r15
mov r9d, 0x20000000
lea r8, [rbp + 0x50]
xor edx, edx
mov rcx, qword [rax]
call qword [sym.imp.SHELL32.dll_SHParseDisplayName]
test eax, eax
jns 0x18008b0e2
mov qword [rbp + 0x58], r15
lea r9, [rbp + 0x58]
xor r8d, r8d
xor edx, edx
lea rcx, [0x18039c020]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
mov rbx, qword [rbp + 0x58]
test eax, eax
js 0x18008b168
mov qword [rsp + 0x20], r15
mov r9d, 0x20000000
lea r8, [rbp + 0x50]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.SHELL32.dll_SHParseDisplayName]
test eax, eax
js 0x18008b168
test rbx, rbx
je 0x18008b0e2
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rax, [rbp + 0x50]
mov qword [rbp + 0x58], rax
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x58]
call fcn.18008b330
nop
mov rdx, qword [rbp - 0x48]
test rdx, rdx
je 0x18008b123
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x58]
mov rax, qword [rsi + 0x240]
cmp byte [rax], 0
je 0x18008b123
mov rax, qword [rdi]
mov rdx, qword [rbp - 0x48]
mov rcx, rdi
call qword [rax + 0x60]
mov rdx, qword [rsi + 0x288]
lea rcx, [rbp - 0x50]
call fcn.18001d210
nop
mov rax, qword [rdi]
mov rbx, qword [rax + 0x78]
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x58]
call fcn.180017f90
mov rdx, qword [rax]
mov rcx, rdi
call rbx
mov r14d, 0xffffffff
lea r13, [0x180660020]
test eax, eax
jns 0x18008b193
xor bl, bl
jmp 0x18008b2f3
test rbx, rbx
je 0x18008b176
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
xor al, al
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [rbp - 0x50]
lea rdx, [rbp + 0x58]
mov rcx, rsi
call fcn.18008c7c0
nop
mov rax, qword [rbp + 0x58]
cmp byte [rax], 0
je 0x18008b1d0
mov rax, qword [rdi]
mov rbx, qword [rax + 0xb0]
lea rdx, [rbp + 0x58]
lea rcx, [rbp - 0x40]
call fcn.180017f90
mov rdx, qword [rax]
mov rcx, rdi
call rbx
test eax, eax
js 0x18008b21d
lea rdx, [rsi + 0x230]
lea rcx, [rbp - 0x40]
call fcn.180017f90
mov rcx, qword [rax]
mov qword [rbp - 0x30], rcx
lea rdx, [rsi + 0x230]
lea rcx, [rbp - 0x40]
call fcn.180017f90
mov rcx, qword [rax]
mov qword [rbp - 0x28], rcx
cmp byte [rsi + 0x280], 0
jne 0x18008b224
mov rax, qword [rdi]
lea r8, [rbp - 0x30]
mov edx, 1
mov rcx, rdi
call qword [rax + 0x20]
test eax, eax
jns 0x18008b224
xor bl, bl
jmp 0x18008b2d2
lea rcx, [rsi + 0x250]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rsi + 0x250]
cmp byte [rsi + 0x2a0], 0
je 0x18008b24e
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor bl, bl
jmp 0x18008b2d2
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [rbp - 0x18], 1
lea rax, vtable.._AUEvents__1__showDialog_Win32NativeFileChooser_juce__AEAA_NAEAUIFileDialog___Z_.0
mov qword [rbp - 0x20], rax
mov byte [rbp - 0x10], 0
mov qword [rbp - 8], rsi
mov qword [rbp - 0x40], rdi
mov dword [rbp - 0x38], r15d
mov rax, qword [rdi]
lea r8, [rbp - 0x38]
lea rdx, [rbp - 0x20]
mov rcx, rdi
call qword [rax + 0x38]
nop
mov rax, qword [rdi]
mov rbx, qword [rax + 0x18]
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov rdx, rax
mov rcx, rdi
call rbx
test eax, eax
sete bl
mov rcx, qword [rbp - 0x40]
mov rax, qword [rcx]
mov edx, dword [rbp - 0x38]
call qword [rax + 0x40]
nop
lea rcx, [rsi + 0x250]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xchg qword [rsi + 0x298], r15
lea rcx, [rsi + 0x250]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rcx, qword [rbp + 0x58]
add rcx, 0xfffffffffffffff0
cmp rcx, r13
je 0x18008b2f3
mov eax, r14d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18008b2f3
call fcn.18011d9c0
nop
mov rcx, qword [rbp - 0x50]
add rcx, 0xfffffffffffffff0
cmp rcx, r13
je 0x18008b314
lock xadd dword [rcx], r14d
dec r14d
cmp r14d, 0xffffffff
jne 0x18008b314
call fcn.18011d9c0
nop
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x18008b324
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
movzx eax, bl
jmp 0x18008b178