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

Disassembly:
push 0x704
mov eax, 0x52671e
call fcn.004f4139
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.004e9070
add esp, 0xc
mov byte [ebp - 0x481], bl
mov byte [ebp - 0x482], bl
cmp esi, ebx
je 0x45b2e2
cmp edi, ebx
je 0x45b2e2
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 0x45b2ea
lea eax, [ebp - 0x548]
push eax
call fcn.004036d7
mov edi, eax
mov dword [ebp - 4], ebx
push str.Open_key:
push edi
call fcn.00406897
push esi
push edi
call fcn.00406897
push str._failed_ec
push edi
call fcn.00406897
add esp, 0x18
push dword [ebp - 0x48c]
push edi
call fcn.004053dc
lea eax, [ebp - 0x448]
push eax
mov eax, edi
call fcn.00403741
mov byte [ebp - 4], 1
cmp dword [ebp - 0x434], 8
mov eax, dword [ebp - 0x448]
jae 0x45b2ba
lea eax, [ebp - 0x448]
push eax
push 2
pop ecx
call fcn.004284f3
pop ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x448]
call fcn.004014ad
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x548]
call fcn.004025ae
xor al, al
call fcn.004f41bc
ret
mov dword [ebp - 0x488], 0x200
mov dword [ebp - 0x490], ebx
mov edi, str.updtDispDevEnumClass::GetEDIDData
cmp dword [ebp - 0x490], 0x400
jae 0x45b7b9
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 0x45b71d
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 0x45b3f6
lea eax, [ebp - 0x548]
push eax
call fcn.004036d7
mov esi, eax
mov dword [ebp - 4], 4
push edi
push esi
call fcn.00406897
push str._RegEnumKeyEx_failed_with_code
push esi
call fcn.00406897
add esp, 0x10
push dword [ebp - 0x48c]
push esi
call fcn.004053dc
lea eax, [ebp - 0x448]
push eax
mov eax, esi
call fcn.00403741
mov byte [ebp - 4], 5
cmp dword [ebp - 0x434], 8
mov eax, dword [ebp - 0x448]
jae 0x45b3c9
lea eax, [ebp - 0x448]
push eax
push 2
pop ecx
call fcn.004284f3
pop ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x448]
call fcn.004014ad
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x548]
call fcn.004025ae
jmp 0x45b705
mov dword [ebp - 0x494], ebx
jmp 0x45b5cc
cmp dword [ebp - 0x494], 0x400
jae 0x45b6f9
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 0x45b5de
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 0x45b5b8
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 0x45b674
push dword [ebp - 0x4a8]
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x45b5b8
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 0x45b5b1
lea eax, [ebp - 0x488]
push eax
push dword [ebp - 0x4ac]
mov dword [ebp - 0x488], pe_nt_image_headers32
push esi
push esi
push str.EDID
push dword [ebp - 0x4a4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x45b524
mov byte [ebp - 0x482], 1
jmp 0x45b5a5
lea eax, [ebp - 0x710]
push eax
call fcn.004036d7
mov esi, eax
mov dword [ebp - 4], 0xa
push edi
push esi
call fcn.00406897
push str._RegQueryValueEx_on_EDID_failed_with_code
push esi
call fcn.00406897
add esp, 0x10
push 0
push esi
call fcn.004053dc
lea eax, [ebp - 0x480]
push eax
mov eax, esi
call fcn.00403741
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x46c], 8
mov eax, dword [ebp - 0x480]
jae 0x45b57d
lea eax, [ebp - 0x480]
push eax
push 2
pop ecx
call fcn.004284f3
pop ecx
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x480]
call fcn.004014ad
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x710]
call fcn.004025ae
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 0x45b401
jmp 0x45b6f9
lea eax, [ebp - 0x678]
push eax
call fcn.004036d7
mov esi, eax
mov dword [ebp - 4], 6
push edi
push esi
call fcn.00406897
push str._RegEnumKeyEx_failed__subIndex
push esi
call fcn.00406897
add esp, 0x10
push dword [ebp - 0x494]
push esi
call fcn.004053dc
push str.__code
push esi
call fcn.00406897
pop ecx
pop ecx
push ebx
push esi
call fcn.004053dc
lea eax, [ebp - 0x464]
push eax
mov eax, esi
call fcn.00403741
mov byte [ebp - 4], 7
cmp dword [ebp - 0x450], 8
mov eax, dword [ebp - 0x464]
jae 0x45b64f
lea eax, [ebp - 0x464]
push eax
push 2
pop ecx
call fcn.004284f3
pop ecx
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x464]
call fcn.004014ad
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x678]
jmp 0x45b6f2
lea eax, [ebp - 0x5e0]
push eax
call fcn.004036d7
mov esi, eax
push 8
pop ebx
mov dword [ebp - 4], ebx
push edi
push esi
call fcn.00406897
push str._RegQueryValueEx_failed_with_code
push esi
call fcn.00406897
add esp, 0x10
push dword [ebp - 0x48c]
push esi
call fcn.004053dc
lea eax, [ebp - 0x42c]
push eax
mov eax, esi
call fcn.00403741
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x42c]
cmp dword [ebp - 0x418], ebx
jae 0x45b6cf
lea eax, [ebp - 0x42c]
push eax
push 2
pop ecx
call fcn.004284f3
pop ecx
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x42c]
call fcn.004014ad
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x5e0]
call fcn.004025ae
xor ebx, ebx
push dword [ebp - 0x498]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc dword [ebp - 0x490]
cmp byte [ebp - 0x481], 0
je 0x45b2ff
jmp 0x45b7b9
lea eax, [ebp - 0x5e0]
push eax
call fcn.004036d7
mov esi, eax
push 2
pop ebx
mov dword [ebp - 4], ebx
push edi
push esi
call fcn.00406897
push str._RegEnumKeyEx_failed_at_index
push esi
call fcn.00406897
add esp, 0x10
push dword [ebp - 0x490]
push esi
call fcn.004053dc
push str._with_code
push esi
call fcn.00406897
pop ecx
pop ecx
push dword [ebp - 0x48c]
push esi
call fcn.004053dc
lea eax, [ebp - 0x42c]
push eax
mov eax, esi
call fcn.00403741
mov byte [ebp - 4], 3
cmp dword [ebp - 0x418], 8
mov eax, dword [ebp - 0x42c]
jae 0x45b792
lea eax, [ebp - 0x42c]
push eax
mov ecx, ebx
call fcn.004284f3
pop ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x42c]
call fcn.004014ad
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x5e0]
call fcn.004025ae
push dword [ebp - 0x4a0]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [ebp - 0x482]
jmp 0x45b2e4