Function at 0x439390
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x558e91
mov eax, dword fs:[0]
push eax
sub esp, 0x5a0
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 + 0x10]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov esi, ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x500], eax
xor eax, eax
mov dword [ebp - 0x4d4], ecx
lea ecx, [ebp - 0x4d0]
mov dword [ebp - 0x524], eax
mov dword [ebp - 0x508], eax
mov dword [ebp - 0x50c], eax
mov dword [ebp - 0x510], eax
call fcn.004489d0
lea ecx, [ebp - 0x5ac]
mov dword [ebp - 4], 0
call fcn.004477d0
push str.CPrinterDriverInf::AddPrinterDriver__________________________IN._n
push 5
mov byte [ebp - 4], 1
call fcn.00403ab0
xor eax, eax
push 0x50
push eax
lea edx, [ebp - 0x574]
push edx
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x4f8], eax
mov dword [ebp - 0x4f4], eax
mov dword [ebp - 0x4f0], eax
mov dword [ebp - 0x4ec], eax
mov dword [ebp - 0x4e8], eax
mov dword [ebp - 0x4e4], eax
mov dword [ebp - 0x4e0], eax
mov dword [ebp - 0x4dc], eax
mov dword [ebp - 0x4d8], eax
call fcn.0053e550
add esp, 0x14
test ebx, ebx
je 0x43a411
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43a411
push str.CPrinterDriverInf::AddPrinterDriver__OK__pInstallSection._n
push 5
call fcn.00403ab0
add esp, 8
test edi, edi
je 0x43a40a
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43a40a
push 0xdbc
push str...CommonDeviceInf.cpp
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
call fcn.0043e4e0
add esp, 0xc
mov dword [ebp - 0x514], eax
test eax, eax
jne 0x4394de
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error._pMfgName__n
jmp 0x43a416
push str.CPrinterDriverInf::AddPrinterDriver__OK__pcMfgName._n
push 5
call fcn.00403ab0
mov ecx, dword [ebp - 0x514]
add esp, 8
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp dword [ebp - 0x500], 0
je 0x43a403
mov edi, dword [ebp - 0x500]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43a403
push 0xdc9
push str...CommonDeviceInf.cpp
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [eax + eax + 2]
push edx
call fcn.0043e4e0
add esp, 0xc
mov dword [ebp - 0x500], eax
test eax, eax
jne 0x43954f
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error._pModelName__n
jmp 0x43a416
push str.CPrinterDriverInf::AddPrinterDriver__OK__pcModelName._n
push 5
call fcn.00403ab0
mov eax, dword [ebp - 0x500]
add esp, 8
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edi, dword [ebp - 0x4d4]
test edi, edi
je 0x4395d0
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x4395d0
push 0xdd3
push str...CommonDeviceInf.cpp
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [eax + eax + 2]
push ecx
call fcn.0043e4e0
add esp, 0xc
mov dword [ebp - 0x510], eax
test eax, eax
jne 0x4395b3
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error._pHardwareID__n
jmp 0x43a416
push str.CPrinterDriverInf::AddPrinterDriver__OK__pcHardwareID._n
push 5
call fcn.00403ab0
mov edx, dword [ebp - 0x510]
add esp, 8
push edi
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.CPrinterDriverInf::GetPrinterDriverDirectory._n
push 5
call fcn.00403ab0
mov edi, 1
add esp, 8
mov dword [ebp - 0x508], 0
cmp dword [esi + 0xd4], edi
jne 0x439611
lea eax, [ebp - 0x508]
push eax
push 0x20a
lea ecx, [ebp - 0x21c]
push ecx
push edi
push str.Windows_4.0
jmp 0x439627
lea edx, [ebp - 0x508]
push edx
push 0x20a
lea eax, [ebp - 0x21c]
push eax
push edi
push 0
push 0
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
lea ecx, [ebp - 0x21c]
push 0x5c
push ecx
call fcn.0053dd9b
add esp, 8
test eax, eax
je 0x43965c
cmp word [eax + 2], 0
je 0x43965c
push 0x56825c
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push str.CPrinterDriverInf::GetPrinterDriverDirectory_success._n
push 5
call fcn.00403ab0
mov eax, dword [ebp - 0x500]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pName___1_s__n
push 5
mov dword [ebp - 0x4f8], eax
mov dword [ebp - 0x570], eax
call fcn.00403ab0
add esp, 0x14
mov eax, str.Windows_4.0
cmp dword [esi + 0xd4], edi
je 0x4396a5
cmp dword [ebp - 0x4cc], 0
jne 0x4396a5
mov eax, str.Windows_NT_x86
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pEnvironment___1_s__n
push 5
mov dword [ebp - 0x4f4], eax
mov dword [ebp - 0x56c], eax
call fcn.00403ab0
add esp, 0xc
push 0x575a34
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__
mov edi, eax
push edi
push str.CPrinterDriverInf::AddPrinterDriver_pDataSection___1_s__n
push 5
mov dword [ebp - 0x504], edi
call fcn.00403ab0
add esp, 0xc
push ebx
push str.DataFile
push edi
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 edi, eax
test edi, edi
je 0x43a2ca
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43a2ca
push edi
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDataFile___1_s__n
push 5
mov dword [ebp - 0x4ec], edi
mov dword [ebp - 0x564], edi
call fcn.00403ab0
mov eax, dword [ebp - 0x504]
add esp, 0xc
push ebx
push str.DriverFile
push eax
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 edi, eax
test edi, edi
je 0x43a2c3
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43a2c3
push edi
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDriverPath___1_s__n
push 5
mov dword [ebp - 0x4f0], edi
mov dword [ebp - 0x568], edi
call fcn.00403ab0
mov ecx, dword [ebp - 0x4f0]
mov edx, dword [ebp - 0x504]
add esp, 0xc
push ecx
push str.ConfigFile
push edx
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 edi, eax
test edi, edi
je 0x43a2bc
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43a2bc
push edi
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pConfigFile___1_s__n
push 5
mov dword [ebp - 0x4e8], edi
mov dword [ebp - 0x560], edi
call fcn.00403ab0
mov eax, dword [ebp - 0x504]
add esp, 0xc
push 0x5835e4
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 edi, eax
test edi, edi
je 0x43a2b5
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x43a2b5
push 0x5835e4
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x439839
cmp dword [ebp - 0x4cc], eax
mov eax, 0x57e2a8
jne 0x439831
mov eax, 0x568928
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push edi
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDefaultDataType___1_s__n
push 5
mov dword [ebp - 0x4d8], edi
mov dword [ebp - 0x550], edi
call fcn.00403ab0
mov ecx, dword [ebp - 0x550]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6.pDefaultDataType___1_s__n
push 5
call fcn.00403ab0
mov edx, dword [ebp - 0x504]
add esp, 0x18
push 0x575a34
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 edi, eax
test edi, edi
je 0x43a2ae
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x43989d
xor edi, edi
push edi
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pHelpFile___1_s__n
push 5
mov dword [ebp - 0x55c], edi
mov dword [ebp - 0x4e4], edi
call fcn.00403ab0
mov eax, dword [ebp - 0x4f0]
add esp, 0xc
test eax, eax
je 0x43995e
push 0x5c
push eax
call fcn.0053fa2a
add esp, 8
test eax, eax
jne 0x43995e
mov eax, dword [ebp - 0x4f0]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xe73
push str...CommonDeviceInf.cpp
push eax
call edi
lea ecx, [ebp - 0x21c]
push ecx
mov dword [ebp - 0x4d4], eax
call edi
mov ecx, dword [ebp - 0x4d4]
add ecx, eax
lea edx, [ecx + ecx + 2]
push edx
call fcn.0043e4e0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x439927
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DriverPath_F__._n_n
jmp 0x43a2cf
lea eax, [ebp - 0x21c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ecx, dword [ebp - 0x4f0]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov edx, dword [ebp - 0x4f0]
push edx
call fcn.0043e500
add esp, 4
mov dword [ebp - 0x4f0], edi
mov dword [ebp - 0x568], edi
mov eax, dword [ebp - 0x4ec]
test eax, eax
je 0x439a03
push 0x5c
push eax
call fcn.0053fa2a
add esp, 8
test eax, eax
jne 0x439a03
mov eax, dword [ebp - 0x4ec]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xe82
push str...CommonDeviceInf.cpp
push eax
call edi
lea ecx, [ebp - 0x21c]
push ecx
mov dword [ebp - 0x4d4], eax
call edi
mov ecx, dword [ebp - 0x4d4]
add ecx, eax
lea edx, [ecx + ecx + 2]
push edx
call fcn.0043e4e0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x4399cc
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DataFile_F__._n_n
jmp 0x43a2cf
lea eax, [ebp - 0x21c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ecx, dword [ebp - 0x4ec]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov edx, dword [ebp - 0x4ec]
push edx
call fcn.0043e500
add esp, 4
mov dword [ebp - 0x4ec], edi
mov dword [ebp - 0x564], edi
mov eax, dword [ebp - 0x4e8]
test eax, eax
je 0x439aa8
push 0x5c
push eax
call fcn.0053fa2a
add esp, 8
test eax, eax
jne 0x439aa8
mov eax, dword [ebp - 0x4e8]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xe91
push str...CommonDeviceInf.cpp
push eax
call edi
lea ecx, [ebp - 0x21c]
push ecx
mov dword [ebp - 0x4d4], eax
call edi
mov ecx, dword [ebp - 0x4d4]
add ecx, eax
lea edx, [ecx + ecx + 2]
push edx
call fcn.0043e4e0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x439a71
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__ConfigFile_F__._n_n
jmp 0x43a2cf
lea eax, [ebp - 0x21c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ecx, dword [ebp - 0x4e8]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov edx, dword [ebp - 0x4e8]
push edx
call fcn.0043e500
add esp, 4
mov dword [ebp - 0x4e8], edi
mov dword [ebp - 0x560], edi
mov eax, dword [ebp - 0x4e4]
test eax, eax
je 0x439b4d
push 0x5c
push eax
call fcn.0053fa2a
add esp, 8
test eax, eax
jne 0x439b4d
mov eax, dword [ebp - 0x4e4]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0xea0
push str...CommonDeviceInf.cpp
push eax
call edi
lea ecx, [ebp - 0x21c]
push ecx
mov dword [ebp - 0x4d4], eax
call edi
mov ecx, dword [ebp - 0x4d4]
add ecx, eax
lea edx, [ecx + ecx + 2]
push edx
call fcn.0043e4e0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x439b16
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__HelpFile_F__._n_n
jmp 0x43a2cf
lea eax, [ebp - 0x21c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ecx, dword [ebp - 0x4e4]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov edx, dword [ebp - 0x4e4]
push edx
call fcn.0043e500
add esp, 4
mov dword [ebp - 0x4e4], edi
mov dword [ebp - 0x55c], edi
mov eax, dword [ebp - 0x4ec]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDataFile_F____1_s__n
push 5
call fcn.00403ab0
mov ecx, dword [ebp - 0x4f0]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pDriverPath_F____1_s__n
push 5
call fcn.00403ab0
mov edx, dword [ebp - 0x4e8]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pConfigFile_F____1_s__n
push 5
call fcn.00403ab0
mov eax, dword [ebp - 0x4e4]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pHelpFile_F____1_s__n
push 5
call fcn.00403ab0
mov ecx, dword [ebp - 0x504]
add esp, 0x30
push 0x575a34
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 edi, eax
test edi, edi
je 0x43a2a7
lea ecx, [ebp - 0x594]
call fcn.004479b0
push 0x2c
push edi
lea ecx, [ebp - 0x594]
mov byte [ebp - 4], 2
call fcn.00447da0
push 0x20
lea ecx, [ebp - 0x594]
call fcn.004472b0
push edi
call fcn.0043e500
add esp, 4
lea ecx, [ebp - 0x594]
call fcn.00445fe0
cmp eax, 2
jne 0x439cad
push 0xebf
push str...CommonDeviceInf.cpp
push 0
lea ecx, [ebp - 0x594]
call fcn.00446210
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edx, [eax + eax + 2]
push edx
call fcn.0043e4e0
add esp, 0xc
push 0xec0
push str...CommonDeviceInf.cpp
push 1
lea ecx, [ebp - 0x594]
mov edi, eax
call fcn.00446210
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
push eax
call fcn.0043e4e0
add esp, 0xc
mov dword [ebp - 0x50c], eax
test edi, edi
je 0x439cea
test eax, eax
je 0x439cea
push 0
lea ecx, [ebp - 0x594]
call fcn.00446210
push eax
push edi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 1
lea ecx, [ebp - 0x594]
call fcn.00446210
mov ecx, dword [ebp - 0x50c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov dword [ebp - 0x4dc], edi
mov dword [ebp - 0x554], edi
lea ecx, [ebp - 0x594]
mov byte [ebp - 4], 1
call fcn.004479c0
mov edx, dword [ebp - 0x4dc]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3.pMonitorName___1_s__n
push 5
call fcn.00403ab0
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 0x439d0d
push str.CPrinterDriverInf::AddPrinterDriver_InstallColorProfile_failed._n_n
jmp 0x43a2cf
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__MonitorName_or_MonitorFile_._n_n
push 2
call fcn.00403ab0
add esp, 8
lea ecx, [ebp - 0x594]
mov byte [ebp - 4], 1
call fcn.004479c0
jmp 0x43a2d9
mov eax, dword [ebp - 0x4e4]
mov ecx, dword [ebp - 0x4e8]
mov edx, dword [ebp - 0x4ec]
push eax
mov eax, dword [ebp - 0x4f0]
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 edi, dword [ebp - 0x514]
mov ecx, dword [esi + 0xa4]
mov edx, dword [esi + 0xa8]
push edi
mov dword [ebp - 0x4e0], eax
mov dword [ebp - 0x558], eax
mov eax, dword [esi + 0xb0]
mov dword [ebp - 0x548], ecx
mov ecx, dword [esi + 0xb4]
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6.pszMfgName___1_s__n
push 5
mov dword [ebp - 0x544], edx
mov dword [ebp - 0x53c], eax
mov dword [ebp - 0x538], ecx
mov dword [ebp - 0x534], edi
call fcn.00403ab0
add esp, 0xc
push 0x575a34
push edi
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 0x43a2a0
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6.pszOEMUrl___1_s__n
push 5
mov dword [ebp - 0x530], eax
call fcn.00403ab0
add esp, 0xc
push 0x575a34
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 0x43a299
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6.pszProvider___1_s__n
push 5
mov dword [ebp - 0x528], eax
call fcn.00403ab0
add esp, 0xc
cmp dword [ebp - 0x4a0], ebx
je 0x439edb
cmp dword [esi + 0xd4], ebx
jne 0x439edb
mov eax, dword [ebp - 0x4f0]
lea edx, [ebp - 0x578]
push edx
push eax
mov dword [ebp - 0x578], ebx
mov dword [ebp - 0x57c], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x508], eax
cmp eax, ebx
je 0x439ed1
push 0xf1d
push str...CommonDeviceInf.cpp
push eax
call fcn.0043e4e0
mov edi, eax
add esp, 0xc
cmp edi, ebx
jne 0x439e57
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__pVersionInfo_._n_n
jmp 0x43a2cf
mov ecx, dword [ebp - 0x508]
mov edx, dword [ebp - 0x4f0]
push edi
push ecx
push ebx
push edx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x439ec6
lea eax, [ebp - 0x57c]
push eax
lea ecx, [ebp - 0x4d4]
push ecx
push 0x56825c
push edi
mov dword [ebp - 0x4d4], ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x439ec6
mov edx, dword [ebp - 0x4d4]
mov eax, dword [edx + 8]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_dwFileVersionMS__0x_1_08x__n
push 5
call fcn.00403ab0
mov eax, dword [ebp - 0x4d4]
movzx ecx, word [eax + 8]
mov dword [ebp - 0x4fc], ecx
movzx edx, word [eax + 8]
add esp, 0xc
mov dword [ebp - 0x574], edx
push edi
call fcn.0043e500
add esp, 4
jmp 0x439eec
push str.CPrinterDriverInf::AddPrinterDriver_Driver_File_has_no_version_info._n
jmp 0x43a2cf
mov eax, 0x400
mov dword [ebp - 0x4fc], eax
mov dword [ebp - 0x574], eax
mov eax, dword [ebp - 0x4fc]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_DriverVersion___1_ld__n
push 5
call fcn.00403ab0
mov eax, dword [ebp - 0x4dc]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
add esp, 0xc
cmp eax, ebx
je 0x439fd7
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x439fd7
mov ecx, dword [ebp - 0x4f4]
mov edx, dword [ebp - 0x50c]
xor eax, eax
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x51c], eax
mov dword [ebp - 0x518], eax
mov eax, dword [ebp - 0x4dc]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_MonitorInfo2.pName____1_s___n
push 5
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x51c], ecx
mov dword [ebp - 0x518], edx
call fcn.00403ab0
mov eax, dword [ebp - 0x51c]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_MonitorInfo2.pEnvironment____1_s___n
push 5
call fcn.00403ab0
mov ecx, dword [ebp - 0x518]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_MonitorInfo2.pDLLName____1_s___n
push 5
call fcn.00403ab0
add esp, 0x24
cmp dword [esi + 0xd4], ebx
jne 0x439fd7
lea edx, [ebp - 0x520]
push edx
push 2
push ebx
call sub.WINSPOOL.DRV_AddMonitorW
test eax, eax
jne 0x439fd7
call edi
cmp eax, 0xbbe
je 0x439fd7
call edi
cmp eax, 0xb7
je 0x439fd7
call edi
push eax
push str.CPrinterDriverInf::AddPrinterDriver_AddMonitor_failed._0x_1_lX___n
push 2
call fcn.00403ab0
add esp, 0xc
jmp 0x43a2d9
mov eax, dword [ebp - 0x510]
mov dword [ebp - 0x52c], eax
cmp dword [ebp - 0x46c], ebx
jne 0x43a0e5
cmp dword [ebp - 0x4b4], ebx
jne 0x43a0e5
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo3_________n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x4fc]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.cVersion__0x_1_08lX__n
push 4
call fcn.00403ab0
mov edx, dword [ebp - 0x4f8]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pName____1_s___n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x4f4]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pEnvironment____1_s___n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x4f0]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pDriverPath____1_s___n
push 4
call fcn.00403ab0
mov edx, dword [ebp - 0x4ec]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pDataFile____1_s___n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x4e8]
add esp, 0x44
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pConfigFile____1_s___n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x4e4]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pHelpFile____1_s___n
push 4
call fcn.00403ab0
mov edx, dword [ebp - 0x4e0]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pDependentFiles____1_s___n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x4dc]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pMonitorName____1_s___n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x4d8]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pDefaultDataType____1_s___n
push 4
call fcn.00403ab0
push str.CPrinterDriverInf::AddPrinterDriver_________DriverInfo3_n
push 4
call fcn.00403ab0
add esp, 0x44
lea edx, [ebp - 0x4fc]
push edx
push 3
jmp 0x43a26f
push str.CPrinterDriverInf::AddPrinterDriver_DriverInfo6_________n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x574]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.cVersion__0x_1_08lX__n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x570]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pName____1_s___n
push 4
call fcn.00403ab0
mov edx, dword [ebp - 0x56c]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pEnvironment____1_s___n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x568]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pDriverPath____1_s___n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x564]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pDataFile____1_s___n
push 4
call fcn.00403ab0
mov edx, dword [ebp - 0x560]
add esp, 0x44
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pConfigFile____1_s___n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x55c]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pHelpFile____1_s___n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x558]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pDependentFiles____1_s___n
push 4
call fcn.00403ab0
mov edx, dword [ebp - 0x554]
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pMonitorName____1_s___n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x550]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pDefaultDataType____1_s___n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x54c]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pszzPreviousNames____1_s___n
push 4
call fcn.00403ab0
mov edx, dword [ebp - 0x544]
add esp, 0x48
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.ftDriverDate_H___0x_1_08lX__n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x548]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.ftDriverDate_L___0x_1_08lX__n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x538]
mov edx, dword [ebp - 0x53c]
push ecx
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.dwlDriverVersion__0x_1_ld__n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x534]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pszMfgName____1_s___n
push 4
call fcn.00403ab0
mov ecx, dword [ebp - 0x530]
push ecx
push str.CPrinterDriverInf::AddPrinterDriver_.pszOEMUrl____1_s___n
push 4
call fcn.00403ab0
mov edx, dword [ebp - 0x52c]
add esp, 0x40
push edx
push str.CPrinterDriverInf::AddPrinterDriver_.pszHardwareID____1_s___n
push 4
call fcn.00403ab0
mov eax, dword [ebp - 0x528]
push eax
push str.CPrinterDriverInf::AddPrinterDriver_.pszProvider____1_s___n
push 4
call fcn.00403ab0
push str.CPrinterDriverInf::AddPrinterDriver_________DriverInfo6_n
push 4
call fcn.00403ab0
add esp, 0x20
lea ecx, [ebp - 0x574]
push ecx
push 6
push ebx
call sub.WINSPOOL.DRV_AddPrinterDriverW
test eax, eax
jne 0x43a28d
call edi
push eax
push str.CPrinterDriverInf::AddPrinterDriver_failed._0x_1_lX___n
push 2
call fcn.00403ab0
add esp, 0xc
jmp 0x43a2d9
mov dword [ebp - 0x524], 1
jmp 0x43a2d9
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__Provider_._n_n
jmp 0x43a2cf
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__OEM_URLS_._n_n
jmp 0x43a2cf
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__LanguageMonitor_._n_n
jmp 0x43a2cf
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__HelpFile_._n_n
jmp 0x43a2cf
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DefaultDataType_._n_n
jmp 0x43a2cf
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__ConfigFile_._n_n
jmp 0x43a2cf
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DriverFile_._n_n
jmp 0x43a2cf
push str.CPrinterDriverInf::AddPrinterDriver_Memory_allocation_error__DataFile_._n_n
push 2
call fcn.00403ab0
add esp, 8
mov edx, dword [ebp - 0x4e8]
push edx
call fcn.0043e500
mov eax, dword [ebp - 0x4ec]
xor esi, esi
push eax
mov dword [ebp - 0x4e8], esi
call fcn.0043e500
mov ecx, dword [ebp - 0x4f0]
push ecx
mov dword [ebp - 0x4ec], esi
call fcn.0043e500
mov edx, dword [ebp - 0x4e4]
push edx
mov dword [ebp - 0x4f0], esi
call fcn.0043e500
mov eax, dword [ebp - 0x4d8]
push eax
mov dword [ebp - 0x4e4], esi
call fcn.0043e500
mov ecx, dword [ebp - 0x4e0]
push ecx
mov dword [ebp - 0x4d8], esi
call fcn.0043e500
mov edx, dword [ebp - 0x4dc]
push edx
mov dword [ebp - 0x4e0], esi
call fcn.0043e500
mov eax, dword [ebp - 0x4e0]
push eax
mov dword [ebp - 0x4dc], esi
call fcn.0043e500
mov ecx, dword [ebp - 0x530]
push ecx
mov dword [ebp - 0x4e0], esi
call fcn.0043e500
mov edx, dword [ebp - 0x528]
push edx
mov dword [ebp - 0x530], esi
call fcn.0043e500
mov eax, dword [ebp - 0x504]
push eax
mov dword [ebp - 0x528], esi
call fcn.0043e500
mov ecx, dword [ebp - 0x50c]
push ecx
call fcn.0043e500
mov edx, dword [ebp - 0x514]
push edx
call fcn.0043e500
mov eax, dword [ebp - 0x500]
push eax
call fcn.0043e500
mov ecx, dword [ebp - 0x510]
push ecx
call fcn.0043e500
push str.CPrinterDriverInf::AddPrinterDriver__________________________OUT._n
push 5
call fcn.00403ab0
add esp, 0x44
lea ecx, [ebp - 0x5ac]
mov byte [ebp - 4], 0
call fcn.00447830
lea ecx, [ebp - 0x4d0]
mov dword [ebp - 4], 0xffffffff
call fcn.004488b0
mov eax, dword [ebp - 0x524]
jmp 0x43a443
push str.CPrinterDriverInf::AddPrinterDriver_pcModelName_is_NULL_or_no_length._n
jmp 0x43a416
push str.CPrinterDriverInf::AddPrinterDriver_pcMfgName_is_NULL_or_no_length._n
jmp 0x43a416
push str.CPrinterDriverInf::AddPrinterDriver_pInstallSection_is_NULL_or_no_length._n
push 2
call fcn.00403ab0
add esp, 8
lea ecx, [ebp - 0x5ac]
mov byte [ebp - 4], 0
call fcn.00447830
lea ecx, [ebp - 0x4d0]
mov dword [ebp - 4], 0xffffffff
call fcn.004488b0
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.0053e1ad
mov esp, ebp
pop ebp
ret 0x10