Function at 0x1400eb170
Capabilities:
Capture webcam image

Disassembly:
push rbp
push rdi
push r13
push r14
lea rbp, [rsp - 0x18b8]
mov eax, 0x19b8
call fcn.140057430
sub rsp, rax
mov rax, qword [0x140136e20]
xor rax, rsp
mov qword [rbp + 0x1890], rax
mov eax, dword [rdx + 0x10]
mov r13, rdx
mov rdi, rcx
cmp eax, 0xffffff4b
ja 0x1400eb87d
je 0x1400eb806
add eax, 0x349
cmp eax, 0x89
ja case.0x1400eb8a8.174
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0xeb9dc]
mov edx, dword [r8 + rax*4 + 0xeb9ac]
add rdx, r8
jmp rdx
call fcn.1400a4090
jmp case.0x1400eb8a8.174
mov rdx, r13
call fcn.1400c81b0
jmp case.0x1400eb8a8.174
mov rcx, r13
call fcn.1400a3fb0
cdqe
jmp 0x1400eb98e
mov rdx, r13
call fcn.1400a4440
jmp case.0x1400eb8a8.174
call fcn.1400a4a60
jmp case.0x1400eb8a8.174
mov rdx, qword [r13]
mov rcx, qword [rcx + 0x78]
call fcn.140094e10
jmp case.0x1400eb8a8.174
mov rcx, qword [rcx + 0x78]
or r9, 0xffffffffffffffff
xor r8d, r8d
mov edx, 0x41a
call qword [sym.imp.USER32.dll_SendMessageW]
jmp case.0x1400eb8a8.174
call fcn.1400c9c00
mov rcx, rdi
call fcn.1400a3df0
jmp case.0x1400eb8a8.174
mov qword [rsp + 0x19f0], rbx
xor r14d, r14d
mov qword [rsp + 0x19b0], rsi
mov qword [rsp + 0x19a8], r12
mov qword [rsp + 0x19a0], r15
mov r15d, r14d
mov r12d, r14d
mov dword [rsp + 0x44], r14d
call qword [sym.imp.USER32.dll_CreatePopupMenu]
mov rsi, rax
mov qword [rsp + 0x50], rax
mov rax, qword [0x1401495d0]
lea rdx, [rsp + 0x60]
xor ecx, ecx
mov qword [rsp + 0x70], rax
call qword [sym.imp.SHELL32.dll_Shell_GetImageLists]
mov edx, dword [r13 + 0x1c]
test edx, edx
je 0x1400eb2fd
sub edx, 2
je 0x1400eb2f4
dec edx
je 0x1400eb2df
dec edx
jne 0x1400eb304
mov rax, qword [rsp + 0x60]
mov r15, qword [rdi + 0x400]
mov qword [0x1401495d0], rax
jmp 0x1400eb304
mov rax, qword [rsp + 0x60]
mov r15, qword [rdi + 0x3f8]
mov qword [0x1401495d0], rax
jmp 0x1400eb304
mov r15, qword [rdi + 0x3f0]
jmp 0x1400eb304
mov r15, qword [rdi + 0xb0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x418
mov rcx, r15
call qword [sym.imp.USER32.dll_SendMessageW]
lea rdx, [rbp + 0x18]
mov rcx, r15
mov qword [rsp + 0x68], rax
call qword [sym.imp.USER32.dll_GetClientRect]
mov ebx, r14d
mov dword [rsp + 0x40], ebx
cmp dword [rsp + 0x68], ebx
jle 0x1400eb6f0
mov rsi, r14
mov qword [rsp + 0x58], r14
nop word [rax + rax]
lea r9, [rbp + 0x28]
mov r8, rsi
mov edx, 0x41d
mov rcx, r15
call qword [sym.imp.USER32.dll_SendMessageW]
test rax, rax
je 0x1400eb6d3
lea r8, [rbp + 0x28]
lea rdx, [rbp + 0x18]
lea rcx, [rbp + 0x38]
call qword [sym.imp.USER32.dll_IntersectRect]
test eax, eax
je 0x1400eb390
mov eax, dword [rbp + 0x20]
cmp dword [rbp + 0x30], eax
jle 0x1400eb6d3
lea r9, [rbp - 8]
mov r8, rsi
mov edx, 0x417
mov rcx, r15
call qword [sym.imp.USER32.dll_SendMessageW]
test byte [rbp + 1], 1
je 0x1400eb3dc
mov rcx, qword [rsp + 0x50]
lea r9, [rbp - 0x80]
mov r8d, 1
mov edx, ebx
mov dword [rbp - 0x80], 0x50
mov dword [rbp - 0x7c], pe_nt_image_headers64
mov dword [rbp - 0x78], 0x800
call qword [sym.imp.USER32.dll_InsertMenuItemW]
jmp 0x1400eb6cb
mov r8, qword [rbp + 0x10]
test r8, 0xffffffffffff0000
jne 0x1400eb40d
movzx r8d, r8w
lea r9, [rbp + 0x1090]
mov edx, 0x45b
shl r8d, 0x10
mov rcx, r15
bts r8, 9
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1400eb454
lea rax, [rbp + 0x1090]
mov edx, 0x200
lea rcx, [rbp + 0x1090]
sub r8, rax
lea rax, [rdx + 0x7ffffdfe]
test rax, rax
je 0x1400eb447
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1400eb447
mov word [rcx], ax
add rcx, 2
dec rdx
jne 0x1400eb423
jmp 0x1400eb44c
test rdx, rdx
jne 0x1400eb450
sub rcx, 2
mov word [rcx], r14w
mov eax, dword [r13 + 0x1c]
mov ebx, 0x42
mov rsi, r14
test eax, eax
je 0x1400eb591
cmp eax, 2
jne 0x1400eb66e
movsxd r8, dword [rbp - 4]
mov rcx, qword [rdi + 0x3f0]
xor r9d, r9d
mov edx, 0x419
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0xffffffff
je 0x1400eb66e
mov rcx, qword [rdi + 0x3f0]
lea r9, [rbp - 8]
movsxd r8, eax
mov edx, 0x417
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rbp + 8]
lea rdx, [rbp + 0x870]
call fcn.1400924a0
cmp dword [rbp + 0xe74], esi
jne 0x1400eb66e
call qword [sym.imp.USER32.dll_CreateMenu]
mov rsi, rax
call qword [sym.imp.USER32.dll_CreateMenu]
lea rdx, [rbp - 0x30]
mov rcx, rsi
mov dword [rbp - 0x30], 0x28
mov dword [rbp - 0x2c], reloc.SHELL32.dll_ILFindLastID
mov qword [rdi + 0x1300], rax
mov dword [rbp - 0x28], 0x8000000
call qword [sym.imp.USER32.dll_SetMenuInfo]
mov r11, qword [rbp + 0x1080]
cmp dword [r11 + 0x604], r14d
jne 0x1400eb547
mov rcx, qword [r11 + 0x828]
test rcx, rcx
je 0x1400eb547
lea rdx, [rbp + 0x50]
call fcn.1400924a0
lea r8, [rbp + 0x50]
xor r9d, r9d
mov rdx, rsi
mov rcx, rdi
mov dword [0x14013b2e4], 0x2710
call fcn.1400df270
lea r8, [rbp + 0x50]
jmp 0x1400eb565
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
mov dword [0x14013b2e4], 0x2710
call fcn.1400df270
xor r8d, r8d
mov rdx, qword [rdi + 0x1300]
xor r9d, r9d
mov rcx, rdi
mov dword [0x14013b2e4], 0x2710
call fcn.1400df270
mov rdx, rsi
mov rcx, rdi
call fcn.1400c4350
jmp 0x1400eb669
mov ecx, dword [rbp - 4]
sub ecx, 0xafca
je 0x1400eb659
dec ecx
je 0x1400eb655
cmp ecx, 0xa
jne 0x1400eb66e
call qword [sym.imp.USER32.dll_CreateMenu]
mov rcx, qword [rdi + 0x1330]
mov rsi, rax
call qword [sym.imp.USER32.dll_GetMenuItemCount]
mov ebx, r14d
mov r12d, eax
test eax, eax
jle 0x1400eb643
mov rcx, qword [rdi + 0x1330]
lea rax, [rbp + 0x1490]
lea r9, [rbp - 0x80]
mov r8d, 1
mov edx, ebx
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x80], 0x50
mov dword [rbp - 0x7c], Shell_GetImageLists
mov dword [rbp - 0x40], 0x200
call qword [sym.imp.USER32.dll_GetMenuItemInfoW]
test eax, eax
je 0x1400eb63c
lea rax, [rbp + 0x1490]
lea r9, [rbp - 0x80]
mov r8d, 1
mov edx, ebx
mov rcx, rsi
mov dword [rbp - 0x80], 0x50
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x7c], Shell_GetImageLists
call qword [sym.imp.USER32.dll_InsertMenuItemW]
inc ebx
cmp ebx, r12d
jl 0x1400eb5d1
mov rdx, rsi
mov rcx, rdi
call fcn.1400c4350
mov r12d, dword [rsp + 0x44]
jmp 0x1400eb669
xor edx, edx
jmp 0x1400eb65e
mov edx, 1
mov rcx, rdi
call fcn.1400d7a20
mov rsi, rax
mov ebx, Shell_GetImageLists
mov eax, dword [rbp - 4]
mov dword [rbp - 0x7c], ebx
mov rbx, qword [rsp + 0x50]
mov dword [rbp - 0x70], eax
lea rax, [rbp + 0x1090]
lea r9, [rbp - 0x80]
mov r8d, 1
mov edx, r12d
mov rcx, rbx
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x80], 0x50
mov qword [rbp - 0x68], rsi
call qword [sym.imp.USER32.dll_InsertMenuItemW]
mov edx, r12d
mov rcx, rbx
call fcn.1400c42c0
mov r8d, dword [rbp - 8]
mov edx, dword [rbp - 4]
mov rcx, rbx
call fcn.1400c4270
mov ebx, dword [rsp + 0x40]
mov rsi, qword [rsp + 0x58]
inc r12d
mov dword [rsp + 0x44], r12d
inc ebx
inc rsi
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x58], rsi
cmp ebx, dword [rsp + 0x68]
jl 0x1400eb350
mov rsi, qword [rsp + 0x50]
mov eax, dword [r13 + 0x28]
mov rcx, qword [rdi + 0x78]
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x48], eax
mov eax, dword [r13 + 0x34]
mov dword [rsp + 0x4c], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov rax, qword [rdi + 0x78]
mov r9d, dword [rsp + 0x4c]
mov r8d, dword [rsp + 0x48]
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rax
mov edx, pe_nt_image_headers64
mov rcx, rsi
mov dword [rsp + 0x20], r14d
call qword [sym.imp.USER32.dll_TrackPopupMenu]
mov r15, qword [rsp + 0x19a0]
mov r12, qword [rsp + 0x19a8]
mov r11d, eax
test eax, eax
je 0x1400eb7dc
mov edx, 0x7d0
cmp r11d, edx
jl 0x1400eb768
cmp r11d, 0xbb7
jle 0x1400eb777
lea ecx, [r11 - 0xbb8]
cmp ecx, 0x3e7
ja 0x1400eb7c6
lea eax, [r11 - 0x7d0]
cmp eax, 0x3e7
ja 0x1400eb78d
sub edx, r11d
mov r11d, edx
jmp 0x1400eb794
sub r11d, 0xbb8
mov rcx, qword [rdi + 0xa50]
mov edx, r11d
mov rax, qword [rcx]
call qword [rax + 0xb0]
mov r8d, 0x8000000
mov rcx, rdi
mov rdx, rax
mov rbx, rax
call fcn.1400c8100
mov rcx, rbx
call qword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x1400eb7dc
mov rcx, qword [rdi + 0x68]
movzx r8d, r11w
xor r9d, r9d
mov edx, 0x111
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rsi
call qword [sym.imp.USER32.dll_DestroyMenu]
mov r11, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x19b0]
mov rbx, qword [rsp + 0x19f0]
mov qword [0x1401495d0], r11
jmp case.0x1400eb8a8.174
cmp dword [rcx + 0x1b5c], 5
jne case.0x1400eb8a8.174
movsxd rax, dword [rcx + 0x1b88]
lea rdx, [rsp + 0x40]
mov rcx, qword [rcx + rax*8 + 0x408]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov rcx, qword [rdi + 0x12c0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1037
call qword [sym.imp.USER32.dll_SendMessageW]
cmp dword [rsp + 0x40], 4
jne case.0x1400eb8a8.174
test al, 1
je case.0x1400eb8a8.174
mov rcx, qword [rdi + 0x12c0]
xor edx, edx
lea r8d, [rdx + 1]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [rdi + 0x12c0]
call qword [sym.imp.USER32.dll_UpdateWindow]
jmp case.0x1400eb8a8.174
add eax, 0xb1
cmp eax, 0xaf
ja case.0x1400eb8a8.174
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0xebaa0]
mov ecx, dword [r8 + rax*4 + 0xeba68]
add rcx, r8
jmp rcx
cmp dword [rdi + 0xedac], 0
je case.0x1400eb8a8.174
cmp dword [rdi + 0xf3cc], 0
jne case.0x1400eb8a8.174
mov rcx, rdi
call fcn.1400d1c00
jmp case.0x1400eb8a8.174
mov rcx, rdi
call fcn.1400e5a50
jmp case.0x1400eb8a8.174
mov rcx, rdi
call fcn.1400c6b90
jmp 0x1400eb98e
mov rcx, rdi
call fcn.1400d2be0
jmp case.0x1400eb8a8.174
mov rcx, rdi
call fcn.1400d5860
jmp 0x1400eb98e
movsxd rax, dword [rdi + 0x1b88]
lea rdx, [rsp + 0x40]
mov rcx, qword [rdi + rax*8 + 0x408]
mov rax, qword [rcx]
call qword [rax + 0x30]
cmp dword [rsp + 0x40], 3
jne case.0x1400eb8a8.174
cmp dword [rdi + 0xf730], 0
je case.0x1400eb8a8.174
xor r14d, r14d
mov dword [rdi + 0xf730], r14d
mov eax, 1
jmp 0x1400eb98e
mov rcx, rdi
call fcn.1400d6300
jmp case.0x1400eb8a8.174
xor r8d, r8d
mov rcx, rdi
call fcn.1400d4600
jmp case.0x1400eb8a8.174
mov rcx, rdi
call fcn.1400d31f0
cdqe
jmp 0x1400eb98e
mov rcx, rdi
call fcn.1400d5190
cdqe
jmp 0x1400eb98e
mov rcx, rdi
call fcn.1400d1ee0
jmp case.0x1400eb8a8.174
mov rcx, qword [rdi + 0xa50]
mov edx, dword [rdx + 0x1c]
mov rax, qword [rcx]
call qword [rax + 0x230]
xor eax, eax
mov rcx, qword [rbp + 0x1890]
xor rcx, rsp
call fcn.14004ae00
add rsp, 0x19b8
pop r14
pop r13
pop rdi
pop rbp
ret