Function at 0x14007d0a0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x890]
sub rsp, 0x9c0
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0x880], rax
mov edi, edx
lea rdx, str.InstallPrinterInfoManager::AddPnPPrinterFromInsDrvIniToShareMem
lea rcx, [rbp]
call fcn.14001abe0
nop
lea r14, [0x1402a8360]
lea r12, [0x1402bbdb0]
mov rcx, qword [0x1402a8360]
cmp rcx, r14
je 0x14007d171
test byte [rcx + 0x1c], 1
je 0x14007d13a
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x50
lea r8, [0x140257ae8]
mov rcx, qword [rcx + 0x10]
call fcn.140001ad0
mov rcx, qword [0x1402a8360]
cmp rcx, r14
je 0x14007d171
test byte [rcx + 0x1c], 1
je 0x14007d171
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x51
mov dword [rsp + 0x20], edi
lea r8, [0x140257ae8]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x14007da8d
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x68], rbx
mov r15, 0xffffffffffffffff
cmp edi, 1
je 0x14007d2cb
mov dword [0x1402bbd98], 1
mov byte [rbp + 8], 1
mov rcx, qword [0x1402a8360]
cmp rcx, r14
je 0x14007d1f6
test byte [rcx + 0x1c], 1
je 0x14007d1f6
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
lea edx, [r15 + 0x53]
mov dword [rsp + 0x20], 0x80010001
lea r8, [0x140257ae8]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
mov dword [0x1402bbd98], 0x26
mov esi, 0x80010026
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x14007d229
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
lea rax, vtable.WppTrace.0
mov qword [rbp], rax
cmp byte [rbp + 8], 0
jne 0x14007d287
mov rcx, qword [0x1402a8360]
cmp rcx, r14
je 0x14007d287
test byte [rcx + 0x1c], 1
je 0x14007d287
lea r8, [rbp + 0x10]
cmp qword [rbp + 0x28], 8
cmovae r8, qword [rbp + 0x10]
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 + 0x30]
call fcn.1400048a0
lea rcx, [rbp + 0x10]
call fcn.1400048a0
mov eax, esi
mov rcx, qword [rbp + 0x880]
xor rcx, rsp
call fcn.1401e2900
lea r11, [rsp + 0x9c0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov edx, 0x7b
lea rcx, [rbp - 0x68]
call fcn.1400041d0
mov rcx, qword [0x1402bbf60]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x3f1
mov rax, qword [rax + 0x28]
call qword [case.0x1400136d6.0]
mov rcx, qword [0x1402bbf60]
mov rax, qword [rcx]
mov rbx, qword [rbp - 0x68]
mov r8, rbx
mov edx, 0x3f1
mov rax, qword [rax + 0x38]
call qword [case.0x1400136d6.0]
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x80]
mov rcx, rdx
call qword [case.0x1400136d6.0]
mov rdi, rax
test rax, rax
je 0x14007d1f6
movsxd rsi, dword [rax + 0x10]
test esi, esi
je 0x14007d1f6
lea rcx, [rbp - 0x58]
call fcn.14005f660
nop
mov r14, rsi
xor r13d, r13d
mov esi, r13d
test r14, r14
jle 0x14007d4f9
mov ebx, r13d
nop word [rax + rax]
xor edx, edx
mov r8d, 0x410
lea rcx, [rbp + 0x470]
call fcn.1401e7e40
test rbx, rbx
js 0x14007da98
cmp rbx, qword [rdi + 0x10]
jge 0x14007da98
lfence
mov rax, qword [rdi + 8]
lea r8, [rbp + 0x470]
mov rdx, qword [rax + rbx*8]
lea rcx, [rbp - 0x58]
call fcn.1400605d0
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
mov r10, rax
cmp rbx, qword [rdi + 0x10]
jge 0x14007da98
mov rcx, qword [rdi + 8]
lea r9, [rcx + rbx*8]
lfence
mov rcx, qword [rdi + 8]
lea r8, [rcx + rbx*8]
mov rcx, qword [rax]
mov rax, qword [rcx + 0x98]
mov qword [rsp + 0x98], r13
mov dword [rsp + 0x90], r13d
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x80], r13
mov qword [rsp + 0x78], r13
mov dword [rsp + 0x70], r13d
mov dword [rsp + 0x68], r13d
mov dword [rsp + 0x60], r13d
mov dword [rsp + 0x58], r13d
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x40], r13d
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r15d
lea rcx, [rbp + 0x470]
mov qword [rsp + 0x20], rcx
mov r9, qword [r9]
mov r8, qword [r8]
xor edx, edx
mov rcx, r10
call qword [case.0x1400136d6.0]
mov esi, r13d
mov rax, qword [0x1402a8360]
lea rcx, [0x1402a8360]
cmp rax, rcx
je 0x14007d4ed
test byte [rax + 0x1c], 4
je 0x14007d4ed
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
cmp rbx, qword [rdi + 0x10]
jge 0x14007da98
lfence
mov rax, qword [rdi + 8]
mov edx, 0x53
mov rax, qword [rax + rbx*8]
mov qword [rsp + 0x20], rax
lea r8, [0x140257ae8]
mov rcx, qword [0x1402a8360]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
inc rbx
cmp rbx, r14
jl 0x14007d380
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x50]
call fcn.1401e7e40
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x260]
call fcn.1401e7e40
lea rax, vtable.CMap_class_ATL::CStringT_unsigned_short_int__class_StrTraitMFC_unsigned_short_int__class_ATL::ChTraitsCRT_unsigned_short_int_____unsigned_short_int_const____ptr64__unsigned_char____ptr64__unsigned_char____ptr64_.0
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], r13
mov dword [rbp - 0x38], reloc.COMCTL32.dll_InitCommonControls
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x30], xmm0
movdqa xmm1, xmmword [0x14026f400]
movdqa xmmword [rbp - 0x20], xmm1
mov qword [rbp - 0x10], r13
mov qword [rbp - 8], r13
lfence
mov ecx, 0x48
call fcn.1401baa78
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp - 0x10], rax
mov qword [rbp - 0x50], r13
lea rcx, [rbp - 0x50]
call fcn.140007b00
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionSetup
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14007d600
mov byte [rbp + 8], 1
mov rcx, qword [0x1402a8360]
lea r14, [0x1402a8360]
cmp rcx, r14
je 0x14007da5b
test byte [rcx + 0x1c], 1
je 0x14007da5b
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, MsiOpenDatabaseW
mov dword [rsp + 0x20], esi
lea r8, [0x140257ae8]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
jmp 0x14007da5b
mov qword [rbp - 0x70], r13
xor r9d, r9d
lea r8, [rbp - 0x70]
lea rdx, str.SourcePath
lea rcx, [rbp - 0x50]
call fcn.140007cf0
test eax, eax
je 0x14007d675
mov byte [rbp + 8], 1
mov rcx, qword [0x1402a8360]
lea r14, [0x1402a8360]
cmp rcx, r14
je 0x14007da5b
test byte [rcx + 0x1c], 1
je 0x14007da5b
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, MsiOpenDatabaseW
mov dword [rsp + 0x20], esi
lea r8, [0x140257ae8]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
jmp 0x14007da5b
mov edx, 0x104
lea rcx, [rbp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x14007da9e
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x80], rbx
mov rdx, qword [rbp - 0x70]
lea rax, [rdx - 1]
mov r14d, 1
cmp rax, 0xfffe
ja 0x14007d6d5
movzx edx, dx
lea rcx, [rbp - 0x80]
call fcn.1400041d0
mov rbx, qword [rbp - 0x80]
jmp 0x14007d826
test rdx, rdx
je 0x14007d7c7
mov rdi, r15
inc rdi
cmp word [rdx + rdi*2], 0
jne 0x14007d6e1
test edi, edi
je 0x14007d7c7
mov eax, dword [rbx - 0x10]
mov dword [rbp - 0x60], eax
mov r13, rdx
sub r13, rbx
sar r13, 1
test edi, edi
js 0x14007daa9
mov ecx, r14d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or ecx, eax
jge 0x14007d72f
lfence
mov edx, edi
lea rcx, [rbp - 0x80]
call fcn.140004e00
mov rdx, qword [rbp - 0x70]
mov rbx, qword [rbp - 0x80]
movsxd r14, edi
add r14, r14
mov eax, dword [rbp - 0x60]
cmp r13, rax
ja 0x14007d778
lea rdx, [rbx + r13*2]
test r14, r14
je 0x14007d7ad
test rdx, rdx
jne 0x14007d758
call fcn.1401ec568
mov dword [rax], socket
jmp 0x14007d7a8
movsxd rax, dword [rbx - 0xc]
add rax, rax
cmp rax, r14
jb 0x14007d79d
lfence
mov r8, r14
mov rbx, qword [rbp - 0x80]
mov rcx, rbx
call fcn.1401e7770
jmp 0x14007d7ad
movsxd r8, dword [rbx - 0xc]
add r8, r8
test r14, r14
je 0x14007d7ad
mov rcx, rbx
cmp r8, r14
jb 0x14007d796
mov r8, r14
call fcn.1401e7770
jmp 0x14007d7ad
xor edx, edx
call fcn.1401e7e40
call fcn.1401ec568
mov dword [rax], 0x22
call fcn.1401ec3fc
cmp edi, dword [rbx - 0xc]
jg 0x14007daa9
mov dword [rbx - 0x10], edi
xor r13d, r13d
mov word [r14 + rbx], r13w
lea r14d, [r13 + 1]
jmp 0x14007d826
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x14007d826
cmp dword [rdx + 0x10], 0
jge 0x14007d7ee
cmp dword [rbx - 0xc], 0
jl 0x14007daa9
mov dword [rbx - 0x10], r13d
mov word [rbx], r13w
jmp 0x14007d826
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, r14d
jg 0x14007d80e
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rbx, [rax + 0x18]
mov qword [rbp - 0x80], rbx
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x14007da77
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rbp - 0x78], rax
lea rax, [rbp + 0x50]
cmp rax, 0x10000
jae 0x14007d86a
lea rax, [rbp + 0x50]
movzx edx, ax
lea rcx, [rbp - 0x78]
call fcn.1400041d0
jmp 0x14007d88c
lea rcx, [rbp + 0x50]
mov rax, r15
inc rax
cmp word [rcx + rax*2], 0
jne 0x14007d871
mov r8d, eax
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x78]
call fcn.140004e60
nop
movsxd rdi, dword [rbx - 0x10]
test edi, edi
js 0x14007da82
lfence
mov rbx, qword [rbp - 0x80]
mov ecx, r14d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or ecx, eax
jge 0x14007d8c0
lfence
mov edx, edi
lea rcx, [rbp - 0x80]
call fcn.140004e00
mov rbx, qword [rbp - 0x80]
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.1401fd730
cmp edi, dword [rbx - 0xc]
jg 0x14007da82
mov dword [rbx - 0x10], edi
mov word [rbx + rdi*2], r13w
mov rax, qword [rbp - 0x78]
movsxd rdi, dword [rax - 0x10]
test edi, edi
js 0x14007da82
lfence
mov rbx, qword [rbp - 0x78]
sub r14d, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, r14d
jge 0x14007d916
lfence
mov edx, edi
lea rcx, [rbp - 0x78]
call fcn.140004e00
mov rbx, qword [rbp - 0x78]
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.1401fd730
cmp edi, dword [rbx - 0xc]
jg 0x14007da82
mov dword [rbx - 0x10], edi
mov word [rbx + rdi*2], r13w
mov rdi, qword [rbp - 0x80]
cmp dword [rdi - 0x10], 0
jl 0x14007d972
mov rdx, rbx
mov rcx, rdi
call fcn.1401e7270
test rax, rax
je 0x14007d972
sub rax, rdi
sar rax, 1
test eax, eax
js 0x14007d972
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x1400136d6.0]
mov r8, rdi
jmp 0x14007d9a9
lea r9, [rbp + 0x50]
lea r8, str._sOPTIONSINSTALL_
mov edx, 0x104
lea rcx, [rbp + 0x260]
call fcn.14002fb20
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x1400136d6.0]
lea r8, [rbp + 0x260]
mov r9, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
lea rdx, str.SOURCEPATH
mov rcx, r9
call qword [case.0x1400136d6.0]
mov byte [rbp + 8], 1
mov rcx, qword [0x1402a8360]
lea r14, [0x1402a8360]
cmp rcx, r14
je 0x14007da0d
test byte [rcx + 0x1c], 1
je 0x14007da0d
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, MsiOpenDatabaseW
mov dword [rsp + 0x20], esi
lea r8, [0x140257ae8]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007da32
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14007da5b
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
lea rcx, [rbp - 0x50]
call fcn.140007a90
nop
lea rcx, [rbp - 0x58]
call fcn.14005f7d0
mov rbx, qword [rbp - 0x68]
jmp 0x14007d205
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80070057
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
call fcn.1401bb848
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80070057
call fcn.140001470
int3