Function at 0x452710
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59f18b
mov eax, dword fs:[0]
push eax
mov eax, 0x193c
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push ecx
push str.InstallDiasAndGetDevInfo::FindDIASInstall
lea ecx, [ebp - 0x1948]
call fcn.0040a480
mov dword [ebp - 4], 0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x45279b
test byte [ecx + 0x1c], 1
je 0x45279b
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5ccde0
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x16
call fcn.00401840
add esp, 0xc
push 0x80
lea eax, [ebp - 0x110]
push 0
push eax
call fcn.00571c00
push 0x80
lea eax, [ebp - 0x90]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x910]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1110]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1910]
push 0
push eax
call fcn.00571c00
mov ecx, dword [0x6184f0]
add esp, 0x3c
mov ecx, dword [ecx + 0x1c]
push 0x5c79bc
push str.RETCODE
call fcn.004f6860
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1110]
push eax
push str.DIAS_USE
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1910]
push eax
push str.VDC_USE
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x452897
test byte [ecx + 0x1c], 4
je 0x452897
cmp dword [0x608f68], 8
lea edx, [ebp - 0x1110]
push edx
lea edx, [ebp - 0x1910]
mov eax, 0x608f54
cmovae eax, dword [0x608f54]
push edx
push eax
push dword [ecx + 0x14]
mov edx, 0x5ccde0
push dword [ecx + 0x10]
mov ecx, 0x17
call fcn.00430170
add esp, 0x14
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
lea eax, [ebp - 0x1110]
push 0x5c79bc
push eax
call esi
test eax, eax
je 0x452986
push 0x5c79bc
lea eax, [ebp - 0x1910]
push eax
call esi
test eax, eax
je 0x45290d
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.VDC_USEMENU
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.PRINTERCHECKBOX
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.VDCCHECKBOX
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push str.None
push str.DIASREGISTVERSION
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c7d38
push str.DIASINSTALLFLAG
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov byte [ebp - 0x1944], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x452d34
test byte [ecx + 0x1c], 1
je 0x452d34
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x18
jmp 0x452d27
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x910]
push eax
push str.TEMPPATH
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
lea eax, [ebp - 0x910]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
cmp word [ebp + eax*2 - 0x912], 0x5c
je 0x4529cc
push 0x5c692c
lea eax, [ebp - 0x910]
push eax
call esi
push str.InsDrv.ini
lea eax, [ebp - 0x910]
push eax
call esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x910]
push eax
push 0x40
lea eax, [ebp - 0x110]
push eax
push 0x5c6930
push str.MajorVersion
push str.DIAS
call esi
lea eax, [ebp - 0x910]
push eax
push 0x40
lea eax, [ebp - 0x90]
push eax
push 0x5c6930
push str.MinorVersion
push str.DIAS
call esi
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x452a70
test byte [ecx + 0x1c], 4
je 0x452a70
cmp dword [0x608f68], 8
lea edx, [ebp - 0x90]
push edx
lea edx, [ebp - 0x110]
mov eax, 0x608f54
cmovae eax, dword [0x608f54]
push edx
push eax
push dword [ecx + 0x14]
mov edx, 0x5ccde0
push dword [ecx + 0x10]
mov ecx, 0x19
call fcn.00430170
add esp, 0x14
lea eax, [ebp - 0x910]
push eax
push 0x400
lea eax, [ebp - 0x1110]
push eax
push 0x5c6930
push str.Product
push str.Installer_Info
call esi
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x452adb
test byte [ecx + 0x1c], 4
je 0x452adb
cmp dword [0x608f68], 8
lea edx, [ebp - 0x1110]
push edx
mov eax, 0x608f54
mov edx, 0x5ccde0
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1a
call fcn.00405920
add esp, 0x10
lea eax, [ebp - 0x1110]
mov ecx, edi
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00453510
cmp eax, 1
je 0x452c33
add eax, 0xfffffffe
cmp eax, 1
ja 0x452ba1
mov ecx, dword [0x6184f0]
push 0x5ccbd4
push str.DIASREGISTVERSION
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.VDC_USEMENU
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.PRINTERCHECKBOX
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x452cbb
test byte [ecx + 0x1c], 4
je 0x452cbb
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5ccde0
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1b
call fcn.00401840
add esp, 0xc
jmp 0x452cbb
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x452be1
test byte [ecx + 0x1c], 4
je 0x452be1
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5ccde0
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1d
call fcn.00401840
add esp, 0xc
mov ecx, dword [0x6184f0]
push str.None
push str.DIASREGISTVERSION
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.VDC_USEMENU
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.VDCCHECKBOX
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
push 0x5c7d38
jmp 0x452cd8
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x452c73
test byte [ecx + 0x1c], 4
je 0x452c73
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5ccde0
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1c
call fcn.00401840
add esp, 0xc
mov ecx, dword [0x6184f0]
push 0x5ccbdc
push str.DIASREGISTVERSION
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.VDC_USEMENU
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.PRINTERCHECKBOX
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.VDCCHECKBOX
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
push 0x5c7da0
mov ecx, dword [0x6184f0]
push str.DIASINSTALLFLAG
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov byte [ebp - 0x1944], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x452d34
test byte [ecx + 0x1c], 1
je 0x452d34
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1e
mov edx, 0x5ccde0
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x1948]
call fcn.0040a570
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret