Function at 0x414b89
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a85a1
mov eax, dword fs:[0]
push eax
mov eax, 0x3a64
call fcn.0058c7d0
mov eax, dword [0x634460]
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 ebx, ecx
mov dword [ebp - 0x3a5c], ebx
mov eax, dword [ebp + 8]
push 5
mov dword [ebp - 0x3a04], eax
pop eax
mov ecx, eax
mov esi, str.NotCopyInf
lea edi, [ebp - 0x128]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 6
pop ecx
mov esi, str.ServicePacks
lea edi, [ebp - 0x110]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, str.DirOS
lea edi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, str.TargetOS
lea edi, [ebp - 0x88]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, eax
mov esi, str.PortSelect
lea edi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 7
pop edx
mov ecx, edx
mov esi, str.DriverVerPatch
lea edi, [ebp - 0xf4]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, eax
mov esi, str.WebSupport
lea edi, [ebp - 0x74]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, eax
mov esi, str.DRIVERINFO
lea edi, [ebp - 0xd4]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, str.Strings.
lea edi, [ebp - 0x9c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 8
pop ecx
mov esi, str.RegValueStrings
lea edi, [ebp - 0xbc]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov esi, str.AddOn_Info
lea edi, [ebp - 0x5c]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
xor eax, eax
movsw word es:[edi], word [esi]
mov dword [ebp - 0x29bc], edx
mov dword [ebp - 0x29c0], ecx
mov word [ebp - 0x29d0], ax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x2a4c], edx
mov dword [ebp - 0x2a50], ecx
mov word [ebp - 0x2a60], ax
mov dword [ebp - 0x2a34], edx
mov dword [ebp - 0x2a38], ecx
mov word [ebp - 0x2a48], ax
push 2
pop eax
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a58], eax
mov byte [ebp - 4], al
call fcn.0046c48f
lea ecx, [ebp - 0x36b0]
mov byte [ebp - 4], 3
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
push 4
pop eax
lea ecx, [ebp - 0x3388]
mov dword [ebp - 0x3a54], eax
mov byte [ebp - 4], al
call fcn.00435783
push 0x5bf954
push str.CInitInfoStorage::Init
push 5
mov byte [ebp - 4], 5
call fcn.00423f75
xor edi, edi
xor eax, eax
add esp, 0xc
inc edi
cmp dword [ebx + 0x4538], eax
je 0x414d3b
push str.This_class_instance_has_been_already_initialized._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00423f75
add esp, 0xc
jmp 0x419756
mov edi, dword [ebp - 0x3a04]
test edi, edi
jne 0x414d60
push str.Parameter_pIniFile_is_invalid._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00423f75
add esp, 0xc
jmp 0x419753
cmp word [edi], ax
je 0x414d6c
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x2a48]
call fcn.00403cef
cmp dword [ebp - 0x2a34], 8
lea esi, [ebp - 0x2a48]
cmovae esi, dword [ebp - 0x2a48]
push edi
mov dword [ebp - 0x3a40], esi
call fcn.00435877
pop ecx
test eax, eax
jne 0x414e19
lea ecx, [ebp - 0x3a08]
call fcn.00460d1e
lea ecx, [ebp - 0x3a08]
mov byte [ebp - 4], 6
call fcn.00461657
test eax, eax
lea eax, [ebx + 0x90c]
mov ecx, dword [eax]
je 0x414df7
push 0xbbc
push eax
call dword [ecx + 0xc]
push str.Invalid_Privilege._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00423f75
add esp, 0x14
lea ecx, [ebp - 0x3a08]
mov byte [ebp - 4], 5
call fcn.00460d27
jmp 0x419753
push esi
push 0xbb8
push eax
call dword [ecx + 0xc]
push str.Parameter_pIniFile_is_invalid._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00423f75
add esp, 0x18
jmp 0x414de3
test esi, esi
je 0x414e7d
mov eax, dword [ebp - 0x2a38]
inc eax
push eax
push esi
call fcn.0058b10d
pop ecx
pop ecx
cmp eax, 0x104
jb 0x414e7d
push 0xb4
mov esi, 0xbba
lea eax, [ebx + 0x914]
push esi
push eax
call fcn.0040a650
mov ecx, dword [0x62f260]
add esp, 0xc
push esi
call fcn.00414206
push eax
lea ecx, [ebx + 0x910]
call fcn.0041b902
mov ecx, dword [0x62f260]
push esi
call fcn.0041423b
mov dword [ebx + 0x918], eax
jmp 0x419753
xor eax, eax
push eax
push eax
push eax
push eax
push 0x105
lea eax, [ebp - 0x2544]
push eax
push 4
pop eax
push eax
lea eax, [ebp - 0x20]
push eax
push edi
call fcn.0058bead
xor eax, eax
push eax
push eax
push eax
push eax
push 0x105
lea eax, [ebp - 0x2750]
push eax
push 4
pop eax
push eax
lea eax, [ebp - 0x18]
push eax
push esi
call fcn.0058bead
add esp, 0x48
cmp word [ebp - 0x18], 0
jne 0x414ecb
xor eax, eax
jmp 0x414ed5
lea eax, [ebp - 0x18]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x18]
lea esi, [ebx + 0x97c]
push eax
mov ecx, esi
call fcn.00403cef
cmp word [ebp - 0x2750], 0
jne 0x414ef5
xor eax, eax
jmp 0x414f02
lea eax, [ebp - 0x2750]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x2750]
push eax
mov ecx, esi
call fcn.00403b92
cmp word [ebp - 0x20], 0
jne 0x414f1c
xor eax, eax
jmp 0x414f26
lea eax, [ebp - 0x20]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x20]
lea esi, [ebx + 0x994]
push eax
mov ecx, esi
call fcn.00403cef
cmp word [ebp - 0x2544], 0
jne 0x414f46
xor eax, eax
jmp 0x414f53
lea eax, [ebp - 0x2544]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x2544]
push eax
mov ecx, esi
call fcn.00403b92
push 0
lea esi, [ebx + 4]
push esi
push edi
push 0
push str.EnableVisualStyle
push 0x5bf878
mov dword [ebp - 0x3a1c], esi
call fcn.0046f8a1
add esp, 0x18
test eax, eax
jne 0x414fb7
push 0x5c0144
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x414fa5
push 0x5c0144
call fcn.004042ad
pop ecx
test eax, eax
je 0x414fb7
push str.SetThemeAppProperties
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
xor ecx, ecx
inc ecx
push ecx
call eax
mov ecx, dword [0x62f260]
xor eax, eax
inc eax
push eax
push edi
call fcn.0041db07
test eax, eax
lea eax, [ebx + 0x90c]
je 0x414feb
mov ecx, dword [eax]
push 0x5bfcf0
push 0x5bf878
push 0xbb9
push eax
call dword [ecx + 0xc]
jmp 0x419750
push eax
push dword [ebx + 0x44e8]
mov dword [ebp - 0x39fc], eax
sub esp, 0x18
lea eax, [ebx + 0x97c]
mov ecx, esp
push eax
call fcn.00401069
push esi
push dword [ebp + 0x14]
lea ecx, [ebx + 0x338]
push dword [ebp + 0x10]
mov eax, dword [ecx]
push edi
call dword [eax + 8]
test eax, eax
je 0x419753
push 0
push 0
lea ecx, [ebx + 0x338]
call fcn.0044c4d0
test eax, eax
je 0x419753
and dword [ebp - 0x39f8], 0
push edi
push str.__FILE_INSTALLER_INI__
mov ecx, esi
call fcn.0046c5e0
push 0x20a
lea eax, [ebp - 0x2f94]
push 0
push eax
call fcn.00587a70
add esp, 0xc
lea eax, [ebp - 0x2f94]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x4150a7
lea eax, [ebp - 0x2f94]
push eax
push str.__FLD_WINDOWS__
mov ecx, esi
call fcn.0046c5e0
lea eax, [ebp - 0x2f94]
push 0x5c
push eax
call fcn.0058b1ea
pop ecx
pop ecx
mov edi, eax
push 2
pop eax
add edi, eax
jne 0x4150ac
mov edi, 0x5bf874
push 0x5bfcec
push edi
call fcn.0058b073
pop ecx
pop ecx
test eax, eax
mov ecx, 0x5bf874
cmovne ecx, edi
push ecx
push str.__NAME_WINDIR__
mov ecx, esi
call fcn.0046c5e0
push 0x20a
xor edi, edi
lea eax, [ebp - 0x2f94]
push edi
push eax
call fcn.00587a70
add esp, 0xc
lea eax, [ebp - 0x2f94]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
cmp word [ebp - 0x2f94], di
je 0x415142
push edi
push edi
push edi
push edi
push edi
push edi
push 4
pop eax
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2f94]
push eax
call fcn.0058bead
add esp, 0x24
lea eax, [ebp - 0x2f94]
push eax
push str.__FLD_SYSTEM__
mov ecx, esi
call fcn.0046c5e0
lea eax, [ebp - 0x18]
push eax
push str.__FLD_SYSTEMDRIVE__
mov ecx, esi
call fcn.0046c5e0
push 0x20a
lea eax, [ebp - 0x2f94]
push edi
push eax
call fcn.00587a70
add esp, 0xc
lea eax, [ebp - 0x39f8]
push eax
push 0x20a
lea eax, [ebp - 0x2f94]
push eax
xor eax, eax
inc eax
push eax
push edi
lea eax, [ebp - 0x2f94]
push eax
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
cmp word [ebp - 0x2f94], di
je 0x415197
lea eax, [ebp - 0x2f94]
push eax
push str.__FLD_PRINTERDRIVER__
mov ecx, esi
call fcn.0046c5e0
push 7
pop ecx
xor eax, eax
mov dword [ebp - 0x295c], ecx
mov dword [ebp - 0x2960], edi
mov word [ebp - 0x2970], ax
mov dword [ebp - 0x298c], ecx
mov dword [ebp - 0x2990], edi
mov word [ebp - 0x29a0], ax
lea eax, [ebp - 0x2970]
push eax
push edi
push edi
sub esp, 0x10
mov esi, 0x605b30
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov byte [ebp - 4], 8
movsd dword es:[edi], dword [esi]
call fcn.0044a1c6
add esp, 0x1c
test eax, eax
js 0x41520b
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__FLD_COMMON_DESKTOP__
lea ecx, [ebx + 4]
call fcn.0046c5e0
lea eax, [ebp - 0x2970]
push eax
push 0
push 0
sub esp, 0x10
mov esi, 0x605b20
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044a1c6
add esp, 0x1c
test eax, eax
js 0x415252
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__FLD_COMMON_PROGRAMS__
lea ecx, [ebx + 4]
call fcn.0046c5e0
lea eax, [ebp - 0x2970]
push eax
push 0
push 0
sub esp, 0x10
mov esi, 0x605b00
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044a1c6
add esp, 0x1c
test eax, eax
js 0x415299
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__FLD_COMMON_APPDATA__
lea ecx, [ebx + 4]
call fcn.0046c5e0
lea eax, [ebp - 0x2970]
push eax
push 0
push 0
sub esp, 0x10
mov esi, 0x605ab0
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044a1c6
add esp, 0x1c
test eax, eax
js 0x4152e0
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__FLD_PROGRAM_FILES__
lea ecx, [ebx + 4]
call fcn.0046c5e0
lea eax, [ebp - 0x29a0]
push eax
push 0
push 0
sub esp, 0x10
mov esi, 0x605a70
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0044a1c6
add esp, 0x1c
lea edi, [ebx + 4]
test eax, eax
js 0x415329
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
cmovae eax, dword [ebp - 0x29a0]
push eax
push str.__FLD_STARTUP__
mov ecx, edi
call fcn.0046c5e0
xor esi, esi
push 0
inc esi
push esi
lea ecx, [ebp - 0x29a0]
call fcn.00403a7f
push 0
push esi
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 5
call fcn.00403a7f
cmp dword [ebx + 0x44e8], 0
mov esi, 0x5c0334
mov ecx, 0x5bf818
mov eax, esi
cmove eax, ecx
push eax
push 0x5c0338
mov ecx, edi
call fcn.0046c5e0
cmp dword [ebx + 0x44e8], 0
mov eax, 0x5bf818
cmove eax, esi
push eax
push str.__EXTIF_NORMALINST__
mov ecx, edi
call fcn.0046c5e0
push 0x64
lea eax, [ebp - 0x2338]
push 0x5bfa00
push eax
call fcn.00405ae0
add esp, 0xc
lea eax, [ebp - 0x2338]
push eax
push str.__VER_PREINST__
mov ecx, edi
call fcn.0046c5e0
cmp dword [ebx + 0x44ec], 0
mov ecx, 0x5bf818
mov eax, esi
cmove eax, ecx
push eax
push str.__EXTIF_NOVSA__
mov ecx, edi
call fcn.0046c5e0
cmp dword [0x63a9fc], 0
mov ecx, 0x5bf818
mov eax, esi
cmove eax, ecx
push eax
push str.__WIN_CLIENTOS__
mov ecx, edi
call fcn.0046c5e0
mov eax, 0x5bf818
push eax
push str.__EXTIF_SELECTPORT__
mov ecx, edi
call fcn.0046c5e0
push esi
push str.__NONUSE_ADDPORTWIZARD__
mov ecx, edi
call fcn.0046c5e0
mov esi, dword [ebp - 0x3a04]
push 0
push edi
push esi
push 0xffffffffffffffff
push 0x5bfcf0
push 0x5bf878
call fcn.0046f8a1
add esp, 0x18
mov dword [ebx + 0x95c], eax
cmp eax, 0xffffffff
jne 0x415448
mov edi, dword [ebp - 0x39fc]
push 0x5bfcf0
jmp 0x419740
and dword [ebp - 0x3a10], 0
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.ProductName.Install
push 0x5bf878
call fcn.0046fbac
mov eax, dword [ebp - 0x3a10]
add esp, 0x20
inc eax
mov dword [ebp - 0x39f8], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046e2c3
test eax, eax
je 0x4154af
push dword [ebp - 0x39f8]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
jne 0x41550b
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov ecx, 0x5bef10
push ecx
push 0x5c0474
push 0x5bf878
call fcn.0046fbac
mov eax, dword [ebp - 0x3a10]
add esp, 0x20
inc eax
mov dword [ebp - 0x39f8], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046e2c3
test eax, eax
je 0x41550b
push dword [ebp - 0x39f8]
push eax
call fcn.0058b10d
pop ecx
pop ecx
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0x944]
call fcn.00403cc8
push 0
push edi
push esi
push 0xffffffffffffffff
push str.ProductType
push 0x5bf878
call fcn.0046f8a1
add esp, 0x18
mov dword [ebx + 0x978], eax
cmp eax, 0xffffffff
je 0x415553
or eax, 0x80000000
mov dword [ebx + 0x978], eax
lea ecx, [ebx + 0x338]
call fcn.0044bed3
test eax, eax
je 0x419753
lea ecx, [ebx + 0x338]
call fcn.0044b3fb
test eax, eax
je 0x419753
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.DefaultTargetDir
push 0x5bf878
call fcn.0046fbac
mov esi, dword [ebp - 0x3a10]
add esp, 0x20
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
inc esi
call fcn.0046e2c3
test eax, eax
je 0x419735
push esi
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x419735
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea esi, [ebx + 0x9c4]
push eax
mov ecx, esi
call fcn.00403cc8
cmp dword [ebx + 0x9d4], 0
je 0x41566f
cmp dword [esi + 0x14], 8
jb 0x415607
mov eax, dword [esi]
jmp 0x415609
mov eax, esi
push 0x7c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
push 2
pop ecx
cmp eax, ecx
jne 0x41566f
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
lea ecx, [ebx + 0x9dc]
push eax
call fcn.00403cc8
lea eax, [ebx + 0x9dc]
cmp esi, eax
je 0x415658
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00403c35
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
mov ecx, esi
call fcn.00403b6b
cmp dword [esi + 0x14], 8
jb 0x415677
mov esi, dword [esi]
push esi
push str.m_strDirDriverStoreCommon____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
push 0x2002
lea eax, [ebp - 0x2338]
push 0
push eax
call fcn.00587a70
mov esi, dword [ebp - 0x3a04]
add esp, 0x1c
cmp dword [ebx + 0x44e8], 0
je 0x4156d8
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.PreinstDeviceDir
push 0x5bf878
call fcn.0046fbac
add esp, 0x20
lea eax, [ebp - 0x2338]
push 0x1001
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
jne 0x415717
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.DefaultDeviceDir
push 0x5bf878
call fcn.0046fbac
add esp, 0x20
mov esi, dword [ebp - 0x3a10]
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
inc esi
call fcn.0046e2c3
test eax, eax
je 0x41972e
push esi
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x41972e
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea esi, [ebx + 0x9f4]
push eax
mov ecx, esi
call fcn.00403cc8
and dword [ebp - 0x2990], 0
xor eax, eax
mov dword [ebp - 0x298c], 7
mov word [ebp - 0x29a0], ax
push 0xffffffffffffffff
push eax
lea eax, [ebx + 0x9c4]
push eax
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 9
call fcn.00403ac5
push 0x5bef0c
call fcn.00588144
pop ecx
push eax
push 0x5bef0c
lea ecx, [ebp - 0x29a0]
call fcn.00403b92
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x29a0]
call fcn.00403ac5
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
cmovae eax, dword [ebp - 0x29a0]
push eax
push str.__DRIVERSTORE_DIR__
mov ecx, edi
call fcn.0046c5e0
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 5
call fcn.00403a7f
mov esi, dword [ebp - 0x3a04]
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.ProgramShortcutDir
push 0x5bf878
call fcn.0046fbac
add esp, 0x20
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xa14]
call fcn.00403cc8
push 0
push edi
push esi
push 0
push str.RestartOnFinish
push 0x5bf878
call fcn.0046f8a1
push 0xc
lea esi, [ebx + 0x938]
push 0
push esi
mov dword [ebx + 0x44d8], eax
call fcn.00587a70
push 0
push edi
push dword [ebp - 0x3a04]
push 0
push str.Resolution.X
push 0x5bf878
call fcn.0046f8a1
push 0
push edi
mov dword [esi], eax
mov esi, dword [ebp - 0x3a04]
push esi
push 0
push str.Resolution.Y
push 0x5bf878
call fcn.0046f8a1
add esp, 0x54
mov dword [ebx + 0x93c], eax
push 0
push edi
push esi
push 0
push str.ColorDepth
push 0x5bf878
call fcn.0046f8a1
push 0
push edi
push esi
push 0
push str.FaxVersion
push 0x5bf878
mov dword [ebx + 0x940], eax
call fcn.0046f8a1
push 0
push edi
push esi
push 0
push str.ScanVerCompType
push 0x5bf878
mov dword [ebx + 0x44dc], eax
call fcn.0046f8a1
add esp, 0x48
mov dword [ebx + 0x44e0], eax
push 0
push edi
push esi
push 0
push str.ScanPowerType
push 0x5bf878
call fcn.0046f8a1
push 0
push edi
push esi
push 0
push str.NotifySendInfoAgree
push 0x5bf878
mov dword [ebx + 0x44e4], eax
call fcn.0046f8a1
push 0
push edi
push esi
mov dword [ebx + 0x44f4], eax
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.ReplaceUpgradeFunctions
push 0x5bf878
call fcn.0046fbac
add esp, 0x50
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea ecx, [ebx + 0x44f8]
push eax
call fcn.00403cc8
lea eax, [ebx + 0x44f8]
cmp dword [eax + 0x14], 8
jb 0x41598a
mov eax, dword [eax]
push eax
push str.m_strReplaceUpgradeFunctions____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
push 0
push edi
push esi
push 0
push str.TypeTWAINDS
push 0x5bf878
call fcn.0046f8a1
push 0
mov dword [ebx + 0x4510], eax
push edi
xor eax, eax
push esi
inc eax
push eax
push str.DetectInboxDriver
push 0x5bf878
call fcn.0046f8a1
add esp, 0x40
mov dword [ebx + 0x4514], eax
push 0
push edi
xor eax, eax
push esi
inc eax
push eax
push str.DefaultPrinterOption
push 0x5bf878
call fcn.0046f8a1
push 0
mov dword [ebx + 0x4518], eax
push edi
xor eax, eax
push esi
inc eax
push eax
push str.PrinterBitmapType
push 0x5bf878
call fcn.0046f8a1
push 0
push edi
push esi
push 0
push str.InstallationBlockType
push 0x5bf878
mov dword [ebx + 0x451c], eax
call fcn.0046f8a1
add esp, 0x48
mov dword [ebx + 0x4528], eax
push 0
push edi
push esi
push 0
push str.UseDriverNameForIconName
push 0x5bf878
call fcn.0046f8a1
push 0
push edi
push esi
push 0xffffffffffffffff
push str.DriverUpgradeMode
push 0x5bf878
mov dword [ebx + 0x452c], eax
call fcn.0046f8a1
push 0
mov dword [ebx + 0x4530], eax
push edi
xor eax, eax
push esi
inc eax
push eax
lea eax, [ebp - 0x44]
push str.PortSelect
push eax
call fcn.0046f8a1
add esp, 0x48
mov dword [ebx + 0xa54], eax
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
lea eax, [ebp - 0x44]
push str.MaskName
push eax
call fcn.0046fbac
add esp, 0x20
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xa58]
call fcn.00403cc8
mov eax, dword [ebx + 0xa54]
and eax, 0xf000
cmp eax, 0x1000
je 0x415b17
cmp dword [0x63aa0c], 0
je 0x415ae7
cmp eax, 0x2000
je 0x415b17
cmp dword [0x63aa14], 0
je 0x415af7
cmp eax, 0x3000
je 0x415b17
cmp dword [0x63aa1c], 0
je 0x415b07
cmp eax, 0x4000
je 0x415b17
cmp dword [0x63aa24], 0
je 0x415b77
cmp eax, 0x5000
jne 0x415b77
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
lea eax, [ebp - 0x44]
push str.ForceUpdate
push eax
call fcn.0046fbac
add esp, 0x20
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0x8f0]
call fcn.00403cc8
push 0
push edi
push esi
push 0
lea eax, [ebp - 0x44]
push str.ForceUpdateType
push eax
call fcn.0046f8a1
add esp, 0x18
mov dword [ebx + 0x908], eax
push 0
push edi
push esi
push 0
push str.EnableWriteBack9X
push 0x5bf878
call fcn.0046f8a1
add esp, 0x18
lea ecx, [ebp - 0x29dc]
mov dword [ebx + 0x44d4], eax
call fcn.004352ce
and dword [ebp - 0x2990], 0
xor eax, eax
push eax
mov word [ebp - 0x29a0], ax
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x298c], 7
call fcn.00403cef
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.VersionFile
push 0x5bf878
mov byte [ebp - 4], 0xb
call fcn.0046fbac
add esp, 0x20
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea ecx, [ebx + 0xb04]
push eax
call fcn.00403cc8
lea eax, [ebx + 0xb04]
cmp dword [eax + 0x14], 8
jb 0x415c24
mov eax, dword [eax]
push eax
push str.m_strVersionFile____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
push ecx
push ecx
lea eax, [ebx + 0x97c]
mov ecx, esp
mov dword [ebp - 0x39f8], esp
push eax
call fcn.00401069
sub esp, 0x18
lea edx, [ebx + 0xb04]
mov ecx, esp
push edx
mov byte [ebp - 4], 0xc
call fcn.00401069
lea ecx, [ebp - 0x29dc]
mov byte [ebp - 4], 0xb
call fcn.004353bc
lea eax, [ebp - 0x29a0]
push eax
sub esp, 0x18
mov ecx, esp
push str.MPDRIVER_VER
call fcn.004010bc
lea ecx, [ebp - 0x29dc]
call fcn.004352f0
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
cmovae eax, dword [ebp - 0x29a0]
push eax
push str.__STR_MPDRIVER_VER__
mov ecx, edi
call fcn.0046c5e0
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29a0]
call fcn.00403a7f
lea ecx, [ebp - 0x29dc]
mov byte [ebp - 4], 5
call fcn.004352eb
push 0
push edi
push esi
push 0
push str.PnPWaitDetectionType
push 0x5bf878
call fcn.0046f8a1
push 0
push edi
push esi
push 0
push str.UnregisterUninstaller
push 0x5bf878
mov dword [ebx + 0x4520], eax
call fcn.0046f8a1
push 0
push edi
push esi
push 0
push str.MonolithicDriver
push 0x5bf878
mov dword [ebx + 0x4524], eax
call fcn.0046f8a1
add esp, 0x48
mov dword [ebx + 0x4534], eax
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.Version
push 0x5bf884
call fcn.0046fbac
add esp, 0x20
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea ecx, [ebx + 0xb1c]
push eax
call fcn.00403cc8
lea eax, [ebx + 0xb1c]
cmp dword [eax + 0x14], 8
jb 0x415d76
mov eax, dword [eax]
push eax
push str.m_strUninstallerVersion____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.TargetDir
push 0x5bf884
call fcn.0046fbac
add esp, 0x30
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea esi, [ebx + 0xb7c]
push eax
mov ecx, esi
call fcn.00403cc8
cmp dword [esi + 0x14], 8
jb 0x415dd6
mov eax, dword [esi]
jmp 0x415dd8
mov eax, esi
push 0x7c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
push 2
pop ecx
cmp eax, ecx
lea ecx, [ebp - 0x3a38]
jne 0x415e4e
push 0
call fcn.0046caa8
lea esi, [ebx + 0xb64]
push eax
mov ecx, esi
call fcn.00403cc8
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
mov ecx, esi
call fcn.00403b6b
xor eax, eax
inc eax
push eax
push 0
lea eax, [ebp - 0x39f8]
push eax
mov ecx, esi
mov dword [ebp - 0x39f8], 0x5c
call fcn.0041fa55
test eax, eax
jne 0x415ebc
jmp 0x415ead
call fcn.0046c815
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x415ea7
push ecx
push 0
lea eax, [ebp - 0x39f8]
push eax
mov ecx, esi
mov dword [ebp - 0x39f8], 0x7c
call fcn.0041fa55
push 0
cmp eax, 0xffffffff
je 0x415e84
lea esi, [ebx + 0xb64]
jmp 0x415eaf
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
lea esi, [ebx + 0xb64]
push eax
mov ecx, esi
call fcn.00403cc8
push 0
lea ecx, [ebx + 0xb7c]
jmp 0x415eb1
lea esi, [ebx + 0xb64]
push 0
mov ecx, esi
mov eax, 0x5bef10
push eax
call fcn.00403cef
cmp dword [esi + 0x14], 8
jb 0x415ec6
mov eax, dword [esi]
jmp 0x415ec8
mov eax, esi
push eax
push str.m_strDirUninstaller____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
lea eax, [ebx + 0xb7c]
add esp, 0x10
cmp dword [eax + 0x14], 8
jb 0x415eeb
mov eax, dword [eax]
push eax
push str.m_strUninstallerRemoveDir____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
push 0
push edi
push dword [ebp - 0x3a04]
lea eax, [ebp - 0x2338]
push 0x104
push eax
mov eax, 0x5bef10
push eax
push str.ProductGUID
push 0x5bf884
call fcn.0046fbac
add esp, 0x30
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea ecx, [ebx + 0xb4c]
push eax
call fcn.00403cc8
lea eax, [ebx + 0xb4c]
cmp dword [eax + 0x14], 8
jb 0x415f52
mov eax, dword [eax]
push eax
push str.m_strUninstallerGUID____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
push 0
push edi
push dword [ebp - 0x3a04]
lea eax, [ebp - 0x2338]
push 0x104
push eax
mov eax, 0x5bef10
push eax
push str.UpgradeUninstallExclusionFunctions
push 0x5bf884
call fcn.0046fbac
add esp, 0x30
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea ecx, [ebx + 0xb94]
push eax
call fcn.00403cc8
lea eax, [ebx + 0xb94]
cmp dword [eax + 0x14], 8
jb 0x415fb9
mov eax, dword [eax]
push eax
push str.m_strUpgUninstExclusionFunctions____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
add esp, 0x10
call fcn.00473832
mov eax, dword [eax + 4]
mov ecx, edi
cmp dword [eax + 0x460c], 0
je 0x415fe8
push 0x5c0a84
jmp 0x415fed
push 0x5c0ad0
push str.__NAME_OPT_UNINSTALLER_SILENT__
call fcn.0046c5e0
lea ecx, [ebx + 0x338]
call fcn.0044c0cc
and dword [ebp - 0x2960], 0
xor eax, eax
mov dword [ebp - 0x295c], 7
mov word [ebp - 0x2970], ax
cmp dword [esi + 0x14], 8
mov byte [ebp - 4], 0xd
jb 0x41602a
mov eax, dword [esi]
jmp 0x41602c
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
je 0x416071
push str.___FLD_SYSTEM___
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
push 0x5bef0c
lea ecx, [ebp - 0x2970]
call fcn.00403b6b
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x2970]
call fcn.00403ac5
jmp 0x41607d
push esi
lea ecx, [ebp - 0x2970]
call fcn.00407335
push 0x5bef0c
lea ecx, [ebp - 0x2970]
call fcn.00403b6b
push 0xffffffffffffffff
push 0
lea ecx, [ebx + 0xb4c]
push ecx
lea ecx, [ebp - 0x2970]
call fcn.00403ac5
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__UNINSTALLER_DIR__
mov ecx, edi
call fcn.0046c5e0
cmp dword [ebp - 0x295c], 8
push 0x1001
lea ecx, [ebp - 0x2338]
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov ecx, edi
test eax, eax
je 0x4160f9
lea eax, [ebp - 0x2338]
jmp 0x41610d
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__UNINSTALLER_SHORT_DIR__
call fcn.0046c5e0
xor esi, esi
push 0
inc esi
push esi
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 5
call fcn.00403a7f
lea ecx, [ebx + 0x338]
call fcn.0044b9e0
test eax, eax
je 0x419753
push esi
mov esi, dword [ebp - 0x3a04]
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.Diskspace
push 0x5bf878
call fcn.0046fbac
mov eax, dword [ebp - 0x3a10]
add esp, 0x20
inc eax
mov dword [ebp - 0x39f8], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046e2c3
test eax, eax
je 0x4161e4
push dword [ebp - 0x39f8]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x4161e4
and dword [ebp - 0x39f8], 0
push 0xa
lea eax, [ebp - 0x39f8]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
call fcn.0058bd3d
push eax
push str.m_nDiskspace_MB_____1_ld___n
push str.CInitInfoStorage::Init
push 5
mov dword [ebx + 0xa50], eax
call fcn.00423f75
add esp, 0x1c
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.MinMXDW
push 0x5bf878
call fcn.0046fbac
add esp, 0x20
lea ecx, [ebp - 0x2988]
call fcn.0046c48f
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0xe
call fcn.0046c48f
xor eax, eax
push eax
push eax
lea ecx, [ebp - 0x2970]
mov dword [ebp - 0x2960], eax
mov dword [ebp - 0x295c], eax
call fcn.00403a7f
push 0x2c
lea eax, [ebp - 0x2338]
push eax
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 0x10
call fcn.0046d9ee
push 0x20
lea ecx, [ebp - 0x2988]
call fcn.0046e2e7
lea ecx, [ebp - 0x2988]
call fcn.0046c815
xor ecx, ecx
inc ecx
cmp eax, ecx
jb 0x4163ba
push 0x2e
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.0046d9ee
lea ecx, [ebp - 0x29a0]
call fcn.0046c815
push 4
pop ecx
cmp eax, ecx
je 0x4162fd
mov edi, dword [ebp - 0x39fc]
push str.MinMXDW
mov eax, dword [edi]
push 0x5bf878
push 0xbb9
push edi
call dword [eax + 0xc]
add esp, 0x10
xor edi, edi
push 0
inc edi
push edi
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0xe
call fcn.0046c546
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 5
call fcn.0046c546
jmp 0x419756
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
push 0x5c0b9c
lea ecx, [ebp - 0x2970]
call fcn.00403b6b
lea ecx, [ebp - 0x2988]
call fcn.0046c815
push 2
pop ecx
cmp eax, ecx
jb 0x4163a8
xor eax, eax
push 0x2d
inc eax
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.0046d9ee
lea ecx, [ebp - 0x29a0]
call fcn.0046c815
cmp eax, 3
je 0x416396
xor eax, eax
push 0x2f
inc eax
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.0046d9ee
lea ecx, [ebp - 0x29a0]
call fcn.0046c815
cmp eax, 3
jne 0x4162ab
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
push eax
jmp 0x4163ad
push 0x5c0ba0
lea ecx, [ebp - 0x2970]
call fcn.00403b6b
jmp 0x4163ca
push str.0.0.0.0_00_00_0000
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__VAL_MIN_MXDWVER__
mov ecx, edi
call fcn.0046c5e0
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0xe
call fcn.0046c546
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 5
call fcn.0046c546
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
lea eax, [ebp - 0x2c]
push str.Common
push eax
call fcn.0046fbac
mov eax, dword [ebp - 0x3a10]
add esp, 0x20
inc eax
mov dword [ebp - 0x39f8], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046e2c3
test eax, eax
je 0x4164e3
push dword [ebp - 0x39f8]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x4164e3
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x29b8]
call fcn.004010bc
lea eax, [ebx + 0x994]
lea esi, [ebx + 0x9ac]
push eax
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.00407335
cmp dword [ebp - 0x29a4], 8
lea eax, [ebp - 0x29b8]
cmovae eax, dword [ebp - 0x29b8]
push eax
push esi
call fcn.0046f03c
pop ecx
pop ecx
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 5
call fcn.00403a7f
mov esi, dword [ebp - 0x3a04]
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
xor esi, esi
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.0046fbac
lea eax, [ebp - 0x2338]
push eax
push str.DirOS____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
add esp, 0x30
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
push esi
push esi
lea ecx, [ebp - 0x2970]
mov dword [ebp - 0x2960], esi
mov dword [ebp - 0x295c], esi
call fcn.00403a7f
xor eax, eax
inc eax
lea ecx, [ebp - 0x3388]
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x39f4], eax
mov esi, eax
call fcn.00436241
lea eax, [ebx + 0x9ac]
cmp dword [eax + 0x14], 8
jb 0x41656e
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x3388]
call fcn.00435868
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00403cc8
push 0
lea ecx, [ebp - 0x29d0]
call fcn.0041ecf1
push 0x3e
pop ecx
mov dword [ebp - 0x39f8], 0x18
cmp word [eax], cx
jne 0x416d0d
push 2
pop eax
cmp dword [ebp - 0x29c0], eax
jae 0x416606
mov edi, dword [ebp - 0x39fc]
lea ecx, [ebp - 0x2338]
mov eax, dword [edi]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
push 0xbb9
push edi
call dword [eax + 0xc]
add esp, 0x10
xor edi, edi
push 0
inc edi
push edi
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
jmp 0x419756
lea ecx, [ebp - 0x3a18]
call fcn.00405d91
push 0xffffffffffffffff
xor esi, esi
inc esi
push esi
lea eax, [ebp - 0x29b8]
push eax
lea ecx, [ebp - 0x29d0]
mov byte [ebp - 4], 0x14
call fcn.00403e81
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00401322
push 0
push esi
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
cmp dword [ebp - 0x29bc], 8
push 0
push dword [ebp + 0xc]
lea ecx, [ebp - 0x2d88]
push dword [ebp - 0x3a04]
lea eax, [ebp - 0x29d0]
cmovae eax, dword [ebp - 0x29d0]
push ecx
push eax
call fcn.0046f9cd
xor esi, esi
add esp, 0x14
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a44], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x416b34
and dword [ebp - 0x39f4], 0
push esi
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
mov esi, eax
mov dword [ebp - 0x3a20], esi
test esi, esi
je 0x416c36
xor eax, eax
cmp ax, word [esi]
je 0x416c36
push dword [ebp - 0x3a44]
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
test eax, eax
je 0x416c33
xor ecx, ecx
cmp cx, word [eax]
je 0x416c33
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00403cc8
cmp dword [ebp - 0x29bc], 8
lea eax, [ebp - 0x29d0]
cmovae eax, dword [ebp - 0x29d0]
push 0x7c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
cmp eax, 3
jb 0x416776
push 2
pop eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
mov esi, eax
push esi
push str.Condition____1_s___n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
push esi
call fcn.0041b599
add esp, 0x14
test eax, eax
jne 0x416776
push str.__Do_not_copy._n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0xc
jmp 0x416b14
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
push 2
pop ecx
cmp eax, ecx
jb 0x4167b4
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00403cc8
cmp dword [ebp - 0x29bc], 8
lea eax, [ebp - 0x29d0]
cmovae eax, dword [ebp - 0x29d0]
lea esi, [ebp - 0x29d0]
cmovae esi, dword [ebp - 0x29d0]
push 0x2c
push eax
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a50], esi
mov dword [ebp - 0x3a00], esi
call fcn.0046d9ee
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046e2e7
and dword [ebp - 0x3a08], 0
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
test eax, eax
je 0x416937
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push 0
lea ecx, [ebp - 0x3a38]
mov esi, eax
call fcn.0046cb38
push dword [ebp - 0x3a08]
inc eax
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a3c], eax
call fcn.0046caa8
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x416911
push str._none_
push esi
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x416a53
test esi, esi
je 0x416907
push 0x3c
pop eax
cmp word [esi], ax
jne 0x416907
push dword [ebp - 0x3a3c]
push esi
call fcn.0058b10d
pop ecx
pop ecx
push 0x3e
pop ecx
cmp word [esi + eax*2 - 2], cx
jne 0x416907
push esi
push str.pInboxInfo___1_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0x10
lea ecx, [ebp - 0x29b8]
call fcn.0046c48f
push 0x21
push esi
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x15
call fcn.0046d9ee
lea ecx, [ebp - 0x29b8]
call fcn.0046c815
push 2
pop ecx
cmp eax, ecx
jne 0x416bf3
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x14
call fcn.0046c546
jmp 0x416909
xor esi, esi
test esi, esi
je 0x416a43
mov esi, dword [ebp - 0x3a08]
inc esi
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a08], esi
call fcn.0046c815
cmp esi, eax
jb 0x41682f
mov esi, dword [ebp - 0x3a50]
test esi, esi
je 0x416942
xor eax, eax
cmp ax, word [esi]
jne 0x41694f
cmp dword [ebp - 0x39f4], 0
je 0x416a87
cmp dword [ebp - 0x2960], 0
je 0x416a87
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push 0x2c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046e2e7
lea ecx, [ebp - 0x3a38]
xor esi, esi
call fcn.0046c815
test eax, eax
je 0x416a87
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
lea eax, [ebp - 0x2970]
push eax
push esi
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
call fcn.00435b68
pop ecx
pop ecx
test eax, eax
je 0x416a7d
cmp dword [ebp - 0x29c0], 0
je 0x4169ed
push 0x5c0b9c
lea ecx, [ebp - 0x29d0]
call fcn.00403b6b
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x2970]
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00403ac5
lea eax, [ebp - 0x29d0]
push 0x2c
push eax
call fcn.0046c02f
cmp dword [ebp - 0x29bc], 8
pop ecx
lea eax, [ebp - 0x29d0]
cmovae eax, dword [ebp - 0x29d0]
pop ecx
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a00], eax
inc esi
call fcn.0046c815
cmp esi, eax
jb 0x4169a0
jmp 0x416a87
mov esi, 0x5bf874
mov dword [ebp - 0x3a00], esi
jmp 0x416937
xor eax, eax
inc eax
mov dword [ebp - 0x39f4], eax
mov eax, 0x5bef10
mov esi, 0x5bf874
push eax
lea ecx, [ebp - 0x29d0]
mov dword [ebp - 0x3a00], esi
call fcn.00403cc8
jmp 0x416937
mov dword [ebp - 0x3a00], 0x5bf874
push 0
lea eax, [ebp - 0x3a00]
push eax
lea eax, [ebp - 0x3a20]
push eax
lea ecx, [ebp - 0x2a30]
call fcn.00404360
push eax
lea eax, [ebp - 0x3a4c]
push eax
lea ecx, [ebx + 0xa0c]
mov byte [ebp - 4], 0x16
call fcn.00405a09
lea ecx, [ebp - 0x2a30]
mov byte [ebp - 4], 0x14
call fcn.0040723e
cmp dword [ebp - 0x39f4], 0
je 0x416b14
push dword [ebp - 0x3a20]
lea ecx, [ebp - 0x29b8]
call fcn.004010bc
lea eax, [ebp - 0x29b8]
push eax
lea eax, [ebp - 0x3a64]
push eax
lea ecx, [ebp - 0x3a18]
mov byte [ebp - 4], 0x17
call fcn.0041fc6b
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x14
call fcn.00403a7f
mov esi, dword [ebp - 0x3a44]
inc esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a44], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x416691
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00403cc8
mov eax, dword [ebx + 0xa10]
mov esi, eax
mov dword [ebp - 0x39f4], eax
mov eax, dword [ebx + 0xa0c]
mov dword [ebp - 0x3a00], esi
mov edi, dword [eax]
mov dword [ebp - 0x3a0c], edi
cmp edi, eax
je 0x416cda
lea eax, [edi + 0x10]
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00401069
cmp dword [ebp - 0x29a4], 8
push 0x18
pop eax
mov byte [ebp - 4], al
lea eax, [ebp - 0x29b8]
cmovae eax, dword [ebp - 0x29b8]
push eax
lea ecx, [ebp - 0x29a0]
call fcn.004010bc
mov esi, dword [ebp - 0x3a18]
lea eax, [ebp - 0x29a0]
push eax
lea eax, [ebp - 0x3a3c]
push eax
lea ecx, [ebp - 0x3a18]
call fcn.0041fa16
cmp esi, dword [eax]
push 0
setne bl
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x29a0]
call fcn.00403a7f
mov esi, dword [ebp - 0x3a00]
test bl, bl
je 0x416c74
dec esi
dec dword [ebp - 0x39f4]
jmp 0x416c7b
cmp dword [ebp - 0x2a4c], 8
push dword [ebp - 0x3a20]
mov edi, dword [ebp - 0x39fc]
lea ecx, [ebp - 0x2a60]
cmovae ecx, dword [ebp - 0x2a60]
mov eax, dword [edi]
push ecx
push 0xbb9
push edi
call dword [eax + 0xc]
add esp, 0x10
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x14
call fcn.0046c546
jmp 0x416c64
push esi
jmp 0x416c3b
push str._KEY_
cmp dword [ebp - 0x29bc], 8
mov edi, dword [ebp - 0x39fc]
lea ecx, [ebp - 0x29d0]
cmovae ecx, dword [ebp - 0x29d0]
mov eax, dword [edi]
push ecx
push 0xbb9
push edi
call dword [eax + 0xc]
add esp, 0x10
lea ecx, [ebp - 0x3a18]
call fcn.00406bbf
jmp 0x4165e1
cmp dword [edi + 0x38], 0
jne 0x416c81
dec esi
mov dword [ebp - 0x3a00], esi
push 0xffffffffffffffff
push 0
add edi, 0x28
push edi
lea ecx, [ebp - 0x29d0]
call fcn.00403ac5
xor ebx, ebx
push 0
inc ebx
push ebx
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x14
call fcn.00403a7f
lea ecx, [ebp - 0x3a0c]
call fcn.0042049a
push 0x2c
push ebx
lea ecx, [ebp - 0x29d0]
call fcn.0041ec8e
mov ebx, dword [ebp - 0x3a5c]
mov edi, dword [ebp - 0x3a0c]
cmp edi, dword [ebx + 0xa0c]
jne 0x416b6f
lea eax, [ebp - 0x29d0]
push 0x2c
push eax
call fcn.0046bfac
lea eax, [ebp - 0x29d0]
push 0x2c
push eax
call fcn.0046c02f
add esp, 0x10
lea ecx, [ebp - 0x3a18]
mov byte [ebp - 4], 0x13
call fcn.00406bbf
lea edi, [ebx + 4]
jmp 0x416d47
cmp dword [ebp - 0x29bc], 8
lea eax, [ebp - 0x29d0]
cmovae eax, dword [ebp - 0x29d0]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x416d47
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00403cc8
and dword [ebp - 0x39f4], 0
xor esi, esi
cmp dword [ebp - 0x29bc], 8
lea eax, [ebp - 0x29d0]
cmovae eax, dword [ebp - 0x29d0]
mov dword [ebp - 0x3a3c], eax
push 0
lea eax, [ebp - 0x3a3c]
push eax
push 0x5c0c88
lea ecx, [ebp - 0x2a30]
call fcn.004043fc
push eax
lea eax, [ebp - 0x3a18]
lea ecx, [ebx + 0xa0c]
push eax
mov byte [ebp - 4], 0x19
call fcn.00405a09
lea ecx, [ebp - 0x2a30]
mov byte [ebp - 4], 0x13
call fcn.0040723e
mov edx, dword [ebp - 0x39f4]
xor ecx, ecx
cmp edx, esi
sete cl
xor eax, eax
test esi, esi
cmove eax, dword [ebp - 0x3a54]
or cx, ax
xor eax, eax
cmp esi, 1
cmove eax, dword [ebp - 0x3a58]
or cx, ax
xor eax, eax
inc eax
mov word [ebx + 0xa88], cx
cmp esi, eax
jbe 0x416de1
cmp esi, edx
jae 0x416de1
push 8
pop eax
jmp 0x416de3
xor eax, eax
or ecx, eax
mov word [ebx + 0xa88], cx
lea ecx, [ebp - 0x3388]
call fcn.00436241
xor esi, esi
push 0
inc esi
push esi
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
movzx ecx, word [ebx + 0xa88]
test cl, 8
mov edx, 0x5bef10
mov eax, str.BROKEN
cmove eax, edx
push eax
push 4
pop eax
test al, cl
mov eax, str.NOTARGET
cmove eax, edx
push eax
push 2
pop eax
test al, cl
mov eax, 0x5c0cb4
cmove eax, edx
push eax
test cl, 1
mov eax, str.FULL
cmove eax, edx
push eax
push str.Temporary_PackageType____1_s__2_s__3_s__4_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0x1c
lea eax, [ebp - 0x2338]
push esi
mov esi, dword [ebp - 0x3a04]
push esi
push 0x104
push eax
mov eax, 0x5bef10
push eax
push 0
lea eax, [ebp - 0x2c]
push eax
mov ecx, ebx
call fcn.0040a764
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00403cc8
push 0
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
push 0x5c0b9c
push str.Delimiter
lea eax, [ebp - 0x88]
push eax
mov ecx, ebx
call fcn.0040a764
mov ecx, 0x5bef10
push ecx
lea ecx, [ebx + 0xa38]
call fcn.00403cc8
test byte [ebx + 0xa88], 1
jne 0x417a9f
lea ecx, [ebp - 0x3388]
call fcn.00436241
lea eax, [ebx + 0x994]
cmp dword [eax + 0x14], 8
jb 0x416f0c
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x3388]
call fcn.00435868
xor eax, eax
mov edi, eax
mov dword [ebp - 0x29dc], edi
mov dword [ebp - 0x29d8], eax
mov dword [ebp - 0x29d4], eax
mov esi, eax
mov dword [ebp - 0x29f4], esi
mov dword [ebp - 0x29f0], eax
mov dword [ebp - 0x29ec], eax
push 0x20a
push eax
lea eax, [ebp - 0x334]
push eax
mov byte [ebp - 4], 0x1b
call fcn.00587a70
push 0x20a
lea eax, [ebp - 0x2f94]
push esi
push eax
call fcn.00587a70
mov ecx, 0x105
push ecx
lea eax, [ebp - 0x2f94]
push eax
push ecx
lea eax, [ebp - 0x334]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x3a40]
call fcn.0058bead
lea eax, [ebp - 0x2f94]
push eax
lea eax, [ebp - 0x334]
push eax
call fcn.00405b60
add esp, 0x44
lea eax, [ebp - 0x2f94]
push 0x5c0d18
push eax
call fcn.00405b78
lea eax, [ebp - 0x334]
push eax
lea eax, [ebp - 0x2f94]
push eax
call fcn.00405b60
add esp, 0x10
lea eax, [ebp - 0x88]
push 9
push eax
push esi
push 0x105
lea eax, [ebp - 0x2f94]
push eax
lea ecx, [ebp - 0x36b0]
call sym.SETUP.exe_public:_int___thiscall_CDeviceInfSection::Init_wchar_t_const___unsigned_int__class_CInfStringTable___wchar_t_const___unsigned_int_
test eax, eax
je 0x417a59
and dword [ebp - 0x3a08], esi
lea ecx, [ebp - 0x36b0]
call sym.SETUP.exe_public:_int___thiscall_CDeviceInfSection::GetList_void_
lea eax, [ebx + 0x9ac]
cmp dword [eax + 0x14], 8
jb 0x417015
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x3388]
call fcn.00435868
and dword [ebp - 0x3a00], 0
lea ecx, [ebp - 0x36b0]
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x417894
mov esi, dword [ebp - 0x3a00]
xor edi, edi
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
push edi
push edi
lea ecx, [ebp - 0x2970]
mov dword [ebp - 0x2960], edi
mov dword [ebp - 0x295c], edi
call fcn.00403a7f
push esi
lea ecx, [ebp - 0x36b0]
mov byte [ebp - 4], 0x1d
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea ecx, [ebx + 4]
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
lea eax, [ebp - 0x29d0]
push eax
lea ecx, [ebp - 0x2970]
call fcn.0041edbd
lea ecx, [ebp - 0x2970]
test eax, eax
jne 0x4170b0
push edi
inc eax
push eax
jmp 0x417855
push str.Delimiter
call fcn.0041ee46
push edi
test eax, eax
jne 0x4170c6
inc eax
push eax
jmp 0x41784f
push edi
lea ecx, [ebp - 0x2988]
mov dword [ebp - 0x2978], edi
mov dword [ebp - 0x2974], edi
call fcn.00403a7f
push str.CPU_ARCH_TEST._n
push str.CInitInfoStorage::Init
push 5
mov byte [ebp - 4], 0x1e
call fcn.00423f75
mov eax, dword [ebp - 0x2960]
add esp, 0xc
push 4
pop ecx
cmp eax, ecx
jb 0x4171c9
push 0xffffffffffffffff
add eax, 0xfffffffc
push eax
lea eax, [ebp - 0x29b8]
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403e81
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401322
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x3a58]
lea edi, [ebp - 0x2988]
cmovae edi, dword [ebp - 0x2988]
lea esi, [ebp - 0x2988]
cmovae esi, dword [ebp - 0x2988]
push eax
lea ecx, [ebp - 0x2988]
call fcn.00403d8a
push fcn.00589557
push edi
push dword [eax]
lea eax, [ebp - 0x3a54]
push esi
push eax
call fcn.00405b31
add esp, 0x14
lea ecx, [ebp - 0x2988]
push str..ALL
call fcn.0041ee46
push 1
xor edi, edi
test eax, eax
pop eax
push str.Current_CPU_ARCH_ALL_matched._n
push str.CInitInfoStorage::Init
mov esi, edi
push 4
cmove esi, eax
pop eax
push eax
call fcn.00423f75
add esp, 0xc
test esi, esi
jne 0x417403
mov eax, dword [ebp - 0x2960]
push 4
pop ecx
cmp dword [0x63aa3c], 0
je 0x417293
cmp eax, 3
jb 0x417293
push 0xffffffffffffffff
add eax, 0xfffffffd
push eax
lea eax, [ebp - 0x29b8]
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403e81
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401322
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x3a70]
lea edi, [ebp - 0x2988]
cmovae edi, dword [ebp - 0x2988]
lea esi, [ebp - 0x2988]
cmovae esi, dword [ebp - 0x2988]
push eax
lea ecx, [ebp - 0x2988]
call fcn.00403d8a
push fcn.00589557
push edi
push dword [eax]
lea eax, [ebp - 0x3a68]
push esi
push eax
call fcn.00405b31
add esp, 0x14
lea ecx, [ebp - 0x2988]
push 0x5c0d5c
call fcn.0041ee46
test eax, eax
je 0x417289
xor edi, edi
xor esi, esi
push edi
inc esi
push esi
lea ecx, [ebp - 0x2988]
call fcn.00403a7f
jmp 0x41784d
push str.Current_CPU_ARCH_x64_matched._n
jmp 0x4173f0
cmp dword [0x63aa40], 0
je 0x417349
cmp eax, ecx
jb 0x417349
push 0xffffffffffffffff
add eax, 0xfffffffc
push eax
lea eax, [ebp - 0x29b8]
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403e81
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401322
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x3a6c]
lea edi, [ebp - 0x2988]
cmovae edi, dword [ebp - 0x2988]
lea esi, [ebp - 0x2988]
cmovae esi, dword [ebp - 0x2988]
push eax
lea ecx, [ebp - 0x2988]
call fcn.00403d8a
push fcn.00589557
push edi
push dword [eax]
lea eax, [ebp - 0x3a60]
push esi
push eax
call fcn.00405b31
add esp, 0x14
lea ecx, [ebp - 0x2988]
push str.IA64
call fcn.0041ee46
test eax, eax
jne 0x417272
push str.Current_CPU_ARCH_IA64_matched._n
jmp 0x4173f0
push 2
pop ecx
cmp eax, ecx
jb 0x417403
push 0xffffffffffffffff
add eax, 0xfffffffe
push eax
lea eax, [ebp - 0x29b8]
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403e81
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401322
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x3a48]
lea edi, [ebp - 0x2988]
cmovae edi, dword [ebp - 0x2988]
lea esi, [ebp - 0x2988]
cmovae esi, dword [ebp - 0x2988]
push eax
lea ecx, [ebp - 0x2988]
call fcn.00403d8a
push fcn.00589557
push edi
push dword [eax]
lea eax, [ebp - 0x3a14]
push esi
push eax
call fcn.00405b31
add esp, 0x14
lea ecx, [ebp - 0x2988]
push 0x5c0db0
call fcn.0041ee46
test eax, eax
je 0x417272
push str.Current_CPU_ARCH_x86_matched._n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0xc
xor edi, edi
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 0x1d
call fcn.00403a7f
push edi
lea ecx, [ebp - 0x2970]
call fcn.0041ecf1
push 0x3e
pop ecx
cmp word [eax], cx
jne 0x41779d
push 2
pop eax
cmp dword [ebp - 0x2960], eax
jb 0x4178e2
xor eax, eax
push 0xffffffffffffffff
inc eax
push eax
lea eax, [ebp - 0x29b8]
mov esi, edi
push eax
lea ecx, [ebp - 0x2970]
mov dword [ebp - 0x3a0c], edi
mov dword [ebp - 0x39f4], esi
call fcn.00403e81
push eax
lea ecx, [ebp - 0x2970]
call fcn.00401322
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
cmp dword [ebp - 0x295c], 8
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x2d88]
push dword [ebp - 0x3a04]
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push ecx
push eax
mov ecx, ebx
call fcn.0040a746
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a44], edi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x4177fe
mov ebx, dword [ebp - 0x3a1c]
xor eax, eax
push eax
mov dword [ebp - 0x3a3c], edi
lea edi, [eax + 1]
push eax
lea ecx, [ebp - 0x2988]
mov dword [ebp - 0x3a50], edi
mov dword [ebp - 0x2978], eax
mov dword [ebp - 0x2974], eax
call fcn.00403a7f
push dword [ebp - 0x3a44]
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 0x1f
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
test eax, eax
je 0x417757
xor ecx, ecx
cmp cx, word [eax]
je 0x417757
push 0x7c
push eax
mov ecx, ebx
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x2988]
call fcn.00403cc8
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
push 2
pop ecx
cmp eax, ecx
jb 0x417572
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2988]
call fcn.00403cc8
xor esi, esi
push esi
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push 0x2c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046e2e7
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a20], esi
call fcn.0046c815
test eax, eax
je 0x41769d
push esi
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push 0
lea ecx, [ebp - 0x3a38]
mov esi, eax
call fcn.0046cb38
push dword [ebp - 0x3a20]
lea ecx, [ebp - 0x3a38]
lea edi, [eax + 1]
call fcn.0046caa8
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x417662
push str._none_
push esi
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x41768c
test esi, esi
je 0x41765a
push 0x3c
pop eax
cmp word [esi], ax
jne 0x41765a
push edi
push esi
call fcn.0058b10d
pop ecx
pop ecx
push 0x3e
pop ecx
cmp word [esi + eax*2 - 2], cx
jne 0x41765a
push esi
push str.pInboxInfo___1_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0x10
xor eax, eax
jmp 0x41765e
xor eax, eax
mov esi, eax
test esi, esi
je 0x417685
mov esi, dword [ebp - 0x3a20]
inc esi
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a20], esi
call fcn.0046c815
cmp esi, eax
jae 0x417695
xor esi, esi
jmp 0x4175d4
mov edi, eax
jmp 0x41772f
xor eax, eax
inc eax
mov dword [ebp - 0x3a3c], eax
mov edi, dword [ebp - 0x3a50]
xor esi, esi
cmp dword [ebp - 0x2978], 0
je 0x417724
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x2988]
cmovae eax, dword [ebp - 0x2988]
push 0x2c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046e2e7
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
test eax, eax
je 0x417724
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x2988]
call fcn.00403cc8
lea eax, [ebp - 0x2988]
push eax
push esi
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
call fcn.00435b68
pop ecx
pop ecx
test eax, eax
je 0x417748
lea ecx, [ebp - 0x3a38]
inc esi
call fcn.0046c815
cmp esi, eax
jb 0x4176e4
xor eax, eax
cmp dword [ebp - 0x3a3c], 0
jne 0x41774e
inc dword [ebp - 0x3a0c]
mov esi, dword [ebp - 0x39f4]
test edi, edi
je 0x417754
inc esi
mov dword [ebp - 0x39f4], esi
jmp 0x417754
xor eax, eax
mov edi, eax
jmp 0x417726
mov esi, dword [ebp - 0x39f4]
push eax
jmp 0x417759
push 0
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 0x1d
call fcn.00403a7f
mov edi, dword [ebp - 0x3a44]
inc edi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a44], edi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
push 0
cmp edi, eax
pop edi
jb 0x4174cc
mov ebx, dword [ebp - 0x3a5c]
mov eax, dword [ebp - 0x3a0c]
jmp 0x4177c1
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4177fe
mov eax, edi
mov esi, edi
cmp eax, esi
je 0x4177fe
xor eax, eax
inc eax
cmp esi, eax
jne 0x41784a
push dword [ebp - 0x3a00]
lea ecx, [ebp - 0x36b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea ecx, [ebx + 4]
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x29b8]
call fcn.004010bc
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x29dc]
jmp 0x41782e
push dword [ebp - 0x3a00]
lea ecx, [ebp - 0x36b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea ecx, [ebx + 4]
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x29b8]
call fcn.004010bc
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x29f4]
lea eax, [ebp - 0x29b8]
push eax
call fcn.0041fd9c
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
xor esi, esi
inc esi
push edi
push esi
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 0x1b
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
inc dword [ebp - 0x3a00]
lea ecx, [ebp - 0x36b0]
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
mov esi, dword [ebp - 0x3a00]
cmp esi, eax
jb 0x417043
mov edi, dword [ebp - 0x29dc]
mov esi, dword [ebp - 0x29f4]
mov ecx, dword [ebp - 0x29f0]
mov eax, ecx
sub eax, esi
cdq
idiv dword [ebp - 0x39f8]
test eax, eax
je 0x4179b8
cmp esi, ecx
je 0x417997
cmp dword [ebp - 0x3a08], 0
je 0x41795c
lea eax, [ebp - 0x2338]
push eax
lea ecx, [ebx + 4]
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xa38]
call fcn.00403b6b
jmp 0x417965
cmp dword [ebp - 0x295c], 8
mov edi, dword [ebp - 0x39fc]
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
mov ecx, dword [edi]
push eax
lea eax, [ebp - 0x88]
push eax
push 0xbb9
push edi
call dword [ecx + 0xc]
add esp, 0x10
lea ecx, [ebp - 0x3388]
call fcn.00436241
xor edi, edi
push 0
inc edi
push edi
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 0x1b
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
lea ecx, [ebp - 0x29f4]
call fcn.0041eb55
lea ecx, [ebp - 0x29dc]
mov byte [ebp - 4], 5
call fcn.0041eb55
jmp 0x419756
xor eax, eax
inc eax
mov dword [ebp - 0x3a08], eax
cmp dword [esi + 0x14], 8
jb 0x41796f
mov eax, dword [esi]
jmp 0x417971
mov eax, esi
push eax
lea ecx, [ebx + 4]
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xa38]
call fcn.00403b6b
push 0x18
pop eax
add esi, eax
cmp esi, dword [ebp - 0x29f0]
jne 0x4178b5
mov ax, word [ebx + 0xa88]
mov ecx, 0xfff5
and ax, cx
push 4
pop ecx
or ax, cx
mov word [ebx + 0xa88], ax
jmp 0x417a59
movzx ecx, word [ebx + 0xa88]
push 2
pop eax
test al, cl
jne 0x417a59
push 4
pop eax
test al, cl
je 0x417a49
mov esi, dword [ebp - 0x29d8]
mov eax, esi
sub eax, edi
cdq
idiv dword [ebp - 0x39f8]
test eax, eax
je 0x417a49
cmp edi, esi
je 0x417a59
cmp dword [ebp - 0x3a08], 0
je 0x417a10
lea eax, [ebp - 0x2338]
push eax
lea ecx, [ebx + 4]
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xa38]
call fcn.00403b6b
jmp 0x417a19
xor eax, eax
inc eax
mov dword [ebp - 0x3a08], eax
cmp dword [edi + 0x14], 8
jb 0x417a23
mov eax, dword [edi]
jmp 0x417a25
mov eax, edi
push eax
lea ecx, [ebx + 4]
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xa38]
call fcn.00403b6b
push 0x18
pop eax
add edi, eax
cmp edi, dword [ebp - 0x29d8]
jne 0x4179ea
jmp 0x417a59
and ecx, 0xfff9
or ecx, 8
mov word [ebx + 0xa88], cx
lea eax, [ebx + 0xa38]
cmp dword [eax + 0x14], 8
jb 0x417a67
mov eax, dword [eax]
push eax
push str.m_strTargetOS____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
add esp, 0x10
lea ecx, [ebp - 0x29f4]
call fcn.0041eb55
lea ecx, [ebp - 0x29dc]
mov byte [ebp - 4], 5
call fcn.0041eb55
mov esi, dword [ebp - 0x3a04]
lea edi, [ebx + 4]
push str._________________________________________n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
movzx eax, word [ebx + 0xa88]
test al, 8
mov edx, 0x5bef10
mov ecx, str.BROKEN
cmove ecx, edx
push ecx
push 4
pop ecx
test cl, al
mov ecx, str.NOTARGET
cmove ecx, edx
push ecx
push 2
pop ecx
test cl, al
mov ecx, 0x5c0cb4
cmove ecx, edx
push ecx
test al, 1
mov eax, str.FULL
cmove eax, edx
push eax
push str._PackageType____1_s__2_s__3_s__4_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
lea eax, [ebx + 0xa38]
add esp, 0x28
cmp dword [eax + 0x14], 8
jb 0x417b14
mov eax, dword [eax]
push eax
push str._ActualTarget___1_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
mov eax, dword [ebx + 0xa0c]
add esp, 0x10
mov ecx, dword [eax]
mov dword [ebp - 0x39f8], ecx
cmp ecx, eax
je 0x417b84
lea eax, [ecx + 0x28]
cmp dword [eax + 0x14], 8
jb 0x417b48
mov eax, dword [eax]
add ecx, 0x10
cmp dword [ecx + 0x14], 8
jb 0x417b53
mov ecx, dword [ecx]
push eax
push ecx
push str._Support_Func___1_s_:_2_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0x14
lea ecx, [ebp - 0x39f8]
call fcn.0042049a
mov ecx, dword [ebp - 0x39f8]
cmp ecx, dword [ebx + 0xa0c]
jne 0x417b3d
push str.__________________________________________n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0xc
xor eax, eax
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push 0
lea eax, [ebp - 0x110]
push eax
mov ecx, ebx
call fcn.0040a764
mov eax, dword [ebp - 0x3a10]
inc eax
mov dword [ebp - 0x3a1c], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046e2c3
test eax, eax
je 0x417c5b
push dword [ebp - 0x3a1c]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x417c5b
and dword [ebp - 0x3a1c], 0
push 0xa
lea eax, [ebp - 0x3a1c]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
call fcn.0058bd55
push eax
push str.m_nServicePack____1_ld___n
push str.CInitInfoStorage::Init
push 5
mov dword [ebx + 0xa2c], eax
call fcn.00423f75
add esp, 0x1c
xor eax, eax
inc eax
push eax
push esi
push 0
push str.WARNTYPE
lea eax, [ebp - 0x110]
push eax
mov ecx, ebx
call fcn.0040a724
shl eax, 0x18
add dword [ebx + 0xa2c], eax
xor eax, eax
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push 0
lea eax, [ebp - 0x128]
push eax
mov ecx, ebx
call fcn.0040a764
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
push str.NotCopyInf_szBuf_1_s_._n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
mov eax, dword [ebp - 0x3a10]
add esp, 0x10
inc eax
mov dword [ebp - 0x3a1c], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046e2c3
test eax, eax
je 0x417e73
push dword [ebp - 0x3a1c]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x417e73
lea ecx, [ebp - 0x29b8]
call fcn.0046c48f
push 0x2c
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x22
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x29b8]
call fcn.0046d9ee
test eax, eax
jne 0x417d31
push str.NotCopyInf_string_separator_failed._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00423f75
add esp, 0xc
jmp 0x417e64
push str.NotCopyInf_string_separator_succeeded._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00423f75
xor eax, eax
add esp, 0xc
lea ecx, [ebp - 0x2970]
push eax
push eax
mov dword [ebp - 0x2960], eax
mov dword [ebp - 0x295c], eax
call fcn.00403a7f
and dword [ebp - 0x3a0c], 0
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x23
call fcn.0046c815
test eax, eax
je 0x417e53
mov esi, dword [ebp - 0x3a0c]
push esi
lea ecx, [ebp - 0x29b8]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x3a14]
lea edi, [ebp - 0x2970]
cmovae edi, dword [ebp - 0x2970]
lea esi, [ebp - 0x2970]
cmovae esi, dword [ebp - 0x2970]
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403d8a
push fcn.00589557
push edi
push dword [eax]
lea eax, [ebp - 0x3a48]
push esi
push eax
call fcn.00405b31
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.NotCopyInf_insert___1_s__._n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0x24
lea eax, [ebp - 0x2970]
push eax
lea eax, [ebp - 0x3a64]
push eax
lea ecx, [ebx + 0xa30]
call fcn.0041fc8f
mov esi, dword [ebp - 0x3a0c]
inc esi
lea ecx, [ebp - 0x29b8]
mov dword [ebp - 0x3a0c], esi
call fcn.0046c815
cmp esi, eax
jb 0x417d86
mov esi, dword [ebp - 0x3a04]
lea edi, [ebx + 4]
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 5
call fcn.0046c546
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0xbac]
push esi
push eax
push str.ReplaceFiles
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x4490], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0xed4]
push esi
push eax
push str.InstallFiles
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x4494], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x11fc]
push esi
push eax
push str.RenameAndInstallFiles
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x4498], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x1524]
push esi
push eax
push str.AddReg
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x449c], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x1b74]
push esi
push eax
push str.AdditionalSetup
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x44a4], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x2b3c]
push esi
push eax
push str.PreFinishAction
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x44bc], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x2e64]
push esi
push eax
push str.FinishAction
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x44c0], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
push esi
lea eax, [ebx + 0x318c]
push eax
push str.PnPWaitAction
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x44c4], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x34b4]
push esi
push eax
push str.PrePnPWaitAction
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x44c8], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x37dc]
push esi
push eax
push str.PreCheck
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x44cc], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x3b04]
push esi
push eax
push str.PostInstallDriverAction
mov ecx, ebx
call fcn.0040a746
mov dword [ebx + 0x44d0], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea esi, [ebx + 0x3e2c]
push dword [ebp - 0x3a04]
mov ecx, ebx
push esi
push str.Extension
mov dword [ebp - 0x39f4], esi
call fcn.0040a746
mov dword [ebx + 0x44a8], eax
test eax, eax
je 0x418296
lea ecx, [ebp - 0x2988]
call fcn.0046c48f
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 0x24
call fcn.0046c48f
and dword [ebp - 0x39f8], 0
mov ecx, esi
mov byte [ebp - 4], 0x25
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
push 4
pop ecx
cmp eax, ecx
jbe 0x41808e
push ecx
mov edi, dword [ebp - 0x39fc]
mov ecx, dword [ebp - 0x39f4]
mov esi, dword [edi]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
push str.Extension
push 0xbb9
push edi
call dword [esi + 0xc]
add esp, 0x10
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 0x24
call fcn.0046c546
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 5
call fcn.0046c546
jmp 0x419753
xor esi, esi
lea ecx, [ebx + 0x3e2c]
mov dword [ebp - 0x3a08], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x418278
lea eax, [ebx + 0x44ac]
mov dword [ebp - 0x3a0c], eax
lea eax, [ebx + 0x1e9c]
mov dword [ebp - 0x3a20], eax
push 4
pop eax
cmp esi, eax
jae 0x418278
push 0x2c
push esi
lea ecx, [ebx + 0x3e2c]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea ecx, [ebp - 0x2970]
call fcn.0046d9ee
lea ecx, [ebp - 0x2970]
call fcn.0046c815
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x41810c
lea ecx, [ebp - 0x2970]
call fcn.0046c815
cmp eax, 3
jne 0x418237
lea ecx, [ebp - 0x2970]
call fcn.0046c815
cmp eax, 3
jne 0x4181eb
lea ecx, [ebp - 0x29b8]
call fcn.0046c48f
xor eax, eax
push 0x2e
inc eax
push eax
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 0x26
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29b8]
call fcn.0046d9ee
xor eax, eax
push eax
push eax
lea ecx, [ebp - 0x29a0]
mov dword [ebp - 0x2990], eax
mov dword [ebp - 0x298c], eax
call fcn.00403a7f
push str.AdditionalSetup_
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0x27
call fcn.00403cc8
push 0
lea ecx, [ebp - 0x29b8]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.00403b6b
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
cmovae eax, dword [ebp - 0x29a0]
xor ecx, ecx
inc ecx
push ecx
push dword [ebp + 0xc]
mov ecx, ebx
push dword [ebp - 0x3a04]
push dword [ebp - 0x3a20]
push eax
call fcn.0040a746
mov ecx, dword [ebp - 0x3a0c]
push 0
mov dword [ecx], eax
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x29a0]
call fcn.00403a7f
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x25
call fcn.0046c546
push 0x7c
push esi
lea ecx, [ebx + 0x3e2c]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046d9ee
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
test eax, eax
je 0x418242
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
xor ecx, ecx
cmp cx, word [eax]
je 0x418242
cmp dword [ebp - 0x39f8], ecx
jne 0x418237
cmp esi, 3
jb 0x41824b
push dword [ebp - 0x3a08]
jmp 0x418046
xor eax, eax
inc eax
mov dword [ebp - 0x39f8], eax
add dword [ebp - 0x3a20], 0x328
push 4
pop eax
add dword [ebp - 0x3a0c], eax
inc esi
lea ecx, [ebx + 0x3e2c]
mov dword [ebp - 0x3a08], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x4180c1
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 0x24
call fcn.0046c546
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 5
call fcn.0046c546
mov esi, dword [ebp - 0x3a04]
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x4154]
push esi
push eax
push 0x5c10f0
mov ecx, ebx
call fcn.0040a746
xor eax, eax
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.PrintUIModule
lea eax, [ebp - 0x44]
push eax
mov ecx, ebx
call fcn.0040a764
cmp dword [ebx + 0xa54], 0
je 0x41837d
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea ecx, [ebx + 0xa70]
push eax
call fcn.00403cc8
lea eax, [ebx + 0xa70]
cmp dword [eax + 0x14], 8
jb 0x418313
mov eax, dword [eax]
push eax
push str.m_strPrintUIModule____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
add esp, 0x10
cmp dword [ebx + 0xa80], 0
jne 0x41837d
call fcn.00473832
mov ecx, dword [eax + 4]
push 0x5c1140
add ecx, 0xcc
call fcn.0041eb7b
test eax, eax
jne 0x418369
call fcn.00473832
mov ecx, dword [eax + 4]
push 0x5c114c
add ecx, 0xcc
call fcn.0041eb7b
test eax, eax
je 0x41837d
mov edi, dword [ebp - 0x39fc]
push str.PrintUIModule
lea ecx, [ebp - 0x44]
push ecx
jmp 0x419745
xor eax, eax
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.Files
lea eax, [ebp - 0x74]
push eax
mov ecx, ebx
call fcn.0040a764
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xa8c]
call fcn.00403cc8
push 0
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push 0x5c1160
lea eax, [ebp - 0x74]
push eax
mov ecx, ebx
call fcn.0040a764
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xaa4]
call fcn.00403cc8
xor eax, eax
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.SourceDir
lea eax, [ebp - 0x74]
push eax
mov ecx, ebx
call fcn.0040a764
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xabc]
call fcn.00403cc8
xor eax, eax
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.TargetDir
lea eax, [ebp - 0x74]
push eax
mov ecx, ebx
call fcn.0040a764
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea ecx, [ebx + 0xaec]
push eax
call fcn.00403cc8
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
lea ecx, [ebx + 0xaec]
call fcn.00403cc8
cmp dword [ebx + 0xafc], 0
je 0x418516
lea eax, [ebx + 0xaec]
cmp dword [eax + 0x14], 8
jb 0x4184b0
mov eax, dword [eax]
push 0x7c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
push 2
pop ecx
cmp eax, ecx
jne 0x418516
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
lea esi, [ebx + 0xad4]
push eax
mov ecx, esi
call fcn.00403cc8
push esi
lea esi, [ebx + 0xaec]
mov ecx, esi
call fcn.00407335
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
mov ecx, esi
call fcn.00403b6b
mov esi, dword [ebp - 0x3a04]
push 0
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.SGDKEY
lea eax, [ebp - 0xd4]
push eax
mov ecx, ebx
call fcn.0040a764
xor eax, eax
cmp ax, word [ebp - 0x2338]
je 0x418564
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
push str.__REG_SGDKEY__
mov ecx, edi
call fcn.0046c5e0
push 0
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.WIASGDKEY
lea eax, [ebp - 0xd4]
push eax
mov ecx, ebx
call fcn.0040a764
xor eax, eax
cmp ax, word [ebp - 0x2338]
je 0x4185b2
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
push eax
push str.__REG_WIASGDKEY__
mov ecx, edi
call fcn.0046c5e0
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
xor eax, eax
push eax
push eax
lea ecx, [ebp - 0x2970]
mov dword [ebp - 0x2960], eax
mov dword [ebp - 0x295c], eax
call fcn.00403a7f
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x2d88]
push esi
push eax
lea eax, [ebp - 0xf4]
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x29
call fcn.0040a746
xor esi, esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x39f4], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x418761
push 0x2c
push esi
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046e2e7
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
cmp eax, 3
jne 0x418883
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
push 0x5c0b9c
lea ecx, [ebp - 0x2970]
call fcn.00403b6b
push 2
pop eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403b6b
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
lea eax, [ebp - 0x29b8]
push eax
mov ecx, ebx
call fcn.0040ddac
push eax
lea ecx, [ebp - 0x2970]
call fcn.00401322
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
push 0x2c
push esi
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
push 2
pop ecx
push dword [ebp - 0x39f4]
cmp eax, ecx
lea ecx, [ebp - 0x2d88]
jne 0x418874
cmp dword [ebp - 0x295c], 8
lea esi, [ebp - 0x2970]
cmovae esi, dword [ebp - 0x2970]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
push esi
mov ecx, edi
call fcn.0046c5e0
mov esi, dword [ebp - 0x39f4]
inc esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x39f4], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x418614
xor esi, esi
push 0
inc esi
push esi
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
push esi
mov esi, dword [ebp - 0x3a04]
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5bef10
push eax
push str.Files
push 0x5bf884
mov ecx, ebx
call fcn.0040a764
mov eax, dword [ebp - 0x3a10]
inc eax
mov dword [ebp - 0x3a1c], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046e2c3
test eax, eax
je 0x418821
push dword [ebp - 0x3a1c]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x418821
lea eax, [ebp - 0x2338]
push eax
mov ecx, edi
call fcn.0046dbb9
lea ecx, [ebx + 0xb34]
push eax
call fcn.00403cc8
lea eax, [ebx + 0xb34]
cmp dword [eax + 0x14], 8
jb 0x41880c
mov eax, dword [eax]
push eax
push str.m_strUninstallerFiles____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
add esp, 0x10
mov eax, dword [ebx + 0x7e4]
test eax, eax
jne 0x4188b2
cmp dword [ebx + 0xb44], eax
jne 0x41885b
cmp dword [ebx + 0xb74], eax
jne 0x41885b
cmp dword [ebx + 0xb5c], eax
jne 0x41885b
cmp dword [ebx + 0x784], eax
jne 0x41885b
cmp dword [ebx + 0x7fc], eax
je 0x4188e2
test eax, eax
jne 0x4188b2
push str.DisplayName
mov edi, dword [ebp - 0x39fc]
push 0x5bf884
jmp 0x419745
mov edi, dword [ebp - 0x39fc]
mov esi, dword [edi]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
jmp 0x41889c
mov edi, dword [ebp - 0x39fc]
push dword [ebp - 0x39f4]
mov esi, dword [edi]
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea eax, [ebp - 0xf4]
push eax
push 0xbb9
push edi
call dword [esi + 0xc]
jmp 0x4165de
cmp dword [ebx + 0xb44], 0
jne 0x4188c2
push str.Files
jmp 0x418864
cmp dword [ebx + 0xb74], 0
jne 0x4188d2
push str.TargetDir
jmp 0x418864
cmp dword [ebx + 0xb5c], 0
jne 0x4188e2
push str.ProductGUID
jmp 0x418864
push esi
mov ecx, ebx
call fcn.0040ed7b
test eax, eax
je 0x419753
lea ecx, [ebp - 0x2a2c]
call sym.SETUP.exe_public:_void___thiscall_CIniSections::constructor_void_
lea eax, [ebx + 0x994]
mov byte [ebp - 4], 0x2a
cmp dword [eax + 0x14], 8
jb 0x41890f
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x3388]
call fcn.00435868
push 0x20a
xor esi, esi
lea eax, [ebp - 0x334]
push esi
push eax
call fcn.00587a70
push 0x20a
lea eax, [ebp - 0x2f94]
push esi
push eax
call fcn.00587a70
mov ecx, 0x105
push ecx
lea eax, [ebp - 0x2f94]
push eax
push ecx
lea eax, [ebp - 0x334]
push eax
push esi
push esi
push esi
push esi
push dword [ebp - 0x3a40]
call fcn.0058bead
lea eax, [ebp - 0x2f94]
push eax
lea eax, [ebp - 0x334]
push eax
call fcn.00405b60
add esp, 0x44
lea eax, [ebp - 0x2f94]
push 0x5c0d18
push eax
call fcn.00405b78
lea eax, [ebp - 0x334]
push eax
lea eax, [ebp - 0x2f94]
push eax
call fcn.00405b60
add esp, 0x10
lea eax, [ebp - 0x2f94]
push 0x105
push eax
lea ecx, [ebp - 0x2a2c]
call sym.SETUP.exe_public:_int___thiscall_CIniSections::Init_wchar_t_const___unsigned_int_
test eax, eax
je 0x418b15
lea ecx, [ebp - 0x2a2c]
call sym.SETUP.exe_public:_int___thiscall_CIniSections::GetList_void_
test eax, eax
je 0x418b15
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
lea ecx, [ebp - 0x2a2c]
mov byte [ebp - 4], 0x2b
mov dword [ebp - 0x3a40], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CIniSections::Count_void_
test eax, eax
je 0x418b04
mov edi, dword [ebp - 0x3a04]
push esi
lea ecx, [ebp - 0x2a2c]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CIniSections::GetItem_unsigned_long_int_
mov esi, eax
test esi, esi
je 0x418ae1
xor eax, eax
cmp ax, word [esi]
je 0x418ae1
lea eax, [ebp - 0x9c]
push 9
push eax
call fcn.0058b10d
push eax
lea eax, [ebp - 0x9c]
push eax
push esi
call fcn.0058b693
add esp, 0x14
test eax, eax
jne 0x418ae1
lea eax, [ebp - 0x9c]
push 9
push eax
call fcn.0058b10d
lea eax, [esi + eax*2]
pop ecx
pop ecx
mov dword [ebp - 0x3a1c], eax
test eax, eax
je 0x418ae1
xor ecx, ecx
cmp cx, word [eax]
je 0x418ae1
push eax
push str.StringsSection__Strings._1_s___n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
add esp, 0x10
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x2d88]
push edi
push eax
push esi
mov ecx, ebx
call fcn.0040a746
test eax, eax
je 0x418ae1
push 0
lea eax, [ebp - 0x2d88]
push eax
lea eax, [ebp - 0x3a1c]
push eax
lea ecx, [ebp - 0x39f0]
call fcn.00404396
push eax
lea eax, [ebp - 0x3a18]
push eax
lea ecx, [ebx + 0x4488]
mov byte [ebp - 4], 0x2c
call fcn.00405a3f
lea ecx, [ebp - 0x39f0]
mov byte [ebp - 4], 0x2b
call fcn.00406c25
mov esi, dword [ebp - 0x3a40]
inc esi
lea ecx, [ebp - 0x2a2c]
mov dword [ebp - 0x3a40], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CIniSections::Count_void_
cmp esi, eax
jb 0x418a02
lea edi, [ebx + 4]
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 0x2a
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
xor esi, esi
lea ecx, [ebp - 0x3388]
call fcn.00436241
lea ecx, [ebp - 0x2a2c]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CIniSections::destructor_void_
push esi
push esi
lea ecx, [ebp - 0x2970]
mov dword [ebp - 0x2960], esi
mov dword [ebp - 0x295c], esi
call fcn.00403a7f
push str.___FLD_SYSTEM___
mov ecx, edi
mov byte [ebp - 4], 0x2d
mov dword [ebp - 0x3a18], esi
mov dword [ebp - 0x3a14], esi
mov dword [ebp - 0x3a4c], esi
mov dword [ebp - 0x3a48], esi
call fcn.0046dbb9
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
lea eax, [ebp - 0x2970]
push str.IMJP12.IME
push eax
call fcn.0046f03c
cmp dword [ebp - 0x295c], 8
pop ecx
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x418caa
cmp dword [ebp - 0x295c], 8
push esi
lea ecx, [ebp - 0x3a14]
push ecx
lea ecx, [ebp - 0x3a18]
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push ecx
push eax
call fcn.0046ee75
add esp, 0x10
test eax, eax
je 0x418caa
lea eax, [ebp - 0x3a48]
push eax
lea eax, [ebp - 0x3a4c]
push eax
push str.12.0.6211.1000
call fcn.0041e279
movzx eax, word [ebp - 0x3a14]
push eax
movzx eax, word [ebp - 0x3a12]
push eax
movzx eax, word [ebp - 0x3a18]
push eax
movzx eax, word [ebp - 0x3a16]
push eax
push str.Version_of_IMJP12.IME_Installed____1_lu_._2_lu_._3_lu_._4_lu__n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
mov edi, dword [ebp - 0x3a48]
mov esi, dword [ebp - 0x3a4c]
movzx eax, di
push eax
movzx eax, word [ebp - 0x3a46]
push eax
movzx eax, si
push eax
movzx eax, word [ebp - 0x3a4a]
push eax
push str.Version_of_IMJP12.IME_SP1__________1_lu_._2_lu_._3_lu_._4_lu__n
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
add esp, 0x44
xor eax, eax
inc eax
push eax
push edi
push esi
push dword [ebp - 0x3a14]
push dword [ebp - 0x3a18]
call fcn.0046efd0
mov esi, eax
push esi
push str.VerCompare_Version__1_d__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00423f75
xor edi, edi
inc edi
add esp, 0x24
cmp esi, edi
jne 0x418ca5
mov dword [ebx + 0x44f0], edi
xor esi, esi
lea edi, [ebx + 4]
xor eax, eax
push esi
inc eax
push eax
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 5
call fcn.00403a7f
lea ecx, [ebp - 0x30b0]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x30b0]
push dword [ebp - 0x3a04]
mov ecx, ebx
push eax
lea eax, [ebp - 0xbc]
push eax
mov byte [ebp - 4], 0x2e
call fcn.0040a746
lea ecx, [ebp - 0x30b0]
mov dword [ebp - 0x39f4], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x419185
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x2a00]
call fcn.004010bc
mov eax, 0x5bf818
push eax
lea ecx, [ebp - 0x29e8]
mov byte [ebp - 4], 0x2f
call fcn.004010bc
push esi
lea ecx, [ebp - 0x30b0]
mov byte [ebp - 4], 0x30
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea ecx, [ebp - 0x2a00]
call fcn.00403cc8
cmp dword [ebp - 0x29f0], 0
lea ecx, [ebp - 0x30b0]
je 0x41960c
push 0x2c
push esi
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046d9ee
lea ecx, [ebp - 0x3a38]
call fcn.0046c815
push 4
pop ecx
cmp eax, ecx
jne 0x4195f1
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.004010bc
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x3a38]
mov byte [ebp - 4], 0x31
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2988]
call fcn.004010bc
push 2
pop eax
push eax
lea ecx, [ebp - 0x3a38]
mov byte [ebp - 4], 0x32
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2970]
call fcn.004010bc
push 3
lea ecx, [ebp - 0x3a38]
mov byte [ebp - 4], 0x33
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29b8]
call fcn.004010bc
cmp dword [ebp - 0x2990], 0
mov byte [ebp - 4], 0x34
je 0x419568
cmp dword [ebp - 0x2978], 0
je 0x419568
cmp dword [ebp - 0x2960], 0
je 0x419568
cmp dword [ebp - 0x29a8], 0
je 0x419568
push str.HKLM
lea ecx, [ebp - 0x29a0]
mov dword [ebp - 0x3a08], 0x2000000
call fcn.0041ee46
test eax, eax
jne 0x418e5d
mov dword [ebp - 0x3a00], reloc.OLEAUT32.dll_SysReAllocString
jmp 0x418ec9
push str.HKLM_WOW64
lea ecx, [ebp - 0x29a0]
call fcn.0041ee46
test eax, eax
jne 0x418e87
mov dword [ebp - 0x3a00], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x3a08], 0x20219
jmp 0x418ec9
push str.HKCU
lea ecx, [ebp - 0x29a0]
call fcn.0041ee46
test eax, eax
jne 0x418ea7
mov dword [ebp - 0x3a00], VariantInit
jmp 0x418ec9
push str.HKCR
lea ecx, [ebp - 0x29a0]
call fcn.0041ee46
test eax, eax
jne 0x419517
mov dword [ebp - 0x3a00], VariantInit
lea ecx, [ebp - 0x3a18]
call fcn.00462e03
cmp dword [ebp - 0x2974], 8
push dword [ebp - 0x3a08]
lea eax, [ebp - 0x2988]
cmovae eax, dword [ebp - 0x2988]
push eax
push dword [ebp - 0x3a00]
lea ecx, [ebp - 0x3a18]
mov byte [ebp - 4], 0x35
call fcn.004632c3
test eax, eax
je 0x4190c1
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
lea ecx, [ebp - 0x3a18]
call fcn.00463217
test eax, eax
je 0x4190c1
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
lea ecx, [ebp - 0x3a18]
call fcn.00463021
push str.DWORD
lea ecx, [ebp - 0x29b8]
mov dword [ebp - 0x3a40], eax
call fcn.0041ee46
test eax, eax
jne 0x419017
push 4
pop eax
cmp dword [ebp - 0x3a40], eax
jne 0x419017
lea ecx, [ebp - 0x2a24]
call fcn.00462de0
cmp dword [ebp - 0x2974], 8
push dword [ebp - 0x3a08]
lea eax, [ebp - 0x2988]
cmovae eax, dword [ebp - 0x2988]
push eax
push dword [ebp - 0x3a00]
lea ecx, [ebp - 0x2a24]
mov byte [ebp - 4], 0x36
call fcn.004632c3
test eax, eax
je 0x419008
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
lea ecx, [ebp - 0x2a24]
call fcn.00463119
push dword [eax]
lea eax, [ebp - 0x2338]
push 0x5bfa00
push eax
call fcn.00405ae0
add esp, 0xc
lea eax, [ebp - 0x2338]
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00403cc8
lea ecx, [ebp - 0x2a24]
mov byte [ebp - 4], 0x35
call fcn.00462e36
push 0x5c1364
lea ecx, [ebp - 0x29b8]
call fcn.0041ee46
test eax, eax
jne 0x4190c1
inc eax
cmp dword [ebp - 0x3a40], eax
jne 0x4190c1
lea ecx, [ebp - 0x2a28]
call fcn.00462e10
cmp dword [ebp - 0x2974], 8
push dword [ebp - 0x3a08]
lea eax, [ebp - 0x2988]
cmovae eax, dword [ebp - 0x2988]
push eax
push dword [ebp - 0x3a00]
lea ecx, [ebp - 0x2a28]
mov byte [ebp - 4], 0x37
call fcn.004632c3
test eax, eax
je 0x4190b2
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
lea ecx, [ebp - 0x2a28]
call fcn.0046315b
test eax, eax
je 0x4190b2
xor ecx, ecx
cmp cx, word [eax]
je 0x4190b2
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00403cc8
lea ecx, [ebp - 0x2a28]
mov byte [ebp - 4], 0x35
call fcn.00462e5e
cmp dword [ebp - 0x29d4], 8
lea ecx, [ebp - 0x29e8]
cmovae ecx, dword [ebp - 0x29e8]
cmp dword [ebp - 0x29ec], 8
lea eax, [ebp - 0x2a00]
cmovae eax, dword [ebp - 0x2a00]
push ecx
push eax
mov ecx, edi
call fcn.0046c5e0
lea ecx, [ebp - 0x3a18]
mov byte [ebp - 4], 0x34
call fcn.00462e53
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x2988]
call fcn.00403a7f
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29a0]
call fcn.00403a7f
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00403a7f
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x2a00]
mov byte [ebp - 4], 0x2e
call fcn.00403a7f
inc esi
lea ecx, [ebp - 0x30b0]
mov dword [ebp - 0x39f4], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x418d08
lea ecx, [ebp - 0x30b0]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 0x38
call fcn.0046c48f
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x2d88]
push dword [ebp - 0x3a04]
mov ecx, ebx
push eax
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp - 4], 0x39
call fcn.0040a746
xor esi, esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x39f4], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x4194ce
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x29a0]
call fcn.004010bc
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x2a00]
mov byte [ebp - 4], 0x3a
call fcn.004010bc
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x29e8]
mov byte [ebp - 4], 0x3b
call fcn.004010bc
push 0x3c
pop eax
mov byte [ebp - 4], al
mov eax, 0x5bef10
push eax
lea ecx, [ebp - 0x2970]
call fcn.004010bc
push 0x208
lea eax, [ebp - 0x38b8]
push 0
push eax
mov byte [ebp - 4], 0x3d
call fcn.00587a70
push 0x208
lea eax, [ebp - 0x334]
push 0
push eax
call fcn.00587a70
push 0x208
lea eax, [ebp - 0x2f90]
push 0
push eax
call fcn.00587a70
push 0x208
lea eax, [ebp - 0x2958]
push 0
push eax
call fcn.00587a70
push 0xa
push 0x104
lea eax, [ebp - 0x2958]
push eax
push 0x493e0
call fcn.0058ba56
add esp, 0x40
lea eax, [ebp - 0x2958]
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
push esi
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea ecx, [ebp - 0x29a0]
call fcn.00403cc8
cmp dword [ebp - 0x2990], 0
je 0x4196b7
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
cmovae eax, dword [ebp - 0x29a0]
push eax
call fcn.0058bd76
pop ecx
push 0x2c
push esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a0c], eax
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046d9ee
lea ecx, [ebp - 0x2988]
call fcn.0046c815
cmp eax, 3
ja 0x41969c
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2a00]
call fcn.00403cc8
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00403cc8
cmp dword [ebp - 0x29f0], 0
je 0x41965d
cmp dword [ebp - 0x29d8], 0
je 0x41965d
lea ecx, [ebp - 0x2988]
call fcn.0046c815
cmp eax, 3
jb 0x4193b5
push 2
pop eax
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046caa8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403cc8
cmp dword [ebp - 0x2960], 0
je 0x41965d
push dword [ebp - 0x3a0c]
lea eax, [ebp - 0x38b8]
push str.__ADDON__d_ROOTKEY__
push eax
call fcn.00405afc
add esp, 0xc
cmp dword [ebp - 0x29ec], 8
lea eax, [ebp - 0x2a00]
cmovae eax, dword [ebp - 0x2a00]
push eax
lea eax, [ebp - 0x38b8]
push eax
mov ecx, edi
call fcn.0046c5e0
push dword [ebp - 0x3a0c]
lea eax, [ebp - 0x334]
push str.__ADDON__d_SUBKEY__
push eax
call fcn.00405afc
add esp, 0xc
cmp dword [ebp - 0x29d4], 8
lea eax, [ebp - 0x29e8]
cmovae eax, dword [ebp - 0x29e8]
push eax
lea eax, [ebp - 0x334]
push eax
mov ecx, edi
call fcn.0046c5e0
push dword [ebp - 0x3a0c]
lea eax, [ebp - 0x2f90]
push str.__ADDON__d_TIMEOUT__
push eax
call fcn.00405afc
add esp, 0xc
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
lea eax, [ebp - 0x2f90]
push eax
mov ecx, edi
call fcn.0046c5e0
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00403a7f
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x2a00]
call fcn.00403a7f
xor eax, eax
push 0
inc eax
push eax
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0x39
call fcn.00403a7f
inc esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x39f4], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x4191ec
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 0x38
call fcn.0046c546
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
mov ecx, edi
call fcn.0046c822
push 0x5bf970
xor edi, edi
push str.CInitInfoStorage::Init
inc edi
push 5
mov dword [ebx + 0x4538], edi
call fcn.00423f75
add esp, 0xc
mov esi, edi
jmp 0x41976c
mov edi, dword [ebp - 0x39fc]
push dword [ebp - 0x39f4]
mov esi, dword [edi]
lea ecx, [ebp - 0x30b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea eax, [ebp - 0xbc]
push eax
push 0xbb9
push edi
call dword [esi + 0xc]
push ecx
push ecx
push 6
pop ecx
mov edi, esp
push str.rootkey_is_invalid.__1_s___n
push str.CInitInfoStorage::Init
push 2
pop eax
lea esi, [ebp - 0x29a0]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.00423f75
add esp, 0x24
jmp 0x4195a8
mov edi, dword [ebp - 0x39fc]
push dword [ebp - 0x39f4]
mov esi, dword [edi]
lea ecx, [ebp - 0x30b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea eax, [ebp - 0xbc]
push eax
push 0xbb9
push edi
call dword [esi + 0xc]
push str.zero_length._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00423f75
add esp, 0x1c
xor ebx, ebx
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x29b8]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x2988]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x29a0]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x29e8]
call fcn.00403a7f
push ebx
jmp 0x419646
mov edi, dword [ebp - 0x39fc]
push dword [ebp - 0x39f4]
mov esi, dword [edi]
lea ecx, [ebp - 0x30b0]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
jmp 0x41961f
mov edi, dword [ebp - 0x39fc]
push dword [ebp - 0x39f4]
mov esi, dword [edi]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea eax, [ebp - 0xbc]
push eax
push 0xbb9
push edi
call dword [esi + 0xc]
add esp, 0x10
xor edi, edi
push 0
inc edi
push edi
lea ecx, [ebp - 0x29e8]
call fcn.00403a7f
push 0
push edi
lea ecx, [ebp - 0x2a00]
call fcn.00403a7f
lea ecx, [ebp - 0x30b0]
jmp 0x4165f8
mov edi, dword [ebp - 0x39fc]
push dword [ebp - 0x39f4]
mov esi, dword [edi]
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea eax, [ebp - 0x5c]
push eax
push 0xbb9
push edi
call dword [esi + 0xc]
push str.zero_length._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00423f75
add esp, 0x1c
jmp 0x4196e1
mov edi, dword [ebp - 0x39fc]
push dword [ebp - 0x39f4]
mov esi, dword [edi]
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
jmp 0x4196d0
mov edi, dword [ebp - 0x39fc]
push dword [ebp - 0x39f4]
mov esi, dword [edi]
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea eax, [ebp - 0x5c]
push eax
push 0xbb9
push edi
call dword [esi + 0xc]
add esp, 0x10
xor ebx, ebx
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x2970]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x29e8]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x2a00]
call fcn.00403a7f
push ebx
push edi
lea ecx, [ebp - 0x29a0]
call fcn.00403a7f
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 0x38
call fcn.0046c546
jmp 0x4165f2
push str.DefaultDeviceDir
jmp 0x41973a
push str.DefaultTargetDir
lea edi, [ebx + 0x90c]
push 0x5bf878
mov eax, dword [edi]
push 0xbb9
push edi
call dword [eax + 0xc]
add esp, 0x10
xor edi, edi
inc edi
push 0x5bf98c
push str.CInitInfoStorage::Init
push 5
call fcn.00423f75
add esp, 0xc
xor esi, esi
push 4
pop eax
lea ecx, [ebp - 0x3388]
mov byte [ebp - 4], al
call fcn.0043580f
lea ecx, [ebp - 0x36b0]
mov byte [ebp - 4], 3
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
push 2
pop eax
lea ecx, [ebp - 0x3a38]
mov byte [ebp - 4], al
call fcn.0046c546
push 0
push edi
lea ecx, [ebp - 0x2a48]
call fcn.00403a7f
push 0
push edi
lea ecx, [ebp - 0x2a60]
call fcn.00403a7f
push 0
push edi
lea ecx, [ebp - 0x29d0]
call fcn.00403a7f
mov eax, esi
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.00588a1c
leave
ret 0x14