Function at 0x4372d5
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x1b4
mov eax, 0x47eb76
call fcn.00450819
mov dword [ebp - 0x8c], ecx
lea eax, [ebp - 0x7c]
xor ebx, ebx
push eax
push 9
push ebx
push str.SYSTEMCurrentControlSetEnumPCI
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x43731c
push str.Get_nVidia_Registry_failed_n
push 1
call fcn.00406d9c
pop ecx
pop ecx
xor al, al
jmp 0x437659
push 0x400
call fcn.00450c07
mov edi, eax
pop ecx
test edi, edi
jne 0x437334
push str.Allocate_memory_failed_in_GetRegInfo
jmp 0x43730c
lea ecx, [ebp - 0x28]
call fcn.00407270
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x74]
push ebx
push ebx
push ebx
push ebx
push eax
push edi
mov dword [ebp - 0x84], ebx
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
jmp 0x4375b6
push str.VEN_10DE
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push str.VEN_10DE
push edi
call fcn.00462794
add esp, 0xc
test eax, eax
jne 0x43759d
push str.DEV_
push edi
call fcn.00454c6d
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x43759d
push str.DEV_
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x4a1d20
lea esi, [esi + eax*2]
push esi
call fcn.00454c6d
pop ecx
pop ecx
test eax, eax
je 0x43759d
sub eax, esi
lea ecx, [ebp - 0x70]
sar eax, 1
push eax
push esi
call fcn.00408da5
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28]
push eax
call fcn.0041508c
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.00407241
lea eax, [ebp - 0x78]
push eax
push 9
push 0
push edi
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x43759d
xor ecx, ecx
mov dword [ebp - 0x74], 0x200
push ecx
push ecx
push ecx
push ecx
lea eax, [ebp - 0x74]
push eax
push edi
push ecx
push dword [ebp - 0x78]
call ebx
test eax, eax
je 0x437421
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x43759d
lea eax, [ebp - 0x80]
push eax
push 9
push 0
push edi
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x43759d
xor ecx, ecx
mov dword [ebp - 0x74], 0x200
push ecx
push ecx
push ecx
push ecx
lea eax, [ebp - 0x74]
mov dword [ebp - 0x88], ecx
push eax
push edi
push ecx
push dword [ebp - 0x80]
mov esi, ecx
call ebx
mov ebx, eax
test ebx, ebx
jne 0x4374aa
push str.Control
push edi
call fcn.00462754
pop ecx
pop ecx
test eax, eax
jne 0x437481
mov ecx, dword [ebp - 0x8c]
lea eax, [ebp - 0x28]
push eax
call fcn.0040e039
xor eax, eax
mov dword [ebp - 0x74], 0x200
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x74]
inc esi
push eax
push edi
push esi
push dword [ebp - 0x80]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov ebx, eax
test ebx, ebx
je 0x437461
mov dword [ebp - 0x88], esi
cmp ebx, 0x103
jne 0x4374c5
push str.Enum_h3rdKeyStr_ERROR_NO_MORE_ITEMS_n
push 4
call fcn.00406d9c
pop ecx
pop ecx
jmp 0x437587
lea ecx, [ebp - 0x128]
call fcn.00408d76
mov esi, eax
mov byte [ebp - 4], 4
push str.Enum_h3rdKeyStr_0x
push esi
call fcn.0040b812
pop ecx
pop ecx
test esi, esi
jne 0x4374eb
xor ecx, ecx
jmp 0x4374f2
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
mov eax, dword [ecx + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + 0x14], eax
mov ecx, esi
push ebx
call fcn.0040a427
push str._index_0x
push esi
call fcn.0040b812
pop ecx
pop ecx
test esi, esi
jne 0x43751f
xor ecx, ecx
jmp 0x437526
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
mov eax, dword [ecx + 0x14]
push dword [ebp - 0x88]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + 0x14], eax
mov ecx, esi
call fcn.0040a427
push str._failed
push esi
call fcn.0040b812
pop ecx
pop ecx
lea eax, [ebp - 0x40]
mov ecx, esi
push eax
call fcn.00408d5d
mov byte [ebp - 4], 5
lea eax, [ebp - 0x40]
push eax
push 2
call fcn.00406d81
pop ecx
pop ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
call fcn.00407241
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x128]
call fcn.0040878b
push dword [ebp - 0x80]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x78]
call esi
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov eax, dword [ebp - 0x84]
inc eax
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x84], eax
push ecx
push edi
push eax
push dword [ebp - 0x7c]
mov dword [ebp - 0x74], 0x200
call ebx
test eax, eax
je 0x43735a
lea ecx, [ebp - 0x1c0]
call fcn.00408d76
mov esi, eax
mov byte [ebp - 4], 1
push str.GetRegInfo_RegEnumKeyEx_Failed
push esi
call fcn.0040b812
pop ecx
pop ecx
push dword [ebp - 0x84]
mov ecx, esi
call fcn.0040a427
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
call fcn.00408d5d
mov byte [ebp - 4], 2
lea eax, [ebp - 0x58]
push eax
push 2
call fcn.00406d81
pop ecx
pop ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x58]
call fcn.00407241
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c0]
call fcn.0040878b
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
call fcn.00450b1b
mov dword [esp], str.Exit_GetRegInfo_n
push 3
call fcn.00406d9c
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00407241
mov al, 1
call fcn.004507c3
ret