Function at 0x457009
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 [0x4c6778], eax
je 0x45729b
xor esi, esi
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
mov dword [0x4c6778], eax
mov eax, dword [edi + 0xe4]
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 + 0xe4]
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 + 0xe4]
push 0x403
push dword [eax + 0x22c]
call ebx
lea eax, [ebp - 0x28]
push eax
mov eax, dword [edi + 0xe4]
push dword [eax + 0x22c]
call dword [sym.imp.USER32.dll_ClientToScreen]
call dword [sym.imp.USER32.dll_CreatePopupMenu]
xor ecx, ecx
cmp dword [0x4c39b0], 2
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
sete cl
mov dword [ebp - 0x18], ecx
mov ecx, dword [edi + 0xe4]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 8], eax
push dword [ecx + 0x50]
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.004752ec
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.00460aba
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.00461770
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.00460aba
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.00454e3c
test eax, eax
mov dword [ebp - 0x14], eax
je 0x457197
mov ecx, dword [edi + 0x1c4]
push eax
push ecx
lea ecx, [edi + 0x20]
call fcn.00485cc4
test al, al
je 0x457197
and dword [ebp - 0x10], 0
lea eax, [ebp - 0x1c]
push 0x15f93
push eax
call fcn.00460aba
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 0x45722a
cmp dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
jne 0x4571d4
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.00461770
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.00461770
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 0x457238
push dword [ebp - 0x14]
call dword [sym.imp.SHELL32.dll_ILFree]
mov eax, dword [edi + 0xe4]
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.00498393
xor esi, esi
cmp eax, esi
jne 0x4572a2
mov eax, dword [edi + 0xe4]
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 [0x4c6778], esi
je 0x457289
push dword [ebp - 4]
call edi
lea ecx, [ebp - 0x34]
call fcn.0045acd8
cmp dword [ebp - 8], esi
je 0x45729b
push dword [ebp - 8]
call edi
xor eax, eax
jmp 0x4574ef
cmp eax, 0x2b68
jne 0x4572be
push esi
push 0x701e
push 0x111
push dword [edi + 0x38]
call ebx
jmp 0x4574ad
cmp eax, 0x2b69
jne 0x4572cd
push esi
push 0x701f
jmp 0x4572af
mov ecx, 0xb253
cmp eax, ecx
jne 0x4572e5
push esi
push ecx
push 0x111
push dword [0x4c42f0]
jmp 0x4572b7
cmp eax, 0x2b6a
jne 0x4572ff
push dword [edi + 4]
lea ecx, [edi + 0x1d0]
call fcn.0048a3bd
jmp 0x4574ad
cmp eax, 0x84f6
jne 0x457312
mov ecx, edi
call fcn.00457567
jmp 0x4574ad
cmp eax, 0x898
jl 0x4574ad
xor edx, edx
cmp dword [ebp - 0x2c], esi
jle 0x45733e
mov ecx, dword [ebp - 0x34]
jmp 0x45732b
xor esi, esi
cmp dword [ecx], eax
je 0x4574f6
inc edx
add ecx, 4
cmp edx, dword [ebp - 0x2c]
jl 0x457329
xor esi, esi
or eax, 0xffffffff
cmp eax, 0xffffffff
je 0x4574ad
mov ecx, dword [ebp - 0x30]
lea eax, [ecx + eax*4]
lea ecx, [ebp - 0x14]
push eax
call fcn.004038b5
mov eax, dword [0x4b0550]
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, 0x4b0810
push esi
lea ecx, [ebp - 0x10]
call fcn.00403d34
cmp eax, 0xffffffff
mov dword [ebp - 0x20], eax
je 0x457440
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x10]
call fcn.00419b20
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.0040acb2
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 0x457440
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.0040acb2
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.00419b20
push eax
lea ecx, [ebp - 0xc]
call fcn.00403a8c
lea ecx, [ebp - 0x20]
call fcn.004038fb
lea ecx, [ebp - 0x58]
call fcn.004574fd
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.00457524
mov ecx, edi
call fcn.004575d0
lea ecx, [ebp - 0x58]
call fcn.004284fa
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 + 0xe4]
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 [0x4c6778], esi
je 0x4574da
push dword [ebp - 4]
call edi
lea ecx, [ebp - 0x34]
call fcn.0045acd8
cmp dword [ebp - 8], esi
je 0x4574ec
push dword [ebp - 8]
call edi
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret 4
mov eax, edx
jmp 0x457341