Function at 0x407cb0
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x108
mov eax, dword [0x445750]
xor eax, esp
mov dword [esp + 0x104], eax
push edi
xor edi, edi
mov dword [0x447364], edi
mov dword [0x4473a0], edi
mov dword [0x447398], edi
mov dword [0x447360], 0xffffffff
mov ecx, 0x4473c8
mov dword [0x444bcc], 1
call fcn.0040a0b0
cmp dword [0x447264], 1
je 0x407d3f
push edi
push str.Waiting_for_Device_starts...
call fcn.00404200
add esp, 8
call fcn.00407bc0
test eax, eax
jne 0x407d3f
mov ecx, 0x4473c8
mov dword [0x444bcc], edi
call fcn.004096a0
xor eax, eax
pop edi
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.0041e904
add esp, 0x108
ret
push edi
push str.Start_capture
call fcn.00404200
add esp, 8
cmp dword [0x447264], 2
je 0x407d6a
push edi
call fcn.0040f8d0
mov eax, dword [0x447368]
push eax
call fcn.0040f900
add esp, 8
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
call ebp
mov dword [0x44736c], eax
call fcn.0040d420
mov edi, edi
call fcn.00407680
test eax, eax
je 0x407e5d
mov eax, dword [0x4472e8]
cmp eax, edi
jg 0x407d9f
call fcn.0040d780
mov esi, eax
jmp 0x407dac
xor ecx, ecx
cmp dword [0x447398], eax
setl cl
mov esi, ecx
mov eax, dword [0x447264]
cmp eax, 1
je 0x407dc8
cmp eax, 2
je 0x407dc8
cmp esi, edi
je 0x407dc8
call fcn.0040d8d0
test eax, eax
jne 0x407dd1
call fcn.0040d410
test al, 1
je 0x407dd3
xor esi, esi
mov eax, dword [0x447264]
mov ecx, dword [0x447398]
lea edx, [eax - 1]
cmp edx, 1
ja 0x407dee
cmp ecx, dword [0x444bd0]
jl 0x407e0e
cmp eax, edi
jne 0x407dfa
cmp dword [0x4479f8], edi
je 0x407e39
push ecx
call fcn.0040b200
mov ecx, dword [0x447398]
mov eax, dword [0x447264]
add esp, 4
mov edx, dword [0x4479f8]
cmp eax, edi
jne 0x407e1c
cmp edx, edi
je 0x407e39
inc ecx
mov dword [0x447398], ecx
cmp eax, 2
je 0x407e39
cmp eax, edi
jne 0x407e30
cmp edx, edi
je 0x407e39
push ecx
call fcn.0040f930
add esp, 4
call fcn.00407bb0
cmp esi, edi
je 0x407e5d
mov eax, dword [0x447398]
cmp eax, dword [0x44739c]
jge 0x407e5d
mov ecx, dword [0x444bcc]
test ecx, ecx
jg 0x407d80
mov ecx, 0x4473c8
call fcn.004096a0
call ebp
sub eax, dword [0x44736c]
je 0x407eea
mov ecx, dword [0x447398]
cmp ecx, 0x1e
jge 0x407e91
push ecx
lea edx, [esp + 0x14]
push 0x439498
push edx
call fcn.0041e808
add esp, 0xc
jmp 0x407edc
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
test eax, eax
jge 0x407ea3
fadd qword [0x439490]
fmul qword [0x439488]
sub esp, 8
lea eax, [esp + 0x18]
fstp dword [esp + 0x14]
fild dword [0x447398]
fld dword [esp + 0x14]
fld st(0)
fdivp st(2)
fxch st(1)
fstp qword [esp]
push ecx
sub esp, 8
fstp qword [esp]
push str.Capture_time__.2f_sec___d_frames___.2f_fps_
push eax
call fcn.0041e808
add esp, 0x1c
lea ecx, [esp + 0x10]
push edi
push ecx
call fcn.00404200
add esp, 8
mov eax, dword [0x4472e8]
cmp eax, edi
jle 0x407f02
xor edx, edx
cmp dword [0x447398], eax
sete dl
mov esi, edx
jmp 0x407f27
cmp dword [0x447320], 9
jne 0x407f1a
xor eax, eax
cmp dword [0x44843c], edi
sete al
mov esi, eax
jmp 0x407f27
xor ecx, ecx
cmp dword [0x44843c], edi
sete cl
mov esi, ecx
cmp esi, edi
jne 0x407f3b
push edi
push str.ERR:_insufficient_number_of_frames
call fcn.00404200
add esp, 8
jmp 0x407f5b
mov eax, dword [0x447264]
cmp eax, 2
je 0x407f5b
cmp eax, 1
je 0x407f56
push 0x63
call fcn.0040fa10
add esp, 4
jmp 0x407f5b
call fcn.0040f9d0
call fcn.0040e0e0
mov dword [0x444bcc], edi
cmp esi, edi
je 0x407f80
push 0xaaaa
push 1
push 0xaaaa
push 0x15
call fcn.00404510
add esp, 0x10
mov ecx, dword [esp + 0x110]
mov eax, esi
pop esi
pop ebp
pop edi
xor ecx, esp
call fcn.0041e904
add esp, 0x108
ret