Function at 0x100212f0
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push edi
xor edi, edi
push edi
push edi
push edi
push str.DISPLAY
mov dword [ebp - 8], edi
mov dword [ebp - 4], edi
call dword [sym.imp.GDI32.dll_CreateDCA]
mov ebx, eax
cmp ebx, edi
jne 0x1002131f
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
push 0xf
mov dword [ebp - 0xc], esi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x1003dcc4]
mov edx, dword [0x1003dcc0]
push ecx
push edx
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x14], eax
mov eax, dword [0x1003dcc4]
xor esi, esi
cmp eax, edi
jle 0x1002139f
sub eax, esi
cmp eax, 0x64
mov edi, eax
jl 0x1002136d
mov edi, 0x64
mov eax, dword [0x1003dcc0]
mov ecx, dword [ebp - 0xc]
push 0xcc0020
push esi
push 0
push ebx
push edi
push eax
push esi
push 0
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x1003dcc4]
add esi, edi
cmp esi, eax
jl 0x1002135f
xor edi, edi
push 0xf
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100213b9
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
push edx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xe
push ebx
mov dword [ebp - 0x10], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0xc
push ebx
mov esi, eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
imul esi, eax
mov edx, 1
cmp esi, edx
jg 0x100213ee
mov ecx, edx
jmp 0x10021409
cmp esi, 4
jg 0x100213fa
mov ecx, 4
jmp 0x10021409
xor ecx, ecx
cmp esi, 8
setg cl
dec ecx
and ecx, 0xfffffff0
add ecx, 0x18
jmp 0x10021419
cmp ecx, 8
jne 0x1002155b
mov eax, dword [0x1003dcc0]
mov ecx, dword [0x1003dcc4]
mov dword [ebp - 0x40], eax
mov word [ebp - 0x38], dx
lea eax, [eax*8 + 0x1f]
mov esi, dword [ebp + 0xc]
cdq
and edx, 0x1f
push 0xf
add eax, edx
mov dword [ebp - 0x44], 0x28
sar eax, 5
imul eax, ecx
shl eax, 2
mov dword [ebp - 0x3c], ecx
mov word [ebp - 0x36], 8
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
mov dword [esi], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
cmp eax, edi
mov dword [ebp - 8], eax
je 0x10021493
push edi
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectPalette]
push ebx
mov dword [ebp - 4], eax
call dword [sym.imp.GDI32.dll_RealizePalette]
mov ecx, dword [esi]
add ecx, 0x428
push ecx
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push eax
mov dword [ebp - 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, 0xa
lea esi, [ebp - 0x44]
mov edi, eax
push 0
rep movsd dword es:[edi], dword [esi]
mov edx, dword [0x1003dcc4]
lea esi, [eax + 0x428]
push eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
push esi
push edx
push 0
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetDIBits]
mov edi, dword [ebp + 0xc]
xor eax, eax
cmp dword [edi], 0
jle 0x10021516
mov ecx, dword [ebp + 8]
mov dword [ebp + 8], ecx
mov ecx, dword [ebp - 0x18]
xor edx, edx
mov dl, byte [eax + esi]
lea edx, [ecx + edx*4 + 0x28]
mov ecx, dword [ebp + 8]
mov di, word [edx]
mov word [ecx], di
mov dl, byte [edx + 2]
mov edi, ecx
add edi, 3
mov byte [ecx + 2], dl
mov dword [ebp + 8], edi
mov edi, dword [ebp + 0xc]
inc eax
cmp eax, dword [edi]
jl 0x100214eb
mov eax, dword [ebp - 4]
mov word [ebp - 0x36], 0x18
test eax, eax
je 0x10021534
push 1
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectPalette]
push ebx
call dword [sym.imp.GDI32.dll_RealizePalette]
mov esi, dword [ebp - 0x1c]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [0x1003dcc0]
imul eax, dword [0x1003dcc4]
lea eax, [eax + eax*2]
mov dword [edi], eax
jmp 0x10021671
jle 0x1002166c
mov eax, dword [0x1003dcc0]
mov esi, dword [0x1003dcc4]
mov dword [ebp - 0x40], eax
imul eax, ecx
add eax, 0x1f
mov word [ebp - 0x38], dx
cdq
and edx, 0x1f
mov word [ebp - 0x36], cx
add eax, edx
mov ecx, dword [ebp + 0xc]
sar eax, 5
imul eax, esi
shl eax, 2
push 0xf
mov dword [ebp - 0x44], 0x28
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], edi
mov dword [ecx], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
cmp eax, edi
mov dword [ebp - 8], eax
je 0x100215cf
push edi
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectPalette]
push ebx
mov dword [ebp - 4], eax
call dword [sym.imp.GDI32.dll_RealizePalette]
mov esi, dword [0x1003dcc4]
mov edi, dword [ebp + 8]
push 0xf
sar esi, 3
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x1003dcc4]
mov dword [ebp + 8], 0
test eax, eax
jle 0x10021637
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
lea edx, [ebp - 0x44]
push 0
push edx
push edi
push esi
push eax
push ecx
push ebx
call dword [sym.imp.GDI32.dll_GetDIBits]
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [0x1003dcc0]
mov eax, esi
imul eax, ecx
lea edx, [eax + edi]
lea edi, [edx + eax*2]
mov eax, dword [ebp + 8]
mov edx, dword [0x1003dcc4]
add eax, esi
cmp eax, edx
mov dword [ebp + 8], eax
jl 0x100215f3
jmp 0x1002163d
mov ecx, dword [0x1003dcc0]
mov eax, dword [ebp - 4]
test eax, eax
je 0x1002165b
push 1
push eax
push ebx
call dword [sym.imp.GDI32.dll_SelectPalette]
push ebx
call dword [sym.imp.GDI32.dll_RealizePalette]
mov ecx, dword [0x1003dcc0]
imul ecx, dword [0x1003dcc4]
lea eax, [ecx + ecx*2]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x10021671
mov edx, dword [ebp + 0xc]
mov dword [edx], edi
mov eax, dword [ebp - 4]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push eax
call esi
mov ecx, dword [ebp - 8]
push ecx
call esi
mov edx, dword [ebp - 0x14]
push edx
call esi
mov edi, dword [sym.imp.GDI32.dll_DeleteDC]
push ebx
call edi
mov eax, dword [ebp - 0xc]
push eax
call edi
mov ecx, dword [ebp - 0x10]
push ecx
call esi
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret