Function at 0x77a500
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff94
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
push 0
call sub.user32.dll_GetDC
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x6c]
xor ecx, ecx
mov edx, 0x2c
call fcn.00405c80
mov dword [ebp - 0x6c], 0x28
mov word [ebp - 0x60], 1
xor eax, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x68], 0xc8
mov dword [ebp - 0x64], 0xffffffff
mov word [ebp - 0x5e], 0x20
push 0
push 0
lea eax, [ebp - 0x28]
push eax
push 0
lea eax, [ebp - 0x6c]
push eax
push 0
call sub.gdi32.dll_CreateDIBSection
mov dword [ebp - 0x2c], eax
push 0
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
push eax
call sub.gdi32.dll_SelectObject
push 0
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 8]
shl eax, 8
and eax, 0xff00
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
and eax, 0xff00
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
shr eax, 8
and eax, 0xff00
mov dword [ebp - 0x20], eax
xor edi, edi
push ebp
push 0x77a726
push dword fs:[edi]
mov dword fs:[edi], esp
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
add eax, 8
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov dword [eax], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov dword [eax + 4], edx
mov eax, dword [0x9faa8c]
mov edx, dword [ebp - 0x10]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x77a5f8
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x40]
cmp dword [eax], 0
jne 0x77a617
push 1
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x24]
push eax
call sub.gdi32.dll_CreateCompatibleBitmap
mov edx, dword [ebp - 0x40]
mov dword [edx], eax
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x34]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x14]
dec eax
test eax, eax
jl 0x77a6c1
inc eax
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov eax, dword [0x9faa8c]
mov edx, dword [ebp - 0x10]
mov eax, dword [eax + edx*4]
mov ecx, dword [eax + ebx*4]
mov esi, ecx
imul esi, dword [ebp - 0xc]
mov eax, esi
add eax, dword [ebp - 0x18]
mov edx, esi
add edx, dword [ebp - 0x1c]
add esi, dword [ebp - 0x20]
mov ecx, esi
test eax, eax
jge 0x77a661
xor eax, eax
test edx, edx
jge 0x77a667
xor edx, edx
test ecx, ecx
jge 0x77a66d
xor ecx, ecx
cmp eax, 0xef00
jle 0x77a679
mov eax, 0xef00
cmp edx, 0xef00
jle 0x77a686
mov edx, 0xef00
cmp ecx, 0xef00
jle 0x77a693
mov ecx, 0xef00
and eax, 0xff00
and edx, 0xff00
shl edx, 8
add eax, edx
and ecx, 0xff00
shl ecx, 0x10
add eax, ecx
shr eax, 8
mov edx, dword [ebp - 0x28]
mov dword [edx + ebx*4], eax
inc ebx
dec dword [ebp - 0x38]
jne 0x77a638
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x30]
push eax
push 1
mov eax, dword [ebp - 0x14]
push eax
push 0
push 0
mov eax, dword [ebp - 0x34]
push eax
call sub.gdi32.dll_BitBlt
inc dword [ebp - 0x10]
add dword [ebp - 0x40], 4
cmp dword [ebp - 0x10], 8
jne 0x77a5cd
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x77a72d
mov eax, dword [ebp - 0x34]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x30]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x2c]
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [ebp - 0x24]
push eax
push 0
call sub.user32.dll_ReleaseDC
ret