Function at 0x100064134
Capabilities:
Capture webcam image

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
mov rax, qword [0x1000a5140]
xor rax, rsp
mov qword [rsp + 0x100], rax
lea rdx, [r11 - 0x88]
mov rdi, rcx
call qword [sym.imp.USER32.dll_BeginPaint]
lea rdx, [rsp + 0x58]
mov rcx, rdi
mov r12, rax
mov qword [rsp + 0x70], rax
call qword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [rsp + 0x64]
mov ecx, dword [rsp + 0x60]
lea rax, [rsp + 0x90]
xor ebp, ebp
mov qword [rsp + 0x28], rax
mov r9d, 0x26200a
xor r8d, r8d
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x90], rbp
call sub.gdiplus.dll_GdipCreateBitmapFromScan0
mov rcx, qword [rsp + 0x90]
lea rdx, [rsp + 0xa8]
mov qword [rsp + 0xa8], rbp
call sub.gdiplus.dll_GdipGetImageGraphicsContext
mov r13, qword [rsp + 0xa8]
lea r14d, [rbp + 2]
cmp qword [0x1000ae9a0], rbp
je 0x1000642d7
mov eax, dword [rsp + 0x58]
mov rcx, rdi
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x54], eax
call qword [sym.imp.USER32.dll_GetParent]
lea r9d, [rbp + 1]
lea r8, [rsp + 0x50]
mov rcx, rdi
mov rdx, rax
call qword [sym.imp.USER32.dll_MapWindowPoints]
cmp byte [0x1000ae8ed], bpl
jne 0x100064266
mov rax, qword [0x1000ae9a0]
cmp rax, rbp
je 0x10006423c
mov rdx, qword [rax + 8]
jmp 0x10006423f
mov rdx, rbp
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
jmp 0x1000642c9
mov rbx, qword [0x1000ae9a0]
lea rdx, [rsp + 0x68]
mov dword [rsp + 0x68], ebp
mov rcx, qword [rbx + 8]
call sub.gdiplus.dll_GdipGetImageWidth
cmp eax, ebp
je 0x100064286
mov dword [rbx + 0x10], eax
mov ecx, dword [rsp + 0x68]
mov r8d, dword [rsp + 0x60]
mov rax, qword [0x1000ae9a0]
sub ecx, dword [rsp + 0x50]
sub ecx, r8d
cmp rax, rbp
je 0x1000642a8
mov rdx, qword [rax + 8]
jmp 0x1000642ab
mov rdx, rbp
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
xor r9d, r9d
xor r8d, r8d
mov rcx, r13
call sub.gdiplus.dll_GdipDrawImagePointRectI
lea r9, [rsp + 0x80]
xor r8d, r8d
mov edx, 0x41a
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
lea rdx, [rsp + 0x50]
mov rcx, r13
mov qword [rsp + 0x50], rbp
call sub.gdiplus.dll_GdipGetDC
mov rbx, qword [rsp + 0x50]
lea rdx, [rsp + 0x80]
mov rcx, rbx
mov r9d, 0x200f
mov r8d, 0xa
call qword [sym.imp.USER32.dll_DrawEdge]
mov rdx, rbx
mov rcx, r13
call sub.gdiplus.dll_GdipReleaseDC
xor r9d, r9d
xor r8d, r8d
mov edx, 0x410
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, r14d
mov r15, rax
jle 0x100064468
mov r14d, dword [rsp + 0x8c]
movss xmm1, dword [0x1000a55fc]
lea r9, [rsp + 0x98]
xor r8d, r8d
mov ecx, 0x80ffffff
mov ebx, ebp
add r14d, 0x10
mov r12d, ebp
mov esi, ebp
mov qword [rsp + 0x98], rbp
call sub.gdiplus.dll_GdipCreatePen1
mov dword [rsp + 0xa0], eax
lea eax, [r15 - 2]
mov dword [rsp + 0x50], eax
test eax, eax
jle 0x100064450
lea eax, [r15 - 3]
mov dword [rsp + 0x68], eax
movsxd r8, ebp
xor r9d, r9d
mov edx, 0x40f
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, qword [rsp + 0x98]
mov r9d, r14d
mov r15, rax
lea eax, [r14 + 8]
mov rcx, r13
mov dword [rsp + 0x28], eax
mov r8d, r15d
mov dword [rsp + 0x20], r15d
call sub.gdiplus.dll_GdipDrawLineI
test ebp, ebp
cmove ebx, r15d
cmp ebp, 1
jne 0x1000643f2
mov esi, r15d
sub esi, ebx
sub ebx, esi
cmp ebp, dword [rsp + 0x68]
jne 0x1000643fc
lea r12d, [r15 + rsi]
inc ebp
cmp ebp, dword [rsp + 0x50]
jl 0x1000643a6
xor ebp, ebp
cmp ebx, ebp
jle 0x100064450
cmp r12d, ebp
jle 0x100064450
mov rdx, qword [rsp + 0x98]
lea esi, [r14 + 8]
mov r9d, r14d
mov r8d, ebx
mov rcx, r13
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], ebx
call sub.gdiplus.dll_GdipDrawLineI
mov rdx, qword [rsp + 0x98]
mov r9d, r14d
mov r8d, r12d
mov rcx, r13
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], r12d
call sub.gdiplus.dll_GdipDrawLineI
mov rcx, qword [rsp + 0x98]
call sub.gdiplus.dll_GdipDeletePen
mov r12, qword [rsp + 0x70]
mov r14d, 2
lea r9, [rsp + 0x80]
xor r8d, r8d
mov edx, 0x419
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
cmp byte [0x1000ae8ed], bpl
je 0x1000644ae
mov edx, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x88]
mov eax, edx
sub eax, dword [rsp + 0x80]
sub edx, ecx
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x80], edx
lea rax, [rsp + 0x50]
cmp qword [0x1000ae988], rdi
jne 0x1000644c3
or dword [rsp + 0x50], 0xffffffff
jmp 0x1000644cb
mov dword [rsp + 0x50], 0x80ffffff
mov ecx, dword [rax]
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x68], rbp
call sub.gdiplus.dll_GdipCreateSolidFill
mov r9d, dword [rsp + 0x8c]
mov r8d, dword [rsp + 0x88]
mov edx, dword [rsp + 0x84]
mov ecx, dword [rsp + 0x80]
mov rsi, qword [rsp + 0x68]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
call qword [sym.imp.GDI32.dll_CreateRoundRectRgn]
lea rdx, [rsp + 0x50]
mov rcx, rax
mov qword [rsp + 0x50], rbp
mov rbx, rax
call sub.gdiplus.dll_GdipCreateRegionHrgn
mov rbp, qword [rsp + 0x50]
mov rdx, rsi
mov rcx, r13
mov r8, rbp
call sub.gdiplus.dll_GdipFillRegion
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
call qword [sym.imp.USER32.dll_GetFocus]
cmp rax, rdi
jne 0x1000645c0
movss xmm1, dword [0x100029868]
and qword [rsp + 0x70], 0
lea r9, [rsp + 0x70]
xor r8d, r8d
mov ecx, 0xc0ffffff
call sub.gdiplus.dll_GdipCreatePen1
mov rcx, qword [rsp + 0x70]
mov edx, 1
mov dword [rsp + 0x78], eax
call sub.gdiplus.dll_GdipSetPenDashStyle
mov ecx, dword [rsp + 0x78]
mov r9d, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x70]
test eax, eax
cmovne ecx, eax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x78], ecx
mov ecx, dword [rsp + 0x64]
dec ecx
dec eax
mov dword [rsp + 0x28], ecx
mov rcx, r13
mov dword [rsp + 0x20], eax
call sub.gdiplus.dll_GdipDrawRectangleI
mov rcx, qword [rsp + 0x70]
call sub.gdiplus.dll_GdipDeletePen
and qword [rsp + 0x70], 0
lea rdx, [rsp + 0x70]
mov rcx, r12
call sub.gdiplus.dll_GdipCreateFromHDC
mov eax, dword [rsp + 0x64]
mov rbx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x90]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
mov dword [rsp + 0x20], eax
call sub.gdiplus.dll_GdipDrawImageRectI
lea rdx, [rsp + 0xb0]
mov rcx, rdi
call qword [sym.imp.USER32.dll_EndPaint]
mov rcx, rbx
call sub.gdiplus.dll_GdipDeleteGraphics
mov rcx, rbp
call sub.gdiplus.dll_GdipDeleteRegion
mov rcx, rsi
call sub.gdiplus.dll_GdipDeleteBrush
mov rcx, r13
call sub.gdiplus.dll_GdipDeleteGraphics
mov rcx, qword [rsp + 0x90]
call sub.gdiplus.dll_GdipDisposeImage
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.1000995a0
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret