Function at 0x40e110
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x584315
mov eax, dword fs:[0]
push eax
sub esp, 0x65c
mov eax, dword [0x5e91b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x5b8994
mov esi, ecx
push 0x40000
push 0x5eb054
mov dword [ebp - 0x62c], esi
call fcn.0042e040
push str._____ReadReg____n
push 0x40000
push 0x5eb054
call fcn.0042e040
add esp, 0x18
call fcn.004655e9
xor ecx, ecx
xor edi, edi
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e18d
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x644], eax
mov dword [ebp - 4], edi
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e1bc
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x64c], eax
mov byte [ebp - 4], 1
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e1ec
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x650], eax
mov byte [ebp - 4], 2
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e21c
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x648], eax
lea ecx, [ebp - 0x264]
push ecx
mov byte [ebp - 4], 3
call fcn.00402080
lea ecx, [ebp - 0x664]
mov byte [ebp - 4], 4
call fcn.0046bb9a
lea edx, [ebp - 0x664]
push edx
mov byte [ebp - 4], 5
call fcn.00432cc0
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e277
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x63c], ebx
mov byte [ebp - 4], 6
mov dword [ebp - 0x624], edi
cmp dword [esi + 0x5b8], edi
jle 0x40e7a0
mov dword [ebp - 0x620], edi
cmp dword [ebx - 0xc], 0
mov esi, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x40e2fa
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x40e2d0
cmp dword [ebx - 8], 0
jl 0x40e7ca
mov dword [ebx - 0xc], 0
mov byte [ebx], 0
jmp 0x40e2fa
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e2e6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
add eax, 0x10
mov dword [ebp - 0x63c], eax
mov ebx, eax
mov eax, dword [ebp - 0x624]
test eax, eax
js 0x40e7d4
mov ecx, dword [ebp - 0x62c]
cmp eax, dword [ecx + 0x5b8]
jge 0x40e7d4
mov edx, ecx
mov edi, dword [edx + 0x5b4]
add edi, dword [ebp - 0x620]
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x264]
call fcn.00402740
lea ecx, [ebp - 0x440]
call fcn.00402580
sub esp, 0x1dc
mov ecx, esp
mov dword [ebp - 0x668], esp
lea edx, [ebp - 0x264]
push edx
push ecx
call fcn.00402d00
lea ecx, [ebp - 0x628]
call fcn.004337a0
mov byte [ebp - 4], 7
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [ebx - 0x10]
cmp eax, esi
je 0x40e3cc
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40e3b6
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40e3b6
push eax
call fcn.00401f40
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40e3ab
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x63c], ebx
jmp 0x40e3c6
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x63c]
call fcn.00401ea0
mov ebx, dword [ebp - 0x63c]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x628]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e3f2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._on
lea ecx, [ebp - 0x1d0]
push ecx
lea edx, [ebp - 0x634]
push edx
call fcn.00404ad0
lea ecx, [ebp - 0x63c]
push ecx
push eax
lea edx, [ebp - 0x640]
push edx
mov byte [ebp - 4], 8
call fcn.00404a10
add esp, 0x18
mov byte [ebp - 4], 9
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [ebx - 0x10]
cmp eax, esi
je 0x40e486
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40e470
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40e470
push eax
call fcn.00401f40
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40e465
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x63c], ebx
jmp 0x40e480
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x63c]
call fcn.00401ea0
mov ebx, dword [ebp - 0x63c]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x640]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e4ac
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e4d2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._on
lea ecx, [ebp - 0x1d0]
push ecx
lea edx, [ebp - 0x630]
push edx
call fcn.00404ad0
lea ecx, [ebp - 0x1c8]
push ecx
push eax
lea edx, [ebp - 0x638]
push edx
mov byte [ebp - 4], 0xa
call fcn.00404a10
add esp, 0x18
mov byte [ebp - 4], 0xb
mov ecx, dword [eax]
mov esi, dword [ebp - 0x644]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x40e56c
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40e55c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40e55c
push eax
call fcn.00401f40
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40e54b
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x644], ebx
mov ebx, dword [ebp - 0x63c]
jmp 0x40e56c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x644]
call fcn.00401ea0
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x638]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e592
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x630]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e5b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x65c]
xor esi, esi
test eax, eax
jle 0x40e6be
mov edi, dword [ebp - 0x644]
mov edi, edi
test esi, esi
js 0x40e7d4
cmp esi, eax
jge 0x40e7d4
mov ecx, dword [ebp - 0x660]
mov eax, dword [ecx + esi*4]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40e183
push eax
push edi
call fcn.00557b8d
add esp, 8
test eax, eax
sete al
test al, al
jne 0x40e64f
cmp esi, dword [ebp - 0x65c]
jge 0x40e7d4
mov edx, dword [ebp - 0x660]
mov eax, dword [edx + esi*4]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40e183
push eax
push ebx
call fcn.00557b8d
add esp, 8
test eax, eax
sete al
test al, al
jne 0x40e64f
mov eax, dword [ebp - 0x65c]
inc esi
cmp esi, eax
jl 0x40e5d0
jmp 0x40e6be
lea eax, [ebp - 0x264]
push eax
lea ecx, [ebp - 0x440]
push ecx
mov dword [ebp - 0x1b4], 1
call fcn.00402d00
mov eax, dword [ebp - 0x62c]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x624]
cmp edx, dword [eax + 0x5b8]
jge 0x40e7d4
mov edx, eax
mov eax, dword [edx + 0x5b4]
add eax, dword [ebp - 0x620]
lea ecx, [ebp - 0x61c]
push ecx
lea edi, [ebp - 0x440]
call fcn.00402740
lea ecx, [ebp - 0x61c]
call fcn.00402580
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.00402580
mov esi, dword [ebp - 0x624]
push esi
push str.___m_PrinterArray.ElementAt__d___n
push 0x40000
push 0x5eb054
call fcn.0042e040
mov eax, dword [ebp - 0x1d0]
push eax
push str._______FriendlyName___s_n
push 0x40000
push 0x5eb054
call fcn.0042e040
mov ecx, dword [ebp - 0x1c8]
push ecx
push str._______PortName_t___s_n
push 0x40000
push 0x5eb054
call fcn.0042e040
mov edx, dword [ebp - 0x1d0]
push edx
push str._______FriendlyName___s_n
push 0x40000
push 0x5eb054
call fcn.0042e040
movsx eax, byte [ebp - 0x1b8]
add esp, 0x40
push eax
push str._______m_cAttr_t_t___d____1:Ink_2:Laser_3:Color_Laser__n
push 0x40000
push 0x5eb054
call fcn.0042e040
mov ecx, dword [ebp - 0x1b4]
push ecx
push str._______m_bMonitor_t___d_n
push 0x40000
push 0x5eb054
call fcn.0042e040
push 0x5b8994
push 0x40000
push 0x5eb054
call fcn.0042e040
mov edx, dword [ebp - 0x62c]
add dword [ebp - 0x620], 0x1dc
inc esi
add esp, 0x2c
mov dword [ebp - 0x624], esi
cmp esi, dword [edx + 0x5b8]
jl 0x40e2a5
xor edi, edi
mov dword [ebp - 0x620], edi
mov dword [ebp - 0x634], 1
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e7d9
push 0x80004005
call fcn.00402040
push 0x80070057
call fcn.00402040
call fcn.004666be
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x624], eax
mov ecx, 0x5b7a18
mov byte [ebp - 4], 0xd
test ecx, 0xffff0000
jne 0x40e81a
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
cmp eax, edi
je 0x40e82b
push esi
push eax
lea ecx, [ebp - 0x624]
call fcn.00401a40
jmp 0x40e82b
push edi
push 0x5b7a18
lea ecx, [ebp - 0x624]
call fcn.00401ea0
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x630]
mov dword [ebp - 0x638], 0x104
xor edi, edi
call fcn.00450c20
mov eax, dword [eax]
lea ecx, [ebp - 0x620]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
mov eax, dword [ebp - 0x630]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40e888
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x40e8fe
lea ecx, [ebp - 0x638]
push ecx
mov ecx, dword [ebp - 0x620]
lea edx, [ebp - 0x368]
push edx
lea eax, [ebp - 0x634]
push eax
push 0
push str.DefaultStartUp
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov esi, dword [ebp - 0x62c]
test eax, eax
jne 0x40e8eb
lea eax, [ebp - 0x368]
lea ecx, [esi + 0x558]
lea edi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40e8d0
sub eax, edi
push eax
lea edx, [ebp - 0x368]
push edx
call fcn.00401ea0
mov edi, 1
mov eax, dword [ebp - 0x620]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x40e916
jmp 0x40e904
mov esi, dword [ebp - 0x62c]
push 0
lea ecx, [esi + 0x558]
push 0x5b7a18
call fcn.00401ea0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x624]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e93c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x558]
push ecx
push str.__m_strDefaultModelName_t_t__s_n
push 0x40000
push 0x5eb054
call fcn.0042e040
add esp, 0x10
lea edx, [esi + 0x5b0]
push edx
add esi, 0x564
push esi
call fcn.00431860
call fcn.004655e9
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40e987
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x620], eax
mov ecx, str.Load_On_StartUp_StsMon
mov byte [ebp - 4], 0xf
test ecx, 0xffff0000
jne 0x40e9c8
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
test eax, eax
je 0x40e9da
push esi
push eax
lea ecx, [ebp - 0x620]
call fcn.00401a40
jmp 0x40e9da
push 0x16
push str.Load_On_StartUp_StsMon
lea ecx, [ebp - 0x620]
call fcn.00401ea0
lea esi, [ebp - 0x634]
mov byte [ebp - 4], 0x10
call fcn.00450c20
mov eax, dword [eax]
mov ecx, 4
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x630], ecx
lea ecx, [ebp - 0x624]
push ecx
push 0x20019
xor edi, edi
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x628], edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40ea6b
lea edx, [ebp - 0x630]
push edx
mov edx, dword [ebp - 0x620]
lea eax, [ebp - 0x628]
push eax
mov eax, dword [ebp - 0x624]
lea ecx, [ebp - 0x638]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40ea5a
lea esi, [edi + 1]
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40ea6f
xor esi, esi
jmp 0x40ea75
mov esi, dword [ebp - 0x628]
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ea97
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eabd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x62c]
cmp esi, edi
jne 0x40eacf
mov dword [ebx + 0x568], edi
jmp 0x40eada
cmp esi, 1
jne 0x40eada
mov dword [ebx + 0x568], esi
mov ecx, dword [ebx + 0x568]
push ecx
push str.__m_bLoadOnStartupStsMon_t_t__d_n
push 0x40000
push 0x5eb054
call fcn.0042e040
add esp, 0x10
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40eb12
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x620], eax
mov ecx, str.Location_type
mov byte [ebp - 4], 0x11
test ecx, 0xffff0000
jne 0x40eb53
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
cmp eax, edi
je 0x40eb65
push esi
push eax
lea ecx, [ebp - 0x620]
call fcn.00401a40
jmp 0x40eb65
push 0xd
push str.Location_type
lea ecx, [ebp - 0x620]
call fcn.00401ea0
lea esi, [ebp - 0x634]
mov byte [ebp - 4], 0x12
call fcn.00450c20
mov eax, dword [eax]
mov ecx, 4
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x630], ecx
lea ecx, [ebp - 0x624]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x628], edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40ebf4
lea edx, [ebp - 0x630]
push edx
mov edx, dword [ebp - 0x620]
lea eax, [ebp - 0x628]
push eax
mov eax, dword [ebp - 0x624]
lea ecx, [ebp - 0x638]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40ebe3
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40ebf8
xor eax, eax
jmp 0x40ebfe
mov eax, dword [ebp - 0x628]
mov byte [ebx + 0x490], al
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ec26
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ec4c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebx + 0x490], 3
jbe 0x40ec5c
mov byte [ebx + 0x490], 0
movzx ecx, byte [ebx + 0x490]
push ecx
push str.__Location_Type_t_t_t__d__n
push 0x40000
push 0x5eb054
call fcn.0042e040
add esp, 0x10
call fcn.0040dbf0
mov dword [ebx + 0x498], eax
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40eca0
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x620], eax
mov ecx, str.Popup_Anytime
mov byte [ebp - 4], 0x13
test ecx, 0xffff0000
jne 0x40ece1
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
cmp eax, edi
je 0x40ecf3
push esi
push eax
lea ecx, [ebp - 0x620]
call fcn.00401a40
jmp 0x40ecf3
push 0xd
push str.Popup_Anytime
lea ecx, [ebp - 0x620]
call fcn.00401ea0
lea esi, [ebp - 0x634]
mov byte [ebp - 4], 0x14
call fcn.00450c20
mov eax, dword [eax]
mov ecx, 4
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x630], ecx
lea ecx, [ebp - 0x624]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x628], edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40ed82
lea edx, [ebp - 0x630]
push edx
mov edx, dword [ebp - 0x620]
lea eax, [ebp - 0x628]
push eax
mov eax, dword [ebp - 0x624]
lea ecx, [ebp - 0x638]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40ed71
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40ed86
xor esi, esi
jmp 0x40ed8c
mov esi, dword [ebp - 0x628]
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40edae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40edd4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, edi
jne 0x40ede0
mov dword [ebx + 0x49c], edi
jmp 0x40edea
mov dword [ebx + 0x49c], 1
call fcn.0040dde0
mov dword [ebx + 0x4a0], eax
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40ee0f
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x620], eax
mov ecx, str.Popup_Only_Printing
mov byte [ebp - 4], 0x15
test ecx, 0xffff0000
jne 0x40ee50
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
cmp eax, edi
je 0x40ee62
push esi
push eax
lea ecx, [ebp - 0x620]
call fcn.00401a40
jmp 0x40ee62
push 0x13
push str.Popup_Only_Printing
lea ecx, [ebp - 0x620]
call fcn.00401ea0
lea esi, [ebp - 0x634]
mov byte [ebp - 4], 0x16
call fcn.00450c20
mov eax, dword [eax]
mov ecx, 4
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x630], ecx
lea ecx, [ebp - 0x624]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x628], edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40eef1
lea edx, [ebp - 0x630]
push edx
mov edx, dword [ebp - 0x620]
lea eax, [ebp - 0x628]
push eax
mov eax, dword [ebp - 0x624]
lea ecx, [ebp - 0x638]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40eee0
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40eef8
mov esi, 1
jmp 0x40eefe
mov esi, dword [ebp - 0x628]
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ef20
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ef46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, edi
jne 0x40ef52
mov dword [ebx + 0x4a4], edi
jmp 0x40ef5c
mov dword [ebx + 0x4a4], 1
mov ebx, dword [ebp - 0x62c]
call fcn.0041ae00
mov ecx, dword [ebx + 0x20]
xor edi, edi
push edi
push 0x1388
push 3
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40ef95
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x620], eax
mov ecx, str.Popup_Off
mov byte [ebp - 4], 0x17
test ecx, 0xffff0000
jne 0x40efd6
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
cmp eax, edi
je 0x40efe8
push esi
push eax
lea ecx, [ebp - 0x620]
call fcn.00401a40
jmp 0x40efe8
push 9
push str.Popup_Off
lea ecx, [ebp - 0x620]
call fcn.00401ea0
lea esi, [ebp - 0x634]
mov byte [ebp - 4], 0x18
call fcn.00450c20
mov eax, dword [eax]
lea ecx, [ebp - 0x624]
push ecx
push 0x20019
push edi
push eax
mov ebx, 4
push SysReAllocString
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x638], ebx
mov dword [ebp - 0x628], edi
mov dword [ebp - 0x630], ebx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f077
lea edx, [ebp - 0x630]
push edx
mov edx, dword [ebp - 0x620]
lea eax, [ebp - 0x628]
push eax
mov eax, dword [ebp - 0x624]
lea ecx, [ebp - 0x638]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f066
lea esi, [ebx - 3]
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f07b
xor esi, esi
jmp 0x40f081
mov esi, dword [ebp - 0x628]
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f0a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f0c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, edi
jne 0x40f0db
mov ecx, dword [ebp - 0x62c]
mov dword [ecx + 0x4a8], edi
jmp 0x40f0eb
mov edx, dword [ebp - 0x62c]
mov dword [edx + 0x4a8], 1
mov esi, dword [ebp - 0x62c]
mov eax, dword [esi + 0x49c]
push eax
push str.__Popup_On_Error_t_t_t__d__n
push 0x40000
push 0x5eb054
call fcn.0042e040
mov ecx, dword [esi + 0x4a4]
push ecx
push str.__Popup_On_Print_t_t_t__d__n
push 0x40000
push 0x5eb054
call fcn.0042e040
mov edx, dword [esi + 0x4a8]
push edx
push str.__Popup_Off_t_t_t_t__d__n
push 0x40000
push 0x5eb054
call fcn.0042e040
add esp, 0x30
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f15f
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x620], eax
mov ecx, str.TroubleAuto
mov byte [ebp - 4], 0x19
test ecx, 0xffff0000
jne 0x40f1a0
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
cmp eax, edi
je 0x40f1b2
push esi
push eax
lea ecx, [ebp - 0x620]
call fcn.00401a40
jmp 0x40f1b2
push 0xb
push str.TroubleAuto
lea ecx, [ebp - 0x620]
call fcn.00401ea0
lea esi, [ebp - 0x634]
mov byte [ebp - 4], 0x1a
call fcn.00450c20
mov eax, dword [eax]
lea ecx, [ebp - 0x624]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x638], ebx
mov dword [ebp - 0x628], edi
mov dword [ebp - 0x630], ebx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f23c
lea edx, [ebp - 0x630]
push edx
mov edx, dword [ebp - 0x620]
lea eax, [ebp - 0x628]
push eax
mov eax, dword [ebp - 0x624]
lea ecx, [ebp - 0x638]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f22b
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f240
xor esi, esi
jmp 0x40f246
mov esi, dword [ebp - 0x628]
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f268
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f28e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x62c]
xor ecx, ecx
cmp esi, edi
setne cl
mov dword [edx + 0x17cc], ecx
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f2bb
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x620], eax
mov ecx, str.TroubleWebCheck
mov byte [ebp - 4], 0x1b
test ecx, 0xffff0000
jne 0x40f2fc
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
cmp eax, edi
je 0x40f30e
push esi
push eax
lea ecx, [ebp - 0x620]
call fcn.00401a40
jmp 0x40f30e
push 0xf
push str.TroubleWebCheck
lea ecx, [ebp - 0x620]
call fcn.00401ea0
lea esi, [ebp - 0x634]
mov byte [ebp - 4], 0x1c
call fcn.00450c20
mov eax, dword [eax]
lea ecx, [ebp - 0x624]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x638], ebx
mov dword [ebp - 0x628], edi
mov dword [ebp - 0x630], ebx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f398
lea edx, [ebp - 0x630]
push edx
mov edx, dword [ebp - 0x620]
lea eax, [ebp - 0x628]
push eax
mov eax, dword [ebp - 0x624]
lea ecx, [ebp - 0x638]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f387
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f39f
mov esi, 1
jmp 0x40f3a5
mov esi, dword [ebp - 0x628]
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f3c7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f3ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x62c]
xor ecx, ecx
cmp esi, edi
setne cl
mov dword [edx + 0x17d0], ecx
call fcn.004655e9
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f41a
push 0x80004005
call fcn.00402040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x620], eax
mov ecx, str.EnableOfflineChecker
mov byte [ebp - 4], 0x1d
test ecx, 0xffff0000
jne 0x40f45b
mov edx, ecx
movzx esi, dx
push esi
call fcn.004667cb
cmp eax, edi
je 0x40f46d
push esi
push eax
lea ecx, [ebp - 0x620]
call fcn.00401a40
jmp 0x40f46d
push 0x14
push str.EnableOfflineChecker
lea ecx, [ebp - 0x620]
call fcn.00401ea0
lea esi, [ebp - 0x634]
mov byte [ebp - 4], 0x1e
call fcn.00450c20
mov eax, dword [eax]
lea ecx, [ebp - 0x624]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x624], edi
mov dword [ebp - 0x638], ebx
mov dword [ebp - 0x628], edi
mov dword [ebp - 0x630], ebx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f4f7
lea edx, [ebp - 0x630]
push edx
mov edx, dword [ebp - 0x620]
lea eax, [ebp - 0x628]
push eax
mov eax, dword [ebp - 0x624]
lea ecx, [ebp - 0x638]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f4e6
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x624]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f4fb
xor esi, esi
jmp 0x40f501
mov esi, dword [ebp - 0x628]
mov eax, dword [ebp - 0x634]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f523
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x620]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f549
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, edi
jne 0x40f55b
mov ecx, dword [ebp - 0x62c]
mov dword [ecx + 0x4c4], edi
jmp 0x40f56b
mov edx, dword [ebp - 0x62c]
mov dword [edx + 0x4c4], 1
mov ebx, dword [ebp - 0x62c]
mov eax, dword [ebx + 0x4c4]
push eax
push str.__m_bOffLineChecker_t_t__d_n
push 0x40000
push 0x5eb054
call fcn.0042e040
add esp, 0x10
push ebx
call fcn.0040daf0
push eax
push str.__Alarm_t_t_t_t__d__n
push 0x40000
push 0x5eb054
mov dword [ebx + 0x4bc], eax
call fcn.0042e040
add esp, 0x10
call fcn.0040deb0
mov dword [ebx + 0x1714], eax
call fcn.0040df90
mov byte [ebx + 0x1718], al
call fcn.0040dcd0
lea ecx, [ebp - 0x4c]
lea edx, [ebp - 0x88]
mov dword [ebx + 0x4c8], eax
call fcn.004185c0
mov eax, ebx
mov ecx, 0xf
lea esi, [ebp - 0x88]
lea edi, [ebx + 0x508]
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x4cc]
mov ecx, 0xf
lea esi, [ebp - 0x4c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x508]
mov dword [ebp - 0x640], ecx
mov dword [eax + 0x6d0], ecx
fild dword [ebp - 0x640]
fmul qword [eax + 0x6a8]
call fcn.0055d2b0
mov esi, ebx
mov ecx, dword [esi + 0x4cc]
add ecx, 0xfffffffe
mov dword [ebp - 0x640], ecx
fild dword [ebp - 0x640]
mov dword [ebx + 0x508], eax
mov eax, ebx
fmul qword [eax + 0x6b0]
mov dword [eax + 0x6cc], ecx
call fcn.0055d2b0
push str._______________n
push 0x40000
push 0x5eb054
mov dword [esi + 0x4cc], eax
call fcn.0042e040
push 0x5b8994
push 0x40000
push 0x5eb054
call fcn.0042e040
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x63c]
add eax, 0xfffffff0
add esp, 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f6b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x664]
mov byte [ebp - 4], 4
call fcn.0046bdd8
lea ecx, [ebp - 0x264]
call fcn.00402580
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x648]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f6f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x650]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f717
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x64c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f73d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x644]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f766
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005578df
mov esp, ebp
pop ebp
ret