Function at 0x1400455b0
Capabilities:
Capture screenshot

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x100
movzx edi, byte [rsp + 0x180]
mov esi, r9d
mov rbx, qword [rsp + 0x178]
mov ebp, r8d
mov r15d, edx
mov r12, rcx
test dil, dil
jne 0x140045600
lea rdx, str.Fast
mov rcx, rbx
call fcn.14008b980
test rax, rax
jne 0x140045600
xor r13b, r13b
jmp 0x140045603
mov r13b, 1
lea rdx, [0x1400eab30]
mov qword [rsp + 0xf8], r14
mov rcx, rbx
call fcn.14008b980
test rax, rax
setne al
mov byte [rsp + 0x148], al
test al, al
je 0x140045657
mov r14d, dword [rsp + 0x168]
movzx eax, r14w
shr ax, 8
movzx edx, al
mov eax, r14d
shr eax, 0x10
movzx ecx, al
shl edx, 8
movzx eax, r14b
or edx, ecx
shl eax, 0x10
or edx, eax
jmp 0x140045681
mov edx, dword [rsp + 0x168]
movzx eax, dx
shr ax, 8
movzx r14d, al
mov eax, edx
shr eax, 0x10
movzx ecx, al
shl r14d, 8
movzx eax, dl
or r14d, ecx
shl eax, 0x10
or r14d, eax
mov rax, qword [0x1401080a0]
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x54], edx
test dil, dil
je 0x14004569c
xor edi, edi
mov ebx, edi
jmp 0x1400456ae
xor edi, edi
cmp byte [r12 + 1], 1
mov ebx, edi
cmova rbx, qword [0x1401080a8]
or rcx, 0xffffffffffffffff
mov qword [rsp + 0x90], rbx
test rax, rax
je 0x1400456d8
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rax
xor r9d, r9d
xor edx, edx
call fcn.14008ec90
or rcx, 0xffffffffffffffff
test rbx, rbx
je 0x1400456f2
mov r8, rcx
mov byte [rsp + 0x20], 1
mov rcx, rbx
xor r9d, r9d
xor edx, edx
call fcn.14008ec90
xor r8d, r8d
mov qword [rsp + 0x70], 0
lea rdx, [rsp + 0x74]
lea rcx, [rsp + 0x70]
call fcn.14008cc80
mov eax, dword [rsp + 0x70]
mov r8d, dword [rsp + 0x74]
lea ecx, [rax + rsi]
mov esi, dword [rsp + 0x160]
lea edx, [rax + r15]
mov dword [rsp + 0x60], ecx
add esi, r8d
mov dword [rsp + 0x64], edx
mov dword [rsp + 0x58], edx
lea r15d, [r8 + rbp]
mov dword [rsp + 0x5c], r15d
mov ebp, ecx
mov ebx, esi
cmp edx, ecx
jle 0x14004574a
mov dword [rsp + 0x58], ecx
mov ebp, edx
cmp r15d, esi
jle 0x140045756
mov dword [rsp + 0x5c], esi
mov ebx, r15d
mov r12d, dword [rsp + 0x170]
mov eax, 0xff
test r12d, r12d
jns 0x140045982
mov r12d, edi
movzx eax, byte [rsp + 0x180]
movzx ecx, byte [rsp + 0x180]
mov byte [rsp + 0x160], al
movzx eax, byte [rsp + 0x180]
mov word [rsp + 0x150], cx
xor ecx, ecx
mov dword [rsp + 0x50], eax
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x78], rax
mov r9, rax
test rax, rax
je 0x140046043
mov byte [rsp + 0x158], 0
test r13b, r13b
je 0x140045d83
sub ebx, dword [rsp + 0x5c]
mov rcx, rax
sub ebp, dword [rsp + 0x58]
inc ebx
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0xa0], rdi
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov qword [rsp + 0x98], rax
test rax, rax
je 0x140045c76
mov rcx, qword [rsp + 0x78]
lea edx, [rbp + 1]
mov r8d, ebx
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rsp + 0x80], rax
test rax, rax
je 0x140045c76
mov r13, qword [rsp + 0x98]
mov rdx, rax
mov rcx, r13
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0xa0], rax
test rax, rax
je 0x140045c76
mov eax, dword [rsp + 0x5c]
lea r9d, [rbp + 1]
mov dword [rsp + 0x40], 0xcc0020
xor r8d, r8d
mov dword [rsp + 0x38], eax
xor edx, edx
mov eax, dword [rsp + 0x58]
mov rcx, r13
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ebx
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x140045c76
mov rcx, qword [rsp + 0x80]
lea rax, [rsp + 0x170]
mov dword [rsp + 0x28], 8
lea r9, [rsp + 0x54]
lea r8, [rsp + 0x158]
mov qword [rsp + 0x20], rax
mov rdx, r13
call fcn.140045330
mov qword [rsp + 0x88], rax
mov r9, rax
test rax, rax
je 0x140045c76
mov ebp, dword [rsp + 0x158]
mov r13d, ebp
imul r13d, dword [rsp + 0x54]
movzx r8d, byte [rsp + 0x170]
test r8b, r8b
je 0x1400459b9
mov ebx, edi
test r13d, r13d
jle 0x140045957
cmp r13d, 8
jb 0x140045957
mov ecx, r13d
and ecx, 0x80000007
jge 0x14004590e
dec ecx
or ecx, 0xfffffff8
inc ecx
movdqa xmm2, xmmword [0x1400eebf0]
mov eax, r13d
sub eax, ecx
movsxd rcx, eax
mov rax, rdi
movdqu xmm0, xmmword [r9 + rax*4]
add ebx, 8
movdqa xmm1, xmm2
pand xmm1, xmm0
movdqu xmmword [r9 + rax*4], xmm1
movdqu xmm0, xmmword [r9 + rax*4 + 0x10]
movdqa xmm1, xmm2
pand xmm1, xmm0
movdqu xmmword [r9 + rax*4 + 0x10], xmm1
add rax, 8
cmp rax, rcx
jl 0x140045921
movsxd rcx, ebx
movsxd rdx, r13d
cmp rcx, rdx
jge 0x1400459c0
mov eax, edx
sub eax, ecx
add ebx, eax
nop dword [rax + rax]
and dword [r9 + rcx*4], 0xf8f8f8f8
inc rcx
cmp rcx, rdx
jl 0x140045970
jmp 0x1400459c0
cmp r12d, eax
jle 0x14004598c
mov r12d, eax
jmp 0x140045995
test r12d, r12d
jle 0x14004576f
mov ecx, dword [rsp + 0x54]
movzx eax, cx
shr ax, 8
mov word [rsp + 0x150], ax
mov eax, ecx
shr eax, 0x10
mov byte [rsp + 0x160], cl
jmp 0x140045796
mov ebx, dword [rsp + 0x180]
cmp byte [rsp + 0x180], 0
je 0x140045a42
mov r8d, dword [r9]
and r8d, 0xffffff
cmp byte [rsp + 0x148], 0
jne 0x140045a02
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 + 0xb0]
call fcn.140004f40
mov r14, qword [rsp + 0x68]
lea rdx, [rsp + 0xb0]
or r15, 0xffffffffffffffff
mov byte [rsp + 0x20], 1
mov r8, r15
mov rcx, r14
xor r9d, r9d
call fcn.14008ec90
mov sil, 1
jmp 0x140045c90
cmp r12d, 1
jge 0x140045adf
test r8b, r8b
je 0x140045a58
and r14d, 0xf8f8f8f8
test r13d, r13d
jle 0x140045c84
lea r8d, [r13 - 1]
nop word [rax + rax]
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x64]
cmp ecx, eax
jle 0x140045a9b
cmp r15d, esi
jle 0x140045a86
mov ebx, r8d
jmp 0x140045ab6
cmp ecx, eax
jle 0x140045a9b
mov eax, edi
cdq
idiv ebp
lea ebx, [rax + 1]
imul ebx, ebp
sub ebx, edx
dec ebx
jmp 0x140045ab6
cmp r15d, esi
jle 0x140045ab4
mov eax, r8d
cdq
idiv ebp
mov ebx, eax
mov eax, edi
cdq
imul ebx, ebp
idiv ebp
add ebx, edx
jmp 0x140045ab6
mov ebx, edi
movsxd rax, ebx
mov ecx, dword [r9 + rax*4]
and ecx, 0xffffff
cmp ecx, r14d
je 0x140045ad7
inc edi
dec r8d
cmp edi, r13d
jl 0x140045a70
jmp 0x140045c84
mov sil, 1
jmp 0x140045c87
movzx r9d, byte [rsp + 0x160]
movzx r10d, word [rsp + 0x150]
mov r14d, dword [rsp + 0x50]
test r8b, r8b
je 0x140045b07
and r9b, 0xf8
and r10b, 0xf8
and r14b, 0xf8
movzx ecx, r9b
cmp r12d, ecx
jle 0x140045b1a
mov byte [rsp + 0x150], 0
jmp 0x140045b28
movzx eax, r9b
sub al, r12b
mov byte [rsp + 0x150], al
movzx edx, r10b
cmp r12d, edx
jle 0x140045b3b
mov byte [rsp + 0x148], 0
jmp 0x140045b49
movzx eax, r10b
sub al, r12b
mov byte [rsp + 0x148], al
movzx r8d, r14b
cmp r12d, r8d
jle 0x140045b5c
mov byte [rsp + 0x170], 0
jmp 0x140045b6a
movzx eax, r14b
sub al, r12b
mov byte [rsp + 0x170], al
mov r11d, 0xff
mov eax, r11d
sub eax, ecx
cmp r12d, eax
jle 0x140045b84
mov byte [rsp + 0x160], r11b
jmp 0x140045b8f
lea ecx, [r9 + r12]
mov byte [rsp + 0x160], cl
mov eax, r11d
sub eax, edx
cmp r12d, eax
jle 0x140045b9f
movzx r9d, r11b
jmp 0x140045ba3
lea r9d, [r10 + r12]
sub r11d, r8d
cmp r12d, r11d
jle 0x140045bb0
mov r12b, 0xff
jmp 0x140045bb3
add r12b, r14b
test r13d, r13d
jle 0x140045c84
movzx r10d, byte [rsp + 0x160]
lea r8d, [r13 - 1]
movzx r11d, byte [rsp + 0x170]
movzx r14d, byte [rsp + 0x148]
nop dword [rax + rax]
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x64]
cmp ecx, eax
jle 0x140045c0b
cmp r15d, esi
jle 0x140045bf6
mov ebx, r8d
jmp 0x140045c26
cmp ecx, eax
jle 0x140045c0b
mov eax, edi
cdq
idiv ebp
lea ebx, [rax + 1]
imul ebx, ebp
sub ebx, edx
dec ebx
jmp 0x140045c26
cmp r15d, esi
jle 0x140045c24
mov eax, r8d
cdq
idiv ebp
mov ebx, eax
mov eax, edi
cdq
imul ebx, ebp
idiv ebp
add ebx, edx
jmp 0x140045c26
mov ebx, edi
mov rcx, qword [rsp + 0x88]
movsxd rax, ebx
mov edx, dword [rcx + rax*4]
mov ecx, edx
movzx eax, dx
shr ecx, 0x10
shr ax, 8
cmp cl, byte [rsp + 0x150]
jb 0x140045c66
cmp cl, r10b
ja 0x140045c66
cmp al, r14b
jb 0x140045c66
cmp al, r9b
ja 0x140045c66
cmp dl, r11b
jb 0x140045c66
cmp dl, r12b
jbe 0x140045ad7
inc edi
dec r8d
cmp edi, r13d
jl 0x140045be0
jmp 0x140045c84
mov ebp, dword [rsp + 0x158]
mov ebx, dword [rsp + 0x180]
xor sil, sil
mov r14, qword [rsp + 0x68]
or r15, 0xffffffffffffffff
mov rdx, qword [rsp + 0x78]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov rdi, qword [rsp + 0x98]
test rdi, rdi
je 0x140045ccc
mov rax, qword [rsp + 0xa0]
test rax, rax
je 0x140045cc3
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 + 0x80]
test rax, rax
je 0x140045ce2
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x140046047
mov rcx, rax
call fcn.1400adb8c
cmp byte [rsp + 0x180], 0
jne 0x140045d4f
test sil, sil
je 0x140045d4f
test r14, r14
je 0x140045d2a
mov eax, ebx
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
mov rcx, r14
idiv ebp
sub edx, dword [rsp + 0x70]
add edx, dword [rsp + 0x58]
movsxd rdx, edx
call fcn.140001280
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x140045d4f
mov eax, ebx
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
cdq
idiv ebp
sub eax, dword [rsp + 0x74]
add eax, dword [rsp + 0x5c]
movsxd rdx, eax
call fcn.140001280
mov rcx, qword [0x140105d40]
lea rdx, [0x1400cffdc]
test sil, sil
mov byte [rsp + 0x20], 1
lea rax, [0x1400e352c]
mov r8, r15
cmovne rax, rdx
xor r9d, r9d
mov rdx, rax
call fcn.14008ec90
jmp 0x1400460ae
test r12d, r12d
jle 0x140045e61
movzx r9d, byte [rsp + 0x160]
mov ecx, r9d
cmp r12d, r9d
jle 0x140045da7
mov byte [rsp + 0x180], 0
jmp 0x140045db5
movzx eax, r9b
sub al, r12b
mov byte [rsp + 0x180], al
movzx r10d, word [rsp + 0x150]
movzx edx, r10b
cmp r12d, edx
jle 0x140045dd1
mov byte [rsp + 0x170], 0
jmp 0x140045ddf
movzx eax, r10b
sub al, r12b
mov byte [rsp + 0x170], al
mov ebx, dword [rsp + 0x50]
movzx r8d, bl
cmp r12d, r8d
jle 0x140045df6
mov byte [rsp + 0x150], 0
jmp 0x140045e05
movzx r14d, bl
sub r14b, r12b
mov byte [rsp + 0x150], r14b
mov r11d, 0xff
mov eax, r11d
sub eax, ecx
cmp r12d, eax
jle 0x140045e1f
mov byte [rsp + 0x160], r11b
jmp 0x140045e2a
lea ecx, [r9 + r12]
mov byte [rsp + 0x160], cl
mov eax, r11d
sub eax, edx
cmp r12d, eax
jle 0x140045e3e
mov byte [rsp + 0x148], r11b
jmp 0x140045e49
lea eax, [r10 + r12]
mov byte [rsp + 0x148], al
mov r9, qword [rsp + 0x78]
sub r11d, r8d
cmp r12d, r11d
jle 0x140045e5b
mov r13b, 0xff
jmp 0x140045eb5
lea r13d, [rbx + r12]
jmp 0x140045eb5
movzx eax, byte [rsp + 0x180]
mov byte [rsp + 0x180], al
movzx eax, byte [rsp + 0x180]
movzx r13d, byte [rsp + 0x180]
mov byte [rsp + 0x170], al
movzx eax, byte [rsp + 0x180]
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x180]
mov byte [rsp + 0x160], al
movzx eax, byte [rsp + 0x180]
mov byte [rsp + 0x148], al
mov edx, dword [rsp + 0x64]
or r8, 0xffffffffffffffff
mov ebx, dword [rsp + 0x180]
mov ebp, edx
mov r14d, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x60]
nop
mov eax, edi
cmp edx, ecx
jle 0x140045edd
cmp ebp, ecx
setge al
jmp 0x140045ee2
cmp ebp, ecx
setle al
test eax, eax
je 0x140045f30
mov ebx, r15d
nop dword [rax]
mov eax, edi
cmp r15d, esi
jle 0x140045efe
cmp ebx, esi
setge al
jmp 0x140045f03
cmp ebx, esi
setle al
test eax, eax
je 0x140045fd0
mov r8d, ebx
mov edx, ebp
mov rcx, r9
call qword [sym.imp.GDI32.dll_GetPixel]
cmp r12d, 1
jge 0x140045f6f
cmp eax, r14d
jne 0x140045fb1
mov byte [rsp + 0x158], 1
mov rdx, qword [rsp + 0x78]
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
cmp byte [rsp + 0x158], 0
jne 0x140045fea
mov rcx, qword [0x140105d40]
lea rdx, [0x1400e352c]
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
call fcn.14008ec90
jmp 0x1400460ae
movzx ecx, ax
mov edx, eax
shr cx, 8
shr edx, 0x10
cmp al, byte [rsp + 0x180]
jb 0x140045fb1
cmp al, byte [rsp + 0x160]
ja 0x140045fb1
cmp cl, byte [rsp + 0x170]
jb 0x140045fb1
cmp cl, byte [rsp + 0x148]
ja 0x140045fb1
cmp dl, byte [rsp + 0x150]
jb 0x140045fb1
cmp dl, r13b
jbe 0x140045f28
mov r9, qword [rsp + 0x78]
cmp r15d, esi
mov eax, 1
mov r8, 0xffffffffffffffff
cmovg eax, r8d
add ebx, eax
jmp 0x140045ef0
mov ecx, dword [rsp + 0x60]
mov eax, 1
mov edx, dword [rsp + 0x64]
cmp edx, ecx
cmovg eax, r8d
add ebp, eax
jmp 0x140045ed0
mov r14, qword [rsp + 0x68]
test r14, r14
je 0x140046006
sub ebp, dword [rsp + 0x70]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, ebp
mov rcx, r14
call fcn.140001280
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x140046022
sub ebx, dword [rsp + 0x74]
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
movsxd rdx, ebx
call fcn.140001280
mov rcx, qword [0x140105d40]
lea rdx, [0x1400cffdc]
xor r9d, r9d
mov byte [rsp + 0x20], 1
or r8, 0xffffffffffffffff
call fcn.14008ec90
jmp 0x1400460ae
or r15, 0xffffffffffffffff
cmp byte [rsp + 0x180], 0
lea rax, [0x1400e352c]
lea rdx, [0x1400e3ab4]
cmovne rdx, rax
cmp word [rdx], 0x30
jne 0x14004606e
cmp word [rdx + 2], 0
je 0x14004607e
mov rax, qword [0x140101a58]
test byte [rax + 0x140], 1
jne 0x140046097
mov rcx, qword [0x140105d40]
xor r9d, r9d
mov r8, r15
mov byte [rsp + 0x20], 1
call fcn.14008ec90
jmp 0x1400460ae
mov rcx, qword [rsp + 0x140]
lea r9, [0x1400cffcc]
xor r8d, r8d
call fcn.140038c10
mov r14, qword [rsp + 0xf8]
add rsp, 0x100
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret