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

Disassembly:
push 0x704
mov eax, 0x5a117e
call fcn.0056ce95
xor eax, eax
push 0x3fe
mov word [ebp - 0x410], ax
xor ebx, ebx
lea eax, [ebp - 0x40e]
mov esi, ecx
mov edi, edx
push ebx
push eax
mov dword [ebp - 0x4a8], esi
mov dword [ebp - 0x4ac], edi
call fcn.00560d40
add esp, 0xc
mov byte [ebp - 0x481], bl
mov byte [ebp - 0x482], bl
cmp esi, ebx
je 0x4c07e9
cmp edi, ebx
je 0x4c07e9
lea eax, [ebp - 0x4a0]
push eax
push 9
push ebx
mov esi, str.SYSTEMCurrentControlSetEnumDisplay
push esi
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x48c], eax
cmp eax, ebx
je 0x4c07f1
lea eax, [ebp - 0x548]
push eax
call fcn.00409ac6
mov edi, eax
mov dword [ebp - 4], ebx
push str.Open_key:
push edi
call fcn.0040fa1f
push esi
push edi
call fcn.0040fa1f
push str._failed_ec
push edi
call fcn.0040fa1f
add esp, 0x18
push dword [ebp - 0x48c]
push edi
call fcn.0040d432
lea eax, [ebp - 0x448]
push eax
mov eax, edi
call fcn.00409b30
mov byte [ebp - 4], 1
cmp dword [ebp - 0x434], 8
mov eax, dword [ebp - 0x448]
jae 0x4c07c1
lea eax, [ebp - 0x448]
push eax
push 2
pop ecx
call fcn.0047c666
pop ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x448]
call fcn.004090d2
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x548]
call fcn.004021a3
xor al, al
call fcn.0056cf18
ret
mov dword [ebp - 0x488], 0x200
mov dword [ebp - 0x490], ebx
mov edi, str.updtDispDevEnumClass::GetEDIDData
cmp dword [ebp - 0x490], 0x400
jae 0x4c0cc0
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x490]
push dword [ebp - 0x4a0]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov dword [ebp - 0x48c], eax
cmp eax, ebx
jne 0x4c0c24
lea eax, [ebp - 0x498]
push eax
push 9
push ebx
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x4a0]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x48c], eax
cmp eax, ebx
je 0x4c08fd
lea eax, [ebp - 0x548]
push eax
call fcn.00409ac6
mov esi, eax
mov dword [ebp - 4], 4
push edi
push esi
call fcn.0040fa1f
push str._RegEnumKeyEx_failed_with_code
push esi
call fcn.0040fa1f
add esp, 0x10
push dword [ebp - 0x48c]
push esi
call fcn.0040d432
lea eax, [ebp - 0x448]
push eax
mov eax, esi
call fcn.00409b30
mov byte [ebp - 4], 5
cmp dword [ebp - 0x434], 8
mov eax, dword [ebp - 0x448]
jae 0x4c08d0
lea eax, [ebp - 0x448]
push eax
push 2
pop ecx
call fcn.0047c666
pop ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x448]
call fcn.004090d2
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x548]
call fcn.004021a3
jmp 0x4c0c0c
mov dword [ebp - 0x494], ebx
jmp 0x4c0ad3
cmp dword [ebp - 0x494], 0x400
jae 0x4c0c00
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x494]
mov dword [ebp - 0x488], 0x200
push dword [ebp - 0x498]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov ebx, eax
test ebx, ebx
jne 0x4c0ae5
lea eax, [ebp - 0x49c]
push eax
mov esi, 0x20019
push esi
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x498]
call ebx
test eax, eax
jne 0x4c0abf
lea eax, [ebp - 0x488]
push eax
lea eax, [ebp - 0x410]
push eax
push 0
push 0
push str.Driver
push dword [ebp - 0x49c]
mov dword [ebp - 0x488], 0x400
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x48c], eax
test eax, eax
jne 0x4c0b7b
push dword [ebp - 0x4a8]
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4c0abf
lea eax, [ebp - 0x4a4]
push eax
push esi
xor esi, esi
push esi
push str.Device_Parameters
push dword [ebp - 0x49c]
call ebx
cmp eax, esi
jne 0x4c0ab8
lea eax, [ebp - 0x488]
push eax
push dword [ebp - 0x4ac]
mov dword [ebp - 0x488], 0x100
push esi
push esi
push str.EDID
push dword [ebp - 0x4a4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4c0a2b
mov byte [ebp - 0x482], 1
jmp 0x4c0aac
lea eax, [ebp - 0x710]
push eax
call fcn.00409ac6
mov esi, eax
mov dword [ebp - 4], 0xa
push edi
push esi
call fcn.0040fa1f
push str._RegQueryValueEx_on_EDID_failed_with_code
push esi
call fcn.0040fa1f
add esp, 0x10
push 0
push esi
call fcn.0040d432
lea eax, [ebp - 0x480]
push eax
mov eax, esi
call fcn.00409b30
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x46c], 8
mov eax, dword [ebp - 0x480]
jae 0x4c0a84
lea eax, [ebp - 0x480]
push eax
push 2
pop ecx
call fcn.0047c666
pop ecx
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x480]
call fcn.004090d2
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x710]
call fcn.004021a3
push dword [ebp - 0x4a4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 0x481], 1
push dword [ebp - 0x49c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc dword [ebp - 0x494]
xor ebx, ebx
cmp byte [ebp - 0x481], 0
je 0x4c0908
jmp 0x4c0c00
lea eax, [ebp - 0x678]
push eax
call fcn.00409ac6
mov esi, eax
mov dword [ebp - 4], 6
push edi
push esi
call fcn.0040fa1f
push str._RegEnumKeyEx_failed__subIndex
push esi
call fcn.0040fa1f
add esp, 0x10
push dword [ebp - 0x494]
push esi
call fcn.0040d432
push str.__code
push esi
call fcn.0040fa1f
pop ecx
pop ecx
push ebx
push esi
call fcn.0040d432
lea eax, [ebp - 0x464]
push eax
mov eax, esi
call fcn.00409b30
mov byte [ebp - 4], 7
cmp dword [ebp - 0x450], 8
mov eax, dword [ebp - 0x464]
jae 0x4c0b56
lea eax, [ebp - 0x464]
push eax
push 2
pop ecx
call fcn.0047c666
pop ecx
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x464]
call fcn.004090d2
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x678]
jmp 0x4c0bf9
lea eax, [ebp - 0x5e0]
push eax
call fcn.00409ac6
mov esi, eax
push 8
pop ebx
mov dword [ebp - 4], ebx
push edi
push esi
call fcn.0040fa1f
push str._RegQueryValueEx_failed_with_code
push esi
call fcn.0040fa1f
add esp, 0x10
push dword [ebp - 0x48c]
push esi
call fcn.0040d432
lea eax, [ebp - 0x42c]
push eax
mov eax, esi
call fcn.00409b30
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x42c]
cmp dword [ebp - 0x418], ebx
jae 0x4c0bd6
lea eax, [ebp - 0x42c]
push eax
push 2
pop ecx
call fcn.0047c666
pop ecx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x42c]
call fcn.004090d2
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x5e0]
call fcn.004021a3
xor ebx, ebx
push dword [ebp - 0x498]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc dword [ebp - 0x490]
cmp byte [ebp - 0x481], 0
je 0x4c0806
jmp 0x4c0cc0
lea eax, [ebp - 0x5e0]
push eax
call fcn.00409ac6
mov esi, eax
push 2
pop ebx
mov dword [ebp - 4], ebx
push edi
push esi
call fcn.0040fa1f
push str._RegEnumKeyEx_failed_at_index
push esi
call fcn.0040fa1f
add esp, 0x10
push dword [ebp - 0x490]
push esi
call fcn.0040d432
push str._with_code
push esi
call fcn.0040fa1f
pop ecx
pop ecx
push dword [ebp - 0x48c]
push esi
call fcn.0040d432
lea eax, [ebp - 0x42c]
push eax
mov eax, esi
call fcn.00409b30
mov byte [ebp - 4], 3
cmp dword [ebp - 0x418], 8
mov eax, dword [ebp - 0x42c]
jae 0x4c0c99
lea eax, [ebp - 0x42c]
push eax
mov ecx, ebx
call fcn.0047c666
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x42c]
call fcn.004090d2
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x5e0]
call fcn.004021a3
push dword [ebp - 0x4a0]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [ebp - 0x482]
jmp 0x4c07eb