Function at 0x408474
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe80
push ebx
push esi
mov dword [ebp - 4], edx
mov dword [ebp - 0x6c], eax
lea ebx, [ebp - 0x68]
mov eax, 0x4624c4
call fcn.004533cc
mov dword [ebx + 0x1c], 1
lea edx, [ebp - 4]
lea eax, [ebp - 4]
call fcn.0045d3b8
inc dword [ebx + 0x1c]
mov dl, 1
mov word [ebx + 0x10], 8
mov eax, dword [0x43e468]
call fcn.004019c8
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x14]
mov word [ebx + 0x10], 0x14
mov edx, 0x45ff3f
call fcn.0045d380
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x14]
lea eax, [ebp - 4]
call fcn.0045d908
mov esi, eax
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.0045d450
mov word [ebx + 0x10], 8
mov word [ebx + 0x10], 0x20
xor ecx, ecx
lea eax, [ebp - 8]
mov dword [ebp - 8], ecx
push eax
inc dword [ebx + 0x1c]
lea eax, [ebp - 4]
lea ecx, [esi - 1]
mov edx, 1
call fcn.0045d7b0
mov word [ebx + 0x10], 8
mov word [ebx + 0x10], 0x2c
xor ecx, ecx
mov dword [ebp - 0xc], ecx
lea ecx, [ebp - 0xc]
inc dword [ebx + 0x1c]
lea edx, [ebp - 8]
mov eax, str.SystemCurrentControlSetEnum_
call fcn.0045d97c
mov word [ebx + 0x10], 8
lea eax, [ebp - 0x74]
push eax
push 0x20019
push 0
cmp dword [ebp - 0xc], 0
je 0x408557
mov edx, dword [ebp - 0xc]
jmp 0x40855c
mov edx, 0x45ff60
push edx
push 0x80000002
call sub.ADVAPI32.DLL_RegOpenKeyExA
test eax, eax
je 0x408612
mov word [ebx + 0x10], 0x38
call sub.KERNEL32.DLL_GetLastError
xor ecx, ecx
mov dword [ebp - 0x18], ecx
lea edx, [ebp - 0x18]
inc dword [ebx + 0x1c]
call fcn.00405804
lea edx, [ebp - 0x18]
xor eax, eax
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x1c]
inc dword [ebx + 0x1c]
mov eax, str.Open_...PCI_failed:
call fcn.0045d97c
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0x6c]
mov edx, dword [edx]
call fcn.00408c1c
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.0045d450
mov eax, dword [ebp - 0x70]
mov edx, 2
push eax
lea eax, [ebp - 0xc]
dec dword [ebx + 0x1c]
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0045d450
pop eax
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x408978
mov word [ebx + 0x10], 0x44
xor ecx, ecx
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], ecx
push eax
inc dword [ebx + 0x1c]
cmp dword [ebp - 4], 0
je 0x408632
mov edx, dword [ebp - 4]
mov ecx, dword [edx - 4]
jmp 0x408634
xor ecx, ecx
sub ecx, esi
lea edx, [esi + 1]
lea eax, [ebp - 4]
call fcn.0045d7b0
mov word [ebx + 0x10], 8
xor esi, esi
mov dword [ebp - 0x80], 0x100
mov word [ebx + 0x10], 8
lea eax, [ebp - 0x7c]
lea edx, [ebp - 0x80]
push eax
push 0
push 0
push 0
push edx
lea ecx, [ebp - 0x180]
push ecx
push esi
mov eax, dword [ebp - 0x74]
push eax
call sub.ADVAPI32.DLL_RegEnumKeyExA
test eax, eax
jne 0x408781
xor edx, edx
lea eax, [ebp - 0x10]
mov dword [ebp - 0x24], edx
lea edx, [ebp - 0x24]
inc dword [ebx + 0x1c]
call fcn.0045d6a0
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x180]
push ecx
lea eax, [ebp - 0x20]
mov word [ebx + 0x10], 0x50
call fcn.0045d380
inc dword [ebx + 0x1c]
pop edx
call fcn.0045d894
push eax
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.0045d450
pop eax
test eax, eax
je 0x40883f
mov word [ebx + 0x10], 0x5c
mov edx, 0x45ff77
lea eax, [ebp - 0x28]
call fcn.0045d380
inc dword [ebx + 0x1c]
xor eax, eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 8]
inc dword [ebx + 0x1c]
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x2c]
call fcn.0045d4a8
lea edx, [ebp - 0x2c]
push edx
lea edx, [ebp - 0x180]
lea eax, [ebp - 0x30]
call fcn.0045d380
mov edx, eax
inc dword [ebx + 0x1c]
xor eax, eax
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x34]
inc dword [ebx + 0x1c]
pop eax
call fcn.0045d4a8
mov eax, dword [ebp - 0x70]
lea edx, [ebp - 0x34]
mov ecx, dword [eax]
mov edx, dword [edx]
call dword [ecx + 0x34]
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.0045d450
jmp 0x40883f
cmp eax, 0x103
je 0x40884c
mov word [ebx + 0x10], 0x68
call sub.KERNEL32.DLL_GetLastError
xor ecx, ecx
mov dword [ebp - 0x38], ecx
lea edx, [ebp - 0x38]
inc dword [ebx + 0x1c]
call fcn.00405804
lea edx, [ebp - 0x38]
xor eax, eax
mov dword [ebp - 0x3c], eax
lea ecx, [ebp - 0x3c]
inc dword [ebx + 0x1c]
mov eax, str.RegEnumKeyEx_failed:
call fcn.0045d97c
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0x6c]
mov edx, dword [edx]
call fcn.00408c1c
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x3c]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x38]
mov edx, 2
call fcn.0045d450
mov eax, dword [ebp - 0x70]
mov edx, 2
push eax
lea eax, [ebp - 0x10]
dec dword [ebx + 0x1c]
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0045d450
pop eax
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x408978
inc esi
cmp esi, 0x270f
jl 0x408649
lea ecx, [ebp - 0x74]
push ecx
push 0x20019
push 0
cmp dword [ebp - 0xc], 0
je 0x408862
mov eax, dword [ebp - 0xc]
jmp 0x408867
mov eax, 0x45ff8f
push eax
push 0x80000002
call sub.ADVAPI32.DLL_RegOpenKeyExA
test eax, eax
je 0x40892a
mov word [ebx + 0x10], 0x74
call sub.KERNEL32.DLL_GetLastError
xor edx, edx
mov dword [ebp - 0x40], edx
lea edx, [ebp - 0x40]
inc dword [ebx + 0x1c]
call fcn.00405804
lea edx, [ebp - 0x40]
xor eax, eax
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x44]
inc dword [ebx + 0x1c]
mov eax, str.Open_...PCI..._failed:
call fcn.0045d97c
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x6c]
mov edx, dword [edx]
call fcn.00408c1c
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0x40]
mov edx, 2
call fcn.0045d450
mov eax, dword [ebp - 0x70]
mov edx, 2
push eax
lea eax, [ebp - 0x10]
dec dword [ebx + 0x1c]
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0045d450
pop eax
mov edx, dword [ebx]
mov dword fs:[0], edx
jmp 0x408978
mov eax, dword [ebp - 0x70]
mov edx, 2
push eax
lea eax, [ebp - 0x10]
dec dword [ebx + 0x1c]
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0045d450
dec dword [ebx + 0x1c]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0045d450
pop eax
mov edx, dword [ebx]
mov dword fs:[0], edx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret