Function at 0x14003a580
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 0x14003a5d1
lea rdx, str.Fast
mov rcx, rbx
call fcn.140078ec0
mov byte [rsp + 0x138], dil
test rax, rax
je 0x14003a5d9
mov byte [rsp + 0x138], 1
mov qword [rsp + 0xf0], rsi
lea rdx, [0x1400d6fc8]
mov rcx, rbx
mov qword [rsp + 0xe8], r13
call fcn.140078ec0
test rax, rax
setne al
mov byte [rsp + 0x148], al
test al, al
je 0x14003a636
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 0x14003a660
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 [0x1400f4120]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x5c], r13d
test dil, dil
je 0x14003a67c
xor edi, edi
mov ebx, edi
jmp 0x14003a68d
xor edi, edi
cmp byte [r14 + 1], 1
mov ebx, edi
cmova rbx, qword [0x1400f4128]
or rcx, 0xffffffffffffffff
mov qword [rsp + 0x80], rbx
test rax, rax
je 0x14003a6b7
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rax
xor r9d, r9d
xor edx, edx
call fcn.14007c070
or rcx, 0xffffffffffffffff
test rbx, rbx
je 0x14003a6d1
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rbx
xor r9d, r9d
xor edx, edx
call fcn.14007c070
xor r8d, r8d
mov qword [rsp + 0x68], 0
lea rdx, [rsp + 0x6c]
lea rcx, [rsp + 0x68]
call fcn.14007a1e0
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 0x14003a922
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 0x14003aeba
cmp byte [rsp + 0x138], 0
mov byte [rsp + 0x51], 0
je 0x14003ac11
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 0x14003ab08
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 0x14003ab08
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0x88], rax
test rax, rax
je 0x14003ab08
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 0x14003ab08
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.14003a310
mov r14, rax
test rax, rax
je 0x14003ab08
mov edx, dword [rsp + 0x138]
imul edx, dword [rsp + 0x5c]
movzx r9d, byte [rsp + 0x160]
movsxd r8, edx
test r9b, r9b
je 0x14003a94a
mov ebx, edi
test edx, edx
jle 0x14003a900
cmp edx, 8
jb 0x14003a900
mov eax, edx
and eax, 0x80000007
jge 0x14003a8bb
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm1, xmmword [0x1400da330]
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 0x14003a8d0
movsxd rcx, ebx
cmp rcx, r8
jge 0x14003a951
mov eax, r8d
sub eax, ecx
add ebx, eax
nop
and dword [r14 + rcx*4], 0xf8f8f8f8
inc rcx
cmp rcx, r8
jl 0x14003a910
jmp 0x14003a951
cmp ebp, r14d
jle 0x14003a92c
mov ebp, r14d
jmp 0x14003a934
test ebp, ebp
jle 0x14003a72f
movzx r12d, r13w
movzx ebx, r13b
shr r12w, 8
shr r13d, 0x10
jmp 0x14003a749
mov ebx, dword [rsp + 0x170]
movzx r15d, byte [rsp + 0x170]
test r15b, r15b
je 0x14003a9d7
mov r8d, dword [r14]
and r8d, 0xffffff
cmp byte [rsp + 0x148], 0
jne 0x14003a997
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, str.0x_06X
lea rcx, [rsp + 0xa0]
call fcn.140004910
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.14007c070
mov sil, 1
jmp 0x14003ab24
cmp ebp, 1
jge 0x14003aa16
test r9b, r9b
je 0x14003a9e7
and esi, 0xf8f8f8f8
mov ebx, edi
test r8, r8
jle 0x14003ab18
mov eax, dword [r14 + rdi*4]
and eax, 0xffffff
cmp eax, esi
je 0x14003aa0e
inc ebx
inc rdi
cmp rdi, r8
jl 0x14003a9f2
jmp 0x14003ab18
mov sil, 1
jmp 0x14003ab1b
movzx ecx, byte [rsp + 0x150]
test r9b, r9b
je 0x14003aa2e
and cl, 0xf8
and r12b, 0xf8
and r13b, 0xf8
movzx r9d, cl
cmp ebp, r9d
jle 0x14003aa41
mov byte [rsp + 0x150], 0
jmp 0x14003aa4e
movzx eax, cl
sub al, bpl
mov byte [rsp + 0x150], al
movzx r11d, r12b
cmp ebp, r11d
jle 0x14003aa5c
xor r15b, r15b
jmp 0x14003aa63
movzx r15d, r12b
sub r15b, bpl
movzx ebx, r13b
cmp ebp, ebx
jle 0x14003aa70
xor sil, sil
jmp 0x14003aa77
movzx esi, r13b
sub sil, bpl
mov edx, 0xff
mov eax, edx
sub eax, r9d
cmp ebp, eax
jle 0x14003aa8b
movzx r10d, dl
jmp 0x14003aa8f
lea r10d, [rcx + rbp]
mov eax, edx
sub eax, r11d
cmp ebp, eax
jle 0x14003aa9e
movzx r9d, dl
jmp 0x14003aaa2
lea r9d, [r12 + rbp]
sub edx, ebx
cmp ebp, edx
jle 0x14003aaad
mov bpl, 0xff
jmp 0x14003aab0
add bpl, r13b
mov ebx, edi
test r8, r8
jle 0x14003ab0f
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 0x14003aaee
cmp cl, r10b
ja 0x14003aaee
cmp al, r15b
jb 0x14003aaee
cmp al, r9b
ja 0x14003aaee
cmp dl, sil
jb 0x14003aaee
cmp dl, bpl
jbe 0x14003aafa
inc ebx
inc rdi
cmp rdi, r8
jl 0x14003aac0
jmp 0x14003ab0f
movzx r15d, byte [rsp + 0x170]
mov sil, 1
jmp 0x14003ab1b
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 0x14003ab60
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x14003ab57
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 0x14003ab73
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
test r14, r14
je 0x14003aebe
mov rcx, r14
call fcn.14009c290
test r15b, r15b
jne 0x14003abdd
test sil, sil
je 0x14003abdd
mov edi, dword [rsp + 0x138]
test rbp, rbp
je 0x14003abb5
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 0x14003abdd
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 [0x1400efed8]
lea rdx, [0x1400bc064]
test sil, sil
mov byte [rsp + 0x20], 1
lea rax, [0x1400cf680]
mov r8, r12
cmovne rax, rdx
xor r9d, r9d
mov rdx, rax
call fcn.14007c070
jmp 0x14003af25
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 0x14003ace6
movzx ecx, bl
cmp ebp, ecx
jle 0x14003ac46
xor al, al
jmp 0x14003ac4c
movzx eax, bl
sub al, bpl
movzx edx, r12b
mov byte [rsp + 0x150], al
cmp ebp, edx
jle 0x14003ac5f
xor al, al
jmp 0x14003ac66
movzx eax, r12b
sub al, bpl
movzx r8d, r13b
mov byte [rsp + 0x138], al
cmp ebp, r8d
jle 0x14003ac7a
xor al, al
jmp 0x14003ac81
movzx eax, r13b
sub al, bpl
mov byte [rsp + 0x148], al
mov eax, r14d
sub eax, ecx
cmp ebp, eax
jle 0x14003ac9b
mov byte [rsp + 0x160], r14b
jmp 0x14003aca5
lea eax, [rbx + rbp]
mov byte [rsp + 0x160], al
mov eax, r14d
sub eax, edx
cmp ebp, eax
jle 0x14003acb8
mov byte [rsp + 0x170], r14b
jmp 0x14003acc3
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 0x14003acde
mov r12b, 0xff
jmp 0x14003ad2b
mov r12d, r13d
add r12d, ebp
jmp 0x14003ad2b
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 0x14003ad4e
cmp ecx, edx
setge al
jmp 0x14003ad53
cmp ecx, edx
setle al
test eax, eax
je 0x14003ad9f
mov ebx, r10d
or rdx, 0xffffffffffffffff
nop
mov eax, edi
test sil, sil
je 0x14003ad6f
cmp ebx, r15d
setge al
jmp 0x14003ad75
cmp ebx, r15d
setle al
test eax, eax
je 0x14003ae35
mov edx, ecx
mov r8d, ebx
mov rcx, r9
call qword [sym.imp.GDI32.dll_GetPixel]
cmp ebp, 1
jge 0x14003add9
cmp eax, r14d
jne 0x14003ae13
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 0x14003ae5d
mov rcx, qword [0x1400efed8]
lea rdx, [0x1400cf680]
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
call fcn.14007c070
jmp 0x14003af25
movzx ecx, ax
mov edx, eax
shr cx, 8
shr edx, 0x10
cmp al, byte [rsp + 0x150]
jb 0x14003ae13
cmp al, byte [rsp + 0x160]
ja 0x14003ae13
cmp cl, byte [rsp + 0x138]
jb 0x14003ae13
cmp cl, r13b
ja 0x14003ae13
cmp dl, byte [rsp + 0x148]
jb 0x14003ae13
cmp dl, r12b
jbe 0x14003ad95
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 0x14003ad60
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 0x14003ad40
mov rbp, qword [rsp + 0x60]
test rbp, rbp
je 0x14003ae7d
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 0x14003ae99
sub ebx, dword [rsp + 0x6c]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, ebx
call fcn.140001460
mov rcx, qword [0x1400efed8]
lea rdx, [0x1400bc064]
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
call fcn.14007c070
jmp 0x14003af25
or r12, 0xffffffffffffffff
cmp byte [rsp + 0x170], 0
lea rax, [0x1400cf680]
lea rdx, [0x1400cf904]
cmovne rdx, rax
cmp word [rdx], 0x30
jne 0x14003aee5
cmp word [rdx + 2], 0
je 0x14003aef5
mov rax, qword [0x1400ebaa8]
cmp byte [rax + 0x148], 0
jne 0x14003af0e
mov rcx, qword [0x1400efed8]
xor r9d, r9d
mov r8, r12
mov byte [rsp + 0x20], 1
call fcn.14007c070
jmp 0x14003af25
mov rcx, qword [rsp + 0x130]
lea r9, [0x1400bbf7c]
xor r8d, r8d
call fcn.14002f040
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