Function at 0x451844
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.0044758d
test eax, eax
jne 0x451879
push eax
mov ecx, 0x474b78
call fcn.00418c1f
jmp 0x451d89
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.00447ee5
cmp eax, 0xffffffff
je 0x451d89
lea eax, [ebp - 0x15c]
push 0x104
push eax
mov ecx, esi
call fcn.00452963
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 0x45199e
cmp eax, 7
je 0x45199e
cmp eax, 4
je 0x451951
cmp eax, 9
jne 0x4519f6
mov edi, 0x41065c
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.00426c55
add esp, 0xc
jmp 0x4519f6
mov edi, 0x40ddcc
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 0x45e298
push 0x40aa8c
push 0x40aa78
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0xb64], bl
je 0x451a11
lea eax, [ebp - 0xb64]
push ebx
push eax
call fcn.00420650
pop ecx
jmp 0x451d88
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.0044758d
mov ecx, dword [ebp - 8]
push eax
push dword [ecx + 0xab0]
push 0x3e9
call fcn.004503cb
call fcn.0041e9a7
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 [0x531f10]
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], 0x9000
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.004320d5
add esp, 0x1c
lea eax, [ebp - 0x260]
push 0x104
push eax
push 0x96
push dword [0x531f10]
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], 0x9001
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.004320d5
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.004320d5
mov edx, dword [0x45ed84]
mov esi, dword [0x45ed78]
add esp, 0x38
cmp edx, ebx
je 0x451b78
mov eax, dword [0x45ed88]
sub eax, edx
sar eax, 2
cmp eax, esi
ja 0x451b9c
lea eax, [ebp + 8]
add esi, 0x1f4
push eax
push esi
mov ecx, 0x45ed80
mov dword [ebp + 8], ebx
call fcn.004207fb
mov edx, dword [0x45ed84]
mov esi, dword [0x45ed78]
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 [0x45ed84]
mov ecx, dword [0x45ed78]
lea esi, [ebp - 0x15c]
mov eax, dword [eax + ecx*4]
mov cl, byte [0x40ab1c]
mov byte [eax], cl
mov eax, dword [0x45ed78]
mov edx, dword [0x45ed84]
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 [0x45ed78]
mov ecx, dword [0x45ed84]
inc eax
cmp ecx, ebx
mov dword [0x45ed78], eax
je 0x451c21
mov edx, dword [0x45ed88]
sub edx, ecx
sar edx, 2
cmp edx, eax
ja 0x451c43
lea ecx, [ebp - 0xc]
add eax, 0x1f4
push ecx
push eax
mov ecx, 0x45ed80
mov dword [ebp - 0xc], ebx
call fcn.004207fb
mov ecx, dword [0x45ed84]
mov eax, dword [0x45ed78]
push dword [ebp + 8]
lea esi, [ecx + eax*4]
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [esi], eax
mov eax, dword [0x45ed78]
mov edx, dword [0x45ed84]
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 [0x45ed78]
mov ecx, dword [0x45ed84]
inc eax
cmp ecx, ebx
mov dword [0x45ed78], eax
je 0x451c9b
mov edx, dword [0x45ed88]
sub edx, ecx
sar edx, 2
cmp edx, eax
ja 0x451cbd
lea ecx, [ebp - 0xc]
add eax, 0x1f4
push ecx
push eax
mov ecx, 0x45ed80
mov dword [ebp - 0xc], ebx
call fcn.004207fb
mov ecx, dword [0x45ed84]
mov eax, dword [0x45ed78]
push dword [ebp + 8]
lea esi, [ecx + eax*4]
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [esi], eax
mov eax, dword [0x45ed78]
mov edx, dword [0x45ed84]
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 [0x45ed78]
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
sub esi, dword [ebp - 0x10]
call fcn.00431fad
mov ecx, eax
mov eax, esi
cdq
idiv ecx
push 0xa
pop esi
cmp eax, esi
jle 0x451d19
mov esi, eax
mov edi, dword [ebp - 4]
push edi
call dword [sym.imp.USER32.dll_GetMenuItemCount]
push esi
push 0x9000
push 2
push eax
lea eax, [ebp - 0x15c]
push eax
push edi
push 0x45ed78
push 0x45ed80
call fcn.0041ebea
mov esi, dword [ebp - 8]
add esp, 0x20
push edi
lea ecx, [esi + 0x948]
call fcn.00431f84
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 0x451d7d
add eax, 0xffff7000
mov ecx, esi
push eax
call fcn.00451831
call fcn.0041e9a7
push edi
call fcn.00432045
pop ecx
push 0xffffffffffffffff
mov ecx, 0x474b78
call fcn.0041574b
pop edi
pop esi
pop ebx
leave
ret 4