Function at 0x5080f8
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff84
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
push 0
lea eax, [ebx + 0x43c]
push eax
mov eax, ebx
call fcn.0043a4d0
push eax
call sub.user32.dll_GetUpdateRect
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0xd4]
test al, al
jne 0x508137
mov edx, esi
mov eax, ebx
call fcn.0043bf48
jmp 0x50830b
lea edx, [ebp - 0x5c]
mov eax, dword [ebx + 0x1f0]
call fcn.0041cc6c
lea edx, [ebp - 0x6c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x54]
jge 0x508167
lea edx, [ebp - 0x6c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x54], eax
lea edx, [ebp - 0x6c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebx + 0x448]
jge 0x50818f
lea edx, [ebp - 0x6c]
mov eax, ebx
call fcn.0043a598
mov eax, dword [ebp - 0x60]
mov dword [ebx + 0x448], eax
cmp dword [ebx + 0x440], 0
jne 0x5081c5
cmp dword [ebx + 0x448], 0
jne 0x5081c5
cmp dword [ebx + 0x43c], 0
jne 0x5081c5
cmp dword [ebx + 0x444], 0
jne 0x5081c5
push esi
lea edi, [ebx + 0x43c]
lea esi, [ebp - 0x5c]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop esi
cmp dword [esi + 4], 0
je 0x5081f8
test byte [ebx + 0x45], 1
jne 0x5081ea
mov eax, ebx
call fcn.0043725c
test eax, eax
jne 0x5081ea
mov edx, esi
mov eax, ebx
call fcn.0043bf48
jmp 0x50830b
mov edx, esi
mov eax, ebx
call fcn.00438024
jmp 0x50830b
push 0
call sub.user32.dll_GetDC
mov edi, eax
lea edx, [ebp - 0x6c]
mov eax, ebx
call fcn.0043a598
mov eax, dword [ebp - 0x60]
push eax
lea edx, [ebp - 0x7c]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 0x74]
push eax
push edi
call sub.gdi32.dll_CreateCompatibleBitmap
mov dword [ebp - 8], eax
push edi
push 0
call sub.user32.dll_ReleaseDC
push 0
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0xc], eax
xor ecx, ecx
push ebp
push 0x508304
push dword fs:[ecx]
mov dword fs:[ecx], esp
lea eax, [ebp - 0x4c]
push eax
mov eax, ebx
call fcn.0043a4d0
push eax
call sub.user32.dll_BeginPaint
mov edi, eax
mov eax, dword [ebp - 4]
mov dword [esi + 4], eax
test byte [ebx + 0x45], 1
jne 0x50828b
mov eax, ebx
call fcn.0043725c
test eax, eax
jne 0x50828b
mov edx, esi
mov eax, ebx
call fcn.0043bf48
jmp 0x508294
mov edx, esi
mov eax, ebx
call fcn.00438024
xor eax, eax
mov dword [esi + 4], eax
push 0xcc0020
mov edx, dword [ebx + 0x440]
push edx
mov eax, dword [ebx + 0x43c]
push eax
mov ecx, dword [ebp - 4]
push ecx
mov ecx, dword [ebx + 0x448]
push ecx
mov ecx, dword [ebx + 0x444]
push ecx
push edx
push eax
push edi
call sub.gdi32.dll_BitBlt
lea eax, [ebp - 0x4c]
push eax
mov eax, ebx
call fcn.0043a4d0
push eax
call sub.user32.dll_EndPaint
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50830b
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_DeleteObject
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret