Function at 0x437007
Capabilities:
Query or enumerate registry key

Disassembly:
push 0x1b4
mov eax, 0x4a18a2
call fcn.0045201c
mov dword [ebp - 0x88], ecx
lea eax, [ebp - 0x7c]
push eax
push 9
push 0
push str.SYSTEMCurrentControlSetEnumPCI
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x43704d
push str.Get_nVidia_Registry_failed_n
push 1
call fcn.00401235
pop ecx
pop ecx
xor al, al
jmp 0x4373ab
push 0x400
call fcn.0045244e
mov edi, eax
pop ecx
test edi, edi
jne 0x437065
push str.Allocate_memory_failed_in_GetRegInfo
jmp 0x43703d
lea ecx, [ebp - 0x28]
call fcn.00401a80
xor ecx, ecx
mov dword [ebp - 4], ecx
lea eax, [ebp - 0x74]
push ecx
push ecx
push ecx
push ecx
push eax
push edi
mov ebx, ecx
mov dword [ebp - 0x8c], ecx
push ecx
jmp 0x437304
push str.VEN_10DE
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push str.VEN_10DE
push edi
call fcn.0047be16
add esp, 0xc
test eax, eax
jne 0x4372f1
push str.DEV_
push edi
call fcn.0046a9b7
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4372f1
push str.DEV_
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push 0x4c6488
lea esi, [esi + eax*2]
push esi
call fcn.0046a9b7
pop ecx
pop ecx
test eax, eax
je 0x4372f1
sub eax, esi
lea ecx, [ebp - 0x70]
sar eax, 1
push eax
push esi
call fcn.00406c4c
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x28]
push eax
call fcn.0040165f
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x70]
call fcn.004020b0
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 0x4372f1
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 dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x437154
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4372f1
lea eax, [ebp - 0x84]
push eax
push 9
push 0
push edi
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4372f1
xor ecx, ecx
lea eax, [ebp - 0x74]
push ecx
push ecx
push ecx
push ecx
push eax
push edi
mov esi, ecx
push ecx
jmp 0x4371fd
push str.Control
push edi
call fcn.0047bdd6
pop ecx
pop ecx
test eax, eax
jne 0x4371f0
lea ecx, [ebp - 0x28]
call fcn.00401ffa
mov ecx, dword [ebp - 0x88]
mov edx, eax
call fcn.004080f0
mov ebx, dword [eax]
call fcn.0040b532
test al, al
je 0x4371e9
mov ecx, edx
call fcn.00401ffa
push ebx
push 0x18
mov esi, eax
call fcn.00402248
pop ecx
pop ecx
mov ecx, esi
mov edx, eax
call fcn.00401ffa
push eax
mov ecx, edx
call fcn.00402a9b
mov ecx, dword [ebp - 0x88]
call fcn.004080f0
mov esi, dword [ebp - 0x80]
add dword [eax], 0x18
jmp 0x4371f0
push edx
push ebx
call fcn.0040b6a8
inc esi
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x74]
push eax
push edi
push esi
push dword [ebp - 0x84]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x74], 0x200
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov ebx, eax
test ebx, ebx
je 0x437181
cmp ebx, 0x103
jne 0x437238
push str.Enum_h3rdKeyStr_ERROR_NO_MORE_ITEMS_n
push 4
call fcn.00401235
pop ecx
pop ecx
jmp 0x4372d6
lea ecx, [ebp - 0x128]
call fcn.00402a5a
mov esi, eax
mov byte [ebp - 4], 4
push str.Enum_h3rdKeyStr_0x
push esi
call fcn.0040508d
pop ecx
pop ecx
push fcn.004074c0
mov ecx, esi
call fcn.00407466
push ebx
mov ecx, esi
call fcn.00403c13
push str._index_0x
push esi
call fcn.0040508d
pop ecx
pop ecx
push fcn.004074c0
mov ecx, esi
call fcn.00407466
push dword [ebp - 0x80]
mov ecx, esi
call fcn.00403c13
push str._failed
push esi
call fcn.0040508d
pop ecx
pop ecx
lea eax, [ebp - 0x40]
mov ecx, esi
push eax
call fcn.00402a43
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x40]
call fcn.00402109
push eax
push 2
call fcn.00401235
pop ecx
pop ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
call fcn.004020b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x128]
call fcn.00402479
push dword [ebp - 0x84]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x78]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x8c]
inc ebx
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x74]
mov dword [ebp - 0x8c], ebx
push eax
push edi
push ebx
push dword [ebp - 0x7c]
mov dword [ebp - 0x74], 0x200
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
je 0x437089
lea ecx, [ebp - 0x1c0]
call fcn.00402a5a
mov esi, eax
mov byte [ebp - 4], 1
push str.GetRegInfo_RegEnumKeyEx_Failed
push esi
call fcn.0040508d
pop ecx
pop ecx
push ebx
mov ecx, esi
call fcn.00403c13
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
call fcn.00402a43
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x58]
call fcn.00402109
push eax
push 2
call fcn.00401235
pop ecx
pop ecx
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x58]
call fcn.004020b0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c0]
call fcn.00402479
push dword [ebp - 0x7c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edi
call fcn.0045235a
mov dword [esp], str.Exit_GetRegInfo_n
push 3
call fcn.00401235
pop ecx
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.004020b0
mov al, 1
call fcn.00451fc5
ret