Function at 0x10035b20
Capabilities:
Enumerate devices by category

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
mov eax, dword [0x100e7c94]
xor eax, ebp
mov dword [ebp - 4], eax
movups xmm0, xmmword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x18]
lea eax, [ebp - 0x128]
push eax
push 0x100cbf0c
push 1
push 0
push 0x100c958c
mov esi, ecx
mov dword [ebp - 0x124], 0
movups xmmword [ebp - 0x118], xmm0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [esi + 0x118], eax
test eax, eax
js 0x10035d66
mov ecx, dword [ebp - 0x128]
test ecx, ecx
je 0x10035d66
mov eax, dword [ecx]
lea edx, [ebp - 0x120]
push 0
push edx
lea edx, [ebp - 0x118]
push edx
push ecx
call dword [eax + 0xc]
mov dword [esi + 0x118], eax
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [esi + 0x118], 0
jl 0x10035d66
mov ecx, dword [ebp - 0x120]
test ecx, ecx
je 0x10035d66
mov eax, dword [ecx]
push ecx
call dword [eax + 0x14]
mov eax, dword [ebp - 0x120]
lea edx, [ebp - 0x130]
push edx
lea edx, [ebp - 0x11c]
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x10035d42
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
nop word [eax + eax]
mov eax, dword [ebp - 0x11c]
lea edx, [ebp - 0x12c]
push edx
push 0x100cd2d4
push 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x24]
mov dword [esi + 0x118], eax
test eax, eax
js 0x10035ce0
mov eax, 8
lea edx, [ebp - 0x140]
mov word [ebp - 0x140], ax
mov eax, dword [ebp - 0x12c]
push 0
push edx
push str.FriendlyName
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov dword [esi + 0x118], eax
test eax, eax
jne 0x10035c82
push eax
push eax
push 0x104
lea eax, [ebp - 0x108]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x138]
push 0
push 0
call ebx
push dword [ebp - 0x138]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x12c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10035c93
sub eax, edx
push eax
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.1006a6a0
add esp, 0xc
test eax, eax
jne 0x10035ce0
mov eax, dword [ebp - 0x11c]
lea edx, [ebp - 0x124]
push edx
push 0x100cbf7c
push 0
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x20]
mov dword [esi + 0x118], eax
test eax, eax
js 0x10035ce0
cmp dword [ebp - 0x124], 0
jne 0x10035d35
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x120]
lea edx, [ebp - 0x130]
push edx
lea edx, [ebp - 0x11c]
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x10035c00
mov eax, dword [ebp - 0x120]
pop ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x124]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003acef
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp - 0x11c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
pop ebx
mov eax, dword [ebp - 0x120]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x124]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003acef
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.1003acef
mov esp, ebp
pop ebp
ret 0x14