Function at 0x407b39
Capabilities:
Check mutex on windows

Disassembly:
push 0x598
mov eax, 0x4492f6
call fcn.00438763
mov edi, ecx
mov dword [ebp - 0x468], edi
mov ecx, dword [0x467018]
xor ebx, ebx
mov eax, dword [ecx]
mov dword [ebp - 0x47c], edi
mov byte [ebp - 0x449], bl
mov dword [ebp - 4], ebx
call dword [eax]
push ebx
lea eax, [edi + 0x70]
push eax
push 0x44df8c
push ebx
push str.DebugLevel
push str.Setup
call fcn.00435192
mov esi, eax
add esp, 0x18
test esi, esi
je 0x407bef
push ebx
lea eax, [edi + 0x70]
push eax
push 0x44df8c
push pe_nt_image_headers32
lea eax, [ebp - 0x270]
push eax
push 0x44d8ac
push str.Class
push str.Setup
call fcn.004352be
add esp, 0x20
lea eax, [ebp - 0x270]
push ebx
push eax
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x407bdf
push pe_nt_image_headers32
lea eax, [ebp - 0x270]
push eax
push 2
push 1
jmp 0x407be6
push ebx
xor eax, eax
push ebx
inc eax
push eax
push eax
push esi
call fcn.00405e45
add esp, 0x14
lea ecx, [ebp - 0x5a4]
call fcn.0040c3fd
or dword [edi + 0x384], 0xffffffff
push 0xc
pop ecx
xor eax, eax
mov dword [ebp - 0x45c], ebx
mov dword [ebp - 0x470], ecx
mov dword [edi + 0x48], ebx
mov dword [ebp - 0x418], 7
mov dword [ebp - 0x41c], ebx
mov word [ebp - 0x42c], ax
push 0x30
lea eax, [ebp - 0x440]
push ebx
push eax
mov byte [ebp - 4], 2
call fcn.00438dc0
mov eax, dword [edi + 0x3c]
mov esi, dword [edi + 0x2c]
mov dword [ebp - 0x43c], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x438], eax
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x434], eax
mov eax, dword [edi + 0x388]
add esp, 0xc
mov dword [ebp - 0x440], ebx
mov dword [ebp - 0x430], eax
cmp word [esi], bx
jne 0x407c7b
mov eax, ebx
jmp 0x407c82
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x42c]
call fcn.00401db2
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x414], eax
xor eax, eax
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
push 0x20a
lea eax, [ebp - 0x27c]
push ebx
push eax
mov byte [ebp - 4], 3
mov dword [edi + 0x50], ebx
call fcn.00438dc0
add esp, 0xc
lea eax, [ebp - 0x27c]
push 0x105
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
cmp ax, word [ebp - 0x27c]
je 0x407d51
lea eax, [ebp - 0x27c]
push 0x5c
push eax
call fcn.00439299
pop ecx
pop ecx
test eax, eax
je 0x407d51
xor ecx, ecx
mov word [eax + 2], cx
cmp word [ebp - 0x27c], cx
jne 0x407d09
mov eax, ebx
jmp 0x407d16
lea eax, [ebp - 0x27c]
push eax
call fcn.0043860f
pop ecx
push eax
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x44]
call fcn.00401db2
mov esi, str.DELDRV.dll
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x44]
call fcn.004053dd
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
push eax
call fcn.00401fef
pop ecx
mov dword [edi + 0x50], eax
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 2
call fcn.00401ba5
sub esp, 0x30
lea eax, [ebp - 0x440]
mov ecx, esp
push eax
call fcn.00406435
lea ecx, [ebp - 0x4c4]
call fcn.004133eb
lea eax, [edi + 0x384]
push eax
mov byte [ebp - 4], 4
call fcn.00436ab7
pop ecx
test eax, eax
jne 0x408a4c
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x407db8
push str.SetProcessDPIAware
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x407db8
call eax
mov eax, esi
mov dword [ebp - 0x464], esi
cmp eax, dword [0x469168]
jge 0x4089f4
mov eax, dword [0x469170]
mov ecx, dword [ebp - 0x464]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x454], eax
movzx eax, word [eax]
cmp eax, 0x2f
je 0x407df1
cmp eax, 0x2d
jne 0x4089e2
push 3
push 0x44e018
call fcn.0043965b
mov ecx, dword [ebp - 0x454]
push eax
add ecx, 2
push 0x44e018
push ecx
mov dword [ebp - 0x448], ecx
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x407e7c
mov eax, dword [ebp - 0x454]
cmp word [eax + 6], bx
je 0x407e7c
lea ecx, [ebp - 0x44]
call fcn.00430fac
mov eax, dword [ebp - 0x454]
push 0x2c
add eax, 6
push eax
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 5
call fcn.0043250a
lea ecx, [ebp - 0x44]
call fcn.00431332
cmp eax, 4
je 0x407f1a
push str.Suicide_parameter_invalid__n
push str.CDelDrvApp::InitInstance
push 2
call fcn.00405a24
add esp, 0xc
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00431063
push 3
push 0x44e100
call fcn.0043965b
push eax
push 0x44e100
push dword [ebp - 0x448]
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x407eb7
mov eax, dword [ebp - 0x454]
add eax, 6
cmp word [eax], bx
je 0x407eb7
lea ecx, [edi + 0x2c]
push eax
call fcn.00409f9c
push 4
push 0x44e108
call fcn.0043965b
push eax
push 0x44e108
push dword [ebp - 0x448]
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x408041
mov eax, dword [ebp - 0x454]
add eax, 8
cmp word [eax], bx
je 0x40802b
push eax
lea ecx, [ebp - 0x50]
call fcn.0042f766
push esi
push ebx
push ebx
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 6
call fcn.00430822
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 4
call fcn.0042f88a
jmp 0x40802b
push ebx
lea ecx, [ebp - 0x44]
call fcn.004315c5
push 0xa
lea ecx, [ebp - 0x460]
push ecx
push eax
call fcn.0043a4af
add esp, 0xc
lea ecx, [ebp - 0x44]
push esi
mov dword [edi + 0x394], eax
call fcn.004315c5
mov ecx, eax
push ecx
lea ecx, [edi + 0x398]
call fcn.00409f9c
push 2
lea ecx, [ebp - 0x44]
call fcn.004315c5
mov ecx, eax
push ecx
lea ecx, [edi + 0x2c]
call fcn.00409f9c
push 3
lea ecx, [ebp - 0x44]
call fcn.004315c5
push 0xa
lea ecx, [ebp - 0x460]
push ecx
push eax
call fcn.0043a4af
push dword [edi + 0x394]
mov dword [edi + 0x388], eax
push str.Suicide_m_SuicidePid__0x_1_lx__n
push str.CDelDrvApp::InitInstance
push 4
call fcn.00405a24
add esp, 0x1c
push dword [edi + 0x398]
push str.Suicide_m_SuicideFile___1_s__n
push str.CDelDrvApp::InitInstance
push 4
call fcn.00405a24
add esp, 0x10
push dword [edi + 0x2c]
push str.Suicide_m_strUninstallerGUID___1_s__n
push str.CDelDrvApp::InitInstance
push 4
call fcn.00405a24
add esp, 0x10
push dword [edi + 0x388]
push str.Suicide_m_bRestart__0x_1_d__n
push str.CDelDrvApp::InitInstance
push 4
call fcn.00405a24
add esp, 0x10
mov ecx, edi
call fcn.0040a083
cmp dword [edi + 0x388], ebx
je 0x408019
push str.Suicide_Restart_Windows..._n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
mov dword [edi + 0x3a0], esi
call fcn.0041ecab
lea ecx, [ebp - 0x44]
mov dword [edi + 0x384], ebx
mov byte [ebp - 4], 4
call fcn.00431063
lea ecx, [ebp - 0x4c4]
mov byte [ebp - 4], 2
call fcn.0041387e
push ebx
push esi
jmp 0x40971f
push 4
push 0x44e110
call fcn.0043965b
push eax
push 0x44e110
push dword [ebp - 0x448]
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x40810b
mov eax, dword [ebp - 0x454]
cmp word [eax + 8], bx
je 0x40810b
push 0x4676b0
lea ecx, [ebp - 0x450]
call fcn.0040620b
mov eax, dword [ebp - 0x454]
add eax, 8
push eax
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 7
call fcn.00409f9c
lea ecx, [ebp - 0x450]
call fcn.004098ae
push str.NOTSPECIFIED
lea ecx, [ebp - 0x450]
call fcn.004069bd
lea ecx, [ebp - 0x48]
test eax, eax
jne 0x4083d9
push str.TOPDEVICE
call fcn.00403477
mov dword [ebp - 0x30], ebx
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x504]
push eax
lea ecx, [edi + 0x34]
mov byte [ebp - 4], 8
call fcn.004061b9
push ebx
push esi
lea ecx, [ebp - 0x48]
call fcn.00401ba5
mov dword [edi + 0x3c], esi
mov esi, dword [ebp - 0x450]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 4
call fcn.00409a06
push 4
mov esi, 0x44e148
push esi
call fcn.0043965b
push eax
push esi
mov esi, dword [ebp - 0x448]
push esi
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x4081b3
mov esi, dword [ebp - 0x454]
add esi, 8
cmp word [esi], bx
je 0x4081ad
push 0x4676b0
lea ecx, [ebp - 0x478]
call fcn.0040620b
push esi
lea ecx, [ebp - 0x478]
mov byte [ebp - 4], 0xa
call fcn.00409f9c
lea ecx, [ebp - 0x478]
call fcn.004098ae
mov esi, dword [ebp - 0x478]
push esi
lea ecx, [ebp - 0x48]
call fcn.00403477
mov dword [ebp - 0x30], ebx
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4ec]
push eax
lea ecx, [edi + 0x34]
mov byte [ebp - 4], 0xb
call fcn.004061b9
push ebx
push 1
lea ecx, [ebp - 0x48]
call fcn.00401ba5
lea ecx, [esi - 0x10]
mov dword [edi + 0x3c], ebx
mov byte [ebp - 4], 4
call fcn.00409a06
mov esi, dword [ebp - 0x448]
push 4
push 0x44e150
call fcn.0043965b
push eax
push 0x44e150
push esi
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x40825c
mov esi, dword [ebp - 0x454]
add esi, 8
cmp word [esi], bx
je 0x408256
push 0x4676b0
lea ecx, [ebp - 0x474]
call fcn.0040620b
push esi
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 0xc
call fcn.00409f9c
lea ecx, [ebp - 0x474]
call fcn.004098ae
mov esi, dword [ebp - 0x474]
push esi
lea ecx, [ebp - 0x48]
call fcn.00403477
mov dword [ebp - 0x30], ebx
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x50c]
push eax
lea ecx, [edi + 0x34]
mov byte [ebp - 4], 0xd
call fcn.004061b9
push ebx
push 1
lea ecx, [ebp - 0x48]
call fcn.00401ba5
lea ecx, [esi - 0x10]
mov dword [edi + 0x3c], 0x13
mov byte [ebp - 4], 4
call fcn.00409a06
mov esi, dword [ebp - 0x448]
push 3
push 0x44e158
call fcn.0043965b
push eax
push 0x44e158
push esi
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x408292
mov eax, dword [ebp - 0x454]
add eax, 6
cmp word [eax], bx
je 0x408292
lea ecx, [edi + 4]
push eax
call fcn.00409f9c
push 8
push str.PREINST
call fcn.0043965b
push eax
push str.PREINST
push esi
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x4082b8
mov dword [edi + 0x40], 5
push 0xe
push str.REMOVEPREINST
call fcn.0043965b
push eax
push str.REMOVEPREINST
push esi
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x408317
push str.TOPDEVICE
lea ecx, [ebp - 0x48]
call fcn.00403477
mov dword [ebp - 0x30], ebx
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [edi + 0x34]
mov byte [ebp - 4], 0xe
call fcn.004061b9
push ebx
push 1
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 4
call fcn.00401ba5
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x40], 8
push 3
push 0x44e18c
call fcn.0043965b
push eax
push 0x44e18c
push esi
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x40859b
mov esi, dword [ebp - 0x454]
add esi, 6
cmp word [esi], bx
je 0x40859b
lea ecx, [ebp - 0x44]
call fcn.00430fac
push 0x2c
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xf
call fcn.0043250a
mov esi, ebx
lea ecx, [ebp - 0x44]
call fcn.00431332
lea ecx, [ebp - 0x44]
cmp esi, eax
jae 0x408592
push esi
call fcn.004315c5
push eax
lea ecx, [ebp - 0x458]
call fcn.00406234
push str.PRINT
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 0x10
call fcn.004069bd
test eax, eax
jne 0x40846c
inc eax
push eax
push str.nFunctionType___1_d_._n
push str.CDelDrvApp::InitInstance
push 5
mov dword [ebp - 0x444], eax
call fcn.00405a24
add esp, 0x10
lea eax, [ebp - 0x444]
push eax
lea ecx, [edi + 8]
call fcn.00433174
push 0xb
pop eax
jmp 0x408550
mov esi, dword [ebp - 0x450]
push esi
call fcn.00403477
mov dword [ebp - 0x30], ebx
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x514]
push eax
lea ecx, [edi + 0x34]
mov byte [ebp - 4], 9
call fcn.004061b9
push ebx
push 1
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 7
call fcn.00401ba5
mov dword [edi + 0x3c], 1
mov eax, dword [0x467018]
mov dword [eax + 0x24], 0x754b
mov ecx, dword [0x467018]
mov eax, dword [ecx]
call dword [eax]
test eax, eax
jne 0x4080ff
push 1
lea eax, [ebp - 0x460]
push eax
lea ecx, [ebp - 0x494]
mov dword [ebp - 0x460], str.bad_allocation
call fcn.0043a677
push 0x4601e4
lea eax, [ebp - 0x494]
push eax
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.00438637
push str.SCAN
lea ecx, [ebp - 0x458]
call fcn.004069bd
test eax, eax
jne 0x4084cd
lea eax, [ebp - 0x448]
push eax
push 0xd
push str._LEAVE_FUNC_
lea ecx, [ebp - 0x4c4]
mov dword [ebp - 0x448], ebx
call fcn.0042085c
xor eax, eax
inc eax
test byte [ebp - 0x448], al
je 0x4084ad
or dword [edi + 0x44], eax
lea eax, [ebp - 0x444]
push eax
lea ecx, [edi + 8]
mov dword [ebp - 0x444], 2
call fcn.00433174
push 0xc
jmp 0x4083d3
push 0x44e1e0
lea ecx, [ebp - 0x458]
call fcn.004069bd
test eax, eax
jne 0x408515
push 4
pop eax
push eax
push str.nFunctionType___1_d_._n
push str.CDelDrvApp::InitInstance
push 5
mov dword [ebp - 0x444], eax
call fcn.00405a24
add esp, 0x10
lea eax, [ebp - 0x444]
push eax
lea ecx, [edi + 8]
call fcn.00433174
push 0xe
jmp 0x4083d3
push str.STORAGE
lea ecx, [ebp - 0x458]
call fcn.004069bd
test eax, eax
jne 0x408530
push 3
jmp 0x4083d3
push str.SOFTWARE
lea ecx, [ebp - 0x458]
call fcn.004069bd
mov ecx, eax
mov eax, dword [ebp - 0x444]
push 0x64
pop edx
test ecx, ecx
cmove eax, edx
push eax
push str.nFunctionType___1_d_._n
push str.CDelDrvApp::InitInstance
push 5
mov dword [ebp - 0x444], eax
call fcn.00405a24
add esp, 0x10
lea eax, [ebp - 0x444]
push eax
lea ecx, [edi + 8]
call fcn.00433174
mov ecx, dword [ebp - 0x458]
mov byte [ebp - 4], 0xf
lea ecx, [ecx - 0x10]
call fcn.00409a06
inc esi
jmp 0x408365
mov byte [ebp - 4], 4
call fcn.00431063
push 4
mov esi, 0x44e20c
push esi
call fcn.0043965b
push eax
push esi
mov esi, dword [ebp - 0x454]
lea eax, [esi + 2]
push eax
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x408700
add esi, 8
cmp word [esi], bx
je 0x408829
lea ecx, [ebp - 0x44]
call fcn.00430fac
push 0x2c
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x11
call fcn.0043250a
mov esi, ebx
lea ecx, [ebp - 0x44]
call fcn.00431332
lea ecx, [ebp - 0x44]
cmp esi, eax
jae 0x4086f7
push esi
call fcn.004315c5
push eax
lea ecx, [ebp - 0x2c]
call fcn.00403477
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
push 0x4391c3
lea eax, [ecx + eax*2]
lea edx, [ebp - 0x2c]
cmovae edx, dword [ebp - 0x2c]
push edx
push eax
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
push ecx
lea eax, [ebp - 0x498]
push eax
mov byte [ebp - 4], 0x12
call fcn.00403375
add esp, 0x14
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push str.DriverName___1_s_._n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0x10
lea ecx, [ebp - 0x2c]
push str.INBOX_SCAN
call fcn.0040b7cd
test eax, eax
je 0x4086bb
push str.OUTBOX_SCAN
lea ecx, [ebp - 0x2c]
call fcn.0040b7cd
test eax, eax
je 0x4086bb
push str.ALL_SCAN
lea ecx, [ebp - 0x2c]
call fcn.0040b7cd
test eax, eax
je 0x4086bb
push str._____m_sstrDriverName._n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x4d4]
lea ecx, [edi + 0x14]
jmp 0x4086dc
push str._____m_sstrScannerDriverName._n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x4e4]
lea ecx, [edi + 0x1c]
push eax
call fcn.00405858
push ebx
push 1
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x11
call fcn.00401ba5
inc esi
jmp 0x4085e9
mov byte [ebp - 4], 4
call fcn.00431063
xor esi, esi
inc esi
push 4
push 0x44e2f0
call fcn.0043965b
push eax
mov eax, dword [ebp - 0x454]
add eax, 2
push 0x44e2f0
push eax
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x40894b
mov eax, dword [ebp - 0x454]
cmp word [eax + 8], bx
je 0x4088e9
lea ecx, [ebp - 0x44]
call fcn.00430fac
mov eax, dword [ebp - 0x454]
push 0x2c
add eax, 8
push eax
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0x15
call fcn.0043250a
mov dword [ebp - 0x448], ebx
lea ecx, [ebp - 0x44]
call fcn.00431332
mov ecx, eax
mov eax, dword [ebp - 0x448]
cmp eax, ecx
lea ecx, [ebp - 0x44]
jae 0x4088de
push eax
call fcn.004315c5
push eax
lea ecx, [ebp - 0x2c]
call fcn.00403477
cmp dword [ebp - 0x18], 8
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
push 0x4391c3
lea eax, [ecx + eax*2]
lea edx, [ebp - 0x2c]
cmovae edx, dword [ebp - 0x2c]
push edx
push eax
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
push ecx
lea eax, [ebp - 0x488]
push eax
mov byte [ebp - 4], 0x16
call fcn.00403375
add esp, 0x14
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push str.SoftwareName___1_s_._n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0x10
push str._____m_sstrSoftwareName._n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x51c]
push eax
lea ecx, [edi + 0x24]
call fcn.00405858
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x15
call fcn.00401ba5
inc dword [ebp - 0x448]
jmp 0x408765
push str.DriverName_isnot_specified._n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
xor eax, eax
mov esi, str.__NONE_DRIVERNAME__
push esi
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x44]
call fcn.00401db2
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x4f4]
push eax
lea ecx, [edi + 0x14]
mov byte [ebp - 4], 0x13
call fcn.0040582a
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00401ba5
xor eax, eax
push str.__NONE_DRIVERNAME__
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
call fcn.0043860f
pop ecx
push eax
push str.__NONE_DRIVERNAME__
lea ecx, [ebp - 0x44]
call fcn.00401db2
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [edi + 0x1c]
mov byte [ebp - 4], 0x14
call fcn.0040582a
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00401ba5
jmp 0x408703
mov byte [ebp - 4], 4
call fcn.00431063
jmp 0x40894b
push str.SoftwareName_isnot_specified._n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
xor eax, eax
push str.__NONE_SOFTWARENAME__
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
call fcn.0043860f
pop ecx
push eax
push str.__NONE_SOFTWARENAME__
lea ecx, [ebp - 0x44]
call fcn.00401db2
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x4cc]
push eax
lea ecx, [edi + 0x24]
mov byte [ebp - 4], 0x17
call fcn.0040582a
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00401ba5
push 4
push 0x44e378
call fcn.0043965b
mov ecx, dword [ebp - 0x454]
push eax
add ecx, 2
push 0x44e378
push ecx
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x408996
push 0x10
lea eax, [ebp - 0x49c]
push eax
mov eax, dword [ebp - 0x454]
add eax, 8
push eax
call fcn.0043a4af
movzx ecx, ax
mov dword [ebp - 0x45c], ecx
jmp 0x4089df
push 2
push 0x44e380
call fcn.0043965b
push eax
mov eax, dword [ebp - 0x454]
add eax, 2
push 0x44e380
push eax
call fcn.004394ab
add esp, 0x14
test eax, eax
jne 0x4089e2
push 0xa
lea eax, [ebp - 0x480]
push eax
mov eax, dword [ebp - 0x454]
add eax, 4
push eax
call fcn.0043a4af
movzx eax, ax
mov dword [ebp - 0x45c], eax
add esp, 0xc
mov eax, dword [ebp - 0x464]
inc eax
mov dword [ebp - 0x464], eax
jmp 0x407dc0
push 0x44e384
push dword [0x4690d0]
mov ecx, edi
call fcn.004098d6
push ebx
push dword [0x4690d0]
mov eax, 0x80000000
push ebx
push ebx
push ebx
push eax
push ebx
push eax
push 0xcf0000
push ebx
push 0x44e384
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [edi + 0x4c], eax
test eax, eax
jne 0x408aaa
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.CreateWindow_failed.__0x_1_x___n
push str.CDelDrvApp::InitInstance
push 2
call fcn.00405a24
add esp, 0x10
mov edx, dword [ebp - 0x470]
mov eax, dword [0x468658]
mov esi, ebx
mov dword [ebp - 0x444], esi
mov dword [ebp - 0x45c], 7
mov dword [ebp - 0x464], 0xff
cmp eax, dword [0x46865c]
je 0x408a8a
push 3
pop eax
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x464], eax
dec edx
je 0x409177
dec edx
je 0x408a9d
sub edx, 0xa
jne 0x409364
mov esi, ebx
mov dword [ebp - 0x444], esi
jmp 0x409364
test byte [edi + 0x3c], 0x30
je 0x408b0f
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.__CANON_DRIVER_UNINSTALLER__
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi + 0x390], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x408af0
cmp eax, 0xb7
jne 0x408b0f
push str.LaunchCheck_DELDRV_MUTEX_ERROR_ALREADY_EXISTS_n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
push str.LaunchCheck_DELDRV_MUTEX_ERROR_ACCESS_DENIED_n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
mov dword [edi + 0x390], ebx
jmp 0x408a4c
mov eax, dword [ebp - 0x45c]
push ebx
push ebx
push eax
mov ecx, edi
call fcn.00406f15
xor edx, edx
mov esi, eax
inc edx
cmp esi, edx
je 0x408b5c
mov ecx, dword [edi + 0x3ac]
cmp dword [ecx - 0xc], 0
je 0x408b48
test byte [edi + 0x3c], dl
je 0x408b48
lea ecx, [edi + 0x3a4]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x10]
xor edx, edx
inc edx
cmp esi, 0xffffffff
jne 0x408a4c
mov byte [ebp - 0x449], dl
jmp 0x408a4c
mov ax, word [edi + 0x760]
mov ecx, 0x3ff
and ax, cx
cmp ax, dx
jne 0x408b7c
mov eax, dword [0x467018]
mov dword [eax + 0xc], 0x180000
lea eax, [ebp - 0x584]
push eax
push 0xf
push str._PRODUCT_TYPE_
lea ecx, [ebp - 0x4c4]
call fcn.0042085c
test byte [edi + 0x3c], 0x30
je 0x409068
push 7
pop ecx
xor eax, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], ebx
mov word [ebp - 0x70], ax
mov esi, str.1199FAD5_9546_44f3_81CF_FFDB8040B7BF
push esi
mov byte [ebp - 4], 0x19
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x44]
call fcn.00401db2
test dword [ebp - 0x584], 0x10000
je 0x408be5
mov esi, str._SFS
jmp 0x408bfb
test dword [ebp - 0x584], 0x20000
mov esi, str._MFP
jne 0x408bfb
mov esi, str._SFP
push esi
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x70]
call fcn.00401db2
mov dword [ebp - 0x448], ebx
cmp dword [edi + 0x390], ebx
je 0x408dc6
xor eax, eax
mov esi, str.CDUL_
push esi
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], ax
call fcn.0043860f
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00401db2
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1a
call fcn.00405310
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405310
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
xor esi, esi
inc esi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi + 0x38c], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x408d85
cmp eax, 0xb7
je 0x408d71
push dword [edi + 0x390]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [edi + 0x390]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.CDIL_
mov dword [edi + 0x390], ebx
call fcn.0043860f
pop ecx
push eax
push str.CDIL_
lea ecx, [ebp - 0x2c]
call fcn.00401db2
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405310
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405310
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [ebp - 0x460], eax
test eax, eax
jne 0x408d2b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x408d61
jmp 0x408d32
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.LaunchCheck_ISTDRV_MUTEX_LOCAL_PREFIX_ERROR_ACCESS_DENIED_n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
mov eax, dword [ebp - 0x460]
add esp, 0xc
mov dword [ebp - 0x448], 0xfa2
test eax, eax
je 0x408d61
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x19
call fcn.00401ba5
jmp 0x408dc9
push str.LaunchCheck_DELDRV_MUTEX_LOCAL_PREFIX_ERROR_ALREADY_EXISTS_n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
push str.LaunchCheck_DELDRV_MUTEX_LOCAL_PREFIX_ERROR_ACCESS_DENIED_n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
lea ecx, [ebp - 0x2c]
push ebx
push esi
mov dword [edi + 0x38c], ebx
call fcn.00401ba5
push ebx
push esi
lea ecx, [ebp - 0x70]
call fcn.00401ba5
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00401ba5
jmp 0x408a4c
xor esi, esi
inc esi
xor eax, eax
push str.GlobalCDUG_
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], ax
call fcn.0043860f
pop ecx
push eax
push str.GlobalCDUG_
lea ecx, [ebp - 0x2c]
call fcn.00401db2
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x1b
call fcn.00405310
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405310
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi + 0x390], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x408e5b
cmp eax, 0xb7
jne 0x408e8b
push str.LaunchCheck_DELDRV_MUTEX_GLOBAL_PREFIX_ERROR_ALREADY_EXISTS_n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0xc
push str.LaunchCheck_DELDRV_MUTEX_GLOBAL_PREFIX_ERROR_ACCESS_DENIED_n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
mov eax, dword [ebp - 0x448]
add esp, 0xc
mov ecx, 0xfa4
test eax, eax
cmove eax, ecx
mov dword [edi + 0x390], ebx
mov dword [ebp - 0x448], eax
push str.GlobalCDIG_
call fcn.0043860f
pop ecx
push eax
push str.GlobalCDIG_
lea ecx, [ebp - 0x2c]
call fcn.00401db2
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405310
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00405310
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x408f11
push str.LaunchCheck_ISTDRV_MUTEX_GLOBAL_PREFIX_ERROR_ACCESS_DENIED_n
push str.CDelDrvApp::InitInstance
push eax
call fcn.00405a24
mov eax, dword [ebp - 0x448]
add esp, 0xc
mov ecx, 0xfb7
test eax, eax
cmove eax, ecx
mov dword [ebp - 0x448], eax
push ebx
push esi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0x19
call fcn.00401ba5
cmp dword [ebp - 0x448], 0
je 0x409050
xor eax, eax
inc eax
test byte [edi + 0x3c], al
je 0x409026
mov esi, 0x4676b0
push esi
lea ecx, [ebp - 0x45c]
call fcn.0040620b
push esi
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0x1c
call fcn.0040620b
mov esi, dword [ebp - 0x448]
mov ecx, dword [0x467018]
push esi
mov byte [ebp - 4], 0x1d
call fcn.00409c24
push ebx
push eax
mov dword [ebp - 0x460], eax
call fcn.00406857
pop ecx
pop ecx
test eax, eax
je 0x408f94
push dword [ebp - 0x460]
lea ecx, [ebp - 0x464]
push eax
call fcn.00409864
push dword [edi + 4]
lea ecx, [ebp - 0x464]
push 0x44df48
call fcn.00409a22
mov ecx, dword [0x467018]
push esi
call fcn.00407ad2
push ebx
push eax
mov dword [ebp - 0x460], eax
call fcn.00406857
pop ecx
pop ecx
test eax, eax
je 0x408fd8
push dword [ebp - 0x460]
lea ecx, [ebp - 0x45c]
push eax
call fcn.00409864
push dword [edi + 4]
lea ecx, [ebp - 0x45c]
push 0x44df48
call fcn.00409a22
mov ecx, dword [0x467018]
push esi
call fcn.00407b07
mov edi, dword [ebp - 0x45c]
mov esi, dword [ebp - 0x464]
push eax
push edi
push esi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esi - 0x10]
call fcn.00409a06
lea ecx, [edi - 0x10]
call fcn.00409a06
mov edi, dword [ebp - 0x468]
xor eax, eax
inc eax
push 2
pop ecx
push ebx
push eax
lea ecx, [ebp - 0x70]
mov byte [ebp - 0x449], al
call fcn.00401ba5
push ebx
push 1
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00401ba5
push 2
pop edx
jmp 0x408a52
push ebx
push esi
lea ecx, [ebp - 0x70]
call fcn.00401ba5
push ebx
push esi
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
call fcn.00401ba5
mov esi, dword [sym.imp.USER32.dll_GetClassInfoW]
lea eax, [ebp - 0x54]
push eax
push 0x44e384
push dword [0x4690d4]
mov byte [ebp - 0x449], 1
call esi
test eax, eax
jne 0x4090ac
lea eax, [ebp - 0x54]
push eax
push str.32770
push dword [0x4690d4]
call esi
lea eax, [ebp - 0x54]
push eax
mov dword [ebp - 0x30], 0x44e384
call dword [sym.imp.USER32.dll_RegisterClassW]
push ebx
lea eax, [edi + 0x70]
push eax
push 0x44df8c
push ebx
push str.MessageBoxDebug
push str.Setup
call fcn.00435192
add esp, 0x18
test eax, eax
je 0x4090e0
push dword [edi + 4]
mov ecx, dword [0x467018]
call fcn.00406a52
jmp 0x408a4c
cmp dword [edi + 0x50], ebx
je 0x40910c
push dword [edi + 0x4c]
lea ecx, [ebp - 0x5a4]
push dword [0x4690d4]
call fcn.0040ce8b
mov ecx, dword [ebp - 0x590]
mov edx, eax
mov dword [edi + 0x384], ecx
jmp 0x408a52
lea ecx, [ebp - 0x58]
call fcn.004063fe
mov dword [ebp - 0x58], vtable._ERROR.0
mov esi, dword [0x4690d4]
push esi
push 0x4690d4
mov byte [ebp - 4], 0x1e
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push str.DELDRV.dll
lea eax, [ebp - 0x58]
push 0xbb8
push eax
call fcn.004339a2
add esp, 0xc
push esi
push 0x4690d4
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push ebx
lea ecx, [ebp - 0x58]
call fcn.00434145
or dword [edi + 0x384], 0xffffffff
push 2
pop ecx
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 4
call fcn.0040657f
jmp 0x409048
lea ecx, [ebp - 0x484]
call fcn.0042c4ac
push 0x4676b0
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 0x1f
call fcn.0040620b
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
lea ecx, [ebp - 0x450]
mov byte [ebp - 4], 0x20
call fcn.00409f9c
push 0x44d8a8
lea ecx, [ebp - 0x450]
call fcn.00406767
mov eax, dword [edi + 0x2c]
lea ecx, [ebp - 0x450]
push dword [eax - 0xc]
push eax
call fcn.00406790
mov eax, dword [edi + 0x2c]
mov esi, dword [ebp - 0x450]
cmp dword [eax - 0xc], 0
je 0x4091fa
push 0x2000000
push esi
push 0x80000002
lea ecx, [ebp - 0x484]
call fcn.0042cc14
test eax, eax
je 0x4091fa
xor ecx, ecx
inc ecx
jmp 0x4091fc
mov ecx, ebx
cmp dword [ebp - 0x588], 0
je 0x40920a
xor eax, eax
inc eax
jmp 0x409227
cmp dword [edi + 0x384], 0xfffffffe
je 0x40921b
mov eax, dword [ebp - 0x45c]
jmp 0x409227
push 0xc
pop eax
test ecx, ecx
cmovne eax, dword [ebp - 0x464]
lea ecx, [esi - 0x10]
mov dword [ebp - 0x444], eax
call fcn.00409a06
lea ecx, [ebp - 0x484]
mov byte [ebp - 4], 4
call fcn.0042c4fc
mov esi, dword [ebp - 0x444]
cmp esi, 0xff
jne 0x409364
mov esi, 0x4676b0
push esi
lea ecx, [ebp - 0x450]
call fcn.0040620b
push esi
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 0x21
call fcn.0040620b
mov ecx, dword [0x467018]
push 0x7726
mov byte [ebp - 4], 0x22
call fcn.00409c24
mov esi, eax
push ebx
push esi
call fcn.00406857
pop ecx
pop ecx
test eax, eax
je 0x4092a7
push esi
push eax
lea ecx, [ebp - 0x458]
call fcn.00409864
push dword [edi + 4]
lea ecx, [ebp - 0x458]
push 0x44df48
call fcn.00409a22
mov ecx, dword [0x467018]
push 0x7726
call fcn.00407ad2
mov esi, eax
push ebx
push esi
call fcn.00406857
pop ecx
pop ecx
test eax, eax
je 0x4092e6
push esi
push eax
lea ecx, [ebp - 0x450]
call fcn.00409864
push dword [edi + 4]
lea ecx, [ebp - 0x450]
push 0x44df48
call fcn.00409a22
test byte [edi + 0x3c], 2
je 0x40933e
mov ecx, dword [0x467018]
push 0x7726
call fcn.00407b07
mov esi, dword [ebp - 0x450]
mov edi, dword [ebp - 0x458]
push eax
push esi
push edi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 1
je 0x409339
cmp eax, 6
je 0x409339
mov eax, ebx
mov dword [ebp - 0x444], eax
jmp 0x40934a
push 7
pop eax
jmp 0x409331
mov esi, dword [ebp - 0x450]
mov edi, dword [ebp - 0x458]
lea ecx, [edi - 0x10]
call fcn.00409a06
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 4
call fcn.00409a06
mov esi, dword [ebp - 0x444]
push esi
push str.action__0x_1_lx__n
mov edi, str.CDelDrvApp::InitInstance
push edi
push 5
call fcn.00405a24
add esp, 0x10
mov eax, esi
and eax, 1
push eax
push str.__Complete______1_d__n
push edi
push 5
call fcn.00405a24
add esp, 0x10
mov eax, esi
and eax, 2
push eax
push str.__DelAll________1_d__n
push edi
push 5
call fcn.00405a24
add esp, 0x10
mov edi, esi
and edi, 4
push edi
push str.__DelAllInf_____1_d__n
push str.CDelDrvApp::InitInstance
push 5
call fcn.00405a24
add esp, 0x10
mov eax, esi
and eax, 8
push eax
push str.__NoDevMsg______1_d__n
push str.CDelDrvApp::InitInstance
push 5
mov dword [ebp - 0x460], eax
call fcn.00405a24
mov eax, dword [ebp - 0x444]
mov esi, dword [ebp - 0x468]
mov dl, al
shr eax, 1
not al
xor ecx, ecx
inc ecx
and dl, cl
add esp, 0x10
mov byte [ebp - 0x469], dl
and eax, ecx
mov dword [esi + 0x39c], eax
test edi, edi
je 0x409423
push dword [esi + 0x4c]
mov dword [ebp - 0x594], ecx
push dword [0x4690d4]
lea ecx, [ebp - 0x5a4]
call fcn.0040ce8b
cmp dword [ebp - 0x460], 0
je 0x409527
mov edi, 0x4676b0
push edi
lea ecx, [ebp - 0x450]
call fcn.0040620b
push edi
lea ecx, [ebp - 0x458]
mov byte [ebp - 4], 0x23
call fcn.0040620b
mov ecx, dword [0x467018]
push 0xfa8
mov byte [ebp - 4], 0x24
call fcn.00409c24
mov edi, eax
push ebx
push edi
call fcn.00406857
pop ecx
pop ecx
test eax, eax
je 0x409481
push edi
push eax
lea ecx, [ebp - 0x458]
call fcn.00409864
push dword [esi + 4]
lea ecx, [ebp - 0x458]
push 0x44df48
call fcn.00409a22
mov ecx, dword [0x467018]
push 0xfa8
call fcn.00407ad2
mov edi, eax
push ebx
push edi
call fcn.00406857
pop ecx
pop ecx
test eax, eax
je 0x4094c0
push edi
push eax
lea ecx, [ebp - 0x450]
call fcn.00409864
push dword [esi + 4]
lea ecx, [ebp - 0x450]
push 0x44df48
call fcn.00409a22
test byte [esi + 0x3c], 2
je 0x409501
mov ecx, dword [0x467018]
push 0xfa8
call fcn.00407b07
mov esi, dword [ebp - 0x450]
mov edi, dword [ebp - 0x458]
push eax
push esi
push edi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x40950d
mov esi, dword [ebp - 0x450]
mov edi, dword [ebp - 0x458]
lea ecx, [edi - 0x10]
call fcn.00409a06
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 4
call fcn.00409a06
mov esi, dword [ebp - 0x468]
cmp byte [ebp - 0x449], 0
je 0x4096fc
lea ecx, [ebp - 0x410]
call fcn.00426bb3
cmp byte [ebp - 0x469], 0
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x410]
je 0x4096c1
cmp dword [ebp - 0x58c], 0
je 0x4095b5
push 1
call fcn.004270eb
push ebx
push ebx
push 0x439b
push 0x773a
push 0x4394
push dword [esi + 0x4c]
lea ecx, [ebp - 0x410]
push dword [0x4690d4]
call fcn.00426f6c
xor ecx, ecx
cmp dword [ebp - 0xb8], ecx
mov edi, eax
sete cl
push ecx
push str.m_bRestart___1_d__n
push str.CDelDrvApp::InitInstance
push 4
mov dword [esi + 0x388], ecx
call fcn.00405a24
add esp, 0x10
jmp 0x4095ca
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [esi + 0x4c]
push dword [0x4690d4]
call fcn.00426f6c
mov edi, eax
test byte [0x46868c], 0x30
je 0x4096ed
cmp edi, 1
jne 0x4096ed
push 0x30
lea eax, [ebp - 0x440]
push ebx
push eax
call fcn.00438dc0
mov eax, dword [esi + 0x3c]
mov edi, dword [esi + 0x2c]
mov dword [ebp - 0x43c], eax
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x438], eax
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x434], eax
mov eax, dword [esi + 0x388]
add esp, 0xc
mov dword [ebp - 0x440], ebx
mov dword [ebp - 0x430], eax
cmp word [edi], bx
jne 0x40962b
mov eax, ebx
jmp 0x409632
push edi
call fcn.0043860f
pop ecx
push eax
push edi
lea ecx, [ebp - 0x42c]
call fcn.00401db2
mov eax, dword [esi + 0x30]
sub esp, 0x30
mov dword [ebp - 0x414], eax
lea eax, [ebp - 0x440]
mov ecx, esp
push eax
call fcn.00406435
lea ecx, [ebp - 0x54]
call fcn.004133eb
push 0x4676b0
lea ecx, [ebp - 0x468]
mov byte [ebp - 4], 0x26
call fcn.0040620b
push 0x251c
lea eax, [ebp - 0x468]
push 0x44de30
push eax
mov byte [ebp - 4], 0x27
call fcn.00406ea6
mov esi, dword [ebp - 0x468]
add esp, 0xc
mov eax, dword [esi - 0xc]
push ebx
inc eax
push eax
lea eax, [ebp - 0x54]
push esi
push eax
call fcn.00419bc4
add esp, 0x10
lea ecx, [esi - 0x10]
call fcn.00409a06
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x25
call fcn.0041387e
jmp 0x4096ed
push 1
call fcn.00427d0a
push ebx
push ebx
push 0x4399
push 0x7735
push 0x4397
push dword [esi + 0x4c]
lea ecx, [ebp - 0x410]
push dword [0x4690d4]
call fcn.00426f6c
lea ecx, [ebp - 0x410]
mov byte [ebp - 4], 4
call fcn.00426d92
push dword [0x4690d0]
push 0x44e384
call dword [sym.imp.USER32.dll_UnregisterClassW]
lea ecx, [ebp - 0x4c4]
mov byte [ebp - 4], 2
call fcn.0041387e
push ebx
push 1
lea ecx, [ebp - 0x42c]
call fcn.00401ba5
lea ecx, [ebp - 0x5a4]
mov byte [ebp - 4], bl
call fcn.0040c52e
xor eax, eax
call fcn.004386b5
ret