Function at 0x14001cdc0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get program files directory

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x680
xor edi, edi
mov r15, r8
mov r12, rdx
mov r14, rcx
cmp byte [rcx + 8], dil
je 0x14001cdfb
cmp dword [rcx + 0x118], edi
mov eax, 0x80040210
cmovg eax, edi
jmp 0x14001d07b
mov byte [rcx + 8], 1
mov rbx, qword [0x140194b90]
mov qword [rsp + 0x6a0], rbp
mov qword [rsp + 0x6a8], rsi
test rbx, rbx
je 0x14001ce24
cmp word [rbx], di
jne 0x14001cf74
lea r8, str.VSTPluginsPath
mov rcx, 0xffffffff80000001
lea rdx, str.SoftwareVST
call fcn.14001e750
mov rbx, rax
mov rsi, 0xffffffffffffffff
test rax, rax
je 0x14001ce82
mov rax, rsi
inc rax
cmp word [rbx + rax*2], di
jne 0x14001ce50
cdqe
cmp word [rbx + rax*2 - 2], 0x5c
jne 0x14001ce68
mov word [rbx + rax*2 - 2], di
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14001cf6d
mov rcx, rbx
call fcn.1400b60a4
lea r8, str.VSTPluginsPath
mov rcx, 0xffffffff80000002
lea rdx, str.SoftwareVST
call fcn.14001e750
mov rbx, rax
test rax, rax
je 0x14001cedc
mov rax, rsi
inc rax
cmp word [rbx + rax*2], di
jne 0x14001cea7
cdqe
cmp word [rbx + rax*2 - 2], 0x5c
jne 0x14001cebf
mov word [rbx + rax*2 - 2], di
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14001cf6d
mov rcx, rbx
call fcn.1400b60a4
mov rbx, rdi
mov ecx, 0x208
mov rbp, rbx
call fcn.1400b609c
mov rbx, rax
test rax, rax
je 0x14001d066
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 0x26]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x14001cf59
inc rsi
cmp word [rbx + rsi*2], di
jne 0x14001cf10
movups xmm0, xmmword [str.SteinbergVSTPlugins]
movsxd rax, esi
lea rcx, [rbx + rax*2]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x14012fb30]
movups xmmword [rcx + 0x10], xmm1
movsd xmm0, qword [0x14012fb40]
movsd qword [rcx + 0x20], xmm0
mov eax, dword [reloc.WSOCK32.dll_WSAStartup]
mov dword [rcx + 0x28], eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14001cf6d
mov rcx, rbx
call fcn.1400b60a4
mov rbx, rbp
test rbp, rbp
je 0x14001d066
mov qword [0x140194b90], rbx
mov edx, 0x7f02
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
mov rdx, qword [0x140194b98]
lea rcx, [rsp + 0x240]
mov rsi, rax
call fcn.14001ba50
movzx edx, word [rbx]
lea rcx, [rsp + 0x30]
test dx, dx
je 0x14001cfc9
nop
cmp dx, 0x3b
je 0x14001cfc9
add rbx, 2
mov word [rcx], dx
add rcx, 2
movzx edx, word [rbx]
test dx, dx
jne 0x14001cfb0
lea rax, [rsp + 0x30]
mov word [rcx], di
cmp rcx, rax
jbe 0x14001d02d
nop word [rax + rax]
movzx edx, word [rcx - 2]
lea rax, [rcx - 2]
cmp dx, 0x20
jne 0x14001d000
mov rcx, rax
mov word [rax], di
lea rax, [rsp + 0x30]
cmp rcx, rax
ja 0x14001cfe0
jmp 0x14001d02d
cmp dx, 0x5c
je 0x14001d00c
cmp dx, 0x2f
jne 0x14001d010
mov word [rcx - 2], di
mov r9, r12
mov qword [rsp + 0x20], r15
lea r8, [rsp + 0x240]
mov rcx, r14
lea rdx, [rsp + 0x30]
call fcn.14001ee10
movzx eax, word [rbx]
add rbx, 2
test ax, ax
jne 0x14001cfa1
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetCursor]
cmp dword [r14 + 0x118], edi
lea rcx, [rsp + 0x240]
mov ebx, 0x80040210
cmovg ebx, edi
call fcn.14001c0c0
mov eax, ebx
jmp 0x14001d06b
mov eax, 0x80040210
mov rbp, qword [rsp + 0x6a0]
mov rsi, qword [rsp + 0x6a8]
lea r11, [rsp + 0x680]
mov rbx, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret