Function at 0x418bc0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x433787
mov eax, dword fs:[0]
push eax
sub esp, 0x810
mov eax, dword [0x448034]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x7f0], eax
xor ebx, ebx
call fcn.0041d340
test al, al
mov ecx, 0x100
cmovne ebx, ecx
lea eax, [ebp - 0x6ac]
push eax
mov eax, ebx
or eax, 9
push eax
push 0
push str.SystemCurrentControlSetServices
push 0x80000002
mov dword [ebp - 0x7f4], ebx
mov dword [ebp - 0x6ac], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x419421
push 0x206
xor ebx, ebx
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push ebx
push eax
call sub.MSVCR110.dll_memset
add esp, 0xc
lea eax, [ebp - 0x638]
push ebx
push ebx
push ebx
push ebx
push eax
lea eax, [ebp - 0x21c]
push eax
push ebx
push dword [ebp - 0x6ac]
mov dword [ebp - 0x638], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp eax, 0x103
je 0x419419
inc ebx
mov dword [ebp - 0x7e8], ebx
test eax, eax
jne 0x4193d9
mov dword [ebp - 0x804], str.iSafeService
mov dword [ebp - 0x800], str.omigaplussvc
mov dword [ebp - 0x7fc], str.desksvc
mov dword [ebp - 0x7f8], str.winzipersvc
xor esi, esi
push dword [ebp + esi*4 - 0x804]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x4193e1
inc esi
cmp esi, 4
jb 0x418cd0
mov ebx, dword [ebp - 0x7f4]
lea eax, [ebp - 0x6a4]
push eax
or ebx, 1
push ebx
push 0
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x6ac]
mov dword [ebp - 0x6a4], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4193d3
push 0x40e
push eax
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x63c], eax
mov word [ebp - 0x62c], ax
lea eax, [ebp - 0x62a]
push eax
call sub.MSVCR110.dll_memset
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
add esp, 0xc
lea eax, [ebp - 0x6a8]
push eax
lea eax, [ebp - 0x640]
push eax
lea eax, [ebp - 0x630]
push eax
push 0
push str.Type
push dword [ebp - 0x6a4]
mov dword [ebp - 0x6a8], 4
mov dword [ebp - 0x630], 4
call esi
test eax, eax
je 0x418daa
push dword [ebp - 0x6a4]
call edi
mov ebx, dword [ebp - 0x7e8]
jmp 0x4193e1
test byte [ebp - 0x640], 0x30
jne 0x418dc6
push dword [ebp - 0x6a4]
call edi
mov ebx, dword [ebp - 0x7e8]
jmp 0x4193e1
lea eax, [ebp - 0x6a8]
push eax
lea eax, [ebp - 0x63c]
push eax
lea eax, [ebp - 0x630]
push eax
push 0
push str.Start
push dword [ebp - 0x6a4]
mov dword [ebp - 0x6a8], 4
mov dword [ebp - 0x630], 4
call esi
test eax, eax
je 0x418e15
push dword [ebp - 0x6a4]
call edi
mov ebx, dword [ebp - 0x7e8]
jmp 0x4193e1
mov eax, dword [ebp - 0x63c]
dec eax
cmp eax, 3
ja case.default.0x418e21
jmp dword [eax*4 + 0x419444]
mov dword [ebp - 0x7ec], 4
jmp 0x418e62
mov dword [ebp - 0x7ec], 2
jmp 0x418e62
mov dword [ebp - 0x7ec], 3
jmp 0x418e62
mov dword [ebp - 0x7ec], 1
jmp 0x418e62
mov dword [ebp - 0x7ec], 0
lea eax, [ebp - 0x6a8]
push eax
lea eax, [ebp - 0x634]
push eax
lea eax, [ebp - 0x630]
push eax
push 0
push str.WOW64
push dword [ebp - 0x6a4]
mov dword [ebp - 0x634], 0
mov dword [ebp - 0x6a8], 4
mov dword [ebp - 0x630], 4
call esi
test eax, eax
je 0x418f07
mov dword [ebp - 0x634], 0
xor esi, esi
lea eax, [ebp - 0x6a8]
push eax
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp - 0x630]
push eax
push 0
push str.ImagePath
push dword [ebp - 0x6a4]
mov dword [ebp - 0x6a8], 0x410
mov dword [ebp - 0x630], 1
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x418f20
push dword [ebp - 0x6a4]
call edi
mov ebx, dword [ebp - 0x7e8]
jmp 0x4193e1
cmp dword [ebp - 0x634], 1
jne 0x418eb2
call fcn.0041d340
test al, al
je 0x418eb2
mov esi, 1
jmp 0x418eb4
xor eax, eax
xorps xmm0, xmm0
mov dword [ebp - 0x7e4], 0
movq qword [ebp - 0x7e0], xmm0
mov dword [ebp - 0x7c4], 7
mov dword [ebp - 0x7c8], 0
mov word [ebp - 0x7d8], ax
mov dword [ebp - 0x7ac], 7
mov dword [ebp - 0x7b0], eax
mov word [ebp - 0x7c0], ax
mov dword [ebp - 0x7a8], eax
mov dword [ebp - 0x790], 7
mov dword [ebp - 0x794], eax
mov word [ebp - 0x7a4], ax
mov dword [ebp - 0x778], 7
mov dword [ebp - 0x77c], eax
mov word [ebp - 0x78c], ax
mov dword [ebp - 0x760], 7
mov dword [ebp - 0x764], eax
mov word [ebp - 0x774], ax
mov dword [ebp - 0x748], 7
mov dword [ebp - 0x74c], eax
mov word [ebp - 0x75c], ax
mov dword [ebp - 0x730], 7
mov dword [ebp - 0x734], eax
mov word [ebp - 0x744], ax
mov dword [ebp - 0x718], 7
mov dword [ebp - 0x71c], eax
mov word [ebp - 0x72c], ax
mov dword [ebp - 0x700], 7
mov dword [ebp - 0x704], eax
mov word [ebp - 0x714], ax
mov dword [ebp - 0x6e8], 7
mov dword [ebp - 0x6ec], eax
mov word [ebp - 0x6fc], ax
mov dword [ebp - 0x6d0], 7
mov dword [ebp - 0x6d4], eax
mov word [ebp - 0x6e4], ax
mov dword [ebp - 0x6b8], 7
mov dword [ebp - 0x6bc], eax
mov word [ebp - 0x6cc], ax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x7ec]
mov dword [ebp - 0x7dc], eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x7a4]
mov dword [ebp - 0x7e0], 2
call fcn.00406450
push str.HKEY_LOCAL_MACHINESystemCurrentControlSetServices
lea ecx, [ebp - 0x774]
call fcn.00406450
lea eax, [ebp - 0x62c]
push eax
lea ecx, [ebp - 0x75c]
call fcn.00406450
test esi, esi
jne 0x4190ae
lea edx, [esi + 1]
call fcn.004184f0
xor eax, eax
push 0xffffffffffffffff
push eax
mov word [ebp - 0x658], ax
lea eax, [ebp - 0x75c]
push eax
lea ecx, [ebp - 0x658]
mov dword [ebp - 0x644], 7
mov dword [ebp - 0x648], 0
call fcn.00402bb0
lea eax, [ebp - 0x75c]
push eax
lea ecx, [ebp - 0x6a0]
mov byte [ebp - 4], 1
call fcn.0041b150
lea eax, [ebp - 0x75c]
push eax
lea ecx, [ebp - 0x6a0]
mov byte [ebp - 4], 2
call fcn.0041b200
mov ecx, dword [ebp - 0x74c]
mov dword [ebp - 0x6a8], ecx
cmp ecx, 0xb
jbe 0x4192d3
cmp dword [ebp - 0x748], 8
lea eax, [ebp - 0x75c]
cmovae eax, dword [ebp - 0x75c]
push str.svchost.exe
lea eax, [eax + ecx*2]
add eax, 0xffffffea
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
je 0x419185
cmp dword [ebp - 0x748], 8
mov eax, dword [ebp - 0x6a8]
lea ecx, [ebp - 0x75c]
cmovae ecx, dword [ebp - 0x75c]
add eax, 0xfffffff9
push str.svchost
lea eax, [ecx + eax*2]
push eax
call dword [sym.imp.MSVCR110.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x4192d3
xor eax, eax
mov dword [ebp - 0x65c], 7
mov dword [ebp - 0x660], 0
mov word [ebp - 0x670], ax
lea eax, [ebp - 0x670]
push eax
lea eax, [ebp - 0x658]
push eax
mov byte [ebp - 4], 3
call fcn.00418570
lea eax, [ebp - 0x6b0]
push eax
push ebx
push 0
push str.Parameters
push dword [ebp - 0x6a4]
mov dword [ebp - 0x6b0], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4192c4
lea eax, [ebp - 0x6a8]
push eax
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp - 0x630]
push eax
push 0
push str.ServiceDll
push dword [ebp - 0x6b0]
mov dword [ebp - 0x6a8], 0x410
mov dword [ebp - 0x630], 1
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x419277
push dword [ebp - 0x6a4]
call edi
test esi, esi
jne 0x419239
xor edx, edx
call fcn.004184f0
lea ecx, [ebp - 0x670]
call fcn.00402800
lea ecx, [ebp - 0x6a0]
call fcn.00402800
lea ecx, [ebp - 0x658]
call fcn.00402800
lea ecx, [ebp - 0x7e4]
mov dword [ebp - 4], 0xffffffff
call fcn.00415ce0
mov ebx, dword [ebp - 0x7e8]
jmp 0x4193e1
lea eax, [ebp - 0x62c]
push eax
lea ecx, [ebp - 0x75c]
call fcn.00406450
lea eax, [ebp - 0x75c]
push eax
lea ecx, [ebp - 0x688]
call fcn.0041b150
lea eax, [ebp - 0x75c]
push eax
lea ecx, [ebp - 0x688]
mov byte [ebp - 4], 4
call fcn.0041b200
push dword [ebp - 0x6b0]
call edi
lea ecx, [ebp - 0x688]
call fcn.00402800
lea ecx, [ebp - 0x670]
mov byte [ebp - 4], 2
call fcn.00402800
lea eax, [ebp - 0x72c]
push eax
push str.Description
push dword [ebp - 0x6a4]
call fcn.00418880
lea eax, [ebp - 0x6fc]
push eax
push str.DisplayName
push dword [ebp - 0x6a4]
call fcn.00418880
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x6fc]
push eax
lea ecx, [ebp - 0x6e4]
call fcn.00402bb0
cmp dword [ebp - 0x71c], 0
jne 0x419336
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x6e4]
push eax
lea ecx, [ebp - 0x72c]
call fcn.00402bb0
test esi, esi
jne 0x419341
xor edx, edx
call fcn.004184f0
push dword [ebp - 0x6a4]
call edi
mov edx, dword [ebp - 0x7dc]
lea ecx, [ebp - 0x688]
call fcn.00418640
push eax
lea ecx, [ebp - 0x7d8]
call fcn.004027c0
lea ecx, [ebp - 0x688]
call fcn.00402800
lea edx, [ebp - 0x7a4]
lea ecx, [ebp - 0x81c]
call fcn.004186e0
push eax
lea ecx, [ebp - 0x7c0]
call fcn.004027c0
lea ecx, [ebp - 0x81c]
call fcn.00402800
mov ecx, dword [ebp - 0x7f0]
lea eax, [ebp - 0x7e4]
push eax
call fcn.00419480
lea ecx, [ebp - 0x6a0]
call fcn.00402800
lea ecx, [ebp - 0x658]
call fcn.00402800
lea ecx, [ebp - 0x7e4]
mov dword [ebp - 4], 0xffffffff
call fcn.00415ce0
mov ebx, dword [ebp - 0x7e8]
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x638]
push eax
lea eax, [ebp - 0x21c]
push eax
push ebx
push dword [ebp - 0x6ac]
mov dword [ebp - 0x638], 0x104
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
jne 0x418c97
push dword [ebp - 0x6ac]
call edi
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0042ef5e
mov esp, ebp
pop ebp
ret 4