Function at 0x488d88
Capabilities:
Capture screenshot

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc0
push ebx
push esi
push edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov byte [eax + 0xd6], dl
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x90], 0
je 0x48919d
mov eax, dword [ebp - 0xc]
call fcn.0047c518
and eax, 0xc00000
cmp eax, 0xc00000
jne 0x48919d
mov eax, dword [ebp - 0xc]
test byte [eax + 0x1c], 1
jne 0x48919d
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x3c]
push eax
call sub.user32.dll_GetWindowDC
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x2d]
push eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x3c]
push eax
call sub.user32.dll_GetWindowRect
mov eax, dword [ebp - 0x2d]
sub dword [ebp - 0x25], eax
mov eax, dword [ebp - 0xc]
call fcn.0047c524
and eax, 0x80
cmp eax, 0x80
jne 0x488e2c
mov eax, dword [ebp - 0xc]
test byte [eax + 0x1c], 0x10
jne 0x488e2c
push 0x34
call sub.user32.dll_GetSystemMetrics
mov dword [ebp - 8], eax
push 0x35
call sub.user32.dll_GetSystemMetrics
mov ebx, eax
jmp 0x488eb1
push 0x1e
call sub.user32.dll_GetSystemMetrics
mov dword [ebp - 8], eax
push 0x1f
call sub.user32.dll_GetSystemMetrics
mov ebx, eax
mov eax, dword [ebp - 0xc]
call fcn.0047c518
and eax, 0x10000
cmp eax, 0x10000
je 0x488e81
mov eax, dword [ebp - 0xc]
call fcn.0047c518
and eax, 0x20000
cmp eax, 0x20000
je 0x488e81
mov eax, dword [ebp - 0xc]
call fcn.0047c524
and eax, 0x400
cmp eax, 0x400
jne 0x488e81
mov eax, dword [ebp - 8]
sub dword [ebp - 0x25], eax
mov eax, dword [ebp - 0xc]
call fcn.0047c518
and eax, 0x20000
cmp eax, 0x20000
je 0x488ea9
mov eax, dword [ebp - 0xc]
call fcn.0047c518
and eax, 0x10000
cmp eax, 0x10000
jne 0x488eb1
mov eax, dword [ebp - 8]
add eax, eax
sub dword [ebp - 0x25], eax
mov eax, dword [ebp - 0xc]
call fcn.0047c518
and eax, 0x80000
cmp eax, 0x80000
jne 0x488ecb
mov eax, dword [ebp - 8]
sub dword [ebp - 0x25], eax
push ebp
call fcn.00488d40
pop ecx
add eax, 2
mov dword [ebp - 0x14], eax
mov esi, dword [ebp - 8]
sub esi, 5
mov edi, ebx
sub edi, 7
mov eax, dword [ebp - 0xc]
lea ebx, [eax + 0xd7]
push ebp
call fcn.00488cf8
pop ecx
add eax, eax
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x25]
sub ecx, dword [edx + 0xd0]
sub ecx, eax
mov dword [ebx], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebx + 4], eax
mov eax, dword [ebx]
add eax, esi
add eax, 3
mov dword [ebx + 8], eax
lea eax, [edi + 2]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x88], 2
je 0x488f40
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x88], 0
jne 0x488f3c
call fcn.0048705c
test al, al
jne 0x488f40
xor eax, eax
jmp 0x488f42
mov al, 1
mov byte [ebp - 0x1d], al
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleDC
mov dword [ebp - 4], eax
lea eax, [edi + 3]
push eax
lea eax, [esi + 3]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_CreateCompatibleBitmap
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SelectObject
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x1d], 0
je 0x488fc9
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0x91]
mov ebx, dword [eax*4 + 0x4a1e4c]
push 0xcc0020
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0
push 0
mov eax, ebx
call fcn.004237b8
call fcn.0041f2ec
push eax
lea eax, [edi + 3]
push eax
lea eax, [esi + 3]
push eax
push 0
push 0
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_StretchBlt
jmp 0x488ff1
lea eax, [edi + 3]
push eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [esi + 3]
xor edx, edx
xor eax, eax
call fcn.00413b50
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0xc]
mov cl, byte [eax + 0xd6]
mov eax, dword [ebp - 4]
call fcn.0047e5a4
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x64]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
je 0x4890ba
push 1
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SetBkMode
push 6
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SetTextAlign
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x7c]
call fcn.0041df54
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SelectObject
mov ebx, eax
push 0x1f
call sub.user32.dll_GetSystemMetrics
mov edx, eax
neg edx
add edx, 7
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x7c]
call fcn.0041e128
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0x61], 0
je 0x48907a
cmp byte [ebp - 0x1d], 0
je 0x489060
mov eax, 0xffffff
jmp 0x48906e
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x7c]
mov eax, dword [eax + 0x18]
call fcn.0041da80
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SetTextColor
jmp 0x4890a5
push 0x14
call sub.user32.dll_GetSysColor
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SetTextColor
push ebp
mov al, 1
call fcn.00488c50
pop ecx
push 0x10
call sub.user32.dll_GetSysColor
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SetTextColor
push ebp
xor eax, eax
call fcn.00488c50
pop ecx
push ebx
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SelectObject
jmp 0x489139
mov eax, dword [ebp - 0xc]
cmp byte [eax + 0xd6], 0
je 0x4890dd
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x68]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x4890dd
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax + 0x68]
jmp 0x4890e3
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax + 0x64]
mov eax, dword [ebp - 0xc]
movzx eax, byte [eax + 0xd6]
add eax, 2
mov dword [ebp - 8], eax
mov eax, esi
dec eax
push eax
mov eax, edi
dec eax
push eax
push ebx
push 0
push 0
mov eax, dword [ebp - 0xc]
mov al, byte [eax + 0x6c]
push eax
mov eax, dword [ebp - 0xc]
mov al, byte [eax + 0x61]
xor al, 1
push eax
mov eax, dword [ebp - 0xc]
mov al, byte [eax + 0x6d]
push eax
push 0x1fffffff
push 0
xor eax, eax
mov al, byte [ebp - 0x1d]
mov eax, dword [eax*4 + 0x4a01d0]
push eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0047e16c
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 4]
push eax
add edi, 3
push edi
add esi, 3
push esi
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xdb]
push eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xd7]
add eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [ebp - 0x1c]
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [ebp - 4]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x3c]
push eax
call sub.user32.dll_ReleaseDC
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret