Function at 0x456e85
Capabilities:
Capture webcam image

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
push esi
push edi
push 1
pop eax
mov edi, ecx
cmp dword [0x4c56b0], eax
je 0x457117
xor esi, esi
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
mov dword [0x4c56b0], eax
mov eax, dword [edi + 0xdc]
push dword [ebp + 8]
add eax, 0x22c
push 0x419
push dword [eax]
call ebx
lea ecx, [ebp - 0x44]
push ecx
push eax
mov eax, dword [edi + 0xdc]
push 0x41d
push dword [eax + 0x22c]
call ebx
mov eax, dword [ebp - 0x3c]
push 1
push dword [ebp + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0xdc]
push 0x403
push dword [eax + 0x22c]
call ebx
lea eax, [ebp - 0x28]
push eax
mov eax, dword [edi + 0xdc]
push dword [eax + 0x22c]
call dword [sym.imp.USER32.dll_ClientToScreen]
call dword [sym.imp.USER32.dll_CreatePopupMenu]
xor ecx, ecx
cmp dword [0x4c28e8], 2
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
sete cl
mov dword [ebp - 0x18], ecx
mov ecx, dword [edi + 0xdc]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 8], eax
push dword [ecx + 0x50]
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.00474e0c
add esp, 0xc
push esi
push esi
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
push 0x800
push dword [ebp - 8]
call esi
lea eax, [ebp - 0x1c]
push 0x15f94
push eax
call fcn.004606c8
pop ecx
pop ecx
push dword [eax]
push 0xb253
push 0
push dword [ebp - 8]
call esi
lea ecx, [ebp - 0x1c]
call fcn.004038fb
push 0
push 0
push 0x800
push dword [ebp - 8]
call esi
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x1c]
push 0x15f95
push eax
call fcn.00461337
pop ecx
pop ecx
push dword [eax]
push dword [ebp - 4]
push 0x10
push dword [ebp - 8]
call esi
lea ecx, [ebp - 0x1c]
call fcn.004038fb
lea eax, [ebp - 0x1c]
push 0x15f92
push eax
call fcn.004606c8
pop ecx
pop ecx
push dword [eax]
push 0x2b6a
push 0
push dword [ebp - 4]
call esi
lea ecx, [ebp - 0x1c]
call fcn.004038fb
mov ecx, edi
mov dword [ebp - 0x10], 1
call fcn.00454cfd
test eax, eax
mov dword [ebp - 0x14], eax
je 0x457013
mov ecx, dword [edi + 0x1bc]
push eax
push ecx
lea ecx, [edi + 0x20]
call fcn.0048571b
test al, al
je 0x457013
and dword [ebp - 0x10], 0
lea eax, [ebp - 0x1c]
push 0x15f93
push eax
call fcn.004606c8
pop ecx
pop ecx
push dword [eax]
push 0x84f6
push dword [ebp - 0x10]
push dword [ebp - 4]
call esi
lea ecx, [ebp - 0x1c]
call fcn.004038fb
xor eax, eax
cmp dword [ebp - 0x18], eax
je 0x4570a6
cmp dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
jne 0x457050
mov dword [ebp - 0x10], 1
push eax
push eax
push 0x800
push dword [ebp - 4]
call esi
lea eax, [ebp - 0x1c]
push 0x10
push eax
call fcn.00461337
pop ecx
pop ecx
push dword [eax]
push 0x2b68
push dword [ebp - 0x10]
push dword [ebp - 4]
call esi
lea ecx, [ebp - 0x1c]
call fcn.004038fb
lea eax, [ebp - 0x1c]
push 0x11
push eax
call fcn.00461337
pop ecx
pop ecx
push dword [eax]
push 0x2b69
push dword [ebp - 0x10]
push dword [ebp - 4]
call esi
lea ecx, [ebp - 0x1c]
call fcn.004038fb
xor eax, eax
cmp dword [ebp - 0x14], eax
je 0x4570b4
push dword [ebp - 0x14]
call dword [sym.imp.SHELL32.dll_ILFree]
mov eax, dword [edi + 0xdc]
mov edx, dword [ebp - 0x24]
push 0x12a
push edx
mov ecx, dword [eax + 0x50]
mov eax, dword [ebp - 0x28]
push eax
push dword [ebp - 8]
call fcn.00497e46
xor esi, esi
cmp eax, esi
jne 0x45711e
mov eax, dword [edi + 0xdc]
push esi
push dword [ebp + 8]
push 0x403
push dword [eax + 0x22c]
call ebx
cmp dword [ebp - 4], esi
mov edi, dword [sym.imp.USER32.dll_DestroyMenu]
mov dword [0x4c56b0], esi
je 0x457105
push dword [ebp - 4]
call edi
lea ecx, [ebp - 0x34]
call fcn.0045a8ca
cmp dword [ebp - 8], esi
je 0x457117
push dword [ebp - 8]
call edi
xor eax, eax
jmp 0x45736b
cmp eax, 0x2b68
jne 0x45713a
push esi
push 0x701e
push 0x111
push dword [edi + 0x38]
call ebx
jmp 0x457329
cmp eax, 0x2b69
jne 0x457149
push esi
push 0x701f
jmp 0x45712b
mov ecx, 0xb253
cmp eax, ecx
jne 0x457161
push esi
push ecx
push 0x111
push dword [0x4c3228]
jmp 0x457133
cmp eax, 0x2b6a
jne 0x45717b
push dword [edi + 4]
lea ecx, [edi + 0x1c8]
call fcn.00489e00
jmp 0x457329
cmp eax, 0x84f6
jne 0x45718e
mov ecx, edi
call fcn.004573e3
jmp 0x457329
cmp eax, 0x898
jl 0x457329
xor edx, edx
cmp dword [ebp - 0x2c], esi
jle 0x4571ba
mov ecx, dword [ebp - 0x34]
jmp 0x4571a7
xor esi, esi
cmp dword [ecx], eax
je 0x457372
inc edx
add ecx, 4
cmp edx, dword [ebp - 0x2c]
jl 0x4571a5
xor esi, esi
or eax, 0xffffffff
cmp eax, 0xffffffff
je 0x457329
mov ecx, dword [ebp - 0x30]
lea eax, [ecx + eax*4]
lea ecx, [ebp - 0x14]
push eax
call fcn.004038b5
mov eax, dword [0x4af550]
lea ecx, [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x14]
push eax
call fcn.004038b5
push esi
mov esi, 0x4af810
push esi
lea ecx, [ebp - 0x10]
call fcn.00403d34
cmp eax, 0xffffffff
mov dword [ebp - 0x20], eax
je 0x4572bc
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x10]
call fcn.00419ba2
push eax
lea ecx, [ebp - 0x14]
call fcn.00403a8c
lea ecx, [ebp - 0x1c]
call fcn.004038fb
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
inc eax
mov ecx, dword [ecx - 8]
sub ecx, eax
push ecx
push eax
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x10]
push eax
call fcn.0040acf3
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0xc]
push eax
call fcn.00403a8c
lea ecx, [ebp - 0x1c]
call fcn.004038fb
push 0
push esi
lea ecx, [ebp - 0xc]
call fcn.00403d34
mov esi, eax
cmp esi, 0xffffffff
je 0x4572bc
lea eax, [ebp - 0xc]
lea ecx, [ebp - 0x10]
push eax
call fcn.00403a8c
mov ecx, dword [ebp - 0xc]
lea eax, [esi + 1]
mov ecx, dword [ecx - 8]
sub ecx, eax
push ecx
push eax
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0xc]
push eax
call fcn.0040acf3
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x18]
push eax
call fcn.00403a8c
lea ecx, [ebp - 0x1c]
call fcn.004038fb
lea eax, [ebp - 0x20]
push esi
push eax
lea ecx, [ebp - 0x10]
call fcn.00419ba2
push eax
lea ecx, [ebp - 0xc]
call fcn.00403a8c
lea ecx, [ebp - 0x20]
call fcn.004038fb
lea ecx, [ebp - 0x58]
call fcn.00457379
lea eax, [ebp - 0xc]
lea ecx, [ebp - 0x50]
push eax
call fcn.00403a8c
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x54]
push eax
call fcn.00403a8c
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00403a8c
push 0
lea eax, [ebp - 0x58]
sub esp, 0x14
mov ecx, esp
push eax
call fcn.004573a0
mov ecx, edi
call fcn.0045744c
lea ecx, [ebp - 0x58]
call fcn.004284a6
lea ecx, [ebp - 0x10]
call fcn.004038fb
lea ecx, [ebp - 0x18]
call fcn.004038fb
lea ecx, [ebp - 0xc]
call fcn.004038fb
lea ecx, [ebp - 0x14]
call fcn.004038fb
xor esi, esi
mov eax, dword [edi + 0xdc]
push esi
push dword [ebp + 8]
push 0x403
push dword [eax + 0x22c]
call ebx
cmp dword [ebp - 4], esi
mov edi, dword [sym.imp.USER32.dll_DestroyMenu]
mov dword [0x4c56b0], esi
je 0x457356
push dword [ebp - 4]
call edi
lea ecx, [ebp - 0x34]
call fcn.0045a8ca
cmp dword [ebp - 8], esi
je 0x457368
push dword [ebp - 8]
call edi
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 4
mov eax, edx
jmp 0x4571bd