Function at 0x443990
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x20], edx
push 0
mov dword [ebp - 0x28], edi
mov byte [ebp - 2], 0xff
mov byte [ebp - 1], 0x73
mov byte [ebp - 3], 0xfe
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x443c63
mov esi, dword [ebp + 8]
xor ecx, ecx
sub esi, edi
mov byte [ebp - 4], 0
mov edi, dword [ebp + 0xc]
xor ebx, ebx
sub edi, dword [ebp - 0x20]
inc esi
push eax
mov dword [ebp - 0x18], ecx
inc edi
mov dword [ebp - 0xc], ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x443bd6
push edi
push esi
push dword [ebp - 0x10]
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x443bd6
push eax
push dword [ebp - 0x14]
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x443bd6
push 0xcc0020
push dword [ebp - 0x20]
push dword [ebp - 0x28]
push dword [ebp - 0x10]
push edi
push esi
mov esi, dword [ebp - 0x14]
push ebx
push ebx
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
test eax, eax
je 0x443bd6
push ecx
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 5]
push eax
lea eax, [ebp - 0x1c]
mov edx, esi
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004436f0
mov ebx, eax
add esp, 0x10
mov dword [ebp - 0x30], ebx
test ebx, ebx
je 0x443bd6
mov edi, dword [ebp - 0x24]
imul edi, dword [ebp - 0x1c]
cmp byte [ebp - 5], 0
je 0x443af9
xor ecx, ecx
test edi, edi
jle 0x443aef
cmp edi, 0x10
jb 0x443ae3
mov eax, edi
and eax, 0x8000000f
jns 0x443a8d
dec eax
or eax, 0xfffffff0
inc eax
movaps xmm2, xmmword [0x453120]
mov edx, edi
sub edx, eax
lea eax, [ebx + 0x20]
nop dword [eax + 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
movups xmm0, xmmword [eax - 0x30]
andps xmm0, xmm2
movups xmmword [eax - 0x30], xmm0
cmp ecx, edx
jl 0x443aa0
cmp ecx, edi
jge 0x443aef
and dword [ebx + ecx*4], 0xf8f8f8f8
inc ecx
cmp ecx, edi
jl 0x443ae3
mov dh, 0xf8
mov byte [ebp - 1], 0x70
mov dl, dh
jmp 0x443aff
mov dl, byte [ebp - 3]
mov dh, byte [ebp - 2]
xor ebx, ebx
movzx ecx, dh
mov al, dh
mov dword [ebp - 0x1c], 0
sub al, 0x32
cmp ecx, 0x32
movzx eax, al
cmovae ebx, eax
mov al, byte [ebp - 1]
sub al, 0x32
mov dword [ebp - 0x34], ebx
xor esi, esi
movzx eax, al
cmp byte [ebp - 1], 0x32
cmovae esi, eax
lea eax, [edx - 0x32]
mov dword [ebp - 0x38], esi
movzx esi, dl
cmp esi, 0x32
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x1c]
movzx eax, al
cmovae esi, eax
mov dword [ebp - 0x1c], esi
mov esi, 0xff
mov eax, esi
sub eax, ecx
cmp eax, 0x32
jge 0x443b5b
mov byte [ebp - 2], 0xff
jmp 0x443b61
add dh, 0x32
mov byte [ebp - 2], dh
sub esi, dword [ebp - 0x2c]
add byte [ebp - 1], 0x32
cmp esi, 0x32
jge 0x443b73
mov byte [ebp - 3], 0xff
jmp 0x443b79
add dl, 0x32
mov byte [ebp - 3], dl
mov ebx, dword [ebp - 0x30]
xor esi, esi
test edi, edi
jle 0x443bd9
mov edx, dword [ebx + esi*4]
mov ecx, edx
mov eax, edx
shr ecx, 0x10
shr eax, 8
cmp cl, byte [ebp - 0x34]
jb 0x443bad
cmp cl, byte [ebp - 2]
ja 0x443bad
cmp al, byte [ebp - 0x38]
jb 0x443bad
cmp al, byte [ebp - 1]
ja 0x443bad
cmp dl, byte [ebp - 0x1c]
jb 0x443bad
cmp dl, byte [ebp - 3]
jbe 0x443bc2
inc esi
cmp esi, edi
jl 0x443b82
push dword [ebp - 0x10]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [ebp - 0xc]
jmp 0x443c03
push dword [ebp - 0x10]
mov byte [ebp - 4], 1
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [ebp - 0xc]
jmp 0x443c03
mov esi, dword [ebp - 0x38]
push dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
push 0
mov dword [ebp - 0xc], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [ebp - 0x14], 0
je 0x443c16
mov al, byte [ebp - 4]
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 4], al
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x443c0d
push ecx
push dword [ebp - 0x14]
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [ebp - 0x14]
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x443c24
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
test ebx, ebx
je 0x443c63
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 0x443c57
mov eax, esi
cdq
idiv dword [ebp - 0x24]
mov eax, esi
mov ecx, edx
cdq
idiv dword [ebp - 0x24]
add ecx, dword [ebp - 0x28]
mov edx, eax
mov eax, ecx
add edx, dword [ebp - 0x20]
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