Function at 0x40ab7a
Capabilities:
Get common file path
Get program files directory
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x1218]
mov eax, 0x1298
call fcn.00413860
mov eax, dword [0x429470]
xor eax, ebp
mov dword [ebp + 0x1214], eax
push ebx
push esi
mov esi, 0x104
push esi
xor ebx, ebx
lea eax, [ebp + 0x8f0]
push ebx
push eax
call fcn.004125f0
push 0x140
lea eax, [ebp - 0x64]
push ebx
push eax
call fcn.004125f0
add esp, 0x18
lea eax, [ebp + 0x8f0]
push eax
push ebx
push ebx
push 0x26
push ebx
call dword [0x4231f0]
push 0x424234
lea eax, [ebp + 0x8f0]
push esi
push eax
call fcn.004135fd
push str.IntelIntel_Control_CenterIntelControlCenter.exe
lea eax, [ebp + 0x8f0]
push esi
push eax
call fcn.004135fd
add esp, 0x18
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp + 0x8f0]
push eax
call dword [0x42306c]
cmp eax, 0xffffffff
jne 0x40ac1f
push eax
call dword [0x423068]
xor al, al
jmp 0x40b340
push edi
push eax
call dword [0x423068]
push 3
lea eax, [ebp - 0x74]
push ebx
push eax
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 0x65], 1
mov dword [ebp - 0x80], 1
mov dword [ebp - 0x78], esi
call fcn.004125f0
mov edi, 0x100
push edi
lea eax, [ebp + 0xdc]
push ebx
push eax
call fcn.004125f0
push edi
lea eax, [ebp + 0x2dc]
push ebx
push eax
call fcn.004125f0
push edi
lea eax, [ebp + 0x1dc]
push ebx
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0x1110]
push ebx
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0xe04]
push ebx
push eax
call fcn.004125f0
add esp, 0x48
push esi
lea eax, [ebp + 0x9f4]
push ebx
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0x100c]
push ebx
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0xaf8]
push ebx
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0x6e8]
push ebx
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0xf08]
push ebx
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0xd00]
push ebx
push eax
call fcn.004125f0
add esp, 0x48
push esi
lea eax, [ebp + 0x3dc]
push ebx
push eax
call fcn.004125f0
push esi
push ebx
lea eax, [ebp + 0x5e4]
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0xbfc]
push ebx
push eax
call fcn.004125f0
add esp, 0x24
push esi
lea eax, [ebp + 0x3dc]
push eax
call dword [0x423064]
lea eax, [ebp + 0x1dc]
push eax
lea eax, [ebp + 0x2dc]
push eax
lea eax, [ebp + 0xdc]
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0x3dc]
push eax
call fcn.00413ec6
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp + 0xd00]
push eax
call fcn.00412670
mov edi, 0x424234
lea eax, [ebp + 0xd00]
push edi
push eax
call fcn.00412680
lea eax, [ebp + 0xd00]
push str.ProgramDataIntelExtremeGraphics
push eax
call fcn.00412680
lea eax, [ebp + 0xd00]
push edi
push eax
call fcn.00412680
lea eax, [ebp + 0xd00]
push str.CUIResource
push eax
call fcn.00412680
add esp, 0x3c
lea eax, [ebp - 0x70]
push eax
push 0x20119
push ebx
push str.SoftwareIntelDisplayigfxcuiShortcutFolder
push 0x80000002
call dword [section..rdata]
test eax, eax
jne 0x40ae38
cmp dword [ebp - 0x70], ebx
je 0x40ae31
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x5e4]
push eax
lea eax, [ebp - 0x80]
push eax
push ebx
push str.ShortcutFolderName
push dword [ebp - 0x70]
call dword [0x42301c]
test eax, eax
jne 0x40ae31
lea eax, [ebp + 0x5e4]
test eax, eax
je 0x40ae24
push eax
lea eax, [ebp + 0xf08]
push eax
call fcn.00412670
push edi
lea eax, [ebp + 0xf08]
push esi
push eax
call fcn.004135fd
push str.CUIResource
lea eax, [ebp + 0xf08]
push esi
push eax
call fcn.004135fd
add esp, 0x20
jmp 0x40ae4d
push str.valid_regkey_value_user_have_not_specified
lea eax, [ebp + 0x1110]
jmp 0x40ae45
push str.valid_regkey_path_does_not_exist
jmp 0x40ae29
lea eax, [ebp + 0xd00]
push eax
lea eax, [ebp + 0xf08]
push eax
call fcn.00412670
pop ecx
pop ecx
lea eax, [ebp + 0x1110]
push str.Success
push eax
call fcn.00412670
push dword [0x42a970]
lea eax, [ebp + 0x100c]
push esi
push eax
push 0x24f3
push ebx
call fcn.004105b6
lea eax, [ebp + 0x100c]
push str.Cant_find_requested_string.
push eax
call fcn.004139f0
add esp, 0x24
test eax, eax
je 0x40aea6
lea eax, [ebp + 0x100c]
push 0x423ebe
push eax
call fcn.004139f0
pop ecx
pop ecx
test eax, eax
jne 0x40aeb9
lea eax, [ebp + 0x100c]
push str.Intel_R__Graphics_and_Media_Control_Panel
push eax
call fcn.00412670
pop ecx
pop ecx
push dword [0x42a970]
lea eax, [ebp + 0xaf8]
push esi
push eax
push 0x24f2
push ebx
call fcn.004105b6
lea eax, [ebp + 0xaf8]
push str.Cant_find_requested_string.
push eax
call fcn.004139f0
add esp, 0x1c
test eax, eax
je 0x40af01
lea eax, [ebp + 0xaf8]
push 0x423ebe
push eax
call fcn.004139f0
pop ecx
pop ecx
test eax, eax
jne 0x40af14
lea eax, [ebp + 0xaf8]
push str.Configure_and_adjust_graphics_and_media_settings.
push eax
call fcn.00412670
pop ecx
pop ecx
lea eax, [ebp + 0xf08]
push eax
call fcn.0040a2c9
pop ecx
test al, al
jne 0x40af3e
lea eax, [ebp + 0x1110]
push str.Cannot_create_the_Directory
push eax
call fcn.00412670
mov byte [ebp - 0x65], bl
jmp 0x40b201
lea eax, [ebp + 0xf08]
push eax
lea eax, [ebp + 0xe04]
push esi
push eax
call fcn.0041340d
lea eax, [ebp + 0xe04]
push edi
push eax
call fcn.00412680
lea eax, [ebp + 0x100c]
push eax
lea eax, [ebp + 0xe04]
push esi
push eax
call fcn.004135fd
lea eax, [ebp + 0xe04]
push str..lnk
push eax
call fcn.00412680
add esp, 0x28
lea eax, [ebp - 0x6c]
push eax
push 0x2001f
push ebx
push str.SOFTWAREINTELICCApplicationsIntel_Graphics_Driver
push 0x80000001
call dword [section..rdata]
test eax, eax
jne 0x40b082
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp + 0x6e8]
push eax
lea eax, [ebp - 0x80]
push eax
push ebx
push str.ShortcutName_MUI_
push dword [ebp - 0x6c]
call dword [0x42301c]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp dword [ebp - 0x6c], ebx
setne cl
test ecx, eax
je 0x40b07b
lea eax, [ebp + 0xf08]
push eax
lea eax, [ebp + 0x9f4]
push esi
push eax
call fcn.0041340d
lea eax, [ebp + 0x6e8]
push eax
lea eax, [ebp + 0x9f4]
push esi
push eax
call fcn.004135fd
lea eax, [ebp + 0x9f4]
push str..lnk
push eax
call fcn.00412680
lea eax, [ebp + 0x9f4]
push 0x4243a4
push eax
call fcn.00414273
add esp, 0x28
cmp eax, ebx
je 0x40b074
push eax
call fcn.00414133
lea eax, [ebp + 0x6e8]
push eax
lea eax, [ebp + 0x100c]
push eax
call fcn.004139f0
add esp, 0xc
test eax, eax
je 0x40b0bd
lea eax, [ebp + 0x9f4]
push eax
call fcn.0041408c
pop ecx
test eax, eax
je 0x40b0bd
mov byte [ebp - 0x65], bl
push str.Could_not_Delete_file
lea eax, [ebp + 0x1110]
push eax
call fcn.00412670
jmp 0x40b0bb
push str.Shortcut_file_does_not_exists
jmp 0x40b066
push str.Could_not_Find_Shortcut_key
jmp 0x40b066
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x6c]
push eax
push ebx
push 0x2001f
push ebx
push ebx
push ebx
push str.SOFTWAREINTELICCApplicationsIntel_Graphics_Driver
push 0x80000001
call dword [0x423024]
test eax, eax
je 0x40b0bd
lea eax, [ebp + 0x1110]
push str.Could_not_create_ICC_keys
push eax
call fcn.00412670
mov byte [ebp - 0x65], bl
pop ecx
pop ecx
cmp byte [ebp - 0x65], bl
je 0x40b203
push esi
lea eax, [ebp + 0x7ec]
push ebx
push eax
call fcn.004125f0
push esi
lea eax, [ebp + 0x4e0]
push ebx
push eax
call fcn.004125f0
add esp, 0x18
push esi
lea eax, [ebp + 0x4e0]
push eax
call dword [0x423064]
test eax, eax
jne 0x40b0fa
mov byte [ebp - 0x65], bl
lea eax, [ebp + 0x4e0]
push eax
lea eax, [ebp + 0x7ec]
push eax
call fcn.00412680
push edi
lea eax, [ebp + 0x7ec]
push esi
push eax
call fcn.004135fd
lea eax, [ebp + 0x7ec]
push str.GfxUI.exe
push eax
call fcn.00412680
lea eax, [ebp + 0xaf8]
push eax
lea eax, [ebp + 0xe04]
push eax
lea eax, [ebp + 0x7ec]
push eax
call fcn.0040a14e
add esp, 0x28
test eax, eax
je 0x40b163
lea eax, [ebp + 0x1110]
push str.Could_not_create_link
push eax
call fcn.00412670
pop ecx
pop ecx
mov byte [ebp - 0x65], bl
lea eax, [ebp + 0xe04]
push eax
call dword [0x423038]
inc eax
push eax
lea eax, [ebp + 0xe04]
push eax
push 1
push ebx
push str.Path
push dword [ebp - 0x6c]
call dword [0x423018]
neg eax
sbb eax, eax
xor ecx, ecx
inc eax
cmp dword [ebp - 0x6c], ebx
setne cl
test ecx, eax
je 0x40b203
lea eax, [ebp + 0x100c]
push eax
call dword [0x423038]
inc eax
push eax
lea eax, [ebp + 0x100c]
push eax
push 1
push ebx
push str.ShortcutName_MUI_
push dword [ebp - 0x6c]
call dword [0x423018]
test eax, eax
jne 0x40b203
push str.Display
call dword [0x423038]
inc eax
push eax
push str.Display
push 1
push ebx
push str.Class
push dword [ebp - 0x6c]
call dword [0x423018]
test eax, eax
je 0x40b203
lea eax, [ebp + 0x1110]
push str.Could_not_update_ICC_keys
push eax
mov byte [ebp - 0x65], bl
call fcn.00412670
pop ecx
pop ecx
lea eax, [ebp + 0xf08]
push eax
lea eax, [ebp + 0xbfc]
push esi
push eax
call fcn.0041340d
lea eax, [ebp + 0xbfc]
push edi
push eax
call fcn.00412680
lea eax, [ebp + 0x100c]
push eax
lea eax, [ebp + 0xbfc]
push esi
push eax
call fcn.004135fd
lea eax, [ebp + 0xbfc]
push str..lnk
push eax
call fcn.00412680
add esp, 0x28
lea eax, [ebp - 0x6c]
push eax
mov edi, 0x2001f
push edi
push ebx
mov esi, str.SOFTWAREINTELICCApplicationsIntel_Graphics_Driver
push esi
push 0x80000001
call dword [section..rdata]
test eax, eax
jne 0x40b273
push str.Success
jmp 0x40b295
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x6c]
push eax
push ebx
push edi
push ebx
push ebx
push ebx
push esi
push 0x80000001
call dword [0x423024]
test eax, eax
je 0x40b2a3
push str.Could_not_create_ICC_keys
lea eax, [ebp + 0x1110]
push eax
call fcn.00412670
pop ecx
pop ecx
pop edi
cmp dword [ebp - 0x6c], ebx
je 0x40b2e7
lea eax, [ebp + 0xbfc]
push eax
call dword [0x423038]
inc eax
push eax
lea eax, [ebp + 0xbfc]
push eax
push 1
push ebx
push str.Path
push dword [ebp - 0x6c]
call dword [0x423018]
test eax, eax
je 0x40b2e7
lea eax, [ebp + 0x1110]
push str.Could_not_Set_PathName_Key
push eax
call fcn.00412670
pop ecx
pop ecx
push 1
lea eax, [ebp - 0x65]
push eax
push 3
push ebx
push str.IsICCSupported
push dword [ebp - 0x6c]
call dword [0x423018]
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
cmp dword [ebp - 0x6c], ebx
setne cl
test ecx, eax
je 0x40b323
lea eax, [ebp + 0x1110]
push str.Could_not_Set_IsICCSupported_Key
push eax
call fcn.00412670
pop ecx
pop ecx
mov esi, dword [0x423020]
cmp dword [ebp - 0x70], ebx
je 0x40b333
push dword [ebp - 0x70]
call esi
cmp dword [ebp - 0x6c], ebx
je 0x40b33d
push dword [ebp - 0x6c]
call esi
mov al, byte [ebp - 0x65]
mov ecx, dword [ebp + 0x1214]
pop esi
xor ecx, ebp
pop ebx
call fcn.00412768
add ebp, 0x1218
leave
ret