Function at 0x4051e0
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
mov ebx, ecx
xorps xmm0, xmm0
push esi
push edi
mov dword [ebp - 0x18], ebx
mov dword [ebx + 8], 0x10101
mov byte [ebx + 0xc], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x24], 0
movups xmmword [ebx + 0x2c], xmm0
movups xmmword [ebx + 0x3c], xmm0
movups xmmword [ebx + 0x6d0], xmm0
movups xmmword [ebx + 0x6e0], xmm0
movups xmmword [ebx + 0x58], xmm0
movups xmmword [ebx + 0x68], xmm0
movups xmmword [ebx + 0x78], xmm0
mov eax, dword [ebx + 0x6f0]
test eax, eax
je 0x405259
push eax
call dword [sym.imp.USER32.dll_DestroyCursor]
push 0x72
push dword [0x429688]
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [ebx + 0x6f0], eax
mov eax, dword [0x429690]
mov dword [ebp - 8], eax
mov dword [ebx + 0x6d8], eax
mov eax, dword [0x429ab0]
mov dword [ebp - 4], eax
mov dword [ebx + 0x6dc], eax
mov eax, dword [ebx + 0xa0]
mov dword [ebx + 0x6f4], 0
mov dword [ebx + 0x6f8], 0
mov dword [ebx + 0x700], 0
mov dword [ebx + 0x6fc], 0
mov dword [ebx + 0x708], 0
mov dword [ebx + 0x704], 0
mov dword [ebx + 0x10], 0
test eax, eax
je 0x4052ed
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [0x429690]
mov dword [ebp - 8], eax
mov eax, dword [0x429ab0]
mov dword [ebp - 4], eax
mov eax, dword [0x429aac]
mov dword [ebp - 0x10], eax
mov eax, dword [0x429aa8]
push 0
mov dword [ebp - 0x14], eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edi, eax
push 0x58
push edi
mov dword [ebp - 0xc], edi
call esi
push 0x5a
push edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x41f52c]
movss dword [0x428888], xmm0
call esi
push edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x41f52c]
movss dword [0x428884], xmm0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [ebp - 4]
mov ebx, eax
push dword [ebp - 8]
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push ebx
call edi
push 0xcc0020
push dword [ebp - 0x10]
mov esi, eax
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push dword [ebp - 4]
push dword [ebp - 8]
push 0
push 0
push ebx
call dword [sym.imp.GDI32.dll_BitBlt]
push esi
push ebx
call edi
push ebx
mov esi, eax
call dword [sym.imp.GDI32.dll_DeleteDC]
push dword [ebp - 0xc]
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov edi, dword [ebp - 0x18]
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [edi + 0xa4]
mov dword [edi + 0xa0], esi
test eax, eax
je 0x4053bd
push eax
call ebx
movsd xmm2, qword [0x41f4a0]
push ecx
push dword [edi + 0xa0]
call fcn.00406c00
mov dword [edi + 0xa4], eax
mov dword [edi + 0xa8], 0
mov edx, dword [edi + 0x50]
mov eax, edx
mov ecx, dword [edi + 0x4c]
sub eax, ecx
sar eax, 4
test eax, eax
je 0x4053f9
cmp ecx, edx
je 0x4053f9
mov dword [edi + 0x50], ecx
mov edx, dword [edi + 0x8c]
mov eax, edx
mov ecx, dword [edi + 0x88]
sub eax, ecx
sar eax, 3
test eax, eax
je 0x40541a
cmp ecx, edx
je 0x40541a
mov dword [edi + 0x8c], ecx
mov eax, dword [edi + 0x98]
mov esi, dword [edi + 0x94]
sub eax, esi
sar eax, 2
test eax, eax
je 0x40545a
cmp esi, dword [edi + 0x98]
je 0x405446
push dword [esi]
call ebx
add esi, 4
cmp esi, dword [edi + 0x98]
jne 0x405437
mov eax, dword [edi + 0x94]
cmp eax, dword [edi + 0x98]
je 0x40545a
mov dword [edi + 0x98], eax
push edi
push 0x405470
push 0
call dword [sym.imp.USER32.dll_EnumDesktopWindows]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret