Function at 0x434c50
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x558b0e
mov eax, dword fs:[0]
push eax
sub esp, 0x9dc
mov eax, dword [0x5d7b20]
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 - 0x994], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x99c], ecx
xor ebx, ebx
lea ecx, [ebp - 0x990]
mov dword [ebp - 0x9b0], eax
mov dword [ebp - 0x9b4], edx
mov dword [ebp - 0x998], ebx
mov dword [ebp - 0x9b8], ebx
call fcn.004489d0
lea ecx, [ebp - 0x9e8]
mov dword [ebp - 4], ebx
call fcn.004477d0
mov dword [ebp - 0x9ac], ebx
mov dword [ebp - 0x9a8], ebx
mov dword [ebp - 0x9a4], 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 - 0x998]
push eax
push 0x20a
lea ecx, [ebp - 0x21c]
push ecx
push 1
push ebx
push ebx
mov byte [ebp - 4], 6
mov dword [ebp - 0x998], ebx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
test eax, eax
jne 0x434d71
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Getting_the_directory_of_66000_is_failed._n
push 2
call fcn.00403ab0
add esp, 8
jmp 0x43556f
push 0x105
lea edx, [ebp - 0x634]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x434d9b
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Getting_the_directory_of_66002_is_failed._n
push 2
call fcn.00403ab0
add esp, 8
jmp 0x43556f
lea eax, [ebp - 0x21c]
push eax
push str.CPrinterDriverInf::AllocAndGetDependentFiles_66000____1_s__._n
push 5
call fcn.00403ab0
lea ecx, [ebp - 0x634]
push ecx
push str.CPrinterDriverInf::AllocAndGetDependentFiles_66002____1_s__._n
push 5
call fcn.00403ab0
lea edx, [ebp - 0x21c]
push 0x5c
push edx
call fcn.0053dd9b
add esp, 0x20
cmp eax, ebx
je 0x434dee
cmp word [eax + 2], bx
je 0x434dee
push 0x56825c
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
cmp esi, ebx
je 0x434e7c
push 0x5c
push esi
call fcn.0053fa2a
add esp, 8
test eax, eax
jne 0x434e55
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434e10
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x688]
call fcn.004021b0
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434e37
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x688]
call fcn.00402090
jmp 0x434e7c
mov eax, esi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434e60
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x688]
call fcn.004021b0
cmp edi, ebx
je 0x434f0c
push 0x5c
push edi
call fcn.0053fa2a
add esp, 8
test eax, eax
jne 0x434ee5
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434ea0
sub eax, edx
sar eax, 1
push eax
lea edx, [ebp - 0x21c]
push edx
lea ecx, [ebp - 0x66c]
call fcn.004021b0
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434ec7
sub eax, edx
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x66c]
call fcn.00402090
jmp 0x434f0c
mov eax, edi
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434ef0
sub eax, edx
sar eax, 1
push eax
push edi
lea ecx, [ebp - 0x66c]
call fcn.004021b0
mov esi, dword [ebp - 0x99c]
cmp esi, ebx
je 0x434f9f
push 0x5c
push esi
call fcn.0053fa2a
add esp, 8
test eax, eax
jne 0x434f7e
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434f32
sub eax, edx
sar eax, 1
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x6a4]
call fcn.004021b0
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434f60
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x6a4]
call fcn.00402090
jmp 0x434f9f
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434f83
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x6a4]
call fcn.004021b0
mov esi, dword [ebp - 0x9b4]
cmp esi, ebx
je 0x43502f
push 0x5c
push esi
call fcn.0053fa2a
add esp, 8
test eax, eax
jne 0x43500e
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434fc5
sub eax, edx
sar eax, 1
push eax
lea ecx, [ebp - 0x21c]
push ecx
lea ecx, [ebp - 0x650]
call fcn.004021b0
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x434ff0
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x650]
call fcn.00402090
jmp 0x43502f
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x435013
sub eax, edx
sar eax, 1
push eax
push esi
lea ecx, [ebp - 0x650]
call fcn.004021b0
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________IN._n
push 5
call fcn.00403ab0
add esp, 8
cmp dword [ebp - 0x960], ebx
je 0x4353dc
mov edx, dword [ebp - 0x994]
cmp dword [edx + 0xd4], 1
je 0x4353dc
lea ecx, [ebp - 0x9d0]
mov dword [ebp - 0x99c], ebx
call fcn.004479b0
mov eax, dword [ebp - 0x9b0]
mov edi, dword [ebp - 0x994]
push 0x575a34
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 0x4350b9
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Memory_allocation_error__CopyFiles_._n
push 2
call fcn.00403ab0
add esp, 8
lea ecx, [ebp - 0x9d0]
mov byte [ebp - 4], 6
call fcn.004479c0
jmp 0x43556f
push 0x2c
push esi
lea ecx, [ebp - 0x9d0]
call fcn.00447da0
push esi
call fcn.0043e500
add esp, 4
push 0x20
lea ecx, [ebp - 0x9d0]
call fcn.004472b0
push 0x575a34
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 0x43511c
push esi
call fcn.0053f952
add esp, 4
cmp eax, 0x101d0
jne 0x435113
mov dword [ebp - 0x99c], 1
push esi
call fcn.0043e500
add esp, 4
lea ecx, [ebp - 0x9d0]
xor ebx, ebx
call fcn.00445fe0
lea edi, [ebx + 8]
test eax, eax
je 0x435299
push ebx
lea ecx, [ebp - 0x9d0]
call fcn.00446210
mov esi, eax
test esi, esi
je 0x435285
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x435285
mov ecx, 0x40
cmp cx, word [esi]
jne 0x43520d
add esi, 2
cmp word [esi], 0
je 0x435285
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 - 0x99c], edx
je 0x4351af
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x6c0]
call fcn.00402490
push esi
lea ecx, [ebp - 0x6c0]
call fcn.004024c0
mov eax, dword [ebp - 0x6c0]
cmp dword [ebp - 0x6ac], edi
jae 0x4351cf
lea eax, [ebp - 0x6c0]
push eax
lea ecx, [ebp - 0x6dc]
call fcn.0040c650
lea ecx, [ebp - 0x6dc]
push ecx
lea ecx, [ebp - 0x9ac]
mov byte [ebp - 4], 9
call fcn.00423be0
lea ecx, [ebp - 0x6dc]
call fcn.00418450
lea ecx, [ebp - 0x6c0]
mov byte [ebp - 4], 7
call fcn.00418450
jmp 0x435285
mov ecx, dword [ebp - 0x994]
push 0x575a34
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 0x435280
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x435254
push edi
call fcn.0053f952
add esp, 4
cmp eax, 0x101d0
jne 0x435277
lea edx, [ebp - 0x9ac]
push edx
lea eax, [ebp - 0x21c]
push eax
jmp 0x43526b
cmp dword [ebp - 0x99c], 0
je 0x435277
lea ecx, [ebp - 0x9ac]
push ecx
lea edx, [ebp - 0x21c]
push edx
mov ecx, dword [ebp - 0x994]
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.0043e500
add esp, 4
mov edi, 8
lea ecx, [ebp - 0x9d0]
inc ebx
call fcn.00445fe0
cmp ebx, eax
jb 0x435134
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Dependent_Files________n
push 5
call fcn.00403ab0
mov esi, dword [ebp - 0x9ac]
mov ebx, dword [ebp - 0x9a8]
add esp, 8
cmp esi, ebx
je 0x4353b9
lea esp, [esp]
cmp dword [esi + 0x14], edi
jb 0x4352c9
mov eax, dword [esi]
jmp 0x4352cb
mov eax, esi
mov ecx, dword [ebp - 0x688]
cmp dword [ebp - 0x674], edi
jae 0x4352df
lea ecx, [ebp - 0x688]
push eax
push ecx
call fcn.0053e2bf
add esp, 8
test eax, eax
je 0x4353ae
cmp dword [esi + 0x14], edi
jb 0x4352fa
mov eax, dword [esi]
jmp 0x4352fc
mov eax, esi
mov ecx, dword [ebp - 0x66c]
cmp dword [ebp - 0x658], edi
jae 0x435310
lea ecx, [ebp - 0x66c]
push eax
push ecx
call fcn.0053e2bf
add esp, 8
test eax, eax
je 0x4353ae
cmp dword [esi + 0x14], edi
jb 0x43532b
mov eax, dword [esi]
jmp 0x43532d
mov eax, esi
mov ecx, dword [ebp - 0x6a4]
cmp dword [ebp - 0x690], edi
jae 0x435341
lea ecx, [ebp - 0x6a4]
push eax
push ecx
call fcn.0053e2bf
add esp, 8
test eax, eax
je 0x4353ae
cmp dword [esi + 0x14], edi
jb 0x435358
mov eax, dword [esi]
jmp 0x43535a
mov eax, esi
mov ecx, dword [ebp - 0x650]
cmp dword [ebp - 0x63c], edi
jae 0x43536e
lea ecx, [ebp - 0x650]
push eax
push ecx
call fcn.0053e2bf
add esp, 8
test eax, eax
je 0x4353ae
cmp dword [esi + 0x14], edi
jb 0x435385
mov eax, dword [esi]
jmp 0x435387
mov eax, esi
push eax
lea ecx, [ebp - 0x9e8]
call fcn.00448140
cmp dword [esi + 0x14], edi
jb 0x43539c
mov eax, dword [esi]
jmp 0x43539e
mov eax, esi
push eax
push str.CPrinterDriverInf::AllocAndGetDependentFiles__1_s__n
push 5
call fcn.00403ab0
add esp, 0xc
add esi, 0x1c
cmp esi, ebx
jne 0x4352c0
push str.CPrinterDriverInf::AllocAndGetDependentFiles________Dependent_Files_n
push 5
call fcn.00403ab0
add esp, 8
lea ecx, [ebp - 0x9d0]
mov byte [ebp - 4], 6
call fcn.004479c0
jmp 0x435527
push 0x20a
lea eax, [ebp - 0x428]
push ebx
push eax
call fcn.0053e550
add esp, 0xc
lea ecx, [ebp - 0x998]
push ecx
push 0x20a
lea edx, [ebp - 0x428]
push edx
push 1
push ebx
push ebx
mov dword [ebp - 0x998], ebx
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
lea eax, [ebp - 0x428]
push 0x5c
push eax
call fcn.0053dd9b
add esp, 8
cmp eax, ebx
je 0x435440
cmp word [eax + 2], bx
je 0x435440
push 0x56825c
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.00403ab0
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Dependent_Files________n
push 5
call fcn.00403ab0
mov eax, dword [ebp - 0x994]
mov esi, dword [eax + 0x94]
add esp, 0x14
cmp esi, dword [eax + 0x98]
je 0x435513
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp dword [esi + 0x14], 8
jb 0x43548a
mov edi, dword [esi]
jmp 0x43548c
mov edi, esi
lea eax, [ebp - 0x428]
push eax
call ebx
push eax
lea ecx, [ebp - 0x428]
push ecx
push edi
call fcn.0053dcfd
add esp, 0xc
test eax, eax
jne 0x4354d0
cmp dword [esi + 0x14], 8
jb 0x4354c0
mov edi, dword [esi]
lea edx, [ebp - 0x428]
push edx
call ebx
lea edi, [edi + eax*4]
jmp 0x4354dc
lea edx, [ebp - 0x428]
push edx
mov edi, esi
call ebx
lea edi, [edi + eax*4]
jmp 0x4354dc
cmp dword [esi + 0x14], 8
jb 0x4354da
mov edi, dword [esi]
jmp 0x4354dc
mov edi, esi
cmp word [edi], 0
je 0x4354fe
push edi
lea ecx, [ebp - 0x9e8]
call fcn.00448140
push edi
push str.CPrinterDriverInf::AllocAndGetDependentFiles__1_s__n
push 5
call fcn.00403ab0
add esp, 0xc
mov eax, dword [ebp - 0x994]
add esi, 0x1c
cmp esi, dword [eax + 0x98]
jne 0x435480
push str.CPrinterDriverInf::AllocAndGetDependentFiles________Dependent_Files_n
push 5
call fcn.00403ab0
add esp, 8
mov edi, 8
lea ecx, [ebp - 0x9e8]
call fcn.004464e0
mov dword [ebp - 0x998], eax
test eax, eax
je 0x4356b9
push 0x1207
lea ecx, [eax + eax]
push str...CommonDeviceInf.cpp
push ecx
call fcn.0043e4e0
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x435698
push str.CPrinterDriverInf::AllocAndGetDependentFiles_Memory_allocation_error__CopyFiles_._n
push 2
call fcn.00403ab0
add esp, 8
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________Error_OUT._n
push 5
call fcn.00403ab0
mov edi, 8
add esp, 8
cmp dword [ebp - 0x63c], edi
jb 0x43559a
mov edx, dword [ebp - 0x650]
push edx
call fcn.00449b7c
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 0x4355cb
mov ecx, dword [ebp - 0x6a4]
push ecx
call fcn.00449b7c
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 0x4355f7
mov eax, dword [ebp - 0x66c]
push eax
call fcn.00449b7c
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 0x435623
mov edx, dword [ebp - 0x688]
push edx
call fcn.00449b7c
add esp, 4
mov edi, dword [ebp - 0x9ac]
xor eax, eax
mov dword [ebp - 0x674], esi
mov dword [ebp - 0x678], ebx
mov word [ebp - 0x688], ax
cmp edi, ebx
je 0x435670
mov ebx, dword [ebp - 0x9a8]
mov esi, edi
cmp edi, ebx
je 0x435667
mov edi, edi
lea ecx, [ebp - 0x9a0]
push esi
push ecx
call fcn.00405d20
add esi, 0x1c
add esp, 8
cmp esi, ebx
jne 0x435650
push edi
call fcn.00449b7c
add esp, 4
lea ecx, [ebp - 0x9e8]
mov byte [ebp - 4], 0
call fcn.00447830
lea ecx, [ebp - 0x990]
mov dword [ebp - 4], 0xffffffff
call fcn.004488b0
xor eax, eax
jmp 0x4357f9
mov edx, dword [ebp - 0x998]
lea eax, [edx + edx]
push eax
lea ecx, [ebp - 0x9e8]
call fcn.004465d0
push eax
push ebx
call fcn.0053d4c0
add esp, 0xc
jmp 0x4356bf
mov ebx, dword [ebp - 0x9b8]
push str.CPrinterDriverInf::AllocAndGetDependentFiles__________________________OUT._n
push 5
call fcn.00403ab0
add esp, 8
cmp dword [ebp - 0x63c], edi
jb 0x4356e5
mov ecx, dword [ebp - 0x650]
push ecx
call fcn.00449b7c
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 0x43571a
mov eax, dword [ebp - 0x6a4]
push eax
call fcn.00449b7c
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 0x43574a
mov edx, dword [ebp - 0x66c]
push edx
call fcn.00449b7c
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 0x43577a
mov ecx, dword [ebp - 0x688]
push ecx
call fcn.00449b7c
add esp, 4
xor edx, edx
mov dword [ebp - 0x674], esi
mov dword [ebp - 0x678], 0
mov word [ebp - 0x688], dx
cmp dword [ebp - 0x9ac], edx
je 0x4357d6
mov esi, dword [ebp - 0x9ac]
mov edi, dword [ebp - 0x9a8]
cmp esi, edi
je 0x4357cd
jmp 0x4357b0
lea eax, [ebp - 0x9a0]
push esi
push eax
call fcn.00405d20
add esi, 0x1c
add esp, 8
cmp esi, edi
jne 0x4357b0
mov esi, dword [ebp - 0x9ac]
push esi
call fcn.00449b7c
add esp, 4
lea ecx, [ebp - 0x9e8]
mov byte [ebp - 4], 0
call fcn.00447830
lea ecx, [ebp - 0x990]
mov dword [ebp - 4], 0xffffffff
call fcn.004488b0
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.0053e1ad
mov esp, ebp
pop ebp
ret 0x14