Function at 0x140002454
Capabilities:
Capture screenshot

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x50
mov rsi, rcx
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
xor ebx, ebx
mov rdi, rax
mov dword [rsp + 0x88], ebx
mov eax, 0x30c30c31
xor ebp, ebp
lea r13d, [rbx + 0x10]
imul ebx
sar edx, 2
lea rbx, [0x140000000]
mov eax, edx
shr eax, 0x1f
add edx, eax
movsxd r12, edx
mov eax, 0x30c30c31
imul ebp
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cdqe
lea rcx, [rax + rax*2]
lea rax, [r12 + rcx*4]
mov rcx, rdi
movsxd rdx, dword [rbx + rax*4 + 0x18617c0]
mov rdx, qword [rbx + rdx*8 + 0x18629b8]
call qword [sym.imp.GDI32.dll_SelectObject]
mov dword [rsp + 0x40], 0xcc0020
and dword [rsp + 0x38], 0
and dword [rsp + 0x30], 0
lea edx, [rbp + 0x10]
mov r9d, 0x15
mov r8d, r13d
mov rcx, rsi
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x15
call qword [sym.imp.GDI32.dll_BitBlt]
add ebp, 0x15
cmp ebp, 0xfc
jl 0x1400024a2
mov ebx, dword [rsp + 0x88]
add ebx, 0x15
cmp ebx, 0xfc
mov dword [rsp + 0x88], ebx
jl case.default.0x14000254e
mov rcx, rdi
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop r12
pop rdi
jmp qword [sym.imp.GDI32.dll_DeleteDC]
sub ebx, ebp
pop rcx
mov rax, qword [rdi + 0x18]
movzx eax, byte [rax + rcx]
inc rcx
mov qword [rdi + 0x28], rcx
mov rcx, qword [rdi + 0x50]
inc rcx
cmp al, 0xa
jne 0x1400143d7
add qword [rdi + 0x58], rcx
inc qword [rdi + 0x48]
xor ecx, ecx
mov qword [rdi + 0x50], rcx
mov byte [rdi + 0x60], 1
invalid
invalid
add dword [rax - 0x2ffb9eb9], ecx
cmp al, 0xa
jb 0x140014532
invalid
mov rcx, rsi
mov rdx, rdi
mov r8d, ebx
xor r9d, r9d
jmp 0x14001451a
invalid
add byte [rax - 0x75], cl
sbb byte [r15], r9b
mov dh, 4
or byte [rax - 1], cl
ror dword [rax - 0x77], 0x4f
mov qword [rdi + 0x28], rcx
mov rcx, qword [rdi + 0x50]
mov qword [rdi + 0x28], rcx
mov rcx, qword [rdi + 0x50]
inc rcx
cmp al, 0xa
jne 0x140014421
add qword [rdi + 0x58], rcx
inc qword [rdi + 0x48]
xor ecx, ecx
mov qword [rdi + 0x50], rcx
mov byte [rdi + 0x60], 1
mov byte [rdi + 0x61], al
add al, 0xd0
cmp al, 9
ja 0x14001450e
movzx eax, al
mov byte [rdi + 0x60], 0
lea rcx, [r15 + r15*4]
lea r15, [rax + rcx*2]
lea r12, [rsp + 0x28]
movabs r13, 0x1999999999999999
jmp 0x14001446f
movzx eax, al
mov byte [rdi + 0x60], 0
lea rcx, [r15 + r15*4]
lea r15, [rax + rcx*2]
mov rcx, qword [rdi + 0x28]
cmp qword [rdi + 0x30], rcx
jne 0x1400144a0
mov rcx, r12
mov rdx, r14
call 0x14001ef30
movzx eax, byte [rsp + 0x28]
cmp al, 2
je 0x14001450e
test al, 1
jne 0x14001454f
movzx eax, byte [rsp + 0x29]
jmp 0x1400144af
mov rax, qword [rdi + 0x18]
movzx eax, byte [rax + rcx]
inc rcx
mov qword [rdi + 0x28], rcx
mov rcx, qword [rdi + 0x50]
inc rcx
cmp al, 0xa
jne 0x1400144c4
add qword [rdi + 0x58], rcx
inc qword [rdi + 0x48]
xor ecx, ecx
mov qword [rdi + 0x50], rcx
mov byte [rdi + 0x60], 1
mov byte [rdi + 0x61], al
add al, 0xd0
cmp al, 0xa
jae 0x14001450e
cmp r15, r13
jb 0x140014460
jne 0x1400144e0
cmp al, 5
jbe 0x140014460
lea rcx, [rsp + 0x28]
mov rdx, rdi
mov r8d, ebx
mov r9, r15
call 0x1400c1b50
cmp qword [rsp + 0x28], 0
je 0x140014571
mov rax, qword [rsp + 0x30]
mov qword [rsi + 8], rax
mov eax, 3
mov qword [rsi], rax
jmp 0x14001451f
mov rcx, rsi
mov rdx, rdi
mov r8d, ebx
mov r9, r15
call 0x1400135a0
mov rax, rsi
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x28], 0xd
mov rdx, qword [rdi + 0x48]
mov r8, qword [rdi + 0x50]
lea rcx, [rsp + 0x28]
call 0x1400c6810
jmp 0x140014559
mov rcx, qword [rsp + 0x30]
call 0x1400c6870
mov qword [rsi + 8], rax
mov qword [rsi], 3
jmp 0x14001451f
movsd xmm0, qword [rsp + 0x30]
movsd qword [rsi + 8], xmm0
xor eax, eax
mov qword [rsi], rax
jmp 0x14001451f