Function at 0x14002b040
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x160
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x1400f0bc8]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov r14, rcx
cmp qword [rcx + 8], 0
jne 0x14002b29a
call fcn.1400628f8
mov rcx, rax
xor ebp, ebp
mov eax, ebp
test rcx, rcx
setne al
test eax, eax
jne 0x14002b0a9
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
mov edx, 0x82
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
xor eax, eax
or r12, 0xffffffffffffffff
mov rcx, r12
lea rdi, [rsp + 0x40]
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov rdi, rcx
test ecx, ecx
jne 0x14002b141
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14002b1b9
cmp dword [rdx + 0x10], eax
jge 0x14002b115
cmp dword [rbx - 0xc], eax
jge 0x14002b10b
mov ecx, 0x80070057
call fcn.140001950
int3
mov dword [rbx - 0x10], ebp
mov byte [rbx], al
jmp 0x14002b1b9
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14002b12d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
jmp 0x14002b1b9
mov esi, dword [rbx - 0x10]
lea r13, [rsp + 0x40]
sub r13, rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14002b16e
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140018c20
mov rbx, qword [rsp + 0x20]
cmp r13, rsi
ja 0x14002b18b
movsxd rsi, edi
lea r8, [r13 + rbx]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.14008dc70
jmp 0x14002b1a1
movsxd rsi, edi
mov r9, rsi
lea r8, [rsp + 0x40]
mov rdx, rsi
mov rcx, rbx
call fcn.14008e450
test edi, edi
js 0x14002b28f
cmp edi, dword [rbx - 0xc]
jg 0x14002b28f
mov dword [rbx - 0x10], edi
mov byte [rsi + rbx], 0
xor eax, eax
mov rcx, r12
lea r13, str.MaxxAudioRealtek264.dll
mov rdi, r13
repne scasb al, byte [rdi]
not rcx
sub rcx, 1
mov qword [rsp + 0x28], rcx
mov rsi, r13
sub rsi, rbx
mov r15d, dword [rbx - 0x10]
lea edi, [r15 + rcx]
mov edx, 1
sub edx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, edx
jge 0x14002b20b
mov edx, edi
lea rcx, [rsp + 0x20]
call fcn.140018c20
mov rbx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
cmp rsi, r15
ja 0x14002b214
lea r13, [rsi + rbx]
movsxd rdx, ecx
lea rcx, [r15 + rbx]
mov r9, rdx
mov r8, r13
call fcn.14008e450
test edi, edi
js 0x14002b284
cmp edi, dword [rbx - 0xc]
jg 0x14002b284
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov byte [rax + rbx], 0
call fcn.14002f740
test eax, eax
je 0x14002b262
mov rax, qword [0x1400fa2d8]
test rax, rax
je 0x14002b262
mov r8, rbx
mov edx, 8
lea rcx, str.DLRA
call rax
mov rbp, rax
mov qword [r14 + 8], rbp
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r12d
add r12d, 0xffffffff
test r12d, r12d
jg 0x14002b29a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14002b29a
mov ecx, 0x80070057
call fcn.140001950
int3
mov ecx, 0x80070057
call fcn.140001950
nop
mov eax, 1
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.14008e430
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret