Function at 0x406f40
Capabilities:
Capture screenshot
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xf8
mov eax, dword [0x428008]
xor eax, esp
mov dword [esp + 0xf4], eax
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [esp + 0x50], eax
push edi
mov dword [esp + 0x38], esi
mov dword [esp + 0x48], 0
mov eax, dword [esi + 0xa0]
mov dword [esp + 0x50], eax
test eax, eax
je 0x40746b
mov eax, dword [esi + 0x34]
lea edi, [esi + 0x2c]
sub eax, dword [edi]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x38]
sub eax, dword [esi + 0x30]
mov dword [esp + 0x4c], eax
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], eax
test eax, eax
je 0x4070c0
lea ecx, [esp + 0xc8]
push ecx
push 0x18
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
test edi, edi
je 0x406ffd
movups xmm0, xmmword [edi]
movups xmmword [esp + 0xe0], xmm0
mov eax, dword [esp + 0xec]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
jmp 0x407023
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x30], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x34], eax
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [esp + 0x44]
mov dword [esp + 0x10], eax
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
mov edi, eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [esp + 0x50]
mov dword [esp + 0x48], eax
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x30]
mov esi, eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
sub eax, ecx
push 0xcc0020
push dword [esp + 0x50]
push dword [esp + 0x44]
push 0
push 0
push dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x44]
sub eax, edx
push eax
push ecx
push edx
push dword [esp + 0x6c]
call dword [sym.imp.GDI32.dll_StretchBlt]
push edi
mov edi, dword [esp + 0x10]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
mov esi, dword [esp + 0x48]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
mov edi, dword [sym.imp.GDI32.dll_DeleteDC]
call edi
push esi
call edi
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov edx, dword [edi]
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
sub eax, edx
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xc], eax
test eax, eax
jle 0x40746b
mov edi, dword [esi + 0x38]
sub edi, ecx
mov dword [esp + 0x28], edi
test edi, edi
jle 0x40746b
lea eax, [esp + 0x58]
push eax
push 0x18
push dword [esi + 0xa0]
call dword [sym.imp.GDI32.dll_GetObjectW]
cmp dword [esp + 0x5c], 0
jle 0x40746b
cmp dword [esp + 0x60], 0
jle 0x40746b
mov eax, dword [esp + 0x40]
xor edx, edx
test eax, eax
cmovns edx, eax
mov eax, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x4c], edx
test eax, eax
cmovns ecx, eax
mov eax, dword [esp + 0xc]
add eax, edx
mov dword [esp + 0x40], ecx
cmp eax, dword [esp + 0x5c]
jle 0x40714c
mov eax, dword [esp + 0x5c]
sub eax, edx
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0x60]
lea eax, [ecx + edi]
cmp eax, edx
jle 0x40715f
mov eax, edx
sub eax, ecx
mov dword [esp + 0x28], eax
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
mov dword [esp + 0x38], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [esi + 0xa0]
mov edi, eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x34]
mov esi, eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [esp + 0x28]
mov dword [esp + 0x34], eax
push dword [esp + 0x10]
push dword [esp + 0x3c]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push dword [esp + 0x34]
mov dword [esp + 0x18], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xcc0020
push dword [esp + 0x44]
mov dword [esp + 0x44], eax
push dword [esp + 0x54]
push edi
push dword [esp + 0x38]
push dword [esp + 0x20]
push 0
push 0
push dword [esp + 0x50]
call dword [sym.imp.GDI32.dll_BitBlt]
push esi
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov esi, dword [esp + 0x54]
test esi, esi
jne 0x407226
push esi
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x407424
call dword [sym.imp.USER32.dll_EmptyClipboard]
mov edi, dword [esp + 0x10]
push edi
push 2
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [esp + 0x48], 1
jmp 0x407428
push 0x58
lea eax, [esp + 0x74]
push 0
push eax
call fcn.0040b1c0
mov eax, dword [esp + 0x44]
mov ecx, 0x429698
add esp, 0xc
mov dword [esp + 0x70], 0x58
mov dword [esp + 0x8c], esi
mov eax, dword [eax + 4]
lea edx, [ecx + 2]
mov dword [esp + 0x74], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x407260
sub ecx, edx
mov dword [esp + 0xac], 0x41f354
sar ecx, 1
mov eax, 0x429698
mov dword [esp + 0x90], 0x208
cmove eax, dword [esp + 0x9c]
mov dword [esp + 0x9c], eax
mov eax, dword [0x429694]
inc eax
mov dword [esp + 0x7c], str.PNG__.png_
mov dword [esp + 0x88], eax
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0xa8], 0x880002
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
mov edi, dword [esp + 0x10]
cmp eax, 1
jne 0x407428
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0
push eax
push 0
push edi
call dword [sym.imp.gdiplus.dll_GdipCreateBitmapFromHBITMAP]
mov eax, dword [esp + 0x88]
cmp eax, 2
jne 0x40732c
push 0x41f2b0
push esi
call fcn.0040ab4b
add esp, 8
test eax, eax
jne 0x407318
push 0x41f2b0
push 0x208
push esi
call fcn.0040d88a
add esp, 0xc
mov dword [0x429694], 1
mov ecx, str.image_bmp
jmp 0x4073ad
cmp eax, 3
jne 0x407379
push str..jpg
push esi
call fcn.0040ab4b
add esp, 8
test eax, eax
jne 0x407368
push str..jpeg
push esi
call fcn.0040ab4b
add esp, 8
test eax, eax
jne 0x407368
push str..jpg
push 0x208
push esi
call fcn.0040d88a
add esp, 0xc
mov dword [0x429694], 2
mov ecx, str.image_jpeg
jmp 0x4073ad
push 0x41f2a4
push esi
call fcn.0040ab4b
add esp, 8
test eax, eax
jne 0x40739e
push 0x41f2a4
push 0x208
push esi
call fcn.0040d88a
add esp, 0xc
mov dword [0x429694], 0
mov ecx, str.image_png
lea edx, [esp + 0xe0]
call fcn.00401e10
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4073c0
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 1]
test eax, eax
jle 0x4073e9
movzx ecx, word [esi + eax*2]
cmp ecx, 0x5c
je 0x4073e9
cmp ecx, 0x2f
je 0x4073e9
dec eax
test eax, eax
jg 0x4073d6
push eax
push esi
push 0x208
push 0x429698
call fcn.0040dc4d
add esp, 0x10
lea eax, [esp + 0xe0]
push 0
push eax
push esi
mov esi, dword [esp + 0x44]
push esi
call dword [sym.imp.gdiplus.dll_GdipSaveImageToFile]
push esi
mov dword [esp + 0x4c], 1
call dword [sym.imp.gdiplus.dll_GdipDisposeImage]
jmp 0x407428
mov edi, dword [esp + 0x10]
push dword [esp + 0x3c]
mov esi, dword [esp + 0x34]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [esp + 0x34]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0x48]
pop edi
pop esi
mov ecx, dword [esp + 0xf4]
xor ecx, esp
call fcn.00409972
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esp + 0xfc]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.00409972
mov esp, ebp
pop ebp
ret 4