Function at 0x404391
Capabilities:
Capture webcam image

Disassembly:
mov dword [ebp + 0x9c], 0
inc esp
mov ebx, dword [ebp + 0x70]
inc ebp
test ebx, ebx
je 0x404340
dec esp
mov ebx, dword [ebp + 0xb8]
dec esp
mov edx, dword [ebp + 0x20]
inc ecx
movsx eax, word [ebx]
inc ecx
movsx edx, word [edx]
imul eax, edi
imul edx, edi
xlatb
sub eax, ebx
cmp eax, edx
jl 0x404340
inc esp
mov edx, dword [ebp + 0x74]
inc ebp
test edx, edx
je 0x40433a
inc esp
mov ecx, dword [ebp + 0xa8]
inc ebp
test ecx, ecx
je 0x404340
inc esp
mov dword [ebp + 0x74], esp
nop
dec eax
mov edx, dword [ebp + 0x208]
add byte [eax], al
dec esp
mov ebx, dword [ebp + 0x78]
inc esp
cmp dword [edx + 0xc], esp
inc ecx
mov eax, dword [ebx]
mov dword [ebp + 0x10c], eax
jle 0x4046b2
dec esp
add esi, dword [ebp + 0x220]
dec esp
mov dword [ebp + 0xa8], esi
mov ch, 0xa8
add byte [eax], al
invalid
inc ebp
test bh, bh
mov edx, 0
inc esp
mov eax, dword [ebp + 0x74]
dec eax
cmove edx, dword [ebp + 0xa0]
inc esp
xchg ebp, eax
mov al, byte [0x45000000]
test eax, eax
dec eax
mov dword [ebp + 0xa0], edx
je 0x4046a0
cmp dword [ebp + 0x84], 1
jg 0x404ae4
cmp dword [ebp + 0x250], 3
jne 0x404ae4
inc esp
mov esi, dword [ebp + 0x64]
jne 0x404412
jne 0x404412
test eax, eax
inc ecx
mov edi, 0xffffffff
inc ebp
mov eax, esi
js 0x404ae4
nop
mov ecx, dword [ebp + 0x258]
test ecx, ecx
setne al
inc esp
cmp esp, dword [ebp + 0x260]
je 0x4046d5
test al, al
je 0x40472c
mov eax, dword [ebp + 0x90]
xor edx, edx
test eax, eax
jne 0x404405
dec esp
mov ebx, dword [ebp + 0xb8]
inc ecx
movsx eax, word [ebx]
imul eax, edi
dec eax
cwde
dec eax
sub eax, dword [ebp + 0x30]
dec ecx
lea edx, [ebp + eax*4]
xor eax, eax
inc ecx
cmp edi, 0xffffffff
je 0x404415
dec ecx
arpl di, ax
dec ecx
lea eax, [ebp + eax*4]
inc esp
test dword [eax], eax
mov ecx, dword [ebp + 0x288]
inc esp
mov edx, dword [ebp + 0x9c]
dec esp
mov ebx, dword [ebp + 0xa0]
dec eax
mov dword [esp + 0x38], edx
dec eax
mov edx, dword [ebp + 0xa8]
inc esp
mov dword [esp + 0x50], eax
inc ecx
mov eax, ebx
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x84]
inc ecx
sar edx, 1
dec esp
mov dword [esp + 0x48], ebx
inc ebp
mov ecx, edx
mov dword [esp + 0x40], 0x3f800000
dec eax
mov dword [esp + 0x28], eax
inc esp
mov dword [ebp - 0x18], edx
mov dword [esp + 0x20], ecx
dec eax
lea ecx, [ebp + 0xf0]
call fcn.00403af0
inc ecx
mov ebx, eax
mov eax, dword [ebp + 0x90]
xor edx, edx
inc esp
mov edx, dword [ebp - 0x18]
test eax, eax
jne 0x4044a1
dec eax
mov edx, dword [ebp + 0xb8]
dec eax
mov ecx, dword [ebp + 0x28]
movsx eax, word [edx]
imul eax, edi
dec eax
cwde
dec eax
sub eax, dword [ebp + 0x30]
dec eax
lea edx, [ecx + eax*4]
xor eax, eax
inc ecx
cmp edi, 0xffffffff
je 0x4044b4
dec eax
mov ecx, dword [ebp + 0x28]
dec ebp
arpl di, di
dec edx
lea eax, [ecx + edi*4]
dec eax
mov ecx, dword [ebp + 0xa0]
dec eax
mov dword [esp + 0x38], edx
inc ebp
mov ecx, edx
inc esp
mov dword [esp + 0x50], esi
mov dword [esp + 0x40], 0x3f800000
inc ecx
mov eax, ebx
dec eax
mov dword [esp + 0x28], eax
dec eax
mov edx, esi
inc esp
mov dword [ebp - 0x10], ebx
dec eax
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 0x288]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x84]
mov dword [esp + 0x20], ecx
dec eax
lea ecx, [ebp + 0xf0]
call fcn.00403af0
inc esp
mov ebx, dword [ebp - 0x10]
dec esp
mov edx, dword [ebp + 0xb0]
dec eax
mov edx, dword [ebp + 0x40]
inc ecx
add esp, 1
shl ebx, 3
inc esi
mov byte [edx + edx], bl
dec esp
mov ebx, dword [ebp + 0x38]
inc ebx
mov byte [ebx + edx - 1], al
dec esp
mov edx, dword [ebp + 0x88]
inc ebp
xor ebx, ebx
mov eax, dword [ebp + 0x98]
inc ecx
add eax, dword [edx]
dec esp
mov edx, dword [ebp + 0x58]
add dword [ebp + 0x278], eax
cmp ebx, dword [ebp + 0x9c]
inc ecx
setl bl
dec eax
add dword [ebp + 0xb8], 2
dec esp
add dword [ebp + 0xb0], edx
inc esp
mov dword [ebp + 0xa8], ebx
dec eax
add dword [ebp + 0x78], 4
dec eax
add dword [ebp + 0x88], 4
sub dword [ebp + 0x80], 1
inc esp
cmp esp, dword [ebp + 0x218]
je 0x404cb0
dec esp
mov ebx, dword [ebp + 0xb8]
inc ecx
movsx edx, word [ebx]
inc esp
cmp esp, dword [ebp + 0x48]
inc ecx
mov eax, edx
dec eax
mov eax, dword [ebp + 0x228]
dec esp
mov ebx, dword [ebp + 0xb8]
dec eax
mov ecx, dword [ebp + 0x280]
inc esp
mov dword [ebp + 0x100], esp
inc ecx
sete bh
inc ecx
movsx ebx, word [ebx + 2]
xor esi, esi
inc esp
imul eax, edi
inc ebp
movzx edx, bh
inc esp
mov dword [ebp + 0x90], edx
dec ebp
arpl ax, ax
dec esi
lea esi, [eax*4]
dec esp
add eax, esi
dec eax
cmp dword [ebp + 0x228], 0
dec eax
cmovne esi, eax
sub ebx, edx
imul ebx, edi
call 0x40d7c0
mov dword [ebp + 0x98], eax
mov eax, dword [ebp + 0x278]
sub eax, dword [ebp + 0x98]
inc esp
cmp esp, dword [ebp + 0x210]
cmove eax, dword [ebp + 0x278]
mov dword [ebp + 0x278], eax
mov eax, dword [ebp + 0x270]
sub eax, dword [ebp + 0x98]
inc esp
cmp dword [ebp + 0x290], esp
lea edx, [eax - 1]
mov dword [ebp + 0x118], edx
jle 0x4042f3
cmp eax, 0x3fff
mov ecx, 0x3fff
inc ecx
mov ecx, 3
cmovle ecx, eax
cmp dword [ebp + 0x80], 3
mov eax, dword [ebp + 0x278]
inc esp
cmovle ecx, dword [ebp + 0x80]
dec esp
mov edx, dword [ebp + 0x88]
mov dword [ebp + 0x9c], 0
mov edx, eax
sar edx, 0x1f
inc ecx
idiv ecx
inc ecx
add eax, dword [edx]
cmp ecx, eax
cmovg ecx, eax
test ecx, ecx
cmovs ecx, dword [ebp + 0x9c]
mov dword [ebp + 0x9c], ecx
jmp 0x4042fd
inc esp
mov esi, dword [ebp + 0x64]
inc ecx
mov edi, 0xffffffff
inc ebp
mov eax, esi
jmp 0x4043c0
dec eax
cmp dword [ebp + 0x228], 0
dec esp
mov dword [ebp + 0xa8], ebp
dec eax
mov dword [ebp + 0xa0], 0
dec ecx
cmovne esi, ebp
jmp 0x40436c
test al, al
je 0x40472c
mov edx, dword [ebp + 0x70]
test edx, edx
je 0x404722
dec esp
mov edx, dword [ebp + 0xb8]
inc ecx
movsx edx, word [edx]
imul edx, edi
sub edx, dword [ebp + 0x4c]
test edx, edx
jle 0x404722
dec eax
mov ecx, dword [ebp + 0x28]
xor eax, eax
movss xmm1, dword [0x38c9d]
inc ecx
movups xmm0, xmmword [ebp + eax*4]
addss xmm0, dword [ecx + eax*4]
mulss xmm0, xmm1
inc ecx
movups xmmword [ebp + eax*4], xmm0
dec eax
add eax, 1
cmp edx, eax
jg 0x404703
mov dword [ebp + 0x258], 0
inc ebp
or esi, eax
dec eax
test esi, esi
je 0x404a50
mov eax, dword [ebp + 0x90]
dec eax
mov dword [ebp + 0x68], 0
test eax, eax
jne 0x404767
dec esp
mov edx, dword [ebp + 0xb8]
inc ecx
movsx eax, word [edx]
imul eax, edi
dec eax
cwde
dec eax
sub eax, dword [ebp + 0x30]
dec ecx
lea eax, [ebp + eax*4]
dec eax
mov dword [ebp + 0x68], eax
inc ecx
cmp edi, 0xffffffff
dec eax
mov dword [ebp + 0x90], 0
test dword [eax], edx
add byte [eax], al
invalid
je 0x404787
dec ebp
mov eax, dword [ebp + 0x90]
xor edx, edx
test eax, eax
jne 0x404a75
dec esp
mov edx, dword [ebp + 0xb8]
inc ecx
movsx eax, word [edx]
imul eax, edi
dec eax
cwde
dec eax
sub eax, dword [ebp + 0x30]
dec ecx
lea edx, [ebp + eax*4]
xor eax, eax
inc ecx
cmp edi, 0xffffffff
je 0x404a85
dec ebp
arpl di, di
dec ebx
lea eax, [ebp + edi*4]
mov ecx, dword [ebp + 0x288]
dec esp
mov ebx, dword [ebp + 0xa0]
inc ecx
mov eax, ebx
dec eax
mov dword [esp + 0x38], edx
inc esp
mov ecx, dword [ebp + 0x9c]
inc ebp
clc
add dword [eax], eax
add byte [eax], al
xor edi, edi
mov esi, 0x400
push 5
call fcn.00404cb1
cmp dword [ebp - 8], edi
je 0x404ad3
mov edx, dword [ebp - 0x28]
xor ecx, ecx
cmp edx, ecx
ja 0x404ad3
jb 0x404acc
mov ecx, dword [ebp - 0x2c]
cmp ecx, eax
jae 0x404ad3
mov dword [ebp - 4], 2
mov ecx, dword [0x42921c]
cmp dword [ecx + 0x10], edi
add byte [eax], al
add byte [ebx + 0x42a28c15], cl
add byte [ebx + 0x42a2880d], cl
add byte [ebx], dh
rol byte [ebp + 0x561874d2], 0xf6
inc ecx
or byte [ecx], al