Function at 0x40d068
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x460]
sub esp, 0x460
push 0xffffffffffffffff
push 0x42045d
mov eax, dword fs:[0]
push eax
sub esp, 0xbcc
mov eax, dword [0x427470]
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.00403d3d
mov edi, 0x174
xor ebx, ebx
push edi
lea eax, [ebp + 0x174]
push ebx
push eax
mov dword [ebp - 4], ebx
call fcn.00410ca0
lea esi, [edi - 4]
push esi
lea eax, [ebp - 0x1a0]
push ebx
push eax
mov dword [ebp - 0x14], ebx
call fcn.00410ca0
add esp, 0x18
lea eax, [ebp - 0x14]
push eax
push 0x4220f8
push 0x15
push ebx
push 0x422158
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x40d112
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40d112
mov ecx, dword [eax]
lea edx, [ebp - 0x1a0]
push edx
push esi
push eax
call dword [ecx + 0x10]
mov ecx, dword [0x42880c]
lea eax, [ebp + 0x174]
push eax
call fcn.00405e2c
or esi, 0xffffffff
mov byte [ebp - 0x15], al
cmp al, bl
jne 0x40d13f
mov ecx, dword [0x42880c]
push esi
push str._n_tno_valid_confuration_was_found_in_registry_system_will_read_the_default_data
call fcn.0040117b
lea ecx, [ebp + 0x2e8]
mov dword [ebp - 0x24], ebx
call fcn.00403d3d
push edi
lea eax, [ebp + 0x2e8]
push ebx
push eax
mov byte [ebp - 4], 1
call fcn.00410ca0
push edi
lea eax, [ebp + 0x174]
push eax
lea eax, [ebp + 0x2e8]
push eax
call fcn.00410e50
mov ecx, dword [0x42880c]
add esp, 0x18
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x2e8]
push eax
call fcn.004026e0
mov byte [ebp - 0xd], al
cmp al, 1
jne 0x40d63a
mov ecx, dword [0x42880c]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 0x2e8]
push eax
call fcn.004027fe
mov byte [ebp - 0xd], al
cmp al, 1
jne 0x40d3ff
cmp byte [ebp - 0x15], bl
jne 0x40d3e8
mov ecx, dword [0x42880c]
push esi
push str._n_n_tReading_default_data
call fcn.0040117b
mov eax, dword [ebp + 0x458]
cmp eax, 1
jne 0x40d1e5
push esi
push str._n_tOperating_mode:Single_display
jmp 0x40d202
cmp eax, 8
jne 0x40d1f2
push esi
push str._n_tOperating_mode:Extended_display
jmp 0x40d202
cmp eax, 4
je 0x40d1fc
cmp eax, 2
jne 0x40d20d
push esi
push str._n_tOperating_mode:Clone_display
mov ecx, dword [0x42880c]
call fcn.0040117b
mov ecx, dword [0x42880c]
push esi
push str._n_n_tPrimay_Device:
call fcn.0040117b
push dword [ebp + 0x2e8]
mov ecx, dword [0x42880c]
call fcn.004011f1
push dword [ebp + 0x2ec]
mov ecx, dword [0x42880c]
push str._n_tPrimay_Device_horizontal_resolution:
call fcn.0040117b
push dword [ebp + 0x2f0]
mov ecx, dword [0x42880c]
push str._n_tPrimay_Device_vertical_resolution:
call fcn.0040117b
push dword [ebp + 0x2f8]
mov ecx, dword [0x42880c]
push str._n_tPrimay_Device_bits_per_pixel:
call fcn.0040117b
push dword [ebp + 0x2f4]
mov ecx, dword [0x42880c]
push str._n_tPrimay_Device_refresh_rate:
call fcn.0040117b
push dword [ebp + 0x300]
mov ecx, dword [0x42880c]
push str._n_tPrimay_Device_orientation:
call fcn.0040117b
mov ecx, dword [0x42880c]
push esi
push str._n_tPrimay_Device_aspect_scaling:
call fcn.0040117b
push dword [ebp + 0x2fc]
mov ecx, dword [0x42880c]
call fcn.004012ce
cmp dword [ebp + 0x2e4], 8
je 0x40d2d5
cmp dword [ebp + 0x2e4], 4
jne 0x40d3e8
mov ecx, dword [0x42880c]
push esi
push str._n_n_tSecondary_Device:
call fcn.0040117b
push dword [ebp + 0x344]
mov ecx, dword [0x42880c]
call fcn.004011f1
push dword [ebp + 0x348]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_horizontal_resolution:
call fcn.0040117b
push dword [ebp + 0x34c]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_vertical_resolution:
call fcn.0040117b
push dword [ebp + 0x354]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_bits_per_pixel:
call fcn.0040117b
push dword [ebp + 0x350]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_refresh_rate:
call fcn.0040117b
push dword [ebp + 0x35c]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_orientation:
call fcn.0040117b
mov ecx, dword [0x42880c]
push esi
push str._n_tSecondary_Device_aspect_scaling:
call fcn.0040117b
push dword [ebp + 0x358]
mov ecx, dword [0x42880c]
call fcn.004012ce
cmp dword [ebp + 0x2e4], 8
jne 0x40d3e8
push dword [ebp + 0x364]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_position_top:
call fcn.0040117b
push dword [ebp + 0x368]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_position_left:
call fcn.0040117b
push dword [ebp + 0x370]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_position_right:
call fcn.0040117b
push dword [ebp + 0x36c]
mov ecx, dword [0x42880c]
push str._n_tSecondary_Device_position_bottom:
call fcn.0040117b
push edi
lea eax, [ebp + 0x2e8]
push eax
lea eax, [ebp + 0x174]
push eax
call fcn.00410e50
add esp, 0xc
test byte [ebp - 0x24], 2
je 0x40d40e
test byte [ebp - 0x24], 4
je 0x40d40e
mov byte [ebp - 0x20], bl
cmp byte [ebp - 0xd], 1
jne 0x40d63a
cmp dword [ebp + 0x174], ebx
je 0x40d629
cmp dword [ebp + 0x2e4], ebx
je 0x40d629
mov ecx, dword [0x42880c]
lea eax, [ebp + 0x174]
push eax
call fcn.00401844
cmp al, 1
jne 0x40d63a
push dword [ebp - 0x20]
mov ecx, dword [0x42880c]
lea eax, [ebp + 0x174]
push eax
call fcn.0040193a
mov byte [ebp - 0xd], al
cmp al, bl
jne 0x40d63a
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 0x40d4bc
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 0x40d4bc
push dword [ebp - 0x2c]
jmp 0x40d4c1
push 0x2bc
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x1c], ebx
je 0x40d4d5
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x14]
push eax
push 0x4220f8
push 0x15
push ebx
push 0x422158
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
mov esi, 0xa38
jl 0x40d542
cmp dword [ebp - 0x14], ebx
je 0x40d542
push esi
lea eax, [ebp - 0xbd8]
push ebx
push eax
call fcn.00410ca0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [ebp - 0xbd8]
push edx
push esi
push eax
call dword [ecx + 0x6c]
lea eax, [ebp - 0xbc8]
push eax
call fcn.00407f5a
lea eax, [ebp - 0xac4]
push eax
call fcn.00407f5a
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.00403d3d
push edi
lea eax, [ebp]
push ebx
push eax
mov byte [ebp - 4], 2
call fcn.00410ca0
add esp, 0xc
lea eax, [ebp + 0x174]
push eax
lea ecx, [ebp]
mov dword [ebp + 0x170], 1
call fcn.0040cdda
push dword [ebp - 0x20]
mov ecx, dword [0x42880c]
lea eax, [ebp]
push eax
call fcn.0040193a
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x14]
push eax
push 0x4220f8
push 0x15
push ebx
push 0x422158
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x40d5fa
cmp dword [ebp - 0x14], ebx
je 0x40d5fa
push esi
lea eax, [ebp - 0xbd8]
push ebx
push eax
call fcn.00410ca0
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [ebp - 0xbd8]
push edx
push esi
push eax
call dword [ecx + 0x6c]
lea eax, [ebp - 0xbc8]
push eax
call fcn.00407f5a
lea eax, [ebp - 0xac4]
push eax
call fcn.00407f5a
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 [0x42880c]
lea eax, [ebp + 0x174]
push eax
call fcn.0040193a
mov byte [ebp - 0xd], al
cmp al, bl
jne 0x40d61b
call fcn.0040d025
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.00403d6d
jmp 0x40d63a
mov ecx, dword [0x42880c]
push esi
push str._n_tNo_Valid_Mode_to_Apply
call fcn.0040117b
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x40d64a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x14], ebx
lea ecx, [ebp + 0x2e8]
call fcn.00403d6d
lea ecx, [ebp + 0x174]
call fcn.00403d6d
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.00410d1a
add ebp, 0x460
leave
ret