Function at 0x45e870
Capabilities:
Capture webcam image

Disassembly:
sub esp, 0x38
mov eax, dword [esp + 0x40]
push ebx
push ebp
push esi
mov eax, dword [eax + 0xc]
mov esi, ecx
cmp eax, 0x8496
push edi
mov dword [esp + 0x10], esi
jne 0x45e93d
mov ecx, dword [0x4eacd0]
push 0
push ecx
lea ecx, [esp + 0x28]
call fcn.004ad550
test eax, eax
je 0x45e8aa
lea edi, [eax + 4]
jmp 0x45e8ac
xor edi, edi
lea ecx, [esp + 0x50]
call fcn.0041f3b0
mov eax, dword [0x4e3a58]
mov ecx, dword [0x4e9cdc]
mov dword [0x4e9cdc], 0
push ecx
mov edx, dword [eax]
push eax
call dword [edx + 0x14]
lea ecx, [esp + 0x50]
call fcn.00420740
push edi
mov ecx, 0x4e9cdc
call fcn.00402130
lea ecx, [esp + 0x20]
call fcn.004acdf0
lea eax, [esi + 0x78]
test eax, eax
je 0x45e8fa
lea eax, [esi + 0x7c]
jmp 0x45e8fc
xor eax, eax
mov ecx, dword [esi + 4]
mov eax, dword [eax]
push 0x8496
push ecx
push eax
call fcn.004578b0
add esp, 0xc
cmp eax, 0x2b67
jne 0x45eeab
push 0
push ecx
mov ecx, esp
push str.i_net_
call fcn.004014f0
mov ecx, esi
call fcn.00463820
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret 0xc
cmp eax, 0x808b
jne 0x45eeab
lea edx, [esi + 0x78]
test edx, edx
je 0x45e954
lea eax, [esi + 0x7c]
jmp 0x45e956
xor eax, eax
mov esi, dword [eax]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0x808b
push 0x419
push esi
call ebx
lea ecx, [esp + 0x38]
push ecx
push eax
push 0x41d
push esi
call ebx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], edx
push ecx
push esi
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_ClientToScreen]
mov esi, dword [sym.imp.USER32.dll_CreatePopupMenu]
call esi
mov ebp, eax
call esi
lea edx, [esp + 0x50]
push 0x7a122
push edx
mov esi, eax
call fcn.0048eb30
mov eax, dword [eax]
mov ebx, dword [sym.imp.USER32.dll_AppendMenuW]
add esp, 8
push eax
push 0xb
push 0x400
push ebp
call ebx
mov eax, dword [esp + 0x50]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x45e9fd
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x45ea03
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
jmp 0x45ea03
mov edi, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
lea eax, [esp + 0x50]
push 0x7a123
push eax
call fcn.0048eb30
mov eax, dword [eax]
add esp, 8
push eax
push 0xc
push 0x400
push ebp
call ebx
mov eax, dword [esp + 0x50]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x45ea4d
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x45ea4d
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
lea eax, [esp + 0x50]
push 0x7a124
push eax
call fcn.0048eb30
mov eax, dword [eax]
add esp, 8
push eax
push 0xd
push 0x400
push ebp
call ebx
mov eax, dword [esp + 0x50]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x45ea97
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x45ea97
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
lea eax, [esp + 0x50]
push 0x7a125
push eax
call fcn.0048eb30
mov eax, dword [eax]
add esp, 8
push eax
push 0xa
push 0x400
push ebp
call ebx
mov eax, dword [esp + 0x50]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x45eae1
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x45eae1
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
push 0
push 0
push 0xc00
push ebp
call ebx
lea eax, [esp + 0x50]
push 0x7a127
push eax
call fcn.0048eb30
mov eax, dword [eax]
add esp, 8
push eax
push 4
push 0x400
push ebp
call ebx
mov eax, dword [esp + 0x50]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x45eb37
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x45eb37
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
push 0
push 4
push 0xc00
push ebp
call ebx
push str.Server
push esi
push 0x410
push ebp
call ebx
lea eax, [esp + 0x50]
push 0x13cce
push eax
call fcn.0048eb30
mov eax, dword [eax]
add esp, 8
push eax
push 0x3e8
push 0x400
push esi
call ebx
mov eax, dword [esp + 0x50]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x45eb9e
add eax, 0xfffffff4
push eax
call edi
test eax, eax
jg 0x45eb9e
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
push str.softwareok.com
push 0x3e9
push 0x400
push esi
call ebx
push str.softwareok.eu
push 0x3ea
push 0x400
push esi
call ebx
push str.softwareok.de
push 0x3eb
push 0x400
push esi
call ebx
push 0x4ea570
push ecx
mov ecx, esp
push 0x4da9f0
call fcn.004014f0
push ecx
mov ecx, esp
push 0x4d9844
call fcn.0040ea20
call fcn.004554a0
mov eax, dword [0x4ea570]
add esp, 0xc
add eax, 0x3e8
push 8
push eax
push ebp
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov eax, dword [0x4ea3d8]
test eax, eax
je 0x45eda2
cmp eax, 2
mov ecx, 0x15180
jne 0x45ec2d
mov ecx, 0x93a80
jmp 0x45ec37
cmp eax, 3
jne 0x45ec37
mov ecx, 0x24ea00
mov edx, dword [0x4ea350]
lea eax, [esp + 0x28]
add edx, ecx
push edx
push eax
call fcn.004a7420
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
sub esp, 8
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [esp + 0x40]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
lea ecx, [esp + 0x2c]
call fcn.00452bd0
mov esi, dword [0x4e9c60]
xor eax, eax
mov ecx, dword [esi - 0xc]
lea edi, [esi - 0xc]
cmp ecx, 1
mov dword [esp + 0x18], edi
jg 0x45ec91
mov ecx, dword [esi - 4]
test ecx, ecx
jge 0x45ecff
mov esi, dword [esi - 8]
test esi, esi
mov dword [esp + 0x14], esi
jle 0x45ec9e
mov eax, esi
push eax
mov ecx, 0x4e9c60
call fcn.004012f0
test eax, eax
jne 0x45ecb1
xor esi, esi
jmp 0x45ecff
lea ecx, [esi + esi + 2]
lea esi, [edi + 0xc]
mov edi, dword [0x4e9c60]
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 eax, dword [0x4e9c60]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov dword [eax - 8], ecx
mov eax, dword [0x4d9544]
cmp esi, eax
je 0x45ecf9
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x45ecf9
push esi
call fcn.004c5432
add esp, 4
mov esi, dword [0x4e9c60]
mov edx, dword [0x4d9540]
test esi, esi
mov dword [esp + 0x50], edx
je 0x45ed56
mov eax, esi
shr eax, 0x10
jne 0x45ed26
and esi, 0xffff
lea ecx, [esp + 0x50]
push esi
call fcn.0040ff70
jmp 0x45ed56
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x45ed56
push edi
lea ecx, [esp + 0x54]
call fcn.004012f0
test eax, eax
je 0x45ed56
lea ecx, [edi + edi]
mov edi, dword [esp + 0x50]
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 eax, dword [esp + 0x50]
push eax
push 4
push 0x403
push ebp
call ebx
mov eax, dword [esp + 0x50]
mov edx, dword [0x4d9544]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x45ed94
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x45ed94
mov edx, dword [esp + 0x50]
add edx, 0xfffffff4
push edx
call fcn.004c5432
add esp, 4
lea ecx, [esp + 0x1c]
call fcn.004b8df0
mov eax, dword [0x4ea3d8]
add eax, 0xa
push 8
push eax
push ebp
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
push ebp
lea esi, [eax + 0x368]
call dword [sym.imp.USER32.dll_IsMenu]
test eax, eax
je 0x45ee8f
mov dl, byte [esi + 0x80]
mov al, byte [esi + 0x81]
or dl, 0x10
test al, 2
mov byte [esi + 0x80], dl
je 0x45edfb
mov cl, al
and al, 0xfb
shr cl, 2
and cl, 4
or cl, al
mov byte [esi + 0x81], cl
push 0
push ebx
push edi
push 0x102
push ebp
mov ecx, esi
call fcn.004311d0
cmp eax, 0xd
jne 0x45ee1d
mov dword [0x4ea3d8], 3
jmp 0x45ee8f
cmp eax, 0xc
jne 0x45ee2e
mov dword [0x4ea3d8], 2
jmp 0x45ee8f
cmp eax, 0xb
jne 0x45ee3f
mov dword [0x4ea3d8], 1
jmp 0x45ee8f
cmp eax, 0xa
jne 0x45ee50
mov dword [0x4ea3d8], 0
jmp 0x45ee8f
cmp eax, 4
jne 0x45ee62
mov ecx, dword [esp + 0x10]
push 0
call fcn.00464b50
jmp 0x45ee8f
cmp eax, 0x3e8
jl 0x45ee8f
cmp eax, 0x3eb
jg 0x45ee8f
add eax, 0xfffffc18
push 0
push eax
push str.auto_update_domain
push 0x4d9844
mov dword [0x4ea570], eax
call fcn.00480e00
add esp, 0x10
mov edx, dword [0x4ea3d8]
mov eax, dword [0x4ecbf4]
push 0
push edx
push 0x4ea3e0
push eax
call fcn.00480e00
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret 0xc