Function at 0x101a2960
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2090
call fcn.101f99e0
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov dword [ebp - 0x205c], ecx
mov dword [ebp - 0x2054], 0
mov dword [ebp - 0x2050], 0
mov dword [ebp - 0x204c], 0xffffffff
call fcn.100ddff0
mov esi, str.SoftwareMicrosoftWindowsCurrentVersionExplorerStartPage2
test eax, eax
jne 0x101a29b1
mov esi, str.SoftwareMicrosoftWindowsCurrentVersionExplorerStartPage
lea ecx, [ebp - 0x2054]
call fcn.10008220
push 0xf003f
push esi
lea eax, [ebp - 0x2054]
push SysReAllocString
push eax
mov ecx, eax
call fcn.1000a260
mov edi, dword [ebp - 0x2050]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 0x2028], 0
mov dword [ebp - 0x2020], 0
test edi, edi
je 0x101a2a64
call fcn.10003180
mov esi, dword [eax + 0x154]
test esi, esi
je 0x101a2a0b
push esi
call ebx
push 0x41
call fcn.10003680
add esp, 4
test eax, eax
je 0x101a2a35
lea ecx, [ebp - 0x2020]
push ecx
push 0
lea ecx, [ebp - 0x2028]
push ecx
push 0
push str.Favorites
push edi
call eax
jmp 0x101a2a53
lea eax, [ebp - 0x2020]
push eax
push 0
lea eax, [ebp - 0x2028]
push eax
push 0
push str.Favorites
push edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
test esi, esi
je 0x101a2a60
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x101a2add
mov edi, dword [ebp - 0x2054]
test edi, edi
je 0x101a2add
mov dword [ebp - 0x2020], 0
call fcn.10003180
mov esi, dword [eax + 0x154]
test esi, esi
je 0x101a2a8a
push esi
call ebx
push 0x41
call fcn.10003680
add esp, 4
test eax, eax
je 0x101a2ab4
lea ecx, [ebp - 0x2020]
push ecx
push 0
lea ecx, [ebp - 0x2028]
push ecx
push 0
push str.Favorites
push edi
call eax
jmp 0x101a2ad2
lea eax, [ebp - 0x2020]
push eax
push 0
lea eax, [ebp - 0x2028]
push eax
push 0
push str.Favorites
push edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test esi, esi
je 0x101a2add
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x2020]
test eax, eax
je 0x101a2e70
add eax, 8
push 0x1025c02a
push eax
call fcn.101c85a0
mov esi, eax
add esp, 8
mov dword [ebp - 0x2058], esi
test esi, esi
je 0x101a2e70
lea eax, [ebp - 0x2020]
push eax
push esi
lea eax, [ebp - 0x2028]
push eax
push str.Favorites
lea ecx, [ebp - 0x2054]
call fcn.100263b0
mov ebx, dword [esi + 1]
lea edi, [esi + 1]
mov eax, dword [ebp - 0x2020]
add eax, esi
lea ecx, [ebx + edi]
cmp ecx, eax
ja 0x101a2e67
xor eax, eax
lea edx, [ebp - 0x2024]
push edx
mov word [ebp - 0x2004], ax
add edi, 4
mov dword [ebp - 0x2024], eax
mov eax, dword [0x1025b434]
push 1
push 0
push edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
mov eax, dword [ebp - 0x2024]
test eax, eax
je 0x101a2d3b
push 0
lea ecx, [ebp - 0x2090]
call fcn.100e52b0
push dword [ebp - 0x2024]
lea ecx, [ebp - 0x2090]
call fcn.100e5a30
mov eax, dword [ebp - 0x2024]
lea edx, [ebp - 0x2044]
push edx
mov dword [ebp - 0x203c], 0
lea edx, [ebp - 0x203c]
mov dword [ebp - 0x2044], 0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x2c]
lea ecx, [ebp - 0x2030]
mov dword [ebp - 0x2030], 0
mov dword [ebp - 0x202c], 0
call fcn.10027330
cmp dword [ebp - 0x203c], 0
mov dword [ebp - 0x2030], eax
jne 0x101a2c29
mov eax, dword [ebp - 0x2084]
cmp dword [eax - 0xc], 0
je 0x101a2c29
push 0xfff
push eax
lea eax, [ebp - 0x2004]
push 0x1000
push eax
call fcn.101ef1c0
add esp, 0x10
xor eax, eax
mov word [ebp - 0x1dfe], ax
jmp 0x101a2cd0
mov eax, dword [ebp - 0x2024]
lea edx, [ebp - 0x2034]
mov dword [ebp - 0x2034], 0
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
mov eax, dword [ebp - 0x2034]
mov dword [ebp - 0x2040], 0
test eax, eax
je 0x101a2cd0
mov ecx, dword [eax]
lea edx, [ebp - 0x2040]
push edx
push eax
call dword [ecx + 0xc]
cmp dword [ebp - 0x2040], 0
jbe 0x101a2cc0
mov eax, dword [ebp - 0x2034]
lea edx, [ebp - 0x2038]
push edx
mov dword [ebp - 0x2038], 0
push 0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
push 0xfff
push dword [ebp - 0x2038]
lea eax, [ebp - 0x2004]
push 0x1000
push eax
call fcn.101ef1c0
add esp, 0x10
xor eax, eax
mov word [ebp - 6], ax
push dword [ebp - 0x2038]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x2034]
test eax, eax
je 0x101a2cd0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x2030]
lea ecx, [ebp - 0x2030]
push dword [esi + 4]
call fcn.10029430
mov eax, dword [ebp - 0x2030]
push 0x14
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x2030]
mov dword [eax], esi
mov eax, dword [ebp - 0x2030]
mov dword [eax + 8], esi
push dword [ebp - 0x2030]
mov dword [ebp - 0x202c], 0
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
add esp, 8
push dword [ebp - 0x2044]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [ebp - 0x2090]
call fcn.100e54a0
mov eax, dword [ebp - 0x2024]
mov esi, dword [ebp - 0x2058]
cmp word [ebp - 0x2004], 0
je 0x101a2e25
xor eax, eax
mov dword [ebp - 0x200c], 0
lea ecx, [ebp - 0x2004]
mov dword [ebp - 0x2008], 7
mov word [ebp - 0x201c], ax
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x101a2d70
sub ecx, edx
lea eax, [ebp - 0x2004]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x201c]
call fcn.100070c0
mov edx, dword [ebp - 0x205c]
mov ecx, dword [edx + 0x21c]
cmp dword [edx + 0x220], ecx
je 0x101a2e01
mov eax, dword [ebp - 0x201c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x2018]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x2014]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x2010]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x200c]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x2008]
mov dword [ecx + 0x14], eax
xor eax, eax
add dword [edx + 0x21c], 0x18
mov dword [ebp - 0x200c], 0
mov dword [ebp - 0x2008], 7
mov word [ebp - 0x201c], ax
jmp 0x101a2e14
lea eax, [ebp - 0x201c]
push eax
push ecx
lea ecx, [edx + 0x218]
call fcn.1001df20
lea ecx, [ebp - 0x201c]
call fcn.10005250
mov eax, dword [ebp - 0x2024]
mov edx, dword [ebp - 0x2020]
add edi, ebx
lea ecx, [esi + edx]
cmp edi, ecx
jae 0x101a2e5d
cmp byte [edi], 0xff
je 0x101a2e5d
test eax, eax
je 0x101a2e49
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [ebp - 0x2020]
mov ebx, dword [edi + 1]
lea eax, [esi + edx]
inc edi
lea ecx, [ebx + edi]
cmp ecx, eax
jbe 0x101a2b44
jmp 0x101a2e67
test eax, eax
je 0x101a2e67
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete___void__
add esp, 4
lea ecx, [ebp - 0x2054]
call fcn.10008220
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101f99c6
mov esp, ebp
pop ebp
ret