Function at 0x4046e3
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe4c
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0xc], esi
cmp byte [esi + 0x218], bl
mov dword [ebp - 8], ebx
je 0x404718
mov dword [ebp - 0x50], str.SYSTEMCurrentControlSetEnum
mov dword [ebp - 0x18], str.SYSTEMCurrentControlSetControlClass
mov dword [ebp - 0x2c], str.SYSTEMCurrentControlSetControlNetwork
jmp 0x40472d
mov dword [ebp - 0x50], str.Enum
mov dword [ebp - 0x18], str.SystemCurrentControlSetServicesClass
mov dword [ebp - 0x2c], str.EnumNetwork
mov edi, dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
push str.NetClient
push dword [ebp + 8]
call edi
test eax, eax
je 0x405197
push str.NetService
push dword [ebp + 8]
call edi
test eax, eax
je 0x405197
cmp byte [esi + 0x221], bl
je 0x4052f3
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x60]
push 1
push eax
push dword [ebp + 8]
call dword [0x416c28]
push 2
push ebx
lea eax, [ebp - 0x60]
push ebx
push eax
call dword [0x416c20]
cmp eax, 0xffffffff
mov dword [ebp - 0x1c], eax
je 0x4052f3
lea eax, [ebp - 0x80]
mov dword [ebp - 0x14], ebx
push eax
push ebx
push dword [ebp - 0x1c]
mov dword [ebp - 0x80], 0x1c
call dword [0x416c2c]
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
mov esi, dword [sym.imp.KERNEL32.DLL_lstrcpyA]
test eax, eax
je 0x404e81
lea eax, [ebp - 0x34]
mov dword [ebp - 0x10], ebx
push eax
push ebx
push dword [ebp - 0x38]
lea eax, [ebp - 0x80]
mov dword [ebp - 0x34], 1
push eax
push dword [ebp - 0x1c]
call dword [0x416c30]
push dword [ebp - 0x34]
push 0x40
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x38], eax
push ecx
push dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x1c]
call dword [0x416c30]
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
mov ecx, dword [ebp - 0x34]
lea eax, [eax + ecx + 1]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
push dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
push dword [ebp - 0x50]
push 0x411d78
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push dword [ebp - 0x38]
call edi
lea eax, [ebp - 0x20]
push eax
push 1
push ebx
push dword [ebp - 0x40]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404e61
push ebx
push str.FriendlyName
push dword [ebp - 0x20]
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x3c], ebx
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
jne 0x404882
push ebx
push str.DeviceDesc
push dword [ebp - 0x20]
call fcn.0040de53
add esp, 0xc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
push ebx
push 0x411d58
mov dword [ebp - 0x24], eax
push dword [ebp - 0x20]
call fcn.0040de53
add esp, 0xc
cmp dword [ebp - 4], ebx
mov dword [ebp - 0x28], eax
jne 0x4048ae
push 1
push 0x40
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x28], ebx
jne 0x4048c0
push 1
push 0x40
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov dword [ebp - 0x28], eax
push ebx
push str.Driver
push dword [ebp - 0x20]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x4c], eax
je 0x40497c
mov edi, dword [sym.imp.KERNEL32.DLL_lstrlenA]
push eax
call edi
push dword [ebp - 0x18]
mov edx, eax
mov dword [ebp - 0x30], edx
call edi
mov ecx, dword [ebp - 0x30]
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
lea eax, [ecx + eax + 2]
push eax
push ebx
call edi
push dword [ebp - 0x4c]
mov dword [ebp - 0x48], eax
push dword [ebp - 0x18]
push 0x411d78
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x10]
push eax
push 1
push ebx
push dword [ebp - 0x48]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404976
push ebx
push str.DriverDate
push dword [ebp - 0x10]
call fcn.0040de53
push ebx
push str.DriverVersion
push dword [ebp - 0x10]
mov dword [ebp - 0x44], eax
call fcn.0040de53
add esp, 0x18
cmp dword [ebp - 0x44], ebx
mov dword [ebp - 0x3c], eax
jne 0x404964
push 1
push 0x40
call edi
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x3c], ebx
jne 0x404976
push 1
push 0x40
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov dword [ebp - 0x3c], eax
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
push str.CDROM
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x404a43
lea ecx, [ebp - 0x714]
call fcn.00402689
push dword [ebp - 0x24]
lea eax, [ebp - 0x714]
push eax
call esi
push dword [ebp - 0x28]
lea eax, [ebp - 0x614]
push eax
call esi
push dword [ebp - 0x44]
lea eax, [ebp - 0x514]
push eax
call esi
push dword [ebp - 0x3c]
lea eax, [ebp - 0x509]
push eax
call esi
push ebx
push str.CurrentDriveLetterAssignment
push dword [ebp - 0x20]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x4049f4
push eax
lea eax, [ebp - 0x4f9]
push eax
call esi
push dword [ebp - 4]
call edi
mov eax, dword [ebp - 0xc]
push ebx
cmp byte [eax + 0x218], bl
je 0x404a19
push str.Autorun
push str.SYSTEMCurrentControlSetServicesCdrom
push 0x80000002
call fcn.0040deaf
add esp, 0x10
jmp 0x404a29
push str.AutoInsertNotification
push dword [ebp - 0x20]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
je 0x404a38
mov cl, byte [eax]
push eax
mov byte [ebp - 0x4df], cl
call edi
lea eax, [ebp - 0x714]
jmp 0x404dfc
push 0x411cc8
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x404bc2
lea ecx, [ebp - 0x4dc]
call fcn.00405560
push ebx
push str.NetCfgInstanceId
push dword [ebp - 0x10]
mov dword [ebp - 0x2c], ebx
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x404b73
mov edi, dword [sym.imp.KERNEL32.DLL_lstrlenA]
push eax
call edi
mov edx, eax
push str.ParametersTcpip
mov dword [ebp - 0x30], edx
call edi
mov edi, dword [ebp - 0x30]
push str.SYSTEMCurrentControlSetServices
add edi, eax
call dword [sym.imp.KERNEL32.DLL_lstrlenA]
lea eax, [edi + eax + 3]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
push str.ParametersTcpip
mov dword [ebp - 0x30], eax
push dword [ebp - 4]
push str.SYSTEMCurrentControlSetServices
push 0x411c70
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
add esp, 0x14
push dword [ebp - 4]
call edi
lea eax, [ebp - 0x2c]
push eax
push 1
push ebx
push dword [ebp - 0x30]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404b6e
push ebx
push str.EnableDHCP
push dword [ebp - 0x2c]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
je 0x404b17
mov ecx, dword [eax]
push eax
mov dword [ebp - 0x2a0], ecx
call edi
push ebx
push str.IPAddress
push dword [ebp - 0x2c]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x404b3e
push eax
lea eax, [ebp - 0x2c1]
push eax
call esi
push dword [ebp - 4]
call edi
push ebx
push str.SubnetMask
push dword [ebp - 0x2c]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x404b65
push eax
lea eax, [ebp - 0x2b1]
push eax
call esi
push dword [ebp - 4]
call edi
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push dword [ebp - 0x30]
call edi
cmp dword [ebp - 0x2c], ebx
jne 0x404b87
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x218], bl
jne 0x404e10
push dword [ebp - 0x24]
lea eax, [ebp - 0x4dc]
push eax
call esi
push dword [ebp - 0x28]
lea eax, [ebp - 0x3dc]
push eax
call esi
push dword [ebp - 0x44]
lea eax, [ebp - 0x2dc]
push eax
call esi
push dword [ebp - 0x3c]
lea eax, [ebp - 0x2d1]
push eax
call esi
lea eax, [ebp - 0x4dc]
jmp 0x404dfc
push str.Modem
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x404c8c
lea ecx, [ebp - 0xe4c]
call fcn.00405510
push dword [ebp - 0x24]
lea eax, [ebp - 0xe4c]
push eax
call esi
push dword [ebp - 0x28]
lea eax, [ebp - 0xd4c]
push eax
call esi
push dword [ebp - 0x44]
lea eax, [ebp - 0xc4c]
push eax
call esi
push dword [ebp - 0x3c]
lea eax, [ebp - 0xc41]
push eax
call esi
push ebx
push str.AttachedTo
push dword [ebp - 0x10]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x404c3a
push eax
lea eax, [ebp - 0xc31]
push eax
call esi
push dword [ebp - 4]
call edi
push ebx
push str.Model
push dword [ebp - 0x10]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x404c61
push eax
lea eax, [ebp - 0xb31]
push eax
call esi
push dword [ebp - 4]
call edi
push ebx
push str.PortSubClass
push dword [ebp - 0x10]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
je 0x404c81
mov cl, byte [eax]
push eax
mov byte [ebp - 0xa31], cl
call edi
lea eax, [ebp - 0xe4c]
jmp 0x404dfc
push str.Ports
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x404d51
lea ecx, [ebp - 0xa30]
call fcn.0040553b
push dword [ebp - 0x24]
lea eax, [ebp - 0xa30]
push eax
call esi
push dword [ebp - 0x28]
lea eax, [ebp - 0x930]
push eax
call esi
push dword [ebp - 0x44]
lea eax, [ebp - 0x830]
push eax
call esi
push dword [ebp - 0x3c]
lea eax, [ebp - 0x825]
push eax
call esi
mov eax, dword [ebp - 0xc]
push ebx
cmp byte [eax + 0x218], bl
je 0x404d00
push str.PortName
push str.Device_Parameters
push dword [ebp - 0x20]
call fcn.0040deaf
add esp, 0x10
jmp 0x404d10
push str.PORTNAME
push dword [ebp - 0x20]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x404d26
push eax
lea eax, [ebp - 0x815]
push eax
call esi
push dword [ebp - 4]
call edi
push ebx
push str.PortSubClass
push dword [ebp - 0x10]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
je 0x404d46
mov cl, byte [eax]
push eax
mov byte [ebp - 0x715], cl
call edi
lea eax, [ebp - 0xa30]
jmp 0x404dfc
push dword [ebp - 0x24]
lea eax, [ebp - 0x29c]
mov byte [ebp - 0x29c], bl
mov byte [ebp - 0x19c], bl
push eax
mov byte [ebp - 0x9c], bl
mov byte [ebp - 0x91], bl
call esi
push dword [ebp - 0x28]
lea eax, [ebp - 0x19c]
push eax
call esi
push dword [ebp - 0x44]
lea eax, [ebp - 0x9c]
push eax
call esi
push dword [ebp - 0x3c]
lea eax, [ebp - 0x91]
push eax
call esi
push str.MEDIA
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x404df6
push ebx
push str.Service
push dword [ebp - 0x20]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x404dd3
push str.audstub
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
je 0x404dea
lea eax, [ebp - 0x29c]
push eax
mov eax, dword [ebp + 0xc]
push 0x7fffffff
push dword [eax]
call dword [0x416c04]
cmp dword [ebp - 4], ebx
je 0x404e0d
push dword [ebp - 4]
call edi
jmp 0x404e0d
lea eax, [ebp - 0x29c]
push eax
mov eax, dword [ebp + 0xc]
push 0x7fffffff
push dword [eax]
call dword [0x416c04]
inc dword [ebp - 8]
cmp dword [ebp - 0x4c], ebx
je 0x404e1a
push dword [ebp - 0x4c]
call edi
cmp dword [ebp - 0x24], ebx
je 0x404e24
push dword [ebp - 0x24]
call edi
cmp dword [ebp - 0x28], ebx
je 0x404e2e
push dword [ebp - 0x28]
call edi
cmp dword [ebp - 0x44], ebx
je 0x404e38
push dword [ebp - 0x44]
call edi
cmp dword [ebp - 0x3c], ebx
je 0x404e42
push dword [ebp - 0x3c]
call edi
cmp dword [ebp - 0x48], ebx
je 0x404e4f
push dword [ebp - 0x48]
call edi
mov dword [ebp - 0x48], ebx
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x40]
call edi
inc dword [ebp - 0x14]
lea eax, [ebp - 0x80]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
call dword [0x416c2c]
test eax, eax
jne 0x4047bc
push dword [ebp - 0x1c]
call dword [0x416c24]
mov ecx, dword [ebp - 0xc]
call fcn.00401d56
cmp eax, 6
jne 0x405506
cmp dword [ebp - 8], ebx
jne 0x405506
push 0x411cc8
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x404fe2
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push ebx
push str.SoftwareMicrosoftWindows_NTCurrentVersionNetworkCards
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x405506
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xc]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x404efe
mov dword [ebp - 0xc], 0x104
mov eax, dword [ebp - 0xc]
inc eax
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x38], eax
inc ecx
mov dword [ebp - 0x18], ebx
push ecx
push eax
push ebx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x404fd1
lea eax, [ebp - 0x14]
inc dword [ebp - 0x18]
push eax
push 0x20019
push ebx
push dword [ebp - 0x38]
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404fc1
lea ecx, [ebp - 0x4dc]
call fcn.00405560
push ebx
push str.Description
push dword [ebp - 0x14]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp + 8], eax
je 0x404f77
push eax
lea eax, [ebp - 0x4dc]
push eax
call esi
push dword [ebp + 8]
call edi
push ebx
push str.Manufacturer
push dword [ebp - 0x14]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp + 8], eax
je 0x404f9e
push eax
lea eax, [ebp - 0x3dc]
push eax
call esi
push dword [ebp + 8]
call edi
lea eax, [ebp - 0x4dc]
push eax
mov eax, dword [ebp + 0xc]
push 0x7fffffff
push dword [eax]
call dword [0x416c04]
push dword [ebp - 0x14]
inc dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0xc]
inc eax
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x18]
jmp 0x404f17
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x38]
jmp 0x405504
push str.MEDIA
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x405506
push ebx
push str.DriverList
push str.SoftwareMicrosoftWindowsCurrentVersionMultimediaMIDIMap
push 0x80000001
call fcn.0040deaf
add esp, 0x10
cmp eax, ebx
mov dword [ebp - 0x40], eax
je 0x405506
push 0xffffffffffffffff
push 0x2c
push eax
mov dword [ebp + 8], eax
call fcn.0040e7d1
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x18], eax
je 0x40518f
push 0xffffffffffffffff
push 0x3a
push dword [ebp + 8]
mov byte [eax], bl
call fcn.0040e7d1
add esp, 0xc
cmp eax, ebx
je 0x405184
mov byte [eax], bl
inc eax
push str.Active
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x405184
lea eax, [ebp - 0x5c]
push 0xa
push eax
call fcn.0040e664
pop ecx
lea eax, [ebp - 0x5c]
pop ecx
push 0xa
push dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcpynA]
lea eax, [ebp - 0x5c]
push str.mmdrv.dll
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
je 0x405184
push dword [ebp + 8]
mov edi, dword [sym.imp.KERNEL32.DLL_lstrlenA]
call edi
mov edx, eax
push str.SYSTEMCurrentControlSetControlMediaResourcesMIDI
mov dword [ebp - 0x30], edx
call edi
mov ecx, dword [ebp - 0x30]
lea eax, [ecx + eax + 2]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
push dword [ebp + 8]
mov dword [ebp - 0x14], eax
push str.SYSTEMCurrentControlSetControlMediaResourcesMIDI
push 0x411d78
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
push ebx
push str.Driver
push dword [ebp - 0x14]
mov edi, 0x80000002
push edi
call fcn.0040deaf
add esp, 0x20
cmp eax, ebx
mov dword [ebp + 8], eax
je 0x405179
push ebx
push eax
push str.SOFTWAREMicrosoftWindows_NTCurrentVersiondrivers.desc
push edi
call fcn.0040deaf
mov edi, eax
add esp, 0x10
cmp edi, ebx
je 0x40516c
lea eax, [ebp - 0x29c]
push edi
push eax
mov byte [ebp - 0x29c], bl
mov byte [ebp - 0x19c], bl
mov byte [ebp - 0x9c], bl
mov byte [ebp - 0x91], bl
call esi
lea eax, [ebp - 0x19c]
push 0x411a9c
push eax
push dword [ebp + 8]
call fcn.0040d3f1
add esp, 0xc
lea eax, [ebp - 0x29c]
push eax
mov eax, dword [ebp + 0xc]
push 0x7fffffff
push dword [eax]
call dword [0x416c04]
inc dword [ebp - 8]
push edi
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
call edi
jmp 0x405172
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
push dword [ebp + 8]
call edi
jmp 0x40517f
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
push dword [ebp - 0x14]
call edi
mov eax, dword [ebp - 0x18]
add eax, 2
jmp 0x40501b
push dword [ebp - 0x40]
jmp 0x405504
cmp byte [esi + 0x218], bl
je 0x4052d7
push dword [ebp + 8]
mov ecx, esi
call fcn.00403fd7
mov edi, eax
cmp edi, ebx
je 0x4052f3
mov esi, dword [sym.imp.KERNEL32.DLL_lstrlenA]
push edi
call esi
push dword [ebp - 0x2c]
mov edx, eax
mov dword [ebp - 0x40], edx
call esi
mov ecx, dword [ebp - 0x40]
mov esi, dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
lea eax, [ecx + eax + 2]
push eax
push ebx
call esi
push edi
mov dword [ebp - 0x38], eax
push dword [ebp - 0x2c]
push 0x411d78
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp + 8]
mov edi, 0x20019
push eax
push edi
push ebx
push dword [ebp - 0x38]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4052c9
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xc]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x405234
mov dword [ebp - 0xc], 0x104
mov eax, dword [ebp - 0xc]
inc eax
push eax
push ebx
call esi
mov ecx, dword [ebp - 0xc]
mov esi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
inc ecx
mov dword [ebp - 0x18], eax
push ecx
push eax
push ebx
mov dword [ebp - 0x14], ebx
push dword [ebp + 8]
call esi
test eax, eax
jne 0x4052b7
lea eax, [ebp - 0x30]
inc dword [ebp - 0x14]
push eax
push edi
push ebx
push dword [ebp - 0x18]
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4052a7
push ebx
push str.Description
push dword [ebp - 0x30]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x40], eax
je 0x40529e
mov ecx, dword [ebp + 0xc]
push eax
call fcn.0040cfd8
push dword [ebp - 0x40]
inc dword [ebp - 8]
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
push dword [ebp - 0x30]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0xc]
inc eax
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push dword [ebp + 8]
jmp 0x405252
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.DLL_GlobalFree]
jmp 0x405506
lea eax, [ebp - 0x28]
push eax
push 0x20019
push ebx
push dword [ebp - 0x2c]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x4052fb
or eax, 0xffffffff
jmp 0x405509
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x4c]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x40531d
mov dword [ebp - 0x4c], 0x104
mov eax, dword [ebp - 0x4c]
inc eax
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x20], eax
inc ecx
mov dword [ebp - 0x18], ebx
push ecx
push eax
push ebx
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
test eax, eax
jne 0x4054f8
mov esi, dword [sym.imp.KERNEL32.DLL_lstrlenA]
lea eax, [ebp - 0x1c]
inc dword [ebp - 0x18]
push eax
push 0x20019
push ebx
push dword [ebp - 0x20]
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4054dc
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x48]
push ebx
push eax
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x405396
mov dword [ebp - 0x48], 0x104
mov eax, dword [ebp - 0x48]
inc eax
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
inc ecx
mov dword [ebp - 0x14], ebx
push ecx
push eax
push ebx
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x4054ce
lea eax, [ebp - 0x24]
inc dword [ebp - 0x14]
push eax
push 0x20019
push ebx
push dword [ebp - 0x34]
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4054be
push ebx
push str.Class
push dword [ebp - 0x24]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x10], eax
je 0x4054b5
push dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x4054b0
push ebx
push str.MasterCopy
push dword [ebp - 0x24]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x10], eax
je 0x4054b5
push dword [ebp - 0x34]
call esi
push dword [ebp - 0x20]
mov edi, eax
call esi
push dword [ebp - 0x2c]
add edi, eax
call esi
lea eax, [edi + eax + 3]
push eax
push ebx
call dword [sym.imp.KERNEL32.DLL_GlobalAlloc]
push dword [ebp - 0x34]
mov dword [ebp - 0xc], eax
push dword [ebp - 0x20]
push dword [ebp - 0x2c]
push 0x411c70
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
push dword [ebp - 0x10]
mov edi, dword [sym.imp.KERNEL32.DLL_GlobalFree]
test eax, eax
je 0x405485
call edi
push dword [ebp - 0xc]
jmp 0x4054b3
call edi
push dword [ebp - 0xc]
call edi
push ebx
push str.DeviceDesc
push dword [ebp - 0x24]
call fcn.0040de53
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x10], eax
je 0x4054b5
mov ecx, dword [ebp + 0xc]
push eax
call fcn.0040cfd8
inc dword [ebp - 8]
push dword [ebp - 0x10]
call edi
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x48]
inc eax
push eax
push dword [ebp - 0x34]
push dword [ebp - 0x14]
jmp 0x4053af
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x34]
call edi
mov eax, dword [ebp - 0x4c]
inc eax
push eax
push dword [ebp - 0x20]
push dword [ebp - 0x18]
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x405353
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x20]
call edi
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret 8