Function at 0x10068170
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101c2928
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x102223f8]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x88], edi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x8c], eax
test eax, eax
je 0x1006857a
cmp dword [ebp + 0xc], 0
je 0x1006857a
mov dword [ebp - 0x68], 0
xorps xmm0, xmm0
movq qword [ebp - 0x80], xmm0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x80], vtable.MFX::MFXVector_wchar_t_.0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 4], 0
mov eax, dword [edi]
test eax, eax
jne 0x10068213
push str.cfgmgr32.dll
call fcn.10065fe0
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x10068554
cmp dword [edi + 8], 0
je 0x1006822b
cmp dword [edi + 4], 0
je 0x1006822b
cmp dword [edi + 0xc], 0
je 0x1006822b
cmp dword [edi + 0x10], 0
jne 0x1006828f
push 0x101f65f4
push eax
call fcn.10065fc0
mov dword [edi + 8], eax
push 0x101f660c
push dword [edi]
call fcn.10065fc0
mov dword [edi + 4], eax
push 0x101f6628
push dword [edi]
call fcn.10065fc0
mov dword [edi + 0xc], eax
push 0x101f663c
push dword [edi]
call fcn.10065fc0
add esp, 0x20
mov dword [edi + 0x10], eax
cmp dword [edi + 8], 0
je 0x10068554
cmp dword [edi + 4], 0
je 0x10068554
cmp dword [edi + 0xc], 0
je 0x10068554
test eax, eax
je 0x10068554
movups xmm1, xmmword [0x101edc54]
movaps xmm0, xmm1
psrldq xmm0, 0xc
movd ecx, xmm0
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
movaps xmm0, xmm1
psrldq xmm0, 8
movd ecx, xmm0
mov eax, ecx
shr eax, 0x18
push eax
mov eax, ecx
shr eax, 0x10
movzx eax, al
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
movzx eax, cl
push eax
movaps xmm0, xmm1
psrldq xmm0, 4
movd ecx, xmm0
mov eax, ecx
shr eax, 0x10
push eax
movzx eax, cx
push eax
movd eax, xmm1
push eax
push str._08x__04x__04x__02x_02x__02x_02x_02x_02x_02x_02x
push 0x28
lea eax, [ebp - 0x64]
push eax
call fcn.10024e90
add esp, 0x38
test eax, eax
jne 0x10068330
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.100680f0
jmp 0x1006857a
push 0x300
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x68]
push eax
mov esi, dword [edi + 4]
mov ecx, esi
call dword [0x101d7330]
call esi
test eax, eax
jne 0x10068318
mov byte [ebp - 4], 1
push dword [ebp - 0x68]
lea ecx, [ebp - 0x80]
call fcn.10068650
mov dword [ebp - 4], 0
push 0x300
push dword [ebp - 0x68]
push dword [ebp - 0x7c]
lea eax, [ebp - 0x64]
push eax
mov esi, dword [edi + 8]
mov ecx, esi
call dword [0x101d7330]
call esi
cmp eax, 0x1a
je 0x10068330
test eax, eax
jne 0x10068318
mov edi, dword [ebp - 0x7c]
mov dword [ebp - 0x84], edi
mov eax, dword [ebp - 0x78]
lea eax, [edi + eax*2]
mov dword [ebp - 0x90], eax
cmp edi, eax
jae 0x100684d1
mov esi, edi
lea ecx, [esi + 2]
nop dword [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x100683b0
sub esi, ecx
sar esi, 1
je 0x100684d1
push str.VEN_8086
push edi
call fcn.10087d1f
add esp, 8
test eax, eax
jne 0x100683ed
push str.ven_8086
push edi
call fcn.10087d1f
add esp, 8
test eax, eax
je 0x100684b9
push str.DEV_
push edi
call fcn.10087d1f
add esp, 8
test eax, eax
jne 0x10068415
push str.dev_
push edi
call fcn.10087d1f
add esp, 8
test eax, eax
je 0x100684b9
add eax, 8
push 0x10
push 0
push eax
call fcn.100a9c0a
add esp, 0xc
test eax, eax
je 0x100684b9
cmp eax, dword [ebp + 0x10]
jne 0x100684b9
push 0
push edi
lea eax, [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x101d7330]
call edi
test eax, eax
jne 0x100684b3
push 1
lea eax, [ebp - 0x74]
push eax
push 1
push 0
push 0x20019
push dword [ebp - 0x6c]
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0x10]
mov ecx, edi
call dword [0x101d7330]
call edi
test eax, eax
jne 0x100684b3
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x70]
push eax
push dword [ebp - 0x8c]
push 0
push 0xffff
push str.DriverStorePathForMediaSDK
push 0
push dword [ebp - 0x74]
call dword [sym.imp.ADVAPI32.dll_RegGetValueW]
mov edi, eax
push dword [ebp - 0x74]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
je 0x100684e0
mov edi, dword [ebp - 0x84]
lea edi, [edi + esi*2]
add edi, 2
mov dword [ebp - 0x84], edi
cmp edi, dword [ebp - 0x90]
jb 0x100683a6
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0x7c]
jmp 0x1006855d
mov edx, dword [ebp - 0x8c]
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x100684f0
sub ecx, esi
sar ecx, 1
cmp word [edx + ecx*2 - 2], 0x2f
je 0x1006853b
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10068510
sub ecx, esi
sar ecx, 1
cmp word [edx + ecx*2 - 2], 0x5c
je 0x1006853b
push 0x101ed244
mov eax, dword [ebp + 0xc]
shr eax, 1
push eax
push edx
call fcn.100b765a
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x80]
call fcn.100680f0
mov al, 1
jmp 0x1006857c
mov dword [ebp - 4], 0xffffffff
push 0
mov dword [ebp - 0x80], vtable.MFX::MFXVector_wchar_t_.0
call fcn.10084e40
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x7c], 0
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100847aa
mov esp, ebp
pop ebp
ret 0xc