Function at 0x2e0761e0
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x24
cmp word [eax], 8
push ebx
push esi
push edi
mov esi, ecx
jne 0x2e0764bf
xor edi, edi
cmp dword [esi + 0x2c8], edi
je 0x2e0764bf
mov ecx, dword [esi + 0x2a8]
mov eax, dword [ecx]
push edi
call dword [eax + 0xa4]
cmp dword [esi + 0x2a8], edi
je 0x2e0764bf
cmp byte [esi + 0x2d4], 0
jne 0x2e07625f
mov ebx, dword [ebp + 0xc]
mov dword [ebx], 1
mov eax, dword [esi + 0x2a8]
mov ecx, dword [eax]
lea edx, [ebx + 4]
push edx
push eax
call dword [ecx + 0x54]
cmp eax, edi
jl 0x2e0764c4
add esi, 0x90
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov dword [ebx + 8], esi
jmp 0x2e0764bb
mov ebx, dword [esi + 0x2e0]
mov eax, dword [esi + 0x2e4]
sub ebx, dword [esi + 0x2d8]
sub eax, dword [esi + 0x2dc]
push edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], eax
call dword [sym.imp.USER32.dll_GetDC]
lea edx, [ebp - 8]
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x2a8]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x54]
cmp dword [ebp - 8], edi
jne 0x2e0762a9
mov eax, 0x80004005
jmp 0x2e0764c4
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
test edi, edi
je 0x2e07629f
push dword [ebp - 4]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp + 8], eax
test eax, eax
jne 0x2e0762e6
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push dword [ebp - 4]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, 0x8007000e
jmp 0x2e0764c4
push dword [ebp - 0xc]
push ebx
push dword [ebp - 4]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push dword [ebp + 8]
mov dword [ebp - 0x14], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x20], eax
mov ax, 8
cmp ax, word [edi + 0xe]
mov eax, dword [esi + 0x2e4]
sbb ebx, ebx
sub eax, dword [esi + 0x2dc]
push 0xff0062
push eax
mov eax, dword [esi + 0x2e0]
sub eax, dword [esi + 0x2d8]
inc ebx
push eax
push 0
push 0
push dword [ebp + 8]
mov dword [ebp - 0x10], ebx
call dword [sym.imp.GDI32.dll_PatBlt]
mov cl, byte [edi + 0xe]
mov eax, ebx
shl eax, cl
mov dword [ebp - 0x1c], eax
test ebx, ebx
je 0x2e076362
mov ecx, dword [esi + 0x2a8]
mov eax, dword [ecx]
push 0
call dword [eax + 0x78]
push eax
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_SelectPalette]
mov cl, byte [edi + 0xe]
mov eax, dword [edi + 8]
push 0
push edi
mov edx, ebx
shl edx, cl
lea ecx, [edi + edx*4 + 0x28]
mov edx, dword [esi + 0x2d0]
push ecx
push eax
xor ecx, ecx
push ecx
neg edx
push edx
push dword [esi + 0x2cc]
push eax
push dword [edi + 4]
push ecx
push ecx
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_SetDIBitsToDevice]
movzx ecx, word [edi + 0xe]
mov edx, dword [ebp - 0x18]
mov eax, ecx
shr eax, 3
add edx, 4
imul eax, edx
imul eax, dword [ebp - 0xc]
shl ebx, cl
lea eax, [eax + ebx*4 + 0x2c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x2e0763e2
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [ebp - 0x14]
call dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x2e0762d1
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov cl, byte [edi + 0xe]
mov ebx, eax
mov eax, dword [ebp - 0x10]
shl eax, cl
lea eax, [eax*4 + 0x2c]
push eax
push edi
push ebx
call fcn.2e01b612
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
movzx edx, word [edi + 0xe]
imul edx, ecx
mov cl, byte [ebx + 0xe]
imul edx, eax
mov eax, dword [ebp - 0x10]
add esp, 0xc
push 0
shl eax, cl
push ebx
sar edx, 3
mov dword [ebx + 0x14], edx
lea eax, [ebx + eax*4 + 0x28]
push eax
mov eax, dword [esi + 0x2e4]
sub eax, dword [esi + 0x2dc]
push eax
push 0
push dword [ebp - 0x14]
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_GetDIBits]
cmp dword [ebp - 0x10], 0
je 0x2e076469
mov eax, dword [ebp - 0x1c]
shl eax, 2
push eax
add edi, 0x28
lea eax, [ebx + 0x28]
push edi
push eax
call fcn.2e01b612
add esp, 0xc
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
push dword [ebp + 8]
mov dword [ebx + 0x20], eax
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x14]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [ebp - 4]
mov ebx, dword [sym.imp.USER32.dll_ReleaseDC]
push 0
call ebx
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp + 0xc]
push esi
mov dword [edi], 1
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push dword [ebp - 4]
mov dword [edi + 4], esi
push 0
call ebx
and dword [edi + 8], 0
xor eax, eax
jmp 0x2e0764c4
mov eax, 0x80040064
pop edi
pop esi
pop ebx
leave
ret 8