Function at 0x140028fb0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0xba8
mov qword [rsp + 0xb50], 0xfffffffffffffffe
mov rax, qword [0x1402aa808]
xor rax, rsp
mov qword [rsp + 0xb98], rax
mov dword [rsp + 0x90], 0
mov qword [rsp + 0x88], 0
lea rcx, [rsp + 0x330]
call fcn.140065c10
nop
lea rcx, [rsp + 0x610]
call fcn.140062470
nop
lea rcx, [rsp + 0x858]
call fcn.140010b40
nop
lea rcx, [rsp + 0x110]
call fcn.1400521e0
lea rcx, [rsp + 0xe8]
call fcn.140003370
nop
lea rcx, [rsp + 0xc0]
call fcn.140003370
nop
lea rcx, [rsp + 0x98]
call fcn.140003370
nop
lea rcx, [rsp + 0x60]
call fcn.140003370
nop
mov qword [rsp + 0x850], 0
mov dword [rsp + 0x90], 0
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x20a
lea r9, [rsp + 0x120]
mov r8d, 1
xor edx, edx
xor ecx, ecx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
test eax, eax
jne 0x1400290c9
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles_Getting_the_directory_of_66000_is_failed._n
mov ecx, 2
call fcn.14001c160
jmp 0x140029c02
mov edx, 0x105
lea rcx, [rsp + 0x640]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x1400290f6
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles_Getting_the_directory_of_66002_is_failed._n
mov ecx, 2
call fcn.14001c160
jmp 0x140029c02
lea r8, [rsp + 0x120]
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles_66000____1_s__._n
mov ecx, 5
call fcn.14001c160
lea r8, [rsp + 0x640]
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles_66002____1_s__._n
mov ecx, 5
call fcn.14001c160
mov dx, 0x5c
lea rcx, [rsp + 0x120]
call fcn.140040640
mov qword [rsp + 0x850], rax
cmp qword [rsp + 0x850], 0
je 0x140029175
mov rcx, qword [rsp + 0x850]
call fcn.140010230
movzx eax, word [rax]
test eax, eax
je 0x140029175
lea rdx, [0x1401eba6c]
lea rcx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
cmp qword [rsp + 0xbc0], 0
je 0x1400291d7
mov dx, 0x5c
mov rcx, qword [rsp + 0xbc0]
call fcn.1401ab2f0
test rax, rax
jne 0x1400291c2
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0xe8]
call fcn.140010520
mov rdx, qword [rsp + 0xbc0]
lea rcx, [rsp + 0xe8]
call fcn.140010580
jmp 0x1400291d7
mov rdx, qword [rsp + 0xbc0]
lea rcx, [rsp + 0xe8]
call fcn.140010520
cmp qword [rsp + 0xbc8], 0
je 0x140029239
mov dx, 0x5c
mov rcx, qword [rsp + 0xbc8]
call fcn.1401ab2f0
test rax, rax
jne 0x140029224
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0xc0]
call fcn.140010520
mov rdx, qword [rsp + 0xbc8]
lea rcx, [rsp + 0xc0]
call fcn.140010580
jmp 0x140029239
mov rdx, qword [rsp + 0xbc8]
lea rcx, [rsp + 0xc0]
call fcn.140010520
cmp qword [rsp + 0xbd0], 0
je 0x14002929b
mov dx, 0x5c
mov rcx, qword [rsp + 0xbd0]
call fcn.1401ab2f0
test rax, rax
jne 0x140029286
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x98]
call fcn.140010520
mov rdx, qword [rsp + 0xbd0]
lea rcx, [rsp + 0x98]
call fcn.140010580
jmp 0x14002929b
mov rdx, qword [rsp + 0xbd0]
lea rcx, [rsp + 0x98]
call fcn.140010520
cmp qword [rsp + 0xbd8], 0
je 0x1400292f4
mov dx, 0x5c
mov rcx, qword [rsp + 0xbd8]
call fcn.1401ab2f0
test rax, rax
jne 0x1400292e2
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x60]
call fcn.140010520
mov rdx, qword [rsp + 0xbd8]
lea rcx, [rsp + 0x60]
call fcn.140010580
jmp 0x1400292f4
mov rdx, qword [rsp + 0xbd8]
lea rcx, [rsp + 0x60]
call fcn.140010520
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________IN._n
mov ecx, 5
call fcn.14001c160
cmp dword [rsp + 0x364], 0
je 0x140029879
mov rax, qword [rsp + 0xbb0]
cmp dword [rax + 0x148], 1
je 0x140029879
mov dword [rsp + 0x888], 0
mov qword [rsp + 0x880], 0
lea rcx, [rsp + 0x890]
call fcn.140061270
nop
lea r9, [0x1401eb880]
lea r8, str.CopyFiles
mov rdx, qword [rsp + 0xbb8]
mov rcx, qword [rsp + 0xbb0]
call sym.Setup.exe_protected:_wchar_t____ptr64___cdecl_CPrinterDriverInf::AllocAndGetValue_wchar_t_const____ptr64__wchar_t_const____ptr64__wchar_t_const____ptr64____ptr64
mov qword [rsp + 0x880], rax
cmp qword [rsp + 0x880], 0
jne 0x1400293a7
lea rdx, [0x1401f9a10]
mov ecx, 2
call fcn.14001c160
nop
lea rcx, [rsp + 0x890]
call fcn.1400612b0
jmp 0x140029c02
mov r8w, 0x2c
mov rdx, qword [rsp + 0x880]
lea rcx, [rsp + 0x890]
call fcn.1400612e0
mov rcx, qword [rsp + 0x880]
call fcn.140047560
mov qword [rsp + 0x880], 0
mov dx, 0x20
lea rcx, [rsp + 0x890]
call fcn.140061b10
lea r9, [0x1401eb880]
lea r8, str.DefaultDestDir
lea rdx, [0x1401f1138]
mov rcx, qword [rsp + 0xbb0]
call sym.Setup.exe_protected:_wchar_t____ptr64___cdecl_CPrinterDriverInf::AllocAndGetValue_wchar_t_const____ptr64__wchar_t_const____ptr64__wchar_t_const____ptr64____ptr64
mov qword [rsp + 0x880], rax
cmp qword [rsp + 0x880], 0
je 0x140029458
mov rcx, qword [rsp + 0x880]
call fcn.1401ada78
cmp eax, 0x101d0
jne 0x14002943f
mov dword [rsp + 0x888], 1
mov rcx, qword [rsp + 0x880]
call fcn.140047560
mov qword [rsp + 0x880], 0
mov dword [rsp + 0x878], 0
jmp 0x140029475
mov eax, dword [rsp + 0x878]
inc eax
mov dword [rsp + 0x878], eax
mov eax, dword [rsp + 0x878]
mov qword [rsp + 0xb58], rax
lea rcx, [rsp + 0x890]
call fcn.140062550
mov rcx, qword [rsp + 0xb58]
cmp rcx, rax
jae 0x14002967d
mov eax, dword [rsp + 0x878]
mov edx, eax
lea rcx, [rsp + 0x890]
call fcn.1400627c0
mov qword [rsp + 0x8c0], rax
cmp qword [rsp + 0x8c0], 0
je 0x1400294e8
cmp qword [rsp + 0x8c0], 0
je 0x1400294ed
mov rcx, qword [rsp + 0x8c0]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x1400294ed
jmp 0x140029465
mov rax, qword [rsp + 0x8c0]
movzx eax, word [rax]
cmp eax, 0x40
jne 0x1400295a9
mov rax, qword [rsp + 0x8c0]
movzx eax, word [rax + 2]
test eax, eax
je 0x1400295a4
lea rcx, [rsp + 0x8c8]
call fcn.140003370
nop
cmp dword [rsp + 0x888], 0
je 0x140029542
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x8c8]
call fcn.140010520
mov rax, qword [rsp + 0x8c0]
add rax, 2
mov rdx, rax
lea rcx, [rsp + 0x8c8]
call fcn.140010580
lea rcx, [rsp + 0x8c8]
call fcn.140003530
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1400033c0
nop
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x858]
call fcn.1400130c0
nop
lea rcx, [rsp + 0x38]
call fcn.140003430
nop
lea rcx, [rsp + 0x8c8]
call fcn.140003430
jmp 0x140029465
lea r9, [0x1401eb880]
mov r8, qword [rsp + 0x8c0]
lea rdx, str.DestinationDirs
mov rcx, qword [rsp + 0xbb0]
call sym.Setup.exe_protected:_wchar_t____ptr64___cdecl_CPrinterDriverInf::AllocAndGetValue_wchar_t_const____ptr64__wchar_t_const____ptr64__wchar_t_const____ptr64____ptr64
mov qword [rsp + 0x880], rax
cmp qword [rsp + 0x880], 0
je 0x140029678
mov rcx, qword [rsp + 0x880]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x140029630
mov rcx, qword [rsp + 0x880]
call fcn.1401ada78
cmp eax, 0x101d0
jne 0x14002962e
lea r9, [rsp + 0x858]
lea r8, [rsp + 0x120]
mov rdx, qword [rsp + 0x8c0]
mov rcx, qword [rsp + 0xbb0]
call sym.Setup.exe_protected:_int___cdecl_CPrinterDriverInf::GetFilesFromCopyFilesSection_wchar_t_const____ptr64__wchar_t_const____ptr64__class_std::vector_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t____class_std::allocator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t________ptr64____ptr64
jmp 0x14002965f
cmp dword [rsp + 0x888], 0
je 0x14002965f
lea r9, [rsp + 0x858]
lea r8, [rsp + 0x120]
mov rdx, qword [rsp + 0x8c0]
mov rcx, qword [rsp + 0xbb0]
call sym.Setup.exe_protected:_int___cdecl_CPrinterDriverInf::GetFilesFromCopyFilesSection_wchar_t_const____ptr64__wchar_t_const____ptr64__class_std::vector_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t____class_std::allocator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t________ptr64____ptr64
mov rcx, qword [rsp + 0x880]
call fcn.140047560
mov qword [rsp + 0x880], 0
jmp 0x140029465
lea rdx, [0x1401f9ac0]
mov ecx, 5
call fcn.14001c160
lea rdx, [rsp + 0xb10]
lea rcx, [rsp + 0x858]
call fcn.1400121b0
mov rax, qword [rax]
mov qword [rsp + 0x110], rax
jmp 0x1400296c8
xor r8d, r8d
lea rdx, [rsp + 0xb18]
lea rcx, [rsp + 0x110]
call fcn.14002f650
lea rdx, [rsp + 0xb20]
lea rcx, [rsp + 0x858]
call fcn.14002f230
mov rdx, rax
lea rcx, [rsp + 0x110]
call fcn.140004330
movzx eax, al
test eax, eax
je 0x140029855
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003530
mov qword [rsp + 0xb60], rax
lea rcx, [rsp + 0xe8]
call fcn.140003530
mov rcx, qword [rsp + 0xb60]
mov rdx, rcx
mov rcx, rax
call fcn.1401ac890
test eax, eax
je 0x1400297fd
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003530
mov qword [rsp + 0xb68], rax
lea rcx, [rsp + 0xc0]
call fcn.140003530
mov rcx, qword [rsp + 0xb68]
mov rdx, rcx
mov rcx, rax
call fcn.1401ac890
test eax, eax
je 0x1400297fd
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003530
mov qword [rsp + 0xb70], rax
lea rcx, [rsp + 0x98]
call fcn.140003530
mov rcx, qword [rsp + 0xb70]
mov rdx, rcx
mov rcx, rax
call fcn.1401ac890
test eax, eax
je 0x1400297fd
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003530
mov qword [rsp + 0xb78], rax
lea rcx, [rsp + 0x60]
call fcn.140003530
mov rcx, qword [rsp + 0xb78]
mov rdx, rcx
mov rcx, rax
call fcn.1401ac890
test eax, eax
jne 0x140029802
jmp 0x1400296b0
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003530
mov rdx, rax
lea rcx, [rsp + 0x610]
call fcn.1400624c0
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003530
mov r8, rax
lea rdx, [0x1401f9b50]
mov ecx, 5
call fcn.14001c160
jmp 0x1400296b0
lea rdx, [0x1401f9bc0]
mov ecx, 5
call fcn.14001c160
nop
lea rcx, [rsp + 0x890]
call fcn.1400612b0
jmp 0x140029ad2
mov qword [rsp + 0x850], 0
mov qword [rsp + 0x8f0], 0
mov r8d, 0x20a
xor edx, edx
lea rcx, [rsp + 0x900]
call fcn.1401ac6a0
mov dword [rsp + 0x90], 0
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x20a
lea r9, [rsp + 0x900]
mov r8d, 1
xor edx, edx
xor ecx, ecx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
mov dx, 0x5c
lea rcx, [rsp + 0x900]
call fcn.140040640
mov qword [rsp + 0x850], rax
cmp qword [rsp + 0x850], 0
je 0x14002992a
mov rcx, qword [rsp + 0x850]
call fcn.140010230
movzx eax, word [rax]
test eax, eax
je 0x14002992a
lea rdx, [0x1401eba94]
lea rcx, [rsp + 0x900]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea r8, [rsp + 0x900]
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles_DriverDirectory___1_s__n
mov ecx, 5
call fcn.14001c160
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles_Dependent_Files________n
mov ecx, 5
call fcn.14001c160
mov rax, qword [rsp + 0xbb0]
add rax, 0xe0
lea rdx, [rsp + 0xb28]
mov rcx, rax
call fcn.1400121b0
mov rax, qword [rax]
mov qword [rsp + 0x110], rax
jmp 0x140029997
xor r8d, r8d
lea rdx, [rsp + 0xb30]
lea rcx, [rsp + 0x110]
call fcn.14002f650
mov rax, qword [rsp + 0xbb0]
add rax, 0xe0
lea rdx, [rsp + 0xb38]
mov rcx, rax
call fcn.14002f230
mov rdx, rax
lea rcx, [rsp + 0x110]
call fcn.140004330
movzx eax, al
test eax, eax
je 0x140029ac1
lea rcx, [rsp + 0x900]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cdqe
mov qword [rsp + 0xb80], rax
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003530
mov rcx, qword [rsp + 0xb80]
mov r8, rcx
lea rdx, [rsp + 0x900]
mov rcx, rax
call fcn.1401aaf6c
test eax, eax
jne 0x140029a62
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003550
mov qword [rsp + 0xb88], rax
lea rcx, [rsp + 0x900]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cdqe
shl rax, 1
mov rcx, qword [rsp + 0xb88]
lea rax, [rcx + rax*2]
mov qword [rsp + 0x8f0], rax
jmp 0x140029a7f
lea rcx, [rsp + 0x110]
call fcn.14002f630
mov rcx, rax
call fcn.140003550
mov qword [rsp + 0x8f0], rax
mov rax, qword [rsp + 0x8f0]
movzx eax, word [rax]
test eax, eax
je 0x140029abc
mov rdx, qword [rsp + 0x8f0]
lea rcx, [rsp + 0x610]
call fcn.1400624c0
mov r8, qword [rsp + 0x8f0]
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles__1_s__n
mov ecx, 5
call fcn.14001c160
jmp 0x14002997f
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles________Dependent_Files_n
mov ecx, 5
call fcn.14001c160
lea rcx, [rsp + 0x610]
call fcn.140062700
mov dword [rsp + 0x90], eax
cmp dword [rsp + 0x90], 0
je 0x140029b76
mov eax, dword [rsp + 0x90]
shl rax, 1
mov r8d, 0x1167
lea rdx, [0x1401f1298]
mov rcx, rax
call fcn.140047520
mov qword [rsp + 0x88], rax
cmp qword [rsp + 0x88], 0
jne 0x140029b3c
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles_Memory_allocation_error__CopyFiles_._n
mov ecx, 2
call fcn.14001c160
jmp 0x140029c02
mov eax, dword [rsp + 0x90]
shl rax, 1
mov qword [rsp + 0xb90], rax
lea rcx, [rsp + 0x610]
call fcn.140062580
mov rcx, qword [rsp + 0xb90]
mov r8, rcx
mov rdx, rax
mov rcx, qword [rsp + 0x88]
call fcn.1401abff0
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________OUT._n
mov ecx, 5
call fcn.14001c160
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xb40], rax
lea rcx, [rsp + 0x60]
call fcn.140003430
nop
lea rcx, [rsp + 0x98]
call fcn.140003430
nop
lea rcx, [rsp + 0xc0]
call fcn.140003430
nop
lea rcx, [rsp + 0xe8]
call fcn.140003430
nop
lea rcx, [rsp + 0x858]
call fcn.140010770
nop
lea rcx, [rsp + 0x610]
call fcn.1400629e0
nop
lea rcx, [rsp + 0x330]
call fcn.140066f20
mov rax, qword [rsp + 0xb40]
jmp 0x140029c85
lea rdx, str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________Error_OUT._n
mov ecx, 5
call fcn.14001c160
mov qword [rsp + 0xb48], 0
lea rcx, [rsp + 0x60]
call fcn.140003430
nop
lea rcx, [rsp + 0x98]
call fcn.140003430
nop
lea rcx, [rsp + 0xc0]
call fcn.140003430
nop
lea rcx, [rsp + 0xe8]
call fcn.140003430
nop
lea rcx, [rsp + 0x858]
call fcn.140010770
nop
lea rcx, [rsp + 0x610]
call fcn.1400629e0
nop
lea rcx, [rsp + 0x330]
call fcn.140066f20
mov rax, qword [rsp + 0xb48]
mov rcx, qword [rsp + 0xb98]
xor rcx, rsp
call fcn.1401ab2d0
add rsp, 0xba8
ret