Function at 0x4ccf40
Capabilities:
Capture screenshot

Disassembly:
sub esp, 0x3c
push ebx
push esi
mov esi, dword [esp + 0x4c]
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0xc], ebx
jne 0x4ccf60
pop esi
pop ebx
add esp, 0x3c
ret
test esi, esi
mov eax, esi
jne 0x4ccf6c
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [esp + 0x1c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
jne 0x4ccf8c
push ebx
push esi
call dword [sym.imp.USER32.dll_ReleaseDC]
pop esi
xor eax, eax
pop ebx
add esp, 0x3c
ret
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x60]
push ebp
mov ebp, dword [esp + 0x28]
sub ebp, esi
sub ecx, edx
push edi
mov dword [esp + 0x20], ecx
test eax, eax
mov edi, ebp
mov dword [esp + 0x10], ecx
je 0x4ccfe4
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x4ccfc0
mov edi, eax
jmp 0x4ccfe4
jge 0x4ccfe4
cmp eax, 0xfffffff6
jge 0x4ccfcc
mov eax, 0xfffffff6
imul eax, ebp
mov edx, eax
mov eax, 0xae147ae1
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
mov eax, dword [esp + 0x74]
test eax, eax
je 0x4cd020
mov eax, dword [esp + 0x6c]
test eax, eax
jle 0x4ccffa
mov dword [esp + 0x10], eax
jmp 0x4cd020
jge 0x4cd020
cmp eax, 0xfffffff6
jge 0x4cd006
mov eax, 0xfffffff6
imul eax, ecx
mov ecx, eax
mov eax, 0xae147ae1
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x10], edx
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov edx, dword [esp + 0x10]
mov esi, eax
push edx
push edi
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ebx, eax
push ebx
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 4
push esi
mov dword [esp + 0x20], eax
call dword [sym.imp.GDI32.dll_SetStretchBltMode]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0xcc0020
push eax
push ebp
push 0
push 0xfffffffffffffff8
push ecx
push edx
push edi
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_StretchBlt]
lea eax, [esp + 0x34]
push eax
push 0x18
push ebx
call dword [sym.imp.GDI32.dll_GetObjectA]
mov edi, dword [esp + 0x3c]
imul edi, dword [esp + 0x40]
add edi, 0x36
lea ecx, [edi + 8]
push ecx
call fcn.004c8210
mov ebp, eax
xor eax, eax
add esp, 4
lea edx, [ebp + 4]
mov dword [ebp], 1
mov dword [edx], edi
add edx, 4
mov ecx, edx
add edx, 0xe
mov edi, edx
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov word [ecx + 0xc], ax
mov dword [edx - 4], 0x36
mov eax, dword [esp + 0x3c]
mov ecx, 0xa
imul eax, dword [esp + 0x40]
add eax, 0x36
mov word [edx - 0xe], 0x4d42
mov dword [edx - 0xc], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [edx], 0x28
mov ecx, dword [esp + 0x38]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x3c]
mov dword [edx + 8], eax
mov word [edx + 0xc], 1
mov cx, word [esp + 0x46]
xor eax, eax
mov word [edx + 0xe], cx
mov dword [edx + 0x10], eax
mov ecx, dword [esp + 0x3c]
imul ecx, dword [esp + 0x40]
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
mov dword [edx + 0x20], eax
push eax
mov dword [edx + 0x24], eax
push edx
add edx, 0x28
push edx
mov edx, dword [esp + 0x1c]
push edx
push eax
push ebx
push esi
call dword [sym.imp.GDI32.dll_GetDIBits]
mov eax, dword [esp + 0x18]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x54]
push ecx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, ebp
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x3c
ret