Function at 0x452592
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.00447ede
test eax, eax
jne 0x4525c7
push eax
mov ecx, 0x475a08
call fcn.00418fca
jmp 0x452ad7
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.00448836
cmp eax, 0xffffffff
je 0x452ad7
lea eax, [ebp - 0x15c]
push 0x104
push eax
mov ecx, esi
call fcn.004536b1
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 0x4526ec
cmp eax, 7
je 0x4526ec
cmp eax, 4
je 0x45269f
cmp eax, 9
jne 0x452744
mov edi, 0x410a34
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.00426fd5
add esp, 0xc
jmp 0x452744
mov edi, 0x40e118
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 0x45f128
push 0x40ab04
push 0x40aaf0
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [ebp - 0xb64], bl
je 0x45275f
lea eax, [ebp - 0xb64]
push ebx
push eax
call fcn.00420a42
pop ecx
jmp 0x452ad6
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.00447ede
mov ecx, dword [ebp - 8]
push eax
push dword [ecx + 0xab0]
push 0x3e9
call fcn.0045107a
call fcn.0041ed99
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 [0x532da0]
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.00432585
add esp, 0x1c
lea eax, [ebp - 0x260]
push 0x104
push eax
push 0x96
push dword [0x532da0]
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.00432585
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.00432585
mov edx, dword [0x45fc14]
mov esi, dword [0x45fc08]
add esp, 0x38
cmp edx, ebx
je 0x4528c6
mov eax, dword [0x45fc18]
sub eax, edx
sar eax, 2
cmp eax, esi
ja 0x4528ea
lea eax, [ebp + 8]
add esi, 0x1f4
push eax
push esi
mov ecx, 0x45fc10
mov dword [ebp + 8], ebx
call fcn.00420bed
mov edx, dword [0x45fc14]
mov esi, dword [0x45fc08]
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 [0x45fc14]
mov ecx, dword [0x45fc08]
lea esi, [ebp - 0x15c]
mov eax, dword [eax + ecx*4]
mov cl, byte [0x40ab94]
mov byte [eax], cl
mov eax, dword [0x45fc08]
mov edx, dword [0x45fc14]
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 [0x45fc08]
mov ecx, dword [0x45fc14]
inc eax
cmp ecx, ebx
mov dword [0x45fc08], eax
je 0x45296f
mov edx, dword [0x45fc18]
sub edx, ecx
sar edx, 2
cmp edx, eax
ja 0x452991
lea ecx, [ebp - 0xc]
add eax, 0x1f4
push ecx
push eax
mov ecx, 0x45fc10
mov dword [ebp - 0xc], ebx
call fcn.00420bed
mov ecx, dword [0x45fc14]
mov eax, dword [0x45fc08]
push dword [ebp + 8]
lea esi, [ecx + eax*4]
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [esi], eax
mov eax, dword [0x45fc08]
mov edx, dword [0x45fc14]
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 [0x45fc08]
mov ecx, dword [0x45fc14]
inc eax
cmp ecx, ebx
mov dword [0x45fc08], eax
je 0x4529e9
mov edx, dword [0x45fc18]
sub edx, ecx
sar edx, 2
cmp edx, eax
ja 0x452a0b
lea ecx, [ebp - 0xc]
add eax, 0x1f4
push ecx
push eax
mov ecx, 0x45fc10
mov dword [ebp - 0xc], ebx
call fcn.00420bed
mov ecx, dword [0x45fc14]
mov eax, dword [0x45fc08]
push dword [ebp + 8]
lea esi, [ecx + eax*4]
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [esi], eax
mov eax, dword [0x45fc08]
mov edx, dword [0x45fc14]
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 [0x45fc08]
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov esi, eax
sub esi, dword [ebp - 0x10]
call fcn.0043245d
mov ecx, eax
mov eax, esi
cdq
idiv ecx
push 0xa
pop esi
cmp eax, esi
jle 0x452a67
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 0x45fc08
push 0x45fc10
call fcn.0041efdc
mov esi, dword [ebp - 8]
add esp, 0x20
push edi
lea ecx, [esi + 0x948]
call fcn.00432434
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 0x452acb
add eax, 0xffff7000
mov ecx, esi
push eax
call fcn.0045257f
call fcn.0041ed99
push edi
call fcn.004324f5
pop ecx
push 0xffffffffffffffff
mov ecx, 0x475a08
call fcn.00415adf
pop edi
pop esi
pop ebx
leave
ret 4