Function at 0x40a35b
Capabilities:
Capture webcam image

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac
push ebx
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 8]
cmp dword [eax + 0xc], 0
je 0x40a581
lea ecx, [ebp - 0x2c]
push ecx
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_GetClientRect]
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebx + 8]
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [ebp - 0x24]
xor esi, esi
sub ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
sub eax, ecx
sub eax, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x28]
mov dword [ebx + 0x34], eax
mov eax, dword [ebp - 0x10]
sub eax, edx
mov dword [ebx + 0x2c], ecx
sub eax, dword [ebp - 0x18]
push str.Shcore.dll
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x38], eax
mov dword [ebx + 4], esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebx], eax
test eax, eax
je 0x40a3ec
push str.GetDpiForMonitor
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebx + 4], eax
cmp dword [ebx + 4], esi
je 0x40a420
push 2
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_MonitorFromRect]
lea ecx, [ebp - 0xc]
mov dword [ebp - 4], esi
push ecx
lea ecx, [ebp - 4]
mov dword [ebp - 0xc], esi
push ecx
push esi
push eax
call dword [ebx + 4]
test eax, eax
js 0x40a420
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x68], eax
mov eax, dword [ebx + 8]
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_GetParent]
mov edi, eax
lea esi, [ebx + 0x14]
mov eax, dword [ebx + 8]
push esi
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
push esi
push edi
xor edi, edi
push edi
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x40a4a1
push edi
push edi
push 0x31
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp - 0xa8]
mov esi, edi
push ecx
push 0x5c
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x40a485
lea eax, [ebp - 0xa8]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov esi, eax
mov eax, dword [ebx + 8]
push edi
push edi
push 0x419
mov dword [ebx + 0x24], esi
push dword [eax + 0x10]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 8]
push 5
push dword [eax + 0xc]
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
mov dword [ebp - 4], esi
test esi, esi
je 0x40a581
lea eax, [ebp - 0x40]
mov dword [ebp - 0x44], esi
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebx + 8]
push dword [eax + 0xc]
push edi
call dword [sym.imp.USER32.dll_MapWindowPoints]
push edi
push edi
push 0x31
push esi
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebx + 0x40]
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x44]
cmp ecx, eax
jne 0x40a53f
test eax, eax
jne 0x40a4fb
push 0x10
pop edi
jmp 0x40a4fe
lea edi, [eax + eax]
xor ecx, ecx
mov eax, edi
push 0x18
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00415875
mov esi, eax
pop ecx
test esi, esi
je 0x40a56d
imul eax, dword [ebx + 0x44], 0x18
push eax
push dword [ebx + 0x3c]
push esi
call fcn.00415d40
push dword [ebx + 0x3c]
call fcn.0041587e
mov ecx, dword [ebx + 0x40]
add esp, 0x10
mov dword [ebx + 0x3c], esi
mov dword [ebx + 0x44], edi
jmp 0x40a542
mov esi, dword [ebx + 0x3c]
imul edi, ecx, 0x18
push 6
pop ecx
push 2
push dword [ebp - 4]
add edi, esi
lea esi, [ebp - 0x44]
rep movsd dword es:[edi], dword [esi]
inc dword [ebx + 0x40]
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
mov dword [ebp - 4], esi
test esi, esi
je 0x40a581
xor edi, edi
jmp 0x40a4b9
push dword [ebx + 0x3c]
call fcn.0041587e
xor esi, esi
pop ecx
mov dword [ebx + 0x3c], esi
mov dword [ebx + 0x40], esi
mov dword [ebx + 0x44], esi
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret