Function at 0x140070680
Capabilities:
Capture screenshot

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x108
movzx esi, byte [rsp + 0x190]
mov edi, r9d
mov r12d, dword [rsp + 0x180]
mov ebp, r8d
mov rbx, qword [rsp + 0x188]
mov r14d, edx
mov r15, rcx
test sil, sil
jne 0x1400706dd
lea rdx, str.Fast
mov rcx, rbx
call fcn.1400d6b70
mov byte [rsp + 0x158], sil
test rax, rax
je 0x1400706e5
mov byte [rsp + 0x158], 1
lea rdx, [0x140119140]
mov rcx, rbx
call fcn.1400d6b70
mov r13d, dword [rsp + 0x178]
mov ecx, r13d
shr ecx, 0x10
movzx edx, cl
movzx r8d, r13w
and r8d, 0xffffff00
movzx ecx, r13b
shl ecx, 0x10
or r8d, edx
or r8d, ecx
mov qword [rsp + 0xb0], rax
test rax, rax
je 0x14007073f
mov dword [rsp + 0x168], r13d
mov r13d, r8d
mov dword [rsp + 0x178], r8d
jmp 0x140070747
mov dword [rsp + 0x168], r8d
mov rax, qword [0x140134e40]
mov qword [rsp + 0x80], rax
test sil, sil
je 0x140070761
xor esi, esi
mov ebx, esi
jmp 0x140070772
xor esi, esi
cmp byte [r15 + 1], 1
mov ebx, esi
cmova rbx, qword [0x140134e48]
mov qword [rsp + 0xa8], rbx
mov rcx, 0xffffffffffffffff
test rax, rax
je 0x1400707a2
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rax
xor r9d, r9d
xor edx, edx
call fcn.1400dc860
mov rcx, 0xffffffffffffffff
test rbx, rbx
je 0x1400707bc
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rbx
xor r9d, r9d
xor edx, edx
call fcn.1400dc860
xor r8d, r8d
mov qword [rsp + 0x88], rsi
lea rdx, [rsp + 0x8c]
lea rcx, [rsp + 0x88]
call fcn.1400d7c50
mov r8d, dword [rsp + 0x8c]
mov rbx, qword [rsp + 0x88]
lea r15d, [r8 + rbp]
mov ebp, dword [rsp + 0x170]
add ebp, r8d
lea edx, [rbx + r14]
lea ecx, [rbx + rdi]
mov dword [rsp + 0x64], edx
cmp edx, ecx
mov dword [rsp + 0x60], ecx
mov eax, ecx
mov edi, edx
cmovle eax, edx
cmovle edi, ecx
cmp r15d, ebp
mov dword [rsp + 0x68], eax
mov eax, ebp
mov r14d, r15d
cmovle eax, r15d
cmovle r14d, ebp
test r12d, r12d
mov dword [rsp + 0x6c], eax
mov ecx, esi
cmovns ecx, r12d
mov r12d, 0xff
mov dword [rsp + 0x54], ecx
cmp ecx, r12d
jle 0x140070868
mov eax, dword [rsp + 0x178]
mov byte [rsp + 0x170], r13b
shr r13w, 8
shr eax, 0x10
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x50], r12d
jmp 0x1400708b0
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x180], ecx
test ecx, ecx
jle 0x140070890
mov eax, dword [rsp + 0x178]
mov byte [rsp + 0x170], r13b
shr r13w, 8
shr eax, 0x10
jmp 0x1400708b0
movzx eax, byte [rsp + 0x190]
movzx r13d, byte [rsp + 0x190]
mov byte [rsp + 0x170], al
movzx eax, byte [rsp + 0x190]
xor ecx, ecx
mov dword [rsp + 0x160], eax
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x58], rax
mov r9, rax
test rax, rax
je 0x1400711f9
cmp byte [rsp + 0x158], 0
mov byte [rsp + 0x180], 0
je 0x140070f35
sub r14d, dword [rsp + 0x6c]
mov rcx, rax
sub edi, dword [rsp + 0x68]
inc r14d
mov qword [rsp + 0xa0], rsi
mov r12, rsi
mov qword [rsp + 0x78], rsi
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov qword [rsp + 0x98], rax
test rax, rax
je 0x140070dc9
mov rcx, qword [rsp + 0x58]
lea edx, [rdi + 1]
mov r8d, r14d
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rsp + 0xa0], rax
test rax, rax
je 0x140070dc9
mov rcx, qword [rsp + 0x98]
mov rdx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x140070dc9
mov eax, dword [rsp + 0x6c]
lea r9d, [rdi + 1]
mov rdi, qword [rsp + 0x98]
xor r8d, r8d
mov dword [rsp + 0x40], 0xcc0020
xor edx, edx
mov dword [rsp + 0x38], eax
mov rcx, rdi
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x140070dc9
mov rcx, qword [rsp + 0xa0]
lea rax, [rsp + 0x158]
mov dword [rsp + 0x28], 8
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov rdx, rdi
call fcn.140070420
mov r12, rax
test rax, rax
je 0x140070dc9
mov r14d, dword [rsp + 0x90]
mov r9d, r14d
imul r9d, dword [rsp + 0x70]
movzx r8d, byte [rsp + 0x158]
test r8b, r8b
je 0x140070ab2
mov edi, esi
test r9d, r9d
jle 0x140070a88
cmp r9d, 0x10
jb 0x140070a88
mov ecx, r9d
and ecx, 0x8000000f
jge 0x140070a26
dec ecx
or ecx, 0xfffffff0
inc ecx
movdqa xmm2, xmmword [0x14011e700]
mov eax, r9d
sub eax, ecx
mov rcx, rsi
movsxd rdx, eax
lea rax, [r12 + 0x20]
nop
movdqu xmm0, xmmword [rax - 0x20]
lea rax, [rax + 0x40]
add edi, 0x10
movdqa xmm1, xmm2
add rcx, 0x10
andps xmm1, xmm0
movdqu xmmword [rax - 0x60], xmm1
movdqu xmm0, xmmword [rax - 0x50]
andps xmm0, xmm2
movdqu xmmword [rax - 0x50], xmm0
movdqu xmm1, xmmword [rax - 0x40]
andps xmm1, xmm2
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm0, xmmword [rax - 0x30]
andps xmm0, xmm2
movdqu xmmword [rax - 0x30], xmm0
cmp rcx, rdx
jl 0x140070a40
movsxd rcx, edi
movsxd rdx, r9d
cmp rcx, rdx
jge 0x140070ab9
mov eax, edx
sub eax, ecx
add edi, eax
nop dword [rax]
and dword [r12 + rcx*4], 0xf8f8f8f8
inc rcx
cmp rcx, rdx
jl 0x140070aa0
jmp 0x140070ab9
mov edi, dword [rsp + 0x170]
cmp byte [rsp + 0x190], 0
je 0x140070b70
mov r8d, dword [r12]
and r8d, 0xffffff
cmp qword [rsp + 0xb0], 0
jne 0x140070af7
movzx ecx, r8w
movzx eax, r8b
and ecx, 0xffffff00
shl eax, 0x10
or ecx, eax
shr r8d, 0x10
or r8d, ecx
lea rdx, str.0x_06X
lea rcx, [rsp + 0xc0]
call fcn.140007350
mov rbp, qword [rsp + 0x80]
lea rdx, [rsp + 0xc0]
mov r15, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
mov r8, r15
mov rcx, rbp
xor r9d, r9d
call fcn.1400dc860
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
mov byte [rsp + 0x180], 1
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x140070e7a
mov ecx, dword [rsp + 0x54]
cmp ecx, 1
jge 0x140070c2b
mov r10d, dword [rsp + 0x168]
test r8b, r8b
je 0x140070b91
and r10d, 0xf8f8f8f8
test r9d, r9d
jle 0x140070c14
mov r11d, dword [rsp + 0x60]
lea r8d, [r9 - 1]
mov r13d, dword [rsp + 0x64]
cmp r13d, r11d
jle 0x140070bd0
cmp r15d, ebp
jle 0x140070bb7
mov edi, r8d
jmp 0x140070bee
mov eax, esi
cdq
idiv r14d
lea edi, [rax + 1]
mov eax, esi
cdq
imul edi, r14d
idiv r14d
sub edi, edx
dec edi
jmp 0x140070bee
cmp r15d, ebp
jle 0x140070bec
mov eax, r8d
cdq
idiv r14d
mov edi, eax
mov eax, esi
cdq
imul edi, r14d
idiv r14d
add edi, edx
jmp 0x140070bee
mov edi, esi
movsxd rax, edi
mov ecx, dword [r12 + rax*4]
and ecx, 0xffffff
cmp ecx, r10d
je 0x140070c0c
inc esi
dec r8d
cmp esi, r9d
jl 0x140070ba8
jmp 0x140070c14
mov byte [rsp + 0x180], 1
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdx, qword [rsp + 0x78]
jmp 0x140070e1f
mov edx, dword [rsp + 0x160]
test r8b, r8b
movzx r8d, byte [rsp + 0x170]
je 0x140070c4b
and r8b, 0xf8
and r13b, 0xf8
and dl, 0xf8
movzx r10d, r8b
cmp ecx, r10d
jle 0x140070c5e
mov byte [rsp + 0x160], 0
jmp 0x140070c6f
movzx eax, r8b
mov byte [rsp + 0x50], cl
sub al, cl
mov byte [rsp + 0x160], al
movzx r11d, r13b
cmp ecx, r11d
jle 0x140070c82
mov byte [rsp + 0x168], 0
jmp 0x140070c91
movzx eax, r13b
sub al, byte [rsp + 0x50]
mov byte [rsp + 0x168], al
movzx eax, dl
mov dword [rsp + 0x70], eax
cmp ecx, eax
jle 0x140070ca6
mov byte [rsp + 0x158], 0
jmp 0x140070cb4
movzx eax, dl
sub al, byte [rsp + 0x50]
mov byte [rsp + 0x158], al
mov ecx, 0xff
mov eax, ecx
sub eax, r10d
mov r10d, dword [rsp + 0x54]
cmp r10d, eax
jle 0x140070cd1
mov byte [rsp + 0x170], cl
jmp 0x140070ce0
movzx eax, byte [rsp + 0x50]
add al, r8b
mov byte [rsp + 0x170], al
mov eax, ecx
sub eax, r11d
cmp r10d, eax
mov eax, dword [rsp + 0x50]
jle 0x140070cf4
movzx r11d, cl
jmp 0x140070cf8
lea r11d, [rax + r13]
sub ecx, dword [rsp + 0x70]
cmp r10d, ecx
jle 0x140070d08
mov byte [rsp + 0x50], 0xff
jmp 0x140070d0e
add al, dl
mov dword [rsp + 0x50], eax
test r9d, r9d
jle 0x140070dd8
movzx r10d, byte [rsp + 0x170]
lea r8d, [r9 - 1]
movzx r13d, byte [rsp + 0x158]
nop dword [rax]
mov eax, dword [rsp + 0x64]
cmp eax, dword [rsp + 0x60]
jle 0x140070d5d
cmp r15d, ebp
jle 0x140070d44
mov edi, r8d
jmp 0x140070d7b
mov eax, esi
cdq
idiv r14d
lea edi, [rax + 1]
mov eax, esi
cdq
imul edi, r14d
idiv r14d
sub edi, edx
dec edi
jmp 0x140070d7b
cmp r15d, ebp
jle 0x140070d79
mov eax, r8d
cdq
idiv r14d
mov edi, eax
mov eax, esi
cdq
imul edi, r14d
idiv r14d
add edi, edx
jmp 0x140070d7b
mov edi, esi
movsxd rax, edi
mov edx, dword [r12 + rax*4]
mov ecx, edx
movzx eax, dx
shr ecx, 0x10
shr ax, 8
cmp cl, byte [rsp + 0x160]
jb 0x140070db9
cmp cl, r10b
ja 0x140070db9
cmp al, byte [rsp + 0x168]
jb 0x140070db9
cmp al, r11b
ja 0x140070db9
cmp dl, r13b
jb 0x140070db9
cmp dl, byte [rsp + 0x50]
jbe 0x140070c0c
inc esi
dec r8d
cmp esi, r9d
jl 0x140070d30
jmp 0x140070dd8
mov r14d, dword [rsp + 0x90]
mov edi, dword [rsp + 0x170]
mov rax, qword [rsp + 0x78]
xor ecx, ecx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x78], rax
call qword [sym.imp.USER32.dll_ReleaseDC]
cmp qword [rsp + 0x98], 0
je 0x140070e6b
mov rdx, qword [rsp + 0x78]
xor sil, sil
mov rax, qword [rsp + 0xa0]
mov byte [rsp + 0x180], sil
mov qword [rsp + 0xa0], rax
test rdx, rdx
je 0x140070e4c
mov rcx, qword [rsp + 0x98]
mov r15, 0xffffffffffffffff
mov rbp, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x140070e7a
mov rcx, qword [rsp + 0x98]
mov r15, 0xffffffffffffffff
mov rbp, qword [rsp + 0x80]
call qword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x140070e7a
mov rbp, qword [rsp + 0x80]
mov r15, 0xffffffffffffffff
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x140070e90
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
test r12, r12
je 0x140071200
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp byte [rsp + 0x190], 0
movzx esi, byte [rsp + 0x180]
jne 0x140070f01
test sil, sil
je 0x140070f01
test rbp, rbp
je 0x140070ed8
mov eax, edi
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
mov rcx, rbp
idiv r14d
sub edx, ebx
add edx, dword [rsp + 0x68]
movsxd rdx, edx
call fcn.1400015a0
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x140070f01
mov eax, edi
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv r14d
sub eax, dword [rsp + 0x8c]
add eax, dword [rsp + 0x6c]
movsxd rdx, eax
call fcn.1400015a0
mov rcx, qword [0x140132a80]
lea rdx, [0x1400f98c8]
test sil, sil
mov byte [rsp + 0x20], 1
lea rax, [0x14011026c]
mov r8, r15
cmovne rax, rdx
xor r9d, r9d
mov rdx, rax
call fcn.1400dc860
jmp 0x140071267
mov r11d, dword [rsp + 0x54]
test r11d, r11d
jle 0x140071014
movzx edx, byte [rsp + 0x170]
mov edi, dword [rsp + 0x50]
cmp r11d, edx
jle 0x140070f5e
mov byte [rsp + 0x190], 0
jmp 0x140070f6b
movzx eax, dl
sub al, dil
mov byte [rsp + 0x190], al
movzx r9d, r13b
cmp r11d, r9d
jle 0x140070f7e
mov byte [rsp + 0x170], 0
jmp 0x140070f8c
movzx eax, r13b
sub al, dil
mov byte [rsp + 0x170], al
mov ecx, dword [rsp + 0x160]
movzx r10d, cl
cmp r11d, r10d
jle 0x140070fa6
mov byte [rsp + 0x160], 0
jmp 0x140070fb5
movzx r14d, cl
sub r14b, dil
mov byte [rsp + 0x160], r14b
mov eax, r12d
sub eax, edx
cmp r11d, eax
jle 0x140070fc9
mov byte [rsp + 0x180], r12b
jmp 0x140070fd3
lea eax, [rdx + rdi]
mov byte [rsp + 0x180], al
mov eax, r12d
sub eax, r9d
cmp r11d, eax
jle 0x140070fe8
mov byte [rsp + 0x158], r12b
jmp 0x140070ff3
lea eax, [rdi + r13]
mov byte [rsp + 0x158], al
mov r13d, dword [rsp + 0x54]
sub r12d, r10d
mov r9, qword [rsp + 0x58]
cmp r13d, r12d
jle 0x14007100a
mov r12b, 0xff
jmp 0x14007106d
mov r12d, dword [rsp + 0x50]
add r12b, cl
jmp 0x14007106d
movzx eax, byte [rsp + 0x190]
mov r13d, dword [rsp + 0x54]
mov byte [rsp + 0x190], al
movzx eax, byte [rsp + 0x190]
movzx r12d, byte [rsp + 0x190]
mov byte [rsp + 0x170], al
movzx eax, byte [rsp + 0x190]
mov byte [rsp + 0x160], al
movzx eax, byte [rsp + 0x190]
mov byte [rsp + 0x180], al
movzx eax, byte [rsp + 0x190]
mov byte [rsp + 0x158], al
mov edx, dword [rsp + 0x64]
mov r8, 0xffffffffffffffff
mov ecx, dword [rsp + 0x60]
mov r14d, edx
nop
mov eax, esi
cmp edx, ecx
jle 0x14007108e
cmp r14d, ecx
setge al
jmp 0x140071094
cmp r14d, ecx
setle al
test eax, eax
je 0x1400711ca
mov edi, r15d
nop
mov eax, esi
cmp r15d, ebp
jle 0x1400710ae
cmp edi, ebp
setge al
jmp 0x1400710b3
cmp edi, ebp
setle al
test eax, eax
je 0x1400711af
mov r8d, edi
mov edx, r14d
mov rcx, r9
call qword [sym.imp.GDI32.dll_GetPixel]
cmp r13d, 1
jge 0x14007114e
cmp eax, dword [rsp + 0x178]
jne 0x140071190
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rbp, qword [rsp + 0x80]
test rbp, rbp
je 0x140071108
sub r14d, ebx
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, r14d
mov rcx, rbp
call fcn.1400015a0
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x140071127
sub edi, dword [rsp + 0x8c]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, edi
call fcn.1400015a0
mov rcx, qword [0x140132a80]
lea rdx, [0x1400f98c8]
xor r9d, r9d
mov byte [rsp + 0x20], 1
mov r8, 0xffffffffffffffff
call fcn.1400dc860
jmp 0x140071267
movzx ecx, ax
mov edx, eax
shr cx, 8
shr edx, 0x10
cmp al, byte [rsp + 0x190]
jb 0x140071190
cmp al, byte [rsp + 0x180]
ja 0x140071190
cmp cl, byte [rsp + 0x170]
jb 0x140071190
cmp cl, byte [rsp + 0x158]
ja 0x140071190
cmp dl, byte [rsp + 0x160]
jb 0x140071190
cmp dl, r12b
jbe 0x1400710dd
mov r9, qword [rsp + 0x58]
cmp r15d, ebp
mov eax, 1
mov r8, 0xffffffffffffffff
cmovg eax, r8d
add edi, eax
jmp 0x1400710a0
mov ecx, dword [rsp + 0x60]
mov eax, 1
mov edx, dword [rsp + 0x64]
cmp edx, ecx
cmovg eax, r8d
add r14d, eax
jmp 0x140071080
mov rdx, r9
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rcx, qword [0x140132a80]
lea rdx, [0x14011026c]
xor r9d, r9d
mov byte [rsp + 0x20], 1
mov r8, 0xffffffffffffffff
call fcn.1400dc860
jmp 0x140071267
mov r15, 0xffffffffffffffff
cmp byte [rsp + 0x190], 0
lea rax, [0x14011026c]
lea rdx, [0x1401107d4]
cmovne rdx, rax
cmp word [rdx], 0x30
jne 0x140071227
cmp word [rdx + 2], 0
je 0x140071237
mov rax, qword [0x14012f240]
test byte [rax + 0x140], 1
jne 0x140071250
mov rcx, qword [0x140132a80]
xor r9d, r9d
mov r8, r15
mov byte [rsp + 0x20], 1
call fcn.1400dc860
jmp 0x140071267
mov rcx, qword [rsp + 0x150]
lea r9, [0x1400f97e4]
xor r8d, r8d
call fcn.140063d20
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret