Function at 0x40596a
Capabilities:
Capture webcam image

Disassembly:
mov ebx, dword [ebp - 0x1c]
xor edi, edi
cmp dword [ebp + 0xc], 0x405
jne 0x40598a
xor ecx, ecx
mov dword [ebp + 0x10], edi
inc ecx
mov dword [ebp + 0xc], 0x40f
add byte [eax], al
mov dword [ebp + 0x14], ecx
jmp 0x40598d
mov ecx, dword [ebp + 0x14]
cmp dword [ebp + 0xc], 0x4e
mov eax, 0x413
je 0x4059a1
cmp dword [ebp + 0xc], eax
jne 0x405a88
cmp dword [ebp + 0xc], eax
mov dword [ebp - 0xc], ecx
je 0x4059b6
cmp dword [ecx + 4], 0x408
jne 0x405a88
test byte [0x42eb79], 2
jne 0x405a35
cmp dword [ebp + 0xc], eax
je 0x4059cd
mov ecx, dword [ebp + 0x14]
cmp dword [ecx + 8], 0xfffffffe
jne 0x405a35
xor ecx, ecx
cmp dword [ebp + 0xc], eax
setne cl
push ecx
push dword [ebp - 4]
call fcn.00405679
cmp eax, edi
jl 0x405a35
mov ecx, eax
imul ecx, ecx, 0x418
lea edx, [ecx + ebx + 8]
mov ecx, dword [edx]
test cl, 0x10
jne 0x405a35
test cl, 0x40
je 0x405a0e
xor ecx, 0x80
test cl, cl
jns 0x405a09
or ecx, 1
jmp 0x405a11
and ecx, 0xfffffffe
xor ecx, 1
push eax
mov dword [edx], ecx
call fcn.0040217d
mov eax, dword [0x42eb78]
xor ecx, ecx
not eax
cmp dword [ebp - 0xc], edi
je 0x405a88
mov eax, dword [ebp - 0xc]
cmp dword [eax + 8], 0xfffffe6e
jne 0x405a54
push dword [eax + 0x5c]
push edi
push 0x419
push dword [ebp - 4]
call esi
mov eax, dword [ebp - 0xc]
cmp dword [eax + 8], 0xfffffe6a
jne 0x405a88
cmp dword [eax + 0xc], 2
jne 0x405a78
mov eax, dword [eax + 0x5c]
imul eax, eax, 0x418
lea eax, [eax + ebx + 8]
or dword [eax], 0x20
jmp 0x405a88
mov eax, dword [eax + 0x5c]
imul eax, eax, 0x418
lea ebx, [eax + ebx + 8]
and dword [ebx], 0xffffffdf
cmp dword [ebp + 0xc], 0x111
jne 0x405b03
cmp word [ebp + 0x10], 0x3f9
jne 0x405ce5
mov eax, dword [ebp + 0x10]
shr eax, 0x10
cmp ax, 1
jne 0x405ce5
push edi
push edi
push 0x147
push dword [ebp - 8]
call esi
cmp eax, 0xffffffff
je 0x405ce5
push edi
push eax
push 0x150
push dword [ebp - 8]
call esi
mov ebx, eax
cmp ebx, 0xffffffff
je 0x405add
mov eax, dword [ebp - 0x10]
cmp dword [eax + ebx*4], edi
jne 0x405ae0
push 0x20
pop ebx
push ebx
call fcn.00402299
push ebx
push edi
push 0x420
push dword [ebp + 8]
call esi
mov dword [ebp + 0x10], 1
mov dword [ebp + 0x14], edi
mov dword [ebp + 0xc], 0x40f
cmp dword [ebp + 0xc], 0x200
jne 0x405b18
push edi
push edi
push 0x200
push dword [ebp - 4]
call esi
cmp dword [ebp + 0xc], 0x40b
jne 0x405b53
mov eax, dword [0x429fbc]
cmp eax, edi
je 0x405b31
push eax
call dword [sym.imp.COMCTL32.dll_ImageList_Destroy]
mov eax, dword [0x429fd4]
cmp eax, edi
je 0x405b41
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [0x429fbc], edi
mov dword [0x429fd4], edi
mov dword [0x42ebc0], edi
cmp dword [ebp + 0xc], 0x40f
jne 0x405ca7
push edi
push edi
call fcn.004021ef
cmp dword [ebp + 0x10], edi
je 0x405b73
push 8
call fcn.0040240b
cmp dword [ebp + 0x14], edi
je 0x405bb7
push dword [0x429fd4]
call fcn.004022e2
mov ebx, eax
push ebx
call fcn.00402299
xor eax, eax
xor ecx, ecx
cmp ebx, edi
jle 0x405ba1
mov edx, dword [ebp - 0x10]
cmp dword [edx + eax*4], edi
je 0x405b9c
inc ecx
inc eax
cmp eax, ebx
jl 0x405b93
push edi
push ecx
push 0x14e
push dword [ebp - 8]
call esi
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0xc], 0x420
push edi
push edi
call fcn.004021ef
mov eax, dword [0x429fd4]
cmp dword [0x42eb8c], edi
mov dword [ebp - 0x1c], eax
mov eax, dword [0x42eb88]
mov dword [ebp - 0x38], 0xf030
mov dword [ebp - 0xc], edi
jle 0x405c7d
add byte [ebp + 0x458b0858], cl
in al, 0x8b
dec ebp
hlt
lea ebx, [eax + 8]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
mov eax, dword [eax + ecx*4]
cmp eax, edi
je 0x405c65
mov ecx, dword [ebx]
mov dword [ebp - 0x40], eax
test ch, 1
mov dword [ebp - 0x44], 8
mov eax, esi
shl eax, 0xa
add eax, section..ndata
push eax
push edi
call fcn.00405a0c
add esi, 0xffffffeb
cmp esi, 7
jae 0x405c2c
jmp 0x405be0
push edi
call fcn.00405a22
mov ecx, dword [ebp + 0xc]
add edi, eax
mov eax, 0x42db00
jmp 0x405c4b
mov dl, byte [ecx]
test dl, dl
jne 0x405a7b
and byte [edi], 0
cmp dword [ebp + 8], 0
pop edi
pop esi
pop ebx
je 0x405c6a
push eax
push dword [ebp + 8]
call fcn.00405a0c
leave
ret 8
pop esp
jne 0x405c8f
cmp byte [esi + 2], 0x3f
jne 0x405c8f
cmp byte [esi + 3], 0x5c
jne 0x405c8f
add esi, 4
cmp byte [esi], 0
je 0x405ca0
push esi
call fcn.0040556c
test eax, eax
je 0x405ca0
inc esi
inc esi
mov al, byte [esi]
mov ebx, esi
test al, al
mov edi, esi
je 0x405ce3
invalid
push ebp
mov ebp, dword [sym.imp.USER32.dll_CharNextA]
cmp al, 0x1f
jbe 0x405cd7
push eax
push str._____:
call fcn.0040552a
cmp byte [eax], 0
jne 0x405cd7
push esi
call ebp
sub eax, esi
push eax
push esi
push edi
call fcn.004056a4
push edi
call ebp
mov edi, eax
push esi
call ebp
mov esi, eax
mov al, byte [esi]
test al, al
jne 0x405cb1
pop ebp
and byte [edi], 0
add byte [edi + 0x53], dl
push edi
push ebx
call dword [sym.imp.USER32.dll_CharPrevA]
mov edi, eax
mov al, byte [edi]
cmp al, 0x20
je 0x405cfa
cmp al, 0x5c
jne 0x405d01
and byte [edi], 0
cmp ebx, edi
jb 0x405ce6
pop edi
pop esi
pop ebx
ret 4