Function at 0x40c6fb
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x460]
sub esp, 0x460
push 0xffffffffffffffff
push 0x41f9f7
mov eax, dword fs:[0]
push eax
sub esp, 0xbc8
mov eax, dword [0x426470]
xor eax, ebp
mov dword [ebp + 0x45c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp + 0x174]
mov byte [ebp - 0x20], 1
call fcn.00403a93
mov edi, 0x174
xor ebx, ebx
push edi
lea eax, [ebp + 0x174]
push ebx
push eax
mov dword [ebp - 4], ebx
call fcn.00410280
lea esi, [edi - 8]
push esi
lea eax, [ebp - 0x19c]
push ebx
push eax
mov dword [ebp - 0x14], ebx
call fcn.00410280
add esp, 0x18
lea eax, [ebp - 0x14]
push eax
push 0x4210a8
push 0x15
push ebx
push 0x421108
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x40c7a5
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40c7a5
mov ecx, dword [eax]
lea edx, [ebp - 0x19c]
push edx
push esi
push eax
call dword [ecx + 0x10]
mov ecx, dword [0x427808]
lea eax, [ebp + 0x174]
push eax
call fcn.00405b03
or esi, 0xffffffff
mov byte [ebp - 0x15], al
cmp al, bl
jne 0x40c7d2
mov ecx, dword [0x427808]
push esi
push str._n_tno_valid_confuration_was_found_in_registry_system_will_read_the_default_data
call fcn.004010dc
lea ecx, [ebp + 0x2e8]
mov dword [ebp - 0x24], ebx
call fcn.00403a93
push edi
lea eax, [ebp + 0x2e8]
push ebx
push eax
mov byte [ebp - 4], 1
call fcn.00410280
push edi
lea eax, [ebp + 0x174]
push eax
lea eax, [ebp + 0x2e8]
push eax
call fcn.00410430
mov ecx, dword [0x427808]
add esp, 0x18
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x2e8]
push eax
call fcn.004025a9
mov byte [ebp - 0xd], al
cmp al, 1
jne 0x40ccd0
mov ecx, dword [0x427808]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x2e8]
push eax
call fcn.004026c7
mov byte [ebp - 0xd], al
cmp al, 1
jne 0x40ca92
cmp byte [ebp - 0x15], bl
jne 0x40ca7b
mov ecx, dword [0x427808]
push esi
push str._n_n_tReading_default_data
call fcn.004010dc
mov eax, dword [ebp + 0x458]
cmp eax, 1
jne 0x40c878
push esi
push str._n_tOperating_mode:Single_display
jmp 0x40c895
cmp eax, 8
jne 0x40c885
push esi
push str._n_tOperating_mode:Extended_display
jmp 0x40c895
cmp eax, 4
je 0x40c88f
cmp eax, 2
jne 0x40c8a0
push esi
push str._n_tOperating_mode:Clone_display
mov ecx, dword [0x427808]
call fcn.004010dc
mov ecx, dword [0x427808]
push esi
push str._n_n_tPrimay_Device:
call fcn.004010dc
push dword [ebp + 0x2e8]
mov ecx, dword [0x427808]
call fcn.00401152
push dword [ebp + 0x2ec]
mov ecx, dword [0x427808]
push str._n_tPrimay_Device_horizontal_resolution:
call fcn.004010dc
push dword [ebp + 0x2f0]
mov ecx, dword [0x427808]
push str._n_tPrimay_Device_vertical_resolution:
call fcn.004010dc
push dword [ebp + 0x2f8]
mov ecx, dword [0x427808]
push str._n_tPrimay_Device_bits_per_pixel:
call fcn.004010dc
push dword [ebp + 0x2f4]
mov ecx, dword [0x427808]
push str._n_tPrimay_Device_refresh_rate:
call fcn.004010dc
push dword [ebp + 0x300]
mov ecx, dword [0x427808]
push str._n_tPrimay_Device_orientation:
call fcn.004010dc
mov ecx, dword [0x427808]
push esi
push str._n_tPrimay_Device_aspect_scaling:
call fcn.004010dc
push dword [ebp + 0x2fc]
mov ecx, dword [0x427808]
call fcn.0040122f
cmp dword [ebp + 0x2e4], 8
je 0x40c968
cmp dword [ebp + 0x2e4], 4
jne 0x40ca7b
mov ecx, dword [0x427808]
push esi
push str._n_n_tSecondary_Device:
call fcn.004010dc
push dword [ebp + 0x344]
mov ecx, dword [0x427808]
call fcn.00401152
push dword [ebp + 0x348]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_horizontal_resolution:
call fcn.004010dc
push dword [ebp + 0x34c]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_vertical_resolution:
call fcn.004010dc
push dword [ebp + 0x354]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_bits_per_pixel:
call fcn.004010dc
push dword [ebp + 0x350]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_refresh_rate:
call fcn.004010dc
push dword [ebp + 0x35c]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_orientation:
call fcn.004010dc
mov ecx, dword [0x427808]
push esi
push str._n_tSecondary_Device_aspect_scaling:
call fcn.004010dc
push dword [ebp + 0x358]
mov ecx, dword [0x427808]
call fcn.0040122f
cmp dword [ebp + 0x2e4], 8
jne 0x40ca7b
push dword [ebp + 0x364]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_position_top:
call fcn.004010dc
push dword [ebp + 0x368]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_position_left:
call fcn.004010dc
push dword [ebp + 0x370]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_position_right:
call fcn.004010dc
push dword [ebp + 0x36c]
mov ecx, dword [0x427808]
push str._n_tSecondary_Device_position_bottom:
call fcn.004010dc
push edi
lea eax, [ebp + 0x2e8]
push eax
lea eax, [ebp + 0x174]
push eax
call fcn.00410430
add esp, 0xc
test byte [ebp - 0x24], 2
je 0x40caa1
test byte [ebp - 0x24], 4
je 0x40caa1
mov byte [ebp - 0x20], bl
cmp byte [ebp - 0xd], 1
jne 0x40ccd0
cmp dword [ebp + 0x174], ebx
je 0x40ccbf
cmp dword [ebp + 0x2e4], ebx
je 0x40ccbf
mov ecx, dword [0x427808]
lea eax, [ebp + 0x174]
push eax
call fcn.004017a0
cmp al, 1
jne 0x40ccd0
push dword [ebp - 0x20]
mov ecx, dword [0x427808]
lea eax, [ebp + 0x174]
push eax
call fcn.00401896
mov byte [ebp - 0xd], al
cmp al, bl
jne 0x40ccd0
lea eax, [ebp - 0x1c]
push eax
push 1
push ebx
push str.SoftwareIntelDisplayigfxcuiigfxcfg
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40cb4f
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
push ebx
push str.TimeDelay
push dword [ebp - 0x1c]
mov dword [ebp - 0x28], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40cb4f
push dword [ebp - 0x2c]
jmp 0x40cb54
push 0x2bc
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x1c], ebx
je 0x40cb68
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x14]
push eax
push 0x4210a8
push 0x15
push ebx
push 0x421108
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
mov esi, 0xa38
jl 0x40cbd5
cmp dword [ebp - 0x14], ebx
je 0x40cbd5
push esi
lea eax, [ebp - 0xbd4]
push ebx
push eax
call fcn.00410280
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [ebp - 0xbd4]
push edx
push esi
push eax
call dword [ecx + 0x6c]
lea eax, [ebp - 0xbc4]
push eax
call fcn.00407af5
lea eax, [ebp - 0xac0]
push eax
call fcn.00407af5
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x14], ebx
lea ecx, [ebp]
call fcn.00403a93
push edi
lea eax, [ebp]
push ebx
push eax
mov byte [ebp - 4], 2
call fcn.00410280
add esp, 0xc
lea eax, [ebp + 0x174]
push eax
lea ecx, [ebp]
mov dword [ebp + 0x170], 1
call fcn.0040c647
push dword [ebp - 0x20]
mov ecx, dword [0x427808]
lea eax, [ebp]
push eax
call fcn.00401896
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x14]
push eax
push 0x4210a8
push 0x15
push ebx
push 0x421108
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x40cc8d
cmp dword [ebp - 0x14], ebx
je 0x40cc8d
push esi
lea eax, [ebp - 0xbd4]
push ebx
push eax
call fcn.00410280
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [ebp - 0xbd4]
push edx
push esi
push eax
call dword [ecx + 0x6c]
lea eax, [ebp - 0xbc4]
push eax
call fcn.00407af5
lea eax, [ebp - 0xac0]
push eax
call fcn.00407af5
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x14], ebx
push dword [ebp - 0x20]
mov ecx, dword [0x427808]
lea eax, [ebp + 0x174]
push eax
call fcn.00401896
mov byte [ebp - 0xd], al
cmp al, bl
jne 0x40ccb1
call fcn.0040c6b8
mov byte [ebp - 0xd], al
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.00403ac3
jmp 0x40ccd0
mov ecx, dword [0x427808]
push esi
push str._n_tNo_Valid_Mode_to_Apply
call fcn.004010dc
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40cce0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x14], ebx
lea ecx, [ebp + 0x2e8]
call fcn.00403ac3
lea ecx, [ebp + 0x174]
call fcn.00403ac3
mov al, byte [ebp - 0xd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x45c]
xor ecx, ebp
call fcn.004102fa
add ebp, 0x460
leave
ret