Function at 0x4508ba
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b2e4a
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x3a80
call fcn.00593490
mov eax, dword [0x637190]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, ecx
mov dword [ebp - 0x383c], ebx
mov dword [ebp - 0x38a4], ebx
call fcn.00480c5a
mov ecx, dword [section..data]
xor eax, eax
mov byte [ebp - 0x3855], al
mov dword [ebp - 4], eax
mov eax, dword [ecx]
call dword [eax]
push 0x74
call fcn.004730a5
pop ecx
mov dword [ebp - 0x3874], eax
xor ecx, ecx
inc ecx
mov dword [ebp - 0x3868], ecx
mov byte [ebp - 4], cl
test eax, eax
je 0x450943
mov ecx, eax
call fcn.0044de8e
mov esi, eax
xor eax, eax
jmp 0x450947
xor eax, eax
mov esi, eax
push str.istdrv.debug.ini
push eax
push 0x5d3ce4
push str.Setup
mov byte [ebp - 4], al
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, eax
test edi, edi
je 0x4509c3
push str.istdrv.debug.ini
push 0x100
lea eax, [ebp - 0x220]
push eax
push 0x5c4f10
push str.Class
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
push eax
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x4509b3
push 0x100
lea eax, [ebp - 0x220]
push eax
xor eax, eax
push 2
inc eax
jmp 0x4509b9
xor eax, eax
push eax
push eax
inc eax
push eax
push eax
push edi
call fcn.004251d1
add esp, 0x14
xor eax, eax
lea ecx, [ebp - 0x1f1c]
push eax
mov edi, 0x5c4f10
call fcn.00472747
xor eax, eax
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x39e4]
call fcn.0046c18d
xor eax, eax
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x1acc]
call fcn.00467fcc
xor eax, eax
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x2380]
call fcn.004599a3
xor eax, eax
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x3a90]
call fcn.0046c85a
xor eax, eax
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x3838]
call fcn.0046447e
xor eax, eax
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x1600]
call fcn.004670db
xor eax, eax
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x1128]
call fcn.004370a5
xor eax, eax
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x2c20]
call fcn.004605c4
xor ecx, ecx
mov byte [ebp - 4], 0xa
mov eax, ecx
mov dword [ebp - 0x3878], ecx
push str._NOT_SPECIFIED_
mov dword [ebp - 0x38a8], eax
mov dword [ebp - 0x38a0], eax
mov dword [ebp - 0x8a4], 7
mov dword [ebp - 0x8a8], ecx
mov word [ebp - 0x8b8], ax
call fcn.0058edd4
pop ecx
push eax
push str._NOT_SPECIFIED_
lea ecx, [ebp - 0x8b8]
call fcn.00404be0
xor ecx, ecx
mov byte [ebp - 4], 0xb
push ecx
mov dword [ebp - 0x950], ecx
xor eax, eax
push edi
lea ecx, [ebp - 0x960]
mov dword [ebp - 0x94c], 7
mov word [ebp - 0x960], ax
call fcn.00404be0
xor ecx, ecx
mov byte [ebp - 4], 0xc
xor eax, eax
mov dword [ebp - 0x3840], ecx
inc eax
mov dword [ebp - 0x388c], ecx
push ecx
mov dword [ebp - 0x3844], eax
xor eax, eax
mov dword [ebp - 0x3854], ecx
mov dword [ebp - 0x387c], ecx
mov dword [ebp - 0x386c], ecx
mov dword [ebp - 0x968], ecx
lea ecx, [ebp - 0x978]
push edi
mov dword [ebp - 0x964], 7
mov word [ebp - 0x978], ax
call fcn.00404be0
xor ecx, ecx
mov byte [ebp - 4], 0xd
push ecx
mov dword [ebp - 0x908], ecx
xor eax, eax
push edi
lea ecx, [ebp - 0x918]
mov dword [ebp - 0x904], 7
mov word [ebp - 0x918], ax
call fcn.00404be0
xor ecx, ecx
mov byte [ebp - 4], 0xe
push ecx
mov dword [ebp - 0x8d8], ecx
xor eax, eax
push edi
lea ecx, [ebp - 0x8e8]
mov dword [ebp - 0x8d4], 7
mov word [ebp - 0x8e8], ax
call fcn.00404be0
xor ecx, ecx
mov byte [ebp - 4], 0xf
push ecx
mov dword [ebp - 0x938], ecx
xor eax, eax
push edi
lea ecx, [ebp - 0x948]
mov dword [ebp - 0x934], 7
mov word [ebp - 0x948], ax
call fcn.00404be0
xor ecx, ecx
mov byte [ebp - 4], 0x10
push ecx
mov dword [ebp - 0x8f0], ecx
xor eax, eax
push edi
lea ecx, [ebp - 0x900]
mov dword [ebp - 0x8ec], 7
mov word [ebp - 0x900], ax
call fcn.00404be0
xor eax, eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x3890]
mov dword [ebp - 0x38ac], eax
call fcn.00461e21
xor ecx, ecx
mov byte [ebp - 4], 0x12
mov eax, ecx
mov dword [ebp - 0x3874], ecx
push 0x206
mov dword [ebp - 0x384c], eax
mov word [ebp - 0x428], ax
lea eax, [ebp - 0x426]
mov dword [ebp - 0x3888], ecx
mov dword [ebp - 0x3850], ecx
push ecx
push eax
call fcn.0058e700
or dword [ebp - 0x3860], 0xffffffff
lea eax, [ebx + 0x4610]
push eax
call fcn.004723ad
add esp, 0x10
test eax, eax
je 0x450cb7
test esi, esi
je 0x450c5b
mov eax, dword [esi]
xor ecx, ecx
inc ecx
push ecx
mov ecx, esi
call dword [eax + 4]
mov edi, dword [ebp - 0x383c]
mov ebx, dword [ebp - 0x3840]
xor esi, esi
inc esi
lea ecx, [edi + 0x46c4]
call fcn.004027e6
mov eax, dword [edi + 0x4610]
mov dword [edi + 0x4b70], eax
test ebx, ebx
je 0x454c34
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push esi
call dword [eax]
xor ebx, ebx
mov dword [edi + 0x4b9c], ebx
call fcn.00474a71
push dword [eax + 8]
push str.__MFP_ISTDRV__
call dword [sym.imp.USER32.dll_UnregisterClassW]
jmp 0x454c36
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x450cd8
push str.SetProcessDPIAware
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x450cd8
call eax
push 0x120
call fcn.004730a5
pop ecx
mov dword [ebp - 0x385c], eax
mov byte [ebp - 4], 0x13
test eax, eax
je 0x450cfa
mov ecx, eax
call fcn.004210c8
jmp 0x450cfc
xor eax, eax
mov edi, eax
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x383c]
mov ecx, edi
mov dword [ebx + 0x4b9c], edi
add eax, 0xd0
add ebx, 0xcc
mov dword [ebp - 0x3840], edi
mov edx, dword [edi]
push ebx
push eax
call dword [edx + 4]
mov eax, dword [edi]
xor ecx, ecx
inc ecx
push ecx
mov ecx, edi
call dword [eax + 0xc]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
push str.__CANON_DRIVER_INSTALLER__
inc eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ecx, dword [ebp - 0x383c]
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ecx + 0x4b78], eax
call edi
cmp eax, 5
je 0x454bdc
cmp eax, 0xb7
je 0x454bdc
mov eax, dword [ebp - 0x383c]
push dword [eax + 0x4b78]
push str.Temp_m_hMutexGlobal__0x_1_lx_._n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
call edi
push eax
push str.GetLastError____0x_1_lx__n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
call fcn.00474a71
mov edi, dword [ebp - 0x383c]
mov ecx, edi
push str.__MFP_ISTDRV__
push dword [eax + 8]
call fcn.00455793
call fcn.00474a71
xor ecx, ecx
push ecx
push dword [eax + 8]
mov eax, SysReAllocStringLen
push ecx
push ecx
push ecx
push eax
push ecx
push eax
push 0xcf0000
push ecx
push str.__MFP_ISTDRV__
push ecx
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
jne 0x450e26
mov ebx, dword [ebp - 0x3840]
mov ecx, ebx
push 6
mov eax, dword [ebx]
call dword [eax + 0xc]
or dword [edi + 0x4610], 0xffffffff
test esi, esi
je 0x450c67
mov eax, dword [esi]
xor ecx, ecx
inc ecx
push ecx
mov ecx, esi
call dword [eax + 4]
jmp 0x450c67
mov edi, dword [ebp - 0x3840]
mov ecx, edi
push 2
mov eax, dword [edi]
call dword [eax + 0xc]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
mov ecx, dword [ebp - 0x383c]
lea eax, [ebp - 0x385c]
or dword [ebp - 0x385c], 0xffffffff
push eax
call fcn.0044f687
test eax, eax
jne 0x450ea9
mov ecx, ebx
call fcn.00415998
test eax, eax
je 0x450ea0
mov ecx, ebx
call fcn.0040fc75
mov ecx, ebx
mov dword [ebp - 0x384c], eax
call fcn.0040fc46
mov ecx, ebx
mov edi, eax
call fcn.0040fc17
push dword [ebp - 0x384c]
mov ecx, dword [ebp - 0x383c]
push edi
push eax
lea ecx, [ecx + 0x4608]
call fcn.00442ed8
mov edi, dword [ebp - 0x3840]
mov eax, dword [edi]
mov ecx, edi
jmp 0x454391
mov eax, dword [ebp - 0x385c]
mov ebx, dword [ebp - 0x3840]
cmp eax, 0xffffffff
je 0x450ed6
mov word [ebx + 0x1c], ax
movzx eax, ax
push eax
push str.nSelectedLangID__0x_1_lx_._n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
mov edi, dword [ebp - 0x383c]
xor eax, eax
cmp dword [edi + 0x460c], eax
jne 0x45133e
push 0x2f
pop edx
push 0x2d
lea ecx, [eax + 1]
pop ebx
mov dword [ebp - 0x3848], ecx
cmp ecx, dword [0x6473b8]
jge 0x451332
mov eax, dword [0x6473c0]
mov edi, dword [eax + ecx*4]
mov dword [ebp - 0x385c], edi
movzx eax, word [edi]
cmp ax, dx
je 0x450f24
cmp ax, bx
jne 0x45132c
push 2
push 0x5d3e24
call fcn.00591dbe
push eax
lea ebx, [edi + 2]
push 0x5d3e24
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x450f55
mov eax, dword [ebp - 0x383c]
xor ecx, ecx
inc ecx
mov dword [eax + 0x460c], ecx
push 6
push str.NOVSA
call fcn.00591dbe
push eax
push str.NOVSA
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x450f83
mov eax, dword [ebp - 0x383c]
xor ecx, ecx
inc ecx
mov dword [eax + 0x45b8], ecx
push 2
push 0x5d3e28
call fcn.00591dbe
push eax
push 0x5d3e28
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x450fc4
add edi, 4
cmp word [edi], ax
je 0x450fb1
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x8b8]
call fcn.00404be0
mov edi, dword [ebp - 0x385c]
push 8
push str.PREINST
call fcn.00591dbe
push eax
push str.PREINST
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x450ff2
mov eax, dword [ebp - 0x383c]
xor ecx, ecx
inc ecx
mov dword [eax + 0x45b4], ecx
push 3
push 0x5d3e2c
call fcn.00591dbe
push eax
push 0x5d3e2c
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x4510c8
mov ecx, dword [ebp - 0x383c]
lea eax, [edi + 6]
push eax
lea ecx, [ecx + 0x4608]
call fcn.00448c62
push 4
push 0x5d3e34
call fcn.00591dbe
push eax
push 0x5d3e34
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
je 0x451068
push 4
push 0x5cbe58
call fcn.00591dbe
push eax
push 0x5cbe58
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x451084
push 0x5d3e3c
call fcn.0058edd4
pop ecx
push eax
push 0x5d3e3c
lea ecx, [ebp - 0x8b8]
call fcn.00404be0
push 4
push 0x5d3e44
call fcn.00591dbe
push eax
push 0x5d3e44
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x4510c8
push 0x5c9f38
call fcn.0058edd4
pop ecx
push eax
push 0x5c9f38
lea ecx, [ebp - 0x8b8]
call fcn.00404be0
xor eax, eax
inc eax
mov dword [ebp - 0x384c], eax
push 6
push str.LANG:
call fcn.00591dbe
push eax
push str.LANG:
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x45115a
push 3
push 0x5d1334
call fcn.00591dbe
push eax
add edi, 0xc
push 0x5d1334
push edi
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x45111e
push 0x10
lea eax, [ebp - 0x38b0]
push eax
mov eax, dword [ebp - 0x385c]
add eax, 0x10
push eax
jmp 0x451128
push 0xa
lea eax, [ebp - 0x389c]
push eax
push edi
call fcn.00592a11
movzx eax, ax
add esp, 0xc
test ax, ax
je 0x45115a
mov ecx, dword [ebp - 0x3840]
mov word [ecx + 0x1c], ax
movzx eax, ax
push eax
push str.nSelectedLangID__0x_1_lx_._n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
push 7
mov edi, str.SIPATH
push edi
call fcn.00591dbe
push eax
push edi
push ebx
call fcn.00592342
mov edi, dword [ebp - 0x3848]
add esp, 0x14
test eax, eax
jne 0x4511b1
lea eax, [edi + 1]
cmp eax, dword [0x6473b8]
jge 0x4511b1
mov eax, dword [0x6473c0]
mov edi, dword [eax + edi*4 + 4]
xor eax, eax
cmp word [edi], ax
je 0x45119e
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x960]
call fcn.00404be0
mov edi, dword [ebp - 0x3848]
push 2
push 0x5d3e68
call fcn.00591dbe
push eax
push 0x5d3e68
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x451216
lea eax, [edi + 1]
cmp eax, dword [0x6473b8]
jge 0x451216
mov eax, dword [0x6473c0]
mov ecx, dword [ebp - 0x383c]
push dword [eax + edi*4 + 4]
call fcn.004506f6
movzx eax, ax
test ax, ax
je 0x451216
mov ecx, dword [ebp - 0x3840]
push eax
push str.nSelectedLangID__0x_1_lx_._n
push str.CIstDrvApp::InitInstance
push 4
mov word [ecx + 0x1c], ax
call fcn.00424dad
add esp, 0x10
push 0xf
mov edi, 0x5d3e6c
push edi
call fcn.00591dbe
push eax
push edi
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x451274
mov edi, dword [ebp - 0x385c]
add edi, 0x1e
cmp word [edi], ax
je 0x451247
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x8e8]
call fcn.00404be0
cmp dword [ebp - 0x8d4], 8
lea eax, [ebp - 0x8e8]
lea ecx, [ebp - 0x39e4]
cmovae eax, dword [ebp - 0x8e8]
push eax
call fcn.0046c84b
push 3
mov edi, 0x5d3e8c
push edi
call fcn.00591dbe
push eax
push edi
push ebx
call fcn.00592342
add esp, 0x14
test eax, eax
jne 0x451320
mov edi, dword [ebp - 0x385c]
add edi, 6
cmp word [edi], ax
je 0x4512a9
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x900]
call fcn.00404be0
xor eax, eax
lea ebx, [eax + 1]
mov ecx, dword [ebp - 0x3848]
push 0x2f
add ecx, ebx
pop edx
push 0x2d
cmp ecx, dword [0x6473b8]
jge 0x451325
mov eax, dword [0x6473c0]
mov edi, dword [eax + ecx*4]
movzx eax, word [edi]
cmp ax, dx
je 0x451325
pop ecx
cmp ax, cx
je 0x451323
push 0x5c58f8
call fcn.0058edd4
pop ecx
push eax
push 0x5c58f8
lea ecx, [ebp - 0x900]
call fcn.00404a83
xor eax, eax
cmp word [edi], ax
je 0x451310
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x900]
call fcn.00404a83
inc ebx
jmp 0x4512bb
push 0x2f
pop edx
push 0x2d
mov ecx, dword [ebp - 0x3848]
pop ebx
inc ecx
jmp 0x450ef3
mov ebx, dword [ebp - 0x3840]
mov edi, dword [ebp - 0x383c]
movzx eax, byte [ebx + 4]
movzx edx, word [ebx + 0x1e]
movzx ecx, word [ebx + 0x1c]
push eax
push edx
push ecx
mov ecx, edi
call fcn.0044f047
test eax, eax
jne 0x4513bb
add edi, 0xcc
mov ecx, edi
call fcn.00415998
test eax, eax
je 0x4513a7
mov ecx, edi
call fcn.0040fc75
mov ecx, edi
mov dword [ebp - 0x384c], eax
call fcn.0040fc46
mov ecx, edi
mov ebx, eax
call fcn.0040fc17
push dword [ebp - 0x384c]
mov edi, dword [ebp - 0x383c]
push ebx
push eax
lea ecx, [edi + 0x4608]
call fcn.00442ed8
mov ebx, dword [ebp - 0x3840]
jmp 0x4513ad
mov edi, dword [ebp - 0x383c]
mov eax, dword [ebx]
mov ecx, ebx
push 6
call dword [eax + 0xc]
jmp 0x45439c
cmp dword [ebp - 0x94c], 8
lea eax, [ebp - 0x960]
cmovae eax, dword [ebp - 0x960]
push eax
push str.LFP_Silent_INI___1_s_
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x960]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x389c], esp
push eax
call fcn.00401bb9
mov ecx, edi
call fcn.0044f2c4
test eax, eax
jne 0x45143f
add edi, 0xcc
mov ecx, edi
call fcn.00415998
test eax, eax
je 0x4513a7
mov ecx, edi
call fcn.0040fc75
mov ecx, edi
mov dword [ebp - 0x384c], eax
call fcn.0040fc46
mov ecx, edi
mov ebx, eax
call fcn.0040fc17
push dword [ebp - 0x384c]
jmp 0x45138c
xor eax, eax
lea ecx, [edi + 0xd0]
inc eax
push eax
mov byte [ebp - 0x3855], al
lea eax, [edi + 0x4890]
push eax
call fcn.0046d83b
mov ecx, edi
call fcn.0044e988
test eax, eax
je 0x4513ad
lea eax, [ebx + 0x38]
cmp dword [eax + 0x14], 8
jb 0x451475
mov eax, dword [eax]
push eax
lea ecx, [edi + 0x4618]
call fcn.00404bb9
mov eax, dword [ebx]
mov ecx, ebx
push 3
call dword [eax + 0xc]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push 2
call dword [eax + 0xc]
lea ebx, [edi + 0xcc]
mov ecx, ebx
call fcn.00413f8c
mov ecx, dword [ebp - 0x3840]
movzx eax, ax
mov word [ecx + 0x1c], ax
mov ecx, ebx
call fcn.00413f8c
movzx ecx, ax
xor edx, edx
mov eax, 0x3ff
and ax, cx
mov ecx, 0x180000
cmp ax, word [ebp - 0x3868]
mov eax, dword [section..data]
cmove edx, ecx
push str.istdrv.debug.ini
mov dword [eax + 0xc], edx
xor eax, eax
push eax
push str.MessageBoxDebug
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x451526
mov ecx, ebx
call fcn.004139b8
mov ecx, dword [section..data]
push eax
call fcn.0044edd1
test esi, esi
je 0x450c61
mov eax, dword [esi]
xor ecx, ecx
inc ecx
push ecx
mov ecx, esi
call dword [eax + 4]
jmp 0x450c61
push str.istdrv.debug.ini
xor eax, eax
push eax
push str.UnusedScreen
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
test eax, eax
je 0x45154c
call fcn.00434166
jmp 0x450c61
push str.istdrv.debug.ini
xor eax, eax
push eax
push str.DemoCase
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, eax
test edi, edi
je 0x4515a4
xor eax, eax
xor esi, esi
push eax
push eax
push eax
lea eax, [ebp - 0x3874]
inc esi
push eax
mov ecx, ebx
mov dword [ebp - 0x3874], esi
call fcn.004142b6
push 0x63ce90
push edi
call fcn.00435348
mov ebx, dword [ebp - 0x3840]
pop ecx
pop ecx
mov edi, dword [ebp - 0x383c]
jmp 0x450c6a
mov eax, dword [ebp - 0x383c]
push dword [eax + 0x68]
lea edi, [eax + 0x4608]
mov ecx, edi
call fcn.00448f27
mov ecx, dword [ebp - 0x383c]
call fcn.00455312
dec eax
je 0x454bca
dec eax
je 0x454389
mov eax, dword [ebp - 0x3840]
xor ecx, ecx
mov al, byte [eax + 5]
test al, al
sete cl
push ecx
mov ecx, edi
call fcn.0043a09d
test eax, eax
jne 0x451622
mov ebx, dword [ebp - 0x3840]
mov ecx, ebx
push 6
mov eax, dword [ebx]
call dword [eax + 0xc]
mov dword [ebp - 0x3844], 2
test esi, esi
je 0x451617
mov eax, dword [esi]
xor ecx, ecx
inc ecx
push ecx
mov ecx, esi
call dword [eax + 4]
mov edi, dword [ebp - 0x383c]
jmp 0x4543bc
mov edi, dword [ebp - 0x383c]
lea ecx, [edi + 0x404]
call fcn.0044ba78
xor eax, eax
lea ecx, [edi + 0x404]
inc eax
push eax
push eax
call fcn.0044d27d
mov ecx, ebx
test eax, eax
jne 0x451695
call fcn.00415998
test eax, eax
je 0x451688
mov ecx, ebx
call fcn.0040fc75
mov ecx, ebx
mov dword [ebp - 0x384c], eax
call fcn.0040fc46
mov ecx, ebx
mov edi, eax
call fcn.0040fc17
push dword [ebp - 0x384c]
push edi
mov edi, dword [ebp - 0x383c]
push eax
lea ecx, [edi + 0x4608]
call fcn.00442ed8
mov ecx, dword [ebp - 0x3840]
mov eax, dword [ecx]
jmp 0x4513b1
call fcn.00413f8c
mov edi, dword [ebp - 0x3840]
mov ecx, ebx
movzx eax, ax
mov word [edi + 0x1c], ax
call fcn.00413f8c
movzx ecx, ax
xor edx, edx
mov eax, 0x3ff
inc edx
and ax, cx
xor ecx, ecx
cmp ax, dx
mov eax, 0x180000
cmove ecx, eax
mov eax, dword [section..data]
mov dword [eax + 0xc], ecx
mov ecx, ebx
call fcn.00413ae4
mov dword [ebp - 0x385c], eax
test esi, esi
je 0x4516ed
mov edx, dword [esi]
xor eax, eax
inc eax
mov ecx, esi
push eax
call dword [edx + 4]
mov esi, dword [ebp - 0x383c]
mov eax, dword [ebp - 0x3844]
xor edx, edx
cmp dword [esi + 0x460c], edx
jne 0x45172b
mov al, byte [edi + 6]
test al, al
jne 0x451725
xor eax, eax
lea ecx, [ebp - 0x1f1c]
mov dword [ebp - 0x1ec8], eax
call fcn.004728ae
mov dword [ebp - 0x3844], eax
jmp 0x45172b
mov eax, dword [ebp - 0x3844]
cmp eax, 2
jne 0x451757
mov eax, dword [edi]
mov ecx, edi
push 7
call dword [eax + 0xc]
mov edi, dword [ebp - 0x383c]
xor eax, eax
inc eax
mov dword [edi + 0x4610], 2
mov dword [edi + 0x4630], eax
jmp 0x4543bc
cmp eax, 0x3f8
jne 0x4517a8
mov ecx, ebx
call fcn.00413f8c
movzx eax, ax
mov ecx, ebx
mov word [edi + 0x1c], ax
call fcn.00413ae4
mov ecx, ebx
mov dword [ebp - 0x385c], eax
call fcn.00413f8c
movzx ecx, ax
xor edx, edx
mov eax, 0x3ff
inc edx
and ax, cx
xor ecx, ecx
cmp ax, dx
mov eax, 0x180000
cmove ecx, eax
mov eax, dword [section..data]
mov dword [eax + 0xc], ecx
jmp 0x4516f3
cmp dword [ebp - 0x3844], 3
jne 0x451824
mov ecx, ebx
call fcn.00415998
test eax, eax
je 0x4517ef
mov ecx, ebx
call fcn.0040fc75
mov ecx, ebx
mov edi, eax
call fcn.0040fc46
mov ecx, ebx
mov esi, eax
call fcn.0040fc17
mov ecx, dword [ebp - 0x383c]
push edi
push esi
push eax
lea ecx, [ecx + 0x4608]
call fcn.00442ed8
mov edi, dword [ebp - 0x3840]
mov eax, dword [edi]
mov ecx, edi
push 6
call dword [eax + 0xc]
mov edi, dword [ebp - 0x383c]
mov dword [ebp - 0x3844], 2
or dword [edi + 0x4610], 0xffffffff
xor ebx, ebx
je 0x4543bc
mov eax, dword [ebx]
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
jmp 0x4543b9
mov edi, dword [ebp - 0x383c]
lea ecx, [edi + 0xcc]
call fcn.0041b43f
xor ecx, ecx
xor ebx, ebx
inc ecx
cmp eax, ecx
jne 0x451860
mov esi, ebx
cmp esi, 5
jge 0x451860
lea eax, [esi*8 + 0x3dc]
add eax, edi
lea ecx, [esi*8 + 0x3b4]
add ecx, edi
push eax
call fcn.004081b9
inc esi
jmp 0x451840
add edi, 0xd0
push str.___NAME_OPT_MSETUP___
mov ecx, edi
call fcn.0046ed66
mov esi, eax
cmp word [esi], bx
jne 0x45187d
mov eax, ebx
jmp 0x451884
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x918]
call fcn.00404be0
mov esi, dword [ebp - 0x383c]
lea ebx, [esi + 0xcc]
mov ecx, ebx
call fcn.0041b43f
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x45190f
cmp dword [ebp - 0x908], 0
je 0x45190f
push str.___NAME_OPT_MSETUP___
lea ecx, [ebp - 0x918]
call fcn.0041fdbb
test eax, eax
je 0x45190f
mov esi, dword [ebp - 0x3840]
add esi, 0x90
cmp dword [esi + 0x14], 8
jb 0x4518de
mov eax, dword [esi]
jmp 0x4518e0
mov eax, esi
push 0x5c4f10
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
je 0x45198a
cmp dword [esi + 0x14], 8
jb 0x4518fd
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x39e4]
call fcn.0046c84b
mov esi, dword [ebp - 0x383c]
cmp dword [ebp - 0x8ec], 8
lea eax, [ebp - 0x900]
push 0x5c4f10
cmovae eax, dword [ebp - 0x900]
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
je 0x4519e9
mov ecx, ebx
call fcn.0041b43f
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x4519e9
mov eax, dword [esi + 0x3b4]
mov ecx, dword [eax]
mov dword [ebp - 0x3848], ecx
cmp ecx, eax
je 0x4519be
add ecx, 0x38
push ecx
lea ecx, [ebp - 0x900]
call fcn.0041fd32
test eax, eax
je 0x4519b5
lea ecx, [ebp - 0x3848]
call fcn.004212e4
mov ecx, dword [ebp - 0x3848]
cmp ecx, dword [esi + 0x3b4]
jne 0x45195c
jmp 0x4519be
mov ebx, dword [ebp - 0x3840]
mov ecx, ebx
push 6
mov eax, dword [ebx]
call dword [eax + 0xc]
mov edi, dword [ebp - 0x383c]
or dword [edi + 0x4610], 0xffffffff
mov dword [ebp - 0x3844], 2
jmp 0x4543bc
xor eax, eax
inc eax
mov dword [ebp - 0x38ac], eax
xor edx, edx
cmp dword [esi + 0x460c], edx
je 0x4519f3
lea ecx, [esi + 0x4b84]
lea eax, [ebp - 0x900]
cmp ecx, eax
je 0x4519eb
push 0xffffffffffffffff
xor eax, eax
push eax
lea eax, [ebp - 0x900]
push eax
call fcn.00404b26
xor edx, edx
cmp dword [esi + 0x460c], edx
jne 0x451a51
mov eax, dword [ebp - 0x3840]
mov al, byte [eax + 7]
test al, al
jne 0x451a49
mov ecx, ebx
call fcn.0041b43f
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x451a47
cmp dword [ebp - 0x38ac], ecx
lea ecx, [ebp - 0x39e4]
jne 0x451a38
cmp dword [ebp - 0x8ec], 8
lea eax, [ebp - 0x900]
cmovae eax, dword [ebp - 0x900]
push eax
call fcn.0046c84b
jmp 0x451aa0
call fcn.004728ae
mov dword [ebp - 0x3844], eax
xor edx, edx
jmp 0x451aa8
xor edx, edx
cmp dword [esi + 0x460c], edx
je 0x451aa2
mov ecx, ebx
call fcn.0041b43f
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x451aa0
add esi, 0x4b84
cmp dword [esi + 0x14], 8
jb 0x451a6f
mov eax, dword [esi]
jmp 0x451a71
mov eax, esi
push 0x5c4f10
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
je 0x45198a
cmp dword [esi + 0x14], 8
jb 0x451a8e
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x39e4]
call fcn.0046c84b
mov esi, dword [ebp - 0x383c]
xor edx, edx
mov eax, dword [ebp - 0x3844]
cmp eax, 2
jne 0x451adb
mov ebx, dword [ebp - 0x3840]
mov ecx, ebx
push 7
mov eax, dword [ebx]
call dword [eax + 0xc]
mov edi, dword [ebp - 0x383c]
mov dword [edi + 0x4610], 2
mov dword [edi + 0x4630], 0xa
jmp 0x4543bc
cmp eax, 0xc
je 0x45437e
lea eax, [ebp - 0x8e8]
push eax
lea ecx, [ebp - 0x39e4]
call fcn.0046c235
push str.___FILE_INSTALLER_INI___
mov ecx, edi
call fcn.0046ed66
mov esi, eax
xor eax, eax
cmp word [esi], ax
je 0x451b12
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x948]
call fcn.00404be0
cmp dword [ebp - 0x8d8], 0
je 0x451cd9
cmp dword [ebp - 0x938], 0
je 0x451cd9
mov ecx, ebx
call fcn.0041b43f
xor esi, esi
inc esi
cmp eax, esi
jne 0x451cd9
cmp dword [ebp - 0x934], 8
lea ecx, [ebp - 0x948]
lea eax, [ebp - 0x8e8]
cmovae ecx, dword [ebp - 0x948]
cmp dword [ebp - 0x8d4], 8
cmovae eax, dword [ebp - 0x8e8]
xor edx, edx
push edx
push ecx
push dword [ebp - 0x8d8]
mov ecx, ebx
push eax
call fcn.0041cc29
test eax, eax
je 0x45198a
cmp dword [ebp - 0x934], 8
lea ecx, [ebp - 0x948]
push 4
cmovae ecx, dword [ebp - 0x948]
lea eax, [ebp - 0x8e8]
cmp dword [ebp - 0x8d4], 8
push ecx
push dword [ebp - 0x8d8]
cmovae eax, dword [ebp - 0x8e8]
mov ecx, ebx
push eax
call fcn.0041cc29
test eax, eax
je 0x45198a
mov ecx, ebx
call fcn.0041adf9
and eax, 0xf0
cmp al, 0x30
jne 0x451cd9
push str.___MAIN_DRIVERTYPE_PRINT___
mov ecx, edi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x8d0]
call fcn.00401c0c
xor ebx, ebx
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x3898]
mov dword [ebp - 0x3898], ebx
mov dword [ebp - 0x3894], ebx
call fcn.0041f3fd
mov dword [ebp - 0x3898], eax
mov byte [ebp - 4], 0x15
call fcn.00474a71
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x3898]
push eax
push 0x5c7230
add ecx, 0xcc
call fcn.0040afb1
test eax, eax
jne 0x451cbb
push 0x5c5eec
lea ecx, [ebp - 0x8d0]
call fcn.0041fdbb
mov edi, dword [ebp - 0x383c]
test eax, eax
lea eax, [edi + 0x4608]
jne 0x451c6b
push 0xfbc
jmp 0x451c70
push 0xfbb
push eax
call fcn.00442cfd
mov ebx, dword [ebp - 0x3840]
pop ecx
pop ecx
push 6
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
or dword [edi + 0x4610], 0xffffffff
lea ecx, [ebp - 0x3898]
mov dword [ebp - 0x3844], 2
call fcn.00407a25
xor eax, eax
lea ecx, [ebp - 0x8d0]
push eax
push esi
mov byte [ebp - 4], 0x12
call fcn.00404970
jmp 0x4543bc
lea ecx, [ebp - 0x3898]
call fcn.00407a25
push ebx
push esi
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], 0x12
call fcn.00404970
jmp 0x451cdb
xor ebx, ebx
mov edi, dword [ebp - 0x383c]
lea esi, [edi + 0x404]
mov ecx, esi
call fcn.0044b816
mov ecx, esi
call fcn.0044b7ba
mov esi, dword [ebp - 0x3844]
push ebx
lea ecx, [ebp - 0x1acc]
call fcn.00468a70
cmp dword [edi + 0x460c], ebx
mov ebx, dword [ebp - 0x3840]
jne 0x451d52
mov al, byte [ebx + 8]
test al, al
jne 0x451d52
lea ecx, [edi + 0xcc]
call fcn.004127b9
xor ecx, ecx
inc ecx
cmp eax, ecx
jbe 0x451d52
push dword [ebp - 0x385c]
lea ecx, [ebp - 0x1acc]
call fcn.00468a70
lea ecx, [ebp - 0x1acc]
call fcn.004728ae
mov esi, eax
mov dword [ebp - 0x3844], esi
cmp esi, 2
jne 0x451d73
mov eax, dword [ebx]
mov ecx, ebx
push 7
call dword [eax + 0xc]
push esi
pop ebx
mov dword [edi + 0x4610], ebx
mov dword [edi + 0x4630], ebx
jmp 0x4543bc
cmp esi, 0xc
je 0x45182a
lea ecx, [ebp - 0x1acc]
call fcn.00468148
push eax
lea ecx, [edi + 0xcc]
mov dword [ebp - 0x385c], eax
call fcn.00412742
push eax
lea ecx, [ebp - 0x2380]
call fcn.0045a80e
jmp 0x451db3
mov edi, dword [ebp - 0x383c]
mov esi, dword [ebp - 0x3844]
xor eax, eax
cmp dword [edi + 0x460c], eax
jne 0x451dd7
mov al, byte [ebx + 9]
test al, al
jne 0x451dd7
lea ecx, [ebp - 0x2380]
call fcn.004728ae
mov esi, eax
mov dword [ebp - 0x3844], esi
cmp esi, 0xc
je 0x454377
add edi, 0xcc
mov ecx, edi
call fcn.004129ac
mov esi, dword [ebp - 0x383c]
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x451e43
cmp dword [esi + 0x4628], 0
je 0x451e43
lea ecx, [ebp - 0x3861]
call fcn.00474019
sub esp, 0x18
mov byte [ebp - 4], 0x16
lea eax, [esi + 0x4618]
mov dword [ebp - 0x389c], esp
mov ecx, esp
push eax
call fcn.00401bb9
lea ecx, [ebp - 0x3861]
call fcn.00435c9c
lea ecx, [ebp - 0x3861]
mov byte [ebp - 4], 0x12
call fcn.0058967c
cmp dword [ebp - 0x3844], 2
jne 0x451e74
mov eax, dword [ebx]
mov ecx, ebx
push 7
call dword [eax + 0xc]
mov edi, dword [ebp - 0x383c]
mov dword [edi + 0x4610], 2
mov dword [edi + 0x4630], 3
jmp 0x4543bc
xor eax, eax
lea ecx, [esi + 0xd0]
push str.___MAIN_DRIVERTYPE_PRINT___
mov dword [ebp - 0x3848], eax
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x8a0]
call fcn.00401c0c
push 0x5c7230
lea eax, [ebp - 0x3848]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x38b0]
mov ecx, edi
push eax
call fcn.0040ec3b
mov esi, dword [eax]
cmp esi, dword [ebp - 0x3848]
je 0x452101
push 0x5c5eec
lea ecx, [ebp - 0x8a0]
call fcn.0041fdbb
lea ecx, [esi + 0x148]
test eax, eax
jne 0x451ee5
push 0x5c5f44
jmp 0x451eea
push 0x5c5eec
call fcn.0041fdbb
mov esi, dword [ebp - 0x383c]
xor ecx, ecx
test eax, eax
sete cl
test ecx, ecx
je 0x452107
xor ecx, ecx
cmp dword [esi + 0x460c], ecx
jne 0x451f15
mov al, byte [ebx + 0xb]
test al, al
je 0x451f21
mov dword [ebp - 0x1134], ecx
mov dword [ebp - 0x1130], ecx
mov ecx, edi
call fcn.0041adf9
and eax, 0xf0
cmp al, 0x30
jne 0x4520ee
xor eax, eax
lea ecx, [ebp - 0x3884]
mov dword [ebp - 0x3884], eax
mov dword [ebp - 0x3880], eax
call fcn.0041f3fd
mov dword [ebp - 0x3884], eax
mov byte [ebp - 4], 0x18
call fcn.00474a71
mov ecx, dword [eax + 4]
lea eax, [ebp - 0x3884]
push eax
push 0x5c7230
add ecx, 0xcc
call fcn.0040afb1
test eax, eax
jne 0x451fe4
push 0x5c5eec
lea ecx, [ebp - 0x8a0]
call fcn.0041fdbb
mov edi, dword [ebp - 0x383c]
test eax, eax
lea eax, [edi + 0x4608]
jne 0x451fa2
push 0xfbc
jmp 0x451fa7
push 0xfbb
push eax
call fcn.00442cfd
mov eax, dword [ebx]
pop ecx
pop ecx
push 6
mov ecx, ebx
call dword [eax + 0xc]
or dword [edi + 0x4610], 0xffffffff
lea ecx, [ebp - 0x3884]
mov dword [ebp - 0x3844], 2
call fcn.00407a25
xor eax, eax
lea ecx, [ebp - 0x8a0]
push eax
inc eax
push eax
jmp 0x451cad
xor eax, eax
lea ecx, [ebp - 0x858]
push eax
push eax
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x844], eax
call fcn.00404970
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x19
call fcn.00406c4b
mov eax, dword [ebp - 0x3884]
mov byte [ebp - 4], 0x1a
mov edi, dword [eax]
mov dword [ebp - 0x3868], edi
cmp edi, eax
je 0x4520c9
lea eax, [edi + 0x28]
push eax
lea ecx, [ebp - 0x858]
call fcn.0040820f
mov esi, dword [ebp - 0x1c]
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x3870]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0042e43d
cmp esi, dword [eax]
jne 0x4520a7
lea eax, [ebp - 0x858]
push eax
lea eax, [ebp - 0x38bc]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00420ace
cmp dword [ebp - 0x844], 8
lea eax, [ebp - 0x858]
mov ecx, dword [edi + 0x20]
cmovae eax, dword [ebp - 0x858]
add edi, 0x10
cmp dword [edi + 0x14], 8
jb 0x452089
mov edi, dword [edi]
mov esi, dword [ebp - 0x383c]
push eax
lea eax, [ecx + 1]
push eax
push edi
push 0x5c7230
lea ecx, [esi + 0xcc]
call fcn.0041e812
jmp 0x4520ad
mov esi, dword [ebp - 0x383c]
lea ecx, [ebp - 0x3868]
call fcn.004212e4
mov eax, dword [ebp - 0x3884]
mov edi, dword [ebp - 0x3868]
jmp 0x45201d
lea ecx, [ebp - 0x1c]
call fcn.00407a8b
xor eax, eax
lea ecx, [ebp - 0x858]
push eax
inc eax
push eax
call fcn.00404970
lea ecx, [ebp - 0x3884]
call fcn.00407a25
jmp 0x452107
lea ecx, [ebp - 0x1600]
call fcn.004728ae
mov dword [ebp - 0x3844], eax
jmp 0x452107
mov esi, dword [ebp - 0x383c]
xor eax, eax
mov byte [ebp - 4], 0x12
push eax
inc eax
lea ecx, [ebp - 0x8a0]
push eax
call fcn.00404970
mov eax, dword [ebp - 0x3844]
cmp eax, 2
jne 0x45214e
mov eax, dword [ebx]
mov ecx, ebx
push 7
call dword [eax + 0xc]
mov edi, dword [ebp - 0x383c]
mov dword [edi + 0x4610], 2
mov dword [edi + 0x4630], 4
jmp 0x4543bc
cmp eax, 0xc
je 0x451da7
xor eax, eax
lea edi, [esi + 0xd0]
push 0x5c4f10
push str.__FLD_NONSTI_INST__
mov ecx, edi
mov dword [ebp - 0x3848], eax
mov dword [ebp - 0x388c], eax
call fcn.0046f76b
mov al, byte [ebx + 0xc]
xor ecx, ecx
add esi, 0xcc
test al, al
lea eax, [ebp - 0x388c]
sete cl
push ecx
push eax
mov ecx, esi
call fcn.0041b863
cmp eax, 0xffffffff
jg 0x452283
je 0x4522b7
cmp eax, 0xffffff9c
je 0x452268
cmp eax, 0xfffffff6
je 0x45224d
cmp eax, 0xfffffffd
je 0x4521cb
cmp eax, 0xfffffffe
je 0x4521df
jmp 0x4522fc
push str.SRC_ABS_OLDER._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
add esp, 0xc
push str.SRC_PAR_OLDER._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
add esp, 0xc
mov ecx, esi
call fcn.0041b49b
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x45223c
push str.There_is_a_printer_icon_same_as_driver_name._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
add esp, 0xc
push 0x91be
mov edi, dword [ebp - 0x383c]
lea eax, [edi + 0x4608]
push eax
call fcn.00442cfd
mov eax, dword [ebx]
pop ecx
pop ecx
push 6
mov ecx, ebx
call dword [eax + 0xc]
jmp 0x45199f
mov eax, dword [ebp - 0x383c]
or dword [eax + 0x4614], ecx
jmp 0x4522fc
push str.SRC_NOT_FOUND._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
add esp, 0xc
push 0x2727
jmp 0x45221a
push str.SRC_LANG_INVALID._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
add esp, 0xc
push 0x2728
jmp 0x45221a
xor ecx, ecx
sub eax, ecx
je 0x4522d6
dec eax
je 0x4522a3
dec eax
jne 0x4522fc
push str.SRC_ABS_NEWER._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
add esp, 0xc
push str.SRC_PAR_NEWER._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
add esp, 0xc
push str.OLD_NEW_MIXED._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
xor eax, eax
add esp, 0xc
inc eax
mov dword [ebp - 0x3848], eax
jmp 0x4522fc
push str.SRC_DST_EQUALS_include_DST_NONE_._n
push str.CIstDrvApp::InitInstance
push 2
call fcn.00424dad
add esp, 0xc
mov ecx, esi
call fcn.0041b49b
xor ecx, ecx
inc ecx
cmp eax, ecx
je 0x452201
mov ecx, esi
call fcn.00413a83
push eax
push str.m_nProductType__0x_1_lx_._n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
lea ecx, [ebp - 0x870]
xor eax, eax
mov dword [ebp - 0x860], eax
mov dword [ebp - 0x85c], eax
push eax
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x888]
push eax
push eax
mov dword [ebp - 0x878], eax
mov dword [ebp - 0x874], eax
call fcn.00404970
push str.___DRIVERSTORE_DIR___
mov ecx, edi
mov byte [ebp - 4], 0x1c
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x870]
call fcn.00404bb9
mov edi, dword [ebp - 0x383c]
mov esi, dword [edi + 0x3c4]
mov esi, dword [esi]
mov dword [ebp - 0x3868], esi
cmp esi, dword [edi + 0x3c4]
je 0x452482
mov eax, dword [esi + 0x2c]
xor ecx, ecx
sub eax, ecx
je 0x45246c
dec eax
je 0x452401
cmp dword [esi + 0x108], ecx
je 0x45246c
lea eax, [esi + 0xf8]
push str.in_box
push eax
call fcn.0040539d
pop ecx
pop ecx
test al, al
je 0x45246c
lea eax, [esi + 0xf8]
cmp dword [eax + 0x14], 8
jb 0x4523cf
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x45246c
lea eax, [esi + 0xf8]
cmp dword [eax + 0x14], 8
jb 0x4523ed
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x45246c
add esi, 0xf8
push esi
jmp 0x452461
push str.___FLD_WINDOWS___Twain_32_NAME_MODEL_
lea ecx, [edi + 0xd0]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x888]
call fcn.00404bb9
cmp dword [ebp - 0x874], 8
lea eax, [ebp - 0x888]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmovae eax, dword [ebp - 0x888]
push eax
call esi
cmp eax, 0xffffffff
je 0x45246c
cmp dword [ebp - 0x874], 8
lea eax, [ebp - 0x888]
cmovae eax, dword [ebp - 0x888]
push eax
call esi
test al, 0x10
je 0x45246c
lea eax, [ebp - 0x888]
push eax
lea ecx, [ebp - 0x870]
call fcn.0040820f
lea ecx, [ebp - 0x3868]
call fcn.004212e4
mov esi, dword [ebp - 0x3868]
jmp 0x45237e
cmp dword [ebp - 0x85c], 8
lea eax, [ebp - 0x870]
lea esi, [edi + 0xd0]
cmovae eax, dword [ebp - 0x870]
mov ecx, esi
push eax
push str.__FLD_NONSTI_INST__
call fcn.0046f76b
test eax, eax
jne 0x4524ce
cmp dword [ebp - 0x85c], 8
lea eax, [ebp - 0x870]
mov ecx, esi
cmovae eax, dword [ebp - 0x870]
push eax
push str.__FLD_NONSTI_INST__
call fcn.0046d72a
cmp dword [ebp - 0x85c], 8
lea eax, [ebp - 0x870]
cmovae eax, dword [ebp - 0x870]
push eax
push str.sNonStiDir.data__
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424d8f
add esp, 0x10
lea ecx, [ebp - 0x888]
xor eax, eax
push eax
inc eax
push eax
call fcn.00404970
xor eax, eax
mov byte [ebp - 4], 0x12
push eax
inc eax
lea ecx, [ebp - 0x870]
push eax
call fcn.00404970
push str.___NAME_OPT_MSETUP___
mov ecx, esi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x918]
call fcn.00404bb9
cmp dword [ebp - 0x908], 0
je 0x452554
push str.___NAME_OPT_MSETUP___
lea ecx, [ebp - 0x918]
call fcn.0041fdbb
test eax, eax
jne 0x4525f5
lea ecx, [edi + 0xcc]
call fcn.0040ece0
cmp eax, 0xffffffff
je 0x4525f5
xor ecx, ecx
cmp dword [edi + 0x460c], ecx
jne 0x4525d5
mov al, byte [ebx + 0x10]
test al, al
mov eax, dword [ebp - 0x3848]
jne 0x4525db
test eax, eax
je 0x4525db
lea ecx, [ebp - 0x3a90]
call fcn.00476f0b
mov esi, eax
mov dword [ebp - 0x3844], esi
cmp esi, 0xc
je 0x451db3
cmp esi, 2
jne 0x4525c2
mov eax, dword [ebx]
mov ecx, ebx
push 7
call dword [eax + 0xc]
mov dword [edi + 0x4610], esi
mov dword [edi + 0x4630], 9
jmp 0x4543bc
xor eax, eax
lea ebx, [eax + 1]
mov eax, dword [ebp - 0x39e8]
mov dword [ebp - 0x3860], eax
jmp 0x452602
mov eax, dword [ebp - 0x3848]
cmp dword [edi + 0x460c], ecx
je 0x4525f5
test eax, eax
je 0x4525f5
mov eax, dword [edi + 0x4b80]
mov dword [ebp - 0x3860], eax
jmp 0x4525fc
or dword [ebp - 0x3860], 0xffffffff
mov ebx, dword [ebp - 0x3850]
xor eax, eax
cmp dword [edi + 0x460c], eax
jne 0x452726
lea esi, [edi + 0xd0]
push str.___DRIVERSTORE_DIR___
mov ecx, esi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x888]
call fcn.00401c0c
push str.___NAME_DEVID___
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x8a0]
call fcn.00401c0c
push str.___NAME_DEVCODE___
mov ecx, esi
mov byte [ebp - 4], 0x1e
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x858]
call fcn.00401c0c
push str.___DRIVERSTORE_DIR___
lea ecx, [ebp - 0x888]
mov byte [ebp - 4], 0x1f
call fcn.0041fdbb
test eax, eax
je 0x4526f0
push str.___NAME_DEVID___
lea ecx, [ebp - 0x8a0]
call fcn.0041fdbb
test eax, eax
je 0x4526f0
push str.___NAME_DEVCODE___
lea ecx, [ebp - 0x858]
call fcn.0041fdbb
test eax, eax
je 0x4526f0
cmp dword [ebp - 0x844], 8
lea edx, [ebp - 0x858]
lea ecx, [ebp - 0x8a0]
cmovae edx, dword [ebp - 0x858]
lea eax, [ebp - 0x888]
cmp dword [ebp - 0x88c], 8
push edx
cmovae ecx, dword [ebp - 0x8a0]
cmp dword [ebp - 0x874], 8
push ecx
cmovae eax, dword [ebp - 0x888]
lea ecx, [edi + 0x46c4]
push eax
call fcn.0040256f
xor eax, eax
lea ecx, [ebp - 0x858]
xor esi, esi
inc eax
push esi
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x8a0]
push esi
inc eax
push eax
call fcn.00404970
xor eax, eax
mov byte [ebp - 4], 0x12
push esi
inc eax
lea ecx, [ebp - 0x888]
push eax
call fcn.00404970
mov eax, dword [ebp - 0x384c]
test eax, eax
je 0x45273d
push 0x16
lea ecx, [edi + 0x46c4]
call fcn.00402083
test ebx, ebx
je 0x452775
lea esi, [edi + 0x46c4]
push 0x23
mov ecx, esi
call fcn.00402083
mov eax, dword [ebp - 0x3860]
xor ebx, ebx
sub eax, ebx
je 0x452771
dec eax
je 0x452766
dec eax
jne 0x452777
push 0x26
jmp 0x452768
push 0x25
mov ecx, esi
call fcn.00402083
jmp 0x452777
push 0x24
jmp 0x452768
xor ebx, ebx
lea eax, [ebp - 0x3874]
push eax
sub esp, 0x18
lea eax, [ebp - 0x8b8]
mov ecx, esp
mov dword [ebp - 0x3870], esp
push eax
call fcn.00401bb9
push 0x104
lea eax, [ebp - 0x428]
mov ecx, edi
push eax
call fcn.00455833
mov eax, 0x4268
push 0x830
mov dword [ebp - 0x38a8], eax
lea eax, [ebp - 0x3450]
push ebx
push eax
call fcn.0058e700
add esp, 0xc
mov dword [ebp - 0x3450], 2
lea ebx, [edi + 0xcc]
mov ecx, ebx
mov dword [ebp - 0x3850], ebx
call fcn.0041adf9
mov dword [ebp - 0x344c], eax
mov ecx, ebx
mov eax, dword [ebp - 0x3840]
mov dword [ebp - 0x2c24], eax
call fcn.00413a83
and eax, 0x30000
cmp eax, 0x10000
jne 0x452835
push str.SHORTCUT
lea esi, [edi + 0xd0]
push str.__NAME_SHORTCUT__
mov ecx, esi
call fcn.0046d72a
push 0x5c4f10
mov edi, str.__VAR_NAME_PRNDRV_OTHER_IF_NEED_UNINSTALL__
mov ecx, esi
push edi
call fcn.0046d72a
jmp 0x45283a
mov edi, str.__VAR_NAME_PRNDRV_OTHER_IF_NEED_UNINSTALL__
mov ecx, ebx
call fcn.00413a83
and eax, 0x30000
cmp eax, 0x10000
je 0x4528ec
mov ecx, ebx
call fcn.004094da
mov ecx, ebx
mov dword [ebp - 0x384c], eax
call fcn.004095da
mov edx, dword [ebp - 0x383c]
xor ebx, ebx
push 1
mov dword [ebp - 0x3868], eax
mov ecx, dword [edx + 0x3b4]
lea esi, [edx + 0xd0]
cmp dword [ecx], ecx
pop ecx
cmovne ebx, ecx
mov ecx, esi
test eax, eax
je 0x45289f
push str.___NAME_PRINTERDRIVER_OTHER___
push edi
call fcn.0046d72a
mov edi, 0x5c4f10
jmp 0x4528bc
push 0x5c4f10
push edi
call fcn.0046d72a
mov edi, 0x5c4f10
mov ecx, esi
push edi
push str.__VAL_DELOTHER_PRINT__
call fcn.0046f76b
test ebx, ebx
je 0x4528d9
cmp dword [ebp - 0x384c], 0
je 0x4528d2
cmp dword [ebp - 0x3868], 0
je 0x4528d9
push str.SHORTCUT
jmp 0x4528da
push edi
push str.__NAME_SHORTCUT__
mov ecx, esi
call fcn.0046d72a
mov ebx, dword [ebp - 0x3850]
mov edi, dword [ebp - 0x3848]
test edi, edi
jne 0x452944
cmp dword [ebp - 0x8a4], 8
lea eax, [ebp - 0x8b8]
push str._NOT_SPECIFIED_
cmovae eax, dword [ebp - 0x8b8]
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
je 0x452944
cmp dword [ebp - 0x8a4], 8
lea eax, [ebp - 0x8b8]
push 0x5c9f38
cmovae eax, dword [ebp - 0x8b8]
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
jne 0x452afb
mov ebx, 0x5c4f10
lea ecx, [ebp - 0x8a0]
push ebx
call fcn.00401c0c
push ebx
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x20
call fcn.00401c0c
cmp dword [ebp - 0x8a4], 8
lea eax, [ebp - 0x8b8]
mov byte [ebp - 4], 0x21
cmovae eax, dword [ebp - 0x8b8]
push eax
push str.strSelectedExtension___1_s__n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
lea ecx, [ebp - 0x858]
push str.SOFTWARE
call fcn.00404a5c
mov edi, 0x5c6c8c
lea ecx, [ebp - 0x858]
push edi
call fcn.00404a5c
mov ebx, dword [ebp - 0x383c]
xor eax, eax
mov esi, eax
cmp esi, 4
jae 0x452a20
mov eax, dword [ebx + esi*8 + 0x3b4]
mov eax, dword [eax]
mov dword [ebp - 0x384c], eax
cmp eax, dword [ebx + esi*8 + 0x3b4]
je 0x452a1d
test esi, esi
je 0x4529ea
xor eax, eax
inc eax
cmp esi, eax
je 0x4529ea
cmp esi, 2
jne 0x452a0a
imul eax, esi, 0x14
lea ecx, [ebp - 0x858]
add eax, str.PRINT
push eax
call fcn.00404a5c
push edi
lea ecx, [ebp - 0x858]
call fcn.00404a5c
lea ecx, [ebp - 0x384c]
call fcn.004212e4
mov eax, dword [ebp - 0x384c]
jmp 0x4529d1
inc esi
jmp 0x4529bd
lea eax, [ebp - 0x858]
push 0x2c
push eax
call fcn.0046d16a
cmp dword [ebp - 0x844], 8
lea eax, [ebp - 0x858]
pop ecx
cmovae eax, dword [ebp - 0x858]
lea esi, [ebx + 0xd0]
pop ecx
push eax
push str.__CLEANUP_FUNCTIONS__
mov ecx, esi
call fcn.0046d72a
add ebx, 0xcc
push 2
mov ecx, ebx
call fcn.0041526b
push eax
mov ecx, esi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x8a0]
call fcn.00404bb9
cmp dword [ebp - 0x890], 0
je 0x452ad2
cmp dword [ebp - 0x88c], 8
lea eax, [ebp - 0x8a0]
cmovae eax, dword [ebp - 0x8a0]
push eax
push str.Uninstaller_CleanupCmdLine___1_s__n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x8a0]
cmp dword [ebp - 0x88c], 8
cmovae eax, dword [ebp - 0x8a0]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x3034]
push eax
call fcn.0044dba2
add esp, 0xc
xor esi, esi
lea ecx, [ebp - 0x858]
xor edi, edi
push esi
inc edi
push edi
call fcn.00404970
push esi
push edi
lea ecx, [ebp - 0x8a0]
mov byte [ebp - 4], 0x12
call fcn.00404970
mov edi, dword [ebp - 0x3848]
mov esi, dword [ebp - 0x383c]
push 0x5c4f10
push str.__TARGET_DRIVERS__
lea ecx, [esi + 0xd0]
call fcn.0046d72a
test edi, edi
je 0x452de0
xor eax, eax
lea ecx, [ebp - 0x870]
push eax
push eax
mov dword [ebp - 0x860], eax
mov dword [ebp - 0x85c], eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x858]
push eax
push eax
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x844], eax
call fcn.00404970
lea ecx, [ebp - 0x8a0]
mov byte [ebp - 4], 0x23
call fcn.0046d5d4
xor edi, edi
mov byte [ebp - 4], 0x24
inc edi
mov ecx, ebx
mov dword [ebp - 0x3448], edi
call fcn.004155e4
push 0x2c
push eax
lea ecx, [ebp - 0x8a0]
call fcn.0046eb6a
push str.istdrv.debug.ini
push edi
push str.UninstallOnUpgrade
push str.Setup
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor ebx, ebx
test eax, eax
je 0x452da0
mov eax, dword [ebp - 0x3860]
cmp eax, edi
je 0x452db1
test eax, eax
je 0x452db1
mov edi, ebx
cmp edi, 4
jae 0x452cab
mov esi, dword [esi + edi*8 + 0x3b4]
mov esi, dword [esi]
mov dword [ebp - 0x384c], esi
mov eax, dword [ebp - 0x383c]
cmp esi, dword [eax + edi*8 + 0x3b4]
je 0x452ca3
cmp dword [esi + 0x2c], ebx
jne 0x452c8d
lea ecx, [ebp - 0x8a0]
call fcn.0046d95f
xor ecx, ecx
inc ecx
cmp eax, ecx
jb 0x452c3b
lea ecx, [ebp - 0x8a0]
call fcn.0046d95f
cmp ebx, eax
jae 0x452c37
push ebx
lea ecx, [ebp - 0x8a0]
call fcn.0046dbf8
imul ecx, edi, 0x14
add ecx, str.PRINT
push ecx
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x452c8b
inc ebx
jmp 0x452c03
xor ebx, ebx
jne 0x452c8d
imul eax, edi, 0x14
lea ecx, [ebp - 0x870]
add eax, str.PRINT
push eax
call fcn.00404a5c
mov ebx, 0x5c6c8c
lea ecx, [ebp - 0x870]
push ebx
call fcn.00404a5c
test edi, edi
je 0x452c6b
xor eax, eax
inc eax
cmp edi, eax
jne 0x452c8b
push 0xffffffffffffffff
xor eax, eax
lea ecx, [ebp - 0x858]
push eax
add esi, 0x38
push esi
call fcn.004049b6
push ebx
lea ecx, [ebp - 0x858]
call fcn.00404a5c
xor ebx, ebx
lea ecx, [ebp - 0x384c]
call fcn.004212e4
mov esi, dword [ebp - 0x384c]
jmp 0x452bd5
inc edi
mov esi, eax
jmp 0x452bbd
cmp dword [ebp - 0x860], 0
je 0x452dae
lea eax, [ebp - 0x870]
push 0x2c
push eax
call fcn.0046d16a
cmp dword [ebp - 0x85c], 8
lea eax, [ebp - 0x870]
pop ecx
cmovae eax, dword [ebp - 0x870]
add esi, 0xd0
pop ecx
push eax
push str.__UPGRADE_FUNCTIONS__
mov ecx, esi
call fcn.0046d72a
lea eax, [ebp - 0x858]
push 0x2c
push eax
call fcn.0046d16a
cmp dword [ebp - 0x844], 8
lea eax, [ebp - 0x858]
pop ecx
cmovae eax, dword [ebp - 0x858]
pop ecx
push eax
push str.__TARGET_DRIVERS__
mov ecx, esi
call fcn.0046f76b
mov ecx, dword [ebp - 0x383c]
xor edi, edi
inc edi
push edi
lea ecx, [ecx + 0xcc]
call fcn.0041526b
push eax
mov ecx, esi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x870]
call fcn.00404bb9
cmp dword [ebp - 0x85c], 8
lea eax, [ebp - 0x870]
cmovae eax, dword [ebp - 0x870]
push eax
push str.Uninstaller_UpgradeCmdLine___1_s__n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x870]
cmp dword [ebp - 0x85c], 8
cmovae eax, dword [ebp - 0x870]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x3444]
push eax
call fcn.0044dba2
mov esi, dword [ebp - 0x383c]
add esp, 0xc
jmp 0x452db1
push ebx
push ebx
push str.Wait
call fcn.00476721
jmp 0x452db1
xor edi, edi
inc edi
lea ecx, [ebp - 0x8a0]
mov byte [ebp - 4], 0x23
call fcn.0046d690
push ebx
push edi
lea ecx, [ebp - 0x858]
call fcn.00404970
push ebx
push edi
lea ecx, [ebp - 0x870]
mov byte [ebp - 4], 0x12
call fcn.00404970
jmp 0x452de2
xor ebx, ebx
cmp dword [ebp - 0x8a4], 8
lea eax, [ebp - 0x8b8]
push 0x5d3e3c
cmovae eax, dword [ebp - 0x8b8]
push eax
call fcn.00591d24
lea edi, [esi + 0x4608]
pop ecx
pop ecx
mov ecx, edi
test eax, eax
je 0x452e17
call fcn.0043f819
push ebx
jmp 0x452e1d
call fcn.0043fe14
push eax
lea ecx, [esi + 0x404]
call fcn.0044d65e
push 0x74
call fcn.004730a5
pop ecx
mov dword [ebp - 0x3870], eax
mov byte [ebp - 4], 0x25
test eax, eax
je 0x452e49
mov ecx, eax
call fcn.0044de8e
mov esi, eax
jmp 0x452e4b
mov esi, ebx
mov ecx, dword [ebp - 0x383c]
mov byte [ebp - 4], 0x12
cmp dword [ecx + 0x460c], ebx
mov ebx, dword [ebp - 0x3840]
jne 0x452ea9
mov al, byte [ebx + 0xc]
test al, al
je 0x452ea9
xor eax, eax
inc eax
mov dword [ecx + 0x460c], eax
lea eax, [ebp - 0x3888]
mov cl, byte [ebx + 0xc]
push eax
push dword [ebp - 0x3860]
xor eax, eax
test cl, cl
mov ecx, edi
sete al
push eax
lea eax, [ebp - 0x3450]
push eax
call fcn.0043bd20
mov eax, dword [ebp - 0x383c]
xor ecx, ecx
mov dword [eax + 0x460c], ecx
jmp 0x452ecf
mov cl, byte [ebx + 0xc]
lea eax, [ebp - 0x3888]
push eax
push dword [ebp - 0x3860]
xor eax, eax
test cl, cl
mov ecx, edi
sete al
push eax
lea eax, [ebp - 0x3450]
push eax
call fcn.0043bd20
test esi, esi
je 0x452ede
mov eax, dword [esi]
xor ecx, ecx
inc ecx
push ecx
mov ecx, esi
call dword [eax + 4]
cmp dword [ebp - 0x8a4], 8
lea eax, [ebp - 0x8b8]
push 0x5d3e3c
cmovae eax, dword [ebp - 0x8b8]
push eax
call fcn.00591d24
mov esi, dword [ebp - 0x383c]
pop ecx
pop ecx
test eax, eax
je 0x452f63
push str.___NAME_OPT_LANG___
lea ecx, [esi + 0xd0]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x384c]
call fcn.00406ad4
push 0x5c4f10
lea ecx, [ebp - 0x384c]
mov byte [ebp - 4], 0x26
call fcn.004097f0
test eax, eax
je 0x452f51
cmp dword [esi + 0x45b4], 0
jne 0x452f51
xor eax, eax
mov ecx, edi
inc eax
push eax
call fcn.00448d28
mov ecx, dword [ebp - 0x384c]
mov byte [ebp - 4], 0x12
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov eax, dword [esi + 0x4610]
cmp eax, 0xffffffff
je 0x45435f
cmp eax, 2
je 0x45435f
cmp eax, 0x64
jne 0x452fa3
xor eax, eax
mov ecx, edi
inc eax
mov dword [ebp - 0x3854], eax
call fcn.00441e88
test eax, eax
mov eax, dword [ebx]
je 0x452f9a
push 2
jmp 0x452f9e
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor eax, eax
push str.istdrv.debug.ini
push eax
push str.AlwaysReboot
push str.Setup
call edi
test eax, eax
je 0x45300f
push str.DebugInfo_AlwaysReboot_is_TRUE._n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0xc
mov dword [esi + 0x4610], 0x64
xor eax, eax
inc eax
mov dword [ebp - 0x3854], eax
xor eax, eax
push str.istdrv.debug.ini
push eax
push str.AlwaysReboot.Emergency
push str.Setup
call edi
test eax, eax
mov eax, dword [ebx]
je 0x453006
push 2
jmp 0x45300a
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
mov eax, dword [ebx]
mov ecx, ebx
push 4
call dword [eax + 0xc]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push 5
call dword [eax + 0xc]
cmp dword [ebp - 0x3860], 0
je 0x4542bf
push 0x5c7230
lea eax, [ebp - 0x3850]
xor ebx, ebx
push eax
lea eax, [ebp - 0x3870]
mov dword [ebp - 0x3850], ebx
lea edi, [esi + 0xcc]
push eax
mov ecx, edi
call fcn.0040ec3b
xor esi, esi
inc esi
mov eax, dword [eax]
cmp eax, dword [ebp - 0x3850]
je 0x4530c4
cmp dword [eax + 0x2c], esi
jne 0x4530c4
lea esi, [eax + 0x50]
cmp dword [esi + 0x14], 8
jb 0x45307c
mov ecx, dword [esi]
jmp 0x45307e
mov ecx, esi
test ecx, ecx
je 0x4530c1
cmp dword [esi + 0x14], 8
jb 0x45308c
mov ecx, dword [esi]
jmp 0x45308e
mov ecx, esi
xor edx, edx
cmp dx, word [ecx]
je 0x4530c1
add eax, 0x28
mov ecx, edi
push eax
call fcn.0041200e
test eax, eax
je 0x4530c1
cmp dword [esi + 0x14], 8
jb 0x4530ac
mov esi, dword [esi]
push esi
push str.Replace_Printer_driver_inf___1_s__n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
xor esi, esi
inc esi
push 0x5c723c
lea eax, [ebp - 0x3850]
mov ecx, edi
push eax
lea eax, [ebp - 0x3870]
push eax
call fcn.0040ec3b
mov eax, dword [eax]
cmp eax, dword [ebp - 0x3850]
je 0x45313f
cmp dword [eax + 0x2c], esi
jne 0x45313f
lea esi, [eax + 0x50]
cmp dword [esi + 0x14], 8
jb 0x4530fa
mov ecx, dword [esi]
jmp 0x4530fc
mov ecx, esi
test ecx, ecx
je 0x45313f
cmp dword [esi + 0x14], 8
jb 0x45310a
mov ecx, dword [esi]
jmp 0x45310c
mov ecx, esi
xor edx, edx
cmp dx, word [ecx]
je 0x45313f
add eax, 0x28
mov ecx, edi
push eax
call fcn.0041200e
test eax, eax
je 0x45313f
cmp dword [esi + 0x14], 8
jb 0x45312a
mov esi, dword [esi]
push esi
push str.Replace_Fax_driver_inf___1_s__n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
push 0x5c7230
lea eax, [ebp - 0x384c]
mov dword [ebp - 0x384c], ebx
push eax
lea eax, [ebp - 0x3870]
mov ecx, edi
push eax
call fcn.0040ec3b
mov esi, dword [eax]
cmp esi, dword [ebp - 0x384c]
je 0x45328f
lea ecx, [ebp - 0x858]
call fcn.0046d5d4
mov ecx, edi
mov byte [ebp - 4], 0x27
call fcn.004104b2
push 0x2c
push eax
lea ecx, [ebp - 0x858]
call fcn.0046eb6a
push 0x20
lea ecx, [ebp - 0x858]
call fcn.0046f50b
mov edi, ebx
lea ecx, [ebp - 0x858]
call fcn.0046d95f
cmp edi, eax
jae 0x453280
push edi
lea ecx, [ebp - 0x858]
call fcn.0046dbf8
test eax, eax
je 0x453312
push edi
lea ecx, [ebp - 0x858]
call fcn.0046dbf8
push eax
push 0x5c7230
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
jne 0x453312
add esi, 0x50
cmp dword [esi + 0x14], 8
jb 0x4531f5
mov eax, dword [esi]
jmp 0x4531f7
mov eax, esi
push eax
push str.AddUpdateInf.___1_s___n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
mov edi, dword [ebp - 0x383c]
add esp, 0x10
push str.___NAME_UPDATEINFS___
lea ecx, [edi + 0xd0]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x8a0]
call fcn.00401c0c
cmp dword [ebp - 0x88c], 8
lea eax, [ebp - 0x8a0]
push str.___NAME_UPDATEINFS___
cmovae eax, dword [ebp - 0x8a0]
push eax
mov byte [ebp - 4], 0x28
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
jne 0x453270
cmp dword [esi + 0x14], 8
jb 0x45325f
mov esi, dword [esi]
push esi
push str.__NAME_UPDATEINFS__
lea ecx, [edi + 0xd0]
call fcn.0046d72a
xor eax, eax
lea ecx, [ebp - 0x8a0]
push ebx
inc eax
push eax
call fcn.00404970
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x12
call fcn.0046d690
xor esi, esi
inc esi
lea ecx, [ebp - 0x888]
call fcn.0046d5d4
mov edi, dword [ebp - 0x383c]
mov byte [ebp - 4], 0x29
lea ebx, [edi + 0xcc]
mov ecx, ebx
call fcn.004103e4
cmp eax, esi
jb 0x4534c9
lea ecx, [ebp - 0x858]
call fcn.0046d5d4
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], 0x2a
call fcn.0046d5d4
cmp dword [ebp - 0x8a4], 8
lea eax, [ebp - 0x8b8]
push 0x5d3e3c
cmovae eax, dword [ebp - 0x8b8]
push eax
mov byte [ebp - 4], 0x2b
call fcn.00591d24
mov edi, dword [ebp - 0x3840]
pop ecx
pop ecx
test eax, eax
jne 0x45337e
lea esi, [edi + 0x20]
cmp dword [esi + 0x14], 8
jb 0x453318
mov eax, dword [esi]
jmp 0x45331a
inc edi
jmp 0x4531a0
mov eax, esi
test eax, eax
je 0x45337e
cmp dword [esi + 0x14], 8
jb 0x453328
mov eax, dword [esi]
jmp 0x45332a
mov eax, esi
xor ecx, ecx
cmp cx, word [eax]
je 0x45337e
cmp dword [esi + 0x14], 8
jb 0x45333b
mov eax, dword [esi]
jmp 0x45333d
mov eax, esi
push str.WIRELESS
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x453355
push 0x5d43b8
jmp 0x453373
cmp dword [esi + 0x14], 8
jb 0x45335d
mov esi, dword [esi]
push str.WIRED
push esi
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x45337e
push 0x5d43cc
lea ecx, [ebp - 0x8b8]
call fcn.00404a5c
mov esi, dword [ebp - 0x383c]
push str.___EXTIF_SILENTINST___
lea ecx, [esi + 0xd0]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x3850]
call fcn.00406ad4
push 0x5c6428
lea ecx, [ebp - 0x3850]
mov byte [ebp - 4], 0x2c
call fcn.004097f0
test eax, eax
jne 0x4533bf
push 0x5c9f38
jmp 0x4533ec
push 0x5d4404
lea ecx, [ebp - 0x3850]
call fcn.004097f0
test eax, eax
je 0x4533e7
push 0x5d02e0
lea ecx, [ebp - 0x3850]
call fcn.004097f0
test eax, eax
jne 0x4533f7
push 0x5d3e3c
lea ecx, [ebp - 0x8b8]
call fcn.00404bb9
cmp dword [ebp - 0x8a4], 8
lea eax, [ebp - 0x8b8]
push str._NOT_SPECIFIED_
cmovae eax, dword [ebp - 0x8b8]
push eax
call fcn.00591d24
pop ecx
pop ecx
test eax, eax
je 0x453515
xor esi, esi
mov edi, esi
mov ecx, ebx
call fcn.004103e4
cmp edi, eax
jae 0x453494
push edi
mov ecx, ebx
call fcn.00410151
push 0x2c
push eax
lea ecx, [ebp - 0x858]
call fcn.0046eb6a
push esi
lea ecx, [ebp - 0x858]
call fcn.0046dbf8
push 0x7c
push eax
lea ecx, [ebp - 0x8d0]
call fcn.0046eb6a
cmp dword [ebp - 0x8a4], 8
lea esi, [ebp - 0x8b8]
lea ecx, [ebp - 0x8d0]
cmovae esi, dword [ebp - 0x8b8]
xor eax, eax
push eax
call fcn.0046dbf8
push esi
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x45350d
mov dword [ebp - 0x3480], edi
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x3850]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
lea ecx, [ebp - 0x8d0]
mov byte [ebp - 4], 0x2a
call fcn.0046d690
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x29
call fcn.0046d690
mov edi, dword [ebp - 0x383c]
cmp dword [ebp - 0x3844], 2
jne 0x453586
mov ebx, dword [ebp - 0x3840]
mov ecx, ebx
push 7
mov eax, dword [ebx]
call dword [eax + 0xc]
mov dword [edi + 0x4610], 2
mov dword [edi + 0x4630], 6
lea ecx, [ebp - 0x888]
mov byte [ebp - 4], 0x12
call fcn.0046d690
jmp 0x4543bc
inc edi
xor esi, esi
jmp 0x453424
xor ecx, ecx
cmp dword [esi + 0x460c], ecx
jne 0x453494
mov al, byte [edi + 0xa]
test al, al
jne 0x453494
mov edi, ecx
mov esi, ecx
mov ecx, ebx
call fcn.004103e4
cmp esi, eax
jae 0x45355c
push esi
mov ecx, ebx
call fcn.004102e7
test eax, eax
je 0x45355c
push esi
mov ecx, ebx
call fcn.004102e7
xor ecx, ecx
cmp cx, word [eax]
je 0x45355c
inc edi
inc esi
jmp 0x453532
xor esi, esi
inc esi
cmp edi, esi
ja 0x453570
xor eax, eax
mov dword [ebp - 0x3480], eax
jmp 0x453497
lea ecx, [ebp - 0x3838]
call fcn.004728ae
mov dword [ebp - 0x3844], eax
jmp 0x453497
push dword [ebp - 0x3480]
mov ecx, ebx
call fcn.00410151
push 0x2c
push eax
lea ecx, [ebp - 0x888]
call fcn.0046eb6a
lea ecx, [ebp - 0x888]
call fcn.0046d95f
cmp eax, esi
jbe 0x453df0
mov ebx, 0x5c4f10
lea ecx, [ebp - 0x8a0]
push ebx
call fcn.00401c0c
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x2d
call fcn.0046d5d4
push ebx
lea ecx, [ebp - 0x930]
mov byte [ebp - 4], 0x2e
call fcn.00401c0c
xor esi, esi
mov byte [ebp - 4], 0x2f
lea ecx, [edi + 0xcc]
mov ebx, esi
call fcn.0040c1ff
push eax
lea ecx, [ebp - 0x870]
call fcn.00401c0c
xor eax, eax
mov byte [ebp - 4], 0x30
inc eax
lea ecx, [ebp - 0x888]
push eax
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x870]
call fcn.00404a5c
xor eax, eax
lea ecx, [edi + 0x46c4]
inc eax
push eax
call fcn.00455a3c
push esi
lea ecx, [ebp - 0x888]
call fcn.0046dbf8
test eax, eax
je 0x4536f3
push esi
lea ecx, [ebp - 0x888]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x8a0]
call fcn.00404bb9
cmp dword [ebp - 0x88c], 8
lea eax, [ebp - 0x8a0]
push 0x7c
cmovae eax, dword [ebp - 0x8a0]
lea ecx, [ebp - 0x858]
push eax
call fcn.0046eb6a
push esi
lea ecx, [ebp - 0x858]
call fcn.0046dbf8
test eax, eax
je 0x4536f3
push esi
lea ecx, [ebp - 0x858]
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x930]
call fcn.00404bb9
cmp dword [ebp - 0x91c], 8
lea eax, [ebp - 0x930]
lea esi, [edi + 0xd0]
cmovae eax, dword [ebp - 0x930]
mov ecx, esi
push eax
push str.__NAME_EXTENSION_INTERNAL__
call fcn.0046f76b
test eax, eax
jne 0x4536f3
cmp dword [ebp - 0x91c], 8
lea eax, [ebp - 0x930]
mov ecx, esi
cmovae eax, dword [ebp - 0x930]
push eax
push str.__NAME_EXTENSION_INTERNAL__
call fcn.0046d72a
lea eax, [ebp - 0x840]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
cmp dword [ebp - 0x85c], 8
lea eax, [ebp - 0x870]
cmovae eax, dword [ebp - 0x870]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push 0x101
lea ecx, [ebp - 0x220]
push ecx
push 4
lea ecx, [ebp - 0x1c]
push ecx
push eax
call fcn.00592b69
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x634]
push eax
call fcn.00406a32
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x634]
push eax
call fcn.00406a1a
add esp, 0x34
lea eax, [ebp - 0x634]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 0x3480]
cmp dword [ebp - 0x85c], 8
mov dword [edi + 0x4ba0], eax
lea eax, [ebp - 0x870]
cmovae eax, dword [ebp - 0x870]
push eax
call fcn.00405177
mov edi, eax
pop ecx
test edi, edi
je 0x453928
push 2
lea ecx, [ebp - 0x888]
call fcn.0046dbf8
push 3
xor ecx, ecx
push ecx
push eax
lea eax, [ebp - 0x8d0]
push eax
call fcn.0046d30b
add esp, 0x10
cmp dword [ebp - 0x8bc], 0x10
lea eax, [ebp - 0x8d0]
mov byte [ebp - 4], 0x31
cmovae eax, dword [ebp - 0x8d0]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x453909
push 0x420
xor ebx, ebx
lea eax, [ebp - 0x3040]
push ebx
push eax
call fcn.0058e700
mov dword [ebp - 0x3040], ebx
add esp, 0xc
mov ebx, dword [ebp - 0x383c]
lea ecx, [ebx + 0xcc]
call fcn.00413f8c
movzx eax, ax
lea ecx, [ebx + 0xcc]
mov dword [ebp - 0x303c], eax
call fcn.0040c1ff
push eax
lea eax, [ebp - 0x3038]
push eax
call fcn.0042e644
push str.start_InstallerExtension._n
mov ebx, str.CIstDrvApp::InitInstance
mov dword [ebp - 0x2c24], 0x454e22
xor eax, eax
push ebx
push 5
mov dword [ebp - 0x2c28], eax
call fcn.00424dad
add esp, 0x14
lea eax, [ebp - 0x3038]
push eax
push str.SetupInfo2.strSourcePath
push ebx
push 5
call fcn.00424d8f
add esp, 0x10
push dword [ebp - 0x303c]
push str.SetupInfo2.nLangCode0x_1_lx_._n
push ebx
push 5
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x3040]
push eax
push 2
call esi
mov ebx, eax
call fcn.00474a71
push 0x64
mov ecx, dword [eax + 4]
xor eax, eax
push eax
add ecx, 0x4608
call fcn.0044959a
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0x4608]
call fcn.0043f98f
push str.end_InstallerExtension._n
mov esi, str.CIstDrvApp::InitInstance
push esi
push 5
call fcn.00424dad
add esp, 0xc
push ebx
push str._ULONG_nRet
push esi
push 5
call fcn.00424d53
add esp, 0x10
push dword [ebp - 0x2c28]
push str._ULONG_SetupInfo2.nReboot
push esi
push 5
call fcn.00424d53
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor edi, edi
mov byte [ebp - 4], 0x30
xor eax, eax
lea ecx, [ebp - 0x8d0]
push edi
inc eax
push eax
call fcn.00404f5d
jmp 0x45392a
xor edi, edi
mov eax, dword [ebp - 0x383c]
push str.istdrv.debug.ini
push edi
push str.AlwaysReboot.InstallerExtension
push str.Setup
mov dword [eax + 0x4ba0], edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov esi, eax
test esi, esi
je 0x45396d
push esi
push str.DebugInfo_AlwaysReboot_is__1_u__n._n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
mov dword [ebp - 0x2c28], esi
mov eax, dword [ebp - 0x3840]
mov ecx, dword [ebp - 0x387c]
mov esi, dword [ebp - 0x383c]
push 1
mov al, byte [eax + 0xf]
test al, al
pop eax
cmove ecx, eax
mov dword [ebp - 0x387c], ecx
lea ecx, [esi + 0xd0]
push str.___NAME_OPT_MSETUP___
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x918]
call fcn.00404bb9
cmp dword [ebp - 0x908], 0
je 0x4539ce
push str.___NAME_OPT_MSETUP___
lea ecx, [ebp - 0x918]
call fcn.0041fdbb
test eax, eax
je 0x4539ce
xor eax, eax
lea edi, [eax + 1]
lea eax, [ebp - 0x840]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp ebx, 0xc
jne 0x453af0
xor eax, eax
inc eax
cmp dword [ebp - 0x2c28], eax
je 0x4539f8
cmp dword [ebp - 0x2c28], 2
jne 0x453a27
lea ecx, [esi + 0x4608]
mov dword [ebp - 0x3854], eax
call fcn.00441e88
mov ebx, dword [ebp - 0x3840]
test eax, eax
mov ecx, ebx
mov eax, dword [ebx]
je 0x453a1e
push 2
call dword [eax + 0x10]
jmp 0x453a2d
xor esi, esi
inc esi
push esi
call dword [eax + 0x10]
jmp 0x453a30
mov ebx, dword [ebp - 0x3840]
xor esi, esi
inc esi
push str._NOT_SPECIFIED_
lea ecx, [ebp - 0x8b8]
call fcn.00404bb9
test edi, edi
jne 0x453a90
xor ebx, ebx
lea ecx, [ebp - 0x870]
push ebx
push esi
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x930]
call fcn.00404970
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x2d
call fcn.0046d690
push ebx
push esi
lea ecx, [ebp - 0x8a0]
call fcn.00404970
lea ecx, [ebp - 0x888]
mov byte [ebp - 4], 0x12
call fcn.0046d690
jmp 0x453292
mov eax, dword [ebx]
mov ecx, ebx
push 0xc
call dword [eax + 0xc]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
xor esi, esi
lea ecx, [ebp - 0x870]
xor edi, edi
push esi
inc edi
push edi
call fcn.00404970
push esi
push edi
lea ecx, [ebp - 0x930]
call fcn.00404970
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x2d
call fcn.0046d690
push esi
inc esi
lea ecx, [ebp - 0x8a0]
push esi
call fcn.00404970
lea ecx, [ebp - 0x888]
mov byte [ebp - 4], 0x12
call fcn.0046d690
jmp 0x451599
cmp ebx, 2
jne 0x453ba7
xor eax, eax
inc eax
cmp dword [ebp - 0x2c28], eax
je 0x453b0c
cmp dword [ebp - 0x2c28], ebx
jne 0x453b3d
mov edi, esi
mov dword [ebp - 0x3854], eax
lea ecx, [edi + 0x4608]
call fcn.00441e88
mov ebx, dword [ebp - 0x3840]
test eax, eax
mov ecx, ebx
mov eax, dword [ebx]
je 0x453b34
push 2
call dword [eax + 0x10]
jmp 0x453b45
xor esi, esi
inc esi
push esi
call dword [eax + 0x10]
jmp 0x453b48
mov ebx, dword [ebp - 0x3840]
mov edi, esi
xor esi, esi
inc esi
mov eax, dword [ebx]
mov ecx, ebx
push 7
call dword [eax + 0xc]
push 2
pop eax
mov dword [edi + 0x4610], eax
mov dword [edi + 0x4630], 7
mov dword [ebp - 0x3844], eax
xor ebx, ebx
lea ecx, [ebp - 0x870]
push ebx
push esi
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x930]
call fcn.00404970
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x2d
call fcn.0046d690
push ebx
push esi
lea ecx, [ebp - 0x8a0]
call fcn.00404970
jmp 0x4534f9
test ebx, ebx
je 0x453d81
cmp ebx, 0xffffffff
je 0x453d81
add esi, 0x4608
mov ecx, esi
call fcn.00443a20
mov ebx, dword [ebp - 0x3840]
mov al, byte [ebx + 0xf]
test al, al
je 0x453bd9
mov al, byte [ebx + 0xe]
test al, al
jne 0x453be9
mov eax, dword [ebx]
mov ecx, ebx
push 0xd
call dword [eax + 0xc]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push 4
call dword [eax + 0xc]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
mov eax, dword [ebx]
mov ecx, ebx
push 5
call dword [eax + 0xc]
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x2c28], ecx
jne 0x453c1d
mov eax, dword [ebp - 0x383c]
mov dword [eax + 0x4610], 0x64
cmp dword [ebp - 0x2c28], 2
jne 0x453cfa
test edi, edi
mov edi, dword [ebp - 0x383c]
je 0x453cad
mov ecx, esi
mov dword [edi + 0x4610], 0x64
call fcn.00441e88
test eax, eax
mov eax, dword [ebx]
je 0x453c4f
push 2
jmp 0x453c53
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
xor esi, esi
lea ecx, [ebp - 0x870]
xor eax, eax
push esi
inc eax
push eax
call fcn.00404970
xor eax, eax
lea ecx, [ebp - 0x930]
push esi
inc eax
push eax
call fcn.00404970
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x2d
call fcn.0046d690
push esi
xor esi, esi
lea ecx, [ebp - 0x8a0]
inc esi
push esi
call fcn.00404970
lea ecx, [ebp - 0x888]
mov byte [ebp - 4], 0x12
call fcn.0046d690
jmp 0x450c6a
xor eax, eax
cmp dword [edi + 0x460c], eax
je 0x453cd2
push eax
push ecx
lea ecx, [ebp - 0x870]
mov dword [edi + 0x4610], 0x64
call fcn.00404970
xor esi, esi
jmp 0x453c6a
call fcn.0041dad4
xor ecx, ecx
inc ecx
cmp dword [edi + 0x4610], 0x64
jne 0x453d0b
mov dword [ebp - 0x3854], ecx
mov ecx, esi
call fcn.00441e88
test eax, eax
mov eax, dword [ebx]
je 0x453d02
push 2
jmp 0x453d06
mov edi, dword [ebp - 0x383c]
jmp 0x453cda
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
xor eax, eax
cmp dword [edi + 0x460c], eax
jne 0x453d41
cmp dword [ebp - 0x3854], 0
mov ecx, 0x5c6428
mov eax, 0x5c58f8
cmove eax, ecx
lea ecx, [edi + 0xd0]
push eax
push str.__VAL_NOTRESTART__
call fcn.0046d72a
mov ecx, esi
call fcn.0043f9d3
xor esi, esi
lea ecx, [ebp - 0x870]
xor edi, edi
push esi
inc edi
push edi
call fcn.00404970
push esi
push edi
lea ecx, [ebp - 0x930]
call fcn.00404970
lea ecx, [ebp - 0x858]
mov byte [ebp - 4], 0x2d
call fcn.0046d690
push esi
push edi
lea ecx, [ebp - 0x8a0]
call fcn.00404970
jmp 0x453e2c
xor eax, eax
inc eax
cmp dword [ebp - 0x2c28], eax
je 0x453d95
cmp dword [ebp - 0x2c28], 2
jne 0x453dc6
mov edi, esi
mov dword [ebp - 0x3854], eax
lea ecx, [edi + 0x4608]
call fcn.00441e88
mov ebx, dword [ebp - 0x3840]
test eax, eax
mov ecx, ebx
mov eax, dword [ebx]
je 0x453dbd
push 2
call dword [eax + 0x10]
jmp 0x453dce
xor esi, esi
inc esi
push esi
call dword [eax + 0x10]
jmp 0x453dd1
mov ebx, dword [ebp - 0x3840]
mov edi, esi
xor esi, esi
inc esi
mov eax, dword [ebx]
mov ecx, ebx
push 6
call dword [eax + 0xc]
or dword [edi + 0x4610], 0xffffffff
mov dword [ebp - 0x3844], 2
jmp 0x453b6a
xor eax, eax
lea ecx, [edi + 0x46c4]
push eax
call fcn.00455a3c
lea esi, [edi + 0xd0]
mov ebx, 0x5c9f38
push ebx
mov edi, str.__NAME_EXTENSION_INTERNAL__
mov ecx, esi
push edi
call fcn.0046f76b
test eax, eax
jne 0x453e24
push ebx
push edi
mov ecx, esi
call fcn.0046d72a
mov ebx, dword [ebp - 0x3840]
xor esi, esi
lea ecx, [ebp - 0x888]
mov byte [ebp - 4], 0x12
call fcn.0046d690
mov edi, esi
mov esi, dword [ebp - 0x383c]
add esi, 0xd0
push str.___NAME_OPT_MSETUP___
mov ecx, esi
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x918]
call fcn.00404bb9
cmp dword [ebp - 0x908], 0
je 0x453f66
push str.___NAME_OPT_MSETUP___
lea ecx, [ebp - 0x918]
call fcn.0041fdbb
test eax, eax
je 0x453f66
lea eax, [ebx + 0x20]
cmp dword [eax + 0x14], 8
jb 0x453e93
mov ecx, dword [eax]
jmp 0x453e95
mov ecx, eax
test ecx, ecx
je 0x453ed7
cmp dword [eax + 0x14], 8
jb 0x453ea3
mov ecx, dword [eax]
jmp 0x453ea5
mov ecx, eax
xor edx, edx
cmp dx, word [ecx]
je 0x453ed7
cmp dword [eax + 0x14], 8
jb 0x453eb4
mov eax, dword [eax]
push 0x5c9f38
push eax
call fcn.005921d4
mov esi, dword [ebp - 0x383c]
pop ecx
pop ecx
test eax, eax
jne 0x453fe9
lea edi, [eax + 1]
jmp 0x453fe9
xor eax, eax
mov ecx, esi
push str.___MAIN_DRIVERTYPE_PRINT___
mov dword [ebp - 0x384c], eax
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x8d0]
call fcn.00401c0c
mov esi, dword [ebp - 0x383c]
lea eax, [ebp - 0x384c]
push 0x5c7230
push eax
lea eax, [ebp - 0x3870]
mov byte [ebp - 4], 0x33
push eax
lea ecx, [esi + 0xcc]
call fcn.0040ec3b
mov eax, dword [eax]
cmp eax, dword [ebp - 0x384c]
je 0x453f4d
add eax, 0x148
cmp dword [eax + 0x14], 8
jb 0x453f36
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x8d0]
push eax
call fcn.0040539d
pop ecx
pop ecx
test al, al
push 1
pop eax
cmovne edi, eax
xor eax, eax
mov byte [ebp - 4], 0x12
push eax
inc eax
lea ecx, [ebp - 0x8d0]
push eax
call fcn.00404970
jmp 0x453fe9
push 0x5c4f10
lea ecx, [ebp - 0x858]
call fcn.00401c0c
push str.___NAME_EXTENSION_INTERNAL___
mov ecx, esi
mov byte [ebp - 4], 0x32
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x858]
call fcn.00404bb9
cmp dword [ebp - 0x848], 0
je 0x453fcf
push 4
mov esi, 0x5d3e3c
push esi
call fcn.00591dbe
cmp dword [ebp - 0x844], 8
lea ecx, [ebp - 0x858]
push eax
cmovae ecx, dword [ebp - 0x858]
push esi
push ecx
call fcn.00593b5f
add esp, 0x14
test eax, eax
push 1
pop eax
cmovne edi, eax
xor eax, eax
mov byte [ebp - 4], 0x12
push eax
inc eax
lea ecx, [ebp - 0x858]
push eax
call fcn.00404970
mov esi, dword [ebp - 0x383c]
mov eax, dword [esi + 0xb20]
and eax, 0xf000
cmp eax, 0x1000
je 0x454087
cmp dword [0x641b1c], 0
je 0x45401f
lea ecx, [esi + 0xcc]
call fcn.0041adf9
and eax, 0xf000
cmp eax, 0x2000
je 0x454087
cmp dword [0x641b24], 0
je 0x45403f
lea ecx, [esi + 0xcc]
call fcn.0041adf9
and eax, 0xf000
cmp eax, 0x3000
je 0x454087
cmp dword [0x641b2c], 0
je 0x45405f
lea ecx, [esi + 0xcc]
call fcn.0041adf9
and eax, 0xf000
cmp eax, 0x4000
je 0x454087
cmp dword [0x641b34], 0
je 0x4542c5
lea ecx, [esi + 0xcc]
call fcn.0041adf9
and eax, 0xf000
cmp eax, 0x5000
jne 0x4542c5
test edi, edi
je 0x454105
mov cl, byte [ebx + 0xd]
xor eax, eax
push 0x64
test cl, cl
lea ecx, [esi + 0x4608]
push eax
sete al
push eax
call fcn.004438b1
mov eax, dword [ebp - 0x383c]
mov eax, dword [eax + 0x4610]
cmp eax, 0xffffffff
je 0x4540ec
cmp eax, 0x64
jne 0x4540e1
xor eax, eax
lea ecx, [esi + 0x4608]
inc eax
mov dword [ebp - 0x3854], eax
call fcn.00441e88
test eax, eax
mov eax, dword [ebx]
je 0x4540d8
push 2
jmp 0x4540dc
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
mov eax, dword [ebx]
mov ecx, ebx
push 5
call dword [eax + 0xc]
jmp 0x4540ff
mov eax, dword [ebx]
mov ecx, ebx
push 6
call dword [eax + 0xc]
mov dword [ebp - 0x3844], 2
mov esi, dword [ebp - 0x383c]
cmp dword [ebp - 0x3844], 2
je 0x451617
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.0041d70e
xor eax, eax
cmp dword [esi + 0x460c], eax
jne 0x454238
mov al, byte [ebx + 0xe]
test al, al
jne 0x454236
lea ecx, [ebp - 0x2c20]
call fcn.004728ae
mov dword [ebp - 0x3844], eax
cmp eax, 2
jne 0x45417c
mov eax, dword [ebx]
mov ecx, ebx
push 7
call dword [eax + 0xc]
mov edi, dword [ebp - 0x383c]
mov dword [edi + 0x4610], 2
mov dword [edi + 0x4630], 8
jmp 0x4543bc
lea ecx, [ebp - 0x2c20]
call fcn.0044f038
push eax
lea ecx, [ebp - 0x978]
call fcn.00404bb9
lea ecx, [ebp - 0x2c20]
call fcn.00460d8c
test eax, eax
je 0x4541c9
xor eax, eax
lea ecx, [ebp - 0x2c20]
inc eax
mov dword [ebp - 0x3854], eax
call fcn.00460d58
test eax, eax
mov eax, dword [ebx]
je 0x4541c0
push 2
jmp 0x4541c4
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
add esi, 0x4608
mov ecx, esi
call fcn.0043e665
mov ecx, dword [ebp - 0x383c]
lea ecx, [ecx + 0xcc]
call fcn.00415648
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x4541fd
push ecx
push ecx
xor eax, eax
mov ecx, esi
push eax
call fcn.0044a9c9
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x383c]
cmp dword [eax + 0x4610], 0x64
jne 0x454234
mov dword [ebp - 0x3854], ecx
mov ecx, esi
call fcn.00441e88
test eax, eax
mov eax, dword [ebx]
je 0x45422e
push 2
mov ecx, ebx
call dword [eax + 0x10]
mov esi, dword [ebp - 0x383c]
jmp 0x454236
xor ecx, ecx
inc ecx
push ecx
jmp 0x454221
mov esi, eax
xor eax, eax
test edi, edi
je 0x45429b
mov cl, byte [ebx + 0xd]
push 0x64
push eax
xor eax, eax
test cl, cl
lea ecx, [esi + 0x4608]
sete al
push eax
call fcn.0044361d
mov eax, dword [ebp - 0x383c]
mov eax, dword [eax + 0x4610]
cmp eax, 0xffffffff
je 0x4542ab
cmp eax, 0x64
jne 0x454292
xor eax, eax
lea ecx, [esi + 0x4608]
inc eax
mov dword [ebp - 0x3854], eax
call fcn.00441e88
test eax, eax
mov eax, dword [ebx]
je 0x454289
push 2
jmp 0x45428d
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
mov eax, dword [ebx]
mov ecx, ebx
push 5
call dword [eax + 0xc]
mov esi, dword [ebp - 0x3844]
cmp esi, 2
jne 0x4542cb
jmp 0x451617
mov eax, dword [ebx]
mov ecx, ebx
push 6
call dword [eax + 0xc]
push 2
pop esi
mov dword [ebp - 0x3844], esi
jmp 0x4542a1
mov edi, dword [ebp - 0x3870]
mov esi, dword [ebp - 0x3844]
test edi, edi
mov edi, dword [ebp - 0x383c]
je 0x454346
mov cl, byte [ebx + 0xd]
lea esi, [edi + 0x4608]
xor eax, eax
test cl, cl
push 0x64
push eax
sete al
mov ecx, esi
push eax
call fcn.0044378c
mov eax, dword [edi + 0x4610]
cmp eax, 0xffffffff
je 0x454334
cmp eax, 0x64
jne 0x454323
xor eax, eax
mov ecx, esi
inc eax
mov dword [ebp - 0x3854], eax
call fcn.00441e88
test eax, eax
mov eax, dword [ebx]
je 0x45431a
push 2
jmp 0x45431e
xor ecx, ecx
inc ecx
push ecx
mov ecx, ebx
call dword [eax + 0x10]
mov eax, dword [ebx]
mov ecx, ebx
push 5
call dword [eax + 0xc]
mov esi, dword [ebp - 0x3844]
jmp 0x454346
mov eax, dword [ebx]
mov ecx, ebx
push 6
call dword [eax + 0xc]
push 2
pop esi
mov dword [ebp - 0x3844], esi
cmp esi, 2
je 0x4543bc
cmp dword [ebp - 0x388c], 0
je 0x4543c9
mov eax, dword [ebx]
mov ecx, ebx
push 8
call dword [eax + 0xc]
jmp 0x4543c9
mov eax, dword [ebx]
mov ecx, ebx
push 6
call dword [eax + 0xc]
mov dword [ebp - 0x3844], 2
jmp 0x451617
xor ebx, ebx
jmp 0x451cfb
mov edi, dword [ebp - 0x3840]
jmp 0x4516fb
mov ecx, dword [ebp - 0x3840]
mov eax, dword [ecx]
push 6
call dword [eax + 0xc]
mov edi, dword [ebp - 0x383c]
or dword [edi + 0x4610], 0xffffffff
mov dword [ebp - 0x3844], 2
test esi, esi
je 0x4543bc
mov eax, dword [esi]
xor ecx, ecx
inc ecx
push ecx
mov ecx, esi
call dword [eax + 4]
push 6
lea ecx, [edi + 0x46c4]
call fcn.00402083
lea ebx, [edi + 0xd0]
push str.___DEFAULT_PRINTER_OPTION___
mov ecx, ebx
call fcn.0046ed66
push 0x10
xor ecx, ecx
push ecx
push eax
call fcn.00592a11
push eax
push str.__DEFAULT_PRINTER_OPTION__:_1_x__n
xor ecx, ecx
mov edi, eax
inc ecx
push str.CIstDrvApp::InitInstance
push 3
and edi, ecx
call fcn.00424dad
mov esi, dword [ebp - 0x383c]
xor eax, eax
add esp, 0x1c
cmp dword [esi + 0x460c], eax
jne 0x4548cc
mov eax, dword [ebp - 0x3840]
mov al, byte [eax + 0xf]
test al, al
jne 0x4548cc
cmp dword [ebp - 0x3844], 2
jne 0x454473
mov eax, 0x7541
mov dword [ebp - 0x3878], 0x42ce
mov dword [ebp - 0x38a0], eax
lea ecx, [ebp - 0x1128]
xor eax, eax
mov edi, 0x42cc
inc eax
push eax
call fcn.00438f78
cmp dword [esi + 0x4630], 8
jne 0x454479
xor eax, eax
lea ecx, [ebp - 0x1128]
inc eax
push eax
call fcn.00438f8b
jmp 0x454479
mov edi, dword [ebp - 0x38a8]
lea ecx, [esi + 0xcc]
call fcn.0041b6ad
test eax, eax
je 0x4544b0
push str.Restart_option_on_finish_dialog._n
push str.CIstDrvApp::InitInstance
push 5
call fcn.00424dad
mov esi, dword [ebp - 0x3854]
lea ecx, [ebp - 0x1128]
add esp, 0xc
push esi
call fcn.004377fa
jmp 0x4544b6
mov esi, dword [ebp - 0x3854]
push dword [ebp - 0x3860]
lea ecx, [ebp - 0x1128]
call fcn.00438f68
test edi, edi
je 0x4544e8
mov eax, dword [ebp - 0x38a0]
test eax, eax
je 0x4544e8
mov ecx, dword [ebp - 0x3878]
test ecx, ecx
je 0x4544e8
xor edx, edx
push edx
push edx
push ecx
push eax
push edi
jmp 0x4544ef
xor eax, eax
push eax
push eax
push eax
push eax
push eax
lea ecx, [ebp - 0x1128]
call fcn.0043763b
mov edi, eax
xor eax, eax
inc eax
mov dword [ebp - 0x3878], edi
cmp edi, eax
jne 0x454892
xor eax, eax
lea ecx, [ebp - 0x870]
push eax
push eax
mov dword [ebp - 0x860], eax
mov dword [ebp - 0x85c], eax
call fcn.00404970
lea eax, [ebp - 0x870]
mov byte [ebp - 4], 0x34
push eax
lea ecx, [ebp - 0x1128]
call fcn.0043783e
cmp dword [ebp - 0x860], 0
je 0x454830
mov ebx, 0x5c4f10
lea ecx, [ebp - 0x888]
push ebx
call fcn.00401c0c
mov edi, dword [ebp - 0x383c]
mov byte [ebp - 4], 0x35
mov esi, dword [edi + 0x3b4]
mov esi, dword [esi]
mov dword [ebp - 0x3848], esi
cmp esi, dword [edi + 0x3b4]
je 0x454692
mov eax, dword [esi + 0x2c]
xor edx, edx
sub eax, edx
je 0x4545e5
dec eax
je 0x454594
dec eax
je 0x4545e5
jmp 0x45467c
lea eax, [esi + 0x50]
cmp dword [eax + 0x14], 8
jb 0x4545a1
mov ecx, dword [eax]
jmp 0x4545a3
mov ecx, eax
test ecx, ecx
je 0x4545bd
cmp dword [eax + 0x14], 8
jb 0x4545af
mov eax, dword [eax]
xor ecx, ecx
cmp cx, word [eax]
je 0x4545bd
xor eax, eax
lea edi, [eax + 1]
jmp 0x4545bf
mov edi, edx
lea eax, [esi + 0x50]
cmp dword [eax + 0x14], 8
jb 0x4545ca
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
inc eax
neg eax
sbb eax, eax
inc eax
test edi, eax
mov edi, dword [ebp - 0x383c]
jne 0x45467c
push ebx
lea ecx, [ebp - 0x888]
call fcn.00404bb9
push str.___NAME_PRINTER_BASENAME_NONPNP___
lea ecx, [edi + 0xd0]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x888]
call fcn.00404bb9
lea eax, [ebp - 0x888]
push str.___NAME_PRINTER_BASENAME_NONPNP___
push eax
call fcn.0040539d
pop ecx
test al, al
lea eax, [ebp - 0x870]
pop ecx
je 0x454654
cmp dword [ebp - 0x874], 8
lea ecx, [ebp - 0x888]
cmovae ecx, dword [ebp - 0x888]
cmp dword [ebp - 0x85c], 8
cmovae eax, dword [ebp - 0x870]
xor edx, edx
push edx
push ecx
push edx
push edx
jmp 0x454668
cmp dword [ebp - 0x85c], 8
cmovae eax, dword [ebp - 0x870]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
xor ecx, ecx
add esi, 0x28
inc ecx
push ecx
push eax
push esi
lea ecx, [edi + 0x4608]
call fcn.004414e3
lea ecx, [ebp - 0x3848]
call fcn.004212e4
mov esi, dword [ebp - 0x3848]
jmp 0x454574
lea ecx, [edi + 0xcc]
call fcn.0041adf9
test eax, 0x100
je 0x4547d2
mov esi, dword [edi + 0x3bc]
mov esi, dword [esi]
mov dword [ebp - 0x3848], esi
cmp esi, dword [edi + 0x3bc]
je 0x4547d2
mov eax, dword [esi + 0x2c]
xor edx, edx
sub eax, edx
je 0x454727
dec eax
je 0x4546d6
dec eax
je 0x454727
jmp 0x4547bc
lea eax, [esi + 0x50]
cmp dword [eax + 0x14], 8
jb 0x4546e3
mov ecx, dword [eax]
jmp 0x4546e5
mov ecx, eax
test ecx, ecx
je 0x4546ff
cmp dword [eax + 0x14], 8
jb 0x4546f1
mov eax, dword [eax]
xor ecx, ecx
cmp cx, word [eax]
je 0x4546ff
xor eax, eax
lea edi, [eax + 1]
jmp 0x454701
mov edi, edx
lea eax, [esi + 0x50]
cmp dword [eax + 0x14], 8
jb 0x45470c
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
inc eax
neg eax
sbb eax, eax
inc eax
test edi, eax
mov edi, dword [ebp - 0x383c]
jne 0x4547bc
push ebx
lea ecx, [ebp - 0x888]
call fcn.00404bb9
push str.___NAME_FAX_BASENAME_NONPNP___
lea ecx, [edi + 0xd0]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x888]
call fcn.00404bb9
lea eax, [ebp - 0x888]
push str.___NAME_FAX_BASENAME_NONPNP___
push eax
call fcn.0040539d
pop ecx
test al, al
lea eax, [ebp - 0x870]
pop ecx
je 0x454797
cmp dword [ebp - 0x874], 8
lea ecx, [ebp - 0x888]
cmovae ecx, dword [ebp - 0x888]
cmp dword [ebp - 0x85c], 8
cmovae eax, dword [ebp - 0x870]
xor edx, edx
push edx
push ecx
push edx
push edx
push edx
jmp 0x4547ac
cmp dword [ebp - 0x85c], 8
cmovae eax, dword [ebp - 0x870]
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push eax
add esi, 0x28
lea ecx, [edi + 0x4608]
push esi
call fcn.004414e3
lea ecx, [ebp - 0x3848]
call fcn.004212e4
mov esi, dword [ebp - 0x3848]
jmp 0x4546b6
mov ecx, dword [ebp - 0x3840]
cmp dword [edi + 0x4610], 0x64
mov esi, dword [ebp - 0x3854]
push 1
pop eax
cmove esi, eax
mov eax, dword [ecx]
push 9
mov dword [ebp - 0x3854], esi
call dword [eax + 0xc]
push 0x5c6428
lea ebx, [edi + 0xd0]
push str.__EXTIF_SELECTPORT__
mov ecx, ebx
call fcn.0046f76b
xor eax, eax
mov byte [ebp - 4], 0x34
push eax
inc eax
lea ecx, [ebp - 0x888]
push eax
call fcn.00404970
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x3878], ecx
jne 0x454860
jmp 0x454836
mov edi, dword [ebp - 0x383c]
test esi, esi
mov eax, 0x5c6428
mov ecx, 0x5c58f8
cmove ecx, eax
push ecx
push str.__VAL_NOTRESTART__
mov ecx, ebx
call fcn.0046d72a
lea ecx, [edi + 0x4608]
call fcn.0043f9d3
xor ecx, ecx
inc ecx
cmp dword [ebp - 0x9e0], 0
jne 0x45487d
lea ecx, [edi + 0x46c4]
call fcn.004027e6
xor ecx, ecx
inc ecx
mov dword [ebp - 0x386c], ecx
xor eax, eax
mov byte [ebp - 4], 0x12
push eax
push ecx
lea ecx, [ebp - 0x870]
call fcn.00404970
jmp 0x454898
mov edi, dword [ebp - 0x383c]
lea ecx, [edi + 0xcc]
call fcn.0041b6ad
test eax, eax
jne 0x4548bb
mov eax, dword [ebp - 0x387c]
test esi, esi
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0x387c], eax
mov edi, dword [ebp - 0x97c]
mov esi, dword [ebp - 0x383c]
jmp 0x4549d7
lea ecx, [esi + 0xcc]
call fcn.0041d7af
push str.___REBOOT_IMMEDIATELY___
lea ecx, [esi + 0x4890]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x8d0]
call fcn.00401c0c
lea eax, [ebp - 0x8d0]
mov byte [ebp - 4], 0x36
push 0x5c6428
push eax
call fcn.00405388
pop ecx
pop ecx
test al, al
je 0x454913
xor eax, eax
inc eax
jmp 0x45493d
lea eax, [ebp - 0x8d0]
push 0x5d4404
push eax
call fcn.00405388
pop ecx
pop ecx
test al, al
je 0x454943
cmp dword [ebp - 0x3854], 0
mov eax, dword [ebp - 0x386c]
push 1
pop ecx
cmovne eax, ecx
mov dword [ebp - 0x386c], eax
xor eax, eax
cmp dword [esi + 0x460c], eax
je 0x4549c3
push str.___EXTIF_SILENTINST___
mov ecx, ebx
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x3850]
call fcn.00406ad4
push 0x5c6428
lea ecx, [ebp - 0x3850]
mov byte [ebp - 4], 0x37
call fcn.004097f0
test eax, eax
jne 0x454985
mov edi, dword [ebp - 0x3888]
jmp 0x4549b3
push 0x5d4404
lea ecx, [ebp - 0x3850]
call fcn.004097f0
test eax, eax
je 0x4549ad
push 0x5d02e0
lea ecx, [ebp - 0x3850]
call fcn.004097f0
test eax, eax
jne 0x4549b3
mov edi, dword [ebp - 0x3874]
mov ecx, dword [ebp - 0x3850]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
xor eax, eax
push eax
xor eax, eax
mov byte [ebp - 4], 0x12
inc eax
lea ecx, [ebp - 0x8d0]
push eax
call fcn.00404970
cmp dword [ebp - 0x387c], 0
je 0x454a85
cmp dword [ebp - 0x3854], 0
je 0x454a85
cmp dword [ebp - 0x386c], 0
jne 0x454a85
mov ecx, dword [section..data]
lea ebx, [esi + 0x4608]
push 0x138a
call fcn.004151db
mov ecx, dword [section..data]
push eax
push 0x138a
call fcn.004151a4
push eax
push 0x138a
mov ecx, ebx
call fcn.00442e21
xor esi, esi
inc esi
cmp eax, esi
jne 0x454a52
mov ecx, dword [ebp - 0x383c]
lea ecx, [ecx + 0x46c4]
call fcn.004027e6
mov dword [ebp - 0x386c], esi
jmp 0x454a85
cmp eax, 2
jne 0x454a85
mov ecx, dword [section..data]
push 0x138b
call fcn.004151db
mov ecx, dword [section..data]
push eax
push 0x138b
call fcn.004151a4
push eax
push 0x138b
mov ecx, ebx
call fcn.00442e21
lea ecx, [ebp - 0x3890]
call fcn.004624f3
mov ebx, dword [ebp - 0x3840]
mov esi, eax
xor eax, eax
inc eax
mov ecx, dword [ebx + 0x84]
cmp ecx, eax
je 0x454ac5
cmp ecx, 0xffffffff
jne 0x454aae
test edi, edi
jne 0x454ac5
lea eax, [ebp - 0x428]
push eax
call sub.WINSPOOL.DRV_Ordinal_204
mov edi, dword [ebp - 0x383c]
jmp 0x454ba4
mov edi, dword [ebp - 0x383c]
push str.___NAME_PRINTER_FRIENDLY_NAME___
lea ecx, [edi + 0xd0]
call fcn.0046ed66
push eax
lea ecx, [ebp - 0x858]
call fcn.00401c0c
cmp dword [ebp - 0x844], 8
lea eax, [ebp - 0x858]
mov byte [ebp - 4], 0x38
cmovae eax, dword [ebp - 0x858]
push eax
push str.__NAME_PRINTER_FRIENDLY_NAME__:_1_s__n
push str.CIstDrvApp::InitInstance
push 3
call fcn.00424dad
add esp, 0x10
cmp dword [ebp - 0x848], 0
je 0x454b52
lea eax, [ebp - 0x858]
push str.___NAME_PRINTER_FRIENDLY_NAME___
push eax
call fcn.0040539d
pop ecx
pop ecx
test al, al
je 0x454b52
cmp dword [ebp - 0x844], 8
lea eax, [ebp - 0x858]
cmovae eax, dword [ebp - 0x858]
push eax
call sub.WINSPOOL.DRV_Ordinal_204
push 0x20
jmp 0x454b85
lea eax, [ebp - 0x978]
push 0x5c4f10
push eax
call fcn.0040539d
pop ecx
pop ecx
test al, al
je 0x454b90
cmp dword [ebp - 0x964], 8
lea eax, [ebp - 0x978]
cmovae eax, dword [ebp - 0x978]
push eax
call sub.WINSPOOL.DRV_Ordinal_204
push 0x21
lea ecx, [edi + 0x46c4]
call fcn.00402083
xor eax, eax
mov byte [ebp - 4], 0x12
push eax
inc eax
lea ecx, [ebp - 0x858]
push eax
call fcn.00404970
test esi, esi
je 0x454bb3
lea ecx, [ebp - 0x3890]
call fcn.00462826
cmp dword [ebp - 0x386c], 0
je 0x450c67
call fcn.0041dad4
jmp 0x450c67
mov edi, dword [ebp - 0x383c]
or dword [edi + 0x4610], 0xffffffff
jmp 0x45150e
mov ebx, dword [ebp - 0x383c]
xor eax, eax
mov ecx, dword [ebp - 0x3840]
push 6
mov dword [ebx + 0x4b78], eax
mov eax, dword [ecx]
call dword [eax + 0xc]
push dword [ebx + 0x4b78]
push str.Temp_m_hMutexGlobal__0x_1_lx_._n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
call edi
push eax
push str.GetLastError____0x_1_lx__n
push str.CIstDrvApp::InitInstance
push 4
call fcn.00424dad
add esp, 0x10
or dword [ebx + 0x4610], 0xffffffff
jmp 0x450c4c
xor ebx, ebx
lea ecx, [ebp - 0x3890]
mov byte [ebp - 4], 0x11
call fcn.00461e2a
push ebx
push esi
lea ecx, [ebp - 0x900]
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x948]
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x8e8]
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x918]
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x978]
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x960]
call fcn.00404970
push ebx
push esi
lea ecx, [ebp - 0x8b8]
call fcn.00404970
lea ecx, [ebp - 0x2c20]
mov byte [ebp - 4], 9
call fcn.0044e34a
lea ecx, [ebp - 0x1128]
mov byte [ebp - 4], 8
call fcn.0043731a
lea ecx, [ebp - 0x1600]
mov byte [ebp - 4], 7
call fcn.0042e65c
lea ecx, [ebp - 0x3838]
mov byte [ebp - 4], 6
call fcn.0044e449
lea ecx, [ebp - 0x3a90]
mov byte [ebp - 4], 5
call fcn.0046c892
lea ecx, [ebp - 0x2380]
mov byte [ebp - 4], 4
call fcn.0044e258
lea ecx, [ebp - 0x1acc]
mov byte [ebp - 4], 3
call fcn.0044e521
lea ecx, [ebp - 0x39e4]
mov byte [ebp - 4], 2
call fcn.0044e4e2
lea ecx, [ebp - 0x1f1c]
mov byte [ebp - 4], bl
call fcn.0044e5c9
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0058f6bb
mov esp, ebp
pop ebp
ret