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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2744
call fcn.004d9280
mov eax, dword [0x4f72bc]
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.004d29c0
add esp, 0xc
mov dword [ebp - 0x2714], 0x104
mov dword [ebp - 0x270c], esi
cmp dword [0x505890], esi
je 0x40119b
call fcn.004c2580
mov eax, dword [0x506e0c]
mov dword [0x505890], esi
cmp eax, esi
je 0x4011c0
mov ecx, dword [0x4f8b78]
mov dword [ebp - 0x271c], ecx
mov dword [0x4f8b78], 0x20219
mov dword [ebp - 0x26f8], esi
cmp eax, esi
je 0x4011d6
mov edx, dword [0x4f8b78]
mov dword [ebp - 0x271c], edx
mov dword [ebp - 0x2704], esi
jmp 0x4011e5
mov eax, dword [0x506e0c]
cmp dword [ebp - 0x2704], 1
jne 0x401200
test eax, eax
je 0x401b32
mov dword [0x4f8b78], 0x20119
mov ecx, dword [0x4f8b78]
lea eax, [ebp - 0x26f4]
push eax
push ecx
xor ebx, ebx
push ebx
lea edx, [ebp - 0x2c8]
push edx
push CreateStatusWindowA
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x401443
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 0x40142b
lea eax, [ebp - 0x8d0]
push eax
lea ecx, [ebp - 0x140]
lea edx, [ebp - 0x3c8]
call fcn.004c0d10
add esp, 4
test eax, eax
je 0x401231
cmp dword [ebp - 0x2704], 1
jne 0x4012f2
mov eax, 0x400
lea ecx, [ebp - 0x8d0]
mov edi, edi
cmp byte [ecx], bl
je 0x4012ca
inc ecx
dec eax
jne 0x4012c0
jmp 0x4012f2
cmp eax, ebx
je 0x4012f2
mov ecx, 0x400
sub ecx, eax
mov eax, 0x400
sub eax, ecx
push str.__x64_
lea ecx, [ebp + ecx - 0x8d0]
mov edx, 0x7fffffff
call fcn.004010b0
mov dword [ebp - 0x2718], ebx
cmp esi, ebx
jle 0x4013f6
mov ecx, dword [ebx*4 + 0x501878]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
test edi, edi
je 0x4013bf
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [ebp - 0x4d0]
test eax, eax
mov edx, 0x80
mov eax, ecx
jne 0x40136b
mov esi, str.Title_Not_Found
sub esi, ecx
jmp 0x401340
lea ecx, [edx + 0x7fffff7e]
test ecx, ecx
je 0x40135f
mov cl, byte [esi + eax]
test cl, cl
je 0x40135f
mov byte [eax], cl
inc eax
dec edx
jne 0x401340
dec eax
push str.Title_Not_Found
jmp 0x40138f
test edx, edx
jne 0x401364
dec eax
push str.Title_Not_Found
jmp 0x40138f
mov esi, edi
sub esi, ecx
nop
lea ecx, [edx + 0x7fffff7e]
test ecx, ecx
je 0x401389
mov cl, byte [esi + eax]
test cl, cl
je 0x401389
mov byte [eax], cl
inc eax
dec edx
jne 0x401370
jmp 0x40138d
test edx, edx
jne 0x40138e
dec eax
push edi
mov byte [eax], 0
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push str.Title
lea esi, [ebp - 0x4d0]
call fcn.0047da70
mov edx, dword [ebx*4 + 0x501878]
add esp, 4
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov esi, dword [ebp - 0x26f8]
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x8d0]
push ecx
call fcn.00483650
test eax, eax
jne 0x4013e0
mov dword [ebp - 0x2718], 1
inc ebx
cmp ebx, esi
jl 0x401300
cmp dword [ebp - 0x2718], 0
jne 0x401231
push 0
push 0x384
lea edx, [ebp - 0x12f0]
push edx
lea eax, [ebp - 0x3c8]
push eax
lea edx, [ebp - 0x140]
lea ecx, [ebp - 0x8d0]
call fcn.004c1eb0
add esp, 0x10
inc esi
mov dword [ebp - 0x26f8], esi
jmp 0x401231
cmp eax, 0x103
jne 0x401231
mov ecx, dword [ebp - 0x26f4]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [0x4f8b78]
lea edx, [ebp - 0x26f4]
push edx
push eax
push ebx
lea ecx, [ebp - 0x170]
push ecx
push CreateStatusWindowA
mov dword [0x505890], esi
mov dword [ebp - 0x26fc], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, ebx
jne 0x4016e9
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 0x4016dc
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 0x4016d6
cmp eax, 0x103
je 0x4016d6
test eax, eax
jne 0x4014d7
lea eax, [ebp - 0x8d0]
push eax
lea ecx, [ebp - 0x140]
lea edx, [ebp - 0xce8]
call fcn.004c0d10
add esp, 4
test eax, eax
je 0x4014d7
push 0x1400
lea ecx, [ebp - 0x26f0]
push 0
push ecx
call fcn.004d29c0
lea edx, [ebp - 0x140]
add esp, 0xc
push edx
lea ecx, [ebp - 0x26f0]
call fcn.004c0890
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 0x4015af
mov cl, byte [edx + eax]
test cl, cl
je 0x4015af
mov byte [eax], cl
inc eax
dec esi
jne 0x401596
jmp 0x4015b3
test esi, esi
jne 0x4015b4
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 0x401659
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 0x4015fc
mov cl, byte [esi + eax]
test cl, cl
je 0x4015fc
mov byte [eax], cl
inc eax
dec edx
jne 0x4015e3
jmp 0x401600
test edx, edx
jne 0x401601
dec eax
lea edx, [ebp - 0xae0]
push edx
mov byte [eax], 0
call edi
test eax, eax
je 0x401621
cmp byte [ebp + eax - 0xae0], 0x5c
je 0x401620
dec eax
jne 0x401611
jmp 0x401621
inc eax
movzx ecx, ax
movzx esi, cx
lea eax, [ebp - 0x8d0]
mov ecx, eax
sub esi, ecx
mov edx, 0x400
lea esi, [ebp + esi - 0x140]
lea ecx, [ecx]
lea ecx, [edx + 0x7ffffbfe]
test ecx, ecx
je 0x401689
mov cl, byte [esi + eax]
test cl, cl
je 0x401689
mov byte [eax], cl
inc eax
dec edx
jne 0x401640
jmp 0x40168d
lea eax, [ebp - 0x8d0]
lea esi, [ebp - 0x26f0]
mov ecx, eax
mov edx, 0x400
sub esi, ecx
mov edi, edi
lea ecx, [edx + 0x7ffffbfe]
test ecx, ecx
je 0x401689
mov cl, byte [esi + eax]
test cl, cl
je 0x401689
mov byte [eax], cl
inc eax
dec edx
jne 0x401670
jmp 0x40168d
test edx, edx
jne 0x40168e
dec eax
lea edx, [ebp - 0x8d0]
push edx
mov byte [eax], 0
call edi
test eax, eax
jle 0x4014d7
push 0
push 0x385
lea eax, [ebp - 0x22f0]
push eax
lea ecx, [ebp - 0xce8]
push ecx
lea edx, [ebp - 0x140]
lea ecx, [ebp - 0x8d0]
call fcn.004c1eb0
add esp, 0x10
inc dword [ebp - 0x26f8]
jmp 0x4014d7
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 0x4011e0
cmp dword [0x506e0c], 0
je 0x401713
mov eax, dword [ebp - 0x271c]
mov dword [0x4f8b78], eax
mov edx, dword [0x4f8b78]
lea ecx, [ebp - 0x26f4]
push ecx
push edx
push 0
lea eax, [ebp - 0x34]
push eax
push CreateStatusWindowA
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401b2c
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 0x401b1f
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 0x401b19
cmp eax, 0x103
je 0x401b19
test eax, eax
jne 0x4017a4
mov byte [ebp - 0x8d0], 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 0x401840
lea ecx, [edx + 0x7ffffeff]
test ecx, ecx
je 0x401859
mov cl, byte [esi + eax]
test cl, cl
je 0x401859
mov byte [eax], cl
inc eax
dec edx
jne 0x401840
jmp 0x40185d
test edx, edx
jne 0x40185e
dec eax
mov byte [eax], 0
mov eax, 0xff
lea ecx, [ebp - 0x278]
lea esp, [esp]
cmp byte [ecx], 0
je 0x40187b
inc ecx
dec eax
jne 0x401870
jmp 0x4018c0
test eax, eax
je 0x4018c0
mov edx, 0xff
sub edx, eax
mov ecx, 0xff
sub ecx, edx
lea eax, [ebp + edx - 0x278]
je 0x4018bc
mov edi, 0x4e28bc
lea esi, [ecx + edx + 0x7fffff00]
sub edi, eax
test esi, esi
je 0x4018b8
mov dl, byte [eax + edi]
test dl, dl
je 0x4018b8
mov byte [eax], dl
inc eax
dec esi
dec ecx
jne 0x4018a4
jmp 0x4018bc
test ecx, ecx
jne 0x4018bd
dec eax
mov byte [eax], 0
mov eax, 0xff
lea ecx, [ebp - 0x278]
jmp 0x4018d0
cmp byte [ecx], 0
je 0x4018db
inc ecx
dec eax
jne 0x4018d0
jmp 0x401921
test eax, eax
je 0x401921
mov edx, 0xff
sub edx, eax
mov ecx, 0xff
sub ecx, edx
lea eax, [ebp + edx - 0x278]
je 0x40191d
lea edi, [ebp - 0x3c8]
lea esi, [ecx + edx + 0x7fffff00]
sub edi, eax
test esi, esi
je 0x401919
mov dl, byte [eax + edi]
test dl, dl
je 0x401919
mov byte [eax], dl
inc eax
dec esi
dec ecx
jne 0x401905
jmp 0x40191d
test ecx, ecx
jne 0x40191e
dec eax
mov byte [eax], 0
push 0x104
lea edx, [ebp - 0x278]
push str.ButtonText
push edx
lea ecx, [ebp - 0x8d0]
mov edx, CreateStatusWindowA
call fcn.004bff10
add esp, 0xc
test eax, eax
je 0x4017a4
lea eax, [ebp - 0x8d0]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4017a4
mov edx, str.shdoclc.dll
lea ecx, [ebp - 0x8d0]
call fcn.0047bb80
test eax, eax
je 0x401990
push str.Related
mov edx, 0x7ffffffe
mov eax, 0x400
lea ecx, [ebp - 0x8d0]
call fcn.004010b0
push 0x104
lea ecx, [ebp - 0x278]
push str.Exec
push ecx
lea ecx, [ebp - 0x140]
mov edx, CreateStatusWindowA
call fcn.004bff10
add esp, 0xc
test eax, eax
jne 0x4019dc
push 0x104
lea edx, [ebp - 0x278]
push str.script
push edx
lea ecx, [ebp - 0x140]
mov edx, CreateStatusWindowA
call fcn.004bff10
add esp, 0xc
push 0x104
lea eax, [ebp - 0x278]
push str.HotIcon
push eax
lea ecx, [ebp - 0x9d8]
mov edx, CreateStatusWindowA
call fcn.004bff10
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
add esp, 0xc
lea ecx, [ebp - 0x9d8]
push ecx
call esi
test eax, eax
jne 0x401a2f
lea edx, [ebp - 0x140]
push edx
mov edx, 0x7ffffffe
mov eax, 0x104
lea ecx, [ebp - 0x9d8]
call fcn.004010b0
push 0x1400
lea eax, [ebp - 0x26f0]
push 0
push eax
call fcn.004d29c0
lea ecx, [ebp - 0xef0]
add esp, 0xc
push ecx
lea ecx, [ebp - 0x140]
call fcn.0047cea0
lea edx, [ebp - 0xef0]
add esp, 4
push edx
lea ecx, [ebp - 0x26f0]
call fcn.004c0890
add esp, 4
test eax, eax
je 0x401ad4
lea eax, [ebp - 0x1ef0]
push eax
mov edx, 0x7ffffffe
mov eax, 0x400
lea ecx, [ebp - 0x12f0]
call fcn.004010b0
lea ecx, [ebp - 0x26f0]
push ecx
call esi
test eax, eax
jne 0x401ab8
lea edx, [ebp - 0x140]
push edx
call fcn.0047ce20
movzx eax, ax
add esp, 4
lea ecx, [ebp + eax - 0x140]
push ecx
jmp 0x401abf
lea edx, [ebp - 0x26f0]
push edx
mov edx, 0x7ffffffe
mov eax, 0x400
lea ecx, [ebp - 0x8d0]
call fcn.004010b0
lea eax, [ebp - 0x8d0]
push eax
call esi
test eax, eax
je 0x4017a4
push 0
push 0x386
lea ecx, [ebp - 0x9d8]
push ecx
lea edx, [ebp - 0x140]
push edx
lea edx, [ebp - 0x3c8]
lea ecx, [ebp - 0x8d0]
call fcn.004c1eb0
add esp, 0x10
inc dword [ebp - 0x26f8]
jmp 0x4017a4
mov esi, dword [ebp - 0x26f8]
mov eax, dword [ebp - 0x26f4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [0x505890], esi
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.004cf2b6
mov esp, ebp
pop ebp
ret