Function at 0x4012a0
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
push edi
push 0
mov byte [ebp - 2], 0xff
mov byte [ebp - 1], 0x73
mov byte [ebp - 3], 0xfe
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
mov dword [ebp - 0x1c], esi
test esi, esi
je 0x40155e
xor ecx, ecx
mov byte [ebp - 4], 0
push esi
xor edi, edi
mov dword [ebp - 0x10], ecx
xor ebx, ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4014d3
push 0x11
push 0x1b
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov edi, eax
mov dword [ebp - 0xc], edi
test edi, edi
je 0x4014d1
push edi
push dword [ebp - 0x14]
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x4014d3
push 0xcc0020
push 0x21c
push 0x3b3
push esi
mov esi, dword [ebp - 0x14]
push 0x11
push 0x1b
push ebx
push ebx
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x4014d3
push ecx
lea eax, [ebp - 5]
mov edx, esi
push eax
lea eax, [ebp - 0x18]
mov ecx, edi
push eax
lea eax, [ebp - 0x20]
push eax
call section..text
mov ebx, eax
add esp, 0x10
mov dword [ebp - 0x28], ebx
test ebx, ebx
je 0x4014d3
mov edi, dword [ebp - 0x20]
imul edi, dword [ebp - 0x18]
cmp byte [ebp - 5], 0
je 0x4013fc
xor ecx, ecx
test edi, edi
jle 0x4013f2
cmp edi, 0x10
jb 0x4013e6
mov eax, edi
and eax, 0x8000000f
jns 0x40138e
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm2, xmmword [0x403140]
mov edx, edi
sub edx, eax
lea eax, [ebx + 0x20]
nop dword [eax]
movups xmm0, xmmword [eax - 0x20]
lea eax, [eax + 0x40]
add ecx, 0x10
movaps xmm1, xmm2
andps xmm1, xmm0
movups xmmword [eax - 0x60], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x50]
andps xmm1, xmm0
movups xmmword [eax - 0x50], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x40]
andps xmm1, xmm0
movups xmmword [eax - 0x40], xmm1
movaps xmm1, xmm2
movups xmm0, xmmword [eax - 0x30]
andps xmm1, xmm0
movups xmmword [eax - 0x30], xmm1
cmp ecx, edx
jl 0x4013a0
cmp ecx, edi
jge 0x4013f2
and dword [ebx + ecx*4], 0xf8f8f8f8
inc ecx
cmp ecx, edi
jl 0x4013e6
mov dh, 0xf8
mov byte [ebp - 1], 0x70
mov dl, dh
jmp 0x401402
mov dl, byte [ebp - 3]
mov dh, byte [ebp - 2]
xor ebx, ebx
movzx ecx, dh
mov al, dh
mov dword [ebp - 0x18], 0
sub al, 0x32
cmp ecx, 0x32
movzx eax, al
cmovae ebx, eax
mov al, byte [ebp - 1]
sub al, 0x32
mov dword [ebp - 0x2c], ebx
xor esi, esi
movzx eax, al
cmp byte [ebp - 1], 0x32
cmovae esi, eax
lea eax, [edx - 0x32]
mov dword [ebp - 0x30], esi
movzx esi, dl
cmp esi, 0x32
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x18]
movzx eax, al
cmovae esi, eax
mov dword [ebp - 0x18], esi
mov esi, 0xff
mov eax, esi
sub eax, ecx
cmp eax, 0x32
jge 0x40145e
mov byte [ebp - 2], 0xff
jmp 0x401464
add dh, 0x32
mov byte [ebp - 2], dh
sub esi, dword [ebp - 0x24]
add byte [ebp - 1], 0x32
cmp esi, 0x32
jge 0x401476
mov byte [ebp - 3], 0xff
jmp 0x40147c
add dl, 0x32
mov byte [ebp - 3], dl
mov ebx, dword [ebp - 0x28]
xor esi, esi
test edi, edi
jle 0x4014d8
mov ecx, dword [ebx + esi*4]
mov edx, ecx
mov eax, ecx
shr edx, 0x10
shr eax, 8
cmp dl, byte [ebp - 0x2c]
jb 0x4014b0
cmp dl, byte [ebp - 2]
ja 0x4014b0
cmp al, byte [ebp - 0x30]
jb 0x4014b0
cmp al, byte [ebp - 1]
ja 0x4014b0
cmp cl, byte [ebp - 0x18]
jb 0x4014b0
cmp cl, byte [ebp - 3]
jbe 0x4014b7
inc esi
cmp esi, edi
jl 0x401485
jmp 0x4014bb
mov byte [ebp - 4], 1
push dword [ebp - 0x1c]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
jmp 0x401500
mov edi, eax
mov esi, dword [ebp - 0x30]
jmp 0x4014db
mov edi, dword [ebp - 0xc]
push dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
push 0
mov dword [ebp - 0x10], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x401512
mov cl, byte [ebp - 4]
mov byte [ebp - 4], cl
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x40150b
push ecx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
test edi, edi
je 0x40151d
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
test ebx, ebx
je 0x40155e
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp byte [ebp - 4], 0
je 0x401552
mov eax, esi
cdq
idiv dword [ebp - 0x20]
mov eax, esi
lea ecx, [edx + 0x3b3]
cdq
idiv dword [ebp - 0x20]
lea edx, [eax + 0x21c]
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
or edx, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, 0xfffffffe
pop esi
mov edx, eax
pop ebx
mov esp, ebp
pop ebp
ret