Function at 0x14005eed0
Capabilities:
Capture screenshot

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x100
movzx esi, byte [rsp + 0x180]
mov edi, r9d
mov rbx, qword [rsp + 0x178]
mov ebp, r8d
mov r14d, edx
mov r15, rcx
test sil, sil
jne 0x14005ef23
lea rdx, str.Fast
mov rcx, rbx
call fcn.1400c1b50
mov byte [rsp + 0x148], sil
test rax, rax
je 0x14005ef2b
mov byte [rsp + 0x148], 1
lea rdx, [0x14012bc78]
mov rcx, rbx
call fcn.1400c1b50
mov r12d, dword [rsp + 0x168]
test rax, rax
mov ecx, r12d
movzx r8d, r12w
setne byte [rsp + 0x150]
shr ecx, 0x10
movzx edx, cl
and r8d, 0xffffff00
or r8d, edx
movzx ecx, r12b
shl ecx, 0x10
or r8d, ecx
test rax, rax
je 0x14005ef85
mov dword [rsp + 0x60], r12d
mov r12d, r8d
mov dword [rsp + 0x168], r8d
jmp 0x14005ef8a
mov dword [rsp + 0x60], r8d
mov rax, qword [0x14014c6e0]
mov qword [rsp + 0x78], rax
test sil, sil
je 0x14005efa1
xor esi, esi
mov ebx, esi
jmp 0x14005efb2
xor esi, esi
cmp byte [r15 + 1], 1
mov ebx, esi
cmova rbx, qword [0x14014c6e8]
mov qword [rsp + 0xa0], rbx
mov rcx, 0xffffffffffffffff
test rax, rax
je 0x14005efe2
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rax
xor r9d, r9d
xor edx, edx
call fcn.1400c6a70
mov rcx, 0xffffffffffffffff
test rbx, rbx
je 0x14005effc
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rbx
xor r9d, r9d
xor edx, edx
call fcn.1400c6a70
xor r8d, r8d
mov qword [rsp + 0xf8], r13
lea rdx, [rsp + 0x8c]
mov qword [rsp + 0x88], rsi
lea rcx, [rsp + 0x88]
call fcn.1400c2dd0
mov r8d, dword [rsp + 0x8c]
mov rbx, qword [rsp + 0x88]
lea r15d, [r8 + rbp]
mov ebp, dword [rsp + 0x160]
add ebp, r8d
lea edx, [rbx + r14]
lea ecx, [rbx + rdi]
mov dword [rsp + 0x6c], edx
cmp edx, ecx
mov dword [rsp + 0x68], ecx
mov eax, ecx
mov edi, edx
cmovle eax, edx
cmovle edi, ecx
mov dword [rsp + 0x80], eax
cmp r15d, ebp
mov eax, ebp
mov r14d, r15d
cmovle eax, r15d
cmovle r14d, ebp
mov dword [rsp + 0x50], eax
mov ecx, esi
mov eax, dword [rsp + 0x170]
test eax, eax
cmovns ecx, eax
mov eax, 0xff
mov dword [rsp + 0x158], ecx
cmp ecx, eax
jle 0x14005f0b2
mov dword [rsp + 0x158], eax
movzx r13d, r12b
mov eax, dword [rsp + 0x168]
shr r12w, 8
shr eax, 0x10
jmp 0x14005f0e5
test ecx, ecx
jle 0x14005f0cb
mov eax, dword [rsp + 0x168]
movzx r13d, r12b
shr r12w, 8
shr eax, 0x10
jmp 0x14005f0e5
movzx r13d, byte [rsp + 0x180]
movzx r12d, byte [rsp + 0x180]
movzx eax, byte [rsp + 0x180]
xor ecx, ecx
mov dword [rsp + 0x64], eax
mov word [rsp + 0x170], r12w
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x58], rax
mov r9, rax
test rax, rax
je 0x14005fa1e
cmp byte [rsp + 0x148], 0
je 0x14005f750
sub r14d, dword [rsp + 0x50]
mov rcx, rax
sub edi, dword [rsp + 0x80]
inc r14d
mov qword [rsp + 0x98], rsi
mov r12, rsi
mov qword [rsp + 0x70], rsi
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov qword [rsp + 0x90], rax
test rax, rax
je 0x14005f5fb
mov rcx, qword [rsp + 0x58]
lea edx, [rdi + 1]
mov r8d, r14d
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rsp + 0x98], rax
test rax, rax
je 0x14005f5fb
mov rcx, qword [rsp + 0x90]
mov rdx, rax
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14005f5fb
mov eax, dword [rsp + 0x50]
lea r9d, [rdi + 1]
mov rdi, qword [rsp + 0x90]
xor r8d, r8d
mov dword [rsp + 0x40], 0xcc0020
xor edx, edx
mov dword [rsp + 0x38], eax
mov rcx, rdi
mov eax, dword [rsp + 0x80]
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 0x14005f5fb
mov rcx, qword [rsp + 0x98]
lea rax, [rsp + 0x160]
mov dword [rsp + 0x28], 8
lea r9, [rsp + 0x84]
lea r8, [rsp + 0x148]
mov qword [rsp + 0x20], rax
mov rdx, rdi
call fcn.14005ec60
mov r12, rax
test rax, rax
je 0x14005f5fb
mov r14d, dword [rsp + 0x148]
mov r9d, r14d
imul r9d, dword [rsp + 0x84]
movzx r8d, byte [rsp + 0x160]
test r8b, r8b
je 0x14005f2f2
mov edi, esi
test r9d, r9d
jle 0x14005f2cc
cmp r9d, 0x10
jb 0x14005f2cc
mov ecx, r9d
and ecx, 0x8000000f
jge 0x14005f265
dec ecx
or ecx, 0xfffffff0
inc ecx
movdqa xmm2, xmmword [0x140131740]
mov eax, r9d
sub eax, ecx
mov rcx, rsi
movsxd rdx, eax
lea rax, [r12 + 0x20]
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x20]
lea rax, [rax + 0x40]
add edi, 0x10
movdqa xmm1, xmm2
add rcx, 0x10
pand xmm0, xmm2
movdqu xmmword [rax - 0x60], xmm0
movdqu xmm0, xmmword [rax - 0x50]
pand xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
pand xmm0, xmm2
movdqu xmmword [rax - 0x40], xmm0
movdqu xmm0, xmmword [rax - 0x30]
pand xmm0, xmm2
movdqu xmmword [rax - 0x30], xmm0
cmp rcx, rdx
jl 0x14005f280
movsxd rcx, edi
movsxd rdx, r9d
cmp rcx, rdx
jge 0x14005f2f9
mov eax, edx
sub eax, ecx
add edi, eax
nop dword [rax]
and dword [r12 + rcx*4], 0xf8f8f8f8
inc rcx
cmp rcx, rdx
jl 0x14005f2e0
jmp 0x14005f2f9
mov edi, dword [rsp + 0x180]
cmp byte [rsp + 0x180], 0
je 0x14005f3a7
mov r8d, dword [r12]
and r8d, 0xffffff
cmp byte [rsp + 0x150], 0
jne 0x14005f336
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 + 0xb0]
call fcn.140006310
mov rbp, qword [rsp + 0x78]
lea rdx, [rsp + 0xb0]
mov r15, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
mov r8, r15
mov rcx, rbp
xor r9d, r9d
call fcn.1400c6a70
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
mov sil, 1
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x14005f69b
mov eax, dword [rsp + 0x158]
cmp eax, 1
jge 0x14005f45b
mov r10d, dword [rsp + 0x60]
test r8b, r8b
je 0x14005f3c8
and r10d, 0xf8f8f8f8
test r9d, r9d
jle 0x14005f43c
mov r11d, dword [rsp + 0x68]
lea r8d, [r9 - 1]
mov r13d, dword [rsp + 0x6c]
nop dword [rax + rax]
cmp r13d, r11d
jle 0x14005f402
cmp r15d, ebp
jle 0x14005f3ef
mov edi, r8d
jmp 0x14005f420
mov eax, esi
cdq
idiv r14d
lea edi, [rax + 1]
imul edi, r14d
sub edi, edx
dec edi
jmp 0x14005f420
cmp r15d, ebp
jle 0x14005f41e
mov eax, r8d
cdq
idiv r14d
mov edi, eax
mov eax, esi
cdq
imul edi, r14d
idiv r14d
add edi, edx
jmp 0x14005f420
mov edi, esi
movsxd rax, edi
mov ecx, dword [r12 + rax*4]
and ecx, 0xffffff
cmp ecx, r10d
je 0x14005f456
inc esi
dec r8d
cmp esi, r9d
jl 0x14005f3e0
xor sil, sil
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdx, qword [rsp + 0x70]
jmp 0x14005f649
mov sil, 1
jmp 0x14005f43f
movzx ecx, word [rsp + 0x170]
test r8b, r8b
mov r8d, dword [rsp + 0x64]
je 0x14005f478
and r13b, 0xf8
and cl, 0xf8
and r8b, 0xf8
movzx r11d, r13b
movzx r10d, al
cmp eax, r11d
jle 0x14005f48f
mov byte [rsp + 0x160], 0
jmp 0x14005f49d
movzx eax, r13b
sub al, r10b
mov byte [rsp + 0x160], al
movzx edx, cl
movzx eax, cl
sub al, r10b
mov dword [rsp + 0x84], edx
cmp dword [rsp + 0x158], edx
mov edx, esi
movzx eax, al
cmovle edx, eax
mov dword [rsp + 0x148], esi
mov dword [rsp + 0x148], edx
movzx eax, r8b
sub al, r10b
movzx edx, r8b
cmp dword [rsp + 0x158], edx
mov dword [rsp + 0x60], edx
mov edx, esi
movzx eax, al
cmovle edx, eax
mov dword [rsp + 0x150], esi
mov dword [rsp + 0x150], edx
mov edx, 0xff
mov eax, edx
sub eax, r11d
mov r11d, dword [rsp + 0x158]
cmp r11d, eax
jle 0x14005f513
movzx r13d, dl
jmp 0x14005f516
add r13d, r10d
mov eax, edx
sub eax, dword [rsp + 0x84]
cmp r11d, eax
jle 0x14005f52a
movzx r11d, dl
jmp 0x14005f52e
lea r11d, [rcx + r10]
sub edx, dword [rsp + 0x60]
cmp dword [rsp + 0x158], edx
jle 0x14005f540
mov r10b, 0xff
jmp 0x14005f543
add r10b, r8b
test r9d, r9d
jle 0x14005f60a
lea r8d, [r9 - 1]
mov eax, dword [rsp + 0x6c]
cmp eax, dword [rsp + 0x68]
jle 0x14005f577
cmp r15d, ebp
jle 0x14005f564
mov edi, r8d
jmp 0x14005f595
mov eax, esi
cdq
idiv r14d
lea edi, [rax + 1]
imul edi, r14d
sub edi, edx
dec edi
jmp 0x14005f595
cmp r15d, ebp
jle 0x14005f593
mov eax, r8d
cdq
idiv r14d
mov edi, eax
mov eax, esi
cdq
imul edi, r14d
idiv r14d
add edi, edx
jmp 0x14005f595
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 0x14005f5d6
cmp cl, r13b
ja 0x14005f5d6
cmp al, byte [rsp + 0x148]
jb 0x14005f5d6
cmp al, r11b
ja 0x14005f5d6
cmp dl, byte [rsp + 0x150]
jb 0x14005f5d6
cmp dl, r10b
jbe 0x14005f456
inc esi
dec r8d
cmp esi, r9d
jl 0x14005f550
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdx, qword [rsp + 0x70]
xor sil, sil
jmp 0x14005f649
mov r14d, dword [rsp + 0x148]
mov edi, dword [rsp + 0x180]
mov rax, qword [rsp + 0x70]
xor ecx, ecx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x70], rax
call qword [sym.imp.USER32.dll_ReleaseDC]
xor sil, sil
cmp qword [rsp + 0x90], 0
je 0x14005f68f
mov rdx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], rax
test rdx, rdx
je 0x14005f673
mov rcx, qword [rsp + 0x90]
mov r15, 0xffffffffffffffff
mov rbp, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x14005f69b
mov rcx, qword [rsp + 0x90]
mov r15, 0xffffffffffffffff
mov rbp, qword [rsp + 0x78]
call qword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x14005f69b
mov rbp, qword [rsp + 0x78]
mov r15, 0xffffffffffffffff
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x14005f6b1
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
test r12, r12
je 0x14005fa25
mov rcx, r12
call fcn.1400e89fc
cmp byte [rsp + 0x180], 0
jne 0x14005f71c
test sil, sil
je 0x14005f71c
test rbp, rbp
je 0x14005f6f3
mov eax, edi
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
mov rcx, rbp
idiv r14d
sub edx, ebx
add edx, dword [rsp + 0x80]
movsxd rdx, edx
call fcn.140001470
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x14005f71c
mov eax, edi
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv r14d
sub eax, dword [rsp + 0x8c]
add eax, dword [rsp + 0x50]
movsxd rdx, eax
call fcn.140001470
mov rcx, qword [0x14014a3b0]
lea rdx, [0x14010d31c]
test sil, sil
mov byte [rsp + 0x20], 1
lea rax, [0x14012296c]
mov r8, r15
cmovne rax, rdx
xor r9d, r9d
mov rdx, rax
call fcn.1400c6a70
jmp 0x14005fa8c
mov r11d, dword [rsp + 0x158]
test r11d, r11d
jle 0x14005f847
movzx r8d, r13b
movzx edi, r11b
mov byte [rsp + 0x148], r11b
cmp r11d, r8d
jle 0x14005f780
mov byte [rsp + 0x180], 0
jmp 0x14005f78e
movzx eax, r13b
sub al, r11b
mov byte [rsp + 0x180], al
mov edx, dword [rsp + 0x64]
movzx eax, r12b
sub al, dil
movzx r9d, r12b
movzx eax, al
cmp r11d, r9d
mov ecx, esi
movzx r10d, dl
cmovle ecx, eax
mov r14d, esi
movzx eax, dl
mov dword [rsp + 0x150], ecx
sub al, dil
mov ecx, 0xff
movzx eax, al
cmp r11d, r10d
cmovle r14d, eax
mov eax, ecx
sub eax, r8d
mov dword [rsp + 0x50], r14d
cmp r11d, eax
jle 0x14005f7e3
mov byte [rsp + 0x160], cl
jmp 0x14005f7ee
lea eax, [rdi + r13]
mov byte [rsp + 0x160], al
mov r13d, dword [rsp + 0x158]
mov eax, ecx
sub eax, r9d
cmp r13d, eax
jle 0x14005f809
mov byte [rsp + 0x170], cl
jmp 0x14005f814
lea eax, [r12 + rdi]
mov byte [rsp + 0x170], al
mov r9, qword [rsp + 0x58]
sub ecx, r10d
cmp r13d, ecx
jle 0x14005f826
mov r12b, 0xff
jmp 0x14005f8a0
movzx r12d, byte [rsp + 0x148]
mov ecx, dword [rsp + 0x150]
add r12b, dl
mov dword [rsp + 0x150], ecx
mov dword [rsp + 0x50], r14d
jmp 0x14005f8a0
movzx eax, byte [rsp + 0x180]
mov r13d, dword [rsp + 0x158]
mov byte [rsp + 0x180], al
movzx eax, byte [rsp + 0x180]
movzx r12d, byte [rsp + 0x180]
mov dword [rsp + 0x150], eax
movzx eax, byte [rsp + 0x180]
mov dword [rsp + 0x50], eax
movzx eax, byte [rsp + 0x180]
mov byte [rsp + 0x160], al
movzx eax, byte [rsp + 0x180]
mov byte [rsp + 0x170], al
mov edx, dword [rsp + 0x6c]
mov r8, 0xffffffffffffffff
mov ecx, dword [rsp + 0x68]
mov r14d, edx
mov eax, esi
cmp edx, ecx
jle 0x14005f8c0
cmp r14d, ecx
setge al
jmp 0x14005f8c6
cmp r14d, ecx
setle al
test eax, eax
je 0x14005f9f2
mov edi, r15d
mov eax, esi
cmp r15d, ebp
jle 0x14005f8df
cmp edi, ebp
setge al
jmp 0x14005f8e4
cmp edi, ebp
setle al
test eax, eax
je 0x14005f9d7
mov r8d, edi
mov edx, r14d
mov rcx, r9
call qword [sym.imp.GDI32.dll_GetPixel]
cmp r13d, 1
jge 0x14005f979
cmp eax, dword [rsp + 0x168]
jne 0x14005f9b8
mov rdx, qword [rsp + 0x58]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rbp, qword [rsp + 0x78]
test rbp, rbp
je 0x14005f936
sub r14d, ebx
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, r14d
mov rcx, rbp
call fcn.140001470
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x14005f955
sub edi, dword [rsp + 0x8c]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, edi
call fcn.140001470
mov rcx, qword [0x14014a3b0]
lea rdx, [0x14010d31c]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c6a70
jmp 0x14005fa8c
movzx ecx, ax
mov edx, eax
shr cx, 8
shr edx, 0x10
cmp al, byte [rsp + 0x180]
jb 0x14005f9b8
cmp al, byte [rsp + 0x160]
ja 0x14005f9b8
cmp cl, byte [rsp + 0x150]
jb 0x14005f9b8
cmp cl, byte [rsp + 0x170]
ja 0x14005f9b8
cmp dl, byte [rsp + 0x50]
jb 0x14005f9b8
cmp dl, r12b
jbe 0x14005f90e
mov r9, qword [rsp + 0x58]
cmp r15d, ebp
mov eax, 1
mov r8, 0xffffffffffffffff
cmovg eax, r8d
add edi, eax
jmp 0x14005f8d1
mov ecx, dword [rsp + 0x68]
mov eax, 1
mov edx, dword [rsp + 0x6c]
cmp edx, ecx
cmovg eax, r8d
add r14d, eax
jmp 0x14005f8b2
mov rdx, r9
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rcx, qword [0x14014a3b0]
lea rdx, [0x14012296c]
xor r9d, r9d
mov byte [rsp + 0x20], 1
lea r8, [r9 - 1]
call fcn.1400c6a70
jmp 0x14005fa8c
mov r15, 0xffffffffffffffff
cmp byte [rsp + 0x180], 0
lea rax, [0x14012296c]
lea rdx, [0x140122ed4]
cmovne rdx, rax
cmp word [rdx], 0x30
jne 0x14005fa4c
cmp word [rdx + 2], 0
je 0x14005fa5c
mov rax, qword [0x140145a80]
test byte [rax + 0x140], 1
jne 0x14005fa75
mov rcx, qword [0x14014a3b0]
xor r9d, r9d
mov r8, r15
mov byte [rsp + 0x20], 1
call fcn.1400c6a70
jmp 0x14005fa8c
mov rcx, qword [rsp + 0x140]
lea r9, [0x14010d28c]
xor r8d, r8d
call fcn.140050010
mov r13, qword [rsp + 0xf8]
add rsp, 0x100
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret