Function at 0x401060
Capabilities:
Delete registry key
Delete registry value
Get installed programs
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2ac
mov dword [ebp - 0x14], 0x1e
push ebx
xor eax, eax
push esi
mov ecx, 0xf
push edi
xor esi, esi
lea edi, [ebp - 0x8c]
mov dword [ebp - 0x10], esi
rep stosd dword es:[edi], eax
lea eax, [ebp - 4]
push eax
push 0x20019
push esi
push str.EnumISAPNP
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4011e9
mov dword [ebp - 0xc], esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0xc]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov dword [ebp - 0x4c], eax
cmp eax, esi
jne 0x4011d7
push 0xe
lea eax, [ebp - 0x48]
push str.OPT0931_DEV000
push eax
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x4011d4
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0x20019
push esi
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4011d4
xor edi, edi
push 0x32
lea eax, [ebp - 0xe8]
push eax
push esi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x4011cb
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x1e
lea ebx, [ebp + eax - 0x2ac]
push 8
lea eax, [ebp - 0xe8]
push str.FFFFFFFF
push eax
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x4011b0
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0xe8]
push eax
push 0x20019
push esi
push ecx
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4011a6
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x14], 0x1e
push eax
push ecx
push esi
push esi
push str.Driver
push dword [ebp - 0x50]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4011a6
lea eax, [ebp - 0xb4]
push eax
push 0x41f500
push ebx
call fcn.00403d60
add esp, 0xc
add ebx, 0x1e
inc dword [ebp - 0x10]
push dword [ebp - 0x50]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc edi
push 0x32
lea eax, [ebp - 0xe8]
push eax
push edi
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x40112d
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc dword [ebp - 0xc]
cmp dword [ebp - 0x4c], esi
je 0x4010ac
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.EnumISAPNP
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401260
xor esi, esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov edi, eax
test edi, edi
jne 0x401257
push 0xe
lea eax, [ebp - 0x48]
push str.OPT0931_DEV000
push eax
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x401252
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x401253
inc esi
test edi, edi
je 0x40120a
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetServicesClassOPTi931MEDIA
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401294
lea eax, [ebp - 4]
push eax
call section..text
add esp, 4
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetServicesClass
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4012ca
push str.OPTi931MEDIA
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x10], 0
jle 0x4013e3
lea esi, [ebp - 0x8c]
xor edi, edi
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
lea ebx, [ebp + edi - 0x2ac]
push 5
push str.MEDIA
push ebx
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x40133a
push ebx
call fcn.00403dd0
add esp, 4
xor edx, edx
sub eax, 6
test eax, eax
jle 0x401325
lea ebx, [edi + edx]
inc edx
cmp edx, eax
mov cl, byte [ebp + ebx - 0x2a6]
mov byte [ebp + ebx - 0x2ac], cl
jl 0x40130f
add edx, edi
mov dword [esi], 1
mov byte [ebp + edx - 0x2ac], 0
jmp 0x4013d4
push 5
push str.Ports
push ebx
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x401388
push ebx
call fcn.00403dd0
add esp, 4
xor ebx, ebx
sub eax, 6
test eax, eax
jle 0x401376
lea edx, [edi + ebx]
inc ebx
cmp ebx, eax
mov cl, byte [ebp + edx - 0x2a6]
mov byte [ebp + edx - 0x2ac], cl
jl 0x401360
add ebx, edi
mov dword [esi], 2
mov byte [ebp + ebx - 0x2ac], 0
jmp 0x4013d4
push 3
push 0x41f47c
push ebx
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x4013d4
push ebx
call fcn.00403dd0
add esp, 4
xor ebx, ebx
sub eax, 4
test eax, eax
jle 0x4013c4
lea edx, [edi + ebx]
inc ebx
cmp ebx, eax
mov cl, byte [ebp + edx - 0x2a8]
mov byte [ebp + edx - 0x2ac], cl
jl 0x4013ae
add ebx, edi
mov dword [esi], 3
mov byte [ebp + ebx - 0x2ac], 0
add esi, 4
add edi, 0x1e
dec dword [ebp - 0xc]
jne 0x4012e2
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetServicesClassMEDIA
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401544
xor esi, esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x40153b
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x10], 0
jle 0x401522
lea ebx, [ebp - 0x2ac]
lea edi, [ebp - 0x8c]
cmp dword [edi], 1
jne 0x401455
push 4
lea eax, [ebp - 0x48]
push eax
push ebx
call fcn.00403ca0
add esp, 0xc
test eax, eax
je 0x40146b
add ebx, 0x1e
add edi, 4
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x10], eax
jg 0x40143d
jmp 0x401522
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401522
cmp dword [0x41f080], 0
jne 0x401508
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0xb4]
push eax
push ecx
push 0
push 0
push str.InfPath
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x401508
lea eax, [ebp - 0xb4]
push eax
push 0x41f500
push 0x422238
call fcn.00403d60
add esp, 0xc
push 3
push 0x41f440
push 0x422238
call fcn.00403ca0
add esp, 0xc
test eax, eax
je 0x4014fe
push 6
push str.OPTIIN
push 0x422238
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x401508
mov dword [0x41f080], 1
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
dec esi
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
inc esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x401420
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetServicesClassPorts
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40161d
xor esi, esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x401614
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x10], 0
jle 0x4015fb
lea edi, [ebp - 0x2ac]
lea ebx, [ebp - 0x8c]
cmp dword [ebx], 2
jne 0x4015b2
push 4
lea eax, [ebp - 0x48]
push eax
push edi
call fcn.00403ca0
add esp, 0xc
test eax, eax
je 0x4015c5
add edi, 0x1e
add ebx, 4
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x10], eax
jg 0x40159a
jmp 0x4015fb
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4015fb
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
dec esi
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
inc esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x401581
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetServicesClasshdc
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40177e
xor esi, esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x401775
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x10], 0
jle 0x40175c
lea ebx, [ebp - 0x2ac]
lea edi, [ebp - 0x8c]
cmp dword [edi], 3
jne 0x40168f
push 4
lea eax, [ebp - 0x48]
push eax
push ebx
call fcn.00403ca0
add esp, 0xc
test eax, eax
je 0x4016a5
add ebx, 0x1e
add edi, 4
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x10], eax
jg 0x401677
jmp 0x40175c
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40175c
cmp dword [0x41f080], 0
jne 0x401742
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0xb4]
push eax
push ecx
push 0
push 0
push str.InfPath
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x401742
lea eax, [ebp - 0xb4]
push eax
push 0x41f500
push 0x422238
call fcn.00403d60
add esp, 0xc
push 3
push 0x41f440
push 0x422238
call fcn.00403ca0
add esp, 0xc
test eax, eax
je 0x401738
push 6
push str.OPTIIN
push 0x422238
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x401742
mov dword [0x41f080], 1
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
dec esi
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
inc esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x40165a
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetcontrolMediaResourcesjoystick
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401856
push 0x32
lea eax, [ebp - 0x48]
mov dword [ebp - 0xc], 0
push eax
push 0
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x40184d
xor edi, edi
cmp dword [ebp - 0x10], edi
jle 0x401830
lea ebx, [ebp - 0x2ac]
lea esi, [ebp - 0x8c]
cmp dword [esi], 1
jne 0x4017ea
push ebx
lea eax, [ebp - 0x48]
push eax
call fcn.00403ce0
add esp, 8
test eax, eax
jne 0x4017f8
add ebx, 0x1e
add esi, 4
inc edi
cmp dword [ebp - 0x10], edi
jg 0x4017d4
jmp 0x401830
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401830
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
dec dword [ebp - 0xc]
push 0x32
lea eax, [ebp - 0x48]
push eax
inc dword [ebp - 0xc]
push dword [ebp - 0xc]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x4017c1
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetcontrolMediaResources_aux
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40192e
push 0x32
lea eax, [ebp - 0x48]
mov dword [ebp - 0xc], 0
push eax
push 0
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x401925
xor esi, esi
cmp dword [ebp - 0x10], esi
jle 0x401908
lea ebx, [ebp - 0x2ac]
lea edi, [ebp - 0x8c]
cmp dword [edi], 1
jne 0x4018c2
push ebx
lea eax, [ebp - 0x48]
push eax
call fcn.00403ce0
add esp, 8
test eax, eax
jne 0x4018d0
add ebx, 0x1e
add edi, 4
inc esi
cmp dword [ebp - 0x10], esi
jg 0x4018ac
jmp 0x401908
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401908
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
dec dword [ebp - 0xc]
push 0x32
lea eax, [ebp - 0x48]
push eax
inc dword [ebp - 0xc]
push dword [ebp - 0xc]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x401899
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetcontrolMediaResourcesmidi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401a06
push 0x32
lea eax, [ebp - 0x48]
mov dword [ebp - 0xc], 0
push eax
push 0
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x4019fd
xor esi, esi
cmp dword [ebp - 0x10], esi
jle 0x4019e0
lea edi, [ebp - 0x2ac]
lea ebx, [ebp - 0x8c]
cmp dword [ebx], 1
jne 0x40199a
push edi
lea eax, [ebp - 0x48]
push eax
call fcn.00403ce0
add esp, 8
test eax, eax
jne 0x4019a8
add edi, 0x1e
add ebx, 4
inc esi
cmp dword [ebp - 0x10], esi
jg 0x401984
jmp 0x4019e0
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4019e0
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
dec dword [ebp - 0xc]
push 0x32
lea eax, [ebp - 0x48]
push eax
inc dword [ebp - 0xc]
push dword [ebp - 0xc]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x401971
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetcontrolMediaResourcesmixer
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401ade
push 0x32
lea eax, [ebp - 0x48]
mov dword [ebp - 0xc], 0
push eax
push 0
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x401ad5
xor edi, edi
cmp dword [ebp - 0x10], edi
jle 0x401ab8
lea ebx, [ebp - 0x2ac]
lea esi, [ebp - 0x8c]
cmp dword [esi], 1
jne 0x401a72
push ebx
lea eax, [ebp - 0x48]
push eax
call fcn.00403ce0
add esp, 8
test eax, eax
jne 0x401a80
add ebx, 0x1e
add esi, 4
inc edi
cmp dword [ebp - 0x10], edi
jg 0x401a5c
jmp 0x401ab8
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401ab8
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
dec dword [ebp - 0xc]
push 0x32
lea eax, [ebp - 0x48]
push eax
inc dword [ebp - 0xc]
push dword [ebp - 0xc]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x401a49
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetcontrolMediaResourceswave
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401bb6
push 0x32
lea eax, [ebp - 0x48]
mov dword [ebp - 0xc], 0
push eax
push 0
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
jne 0x401bad
xor esi, esi
cmp dword [ebp - 0x10], esi
jle 0x401b90
lea ebx, [ebp - 0x2ac]
lea edi, [ebp - 0x8c]
cmp dword [edi], 1
jne 0x401b4a
push ebx
lea eax, [ebp - 0x48]
push eax
call fcn.00403ce0
add esp, 8
test eax, eax
jne 0x401b58
add ebx, 0x1e
add edi, 4
inc esi
cmp dword [ebp - 0x10], esi
jg 0x401b34
jmp 0x401b90
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401b90
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
dec dword [ebp - 0xc]
push 0x32
lea eax, [ebp - 0x48]
push eax
inc dword [ebp - 0xc]
push dword [ebp - 0xc]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
je 0x401b21
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetcontrolInstalledFiles
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401ce1
push str.sndm401p.drv
mov esi, dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
push dword [ebp - 4]
call esi
push str.sndm401p.vxd
push dword [ebp - 4]
call esi
push str.sndopl3p.drv
push dword [ebp - 4]
call esi
push str.snd_aux.inf
push dword [ebp - 4]
call esi
push str.adsrom.bin
push dword [ebp - 4]
call esi
push str.mbsrom.bin
push dword [ebp - 4]
call esi
push str.sndtune.exe
push dword [ebp - 4]
call esi
push str.Rm93xDrv.exe
push dword [ebp - 4]
call esi
push str.Rm93xDrv.dat
push dword [ebp - 4]
call esi
mov edi, dword [ebp + 8]
test edi, 1
je 0x401c6c
push str.snd931p.drv
push dword [ebp - 4]
call esi
push str.snd931p.vxd
push dword [ebp - 4]
call esi
push str.snd931p.inf
push dword [ebp - 4]
call esi
push str.snd931lc.inf
push dword [ebp - 4]
call esi
test edi, 2
je 0x401c9c
push str.snd933p.drv
push dword [ebp - 4]
call esi
push str.snd933p.vxd
push dword [ebp - 4]
call esi
push str.snd933p.inf
push dword [ebp - 4]
call esi
push str.snd933lc.inf
push dword [ebp - 4]
call esi
test edi, 4
je 0x401cd6
push str.CyberCfg.dll
push dword [ebp - 4]
call esi
push str.CyberSyn.cpl
push dword [ebp - 4]
call esi
push str.CyberSyn.drv
push dword [ebp - 4]
call esi
push str.GmBank.iss
push dword [ebp - 4]
call esi
push str.InSynth.vxd
push dword [ebp - 4]
call esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x401cea
mov edi, dword [ebp + 8]
mov esi, dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SystemCurrentControlSetcontrolSessionManagerKnown16DLLs
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401d53
push str.sndm401p.drv
push dword [ebp - 4]
call esi
push str.sndopl3p.drv
push dword [ebp - 4]
call esi
test edi, 1
je 0x401d2f
push str.snd931p.drv
push dword [ebp - 4]
call esi
test edi, 2
je 0x401d41
push str.snd933p.drv
push dword [ebp - 4]
call esi
test edi, 4
je 0x401d53
push str.CyberSyn.drv
push dword [ebp - 4]
call esi
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.Config0001EnumISAPNP
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401def
xor esi, esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov ebx, eax
test ebx, ebx
jne 0x401de6
push 0xe
lea eax, [ebp - 0x48]
push str.OPT0931_DEV000
push eax
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x401de1
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401dd2
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x401de2
inc esi
test ebx, ebx
je 0x401d74
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.EnumISAPNP
push 0x80000005
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401e8b
xor esi, esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov ebx, eax
test ebx, ebx
jne 0x401e82
push 0xe
lea eax, [ebp - 0x48]
push str.OPT0931_DEV000
push eax
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x401e7d
lea eax, [ebp - 8]
lea ecx, [ebp - 0x48]
push eax
push 0xf003f
push 0
push ecx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401e6e
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x401e7e
inc esi
test ebx, ebx
je 0x401e10
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, 1
je 0x401efe
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401efe
xor esi, esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov ebx, eax
test ebx, ebx
jne 0x401ef5
push 7
lea eax, [ebp - 0x48]
push str.OPTi931
push eax
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x401ef0
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x401ef1
inc esi
test ebx, ebx
je 0x401eb4
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, 2
je 0x401f71
lea eax, [ebp - 4]
push eax
push 0xf003f
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401f71
xor esi, esi
push 0x32
lea eax, [ebp - 0x48]
push eax
push esi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov ebx, eax
test ebx, ebx
jne 0x401f68
push 7
lea eax, [ebp - 0x48]
push str.OPTi933
push eax
call fcn.00403ca0
add esp, 0xc
test eax, eax
jne 0x401f63
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
jmp 0x401f64
inc esi
test ebx, ebx
je 0x401f27
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, 4
je 0x40205e
lea eax, [ebp - 4]
mov edi, 0xf003f
push eax
push edi
push 0
push str.SOFTWARE
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401fe2
lea eax, [ebp - 8]
push eax
push edi
push 0
push str.InVision
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x401fcb
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.Invision
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 4]
mov esi, 0xf003f
push eax
push esi
push 0
push str.SystemCurrentControlSetcontrolMediaResourcesmidi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x402047
lea eax, [ebp - 8]
push eax
push esi
push 0
push str.MIDIFilter
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x402030
lea eax, [ebp - 8]
push eax
call section..text
add esp, 4
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.MIDIFilter
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.system.ini
push 0
push str.MIDIFilter
push str.drivers
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret