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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2744
call fcn.004a9b70
mov eax, dword [0x4c32cc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ecx, 0x12
mov esi, str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser_Helper_Objects
lea edi, [ebp - 0x2c8]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov ecx, 0xc
mov esi, str.SOFTWAREMicrosoftInternet_ExplorerExtensions
lea edi, [ebp - 0x34]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xb
mov esi, str.SOFTWAREMicrosoftInternet_ExplorerToolbar
lea edi, [ebp - 0x170]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 0x103
xor esi, esi
lea eax, [ebp - 0xbe7]
push esi
push eax
mov byte [ebp - 0xbe8], 0
call fcn.004a3190
add esp, 0xc
mov dword [ebp - 0x2714], 0x104
mov dword [ebp - 0x270c], esi
cmp dword [0x4cd38c], esi
je 0x4010eb
call fcn.0048fcc0
mov eax, dword [0x4d2afc]
mov dword [0x4cd38c], esi
cmp eax, esi
je 0x401110
mov ecx, dword [0x4c6444]
mov dword [ebp - 0x271c], ecx
mov dword [0x4c6444], 0x20219
mov dword [ebp - 0x26f8], esi
cmp eax, esi
je 0x401126
mov edx, dword [0x4c6444]
mov dword [ebp - 0x271c], edx
mov dword [ebp - 0x2704], esi
jmp 0x401135
mov eax, dword [0x4d2afc]
cmp dword [ebp - 0x2704], 1
jne 0x401150
test eax, eax
je 0x401a72
mov dword [0x4c6444], 0x20119
mov ecx, dword [0x4c6444]
lea eax, [ebp - 0x26f4]
push eax
push ecx
xor ebx, ebx
push ebx
lea edx, [ebp - 0x2c8]
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x401380
mov dword [ebp - 0x26fc], ebx
mov edi, dword [ebp - 0x26fc]
mov eax, 0x100
mov dword [ebp - 0x2708], eax
mov dword [ebp - 0x2700], eax
lea eax, [ebp - 0x2740]
push eax
lea ecx, [ebp - 0x2708]
push ecx
lea edx, [ebp - 0xde8]
push edx
mov edx, dword [ebp - 0x26f4]
xor ebx, ebx
push ebx
lea eax, [ebp - 0x2700]
push eax
lea ecx, [ebp - 0x3c8]
push ecx
push edi
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
inc edi
mov dword [ebp - 0x26fc], edi
cmp eax, ebx
jne 0x401368
lea eax, [ebp - 0x7c8]
push eax
lea ecx, [ebp - 0x140]
lea edx, [ebp - 0x3c8]
call fcn.0048ee50
add esp, 4
test eax, eax
je 0x401181
cmp dword [ebp - 0x2704], 1
jne 0x401242
mov eax, 0x400
lea ecx, [ebp - 0x7c8]
mov edi, edi
cmp byte [ecx], bl
je 0x40121a
inc ecx
dec eax
jne 0x401210
jmp 0x401242
cmp eax, ebx
je 0x401242
mov ecx, 0x400
sub ecx, eax
mov eax, 0x400
sub eax, ecx
push str.__x64_
lea ecx, [ebp + ecx - 0x7c8]
mov edx, 0x7fffffff
call fcn.00401000
mov dword [ebp - 0x2718], ebx
cmp esi, ebx
jle 0x401333
mov ecx, dword [ebx*4 + 0x4cd390]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
test edi, edi
je 0x4012fc
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x8d0]
test eax, eax
mov edx, 0x80
mov eax, ecx
jne 0x4012bb
mov esi, str.Title_Not_Found
sub esi, ecx
jmp 0x401290
lea ecx, [edx + 0x7fffff7e]
test ecx, ecx
je 0x4012af
mov cl, byte [esi + eax]
test cl, cl
je 0x4012af
mov byte [eax], cl
inc eax
dec edx
jne 0x401290
dec eax
push str.Title_Not_Found
jmp 0x4012df
test edx, edx
jne 0x4012b4
dec eax
push str.Title_Not_Found
jmp 0x4012df
mov esi, edi
sub esi, ecx
nop
lea ecx, [edx + 0x7fffff7e]
test ecx, ecx
je 0x4012d9
mov cl, byte [esi + eax]
test cl, cl
je 0x4012d9
mov byte [eax], cl
inc eax
dec edx
jne 0x4012c0
jmp 0x4012dd
test edx, edx
jne 0x4012de
dec eax
push edi
mov byte [eax], 0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edx, dword [ebx*4 + 0x4cd390]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov esi, dword [ebp - 0x26f8]
lea eax, [ebp - 0x8d0]
push eax
lea ecx, [ebp - 0x7c8]
push ecx
call fcn.00483b10
test eax, eax
jne 0x40131d
mov dword [ebp - 0x2718], 1
inc ebx
cmp ebx, esi
jl 0x401250
cmp dword [ebp - 0x2718], 0
jne 0x401181
push 0
push 0x384
lea edx, [ebp - 0x12f0]
push edx
lea eax, [ebp - 0x3c8]
push eax
lea edx, [ebp - 0x140]
lea ecx, [ebp - 0x7c8]
call fcn.0048f730
add esp, 0x10
inc esi
mov dword [ebp - 0x26f8], esi
jmp 0x401181
cmp eax, 0x103
jne 0x401181
mov ecx, dword [ebp - 0x26f4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x4c6444]
lea edx, [ebp - 0x26f4]
push edx
push eax
push ebx
lea ecx, [ebp - 0x170]
push ecx
push 0x80000002
mov dword [0x4cd38c], esi
mov dword [ebp - 0x26fc], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x401629
lea edx, [ebp - 0x2738]
push edx
lea eax, [ebp - 0x2730]
push eax
lea ecx, [ebp - 0x272c]
push ecx
lea edx, [ebp - 0x2724]
push edx
lea eax, [ebp - 0x2710]
push eax
lea ecx, [ebp - 0x2728]
push ecx
lea edx, [ebp - 0x2720]
push edx
lea eax, [ebp - 0x270c]
push eax
mov eax, dword [ebp - 0x26f4]
push ebx
lea ecx, [ebp - 0x2714]
push ecx
lea edx, [ebp - 0xbe8]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
cmp dword [ebp - 0x2710], ebx
je 0x40161c
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2700]
push ecx
mov eax, 0xff
lea edx, [ebp - 0xce8]
push edx
mov dword [ebp - 0x2708], eax
mov dword [ebp - 0x2700], eax
mov eax, dword [ebp - 0x26f4]
push ebx
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov ecx, dword [ebp - 0x26fc]
mov edx, ecx
inc ecx
inc ebx
mov dword [ebp - 0x26fc], ecx
cmp edx, dword [ebp - 0x2710]
ja 0x401616
cmp eax, 0x103
je 0x401616
test eax, eax
jne 0x401414
lea eax, [ebp - 0x7c8]
push eax
lea ecx, [ebp - 0x140]
lea edx, [ebp - 0xce8]
call fcn.0048ee50
add esp, 4
test eax, eax
je 0x401414
push 0x1400
lea ecx, [ebp - 0x26f0]
push 0
push ecx
call fcn.004a3190
lea edx, [ebp - 0x140]
add esp, 0xc
push edx
lea ecx, [ebp - 0x26f0]
call fcn.0048e9d0
lea eax, [ebp - 0x12f0]
lea edx, [ebp - 0x1ef0]
mov ecx, eax
add esp, 4
mov esi, 0x400
sub edx, ecx
lea ecx, [esi + 0x7ffffbfe]
test ecx, ecx
je 0x4014ec
mov cl, byte [edx + eax]
test cl, cl
je 0x4014ec
mov byte [eax], cl
inc eax
dec esi
jne 0x4014d3
jmp 0x4014f0
test esi, esi
jne 0x4014f1
dec eax
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [ebp - 0x26f0]
push edx
mov byte [eax], 0
call edi
test eax, eax
jne 0x401599
lea eax, [ebp - 0xae0]
lea esi, [ebp - 0x140]
mov ecx, eax
mov edx, 0x104
sub esi, ecx
lea ecx, [edx + 0x7ffffefa]
test ecx, ecx
je 0x401539
mov cl, byte [esi + eax]
test cl, cl
je 0x401539
mov byte [eax], cl
inc eax
dec edx
jne 0x401520
jmp 0x40153d
test edx, edx
jne 0x40153e
dec eax
lea edx, [ebp - 0xae0]
push edx
mov byte [eax], 0
call edi
test eax, eax
je 0x401560
mov edi, edi
cmp byte [ebp + eax - 0xae0], 0x5c
je 0x40155f
dec eax
jne 0x401550
jmp 0x401560
inc eax
movzx ecx, ax
movzx esi, cx
lea eax, [ebp - 0x7c8]
mov ecx, eax
sub esi, ecx
mov edx, 0x400
lea esi, [ebp + esi - 0x140]
lea esp, [esp]
lea ecx, [edx + 0x7ffffbfe]
test ecx, ecx
je 0x4015c9
mov cl, byte [esi + eax]
test cl, cl
je 0x4015c9
mov byte [eax], cl
inc eax
dec edx
jne 0x401580
jmp 0x4015cd
lea eax, [ebp - 0x7c8]
lea esi, [ebp - 0x26f0]
mov ecx, eax
mov edx, 0x400
sub esi, ecx
mov edi, edi
lea ecx, [edx + 0x7ffffbfe]
test ecx, ecx
je 0x4015c9
mov cl, byte [esi + eax]
test cl, cl
je 0x4015c9
mov byte [eax], cl
inc eax
dec edx
jne 0x4015b0
jmp 0x4015cd
test edx, edx
jne 0x4015ce
dec eax
lea edx, [ebp - 0x7c8]
push edx
mov byte [eax], 0
call edi
test eax, eax
jle 0x401414
push 0
push 0x385
lea eax, [ebp - 0x22f0]
push eax
lea ecx, [ebp - 0xce8]
push ecx
lea edx, [ebp - 0x140]
lea ecx, [ebp - 0x7c8]
call fcn.0048f730
add esp, 0x10
inc dword [ebp - 0x26f8]
jmp 0x401414
mov esi, dword [ebp - 0x26f8]
mov edx, dword [ebp - 0x26f4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x2704]
inc eax
mov dword [ebp - 0x2704], eax
cmp eax, 2
jl 0x401130
cmp dword [0x4d2afc], 0
je 0x401653
mov eax, dword [ebp - 0x271c]
mov dword [0x4c6444], eax
mov edx, dword [0x4c6444]
lea ecx, [ebp - 0x26f4]
push ecx
push edx
push 0
lea eax, [ebp - 0x34]
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401a6c
lea ecx, [ebp - 0x2738]
push ecx
lea edx, [ebp - 0x2730]
push edx
lea eax, [ebp - 0x272c]
push eax
lea ecx, [ebp - 0x2724]
push ecx
lea edx, [ebp - 0x2710]
push edx
lea eax, [ebp - 0x2728]
push eax
lea ecx, [ebp - 0x2720]
push ecx
lea edx, [ebp - 0x270c]
push edx
mov edx, dword [ebp - 0x26f4]
push 0
lea eax, [ebp - 0x2714]
push eax
lea ecx, [ebp - 0xbe8]
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
cmp dword [ebp - 0x270c], 0
je 0x401a5f
xor ebx, ebx
mov dword [ebp - 0x26fc], ebx
mov eax, 0xff
mov dword [ebp - 0x2708], eax
mov dword [ebp - 0x2700], eax
lea eax, [ebp - 0x2740]
push eax
lea ecx, [ebp - 0x2708]
push ecx
lea edx, [ebp - 0xde8]
push edx
mov edx, dword [ebp - 0x26f4]
push 0
lea eax, [ebp - 0x2700]
push eax
lea ecx, [ebp - 0x3c8]
push ecx
push ebx
push edx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov ecx, dword [ebp - 0x26fc]
mov edx, ecx
inc ecx
inc ebx
mov dword [ebp - 0x26fc], ecx
cmp edx, dword [ebp - 0x270c]
ja 0x401a59
cmp eax, 0x103
je 0x401a59
test eax, eax
jne 0x4016e4
mov byte [ebp - 0x7c8], al
mov byte [ebp - 0x12f0], al
mov byte [ebp - 0x140], al
lea eax, [ebp - 0x278]
lea esi, [ebp - 0x34]
mov ecx, eax
mov edx, 0xff
sub esi, ecx
jmp 0x401780
lea ecx, [edx + 0x7ffffeff]
test ecx, ecx
je 0x401799
mov cl, byte [esi + eax]
test cl, cl
je 0x401799
mov byte [eax], cl
inc eax
dec edx
jne 0x401780
jmp 0x40179d
test edx, edx
jne 0x40179e
dec eax
mov byte [eax], 0
mov eax, 0xff
lea ecx, [ebp - 0x278]
lea esp, [esp]
cmp byte [ecx], 0
je 0x4017bb
inc ecx
dec eax
jne 0x4017b0
jmp 0x401800
test eax, eax
je 0x401800
mov edx, 0xff
sub edx, eax
mov ecx, 0xff
sub ecx, edx
lea eax, [ebp + edx - 0x278]
je 0x4017fc
mov edi, 0x4b17dc
lea esi, [ecx + edx + 0x7fffff00]
sub edi, eax
test esi, esi
je 0x4017f8
mov dl, byte [eax + edi]
test dl, dl
je 0x4017f8
mov byte [eax], dl
inc eax
dec esi
dec ecx
jne 0x4017e4
jmp 0x4017fc
test ecx, ecx
jne 0x4017fd
dec eax
mov byte [eax], 0
mov eax, 0xff
lea ecx, [ebp - 0x278]
jmp 0x401810
cmp byte [ecx], 0
je 0x40181b
inc ecx
dec eax
jne 0x401810
jmp 0x401861
test eax, eax
je 0x401861
mov edx, 0xff
sub edx, eax
mov ecx, 0xff
sub ecx, edx
lea eax, [ebp + edx - 0x278]
je 0x40185d
lea edi, [ebp - 0x3c8]
lea esi, [ecx + edx + 0x7fffff00]
sub edi, eax
test esi, esi
je 0x401859
mov dl, byte [eax + edi]
test dl, dl
je 0x401859
mov byte [eax], dl
inc eax
dec esi
dec ecx
jne 0x401845
jmp 0x40185d
test ecx, ecx
jne 0x40185e
dec eax
mov byte [eax], 0
push 0x104
lea edx, [ebp - 0x278]
push str.ButtonText
push edx
lea ecx, [ebp - 0x7c8]
mov edx, 0x80000002
call fcn.0048e050
add esp, 0xc
test eax, eax
je 0x4016e4
lea eax, [ebp - 0x7c8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4016e4
mov edx, str.shdoclc.dll
lea ecx, [ebp - 0x7c8]
call fcn.0047dee0
test eax, eax
je 0x4018d0
push str.Related
mov edx, 0x7ffffffe
mov eax, 0x400
lea ecx, [ebp - 0x7c8]
call fcn.00401000
push 0x104
lea ecx, [ebp - 0x278]
push str.Exec
push ecx
lea ecx, [ebp - 0x140]
mov edx, 0x80000002
call fcn.0048e050
add esp, 0xc
test eax, eax
jne 0x40191c
push 0x104
lea edx, [ebp - 0x278]
push str.script
push edx
lea ecx, [ebp - 0x140]
mov edx, 0x80000002
call fcn.0048e050
add esp, 0xc
push 0x104
lea eax, [ebp - 0x278]
push str.HotIcon
push eax
lea ecx, [ebp - 0x9d8]
mov edx, 0x80000002
call fcn.0048e050
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0xc
lea ecx, [ebp - 0x9d8]
push ecx
call esi
test eax, eax
jne 0x40196f
lea edx, [ebp - 0x140]
push edx
mov edx, 0x7ffffffe
mov eax, 0x104
lea ecx, [ebp - 0x9d8]
call fcn.00401000
push 0x1400
lea eax, [ebp - 0x26f0]
push 0
push eax
call fcn.004a3190
lea ecx, [ebp - 0xef0]
add esp, 0xc
push ecx
lea ecx, [ebp - 0x140]
call fcn.0047f1b0
lea edx, [ebp - 0xef0]
add esp, 4
push edx
lea ecx, [ebp - 0x26f0]
call fcn.0048e9d0
add esp, 4
test eax, eax
je 0x401a14
lea eax, [ebp - 0x1ef0]
push eax
mov edx, 0x7ffffffe
mov eax, 0x400
lea ecx, [ebp - 0x12f0]
call fcn.00401000
lea ecx, [ebp - 0x26f0]
push ecx
call esi
test eax, eax
jne 0x4019f8
lea edx, [ebp - 0x140]
push edx
call fcn.0047f140
movzx eax, ax
add esp, 4
lea ecx, [ebp + eax - 0x140]
push ecx
jmp 0x4019ff
lea edx, [ebp - 0x26f0]
push edx
mov edx, 0x7ffffffe
mov eax, 0x400
lea ecx, [ebp - 0x7c8]
call fcn.00401000
lea eax, [ebp - 0x7c8]
push eax
call esi
test eax, eax
je 0x4016e4
push 0
push 0x386
lea ecx, [ebp - 0x9d8]
push ecx
lea edx, [ebp - 0x140]
push edx
lea edx, [ebp - 0x3c8]
lea ecx, [ebp - 0x7c8]
call fcn.0048f730
add esp, 0x10
inc dword [ebp - 0x26f8]
jmp 0x4016e4
mov esi, dword [ebp - 0x26f8]
mov eax, dword [ebp - 0x26f4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [0x4cd38c], esi
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.004a01d6
mov esp, ebp
pop ebp
ret