Function at 0x140092920
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
movzx r13d, r8b
mov rdi, rdx
mov rsi, rcx
xor r14d, r14d
mov dword [rbp + 0x48], r14d
mov rax, qword [rdx]
lea rdx, [rbp + 0x48]
mov rcx, rdi
call qword [rax + 0x50]
test eax, eax
js 0x140092afe
mov edx, dword [rbp + 0x48]
mov eax, edx
or eax, 0x20
and edx, 0xffffffdf
cmp byte [rsi + 0x270], r14b
cmovne edx, eax
mov eax, edx
and eax, 0xfffffffd
or edx, 2
cmp byte [rsi + 0x272], r14b
cmove edx, eax
mov eax, edx
btr eax, 9
bts edx, 9
cmp byte [rsi + 0x273], r14b
cmove edx, eax
mov eax, edx
btr eax, 0x1e
bts edx, 0x1e
cmp qword [rsi + 0x228], r14
cmove edx, eax
mov dword [rbp + 0x48], edx
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x48]
test eax, eax
js 0x140092afe
lea rdx, [rsi + 0x218]
lea rcx, [rbp - 0x48]
call fcn.140015780
mov rax, qword [rdi]
mov rdx, qword [rbp - 0x48]
mov rcx, rdi
call qword [rax + 0x88]
test eax, eax
js 0x140092afe
mov qword [rbp + 0x58], r14
lea rdx, [rsi + 0x230]
lea rcx, [rbp - 0x48]
call fcn.140015780
mov qword [rsp + 0x20], r14
mov r9d, 0x20000000
lea r8, [rbp + 0x58]
xor edx, edx
mov rcx, qword [rax]
call qword [sym.imp.SHELL32.dll_SHParseDisplayName]
test eax, eax
jns 0x140092a73
mov qword [rbp - 0x48], r14
lea r9, [rbp - 0x48]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1402bc420]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
mov rbx, qword [rbp - 0x48]
test eax, eax
js 0x140092af0
mov qword [rsp + 0x20], r14
mov r9d, 0x20000000
lea r8, [rbp + 0x58]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.SHELL32.dll_SHParseDisplayName]
test eax, eax
js 0x140092af0
test rbx, rbx
je 0x140092a73
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
lea rax, [rbp + 0x58]
mov qword [rbp - 0x48], rax
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x48]
call fcn.140092d00
nop
mov rdx, qword [rbp - 0x40]
test rdx, rdx
je 0x140092ab4
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x58]
mov rax, qword [rsi + 0x230]
cmp byte [rax], 0
je 0x140092ab4
mov rax, qword [rdi]
mov rdx, qword [rbp - 0x40]
mov rcx, rdi
call qword [rax + 0x60]
mov rdx, qword [rsi + 0x278]
lea rcx, [rbp - 0x48]
call fcn.14001a140
nop
lea rdx, [rbp - 0x48]
lea rcx, [rbp - 0x38]
call fcn.140015780
mov r8, qword [rdi]
mov rdx, qword [rax]
mov rcx, rdi
call qword [r8 + 0x78]
mov r15d, 0xffffffff
test eax, eax
jns 0x140092b1b
xor bl, bl
jmp 0x140092cbf
test rbx, rbx
je 0x140092afe
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 - 0x48]
lea rdx, [rbp - 0x50]
mov rcx, rsi
call fcn.140094510
nop
mov rax, qword [rbp - 0x50]
cmp byte [rax], 0
je 0x140092b56
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x38]
call fcn.140015780
mov r8, qword [rdi]
mov rdx, qword [rax]
mov rcx, rdi
call qword [r8 + 0xb0]
test eax, eax
js 0x140092ba3
lea rdx, [rsi + 0x220]
lea rcx, [rbp - 0x38]
call fcn.140015780
mov rcx, qword [rax]
mov qword [rbp - 0x28], rcx
lea rdx, [rsi + 0x220]
lea rcx, [rbp - 0x38]
call fcn.140015780
mov rcx, qword [rax]
mov qword [rbp - 0x20], rcx
cmp byte [rsi + 0x270], 0
jne 0x140092baa
mov rax, qword [rdi]
lea r8, [rbp - 0x28]
mov edx, 1
mov rcx, rdi
call qword [rax + 0x20]
test eax, eax
jns 0x140092baa
xor bl, bl
jmp 0x140092c99
lea rcx, [rsi + 0x240]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rsi + 0x240]
cmp byte [rsi + 0x290], 0
je 0x140092bd4
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor bl, bl
jmp 0x140092c99
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [rbp - 0x10], 1
lea rax, vtable.._AUEvents__1__showDialog_Win32NativeFileChooser_juce__AEAA_NAEAUIFileDialog___N_Z_.0
mov qword [rbp - 0x18], rax
mov qword [rbp - 8], rsi
mov qword [rbp - 0x38], rdi
mov dword [rbp - 0x30], r14d
mov rax, qword [rdi]
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x18]
mov rcx, rdi
call qword [rax + 0x38]
nop
test r13b, r13b
jne 0x140092c58
mov rax, qword [rsi + 0x210]
test rax, rax
je 0x140092c21
mov rax, qword [rax + 0x10]
jmp 0x140092c24
mov rax, r14
test byte [rax + 0xd0], 1
je 0x140092c37
mov rcx, rax
call fcn.1401fc8c0
jmp 0x140092c45
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x140092c58
call fcn.1402695f0
mov rcx, rax
test rax, rax
je 0x140092c58
mov rax, qword [rax]
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdx, rax
jmp 0x140092c5b
mov rdx, r14
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
test eax, eax
sete bl
mov rcx, qword [rbp - 0x38]
mov rax, qword [rcx]
mov edx, dword [rbp - 0x30]
call qword [rax + 0x40]
nop
lea rcx, [rsi + 0x240]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xchg qword [rsi + 0x288], r14
lea rcx, [rsi + 0x240]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rcx, qword [rbp - 0x50]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140092cbf
mov eax, r15d
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x140092cbf
call fcn.1400da0f0
nop
mov rcx, qword [rbp - 0x48]
add rcx, 0xfffffffffffffff0
mov eax, dword [rcx]
nop
test eax, 0x30000000
jne 0x140092ce5
lock xadd dword [rcx], r15d
dec r15d
cmp r15d, 0xffffffff
jne 0x140092ce5
call fcn.1400da0f0
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x140092cf5
mov rdx, qword [rcx]
call qword [rdx + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
movzx eax, bl
jmp 0x140092b00