Function at 0x10006e00
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xc68
push ebx
push esi
xor esi, esi
push 6
push esi
push esi
push esi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [esp + 0x30], ebx
je 0x10007283
push edi
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x76]
mov word [esp + 0x74], si
mov word [esp + 0x474], si
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x476]
mov dword [esp + 0x2c], 0x400
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x58]
mov dword [esp + 0x10], esi
push eax
push esi
push ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x64], 0x1c
mov dword [esp + 0x30], esi
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x1000725b
push ebp
jmp 0x10006e95
xor esi, esi
lea ecx, [esp + 0x10]
mov ebp, dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
push ecx
push esi
lea edx, [esp + 0x34]
push esi
push edx
lea eax, [esp + 0x6c]
push 1
push eax
push ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], esi
call ebp
test eax, eax
jne 0x1000723c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x10006f24
test esi, esi
je 0x10006ed9
push esi
call fcn.1001f635
add esp, 4
mov ecx, dword [esp + 0x10]
push ecx
call fcn.1001f60c
mov ecx, dword [esp + 0x14]
mov edx, eax
mov esi, ecx
xor eax, eax
mov edi, edx
add esp, 4
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
mov dword [esp + 0x18], edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x10]
push eax
push ecx
push edx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x6c]
push 1
push eax
push ebx
call ebp
mov esi, dword [esp + 0x18]
test eax, eax
je 0x10006ec1
test esi, esi
je 0x1000723c
push 0x204
call fcn.1001f60c
mov ebx, eax
mov ecx, 0x40
mov edi, ebx
xor eax, eax
mov dword [ebx], 0
lea ebp, [ebx + 0x100]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x32
mov edi, ebp
rep stosd dword es:[edi], eax
lea esi, [ebx + 0x1c8]
mov ecx, 0xf
mov edi, esi
add esp, 4
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x30]
lea edx, [esp + 0x78]
push ecx
push 0x400
lea eax, [esp + 0x34]
push edx
mov edx, dword [esp + 0x44]
push eax
lea ecx, [esp + 0x6c]
push 9
push ecx
push edx
mov dword [esp + 0x4c], 0x400
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
lea eax, [esp + 0x78]
push eax
push str.SYSTEMCurrentControlSetControlClass
lea ecx, [esp + 0x480]
push str._s_s
push ecx
call edi
add esp, 0x10
lea edx, [esp + 0x3c]
lea eax, [esp + 0x14]
lea ecx, [esp + 0x478]
push edx
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x100070c4
lea edx, [esp + 0x1c]
lea eax, [esp + 0x44]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x38]
push eax
push ecx
push 0
push str.DriverDateData
push edx
mov dword [esp + 0x34], 8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x10007054
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x44]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x52]
mov ecx, dword [esp + 0x4e]
and edx, 0xffff
and eax, 0xffff
push edx
and ecx, 0xffff
push eax
push ecx
push str._02d__02d__04d
push esi
call edi
add esp, 0x14
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x878]
lea edx, [esp + 0x1c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x878]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x38]
push eax
push ecx
push 0
push str.DriverVersion
push edx
mov dword [esp + 0x34], 0x400
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100070a3
lea eax, [esp + 0x878]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea ecx, [esp + 0x878]
push ecx
push ebx
push str.EnumerateSystemHWID____s__ver:__s
call fcn.10002680
mov edx, dword [esp + 0x20]
add esp, 0xc
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [0x10034190]
mov esi, edx
cmp esi, edx
mov dword [esp + 0x24], esi
jl 0x10007222
mov eax, dword [0x1003418c]
lea ebp, [esi + 1]
xor edi, edi
cmp ebp, edi
jne 0x1000710e
cmp eax, edi
je 0x100070fd
push eax
mov dword [esp + 0x28], edx
call fcn.1001f635
add esp, 4
mov dword [0x1003418c], edi
mov dword [0x10034194], edi
mov dword [0x10034190], edi
jmp 0x10007222
cmp eax, edi
jne 0x1000714f
lea edi, [ebp*4]
push edi
call fcn.1001f60c
mov edx, eax
mov ecx, edi
mov dword [0x1003418c], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov dword [0x10034194], ebp
mov dword [0x10034190], ebp
jmp 0x10007222
mov ecx, dword [0x10034194]
cmp ebp, ecx
jg 0x10007186
cmp edx, ebp
jge 0x10007173
mov ecx, ebp
lea edi, [eax + edx*4]
sub ecx, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [0x10034190], ebp
jmp 0x10007222
jle 0x1000717b
sub edx, ebp
mov dword [esp + 0x24], edx
mov dword [0x10034190], ebp
jmp 0x10007222
mov eax, dword [0x10034198]
cmp eax, edi
jne 0x100071b2
mov eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x100071a6
mov eax, 4
jmp 0x100071b2
cmp eax, 0x400
jle 0x100071b2
mov eax, 0x400
add eax, ecx
cmp ebp, eax
mov dword [esp + 0x20], eax
jl 0x100071c0
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x20]
lea ecx, [eax*4]
push ecx
call fcn.1001f60c
mov ecx, dword [0x10034190]
mov esi, dword [0x1003418c]
mov edi, eax
mov dword [esp + 0x44], eax
rep movsd dword es:[edi], dword [esi]
mov edx, dword [0x10034190]
mov ecx, ebp
sub ecx, edx
lea edi, [eax + edx*4]
xor eax, eax
rep stosd dword es:[edi], eax
mov edx, dword [0x1003418c]
push edx
call fcn.1001f635
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
add esp, 8
mov dword [0x1003418c], eax
mov dword [0x10034190], ebp
mov dword [0x10034194], ecx
mov edx, dword [0x1003418c]
mov eax, dword [esp + 0x18]
push eax
mov dword [edx + esi*4], ebx
call fcn.1001f635
mov ebx, dword [esp + 0x3c]
add esp, 4
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x5c]
inc eax
push ecx
push eax
push ebx
mov dword [esp + 0x34], eax
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x10006e93
pop ebp
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
pop edi
je 0x1000727c
call esi
cmp eax, 0x103
je 0x1000727c
pop esi
xor eax, eax
pop ebx
add esp, 0xc68
ret
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
pop esi
mov eax, 1
pop ebx
add esp, 0xc68
ret