Function at 0x41bf50
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x548d8e
mov eax, dword fs:[0]
push eax
sub esp, 0x9fc
mov eax, dword [0x5c5b9c]
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.0043af70
lea ecx, [ebp - 0xa08]
mov dword [ebp - 4], ebx
call fcn.0043a090
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 0x41c071
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Getting_the_directory_of_66000_is_failed._n
push 2
call fcn.00411380
add esp, 8
jmp 0x41c86f
push 0x105
lea edx, [ebp - 0x634]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x41c09b
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Getting_the_directory_of_66002_is_failed._n
push 2
call fcn.00411380
add esp, 8
jmp 0x41c86f
lea eax, [ebp - 0x21c]
push eax
push str.CPrinterDriverInf::AllocAndGetDependentFiles_66000____1_s__._n
push 5
call fcn.00411380
lea ecx, [ebp - 0x634]
push ecx
push str.CPrinterDriverInf::AllocAndGetDependentFiles_66002____1_s__._n
push 5
call fcn.00411380
lea edx, [ebp - 0x21c]
push 0x5c
push edx
call fcn.0053193f
add esp, 0x20
cmp eax, ebx
je 0x41c0ee
cmp word [eax + 2], bx
je 0x41c0ee
push 0x55a33c
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
cmp esi, ebx
je 0x41c17c
push 0x5c
push esi
call fcn.00530319
add esp, 8
test eax, eax
jne 0x41c155
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c110
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x688]
call fcn.004026d0
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c137
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x688]
call fcn.00405db0
jmp 0x41c17c
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c160
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x688]
call fcn.004026d0
cmp edi, ebx
je 0x41c20c
push 0x5c
push edi
call fcn.00530319
add esp, 8
test eax, eax
jne 0x41c1e5
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c1a0
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x21c]
push edx
lea ecx, [ebp - 0x66c]
call fcn.004026d0
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c1c7
sub eax, edx
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x66c]
call fcn.00405db0
jmp 0x41c20c
mov eax, edi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c1f0
sub eax, edx
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x66c]
call fcn.004026d0
mov esi, dword [ebp - 0x9bc]
cmp esi, ebx
je 0x41c29f
push 0x5c
push esi
call fcn.00530319
add esp, 8
test eax, eax
jne 0x41c27e
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c232
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.004026d0
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c260
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x6a4]
call fcn.00405db0
jmp 0x41c29f
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c283
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x6a4]
call fcn.004026d0
mov esi, dword [ebp - 0x9d4]
cmp esi, ebx
je 0x41c32f
push 0x5c
push esi
call fcn.00530319
add esp, 8
test eax, eax
jne 0x41c30e
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c2c5
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x650]
call fcn.004026d0
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c2f0
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x650]
call fcn.00405db0
jmp 0x41c32f
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x41c313
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x650]
call fcn.004026d0
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________IN._n
push 5
call fcn.00411380
add esp, 8
cmp dword [ebp - 0x980], ebx
je 0x41c6dc
mov edx, dword [ebp - 0x9b4]
cmp dword [edx + 0xd4], 1
je 0x41c6dc
lea ecx, [ebp - 0x9f0]
mov dword [ebp - 0x9bc], ebx
call fcn.0043a1a0
mov eax, dword [ebp - 0x9d0]
mov edi, dword [ebp - 0x9b4]
push 0x5629d0
push str.CopyFiles
push eax
mov ecx, edi
mov byte [ebp - 4], 7
call sym.Setup.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
mov esi, eax
cmp esi, ebx
jne 0x41c3b9
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Memory_allocation_error__CopyFiles_._n
push 2
call fcn.00411380
add esp, 8
lea ecx, [ebp - 0x9f0]
mov byte [ebp - 4], 6
call fcn.0043a1b0
jmp 0x41c86f
push 0x2c
push esi
lea ecx, [ebp - 0x9f0]
call fcn.0043a510
push esi
call fcn.0042d8e0
add esp, 4
push 0x20
lea ecx, [ebp - 0x9f0]
call fcn.00439de0
push 0x5629d0
push str.DefaultDestDir
push str.DestinationDirs
mov ecx, edi
call sym.Setup.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
mov esi, eax
cmp esi, ebx
je 0x41c41c
push esi
call fcn.00532dbb
add esp, 4
cmp eax, 0x101d0
jne 0x41c413
mov dword [ebp - 0x9bc], 1
push esi
call fcn.0042d8e0
add esp, 4
lea ecx, [ebp - 0x9f0]
xor ebx, ebx
call fcn.00438c50
lea edi, [ebx + 8]
test eax, eax
je 0x41c599
push ebx
lea ecx, [ebp - 0x9f0]
call fcn.00438e80
mov esi, eax
test esi, esi
je 0x41c585
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41c585
mov ecx, 0x40
cmp cx, word [esi]
jne 0x41c50d
add esi, 2
cmp word [esi], 0
je 0x41c585
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 0x41c4af
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x6c0]
call fcn.004066b0
push esi
lea ecx, [ebp - 0x6c0]
call fcn.004066e0
mov eax, dword [ebp - 0x6c0]
cmp dword [ebp - 0x6ac], edi
jae 0x41c4cf
lea eax, [ebp - 0x6c0]
push eax
lea ecx, [ebp - 0x6dc]
call fcn.00402990
lea ecx, [ebp - 0x6dc]
push ecx
lea ecx, [ebp - 0x9cc]
mov byte [ebp - 4], 9
call 0x409ab0
lea ecx, [ebp - 0x6dc]
call fcn.004021b0
lea ecx, [ebp - 0x6c0]
mov byte [ebp - 4], 7
call fcn.004021b0
jmp 0x41c585
mov ecx, dword [ebp - 0x9b4]
push 0x5629d0
push esi
push str.DestinationDirs
call sym.Setup.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
mov edi, eax
test edi, edi
je 0x41c580
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41c554
push edi
call fcn.00532dbb
add esp, 4
cmp eax, 0x101d0
jne 0x41c577
lea edx, [ebp - 0x9cc]
push edx
lea eax, [ebp - 0x21c]
push eax
jmp 0x41c56b
cmp dword [ebp - 0x9bc], 0
je 0x41c577
lea ecx, [ebp - 0x9cc]
push ecx
lea edx, [ebp - 0x21c]
push edx
mov ecx, dword [ebp - 0x9b4]
push esi
call sym.Setup.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.0042d8e0
add esp, 4
mov edi, 8
lea ecx, [ebp - 0x9f0]
inc ebx
call fcn.00438c50
cmp ebx, eax
jb 0x41c434
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Dependent_Files________n
push 5
call fcn.00411380
mov esi, dword [ebp - 0x9cc]
mov ebx, dword [ebp - 0x9c8]
add esp, 8
cmp esi, ebx
je 0x41c6b9
lea esp, [esp]
cmp dword [esi + 0x14], edi
jb 0x41c5c9
mov eax, dword [esi]
jmp 0x41c5cb
mov eax, esi
mov ecx, dword [ebp - 0x688]
cmp dword [ebp - 0x674], edi
jae 0x41c5df
lea ecx, [ebp - 0x688]
push eax
push ecx
call fcn.00531ea5
add esp, 8
test eax, eax
je 0x41c6ae
cmp dword [esi + 0x14], edi
jb 0x41c5fa
mov eax, dword [esi]
jmp 0x41c5fc
mov eax, esi
mov ecx, dword [ebp - 0x66c]
cmp dword [ebp - 0x658], edi
jae 0x41c610
lea ecx, [ebp - 0x66c]
push eax
push ecx
call fcn.00531ea5
add esp, 8
test eax, eax
je 0x41c6ae
cmp dword [esi + 0x14], edi
jb 0x41c62b
mov eax, dword [esi]
jmp 0x41c62d
mov eax, esi
mov ecx, dword [ebp - 0x6a4]
cmp dword [ebp - 0x690], edi
jae 0x41c641
lea ecx, [ebp - 0x6a4]
push eax
push ecx
call fcn.00531ea5
add esp, 8
test eax, eax
je 0x41c6ae
cmp dword [esi + 0x14], edi
jb 0x41c658
mov eax, dword [esi]
jmp 0x41c65a
mov eax, esi
mov ecx, dword [ebp - 0x650]
cmp dword [ebp - 0x63c], edi
jae 0x41c66e
lea ecx, [ebp - 0x650]
push eax
push ecx
call fcn.00531ea5
add esp, 8
test eax, eax
je 0x41c6ae
cmp dword [esi + 0x14], edi
jb 0x41c685
mov eax, dword [esi]
jmp 0x41c687
mov eax, esi
push eax
lea ecx, [ebp - 0xa08]
call fcn.0043a6e0
cmp dword [esi + 0x14], edi
jb 0x41c69c
mov eax, dword [esi]
jmp 0x41c69e
mov eax, esi
push eax
push str.CPrinterDriverInf::AllocAndGetDependentFiles__1_s__n
push 5
call fcn.00411380
add esp, 0xc
add esi, 0x1c
cmp esi, ebx
jne 0x41c5c0
push str.CPrinterDriverInf::AllocAndGetDependentFiles________Dependent_Files_n
push 5
call fcn.00411380
add esp, 8
lea ecx, [ebp - 0x9f0]
mov byte [ebp - 4], 6
call fcn.0043a1b0
jmp 0x41c827
push 0x20a
lea eax, [ebp - 0x428]
push ebx
push eax
call fcn.00531b10
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.0053193f
add esp, 8
cmp eax, ebx
je 0x41c740
cmp word [eax + 2], bx
je 0x41c740
push 0x55a33c
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.00411380
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Dependent_Files________n
push 5
call fcn.00411380
mov eax, dword [ebp - 0x9b4]
mov esi, dword [eax + 0x94]
add esp, 0x14
cmp esi, dword [eax + 0x98]
je 0x41c813
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp dword [esi + 0x14], 8
jb 0x41c78a
mov edi, dword [esi]
jmp 0x41c78c
mov edi, esi
lea eax, [ebp - 0x428]
push eax
call ebx
push eax
lea ecx, [ebp - 0x428]
push ecx
push edi
call fcn.005308f9
add esp, 0xc
test eax, eax
jne 0x41c7d0
cmp dword [esi + 0x14], 8
jb 0x41c7c0
mov edi, dword [esi]
lea edx, [ebp - 0x428]
push edx
call ebx
lea edi, [edi + eax*4]
jmp 0x41c7dc
lea edx, [ebp - 0x428]
push edx
mov edi, esi
call ebx
lea edi, [edi + eax*4]
jmp 0x41c7dc
cmp dword [esi + 0x14], 8
jb 0x41c7da
mov edi, dword [esi]
jmp 0x41c7dc
mov edi, esi
cmp word [edi], 0
je 0x41c7fe
push edi
lea ecx, [ebp - 0xa08]
call fcn.0043a6e0
push edi
push str.CPrinterDriverInf::AllocAndGetDependentFiles__1_s__n
push 5
call fcn.00411380
add esp, 0xc
mov eax, dword [ebp - 0x9b4]
add esi, 0x1c
cmp esi, dword [eax + 0x98]
jne 0x41c780
push str.CPrinterDriverInf::AllocAndGetDependentFiles________Dependent_Files_n
push 5
call fcn.00411380
add esp, 8
mov edi, 8
lea ecx, [ebp - 0xa08]
call fcn.004390b0
mov dword [ebp - 0x9b8], eax
test eax, eax
je 0x41c9b9
push 0x1167
lea ecx, [eax + eax]
push str...CommonDeviceInf.cpp
push ecx
call fcn.0042d8c0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x41c998
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Memory_allocation_error__CopyFiles_._n
push 2
call fcn.00411380
add esp, 8
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________Error_OUT._n
push 5
call fcn.00411380
mov edi, 8
add esp, 8
cmp dword [ebp - 0x63c], edi
jb 0x41c89a
mov edx, dword [ebp - 0x650]
push edx
call fcn.0043c798
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 0x41c8cb
mov ecx, dword [ebp - 0x6a4]
push ecx
call fcn.0043c798
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 0x41c8f7
mov eax, dword [ebp - 0x66c]
push eax
call fcn.0043c798
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 0x41c923
mov edx, dword [ebp - 0x688]
push edx
call fcn.0043c798
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 0x41c970
mov ebx, dword [ebp - 0x9c8]
mov esi, edi
cmp edi, ebx
je 0x41c967
mov edi, edi
lea ecx, [ebp - 0x9c0]
push esi
push ecx
call fcn.00406920
add esi, 0x1c
add esp, 8
cmp esi, ebx
jne 0x41c950
push edi
call fcn.0043c798
add esp, 4
lea ecx, [ebp - 0xa08]
mov byte [ebp - 4], 0
call fcn.0043a0f0
lea ecx, [ebp - 0x9b0]
mov dword [ebp - 4], 0xffffffff
call fcn.0043ae50
xor eax, eax
jmp 0x41caf9
mov edx, dword [ebp - 0x9b8]
lea eax, [edx + edx]
push eax
lea ecx, [ebp - 0xa08]
call fcn.004391a0
push eax
push ebx
call fcn.005310e0
add esp, 0xc
jmp 0x41c9bf
mov ebx, dword [ebp - 0x9d8]
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________OUT._n
push 5
call fcn.00411380
add esp, 8
cmp dword [ebp - 0x63c], edi
jb 0x41c9e5
mov ecx, dword [ebp - 0x650]
push ecx
call fcn.0043c798
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 0x41ca1a
mov eax, dword [ebp - 0x6a4]
push eax
call fcn.0043c798
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 0x41ca4a
mov edx, dword [ebp - 0x66c]
push edx
call fcn.0043c798
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 0x41ca7a
mov ecx, dword [ebp - 0x688]
push ecx
call fcn.0043c798
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 0x41cad6
mov esi, dword [ebp - 0x9cc]
mov edi, dword [ebp - 0x9c8]
cmp esi, edi
je 0x41cacd
jmp 0x41cab0
lea eax, [ebp - 0x9c0]
push esi
push eax
call fcn.00406920
add esi, 0x1c
add esp, 8
cmp esi, edi
jne 0x41cab0
mov esi, dword [ebp - 0x9cc]
push esi
call fcn.0043c798
add esp, 4
lea ecx, [ebp - 0xa08]
mov byte [ebp - 4], 0
call fcn.0043a0f0
lea ecx, [ebp - 0x9b0]
mov dword [ebp - 4], 0xffffffff
call fcn.0043ae50
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.00530f8d
mov esp, ebp
pop ebp
ret 0x14