Function at 0x14003c2a0
Capabilities:
Capture screenshot

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rdi
push r12
push r14
push r15
sub rsp, 0xf8
movzx edi, byte [rsp + 0x170]
mov r15d, r9d
mov rbx, qword [rsp + 0x168]
mov r12d, r8d
mov ebp, edx
mov r14, rcx
test dil, dil
jne 0x14003c2f1
lea rdx, [0x1400d3bb0]
mov rcx, rbx
call fcn.14007a410
mov byte [rsp + 0x138], dil
test rax, rax
je 0x14003c2f9
mov byte [rsp + 0x138], 1
mov qword [rsp + 0xf0], rsi
lea rdx, [0x1400d8c38]
mov rcx, rbx
mov qword [rsp + 0xe8], r13
call fcn.14007a410
test rax, rax
setne al
mov byte [rsp + 0x148], al
test al, al
je 0x14003c356
mov esi, dword [rsp + 0x158]
movzx eax, si
shr ax, 8
movzx r13d, al
mov eax, esi
shr eax, 0x10
movzx ecx, al
shl r13d, 8
movzx eax, sil
or r13d, ecx
shl eax, 0x10
or r13d, eax
jmp 0x14003c380
mov r13d, dword [rsp + 0x158]
movzx eax, r13w
shr ax, 8
movzx esi, al
mov eax, r13d
shr eax, 0x10
movzx ecx, al
shl esi, 8
movzx eax, r13b
or esi, ecx
shl eax, 0x10
or esi, eax
mov rax, qword [0x1400f5760]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x5c], r13d
test dil, dil
je 0x14003c39c
xor edi, edi
mov ebx, edi
jmp 0x14003c3ad
xor edi, edi
cmp byte [r14 + 1], 1
mov ebx, edi
cmova rbx, qword [0x1400f5768]
or rcx, 0xffffffffffffffff
mov qword [rsp + 0x80], rbx
test rax, rax
je 0x14003c3d7
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rax
xor r9d, r9d
xor edx, edx
call fcn.14007d4e0
or rcx, 0xffffffffffffffff
test rbx, rbx
je 0x14003c3f1
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rbx
xor r9d, r9d
xor edx, edx
call fcn.14007d4e0
xor r8d, r8d
mov qword [rsp + 0x68], 0
lea rdx, [rsp + 0x6c]
lea rcx, [rsp + 0x68]
call fcn.14007b730
add r15d, dword [rsp + 0x68]
mov r14d, 0xff
add ebp, dword [rsp + 0x68]
add r12d, dword [rsp + 0x6c]
mov dword [rsp + 0x58], r15d
mov r15d, dword [rsp + 0x150]
add r15d, dword [rsp + 0x6c]
mov dword [rsp + 0x54], ebp
mov ebp, dword [rsp + 0x160]
mov dword [rsp + 0x140], r12d
test ebp, ebp
jns 0x14003c642
mov ebp, edi
movzx ebx, byte [rsp + 0x170]
movzx r13d, byte [rsp + 0x170]
movzx r12d, byte [rsp + 0x170]
xor ecx, ecx
mov byte [rsp + 0x150], bl
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x70], rax
mov r9, rax
test rax, rax
je 0x14003cbda
cmp byte [rsp + 0x138], 0
mov byte [rsp + 0x51], 0
je 0x14003c931
mov eax, dword [rsp + 0x58]
mov rcx, r9
sub eax, dword [rsp + 0x54]
mov r14, rdi
sub r15d, dword [rsp + 0x140]
inc eax
mov dword [rsp + 0x58], eax
inc r15d
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x88], rdi
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov qword [rsp + 0x90], rax
mov rbx, rax
test rax, rax
je 0x14003c828
mov edx, dword [rsp + 0x58]
mov r8d, r15d
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x14003c828
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0x88], rax
test rax, rax
je 0x14003c828
mov eax, dword [rsp + 0x140]
xor r8d, r8d
mov r9d, dword [rsp + 0x58]
xor edx, edx
mov dword [rsp + 0x40], 0xcc0020
mov rcx, rbx
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r15d
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x14003c828
mov rcx, qword [rsp + 0x78]
lea rax, [rsp + 0x160]
mov dword [rsp + 0x28], 8
lea r9, [rsp + 0x5c]
lea r8, [rsp + 0x138]
mov qword [rsp + 0x20], rax
mov rdx, rbx
call fcn.14003c030
mov r14, rax
test rax, rax
je 0x14003c828
mov edx, dword [rsp + 0x138]
imul edx, dword [rsp + 0x5c]
movzx r9d, byte [rsp + 0x160]
movsxd r8, edx
test r9b, r9b
je 0x14003c66a
mov ebx, edi
test edx, edx
jle 0x14003c620
cmp edx, 8
jb 0x14003c620
mov eax, edx
and eax, 0x80000007
jge 0x14003c5db
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm1, xmmword [0x1400dc030]
sub edx, eax
nop word [rax + rax]
movsxd rax, ebx
movdqu xmm0, xmmword [r14 + rax*4]
pand xmm0, xmm1
movdqu xmmword [r14 + rax*4], xmm0
lea eax, [rbx + 4]
add ebx, 8
movsxd rcx, eax
movdqu xmm0, xmmword [r14 + rcx*4]
pand xmm0, xmm1
movdqu xmmword [r14 + rcx*4], xmm0
cmp ebx, edx
jl 0x14003c5f0
movsxd rcx, ebx
cmp rcx, r8
jge 0x14003c671
mov eax, r8d
sub eax, ecx
add ebx, eax
nop
and dword [r14 + rcx*4], 0xf8f8f8f8
inc rcx
cmp rcx, r8
jl 0x14003c630
jmp 0x14003c671
cmp ebp, r14d
jle 0x14003c64c
mov ebp, r14d
jmp 0x14003c654
test ebp, ebp
jle 0x14003c44f
movzx r12d, r13w
movzx ebx, r13b
shr r12w, 8
shr r13d, 0x10
jmp 0x14003c469
mov ebx, dword [rsp + 0x170]
movzx r15d, byte [rsp + 0x170]
test r15b, r15b
je 0x14003c6f7
mov r8d, dword [r14]
and r8d, 0xffffff
cmp byte [rsp + 0x148], 0
jne 0x14003c6b7
movzx eax, r8w
shr ax, 8
movzx edx, al
mov eax, r8d
shr eax, 0x10
shl edx, 8
movzx r8d, r8b
movzx ecx, al
or edx, ecx
shl r8d, 0x10
or r8d, edx
lea rdx, [0x1400d8bb0]
lea rcx, [rsp + 0xa0]
call fcn.140004900
mov rbp, qword [rsp + 0x60]
lea rdx, [rsp + 0xa0]
or r12, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
mov r8, r12
mov rcx, rbp
xor r9d, r9d
call fcn.14007d4e0
mov sil, 1
jmp 0x14003c844
cmp ebp, 1
jge 0x14003c736
test r9b, r9b
je 0x14003c707
and esi, 0xf8f8f8f8
mov ebx, edi
test r8, r8
jle 0x14003c838
mov eax, dword [r14 + rdi*4]
and eax, 0xffffff
cmp eax, esi
je 0x14003c72e
inc ebx
inc rdi
cmp rdi, r8
jl 0x14003c712
jmp 0x14003c838
mov sil, 1
jmp 0x14003c83b
movzx ecx, byte [rsp + 0x150]
test r9b, r9b
je 0x14003c74e
and cl, 0xf8
and r12b, 0xf8
and r13b, 0xf8
movzx r9d, cl
cmp ebp, r9d
jle 0x14003c761
mov byte [rsp + 0x150], 0
jmp 0x14003c76e
movzx eax, cl
sub al, bpl
mov byte [rsp + 0x150], al
movzx r11d, r12b
cmp ebp, r11d
jle 0x14003c77c
xor r15b, r15b
jmp 0x14003c783
movzx r15d, r12b
sub r15b, bpl
movzx ebx, r13b
cmp ebp, ebx
jle 0x14003c790
xor sil, sil
jmp 0x14003c797
movzx esi, r13b
sub sil, bpl
mov edx, 0xff
mov eax, edx
sub eax, r9d
cmp ebp, eax
jle 0x14003c7ab
movzx r10d, dl
jmp 0x14003c7af
lea r10d, [rcx + rbp]
mov eax, edx
sub eax, r11d
cmp ebp, eax
jle 0x14003c7be
movzx r9d, dl
jmp 0x14003c7c2
lea r9d, [r12 + rbp]
sub edx, ebx
cmp ebp, edx
jle 0x14003c7cd
mov bpl, 0xff
jmp 0x14003c7d0
add bpl, r13b
mov ebx, edi
test r8, r8
jle 0x14003c82f
movzx r11d, byte [rsp + 0x150]
mov edx, dword [r14 + rdi*4]
mov ecx, edx
movzx eax, dx
shr ecx, 0x10
shr ax, 8
cmp cl, r11b
jb 0x14003c80e
cmp cl, r10b
ja 0x14003c80e
cmp al, r15b
jb 0x14003c80e
cmp al, r9b
ja 0x14003c80e
cmp dl, sil
jb 0x14003c80e
cmp dl, bpl
jbe 0x14003c81a
inc ebx
inc rdi
cmp rdi, r8
jl 0x14003c7e0
jmp 0x14003c82f
movzx r15d, byte [rsp + 0x170]
mov sil, 1
jmp 0x14003c83b
mov ebx, dword [rsp + 0x170]
movzx r15d, byte [rsp + 0x170]
xor sil, sil
mov rbp, qword [rsp + 0x60]
or r12, 0xffffffffffffffff
mov rdx, qword [rsp + 0x70]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdi, qword [rsp + 0x90]
test rdi, rdi
je 0x14003c880
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x14003c877
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rdi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rax, qword [rsp + 0x78]
test rax, rax
je 0x14003c893
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
test r14, r14
je 0x14003cbde
mov rcx, r14
call fcn.14009d6d0
test r15b, r15b
jne 0x14003c8fd
test sil, sil
je 0x14003c8fd
mov edi, dword [rsp + 0x138]
test rbp, rbp
je 0x14003c8d5
mov eax, ebx
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
mov rcx, rbp
idiv edi
sub edx, dword [rsp + 0x68]
add edx, dword [rsp + 0x54]
movsxd rdx, edx
call fcn.140001460
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x14003c8fd
mov eax, ebx
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv edi
sub eax, dword [rsp + 0x6c]
add eax, dword [rsp + 0x140]
movsxd rdx, eax
call fcn.140001460
mov rcx, qword [0x1400f1518]
lea rdx, [0x1400be064]
test sil, sil
mov byte [rsp + 0x20], 1
lea rax, [0x1400d1680]
mov r8, r12
cmovne rax, rdx
xor r9d, r9d
mov rdx, rax
call fcn.14007d4e0
jmp 0x14003cc45
mov ecx, dword [rsp + 0x54]
mov edx, dword [rsp + 0x58]
cmp ecx, edx
mov r10d, dword [rsp + 0x140]
setg r8b
cmp r10d, r15d
mov byte [rsp + 0x50], r8b
setg sil
test ebp, ebp
jle 0x14003ca06
movzx ecx, bl
cmp ebp, ecx
jle 0x14003c966
xor al, al
jmp 0x14003c96c
movzx eax, bl
sub al, bpl
movzx edx, r12b
mov byte [rsp + 0x150], al
cmp ebp, edx
jle 0x14003c97f
xor al, al
jmp 0x14003c986
movzx eax, r12b
sub al, bpl
movzx r8d, r13b
mov byte [rsp + 0x138], al
cmp ebp, r8d
jle 0x14003c99a
xor al, al
jmp 0x14003c9a1
movzx eax, r13b
sub al, bpl
mov byte [rsp + 0x148], al
mov eax, r14d
sub eax, ecx
cmp ebp, eax
jle 0x14003c9bb
mov byte [rsp + 0x160], r14b
jmp 0x14003c9c5
lea eax, [rbx + rbp]
mov byte [rsp + 0x160], al
mov eax, r14d
sub eax, edx
cmp ebp, eax
jle 0x14003c9d8
mov byte [rsp + 0x170], r14b
jmp 0x14003c9e3
lea eax, [r12 + rbp]
mov byte [rsp + 0x170], al
mov ecx, dword [rsp + 0x54]
sub r14d, r8d
mov edx, dword [rsp + 0x58]
movzx r8d, byte [rsp + 0x50]
cmp ebp, r14d
jle 0x14003c9fe
mov r12b, 0xff
jmp 0x14003ca4b
mov r12d, r13d
add r12d, ebp
jmp 0x14003ca4b
movzx eax, byte [rsp + 0x170]
movzx r12d, byte [rsp + 0x170]
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x170]
mov byte [rsp + 0x138], al
movzx eax, byte [rsp + 0x170]
mov byte [rsp + 0x148], al
movzx eax, byte [rsp + 0x170]
mov byte [rsp + 0x160], al
movzx r13d, byte [rsp + 0x170]
mov ebx, dword [rsp + 0x170]
mov r14d, dword [rsp + 0x5c]
mov eax, edi
test r8b, r8b
je 0x14003ca6e
cmp ecx, edx
setge al
jmp 0x14003ca73
cmp ecx, edx
setle al
test eax, eax
je 0x14003cabf
mov ebx, r10d
or rdx, 0xffffffffffffffff
nop
mov eax, edi
test sil, sil
je 0x14003ca8f
cmp ebx, r15d
setge al
jmp 0x14003ca95
cmp ebx, r15d
setle al
test eax, eax
je 0x14003cb55
mov edx, ecx
mov r8d, ebx
mov rcx, r9
call qword [sym.imp.GDI32.dll_GetPixel]
cmp ebp, 1
jge 0x14003caf9
cmp eax, r14d
jne 0x14003cb33
mov r9, qword [rsp + 0x70]
mov byte [rsp + 0x51], 1
mov rdx, r9
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [rsp + 0x51], 0
jne 0x14003cb7d
mov rcx, qword [0x1400f1518]
lea rdx, [0x1400d1680]
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
call fcn.14007d4e0
jmp 0x14003cc45
movzx ecx, ax
mov edx, eax
shr cx, 8
shr edx, 0x10
cmp al, byte [rsp + 0x150]
jb 0x14003cb33
cmp al, byte [rsp + 0x160]
ja 0x14003cb33
cmp cl, byte [rsp + 0x138]
jb 0x14003cb33
cmp cl, r13b
ja 0x14003cb33
cmp dl, byte [rsp + 0x148]
jb 0x14003cb33
cmp dl, r12b
jbe 0x14003cab5
mov ecx, dword [rsp + 0x54]
test sil, sil
mov r9, qword [rsp + 0x70]
mov eax, 1
mov rdx, 0xffffffffffffffff
cmovne eax, edx
add ebx, eax
jmp 0x14003ca80
movzx r8d, byte [rsp + 0x50]
mov eax, 1
mov r10d, dword [rsp + 0x140]
test r8b, r8b
cmovne eax, edx
mov edx, dword [rsp + 0x58]
add ecx, eax
mov dword [rsp + 0x54], ecx
jmp 0x14003ca60
mov rbp, qword [rsp + 0x60]
test rbp, rbp
je 0x14003cb9d
mov eax, dword [rsp + 0x54]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
sub eax, dword [rsp + 0x68]
mov rcx, rbp
movsxd rdx, eax
call fcn.140001460
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x14003cbb9
sub ebx, dword [rsp + 0x6c]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, ebx
call fcn.140001460
mov rcx, qword [0x1400f1518]
lea rdx, [0x1400be064]
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
call fcn.14007d4e0
jmp 0x14003cc45
or r12, 0xffffffffffffffff
cmp byte [rsp + 0x170], 0
lea rax, [0x1400d1680]
lea rdx, [0x1400d1904]
cmovne rdx, rax
cmp word [rdx], 0x30
jne 0x14003cc05
cmp word [rdx + 2], 0
je 0x14003cc15
mov rax, qword [0x1400edaa8]
cmp byte [rax + 0x148], 0
jne 0x14003cc2e
mov rcx, qword [0x1400f1518]
xor r9d, r9d
mov r8, r12
mov byte [rsp + 0x20], 1
call fcn.14007d4e0
jmp 0x14003cc45
mov rcx, qword [rsp + 0x130]
lea r9, [0x1400bdf7c]
xor r8d, r8d
call fcn.140030d60
mov r13, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xf0]
add rsp, 0xf8
pop r15
pop r14
pop r12
pop rdi
pop rbp
pop rbx
ret