Function at 0x47f660
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x56b568]
sub esp, 0x30
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
push edi
mov edi, ecx
test eax, eax
je 0x47f816
lea ecx, [ebp - 0x10]
push ecx
call eax
test eax, eax
js 0x47f816
cmp dword [ebp - 0x10], 0
je 0x47f816
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], 4
push eax
lea eax, [ebp - 8]
push eax
push 0
push str.ColorizationColor
push str.SoftwareMicrosoftWindowsDWM
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x47f816
cmp dword [ebp - 0xc], 4
jne 0x47f816
mov eax, dword [ebp - 8]
mov bh, byte [ebp + 8]
fld qword [0x55da58]
shr eax, 0x18
test bh, bh
jne 0x47f728
mov dword [ebp + 8], eax
sub esp, 8
fild dword [ebp + 8]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fmul st(1)
faddp st(1)
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp qword [esp]
call fcn.004e3b30
fstp dword [ebp + 8]
fld dword [ebp + 8]
add esp, 8
fnstcw word [ebp + 0xa]
movzx eax, word [ebp + 0xa]
or eax, 0xc00
mov dword [ebp - 0x18], eax
fldcw word [ebp - 0x18]
fistp dword [ebp - 0x18]
mov al, byte [ebp - 0x18]
fldcw word [ebp + 0xa]
jmp 0x47f72a
fstp st(0)
mov bl, al
sub esp, 8
movzx eax, al
not bl
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fdiv qword [0x55dc58]
mov eax, dword [ebp - 8]
shr eax, 8
movzx eax, al
fstp dword [ebp + 8]
fld dword [ebp + 8]
fst qword [ebp - 0x1c]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp qword [ebp - 0x2c]
fmul qword [ebp - 0x2c]
fadd qword [0x55da58]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp qword [esp]
call fcn.004e3b30
fstp dword [ebp + 8]
fld dword [ebp + 8]
call fcn.004dffb0
add al, bl
movzx esi, al
movzx eax, byte [ebp - 8]
mov dword [ebp + 8], eax
fild dword [ebp + 8]
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fmul qword [ebp - 0x1c]
fadd qword [0x55da58]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp qword [esp]
call fcn.004e3b30
fstp dword [ebp + 8]
fld dword [ebp + 8]
call fcn.004dffb0
add al, bl
movzx eax, al
shl eax, 8
or esi, eax
mov eax, dword [ebp - 8]
shr eax, 0x10
movzx eax, al
mov dword [ebp + 8], eax
fild dword [ebp + 8]
shl esi, 8
fstp qword [ebp - 0x2c]
fld qword [ebp - 0x2c]
fmul qword [ebp - 0x1c]
fadd qword [0x55da58]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fstp qword [esp]
call fcn.004e3b30
fstp dword [ebp + 8]
fld dword [ebp + 8]
add esp, 8
call fcn.004dffb0
add al, bl
movzx eax, al
or esi, eax
mov dword [edi + 0x80], esi
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
jmp 0x47f85b
mov ecx, dword [edi + 0x7c]
mov bh, byte [ebp + 8]
test ecx, ecx
je 0x47f849
mov edx, dword [0x56b4d8]
test edx, edx
je 0x47f849
lea eax, [edi + 0x80]
push eax
xor eax, eax
test bh, bh
sete al
add eax, 0xeed
push eax
push 0
push 1
push ecx
call edx
test eax, eax
jns 0x47f85b
test bh, bh
je 0x47f851
push 0x1b
jmp 0x47f853
push 0x1c
call esi
mov dword [edi + 0x80], eax
cmp dword [edi + 0x7c], 0
je 0x47f8b3
test bh, bh
jne 0x47f88a
mov eax, dword [0x56b568]
test eax, eax
je 0x47f883
lea ecx, [ebp - 0x20]
push ecx
call eax
test eax, eax
js 0x47f87e
cmp dword [ebp - 0x20], 0
jne 0x47f88a
mov eax, dword [0x56b568]
mov ecx, 0x654
jmp 0x47f894
mov eax, dword [0x56b568]
mov ecx, 0x64a
mov edx, dword [0x56b4d8]
test edx, edx
je 0x47f8b8
lea eax, [edi + 0x84]
push eax
push ecx
push 0
push 1
push dword [edi + 0x7c]
call edx
test eax, eax
jns 0x47f8ed
mov eax, dword [0x56b568]
test bh, bh
jne 0x47f8e3
test eax, eax
je 0x47f8d0
lea ecx, [ebp - 0x24]
push ecx
call eax
test eax, eax
js 0x47f8d0
cmp dword [ebp - 0x24], 0
jne 0x47f8e3
push 0x13
call esi
mov dword [edi + 0x84], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 9
call esi
mov dword [edi + 0x84], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4