Function at 0x1400816e0
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
mov eax, dword [r8]
mov rdi, rdx
mov dword [rsp + 0x20], eax
lea rdx, [rsp + 0x20]
mov eax, dword [r8 + 4]
mov rbx, rcx
mov dword [rsp + 0x24], eax
mov eax, dword [r8 + 8]
mov dword [rsp + 0x28], eax
mov eax, dword [r8 + 0xc]
mov dword [rsp + 0x2c], eax
call fcn.140082270
test al, al
jne 0x1400816bd
mov eax, 0xfffffffe
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
mov rdx, rdi
mov rcx, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
jmp 0x1400816e0
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xa0]
sub rsp, 0x1a0
mov qword [rbp - 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x1f0], rbx
mov rax, qword [0x14013f130]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rsi, rdx
mov rdi, rcx
xor ecx, ecx
mov dword [rsp + 0x60], ecx
mov r13d, 0xcc0020
mov rax, qword [rdi + 0xb8]
mov r15d, dword [rax]
mov r14d, dword [rax + 4]
mov ebx, ecx
mov dword [rsp + 0x60], ecx
call fcn.140040a40
cmp byte [rax + 0x108], bl
jne 0x140081756
movzx r12d, byte [rax + 0x48]
jmp 0x14008175f
call fcn.140028b30
movzx r12d, al
cmp qword [rdi + 0x38], rbx
je 0x14008179e
call fcn.140028770
cmp eax, 0xb
jl 0x14008177a
mov ebx, 1
lea r12d, [rbx + 1]
jmp 0x1400817a1
test r12b, r12b
jne 0x14008179e
mov edx, 0xffffffec
mov rcx, qword [rdi + 0x38]
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
mov rbx, rax
and ebx, 0x80000
mov r12d, dword [rsp + 0x60]
jmp 0x1400817a1
mov r12d, ebx
mov byte [rdi + 0xe0], 0
test ebx, ebx
je 0x140081943
mov rax, qword [rdi + 0xc8]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x68], rcx
lea rcx, [rsp + 0x60]
cmp rcx, rax
je 0x1400817d1
mov r15d, dword [rax]
mov r14d, dword [rax + 4]
mov rdx, qword [rax + 8]
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.GDI32.dll_SelectObject]
mov r8d, r12d
mov rdx, qword [rdi + 0x90]
mov rcx, qword [rdi + 0x38]
call qword [sym.imp.USER32.dll_PrintWindow]
test eax, eax
jne 0x140081ad9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call fcn.140084bd0
cmp eax, 2
jl 0x140081943
xor edx, edx
mov r8d, 0xe8
lea rcx, [rbp - 0x60]
call fcn.1400b93c0
lea rax, [0x1400fdef8]
mov qword [rbp - 0x60], rax
mov dword [rsp + 0x60], 1
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x28], rax
mov dword [rbp + 0x24], 0x78
xor r8d, r8d
lea rdx, [rbp - 0x58]
lea rcx, [rbp + 0x28]
call fcn.1400075d0
nop
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea r12, vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x60], r12
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx - 0x64], edx
mov edx, 2
lea rcx, [rbp - 0x58]
call fcn.140009f10
nop
lea rdx, str._screen_
lea rcx, [rbp - 0x60]
call fcn.14000ae60
mov rcx, rax
lea rdx, str.GdiCapturer::captureScreen__PrintWindow_failed__err
call fcn.14000ae60
mov rcx, rax
mov edx, ebx
call fcn.14000e310
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x58]
call fcn.140009e60
nop
lea rdx, [rsp + 0x70]
mov ecx, 2
call fcn.140084ea0
nop
lea rcx, [rsp + 0x70]
call fcn.140007080
nop
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x60], r12
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x88]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x58]
call fcn.140008ea0
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ostream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x10]
mov dword [rbp + rcx - 0x64], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x28], rax
lea rcx, [rbp + 0x28]
call fcn.140097eb0
nop
movzx ecx, byte [rdi + 0x78]
test cl, cl
jne 0x140081963
cmp dword [rdi + 0x7c], 1
jne 0x140081963
mov rax, qword [rdi + 0xb8]
mov rbx, qword [rax + 0x10]
mov qword [rsp + 0x68], rbx
jmp 0x140081981
mov eax, 0x40cc0020
test cl, cl
cmove eax, r13d
mov r13d, eax
mov rax, qword [rdi + 0xc8]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x68], rcx
lea rcx, [rsp + 0x60]
cmp rcx, rax
mov rdx, qword [rax + 8]
je 0x140081996
mov r14d, dword [rax + 4]
mov r15d, dword [rax]
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.GDI32.dll_SelectObject]
cmp qword [rdi + 0x38], 0
je 0x1400819b5
mov ebx, dword [rdi + 0xac]
xor r12d, r12d
jmp 0x1400819e7
mov ebx, dword [rdi + 0x68]
sub ebx, dword [rdi + 8]
mov r12d, dword [rdi + 0x6c]
sub r12d, dword [rdi + 0xc]
call fcn.140040a40
cmp byte [rax + 0x108], 0
jne 0x1400819d7
movzx eax, byte [rax + 0x48]
jmp 0x1400819dc
call fcn.140028b30
test al, al
jne 0x1400819e7
mov ebx, dword [rdi + 0x68]
mov r12d, dword [rdi + 0x6c]
mov ecx, dword [rdi + 0x50]
cmp r15d, ecx
jne 0x1400819f9
cmp r14d, dword [rdi + 0x54]
jne 0x1400819f9
mov al, 1
jmp 0x1400819fb
xor al, al
test al, al
je 0x140081a5f
cmp dword [rdi + 0xa8], 1
je 0x140081a27
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], r13d
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], ebx
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 0x140081aca
xor edx, edx
cmp dword [rdi + 0x80], edx
setne dl
add edx, 3
cmp dword [rdi + 0xa8], edx
je 0x140081a8b
mov dword [rdi + 0xa8], edx
mov rcx, qword [rdi + 0x90]
call qword [sym.imp.GDI32.dll_SetStretchBltMode]
mov ecx, dword [rdi + 0x50]
mov dword [rsp + 0x50], r13d
mov eax, dword [rdi + 0x54]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], ebx
mov rax, qword [rdi + 0x88]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r14d
mov r9d, r15d
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 0x140081cf7
mov rax, qword [rdi + 0x98]
movzx eax, word [rax + 0xe]
shr eax, 3
imul eax, r15d
mov dword [rsp + 0x60], eax
imul eax, r14d
movsxd r13, eax
call fcn.1400973f0
mov rbx, rax
call fcn.1400973d4
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rcx, rax
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rsi + 0x80], rdx
mov ecx, dword [rdi + 0x68]
mov edx, dword [rdi + 0x6c]
mov r8d, dword [rdi + 0x70]
mov r9d, dword [rdi + 0x74]
lea rax, [rsi + 0x88]
lea r10, [rsp + 0x70]
cmp rax, r10
je 0x140081b6c
mov dword [rax], ecx
mov dword [rax + 4], edx
mov dword [rax + 8], r8d
mov dword [rax + 0xc], r9d
cmp r15d, dword [rdi + 0x60]
jne 0x140081b7c
cmp r14d, dword [rdi + 0x64]
jne 0x140081b7c
mov al, 1
jmp 0x140081b7e
xor al, al
test al, al
jne 0x140081bda
lea r12, [rdi + 0xd8]
cmp qword [r12], 0
jne 0x140081c71
mov qword [rbp - 0x68], 0
mov ecx, 0x18
call fcn.14009ab2c
mov qword [rsp + 0x70], rax
xor ecx, ecx
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rcx
mov rcx, rax
call fcn.1400809a0
nop
mov rbx, rax
cmp qword [rax + 0x10], 0
jne 0x140081c35
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
nop
mov rax, qword [rsi]
mov ecx, dword [rsp + 0x60]
mov dword [rsp + 0x20], ecx
mov r9d, r14d
mov r8d, r15d
mov edx, 4
mov rcx, rsi
call qword [rax + ioctlsocket]
lea rcx, [rsi + 8]
call fcn.140006790
cmp r13, rax
ja 0x140081c2e
mov rcx, qword [rsi + 0x58]
mov rbx, qword [rsi + 0x48]
cmp rcx, rbx
ja 0x140081c2e
sub rbx, rcx
je 0x140081c2e
cmp rbx, r13
cmova rbx, r13
mov r8, rbx
mov rdx, qword [rsp + 0x68]
call fcn.1400b8f60
add qword [rsi + 0x58], rbx
xor eax, eax
jmp 0x140081cfc
lea rcx, [rbp - 0x68]
cmp r12, rcx
je 0x140081c5e
xor ebx, ebx
mov qword [rbp - 0x68], rbx
mov rcx, qword [r12]
mov qword [r12], rax
xor eax, eax
test rcx, rcx
je 0x140081c5e
mov rax, qword [rcx]
lea edx, [rbx + 1]
call qword [rax]
nop
xor eax, eax
test rax, rax
je 0x140081c71
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
nop
mov dword [rbp - 0x60], 4
mov dword [rbp - 0x5c], r15d
mov dword [rbp - 0x58], r14d
mov ecx, dword [rsp + 0x60]
mov dword [rbp - 0x54], ecx
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x50], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp - 0x40], xmm1
mov r9, r13
mov r8, r13
mov rdx, qword [rsp + 0x68]
lea rcx, [rbp - 0x30]
call fcn.140055ce0
nop
mov rcx, qword [r12]
mov eax, dword [rdi + 0x60]
mov dword [rbp - 0x68], eax
mov eax, dword [rdi + 0x64]
mov dword [rbp - 0x64], eax
mov r10, qword [rcx]
mov eax, dword [rdi + 0x80]
mov dword [rsp + 0x20], eax
lea r9, [rbp - 0x68]
lea r8, [rbp - 0x60]
mov rdx, rsi
call qword [r10 + ioctlsocket]
nop
test al, al
jne 0x140081d26
lea rcx, [rbp - 0x30]
call fcn.1400316b0
nop
mov rcx, qword [rbp]
test rcx, rcx
je 0x140081cf7
mov rax, qword [rcx]
call qword [rax + 0x28]
nop
mov eax, 0xffffffff
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.14009ab00
mov rbx, qword [rsp + 0x1f0]
add rsp, 0x1a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rbp - 0x30]
call fcn.1400316b0
nop
mov rcx, qword [rbp]
test rcx, rcx
je 0x140081d40
mov rax, qword [rcx]
call qword [rax + 0x28]
nop
xor eax, eax
jmp 0x140081cfc