Function at 0x40e810
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x58a955
mov eax, dword fs:[0]
push eax
sub esp, 0x6bc
mov eax, dword [0x5f01b4]
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 0x5bea0c
mov esi, ecx
push 0x40000
push 0x5f2054
mov dword [ebp - 0x68c], esi
call fcn.00433010
push str._____ReadReg____n
push 0x40000
push 0x5f2054
call fcn.00433010
add esp, 0x18
call fcn.0046b8a8
xor ecx, ecx
xor edi, edi
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e88d
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6a4], eax
mov dword [ebp - 4], edi
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e8bc
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6ac], eax
mov byte [ebp - 4], 1
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e8ec
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6b0], eax
mov byte [ebp - 4], 2
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e91c
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6a8], eax
lea ecx, [ebp - 0x284]
push ecx
mov byte [ebp - 4], 3
call fcn.00402170
lea ecx, [ebp - 0x6c4]
mov byte [ebp - 4], 4
call fcn.00471e69
lea edx, [ebp - 0x6c4]
push edx
mov byte [ebp - 4], 5
call fcn.00437c90
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40e977
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x69c], ebx
mov byte [ebp - 4], 6
mov dword [ebp - 0x684], edi
cmp dword [esi + 0x5b8], edi
jle 0x40eea4
mov dword [ebp - 0x680], edi
cmp dword [ebx - 0xc], 0
mov esi, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x40e9fa
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x40e9d0
cmp dword [ebx - 8], 0
jl 0x40eece
mov dword [ebx - 0xc], 0
mov byte [ebx], 0
jmp 0x40e9fa
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40e9e6
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 - 0x69c], eax
mov ebx, eax
mov eax, dword [ebp - 0x684]
test eax, eax
js 0x40eed8
mov ecx, dword [ebp - 0x68c]
cmp eax, dword [ecx + 0x5b8]
jge 0x40eed8
mov edx, ecx
mov eax, dword [edx + 0x5b4]
add eax, dword [ebp - 0x680]
lea ecx, [ebp - 0x480]
push ecx
lea edi, [ebp - 0x284]
call fcn.004028c0
lea ecx, [ebp - 0x480]
call fcn.004026e0
sub esp, 0x1fc
mov edx, esp
mov dword [ebp - 0x6c8], esp
mov eax, edi
push eax
push edx
call fcn.00402fc0
lea ecx, [ebp - 0x688]
call fcn.00438780
mov byte [ebp - 4], 7
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [ebx - 0x10]
cmp eax, esi
je 0x40eac8
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40eab2
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40eab2
push eax
call fcn.00402000
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40eaa7
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x69c], ebx
jmp 0x40eac2
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x69c]
call fcn.00401f50
mov ebx, dword [ebp - 0x69c]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x688]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eaee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._on
lea ecx, [ebp - 0x1f0]
push ecx
lea edx, [ebp - 0x694]
push edx
call fcn.00404ea0
lea ecx, [ebp - 0x69c]
push ecx
push eax
lea edx, [ebp - 0x6a0]
push edx
mov byte [ebp - 4], 8
call fcn.00404de0
add esp, 0x18
mov byte [ebp - 4], 9
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [ebx - 0x10]
cmp eax, esi
je 0x40eb82
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40eb6c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40eb6c
push eax
call fcn.00402000
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40eb61
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x69c], ebx
jmp 0x40eb7c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x69c]
call fcn.00401f50
mov ebx, dword [ebp - 0x69c]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x6a0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40eba8
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 - 0x694]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ebce
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._on
lea ecx, [ebp - 0x1f0]
push ecx
lea edx, [ebp - 0x690]
push edx
call fcn.00404ea0
lea ecx, [ebp - 0x1e8]
push ecx
push eax
lea edx, [ebp - 0x698]
push edx
mov byte [ebp - 4], 0xa
call fcn.00404de0
add esp, 0x18
mov byte [ebp - 4], 0xb
mov ecx, dword [eax]
mov esi, dword [ebp - 0x6a4]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x40ec68
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40ec58
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x40ec58
push eax
call fcn.00402000
mov ebx, eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40ec47
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x6a4], ebx
mov ebx, dword [ebp - 0x69c]
jmp 0x40ec68
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x6a4]
call fcn.00401f50
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x698]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ec8e
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 - 0x690]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ecb4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x6bc]
xor esi, esi
test eax, eax
jle 0x40edc2
mov edi, dword [ebp - 0x6a4]
lea ebx, [ebx]
test esi, esi
js 0x40eed8
cmp esi, eax
jge 0x40eed8
mov ecx, dword [ebp - 0x6c0]
mov eax, dword [ecx + esi*4]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40e883
push eax
push edi
call fcn.0055de44
add esp, 8
test eax, eax
sete al
test al, al
jne 0x40ed4f
cmp esi, dword [ebp - 0x6bc]
jge 0x40eed8
mov edx, dword [ebp - 0x6c0]
mov eax, dword [edx + esi*4]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40e883
push eax
push ebx
call fcn.0055de44
add esp, 8
test eax, eax
sete al
test al, al
jne 0x40ed4f
mov eax, dword [ebp - 0x6bc]
inc esi
cmp esi, eax
jl 0x40ecd0
jmp 0x40edc2
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x480]
push ecx
mov dword [ebp - 0x1d4], 1
call fcn.00402fc0
mov eax, dword [ebp - 0x68c]
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x684]
cmp edx, dword [eax + 0x5b8]
jge 0x40eed8
mov edx, eax
mov edi, dword [edx + 0x5b4]
add edi, dword [ebp - 0x680]
lea ecx, [ebp - 0x67c]
push ecx
lea eax, [ebp - 0x480]
call fcn.004028c0
lea ecx, [ebp - 0x67c]
call fcn.004026e0
lea ecx, [ebp - 0x480]
mov byte [ebp - 4], 6
call fcn.004026e0
mov esi, dword [ebp - 0x684]
push esi
push str.___m_PrinterArray.ElementAt__d___n
push 0x40000
push 0x5f2054
call fcn.00433010
mov eax, dword [ebp - 0x1f0]
push eax
push str._______FriendlyName___s_n
push 0x40000
push 0x5f2054
call fcn.00433010
mov ecx, dword [ebp - 0x1e8]
push ecx
push str._______PortName_t___s_n
push 0x40000
push 0x5f2054
call fcn.00433010
mov edx, dword [ebp - 0x1f0]
push edx
push str._______FriendlyName___s_n
push 0x40000
push 0x5f2054
call fcn.00433010
movsx eax, byte [ebp - 0x1d8]
add esp, 0x40
push eax
push str._______m_cAttr_t_t___d____1:Ink_2:Laser_3:Color_Laser__n
push 0x40000
push 0x5f2054
call fcn.00433010
mov ecx, dword [ebp - 0x1d4]
push ecx
push str._______m_bMonitor_t___d_n
push 0x40000
push 0x5f2054
call fcn.00433010
push 0x5bea0c
push 0x40000
push 0x5f2054
call fcn.00433010
mov edx, dword [ebp - 0x68c]
add dword [ebp - 0x680], 0x1fc
inc esi
add esp, 0x2c
mov dword [ebp - 0x684], esi
cmp esi, dword [edx + 0x5b8]
jl 0x40e9a5
xor edi, edi
mov dword [ebp - 0x680], edi
mov dword [ebp - 0x694], 1
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40eedd
push 0x80004005
call fcn.004020e0
push 0x80070057
call fcn.004020e0
call fcn.0046c980
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x684], eax
mov ecx, 0x5bda14
mov byte [ebp - 4], 0xd
test ecx, 0xffff0000
jne 0x40ef1e
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
cmp eax, edi
je 0x40ef2f
push esi
push eax
lea ecx, [ebp - 0x684]
call fcn.00401af0
jmp 0x40ef2f
push edi
push 0x5bda14
lea ecx, [ebp - 0x684]
call fcn.00401f50
mov byte [ebp - 4], 0xe
lea esi, [ebp - 0x690]
mov dword [ebp - 0x698], 0x104
xor edi, edi
call fcn.00456d60
mov eax, dword [eax]
lea ecx, [ebp - 0x680]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
mov eax, dword [ebp - 0x690]
sete bl
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ef8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x40f000
lea ecx, [ebp - 0x698]
push ecx
mov ecx, dword [ebp - 0x680]
lea edx, [ebp - 0x388]
push edx
lea eax, [ebp - 0x694]
push eax
push 0
push str.DefaultStartUp
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov esi, dword [ebp - 0x68c]
test eax, eax
jne 0x40efed
lea eax, [ebp - 0x388]
lea ecx, [esi + 0x558]
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40efd2
sub eax, edi
push eax
lea edx, [ebp - 0x388]
push edx
call fcn.00401f50
mov edi, 1
mov eax, dword [ebp - 0x680]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x40f018
jmp 0x40f006
mov esi, dword [ebp - 0x68c]
push 0
lea ecx, [esi + 0x558]
push 0x5bda14
call fcn.00401f50
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x684]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f03e
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 0x5f2054
call fcn.00433010
add esp, 0x10
lea edx, [esi + 0x5b0]
push edx
add esi, 0x564
push esi
call fcn.00436830
call fcn.0046b8a8
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40f089
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x680], eax
mov ecx, str.Load_On_StartUp_StsMon
mov byte [ebp - 4], 0xf
test ecx, 0xffff0000
jne 0x40f0ca
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
test eax, eax
je 0x40f0dc
push esi
push eax
lea ecx, [ebp - 0x680]
call fcn.00401af0
jmp 0x40f0dc
push 0x16
push str.Load_On_StartUp_StsMon
lea ecx, [ebp - 0x680]
call fcn.00401f50
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 0x10
call fcn.00456d60
mov eax, dword [eax]
mov ecx, 4
mov dword [ebp - 0x698], ecx
mov dword [ebp - 0x690], ecx
lea ecx, [ebp - 0x684]
push ecx
push 0x20019
xor edi, edi
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x688], edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f16d
lea edx, [ebp - 0x690]
push edx
mov edx, dword [ebp - 0x680]
lea eax, [ebp - 0x688]
push eax
mov eax, dword [ebp - 0x684]
lea ecx, [ebp - 0x698]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f15c
lea esi, [edi + 1]
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f171
xor esi, esi
jmp 0x40f177
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x694]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f199
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 - 0x680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f1bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 0x68c]
cmp esi, edi
jne 0x40f1d1
mov dword [ebx + 0x568], edi
jmp 0x40f1dc
cmp esi, 1
jne 0x40f1dc
mov dword [ebx + 0x568], esi
mov ecx, dword [ebx + 0x568]
push ecx
push str.__m_bLoadOnStartupStsMon_t_t__d_n
push 0x40000
push 0x5f2054
call fcn.00433010
add esp, 0x10
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f214
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x680], eax
mov ecx, str.Location_type
mov byte [ebp - 4], 0x11
test ecx, 0xffff0000
jne 0x40f255
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
cmp eax, edi
je 0x40f267
push esi
push eax
lea ecx, [ebp - 0x680]
call fcn.00401af0
jmp 0x40f267
push 0xd
push str.Location_type
lea ecx, [ebp - 0x680]
call fcn.00401f50
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 0x12
call fcn.00456d60
mov eax, dword [eax]
mov ecx, 4
mov dword [ebp - 0x698], ecx
mov dword [ebp - 0x690], ecx
lea ecx, [ebp - 0x684]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x688], edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f2f6
lea edx, [ebp - 0x690]
push edx
mov edx, dword [ebp - 0x680]
lea eax, [ebp - 0x688]
push eax
mov eax, dword [ebp - 0x684]
lea ecx, [ebp - 0x698]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f2e5
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f2fa
xor eax, eax
jmp 0x40f300
mov eax, dword [ebp - 0x688]
mov byte [ebx + 0x490], al
mov eax, dword [ebp - 0x694]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f328
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 - 0x680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f34e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebx + 0x490], 3
jbe 0x40f35e
mov byte [ebx + 0x490], 0
movzx ecx, byte [ebx + 0x490]
push ecx
push str.__Location_Type_t_t_t__d__n
push 0x40000
push 0x5f2054
call fcn.00433010
add esp, 0x10
call fcn.0040e180
mov dword [ebx + 0x498], eax
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f3a2
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x680], eax
mov ecx, str.Popup_Anytime
mov byte [ebp - 4], 0x13
test ecx, 0xffff0000
jne 0x40f3e3
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
cmp eax, edi
je 0x40f3f5
push esi
push eax
lea ecx, [ebp - 0x680]
call fcn.00401af0
jmp 0x40f3f5
push 0xd
push str.Popup_Anytime
lea ecx, [ebp - 0x680]
call fcn.00401f50
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 0x14
call fcn.00456d60
mov eax, dword [eax]
mov ecx, 4
mov dword [ebp - 0x698], ecx
mov dword [ebp - 0x690], ecx
lea ecx, [ebp - 0x684]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x688], edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f484
lea edx, [ebp - 0x690]
push edx
mov edx, dword [ebp - 0x680]
lea eax, [ebp - 0x688]
push eax
mov eax, dword [ebp - 0x684]
lea ecx, [ebp - 0x698]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f473
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f488
xor esi, esi
jmp 0x40f48e
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x694]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f4b0
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 - 0x680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f4d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, edi
jne 0x40f4e2
mov dword [ebx + 0x49c], edi
jmp 0x40f4ec
mov dword [ebx + 0x49c], 1
call fcn.0040e4e0
mov dword [ebx + 0x4a0], eax
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f511
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x680], eax
mov ecx, str.Popup_Only_Printing
mov byte [ebp - 4], 0x15
test ecx, 0xffff0000
jne 0x40f552
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
cmp eax, edi
je 0x40f564
push esi
push eax
lea ecx, [ebp - 0x680]
call fcn.00401af0
jmp 0x40f564
push 0x13
push str.Popup_Only_Printing
lea ecx, [ebp - 0x680]
call fcn.00401f50
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 0x16
call fcn.00456d60
mov eax, dword [eax]
mov ecx, 4
mov dword [ebp - 0x698], ecx
mov dword [ebp - 0x690], ecx
lea ecx, [ebp - 0x684]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x688], edi
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f5f3
lea edx, [ebp - 0x690]
push edx
mov edx, dword [ebp - 0x680]
lea eax, [ebp - 0x688]
push eax
mov eax, dword [ebp - 0x684]
lea ecx, [ebp - 0x698]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f5e2
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f5fa
mov esi, 1
jmp 0x40f600
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x694]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f622
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 - 0x680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f648
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, edi
jne 0x40f654
mov dword [ebx + 0x4a4], edi
jmp 0x40f65e
mov dword [ebx + 0x4a4], 1
mov ebx, dword [ebp - 0x68c]
call fcn.0041bb10
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.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f697
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x680], eax
mov ecx, str.Popup_Off
mov byte [ebp - 4], 0x17
test ecx, 0xffff0000
jne 0x40f6d8
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
cmp eax, edi
je 0x40f6ea
push esi
push eax
lea ecx, [ebp - 0x680]
call fcn.00401af0
jmp 0x40f6ea
push 9
push str.Popup_Off
lea ecx, [ebp - 0x680]
call fcn.00401f50
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 0x18
call fcn.00456d60
mov eax, dword [eax]
lea ecx, [ebp - 0x684]
push ecx
push 0x20019
push edi
push eax
mov ebx, 4
push SysReAllocString
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x698], ebx
mov dword [ebp - 0x688], edi
mov dword [ebp - 0x690], ebx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f779
lea edx, [ebp - 0x690]
push edx
mov edx, dword [ebp - 0x680]
lea eax, [ebp - 0x688]
push eax
mov eax, dword [ebp - 0x684]
lea ecx, [ebp - 0x698]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f768
lea esi, [ebx - 3]
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f77d
xor esi, esi
jmp 0x40f783
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x694]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f7a5
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 - 0x680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f7cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, edi
jne 0x40f7dd
mov ecx, dword [ebp - 0x68c]
mov dword [ecx + 0x4a8], edi
jmp 0x40f7ed
mov edx, dword [ebp - 0x68c]
mov dword [edx + 0x4a8], 1
mov esi, dword [ebp - 0x68c]
mov eax, dword [esi + 0x49c]
push eax
push str.__Popup_On_Error_t_t_t__d__n
push 0x40000
push 0x5f2054
call fcn.00433010
mov ecx, dword [esi + 0x4a4]
push ecx
push str.__Popup_On_Print_t_t_t__d__n
push 0x40000
push 0x5f2054
call fcn.00433010
mov edx, dword [esi + 0x4a8]
push edx
push str.__Popup_Off_t_t_t_t__d__n
push 0x40000
push 0x5f2054
call fcn.00433010
add esp, 0x30
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f861
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x680], eax
mov ecx, str.TroubleAuto
mov byte [ebp - 4], 0x19
test ecx, 0xffff0000
jne 0x40f8a2
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
cmp eax, edi
je 0x40f8b4
push esi
push eax
lea ecx, [ebp - 0x680]
call fcn.00401af0
jmp 0x40f8b4
push 0xb
push str.TroubleAuto
lea ecx, [ebp - 0x680]
call fcn.00401f50
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 0x1a
call fcn.00456d60
mov eax, dword [eax]
lea ecx, [ebp - 0x684]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x698], ebx
mov dword [ebp - 0x688], edi
mov dword [ebp - 0x690], ebx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40f93e
lea edx, [ebp - 0x690]
push edx
mov edx, dword [ebp - 0x680]
lea eax, [ebp - 0x688]
push eax
mov eax, dword [ebp - 0x684]
lea ecx, [ebp - 0x698]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40f92d
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40f942
xor esi, esi
jmp 0x40f948
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x694]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40f96a
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 - 0x680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40f990
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x68c]
xor ecx, ecx
cmp esi, edi
setne cl
mov dword [edx + 0x19a0], ecx
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40f9bd
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x680], eax
mov ecx, str.TroubleWebCheck
mov byte [ebp - 4], 0x1b
test ecx, 0xffff0000
jne 0x40f9fe
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
cmp eax, edi
je 0x40fa10
push esi
push eax
lea ecx, [ebp - 0x680]
call fcn.00401af0
jmp 0x40fa10
push 0xf
push str.TroubleWebCheck
lea ecx, [ebp - 0x680]
call fcn.00401f50
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 0x1c
call fcn.00456d60
mov eax, dword [eax]
lea ecx, [ebp - 0x684]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x698], ebx
mov dword [ebp - 0x688], edi
mov dword [ebp - 0x690], ebx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40fa9a
lea edx, [ebp - 0x690]
push edx
mov edx, dword [ebp - 0x680]
lea eax, [ebp - 0x688]
push eax
mov eax, dword [ebp - 0x684]
lea ecx, [ebp - 0x698]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40fa89
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40faa1
mov esi, 1
jmp 0x40faa7
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x694]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40fac9
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 - 0x680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40faef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x68c]
xor ecx, ecx
cmp esi, edi
setne cl
mov dword [edx + 0x19a4], ecx
call fcn.0046b8a8
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x40fb1c
push 0x80004005
call fcn.004020e0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x680], eax
mov ecx, str.EnableOfflineChecker
mov byte [ebp - 4], 0x1d
test ecx, 0xffff0000
jne 0x40fb5d
mov edx, ecx
movzx esi, dx
push esi
call fcn.0046ca6b
cmp eax, edi
je 0x40fb6f
push esi
push eax
lea ecx, [ebp - 0x680]
call fcn.00401af0
jmp 0x40fb6f
push 0x14
push str.EnableOfflineChecker
lea ecx, [ebp - 0x680]
call fcn.00401f50
lea esi, [ebp - 0x694]
mov byte [ebp - 4], 0x1e
call fcn.00456d60
mov eax, dword [eax]
lea ecx, [ebp - 0x684]
push ecx
push 0x20019
push edi
push eax
push SysReAllocString
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x698], ebx
mov dword [ebp - 0x688], edi
mov dword [ebp - 0x690], ebx
xor esi, esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40fbf9
lea edx, [ebp - 0x690]
push edx
mov edx, dword [ebp - 0x680]
lea eax, [ebp - 0x688]
push eax
mov eax, dword [ebp - 0x684]
lea ecx, [ebp - 0x698]
push ecx
push edi
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40fbe8
lea esi, [eax + 1]
mov ecx, dword [ebp - 0x684]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp esi, edi
jne 0x40fbfd
xor esi, esi
jmp 0x40fc03
mov esi, dword [ebp - 0x688]
mov eax, dword [ebp - 0x694]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40fc25
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 - 0x680]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40fc4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp esi, edi
jne 0x40fc5d
mov ecx, dword [ebp - 0x68c]
mov dword [ecx + 0x4c4], edi
jmp 0x40fc6d
mov edx, dword [ebp - 0x68c]
mov dword [edx + 0x4c4], 1
mov ebx, dword [ebp - 0x68c]
mov eax, dword [ebx + 0x4c4]
push eax
push str.__m_bOffLineChecker_t_t__d_n
push 0x40000
push 0x5f2054
call fcn.00433010
add esp, 0x10
push ebx
call fcn.0040e080
push eax
push str.__Alarm_t_t_t_t__d__n
push 0x40000
push 0x5f2054
mov dword [ebx + 0x4bc], eax
call fcn.00433010
add esp, 0x10
call fcn.0040e5b0
mov dword [ebx + 0x18e8], eax
call fcn.0040e690
mov byte [ebx + 0x18ec], al
call fcn.0040e260
mov dword [ebx + 0x4c8], eax
call fcn.0040e370
mov dword [ebx + 0x19bc], eax
call fcn.0040e420
lea ecx, [ebp - 0x4c]
lea edx, [ebp - 0x88]
mov dword [ebx + 0x19c0], eax
call fcn.00419280
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 - 0x6a0], ecx
mov dword [eax + 0x6d0], ecx
fild dword [ebp - 0x6a0]
fmul qword [eax + 0x6a8]
call fcn.00563570
mov esi, ebx
mov ecx, dword [esi + 0x4cc]
add ecx, 0xfffffffe
mov dword [ebp - 0x6a0], ecx
fild dword [ebp - 0x6a0]
mov dword [ebx + 0x508], eax
mov eax, ebx
fmul qword [eax + 0x6b0]
mov dword [eax + 0x6cc], ecx
call fcn.00563570
push str._______________n
push 0x40000
push 0x5f2054
mov dword [esi + 0x4cc], eax
call fcn.00433010
push 0x5bea0c
push 0x40000
push 0x5f2054
call fcn.00433010
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x69c]
add eax, 0xfffffff0
add esp, 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40fdc9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x6c4]
mov byte [ebp - 4], 4
call fcn.004720a7
lea ecx, [ebp - 0x284]
call fcn.004026e0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x6a8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40fe09
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 - 0x6b0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40fe2f
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 - 0x6ac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40fe55
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 - 0x6a4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40fe7e
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.0055db96
mov esp, ebp
pop ebp
ret