Function at 0x1001e1e0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e4
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x1c], 0
je 0x1001e57b
lea ebx, [edi + 0x20]
mov dword [ebx], 0x200
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x15f90
jbe 0x1001e217
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
call fcn.1001cef0
mov ecx, dword [edi + 0x1c]
mov edx, dword [ecx]
test eax, eax
je 0x1001e251
push 0x400787
push ecx
call dword [edx + 8]
mov eax, dword [edi + 0x1c]
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov edx, dword [ebx]
cmp edx, 2
je 0x1001e244
cmp edx, 4
jne 0x1001e266
mov dword [ebx], 1
mov edx, 1
jmp 0x1001e266
push 0x4207d7
push ecx
call dword [edx + 8]
mov eax, dword [edi + 0x1c]
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov edx, dword [ebx]
mov eax, dword [edi + 0x1c]
lea esi, [ebp - 0x1e0]
push 0xc8
push esi
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov ecx, dword [edi]
mov edx, esi
push edx
push dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0x20]
mov eax, dword [ebx]
mov esi, dword [sym.imp.SHLWAPI.dll_SHRegGetValueW]
and eax, 0x20000
mov dword [edi + 0x24], eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
mov dword [ebp - 8], 2
push eax
push 0
push 0x10
push str.Start_RightPaneIcons
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvanced
push SHChangeNotifyRegister
mov dword [ebp - 4], 4
call esi
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0x10
push str.Start_RightPaneIcons
push str.SoftwareStartIsBack
push SHChangeNotifyRegister
call esi
mov eax, dword [ebp - 8]
or dword [edi + 0x24], eax
lea eax, [ebp - 0x1e0]
mov ecx, dword [edi + 0x1c]
push 0xc8
push eax
mov eax, dword [ebx]
mov edx, dword [ecx]
and eax, 0xfffdffff
push 0
push eax
push ecx
call dword [edx + 0x18]
lea eax, [ebp - 0x1e0]
push eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x4c], 8
push eax
push 0
push 0x1608
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp + 0xc]
sub eax, dword [edi + 0x18]
push eax
mov eax, dword [ebp + 8]
sub eax, dword [edi + 0x10]
push eax
push dword [edi + 0x14]
lea eax, [ebp - 0x18]
push dword [edi + 0xc]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
mov dword [ebp + 8], eax
shr eax, 1
mov dword [ebp - 4], eax
push dword [edi + 8]
call dword [sym.imp.USER32.dll_GetWindowDC]
mov ecx, dword [edi]
mov ebx, eax
mov dword [ebp + 0xc], ebx
mov edx, dword [ecx]
call dword [edx + 0x40]
neg eax
sbb esi, esi
neg esi
add esi, 0x25
cmp byte [0x1005dbdc], 0
jne 0x1001e3c2
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x1001e3b2
mov ecx, eax
call fcn.10032660
mov dword [0x1005e0e4], eax
mov byte [0x1005dbdc], 1
jmp 0x1001e3c7
xor eax, eax
mov byte [0x1005dbdc], 1
mov dword [0x1005e0e4], eax
jmp 0x1001e3c7
mov eax, dword [0x1005e0e4]
push esi
mov ecx, eax
call fcn.10032920
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x40]
neg eax
sbb esi, esi
neg esi
add esi, 0x25
cmp byte [0x1005dbdc], 0
jne 0x1001e42b
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x1001e41a
mov ecx, eax
call fcn.10032660
mov ebx, eax
mov byte [0x1005dbdc], 1
mov dword [0x1005e0e4], ebx
jmp 0x1001e431
xor ebx, ebx
mov byte [0x1005dbdc], 1
mov dword [0x1005e0e4], ebx
jmp 0x1001e431
mov ebx, dword [0x1005e0e4]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x18]
push eax
push 0x108025
push 0xffffffffffffffff
lea eax, [ebp - 0x1e0]
push eax
push 0
push esi
push dword [ebp + 0xc]
push dword [ebx + 0x214]
call dword [sym.imp.UxTheme.dll_GetThemeTextExtent]
test eax, eax
jne 0x1001e465
cmp dword [ebx + 0x214], eax
jne 0x1001e48d
movups xmm0, xmmword [ebp - 0x18]
mov ebx, dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push 0
push 0x108425
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x1e0]
push eax
push ebx
movups xmmword [ebp - 0x28], xmm0
call dword [sym.imp.USER32.dll_DrawTextExW]
jmp 0x1001e490
mov ebx, dword [ebp + 0xc]
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x40]
neg eax
sbb esi, esi
neg esi
add esi, 0x25
cmp byte [0x1005dbdc], 0
jne 0x1001e4e0
push 0x29c
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
add esp, 4
test eax, eax
je 0x1001e4d0
mov ecx, eax
call fcn.10032660
mov dword [0x1005e0e4], eax
mov byte [0x1005dbdc], 1
jmp 0x1001e4e5
xor eax, eax
mov byte [0x1005dbdc], 1
mov dword [0x1005e0e4], eax
jmp 0x1001e4e5
mov eax, dword [0x1005e0e4]
lea ecx, [ebp - 0x38]
push ecx
lea ecx, [ebp - 0x18]
push ecx
push 0xe12
push ecx
push esi
mov ecx, eax
call fcn.10033d00
mov esi, dword [ebp - 0x34]
sub esi, dword [ebp - 0x28]
add esi, dword [ebp - 0x38]
add esi, dword [ebp - 0x40]
add esi, dword [ebp - 0x20]
cmp dword [edi + 0x24], 0
je 0x1001e527
mov ecx, dword [edi]
push 0x60
mov eax, dword [ecx]
call dword [eax + 8]
push eax
push 0x10
call dword [sym.imp.KERNEL32.dll_MulDiv]
add esi, 5
add esi, eax
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp + 8]
add eax, 8
add eax, dword [edi + 0xc]
add eax, esi
mov dword [edi + 0x34], eax
cmp esi, ecx
ja 0x1001e545
cmp esi, dword [ebp - 4]
mov ecx, esi
cmovb ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
push ebx
push dword [edi + 8]
add eax, ecx
mov dword [ebp - 0x10], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
sub eax, edx
mov ecx, dword [ebp - 0x18]
push 0x204
push eax
mov eax, dword [ebp - 0x10]
sub eax, ecx
push eax
push edx
push ecx
push 0
push dword [edi + 8]
call dword [sym.imp.USER32.dll_SetWindowPos]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8