Function at 0x474ee0
Capabilities:
Capture webcam image

Disassembly:
sub esp, 0x3c
mov eax, dword [esp + 0x44]
push ebx
push ebp
mov ebp, ecx
mov eax, dword [eax + 0xc]
push esi
cmp eax, 0x8496
push edi
mov dword [esp + 0x1c], ebp
jne 0x474f37
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 0x498c]
push eax
push ecx
push edx
call fcn.00474350
add esp, 0xc
cmp eax, 0x2b67
jne 0x4755bc
push 0
push 0
push ecx
mov ecx, esp
push str.i_net_
call fcn.00405730
mov ecx, ebp
call fcn.00472df0
jmp 0x4755bc
cmp eax, 0x806a
jne 0x475048
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push eax
mov eax, dword [ebp + 0x498c]
push 0x419
push eax
call esi
mov edx, dword [ebp + 0x498c]
lea ecx, [esp + 0x2c]
push ecx
push eax
push 0x41d
push edx
call esi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x498c]
lea edx, [esp + 0x1c]
mov dword [esp + 0x20], ecx
push edx
push eax
call dword [sym.imp.USER32.dll_ClientToScreen]
push ecx
mov dword [esp + 0x14], 0
mov eax, esp
lea ecx, [esp + 0x14]
mov dword [eax], 0x80
call fcn.00411d40
mov ecx, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_GetSubMenu]
push 4
push ecx
call esi
mov edi, eax
push 3
push edi
call esi
push eax
mov dword [esp + 0x58], eax
call fcn.004b9d50
mov edx, dword [esp + 0x58]
mov esi, dword [sym.imp.USER32.dll_DeleteMenu]
add esp, 4
push 0x400
push 4
push edx
call esi
test eax, eax
je 0x474ff6
mov eax, dword [esp + 0x54]
push 0x400
push 4
push eax
call esi
test eax, eax
jne 0x474fe4
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push 2
push ecx
mov ecx, dword [esp + 0x5c]
push eax
push ecx
lea ecx, [ebp + 0x898]
call fcn.0052b0d0
mov eax, dword [esp + 0x54]
test eax, eax
je 0x475023
lea ecx, [esp + 0x54]
call fcn.00447180
test edi, edi
je 0x47502e
push edi
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4755bc
lea ecx, [esp + 0x10]
call fcn.00447180
jmp 0x4755bc
cmp eax, 0x808b
jne 0x4755bc
mov esi, dword [ebp + 0x498c]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push eax
push 0x419
push esi
call edi
lea edx, [esp + 0x3c]
push edx
push eax
push 0x41d
push esi
call edi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], eax
push edx
push esi
mov dword [esp + 0x30], ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov ebx, eax
lea eax, [esp + 0x54]
push 0x7a122
push eax
call fcn.004bc8d0
mov eax, dword [eax]
mov edi, dword [sym.imp.USER32.dll_AppendMenuW]
add esp, 8
push eax
push 0xb
push 0x400
push ebx
call edi
mov eax, dword [esp + 0x54]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4750f4
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x4750fa
mov edx, dword [esp + 0x54]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
jmp 0x4750fa
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea eax, [esp + 0x54]
push 0x7a123
push eax
call fcn.004bc8d0
mov eax, dword [eax]
add esp, 8
push eax
push 0xc
push 0x400
push ebx
call edi
mov eax, dword [esp + 0x54]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x475144
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x475144
mov edx, dword [esp + 0x54]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea eax, [esp + 0x54]
push 0x7a124
push eax
call fcn.004bc8d0
mov eax, dword [eax]
add esp, 8
push eax
push 0xd
push 0x400
push ebx
call edi
mov eax, dword [esp + 0x54]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47518e
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47518e
mov edx, dword [esp + 0x54]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea eax, [esp + 0x54]
push 0x7a125
push eax
call fcn.004bc8d0
mov eax, dword [eax]
add esp, 8
push eax
push 0xa
push 0x400
push ebx
call edi
mov eax, dword [esp + 0x54]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x4751d8
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x4751d8
mov edx, dword [esp + 0x54]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
push 0
push 0
push 0xc00
push ebx
call edi
lea eax, [esp + 0x54]
push 0x7a127
push eax
call fcn.004bc8d0
mov eax, dword [eax]
add esp, 8
push eax
push 4
push 0x400
push ebx
call edi
mov eax, dword [esp + 0x54]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47522e
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47522e
mov edx, dword [esp + 0x54]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [0x546560]
mov ecx, str.__Passiv_
test ecx, ecx
mov dword [esp + 0x54], eax
je 0x47529b
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
test esi, esi
je 0x475295
push esi
lea ecx, [esp + 0x58]
call fcn.00405530
test eax, eax
je 0x475295
mov ecx, dword [esp + 0x54]
lea eax, [esi + 1]
test eax, eax
mov esi, ecx
jne 0x47526c
test ecx, ecx
jne 0x47528a
push eax
push ecx
push 0xffffffffffffffff
push str.__Passiv_
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
jle 0x47528a
mov word [esi + eax*2 - 2], 0
push 0xffffffffffffffff
lea ecx, [esp + 0x58]
call fcn.00405bb0
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea edx, [esp + 0x18]
push 0x7a127
push edx
call fcn.004bc8d0
mov ecx, dword [0x546560]
mov eax, dword [eax]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x5c]
add esp, 8
mov edx, dword [ecx - 8]
push ecx
push edx
push eax
mov eax, dword [eax - 8]
push eax
lea ecx, [esp + 0x20]
call fcn.004059f0
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x18]
call fcn.00405440
lea ecx, [esp + 0x10]
call fcn.00405700
mov edx, dword [esp + 0x14]
push edx
push 5
push 0x400
push ebx
call edi
mov eax, dword [esp + 0x14]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x475321
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x475321
mov edx, dword [esp + 0x14]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x18]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x47534c
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x47534c
mov edx, dword [esp + 0x18]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [esp + 0x54]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x475377
add eax, 0xfffffff4
push eax
call esi
test eax, eax
jg 0x475377
mov edx, dword [esp + 0x54]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
mov eax, dword [0x55a700]
test eax, eax
je 0x475512
cmp eax, 2
mov ecx, 0x15180
jne 0x475395
mov ecx, 0x93a80
jmp 0x47539f
cmp eax, 3
jne 0x47539f
mov ecx, 0x24ea00
mov eax, dword [0x55a678]
add ecx, eax
push ecx
lea ecx, [esp + 0x30]
push ecx
call fcn.00508480
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
sub esp, 8
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x44]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
lea ecx, [esp + 0x24]
call fcn.0045f8f0
mov esi, dword [0x559f88]
xor eax, eax
mov ecx, dword [esi - 0xc]
lea ebp, [esi - 0xc]
cmp ecx, 1
jg 0x4753f4
mov ecx, dword [esi - 4]
test ecx, ecx
jge 0x475464
mov esi, dword [esi - 8]
test esi, esi
mov dword [esp + 0x18], esi
jle 0x475401
mov eax, esi
push eax
mov ecx, 0x559f88
call fcn.00405530
test eax, eax
jne 0x475414
xor esi, esi
jmp 0x475464
mov edi, dword [0x559f88]
lea ecx, [esi + esi + 2]
mov edx, ecx
lea esi, [ebp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x559f88]
mov ecx, dword [esp + 0x18]
mov dword [eax - 8], ecx
mov eax, dword [0x546564]
cmp ebp, eax
je 0x475458
push ebp
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x475458
push ebp
call fcn.00531732
add esp, 4
mov esi, dword [0x559f88]
mov edi, dword [sym.imp.USER32.dll_AppendMenuW]
mov edx, dword [0x546560]
test esi, esi
mov dword [esp + 0x54], edx
je 0x4754c2
mov eax, esi
shr eax, 0x10
jne 0x47548b
and esi, 0xffff
lea ecx, [esp + 0x54]
push esi
call fcn.00413c90
jmp 0x4754c2
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebp, eax
test ebp, ebp
je 0x4754c2
push ebp
lea ecx, [esp + 0x58]
call fcn.00405530
test eax, eax
je 0x4754c2
mov edi, dword [esp + 0x54]
lea ecx, [ebp + ebp]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [sym.imp.USER32.dll_AppendMenuW]
mov eax, dword [esp + 0x54]
push eax
push 4
push 0x403
push ebx
call edi
mov eax, dword [esp + 0x54]
mov edx, dword [0x546564]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x475500
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x475500
mov edx, dword [esp + 0x54]
add edx, 0xfffffff4
push edx
call fcn.00531732
add esp, 4
lea ecx, [esp + 0x14]
call fcn.0048c930
mov eax, dword [0x55a700]
mov ebp, dword [esp + 0x1c]
add eax, 0xa
push 8
push eax
push ebx
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push 0x102
push ecx
push eax
push ebx
lea ecx, [ebp + 0x898]
call fcn.0052b0d0
cmp eax, 0xd
jne 0x47554b
mov dword [0x55a700], 3
jmp 0x47559f
cmp eax, 0xc
jne 0x47555c
mov dword [0x55a700], 2
jmp 0x47559f
cmp eax, 0xb
jne 0x47556d
mov dword [0x55a700], 1
jmp 0x47559f
cmp eax, 0xa
jne 0x47557e
mov dword [0x55a700], 0
jmp 0x47559f
cmp eax, 4
jne 0x47558e
push 0
mov ecx, ebp
call fcn.00482b70
jmp 0x47559f
cmp eax, 5
jne 0x47559f
mov eax, dword [ebp + 4]
push eax
call fcn.004d1980
add esp, 4
mov ecx, dword [0x55a700]
mov edx, dword [0x55cee4]
push 0
push ecx
push 0x55a708
push edx
call fcn.0048db30
add esp, 0x10
mov eax, dword [esp + 0x58]
pop edi
pop esi
pop ebp
mov dword [eax], 0
mov eax, 1
pop ebx
add esp, 0x3c
ret 0xc