Function at 0x407790
Capabilities:
Enumerate devices by category

Disassembly:
sub esp, 0x188
lea eax, [esp + 0xc]
push ebp
push esi
push edi
push eax
push 0x41c630
push 1
push 0
mov esi, ecx
push 0x41c650
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jne 0x4079d7
mov eax, dword [esp + 0x18]
lea edx, [esp + 0xc]
push 0
push edx
mov ecx, dword [eax]
push 0x41c640
push eax
call dword [ecx + 0xc]
test eax, eax
jne 0x4079d7
mov eax, dword [esp + 0xc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x14]
lea edi, [esi + 4]
push ecx
mov edx, dword [eax]
push edi
push 1
push eax
call dword [edx + 0xc]
test eax, eax
jne 0x4079c3
mov ebp, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [edi]
lea ecx, [esp + 0x10]
push ecx
push 0x41d138
mov edx, dword [eax]
push 0
push 0
push eax
call dword [edx + 0x24]
test eax, eax
jl 0x4079a9
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push 0
mov word [esp + 0x20], 8
mov edx, dword [eax]
push ecx
push str.FriendlyName
push eax
call dword [edx + 0xc]
test eax, eax
jne 0x4079a9
mov edx, dword [esp + 0x24]
lea eax, [esp + 0xa4]
push edx
push eax
call fcn.00407bd0
mov ecx, dword [esp + 0x24]
push ecx
call ebp
push 0
push 0
lea edx, [esp + 0x34]
push 0x78
push edx
lea eax, [esp + 0xb4]
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
je 0x4079a9
mov byte [esp + 0x35], 0
mov esi, str.BisonCam_
lea eax, [esp + 0x2c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4078bc
test cl, cl
je 0x4078b8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4078bc
add eax, 2
add esi, 2
test cl, cl
jne 0x407898
xor eax, eax
jmp 0x4078c1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4079e3
mov esi, str.Lenovo_Ea
lea eax, [esp + 0x2c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4078f6
test cl, cl
je 0x4078f2
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4078f6
add eax, 2
add esi, 2
test cl, cl
jne 0x4078d2
xor eax, eax
jmp 0x4078fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4079e3
mov esi, str.Integrate
lea eax, [esp + 0x2c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x407930
test cl, cl
je 0x40792c
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x407930
add eax, 2
add esi, 2
test cl, cl
jne 0x40790c
xor eax, eax
jmp 0x407935
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4079e3
mov esi, str.Acer_Orbi
lea eax, [esp + 0x2c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40796a
test cl, cl
je 0x407966
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40796a
add eax, 2
add esi, 2
test cl, cl
jne 0x407946
xor eax, eax
jmp 0x40796f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4079e3
mov esi, str.BenQ_QEye
lea eax, [esp + 0x2c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4079a0
test cl, cl
je 0x40799c
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4079a0
add eax, 2
add esi, 2
test cl, cl
jne 0x40797c
xor eax, eax
jmp 0x4079a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4079e3
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x14]
push edx
push edi
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x407807
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0xc]
push eax
mov edx, dword [eax]
call dword [edx + 8]
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x188
ret
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0xc]
push eax
mov edx, dword [eax]
call dword [edx + 8]
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x188
ret