Function at 0x41b7e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53614e
mov eax, dword fs:[0]
push eax
sub esp, 0x9fc
mov eax, dword [0x5a6a30]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x9b4], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x9bc], ecx
xor ebx, ebx
lea ecx, [ebp - 0x9b0]
mov dword [ebp - 0x9d0], eax
mov dword [ebp - 0x9d4], edx
mov dword [ebp - 0x9b8], ebx
mov dword [ebp - 0x9d8], ebx
call fcn.00429620
lea ecx, [ebp - 0xa08]
mov dword [ebp - 4], ebx
call fcn.00428420
mov dword [ebp - 0x9cc], ebx
mov dword [ebp - 0x9c8], ebx
mov dword [ebp - 0x9c4], ebx
mov eax, 7
xor ecx, ecx
mov dword [ebp - 0x674], eax
mov dword [ebp - 0x678], ebx
mov word [ebp - 0x688], cx
xor edx, edx
mov dword [ebp - 0x658], eax
mov dword [ebp - 0x65c], ebx
mov word [ebp - 0x66c], dx
mov dword [ebp - 0x690], eax
mov dword [ebp - 0x694], ebx
mov word [ebp - 0x6a4], cx
mov dword [ebp - 0x63c], eax
mov dword [ebp - 0x640], ebx
mov word [ebp - 0x650], dx
lea eax, [ebp - 0x9b8]
push eax
push 0x20a
lea ecx, [ebp - 0x21c]
push ecx
push 1
push ebx
push ebx
mov byte [ebp - 4], 6
mov dword [ebp - 0x9b8], ebx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
test eax, eax
jne 0x41b901
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Getting_the_directory_of_66000_is_failed._n
push 2
call fcn.00403750
add esp, 8
jmp 0x41c0ff
push 0x105
lea edx, [ebp - 0x634]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x41b92b
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Getting_the_directory_of_66002_is_failed._n
push 2
call fcn.00403750
add esp, 8
jmp 0x41c0ff
lea eax, [ebp - 0x21c]
push eax
push str.CPrinterDriverInf::AllocAndGetDependentFiles_66000____1_s__._n
push 5
call fcn.00403750
lea ecx, [ebp - 0x634]
push ecx
push str.CPrinterDriverInf::AllocAndGetDependentFiles_66002____1_s__._n
push 5
call fcn.00403750
lea edx, [ebp - 0x21c]
push 0x5c
push edx
call fcn.0051edd8
add esp, 0x20
cmp eax, ebx
je 0x41b97e
cmp word [eax + 2], bx
je 0x41b97e
push 0x5457b4
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
cmp esi, ebx
je 0x41ba0c
push 0x5c
push esi
call fcn.0051fd02
add esp, 8
test eax, eax
jne 0x41b9e5
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41b9a0
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x688]
call fcn.00401dd0
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41b9c7
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x688]
call fcn.004035d0
jmp 0x41ba0c
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41b9f0
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x688]
call fcn.00401dd0
cmp edi, ebx
je 0x41ba9c
push 0x5c
push edi
call fcn.0051fd02
add esp, 8
test eax, eax
jne 0x41ba75
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41ba30
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x21c]
push edx
lea ecx, [ebp - 0x66c]
call fcn.00401dd0
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41ba57
sub eax, edx
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x66c]
call fcn.004035d0
jmp 0x41ba9c
mov eax, edi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41ba80
sub eax, edx
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x66c]
call fcn.00401dd0
mov esi, dword [ebp - 0x9bc]
cmp esi, ebx
je 0x41bb2f
push 0x5c
push esi
call fcn.0051fd02
add esp, 8
test eax, eax
jne 0x41bb0e
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41bac2
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.00401dd0
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41baf0
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x6a4]
call fcn.004035d0
jmp 0x41bb2f
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41bb13
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x6a4]
call fcn.00401dd0
mov esi, dword [ebp - 0x9d4]
cmp esi, ebx
je 0x41bbbf
push 0x5c
push esi
call fcn.0051fd02
add esp, 8
test eax, eax
jne 0x41bb9e
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41bb55
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x650]
call fcn.00401dd0
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41bb80
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x650]
call fcn.004035d0
jmp 0x41bbbf
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41bba3
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x650]
call fcn.00401dd0
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________IN._n
push 5
call fcn.00403750
add esp, 8
cmp dword [ebp - 0x980], ebx
je 0x41bf6c
mov edx, dword [ebp - 0x9b4]
cmp dword [edx + 0xd4], 1
je 0x41bf6c
lea ecx, [ebp - 0x9f0]
mov dword [ebp - 0x9bc], ebx
call fcn.00428600
mov eax, dword [ebp - 0x9d0]
mov edi, dword [ebp - 0x9b4]
push 0x549a80
push str.CopyFiles
push eax
mov ecx, edi
mov byte [ebp - 4], 7
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
mov esi, eax
cmp esi, ebx
jne 0x41bc49
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Memory_allocation_error__CopyFiles_._n
push 2
call fcn.00403750
add esp, 8
lea ecx, [ebp - 0x9f0]
mov byte [ebp - 4], 6
call fcn.00428610
jmp 0x41c0ff
push 0x2c
push esi
lea ecx, [ebp - 0x9f0]
call fcn.004289f0
push esi
call fcn.00422db0
add esp, 4
push 0x20
lea ecx, [ebp - 0x9f0]
call fcn.00428040
push 0x549a80
push str.DefaultDestDir
push str.DestinationDirs
mov ecx, edi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
mov esi, eax
cmp esi, ebx
je 0x41bcac
push esi
call fcn.005200e9
add esp, 4
cmp eax, 0x101d0
jne 0x41bca3
mov dword [ebp - 0x9bc], 1
push esi
call fcn.00422db0
add esp, 4
lea ecx, [ebp - 0x9f0]
xor ebx, ebx
call fcn.00426dd0
lea edi, [ebx + 8]
test eax, eax
je 0x41be29
push ebx
lea ecx, [ebp - 0x9f0]
call fcn.00427000
mov esi, eax
test esi, esi
je 0x41be15
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41be15
mov ecx, 0x40
cmp cx, word [esi]
jne 0x41bd9d
add esi, 2
cmp word [esi], 0
je 0x41be15
xor edx, edx
mov dword [ebp - 0x6ac], 7
mov dword [ebp - 0x6b0], 0
mov word [ebp - 0x6c0], dx
mov byte [ebp - 4], 8
cmp dword [ebp - 0x9bc], edx
je 0x41bd3f
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x6c0]
call fcn.004036f0
push esi
lea ecx, [ebp - 0x6c0]
call fcn.00403720
mov eax, dword [ebp - 0x6c0]
cmp dword [ebp - 0x6ac], edi
jae 0x41bd5f
lea eax, [ebp - 0x6c0]
push eax
lea ecx, [ebp - 0x6dc]
call fcn.00401f70
lea ecx, [ebp - 0x6dc]
push ecx
lea ecx, [ebp - 0x9cc]
mov byte [ebp - 4], 9
call fcn.00418280
lea ecx, [ebp - 0x6dc]
call fcn.00401880
lea ecx, [ebp - 0x6c0]
mov byte [ebp - 4], 7
call fcn.00401880
jmp 0x41be15
mov ecx, dword [ebp - 0x9b4]
push 0x549a80
push esi
push str.DestinationDirs
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
mov edi, eax
test edi, edi
je 0x41be10
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41bde4
push edi
call fcn.005200e9
add esp, 4
cmp eax, 0x101d0
jne 0x41be07
lea edx, [ebp - 0x9cc]
push edx
lea eax, [ebp - 0x21c]
push eax
jmp 0x41bdfb
cmp dword [ebp - 0x9bc], 0
je 0x41be07
lea ecx, [ebp - 0x9cc]
push ecx
lea edx, [ebp - 0x21c]
push edx
mov ecx, dword [ebp - 0x9b4]
push esi
call sym.DelDrv.exe_protected:_int___thiscall_CPrinterDriverInf::GetFilesFromCopyFilesSection_wchar_t_const___wchar_t_const___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______
push edi
call fcn.00422db0
add esp, 4
mov edi, 8
lea ecx, [ebp - 0x9f0]
inc ebx
call fcn.00426dd0
cmp ebx, eax
jb 0x41bcc4
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Dependent_Files________n
push 5
call fcn.00403750
mov esi, dword [ebp - 0x9cc]
mov ebx, dword [ebp - 0x9c8]
add esp, 8
cmp esi, ebx
je 0x41bf49
lea esp, [esp]
cmp dword [esi + 0x14], edi
jb 0x41be59
mov eax, dword [esi]
jmp 0x41be5b
mov eax, esi
mov ecx, dword [ebp - 0x688]
cmp dword [ebp - 0x674], edi
jae 0x41be6f
lea ecx, [ebp - 0x688]
push eax
push ecx
call fcn.0051eced
add esp, 8
test eax, eax
je 0x41bf3e
cmp dword [esi + 0x14], edi
jb 0x41be8a
mov eax, dword [esi]
jmp 0x41be8c
mov eax, esi
mov ecx, dword [ebp - 0x66c]
cmp dword [ebp - 0x658], edi
jae 0x41bea0
lea ecx, [ebp - 0x66c]
push eax
push ecx
call fcn.0051eced
add esp, 8
test eax, eax
je 0x41bf3e
cmp dword [esi + 0x14], edi
jb 0x41bebb
mov eax, dword [esi]
jmp 0x41bebd
mov eax, esi
mov ecx, dword [ebp - 0x6a4]
cmp dword [ebp - 0x690], edi
jae 0x41bed1
lea ecx, [ebp - 0x6a4]
push eax
push ecx
call fcn.0051eced
add esp, 8
test eax, eax
je 0x41bf3e
cmp dword [esi + 0x14], edi
jb 0x41bee8
mov eax, dword [esi]
jmp 0x41beea
mov eax, esi
mov ecx, dword [ebp - 0x650]
cmp dword [ebp - 0x63c], edi
jae 0x41befe
lea ecx, [ebp - 0x650]
push eax
push ecx
call fcn.0051eced
add esp, 8
test eax, eax
je 0x41bf3e
cmp dword [esi + 0x14], edi
jb 0x41bf15
mov eax, dword [esi]
jmp 0x41bf17
mov eax, esi
push eax
lea ecx, [ebp - 0xa08]
call fcn.00428d90
cmp dword [esi + 0x14], edi
jb 0x41bf2c
mov eax, dword [esi]
jmp 0x41bf2e
mov eax, esi
push eax
push str.CPrinterDriverInf::AllocAndGetDependentFiles__1_s__n
push 5
call fcn.00403750
add esp, 0xc
add esi, 0x1c
cmp esi, ebx
jne 0x41be50
push str.CPrinterDriverInf::AllocAndGetDependentFiles________Dependent_Files_n
push 5
call fcn.00403750
add esp, 8
lea ecx, [ebp - 0x9f0]
mov byte [ebp - 4], 6
call fcn.00428610
jmp 0x41c0b7
push 0x20a
lea eax, [ebp - 0x428]
push ebx
push eax
call fcn.0051eb70
add esp, 0xc
lea ecx, [ebp - 0x9b8]
push ecx
push 0x20a
lea edx, [ebp - 0x428]
push edx
push 1
push ebx
push ebx
mov dword [ebp - 0x9b8], ebx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
lea eax, [ebp - 0x428]
push 0x5c
push eax
call fcn.0051edd8
add esp, 8
cmp eax, ebx
je 0x41bfd0
cmp word [eax + 2], bx
je 0x41bfd0
push 0x5457b4
lea ecx, [ebp - 0x428]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
lea edx, [ebp - 0x428]
push edx
push str.CPrinterDriverInf::AllocAndGetDependentFiles_DriverDirectory___1_s__n
push 5
call fcn.00403750
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Dependent_Files________n
push 5
call fcn.00403750
mov eax, dword [ebp - 0x9b4]
mov esi, dword [eax + 0x94]
add esp, 0x14
cmp esi, dword [eax + 0x98]
je 0x41c0a3
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp dword [esi + 0x14], 8
jb 0x41c01a
mov edi, dword [esi]
jmp 0x41c01c
mov edi, esi
lea eax, [ebp - 0x428]
push eax
call ebx
push eax
lea ecx, [ebp - 0x428]
push ecx
push edi
call fcn.0051fc64
add esp, 0xc
test eax, eax
jne 0x41c060
cmp dword [esi + 0x14], 8
jb 0x41c050
mov edi, dword [esi]
lea edx, [ebp - 0x428]
push edx
call ebx
lea edi, [edi + eax*4]
jmp 0x41c06c
lea edx, [ebp - 0x428]
push edx
mov edi, esi
call ebx
lea edi, [edi + eax*4]
jmp 0x41c06c
cmp dword [esi + 0x14], 8
jb 0x41c06a
mov edi, dword [esi]
jmp 0x41c06c
mov edi, esi
cmp word [edi], 0
je 0x41c08e
push edi
lea ecx, [ebp - 0xa08]
call fcn.00428d90
push edi
push str.CPrinterDriverInf::AllocAndGetDependentFiles__1_s__n
push 5
call fcn.00403750
add esp, 0xc
mov eax, dword [ebp - 0x9b4]
add esi, 0x1c
cmp esi, dword [eax + 0x98]
jne 0x41c010
push str.CPrinterDriverInf::AllocAndGetDependentFiles________Dependent_Files_n
push 5
call fcn.00403750
add esp, 8
mov edi, 8
lea ecx, [ebp - 0xa08]
call fcn.004272d0
mov dword [ebp - 0x9b8], eax
test eax, eax
je 0x41c249
push 0x1167
lea ecx, [eax + eax]
push str...CommonDeviceInf.cpp
push ecx
call fcn.00422d90
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x41c228
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Memory_allocation_error__CopyFiles_._n
push 2
call fcn.00403750
add esp, 8
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________Error_OUT._n
push 5
call fcn.00403750
mov edi, 8
add esp, 8
cmp dword [ebp - 0x63c], edi
jb 0x41c12a
mov edx, dword [ebp - 0x650]
push edx
call fcn.00429e6f
add esp, 4
xor eax, eax
mov esi, 7
mov dword [ebp - 0x63c], esi
mov dword [ebp - 0x640], ebx
mov word [ebp - 0x650], ax
cmp dword [ebp - 0x690], edi
jb 0x41c15b
mov ecx, dword [ebp - 0x6a4]
push ecx
call fcn.00429e6f
add esp, 4
xor edx, edx
mov dword [ebp - 0x690], esi
mov dword [ebp - 0x694], ebx
mov word [ebp - 0x6a4], dx
cmp dword [ebp - 0x658], edi
jb 0x41c187
mov eax, dword [ebp - 0x66c]
push eax
call fcn.00429e6f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x658], esi
mov dword [ebp - 0x65c], ebx
mov word [ebp - 0x66c], cx
cmp dword [ebp - 0x674], edi
jb 0x41c1b3
mov edx, dword [ebp - 0x688]
push edx
call fcn.00429e6f
add esp, 4
mov edi, dword [ebp - 0x9cc]
xor eax, eax
mov dword [ebp - 0x674], esi
mov dword [ebp - 0x678], ebx
mov word [ebp - 0x688], ax
cmp edi, ebx
je 0x41c200
mov ebx, dword [ebp - 0x9c8]
mov esi, edi
cmp edi, ebx
je 0x41c1f7
mov edi, edi
lea ecx, [ebp - 0x9c0]
push esi
push ecx
call fcn.004020a0
add esi, 0x1c
add esp, 8
cmp esi, ebx
jne 0x41c1e0
push edi
call fcn.00429e6f
add esp, 4
lea ecx, [ebp - 0xa08]
mov byte [ebp - 4], 0
call fcn.00428480
lea ecx, [ebp - 0x9b0]
mov dword [ebp - 4], 0xffffffff
call fcn.00429500
xor eax, eax
jmp 0x41c389
mov edx, dword [ebp - 0x9b8]
lea eax, [edx + edx]
push eax
lea ecx, [ebp - 0xa08]
call fcn.004273c0
push eax
push ebx
call fcn.0051d930
add esp, 0xc
jmp 0x41c24f
mov ebx, dword [ebp - 0x9d8]
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________OUT._n
push 5
call fcn.00403750
add esp, 8
cmp dword [ebp - 0x63c], edi
jb 0x41c275
mov ecx, dword [ebp - 0x650]
push ecx
call fcn.00429e6f
add esp, 4
xor edx, edx
mov esi, 7
mov dword [ebp - 0x63c], esi
mov dword [ebp - 0x640], 0
mov word [ebp - 0x650], dx
cmp dword [ebp - 0x690], edi
jb 0x41c2aa
mov eax, dword [ebp - 0x6a4]
push eax
call fcn.00429e6f
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x690], esi
mov dword [ebp - 0x694], 0
mov word [ebp - 0x6a4], cx
cmp dword [ebp - 0x658], edi
jb 0x41c2da
mov edx, dword [ebp - 0x66c]
push edx
call fcn.00429e6f
add esp, 4
xor eax, eax
mov dword [ebp - 0x658], esi
mov dword [ebp - 0x65c], 0
mov word [ebp - 0x66c], ax
cmp dword [ebp - 0x674], edi
jb 0x41c30a
mov ecx, dword [ebp - 0x688]
push ecx
call fcn.00429e6f
add esp, 4
xor edx, edx
mov dword [ebp - 0x674], esi
mov dword [ebp - 0x678], 0
mov word [ebp - 0x688], dx
cmp dword [ebp - 0x9cc], edx
je 0x41c366
mov esi, dword [ebp - 0x9cc]
mov edi, dword [ebp - 0x9c8]
cmp esi, edi
je 0x41c35d
jmp 0x41c340
lea eax, [ebp - 0x9c0]
push esi
push eax
call fcn.004020a0
add esi, 0x1c
add esp, 8
cmp esi, edi
jne 0x41c340
mov esi, dword [ebp - 0x9cc]
push esi
call fcn.00429e6f
add esp, 4
lea ecx, [ebp - 0xa08]
mov byte [ebp - 4], 0
call fcn.00428480
lea ecx, [ebp - 0x9b0]
mov dword [ebp - 4], 0xffffffff
call fcn.00429500
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0051e701
mov esp, ebp
pop ebp
ret 0x14