Function at 0x14004f8d0
Capabilities:
Capture screenshot
Write file on windows

Disassembly:
push rdi
mov eax, 0x21a0
call fcn.140057910
sub rsp, rax
mov rax, qword [0x1400600c0]
xor rax, rsp
mov qword [rsp + 0x2198], rax
movzx eax, byte [0x14005b6e2]
mov byte [rsp + 0x70], al
lea rdi, [rsp + 0x71]
xor eax, eax
mov ecx, 0xfff
rep stosb byte [rdi], al
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x1070], 0
jmp 0x14004f931
mov eax, dword [rsp + 0x1070]
add eax, 1
mov dword [rsp + 0x1070], eax
cmp dword [rsp + 0x1070], 3
jge 0x14004f9e1
movsxd rcx, dword [rsp + 0x1070]
imul rcx, rcx, 0x4e6c
lea rax, [0x14006c55d]
add rax, rcx
mov qword [rsp + 0x1078], rax
mov rcx, qword [rsp + 0x1078]
call fcn.14004d6f0
test eax, eax
je 0x14004f9dc
movzx eax, byte [0x14005b6e3]
mov byte [rsp + 0x1080], al
lea rdi, [rsp + 0x1081]
xor eax, eax
mov ecx, 0xfff
rep stosb byte [rdi], al
mov rcx, qword [rsp + 0x1078]
add rcx, 0x1000
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x1080]
xor r8d, r8d
xor edx, edx
call fcn.1400033b8
lea r9, [rsp + 0x1080]
lea r8, [0x14005b908]
lea rdx, str.CncPreview__s__s.bmp
lea rcx, [rsp + 0x70]
call fcn.140001614
jmp 0x14004f9e1
jmp 0x14004f920
cmp dword [rsp + 0x1070], 3
jne 0x14004f9f0
jmp 0x14004fe58
mov dword [rsp + 0x2080], 0
lea rdi, [rsp + 0x2084]
xor eax, eax
mov ecx, 0x88
rep stosb byte [rdi], al
mov dword [rsp + 0x2080], 0x8c
mov rax, qword [0x14109dc18]
mov qword [rsp + 0x2084], rax
mov dword [rsp + 0x20d4], 0x802
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20ac], rax
lea rax, str.Bitmap_Files__.Bmp_
mov qword [rsp + 0x2094], rax
lea rax, [0x14005b6e4]
mov qword [rsp + 0x20dc], rax
mov dword [rsp + 0x20b4], 0x1000
lea rcx, [rsp + 0x2080]
call qword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
test eax, eax
jne 0x14004fa7e
jmp 0x14004fe58
mov r8d, 1
xor edx, edx
mov rcx, qword [0x14109dc18]
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rcx, qword [0x14109dc18]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, qword [0x14109dc18]
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x2110], rax
lea rdx, [rsp + 0x50]
mov rcx, qword [0x14109dc18]
call qword [sym.imp.USER32.dll_GetClientRect]
mov r8d, dword [rsp + 0x5c]
mov edx, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x2110]
call qword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x60], 0
jne 0x14004faf0
jmp 0x14004fe58
mov rcx, qword [rsp + 0x2110]
call qword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov qword [rsp + 0x2118], rax
cmp qword [rsp + 0x2118], 0
jne 0x14004fb21
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x14004fe58
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x2118]
call qword [sym.imp.GDI32.dll_SelectObject]
mov qword [rsp + 0x2120], rax
mov dword [rsp + 0x40], 0xcc0020
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0
mov rax, qword [rsp + 0x2110]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0x58]
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x2118]
call qword [sym.imp.GDI32.dll_BitBlt]
mov rdx, qword [rsp + 0x2120]
mov rcx, qword [rsp + 0x2118]
call qword [sym.imp.GDI32.dll_SelectObject]
mov rcx, qword [rsp + 0x2118]
call qword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [rsp + 0x58]
imul eax, eax, 3
mov dword [rsp + 0x212c], eax
xor edx, edx
mov eax, dword [rsp + 0x212c]
mov ecx, 4
div ecx
mov dword [rsp + 0x2138], edx
cmp dword [rsp + 0x2138], 0
jbe 0x14004fbf0
mov ecx, 4
sub ecx, dword [rsp + 0x2138]
mov eax, dword [rsp + 0x212c]
add eax, ecx
mov dword [rsp + 0x212c], eax
mov eax, dword [rsp + 0x212c]
imul eax, dword [rsp + 0x5c]
mov dword [rsp + 0x2128], eax
mov ecx, dword [rsp + 0x2128]
call fcn.140003ba0
mov qword [rsp + 0x2188], rax
mov rax, qword [rsp + 0x2188]
mov qword [rsp + 0x2130], rax
cmp qword [rsp + 0x2130], 0
je 0x14004fe4d
mov rcx, qword [0x14109dc18]
call qword [sym.imp.USER32.dll_GetDC]
mov qword [rsp + 0x2140], rax
cmp qword [rsp + 0x2140], 0
je 0x14004fe30
mov dword [rsp + 0x2160], 0
lea rdi, [rsp + 0x2164]
xor eax, eax
mov ecx, 0x24
rep stosb byte [rdi], al
mov dword [rsp + 0x2160], 0x28
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x2164], eax
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x2168], eax
mov eax, 1
mov word [rsp + 0x216c], ax
mov eax, 0x18
mov word [rsp + 0x216e], ax
mov dword [rsp + 0x2170], 0
mov dword [rsp + 0x2174], 0
mov dword [rsp + 0x2178], 0
mov dword [rsp + 0x217c], 0
mov dword [rsp + 0x2180], 0
mov dword [rsp + 0x2184], 0
mov dword [rsp + 0x30], 0
lea rax, [rsp + 0x2160]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x2130]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x5c]
xor r8d, r8d
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x2140]
call qword [sym.imp.GDI32.dll_GetDIBits]
mov rdx, qword [rsp + 0x2140]
mov rcx, qword [0x14109dc18]
call qword [sym.imp.USER32.dll_ReleaseDC]
xor edx, edx
mov word [rsp + 0x2150], dx
lea rdi, [rsp + 0x2152]
xor eax, eax
mov ecx, 0xc
rep stosb byte [rdi], al
mov eax, 0x4d42
mov word [rsp + 0x2150], ax
mov eax, dword [rsp + 0x2128]
add eax, 0x36
mov dword [rsp + 0x2152], eax
xor eax, eax
mov word [rsp + 0x2156], ax
xor eax, eax
mov word [rsp + 0x2158], ax
mov dword [rsp + 0x215a], 0x36
lea rdx, [0x14005b744]
lea rcx, [rsp + 0x70]
call fcn.14000251c
mov qword [rsp + 0x2148], rax
cmp qword [rsp + 0x2148], 0
je 0x14004fe30
mov r9, qword [rsp + 0x2148]
mov r8d, 1
mov edx, 0xe
lea rcx, [rsp + 0x2150]
call fcn.140002bf4
mov r9, qword [rsp + 0x2148]
mov r8d, 1
mov edx, 0x28
lea rcx, [rsp + 0x2160]
call fcn.140002bf4
mov r8d, dword [rsp + 0x2128]
mov r9, qword [rsp + 0x2148]
mov edx, 1
mov rcx, qword [rsp + 0x2130]
call fcn.140002bf4
mov rcx, qword [rsp + 0x2148]
call fcn.1400034d4
mov rax, qword [rsp + 0x2130]
mov qword [rsp + 0x2190], rax
mov rcx, qword [rsp + 0x2190]
call fcn.140002a50
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, qword [rsp + 0x2198]
xor rcx, rsp
call fcn.140001280
add rsp, 0x21a0
pop rdi
ret