Function at 0x403740
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x118
mov eax, dword [0x435264]
xor eax, esp
mov dword [esp + 0x114], eax
push ebx
push ebp
push esi
lea eax, [esp + 0x10]
push eax
push 0x20019
xor ebp, ebp
push ebp
xor bl, bl
push str.SoftwareIntelDisplayigfxcuiigfxsrvcDesktopGammaDefault
push reloc.OLEAUT32.dll_SysReAllocString
mov esi, ecx
mov dword [esp + 0x24], ebp
mov byte [esp + 0x23], 0
mov byte [esp + 0x20], bl
mov byte [esp + 0x22], bl
mov byte [esp + 0x21], bl
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40393d
push edi
push 0x104
lea ecx, [esp + 0x24]
push ebp
push ecx
call fcn.00413570
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebp
push str.BrightnessDefault
push edx
mov dword [esp + 0x34], 0x104
mov dword [esp + 0x30], 1
call edi
test eax, eax
jne 0x403804
lea eax, [esp + 0x20]
push eax
call fcn.00413d5c
push 0x104
lea ecx, [esp + 0x28]
push ebp
push ecx
mov dword [esi + 0xc], eax
call fcn.00413570
add esp, 0x10
mov byte [esp + 0x13], 1
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebp
push str.ContrastDefault
push edx
call edi
test eax, eax
jne 0x403846
lea eax, [esp + 0x20]
push eax
call fcn.00413d5c
push 0x104
lea ecx, [esp + 0x28]
push ebp
push ecx
mov dword [esi + 0x10], eax
call fcn.00413570
add esp, 0x10
mov bl, 1
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebp
push str.GammaDefault
push edx
call edi
test eax, eax
jne 0x403896
lea eax, [esp + 0x20]
push eax
call fcn.00413d33
fmul qword [0x427490]
call fcn.00413b60
push 0x104
lea ecx, [esp + 0x28]
push ebp
push ecx
mov dword [esi + 0x14], eax
call fcn.00413570
add esp, 0x10
mov byte [esp + 0x10], 1
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebp
push str.HueDefault
push edx
call edi
test eax, eax
jne 0x4038db
lea eax, [esp + 0x20]
push eax
call fcn.00413d5c
push 0x104
lea ecx, [esp + 0x28]
push ebp
push ecx
mov dword [esi + 0x18], eax
call fcn.00413570
add esp, 0x10
mov byte [esp + 0x12], 1
lea edx, [esp + 0x1c]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
push ecx
push ebp
push str.SaturationDefault
push edx
call edi
pop edi
test eax, eax
jne 0x403921
lea eax, [esp + 0x1c]
push eax
call fcn.00413d5c
push 0x104
lea ecx, [esp + 0x24]
push ebp
push ecx
mov dword [esi + 0x1c], eax
call fcn.00413570
add esp, 0x10
mov byte [esp + 0xd], 1
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp byte [esp + 0xf], 0
jne 0x40394e
test bl, bl
jne 0x40395b
cmp byte [esp + 0xc], bl
jne 0x40395b
mov ecx, esi
call fcn.00403370
test eax, eax
jl 0x40395b
mov bl, 1
mov byte [esp + 0xc], bl
mov eax, dword [esi + 0xc]
cmp eax, 0xffffffc4
jl 0x40395b
cmp eax, 0x64
jle 0x40395e
mov dword [esi + 0xc], ebp
test bl, bl
je 0x40396f
mov eax, dword [esi + 0x10]
cmp eax, 0x28
jl 0x40396f
cmp eax, 0x64
jle 0x403976
mov dword [esi + 0x10], 0x32
cmp byte [esp + 0xc], 0
je 0x40398c
mov eax, dword [esi + 0x14]
cmp eax, 0x28
jl 0x40398c
cmp eax, 0x1f4
jle 0x403993
mov dword [esi + 0x14], 0x64
cmp byte [esp + 0xe], 0
je 0x4039a8
mov eax, dword [esi + 0x18]
cmp eax, ebp
jl 0x4039a8
cmp eax, 0x168
jle 0x4039ab
mov dword [esi + 0x18], ebp
cmp byte [esp + 0xd], 0
je 0x4039bf
mov eax, dword [esi + 0x1c]
cmp eax, 0xffffff9c
jl 0x4039bf
cmp eax, 0x64
jle 0x4039c2
mov dword [esi + 0x1c], ebp
mov ecx, dword [esp + 0x120]
mov dword [esi + 0x20], 5
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00413561
add esp, 0x118
ret