Function at 0x41f7c0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x536461
mov eax, dword fs:[0]
push eax
sub esp, 0x5c0
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 + 0xc]
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
mov esi, ecx
mov ecx, dword [ebp + 0x10]
xor edi, edi
mov dword [ebp - 0x4f4], ecx
lea ecx, [ebp - 0x4f0]
mov dword [ebp - 0x500], ebx
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x4f8], edx
mov dword [ebp - 0x54c], edi
mov dword [ebp - 0x530], edi
mov dword [ebp - 0x52c], edi
mov dword [ebp - 0x534], edi
call fcn.00429620
lea ecx, [ebp - 0x5cc]
mov dword [ebp - 4], edi
call fcn.00428420
push str.CPrinterDriverInf::AddPrinterDriver__________________________IN._n
push 5
mov byte [ebp - 4], 1
call fcn.00403750
push 0x50
lea eax, [ebp - 0x59c]
push edi
push eax
mov dword [ebp - 0x524], edi
mov dword [ebp - 0x520], edi
mov dword [ebp - 0x51c], edi
mov dword [ebp - 0x518], edi
mov dword [ebp - 0x514], edi
mov dword [ebp - 0x510], edi
mov dword [ebp - 0x50c], edi
mov dword [ebp - 0x508], edi
mov dword [ebp - 0x504], edi
call fcn.0051eb70
add esp, 0x14
test ebx, ebx
je 0x4207eb
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4207eb
push str.CPrinterDriverInf::AddPrinterDriver__OK__pInstallSection._n
push 5
call fcn.00403750
add esp, 8
cmp dword [ebp - 0x4fc], edi
je 0x4207e4
mov ecx, dword [ebp - 0x4fc]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4207e4
mov edx, dword [ebp - 0x4fc]
push 0xd55
push str...CommonDeviceInf.cpp
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
call fcn.00422d90
add esp, 0xc
mov dword [ebp - 0x53c], eax
test eax, eax
jne 0x41f91e
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error._pMfgName__n
jmp 0x4207f0
push str.CPrinterDriverInf::AddPrinterDriver__OK__pcMfgName._n
push 5
call fcn.00403750
mov ecx, dword [ebp - 0x4fc]
mov edx, dword [ebp - 0x53c]
add esp, 8
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp dword [ebp - 0x4f4], 0
je 0x4207dd
mov eax, dword [ebp - 0x4f4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4207dd
mov ecx, dword [ebp - 0x4f4]
push 0xd62
push str...CommonDeviceInf.cpp
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [eax + eax + 2]
push edx
call fcn.00422d90
add esp, 0xc
mov dword [ebp - 0x538], eax
test eax, eax
jne 0x41f99b
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error._pModelName__n
jmp 0x4207f0
push str.CPrinterDriverInf::AddPrinterDriver__OK__pcModelName._n
push 5
call fcn.00403750
mov eax, dword [ebp - 0x4f4]
mov ecx, dword [ebp - 0x538]
add esp, 8
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp dword [ebp - 0x4f8], 0
je 0x41fa33
mov edx, dword [ebp - 0x4f8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41fa33
mov eax, dword [ebp - 0x4f8]
push 0xd6c
push str...CommonDeviceInf.cpp
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [eax + eax + 2]
push ecx
call fcn.00422d90
add esp, 0xc
mov dword [ebp - 0x534], eax
test eax, eax
jne 0x41fa10
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error._pHardwareID__n
jmp 0x4207f0
push str.CPrinterDriverInf::AddPrinterDriver__OK__pcHardwareID._n
push 5
call fcn.00403750
mov edx, dword [ebp - 0x4f8]
mov eax, dword [ebp - 0x534]
add esp, 8
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.CPrinterDriverInf::GetPrinterDriverDirectory._n
push 5
call fcn.00403750
add esp, 8
cmp dword [esi + 0xd4], 1
mov dword [ebp - 0x530], 0
jne 0x41fa71
lea ecx, [ebp - 0x530]
push ecx
push 0x20a
lea edx, [ebp - 0x21c]
push edx
push 1
push str.Windows_4.0
jmp 0x41fa88
lea eax, [ebp - 0x530]
push eax
push 0x20a
lea ecx, [ebp - 0x21c]
push ecx
push 1
push 0
push 0
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
lea edx, [ebp - 0x21c]
push 0x5c
push edx
call fcn.0051edd8
add esp, 8
test eax, eax
je 0x41fabd
cmp word [eax + 2], 0
je 0x41fabd
push 0x5457b4
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push str.CPrinterDriverInf::GetPrinterDriverDirectory_success._n
push 5
call fcn.00403750
mov eax, dword [ebp - 0x538]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pName___1_s__n
push 5
mov dword [ebp - 0x598], eax
call fcn.00403750
add esp, 0x14
cmp dword [esi + 0xd4], 1
mov eax, str.Windows_4.0
jne 0x41fafc
mov dword [ebp - 0x520], eax
push eax
jmp 0x41fb13
cmp dword [ebp - 0x4ec], 0
jne 0x41fb0a
mov eax, str.Windows_NT_x86
mov ecx, eax
mov dword [ebp - 0x520], eax
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pEnvironment___1_s__n
push 5
mov dword [ebp - 0x594], eax
call fcn.00403750
add esp, 0xc
push 0x549a80
push str.DataSection
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
push eax
push str.CPrinterDriverInf::AddPrinterDriver_pDataSection___1_s__n
push 5
mov dword [ebp - 0x4fc], eax
call fcn.00403750
mov edx, dword [ebp - 0x4fc]
add esp, 0xc
push ebx
push str.DataFile
push edx
push str.DataFile
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValueEx_wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const__
mov dword [ebp - 0x4f4], eax
test eax, eax
je 0x4206da
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4206da
mov eax, dword [ebp - 0x4f4]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDataFile___1_s__n
push 5
mov dword [ebp - 0x518], eax
mov dword [ebp - 0x58c], eax
call fcn.00403750
mov ecx, dword [ebp - 0x4fc]
add esp, 0xc
push ebx
push str.DriverFile
push ecx
push str.DriverFile
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValueEx_wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const__
mov dword [ebp - 0x4f4], eax
test eax, eax
je 0x4206d3
mov edx, eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4206d3
mov eax, dword [ebp - 0x4f4]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDriverPath___1_s__n
push 5
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0x590], eax
call fcn.00403750
mov eax, dword [ebp - 0x4f4]
mov ecx, dword [ebp - 0x4fc]
add esp, 0xc
push eax
push str.ConfigFile
push ecx
push str.ConfigFile
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValueEx_wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const__
mov dword [ebp - 0x4f4], eax
test eax, eax
je 0x4206cc
mov edx, eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4206cc
mov eax, dword [ebp - 0x4f4]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pConfigFile___1_s__n
push 5
mov dword [ebp - 0x514], eax
mov dword [ebp - 0x588], eax
call fcn.00403750
mov eax, dword [ebp - 0x4fc]
add esp, 0xc
push 0x55738c
push str.DefaultDataType
push eax
push str.DefaultDataType
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValueEx_wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const__
mov dword [ebp - 0x4f4], eax
test eax, eax
je 0x4206c5
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4206c5
mov edx, dword [ebp - 0x4f4]
push 0x55738c
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x41fcca
mov eax, dword [ebp - 0x4f4]
push 0x5450a0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, dword [ebp - 0x4f4]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDefaultDataType___1_s__n
push 5
mov dword [ebp - 0x504], eax
mov dword [ebp - 0x578], eax
call fcn.00403750
mov ecx, dword [ebp - 0x578]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6.pDefaultDataType___1_s__n
push 5
call fcn.00403750
mov edx, dword [ebp - 0x4fc]
add esp, 0x18
push 0x549a80
push str.HelpFile
push edx
push str.HelpFile
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValueEx_wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const__
mov dword [ebp - 0x4f4], eax
test eax, eax
je 0x4206be
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41fd3e
mov eax, dword [ebp - 0x4f4]
jmp 0x41fd40
xor eax, eax
mov ecx, eax
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pHelpFile___1_s__n
push 5
mov dword [ebp - 0x584], eax
mov dword [ebp - 0x510], eax
call fcn.00403750
add esp, 0xc
cmp dword [ebp - 0x51c], 0
je 0x41fe18
mov edx, dword [ebp - 0x51c]
push 0x5c
push edx
call fcn.0051fd02
add esp, 8
test eax, eax
jne 0x41fe18
mov eax, dword [ebp - 0x51c]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xe0a
push str...CommonDeviceInf.cpp
push eax
call ebx
lea ecx, [ebp - 0x21c]
push ecx
mov dword [ebp - 0x4f8], eax
call ebx
mov ecx, dword [ebp - 0x4f8]
add ecx, eax
lea edx, [ecx + ecx + 2]
push edx
call fcn.00422d90
add esp, 0xc
mov dword [ebp - 0x4f4], eax
test eax, eax
jne 0x41fdd5
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DriverPath_F__._n_n
jmp 0x4206df
lea ecx, [ebp - 0x21c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ebx, dword [ebp - 0x51c]
mov edx, dword [ebp - 0x4f4]
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebx
call fcn.00422db0
mov eax, dword [ebp - 0x4f4]
mov ebx, dword [ebp - 0x500]
add esp, 4
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0x590], eax
cmp dword [ebp - 0x518], 0
je 0x41fed2
mov eax, dword [ebp - 0x518]
push 0x5c
push eax
call fcn.0051fd02
add esp, 8
test eax, eax
jne 0x41fed2
mov ecx, dword [ebp - 0x518]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xe19
push str...CommonDeviceInf.cpp
push ecx
call ebx
lea edx, [ebp - 0x21c]
push edx
mov dword [ebp - 0x4f8], eax
call ebx
mov ecx, dword [ebp - 0x4f8]
add ecx, eax
lea eax, [ecx + ecx + 2]
push eax
call fcn.00422d90
add esp, 0xc
mov dword [ebp - 0x4f4], eax
test eax, eax
jne 0x41fe8f
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DataFile_F__._n_n
jmp 0x4206df
lea ecx, [ebp - 0x21c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ebx, dword [ebp - 0x518]
mov edx, dword [ebp - 0x4f4]
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebx
call fcn.00422db0
mov eax, dword [ebp - 0x4f4]
mov ebx, dword [ebp - 0x500]
add esp, 4
mov dword [ebp - 0x518], eax
mov dword [ebp - 0x58c], eax
cmp dword [ebp - 0x514], 0
je 0x41ff8c
mov eax, dword [ebp - 0x514]
push 0x5c
push eax
call fcn.0051fd02
add esp, 8
test eax, eax
jne 0x41ff8c
mov ecx, dword [ebp - 0x514]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xe28
push str...CommonDeviceInf.cpp
push ecx
call ebx
lea edx, [ebp - 0x21c]
push edx
mov dword [ebp - 0x4f8], eax
call ebx
mov ecx, dword [ebp - 0x4f8]
add ecx, eax
lea eax, [ecx + ecx + 2]
push eax
call fcn.00422d90
add esp, 0xc
mov dword [ebp - 0x4f4], eax
test eax, eax
jne 0x41ff49
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__ConfigFile_F__._n_n
jmp 0x4206df
lea ecx, [ebp - 0x21c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ebx, dword [ebp - 0x514]
mov edx, dword [ebp - 0x4f4]
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebx
call fcn.00422db0
mov eax, dword [ebp - 0x4f4]
mov ebx, dword [ebp - 0x500]
add esp, 4
mov dword [ebp - 0x514], eax
mov dword [ebp - 0x588], eax
cmp dword [ebp - 0x510], 0
je 0x420046
mov eax, dword [ebp - 0x510]
push 0x5c
push eax
call fcn.0051fd02
add esp, 8
test eax, eax
jne 0x420046
mov ecx, dword [ebp - 0x510]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xe37
push str...CommonDeviceInf.cpp
push ecx
call ebx
lea edx, [ebp - 0x21c]
push edx
mov dword [ebp - 0x4f8], eax
call ebx
mov ecx, dword [ebp - 0x4f8]
add ecx, eax
lea eax, [ecx + ecx + 2]
push eax
call fcn.00422d90
add esp, 0xc
mov dword [ebp - 0x4f4], eax
test eax, eax
jne 0x420003
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__HelpFile_F__._n_n
jmp 0x4206df
lea ecx, [ebp - 0x21c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ebx, dword [ebp - 0x510]
mov edx, dword [ebp - 0x4f4]
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebx
call fcn.00422db0
mov eax, dword [ebp - 0x4f4]
mov ebx, dword [ebp - 0x500]
add esp, 4
mov dword [ebp - 0x510], eax
mov dword [ebp - 0x584], eax
mov eax, dword [ebp - 0x518]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDataFile_F____1_s__n
push 5
call fcn.00403750
mov ecx, dword [ebp - 0x51c]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDriverPath_F____1_s__n
push 5
call fcn.00403750
mov edx, dword [ebp - 0x514]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pConfigFile_F____1_s__n
push 5
call fcn.00403750
mov eax, dword [ebp - 0x510]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pHelpFile_F____1_s__n
push 5
call fcn.00403750
mov ecx, dword [ebp - 0x4fc]
add esp, 0x30
push 0x549a80
push str.LanguageMonitor
push ecx
push str.LanguageMonitor
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValueEx_wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const__
mov dword [ebp - 0x4f4], eax
test eax, eax
je 0x4206b7
lea ecx, [ebp - 0x5b4]
call fcn.00428600
mov edx, dword [ebp - 0x4f4]
push 0x2c
push edx
lea ecx, [ebp - 0x5b4]
mov byte [ebp - 4], 2
call fcn.004289f0
push 0x20
lea ecx, [ebp - 0x5b4]
call fcn.00428040
mov eax, dword [ebp - 0x4f4]
push eax
call fcn.00422db0
add esp, 4
lea ecx, [ebp - 0x5b4]
call fcn.00426dd0
cmp eax, 2
jne 0x4201d3
push 0xe56
push str...CommonDeviceInf.cpp
push 0
lea ecx, [ebp - 0x5b4]
call fcn.00427000
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [eax + eax + 2]
push ecx
call fcn.00422d90
add esp, 0xc
push 0xe57
push str...CommonDeviceInf.cpp
push 1
lea ecx, [ebp - 0x5b4]
mov dword [ebp - 0x4f4], eax
call fcn.00427000
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [eax + eax + 2]
push edx
call fcn.00422d90
add esp, 0xc
cmp dword [ebp - 0x4f4], 0
mov dword [ebp - 0x52c], eax
je 0x420210
test eax, eax
je 0x420210
push 0
lea ecx, [ebp - 0x5b4]
call fcn.00427000
push eax
mov eax, dword [ebp - 0x4f4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 1
lea ecx, [ebp - 0x5b4]
call fcn.00427000
mov ecx, dword [ebp - 0x52c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, dword [ebp - 0x4f4]
mov dword [ebp - 0x508], eax
mov dword [ebp - 0x57c], eax
lea ecx, [ebp - 0x5b4]
mov byte [ebp - 4], 1
call fcn.00428610
mov edx, dword [ebp - 0x508]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pMonitorName___1_s__n
push 5
call fcn.00403750
add esp, 0xc
push 0
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_int___thiscall_CPrinterDriverInf::SetColorProfile_wchar_t_const___wchar_t_const__
test eax, eax
jne 0x420233
push str.CPrinterDriverInf::AddPrinterDriver_InstallColorProfile_failed._n_n
jmp 0x4206df
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__MonitorName_or_MonitorFile_._n_n
push 2
call fcn.00403750
add esp, 8
lea ecx, [ebp - 0x5b4]
mov byte [ebp - 4], 1
call fcn.00428610
jmp 0x4206e9
mov eax, dword [ebp - 0x510]
mov ecx, dword [ebp - 0x514]
mov edx, dword [ebp - 0x518]
push eax
mov eax, dword [ebp - 0x51c]
push ecx
push edx
push eax
push ebx
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetDependentFiles_wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const__
mov ebx, dword [ebp - 0x53c]
mov ecx, dword [esi + 0xa4]
mov edx, dword [esi + 0xa8]
push ebx
mov dword [ebp - 0x50c], eax
mov dword [ebp - 0x580], eax
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x570], ecx
mov ecx, dword [esi + 0xb4]
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6.pszMfgName___1_s__n
push 5
mov dword [ebp - 0x56c], edx
mov dword [ebp - 0x564], eax
mov dword [ebp - 0x560], ecx
mov dword [ebp - 0x55c], ebx
call fcn.00403750
add esp, 0xc
push 0x549a80
push ebx
push str.OEM_URLS
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
test eax, eax
je 0x4206b0
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6.pszOEMUrl___1_s__n
push 5
mov dword [ebp - 0x558], eax
call fcn.00403750
add esp, 0xc
push 0x549a80
push str.Provider
push str.Version
mov ecx, esi
call sym.DelDrv.exe_protected:_wchar_t____thiscall_CPrinterDriverInf::AllocAndGetValue_wchar_t_const___wchar_t_const___wchar_t_const__
xor ebx, ebx
cmp eax, ebx
je 0x4206a9
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6.pszProvider___1_s__n
push 5
mov dword [ebp - 0x550], eax
call fcn.00403750
add esp, 0xc
cmp dword [ebp - 0x4c0], ebx
je 0x4203fc
cmp dword [esi + 0xd4], ebx
jne 0x4203fc
mov eax, dword [ebp - 0x51c]
lea edx, [ebp - 0x4f8]
push edx
push eax
mov dword [ebp - 0x4f8], ebx
mov dword [ebp - 0x4f4], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x530], eax
cmp eax, ebx
je 0x4203f2
push 0xeb2
push str...CommonDeviceInf.cpp
push eax
call fcn.00422d90
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x42037d
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__pVersionInfo_._n_n
jmp 0x4206df
mov ecx, dword [ebp - 0x530]
mov edx, dword [ebp - 0x51c]
push ebx
push ecx
push 0
push edx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x4203e7
lea eax, [ebp - 0x4f4]
push eax
lea ecx, [ebp - 0x500]
push ecx
push 0x5457b4
push ebx
mov dword [ebp - 0x500], 0
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x4203e7
mov edx, dword [ebp - 0x500]
mov eax, dword [edx + 8]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_dwFileVersionMS__0x_1_08x__n
push 5
call fcn.00403750
mov ecx, dword [ebp - 0x500]
movzx edi, word [ecx + 8]
add esp, 0xc
mov dword [ebp - 0x59c], edi
push ebx
call fcn.00422db0
add esp, 4
jmp 0x420407
push str.CPrinterDriverInf::AddPrinterDriver_Driver_File_has_no_version_info._n
jmp 0x4206df
mov edi, 0x400
mov dword [ebp - 0x59c], edi
push edi
push str.CPrinterDriverInf::AddPrinterDriver_DriverVersion___1_ld__n
push 5
call fcn.00403750
mov edi, dword [ebp - 0x508]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 0xc
test edi, edi
je 0x4204e8
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4204e8
mov edx, dword [ebp - 0x520]
xor eax, eax
push edi
mov dword [ebp - 0x548], eax
mov dword [ebp - 0x544], eax
mov dword [ebp - 0x540], eax
mov eax, dword [ebp - 0x52c]
push str.CPrinterDriverInf::AddPrinterDriver_MonitorInfo2.pName____1_s___n
push 5
mov dword [ebp - 0x548], edi
mov dword [ebp - 0x544], edx
mov dword [ebp - 0x540], eax
call fcn.00403750
mov ecx, dword [ebp - 0x544]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_MonitorInfo2.pEnvironment____1_s___n
push 5
call fcn.00403750
mov edx, dword [ebp - 0x540]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_MonitorInfo2.pDLLName____1_s___n
push 5
call fcn.00403750
add esp, 0x24
cmp dword [esi + 0xd4], 0
jne 0x4204e8
lea eax, [ebp - 0x548]
push eax
push 2
push 0
call sub.WINSPOOL.DRV_AddMonitorW
test eax, eax
jne 0x4204e8
call ebx
cmp eax, 0xbbe
je 0x4204e8
call ebx
cmp eax, 0xb7
je 0x4204e8
call ebx
push eax
push str.CPrinterDriverInf::AddPrinterDriver_AddMonitor_failed._0x_1_lX___n
push 2
call fcn.00403750
add esp, 0xc
jmp 0x4206e9
mov ecx, dword [ebp - 0x534]
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6_________n
push 4
mov dword [ebp - 0x554], ecx
call fcn.00403750
mov edx, dword [ebp - 0x59c]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.cVersion__0x_1_08lX__n
push 4
call fcn.00403750
mov eax, dword [ebp - 0x598]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pName____1_s___n
push 4
call fcn.00403750
mov ecx, dword [ebp - 0x594]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pEnvironment____1_s___n
push 4
call fcn.00403750
mov edx, dword [ebp - 0x590]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pDriverPath____1_s___n
push 4
call fcn.00403750
mov eax, dword [ebp - 0x58c]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pDataFile____1_s___n
push 4
call fcn.00403750
mov ecx, dword [ebp - 0x588]
add esp, 0x44
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pConfigFile____1_s___n
push 4
call fcn.00403750
mov edx, dword [ebp - 0x584]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pHelpFile____1_s___n
push 4
call fcn.00403750
mov eax, dword [ebp - 0x580]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pDependentFiles____1_s___n
push 4
call fcn.00403750
mov ecx, dword [ebp - 0x57c]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pMonitorName____1_s___n
push 4
call fcn.00403750
mov edx, dword [ebp - 0x578]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pDefaultDataType____1_s___n
push 4
call fcn.00403750
mov eax, dword [ebp - 0x574]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pszzPreviousNames____1_s___n
push 4
call fcn.00403750
mov ecx, dword [ebp - 0x56c]
add esp, 0x48
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.ftDriverDate_H___0x_1_08lX__n
push 4
call fcn.00403750
mov edx, dword [ebp - 0x570]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.ftDriverDate_L___0x_1_08lX__n
push 4
call fcn.00403750
mov eax, dword [ebp - 0x560]
mov ecx, dword [ebp - 0x564]
push eax
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.dwlDriverVersion__0x_1_ld__n
push 4
call fcn.00403750
mov edx, dword [ebp - 0x55c]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pszMfgName____1_s___n
push 4
call fcn.00403750
mov eax, dword [ebp - 0x558]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pszOEMUrl____1_s___n
push 4
call fcn.00403750
mov ecx, dword [ebp - 0x554]
add esp, 0x40
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pszHardwareID____1_s___n
push 4
call fcn.00403750
mov edx, dword [ebp - 0x550]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pszProvider____1_s___n
push 4
call fcn.00403750
push str.CPrinterDriverInf::AddPrinterDriver_________DriverInfo6_n
push 4
call fcn.00403750
add esp, 0x20
lea eax, [ebp - 0x59c]
push eax
push 6
push 0
call sub.WINSPOOL.DRV_AddPrinterDriverW
test eax, eax
jne 0x42069d
call ebx
push eax
push str.CPrinterDriverInf::AddPrinterDriver_failed._0x_1_lX___n
push 2
call fcn.00403750
add esp, 0xc
jmp 0x4206e9
mov dword [ebp - 0x54c], 1
jmp 0x4206e9
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__Provider_._n_n
jmp 0x4206df
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__OEM_URLS_._n_n
jmp 0x4206df
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__LanguageMonitor_._n_n
jmp 0x4206df
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__HelpFile_._n_n
jmp 0x4206df
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DefaultDataType_._n_n
jmp 0x4206df
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__ConfigFile_._n_n
jmp 0x4206df
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DriverFile_._n_n
jmp 0x4206df
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DataFile_._n_n
push 2
call fcn.00403750
add esp, 8
mov ecx, dword [ebp - 0x514]
push ecx
call fcn.00422db0
mov edx, dword [ebp - 0x518]
push edx
call fcn.00422db0
mov eax, dword [ebp - 0x51c]
push eax
call fcn.00422db0
mov ecx, dword [ebp - 0x510]
push ecx
call fcn.00422db0
mov edx, dword [ebp - 0x504]
push edx
call fcn.00422db0
mov eax, dword [ebp - 0x50c]
push eax
call fcn.00422db0
mov ecx, dword [ebp - 0x508]
push ecx
call fcn.00422db0
xor esi, esi
push esi
call fcn.00422db0
mov edx, dword [ebp - 0x558]
push edx
call fcn.00422db0
mov eax, dword [ebp - 0x550]
push eax
mov dword [ebp - 0x558], esi
call fcn.00422db0
mov ecx, dword [ebp - 0x4fc]
push ecx
mov dword [ebp - 0x550], esi
call fcn.00422db0
mov edx, dword [ebp - 0x52c]
push edx
call fcn.00422db0
mov eax, dword [ebp - 0x53c]
push eax
call fcn.00422db0
mov ecx, dword [ebp - 0x538]
push ecx
call fcn.00422db0
mov edx, dword [ebp - 0x534]
push edx
call fcn.00422db0
push str.CPrinterDriverInf::AddPrinterDriver__________________________OUT._n
push 5
call fcn.00403750
add esp, 0x44
lea ecx, [ebp - 0x5cc]
mov byte [ebp - 4], 0
call fcn.00428480
lea ecx, [ebp - 0x4f0]
mov dword [ebp - 4], 0xffffffff
call fcn.00429500
mov eax, dword [ebp - 0x54c]
jmp 0x42081d
push str.CPrinterDriverInf::AddPrinterDriver_pcModelName_is_NULL_or_no_length._n
jmp 0x4207f0
push str.CPrinterDriverInf::AddPrinterDriver_pcMfgName_is_NULL_or_no_length._n
jmp 0x4207f0
push str.CPrinterDriverInf::AddPrinterDriver_pInstallSection_is_NULL_or_no_length._n
push 2
call fcn.00403750
add esp, 8
lea ecx, [ebp - 0x5cc]
mov byte [ebp - 4], 0
call fcn.00428480
lea ecx, [ebp - 0x4f0]
mov dword [ebp - 4], 0xffffffff
call fcn.00429500
xor eax, eax
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 0x10