Function at 0x42cf21
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push 0x6e8
mov eax, 0x47d2cd
call fcn.00450819
mov ebx, dword [ebp + 8]
xor eax, eax
mov esi, dword [ebp + 0xc]
push 0x400
push eax
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x488], eax
lea eax, [ebp - 0x410]
push eax
mov dword [ebp - 0x494], ebx
mov dword [ebp - 0x490], esi
call fcn.00452e20
add esp, 0xc
mov byte [ebp - 0x471], 0
mov byte [ebp - 0x472], 0
test ebx, ebx
je 0x42d030
test esi, esi
je 0x42d030
lea eax, [ebp - 0x484]
xor ebx, ebx
push eax
push 9
push ebx
push 0x49de58
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test edi, edi
je 0x42d03a
lea ecx, [ebp - 0x52c]
call fcn.00408d76
mov esi, eax
mov dword [ebp - 4], ebx
push str.Open_key:
push esi
call fcn.0040b812
push 0x49de58
push esi
call fcn.0040b812
push str._failed_ec
push esi
call fcn.0040b812
add esp, 0x18
mov ecx, esi
push edi
call fcn.0040a427
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.00408d5d
mov byte [ebp - 4], 1
lea eax, [ebp - 0x428]
push eax
push 2
call fcn.00406d81
pop ecx
pop ecx
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x428]
call fcn.00407241
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x52c]
call fcn.0040878b
xor al, al
call fcn.004507c3
ret 0xc
mov dword [ebp - 0x478], 0x200
mov eax, ebx
mov dword [ebp - 0x48c], ebx
cmp eax, 0x400
jae 0x42d417
push ebx
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x478]
push ecx
lea ecx, [ebp - 0x410]
push ecx
push eax
push dword [ebp - 0x484]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x42d417
lea eax, [ebp - 0x480]
push eax
push 9
push ebx
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x484]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test edi, edi
je 0x42d2cc
lea ecx, [ebp - 0x52c]
call fcn.00408d76
mov esi, eax
mov dword [ebp - 4], 2
push str.updtDispDevEnumClass::GetEDIDData
push esi
call fcn.0040b812
push str._RegEnumKeyEx_failed_with_code
push esi
call fcn.0040b812
add esp, 0x10
mov ecx, esi
push edi
call fcn.0040a427
lea eax, [ebp - 0x428]
mov ecx, esi
push eax
call fcn.00408d5d
mov byte [ebp - 4], 3
lea eax, [ebp - 0x428]
push eax
push 2
call fcn.00406d81
pop ecx
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x428]
call fcn.00407241
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x52c]
call fcn.0040878b
jmp 0x42d3f7
cmp ebx, 0x400
jae 0x42d3e9
xor eax, eax
mov dword [ebp - 0x478], 0x200
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x478]
push eax
lea eax, [ebp - 0x410]
push eax
push ebx
push dword [ebp - 0x480]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov edi, eax
test edi, edi
jne 0x42d353
lea eax, [ebp - 0x47c]
push eax
push 0x20019
push edi
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x480]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42d2bf
lea eax, [ebp - 0x478]
mov dword [ebp - 0x478], 0x400
push eax
lea eax, [ebp - 0x410]
push eax
push edi
push edi
push str.Driver
push dword [ebp - 0x47c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
test edi, edi
jne 0x42d2de
push dword [ebp - 0x494]
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x42d2bf
lea eax, [ebp - 0x488]
push eax
push 0x20019
push edi
push str.Device_Parameters
push dword [ebp - 0x47c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42d2b8
lea eax, [ebp - 0x478]
mov dword [ebp - 0x478], 0x100
push eax
push esi
push edi
push edi
push str.EDID
push dword [ebp - 0x488]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x42d230
mov byte [ebp - 0x472], 1
jmp 0x42d2ac
lea ecx, [ebp - 0x5c4]
call fcn.00408d76
mov esi, eax
mov dword [ebp - 4], 8
push str.updtDispDevEnumClass::GetEDIDData
push esi
call fcn.0040b812
push str._RegQueryValueEx_on_EDID_failed_with_code
push esi
call fcn.0040b812
add esp, 0x10
mov ecx, esi
push 0
call fcn.0040a427
lea eax, [ebp - 0x440]
mov ecx, esi
push eax
call fcn.00408d5d
mov byte [ebp - 4], 9
lea eax, [ebp - 0x440]
push eax
push 2
call fcn.00406d81
pop ecx
pop ecx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x440]
call fcn.00407241
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c4]
call fcn.0040878b
mov esi, dword [ebp - 0x490]
push dword [ebp - 0x488]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 0x471], 1
push dword [ebp - 0x47c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc ebx
cmp byte [ebp - 0x471], 0
je 0x42d11f
jmp 0x42d3e9
lea ecx, [ebp - 0x65c]
call fcn.00408d76
mov esi, eax
mov dword [ebp - 4], 6
push str.updtDispDevEnumClass::GetEDIDData
push esi
call fcn.0040b812
push str._RegQueryValueEx_failed_with_code
push esi
call fcn.0040b812
add esp, 0x10
mov ecx, esi
push edi
call fcn.0040a427
lea eax, [ebp - 0x458]
mov ecx, esi
push eax
call fcn.00408d5d
mov byte [ebp - 4], 7
lea eax, [ebp - 0x458]
push eax
push 2
call fcn.00406d81
pop ecx
pop ecx
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x458]
call fcn.00407241
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x65c]
jmp 0x42d3e4
cmp edi, 0x103
je 0x42d3e9
lea ecx, [ebp - 0x6f4]
call fcn.00408d76
mov esi, eax
mov dword [ebp - 4], 4
push str.updtDispDevEnumClass::GetEDIDData
push esi
call fcn.0040b812
push str._RegEnumKeyEx_failed__subIndex
push esi
call fcn.0040b812
add esp, 0x10
mov ecx, esi
push ebx
call fcn.0040a427
push str.__code
push esi
call fcn.0040b812
pop ecx
pop ecx
push edi
mov ecx, esi
call fcn.0040a427
lea eax, [ebp - 0x470]
mov ecx, esi
push eax
call fcn.00408d5d
mov byte [ebp - 4], 5
lea eax, [ebp - 0x470]
push eax
push 2
call fcn.00406d81
pop ecx
pop ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x470]
call fcn.00407241
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6f4]
call fcn.0040878b
push dword [ebp - 0x480]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ebx, ebx
mov eax, dword [ebp - 0x48c]
mov esi, dword [ebp - 0x490]
inc eax
cmp byte [ebp - 0x471], 0
mov dword [ebp - 0x48c], eax
je 0x42d04c
push dword [ebp - 0x484]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [ebp - 0x472]
jmp 0x42d032