Function at 0x14008b880
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x440]
sub rsp, 0x540
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0x430], rax
mov r13, rdx
lea rdx, str.InstallUsbPrinter::FindNewerSupportedDriver
lea rcx, [rbp - 0x40]
call fcn.14001abe0
nop
lea rax, [0x1402a8360]
lea r12, [0x1402bbdb0]
mov rcx, qword [0x1402a8360]
cmp rcx, rax
je 0x14008b914
test byte [rcx + 0x1c], 1
je 0x14008b914
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x40
lea r8, [0x140258570]
mov rcx, qword [rcx + 0x10]
call fcn.140001ad0
xor eax, eax
mov r15d, eax
mov dword [rsp + 0x38], eax
mov edi, eax
lea rcx, [rsp + 0x48]
call fcn.14009ffa0
nop
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov edx, 1
mov rax, qword [rax + 0x28]
call qword [case.0x1400136d6.0]
mov rsi, rax
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x10]
call fcn.1401e7e40
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x220]
call fcn.1401e7e40
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x14008befe
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x40], rax
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x14008bf09
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x1400136d6.0]
mov rcx, rax
mov rax, qword [rax]
lea r8, [rbp + 0x220]
lea rdx, str.USB_ADDED_DRIVERNAME
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
mov edx, 0x104
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea rcx, [rbp + 0x10]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.inf_
lea rcx, [rbp + 0x10]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov rax, qword [rsi]
mov r9d, 1
xor r8d, r8d
lea rdx, [rbp + 0x10]
mov rcx, rsi
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
mov r14, 0xffffffffffffffff
test eax, eax
jle 0x14008bd98
lfence
lea rcx, [rsp + 0x58]
call fcn.1401c8bf0
nop
mov rax, qword [rsi]
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x220]
mov rcx, rsi
mov rax, qword [rax + 0x80]
call qword [case.0x1400136d6.0]
xor esi, esi
mov r15d, esi
mov rcx, qword [rsp + 0x68]
test rcx, rcx
jle 0x14008bc45
xor edi, edi
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x68], 7
mov word [rbp - 0x80], di
test rsi, rsi
js 0x14008bf1a
cmp rsi, rcx
jge 0x14008bf1a
lfence
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + rsi*8]
sub rcx, 0x18
call fcn.140004d00
lea rbx, [rax + 0x18]
mov qword [rsp + 0x50], rbx
mov rcx, qword [0x1402bbf58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rcx, rax
mov rax, qword [rax]
lea r8, [rbp - 0x80]
mov rdx, rbx
mov rax, qword [rax]
call qword [case.0x1400136d6.0]
mov rdx, qword [rsp + 0x40]
cmp dword [rdx - 0x10], edi
je 0x14008bb1e
lea r8, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae r8, qword [rbp - 0x80]
lea rcx, [rsp + 0x48]
call fcn.1400a0940
test eax, eax
jns 0x14008bbc3
lea rdx, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
jb 0x14008bb36
mov rdx, qword [rbp - 0x80]
test rdx, rdx
jne 0x14008bb36
mov eax, edi
jmp 0x14008bb4a
mov rax, r14
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x14008bb40
mov r8d, eax
lea rcx, [rsp + 0x40]
call fcn.140004e60
lea rcx, [rbx - 0x18]
mov rdi, qword [rsp + 0x30]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14008bbc3
cmp dword [rdi + 0x10], 0
jl 0x14008bbb2
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14008bbb2
call fcn.140004d00
mov rbx, rax
mov eax, r14d
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x14008bba2
lfence
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
mov rbx, qword [rsp + 0x50]
jmp 0x14008bbc3
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140004e60
mov edi, 1
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, edi
jg 0x14008bbec
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x14008bc2c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14008bc27
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14008bf14
call fcn.1400079c0
inc r15d
inc rsi
movsxd rax, r15d
mov rcx, qword [rsp + 0x68]
cmp rax, rcx
jl 0x14008ba81
xor esi, esi
lea rcx, [rsp + 0x58]
call fcn.1401c8c10
test edi, edi
je 0x14008bd8e
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
movdqa xmm1, xmmword [0x14026f3f0]
movdqu xmmword [rbp - 0x50], xmm1
mov word [rbp - 0x60], si
mov rcx, qword [0x1402bbf58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rcx, rax
mov rax, qword [rax]
lea r8, [rbp - 0x60]
mov rdx, qword [r13]
mov rax, qword [rax]
call qword [case.0x1400136d6.0]
lea r8, [rbp - 0x60]
cmp qword [rbp - 0x48], 8
cmovae r8, qword [rbp - 0x60]
mov rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x48]
call fcn.1400a0940
mov rbx, qword [rsp + 0x30]
test eax, eax
jle 0x14008bd36
lea rcx, [rbx - 0x18]
mov rdi, qword [r13]
sub rdi, 0x18
cmp rcx, rdi
je 0x14008bd2e
cmp dword [rdi + 0x10], 0
jl 0x14008bd1f
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14008bd1f
call fcn.140004d00
mov rbx, rax
mov eax, r14d
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x14008bd0a
lfence
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
lea rax, [rbx + 0x18]
mov qword [r13], rax
mov rbx, qword [rsp + 0x30]
mov r15d, 1
jmp 0x14008bd3b
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
mov rcx, r13
call fcn.140004e60
mov r15d, 1
jmp 0x14008bd3b
mov r15d, dword [rsp + 0x38]
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x14008bd7b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14008bd76
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14008bef8
call fcn.1400079c0
movdqa xmm0, xmmword [0x14026f3f0]
movdqu xmmword [rbp - 0x50], xmm0
mov word [rbp - 0x60], si
jmp 0x14008bd98
mov rbx, qword [rsp + 0x30]
mov r15d, dword [rsp + 0x38]
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov edx, 1
mov rax, qword [rax + 0x30]
call qword [case.0x1400136d6.0]
mov byte [rbp - 0x38], 1
mov rcx, qword [0x1402a8360]
lea rdi, [0x1402a8360]
cmp rcx, rdi
je 0x14008bdfc
test byte [rcx + 0x1c], 1
je 0x14008bdfc
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x41
mov dword [rsp + 0x20], r15d
lea r8, [0x140258570]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
nop
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008be21
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x14008be4a
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
lea rcx, [rsp + 0x48]
call fcn.1400a0110
nop
lea rax, vtable.WppTrace.0
mov qword [rbp - 0x40], rax
cmp byte [rbp - 0x38], 0
jne 0x14008beb3
mov rcx, qword [0x1402a8360]
cmp rcx, rdi
je 0x14008beb3
test byte [rcx + 0x1c], 1
je 0x14008beb3
lea r8, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae r8, qword [rbp - 0x30]
cmp qword [0x1402bbdc8], 8
cmovae r12, qword [0x1402bbdb0]
mov edx, 0xa
mov qword [rsp + 0x20], r8
mov r9, r12
lea r8, [0x140252818]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
lea rcx, [rbp - 0x10]
call fcn.1400048a0
lea rcx, [rbp - 0x30]
call fcn.1400048a0
mov eax, r15d
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.1401e2900
lea r11, [rsp + 0x540]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1401ec41c
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
call fcn.1401ec41c
nop
call fcn.1401bb848
int3