Function at 0x423e47
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5694a0
mov eax, dword fs:[0]
push eax
sub esp, 0x2c0
mov eax, dword [0x5c9030]
xor eax, esp
mov dword [esp + 0x2b8], eax
push ebx
push esi
push edi
mov eax, dword [0x5c9030]
xor eax, esp
push eax
lea eax, [esp + 0x2d0]
mov dword fs:[0], eax
lea eax, [esp + 0x10]
push eax
push ecx
mov esi, ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push esi
lea edi, [esp + 0x30]
call fcn.00402358
mov ecx, edi
call fcn.00422eb1
pop ecx
pop ecx
push 4
pop edi
call fcn.004235ab
test al, al
je 0x42408c
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push esi
call fcn.00402358
call fcn.004233dc
pop ecx
test al, al
je 0x42408c
push 3
pop edi
push 0x59932c
lea ecx, [esp + 0x14]
call fcn.0040f025
mov ebx, eax
and dword [esp + 0x2d8], 0
push str.SOFTWAREEPSONEpsonScanManager
lea ecx, [esp + 0x24]
call fcn.00402358
push ebx
push eax
lea eax, [esp + 0x24]
push eax
mov byte [esp + 0x2e4], 1
call fcn.004018ec
add esp, 0xc
push esi
push eax
lea eax, [esp + 0x1c]
push eax
mov byte [esp + 0x2e4], 2
call fcn.00401943
mov eax, dword [eax]
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
push 0x20019
push 0
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ecx, dword [esp + 0x14]
mov ebx, eax
neg ebx
sbb bl, bl
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.00402728
or dword [esp + 0x2d8], 0xffffffff
mov ecx, dword [esp + 0x10]
add ecx, 0xfffffff0
call fcn.00402728
inc bl
je 0x4241f0
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0x30]
push eax
push 0
push str.EventLaunchApp
push dword [esp + 0x2c]
mov dword [esp + 0x28], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x424083
push str.ScanSmart
lea ecx, [esp + 0x18]
call fcn.0040f025
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x2dc], edi
call fcn.00403481
test eax, eax
jne 0x423ff2
call fcn.00423d91
test al, al
je 0x423ff2
xor edi, edi
push str.EpsonScan_2
lea ecx, [esp + 0x20]
call fcn.0040f025
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x2dc], 4
call fcn.00403481
test eax, eax
jne 0x424020
push 2
pop edi
push 0x59da68
lea ecx, [esp + 0x24]
call fcn.0040f025
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x2dc], 5
call fcn.00403481
test eax, eax
jne 0x424057
call fcn.00423db8
test al, al
je 0x424057
xor edi, edi
inc edi
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.00402728
or dword [esp + 0x2d8], 0xffffffff
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffff0
call fcn.00402728
push dword [esp + 0x18]
jmp 0x4241ea
call fcn.00423d91
test al, al
je 0x4241f0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push esi
call fcn.00402358
call fcn.004237b3
pop ecx
test al, al
je 0x4241f0
push 0x59932c
lea ecx, [esp + 0x24]
xor edi, edi
call fcn.0040f025
mov ebx, eax
push str.SOFTWAREEPSONEpsonScanManager
lea ecx, [esp + 0x20]
mov dword [esp + 0x2dc], 6
call fcn.00402358
push ebx
push eax
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x2e4], 7
call fcn.004018ec
add esp, 0xc
push esi
push eax
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x2e4], 8
call fcn.00401943
mov eax, dword [eax]
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ecx, dword [esp + 0x10]
mov ebx, eax
neg ebx
sbb bl, bl
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.00402728
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff0
call fcn.00402728
or dword [esp + 0x2d8], 0xffffffff
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.00402728
inc bl
je 0x4241f0
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0x30]
push eax
push edi
push str.EventLaunchApp
push dword [esp + 0x28]
mov dword [esp + 0x28], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4241e6
push 0x59da68
lea ecx, [esp + 0x1c]
call fcn.0040f025
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2dc], 9
call fcn.00403481
test eax, eax
jne 0x4241d2
call fcn.00423db8
test al, al
je 0x4241d2
inc edi
or dword [esp + 0x2d8], 0xffffffff
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffff0
call fcn.00402728
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x2c]
push eax
call fcn.004013a2
mov dword [esp + 0x2d8], 0xa
push dword [esp + 0x24]
lea eax, [esp + 0x30]
push eax
call fcn.0042108e
xor ebx, ebx
pop ecx
pop ecx
cmp edi, ebx
je 0x4242b2
cmp edi, 3
je 0x4242b2
cmp edi, 2
je 0x4242b2
cmp dword [esp + 0x38], ebx
jle 0x4242b2
cmp dword [esp + 0x30], ebx
jle 0x4242b2
push 0x2f
mov esi, str...CommonProjectMgr.cpp
push esi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x424254
push 0x2f
jmp 0x424264
push 0x5c
push esi
call fcn.00538be0
pop ecx
pop ecx
test eax, eax
je 0x42426f
push 0x5c
push esi
call fcn.00538be0
pop ecx
pop ecx
inc eax
jmp 0x424271
mov eax, esi
xor edi, edi
inc edi
push edi
push 0x4a9
push eax
lea esi, [esp + 0x78]
call fcn.00404b6f
push str.CProjectMgr::Run
push ebx
mov ecx, eax
mov byte [esp + 0x2e0], 0xb
call fcn.00404c4d
mov esi, eax
call fcn.0040279b
pop ecx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2d8], 0xa
call fcn.00404bdb
lea esi, [esp + 0x2c]
call fcn.004013e4
mov eax, edi
mov ecx, dword [esp + 0x2d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2b8]
xor ecx, esp
call fcn.00537e11
mov esp, ebp
pop ebp
ret