Function at 0x453e87
Capabilities:
Capture webcam image
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb64
push ebx
push esi
mov esi, ecx
push edi
push dword [ebp + 8]
mov dword [ebp - 8], esi
lea ebx, [esi + 0xaac]
mov ecx, ebx
call fcn.0044966c
test eax, eax
jne 0x453ebc
push eax
mov ecx, 0x4789e8
call fcn.00419869
jmp 0x4543cc
push 0xc
xor eax, eax
pop ecx
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x364]
mov ecx, ebx
push eax
mov dword [ebp - 0x44], 0x30
push dword [ebp + 8]
call fcn.00449fc4
cmp eax, 0xffffffff
je 0x4543cc
lea eax, [ebp - 0x15c]
push 0x104
push eax
mov ecx, esi
call fcn.00454fa6
lea edi, [ebp - 0x364]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x15c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
xor ebx, ebx
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x58]
push dword [ebp + 8]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x419
stosd dword es:[edi], eax
mov edi, dword [ebp - 8]
push dword [edi + 0xab0]
call esi
lea ecx, [ebp - 0x58]
push ecx
push eax
push 0x417
push dword [edi + 0xab0]
call esi
mov ecx, 0x1ff
xor eax, eax
lea edi, [ebp - 0xb63]
mov byte [ebp - 0xb64], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x4c]
cmp eax, 3
je 0x453fe1
cmp eax, 7
je 0x453fe1
cmp eax, 4
je 0x453f94
cmp eax, 9
jne 0x454039
mov edi, 0x411220
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x15c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x800
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0xb64]
mov ecx, edx
push eax
and ecx, 3
lea eax, [ebp - 0x15c]
rep movsb byte es:[edi], byte [esi]
push eax
call fcn.00427832
add esp, 0xc
jmp 0x454039
mov edi, 0x40e804
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x15c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x15c]
mov ecx, edx
push eax
lea eax, [ebp - 0xb64]
push 0x800
push eax
and ecx, 3
push 0x460a68
push 0x40aa68
push 0x40aa54
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0xb64], bl
je 0x454054
lea eax, [ebp - 0xb64]
push ebx
push eax
call fcn.004212b0
pop ecx
jmp 0x4543cb
mov edi, 0x40a0a0
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x15c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [ebp - 0x14]
and ecx, 3
push eax
mov eax, dword [ebp - 8]
push dword [ebp + 8]
rep movsb byte es:[edi], byte [esi]
lea ecx, [eax + 0xaac]
call fcn.0044966c
mov ecx, dword [ebp - 8]
push eax
push dword [ecx + 0xab0]
push 0x3e9
call fcn.00452995
call fcn.0041f607
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
mov dword [ebp - 4], eax
lea eax, [ebp - 0x260]
push 0x104
push eax
push 0xc9
push dword [0x536190]
call esi
lea eax, [ebp - 0x260]
lea edi, [ebp - 0x260]
mov dword [ebp - 0x20], eax
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 0x40], 0x42
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x34], RegOpenKeyExA
repne scasb al, byte es:[edi]
push ebx
push 0xffffffffffffffff
lea eax, [ebp - 0x44]
push ebx
push eax
push 1
not ecx
push ebx
dec ecx
push dword [ebp - 4]
mov dword [ebp - 0x1c], ecx
call fcn.00433910
add esp, 0x1c
lea eax, [ebp - 0x260]
push 0x104
push eax
push 0x96
push dword [0x536190]
call esi
lea eax, [ebp - 0x260]
lea edi, [ebp - 0x260]
mov dword [ebp - 0x20], eax
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 0x40], 0x42
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x34], RegOpenKeyExA
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0x1c], ecx
push ebx
push 0xffffffffffffffff
lea eax, [ebp - 0x44]
push ebx
push eax
push 1
push 1
push dword [ebp - 4]
call fcn.00433910
push ebx
push 0xffffffffffffffff
lea eax, [ebp - 0x44]
push ebx
push eax
push 1
push 2
mov dword [ebp - 0x40], 0x100
push dword [ebp - 4]
mov dword [ebp - 0x3c], 0x800
call fcn.00433910
mov edx, dword [0x461554]
mov esi, dword [0x461548]
add esp, 0x38
cmp edx, ebx
je 0x4541bb
mov eax, dword [0x461558]
sub eax, edx
sar eax, 2
cmp eax, esi
ja 0x4541df
lea eax, [ebp + 8]
add esi, 0x1f4
push eax
push esi
mov ecx, 0x461550
mov dword [ebp + 8], ebx
call fcn.0042145d
mov edx, dword [0x461554]
mov esi, dword [0x461548]
lea edi, [ebp - 0x15c]
or ecx, 0xffffffff
xor eax, eax
lea esi, [edx + esi*4]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
inc edi
mov dword [ebp + 8], edi
lea eax, [edi + 1]
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
pop ecx
mov dword [esi], eax
mov eax, dword [0x461554]
mov ecx, dword [0x461548]
lea esi, [ebp - 0x15c]
mov eax, dword [eax + ecx*4]
mov cl, byte [0x40aaf8]
mov byte [eax], cl
mov eax, dword [0x461548]
mov edx, dword [0x461554]
mov ecx, edi
mov edi, dword [edx + eax*4]
mov eax, ecx
inc edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x461548]
mov ecx, dword [0x461554]
inc eax
cmp ecx, ebx
mov dword [0x461548], eax
je 0x454264
mov edx, dword [0x461558]
sub edx, ecx
sar edx, 2
cmp edx, eax
ja 0x454286
lea ecx, [ebp - 0xc]
add eax, 0x1f4
push ecx
push eax
mov ecx, 0x461550
mov dword [ebp - 0xc], ebx
call fcn.0042145d
mov ecx, dword [0x461554]
mov eax, dword [0x461548]
push dword [ebp + 8]
lea esi, [ecx + eax*4]
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [esi], eax
mov eax, dword [0x461548]
mov edx, dword [0x461554]
pop ecx
mov ecx, dword [ebp + 8]
lea esi, [ebp - 0x15c]
mov edi, dword [edx + eax*4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x461548]
mov ecx, dword [0x461554]
inc eax
cmp ecx, ebx
mov dword [0x461548], eax
je 0x4542de
mov edx, dword [0x461558]
sub edx, ecx
sar edx, 2
cmp edx, eax
ja 0x454300
lea ecx, [ebp - 0xc]
add eax, 0x1f4
push ecx
push eax
mov ecx, 0x461550
mov dword [ebp - 0xc], ebx
call fcn.0042145d
mov ecx, dword [0x461554]
mov eax, dword [0x461548]
push dword [ebp + 8]
lea esi, [ecx + eax*4]
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [esi], eax
mov eax, dword [0x461548]
mov edx, dword [0x461554]
pop ecx
mov ecx, dword [ebp + 8]
lea esi, [ebp - 0x15c]
mov edi, dword [edx + eax*4]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 1
and ecx, 3
rep movsb byte es:[edi], byte [esi]
inc dword [0x461548]
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
sub esi, dword [ebp - 0x10]
call fcn.004337e8
mov ecx, eax
mov eax, esi
cdq
idiv ecx
push 0xa
pop esi
cmp eax, esi
jle 0x45435c
mov esi, eax
mov edi, dword [ebp - 4]
push edi
call dword [sym.imp.USER32.dll_GetMenuItemCount]
push esi
push RegOpenKeyExA
push 2
push eax
lea eax, [ebp - 0x15c]
push eax
push edi
push 0x461548
push 0x461550
call fcn.0041f84a
mov esi, dword [ebp - 8]
add esp, 0x20
push edi
lea ecx, [esi + 0x948]
call fcn.004337bf
push ebx
push dword [esi + 4]
push ebx
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push 0x100
push edi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
cmp eax, ebx
jbe 0x4543c0
add eax, 0xffff7000
mov ecx, esi
push eax
call fcn.00453e74
call fcn.0041f607
push edi
call fcn.00433880
pop ecx
push 0xffffffffffffffff
mov ecx, 0x4789e8
call fcn.004162c3
pop edi
pop esi
pop ebx
leave
ret 4