Function at 0x40858a
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x3d4]
sub esp, 0x454
mov eax, dword [0x427470]
xor eax, ebp
mov dword [ebp + 0x3d0], eax
fldz
push ebx
push esi
fstp dword [ebp - 0x48]
push edi
xor edi, edi
xor eax, eax
inc eax
mov esi, 0x104
push esi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x80], eax
lea eax, [ebp + 0x1c8]
push edi
push eax
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x64], edi
call fcn.00410400
push esi
lea eax, [ebp - 0x40]
push edi
push eax
call fcn.00410400
push esi
lea eax, [ebp + 0xc4]
push edi
push eax
call fcn.00410400
push esi
lea eax, [ebp + 0x2cc]
push edi
push eax
call fcn.00410400
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
add esp, 0x30
lea eax, [ebp - 0x44]
push eax
push str.SoftwareIntelDisplayigfxcuiMedia
push SysReAllocString
call ebx
test eax, eax
jne 0x40893f
cmp dword [ebp - 0x44], edi
je 0x408645
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x54]
push eax
push str.SoftwareinteldisplayigfxcuiprofilesCurrent
push SysReAllocString
call ebx
mov dword [ebp - 0x7c], eax
cmp eax, edi
jne 0x408784
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0xc4]
push eax
lea eax, [ebp - 0x80]
push eax
push edi
push str.CurrentPresetProfileName
push dword [ebp - 0x54]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x408784
lea eax, [ebp + 0xc4]
push 0x421e16
push eax
call fcn.00411860
pop ecx
pop ecx
test eax, eax
je 0x408784
lea eax, [ebp + 0xc4]
push str.Select_Profile
push eax
call fcn.00411860
pop ecx
pop ecx
test eax, eax
je 0x408784
lea eax, [ebp + 0xc4]
push eax
push str.SoftwareinteldisplayigfxcuiprofilesIntel
lea eax, [ebp + 0x1c8]
push str._s_s
push eax
call fcn.004117e0
add esp, 0x10
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0x1c8]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x40870b
lea eax, [ebp + 0x1c8]
push eax
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 0x64], 1
call fcn.00410480
pop ecx
pop ecx
cmp dword [ebp - 0x5c], edi
je 0x408719
push dword [ebp - 0x5c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
lea eax, [ebp + 0x1c8]
push edi
push eax
call fcn.00410400
lea eax, [ebp + 0xc4]
push eax
push str.SoftwareinteldisplayigfxcuiprofilesCustom
lea eax, [ebp + 0x1c8]
push str._s_s
push eax
call fcn.004117e0
add esp, 0x1c
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp + 0x1c8]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x408776
lea eax, [ebp + 0x1c8]
push eax
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 0x64], 1
call fcn.00410480
pop ecx
pop ecx
cmp dword [ebp - 0x60], edi
je 0x408784
push dword [ebp - 0x60]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x54], edi
je 0x408792
push dword [ebp - 0x54]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x64], 1
jne 0x40893f
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x40]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call ebx
test eax, eax
jne 0x408931
lea eax, [ebp - 0x44]
push eax
push str.SoftwareIntelDisplayigfxcuiMedia
push SysReAllocString
call ebx
cmp dword [ebp - 0x7c], edi
jne 0x408923
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x2cc]
push eax
lea eax, [ebp - 0x58]
push eax
push edi
push str.ProcAmpHue
push dword [ebp - 0x50]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x40881e
lea eax, [ebp + 0x2cc]
push eax
call fcn.004117cd
fstp dword [ebp - 0x48]
pop ecx
push 4
lea eax, [ebp - 0x48]
push eax
push 4
push edi
push str.ProcAmpHue
push dword [ebp - 0x44]
call ebx
mov dword [ebp - 0x68], 1
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x2cc]
push eax
lea eax, [ebp - 0x58]
push eax
push edi
push str.ProcAmpSaturation
push dword [ebp - 0x50]
mov dword [ebp - 0x4c], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40886d
lea eax, [ebp + 0x2cc]
push eax
call fcn.004117cd
fstp dword [ebp - 0x48]
pop ecx
push 4
lea eax, [ebp - 0x48]
push eax
push 4
push edi
push str.ProcAmpSaturation
push dword [ebp - 0x44]
call ebx
mov dword [ebp - 0x6c], 1
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x2cc]
push eax
lea eax, [ebp - 0x58]
push eax
push edi
push str.ProcAmpContrast
push dword [ebp - 0x50]
mov dword [ebp - 0x4c], esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4088bc
lea eax, [ebp + 0x2cc]
push eax
call fcn.004117cd
fstp dword [ebp - 0x48]
pop ecx
push 4
lea eax, [ebp - 0x48]
push eax
push 4
push edi
push str.ProcAmpContrast
push dword [ebp - 0x44]
call ebx
mov dword [ebp - 0x70], 1
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp + 0x2cc]
push eax
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 0x4c], esi
push edi
mov esi, str.ProcAmpBrightness
push esi
push dword [ebp - 0x50]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x408908
lea eax, [ebp + 0x2cc]
push eax
call fcn.004117cd
fstp dword [ebp - 0x48]
pop ecx
push 4
lea eax, [ebp - 0x48]
push eax
push 4
push edi
push esi
push dword [ebp - 0x44]
call ebx
mov dword [ebp - 0x78], 1
cmp dword [ebp - 0x68], edi
je 0x408923
cmp dword [ebp - 0x6c], edi
je 0x408923
cmp dword [ebp - 0x70], edi
je 0x408923
cmp dword [ebp - 0x78], edi
je 0x408923
mov dword [ebp - 0x74], 1
cmp dword [ebp - 0x44], edi
je 0x408931
push dword [ebp - 0x44]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x50], edi
je 0x40893f
push dword [ebp - 0x50]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 0x3d0]
mov eax, dword [ebp - 0x74]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00410578
add ebp, 0x3d4
leave
ret