Function at 0x14009464c
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov r15, rcx
xor r13d, r13d
xor ecx, ecx
xor edx, edx
mov ebp, r13d
mov r12d, r8d
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
nop dword [rax + rax]
mov esi, eax
test eax, eax
jne 0x1400946ed
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jle 0x1400946a5
movzx ebx, ax
or ebx, 0x80070000
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x1400948b4
test byte [rcx + 0x1c], 1
je 0x1400948b4
cmp byte [rcx + 0x19], 2
jb 0x1400948b4
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014ee40]
mov edx, 0x3e
mov r9d, ebx
call fcn.14000c114
jmp 0x1400948b4
or rbx, 0xffffffffffffffff
mov rdx, rbx
inc rdx
cmp word [r15 + rdx*2], r13w
jne 0x1400946f4
lea r14d, [rax + 1]
xor ecx, ecx
inc r14
add r14, rdx
lea rdx, [r14 + r14]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
nop dword [rax + rax]
mov rdi, rax
test rax, rax
jne 0x14009472c
mov ebx, 0x8007000e
jmp 0x1400948d0
mov edx, esi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
nop dword [rax + rax]
cmp eax, esi
ja 0x140094864
test eax, eax
je 0x140094847
inc rbx
cmp word [rdi + rbx*2], r13w
jne 0x14009474d
mov eax, 0x5c
cmp ax, word [rdi + rbx*2 - 2]
je 0x1400947c3
lea r8, [0x140147d20]
mov rdx, r14
mov rcx, rdi
call fcn.14005631c
mov ebx, eax
test eax, eax
jns 0x1400947c3
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x1400948a0
test byte [rcx + 0x1c], 1
je 0x1400948a0
cmp byte [rcx + 0x19], 2
jb 0x1400948a0
mov edx, 0x40
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014ee40]
mov r9d, ebx
call fcn.14000c23c
jmp 0x1400948a0
mov r8, r15
mov rdx, r14
mov rcx, rdi
call fcn.14005631c
mov ebx, eax
test eax, eax
jns 0x140094809
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x1400948a0
test byte [rcx + 0x1c], 1
je 0x1400948a0
cmp byte [rcx + 0x19], 2
jb 0x1400948a0
mov edx, 0x41
jmp 0x1400947ab
mov r8d, r12d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
nop dword [rax + rax]
mov rbp, rax
test rax, rax
jne 0x140094842
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jle 0x1400948a0
movzx ebx, ax
or ebx, 0x80070000
jmp 0x1400948a0
mov ebx, r13d
jmp 0x1400948a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax + rax]
mov ebx, eax
test eax, eax
jle 0x140094869
movzx ebx, ax
or ebx, 0x80070000
jmp 0x140094869
mov ebx, 0x8007006f
mov rcx, qword [0x14016a048]
lea rax, [0x14016a048]
cmp rcx, rax
je 0x1400948a0
test byte [rcx + 0x1c], 1
je 0x1400948a0
cmp byte [rcx + 0x19], 2
jb 0x1400948a0
mov rcx, qword [rcx + 0x10]
lea r8, [0x14014ee40]
mov edx, 0x3f
mov r9d, ebx
call fcn.14000c114
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop dword [rax + rax]
test rbp, rbp
jne 0x1400948de
test ebx, ebx
jne 0x1400948d0
lea r8, str.S_OK___hr
mov edx, 0x64c
lea rcx, str.base_stor_blbutil_blbutility.cpp
call fcn.140088f60
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop dword [rax + rax]
mov rbx, qword [rsp + 0x50]
mov rax, rbp
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret