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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5af5c8
mov eax, dword fs:[0]
push eax
mov eax, 0x3a64
call fcn.00593490
mov eax, dword [0x637190]
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 - 0x3a54], ebx
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x128]
push 5
mov dword [ebp - 0x3a08], eax
mov esi, str.NotCopyInf
pop eax
mov ecx, eax
rep movsd dword es:[edi], dword [esi]
push 6
pop ecx
push 7
movsw word es:[edi], word [esi]
mov esi, str.ServicePacks
lea edi, [ebp - 0x110]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
pop edx
push 8
movsw word es:[edi], word [esi]
mov esi, str.DirOS
mov dword [ebp - 0x29bc], edx
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 esi, str.PortSelect
lea edi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
movsw word es:[edi], word [esi]
mov esi, str.DriverVerPatch
lea edi, [ebp - 0xf4]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
movsw word es:[edi], word [esi]
mov esi, str.WebSupport
lea edi, [ebp - 0x74]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
movsw word es:[edi], word [esi]
mov esi, str.DRIVERINFO
lea edi, [ebp - 0xd4]
rep movsd dword es:[edi], dword [esi]
pop ecx
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]
mov esi, str.RegValueStrings
lea edi, [ebp - 0xbc]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edi, [ebp - 0x5c]
mov esi, str.AddOn_Info
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x29c0], ecx
mov word [ebp - 0x29d0], ax
movsw word es:[edi], word [esi]
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 - 0x3a4c], eax
mov byte [ebp - 4], al
call fcn.0046d5d4
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 - 0x3a58], eax
mov byte [ebp - 4], al
call fcn.004365c4
push 0x5c59f8
push str.CInitInfoStorage::Init
push 5
mov byte [ebp - 4], 5
call fcn.00424dad
xor edi, edi
xor eax, eax
add esp, 0xc
inc edi
cmp dword [ebx + 0x4538], eax
je 0x415ce3
push str.This_class_instance_has_been_already_initialized._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00424dad
add esp, 0xc
jmp 0x41a71d
mov edi, dword [ebp - 0x3a08]
test edi, edi
jne 0x415d08
push str.Parameter_pIniFile_is_invalid._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00424dad
add esp, 0xc
jmp 0x41a71a
cmp word [edi], ax
je 0x415d14
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x2a48]
call fcn.00404be0
cmp dword [ebp - 0x2a34], 8
lea esi, [ebp - 0x2a48]
push edi
cmovae esi, dword [ebp - 0x2a48]
mov dword [ebp - 0x3a40], esi
call fcn.004366b8
pop ecx
test eax, eax
jne 0x415dc1
lea ecx, [ebp - 0x3a0c]
call fcn.00461e21
lea ecx, [ebp - 0x3a0c]
mov byte [ebp - 4], 6
call fcn.0046275e
test eax, eax
lea eax, [ebx + 0x90c]
mov ecx, dword [eax]
je 0x415d9f
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.00424dad
add esp, 0x14
lea ecx, [ebp - 0x3a0c]
mov byte [ebp - 4], 5
call fcn.00461e2a
jmp 0x41a71a
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.00424dad
add esp, 0x18
jmp 0x415d8b
test esi, esi
je 0x415e25
mov eax, dword [ebp - 0x2a38]
inc eax
push eax
push esi
call fcn.00591dbe
pop ecx
pop ecx
cmp eax, 0x104
jb 0x415e25
push 0xb4
mov esi, 0xbba
lea eax, [ebx + 0x914]
push esi
push eax
call fcn.0040b585
mov ecx, dword [section..data]
add esp, 0xc
push esi
call fcn.004151a4
push eax
lea ecx, [ebx + 0x910]
call fcn.0041c8bc
mov ecx, dword [section..data]
push esi
call fcn.004151db
mov dword [ebx + 0x918], eax
jmp 0x41a71a
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.00592b69
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.00592b69
add esp, 0x48
cmp word [ebp - 0x18], 0
jne 0x415e73
xor eax, eax
jmp 0x415e7d
lea eax, [ebp - 0x18]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x18]
lea esi, [ebx + 0x97c]
push eax
mov ecx, esi
call fcn.00404be0
cmp word [ebp - 0x2750], 0
jne 0x415e9d
xor eax, eax
jmp 0x415eaa
lea eax, [ebp - 0x2750]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x2750]
mov ecx, esi
push eax
call fcn.00404a83
cmp word [ebp - 0x20], 0
jne 0x415ec4
xor eax, eax
jmp 0x415ece
lea eax, [ebp - 0x20]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x20]
lea esi, [ebx + 0x994]
push eax
mov ecx, esi
call fcn.00404be0
cmp word [ebp - 0x2544], 0
jne 0x415eee
xor eax, eax
jmp 0x415efb
lea eax, [ebp - 0x2544]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x2544]
mov ecx, esi
push eax
call fcn.00404a83
push 0
lea esi, [ebx + 4]
push esi
push edi
push 0
push str.EnableVisualStyle
push 0x5c5a58
mov dword [ebp - 0x3a18], esi
call fcn.00470adc
add esp, 0x18
test eax, eax
jne 0x415f5d
push 0x5c6238
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x415f4d
push 0x5c6238
call fcn.00405177
pop ecx
test eax, eax
je 0x415f5d
push str.SetThemeAppProperties
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 1
call eax
mov ecx, dword [section..data]
xor eax, eax
inc eax
push eax
push edi
call fcn.0041eacd
test eax, eax
lea eax, [ebx + 0x90c]
je 0x415f91
mov ecx, dword [eax]
push 0x5c5de4
push 0x5c5a58
push 0xbb9
push eax
call dword [ecx + 0xc]
jmp 0x41a717
push eax
push dword [ebx + 0x44e8]
mov dword [ebp - 0x39f8], eax
lea eax, [ebx + 0x97c]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00401bb9
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 0x41a71a
push 0
push 0
lea ecx, [ebx + 0x338]
call fcn.0044d27d
test eax, eax
je 0x41a71a
and dword [ebp - 0x39fc], 0
mov ecx, esi
push edi
push str.__FILE_INSTALLER_INI__
call fcn.0046d72a
push 0x20a
lea eax, [ebp - 0x2f94]
push 0
push eax
call fcn.0058e700
add esp, 0xc
lea eax, [ebp - 0x2f94]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x41604d
lea eax, [ebp - 0x2f94]
mov ecx, esi
push eax
push str.__FLD_WINDOWS__
call fcn.0046d72a
lea eax, [ebp - 0x2f94]
push 0x5c
push eax
call fcn.00591e9b
pop ecx
pop ecx
mov edi, eax
push 2
pop eax
add edi, eax
jne 0x416052
mov edi, 0x5c5a54
push 0x5c5de0
push edi
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
mov ecx, 0x5c5a54
cmovne ecx, edi
push ecx
push str.__NAME_WINDIR__
mov ecx, esi
call fcn.0046d72a
push 0x20a
xor edi, edi
lea eax, [ebp - 0x2f94]
push edi
push eax
call fcn.0058e700
add esp, 0xc
lea eax, [ebp - 0x2f94]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
cmp word [ebp - 0x2f94], di
je 0x4160e8
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.00592b69
add esp, 0x24
lea eax, [ebp - 0x2f94]
mov ecx, esi
push eax
push str.__FLD_SYSTEM__
call fcn.0046d72a
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
push str.__FLD_SYSTEMDRIVE__
call fcn.0046d72a
push 0x20a
lea eax, [ebp - 0x2f94]
push edi
push eax
call fcn.0058e700
add esp, 0xc
lea eax, [ebp - 0x39fc]
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 0x41613d
lea eax, [ebp - 0x2f94]
mov ecx, esi
push eax
push str.__FLD_PRINTERDRIVER__
call fcn.0046d72a
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]
mov byte [ebp - 4], 8
push eax
push edi
push edi
sub esp, 0x10
mov esi, 0x60cd04
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.0044af58
add esp, 0x1c
test eax, eax
js 0x4161b1
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebx + 4]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__FLD_COMMON_DESKTOP__
call fcn.0046d72a
lea eax, [ebp - 0x2970]
mov esi, 0x60ccf4
push eax
push 0
push 0
sub esp, 0x10
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.0044af58
add esp, 0x1c
test eax, eax
js 0x4161f8
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebx + 4]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__FLD_COMMON_PROGRAMS__
call fcn.0046d72a
lea eax, [ebp - 0x2970]
mov esi, 0x60ccd4
push eax
push 0
push 0
sub esp, 0x10
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.0044af58
add esp, 0x1c
test eax, eax
js 0x41623f
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebx + 4]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__FLD_COMMON_APPDATA__
call fcn.0046d72a
lea eax, [ebp - 0x2970]
mov esi, 0x60cc84
push eax
push 0
push 0
sub esp, 0x10
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.0044af58
add esp, 0x1c
test eax, eax
js 0x416286
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebx + 4]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__FLD_PROGRAM_FILES__
call fcn.0046d72a
lea eax, [ebp - 0x29a0]
mov esi, 0x60cc44
push eax
push 0
push 0
sub esp, 0x10
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.0044af58
add esp, 0x1c
lea edi, [ebx + 4]
test eax, eax
js 0x4162cf
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
mov ecx, edi
cmovae eax, dword [ebp - 0x29a0]
push eax
push str.__FLD_STARTUP__
call fcn.0046d72a
xor esi, esi
lea ecx, [ebp - 0x29a0]
push 0
inc esi
push esi
call fcn.00404970
push 0
push esi
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 5
call fcn.00404970
cmp dword [ebx + 0x44e8], 0
mov esi, 0x5c6428
mov ecx, 0x5c58f8
mov eax, esi
cmove eax, ecx
mov ecx, edi
push eax
push 0x5c642c
call fcn.0046d72a
cmp dword [ebx + 0x44e8], 0
mov eax, 0x5c58f8
mov ecx, edi
cmove eax, esi
push eax
push str.__EXTIF_NORMALINST__
call fcn.0046d72a
push 0x64
lea eax, [ebp - 0x2338]
push 0x5c5ae0
push eax
call fcn.0040699a
add esp, 0xc
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
push str.__VER_PREINST__
call fcn.0046d72a
cmp dword [ebx + 0x44ec], 0
mov ecx, 0x5c58f8
mov eax, esi
cmove eax, ecx
mov ecx, edi
push eax
push str.__EXTIF_NOVSA__
call fcn.0046d72a
cmp dword [0x641b0c], 0
mov ecx, 0x5c58f8
mov eax, esi
cmove eax, ecx
mov ecx, edi
push eax
push str.__WIN_CLIENTOS__
call fcn.0046d72a
mov eax, 0x5c58f8
mov ecx, edi
push eax
push str.__EXTIF_SELECTPORT__
call fcn.0046d72a
push esi
push str.__NONUSE_ADDPORTWIZARD__
mov ecx, edi
call fcn.0046d72a
mov esi, dword [ebp - 0x3a08]
push 0
push edi
push esi
push 0xffffffffffffffff
push 0x5c5de4
push 0x5c5a58
call fcn.00470adc
add esp, 0x18
mov dword [ebx + 0x95c], eax
cmp eax, 0xffffffff
jne 0x4163ee
mov edi, dword [ebp - 0x39f8]
push 0x5c5de4
jmp 0x41a707
and dword [ebp - 0x3a10], 0
lea eax, [ebp - 0x2338]
push 0
push edi
push esi
push 0x104
push eax
mov eax, 0x5c4f10
push eax
push str.ProductName.Install
push 0x5c5a58
call fcn.00470de9
mov eax, dword [ebp - 0x3a10]
add esp, 0x20
inc eax
mov ecx, edi
mov dword [ebp - 0x39fc], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
call fcn.0046f4e7
test eax, eax
je 0x416455
push dword [ebp - 0x39fc]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
jne 0x4164b1
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
mov ecx, 0x5c4f10
push eax
push ecx
push 0x5c6568
push 0x5c5a58
call fcn.00470de9
mov eax, dword [ebp - 0x3a10]
add esp, 0x20
inc eax
mov ecx, edi
mov dword [ebp - 0x39fc], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
call fcn.0046f4e7
test eax, eax
je 0x4164b1
push dword [ebp - 0x39fc]
push eax
call fcn.00591dbe
pop ecx
pop ecx
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebx + 0x944]
call fcn.00404bb9
push 0
push edi
push esi
push 0xffffffffffffffff
push str.ProductType
push 0x5c5a58
call fcn.00470adc
add esp, 0x18
mov dword [ebx + 0x978], eax
cmp eax, 0xffffffff
je 0x4164f9
or eax, 0x80000000
mov dword [ebx + 0x978], eax
lea ecx, [ebx + 0x338]
call fcn.0044cc7b
test eax, eax
je 0x41a71a
lea ecx, [ebx + 0x338]
call fcn.0044c19f
test eax, eax
je 0x41a71a
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.DefaultTargetDir
push 0x5c5a58
call fcn.00470de9
mov esi, dword [ebp - 0x3a10]
lea eax, [ebp - 0x3a10]
add esp, 0x20
mov ecx, edi
inc esi
push eax
lea eax, [ebp - 0x2338]
push eax
call fcn.0046f4e7
test eax, eax
je 0x41a6fc
push esi
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x41a6fc
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea esi, [ebx + 0x9c4]
push eax
mov ecx, esi
call fcn.00404bb9
cmp dword [ebx + 0x9d4], 0
je 0x416615
cmp dword [esi + 0x14], 8
jb 0x4165ad
mov eax, dword [esi]
jmp 0x4165af
mov eax, esi
push 0x7c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046eb6a
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
push 2
pop ecx
cmp eax, ecx
jne 0x416615
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
lea ecx, [ebx + 0x9dc]
push eax
call fcn.00404bb9
lea eax, [ebx + 0x9dc]
cmp esi, eax
je 0x4165fe
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00404b26
xor eax, eax
lea ecx, [ebp - 0x3a38]
inc eax
push eax
call fcn.0046dbf8
push eax
mov ecx, esi
call fcn.00404a5c
cmp dword [esi + 0x14], 8
jb 0x41661d
mov esi, dword [esi]
push esi
push str.m_strDirDriverStoreCommon____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
push 0x2002
lea eax, [ebp - 0x2338]
push 0
push eax
call fcn.0058e700
mov esi, dword [ebp - 0x3a08]
add esp, 0x1c
cmp dword [ebx + 0x44e8], 0
je 0x41667e
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.PreinstDeviceDir
push 0x5c5a58
call fcn.00470de9
add esp, 0x20
lea eax, [ebp - 0x2338]
push 0x1001
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
jne 0x4166bd
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.DefaultDeviceDir
push 0x5c5a58
call fcn.00470de9
add esp, 0x20
mov esi, dword [ebp - 0x3a10]
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
inc esi
call fcn.0046f4e7
test eax, eax
je 0x41a6f5
push esi
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x41a6f5
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea esi, [ebx + 0x9f4]
push eax
mov ecx, esi
call fcn.00404bb9
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]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x29a0]
call fcn.004049b6
push 0x5c4f0c
call fcn.0058edd4
pop ecx
push eax
push 0x5c4f0c
lea ecx, [ebp - 0x29a0]
call fcn.00404a83
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x29a0]
call fcn.004049b6
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
mov ecx, edi
cmovae eax, dword [ebp - 0x29a0]
push eax
push str.__DRIVERSTORE_DIR__
call fcn.0046d72a
xor eax, eax
mov byte [ebp - 4], 5
push 0
inc eax
lea ecx, [ebp - 0x29a0]
push eax
call fcn.00404970
mov esi, dword [ebp - 0x3a08]
lea eax, [ebp - 0x2338]
push 0
push edi
push esi
push 0x104
push eax
mov eax, 0x5c4f10
push eax
push str.ProgramShortcutDir
push 0x5c5a58
call fcn.00470de9
add esp, 0x20
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xa14]
call fcn.00404bb9
push 0
push edi
push esi
push 0
push str.RestartOnFinish
push 0x5c5a58
call fcn.00470adc
push 0xc
lea esi, [ebx + 0x938]
mov dword [ebx + 0x44d8], eax
push 0
push esi
call fcn.0058e700
push 0
push edi
push dword [ebp - 0x3a08]
push 0
push str.Resolution.X
push 0x5c5a58
call fcn.00470adc
push 0
push edi
mov dword [esi], eax
mov esi, dword [ebp - 0x3a08]
push esi
push 0
push str.Resolution.Y
push 0x5c5a58
call fcn.00470adc
add esp, 0x54
mov dword [ebx + 0x93c], eax
push 0
push edi
push esi
push 0
push str.ColorDepth
push 0x5c5a58
call fcn.00470adc
push 0
push edi
push esi
push 0
push str.FaxVersion
push 0x5c5a58
mov dword [ebx + 0x940], eax
call fcn.00470adc
push 0
push edi
push esi
push 0
push str.ScanVerCompType
push 0x5c5a58
mov dword [ebx + 0x44dc], eax
call fcn.00470adc
add esp, 0x48
mov dword [ebx + 0x44e0], eax
push 0
push edi
push esi
push 0
push str.ScanPowerType
push 0x5c5a58
call fcn.00470adc
push 0
push edi
push esi
push 0
push str.NotifySendInfoAgree
push 0x5c5a58
mov dword [ebx + 0x44e4], eax
call fcn.00470adc
push 0
push edi
push esi
mov dword [ebx + 0x44f4], eax
lea eax, [ebp - 0x2338]
push 0x104
push eax
mov eax, 0x5c4f10
push eax
push str.ReplaceUpgradeFunctions
push 0x5c5a58
call fcn.00470de9
add esp, 0x50
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea ecx, [ebx + 0x44f8]
push eax
call fcn.00404bb9
lea eax, [ebx + 0x44f8]
cmp dword [eax + 0x14], 8
jb 0x416930
mov eax, dword [eax]
push eax
push str.m_strReplaceUpgradeFunctions____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
push 0
push edi
push esi
push 0
push str.TypeTWAINDS
push 0x5c5a58
call fcn.00470adc
push 0
mov dword [ebx + 0x4510], eax
xor eax, eax
push edi
push esi
inc eax
push eax
push str.DetectInboxDriver
push 0x5c5a58
call fcn.00470adc
add esp, 0x40
mov dword [ebx + 0x4514], eax
xor eax, eax
inc eax
push 0
push edi
push esi
push eax
push str.DefaultPrinterOption
push 0x5c5a58
call fcn.00470adc
push 0
mov dword [ebx + 0x4518], eax
xor eax, eax
push edi
push esi
inc eax
push eax
push str.PrinterBitmapType
push 0x5c5a58
call fcn.00470adc
push 0
push edi
push esi
push 0
push str.InstallationBlockType
push 0x5c5a58
mov dword [ebx + 0x451c], eax
call fcn.00470adc
add esp, 0x48
mov dword [ebx + 0x4528], eax
push 0
push edi
push esi
push 0
push str.UseDriverNameForIconName
push 0x5c5a58
call fcn.00470adc
push 0
push edi
push esi
push 0xffffffffffffffff
push str.DriverUpgradeMode
push 0x5c5a58
mov dword [ebx + 0x452c], eax
call fcn.00470adc
push 0
mov dword [ebx + 0x4530], eax
xor eax, eax
push edi
push esi
inc eax
push eax
lea eax, [ebp - 0x44]
push str.PortSelect
push eax
call fcn.00470adc
add esp, 0x48
mov dword [ebx + 0xa54], eax
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
lea eax, [ebp - 0x44]
push str.MaskName
push eax
call fcn.00470de9
add esp, 0x20
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xa58]
call fcn.00404bb9
mov eax, dword [ebx + 0xa54]
and eax, 0xf000
cmp eax, 0x1000
je 0x416abd
cmp dword [0x641b1c], 0
je 0x416a8d
cmp eax, 0x2000
je 0x416abd
cmp dword [0x641b24], 0
je 0x416a9d
cmp eax, 0x3000
je 0x416abd
cmp dword [0x641b2c], 0
je 0x416aad
cmp eax, 0x4000
je 0x416abd
cmp dword [0x641b34], 0
je 0x416b1d
cmp eax, 0x5000
jne 0x416b1d
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
lea eax, [ebp - 0x44]
push str.ForceUpdate
push eax
call fcn.00470de9
add esp, 0x20
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebx + 0x8f0]
call fcn.00404bb9
push 0
push edi
push esi
push 0
lea eax, [ebp - 0x44]
push str.ForceUpdateType
push eax
call fcn.00470adc
add esp, 0x18
mov dword [ebx + 0x908], eax
push 0
push edi
push esi
push 0
push str.EnableWriteBack9X
push 0x5c5a58
call fcn.00470adc
add esp, 0x18
mov dword [ebx + 0x44d4], eax
lea ecx, [ebp - 0x29dc]
call fcn.00436114
and dword [ebp - 0x2990], 0
lea ecx, [ebp - 0x29a0]
xor eax, eax
mov byte [ebp - 4], 0xa
push eax
mov word [ebp - 0x29a0], ax
mov eax, 0x5c4f10
push eax
mov dword [ebp - 0x298c], 7
call fcn.00404be0
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
mov byte [ebp - 4], 0xb
push eax
mov eax, 0x5c4f10
push eax
push str.VersionFile
push 0x5c5a58
call fcn.00470de9
add esp, 0x20
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea ecx, [ebx + 0xb04]
push eax
call fcn.00404bb9
lea eax, [ebx + 0xb04]
cmp dword [eax + 0x14], 8
jb 0x416bca
mov eax, dword [eax]
push eax
push str.m_strVersionFile____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
push ecx
push ecx
lea eax, [ebx + 0x97c]
mov dword [ebp - 0x39fc], esp
mov ecx, esp
push eax
call fcn.00401bb9
sub esp, 0x18
mov byte [ebp - 4], 0xc
lea edx, [ebx + 0xb04]
mov ecx, esp
push edx
call fcn.00401bb9
lea ecx, [ebp - 0x29dc]
mov byte [ebp - 4], 0xb
call fcn.004361fd
lea eax, [ebp - 0x29a0]
push eax
sub esp, 0x18
mov ecx, esp
push str.MPDRIVER_VER
call fcn.00401c0c
lea ecx, [ebp - 0x29dc]
call fcn.00436131
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
mov ecx, edi
cmovae eax, dword [ebp - 0x29a0]
push eax
push str.__STR_MPDRIVER_VER__
call fcn.0046d72a
xor eax, eax
lea ecx, [ebp - 0x29a0]
push 0
inc eax
push eax
call fcn.00404970
lea ecx, [ebp - 0x29dc]
mov byte [ebp - 4], 5
call fcn.00407b4c
push 0
push edi
push esi
push 0
push str.PnPWaitDetectionType
push 0x5c5a58
call fcn.00470adc
push 0
push edi
push esi
push 0
push str.UnregisterUninstaller
push 0x5c5a58
mov dword [ebx + 0x4520], eax
call fcn.00470adc
push 0
push edi
push esi
push 0
push str.MonolithicDriver
push 0x5c5a58
mov dword [ebx + 0x4524], eax
call fcn.00470adc
add esp, 0x48
mov dword [ebx + 0x4534], eax
lea eax, [ebp - 0x2338]
push 0
push edi
push esi
push 0x104
push eax
mov eax, 0x5c4f10
push eax
push str.Version
push 0x5c5a64
call fcn.00470de9
add esp, 0x20
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea ecx, [ebx + 0xb1c]
push eax
call fcn.00404bb9
lea eax, [ebx + 0xb1c]
cmp dword [eax + 0x14], 8
jb 0x416d1c
mov eax, dword [eax]
push eax
push str.m_strUninstallerVersion____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.TargetDir
push 0x5c5a64
call fcn.00470de9
add esp, 0x30
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea esi, [ebx + 0xb7c]
push eax
mov ecx, esi
call fcn.00404bb9
cmp dword [esi + 0x14], 8
jb 0x416d7c
mov eax, dword [esi]
jmp 0x416d7e
mov eax, esi
push 0x7c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046eb6a
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
push 2
pop ecx
cmp eax, ecx
lea ecx, [ebp - 0x3a38]
jne 0x416df4
push 0
call fcn.0046dbf8
lea esi, [ebx + 0xb64]
push eax
mov ecx, esi
call fcn.00404bb9
xor eax, eax
lea ecx, [ebp - 0x3a38]
inc eax
push eax
call fcn.0046dbf8
push eax
mov ecx, esi
call fcn.00404a5c
xor eax, eax
mov dword [ebp - 0x39fc], 0x5c
inc eax
mov ecx, esi
push eax
push 0
lea eax, [ebp - 0x39fc]
push eax
call fcn.00420923
test eax, eax
jne 0x416e62
jmp 0x416e53
call fcn.0046d95f
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x416e4d
push ecx
push 0
lea eax, [ebp - 0x39fc]
mov dword [ebp - 0x39fc], 0x7c
push eax
mov ecx, esi
call fcn.00420923
push 0
cmp eax, 0xffffffff
je 0x416e2a
lea esi, [ebx + 0xb64]
jmp 0x416e55
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
lea esi, [ebx + 0xb64]
push eax
mov ecx, esi
call fcn.00404bb9
push 0
lea ecx, [ebx + 0xb7c]
jmp 0x416e57
lea esi, [ebx + 0xb64]
push 0
mov ecx, esi
mov eax, 0x5c4f10
push eax
call fcn.00404be0
cmp dword [esi + 0x14], 8
jb 0x416e6c
mov eax, dword [esi]
jmp 0x416e6e
mov eax, esi
push eax
push str.m_strDirUninstaller____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
lea eax, [ebx + 0xb7c]
add esp, 0x10
cmp dword [eax + 0x14], 8
jb 0x416e91
mov eax, dword [eax]
push eax
push str.m_strUninstallerRemoveDir____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
push 0
push edi
push dword [ebp - 0x3a08]
lea eax, [ebp - 0x2338]
push 0x104
push eax
mov eax, 0x5c4f10
push eax
push str.ProductGUID
push 0x5c5a64
call fcn.00470de9
add esp, 0x30
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea ecx, [ebx + 0xb4c]
push eax
call fcn.00404bb9
lea eax, [ebx + 0xb4c]
cmp dword [eax + 0x14], 8
jb 0x416ef8
mov eax, dword [eax]
push eax
push str.m_strUninstallerGUID____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
push 0
push edi
push dword [ebp - 0x3a08]
lea eax, [ebp - 0x2338]
push 0x104
push eax
mov eax, 0x5c4f10
push eax
push str.UpgradeUninstallExclusionFunctions
push 0x5c5a64
call fcn.00470de9
add esp, 0x30
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea ecx, [ebx + 0xb94]
push eax
call fcn.00404bb9
lea eax, [ebx + 0xb94]
cmp dword [eax + 0x14], 8
jb 0x416f5f
mov eax, dword [eax]
push eax
push str.m_strUpgUninstExclusionFunctions____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
add esp, 0x10
call fcn.00474a71
mov ecx, edi
mov eax, dword [eax + 4]
cmp dword [eax + 0x460c], 0
je 0x416f8e
push 0x5c6b74
jmp 0x416f93
push 0x5c6bc0
push str.__NAME_OPT_UNINSTALLER_SILENT__
call fcn.0046d72a
lea ecx, [ebx + 0x338]
call fcn.0044ce77
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 0x416fd0
mov eax, dword [esi]
jmp 0x416fd2
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
je 0x417017
push str.___FLD_SYSTEM___
mov ecx, edi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
push 0x5c4f0c
lea ecx, [ebp - 0x2970]
call fcn.00404a5c
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x2970]
call fcn.004049b6
jmp 0x417023
push esi
lea ecx, [ebp - 0x2970]
call fcn.0040820f
push 0x5c4f0c
lea ecx, [ebp - 0x2970]
call fcn.00404a5c
push 0xffffffffffffffff
push 0
lea ecx, [ebx + 0xb4c]
push ecx
lea ecx, [ebp - 0x2970]
call fcn.004049b6
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
mov ecx, edi
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__UNINSTALLER_DIR__
call fcn.0046d72a
cmp dword [ebp - 0x295c], 8
lea ecx, [ebp - 0x2338]
push 0x1001
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 0x41709f
lea eax, [ebp - 0x2338]
jmp 0x4170b3
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__UNINSTALLER_SHORT_DIR__
call fcn.0046d72a
xor esi, esi
mov byte [ebp - 4], 5
push 0
inc esi
lea ecx, [ebp - 0x2970]
push esi
call fcn.00404970
lea ecx, [ebx + 0x338]
call fcn.0044c786
test eax, eax
je 0x41a71a
push esi
mov esi, dword [ebp - 0x3a08]
lea eax, [ebp - 0x2338]
push edi
push esi
push 0x104
push eax
mov eax, 0x5c4f10
push eax
push str.Diskspace
push 0x5c5a58
call fcn.00470de9
mov eax, dword [ebp - 0x3a10]
add esp, 0x20
inc eax
mov ecx, edi
mov dword [ebp - 0x39fc], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
call fcn.0046f4e7
test eax, eax
je 0x41718a
push dword [ebp - 0x39fc]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x41718a
and dword [ebp - 0x39fc], 0
lea eax, [ebp - 0x39fc]
push 0xa
push eax
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
call fcn.005929f9
push eax
push str.m_nDiskspace_MB_____1_ld___n
push str.CInitInfoStorage::Init
push 5
mov dword [ebx + 0xa50], eax
call fcn.00424dad
add esp, 0x1c
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.MinMXDW
push 0x5c5a58
call fcn.00470de9
add esp, 0x20
lea ecx, [ebp - 0x2988]
call fcn.0046d5d4
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0xe
call fcn.0046d5d4
xor eax, eax
lea ecx, [ebp - 0x2970]
push eax
push eax
mov dword [ebp - 0x2960], eax
mov dword [ebp - 0x295c], eax
call fcn.00404970
push 0x2c
lea eax, [ebp - 0x2338]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046eb6a
push 0x20
lea ecx, [ebp - 0x2988]
call fcn.0046f50b
lea ecx, [ebp - 0x2988]
call fcn.0046d95f
cmp eax, 1
jb 0x41735e
push 0x2e
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.0046eb6a
lea ecx, [ebp - 0x29a0]
call fcn.0046d95f
push 4
pop ecx
cmp eax, ecx
je 0x4172a1
mov edi, dword [ebp - 0x39f8]
push str.MinMXDW
push 0x5c5a58
push 0xbb9
mov eax, dword [edi]
push edi
call dword [eax + 0xc]
add esp, 0x10
lea ecx, [ebp - 0x2970]
xor edi, edi
inc edi
push 0
push edi
call fcn.00404970
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0xe
call fcn.0046d690
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 5
call fcn.0046d690
jmp 0x41a71d
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
push 0x5c6c8c
lea ecx, [ebp - 0x2970]
call fcn.00404a5c
lea ecx, [ebp - 0x2988]
call fcn.0046d95f
push 2
pop ecx
cmp eax, ecx
jb 0x41734c
xor eax, eax
lea ecx, [ebp - 0x2988]
push 0x2d
inc eax
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.0046eb6a
lea ecx, [ebp - 0x29a0]
call fcn.0046d95f
cmp eax, 3
je 0x41733a
xor eax, eax
lea ecx, [ebp - 0x2988]
push 0x2f
inc eax
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.0046eb6a
lea ecx, [ebp - 0x29a0]
call fcn.0046d95f
cmp eax, 3
jne 0x41724f
xor eax, eax
lea ecx, [ebp - 0x2988]
inc eax
push eax
call fcn.0046dbf8
push eax
jmp 0x417351
push 0x5c6c90
lea ecx, [ebp - 0x2970]
call fcn.00404a5c
jmp 0x41736e
push str.0.0.0.0_00_00_0000
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
mov ecx, edi
cmovae eax, dword [ebp - 0x2970]
push eax
push str.__VAL_MIN_MXDWVER__
call fcn.0046d72a
xor eax, eax
lea ecx, [ebp - 0x2970]
push 0
inc eax
push eax
call fcn.00404970
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0xe
call fcn.0046d690
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 5
call fcn.0046d690
push 0
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
lea eax, [ebp - 0x2c]
push str.Common
push eax
call fcn.00470de9
mov eax, dword [ebp - 0x3a10]
add esp, 0x20
inc eax
mov ecx, edi
mov dword [ebp - 0x39fc], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
call fcn.0046f4e7
test eax, eax
je 0x417487
push dword [ebp - 0x39fc]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x417487
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00401c0c
lea eax, [ebx + 0x994]
mov byte [ebp - 4], 0x11
lea esi, [ebx + 0x9ac]
push eax
mov ecx, esi
call fcn.0040820f
cmp dword [ebp - 0x29a4], 8
lea eax, [ebp - 0x29b8]
cmovae eax, dword [ebp - 0x29b8]
push eax
push esi
call fcn.0047026a
pop ecx
pop ecx
xor eax, eax
mov byte [ebp - 4], 5
push 0
inc eax
lea ecx, [ebp - 0x29b8]
push eax
call fcn.00404970
mov esi, dword [ebp - 0x3a08]
xor eax, eax
inc eax
push eax
push edi
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
lea eax, [ebp - 0x2c]
push 0
push eax
call fcn.00470de9
lea eax, [ebp - 0x2338]
push eax
push str.DirOS____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
add esp, 0x30
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
xor eax, eax
lea ecx, [ebp - 0x2970]
push eax
push eax
mov dword [ebp - 0x2960], eax
mov dword [ebp - 0x295c], eax
call fcn.00404970
xor eax, eax
mov byte [ebp - 4], 0x13
inc eax
lea ecx, [ebp - 0x3388]
mov dword [ebp - 0x39f4], eax
mov dword [ebp - 0x3a14], eax
call fcn.00437089
lea eax, [ebx + 0x9ac]
cmp dword [eax + 0x14], 8
jb 0x417517
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x3388]
call fcn.004366a9
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00404bb9
push 0
lea ecx, [ebp - 0x29d0]
call fcn.0041fc66
push 0x3e
pop ecx
mov dword [ebp - 0x39fc], 0x18
cmp word [eax], cx
jne 0x417cb2
push 2
pop eax
cmp dword [ebp - 0x29c0], eax
jae 0x4175af
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x2338]
push ecx
lea ecx, [ebp - 0x2c]
push ecx
mov eax, dword [edi]
push 0xbb9
push edi
call dword [eax + 0xc]
add esp, 0x10
xor edi, edi
lea ecx, [ebp - 0x2970]
push 0
inc edi
push edi
call fcn.00404970
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
jmp 0x41a71d
lea ecx, [ebp - 0x3a20]
call fcn.00406c4b
xor eax, eax
mov byte [ebp - 4], 0x14
push 0xffffffffffffffff
inc eax
lea ecx, [ebp - 0x29d0]
push eax
lea eax, [ebp - 0x29b8]
push eax
call fcn.00404d72
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00401e90
xor eax, eax
lea ecx, [ebp - 0x29b8]
push 0
inc eax
push eax
call fcn.00404970
cmp dword [ebp - 0x29bc], 8
lea ecx, [ebp - 0x2d88]
push 0
push dword [ebp + 0xc]
lea eax, [ebp - 0x29d0]
cmovae eax, dword [ebp - 0x29d0]
push esi
push ecx
push eax
call fcn.00470c0a
add esp, 0x14
lea ecx, [ebp - 0x2d88]
xor esi, esi
mov dword [ebp - 0x3a14], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x417ad9
and dword [ebp - 0x3a00], 0
lea ecx, [ebp - 0x2d88]
push esi
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
mov esi, eax
mov dword [ebp - 0x3a04], esi
test esi, esi
je 0x417bd9
xor eax, eax
cmp ax, word [esi]
je 0x417bd9
push dword [ebp - 0x3a14]
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
test eax, eax
je 0x417bd6
xor ecx, ecx
cmp cx, word [eax]
je 0x417bd6
push eax
mov ecx, edi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00404bb9
cmp dword [ebp - 0x29bc], 8
lea eax, [ebp - 0x29d0]
push 0x7c
cmovae eax, dword [ebp - 0x29d0]
lea ecx, [ebp - 0x3a38]
push eax
call fcn.0046eb6a
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
cmp eax, 3
jb 0x41771d
push 2
pop eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
mov esi, eax
push esi
push str.Condition____1_s___n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
push esi
call fcn.0041c595
add esp, 0x14
test eax, eax
jne 0x41771d
push str.__Do_not_copy._n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
add esp, 0xc
jmp 0x417ab9
mov eax, 0x5c4f10
lea ecx, [ebp - 0x2970]
push eax
call fcn.00404bb9
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
push 2
pop ecx
cmp eax, ecx
jb 0x41775b
xor eax, eax
lea ecx, [ebp - 0x3a38]
inc eax
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00404bb9
cmp dword [ebp - 0x29bc], 8
lea eax, [ebp - 0x29d0]
lea esi, [ebp - 0x29d0]
cmovae esi, dword [ebp - 0x29d0]
lea ecx, [ebp - 0x3a38]
cmovae eax, dword [ebp - 0x29d0]
push 0x2c
push eax
mov dword [ebp - 0x3a50], esi
mov dword [ebp - 0x39f4], esi
call fcn.0046eb6a
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046f50b
and dword [ebp - 0x3a0c], 0
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
test eax, eax
je 0x4178de
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
push 0
lea ecx, [ebp - 0x3a38]
mov esi, eax
call fcn.0046dc88
push dword [ebp - 0x3a0c]
inc eax
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a3c], eax
call fcn.0046dbf8
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4178b8
push str._none_
push esi
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x4179fa
test esi, esi
je 0x4178ae
push 0x3c
pop eax
cmp word [esi], ax
jne 0x4178ae
push dword [ebp - 0x3a3c]
push esi
call fcn.00591dbe
pop ecx
pop ecx
push 0x3e
pop ecx
cmp word [esi + eax*2 - 2], cx
jne 0x4178ae
push esi
push str.pInboxInfo___1_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
add esp, 0x10
lea ecx, [ebp - 0x29b8]
call fcn.0046d5d4
push 0x21
push esi
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x15
call fcn.0046eb6a
lea ecx, [ebp - 0x29b8]
call fcn.0046d95f
push 2
pop ecx
cmp eax, ecx
jne 0x417b96
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x14
call fcn.0046d690
jmp 0x4178b0
xor esi, esi
test esi, esi
je 0x4179ea
mov esi, dword [ebp - 0x3a0c]
lea ecx, [ebp - 0x3a38]
inc esi
mov dword [ebp - 0x3a0c], esi
call fcn.0046d95f
cmp esi, eax
jb 0x4177d6
mov esi, dword [ebp - 0x3a50]
test esi, esi
je 0x4178e9
xor eax, eax
cmp ax, word [esi]
jne 0x4178f6
cmp dword [ebp - 0x3a00], 0
je 0x417a2e
cmp dword [ebp - 0x2960], 0
je 0x417a2e
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
push 0x2c
cmovae eax, dword [ebp - 0x2970]
lea ecx, [ebp - 0x3a38]
push eax
call fcn.0046eb6a
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046f50b
lea ecx, [ebp - 0x3a38]
xor esi, esi
call fcn.0046d95f
test eax, eax
je 0x417a2e
mov eax, 0x5c4f10
lea ecx, [ebp - 0x2970]
push eax
call fcn.00404bb9
lea eax, [ebp - 0x2970]
push eax
push esi
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
push eax
call fcn.004369b0
pop ecx
pop ecx
test eax, eax
je 0x417a24
cmp dword [ebp - 0x29c0], 0
je 0x417994
push 0x5c6c8c
lea ecx, [ebp - 0x29d0]
call fcn.00404a5c
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x2970]
push eax
lea ecx, [ebp - 0x29d0]
call fcn.004049b6
lea eax, [ebp - 0x29d0]
push 0x2c
push eax
call fcn.0046d16a
cmp dword [ebp - 0x29bc], 8
lea eax, [ebp - 0x29d0]
pop ecx
cmovae eax, dword [ebp - 0x29d0]
inc esi
pop ecx
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x39f4], eax
call fcn.0046d95f
cmp esi, eax
jb 0x417947
jmp 0x417a2e
mov esi, 0x5c5a54
mov dword [ebp - 0x39f4], esi
jmp 0x4178de
xor eax, eax
lea ecx, [ebp - 0x29d0]
inc eax
mov esi, 0x5c5a54
mov dword [ebp - 0x3a00], eax
mov eax, 0x5c4f10
push eax
mov dword [ebp - 0x39f4], esi
call fcn.00404bb9
jmp 0x4178de
mov dword [ebp - 0x39f4], 0x5c5a54
lea eax, [ebp - 0x39f4]
push eax
lea eax, [ebp - 0x3a04]
push eax
lea ecx, [ebp - 0x2a30]
call fcn.0040522c
push eax
lea eax, [ebp - 0x3a48]
mov byte [ebp - 4], 0x16
push eax
lea ecx, [ebx + 0xa0c]
call fcn.004068f0
lea ecx, [ebp - 0x2a30]
mov byte [ebp - 4], 0x14
call fcn.00407af3
cmp dword [ebp - 0x3a00], 0
je 0x417ab9
push dword [ebp - 0x3a04]
lea ecx, [ebp - 0x29b8]
call fcn.00401c0c
lea eax, [ebp - 0x29b8]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x3a60]
push eax
lea ecx, [ebp - 0x3a20]
call fcn.00420aaf
xor eax, eax
mov byte [ebp - 4], 0x14
push 0
inc eax
lea ecx, [ebp - 0x29b8]
push eax
call fcn.00404970
mov esi, dword [ebp - 0x3a14]
lea ecx, [ebp - 0x2d88]
inc esi
mov dword [ebp - 0x3a14], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x417638
mov eax, 0x5c4f10
lea ecx, [ebp - 0x29d0]
push eax
call fcn.00404bb9
mov eax, dword [ebx + 0xa0c]
mov esi, dword [ebx + 0xa10]
mov dword [ebp - 0x39f4], esi
mov dword [ebp - 0x3a14], esi
mov edi, dword [eax]
mov dword [ebp - 0x3a04], edi
cmp edi, eax
je 0x417c79
lea eax, [edi + 0x10]
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00401bb9
cmp dword [ebp - 0x29a4], 8
lea ecx, [ebp - 0x29a0]
push 0x18
pop eax
mov byte [ebp - 4], al
lea eax, [ebp - 0x29b8]
cmovae eax, dword [ebp - 0x29b8]
push eax
call fcn.00401c0c
mov esi, dword [ebp - 0x3a20]
lea eax, [ebp - 0x29a0]
push eax
lea eax, [ebp - 0x3a3c]
push eax
lea ecx, [ebp - 0x3a20]
call fcn.0042e43d
lea ecx, [ebp - 0x29a0]
cmp esi, dword [eax]
setne bl
xor eax, eax
xor esi, esi
inc eax
push esi
push eax
call fcn.00404970
test bl, bl
je 0x417c17
dec dword [ebp - 0x3a14]
dec dword [ebp - 0x39f4]
jmp 0x417c22
cmp dword [ebp - 0x2a4c], 8
lea ecx, [ebp - 0x2a60]
mov edi, dword [ebp - 0x39f8]
push dword [ebp - 0x3a04]
cmovae ecx, dword [ebp - 0x2a60]
push ecx
mov eax, dword [edi]
push 0xbb9
push edi
call dword [eax + 0xc]
add esp, 0x10
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x29b8]
call fcn.0046d690
jmp 0x417c07
push esi
jmp 0x417bde
push str._KEY_
cmp dword [ebp - 0x29bc], 8
lea ecx, [ebp - 0x29d0]
mov edi, dword [ebp - 0x39f8]
cmovae ecx, dword [ebp - 0x29d0]
push ecx
push 0xbb9
mov eax, dword [edi]
push edi
call dword [eax + 0xc]
add esp, 0x10
lea ecx, [ebp - 0x3a20]
call fcn.00407a8b
jmp 0x41758a
cmp dword [edi + 0x38], esi
jne 0x417c22
dec dword [ebp - 0x3a14]
push 0xffffffffffffffff
push esi
add edi, 0x28
lea ecx, [ebp - 0x29d0]
push edi
call fcn.004049b6
xor ebx, ebx
mov byte [ebp - 4], 0x14
push esi
inc ebx
lea ecx, [ebp - 0x29b8]
push ebx
call fcn.00404970
lea ecx, [ebp - 0x3a04]
call fcn.004212e4
push 0x2c
push ebx
lea ecx, [ebp - 0x29d0]
call fcn.0041fc03
mov ebx, dword [ebp - 0x3a54]
mov edi, dword [ebp - 0x3a04]
cmp edi, dword [ebx + 0xa0c]
jne 0x417b12
lea eax, [ebp - 0x29d0]
push 0x2c
push eax
call fcn.0046d0e5
lea eax, [ebp - 0x29d0]
push 0x2c
push eax
call fcn.0046d16a
add esp, 0x10
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x3a20]
call fcn.00407a8b
mov esi, dword [ebp - 0x3a08]
lea edi, [ebx + 4]
jmp 0x417cf1
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 0x417cf1
mov eax, 0x5c4f10
lea ecx, [ebp - 0x29d0]
push eax
call fcn.00404bb9
and dword [ebp - 0x39f4], 0
and dword [ebp - 0x3a14], 0
cmp dword [ebp - 0x29bc], 8
lea eax, [ebp - 0x29d0]
lea ecx, [ebp - 0x2a30]
cmovae eax, dword [ebp - 0x29d0]
mov dword [ebp - 0x3a3c], eax
lea eax, [ebp - 0x3a3c]
push eax
push 0x5c6d78
call fcn.004052c8
push eax
lea eax, [ebp - 0x3a20]
mov byte [ebp - 4], 0x19
lea ecx, [ebx + 0xa0c]
push eax
call fcn.004068f0
lea ecx, [ebp - 0x2a30]
mov byte [ebp - 4], 0x13
call fcn.00407af3
mov edx, dword [ebp - 0x3a14]
xor eax, eax
cmp dword [ebp - 0x39f4], edx
sete al
movzx ecx, ax
xor eax, eax
cmp edx, 1
cmove eax, dword [ebp - 0x3a4c]
or cx, ax
xor eax, eax
test edx, edx
cmove eax, dword [ebp - 0x3a58]
or ax, cx
mov word [ebx + 0xa88], ax
cmp edx, 1
jbe 0x417d92
cmp edx, dword [ebp - 0x39f4]
jae 0x417d92
push 8
pop ecx
jmp 0x417d94
xor ecx, ecx
or eax, ecx
lea ecx, [ebp - 0x3388]
mov word [ebx + 0xa88], ax
call fcn.00437089
xor eax, eax
lea ecx, [ebp - 0x2970]
push 0
inc eax
push eax
call fcn.00404970
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]
mov edx, 0x5c4f10
test cl, 8
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, 0x5c6da4
cmove eax, edx
test cl, 1
push eax
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.00424dad
add esp, 0x1c
xor eax, eax
inc eax
mov ecx, ebx
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push 0
lea eax, [ebp - 0x2c]
push eax
call fcn.0040b699
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x29d0]
call fcn.00404bb9
push 0
push esi
push 0x104
lea eax, [ebp - 0x2338]
mov ecx, ebx
push eax
push 0x5c6c8c
push str.Delimiter
lea eax, [ebp - 0x88]
push eax
call fcn.0040b699
mov ecx, 0x5c4f10
push ecx
lea ecx, [ebx + 0xa38]
call fcn.00404bb9
test byte [ebx + 0xa88], 1
jne 0x418a4e
lea ecx, [ebp - 0x3388]
call fcn.00437089
lea eax, [ebx + 0x994]
cmp dword [eax + 0x14], 8
jb 0x417eba
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x3388]
call fcn.004366a9
xor eax, eax
mov edi, eax
mov dword [ebp - 0x29d8], eax
mov dword [ebp - 0x29dc], edi
mov dword [ebp - 0x29d4], eax
mov esi, eax
mov dword [ebp - 0x29f0], eax
mov dword [ebp - 0x29f4], esi
mov dword [ebp - 0x29ec], eax
push 0x20a
push eax
lea eax, [ebp - 0x334]
mov byte [ebp - 4], 0x1b
push eax
call fcn.0058e700
push 0x20a
lea eax, [ebp - 0x2f94]
push esi
push eax
call fcn.0058e700
mov ecx, 0x105
lea eax, [ebp - 0x2f94]
push ecx
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.00592b69
lea eax, [ebp - 0x2f94]
push eax
lea eax, [ebp - 0x334]
push eax
call fcn.00406a1a
add esp, 0x44
lea eax, [ebp - 0x2f94]
push 0x5c6e08
push eax
call fcn.00406a32
lea eax, [ebp - 0x334]
push eax
lea eax, [ebp - 0x2f94]
push eax
call fcn.00406a1a
add esp, 0x10
lea eax, [ebp - 0x88]
lea ecx, [ebp - 0x36b0]
push 9
push eax
push esi
push 0x105
lea eax, [ebp - 0x2f94]
push eax
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 0x418a08
and dword [ebp - 0x3a0c], 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 0x417fc3
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x3388]
call fcn.004366a9
and dword [ebp - 0x3a14], 0
lea ecx, [ebp - 0x36b0]
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x418841
mov esi, dword [ebp - 0x3a14]
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.00404970
xor eax, eax
mov byte [ebp - 4], 0x1d
inc eax
lea ecx, [ebp - 0x36b0]
push esi
mov dword [ebp - 0x3a00], eax
mov dword [ebp - 0x39f4], eax
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetKey_unsigned_long_int_
push eax
lea ecx, [ebx + 4]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
lea eax, [ebp - 0x29d0]
push eax
lea ecx, [ebp - 0x2970]
call fcn.0041fd32
lea ecx, [ebp - 0x2970]
test eax, eax
jne 0x41806d
push edi
inc eax
push eax
jmp 0x418802
push str.Delimiter
call fcn.0041fdbb
push edi
test eax, eax
jne 0x418083
inc eax
push eax
jmp 0x4187fc
push edi
lea ecx, [ebp - 0x2988]
mov dword [ebp - 0x2978], edi
mov dword [ebp - 0x2974], edi
call fcn.00404970
push str.CPU_ARCH_TEST._n
push str.CInitInfoStorage::Init
push 5
mov byte [ebp - 4], 0x1e
call fcn.00424dad
mov eax, dword [ebp - 0x2960]
add esp, 0xc
push 4
pop ecx
cmp eax, ecx
jb 0x418186
push 0xffffffffffffffff
add eax, 0xfffffffc
lea ecx, [ebp - 0x2970]
push eax
lea eax, [ebp - 0x29b8]
push eax
call fcn.00404d72
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401e90
xor eax, eax
lea ecx, [ebp - 0x29b8]
push edi
inc eax
push eax
call fcn.00404970
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]
lea ecx, [ebp - 0x2988]
push eax
call fcn.00404c7b
push fcn.00590202
push edi
push dword [eax]
lea eax, [ebp - 0x3a70]
push esi
push eax
call fcn.004069eb
add esp, 0x14
lea ecx, [ebp - 0x2988]
push str..ALL
call fcn.0041fdbb
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.00424dad
add esp, 0xc
test esi, esi
jne 0x4183b9
mov eax, dword [ebp - 0x2960]
push 4
pop ecx
cmp dword [0x641b4c], 0
je 0x418249
cmp eax, 3
jb 0x418249
push 0xffffffffffffffff
add eax, 0xfffffffd
lea ecx, [ebp - 0x2970]
push eax
lea eax, [ebp - 0x29b8]
push eax
call fcn.00404d72
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401e90
xor eax, eax
lea ecx, [ebp - 0x29b8]
push edi
inc eax
push eax
call fcn.00404970
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x3a68]
lea edi, [ebp - 0x2988]
cmovae edi, dword [ebp - 0x2988]
lea esi, [ebp - 0x2988]
cmovae esi, dword [ebp - 0x2988]
lea ecx, [ebp - 0x2988]
push eax
call fcn.00404c7b
push fcn.00590202
push edi
push dword [eax]
lea eax, [ebp - 0x3a64]
push esi
push eax
call fcn.004069eb
add esp, 0x14
lea ecx, [ebp - 0x2988]
push 0x5c6e4c
call fcn.0041fdbb
test eax, eax
je 0x41823f
xor esi, esi
lea ecx, [ebp - 0x2988]
xor edi, edi
inc esi
jmp 0x4187f3
push str.Current_CPU_ARCH_x64_matched._n
jmp 0x4183a6
cmp dword [0x641b50], 0
je 0x4182ff
cmp eax, ecx
jb 0x4182ff
push 0xffffffffffffffff
add eax, 0xfffffffc
lea ecx, [ebp - 0x2970]
push eax
lea eax, [ebp - 0x29b8]
push eax
call fcn.00404d72
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401e90
xor eax, eax
lea ecx, [ebp - 0x29b8]
push edi
inc eax
push eax
call fcn.00404970
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]
lea ecx, [ebp - 0x2988]
push eax
call fcn.00404c7b
push fcn.00590202
push edi
push dword [eax]
lea eax, [ebp - 0x3a5c]
push esi
push eax
call fcn.004069eb
add esp, 0x14
lea ecx, [ebp - 0x2988]
push str.IA64
call fcn.0041fdbb
test eax, eax
jne 0x41822f
push str.Current_CPU_ARCH_IA64_matched._n
jmp 0x4183a6
push 2
pop ecx
cmp eax, ecx
jb 0x4183b9
push 0xffffffffffffffff
add eax, 0xfffffffe
lea ecx, [ebp - 0x2970]
push eax
lea eax, [ebp - 0x29b8]
push eax
call fcn.00404d72
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401e90
xor eax, eax
lea ecx, [ebp - 0x29b8]
push edi
inc eax
push eax
call fcn.00404970
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x3a44]
lea edi, [ebp - 0x2988]
cmovae edi, dword [ebp - 0x2988]
lea esi, [ebp - 0x2988]
cmovae esi, dword [ebp - 0x2988]
lea ecx, [ebp - 0x2988]
push eax
call fcn.00404c7b
push fcn.00590202
push edi
push dword [eax]
lea eax, [ebp - 0x3a1c]
push esi
push eax
call fcn.004069eb
add esp, 0x14
lea ecx, [ebp - 0x2988]
push 0x5c6ea0
call fcn.0041fdbb
test eax, eax
je 0x41822f
push str.Current_CPU_ARCH_x86_matched._n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
add esp, 0xc
xor edi, edi
xor esi, esi
mov byte [ebp - 4], 0x1d
push edi
inc esi
lea ecx, [ebp - 0x2988]
push esi
call fcn.00404970
push edi
lea ecx, [ebp - 0x2970]
call fcn.0041fc66
push 0x3e
pop ecx
cmp word [eax], cx
jne 0x418783
push 2
pop eax
cmp dword [ebp - 0x2960], eax
jb 0x41888f
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x29b8]
mov dword [ebp - 0x3a00], edi
push eax
lea ecx, [ebp - 0x2970]
mov dword [ebp - 0x39f4], edi
call fcn.00404d72
push eax
lea ecx, [ebp - 0x2970]
call fcn.00401e90
push edi
push esi
lea ecx, [ebp - 0x29b8]
call fcn.00404970
cmp dword [ebp - 0x295c], 8
lea ecx, [ebp - 0x2d88]
push edi
push dword [ebp + 0xc]
lea eax, [ebp - 0x2970]
push dword [ebp - 0x3a08]
cmovae eax, dword [ebp - 0x2970]
push ecx
push eax
mov ecx, ebx
call fcn.0040b67b
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a3c], edi
mov esi, edi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x418740
mov ebx, dword [ebp - 0x3a18]
xor eax, eax
mov dword [ebp - 0x3a50], edi
push eax
push eax
lea ecx, [ebp - 0x2988]
mov dword [ebp - 0x2978], eax
lea edi, [eax + 1]
mov dword [ebp - 0x2974], eax
mov dword [ebp - 0x3a4c], edi
call fcn.00404970
push esi
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 0x41870a
xor ecx, ecx
cmp cx, word [eax]
je 0x41870a
push 0x7c
push eax
mov ecx, ebx
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046eb6a
mov eax, 0x5c4f10
lea ecx, [ebp - 0x2988]
push eax
call fcn.00404bb9
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
push 2
pop ecx
cmp eax, ecx
jb 0x41851d
xor eax, eax
lea ecx, [ebp - 0x3a38]
inc eax
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2988]
call fcn.00404bb9
xor esi, esi
lea ecx, [ebp - 0x3a38]
push esi
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
push 0x2c
cmovae eax, dword [ebp - 0x2970]
lea ecx, [ebp - 0x3a38]
push eax
call fcn.0046eb6a
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046f50b
lea ecx, [ebp - 0x3a38]
mov dword [ebp - 0x3a04], esi
call fcn.0046d95f
test eax, eax
je 0x418644
push esi
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
push 0
lea ecx, [ebp - 0x3a38]
mov esi, eax
call fcn.0046dc88
push dword [ebp - 0x3a04]
lea ecx, [ebp - 0x3a38]
lea edi, [eax + 1]
call fcn.0046dbf8
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x418609
push str._none_
push esi
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x418633
test esi, esi
je 0x418603
push 0x3c
pop eax
cmp word [esi], ax
jne 0x418603
push edi
push esi
call fcn.00591dbe
pop ecx
pop ecx
push 0x3e
pop ecx
cmp word [esi + eax*2 - 2], cx
jne 0x418603
push esi
push str.pInboxInfo___1_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
add esp, 0x10
jmp 0x418605
xor esi, esi
test esi, esi
je 0x41862c
mov esi, dword [ebp - 0x3a04]
lea ecx, [ebp - 0x3a38]
inc esi
mov dword [ebp - 0x3a04], esi
call fcn.0046d95f
cmp esi, eax
jae 0x41863c
xor esi, esi
jmp 0x41857f
xor edi, edi
jmp 0x4186dc
xor eax, eax
inc eax
mov dword [ebp - 0x3a50], eax
mov edi, dword [ebp - 0x3a4c]
xor esi, esi
cmp dword [ebp - 0x2978], 0
je 0x4186d3
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x2988]
push 0x2c
cmovae eax, dword [ebp - 0x2988]
lea ecx, [ebp - 0x3a38]
push eax
call fcn.0046eb6a
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046f50b
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
test eax, eax
je 0x4186d3
mov eax, 0x5c4f10
lea ecx, [ebp - 0x2988]
push eax
call fcn.00404bb9
lea eax, [ebp - 0x2988]
push eax
push esi
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
push eax
call fcn.004369b0
pop ecx
pop ecx
test eax, eax
je 0x4186d1
lea ecx, [ebp - 0x3a38]
inc esi
call fcn.0046d95f
cmp esi, eax
jb 0x41868f
jmp 0x4186d3
xor edi, edi
cmp dword [ebp - 0x3a50], 0
jne 0x4186ec
inc dword [ebp - 0x3a00]
test edi, edi
je 0x4186ec
inc dword [ebp - 0x39f4]
xor edi, edi
mov byte [ebp - 4], 0x1d
xor eax, eax
lea ecx, [ebp - 0x2988]
push edi
inc eax
push eax
call fcn.00404970
mov esi, dword [ebp - 0x3a3c]
jmp 0x418720
xor edi, edi
mov byte [ebp - 4], 0x1d
xor eax, eax
lea ecx, [ebp - 0x2988]
push edi
inc eax
push eax
call fcn.00404970
inc esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a3c], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x41847c
mov ebx, dword [ebp - 0x3a54]
xor esi, esi
inc esi
mov eax, dword [ebp - 0x39f4]
cmp dword [ebp - 0x3a00], eax
jne 0x4187ad
push dword [ebp - 0x3a14]
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.0046ed66
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00401c0c
mov byte [ebp - 4], 0x20
lea ecx, [ebp - 0x29f4]
jmp 0x4187e1
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 0x418743
mov dword [ebp - 0x3a00], edi
mov eax, edi
jmp 0x418749
cmp eax, esi
jne 0x4187fa
push dword [ebp - 0x3a14]
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.0046ed66
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00401c0c
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x29dc]
lea eax, [ebp - 0x29b8]
push eax
call fcn.00420bd6
lea ecx, [ebp - 0x29b8]
push edi
push esi
call fcn.00404970
push edi
push esi
lea ecx, [ebp - 0x2970]
call fcn.00404970
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 0x1b
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
inc dword [ebp - 0x3a14]
lea ecx, [ebp - 0x36b0]
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
mov esi, dword [ebp - 0x3a14]
cmp esi, eax
jb 0x417ff1
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 - 0x39fc]
test eax, eax
je 0x418967
cmp esi, ecx
je 0x418944
cmp dword [ebp - 0x3a0c], 0
je 0x418909
lea eax, [ebp - 0x2338]
push eax
lea ecx, [ebx + 4]
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xa38]
call fcn.00404a5c
jmp 0x418912
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
mov edi, dword [ebp - 0x39f8]
cmovae eax, dword [ebp - 0x2970]
push eax
lea eax, [ebp - 0x88]
mov ecx, dword [edi]
push eax
push 0xbb9
push edi
call dword [ecx + 0xc]
add esp, 0x10
lea ecx, [ebp - 0x3388]
call fcn.00437089
xor edi, edi
lea ecx, [ebp - 0x2970]
push 0
inc edi
push edi
call fcn.00404970
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.0041fac8
lea ecx, [ebp - 0x29dc]
mov byte [ebp - 4], 5
call fcn.0041fac8
jmp 0x41a71d
xor eax, eax
inc eax
mov dword [ebp - 0x3a0c], eax
cmp dword [esi + 0x14], 8
jb 0x41891c
mov eax, dword [esi]
jmp 0x41891e
mov eax, esi
push eax
lea ecx, [ebx + 4]
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xa38]
call fcn.00404a5c
push 0x18
pop eax
add esi, eax
cmp esi, dword [ebp - 0x29f0]
jne 0x418862
mov ax, word [ebx + 0xa88]
mov ecx, 0xfff1
and ax, cx
push 4
movzx eax, ax
pop ecx
or eax, ecx
mov word [ebx + 0xa88], ax
jmp 0x418a08
movzx ecx, word [ebx + 0xa88]
push 2
pop eax
test al, cl
jne 0x418a08
push 4
pop eax
test al, cl
je 0x4189f8
mov esi, dword [ebp - 0x29d8]
mov eax, esi
sub eax, edi
cdq
idiv dword [ebp - 0x39fc]
test eax, eax
je 0x4189f8
cmp edi, esi
je 0x418a08
cmp dword [ebp - 0x3a0c], 0
je 0x4189bf
lea eax, [ebp - 0x2338]
push eax
lea ecx, [ebx + 4]
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xa38]
call fcn.00404a5c
jmp 0x4189c8
xor eax, eax
inc eax
mov dword [ebp - 0x3a0c], eax
cmp dword [edi + 0x14], 8
jb 0x4189d2
mov eax, dword [edi]
jmp 0x4189d4
mov eax, edi
push eax
lea ecx, [ebx + 4]
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xa38]
call fcn.00404a5c
push 0x18
pop eax
add edi, eax
cmp edi, dword [ebp - 0x29d8]
jne 0x418999
jmp 0x418a08
and ecx, 0xfff1
or ecx, 8
mov word [ebx + 0xa88], cx
lea eax, [ebx + 0xa38]
cmp dword [eax + 0x14], 8
jb 0x418a16
mov eax, dword [eax]
push eax
push str.m_strTargetOS____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
add esp, 0x10
lea ecx, [ebp - 0x29f4]
call fcn.0041fac8
lea ecx, [ebp - 0x29dc]
mov byte [ebp - 4], 5
call fcn.0041fac8
mov esi, dword [ebp - 0x3a08]
lea edi, [ebx + 4]
push str._________________________________________n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
movzx eax, word [ebx + 0xa88]
mov edx, 0x5c4f10
test al, 8
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, 0x5c6da4
cmove ecx, edx
test al, 1
push ecx
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.00424dad
lea eax, [ebx + 0xa38]
add esp, 0x28
cmp dword [eax + 0x14], 8
jb 0x418ac3
mov eax, dword [eax]
push eax
push str._ActualTarget___1_s__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
mov eax, dword [ebx + 0xa0c]
add esp, 0x10
mov ecx, dword [eax]
mov dword [ebp - 0x39fc], ecx
cmp ecx, eax
je 0x418b33
lea eax, [ecx + 0x28]
cmp dword [eax + 0x14], 8
jb 0x418af7
mov eax, dword [eax]
add ecx, 0x10
cmp dword [ecx + 0x14], 8
jb 0x418b02
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.00424dad
add esp, 0x14
lea ecx, [ebp - 0x39fc]
call fcn.004212e4
mov ecx, dword [ebp - 0x39fc]
cmp ecx, dword [ebx + 0xa0c]
jne 0x418aec
push str.__________________________________________n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
add esp, 0xc
xor eax, eax
inc eax
mov ecx, ebx
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push 0
lea eax, [ebp - 0x110]
push eax
call fcn.0040b699
mov eax, dword [ebp - 0x3a10]
mov ecx, edi
inc eax
mov dword [ebp - 0x3a18], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
call fcn.0046f4e7
test eax, eax
je 0x418c0a
push dword [ebp - 0x3a18]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x418c0a
and dword [ebp - 0x3a18], 0
lea eax, [ebp - 0x3a18]
push 0xa
push eax
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
call fcn.00592a11
push eax
push str.m_nServicePack____1_ld___n
push str.CInitInfoStorage::Init
push 5
mov dword [ebx + 0xa2c], eax
call fcn.00424dad
add esp, 0x1c
xor eax, eax
inc eax
mov ecx, ebx
push eax
push esi
push 0
push str.WARNTYPE
lea eax, [ebp - 0x110]
push eax
call fcn.0040b659
shl eax, 0x18
add dword [ebx + 0xa2c], eax
xor eax, eax
mov ecx, ebx
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push 0
lea eax, [ebp - 0x128]
push eax
call fcn.0040b699
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
push str.NotCopyInf_szBuf_1_s_._n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
mov eax, dword [ebp - 0x3a10]
add esp, 0x10
inc eax
mov ecx, edi
mov dword [ebp - 0x3a18], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
call fcn.0046f4e7
test eax, eax
je 0x418e22
push dword [ebp - 0x3a18]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x418e22
lea ecx, [ebp - 0x29b8]
call fcn.0046d5d4
push 0x2c
lea eax, [ebp - 0x2338]
mov byte [ebp - 4], 0x22
push eax
mov ecx, edi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x29b8]
call fcn.0046eb6a
test eax, eax
jne 0x418ce0
push str.NotCopyInf_string_separator_failed._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00424dad
add esp, 0xc
jmp 0x418e13
push str.NotCopyInf_string_separator_succeeded._n
push str.CInitInfoStorage::Init
push 2
pop eax
push eax
call fcn.00424dad
add esp, 0xc
lea ecx, [ebp - 0x2970]
xor eax, eax
mov dword [ebp - 0x2960], eax
mov dword [ebp - 0x295c], eax
push eax
push eax
call fcn.00404970
and dword [ebp - 0x3a04], 0
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x23
call fcn.0046d95f
test eax, eax
je 0x418e02
mov esi, dword [ebp - 0x3a04]
push esi
lea ecx, [ebp - 0x29b8]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x3a1c]
lea edi, [ebp - 0x2970]
cmovae edi, dword [ebp - 0x2970]
lea esi, [ebp - 0x2970]
cmovae esi, dword [ebp - 0x2970]
lea ecx, [ebp - 0x2970]
push eax
call fcn.00404c7b
push fcn.00590202
push edi
push dword [eax]
lea eax, [ebp - 0x3a44]
push esi
push eax
call fcn.004069eb
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.00424dad
add esp, 0x24
lea eax, [ebp - 0x2970]
lea ecx, [ebx + 0xa30]
push eax
lea eax, [ebp - 0x3a60]
push eax
call fcn.00420ace
mov esi, dword [ebp - 0x3a04]
lea ecx, [ebp - 0x29b8]
inc esi
mov dword [ebp - 0x3a04], esi
call fcn.0046d95f
cmp esi, eax
jb 0x418d35
mov esi, dword [ebp - 0x3a08]
lea edi, [ebx + 4]
xor eax, eax
lea ecx, [ebp - 0x2970]
push 0
inc eax
push eax
call fcn.00404970
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 5
call fcn.0046d690
xor eax, eax
mov ecx, ebx
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0xbac]
push esi
push eax
push str.ReplaceFiles
call fcn.0040b67b
mov dword [ebx + 0x4490], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0xed4]
push esi
push eax
push str.InstallFiles
call fcn.0040b67b
mov dword [ebx + 0x4494], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x11fc]
push esi
push eax
push str.RenameAndInstallFiles
call fcn.0040b67b
mov dword [ebx + 0x4498], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x1524]
push esi
push eax
push str.AddReg
call fcn.0040b67b
mov dword [ebx + 0x449c], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x1b74]
push esi
push eax
push str.AdditionalSetup
call fcn.0040b67b
mov dword [ebx + 0x44a4], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x2b3c]
push esi
push eax
push str.PreFinishAction
call fcn.0040b67b
mov dword [ebx + 0x44bc], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x2e64]
push esi
push eax
push str.FinishAction
call fcn.0040b67b
mov dword [ebx + 0x44c0], eax
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
push esi
lea eax, [ebx + 0x318c]
mov ecx, ebx
push eax
push str.PnPWaitAction
call fcn.0040b67b
mov dword [ebx + 0x44c4], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x34b4]
push esi
push eax
push str.PrePnPWaitAction
call fcn.0040b67b
mov dword [ebx + 0x44c8], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x37dc]
push esi
push eax
push str.PreCheck
call fcn.0040b67b
mov dword [ebx + 0x44cc], eax
mov ecx, ebx
xor eax, eax
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x3b04]
push esi
push eax
push str.PostInstallDriverAction
call fcn.0040b67b
xor ecx, ecx
mov dword [ebx + 0x44d0], eax
inc ecx
lea eax, [ebx + 0x3e2c]
push ecx
push dword [ebp + 0xc]
mov ecx, ebx
mov dword [ebp - 0x3a00], eax
push esi
push eax
push str.Extension
call fcn.0040b67b
mov dword [ebx + 0x44a8], eax
test eax, eax
je 0x41924a
lea ecx, [ebp - 0x2988]
call fcn.0046d5d4
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 0x24
call fcn.0046d5d4
and dword [ebp - 0x39fc], 0
lea ecx, [ebx + 0x3e2c]
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 0x41903c
push ecx
mov edi, dword [ebp - 0x39f8]
mov ecx, dword [ebp - 0x3a00]
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
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x2970]
call fcn.0046d690
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 5
call fcn.0046d690
jmp 0x41a71a
xor esi, esi
lea ecx, [ebx + 0x3e2c]
mov dword [ebp - 0x3a0c], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x419226
lea eax, [ebx + 0x44ac]
mov dword [ebp - 0x3a04], eax
lea eax, [ebx + 0x1e9c]
mov dword [ebp - 0x39f4], eax
push 4
pop eax
cmp esi, eax
jae 0x419226
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.0046eb6a
lea ecx, [ebp - 0x2970]
call fcn.0046d95f
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x4190ba
lea ecx, [ebp - 0x2970]
call fcn.0046d95f
cmp eax, 3
jne 0x4191e5
lea ecx, [ebp - 0x2970]
call fcn.0046d95f
cmp eax, 3
jne 0x419199
lea ecx, [ebp - 0x29b8]
call fcn.0046d5d4
xor eax, eax
mov byte [ebp - 4], 0x26
push 0x2e
inc eax
lea ecx, [ebp - 0x2970]
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29b8]
call fcn.0046eb6a
xor eax, eax
lea ecx, [ebp - 0x29a0]
push eax
push eax
mov dword [ebp - 0x2990], eax
mov dword [ebp - 0x298c], eax
call fcn.00404970
push str.AdditionalSetup_
lea ecx, [ebp - 0x29a0]
mov byte [ebp - 4], 0x27
call fcn.00404bb9
push 0
lea ecx, [ebp - 0x29b8]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.00404a5c
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 - 0x3a08]
push dword [ebp - 0x39f4]
push eax
call fcn.0040b67b
mov ecx, dword [ebp - 0x3a04]
push 0
mov dword [ecx], eax
xor eax, eax
inc eax
lea ecx, [ebp - 0x29a0]
push eax
call fcn.00404970
lea ecx, [ebp - 0x29b8]
mov byte [ebp - 4], 0x25
call fcn.0046d690
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.0046eb6a
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046dbf8
test eax, eax
je 0x4191f0
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046dbf8
xor ecx, ecx
cmp cx, word [eax]
je 0x4191f0
cmp dword [ebp - 0x39fc], ecx
jne 0x4191e5
cmp esi, 3
jb 0x4191f9
push dword [ebp - 0x3a0c]
jmp 0x418ff4
xor eax, eax
inc eax
mov dword [ebp - 0x39fc], eax
add dword [ebp - 0x39f4], 0x328
lea ecx, [ebx + 0x3e2c]
push 4
pop eax
add dword [ebp - 0x3a04], eax
inc esi
mov dword [ebp - 0x3a0c], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x41906f
lea ecx, [ebp - 0x2970]
mov byte [ebp - 4], 0x24
call fcn.0046d690
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 5
call fcn.0046d690
mov esi, dword [ebp - 0x3a08]
xor eax, eax
mov ecx, ebx
inc eax
push eax
push dword [ebp + 0xc]
lea eax, [ebx + 0x4154]
push esi
push eax
push 0x5c71e0
call fcn.0040b67b
xor eax, eax
mov ecx, ebx
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.PrintUIModule
lea eax, [ebp - 0x44]
push eax
call fcn.0040b699
cmp dword [ebx + 0xa54], 0
je 0x41932b
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea ecx, [ebx + 0xa70]
push eax
call fcn.00404bb9
lea eax, [ebx + 0xa70]
cmp dword [eax + 0x14], 8
jb 0x4192c1
mov eax, dword [eax]
push eax
push str.m_strPrintUIModule____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
add esp, 0x10
cmp dword [ebx + 0xa80], 0
jne 0x41932b
call fcn.00474a71
push 0x5c7230
mov ecx, dword [eax + 4]
add ecx, 0xcc
call fcn.0041faee
test eax, eax
jne 0x419317
call fcn.00474a71
push 0x5c723c
mov ecx, dword [eax + 4]
add ecx, 0xcc
call fcn.0041faee
test eax, eax
je 0x41932b
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x44]
push str.PrintUIModule
push ecx
jmp 0x41a70c
xor eax, eax
mov ecx, ebx
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.Files
lea eax, [ebp - 0x74]
push eax
call fcn.0040b699
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xa8c]
call fcn.00404bb9
push 0
push esi
push 0x104
lea eax, [ebp - 0x2338]
mov ecx, ebx
push eax
mov eax, 0x5c4f10
push eax
push 0x5c7250
lea eax, [ebp - 0x74]
push eax
call fcn.0040b699
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xaa4]
call fcn.00404bb9
xor eax, eax
mov ecx, ebx
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.SourceDir
lea eax, [ebp - 0x74]
push eax
call fcn.0040b699
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xabc]
call fcn.00404bb9
xor eax, eax
mov ecx, ebx
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.TargetDir
lea eax, [ebp - 0x74]
push eax
call fcn.0040b699
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea ecx, [ebx + 0xaec]
push eax
call fcn.00404bb9
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
lea ecx, [ebx + 0xaec]
call fcn.00404bb9
cmp dword [ebx + 0xafc], 0
je 0x4194c4
lea eax, [ebx + 0xaec]
cmp dword [eax + 0x14], 8
jb 0x41945e
mov eax, dword [eax]
push 0x7c
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046eb6a
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
push 2
pop ecx
cmp eax, ecx
jne 0x4194c4
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
lea esi, [ebx + 0xad4]
push eax
mov ecx, esi
call fcn.00404bb9
push esi
lea esi, [ebx + 0xaec]
mov ecx, esi
call fcn.0040820f
xor eax, eax
lea ecx, [ebp - 0x3a38]
inc eax
push eax
call fcn.0046dbf8
push eax
mov ecx, esi
call fcn.00404a5c
mov esi, dword [ebp - 0x3a08]
push 0
push esi
push 0x104
lea eax, [ebp - 0x2338]
mov ecx, ebx
push eax
mov eax, 0x5c4f10
push eax
push str.SGDKEY
lea eax, [ebp - 0xd4]
push eax
call fcn.0040b699
xor eax, eax
cmp ax, word [ebp - 0x2338]
je 0x419512
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
push str.__REG_SGDKEY__
mov ecx, edi
call fcn.0046d72a
push 0
push esi
push 0x104
lea eax, [ebp - 0x2338]
mov ecx, ebx
push eax
mov eax, 0x5c4f10
push eax
push str.WIASGDKEY
lea eax, [ebp - 0xd4]
push eax
call fcn.0040b699
xor eax, eax
cmp ax, word [ebp - 0x2338]
je 0x419560
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
push eax
push str.__REG_WIASGDKEY__
mov ecx, edi
call fcn.0046d72a
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
xor eax, eax
lea ecx, [ebp - 0x2970]
push eax
push eax
mov dword [ebp - 0x2960], eax
mov dword [ebp - 0x295c], eax
call fcn.00404970
xor eax, eax
mov byte [ebp - 4], 0x29
inc eax
mov ecx, ebx
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x2d88]
push esi
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.0040b67b
xor eax, eax
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x39f4], eax
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x41971c
mov esi, dword [ebp - 0x39f4]
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.0046eb6a
push 0x20
lea ecx, [ebp - 0x3a38]
call fcn.0046f50b
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
cmp eax, 3
jne 0x41983b
xor eax, eax
lea ecx, [ebp - 0x3a38]
inc eax
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
push 0x5c6c8c
lea ecx, [ebp - 0x2970]
call fcn.00404a5c
push 2
pop eax
push eax
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404a5c
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebp - 0x3a38]
cmovae eax, dword [ebp - 0x2970]
push eax
push 0
call fcn.0046dbf8
push eax
lea eax, [ebp - 0x29b8]
mov ecx, ebx
push eax
call fcn.0040ed3d
push eax
lea ecx, [ebp - 0x2970]
call fcn.00401e90
xor eax, eax
lea ecx, [ebp - 0x29b8]
push 0
inc eax
push eax
call fcn.00404970
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.0046eb6a
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
push 2
pop ecx
cmp eax, ecx
mov eax, dword [ebp - 0x39f4]
lea ecx, [ebp - 0x2d88]
push eax
jne 0x41982c
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.0046d72a
mov esi, dword [ebp - 0x39f4]
lea ecx, [ebp - 0x2d88]
inc esi
mov dword [ebp - 0x39f4], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x4195c8
mov esi, dword [ebp - 0x3a08]
xor eax, eax
lea ecx, [ebp - 0x2970]
push 0
inc eax
push eax
call fcn.00404970
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
xor eax, eax
mov ecx, ebx
inc eax
push eax
push esi
push 0x104
lea eax, [ebp - 0x2338]
push eax
mov eax, 0x5c4f10
push eax
push str.Files
push 0x5c5a64
call fcn.0040b699
mov eax, dword [ebp - 0x3a10]
mov ecx, edi
inc eax
mov dword [ebp - 0x3a18], eax
lea eax, [ebp - 0x3a10]
push eax
lea eax, [ebp - 0x2338]
push eax
call fcn.0046f4e7
test eax, eax
je 0x4197d9
push dword [ebp - 0x3a18]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x4197d9
lea eax, [ebp - 0x2338]
mov ecx, edi
push eax
call fcn.0046ed66
lea ecx, [ebx + 0xb34]
push eax
call fcn.00404bb9
lea eax, [ebx + 0xb34]
cmp dword [eax + 0x14], 8
jb 0x4197c4
mov eax, dword [eax]
push eax
push str.m_strUninstallerFiles____1_s___n
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
add esp, 0x10
mov eax, dword [ebx + 0x7e4]
test eax, eax
jne 0x41986b
cmp dword [ebx + 0xb44], eax
jne 0x419813
cmp dword [ebx + 0xb74], eax
jne 0x419813
cmp dword [ebx + 0xb5c], eax
jne 0x419813
cmp dword [ebx + 0x784], eax
jne 0x419813
cmp dword [ebx + 0x7fc], eax
je 0x41989b
test eax, eax
jne 0x41986b
push str.DisplayName
mov edi, dword [ebp - 0x39f8]
push 0x5c5a64
jmp 0x41a70c
mov edi, dword [ebp - 0x39f8]
mov esi, dword [edi]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
jmp 0x419855
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x2d88]
mov eax, dword [ebp - 0x39f4]
push eax
mov esi, dword [edi]
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 0x417587
cmp dword [ebx + 0xb44], 0
jne 0x41987b
push str.Files
jmp 0x41981c
cmp dword [ebx + 0xb74], 0
jne 0x41988b
push str.TargetDir
jmp 0x41981c
cmp dword [ebx + 0xb5c], 0
jne 0x41989b
push str.ProductGUID
jmp 0x41981c
push esi
mov ecx, ebx
call fcn.0040fd0c
test eax, eax
je 0x41a71a
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 0x4198c8
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x3388]
call fcn.004366a9
push 0x20a
lea eax, [ebp - 0x334]
push 0
push eax
call fcn.0058e700
push 0x20a
lea eax, [ebp - 0x2f94]
push 0
push eax
call fcn.0058e700
mov ecx, 0x105
lea eax, [ebp - 0x2f94]
push ecx
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.00592b69
lea eax, [ebp - 0x2f94]
push eax
lea eax, [ebp - 0x334]
push eax
call fcn.00406a1a
add esp, 0x44
lea eax, [ebp - 0x2f94]
push 0x5c6e08
push eax
call fcn.00406a32
lea eax, [ebp - 0x334]
push eax
lea eax, [ebp - 0x2f94]
push eax
call fcn.00406a1a
add esp, 0x10
lea eax, [ebp - 0x2f94]
lea ecx, [ebp - 0x2a2c]
push 0x105
push eax
call sym.SETUP.exe_public:_int___thiscall_CIniSections::Init_wchar_t_const___unsigned_int_
test eax, eax
je 0x419ad5
lea ecx, [ebp - 0x2a2c]
call sym.SETUP.exe_public:_int___thiscall_CIniSections::GetList_void_
test eax, eax
je 0x419ad5
lea ecx, [ebp - 0x2d88]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
and dword [ebp - 0x3a18], 0
lea ecx, [ebp - 0x2a2c]
mov byte [ebp - 4], 0x2b
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CIniSections::Count_void_
test eax, eax
je 0x419ac6
mov edi, dword [ebp - 0x3a18]
push edi
lea ecx, [ebp - 0x2a2c]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CIniSections::GetItem_unsigned_long_int_
mov dword [ebp - 0x3a04], eax
test eax, eax
je 0x419aaf
xor ecx, ecx
cmp cx, word [eax]
je 0x419aaf
lea eax, [ebp - 0x9c]
push 9
push eax
call fcn.00591dbe
push eax
lea eax, [ebp - 0x9c]
push eax
push dword [ebp - 0x3a04]
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x419aaf
lea eax, [ebp - 0x9c]
push 9
push eax
call fcn.00591dbe
pop ecx
pop ecx
mov ecx, dword [ebp - 0x3a04]
lea eax, [ecx + eax*2]
mov dword [ebp - 0x3a18], eax
test eax, eax
je 0x419aaf
xor ecx, ecx
cmp cx, word [eax]
je 0x419aaf
push eax
push str.StringsSection__Strings._1_s___n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
add esp, 0x10
xor eax, eax
inc eax
mov ecx, ebx
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x2d88]
push esi
push eax
push dword [ebp - 0x3a04]
call fcn.0040b67b
test eax, eax
je 0x419aaf
lea eax, [ebp - 0x2d88]
push eax
lea eax, [ebp - 0x3a18]
push eax
lea ecx, [ebp - 0x39f0]
call fcn.00405262
push eax
lea eax, [ebp - 0x3a20]
mov byte [ebp - 4], 0x2c
push eax
lea ecx, [ebx + 0x4488]
call fcn.00406917
lea ecx, [ebp - 0x39f0]
mov byte [ebp - 4], 0x2b
call fcn.00407b0f
lea ecx, [ebp - 0x2a2c]
inc edi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CIniSections::Count_void_
cmp edi, eax
jb 0x4199be
lea edi, [ebx + 4]
lea ecx, [ebp - 0x2d88]
mov byte [ebp - 4], 0x2a
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInfSection::destructor_void_
lea ecx, [ebp - 0x3388]
call fcn.00437089
lea ecx, [ebp - 0x2a2c]
mov byte [ebp - 4], 5
call sym.SETUP.exe_public_virtual:_void___thiscall_CIniSections::destructor_void_
xor eax, eax
lea ecx, [ebp - 0x2970]
push eax
push eax
mov dword [ebp - 0x2960], eax
mov dword [ebp - 0x295c], eax
call fcn.00404970
xor eax, eax
mov byte [ebp - 4], 0x2d
push str.___FLD_SYSTEM___
mov ecx, edi
mov dword [ebp - 0x3a20], eax
mov dword [ebp - 0x3a1c], eax
mov dword [ebp - 0x3a48], eax
mov dword [ebp - 0x3a44], eax
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
lea eax, [ebp - 0x2970]
push str.IMJP12.IME
push eax
call fcn.0047026a
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
pop ecx
cmovae eax, dword [ebp - 0x2970]
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x419c73
cmp dword [ebp - 0x295c], 8
lea ecx, [ebp - 0x3a1c]
push 0
push ecx
lea ecx, [ebp - 0x3a20]
lea eax, [ebp - 0x2970]
cmovae eax, dword [ebp - 0x2970]
push ecx
push eax
call fcn.004700a1
add esp, 0x10
test eax, eax
je 0x419c73
lea eax, [ebp - 0x3a44]
push eax
lea eax, [ebp - 0x3a48]
push eax
push str.12.0.6211.1000
call fcn.0041f241
movzx eax, word [ebp - 0x3a1c]
push eax
movzx eax, word [ebp - 0x3a1a]
push eax
movzx eax, word [ebp - 0x3a20]
push eax
movzx eax, word [ebp - 0x3a1e]
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.00424dad
mov edi, dword [ebp - 0x3a44]
mov esi, dword [ebp - 0x3a48]
movzx eax, di
push eax
movzx eax, word [ebp - 0x3a42]
push eax
movzx eax, si
push eax
movzx eax, word [ebp - 0x3a46]
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.00424dad
add esp, 0x44
xor eax, eax
inc eax
push eax
push edi
push esi
push dword [ebp - 0x3a1c]
push dword [ebp - 0x3a20]
call fcn.004701fe
mov esi, eax
push esi
push str.VerCompare_Version__1_d__n
push str.CInitInfoStorage::Init
push 4
pop eax
push eax
call fcn.00424dad
xor edi, edi
add esp, 0x24
inc edi
cmp esi, edi
mov esi, dword [ebp - 0x3a08]
jne 0x419c70
mov dword [ebx + 0x44f0], edi
lea edi, [ebx + 4]
xor eax, eax
mov byte [ebp - 4], 5
push 0
inc eax
lea ecx, [ebp - 0x2970]
push eax
call fcn.00404970
lea ecx, [ebp - 0x30b0]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInfSection::constructor_void_
xor eax, eax
mov byte [ebp - 4], 0x2e
inc eax
mov ecx, ebx
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x30b0]
push esi
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.0040b67b
xor esi, esi
lea ecx, [ebp - 0x30b0]
mov dword [ebp - 0x3a00], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x41a14c
mov eax, 0x5c4f10
lea ecx, [ebp - 0x2a00]
push eax
call fcn.00401c0c
mov eax, 0x5c58f8
mov byte [ebp - 4], 0x2f
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00401c0c
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.00404bb9
cmp dword [ebp - 0x29f0], 0
lea ecx, [ebp - 0x30b0]
je 0x41a5d3
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.0046eb6a
lea ecx, [ebp - 0x3a38]
call fcn.0046d95f
push 4
pop ecx
cmp eax, ecx
jne 0x41a5b8
push 0
lea ecx, [ebp - 0x3a38]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29a0]
call fcn.00401c0c
xor eax, eax
mov byte [ebp - 4], 0x31
inc eax
lea ecx, [ebp - 0x3a38]
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2988]
call fcn.00401c0c
push 2
pop eax
push eax
lea ecx, [ebp - 0x3a38]
mov byte [ebp - 4], 0x32
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00401c0c
push 3
lea ecx, [ebp - 0x3a38]
mov byte [ebp - 4], 0x33
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29b8]
call fcn.00401c0c
cmp dword [ebp - 0x2990], 0
mov byte [ebp - 4], 0x34
je 0x41a52f
cmp dword [ebp - 0x2978], 0
je 0x41a52f
cmp dword [ebp - 0x2960], 0
je 0x41a52f
cmp dword [ebp - 0x29a8], 0
je 0x41a52f
push str.HKLM
lea ecx, [ebp - 0x29a0]
mov dword [ebp - 0x3a0c], 0x2000000
call fcn.0041fdbb
test eax, eax
jne 0x419e24
mov dword [ebp - 0x39f4], reloc.OLEAUT32.dll_SysReAllocString
jmp 0x419e90
push str.HKLM_WOW64
lea ecx, [ebp - 0x29a0]
call fcn.0041fdbb
test eax, eax
jne 0x419e4e
mov dword [ebp - 0x39f4], reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x3a0c], 0x20219
jmp 0x419e90
push str.HKCU
lea ecx, [ebp - 0x29a0]
call fcn.0041fdbb
test eax, eax
jne 0x419e6e
mov dword [ebp - 0x39f4], VariantCopyInd
jmp 0x419e90
push str.HKCR
lea ecx, [ebp - 0x29a0]
call fcn.0041fdbb
test eax, eax
jne 0x41a4de
mov dword [ebp - 0x39f4], SysReAllocStringLen
lea ecx, [ebp - 0x3a20]
call fcn.00463f1c
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x2988]
push dword [ebp - 0x3a0c]
cmovae eax, dword [ebp - 0x2988]
lea ecx, [ebp - 0x3a20]
push eax
push dword [ebp - 0x39f4]
mov byte [ebp - 4], 0x35
call fcn.004643e8
test eax, eax
je 0x41a088
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebp - 0x3a20]
cmovae eax, dword [ebp - 0x2970]
push eax
call fcn.0046433a
test eax, eax
je 0x41a088
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebp - 0x3a20]
cmovae eax, dword [ebp - 0x2970]
push eax
call fcn.0046413e
push str.DWORD
lea ecx, [ebp - 0x29b8]
mov dword [ebp - 0x3a40], eax
call fcn.0041fdbb
test eax, eax
jne 0x419fde
push 4
pop eax
cmp dword [ebp - 0x3a40], eax
jne 0x419fde
lea ecx, [ebp - 0x2a24]
call fcn.00463ef9
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x2988]
push dword [ebp - 0x3a0c]
cmovae eax, dword [ebp - 0x2988]
lea ecx, [ebp - 0x2a24]
push eax
push dword [ebp - 0x39f4]
mov byte [ebp - 4], 0x36
call fcn.004643e8
test eax, eax
je 0x419fcf
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebp - 0x2a24]
cmovae eax, dword [ebp - 0x2970]
push eax
call fcn.00464238
push dword [eax]
lea eax, [ebp - 0x2338]
push 0x5c5ae0
push eax
call fcn.0040699a
add esp, 0xc
lea eax, [ebp - 0x2338]
lea ecx, [ebp - 0x29e8]
push eax
call fcn.00404bb9
lea ecx, [ebp - 0x2a24]
mov byte [ebp - 4], 0x35
call fcn.00463f4f
push 0x5c7454
lea ecx, [ebp - 0x29b8]
call fcn.0041fdbb
test eax, eax
jne 0x41a088
inc eax
cmp dword [ebp - 0x3a40], eax
jne 0x41a088
lea ecx, [ebp - 0x2a28]
call fcn.00463f29
cmp dword [ebp - 0x2974], 8
lea eax, [ebp - 0x2988]
push dword [ebp - 0x3a0c]
cmovae eax, dword [ebp - 0x2988]
lea ecx, [ebp - 0x2a28]
push eax
push dword [ebp - 0x39f4]
mov byte [ebp - 4], 0x37
call fcn.004643e8
test eax, eax
je 0x41a079
cmp dword [ebp - 0x295c], 8
lea eax, [ebp - 0x2970]
lea ecx, [ebp - 0x2a28]
cmovae eax, dword [ebp - 0x2970]
push eax
call fcn.0046427c
test eax, eax
je 0x41a079
xor ecx, ecx
cmp cx, word [eax]
je 0x41a079
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00404bb9
lea ecx, [ebp - 0x2a28]
mov byte [ebp - 4], 0x35
call fcn.00463f77
cmp dword [ebp - 0x29d4], 8
lea ecx, [ebp - 0x29e8]
lea eax, [ebp - 0x2a00]
cmovae ecx, dword [ebp - 0x29e8]
cmp dword [ebp - 0x29ec], 8
push ecx
cmovae eax, dword [ebp - 0x2a00]
mov ecx, edi
push eax
call fcn.0046d72a
lea ecx, [ebp - 0x3a20]
mov byte [ebp - 4], 0x34
call fcn.00463f6c
xor eax, eax
lea ecx, [ebp - 0x29b8]
push 0
inc eax
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x2970]
push 0
inc eax
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x2988]
push 0
inc eax
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x29a0]
push 0
inc eax
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x29e8]
push 0
inc eax
push eax
call fcn.00404970
xor eax, eax
mov byte [ebp - 4], 0x2e
push 0
inc eax
lea ecx, [ebp - 0x2a00]
push eax
call fcn.00404970
inc esi
lea ecx, [ebp - 0x30b0]
mov dword [ebp - 0x3a00], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x419ccf
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.0046d5d4
xor eax, eax
mov byte [ebp - 4], 0x39
inc eax
mov ecx, ebx
push eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x2d88]
push dword [ebp - 0x3a08]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0040b67b
xor esi, esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a00], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
test eax, eax
je 0x41a495
mov eax, 0x5c4f10
lea ecx, [ebp - 0x29a0]
push eax
call fcn.00401c0c
mov eax, 0x5c4f10
mov byte [ebp - 4], 0x3a
push eax
lea ecx, [ebp - 0x2a00]
call fcn.00401c0c
mov eax, 0x5c4f10
mov byte [ebp - 4], 0x3b
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00401c0c
push 0x3c
pop eax
mov byte [ebp - 4], al
lea ecx, [ebp - 0x2970]
mov eax, 0x5c4f10
push eax
call fcn.00401c0c
push 0x208
lea eax, [ebp - 0x38b8]
mov byte [ebp - 4], 0x3d
push 0
push eax
call fcn.0058e700
push 0x208
lea eax, [ebp - 0x334]
push 0
push eax
call fcn.0058e700
push 0x208
lea eax, [ebp - 0x2f90]
push 0
push eax
call fcn.0058e700
push 0x208
lea eax, [ebp - 0x2958]
push 0
push eax
call fcn.0058e700
push 0xa
push 0x104
lea eax, [ebp - 0x2958]
push eax
push 0x493e0
call fcn.0059270d
add esp, 0x40
lea eax, [ebp - 0x2958]
lea ecx, [ebp - 0x2970]
push eax
call fcn.00404bb9
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.00404bb9
cmp dword [ebp - 0x2990], 0
je 0x41a67e
cmp dword [ebp - 0x298c], 8
lea eax, [ebp - 0x29a0]
cmovae eax, dword [ebp - 0x29a0]
push eax
call fcn.00592a32
pop ecx
push 0x2c
push esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a04], eax
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046eb6a
lea ecx, [ebp - 0x2988]
call fcn.0046d95f
cmp eax, 3
ja 0x41a663
push 0
lea ecx, [ebp - 0x2988]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2a00]
call fcn.00404bb9
xor eax, eax
lea ecx, [ebp - 0x2988]
inc eax
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x29e8]
call fcn.00404bb9
cmp dword [ebp - 0x29f0], 0
je 0x41a624
cmp dword [ebp - 0x29d8], 0
je 0x41a624
lea ecx, [ebp - 0x2988]
call fcn.0046d95f
cmp eax, 3
jb 0x41a37c
push 2
pop eax
push eax
lea ecx, [ebp - 0x2988]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x2970]
call fcn.00404bb9
cmp dword [ebp - 0x2960], 0
je 0x41a624
push dword [ebp - 0x3a04]
lea eax, [ebp - 0x38b8]
push str.__ADDON__d_ROOTKEY__
push eax
call fcn.004069b6
add esp, 0xc
lea eax, [ebp - 0x2a00]
cmp dword [ebp - 0x29ec], 8
mov ecx, edi
cmovae eax, dword [ebp - 0x2a00]
push eax
lea eax, [ebp - 0x38b8]
push eax
call fcn.0046d72a
push dword [ebp - 0x3a04]
lea eax, [ebp - 0x334]
push str.__ADDON__d_SUBKEY__
push eax
call fcn.004069b6
add esp, 0xc
lea eax, [ebp - 0x29e8]
cmp dword [ebp - 0x29d4], 8
mov ecx, edi
cmovae eax, dword [ebp - 0x29e8]
push eax
lea eax, [ebp - 0x334]
push eax
call fcn.0046d72a
push dword [ebp - 0x3a04]
lea eax, [ebp - 0x2f90]
push str.__ADDON__d_TIMEOUT__
push eax
call fcn.004069b6
add esp, 0xc
lea eax, [ebp - 0x2970]
cmp dword [ebp - 0x295c], 8
mov ecx, edi
cmovae eax, dword [ebp - 0x2970]
push eax
lea eax, [ebp - 0x2f90]
push eax
call fcn.0046d72a
xor eax, eax
lea ecx, [ebp - 0x2970]
push 0
inc eax
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x29e8]
push 0
inc eax
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x2a00]
push 0
inc eax
push eax
call fcn.00404970
xor eax, eax
mov byte [ebp - 4], 0x39
push 0
inc eax
lea ecx, [ebp - 0x29a0]
push eax
call fcn.00404970
inc esi
lea ecx, [ebp - 0x2d88]
mov dword [ebp - 0x3a00], esi
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInfSection::Count_void_
cmp esi, eax
jb 0x41a1b3
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 0x38
call fcn.0046d690
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.0046d96c
push 0x5c5a14
xor edi, edi
push str.CInitInfoStorage::Init
inc edi
push 5
mov dword [ebx + 0x4538], edi
call fcn.00424dad
add esp, 0xc
mov esi, edi
jmp 0x41a733
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x30b0]
push dword [ebp - 0x3a00]
mov esi, dword [edi]
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
lea esi, [ebp - 0x29a0]
push str.rootkey_is_invalid.__1_s___n
push str.CInitInfoStorage::Init
push 2
pop eax
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.00424dad
add esp, 0x24
jmp 0x41a56f
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x30b0]
push dword [ebp - 0x3a00]
mov esi, dword [edi]
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.00424dad
add esp, 0x1c
xor ebx, ebx
lea ecx, [ebp - 0x29b8]
xor edi, edi
push ebx
inc edi
push edi
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x2970]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x2988]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x29a0]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x29e8]
call fcn.00404970
push ebx
jmp 0x41a60d
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x30b0]
push dword [ebp - 0x3a00]
mov esi, dword [edi]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
jmp 0x41a5e6
mov edi, dword [ebp - 0x39f8]
push dword [ebp - 0x3a00]
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
lea ecx, [ebp - 0x29e8]
xor edi, edi
inc edi
push 0
push edi
call fcn.00404970
push 0
push edi
lea ecx, [ebp - 0x2a00]
call fcn.00404970
lea ecx, [ebp - 0x30b0]
jmp 0x4175a1
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x2d88]
push dword [ebp - 0x3a00]
mov esi, dword [edi]
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.00424dad
add esp, 0x1c
jmp 0x41a6a8
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x2d88]
push dword [ebp - 0x3a00]
mov esi, dword [edi]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInfSection::GetValue_unsigned_long_int_
jmp 0x41a697
mov edi, dword [ebp - 0x39f8]
lea ecx, [ebp - 0x2d88]
push dword [ebp - 0x3a00]
mov esi, dword [edi]
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
lea ecx, [ebp - 0x2970]
xor edi, edi
push ebx
inc edi
push edi
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x29e8]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x2a00]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x29a0]
call fcn.00404970
lea ecx, [ebp - 0x2988]
mov byte [ebp - 4], 0x38
call fcn.0046d690
jmp 0x41759b
push str.DefaultDeviceDir
jmp 0x41a701
push str.DefaultTargetDir
lea edi, [ebx + 0x90c]
push 0x5c5a58
mov eax, dword [edi]
push 0xbb9
push edi
call dword [eax + 0xc]
add esp, 0x10
xor edi, edi
inc edi
push 0x5c5a30
push str.CInitInfoStorage::Init
push 5
call fcn.00424dad
add esp, 0xc
xor esi, esi
push 4
pop eax
lea ecx, [ebp - 0x3388]
mov byte [ebp - 4], al
call fcn.00436650
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.0046d690
push 0
push edi
lea ecx, [ebp - 0x2a48]
call fcn.00404970
push 0
push edi
lea ecx, [ebp - 0x2a60]
call fcn.00404970
push 0
push edi
lea ecx, [ebp - 0x29d0]
call fcn.00404970
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.0058f6bb
mov esp, ebp
pop ebp
ret 0x14