Function at 0x4011a0
Capabilities:
Enumerate devices by category
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x420
mov eax, dword [0x40f2c0]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1c4], 0x7d0
mov dword [ebp - 4], 0
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x3ec], 0
mov dword [ebp - 0x1c8], 1
push 0x40b169
lea eax, [ebp - 0x2d0]
push eax
call fcn.00402e70
add esp, 8
push str.image.bmp
lea ecx, [ebp - 0x3e8]
push ecx
call fcn.00402e70
add esp, 8
mov dword [ebp - 0x58], 1
jmp 0x401226
mov edx, dword [ebp - 0x58]
add edx, 1
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp + 8]
jge 0x401255
push 0x40b180
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x401253
mov dword [ebp - 0x1d0], 1
jmp 0x40121d
cmp dword [ebp - 0x1d0], 0
jne 0x401354
push 0x40b188
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push str.CommandCam__Copyright__C__2012_2013_Ted_Burke_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push str.This_program_comes_with_ABSOLUTELY_NO_WARRANTY__n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push str.This_is_free_software__and_you_are_welcome_to_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push str.redistribute_it_under_certain_conditions__n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push str.See_the_GNU_General_Public_License_v3__n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push str._http:__www.gnu.org_licenses_gpl.txt__n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push 0x40b29c
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push str.http:__batchloaf.wordpress.com_CommandCam_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push str.This_version_24_1_2013_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
push 0x40b2e4
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
mov dword [ebp - 0x58], 1
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp + 8]
jge 0x401742
push str._quiet
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x401387
jmp 0x401734
push str._preview
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x4013ae
mov dword [ebp - 4], 1
jmp 0x401734
push str._devlist
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x4013d8
mov dword [ebp - 0x1cc], 1
jmp 0x401734
push str._devlistdetail
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x40140c
mov dword [ebp - 0x1cc], 1
mov dword [ebp - 0x3ec], 1
jmp 0x401734
push str._filename
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x4014b8
mov edx, dword [ebp - 0x58]
add edx, 1
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp + 8]
jge 0x4014a4
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
lea ecx, [ebp - 0x1c0]
push ecx
call fcn.00402e70
add esp, 8
movsx edx, byte [ebp - 0x1c0]
cmp edx, 0x22
jne 0x40148c
lea eax, [ebp - 0x1c0]
push eax
call fcn.00402d50
add esp, 4
sub eax, 2
push eax
lea ecx, [ebp - 0x1c0]
push ecx
lea edx, [ebp - 0x3e8]
push edx
call fcn.00402c10
add esp, 0xc
jmp 0x4014a2
lea eax, [ebp - 0x1c0]
push eax
lea ecx, [ebp - 0x3e8]
push ecx
call fcn.00402e70
add esp, 8
jmp 0x4014b3
push 1
push str.Error:_no_filename_specified
call section..text
add esp, 8
jmp 0x401734
push str._delay
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x40152a
mov edx, dword [ebp - 0x58]
add edx, 1
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp + 8]
jge 0x4014fe
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00402c04
add esp, 4
mov dword [ebp - 0x1c4], eax
jmp 0x40150d
push 2
push 0x40b34c
call section..text
add esp, 8
cmp dword [ebp - 0x1c4], 0
jg 0x401525
push 2
push str.Error:_invalid_delay_specified
call section..text
add esp, 8
jmp 0x401734
push str._devnum
mov ecx, dword [ebp - 0x58]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x40159c
mov ecx, dword [ebp - 0x58]
add ecx, 1
mov dword [ebp - 0x58], ecx
mov edx, dword [ebp - 0x58]
cmp edx, dword [ebp + 8]
jge 0x401570
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00402c04
add esp, 4
mov dword [ebp - 0x1c8], eax
jmp 0x40157f
push 3
push 0x40b394
call section..text
add esp, 8
cmp dword [ebp - 0x1c8], 0
jg 0x401597
push 3
push str.Error:_invalid_device_number
call section..text
add esp, 8
jmp 0x401734
push str._devname
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x401652
mov eax, dword [ebp - 0x58]
add eax, 1
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp + 8]
jge 0x40163e
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
lea edx, [ebp - 0x1c0]
push edx
call fcn.00402e70
add esp, 8
movsx eax, byte [ebp - 0x1c0]
cmp eax, 0x22
jne 0x40161c
lea ecx, [ebp - 0x1c0]
push ecx
call fcn.00402d50
add esp, 4
sub eax, 2
push eax
lea edx, [ebp - 0x1c0]
push edx
lea eax, [ebp - 0x2d0]
push eax
call fcn.00402c10
add esp, 0xc
jmp 0x401632
lea ecx, [ebp - 0x1c0]
push ecx
lea edx, [ebp - 0x2d0]
push edx
call fcn.00402e70
add esp, 8
mov dword [ebp - 0x1c8], 0
jmp 0x40164d
push 4
push str.Error:_invalid_device_name
call section..text
add esp, 8
jmp 0x401734
push str._devserial
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x401705
mov eax, dword [ebp - 0x58]
add eax, 1
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp + 8]
jge 0x4016f4
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + edx*4]
push ecx
lea edx, [ebp - 0x1c0]
push edx
call fcn.00402e70
add esp, 8
movsx eax, byte [ebp - 0x1c0]
cmp eax, 0x22
jne 0x4016d2
lea ecx, [ebp - 0x1c0]
push ecx
call fcn.00402d50
add esp, 4
sub eax, 2
push eax
lea edx, [ebp - 0x1c0]
push edx
lea eax, [ebp - 0x158]
push eax
call fcn.00402c10
add esp, 0xc
jmp 0x4016e8
lea ecx, [ebp - 0x1c0]
push ecx
lea edx, [ebp - 0x158]
push edx
call fcn.00402e70
add esp, 8
mov dword [ebp - 0x1c8], 0
jmp 0x401703
push 5
push str.Error:_invalid_device_serial_number
call section..text
add esp, 8
jmp 0x401734
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
push edx
push str.Unrecognised_option:__s_n
call fcn.0040286a
add eax, 0x40
push eax
call fcn.0040275e
add esp, 0xc
push 6
push 0x40b16a
call section..text
add esp, 8
mov eax, dword [ebp - 0x58]
add eax, 1
mov dword [ebp - 0x58], eax
jmp 0x40135b
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401769
push 7
push str.Could_not_initialise_COM
call section..text
add esp, 8
push 0x40fe74
push 0x40ba58
push 1
push 0
push 0x40bac8
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x40179f
push 8
push str.Could_not_create_filter_graph
call section..text
add esp, 8
push 0x40fe78
push 0x40bb38
push 1
push 0
push 0x40bab8
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x4017d5
push 9
push str.Could_not_create_capture_graph_builder
call section..text
add esp, 8
mov ecx, dword [0x40fe74]
push ecx
mov edx, dword [0x40fe78]
mov eax, dword [edx]
mov ecx, dword [0x40fe78]
push ecx
mov edx, dword [eax + 0xc]
call edx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x40180d
push 0xa
push str.Could_not_attach_capture_graph_builder_to_graph
call section..text
add esp, 8
push 0x40fe64
call fcn.00402460
add esp, 4
push eax
push 0x40ba88
push 1
push 0
push 0x40bad8
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x40184c
push 0xb
push str.Could_not_create_system_device_enumerator
call section..text
add esp, 8
push 0
push 0x40fe68
push 0x40bae8
mov eax, dword [0x40fe64]
mov ecx, dword [eax]
mov edx, dword [0x40fe64]
push edx
mov eax, dword [ecx + 0xc]
call eax
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401888
push 0xc
push str.No_video_devices_found
call section..text
add esp, 8
cmp dword [ebp - 0x1cc], 0
je 0x401a5e
cmp dword [ebp - 0x1d0], 0
jne 0x4018b4
push str.Available_capture_devices:_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 8
mov dword [ebp - 0x58], 0
mov ecx, 1
test ecx, ecx
je 0x401a5e
push 0
push 0x40fe6c
push 1
mov edx, dword [0x40fe68]
mov eax, dword [edx]
mov ecx, dword [0x40fe68]
push ecx
mov edx, dword [eax + 0xc]
call edx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
jne 0x401a33
mov eax, dword [ebp - 0x58]
add eax, 1
mov dword [ebp - 0x58], eax
push 0x40fe70
call fcn.00402460
add esp, 4
push eax
push 0x40ba78
push 0
push 0
mov ecx, dword [0x40fe6c]
mov edx, dword [ecx]
mov eax, dword [0x40fe6c]
push eax
mov ecx, dword [edx + 0x24]
call ecx
mov dword [0x40fe60], eax
cmp dword [ebp - 0x3ec], 0
je 0x40195b
cmp dword [ebp - 0x1d0], 0
jne 0x40195b
mov edx, dword [ebp - 0x58]
push edx
push str.Capture_device__d:_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 0xc
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0
lea ecx, [ebp - 0x400]
push ecx
push 0x40b550
mov edx, dword [0x40fe70]
mov eax, dword [edx]
mov ecx, dword [0x40fe70]
push ecx
mov edx, dword [eax + 0xc]
call edx
mov dword [0x40fe60], eax
cmp dword [ebp - 0x1d0], 0
jne 0x4019b5
mov eax, dword [ebp - 0x3f8]
push eax
push str.__Device_name:__ls_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 0xc
lea ecx, [ebp - 0x400]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp dword [ebp - 0x3ec], 0
je 0x401a31
lea edx, [ebp - 0x400]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0
lea eax, [ebp - 0x400]
push eax
push str.DevicePath
mov ecx, dword [0x40fe70]
mov edx, dword [ecx]
mov eax, dword [0x40fe70]
push eax
mov ecx, dword [edx + 0xc]
call ecx
mov dword [0x40fe60], eax
cmp dword [ebp - 0x1d0], 0
jne 0x401a24
mov edx, dword [ebp - 0x3f8]
push edx
push str.__Device_path:__ls_n_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 0xc
lea eax, [ebp - 0x400]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x401a59
cmp dword [ebp - 0x58], 0
jne 0x401a4a
push 0xd
push str.No_devices_found
call section..text
add esp, 8
jmp 0x401a59
push 0
push 0x40b16b
call section..text
add esp, 8
jmp 0x4018bb
mov dword [ebp - 0x58], 0
mov ecx, 1
test ecx, ecx
je 0x401c8c
push 0
push 0x40fe6c
push 1
mov edx, dword [0x40fe68]
mov eax, dword [edx]
mov ecx, dword [0x40fe68]
push ecx
mov edx, dword [eax + 0xc]
call edx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
jne 0x401aa8
mov eax, dword [ebp - 0x58]
add eax, 1
mov dword [ebp - 0x58], eax
jmp 0x401afc
cmp dword [ebp - 0x1c8], 0
jne 0x401ad0
lea ecx, [ebp - 0x2d0]
push ecx
push str.Video_capture_device__s_not_found_n
call fcn.0040286a
add eax, 0x40
push eax
call fcn.0040275e
add esp, 0xc
jmp 0x401aed
mov edx, dword [ebp - 0x1c8]
push edx
push str.Video_capture_device__d_not_found_n
call fcn.0040286a
add eax, 0x40
push eax
call fcn.0040275e
add esp, 0xc
push 0xe
push 0x40b16e
call section..text
add esp, 8
cmp dword [ebp - 0x1c8], 0
jne 0x401c7a
push 0x40fe70
call fcn.00402460
add esp, 4
push eax
push 0x40ba78
push 0
push 0
mov eax, dword [0x40fe6c]
mov ecx, dword [eax]
mov edx, dword [0x40fe6c]
push edx
mov eax, dword [ecx + 0x24]
call eax
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
jne 0x401c69
lea ecx, [ebp - 0x2e8]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0
lea edx, [ebp - 0x2e8]
push edx
push 0x40b60c
mov eax, dword [0x40fe70]
mov ecx, dword [eax]
mov edx, dword [0x40fe70]
push edx
mov eax, dword [ecx + 0xc]
call eax
mov dword [0x40fe60], eax
mov ecx, dword [ebp - 0x2e0]
push ecx
push 0x40b628
lea edx, [ebp - 0x1c0]
push edx
call fcn.00402b6a
add esp, 0xc
lea eax, [ebp - 0x2e8]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [ebp - 0x1c0]
push ecx
lea edx, [ebp - 0x2d0]
push edx
call fcn.00402de0
add esp, 8
test eax, eax
jne 0x401bbf
jmp 0x401c8c
lea eax, [ebp - 0x2e8]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0
lea ecx, [ebp - 0x2e8]
push ecx
push 0x40b62c
mov edx, dword [0x40fe70]
mov eax, dword [edx]
mov ecx, dword [0x40fe70]
push ecx
mov edx, dword [eax + 0xc]
call edx
mov dword [0x40fe60], eax
mov eax, dword [ebp - 0x2e0]
push eax
push 0x40b644
lea ecx, [ebp - 0x1c0]
push ecx
call fcn.00402b6a
add esp, 0xc
lea edx, [ebp - 0x2e8]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [0x40fe70]
mov ecx, dword [eax]
mov edx, dword [0x40fe70]
push edx
mov eax, dword [ecx + 8]
call eax
mov dword [0x40fe70], 0
lea ecx, [ebp - 0x158]
push ecx
call fcn.00402d50
add esp, 4
test eax, eax
je 0x401c67
lea edx, [ebp - 0x158]
push edx
lea eax, [ebp - 0x1c0]
push eax
call fcn.00402400
add esp, 8
test eax, eax
je 0x401c67
jmp 0x401c8c
jmp 0x401c78
push 0xf
push str.Error_getting_device_name_and_DevicePath
call section..text
add esp, 8
jmp 0x401c87
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x1c8]
jl 0x401c87
jmp 0x401c8c
jmp 0x401a65
push 0x40fe70
call fcn.00402460
add esp, 4
push eax
push 0x40ba78
push 0
push 0
mov edx, dword [0x40fe6c]
mov eax, dword [edx]
mov ecx, dword [0x40fe6c]
push ecx
mov edx, dword [eax + 0x24]
call edx
mov dword [0x40fe60], eax
lea eax, [ebp - 0x2e8]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
push 0
lea ecx, [ebp - 0x2e8]
push ecx
push str.FriendlyName
mov edx, dword [0x40fe70]
mov eax, dword [edx]
mov ecx, dword [0x40fe70]
push ecx
mov edx, dword [eax + 0xc]
call edx
mov dword [0x40fe60], eax
cmp dword [ebp - 0x1d0], 0
jne 0x401d16
mov eax, dword [ebp - 0x2e0]
push eax
push str.Capture_device:__ls_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 0xc
lea ecx, [ebp - 0x2e8]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push 0x40fe7c
push 0x40ba68
push 0
push 0
mov edx, dword [0x40fe6c]
mov eax, dword [edx]
mov ecx, dword [0x40fe6c]
push ecx
mov edx, dword [eax + 0x20]
call edx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401d62
push 0x10
push str.Could_not_create_capture_filter
call section..text
add esp, 8
push str.Capture_Filter
mov eax, dword [0x40fe7c]
push eax
mov ecx, dword [0x40fe74]
mov edx, dword [ecx]
mov eax, dword [0x40fe74]
push eax
mov ecx, dword [edx + 0xc]
call ecx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401d9d
push 0x11
push str.Could_not_add_capture_filter_to_graph
call section..text
add esp, 8
push 0x40fe80
push 0x40ba68
push 1
push 0
push 0x40ba38
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401dd3
push 0x12
push str.Could_not_create_Sample_Grabber_filter
call section..text
add esp, 8
push 0x40fe84
push 0x40ba28
mov edx, dword [0x40fe80]
mov eax, dword [edx]
mov ecx, dword [0x40fe80]
push ecx
mov edx, dword [eax]
call edx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401e0d
push 0x13
push str.Could_not_get_ISampleGrabber_interface_to_sample_grabber_filter
call section..text
add esp, 8
push 1
mov eax, dword [0x40fe84]
mov ecx, dword [eax]
mov edx, dword [0x40fe84]
push edx
mov eax, dword [ecx + 0x18]
call eax
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401e3f
push 0x14
push str.Could_not_enable_sample_buffering_in_the_sample_grabber
call section..text
add esp, 8
push 0x48
push 0
lea ecx, [ebp - 0x50]
push ecx
call fcn.00402af0
add esp, 0xc
mov edx, dword [0x40ba98]
mov dword [ebp - 0x50], edx
mov eax, dword [0x40ba9c]
mov dword [ebp - 0x4c], eax
mov ecx, dword [0x40baa0]
mov dword [ebp - 0x48], ecx
mov edx, dword [0x40baa4]
mov dword [ebp - 0x44], edx
mov eax, dword [0x40baa8]
mov dword [ebp - 0x40], eax
mov ecx, dword [0x40baac]
mov dword [ebp - 0x3c], ecx
mov edx, dword [0x40bab0]
mov dword [ebp - 0x38], edx
mov eax, dword [0x40bab4]
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x50]
push ecx
mov edx, dword [0x40fe84]
mov eax, dword [edx]
mov ecx, dword [0x40fe84]
push ecx
mov edx, dword [eax + 0x10]
call edx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401ec9
push 0x15
push str.Could_not_set_media_type_in_sample_grabber
call section..text
add esp, 8
push str.SampleGrab
mov eax, dword [0x40fe80]
push eax
mov ecx, dword [0x40fe74]
mov edx, dword [ecx]
mov eax, dword [0x40fe74]
push eax
mov ecx, dword [edx + 0xc]
call ecx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401f04
push 0x16
push str.Could_not_add_Sample_Grabber_to_filter_graph
call section..text
add esp, 8
push 0x40fe88
push 0x40ba68
push 1
push 0
push 0x40ba48
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401f3a
push 0x17
push str.Could_not_create_Null_Renderer_filter
call section..text
add esp, 8
push str.NullRender
mov edx, dword [0x40fe88]
push edx
mov eax, dword [0x40fe74]
mov ecx, dword [eax]
mov edx, dword [0x40fe74]
push edx
mov eax, dword [ecx + 0xc]
call eax
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401f76
push 0x18
push str.Could_not_add_Null_Renderer_to_filter_graph
call section..text
add esp, 8
mov ecx, dword [0x40fe88]
push ecx
mov edx, dword [0x40fe80]
push edx
mov eax, dword [0x40fe7c]
push eax
push 0x40ba98
push 0x40bb08
mov ecx, dword [0x40fe78]
mov edx, dword [ecx]
mov eax, dword [0x40fe78]
push eax
mov ecx, dword [edx + 0x1c]
call ecx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x401fc4
push 0x19
push str.Could_not_render_capture_video_stream
call section..text
add esp, 8
cmp dword [ebp - 4], 0
jle 0x40201b
push 0
push 0
mov edx, dword [0x40fe7c]
push edx
push 0x40ba98
push 0x40bb18
mov eax, dword [0x40fe78]
mov ecx, dword [eax]
mov edx, dword [0x40fe78]
push edx
mov eax, dword [ecx + 0x1c]
call eax
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x40201b
cmp dword [0x40fe60], 0x4027e
je 0x40201b
push 0x1a
push str.Could_not_render_preview_video_stream
call section..text
add esp, 8
push 0x40fe8c
push 0x40bb28
mov ecx, dword [0x40fe74]
mov edx, dword [ecx]
mov eax, dword [0x40fe74]
push eax
mov ecx, dword [edx]
call ecx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x402054
push 0x1b
push str.Could_not_get_media_control_interface
call section..text
add esp, 8
mov edx, 1
test edx, edx
je 0x4020b9
mov eax, dword [0x40fe8c]
mov ecx, dword [eax]
mov edx, dword [0x40fe8c]
push edx
mov eax, dword [ecx + 0x1c]
call eax
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
jne 0x402080
jmp 0x4020b9
cmp dword [0x40fe60], 1
jne 0x40208b
jmp 0x402054
mov ecx, dword [0x40fe60]
push ecx
push str.Error:__u_n
call fcn.0040286a
add eax, 0x40
push eax
call fcn.0040275e
add esp, 0xc
push 0x1c
push str.Could_not_run_filter_graph
call section..text
add esp, 8
jmp 0x402054
mov edx, dword [ebp - 0x1c4]
push edx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [ebp - 0x2d4], 0
mov eax, 1
test eax, eax
je 0x402135
push 0
lea ecx, [ebp - 0x2d4]
push ecx
mov edx, dword [0x40fe84]
mov eax, dword [edx]
mov ecx, dword [0x40fe84]
push ecx
mov edx, dword [eax + 0x1c]
call edx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
jne 0x40210f
cmp dword [ebp - 0x2d4], 0
je 0x40210f
jmp 0x402135
cmp dword [0x40fe60], 0
je 0x402133
cmp dword [0x40fe60], 0x80040227
je 0x402133
push 0x1d
push str.Could_not_get_buffer_size
call section..text
add esp, 8
jmp 0x4020d0
mov eax, dword [0x40fe8c]
mov ecx, dword [eax]
mov edx, dword [0x40fe8c]
push edx
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [ebp - 0x2d4]
push ecx
call fcn.00402a6e
add esp, 4
mov dword [ebp - 0x420], eax
mov edx, dword [ebp - 0x420]
mov dword [0x40fe90], edx
cmp dword [0x40fe90], 0
jne 0x402181
push 0x1e
push str.Could_not_allocate_data_buffer_for_image
call section..text
add esp, 8
mov eax, dword [0x40fe90]
push eax
lea ecx, [ebp - 0x2d4]
push ecx
mov edx, dword [0x40fe84]
mov eax, dword [edx]
mov ecx, dword [0x40fe84]
push ecx
mov edx, dword [eax + 0x1c]
call edx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x4021bf
push 0x1f
push str.Could_not_get_buffer_data_from_sample_grabber
call section..text
add esp, 8
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [0x40fe84]
mov edx, dword [ecx]
mov eax, dword [0x40fe84]
push eax
mov ecx, dword [edx + 0x14]
call ecx
mov dword [0x40fe60], eax
cmp dword [0x40fe60], 0
je 0x4021f3
push 0x20
push str.Could_not_get_media_type
call section..text
add esp, 8
mov dword [ebp - 0x54], 0
push 0x40baf8
lea edx, [ebp - 0x24]
push edx
call fcn.00402420
add esp, 8
test eax, eax
je 0x402364
cmp dword [ebp - 0x10], 0x58
jb 0x402364
cmp dword [ebp - 0xc], 0
je 0x402364
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x1d0], 0
jne 0x40225a
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 0x38]
push edx
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + 0x34]
push ecx
push str.Capture_resolution:__dx_d_n
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 0x10
mov edx, dword [ebp - 0x10]
sub edx, 0x30
mov dword [ebp - 0x404], edx
push 0xe
push 0
lea eax, [ebp - 0x414]
push eax
call fcn.00402af0
add esp, 0xc
mov ecx, 0x4d42
mov word [ebp - 0x414], cx
mov edx, dword [ebp - 0x404]
mov eax, dword [ebp - 0x2d4]
lea ecx, [eax + edx + 0xe]
mov dword [ebp - 0x412], ecx
mov edx, dword [ebp - 0x404]
add edx, 0xe
mov dword [ebp - 0x40a], edx
push 0
push 0
push 2
push 0
push 2
push 0x40000000
lea eax, [ebp - 0x3e8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x418], eax
cmp dword [ebp - 0x418], 0xffffffff
jne 0x4022e4
push 0x21
push str.Error_opening_output_file
call section..text
add esp, 8
mov dword [ebp - 0x41c], 0
push 0
lea ecx, [ebp - 0x41c]
push ecx
push 0xe
lea edx, [ebp - 0x414]
push edx
mov eax, dword [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea ecx, [ebp - 0x41c]
push ecx
mov edx, dword [ebp - 0x404]
push edx
mov eax, dword [ebp - 0x54]
add eax, 0x30
push eax
mov ecx, dword [ebp - 0x418]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0
lea edx, [ebp - 0x41c]
push edx
mov eax, dword [ebp - 0x2d4]
push eax
mov ecx, dword [0x40fe90]
push ecx
mov edx, dword [ebp - 0x418]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x402373
push 0x22
push str.Wrong_media_type
call section..text
add esp, 8
cmp dword [ebp - 0x10], 0
je 0x402391
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x14], 0
je 0x4023ac
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [eax + 8]
call edx
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x1d0], 0
jne 0x4023d2
lea eax, [ebp - 0x3e8]
push eax
push str.Captured_image_to__s
call fcn.0040286a
add eax, 0x20
push eax
call fcn.0040275e
add esp, 0xc
push 0
push 0x40b16f
call section..text
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00402f68
mov esp, ebp
pop ebp
ret