Function at 0x100086e0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push 0xffffffffffffffff
push 0x10026e4e
mov eax, dword fs:[0]
push eax
sub esp, 0x134
mov eax, dword [0x1004f220]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1004f220]
xor eax, esp
push eax
lea eax, [esp + 0x148]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x158]
lea eax, [esp + 0x14]
push eax
push 0x20019
push 0
push str.SYSTEMCurrentControlSetServicesClassNet
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x100070db
mov edx, dword [esp + 0x14]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
lea ecx, [esp + 0x38]
push ecx
push eax
push eax
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
je 0x100070e5
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 3
jmp 0x100071f5
xor ebx, ebx
cmp dword [esp + 0x1c], ebx
jbe 0x100071e8
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 0x14]
xor esi, esi
push esi
push esi
push esi
push esi
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x40]
push edx
push ebx
push eax
mov dword [esp + 0x38], 0x14
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
jne 0x100071dd
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x20]
push ecx
push 0x20019
push esi
lea edx, [esp + 0x38]
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp eax, esi
jne 0x100071dd
push 0xdc
call fcn.10014c45
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x150], esi
cmp eax, esi
je 0x1000716c
push ebp
mov ecx, eax
call fcn.10008cb0
mov esi, eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esi + 0x34]
push edx
mov dword [esp + 0x158], 0xffffffff
call fcn.1000aba0
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x2c]
push edx
push 0
push 0x100282e8
push eax
mov dword [esp + 0x30], 0x104
mov dword [esp + 0x3c], 1
call edi
test eax, eax
lea eax, [esp + 0x40]
je 0x100071bf
mov eax, 0x100282e0
push eax
lea ecx, [esi + 0x44]
push ecx
call fcn.1000aba0
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
lea ecx, [ebp + 4]
call fcn.10004030
inc ebx
cmp ebx, dword [esp + 0x1c]
jb 0x100070f7
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [esp + 0x148]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.100140b8
add esp, 0x140
ret 4
push 0xffffffffffffffff
push 0x10026ece
mov eax, dword fs:[0]
push eax
sub esp, 0x25c
mov eax, dword [0x1004f220]
xor eax, esp
mov dword [esp + 0x258], eax
push ebx
push esi
push edi
mov eax, dword [0x1004f220]
xor eax, esp
push eax
lea eax, [esp + 0x26c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x27c]
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionNetworkCards
push 0x80000002
mov dword [esp + 0x38], eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10007b8e
push eax
push eax
push eax
push eax
push eax
push eax
push eax
lea edx, [esp + 0x44]
push edx
push eax
push eax
push eax
mov eax, dword [esp + 0x3c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x10007b98
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 3
jmp 0x10007d1e
xor esi, esi
mov dword [esp + 0x20], esi
cmp dword [esp + 0x28], esi
jbe 0x10007d11
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ebx, [esi + 1]
mov ecx, dword [esp + 0x10]
push 0
push 0
push 0
push 0
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x4c]
push eax
push esi
push ecx
mov dword [esp + 0x34], 0x28
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x10007d01
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x1c]
push edx
push 0x20019
push eax
lea eax, [esp + 0x44]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10007d01
push 0xdc
call fcn.10014c45
add esp, 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x274], 0
test eax, eax
je 0x10007c32
mov edx, dword [esp + 0x24]
push edx
mov ecx, eax
call fcn.10008cb0
mov esi, eax
jmp 0x10007c34
xor esi, esi
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x20]
push edx
push 0
push str.Description
push eax
mov dword [esp + 0x28c], 0xffffffff
mov dword [esp + 0x2c], 0x208
mov dword [esp + 0x30], ebx
call edi
test eax, eax
lea eax, [esp + 0x60]
je 0x10007c75
mov eax, str.Unknown
push eax
lea ecx, [esi + 0x44]
push ecx
call fcn.1000acf0
push 0x200
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x34]
push eax
push str.Device_
push 0x208
lea ecx, [esp + 0x74]
push ecx
call fcn.100074e0
test eax, eax
jl 0x10007ce5
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov dword [esp + 0x1c], edx
lea edx, [esp + 0x20]
push edx
push 0
push str.ServiceName
push eax
mov dword [esp + 0x30], ebx
call edi
neg eax
sbb eax, eax
not eax
lea ecx, [esp + 0x60]
and eax, ecx
push eax
lea edx, [esi + 0x34]
push edx
call fcn.1000acf0
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x24]
push esi
add ecx, 4
call fcn.10004030
mov esi, dword [esp + 0x20]
add esi, ebx
mov dword [esp + 0x20], esi
cmp esi, dword [esp + 0x28]
jb 0x10007bb1
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [esp + 0x26c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x258]
xor ecx, esp
call fcn.100140b8
add esp, 0x268
ret 4
push 0xffffffffffffffff
push 0x10026f0e
mov eax, dword fs:[0]
push eax
sub esp, 0x254
mov eax, dword [0x1004f220]
xor eax, esp
mov dword [esp + 0x250], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1004f220]
xor eax, esp
push eax
lea eax, [esp + 0x268]
mov dword fs:[0], eax
mov esi, dword [esp + 0x278]
lea eax, [esp + 0x14]
push eax
push 0x20019
push 0
push str.SYSTEMCurrentControlSetControlClass4D36E972_E325_11CE_BFC1_08002BE10318
push 0x80000002
mov dword [esp + 0x38], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1000832f
mov edx, dword [esp + 0x14]
push eax
push eax
push eax
push eax
push eax
push eax
push eax
lea ecx, [esp + 0x48]
push ecx
push eax
push eax
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
je 0x10008339
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 3
jmp 0x10008522
xor eax, eax
mov dword [esp + 0x28], eax
cmp dword [esp + 0x2c], eax
jbe 0x10008515
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ebx, [eax + 1]
mov ebp, 0x208
jmp 0x10008364
mov esi, dword [esp + 0x24]
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x48]
push edx
push eax
mov eax, dword [esp + 0x30]
push eax
mov dword [esp + 0x38], 0x28
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x10008501
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x34]
push ecx
push edx
push esi
call fcn.10007d50
cmp eax, ebx
jne 0x10008501
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x1c]
push eax
push 0x20019
push 0
lea ecx, [esp + 0x40]
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x10008501
push 0xdc
call fcn.10014c45
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x270], 0
test eax, eax
je 0x100083fa
push esi
mov ecx, eax
call fcn.10008cb0
mov esi, eax
jmp 0x100083fc
xor esi, esi
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x28]
push edx
push 0
push str.DriverDesc
push eax
mov dword [esp + 0x288], 0xffffffff
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], ebx
call edi
test eax, eax
je 0x10008459
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x28]
push eax
push 0
push str.Description
push ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], ebx
call edi
test eax, eax
jne 0x1000845f
lea eax, [esp + 0x5c]
jmp 0x10008464
mov eax, str.Unknown
push eax
lea edx, [esi + 0x44]
push edx
call fcn.1000acf0
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.Linkage
push 0x28
lea ecx, [esp + 0x3c]
push ecx
call fcn.10007630
test eax, eax
jl 0x10008501
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x1c]
push edx
push 0x20019
push 0
lea eax, [esp + 0x40]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x100084e9
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0
push str.Export
push edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x38], ebx
call edi
neg eax
sbb eax, eax
not eax
lea ecx, [esp + 0x5c]
and eax, ecx
push eax
lea edx, [esi + 0x34]
push edx
call fcn.1000acf0
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x24]
push esi
add ecx, 4
call fcn.10004030
mov eax, dword [esp + 0x28]
add eax, ebx
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x2c]
jb 0x10008360
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [esp + 0x268]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x250]
xor ecx, esp
call fcn.100140b8
add esp, 0x260
ret 4
cmp dword [0x10051640], 0
je 0x100086fc
cmp dword [0x10051644], 5
jne 0x100086f7
jmp 0x10007b00
jmp 0x100082a0
jmp 0x10007050