Function at 0x140009900
Capabilities:
Capture screenshot

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x140
lea rbp, [rsp + 0x70]
and rbp, 0xffffffffffffffe0
mov rax, qword [0x14013c040]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov dword [rbp + 0x68], 1
xor r12d, r12d
mov qword [rbp + 0x70], r12
mov qword [rbp + 0x78], r12
xor r8d, r8d
lea rdx, [rbp + 0x68]
lea rcx, [rbp + 0x80]
call qword [sym.imp.gdiplus.dll_GdiplusStartup]
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetDC]
mov rdi, rax
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov r13d, eax
lea ecx, [r12 + 1]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov r15d, eax
mov dword [rbp], eax
mov rcx, rdi
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov rsi, rax
mov r8d, r15d
mov edx, r13d
mov rcx, rdi
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov rbx, rax
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.GDI32.dll_SelectObject]
mov r14, rax
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], r12d
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], r15d
mov r9d, r13d
xor r8d, r8d
xor edx, edx
mov rcx, rsi
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
jne 0x140009b05
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
movabs rax, 0x8d2efa58498035de
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0xd8510bb0858365a4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
movabs rax, 0x43ec52849780fdbf
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
movabs rax, 0x6071cd127622c6d2
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
movabs rax, 0xe24dda2a26f2479b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0xbb222bd7ebea1cd4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0x2d8331a4f9e598cd
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0x6071e361024ca3a6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
vmovdqu ymm0, ymmword [rbp + 0xa0]
vpxor ymm1, ymm0, ymmword [rbp + 0x20]
vmovdqa ymmword [rbp + 0x20], ymm1
lea rdx, [rbp + 0x20]
vzeroupper
call fcn.140005180
lea rdx, [0x140005360]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
nop dword [rax]
jmp 0x140009e67
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], rax
lea rax, vtable.Gdiplus::Bitmap.0
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x40], r12
lea r8, [rbp + 0x40]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.gdiplus.dll_GdipCreateBitmapFromHBITMAP]
mov rcx, qword ds:[rbp + 0x40]
mov qword [rbp + 0x58], rcx
mov dword [rbp + 0x60], r12d
test eax, eax
je 0x140009c6b
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
movabs rax, 0x902efa58498035de
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0xfc024cb9829e7db1
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
movabs rax, 0x40f758e6d9ced189
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
movabs rax, 0x6071e3610262d3c7
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
movabs rax, 0xe24dda2a26f2479b
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa0], rax
movabs rax, 0xbb222bd7ebea1cd4
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xa8], rax
movabs rax, 0x2d8331a4f9e598cd
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb0], rax
movabs rax, 0x6071e361024ca3a6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0xb8], rax
vmovdqu ymm0, ymmword [rbp + 0x20]
vpxor ymm1, ymm0, ymmword [rbp + 0xa0]
vmovdqa ymmword [rbp + 0x20], ymm1
lea rdx, [rbp + 0x20]
vzeroupper
call fcn.140005180
lea rdx, [0x140005360]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rdx, r14
mov rcx, rsi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x140009e52
mov rdx, r14
mov rcx, rsi
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, rsi
call qword [sym.imp.GDI32.dll_DeleteDC]
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.USER32.dll_ReleaseDC]
mov dword [rbp + 0x48], r12d
lea rdx, [rbp + 0x48]
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.gdiplus.dll_GdipGetImageWidth]
mov ecx, dword [rbp + 0x60]
test eax, eax
cmovne ecx, eax
mov dword [rbp + 0x60], ecx
mov dword [rbp + 0x40], r12d
lea rdx, [rbp + 0x40]
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.gdiplus.dll_GdipGetImageHeight]
mov ecx, dword [rbp + 0x60]
test eax, eax
cmovne ecx, eax
mov dword [rbp + 0x60], ecx
mov edi, r12d
mov dword [rbp + 0x4c], r12d
lea rdx, [rbp + 0x4c]
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.gdiplus.dll_GdipGetImageHeight]
mov ecx, dword [rbp + 0x60]
test eax, eax
cmovne ecx, eax
mov dword [rbp + 0x60], ecx
mov eax, dword [rbp + 0x4c]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movaps xmm0, xmm1
mulss xmm0, dword [0x140125a04]
cvttss2si r15, xmm0
mulss xmm1, dword [0x140125a5c]
cvttss2si r14, xmm1
mov esi, r12d
mov r12d, dword [rbp + 0x48]
test r12d, r12d
jle 0x140009d77
mov ebx, r15d
cmp r15d, r14d
jae 0x140009d70
lea r9, ds:[rbp + 0x48]
mov r8d, ebx
mov edx, esi
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.gdiplus.dll_GdipBitmapGetPixel]
test eax, eax
je 0x140009d4f
mov dword [rbp + 0x60], eax
jmp 0x140009d69
mov eax, dword [rbp + 0x48]
cmp eax, 0xff36b752
je 0x140009d67
nop dword [rax]
cmp eax, 0xff143d0b
jne 0x140009d69
inc edi
inc ebx
cmp ebx, r14d
jb 0x140009d30
inc esi
cmp esi, r12d
jl 0x140009d28
mov eax, dword [rbp + 0x40]
imul eax, r12d
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, dword [0x1401259c4]
cvttss2si eax, xmm0
cmp edi, eax
jle 0x140009e52
movd xmm0, r13d
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x140125ad0]
cvttsd2si edi, xmm0
movd xmm0, dword [rbp]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x140125ad0]
cvttsd2si esi, xmm0
xor r13d, r13d
mov ebx, r13d
test esi, esi
jle 0x140009e52
movabs r14, 0x7ffffffffa0a1eff
mov r12d, 0xff
movabs r15, 0x7fffffffffffffff
nop dword [rax]
mov edx, ebx
mov ecx, edi
call qword [sym.imp.USER32.dll_SetCursorPos]
mov qword [rsp + 0x20], r13
xor r9d, r9d
mov r8d, ebx
mov edx, edi
lea ecx, [r9 + 6]
call qword [sym.imp.USER32.dll_mouse_event]
lea rcx, [rbp + 0x40]
call fcn.140006020
mov rax, qword ds:[rbp + 0x40]
cmp rax, r14
je 0x140009e3e
mov ecx, 1
cmovl ecx, r12d
test cl, cl
jns 0x140009e3e
add rax, 0x5f5e100
mov qword [rbp], rax
jmp 0x140009e42
mov qword [rbp], r15
lea rcx, [rbp]
call fcn.140029c80
add ebx, 0x14
cmp ebx, esi
jl 0x140009df0
lea rax, vtable.Gdiplus::Image.0
mov qword [rbp + 0x50], rax
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.gdiplus.dll_GdipDisposeImage]
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.140096d90
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret