Function at 0x407660
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov eax, dword [esp + 0x108]
mov ebx, dword [esp + 0x100]
mov eax, dword [eax]
test eax, eax
je 0x4076ac
mov eax, dword [eax + 8]
lea esi, [esp + 0x56]
mov dword [esp + 8], str.Control_PanelAppearanceClassicSchemes
mov dword [esp + 4], str._s_s
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.USER32.dll_wsprintfW]
mov dword [esp], esi
mov dword [esp + 0x28], eax
call eax
cmp eax, 0x28
jg 0x4076c0
add esp, 0xec
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
sub esp, 0x14
mov ebp, eax
test eax, eax
jne 0x4076ac
mov eax, dword [esp + 0x104]
lea edi, [esp + 0x46]
test eax, eax
setne byte [esp + 0x2f]
jmp 0x407762
mov eax, dword [ebp*4 + 0x4162f4]
mov dword [ebx + ebp*4 + 0x254], eax
cmp eax, esi
je 0x40775a
cmp byte [esp + 0x2f], 0
je 0x40775a
mov ecx, dword [ebx + ebp*4 + 0x2d0]
test ecx, ecx
je 0x407747
mov dword [esp], ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebx + ebp*4 + 0x254]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [ebx + ebp*4 + 0x2d0], eax
sub esp, 4
add ebp, 1
cmp ebp, 0x1f
je 0x4077e0
mov esi, dword [ebx + ebp*4 + 0x254]
mov eax, dword [esp + 0x28]
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x41153c
mov dword [esp], edi
call eax
cmp eax, 5
jle 0x407710
lea eax, [esp + 0x40]
mov dword [esp + 0x40], 4
mov dword [esp + 0x14], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
sub esp, 0x18
test eax, eax
jne 0x407710
cmp dword [esp + 0x38], 4
jne 0x407710
mov eax, dword [esp + 0x3c]
and eax, 0xffffff
jmp 0x407717
lea eax, [esp + 0x40]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x14], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.FlatMenus
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
sub esp, 0x18
test eax, eax
je 0x4078c8
mov eax, dword [0x416374]
mov dword [ebx + 0x350], eax
lea eax, [esp + 0x40]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], 4
mov dword [esp + 8], 0
mov dword [esp + 4], str.Gradients
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
sub esp, 0x18
test eax, eax
jne 0x40788a
cmp dword [esp + 0x38], 4
mov eax, dword [esp + 0x3c]
je 0x40788f
mov eax, dword [0x416370]
mov dword [ebx + 0x34c], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
sub esp, 4
mov eax, dword [esp + 0x108]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00407130
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x38], 4
mov eax, dword [esp + 0x3c]
jne 0x407830
jmp 0x407835