Function at 0x1008cdd
Capabilities:
Enumerate devices by category

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push esi
mov esi, ecx
cmp word [esi + 0xc], 0x11
jne 0x1008d0b
cmp word [esi + 0xe], 0x49
jne 0x1008d0b
cmp word [esi + 0x10], 5
jne 0x1008d0b
cmp dword [esi + 8], 0x1f
jne 0x1008d0b
xor eax, eax
inc eax
jmp 0x1008e93
push ebx
push edi
xor edi, edi
cmp dword [esi + 0x4a4], edi
je 0x1008e8e
lea eax, [ebp - 4]
push eax
push 0x100342c
push 3
push edi
push 0x10033ec
mov dword [ebp - 4], edi
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
cmp ebx, edi
push 0x1c
pop eax
mov word [esi + 0xe], ax
jge 0x1008d61
push ebx
push edi
push edi
lea ecx, [esi + 4]
call fcn.01007ddc
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x1008d5a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, ebx
jmp 0x1008e91
push edi
push edi
lea ebx, [esi + 4]
push edi
mov ecx, ebx
call fcn.01007ddc
push 0x1c
pop eax
mov word [esi + 0xe], ax
mov ecx, ebx
cmp dword [ebp - 4], edi
jne 0x1008d8c
mov esi, 0x80004003
push esi
push 6
push edi
call fcn.01007ddc
jmp 0x1008dfa
push edi
push 6
push 1
call fcn.01007ddc
mov eax, dword [ebp - 4]
push edi
lea edx, [ebp - 8]
push edx
push 0x10033fc
mov dword [ebp - 8], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
cmp eax, edi
push 0x37
pop ecx
mov word [esi + 0xe], cx
mov dword [ebp - 0x10], eax
mov ecx, ebx
jge 0x1008dc9
push eax
push edi
push edi
call fcn.01007ddc
jmp 0x1008eab
push edi
push edi
push edi
call fcn.01007ddc
push 0x37
pop eax
mov word [esi + 0xe], ax
mov ecx, ebx
cmp dword [ebp - 8], edi
jne 0x1008e0e
mov esi, 0x80004003
push esi
push 6
push edi
call fcn.01007ddc
mov eax, dword [ebp - 8]
cmp eax, edi
je 0x1008dfa
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x1008e07
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, esi
jmp 0x1008e91
push edi
push 6
push 1
call fcn.01007ddc
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], edi
cmp edi, edi
je 0x1008e2c
push edi
lea eax, [ebp - 0xc]
push eax
call fcn.010038f6
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
lea edx, [ebp - 0x14]
push edx
lea edx, [ebp - 0xc]
push edx
push 1
push eax
call dword [ecx + 0xc]
cmp eax, edi
push 0x38
pop ecx
mov word [esi + 0xe], cx
mov dword [ebp - 0x10], eax
mov ecx, ebx
jl 0x1008e96
push edi
push edi
push edi
call fcn.01007ddc
mov eax, dword [ebp - 0xc]
cmp eax, edi
je 0x1008e74
mov ecx, dword [esi + 0x4a4]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x34]
test eax, eax
je 0x1008eca
cmp dword [ebp - 0xc], edi
jne 0x1008e22
mov eax, dword [ebp - 8]
cmp eax, edi
je 0x1008e81
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x1008e8e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
inc eax
pop edi
pop ebx
pop esi
leave
ret
push eax
push edi
push edi
call fcn.01007ddc
mov eax, dword [ebp - 0xc]
cmp eax, edi
je 0x1008eab
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 8]
cmp eax, edi
je 0x1008eb8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x1008ec5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
jmp 0x1008e91
mov eax, dword [ebp - 0xc]
cmp eax, edi
je 0x1008ed7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 8]
cmp eax, edi
je 0x1008ee4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x1008ef1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
jmp 0x1008e91