Function at 0x1002be00
Capabilities:
Enumerate devices by category

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c0e57
mov eax, dword fs:[0]
push eax
sub esp, 0x14c
mov eax, dword [0x100e7c94]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
call fcn.1002c400
test eax, eax
jne 0x1002be4e
push str.Cannot_instantiate_graph_builder
push edi
call fcn.1002b740
add esp, 8
xor eax, eax
jmp 0x1002c33c
mov ecx, edi
call fcn.1002c430
test eax, eax
jne 0x1002be75
push str.Cannot_instantiate_filter_graph
push edi
call fcn.1002b740
add esp, 8
mov ecx, edi
call fcn.1002b780
xor eax, eax
jmp 0x1002c33c
push 0
push 1
lea eax, [edi + 0x1fa429c]
mov ecx, edi
push eax
lea eax, [edi + 0x1fa4294]
push eax
call fcn.1002c4c0
test eax, eax
jne 0x1002be99
push str.Cannot_instantiate_for_preview_SampleGrabber_filter
jmp 0x1002be5e
push 1
push 1
lea eax, [edi + 0x1fa42a0]
mov ecx, edi
push eax
lea eax, [edi + 0x1fa4298]
push eax
call fcn.1002c4c0
test eax, eax
jne 0x1002bebd
push str.Cannot_instantiate_for_still_SampleGrabber_filter
jmp 0x1002be5e
mov ecx, edi
call fcn.1002c460
test eax, eax
jne 0x1002becf
push str.Cannot_InfTee_filter
jmp 0x1002be5e
mov ecx, edi
call fcn.1002c490
test eax, eax
jne 0x1002bee4
push str.Cannot_NullRenderer_filter
jmp 0x1002be5e
mov ecx, dword [edi + 0x1fa4278]
push dword [edi + 0x1fa427c]
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x1002bf04
push str.Cannot_associate_graph_with_builder
jmp 0x1002be5e
mov ecx, dword [0x14806250]
test ecx, ecx
je 0x1002bf19
call fcn.10036280
mov dword [edi + 0x1fa4280], eax
mov edx, dword [edi + 0x1fa4280]
test edx, edx
jne 0x1002bf2d
push str.Cannot_create_video_capture_filter
jmp 0x1002be5e
mov eax, dword [edi + 0x1fa427c]
push str.Source
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
je 0x1002bf4d
push str.Cannot_add_vidcap_to_filter_graph
jmp 0x1002be5e
mov ecx, dword [edi + 0x1fa4278]
lea eax, [edi + 0x1fa428c]
push eax
push 0x100cc22c
push dword [edi + 0x1fa4280]
mov edx, dword [ecx]
push 0x100c88dc
push 0x100ca0cc
push ecx
call dword [edx + 0x18]
mov ecx, dword [edi + 0x1fa4278]
lea esi, [edi + 0x1fa4288]
push esi
push 0x100cc1fc
push dword [edi + 0x1fa4280]
mov eax, dword [ecx]
push 0x100c88dc
push 0x100ca0cc
push ecx
call dword [eax + 0x18]
test eax, eax
je 0x1002bfd6
mov eax, dword [edi + 0x1fa4278]
push esi
push 0x100cc1fc
push dword [edi + 0x1fa4280]
mov ecx, dword [eax]
push 0x100c888c
push 0x100ca0cc
push eax
call dword [ecx + 0x18]
test eax, eax
je 0x1002bfd6
push eax
push str.Error__x:_Cannot_find_VCapture:IAMStreamConfig
push edi
call fcn.1002b740
add esp, 0xc
mov ecx, dword [esi]
test ecx, ecx
je 0x1002c05e
mov eax, dword [ecx]
lea edx, [ebp - 0x148]
push edx
push ecx
call dword [eax + 0x10]
test eax, eax
jne 0x1002c05e
mov ebx, dword [ebp - 0x148]
lea esi, [eax + 0xc]
mov ecx, ebx
mov edx, 0x100c888c
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1002c016
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1002c001
xor eax, eax
jmp 0x1002c03b
cmp al, byte [edx]
jne 0x1002c036
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x1002c036
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x1002c036
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x1002c036
xor eax, eax
jmp 0x1002c03b
sbb eax, eax
or eax, 1
test eax, eax
je 0x1002c04d
mov dword [edi + 0x1fa42c0], 0
xor eax, eax
jmp 0x1002c052
mov eax, 1
push ebx
mov dword [edi + 0x1fa42c4], eax
call fcn.100352a0
mov ecx, dword [edi + 0x1fa4278]
lea eax, [edi + 0x1fa4290]
push eax
push 0x100cc23c
push dword [edi + 0x1fa4280]
mov edx, dword [ecx]
push 0x100c888c
push 0x100ca0cc
push ecx
call dword [edx + 0x18]
mov eax, dword [edi + 0x1fa4280]
lea edx, [ebp - 0x140]
xor ebx, ebx
mov dword [ebp - 0x12c], 0
mov dword [edi + 0x1fa42c8], ebx
xor esi, esi
push edx
mov ecx, dword [eax]
push eax
mov dword [ebp - 0x13c], esi
call dword [ecx + 0x28]
test eax, eax
js 0x1002c213
nop dword [eax + eax]
mov eax, dword [ebp - 0x140]
lea edx, [ebp - 0x150]
push edx
lea edx, [ebp - 0x12c]
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x1002c207
mov eax, dword [ebp - 0x12c]
lea edx, [ebp - 0x128]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
test eax, eax
jne 0x1002c1f3
cmp dword [ebp - 0x124], eax
jne 0x1002c1e7
mov eax, dword [ebp - 0x12c]
lea edx, [ebp - 0x138]
push edx
push 0x100cc34c
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
jne 0x1002c188
mov eax, dword [ebp - 0x138]
lea edx, [ebp - 0x154]
push edx
push 0x10
lea edx, [ebp - 0x20]
mov ecx, dword [eax]
push edx
push 0
push 0
push 0
push 0x100ca0bc
push eax
call dword [ecx + 0x10]
test eax, eax
jne 0x1002c17c
lea ecx, [ebp - 0x20]
mov edx, 0x100ca0ec
lea esi, [eax + 0xc]
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1002c176
add ecx, 4
add edx, 4
sub esi, 4
jae 0x1002c160
mov ebx, 1
mov esi, dword [ebp - 0x13c]
mov eax, dword [ebp - 0x138]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test ebx, ebx
je 0x1002c1e7
push 0x38
call fcn.1003ac9a
add esp, 4
mov dword [ebp - 0x158], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x1002c1b6
push dword [ebp - 0x12c]
mov ecx, eax
call fcn.10025160
jmp 0x1002c1b8
xor eax, eax
mov dword [edi + 0x1fa42c8], eax
mov dword [0x1480624c], eax
lea eax, [edi + 0x1fa42cc]
mov ecx, dword [edi + 0x1fa42c8]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.100257f0
mov esi, 1
mov dword [ebp - 0x13c], esi
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x12c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test esi, esi
je 0x1002c0c0
mov eax, dword [ebp - 0x140]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, edi
call fcn.1002c3c0
mov dword [0x14806254], eax
cmp dword [edi + 0x1fa42c4], 0
je 0x1002c337
lea eax, [ebp - 0x144]
push eax
push 0x100cbf0c
push 1
push 0
push 0x100c958c
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jne 0x1002be67
mov eax, dword [ebp - 0x144]
lea edx, [ebp - 0x134]
xor ebx, ebx
push ebx
push edx
mov ecx, dword [eax]
push 0x100c962c
push eax
call dword [ecx + 0xc]
mov ecx, dword [ebp - 0x144]
mov esi, eax
push ecx
mov edx, dword [ecx]
call dword [edx + 8]
test esi, esi
je 0x1002c287
mov dword [edi + 0x1fa42c0], ebx
jmp 0x1002c337
mov eax, dword [ebp - 0x134]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x134]
lea edx, [ebp - 0x14c]
push edx
lea edx, [ebp - 0x130]
mov dword [edi + 0x1fa42b8], ebx
lea esi, [edi + 0x1fa42b8]
mov ecx, dword [eax]
push edx
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x1002c311
nop
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax]
cmp ebx, dword [edi + 0x1fa4354]
je 0x1002c2f7
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x134]
lea edx, [ebp - 0x14c]
push edx
lea edx, [ebp - 0x130]
inc ebx
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x1002c2c0
jmp 0x1002c311
push esi
push 0x100cbf7c
push 0
push 0
push eax
call dword [ecx + 0x20]
mov eax, dword [ebp - 0x130]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x134]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov edx, dword [esi]
test edx, edx
jne 0x1002c358
mov dword [edi + 0x1fa42c0], edx
push str.Cannot_create_audio_capture_filter
push edi
call fcn.1002b740
add esp, 8
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003acef
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x1fa427c]
push 0
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
je 0x1002c385
push eax
push str.Error__x:_Cannot_add_audcap_to_filtergraph
push edi
call fcn.1002b740
add esp, 0xc
mov ecx, edi
call fcn.1002b780
xor eax, eax
jmp 0x1002c33c
mov ecx, dword [edi + 0x1fa4278]
lea eax, [edi + 0x1fa42bc]
push eax
push 0x100cc1fc
push dword [esi]
mov edx, dword [ecx]
push 0x100c889c
push 0x100ca0cc
push ecx
call dword [edx + 0x18]
test eax, eax
je 0x1002c337
push str.Cannot_find_ACapture:IAMStreamConfig
jmp 0x1002c32e