Function at 0x425c30
Capabilities:
Enumerate devices by category

Disassembly:
sub esp, 0x24
push ebx
push ebp
xor ebx, ebx
push esi
push edi
cmp dword [0x565c34], ebx
jne 0x425c5d
push ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, 0x80010106
jne 0x425c5d
push str.SETUP___COM_already_setup___threaded_VI_might_not_be_possible_n
call fcn.0049d4b4
add esp, 4
inc dword [0x565c34]
push str._nVIDEOINPUT_SPY_MODE__n_n
call fcn.0049d4b4
add esp, 4
lea eax, [esp + 0x1c]
push eax
push 0x4b8aac
push 1
push ebx
push 0x4b8a0c
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebx
xor edi, edi
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x425e25
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push ebx
lea edx, [esp + 0x1c]
push edx
push 0x4b8a1c
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
jne 0x425e17
push str.SETUP:_Looking_For_Capture_Devices_n
call fcn.0049d4b4
mov eax, dword [esp + 0x1c]
add esp, 4
push ebx
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], ebx
mov ecx, dword [eax]
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
jne 0x425df7
mov ebp, dword [sym.imp.OLEAUT32.dll_VariantClear]
xor esi, esi
mov edi, edi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
lea edx, [esp + 0x14]
push edx
push 0x4b8b6c
push ebx
push ebx
push eax
mov eax, dword [ecx + 0x24]
call eax
test eax, eax
jge 0x425d1d
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x425ddb
lea eax, [esp + 0x20]
push eax
call ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebx
lea edx, [esp + 0x24]
push edx
push str.Description
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, ebx
jge 0x425d5a
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebx
lea edx, [esp + 0x24]
push edx
push str.FriendlyName
push eax
mov eax, dword [ecx + 0xc]
call eax
cmp eax, ebx
jl 0x425db4
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push ebx
lea edx, [esp + 0x24]
push edx
push str.FriendlyName
push eax
mov eax, dword [ecx + 0xc]
call eax
mov ecx, dword [esp + 0x28]
xor eax, eax
cmp word [ecx], bx
je 0x425d98
lea esp, [esp]
cmp eax, 0xfd
jge 0x425d98
mov dl, byte [ecx + eax*2]
mov byte [esi + eax + 0x565c38], dl
inc eax
cmp word [ecx + eax*2], bx
jne 0x425d80
mov byte [esi + eax + 0x565c38], bl
lea eax, [esi + 0x565c38]
push eax
push edi
push str.SETUP:__i___s__n
call fcn.0049d4b4
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
inc edi
mov dword [esp + 0x10], ebx
add esi, 0xff
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ebx
lea edx, [esp + 0x14]
push edx
push 1
push eax
mov eax, dword [ecx + 0xc]
call eax
test eax, eax
je 0x425cf0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1c], ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], ebx
push edi
push str.SETUP:__i_Device_s__found_n_n
call fcn.0049d4b4
add esp, 8
mov eax, dword [0x565c34]
cmp eax, ebx
jle 0x425e36
dec eax
mov dword [0x565c34], eax
cmp eax, ebx
jne 0x425e3e
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret