Function at 0x1400256d4
Capabilities:
Capture screenshot

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x138]
sub rsp, 0x200
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
mov rax, qword [0x140076010]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov rdi, r8
mov r12, rdx
mov qword [rsp + 0x58], rdx
mov rsi, rcx
xor r13d, r13d
cmp byte [rcx + 0x58], r13b
je 0x14002574d
test rdx, rdx
jne 0x14002574d
mov byte [rcx + 0x59], 1
jmp 0x14002606f
cmp qword [rcx + 0x20], r13
je 0x14002606f
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x14002576e
test r12, r12
je 0x14002606f
mov byte [rsi + 0x59], r13b
mov rbx, r13
cmp rdi, 2
jb 0x1400257a6
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreateRectRgn]
mov rbx, rax
mov r9d, 5
xor r8d, r8d
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.GDI32.dll_CombineRgn]
mov rdi, rbx
test r12, r12
je 0x1400257b0
mov r14, r12
jmp 0x1400257fa
mov rcx, qword [rsi + 8]
test rdi, rdi
je 0x1400257f0
mov edx, 0xfffffff0
call qword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x4000000
or eax, 0x20c00000
shr eax, 0x16
mov r8d, eax
mov rdx, rdi
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_GetDCEx]
jmp 0x1400257f7
call qword [sym.imp.USER32.dll_GetWindowDC]
nop
mov r14, rax
test r14, r14
jne 0x140025820
lea r9, str.Missing_DC_for_non_client_drawing
mov edx, 0x89b
mov ecx, 0x255e6c8
lea r8d, [r14 + 0xa]
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_1254]
jmp 0x140026060
xor edx, edx
mov rcx, r14
call qword [sym.imp.GDI32.dll_SetLayout]
mov r15d, eax
mov dword [rsp + 0x54], eax
lea rdi, [0x140049f58]
cmp eax, 0xffffffff
jne 0x14002588c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x70], rdi
lea rcx, str.HRESULT
mov qword [rsp + 0x78], rcx
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov dword [rbp - 0x80], ecx
mov word [rbp - 0x7c], r13w
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, str.SetLayoutFailure
mov qword [rsp + 0x20], rax
mov ecx, 0x255e6c9
call fcn.14002956c
nop
lea r9, [rbp - 0x28]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x58]
mov rcx, rsi
call fcn.1400246b0
test r12, r12
jne 0x140025946
mov r9d, dword [rbp - 0x18]
mov dword [rbp - 0x38], r9d
mov r8d, dword [rbp - 0x14]
mov dword [rbp - 0x34], r8d
mov eax, dword [rbp - 0x28]
mov dword [rbp - 0x30], eax
mov edx, dword [rbp - 0xc]
mov dword [rbp - 0x2c], edx
mov eax, dword [rbp - 0x20]
mov dword [rbp - 0x58], eax
mov dword [rbp - 0x54], r8d
mov ecx, dword [rbp - 0x10]
mov dword [rbp - 0x50], ecx
mov dword [rbp - 0x4c], edx
mov dword [rsp + 0x70], r9d
mov eax, dword [rbp - 0x1c]
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x7c], edx
mov dword [rbp - 0x48], r9d
mov dword [rbp - 0x44], r8d
mov dword [rbp - 0x40], ecx
mov eax, dword [rbp - 0x24]
mov dword [rbp - 0x3c], eax
lea rdx, [rbp - 0x38]
mov rcx, r14
call qword [sym.imp.GDI32.dll_RectVisible]
test eax, eax
jne 0x140025946
lea rdx, [rbp - 0x48]
mov rcx, r14
call qword [sym.imp.GDI32.dll_RectVisible]
test eax, eax
jne 0x140025946
lea rdx, [rbp - 0x58]
mov rcx, r14
call qword [sym.imp.GDI32.dll_RectVisible]
test eax, eax
jne 0x140025946
lea rdx, [rsp + 0x70]
mov rcx, r14
call qword [sym.imp.GDI32.dll_RectVisible]
test eax, eax
je 0x140026052
mov rcx, qword [rsi + 0x20]
test rcx, rcx
jne 0x140025965
mov ecx, 0x7a0720
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_154]
nop
mov dil, r13b
mov byte [rsp + 0x50], r13b
jmp 0x1400259a0
mov qword [rbp - 0x58], r13
mov rax, qword [rcx]
lea r8, [rbp - 0x58]
mov edx, 2
mov rax, qword [rax + 0x28]
call qword [case.0x140044c3e.0]
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x14002595b
nop dword [rax + rax]
mov dil, byte [rcx + 8]
mov byte [rsp + 0x50], dil
call qword [sym.imp.mso40uiWin32Client.dll_Ordinal_1807]
nop
mov byte [rbp - 0x70], r13b
mov rcx, rsi
call fcn.140024e0c
test al, al
jne 0x14002601e
mov al, byte [rsi + 0x70]
test al, al
jne 0x1400259d8
mov rcx, rsi
call fcn.1400250e0
mov al, byte [rsi + 0x70]
test al, al
jne 0x1400259d8
xor edx, edx
mov ecx, 0x21d05e3
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_2055]
nop
movups xmm1, xmmword [rsi + 0x74]
movaps xmmword [rbp + 0x30], xmm1
movups xmm6, xmmword [rsi + 0x84]
movups xmm0, xmmword [rsi + 0x94]
movaps xmmword [rbp + 0x50], xmm0
movups xmm7, xmmword [rsi + 0xa4]
movups xmm8, xmmword [rsi + 0xb4]
movups xmm9, xmmword [rsi + 0xc4]
movups xmm10, xmmword [rsi + 0xd4]
movdqu xmmword [rbp - 0x6c], xmm1
cmp byte [rbp - 0x70], r13b
jne 0x140025a20
mov byte [rbp - 0x70], 1
mov eax, dword [rbp + 0x3c]
sub eax, dword [rbp + 0x34]
test eax, eax
jle 0x14002601e
mov eax, dword [rbp + 0x38]
sub eax, dword [rbp + 0x30]
test eax, eax
jle 0x14002601e
mov r15, r14
xor eax, eax
mov qword [rbp - 0x48], rax
test r12, r12
jne 0x140025bb5
mov rcx, r14
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov r15, rax
test rax, rax
je 0x140025af7
mov r8d, dword [rbp - 0x60]
mov edx, dword [rbp - 0x64]
mov rcx, r14
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov r13, rax
test rax, rax
je 0x140025aea
mov rdx, rax
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rbp - 0x48], rax
test rax, rax
jne 0x140025bb5
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140049f58]
mov qword [rsp + 0x70], rcx
lea rcx, str.HRESULT
mov qword [rsp + 0x78], rcx
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov dword [rbp - 0x80], ecx
mov word [rbp - 0x7c], r12w
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, str.SelectObjectFailure
mov qword [rsp + 0x20], rax
mov ecx, 0x255e6ca
call fcn.14002956c
jmp 0x140025b16
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x255e6cb
jmp 0x140025b02
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x255e6cc
movzx edx, ax
or edx, 0x80070000
test eax, eax
cmovle edx, eax
call fcn.14002a17c
nop
test r15, r15
je 0x140025b7d
mov rcx, r15
call qword [sym.imp.GDI32.dll_DeleteDC]
test eax, eax
jne 0x140025b7d
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140049f58]
mov qword [rsp + 0x70], rcx
lea rcx, str.HRESULT
mov qword [rsp + 0x78], rcx
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov dword [rbp - 0x80], ecx
mov word [rbp - 0x7c], r12w
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, str.DeviceContextDeletionFailure
mov qword [rsp + 0x20], rax
mov ecx, 0x255e6ce
call fcn.14002956c
nop
test r13, r13
je 0x140025bb2
mov rcx, r13
call qword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x140025b94
mov r13, r12
jmp 0x140025bb2
lea r9, str.BitmapDeletionFailure
mov edx, 0x89b
mov ecx, 0x255e6cf
mov r8d, 0xa
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_1254]
nop
mov r15, r14
test dil, dil
je 0x140025bc2
call qword [sym.imp.mso40uiWin32Client.dll_Ordinal_5412]
jmp 0x140025bc9
call qword [sym.imp.mso40uiWin32Client.dll_Ordinal_5413]
nop
mov r12, rax
test rax, rax
je 0x140025be1
mov rax, qword [rax]
mov rcx, r12
mov rax, qword [rax]
call qword [case.0x140044c3e.0]
nop
test r12, r12
jne 0x140025bf4
xor edx, edx
mov ecx, 0x250d458
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_2055]
nop
mov rax, qword [r12]
xor edx, edx
mov rcx, r12
mov rax, qword [rax + 0x10]
call qword [case.0x140044c3e.0]
and eax, 0xffffff
mov r8d, eax
lea rdx, [rbp - 0x6c]
mov rcx, r15
call qword [sym.imp.mso40uiWin32Client.dll_Ordinal_2085]
xor eax, eax
cmp byte [rsi + 0x36], al
jne 0x140025c84
cmp byte [rsi + 0x1b], al
jne 0x140025c84
mov eax, dword [rbp - 0x6c]
mov dword [rsp + 0x70], eax
mov ecx, dword [rbp - 0x60]
lea eax, [rcx - 1]
mov dword [rsp + 0x74], eax
mov eax, dword [rbp - 0x64]
mov dword [rsp + 0x78], eax
mov dword [rsp + 0x7c], ecx
mov al, dil
neg al
sbb di, di
add di, 9
call qword [sym.imp.mso40uiWin32Client.dll_Ordinal_5375]
mov r8, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x10]
movzx edx, di
mov rcx, r8
call qword [case.0x140044c3e.0]
nop
and eax, 0xffffff
mov r8d, eax
lea rdx, [rsp + 0x70]
mov rcx, r15
call qword [sym.imp.mso40uiWin32Client.dll_Ordinal_2085]
nop
mov edx, 0xfffffff0
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rcx, rax
mov edx, 0xc00000
and rax, rdx
mov qword [rbp - 0x38], rax
cmp rax, rdx
jne 0x140025e3e
bt rcx, 0x13
jae 0x140025e3e
xor r8d, r8d
cmp byte [rsi + 0x1a], r8b
jne 0x140025d65
mov rdi, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x58]
cmp edi, ecx
je 0x140025d65
mov r9, qword [rsi + 0x38]
test r9, r9
je 0x140025d65
mov rax, rdi
shr rax, 0x20
mov edx, ecx
sub edx, edi
mov dword [rbp - 0x58], edx
shr rcx, 0x20
sub ecx, eax
mov dword [rsp + 0x40], 3
mov qword [rsp + 0x38], r8
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov r8d, eax
mov edx, edi
mov rcx, r15
call qword [sym.imp.USER32.dll_DrawIconEx]
test eax, eax
jne 0x140025d65
mov rcx, rsi
call fcn.1400245b8
mov r9, qword [rsi + 0x38]
xor ecx, ecx
test r9, r9
je 0x140025d65
mov eax, dword [rbp + 0x5c]
mov r8d, dword [rbp + 0x54]
sub eax, r8d
mov dword [rsp + 0x40], 3
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rbp - 0x58]
mov dword [rsp + 0x20], eax
mov edx, edi
mov rcx, r15
call qword [sym.imp.USER32.dll_DrawIconEx]
nop
mov rdx, r15
lea rcx, [rbp - 8]
call qword [sym.imp.mso40uiWin32Client.dll_Ordinal_4743]
movdqu xmmword [rsp + 0x70], xmm7
movss xmm0, dword [rsi + 0x164]
movss dword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x70]
mov r8d, 3
lea rdx, [rbp - 8]
mov rcx, rsi
call fcn.140024b10
movdqu xmmword [rsp + 0x70], xmm8
movss xmm0, dword [rsi + 0x164]
movss dword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x70]
mov r8d, 4
lea rdx, [rbp - 8]
mov rcx, rsi
call fcn.140024b10
movdqu xmmword [rsp + 0x70], xmm9
movss xmm0, dword [rsi + 0x164]
movss dword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x70]
mov r8d, 5
lea rdx, [rbp - 8]
mov rcx, rsi
call fcn.140024b10
movdqu xmmword [rsp + 0x70], xmm10
movss xmm0, dword [rsi + 0x164]
movss dword [rsp + 0x28], xmm0
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x70]
mov r8d, 6
lea rdx, [rbp - 8]
mov rcx, rsi
call fcn.140024b10
mov rax, qword [rbp - 0x38]
mov edx, 0xc00000
xor edi, edi
cmp byte [rsi + 0x1a], dil
jne 0x140025e65
cmp rax, rdx
jne 0x140025e65
movdqu xmmword [rsp + 0x70], xmm6
mov r9, r12
lea r8, [rsp + 0x70]
mov rdx, r15
mov rcx, rsi
call fcn.1400264e0
nop
cmp r15, r14
je 0x140025efd
mov eax, dword [rbp - 0x60]
mov r8d, dword [rbp - 0x68]
sub eax, r8d
mov r9d, dword [rbp - 0x64]
mov edx, dword [rbp - 0x6c]
sub r9d, edx
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], eax
mov rcx, r14
call qword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
jne 0x140025efd
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140049f58]
mov qword [rsp + 0x70], rcx
lea rcx, str.HRESULT
mov qword [rsp + 0x78], rcx
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov dword [rbp - 0x80], ecx
mov word [rbp - 0x7c], di
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, str.BitBltFailure
mov qword [rsp + 0x20], rax
mov ecx, 0x255e6d0
call fcn.14002956c
nop
mov rax, qword [rbp - 0x48]
test rax, rax
je 0x140025f6b
mov rdx, rax
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectObject]
test rax, rax
jne 0x140025f6b
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140049f58]
mov qword [rsp + 0x70], rcx
lea rcx, str.HRESULT
mov qword [rsp + 0x78], rcx
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov dword [rbp - 0x80], ecx
mov word [rbp - 0x7c], di
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, str.SelectObjectFailure
mov qword [rsp + 0x20], rax
mov ecx, 0x255e6d1
call fcn.14002956c
nop
test r13, r13
je 0x140025f9c
mov rcx, r13
call qword [sym.imp.GDI32.dll_DeleteObject]
xor r13d, r13d
test eax, eax
jne 0x140025f9c
lea r9, str.BitmapDeletionFailure
mov edx, 0x89b
mov ecx, 0x255e6d2
lea r8d, [r13 + 0xa]
call qword [sym.imp.Mso20Win32Client.dll_Ordinal_1254]
nop
cmp r15, r14
je 0x140026003
mov rcx, r15
call qword [sym.imp.GDI32.dll_DeleteDC]
test eax, eax
jne 0x140026003
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140049f58]
mov qword [rsp + 0x70], rcx
lea rcx, str.HRESULT
mov qword [rsp + 0x78], rcx
movzx ecx, ax
or ecx, 0x80070000
test eax, eax
cmovle ecx, eax
mov dword [rbp - 0x80], ecx
mov word [rbp - 0x7c], r13w
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rax, str.DeviceContextDeletionFailure
mov qword [rsp + 0x20], rax
mov ecx, 0x255e6d3
call fcn.14002956c
nop
mov rax, qword [r12]
mov rcx, r12
mov rax, qword [rax + 8]
call qword [case.0x140044c3e.0]
mov r12, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x54]
mov al, byte [rsp + 0x50]
mov byte [rsp + 0x20], al
lea r9, [rbp - 0x28]
lea r8, [rbp - 0x18]
mov rdx, r14
mov rcx, rsi
call fcn.1400261f4
cmp r15d, 0xffffffff
je 0x14002604d
nop
mov edx, r15d
mov rcx, r14
call qword [sym.imp.GDI32.dll_SetLayout]
nop
test r12, r12
jne 0x140026060
mov rdx, r14
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_ReleaseDC]
nop
test rbx, rbx
je 0x14002606f
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteObject]
nop
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1400443a0
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x58]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret