Function at 0x140081d50
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x190
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rsp + 0x1e0], rbx
mov rax, qword [0x14013f130]
xor rax, rsp
mov qword [rsp + 0x180], rax
mov rsi, rdx
mov rdi, rcx
xor ebx, ebx
mov dword [rsp + 0x60], ebx
cmp qword [rcx + 0x88], rbx
je 0x14008223b
mov rcx, qword [rcx + 0x98]
mov eax, dword [rdi + 0x50]
mov dword [rcx + 4], eax
mov rcx, qword [rdi + 0x98]
mov eax, dword [rdi + 0x54]
mov dword [rcx + 8], eax
mov rbp, qword [rdi + 0x98]
mov r15, qword [rdi + 0x88]
mov ecx, dword [rbp + 4]
cmp dword [rdx + 0xc], ecx
jne 0x140081e08
mov eax, dword [rbp + 8]
cmp dword [rdx + 0x10], eax
jne 0x140081e08
movzx eax, word [rbp + 0xe]
shr eax, 3
imul eax, ecx
cmp dword [rdx + 0x14], eax
jne 0x140081e08
cmp qword [rdx + 0xa8], r15
jne 0x140081e08
mov rdx, qword [rdx + 0x98]
test rdx, rdx
je 0x140081e08
cmp qword [rsi + 0xa0], rbx
jne 0x140081eb8
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
lea r14, [rsi + 0xa0]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov r9, r14
xor r8d, r8d
mov rdx, rbp
mov rcx, r15
call qword [sym.imp.GDI32.dll_CreateDIBSection]
mov qword [rsi + 0x98], rax
test rax, rax
je 0x140082232
cmp qword [r14], rbx
je 0x140082232
mov qword [rsi + 0xa8], r15
movzx r9d, word [rbp + 0xe]
shr r9d, 3
mov r8d, dword [rbp + 4]
mov eax, dword [rbp + 8]
lea rcx, [rsi + 8]
mov dword [rcx], 4
mov dword [rcx + 4], r8d
mov dword [rcx + 8], eax
mov eax, r8d
imul eax, r9d
mov edx, 4
test eax, eax
cmovg edx, r9d
imul edx, r8d
mov dword [rcx + 0xc], edx
mov dword [rcx + 0x10], ebx
mov dword [rcx + 0x1c], ebx
call fcn.140006790
lea rcx, [rsi + 0x38]
mov r9, rax
mov r8, rax
mov rdx, qword [r14]
call fcn.1400317a0
mov rbp, qword [rdi + 0x98]
mov rdx, qword [rsi + 0x98]
mov r13d, dword [rbp + 8]
mov r12d, dword [rbp + 4]
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.GDI32.dll_SelectObject]
cmp qword [rdi + 0xa0], rbx
jne 0x140081edd
mov qword [rdi + 0xa0], rax
mov ebp, ebx
mov r15d, ebx
call fcn.140040a40
cmp byte [rax + 0x108], bl
jne 0x140081ef6
movzx r14d, byte [rax + 0x48]
jmp 0x140081eff
call fcn.140028b30
movzx r14d, al
cmp qword [rdi + 0x38], rbx
je 0x140081f37
call fcn.140028770
cmp eax, 0xb
jl 0x140081f1a
mov ebp, 1
lea r15d, [rbp + 1]
jmp 0x140081f37
test r14b, r14b
jne 0x140081f37
mov edx, 0xffffffec
mov rcx, qword [rdi + 0x38]
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rbp, rax
and ebp, 0x80000
mov byte [rdi + 0xe0], bl
test ebp, ebp
je 0x140082085
mov r8d, r15d
mov rdx, qword [rdi + 0x90]
mov rcx, qword [rdi + 0x38]
call qword [sym.imp.USER32.dll_PrintWindow]
test eax, eax
jne 0x1400821b7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
call fcn.140084bd0
cmp eax, 2
jl 0x140082085
xor edx, edx
mov r8d, 0xe8
lea rcx, [rsp + 0x90]
call fcn.1400b93c0
lea rax, [0x1400fdef8]
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x60], 1
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rsp + 0x118], rax
mov dword [rsp + 0x114], 0x78
xor r8d, r8d
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x118]
call fcn.1400075d0
nop
mov rax, qword [rsp + 0x90]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rsp + rcx + 0x90], rax
mov rax, qword [rsp + 0x90]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rsp + rcx + 0x8c], edx
mov edx, 2
lea rcx, [rsp + 0x98]
call fcn.140009f10
nop
lea rdx, str._screen_
lea rcx, [rsp + 0x90]
call fcn.14000ae60
mov rcx, rax
lea rdx, str.GdiCapturer::captureScreen__PrintWindow_failed__err
call fcn.14000ae60
mov rcx, rax
mov edx, ebp
call fcn.14000e310
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x98]
call fcn.140009e60
nop
lea rdx, [rsp + 0x70]
mov ecx, 2
call fcn.140084ea0
nop
lea rcx, [rsp + 0x70]
call fcn.140007080
nop
lea rcx, [rsp + 0x90]
call fcn.140008760
mov eax, 0xcc0020
mov r14d, 0x40cc0020
cmp byte [rdi + 0x78], 0
cmove r14d, eax
cmp qword [rdi + 0x38], 0
je 0x1400820a7
mov ebp, dword [rdi + 0xac]
jmp 0x1400820d6
mov ebp, dword [rdi + 0x68]
sub ebp, dword [rdi + 8]
mov ebx, dword [rdi + 0x6c]
sub ebx, dword [rdi + 0xc]
call fcn.140040a40
cmp byte [rax + 0x108], 0
jne 0x1400820c7
movzx eax, byte [rax + 0x48]
jmp 0x1400820cc
call fcn.140028b30
test al, al
jne 0x1400820d6
mov ebp, dword [rdi + 0x68]
mov ebx, dword [rdi + 0x6c]
mov ecx, dword [rdi + 0x50]
cmp r12d, ecx
jne 0x140082143
cmp r13d, dword [rdi + 0x54]
jne 0x140082143
cmp dword [rdi + 0xa8], 1
je 0x14008210c
mov dword [rdi + 0xa8], 1
mov edx, 1
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.GDI32.dll_SetStretchBltMode]
mov ecx, dword [rdi + 0x50]
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], ebp
mov rax, qword [rdi + 0x88]
mov qword [rsp + 0x28], rax
mov eax, dword [rdi + 0x54]
mov dword [rsp + 0x20], eax
mov r9d, ecx
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.GDI32.dll_BitBlt]
jmp 0x1400821ac
cmp dword [rdi + 0xa8], 4
je 0x14008216b
mov dword [rdi + 0xa8], 4
mov edx, 4
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.GDI32.dll_SetStretchBltMode]
mov ecx, dword [rdi + 0x50]
mov dword [rsp + 0x50], r14d
mov eax, dword [rdi + 0x54]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], ebp
mov rax, qword [rdi + 0x88]
mov qword [rsp + 0x28], rax
mov eax, dword [rdi + 0x64]
mov dword [rsp + 0x20], eax
mov r9d, dword [rdi + 0x60]
xor r8d, r8d
xor edx, edx
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.GDI32.dll_StretchBlt]
mov byte [rdi + 0xe0], 1
test eax, eax
je 0x140082232
call fcn.1400973f0
mov rbx, rax
call fcn.1400973d4
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul r8, rcx, 0x3b9aca00
add r8, rax
movabs rax, 0x431bde82d7b634db
imul r8
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rsi + 0x80], rdx
mov eax, dword [rdi + 0x68]
mov ecx, dword [rdi + 0x6c]
mov edx, dword [rdi + 0x70]
mov r8d, dword [rdi + 0x74]
add rsi, 0x88
lea r9, [rsp + 0x70]
cmp rsi, r9
je 0x14008222e
mov dword [rsi], eax
mov dword [rsi + 4], ecx
mov dword [rsi + 8], edx
mov dword [rsi + 0xc], r8d
xor eax, eax
jmp 0x140082240
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x180]
xor rcx, rsp
call fcn.14009ab00
mov rbx, qword [rsp + 0x1e0]
add rsp, 0x190
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret